===========================================================
                                      .___ __  __   
          _________________  __ __  __| _/|__|/  |_ 
         / ___\_` __ \__  \ |  |  \/ __ | | \\_  __\
        / /_/  >  | \// __ \|  |  / /_/ | |  ||  |  
        \___  /|__|  (____  /____/\____ | |__||__|  
       /_____/            \/           \/           
              grep rough audit - static analysis tool
                  v2.8 written by @Wireghoul
=================================[justanotherhacker.com]===
chromium-84.0.4147.105/v8/include/js_protocol.pdl-190-      # In silent mode exceptions thrown during evaluation are not reported and do not pause
chromium-84.0.4147.105/v8/include/js_protocol.pdl:191:      # execution. Overrides `setPauseOnException` state.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-192-      optional boolean silent
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-206-
chromium-84.0.4147.105/v8/include/js_protocol.pdl:207:  # Execute a Wasm Evaluator module on a given call frame.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-208-  experimental command executeWasmEvaluator
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-242-    returns
chromium-84.0.4147.105/v8/include/js_protocol.pdl:243:      # Script source (empty in case of Wasm bytecode).
chromium-84.0.4147.105/v8/include/js_protocol.pdl-244-      string scriptSource
chromium-84.0.4147.105/v8/include/js_protocol.pdl:245:      # Wasm bytecode.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-246-      optional binary bytecode
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-250-    parameters
chromium-84.0.4147.105/v8/include/js_protocol.pdl:251:      # Id of the Wasm script to get source for.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-252-      Runtime.ScriptId scriptId
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-527-
chromium-84.0.4147.105/v8/include/js_protocol.pdl:528:  # Debug symbols available for a wasm script.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-529-  type DebugSymbols extends object
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1184-      ExecutionContextId id
chromium-84.0.4147.105/v8/include/js_protocol.pdl:1185:      # Execution context origin.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1186-      string origin
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1192-  # Detailed information about exception (or error) that was thrown during script compilation or
chromium-84.0.4147.105/v8/include/js_protocol.pdl:1193:  # execution.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1194-  type ExceptionDetails extends object
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1285-      # In silent mode exceptions thrown during evaluation are not reported and do not pause
chromium-84.0.4147.105/v8/include/js_protocol.pdl:1286:      # execution. Overrides `setPauseOnException` state.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1287-      optional boolean silent
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1297-      # Specifies execution context which global object will be used to call function on. Either
chromium-84.0.4147.105/v8/include/js_protocol.pdl:1298:      # executionContextId or objectId should be specified.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1299-      optional ExecutionContextId executionContextId
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1347-      # In silent mode exceptions thrown during evaluation are not reported and do not pause
chromium-84.0.4147.105/v8/include/js_protocol.pdl:1348:      # execution. Overrides `setPauseOnException` state.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1349-      optional boolean silent
##############################################
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1461-      # In silent mode exceptions thrown during evaluation are not reported and do not pause
chromium-84.0.4147.105/v8/include/js_protocol.pdl:1462:      # execution. Overrides `setPauseOnException` state.
chromium-84.0.4147.105/v8/include/js_protocol.pdl-1463-      optional boolean silent
##############################################
chromium-84.0.4147.105/v8/include/v8-platform.h-325-  /**
chromium-84.0.4147.105/v8/include/v8-platform.h:326:   * Sets the random seed so that GetRandomMmapAddr() will generate repeatable
chromium-84.0.4147.105/v8/include/v8-platform.h-327-   * sequences of random mmap addresses.
##############################################
chromium-84.0.4147.105/v8/include/v8-platform.h-334-   */
chromium-84.0.4147.105/v8/include/v8-platform.h:335:  virtual void* GetRandomMmapAddr() = 0;
chromium-84.0.4147.105/v8/include/v8-platform.h-336-
##############################################
chromium-84.0.4147.105/v8/include/v8.h-144-
chromium-84.0.4147.105/v8/include/v8.h:145:namespace wasm {
chromium-84.0.4147.105/v8/include/v8.h-146-class NativeModule;
##############################################
chromium-84.0.4147.105/v8/include/v8.h-1338-  V8_INLINE ScriptOriginOptions(bool is_shared_cross_origin = false,
chromium-84.0.4147.105/v8/include/v8.h:1339:                                bool is_opaque = false, bool is_wasm = false,
chromium-84.0.4147.105/v8/include/v8.h-1340-                                bool is_module = false)
chromium-84.0.4147.105/v8/include/v8.h-1341-      : flags_((is_shared_cross_origin ? kIsSharedCrossOrigin : 0) |
chromium-84.0.4147.105/v8/include/v8.h:1342:               (is_wasm ? kIsWasm : 0) | (is_opaque ? kIsOpaque : 0) |
chromium-84.0.4147.105/v8/include/v8.h-1343-               (is_module ? kIsModule : 0)) {}
##############################################
chromium-84.0.4147.105/v8/include/v8.h-1345-      : flags_(flags &
chromium-84.0.4147.105/v8/include/v8.h:1346:               (kIsSharedCrossOrigin | kIsOpaque | kIsWasm | kIsModule)) {}
chromium-84.0.4147.105/v8/include/v8.h-1347-
##############################################
chromium-84.0.4147.105/v8/include/v8.h-1360-    kIsOpaque = 1 << 1,
chromium-84.0.4147.105/v8/include/v8.h:1361:    kIsWasm = 1 << 2,
chromium-84.0.4147.105/v8/include/v8.h-1362-    kIsModule = 1 << 3
##############################################
chromium-84.0.4147.105/v8/include/v8.h-1379-      Local<Boolean> resource_is_opaque = Local<Boolean>(),
chromium-84.0.4147.105/v8/include/v8.h:1380:      Local<Boolean> is_wasm = Local<Boolean>(),
chromium-84.0.4147.105/v8/include/v8.h-1381-      Local<Boolean> is_module = Local<Boolean>(),
##############################################
chromium-84.0.4147.105/v8/include/v8.h-2012-  /**
chromium-84.0.4147.105/v8/include/v8.h:2013:   * Returns the Wasm function index where the error occurred. Returns -1 if
chromium-84.0.4147.105/v8/include/v8.h:2014:   * message is not from a Wasm script.
chromium-84.0.4147.105/v8/include/v8.h-2015-   */
##############################################
chromium-84.0.4147.105/v8/include/v8.h-7483-
chromium-84.0.4147.105/v8/include/v8.h:7484:// --- Callback for loading source map file for Wasm profiling support
chromium-84.0.4147.105/v8/include/v8.h-7485-typedef Local<String> (*WasmLoadSourceMapCallback)(Isolate* isolate,
##############################################
chromium-84.0.4147.105/v8/include/v8.h-8341-  enum UseCounterFeature {
chromium-84.0.4147.105/v8/include/v8.h:8342:    kUseAsm = 0,
chromium-84.0.4147.105/v8/include/v8.h-8343-    kBreakIterator = 1,
##############################################
chromium-84.0.4147.105/v8/include/v8.h-9332-  /**
chromium-84.0.4147.105/v8/include/v8.h:9333:   * Set the callback to invoke to check if wasm code generation should
chromium-84.0.4147.105/v8/include/v8.h-9334-   * be allowed.
##############################################
chromium-84.0.4147.105/v8/include/v8.h-9339-  /**
chromium-84.0.4147.105/v8/include/v8.h:9340:   * Embedder over{ride|load} injection points for wasm APIs. The expectation
chromium-84.0.4147.105/v8/include/v8.h-9341-   * is that the embedder sets them at most once.
##############################################
chromium-84.0.4147.105/v8/tools/testrunner/local/utils.py-43-EXIT_CODE_PASS = 0
chromium-84.0.4147.105/v8/tools/testrunner/local/utils.py:44:# Execution with test failures.
chromium-84.0.4147.105/v8/tools/testrunner/local/utils.py-45-EXIT_CODE_FAILURES = 1
chromium-84.0.4147.105/v8/tools/testrunner/local/utils.py:46:# Execution with no tests executed.
chromium-84.0.4147.105/v8/tools/testrunner/local/utils.py-47-EXIT_CODE_NO_TESTS = 2
chromium-84.0.4147.105/v8/tools/testrunner/local/utils.py:48:# Execution aborted with SIGINT (Ctrl-C).
chromium-84.0.4147.105/v8/tools/testrunner/local/utils.py-49-EXIT_CODE_INTERRUPTED = 3
chromium-84.0.4147.105/v8/tools/testrunner/local/utils.py:50:# Execution aborted with SIGTERM.
chromium-84.0.4147.105/v8/tools/testrunner/local/utils.py-51-EXIT_CODE_TERMINATED = 4
##############################################
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py-10-
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py:11:from wasm import *
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py-12-
##############################################
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py-16-  parser = argparse.ArgumentParser(\
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py:17:      description="Inject compilation hints into a Wasm module.")
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py-18-  parser.add_argument("-i", "--in-wasm-file", \
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py-19-      type=str, \
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py:20:      help="original wasm module")
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py-21-  parser.add_argument("-o", "--out-wasm-file", \
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py-22-      type=str, \
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py:23:      help="wasm module with injected hints")
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/inject-compilation-hints.py-24-  parser.add_argument("-x", "--hints-file", \
##############################################
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/wasm-objdump-compilation-hints.py-11-
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/wasm-objdump-compilation-hints.py:12:from wasm import *
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/wasm-objdump-compilation-hints.py-13-
##############################################
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/wasm-objdump-compilation-hints.py-15-  parser = argparse.ArgumentParser(\
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/wasm-objdump-compilation-hints.py:16:      description="Read compilation hints from Wasm module.")
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/wasm-objdump-compilation-hints.py-17-  parser.add_argument("in_wasm_file", \
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/wasm-objdump-compilation-hints.py-18-      type=str, \
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/wasm-objdump-compilation-hints.py:19:      help="wasm module")
chromium-84.0.4147.105/v8/tools/wasm-compilation-hints/wasm-objdump-compilation-hints.py-20-  return parser.parse_args()
##############################################
chromium-84.0.4147.105/v8/tools/test262-results-parser.js-33-    let [_, ...test] = result.name.split('/');
chromium-84.0.4147.105/v8/tools/test262-results-parser.js:34:    tests.add(`  '${test.join('/')}': [FAIL],`);
chromium-84.0.4147.105/v8/tools/test262-results-parser.js-35-  }
##############################################
chromium-84.0.4147.105/v8/tools/parse-processor.js-164-    if (id === void 0 || id <= 0) {
chromium-84.0.4147.105/v8/tools/parse-processor.js:165:      throw new Error(`Invalid id=${id} for script`);
chromium-84.0.4147.105/v8/tools/parse-processor.js-166-    }
##############################################
chromium-84.0.4147.105/v8/tools/parse-processor.js-303-  toString() {
chromium-84.0.4147.105/v8/tools/parse-processor.js:304:    let str = `SCRIPT id=${this.id} file=${this.file}\n` +
chromium-84.0.4147.105/v8/tools/parse-processor.js:305:      `functions[${this.funktions.length}]:`;
chromium-84.0.4147.105/v8/tools/parse-processor.js-306-    this.funktions.forEach(fn => str += fn.toString());
##############################################
chromium-84.0.4147.105/v8/tools/parse-processor.js-723-    let result = 'function' + (this.name ? ' ' + this.name : '') +
chromium-84.0.4147.105/v8/tools/parse-processor.js:724:        `() range=${this.start}-${this.end}`;
chromium-84.0.4147.105/v8/tools/parse-processor.js:725:    if (details) result += ` script=${this.script ? this.script.id : 'X'}`;
chromium-84.0.4147.105/v8/tools/parse-processor.js-726-    return result;
##############################################
chromium-84.0.4147.105/v8/tools/wasm/wasm-import-profiler.js-47-    }
chromium-84.0.4147.105/v8/tools/wasm/wasm-import-profiler.js:48:    print(`--- Import profile for instance ${profile.instanceNum} ---`);
chromium-84.0.4147.105/v8/tools/wasm/wasm-import-profiler.js-49-    if (array.length == 0) return;
##############################################
chromium-84.0.4147.105/v8/tools/wasm/wasm-import-profiler.js-51-    for (let data of array) {
chromium-84.0.4147.105/v8/tools/wasm/wasm-import-profiler.js:52:      print(`${padl(data.name, 30)}: ${padr(data.count, 10)} ${padp(data.total, 10)}ms`);
chromium-84.0.4147.105/v8/tools/wasm/wasm-import-profiler.js-53-    }
##############################################
chromium-84.0.4147.105/v8/tools/wasm/update-wasm-spec-tests.sh-64-
chromium-84.0.4147.105/v8/tools/wasm/update-wasm-spec-tests.sh:65:log_and_run ./run.py --wasm ${TMP_DIR}/spec/interpreter/wasm --out ${TMP_DIR}
chromium-84.0.4147.105/v8/tools/wasm/update-wasm-spec-tests.sh-66-log_and_run cp ${TMP_DIR}/*.js ${SPEC_TEST_DIR}/tests/
##############################################
chromium-84.0.4147.105/v8/tools/wasm/update-wasm-spec-tests.sh-94-      log_and_run cp ${rel_filename} ${SPEC_TEST_DIR}/tests/proposals/${repo}/
chromium-84.0.4147.105/v8/tools/wasm/update-wasm-spec-tests.sh:95:      log_and_run ./run.py --wasm ../../interpreter/wasm ${rel_filename} --out _build 2> /dev/null
chromium-84.0.4147.105/v8/tools/wasm/update-wasm-spec-tests.sh-96-    fi
##############################################
chromium-84.0.4147.105/v8/tools/parse-processor-11-
chromium-84.0.4147.105/v8/tools/parse-processor:12:tools_path=`cd $(dirname "$0");pwd`
chromium-84.0.4147.105/v8/tools/parse-processor-13-if [ ! "$D8_PATH" ]; then
##############################################
chromium-84.0.4147.105/v8/tools/parse-processor-25-if [ ! -x "$d8_exec" ]; then
chromium-84.0.4147.105/v8/tools/parse-processor:26:  d8_exec=`grep -m 1 -o '".*/d8"' $log_file | sed 's/"//g'`
chromium-84.0.4147.105/v8/tools/parse-processor-27-fi
##############################################
chromium-84.0.4147.105/v8/tools/draw_instruction_graph.sh-51-# Search for an error message, and if found, exit.
chromium-84.0.4147.105/v8/tools/draw_instruction_graph.sh:52:error=`grep -m1 '# Error:' $file`
chromium-84.0.4147.105/v8/tools/draw_instruction_graph.sh-53-if [ -n "$error" ]; then
##############################################
chromium-84.0.4147.105/v8/tools/draw_instruction_graph.sh-60-# counted.
chromium-84.0.4147.105/v8/tools/draw_instruction_graph.sh:61:sp=`grep -m1 '# sample_period=' $file | cut -d= -f2`
chromium-84.0.4147.105/v8/tools/draw_instruction_graph.sh-62-
chromium-84.0.4147.105/v8/tools/draw_instruction_graph.sh-63-# Get number of counters in the CSV file.
chromium-84.0.4147.105/v8/tools/draw_instruction_graph.sh:64:nc=`grep -m1 '# counters=' $file | cut -d= -f2`
chromium-84.0.4147.105/v8/tools/draw_instruction_graph.sh-65-
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-125-    // properties. Oh well...
chromium-84.0.4147.105/v8/tools/windbg.js:126:    print(`${k} => ${typeof s[k]}`);
chromium-84.0.4147.105/v8/tools/windbg.js-127-  }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-130-function hex(number) {
chromium-84.0.4147.105/v8/tools/windbg.js:131:  return `0x${number.toString(16)}`;
chromium-84.0.4147.105/v8/tools/windbg.js-132-}
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-255-                    function(m) {
chromium-84.0.4147.105/v8/tools/windbg.js:256:                      return m.Name.indexOf(`\\${exe_name}.exe`) !== -1;
chromium-84.0.4147.105/v8/tools/windbg.js-257-                    });
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-301-  let ctl = host.namespace.Debugger.Utility.Control;
chromium-84.0.4147.105/v8/tools/windbg.js:302:  let output = ctl.ExecuteCommand(`.call ${fn};g`);
chromium-84.0.4147.105/v8/tools/windbg.js-303-  curframe.SwitchTo();
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-307-function print_object(address) {
chromium-84.0.4147.105/v8/tools/windbg.js:308:  let output = make_call(`_v8_internal_Print_Object(${decomp(address)})`);
chromium-84.0.4147.105/v8/tools/windbg.js-309-
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-335-  let ctl = host.namespace.Debugger.Utility.Control;
chromium-84.0.4147.105/v8/tools/windbg.js:336:  ctl.ExecuteCommand(`bp ${module_name()}!v8::internal::Execution::Call`)
chromium-84.0.4147.105/v8/tools/windbg.js-337-}
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-441-    print(
chromium-84.0.4147.105/v8/tools/windbg.js:442:      `No object found within ${max_slots} slots prior to ${hex(addr)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-443-  }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-445-    print(
chromium-84.0.4147.105/v8/tools/windbg.js:446:      `found object: ${hex(obj_addr + 1)} : ${hex(poim(obj_addr))}`);
chromium-84.0.4147.105/v8/tools/windbg.js-447-  }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-453-    print(
chromium-84.0.4147.105/v8/tools/windbg.js:454:      `No object found within ${max_slots} slots following ${hex(addr)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-455-  }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-457-    print(
chromium-84.0.4147.105/v8/tools/windbg.js:458:      `found object: ${hex(obj_addr + 1)} : ${hex(poim(obj_addr))}`);
chromium-84.0.4147.105/v8/tools/windbg.js-459-  }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-473-  print(`===============================================`);
chromium-84.0.4147.105/v8/tools/windbg.js:474:  print(`objects in range ${hex(start)} - ${hex(end)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-475-  print(`===============================================`);
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-480-      count++;
chromium-84.0.4147.105/v8/tools/windbg.js:481:      print(`${hex(obj + 1)} : ${hex(poim(obj))}`);
chromium-84.0.4147.105/v8/tools/windbg.js-482-      iters  = (end - cur) / ptr_size;
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-486-  print(`===============================================`);
chromium-84.0.4147.105/v8/tools/windbg.js:487:  print(`found ${count} objects in range ${hex(start)} - ${hex(end)}`)
chromium-84.0.4147.105/v8/tools/windbg.js-488-  print(`===============================================`);
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-493-  if(!is_likely_object(root)) {
chromium-84.0.4147.105/v8/tools/windbg.js:494:    print(`${hex(root)} doesn't look like an object`);
chromium-84.0.4147.105/v8/tools/windbg.js-495-    return;
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-503-    const this_obj =
chromium-84.0.4147.105/v8/tools/windbg.js:504:      `${" ".repeat(2 * depth)}${hex(obj)} : ${hex(poim(obj - 1))}`;
chromium-84.0.4147.105/v8/tools/windbg.js-505-    const cutoff = depth_limit && depth == depth_limit - 1;
chromium-84.0.4147.105/v8/tools/windbg.js:506:    print(`${this_obj}${cutoff ? " (...)" : ""}`);
chromium-84.0.4147.105/v8/tools/windbg.js-507-    if (cutoff) return;
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-522-          print(
chromium-84.0.4147.105/v8/tools/windbg.js:523:            `${" ".repeat(2 * depth + 2)}cycle: ${hex(cur)}->${hex(field)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-524-        }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-542-function print_memory_chunk_list(space_type, front, top, age_mark) {
chromium-84.0.4147.105/v8/tools/windbg.js:543:  let alloc_pos = top ? ` (allocating at: ${top})` : "";
chromium-84.0.4147.105/v8/tools/windbg.js:544:  let age_mark_pos = age_mark ? ` (age_mark at: ${top})` : "";
chromium-84.0.4147.105/v8/tools/windbg.js:545:  print(`${space_type}${alloc_pos}${age_mark_pos}:`);
chromium-84.0.4147.105/v8/tools/windbg.js-546-  if (front.isNull) {
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-554-    let addr = hex(cur.address);
chromium-84.0.4147.105/v8/tools/windbg.js:555:    let area = `${hex(cur.area_start_)} - ${hex(cur.area_end_)}`;
chromium-84.0.4147.105/v8/tools/windbg.js:556:    let dt = `dt ${addr} ${module_name()}!v8::internal::MemoryChunk`;
chromium-84.0.4147.105/v8/tools/windbg.js:557:    print(`${imm}    ${addr}:\t ${area} (${hex(cur.size_)}) : ${dt}`);
chromium-84.0.4147.105/v8/tools/windbg.js-558-    cur = cur.list_node_.next_;
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-618-  let h = iso.heap_;
chromium-84.0.4147.105/v8/tools/windbg.js:619:  print(`Heap at ${h.targetLocation}`);
chromium-84.0.4147.105/v8/tools/windbg.js-620-
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-671-  if (c) {
chromium-84.0.4147.105/v8/tools/windbg.js:672:      print(`${hex(address)} is in ${c.space} (chunk: ${hex(c.address)})`);
chromium-84.0.4147.105/v8/tools/windbg.js-673-  }
chromium-84.0.4147.105/v8/tools/windbg.js-674-  else {
chromium-84.0.4147.105/v8/tools/windbg.js:675:      print(`Address ${hex(address)} is not in managed heap`);
chromium-84.0.4147.105/v8/tools/windbg.js-676-  }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-692-  // depth level
chromium-84.0.4147.105/v8/tools/windbg.js:693:  print(`Nested depth level: ${hsd.level}`);
chromium-84.0.4147.105/v8/tools/windbg.js-694-
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-707-                (hsd.next.address - poi(last_block))/ptr_size;
chromium-84.0.4147.105/v8/tools/windbg.js:708:  print(`Currently tracking ${count} local handles`);
chromium-84.0.4147.105/v8/tools/windbg.js-709-
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-713-         block += block_size * ptr_size) {
chromium-84.0.4147.105/v8/tools/windbg.js:714:      print(`Handles in block at ${hex(block)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-715-      for (let i = 0; i < block_size; i++) {
chromium-84.0.4147.105/v8/tools/windbg.js-716-        const location = poi(block + i * ptr_size);
chromium-84.0.4147.105/v8/tools/windbg.js:717:        print(`  ${hex(location)}->${hex(poi(location))}`);
chromium-84.0.4147.105/v8/tools/windbg.js-718-      }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-721-    let location = poi(last_block);
chromium-84.0.4147.105/v8/tools/windbg.js:722:    print(`Handles in block at ${hex(last_block)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-723-    for (let location = poi(last_block); location < hsd.next.address;
chromium-84.0.4147.105/v8/tools/windbg.js-724-         location += ptr_size) {
chromium-84.0.4147.105/v8/tools/windbg.js:725:      print(`  ${hex(location)}->${hex(poi(location))}`);
chromium-84.0.4147.105/v8/tools/windbg.js-726-    }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-731-  if (hsd.next.address < hsd.limit.address) {
chromium-84.0.4147.105/v8/tools/windbg.js:732:    print(`${prefix} at ${hex(hsd.next.address)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-733-  }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-735-    const location = hsimpl.spare_.address;
chromium-84.0.4147.105/v8/tools/windbg.js:736:    print(`${prefix} from the spare block at ${hex(location)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-737-  }
chromium-84.0.4147.105/v8/tools/windbg.js-738-  else {
chromium-84.0.4147.105/v8/tools/windbg.js:739:    print(`${prefix} from a new block to be allocated`);
chromium-84.0.4147.105/v8/tools/windbg.js-740-  }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-747-  let addr_hex = hex(addr);
chromium-84.0.4147.105/v8/tools/windbg.js:748:  return `${addr_hex}${" ".repeat(pointer_size() * 2 + 2 - addr_hex.length)}`;
chromium-84.0.4147.105/v8/tools/windbg.js-749-}
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-757-  if (!Number.isSafeInteger(int(addr))) {
chromium-84.0.4147.105/v8/tools/windbg.js:758:    print(`${hex(addr)} doesn't look like a valid address`);
chromium-84.0.4147.105/v8/tools/windbg.js-759-    return;
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-774-    let c = find_chunk(decomp(val));
chromium-84.0.4147.105/v8/tools/windbg.js:775:    const augm_space = c ? ` in ${c.space}` : "";
chromium-84.0.4147.105/v8/tools/windbg.js:776:    const augm = `${augm_map}${augm_obj}${augm_other}${augm_space}`;
chromium-84.0.4147.105/v8/tools/windbg.js-777-
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-779-        pad_right((map || obj) ? decomp(val) : val) : "";
chromium-84.0.4147.105/v8/tools/windbg.js:780:    print(`${pad_right(aligned_addr)} ${pad_right(val)} ${full_ptr}   ${augm}`);
chromium-84.0.4147.105/v8/tools/windbg.js-781-
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-808-      catch (e) {
chromium-84.0.4147.105/v8/tools/windbg.js:809:        print(`failed to process chunk ${hex(c.address)} due to ${e.message}`);
chromium-84.0.4147.105/v8/tools/windbg.js-810-      }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-814-
chromium-84.0.4147.105/v8/tools/windbg.js:815:  print(`Remembered set in chunk ${hex(chunk_addr)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-816-  let chunk = cast(chunk_addr, "v8::internal::MemoryChunk");
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-827-  if (rs[0].page_start_ != chunk_addr) {
chromium-84.0.4147.105/v8/tools/windbg.js:828:    print(`page_start_ [${hex(rs.page_start_)}] doesn't match chunk_addr!`);
chromium-84.0.4147.105/v8/tools/windbg.js-829-    return;
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-839-      // there are 32 cells in each bucket, cell's size is 32 bits
chromium-84.0.4147.105/v8/tools/windbg.js:840:      print(`  bucket ${hex(bucket.address.asNumber())}:`);
chromium-84.0.4147.105/v8/tools/windbg.js-841-      const first_cell = bucket.address.asNumber();
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-851-            const slot = rs[s].page_start_ + slot_offset;
chromium-84.0.4147.105/v8/tools/windbg.js:852:            print(`    ${hex(slot)} -> ${hex(poim(slot))}`);
chromium-84.0.4147.105/v8/tools/windbg.js-853-          }
##############################################
chromium-84.0.4147.105/v8/tools/windbg.js-860-  if (count == 0) print(`  <empty>`);
chromium-84.0.4147.105/v8/tools/windbg.js:861:  else print(`  ${count} remembered pointers in chunk ${hex(chunk_addr)}`);
chromium-84.0.4147.105/v8/tools/windbg.js-862-}
##############################################
chromium-84.0.4147.105/v8/tools/ic-processor-11-
chromium-84.0.4147.105/v8/tools/ic-processor:12:tools_path=`cd $(dirname "$0");pwd`
chromium-84.0.4147.105/v8/tools/ic-processor-13-if [ ! "$D8_PATH" ]; then
##############################################
chromium-84.0.4147.105/v8/tools/ic-processor-25-if [ ! -x "$d8_exec" ]; then
chromium-84.0.4147.105/v8/tools/ic-processor:26:  d8_exec=`grep -m 1 -o '".*/d8"' $log_file | sed 's/"//g'`
chromium-84.0.4147.105/v8/tools/ic-processor-27-fi
##############################################
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js-261-      let percents = category_overall / overall * 100;
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js:262:      this.$(`#${category}PercentContent`).innerHTML =
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js:263:          `${percents.toFixed(1)}%`;
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js-264-      this.$('#' + category + 'PercentBackground').style.left = percents + '%';
##############################################
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js-390-      const content = arrayOfRows.reduce(
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js:391:          (accu, rowAsArray) => {return accu + `${rowAsArray.join(',')}\n`},
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js-392-          '');
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js:393:      return `data:text/csv;charset=utf-8,${content}`;
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js-394-    };
##############################################
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js-399-        'download',
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js:400:        `heap_objects_data_${this.selection.isolate}_${this.selection.gc}.csv`);
chromium-84.0.4147.105/v8/tools/heap-stats/details-selection.js-401-    this.shadowRoot.appendChild(link);
##############################################
chromium-84.0.4147.105/v8/tools/heap-stats/model.js-30-  getLabel() {
chromium-84.0.4147.105/v8/tools/heap-stats/model.js:31:    let label = `${this.address}: gc=#${Object.keys(this.gcs).length}`;
chromium-84.0.4147.105/v8/tools/heap-stats/model.js:32:    label += ` peak=${formatBytes(this.peakMemory)}`
chromium-84.0.4147.105/v8/tools/heap-stats/model.js-33-    return label;
##############################################
chromium-84.0.4147.105/v8/tools/heap-stats/model.js-84-      console.error(
chromium-84.0.4147.105/v8/tools/heap-stats/model.js:85:          `${type}: sum('${histogram}') > overall (${sum} > ${overall})`);
chromium-84.0.4147.105/v8/tools/heap-stats/model.js-86-    }
##############################################
chromium-84.0.4147.105/v8/tools/heap-stats/histogram-viewer.js-72-      const overall_bytes = this.getOverallValue();
chromium-84.0.4147.105/v8/tools/heap-stats/histogram-viewer.js:73:      this.$('#overall').innerHTML = `Overall: ${overall_bytes / KB} KB`;
chromium-84.0.4147.105/v8/tools/heap-stats/histogram-viewer.js-74-      this.drawChart();
##############################################
chromium-84.0.4147.105/v8/tools/heap-stats/histogram-viewer.js-130-        (bucket_size, index) =>
chromium-84.0.4147.105/v8/tools/heap-stats/histogram-viewer.js:131:            [`<${this.formatBytes(bucket_size)}`,
chromium-84.0.4147.105/v8/tools/heap-stats/histogram-viewer.js-132-             ...Object.values(this.selection.categories)
##############################################
chromium-84.0.4147.105/v8/tools/heap-stats/histogram-viewer.js-151-        (bucket_size, index) =>
chromium-84.0.4147.105/v8/tools/heap-stats/histogram-viewer.js:152:            [`<${bucket_size}`,
chromium-84.0.4147.105/v8/tools/heap-stats/histogram-viewer.js-153-             ...instance_types.map(
##############################################
chromium-84.0.4147.105/v8/tools/freebsd-tick-processor-8-
chromium-84.0.4147.105/v8/tools/freebsd-tick-processor:9:tools_path=`cd $(dirname "$0");pwd`
chromium-84.0.4147.105/v8/tools/freebsd-tick-processor-10-$tools_path/linux-tick-processor "$@"
##############################################
chromium-84.0.4147.105/v8/tools/callstats.html-1113-        if (!fileName.endsWith('.txt')) {
chromium-84.0.4147.105/v8/tools/callstats.html:1114:          alert(`Error parsing "${fileName}"`);
chromium-84.0.4147.105/v8/tools/callstats.html-1115-          console.error(e);
##############################################
chromium-84.0.4147.105/v8/tools/android-ll-prof.sh-44-
chromium-84.0.4147.105/v8/tools/android-ll-prof.sh:45:BASE=`cd $(dirname "$0")/..; pwd`
chromium-84.0.4147.105/v8/tools/android-ll-prof.sh-46-DEPLOY="$BASE/deploy"
##############################################
chromium-84.0.4147.105/v8/tools/plot-timer-events-11-
chromium-84.0.4147.105/v8/tools/plot-timer-events:12:tools_path=`cd $(dirname "$0");pwd`
chromium-84.0.4147.105/v8/tools/plot-timer-events-13-if test ! "$D8_PATH"; then
##############################################
chromium-84.0.4147.105/v8/tools/plot-timer-events-29-if test ! -x "$d8_exec"; then
chromium-84.0.4147.105/v8/tools/plot-timer-events:30:  d8_exec=`grep -m 1 -o '".*/d8"' $log_file | sed 's/"//g'`
chromium-84.0.4147.105/v8/tools/plot-timer-events-31-fi
##############################################
chromium-84.0.4147.105/v8/tools/plot-timer-events-41-for arg in "$@"; do
chromium-84.0.4147.105/v8/tools/plot-timer-events:42:  `echo "$arg" | grep -q "^--distortion"`
chromium-84.0.4147.105/v8/tools/plot-timer-events-43-  if test $? -eq 0; then
##############################################
chromium-84.0.4147.105/v8/tools/plot-timer-events-59-       | tail -n1 | awk -F, '{print $3}'`
chromium-84.0.4147.105/v8/tools/plot-timer-events:60:  n_1=`grep "timer-event\|tick" $calibration_log  | wc -l`
chromium-84.0.4147.105/v8/tools/plot-timer-events-61-
##############################################
chromium-84.0.4147.105/v8/tools/plot-timer-events-67-       | tail -n1 | awk -F, '{print $3}'`
chromium-84.0.4147.105/v8/tools/plot-timer-events:68:  n_2=`grep "timer-event\|tick" $calibration_log  | wc -l`
chromium-84.0.4147.105/v8/tools/plot-timer-events-69-
##############################################
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-64-  var readingSource = false;
chromium-84.0.4147.105/v8/tools/sodium/sodium.js:65:  var readingAsm = false;
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-66-  var sourceBegin = -1;
##############################################
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-70-  var codeObjects = [];
chromium-84.0.4147.105/v8/tools/sodium/sodium.js:71:  var selectedAsm = null;
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-72-  var selectedSource = null;
##############################################
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-121-        if (codeEndFinder.exec(line) != null) {
chromium-84.0.4147.105/v8/tools/sodium/sodium.js:122:          readingAsm = false;
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-123-          asmEnd = begin;
##############################################
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-154-          if (matches != null) {
chromium-84.0.4147.105/v8/tools/sodium/sodium.js:155:            readingAsm = true;
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-156-            asmBegin = -1;
##############################################
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-206-    if (element == selectedAsm) return;
chromium-84.0.4147.105/v8/tools/sodium/sodium.js:207:    if (selectedAsm != null) {
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-208-      selectedAsm.classList.remove('highlight-yellow');
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-209-    }
chromium-84.0.4147.105/v8/tools/sodium/sodium.js:210:    selectedAsm = element;
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-211-    selectedAsm.classList.add('highlight-yellow');
##############################################
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-360-
chromium-84.0.4147.105/v8/tools/sodium/sodium.js:361:    var asm = getCurrentAsmText();
chromium-84.0.4147.105/v8/tools/sodium/sodium.js-362-    document.getElementById('asm-text').innerHTML = prepareAsm(asm);
##############################################
chromium-84.0.4147.105/v8/tools/mb/docs/user_guide.md-199-to a file called `runtime_deps` in the build directory, and pass that to
chromium-84.0.4147.105/v8/tools/mb/docs/user_guide.md:200:`gn gen $BUILD ... --runtime-deps-list-file=$BUILD/runtime_deps`.
chromium-84.0.4147.105/v8/tools/mb/docs/user_guide.md-201-
##############################################
chromium-84.0.4147.105/v8/tools/run-wasm-api-tests.py-6-"""\
chromium-84.0.4147.105/v8/tools/run-wasm-api-tests.py:7:Helper script for compiling and running the Wasm C/C++ API examples.
chromium-84.0.4147.105/v8/tools/run-wasm-api-tests.py-8-
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-111-  getCodeHtmlElementName() {
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts:112:    return `source-pre-${this.source.sourceId}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-113-  }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-115-  getCodeHeaderHtmlElementName() {
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts:116:    return `source-pre-${this.source.sourceId}-header`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-117-  }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-119-  getHtmlCodeLines(): NodeListOf<HTMLElement> {
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts:120:    const ordereList = this.divNode.querySelector(`#${this.getCodeHtmlElementName()} ol`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-121-    return ordereList.childNodes as NodeListOf<HTMLElement>;
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-156-    codeFileFunction.classList.add("code-file-function");
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts:157:    codeFileFunction.innerHTML = `${source.sourceName}:${source.functionName}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-158-    codeHeader.appendChild(codeFileFunction);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-160-    codeModeDiv.classList.add("code-mode");
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts:161:    codeModeDiv.innerHTML = `${this.codeMode}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-162-    codeHeader.appendChild(codeModeDiv);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-254-        inliningMarker.classList.add("inlining-marker");
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts:255:        inliningMarker.setAttribute("data-descr", `${sourceName} was inlined here`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-256-        span.appendChild(inliningMarker);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-270-    lineNumberElement.classList.add("line-number");
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts:271:    lineNumberElement.dataset.lineNumber = `${lineNumber}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts:272:    lineNumberElement.innerText = `${lineNumber}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/code-view.ts-273-    lineElement.insertBefore(lineNumberElement, lineElement.firstChild);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-view.ts-234-      input.setAttribute("title", title);
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-view.ts:235:      input.setAttribute("src", `img/${id}-icon.png`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-view.ts-236-      input.className = "button-input graph-toolbox-item";
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-view.ts-652-        } else {
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-view.ts:653:          selection.add(`${origin.nodeId}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-view.ts-654-        }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-layout.ts-275-  if (traceLayout) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-layout.ts:276:    console.log(`layoutGraph init ${performance.now() - start}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-layout.ts-277-  }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-layout.ts-323-  if (traceLayout) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-layout.ts:324:    console.log(`layoutGraph worklist ${performance.now() - start}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/graph-layout.ts-325-  }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-59-          blockIds.forEach(blockId => view.addHtmlElementForBlockId(blockId, fragment));
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:60:          blockIdElement.innerText = `B${blockIds.join(",")}:`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:61:          blockIdElement.dataset.blockId = `${blockIds.join(",")}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-62-        }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-77-          if (pcOffset == -1) pcOffset = Number(offset);
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:78:          fragment.dataset.pcOffset = `${pcOffset}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-79-          addressElement.classList.add('linkable-text');
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-104-          if (blockIds && blockIds.length > 0) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:105:            block = `B${blockIds.join(",")} `;
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:106:            blockIdData = `data-block-id="${blockIds.join(",")}"`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-107-          }
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:108:          return `<span class="tag linkable-text" data-pc-offset="${keyOffset}" ${blockIdData}>${block}${match}</span>`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-109-        };
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-230-    const showInstructionAddressHandler = () => {
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:231:      window.sessionStorage.setItem("show-instruction-address", `${instructionAddressInput.checked}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-232-      for (const el of view.divNode.querySelectorAll(".instruction-address")) {
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-242-    const showInstructionBinaryHandler = () => {
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:243:      window.sessionStorage.setItem("show-instruction-binary", `${instructionBinaryInput.checked}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-244-      for (const el of view.divNode.querySelectorAll(".instruction-binary")) {
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-254-    const highlightGapInstructionsHandler = () => {
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:255:      window.sessionStorage.setItem("highlight-gap-instructions", `${highlightGapInstructionsInput.checked}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-256-      view.divNode.classList.toggle("highlight-gap-instructions", highlightGapInstructionsInput.checked);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-271-    for (const keyPcOffset of keyPcOffsets) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts:272:      const elementsToSelect = this.divNode.querySelectorAll(`[data-pc-offset='${keyPcOffset}']`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/disassembly-view.ts-273-      for (const el of elementsToSelect) {
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/sequence-view.ts-106-      if (offsets) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/sequence-view.ts:107:        instId.setAttribute("title", `This instruction generated gap code at pc-offset 0x${offsets.gap.toString(16)}, code at pc-offset 0x${offsets.arch.toString(16)}, condition handling at pc-offset 0x${offsets.condition.toString(16)}.`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/sequence-view.ts-108-      }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-6-  if (origin.nodeId) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts:7:    return `#${origin.nodeId} in phase ${origin.phase}/${origin.reducer}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-8-  }
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-9-  if (origin.bytecodePosition) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts:10:    return `Bytecode line ${origin.bytecodePosition} in phase ${origin.phase}/${origin.reducer}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-11-  }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-66-    if (this.origin) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts:67:      title += `\nOrigin: ${formatOrigin(this.origin)}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-68-    }
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-69-    if (this.inplaceUpdatePhase) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts:70:      title += `\nInplace update in phase: ${this.inplaceUpdatePhase}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-71-    }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-75-  getDisplayLabel() {
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts:76:    const result = `${this.id}: ${this.label}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-77-    if (result.length > 40) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts:78:      return `${this.id}: ${this.opcode}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/node-label.ts-79-    }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts-9-    this.tabBar = document.createElement("ul");
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts:10:    this.tabBar.id = `tab-bar-${container.id}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts-11-    this.tabBar.className = "nav-tabs";
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts-17-    defaultDiv.className = "tab-content tab-default";
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts:18:    defaultDiv.id = `tab-content-${container.id}-default`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts-19-    container.insertBefore(defaultDiv, container.firstChild);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts-56-    newTab.innerHTML = caption;
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts:57:    newTab.id = `tab-header-${this.container.id}-${this.nextTabId++}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts-58-    const lastTab = this.tabBar.querySelector("li.last-tab");
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts-65-    contentDiv.className = "tab-content tab-default";
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts:66:    contentDiv.id = `tab-content-${this.container.id}-${this.nextTabId++}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/tabs.ts-67-    contentDiv.style.display = "none";
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/source-resolver.ts-304-    const source = this.sources[sourceId];
chromium-84.0.4147.105/v8/tools/turbolizer/src/source-resolver.ts:305:    return `${source.sourceName}:${source.functionName}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/source-resolver.ts-306-  }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/source-resolver.ts-367-        const A = this.positionToNodes.get(key);
chromium-84.0.4147.105/v8/tools/turbolizer/src/source-resolver.ts:368:        if (!A.includes(node.id)) A.push(`${node.id}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/source-resolver.ts-369-      }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/graphmultiview.ts-75-      if (phase.type == "graph" && phase.highestNodeId != 0) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/graphmultiview.ts:76:        maxNodeId = ` ${phase.highestNodeId}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/graphmultiview.ts-77-      }
chromium-84.0.4147.105/v8/tools/turbolizer/src/graphmultiview.ts:78:      optionElement.text = `${phase.name}${maxNodeId}`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/graphmultiview.ts-79-      view.selectMenu.add(optionElement);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts-74-      if (start != end) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts:75:        return ["&#8857;", `This node generated instructions in range [${start},${end}). ` +
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts-76-          `This is currently unreliable for constants.`];
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts-79-        return ["&#183;", `The instruction selector did not generate instructions ` +
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts:80:          `for this node, but processed the node at instruction ${start}. ` +
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts-81-          `This usually means that this node was folded into another node; ` +
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts-131-    const instrMarker = createElement("div", "instr-marker com", "&#8857;");
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts:132:    instrMarker.setAttribute("title", `Instructions range for this block is [${start}, ${end})`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts-133-    instrMarker.onclick = mkBlockLinkHandler(block.id);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts-169-  lineString(node) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts:170:    return `${node.id}: ${node.label}(${node.inputs.join(", ")})`;
chromium-84.0.4147.105/v8/tools/turbolizer/src/schedule-view.ts-171-  }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-47-  sourceUpdate(isSourceExpanded: boolean): void {
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts:48:    window.sessionStorage.setItem("expandedState-source", `${isSourceExpanded}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-49-    this.sourceExpand.classList.toggle("invisible", isSourceExpanded);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-58-  disassemblyUpdate(isDisassemblyExpanded: boolean): void {
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts:59:    window.sessionStorage.setItem("expandedState-disassembly", `${isDisassemblyExpanded}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-60-    this.disassemblyExpand.classList.toggle("invisible", isDisassemblyExpanded);
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-93-    if (window.sessionStorage.getItem("source-pane-percent") === null) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts:94:      window.sessionStorage.setItem("source-pane-percent", `${this.SOURCE_PANE_DEFAULT_PERCENT}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-95-    }
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-96-    if (window.sessionStorage.getItem("disassembly-pane-percent") === null) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts:97:      window.sessionStorage.setItem("disassembly-pane-percent", `${this.DISASSEMBLY_PANE_DEFAULT_PERCENT}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-98-    }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-120-        if (!resizer.isLeftSnapped()) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts:121:          window.sessionStorage.setItem("source-pane-percent", `${resizer.sepLeft / document.body.getBoundingClientRect().width}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-122-        }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-147-        if (!resizer.isRightSnapped()) {
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts:148:          window.sessionStorage.setItem("disassembly-pane-percent", `${resizer.sepRight / clientWidth}`);
chromium-84.0.4147.105/v8/tools/turbolizer/src/resizer.ts-149-        }
##############################################
chromium-84.0.4147.105/v8/tools/turbolizer/rollup.config.js-17-
chromium-84.0.4147.105/v8/tools/turbolizer/rollup.config.js:18:  console.warn(`(!) ${warning.message}`)
chromium-84.0.4147.105/v8/tools/turbolizer/rollup.config.js-19-}
##############################################
chromium-84.0.4147.105/v8/tools/mac-tick-processor-4-
chromium-84.0.4147.105/v8/tools/mac-tick-processor:5:tools_path=`cd $(dirname "$0");pwd`
chromium-84.0.4147.105/v8/tools/mac-tick-processor-6-$tools_path/linux-tick-processor --mac --nm=$tools_path/mac-nm $@
##############################################
chromium-84.0.4147.105/v8/tools/snapshot/asm_to_inline_asm.py-19-    for line in infile:
chromium-84.0.4147.105/v8/tools/snapshot/asm_to_inline_asm.py:20:      # Escape " in .S file before outputing it to inline asm file.
chromium-84.0.4147.105/v8/tools/snapshot/asm_to_inline_asm.py-21-      line = line.replace('"', '\\"')
##############################################
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-34-
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:35:- `@$v8object()` returns information about the fields of a tagged V8 value,
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:36:  passed in as a plain number like `dx @$v8object(0x34f49880471)`. This invokes
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-37-  the same logic that is used for the locals pane. You may also pass a type hint
##############################################
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-40-  collected in a crash dump). The type hint is a fully-qualified C++ class name,
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:41:  like `dx @$v8object(0x34f49880471, "v8::internal::JSArray")`.
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:42:- `@$curisolate()` gets the Isolate pointer for the current thread, if the
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-43-  current thread has a JavaScript Isolate associated.
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:44:- `@$listchunks()` returns a list of the memory chunks in the Heap for the
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-45-  current Isolate.
##############################################
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-66-
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:67:- `cur-isolate.{cc,h}` implements the `IModelMethod` for `@$curisolate()`.
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:68:- `list-chunks.{cc,h}` implements the `IModelMethod` for `@$listchunks()`. Its
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-69-  result is a custom object that supports iteration and indexing.
##############################################
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-95-  pane.
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:96:- It registers the function aliases such as `@$curisolate()`.
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-97-
##############################################
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-127-
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:128: - `bp v8windbg!CurrIsolateAlias::Call` for the invocation of `@$curisolate()`
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-129- - `bp v8windbg!GetHeapObject` for the interpretation of V8 objects.
##############################################
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-145-Then trigger the extension code of interest via something like `dx source` or
chromium-84.0.4147.105/v8/tools/v8windbg/README.md:146:`dx @$curisolate()`.
chromium-84.0.4147.105/v8/tools/v8windbg/README.md-147-
##############################################
chromium-84.0.4147.105/v8/tools/linux-tick-processor-11-
chromium-84.0.4147.105/v8/tools/linux-tick-processor:12:tools_path=`cd $(dirname "$0");pwd`
chromium-84.0.4147.105/v8/tools/linux-tick-processor-13-if [ ! "$D8_PATH" ]; then
##############################################
chromium-84.0.4147.105/v8/tools/linux-tick-processor-25-if [ ! -x "$d8_exec" ]; then
chromium-84.0.4147.105/v8/tools/linux-tick-processor:26:  d8_exec=`grep -m 1 -o '".*/d8"' $log_file | sed 's/"//g'`
chromium-84.0.4147.105/v8/tools/linux-tick-processor-27-fi
##############################################
chromium-84.0.4147.105/v8/tools/map-processor-11-
chromium-84.0.4147.105/v8/tools/map-processor:12:tools_path=`cd $(dirname "$0");pwd`
chromium-84.0.4147.105/v8/tools/map-processor-13-if [ ! "$D8_PATH" ]; then
##############################################
chromium-84.0.4147.105/v8/tools/map-processor-25-if [ ! -x "$d8_exec" ]; then
chromium-84.0.4147.105/v8/tools/map-processor:26:  d8_exec=`grep -m 1 -o '".*/d8"' $log_file | sed 's/"//g'`
chromium-84.0.4147.105/v8/tools/map-processor-27-fi
##############################################
chromium-84.0.4147.105/v8/src/regexp/property-sequences.cc-35-  const sequences =
chromium-84.0.4147.105/v8/src/regexp/property-sequences.cc:36:      require(`unicode-12.0.0/Sequence_Property/${ property }/index.js`);
chromium-84.0.4147.105/v8/src/regexp/property-sequences.cc-37-  const id = property.replace(/_/g, '') + 's';
##############################################
chromium-84.0.4147.105/v8/src/regexp/property-sequences.cc-44-  const output =
chromium-84.0.4147.105/v8/src/regexp/property-sequences.cc:45:      `const uc32 UnicodePropertySequences::k${ id }[] = {\n` +
chromium-84.0.4147.105/v8/src/regexp/property-sequences.cc:46:      `${ buffer.join('\n') }\n    0  // null-terminating the list\n};\n`;
chromium-84.0.4147.105/v8/src/regexp/property-sequences.cc-47-  return output;
##############################################
chromium-84.0.4147.105/v8/src/runtime/runtime-wasm.cc-135-RUNTIME_FUNCTION(Runtime_WasmThrowTypeError) {
chromium-84.0.4147.105/v8/src/runtime/runtime-wasm.cc:136:  // This runtime function is called both from wasm and from e.g. js-to-js
chromium-84.0.4147.105/v8/src/runtime/runtime-wasm.cc-137-  // functions. Hence the "thread in wasm" flag can be either set or not. Both
##############################################
chromium-84.0.4147.105/v8/src/runtime/runtime-compiler.cc-131-    if (!result.is_null()) return *result.ToHandleChecked();
chromium-84.0.4147.105/v8/src/runtime/runtime-compiler.cc:132:    // Remove wasm data, mark as broken for asm->wasm, replace function code
chromium-84.0.4147.105/v8/src/runtime/runtime-compiler.cc-133-    // with UncompiledData, and return a smi 0 to indicate failure.
##############################################
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc-1044-  CONVERT_ARG_CHECKED(JSFunction, function, 0);
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc:1045:  bool is_js_to_wasm = function.code().kind() == Code::JS_TO_WASM_FUNCTION;
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc-1046-  return isolate->heap()->ToBoolean(is_js_to_wasm);
##############################################
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc-1211-
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc:1212:// Take a compiled wasm module and serialize it into an array buffer, which is
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc-1213-// then returned.
##############################################
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc-1237-
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc:1238:// Take an array buffer and attempt to reconstruct a compiled wasm module.
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc-1239-// Return undefined if unsuccessful.
##############################################
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc-1346-
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc:1347:  // Find the caller wasm frame.
chromium-84.0.4147.105/v8/src/runtime/runtime-test.cc-1348-  wasm::WasmCodeRefScope wasm_code_ref_scope;
##############################################
chromium-84.0.4147.105/v8/src/runtime/runtime.cc-33-  {                                                                           \
chromium-84.0.4147.105/v8/src/runtime/runtime.cc:34:    Runtime::k##name, Runtime::RUNTIME, #name, FUNCTION_ADDR(Runtime_##name), \
chromium-84.0.4147.105/v8/src/runtime/runtime.cc-35-        number_of_args, result_size                                           \
##############################################
chromium-84.0.4147.105/v8/src/runtime/runtime.cc-42-    Runtime::kInline##name, Runtime::INLINE, "_" #name,            \
chromium-84.0.4147.105/v8/src/runtime/runtime.cc:43:        FUNCTION_ADDR(Runtime_##name), number_of_args, result_size \
chromium-84.0.4147.105/v8/src/runtime/runtime.cc-44-  }                                                                \
##############################################
chromium-84.0.4147.105/v8/src/profiler/profile-generator.cc-72-
chromium-84.0.4147.105/v8/src/profiler/profile-generator.cc:73:const char* const CodeEntry::kWasmResourceNamePrefix = "wasm ";
chromium-84.0.4147.105/v8/src/profiler/profile-generator.cc-74-const char* const CodeEntry::kEmptyResourceName = "";
##############################################
chromium-84.0.4147.105/v8/src/profiler/heap-snapshot-generator.h-282-              bool accessed)
chromium-84.0.4147.105/v8/src/profiler/heap-snapshot-generator.h:283:        : id(id), addr(addr), size(size), accessed(accessed) {}
chromium-84.0.4147.105/v8/src/profiler/heap-snapshot-generator.h-284-    SnapshotObjectId id;
##############################################
chromium-84.0.4147.105/v8/src/api/api-arguments-inl.h-80-  VMState<EXTERNAL> state(ISOLATE);                                      \
chromium-84.0.4147.105/v8/src/api/api-arguments-inl.h:81:  ExternalCallbackScope call_scope(ISOLATE, FUNCTION_ADDR(F));           \
chromium-84.0.4147.105/v8/src/api/api-arguments-inl.h-82-  PropertyCallbackInfo<API_RETURN_TYPE> callback_info(values_);
##############################################
chromium-84.0.4147.105/v8/src/api/api-arguments-inl.h-89-  VMState<EXTERNAL> state(ISOLATE);                                            \
chromium-84.0.4147.105/v8/src/api/api-arguments-inl.h:90:  ExternalCallbackScope call_scope(ISOLATE, FUNCTION_ADDR(F));                 \
chromium-84.0.4147.105/v8/src/api/api-arguments-inl.h-91-  PropertyCallbackInfo<API_RETURN_TYPE> callback_info(values_);
##############################################
chromium-84.0.4147.105/v8/src/api/api-arguments-inl.h-155-  VMState<EXTERNAL> state(isolate);
chromium-84.0.4147.105/v8/src/api/api-arguments-inl.h:156:  ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));
chromium-84.0.4147.105/v8/src/api/api-arguments-inl.h-157-  FunctionCallbackInfo<v8::Value> info(values_, argv_, argc_);
##############################################
chromium-84.0.4147.105/v8/src/api/api.cc-8948-  i::Handle<i::Foreign> foreign =
chromium-84.0.4147.105/v8/src/api/api.cc:8949:      isolate->factory()->NewForeign(FUNCTION_ADDR(that));
chromium-84.0.4147.105/v8/src/api/api.cc-8950-  listener->set(0, *foreign);
##############################################
chromium-84.0.4147.105/v8/src/api/api.cc-8968-    i::Foreign callback_obj = i::Foreign::cast(listener.get(0));
chromium-84.0.4147.105/v8/src/api/api.cc:8969:    if (callback_obj.foreign_address() == FUNCTION_ADDR(that)) {
chromium-84.0.4147.105/v8/src/api/api.cc-8970-      listeners.set(i, i::ReadOnlyRoots(isolate).undefined_value());
##############################################
chromium-84.0.4147.105/v8/src/objects/value-serializer.cc-146-  kSharedArrayBuffer = 'u',
chromium-84.0.4147.105/v8/src/objects/value-serializer.cc:147:  // A wasm module object transfer. next value is its index.
chromium-84.0.4147.105/v8/src/objects/value-serializer.cc-148-  kWasmModuleTransfer = 'w',
##############################################
chromium-84.0.4147.105/v8/src/objects/stack-frame-info.h-26-  DECL_INT_ACCESSORS(promise_all_index)
chromium-84.0.4147.105/v8/src/objects/stack-frame-info.h:27:  // Wasm frames only: function_offset instead of promise_all_index.
chromium-84.0.4147.105/v8/src/objects/stack-frame-info.h-28-  DECL_INT_ACCESSORS(function_offset)
##############################################
chromium-84.0.4147.105/v8/src/objects/debug-objects.h-201-
chromium-84.0.4147.105/v8/src/objects/debug-objects.h:202:// Holds Wasm values. This is used by the inspector.
chromium-84.0.4147.105/v8/src/objects/debug-objects.h-203-class WasmValue : public TorqueGeneratedWasmValue<WasmValue, Struct> {
##############################################
chromium-84.0.4147.105/v8/src/objects/shared-function-info-inl.h-59-         index + length <= this->data_length());
chromium-84.0.4147.105/v8/src/objects/shared-function-info-inl.h:60:  Address dst_addr = FIELD_ADDR(*this, kDataStartOffset + index * kByteSize);
chromium-84.0.4147.105/v8/src/objects/shared-function-info-inl.h-61-  memcpy(reinterpret_cast<void*>(dst_addr), buffer, length);
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-58-
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:59:  kAddressSpaceLimitReachedFailure,  // Failed because Wasm is at its address
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-60-                                     // space limit
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-146-
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:147:// The backing store for a Wasm shared memory remembers all the isolates
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-148-// with which it has been shared.
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-184-
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:185:    // Wasm memories are always allocated through the page allocator.
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-186-    auto region = GetRegion(has_guard_regions_, buffer_start_, byte_length_,
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-289-
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:290:// Allocate a backing store for a Wasm memory. Always use the page allocator
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-291-// and add guard regions.
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-337-    if (FLAG_correctness_fuzzer_suppressions) {
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:338:      FATAL("could not allocate wasm memory backing store");
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-339-    }
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-400-
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:401:  // Shared Wasm memories need an anchor for the memory object list.
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-402-  if (shared == SharedFlag::kShared) {
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-409-
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:410:// Allocate a backing store for a Wasm memory. Always use the page allocator
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-411-// and add guard regions.
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-414-    SharedFlag shared) {
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:415:  // Wasm pages must be a multiple of the allocation page size.
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-416-  DCHECK_EQ(0, wasm::kWasmPageSize % AllocatePageSize());
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-441-  // Note that we could allocate uninitialized to save initialization cost here,
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:442:  // but since Wasm memories are allocated by the page allocator, the zeroing
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-443-  // cost is already built-in.
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-463-
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:464:// Try to grow the size of a wasm memory in place, without realloc + copy.
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-465-base::Optional<size_t> BackingStore::GrowWasmMemoryInPlace(Isolate* isolate,
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-467-                                                           size_t max_pages) {
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:468:  // This function grows wasm memory by
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-469-  // * changing the permissions of additional {delta_pages} pages to kReadWrite;
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-669-
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:670:    // All Wasm memory has to be registered.
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-671-    CHECK(!backing_store->is_wasm_memory());
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-732-    if (!backing_store) continue;  // skip entries where weak ptr is null
chromium-84.0.4147.105/v8/src/objects/backing-store.cc:733:    if (!backing_store->is_wasm_memory()) continue;  // skip non-wasm memory
chromium-84.0.4147.105/v8/src/objects/backing-store.cc-734-    if (!backing_store->is_shared()) continue;       // skip non-shared memory
##############################################
chromium-84.0.4147.105/v8/src/objects/embedder-data-array-inl.h-22-Address EmbedderDataArray::slots_start() {
chromium-84.0.4147.105/v8/src/objects/embedder-data-array-inl.h:23:  return FIELD_ADDR(*this, OffsetOfElementAt(0));
chromium-84.0.4147.105/v8/src/objects/embedder-data-array-inl.h-24-}
##############################################
chromium-84.0.4147.105/v8/src/objects/embedder-data-array-inl.h-26-Address EmbedderDataArray::slots_end() {
chromium-84.0.4147.105/v8/src/objects/embedder-data-array-inl.h:27:  return FIELD_ADDR(*this, OffsetOfElementAt(length()));
chromium-84.0.4147.105/v8/src/objects/embedder-data-array-inl.h-28-}
##############################################
chromium-84.0.4147.105/v8/src/objects/objects.cc-4239-    int wasm_function_index, wasm::WasmCode* code, int offset, int flags) {
chromium-84.0.4147.105/v8/src/objects/objects.cc:4240:  // This must be either a compiled or interpreted wasm frame, or an asm.js
chromium-84.0.4147.105/v8/src/objects/objects.cc-4241-  // frame (which is always compiled).
##############################################
chromium-84.0.4147.105/v8/src/objects/objects.cc-4247-  Handle<FrameArray> array = EnsureSpace(isolate, in, new_length);
chromium-84.0.4147.105/v8/src/objects/objects.cc:4248:  // The {code} will be {nullptr} for interpreted wasm frames.
chromium-84.0.4147.105/v8/src/objects/objects.cc-4249-  Handle<Object> code_ref = isolate->factory()->undefined_value();
##############################################
chromium-84.0.4147.105/v8/src/objects/objects.cc-4725-  if (!script->line_ends().IsUndefined(isolate)) return;
chromium-84.0.4147.105/v8/src/objects/objects.cc:4726:  DCHECK(script->type() != Script::TYPE_WASM ||
chromium-84.0.4147.105/v8/src/objects/objects.cc-4727-         script->source_mapping_url().IsString());
##############################################
chromium-84.0.4147.105/v8/src/objects/objects.cc-5008-  } else if (data.IsAsmWasmData()) {
chromium-84.0.4147.105/v8/src/objects/objects.cc:5009:    // Having AsmWasmData means we are an asm.js/wasm function.
chromium-84.0.4147.105/v8/src/objects/objects.cc-5010-    DCHECK(HasAsmWasmData());
##############################################
chromium-84.0.4147.105/v8/src/objects/code-inl.h-243-Address Code::raw_instruction_start() const {
chromium-84.0.4147.105/v8/src/objects/code-inl.h:244:  return FIELD_ADDR(*this, kHeaderSize);
chromium-84.0.4147.105/v8/src/objects/code-inl.h-245-}
##############################################
chromium-84.0.4147.105/v8/src/objects/code-inl.h-277-  DCHECK(has_unwinding_info());
chromium-84.0.4147.105/v8/src/objects/code-inl.h:278:  return FIELD_ADDR(*this, GetUnwindingInfoSizeOffset()) + kInt64Size;
chromium-84.0.4147.105/v8/src/objects/code-inl.h-279-}
##############################################
chromium-84.0.4147.105/v8/src/objects/js-array-buffer.h-88-  //
chromium-84.0.4147.105/v8/src/objects/js-array-buffer.h:89:  // Array buffers that wrap wasm memory objects are special in that they
chromium-84.0.4147.105/v8/src/objects/js-array-buffer.h-90-  // are normally not detachable, but can become detached as a side effect
chromium-84.0.4147.105/v8/src/objects/js-array-buffer.h-91-  // of growing the underlying memory object. The {force_for_wasm_memory} flag
chromium-84.0.4147.105/v8/src/objects/js-array-buffer.h:92:  // is used by the implementation of Wasm memory growth in order to bypass the
chromium-84.0.4147.105/v8/src/objects/js-array-buffer.h-93-  // non-detachable check.
##############################################
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-22-EmbedderDataSlot::EmbedderDataSlot(EmbedderDataArray array, int entry_index)
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h:23:    : SlotBase(FIELD_ADDR(array,
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-24-                          EmbedderDataArray::OffsetOfElementAt(entry_index))) {}
##############################################
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-26-EmbedderDataSlot::EmbedderDataSlot(JSObject object, int embedder_field_index)
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h:27:    : SlotBase(FIELD_ADDR(
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-28-          object, object.GetEmbedderFieldOffset(embedder_field_index))) {}
##############################################
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-45-  int slot_offset = EmbedderDataArray::OffsetOfElementAt(entry_index);
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h:46:  ObjectSlot(FIELD_ADDR(array, slot_offset + kTaggedPayloadOffset))
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-47-      .Relaxed_Store(value);
##############################################
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-50-  // See gc_safe_store() for the reasons behind two stores.
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h:51:  ObjectSlot(FIELD_ADDR(array, slot_offset + kRawPayloadOffset))
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-52-      .Relaxed_Store(Smi::zero());
##############################################
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-59-  int slot_offset = object.GetEmbedderFieldOffset(embedder_field_index);
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h:60:  ObjectSlot(FIELD_ADDR(object, slot_offset + kTaggedPayloadOffset))
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-61-      .Relaxed_Store(value);
##############################################
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-64-  // See gc_safe_store() for the reasons behind two stores.
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h:65:  ObjectSlot(FIELD_ADDR(object, slot_offset + kRawPayloadOffset))
chromium-84.0.4147.105/v8/src/objects/embedder-data-slot-inl.h-66-      .Relaxed_Store(Smi::zero());
##############################################
chromium-84.0.4147.105/v8/src/objects/descriptor-array-inl.h-49-      reinterpret_cast<base::Atomic16*>(
chromium-84.0.4147.105/v8/src/objects/descriptor-array-inl.h:50:          FIELD_ADDR(*this, kRawNumberOfMarkedDescriptorsOffset)),
chromium-84.0.4147.105/v8/src/objects/descriptor-array-inl.h-51-      expected, value);
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.h-26-
chromium-84.0.4147.105/v8/src/objects/backing-store.h:27:// Internal information for shared wasm memories. E.g. contains
chromium-84.0.4147.105/v8/src/objects/backing-store.h-28-// a list of all memory objects (across all isolates) that share this
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.h-32-// The {BackingStore} data structure stores all the low-level details about the
chromium-84.0.4147.105/v8/src/objects/backing-store.h:33:// backing store of an array buffer or Wasm memory, including its base address
chromium-84.0.4147.105/v8/src/objects/backing-store.h-34-// and length, whether it is shared, provided by the embedder, has guard
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.h-50-
chromium-84.0.4147.105/v8/src/objects/backing-store.h:51:  // Allocate the backing store for a Wasm memory.
chromium-84.0.4147.105/v8/src/objects/backing-store.h-52-  static std::unique_ptr<BackingStore> AllocateWasmMemory(Isolate* isolate,
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.h-94-
chromium-84.0.4147.105/v8/src/objects/backing-store.h:95:  // Allocate a new, larger, backing store for this Wasm memory and copy the
chromium-84.0.4147.105/v8/src/objects/backing-store.h-96-  // contents of this backing store into it.
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.h-112-  // These methods enforce a limit on the total amount of address space,
chromium-84.0.4147.105/v8/src/objects/backing-store.h:113:  // which is used for both backing stores and wasm memory.
chromium-84.0.4147.105/v8/src/objects/backing-store.h-114-  static bool ReserveAddressSpace(uint64_t num_bytes);
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.h-185-
chromium-84.0.4147.105/v8/src/objects/backing-store.h:186:    // For shared Wasm memories, this is a list of all the attached memory
chromium-84.0.4147.105/v8/src/objects/backing-store.h-187-    // objects, which is needed to grow shared backing stores.
##############################################
chromium-84.0.4147.105/v8/src/objects/backing-store.h-241-
chromium-84.0.4147.105/v8/src/objects/backing-store.h:242:  // Purge any shared wasm memory lists that refer to this isolate.
chromium-84.0.4147.105/v8/src/objects/backing-store.h-243-  static void Purge(Isolate* isolate);
##############################################
chromium-84.0.4147.105/v8/src/objects/stack-frame-info.cc-20-int StackTraceFrame::GetOneBasedLineNumber(Handle<StackTraceFrame> frame) {
chromium-84.0.4147.105/v8/src/objects/stack-frame-info.cc:21:  // JavaScript line numbers are already 1-based. Wasm line numbers need
chromium-84.0.4147.105/v8/src/objects/stack-frame-info.cc-22-  // to be adjusted.
##############################################
chromium-84.0.4147.105/v8/src/objects/stack-frame-info.cc-35-int StackTraceFrame::GetOneBasedColumnNumber(Handle<StackTraceFrame> frame) {
chromium-84.0.4147.105/v8/src/objects/stack-frame-info.cc:36:  // JavaScript colun numbers are already 1-based. Wasm column numbers need
chromium-84.0.4147.105/v8/src/objects/stack-frame-info.cc-37-  // to be adjusted.
##############################################
chromium-84.0.4147.105/v8/src/objects/map.h-577-  // The field also overlaps with the native context pointer for context maps,
chromium-84.0.4147.105/v8/src/objects/map.h:578:  // and with the Wasm type info for WebAssembly object maps.
chromium-84.0.4147.105/v8/src/objects/map.h-579-  DECL_ACCESSORS(constructor_or_backpointer, Object)
##############################################
chromium-84.0.4147.105/v8/src/objects/ordered-hash-table.h-455-  Address GetHashTableStartAddress(int capacity) const {
chromium-84.0.4147.105/v8/src/objects/ordered-hash-table.h:456:    return FIELD_ADDR(*this,
chromium-84.0.4147.105/v8/src/objects/ordered-hash-table.h-457-                      DataTableStartOffset() + DataTableSizeFor(capacity));
##############################################
chromium-84.0.4147.105/v8/src/objects/debug-objects.tq-78-  value_type: SmiTagged<WasmValueType>;
chromium-84.0.4147.105/v8/src/objects/debug-objects.tq:79:  // Holds the actual value. For example, if this holds a Wasm i32, this will
chromium-84.0.4147.105/v8/src/objects/debug-objects.tq-80-  // be of length 4, for s128, it will have length 16. These values are
##############################################
chromium-84.0.4147.105/v8/src/objects/objects-inl.h-648-ObjectSlot HeapObject::RawField(int byte_offset) const {
chromium-84.0.4147.105/v8/src/objects/objects-inl.h:649:  return ObjectSlot(FIELD_ADDR(*this, byte_offset));
chromium-84.0.4147.105/v8/src/objects/objects-inl.h-650-}
##############################################
chromium-84.0.4147.105/v8/src/objects/objects-inl.h-652-MaybeObjectSlot HeapObject::RawMaybeWeakField(int byte_offset) const {
chromium-84.0.4147.105/v8/src/objects/objects-inl.h:653:  return MaybeObjectSlot(FIELD_ADDR(*this, byte_offset));
chromium-84.0.4147.105/v8/src/objects/objects-inl.h-654-}
##############################################
chromium-84.0.4147.105/v8/src/objects/objects-inl.h-912-Address HeapObject::GetFieldAddress(int field_offset) const {
chromium-84.0.4147.105/v8/src/objects/objects-inl.h:913:  return FIELD_ADDR(*this, field_offset);
chromium-84.0.4147.105/v8/src/objects/objects-inl.h-914-}
##############################################
chromium-84.0.4147.105/v8/src/objects/feedback-vector-inl.h-41-  return base::Acquire_Load(reinterpret_cast<const base::Atomic32*>(
chromium-84.0.4147.105/v8/src/objects/feedback-vector-inl.h:42:      FIELD_ADDR(*this, kSlotCountOffset)));
chromium-84.0.4147.105/v8/src/objects/feedback-vector-inl.h-43-}
##############################################
chromium-84.0.4147.105/v8/src/objects/fixed-array-inl.h-370-  double* data_start =
chromium-84.0.4147.105/v8/src/objects/fixed-array-inl.h:371:      reinterpret_cast<double*>(FIELD_ADDR(*this, kHeaderSize));
chromium-84.0.4147.105/v8/src/objects/fixed-array-inl.h-372-  MemMove(data_start + dst_index, data_start + src_index, len * kDoubleSize);
##############################################
chromium-84.0.4147.105/v8/src/objects/fixed-array-inl.h-504-         index + length <= this->length());
chromium-84.0.4147.105/v8/src/objects/fixed-array-inl.h:505:  Address dst_addr = FIELD_ADDR(*this, kHeaderSize + index * kCharSize);
chromium-84.0.4147.105/v8/src/objects/fixed-array-inl.h-506-  memcpy(reinterpret_cast<void*>(dst_addr), buffer, length);
##############################################
chromium-84.0.4147.105/v8/src/objects/fixed-array-inl.h-511-         index + length <= this->length());
chromium-84.0.4147.105/v8/src/objects/fixed-array-inl.h:512:  Address src_addr = FIELD_ADDR(*this, kHeaderSize + index * kCharSize);
chromium-84.0.4147.105/v8/src/objects/fixed-array-inl.h-513-  memcpy(buffer, reinterpret_cast<void*>(src_addr), length);
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-266-
chromium-84.0.4147.105/v8/src/objects/object-macros.h:267:#define FIELD_ADDR(p, offset) ((p).ptr() + offset - kHeapObjectTag)
chromium-84.0.4147.105/v8/src/objects/object-macros.h-268-
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-375-  static_cast<int32_t>(base::Acquire_Load(  \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:376:      reinterpret_cast<const base::Atomic32*>(FIELD_ADDR(p, offset))))
chromium-84.0.4147.105/v8/src/objects/object-macros.h-377-
chromium-84.0.4147.105/v8/src/objects/object-macros.h-378-#define RELAXED_WRITE_INT8_FIELD(p, offset, value)                             \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:379:  base::Relaxed_Store(reinterpret_cast<base::Atomic8*>(FIELD_ADDR(p, offset)), \
chromium-84.0.4147.105/v8/src/objects/object-macros.h-380-                      static_cast<base::Atomic8>(value));
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-382-  static_cast<int8_t>(base::Relaxed_Load(  \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:383:      reinterpret_cast<const base::Atomic8*>(FIELD_ADDR(p, offset))))
chromium-84.0.4147.105/v8/src/objects/object-macros.h-384-
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-386-  static_cast<int16_t>(base::Relaxed_Load(  \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:387:      reinterpret_cast<const base::Atomic16*>(FIELD_ADDR(p, offset))))
chromium-84.0.4147.105/v8/src/objects/object-macros.h-388-
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-390-  base::Relaxed_Store(                                          \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:391:      reinterpret_cast<base::Atomic16*>(FIELD_ADDR(p, offset)), \
chromium-84.0.4147.105/v8/src/objects/object-macros.h-392-      static_cast<base::Atomic16>(value));
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-395-  static_cast<uint32_t>(base::Relaxed_Load(  \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:396:      reinterpret_cast<const base::Atomic32*>(FIELD_ADDR(p, offset))))
chromium-84.0.4147.105/v8/src/objects/object-macros.h-397-
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-399-  base::Relaxed_Store(                                          \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:400:      reinterpret_cast<base::Atomic32*>(FIELD_ADDR(p, offset)), \
chromium-84.0.4147.105/v8/src/objects/object-macros.h-401-      static_cast<base::Atomic32>(value));
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-404-  static_cast<int32_t>(base::Relaxed_Load(  \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:405:      reinterpret_cast<const base::Atomic32*>(FIELD_ADDR(p, offset))))
chromium-84.0.4147.105/v8/src/objects/object-macros.h-406-
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-408-  base::Release_Store(                                          \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:409:      reinterpret_cast<base::Atomic32*>(FIELD_ADDR(p, offset)), \
chromium-84.0.4147.105/v8/src/objects/object-macros.h-410-      static_cast<base::Atomic32>(value))
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-413-  base::Relaxed_Store(                                          \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:414:      reinterpret_cast<base::Atomic32*>(FIELD_ADDR(p, offset)), \
chromium-84.0.4147.105/v8/src/objects/object-macros.h-415-      static_cast<base::Atomic32>(value));
##############################################
chromium-84.0.4147.105/v8/src/objects/object-macros.h-418-  static_cast<byte>(base::Relaxed_Load(    \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:419:      reinterpret_cast<const base::Atomic8*>(FIELD_ADDR(p, offset))))
chromium-84.0.4147.105/v8/src/objects/object-macros.h-420-
chromium-84.0.4147.105/v8/src/objects/object-macros.h-421-#define RELAXED_WRITE_BYTE_FIELD(p, offset, value)                             \
chromium-84.0.4147.105/v8/src/objects/object-macros.h:422:  base::Relaxed_Store(reinterpret_cast<base::Atomic8*>(FIELD_ADDR(p, offset)), \
chromium-84.0.4147.105/v8/src/objects/object-macros.h-423-                      static_cast<base::Atomic8>(value));
##############################################
chromium-84.0.4147.105/v8/src/objects/js-objects-inl.h-366-  DCHECK_EQ(kDoubleSize, kTaggedSize);
chromium-84.0.4147.105/v8/src/objects/js-objects-inl.h:367:  Address field_addr = FIELD_ADDR(*this, index.offset());
chromium-84.0.4147.105/v8/src/objects/js-objects-inl.h-368-  base::Relaxed_Store(reinterpret_cast<base::AtomicWord*>(field_addr),
##############################################
chromium-84.0.4147.105/v8/src/objects/script.h-34-    TYPE_NORMAL = 2,
chromium-84.0.4147.105/v8/src/objects/script.h:35:    TYPE_WASM = 3,
chromium-84.0.4147.105/v8/src/objects/script.h-36-    TYPE_INSPECTOR = 4
##############################################
chromium-84.0.4147.105/v8/src/objects/script.h-112-
chromium-84.0.4147.105/v8/src/objects/script.h:113:  // [wasm_native_module]: the wasm {NativeModule} this script belongs to.
chromium-84.0.4147.105/v8/src/objects/script.h-114-  // This must only be called if the type of this script is TYPE_WASM.
##############################################
chromium-84.0.4147.105/v8/src/objects/script.h-157-
chromium-84.0.4147.105/v8/src/objects/script.h:158:  // Check if the script contains any Asm modules.
chromium-84.0.4147.105/v8/src/objects/script.h-159-  bool ContainsAsmModule();
##############################################
chromium-84.0.4147.105/v8/src/objects/shared-function-info.h-301-  //    interpreter trampoline [HasInterpreterData()]
chromium-84.0.4147.105/v8/src/objects/shared-function-info.h:302:  //  - an AsmWasmData with Asm->Wasm conversion [HasAsmWasmData()].
chromium-84.0.4147.105/v8/src/objects/shared-function-info.h-303-  //  - a Smi containing the builtin id [HasBuiltinId()]
##############################################
chromium-84.0.4147.105/v8/src/objects/shared-function-info.h-307-  //    [HasUncompiledDataWithPreparseData()]
chromium-84.0.4147.105/v8/src/objects/shared-function-info.h:308:  //  - a WasmExportedFunctionData for Wasm [HasWasmExportedFunctionData()]
chromium-84.0.4147.105/v8/src/objects/shared-function-info.h-309-  DECL_ACCESSORS(function_data, Object)
##############################################
chromium-84.0.4147.105/v8/src/objects/shared-function-info.h-437-
chromium-84.0.4147.105/v8/src/objects/shared-function-info.h:438:  // Indicates that asm->wasm conversion failed and should not be re-attempted.
chromium-84.0.4147.105/v8/src/objects/shared-function-info.h-439-  DECL_BOOLEAN_ACCESSORS(is_asm_wasm_broken)
##############################################
chromium-84.0.4147.105/v8/src/objects/string-inl.h-28-  return base::AsAtomic32::Acquire_Load(
chromium-84.0.4147.105/v8/src/objects/string-inl.h:29:      reinterpret_cast<const int32_t*>(FIELD_ADDR(*this, kLengthOffset)));
chromium-84.0.4147.105/v8/src/objects/string-inl.h-30-}
##############################################
chromium-84.0.4147.105/v8/src/objects/string-inl.h-33-  base::AsAtomic32::Release_Store(
chromium-84.0.4147.105/v8/src/objects/string-inl.h:34:      reinterpret_cast<int32_t*>(FIELD_ADDR(*this, kLengthOffset)), value);
chromium-84.0.4147.105/v8/src/objects/string-inl.h-35-}
##############################################
chromium-84.0.4147.105/v8/src/objects/string-inl.h-546-Address SeqOneByteString::GetCharsAddress() {
chromium-84.0.4147.105/v8/src/objects/string-inl.h:547:  return FIELD_ADDR(*this, kHeaderSize);
chromium-84.0.4147.105/v8/src/objects/string-inl.h-548-}
##############################################
chromium-84.0.4147.105/v8/src/objects/string-inl.h-555-Address SeqTwoByteString::GetCharsAddress() {
chromium-84.0.4147.105/v8/src/objects/string-inl.h:556:  return FIELD_ADDR(*this, kHeaderSize);
chromium-84.0.4147.105/v8/src/objects/string-inl.h-557-}
##############################################
chromium-84.0.4147.105/v8/src/objects/string-inl.h-560-  USE(no_gc);
chromium-84.0.4147.105/v8/src/objects/string-inl.h:561:  return reinterpret_cast<uc16*>(FIELD_ADDR(*this, kHeaderSize));
chromium-84.0.4147.105/v8/src/objects/string-inl.h-562-}
##############################################
chromium-84.0.4147.105/v8/src/objects/script-inl.h-94-bool Script::has_wasm_breakpoint_infos() const {
chromium-84.0.4147.105/v8/src/objects/script-inl.h:95:  return type() == TYPE_WASM && wasm_breakpoint_infos().length() > 0;
chromium-84.0.4147.105/v8/src/objects/script-inl.h-96-}
##############################################
chromium-84.0.4147.105/v8/src/wasm/c-api.h-20-
chromium-84.0.4147.105/v8/src/wasm/c-api.h:21:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/c-api.h-22-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-tier.h-11-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-tier.h:12:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-tier.h-13-
chromium-84.0.4147.105/v8/src/wasm/wasm-tier.h:14:// All the tiers of Wasm execution.
chromium-84.0.4147.105/v8/src/wasm/wasm-tier.h-15-enum class ExecutionTier : int8_t {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-39-
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc:40:// Import a few often used types from the wasm namespace.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-41-using WasmFunction = wasm::WasmFunction;
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-740-      instance->module_object().native_module()->use_trap_handler();
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc:741:  // Wasm modules compiled to use the trap handler don't have bounds checks,
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-742-  // so they must have a memory that has guard regions.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-927-    if (FLAG_correctness_fuzzer_suppressions) {
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc:928:      FATAL("could not grow wasm memory");
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-929-    }
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-1083-                                          Address call_target) {
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc:1084:  TRACE_IFT("Import Wasm 0x%" PRIxPTR "[%d] = {instance=0x%" PRIxPTR
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-1085-            ", target=0x%" PRIxPTR "}\n",
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-1422-  if (!instance->has_wasm_external_functions()) {
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc:1423:    // Lazily allocate the wasm external functions array.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-1424-    functions = isolate->factory()->NewFixedArray(
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-1778-  // these functions directly is unsupported; they can only be called
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc:1779:  // from Wasm code.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.cc-1780-  fun_data->set_wrapper_code(isolate->builtins()->builtin(Builtins::kIllegal));
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-26-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:27:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-28-
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-366-  } else {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:367:    // Actual wasm module must have either imported or created memory.
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-368-    CHECK(memory_buffer_.is_null());
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-411-    if (!result.ToHandle(&untagged_globals_)) {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:412:      thrower_->RangeError("Out of memory: wasm globals");
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-413-      return {};
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-902-    case compiler::WasmImportCallKind::kWasmToWasm: {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:903:      // The imported function is a Wasm function from another instance.
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-904-      auto imported_function = Handle<WasmExportedFunction>::cast(js_receiver);
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-938-      if (wasm_code->kind() == WasmCode::kWasmToJsWrapper) {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:939:        // Wasm to JS wrappers are treated specially in the import table.
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-940-        entry.SetWasmToJs(isolate_, js_receiver, wasm_code);
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-941-      } else {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:942:        // Wasm math intrinsics are compiled as regular Wasm functions.
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-943-        DCHECK(kind >= compiler::WasmImportCallKind::kFirstMathIntrinsic &&
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-971-    if (!is_valid) {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:972:      thrower_->LinkError("table import %d[%d] is not a wasm function",
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-973-                          import_index, i);
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-1271-    compiler::WasmImportCallKind kind = resolved.first;
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:1272:    if (kind == compiler::WasmImportCallKind::kWasmToWasm ||
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-1273-        kind == compiler::WasmImportCallKind::kLinkError ||
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-1463-  if (initial_pages > max_initial_mem_pages()) {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:1464:    thrower_->RangeError("Out of memory: wasm memory too large");
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-1465-    return false;
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-1474-  if (!result.ToHandle(&memory_object_)) {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc:1475:    thrower_->RangeError("Out of memory: wasm memory");
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.cc-1476-    return false;
##############################################
chromium-84.0.4147.105/v8/src/wasm/memory-tracing.cc-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/memory-tracing.cc:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/memory-tracing.cc-16-
##############################################
chromium-84.0.4147.105/v8/src/wasm/signature-map.h-15-
chromium-84.0.4147.105/v8/src/wasm/signature-map.h:16:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/signature-map.h-17-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-31-
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h:32:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-33-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-135-// The central data structure that represents an engine instance capable of
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h:136:// loading, instantiating, and executing Wasm code.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-137-class V8_EXPORT_PRIVATE WasmEngine {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-163-
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h:164:  // Synchronously instantiate the given Wasm module with the given imports.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-165-  // If the module represents an asm.js module, then the supplied {memory}
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-172-  // Begin an asynchronous compilation of the given bytes that represent an
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h:173:  // encoded Wasm module.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-174-  // The {is_shared} flag indicates if the bytes backing the module could
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-180-
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h:181:  // Begin an asynchronous instantiation of the given Wasm module.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.h-182-  void AsyncInstantiate(Isolate* isolate,
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-36-
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h:37:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-38-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-46-
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h:47:// Convenience macro listing all wasm runtime stubs. Note that the first few
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-48-// elements of the list coincide with {compiler::TrapId}, order matters.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-415-
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h:416:  // Free memory pages of all given code objects. Used for wasm code GC.
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-417-  void FreeCode(Vector<WasmCode* const>);
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-422- private:
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h:423:  // The engine-wide wasm code manager.
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-424-  WasmCodeManager* const code_manager_;
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-693-  // The first allocated jump table. Always used by external calls (from JS).
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h:694:  // Wasm calls might use one of the other jump tables stored in
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-695-  // {code_space_data_}.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-772-  // Estimate the needed code space for a Liftoff function based on the size of
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h:773:  // the function body (wasm byte code).
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.h-774-  static size_t EstimateLiftoffCodeSize(int body_size);
##############################################
chromium-84.0.4147.105/v8/src/wasm/signature-map.cc-10-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/signature-map.cc:11:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/signature-map.cc-12-
##############################################
chromium-84.0.4147.105/v8/src/wasm/object-access.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/object-access.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/object-access.h-16-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-opcodes.cc-16-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-opcodes.cc:17:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-opcodes.cc-18-
##############################################
chromium-84.0.4147.105/v8/src/wasm/decoder.h-23-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/decoder.h:24:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/decoder.h-25-
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-22-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc:23:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-24-
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-183-
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc:184:// An iterator over the sections in a wasm binary module.
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-185-// Automatically skips all unknown sections.
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-340-      OFStream os(stderr);
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc:341:      os << "Error while dumping wasm file to " << path << std::endl;
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-342-    }
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-360-    const byte* pos = pc_;
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc:361:    uint32_t magic_word = consume_u32("wasm magic");
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-362-#define BYTES(x) (x & 0xFF), (x >> 8) & 0xFF, (x >> 16) & 0xFF, (x >> 24) & 0xFF
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-371-    {
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc:372:      uint32_t magic_version = consume_u32("wasm version");
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-373-      if (magic_version != kWasmVersion) {
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-446-        // .debug_info is a custom section containing core DWARF information
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc:447:        // if produced by compiler. Its presence likely means that Wasm was
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-448-        // built in a debug mode.
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-1457-    if (FLAG_trace_wasm_decoder) {
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc:1458:      StdoutStream{} << "Verifying wasm function " << func_name << std::endl;
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-1459-    }
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-2189-  Decoder decoder(start, end);
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc:2190:  decoder.consume_bytes(4, "wasm magic");
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc:2191:  decoder.consume_bytes(4, "wasm version");
chromium-84.0.4147.105/v8/src/wasm/module-decoder.cc-2192-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.cc-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.cc:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.cc-16-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-feature-flags.h-52-                                                                               \
chromium-84.0.4147.105/v8/src/wasm/wasm-feature-flags.h:53:  /* JS BitInt to wasm i64 integration. */                                     \
chromium-84.0.4147.105/v8/src/wasm/wasm-feature-flags.h-54-  /* https://github.com/WebAssembly/JS-BigInt-integration */                   \
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-feature-flags.h-76-  /* Staged in v7.8. */                                                        \
chromium-84.0.4147.105/v8/src/wasm/wasm-feature-flags.h:77:  V(type_reflection, "wasm type reflection in JS", false)
chromium-84.0.4147.105/v8/src/wasm/wasm-feature-flags.h-78-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-feature-flags.h-89-
chromium-84.0.4147.105/v8/src/wasm/wasm-feature-flags.h:90:// Combination of all available wasm feature flags.
chromium-84.0.4147.105/v8/src/wasm/wasm-feature-flags.h-91-#define FOREACH_WASM_FEATURE_FLAG(V)        \
##############################################
chromium-84.0.4147.105/v8/src/wasm/value-type.h-17-
chromium-84.0.4147.105/v8/src/wasm/value-type.h:18:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/value-type.h-19-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc-31-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc:32:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc-33-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc-701-        DCHECK_EQ(kWasmI64, type);
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc:702:        uint32_t low_word = ReadUnalignedValue<uint32_t>(gp_addr(reg.low_gp()));
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc-703-        uint32_t high_word =
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc:704:            ReadUnalignedValue<uint32_t>(gp_addr(reg.high_gp()));
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc-705-        return WasmValue((uint64_t{high_word} << 32) | low_word);
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc-708-        return type == kWasmI32
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc:709:                   ? WasmValue(ReadUnalignedValue<uint32_t>(gp_addr(reg.gp())))
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc:710:                   : WasmValue(ReadUnalignedValue<uint64_t>(gp_addr(reg.gp())));
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.cc-711-      }
##############################################
chromium-84.0.4147.105/v8/src/wasm/local-decl-encoder.cc-11-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/local-decl-encoder.cc:12:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/local-decl-encoder.cc-13-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h-71-      /* code. */                                                             \
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h:72:      return base::ReadUnalignedValue<type>(FIELD_ADDR(*this, offset));       \
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h-73-    } else {                                                                  \
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h:74:      return *reinterpret_cast<type const*>(FIELD_ADDR(*this, offset));       \
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h-75-    }                                                                         \
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h-83-      /* code. */                                                             \
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h:84:      base::WriteUnalignedValue<type>(FIELD_ADDR(*this, offset), value);      \
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h-85-    } else {                                                                  \
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h:86:      *reinterpret_cast<type*>(FIELD_ADDR(*this, offset)) = value;            \
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h-87-    }                                                                         \
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h-439-  int offset = WasmStruct::kHeaderSize + raw_offset;
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h:440:  return ObjectSlot(FIELD_ADDR(*this, offset));
chromium-84.0.4147.105/v8/src/wasm/wasm-objects-inl.h-441-}
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-features.h-20-
chromium-84.0.4147.105/v8/src/wasm/wasm-features.h:21:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-features.h-22-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-12-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h:13:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-14-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-25-//  -----+--------------------+---------------------------
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h:26://   1   | return addr (lr)   |
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-27-//   0   | previous frame (fp)|
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-28-//  -----+--------------------+  <-- frame ptr (fp)
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h:29://  -1   | 0xa: WASM          |
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-30-//  -2   |     instance       |
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-2959-void LiftoffAssembler::AssertUnreachable(AbortReason reason) {
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h:2960:  // Asserts unreachable within the wasm code.
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-2961-  TurboAssembler::AssertUnreachable(reason);
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-3103-void LiftoffAssembler::CallRuntimeStub(WasmCode::RuntimeStubId sid) {
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h:3104:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h-3105-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-assembler-defs.h-12-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-assembler-defs.h:13:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-assembler-defs.h-14-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h-11-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h:12:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h-13-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h-24-//  -----+--------------------+---------------------------
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h:25://   1   | return addr (ra)   |
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h-26-//   0   | previous frame (fp)|
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h-27-//  -----+--------------------+  <-- frame ptr (fp)
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h:28://  -1   | 0xa: WASM          |
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h-29-//  -2   |     instance       |
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h-2376-void LiftoffAssembler::CallRuntimeStub(WasmCode::RuntimeStubId sid) {
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h:2377:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h-2378-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-assembler.h-30-
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-assembler.h:31:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-assembler.h-32-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-assembler.cc-21-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-assembler.cc:22:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-assembler.cc-23-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-register.h-16-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-register.h:17:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-register.h-18-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h-16-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h-3390-void LiftoffAssembler::CallRuntimeStub(WasmCode::RuntimeStubId sid) {
chromium-84.0.4147.105/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h:3391:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/wasm/baseline/ia32/liftoff-assembler-ia32.h-3392-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-compiler.cc-32-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-compiler.cc:33:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-compiler.cc-34-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-compiler.cc-449-    if (FLAG_trace_liftoff && !FLAG_trace_wasm_decoder) {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-compiler.cc:450:      StdoutStream{} << "hint: add --trace-wasm-decoder to also see the wasm "
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-compiler.cc-451-                        "instructions being decoded\n";
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-compiler.h-15-
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-compiler.h:16:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/liftoff-compiler.h-17-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/x64/liftoff-assembler-x64.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/x64/liftoff-assembler-x64.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/x64/liftoff-assembler-x64.h-16-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/x64/liftoff-assembler-x64.h-3320-void LiftoffAssembler::CallRuntimeStub(WasmCode::RuntimeStubId sid) {
chromium-84.0.4147.105/v8/src/wasm/baseline/x64/liftoff-assembler-x64.h:3321:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/wasm/baseline/x64/liftoff-assembler-x64.h-3322-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h-11-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h:12:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h-13-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h-26-//  -----+--------------------+---------------------------
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h:27://   1   | return addr (ra)   |
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h-28-//   0   | previous frame (fp)|
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h-29-//  -----+--------------------+  <-- frame ptr (fp)
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h:30://  -1   | 0xa: WASM          |
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h-31-//  -2   |     instance       |
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h-2331-void LiftoffAssembler::CallRuntimeStub(WasmCode::RuntimeStubId sid) {
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h:2332:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h-2333-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h-12-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h:13:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h-14-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h-25-//  -----+--------------------+---------------------------
chromium-84.0.4147.105/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h:26://   1   | return addr (lr)   |
chromium-84.0.4147.105/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h-27-//   0   | previous frame (fp)|
chromium-84.0.4147.105/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h-28-//  -----+--------------------+  <-- frame ptr (fp)
chromium-84.0.4147.105/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h:29://  -1   | 0xa: WASM          |
chromium-84.0.4147.105/v8/src/wasm/baseline/s390/liftoff-assembler-s390.h-30-//  -2   |     instance       |
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-11-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h:12:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-13-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-26-//  -----+--------------------+---------------------------
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h:27://   1   | return addr (lr)   |
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-28-//   0   | previous frame (fp)|
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-29-//  -----+--------------------+  <-- frame ptr (fp)
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h:30://  -1   | 0xa: WASM          |
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-31-//  -2   |     instance       |
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-95-                           Register offset, uint32_t offset_imm) {
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h:96:  // Wasm memory is limited to a size <4GB.
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-97-  DCHECK(is_uint32(offset_imm));
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-1960-                                    Register target) {
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h:1961:  // For Arm64, we have more cache registers than wasm parameters. That means
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-1962-  // that target will always be in a register.
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-1967-void LiftoffAssembler::CallRuntimeStub(WasmCode::RuntimeStubId sid) {
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h:1968:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/wasm/baseline/arm64/liftoff-assembler-arm64.h-1969-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h-12-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h:13:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h-14-
##############################################
chromium-84.0.4147.105/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h-25-//  -----+--------------------+---------------------------
chromium-84.0.4147.105/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h:26://   1   | return addr (lr)   |
chromium-84.0.4147.105/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h-27-//   0   | previous frame (fp)|
chromium-84.0.4147.105/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h-28-//  -----+--------------------+  <-- frame ptr (fp)
chromium-84.0.4147.105/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h:29://  -1   | 0xa: WASM          |
chromium-84.0.4147.105/v8/src/wasm/baseline/ppc/liftoff-assembler-ppc.h-30-//  -2   |     instance       |
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module-builder.cc-20-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-module-builder.cc:21:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-module-builder.cc-22-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-33-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:34:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-35-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-43-// data itself, since it is owned by the platform, so lifetime is not really
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:44:// bound to the wasm engine.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-45-class LogCodesTask : public Task {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-102-    void VisitThread(Isolate* isolate, ThreadLocalTop* top) override {
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:103:      // Archived threads are rarely used, and not combined with Wasm at the
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-104-      // moment. Implement this and test it properly once we have a use case for
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-105-      // that.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:106:      FATAL("archived threads in combination with wasm not supported");
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-107-    }
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-118-    WasmEngine* engine = isolate_->wasm_engine();
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:119:    // If the foreground task is executing, there is no wasm code active. Just
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:120:    // report an empty set of live wasm code.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-121-#ifdef ENABLE_SLOW_DCHECKS
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-431-    // This happens once in a while when we have missed some limit check
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:432:    // in the asm parser. Output an error message to help diagnose, but crash.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-433-    std::cout << result.error().message();
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-502-
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:503:  // Finish the Wasm script now and make it public to the debugger.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-504-  isolate->debug()->OnAfterCompile(script);
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-773-
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:774:  // Finish the Wasm script now and make it public to the debugger.
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-775-  isolate->debug()->OnAfterCompile(script);
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-971-
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc:972:  // Under the mutex, get the vector of wasm code to log. Then log and decrement
chromium-84.0.4147.105/v8/src/wasm/wasm-engine.cc-973-  // the ref count without holding the mutex.
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.h-24-
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.h:25:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/module-instantiate.h-26-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h-15-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h:16:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h-17-// The class is for decoding and managing source map generated by a WebAssembly
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h-23-// 2. The semicolons divides "mappings" field into groups, each of which
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h:24:// represents a line in the generated code. As *.wasm is in binary format, there
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h-25-// is one "line" of generated code, and ";" is treated as illegal symbol in
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h-39-
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h:40:  // Given a function located at [start, end) in Wasm Module, this function
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h-41-  // checks if this function has its corresponding source code.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h-45-  // function checks if the address can be mapped to an offset in this function.
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h:46:  // For example, we have the following memory layout for Wasm functions, foo
chromium-84.0.4147.105/v8/src/wasm/wasm-module-sourcemap.h-47-  // and bar, and O1, O2, O3 and O4 are the decoded offsets of source map:
##############################################
chromium-84.0.4147.105/v8/src/wasm/streaming-decoder.h-18-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/streaming-decoder.h:19:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/streaming-decoder.h-20-class NativeModule;
##############################################
chromium-84.0.4147.105/v8/src/wasm/streaming-decoder.h-143-
chromium-84.0.4147.105/v8/src/wasm/streaming-decoder.h:144:  // The decoding of a stream of wasm module bytes is organized in states. Each
chromium-84.0.4147.105/v8/src/wasm/streaming-decoder.h-145-  // state provides a buffer to store the bytes required for the current state,
##############################################
chromium-84.0.4147.105/v8/src/wasm/c-api.cc-46-
chromium-84.0.4147.105/v8/src/wasm/c-api.cc:47:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/c-api.cc-48-
##############################################
chromium-84.0.4147.105/v8/src/wasm/c-api.cc-167-[[noreturn]] void WASM_UNIMPLEMENTED(const char* s) {
chromium-84.0.4147.105/v8/src/wasm/c-api.cc:168:  std::cerr << "Wasm API: " << s << " not supported yet!\n";
chromium-84.0.4147.105/v8/src/wasm/c-api.cc-169-  exit(1);
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-24-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:25:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-26-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-52-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:53:// Static representation of a wasm function.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-54-struct WasmFunction {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-63-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:64:// Static representation of a wasm global variable.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-65-struct WasmGlobal {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-80-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:81:// Static representation of a wasm exception type.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-82-struct WasmException {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-88-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:89:// Static representation of a wasm data segment.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-90-struct WasmDataSegment {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-92-  explicit WasmDataSegment(WasmInitExpr dest_addr)
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:93:      : dest_addr(dest_addr), active(true) {}
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-94-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-102-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:103:// Static representation of a wasm indirect call table.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-104-struct WasmTable {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-113-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:114:// Static representation of wasm element segment (table initializer).
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-115-struct WasmElemSegment {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-146-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:147:// Static representation of a wasm import.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-148-struct WasmImport {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-154-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:155:// Static representation of a wasm export.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-156-struct WasmExport {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-174-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:175:// Static representation of a wasm compilation hint
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-176-struct WasmCompilationHint {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-381-
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:382:// Interface to the storage (wire bytes) of a wasm module.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-383-// It is illegal for anyone receiving a ModuleWireBytes to store pointers based
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-449-// Get the source position from a given function index and byte offset,
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h:450:// for either asm.js or pure Wasm modules.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.h-451-int GetSourcePosition(const WasmModule*, uint32_t func_index,
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-26-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc:27:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-28-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-187-constexpr size_t kHeaderSize =
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc:188:    sizeof(uint32_t) +  // total wasm function count
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc:189:    sizeof(uint32_t);   // imported functions (index of first wasm function)
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-190-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-255-  Address external_reference_by_tag_[kNumExternalReferences] = {
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc:256:#define EXT_REF_ADDR(name, desc) ExternalReference::name().address(),
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-257-      EXTERNAL_REFERENCE_LIST(EXT_REF_ADDR)
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-258-#undef EXT_REF_ADDR
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc:259:#define RUNTIME_ADDR(name, ...) \
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-260-  ExternalReference::Create(Runtime::k##name).address(),
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-642-
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc:643:  // Finish the Wasm script now and make it public to the debugger.
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.cc-644-  isolate->debug()->OnAfterCompile(script);
##############################################
chromium-84.0.4147.105/v8/src/wasm/streaming-decoder.cc-25-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/streaming-decoder.cc:26:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/streaming-decoder.cc-27-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-debug-evaluate.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-debug-evaluate.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-debug-evaluate.h-16-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-result.cc-15-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-result.cc:16:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-result.cc-17-
##############################################
chromium-84.0.4147.105/v8/src/wasm/leb-helper.h-12-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/leb-helper.h:13:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/leb-helper.h-14-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-linkage.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-linkage.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-linkage.h-16-
chromium-84.0.4147.105/v8/src/wasm/wasm-linkage.h-17-// TODO(wasm): optimize calling conventions to be both closer to C++ (to
chromium-84.0.4147.105/v8/src/wasm/wasm-linkage.h:18:// reduce adapter costs for fast Wasm <-> C++ calls) and to be more efficient
chromium-84.0.4147.105/v8/src/wasm/wasm-linkage.h-19-// in general.
##############################################
chromium-84.0.4147.105/v8/src/wasm/compilation-environment.h-19-
chromium-84.0.4147.105/v8/src/wasm/compilation-environment.h:20:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/compilation-environment.h-21-
##############################################
chromium-84.0.4147.105/v8/src/wasm/graph-builder-interface.cc-22-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/graph-builder-interface.cc:23:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/graph-builder-interface.cc-24-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-result.h-23-
chromium-84.0.4147.105/v8/src/wasm/wasm-result.h:24:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-result.h-25-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-result.h-148-    kRangeError,
chromium-84.0.4147.105/v8/src/wasm/wasm-result.h:149:    // Wasm errors.
chromium-84.0.4147.105/v8/src/wasm/wasm-result.h-150-    kCompileError,
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-result.h-173-// Note that pending exceptions are not necessarily created by the ErrorThrower,
chromium-84.0.4147.105/v8/src/wasm/wasm-result.h:174:// but e.g. by the wasm start function. There might also be a scheduled
chromium-84.0.4147.105/v8/src/wasm/wasm-result.h-175-// exception, created by another API call (e.g. v8::Object::Get). But there
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-constants.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-constants.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-constants.h-16-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-import-wrapper-cache.cc-13-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-import-wrapper-cache.cc:14:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-import-wrapper-cache.cc-15-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-arguments.h-17-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-arguments.h:18:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-arguments.h-19-
chromium-84.0.4147.105/v8/src/wasm/wasm-arguments.h:20:// Helper class for {Push}ing Wasm value arguments onto the stack in the format
chromium-84.0.4147.105/v8/src/wasm/wasm-arguments.h-21-// that the CWasmEntryStub expects, as well as for {Pop}ping return values.
##############################################
chromium-84.0.4147.105/v8/src/wasm/struct-types.h-15-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/struct-types.h:16:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/struct-types.h-17-
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-54-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc:55:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-56-
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-1050-
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc:1051:  // Execute JS to Wasm wrapper units first, so that they are ready to be
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-1052-  // finalized by the main thread when the kFinishedBaselineCompilation event is
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-1335-                               lazy_module)) {
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc:1336:    // Validate wasm modules for lazy compilation if requested. Never validate
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-1337-    // asm.js modules as these are valid by construction (additionally a CHECK
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-1678-  DCHECK(!isolate_->context().is_null());
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc:1679:  // Finish the wasm script now and make it public to the debugger.
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-1680-  Handle<Script> script(module_object_->script(), isolate_);
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-1681-  const WasmModule* module = module_object_->module();
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc:1682:  if (script->type() == Script::TYPE_WASM &&
chromium-84.0.4147.105/v8/src/wasm/module-compiler.cc-1683-      module->debug_symbols.type == WasmDebugSymbols::Type::SourceMap &&
##############################################
chromium-84.0.4147.105/v8/src/wasm/function-compiler.h-24-
chromium-84.0.4147.105/v8/src/wasm/function-compiler.h:25:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/function-compiler.h-26-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.h-11-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.h:12:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.h-13-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.h-51-
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.h:52:// Deserializes the given data to create a Wasm module object.
chromium-84.0.4147.105/v8/src/wasm/wasm-serialization.h-53-V8_EXPORT_PRIVATE MaybeHandle<WasmModuleObject> DeserializeNativeModule(
##############################################
chromium-84.0.4147.105/v8/src/wasm/memory-tracing.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/memory-tracing.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/memory-tracing.h-16-
##############################################
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder-impl.h-23-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder-impl.h:24:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder-impl.h-25-
##############################################
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder-impl.h-929-
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder-impl.h:930:// Generic Wasm bytecode decoder with utilities for decoding immediates,
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder-impl.h-931-// lengths, etc.
##############################################
chromium-84.0.4147.105/v8/src/wasm/function-compiler.cc-19-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/function-compiler.cc:20:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/function-compiler.cc-21-
##############################################
chromium-84.0.4147.105/v8/src/wasm/function-compiler.cc-177-  if (FLAG_trace_wasm_compiler) {
chromium-84.0.4147.105/v8/src/wasm/function-compiler.cc:178:    PrintF("Compiling wasm function %d with %s\n", func_index_,
chromium-84.0.4147.105/v8/src/wasm/function-compiler.cc-179-           ExecutionTierToString(tier_));
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.h-18-
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.h:19:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.h-20-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-value.h-15-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-value.h:16:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-value.h-17-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-value.h-53-// - name (for to_<name>() method)
chromium-84.0.4147.105/v8/src/wasm/wasm-value.h:54:// - wasm type
chromium-84.0.4147.105/v8/src/wasm/wasm-value.h-55-// - c type
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-value.h-69-
chromium-84.0.4147.105/v8/src/wasm/wasm-value.h:70:// A wasm value with type information.
chromium-84.0.4147.105/v8/src/wasm/wasm-value.h-71-class WasmValue {
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-compiler.h-31-
chromium-84.0.4147.105/v8/src/wasm/module-compiler.h:32:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/module-compiler.h-33-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module-builder.h-19-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-module-builder.h:20:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-module-builder.h-21-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module-builder.h-221-
chromium-84.0.4147.105/v8/src/wasm/wasm-module-builder.h:222:  // Delta-encoded mapping from wasm bytes to asm.js source positions.
chromium-84.0.4147.105/v8/src/wasm/wasm-module-builder.h-223-  ZoneBuffer asm_offsets_;
##############################################
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h-11-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h:12:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h-13-
##############################################
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h-20-// other purposes:
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h:21:// - the far stub table contains one entry per wasm runtime stub (see
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h-22-//   {WasmCode::RuntimeStubId}, which jumps to the corresponding embedded
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h-23-//   builtin, plus (if not the full address space can be reached via the jump
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h:24://   table) one entry per wasm function.
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h:25:// - the lazy compile table contains one entry per wasm function which jumps to
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.h-26-//   the common {WasmCompileLazy} builtin and passes the function index that was
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc-34-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc:35:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc-36-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc-651-struct InterpreterCode {
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc:652:  const WasmFunction* function;  // wasm function
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc-653-  BodyLocalDecls locals;         // local declarations
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc-3951-
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc:3952:    TRACE("  => Calling external wasm function\n");
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc-3953-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc-3987-                        packer.argv());
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc:3988:    TRACE("  => External wasm function returned%s\n",
chromium-84.0.4147.105/v8/src/wasm/wasm-interpreter.cc-3989-          isolate->has_pending_exception() ? " with exception" : "");
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc-24-#if defined(V8_OS_WIN) && defined(V8_WITH_SANITIZER)
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc:25:// With ASAN on Windows we have to reset the thread-in-wasm flag. Exceptions
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc:26:// caused by ASAN let the thread-in-wasm flag get out of sync. Even marking
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc-27-// functions with DISABLE_ASAN is not sufficient when the compiler produces
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc-39-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc:40:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc-41-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc-332-// by the trap handler before they get handled by Asan, and thereby confuse the
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc:333:// thread-in-wasm flag. Therefore we disable ASAN for this function.
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc:334:// Alternatively we could reset the thread-in-wasm flag before calling this
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.cc-335-// function. However, as this is only a problem with Asan on Windows, we did not
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.h-13-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.h:14:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-external-refs.h-15-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-limits.h-16-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-limits.h:17:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-limits.h-18-
chromium-84.0.4147.105/v8/src/wasm/wasm-limits.h:19:// These two constants are defined in the Wasm JS API spec and as such only
chromium-84.0.4147.105/v8/src/wasm/wasm-limits.h-20-// concern JS embeddings.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-import-wrapper-cache.h-15-
chromium-84.0.4147.105/v8/src/wasm/wasm-import-wrapper-cache.h:16:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-import-wrapper-cache.h-17-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.h-28-
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.h:29:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.h-30-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.h-133-
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.h:134:// Get the module scope for a given instance. This will contain the wasm memory
chromium-84.0.4147.105/v8/src/wasm/wasm-debug.h-135-// (if the instance has a memory) and the values of all globals.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.cc-27-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-module.cc:28:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-module.cc-29-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.cc-220-bool IsWasmCodegenAllowed(Isolate* isolate, Handle<Context> context) {
chromium-84.0.4147.105/v8/src/wasm/wasm-module.cc:221:  // TODO(wasm): Once wasm has its own CSP policy, we should introduce a
chromium-84.0.4147.105/v8/src/wasm/wasm-module.cc-222-  // separate callback that includes information about the module about to be
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-module.cc-631-// Get the source position from a given function index and byte offset,
chromium-84.0.4147.105/v8/src/wasm/wasm-module.cc:632:// for either asm.js or pure Wasm modules.
chromium-84.0.4147.105/v8/src/wasm/wasm-module.cc-633-int GetSourcePosition(const WasmModule* module, uint32_t func_index,
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-45-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc:46:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-47-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-427-    case WasmCode::kFunction:
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc:428:      return "wasm function";
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-429-    case WasmCode::kWasmToCapiWrapper:
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-624-    if (region.size() < std::numeric_limits<size_t>::max()) {
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc:625:      V8::FatalProcessOutOfMemory(nullptr, "wasm code reservation in region");
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-626-      UNREACHABLE();
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-638-    if (!new_mem.IsReserved()) {
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc:639:      V8::FatalProcessOutOfMemory(nullptr, "wasm code reservation");
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-640-      UNREACHABLE();
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-671-      if (!code_manager_->Commit(split_range)) {
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc:672:        V8::FatalProcessOutOfMemory(nullptr, "wasm code commit");
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-673-        UNREACHABLE();
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-1573-  if (!BackingStore::ReserveAddressSpace(size)) return {};
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc:1574:  if (hint == nullptr) hint = page_allocator->GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-1575-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-1604-// Numbers will change when Liftoff or TurboFan evolve, other toolchains are
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc:1605:// used to produce the wasm code, or characteristics of wasm modules on the
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-1606-// web change. They might require occasional tuning.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-1781-      histogram = counters->wasm_module_code_size_mb();
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc:1782:      // If this is a wasm module of >= 2MB, also sample the freed code size,
chromium-84.0.4147.105/v8/src/wasm/wasm-code-manager.cc-1783-      // absolute and relative. Code GC does not happen on asm.js modules, and
##############################################
chromium-84.0.4147.105/v8/src/wasm/graph-builder-interface.h-19-
chromium-84.0.4147.105/v8/src/wasm/graph-builder-interface.h:20:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/graph-builder-interface.h-21-
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h-21-
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h:22:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h-23-
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h-127-
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h:128:// Decodes the bytes of a wasm module between {module_start} and {module_end}.
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h-129-V8_EXPORT_PRIVATE ModuleResult DecodeWasmModule(
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h-139-
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h:140:// Decodes the bytes of a wasm function between
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h-141-// {function_start} and {function_end}.
##############################################
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h-158-
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h:159:// Extracts the mapping from wasm byte offset to asm.js source position per
chromium-84.0.4147.105/v8/src/wasm/module-decoder.h-160-// function.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-24-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:25:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-26-struct CompilationEnv;
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-66-// Each entry has the following fields:
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:67:// - object = target instance, if a Wasm function, tuple if imported
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-68-// - sig_id = signature id of function
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:69:// - target = entrypoint to Wasm code or import wrapper code
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-70-class IndirectFunctionTableEntry {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-97-// Each entry is either:
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:98://   - Wasm to JS, which has fields
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-99-//      - object = a Tuple2 of the importing instance and the callable
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-100-//      - target = entrypoint to import wrapper code
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:101://   - Wasm to Wasm, which has fields
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-102-//      - object = target instance
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-107-
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:108:  // Initialize this entry as a Wasm to JS call. This accepts the isolate as a
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-109-  // parameter, since it must allocate a tuple.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-111-                                     const wasm::WasmCode* wasm_to_js_wrapper);
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:112:  // Initialize this entry as a Wasm to Wasm call.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-113-  void SetWasmToWasm(WasmInstanceObject target_instance, Address call_target);
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-498-
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:499:  // Get the debug info associated with the given wasm object.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-500-  // If no debug info exists yet, it is created automatically.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-620-
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:621:// A Wasm exception that has been thrown out of Wasm code.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-622-class WasmExceptionPackage : public JSReceiver {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-641-
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:642:// A Wasm function that is wrapped and exported to JavaScript.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-643-// Representation of WebAssembly.Function JavaScript-level object.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-662-
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:663:// A Wasm function that was created by wrapping a JavaScript callable.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-664-// Representation of WebAssembly.Function JavaScript-level object.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-682-
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:683:// An external function exposed to Wasm via the C/C++ API.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-684-class WasmCapiFunction : public JSFunction {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-703-// class just dispatches to the following concrete classes:
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:704://  - {WasmExportedFunction}: A proper Wasm function exported from a module.
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-705-//  - {WasmJSFunction}: A function constructed via WebAssembly.Function in JS.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-814-
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:815:// Debug info used for wasm debugging in the interpreter. For Liftoff debugging,
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-816-// all information is held off-heap in {wasm::DebugInfo}.
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-903-
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h:904:// Tags provide an object identity for each exception defined in a wasm module
chromium-84.0.4147.105/v8/src/wasm/wasm-objects.h-905-// header. They are referenced by the following fields:
##############################################
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder.h-19-
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder.h:20:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder.h-21-
##############################################
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.cc-11-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.cc:12:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/jump-table-assembler.cc-13-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-js.h-12-
chromium-84.0.4147.105/v8/src/wasm/wasm-js.h:13:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-js.h-14-class StreamingDecoder;
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-features.cc-11-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-features.cc:12:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-features.cc-13-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-482-  if (!i::wasm::IsWasmCodegenAllowed(i_isolate, i_isolate->native_context())) {
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc:483:    thrower.CompileError("Wasm code generation disallowed by embedder");
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-484-  }
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-559-  if (!i::wasm::IsWasmCodegenAllowed(i_isolate, i_isolate->native_context())) {
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc:560:    thrower.CompileError("Wasm code generation disallowed by embedder");
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-561-    resolver->OnCompilationFailed(thrower.Reify());
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-649-  if (!i::wasm::IsWasmCodegenAllowed(i_isolate, i_isolate->native_context())) {
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc:650:    thrower.CompileError("Wasm code generation disallowed by embedder");
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-651-    return;
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-823-  if (!i::wasm::IsWasmCodegenAllowed(i_isolate, i_isolate->native_context())) {
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc:824:    thrower.CompileError("Wasm code generation disallowed by embedder");
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-825-    resolver->OnInstantiationFailed(thrower.Reify());
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-950-  if (!i::wasm::IsWasmCodegenAllowed(i_isolate, i_isolate->native_context())) {
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc:951:    thrower.CompileError("Wasm code generation disallowed by embedder");
chromium-84.0.4147.105/v8/src/wasm/wasm-js.cc-952-    compilation_resolver->OnCompilationFailed(thrower.Reify());
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-debug-evaluate.cc-23-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/wasm-debug-evaluate.cc:24:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-debug-evaluate.cc-25-namespace {
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-debug-evaluate.cc-308-  WasmEngine* engine = isolate->wasm_engine();
chromium-84.0.4147.105/v8/src/wasm/wasm-debug-evaluate.cc:309:  wasm::ErrorThrower thrower(isolate, "wasm debug evaluate");
chromium-84.0.4147.105/v8/src/wasm/wasm-debug-evaluate.cc-310-
##############################################
chromium-84.0.4147.105/v8/src/wasm/local-decl-encoder.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/local-decl-encoder.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/local-decl-encoder.h-16-
##############################################
chromium-84.0.4147.105/v8/src/wasm/wasm-opcodes.h-15-
chromium-84.0.4147.105/v8/src/wasm/wasm-opcodes.h:16:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/wasm-opcodes.h-17-
##############################################
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder.cc-19-namespace internal {
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder.cc:20:namespace wasm {
chromium-84.0.4147.105/v8/src/wasm/function-body-decoder.cc-21-
##############################################
chromium-84.0.4147.105/v8/src/logging/counters-definitions.h-79-     V8.WasmModuleNumberOfCodeGCsTriggered, 1, 128, 20)                        \
chromium-84.0.4147.105/v8/src/logging/counters-definitions.h:80:  /* number of code spaces reserved per wasm module */                         \
chromium-84.0.4147.105/v8/src/logging/counters-definitions.h-81-  HR(wasm_module_num_code_spaces, V8.WasmModuleNumberOfCodeSpaces, 1, 128, 20) \
##############################################
chromium-84.0.4147.105/v8/src/logging/counters-definitions.h-167-     V8.TurboFanOptimizeForOnStackReplacementTotalTime, 10000000, MICROSECOND) \
chromium-84.0.4147.105/v8/src/logging/counters-definitions.h:168:  /* Wasm timers. */                                                           \
chromium-84.0.4147.105/v8/src/logging/counters-definitions.h-169-  HT(wasm_compile_asm_module_time, V8.WasmCompileModuleMicroSeconds.asm,       \
##############################################
chromium-84.0.4147.105/v8/src/logging/log.cc-1307-  // We have to add two extra fields that allow the tick processor to group
chromium-84.0.4147.105/v8/src/logging/log.cc:1308:  // events for the same wasm function, even if it gets compiled again. For
chromium-84.0.4147.105/v8/src/logging/log.cc-1309-  // normal JS functions, we use the shared function info. For wasm, the pointer
##############################################
chromium-84.0.4147.105/v8/src/logging/log.cc-2051-    case AbstractCode::WASM_FUNCTION:
chromium-84.0.4147.105/v8/src/logging/log.cc:2052:      description = "A Wasm function";
chromium-84.0.4147.105/v8/src/logging/log.cc-2053-      tag = CodeEventListener::FUNCTION_TAG;
##############################################
chromium-84.0.4147.105/v8/src/logging/log.cc-2055-    case AbstractCode::JS_TO_WASM_FUNCTION:
chromium-84.0.4147.105/v8/src/logging/log.cc:2056:      description = "A JavaScript to Wasm adapter";
chromium-84.0.4147.105/v8/src/logging/log.cc-2057-      tag = CodeEventListener::STUB_TAG;
##############################################
chromium-84.0.4147.105/v8/src/logging/log.cc-2063-    case AbstractCode::WASM_TO_CAPI_FUNCTION:
chromium-84.0.4147.105/v8/src/logging/log.cc:2064:      description = "A Wasm to C-API adapter";
chromium-84.0.4147.105/v8/src/logging/log.cc-2065-      tag = CodeEventListener::STUB_TAG;
##############################################
chromium-84.0.4147.105/v8/src/logging/log.cc-2067-    case AbstractCode::WASM_TO_JS_FUNCTION:
chromium-84.0.4147.105/v8/src/logging/log.cc:2068:      description = "A Wasm to JavaScript adapter";
chromium-84.0.4147.105/v8/src/logging/log.cc-2069-      tag = CodeEventListener::STUB_TAG;
##############################################
chromium-84.0.4147.105/v8/src/logging/log.cc-2071-    case AbstractCode::C_WASM_ENTRY:
chromium-84.0.4147.105/v8/src/logging/log.cc:2072:      description = "A C to Wasm entry stub";
chromium-84.0.4147.105/v8/src/logging/log.cc-2073-      tag = CodeEventListener::STUB_TAG;
##############################################
chromium-84.0.4147.105/v8/src/logging/code-events.h-25-
chromium-84.0.4147.105/v8/src/logging/code-events.h:26:namespace wasm {
chromium-84.0.4147.105/v8/src/logging/code-events.h-27-class WasmCode;
##############################################
chromium-84.0.4147.105/v8/src/inspector/v8-debugger.cc-688-      case v8::debug::ScopeIterator::ScopeTypeWasmExpressionStack:
chromium-84.0.4147.105/v8/src/inspector/v8-debugger.cc:689:        description = "Wasm Expression Stack" + nameSuffix;
chromium-84.0.4147.105/v8/src/inspector/v8-debugger.cc-690-        break;
##############################################
chromium-84.0.4147.105/v8/src/inspector/v8-debugger-agent-impl.cc-649-  // TODO(duongn): we can do better here if from breakpoint id we can tell it is
chromium-84.0.4147.105/v8/src/inspector/v8-debugger-agent-impl.cc:650:  // not Wasm breakpoint.
chromium-84.0.4147.105/v8/src/inspector/v8-debugger-agent-impl.cc-651-  std::vector<V8DebuggerScript*> scripts;
##############################################
chromium-84.0.4147.105/v8/src/inspector/v8-debugger-agent-impl.cc-1583-
chromium-84.0.4147.105/v8/src/inspector/v8-debugger-agent-impl.cc:1584:  // TODO(herhut, dgozman): Report correct length for Wasm if needed for
chromium-84.0.4147.105/v8/src/inspector/v8-debugger-agent-impl.cc-1585-  // coverage. Or do not send the length at all and change coverage instead.
##############################################
chromium-84.0.4147.105/v8/src/compiler/linkage.h-201-    kCallAddress,            // target is a machine pointer
chromium-84.0.4147.105/v8/src/compiler/linkage.h:202:    kCallWasmCapiFunction,   // target is a Wasm C API function
chromium-84.0.4147.105/v8/src/compiler/linkage.h:203:    kCallWasmFunction,       // target is a wasm function
chromium-84.0.4147.105/v8/src/compiler/linkage.h:204:    kCallWasmImportWrapper,  // target is a wasm import wrapper
chromium-84.0.4147.105/v8/src/compiler/linkage.h-205-    kCallBuiltinPointer,     // target is a builtin pointer
##############################################
chromium-84.0.4147.105/v8/src/compiler/linkage.h-269-
chromium-84.0.4147.105/v8/src/compiler/linkage.h:270:  // Returns {true} if this descriptor is a call to a Wasm C API function.
chromium-84.0.4147.105/v8/src/compiler/linkage.h-271-  bool IsWasmCapiFunction() const { return kind_ == kCallWasmCapiFunction; }
##############################################
chromium-84.0.4147.105/v8/src/compiler/simd-scalar-lowering.cc-1127-    case IrOpcode::kCall: {
chromium-84.0.4147.105/v8/src/compiler/simd-scalar-lowering.cc:1128:      // TODO(turbofan): Make wasm code const-correct wrt. CallDescriptor.
chromium-84.0.4147.105/v8/src/compiler/simd-scalar-lowering.cc-1129-      auto call_descriptor =
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-40-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:41:namespace wasm {
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-42-struct DecodeStruct;
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-56-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:57:// Calls to Wasm imports are handled in several different ways, depending on the
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-58-// type of the target function/callable and whether the signature matches the
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-60-enum class WasmImportCallKind : uint8_t {
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:61:  kLinkError,                // static Wasm->Wasm type error
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-62-  kRuntimeTypeError,         // runtime Wasm->JS type error
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-63-  kWasmToCapi,               // fast Wasm->C-API call
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:64:  kWasmToWasm,               // fast Wasm->Wasm call
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-65-  kJSFunctionArityMatch,     // fast Wasm->JS call
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-107-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:108:// Compiles an import call wrapper, which allows Wasm to call imports.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-109-V8_EXPORT_PRIVATE wasm::WasmCompilationResult CompileWasmImportCallWrapper(
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-112-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:113:// Compiles a host call wrapper, which allows Wasm to call host functions.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-114-wasm::WasmCode* CompileWasmCapiCallWrapper(wasm::WasmEngine*,
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-118-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:119:// Returns an OptimizedCompilationJob object for a JS to Wasm wrapper.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-120-std::unique_ptr<OptimizedCompilationJob> NewJSToWasmCompilationJob(
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-144-// This struct allows the SSA environment handling this cache to be defined
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:145:// and manipulated in wasm-compiler.{h,cc} instead of inside the Wasm decoder.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-146-// (Note that currently, the globals base is immutable, so not cached here.)
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-152-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:153:// Abstracts details of building TurboFan graph nodes for wasm to separate
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h:154:// the wasm decoder from the internal details of TurboFan.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.h-155-class WasmGraphBuilder {
##############################################
chromium-84.0.4147.105/v8/src/compiler/verifier.h-25-  enum CheckInputs { kValuesOnly, kAll };
chromium-84.0.4147.105/v8/src/compiler/verifier.h:26:  enum CodeType { kDefault, kWasm };
chromium-84.0.4147.105/v8/src/compiler/verifier.h-27-
##############################################
chromium-84.0.4147.105/v8/src/compiler/pipeline.cc-1279-  if (info_.trace_turbo_graph_enabled()) {  // Simple textual RPO.
chromium-84.0.4147.105/v8/src/compiler/pipeline.cc:1280:    StdoutStream{} << "-- wasm stub " << Code::Kind2String(info_.code_kind())
chromium-84.0.4147.105/v8/src/compiler/pipeline.cc-1281-                   << " graph -- " << std::endl
##############################################
chromium-84.0.4147.105/v8/src/compiler/pipeline.cc-2752-  if (info.trace_turbo_graph_enabled()) {  // Simple textual RPO.
chromium-84.0.4147.105/v8/src/compiler/pipeline.cc:2753:    StdoutStream{} << "-- wasm stub " << Code::Kind2String(kind) << " graph -- "
chromium-84.0.4147.105/v8/src/compiler/pipeline.cc-2754-                   << std::endl
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-291-      this, StubCallMode::kCallWasmRuntimeStub);
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:292:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-293-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-367-        StubCallMode::kCallWasmRuntimeStub);  // stub call mode
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:368:    // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-369-    // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-2052-      StubCallMode::kCallWasmRuntimeStub);            // stub call mode
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:2053:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-2054-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-2790-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:2791:  // A direct call to a wasm function defined in this module.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-2792-  // Just encode the function index. This will be patched at instantiation.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-2946-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:2947:  // A direct tail call to a wasm function defined in this module.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-2948-  // Just encode the function index. This will be patched during code
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-3423-      this, StubCallMode::kCallWasmRuntimeStub);
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:3424:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-3425-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-3437-      this, StubCallMode::kCallWasmRuntimeStub);
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:3438:  // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-3439-  // Just encode the stub index. This will be patched at relocation.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-3755-#else
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:3756:  // Wasm semantics throw on OOB. Introduce explicit bounds check and
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-3757-  // conditioning when not using the trap handler.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-3789-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:3790:  // Wasm semantics throw on OOB. Introduce explicit bounds check and
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-3791-  // conditioning when not using the trap handler.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5237-    origins_->SetNodeOrigin(
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5238:        node, NodeOrigin("wasm graph creation", "n/a",
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5239-                         NodeOrigin::kWasmBytecode, decoder_->position()));
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5439-                       const wasm::FunctionSig* sig) {
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5440:    // Convert wasm numbers to JS values.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5441-    for (int i = 0; i < param_count; ++i) {
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5722-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5723:    // Convert JS parameters to wasm numbers.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5724-    for (int i = 0; i < wasm_count; ++i) {
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5729-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5730:    // Set the ThreadInWasm flag before we do the actual call.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5731-    BuildModifyThreadInWasmFlag(true);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5740-    } else {
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5741:      // Call to a wasm function defined in this module.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5742-      // The call target is the jump table slot for that function.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5754-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5755:    // Clear the ThreadInWasm flag.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5756-    BuildModifyThreadInWasmFlag(false);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5828-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5829:    // The callable is passed as the last parameter, after Wasm arguments.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5830-    Node* callable_node = Param(wasm_count + 1);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5835-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5836:    // Clear the ThreadInWasm flag.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5837-    BuildModifyThreadInWasmFlag(false);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5857-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5858:        // Convert wasm numbers to JS values.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5859-        pos = AddArgumentNodes(VectorOf(args), pos, wasm_count, sig_);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5909-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5910:        // Convert wasm numbers to JS values.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5911-        pos = AddArgumentNodes(VectorOf(args), pos, wasm_count, sig_);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5936-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:5937:        // Convert wasm numbers to JS values.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-5938-        pos = AddArgumentNodes(VectorOf(args), pos, wasm_count, sig_);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6013-    }
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:6014:    // The function is passed as the last parameter, after Wasm arguments.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6015-    Node* function_node = Param(param_count + 1);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6136-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:6137:    // Convert parameter JS values to wasm numbers and back to JS values.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6138-    for (int i = 0; i < wasm_count; ++i) {
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6151-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:6152:    // Convert return JS values to wasm numbers and back to JS values.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6153-    Node* jsval;
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6208-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:6209:    // Call the wasm code.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6210-    auto call_descriptor = GetWasmCallDescriptor(mcgraph()->zone(), sig_);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6478-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:6479:  // Compile a Wasm function with a single bytecode and let TurboFan
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6480-  // generate either inlined machine code or a call to a helper.
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6610-                    1 /* offset for first parameter index being -1 */ +
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:6611:                    1 /* Wasm instance */ + 1 /* kExtraCallableParam */;
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6612-  Node* start = builder.Start(param_count);
##############################################
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6962-
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc:6963:  // The target for wasm calls is always a code object.
chromium-84.0.4147.105/v8/src/compiler/wasm-compiler.cc-6964-  MachineType target_type = MachineType::Pointer();
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/arm/code-generator-arm.cc-3442-        gen_->AssembleSourcePosition(instr_);
chromium-84.0.4147.105/v8/src/compiler/backend/arm/code-generator-arm.cc:3443:        // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/arm/code-generator-arm.cc-3444-        // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/arm/code-generator-arm.cc:3445:        // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/arm/code-generator-arm.cc-3446-        __ Call(static_cast<Address>(trap_id), RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/arm/code-generator-arm.cc-3552-                 call_descriptor->IsWasmCapiFunction()) {
chromium-84.0.4147.105/v8/src/compiler/backend/arm/code-generator-arm.cc:3553:        // Wasm import wrappers are passed a tuple in the place of the instance.
chromium-84.0.4147.105/v8/src/compiler/backend/arm/code-generator-arm.cc-3554-        // Unpack the tuple into the instance and the target callable.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc-177-    } else if (stub_mode_ == StubCallMode::kCallWasmRuntimeStub) {
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc:178:      // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc-179-      // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc:180:      // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc-181-      __ CallRecordWriteStub(object_, scratch1_, remembered_set_action,
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc-3518-        gen_->AssembleSourcePosition(instr_);
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc:3519:        // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc-3520-        // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc:3521:        // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc-3522-        __ Call(static_cast<Address>(trap_id), RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc-3754-                 call_descriptor->IsWasmCapiFunction()) {
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc:3755:        // Wasm import wrappers are passed a tuple in the place of the instance.
chromium-84.0.4147.105/v8/src/compiler/backend/mips/code-generator-mips.cc-3756-        // Unpack the tuple into the instance and the target callable.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-266-    if (stub_mode_ == StubCallMode::kCallWasmRuntimeStub) {
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc:267:      // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-268-      // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc:269:      // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-270-      __ wasm_call(wasm::WasmCode::kDoubleToI, RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-318-    } else if (stub_mode_ == StubCallMode::kCallWasmRuntimeStub) {
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc:319:      // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-320-      // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc:321:      // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-322-      __ CallRecordWriteStub(object_, scratch1_, remembered_set_action,
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-4414-        gen_->AssembleSourcePosition(instr_);
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc:4415:        // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-4416-        // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc:4417:        // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-4418-        __ wasm_call(static_cast<Address>(trap_id), RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-4666-                 call_descriptor->IsWasmCapiFunction()) {
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc:4667:        // Wasm import wrappers are passed a tuple in the place of the instance.
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/code-generator-ia32.cc-4668-        // Unpack the tuple into the instance and the target callable.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/instruction-selector-ia32.cc-1510-
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/instruction-selector-ia32.cc:1511:  // Wasm lives in 32-bit address space, so we do not need to worry about
chromium-84.0.4147.105/v8/src/compiler/backend/ia32/instruction-selector-ia32.cc-1512-  // base/index lowering. This will need to be fixed for Wasm64.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/instruction-selector.h-82-
chromium-84.0.4147.105/v8/src/compiler/backend/instruction-selector.h:83:  // Creates a new flags continuation for a wasm trap.
chromium-84.0.4147.105/v8/src/compiler/backend/instruction-selector.h-84-  static FlagsContinuation ForTrap(FlagsCondition condition, TrapId trap_id,
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-215-    if (stub_mode_ == StubCallMode::kCallWasmRuntimeStub) {
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc:216:      // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-217-      // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc:218:      // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-219-      __ near_call(wasm::WasmCode::kDoubleToI, RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-277-    } else if (stub_mode_ == StubCallMode::kCallWasmRuntimeStub) {
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc:278:      // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-279-      // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc:280:      // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-281-      __ CallRecordWriteStub(object_, scratch1_, remembered_set_action,
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-332-      gen_->AssembleSourcePosition(instr_);
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc:333:      // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-334-      // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc:335:      // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-336-      __ near_call(static_cast<Address>(trap_id), RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-4376-                 call_descriptor->IsWasmCapiFunction()) {
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc:4377:        // Wasm import wrappers are passed a tuple in the place of the instance.
chromium-84.0.4147.105/v8/src/compiler/backend/x64/code-generator-x64.cc-4378-        // Unpack the tuple into the instance and the target callable.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc-178-    } else if (stub_mode_ == StubCallMode::kCallWasmRuntimeStub) {
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc:179:      // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc-180-      // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc:181:      // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc-182-      __ CallRecordWriteStub(object_, scratch1_, remembered_set_action,
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc-3786-        gen_->AssembleSourcePosition(instr_);
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc:3787:        // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc-3788-        // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc:3789:        // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc-3790-        __ Call(static_cast<Address>(trap_id), RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc-4034-                 call_descriptor->IsWasmCapiFunction()) {
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc:4035:        // Wasm import wrappers are passed a tuple in the place of the instance.
chromium-84.0.4147.105/v8/src/compiler/backend/mips64/code-generator-mips64.cc-4036-        // Unpack the tuple into the instance and the target callable.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-1399-    case kArchCallWasmFunction: {
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc:1400:      // We must not share code targets for calls to builtins for wasm code, as
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-1401-      // they might need to be patched individually.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-1440-    case kArchTailCallWasm: {
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc:1441:      // We must not share code targets for calls to builtins for wasm code, as
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-1442-      // they might need to be patched individually.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-4294-        gen_->AssembleSourcePosition(instr_);
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc:4295:        // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-4296-        // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc:4297:        // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-4298-        __ Call(static_cast<Address>(trap_id), RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-4437-                 call_descriptor->IsWasmCapiFunction()) {
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc:4438:        // Wasm import wrappers are passed a tuple in the place of the instance.
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-4439-        // Unpack the tuple into the instance and the target callable.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-4829-  for (size_t index = 0; index < target_count; ++index) {
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc:4830:    __ emit_label_addr(targets[index]);
chromium-84.0.4147.105/v8/src/compiler/backend/s390/code-generator-s390.cc-4831-  }
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc-298-    } else if (stub_mode_ == StubCallMode::kCallWasmRuntimeStub) {
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc:299:      // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc-300-      // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc:301:      // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc-302-      __ CallRecordWriteStub(object_, offset_, remembered_set_action,
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc-2683-        gen_->AssembleSourcePosition(instr_);
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc:2684:        // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc-2685-        // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc:2686:        // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/arm64/code-generator-arm64.cc-2687-        __ Call(static_cast<Address>(trap_id), RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-898-    case kArchCallWasmFunction: {
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc:899:      // We must not share code targets for calls to builtins for wasm code, as
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-900-      // they might need to be patched individually.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-941-    case kArchTailCallWasm: {
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc:942:      // We must not share code targets for calls to builtins for wasm code, as
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-943-      // they might need to be patched individually.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-2357-        gen_->AssembleSourcePosition(instr_);
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc:2358:        // A direct call to a wasm runtime stub defined in this module.
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-2359-        // Just encode the stub index. This will be patched when the code
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc:2360:        // is added to the native module and copied into wasm code space.
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-2361-        __ Call(static_cast<Address>(trap_id), RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-2473-  __ bge(GetLabel(i.InputRpo(1)));
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc:2474:  __ mov_label_addr(kScratchReg, table);
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-2475-  __ ShiftLeftImm(r0, input, Operand(kSystemPointerSizeLog2));
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-2538-                 call_descriptor->IsWasmCapiFunction()) {
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc:2539:        // Wasm import wrappers are passed a tuple in the place of the instance.
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-2540-        // Unpack the tuple into the instance and the target callable.
##############################################
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-2927-  for (size_t index = 0; index < target_count; ++index) {
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc:2928:    __ emit_label_addr(targets[index]);
chromium-84.0.4147.105/v8/src/compiler/backend/ppc/code-generator-ppc.cc-2929-  }
##############################################
chromium-84.0.4147.105/v8/src/compiler/js-call-reducer.cc-332-    // Should only be used to initialize the outermost scope (inner scopes
chromium-84.0.4147.105/v8/src/compiler/js-call-reducer.cc:333:    // always have a handler and are passed the gasm pointer at construction).
chromium-84.0.4147.105/v8/src/compiler/js-call-reducer.cc-334-    void set_has_handler(bool v) {
##############################################
chromium-84.0.4147.105/v8/src/compiler/pipeline-statistics.cc-20-// We log detailed phase information about the pipeline
chromium-84.0.4147.105/v8/src/compiler/pipeline-statistics.cc:21:// in both the v8.turbofan and the v8.wasm categories.
chromium-84.0.4147.105/v8/src/compiler/pipeline-statistics.cc-22-constexpr const char kTraceCategory[] =           // --
##############################################
chromium-84.0.4147.105/v8/src/compiler/code-assembler.cc-181-
chromium-84.0.4147.105/v8/src/compiler/code-assembler.cc:182:  RawMachineAssembler* rasm = state->raw_assembler_.get();
chromium-84.0.4147.105/v8/src/compiler/code-assembler.cc-183-
##############################################
chromium-84.0.4147.105/v8/src/compiler/verifier.cc-153-  // consumed as an effect input somewhere else.
chromium-84.0.4147.105/v8/src/compiler/verifier.cc:154:  // TODO(mvstanton): support this kind of verification for Wasm compiles, too.
chromium-84.0.4147.105/v8/src/compiler/verifier.cc:155:  if (code_type != kWasm && node->op()->EffectOutputCount() > 0) {
chromium-84.0.4147.105/v8/src/compiler/verifier.cc-156-    int effect_edges = 0;
##############################################
chromium-84.0.4147.105/v8/src/compiler/pipeline.h-23-
chromium-84.0.4147.105/v8/src/compiler/pipeline.h:24:namespace wasm {
chromium-84.0.4147.105/v8/src/compiler/pipeline.h-25-struct FunctionBody;
##############################################
chromium-84.0.4147.105/v8/src/compiler/pipeline.h-66-
chromium-84.0.4147.105/v8/src/compiler/pipeline.h:67:  // Returns a new compilation job for a wasm heap stub.
chromium-84.0.4147.105/v8/src/compiler/pipeline.h-68-  static std::unique_ptr<OptimizedCompilationJob> NewWasmHeapStubCompilationJob(
##############################################
chromium-84.0.4147.105/v8/src/base/platform/platform.h-270-
chromium-84.0.4147.105/v8/src/base/platform/platform.h:271:  static void* GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/base/platform/platform.h-272-
##############################################
chromium-84.0.4147.105/v8/src/base/platform/platform-win32.cc-726-// static
chromium-84.0.4147.105/v8/src/base/platform/platform-win32.cc:727:void* OS::GetRandomMmapAddr() {
chromium-84.0.4147.105/v8/src/base/platform/platform-win32.cc-728-// The address range used to randomize RWX allocations in OS::Allocate
##############################################
chromium-84.0.4147.105/v8/src/base/platform/platform-win32.cc-941-  // instead
chromium-84.0.4147.105/v8/src/base/platform/platform-win32.cc:942:  // __asm { int 3 }
chromium-84.0.4147.105/v8/src/base/platform/platform-win32.cc-943-  __debugbreak();
##############################################
chromium-84.0.4147.105/v8/src/base/platform/platform-linux.cc-137-  }
chromium-84.0.4147.105/v8/src/base/platform/platform-linux.cc:138:  void* addr = mmap(OS::GetRandomMmapAddr(), size, PROT_READ | PROT_EXEC,
chromium-84.0.4147.105/v8/src/base/platform/platform-linux.cc-139-                    MAP_PRIVATE, fileno(f), 0);
##############################################
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc-246-// static
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc:247:void* OS::GetRandomMmapAddr() {
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc-248-  uintptr_t raw_addr;
##############################################
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc-480-  // Software breakpoint instruction is 0x0001
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc:481:  asm volatile(".word 0x0001");
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc-482-#else
##############################################
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc-518-        void* const memory =
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc:519:            mmap(OS::GetRandomMmapAddr(), size, prot, flags, fileno(file), 0);
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc-520-        if (memory != MAP_FAILED) {
##############################################
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc-536-    if (result == size && !ferror(file)) {
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc:537:      void* memory = mmap(OS::GetRandomMmapAddr(), result,
chromium-84.0.4147.105/v8/src/base/platform/platform-posix.cc-538-                          PROT_READ | PROT_WRITE, MAP_SHARED, fileno(file), 0);
##############################################
chromium-84.0.4147.105/v8/src/base/page-allocator.cc-34-
chromium-84.0.4147.105/v8/src/base/page-allocator.cc:35:void* PageAllocator::GetRandomMmapAddr() {
chromium-84.0.4147.105/v8/src/base/page-allocator.cc:36:  return base::OS::GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/base/page-allocator.cc-37-}
##############################################
chromium-84.0.4147.105/v8/src/base/debug/stack_trace_win.cc-127-    BOOL has_symbol =
chromium-84.0.4147.105/v8/src/base/debug/stack_trace_win.cc:128:        SymFromAddr(GetCurrentProcess(), frame, &sym_displacement, symbol);
chromium-84.0.4147.105/v8/src/base/debug/stack_trace_win.cc-129-
##############################################
chromium-84.0.4147.105/v8/src/base/page-allocator.h-26-
chromium-84.0.4147.105/v8/src/base/page-allocator.h:27:  void* GetRandomMmapAddr() override;
chromium-84.0.4147.105/v8/src/base/page-allocator.h-28-
##############################################
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-70-    return cast_helper<T>::to_return_type(
chromium-84.0.4147.105/v8/src/base/atomic-utils.h:71:        base::Acquire_Load(to_storage_addr(addr)));
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-72-  }
##############################################
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-77-    return cast_helper<T>::to_return_type(
chromium-84.0.4147.105/v8/src/base/atomic-utils.h:78:        base::Relaxed_Load(to_storage_addr(addr)));
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-79-  }
##############################################
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-84-    STATIC_ASSERT(sizeof(T) <= sizeof(AtomicStorageType));
chromium-84.0.4147.105/v8/src/base/atomic-utils.h:85:    base::Release_Store(to_storage_addr(addr),
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-86-                        cast_helper<T>::to_storage_type(new_value));
##############################################
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-92-    STATIC_ASSERT(sizeof(T) <= sizeof(AtomicStorageType));
chromium-84.0.4147.105/v8/src/base/atomic-utils.h:93:    base::Relaxed_Store(to_storage_addr(addr),
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-94-                        cast_helper<T>::to_storage_type(new_value));
##############################################
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-102-    return cast_helper<T>::to_return_type(base::Release_CompareAndSwap(
chromium-84.0.4147.105/v8/src/base/atomic-utils.h:103:        to_storage_addr(addr), cast_helper<T>::to_storage_type(old_value),
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-104-        cast_helper<T>::to_storage_type(new_value)));
##############################################
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-112-    return cast_helper<T>::to_return_type(base::Relaxed_CompareAndSwap(
chromium-84.0.4147.105/v8/src/base/atomic-utils.h:113:        to_storage_addr(addr), cast_helper<T>::to_storage_type(old_value),
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-114-        cast_helper<T>::to_storage_type(new_value)));
##############################################
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-122-    return cast_helper<T>::to_return_type(base::AcquireRelease_CompareAndSwap(
chromium-84.0.4147.105/v8/src/base/atomic-utils.h:123:        to_storage_addr(addr), cast_helper<T>::to_storage_type(old_value),
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-124-        cast_helper<T>::to_storage_type(new_value)));
##############################################
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-165-  template <typename T>
chromium-84.0.4147.105/v8/src/base/atomic-utils.h:166:  static AtomicStorageType* to_storage_addr(T* value) {
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-167-    return reinterpret_cast<AtomicStorageType*>(value);
##############################################
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-169-  template <typename T>
chromium-84.0.4147.105/v8/src/base/atomic-utils.h:170:  static const AtomicStorageType* to_storage_addr(const T* value) {
chromium-84.0.4147.105/v8/src/base/atomic-utils.h-171-    return reinterpret_cast<const AtomicStorageType*>(value);
##############################################
chromium-84.0.4147.105/v8/src/base/bounded-page-allocator.h-51-
chromium-84.0.4147.105/v8/src/base/bounded-page-allocator.h:52:  void* GetRandomMmapAddr() override {
chromium-84.0.4147.105/v8/src/base/bounded-page-allocator.h:53:    return page_allocator_->GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/base/bounded-page-allocator.h-54-  }
##############################################
chromium-84.0.4147.105/v8/src/deoptimizer/deoptimizer.cc-1481-//    | res padding (arch dept) |<- only if {is_topmost}; result is pop'd by
chromium-84.0.4147.105/v8/src/deoptimizer/deoptimizer.cc:1482://    +-------------------------+<- kNotifyDeopt ASM stub and moved to acc
chromium-84.0.4147.105/v8/src/deoptimizer/deoptimizer.cc-1483-//    |      result  value      |<- reg, as ContinueToBuiltin stub expects.
##############################################
chromium-84.0.4147.105/v8/src/deoptimizer/arm64/deoptimizer-arm64.cc-123-  // We save all the registers except sp, lr, platform register (x18) and the
chromium-84.0.4147.105/v8/src/deoptimizer/arm64/deoptimizer-arm64.cc:124:  // masm scratches.
chromium-84.0.4147.105/v8/src/deoptimizer/arm64/deoptimizer-arm64.cc-125-  CPURegList saved_registers(CPURegister::kRegister, kXRegSizeInBits, 0, 28);
##############################################
chromium-84.0.4147.105/v8/src/sanitizer/lsan-page-allocator.h-29-
chromium-84.0.4147.105/v8/src/sanitizer/lsan-page-allocator.h:30:  void* GetRandomMmapAddr() override {
chromium-84.0.4147.105/v8/src/sanitizer/lsan-page-allocator.h:31:    return page_allocator_->GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/sanitizer/lsan-page-allocator.h-32-  }
##############################################
chromium-84.0.4147.105/v8/src/codegen/compiler.cc-459-
chromium-84.0.4147.105/v8/src/codegen/compiler.cc:460:    // If the function failed asm-wasm compilation, mark asm_wasm as broken
chromium-84.0.4147.105/v8/src/codegen/compiler.cc-461-    // to ensure we don't try to compile as asm-wasm.
##############################################
chromium-84.0.4147.105/v8/src/codegen/compiler.cc-472-    DCHECK(compilation_info->has_asm_wasm_data());
chromium-84.0.4147.105/v8/src/codegen/compiler.cc:473:    // We should only have asm/wasm data when finalizing on the main thread.
chromium-84.0.4147.105/v8/src/codegen/compiler.cc-474-    DCHECK((std::is_same<LocalIsolate, Isolate>::value));
##############################################
chromium-84.0.4147.105/v8/src/codegen/optimized-compilation-info.h-34-
chromium-84.0.4147.105/v8/src/codegen/optimized-compilation-info.h:35:namespace wasm {
chromium-84.0.4147.105/v8/src/codegen/optimized-compilation-info.h-36-struct WasmCompilationResult;
##############################################
chromium-84.0.4147.105/v8/src/codegen/arm/cpu-arm.cc-39-
chromium-84.0.4147.105/v8/src/codegen/arm/cpu-arm.cc:40:  asm volatile(
chromium-84.0.4147.105/v8/src/codegen/arm/cpu-arm.cc-41-      // This assembly works for both ARM and Thumb targets.
##############################################
chromium-84.0.4147.105/v8/src/codegen/mips/macro-assembler-mips.h-202-  // Deffer from li, this method save target to the memory, and then load
chromium-84.0.4147.105/v8/src/codegen/mips/macro-assembler-mips.h:203:  // it to register use lw, it can be used in wasm jump table for concurrent
chromium-84.0.4147.105/v8/src/codegen/mips/macro-assembler-mips.h-204-  // patching.
##############################################
chromium-84.0.4147.105/v8/src/codegen/bailout-reason.h-73-  V(kUnexpectedReturnFromWasmTrap,                                            \
chromium-84.0.4147.105/v8/src/codegen/bailout-reason.h:74:    "Should not return after throwing a wasm trap")                           \
chromium-84.0.4147.105/v8/src/codegen/bailout-reason.h-75-  V(kUnexpectedStackPointer, "The stack pointer is not the expected value")   \
##############################################
chromium-84.0.4147.105/v8/src/codegen/bailout-reason.h-84-  V(kWrongFunctionContext, "Wrong context passed to function")                \
chromium-84.0.4147.105/v8/src/codegen/bailout-reason.h:85:  V(kUnexpectedThreadInWasmSet, "thread_in_wasm flag was already set")        \
chromium-84.0.4147.105/v8/src/codegen/bailout-reason.h:86:  V(kUnexpectedThreadInWasmUnset, "thread_in_wasm flag was not set")
chromium-84.0.4147.105/v8/src/codegen/bailout-reason.h-87-
##############################################
chromium-84.0.4147.105/v8/src/codegen/ia32/macro-assembler-ia32.cc-464-  if (code_target.is_null()) {
chromium-84.0.4147.105/v8/src/codegen/ia32/macro-assembler-ia32.cc:465:    // Use {wasm_call} for direct Wasm call within a module.
chromium-84.0.4147.105/v8/src/codegen/ia32/macro-assembler-ia32.cc-466-    wasm_call(wasm_target, RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-201-    STATIC_ASSERT(IsValidExternalReferenceType<decltype(&Target)>::value); \
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:202:    return ExternalReference(Redirect(FUNCTION_ADDR(Target)));             \
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-203-  }
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-207-    STATIC_ASSERT(IsValidExternalReferenceType<decltype(&Target)>::value); \
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:208:    return ExternalReference(Redirect(FUNCTION_ADDR(Target)));             \
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-209-  }
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-213-    STATIC_ASSERT(IsValidExternalReferenceType<decltype(&Target)>::value); \
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:214:    return ExternalReference(Redirect(FUNCTION_ADDR(Target), Type));       \
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-215-  }
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-447-ExternalReference ExternalReference::invoke_function_callback() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:448:  Address thunk_address = FUNCTION_ADDR(&InvokeFunctionCallback);
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-449-  ExternalReference::Type thunk_type = ExternalReference::PROFILING_API_CALL;
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-454-ExternalReference ExternalReference::invoke_accessor_getter_callback() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:455:  Address thunk_address = FUNCTION_ADDR(&InvokeAccessorGetterCallback);
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-456-  ExternalReference::Type thunk_type = ExternalReference::PROFILING_GETTER_CALL;
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-584-ExternalReference ExternalReference::printf_function() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:585:  return ExternalReference(Redirect(FUNCTION_ADDR(std::printf)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-586-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-592-  auto f = SearchStringRaw<SubjectChar, PatternChar>;
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:593:  return ExternalReference(Redirect(FUNCTION_ADDR(f)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-594-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-794-ExternalReference ExternalReference::atomic_pair_load_function() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:795:  return ExternalReference(Redirect(FUNCTION_ADDR(atomic_pair_load)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-796-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-804-ExternalReference ExternalReference::atomic_pair_store_function() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:805:  return ExternalReference(Redirect(FUNCTION_ADDR(atomic_pair_store)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-806-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-816-ExternalReference ExternalReference::atomic_pair_add_function() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:817:  return ExternalReference(Redirect(FUNCTION_ADDR(atomic_pair_add)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-818-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-828-ExternalReference ExternalReference::atomic_pair_sub_function() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:829:  return ExternalReference(Redirect(FUNCTION_ADDR(atomic_pair_sub)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-830-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-840-ExternalReference ExternalReference::atomic_pair_and_function() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:841:  return ExternalReference(Redirect(FUNCTION_ADDR(atomic_pair_and)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-842-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-851-ExternalReference ExternalReference::atomic_pair_or_function() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:852:  return ExternalReference(Redirect(FUNCTION_ADDR(atomic_pair_or)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-853-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-863-ExternalReference ExternalReference::atomic_pair_xor_function() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:864:  return ExternalReference(Redirect(FUNCTION_ADDR(atomic_pair_xor)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-865-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-875-ExternalReference ExternalReference::atomic_pair_exchange_function() {
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc:876:  return ExternalReference(Redirect(FUNCTION_ADDR(atomic_pair_exchange)));
chromium-84.0.4147.105/v8/src/codegen/external-reference.cc-877-}
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc-23-#define ADD_RUNTIME_FUNCTION(name, ...) "Runtime::" #name,
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc:24:#define ADD_ISOLATE_ADDR(Name, name) "Isolate::" #name "_address",
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc-25-#define ADD_ACCESSOR_INFO_NAME(_, __, AccessorName, ...) \
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc-131-  static const Address c_builtins[] = {
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc:132:#define DEF_ENTRY(Name, ...) FUNCTION_ADDR(&Builtin_##Name),
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc-133-      BUILTIN_LIST_C(DEF_ENTRY)
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc-188-#define ACCESSOR_INFO_DECLARATION(_, __, AccessorName, ...) \
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc:189:  FUNCTION_ADDR(&Accessors::AccessorName##Getter),
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc-190-      ACCESSOR_INFO_LIST_GENERATOR(ACCESSOR_INFO_DECLARATION, /* not used */)
##############################################
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc-192-  // Setters:
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc:193:#define ACCESSOR_SETTER_DECLARATION(name) FUNCTION_ADDR(&Accessors::name),
chromium-84.0.4147.105/v8/src/codegen/external-reference-table.cc-194-          ACCESSOR_SETTER_LIST(ACCESSOR_SETTER_DECLARATION)
##############################################
chromium-84.0.4147.105/v8/src/codegen/unoptimized-compilation-info.h-100-
chromium-84.0.4147.105/v8/src/codegen/unoptimized-compilation-info.h:101:  // Holds the asm_wasm data struct generated by the asmjs compiler.
chromium-84.0.4147.105/v8/src/codegen/unoptimized-compilation-info.h-102-  Handle<AsmWasmData> asm_wasm_data_;
##############################################
chromium-84.0.4147.105/v8/src/codegen/x64/macro-assembler-x64.cc-435-  if (code_target.is_null()) {
chromium-84.0.4147.105/v8/src/codegen/x64/macro-assembler-x64.cc:436:    // Use {near_call} for direct Wasm call within a module.
chromium-84.0.4147.105/v8/src/codegen/x64/macro-assembler-x64.cc-437-    near_call(wasm_target, RelocInfo::WASM_STUB_CALL);
##############################################
chromium-84.0.4147.105/v8/src/codegen/x64/macro-assembler-x64.cc-2691-  // this to work in three situations:
chromium-84.0.4147.105/v8/src/codegen/x64/macro-assembler-x64.cc:2692:  // 1. In wasm compilation, the isolate is nullptr and thus no
chromium-84.0.4147.105/v8/src/codegen/x64/macro-assembler-x64.cc-2693-  //    ExternalReference can be created, but we can construct the address
##############################################
chromium-84.0.4147.105/v8/src/codegen/code-reference.h-16-
chromium-84.0.4147.105/v8/src/codegen/code-reference.h:17:namespace wasm {
chromium-84.0.4147.105/v8/src/codegen/code-reference.h-18-class WasmCode;
##############################################
chromium-84.0.4147.105/v8/src/codegen/mips64/macro-assembler-mips64.h-226-  // Deffer from li, this method save target to the memory, and then load
chromium-84.0.4147.105/v8/src/codegen/mips64/macro-assembler-mips64.h:227:  // it to register use ld, it can be used in wasm jump table for concurrent
chromium-84.0.4147.105/v8/src/codegen/mips64/macro-assembler-mips64.h-228-  // patching.
##############################################
chromium-84.0.4147.105/v8/src/codegen/safepoint-table.cc-174-  // (except for the pc), replace the whole table by a single entry with pc =
chromium-84.0.4147.105/v8/src/codegen/safepoint-table.cc:175:  // kMaxUInt32. This especially compacts the table for wasm code without tagged
chromium-84.0.4147.105/v8/src/codegen/safepoint-table.cc-176-  // pointers and without deoptimization info.
##############################################
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.cc-190-    // We register the instructions kill r0 (LHI) and the CC (STFLE).
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.cc:191:    asm volatile(
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.cc-192-        "lhi   %%r0,2\n"
##############################################
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.cc-797-
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.cc:798:void Assembler::emit_label_addr(Label* label) {
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.cc-799-  CheckBuffer();
##############################################
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.h-998-
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.h:999:  // wrappers around asm instr
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.h-1000-  void brxh(Register dst, Register inc, Label* L) {
##############################################
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.h-1361-  void EmitRelocations();
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.h:1362:  void emit_label_addr(Label* label);
chromium-84.0.4147.105/v8/src/codegen/s390/assembler-s390.h-1363-
##############################################
chromium-84.0.4147.105/v8/src/codegen/reloc-info.cc-377-  // TODO(jgruber): Investigate whether WASM_CALL is still appropriate on
chromium-84.0.4147.105/v8/src/codegen/reloc-info.cc:378:  // non-intel platforms now that wasm code is no longer on the heap.
chromium-84.0.4147.105/v8/src/codegen/reloc-info.cc-379-#if defined(V8_TARGET_ARCH_IA32) || defined(V8_TARGET_ARCH_X64)
##############################################
chromium-84.0.4147.105/v8/src/codegen/reloc-info.cc-439-    case WASM_CALL:
chromium-84.0.4147.105/v8/src/codegen/reloc-info.cc:440:      return "internal wasm call";
chromium-84.0.4147.105/v8/src/codegen/reloc-info.cc-441-    case WASM_STUB_CALL:
chromium-84.0.4147.105/v8/src/codegen/reloc-info.cc:442:      return "wasm stub call";
chromium-84.0.4147.105/v8/src/codegen/reloc-info.cc-443-    case NUMBER_OF_MODES:
##############################################
chromium-84.0.4147.105/v8/src/codegen/arm64/macro-assembler-arm64.cc-1750-// The calculated offset is either:
chromium-84.0.4147.105/v8/src/codegen/arm64/macro-assembler-arm64.cc:1751:// * the 'target' input unmodified if this is a Wasm call, or
chromium-84.0.4147.105/v8/src/codegen/arm64/macro-assembler-arm64.cc-1752-// * the offset of the target from the current PC, in instructions, for any
##############################################
chromium-84.0.4147.105/v8/src/codegen/arm64/macro-assembler-arm64.cc-2321-    // sp[0] : for alignment
chromium-84.0.4147.105/v8/src/codegen/arm64/macro-assembler-arm64.cc:2322:  } else if (type == StackFrame::WASM ||
chromium-84.0.4147.105/v8/src/codegen/arm64/macro-assembler-arm64.cc-2323-             type == StackFrame::WASM_COMPILE_LAZY ||
##############################################
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h-438-      int64_t offset, CheckAlignment check = CHECK_ALIGNMENT) const {
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h:439:    // The FUZZ_disasm test relies on no check being done.
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h-440-    DCHECK(check == NO_CHECK || IsAligned(offset, kInstrSize));
##############################################
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h-445-      int64_t offset, CheckAlignment check = CHECK_ALIGNMENT) {
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h:446:    // The FUZZ_disasm test relies on no check being done.
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h-447-    DCHECK(check == NO_CHECK || IsAligned(offset, kInstrSize));
##############################################
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h-551-  BREAK = 1 << 0,
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h:552:  LOG_DISASM = 1 << 1,    // Use only with TRACE. Disassemble the code.
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h-553-  LOG_REGS = 1 << 2,      // Log general purpose registers.
##############################################
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h-559-  LOG_STATE = LOG_REGS | LOG_VREGS | LOG_SYS_REGS,
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h:560:  LOG_ALL = LOG_DISASM | LOG_STATE | LOG_WRITE,
chromium-84.0.4147.105/v8/src/codegen/arm64/instructions-arm64.h-561-
##############################################
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.h-833-  // internal reference relocation.
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.h:834:  void mov_label_addr(Register dst, Label* label);
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.h-835-
##############################################
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.h-837-  // an internal reference relocation.
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.h:838:  void emit_label_addr(Label* label);
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.h-839-
##############################################
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.cc-1369-
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.cc:1370:void Assembler::mov_label_addr(Register dst, Label* label) {
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.cc-1371-  CheckBuffer();
##############################################
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.cc-1398-
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.cc:1399:void Assembler::emit_label_addr(Label* label) {
chromium-84.0.4147.105/v8/src/codegen/ppc/assembler-ppc.cc-1400-  CheckBuffer();
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/session.h-11-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/session.h:12:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/session.h-13-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/session.cc-10-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/session.cc:11:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/session.cc-12-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.cc-16-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.cc:17:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.cc-18-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.cc-112-          } else if (summary.IsWasm()) {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.cc:113:            FrameSummary::WasmFrameSummary const& wasm = summary.AsWasm();
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.cc-114-            offset = GetWasmFunctionOffset(wasm.wasm_instance()->module(),
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server-thread.cc-10-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server-thread.cc:11:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server-thread.cc-12-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server-thread.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server-thread.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server-thread.h-16-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-remote-util.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-remote-util.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-remote-util.h-16-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-remote-util.h-41-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-remote-util.h:42:// For LLDB debugging, an address in a Wasm module code space is represented
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-remote-util.h-43-// with 64 bits, where the first 32 bits identify the module id:
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/packet.h-13-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/packet.h:14:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/packet.h-15-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/packet.cc-9-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/packet.cc:10:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/packet.cc-11-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/transport.h-46-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/transport.h:47:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/transport.h-48-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/transport.cc-13-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/transport.cc:14:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/transport.cc-15-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h-13-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h:14:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h-15-
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h-19-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h:20:// Represents the interface to access the Wasm engine state for a given module.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h-21-// For the moment it only works with interpreted functions, in the future it
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h-68-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h:69:  // Handle stepping in wasm functions via the wasm interpreter.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h-70-  void PrepareStep();
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h-81-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h:82:  // Returns its first WasmInstance for this Wasm module.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/wasm-module-debug.h-83-  Handle<WasmInstanceObject> GetFirstWasmInstance();
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-remote-util.cc-9-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-remote-util.cc:10:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-remote-util.cc-11-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-16-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:17:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-18-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-120-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:121:  // Here, the wasm interpreter has suspended and we have updated the current
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-122-  // thread info.
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-137-  if (status_ == Status::Running) {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:138:    // TODO(paolosev) - this only suspends the wasm interpreter.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-139-    gdb_server_->Suspend();
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-145-    if (semaphore_.WaitFor(base::TimeDelta::FromMilliseconds(500))) {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:146:      // Here the wasm interpreter is suspended.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-147-      return;
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-265-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:266:    // Set thread for subsequent operations. For Wasm targets, we currently
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-267-    // assume that there is only one thread with id = kThreadId (= 1).
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-305-      }
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:306:      wasm_addr_t wasm_addr(address);
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-307-
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-400-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:401:      wasm_addr_t wasm_breakpoint_addr(breakpoint_address);
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-402-      if (!gdb_server_->AddBreakpoint(wasm_breakpoint_addr.ModuleId(),
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-426-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:427:      wasm_addr_t wasm_breakpoint_addr(breakpoint_address);
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-428-      if (!gdb_server_->RemoveBreakpoint(wasm_breakpoint_addr.ModuleId(),
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-522-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:523:  // Get a Wasm global value in the Wasm module specified.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-524-  // IN : $qWasmGlobal:frame_index;index
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-543-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:544:  // Get a Wasm local value in the stack frame specified.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-545-  // IN : $qWasmLocal:frame_index;index
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-564-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:565:  // Get a Wasm local from the operand stack at the index specified.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-566-  // IN : qWasmStackValue:frame_index;index
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-585-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc:586:  // Read Wasm memory.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.cc-587-  // IN : $qWasmMem:frame_index;addr;len
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.cc-16-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.cc:17:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.cc-18-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.h-16-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.h-23-// incoming GDB-remote packets, execute them forwarding the debugger commands
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.h:24:// and queries to the Wasm engine, and send back GDB-remote packets.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.h-25-class Target {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.h-67-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.h:68:  // Requests that the thread suspends execution at the next Wasm instruction.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/target.h-69-  void Suspend();
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-14-namespace internal {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:15:namespace wasm {
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-16-namespace gdb_server {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-20-// class GdbServer acts as a manager for the GDB-remote stub. It is instantiated
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:21:// as soon as the first Wasm module is loaded in the Wasm engine and spawns a
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-22-// separate thread to accept connections and exchange messages with a debugger.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-23-// It will contain the logic to serve debugger queries and access the state of
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:24:// the Wasm engine.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-25-class GdbServer {
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-29-  // May return null on failure.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:30:  // This should be called once, the first time a Wasm module is loaded in the
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:31:  // Wasm engine.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-32-  static std::unique_ptr<GdbServer> Create();
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-34-  // Stops the "GDB-remote" thread and waits for it to complete. This should be
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:35:  // called once, when the Wasm engine shuts down.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-36-  ~GdbServer();
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-37-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:38:  // Queries the set of the Wasm modules currently loaded. Each module is
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-39-  // identified by a unique integer module id.
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-45-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:46:  // Queries the value of the {index} global value in the Wasm module identified
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-47-  // by {frame_index}.
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-52-  // Queries the value of the {index} local value in the {frame_index}th stack
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:53:  // frame in the Wasm module identified by {frame_index}.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-54-  //
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-63-  // Reads {size} bytes, starting from {offset}, from the Memory instance
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:64:  // associated to the Wasm module identified by {frame_index}.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-65-  // Returns the number of bytes copied to {buffer}, or 0 is case of error.
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-71-  // Reads {size} bytes, starting from the low dword of {address}, from the Code
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:72:  // space of th Wasm module identified by high dword of {address}.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-73-  // Returns the number of bytes copied to {buffer}, or 0 is case of error.
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-76-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:77:  // Inserts a breakpoint at the offset {offset} of the Wasm module identified
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-78-  // by {wasm_module_id}.
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-81-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:82:  // Removes a breakpoint at the offset {offset} of the Wasm module identified
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-83-  // by {wasm_module_id}.
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-93-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:94:  // Requests that the thread suspend execution at the next Wasm instruction.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-95-  void Suspend();
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-96-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:97:  // Handle stepping in wasm functions via the wasm interpreter.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-98-  void PrepareStep();
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-119-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:120:  // Given a Wasm module id, retrieves the corresponding debugging WasmScript
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-121-  // object.
##############################################
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-178-
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h:179:  // Set of breakpoints currently defines in Wasm code.
chromium-84.0.4147.105/v8/src/debug/wasm/gdb-server/gdb-server.h-180-  typedef std::map<uint64_t, int> BreakpointsMap;
##############################################
chromium-84.0.4147.105/v8/src/debug/debug-interface.h-170-
chromium-84.0.4147.105/v8/src/debug/debug-interface.h:171:// Specialization for wasm Scripts.
chromium-84.0.4147.105/v8/src/debug/debug-interface.h-172-class WasmScript : public Script {
##############################################
chromium-84.0.4147.105/v8/src/debug/debug-scopes.cc-36-
chromium-84.0.4147.105/v8/src/debug/debug-scopes.cc:37:  // We should not instantiate a ScopeIterator for wasm frames.
chromium-84.0.4147.105/v8/src/debug/debug-scopes.cc-38-  DCHECK_NE(Script::TYPE_WASM, frame_inspector->GetScript()->type());
##############################################
chromium-84.0.4147.105/v8/src/debug/debug.cc-755-  int source_position = 0;
chromium-84.0.4147.105/v8/src/debug/debug.cc:756:  // Handle wasm function.
chromium-84.0.4147.105/v8/src/debug/debug.cc-757-  if (shared->HasWasmExportedFunctionData()) {
##############################################
chromium-84.0.4147.105/v8/src/debug/debug.cc-814-  });
chromium-84.0.4147.105/v8/src/debug/debug.cc:815:  // Clear all wasm breakpoints.
chromium-84.0.4147.105/v8/src/debug/debug.cc-816-  if (!wasm_scripts_with_breakpoints_.is_null()) {
##############################################
chromium-84.0.4147.105/v8/src/debug/debug.cc-1079-    }
chromium-84.0.4147.105/v8/src/debug/debug.cc:1080:    // In case the wasm code returns, prepare the next frame (if JS) to break.
chromium-84.0.4147.105/v8/src/debug/debug.cc-1081-    step_action = StepOut;
##############################################
chromium-84.0.4147.105/v8/src/builtins/builtins.h-76-  // The different builtin kinds are documented in builtins-definitions.h.
chromium-84.0.4147.105/v8/src/builtins/builtins.h:77:  enum Kind { CPP, TFJ, TFC, TFS, TFH, BCH, ASM };
chromium-84.0.4147.105/v8/src/builtins/builtins.h-78-
##############################################
chromium-84.0.4147.105/v8/src/builtins/setup-builtins-internal.cc-291-#define BUILD_CPP(Name)                                                      \
chromium-84.0.4147.105/v8/src/builtins/setup-builtins-internal.cc:292:  code = BuildAdaptor(isolate, index, FUNCTION_ADDR(Builtin_##Name), #Name); \
chromium-84.0.4147.105/v8/src/builtins/setup-builtins-internal.cc-293-  AddBuiltin(builtins, index++, code);
##############################################
chromium-84.0.4147.105/v8/src/builtins/ia32/builtins-ia32.cc-2948-
chromium-84.0.4147.105/v8/src/builtins/ia32/builtins-ia32.cc:2949:    // Push the Wasm instance as an explicit argument to WasmCompileLazy.
chromium-84.0.4147.105/v8/src/builtins/ia32/builtins-ia32.cc-2950-    __ Push(kWasmInstanceRegister);
##############################################
chromium-84.0.4147.105/v8/src/builtins/builtins-regexp.cc-77-
chromium-84.0.4147.105/v8/src/builtins/builtins-regexp.cc:78:// The properties `input` and `$_` are aliases for each other.  When this
chromium-84.0.4147.105/v8/src/builtins/builtins-regexp.cc-79-// value is set, the value it is set to is coerced to a string.
##############################################
chromium-84.0.4147.105/v8/src/builtins/builtins.cc-70-#define DECL_CPP(Name, ...) \
chromium-84.0.4147.105/v8/src/builtins/builtins.cc:71:  {#Name, Builtins::CPP, {FUNCTION_ADDR(Builtin_##Name)}},
chromium-84.0.4147.105/v8/src/builtins/builtins.cc-72-#define DECL_TFJ(Name, Count, ...) {#Name, Builtins::TFJ, {Count, 0}},
##############################################
chromium-84.0.4147.105/v8/src/builtins/builtins.cc-436-  //   f(1, 2, 3);
chromium-84.0.4147.105/v8/src/builtins/builtins.cc:437:  // TODO(delphick): This is probably too loose but for now Wasm can call any JS
chromium-84.0.4147.105/v8/src/builtins/builtins.cc:438:  // linkage builtin via its Code object. Once Wasm is fixed this can either be
chromium-84.0.4147.105/v8/src/builtins/builtins.cc-439-  // tighted or removed completely.
##############################################
chromium-84.0.4147.105/v8/src/builtins/x64/builtins-x64.cc-2861-
chromium-84.0.4147.105/v8/src/builtins/x64/builtins-x64.cc:2862:    // Push the Wasm instance as an explicit argument to WasmCompileLazy.
chromium-84.0.4147.105/v8/src/builtins/x64/builtins-x64.cc-2863-    __ Push(kWasmInstanceRegister);
##############################################
chromium-84.0.4147.105/v8/src/builtins/builtins-definitions.h-30-
chromium-84.0.4147.105/v8/src/builtins/builtins-definitions.h:31:// TODO(jgruber): Remove DummyDescriptor once all ASM builtins have been
chromium-84.0.4147.105/v8/src/builtins/builtins-definitions.h-32-// properly associated with their descriptor.
##############################################
chromium-84.0.4147.105/v8/src/builtins/builtins-definitions.h-838-                                                                               \
chromium-84.0.4147.105/v8/src/builtins/builtins-definitions.h:839:  /* Wasm */                                                                   \
chromium-84.0.4147.105/v8/src/builtins/builtins-definitions.h-840-  ASM(WasmCompileLazy, Dummy)                                                  \
##############################################
chromium-84.0.4147.105/v8/src/builtins/wasm.tq-21-
chromium-84.0.4147.105/v8/src/builtins/wasm.tq:22:namespace wasm {
chromium-84.0.4147.105/v8/src/builtins/wasm.tq-23-const kFuncTableType:
##############################################
chromium-84.0.4147.105/v8/src/utils/memcopy.h-200-#if defined(__GNUC__) && defined(STOS)
chromium-84.0.4147.105/v8/src/utils/memcopy.h:201:  asm volatile(
chromium-84.0.4147.105/v8/src/utils/memcopy.h-202-      "cld;"
##############################################
chromium-84.0.4147.105/v8/src/utils/memcopy.h-228-#if defined(__GNUC__) && defined(STOS)
chromium-84.0.4147.105/v8/src/utils/memcopy.h:229:  asm volatile(
chromium-84.0.4147.105/v8/src/utils/memcopy.h-230-      "cld;"
##############################################
chromium-84.0.4147.105/v8/src/utils/allocation.cc-160-
chromium-84.0.4147.105/v8/src/utils/allocation.cc:161:void* GetRandomMmapAddr() {
chromium-84.0.4147.105/v8/src/utils/allocation.cc:162:  return GetPlatformPageAllocator()->GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/utils/allocation.cc-163-}
##############################################
chromium-84.0.4147.105/v8/src/utils/allocation.cc-170-  if (FLAG_randomize_all_allocations) {
chromium-84.0.4147.105/v8/src/utils/allocation.cc:171:    hint = page_allocator->GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/utils/allocation.cc-172-  }
##############################################
chromium-84.0.4147.105/v8/src/utils/allocation.h-97-
chromium-84.0.4147.105/v8/src/utils/allocation.h:98:// Sets the random seed so that GetRandomMmapAddr() will generate repeatable
chromium-84.0.4147.105/v8/src/utils/allocation.h-99-// sequences of random mmap addresses.
##############################################
chromium-84.0.4147.105/v8/src/utils/allocation.h-102-// Generate a random address to be used for hinting allocation calls.
chromium-84.0.4147.105/v8/src/utils/allocation.h:103:V8_EXPORT_PRIVATE void* GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/utils/allocation.h-104-
##############################################
chromium-84.0.4147.105/v8/src/d8/d8.cc-2042-  DCHECK(!context.IsEmpty());
chromium-84.0.4147.105/v8/src/d8/d8.cc:2043:  if (i::FLAG_perf_prof_annotate_wasm || i::FLAG_vtune_prof_annotate_wasm) {
chromium-84.0.4147.105/v8/src/d8/d8.cc-2044-    isolate->SetWasmLoadSourceMapCallback(ReadFile);
##############################################
chromium-84.0.4147.105/v8/src/d8/d8.cc-2889-    } else if (strcmp(argv[i], "--no-wait-for-wasm") == 0) {
chromium-84.0.4147.105/v8/src/d8/d8.cc:2890:      // TODO(herhut) Remove this flag once wasm compilation is fully
chromium-84.0.4147.105/v8/src/d8/d8.cc-2891-      // isolate-independent.
chromium-84.0.4147.105/v8/src/d8/d8.cc:2892:      options.wait_for_wasm = false;
chromium-84.0.4147.105/v8/src/d8/d8.cc-2893-      argv[i] = nullptr;
##############################################
chromium-84.0.4147.105/v8/src/d8/d8.cc-3163-    i::wasm::WasmEngine* wasm_engine = i_isolate->wasm_engine();
chromium-84.0.4147.105/v8/src/d8/d8.cc:3164:    bool should_wait = (options.wait_for_wasm &&
chromium-84.0.4147.105/v8/src/d8/d8.cc-3165-                        wasm_engine->HasRunningCompileJob(i_isolate)) ||
##############################################
chromium-84.0.4147.105/v8/src/d8/d8.h-267-  bool omit_quit = false;
chromium-84.0.4147.105/v8/src/d8/d8.h:268:  bool wait_for_wasm = true;
chromium-84.0.4147.105/v8/src/d8/d8.h-269-  bool stress_opt = false;
##############################################
chromium-84.0.4147.105/v8/src/ast/scopes.cc-1778-  }
chromium-84.0.4147.105/v8/src/ast/scopes.cc:1779:  if (IsAsmModule()) Indent(n1, "// scope is an asm module\n");
chromium-84.0.4147.105/v8/src/ast/scopes.cc-1780-  if (is_declaration_scope() &&
##############################################
chromium-84.0.4147.105/v8/src/ast/scopes.h-365-  // Returns true if this scope or any inner scopes that might be eagerly
chromium-84.0.4147.105/v8/src/ast/scopes.h:366:  // compiled are asm modules.
chromium-84.0.4147.105/v8/src/ast/scopes.h-367-  bool ContainsAsmModule() const;
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/arm/disasm-arm.cc-2672-
chromium-84.0.4147.105/v8/src/diagnostics/arm/disasm-arm.cc:2673:namespace disasm {
chromium-84.0.4147.105/v8/src/diagnostics/arm/disasm-arm.cc-2674-
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/disassembler.cc-250-  } else if (RelocInfo::IsWasmStubCall(rmode) && host.is_wasm_code()) {
chromium-84.0.4147.105/v8/src/diagnostics/disassembler.cc:251:    // Host is isolate-independent, try wasm native module instead.
chromium-84.0.4147.105/v8/src/diagnostics/disassembler.cc-252-    const char* runtime_stub_name = GetRuntimeStubName(
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/disassembler.cc-254-            relocinfo->wasm_stub_call_address()));
chromium-84.0.4147.105/v8/src/diagnostics/disassembler.cc:255:    out->AddFormatted("    ;; wasm stub: %s", runtime_stub_name);
chromium-84.0.4147.105/v8/src/diagnostics/disassembler.cc-256-  } else if (RelocInfo::IsRuntimeEntry(rmode) && isolate &&
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/disassembler.cc-284-  CodeCommentsIterator cit(code.code_comments(), code.code_comments_size());
chromium-84.0.4147.105/v8/src/diagnostics/disassembler.cc:285:  // Relocation exists if we either have no isolate (wasm code),
chromium-84.0.4147.105/v8/src/diagnostics/disassembler.cc-286-  // or we have an isolate and it is not an off-heap instruction stream.
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.h-34- * Returns true if V8 if we can register unwinding data for the whole code range
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.h:35: * of an isolate or Wasm module. The first page of the code range is reserved
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.h-36- * and writable, to be used to store unwind data, as documented in:
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.h-54- * covers 4GB range which is sufficient to cover the whole code range of an
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.h:55: * isolate or Wasm module. For Windows ARM64, 1 RUNTIME_FUNCTION covers
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.h-56- * kMaxFunctionLength bytes so multiple RUNTIME_FUNCTION structs could be needed
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.h:57: * to cover the whole code range of an isolate or Wasm module. The extra
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.h-58- * RUNTIME_FUNCTIONs are assumed following the first one in the reserved page.
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/mips/disasm-mips.cc-2678-
chromium-84.0.4147.105/v8/src/diagnostics/mips/disasm-mips.cc:2679:namespace disasm {
chromium-84.0.4147.105/v8/src/diagnostics/mips/disasm-mips.cc-2680-
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/ia32/disasm-ia32.cc-15-
chromium-84.0.4147.105/v8/src/diagnostics/ia32/disasm-ia32.cc:16:namespace disasm {
chromium-84.0.4147.105/v8/src/diagnostics/ia32/disasm-ia32.cc-17-
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/x64/disasm-x64.cc-20-
chromium-84.0.4147.105/v8/src/diagnostics/x64/disasm-x64.cc:21:namespace disasm {
chromium-84.0.4147.105/v8/src/diagnostics/x64/disasm-x64.cc-22-
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/mips64/disasm-mips64.cc-2969-
chromium-84.0.4147.105/v8/src/diagnostics/mips64/disasm-mips64.cc:2970:namespace disasm {
chromium-84.0.4147.105/v8/src/diagnostics/mips64/disasm-mips64.cc-2971-
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.cc-519-  // RtlAddGrowableFunctionTable to register unwinding info for the whole code
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.cc:520:  // range of an isolate or Wasm module. This enables the Windows OS stack
chromium-84.0.4147.105/v8/src/diagnostics/unwinding-info-win64.cc-521-  // unwinder to work correctly with V8-generated code, enabling stack walking
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/disasm.h-9-
chromium-84.0.4147.105/v8/src/diagnostics/disasm.h:10:namespace disasm {
chromium-84.0.4147.105/v8/src/diagnostics/disasm.h-11-
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/s390/disasm-s390.cc-1012-
chromium-84.0.4147.105/v8/src/diagnostics/s390/disasm-s390.cc:1013:namespace disasm {
chromium-84.0.4147.105/v8/src/diagnostics/s390/disasm-s390.cc-1014-
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc-1307-    WasmExportedFunction function = WasmExportedFunction::cast(*this);
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc:1308:    os << "\n - Wasm instance: " << Brief(function.instance());
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc:1309:    os << "\n - Wasm function index: " << function.function_index();
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc-1310-  }
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc-1312-    WasmJSFunction function = WasmJSFunction::cast(*this);
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc:1313:    os << "\n - Wasm wrapper around: " << Brief(function.GetCallable());
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc-1314-  }
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc-2201-  }
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc:2202:  if (IsAsmModule()) os << "\n - asm module";
chromium-84.0.4147.105/v8/src/diagnostics/objects-printer.cc-2203-  if (HasSimpleParameters()) os << "\n - simple parameters";
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/arm64/disasm-arm64.cc-3573-void DisassemblingDecoder::ProcessOutput(Instruction* /*instr*/) {
chromium-84.0.4147.105/v8/src/diagnostics/arm64/disasm-arm64.cc:3574:  // The base disasm does nothing more than disassembling into a buffer.
chromium-84.0.4147.105/v8/src/diagnostics/arm64/disasm-arm64.cc-3575-}
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/arm64/disasm-arm64.cc-4310-
chromium-84.0.4147.105/v8/src/diagnostics/arm64/disasm-arm64.cc:4311:namespace disasm {
chromium-84.0.4147.105/v8/src/diagnostics/arm64/disasm-arm64.cc-4312-
##############################################
chromium-84.0.4147.105/v8/src/diagnostics/ppc/disasm-ppc.cc-1506-
chromium-84.0.4147.105/v8/src/diagnostics/ppc/disasm-ppc.cc:1507:namespace disasm {
chromium-84.0.4147.105/v8/src/diagnostics/ppc/disasm-ppc.cc-1508-
##############################################
chromium-84.0.4147.105/v8/src/parsing/parser-base.h-4869-    bool use_strict = false;
chromium-84.0.4147.105/v8/src/parsing/parser-base.h:4870:    bool use_asm = false;
chromium-84.0.4147.105/v8/src/parsing/parser-base.h-4871-
##############################################
chromium-84.0.4147.105/v8/src/parsing/parser-base.h-4876-    } else if (scanner()->NextLiteralExactlyEquals("use asm")) {
chromium-84.0.4147.105/v8/src/parsing/parser-base.h:4877:      use_asm = true;
chromium-84.0.4147.105/v8/src/parsing/parser-base.h-4878-    }
##############################################
chromium-84.0.4147.105/v8/src/common/message-template.h-52-  T(CallSiteExpectsFunction,                                                   \
chromium-84.0.4147.105/v8/src/common/message-template.h:53:    "CallSite expects wasm object as first or function as second argument, "   \
chromium-84.0.4147.105/v8/src/common/message-template.h-54-    "got <%, %>")                                                              \
##############################################
chromium-84.0.4147.105/v8/src/common/message-template.h-538-  T(URIMalformed, "URI malformed")                                             \
chromium-84.0.4147.105/v8/src/common/message-template.h:539:  /* Wasm errors (currently Error) */                                          \
chromium-84.0.4147.105/v8/src/common/message-template.h-540-  T(WasmTrapUnreachable, "unreachable")                                        \
##############################################
chromium-84.0.4147.105/v8/src/common/message-template.h-549-  T(WasmTrapMultiReturnLengthMismatch, "multi-return length mismatch")         \
chromium-84.0.4147.105/v8/src/common/message-template.h:550:  T(WasmTrapTypeError, "wasm function signature contains illegal type")        \
chromium-84.0.4147.105/v8/src/common/message-template.h-551-  T(WasmTrapDataSegmentDropped, "data segment has been dropped")               \
##############################################
chromium-84.0.4147.105/v8/src/common/message-template.h-558-  T(WasmTrapArrayOutOfBounds, "array element access out of bounds")            \
chromium-84.0.4147.105/v8/src/common/message-template.h:559:  T(WasmExceptionError, "wasm exception")                                      \
chromium-84.0.4147.105/v8/src/common/message-template.h-560-  /* Asm.js validation related */                                              \
##############################################
chromium-84.0.4147.105/v8/src/common/globals.h-336-
chromium-84.0.4147.105/v8/src/common/globals.h:337:// FUNCTION_ADDR(f) gets the address of a C function f.
chromium-84.0.4147.105/v8/src/common/globals.h:338:#define FUNCTION_ADDR(f) (reinterpret_cast<v8::internal::Address>(f))
chromium-84.0.4147.105/v8/src/common/globals.h-339-
##############################################
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc-74-bool TryHandleSignal(int signum, siginfo_t* info, void* context) {
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc:75:  // Ensure the faulting thread was actually running Wasm code. This should be
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc-76-  // the first check in the trap handler to guarantee that the IsThreadInWasm
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc:77:  // flag is only set in wasm code. Otherwise a later signal handler is executed
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc-78-  // with the flag set.
##############################################
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc-124-      *context_rip = landing_pad;
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc:125:      // We will return to wasm code, so restore the g_thread_in_wasm_code flag.
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc-126-      g_thread_in_wasm_code = true;
##############################################
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc-130-
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc:131:  // If we get here, it's not a recoverable wasm fault, so we go to the next
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc-132-  // handler. Leave the g_thread_in_wasm_code flag unset since we do not return
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc:133:  // to wasm code.
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-posix.cc-134-  return false;
##############################################
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc-78-  // Now safe to run more advanced logic, which may access thread_locals
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc:79:  // Ensure the faulting thread was actually running Wasm code.
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc-80-  if (!IsThreadInWasm()) {
##############################################
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc-93-    exception->ContextRecord->Rip = landing_pad;
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc:94:    // We will return to wasm code, so restore the g_thread_in_wasm_code flag.
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc-95-    g_thread_in_wasm_code = true;
##############################################
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc-98-
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc:99:  // If we get here, it's not a recoverable wasm fault, so we go to the next
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc-100-  // handler. Leave the g_thread_in_wasm_code flag unset since we do not return
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc:101:  // to wasm code.
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside-win.cc-102-  return false;
##############################################
chromium-84.0.4147.105/v8/src/trap-handler/trap-handler.h-33-  // The offset of this instruction from the start of its code object.
chromium-84.0.4147.105/v8/src/trap-handler/trap-handler.h:34:  // Wasm code never grows larger than 2GB, so uint32_t is sufficient.
chromium-84.0.4147.105/v8/src/trap-handler/trap-handler.h-35-  uint32_t instr_offset;
##############################################
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside.cc-42-  // lock again. We guard against this case with g_thread_in_wasm_code. The
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside.cc:43:  // lock may only be taken when not executing Wasm code (an assert in
chromium-84.0.4147.105/v8/src/trap-handler/handler-inside.cc-44-  // MetadataLock's constructor ensures this). The trap handler will bail
##############################################
chromium-84.0.4147.105/v8/src/heap/heap.h-1465-#endif
chromium-84.0.4147.105/v8/src/heap/heap.h:1466:  void* GetRandomMmapAddr() {
chromium-84.0.4147.105/v8/src/heap/heap.h:1467:    void* result = v8::internal::GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/heap/heap.h-1468-#if V8_TARGET_ARCH_X64
##############################################
chromium-84.0.4147.105/v8/src/heap/spaces.h-496-
chromium-84.0.4147.105/v8/src/heap/spaces.h:497:  void* GetRandomMmapAddr();
chromium-84.0.4147.105/v8/src/heap/spaces.h-498-
##############################################
chromium-84.0.4147.105/v8/src/heap/factory.cc-3087-
chromium-84.0.4147.105/v8/src/heap/factory.cc:3088:  const bool is_wasm = frame_array->IsAnyWasmFrame(index);
chromium-84.0.4147.105/v8/src/heap/factory.cc-3089-  StackFrameBase* frame = it.Frame();
##############################################
chromium-84.0.4147.105/v8/src/heap/cppgc/asm/ia32/push_registers_masm.S-4-
chromium-84.0.4147.105/v8/src/heap/cppgc/asm/ia32/push_registers_masm.S:5:;; MASM syntax
chromium-84.0.4147.105/v8/src/heap/cppgc/asm/ia32/push_registers_masm.S-6-;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assembler-reference?view=vs-2019
##############################################
chromium-84.0.4147.105/v8/src/heap/cppgc/asm/x64/push_registers_masm.S-4-
chromium-84.0.4147.105/v8/src/heap/cppgc/asm/x64/push_registers_masm.S:5:;; MASM syntax
chromium-84.0.4147.105/v8/src/heap/cppgc/asm/x64/push_registers_masm.S-6-;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assembler-reference?view=vs-2019
##############################################
chromium-84.0.4147.105/v8/src/heap/spaces.cc-122-  if (it == recently_freed_.end() || it->second.empty()) {
chromium-84.0.4147.105/v8/src/heap/spaces.cc:123:    return reinterpret_cast<Address>(GetRandomMmapAddr());
chromium-84.0.4147.105/v8/src/heap/spaces.cc-124-  }
##############################################
chromium-84.0.4147.105/v8/src/heap/spaces.cc-745-  void* address_hint =
chromium-84.0.4147.105/v8/src/heap/spaces.cc:746:      AlignedAddress(heap->GetRandomMmapAddr(), MemoryChunk::kAlignment);
chromium-84.0.4147.105/v8/src/heap/spaces.cc-747-
##############################################
chromium-84.0.4147.105/v8/src/heap/heap.cc-5269-  mmap_region_base_ =
chromium-84.0.4147.105/v8/src/heap/heap.cc:5270:      reinterpret_cast<uintptr_t>(v8::internal::GetRandomMmapAddr()) &
chromium-84.0.4147.105/v8/src/heap/heap.cc-5271-      ~kMmapRegionMask;
##############################################
chromium-84.0.4147.105/v8/src/snapshot/code-serializer.cc-57-  }
chromium-84.0.4147.105/v8/src/snapshot/code-serializer.cc:58:  // TODO(7110): Enable serialization of Asm modules once the AsmWasmData is
chromium-84.0.4147.105/v8/src/snapshot/code-serializer.cc-59-  // context independent.
##############################################
chromium-84.0.4147.105/v8/src/snapshot/code-serializer.cc-160-    SharedFunctionInfo sfi = SharedFunctionInfo::cast(obj);
chromium-84.0.4147.105/v8/src/snapshot/code-serializer.cc:161:    // TODO(7110): Enable serializing of Asm modules once the AsmWasmData
chromium-84.0.4147.105/v8/src/snapshot/code-serializer.cc-162-    // is context independent.
##############################################
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc-28-
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc:29:// MSVC uses MASM for x86 and x64, while it has a ARMASM for ARM32 and
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc:30:// ARMASM64 for ARM64. Since ARMASM and ARMASM64 accept a slightly tweaked
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc-31-// version of ARM assembly language, they are referred to together in Visual
##############################################
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc-329-
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc:330:// For x64 MSVC builds we emit assembly in MASM syntax.
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc-331-// See https://docs.microsoft.com/en-us/cpp/assembler/masm/directives-reference.
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc:332:// For Arm build, we emit assembly in MARMASM syntax.
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc-333-// Note that the same mksnapshot has to be used to compile the host and target.
##############################################
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc-692-#if defined(V8_COMPILER_IS_MSVC)
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc:693:  // Windows MASM doesn't have an .octa directive, use QWORDs instead.
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc:694:  // Note: MASM *really* does not like large data streams. It takes over 5
chromium-84.0.4147.105/v8/src/snapshot/embedded/platform-embedded-file-writer-win.cc-695-  // minutes to assemble the ~350K lines of embedded.S produced when using
##############################################
chromium-84.0.4147.105/v8/src/snapshot/embedded/embedded-data.cc-65-  void* const requested_allocation_address =
chromium-84.0.4147.105/v8/src/snapshot/embedded/embedded-data.cc:66:      AlignedAddress(isolate->heap()->GetRandomMmapAddr(), alignment);
chromium-84.0.4147.105/v8/src/snapshot/embedded/embedded-data.cc-67-  const uint32_t allocation_size = RoundUp(d.size(), alignment);
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.cc-23-namespace internal {
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.cc:24:namespace wasm {
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.cc-25-
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h-22-
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h:23:namespace wasm {
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h-24-
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h:25:// A custom parser + validator + wasm converter for asm.js:
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h-26-// http://asmjs.org/spec/latest/
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h-110-  // Distinguish different kinds of blocks participating in {block_stack}. Each
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h:111:  // entry on that stack represents one block in the wasm code, and determines
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h-112-  // which block 'break' and 'continue' target in the current context:
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h-335-
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h:336:  // Use to set up actual wasm blocks/loops.
chromium-84.0.4147.105/v8/src/asmjs/asm-parser.h-337-  void Begin(AsmJsScanner::token_t label = 0);
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-types.cc-13-namespace internal {
chromium-84.0.4147.105/v8/src/asmjs/asm-types.cc:14:namespace wasm {
chromium-84.0.4147.105/v8/src/asmjs/asm-types.cc-15-
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h-17-namespace internal {
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h:18:namespace wasm {
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h-19-
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h-25-#define FOR_EACH_ASM_VALUE_TYPE_LIST(V)                                       \
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h:26:  /* These tags are not types that are expressable in the asm source. They */ \
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h-27-  /* are used to express semantic information about the types they tag.    */ \
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h-30-  V(FloatQDoubleQ, "float?|double?", 3, 0)                                    \
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h:31:  /* The following are actual types that appear in the asm source. */         \
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h-32-  V(Void, "void", 4, 0)                                                       \
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h-202-
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h:203:  // Overloaded function types. Not creatable by asm source, but useful to
chromium-84.0.4147.105/v8/src/asmjs/asm-types.h-204-  // represent the overloaded stdlib functions.
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-js.cc-371-    // Mark the buffer as being used as an asm.js memory. This implies two
chromium-84.0.4147.105/v8/src/asmjs/asm-js.cc:372:    // things: 1) if the buffer is from a Wasm memory, that memory can no longer
chromium-84.0.4147.105/v8/src/asmjs/asm-js.cc-373-    // be grown, since that would detach this buffer, and 2) the buffer cannot
##############################################
chromium-84.0.4147.105/v8/src/asmjs/asm-js.cc-395-      ScopedVector<char> error_reason(100);
chromium-84.0.4147.105/v8/src/asmjs/asm-js.cc:396:      SNPrintF(error_reason, "Internal wasm failure: %s", thrower.error_msg());
chromium-84.0.4147.105/v8/src/asmjs/asm-js.cc-397-      ReportInstantiationFailure(script, position, error_reason.begin());
chromium-84.0.4147.105/v8/src/asmjs/asm-js.cc-398-    } else {
chromium-84.0.4147.105/v8/src/asmjs/asm-js.cc:399:      ReportInstantiationFailure(script, position, "Internal wasm failure");
chromium-84.0.4147.105/v8/src/asmjs/asm-js.cc-400-    }
##############################################
chromium-84.0.4147.105/v8/src/init/v8.cc-72-  if (FLAG_trace_turbo) {
chromium-84.0.4147.105/v8/src/init/v8.cc:73:    // Create an empty file shared by the process (e.g. the wasm engine).
chromium-84.0.4147.105/v8/src/init/v8.cc-74-    std::ofstream(Isolate::GetTurboCfgFileName(nullptr).c_str(),
##############################################
chromium-84.0.4147.105/v8/src/init/v8.cc-77-
chromium-84.0.4147.105/v8/src/init/v8.cc:78:  // Do not expose wasm in jitless mode.
chromium-84.0.4147.105/v8/src/init/v8.cc-79-  //
chromium-84.0.4147.105/v8/src/init/v8.cc:80:  // Even in interpreter-only mode, wasm currently still creates executable
chromium-84.0.4147.105/v8/src/init/v8.cc:81:  // memory at runtime. Unexpose wasm until this changes.
chromium-84.0.4147.105/v8/src/init/v8.cc-82-  // The correctness fuzzers are a special case: many of their test cases are
##############################################
chromium-84.0.4147.105/v8/src/init/v8.cc-84-  // the global object layout must not change between configs. That is why we
chromium-84.0.4147.105/v8/src/init/v8.cc:85:  // continue exposing wasm on correctness fuzzers even in jitless mode.
chromium-84.0.4147.105/v8/src/init/v8.cc:86:  // TODO(jgruber): Remove this once / if wasm can run without executable
chromium-84.0.4147.105/v8/src/init/v8.cc-87-  // memory.
chromium-84.0.4147.105/v8/src/init/v8.cc-88-  if (FLAG_jitless && !FLAG_correctness_fuzzer_suppressions) {
chromium-84.0.4147.105/v8/src/init/v8.cc:89:    FLAG_expose_wasm = false;
chromium-84.0.4147.105/v8/src/init/v8.cc-90-  }
##############################################
chromium-84.0.4147.105/v8/src/init/isolate-allocator.cc-71-    Address hint = RoundDown(reinterpret_cast<Address>(
chromium-84.0.4147.105/v8/src/init/isolate-allocator.cc:72:                                 platform_page_allocator->GetRandomMmapAddr()),
chromium-84.0.4147.105/v8/src/init/isolate-allocator.cc-73-                             base_alignment) -
##############################################
chromium-84.0.4147.105/v8/src/init/bootstrapper.cc-4804-    // Install the internal data structures only; these are needed for asm.js
chromium-84.0.4147.105/v8/src/init/bootstrapper.cc:4805:    // translated to Wasm to work correctly.
chromium-84.0.4147.105/v8/src/init/bootstrapper.cc-4806-    WasmJs::Install(isolate, false);
##############################################
chromium-84.0.4147.105/v8/src/execution/messages.h-20-namespace internal {
chromium-84.0.4147.105/v8/src/execution/messages.h:21:namespace wasm {
chromium-84.0.4147.105/v8/src/execution/messages.h-22-class WasmCode;
##############################################
chromium-84.0.4147.105/v8/src/execution/messages.h-85-  virtual int GetColumnNumber() = 0;
chromium-84.0.4147.105/v8/src/execution/messages.h:86:  // Return 0-based Wasm function index. Returns -1 for non-Wasm frames.
chromium-84.0.4147.105/v8/src/execution/messages.h-87-  virtual int GetWasmFunctionIndex();
##############################################
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc-496-            "dump 10 words)\n");
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc:497:        PrintF("disasm [<instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc:498:        PrintF("disasm [<address/register>]\n");
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc:499:        PrintF("disasm [[<address/register>] <instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc-500-        PrintF("  disassemble code, default is 10 instructions\n");
##############################################
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc-1645-              PrintF("Call to host function at %p with args %f, %f",
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc:1646:                     reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc-1647-                     dval0, dval1);
##############################################
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc-1650-              PrintF("Call to host function at %p with arg %f",
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc:1651:                     reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc-1652-                     dval0);
##############################################
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc-1655-              PrintF("Call to host function at %p with args %f, %d",
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc:1656:                     reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/arm/simulator-arm.cc-1657-                     dval0, ival);
##############################################
chromium-84.0.4147.105/v8/src/execution/messages.cc-546-                                    int frame_ix) {
chromium-84.0.4147.105/v8/src/execution/messages.cc:547:  // This function is called for compiled and interpreted wasm frames, and for
chromium-84.0.4147.105/v8/src/execution/messages.cc:548:  // asm.js->wasm frames.
chromium-84.0.4147.105/v8/src/execution/messages.cc-549-  DCHECK(array->IsWasmFrame(frame_ix) ||
##############################################
chromium-84.0.4147.105/v8/src/execution/isolate.h-117-
chromium-84.0.4147.105/v8/src/execution/isolate.h:118:namespace wasm {
chromium-84.0.4147.105/v8/src/execution/isolate.h-119-class WasmEngine;
##############################################
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-714-        PrintF("  print flags\n");
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc:715:        PrintF("disasm [<instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc:716:        PrintF("disasm [<address/register>]\n");
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc:717:        PrintF("disasm [[<address/register>] <instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-718-        PrintF("  disassemble code, default is 10 instructions\n");
##############################################
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-2281-            PrintF("Call to host function at %p with args %f, %f",
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc:2282:                   reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-2283-                   dval0, dval1);
##############################################
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-2286-            PrintF("Call to host function at %p with arg %f",
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc:2287:                   reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-2288-                   dval0);
##############################################
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-2291-            PrintF("Call to host function at %p with args %f, %d",
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc:2292:                   reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-2293-                   dval0, ival);
##############################################
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-2390-            "args %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x\n",
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc:2391:            reinterpret_cast<void*>(FUNCTION_ADDR(target)), arg0, arg1, arg2,
chromium-84.0.4147.105/v8/src/execution/mips/simulator-mips.cc-2392-            arg3, arg4, arg5, arg6, arg7, arg8, arg9);
##############################################
chromium-84.0.4147.105/v8/src/execution/execution.cc-560-
chromium-84.0.4147.105/v8/src/execution/execution.cc:561:  // If there was an exception, then the thread-in-wasm flag is cleared
chromium-84.0.4147.105/v8/src/execution/execution.cc-562-  // already.
##############################################
chromium-84.0.4147.105/v8/src/execution/execution.h-62-
chromium-84.0.4147.105/v8/src/execution/execution.h:63:  // Call a Wasm function identified by {wasm_call_target} through the
chromium-84.0.4147.105/v8/src/execution/execution.h-64-  // provided {wrapper_code}, which must match the function's signature.
##############################################
chromium-84.0.4147.105/v8/src/execution/frames.h-15-namespace internal {
chromium-84.0.4147.105/v8/src/execution/frames.h:16:namespace wasm {
chromium-84.0.4147.105/v8/src/execution/frames.h-17-class WasmCode;
##############################################
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-656-        PrintF("  print flags\n");
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc:657:        PrintF("disasm [<instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc:658:        PrintF("disasm [<address/register>]\n");
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc:659:        PrintF("disasm [[<address/register>] <instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-660-        PrintF("  disassemble code, default is 10 instructions\n");
##############################################
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-2270-            PrintF("Call to host function at %p with args %f, %f",
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc:2271:                   reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-2272-                   dval0, dval1);
##############################################
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-2275-            PrintF("Call to host function at %p with arg %f",
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc:2276:                   reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-2277-                   dval0);
##############################################
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-2280-            PrintF("Call to host function at %p with args %f, %d",
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc:2281:                   reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-2282-                   dval0, ival);
##############################################
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-2384-            " , %08" PRIx64 " , %08" PRIx64 " \n",
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc:2385:            reinterpret_cast<void*>(FUNCTION_ADDR(target)), arg0, arg1, arg2,
chromium-84.0.4147.105/v8/src/execution/mips64/simulator-mips64.cc-2386-            arg3, arg4, arg5, arg6, arg7, arg8, arg9);
##############################################
chromium-84.0.4147.105/v8/src/execution/frames.cc-189-  }
chromium-84.0.4147.105/v8/src/execution/frames.cc:190:  // Apart from JavaScript frames, only Wasm frames are valid.
chromium-84.0.4147.105/v8/src/execution/frames.cc-191-  return frame->is_wasm();
##############################################
chromium-84.0.4147.105/v8/src/execution/frames.cc-1815-  PrintIndex(accumulator, mode, index);
chromium-84.0.4147.105/v8/src/execution/frames.cc:1816:  accumulator->Add("WASM [");
chromium-84.0.4147.105/v8/src/execution/frames.cc-1817-  accumulator->PrintName(script().name());
##############################################
chromium-84.0.4147.105/v8/src/execution/frames.cc-1945-  PrintIndex(accumulator, mode, index);
chromium-84.0.4147.105/v8/src/execution/frames.cc:1946:  accumulator->Add("WASM DEBUG BREAK");
chromium-84.0.4147.105/v8/src/execution/frames.cc-1947-  if (mode != OVERVIEW) accumulator->Add("\n");
##############################################
chromium-84.0.4147.105/v8/src/execution/isolate.cc-963-            //=========================================================
chromium-84.0.4147.105/v8/src/execution/isolate.cc:964:            // Handle a Wasm frame.
chromium-84.0.4147.105/v8/src/execution/isolate.cc-965-            //=========================================================
chromium-84.0.4147.105/v8/src/execution/isolate.cc:966:            auto const& wasm = summary.AsWasm();
chromium-84.0.4147.105/v8/src/execution/isolate.cc-967-            builder.AppendWasmFrame(wasm);
##############################################
chromium-84.0.4147.105/v8/src/execution/isolate.cc-1606-  // Special handling of termination exceptions, uncatchable by JavaScript and
chromium-84.0.4147.105/v8/src/execution/isolate.cc:1607:  // Wasm code, we unwind the handlers until the top ENTRY handler is found.
chromium-84.0.4147.105/v8/src/execution/isolate.cc-1608-  bool catchable_by_js = is_catchable_by_javascript(exception);
chromium-84.0.4147.105/v8/src/execution/isolate.cc:1609:  bool catchable_by_wasm = is_catchable_by_wasm(exception);
chromium-84.0.4147.105/v8/src/execution/isolate.cc-1610-
##############################################
chromium-84.0.4147.105/v8/src/execution/isolate.cc-3326-
chromium-84.0.4147.105/v8/src/execution/isolate.cc:3327:  // Setup the wasm engine.
chromium-84.0.4147.105/v8/src/execution/isolate.cc-3328-  if (wasm_engine_ == nullptr) {
##############################################
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-589-            "dump 10 words)\n");
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc:590:        PrintF("disasm [<instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc:591:        PrintF("disasm [<address/register>]\n");
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc:592:        PrintF("disasm [[<address/register>] <instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-593-        PrintF("  disassemble code, default is 10 instructions\n");
##############################################
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-1960-              PrintF("Call to host function at %p with args %f, %f",
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc:1961:                     reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-1962-                     dval0, dval1);
##############################################
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-1965-              PrintF("Call to host function at %p with arg %f",
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc:1966:                     reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-1967-                     dval0);
##############################################
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-1970-              PrintF("Call to host function at %p with args %f, %" V8PRIdPTR,
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc:1971:                     reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-1972-                     dval0, ival);
##############################################
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-2115-              ", %08" V8PRIxPTR,
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc:2116:              reinterpret_cast<void*>(FUNCTION_ADDR(target)), arg[0], arg[1],
chromium-84.0.4147.105/v8/src/execution/s390/simulator-s390.cc-2117-              arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9]);
##############################################
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-36-#else
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h:37:  asm volatile(
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-38-      "  mov x17, %[pc]\n"
##############################################
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-54-#else
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h:55:  asm volatile(
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-56-      "  mov x16, lr\n"
##############################################
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-73-#else
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h:74:  asm volatile(
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-75-      "  mov x17, %[pc]\n"
##############################################
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-105-  // address is authenticated.
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h:106:  asm volatile(
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-107-      "  mov x17, %[new_pc]\n"
##############################################
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-140-  // address is authenticated.
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h:141:  asm volatile(
chromium-84.0.4147.105/v8/src/execution/arm64/pointer-authentication-arm64.h-142-      "  mov x17, %[old_pc]\n"
##############################################
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc-3366-
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc:3367:        // disassemble / disasm / di
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc-3368-        // ---------------------------------------------
##############################################
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc-3370-                 strcmp(cmd, "disasm") == 0 || strcmp(cmd, "di") == 0) {
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc:3371:        int64_t n_of_instrs_to_disasm = 10;                // default value.
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc-3372-        int64_t address = reinterpret_cast<int64_t>(pc_);  // default value.
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc:3373:        if (argc >= 2) {  // disasm <n of instrs>
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc-3374-          GetValue(arg1, &n_of_instrs_to_disasm);
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc-3375-        }
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc:3376:        if (argc >= 3) {  // disasm <n of instrs> <address>
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc-3377-          GetValue(arg2, &address);
##############################################
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc-3539-            "    Continue execution from here.\n"
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc:3540:            "disassemble / disasm / di\n"
chromium-84.0.4147.105/v8/src/execution/arm64/simulator-arm64.cc-3541-            "    disassemble <n> <address>\n"
##############################################
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-575-            "dump 10 words)\n");
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc:576:        PrintF("disasm [<instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc:577:        PrintF("disasm [<address/register>]\n");
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc:578:        PrintF("disasm [[<address/register>] <instructions>]\n");
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-579-        PrintF("  disassemble code, default is 10 instructions\n");
##############################################
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-1014-              PrintF("Call to host function at %p with args %f, %f",
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc:1015:                     reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-1016-                     dval0, dval1);
##############################################
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-1019-              PrintF("Call to host function at %p with arg %f",
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc:1020:                     reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-1021-                     dval0);
##############################################
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-1024-              PrintF("Call to host function at %p with args %f, %" V8PRIdPTR,
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc:1025:                     reinterpret_cast<void*>(FUNCTION_ADDR(generic_target)),
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-1026-                     dval0, ival);
##############################################
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-1169-              ", %08" V8PRIxPTR,
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc:1170:              reinterpret_cast<void*>(FUNCTION_ADDR(target)), arg[0], arg[1],
chromium-84.0.4147.105/v8/src/execution/ppc/simulator-ppc.cc-1171-              arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9]);
##############################################
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-215-   complete inline asm, since it needs to be combined with more magic
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h:216:   inline asm stuff to be useful.
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-217-*/
##############################################
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-287-#define __SPECIAL_INSTRUCTION_PREAMBLE                            \
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h:288:                     __asm rol edi, 3  __asm rol edi, 13          \
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h:289:                     __asm rol edi, 29 __asm rol edi, 19
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-290-
##############################################
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-312-    _zzq_args[5] = (uintptr_t)(_zzq_arg5);
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h:313:    __asm { __asm lea eax, _zzq_args __asm mov edx, _zzq_default
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-314-            __SPECIAL_INSTRUCTION_PREAMBLE
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-315-            /* %EDX = client_request ( %EAX ) */
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h:316:            __asm xchg ebx,ebx
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h:317:            __asm mov _zzq_result, edx
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-318-    }
##############################################
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-324-    volatile unsigned int __addr;                                 \
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h:325:    __asm { __SPECIAL_INSTRUCTION_PREAMBLE                        \
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-326-            /* %EAX = guest_NRADDR */                             \
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h:327:            __asm xchg ecx,ecx                                    \
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h:328:            __asm mov __addr, eax                                 \
chromium-84.0.4147.105/v8/src/third_party/valgrind/valgrind.h-329-    }                                                             \
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-440-DEFINE_IMPLICATION(jitless, regexp_interpret_all)
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:441:// asm.js validation is disabled since it triggers wasm code generation.
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-442-DEFINE_NEG_IMPLICATION(jitless, validate_asm)
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-582-DEFINE_BOOL(turbo_stats_wasm, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:583:            "print TurboFan statistics of wasm compilations")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-584-DEFINE_BOOL(turbo_splitting, true, "split nodes during scheduling in TurboFan")
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-678-// Flags for native WebAssembly.
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:679:DEFINE_BOOL(expose_wasm, true, "expose wasm interface to JavaScript")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-680-DEFINE_BOOL(assume_asmjs_origin, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:681:            "force wasm decoder to assume input is internal asm-wasm format")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-682-DEFINE_INT(wasm_num_compilation_tasks, 128,
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-684-DEFINE_DEBUG_BOOL(trace_wasm_native_heap, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:685:                  "trace wasm native heap events")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-686-DEFINE_BOOL(wasm_write_protect_code_memory, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:687:            "write protect code memory on the wasm native heap")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-688-DEFINE_DEBUG_BOOL(trace_wasm_serialization, false,
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-695-            v8::internal::wasm::kSpecMaxWasmInitialMemoryPages,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:696:            "maximum initial number of 64KiB memory pages of a wasm instance")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-697-DEFINE_UINT(wasm_max_mem_pages_growth,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-698-            v8::internal::wasm::kSpecMaxWasmMaximumMemoryPages,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:699:            "maximum number of 64KiB pages a Wasm memory can grow to")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-700-DEFINE_UINT(wasm_max_table_size, v8::internal::wasm::kV8MaxWasmTableSize,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:701:            "maximum table size of a wasm instance")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-702-DEFINE_UINT(wasm_max_code_space, v8::internal::kMaxWasmCodeMB,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:703:            "maximum committed code space for wasm (in MB)")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-704-DEFINE_BOOL(wasm_tier_up, true,
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-706-            "have an effect)")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:707:DEFINE_DEBUG_BOOL(trace_wasm_decoder, false, "trace decoding of wasm code")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-708-DEFINE_IMPLICATION(trace_wasm_decoder, single_threaded)
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:709:DEFINE_DEBUG_BOOL(trace_wasm_compiler, false, "trace compiling of wasm code")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-710-DEFINE_DEBUG_BOOL(trace_wasm_interpreter, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:711:                  "trace interpretation of wasm code")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-712-DEFINE_DEBUG_BOOL(trace_wasm_streaming, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:713:                  "trace streaming compilation of wasm code")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-714-DEFINE_INT(trace_wasm_ast_start, 0,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:715:           "start function for wasm AST trace (inclusive)")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:716:DEFINE_INT(trace_wasm_ast_end, 0, "end function for wasm AST trace (exclusive)")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-717-// Enable Liftoff by default on ia32 and x64. More architectures will follow
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-729-DEFINE_BOOL(trace_wasm_memory, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:730:            "print all memory updates performed in wasm code")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-731-// Fuzzers use {wasm_tier_mask_for_testing} together with {liftoff} and
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-736-DEFINE_BOOL(wasm_expose_debug_eval, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:737:            "Expose wasm evaluator support on the CDP")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-738-
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-747-
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:748:DEFINE_DEBUG_BOOL(dump_wasm_module, false, "dump wasm module bytes")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-749-DEFINE_STRING(dump_wasm_module_path, nullptr,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:750:              "directory to dump wasm modules to")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-751-
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:752:// Declare command-line flags for Wasm features. Warning: avoid using these
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-753-// flags directly in the implementation. Instead accept wasm::WasmFeatures
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-762-
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:763:DEFINE_BOOL(wasm_staging, false, "enable staged wasm features")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-764-
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-769-
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:770:DEFINE_BOOL(wasm_opt, false, "enable wasm optimization")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-771-DEFINE_BOOL(
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-782-DEFINE_BOOL(wasm_fuzzer_gen_test, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:783:            "generate a test case when running a wasm fuzzer")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-784-DEFINE_IMPLICATION(wasm_fuzzer_gen_test, single_threaded)
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-788-DEFINE_BOOL(asm_wasm_lazy_compilation, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:789:            "enable lazy compilation for asm-wasm modules")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-790-DEFINE_IMPLICATION(validate_asm, asm_wasm_lazy_compilation)
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-791-DEFINE_BOOL(wasm_lazy_compilation, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:792:            "enable lazy compilation for all wasm modules")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-793-DEFINE_DEBUG_BOOL(trace_wasm_lazy_compilation, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:794:                  "trace lazy compilation of wasm functions")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-795-DEFINE_BOOL(wasm_lazy_validation, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:796:            "enable lazy validation for lazily compiled wasm functions")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-797-
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:798:// Flags for wasm prototyping that are not strictly features i.e., part of
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-799-// an existing proposal that may be conditionally enabled.
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-808-
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:809:DEFINE_BOOL(wasm_code_gc, true, "enable garbage collection of wasm code")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:810:DEFINE_BOOL(trace_wasm_code_gc, false, "trace garbage collection of wasm code")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-811-DEFINE_BOOL(stress_wasm_code_gc, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:812:            "stress test garbage collection of wasm code")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-813-DEFINE_INT(wasm_max_initial_code_space_reservation, 0,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:814:           "maximum size of the initial wasm code space reservation (in MB)")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-815-
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-1445-
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:1446:// Flags for Wasm GDB remote debugging.
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-1447-#ifdef V8_ENABLE_WASM_GDB_REMOTE_DEBUGGING
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-1539-
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:1540:// wasm instance management
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-1541-DEFINE_DEBUG_BOOL(trace_wasm_instances, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:1542:                  "trace creation and collection of wasm instances")
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-1543-
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-1610-    perf_prof_annotate_wasm,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:1611:    "Used with --perf-prof, load wasm source map and provide annotate "
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-1612-    "support (experimental).")
##############################################
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-1652-DEFINE_BOOL(vtune_prof_annotate_wasm, false,
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h:1653:            "Used when v8_enable_vtunejit is enabled, load wasm source map and "
chromium-84.0.4147.105/v8/src/flags/flag-definitions.h-1654-            "provide annotate support (experimental).")
##############################################
chromium-84.0.4147.105/v8/LICENSE-25-
chromium-84.0.4147.105/v8/LICENSE:26:  - The Wasm C/C++ API headers, located at third_party/wasm-api/wasm.{h,hh}
chromium-84.0.4147.105/v8/LICENSE-27-    This is released under the Apache license. The API's upstream prototype
##############################################
chromium-84.0.4147.105/v8/BUILD.gn-26-# For faster Windows builds. See https://crbug.com/v8/8475.
chromium-84.0.4147.105/v8/BUILD.gn:27:emit_builtins_as_inline_asm = is_win && is_clang
chromium-84.0.4147.105/v8/BUILD.gn-28-
##############################################
chromium-84.0.4147.105/v8/BUILD.gn-1782-    # The following headers cannot be platform-specific. The include validation
chromium-84.0.4147.105/v8/BUILD.gn:1783:    # of `gn gen $dir --check` requires all header files to be available on all
chromium-84.0.4147.105/v8/BUILD.gn-1784-    # platforms.
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/trap.cc-8-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/trap.cc:9:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/trap.cc-10-auto fail_callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/threads.cc-10-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/threads.cc:11:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/threads.cc-12-auto callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/memory.cc-153-  // Create stand-alone memory.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/memory.cc:154:  // TODO(wasm+): Once Wasm allows multiple memories, turn this into import.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/memory.cc-155-  std::cout << "Creating stand-alone memory..." << std::endl;
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hello.cc-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hello.cc:10:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hello.cc-11-auto hello_callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/serialize.cc-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/serialize.cc:10:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/serialize.cc-11-auto hello_callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/memory.c-202-  // Create stand-alone memory.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/memory.c:203:  // TODO(wasm+): Once Wasm allows multiple memories, turn this into import.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/memory.c-204-  printf("Creating stand-alone memory...\n");
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.cc-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.cc:10:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.cc-11-auto neg_callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.cc-173-  // Create stand-alone table.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.cc:174:  // TODO(wasm+): Once Wasm allows multiple tables, turn this into import.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.cc-175-  std::cout << "Creating stand-alone table..." << std::endl;
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.c-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.c:10:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.c-11-own wasm_trap_t* neg_callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.c-192-  // Create stand-alone table.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.c:193:  // TODO(wasm+): Once Wasm allows multiple tables, turn this into import.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/table.c-194-  printf("Creating stand-alone table...\n");
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/trap.c-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/trap.c:10:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/trap.c-11-own wasm_trap_t* fail_callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hello.c-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hello.c:10:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hello.c-11-own wasm_trap_t* hello_callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.c-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.c:10:// Print a Wasm value
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.c-11-void wasm_val_print(wasm_val_t val) {
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.c-35-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.c:36:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.c-37-own wasm_trap_t* print_callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/multi.c-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/multi.c:10:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/multi.c-11-own wasm_trap_t* callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/serialize.c-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/serialize.c:10:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/serialize.c-11-own wasm_trap_t* hello_callback(const wasm_val_t args[], wasm_val_t results[]) {
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/multi.cc-8-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/multi.cc:9:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/multi.cc-10-auto callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hostref.c-10-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hostref.c:11:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hostref.c-12-own wasm_trap_t* callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.cc-8-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.cc:9:// Print a Wasm value
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.cc-10-auto operator<<(std::ostream& out, const wasm::Val& val) -> std::ostream& {
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.cc-35-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.cc:36:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/callback.cc-37-auto print_callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hostref.cc-9-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hostref.cc:10:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/hostref.cc-11-auto callback(
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/example/threads.c-14-
chromium-84.0.4147.105/v8/third_party/wasm-api/example/threads.c:15:// A function to be called from Wasm code.
chromium-84.0.4147.105/v8/third_party/wasm-api/example/threads.c-16-own wasm_trap_t* callback(const wasm_val_t args[], wasm_val_t results[]) {
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/wasm.hh-29-
chromium-84.0.4147.105/v8/third_party/wasm-api/wasm.hh:30:namespace wasm {
chromium-84.0.4147.105/v8/third_party/wasm-api/wasm.hh-31-
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/README.v8:1:Name: Wasm C/C++ API
chromium-84.0.4147.105/v8/third_party/wasm-api/README.v8-2-Short Name: wasm-c-api
##############################################
chromium-84.0.4147.105/v8/third_party/wasm-api/README.v8-11-Description:
chromium-84.0.4147.105/v8/third_party/wasm-api/README.v8:12:Provides a "black box" API for embedding a Wasm engine in C/C++ applications.
chromium-84.0.4147.105/v8/third_party/wasm-api/README.v8-13-
##############################################
chromium-84.0.4147.105/cc/layers/heads_up_display_layer_impl.cc-433-        backing->texture_target, 0, 0, 0, pool_resource.size().width(),
chromium-84.0.4147.105/cc/layers/heads_up_display_layer_impl.cc:434:        pool_resource.size().height(), format, type, pixmap.addr());
chromium-84.0.4147.105/cc/layers/heads_up_display_layer_impl.cc-435-
##############################################
chromium-84.0.4147.105/cc/trees/layer_tree_host_impl.cc-5732-          base::span<const uint8_t>(
chromium-84.0.4147.105/cc/trees/layer_tree_host_impl.cc:5733:              reinterpret_cast<const uint8_t*>(pixmap.addr()),
chromium-84.0.4147.105/cc/trees/layer_tree_host_impl.cc-5734-              pixmap.computeByteSize()));
##############################################
chromium-84.0.4147.105/cc/paint/paint_op_writer.cc-257-    WriteSize(pixmap_size);
chromium-84.0.4147.105/cc/paint/paint_op_writer.cc:258:    WriteData(pixmap_size, pixmap.addr());
chromium-84.0.4147.105/cc/paint/paint_op_writer.cc-259-    return;
##############################################
chromium-84.0.4147.105/cc/paint/image_transfer_cache_entry.cc-278-      writer.AlignMemory(4);
chromium-84.0.4147.105/cc/paint/image_transfer_cache_entry.cc:279:      writer.WriteData(plane_size, plane->addr());
chromium-84.0.4147.105/cc/paint/image_transfer_cache_entry.cc-280-    }
##############################################
chromium-84.0.4147.105/cc/paint/image_transfer_cache_entry.cc-304-  writer.AlignMemory(4);
chromium-84.0.4147.105/cc/paint/image_transfer_cache_entry.cc:305:  writer.WriteData(pixmap_size, pixmap_->addr());
chromium-84.0.4147.105/cc/paint/image_transfer_cache_entry.cc-306-
##############################################
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-319-  SkPixmap pixmap(target_pixmap->info().makeColorSpace(nullptr),
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc:320:                  target_pixmap->writable_addr(), target_pixmap->rowBytes());
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc:321:  uint8_t* data_ptr = reinterpret_cast<uint8_t*>(pixmap.writable_addr());
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-322-  sk_sp<SkColorSpace> color_space = target_pixmap->info().refColorSpace();
##############################################
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-349-      SetYuvPixmapsFromSizeInfo(pixmap_y, pixmap_u, pixmap_v, yuva_size_info,
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc:350:                                planes, info, pixmap.writable_addr());
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-351-      return paint_image.DecodeYuv(planes, draw_image.frame_index(), client_id,
##############################################
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-353-    }
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc:354:    return paint_image.Decode(pixmap.writable_addr(), &info, color_space,
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-355-                              draw_image.frame_index(), client_id);
##############################################
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-396-  if (do_yuv_decode) {
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc:397:    yuva_size_info.computePlanes(decode_pixmap.writable_addr(), planes);
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-398-  }
##############################################
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-402-                                   yuva_size_info, plane_indices)
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc:403:          : !paint_image.Decode(decode_pixmap.writable_addr(), &decode_info,
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-404-                                color_space, draw_image.frame_index(),
##############################################
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-418-                              &unscaled_pixmap_v, yuva_size_info, planes,
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc:419:                              decode_info, decode_pixmap.writable_addr());
chromium-84.0.4147.105/cc/tiles/gpu_image_decode_cache.cc-420-
##############################################
chromium-84.0.4147.105/tools/binary_size/README.md-38-   [chromeperf](https://chromeperf.appspot.com/report) under
chromium-84.0.4147.105/tools/binary_size/README.md:39:   `Test suite="resource_sizes ($APK)"`.
chromium-84.0.4147.105/tools/binary_size/README.md-40- * Metrics reported by this tool are described in
##############################################
chromium-84.0.4147.105/tools/binary_size/README.md-90-     * Normally represented using one alias per path, but are sometimes
chromium-84.0.4147.105/tools/binary_size/README.md:91:       collapsed into a single symbol with a path of `{shared}/$SYMBOL_COUNT`.
chromium-84.0.4147.105/tools/binary_size/README.md-92-       This collapsing is done only for symbols owned by a large number of
##############################################
chromium-84.0.4147.105/tools/binary_size/README.md-134-Overhead symbols track bytes that are generally unactionable. They are recorded
chromium-84.0.4147.105/tools/binary_size/README.md:135:as `size=0, padding=$size` (padding-only symbols) to de-emphasize them in diffs.
chromium-84.0.4147.105/tools/binary_size/README.md-136-
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js-96-      const queryString = copy.toString();
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js:97:      return queryString.length > 0 ? `?${queryString}` : '';
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js-98-    },
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js-373-      return {
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js:374:        description: `${methodStr} method${methodCount === 1 ? '' : 's'}`,
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js-375-        element: document.createTextNode(methodStr),
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js-382-      const bytesGrouped = bytes.toLocaleString(_LOCALE, {useGrouping: true});
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js:383:      let description = `${bytesGrouped} bytes`;
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js-384-      if (node.numAliases && node.numAliases > 1) {
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js:385:        description += ` for 1 of ${node.numAliases} aliases`;
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js-386-      }
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js-394-      });
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js:395:      const textNode = document.createTextNode(`${text} `);
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/state.js-396-      // Display the suffix with a smaller font
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/infocard-ui.js-64-      const sizeFragment = dom.createFragment([
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/infocard-ui.js:65:        document.createTextNode(`${description} (`),
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/infocard-ui.js-66-        element,
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/infocard-ui.js-136-        .join(',');
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/infocard-ui.js:137:      return `{${flagsString}}`;
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/infocard-ui.js-138-    }
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/infocard-ui.js-240-      const flags = super._flagsString(containerNode);
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/infocard-ui.js:241:      return flags ? `- contains ${flags}` : '';
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/infocard-ui.js-242-    }
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js-31-    const dataUrl = fetchDataUrl();
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js:32:    window.open(`${FIREBASE_HOST}/viewer.html?load_url=${dataUrl}`);
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js-33-  });
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js-39-  const milestoneResponse = await fetch(
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js:40:      `${SIZE_FILEHOST}/milestones/milestones.json`);
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js-41-  const milestonesPushed = (await milestoneResponse.json())['pushed'];
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js-44-  const officialBuildsResponse =
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js:45:      await fetch(`${SIZE_FILEHOST}/official_builds/canary_reports.json`);
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js-46-  const officialBuildsPushed = (await officialBuildsResponse.json())['pushed'];
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js-179-      }
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js:180:      return `${SIZE_FILEHOST}/milestones/${value}/${selApk.value}.size`;
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/index.js-181-    }
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker-wasm.js-10-
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker-wasm.js:11:const LoadWasm = new Promise(function(resolve, reject) {
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker-wasm.js-12-  Module['onRuntimeInitialized'] = function() {
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker-wasm.js-76-    const params = `alt=media`;
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker-wasm.js:77:    const api_url = `${STORAGE_API_ENDPOINT}/b/${bucket}/o/${file}?${params}`;
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker-wasm.js-78-    const headers = new Headers();
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker-wasm.js:79:    headers.append('Authorization', `Bearer ${this._accessToken}`);
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker-wasm.js-80-    return this._doFetch(api_url, headers);
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js-163-     */
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js:164:    this._splitter = new RegExp(`[/${this._sep}]`);
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js-165-  }
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js-210-
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js:211:      parent.type = `${containerType}${lastBiggestType}`;
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js-212-      parent.size += additionalSize;
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js-425-        // Join file path to symbol name with a ":"
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js:426:        idPath: `${idPath}:${symbol[_KEYS.SYMBOL_NAME]}`,
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js-427-        srcPath,
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js-739-      const path = getSourcePath(fileEntry);
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js:740:      return `${component || '(No component)'}>${path}`;
chromium-84.0.4147.105/tools/binary_size/libsupersize/static/tree-worker.js-741-    },
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/BUILD.gn-6-
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/BUILD.gn:7:# Enable wasm target that depends on foo.patch being applied.
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/BUILD.gn-8-if (!defined(is_wasm)) {
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/BUILD.gn:9:  is_wasm = current_os == "wasm"
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/BUILD.gn-10-}
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/wasmbuild.patch-8- is_nacl = current_os == "nacl"
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/wasmbuild.patch:9:+is_wasm = current_os == "wasm"
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/wasmbuild.patch-10- is_win = current_os == "win" || current_os == "winuwp"
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/wasmbuild.patch-24- 
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/wasmbuild.patch:25:+  if (is_wasm && is_official_build) {
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/wasmbuild.patch-26-+    cflags_c += [
##############################################
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/wasmbuild.patch-87-- is_nacl = current_os == "nacl"
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/wasmbuild.patch:88:-+is_wasm = current_os == "wasm"
chromium-84.0.4147.105/tools/binary_size/libsupersize/caspian/wasmbuild.patch-89-- is_win = current_os == "win" || current_os == "winuwp"
##############################################
chromium-84.0.4147.105/tools/binary_size/BUILD.gn-28-
chromium-84.0.4147.105/tools/binary_size/BUILD.gn:29:# is_wasm is defined in BUILDCONFIG.gn only when wasmbuild.patch is applied.
chromium-84.0.4147.105/tools/binary_size/BUILD.gn-30-if (defined(is_wasm)) {
##############################################
chromium-84.0.4147.105/tools/chrome_extensions/open_my_editor/README.md-28-For any build.chromium.org site, select the file path then right click and 
chromium-84.0.4147.105/tools/chrome_extensions/open_my_editor/README.md:29:select `Open My Editor $file`.
chromium-84.0.4147.105/tools/chrome_extensions/open_my_editor/README.md-30-
##############################################
chromium-84.0.4147.105/tools/clang-format-js-6-if [[ -z "${@}" ]]; then
chromium-84.0.4147.105/tools/clang-format-js:7:  echo >&2 "Usage: `basename $0` <paths_to_clang_format...>"
chromium-84.0.4147.105/tools/clang-format-js-8-  exit 1
##############################################
chromium-84.0.4147.105/tools/clang-format-js-19-
chromium-84.0.4147.105/tools/clang-format-js:20:  dir=`readlink -f "${arg}"`
chromium-84.0.4147.105/tools/clang-format-js-21-  if [[ -d "${dir}" ]]; then
##############################################
chromium-84.0.4147.105/tools/clang-format-js-23-  fi
chromium-84.0.4147.105/tools/clang-format-js:24:  while dir=`dirname ${dir}`; do
chromium-84.0.4147.105/tools/clang-format-js-25-    if [[ -f "${dir}/.clang-format" ]]; then
##############################################
chromium-84.0.4147.105/tools/traceline/traceline/assembler_unittest.sh-6-
chromium-84.0.4147.105/tools/traceline/traceline/assembler_unittest.sh:7:./assembler_unittest.exe | ndisasm -u - | cut -c 11-
##############################################
chromium-84.0.4147.105/tools/traceline/traceline/Makefile-25-stubs : stubs.asm
chromium-84.0.4147.105/tools/traceline/traceline/Makefile:26:	nasm -o stubs stubs.asm
chromium-84.0.4147.105/tools/traceline/traceline/Makefile:27:	ndisasm -u stubs
chromium-84.0.4147.105/tools/traceline/traceline/Makefile-28-
##############################################
chromium-84.0.4147.105/tools/traceline/traceline/sym_resolver.h-118-    info.info.MaxNameLen = 127;
chromium-84.0.4147.105/tools/traceline/traceline/sym_resolver.h:119:    if (!::SymFromAddr(proc_, static_cast<DWORD64>(ptr), NULL, &info.info)) {
chromium-84.0.4147.105/tools/traceline/traceline/sym_resolver.h-120-      return std::string("failed");
##############################################
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-73457-    Logged whenever the CoreAudio dispatch override hotfix needs to look up the
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml:73458:    calling function using dladdr(). Once ResumeIO and PauseIO have been
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-73459-    identified, no more lookups should be performed during the session.
##############################################
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-158101-    The behaviour of site isolated web assembly code cache recorded for each
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml:158102:    cache transaction during WASM compilation. It records if the request was
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-158103-    serviced and if serviced how it was serviced for ex: hit, miss, update.
##############################################
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-178576-    Throughput of compilation of lazily compiled WebAssembly functions in KB/s
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml:178577:    (size of function in wasm format divided by time to compile it). This is
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-178578-    recorded per function for functions that are lazily compiled.
##############################################
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-178711-  <summary>
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml:178712:    Number of WebAssembly native modules live in a Wasm engine (typically per
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-178713-    process). Recorded whenever a new native module is created.
##############################################
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-207184-  <suffix name="wasm"
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml:207185:      label="This histogram contains results for wasm modules."/>
chromium-84.0.4147.105/tools/metrics/histograms/histograms.xml-207186-  <affected-histogram name="V8.WasmCompileFunctionMicroSeconds"/>
##############################################
chromium-84.0.4147.105/tools/metrics/actions/extract_actions.sh-6-
chromium-84.0.4147.105/tools/metrics/actions/extract_actions.sh:7:system_root=`cygpath "$SYSTEMROOT"`
chromium-84.0.4147.105/tools/metrics/actions/extract_actions.sh-8-export PATH="/usr/bin:$system_root/system32:$system_root:$system_root/system32/WBEM"
##############################################
chromium-84.0.4147.105/tools/swarming_client/tests/run_isolated_smoke_test.py-488-  def test_limit_processes(self):
chromium-84.0.4147.105/tools/swarming_client/tests/run_isolated_smoke_test.py:489:    # Execution fails because it tries to run a second process.
chromium-84.0.4147.105/tools/swarming_client/tests/run_isolated_smoke_test.py-490-    cmd = ['--limit-processes', '1', '--raw-cmd']
##############################################
chromium-84.0.4147.105/tools/swarming_client/third_party/google/protobuf/unittest_pb2.py-26-  syntax='proto2',
chromium-84.0.4147.105/tools/swarming_client/third_party/google/protobuf/unittest_pb2.py:27:  serialized_pb=_b('\n\x1egoogle/protobuf/unittest.proto\x12\x11protobuf_unittest\x1a%google/protobuf/unittest_import.proto\"\xed\x18\n\x0cTestAllTypes\x12\x16\n\x0eoptional_int32\x18\x01 \x01(\x05\x12\x16\n\x0eoptional_int64\x18\x02 \x01(\x03\x12\x17\n\x0foptional_uint32\x18\x03 \x01(\r\x12\x17\n\x0foptional_uint64\x18\x04 \x01(\x04\x12\x17\n\x0foptional_sint32\x18\x05 \x01(\x11\x12\x17\n\x0foptional_sint64\x18\x06 \x01(\x12\x12\x18\n\x10optional_fixed32\x18\x07 \x01(\x07\x12\x18\n\x10optional_fixed64\x18\x08 \x01(\x06\x12\x19\n\x11optional_sfixed32\x18\t \x01(\x0f\x12\x19\n\x11optional_sfixed64\x18\n \x01(\x10\x12\x16\n\x0eoptional_float\x18\x0b \x01(\x02\x12\x17\n\x0foptional_double\x18\x0c \x01(\x01\x12\x15\n\roptional_bool\x18\r \x01(\x08\x12\x17\n\x0foptional_string\x18\x0e \x01(\t\x12\x16\n\x0eoptional_bytes\x18\x0f \x01(\x0c\x12\x44\n\roptionalgroup\x18\x10 \x01(\n2-.protobuf_unittest.TestAllTypes.OptionalGroup\x12N\n\x17optional_nested_message\x18\x12 \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage\x12\x43\n\x18optional_foreign_message\x18\x13 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage\x12H\n\x17optional_import_message\x18\x14 \x01(\x0b\x32\'.protobuf_unittest_import.ImportMessage\x12H\n\x14optional_nested_enum\x18\x15 \x01(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum\x12=\n\x15optional_foreign_enum\x18\x16 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12\x42\n\x14optional_import_enum\x18\x17 \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum\x12!\n\x15optional_string_piece\x18\x18 \x01(\tB\x02\x08\x02\x12\x19\n\roptional_cord\x18\x19 \x01(\tB\x02\x08\x01\x12U\n\x1eoptional_public_import_message\x18\x1a \x01(\x0b\x32-.protobuf_unittest_import.PublicImportMessage\x12P\n\x15optional_lazy_message\x18\x1b \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageB\x02(\x01\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18  \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12\x44\n\rrepeatedgroup\x18. \x03(\n2-.protobuf_unittest.TestAllTypes.RepeatedGroup\x12N\n\x17repeated_nested_message\x18\x30 \x03(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage\x12\x43\n\x18repeated_foreign_message\x18\x31 \x03(\x0b\x32!.protobuf_unittest.ForeignMessage\x12H\n\x17repeated_import_message\x18\x32 \x03(\x0b\x32\'.protobuf_unittest_import.ImportMessage\x12H\n\x14repeated_nested_enum\x18\x33 \x03(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum\x12=\n\x15repeated_foreign_enum\x18\x34 \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12\x42\n\x14repeated_import_enum\x18\x35 \x03(\x0e\x32$.protobuf_unittest_import.ImportEnum\x12!\n\x15repeated_string_piece\x18\x36 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x37 \x03(\tB\x02\x08\x01\x12P\n\x15repeated_lazy_message\x18\x39 \x03(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageB\x02(\x01\x12\x19\n\rdefault_int32\x18= \x01(\x05:\x02\x34\x31\x12\x19\n\rdefault_int64\x18> \x01(\x03:\x02\x34\x32\x12\x1a\n\x0e\x64\x65\x66\x61ult_uint32\x18? \x01(\r:\x02\x34\x33\x12\x1a\n\x0e\x64\x65\x66\x61ult_uint64\x18@ \x01(\x04:\x02\x34\x34\x12\x1b\n\x0e\x64\x65\x66\x61ult_sint32\x18\x41 \x01(\x11:\x03-45\x12\x1a\n\x0e\x64\x65\x66\x61ult_sint64\x18\x42 \x01(\x12:\x02\x34\x36\x12\x1b\n\x0f\x64\x65\x66\x61ult_fixed32\x18\x43 \x01(\x07:\x02\x34\x37\x12\x1b\n\x0f\x64\x65\x66\x61ult_fixed64\x18\x44 \x01(\x06:\x02\x34\x38\x12\x1c\n\x10\x64\x65\x66\x61ult_sfixed32\x18\x45 \x01(\x0f:\x02\x34\x39\x12\x1d\n\x10\x64\x65\x66\x61ult_sfixed64\x18\x46 \x01(\x10:\x03-50\x12\x1b\n\rdefault_float\x18G \x01(\x02:\x04\x35\x31.5\x12\x1d\n\x0e\x64\x65\x66\x61ult_double\x18H \x01(\x01:\x05\x35\x32\x30\x30\x30\x12\x1a\n\x0c\x64\x65\x66\x61ult_bool\x18I \x01(\x08:\x04true\x12\x1d\n\x0e\x64\x65\x66\x61ult_string\x18J \x01(\t:\x05hello\x12\x1c\n\rdefault_bytes\x18K \x01(\x0c:\x05world\x12L\n\x13\x64\x65\x66\x61ult_nested_enum\x18Q \x01(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum:\x03\x42\x41R\x12I\n\x14\x64\x65\x66\x61ult_foreign_enum\x18R \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum:\x0b\x46OREIGN_BAR\x12M\n\x13\x64\x65\x66\x61ult_import_enum\x18S \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum:\nIMPORT_BAR\x12%\n\x14\x64\x65\x66\x61ult_string_piece\x18T \x01(\t:\x03\x61\x62\x63\x42\x02\x08\x02\x12\x1d\n\x0c\x64\x65\x66\x61ult_cord\x18U \x01(\t:\x03\x31\x32\x33\x42\x02\x08\x01\x12\x16\n\x0coneof_uint32\x18o \x01(\rH\x00\x12M\n\x14oneof_nested_message\x18p \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageH\x00\x12\x16\n\x0coneof_string\x18q \x01(\tH\x00\x12\x15\n\x0boneof_bytes\x18r \x01(\x0cH\x00\x1a\x1b\n\rNestedMessage\x12\n\n\x02\x62\x62\x18\x01 \x01(\x05\x1a\x1a\n\rOptionalGroup\x12\t\n\x01\x61\x18\x11 \x01(\x05\x1a\x1a\n\rRepeatedGroup\x12\t\n\x01\x61\x18/ \x01(\x05\"9\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02\x12\x07\n\x03\x42\x41Z\x10\x03\x12\x10\n\x03NEG\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x42\r\n\x0boneof_field\"\xbb\x01\n\x12NestedTestAllTypes\x12\x34\n\x05\x63hild\x18\x01 \x01(\x0b\x32%.protobuf_unittest.NestedTestAllTypes\x12\x30\n\x07payload\x18\x02 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12=\n\x0erepeated_child\x18\x03 \x03(\x0b\x32%.protobuf_unittest.NestedTestAllTypes\"m\n\x14TestDeprecatedFields\x12\x1c\n\x10\x64\x65precated_int32\x18\x01 \x01(\x05\x42\x02\x18\x01\x12\'\n\x19\x64\x65precated_int32_in_oneof\x18\x02 \x01(\x05\x42\x02\x18\x01H\x00\x42\x0e\n\x0coneof_fields\"\x1b\n\x15TestDeprecatedMessage:\x02\x18\x01\"&\n\x0e\x46oreignMessage\x12\t\n\x01\x63\x18\x01 \x01(\x05\x12\t\n\x01\x64\x18\x02 \x01(\x05\"0\n\x12TestReservedFieldsJ\x04\x08\x02\x10\x03J\x04\x08\x0f\x10\x10J\x04\x08\t\x10\x0cR\x03\x62\x61rR\x03\x62\x61z\"\x1d\n\x11TestAllExtensions*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"$\n\x17OptionalGroup_extension\x12\t\n\x01\x61\x18\x11 \x01(\x05\"$\n\x17RepeatedGroup_extension\x12\t\n\x01\x61\x18/ \x01(\x05\"\xa9\x01\n\tTestGroup\x12\x41\n\roptionalgroup\x18\x10 \x01(\n2*.protobuf_unittest.TestGroup.OptionalGroup\x12=\n\x15optional_foreign_enum\x18\x16 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x1a\x1a\n\rOptionalGroup\x12\t\n\x01\x61\x18\x11 \x01(\x05\"\x1e\n\x12TestGroupExtension*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"\xb7\x03\n\x13TestNestedExtension\x1a$\n\x17OptionalGroup_extension\x12\t\n\x01\x61\x18\x11 \x01(\x05\x32\x39\n\x04test\x12$.protobuf_unittest.TestAllExtensions\x18\xea\x07 \x01(\t:\x04test2F\n\x17nested_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18\xeb\x07 \x01(\t2\x86\x01\n\x17optionalgroup_extension\x12%.protobuf_unittest.TestGroupExtension\x18\x10 \x01(\n2>.protobuf_unittest.TestNestedExtension.OptionalGroup_extension2n\n\x1foptional_foreign_enum_extension\x12%.protobuf_unittest.TestGroupExtension\x18\x16 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\"\xd5\x05\n\x0cTestRequired\x12\t\n\x01\x61\x18\x01 \x02(\x05\x12\x0e\n\x06\x64ummy2\x18\x02 \x01(\x05\x12\t\n\x01\x62\x18\x03 \x02(\x05\x12\x0e\n\x06\x64ummy4\x18\x04 \x01(\x05\x12\x0e\n\x06\x64ummy5\x18\x05 \x01(\x05\x12\x0e\n\x06\x64ummy6\x18\x06 \x01(\x05\x12\x0e\n\x06\x64ummy7\x18\x07 \x01(\x05\x12\x0e\n\x06\x64ummy8\x18\x08 \x01(\x05\x12\x0e\n\x06\x64ummy9\x18\t \x01(\x05\x12\x0f\n\x07\x64ummy10\x18\n \x01(\x05\x12\x0f\n\x07\x64ummy11\x18\x0b \x01(\x05\x12\x0f\n\x07\x64ummy12\x18\x0c \x01(\x05\x12\x0f\n\x07\x64ummy13\x18\r \x01(\x05\x12\x0f\n\x07\x64ummy14\x18\x0e \x01(\x05\x12\x0f\n\x07\x64ummy15\x18\x0f \x01(\x05\x12\x0f\n\x07\x64ummy16\x18\x10 \x01(\x05\x12\x0f\n\x07\x64ummy17\x18\x11 \x01(\x05\x12\x0f\n\x07\x64ummy18\x18\x12 \x01(\x05\x12\x0f\n\x07\x64ummy19\x18\x13 \x01(\x05\x12\x0f\n\x07\x64ummy20\x18\x14 \x01(\x05\x12\x0f\n\x07\x64ummy21\x18\x15 \x01(\x05\x12\x0f\n\x07\x64ummy22\x18\x16 \x01(\x05\x12\x0f\n\x07\x64ummy23\x18\x17 \x01(\x05\x12\x0f\n\x07\x64ummy24\x18\x18 \x01(\x05\x12\x0f\n\x07\x64ummy25\x18\x19 \x01(\x05\x12\x0f\n\x07\x64ummy26\x18\x1a \x01(\x05\x12\x0f\n\x07\x64ummy27\x18\x1b \x01(\x05\x12\x0f\n\x07\x64ummy28\x18\x1c \x01(\x05\x12\x0f\n\x07\x64ummy29\x18\x1d \x01(\x05\x12\x0f\n\x07\x64ummy30\x18\x1e \x01(\x05\x12\x0f\n\x07\x64ummy31\x18\x1f \x01(\x05\x12\x0f\n\x07\x64ummy32\x18  \x01(\x05\x12\t\n\x01\x63\x18! \x02(\x05\x32V\n\x06single\x12$.protobuf_unittest.TestAllExtensions\x18\xe8\x07 \x01(\x0b\x32\x1f.protobuf_unittest.TestRequired2U\n\x05multi\x12$.protobuf_unittest.TestAllExtensions\x18\xe9\x07 \x03(\x0b\x32\x1f.protobuf_unittest.TestRequired\"\x9a\x01\n\x13TestRequiredForeign\x12\x39\n\x10optional_message\x18\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestRequired\x12\x39\n\x10repeated_message\x18\x02 \x03(\x0b\x32\x1f.protobuf_unittest.TestRequired\x12\r\n\x05\x64ummy\x18\x03 \x01(\x05\"\xc6\x01\n\x13TestRequiredMessage\x12\x39\n\x10optional_message\x18\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestRequired\x12\x39\n\x10repeated_message\x18\x02 \x03(\x0b\x32\x1f.protobuf_unittest.TestRequired\x12\x39\n\x10required_message\x18\x03 \x02(\x0b\x32\x1f.protobuf_unittest.TestRequired\"Z\n\x11TestForeignNested\x12\x45\n\x0e\x66oreign_nested\x18\x01 \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage\"\x12\n\x10TestEmptyMessage\"*\n\x1eTestEmptyMessageWithExtensions*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"7\n\x1bTestMultipleExtensionRanges*\x04\x08*\x10+*\x06\x08\xaf \x10\x94!*\n\x08\x80\x80\x04\x10\x80\x80\x80\x80\x02\"4\n\x18TestReallyLargeTagNumber\x12\t\n\x01\x61\x18\x01 \x01(\x05\x12\r\n\x02\x62\x62\x18\xff\xff\xff\x7f \x01(\x05\"U\n\x14TestRecursiveMessage\x12\x32\n\x01\x61\x18\x01 \x01(\x0b\x32\'.protobuf_unittest.TestRecursiveMessage\x12\t\n\x01i\x18\x02 \x01(\x05\"\xe1\x02\n\x14TestMutualRecursionA\x12\x33\n\x02\x62\x62\x18\x01 \x01(\x0b\x32\'.protobuf_unittest.TestMutualRecursionB\x12\x42\n\x08subgroup\x18\x02 \x01(\n20.protobuf_unittest.TestMutualRecursionA.SubGroup\x1a@\n\nSubMessage\x12\x32\n\x01\x62\x18\x01 \x01(\x0b\x32\'.protobuf_unittest.TestMutualRecursionB\x1a\x8d\x01\n\x08SubGroup\x12G\n\x0bsub_message\x18\x03 \x01(\x0b\x32\x32.protobuf_unittest.TestMutualRecursionA.SubMessage\x12\x38\n\x0fnot_in_this_scc\x18\x04 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\"b\n\x14TestMutualRecursionB\x12\x32\n\x01\x61\x18\x01 \x01(\x0b\x32\'.protobuf_unittest.TestMutualRecursionA\x12\x16\n\x0eoptional_int32\x18\x02 \x01(\x05\"\xca\x01\n\x11TestIsInitialized\x12\x44\n\x0bsub_message\x18\x01 \x01(\x0b\x32/.protobuf_unittest.TestIsInitialized.SubMessage\x1ao\n\nSubMessage\x12J\n\x08subgroup\x18\x01 \x01(\n28.protobuf_unittest.TestIsInitialized.SubMessage.SubGroup\x1a\x15\n\x08SubGroup\x12\t\n\x01i\x18\x02 \x02(\x05\"\xb3\x01\n\x12TestDupFieldNumber\x12\t\n\x01\x61\x18\x01 \x01(\x05\x12\x36\n\x03\x66oo\x18\x02 \x01(\n2).protobuf_unittest.TestDupFieldNumber.Foo\x12\x36\n\x03\x62\x61r\x18\x03 \x01(\n2).protobuf_unittest.TestDupFieldNumber.Bar\x1a\x10\n\x03\x46oo\x12\t\n\x01\x61\x18\x01 \x01(\x05\x1a\x10\n\x03\x42\x61r\x12\t\n\x01\x61\x18\x01 \x01(\x05\"L\n\x10TestEagerMessage\x12\x38\n\x0bsub_message\x18\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypesB\x02(\x00\"K\n\x0fTestLazyMessage\x12\x38\n\x0bsub_message\x18\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypesB\x02(\x01\"\x80\x02\n\x18TestNestedMessageHasBits\x12Z\n\x17optional_nested_message\x18\x01 \x01(\x0b\x32\x39.protobuf_unittest.TestNestedMessageHasBits.NestedMessage\x1a\x87\x01\n\rNestedMessage\x12$\n\x1cnestedmessage_repeated_int32\x18\x01 \x03(\x05\x12P\n%nestedmessage_repeated_foreignmessage\x18\x02 \x03(\x0b\x32!.protobuf_unittest.ForeignMessage\"\xe5\x03\n\x17TestCamelCaseFieldNames\x12\x16\n\x0ePrimitiveField\x18\x01 \x01(\x05\x12\x13\n\x0bStringField\x18\x02 \x01(\t\x12\x31\n\tEnumField\x18\x03 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12\x37\n\x0cMessageField\x18\x04 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage\x12\x1c\n\x10StringPieceField\x18\x05 \x01(\tB\x02\x08\x02\x12\x15\n\tCordField\x18\x06 \x01(\tB\x02\x08\x01\x12\x1e\n\x16RepeatedPrimitiveField\x18\x07 \x03(\x05\x12\x1b\n\x13RepeatedStringField\x18\x08 \x03(\t\x12\x39\n\x11RepeatedEnumField\x18\t \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12?\n\x14RepeatedMessageField\x18\n \x03(\x0b\x32!.protobuf_unittest.ForeignMessage\x12$\n\x18RepeatedStringPieceField\x18\x0b \x03(\tB\x02\x08\x02\x12\x1d\n\x11RepeatedCordField\x18\x0c \x03(\tB\x02\x08\x01\"\xd5\x01\n\x12TestFieldOrderings\x12\x11\n\tmy_string\x18\x0b \x01(\t\x12\x0e\n\x06my_int\x18\x01 \x01(\x03\x12\x10\n\x08my_float\x18\x65 \x01(\x02\x12U\n\x17optional_nested_message\x18\xc8\x01 \x01(\x0b\x32\x33.protobuf_unittest.TestFieldOrderings.NestedMessage\x1a\'\n\rNestedMessage\x12\n\n\x02oo\x18\x02 \x01(\x03\x12\n\n\x02\x62\x62\x18\x01 \x01(\x05*\x04\x08\x02\x10\x0b*\x04\x08\x0c\x10\x65\"\x9c\x01\n\x17TestExtensionOrderings1\x12\x11\n\tmy_string\x18\x01 \x01(\t2n\n\x13test_ext_orderings1\x12%.protobuf_unittest.TestFieldOrderings\x18\r \x01(\x0b\x32*.protobuf_unittest.TestExtensionOrderings1\"\xd4\x02\n\x17TestExtensionOrderings2\x12\x11\n\tmy_string\x18\x01 \x01(\t\x1a\xb5\x01\n\x17TestExtensionOrderings3\x12\x11\n\tmy_string\x18\x01 \x01(\t2\x86\x01\n\x13test_ext_orderings3\x12%.protobuf_unittest.TestFieldOrderings\x18\x0e \x01(\x0b\x32\x42.protobuf_unittest.TestExtensionOrderings2.TestExtensionOrderings32n\n\x13test_ext_orderings2\x12%.protobuf_unittest.TestFieldOrderings\x18\x0c \x01(\x0b\x32*.protobuf_unittest.TestExtensionOrderings2\"\xb6\x07\n\x18TestExtremeDefaultValues\x12?\n\rescaped_bytes\x18\x01 \x01(\x0c:(\\000\\001\\007\\010\\014\\n\\r\\t\\013\\\\\\\'\\\"\\376\x12 \n\x0clarge_uint32\x18\x02 \x01(\r:\n4294967295\x12*\n\x0clarge_uint64\x18\x03 \x01(\x04:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12 \n\x0bsmall_int32\x18\x04 \x01(\x05:\x0b-2147483647\x12)\n\x0bsmall_int64\x18\x05 \x01(\x03:\x14-9223372036854775807\x12\'\n\x12really_small_int32\x18\x15 \x01(\x05:\x0b-2147483648\x12\x30\n\x12really_small_int64\x18\x16 \x01(\x03:\x14-9223372036854775808\x12\x18\n\x0butf8_string\x18\x06 \x01(\t:\x03\xe1\x88\xb4\x12\x15\n\nzero_float\x18\x07 \x01(\x02:\x01\x30\x12\x14\n\tone_float\x18\x08 \x01(\x02:\x01\x31\x12\x18\n\x0bsmall_float\x18\t \x01(\x02:\x03\x31.5\x12\x1e\n\x12negative_one_float\x18\n \x01(\x02:\x02-1\x12\x1c\n\x0enegative_float\x18\x0b \x01(\x02:\x04-1.5\x12\x1a\n\x0blarge_float\x18\x0c \x01(\x02:\x05\x32\x65+08\x12$\n\x14small_negative_float\x18\r \x01(\x02:\x06-8e-28\x12\x17\n\ninf_double\x18\x0e \x01(\x01:\x03inf\x12\x1c\n\x0eneg_inf_double\x18\x0f \x01(\x01:\x04-inf\x12\x17\n\nnan_double\x18\x10 \x01(\x01:\x03nan\x12\x16\n\tinf_float\x18\x11 \x01(\x02:\x03inf\x12\x1b\n\rneg_inf_float\x18\x12 \x01(\x02:\x04-inf\x12\x16\n\tnan_float\x18\x13 \x01(\x02:\x03nan\x12+\n\x0c\x63pp_trigraph\x18\x14 \x01(\t:\x15? ? ?? ?? ??? ??/ ??-\x12 \n\x10string_with_zero\x18\x17 \x01(\t:\x06hel\x00lo\x12\"\n\x0f\x62ytes_with_zero\x18\x18 \x01(\x0c:\twor\\000ld\x12(\n\x16string_piece_with_zero\x18\x19 \x01(\t:\x04\x61\x62\x00\x63\x42\x02\x08\x02\x12 \n\x0e\x63ord_with_zero\x18\x1a \x01(\t:\x04\x31\x32\x00\x33\x42\x02\x08\x01\x12&\n\x12replacement_string\x18\x1b \x01(\t:\n${unknown}\"K\n\x11SparseEnumMessage\x12\x36\n\x0bsparse_enum\x18\x01 \x01(\x0e\x32!.protobuf_unittest.TestSparseEnum\"\x19\n\tOneString\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\t\"\x1a\n\nMoreString\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\t\"\x18\n\x08OneBytes\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x19\n\tMoreBytes\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x0c\"\x1c\n\x0cInt32Message\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x05\"\x1d\n\rUint32Message\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\r\"\x1c\n\x0cInt64Message\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x03\"\x1d\n\rUint64Message\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x04\"\x1b\n\x0b\x42oolMessage\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x08\"\xd0\x01\n\tTestOneof\x12\x11\n\x07\x66oo_int\x18\x01 \x01(\x05H\x00\x12\x14\n\nfoo_string\x18\x02 \x01(\tH\x00\x12\x36\n\x0b\x66oo_message\x18\x03 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypesH\x00\x12\x39\n\x08\x66oogroup\x18\x04 \x01(\n2%.protobuf_unittest.TestOneof.FooGroupH\x00\x1a \n\x08\x46ooGroup\x12\t\n\x01\x61\x18\x05 \x01(\x05\x12\t\n\x01\x62\x18\x06 \x01(\tB\x05\n\x03\x66oo\"\xe7\x01\n\x1cTestOneofBackwardsCompatible\x12\x0f\n\x07\x66oo_int\x18\x01 \x01(\x05\x12\x12\n\nfoo_string\x18\x02 \x01(\t\x12\x34\n\x0b\x66oo_message\x18\x03 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12J\n\x08\x66oogroup\x18\x04 \x01(\n28.protobuf_unittest.TestOneofBackwardsCompatible.FooGroup\x1a \n\x08\x46ooGroup\x12\t\n\x01\x61\x18\x05 \x01(\x05\x12\t\n\x01\x62\x18\x06 \x01(\t\"\x9e\x06\n\nTestOneof2\x12\x11\n\x07\x66oo_int\x18\x01 \x01(\x05H\x00\x12\x14\n\nfoo_string\x18\x02 \x01(\tH\x00\x12\x16\n\x08\x66oo_cord\x18\x03 \x01(\tB\x02\x08\x01H\x00\x12\x1e\n\x10\x66oo_string_piece\x18\x04 \x01(\tB\x02\x08\x02H\x00\x12\x13\n\tfoo_bytes\x18\x05 \x01(\x0cH\x00\x12<\n\x08\x66oo_enum\x18\x06 \x01(\x0e\x32(.protobuf_unittest.TestOneof2.NestedEnumH\x00\x12\x42\n\x0b\x66oo_message\x18\x07 \x01(\x0b\x32+.protobuf_unittest.TestOneof2.NestedMessageH\x00\x12:\n\x08\x66oogroup\x18\x08 \x01(\n2&.protobuf_unittest.TestOneof2.FooGroupH\x00\x12K\n\x10\x66oo_lazy_message\x18\x0b \x01(\x0b\x32+.protobuf_unittest.TestOneof2.NestedMessageB\x02(\x01H\x00\x12\x14\n\x07\x62\x61r_int\x18\x0c \x01(\x05:\x01\x35H\x01\x12\x1c\n\nbar_string\x18\r \x01(\t:\x06STRINGH\x01\x12\x1c\n\x08\x62\x61r_cord\x18\x0e \x01(\t:\x04\x43ORDB\x02\x08\x01H\x01\x12&\n\x10\x62\x61r_string_piece\x18\x0f \x01(\t:\x06SPIECEB\x02\x08\x02H\x01\x12\x1a\n\tbar_bytes\x18\x10 \x01(\x0c:\x05\x42YTESH\x01\x12\x41\n\x08\x62\x61r_enum\x18\x11 \x01(\x0e\x32(.protobuf_unittest.TestOneof2.NestedEnum:\x03\x42\x41RH\x01\x12\x0f\n\x07\x62\x61z_int\x18\x12 \x01(\x05\x12\x17\n\nbaz_string\x18\x13 \x01(\t:\x03\x42\x41Z\x1a \n\x08\x46ooGroup\x12\t\n\x01\x61\x18\t \x01(\x05\x12\t\n\x01\x62\x18\n \x01(\t\x1a\x33\n\rNestedMessage\x12\x0f\n\x07qux_int\x18\x01 \x01(\x03\x12\x11\n\tcorge_int\x18\x02 \x03(\x05\"\'\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02\x12\x07\n\x03\x42\x41Z\x10\x03\x42\x05\n\x03\x66ooB\x05\n\x03\x62\x61r\"\xb8\x01\n\x11TestRequiredOneof\x12\x11\n\x07\x66oo_int\x18\x01 \x01(\x05H\x00\x12\x14\n\nfoo_string\x18\x02 \x01(\tH\x00\x12I\n\x0b\x66oo_message\x18\x03 \x01(\x0b\x32\x32.protobuf_unittest.TestRequiredOneof.NestedMessageH\x00\x1a(\n\rNestedMessage\x12\x17\n\x0frequired_double\x18\x01 \x02(\x01\x42\x05\n\x03\x66oo\"\xaa\x03\n\x0fTestPackedTypes\x12\x18\n\x0cpacked_int32\x18Z \x03(\x05\x42\x02\x10\x01\x12\x18\n\x0cpacked_int64\x18[ \x03(\x03\x42\x02\x10\x01\x12\x19\n\rpacked_uint32\x18\\ \x03(\rB\x02\x10\x01\x12\x19\n\rpacked_uint64\x18] \x03(\x04\x42\x02\x10\x01\x12\x19\n\rpacked_sint32\x18^ \x03(\x11\x42\x02\x10\x01\x12\x19\n\rpacked_sint64\x18_ \x03(\x12\x42\x02\x10\x01\x12\x1a\n\x0epacked_fixed32\x18` \x03(\x07\x42\x02\x10\x01\x12\x1a\n\x0epacked_fixed64\x18\x61 \x03(\x06\x42\x02\x10\x01\x12\x1b\n\x0fpacked_sfixed32\x18\x62 \x03(\x0f\x42\x02\x10\x01\x12\x1b\n\x0fpacked_sfixed64\x18\x63 \x03(\x10\x42\x02\x10\x01\x12\x18\n\x0cpacked_float\x18\x64 \x03(\x02\x42\x02\x10\x01\x12\x19\n\rpacked_double\x18\x65 \x03(\x01\x42\x02\x10\x01\x12\x17\n\x0bpacked_bool\x18\x66 \x03(\x08\x42\x02\x10\x01\x12\x37\n\x0bpacked_enum\x18g \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnumB\x02\x10\x01\"\xc8\x03\n\x11TestUnpackedTypes\x12\x1a\n\x0eunpacked_int32\x18Z \x03(\x05\x42\x02\x10\x00\x12\x1a\n\x0eunpacked_int64\x18[ \x03(\x03\x42\x02\x10\x00\x12\x1b\n\x0funpacked_uint32\x18\\ \x03(\rB\x02\x10\x00\x12\x1b\n\x0funpacked_uint64\x18] \x03(\x04\x42\x02\x10\x00\x12\x1b\n\x0funpacked_sint32\x18^ \x03(\x11\x42\x02\x10\x00\x12\x1b\n\x0funpacked_sint64\x18_ \x03(\x12\x42\x02\x10\x00\x12\x1c\n\x10unpacked_fixed32\x18` \x03(\x07\x42\x02\x10\x00\x12\x1c\n\x10unpacked_fixed64\x18\x61 \x03(\x06\x42\x02\x10\x00\x12\x1d\n\x11unpacked_sfixed32\x18\x62 \x03(\x0f\x42\x02\x10\x00\x12\x1d\n\x11unpacked_sfixed64\x18\x63 \x03(\x10\x42\x02\x10\x00\x12\x1a\n\x0eunpacked_float\x18\x64 \x03(\x02\x42\x02\x10\x00\x12\x1b\n\x0funpacked_double\x18\x65 \x03(\x01\x42\x02\x10\x00\x12\x19\n\runpacked_bool\x18\x66 \x03(\x08\x42\x02\x10\x00\x12\x39\n\runpacked_enum\x18g \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnumB\x02\x10\x00\" \n\x14TestPackedExtensions*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"\"\n\x16TestUnpackedExtensions*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"\x99\x04\n\x15TestDynamicExtensions\x12\x19\n\x10scalar_extension\x18\xd0\x0f \x01(\x07\x12\x37\n\x0e\x65num_extension\x18\xd1\x0f \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12Y\n\x16\x64ynamic_enum_extension\x18\xd2\x0f \x01(\x0e\x32\x38.protobuf_unittest.TestDynamicExtensions.DynamicEnumType\x12=\n\x11message_extension\x18\xd3\x0f \x01(\x0b\x32!.protobuf_unittest.ForeignMessage\x12_\n\x19\x64ynamic_message_extension\x18\xd4\x0f \x01(\x0b\x32;.protobuf_unittest.TestDynamicExtensions.DynamicMessageType\x12\x1b\n\x12repeated_extension\x18\xd5\x0f \x03(\t\x12\x1d\n\x10packed_extension\x18\xd6\x0f \x03(\x11\x42\x02\x10\x01\x1a,\n\x12\x44ynamicMessageType\x12\x16\n\rdynamic_field\x18\xb4\x10 \x01(\x05\"G\n\x0f\x44ynamicEnumType\x12\x10\n\x0b\x44YNAMIC_FOO\x10\x98\x11\x12\x10\n\x0b\x44YNAMIC_BAR\x10\x99\x11\x12\x10\n\x0b\x44YNAMIC_BAZ\x10\x9a\x11\"\xc0\x01\n#TestRepeatedScalarDifferentTagSizes\x12\x18\n\x10repeated_fixed32\x18\x0c \x03(\x07\x12\x16\n\x0erepeated_int32\x18\r \x03(\x05\x12\x19\n\x10repeated_fixed64\x18\xfe\x0f \x03(\x06\x12\x17\n\x0erepeated_int64\x18\xff\x0f \x03(\x03\x12\x18\n\x0erepeated_float\x18\xfe\xff\x0f \x03(\x02\x12\x19\n\x0frepeated_uint64\x18\xff\xff\x0f \x03(\x04\"\xf7\t\n\x10TestParsingMerge\x12;\n\x12required_all_types\x18\x01 \x02(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12;\n\x12optional_all_types\x18\x02 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12;\n\x12repeated_all_types\x18\x03 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12H\n\roptionalgroup\x18\n \x01(\n21.protobuf_unittest.TestParsingMerge.OptionalGroup\x12H\n\rrepeatedgroup\x18\x14 \x03(\n21.protobuf_unittest.TestParsingMerge.RepeatedGroup\x1a\xaa\x04\n\x17RepeatedFieldsGenerator\x12/\n\x06\x66ield1\x18\x01 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12/\n\x06\x66ield2\x18\x02 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12/\n\x06\x66ield3\x18\x03 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12R\n\x06group1\x18\n \x03(\n2B.protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1\x12R\n\x06group2\x18\x14 \x03(\n2B.protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2\x12.\n\x04\x65xt1\x18\xe8\x07 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12.\n\x04\x65xt2\x18\xe9\x07 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x1a\x39\n\x06Group1\x12/\n\x06\x66ield1\x18\x0b \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x1a\x39\n\x06Group2\x12/\n\x06\x66ield1\x18\x15 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x1aR\n\rOptionalGroup\x12\x41\n\x18optional_group_all_types\x18\x0b \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x1aR\n\rRepeatedGroup\x12\x41\n\x18repeated_group_all_types\x18\x15 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x32[\n\x0coptional_ext\x12#.protobuf_unittest.TestParsingMerge\x18\xe8\x07 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes2[\n\x0crepeated_ext\x12#.protobuf_unittest.TestParsingMerge\x18\xe9\x07 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\"D\n\x1bTestCommentInjectionMessage\x12%\n\x01\x61\x18\x01 \x01(\t:\x1a*/ <- Neither should this.\"\x0c\n\nFooRequest\"\r\n\x0b\x46ooResponse\"\x12\n\x10\x46ooClientMessage\"\x12\n\x10\x46ooServerMessage\"\x0c\n\nBarRequest\"\r\n\x0b\x42\x61rResponse\"\x92\x01\n\x0cTestJsonName\x12\x13\n\x0b\x66ield_name1\x18\x01 \x01(\x05\x12\x12\n\nfieldName2\x18\x02 \x01(\x05\x12\x12\n\nFieldName3\x18\x03 \x01(\x05\x12\x14\n\x0c_field_name4\x18\x04 \x01(\x05\x12\x13\n\x0b\x46IELD_NAME5\x18\x05 \x01(\x05\x12\x1a\n\x0b\x66ield_name6\x18\x06 \x01(\x05R\x05@type\"\xfd\x05\n\x14TestHugeFieldNumbers\x12\x1a\n\x0eoptional_int32\x18\xf0\xf8\xff\xff\x01 \x01(\x05\x12\x14\n\x08\x66ixed_32\x18\xf1\xf8\xff\xff\x01 \x01(\x05\x12\x1e\n\x0erepeated_int32\x18\xf2\xf8\xff\xff\x01 \x03(\x05\x42\x02\x10\x00\x12\x1c\n\x0cpacked_int32\x18\xf3\xf8\xff\xff\x01 \x03(\x05\x42\x02\x10\x01\x12\x39\n\roptional_enum\x18\xf4\xf8\xff\xff\x01 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12\x1b\n\x0foptional_string\x18\xf5\xf8\xff\xff\x01 \x01(\t\x12\x1a\n\x0eoptional_bytes\x18\xf6\xf8\xff\xff\x01 \x01(\x0c\x12?\n\x10optional_message\x18\xf7\xf8\xff\xff\x01 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage\x12P\n\roptionalgroup\x18\xf8\xf8\xff\xff\x01 \x01(\n25.protobuf_unittest.TestHugeFieldNumbers.OptionalGroup\x12[\n\x11string_string_map\x18\xfa\xf8\xff\xff\x01 \x03(\x0b\x32<.protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry\x12\x1a\n\x0coneof_uint32\x18\xfb\xf8\xff\xff\x01 \x01(\rH\x00\x12\x43\n\x14oneof_test_all_types\x18\xfc\xf8\xff\xff\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypesH\x00\x12\x1a\n\x0coneof_string\x18\xfd\xf8\xff\xff\x01 \x01(\tH\x00\x12\x19\n\x0boneof_bytes\x18\xfe\xf8\xff\xff\x01 \x01(\x0cH\x00\x1a$\n\rOptionalGroup\x12\x13\n\x07group_a\x18\xf9\xf8\xff\xff\x01 \x01(\x05\x1a\x36\n\x14StringStringMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*\x0c\x08\xe0\xaa\xff\xff\x01\x10\xf0\xf8\xff\xff\x01\x42\r\n\x0boneof_field\"\xb1\x01\n\x18TestExtensionInsideTable\x12\x0e\n\x06\x66ield1\x18\x01 \x01(\x05\x12\x0e\n\x06\x66ield2\x18\x02 \x01(\x05\x12\x0e\n\x06\x66ield3\x18\x03 \x01(\x05\x12\x0e\n\x06\x66ield4\x18\x04 \x01(\x05\x12\x0e\n\x06\x66ield6\x18\x06 \x01(\x05\x12\x0e\n\x06\x66ield7\x18\x07 \x01(\x05\x12\x0e\n\x06\x66ield8\x18\x08 \x01(\x05\x12\x0e\n\x06\x66ield9\x18\t \x01(\x05\x12\x0f\n\x07\x66ield10\x18\n \x01(\x05*\x04\x08\x05\x10\x06*@\n\x0b\x46oreignEnum\x12\x0f\n\x0b\x46OREIGN_FOO\x10\x04\x12\x0f\n\x0b\x46OREIGN_BAR\x10\x05\x12\x0f\n\x0b\x46OREIGN_BAZ\x10\x06*K\n\x14TestEnumWithDupValue\x12\x08\n\x04\x46OO1\x10\x01\x12\x08\n\x04\x42\x41R1\x10\x02\x12\x07\n\x03\x42\x41Z\x10\x03\x12\x08\n\x04\x46OO2\x10\x01\x12\x08\n\x04\x42\x41R2\x10\x02\x1a\x02\x10\x01*\x89\x01\n\x0eTestSparseEnum\x12\x0c\n\x08SPARSE_A\x10{\x12\x0e\n\x08SPARSE_B\x10\xa6\xe7\x03\x12\x0f\n\x08SPARSE_C\x10\xb2\xb1\x80\x06\x12\x15\n\x08SPARSE_D\x10\xf1\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x15\n\x08SPARSE_E\x10\xb4\xde\xfc\xff\xff\xff\xff\xff\xff\x01\x12\x0c\n\x08SPARSE_F\x10\x00\x12\x0c\n\x08SPARSE_G\x10\x02\x32\x99\x01\n\x0bTestService\x12\x44\n\x03\x46oo\x12\x1d.protobuf_unittest.FooRequest\x1a\x1e.protobuf_unittest.FooResponse\x12\x44\n\x03\x42\x61r\x12\x1d.protobuf_unittest.BarRequest\x1a\x1e.protobuf_unittest.BarResponse:F\n\x18optional_int32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x01 \x01(\x05:F\n\x18optional_int64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x02 \x01(\x03:G\n\x19optional_uint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x03 \x01(\r:G\n\x19optional_uint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x04 \x01(\x04:G\n\x19optional_sint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x05 \x01(\x11:G\n\x19optional_sint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x06 \x01(\x12:H\n\x1aoptional_fixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x07 \x01(\x07:H\n\x1aoptional_fixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x08 \x01(\x06:I\n\x1boptional_sfixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\t \x01(\x0f:I\n\x1boptional_sfixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\n \x01(\x10:F\n\x18optional_float_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x0b \x01(\x02:G\n\x19optional_double_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x0c \x01(\x01:E\n\x17optional_bool_extension\x12$.protobuf_unittest.TestAllExtensions\x18\r \x01(\x08:G\n\x19optional_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x0e \x01(\t:F\n\x18optional_bytes_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x0f \x01(\x0c:q\n\x17optionalgroup_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x10 \x01(\n2*.protobuf_unittest.OptionalGroup_extension:~\n!optional_nested_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x12 \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage:s\n\"optional_foreign_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x13 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage:x\n!optional_import_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x14 \x01(\x0b\x32\'.protobuf_unittest_import.ImportMessage:x\n\x1eoptional_nested_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x15 \x01(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum:m\n\x1foptional_foreign_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x16 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum:r\n\x1eoptional_import_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x17 \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum:Q\n\x1foptional_string_piece_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x18 \x01(\tB\x02\x08\x02:I\n\x17optional_cord_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x19 \x01(\tB\x02\x08\x01:\x85\x01\n(optional_public_import_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x1a \x01(\x0b\x32-.protobuf_unittest_import.PublicImportMessage:\x80\x01\n\x1foptional_lazy_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x1b \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageB\x02(\x01:F\n\x18repeated_int32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x1f \x03(\x05:F\n\x18repeated_int64_extension\x12$.protobuf_unittest.TestAllExtensions\x18  \x03(\x03:G\n\x19repeated_uint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18! \x03(\r:G\n\x19repeated_uint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\" \x03(\x04:G\n\x19repeated_sint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18# \x03(\x11:G\n\x19repeated_sint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18$ \x03(\x12:H\n\x1arepeated_fixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18% \x03(\x07:H\n\x1arepeated_fixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18& \x03(\x06:I\n\x1brepeated_sfixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\' \x03(\x0f:I\n\x1brepeated_sfixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18( \x03(\x10:F\n\x18repeated_float_extension\x12$.protobuf_unittest.TestAllExtensions\x18) \x03(\x02:G\n\x19repeated_double_extension\x12$.protobuf_unittest.TestAllExtensions\x18* \x03(\x01:E\n\x17repeated_bool_extension\x12$.protobuf_unittest.TestAllExtensions\x18+ \x03(\x08:G\n\x19repeated_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18, \x03(\t:F\n\x18repeated_bytes_extension\x12$.protobuf_unittest.TestAllExtensions\x18- \x03(\x0c:q\n\x17repeatedgroup_extension\x12$.protobuf_unittest.TestAllExtensions\x18. \x03(\n2*.protobuf_unittest.RepeatedGroup_extension:~\n!repeated_nested_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x30 \x03(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage:s\n\"repeated_foreign_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x31 \x03(\x0b\x32!.protobuf_unittest.ForeignMessage:x\n!repeated_import_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x32 \x03(\x0b\x32\'.protobuf_unittest_import.ImportMessage:x\n\x1erepeated_nested_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x33 \x03(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum:m\n\x1frepeated_foreign_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x34 \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnum:r\n\x1erepeated_import_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x35 \x03(\x0e\x32$.protobuf_unittest_import.ImportEnum:Q\n\x1frepeated_string_piece_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x36 \x03(\tB\x02\x08\x02:I\n\x17repeated_cord_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x37 \x03(\tB\x02\x08\x01:\x80\x01\n\x1frepeated_lazy_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x39 \x03(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageB\x02(\x01:I\n\x17\x64\x65\x66\x61ult_int32_extension\x12$.protobuf_unittest.TestAllExtensions\x18= \x01(\x05:\x02\x34\x31:I\n\x17\x64\x65\x66\x61ult_int64_extension\x12$.protobuf_unittest.TestAllExtensions\x18> \x01(\x03:\x02\x34\x32:J\n\x18\x64\x65\x66\x61ult_uint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18? \x01(\r:\x02\x34\x33:J\n\x18\x64\x65\x66\x61ult_uint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18@ \x01(\x04:\x02\x34\x34:K\n\x18\x64\x65\x66\x61ult_sint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x41 \x01(\x11:\x03-45:J\n\x18\x64\x65\x66\x61ult_sint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x42 \x01(\x12:\x02\x34\x36:K\n\x19\x64\x65\x66\x61ult_fixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x43 \x01(\x07:\x02\x34\x37:K\n\x19\x64\x65\x66\x61ult_fixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x44 \x01(\x06:\x02\x34\x38:L\n\x1a\x64\x65\x66\x61ult_sfixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x45 \x01(\x0f:\x02\x34\x39:M\n\x1a\x64\x65\x66\x61ult_sfixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x46 \x01(\x10:\x03-50:K\n\x17\x64\x65\x66\x61ult_float_extension\x12$.protobuf_unittest.TestAllExtensions\x18G \x01(\x02:\x04\x35\x31.5:M\n\x18\x64\x65\x66\x61ult_double_extension\x12$.protobuf_unittest.TestAllExtensions\x18H \x01(\x01:\x05\x35\x32\x30\x30\x30:J\n\x16\x64\x65\x66\x61ult_bool_extension\x12$.protobuf_unittest.TestAllExtensions\x18I \x01(\x08:\x04true:M\n\x18\x64\x65\x66\x61ult_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18J \x01(\t:\x05hello:L\n\x17\x64\x65\x66\x61ult_bytes_extension\x12$.protobuf_unittest.TestAllExtensions\x18K \x01(\x0c:\x05world:|\n\x1d\x64\x65\x66\x61ult_nested_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18Q \x01(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum:\x03\x42\x41R:y\n\x1e\x64\x65\x66\x61ult_foreign_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18R \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum:\x0b\x46OREIGN_BAR:}\n\x1d\x64\x65\x66\x61ult_import_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18S \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum:\nIMPORT_BAR:U\n\x1e\x64\x65\x66\x61ult_string_piece_extension\x12$.protobuf_unittest.TestAllExtensions\x18T \x01(\t:\x03\x61\x62\x63\x42\x02\x08\x02:M\n\x16\x64\x65\x66\x61ult_cord_extension\x12$.protobuf_unittest.TestAllExtensions\x18U \x01(\t:\x03\x31\x32\x33\x42\x02\x08\x01:D\n\x16oneof_uint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18o \x01(\r:{\n\x1eoneof_nested_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18p \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage:D\n\x16oneof_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18q \x01(\t:C\n\x15oneof_bytes_extension\x12$.protobuf_unittest.TestAllExtensions\x18r \x01(\x0c:B\n\x13my_extension_string\x12%.protobuf_unittest.TestFieldOrderings\x18\x32 \x01(\t:?\n\x10my_extension_int\x12%.protobuf_unittest.TestFieldOrderings\x18\x05 \x01(\x05:K\n\x16packed_int32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18Z \x03(\x05\x42\x02\x10\x01:K\n\x16packed_int64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18[ \x03(\x03\x42\x02\x10\x01:L\n\x17packed_uint32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\\ \x03(\rB\x02\x10\x01:L\n\x17packed_uint64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18] \x03(\x04\x42\x02\x10\x01:L\n\x17packed_sint32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18^ \x03(\x11\x42\x02\x10\x01:L\n\x17packed_sint64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18_ \x03(\x12\x42\x02\x10\x01:M\n\x18packed_fixed32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18` \x03(\x07\x42\x02\x10\x01:M\n\x18packed_fixed64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x61 \x03(\x06\x42\x02\x10\x01:N\n\x19packed_sfixed32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x62 \x03(\x0f\x42\x02\x10\x01:N\n\x19packed_sfixed64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x63 \x03(\x10\x42\x02\x10\x01:K\n\x16packed_float_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x64 \x03(\x02\x42\x02\x10\x01:L\n\x17packed_double_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x65 \x03(\x01\x42\x02\x10\x01:J\n\x15packed_bool_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x66 \x03(\x08\x42\x02\x10\x01:j\n\x15packed_enum_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18g \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnumB\x02\x10\x01:O\n\x18unpacked_int32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18Z \x03(\x05\x42\x02\x10\x00:O\n\x18unpacked_int64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18[ \x03(\x03\x42\x02\x10\x00:P\n\x19unpacked_uint32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\\ \x03(\rB\x02\x10\x00:P\n\x19unpacked_uint64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18] \x03(\x04\x42\x02\x10\x00:P\n\x19unpacked_sint32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18^ \x03(\x11\x42\x02\x10\x00:P\n\x19unpacked_sint64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18_ \x03(\x12\x42\x02\x10\x00:Q\n\x1aunpacked_fixed32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18` \x03(\x07\x42\x02\x10\x00:Q\n\x1aunpacked_fixed64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x61 \x03(\x06\x42\x02\x10\x00:R\n\x1bunpacked_sfixed32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x62 \x03(\x0f\x42\x02\x10\x00:R\n\x1bunpacked_sfixed64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x63 \x03(\x10\x42\x02\x10\x00:O\n\x18unpacked_float_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x64 \x03(\x02\x42\x02\x10\x00:P\n\x19unpacked_double_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x65 \x03(\x01\x42\x02\x10\x00:N\n\x17unpacked_bool_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x66 \x03(\x08\x42\x02\x10\x00:n\n\x17unpacked_enum_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18g \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnumB\x02\x10\x00:d\n\x0etest_all_types\x12\'.protobuf_unittest.TestHugeFieldNumbers\x18\xe0\xaa\xff\xff\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes:Z\n%test_extension_inside_table_extension\x12+.protobuf_unittest.TestExtensionInsideTable\x18\x05 \x01(\x05\x42\x1d\x42\rUnittestProtoH\x01\x80\x01\x01\x88\x01\x01\x90\x01\x01\xf8\x01\x01')
chromium-84.0.4147.105/tools/swarming_client/third_party/google/protobuf/unittest_pb2.py-28-  ,
##############################################
chromium-84.0.4147.105/tools/swarming_client/third_party/google/protobuf/test_messages_proto3_pb2.py-28-  syntax='proto3',
chromium-84.0.4147.105/tools/swarming_client/third_party/google/protobuf/test_messages_proto3_pb2.py:29:  serialized_pb=_b('\n*google/protobuf/test_messages_proto3.proto\x12\x1dprotobuf_test_messages.proto3\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb4;\n\x12TestAllTypesProto3\x12\x16\n\x0eoptional_int32\x18\x01 \x01(\x05\x12\x16\n\x0eoptional_int64\x18\x02 \x01(\x03\x12\x17\n\x0foptional_uint32\x18\x03 \x01(\r\x12\x17\n\x0foptional_uint64\x18\x04 \x01(\x04\x12\x17\n\x0foptional_sint32\x18\x05 \x01(\x11\x12\x17\n\x0foptional_sint64\x18\x06 \x01(\x12\x12\x18\n\x10optional_fixed32\x18\x07 \x01(\x07\x12\x18\n\x10optional_fixed64\x18\x08 \x01(\x06\x12\x19\n\x11optional_sfixed32\x18\t \x01(\x0f\x12\x19\n\x11optional_sfixed64\x18\n \x01(\x10\x12\x16\n\x0eoptional_float\x18\x0b \x01(\x02\x12\x17\n\x0foptional_double\x18\x0c \x01(\x01\x12\x15\n\roptional_bool\x18\r \x01(\x08\x12\x17\n\x0foptional_string\x18\x0e \x01(\t\x12\x16\n\x0eoptional_bytes\x18\x0f \x01(\x0c\x12`\n\x17optional_nested_message\x18\x12 \x01(\x0b\x32?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage\x12O\n\x18optional_foreign_message\x18\x13 \x01(\x0b\x32-.protobuf_test_messages.proto3.ForeignMessage\x12Z\n\x14optional_nested_enum\x18\x15 \x01(\x0e\x32<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum\x12I\n\x15optional_foreign_enum\x18\x16 \x01(\x0e\x32*.protobuf_test_messages.proto3.ForeignEnum\x12!\n\x15optional_string_piece\x18\x18 \x01(\tB\x02\x08\x02\x12\x19\n\roptional_cord\x18\x19 \x01(\tB\x02\x08\x01\x12L\n\x11recursive_message\x18\x1b \x01(\x0b\x32\x31.protobuf_test_messages.proto3.TestAllTypesProto3\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18  \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12`\n\x17repeated_nested_message\x18\x30 \x03(\x0b\x32?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage\x12O\n\x18repeated_foreign_message\x18\x31 \x03(\x0b\x32-.protobuf_test_messages.proto3.ForeignMessage\x12Z\n\x14repeated_nested_enum\x18\x33 \x03(\x0e\x32<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum\x12I\n\x15repeated_foreign_enum\x18\x34 \x03(\x0e\x32*.protobuf_test_messages.proto3.ForeignEnum\x12!\n\x15repeated_string_piece\x18\x36 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x37 \x03(\tB\x02\x08\x01\x12]\n\x0fmap_int32_int32\x18\x38 \x03(\x0b\x32\x44.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry\x12]\n\x0fmap_int64_int64\x18\x39 \x03(\x0b\x32\x44.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry\x12\x61\n\x11map_uint32_uint32\x18: \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry\x12\x61\n\x11map_uint64_uint64\x18; \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry\x12\x61\n\x11map_sint32_sint32\x18< \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry\x12\x61\n\x11map_sint64_sint64\x18= \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry\x12\x65\n\x13map_fixed32_fixed32\x18> \x03(\x0b\x32H.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry\x12\x65\n\x13map_fixed64_fixed64\x18? \x03(\x0b\x32H.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry\x12i\n\x15map_sfixed32_sfixed32\x18@ \x03(\x0b\x32J.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry\x12i\n\x15map_sfixed64_sfixed64\x18\x41 \x03(\x0b\x32J.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry\x12]\n\x0fmap_int32_float\x18\x42 \x03(\x0b\x32\x44.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry\x12_\n\x10map_int32_double\x18\x43 \x03(\x0b\x32\x45.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry\x12Y\n\rmap_bool_bool\x18\x44 \x03(\x0b\x32\x42.protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry\x12\x61\n\x11map_string_string\x18\x45 \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry\x12_\n\x10map_string_bytes\x18\x46 \x03(\x0b\x32\x45.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry\x12p\n\x19map_string_nested_message\x18G \x03(\x0b\x32M.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry\x12r\n\x1amap_string_foreign_message\x18H \x03(\x0b\x32N.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry\x12j\n\x16map_string_nested_enum\x18I \x03(\x0b\x32J.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry\x12l\n\x17map_string_foreign_enum\x18J \x03(\x0b\x32K.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry\x12\x16\n\x0coneof_uint32\x18o \x01(\rH\x00\x12_\n\x14oneof_nested_message\x18p \x01(\x0b\x32?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessageH\x00\x12\x16\n\x0coneof_string\x18q \x01(\tH\x00\x12\x15\n\x0boneof_bytes\x18r \x01(\x0cH\x00\x12\x14\n\noneof_bool\x18s \x01(\x08H\x00\x12\x16\n\x0coneof_uint64\x18t \x01(\x04H\x00\x12\x15\n\x0boneof_float\x18u \x01(\x02H\x00\x12\x16\n\x0coneof_double\x18v \x01(\x01H\x00\x12R\n\noneof_enum\x18w \x01(\x0e\x32<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumH\x00\x12:\n\x15optional_bool_wrapper\x18\xc9\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x16optional_int32_wrapper\x18\xca\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12<\n\x16optional_int64_wrapper\x18\xcb\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12>\n\x17optional_uint32_wrapper\x18\xcc\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12>\n\x17optional_uint64_wrapper\x18\xcd\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12<\n\x16optional_float_wrapper\x18\xce\x01 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12>\n\x17optional_double_wrapper\x18\xcf\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12>\n\x17optional_string_wrapper\x18\xd0\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12<\n\x16optional_bytes_wrapper\x18\xd1\x01 \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x12:\n\x15repeated_bool_wrapper\x18\xd3\x01 \x03(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x16repeated_int32_wrapper\x18\xd4\x01 \x03(\x0b\x32\x1b.google.protobuf.Int32Value\x12<\n\x16repeated_int64_wrapper\x18\xd5\x01 \x03(\x0b\x32\x1b.google.protobuf.Int64Value\x12>\n\x17repeated_uint32_wrapper\x18\xd6\x01 \x03(\x0b\x32\x1c.google.protobuf.UInt32Value\x12>\n\x17repeated_uint64_wrapper\x18\xd7\x01 \x03(\x0b\x32\x1c.google.protobuf.UInt64Value\x12<\n\x16repeated_float_wrapper\x18\xd8\x01 \x03(\x0b\x32\x1b.google.protobuf.FloatValue\x12>\n\x17repeated_double_wrapper\x18\xd9\x01 \x03(\x0b\x32\x1c.google.protobuf.DoubleValue\x12>\n\x17repeated_string_wrapper\x18\xda\x01 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12<\n\x16repeated_bytes_wrapper\x18\xdb\x01 \x03(\x0b\x32\x1b.google.protobuf.BytesValue\x12\x35\n\x11optional_duration\x18\xad\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x12optional_timestamp\x18\xae\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x13optional_field_mask\x18\xaf\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x31\n\x0foptional_struct\x18\xb0\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12+\n\x0coptional_any\x18\xb1\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12/\n\x0eoptional_value\x18\xb2\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x35\n\x11repeated_duration\x18\xb7\x02 \x03(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x12repeated_timestamp\x18\xb8\x02 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x12repeated_fieldmask\x18\xb9\x02 \x03(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x31\n\x0frepeated_struct\x18\xc4\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\x12+\n\x0crepeated_any\x18\xbb\x02 \x03(\x0b\x32\x14.google.protobuf.Any\x12/\n\x0erepeated_value\x18\xbc\x02 \x03(\x0b\x32\x16.google.protobuf.Value\x12\x13\n\nfieldname1\x18\x91\x03 \x01(\x05\x12\x14\n\x0b\x66ield_name2\x18\x92\x03 \x01(\x05\x12\x15\n\x0c_field_name3\x18\x93\x03 \x01(\x05\x12\x16\n\rfield__name4_\x18\x94\x03 \x01(\x05\x12\x14\n\x0b\x66ield0name5\x18\x95\x03 \x01(\x05\x12\x16\n\rfield_0_name6\x18\x96\x03 \x01(\x05\x12\x13\n\nfieldName7\x18\x97\x03 \x01(\x05\x12\x13\n\nFieldName8\x18\x98\x03 \x01(\x05\x12\x14\n\x0b\x66ield_Name9\x18\x99\x03 \x01(\x05\x12\x15\n\x0c\x46ield_Name10\x18\x9a\x03 \x01(\x05\x12\x15\n\x0c\x46IELD_NAME11\x18\x9b\x03 \x01(\x05\x12\x15\n\x0c\x46IELD_name12\x18\x9c\x03 \x01(\x05\x12\x17\n\x0e__field_name13\x18\x9d\x03 \x01(\x05\x12\x17\n\x0e__Field_name14\x18\x9e\x03 \x01(\x05\x12\x16\n\rfield__name15\x18\x9f\x03 \x01(\x05\x12\x16\n\rfield__Name16\x18\xa0\x03 \x01(\x05\x12\x17\n\x0e\x66ield_name17__\x18\xa1\x03 \x01(\x05\x12\x17\n\x0e\x46ield_name18__\x18\xa2\x03 \x01(\x05\x1a\x62\n\rNestedMessage\x12\t\n\x01\x61\x18\x01 \x01(\x05\x12\x46\n\x0b\x63orecursive\x18\x02 \x01(\x0b\x32\x31.protobuf_test_messages.proto3.TestAllTypesProto3\x1a\x34\n\x12MapInt32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x36\n\x14MapSint32Sint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x11\x12\r\n\x05value\x18\x02 \x01(\x11:\x02\x38\x01\x1a\x36\n\x14MapSint64Sint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x12\x12\r\n\x05value\x18\x02 \x01(\x12:\x02\x38\x01\x1a\x38\n\x16MapFixed32Fixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x07\x12\r\n\x05value\x18\x02 \x01(\x07:\x02\x38\x01\x1a\x38\n\x16MapFixed64Fixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x06\x12\r\n\x05value\x18\x02 \x01(\x06:\x02\x38\x01\x1a:\n\x18MapSfixed32Sfixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x0f\x12\r\n\x05value\x18\x02 \x01(\x0f:\x02\x38\x01\x1a:\n\x18MapSfixed64Sfixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x10\x12\r\n\x05value\x18\x02 \x01(\x10:\x02\x38\x01\x1a\x34\n\x12MapInt32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1a\x32\n\x10MapBoolBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapStringStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapStringBytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a~\n\x1bMapStringNestedMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12N\n\x05value\x18\x02 \x01(\x0b\x32?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage:\x02\x38\x01\x1am\n\x1cMapStringForeignMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12<\n\x05value\x18\x02 \x01(\x0b\x32-.protobuf_test_messages.proto3.ForeignMessage:\x02\x38\x01\x1ax\n\x18MapStringNestedEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12K\n\x05value\x18\x02 \x01(\x0e\x32<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum:\x02\x38\x01\x1ag\n\x19MapStringForeignEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0e\x32*.protobuf_test_messages.proto3.ForeignEnum:\x02\x38\x01\"9\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x00\x12\x07\n\x03\x42\x41R\x10\x01\x12\x07\n\x03\x42\x41Z\x10\x02\x12\x10\n\x03NEG\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x42\r\n\x0boneof_fieldJ\x06\x08\xf5\x03\x10\xff\x03\"\x1b\n\x0e\x46oreignMessage\x12\t\n\x01\x63\x18\x01 \x01(\x05*@\n\x0b\x46oreignEnum\x12\x0f\n\x0b\x46OREIGN_FOO\x10\x00\x12\x0f\n\x0b\x46OREIGN_BAR\x10\x01\x12\x0f\n\x0b\x46OREIGN_BAZ\x10\x02\x42\x38\n(com.google.protobuf_test_messages.proto3H\x01\xf8\x01\x01\xa2\x02\x06Proto3b\x06proto3')
chromium-84.0.4147.105/tools/swarming_client/third_party/google/protobuf/test_messages_proto3_pb2.py-30-  ,
##############################################
chromium-84.0.4147.105/tools/swarming_client/third_party/google/protobuf/test_messages_proto2_pb2.py-22-  syntax='proto2',
chromium-84.0.4147.105/tools/swarming_client/third_party/google/protobuf/test_messages_proto2_pb2.py:23:  serialized_pb=_b('\n*google/protobuf/test_messages_proto2.proto\x12\x1dprotobuf_test_messages.proto2\"\xde\x32\n\x12TestAllTypesProto2\x12\x16\n\x0eoptional_int32\x18\x01 \x01(\x05\x12\x16\n\x0eoptional_int64\x18\x02 \x01(\x03\x12\x17\n\x0foptional_uint32\x18\x03 \x01(\r\x12\x17\n\x0foptional_uint64\x18\x04 \x01(\x04\x12\x17\n\x0foptional_sint32\x18\x05 \x01(\x11\x12\x17\n\x0foptional_sint64\x18\x06 \x01(\x12\x12\x18\n\x10optional_fixed32\x18\x07 \x01(\x07\x12\x18\n\x10optional_fixed64\x18\x08 \x01(\x06\x12\x19\n\x11optional_sfixed32\x18\t \x01(\x0f\x12\x19\n\x11optional_sfixed64\x18\n \x01(\x10\x12\x16\n\x0eoptional_float\x18\x0b \x01(\x02\x12\x17\n\x0foptional_double\x18\x0c \x01(\x01\x12\x15\n\roptional_bool\x18\r \x01(\x08\x12\x17\n\x0foptional_string\x18\x0e \x01(\t\x12\x16\n\x0eoptional_bytes\x18\x0f \x01(\x0c\x12`\n\x17optional_nested_message\x18\x12 \x01(\x0b\x32?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage\x12U\n\x18optional_foreign_message\x18\x13 \x01(\x0b\x32\x33.protobuf_test_messages.proto2.ForeignMessageProto2\x12Z\n\x14optional_nested_enum\x18\x15 \x01(\x0e\x32<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum\x12O\n\x15optional_foreign_enum\x18\x16 \x01(\x0e\x32\x30.protobuf_test_messages.proto2.ForeignEnumProto2\x12!\n\x15optional_string_piece\x18\x18 \x01(\tB\x02\x08\x02\x12\x19\n\roptional_cord\x18\x19 \x01(\tB\x02\x08\x01\x12L\n\x11recursive_message\x18\x1b \x01(\x0b\x32\x31.protobuf_test_messages.proto2.TestAllTypesProto2\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18  \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12`\n\x17repeated_nested_message\x18\x30 \x03(\x0b\x32?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage\x12U\n\x18repeated_foreign_message\x18\x31 \x03(\x0b\x32\x33.protobuf_test_messages.proto2.ForeignMessageProto2\x12Z\n\x14repeated_nested_enum\x18\x33 \x03(\x0e\x32<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum\x12O\n\x15repeated_foreign_enum\x18\x34 \x03(\x0e\x32\x30.protobuf_test_messages.proto2.ForeignEnumProto2\x12!\n\x15repeated_string_piece\x18\x36 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x37 \x03(\tB\x02\x08\x01\x12]\n\x0fmap_int32_int32\x18\x38 \x03(\x0b\x32\x44.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry\x12]\n\x0fmap_int64_int64\x18\x39 \x03(\x0b\x32\x44.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry\x12\x61\n\x11map_uint32_uint32\x18: \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry\x12\x61\n\x11map_uint64_uint64\x18; \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry\x12\x61\n\x11map_sint32_sint32\x18< \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry\x12\x61\n\x11map_sint64_sint64\x18= \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry\x12\x65\n\x13map_fixed32_fixed32\x18> \x03(\x0b\x32H.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry\x12\x65\n\x13map_fixed64_fixed64\x18? \x03(\x0b\x32H.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry\x12i\n\x15map_sfixed32_sfixed32\x18@ \x03(\x0b\x32J.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry\x12i\n\x15map_sfixed64_sfixed64\x18\x41 \x03(\x0b\x32J.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry\x12]\n\x0fmap_int32_float\x18\x42 \x03(\x0b\x32\x44.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry\x12_\n\x10map_int32_double\x18\x43 \x03(\x0b\x32\x45.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry\x12Y\n\rmap_bool_bool\x18\x44 \x03(\x0b\x32\x42.protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry\x12\x61\n\x11map_string_string\x18\x45 \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry\x12_\n\x10map_string_bytes\x18\x46 \x03(\x0b\x32\x45.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry\x12p\n\x19map_string_nested_message\x18G \x03(\x0b\x32M.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry\x12r\n\x1amap_string_foreign_message\x18H \x03(\x0b\x32N.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry\x12j\n\x16map_string_nested_enum\x18I \x03(\x0b\x32J.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry\x12l\n\x17map_string_foreign_enum\x18J \x03(\x0b\x32K.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry\x12\x16\n\x0coneof_uint32\x18o \x01(\rH\x00\x12_\n\x14oneof_nested_message\x18p \x01(\x0b\x32?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessageH\x00\x12\x16\n\x0coneof_string\x18q \x01(\tH\x00\x12\x15\n\x0boneof_bytes\x18r \x01(\x0cH\x00\x12\x14\n\noneof_bool\x18s \x01(\x08H\x00\x12\x16\n\x0coneof_uint64\x18t \x01(\x04H\x00\x12\x15\n\x0boneof_float\x18u \x01(\x02H\x00\x12\x16\n\x0coneof_double\x18v \x01(\x01H\x00\x12R\n\noneof_enum\x18w \x01(\x0e\x32<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumH\x00\x12\x45\n\x04\x64\x61ta\x18\xc9\x01 \x01(\n26.protobuf_test_messages.proto2.TestAllTypesProto2.Data\x12\x13\n\nfieldname1\x18\x91\x03 \x01(\x05\x12\x14\n\x0b\x66ield_name2\x18\x92\x03 \x01(\x05\x12\x15\n\x0c_field_name3\x18\x93\x03 \x01(\x05\x12\x16\n\rfield__name4_\x18\x94\x03 \x01(\x05\x12\x14\n\x0b\x66ield0name5\x18\x95\x03 \x01(\x05\x12\x16\n\rfield_0_name6\x18\x96\x03 \x01(\x05\x12\x13\n\nfieldName7\x18\x97\x03 \x01(\x05\x12\x13\n\nFieldName8\x18\x98\x03 \x01(\x05\x12\x14\n\x0b\x66ield_Name9\x18\x99\x03 \x01(\x05\x12\x15\n\x0c\x46ield_Name10\x18\x9a\x03 \x01(\x05\x12\x15\n\x0c\x46IELD_NAME11\x18\x9b\x03 \x01(\x05\x12\x15\n\x0c\x46IELD_name12\x18\x9c\x03 \x01(\x05\x12\x17\n\x0e__field_name13\x18\x9d\x03 \x01(\x05\x12\x17\n\x0e__Field_name14\x18\x9e\x03 \x01(\x05\x12\x16\n\rfield__name15\x18\x9f\x03 \x01(\x05\x12\x16\n\rfield__Name16\x18\xa0\x03 \x01(\x05\x12\x17\n\x0e\x66ield_name17__\x18\xa1\x03 \x01(\x05\x12\x17\n\x0e\x46ield_name18__\x18\xa2\x03 \x01(\x05\x1a\x62\n\rNestedMessage\x12\t\n\x01\x61\x18\x01 \x01(\x05\x12\x46\n\x0b\x63orecursive\x18\x02 \x01(\x0b\x32\x31.protobuf_test_messages.proto2.TestAllTypesProto2\x1a\x34\n\x12MapInt32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x36\n\x14MapSint32Sint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x11\x12\r\n\x05value\x18\x02 \x01(\x11:\x02\x38\x01\x1a\x36\n\x14MapSint64Sint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x12\x12\r\n\x05value\x18\x02 \x01(\x12:\x02\x38\x01\x1a\x38\n\x16MapFixed32Fixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x07\x12\r\n\x05value\x18\x02 \x01(\x07:\x02\x38\x01\x1a\x38\n\x16MapFixed64Fixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x06\x12\r\n\x05value\x18\x02 \x01(\x06:\x02\x38\x01\x1a:\n\x18MapSfixed32Sfixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x0f\x12\r\n\x05value\x18\x02 \x01(\x0f:\x02\x38\x01\x1a:\n\x18MapSfixed64Sfixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x10\x12\r\n\x05value\x18\x02 \x01(\x10:\x02\x38\x01\x1a\x34\n\x12MapInt32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1a\x32\n\x10MapBoolBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapStringStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapStringBytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a~\n\x1bMapStringNestedMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12N\n\x05value\x18\x02 \x01(\x0b\x32?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage:\x02\x38\x01\x1as\n\x1cMapStringForeignMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.protobuf_test_messages.proto2.ForeignMessageProto2:\x02\x38\x01\x1ax\n\x18MapStringNestedEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12K\n\x05value\x18\x02 \x01(\x0e\x32<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum:\x02\x38\x01\x1am\n\x19MapStringForeignEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12?\n\x05value\x18\x02 \x01(\x0e\x32\x30.protobuf_test_messages.proto2.ForeignEnumProto2:\x02\x38\x01\x1a\x33\n\x04\x44\x61ta\x12\x14\n\x0bgroup_int32\x18\xca\x01 \x01(\x05\x12\x15\n\x0cgroup_uint32\x18\xcb\x01 \x01(\r\x1a!\n\x11MessageSetCorrect*\x08\x08\x04\x10\xff\xff\xff\xff\x07:\x02\x08\x01\x1a\xe0\x01\n\x1bMessageSetCorrectExtension1\x12\x0b\n\x03str\x18\x19 \x01(\t2\xb3\x01\n\x15message_set_extension\x12\x43.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect\x18\xf9\xbb^ \x01(\x0b\x32M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1\x1a\xdf\x01\n\x1bMessageSetCorrectExtension2\x12\t\n\x01i\x18\t \x01(\x05\x32\xb4\x01\n\x15message_set_extension\x12\x43.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect\x18\x90\xb3\xfc\x01 \x01(\x0b\x32M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2\"9\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x00\x12\x07\n\x03\x42\x41R\x10\x01\x12\x07\n\x03\x42\x41Z\x10\x02\x12\x10\n\x03NEG\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01*\x05\x08x\x10\xc9\x01\x42\r\n\x0boneof_field\"!\n\x14\x46oreignMessageProto2\x12\t\n\x01\x63\x18\x01 \x01(\x05*F\n\x11\x46oreignEnumProto2\x12\x0f\n\x0b\x46OREIGN_FOO\x10\x00\x12\x0f\n\x0b\x46OREIGN_BAR\x10\x01\x12\x0f\n\x0b\x46OREIGN_BAZ\x10\x02:J\n\x0f\x65xtension_int32\x12\x31.protobuf_test_messages.proto2.TestAllTypesProto2\x18x \x01(\x05\x42/\n(com.google.protobuf_test_messages.proto2H\x01\xf8\x01\x01')
chromium-84.0.4147.105/tools/swarming_client/third_party/google/protobuf/test_messages_proto2_pb2.py-24-)
##############################################
chromium-84.0.4147.105/tools/gn/src/gn/test_with_scope.cc-131-
chromium-84.0.4147.105/tools/gn/src/gn/test_with_scope.cc:132:  // Don't use RC and ASM tools in unit tests yet. Add here if needed.
chromium-84.0.4147.105/tools/gn/src/gn/test_with_scope.cc-133-
##############################################
chromium-84.0.4147.105/tools/gn/src/gn/c_tool.cc-13-const char* CTool::kCToolRc = "rc";
chromium-84.0.4147.105/tools/gn/src/gn/c_tool.cc:14:const char* CTool::kCToolAsm = "asm";
chromium-84.0.4147.105/tools/gn/src/gn/c_tool.cc-15-const char* CTool::kCToolAlink = "alink";
##############################################
chromium-84.0.4147.105/tools/gn/src/gn/c_tool.cc-40-  return name == kCToolCc || name == kCToolCxx || name == kCToolObjC ||
chromium-84.0.4147.105/tools/gn/src/gn/c_tool.cc:41:         name == kCToolObjCxx || name == kCToolRc || name == kCToolAsm ||
chromium-84.0.4147.105/tools/gn/src/gn/c_tool.cc-42-         name == kCToolAlink || name == kCToolSolink ||
##############################################
chromium-84.0.4147.105/tools/gn/src/gn/variables.cc-728-
chromium-84.0.4147.105/tools/gn/src/gn/variables.cc:729:  "asmflags" are passed to any invocation of a tool that takes an .asm or .S
chromium-84.0.4147.105/tools/gn/src/gn/variables.cc-730-  file as input.
##############################################
chromium-84.0.4147.105/tools/gn/src/gn/parser.cc-61-      string           = `"` { char | escape | expansion } `"` .
chromium-84.0.4147.105/tools/gn/src/gn/parser.cc:62:      escape           = `\` ( "$" | `"` | char ) .
chromium-84.0.4147.105/tools/gn/src/gn/parser.cc-63-      BracketExpansion = "{" ( identifier | ArrayAccess | ScopeAccess "
##############################################
chromium-84.0.4147.105/tools/gn/src/gn/trace.cc-102-                        std::ostream& out) {
chromium-84.0.4147.105/tools/gn/src/gn/trace.cc:103:  out << "File execute times: (total time in ms, # executions, name)\n";
chromium-84.0.4147.105/tools/gn/src/gn/trace.cc-104-  SummarizeCoalesced(execs, out);
##############################################
chromium-84.0.4147.105/tools/gn/src/gn/trace.cc-108-                          std::ostream& out) {
chromium-84.0.4147.105/tools/gn/src/gn/trace.cc:109:  out << "Script execute times: (total time in ms, # executions, name)\n";
chromium-84.0.4147.105/tools/gn/src/gn/trace.cc-110-  SummarizeCoalesced(execs, out);
##############################################
chromium-84.0.4147.105/tools/gn/src/base/win/scoped_handle.h-19-#define BASE_WIN_GET_CALLER \
chromium-84.0.4147.105/tools/gn/src/base/win/scoped_handle.h:20:  __builtin_extract_return_addr(\ __builtin_return_address(0))
chromium-84.0.4147.105/tools/gn/src/base/win/scoped_handle.h-21-#endif
##############################################
chromium-84.0.4147.105/tools/gn/src/base/logging.h-288-//   On Linux/Android this is tricky because GCC still folds identical
chromium-84.0.4147.105/tools/gn/src/base/logging.h:289://   asm volatile blocks. The workaround is generating distinct opcodes for
chromium-84.0.4147.105/tools/gn/src/base/logging.h-290-//   each CHECK using the __COUNTER__ macro.
##############################################
chromium-84.0.4147.105/tools/gn/src/base/logging.h-308-#define TRAP_SEQUENCE() \
chromium-84.0.4147.105/tools/gn/src/base/logging.h:309:  asm volatile(         \
chromium-84.0.4147.105/tools/gn/src/base/logging.h-310-      "int3; ud2; push %0;" ::"i"(static_cast<unsigned char>(__COUNTER__)))
##############################################
chromium-84.0.4147.105/tools/gn/src/base/logging.h-317-#define TRAP_SEQUENCE() \
chromium-84.0.4147.105/tools/gn/src/base/logging.h:318:  asm volatile("bkpt #0; udf %0;" ::"i"(__COUNTER__ % 256))
chromium-84.0.4147.105/tools/gn/src/base/logging.h-319-
##############################################
chromium-84.0.4147.105/tools/gn/src/base/logging.h-322-#define TRAP_SEQUENCE() \
chromium-84.0.4147.105/tools/gn/src/base/logging.h:323:  asm volatile("brk #0; hlt %0;" ::"i"(__COUNTER__ % 65536))
chromium-84.0.4147.105/tools/gn/src/base/logging.h-324-
##############################################
chromium-84.0.4147.105/tools/gn/src/base/logging.h-332-// This could make compilation fail on GCC, as it forbids directly using inline
chromium-84.0.4147.105/tools/gn/src/base/logging.h:333:// asm inside a constexpr function. However, it allows calling a lambda
chromium-84.0.4147.105/tools/gn/src/base/logging.h-334-// expression including the same asm.
##############################################
chromium-84.0.4147.105/tools/gn/src/base/logging.h-370-  ({                                                \
chromium-84.0.4147.105/tools/gn/src/base/logging.h:371:    {__asm int 3 __asm ud2 __asm push __COUNTER__}; \
chromium-84.0.4147.105/tools/gn/src/base/logging.h-372-    __builtin_unreachable();                        \
##############################################
chromium-84.0.4147.105/tools/gn/docs/language.md-93-You can encode 8-bit characters using "$0xFF" syntax, so a string with newlines
chromium-84.0.4147.105/tools/gn/docs/language.md:94:(hex 0A) would `"look$0x0Alike$0x0Athis"`.
chromium-84.0.4147.105/tools/gn/docs/language.md-95-
##############################################
chromium-84.0.4147.105/tools/gn/docs/reference.md-4588-
chromium-84.0.4147.105/tools/gn/docs/reference.md:4589:  "asmflags" are passed to any invocation of a tool that takes an .asm or .S
chromium-84.0.4147.105/tools/gn/docs/reference.md-4590-  file as input.
##############################################
chromium-84.0.4147.105/tools/gn/docs/reference.md-6756-      string           = `"` { char | escape | expansion } `"` .
chromium-84.0.4147.105/tools/gn/docs/reference.md:6757:      escape           = `\` ( "$" | `"` | char ) .
chromium-84.0.4147.105/tools/gn/docs/reference.md-6758-      BracketExpansion = "{" ( identifier | ArrayAccess | ScopeAccess "
##############################################
chromium-84.0.4147.105/tools/resources/generate_resource_whitelist.py-65-    # Read a line of the form
chromium-84.0.4147.105/tools/resources/generate_resource_whitelist.py:66:    # "733352 | S_PUB32 [size = 56] `??$WhitelistedResource@$0BFGM@@ui@@YAXXZ`".
chromium-84.0.4147.105/tools/resources/generate_resource_whitelist.py-67-    if '`' not in line:
##############################################
chromium-84.0.4147.105/tools/perf/core/sharding_map_generator.py-24-  # Sort the list of benchmarks to be sharded by benchmark's name to make the
chromium-84.0.4147.105/tools/perf/core/sharding_map_generator.py:25:  # execution of this algorithm deterministic.
chromium-84.0.4147.105/tools/perf/core/sharding_map_generator.py-26-  benchmarks_to_shard.sort(key=lambda entry: entry.name)
##############################################
chromium-84.0.4147.105/tools/ubsan/security_blacklist.txt-6-#############################################################################
chromium-84.0.4147.105/tools/ubsan/security_blacklist.txt:7:# YASM does some funny things that UBsan doesn't like.
chromium-84.0.4147.105/tools/ubsan/security_blacklist.txt-8-# https://crbug.com/489901
##############################################
chromium-84.0.4147.105/tools/ubsan/blacklist.txt-4-#############################################################################
chromium-84.0.4147.105/tools/ubsan/blacklist.txt:5:# YASM does some funny things that UBsan doesn't like.
chromium-84.0.4147.105/tools/ubsan/blacklist.txt-6-# https://crbug.com/489901
##############################################
chromium-84.0.4147.105/tools/python/llvm_symbolizer.py-22-
chromium-84.0.4147.105/tools/python/llvm_symbolizer.py:23:def _CheckValidAddr(addr):
chromium-84.0.4147.105/tools/python/llvm_symbolizer.py-24-  """
##############################################
chromium-84.0.4147.105/tools/python/llvm_symbolizer.py-91-    if (self._llvm_symbolizer_subprocess is None or not lib
chromium-84.0.4147.105/tools/python/llvm_symbolizer.py:92:        or not _CheckValidAddr(addr) or not os.path.isfile(lib)):
chromium-84.0.4147.105/tools/python/llvm_symbolizer.py-93-      return [(_UNKNOWN, lib)]
##############################################
chromium-84.0.4147.105/tools/mb/docs/user_guide.md-222-to a file called `runtime_deps` in the build directory, and pass that to
chromium-84.0.4147.105/tools/mb/docs/user_guide.md:223:`gn gen $BUILD ... --runtime-deps-list-file=$BUILD/runtime_deps`.
chromium-84.0.4147.105/tools/mb/docs/user_guide.md-224-
##############################################
chromium-84.0.4147.105/tools/cygprofile_win/cygprofile.cc-61-
chromium-84.0.4147.105/tools/cygprofile_win/cygprofile.cc:62:    if (sym_from_addr(::GetCurrentProcess(), reinterpret_cast<DWORD64>(sample),
chromium-84.0.4147.105/tools/cygprofile_win/cygprofile.cc-63-                      &offset, symbol)) {
##############################################
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-120-      # Check that main does not call foo.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:121:      disasm = subprocess.check_output(['llvm-objdump', '-d', 'main.exe'])
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-122-      # There are no symbols in the disassembly, but we're expecting two
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-123-      # functions, one of which calls the other.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:124:      self.assertTrue(b'call' in disasm or b'jmp' in disasm)
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-125-
##############################################
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-172-      # Check that main does not call foo.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:173:      disasm = subprocess.check_output(['llvm-objdump', '-d', 'main.exe'])
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-174-      # There are no symbols in the disassembly, but we're expecting a single
##############################################
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-199-      # Check that main calls foo.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:200:      disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-201-      main_idx = disasm.index(b' <main>:\n')
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-202-      after_main_idx = disasm.index(b'\n\n', main_idx)
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:203:      main_disasm = disasm[main_idx:after_main_idx]
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-204-      self.assertIn(b'foo', main_disasm)
##############################################
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-223-      # Check that main does not call foo.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:224:      disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-225-      main_idx = disasm.index(b' <main>:\n')
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-226-      after_main_idx = disasm.index(b'\n\n', main_idx)
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:227:      main_disasm = disasm[main_idx:after_main_idx]
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-228-      self.assertNotIn(b'foo', main_disasm)
##############################################
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-251-      # Check that main does not call foo.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:252:      disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-253-      main_idx = disasm.index(b' <main>:\n')
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-254-      after_main_idx = disasm.index(b'\n\n', main_idx)
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:255:      main_disasm = disasm[main_idx:after_main_idx]
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-256-      self.assertNotIn(b'foo', main_disasm)
##############################################
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-283-      # Check that main does not call foo.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:284:      disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-285-      main_idx = disasm.index(b' <main>:\n')
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-286-      after_main_idx = disasm.index(b'\n\n', main_idx)
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:287:      main_disasm = disasm[main_idx:after_main_idx]
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-288-      self.assertNotIn(b'foo', main_disasm)
##############################################
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-321-      # Check that main does not call foo.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:322:      disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-323-      main_idx = disasm.index(b' <main>:\n')
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-324-      after_main_idx = disasm.index(b'\n\n', main_idx)
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:325:      main_disasm = disasm[main_idx:after_main_idx]
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-326-      self.assertNotIn(b'foo', main_disasm)
##############################################
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-406-      # Check that main does not call foo.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:407:      disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-408-      main_idx = disasm.index(b' <main>:\n')
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-409-      after_main_idx = disasm.index(b'\n\n', main_idx)
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:410:      main_disasm = disasm[main_idx:after_main_idx]
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-411-      self.assertNotIn(b'foo', main_disasm)
##############################################
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-434-      # Check that main does not call foo.
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:435:      disasm = subprocess.check_output(['llvm-objdump', '-d', 'main'])
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-436-      main_idx = disasm.index(b' <main>:\n')
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-437-      after_main_idx = disasm.index(b'\n\n', main_idx)
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py:438:      main_disasm = disasm[main_idx:after_main_idx]
chromium-84.0.4147.105/tools/clang/scripts/goma_link_integration_tests.py-439-      self.assertNotIn(b'foo', main_disasm)
##############################################
chromium-84.0.4147.105/chromeos/components/help_app_ui/resources/browser_proxy.js-28-        const guest = /** @type{HTMLIFrameElement} */ (
chromium-84.0.4147.105/chromeos/components/help_app_ui/resources/browser_proxy.js:29:            document.querySelector(`iframe[src^="${GUEST_ORIGIN}"]`));
chromium-84.0.4147.105/chromeos/components/help_app_ui/resources/browser_proxy.js-30-        guest.contentWindow.postMessage(response, GUEST_ORIGIN);
##############################################
chromium-84.0.4147.105/chromeos/components/help_app_ui/test/driver.js-65-    const frame = assertInstanceof(
chromium-84.0.4147.105/chromeos/components/help_app_ui/test/driver.js:66:        document.querySelector(`iframe[src^="${this.origin}"]`),
chromium-84.0.4147.105/chromeos/components/help_app_ui/test/driver.js-67-        HTMLIFrameElement);
##############################################
chromium-84.0.4147.105/chromeos/components/help_app_ui/test/guest_query_receiver.js-34-  if (!testCase) {
chromium-84.0.4147.105/chromeos/components/help_app_ui/test/guest_query_receiver.js:35:    console.error(`Unknown test case: ${testCaseName}`);
chromium-84.0.4147.105/chromeos/components/help_app_ui/test/guest_query_receiver.js-36-    return;
##############################################
chromium-84.0.4147.105/chromeos/components/help_app_ui/test/guest_query_receiver.js-40-  } catch (/** @type{Error} */ e) {
chromium-84.0.4147.105/chromeos/components/help_app_ui/test/guest_query_receiver.js:41:    console.error(`Failed: ${e.message}`);
chromium-84.0.4147.105/chromeos/components/help_app_ui/test/guest_query_receiver.js-42-  }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js-150-    }
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js:151:    console.log(`Aborting SAVE_COPY: ${err.message}`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js-152-    return err.name;
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js-209-    console.error(fd.handle.name, e.message);
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js:210:    throw new Error(`${e.message} (${e.name})`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js-211-  }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js-258-  if (!currentlyWritableFile || editFileToken !== fileToken) {
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js:259:    throw new Error(`${operation} failed. File not current.`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js-260-  }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js-262-  if (!currentDirectoryHandle) {
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js:263:    throw new Error(`${operation} failed. File without launch directory.`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/launch.js-264-  }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-156-  if (isGeneratedMessage(messageType)) {
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js:157:    throw new Error(`Unexpected reserved message type: '${messageType}'`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-158-  }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-178-      const frame = /** @type {!HTMLIFrameElement} */ (
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js:179:          document.querySelector(`iframe[src^='${targetOrigin}']`));
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-180-      if (!frame || !frame.contentWindow) {
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-261-    if (this.messageHandlers_.has(messageType)) {
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js:262:      throw new Error(`A handler already exists for ${messageType}`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-263-    }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-282-      // stacktrace of the current context.
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js:283:      const error = new Error(`${messageType}: ${errorResponse.message}`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-284-      error.name = errorResponse.name || 'Unknown Error';
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-285-      error.stack +=
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js:286:          `\nError from ${this.targetOrigin_}\n${errorResponse.stack}`;
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-287-      // TODO(b/156205603): use internal `chrome.crashReportPrivate.reportError`
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-417-      const error =
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js:418:          new Error(`No handler registered for message type '${type}'`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/resources/js/message_pipe.js-419-      const errorResponse = serializeError(error);
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/driver.js-186-                        Promise.reject((createNamedError(
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/driver.js:187:                            'NotFoundError', `File ${name} not found`)));
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/driver.js-188-  }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/driver.js-294-function assertMatchErrorStack(stackTrace, regexLines, opt_message) {
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/driver.js:295:  const regex = `(.|\\n)*${regexLines.join('(.|\\n)*')}(.|\\n)*`;
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/driver.js-296-  assertMatch(stackTrace, regex, opt_message);
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js-121-
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js:122:  assertEquals(`${TEST_IMAGE_WIDTH}`, result);
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js-123-  testDone();
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js-439-        expectedFiles.length, currentFiles.length,
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js:440:        `Unexpected currentFiles length for ${testCase}`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js-441-    for (const f of expectedFiles) {
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js-443-          !!currentFiles.find(descriptor => descriptor.file.name === f.name),
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js:444:          `${f.name} missing for ${testCase}`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/media_app_ui_browsertest.js-445-    }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/guest_query_receiver.js-62-    } catch (/** @type{Error} */ error) {
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/guest_query_receiver.js:63:      result = `deleteOriginalFile failed Error: ${error}`;
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/guest_query_receiver.js-64-    }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/guest_query_receiver.js-75-    } catch (/** @type{Error} */ error) {
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/guest_query_receiver.js:76:      result = `renameOriginalFile failed Error: ${error}`;
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/guest_query_receiver.js-77-    }
##############################################
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/guest_query_receiver.js-97-  if (!testCase) {
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/guest_query_receiver.js:98:    throw new Error(`Unknown test case: '${data.testCase}'`);
chromium-84.0.4147.105/chromeos/components/media_app_ui/test/guest_query_receiver.js-99-  }
##############################################
chromium-84.0.4147.105/net/tools/dump_cache/dump_files.cc-552-      addr = rankings.contents;
chromium-84.0.4147.105/net/tools/dump_cache/dump_files.cc:553:      address = disk_cache::Addr(addr);
chromium-84.0.4147.105/net/tools/dump_cache/dump_files.cc-554-    }
##############################################
chromium-84.0.4147.105/net/dns/address_info.cc-156-    // NOTE: Ignoring non-INET* families.
chromium-84.0.4147.105/net/dns/address_info.cc:157:    if (ipe.FromSockAddr(ai.ai_addr, ai.ai_addrlen))
chromium-84.0.4147.105/net/dns/address_info.cc-158-      list.push_back(ipe);
##############################################
chromium-84.0.4147.105/net/dns/dns_config_service_win_unittest.cc-106-      socklen_t length = sizeof(struct sockaddr_storage);
chromium-84.0.4147.105/net/dns/dns_config_service_win_unittest.cc:107:      CHECK(ipe.ToSockAddr(address->Address.lpSockaddr, &length));
chromium-84.0.4147.105/net/dns/dns_config_service_win_unittest.cc-108-      address->Address.iSockaddrLength = static_cast<int>(length);
##############################################
chromium-84.0.4147.105/net/dns/dns_config_service_posix.cc-487-    IPEndPoint ipe;
chromium-84.0.4147.105/net/dns/dns_config_service_posix.cc:488:    if (!ipe.FromSockAddr(
chromium-84.0.4147.105/net/dns/dns_config_service_posix.cc-489-            reinterpret_cast<const struct sockaddr*>(&addresses[i]),
##############################################
chromium-84.0.4147.105/net/dns/dns_config_service_posix.cc-515-    }
chromium-84.0.4147.105/net/dns/dns_config_service_posix.cc:516:    if (!ipe.FromSockAddr(addr, addr_len))
chromium-84.0.4147.105/net/dns/dns_config_service_posix.cc-517-      return CONFIG_PARSE_POSIX_BAD_ADDRESS;
##############################################
chromium-84.0.4147.105/net/dns/dns_config_service_posix.cc-523-    IPEndPoint ipe;
chromium-84.0.4147.105/net/dns/dns_config_service_posix.cc:524:    if (!ipe.FromSockAddr(
chromium-84.0.4147.105/net/dns/dns_config_service_posix.cc-525-            reinterpret_cast<const struct sockaddr*>(&res.nsaddr_list[i]),
##############################################
chromium-84.0.4147.105/net/dns/dns_config_service_win.cc-274-      IPEndPoint ipe;
chromium-84.0.4147.105/net/dns/dns_config_service_win.cc:275:      if (!ipe.FromSockAddr(address->Address.lpSockaddr,
chromium-84.0.4147.105/net/dns/dns_config_service_win.cc-276-                            address->Address.iSockaddrLength)) {
##############################################
chromium-84.0.4147.105/net/dns/dns_config_service_win.cc-544-      IPEndPoint ipe;
chromium-84.0.4147.105/net/dns/dns_config_service_win.cc:545:      if (ipe.FromSockAddr(address->Address.lpSockaddr,
chromium-84.0.4147.105/net/dns/dns_config_service_win.cc-546-                           address->Address.iSockaddrLength)) {
##############################################
chromium-84.0.4147.105/net/dns/address_sorter_posix.cc-365-    IPEndPoint src;
chromium-84.0.4147.105/net/dns/address_sorter_posix.cc:366:    if (!src.FromSockAddr(ifa->ifa_addr, ifa->ifa_addr->sa_len))
chromium-84.0.4147.105/net/dns/address_sorter_posix.cc-367-      continue;
##############################################
chromium-84.0.4147.105/net/dns/address_sorter_posix.cc-384-      IPEndPoint netmask;
chromium-84.0.4147.105/net/dns/address_sorter_posix.cc:385:      if (netmask.FromSockAddr(ifa->ifa_netmask, ifa->ifa_addr->sa_len)) {
chromium-84.0.4147.105/net/dns/address_sorter_posix.cc-386-        info.prefix_length = MaskPrefixLength(netmask.address());
##############################################
chromium-84.0.4147.105/net/dns/address_sorter_win.cc-82-        socklen_t addr_len = sizeof(SOCKADDR_STORAGE);
chromium-84.0.4147.105/net/dns/address_sorter_win.cc:83:        bool result = ipe.ToSockAddr(addr, &addr_len);
chromium-84.0.4147.105/net/dns/address_sorter_win.cc-84-        DCHECK(result);
##############################################
chromium-84.0.4147.105/net/dns/address_sorter_win.cc-116-          bool result =
chromium-84.0.4147.105/net/dns/address_sorter_win.cc:117:              ipe.FromSockAddr(output_buffer_->Address[i].lpSockaddr,
chromium-84.0.4147.105/net/dns/address_sorter_win.cc-118-                               output_buffer_->Address[i].iSockaddrLength);
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/block_files_unittest.cc-264-  // Let's access block 10 of file 5. (There is no file).
chromium-84.0.4147.105/net/disk_cache/blockfile/block_files_unittest.cc:265:  Addr addr(BLOCK_256, 1, 5, 10);
chromium-84.0.4147.105/net/disk_cache/blockfile/block_files_unittest.cc-266-  EXPECT_TRUE(nullptr == files.GetFile(addr));
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc-38-  // First a few valid values.
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:39:  EXPECT_TRUE(Addr(0).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:40:  EXPECT_TRUE(Addr(0x80001000).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:41:  EXPECT_TRUE(Addr(0xC3FFFFFF).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:42:  EXPECT_TRUE(Addr(0xC0FFFFFF).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc-43-
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc-44-  // Not initialized.
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:45:  EXPECT_FALSE(Addr(0x20).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:46:  EXPECT_FALSE(Addr(0x10001000).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc-47-
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc-48-  // Invalid file type.
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:49:  EXPECT_FALSE(Addr(0xD0001000).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:50:  EXPECT_FALSE(Addr(0xF0000000).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc-51-
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc-52-  // Reserved bits.
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:53:  EXPECT_FALSE(Addr(0x14000000).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc:54:  EXPECT_FALSE(Addr(0x18000000).SanityCheck());
chromium-84.0.4147.105/net/disk_cache/blockfile/addr_unittest.cc-55-}
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/stats_unittest.cc-12-  disk_cache::Stats stats;
chromium-84.0.4147.105/net/disk_cache/blockfile/stats_unittest.cc:13:  EXPECT_TRUE(stats.Init(nullptr, 0, disk_cache::Addr()));
chromium-84.0.4147.105/net/disk_cache/blockfile/stats_unittest.cc-14-  EXPECT_EQ(0, stats.GetCounter(disk_cache::Stats::TRIM_ENTRY));
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/stats_unittest.cc-22-
chromium-84.0.4147.105/net/disk_cache/blockfile/stats_unittest.cc:23:  ASSERT_TRUE(stats.Init(storage.get(), required_len, disk_cache::Addr()));
chromium-84.0.4147.105/net/disk_cache/blockfile/stats_unittest.cc-24-  EXPECT_EQ(0, stats.GetCounter(disk_cache::Stats::TRIM_ENTRY));
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/stats_unittest.cc-45-
chromium-84.0.4147.105/net/disk_cache/blockfile/stats_unittest.cc:46:  disk_cache::Addr addr(5);
chromium-84.0.4147.105/net/disk_cache/blockfile/stats_unittest.cc-47-  ASSERT_TRUE(stats->Init(nullptr, 0, addr));
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-320-
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:321:  Addr next_addr(node->Data()->next);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:322:  Addr prev_addr(node->Data()->prev);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-323-  if (!next_addr.is_initialized() || next_addr.is_separate_file() ||
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-535-
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:536:  Addr next_addr(data->next);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:537:  Addr prev_addr(data->prev);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-538-  if (!next_addr.SanityCheck() || next_addr.file_type() != RANKINGS ||
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-563-  for (int i = 0; i < LAST_ELEMENT; i++)
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:564:    heads_[i] = Addr(control_data_->heads[i]);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-565-}
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-568-  for (int i = 0; i < LAST_ELEMENT; i++)
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:569:    tails_[i] = Addr(control_data_->tails[i]);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-570-}
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-627-  // we have, and let the iterator logic update it when the entry changes.
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:628:  CacheRankingsBlock temp(nullptr, Addr(0));
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-629-  *temp.Data() = *rankings->Data();
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-634-void Rankings::CompleteTransaction() {
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:635:  Addr node_addr(static_cast<CacheAddr>(control_data_->transaction));
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-636-  if (!node_addr.is_initialized() || node_addr.is_separate_file()) {
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-679-void Rankings::RevertRemove(CacheRankingsBlock* node) {
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:680:  Addr next_addr(node->Data()->next);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:681:  Addr prev_addr(node->Data()->prev);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-682-  if (!next_addr.is_initialized() || !prev_addr.is_initialized()) {
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-812-  std::unique_ptr<CacheRankingsBlock> node;
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:813:  Addr prev_addr(current);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-814-  do {
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-825-
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc:826:    Addr next_addr(next);
chromium-84.0.4147.105/net/disk_cache/blockfile/rankings.cc-827-    if (!next_addr.SanityCheckForRankings())
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.h-138-  // Returns the address of the entry linked to the entry at a given |address|.
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.h:139:  CacheAddr GetNextAddr(Addr address);
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.h-140-
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/addr.h-73- public:
chromium-84.0.4147.105/net/disk_cache/blockfile/addr.h:74:  Addr() : value_(0) {}
chromium-84.0.4147.105/net/disk_cache/blockfile/addr.h:75:  explicit Addr(CacheAddr address) : value_(address) {}
chromium-84.0.4147.105/net/disk_cache/blockfile/addr.h:76:  Addr(FileType file_type, int max_blocks, int block_file, int index) {
chromium-84.0.4147.105/net/disk_cache/blockfile/addr.h-77-    value_ = ((file_type << kFileTypeOffset) & kFileTypeMask) |
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-311-EntryImpl::EntryImpl(BackendImpl* backend, Addr address, bool read_only)
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc:312:    : entry_(nullptr, Addr(0)),
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc:313:      node_(nullptr, Addr(0)),
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-314-      backend_(backend->GetWeakPtr()),
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-606-
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc:607:  Addr rankings_addr(stored->rankings_node);
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-608-  if (!rankings_addr.SanityCheckForRankings())
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-610-
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc:611:  Addr next_addr(stored->next);
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-612-  if (next_addr.is_initialized() && !next_addr.SanityCheckForEntry()) {
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-620-
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc:621:  Addr key_addr(stored->long_key);
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-622-  if ((stored->key_len <= kMaxInternalKeyLength && key_addr.is_initialized()) ||
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-642-  EntryStore* stored = entry_.Data();
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc:643:  Addr key_addr(stored->long_key);
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-644-
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-652-  for (int i = 0; i < kNumStreams; i++) {
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc:653:    Addr data_addr(stored->data_addr[i]);
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-654-    int data_size = stored->data_size[i];
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-672-  EntryStore* stored = entry_.Data();
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc:673:  Addr key_addr(stored->long_key);
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-674-
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-678-  for (int i = 0; i < kNumStreams; i++) {
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc:679:    Addr data_addr(stored->data_addr[i]);
chromium-84.0.4147.105/net/disk_cache/blockfile/entry_impl.cc-680-    int data_size = stored->data_size[i];
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-20-
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc:21:  CacheEntryBlock entry1(file.get(), disk_cache::Addr(0xa0010001));
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-22-  memset(entry1.Data(), 0, sizeof(disk_cache::EntryStore));
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-40-
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc:41:  CacheEntryBlock entry1(file.get(), disk_cache::Addr(0xa0010001));
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-42-  entry1.Data()->hash = 0xaa5555aa;
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-43-
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc:44:  CacheEntryBlock entry2(file.get(), disk_cache::Addr(0xa0010002));
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-45-  EXPECT_TRUE(entry2.Load());
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-61-  CacheEntryBlock* entry1 =
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc:62:      new CacheEntryBlock(file.get(), disk_cache::Addr(0xa0010003));
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-63-  EXPECT_TRUE(entry1->Load());
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-68-
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc:69:  CacheEntryBlock entry2(file.get(), disk_cache::Addr(0xa0010003));
chromium-84.0.4147.105/net/disk_cache/blockfile/storage_block_unittest.cc-70-  EXPECT_TRUE(entry2.Load());
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-494-  scoped_refptr<EntryImpl> cache_entry =
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc:495:      MatchEntry(key, hash, false, Addr(), &error);
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-496-  if (cache_entry && ENTRY_NORMAL == cache_entry->entry()->Data()->state)
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-510-  scoped_refptr<EntryImpl> cache_entry =
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc:511:      MatchEntry(key, hash, false, Addr(), &error);
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-512-  if (cache_entry && ENTRY_NORMAL != cache_entry->entry()->Data()->state) {
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-555-    scoped_refptr<EntryImpl> old_entry =
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc:556:        MatchEntry(key, hash, false, Addr(), &error);
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-557-    if (old_entry)
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-559-
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc:560:    parent = MatchEntry(key, hash, true, Addr(), &error);
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-561-    DCHECK(!error);
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-831-  if (parent_entry) {
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc:832:    parent_entry->SetNextAddress(Addr(child));
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-833-    parent_entry = nullptr;
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-842-
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc:843:CacheAddr BackendImpl::GetNextAddr(Addr address) {
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-844-  EntriesMap::iterator it = open_entries_.find(address.value());
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-865-    DCHECK(entry_addr.value() != address.value());
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc:866:    address.set_value(GetNextAddr(address));
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-867-    if (!address.is_initialized())
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-1597-  STRESS_DCHECK(block_files_.IsValid(
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc:1598:                    Addr(cache_entry->entry()->Data()->rankings_node)));
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-1599-
##############################################
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-1757-  scoped_refptr<EntryImpl> entry;
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc:1758:  int rv = NewEntry(Addr(next->Data()->contents), &entry);
chromium-84.0.4147.105/net/disk_cache/blockfile/backend_impl.cc-1759-  if (rv) {
##############################################
chromium-84.0.4147.105/net/disk_cache/entry_unittest.cc-2732-  // an external file to avoid needing to duplicate offset math here.
chromium-84.0.4147.105/net/disk_cache/entry_unittest.cc:2733:  disk_cache::Addr key_addr(store->long_key);
chromium-84.0.4147.105/net/disk_cache/entry_unittest.cc-2734-  ASSERT_TRUE(key_addr.is_initialized());
##############################################
chromium-84.0.4147.105/net/data/ssl/symantec/README.md-53-
chromium-84.0.4147.105/net/data/ssl/symantec/README.md:54:`` for f in roots/*.pem; do openssl x509 -noout -pubkey -in "${f}" | openssl asn1parse -inform pem -out /tmp/pubkey.out -noout; digest=`cat /tmp/pubkey.out | openssl dgst -sha256 -c | awk -F " " '{print $2}' | sed s/:/,0x/g `; echo "0x${digest} ${f##*/}"; done | sort ``
chromium-84.0.4147.105/net/data/ssl/symantec/README.md-55-
##############################################
chromium-84.0.4147.105/net/data/ssl/scripts/generate-keychain.sh-16-# realpath command. Be lazy and make the user pass in an absolute path.
chromium-84.0.4147.105/net/data/ssl/scripts/generate-keychain.sh:17:if [ `echo "$KEYCHAIN" | cut -c1` != '/' ]; then
chromium-84.0.4147.105/net/data/ssl/scripts/generate-keychain.sh-18-  echo keychain path must be absolute
##############################################
chromium-84.0.4147.105/net/data/ssl/scripts/generate-keychain.sh-26-# (or does it?)
chromium-84.0.4147.105/net/data/ssl/scripts/generate-keychain.sh:27:SAVED_KEYCHAIN_LIST=`$SECURITY list -d user`
chromium-84.0.4147.105/net/data/ssl/scripts/generate-keychain.sh-28-echo "Saved user keychain list:"
##############################################
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs_unittest.cc-55-  if (!IPEndPoint(ip_address, 0)
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs_unittest.cc:56:           .ToSockAddr(reinterpret_cast<sockaddr*>(&sock_addrs[0]),
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs_unittest.cc-57-                       &sock_len)) {
##############################################
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs_unittest.cc-63-  if (!IPEndPoint(ip_netmask, 0)
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs_unittest.cc:64:           .ToSockAddr(reinterpret_cast<sockaddr*>(&sock_addrs[1]),
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs_unittest.cc-65-                       &sock_len)) {
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint.h-47-  // Returns true on success, false on failure.
chromium-84.0.4147.105/net/base/ip_endpoint.h:48:  bool ToSockAddr(struct sockaddr* address, socklen_t* address_length) const
chromium-84.0.4147.105/net/base/ip_endpoint.h-49-      WARN_UNUSED_RESULT;
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint.h-54-  // Returns true on success, false on failure.
chromium-84.0.4147.105/net/base/ip_endpoint.h:55:  bool FromSockAddr(const struct sockaddr* address,
chromium-84.0.4147.105/net/base/ip_endpoint.h-56-                    socklen_t address_length) WARN_UNUSED_RESULT;
##############################################
chromium-84.0.4147.105/net/base/address_list.cc-57-    // NOTE: Ignoring non-INET* families.
chromium-84.0.4147.105/net/base/address_list.cc:58:    if (ipe.FromSockAddr(ai->ai_addr, static_cast<socklen_t>(ai->ai_addrlen)))
chromium-84.0.4147.105/net/base/address_list.cc-59-      list.push_back(ipe);
##############################################
chromium-84.0.4147.105/net/base/sockaddr_storage.cc-12-    : addr_len(sizeof(addr_storage)),
chromium-84.0.4147.105/net/base/sockaddr_storage.cc:13:      addr(reinterpret_cast<struct sockaddr*>(&addr_storage)) {}
chromium-84.0.4147.105/net/base/sockaddr_storage.cc-14-
##############################################
chromium-84.0.4147.105/net/base/sockaddr_storage.cc-16-    : addr_len(other.addr_len),
chromium-84.0.4147.105/net/base/sockaddr_storage.cc:17:      addr(reinterpret_cast<struct sockaddr*>(&addr_storage)) {
chromium-84.0.4147.105/net/base/sockaddr_storage.cc-18-  memcpy(addr, other.addr, addr_len);
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint.cc-38-// Extracts the address and port portions of a sockaddr.
chromium-84.0.4147.105/net/base/ip_endpoint.cc:39:bool GetIPAddressFromSockAddr(const struct sockaddr* sock_addr,
chromium-84.0.4147.105/net/base/ip_endpoint.cc-40-                              socklen_t sock_addr_len,
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint.cc-113-
chromium-84.0.4147.105/net/base/ip_endpoint.cc:114:bool IPEndPoint::ToSockAddr(struct sockaddr* address,
chromium-84.0.4147.105/net/base/ip_endpoint.cc-115-                            socklen_t* address_length) const {
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint.cc-149-
chromium-84.0.4147.105/net/base/ip_endpoint.cc:150:bool IPEndPoint::FromSockAddr(const struct sockaddr* sock_addr,
chromium-84.0.4147.105/net/base/ip_endpoint.cc-151-                              socklen_t sock_addr_len) {
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint.cc-156-  uint16_t port;
chromium-84.0.4147.105/net/base/ip_endpoint.cc:157:  if (!GetIPAddressFromSockAddr(sock_addr, sock_addr_len, &address,
chromium-84.0.4147.105/net/base/ip_endpoint.cc-158-                                &address_len, &port)) {
##############################################
chromium-84.0.4147.105/net/base/network_interfaces_win_unittest.cc-58-  if (!IPEndPoint(ip_address, 0)
chromium-84.0.4147.105/net/base/network_interfaces_win_unittest.cc:59:           .ToSockAddr(reinterpret_cast<sockaddr*>(&sock_addrs[0]),
chromium-84.0.4147.105/net/base/network_interfaces_win_unittest.cc-60-                       &sock_len)) {
##############################################
chromium-84.0.4147.105/net/base/network_interfaces_win_unittest.cc-69-  if (!IPEndPoint(ip_netmask, 0)
chromium-84.0.4147.105/net/base/network_interfaces_win_unittest.cc:70:           .ToSockAddr(reinterpret_cast<sockaddr*>(&sock_addrs[1]),
chromium-84.0.4147.105/net/base/network_interfaces_win_unittest.cc-71-                       &sock_len)) {
##############################################
chromium-84.0.4147.105/net/base/network_interfaces_win.cc-160-        IPEndPoint endpoint;
chromium-84.0.4147.105/net/base/network_interfaces_win.cc:161:        if (endpoint.FromSockAddr(address->Address.lpSockaddr,
chromium-84.0.4147.105/net/base/network_interfaces_win.cc-162-                                  address->Address.iSockaddrLength)) {
##############################################
chromium-84.0.4147.105/net/base/ip_address.cc-106-
chromium-84.0.4147.105/net/base/ip_address.cc:107:  IPAddress addr(ip_address);
chromium-84.0.4147.105/net/base/ip_address.cc-108-  if (addr.IsIPv4MappedIPv6()) {
##############################################
chromium-84.0.4147.105/net/base/network_interfaces_linux.cc-134-    if (!IPEndPoint(it->first, 0)
chromium-84.0.4147.105/net/base/network_interfaces_linux.cc:135:             .ToSockAddr(reinterpret_cast<sockaddr*>(&sock_addr), &sock_len)) {
chromium-84.0.4147.105/net/base/network_interfaces_linux.cc-136-      continue;
##############################################
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs.cc-188-
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs.cc:189:    if (address.FromSockAddr(addr, addr_size)) {
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs.cc-190-      uint8_t prefix_length = 0;
##############################################
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs.cc-196-        IPEndPoint netmask;
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs.cc:197:        if (netmask.FromSockAddr(interface->ifa_netmask, addr_size)) {
chromium-84.0.4147.105/net/base/network_interfaces_getifaddrs.cc-198-          prefix_length = MaskPrefixLength(netmask.address());
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-27-// Retuns the port field of the |sockaddr|.
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc:28:const uint16_t* GetPortFieldFromSockaddr(const struct sockaddr* address,
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-29-                                         socklen_t address_len) {
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-46-// Returns the value of port in |sockaddr| (in host byte ordering).
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc:47:int GetPortFromSockaddr(const struct sockaddr* address, socklen_t address_len) {
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc:48:  const uint16_t* port_field = GetPortFieldFromSockaddr(address, address_len);
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-49-  if (!port_field)
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-115-    SockaddrStorage storage;
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc:116:    EXPECT_TRUE(ip_endpoint.ToSockAddr(storage.addr, &storage.addr_len));
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-117-
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-121-    EXPECT_EQ(expected_size, storage.addr_len);
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc:122:    EXPECT_EQ(ip_endpoint.port(), GetPortFromSockaddr(storage.addr,
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-123-                                                      storage.addr_len));
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-126-    IPEndPoint ip_endpoint2;
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc:127:    EXPECT_TRUE(ip_endpoint2.FromSockAddr(storage.addr, storage.addr_len));
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-128-    EXPECT_EQ(ip_endpoint.port(), ip_endpoint2.port());
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-139-    storage.addr_len = 3;  // size is too small!
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc:140:    EXPECT_FALSE(ip_endpoint.ToSockAddr(storage.addr, &storage.addr_len));
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-141-  }
##############################################
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-149-  struct sockaddr* sockaddr = reinterpret_cast<struct sockaddr*>(&addr);
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc:150:  EXPECT_FALSE(ip_endpoint.FromSockAddr(sockaddr, sizeof(addr) - 1));
chromium-84.0.4147.105/net/base/ip_endpoint_unittest.cc-151-}
##############################################
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-24-  if (saddr.ss_family == AF_INET) {
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc:25:    CHECK(socket_address_.FromSockAddr(
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-26-        reinterpret_cast<const sockaddr*>(&saddr), sizeof(struct sockaddr_in)));
##############################################
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-28-    CHECK(
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc:29:        socket_address_.FromSockAddr(reinterpret_cast<const sockaddr*>(&saddr),
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-30-                                     sizeof(struct sockaddr_in6)));
##############################################
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-36-  if (saddr->sa_family == AF_INET) {
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc:37:    CHECK(socket_address_.FromSockAddr(saddr, len));
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-38-  } else if (saddr->sa_family == AF_INET6) {
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc:39:    CHECK(socket_address_.FromSockAddr(saddr, len));
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-40-  }
##############################################
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-69-  if (getsockname(fd, storage.addr, &storage.addr_len) != 0 ||
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc:70:      !socket_address_.FromSockAddr(storage.addr, storage.addr_len)) {
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-71-    return 1;
##############################################
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-92-  socklen_t address_len = sizeof(raw_address);
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc:93:  CHECK(socket_address_.ToSockAddr(
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_address_impl.cc-94-      reinterpret_cast<struct sockaddr*>(&raw_address), &address_len));
##############################################
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_utils_test.cc-98-  QuicIpAddress localhost = QuicIpAddress::Loopback4();
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_utils_test.cc:99:  QuicSocketAddress addr(localhost, 0);
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_utils_test.cc-100-
##############################################
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_utils_test.cc-122-  QuicIpAddress localhost = QuicIpAddress::Loopback4();
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_utils_test.cc:123:  QuicSocketAddress client_addr(localhost, 0);
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_utils_test.cc:124:  QuicSocketAddress server_addr(localhost, 0);
chromium-84.0.4147.105/net/quic/platform/impl/quic_socket_utils_test.cc-125-
##############################################
chromium-84.0.4147.105/net/quic/address_utils.h-24-  sockaddr_storage storage = address.generic_address();
chromium-84.0.4147.105/net/quic/address_utils.h:25:  const bool success = result.FromSockAddr(
chromium-84.0.4147.105/net/quic/address_utils.h-26-      reinterpret_cast<const sockaddr*>(&storage), sizeof(storage));
##############################################
chromium-84.0.4147.105/net/quic/address_utils.h-60-  bool success =
chromium-84.0.4147.105/net/quic/address_utils.h:61:      address.ToSockAddr(reinterpret_cast<sockaddr*>(&result), &size);
chromium-84.0.4147.105/net/quic/address_utils.h-62-  DCHECK(success);
##############################################
chromium-84.0.4147.105/net/http/http_network_transaction_unittest.cc-16639-
chromium-84.0.4147.105/net/http/http_network_transaction_unittest.cc:16640:  IPEndPoint peer_addr(IPAddress::IPv4Localhost(), 443);
chromium-84.0.4147.105/net/http/http_network_transaction_unittest.cc-16641-  MockConnect connect(ASYNC, OK, peer_addr);
##############################################
chromium-84.0.4147.105/net/http/http_network_transaction_unittest.cc-16723-
chromium-84.0.4147.105/net/http/http_network_transaction_unittest.cc:16724:  IPEndPoint peer_addr(IPAddress::IPv4Localhost(), 443);
chromium-84.0.4147.105/net/http/http_network_transaction_unittest.cc-16725-  MockConnect connect(ASYNC, OK, peer_addr);
##############################################
chromium-84.0.4147.105/net/http/http_network_transaction_unittest.cc-17053-
chromium-84.0.4147.105/net/http/http_network_transaction_unittest.cc:17054:  IPEndPoint peer_addr(IPAddress::IPv4Localhost(), 443);
chromium-84.0.4147.105/net/http/http_network_transaction_unittest.cc-17055-  MockConnect connect(ASYNC, OK, peer_addr);
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-712-  // StartTestServer().
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:713:  const AddressList& addr() const { return addr_; }
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-714-
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1121-    std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1122:        new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1123-    std::unique_ptr<FakeBlockingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1315-    real_transport_.reset(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1316:        new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1317-    std::unique_ptr<FakeBlockingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1451-  std::unique_ptr<StreamSocket> transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1452:      new TCPClientSocket(addr(), nullptr, &log, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1453-  int rv = callback.GetResult(transport->Connect(callback.callback()));
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1529-  auto transport =
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1530:      std::make_unique<TCPClientSocket>(addr(), nullptr, &log_, NetLogSource());
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1531-  int rv = callback.GetResult(transport->Connect(callback.callback()));
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1652-  std::unique_ptr<StreamSocket> transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1653:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1654-  EXPECT_EQ(0, transport->GetTotalReceivedBytes());
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1709-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1710:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1711-  std::unique_ptr<SynchronousErrorStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1736-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1737:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1738-  std::unique_ptr<SynchronousErrorStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1786-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1787:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1788-  // Note: |error_socket|'s ownership is handed to |transport|, but a pointer
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1851-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1852:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1853-  // Note: intermediate sockets' ownership are handed to |sock|, but a pointer
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1953-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:1954:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-1955-  // Note: |error_socket|'s ownership is handed to |transport|, but a pointer
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2037-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:2038:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2039-  // Note: |error_socket|'s ownership is handed to |transport|, but a pointer
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2126-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:2127:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2128-  std::unique_ptr<SynchronousErrorStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2152-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:2153:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2154-  std::unique_ptr<SynchronousErrorStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2183-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:2184:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2185-  std::unique_ptr<SynchronousErrorStreamSocket> error_socket(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2270-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:2271:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2272-  std::unique_ptr<ReadBufferingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2346-  std::unique_ptr<StreamSocket> transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:2347:      new TCPClientSocket(addr(), nullptr, &log, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2348-  int rv = callback.GetResult(transport->Connect(callback.callback()));
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2414-  std::unique_ptr<StreamSocket> transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:2415:      new MockTCPClientSocket(addr(), nullptr, &data));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2416-  int rv = callback.GetResult(transport->Connect(callback.callback()));
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2460-  std::unique_ptr<StreamSocket> transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:2461:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-2462-  int rv = callback.GetResult(transport->Connect(callback.callback()));
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-3019-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:3020:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-3021-  std::unique_ptr<FakeBlockingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-3081-  std::unique_ptr<StreamSocket> transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:3082:      new TCPClientSocket(addr(), nullptr, &log_, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-3083-  TestCompletionCallback callback;
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-3139-      std::unique_ptr<StreamSocket> transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:3140:          new TCPClientSocket(addr(), nullptr, &log_, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-3141-      TestCompletionCallback callback;
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4553-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:4554:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4555-  std::unique_ptr<FakeBlockingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4588-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:4589:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4590-  std::unique_ptr<FakeBlockingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4637-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:4638:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4639-  std::unique_ptr<FakeBlockingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4687-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:4688:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4689-  std::unique_ptr<FakeBlockingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4739-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:4740:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4741-  std::unique_ptr<FakeBlockingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4786-  std::unique_ptr<StreamSocket> real_transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:4787:      new TCPClientSocket(addr(), nullptr, nullptr, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-4788-  std::unique_ptr<FakeBlockingStreamSocket> transport(
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-5409-  std::unique_ptr<StreamSocket> transport(
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:5410:      new TCPClientSocket(addr(), nullptr, &log, NetLogSource()));
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-5411-
##############################################
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-5581-  auto transport =
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc:5582:      std::make_unique<TCPClientSocket>(addr(), nullptr, &log_, NetLogSource());
chromium-84.0.4147.105/net/socket/ssl_client_socket_unittest.cc-5583-  TestCompletionCallback callback;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-342-    std::unique_ptr<IPEndPoint> address(new IPEndPoint());
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc:343:    if (!address->FromSockAddr(storage.addr, storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-344-      return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-362-    std::unique_ptr<IPEndPoint> address(new IPEndPoint());
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc:363:    if (!address->FromSockAddr(storage.addr, storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-364-      return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-497-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc:498:  if (!address.ToSockAddr(storage.addr, &storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-499-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-660-  DCHECK(!is_connected());
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc:661:  return SetReuseAddr(socket_, true);
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-662-}
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-766-    IPEndPoint address;
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc:767:    bool is_address_valid = address.FromSockAddr(addr, addr_len);
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-768-    NetLogUDPDataTransfer(net_log_, NetLogEventType::UDP_BYTES_RECEIVED, result,
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-837-    bool success =
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc:838:        remote_address_->ToSockAddr(sock_addr.addr, &sock_addr.addr_len);
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-839-    DCHECK(success);
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-869-      result = bytes_transferred;
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc:870:      if (address && !address->FromSockAddr(storage.addr, storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-871-        result = ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-889-  } else {
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc:890:    if (!address->ToSockAddr(storage.addr, &storage.addr_len)) {
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-891-      int result = ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-974-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc:975:  if (!address.ToSockAddr(storage.addr, &storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_posix.cc-976-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/socket_options.cc-32-
chromium-84.0.4147.105/net/socket/socket_options.cc:33:int SetReuseAddr(SocketDescriptor fd, bool reuse) {
chromium-84.0.4147.105/net/socket/socket_options.cc-34-// SO_REUSEADDR is useful for server sockets to bind to a recently unbound
##############################################
chromium-84.0.4147.105/net/socket/socket_test_util.cc-162-    result(r),
chromium-84.0.4147.105/net/socket/socket_test_util.cc:163:    peer_addr(addr) {
chromium-84.0.4147.105/net/socket/socket_test_util.cc-164-}
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-165-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc:166:  if (!peer_address.ToSockAddr(storage.addr, &storage.addr_len) &&
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-167-      // For backward compatibility, allows the empty address.
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-196-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc:197:  if (!address.ToSockAddr(storage.addr, &storage.addr_len))
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-198-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-237-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc:238:  if (!address.ToSockAddr(storage.addr, &storage.addr_len))
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-239-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-335-
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc:336:  if (!address->FromSockAddr(storage.addr, storage.addr_len))
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-337-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-352-
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc:353:  if (!address->FromSockAddr(storage.addr, storage.addr_len))
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-354-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-392-
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc:393:  return SetReuseAddr(socket_->socket_fd(), true);
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-394-}
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-503-  if (accept_socket_->GetPeerAddress(&storage) != OK ||
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc:504:      !address->FromSockAddr(storage.addr, storage.addr_len)) {
chromium-84.0.4147.105/net/socket/tcp_socket_posix.cc-505-    accept_socket_.reset();
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc-345-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc:346:  if (!address.ToSockAddr(storage.addr, &storage.addr_len))
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc-347-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc-609-  }
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc:610:  if (!address->FromSockAddr(storage.addr, storage.addr_len))
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc-611-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc-784-  IPEndPoint ip_end_point;
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc:785:  if (!ip_end_point.FromSockAddr(storage.addr, storage.addr_len)) {
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc-786-    NOTREACHED();
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc-848-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc:849:  if (!peer_address_->ToSockAddr(storage.addr, &storage.addr_len))
chromium-84.0.4147.105/net/socket/tcp_socket_win.cc-850-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/tcp_socket_unittest.cc-308-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/tcp_socket_unittest.cc:309:  ASSERT_TRUE(address.ToSockAddr(storage.addr, &storage.addr_len));
chromium-84.0.4147.105/net/socket/tcp_socket_unittest.cc-310-  ASSERT_EQ(0, bind(existing_socket, storage.addr, storage.addr_len));
##############################################
chromium-84.0.4147.105/net/socket/socket_tag_unittest.cc-72-  SockaddrStorage addr;
chromium-84.0.4147.105/net/socket/socket_tag_unittest.cc:73:  ASSERT_TRUE(addr_list[0].ToSockAddr(addr.addr, &addr.addr_len));
chromium-84.0.4147.105/net/socket/socket_tag_unittest.cc-74-
##############################################
chromium-84.0.4147.105/net/socket/socket_net_log_params.cc-49-  IPEndPoint ipe;
chromium-84.0.4147.105/net/socket/socket_net_log_params.cc:50:  bool result = ipe.FromSockAddr(net_address, address_len);
chromium-84.0.4147.105/net/socket/socket_net_log_params.cc-51-  DCHECK(result);
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-339-    std::unique_ptr<IPEndPoint> remote_address(new IPEndPoint());
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:340:    if (!remote_address->FromSockAddr(storage.addr, storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-341-      return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-360-    std::unique_ptr<IPEndPoint> local_address(new IPEndPoint());
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:361:    if (!local_address->FromSockAddr(storage.addr, storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-362-      return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-481-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:482:  if (!address.ToSockAddr(storage.addr, &storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-483-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-632-  if (result >= 0) {
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:633:    if (address.FromSockAddr(core_->recv_addr_storage_.addr,
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-634-                             core_->recv_addr_storage_.addr_len)) {
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-792-      if (result >= 0) {
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:793:        if (address_storage.FromSockAddr(core_->recv_addr_storage_.addr,
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-794-                                         core_->recv_addr_storage_.addr_len)) {
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-828-  } else {
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:829:    if (!address->ToSockAddr(addr, &storage.addr_len)) {
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-830-      int result = ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-889-  if (rv >= 0) {
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:890:    if (address_storage.FromSockAddr(storage.addr, storage.addr_len)) {
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-891-      if (address)
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-909-  if (address) {
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:910:    if (!address->ToSockAddr(addr, &storage.addr_len)) {
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-911-      int result = ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-990-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:991:  if (!address.ToSockAddr(storage.addr, &storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-992-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-1289-  SockaddrStorage storage;
chromium-84.0.4147.105/net/socket/udp_socket_win.cc:1290:  if (!remote_address.ToSockAddr(storage.addr, &storage.addr_len))
chromium-84.0.4147.105/net/socket/udp_socket_win.cc-1291-    return ERR_ADDRESS_INVALID;
##############################################
chromium-84.0.4147.105/net/socket/socket_options.h-47-
chromium-84.0.4147.105/net/socket/socket_options.h:48:// SetReuseAddr() sets the SO_REUSEADDR socket option. Use |reuse| to enable or
chromium-84.0.4147.105/net/socket/socket_options.h-49-// disable it. On error returns a net error code, on success returns OK.
chromium-84.0.4147.105/net/socket/socket_options.h:50:int SetReuseAddr(SocketDescriptor fd, bool reuse);
chromium-84.0.4147.105/net/socket/socket_options.h-51-
##############################################
chromium-84.0.4147.105/net/third_party/quiche/src/quic/test_tools/crypto_test_utils_test.cc-118-      crypto_test_utils::ProofSourceForTesting(), KeyExchangeSource::Default());
chromium-84.0.4147.105/net/third_party/quiche/src/quic/test_tools/crypto_test_utils_test.cc:119:  QuicSocketAddress server_addr(QuicIpAddress::Any4(), 5);
chromium-84.0.4147.105/net/third_party/quiche/src/quic/test_tools/crypto_test_utils_test.cc:120:  QuicSocketAddress client_addr(QuicIpAddress::Loopback4(), 1);
chromium-84.0.4147.105/net/third_party/quiche/src/quic/test_tools/crypto_test_utils_test.cc-121-  QuicReferenceCountedPointer<QuicSignedServerConfig> signed_config(
##############################################
chromium-84.0.4147.105/net/third_party/quiche/src/quic/core/quic_socket_address_coder_test.cc-44-  EXPECT_EQ(IpAddressFamily::IP_V4, coder.ip().address_family());
chromium-84.0.4147.105/net/third_party/quiche/src/quic/core/quic_socket_address_coder_test.cc:45:  std::string expected_addr("\x04\x1f\xc6\x2c");
chromium-84.0.4147.105/net/third_party/quiche/src/quic/core/quic_socket_address_coder_test.cc-46-  EXPECT_EQ(expected_addr, coder.ip().ToPackedString());
##############################################
chromium-84.0.4147.105/net/third_party/quiche/src/quic/core/quic_socket_address_coder_test.cc-59-  EXPECT_EQ(IpAddressFamily::IP_V6, coder.ip().address_family());
chromium-84.0.4147.105/net/third_party/quiche/src/quic/core/quic_socket_address_coder_test.cc:60:  std::string expected_addr(
chromium-84.0.4147.105/net/third_party/quiche/src/quic/core/quic_socket_address_coder_test.cc-61-      "\x20\x01\x07\x00\x03\x00\x18\x00"
##############################################
chromium-84.0.4147.105/content/browser/site_per_process_browsertest.cc-15645-    command_line->AppendSwitchASCII(switches::kForceDeviceScaleFactor,
chromium-84.0.4147.105/content/browser/site_per_process_browsertest.cc:15646:                                    base::StringPrintf("%f", GetParam()));
chromium-84.0.4147.105/content/browser/site_per_process_browsertest.cc-15647-  }
##############################################
chromium-84.0.4147.105/content/browser/browsing_data/storage_partition_code_cache_data_remover.cc-106-  } else {
chromium-84.0.4147.105/content/browser/browsing_data/storage_partition_code_cache_data_remover.cc:107:    // When there is no JS cache, see if we need to remove WASM cache. When
chromium-84.0.4147.105/content/browser/browsing_data/storage_partition_code_cache_data_remover.cc:108:    // there is JS cache, the WASM cache would be removed after the JS cache.
chromium-84.0.4147.105/content/browser/browsing_data/storage_partition_code_cache_data_remover.cc-109-    ClearWASMCodeCache(net::ERR_FAILED);
##############################################
chromium-84.0.4147.105/content/browser/browsing_data/storage_partition_code_cache_data_remover.cc-124-  } else {
chromium-84.0.4147.105/content/browser/browsing_data/storage_partition_code_cache_data_remover.cc:125:    // There is no Wasm cache, done with clearing caches.
chromium-84.0.4147.105/content/browser/browsing_data/storage_partition_code_cache_data_remover.cc-126-    DoneClearCodeCache(net::ERR_FAILED);
##############################################
chromium-84.0.4147.105/content/browser/child_process_security_policy_unittest.cc-2311-
chromium-84.0.4147.105/content/browser/child_process_security_policy_unittest.cc:2312:  const base::StringPiece ip_addr("https://10.20.30.40");
chromium-84.0.4147.105/content/browser/child_process_security_policy_unittest.cc-2313-  url::Origin ip_origin = url::Origin::Create(GURL("https://10.20.30.40"));
##############################################
chromium-84.0.4147.105/content/browser/child_process_security_policy_unittest.cc-2320-
chromium-84.0.4147.105/content/browser/child_process_security_policy_unittest.cc:2321:  const base::StringPiece wild_ip_addr("https://[*.]10.20.30.40");
chromium-84.0.4147.105/content/browser/child_process_security_policy_unittest.cc-2322-  result = p.Parse(wild_ip_addr);
##############################################
chromium-84.0.4147.105/content/browser/code_cache/generated_code_cache.h-50-
chromium-84.0.4147.105/content/browser/code_cache/generated_code_cache.h:51:  // Cache type. Used for collecting statistics for JS and Wasm in separate
chromium-84.0.4147.105/content/browser/code_cache/generated_code_cache.h-52-  // buckets.
##############################################
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-89-  // Compose the string which will appear in the entry for this frame.
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js:90:  let itemLabel = `Frame[${frame.processId}:${frame.routingId}]:`;
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-91-  if (frame.isBfcached) {
##############################################
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-93-  }
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js:94:  itemLabel += ` SI:${frame.siteInstance.id}`;
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-95-  if (frame.siteInstance.locked) {
##############################################
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-98-  if (frame.siteInstance.siteUrl) {
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js:99:    itemLabel += `, site:${frame.siteInstance.siteUrl.url}`;
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-100-  }
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-101-  if (frame.lastCommittedUrl) {
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js:102:    itemLabel += ` | url: ${frame.lastCommittedUrl.url}`;
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-103-  }
##############################################
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-155-  const totalCount = count + cachedCount;
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js:156:  itemLabel += `${totalCount} frame` + (totalCount > 1 ? 's, ' : ', ');
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js:157:  itemLabel += `(${count} active, ${cachedCount} bfcached root` +
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-158-      (cachedCount > 1 ? 's' : ``) + `).`;
##############################################
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-238-      const item = document.createElement('li');
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js:239:      item.textContent = `${originInfo.origin} (${originInfo.source})`;
chromium-84.0.4147.105/content/browser/resources/process/process_internals.js-240-      list.appendChild(item);
##############################################
chromium-84.0.4147.105/content/browser/renderer_host/render_widget_host_browsertest.cc-661-  EXPECT_EQ(screen_info.rect.size().ToString(),
chromium-84.0.4147.105/content/browser/renderer_host/render_widget_host_browsertest.cc:662:            EvalJs(web_contents(), "`${screen.width}x${screen.height}`"));
chromium-84.0.4147.105/content/browser/renderer_host/render_widget_host_browsertest.cc-663-
##############################################
chromium-84.0.4147.105/content/browser/renderer_host/render_widget_host_browsertest.cc-670-  EXPECT_EQ(view()->GetRequestedRendererSize().ToString(),
chromium-84.0.4147.105/content/browser/renderer_host/render_widget_host_browsertest.cc:671:            EvalJs(web_contents(), "`${screen.width}x${screen.height}`"));
chromium-84.0.4147.105/content/browser/renderer_host/render_widget_host_browsertest.cc-672-
##############################################
chromium-84.0.4147.105/content/browser/renderer_host/render_widget_host_browsertest.cc-678-  EXPECT_EQ(screen_info.rect.size().ToString(),
chromium-84.0.4147.105/content/browser/renderer_host/render_widget_host_browsertest.cc:679:            EvalJs(web_contents(), "`${screen.width}x${screen.height}`"));
chromium-84.0.4147.105/content/browser/renderer_host/render_widget_host_browsertest.cc-680-}
##############################################
chromium-84.0.4147.105/content/browser/back_forward_cache_browsertest.cc-4870-    function eventToString(event) {
chromium-84.0.4147.105/content/browser/back_forward_cache_browsertest.cc:4871:      return `${event.alpha} ${event.beta} ${event.gamma}`;
chromium-84.0.4147.105/content/browser/back_forward_cache_browsertest.cc-4872-    }
##############################################
chromium-84.0.4147.105/content/browser/back_forward_cache_browsertest.cc-4880-          if (Math.abs(event.alpha - expectedAlpha) > 0.01) {
chromium-84.0.4147.105/content/browser/back_forward_cache_browsertest.cc:4881:            return `fail - ${count}/${events.length}: ` +
chromium-84.0.4147.105/content/browser/back_forward_cache_browsertest.cc:4882:                `${expectedAlpha} != ${event.alpha} (${eventToString(event)})`;
chromium-84.0.4147.105/content/browser/back_forward_cache_browsertest.cc-4883-          }
##############################################
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-255-    return embedded_test_server()->GetURL(
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc:256:        base::StringPrintf("/%s_url_navigations.html", GetParam()));
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-257-  }
##############################################
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-496-  std::string GetNavigationBlockedMessage() const {
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc:497:    return base::StringPrintf(kNavigationBlockedMessage, GetParam());
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-498-  }
##############################################
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-689-      embedded_test_server()->GetURL(
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc:690:          "b.com", base::StringPrintf("/%s_url_navigations.html", GetParam())));
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-691-
##############################################
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-706-      embedded_test_server()->GetURL(
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc:707:          "b.com", base::StringPrintf("/%s_url_navigations.html", GetParam())));
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-708-
##############################################
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-1193-      embedded_test_server()->GetURL(
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc:1194:          "b.com", base::StringPrintf("/%s_url_navigations.html", GetParam())));
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-1195-
##############################################
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-1229-            embedded_test_server()->GetURL(
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc:1230:                base::StringPrintf("/%s_url_navigations.html", GetParam())));
chromium-84.0.4147.105/content/browser/frame_host/blocked_scheme_navigation_browsertest.cc-1231-
##############################################
chromium-84.0.4147.105/content/browser/site_per_process_hit_test_browsertest.cc-821-        switches::kForceDeviceScaleFactor,
chromium-84.0.4147.105/content/browser/site_per_process_hit_test_browsertest.cc:822:        base::StringPrintf("%f", std::get<0>(GetParam())));
chromium-84.0.4147.105/content/browser/site_per_process_hit_test_browsertest.cc-823-  }
##############################################
chromium-84.0.4147.105/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt-20-# Skip these, rather than expect them to fail, to speed up test
chromium-84.0.4147.105/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt:21:# execution. The browser is restarted even after expected test
chromium-84.0.4147.105/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt-22-# failures.
##############################################
chromium-84.0.4147.105/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt-732-# Skip these, rather than expect them to fail, to speed up test
chromium-84.0.4147.105/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt:733:# execution. The browser is restarted even after expected test
chromium-84.0.4147.105/content/test/gpu/gpu_tests/test_expectations/webgl2_conformance_expectations.txt-734-# failures.
##############################################
chromium-84.0.4147.105/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt-24-# Skip these, rather than expect them to fail, to speed up test
chromium-84.0.4147.105/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt:25:# execution. The browser is restarted even after expected test
chromium-84.0.4147.105/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt-26-# failures.
##############################################
chromium-84.0.4147.105/content/shell/browser/web_test/test_info_extractor.cc-52-  net::IPEndPoint endpoint(address, port);
chromium-84.0.4147.105/content/shell/browser/web_test/test_info_extractor.cc:53:  bool converted = endpoint.ToSockAddr(addr, &addr_len);
chromium-84.0.4147.105/content/shell/browser/web_test/test_info_extractor.cc-54-  CHECK(converted);
##############################################
chromium-84.0.4147.105/content/renderer/pepper/ppb_image_data_impl.cc-168-  skia::GetWritablePixels(mapped_canvas_.get(), &pixmap);
chromium-84.0.4147.105/content/renderer/pepper/ppb_image_data_impl.cc:169:  DCHECK(pixmap.addr());
chromium-84.0.4147.105/content/renderer/pepper/ppb_image_data_impl.cc-170-  // SkPixmap does not manage the lifetime of this pointer, so it remains
##############################################
chromium-84.0.4147.105/chrome/tools/build/linux/chrome-wrapper-70-# Let the wrapped binary know that it has been run through the wrapper.
chromium-84.0.4147.105/chrome/tools/build/linux/chrome-wrapper:71:export CHROME_WRAPPER="`readlink -f "$0"`"
chromium-84.0.4147.105/chrome/tools/build/linux/chrome-wrapper-72-export CHROME_DESKTOP="$DESKTOP.desktop"
chromium-84.0.4147.105/chrome/tools/build/linux/chrome-wrapper-73-
chromium-84.0.4147.105/chrome/tools/build/linux/chrome-wrapper:74:HERE="`dirname "$CHROME_WRAPPER"`"
chromium-84.0.4147.105/chrome/tools/build/linux/chrome-wrapper-75-
##############################################
chromium-84.0.4147.105/chrome/browser/usb/usb_browsertest.cc-230-            } catch (e) {
chromium-84.0.4147.105/chrome/browser/usb/usb_browsertest.cc:231:              return `${e.name}: ${e.message}`;
chromium-84.0.4147.105/chrome/browser/usb/usb_browsertest.cc-232-            }
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc-131-        const img = await waitForNode('img[alt="$1"]');
chromium-84.0.4147.105/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc:132:        return `$${img.naturalWidth}x$${img.naturalHeight}`;
chromium-84.0.4147.105/chrome/browser/chromeos/web_applications/media_app_integration_browsertest.cc-133-      })();
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/test/test_arc_session_manager.cc-49-  // as the caller doesn't explicitly call ArcServiceLauncher::Initialize()
chromium-84.0.4147.105/chrome/browser/chromeos/arc/test/test_arc_session_manager.cc:50:  // after recreating ASM with ArcServiceLauncher::ResetForTesting().
chromium-84.0.4147.105/chrome/browser/chromeos/arc/test/test_arc_session_manager.cc-51-  base::FilePath source_dir, dest_dir;
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-246-            prop[0]->get_bdname());
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:247:  EXPECT_TRUE(prop[1]->is_bdaddr());
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-248-  EXPECT_EQ(std::string(bluez::FakeBluetoothDeviceClient::kLowEnergyAddress),
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:249:            prop[1]->get_bdaddr()->To<std::string>());
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-250-  EXPECT_TRUE(prop[2]->is_uuids());
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-287-      fake_bluetooth_instance_->le_device_found_data().back();
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:288:  const mojom::BluetoothAddressPtr& addr = le_device_found_data->addr();
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-289-  const std::vector<uint8_t>& eir = le_device_found_data->eir();
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-310-      fake_bluetooth_instance_->le_device_found_data().back();
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:311:  const mojom::BluetoothAddressPtr& addr = le_device_found_data->addr();
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-312-  const std::vector<mojom::BluetoothAdvertisingDataPtr>& adv_data =
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-349-  EXPECT_EQ(std::string(bluez::FakeBluetoothDeviceClient::kLowEnergyAddress),
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:350:            connected_data->addr()->To<std::string>());
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-351-  EXPECT_EQ(device::BLUETOOTH_TRANSPORT_LE, connected_data->device_type());
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-359-  EXPECT_EQ(std::string(bluez::FakeBluetoothDeviceClient::kLowEnergyAddress),
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:360:            le_connected_data->addr()->To<std::string>());
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-361-  EXPECT_EQ(true, le_connected_data->connected());
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-371-  EXPECT_EQ(std::string(bluez::FakeBluetoothDeviceClient::kLowEnergyAddress),
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:372:            disconnected_data->addr()->To<std::string>());
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-373-  EXPECT_EQ(device::BLUETOOTH_TRANSPORT_LE, disconnected_data->device_type());
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-381-  EXPECT_EQ(std::string(bluez::FakeBluetoothDeviceClient::kLowEnergyAddress),
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:382:            le_disconnected_data->addr()->To<std::string>());
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-383-  EXPECT_EQ(false, le_disconnected_data->connected());
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-401-  EXPECT_EQ(std::string(bluez::FakeBluetoothDeviceClient::kLowEnergyAddress),
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:402:            connected_data->addr()->To<std::string>());
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-403-  EXPECT_EQ(device::BLUETOOTH_TRANSPORT_LE, connected_data->device_type());
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-418-  EXPECT_EQ(std::string(bluez::FakeBluetoothDeviceClient::kLowEnergyAddress),
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:419:            disconnected_data->addr()->To<std::string>());
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-420-  EXPECT_EQ(device::BLUETOOTH_TRANSPORT_LE, disconnected_data->device_type());
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-436-  const mojom::BluetoothAddressPtr& addr =
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc:437:      fake_bluetooth_instance_->gatt_db_result().back()->remote_addr();
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge_unittest.cc-438-  EXPECT_EQ(std::string(bluez::FakeBluetoothDeviceClient::kLowEnergyAddress),
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc-2577-    mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc:2578:    btp->set_bdaddr(mojom::BluetoothAddress::From(device->GetAddress()));
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc-2579-    properties.push_back(std::move(btp));
##############################################
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc-2637-    mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc:2638:    btp->set_bdaddr(
chromium-84.0.4147.105/chrome/browser/chromeos/arc/bluetooth/arc_bluetooth_bridge.cc-2639-        mojom::BluetoothAddress::From(bluetooth_adapter_->GetAddress()));
##############################################
chromium-84.0.4147.105/chrome/browser/apps/platform_apps/api/browser/browser_apitest.cc-53-           const url =
chromium-84.0.4147.105/chrome/browser/apps/platform_apps/api/browser/browser_apitest.cc:54:               `http://example.com:${config.testServer.port}/simple.html`;
chromium-84.0.4147.105/chrome/browser/apps/platform_apps/api/browser/browser_apitest.cc-55-           chrome.test.runTests([
##############################################
chromium-84.0.4147.105/chrome/browser/vr/testapp/vr_test_context.cc-479-  glTexImage2D(GL_TEXTURE_2D, 0, format, pixmap.width(), pixmap.height(), 0,
chromium-84.0.4147.105/chrome/browser/vr/testapp/vr_test_context.cc:480:               format, GL_UNSIGNED_BYTE, pixmap.addr());
chromium-84.0.4147.105/chrome/browser/vr/testapp/vr_test_context.cc-481-
##############################################
chromium-84.0.4147.105/chrome/browser/vr/test/ui_pixel_test.cc-108-  glReadPixels(0, 0, frame_buffer_size_.width(), frame_buffer_size_.height(),
chromium-84.0.4147.105/chrome/browser/vr/test/ui_pixel_test.cc:109:               GL_RGBA, GL_UNSIGNED_BYTE, pixmap.writable_addr());
chromium-84.0.4147.105/chrome/browser/vr/test/ui_pixel_test.cc-110-  if (glGetError() != GL_NO_ERROR) {
##############################################
chromium-84.0.4147.105/chrome/browser/idle/idle_browsertest.cc-85-          idleDetector.addEventListener('change', e => {
chromium-84.0.4147.105/chrome/browser/idle/idle_browsertest.cc:86:            states.push(`${idleDetector.userState}-${idleDetector.screenState}`)
chromium-84.0.4147.105/chrome/browser/idle/idle_browsertest.cc-87-            if (states.length >= 3) {
##############################################
chromium-84.0.4147.105/chrome/browser/extensions/api/declarative_content/declarative_content_apitest.cc-500-  std::string result = ExecuteScriptInBackgroundPage(
chromium-84.0.4147.105/chrome/browser/extensions/api/declarative_content/declarative_content_apitest.cc:501:      extension->id(), base::StringPrintf(kScript, GetParam()));
chromium-84.0.4147.105/chrome/browser/extensions/api/declarative_content/declarative_content_apitest.cc-502-
##############################################
chromium-84.0.4147.105/chrome/browser/extensions/api/declarative_content/declarative_content_apitest.cc-565-      "}\n";
chromium-84.0.4147.105/chrome/browser/extensions/api/declarative_content/declarative_content_apitest.cc:566:  ext_dir_.WriteManifest(base::StringPrintf(manifest, GetParam()));
chromium-84.0.4147.105/chrome/browser/extensions/api/declarative_content/declarative_content_apitest.cc-567-  const Extension* extension = LoadExtension(ext_dir_.UnpackedPath());
##############################################
chromium-84.0.4147.105/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc-480-      chrome.declarativeNetRequest.getMatchedRules({%s}, (rules) => {
chromium-84.0.4147.105/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc:481:        // |ruleAndTabIds| is a list of `${ruleId},${tabId}`
chromium-84.0.4147.105/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_browsertest.cc-482-        var ruleAndTabIds = rules.rulesMatchedInfo.map(rule => {
##############################################
chromium-84.0.4147.105/chrome/browser/extensions/wasm_app_browsertest.cc-9-
chromium-84.0.4147.105/chrome/browser/extensions/wasm_app_browsertest.cc:10:// Test ensures that Wasm can run in Chrome Apps.
chromium-84.0.4147.105/chrome/browser/extensions/wasm_app_browsertest.cc-11-namespace {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/welcome/welcome_app.js-96-      // steps. In that case, replace this page with NTP.
chromium-84.0.4147.105/chrome/browser/resources/welcome/welcome_app.js:97:      if (!this.$$(`#step-${step}`)) {
chromium-84.0.4147.105/chrome/browser/resources/welcome/welcome_app.js-98-        WelcomeBrowserProxyImpl.getInstance().goToNewTabPage(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/welcome/welcome_app.js-103-        this.$.viewManager.switchView(
chromium-84.0.4147.105/chrome/browser/resources/welcome/welcome_app.js:104:            `step-${step}`, 'fade-in', 'no-animation');
chromium-84.0.4147.105/chrome/browser/resources/welcome/welcome_app.js-105-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/welcome/ntp_background/nux_ntp_background.js-144-              this.$.backgroundPreview.style.backgroundImage =
chromium-84.0.4147.105/chrome/browser/resources/welcome/ntp_background/nux_ntp_background.js:145:                  `url(${imageUrl})`;
chromium-84.0.4147.105/chrome/browser/resources/welcome/ntp_background/nux_ntp_background.js-146-            }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-39-  switch (path) {
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js:40:    case `/${Routes.NEW_USER}`:
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-41-      history.replaceState({route: Routes.NEW_USER, step: 1}, '', path);
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-42-      break;
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js:43:    case `/${Routes.RETURNING_USER}`:
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-44-      history.replaceState({route: Routes.RETURNING_USER, step: 1}, '', path);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-74-    // means that element is for the current route.
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js:75:    if (observer.id === `step-${step}`) {
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-76-      currentRouteElement = observer;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-105-      },
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js:106:      '', `/${history.state.route}`);
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-107-  notifyObservers();
##############################################
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-154-    // means that element is for the current route.
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js:155:    if (this.id === `step-${step}`) {
chromium-84.0.4147.105/chrome/browser/resources/welcome/navigation_behavior.js-156-      currentRouteElement = this;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/print_preview_utils.js-84-      'chrome://resources/images/arrow_down.svg';
chromium-84.0.4147.105/chrome/browser/resources/print_preview/print_preview_utils.js:85:  return `url("data:image/svg+xml;charset=utf-8,${uri}"),` +
chromium-84.0.4147.105/chrome/browser/resources/print_preview/print_preview_utils.js:86:      `url("${arrowDownPath}")`;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/print_preview_utils.js-87-}
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/destination.js-240-export function createDestinationKey(id, origin, account) {
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/destination.js:241:  return `${id}/${origin}/${account}`;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/destination.js-242-}
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/destination.js-931-  get key() {
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/destination.js:932:    return `${this.id_}/${this.origin_}/${this.account_}`;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/destination.js-933-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/destination.js-954-export const PDF_DESTINATION_KEY =
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/destination.js:955:    `${Destination.GooglePromotedId.SAVE_AS_PDF}/${DestinationOrigin.LOCAL}/`;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-563-    const oldValue = this.getSettingValue(settingName);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js:564:    this.set(`settings.${settingPath}`, value);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-565-    const newValue = this.getSettingValue(settingName);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-586-    const fireStickyEvent = !noSticky && setting.value !== value && setting.key;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js:587:    this.setSettingPath_(`${settingName}.value`, value);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-588-    if (!noSticky) {
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js:589:      this.setSettingPath_(`${settingName}.setFromUi`, true);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-590-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-609-    if (newValue) {
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js:610:      this.splice(`settings.${settingName}.value`, start, end, newValue);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-611-    } else {
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js:612:      this.splice(`settings.${settingName}.value`, start, end);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-613-    }
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-614-    if (!noSticky) {
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js:615:      this.setSettingPath_(`${settingName}.setFromUi`, true);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-616-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-635-    const shouldFireEvent = valid !== setting.valid;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js:636:    this.set(`settings.${settingName}.valid`, valid);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-637-    if (shouldFireEvent) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-1166-          if (policy.managed) {
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js:1167:            this.set(`settings.${settingName}.setByPolicy`, true);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/data/model.js-1168-          }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/print_preview_search_box.js-66-    this.searchQuery =
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/print_preview_search_box.js:67:        safeQuery.length > 0 ? new RegExp(`(${safeQuery})`, 'ig') : null;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/print_preview_search_box.js-68-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/destination_list.js-122-    this.$.list.style.height = listHeight > DESTINATION_ITEM_HEIGHT ?
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/destination_list.js:123:        `${listHeight}px` :
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/destination_list.js:124:        `${DESTINATION_ITEM_HEIGHT}px`;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/destination_list.js-125-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/app.js-587-          'Google Cloud Print Error: ' +
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/app.js:588:          `(${event.detail.errorCode}) ${event.detail.message}`);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/app.js-589-    } else {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/app.js-591-          'Google Cloud Print Error: ' +
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/app.js:592:          `HTTP status ${event.detail.status}`);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/app.js-593-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/button_strip.js-152-    const singularOrPlural = this.maxSheets > 1 ? 'Plural' : 'Singular';
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/button_strip.js:153:    const label = loadTimeData.getString(`sheetsLimitLabel${singularOrPlural}`);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/button_strip.js-154-    return loadTimeData.getStringF(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/pages_settings.js-426-
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/pages_settings.js:427:    return this.pageCount === 1 ? '1' : `1-${this.pageCount}`;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/pages_settings.js-428-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/header.js-103-    const label = loadTimeData.getString(
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/header.js:104:        `printPreview${pageOrSheets}Label${singularOrPlural}`);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/header.js-105-    return loadTimeData.getStringF(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/margin_control.js-206-    const thousands = this.measurementSystem.thousandsDelimiter;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/margin_control.js:207:    const whole = `(?:0|[1-9]\\d*|[1-9]\\d{0,2}(?:[${thousands}]\\d{3})*)`;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/margin_control.js:208:    const fractional = `(?:[${decimal}]\\d*)`;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/margin_control.js-209-    const validationRegex =
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/margin_control.js:210:        new RegExp(`^-?(?:${whole}${fractional}?|${fractional})$`);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/margin_control.js-211-    if (validationRegex.test(value)) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/margin_control.js-213-      // the dot symbol in order to use parseFloat() properly.
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/margin_control.js:214:      value = value.replace(new RegExp(`\\${thousands}`, 'g'), '')
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/margin_control.js-215-                  .replace(decimal, '.');
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/plugin_proxy.js-93-  getPreviewUrl_(previewUid, index) {
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/plugin_proxy.js:94:    return `chrome://print/${previewUid}/${index}/print.pdf`;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/plugin_proxy.js-95-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/other_options_settings.js-97-    const setting = this.getSetting(this.options_[index].name);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/other_options_settings.js:98:    this.set(`options_.${index}.available`, setting.available);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/other_options_settings.js:99:    this.set(`options_.${index}.value`, setting.value);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/other_options_settings.js:100:    this.set(`options_.${index}.managed`, setting.setByPolicy);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/other_options_settings.js-101-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/other_options_settings.js-144-    const name = e.model.item.name;
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/other_options_settings.js:145:    this.updateSettingWithTimeout_(name, this.$$(`#${name}`).checked);
chromium-84.0.4147.105/chrome/browser/resources/print_preview/ui/other_options_settings.js-146-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/snippets_internals/snippets_internals.js-130-
chromium-84.0.4147.105/chrome/browser/resources/snippets_internals/snippets_internals.js:131:    const emptyNode = $(`${domId}-empty`);
chromium-84.0.4147.105/chrome/browser/resources/snippets_internals/snippets_internals.js-132-    if (emptyNode) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/snippets_internals/snippets_internals.js-135-
chromium-84.0.4147.105/chrome/browser/resources/snippets_internals/snippets_internals.js:136:    const clearNode = $(`${domId}-clear`);
chromium-84.0.4147.105/chrome/browser/resources/snippets_internals/snippets_internals.js-137-    if (clearNode) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/about_sys/about_sys.js-116-  a.className = 'stat-name-link';
chromium-84.0.4147.105/chrome/browser/resources/about_sys/about_sys.js:117:  a.href = `#${log.statName}`;
chromium-84.0.4147.105/chrome/browser/resources/about_sys/about_sys.js-118-  a.name = a.text = log.statName;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab_list.js-324-    return /** @type {?TabElement} */ (
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab_list.js:325:        this.$(`tabstrip-tab[data-tab-id="${tabId}"]`));
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab_list.js-326-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab_list.js-334-    return /** @type {?TabGroupElement} */ (
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab_list.js:335:        this.$(`tabstrip-tab-group[data-group-id="${groupId}"]`));
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab_list.js-336-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab.js-149-    } else if (tab.favIconUrl) {
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab.js:150:      this.faviconEl_.style.backgroundImage = `url(${tab.favIconUrl})`;
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab.js-151-    } else {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab_swiper.js-116-            [paddingInlineEnd]: 0,
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab_swiper.js:117:            transform: `translateY(-${SWIPE_FINISH_THRESHOLD_PX}px)`
chromium-84.0.4147.105/chrome/browser/resources/tab_strip/tab_swiper.js-118-          },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/offline_pages/offline_internals.js-224-  const checkboxes = document.querySelectorAll(
chromium-84.0.4147.105/chrome/browser/resources/offline_pages/offline_internals.js:225:      `input[type="checkbox"][name="${checkboxesName}"]:checked`);
chromium-84.0.4147.105/chrome/browser/resources/offline_pages/offline_internals.js-226-  return Array.from(checkboxes).map(c => c.value);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/manager.js-555-    document.title = toPage === Page.DETAILS ?
chromium-84.0.4147.105/chrome/browser/resources/extensions/manager.js:556:        `${loadTimeData.getString('title')} - ${this.detailViewItem_.name}` :
chromium-84.0.4147.105/chrome/browser/resources/extensions/manager.js-557-        loadTimeData.getString('title');
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-53-  shouldIgnoreUpdate(extensionId, eventType) {
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js:54:    return this.eventsToIgnoreOnce_.delete(`${extensionId}_${eventType}`);
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-55-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-61-  ignoreNextEvent(extensionId, eventType) {
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js:62:    this.eventsToIgnoreOnce_.add(`${extensionId}_${eventType}`);
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-63-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-409-        extensionId: extensionId,
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js:410:        apiCall: `%${searchTerm}%`,
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-411-      },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-414-        extensionId: extensionId,
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js:415:        pageUrl: `%${searchTerm}%`,
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-416-      },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-419-        extensionId: extensionId,
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js:420:        argUrl: `%${searchTerm}%`
chromium-84.0.4147.105/chrome/browser/resources/extensions/service.js-421-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/item_list.js-79-  getDetailsButton(id) {
chromium-84.0.4147.105/chrome/browser/resources/extensions/item_list.js:80:    const item = this.$$(`#${id}`);
chromium-84.0.4147.105/chrome/browser/resources/extensions/item_list.js-81-    return item && item.getDetailsButton();
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/item_list.js-88-  getErrorsButton(id) {
chromium-84.0.4147.105/chrome/browser/resources/extensions/item_list.js:89:    const item = this.$$(`#${id}`);
chromium-84.0.4147.105/chrome/browser/resources/extensions/item_list.js-90-    return item && item.getErrorsButton();
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.js-104-    const ms = activityDate.getMilliseconds().toString().padStart(3, '0');
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.js:105:    return `${timeString}.${ms}`;
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.js-106-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.js-148-          arg: JSON.stringify(arg).replace(
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.js:149:              ARG_URL_PLACEHOLDER_REGEX, `"${this.data.argUrl}"`),
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_stream_item.js-150-          index: i + 1,
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_history.js-113-      [apiCall] :
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_history.js:114:      Object.keys(webRequest).map(field => `${apiCall} (${field})`);
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_history.js-115-}
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_history.js-311-      if (item.countsByUrl.size > 0) {
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_history.js:312:        this.set(`activityData_.${index}.expanded`, expanded);
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_history.js-313-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_history.js-329-  onExportClick_() {
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_history.js:330:    const fileName = `exported_activity_log_${this.extensionId}.json`;
chromium-84.0.4147.105/chrome/browser/resources/extensions/activity_log/activity_log_history.js-331-    this.delegate.downloadActivities(this.rawActivities_, fileName);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/extensions/options_dialog.js-76-
chromium-84.0.4147.105/chrome/browser/resources/extensions/options_dialog.js:77:    this.$.dialog.style.setProperty('--dialog-height', `${effectiveHeight}px`);
chromium-84.0.4147.105/chrome/browser/resources/extensions/options_dialog.js:78:    this.$.dialog.style.setProperty('--dialog-width', `${effectiveWidth}px`);
chromium-84.0.4147.105/chrome/browser/resources/extensions/options_dialog.js-79-    this.$.dialog.style.setProperty('--dialog-opacity', '1');
##############################################
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-47-                    .style('opacity', 0)
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:48:                    .style('left', `${this.x}px`)
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:49:                    .style('top', `${this.y}px`);
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-50-    this.div_.append('table').append('tbody');
##############################################
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-71-    this.y = node.y - 28;
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:72:    this.div_.style('left', `${this.x}px`).style('top', `${this.y}px`);
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-73-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-111-      for (const [key, value] of Object.entries(object)) {
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:112:        const fullPath = path ? `${path}.${key}` : key;
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-113-        // Recurse on non-null objects.
##############################################
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-176-        if (strValue.length > 50) {
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:177:          strValue = `${strValue.substring(0, 47)}...`;
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-178-        }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-207-    this.y = d3.event.y;
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:208:    this.div_.style('left', `${this.x}px`).style('top', `${this.y}px`);
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-209-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-384-  get title() {
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:385:    return `PID: ${this.process.pid.pid}`;
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-386-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-926-    const nodes = this.nodeGroup_.selectAll('g');
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:927:    nodes.attr('transform', d => `translate(${d.x},${d.y})`);
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-928-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-1040-      const group = groups.enter().append('g').attr(
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:1041:          'transform', d => `translate(0,${d[2]})`);
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-1042-      group.append('line')
##############################################
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-1068-
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js:1069:    groups.attr('transform', d => `translate(0,${d[2]})`);
chromium-84.0.4147.105/chrome/browser/resources/discards/graph_doc.js-1070-    groups.selectAll('line').attr('x2', graphWidth - 10);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/persistent_data.js-275-    mr.PersistentDataManager.logger_.error(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/persistent_data.js:276:        `Error while saving data for ${obj.getStorageKey()}: ${e.message}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/persistent_data.js-277-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/persistent_data.js-308-    throw Error(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/persistent_data.js:309:        `Setting the value of '${key}' would exceed the quota, ` +
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/persistent_data.js-310-        'according to accounting.');
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/persistent_data.js-316-    throw Error(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/persistent_data.js:317:        `Setting the value of '${key}' would exceed the quota, ` +
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/persistent_data.js-318-        'according to the browser.');
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-97-    if (!bundle) {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js:98:      resolver.reject(new Error(`No corresponding bundle for ${moduleId}`));
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-99-      return;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-109-
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js:110:      mr.Module.logger_.info(`Loading bundle ${bundle} for module ${moduleId}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-111-      bundlePromise = mr.Module.doLoadBundle_(bundle);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-141-        () => {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js:142:          mr.Module.logger_.info(`Bundle ${bundle} loaded`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-143-        },
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-144-        e => {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js:145:          mr.Module.logger_.error(`Failed to load bundle ${bundle}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-146-          throw e;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-154-    script.onerror = () =>
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js:155:        resolver.reject(new Error(`Failed to load bundle ${bundle}`));
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module.js-156-    document.head.appendChild(script);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_service.js-318-    this.logger.error(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_service.js:319:        `Failed to start mirroring: ${error.message}` +
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_service.js:320:        `,  reason = ${error.reason}: ${error.stack}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_service.js-321-    this.recordMirrorStartFailure(error.reason);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/stream_capture/mirror_media_stream.js-237-                reject(new mr.mirror.Error(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/stream_capture/mirror_media_stream.js:238:                    `${error.name} ${error.constraintName}: ${error.message}`,
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/stream_capture/mirror_media_stream.js-239-                    errorReason));
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_settings.js-236-          throw Error(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_settings.js:237:              `localStorage[${mr.mirror.Settings.OverridesKey}] ` +
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_settings.js:238:              `does not parse as an Object: ${overrides}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_settings.js-239-        }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js-74-    }
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js:75:    Assertions.assert(type, `Unexpected mediaSource ${source}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js-76-    return new Activity(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js-103-      case Type.MIRROR_TAB:
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js:104:        return this.origin_ ? `Casting tab (${this.origin_})` : 'Casting tab';
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js-105-      case Type.MIRROR_DESKTOP:
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js-109-      case Type.MEDIA_REMOTING:
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js:110:        return this.origin_ ? `Casting media (${this.origin_})` :
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js-111-                              `Casting media`;
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js-112-      case Type.PRESENTATION:
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js:113:        return `Casting ${this.origin_ || 'site'}`;
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/mirror_services/mirror_activity.js-114-      default:
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module_test.js-86-      expect(mr.Module.getBundle_(mr.ModuleId[key]))
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module_test.js:87:          .not.toBeNull(`${mr.ModuleId[key]} does not map to a bundle`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/module_test.js-88-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/analytics.js-290-    if (count < 0) {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/analytics.js:291:      throw new Error(`Invalid count for ${name}: ${count}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/analytics.js-292-    } else if (count > 100) {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/analytics.js-293-      mr.Analytics.logger_.warning(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/analytics.js:294:          `Small count for ${name} exceeded limits: ${count}`, Error());
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/analytics.js-295-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/analytics.js-298-    mr.Analytics.logger_.warning(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/analytics.js:299:        `Failed to record small count ${name} (${count})`, e);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/analytics.js-300-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/mojo_utils.js-18-    return `${origin.scheme}:\/\/${origin.host}
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/mojo_utils.js:19:       ${origin.port ? `:${origin.port}` : ''}/`;
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/mojo_utils.js-20-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/mock_clock.js-257-    if (millis > mr.MockClock.MAX_INT_) {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/mock_clock.js:258:      throw Error(`Bad timeout value: ${millis}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/mock_clock.js-259-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/assertions.js-27-  } else {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/assertions.js:28:    return Error(opt_message || `Expected an Error value, got ${err}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/utils/assertions.js-29-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/internal_message_listener.js-35-    return internalMessage.type == mr.InternalMessageType.RETRIEVE_LOG_DATA &&
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/internal_message_listener.js:36:        sender.origin == `chrome-extension://${chrome.runtime.id}` &&
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/internal_message_listener.js:37:        sender.url == `${sender.origin}/feedback.html`;
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/internal_message_listener.js-38-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/mr_event_senders/route_message_sender.js-150-          () => `Message queue length is excessively large ` +
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/mr_event_senders/route_message_sender.js:151:              `(${queue.length}) for route ${routeId}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/mr_event_senders/route_message_sender.js-152-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-553-    if (!provider) {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js:554:      return Promise.reject(Error(`Invalid route ID ${routeId}`));
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-555-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-566-    if (!provider) {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js:567:      return Promise.reject(Error(`Invalid route ID ${routeId}`));
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-568-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-945-            provider.getMirrorServiceName(route.sinkId)));
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js:946:    this.logger_.info(`Starting mirroring using service: ${mirrorServiceName}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-947-    this.routeIdToMirrorServiceName_.set(route.id, mirrorServiceName);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-1066-      this.logger_.info(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js:1067:          `provideSinks: Provider not found for providerName ${providerName}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-1068-      return;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-1097-      const errorMessage =
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js:1098:          `createMediaRouteController: Provider not found for ${routeId}`;
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-1099-      this.logger_.error(errorMessage);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-1105-        .catch(e => {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js:1106:          this.logger_.error(`createMediaRouteController failed: ${e.message}`);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/manager/provider_manager.js-1107-          cleanUpOnError();
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/providers/common/xhr_utils.js-53-    action, method, url, status, statusText) {
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/providers/common/xhr_utils.js:54:  return `[${action}]: ${method} ${url} => ${status} (${statusText})`;
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/providers/common/xhr_utils.js-55-};
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/providers/test/test_provider.js-308-    return Promise.reject(
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/providers/test/test_provider.js:309:        Error(`Route ${routeId} does not support sending binary data.`));
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/providers/test/test_provider.js-310-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/log_manager.js-83-      }
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/log_manager.js:84:      browserLogger.error(`Error: ${message} (${url} @ Line: ${line})`, error);
chromium-84.0.4147.105/chrome/browser/resources/media_router/extension/src/log_manager.js-85-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/pdf/elements/viewer-page-selector.js-51-    const numDigits = this.docLength.toString().length;
chromium-84.0.4147.105/chrome/browser/resources/pdf/elements/viewer-page-selector.js:52:    this.style.setProperty('--page-length-digits', `${numDigits}`);
chromium-84.0.4147.105/chrome/browser/resources/pdf/elements/viewer-page-selector.js-53-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/pdf/controller.js-507-        bufView.length <= MAX_FILE_SIZE,
chromium-84.0.4147.105/chrome/browser/resources/pdf/controller.js:508:        `File too large to be saved: ${bufView.length} bytes.`);
chromium-84.0.4147.105/chrome/browser/resources/pdf/controller.js-509-    assert(bufView.length >= MIN_FILE_SIZE);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/history/browser_service.js-75-      if (action.indexOf('_') === -1) {
chromium-84.0.4147.105/chrome/browser/resources/history/browser_service.js:76:        action = `HistoryPage_${action}`;
chromium-84.0.4147.105/chrome/browser/resources/history/browser_service.js-77-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/history/history_list.js-249-  changeSelection_(index, selected) {
chromium-84.0.4147.105/chrome/browser/resources/history/history_list.js:250:    this.set(`historyData_.${index}.selected`, selected);
chromium-84.0.4147.105/chrome/browser/resources/history/history_list.js-251-    if (selected) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/history/history_list.js-268-    const toBeRemoved = Array.from(this.selectedItems.values())
chromium-84.0.4147.105/chrome/browser/resources/history/history_list.js:269:                            .map((index) => this.get(`historyData_.${index}`));
chromium-84.0.4147.105/chrome/browser/resources/history/history_list.js-270-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/history/history_list.js-353-      if (this.historyData_[i].url === url) {
chromium-84.0.4147.105/chrome/browser/resources/history/history_list.js:354:        this.set(`historyData_.${i}.starred`, false);
chromium-84.0.4147.105/chrome/browser/resources/history/history_list.js-355-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/bookmarks/command_manager.js-849-    return new Promise(resolve => {
chromium-84.0.4147.105/chrome/browser/resources/bookmarks/command_manager.js:850:      chrome.bookmarkManagerPrivate.canPaste(`${targetId}`, result => {
chromium-84.0.4147.105/chrome/browser/resources/bookmarks/command_manager.js-851-        this.canPaste_ = result;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media/media_history.js-53-      const {scheme, host, port} = data;
chromium-84.0.4147.105/chrome/browser/resources/media/media_history.js:54:      td.textContent = new URL(`${scheme}://${host}:${port}`).origin;
chromium-84.0.4147.105/chrome/browser/resources/media/media_history.js-55-    } else if (key === 'lastUpdatedTime') {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/media/media_feeds.js-299-        const {scheme, host, port} = origin;
chromium-84.0.4147.105/chrome/browser/resources/media/media_feeds.js:300:        origins.push(new URL(`${scheme}://${host}:${port}`).origin);
chromium-84.0.4147.105/chrome/browser/resources/media/media_feeds.js-301-      });
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js-87-      this.focusConfig.set(item.route.path, () => this.async(() => {
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js:88:        focusWithoutInk(assert(this.$$(`#${item.id}`)));
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js-89-      }));
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js-173-  updateDefaultValueLabel_(category, setting) {
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js:174:    const element = this.$$(`#${category}`);
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js-175-    if (!element) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js-182-    this.set(
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js:183:        `categoryList.${index}.subLabel`,
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js-184-        defaultSettingLabel(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js-198-    const index = this.$$('dom-repeat').indexForElement(this.$$('#cookies'));
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js:199:    this.set(`categoryList.${index}.subLabel`, label);
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/site_settings_list.js-200-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js-202-    const suffix = sentenceStart ? 'SentenceStart' : '';
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js:203:    const msgId = `recentPermissionChange${change}${suffix}`;
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js-204-    return this.i18n(msgId, this.getI18nContentTypeString_(type));
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js-251-    const suffix = incognito ? 'Incognito' : '';
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js:252:    const i18nStringID = `recentPermissions${itemsPart}${suffix}`;
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js-253-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js-360-      focusWithoutInk(assert(/** @type {{getFocusableElement: Function}} */ (
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js:361:                                 this.$$(`#incognitoInfoIcon_${index}`))
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js-362-                                 .getFocusableElement()));
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js-363-    } else {
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js:364:      focusWithoutInk(assert(this.$$(`#siteEntryButton_${index}`)));
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings_page/recent_site_permissions.js-365-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/privacy_page/privacy_page.js-262-            map.set(
chromium-84.0.4147.105/chrome/browser/resources/settings/privacy_page/privacy_page.js:263:                `${routes.COOKIES.path}_${routes.PRIVACY.path}`,
chromium-84.0.4147.105/chrome/browser/resources/settings/privacy_page/privacy_page.js-264-                '#cookiesLinkRow');
chromium-84.0.4147.105/chrome/browser/resources/settings/privacy_page/privacy_page.js-265-            map.set(
chromium-84.0.4147.105/chrome/browser/resources/settings/privacy_page/privacy_page.js:266:                `${routes.COOKIES.path}_${routes.BASIC.path}`,
chromium-84.0.4147.105/chrome/browser/resources/settings/privacy_page/privacy_page.js-267-                '#cookiesLinkRow');
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/privacy_page/security_keys_credential_management_dialog.js-212-    }
chromium-84.0.4147.105/chrome/browser/resources/settings/privacy_page/security_keys_credential_management_dialog.js:213:    return `${credential.userDisplayName} (${credential.userName})`;
chromium-84.0.4147.105/chrome/browser/resources/settings/privacy_page/security_keys_credential_management_dialog.js-214-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js-203-      const oncType = OncMojo.getNetworkTypeString(this.detailType_);
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js:204:      const rowForDetailType = this.$$('network-summary').$$(`#${oncType}`);
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/internet_page/internet_page.js-205-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_disk_resize_dialog.js-129-            reason => {
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_disk_resize_dialog.js:130:              console.log(`Unable to get info: ${reason}`);
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_disk_resize_dialog.js-131-              this.displayState_ = DisplayState.ERROR;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_disk_resize_dialog.js-162-            (reason) => {
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_disk_resize_dialog.js:163:              console.log(`Unable to resize disk: ${reason}`);
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_disk_resize_dialog.js-164-              this.resizeState_ = ResizeState.ERROR;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_port_forwarding.js-119-      this.set(
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_port_forwarding.js:120:          `allPorts_.${i}.${'is_active'}`,
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_port_forwarding.js-121-          this.activePorts_.some(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_subpage.js-286-            reason => {
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_subpage.js:287:              console.log(`Unable to get info: ${reason}`);
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/crostini_page/crostini_subpage.js-288-            });
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_settings_search_box/os_search_result_row.js-20-   */
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_settings_search_box/os_search_result_row.js:21:  const IGNORED_CHARS_REGEX_STR = `[${IGNORED_CHARS.join('')}]`;
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_settings_search_box/os_search_result_row.js-22-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_settings_search_box/os_search_result_row.js-194-        const regExpStr =
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_settings_search_box/os_search_result_row.js:195:            queryToken.split('').join(`${IGNORED_CHARS_REGEX_STR}*`);
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_settings_search_box/os_search_result_row.js-196-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/localized_link/localized_link.js-62-        spanNode.textContent = node.textContent;
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/localized_link/localized_link.js:63:        spanNode.id = `id${index}`;
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/localized_link/localized_link.js-64-        ariaLabelledByIds.push(spanNode.id);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/localized_link/localized_link.js-71-      if (node.nodeType == Node.ELEMENT_NODE && node.nodeName == 'A') {
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/localized_link/localized_link.js:72:        node.id = `id${index}`;
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/localized_link/localized_link.js-73-        ariaLabelledByIds.push(node.id);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/night_light_slider.js-117-    return ['custom_start_time', 'custom_end_time']
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/night_light_slider.js:118:        .map(key => `prefs.ash.night_light.${key}.value`)
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/night_light_slider.js-119-        .every(path => this.get(path) != undefined);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js-33-          const dlcDescription = getRandomInt(2) ?
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js:34:              `fake description ${idx} `.repeat(getRandomInt(500)) :
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js-35-              '';
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js-36-          return {
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js:37:            id: `fake id ${idx}`,
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js:38:            name: `fake name ${idx}`,
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js-39-            description: dlcDescription,
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js-89-    onRemoveDlcClick_(e) {
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js:90:      const removeButton = this.shadowRoot.querySelector(`#${e.target.id}`);
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js-91-      removeButton.disabled = true;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js-98-            }
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js:99:            console.log(`Unable to purge DLC with ID ${e.target.id}`);
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/device_page/dlc_subpage.js-100-            removeButton.disabled = false;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/util.js-59-  function getAppIcon(app) {
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/util.js:60:    return `chrome://app-icon/${app.id}/64`;
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_apps_page/app_management_page/util.js-61-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_a11y_page/switch_access_subpage.js-74-  // Dividing by 1000 to convert milliseconds to seconds for the label.
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_a11y_page/switch_access_subpage.js:75:  return ticksInMs.map(x => ({label: `${x / 1000}`, value: x}));
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_a11y_page/switch_access_subpage.js-76-}
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js-48-    // dot.
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js:49:    const hostnameSuffix = `(\\.${hostnamePrefix})*`;
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js-50-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js-58-    const ipv6Suffix = '(([a-f\\d]){1,4}::)';
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js:59:    const ipv6Combined = `(${ipv6Full}|${ipv6Prefix}|${ipv6Suffix})`;
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js:60:    const ipv6WithPort = `(\\[${ipv6Combined}\\]${portNumber})`;
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js-61-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js-63-    const hostnameRegex =
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js:64:        new RegExp(`^${hostnamePrefix}${hostnameSuffix}${portNumber}$`, 'i');
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js-65-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js-67-    const ipv6AddressRegex =
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js:68:        new RegExp(`^(${ipv6Combined}|${ipv6WithPort})$`, 'i');
chromium-84.0.4147.105/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printer_dialog_util.js-69-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/search_settings.js-531-      if (sanitizedQuery.length > 0) {
chromium-84.0.4147.105/chrome/browser/resources/settings/search_settings.js:532:        regExp = new RegExp(`(${sanitizedQuery})`, 'ig');
chromium-84.0.4147.105/chrome/browser/resources/settings/search_settings.js-533-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/a11y_page/captions_subpage.js-270-
chromium-84.0.4147.105/chrome/browser/resources/settings/a11y_page/captions_subpage.js:271:    return `${+ size.slice(0, -1) / 100}%`;
chromium-84.0.4147.105/chrome/browser/resources/settings/a11y_page/captions_subpage.js-272-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/autofill_page/password_check.js-530-    const suffix = isDarkMode ? '_dark' : '';
chromium-84.0.4147.105/chrome/browser/resources/settings/autofill_page/password_check.js:531:    return `chrome://settings/images/password_check_${type}${suffix}.svg`;
chromium-84.0.4147.105/chrome/browser/resources/settings/autofill_page/password_check.js-532-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/router.js-55-      // If it does have a leading slash, it's just set as the new route's URL.
chromium-84.0.4147.105/chrome/browser/resources/settings/router.js:56:      const newUrl = path[0] == '/' ? path : `${this.path}/${path}`;
chromium-84.0.4147.105/chrome/browser/resources/settings/router.js-57-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_entry.js-452-      this.browserProxy.getFormattedBytes(originInfo.usage).then((string) => {
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_entry.js:453:        this.set(`originUsages_.${i}`, string);
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_entry.js-454-      });
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_entry.js-459-      this.getCookieNumString_(originInfo.numCookies).then((string) => {
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_entry.js:460:        this.set(`cookiesNum_.${i}`, string);
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_entry.js-461-      });
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_data.js-189-    const siteToSelect = this.sites[index].site.replace(/[.]/g, '\\.');
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_data.js:190:    const button = this.$$(`#siteItem_${siteToSelect}`).$$('.subpage-arrow');
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_data.js-191-    focusWithoutInk(assert(button));
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/all_sites.js-708-      const originPlaceHolder = {
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/all_sites.js:709:        origin: `http://${siteGroupToUpdate.etldPlus1}/`,
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/all_sites.js-710-        engagement: 0,
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_details_permission.js-169-    assertNotReached(
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_details_permission.js:170:        `No string for ${this.category}'s default of ${defaultSetting}`);
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_details_permission.js-171-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_details_permission.js-396-    }
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_details_permission.js:397:    assertNotReached(`No string for ${category} setting source '${source}'`);
chromium-84.0.4147.105/chrome/browser/resources/settings/site_settings/site_details_permission.js-398-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/appearance_page/appearance_fonts_page.js-35-function ticksWithLabels(ticks) {
chromium-84.0.4147.105/chrome/browser/resources/settings/appearance_page/appearance_fonts_page.js:36:  return ticks.map(x => ({label: `${x}`, value: x}));
chromium-84.0.4147.105/chrome/browser/resources/settings/appearance_page/appearance_fonts_page.js-37-}
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/controls/settings_dropdown_menu.js-87-      assert(this.pref);
chromium-84.0.4147.105/chrome/browser/resources/settings/controls/settings_dropdown_menu.js:88:      this.set(`pref.value.${this.prefKey}`, selected);
chromium-84.0.4147.105/chrome/browser/resources/settings/controls/settings_dropdown_menu.js-89-    } else {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js-368-      this.set(
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js:369:          `languages.enabled.${i}.spellCheckEnabled`,
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js-370-          (isUser && !isBlacklisted) || isForced);
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js:371:      this.set(`languages.enabled.${i}.isManaged`, isForced || isBlacklisted);
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js-372-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js-632-        const previousStatus = languageState.downloadDictionaryStatus;
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js:633:        const keyPrefix = `languages.${collectionName}.${index}`;
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js:634:        this.set(`${keyPrefix}.downloadDictionaryStatus`, status);
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js-635-
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js:636:        const failureCountKey = `${keyPrefix}.downloadDictionaryFailureCount`;
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages.js-637-        if (status.downloadFailed &&
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages_page.js-587-    for (let i = 0; i < this.spellCheckLanguages_.length; i++) {
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages_page.js:588:      this.notifyPath(`spellCheckLanguages_.${i}.isManaged`);
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages_page.js:589:      this.notifyPath(`spellCheckLanguages_.${i}.spellCheckEnabled`);
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages_page.js-590-      this.notifyPath(
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages_page.js:591:          `spellCheckLanguages_.${i}.downloadDictionaryFailureCount`);
chromium-84.0.4147.105/chrome/browser/resources/settings/languages_page/languages_page.js-592-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/people_page/import_data_dialog.js-100-  getProfileDisplayName_(name, profileName) {
chromium-84.0.4147.105/chrome/browser/resources/settings/people_page/import_data_dialog.js:101:    return profileName ? `${name} - ${profileName}` : name;
chromium-84.0.4147.105/chrome/browser/resources/settings/people_page/import_data_dialog.js-102-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js-430-      default:
chromium-84.0.4147.105/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js:431:        assert(false, `Unknown idle reason: ${idleReason}`);
chromium-84.0.4147.105/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js-432-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/main_page_behavior.js-214-      /* #ignore */ Polymer.importHref(
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/main_page_behavior.js:215:          /* #ignore */ `${lazyLoadPathPrefix}/lazy_load.html`, () => {});
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/main_page_behavior.js-216-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/main_page_behavior.js-406-      return /** @type {?SettingsSectionElement} */ (
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/main_page_behavior.js:407:          this.$$(`settings-section[section="${section}"]`));
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/main_page_behavior.js-408-    },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/settings_animated_pages.js-87-    const currentRoute = settings.Router.getInstance().getCurrentRoute();
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/settings_animated_pages.js:88:    const fromToKey = `${this.previousRoute_.path}_${currentRoute.path}`;
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/settings_animated_pages.js-89-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/settings_animated_pages.js-171-    const routePath = settings.Router.getInstance().getCurrentRoute().path;
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/settings_animated_pages.js:172:    const domIf = this.querySelector(`dom-if[route-path='${routePath}']`);
chromium-84.0.4147.105/chrome/browser/resources/settings/settings_page/settings_animated_pages.js-173-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/browser_switch/internals/browser_switch_internals.js-147-  const ss = date.getSeconds().toString().padStart(2, '0');
chromium-84.0.4147.105/chrome/browser/resources/browser_switch/internals/browser_switch_internals.js:148:  return `${hh}:${mm}:${ss}`;
chromium-84.0.4147.105/chrome/browser/resources/browser_switch/internals/browser_switch_internals.js-149-}
##############################################
chromium-84.0.4147.105/chrome/browser/resources/management/management_ui.js-292-    window.location.href =
chromium-84.0.4147.105/chrome/browser/resources/management/management_ui.js:293:        `chrome://settings?search=${encodeURIComponent(query)}`;
chromium-84.0.4147.105/chrome/browser/resources/management/management_ui.js-294-  },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/downloads/manager.js-352-
chromium-84.0.4147.105/chrome/browser/resources/downloads/manager.js:353:    this.notifyPath(`items_.${index}`);
chromium-84.0.4147.105/chrome/browser/resources/downloads/manager.js-354-    this.async(() => {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/downloads/item.js-225-
chromium-84.0.4147.105/chrome/browser/resources/downloads/item.js:226:      const url = `chrome://extensions/?id=${this.data.byExtId}`;
chromium-84.0.4147.105/chrome/browser/resources/downloads/item.js-227-      const name = this.data.byExtName;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox.js-272-    const now = new Date();
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox.js:273:    const fileName = `omnibox_batch_${ExportDelegate.getTimeStamp(now)}.json`;
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox.js-274-    // If this data format changes, please roll schemaVersion.
##############################################
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox.js-333-    const fileName =
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox.js:334:        `omnibox_debug_export_${exportData.queryInputs.inputText}_${timeStamp}.json`;
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox.js-335-    ExportDelegate.download_(exportData, fileName);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_element.js-61-        (context || document).querySelector(query), Element,
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_element.js:62:        `Missing required element: ${query}`);
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_element.js-63-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js-632-  get text() {
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js:633:    return `${this.values_[0]}.${this.values_[1]}`;
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js-634-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js-878-    return this.value.reduce(
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js:879:        (prev, {key, value}) => `${prev}${key}: ${value}\n`, '');
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js-880-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js-889-    const obj64 = btoa(unescape(encodeURIComponent(text)));
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js:890:    return `data:application/json;base64,${obj64}`;
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js-891-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js-922-    } else {
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js:923:      this.icon_.src = `chrome://favicon/${destinationUrl}`;
chromium-84.0.4147.105/chrome/browser/resources/omnibox/omnibox_output.js-924-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/local_ntp.js-2046-      const rgba = convertToRGBAColor(assert(colors));
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/local_ntp.js:2047:      document.body.style.setProperty(`--${varName}`, rgba);
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/local_ntp.js-2048-    };
##############################################
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/local_ntp.js-2216-  element.style.webkitMaskImage = '';
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/local_ntp.js:2217:  element.style.backgroundImage = `url(${url})`;
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/local_ntp.js-2218-  element.style.backgroundColor = 'transparent';
##############################################
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/local_ntp.js-2225-function setWebkitMaskImageByUrl(element, url) {
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/local_ntp.js:2226:  element.style.webkitMaskImage = `url(${url})`;
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/local_ntp.js-2227-  element.style.backgroundImage = '';
##############################################
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/most_visited_single.js-847-function focusTileMenu(info) {
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/most_visited_single.js:848:  const tile = document.querySelector(`a.md-tile[data-rid="${info.rid}"]`);
chromium-84.0.4147.105/chrome/browser/resources/local_ntp/most_visited_single.js-849-  if (info.rid === -1 /* Add shortcut tile */) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-119-        const productId = toHex(device.productId).slice(2);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:120:        tab.textContent = `${vendorId}:${productId}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-121-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-194-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:195:    root.add(customTreeItem(`Class Code: ${device.classCode}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-196-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:197:    root.add(customTreeItem(`Subclass Code: ${device.subclassCode}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-198-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:199:    root.add(customTreeItem(`Protocol Code: ${device.protocolCode}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-200-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:201:    root.add(customTreeItem(`Port Number: ${device.portNumber}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-202-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:203:    root.add(customTreeItem(`Vendor Id: ${toHex(device.vendorId)}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-204-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:205:    root.add(customTreeItem(`Product Id: ${toHex(device.productId)}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-206-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-211-      root.add(customTreeItem(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:212:          `Manufacturer Name: ${decodeString16(device.manufacturerName)}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-213-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-216-      root.add(customTreeItem(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:217:          `Product Name: ${decodeString16(device.productName)}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-218-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-221-      root.add(customTreeItem(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:222:          `Serial Number: ${decodeString16(device.serialNumber)}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-223-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-226-      const urlItem = customTreeItem(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:227:          `WebUSB Landing Page: ${device.webusbLandingPage.url}`);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-228-      root.add(urlItem);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-236-    root.add(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:237:        customTreeItem(`Active Configuration: ${device.activeConfiguration}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-238-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-250-      const configurationItem =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:251:          customTreeItem(`Configuration ${configuration.configurationValue}`);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-252-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-272-      const interfaceItem =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:273:          customTreeItem(`Interface ${currentInterface.interfaceNumber}`);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-274-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-290-      const alternateItem =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:291:          customTreeItem(`Alternate ${alternate.alternateSetting}`);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-292-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:293:      alternateItem.add(customTreeItem(`Class Code: ${alternate.classCode}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-294-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-295-      alternateItem.add(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:296:          customTreeItem(`Subclass Code: ${alternate.subclassCode}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-297-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-298-      alternateItem.add(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:299:          customTreeItem(`Protocol Code: ${alternate.protocolCode}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-300-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-302-        alternateItem.add(customTreeItem(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:303:            `Interface Name: ${decodeString16(alternate.interfaceName)}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-304-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-350-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:351:      endpointItem.add(customTreeItem(`USB Transfer Type: ${usbTransferType}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-352-
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:353:      endpointItem.add(customTreeItem(`Packet Size: ${endpoint.packetSize}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-354-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-367-  function initialInspectorPanel(tabPanel, panelType, usbDevice, guid) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:368:    const button = queryRequiredElement(`.${panelType}-button`, tabPanel);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-369-    const displayElement =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:370:        queryRequiredElement(`.${panelType}-panel`, tabPanel);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-371-    const descriptorPanel =
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-421-  function toHex(num) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js:422:    return `0x${num.toString(16).padStart(4, '0').toUpperCase()}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/devices_page.js-423-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-426-        showError(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:427:            `Expected to find ${expectNumInterfaces} interface descriptors ` +
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:428:                `but only encountered ${indexInterface}.`,
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-429-            this.rootElement_);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-433-        showError(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:434:            `Expected to find ${expectNumEndpoints} interface descriptors ` +
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:435:                `but only encountered ${indexEndpoint}.`,
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-436-            this.rootElement_);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-440-        showError(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:441:            `Expected to find ${expectNumDevCapabilities} ` +
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-442-                `device capability descriptors but only encountered ${
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-490-        {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:491:          label: `Length (should be ${DEVICE_DESCRIPTOR_LENGTH}): `,
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-492-          size: 1,
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-627-        {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:628:          label: `Length (should be ${CONFIGURATION_DESCRIPTOR_LENGTH}): `,
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-629-          size: 1,
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-688-        rawDataTreeRoot, rawDataByteElement, rawData, offset, indexInterface) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:689:      const parentClassName = `descriptor-interface-${indexInterface}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-690-      const interfaceItem =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:691:          customTreeItem(`Interface ${indexInterface}`, parentClassName);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-692-      rawDataTreeRoot.add(interfaceItem);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-695-        {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:696:          label: `Length (should be ${INTERFACE_DESCRIPTOR_LENGTH}): `,
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-697-          size: 1,
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-762-        rawDataTreeRoot, rawDataByteElement, rawData, offset, indexEndpoint) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:763:      const parentClassName = `descriptor-endpoint-${indexEndpoint}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-764-      const endpointItem =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:765:          customTreeItem(`Endpoint ${indexEndpoint}`, parentClassName);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-766-      rawDataTreeRoot.add(endpointItem);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-769-        {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:770:          label: `Length (should be ${ENDPOINT_DESCRIPTOR_LENGTH}): `,
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-771-          size: 1,
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-820-          rawData[originalOffset + STANDARD_DESCRIPTOR_LENGTH_OFFSET];
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:821:      const parentClassName = `descriptor-unknown-${indexUnknown}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-822-      const unknownItem =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:823:          customTreeItem(`Unknown Descriptor ${indexUnknown}`, parentClassName);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-824-      rawDataTreeRoot.add(unknownItem);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-845-      for (; offset < originalOffset + length; offset++) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:846:        rawDataByteElements[offset].classList.add(`field-offset-${offset}`);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-847-        rawDataByteElements[offset].classList.add(parentClassName);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-902-        optionElement.label = parseLanguageCode(languageCode);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:903:        optionElement.value = `0x${toHex(languageCode, 4)}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-904-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-994-      const stringDescriptor = decodeUtf16Array(rawData.slice(2), true);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:995:      const parentClassName = `descriptor-string-language-${languageStr}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-996-      const stringDescriptorItem = customTreeItem(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:997:          `${languageStr}: ${stringDescriptor}`, parentClassName);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-998-      rawDataTreeRoot.add(stringDescriptorItem);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-999-      if (treeItem) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1000:        treeItem.add(customTreeItem(`${languageStr}: ${stringDescriptor}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1001-        treeItem.expanded = true;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1036-      this.rootElement_.querySelectorAll('input').forEach(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1037:          el => el.setAttribute('list', `${el.getAttribute('list')}-${tabId}`));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1038-      this.rootElement_.querySelectorAll('datalist')
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1039:          .forEach(el => el.id = `${el.id}-${tabId}`);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1040-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1070-      this.indexesListElement =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1071:          queryRequiredElement(`#indexes-${tabId}`, this.rootElement_);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1072-      /** @type {!HTMLElement} */
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1073-      this.languageCodesListElement_ =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1074:          queryRequiredElement(`#languages-${tabId}`, this.rootElement_);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1075-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1203-        rawDataTreeRoot, rawDataByteElement, rawData, offset, indexWebUsb) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1204:      const parentClassName = `descriptor-webusb-${indexWebUsb}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1205-      const webUsbItem = customTreeItem('WebUSB Descriptor', parentClassName);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1268-        rawDataTreeRoot, rawDataByteElement, rawData, offset, indexMsOs20) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1269:      const parentClassName = `descriptor-ms-os-20-${indexMsOs20}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1270-      const msOs20Item =
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1335-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1336:          `descriptor-ms-os-20-set-info-${indexMsOs20DescriptorSetInfo}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1337-      const msOs20SetInfoItem = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1374-          this.rootElement_, parentClassName,
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1375:          `descriptor-ms-os-20-${indexMsOs20}`);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1376-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1395-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1396:          `descriptor-unknownbos-${indexUnknownDevCapability}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1397-      const unknownBosItem =
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1425-      for (; offset < originalOffset + length; offset++) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1426:        rawDataByteElements[offset].classList.add(`field-offset-${offset}`);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1427-        rawDataByteElements[offset].classList.add(parentClassName);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1740-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1741:          `descriptor-ms-os-20-subdescriptor-${indexMsOs20Descriptor}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1742-      const item = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1806-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1807:          `descriptor-ms-os-20-subdescriptor-${indexMsOs20Descriptor}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1808-      const item = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1871-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1872:          `descriptor-ms-os-20-subdescriptor-${indexMsOs20Descriptor}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1873-      const item = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1932-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:1933:          `descriptor-ms-os-20-subdescriptor-${indexMsOs20Descriptor}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-1934-      const item = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2032-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2033:          `descriptor-ms-os-20-subdescriptor-${indexMsOs20Descriptor}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2034-      const item = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2093-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2094:          `descriptor-ms-os-20-subdescriptor-${indexMsOs20Descriptor}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2095-      const item = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2149-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2150:          `descriptor-ms-os-20-subdescriptor-${indexMsOs20Descriptor}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2151-      const item = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2202-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2203:          `descriptor-ms-os-20-subdescriptor-${indexMsOs20Descriptor}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2204-      const item = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2257-      const parentClassName =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2258:          `descriptor-ms-os-20-subdescriptor-${indexDescriptor}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2259-      const item = customTreeItem(
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2286-        rawDataByteElements[offset].classList.add(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2287:            `field-offset-${offset}`, parentClassName);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2288-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2464-      if (Number.isNaN(paramValue) || paramValue < min || paramValue > max) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2465:        showError(`Invalid ${paramName}.`, this.rootElement_);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2466-        return false;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2482-      }
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2483:      showError(`Invalid ${paramName}`, this.rootElement_);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2484-      return false;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2736-      el.addEventListener('pointerenter', (event) => {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2737:        rawDataByteElement.querySelectorAll(`.${fieldOffsetOrDescriptorClass}`)
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2738-            .forEach((el) => el.classList.add('hovered-field'));
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2742-      el.addEventListener('pointerleave', () => {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2743:        rawDataByteElement.querySelectorAll(`.${fieldOffsetOrDescriptorClass}`)
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2744-            .forEach((el) => el.classList.remove('hovered-field'));
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2753-          rawDataByteElement
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2754:              .querySelectorAll(`.${fieldOffsetOrDescriptorClass}`)
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2755-              .forEach((el) => el.classList.add('selected-field'));
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2772-      el.addEventListener('pointerenter', () => {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2773:        rawDataByteElement.querySelectorAll(`.${fieldOffsetClass}`)
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2774-            .forEach((el) => el.classList.add('hovered-field'));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2775-        const el =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2776:            queryRequiredElement(`.${fieldOffsetClass}`, rawDataTreeRoot);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2777-        if (el) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2782-      el.addEventListener('pointerleave', () => {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2783:        rawDataByteElement.querySelectorAll(`.${fieldOffsetClass}`)
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2784-            .forEach((el) => el.classList.remove('hovered-field'));
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2785-        const el =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2786:            queryRequiredElement(`.${fieldOffsetClass}`, rawDataTreeRoot);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2787-        if (el) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2793-        const el =
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2794:            queryRequiredElement(`.${fieldOffsetClass}`, rawDataTreeRoot);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2795-        if (el) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2820-    for (const field of fields) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2821:      const className = `field-offset-${offset}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2822-      let item;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2824-        item = customTreeItem(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2825:            `${field.label}${field.formatter(rawData, offset)}`, className);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2826-
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2833-      } catch (e) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2834:        showError(`Field at offset ${offset} is invalid.`, rootElement);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2835-        break;
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2843-        showError(
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2844:            `Error at rendering field at index ${offset}: ${e.message}`,
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2845-            rootElement);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2915-    // SHORT_PACKET. Throws an error to stop rendering response data.
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:2916:    throw new Error(`${defaultMessage} (Reason: ${failReason})`);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-2917-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-3003-    const num = parseShort(rawData, offset);
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:3004:    return `0x${toHex(num, 4)}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-3005-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-3034-  function formatDescriptorType(rawData, offset) {
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:3035:    return `0x${toHex(rawData[offset], 2)}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-3036-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-3094-      default:
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:3095:        return `0x${toHex(windowsVersion, 8)}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-3096-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-3149-      default:
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js:3150:        return `0x${toHex(languageCode, 4)}`;
chromium-84.0.4147.105/chrome/browser/resources/usb_internals/descriptor_panel.js-3151-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/voice_search_overlay.js-184-        value: `https://support.google.com/chrome/?` +
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/voice_search_overlay.js:185:            `p=ui_voice_search&hl=${window.navigator.language}`,
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/voice_search_overlay.js-186-      },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_icon.js-148-    if (this.backgroundImage) {
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_icon.js:149:      return `background-image: url(${this.backgroundImage});` +
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_icon.js-150-          `background-color: transparent;`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_icon.js-151-    } else {
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_icon.js:152:      return `-webkit-mask-image: url(${this.maskImage});`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_icon.js-153-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_icon.js-163-        // .25 opacity matching c/b/u/views/omnibox/omnibox_match_cell_view.cc.
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_icon.js:164:        `background-color: ${this.match.imageDominantColor}40;` :
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_icon.js-165-        'background-color: transparent;';
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/utils.js-15-  const b = skColor.value & 0xff;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/utils.js:16:  return `rgba(${r}, ${g}, ${b}, ${(a / 255).toFixed(2)})`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/utils.js-17-}
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/most_visited.js-52-  tile.style.position = 'fixed';
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/most_visited.js:53:  tile.style.left = `${x}px`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/most_visited.js:54:  tile.style.top = `${y}px`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/most_visited.js-55-}
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/most_visited.js-625-              this.dialogTileUrl_ :
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/most_visited.js:626:              `https://${this.dialogTileUrl_}/`);
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/most_visited.js-627-      if (!['http:', 'https:'].includes(newUrl.protocol)) {
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js-129-      if (this.doodle_ && this.doodle_.content.interactiveDoodle) {
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js:130:        this.width_ = `${this.doodle_.content.interactiveDoodle.width}px`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js:131:        this.height_ = `${this.doodle_.content.interactiveDoodle.height}px`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js-132-      }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js-302-            this.doodle_.content.imageDoodle.animationUrl) ?
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js:303:        `image?${this.doodle_.content.imageDoodle.animationUrl.url}` :
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js-304-        '';
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js-312-    return (this.doodle_ && this.doodle_.content.interactiveDoodle) ?
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js:313:        `iframe?${this.doodle_.content.interactiveDoodle.url.url}` :
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/logo.js-314-        '';
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/browser_proxy.js-65-  createUntrustedIframeSrc(path) {
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/browser_proxy.js:66:    return `chrome-untrusted://new-tab-page/${path}`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/browser_proxy.js-67-  }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/app.js-59-              btoa(window.location.search.replace(/^[?]/, '&')));
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/app.js:60:          return `one-google-bar?${params}`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/app.js-61-        },
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/app.js-650-    if (!auxTime) {
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/app.js:651:      console.log(`${name}: ${time}`);
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/app.js-652-    } else {
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/app.js:653:      console.log(`${name}: ${time} (${auxTime})`);
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/app.js-654-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_dropdown.js-211-    if (match.destinationUrl.url === url.url) {
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_dropdown.js:212:      this.set(`result.matches.${matchIndex}.faviconDataUrl`, dataUrl);
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_dropdown.js-213-    } else if (match.imageUrl === url.url) {
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_dropdown.js:214:      this.set(`result.matches.${matchIndex}.imageDataUrl`, dataUrl);
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/realbox_dropdown.js-215-    }
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js-47-    const url = 'https://www.facebook.com/dialog/share' +
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js:48:        `?app_id=${FACEBOOK_APP_ID}` +
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js:49:        `&href=${encodeURIComponent(this.url.url)}` +
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js:50:        `&hashtag=${encodeURIComponent('#GoogleDoodle')}`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js-51-    BrowserProxy.getInstance().open(url);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js-57-    const url = 'https://twitter.com/intent/tweet' +
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js:58:        `?text=${encodeURIComponent(`${this.title}\n${this.url.url}`)}`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js-59-    BrowserProxy.getInstance().open(url);
##############################################
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js-64-  onEmailClick_() {
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js:65:    const url = `mailto:?subject=${encodeURIComponent(this.title)}` +
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js:66:        `&body=${encodeURIComponent(this.url.url)}`;
chromium-84.0.4147.105/chrome/browser/resources/new_tab_page/doodle_share_dialog.js-67-    BrowserProxy.getInstance().navigate(url);
##############################################
chromium-84.0.4147.105/chrome/browser/android/vr/gvr_graphics_delegate.cc-706-  glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE,
chromium-84.0.4147.105/chrome/browser/android/vr/gvr_graphics_delegate.cc:707:               pixmap.writable_addr());
chromium-84.0.4147.105/chrome/browser/android/vr/gvr_graphics_delegate.cc-708-  DCHECK(glGetError() == GL_NO_ERROR);
##############################################
chromium-84.0.4147.105/chrome/browser/page_load_metrics/integration_tests/data/layout-instability/resources/test-adapter.js-17-    if (node.id)
chromium-84.0.4147.105/chrome/browser/page_load_metrics/integration_tests/data/layout-instability/resources/test-adapter.js:18:      source.debugName += ` id='${node.id}'`;
chromium-84.0.4147.105/chrome/browser/page_load_metrics/integration_tests/data/layout-instability/resources/test-adapter.js-19-    if (node.className)
chromium-84.0.4147.105/chrome/browser/page_load_metrics/integration_tests/data/layout-instability/resources/test-adapter.js:20:      source.debugName += ` class='${node.className}'`;
chromium-84.0.4147.105/chrome/browser/page_load_metrics/integration_tests/data/layout-instability/resources/test-adapter.js-21-  }
##############################################
chromium-84.0.4147.105/chrome/browser/mac/exception_processor.mm-145-  const void* this_base_address = 0;
chromium-84.0.4147.105/chrome/browser/mac/exception_processor.mm:146:  if (dladdr(reinterpret_cast<const void*>(&ObjcExceptionPreprocessor),
chromium-84.0.4147.105/chrome/browser/mac/exception_processor.mm-147-             &dl_info) != 0) {
##############################################
chromium-84.0.4147.105/chrome/browser/mac/exception_processor.mm-164-        // this function.
chromium-84.0.4147.105/chrome/browser/mac/exception_processor.mm:165:        if (dladdr(reinterpret_cast<const void*>(frame_info.start_ip),
chromium-84.0.4147.105/chrome/browser/mac/exception_processor.mm-166-                   &dl_info) != 0) {
##############################################
chromium-84.0.4147.105/chrome/browser/ui/test/test_app_window_icon_observer.cc-81-          base::StringPiece(
chromium-84.0.4147.105/chrome/browser/ui/test/test_app_window_icon_observer.cc:82:              reinterpret_cast<const char*>(bitmap->getAddr(0, y)), row_width));
chromium-84.0.4147.105/chrome/browser/ui/test/test_app_window_icon_observer.cc-83-    }
##############################################
chromium-84.0.4147.105/chrome/browser/media/encrypted_media_browsertest.cc-393-        switches::kUseFakeDeviceForMediaStream,
chromium-84.0.4147.105/chrome/browser/media/encrypted_media_browsertest.cc:394:        base::StringPrintf("display-media-type=%s", GetParam()));
chromium-84.0.4147.105/chrome/browser/media/encrypted_media_browsertest.cc-395-  }
##############################################
chromium-84.0.4147.105/chrome/browser/media/router/discovery/discovery_network_list_posix.cc-40-#define SOCKET_ADDRESS_LEN(s) ((s)->sdl_alen)
chromium-84.0.4147.105/chrome/browser/media/router/discovery/discovery_network_list_posix.cc:41:#define SOCKET_ADDRESS(s) (LLADDR(s))
chromium-84.0.4147.105/chrome/browser/media/router/discovery/discovery_network_list_posix.cc-42-#endif
##############################################
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-40-
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc:41:Export::Export(void* addr, const std::string& name) : addr(addr), name(name) {
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-42-}
##############################################
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-100-      unknown_reloc_type(false),
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc:101:      mem_code_addr(nullptr),
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc:102:      disk_code_addr(nullptr),
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-103-      code_size(0),
##############################################
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-122-  // between this export and the following one.
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc:123:  Export addr(reinterpret_cast<void*>(mem_address), std::string());
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-124-  return std::upper_bound(start, end, addr);
##############################################
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-284-  PIMAGE_SECTION_HEADER mem_code_header =
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc:285:      mem_peimage.GetImageSectionFromAddr(mem_peimage.RVAToAddr(base_of_code));
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-286-  if (mem_code_header == NULL)
##############################################
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-288-  *mem_code_addr = reinterpret_cast<uint8_t*>(
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc:289:      mem_peimage.RVAToAddr(mem_code_header->VirtualAddress));
chromium-84.0.4147.105/chrome/browser/safe_browsing/incident_reporting/module_integrity_verifier_win.cc-290-  // If the section is padded with zeros when mapped then |VirtualSize| can be
##############################################
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc-223-// Set up a sockaddr appropriate for messaging.
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc:224:bool SetupSockAddr(const std::string& path, struct sockaddr_un* addr) {
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc-225-  addr->sun_family = AF_UNIX;
##############################################
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc-246-  *sock = SetupSocketOnly();
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc:247:  CHECK(SetupSockAddr(path, addr)) << "Socket path too long: " << path;
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc-248-}
##############################################
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc-366-    sockaddr_un addr;
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc:367:    if (!SetupSockAddr(socket_target.value(), &addr)) {
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc-368-      // If a sockaddr couldn't be initialized due to too long of a socket
##############################################
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc-390-    sockaddr_un addr;
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc:391:    if (!SetupSockAddr(socket_path.value(), &addr)) {
chromium-84.0.4147.105/chrome/browser/process_singleton_posix.cc-392-      // If a sockaddr couldn't be initialized due to too long of a socket
##############################################
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-530-          } catch(e) {
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc:531:            return `${e.name}: ${e.message}`;
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-532-          }
##############################################
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-553-          } catch(e) {
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc:554:            return `${e.name}: ${e.message}`;
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-555-          }
##############################################
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-656-          } catch(e) {
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc:657:            return `${e.name}: ${e.message}`;
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-658-          }
##############################################
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-718-          } catch(e) {
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc:719:            return `${e.name}: ${e.message}`;
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-720-          }
##############################################
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-744-          } catch(e) {
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc:745:            return `${e.name}: ${e.message}`;
chromium-84.0.4147.105/chrome/browser/bluetooth/web_bluetooth_browsertest.cc-746-          }
##############################################
chromium-84.0.4147.105/chrome/browser/local_discovery/service_discovery_client_mac.mm-380-    net::IPEndPoint end_point;
chromium-84.0.4147.105/chrome/browser/local_discovery/service_discovery_client_mac.mm:381:    if (end_point.FromSockAddr(socket, length)) {
chromium-84.0.4147.105/chrome/browser/local_discovery/service_discovery_client_mac.mm-382-      service_description_.address =
##############################################
chromium-84.0.4147.105/chrome/browser/local_discovery/service_discovery_client_mac_unittest.mm-135-  net::SockaddrStorage storage;
chromium-84.0.4147.105/chrome/browser/local_discovery/service_discovery_client_mac_unittest.mm:136:  ASSERT_TRUE(endpoint.ToSockAddr(storage.addr, &storage.addr_len));
chromium-84.0.4147.105/chrome/browser/local_discovery/service_discovery_client_mac_unittest.mm-137-  NSData* discoveryHost =
##############################################
chromium-84.0.4147.105/chrome/browser/local_discovery/service_discovery_client_mac_unittest.mm-190-  net::SockaddrStorage storage;
chromium-84.0.4147.105/chrome/browser/local_discovery/service_discovery_client_mac_unittest.mm:191:  ASSERT_TRUE(endpoint.ToSockAddr(storage.addr, &storage.addr_len));
chromium-84.0.4147.105/chrome/browser/local_discovery/service_discovery_client_mac_unittest.mm-192-  NSData* discovery_host =
##############################################
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc-275-               "  for (const cookie of cookies)"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc:276:               "    cookie_str += `${cookie.name}=${cookie.value};`;"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc-277-               "  window.domAutomationController.send(cookie_str);"
##############################################
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc-473-      "  } catch(e) {"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc:474:      "    return `${name} - ${e.toString()}`;"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc-475-      "  }"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc:476:      "  return `${name} - success`;"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc-477-      "}())";
##############################################
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc-521-      "  } catch(e) {"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc:522:      "    return `${name} - ${e.toString()}`;"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc-523-      "  }"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc:524:      "  return `${name} - success`;"
chromium-84.0.4147.105/chrome/browser/content_settings/content_settings_browsertest.cc-525-      "}())";
##############################################
chromium-84.0.4147.105/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc-498-       SavingAndFillingOnDifferentSchemes) {
chromium-84.0.4147.105/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc:499:  const GURL url(base::StringPrintf("%s://example.org", GetParam()));
chromium-84.0.4147.105/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc-500-  VLOG(0) << url.possibly_invalid_spec();
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-79-<translation id="1097658378307015415"><ph name="NETWORK_ID" /> tarmog‘ini faollashtirish uchun avval mehmon sifatida kiring.</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:80:<translation id="1099962274138857708">Rasm <ph name="DEVICE_NAME" /> qurilmasidan nusxalandi</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-81-<translation id="1103523840287552314"><ph name="LANGUAGE" /> tilidan har doim tarjima qilinsin</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-275-<translation id="1340527397989195812">Fayllar ilovasi yordamida qurilmadagi mediani zaxiralang.</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:276:<translation id="1341988552785875222">Joriy fon rasmi <ph name="APP_NAME" /> ilovasida o‘rnatilgan. Boshqa rasm tanlash uchun <ph name="APP_NAME" /> ilovasini o‘chirib tashlashingiz kerak.</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-277-<translation id="1343865611738742294">Linux ilovalar uchun USB qurilmalarga ruxsat berish. USB qurilma olinganidan keyin Linux uni eslab qolmaydi.</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-549-<translation id="1680849702532889074">Linux ilovasini o‘rnatishda xatolik yuz berdi.</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:550:<translation id="16815041330799488">Saytlarga klipborddagi rasm va matnlarni ko‘rishni taqiqlash</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-551-<translation id="1682548588986054654">Yangi inkognito oyna</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-878-<translation id="2114326799768592691">&amp;Freymni qayta yuklash</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:879:<translation id="2114896190328250491">Rasm muallifi: <ph name="NAME" /></translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-880-<translation id="2119349053129246860"><ph name="APP" /> orqali ochish</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-1093-<translation id="2364498172489649528">Tugadi</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:1094:<translation id="2365507699358342471">Bu saytda klipbordga nusxalangan rasm va matnlar ko‘rinadi.</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-1095-<translation id="2366260648632264559">Tizim matnlari shu tilda chiqsin</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-1447-<translation id="2799223571221894425">Qaytadan ishga tushirish</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:1448:<translation id="2800760947029405028">Rasm yuklash</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-1449-<translation id="2801954693771979815">Ekran oʻlchami</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-1497-<translation id="2861941300086904918">Xavfsizlik menejeri – Native Client</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:1498:<translation id="2864601841139725659">Profilga rasm joylang</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-1499-<translation id="2865919525181940183">Joriy ekrandagi dasturlarning skrinshoti</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-3285-<translation id="5215502535566372932">Mamlakatni tanlang</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:3286:<translation id="521582610500777512">Rasm o‘chirildi</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-3287-<translation id="5222403284441421673">Xavfli yuklanma bloklandi</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-3841-    <ph name="LINE_BREAK" />
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:3842:    Bu rasm Chromebook qurilmasining kirish va qulflash ekranida ko‘rinadi.</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-3843-<translation id="5925147183566400388">Tasdiqlash markazi reglamenti ko‘rsatkichi</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-3950-<translation id="6065289257230303064">Sertifikat subyekti katalogi atributlari</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:3951:<translation id="6069671174561668781">Fonga rasm tanlash</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-3952-<translation id="6071181508177083058">parolni tasdiqlang</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-3963-<translation id="6077476112742402730">Ovoz bilan matn kiritish</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:3964:<translation id="6078045608615316905">Bu rasm uchun QR kod yaratish</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-3965-<translation id="6078323886959318429">Yorliq bilan nomlash</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-4233-<translation id="6428450836711225518">Telefon raqamingizni tasdiqlang</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:4234:<translation id="6428982734197629783">Rasm qayta ishlanmoqda</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-4235-<translation id="6429384232893414837">Yangilashda xatolik yuz berdi</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-4416-<translation id="6686817083349815241">Parolni saqlash</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:4417:<translation id="6688285987813868112">Bu rasm uchun QR kod yaratish</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-4418-<translation id="6690659332373509948">Faylni tahlil qilib bo‘lmadi bo‘lmadi: <ph name="FILE_NAME" /></translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-4697-<translation id="7044606776288350625">Maʼlumotlarni sinxronlash</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:4698:<translation id="7047059339731138197">Fon uchun rasm tanlash</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-4699-<translation id="7049293980323620022">Fayl saqlansinmi?</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-5251-<translation id="7769672763586021400">Model identifikatori</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:5252:<translation id="7770612696274572992">Rasm boshqa qurilmadan nusxalandi</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-5253-<translation id="7771452384635174008">Tugmalar tartibi</translation>
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-5514-<translation id="8069615408251337349">Google virtual printeri</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:5515:<translation id="8071432093239591881">Rasm sifatida chop etish</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-5516-<translation id="8073499153683482226"><ph name="BEGIN_PARAGRAPH1" />Ilovaga tegishli axborotlar – bu, ilovalar tomonidan saqlangan (dasturchi o‘rnatgan sozlamalarga asoslanib) kontaktlar, xabarlar va rasmlar kabi maʼlumotlar<ph name="END_PARAGRAPH1" />
##############################################
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-6054-<translation id="8770507190024617908">Foydalanuvchilarni boshqarish</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb:6055:<translation id="8771300903067484968">Bosh sahifadagi fon rasmi standart fon rasm etib tayinlandi.</translation>
chromium-84.0.4147.105/chrome/app/resources/generated_resources_uz.xtb-6056-<translation id="8773302562181397928"><ph name="PRINTER_NAME" /> printerini saqlash</translation>
##############################################
chromium-84.0.4147.105/chrome/app/theme/README-30-        do convert $f -dither None -colors 256 \
chromium-84.0.4147.105/chrome/app/theme/README:31:            png8:`basename $f .png`-indexed.png; \
chromium-84.0.4147.105/chrome/app/theme/README-32-    done
##############################################
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.h-90-  // - If |rva| >= |image_size_|, returns nullptr.
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.h:91:  void* RVAToAddr(DWORD rva);
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.h-92-
##############################################
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.h-100-  //   IMAGE_DATA_DIRECTORY::Size.  Pass null if size not wanted.
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.h:101:  void* GetImageDirectoryEntryAddr(int directory, DWORD* directory_size);
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.h-102-
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.h:103:  // Small wrapper of GetImageDirectoryEntryAddr() to get a pointer to the
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.h-104-  // Export Directory.
##############################################
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc-133-
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc:134:void* PEImageSafe::RVAToAddr(DWORD rva) {
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc-135-  assert(ldr_image_mapping_);
##############################################
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc-141-
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc:142:void* PEImageSafe::GetImageDirectoryEntryAddr(int directory,
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc-143-                                              DWORD* directory_size) {
##############################################
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc-176-
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc:177:  return RVAToAddr(rva);
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc-178-}
##############################################
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc-188-  export_dir_ = reinterpret_cast<PIMAGE_EXPORT_DIRECTORY>(
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc:189:      GetImageDirectoryEntryAddr(IMAGE_DIRECTORY_ENTRY_EXPORT, &dir_size));
chromium-84.0.4147.105/chrome/chrome_elf/pe_image_safe/pe_image_safe.cc-190-
##############################################
chromium-84.0.4147.105/chrome/chrome_elf/third_party_dlls/hook.cc-206-    const char* name =
chromium-84.0.4147.105/chrome/chrome_elf/third_party_dlls/hook.cc:207:        reinterpret_cast<const char*>(image.RVAToAddr(exports->Name));
chromium-84.0.4147.105/chrome/chrome_elf/third_party_dlls/hook.cc-208-    *image_name = std::string(name, ::strnlen(name, MAX_PATH));
##############################################
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc-382-      LOG(WARNING) << "Failed to convert remote address to IPEndPoint: address="
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc:383:                   << address.ipaddr().ToSensitiveString()
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc-384-                   << ", remote_address_="
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc:385:                   << remote_address_.ipaddr().ToSensitiveString();
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc-386-      NOTREACHED();
##############################################
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc-524-        // Set only the IP address.
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc:525:        remote_address_.SetResolvedIP(jingle_socket_address.ipaddr());
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc-526-      }
##############################################
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc-675-    }
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc:676:    addresses_.push_back(socket_address.ipaddr());
chromium-84.0.4147.105/chrome/services/sharing/webrtc/ipc_packet_socket_factory.cc-677-  }
##############################################
chromium-84.0.4147.105/chrome/test/v8/wasm_trap_handler_browsertest.cc-4-
chromium-84.0.4147.105/chrome/test/v8/wasm_trap_handler_browsertest.cc:5:// These tests focus on Wasm out of bounds behavior to make sure trap-based
chromium-84.0.4147.105/chrome/test/v8/wasm_trap_handler_browsertest.cc-6-// bounds checks work when integrated with all of Chrome.
##############################################
chromium-84.0.4147.105/chrome/test/data/nacl/BUILD.gn-422-  if (target_cpu != "arm") {
chromium-84.0.4147.105/chrome/test/data/nacl/BUILD.gn:423:    # Source file does not have asm for ARM.
chromium-84.0.4147.105/chrome/test/data/nacl/BUILD.gn-424-    nacl_test_data("partly_invalid") {
##############################################
chromium-84.0.4147.105/chrome/test/media_router/resources/common.js-95-function waitForConnectedStateAndSendResult(connection) {
chromium-84.0.4147.105/chrome/test/media_router/resources/common.js:96:  console.log(`connection state is "${connection.state}"`);
chromium-84.0.4147.105/chrome/test/media_router/resources/common.js-97-  if (connection.state == 'connected') {
##############################################
chromium-84.0.4147.105/chrome/test/base/js2gtest.js-547-  if (browsePreload) {
chromium-84.0.4147.105/chrome/test/base/js2gtest.js:548:    output(`  BrowsePreload(GURL("${browsePreload}"));`);
chromium-84.0.4147.105/chrome/test/base/js2gtest.js-549-  }
##############################################
chromium-84.0.4147.105/chrome/test/chromedriver/support/release/release.sh-63-
chromium-84.0.4147.105/chrome/test/chromedriver/support/release/release.sh:64:build=`echo $version | sed 's/\.[0-9]\+$//'`
chromium-84.0.4147.105/chrome/test/chromedriver/support/release/release.sh:65:major=`echo $version | sed 's/\.[0-9.]\+$//'`
chromium-84.0.4147.105/chrome/test/chromedriver/support/release/release.sh-66-gsutil -h Content-Type:text/plain cp latest gs://chromedriver/LATEST_RELEASE_$build
##############################################
chromium-84.0.4147.105/remoting/tools/winext/manifest/rdp.h-664-  HRESULT get_GatewayPreAuthRequirement([out] ULONG* pulProxyPreAuthRequirement);
chromium-84.0.4147.105/remoting/tools/winext/manifest/rdp.h:665:  HRESULT put_GatewayPreAuthServerAddr(BSTR pbstrProxyPreAuthServerAddr);
chromium-84.0.4147.105/remoting/tools/winext/manifest/rdp.h:666:  HRESULT get_GatewayPreAuthServerAddr([out] BSTR* pbstrProxyPreAuthServerAddr);
chromium-84.0.4147.105/remoting/tools/winext/manifest/rdp.h-667-  HRESULT put_GatewaySupportUrl(BSTR pbstrProxySupportUrl);
##############################################
chromium-84.0.4147.105/remoting/tools/winext/manifest/rdp.h-725-  HRESULT get_GatewayCredSourceCookie([out] ULONG* pulProxyCredSourceCookie);
chromium-84.0.4147.105/remoting/tools/winext/manifest/rdp.h:726:  HRESULT put_GatewayAuthCookieServerAddr(BSTR pbstrProxyAuthCookieServerAddr);
chromium-84.0.4147.105/remoting/tools/winext/manifest/rdp.h:727:  HRESULT get_GatewayAuthCookieServerAddr([out] BSTR* pbstrProxyAuthCookieServerAddr);
chromium-84.0.4147.105/remoting/tools/winext/manifest/rdp.h-728-  HRESULT put_GatewayEncryptedAuthCookie(BSTR pbstrEncryptedAuthCookie);
##############################################
chromium-84.0.4147.105/remoting/tools/get_mac_crd_version.sh-19-  if [[ -e "${file}/${INFO_PLIST}" ]]; then
chromium-84.0.4147.105/remoting/tools/get_mac_crd_version.sh:20:    set `PlistBuddy -c 'Print CFBundleVersion' "${file}/${INFO_PLIST}"`
chromium-84.0.4147.105/remoting/tools/get_mac_crd_version.sh-21-    echo "${name}: version = ${1}"
##############################################
chromium-84.0.4147.105/remoting/tools/set_android_flags.sh-42-# Push the file back to the device.
chromium-84.0.4147.105/remoting/tools/set_android_flags.sh:43:FILE_CONTENT="`cat $TMP_FILE`"
chromium-84.0.4147.105/remoting/tools/set_android_flags.sh-44-FILE_CONTENT="${FILE_CONTENT//\'/\'}"
##############################################
chromium-84.0.4147.105/remoting/protocol/jingle_messages.cc-133-  result->SetAttr(QName(kEmptyNamespace, "address"),
chromium-84.0.4147.105/remoting/protocol/jingle_messages.cc:134:                  candidate.candidate.address().ipaddr().ToString());
chromium-84.0.4147.105/remoting/protocol/jingle_messages.cc-135-  result->SetAttr(QName(kEmptyNamespace, "port"),
##############################################
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h-1448-        /*[out,retval]*/ unsigned long * pulProxyPreAuthRequirement ) = 0;
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h:1449:      virtual HRESULT __stdcall put_GatewayPreAuthServerAddr (
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h-1450-        /*[in]*/ BSTR pbstrProxyPreAuthServerAddr ) = 0;
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h:1451:      virtual HRESULT __stdcall get_GatewayPreAuthServerAddr (
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h-1452-        /*[out,retval]*/ BSTR * pbstrProxyPreAuthServerAddr ) = 0;
##############################################
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h-1631-        /*[out,retval]*/ unsigned long * pulProxyCredSourceCookie ) = 0;
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h:1632:      virtual HRESULT __stdcall put_GatewayAuthCookieServerAddr (
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h-1633-        /*[in]*/ BSTR pbstrProxyAuthCookieServerAddr ) = 0;
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h:1634:      virtual HRESULT __stdcall get_GatewayAuthCookieServerAddr (
chromium-84.0.4147.105/remoting/host/win/com_imported_mstscax.h-1635-        /*[out,retval]*/ BSTR * pbstrProxyAuthCookieServerAddr ) = 0;
##############################################
chromium-84.0.4147.105/remoting/host/installer/linux/debian/chrome-remote-desktop.init-37-  while [ $time_left -gt 0 ]; do
chromium-84.0.4147.105/remoting/host/installer/linux/debian/chrome-remote-desktop.init:38:    (kill -0 $pid 2>/dev/null) || return `wait $pid`
chromium-84.0.4147.105/remoting/host/installer/linux/debian/chrome-remote-desktop.init-39-    sleep 1
##############################################
chromium-84.0.4147.105/remoting/host/installer/linux/debian/chrome-remote-desktop.init-41-  done
chromium-84.0.4147.105/remoting/host/installer/linux/debian/chrome-remote-desktop.init:42:  (kill -0 $pid 2>/dev/null) || return `wait $pid`
chromium-84.0.4147.105/remoting/host/installer/linux/debian/chrome-remote-desktop.init-43-
##############################################
chromium-84.0.4147.105/remoting/host/installer/mac/do_signing.sh-98-  local filename="${PROPS_FILENAME}"
chromium-84.0.4147.105/remoting/host/installer/mac/do_signing.sh:99:  echo `grep "\<${property}\>=" "${filename}" | tail -n 1 | cut -d "=" -f2-`
chromium-84.0.4147.105/remoting/host/installer/mac/do_signing.sh-100-}
##############################################
chromium-84.0.4147.105/remoting/host/resources_linux.cc-26-    Dl_info info;
chromium-84.0.4147.105/remoting/host/resources_linux.cc:27:    CHECK(dladdr(reinterpret_cast<void*>(&LoadResources), &info) != 0);
chromium-84.0.4147.105/remoting/host/resources_linux.cc-28-
##############################################
chromium-84.0.4147.105/remoting/host/resources_mac.cc-22-    Dl_info info;
chromium-84.0.4147.105/remoting/host/resources_mac.cc:23:    CHECK(dladdr(reinterpret_cast<void*>(&LoadResources), &info) != 0);
chromium-84.0.4147.105/remoting/host/resources_mac.cc-24-
##############################################
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-108-  std::unique_ptr<jingle_xmpp::XmlElement> message = GetEmptyJingleMessage();
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc:109:  SignalingAddress addr("user@domain.com/chromoting12345");
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-110-  addr.SetInMessage(message.get(), SignalingAddress::TO);
##############################################
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-115-  std::unique_ptr<jingle_xmpp::XmlElement> message = GetEmptyJingleMessage();
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc:116:  SignalingAddress addr(kFtlAddress);
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-117-
##############################################
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-123-  std::unique_ptr<jingle_xmpp::XmlElement> message = GetEmptyJingleMessage();
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc:124:  SignalingAddress addr("user@domain.com/resource");
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-125-  addr.SetInMessage(message.get(), SignalingAddress::FROM);
##############################################
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-130-  std::unique_ptr<jingle_xmpp::XmlElement> message = GetEmptyJingleMessage();
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc:131:  SignalingAddress addr(kFtlAddress);
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-132-  addr.SetInMessage(message.get(), SignalingAddress::FROM);
##############################################
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-148-TEST(SignalingAddressTest, GetFtlInfo_NotFtlInfo) {
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc:149:  SignalingAddress addr(kLcsAddress);
chromium-84.0.4147.105/remoting/signaling/signaling_address_unittest.cc-150-
##############################################
chromium-84.0.4147.105/remoting/test/fake_network_dispatcher.cc-64-
chromium-84.0.4147.105/remoting/test/fake_network_dispatcher.cc:65:    auto node_it = nodes_.find(to.ipaddr());
chromium-84.0.4147.105/remoting/test/fake_network_dispatcher.cc-66-    if (node_it == nodes_.end()) {
##############################################
chromium-84.0.4147.105/remoting/test/fake_socket_factory.cc-238-
chromium-84.0.4147.105/remoting/test/fake_socket_factory.cc:239:  CHECK(local_address.ipaddr() == address_);
chromium-84.0.4147.105/remoting/test/fake_socket_factory.cc-240-
##############################################
chromium-84.0.4147.105/remoting/test/fake_socket_factory.cc-242-      new FakeUdpSocket(this, dispatcher_,
chromium-84.0.4147.105/remoting/test/fake_socket_factory.cc:243:                        rtc::SocketAddress(local_address.ipaddr(), port));
chromium-84.0.4147.105/remoting/test/fake_socket_factory.cc-244-
##############################################
chromium-84.0.4147.105/remoting/test/fake_socket_factory.cc-287-  DCHECK(task_runner_->BelongsToCurrentThread());
chromium-84.0.4147.105/remoting/test/fake_socket_factory.cc:288:  DCHECK(to.ipaddr() == address_);
chromium-84.0.4147.105/remoting/test/fake_socket_factory.cc-289-
##############################################
chromium-84.0.4147.105/gin/v8_platform.cc-212-
chromium-84.0.4147.105/gin/v8_platform.cc:213:  void* GetRandomMmapAddr() override { return base::GetRandomPageBase(); }
chromium-84.0.4147.105/gin/v8_platform.cc-214-
##############################################
chromium-84.0.4147.105/ppapi/tests/test_net_address.cc-64-  PP_NetAddress_IPv4 ipv4_addr = { ConvertToNetEndian16(80), { 127, 0, 0, 1 } };
chromium-84.0.4147.105/ppapi/tests/test_net_address.cc:65:  NetAddress net_addr(instance_, ipv4_addr);
chromium-84.0.4147.105/ppapi/tests/test_net_address.cc-66-  ASSERT_NE(0, net_addr.pp_resource());
##############################################
chromium-84.0.4147.105/ppapi/tests/test_net_address.cc-85-
chromium-84.0.4147.105/ppapi/tests/test_net_address.cc:86:  NetAddress net_addr(instance_, ipv6_addr);
chromium-84.0.4147.105/ppapi/tests/test_net_address.cc-87-  ASSERT_NE(0, net_addr.pp_resource());
##############################################
chromium-84.0.4147.105/ppapi/tests/test_nacl_irt_stack_alignment.cc-44-// regparm(2) means: First argument in %eax, second argument in %edx.
chromium-84.0.4147.105/ppapi/tests/test_nacl_irt_stack_alignment.cc:45:// Writing this with an inline asm would require explaining all the
chromium-84.0.4147.105/ppapi/tests/test_nacl_irt_stack_alignment.cc:46:// call-clobbers register behavior in the asm clobber list, which is a
chromium-84.0.4147.105/ppapi/tests/test_nacl_irt_stack_alignment.cc-47-// lot with all the SSE and FPU state.  It's far simpler just to make
##############################################
chromium-84.0.4147.105/ppapi/proxy/ppb_image_data_proxy.cc-399-  skia::GetWritablePixels(mapped_canvas_.get(), &pixmap);
chromium-84.0.4147.105/ppapi/proxy/ppb_image_data_proxy.cc:400:  return pixmap.writable_addr();
chromium-84.0.4147.105/ppapi/proxy/ppb_image_data_proxy.cc-401-}
##############################################
chromium-84.0.4147.105/sandbox/win/sandbox_poc/sandbox.cc-115-    // Debugging the spawned application can be tricky, because DebugBreak()
chromium-84.0.4147.105/sandbox/win/sandbox_poc/sandbox.cc:116:    // and _asm int 3 cause the app to terminate (due to a flag in the job
chromium-84.0.4147.105/sandbox/win/sandbox_poc/sandbox.cc-117-    // object), MessageBoxes() will not be displayed unless we have been granted
##############################################
chromium-84.0.4147.105/sandbox/win/sandbox_poc/pocdll/network.cc-36-  service.sin_family = AF_INET;
chromium-84.0.4147.105/sandbox/win/sandbox_poc/pocdll/network.cc:37:  service.sin_addr.s_addr = inet_addr("127.0.0.1");
chromium-84.0.4147.105/sandbox/win/sandbox_poc/pocdll/network.cc-38-  service.sin_port = htons(88);
##############################################
chromium-84.0.4147.105/sandbox/win/src/eat_resolver.cc-74-
chromium-84.0.4147.105/sandbox/win/src/eat_resolver.cc:75:  *address = pe.RVAToAddr(*eat_entry_);
chromium-84.0.4147.105/sandbox/win/src/eat_resolver.cc-76-
##############################################
chromium-84.0.4147.105/sandbox/win/src/sidestep_resolver.cc-153-void SmartSidestepResolverThunk::SmartStub() {
chromium-84.0.4147.105/sandbox/win/src/sidestep_resolver.cc:154:  __asm {
chromium-84.0.4147.105/sandbox/win/src/sidestep_resolver.cc-155-    push eax                  // Space for the jump.
##############################################
chromium-84.0.4147.105/sandbox/win/src/sidestep_resolver.cc-199-  base::win::PEImage pe(base);
chromium-84.0.4147.105/sandbox/win/src/sidestep_resolver.cc:200:  if (pe.GetImageSectionFromAddr(return_address))
chromium-84.0.4147.105/sandbox/win/src/sidestep_resolver.cc-201-    return true;
##############################################
chromium-84.0.4147.105/sandbox/win/src/sandbox_nt_util.cc-457-      if (exports) {
chromium-84.0.4147.105/sandbox/win/src/sandbox_nt_util.cc:458:        char* name = reinterpret_cast<char*>(pe.RVAToAddr(exports->Name));
chromium-84.0.4147.105/sandbox/win/src/sandbox_nt_util.cc-459-        out_name = AnsiToUnicode(name);
##############################################
chromium-84.0.4147.105/sandbox/win/src/sandbox_nt_util.cc-490-      if (exports)
chromium-84.0.4147.105/sandbox/win/src/sandbox_nt_util.cc:491:        out_name = static_cast<const char*>(pe.RVAToAddr(exports->Name));
chromium-84.0.4147.105/sandbox/win/src/sandbox_nt_util.cc-492-    } while (false);
##############################################
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/trap.cc-350-    // atomics; see crbug.com/414363.
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/trap.cc:351:    asm volatile("" : "=r"(new_trap_array) : "0"(new_trap_array) : "memory");
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/trap.cc-352-    trap_array_ = new_trap_array;
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/trap.cc:353:    asm volatile("" : "=r"(trap_array_) : "0"(trap_array_) : "memory");
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/trap.cc-354-
##############################################
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-370-  intptr_t ret = nr;
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc:371:  asm volatile(
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-372-      "call SyscallAsm\n"
##############################################
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-383-    register const intptr_t* data __asm__("r6") = args;
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc:384:    asm volatile(
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-385-        "bl SyscallAsm\n"
##############################################
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-424-    register const intptr_t* data __asm__("x6") = args;
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc:425:    asm volatile("bl SyscallAsm\n"
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-426-                 : "=r"(inout)
##############################################
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-458-  register intptr_t ret __asm__("v0") = nr;
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc:459:  register intptr_t syscallasm __asm__("t9") = (intptr_t) &SyscallAsm;
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-460-  // a3 register becomes non zero on error.
##############################################
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-463-    register const intptr_t* data __asm__("a0") = args;
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc:464:    asm volatile(
chromium-84.0.4147.105/sandbox/linux/seccomp-bpf/syscall.cc-465-        "jalr $t9\n"
##############################################
chromium-84.0.4147.105/sandbox/linux/bpf_dsl/bpf_dsl_unittest.cc-240-    if (sysno == __NR_uname) {
chromium-84.0.4147.105/sandbox/linux/bpf_dsl/bpf_dsl_unittest.cc:241:      const Arg<uintptr_t> addr(0);
chromium-84.0.4147.105/sandbox/linux/bpf_dsl/bpf_dsl_unittest.cc-242-      return If(addr == kDeadBeefAddr, Error(EPERM)).Else(Allow());
##############################################
chromium-84.0.4147.105/sandbox/linux/services/libc_interceptor.cc-214-
chromium-84.0.4147.105/sandbox/linux/services/libc_interceptor.cc:215:// Define localtime_override() function with asm name "localtime", so that all
chromium-84.0.4147.105/sandbox/linux/services/libc_interceptor.cc-216-// references to localtime() will resolve to this function. Notice that we need
##############################################
chromium-84.0.4147.105/sandbox/mac/sandbox_logging.cc-19-  {                                                                            \
chromium-84.0.4147.105/sandbox/mac/sandbox_logging.cc:20:    asm volatile(                                                              \
chromium-84.0.4147.105/sandbox/mac/sandbox_logging.cc-21-        "int3; ud2; push %0;" ::"i"(static_cast<unsigned char>(__COUNTER__))); \
##############################################
chromium-84.0.4147.105/device/bluetooth/bluetooth_socket_win.cc-124-    rfcomm_channel_ = service_record_win->rfcomm_channel();
chromium-84.0.4147.105/device/bluetooth/bluetooth_socket_win.cc:125:    bth_addr_ = service_record_win->device_bth_addr();
chromium-84.0.4147.105/device/bluetooth/bluetooth_socket_win.cc-126-  }
##############################################
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win_unittest.cc-63-      "01:02:03:0A:10:A0", "Sdp", sdp_bytes_array, BluetoothUUID());
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win_unittest.cc:64:  EXPECT_EQ(1108152553632ull, service_record.device_bth_addr());
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win_unittest.cc-65-}
##############################################
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win.cc-100-
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win.cc:101:BTH_ADDR ConvertToBthAddr(const std::string& address) {
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win.cc-102-  BTH_ADDR bth_addr = 0;
##############################################
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win.cc-127-    const BluetoothUUID& gatt_uuid)
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win.cc:128:    : device_bth_addr_(ConvertToBthAddr(device_address)),
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win.cc-129-      device_address_(device_address),
##############################################
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win.h-29-  // The BTH_ADDR address of the BluetoothDevice providing this service.
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win.h:30:  BTH_ADDR device_bth_addr() const { return device_bth_addr_; }
chromium-84.0.4147.105/device/bluetooth/bluetooth_service_record_win.h-31-
##############################################
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_device_cast.cc-62-      remote_device_(std::move(device)),
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_device_cast.cc:63:      address_(GetCanonicalBluetoothAddress(remote_device_->addr())),
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_device_cast.cc-64-      weak_factory_(this) {
##############################################
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-270-
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc:271:  std::string address = GetCanonicalBluetoothAddress(device->addr());
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-272-  DVLOG(1) << __func__ << " " << address << " connected: " << connected;
##############################################
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-287-
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc:288:  DVLOG(3) << __func__ << " " << GetCanonicalBluetoothAddress(device->addr())
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-289-           << " mtu: " << mtu;
##############################################
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-297-
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc:298:  std::string address = GetCanonicalBluetoothAddress(device->addr());
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-299-  BluetoothDeviceCast* cast_device = GetCastDevice(address);
##############################################
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-366-  // registered for this device.
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc:367:  std::string address = GetCanonicalBluetoothAddress(remote_device->addr());
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-368-  DCHECK(devices_.find(address) == devices_.end());
##############################################
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-425-
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc:426:  std::string address = GetCanonicalBluetoothAddress(remote_device->addr());
chromium-84.0.4147.105/device/bluetooth/cast/bluetooth_adapter_cast.cc-427-
##############################################
chromium-84.0.4147.105/device/bluetooth/test/bluetooth_test_cast.cc-126-  chromecast::bluetooth::LeScanResult result;
chromium-84.0.4147.105/device/bluetooth/test/bluetooth_test_cast.cc:127:  ASSERT_TRUE(chromecast::bluetooth::util::ParseAddr(address, &result.addr));
chromium-84.0.4147.105/device/bluetooth/test/bluetooth_test_cast.cc-128-  if (name) {
##############################################
chromium-84.0.4147.105/extensions/docs/testing_api.md-330-chrome.test.getConfig((config) => {
chromium-84.0.4147.105/extensions/docs/testing_api.md:331:  let url = `http://example.com:${config.port}/simple.html`;
chromium-84.0.4147.105/extensions/docs/testing_api.md-332-  createTab(url);
##############################################
chromium-84.0.4147.105/gpu/config/gpu_info_collector_win.cc-328-      reinterpret_cast<PFN_vkEnumeratePhysicalDevices>(
chromium-84.0.4147.105/gpu/config/gpu_info_collector_win.cc:329:          vkGetInstanceProcAddr(vk_instance, "vkEnumeratePhysicalDevices"));
chromium-84.0.4147.105/gpu/config/gpu_info_collector_win.cc-330-
##############################################
chromium-84.0.4147.105/gpu/config/gpu_info_collector_win.cc-332-      reinterpret_cast<PFN_vkEnumerateDeviceExtensionProperties>(
chromium-84.0.4147.105/gpu/config/gpu_info_collector_win.cc:333:          vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/config/gpu_info_collector_win.cc-334-                                "vkEnumerateDeviceExtensionProperties"));
##############################################
chromium-84.0.4147.105/gpu/tools/compositor_model_bench/shaders.cc-55-
chromium-84.0.4147.105/gpu/tools/compositor_model_bench/shaders.cc:56:#define ADDR(i, j) (i*4 + j) /* column major */
chromium-84.0.4147.105/gpu/tools/compositor_model_bench/shaders.cc-57-static void Project(const float* v, float* p) {
##############################################
chromium-84.0.4147.105/gpu/tools/compositor_model_bench/shaders.cc-59-    for (int j = 0; j < 4; ++j) {
chromium-84.0.4147.105/gpu/tools/compositor_model_bench/shaders.cc:60:      p[ADDR(i, j)] = 0;
chromium-84.0.4147.105/gpu/tools/compositor_model_bench/shaders.cc-61-      for (int k = 0; k < 4; ++k) {
chromium-84.0.4147.105/gpu/tools/compositor_model_bench/shaders.cc:62:        p[ADDR(i, j)] += g_projection_matrix[ADDR(k, i)] * v[ADDR(j, k)];
chromium-84.0.4147.105/gpu/tools/compositor_model_bench/shaders.cc-63-      }
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-37-      reinterpret_cast<PFN_vkEnumerateInstanceVersion>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:38:          vkGetInstanceProcAddr(nullptr, "vkEnumerateInstanceVersion"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-39-  // vkEnumerateInstanceVersion didn't exist in Vulkan 1.0, so we should
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-41-  vkCreateInstanceFn = reinterpret_cast<PFN_vkCreateInstance>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:42:      vkGetInstanceProcAddr(nullptr, "vkCreateInstance"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-43-  if (!vkCreateInstanceFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-50-      reinterpret_cast<PFN_vkEnumerateInstanceExtensionProperties>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:51:          vkGetInstanceProcAddr(nullptr,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-52-                                "vkEnumerateInstanceExtensionProperties"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-60-      reinterpret_cast<PFN_vkEnumerateInstanceLayerProperties>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:61:          vkGetInstanceProcAddr(nullptr, "vkEnumerateInstanceLayerProperties"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-62-  if (!vkEnumerateInstanceLayerPropertiesFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-75-  vkCreateDeviceFn = reinterpret_cast<PFN_vkCreateDevice>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:76:      vkGetInstanceProcAddr(vk_instance, "vkCreateDevice"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-77-  if (!vkCreateDeviceFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-83-  vkDestroyInstanceFn = reinterpret_cast<PFN_vkDestroyInstance>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:84:      vkGetInstanceProcAddr(vk_instance, "vkDestroyInstance"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-85-  if (!vkDestroyInstanceFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-92-      reinterpret_cast<PFN_vkEnumerateDeviceExtensionProperties>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:93:          vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-94-                                "vkEnumerateDeviceExtensionProperties"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-102-      reinterpret_cast<PFN_vkEnumerateDeviceLayerProperties>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:103:          vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-104-                                "vkEnumerateDeviceLayerProperties"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-112-      reinterpret_cast<PFN_vkEnumeratePhysicalDevices>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:113:          vkGetInstanceProcAddr(vk_instance, "vkEnumeratePhysicalDevices"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-114-  if (!vkEnumeratePhysicalDevicesFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-120-  vkGetDeviceProcAddrFn = reinterpret_cast<PFN_vkGetDeviceProcAddr>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:121:      vkGetInstanceProcAddr(vk_instance, "vkGetDeviceProcAddr"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-122-  if (!vkGetDeviceProcAddrFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-129-      reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:130:          vkGetInstanceProcAddr(vk_instance, "vkGetPhysicalDeviceFeatures"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-131-  if (!vkGetPhysicalDeviceFeaturesFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-138-      reinterpret_cast<PFN_vkGetPhysicalDeviceFormatProperties>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:139:          vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-140-                                "vkGetPhysicalDeviceFormatProperties"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-148-      reinterpret_cast<PFN_vkGetPhysicalDeviceMemoryProperties>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:149:          vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-150-                                "vkGetPhysicalDeviceMemoryProperties"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-158-      reinterpret_cast<PFN_vkGetPhysicalDeviceProperties>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:159:          vkGetInstanceProcAddr(vk_instance, "vkGetPhysicalDeviceProperties"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-160-  if (!vkGetPhysicalDevicePropertiesFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-167-      reinterpret_cast<PFN_vkGetPhysicalDeviceQueueFamilyProperties>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:168:          vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-169-                                "vkGetPhysicalDeviceQueueFamilyProperties"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-180-        reinterpret_cast<PFN_vkCreateDebugReportCallbackEXT>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:181:            vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-182-                                  "vkCreateDebugReportCallbackEXT"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-190-        reinterpret_cast<PFN_vkDestroyDebugReportCallbackEXT>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:191:            vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-192-                                  "vkDestroyDebugReportCallbackEXT"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-202-    vkDestroySurfaceKHRFn = reinterpret_cast<PFN_vkDestroySurfaceKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:203:        vkGetInstanceProcAddr(vk_instance, "vkDestroySurfaceKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-204-    if (!vkDestroySurfaceKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-211-        reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:212:            vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-213-                                  "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-221-        reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceFormatsKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:222:            vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-223-                                  "vkGetPhysicalDeviceSurfaceFormatsKHR"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-231-        reinterpret_cast<PFN_vkGetPhysicalDeviceSurfaceSupportKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:232:            vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-233-                                  "vkGetPhysicalDeviceSurfaceSupportKHR"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-244-    vkCreateXlibSurfaceKHRFn = reinterpret_cast<PFN_vkCreateXlibSurfaceKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:245:        vkGetInstanceProcAddr(vk_instance, "vkCreateXlibSurfaceKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-246-    if (!vkCreateXlibSurfaceKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-253-        reinterpret_cast<PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:254:            vkGetInstanceProcAddr(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-255-                vk_instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-267-    vkCreateWin32SurfaceKHRFn = reinterpret_cast<PFN_vkCreateWin32SurfaceKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:268:        vkGetInstanceProcAddr(vk_instance, "vkCreateWin32SurfaceKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-269-    if (!vkCreateWin32SurfaceKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-276-        reinterpret_cast<PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:277:            vkGetInstanceProcAddr(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-278-                vk_instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-291-        reinterpret_cast<PFN_vkCreateAndroidSurfaceKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:292:            vkGetInstanceProcAddr(vk_instance, "vkCreateAndroidSurfaceKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-293-    if (!vkCreateAndroidSurfaceKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-305-        reinterpret_cast<PFN_vkCreateImagePipeSurfaceFUCHSIA>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:306:            vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-307-                                  "vkCreateImagePipeSurfaceFUCHSIA"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-318-        reinterpret_cast<PFN_vkGetPhysicalDeviceImageFormatProperties2>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:319:            vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-320-                                  "vkGetPhysicalDeviceImageFormatProperties2"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-330-        reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures2>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:331:            vkGetInstanceProcAddr(vk_instance, "vkGetPhysicalDeviceFeatures2"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-332-    if (!vkGetPhysicalDeviceFeatures2Fn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-342-        reinterpret_cast<PFN_vkGetPhysicalDeviceFeatures2>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:343:            vkGetInstanceProcAddr(vk_instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-344-                                  "vkGetPhysicalDeviceFeatures2KHR"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-360-  vkAllocateCommandBuffersFn = reinterpret_cast<PFN_vkAllocateCommandBuffers>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:361:      vkGetDeviceProcAddr(vk_device, "vkAllocateCommandBuffers"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-362-  if (!vkAllocateCommandBuffersFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-368-  vkAllocateDescriptorSetsFn = reinterpret_cast<PFN_vkAllocateDescriptorSets>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:369:      vkGetDeviceProcAddr(vk_device, "vkAllocateDescriptorSets"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-370-  if (!vkAllocateDescriptorSetsFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-376-  vkAllocateMemoryFn = reinterpret_cast<PFN_vkAllocateMemory>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:377:      vkGetDeviceProcAddr(vk_device, "vkAllocateMemory"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-378-  if (!vkAllocateMemoryFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-384-  vkBeginCommandBufferFn = reinterpret_cast<PFN_vkBeginCommandBuffer>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:385:      vkGetDeviceProcAddr(vk_device, "vkBeginCommandBuffer"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-386-  if (!vkBeginCommandBufferFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-392-  vkBindBufferMemoryFn = reinterpret_cast<PFN_vkBindBufferMemory>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:393:      vkGetDeviceProcAddr(vk_device, "vkBindBufferMemory"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-394-  if (!vkBindBufferMemoryFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-400-  vkBindImageMemoryFn = reinterpret_cast<PFN_vkBindImageMemory>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:401:      vkGetDeviceProcAddr(vk_device, "vkBindImageMemory"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-402-  if (!vkBindImageMemoryFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-408-  vkCmdBeginRenderPassFn = reinterpret_cast<PFN_vkCmdBeginRenderPass>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:409:      vkGetDeviceProcAddr(vk_device, "vkCmdBeginRenderPass"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-410-  if (!vkCmdBeginRenderPassFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-416-  vkCmdCopyBufferFn = reinterpret_cast<PFN_vkCmdCopyBuffer>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:417:      vkGetDeviceProcAddr(vk_device, "vkCmdCopyBuffer"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-418-  if (!vkCmdCopyBufferFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-424-  vkCmdCopyBufferToImageFn = reinterpret_cast<PFN_vkCmdCopyBufferToImage>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:425:      vkGetDeviceProcAddr(vk_device, "vkCmdCopyBufferToImage"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-426-  if (!vkCmdCopyBufferToImageFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-432-  vkCmdEndRenderPassFn = reinterpret_cast<PFN_vkCmdEndRenderPass>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:433:      vkGetDeviceProcAddr(vk_device, "vkCmdEndRenderPass"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-434-  if (!vkCmdEndRenderPassFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-440-  vkCmdExecuteCommandsFn = reinterpret_cast<PFN_vkCmdExecuteCommands>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:441:      vkGetDeviceProcAddr(vk_device, "vkCmdExecuteCommands"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-442-  if (!vkCmdExecuteCommandsFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-448-  vkCmdNextSubpassFn = reinterpret_cast<PFN_vkCmdNextSubpass>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:449:      vkGetDeviceProcAddr(vk_device, "vkCmdNextSubpass"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-450-  if (!vkCmdNextSubpassFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-456-  vkCmdPipelineBarrierFn = reinterpret_cast<PFN_vkCmdPipelineBarrier>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:457:      vkGetDeviceProcAddr(vk_device, "vkCmdPipelineBarrier"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-458-  if (!vkCmdPipelineBarrierFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-464-  vkCreateBufferFn = reinterpret_cast<PFN_vkCreateBuffer>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:465:      vkGetDeviceProcAddr(vk_device, "vkCreateBuffer"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-466-  if (!vkCreateBufferFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-472-  vkCreateCommandPoolFn = reinterpret_cast<PFN_vkCreateCommandPool>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:473:      vkGetDeviceProcAddr(vk_device, "vkCreateCommandPool"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-474-  if (!vkCreateCommandPoolFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-480-  vkCreateDescriptorPoolFn = reinterpret_cast<PFN_vkCreateDescriptorPool>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:481:      vkGetDeviceProcAddr(vk_device, "vkCreateDescriptorPool"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-482-  if (!vkCreateDescriptorPoolFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-489-      reinterpret_cast<PFN_vkCreateDescriptorSetLayout>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:490:          vkGetDeviceProcAddr(vk_device, "vkCreateDescriptorSetLayout"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-491-  if (!vkCreateDescriptorSetLayoutFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-497-  vkCreateFenceFn = reinterpret_cast<PFN_vkCreateFence>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:498:      vkGetDeviceProcAddr(vk_device, "vkCreateFence"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-499-  if (!vkCreateFenceFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-505-  vkCreateFramebufferFn = reinterpret_cast<PFN_vkCreateFramebuffer>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:506:      vkGetDeviceProcAddr(vk_device, "vkCreateFramebuffer"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-507-  if (!vkCreateFramebufferFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-513-  vkCreateImageFn = reinterpret_cast<PFN_vkCreateImage>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:514:      vkGetDeviceProcAddr(vk_device, "vkCreateImage"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-515-  if (!vkCreateImageFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-521-  vkCreateImageViewFn = reinterpret_cast<PFN_vkCreateImageView>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:522:      vkGetDeviceProcAddr(vk_device, "vkCreateImageView"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-523-  if (!vkCreateImageViewFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-529-  vkCreateRenderPassFn = reinterpret_cast<PFN_vkCreateRenderPass>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:530:      vkGetDeviceProcAddr(vk_device, "vkCreateRenderPass"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-531-  if (!vkCreateRenderPassFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-537-  vkCreateSamplerFn = reinterpret_cast<PFN_vkCreateSampler>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:538:      vkGetDeviceProcAddr(vk_device, "vkCreateSampler"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-539-  if (!vkCreateSamplerFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-545-  vkCreateSemaphoreFn = reinterpret_cast<PFN_vkCreateSemaphore>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:546:      vkGetDeviceProcAddr(vk_device, "vkCreateSemaphore"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-547-  if (!vkCreateSemaphoreFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-553-  vkCreateShaderModuleFn = reinterpret_cast<PFN_vkCreateShaderModule>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:554:      vkGetDeviceProcAddr(vk_device, "vkCreateShaderModule"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-555-  if (!vkCreateShaderModuleFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-561-  vkDestroyBufferFn = reinterpret_cast<PFN_vkDestroyBuffer>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:562:      vkGetDeviceProcAddr(vk_device, "vkDestroyBuffer"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-563-  if (!vkDestroyBufferFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-569-  vkDestroyCommandPoolFn = reinterpret_cast<PFN_vkDestroyCommandPool>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:570:      vkGetDeviceProcAddr(vk_device, "vkDestroyCommandPool"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-571-  if (!vkDestroyCommandPoolFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-577-  vkDestroyDescriptorPoolFn = reinterpret_cast<PFN_vkDestroyDescriptorPool>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:578:      vkGetDeviceProcAddr(vk_device, "vkDestroyDescriptorPool"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-579-  if (!vkDestroyDescriptorPoolFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-586-      reinterpret_cast<PFN_vkDestroyDescriptorSetLayout>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:587:          vkGetDeviceProcAddr(vk_device, "vkDestroyDescriptorSetLayout"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-588-  if (!vkDestroyDescriptorSetLayoutFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-594-  vkDestroyDeviceFn = reinterpret_cast<PFN_vkDestroyDevice>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:595:      vkGetDeviceProcAddr(vk_device, "vkDestroyDevice"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-596-  if (!vkDestroyDeviceFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-602-  vkDestroyFenceFn = reinterpret_cast<PFN_vkDestroyFence>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:603:      vkGetDeviceProcAddr(vk_device, "vkDestroyFence"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-604-  if (!vkDestroyFenceFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-610-  vkDestroyFramebufferFn = reinterpret_cast<PFN_vkDestroyFramebuffer>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:611:      vkGetDeviceProcAddr(vk_device, "vkDestroyFramebuffer"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-612-  if (!vkDestroyFramebufferFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-618-  vkDestroyImageFn = reinterpret_cast<PFN_vkDestroyImage>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:619:      vkGetDeviceProcAddr(vk_device, "vkDestroyImage"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-620-  if (!vkDestroyImageFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-626-  vkDestroyImageViewFn = reinterpret_cast<PFN_vkDestroyImageView>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:627:      vkGetDeviceProcAddr(vk_device, "vkDestroyImageView"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-628-  if (!vkDestroyImageViewFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-634-  vkDestroyRenderPassFn = reinterpret_cast<PFN_vkDestroyRenderPass>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:635:      vkGetDeviceProcAddr(vk_device, "vkDestroyRenderPass"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-636-  if (!vkDestroyRenderPassFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-642-  vkDestroySamplerFn = reinterpret_cast<PFN_vkDestroySampler>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:643:      vkGetDeviceProcAddr(vk_device, "vkDestroySampler"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-644-  if (!vkDestroySamplerFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-650-  vkDestroySemaphoreFn = reinterpret_cast<PFN_vkDestroySemaphore>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:651:      vkGetDeviceProcAddr(vk_device, "vkDestroySemaphore"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-652-  if (!vkDestroySemaphoreFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-658-  vkDestroyShaderModuleFn = reinterpret_cast<PFN_vkDestroyShaderModule>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:659:      vkGetDeviceProcAddr(vk_device, "vkDestroyShaderModule"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-660-  if (!vkDestroyShaderModuleFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-666-  vkDeviceWaitIdleFn = reinterpret_cast<PFN_vkDeviceWaitIdle>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:667:      vkGetDeviceProcAddr(vk_device, "vkDeviceWaitIdle"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-668-  if (!vkDeviceWaitIdleFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-674-  vkFlushMappedMemoryRangesFn = reinterpret_cast<PFN_vkFlushMappedMemoryRanges>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:675:      vkGetDeviceProcAddr(vk_device, "vkFlushMappedMemoryRanges"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-676-  if (!vkFlushMappedMemoryRangesFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-682-  vkEndCommandBufferFn = reinterpret_cast<PFN_vkEndCommandBuffer>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:683:      vkGetDeviceProcAddr(vk_device, "vkEndCommandBuffer"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-684-  if (!vkEndCommandBufferFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-690-  vkFreeCommandBuffersFn = reinterpret_cast<PFN_vkFreeCommandBuffers>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:691:      vkGetDeviceProcAddr(vk_device, "vkFreeCommandBuffers"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-692-  if (!vkFreeCommandBuffersFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-698-  vkFreeDescriptorSetsFn = reinterpret_cast<PFN_vkFreeDescriptorSets>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:699:      vkGetDeviceProcAddr(vk_device, "vkFreeDescriptorSets"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-700-  if (!vkFreeDescriptorSetsFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-706-  vkFreeMemoryFn = reinterpret_cast<PFN_vkFreeMemory>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:707:      vkGetDeviceProcAddr(vk_device, "vkFreeMemory"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-708-  if (!vkFreeMemoryFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-715-      reinterpret_cast<PFN_vkInvalidateMappedMemoryRanges>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:716:          vkGetDeviceProcAddr(vk_device, "vkInvalidateMappedMemoryRanges"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-717-  if (!vkInvalidateMappedMemoryRangesFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-724-      reinterpret_cast<PFN_vkGetBufferMemoryRequirements>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:725:          vkGetDeviceProcAddr(vk_device, "vkGetBufferMemoryRequirements"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-726-  if (!vkGetBufferMemoryRequirementsFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-732-  vkGetDeviceQueueFn = reinterpret_cast<PFN_vkGetDeviceQueue>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:733:      vkGetDeviceProcAddr(vk_device, "vkGetDeviceQueue"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-734-  if (!vkGetDeviceQueueFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-740-  vkGetFenceStatusFn = reinterpret_cast<PFN_vkGetFenceStatus>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:741:      vkGetDeviceProcAddr(vk_device, "vkGetFenceStatus"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-742-  if (!vkGetFenceStatusFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-749-      reinterpret_cast<PFN_vkGetImageMemoryRequirements>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:750:          vkGetDeviceProcAddr(vk_device, "vkGetImageMemoryRequirements"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-751-  if (!vkGetImageMemoryRequirementsFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-757-  vkMapMemoryFn = reinterpret_cast<PFN_vkMapMemory>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:758:      vkGetDeviceProcAddr(vk_device, "vkMapMemory"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-759-  if (!vkMapMemoryFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-765-  vkQueueSubmitFn = reinterpret_cast<PFN_vkQueueSubmit>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:766:      vkGetDeviceProcAddr(vk_device, "vkQueueSubmit"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-767-  if (!vkQueueSubmitFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-773-  vkQueueWaitIdleFn = reinterpret_cast<PFN_vkQueueWaitIdle>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:774:      vkGetDeviceProcAddr(vk_device, "vkQueueWaitIdle"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-775-  if (!vkQueueWaitIdleFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-781-  vkResetCommandBufferFn = reinterpret_cast<PFN_vkResetCommandBuffer>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:782:      vkGetDeviceProcAddr(vk_device, "vkResetCommandBuffer"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-783-  if (!vkResetCommandBufferFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-789-  vkResetFencesFn = reinterpret_cast<PFN_vkResetFences>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:790:      vkGetDeviceProcAddr(vk_device, "vkResetFences"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-791-  if (!vkResetFencesFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-797-  vkUnmapMemoryFn = reinterpret_cast<PFN_vkUnmapMemory>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:798:      vkGetDeviceProcAddr(vk_device, "vkUnmapMemory"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-799-  if (!vkUnmapMemoryFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-805-  vkUpdateDescriptorSetsFn = reinterpret_cast<PFN_vkUpdateDescriptorSets>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:806:      vkGetDeviceProcAddr(vk_device, "vkUpdateDescriptorSets"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-807-  if (!vkUpdateDescriptorSetsFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-813-  vkWaitForFencesFn = reinterpret_cast<PFN_vkWaitForFences>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:814:      vkGetDeviceProcAddr(vk_device, "vkWaitForFences"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-815-  if (!vkWaitForFencesFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-822-    vkGetDeviceQueue2Fn = reinterpret_cast<PFN_vkGetDeviceQueue2>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:823:        vkGetDeviceProcAddr(vk_device, "vkGetDeviceQueue2"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-824-    if (!vkGetDeviceQueue2Fn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-831-        reinterpret_cast<PFN_vkGetBufferMemoryRequirements2>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:832:            vkGetDeviceProcAddr(vk_device, "vkGetBufferMemoryRequirements2"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-833-    if (!vkGetBufferMemoryRequirements2Fn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-840-        reinterpret_cast<PFN_vkGetImageMemoryRequirements2>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:841:            vkGetDeviceProcAddr(vk_device, "vkGetImageMemoryRequirements2"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-842-    if (!vkGetImageMemoryRequirements2Fn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-854-        reinterpret_cast<PFN_vkGetAndroidHardwareBufferPropertiesANDROID>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:855:            vkGetDeviceProcAddr(vk_device,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-856-                                "vkGetAndroidHardwareBufferPropertiesANDROID"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-868-    vkGetSemaphoreFdKHRFn = reinterpret_cast<PFN_vkGetSemaphoreFdKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:869:        vkGetDeviceProcAddr(vk_device, "vkGetSemaphoreFdKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-870-    if (!vkGetSemaphoreFdKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-876-    vkImportSemaphoreFdKHRFn = reinterpret_cast<PFN_vkImportSemaphoreFdKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:877:        vkGetDeviceProcAddr(vk_device, "vkImportSemaphoreFdKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-878-    if (!vkImportSemaphoreFdKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-890-        reinterpret_cast<PFN_vkGetSemaphoreWin32HandleKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:891:            vkGetDeviceProcAddr(vk_device, "vkGetSemaphoreWin32HandleKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-892-    if (!vkGetSemaphoreWin32HandleKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-899-        reinterpret_cast<PFN_vkImportSemaphoreWin32HandleKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:900:            vkGetDeviceProcAddr(vk_device, "vkImportSemaphoreWin32HandleKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-901-    if (!vkImportSemaphoreWin32HandleKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-912-    vkGetMemoryFdKHRFn = reinterpret_cast<PFN_vkGetMemoryFdKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:913:        vkGetDeviceProcAddr(vk_device, "vkGetMemoryFdKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-914-    if (!vkGetMemoryFdKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-921-        reinterpret_cast<PFN_vkGetMemoryFdPropertiesKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:922:            vkGetDeviceProcAddr(vk_device, "vkGetMemoryFdPropertiesKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-923-    if (!vkGetMemoryFdPropertiesKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-935-        reinterpret_cast<PFN_vkGetMemoryWin32HandleKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:936:            vkGetDeviceProcAddr(vk_device, "vkGetMemoryWin32HandleKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-937-    if (!vkGetMemoryWin32HandleKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-944-        reinterpret_cast<PFN_vkGetMemoryWin32HandlePropertiesKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:945:            vkGetDeviceProcAddr(vk_device,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-946-                                "vkGetMemoryWin32HandlePropertiesKHR"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-959-        reinterpret_cast<PFN_vkImportSemaphoreZirconHandleFUCHSIA>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:960:            vkGetDeviceProcAddr(vk_device,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-961-                                "vkImportSemaphoreZirconHandleFUCHSIA"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-969-        reinterpret_cast<PFN_vkGetSemaphoreZirconHandleFUCHSIA>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:970:            vkGetDeviceProcAddr(vk_device,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-971-                                "vkGetSemaphoreZirconHandleFUCHSIA"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-984-        reinterpret_cast<PFN_vkGetMemoryZirconHandleFUCHSIA>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:985:            vkGetDeviceProcAddr(vk_device, "vkGetMemoryZirconHandleFUCHSIA"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-986-    if (!vkGetMemoryZirconHandleFUCHSIAFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-998-        reinterpret_cast<PFN_vkCreateBufferCollectionFUCHSIA>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:999:            vkGetDeviceProcAddr(vk_device, "vkCreateBufferCollectionFUCHSIA"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1000-    if (!vkCreateBufferCollectionFUCHSIAFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1007-        reinterpret_cast<PFN_vkSetBufferCollectionConstraintsFUCHSIA>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:1008:            vkGetDeviceProcAddr(vk_device,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1009-                                "vkSetBufferCollectionConstraintsFUCHSIA"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1017-        reinterpret_cast<PFN_vkGetBufferCollectionPropertiesFUCHSIA>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:1018:            vkGetDeviceProcAddr(vk_device,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1019-                                "vkGetBufferCollectionPropertiesFUCHSIA"));
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1027-        reinterpret_cast<PFN_vkDestroyBufferCollectionFUCHSIA>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:1028:            vkGetDeviceProcAddr(vk_device, "vkDestroyBufferCollectionFUCHSIA"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1029-    if (!vkDestroyBufferCollectionFUCHSIAFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1038-    vkAcquireNextImageKHRFn = reinterpret_cast<PFN_vkAcquireNextImageKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:1039:        vkGetDeviceProcAddr(vk_device, "vkAcquireNextImageKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1040-    if (!vkAcquireNextImageKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1046-    vkCreateSwapchainKHRFn = reinterpret_cast<PFN_vkCreateSwapchainKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:1047:        vkGetDeviceProcAddr(vk_device, "vkCreateSwapchainKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1048-    if (!vkCreateSwapchainKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1054-    vkDestroySwapchainKHRFn = reinterpret_cast<PFN_vkDestroySwapchainKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:1055:        vkGetDeviceProcAddr(vk_device, "vkDestroySwapchainKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1056-    if (!vkDestroySwapchainKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1062-    vkGetSwapchainImagesKHRFn = reinterpret_cast<PFN_vkGetSwapchainImagesKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:1063:        vkGetDeviceProcAddr(vk_device, "vkGetSwapchainImagesKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1064-    if (!vkGetSwapchainImagesKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1070-    vkQueuePresentKHRFn = reinterpret_cast<PFN_vkQueuePresentKHR>(
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc:1071:        vkGetDeviceProcAddr(vk_device, "vkQueuePresentKHR"));
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.cc-1072-    if (!vkQueuePresentKHRFn) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.h-293-// Unassociated functions
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.h:294:ALWAYS_INLINE PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance instance,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.h-295-                                                       const char* pName) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.h-360-}
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.h:361:ALWAYS_INLINE PFN_vkVoidFunction vkGetDeviceProcAddr(VkDevice device,
chromium-84.0.4147.105/gpu/vulkan/vulkan_function_pointers.h-362-                                                     const char* pName) {
##############################################
chromium-84.0.4147.105/gpu/vulkan/generate_bindings.py-578-      reinterpret_cast<PFN_vkEnumerateInstanceVersion>(
chromium-84.0.4147.105/gpu/vulkan/generate_bindings.py:579:          vkGetInstanceProcAddr(nullptr, "vkEnumerateInstanceVersion"));
chromium-84.0.4147.105/gpu/vulkan/generate_bindings.py-580-  // vkEnumerateInstanceVersion didn't exist in Vulkan 1.0, so we should
##############################################
chromium-84.0.4147.105/build/config/ios/BUILD.gn-20-  # where a part of libvpx is compiled from the assembly code written using
chromium-84.0.4147.105/build/config/ios/BUILD.gn:21:  # Intel assembly syntax; Yasm / Nasm do not support emitting bitcode parts.
chromium-84.0.4147.105/build/config/ios/BUILD.gn-22-  # That is not a limitation for now as Xcode mandates the presence of bitcode
##############################################
chromium-84.0.4147.105/build/install-build-deps.sh-727-  echo "Installing Chrome OS fonts."
chromium-84.0.4147.105/build/install-build-deps.sh:728:  dir=`echo $0 | sed -r -e 's/\/[^/]+$//'`
chromium-84.0.4147.105/build/install-build-deps.sh-729-  if ! sudo $dir/linux/install-chromeos-fonts.py; then
chromium-84.0.4147.105/build/install-build-deps.sh-730-    echo "ERROR: The installation of the Chrome OS default fonts failed."
chromium-84.0.4147.105/build/install-build-deps.sh:731:    if [ `stat -f -c %T $dir` == "nfs" ]; then
chromium-84.0.4147.105/build/install-build-deps.sh-732-      echo "The reason is that your repo is installed on a remote file system."
##############################################
chromium-84.0.4147.105/build/android/gyp/write_build_config.py-241-through Proguard or other tools. For most targets this is generated
chromium-84.0.4147.105/build/android/gyp/write_build_config.py:242:from sources, with a name like `$target_name.javac.jar`. However, when using
chromium-84.0.4147.105/build/android/gyp/write_build_config.py-243-a prebuilt jar, this will point to the source archive directly.
##############################################
chromium-84.0.4147.105/build/android/gyp/write_build_config.py-409-`<source-path>:<destination-path>`, where `<source-path>` is relative to
chromium-84.0.4147.105/build/android/gyp/write_build_config.py:410:`$CHROMIUM_OUTPUT_DIR`, and `<destination-path>` is relative to `//assets/`
chromium-84.0.4147.105/build/android/gyp/write_build_config.py-411-within the APK.
##############################################
chromium-84.0.4147.105/build/android/gyp/util/zipalign.py-76-  # Extra field used to 4-byte align classes.dex. Alignment speeds up
chromium-84.0.4147.105/build/android/gyp/util/zipalign.py:77:  # execution when dex files are used via incremental install.
chromium-84.0.4147.105/build/android/gyp/util/zipalign.py-78-  zip_info.extra = b'\0' * padding_needed
##############################################
chromium-84.0.4147.105/build/android/gradle/gn_to_cmake.py-443-  flags.extend(target.properties.get('cflags', []))
chromium-84.0.4147.105/build/android/gradle/gn_to_cmake.py:444:  cflags_asm = target.properties.get('asmflags', [])
chromium-84.0.4147.105/build/android/gradle/gn_to_cmake.py-445-  cflags_c = target.properties.get('cflags_c', [])
##############################################
chromium-84.0.4147.105/build/android/docs/java_optimization.md-80-1. Using APK wrapper scripts (stacks are automatically deobfuscated)
chromium-84.0.4147.105/build/android/docs/java_optimization.md:81:  * `$OUT/bin/chrome_public_apk logcat`  # Run adb logcat
chromium-84.0.4147.105/build/android/docs/java_optimization.md:82:  * `$OUT/bin/chrome_public_apk run`  # Launch chrome and run adb logcat
chromium-84.0.4147.105/build/android/docs/java_optimization.md-83-
##############################################
chromium-84.0.4147.105/build/android/docs/java_optimization.md-86-    * ProGuard mapping files are located beside APKs (ex.
chromium-84.0.4147.105/build/android/docs/java_optimization.md:87:      `$OUT/apks/ChromePublic.apk` and `$OUT/apks/ChromePublic.apk.mapping`)
chromium-84.0.4147.105/build/android/docs/java_optimization.md-88-
##############################################
chromium-84.0.4147.105/build/android/docs/java_toolchain.md-120-
chromium-84.0.4147.105/build/android/docs/java_toolchain.md:121:* The `.jar` is copied into `$root_build_dir/lib.java` (under target-specific
chromium-84.0.4147.105/build/android/docs/java_toolchain.md-122-  subdirectories) so that it will be included by bot archive steps.
##############################################
chromium-84.0.4147.105/build/android/docs/build_config.md-15-
chromium-84.0.4147.105/build/android/docs/build_config.md:16:They are always written to `$target_gen_dir/${target_name}.build_config`.
chromium-84.0.4147.105/build/android/docs/build_config.md-17-
##############################################
chromium-84.0.4147.105/build/android/docs/build_config.md-44-This will end up generating the following JSON file under
chromium-84.0.4147.105/build/android/docs/build_config.md:45:`$CHROMIUM_OUTPUT_DIR/gen/ui/android/ui_java_resources.build_config`:
chromium-84.0.4147.105/build/android/docs/build_config.md-46-
##############################################
chromium-84.0.4147.105/build/android/docs/build_config.md-75-NOTE: All path values in `.build_config` files are relative to your
chromium-84.0.4147.105/build/android/docs/build_config.md:76:`$CHROMIUM_OUTPUT_DIR`.
chromium-84.0.4147.105/build/android/docs/build_config.md-77-
##############################################
chromium-84.0.4147.105/build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java-98-        /* DEBUGGING:
chromium-84.0.4147.105/build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java:99:         To see objectweb.asm code that will generate bytecode for a given class:
chromium-84.0.4147.105/build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java-100-
##############################################
chromium-84.0.4147.105/build/sanitize-win-build-log.sh-4-# found in the LICENSE file.
chromium-84.0.4147.105/build/sanitize-win-build-log.sh:5:sed -r -f `dirname "${0}"`/`basename "${0}" sh`sed
##############################################
chromium-84.0.4147.105/build/linux/pkg-config-wrapper-30-
chromium-84.0.4147.105/build/linux/pkg-config-wrapper:31:rewrite=`dirname $0`/rewrite_dirs.py
chromium-84.0.4147.105/build/linux/pkg-config-wrapper-32-package=${!#}
##############################################
chromium-84.0.4147.105/build/linux/pkg-config-wrapper-43-# pkg-config's |prefix| variable.
chromium-84.0.4147.105/build/linux/pkg-config-wrapper:44:prefix=`PKG_CONFIG_LIBDIR=$libdir pkg-config --variable=prefix "$package" | sed -e 's|/usr$||'`
chromium-84.0.4147.105/build/linux/pkg-config-wrapper:45:result=`PKG_CONFIG_LIBDIR=$libdir pkg-config "$@"`
chromium-84.0.4147.105/build/linux/pkg-config-wrapper-46-echo "$result"| $rewrite --sysroot "$root" --strip-prefix "$prefix"
##############################################
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-72-**Option 1:** To make outputs visible in codesearch (e.g. generated sources):
chromium-84.0.4147.105/build/docs/writing_gn_templates.md:73:* use `$target_gen_dir/$target_name.$EXTENSION`.
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-74-
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-75-**Option 2:** Otherwise (for binary files):
chromium-84.0.4147.105/build/docs/writing_gn_templates.md:76:* use `$target_out_dir/$target_name.$EXTENSION`.
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-77-
##############################################
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-81-configurations. In this case:
chromium-84.0.4147.105/build/docs/writing_gn_templates.md:82:* use `$root_out_dir/gen.runtime` or `$root_out_dir/obj.runtime`.
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-83-
##############################################
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-92-be derived at runtime:
chromium-84.0.4147.105/build/docs/writing_gn_templates.md:93:* use `$root_build_dir/YOUR_NAME_HERE/$target_name`.
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-94-
##############################################
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-162-Targets that are not relevant to users of your template should be named as:
chromium-84.0.4147.105/build/docs/writing_gn_templates.md:163:`${target_name}__$something`.
chromium-84.0.4147.105/build/docs/writing_gn_templates.md-164-
##############################################
chromium-84.0.4147.105/build/sanitize-mac-build-log.sh-4-# found in the LICENSE file.
chromium-84.0.4147.105/build/sanitize-mac-build-log.sh:5:sed -r -f `dirname "${0}"`/`basename "${0}" sh`sed
##############################################
chromium-84.0.4147.105/build/toolchain/win/rc/README.md-28-Alternatively, gn could be taught about deps on tools, or rc invocations could
chromium-84.0.4147.105/build/toolchain/win/rc/README.md:29:be not a tool but a template like e.g. yasm invocations (which can have deps),
chromium-84.0.4147.105/build/toolchain/win/rc/README.md-30-then the prebuilt binaries wouldn't be needed.
##############################################
chromium-84.0.4147.105/build/toolchain/win/BUILD.gn-287-
chromium-84.0.4147.105/build/toolchain/win/BUILD.gn:288:      description = "ASM {{output}}"
chromium-84.0.4147.105/build/toolchain/win/BUILD.gn-289-      outputs = [ "$object_subdir/{{source_name_part}}.obj" ]
##############################################
chromium-84.0.4147.105/build/toolchain/win/ml.py-188-  # Note: Usually the .debug$S section is the last, but for files saying
chromium-84.0.4147.105/build/toolchain/win/ml.py:189:  # `includelib foo.lib`, like safe_terminate_process.asm in 32-bit builds,
chromium-84.0.4147.105/build/toolchain/win/ml.py-190-  # this isn't true: .drectve is after .debug$S.
##############################################
chromium-84.0.4147.105/build/toolchain/mac/BUILD.gn-228-      depsformat = "gcc"
chromium-84.0.4147.105/build/toolchain/mac/BUILD.gn:229:      description = "ASM {{output}}"
chromium-84.0.4147.105/build/toolchain/mac/BUILD.gn-230-      outputs = [ "$object_subdir/{{source_name_part}}.o" ]
##############################################
chromium-84.0.4147.105/build/toolchain/gcc_toolchain.gni-226-    cxx = compiler_prefix + invoker.cxx
chromium-84.0.4147.105/build/toolchain/gcc_toolchain.gni:227:    asm = asm_prefix + invoker.cc
chromium-84.0.4147.105/build/toolchain/gcc_toolchain.gni-228-    ar = invoker.ar
##############################################
chromium-84.0.4147.105/build/toolchain/gcc_toolchain.gni-320-      depfile = "{{output}}.d"
chromium-84.0.4147.105/build/toolchain/gcc_toolchain.gni:321:      command = "$asm -MMD -MF $depfile ${rebuild_string}{{defines}} {{include_dirs}} {{asmflags}}${extra_asmflags} -c {{source}} -o {{output}}"
chromium-84.0.4147.105/build/toolchain/gcc_toolchain.gni-322-      depsformat = "gcc"
chromium-84.0.4147.105/build/toolchain/gcc_toolchain.gni:323:      description = "ASM {{output}}"
chromium-84.0.4147.105/build/toolchain/gcc_toolchain.gni-324-      outputs = [ "$object_subdir/{{source_name_part}}.o" ]
##############################################
chromium-84.0.4147.105/base/base_paths_mac.mm-56-  Dl_info info;
chromium-84.0.4147.105/base/base_paths_mac.mm:57:  if (dladdr(address, &info) == 0)
chromium-84.0.4147.105/base/base_paths_mac.mm-58-    return false;
##############################################
chromium-84.0.4147.105/base/win/pe_image.h-121-  // out of bounds.
chromium-84.0.4147.105/base/win/pe_image.h:122:  PVOID GetImageDirectoryEntryAddr(UINT directory) const;
chromium-84.0.4147.105/base/win/pe_image.h-123-
chromium-84.0.4147.105/base/win/pe_image.h-124-  // Returns the section header for a given address.
chromium-84.0.4147.105/base/win/pe_image.h:125:  // Use: s = image.GetImageSectionFromAddr(a);
chromium-84.0.4147.105/base/win/pe_image.h-126-  // Post: 's' is the section header of the section that contains 'a'
chromium-84.0.4147.105/base/win/pe_image.h-127-  //       or NULL if there is no such section.
chromium-84.0.4147.105/base/win/pe_image.h:128:  PIMAGE_SECTION_HEADER GetImageSectionFromAddr(PVOID address) const;
chromium-84.0.4147.105/base/win/pe_image.h-129-
##############################################
chromium-84.0.4147.105/base/win/pe_image.h-170-  //       then p is the special value -1. In this case
chromium-84.0.4147.105/base/win/pe_image.h:171:  //       RVAToAddr(*GetExportEntry) can be used to resolve
chromium-84.0.4147.105/base/win/pe_image.h-172-  //       the string that describes the forward.
##############################################
chromium-84.0.4147.105/base/win/pe_image.h-255-  // Converts an rva value to the appropriate address.
chromium-84.0.4147.105/base/win/pe_image.h:256:  virtual PVOID RVAToAddr(uintptr_t rva) const;
chromium-84.0.4147.105/base/win/pe_image.h-257-
##############################################
chromium-84.0.4147.105/base/win/pe_image.h-279-
chromium-84.0.4147.105/base/win/pe_image.h:280:  PVOID RVAToAddr(uintptr_t rva) const override;
chromium-84.0.4147.105/base/win/pe_image.h-281-};
##############################################
chromium-84.0.4147.105/base/win/pe_image.h-296-  return reinterpret_cast<PIMAGE_IMPORT_DESCRIPTOR>(
chromium-84.0.4147.105/base/win/pe_image.h:297:      GetImageDirectoryEntryAddr(IMAGE_DIRECTORY_ENTRY_IMPORT));
chromium-84.0.4147.105/base/win/pe_image.h-298-}
##############################################
chromium-84.0.4147.105/base/win/pe_image.h-301-  return reinterpret_cast<PIMAGE_EXPORT_DIRECTORY>(
chromium-84.0.4147.105/base/win/pe_image.h:302:      GetImageDirectoryEntryAddr(IMAGE_DIRECTORY_ENTRY_EXPORT));
chromium-84.0.4147.105/base/win/pe_image.h-303-}
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-121-
chromium-84.0.4147.105/base/win/pe_image.cc:122:PVOID PEImage::GetImageDirectoryEntryAddr(UINT directory) const {
chromium-84.0.4147.105/base/win/pe_image.cc-123-  const IMAGE_DATA_DIRECTORY* const entry = GetDataDirectory(directory);
chromium-84.0.4147.105/base/win/pe_image.cc:124:  return entry ? RVAToAddr(entry->VirtualAddress) : nullptr;
chromium-84.0.4147.105/base/win/pe_image.cc-125-}
chromium-84.0.4147.105/base/win/pe_image.cc-126-
chromium-84.0.4147.105/base/win/pe_image.cc:127:PIMAGE_SECTION_HEADER PEImage::GetImageSectionFromAddr(PVOID address) const {
chromium-84.0.4147.105/base/win/pe_image.cc-128-  PBYTE target = reinterpret_cast<PBYTE>(address);
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-133-    PBYTE start =
chromium-84.0.4147.105/base/win/pe_image.cc:134:        reinterpret_cast<PBYTE>(PEImage::RVAToAddr(section->VirtualAddress));
chromium-84.0.4147.105/base/win/pe_image.cc-135-
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-172-      reinterpret_cast<PIMAGE_DEBUG_DIRECTORY>(
chromium-84.0.4147.105/base/win/pe_image.cc:173:          GetImageDirectoryEntryAddr(IMAGE_DIRECTORY_ENTRY_DEBUG));
chromium-84.0.4147.105/base/win/pe_image.cc-174-  if (!debug_directory)
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-184-    const PdbInfo* pdb_info =
chromium-84.0.4147.105/base/win/pe_image.cc:185:        reinterpret_cast<const PdbInfo*>(RVAToAddr(entry.AddressOfRawData));
chromium-84.0.4147.105/base/win/pe_image.cc-186-    if (!pdb_info)
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-220-  PDWORD functions =
chromium-84.0.4147.105/base/win/pe_image.cc:221:      reinterpret_cast<PDWORD>(RVAToAddr(exports->AddressOfFunctions));
chromium-84.0.4147.105/base/win/pe_image.cc-222-
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-230-
chromium-84.0.4147.105/base/win/pe_image.cc:231:  PBYTE function = reinterpret_cast<PBYTE>(RVAToAddr(*export_entry));
chromium-84.0.4147.105/base/win/pe_image.cc-232-
chromium-84.0.4147.105/base/win/pe_image.cc-233-  PBYTE exports = reinterpret_cast<PBYTE>(
chromium-84.0.4147.105/base/win/pe_image.cc:234:      GetImageDirectoryEntryAddr(IMAGE_DIRECTORY_ENTRY_EXPORT));
chromium-84.0.4147.105/base/win/pe_image.cc-235-  DWORD size = GetImageDirectoryEntrySize(IMAGE_DIRECTORY_ENTRY_EXPORT);
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-257-  } else {
chromium-84.0.4147.105/base/win/pe_image.cc:258:    PDWORD names = reinterpret_cast<PDWORD>(RVAToAddr(exports->AddressOfNames));
chromium-84.0.4147.105/base/win/pe_image.cc-259-    PDWORD lower = names;
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-265-      PDWORD middle = lower + (upper - lower) / 2;
chromium-84.0.4147.105/base/win/pe_image.cc:266:      LPCSTR name = reinterpret_cast<LPCSTR>(RVAToAddr(*middle));
chromium-84.0.4147.105/base/win/pe_image.cc-267-
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-286-    PWORD ordinals =
chromium-84.0.4147.105/base/win/pe_image.cc:287:        reinterpret_cast<PWORD>(RVAToAddr(exports->AddressOfNameOrdinals));
chromium-84.0.4147.105/base/win/pe_image.cc-288-
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-300-  for (UINT i = 0; i < num_sections; i++, section++) {
chromium-84.0.4147.105/base/win/pe_image.cc:301:    PVOID section_start = RVAToAddr(section->VirtualAddress);
chromium-84.0.4147.105/base/win/pe_image.cc-302-    DWORD size = section->Misc.VirtualSize;
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-311-bool PEImage::EnumExports(EnumExportsFunction callback, PVOID cookie) const {
chromium-84.0.4147.105/base/win/pe_image.cc:312:  PVOID directory = GetImageDirectoryEntryAddr(IMAGE_DIRECTORY_ENTRY_EXPORT);
chromium-84.0.4147.105/base/win/pe_image.cc-313-  DWORD size = GetImageDirectoryEntrySize(IMAGE_DIRECTORY_ENTRY_EXPORT);
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-324-  PDWORD functions =
chromium-84.0.4147.105/base/win/pe_image.cc:325:      reinterpret_cast<PDWORD>(RVAToAddr(exports->AddressOfFunctions));
chromium-84.0.4147.105/base/win/pe_image.cc:326:  PDWORD names = reinterpret_cast<PDWORD>(RVAToAddr(exports->AddressOfNames));
chromium-84.0.4147.105/base/win/pe_image.cc-327-  PWORD ordinals =
chromium-84.0.4147.105/base/win/pe_image.cc:328:      reinterpret_cast<PWORD>(RVAToAddr(exports->AddressOfNameOrdinals));
chromium-84.0.4147.105/base/win/pe_image.cc-329-
chromium-84.0.4147.105/base/win/pe_image.cc-330-  for (UINT count = 0; count < num_funcs; count++) {
chromium-84.0.4147.105/base/win/pe_image.cc:331:    PVOID func = RVAToAddr(functions[count]);
chromium-84.0.4147.105/base/win/pe_image.cc-332-    if (nullptr == func)
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-339-      if (ordinals[hint] == count) {
chromium-84.0.4147.105/base/win/pe_image.cc:340:        name = reinterpret_cast<LPCSTR>(RVAToAddr(names[hint]));
chromium-84.0.4147.105/base/win/pe_image.cc-341-        break;
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-365-bool PEImage::EnumRelocs(EnumRelocsFunction callback, PVOID cookie) const {
chromium-84.0.4147.105/base/win/pe_image.cc:366:  PVOID directory = GetImageDirectoryEntryAddr(IMAGE_DIRECTORY_ENTRY_BASERELOC);
chromium-84.0.4147.105/base/win/pe_image.cc-367-  DWORD size = GetImageDirectoryEntrySize(IMAGE_DIRECTORY_ENTRY_BASERELOC);
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-381-      WORD type = *reloc >> 12;
chromium-84.0.4147.105/base/win/pe_image.cc:382:      PVOID address = RVAToAddr(base->VirtualAddress + (*reloc & 0x0FFF));
chromium-84.0.4147.105/base/win/pe_image.cc-383-
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-405-  for (; import->FirstThunk; import++) {
chromium-84.0.4147.105/base/win/pe_image.cc:406:    LPCSTR module_name = reinterpret_cast<LPCSTR>(RVAToAddr(import->Name));
chromium-84.0.4147.105/base/win/pe_image.cc-407-    PIMAGE_THUNK_DATA name_table = reinterpret_cast<PIMAGE_THUNK_DATA>(
chromium-84.0.4147.105/base/win/pe_image.cc:408:        RVAToAddr(import->OriginalFirstThunk));
chromium-84.0.4147.105/base/win/pe_image.cc-409-    PIMAGE_THUNK_DATA iat =
chromium-84.0.4147.105/base/win/pe_image.cc:410:        reinterpret_cast<PIMAGE_THUNK_DATA>(RVAToAddr(import->FirstThunk));
chromium-84.0.4147.105/base/win/pe_image.cc-411-
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-438-      PIMAGE_IMPORT_BY_NAME import = reinterpret_cast<PIMAGE_IMPORT_BY_NAME>(
chromium-84.0.4147.105/base/win/pe_image.cc:439:          RVAToAddr(name_table->u1.ForwarderString));
chromium-84.0.4147.105/base/win/pe_image.cc-440-
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-462-  PVOID directory =
chromium-84.0.4147.105/base/win/pe_image.cc:463:      GetImageDirectoryEntryAddr(IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT);
chromium-84.0.4147.105/base/win/pe_image.cc-464-  DWORD size = GetImageDirectoryEntrySize(IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT);
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-480-      module_name =
chromium-84.0.4147.105/base/win/pe_image.cc:481:          reinterpret_cast<LPCSTR>(RVAToAddr(delay_descriptor->rvaDLLName));
chromium-84.0.4147.105/base/win/pe_image.cc-482-      name_table = reinterpret_cast<PIMAGE_THUNK_DATA>(
chromium-84.0.4147.105/base/win/pe_image.cc:483:          RVAToAddr(delay_descriptor->rvaINT));
chromium-84.0.4147.105/base/win/pe_image.cc-484-      iat = reinterpret_cast<PIMAGE_THUNK_DATA>(
chromium-84.0.4147.105/base/win/pe_image.cc:485:          RVAToAddr(delay_descriptor->rvaIAT));
chromium-84.0.4147.105/base/win/pe_image.cc-486-    } else {
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-542-        import = reinterpret_cast<PIMAGE_IMPORT_BY_NAME>(
chromium-84.0.4147.105/base/win/pe_image.cc:543:            RVAToAddr(name_table->u1.ForwarderString));
chromium-84.0.4147.105/base/win/pe_image.cc-544-      } else {
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-590-                                     DWORD* on_disk_offset) const {
chromium-84.0.4147.105/base/win/pe_image.cc:591:  LPVOID address = RVAToAddr(rva);
chromium-84.0.4147.105/base/win/pe_image.cc-592-  return ImageAddrToOnDiskOffset(address, on_disk_offset);
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-600-  // Get the section that this address belongs to.
chromium-84.0.4147.105/base/win/pe_image.cc:601:  PIMAGE_SECTION_HEADER section_header = GetImageSectionFromAddr(address);
chromium-84.0.4147.105/base/win/pe_image.cc-602-  if (nullptr == section_header)
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-608-      static_cast<DWORD>(reinterpret_cast<uintptr_t>(
chromium-84.0.4147.105/base/win/pe_image.cc:609:          PEImage::RVAToAddr(section_header->VirtualAddress)));
chromium-84.0.4147.105/base/win/pe_image.cc-610-
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-614-
chromium-84.0.4147.105/base/win/pe_image.cc:615:PVOID PEImage::RVAToAddr(uintptr_t rva) const {
chromium-84.0.4147.105/base/win/pe_image.cc-616-  if (rva == 0)
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-638-
chromium-84.0.4147.105/base/win/pe_image.cc:639:PVOID PEImageAsData::RVAToAddr(uintptr_t rva) const {
chromium-84.0.4147.105/base/win/pe_image.cc-640-  if (rva == 0)
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-642-
chromium-84.0.4147.105/base/win/pe_image.cc:643:  PVOID in_memory = PEImage::RVAToAddr(rva);
chromium-84.0.4147.105/base/win/pe_image.cc-644-  DWORD disk_offset;
##############################################
chromium-84.0.4147.105/base/win/pe_image.cc-648-
chromium-84.0.4147.105/base/win/pe_image.cc:649:  return PEImage::RVAToAddr(disk_offset);
chromium-84.0.4147.105/base/win/pe_image.cc-650-}
##############################################
chromium-84.0.4147.105/base/win/scoped_handle.h-22-#define BASE_WIN_GET_CALLER \
chromium-84.0.4147.105/base/win/scoped_handle.h:23:  __builtin_extract_return_addr(__builtin_return_address(0))
chromium-84.0.4147.105/base/win/scoped_handle.h-24-#endif
##############################################
chromium-84.0.4147.105/base/win/pe_image_unittest.cc-268-  EXPECT_NE(nullptr, export_entry);
chromium-84.0.4147.105/base/win/pe_image_unittest.cc:269:  PVOID fwd_addr = pe.RVAToAddr(*export_entry);
chromium-84.0.4147.105/base/win/pe_image_unittest.cc-270-  const char expected_fwd[] = "KERNEL32.CreateFileA";
##############################################
chromium-84.0.4147.105/base/profiler/module_cache_posix.cc-95-  Dl_info info;
chromium-84.0.4147.105/base/profiler/module_cache_posix.cc:96:  if (!dladdr(reinterpret_cast<const void*>(address), &info))
chromium-84.0.4147.105/base/profiler/module_cache_posix.cc-97-    return nullptr;
##############################################
chromium-84.0.4147.105/base/profiler/module_cache_mac.cc-143-  Dl_info info;
chromium-84.0.4147.105/base/profiler/module_cache_mac.cc:144:  if (!dladdr(reinterpret_cast<const void*>(address), &info))
chromium-84.0.4147.105/base/profiler/module_cache_mac.cc-145-    return nullptr;
##############################################
chromium-84.0.4147.105/base/atomicops_unittest.cc-17-  // outside the expected address bounds.  This is in particular to
chromium-84.0.4147.105/base/atomicops_unittest.cc:18:  // test that some future change to the asm code doesn't cause the
chromium-84.0.4147.105/base/atomicops_unittest.cc-19-  // 32-bit NoBarrier_AtomicIncrement doesn't do the wrong thing on 64-bit
##############################################
chromium-84.0.4147.105/base/android/linker/modern_linker_jni.cc-166-        load_size(0),
chromium-84.0.4147.105/base/android/linker/modern_linker_jni.cc:167:        min_vaddr(0),
chromium-84.0.4147.105/base/android/linker/modern_linker_jni.cc-168-        relro_start(0),
##############################################
chromium-84.0.4147.105/base/android/jni_generator/jni_generator_helper.h-65-    // This assumes that this method does not increment the stack pointer.
chromium-84.0.4147.105/base/android/jni_generator/jni_generator_helper.h:66:    asm volatile("mov %0, sp" : "=r"(sp));
chromium-84.0.4147.105/base/android/jni_generator/jni_generator_helper.h-67-#else
##############################################
chromium-84.0.4147.105/base/android/jni_generator/README.md-61-- Declare methods using a nested interface annotated with `@NativeMethods`.
chromium-84.0.4147.105/base/android/jni_generator/README.md:62:- The JNI annotation processor generates a class named `${OriginalClassName}Jni`
chromium-84.0.4147.105/base/android/jni_generator/README.md-63-  with a `get()` method that returns an implementation of the annotated
##############################################
chromium-84.0.4147.105/base/android/jni_generator/README.md-80-   implemented.
chromium-84.0.4147.105/base/android/jni_generator/README.md:81:3. Call native functions using `${OriginalClassName}Jni.get().${method}`
chromium-84.0.4147.105/base/android/jni_generator/README.md:82:4. In C++ code, #include the header `${OriginalClassName}_jni.h`. (The path will
chromium-84.0.4147.105/base/android/jni_generator/README.md-83-   depend on the location of the `generate_jni` BUILD rule that lists your Java
##############################################
chromium-84.0.4147.105/base/android/jni_generator/README.md-85-   header defines functions. That `.cc` must implement your native code by
chromium-84.0.4147.105/base/android/jni_generator/README.md:86:   defining non-member functions named `JNI_${OriginalClassName}_${UpperCamelCaseMethod}`
chromium-84.0.4147.105/base/android/jni_generator/README.md:87:   for static methods and member functions named `${OriginalClassName}::${UpperCamelCaseMethod}`
chromium-84.0.4147.105/base/android/jni_generator/README.md-88-   for non-static methods. Member functions need be declared in the header
##############################################
chromium-84.0.4147.105/base/android/library_loader/anchor_functions.lds-5-# Define symbols that point to the start and end of the .text section.
chromium-84.0.4147.105/base/android/library_loader/anchor_functions.lds:6:PROVIDE_HIDDEN(linker_script_start_of_text = ADDR(.text));
chromium-84.0.4147.105/base/android/library_loader/anchor_functions.lds:7:PROVIDE_HIDDEN(linker_script_end_of_text = ADDR(.text) + SIZEOF(.text));
##############################################
chromium-84.0.4147.105/base/debug/stack_trace_posix.cc-236-  // V8 uses guard regions to guarantee memory safety in WebAssembly. This means
chromium-84.0.4147.105/base/debug/stack_trace_posix.cc:237:  // some signals might be expected if they originate from Wasm code while
chromium-84.0.4147.105/base/debug/stack_trace_posix.cc-238-  // accessing the guard region. We give V8 the chance to handle and recover
##############################################
chromium-84.0.4147.105/base/debug/close_handle_hook_win.cc-144-  if (!(*old_function))
chromium-84.0.4147.105/base/debug/close_handle_hook_win.cc:145:    *old_function = pe.RVAToAddr(*eat_entry);
chromium-84.0.4147.105/base/debug/close_handle_hook_win.cc-146-
##############################################
chromium-84.0.4147.105/base/debug/stack_trace_win.cc-229-      symbol->MaxNameLen = kMaxNameLength - 1;
chromium-84.0.4147.105/base/debug/stack_trace_win.cc:230:      BOOL has_symbol = SymFromAddr(GetCurrentProcess(), frame,
chromium-84.0.4147.105/base/debug/stack_trace_win.cc-231-                                    &sym_displacement, symbol);
##############################################
chromium-84.0.4147.105/base/debug/elf_reader_unittest.cc-78-  Dl_info info;
chromium-84.0.4147.105/base/debug/elf_reader_unittest.cc:79:  int res = dladdr(init_addr, &info);
chromium-84.0.4147.105/base/debug/elf_reader_unittest.cc-80-  ASSERT_NE(0, res);
##############################################
chromium-84.0.4147.105/base/synchronization/waitable_event_posix.cc-242-static bool  // StrictWeakOrdering
chromium-84.0.4147.105/base/synchronization/waitable_event_posix.cc:243:cmp_fst_addr(const std::pair<WaitableEvent*, unsigned> &a,
chromium-84.0.4147.105/base/synchronization/waitable_event_posix.cc-244-             const std::pair<WaitableEvent*, unsigned> &b) {
##############################################
chromium-84.0.4147.105/base/native_library_mac.mm-22-  Dl_info info;
chromium-84.0.4147.105/base/native_library_mac.mm:23:  if (!dladdr(function_pointer, &info))
chromium-84.0.4147.105/base/native_library_mac.mm-24-    return OBJC_UNKNOWN;
##############################################
chromium-84.0.4147.105/base/memory/weak_ptr_unittest.cc-22-
chromium-84.0.4147.105/base/memory/weak_ptr_unittest.cc:23:WeakPtr<int> PassThru(WeakPtr<int> ptr) {
chromium-84.0.4147.105/base/memory/weak_ptr_unittest.cc-24-  return ptr;
##############################################
chromium-84.0.4147.105/base/memory/weak_ptr_unittest.cc-297-TEST(WeakPtrTest, ConstructFromNullptr) {
chromium-84.0.4147.105/base/memory/weak_ptr_unittest.cc:298:  WeakPtr<int> ptr = PassThru(nullptr);
chromium-84.0.4147.105/base/memory/weak_ptr_unittest.cc-299-  EXPECT_EQ(nullptr, ptr.get());
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-15-// - Different instances of TRAP_SEQUENCE_() must not be folded together, to
chromium-84.0.4147.105/base/immediate_crash.h:16://   ensure crash reports are debuggable. Unlike __builtin_trap(), asm volatile
chromium-84.0.4147.105/base/immediate_crash.h-17-//   blocks will not be folded together.
chromium-84.0.4147.105/base/immediate_crash.h-18-//   Note: TRAP_SEQUENCE_() previously required an instruction with a unique
chromium-84.0.4147.105/base/immediate_crash.h:19://   nonce since unlike clang, GCC folds together identical asm volatile
chromium-84.0.4147.105/base/immediate_crash.h-20-//   blocks.
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-47-#define TRAP_SEQUENCE1_() __builtin_trap()
chromium-84.0.4147.105/base/immediate_crash.h:48:#define TRAP_SEQUENCE2_() asm volatile("")
chromium-84.0.4147.105/base/immediate_crash.h-49-
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-55-// to continue after SIGTRAP.
chromium-84.0.4147.105/base/immediate_crash.h:56:#define TRAP_SEQUENCE1_() asm volatile("int3")
chromium-84.0.4147.105/base/immediate_crash.h-57-
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-60-// (see IMMEDIATE_CRASH below) and already emits a ud2 on Mac.
chromium-84.0.4147.105/base/immediate_crash.h:61:#define TRAP_SEQUENCE2_() asm volatile("")
chromium-84.0.4147.105/base/immediate_crash.h-62-#else
chromium-84.0.4147.105/base/immediate_crash.h:63:#define TRAP_SEQUENCE2_() asm volatile("ud2")
chromium-84.0.4147.105/base/immediate_crash.h-64-#endif  // defined(OS_MACOSX)
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-72-// TODO(https://crbug.com/958675): Remove bkpt from this sequence.
chromium-84.0.4147.105/base/immediate_crash.h:73:#define TRAP_SEQUENCE1_() asm volatile("bkpt #0")
chromium-84.0.4147.105/base/immediate_crash.h:74:#define TRAP_SEQUENCE2_() asm volatile("udf #0")
chromium-84.0.4147.105/base/immediate_crash.h-75-
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-79-// TODO(https://crbug.com/958675): Remove brk from this sequence.
chromium-84.0.4147.105/base/immediate_crash.h:80:#define TRAP_SEQUENCE1_() asm volatile("brk #0")
chromium-84.0.4147.105/base/immediate_crash.h:81:#define TRAP_SEQUENCE2_() asm volatile("hlt #0")
chromium-84.0.4147.105/base/immediate_crash.h-82-
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-87-#define TRAP_SEQUENCE1_() __builtin_trap()
chromium-84.0.4147.105/base/immediate_crash.h:88:#define TRAP_SEQUENCE2_() asm volatile("")
chromium-84.0.4147.105/base/immediate_crash.h-89-
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-107-// https://crbug.com/958373
chromium-84.0.4147.105/base/immediate_crash.h:108:#define TRAP_SEQUENCE2_() __asm volatile("")
chromium-84.0.4147.105/base/immediate_crash.h-109-
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-111-
chromium-84.0.4147.105/base/immediate_crash.h:112:#define TRAP_SEQUENCE1_() asm volatile("int3")
chromium-84.0.4147.105/base/immediate_crash.h:113:#define TRAP_SEQUENCE2_() asm volatile("ud2")
chromium-84.0.4147.105/base/immediate_crash.h-114-
##############################################
chromium-84.0.4147.105/base/immediate_crash.h-130-// This could make compilation fail on GCC, as it forbids directly using inline
chromium-84.0.4147.105/base/immediate_crash.h:131:// asm inside a constexpr function. However, it allows calling a lambda
chromium-84.0.4147.105/base/immediate_crash.h-132-// expression including the same asm.
##############################################
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.h-41-  // Returns the start and end address of the current library.
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.h:42:  static uintptr_t executable_start_addr();
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.h:43:  static uintptr_t executable_end_addr();
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.h-44-
##############################################
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-128-bool CFIBacktraceAndroid::is_chrome_address(uintptr_t pc) {
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc:129:  return pc >= base::android::kStartOfText && pc < executable_end_addr();
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-130-}
##############################################
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-132-// static
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc:133:uintptr_t CFIBacktraceAndroid::executable_start_addr() {
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-134-  return reinterpret_cast<uintptr_t>(&__executable_start);
##############################################
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-137-// static
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc:138:uintptr_t CFIBacktraceAndroid::executable_end_addr() {
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-139-  return base::android::kEndOfText;
##############################################
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-195-  uintptr_t pc = 0, sp = 0;
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc:196:  asm volatile("mov %0, pc" : "=r"(pc));
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc:197:  asm volatile("mov %0, sp" : "=r"(sp));
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-198-
##############################################
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-214-    // The offset of function from the start of the chrome.so binary:
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc:215:    uintptr_t func_addr = pc - executable_start_addr();
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android.cc-216-    CFIRow cfi{};
##############################################
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android_unittest.cc-23-  EXPECT_TRUE(unwinder->can_unwind_stack_frames());
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android_unittest.cc:24:  EXPECT_GT(unwinder->executable_start_addr(), 0u);
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android_unittest.cc:25:  EXPECT_GT(unwinder->executable_end_addr(), unwinder->executable_start_addr());
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android_unittest.cc-26-  EXPECT_GT(unwinder->cfi_mmap_->length(), 0u);
##############################################
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android_unittest.cc-41-    EXPECT_GT(reinterpret_cast<uintptr_t>(frames[i]),
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android_unittest.cc:42:              unwinder->executable_start_addr());
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android_unittest.cc-43-    EXPECT_LT(reinterpret_cast<uintptr_t>(frames[i]),
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android_unittest.cc:44:              unwinder->executable_end_addr());
chromium-84.0.4147.105/base/trace_event/cfi_backtrace_android_unittest.cc-45-  }
##############################################
chromium-84.0.4147.105/base/sampling_heap_profiler/benchmark-octane.js-13-  if (samplingRate)
chromium-84.0.4147.105/base/sampling_heap_profiler/benchmark-octane.js:14:    args.push(`--memlog=all`, `--memlog-sampling-rate=${samplingRate}`);
chromium-84.0.4147.105/base/sampling_heap_profiler/benchmark-octane.js-15-  while (true) {
##############################################
chromium-84.0.4147.105/base/sampling_heap_profiler/benchmark-octane.js-46-async function main() {
chromium-84.0.4147.105/base/sampling_heap_profiler/benchmark-octane.js:47:  console.log(`Using ${process.env.CHROME_PATH || puppeteer.executablePath()}`);
chromium-84.0.4147.105/base/sampling_heap_profiler/benchmark-octane.js-48-  const rates = [0];
##############################################
chromium-84.0.4147.105/base/bind_unittest.cc-250-template <typename T>
chromium-84.0.4147.105/base/bind_unittest.cc:251:T PassThru(T scoper) {
chromium-84.0.4147.105/base/bind_unittest.cc-252-  return scoper;
##############################################
chromium-84.0.4147.105/base/cpu_unittest.cc-74-  // Execute an MMX instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:75:  __asm emms;
chromium-84.0.4147.105/base/cpu_unittest.cc-76-
chromium-84.0.4147.105/base/cpu_unittest.cc-77-  // Execute an SSE instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:78:  __asm xorps xmm0, xmm0;
chromium-84.0.4147.105/base/cpu_unittest.cc-79-
chromium-84.0.4147.105/base/cpu_unittest.cc-80-  // Execute an SSE 2 instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:81:  __asm psrldq xmm0, 0;
chromium-84.0.4147.105/base/cpu_unittest.cc-82-
##############################################
chromium-84.0.4147.105/base/cpu_unittest.cc-84-    // Execute an SSE 3 instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:85:    __asm addsubpd xmm0, xmm0;
chromium-84.0.4147.105/base/cpu_unittest.cc-86-  }
##############################################
chromium-84.0.4147.105/base/cpu_unittest.cc-89-    // Execute a Supplimental SSE 3 instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:90:    __asm psignb xmm0, xmm0;
chromium-84.0.4147.105/base/cpu_unittest.cc-91-  }
##############################################
chromium-84.0.4147.105/base/cpu_unittest.cc-94-    // Execute an SSE 4.1 instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:95:    __asm pmuldq xmm0, xmm0;
chromium-84.0.4147.105/base/cpu_unittest.cc-96-  }
##############################################
chromium-84.0.4147.105/base/cpu_unittest.cc-99-    // Execute an SSE 4.2 instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:100:    __asm crc32 eax, eax;
chromium-84.0.4147.105/base/cpu_unittest.cc-101-  }
##############################################
chromium-84.0.4147.105/base/cpu_unittest.cc-104-    // Execute a POPCNT instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:105:    __asm popcnt eax, eax;
chromium-84.0.4147.105/base/cpu_unittest.cc-106-  }
##############################################
chromium-84.0.4147.105/base/cpu_unittest.cc-109-    // Execute an AVX instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:110:    __asm vzeroupper;
chromium-84.0.4147.105/base/cpu_unittest.cc-111-  }
##############################################
chromium-84.0.4147.105/base/cpu_unittest.cc-114-    // Execute an AVX 2 instruction.
chromium-84.0.4147.105/base/cpu_unittest.cc:115:    __asm vpunpcklbw ymm0, ymm0, ymm0
chromium-84.0.4147.105/base/cpu_unittest.cc-116-  }
##############################################
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-201-   complete inline asm, since it needs to be combined with more magic
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h:202:   inline asm stuff to be useful.
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-203-*/
##############################################
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-272-#define __SPECIAL_INSTRUCTION_PREAMBLE                            \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h:273:                     __asm rol edi, 3  __asm rol edi, 13          \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h:274:                     __asm rol edi, 29 __asm rol edi, 19
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-275-
##############################################
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-286-    _zzq_args[5] = (uintptr_t)(_zzq_arg5);                        \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h:287:    __asm { __asm lea eax, _zzq_args __asm mov edx, _zzq_default  \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-288-            __SPECIAL_INSTRUCTION_PREAMBLE                        \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-289-            /* %EDX = client_request ( %EAX ) */                  \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h:290:            __asm xchg ebx,ebx                                    \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h:291:            __asm mov _zzq_result, edx                            \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-292-    }                                                             \
##############################################
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-298-    volatile unsigned int __addr;                                 \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h:299:    __asm { __SPECIAL_INSTRUCTION_PREAMBLE                        \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-300-            /* %EAX = guest_NRADDR */                             \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h:301:            __asm xchg ecx,ecx                                    \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h:302:            __asm mov __addr, eax                                 \
chromium-84.0.4147.105/base/third_party/valgrind/valgrind.h-303-    }                                                             \
##############################################
chromium-84.0.4147.105/base/third_party/symbolize/symbolize.cc-858-  Dl_info info;
chromium-84.0.4147.105/base/third_party/symbolize/symbolize.cc:859:  if (dladdr(pc, &info)) {
chromium-84.0.4147.105/base/third_party/symbolize/symbolize.cc-860-    if ((int)strlen(info.dli_sname) < out_size) {
##############################################
chromium-84.0.4147.105/base/third_party/symbolize/symbolize.cc-921-  // This could break if a symbol has Unicode in it.
chromium-84.0.4147.105/base/third_party/symbolize/symbolize.cc:922:  BOOL ret = SymFromAddr(symInitializer.process,
chromium-84.0.4147.105/base/third_party/symbolize/symbolize.cc-923-                         reinterpret_cast<DWORD64>(pc), 0, symbol);
##############################################
chromium-84.0.4147.105/base/location.cc-54-#define RETURN_ADDRESS() \
chromium-84.0.4147.105/base/location.cc:55:  __builtin_extract_return_addr(__builtin_return_address(0))
chromium-84.0.4147.105/base/location.cc-56-#else
##############################################
chromium-84.0.4147.105/docs/clang_tool_refactoring.md-26-
chromium-84.0.4147.105/docs/clang_tool_refactoring.md:27:For convenience, add `third_party/llvm-build/Release+Asserts/bin` to `$PATH`.
chromium-84.0.4147.105/docs/clang_tool_refactoring.md-28-
##############################################
chromium-84.0.4147.105/docs/android_debugging_instructions.md-179-it into a text file and symbolize with the following command (run from
chromium-84.0.4147.105/docs/android_debugging_instructions.md:180:`${CHROME_SRC}`):
chromium-84.0.4147.105/docs/android_debugging_instructions.md-181-
##############################################
chromium-84.0.4147.105/docs/ccache_mac.md-35-
chromium-84.0.4147.105/docs/ccache_mac.md:36:Make sure ccache can be found in your `$PATH`.
chromium-84.0.4147.105/docs/ccache_mac.md-37-
##############################################
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-42-1.  Download the Chromium source code by running:
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md:43:    `$ fetch chromium --nosvn=True`
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-44-
##############################################
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-64-1.  When the build finishes, move into the installer directory:
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md:65:    `$ cd remoting/host/installer/`
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-66-1.  Generate a DEB package for your system's package manager:
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md:67:    `$ linux/build-deb.sh`
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md:68:1.  Install the package on your system: `$ sudo dpkg -i *.deb`
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-69-1.  The next time you use the Chromoting extension from your browser, it should
##############################################
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-73-        create a symlink to help the plugin find the native messaging host:
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md:74:        `$ sudo ln -s /etc/opt/chrome /etc/chromium`
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-75-
##############################################
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-119-    code.
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md:120:1.  Build the Android app: `$ autoninja -C out/Release remoting_apk`
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-121-1.  Connect your device and set up USB debugging:
##############################################
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-128-1.  On your machine and still in the `src/` directory, run:
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md:129:    `$ build/android/adb_install_apk.py --apk=out/Release/apks/Chromoting.apk`
chromium-84.0.4147.105/docs/old_chromoting_build_instructions.md-130-1.  If your Android device prompts you to accept the host's key, do so.
##############################################
chromium-84.0.4147.105/docs/qtcreator.md-38-   Go to Clang Format tab
chromium-84.0.4147.105/docs/qtcreator.md:39:   Change the Clang format command to: `$chromium_checkout_dir/src/buildtools/$os/clang-format`, and
chromium-84.0.4147.105/docs/qtcreator.md-40-   set `Use predefined style: file`. You can also set a keyboard shortcut
##############################################
chromium-84.0.4147.105/docs/accessibility/brltty.md-21-
chromium-84.0.4147.105/docs/accessibility/brltty.md:22:```cros flash ssh://CHROMEBOOK_IP_ADDRESS xbuddy://remote/$BOARD/latest-dev/test```
chromium-84.0.4147.105/docs/accessibility/brltty.md-23-
##############################################
chromium-84.0.4147.105/docs/accessibility/espeak.md-61-as-is; in particular if changes were made to the native code, be sure to fully
chromium-84.0.4147.105/docs/accessibility/espeak.md:62:compile using emscripten and copy and generated wasm files to the
chromium-84.0.4147.105/docs/accessibility/espeak.md-63-chrome-extension/js directory.
##############################################
chromium-84.0.4147.105/docs/accessibility/patts.md-48-
chromium-84.0.4147.105/docs/accessibility/patts.md:49:```cros flash ssh://CHROMEBOOK_IP_ADDRESS xbuddy://remote/$BOARD/latest-dev/test```
chromium-84.0.4147.105/docs/accessibility/patts.md-50-
##############################################
chromium-84.0.4147.105/docs/chromoting_android_hacking.md-153-`ANDROID_SERIAL` to select one; set it to the serial number of the desired
chromium-84.0.4147.105/docs/chromoting_android_hacking.md:154:device as output by `$ adb devices`.
##############################################
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md-226-1. (One-time only) get an [infra checkout][infra repo]
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md:227:2. Run `infra $ ./go/env.py` and run each of the commands it outputs to change
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md-228-your GOPATH and other environment variables for your terminal
##############################################
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md-230-of your `goldctl` CL (or some revision after it)
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md:231:4. Run `infra $ ./go/deps.py update` and copy the list of repos it updated
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md-232-(include this in your CL description)
##############################################
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md-248-
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md:249:1. `infra $ ./go/deps.py install`
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md:250:2. `infra $ go install go.skia.org/infra/gold-client/cmd/goldctl`
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md:251:3. `infra $ which goldctl` which should point to a binary in `infra/go/bin/`
chromium-84.0.4147.105/docs/gpu/gpu_pixel_testing_with_gold.md:252:4. `infra $ goldctl` to make sure it actually runs
##############################################
chromium-84.0.4147.105/docs/linux/eclipse_dev.md-231-    Build Location/Build Directory to be /path/to/chromium/src
chromium-84.0.4147.105/docs/linux/eclipse_dev.md:232:    1.  In theory `${workspace_loc}` should work, but it doesn't for me.
chromium-84.0.4147.105/docs/linux/eclipse_dev.md-233-    1.  If you put your workspace in `/path/to/chromium`, then
chromium-84.0.4147.105/docs/linux/eclipse_dev.md:234:        `${workspace_loc:/src}` will work too.
chromium-84.0.4147.105/docs/linux/eclipse_dev.md-235-1.  Now in the Make Targets view, select the target and click the hammer icon
##############################################
chromium-84.0.4147.105/docs/linux/eclipse_dev.md-435-    1.  Under behaviour tab, unselect Clean, select Build(incremental build) and
chromium-84.0.4147.105/docs/linux/eclipse_dev.md:436:        in Make build target, add `--verbose=0 ${selected_resource_loc}`
chromium-84.0.4147.105/docs/linux/eclipse_dev.md-437-    1.  Go back to the left side of the current window, and to C/C++Build ->
##############################################
chromium-84.0.4147.105/docs/linux/instrumented_libraries.md-45-
chromium-84.0.4147.105/docs/linux/instrumented_libraries.md:46:If your `$HOME` directory is not `/home` (as is the case on gLinux), then route
chromium-84.0.4147.105/docs/linux/instrumented_libraries.md-47-`/home` to the real thing. `schroot` automatically mounts `/home`, which is
##############################################
chromium-84.0.4147.105/docs/linux/instrumented_libraries.md-114-# Fix permissions.
chromium-84.0.4147.105/docs/linux/instrumented_libraries.md:115:sudo chown -R `whoami`:`groups | awk '{print $1;}'` *.tgz out/Instrumented-*
chromium-84.0.4147.105/docs/linux/instrumented_libraries.md-116-
##############################################
chromium-84.0.4147.105/docs/linux/hw_video_decode.md-55-*   Rebuild chrome
chromium-84.0.4147.105/docs/linux/hw_video_decode.md:56:*   Run chrome with `LD_LIBRARY_PATH=${HOME}/apps/libva/lib` in the environment,
chromium-84.0.4147.105/docs/linux/hw_video_decode.md-57-    and with the `--no-sandbox` command line flag.
##############################################
chromium-84.0.4147.105/docs/linux/using_a_chroot.md-66-
chromium-84.0.4147.105/docs/linux/using_a_chroot.md:67:I also have `DISPLAY=:0` in my `$debian_chroot` section so I can run test_shell
chromium-84.0.4147.105/docs/linux/using_a_chroot.md-68-or web tests without manually setting my display every time.  Your display
chromium-84.0.4147.105/docs/linux/using_a_chroot.md:69:number may vary (`echo $DISPLAY` outside the chroot to see what your display
chromium-84.0.4147.105/docs/linux/using_a_chroot.md-70-number is).
##############################################
chromium-84.0.4147.105/docs/linux/profiling.md-122-
chromium-84.0.4147.105/docs/linux/profiling.md:123:1.  Attach gdb to the process: `$ gdb -p 12345`
chromium-84.0.4147.105/docs/linux/profiling.md-124-1.  Cause it to dump a profile: `(gdb) p HeapProfilerDump("foobar")`
##############################################
chromium-84.0.4147.105/docs/linux/chromium_packages.md-18-| Mageia     | Dexter Morgan `dmorgan@mageia.org` | http://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/SPECS/ | http://svnweb.mageia.org/packages/cauldron/chromium-browser-stable/current/SOURCES/ |
chromium-84.0.4147.105/docs/linux/chromium_packages.md:19:| NixOS      | aszlig `"^[0-9]+$"@regexmail.net` | http://hydra.nixos.org/search?query=pkgs.chromium | https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/networking/browsers/chromium |
chromium-84.0.4147.105/docs/linux/chromium_packages.md-20-| OpenMandriva | Bernhard Rosenkraenzer `bero@lindev.ch` | n/a | https://github.com/OpenMandrivaAssociation/chromium-browser-stable https://github.com/OpenMandrivaAssociation/chromium-browser-beta https://github.com/OpenMandrivaAssociation/chromium-browser-dev |
##############################################
chromium-84.0.4147.105/docs/linux/build_instructions.md-40-otherwise `gclient runhooks` will fail to run. Rather, you should use either
chromium-84.0.4147.105/docs/linux/build_instructions.md:41:`$HOME` or the absolute path:
chromium-84.0.4147.105/docs/linux/build_instructions.md-42-
##############################################
chromium-84.0.4147.105/docs/linux/build_instructions.md-214-
chromium-84.0.4147.105/docs/linux/build_instructions.md:215:in your `.bashrc` so that `$PWD` or `cwd` always refers to a physical, not
chromium-84.0.4147.105/docs/linux/build_instructions.md-216-logical directory (and make sure `CCACHE_BASEDIR` also refers to a physical
##############################################
chromium-84.0.4147.105/docs/linux/debugging.md-118-select which renderer process to debug. Note: you might need to use the full
chromium-84.0.4147.105/docs/linux/debugging.md:119:path to the script and avoid `$HOME` or `~/.`
chromium-84.0.4147.105/docs/linux/debugging.md-120-
##############################################
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-117-
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md:118:The examples in this doc use `$criteria`. To figure out what values to use, you
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-119-can go to an existing swarming run
##############################################
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-121-look at the `Dimensions` section. Each of these becomes a `-d dimension_name
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md:122:dimension_value` in your `$criteria`. Click on `bots` (or go
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-123-[here](https://chromium-swarm.appspot.com/botlist)) to be taken to a UI that
##############################################
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-140-This will produce some files in $outdir. The most pertinent two are
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md:141:`$outdir/$target.isolate` and `$outdir/target.isolated`. If you've already built
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-142-$target, you can save some CPU time and run `tools/mb/mb.py` with `--no-build`:
##############################################
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-182-
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md:183:Now that the isolate is on the isolate server with hash `$hash` from the
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-184-previous step, you can run on bots of your choice:
##############################################
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-200-task scheduled on. These are specified via "dimensions", which are specified
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md:201:with `-dimension key=val`. In fact, the `-dimension pool=$pool` in the
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-202-command above is selecting based on the "pool" dimension. There are a lot of
##############################################
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-218-If you need to pass additional arguments to the test, simply add
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md:219:`-- $extra_args` to the end of the `swarming trigger` command line - anything
chromium-84.0.4147.105/docs/workflow/debugging-with-swarming.md-220-after the `--` will be passed directly to the test.
##############################################
chromium-84.0.4147.105/docs/win_cross.md-22-report crashes, and NaCl defaults to disabled and cannot be enabled in cross
chromium-84.0.4147.105/docs/win_cross.md:23:builds ([.asm bug](https://crbug.com/762167)).
chromium-84.0.4147.105/docs/win_cross.md-24-
##############################################
chromium-84.0.4147.105/docs/clang_tidy.md-25-Chromium globally enables a subset of all of clang-tidy's checks (see
chromium-84.0.4147.105/docs/clang_tidy.md:26:`${chromium}/src/.clang-tidy`). We want these checks to cover as much as we
chromium-84.0.4147.105/docs/clang_tidy.md-27-reasonably can, but we also strive to strike a reasonable balance between signal
##############################################
chromium-84.0.4147.105/docs/user_data_dir.md-71-
chromium-84.0.4147.105/docs/user_data_dir.md:72:(The beta and dev channel suffixes are determined from `$CHROME_VERSION_EXTRA`,
chromium-84.0.4147.105/docs/user_data_dir.md-73-which is passed by the [launch wrapper script](https://cs.chromium.org/chromium/src/chrome/installer/linux/common/wrapper?q=CHROME_VERSION_EXTRA).)
##############################################
chromium-84.0.4147.105/docs/user_data_dir.md-75-The `~/.config` portion of the default location can be overridden by
chromium-84.0.4147.105/docs/user_data_dir.md:76:`$CHROME_CONFIG_HOME` (since M61) or by `$XDG_CONFIG_HOME`.
chromium-84.0.4147.105/docs/user_data_dir.md-77-
chromium-84.0.4147.105/docs/user_data_dir.md:78:Note that `$XDG_CONFIG_HOME` affects all applications conforming to the
chromium-84.0.4147.105/docs/user_data_dir.md-79-[XDG Base Directory Spec](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html),
chromium-84.0.4147.105/docs/user_data_dir.md:80:while `$CHROME_CONFIG_HOME` is specific to Chrome and Chromium.
chromium-84.0.4147.105/docs/user_data_dir.md-81-
##############################################
chromium-84.0.4147.105/docs/user_data_dir.md-116-On Linux, the user data directory can also be overridden with the
chromium-84.0.4147.105/docs/user_data_dir.md:117:`$CHROME_USER_DATA_DIR` environment variable.
chromium-84.0.4147.105/docs/user_data_dir.md-118-
##############################################
chromium-84.0.4147.105/docs/user_data_dir.md-129-
chromium-84.0.4147.105/docs/user_data_dir.md:130:By default, CRD achieves this by setting `$CHROME_USER_DATA_DIR` in the session.
chromium-84.0.4147.105/docs/user_data_dir.md-131-Unfortunately this means that inside the session we don't get separate defaults
##############################################
chromium-84.0.4147.105/docs/user_data_dir.md-135-
chromium-84.0.4147.105/docs/user_data_dir.md:136:Since M61, this can be solved by setting `$CHROME_CONFIG_HOME` instead of
chromium-84.0.4147.105/docs/user_data_dir.md:137:`$CHROME_USER_DATA_DIR`. Specifically, put the following in
chromium-84.0.4147.105/docs/user_data_dir.md-138-`~/.chrome-remote-desktop-session`:
##############################################
chromium-84.0.4147.105/docs/user_data_dir.md-203-1. Determine the system config dir.  This is `~/.config`, unless overridden by
chromium-84.0.4147.105/docs/user_data_dir.md:204:   `$XDG_CONFIG_HOME`.  (This step ignores `$CHROME_CONFIG_HOME`.)
chromium-84.0.4147.105/docs/user_data_dir.md-205-2. Determine the system cache dir.  This is `~/.cache`, unless overridden by
chromium-84.0.4147.105/docs/user_data_dir.md:206:   `$XDG_CACHE_HOME`.
chromium-84.0.4147.105/docs/user_data_dir.md-207-3. If the system config dir is an ancestor of the profile dir, the user cache
##############################################
chromium-84.0.4147.105/docs/media/gpu/video_decoder_test_usage.md-22-Wildcards can be used to run specific sets of tests:
chromium-84.0.4147.105/docs/media/gpu/video_decoder_test_usage.md:23:* Run all VP8 tests: `tast run $HOST video.DecodeAccelVP8*`
chromium-84.0.4147.105/docs/media/gpu/video_decoder_test_usage.md:24:* Run all VP9 profile 2 tests: `tast run $HOST video.DecodeAccelVP92*`
chromium-84.0.4147.105/docs/media/gpu/video_decoder_test_usage.md-25-
##############################################
chromium-84.0.4147.105/docs/media/gpu/video_decoder_perf_test_usage.md-18-Wildcards can be used to run specific sets of tests:
chromium-84.0.4147.105/docs/media/gpu/video_decoder_perf_test_usage.md:19:* Run all VP8 performance tests: `tast run $HOST video.DecodeAccelPerfVP8*`
chromium-84.0.4147.105/docs/media/gpu/video_decoder_perf_test_usage.md-20-* Run all 1080p 60fps performance tests:
chromium-84.0.4147.105/docs/media/gpu/video_decoder_perf_test_usage.md:21:`tast run $HOST video.DecodeAccelPerf*1080P60FPS`
chromium-84.0.4147.105/docs/media/gpu/video_decoder_perf_test_usage.md-22-
##############################################
chromium-84.0.4147.105/docs/clang_code_coverage_wrapper.md-59-always use the same path such as
chromium-84.0.4147.105/docs/clang_code_coverage_wrapper.md:60:`${root_build_dir}/coverage_instrumentation_input.txt`.
chromium-84.0.4147.105/docs/clang_code_coverage_wrapper.md-61-
##############################################
chromium-84.0.4147.105/docs/testing/web_tests.md-387-      to the expected result, actual result, and diff. These results are saved
chromium-84.0.4147.105/docs/testing/web_tests.md:388:      to `$root_build_dir/layout-test-results`.
chromium-84.0.4147.105/docs/testing/web_tests.md-389-        * Alternatively the `--results-directory=path/for/output/` option allows
##############################################
chromium-84.0.4147.105/docs/testing/web_tests_linux.md-94-
chromium-84.0.4147.105/docs/testing/web_tests_linux.md:95:1.  `XEPHYR_PAUSE=$((500*1000)) Xephyr ...etc...  # 500 ms repaint flash`
chromium-84.0.4147.105/docs/testing/web_tests_linux.md:96:1.  `kill -USR1 $(pidof Xephyr)`
chromium-84.0.4147.105/docs/testing/web_tests_linux.md-97-
##############################################
chromium-84.0.4147.105/docs/testing/android_test_instructions.md-135-Crash stacks are logged and can be viewed using `adb logcat`. To symbolize the
chromium-84.0.4147.105/docs/testing/android_test_instructions.md:136:traces, define `CHROMIUM_OUTPUT_DIR=$OUTDIR` where `$OUTDIR` is the argument you
chromium-84.0.4147.105/docs/testing/android_test_instructions.md-137-pass to `ninja -C`, and pipe the output through
chromium-84.0.4147.105/docs/testing/android_test_instructions.md-138-`third_party/android_platform/development/scripts/stack`. If
chromium-84.0.4147.105/docs/testing/android_test_instructions.md:139:`$CHROMIUM_OUTPUT_DIR` is unset, the script will search `out/Debug` and
chromium-84.0.4147.105/docs/testing/android_test_instructions.md-140-`out/Release`. For example:
##############################################
chromium-84.0.4147.105/docs/profiling.md-67-
chromium-84.0.4147.105/docs/profiling.md:68:When the process being profiled ends, you should see one or more `chrome-profile-{process type}-{process ID}` files in your `$PWD`. Run `pprof` to view the results, e.g.:
chromium-84.0.4147.105/docs/profiling.md-69-
##############################################
chromium-84.0.4147.105/docs/profiling.md-202-and deploy chrome to your chromeos device.  These instructions will set up a
chromium-84.0.4147.105/docs/profiling.md:203:build directory for you, so be sure to `gn args out_${SDK_BOARD}/Release` to
chromium-84.0.4147.105/docs/profiling.md-204-edit them and add the gn args listed above.
##############################################
chromium-84.0.4147.105/docs/emacs.md-40-    https://github.com/Valloric/ycmd into a directory, e.g. `~/dev/ycmd`
chromium-84.0.4147.105/docs/emacs.md:41:1.  Test `ycmd` by running `~/dev/ycmd$ python ycmd/__main__.py` You should see
chromium-84.0.4147.105/docs/emacs.md-42-    `KeyError: 'hmac_secret'`
##############################################
chromium-84.0.4147.105/docs/ios/build_instructions.md-80-
chromium-84.0.4147.105/docs/ios/build_instructions.md:81:You can customize the build by editing the file `$HOME/.setup-gn` (create it if
chromium-84.0.4147.105/docs/ios/build_instructions.md-82-it does not exist).  Look at `src/ios/build/tools/setup-gn.config` for
##############################################
chromium-84.0.4147.105/docs/ios/build_instructions.md-86-`autoninja`. `setup-gn.py` creates sub-directories named
chromium-84.0.4147.105/docs/ios/build_instructions.md:87:`out/${configuration}-${platform}`, so for a `Debug` build for simulator use:
chromium-84.0.4147.105/docs/ios/build_instructions.md-88-
##############################################
chromium-84.0.4147.105/docs/ios/build_instructions.md-141-
chromium-84.0.4147.105/docs/ios/build_instructions.md:142:-   `${prefix}.chrome.ios.herebedragons`
chromium-84.0.4147.105/docs/ios/build_instructions.md:143:-   `${prefix}.chrome.ios.herebedragons.ShareExtension`
chromium-84.0.4147.105/docs/ios/build_instructions.md:144:-   `${prefix}.chrome.ios.herebedragons.TodayExtension`
chromium-84.0.4147.105/docs/ios/build_instructions.md:145:-   `${prefix}.chrome.ios.herebedragons.SearchTodayExtension`
chromium-84.0.4147.105/docs/ios/build_instructions.md-146-
##############################################
chromium-84.0.4147.105/docs/ios/build_instructions.md-150-
chromium-84.0.4147.105/docs/ios/build_instructions.md:151:-   `group.${prefix}.chrome`
chromium-84.0.4147.105/docs/ios/build_instructions.md:152:-   `group.${prefix}.common`
chromium-84.0.4147.105/docs/ios/build_instructions.md-153-
chromium-84.0.4147.105/docs/ios/build_instructions.md:154:The `group.${prefix}.chrome` is only shared by Chromium and its extensions
chromium-84.0.4147.105/docs/ios/build_instructions.md:155:to share files and configurations while the `group.${prefix}.common` is shared
chromium-84.0.4147.105/docs/ios/build_instructions.md-156-with Chromium and other applications from the same organisation and can be used
##############################################
chromium-84.0.4147.105/docs/ios/build_instructions.md-162-test application. Those provisioning profile will have a bundle identifier
chromium-84.0.4147.105/docs/ios/build_instructions.md:163:matching the following pattern `${prefix}.gtest.${test-suite-name}` where
chromium-84.0.4147.105/docs/ios/build_instructions.md:164:`${test-suite-name}` is the name of the test suite with underscores changed
chromium-84.0.4147.105/docs/ios/build_instructions.md:165:to dashes (e.g. `base_unittests` app will use `${prefix}.gest.base-unittests`
chromium-84.0.4147.105/docs/ios/build_instructions.md-166-as bundle identifier).
##############################################
chromium-84.0.4147.105/docs/ios/build_instructions.md-170-
chromium-84.0.4147.105/docs/ios/build_instructions.md:171:-   `${prefix}.test.OCHamcrest`
chromium-84.0.4147.105/docs/ios/build_instructions.md:172:-   `${prefix}.test.EarlGrey`
chromium-84.0.4147.105/docs/ios/build_instructions.md-173-
##############################################
chromium-84.0.4147.105/docs/ios/build_instructions.md-175-the XCTest module too. It must match the pattern:
chromium-84.0.4147.105/docs/ios/build_instructions.md:176:`${prefix}.gtest.${test-suite-name}-module`.
chromium-84.0.4147.105/docs/ios/build_instructions.md-177-
##############################################
chromium-84.0.4147.105/docs/ios/build_instructions.md-181-profiles with bundle identifiers that may usually match the following pattern
chromium-84.0.4147.105/docs/ios/build_instructions.md:182:`${prefix}.${application-name}` and may require specific capabilities.
chromium-84.0.4147.105/docs/ios/build_instructions.md-183-
##############################################
chromium-84.0.4147.105/docs/cipd.md-261-To clear the cache and force a full reinstallation, delete your
chromium-84.0.4147.105/docs/cipd.md:262:`$GCLIENT_ROOT/.cipd` directory.
chromium-84.0.4147.105/docs/cipd.md-263-
##############################################
chromium-84.0.4147.105/docs/disassemble_code.md-69-
chromium-84.0.4147.105/docs/disassemble_code.md:70:You can dump the asm from the binary or `.so` file using `objdump`.
chromium-84.0.4147.105/docs/disassemble_code.md-71-You can dump the symbols using `nm`.
##############################################
chromium-84.0.4147.105/docs/infra/new_builder.md-26-though buildbot itself is largely deprecated). FYI builders should use
chromium-84.0.4147.105/docs/infra/new_builder.md:27:`chromium.fyi`, while other builders should mostly use `chromium.$OS`.
chromium-84.0.4147.105/docs/infra/new_builder.md-28-
##############################################
chromium-84.0.4147.105/docs/sublime_ide.md-45-Certain packages require executables to be on your `PATH`, but Sublime gets the
chromium-84.0.4147.105/docs/sublime_ide.md:46:`$PATH` variable from a login shell, not an interactive session (i.e. your path
chromium-84.0.4147.105/docs/sublime_ide.md-47-needs to be set in `~/.bash_profile`, `~/.zprofile`, etc, not `~/.bashrc`,
##############################################
chromium-84.0.4147.105/docs/sublime_ide.md-432-2015](https://blogs.msdn.microsoft.com/vcblog/2016/03/31/announcing-the-official-release-of-the-visual-c-build-tools-2015/).
chromium-84.0.4147.105/docs/sublime_ide.md:433:You should have cl.exe on your `$PATH`, which you can get by running `C:\Program
chromium-84.0.4147.105/docs/sublime_ide.md-434-Files (x86)\Microsoft Visual C++ Build Tools\Visual C++ 2015 x64 Native Build
##############################################
chromium-84.0.4147.105/docs/vscode.md-406-the file path to be relative to the output dir. Check
chromium-84.0.4147.105/docs/vscode.md:407:`gn args out/$dir --list` if `strip_absolute_paths_from_debug_symbols` is true (which is the default),
chromium-84.0.4147.105/docs/vscode.md:408:set `cwd` to the output dir. otherwise, set `cwd` to `${workspaceRoot}`.
chromium-84.0.4147.105/docs/vscode.md-409-
##############################################
chromium-84.0.4147.105/ui/accessibility/extensions/chromevoxclassic/_locales/sw/messages.json:1:{"LOCALE":{"message":"sw"},"CHROMEVOX_NAME":{"message":"ChromeVox"},"CHROMEVOX_DESCRIPTION":{"message":"ChromeVox - Inaipa Chrome Sauti"},"CHROMEVOX_STOP_SPEECH_KEY":{"message":"Achisha usemi"},"CHROMEVOX_TOGGLE_STICKY_MODE":{"message":"Washa/Zima hali ya kunata"},"CHROMEVOX_PREFIX_KEY":{"message":"Ufunguo wa kiambishi"},"CHROMEVOX_HANDLE_TAB_NEXT":{"message":"Ruka hadi kipengee kinachoweza kulengwa kinachofuata"},"CHROMEVOX_HANDLE_TAB_PREV":{"message":"Ruka hadi kipengee kinachoweza kulengwa kilichotangulia"},"CHROMEVOX_BACKWARD":{"message":"Rudi nyuma"},"CHROMEVOX_FORWARD":{"message":"Nenda mbele"},"CHROMEVOX_LEFT":{"message":"Sogeza kushoto"},"CHROMEVOX_RIGHT":{"message":"Sogeza kulia"},"CHROMEVOX_SKIP_BACKWARD":{"message":"Ruka kwenda nyuma wakati wa kusoma mfululizo"},"CHROMEVOX_SKIP_FORWARD":{"message":"Ruka kwenda mbele wakati wa kusoma mfululizo"},"CHROMEVOX_PREVIOUS_GRANULARITY":{"message":"Punguza kiwango cha maelezo unapodurusu"},"CHROMEVOX_NEXT_GRANULARITY":{"message":"Ongeza kiwango cha maelezo unapodurusu"},"CHROMEVOX_ACT_ON_CURRENT_ITEM":{"message":"Chukua hatua kwenye kipengee cha sasa"},"CHROMEVOX_FORCE_CLICK_ON_CURRENT_ITEM":{"message":"Bofya kipengee cha sasa"},"CHROMEVOX_READ_LINK_URL":{"message":"Tangaza URL nyuma ya kiungo"},"CHROMEVOX_READ_CURRENT_TITLE":{"message":"Tangaza kichwa cha ukurasa wa sasa"},"CHROMEVOX_READ_CURRENT_URL":{"message":"Tangaza URL ya ukurasa wa sasa"},"CHROMEVOX_READ_FROM_HERE":{"message":"Anza kusoma kutoka mahali pa sasa"},"CHROMEVOX_SHOW_POWER_KEY":{"message":"Fungua usaidizi wa kibodi wa ChromeVox"},"CHROMEVOX_HIDE_POWER_KEY":{"message":"Ficha usaidizi wa ChromeVox"},"CHROMEVOX_POWER_KEY_HELP":{"message":"Bonyeza \"up\" au \"down\" ili kukagua amri, bonyeza \"enter\" ili kuwasha"},"CHROMEVOX_HELP":{"message":"Fungua mafunzo ya ChromeVox"},"CHROMEVOX_TOGGLE_SEARCH_WIDGET":{"message":"Badilisha wijeti ya utafutaji"},"CHROMEVOX_SHOW_OPTIONS_PAGE":{"message":"Fungua ukurasa wa chaguo"},"CHROMEVOX_SHOW_KB_EXPLORER_PAGE":{"message":"Fungua kigunduzi cha kibodi"},"CHROMEVOX_DECREASE_TTS_RATE":{"message":"Punguza kasi ya usemi"},"CHROMEVOX_INCREASE_TTS_RATE":{"message":"Ongeza kasi ya usemi"},"CHROMEVOX_DECREASE_TTS_PITCH":{"message":"Punguza kiwango cha sauti"},"CHROMEVOX_INCREASE_TTS_PITCH":{"message":"Ongeza sauti"},"CHROMEVOX_DECREASE_TTS_VOLUME":{"message":"Punguza sauti ya usemi"},"CHROMEVOX_INCREASE_TTS_VOLUME":{"message":"Ongeza sauti ya usemi"},"CHROMEVOX_SHOW_FORMS_LIST":{"message":"Onyesha orodha ya fomu"},"CHROMEVOX_SHOW_HEADINGS_LIST":{"message":"Onyesha orodha ya vichwa"},"CHROMEVOX_SHOW_LINKS_LIST":{"message":"Onyesha orodha ya viungo"},"CHROMEVOX_SHOW_TABLES_LIST":{"message":"Onyesha orodha ya majedwali"},"CHROMEVOX_SHOW_LANDMARKS_LIST":{"message":"Onyesha orodha ya vivutio"},"CHROMEVOX_PREVIOUS_ROW":{"message":"Safu mlalo ya jedwali lililotangulia"},"CHROMEVOX_NEXT_ROW":{"message":"Safu mlalo ya jedwali linalofuata"},"CHROMEVOX_PREVIOUS_COL":{"message":"Safu wima ya jedwali lililotangulia"},"CHROMEVOX_NEXT_COL":{"message":"Safu wima ya jedwali linalofuata"},"CHROMEVOX_ANNOUNCE_HEADERS":{"message":"Tangaza vichwa vya kisanduku cha sasa"},"CHROMEVOX_SPEAK_TABLE_LOCATION":{"message":"Tangaza anwani za visanduku vya sasa"},"CHROMEVOX_GUESS_ROW_HEADER":{"message":"Kisia kichwa cha safu mlalo ya kisanduku cha sasa"},"CHROMEVOX_GUESS_COL_HEADER":{"message":"Kiasia kichwa cha safu wima ya kisanduku cha sasa"},"CHROMEVOX_SKIP_TO_BEGINNING":{"message":"Nenda hadi mwanzo wa jedwali"},"CHROMEVOX_SKIP_TO_END":{"message":"Nenda hadi mwisho wa jedwali"},"CHROMEVOX_SKIP_TO_ROW_BEGINNING":{"message":"Nenda hadi mwanzo wa safu mlalo ya sasa"},"CHROMEVOX_SKIP_TO_ROW_END":{"message":"Nenda hadi mwisho wa safu mlalo ya sasa"},"CHROMEVOX_SKIP_TO_COL_BEGINNING":{"message":"Nenda hadi mwanzo wa safu wima ya sasa"},"CHROMEVOX_SKIP_TO_COL_END":{"message":"Nenda hadi mwisho wa safu wima ya sasa"},"CHROMEVOX_NEXT_HEADING1":{"message":"Kichwa cha ngazi ya 1 kinachofuata"},"CHROMEVOX_PREVIOUS_HEADING1":{"message":"Kichwa cha ngazi ya 1 kilichotangulia"},"CHROMEVOX_NEXT_HEADING2":{"message":"Kichwa cha ngazi ya 2 kinachofuata"},"CHROMEVOX_PREVIOUS_HEADING2":{"message":"Kichwa cha ngazi ya 2 kilichotangulia"},"CHROMEVOX_NEXT_HEADING3":{"message":"Kichwa cha ngazi ya 3 kinachofuata"},"CHROMEVOX_PREVIOUS_HEADING3":{"message":"Kichwa cha ngazi ya 3 kilichotangulia"},"CHROMEVOX_NEXT_HEADING4":{"message":"Kichwa cha ngazi ya 4 kinachofuata"},"CHROMEVOX_PREVIOUS_HEADING4":{"message":"Kichwa cha ngazi ya 4 kilichotangulia"},"CHROMEVOX_NEXT_HEADING5":{"message":"Kichwa cha ngazi ya 5 kinachofuata"},"CHROMEVOX_PREVIOUS_HEADING5":{"message":"Kichwa cha ngazi ya 5 kilichotangulia"},"CHROMEVOX_NEXT_HEADING6":{"message":"Kichwa cha ngazi ya 6 kinachofuata"},"CHROMEVOX_PREVIOUS_HEADING6":{"message":"Kichwa cha ngazi ya 6 kilichotangulia"},"CHROMEVOX_NEXT_COMBO_BOX":{"message":"Kikasha mseto kinachofuata"},"CHROMEVOX_PREVIOUS_COMBO_BOX":{"message":"Kikasha mseto kilichotangulia"},"CHROMEVOX_NEXT_EDIT_TEXT":{"message":"Eneo linalofauata la maandishi linaloweza kubadilishwa"},"CHROMEVOX_PREVIOUS_EDIT_TEXT":{"message":"Eneo lililotangulia la maandishi linaloweza kubadilishwa"},"CHROMEVOX_NEXT_FORM_FIELD":{"message":"Sehemu ya fomu inayofuata"},"CHROMEVOX_PREVIOUS_FORM_FIELD":{"message":"Sehemu ya fomu iliyotangulia"},"CHROMEVOX_NEXT_GRAPHIC":{"message":"Mchoro unaofuata"},"CHROMEVOX_PREVIOUS_GRAPHIC":{"message":"Mchoro uliotangulia"},"CHROMEVOX_NEXT_HEADING":{"message":"Kichwa kinachofuata"},"CHROMEVOX_PREVIOUS_HEADING":{"message":"Kichwa kilichotangulia"},"CHROMEVOX_NEXT_LIST_ITEM":{"message":"Kipengee cha orodha kinachofuata"},"CHROMEVOX_PREVIOUS_LIST_ITEM":{"message":"Kipengee cha orodha kilichotangulia"},"CHROMEVOX_NEXT_JUMP":{"message":"Kuruka kunakofuata"},"CHROMEVOX_PREVIOUS_JUMP":{"message":"Kuruka kulikotangulia"},"CHROMEVOX_NEXT_LINK":{"message":"Kiungo kinachofuata"},"CHROMEVOX_PREVIOUS_LINK":{"message":"Kiungo kilichotangulia"},"CHROMEVOX_NEXT_LIST":{"message":"Orodha inayofuata"},"CHROMEVOX_PREVIOUS_LIST":{"message":"Orodha iliyotangulia"},"CHROMEVOX_NEXT_MATH":{"message":"Hisabati inayofuata"},"CHROMEVOX_PREVIOUS_MATH":{"message":"Hisabati iliyotangulia"},"CHROMEVOX_NEXT_MEDIA":{"message":"Maudhui yanayofuata"},"CHROMEVOX_PREVIOUS_MEDIA":{"message":"Maudhui yaliyotangulia"},"CHROMEVOX_NEXT_BLOCKQUOTE":{"message":"Nukuu la msingi linalofuata"},"CHROMEVOX_PREVIOUS_BLOCKQUOTE":{"message":"Nukuu la msingi lililotangulia"},"CHROMEVOX_NEXT_RADIO":{"message":"Kitufe cha mviringo kinachofuata"},"CHROMEVOX_PREVIOUS_RADIO":{"message":"Kitufe cha mviringo kilichotangulia"},"CHROMEVOX_NEXT_SLIDER":{"message":"Kitelezi kinachofuata"},"CHROMEVOX_PREVIOUS_SLIDER":{"message":"Kitelezi kilichotangulia"},"CHROMEVOX_NEXT_TABLE":{"message":"Jedwali linalofuata"},"CHROMEVOX_NEXT_VISITED_LINK":{"message":"Kiungo kilichotembelewa kinachofuata"},"CHROMEVOX_PREVIOUS_TABLE":{"message":"Jedwali lililotangulia"},"CHROMEVOX_PREVIOUS_VISITED_LINK":{"message":"Kiungo kilichotembelewa kilichotangulia"},"CHROMEVOX_NEXT_BUTTON":{"message":"Kitufe kinachofuata"},"CHROMEVOX_PREVIOUS_BUTTON":{"message":"Kitufe kilichotangulia"},"CHROMEVOX_NEXT_CHECKBOX":{"message":"Kisanduku cha kuteua kinachofuata"},"CHROMEVOX_PREVIOUS_CHECKBOX":{"message":"Kisanduku cha kuteua kilichotangulia"},"CHROMEVOX_NEXT_LANDMARK":{"message":"Kivutio kinachofuata"},"CHROMEVOX_PREVIOUS_LANDMARK":{"message":"Kivutio kilichotangulia"},"CHROMEVOX_BENCHMARK":{"message":"Mfumo wa kutatua hitilafu"},"CHROMEVOX_ANNOUNCE_POSITION":{"message":"Hutangaza maelezo mafupi ya nafasi ya sasa"},"CHROMEVOX_FULLY_DESCRIBE":{"message":"Hutangaza maelezo kamili ya nafasi ya sasa"},"CHROMEVOX_OPTIONS_PAGE_TITLE":{"message":"Chaguo za ChromeVox"},"CHROMEVOX_OPTIONS_PAGE_SUMMARY":{"message":"Tumia chaguo zilizo hapa chini ili kubadilisha ChromeVox ikufae. Mabadiliko yataanza kufanya kazi mara moja."},"CHROMEVOX_OPTIONS_MOUSE_FOCUS_FOLLOWS":{"message":"Tumia kipanya kubadilisha kinacholengwa."},"CHROMEVOX_OPTIONS_OUTPUT_CONTEXT_FIRST":{"message":"Onyesha muktadha wa kipengee kabla ya maelezo mengine (kama vile jina lake)."},"CHROMEVOX_OPTIONS_SITE_SPECIFIC_ENHANCEMENTS":{"message":"Boresha tovuti mahususi (kama vile Huduma ya Tafuta na Google)."},"CHROMEVOX_OPTIONS_VERBOSITY_VERBOSE":{"message":"Washa maelezo yenye maneno mengi."},"CHROMEVOX_OPTIONS_CURSOR_BETWEEN_CHARACTERS":{"message":"Weka kishale kati ya herufi unapohariri maandishi (kama vile Mac OS X)."},"CHROMEVOX_OPTIONS_VOICES":{"message":"Sauti"},"CHROMEVOX_OPTIONS_VOICES_DESCRIPTION":{"message":"Badilisha sauti ya sasa kwa kuchagua chaguo kutoka kwenye orodha hapa chini."},"CHROMEVOX_OPTIONS_BRAILLE":{"message":"Breli"},"CHROMEVOX_OPTIONS_BRAILLE_TABLE_TYPE_6":{"message":"Badilisha hadi Breli ya vitone 8"},"CHROMEVOX_OPTIONS_BRAILLE_TABLE_TYPE_8":{"message":"Badilisha hadi Breli ya vitone 6"},"CHROMEVOX_OPTIONS_BRAILLE_DESCRIPTION_6":{"message":"Badilisha jedwali la sasa la breli ya vitone 6 kwa kuteua chaguo kutoka kwenye orodha iliyo hapa chini."},"CHROMEVOX_BRAILLE_TABLE_NAME_WITH_GRADE":{"message":"$1$ Daraja la $2$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_BRAILLE_TABLE_NAME_WITH_VARIANT":{"message":"$1$ ($2$)","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_BRAILLE_TABLE_NAME_WITH_VARIANT_AND_GRADE":{"message":"$1$ ($2$), Daraja la $3$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"},"3":{"content":"$3"}}},"CHROMEVOX_OPTIONS_BRAILLE_DESCRIPTION_8":{"message":"Badilisha jedwali la sasa la breli ya vitone 8 kwa kuchagua chaguo kutoka kwenye orodha iliyo hapa chini."},"CHROMEVOX_OPTIONS_BRAILLE_WORD_WRAP":{"message":"Washa kipengee cha kufunga neno"},"CHROMEVOX_OPTIONS_KEYBOARD_SHORTCUTS":{"message":"Mikato ya kibodi"},"CHROMEVOX_OPTIONS_KEYMAP_DESCRIPTION":{"message":"Badilisha ramani msingi ya sasa kwa kuchagua chaguo kutoka kwenye orodha hapa chini."},"CHROMEVOX_OPTIONS_SELECT_KEYS":{"message":"Weka ramani msingi ya sasa upya"},"CHROMEVOX_OPTIONS_SHORTCUTS_DESCRIPTION":{"message":"Badilisha mikato ya kibodi ikufae kwa amri zinazotumika mara kwa mara kwa kuzichapa katika sehemu zinazohusiana hapa chini."},"CHROMEVOX_OPTIONS_MODIFIER_KEYS":{"message":"Vitufe vya kurekebisha"},"CHROMEVOX_OPTIONS_CVOX_MODIFIER_KEY":{"message":"Kitufe cha kurekebisha cha ChromeVox"},"CHROMEVOX_KBEXPLORER_TITLE":{"message":"Kigunduzi cha Kibodi cha Mfumo wa Uendeshaji wa Chrome"},"CHROMEVOX_KBEXPLORER_INSTRUCTIONS":{"message":"Bonyeza kitufe chochote kufahamu jina lake. Ctrl+W kutafunga kigunduzi cha kibodi."},"CHROMEVOX_CHROME_TAB_CREATED":{"message":"kichupo kimeundwa"},"CHROMEVOX_CHROME_TAB_SELECTED":{"message":"$1$, kichupo","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_CHROME_NORMAL_WINDOW_SELECTED":{"message":"dirisha la kichupo cha $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_CHROME_INCOGNITO_WINDOW_SELECTED":{"message":"dirisha fiche la kichupo cha $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_CHROME_MENU_OPENED":{"message":"Menyu $1$ imefunguliwa","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_CHROME_MENU_CLOSED":{"message":"menyu imefungwa"},"CHROMEVOX_DESCRIBE_CHECKBOX_CHECKED":{"message":"Kisanduku cha kuteua $1$ kimeteuliwa","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_CHECKBOX_CHECKED_STATE":{"message":"kimeteuliwa"},"CHROMEVOX_DESCRIBE_CHECKBOX_UNCHECKED":{"message":"Kisanduku cha kuteua $1$ hakijateuliwa","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_CHECKBOX_UNCHECKED_STATE":{"message":"hakijateuliwa"},"CHROMEVOX_DESCRIBE_RADIO_SELECTED":{"message":"Kitufe cha mviringo cha $1$ kimechaguliwa","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_RADIO_SELECTED_STATE":{"message":"kimechaguliwa"},"CHROMEVOX_DESCRIBE_RADIO_UNSELECTED":{"message":"Kitufe cha mviringo cha $1$ hakijachaguliwa","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_RADIO_UNSELECTED_STATE":{"message":"yameondolewa uteuzi"},"CHROMEVOX_DESCRIBE_MENU":{"message":"$1$, menyu","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_MENU_ITEM":{"message":"$1$, kipengee cha menyu","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_MENU_ITEM_WITH_SUBMENU":{"message":"$1$, kipengee cha menyu, na menyu ndogo","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_WINDOW":{"message":"$1$, dirisha","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_TEXTBOX":{"message":"$1$, $2$, kikasha maandishi","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_DESCRIBE_UNNAMED_TEXTBOX":{"message":"$1$, kikasha maandishi","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_PASSWORD":{"message":"$1$, $2$, kikasha maandishi cha nenosiri","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_DESCRIBE_UNNAMED_PASSWORD":{"message":"$1$, kikasha maandishi cha nenosiri","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_BUTTON":{"message":"$1$, kitufe","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_COMBOBOX":{"message":"$1$, $2$, kikasha mseto","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_DESCRIBE_UNNAMED_COMBOBOX":{"message":"$1$, kikasha mseto","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_LISTBOX":{"message":"$1$, $2$, kisanduku cha orodha","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_DESCRIBE_UNNAMED_LISTBOX":{"message":"$1$, kisanduku cha orodha","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_LINK":{"message":"$1$, kiungo","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_TAB":{"message":"$1$, kichupo","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_DESCRIBE_SLIDER":{"message":"$1$, $2$, kitelezi","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_DESCRIBE_SELECTED":{"message":", kimechaguliwa"},"CHROMEVOX_DESCRIBE_UNSELECTED":{"message":", kimeondolewa uteuzi"},"CHROMEVOX_DESCRIBE_INDEX":{"message":" $1$ kati ya $2$ ","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_DESCRIBE_INDEX_BRL":{"message":"$1$/$2$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_DESCRIBE_DEPTH":{"message":" ngazi ya $1$ ","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_ANNOUNCE_RATE":{"message":"Kadiria asilimia $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_ANNOUNCE_PITCH":{"message":"Kiwango cha sauti asilimia $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_ANNOUNCE_VOLUME":{"message":"Sauti asilimia $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_EXITING_DIALOG":{"message":"Umeondoka kwenye kidirisha."},"CHROMEVOX_EXITED_CONTAINER":{"message":"Umeondoka $1$.","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_ENTERING_DIALOG":{"message":"umeingiza mazungumzo"},"CHROMEVOX_LIVE_REGIONS_REMOVED":{"message":"limeondolewa:"},"CHROMEVOX_STICKY_MODE_ENABLED":{"message":"Hali ya kunata imewashwa"},"CHROMEVOX_STICKY_MODE_DISABLED":{"message":"Hali ya kunata imezimwa"},"CHROMEVOX_KEYBOARD_HELP_INTRO":{"message":"Usaidizi wa Kibodi"},"CHROMEVOX_CONTEXT_MENU_INTRO":{"message":"Menyu"},"CHROMEVOX_CHOICE_WIDGET_NAME":{"message":"Orodha ya $1$.","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_CHOICE_WIDGET_HELP":{"message":"Tumia vitufe vya juu na chini ili kuvinjari, au charaza ili kutafuta."},"CHROMEVOX_CHOICE_WIDGET_EXITED":{"message":"Imeondoka"},"CHROMEVOX_END_OF_CELL":{"message":"Mwisho wa kisanduku."},"CHROMEVOX_NO_URL_FOUND":{"message":"Hakuna URL iliyopatikana"},"CHROMEVOX_LEAVING_TABLE":{"message":"Unaondoka katika jedwali."},"CHROMEVOX_LEAVING_GRID":{"message":"Unaondoka kwenye gridi."},"CHROMEVOX_INSIDE_TABLE":{"message":"Ndani ya jedwali"},"CHROMEVOX_NO_TABLES":{"message":"Hakuna jedwali lililopatikana."},"CHROMEVOX_NOT_INSIDE_TABLE":{"message":"Haimo ndani ya jedwali."},"CHROMEVOX_NOT_IN_TABLE_MODE":{"message":"Haiko katika hali ya jedwali."},"CHROMEVOX_NO_CELL_BELOW":{"message":"Hakuna kisanduku chini."},"CHROMEVOX_NO_CELL_ABOVE":{"message":"Hakuna kisanduku juu."},"CHROMEVOX_NO_CELL_RIGHT":{"message":"Hakuna kisanduku kulia."},"CHROMEVOX_NO_CELL_LEFT":{"message":"Hakuna kisanduku kushoto."},"CHROMEVOX_EMPTY_CELL":{"message":"Kisanduku kitupu."},"CHROMEVOX_SPANNED":{"message":"Kimejumuishwa."},"CHROMEVOX_ROW_HEADER":{"message":"Kichwa cha safu mlalo:"},"CHROMEVOX_EMPTY_ROW_HEADER":{"message":"Kichwa kitupu cha safu mlalo"},"CHROMEVOX_COLUMN_HEADER":{"message":"Kichwa cha safu wima:"},"CHROMEVOX_EMPTY_COLUMN_HEADER":{"message":"Kichwa kitupu cha safu wima"},"CHROMEVOX_NO_HEADERS":{"message":"Hakuna vichwa"},"CHROMEVOX_EMPTY_HEADERS":{"message":"Vichwa vitupu"},"CHROMEVOX_TABLE_LOCATION":{"message":"Safu mlalo $1$ kati ya $2$, Safu wima $3$ kati ya $4$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"},"3":{"content":"$3"},"4":{"content":"$4"}}},"CHROMEVOX_NO_NEXT_CHECKBOX":{"message":"Hakuna kisanduku cha kuteua kinachofuata."},"CHROMEVOX_NO_PREVIOUS_CHECKBOX":{"message":"Hakuna kisanduku cha kuteua kilichotangulia."},"CHROMEVOX_NO_NEXT_EDIT_TEXT":{"message":"Hakuna sehemu ya maandishi inayoweza kubadilishwa inayofuata."},"CHROMEVOX_NO_PREVIOUS_EDIT_TEXT":{"message":"Hakuna sehemu ya maandishi inayoweza kubadilishwa iliyotangulia."},"CHROMEVOX_NO_NEXT_HEADING":{"message":"Hakuna kichwa kinachofuata."},"CHROMEVOX_NO_PREVIOUS_HEADING":{"message":"Hakuna kichwa kilichotangulia."},"CHROMEVOX_NO_NEXT_HEADING_1":{"message":"Hakuna kichwa cha ngazi ya 1 kinachofuata."},"CHROMEVOX_NO_PREVIOUS_HEADING_1":{"message":"Hakuna kichwa cha ngazi ya 1 iliyotangulia."},"CHROMEVOX_NO_NEXT_HEADING_2":{"message":"Hakuna kichwa cha ngazi ya 2 kinachofuata."},"CHROMEVOX_NO_PREVIOUS_HEADING_2":{"message":"Hakuna kichwa cha ngazi ya 2 kilichotangulia."},"CHROMEVOX_NO_NEXT_HEADING_3":{"message":"Hakuna kichwa cha ngazi ya 3 kinachofuata."},"CHROMEVOX_NO_PREVIOUS_HEADING_3":{"message":"Hakuna kichwa cha ngazi ya 3 kilichotangulia."},"CHROMEVOX_NO_NEXT_HEADING_4":{"message":"Hakuna kichwa cha ngazi ya 4 kinachofuata."},"CHROMEVOX_NO_PREVIOUS_HEADING_4":{"message":"Hakuna kichwa cha ngazi ya 4 kilichotangulia."},"CHROMEVOX_NO_NEXT_HEADING_5":{"message":"Hakuna kichwa cha ngazi ya 5 inayofuata."},"CHROMEVOX_NO_PREVIOUS_HEADING_5":{"message":"Hakuna kichwa cha ngazi ya 5 iliyotangulia."},"CHROMEVOX_NO_NEXT_HEADING_6":{"message":"Hakuna kichwa cha ngazi ya 6 kinachofuata."},"CHROMEVOX_NO_PREVIOUS_HEADING_6":{"message":"Hakuna kichwa cha ngazi ya 6 iliyotangulia."},"CHROMEVOX_NO_NEXT_NOT_LINK":{"message":"Hakuna kipengee kinachofuata ambacho si kiungo."},"CHROMEVOX_NO_PREVIOUS_NOT_LINK":{"message":"Hakuna kipengee kilichotangulia ambacho si kiungo."},"CHROMEVOX_NO_NEXT_ANCHOR":{"message":"Hakuna nanga inayofuata."},"CHROMEVOX_NO_PREVIOUS_ANCHOR":{"message":"Hakuna nanga iliyotangulia."},"CHROMEVOX_NO_NEXT_LINK":{"message":"Hakuna kiungo kinachofuata."},"CHROMEVOX_NO_PREVIOUS_LINK":{"message":"Hakuna kiungo kilichotangulia."},"CHROMEVOX_NO_NEXT_TABLE":{"message":"Hakuna jedwali linalofuata."},"CHROMEVOX_NO_PREVIOUS_TABLE":{"message":"Hakuna jedwali lililotangulia."},"CHROMEVOX_NO_NEXT_VISITED_LINK":{"message":"Hakuna kiungo kilichotembelewa kinachofuata."},"CHROMEVOX_NO_PREVIOUS_VISITED_LINK":{"message":"Hakuna kiungo kilichotembelewa kilichotangulia."},"CHROMEVOX_NO_NEXT_MATH":{"message":"Hakuna mlingano wa hisabati unaofuata."},"CHROMEVOX_NO_PREVIOUS_MATH":{"message":"Hakuna mlingano wa hisabati uliotangulia."},"CHROMEVOX_NO_NEXT_MEDIA_WIDGET":{"message":"Hakuna wijeti ya maudhui inayofuata."},"CHROMEVOX_NO_PREVIOUS_MEDIA_WIDGET":{"message":"Hakuna wijeti ya maudhui."},"CHROMEVOX_NO_NEXT_LIST":{"message":"Hakuna orodha inayofuata."},"CHROMEVOX_NO_PREVIOUS_LIST":{"message":"Hakuna orodha iliyotangulia."},"CHROMEVOX_NO_NEXT_LIST_ITEM":{"message":"Hakuna kipengee cha orodha kinachofuata."},"CHROMEVOX_NO_PREVIOUS_LIST_ITEM":{"message":"Hakuna kipengee cha orodha kilichotangulia."},"CHROMEVOX_NO_NEXT_BLOCKQUOTE":{"message":"Hakuna nukuu la msingi linalofuata."},"CHROMEVOX_NO_PREVIOUS_BLOCKQUOTE":{"message":"Hakuna nukuu la msingi lililotangulia."},"CHROMEVOX_NO_NEXT_FORM_FIELD":{"message":"Hakuna sehemu ya fomu inayofuata."},"CHROMEVOX_NO_PREVIOUS_FORM_FIELD":{"message":"Hakuna sehemu ya fomu iliyotangulia."},"CHROMEVOX_NO_NEXT_JUMP":{"message":"Hakuna mahali pa kuruka panapofuata."},"CHROMEVOX_NO_PREVIOUS_JUMP":{"message":"Hakuna mahali pa kuruka palipotangulia."},"CHROMEVOX_NO_NEXT_LANDMARK":{"message":"Hakuna kivutio cha ARIA kinachofuata."},"CHROMEVOX_NO_PREVIOUS_LANDMARK":{"message":"Hakuna kivutio cha ARIA kilichotangulia."},"CHROMEVOX_NO_NEXT_COMBO_BOX":{"message":"Hakuna kikasha mseto kinachofuata."},"CHROMEVOX_NO_PREVIOUS_COMBO_BOX":{"message":"Hakuna kikasha mseto kilichotangulia."},"CHROMEVOX_NO_NEXT_BUTTON":{"message":"Hakuna kitufe kinachofuata."},"CHROMEVOX_NO_PREVIOUS_BUTTON":{"message":"Hakuna kitufe kilichotangulia."},"CHROMEVOX_NO_NEXT_GRAPHIC":{"message":"Hakuna mchoro unaofuata."},"CHROMEVOX_NO_PREVIOUS_GRAPHIC":{"message":"Hakuna mchoro uliotangulia."},"CHROMEVOX_NO_NEXT_SLIDER":{"message":"Hakuna kitelezi kinachofuata."},"CHROMEVOX_NO_PREVIOUS_SLIDER":{"message":"Hakuna kitelezi kilichotangulia."},"CHROMEVOX_NO_NEXT_RADIO_BUTTON":{"message":"Hakuna kitufe kinachofuata."},"CHROMEVOX_NO_PREVIOUS_RADIO_BUTTON":{"message":"Hakuna kitufe kilichotangulia."},"CHROMEVOX_NO_NEXT_SECTION":{"message":"Hakuna sehemu inayofuata."},"CHROMEVOX_NO_PREVIOUS_SECTION":{"message":"Hakuna sehemu iliyotangulia."},"CHROMEVOX_NO_NEXT_CONTROL":{"message":"Hakuna kidhibiti kinachofuata."},"CHROMEVOX_NO_PREVIOUS_CONTROL":{"message":"Hakuna kidhibiti kilichotangulia."},"CHROMEVOX_ELEMENT_CLICKED":{"message":"Kimebofiwa"},"CHROMEVOX_ELEMENT_DOUBLE_CLICKED":{"message":"kimebofiwa mara mbili"},"CHROMEVOX_POWERKEY_NO_HEADINGS":{"message":"Hakuna vichwa."},"CHROMEVOX_POWERKEY_NO_LINKS":{"message":"Hakuna viungo."},"CHROMEVOX_POWERKEY_NO_FORMS":{"message":"Hakuna fomu."},"CHROMEVOX_POWERKEY_NO_TABLES":{"message":"Hakuna majedwali."},"CHROMEVOX_POWERKEY_NO_LANDMARKS":{"message":"Hakuna vivutio vya ARIA."},"CHROMEVOX_POWERKEY_NO_JUMPS":{"message":"Hakuna kuruka."},"CHROMEVOX_LIST_POSITION":{"message":"$1$ kati ya $2$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_LIST_POSITION_BRL":{"message":"$1$/$2$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_ARIA_HAS_SUBMENU":{"message":"Ina menyu ndogo"},"CHROMEVOX_ARIA_HAS_POPUP":{"message":"ina dirisha ibukizi"},"CHROMEVOX_ARIA_HAS_POPUP_BRL":{"message":"+dirisha ibukizi"},"CHROMEVOX_ARIA_VALUE_MIN":{"message":"Kiwango cha chini $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_ARIA_VALUE_MIN_BRL":{"message":"kiwango cha chini:$1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_ARIA_VALUE_MAX":{"message":"Upeo wa juu $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_ARIA_VALUE_MAX_BRL":{"message":"upeo wa juu:$1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_ROLE_ALERT":{"message":"Arifa"},"CHROMEVOX_ROLE_ALERT_BRL":{"message":"arifa"},"CHROMEVOX_ROLE_ALERTDIALOG":{"message":"Arifa ya mazungumzo"},"CHROMEVOX_ROLE_ALERTDIALOG_BRL":{"message":"arifa ya mazungumzo"},"CHROMEVOX_ROLE_BUTTON":{"message":"Kitufe"},"CHROMEVOX_ROLE_BUTTON_BRL":{"message":"kitufe"},"CHROMEVOX_ROLE_CHECKBOX":{"message":"Kisanduku cha kuteua"},"CHROMEVOX_ROLE_CHECKBOX_BRL":{"message":"chk"},"CHROMEVOX_ROLE_COMBOBOX":{"message":"Kikasha cha Combo"},"CHROMEVOX_ROLE_COMBOBOX_BRL":{"message":"kisanduku mseto"},"CHROMEVOX_ROLE_DIALOG":{"message":"Mazungumzo"},"CHROMEVOX_ROLE_DIALOG_BRL":{"message":"mazungumzo"},"CHROMEVOX_ROLE_GRID":{"message":"Gridi"},"CHROMEVOX_ROLE_GRID_BRL":{"message":"gridi"},"CHROMEVOX_ROLE_GRIDCELL":{"message":"Kisanduku"},"CHROMEVOX_ROLE_GRIDCELL_BRL":{"message":"cll"},"CHROMEVOX_ROLE_GRIDCELL_POS":{"message":"safu mlalo $1$ safu wima $2$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_ROLE_LINK":{"message":"Kiungo"},"CHROMEVOX_ROLE_LINK_BRL":{"message":"kiungo"},"CHROMEVOX_ROLE_LISTBOX":{"message":"Kikasha orodha"},"CHROMEVOX_ROLE_LISTBOX_BRL":{"message":"lstbx"},"CHROMEVOX_ROLE_LOG":{"message":"Kumbukumbu"},"CHROMEVOX_ROLE_LOG_BRL":{"message":"kumbukumbu"},"CHROMEVOX_ROLE_MARQUEE":{"message":"Marquee"},"CHROMEVOX_ROLE_MARQUEE_BRL":{"message":"marquee"},"CHROMEVOX_ROLE_MENU":{"message":"Menyu"},"CHROMEVOX_ROLE_MENU_BRL":{"message":"menyu"},"CHROMEVOX_ROLE_MENUBAR":{"message":"Upau wa menyu"},"CHROMEVOX_ROLE_MENUBAR_BRL":{"message":"mnubr"},"CHROMEVOX_ROLE_MENUITEM":{"message":"Kipengee cha menyu"},"CHROMEVOX_ROLE_MENUITEM_BRL":{"message":"mnuitm"},"CHROMEVOX_ROLE_MENUITEMCHECKBOX":{"message":"Kisanduku cha kuteua cha kipengee cha menyu"},"CHROMEVOX_ROLE_MENUITEMCHECKBOX_BRL":{"message":"chkmnuitm"},"CHROMEVOX_ROLE_MENUITEMRADIO":{"message":"Kitufe cha mviringo cha menyu"},"CHROMEVOX_ROLE_MENUITEMRADIO_BRL":{"message":"rdmnuitm"},"CHROMEVOX_ROLE_POPUP_BUTTON":{"message":"Kitufe cha dirisha ibukizi"},"CHROMEVOX_ROLE_POPUP_BUTTON_BRL":{"message":"popbtn"},"CHROMEVOX_ROLE_PROGRESSBAR":{"message":"Upau wa maendeleo"},"CHROMEVOX_ROLE_PROGRESSBAR_BRL":{"message":"upau wa maendeleo"},"CHROMEVOX_ROLE_RADIO":{"message":"Kitufe cha mviringo"},"CHROMEVOX_ROLE_RADIO_BRL":{"message":"rbtn"},"CHROMEVOX_ROLE_RADIOGROUP":{"message":"Vitufe kadhaa vya mviringo"},"CHROMEVOX_ROLE_RADIOGROUP_BRL":{"message":"rdgrp"},"CHROMEVOX_ROLE_SCROLLBAR":{"message":"Sehemu ya kusogeza"},"CHROMEVOX_ROLE_SCROLLBAR_BRL":{"message":"scbr"},"CHROMEVOX_ROLE_SLIDER":{"message":"Kitelezi"},"CHROMEVOX_ROLE_SLIDER_BRL":{"message":"kitelezi"},"CHROMEVOX_ROLE_SPINBUTTON":{"message":"Kitufe cha kusokota"},"CHROMEVOX_ROLE_SPINBUTTON_BRL":{"message":"spnbtn"},"CHROMEVOX_ROLE_STATUS":{"message":"Hali"},"CHROMEVOX_ROLE_STATUS_BRL":{"message":"hali"},"CHROMEVOX_ROLE_TAB":{"message":"Kichupo"},"CHROMEVOX_ROLE_TAB_BRL":{"message":"kichupo"},"CHROMEVOX_ROLE_TABLE":{"message":"Jedwali"},"CHROMEVOX_ROLE_TABLE_BRL":{"message":"jedwali"},"CHROMEVOX_ROLE_TABLIST":{"message":"Orodha ya vichupo"},"CHROMEVOX_ROLE_TABLIST_BRL":{"message":"orodha ya vichupo"},"CHROMEVOX_ROLE_TABPANEL":{"message":"Kidirisha cha kichupo"},"CHROMEVOX_ROLE_TABPANEL_BRL":{"message":"tabpnl"},"CHROMEVOX_ROLE_TEXTBOX":{"message":"Kikasha maandishi"},"CHROMEVOX_ROLE_TEXTBOX_BRL":{"message":"ed"},"CHROMEVOX_ROLE_TIMER":{"message":"Kipima muda"},"CHROMEVOX_ROLE_TIMER_BRL":{"message":"kipima muda"},"CHROMEVOX_ROLE_TOOLBAR":{"message":"Upau zana"},"CHROMEVOX_ROLE_TOOLBAR_BRL":{"message":"tlbar"},"CHROMEVOX_ROLE_TOOLTIP":{"message":"Kidokezo cha zana"},"CHROMEVOX_ROLE_TOOLTIP_BRL":{"message":"tltip"},"CHROMEVOX_ROLE_TREE":{"message":"Mti"},"CHROMEVOX_ROLE_TREE_BRL":{"message":"mti"},"CHROMEVOX_ROLE_TREEITEM":{"message":"Kipengee cha mti"},"CHROMEVOX_ROLE_TREEITEM_BRL":{"message":"tritm"},"CHROMEVOX_ROLE_ARTICLE":{"message":"Makala"},"CHROMEVOX_ROLE_ARTICLE_BRL":{"message":"makala"},"CHROMEVOX_ROLE_APPLICATION":{"message":"Programu"},"CHROMEVOX_ROLE_APPLICATION_BRL":{"message":"programu"},"CHROMEVOX_ROLE_BANNER":{"message":"Bango"},"CHROMEVOX_ROLE_BANNER_BRL":{"message":"bango"},"CHROMEVOX_ROLE_COLUMNHEADER":{"message":"Kichwa cha safu wima"},"CHROMEVOX_ROLE_COLUMNHEADER_BRL":{"message":"colhdr"},"CHROMEVOX_ROLE_COMPLEMENTARY":{"message":"Nyongeza"},"CHROMEVOX_ROLE_COMPLEMENTARY_BRL":{"message":"nyongeza"},"CHROMEVOX_ROLE_CONTENTINFO":{"message":"Maelezo ya maudhui"},"CHROMEVOX_ROLE_CONTENTINFO_BRL":{"message":"maelezo ya maudhui"},"CHROMEVOX_ROLE_DEFINITION":{"message":"Ufafanuzi"},"CHROMEVOX_ROLE_DEFINITION_BRL":{"message":"Ufafanuzi"},"CHROMEVOX_ROLE_DIRECTORY":{"message":"Saraka"},"CHROMEVOX_ROLE_DIRECTORY_BRL":{"message":"saraka"},"CHROMEVOX_ROLE_DOCUMENT":{"message":"Hati"},"CHROMEVOX_ROLE_DOCUMENT_BRL":{"message":"hati"},"CHROMEVOX_ROLE_FORM":{"message":"Fomu"},"CHROMEVOX_ROLE_FORM_BRL":{"message":"fomu"},"CHROMEVOX_ROLE_GROUP":{"message":"Kikundi"},"CHROMEVOX_ROLE_GROUP_BRL":{"message":"kikundi"},"CHROMEVOX_ROLE_HEADING":{"message":"Kichwa"},"CHROMEVOX_ROLE_HEADING_BRL":{"message":"hdng"},"CHROMEVOX_ROLE_IMG":{"message":"Picha"},"CHROMEVOX_ROLE_IMG_BRL":{"message":"picha"},"CHROMEVOX_ROLE_LIST":{"message":"Orodha"},"CHROMEVOX_ROLE_LIST_BRL":{"message":"orodha"},"CHROMEVOX_ROLE_LISTITEM":{"message":"Kipengee cha orodha"},"CHROMEVOX_ROLE_LISTITEM_BRL":{"message":"orodha ya kipengee"},"CHROMEVOX_ROLE_MAIN":{"message":"Kuu"},"CHROMEVOX_ROLE_MAIN_BRL":{"message":"kuu"},"CHROMEVOX_ROLE_MATH":{"message":"Hisabati"},"CHROMEVOX_ROLE_MATH_BRL":{"message":"hisabati"},"CHROMEVOX_ROLE_NAVIGATION":{"message":"Kudurusu"},"CHROMEVOX_ROLE_NAVIGATION_BRL":{"message":"kudurusu"},"CHROMEVOX_ROLE_NOTE":{"message":"Dokezo"},"CHROMEVOX_ROLE_NOTE_BRL":{"message":"dokezo"},"CHROMEVOX_ROLE_REGION":{"message":"Eneo"},"CHROMEVOX_ROLE_REGION_BRL":{"message":"eneo"},"CHROMEVOX_ROLE_ROWHEADER":{"message":"Kichwa cha safu mlalo"},"CHROMEVOX_ROLE_ROWHEADER_BRL":{"message":"rwhdr"},"CHROMEVOX_ROLE_SEARCH":{"message":"Tafuta"},"CHROMEVOX_ROLE_SEARCH_BRL":{"message":"tafuta"},"CHROMEVOX_ROLE_SEPARATOR":{"message":"Kitenganishi"},"CHROMEVOX_ROLE_SEPARATOR_BRL":{"message":"seprtr"},"CHROMEVOX_ARIA_AUTOCOMPLETE_INLINE":{"message":"Inayojijaza kiotomatiki kulingana na maandishi"},"CHROMEVOX_ARIA_AUTOCOMPLETE_INLINE_BRL":{"message":"autoinl"},"CHROMEVOX_ARIA_AUTOCOMPLETE_LIST":{"message":"Orodha inayojijaza kiotomatiki"},"CHROMEVOX_ARIA_AUTOCOMPLETE_LIST_BRL":{"message":"autolst"},"CHROMEVOX_ARIA_AUTOCOMPLETE_BOTH":{"message":"Inayojijaza kiotomatiki kulingana na maandishi na orodha"},"CHROMEVOX_ARIA_AUTOCOMPLETE_BOTH_BRL":{"message":"autoinl+lst"},"CHROMEVOX_ARIA_CHECKED_TRUE":{"message":"Imeteuliwa"},"CHROMEVOX_ARIA_CHECKED_FALSE":{"message":"Haijateuliwa"},"CHROMEVOX_ARIA_CHECKED_MIXED":{"message":"Imeteuliwa kiasi"},"CHROMEVOX_ARIA_DISABLED_TRUE":{"message":"Kimelemazwa"},"CHROMEVOX_ARIA_EXPANDED_TRUE":{"message":"Imepanuliwa"},"CHROMEVOX_ARIA_EXPANDED_FALSE":{"message":"Imekunjwa"},"CHROMEVOX_ARIA_INVALID_TRUE":{"message":"Ulichoweka si sahihi"},"CHROMEVOX_ARIA_INVALID_GRAMMAR":{"message":"Kosa la sarufi limegunduliwa"},"CHROMEVOX_ARIA_INVALID_GRAMMAR_BRL":{"message":"kosa la sarufi"},"CHROMEVOX_ARIA_INVALID_SPELLING":{"message":"Kosa la tahajia limegunduliwa"},"CHROMEVOX_ARIA_INVALID_SPELLING_BRL":{"message":"kosa la tahajia"},"CHROMEVOX_ARIA_MULTILINE_TRUE":{"message":"Mistari mingi"},"CHROMEVOX_ARIA_MULTILINE_TRUE_BRL":{"message":"multln"},"CHROMEVOX_ARIA_MULTISELECTABLE_TRUE":{"message":"Chaguo nyingi"},"CHROMEVOX_ARIA_MULTISELECTABLE_TRUE_BRL":{"message":"chagua nyingi"},"CHROMEVOX_ARIA_PRESSED_TRUE":{"message":"Imebonyezwa"},"CHROMEVOX_ARIA_PRESSED_FALSE":{"message":"Haijabonyezwa"},"CHROMEVOX_ARIA_PRESSED_MIXED":{"message":"Imebonyezwa kiasi"},"CHROMEVOX_ARIA_READONLY_TRUE":{"message":"Soma tu"},"CHROMEVOX_ARIA_READONLY_TRUE_BRL":{"message":"soma tu"},"CHROMEVOX_ARIA_REQUIRED_TRUE":{"message":"Inahitajika"},"CHROMEVOX_ARIA_REQUIRED_TRUE_BRL":{"message":"inahitajika"},"CHROMEVOX_ARIA_SELECTED_TRUE":{"message":"Imechaguliwa"},"CHROMEVOX_ARIA_SELECTED_FALSE":{"message":"Haijachaguliwa"},"CHROMEVOX_VISITED_LINK":{"message":"Kiungo kilichotembelewa"},"CHROMEVOX_VISITED_LINK_BRL":{"message":"kiungo kilichotembelewa"},"CHROMEVOX_VISITED_STATE":{"message":"Lililotembelewa"},"CHROMEVOX_VISITED_STATE_BRL":{"message":"vtd"},"CHROMEVOX_TAG_H1":{"message":"Kichwa cha 1"},"CHROMEVOX_TAG_H1_BRL":{"message":"h1"},"CHROMEVOX_TAG_H2":{"message":"Kichwa 2"},"CHROMEVOX_TAG_H2_BRL":{"message":"h2"},"CHROMEVOX_TAG_H3":{"message":"Kichwa 3"},"CHROMEVOX_TAG_H3_BRL":{"message":"h3"},"CHROMEVOX_TAG_H4":{"message":"Kichwa cha 4"},"CHROMEVOX_TAG_H4_BRL":{"message":"h4"},"CHROMEVOX_TAG_H5":{"message":"Kichwa 5"},"CHROMEVOX_TAG_H5_BRL":{"message":"h5"},"CHROMEVOX_TAG_H6":{"message":"Kichwa 6"},"CHROMEVOX_TAG_H6_BRL":{"message":"h6"},"CHROMEVOX_TAG_LI":{"message":"Kipengee cha orodha"},"CHROMEVOX_TAG_LI_BRL":{"message":"orodha ya kipengee"},"CHROMEVOX_TAG_OL":{"message":"Orodha yenye Mpangilio"},"CHROMEVOX_TAG_OL_BRL":{"message":"orodha"},"CHROMEVOX_TAG_SELECT":{"message":"Kikasha cha Combo"},"CHROMEVOX_TAG_SELECT_BRL":{"message":"kisanduku mseto"},"CHROMEVOX_TAG_TEXTAREA":{"message":"Eneo la maandishi"},"CHROMEVOX_TAG_TEXTAREA_BRL":{"message":"mled"},"CHROMEVOX_TAG_TABLE":{"message":"jedwali"},"CHROMEVOX_TAG_TABLE_BRL":{"message":"jedwali"},"CHROMEVOX_TAG_UL":{"message":"Orodha"},"CHROMEVOX_TAG_UL_BRL":{"message":"orodha"},"CHROMEVOX_TAG_SECTION":{"message":"Sehemu"},"CHROMEVOX_TAG_SECTION_BRL":{"message":"sctn"},"CHROMEVOX_TAG_NAV":{"message":"Kudurusu"},"CHROMEVOX_TAG_NAV_BRL":{"message":"kudurusu"},"CHROMEVOX_TAG_ARTICLE":{"message":"Makala"},"CHROMEVOX_TAG_ARTICLE_BRL":{"message":"makala"},"CHROMEVOX_TAG_ASIDE":{"message":"Kando"},"CHROMEVOX_TAG_ASIDE_BRL":{"message":"kando"},"CHROMEVOX_TAG_HGROUP":{"message":"Kichwa cha kikundi"},"CHROMEVOX_TAG_HGROUP_BRL":{"message":"hdnggrp"},"CHROMEVOX_TAG_HEADER":{"message":"Kichwa"},"CHROMEVOX_TAG_HEADER_BRL":{"message":"kichwa"},"CHROMEVOX_TAG_FOOTER":{"message":"Kijachini"},"CHROMEVOX_TAG_FOOTER_BRL":{"message":"kijachini"},"CHROMEVOX_TAG_TIME":{"message":"Muda"},"CHROMEVOX_TAG_MARK":{"message":"Alama"},"CHROMEVOX_TAG_MARK_BRL":{"message":"alama"},"CHROMEVOX_TAG_VIDEO":{"message":"Video"},"CHROMEVOX_TAG_VIDEO_BRL":{"message":"video"},"CHROMEVOX_TAG_AUDIO":{"message":"Sauti"},"CHROMEVOX_TAG_AUDIO_BRL":{"message":"sauti"},"CHROMEVOX_INPUT_TYPE_COLOR":{"message":"Kiteua rangi"},"CHROMEVOX_INPUT_TYPE_COLOR_BRL":{"message":"kiteua rangi"},"CHROMEVOX_INPUT_TYPE_DATETIME":{"message":"Kidhibiti cha tarehe na saa"},"CHROMEVOX_INPUT_TYPE_DATETIME_BRL":{"message":"tarehe na saa"},"CHROMEVOX_INPUT_TYPE_TIME":{"message":"Kudhibiti muda"},"CHROMEVOX_INPUT_TYPE_TIME_BRL":{"message":"wakati"},"CHROMEVOX_INPUT_TYPE_DATETIME_LOCAL":{"message":"Kidhibiti cha tarehe na saa"},"CHROMEVOX_INPUT_TYPE_DATETIME_LOCAL_BRL":{"message":"tarehe na saa"},"CHROMEVOX_INPUT_TYPE_DATE":{"message":"Kidhibiti cha tarehe"},"CHROMEVOX_INPUT_TYPE_DATE_BRL":{"message":"tarehe"},"CHROMEVOX_INPUT_TYPE_EMAIL":{"message":"Badilisha maandishi, ingizo la barua pepe"},"CHROMEVOX_INPUT_TYPE_EMAIL_BRL":{"message":"@ed"},"CHROMEVOX_INPUT_TYPE_FILE":{"message":"Uchaguzi wa faili"},"CHROMEVOX_INPUT_TYPE_FILE_BRL":{"message":"faili"},"CHROMEVOX_INPUT_TYPE_MONTH":{"message":"Udhibiti wa mwezi"},"CHROMEVOX_INPUT_TYPE_MONTH_BRL":{"message":"mwezi"},"CHROMEVOX_INPUT_TYPE_NUMBER":{"message":"Badilisha maandishi ya nambari pekee"},"CHROMEVOX_INPUT_TYPE_NUMBER_BRL":{"message":"#ed"},"CHROMEVOX_INPUT_TYPE_PASSWORD":{"message":"Maandishi ya kubadilisha nenosiri"},"CHROMEVOX_INPUT_TYPE_PASSWORD_BRL":{"message":"pwded"},"CHROMEVOX_INPUT_TYPE_RESET":{"message":"Weka upya"},"CHROMEVOX_INPUT_TYPE_RESET_BRL":{"message":"weka upya"},"CHROMEVOX_INPUT_TYPE_SEARCH":{"message":"Badilisha maandishi, ingizo la utafutaji"},"CHROMEVOX_INPUT_TYPE_SEARCH_BRL":{"message":"imetafuta"},"CHROMEVOX_INPUT_TYPE_TEXT":{"message":"Badilisha maandishi"},"CHROMEVOX_INPUT_TYPE_TEXT_BRL":{"message":"ed"},"CHROMEVOX_INPUT_TYPE_URL":{"message":"Hariri maandishi, ingizo la URL"},"CHROMEVOX_INPUT_TYPE_URL_BRL":{"message":"urled"},"CHROMEVOX_INPUT_TYPE_WEEK":{"message":"Udhibiti wa wiki ya mwaka"},"CHROMEVOX_INPUT_TYPE_WEEK_BRL":{"message":"wiki"},"CHROMEVOX_INTERNAL_LINK":{"message":"Kiungo cha ndani"},"CHROMEVOX_INTERNAL_LINK_BRL":{"message":"kiungo cha ndani"},"CHROMEVOX_TEXT_BOX_BLANK":{"message":"Mtupu"},"CHROMEVOX_TEXT_BOX_WHITESPACE":{"message":"Nafasi"},"CHROMEVOX_LIST_WITH_ITEMS_NOT_PLURALIZED":{"message":"na vipengee $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_LIST_WITH_ITEMS_NOT_PLURALIZED_BRL":{"message":"+$1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_LIST_WITH_ITEMS":{"message":"ina {COUNT,plural, =1{Kipengee #}other{Vipengee #}}"},"CHROMEVOX_LIST_WITH_ITEMS_BRL":{"message":"+{COUNT,plural, =1{#}other{#}}"},"CHROMEVOX_STATE_PERCENT":{"message":"$1$%","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_STATE_PERCENT_BRL":{"message":"$1$%","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_HAS_SUBMENU":{"message":"ina menyu ndogo"},"CHROMEVOX_HAS_POPUP":{"message":"ina dirisha ibukizi"},"CHROMEVOX_HAS_POPUP_BRL":{"message":"ina dirisha ibukizi"},"CHROMEVOX_COLLECTION":{"message":"$1$ mkusanyiko ulio na vipengee $2$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_ENTER_KEY":{"message":"Enter"},"CHROMEVOX_SPACE_KEY":{"message":"Nafasi"},"CHROMEVOX_BACKSPACE_KEY":{"message":"Backspace"},"CHROMEVOX_TAB_KEY":{"message":"Kichupo"},"CHROMEVOX_LEFT_KEY":{"message":"Kushoto"},"CHROMEVOX_UP_KEY":{"message":"Juu"},"CHROMEVOX_RIGHT_KEY":{"message":"Kulia"},"CHROMEVOX_DOWN_KEY":{"message":"Chini"},"CHROMEVOX_UNKNOWN_LINK":{"message":"Kiungo kisichojulikana"},"CHROMEVOX_TOGGLE_CHROMEVOX_ACTIVE":{"message":"Geuza ChromeVox itumike au isitumike."},"CHROMEVOX_CHROMEVOX_INACTIVE":{"message":"ChromeVox sasa haitumiki."},"CHROMEVOX_TOGGLE_CHROMEVOX":{"message":"Geuza ChromeVox ya kawaida."},"CHROMEVOX_PAUSE":{"message":", "},"CHROMEVOX_PREVIOUS_DIFFERENT_ELEMENT":{"message":"Kipengee tofauti kilichotangulia."},"CHROMEVOX_NEXT_DIFFERENT_ELEMENT":{"message":"Kipengee tofauti kinachofuata."},"CHROMEVOX_PREVIOUS_SIMILAR_ELEMENT":{"message":"Vipengee vinavyofanana vilivyotangulia."},"CHROMEVOX_NEXT_SIMILAR_ELEMENT":{"message":"Kipengee kinachofanana kinachofuata."},"CHROMEVOX_NO_MORE_SIMILAR_ELEMENTS":{"message":"Hakuna vipengee vinavyofanana tena."},"CHROMEVOX_NO_MORE_DIFFERENT_ELEMENTS":{"message":"Hakuna vipengee zaidi tofauti."},"CHROMEVOX_ENTER_CSS_SPACE":{"message":"Ingia ugunduaji wa kikundi"},"CHROMEVOX_ENTER_GROUP_EXPLORATION":{"message":"Inagundua vikundi"},"CHROMEVOX_PDF_HEADER":{"message":"Ukurasa huu una maandishi yaliyotolewa kwenye faili ya PDF kiotomatiki <b>$1$</b>. <a href=\"$2$\">Bofya hapa kwa faili ya awali.</a>","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_OBJECT_STRATEGY":{"message":"Kitu"},"CHROMEVOX_GROUP_STRATEGY":{"message":"Kikundi"},"CHROMEVOX_TABLE_STRATEGY":{"message":"Jedwali"},"CHROMEVOX_ROW_GRANULARITY":{"message":"Safu mlalo"},"CHROMEVOX_COLUMN_GRANULARITY":{"message":"Safu wima"},"CHROMEVOX_MATHML_TREE_GRANULARITY":{"message":"Mti wa Hisabati ML"},"CHROMEVOX_MATHML_LAYOUT_GRANULARITY":{"message":"Mpangilio wa Hisabati ML"},"CHROMEVOX_MATHML_TOKEN_GRANULARITY":{"message":"Tokeni ya Hisabati ML"},"CHROMEVOX_MATHML_LEAF_GRANULARITY":{"message":"Tawi la Hisabati ML"},"CHROMEVOX_VISUAL_STRATEGY":{"message":"Yanayoonekana"},"CHROMEVOX_CUSTOM_STRATEGY":{"message":"Maalum"},"CHROMEVOX_LINE_GRANULARITY":{"message":"Mstari"},"CHROMEVOX_SENTENCE_GRANULARITY":{"message":"Sentensi"},"CHROMEVOX_WORD_GRANULARITY":{"message":"Neno"},"CHROMEVOX_CHARACTER_GRANULARITY":{"message":"Herufi"},"CHROMEVOX_SEARCH_WIDGET_INTRO":{"message":"Tafuta katika ukurasa."},"CHROMEVOX_SEARCH_WIDGET_INTRO_HELP":{"message":"Ingiza hoja ya utafutaji."},"CHROMEVOX_SEARCH_WIDGET_OUTRO":{"message":"Imeondoka kwenye tafuta katika ukurasa."},"CHROMEVOX_SEARCH_WIDGET_NO_RESULTS":{"message":"Hakuna matokeo zaidi."},"CHROMEVOX_MODIFIER_KEYS":{"message":"Vitufe vya Kurekebisha"},"CHROMEVOX_NAVIGATION":{"message":"Kudurusu ChromeVox"},"CHROMEVOX_INFORMATION":{"message":"Maelezo"},"CHROMEVOX_HELP_COMMANDS":{"message":"Amri za Usaidizi"},"CHROMEVOX_CONTROLLING_SPEECH":{"message":"Kudhibiti Usemi"},"CHROMEVOX_OVERVIEW":{"message":"Muhtasari"},"CHROMEVOX_TABLES":{"message":"Majedwali"},"CHROMEVOX_JUMP_COMMANDS":{"message":"Amri za Kuruka"},"CHROMEVOX_BRAILLE":{"message":"Breli"},"CHROMEVOX_DEVELOPER":{"message":"Wasanidi Programu"},"CHROMEVOX_KEYMAP_CLASSIC":{"message":"Ramani msingi ya zamani"},"CHROMEVOX_KEYMAP_NEXT":{"message":"Ramani msingi inayofuata"},"CHROMEVOX_KEYMAP_FLAT":{"message":"Ramani msingi bapa"},"CHROMEVOX_KEYMAP_EXPERIMENTAL":{"message":"Ramani msingi ya majaribio"},"CHROMEVOX_ENABLE_TTS_LOG":{"message":"Washa uwekaji kumbukumbu ya TTS"},"CHROMEVOX_BEGIN_SELECTION":{"message":"Anza uchaguzi"},"CHROMEVOX_END_SELECTION":{"message":"Maliza uchaguzi"},"CHROMEVOX_SELECTION_IS":{"message":"Uchaguzi ni "},"CHROMEVOX_TOGGLE_SELECTION":{"message":"Anza au maliza uchaguzi."},"CHROMEVOX_COPY":{"message":"nakili."},"CHROMEVOX_CUT":{"message":"kata."},"CHROMEVOX_PASTE":{"message":"bandika."},"CHROMEVOX_SELECTED":{"message":"kimechaguliwa"},"CHROMEVOX_UNSELECTED":{"message":"yameondolewa uteuzi"},"CHROMEVOX_ADDED_TO_SELECTION":{"message":"zimeongezwa kwenye uchaguzi"},"CHROMEVOX_REMOVED_FROM_SELECTION":{"message":"imeondolewa kwenye uchaguzi"},"CHROMEVOX_THEN":{"message":"kisha"},"CHROMEVOX_FOLLOWED_BY":{"message":"inafuatwa na"},"CHROMEVOX_MODIFIER_KEY":{"message":"Kirekebishaji cha ChromeVox"},"CHROMEVOX_KEY_CONFLICT":{"message":"$1$ tayari kimehawilishwa kwa amri.","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_MATH_EXPR":{"message":"Hisabati"},"CHROMEVOX_MATH_EXPR_BRL":{"message":"hisabati"},"CHROMEVOX_NOT_INSIDE_MATH":{"message":"Siyo ndani ya hisabati"},"CHROMEVOX_TIMEWIDGET_AMPM":{"message":"AM PM"},"CHROMEVOX_TIMEWIDGET_HOURS":{"message":"saa"},"CHROMEVOX_TIMEWIDGET_MINUTES":{"message":"dakika"},"CHROMEVOX_TIMEWIDGET_SECONDS":{"message":"sekunde"},"CHROMEVOX_TIMEWIDGET_MILLISECONDS":{"message":"milisekunde"},"CHROMEVOX_TIMEWIDGET_AM":{"message":"AM"},"CHROMEVOX_TIMEWIDGET_PM":{"message":"PM"},"CHROMEVOX_DATEWIDGET_WEEK":{"message":"wiki"},"CHROMEVOX_DATEWIDGET_JANUARY":{"message":"Januari"},"CHROMEVOX_DATEWIDGET_FEBRUARY":{"message":"Februari"},"CHROMEVOX_DATEWIDGET_MARCH":{"message":"Machi"},"CHROMEVOX_DATEWIDGET_APRIL":{"message":"Aprili"},"CHROMEVOX_DATEWIDGET_MAY":{"message":"Mei"},"CHROMEVOX_DATEWIDGET_JUNE":{"message":"Juni"},"CHROMEVOX_DATEWIDGET_JULY":{"message":"Julai"},"CHROMEVOX_DATEWIDGET_AUGUST":{"message":"Agosti"},"CHROMEVOX_DATEWIDGET_SEPTEMBER":{"message":"Septemba"},"CHROMEVOX_DATEWIDGET_OCTOBER":{"message":"Oktoba"},"CHROMEVOX_DATEWIDGET_NOVEMBER":{"message":"Novemba"},"CHROMEVOX_DATEWIDGET_DECEMBER":{"message":"Desemba"},"CHROMEVOX_NO_PUNCTUATION":{"message":"Hakuna vituo  vya maandishi"},"CHROMEVOX_SOME_PUNCTUATION":{"message":"Baadhi ya vituo vya maandishi"},"CHROMEVOX_ALL_PUNCTUATION":{"message":"Vituo vyote vya maandishi"},"CHROMEVOX_SEARCH_HELP_ITEM":{"message":"Bonyeza \"enter\" ili kukubali au \"escape\" ili kughairi, \"down\" kwenda inayofuata na \"up\" kurudi iliyotangulia."},"CHROMEVOX_CLICKABLE":{"message":"kinabofyeka"},"CHROMEVOX_CLICKABLE_BRL":{"message":"clk"},"CHROMEVOX_PREVIOUS_CHARACTER":{"message":"Herufi Iliyotangulia"},"CHROMEVOX_NEXT_CHARACTER":{"message":"Herufi Inayofuata"},"CHROMEVOX_PREVIOUS_WORD":{"message":"Neno Lililotangulia"},"CHROMEVOX_NEXT_WORD":{"message":"Neno Linalofuata"},"CHROMEVOX_PREVIOUS_SENTENCE":{"message":"Sentensi Iliyotangulia"},"CHROMEVOX_NEXT_SENTENCE":{"message":"Sentensi Inayofuata"},"CHROMEVOX_PREVIOUS_LINE":{"message":"Mstari Uliotangulia"},"CHROMEVOX_NEXT_LINE":{"message":"Mstari Unaofuata"},"CHROMEVOX_PREVIOUS_OBJECT":{"message":"Kifaa Kilichotangulia"},"CHROMEVOX_NEXT_OBJECT":{"message":"Kifaa Kinachofuata"},"CHROMEVOX_PREVIOUS_GROUP":{"message":"Kikundi Kilichotangulia"},"CHROMEVOX_NEXT_GROUP":{"message":"Kikundi Kinachofuata"},"CHROMEVOX_ROLE_LANDMARK":{"message":"Kivutio"},"CHROMEVOX_MODIFIER_ENTRY_ERROR":{"message":"Hakuna kirekebishaji kilichobonyezwa; tafadhali bonyeza na ushikilie kirekebishaji kimoja au zaidi; ondoa kidole chako unapomaliza na utasikia vitufe vikiwekwa. Gonga kichupo ili kuondoka."},"CHROMEVOX_MODIFIER_ENTRY_SET":{"message":"$1$ sasa ni kirekebishaji kipya cha ChromeVox.","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_KEYMAP_RESET":{"message":"$1$ imewekwa upya.","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_KEYMAP_SWITCH":{"message":"Imebadilishwa kwenda $1$.","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_JUMP_TO_TOP":{"message":"Ruka hadi mwanzo wa ukurasa"},"CHROMEVOX_JUMP_TO_BOTTOM":{"message":"Ruka hadi mwisho wa ukurasa"},"CHROMEVOX_WRAPPED_TO_TOP":{"message":"Imefungwa hadi juu"},"CHROMEVOX_WRAPPED_TO_BOTTOM":{"message":"Imefungwa hadi mwisho"},"CHROMEVOX_CYCLE_PUNCTUATION_ECHO":{"message":"Mwangwi wa mduara wa vituo  vya maandishi"},"CHROMEVOX_CYCLE_TYPING_ECHO":{"message":"Mwangwi wa mduara wa kuchapa"},"CHROMEVOX_PAUSE_ALL_MEDIA":{"message":"Inasitisha wijeti zote za maudhui zinazocheza kwa sasa"},"CHROMEVOX_OPEN_LONG_DESC":{"message":"Fungua maelezo marefu katika kichupo kipya"},"CHROMEVOX_NO_LONG_DESC":{"message":"Hakuna maelezo marefu"},"CHROMEVOX_IMAGE_WITH_LONG_DESC":{"message":"Picha yenye maelezo marefu"},"CHROMEVOX_SELECTED_OPTIONS_VALUE":{"message":"$1$ hadi $2$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_SELECTED_OPTIONS_VALUE_BRL":{"message":"$1$-$2$","placeholders":{"1":{"content":"$1"},"2":{"content":"$2"}}},"CHROMEVOX_SELECTED_OPTIONS_STATE":{"message":"vipengee $1$ vimechaguliwa","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_SELECTED_OPTIONS_STATE_BRL":{"message":"sld $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_CLEAR_PAGE_SELECTION":{"message":"uchaguzi umefutwa"},"CHROMEVOX_CHARACTER_ECHO":{"message":"mwangwi wa herufi"},"CHROMEVOX_WORD_ECHO":{"message":"mwangwi wa neno"},"CHROMEVOX_CHARACTER_AND_WORD_ECHO":{"message":"herufi na mwangwi wa neno"},"CHROMEVOX_NONE_ECHO":{"message":"hakuna mwangwi wa kuchapa"},"CHROMEVOX_ENTER_CONTENT":{"message":"ingiza maudhui yenye muundo, kama vile majedwali"},"CHROMEVOX_EXIT_CONTENT":{"message":"ondoka kwenye maudhui yenye muundo, kama vile majedwali"},"CHROMEVOX_ENTER_CONTENT_SAY":{"message":"umeingiza $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_STRUCTURAL_LINE":{"message":"mstari wa muundo"},"CHROMEVOX_LAYOUT_LINE":{"message":"mstari"},"CHROMEVOX_TOGGLE_LINE_TYPE":{"message":"Geuza aina ya mstari kati ya muundo au mpangilio"},"CHROMEVOX_TABLE_SHIFTER":{"message":"jedwali"},"CHROMEVOX_NAVIGATION_SHIFTER":{"message":"kudurusu chaguo-msingi"},"CHROMEVOX_MATH_SHIFTER":{"message":"hisabati"},"CHROMEVOX_TOGGLE_SEMANTICS":{"message":"Geuza fasiri ya ulinganisho wa hisabati kati ya ufafanuzi wa muundo na semantiki"},"CHROMEVOX_SEMANTICS_ON":{"message":"Semantiki imewashwa"},"CHROMEVOX_SEMANTICS_OFF":{"message":"Ufasiri wa semantiki umezimwa"},"CHROMEVOX_PHONETIC_MAP":{"message":"{\"a\": \"alpha\", \"b\": \"bravo\", \"c\": \"charlie\", \"d\": \"delta\", \"e\": \"echo\", \"f\": \"foxtrot\", \"g\": \"golf\", \"h\": \"hotel\", \"i\": \"india\", \"j\": \"juliet\",\"k\": \"kilo\", \"l\": \"lima\", \"m\": \"mike\", \"n\": \"november\", \"o\": \"oscar\",\"p\": \"papa\", \"q\": \"quebec\", \"r\": \"romeo\", \"s\": \"sierra\", \"t\": \"tango\", \"u\": \"uniform\", \"v\": \"victor\", \"w\": \"whiskey\",\"x\": \"xray\", \"y\": \"yankee\", \"z\": \"zulu\"}"},"CHROMEVOX_REVIEW_ALERTS":{"message":"Bonyeza Alt+Shift+A ili kukagua arifa"},"CHROMEVOX_NO_NEXT_ARTICLE":{"message":"Hakuna makala yanayofuata."},"CHROMEVOX_NO_PREVIOUS_ARTICLE":{"message":"Hakuna makala yaliyotangulia."},"CHROMEVOX_CHROMEVOX_INTRO":{"message":"Maoni ya kusemwa ya ChromeVox yako tayari"},"CHROMEVOX_INTRO_BRL":{"message":"ChromeVox iko tayari"},"CHROMEVOX_EARCONS_ON":{"message":"Earcons zimewashwa"},"CHROMEVOX_EARCONS_OFF":{"message":"Earcons zimezimwa"},"CHROMEVOX_TOGGLE_EARCONS":{"message":"Washa au zima maoni ya sauti (earcons)."},"CHROMEVOX_SPEAK_TIME_AND_DATE":{"message":"Tamka saa ya sasa na tarehe."},"CHROMEVOX_MARK_AS_SEARCH_RESULT_BRL":{"message":"S: $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_TEXT_DELETED":{"message":"Imeondolewa"},"CHROMEVOX_PERFORM_DEFAULT_ACTION":{"message":"Tekeleza kitendo chaguo-msingi"},"CHROMEVOX_EXCLAMATION":{"message":"{COUNT,plural, =1{alama hisi}other{alama hisi #}}"},"CHROMEVOX_SPACE":{"message":"{COUNT,plural, =1{nafasi}other{nafasi #}}"},"CHROMEVOX_BACKTICK":{"message":"{COUNT,plural, =1{kingo`ngo}other{ving`ong`o #}}"},"CHROMEVOX_TILDE":{"message":"{COUNT,plural, =1{KISTARI}other{vistari #}}"},"CHROMEVOX_AT":{"message":"{COUNT,plural, =1{katika}other{alama # za katika}}"},"CHROMEVOX_POUND":{"message":"{COUNT,plural, =1{pauni}other{alama # za pauni}}"},"CHROMEVOX_DOLLAR":{"message":"{COUNT,plural, =1{dola}other{alama # za dola}}"},"CHROMEVOX_PERCENT":{"message":"{COUNT,plural, =1{asilimia}other{alama # za asilimia}}"},"CHROMEVOX_CARET":{"message":"{COUNT,plural, =1{kareti}other{alama # za kareti}}"},"CHROMEVOX_AMPERSAND":{"message":"{COUNT,plural, =1{alama ya na}other{alama # za na}}"},"CHROMEVOX_ASTERISK":{"message":"{COUNT,plural, =1{nyota}other{nyota #}}"},"CHROMEVOX_OPEN_PAREN":{"message":"{COUNT,plural, =1{alama ya kufungua mabano}other{alama # za kufungua mabano}}"},"CHROMEVOX_CLOSE_PAREN":{"message":"{COUNT,plural, =1{alama ya kufunga mabano}other{alama # za kufunga mabano}}"},"CHROMEVOX_DASH":{"message":"{COUNT,plural, =1{dashi}other{dashi #}}"},"CHROMEVOX_UNDERSCORE":{"message":"{COUNT,plural, =1{kistari cha chini}other{vistari # vya chini}}"},"CHROMEVOX_EQUALS":{"message":"{COUNT,plural, =1{sawa}other{alama # za sawa}}"},"CHROMEVOX_PLUS":{"message":"{COUNT,plural, =1{alama ya kuongeza}other{alama # za kuongeza}}"},"CHROMEVOX_LEFT_BRACKET":{"message":"{COUNT,plural, =1{bano la kushoto}other{mabano # ya kushoto}}"},"CHROMEVOX_RIGHT_BRACKET":{"message":"{COUNT,plural, =1{bano la kulia}other{mabano # ya kulia}}"},"CHROMEVOX_LEFT_BRACE":{"message":"{COUNT,plural, =1{parandesi ya kushoto}other{parandesi # za kushoto}}"},"CHROMEVOX_RIGHT_BRACE":{"message":"{COUNT,plural, =1{parandesi ya kulia}other{parandesi # za kulia}}"},"CHROMEVOX_PIPE":{"message":"{COUNT,plural, =1{kistari}other{vistari wima #}}"},"CHROMEVOX_SEMICOLON":{"message":"{COUNT,plural, =1{nuktamkato}other{nuktamikato #}}"},"CHROMEVOX_COLON":{"message":"{COUNT,plural, =1{nuktambili}other{nuktambili #}}"},"CHROMEVOX_COMMA":{"message":"{COUNT,plural, =1{koma}other{koma #}}"},"CHROMEVOX_DOT":{"message":"{COUNT,plural, =1{kitone}=3{vitone}other{vitone #}}"},"CHROMEVOX_LESS_THAN":{"message":"{COUNT,plural, =1{ndogo kuliko}other{alama # za ndogo kuliko}}"},"CHROMEVOX_GREATER_THAN":{"message":"{COUNT,plural, =1{kubwa kuliko}other{alama # za kubwa kuliko}}"},"CHROMEVOX_SLASH":{"message":"{COUNT,plural, =1{mkwaju}other{mikwaju #}}"},"CHROMEVOX_QUESTION_MARK":{"message":"{COUNT,plural, =1{alama ya kuuliza}other{alama # za kuuliza}}"},"CHROMEVOX_QUOTE":{"message":"{COUNT,plural, =1{nukuu}other{manukuu #}}"},"CHROMEVOX_APOSTROPHE":{"message":"{COUNT,plural, =1{apostrofi}other{apostrofi #}}"},"CHROMEVOX_TAB":{"message":"{COUNT,plural, =1{kichupo}other{vichupo #}}"},"CHROMEVOX_BACKSLASH":{"message":"{COUNT,plural, =1{mkwaju wa nyuma}other{mikwaju # ya nyuma}}"},"CHROMEVOX_BRAILLE_ROUTING":{"message":"Boyfa kipengee kilicho chini ya ufunguo wa ruta"},"CHROMEVOX_BRAILLE_PAN_LEFT":{"message":"Sogeza kurudi nyuma"},"CHROMEVOX_BRAILLE_PAN_RIGHT":{"message":"Elekeza mbele"},"CHROMEVOX_BRAILLE_LINE_UP":{"message":"Mstari uliotangulia wa Breli"},"CHROMEVOX_BRAILLE_LINE_DOWN":{"message":"Mstari unaofuata wa Breli"},"CHROMEVOX_BRAILLE_TOP":{"message":"Sogeza onyesho la breli hadi mwanzo wa ukurasa"},"CHROMEVOX_BRAILLE_BOTTOM":{"message":"Sogeza onyesho la breli hadi mwisho wa ukurasa"},"CHROMEVOX_ACCESS_KEY":{"message":"ina kitufe cha ufikiaji, $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_ACCESS_KEY_BRL":{"message":"kitufe cha ufikiaji: $1$","placeholders":{"1":{"content":"$1"}}},"CHROMEVOX_LOCALE_DICT":{"message":"{\"ar\": \"Kiarabu\",\n        \"bg\": \"Kibulgaria\",\n        \"ca\": \"Kikatalani\",\n        \"cs\": \"Kicheki\",\n        \"da\": \"Kideni\",\n        \"de\": \"Kijerumani\",\n        \"de_CH\": \"Kijerumani (Uswizi)\",\n        \"de_DE\": \"Kijerumani (Ujerumani)\",\n        \"el\": \"Kigiriki\",\n        \"en\": \"Kiingereza\",\n        \"en_CA\": \"Kiingereza (Kanada)\",\n        \"en_GB\": \"Kiingereza (Uingereza)\",\n        \"en_US\": \"Kiingereza (Marekani)\",\n        \"es\": \"Kihispania\",\n        \"et\": \"Kiestonia\",\n        \"fr\": \"Kifaransa\",\n        \"fr_CA\": \"Kifaransa (Kanada)\",\n        \"fr_FR\": \"Kifaransa (Ufaransa)\",\n        \"fi\": \"Kifini\",\n        \"he\": \"Kiyahudi\",\n        \"hi\": \"Kihindi\",\n        \"hr\": \"Kikoreshia\",\n        \"hu\": \"Kihangari\",\n        \"is\": \"Kiasilandi\",\n        \"it\": \"Kitaliano\",\n        \"ko\": \"Kikorea\",\n        \"lt\": \"Kiluthania\",\n        \"lv\": \"Kilatvia\",\n        \"nb\": \"Kinorwei cha Bokmål\",\n        \"nl\": \"Kidachi\",\n        \"pl\": \"Kipoli\",\n        \"pt\": \"Kireno\",\n        \"ro\": \"Kiroma\",\n        \"ru\": \"Kirusi\",\n        \"sk\": \"Kislovakia\",\n        \"sl\": \"Kislovenia\",\n        \"sr\": \"Kiserbia\",\n        \"sv\": \"Kiswidi\",\n        \"tr\": \"Kituruki\",\n        \"vi\": \"Kivietnamu\",\n        \"zh\": \"Kichina\",\n        \"zh_TW\": \"Kichina (Kihani cha jadi)\"}"},"CHROMEVOX_END_OF_TEXT_VERBOSE":{"message":"Mwisho wa maandishi"},"CHROMEVOX_END_OF_TEXT_BRIEF":{"message":"Mwisho"},"CHROMEVOX_NEW_LINE":{"message":"mstari mpya"},"CHROMEVOX_RETURN":{"message":"rudi"},"CHROMEVOX_PASS_THROUGH_KEY":{"message":"Inapuuza kubonyeza kwa kitufe kunakofuata"},"CHROMEVOX_PASS_THROUGH_KEY_DESCRIPTION":{"message":"Nenosiri la kuingia"},"CHROMEVOX_SHOW_CONTEXT_MENU":{"message":"Onyesha menyu"},"CHROMEVOX_BRAILLE_CAPTIONS":{"message":"Geuza manukuu ya breli"},"CHROMEVOX_BRAILLE_CAPTIONS_ENABLED":{"message":"Manukuu ya breli yamewashwa."},"CHROMEVOX_BRAILLE_CAPTIONS_DISABLED":{"message":"Manukuu ya Breli yamezimwa."},"CHROMEVOX_COPY_PROTECTED_PDF":{"message":"Imeshindwa kufikia maandishi yanayoweza kufikiwa kutoka kwenye nakala ya PDF inayolindwa."},"CHROMEVOX_IGNORING_CASE":{"message":"Inapuuza herufi kubwa au ndogo."},"CHROMEVOX_CASE_SENSITIVE":{"message":"Inajali herufi kubwa au ndogo."},"CHROMEVOX_BACK_KEY":{"message":"nyuma"},"CHROMEVOX_FORWARD_KEY":{"message":"sambaza"},"CHROMEVOX_REFRESH_KEY":{"message":"onyesha upya"},"CHROMEVOX_TOGGLE_FULL_SCREEN_KEY":{"message":"geuza skrini nzima"},"CHROMEVOX_WINDOW_OVERVIEW_KEY":{"message":"muhtasari wa dirisha"},"CHROMEVOX_BRIGHTNESS_DOWN_KEY":{"message":"Punguza ung`aavu"},"CHROMEVOX_BRIGHTNESS_UP_KEY":{"message":"Ongeza ung'aavu"},"CHROMEVOX_VOLUME_MUTE_KEY":{"message":"zima sauti"},"CHROMEVOX_VOLUME_DOWN_KEY":{"message":"punguza sauti"},"CHROMEVOX_VOLUME_UP_KEY":{"message":"ongeza sauti"},"CHROMEVOX_PANEL_TITLE":{"message":"Kisanduku cha ChromeVox"},"CHROMEVOX_MENUS_TITLE":{"message":"Menyu za ChromeVox"},"CHROMEVOX_OPTIONS":{"message":"Chaguo za ChromeVox"},"CHROMEVOX_DISABLE_CHROMEVOX":{"message":"Zima ChromeVox"},"CHROMEVOX_ACTIVE_TAB":{"message":"(inatumika)"},"CHROMEVOX_PANEL_MENU_JUMP":{"message":"Ruka"},"CHROMEVOX_PANEL_MENU_SPEECH":{"message":"Usemi"},"CHROMEVOX_PANEL_MENU_TABS":{"message":"Vichupo"},"CHROMEVOX_PANEL_MENU_CHROMEVOX":{"message":"ChromeVox"},"CHROMEVOX_PANEL_MENU_ITEM_NONE":{"message":"Hakuna vipengee."},"CHROMEVOX_UPDATE_TITLE":{"message":"ChromeVox Imesasishwa"}}
##############################################
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/mock_drm_device.cc-410-  buffers_[handle]->peekPixels(&pixmap);
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/mock_drm_device.cc:411:  *pixels = const_cast<void*>(pixmap.addr());
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/mock_drm_device.cc-412-  return true;
##############################################
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc-291-      reinterpret_cast<PFN_vkCreateDmaBufImageINTEL>(
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc:292:          vkGetDeviceProcAddr(vk_device, "vkCreateDmaBufImageINTEL"));
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc-293-  if (!create_dma_buf_image_intel) {
##############################################
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc-44-      reinterpret_cast<PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR>(
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc:45:          vkGetInstanceProcAddr(
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc-46-              vulkan_instance_.vk_instance(),
##############################################
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc-51-  vkGetFenceFdKHR_ = reinterpret_cast<PFN_vkGetFenceFdKHR>(
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc:52:      vkGetInstanceProcAddr(vulkan_instance_.vk_instance(), "vkGetFenceFdKHR"));
chromium-84.0.4147.105/ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc-53-  if (!vkGetFenceFdKHR_)
##############################################
chromium-84.0.4147.105/ui/gfx/codec/png_codec.cc-453-        src.readPixels(opaque_info.makeAlphaType(kUnpremul_SkAlphaType),
chromium-84.0.4147.105/ui/gfx/codec/png_codec.cc:454:                       opaque_pixmap.writable_addr(), opaque_pixmap.rowBytes());
chromium-84.0.4147.105/ui/gfx/codec/png_codec.cc-455-    DCHECK(success);
##############################################
chromium-84.0.4147.105/ui/gfx/codec/png_codec.cc-517-                  .makeAlphaType(kOpaque_SkAlphaType);
chromium-84.0.4147.105/ui/gfx/codec/png_codec.cc:518:  SkPixmap src(info, input.getAddr(0, 0), input.rowBytes());
chromium-84.0.4147.105/ui/gfx/codec/png_codec.cc-519-  return EncodeSkPixmap(src, std::vector<PNGCodec::Comment>(), output,
##############################################
chromium-84.0.4147.105/ui/base/clipboard/clipboard_win.cc-764-  skia_bitmap.installPixels(
chromium-84.0.4147.105/ui/base/clipboard/clipboard_win.cc:765:      device_pixels.info(), device_pixels.writable_addr(),
chromium-84.0.4147.105/ui/base/clipboard/clipboard_win.cc-766-      device_pixels.rowBytes(),
##############################################
chromium-84.0.4147.105/ui/base/template_expressions_unittest.cc-146-      {"Polymer({\n"
chromium-84.0.4147.105/ui/base/template_expressions_unittest.cc:147:       "  _template: html`<div>$i18n{test}</div>`,\n"
chromium-84.0.4147.105/ui/base/template_expressions_unittest.cc-148-       "  is: 'foo-element',\n"
##############################################
chromium-84.0.4147.105/ui/base/template_expressions_unittest.cc-150-       "Polymer({\n"
chromium-84.0.4147.105/ui/base/template_expressions_unittest.cc:151:       "  _template: html`<div>$i18n{test}</div>`,\n"
chromium-84.0.4147.105/ui/base/template_expressions_unittest.cc-152-       "  is: 'foo-element',\n"
##############################################
chromium-84.0.4147.105/ui/base/x/x11_software_bitmap_presenter.cc-236-                      rect.height(), attributes_.depth, gc_,
chromium-84.0.4147.105/ui/base/x/x11_software_bitmap_presenter.cc:237:                      skia_pixmap.addr())) {
chromium-84.0.4147.105/ui/base/x/x11_software_bitmap_presenter.cc-238-    FlushAfterPutImage();
##############################################
chromium-84.0.4147.105/ui/base/x/x11_software_bitmap_presenter.cc-258-
chromium-84.0.4147.105/ui/base/x/x11_software_bitmap_presenter.cc:259:  image.data = reinterpret_cast<char*>(const_cast<void*>(skia_pixmap.addr()));
chromium-84.0.4147.105/ui/base/x/x11_software_bitmap_presenter.cc-260-  XPutImage(display_, widget_, gc_, &image, rect.x(), rect.y(), rect.x(),
##############################################
chromium-84.0.4147.105/ui/gtk/gtk_ui.cc-125-    cairo_surface_t* surface = cairo_image_surface_create_for_data(
chromium-84.0.4147.105/ui/gtk/gtk_ui.cc:126:        static_cast<unsigned char*>(border.getAddr(0, 0)), CAIRO_FORMAT_ARGB32,
chromium-84.0.4147.105/ui/gtk/gtk_ui.cc-127-        width, height, width * 4);
##############################################
chromium-84.0.4147.105/ui/gtk/gtk_ui.cc-325-
chromium-84.0.4147.105/ui/gtk/gtk_ui.cc:326:  uint32_t* skia_data = static_cast<uint32_t*>(ret.getAddr(0, 0));
chromium-84.0.4147.105/ui/gtk/gtk_ui.cc-327-
##############################################
chromium-84.0.4147.105/ui/gtk/gtk_util.cc-201-    : surface_(cairo_image_surface_create_for_data(
chromium-84.0.4147.105/ui/gtk/gtk_util.cc:202:          static_cast<unsigned char*>(bitmap.getAddr(0, 0)),
chromium-84.0.4147.105/ui/gtk/gtk_util.cc-203-          CAIRO_FORMAT_ARGB32,
##############################################
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-177-      const radio = enabledRadios[selectedIndex];
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js:178:      const name = `${radio.name}`;
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-179-      if (this.selected !== name) {
##############################################
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-191-      const tags = this.selectableElements.split(', ').join('|');
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js:192:      return new RegExp(`^(${tags})$`, 'i');
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-193-    },
##############################################
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-238-
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js:239:      const name = `${button.name}`;
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-240-      if (this.selected !== name) {
##############################################
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-261-        radio.checked = this.selected !== undefined &&
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js:262:            `${radio.name}` === `${this.selected}`;
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-263-        const disabled = this.disabled || !isEnabled(radio);
##############################################
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-270-        }
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js:271:        radio.setAttribute('aria-disabled', `${disabled}`);
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-272-      });
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js:273:      this.setAttribute('aria-disabled', `${this.disabled}`);
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_radio_group/cr_radio_group.js-274-      if (noneMadeFocusable && !this.disabled) {
##############################################
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_tabs/cr_tabs.js-94-    this.$.selectionBar.classList.replace('expand', 'contract');
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_tabs/cr_tabs.js:95:    const tab = this.$$(`.tab:nth-of-type(${this.selected + 1})`);
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_tabs/cr_tabs.js-96-    if (!tab) {
##############################################
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_tabs/cr_tabs.js-134-    this.$.selectionBar.style.transform =
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_tabs/cr_tabs.js:135:        `translateX(${leftPercent}%) scaleX(${widthRatio})`;
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_tabs/cr_tabs.js-136-  },
##############################################
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_slider/cr_slider.js-400-    updateUi_() {
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_slider/cr_slider.js:401:      const percent = `${this.getRatio() * 100}%`;
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_slider/cr_slider.js-402-      this.$.bar.style.width = percent;
##############################################
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_container_shadow_behavior.js-72-      const shadow = document.createElement('div');
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_container_shadow_behavior.js:73:      shadow.id = `cr-container-shadow-${side}`;
chromium-84.0.4147.105/ui/webui/resources/cr_elements/cr_container_shadow_behavior.js-74-      shadow.classList.add('cr-container-shadow');
##############################################
chromium-84.0.4147.105/ui/webui/resources/js/cr/ui/focus_row_behavior.js-145-    computeId_(index) {
chromium-84.0.4147.105/ui/webui/resources/js/cr/ui/focus_row_behavior.js:146:      return index !== undefined ? `frb${index}` : undefined;
chromium-84.0.4147.105/ui/webui/resources/js/cr/ui/focus_row_behavior.js-147-    },
##############################################
chromium-84.0.4147.105/ui/webui/resources/js/search_highlight_utils.js-35-      const textNode =
chromium-84.0.4147.105/ui/webui/resources/js/search_highlight_utils.js:36:          wrapper.querySelector(`.${ORIGINAL_CONTENT_CSS_CLASS}`).firstChild;
chromium-84.0.4147.105/ui/webui/resources/js/search_highlight_utils.js-37-      wrapper.parentElement.replaceChild(textNode, wrapper);
##############################################
chromium-84.0.4147.105/ui/webui/resources/js/search_highlight_utils.js-48-  /* #export */ function findAndRemoveHighlights(node) {
chromium-84.0.4147.105/ui/webui/resources/js/search_highlight_utils.js:49:    const wrappers = Array.from(node.querySelectorAll(`.${WRAPPER_CSS_CLASS}`));
chromium-84.0.4147.105/ui/webui/resources/js/search_highlight_utils.js-50-    assert(wrappers.length === 1);
##############################################
chromium-84.0.4147.105/ui/webui/resources/js/search_highlight_utils.js-124-
chromium-84.0.4147.105/ui/webui/resources/js/search_highlight_utils.js:125:    let searchBubble = anchor.querySelector(`.${SEARCH_BUBBLE_CSS_CLASS}`);
chromium-84.0.4147.105/ui/webui/resources/js/search_highlight_utils.js-126-    // If the node has already been highlighted, there is no need to do
##############################################
chromium-84.0.4147.105/ui/webui/resources/js/test_loader.js-22-script.type = 'module';
chromium-84.0.4147.105/ui/webui/resources/js/test_loader.js:23:script.src = `chrome://test/${module}`;
chromium-84.0.4147.105/ui/webui/resources/js/test_loader.js-24-document.body.appendChild(script);
##############################################
chromium-84.0.4147.105/ui/webui/resources/js/icon.js-44-    const s2 = s.replace(/(\(|\)|\,|\s|\'|\"|\\)/g, '\\$1');
chromium-84.0.4147.105/ui/webui/resources/js/icon.js:45:    return `url("${s2}")`;
chromium-84.0.4147.105/ui/webui/resources/js/icon.js-46-  }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-245-      const msg = 'waitFor: Waiting for ' +
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js:246:          `${funcName} to return ${expectedResult}, ` +
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js:247:          `but got ${JSON.stringify(result)}.`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-248-      return pending(caller, msg);
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-286-    return repeatUntil(async () => {
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js:287:      const expect = `Waiting for [${query}] to match ${count} elements`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-288-      const result =
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-571-    const elements = await this.callRemoteTestUtil(
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js:572:        'queryAllElements', appId, [`${query}[expanded]`]);
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-573-    // If it's already expanded just set the focus on directory tree.
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-614-    await this.expandTreeItemInDirectoryTree(
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js:615:        appId, `[full-path-for-testing="${path}"]`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-616-    await this.expandDirectoryTreeForInternal_(
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-631-    return this.expandTreeItemInDirectoryTree(
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js:632:        appId, `[volume-type-for-testing="${volumeType}"]`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-633-  }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-646-    await this.callRemoteTestUtil(
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js:647:        'fakeMouseClick', appId, [`[full-path-for-testing="${path}"]`]);
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-648-
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-663-    return this.waitUntilCurrentDirectoryIsChanged(
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js:664:        appId, `/${rootLabel}${path}`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/remote_call.js-665-  }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-51-    const contextMenu = '#directory-tree-context-menu:not([hidden])';
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:52:    const pathQuery = `#directory-tree [full-path-for-testing="${path}"]`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-53-
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-65-    await remoteCall.waitForElement(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:66:        appId, `${contextMenu} [command="#${id}"]:not([disabled])`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-67-
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-69-    await remoteCall.callRemoteTestUtil(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:70:        'fakeMouseClick', appId, [`${contextMenu} [command="#${id}"]`]);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-71-  }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-256-        }
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:257:        msg += ` index: ${i}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-258-        msg +=
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:259:            `\n\t expected: ${expectedCommand} ${stateString(expectedState)}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:260:        msg += `\n\t      got: ${actualCommand} ${stateString(actualState)}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-261-      }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-400-    await remoteCall.waitForElement(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:401:        appId, `[full-path-for-testing="${destinationPath}"] .expand-icon`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-402-    await remoteCall.callRemoteTestUtil(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-403-        'fakeMouseClick', appId,
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:404:        [`[full-path-for-testing="${destinationPath}"] .expand-icon`]);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-405-
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-407-    await remoteCall.waitForElement(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:408:        appId, `[full-path-for-testing="${destinationPath}/photos"]`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-409-  };
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-426-        appId,
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:427:        `[full-path-for-testing="${destinationPath}"][may-have-children]`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-428-    await remoteCall.callRemoteTestUtil(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-429-        'fakeMouseClick', appId,
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:430:        [`[full-path-for-testing="${destinationPath}"] .expand-icon`]);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-431-
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-433-    await remoteCall.waitForElement(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:434:        appId, `[full-path-for-testing="${destinationPath}/photos"]`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-435-  };
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-961-    await checkContextMenu(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:962:        appId, `/${entryName}`, menus, true /* rootMenu */,
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js:963:        `/My Drive/${entryName}`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree_context_menu.js-964-  };
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/quick_view.js-203-     */
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/quick_view.js:204:    quickViewQuery.push(`files-metadata-entry[key="${name}"]`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/quick_view.js-205-
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/quick_view.js-625-    function scrollQuickViewTextBy(y) {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/quick_view.js:626:      const doScrollBy = `window.scrollBy(0,${y})`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/quick_view.js-627-      return remoteCall.callRemoteTestUtil(
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/quick_view.js-831-    function scrollQuickViewHtmlBy(y) {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/quick_view.js:832:      const doScrollBy = `window.scrollBy(0,${y})`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/quick_view.js-833-      return remoteCall.callRemoteTestUtil(
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/toolbar.js-216-          `Waiting for the menu and button to be aligned: ` +
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/toolbar.js:217:              `${openButton.renderedLeft} != ${menu.renderedLeft}`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/toolbar.js-218-    }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/transfer.js-509-  const src =
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/transfer.js:510:      `#file-list li[file-name="${ENTRIES.hello.nameText}"] .entry-name`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/transfer.js-511-  const dst = '#directory-tree [entry-label="photos"]';
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/transfer.js-553-  const src =
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/transfer.js:554:      `#file-list li[file-name="${ENTRIES.hello.nameText}"] .entry-name`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/transfer.js-555-  const dst1 = '#directory-tree [entry-label="Drive Label"]';
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/transfer.js-601-  chrome.test.assertEq(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/transfer.js:602:      `Whoops, ${entry.nameText} no longer exists.`,
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/transfer.js-603-      element.attributes['primary-text']);
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js-22-    await remoteCall.navigateWithDirectoryTree(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js:23:        appId, teamDrive === '' ? '/team_drives' : `/team_drives/${teamDrive}`,
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js-24-        'Shared drives', 'drive');
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js-83-    await remoteCall.navigateWithDirectoryTree(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js:84:        appId, teamDrive === '' ? '/team_drives' : `/team_drives/${teamDrive}`,
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js-85-        'Shared drives', 'drive');
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js-194-  await remoteCall.navigateWithDirectoryTree(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js:195:      appId, `/team_drives/${teamDrive}`, 'Shared drives', 'drive');
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js-196-
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-96-  if (expectedEnabledState) {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js:97:    query += ` [command="#${commandId}"]:not([hidden]):not([disabled])`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-98-  } else {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js:99:    query += ` [command="#${commandId}"][disabled]:not([hidden])`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-100-  }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-502-  if (expectedEnabledState) {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js:503:    query += ` [command="#${commandId}"]:not([hidden]):not([disabled])`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-504-  } else {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js:505:    query += ` [command="#${commandId}"][disabled]:not([hidden])`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-506-  }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-609-    const query =
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js:610:        `#file-context-menu:not([hidden]) [command="#${commandId}"][disabled]`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-611-    await remoteCall.waitForElement(appId, query);
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-715-  if (expectedEnabledState) {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js:716:    query += ` [command="#${commandId}"]:not([hidden]):not([disabled])`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-717-  } else {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js:718:    query += ` [command="#${commandId}"][disabled]:not([hidden])`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/context_menu.js-719-  }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/file_display.js-741-      removableDirectory === 'partition-2') {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/file_display.js:742:    const partitionQuery = `#file-list [file-name="${removableDirectory}"]`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/file_display.js-743-    const partitionFiles = TestEntryInfo.getExpectedRows(BASIC_FAKE_ENTRY_SET);
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/file_display.js-746-    await remoteCall.waitUntilCurrentDirectoryIsChanged(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/file_display.js:747:        appId, `/Drive Label/${removableDirectory}`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/file_display.js-748-    await remoteCall.waitForFiles(
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/drive_specific.js-288-
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/drive_specific.js:289:  return `${year}-${month}-${day}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/drive_specific.js-290-}
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/drive_specific.js-327-  await remoteCall.navigateWithDirectoryTree(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/drive_specific.js:328:      appId, `/root/Chrome OS Cloud backup/${formattedDate}`, 'My Drive',
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/drive_specific.js-329-      'drive');
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-215-      nestedFolderTestEntries.push(createFolderTestEntry(path));
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js:216:      path += `/nested-folder${i + 1}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-217-    }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-279-      nestedFolderTestEntries.push(createFolderTestEntry(path));
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js:280:      path += `/nested-folder${i + 1}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-281-    }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-336-    for (let i = 0; i < number; i++) {
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js:337:      const subFolderName = `${baseName}-${i}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js:338:      const targetPath = `${namePrefix}-${i}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-339-      result[i] = new TestEntryInfo({
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-366-          numberOfSubSubFolders,
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js:367:          `large-folder-0/sub-folder-${i}/sub-sub-folder`));
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-368-    }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-396-    const testTime = Date.now() - start;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js:397:    console.log(`[measurement] Test time: ${testTime}ms`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/directory_tree.js-398-  };
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js-529-  await remoteCall.waitForElement(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js:530:      appId, `.tree-item[entry-label="${directoryName}"]`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js-531-}
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js-564-    // Wait for parent element to be displayed.
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js:565:    query += ` [entry-label="${parentLabel}"]`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js-566-    await remoteCall.waitForElement(appId, query);
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js-606-  // Navigate to the final entry.
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js:607:  query += ` [entry-label="${leaf}"]`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js-608-  await remoteCall.waitAndClickElement(appId, query);
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js-610-  // Wait directory to finish scanning its content.
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js:611:  await remoteCall.waitForElement(appId, `[scan-completed="${leaf}"]`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/background.js-612-
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/metrics.js-13-    const histogramName = 'Foo';
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/metrics.js:14:    const fullHistogramName = `FileBrowser.${histogramName}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/metrics.js-15-    const validValues = ['a', 'b', 'c'];
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/file_dialog.js-373-  chrome.test.assertTrue(
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/file_dialog.js:374:      url.pathname.endsWith(`/root/${TEST_DRIVE_FILE}`), url.pathname);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/file_dialog.js-375-};
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/format_dialog.js-30-  // Right click on the USB's directory tree entry.
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/format_dialog.js:31:  const treeQuery = `#directory-tree [entry-label="${usbLabel}"]`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/format_dialog.js-32-  await remoteCall.waitForElement(appId, treeQuery);
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/breadcrumbs.js-125-      nestedFolderTestEntries.push(createTestFolder(path));
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/breadcrumbs.js:126:      path += `/nested-folder${i + 1}`;
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/breadcrumbs.js-127-    }
##############################################
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/folder_shortcuts.js-133-          caller,
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/folder_shortcuts.js:134:          `Waiting "remove shortcut" menu item to be available on ${appId}.`);
chromium-84.0.4147.105/ui/file_manager/integration_tests/file_manager/folder_shortcuts.js-135-    });
##############################################
chromium-84.0.4147.105/ui/file_manager/base/js/filtered_volume_manager.js-381-    if (!volumeInfo) {
chromium-84.0.4147.105/ui/file_manager/base/js/filtered_volume_manager.js:382:      throw new Error(`Volume not allowed: ${volumeId}`);
chromium-84.0.4147.105/ui/file_manager/base/js/filtered_volume_manager.js-383-    }
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/tests.js-9-program.usage('test-page [options]')
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/tests.js:10:  .description('piex wasm raw image preview test runner')
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/tests.js-11-  .option('-d, --debug', 'enable debug mode');
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/Makefile-19-INCS = -I $(PIEX)
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/Makefile:20:WASM = -s WASM=1 -fno-exceptions -Wall -fsanitize=cfi -flto -fvisibility=hidden
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/Makefile-21-WOPT = -Os --llvm-opts 3 \
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/Makefile-44-	$(shell cp piex.out.js piex.js.wasm)
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/Makefile:45:	$(shell cp piex*wasm extension)
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/Makefile-46-
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/Makefile-48-	$(shell rm -f tests.{result*,log} package-lock* *.bc piex.out.js)
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/Makefile:49:	$(shell rm -f piex*wasm extension/piex*wasm)
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/piex.js.wasm:1:var Module=typeof Module!=="undefined"?Module:{};(function(){var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=function(title){document.title=title}}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var asm2wasmImports={"f64-rem":function(x,y){return x%y},"debugger":function(){debugger}};var functionPointers=new Array(0);if(typeof WebAssembly!=="object"){err("no native wasm support detected")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=u8Array[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|u8Array[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=17328,DYNAMICTOP_PTR=8880;var TOTAL_STACK=8192;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)err("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{if(typeof WebAssembly==="object"&&typeof WebAssembly.Memory==="function"){wasmMemory=new WebAssembly.Memory({"initial":TOTAL_MEMORY/WASM_PAGE_SIZE});buffer=wasmMemory.buffer}else{buffer=new ArrayBuffer(TOTAL_MEMORY)}Module["buffer"]=buffer}updateGlobalBufferViews();HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="piex.out.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module["wasmBinary"]){return new Uint8Array(Module["wasmBinary"])}if(Module["readBinary"]){return Module["readBinary"](wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module["wasmBinary"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={"env":env,"global":{"NaN":NaN,Infinity:Infinity},"global.Math":Math,"asm2wasm":asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}if(!Module["wasmBinary"]&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){WebAssembly.instantiateStreaming(fetch(wasmBinaryFile,{credentials:"same-origin"}),info).then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})}else{instantiateArrayBuffer(receiveInstantiatedSource)}return{}}Module["asm"]=function(global,env,providedBuffer){env["memory"]=wasmMemory;env["table"]=wasmTable=new WebAssembly.Table({"initial":186,"maximum":186,"element":"anyfunc"});env["__memory_base"]=1024;env["__table_base"]=0;var exports=createWasm(env);return exports};__ATINIT__.push({func:function(){globalCtors()}});function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return function(){"use strict";return body.apply(this,arguments)}}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function registerType(rawType,registeredInstance,options){options=options||{};if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb()})}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module["count_emval_handles"]=count_emval_handles;Module["get_first_emval"]=get_first_emval}function __emval_register(value){switch(value){case undefined:{return 1}case null:{return 2}case true:{return 3}case false:{return 4}default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!=="void";var argsWired=new Array(argCount-2);return function(){if(arguments.length!==argCount-2){throwBindingError("function "+humanName+" called with "+arguments.length+" arguments, expected "+(argCount-2)+" args!")}var destructors=needsDestructorStack?[]:null;var thisWired;if(isClassMethodFunc){thisWired=argTypes[1].toWireType(destructors,this)}for(var i=0;i<argCount-2;++i){argsWired[i]=argTypes[i+2].toWireType(destructors,arguments[i])}var invokerFuncArgs=isClassMethodFunc?[cppTargetFunc,thisWired]:[cppTargetFunc];var rv=cppInvokerFunc.apply(null,invokerFuncArgs.concat(argsWired));if(needsDestructorStack){runDestructors(destructors)}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;i++){var param=i===1?thisWired:argsWired[i-2];if(argTypes[i].destructorFunction!==null){argTypes[i].destructorFunction(param)}}}if(returns){return argTypes[0].fromWireType(rv)}}}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){return function(){var args=new Array(arguments.length+1);args[0]=rawFunction;for(var i=0;i<arguments.length;i++){args[i+1]=arguments[i]}return dynCall.apply(null,args)}}var fp;if(Module["FUNCTION_TABLE_"+signature]!==undefined){fp=Module["FUNCTION_TABLE_"+signature][rawFunction]}else if(typeof FUNCTION_TABLE!=="undefined"){fp=FUNCTION_TABLE[rawFunction]}else{var dc=Module["dynCall_"+signature];if(dc===undefined){dc=Module["dynCall_"+signature.replace(/f/g,"d")];if(dc===undefined){throwBindingError("No dynCall invoker for signature: "+signature)}}fp=makeDynCaller(dc)}if(typeof fp!=="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<<bitshift>>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}str=a.join("")}_free(value);return str},"toWireType":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var getLength;var valueIsOfTypeString=typeof value==="string";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError("Cannot pass non-string to std::string")}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function(){return lengthBytesUTF8(value)}}else{getLength=function(){return value.length}}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i]}}}if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var getHeap,shift;if(charSize===2){getHeap=function(){return HEAPU16};shift=1}else if(charSize===4){getHeap=function(){return HEAPU32};shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var HEAP=getHeap();var length=HEAPU32[value>>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAP[start+i])}_free(value);return a.join("")},"toWireType":function(destructors,value){var HEAP=getHeap();var length=value.length;var ptr=_malloc(4+length*charSize);HEAPU32[ptr>>2]=length;var start=ptr+4>>shift;for(var i=0;i<length;++i){HEAP[start+i]=value.charCodeAt(i)}if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_new_object(){return __emval_register({})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function __emval_set_property(handle,key,value){handle=requireHandle(handle);key=requireHandle(key);value=requireHandle(value);handle[key]=value}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){Module["abort"]()}function _emscripten_get_heap_size(){return TOTAL_MEMORY}function abortOnCannotGrowMemory(requestedSize){abort("Cannot enlarge memory arrays to size "+requestedSize+" bytes. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+TOTAL_MEMORY+", (2) compile with  -s ALLOW_MEMORY_GROWTH=1  which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with  -s ABORTING_MALLOC=0 ")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var old=Module["buffer"];var oldSize=old.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){return Module["buffer"]=wasmMemory.buffer}else{return null}}catch(e){return null}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize<requestedSize){if(newSize<=536870912){newSize=alignUp(2*newSize,PAGE_MULTIPLE)}else{newSize=Math.min(alignUp((3*newSize+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=emscripten_realloc_buffer(newSize);if(!replacement||replacement.byteLength!=newSize){return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();TOTAL_MEMORY=newSize;HEAPU32[DYNAMICTOP_PTR>>2]=requestedSize;return true}function _llvm_trap(){abort("trap!")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");var asmGlobalArg={};var asmLibraryArg={"f":abort,"e":___assert_fail,"v":___cxa_pure_virtual,"k":___setErrNo,"q":__embind_register_bool,"p":__embind_register_emval,"j":__embind_register_float,"o":__embind_register_function,"g":__embind_register_integer,"d":__embind_register_memory_view,"n":__embind_register_std_string,"z":__embind_register_std_wstring,"y":__embind_register_void,"m":__emval_decref,"l":__emval_incref,"x":__emval_new_cstring,"w":__emval_new_object,"h":__emval_set_property,"i":__emval_take_value,"c":_abort,"u":_emscripten_get_heap_size,"t":_emscripten_memcpy_big,"s":_emscripten_resize_heap,"b":_llvm_trap,"r":abortOnCannotGrowMemory,"a":DYNAMICTOP_PTR};var asm=Module["asm"](asmGlobalArg,asmLibraryArg,buffer);Module["asm"]=asm;var ___errno_location=Module["___errno_location"]=function(){return Module["asm"]["A"].apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return Module["asm"]["B"].apply(null,arguments)};var _free=Module["_free"]=function(){return Module["asm"]["C"].apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return Module["asm"]["D"].apply(null,arguments)};var globalCtors=Module["globalCtors"]=function(){return Module["asm"]["O"].apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return Module["asm"]["E"].apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return Module["asm"]["F"].apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return Module["asm"]["G"].apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return Module["asm"]["H"].apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return Module["asm"]["I"].apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return Module["asm"]["J"].apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return Module["asm"]["K"].apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return Module["asm"]["L"].apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return Module["asm"]["M"].apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return Module["asm"]["N"].apply(null,arguments)};Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run()})();
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md-10-
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md:11:Install piexwasm project components
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md-12-
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md-17-
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md:18:Build piexwasm code: piex.js.wasm piex.out.wasm
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md-19-
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md-29-
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md:30:Release: submit piex.js.wasm piex.out.wasm to the Chromium repository
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md-31-
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md-32-```shell
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md:33:  git commit -a -m "Release piexwasm ..."
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/README.md-34-  git cl upload
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/tests.html-7-<head>
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/tests.html:8: <title>piex wasm raw image preview / thumbnail test page</title>
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/tests.html-9- <link type="text/css" rel="stylesheet" href="/tests.css">
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/tests.html-266-    console.log('test:', image);
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/tests.html:267:    document.body.innerHTML = `<pre>${image}</pre>`;
chromium-84.0.4147.105/ui/file_manager/image_loader/piex/tests.html-268-
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-4-
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:5:console.log('[PiexLoader] wasm mode loaded');
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-6-
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-7-/**
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:8: * Declares the piex-wasm Module interface. The Module has many interfaces
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-9- * but only declare the parts required for PIEX work.
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-27-/**
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:28: * Set true only if the wasm Module.onAbort() handler is called.
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-29- * @type {boolean}
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-33-/**
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:34: * Installs an (Emscripten) wasm Module.onAbort handler, that records that
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-35- * the Module has failed and re-throws the error.
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-45- * the C++ for example, or the Module failed to load or call run, then the
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:46: * wasm Module is in a broken, non-functional state.
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-47- *
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-165-/**
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:166: * Piex wasm extacts the preview image metadata from a raw image. The preview
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-167- * image |format| is either 0 (JPEG) or 1 (RGB), and has a |colorSpace| (sRGB
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-170- * An RGB format preview image has both |width| and |height|, but JPEG format
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:171: * previews have neither (piex wasm C++ does not parse/decode JPEG).
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-172- *
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-189-/**
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:190: * The piex wasm Module.image(<raw image source>,...) API returns |error|, or
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-191- * else the source |preview| and/or |thumbnail| image metadata along with the
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-206-/**
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:207: * Piex wasm raw image preview image extractor.
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-208- */
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-480-        if (wasmModuleFailed() === true) {
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:481:          return Promise.reject('piex wasm module failed');
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-482-        }
##############################################
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-491-        if (wasmModuleFailed() === true) {
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js:492:          return Promise.reject('piex wasm module failed');
chromium-84.0.4147.105/ui/file_manager/image_loader/piex_loader.js-493-        }
##############################################
chromium-84.0.4147.105/ui/file_manager/gallery/js/ribbon.js-439-      HTMLDivElement);
chromium-84.0.4147.105/ui/file_manager/gallery/js/ribbon.js:440:  thumbnail.id = `thumbnail-${this.thumbnailElementId_++}`;
chromium-84.0.4147.105/ui/file_manager/gallery/js/ribbon.js-441-  thumbnail.className = 'ribbon-image';
##############################################
chromium-84.0.4147.105/ui/file_manager/gallery/js/slide_mode_unittest.js-8-function strf(id, var_args) {
chromium-84.0.4147.105/ui/file_manager/gallery/js/slide_mode_unittest.js:9:  return `${id}-${Array.from(arguments).slice(1).join("-")}`;
chromium-84.0.4147.105/ui/file_manager/gallery/js/slide_mode_unittest.js-10-}
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/files_tooltip.js-193-
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/files_tooltip.js:194:    this.style.top = `${Math.round(top)}px`;
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/files_tooltip.js-195-
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/files_tooltip.js-233-    left = Math.round(left);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/files_tooltip.js:234:    this.style.left = `${left}px`;
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/files_tooltip.js-235-
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js-337-            if (status) {
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js:338:              indicator.setAttribute('icon', `files36:${status}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js-339-            }
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js-364-        if (this.indicator_) {
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js:365:          this.indicator_.setAttribute('icon', `files36:${newValue}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/elements/xf_panel_item.js-366-        }
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/file_tasks.js-869-              null, null);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/file_tasks.js:870:          console.error(`Cannot mount '${path}': ${error.stack || error}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/file_tasks.js-871-        }
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/main_window_component.js-462-          const label = util.getEntryLabel(locationInfo, event.newDirEntry);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/main_window_component.js:463:          document.title = `${str('FILEMANAGER_APP_NAME')} - ${label}`;
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/main_window_component.js-464-        } else {
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js-626-    const mockEntry =
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js:627:        MockFileEntry.create(mockFileSystem, `/report.${data.extension}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js-628-    const type = FileTasks.getViewFileType(mockEntry);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/breadcrumb_unittest.js-137-
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/breadcrumb_unittest.js:138:  let result = `${button.classList.toString()}: display:` + display;
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/breadcrumb_unittest.js-139-  if (!button.hasAttribute('hidden')) {
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/file_table.js-281-    const iconName = sortOrder === 'desc' ? 'up' : 'down';
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/file_table.js:282:    icon.setAttribute('iron-icon', `files16:arrow_${iconName}_small`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/file_table.js-283-    icon.setAttribute('tabindex', '-1');
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js-820-    const iconSet = directorytree.rightIconSetPrefix;
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js:821:    ironIcon.setAttribute('icon', `${iconSet}:eject`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js-822-    ejectButton.appendChild(ironIcon);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js-1787-    const iconSet = directorytree.rightIconSetPrefix;
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js:1788:    ironIcon.setAttribute('icon', `${iconSet}:external-link`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js-1789-    externalLinkIcon.appendChild(ironIcon);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js-2559-  }
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js:2560:  assertNotReached(`No DirectoryItem model: "${modelItem.type}"`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/ui/directory_tree.js-2561-};
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/file_manager_commands.js-683-        console.error(
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/file_manager_commands.js:684:            `Cannot unmount '${volume.volumeId}': ${error.stack || error}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/file_manager_commands.js-685-        errorCallback(volume.volumeType);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/navigation_list_model.js-495-        default:
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/navigation_list_model.js:496:          assertNotReached(`No explict order for VolumeType: "${volumeType}"`);
chromium-84.0.4147.105/ui/file_manager/file_manager/foreground/js/navigation_list_model.js-497-          break;
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/test/crostini_share.js-79-  const shareLabel = {'termina': 'Linux apps', 'PvmDefault': 'Plugin VM'};
chromium-84.0.4147.105/ui/file_manager/file_manager/test/crostini_share.js:80:  const givePermission = `Give ${shareLabel[vmName]} permission to modify `;
chromium-84.0.4147.105/ui/file_manager/file_manager/test/crostini_share.js-81-
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/test/crostini_tasks.js-17-        callback, 0, [{
chromium-84.0.4147.105/ui/file_manager/file_manager/test/crostini_tasks.js:18:          taskId: `${test.FILE_MANAGER_EXTENSION_ID}|app|install-linux-package`,
chromium-84.0.4147.105/ui/file_manager/file_manager/test/crostini_tasks.js-19-          title: 'Install with Linux (Beta)',
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/test/crostini_tasks.js-89-        callback, 0, [{
chromium-84.0.4147.105/ui/file_manager/file_manager/test/crostini_tasks.js:90:          taskId: `${test.FILE_MANAGER_EXTENSION_ID}|app|import-crostini-image`,
chromium-84.0.4147.105/ui/file_manager/file_manager/test/crostini_tasks.js-91-        }]);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/test/js/chrome_file_manager_private_test_impl.js-305-  }
chromium-84.0.4147.105/ui/file_manager/file_manager/test/js/chrome_file_manager_private_test_impl.js:306:  const message = `webkitResolveLocalFileSystemURL not found: ${url}`;
chromium-84.0.4147.105/ui/file_manager/file_manager/test/js/chrome_file_manager_private_test_impl.js-307-  console.warn(message);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_util.js-95-
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_util.js:96:  console.debug(`Getting file system '${volumeMetadata.volumeId}'`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_util.js-97-  return util
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_util.js-141-          fileSystem => {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_util.js:142:            console.debug(`Got file system '${volumeMetadata.volumeId}'`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_util.js-143-            if (volumeMetadata.volumeType ===
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_util.js-152-                    console.warn(
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_util.js:153:                        `Triggering full feed fetch has failed: ${error.name}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_util.js-154-                  });
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-132-    }
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:133:    console.debug(`There are ${volumeMetadataList.length} volumes`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-134-
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-142-      await Promise.all(volumeMetadataList.map(async (volumeMetadata) => {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:143:        console.debug(`Initializing volume '${volumeMetadata.volumeId}'`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-144-        try {
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-146-          const volumeInfo = await this.addVolumeMetadata_(volumeMetadata);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:147:          console.debug(`Initialized volume '${volumeInfo.volumeId}'`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-148-        } catch (error) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:149:          console.warn(`Error initiliazing ${volumeMetadata.volumeId}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-150-          console.error(error);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-153-
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:154:      console.warn(`Initialized all ${volumeMetadataList.length} volumes`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-155-    } finally {
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-178-            case VolumeManagerCommon.VolumeError.UNSUPPORTED_FILESYSTEM: {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:179:              console.debug(`Mounted '${sourcePath}' as '${volumeId}'`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-180-              const volumeInfo = await this.addVolumeMetadata_(volumeMetadata);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-196-            default:
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:197:              console.error(`Cannot mount '${sourcePath}': ${status}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-198-              this.finishRequest_(requestKey, status);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-213-              if (!requested && volumeInfo) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:214:                console.warn(`Unmounted '${volumeId}' without request`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-215-                this.dispatchEvent(new CustomEvent(
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-217-              } else {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:218:                console.debug(`Unmounted '${volumeId}'`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-219-              }
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-226-            default:
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:227:              console.error(`Cannot unmount '${volumeId}': ${status}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-228-              this.finishRequest_(requestKey, status);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-255-    });
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:256:    console.debug(`Mounting '${path}'`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-257-    const key = this.makeRequestKey_('mount', path);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-262-  async unmount({volumeId}) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:263:    console.warn(`Unmounting '${volumeId}'`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-264-    chrome.fileManagerPrivate.removeMount(volumeId);
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-284-    if (!entry) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:285:      console.error(`Invalid entry passed to getVolumeInfo: ${entry}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-286-      return null;
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-321-    if (!entry) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js:322:      console.error(`Invalid entry passed to getLocationInfo: ${entry}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/volume_manager_impl.js-323-      return null;
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/app_window_wrapper.js-117-        if (!appWindow) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/app_window_wrapper.js:118:          throw new Error(`Failed to create window for ${this.url_}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/app_window_wrapper.js-119-        }
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/runtime_loaded_test_util.js-373-  if (elems.length === 0) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/runtime_loaded_test_util.js:374:    console.error(`Input element not found: [${query.join(',')}]`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/runtime_loaded_test_util.js-375-    return;
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-543-  const fake = (...args) => {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js:544:    console.warn(`staticFake for ${staticValue}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-545-    // Find the first callback.
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-550-    }
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js:551:    throw new Error(`Couldn't find callback for ${attrName}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-552-  };
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-652-  replace() {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js:653:    const suffix = `for ${this.attrName_} ${this.fakeId_}`;
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-654-    if (!this.prepared_) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js:655:      throw new Error(`PrepareFake prepare() not called ${suffix}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-656-    }
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-657-    if (!this.parentObject_) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js:658:      throw new Error(`Missing parentObject_ ${suffix}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-659-    }
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-660-    if (!this.fake_) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js:661:      throw new Error(`Missing fake_ ${suffix}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-662-    }
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-663-    if (!this.leafAttrName_) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js:664:      throw new Error(`Missing leafAttrName_ ${suffix}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-665-    }
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-700-    if (!factory) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js:701:      throw new Error(`Failed to find the fake factory for ${this.fakeId_}`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-702-    }
##############################################
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-720-      if (target === undefined) {
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js:721:        throw new Error(`Couldn't find "${0}" from "${this.attrName_}"`);
chromium-84.0.4147.105/ui/file_manager/file_manager/background/js/test_util.js-722-      }
##############################################
chromium-84.0.4147.105/skia/ext/image_operations.cc-361-
chromium-84.0.4147.105/skia/ext/image_operations.cc:362:  if (!source.addr() || source.colorType() != kN32_SkColorType)
chromium-84.0.4147.105/skia/ext/image_operations.cc-363-    return SkBitmap();
##############################################
chromium-84.0.4147.105/skia/ext/image_operations.cc-371-  const uint8_t* source_subset =
chromium-84.0.4147.105/skia/ext/image_operations.cc:372:      reinterpret_cast<const uint8_t*>(source.addr());
chromium-84.0.4147.105/skia/ext/image_operations.cc-373-
##############################################
chromium-84.0.4147.105/media/gpu/vaapi/fuzzers/jpeg_decoder/seed/pixel-1280x720.textproto-85-    }
chromium-84.0.4147.105/media/gpu/vaapi/fuzzers/jpeg_decoder/seed/pixel-1280x720.textproto:86:    data: "\331\005\275\266\3225w7c\241\200\300\024\006\245rm`\000g\'\250\244\313\026<qI\275@wS\305\016\315\235\204\201\216\324\\v\320\025s\324\341{R\202;\365\025b\032M(\300\351R\306\230\213\214t\3058\220\027\216\264\356\027\031\270\343\2003Hy>\365-\213p\340\237\245\025Qa\260\275hP:\223\201H\030\002\016})\235y\024\010wA\357I\363z\212a\260d\343\201H0\307#\255\027\023\324z\361C\036i\334,4\363\317\245\001\263\326\230\356&\006\343\315\'\322\202E\307\034\217\306\232FO\265K\001\331\007\214R\036\225V\032B\2028\332y\357M\311\035\362h\265\204\033\263A\000\365\242\342hBx\305\003\336\230 4\206\220\n8\353@\024\000\200\001KL\000\000M&\010\372P\205`\240b\251113\317\0241=h\270\320v\342\214P&!\351A9\030\034z\322`\300\2201\212PqE\300\r6\230\254.8\244\305>\202\260\003K\221I11\010\3174\271\346\204\026\002):\014U \020\360iMH\304&\227<SD\210\274\257&\214b\230\\N\364g\035\352D\3018\247\3474\35622p\334P9\347\326\213\212\300G\245*\372\232\241\nqHX\023\221\232\026\200\300c\024\200`\321q4\030\031\243\236\224\320\001\036\364dv\241\213\250\036iO<\367\244\014RsM=8\241l\034\305{\314\371\'\r\203\332\26445_\261\331\252\256\tn\177:\322\227\304gY\373\247=\343\242\267_\035\254P\344y6\361\217\256\003\037\353^\205\341\221\213\233\307\356@\037\255i#\231\032\375i\005bh(\245\244 \242\2010\034\232ZB\024QH\002\201@\013@\244\002\323\222_!%\270\306|\270\231\271\372P\207\035\316b0B\014\234\236\271\247\014WB7\350:\225\005h\214\330\354R\343\234\326\210\315\214cH\005h\214^\340FM8\n\033\"\303\200\253:z\376\377\000w\240\254\247\261,\272\307\212!\\ \256W\261\005\245\271M;F\276\324\237\24413\340\367\3323_<+\t\034I!%\235\213\221\217S\232\252&\221Z\036\377\000\360\333N:o\203\254\342p\025\345\006f\036\233\271\376X\256\212\274\314K\274\317G\014\275\320\242\271\316\244\024P0\242\200\n(\032\n(\000\242\201\005\024\003 \277\270K;)\256\2448X\220\261\257\r\271\221\357/\031\336R\301\230\340c\025\353\340W\273s\313\305-K\326K\276\341@?2\362\000\357]~\225n\263O\014[:\343\025\3357h\0342\354v\320\256\324T\037\3021S\016\225\363\325\035\344z\370X\332!Efv\205\024\000Q@\036R\255\214\201JI<t\256\273\235\002\250\356zP\300(\365\'\245;\000\200\320p\024c\256i\\\007g\013\234R\226\001z\002OSN\343\032\010\354h\3019\"\204\304!\307zP2\247\004\014S&\302/=\350\013\307jC\265\300qMn\234u\241\202B.q\323\232P\r\t\t\356\034\364\035iB\363\357@\200\021\234\032F$r)\364\030\231\'\232\016O\024\320\232\014\225\351\311\240g\250\343=i0[\206\356q\203Fi\334lR\337 \n9\3174\326\306i\222\304\347\255(\301\246\330\003\026l.@Z\000\000g<T\202\020\343\255(9\024\323\001\215\200x\247c+\220i\210nx\351N\344T\240\0003\315\007\226\342\254,4\365\240P \340\214\223\315\034\320\0009\245\366\006\232B\003\352i\001\346\200\020\2323\221H\000qE4\027\003\305&h\270\205=)\242\200\nPx\240\000r(\342\2010\3154gw\'\350)\222)\342\216)\r\nM&\017z\245\250l\031\244=hlB\002\307\267\024\264\206\r\2163G\030\316i\210\000\3474\215\327 \320 V \346\206\300\034\002M\001`PqG\320\321a\200\307zC\214b\231 zq\326\214\361@\t\236qN\030\024\010\t\240\372\320\014Lf\200q@\205\244\002\250\030\235\r;\0314\256N\242t\342\220\016:\320\014\257{\314DV\306\204\230\226\302-\270\344dV\224\267\"\252\367N_Ru\271\370\363q\264\203\344\240\031\307L\'\377\000^\275\023\303\0036\267\023\023\226w\000\373b\264l\347h\323\245\035+\022\302\226\201\005- \001@\244H\3523H\002\226\201\005\002\220\nj\276\260\3334I\017\361M \214\1773MnTw1M\n+c\242\326\035\336\234+H\2639\016\024\206\265FR\030\302\205\034V\210\301\213\357J($r\214\325\353\000DD\2209=\253\n\217B$\354M\'J\221xJ\345\226\304\231\037\027/\r\217\303\267\267E\375\345\353\254?L\234\237\345\372\327\220\350V\222\337k\021\332G\313\316\342%$\364\311\253\247\244Y\272z\037H\333B\266\366\321[\247\335\211\002\017\240\030\251k\311\252\357&zT\025\242\024Vf\341E\000\024P\001E\003\n(\030QA!E\000\3669\217\211\367\342\323\303mn>\375\313l\037A\311\257+\265\301\230\266\000\000`\017\353^\336\025Z\007\223\210wf\306\203\010\222c$\213\300`\001\365\256\347\303\021o\274\363\031F\304\316\017Nk|C\2653\215nt\361\323\353\347\345\271\356PV\210QRt\005\024\000Q@\036S\234s\212\007\314\336\202\273\016\226.{R\361I\261\\ozRv\214\232\0206\003\236M)\306=\351\212\343F@\343\024\354\340`\322CZ\211\201\2340\240cq\031\374*\230\220\023\350(9\002\246\343\260\234\036[8\024\003\270p8\025B@s\217AHz\322`\320(\000\346\234\255\307JhLa\345\2168\245\310\316(\020\023\216\202\232\016\033&\232@\330\270$\347\214R\344n\036\3244\010ny\354i@$R\265\207\270\211\334\032C\355U\320@H\013\214P\006\006q\212[\210\030\216\224\204\216\224\r\n\0055\3074\354&(\345y\240\001\324\032\026\300\006\203\357I\000\230\343\212@\016z\325u\001H\357J\2434\311\023\036\264t\240a\220\007\024SB\014\363\212)\200\234\347\024\032\224&\000\361\315 \037\2451X@r)q\212\006\004g\232\010\024\003\023\267\024\nLB\322\000j\220\001\035\350\004\036hD\330\0108\310\244\367\242\303A\212^p9\315\010LB2)N(\020\224\021B\000\300\3074\034b\250\002\223\241\240B\036\264\264\206\034\322\014Sap \361@\025 !<\322\212\244H\207\255+b\200aK@\267\no\031\246\026\027\232\t\311\2410\330\010\303f\216q\305H\201z\221H\334U\n\305]@\225\210\355\353\216\265\320h\000\035V\300d\222H\376U\245#:\333\034?\207\267O\361\217^\227nBO2\356\355\303\001^\243\341\240\006\226\355\236ZcV\314\0334(\254\312\276\200)h$\005/4\200\\\320)\000\264R\020\242\212BaJ)\014\030\340U\017\0226#\262\200\037\357;\017\345\375i\307r\241\271\230\r8\032\331\0352\035\306i\302\266H\306Lp\246\236\265h\302Li\311\245\305h`\300R\212LW\034\265\247n\241b\\\014q\232\347\252\310\220\244\002\3435<c,\253\352q\\\323\330\016\003\343\365\356\353\375\'I\214\260\020\243O!\007\216x\037\310\376u\231\360\203N\373o\212\355\334\247\311m\233\202\307\327\240\375qZ\355\003d{wSK^4\336\247\251MZ!EI\240Q@\320Q@\005\024\000Q@\302\212\004\024SZ\261I\331\036e\361\203Q2j\360X\243\000\266\303s\375X\177\372\253\225\264\307\331\206GV8\025\357P\215\240\217\"\253\324\350\374=\017\356\031[\223\2363\336\273\277\016\303\262\307\177\374\364l\203\355S\214\225\240s\305^F\272\nuxl\367(\253 \242\221\260Q@\005\024\001\345\\\322|\300\216\234WcG@\001\336\214P\200\033\035\215;\031\352i\017q\016\321\214\234\001K\225\003$u\252\023\033\202zQ\317SJ\302J\302\036\271\247v\2444\204P\007=sA\031\347\240\247b\204b3\201\310\2400\037-\"G\036i\277\316\250M\002\217Z9\351M\t\210p9\357B\220;\034\232\004+gm7\031\036\206\220\0102\307\007\245)\030\346\232\324v\005\034\321\221\270\234\234S\032a\216s\2323\305&\311\032\307\323\255\007=I\374(\0019\306@\315\037621\232bB\344\347\024w\246\200N3\272\225\211\317\035(\001(\376t!\016\301\246\221\317Z`\007\201Fx\340R\266\242\014\236\224\206\250\004\311\364\243<T\\b\216:\322df\250\005>\264\213\317Z\t`\240\236\324db\230\010N($c&\201\013\232i84\000w\342\224P\000O\241\245\317\024\320\010\017\035)\007^)\000\200\2223\372R\200z\323\022@(\034S\023\020\365\240\360)Xw\005<`\321\333\2554Ka\316)(\001N\000\315 9\031\240\00394\271S\322\204H\017JA\326\230\3054\204\216\235\350\020\200S\260(\030\326\366\243\234P!E\004\342\230\2039\034RuojW\000\357@\036\224$&\205\344u4\275\251\261\241\006GzC\212\004\212\232\216\337 \344\362k\247\360\352\203\255\333\023\374 \037\322\264\244g[c\201\360\036\351<{\342ys\225\216\346l~2\037\360\257R\360\350\306\216\274\34721\255\036\3073/Px\254\212\0274P!zR\346\220\202\201@\013J\rH\202\224R\025\302\226\221B\021\234\017S\212\313\361\003\357\325\344^\321\"\240\374\263U\035\313\246\265)\212ul\215\344\307\001\305;\025\2620\223\027\030\2445H\302BQ\212\243&\003\232v(\025\207\302\244\272\2009&\265@\300\256j\254\221\2103!5wM\214=\310\317@:W<\230%\251\342_\023\257\377\000\264|}\252\314\t1\302E\272c\375\216\017\353\232\356\376\006Xb\336\367S+\264\020 O\303\223\375+j\232S6KTzB\364\242\274W\271\352\307`\242\221AE\003\n(\030Q@\202\212\002\341E\000\024\022\024\026c\200\006I\253\246\257$gU\332\'\206k\367\177\332z\325\315\314\214\035\245~1\351\332\226\330\r\352\241~\350\257\241\202\262G\217Q\334\3534\250\035\2264)\200G\036\365\336ZF#\201#\034\005P1\\x\351ibh\253\310\262\275)k\307g\271O`\242\203@\242\200\n(\003\312\224\343\'\255\007\236k\261\035-\001<R\014\226\3329=M\033\222\305*GJ\026\220\322\014\023\333\212\t9\371zP\2065\211\307\312qB\344pFi\334W\024\006\300b\177\001@bx\24449pz\232k\25603\232\255\304\335\204<\n\001\006\200\270\002\017\002\215\303\245\000(\004\322`\375)\203B\020\007$\344Q\306)\262\004-\305\003 |\325#J\342\347\322\214\347\234t\24645\2114\005\300\306h\020\014\321\222G\245 a\216E+\005\306OZ\245\250\2544\020\007\024\001\351N\302`2r:R\342\222\035\304\306h\307\024\\LC\216\271\374))\210U\335\216Nh$\016\247\232i\200\2079\311\243<qJ\340\031\244$f\206\301\007\327\245\030\247a\n\324\230\307j.\001\324u\245\035(\0017\034`Rc\002\201\001\240P\200\017JA\301\246 <\0329\240\005\355\221E4\300Ns\305/\003\2774\204\'9\240f\232\030\n;\320&\004\321\324sL\022\020zQA-\005\035(\000\353A\034\323\020t\244\357\322\220\001\353Fi\200sHx\372\322@\320c<\322\323\020\231\240r}\250\020w\245\036\374\323\001\007\'\030\342\216\234P\002\221\201I\234\016\234\323\006\305\3529\241NF\r A\2168\353HFzP\311*]\202\317\022\236@q]O\206s\375\256\\\267\013\036zV\264Lk\036y\360\230\311.\245\257\335\277\374\264\233$\372\235\314k\3264U\331\244\3003\234\345\277Z\271#\026[\024VC\001\305-\002\nZ\000Q\212QR\300)E!0\245\240@)i\024:\334f\34522\001\311\256zW\363g\226~s#\226\252\201\2551\253O\025\264K\230\365\247\201\351[\030H\010\3150\212h\312L\005\004S2`\001\247\216\2641\026l\324\031\000\374j\363p\265\311Q\352H\330A\333\315]\202h\354\254.\257e\300HP\273}\000\315b\367\034V\247\316\361\312n.\214\357\367\246\231\2458\367$\327\274\3744\323\333O\360\205\2729\313L\306c\316~\367O\323\025x\227h\0350\217\274ttW\220zh(\240aE\000\024P\001E\000\024P\001E\000\025\215\343\213\303c\341{\311T\374\356\276Z\375O\037\3135\276\031^g=\177\204\361{t\377\000H\014r[\2775\253\245\242\313pw|\300\341p\005{\321<\232\232\035\327\206\341Y\257\262\307r\2478\355\307J\353#\317z\3631\317R\360\272\310\230t\242\274\323\333\216\301E\005\005\024\000Q@\036No \310_,\206\'\000\003K\366\270q\226F_j\354f\274\303\214\321\377\000\3176\307\255\002\356$\371LM\317S\355B\016aM\304\r\222\003\025\364#\006\220Ml\251\215\256\006i\024\245\240\246X\np\314\017\323\255(\232\327n1&~\224\354\027\024Ij\3120\307\323\030\346\220Mm\226\313\260\307\250\240W\260\246KE\300\022;g\223\362\236)\013Z\023\224\221\263\3561\232`\330\344\222\314\257\023`\236\271\024\214\366h2nN}\326\200\275\305qg\260\346\340\212B\226x\001n8<g41\335\001\206\324\r\246\357\361\024\242;c\234]\257\036\342\201\334\n@\000-p\237@i\322E\001P~\325\022\372\r\335i\240r\030\320)?\361\367m\267\331\271\247}\225q\221w\010\374i\0227\354y\037\361\365\016}A\2456r\356\030\236\002\277\357s@\'\240\363f\371\033e\204\3764\217g6>G\204\377\000\300\251\241\337@k\033\202\200\243DO|\267J\217\354W\n\334\264G\037\355S\265\204\330\255gry\375\320\036\233\251\032\322||\276_\347OA\\V\263\235z\005o\241\246\265\244\2732P\226=\000=)^\302\270\013Y\312e\242#\320\nh\267\271\007\375Kb\235\301\352\037g\270\035!sK\366y\207H\234\237\245\027\001\246\332\340\267\372\247\037\205\ro8R|\2318\366\244\202\302\010%$b\031A\365*i\276\\\305\270\202O\256\332lv\006\216`3\345??\354\320c\220\363\344\311\307\3734\225\301\001I1\223\023\201\356\264\253\033\021\300?\225U\204\306\005$\364?\225\014\204q\203J\304\266\005X\361\203\305\000\022:\021B\013\212\024\225\316\r\033\033\0314\\c\031p\330\301\245\nV\235\311\000=(\031\'\024\306\304\307a\316(\000\322\270\203\036\264`u\240A\221\232B@\366\246\002o\\\340\034\237AK\307C\301\364<R\272\0009U\014\310\312\207\243\021\301\244\312g\004\343\353\336\205$\3007/\\\212\\\251ln\031\372\323\270X\033\003\251\002\214w\252BHN\264m\317R@\240\030c\024\231\240\2204P\002q\234\342\226\213\200`u\357Gz\004\004\362)8\3150\020g>\324c\234\322@\305\372R\020\010\246-\303\203J\006)\214\032\222\201\000\353\315\024\000\243\024\036M;\212\302\201\216\264q\212}\00474\207>\265;\201\004\270\027P\250<\357\030\367\256\213K\220E\026\243rx\021Z\263~@\326\264\214k\034\027\301\365\377\000\211&\24779iGZ\365\253\005\013\247[\001\377\000<\301\253{\030\264L(5\230\013E!\005(\240LZZAqE\000\324\211\261E- \n(\0046I\0146wS\3626\307\200G\251\254\001\302\200\0060*\340oHr\216*E\025\264\n\223\034\005H\243\212\324\305\201\030\024\303M\0301\017\265-3;\200\247(\315&\027.i\3120\357\337\356\325\211s\263\003\275q\315\352K%\214`\001\351X\337\025o\206\233\360\346\355T\376\366\360\255\274|\365\335\327\364\006\263\216\262*\'\220\370r\321\347\276\212\030\325C\310\302\025\035\262k\350\3338E\265\234\026\300\344E\032\247\3441O\032\375\323\246\216\262&\242\274\243\322AE\003\n(\000\242\201\205\024\010(\240\002\212\000\ry\357\306\213\325d\263\322\325\216[28\007\362\317\353]\270(\336g&%\350p\326\212v\026N\016p>\225\277\341\370X$o\032\251\'%\211\342\275\210\356ys;\317\013\304\242\027\220\014n\300\025\272\202\274|[\274\216\234$u\037Eq\036\272\n(\030Q@\005\024\001\341\253fw\002&u\343\221NKF\003-;d\373\327]\356h\320}\214\347\002V\037\215)\267\237\200g \n\033\260r\334D\267\230\266|\366\343\336\206\266\234r\'-\370\364\245{\203\320A\r\342\343\375\'\223\334v\247\252^&qtI>\264\3564\303\313\271$b`=\351\014W\374\177\245eGL\216\224\000\273/\261\363\\+\266z\364\240\013\340\377\000\274\230\037\302\230X@/\363\223*\343\324\322\026\324:\357B>\2241\016W\275\334X\024\334\300\014\221\322\2237\252pv\267\370\321{\210jI\250\014\217\223\nzt\305){\34791\302\304~\024\304\205\363\257\266m0\247\'\323\212\r\305\362\262\267\221\021\035\201\034\n.4\t=\326I\373,%\275\270\2443\335\367\262@=A\315\r\200\255qs\216,\224\366\344\342\220\\\312Hci\264\203\353I0\017\265\316y\026G\003\266\177Z\026\362E\316\313\"A\353\223T\230\320\277juc\213\027#\031\306\352D\277tL\233V>\331\315\014LS|\373A6\362\006\353\301\240\352/\267\017\004\264\t\216\376\321\371xY\200\244:\231\031\0029\3069\341\251\331\010?\265K\271\033nUq\316\0174\346\325X/\313\347\200\0062G&\2041\277\332\334\345^\344\017\347Jum\321\260/s\354i\350\205q\006\256\352N\036\347\004S\277\266$nD\363\201\232h.\305]i\211\332\2673\220?3@\326\333\247\2377\345\322\213\205\330\346\326X\014\265\314\244c\260\346\217\355\247#p\270\230)\343\247J\020\257`mi\207\313\366\251?*?\266Nr.[\361\246&\305:\261$\206\271>\304\201J5e\034y\240\217\\\320\027\017\355U<\231\206G\267JC\254!\347\355\013\236\230\364\245k\200\277\332\261\361\211C{\322\235U\0161*~T\254\027\320?\265\024)c4y\243\373R>\242X\362GqN\302R\001\251G\214\371\220\232q\277\214\375\331\"\317\247zi\t\310_\3558~\3501\203G\366\214]Y\242\003\265;\0078\246\372=\271\335\t\024\242\365p\010\021\234\364\3644\233Hi\266^\212\336\362x\326Ah\333I\344\343\201[\026\332%\266\305y\234K\307*\0061\\\365+-\221E\365\263\265Ic\226\013h\325\224`\034sQ]Y\301ww\033M\032\235\203\234\367\366\256gY\214\221Z4\"\025\215|\244<.8\251\345\026\263\301\262\342\332)c^\305zT\306\263\270\254Q\267\322tx\334\270\210\270\'!X\360*\313h\372$\240\306lV<\364d\'\"\272\025k\212L\217\373\003CH\3245\263\266?\210\271\311\250\377\000\341\026\322e$\255\315\324g\260\334)\252\372\223q\227^\016%U\264\333\300\303<\211F?QY\032\236\213\252X\0263X\264\210\017\017\017\314\017\365\255\343Q1s\\\241:\275\276\337\264A,;\206Wz\021\232\214I\0230\307_J\321j\r\216\005\030\360\t\241\214Y\316\010\305U\210s\025\002v\037JM\243\362\243\224\\\342\215\2642\2518\347\332\251D=\240\233\023\201\226\342\227\312\004\216\264\271D\252\010#S\334\322\210\324\001\202M5\020\347\024F)<\260;\232n!\316\036P\3019\244\362\211\357K\225\207:\001\021\365\024\202\023\330\212\024X:\202\371-\354iDM\214\034~t\324X)\203Bv\360Fi<\207\343\356\347\353G s\241D/\316q\355H\260H\006\016\337ni\250\213\234O\"A\375\323\3644y2`\235\275=\r>A)\225\336\332e\274\266\221\323\n$\030 \367\255K\227h\274)\342I\206r\272t\244\177\337&\252\236\206u]\316K\3410\331\340\271\234\377\000\034\307\237\300W\254F\n\333\302;\210\227\371U7\241\223b\212Z\314M\205(\240\005\034\321H\005\245\244 \245\244\304\305\024R\004-\024\206W\326\230\246\214\221\203\217>l\037\240\347\372V)\'5\244^\207U(\3509\01752\221Z\301\212J\303\326\244\035+V`\304je\010\302[\200\024w\246CB\212r\3608\251b4l\327\026\351\376\320\335Nq\231P\016\235Mq\313r[\'A\222\253\352q\\\037\307\373\265\037\331\032Z1\014\245\247n8\364\037\326\225-fi\004b|\"\262\222\363\304\366\314\025@\211\274\367>\303\247\353^\341\334\326x\347\255\216\2542\274\202\212\363\217D(\240\002\212\006\024P \242\200\n(\000\242\200\016\365\342\376=\276mC\305\227S,\213\345\241\362\320\016I\013\305z8\025\324\341\304\262\214J\025\221\024\035\307\255u:db5U\310\336\335+\325_\013g\231Q\235\366\227\n\301a\004`\177\010$\372\325\344\351^\006!\336L\3640\213Ah\254\017I\005\024\014(\240\002\212\000\361t8\353O\036\207\245t\255\rl\035)0}j]\330\320\354\0008\024\204`\325\211\253\2068\351Gz\002\326\017\307\024\231#\275Kv\004\014h\353M\r\240\300\"\220\364\252\020\014u\245\3479\244\204\330\034w\240\001\232\241\330N\246\224\342\213\210V\3054q\315\000\007\221\212i\034T\260\260\253\300\342\216\264\301\006\r(\306s\201\232b\021\262y\353FI\000\032\000R\001\030<\323H\342\201\000\356=h\307 \372U \00699\'\232iQ\320\200E\002\r\243\322\220\362\n\366\246\264\001\010\031\350?*\002&3\345\256~\224\200EE\347\345\037\225 ES\367A\037J\245\240\205\330\271\316\325\374\250H\243\035#@>\224&\014C\022\003\367A\374(1F\313\202\213\217\2450\262\017*?\356.=1B\303\022\234\210\223\237jI\200\202\336>\310\277\225 \266\210\365\215x\355\212b\021\355\355\327\254k\236\334U\273=\032{\300\317\035\267\312\275K\014T\312v\022\211\034\232K\002D\266\014X\014\215\253L\262\261\206\346_((\022c\"\227:\016Q\322i\237*\221l\354\271\307\nx\253#\303\321\256\234\323\312\257\023\356\030R8\305C\254\220\324\002/\016L\362!H\303DFHS\315ni\3660Z\332\030g\267\210\355l\251e\311\025\317Z\275\326\205\30665\256^\3428T\225\312\237Jtn>\314\010\004\026\256T\333\024\210\204\373cU-\264\356\246\013\340%pNF2ML\330\242\0132\371[\321\201\247\tN\3022Fz\324_R\302<y\253\356j\374\237x*\223\273\031\306+d\311\222\021\327\"\'\3118o\230R\304\222\311zX/\356\317\035{UnAu\314\221.\001!GB:T\326W3H\244\356\373\247\025\264[2{\223\263,\203\023\242:\377\000\2643\212\241\252hZ5\3721\232\321U\230p\361\374\244~U\262\233\016s\220\3617\202o \223\355\032<\257=\271\306b\317\316\277OZ\346$\267t\224\307$\262\305\"\360U\370\"\272\243R\350\\\267\035\366i\016\010\271u>\324\246\336\\\234\\?J\321\020\320\010g\007\"\346L\217z>\3171\353s \036\200\323\027(\242;\205M\242v\353\353G\223pp~\320\303\036\364^\341a\301nz\031\230\216\302\225\305\323p&#\361\252\2716\023\3753\030\023\014\373\323\201\274\307\372\354q\323\024\323\023B\006\2738\033\200\307zw\233y\267\001\200=\362)\334\215EY.\324`2\237\250\2452^\225\005Dc\324b\235\300<\333\320I\005[\2774\236}\356>\352u\247q+\2163\3367\n\221d\361N\373M\350\0070\303\323\336\232`\356)\272\273U\346\030\211\307=i\026\346\350\362`\214}Z\225\302\342\245\325\317x\243\347\364\245\027s\206\342\335x\352wU&Jdf\365\3565\013[S\030_\336o8=\2005wZu\207\341\377\000\210\345<\026\264t\311\357\221\217\353DQS9\377\000\206+\267\300v\370\\\357\221\363\237\256+\324z*\217\366G\362\251\350Cz\210)jF-- \nPi\010ZQH\005\245\251\020R\3200\240\347\034u\251`T\361\026<\353kb\006#\217y\372\237\377\000Ug\004\004\325-Q\337IZ\"\255\262\261\316\366\006\244\373$\301~FC\3655\264t&v\021\242\272\214\374\321\022\007u\346\232f\332~p\313\365\025\252\222g<\220\237h\217v7\nQ\"\261\371NkD\216i!\301\305;\212V \001\031\251\023\222\007\257\025\022\330\223UT*\200:\001\201L@\014\207\332\270\331\233-\331&\353\205\036\234\327\214|W\276\032\207\304+\322\254Z;p\266\350\017b\007\315\372\346\252\206\2626\247\261\331\374\016\323\212%\346\245\374%D\n}H9?\322\275 t\256Lc\274\216\354*\n+\214\355\n(\030Q@\005\024\010(\240\002\212\000(\240E=n\365t\355\"\346\365\372E\031 z\236\337\255xT\"G\271;\276\3731\'\234\340W\257\202\215\240y\325\335\331\253\247G\272\340\340r\027\203\357]~\207m\346]\305\0262~Rq\351\236k\266n\3208\'\271\333!\313\034t\355S/J\371\372\256\354\3650\253Ah\254\316\360\242\200\n(\000\242\200<`\014\034\036iz\237J\352f\373\212\017\024\203\255 \320=\363G\\Qq\n\307\000r)\007^\264\n\342\232B9\343\245\016\"\0161H=)\214wJM\303\322\235\304\203\212J\000_\255\007\203\301\240aH\t\3074\200\005 \353\203E\304\302\216sLW\024\364\244\035(aqO^\264\215M\000v\243\024\002\016\324\023N\303\020u\315!<\323\"\342\343\"\233\370\320\201\213\332\223\232\030\204\347\275\025#\023\234QW\320\005\310\305.x\241\003Cs\223FM\027 \006i\335\250\330\253\027,4\371\356\323r:\304=\\v\253GB\234\014\255\304m\307$\212\347\235{hZ\211\243\246\351\366\366\213\226D\222B>\375Y72F2r=q\336\271*V\270\371I\026\343zo\\\362*\274\013g\003y\311o\031\223<0\034\324{f\r\026\315\303\002\027\215\235\370\241\277x\2448\310>\265\016m\202\320o\226c\006H\201\374\351\361\204~$P\307\255N\343\223%\227s\272\200;TO#\225\333\2001Z\255\014\033\013\270\224\304\274\374\331\254\361cpeo(\243\251\344s\212\231+\242\2425K\306v\262\025a\325M\\*UC1\030\254\215J2\335\264\017\363\020@=EZ\226\377\000u\3128~\n\361\3155=Ih\260\227\337\274\331\216\265v\t\210\224\036\n\223\214z\326\252z\221m\013\362<~i\210>F9\\\325x\356\314M\345\252\202\271\351Z\271X\312\327.G*\316\215\0160\307\241\252\215+%\323@s\362\2345l\245tb\321v\t\037q!\252;\275;M\324U\205\345\22423\036_o\314?\032\270\312\305\301\234\266\265\340\333\330f\222}-\322h\t\310\210\237\230{W;<R[\316\360N\215\033\257P\302\272\341;\242\232\033\317j1Z\\\213\006\005\030\252D\213\322\201\203M\260\024\017J(%\2060y\245\003\232b\260\270\024\271\305Rba\212LP\205aq\201J\240b\201\013\214\361F\001\351T+\000QN\332\000\240,U\215q\255F\304\014\210\311\316:S\274q!\217\341~\254\333\361\346\020\231\377\000\201\016*\242\364\034\212\237\017\241)\340\375.\"N]\330\223\365c^\217\'\337 \322{\031\313q\264\242\240HZQHaJ(\020\352\005H\013E\004\261M(\351R4-,`\264\250\240g,\005KvCDz\346\233}&\240\367\021D%\214\200\006\010\310\037J\312dh\211\023F\361\260=\031qN\023\213=\010;D\236\0142\206\034\212\263\030\255\3331\233&A\212I>`U\260A\352\010\254\324\2650\224\264+=\245\253\375\353h\376\240b\241:M\253\034\207\225\017\252\232\325Th\347r#:T\340b+\224oM\374TMg\251\247X\325\300\347\344`kUQ2nF^x\316%\267\225~\252j\336\225 \270\275T\031!F\343\305\023i\2414m7\nM2\000pOrk\201\2636\213\220\274v\266\323^Lq\034(]\217\240\003&\276x\216io\265)o\244@\036y\236g\366\004\223Z\341\315\243\242=\323\341\226\237\375\237\341\013u\316|\3663u\376\367O\323\025\321\327\237\211w\231\350\341\227\272\024W9\322\024P0\242\200\n(\020Q@0\242\200\n\r\002{\034g\306-@\332\370v+DfW\271\223\037/\240\347\371\342\274\326\301N\347\223\370\261\214\327\271\205\215\240yU\245\357\033\336\035\205O\357\031[\226\313}\005w>\024\210\371\222Ny\000ar+\\C\345\201\312\335\331\320\307\332\245\025\340Ks\327\303\255\002\212\223\254(\240\002\212\000(\240\017\026\024\342}k\253\251\320.i\033\"\223!\212(=}\251\264\026\017\255\'\030\317J\t\024\361I\273\034\032i\216\301Fz\014\322\030\356\335i\204\036\335i\264!\302\222\204S\020\3474\003HL\\\346\223\2652l\013\322\227\234Qa\2613\305\000\361L\020n4\224\204/4\231\301\246\026\027<b\220\347\034P!\t8\240{\323\270\30384\034\032.+\007\335\246\367\241\202\014\321\232w\023\020\234\232S\322\204\200N\324\n.\002\234R\032w\000\340\nPF9\305\010I\022\331\333\313u8\212\021\222z\223\320V\265\266\206\310\336e\304\350\370\350\253\\\325\353r\243H\304\276\322*q\264\014v\024\t\267q\332\274\257ivia\352\340\014\023OT\0141\3274\367\006\354\"\240@\321\216\207\250\247Go\032\214rs\353\332\232D6X\214\005\033p\010\307z\\\227|\001\322\256\302\271+4~^\3000@\347\351Q\333\205#(\331\246\221\2375\304\226s\021\301\035zb\253\263\310\3239\306\007\245\r\212\3014\311#\005\344q\203K\n\030\344\007\316$u\306)^\345$M4)+\t\363\226\246J\361\252\220\347\034`\324\264U\314\367\261\363c\3120\344\361\232\247$\027(\376R\247\357\007aY[R\254ni\272l\262\351\251q!\t7\367H\307z\264\261\371w1#`\252rq[(\275\314\333\320\206\306V}NI?\200\236\017\265,q\\\274\322Nv\205\335\306\343\324{V\317c(\246j\3511\222\014\357\270\036\212*\006\313^K+\202\t\354GJ\322;\022\320\365\220 2g\240\351VD\345#\031\034\236\270\241J\302H\261\005\326\3510\001\006\231\253\351\366:\245\277\223{\010l\364e\341\205o\tXI\352r\232\237\204\276\307i=\305\225\313\316\250>H\330s\357XW0\030\255\327z\225\220\342\272\241+\224\312\347\013\214\361\236\224\212A\000\346\266\2723\260\023K\332\230\230\n\\w\246H\003\232Z`\024v\246!E\024\n\302\232\007J\240\260\243\245(\340SB\260f\224\237\224\320\"\255\267\317\254\312A\341a\037\316\252\374Q\233\354\377\000\n\306\320\017\235|\251\317\342\177\245\013`\226\345\357\003F\027C\321!\301\005\266\237\317\232\356dl\271\317\2557\261\224\267\020S\252\000JQ@\256-(4\202\342\322\212@-\024\204\305\024\264\230\\QV4\325\337x\274}\321\232\312\247\302Tw5\350`\030a\200#\320\327\236\244\323\320\364\222\367N_\307\267\266^\037\322\243\276[%\222If\021\325}\007T\262\325\355\314\266\3134[p\030H\275+\325\244\234\251\335\236}z\234\214\3266\323\005\312\246\341\355PK\2248\221Y\017\373C\025\232\232\271\222\223\222\320@22\016i@\253\275\314\236\203\261J\253J\344\217\371\261\202M$h\201\367,j\033\030$\016i9\273\t\261\323p\207\024\350F\020T=\2112~\'^\177f\3749\324\244\016VI\320B\230\352K\034c\362\315x\327\207\355\336}B+h\323&LF\007L\223]\024t\215\315\326\307\321\2660\375\232\312\013~?u\032\247\036\303\0255yu\235\346\317R\202\264B\212\310\334(\240\002\212\000(\240AE\000\024P\001A\247\025vL\336\207\223\374[\277k\237\024\0130\344Eh\203 \0362F\177\302\271\330\221\204K\021\300g\376\265\364\024U\242\217\036\256\347W\242\306a\266U^X(\031\002\273\255\006\335a\323\220\340\206\177\230\203Yc%h\230\303Y\032IO\257\021\236\335\025\240QH\334(\240\002\212\000(\240\017\026\034\232^s\223]OSU\250\276\364f\201\201<R\006\246\205q\306\232pqR\320\305<\340\322\343<SHLk\003\214R/Ni\200\271\245V\3438\245\3144\2034\023LBQ\212\004\302\224\n,\002\236G\024\320x#\275U\304\031\315 \251cA\216\346\212i\t\2074\032\000)?\032\004\3034S\001\t\317J?\235\000!\034\321\220(H\002\221\217j`\003\326\227\"\232\320AHi\000\021\236\2254v\267\022A\347$d\246q\232\211>PJ\346\205\236\231\023\\/\235\272E\307\030\350\r[\217L\261\212RDE\320\216\214{\327\035\\E\236\206\252%\213o\261\300J@\242<\234\221RG+9}\250\333G\265pT\252\344h\221[P\r\362\260\217=\211\002\255C\002\010\360\331S\327\336\263\216\343\261\033F\270\340\236\264\353\211JG\2248\307P+x\2639\241\311<m\016\3659=\305K\021\337\020p~\242\251nf\306\274\343?/8\364\251\255\345b\374`\017z\273\352Kz\025\257\356\034\001$y\353\206\372TR\314`\002x\333\203\301\305\022v\"(\263m{\004\304p\003\240\357N\270\270\2069\026F\'\007\257\265Cw+`\270x\224\026\005\033\277\035\351\t\337(\332\010\030\355RRbGtQ\336\027\352\247#\212S\020\231|\326C\264\321q\330&\3140.\314m\3169\251m\214M9\nWz\365=\352V\205^\346\256\342!X\313\355\364\315B\360\200\371\335\201\334z\327JwFN6d\326\366\220\230\212\214\214\365\3052\345V(\0250X)\342\230\022\330\2634^c7\341\351Q\335\271\270q\265\206\017SMld\306\272\034\242\257>\265$J\375I\024\303\240\266\322\020\354x\343\247\275K\347\225V\332~c\320\372V\313c\036\245\273ve\214\016\240\365\317z\310\361.\213\r\364A\355\224%\302\267Bp\rk\t\330\264\231_\303^\036\212\331\315\316\240\213,\247\204\210\214\205\3675CZ\321t\353y.\357\224\223\034\234F\236\216z\342\255U\273)\234\364\226W\220\330}\265\355\244\026\371\300\220\361\232\217\031\301\256\250\3114f\342\300\320*\321,1\336\224PHR\203T+\330Ph#\232v\030v\240\320!zR\203\221T\230\202\234\017\313\307\341@\232\324\251f\337\3619\271<\022!\\\376u\233\361\224\225\370q\246\014\016u,\361\376\343\323[\004\264gG\341d\333\375\215\033.\n\306\204\217O\226\272\2679r}\350\350g-\300S\205K\004\007\255-\"B\224R\025\307\nZC\001J)\010Z\0075\"\334Z\277\242\2512I\'`\002\3265\237\272iI{\306\215\025\347\236\233\330\363_\215\327J\372\206\223\247\344\374\201\347q\372\017\344j\367\303\250J\350Q\273\250\314\2633~\031\257j\236\224\217\023\022\375\343\263\267\\\234\325\236\243\007\232\362\247\'s\267\t\004\342A-\235\264\215\226\210g\330\343\371T\022i\221\377\000\313)\031=\217\"\234k4kS\016\236\304\017cp\235\000\223\375\323\217\347Q\262<g\022#\'\326\272\025T\316\031\321q\020`\3649\251\021x\252l\346\222#\237>b/\255L\243\240\242[\022\2678\037\217\367\177\350zF\220\217\206yZ\341\307\265`\374&\260k\317\023Y\356\nDR\031\317\250\305t\307JgJ\350{\207z+\310\236\347\257I{\241EI\240QA!E\003aE\002\n(\000\242\200\nd\322$1<\322\034$jY\217\240\025\245%y#*\257\335<\027R\271}CT\236\355\344.\327\022\026<c\275Z\261I&\275D\030\351\220q\323\025\364\020\331#\312\231\331\3510nx\243\\\356b\006}\353\270\211v\000\207\260\305qc\237B)/x\231\005:\274\226{T\226\201E#P\242\200\n(\000\242\200<Xc\214v\245\317\025\324\2647\321\0009\024\231#\336\201\\\016\356\242\224s\311\245p\260\354\322\001\351L\004<\034f\200h\260XBri{P!\275)\335G\245M\207p4\207\232\261\013\320\365\244>\264\010BX\236zR\203Bc\002qI\232\004\301x\245\3150\020\232\007\250\240L3E6\002f\214\322\004%\031\342\230\230t\245n\224\002\023\214R\n\002\302\002s\212;\323A{\n\r\031\024\330\257q\005(<\320\204\320\350\306\347U\3167\034f\272\001\031\202$\267\316\025F>\265\303\213\235\215i\242E\017\n\231\024\022\265Z\336I\232V8v\030\351\212\363j;\263d[]>I\261#\237,\016v\260\353W\t\333\362\364\036\202\241 b6\306\003\216\206\233)\036[\026=\251\270\202e\0339^\342W\210.\n\214\3475?\222\342?\336\262\203\332\264J\304\275JRo\205\316x\'\247\275\020\335H\214Il\203BvfL~\235p\356\322.FA\317\326\255\375\245\n\253\003\267\261\315h\231\026%\264\231efD\000\372\203\336\226M>\t\310\014\356\253\236\211E\3564\254\023i\226\340\021\022\2727c\232\212K56\356\222H\304\343\212v\320\n:RN\373\3438\331\037\0315\241g8@Q\237\014;\036\365\t\214z\304%\223\316q\226\003\212\262fX\340\004\343\2461\212h\226\312\027\220\311u$\033\033j\202r}*}6\334\304\363\206\224\022\330\000\342\246\332\227\024Z\371\225v7\314;Uy\357\014dA?\004\234\243\016\303\336\2522\024\364E\350n\245\212\335X\262\221\236H\364\253;\204\312v\236\334\032\351\211\311\317\251ZY\215\272\030s\363\267\241\355O\212\3424\214)S\272\246O\224\321+\223Eq\033)WR\217\351RH\007\227\355Bb\223#M\271\300\253Q\"p[\235\2475\2471)\023\265\3046\377\0004\255\271\217E\035i\252D\316\322.C\036\336\224E\226\312Z\2028v\214H@\317$w\247\342\335a_\265\004d^\212\3035i\330\222\314\246\326\367Ox\256b\r\003\214\004#\371W+?\204\231l\335m\256\232K\202s\030#\n\243\336\272i\316\302N\3466\257\245\336i2F\227\246,\311\367v\032\251\214s\232\353\213\2722{\213\2368\242\255\"X\023B\236\324\305\270\001N\035:\323Aa\r-\002\016\334\322\251\342\201\210I\247\003\3051u*i\344\265\315\333`\0228\315e|mr\276\026\320mr\000y\332M\276\341\177\372\365Q\330R\334\354t\025\333\250\331\240\307\t\337\375\332\350\t\243\241\224\267\025N)\300\324\210QFqH\005\316iA\240V\026\224T\205\305\240R\001iE&!Eki\013\266\323\'\370\230\232\346\256\3647\243\361\026\250\256(\356w\317c\307\276#Ey\177\343\313\327H\331#\212\024\2166\223\2058\0318?S]\327\205\341T\323\355aB\255\2620N\017\265{m%KC\301\254\375\343\241\267\351SW\215=\317[\t\360\205\025\007XQE\311qL\216[xe \272\014\373qT\344EI\031\0278S\336\267\247&\3173\027ME]\025\327\346\272<}\321VaL\270\025\2738c\253<c\343\r\351\277\370\201u\030r\321ZB\220\246\007\001\271,?3]o\300\35396\335j\014\270_,B>\271\311\376\225\327-)\035I{\311\036\222:Q^;\334\365\240\255\020\242\221AE\000\024P\001E\001`\242\201\005\024\010+\234\370\231}\366\037\007]\225r\262\316\004Q\342\2720\312\3630\256\375\323\310,\220\253\251=Ts[^\033\211\232g\225\262T\234-{\321Z\236D\335\216\353\302\320\007\276,~e\210\023\237C]<|\365\257/\032\375\342\360\352\362\'\034\n+\315=\270l\024PXQ@\005\024\000Q@\036,6\223\220\016=\351[\035+\254\331\210\0174\037jW\020\240\361\315\003\245+\216\366\023\245\003&\204\205qx\351Hi\217p\240g\024\t\000\315)\240\006\214\nQM\016\340\324\003N\302\023\255\024\204\034\032C\327\024\3541q\212J\t\n\\q\305\000 \300<\322\232`&E!\245`\270\231\245\024\320\001\351H\001\247`A\212\005&\027\0234\200\346\231\"\321\201\214\320\330\354\010A\035\307\326\224\214\014\322\346V\013jn\370\177G\216\342\335n\356%\300o\272\200t\305k\315m\013\375\374\222:W\225\210\2373:c\033!\320\302\211\030PzQ\347G\021#\370\200\350\005sX\033\023\317W\2179\303T,\333\271\3056\210\276\244wr\030\202(=y\242Y8\013\353\326\246\345t\022\3124Y\231\324rF:\325\355\240\257 \037\250\253N\344\262\275\314\"B>^\001\252\367\032|\022)\021\222\204\373\320\311e+\213Y\354\327\316W\014\244\340\343\250\252\314\314\030\266I\031\347\332\247\231\241X\321\263\215\242_0\261%\377\000J\272^@\177vy\365\246\2446\210R\376\346\3322\256\003\276\356\t\364\253\205\304\316F\317,\343$\032\325;\242,E\344\303\014\254\301\312\253\016\207\326\252\335@\2626ap\315\212\206;\226\254\242\232\030\302\311(,\335\2078\251$\2104\241\213`\016\324&\026!\202M\262\314\t\343w\313\357[Z]\244q\206\226\347a~\313\236\237\375zL\322\010\257\254\312\276~\310\312\0029\302\216\225\227yl\227Q\345[d\300q\236\206\256\021\271\205i\352dE\251]iw\002\336\351?p\315\316z~\025\320[]\001\211c\301E<\363\301\025\321\006p\315\333SU\243\267\235V\343\313\334\31020z\212\2435\324L\341\225\016\365\3118\035)U\211\255)]\tmy\034\2623\221\270\221\214U\253YK3)\310\007\24051.\304\220\305\265[$\023\352*Q7\227l\310\253\272Lp}\352\2564\210m!d\220\311/\314\330\345\215][\205\215~c\214\360\000\352hL\273\017A\003H\\\241\334Gz\216]>\t%\0223>\000\373\271\340\325\'qI\0224JJ\214\343\035\205K\030\212\023\275\333\025\255\310H\3445\335?P\327\265\211\256\355\321R\010\327\nel\016=+\231\334\243\345c\206\035k\276\214\223Fr\200\341\300\245\3523]\t\231\330\017\"\201\300\305\002\330QI\322\251\003\027\265)\246H\204\322\255\000\031\247u\035(\032)\351\177r\355\363\311\220\217\312\262\2762\2173Q\360\315\221\037)\311?\211\002\232\330\207\271\334\350cv\256~U\375\334Y\007\364\255\212\247\261\022\334QN\035*H\001N\024\206\002\226\220\233\024R\322%\n)i\014\0058T\261\013\234\014\232\333\263]\226\221)\030\302\212\344\3043\253\016\265%\242\270\316\351+\242\013\270 \271C\025\314\021\314\207\263\256k?\376\021\3738\316\3739%\264o\366\033#\3625\327\014CJ\314\363g\207\346d\361&\245l~o.\351=\270j\260\267\261gl\241\241oG\025\234\355-Qt\233\245\241:\262\260\312\220G\265-b\325\216\350\315H(\244X\036\225E\316\341\232\326\226\347\233\215d\026\203!\233\324\325\230\335\"\0174\214\025#R\314O`:\327B\326G\004\026\247\315\363\336I\250j\327Z\234\214\314n.^P1\330\223^\355\360\262\312K/\010De\033M\303\264\300z\003\323\371W^#\335\246t\323\326gMEx\347\256\202\212\006\024P&\024P\001E\000\302\212\004\024P\000zW\232|k\276\337{a\246!\033c\006Y?\036\007\362\256\354\024o#\217\023+#\215\214\204\265,pI\'\004WO\341\270\nD\tPp:\223\334\327\262\217.l\356\2745\007\225`\322\237\275#w\364\255h\301\257\023\025+\310\337\r\035I\205\025\306{1\330(\240\240\242\200\n(\000\242\200<[\'\0314\002\t\256\273\0334\003\000\373P;\346\225\204(\"\223\035\250hv\270c\212\007\035\351\242E\2444\r\007j\001\024\212`O4\023L\221\000\247\014\nhBg\232J.\r\205\024 \0238\243\3374\t0\004f\203\315\003\023\236\224\244\340P\204\'^i{S$CA4\016\302qJ=\351\245p\020\361\326\202x\247q\\L\321\332\206\001GZCC\241\215\345\231a\211w;t\025\265a\246}\234\307$\354<\325\'\345\352+\226\275^Ti\030\222\352P}\255\260\273w\001\307\2753K\323\031U\305\342\000\254A\003\275s\373\177t\245\rM\264eX\202(\n\024qM,=k\225\276b\333#\235\300L\236\335)\211(q\270(\317\251\251\330\316L\216\342e\'\234/`i\226\322\002\3163\367i\275\010\213!\324eg\221\n\375\324\030\317\275H\266\227_\306T\223\323-P\343sT\31366\302%%\233\346=EXw\332\270<\n#\2402\t\245\375\337Z\244f\220\267\004\375*\2333\033\034\363I&\010\334\007\345W\243XS,\002\256y#\324\324\255F\264!\274\371\245\0066\033q\315B\263\024vRN\017CT\226\240\335\307}\245B~\363\004\216\365iY#P\316\331b8\346\255hM\310\267\211\030\253\262\260\035)\352\321\301\036\320\017\257J[\211\0143)m\300\225j\212\346\344$Y$\221\270\023J\366\013\232z\014Kst\327\n\027\313A\306GRjMjGg(\222yx\340\343\255&\3656\373&\023\031D\344\231\t\367\251\343\230\354\333 \005G\255tS8j\213\177c\004\320\025\231\331\342q\301nv\375*\215\240\226\302\310\302\354\034\014\362\275\307j\333\226\332\234\255\335\033\032>\252 \003,H\356+d\264\014\206X#\001\234s\362\363U/y\027FVf{%\272\335 \300W\034\000\243\251\253\310L0y\323\200\002\372\366\254\022:\233+\333^\304\363\371!\275\3114\262\337\252\315\210\320\024\351\270\367\241\264J.\007\023@\3038\310\355K`#I?xAa\367I\241jU\311$\221\221\212\356\014\355\316{\001Q\276\241\022\014\027$\017N\246\232\320rd\221^\243.Y\n\236\300\367\251\322e\220\022Tq\353\332\264\276\206i\3524\334,\230,\270A\351\320\323g\261\323\357\341h\256-a*z\020\240\021\370\326\224\346\320=\3163T\360\326\243d\323K\014b[Uo\335\201YL61V\300#\255zP\23723\224E\333\200I\350=i\271\007\245jCAA\306x\351M\022/j\001\3151\005\024\003\001\353J\030\002\t\240H\251\244\347\354\022\236\231\225\273V?\305C\346|K\320-\t;\005\254-\217r\355\376\025]\005\324\357\264\016u\033\202\016@\213\037\255k\003W\320\311\356(4\354\324\010U4\264\204-\024\204\365\034)E!$(\240R\030\242\235R\307a\361\014\310\203\031\371\205nF\333\227\212\343\304\035\024\035\245a\324W!\336!\0314\264\020\243\250P@#\004\003\365\246\235\207(&@\366\2216J\226\214\372\251\3055R\356%\342U\224z0\301\252M3\236T\334uC\276\324\024\2014o\037\271\351R\307,R\034$\212\307\320\032N%B\265\264bN\333b\'\360\2523\266\330\2168\343\025\2554p\342\346\233\320 ]\261(\3068\254\237\210\227\247N\360\016\253p\030+\274>R}[\345\376\265\275=dsSZ\334\361\r\n\031\036\352+hW.\340F\200u\311\364\257\2444\370~\315aoo\234\371Q\252~C\025\2661\3326:\350+\316\344\324W\226z\241E\000\024P\001E\000\024P\014(\240\220\242\201\007z\360\357\027\337\266\243\342\253\373\241\202\254\333#\343\215\253\307\364\257O\002\272\236~)\352A\014j\362\305\t\3163\317\322\273=* !\2160\203\'\217\316\275-\242\331\347\310\355\354\341\362m\242\207\373\212\001\372\325\270\353\302\256\357#\273\n\207\321\\\347\250\202\212\006\024P\001E\000\024P\007\2137ZA\326\272\3335\270\275x\244S\234\214\036)\005\200\014\034\322\223\212[\025a\247\"\227\034f\205\251\001\364\240\016*\254U\300\347\265 \003\024\230\013I\232\004.h<\323\000\3541HI\2410\000h\'\322\2305` \036\264\032\t\260\202\224\032v\001\t\305\035E+\205\200\340Q\364\240./Zi\342\230\000\245\317\024 cO=h\355@\232\020sFy\246\220\254(\245Dw`\261\251w\354\005D\245\312\213H\351tkh\254\355\203\264`\\0\371\211\355\355V\n+\237\234q\355^Ej\234\314\350HB\350\271^\001\354jD\220\260\313u\2549\2065\235\230\341G\313\353K#\251\300\213\357\0360i\301\221\";\262\311\031/\214{T\240 \267\\`\361\234\325\2312\206\250\300D\030\014\234\374\336\302\243\321\312\3154\233NA\\\212&(\226\277v\227\004d6:\323\030M$\245\314\247\333\232W\261v\'\215\313\374\214\343p\347\353O\236a\206\212C\200;\322\0065\026\'\221b\022)lt\007\2555\255\274\262\301[ \364>\225@\254>\335c\202,1\014s\317\025VI\212fG\341{{S\261-\231\367\367\014\277\274\215\362\240\366\357S\031\322H\301\217$z\036\324\256J+\334J\321\024|\002\231\344\036\3656\245t\236NF0\243 \037J\225&6\214\350\265\'\362\303\200\001\007\007\025\246\272\210h\2676\030c9\242\022\273%\217Y<\331\324)\306W8\2522\211.d\212\010\316\326\221\366\362x\034\3435m\\Q\334\357l\242\0266P\333!\014#\\\026\3655\211\254\315\t\224\235\371$\234V]N\251\374&+\314\352\333>R\235\275EI\r\302\371\2029>U=\017j\354\246y\365\021z\336M\262\371M\367Xp;TZ\325\244\346\304\230J\200\016YI\307\036\325\321k\243\216Z\0254X\235\247`\312\030\034g\232\353l\030\356\t\216)B\"N\306|\021M\006\270\3677m\204L\262c\243f\250\353\267W\0276\346\361\213\010\003\355D\365\367\254\245\243;V\250\223K\212xl\032\356X\360_\204S\351\353Z\213bE\206x/\367\211\364\254\255r\266\031i!2m$\354N\2656\367k\206\227\004``b\264\212%\262\246\251~\321D\212\210\305\244\343\221V\364\233\\\'\235s\314\204d/e\246\306L\263\207\233\311 \026\'\037J\261$\n\260\371j\304\372\363\31511\221\021\344\371>\\\214\007\033\273T\316\222\301\020\330A\000U-\201\022[\371\243,\322\206on\202\252j:.\227\250\334\t.a\"b0Y\016+Zu\032%\225\323\302\372tr\001\231\230\016\205\216@?J\345u\353I\355uy\222h\004`\234\307\264p\325\333F\2473&J\345\036\244\217N\264c5\324ga\017\245\034\372\320K\024Py4\300\001\342\233!\302\022y\240\010\364u\335\246\252\343\357H\335>\265\215\343\305\023|e\322#\376\355\234]\275\013\232\265\360\220\326\247}\341\334}\252\355\260\007\310\000\374\353N\253\241\223\334QJ:\324\203\034\264\265$\213J(\001sJ*@3J\264\010p\245\251cD\326\270\337\226\350\240\232\320\321\3452[\020\337yN+\222\272\2724\242\355\"\345\025\304z\235\002\212\0010\242\201\205\024\000\036F\0175\014\266\260\310\333\212\225oU8\252R\261\214\351)\0214&#\203#8<\215\307\245W\272\0311\306:\263V\360w<\212\321jD\335\353\201\370\371x#\321\364\2553\345>|\346V\007\321G\370\265oE^C\244r\237\n\254\315\347\212\254\366\253~\352o4\340q\200+\335\273\321\215z\330\354\303-B\212\363\317@(\240\002\212\000(\240\002\212\000(\240\220\242\202Y\233\342\253\363\246xv\366\371N\0328\316\317\367\217\003\371\327\207Y\307\271\207\314w\037\230\346\275\214\032\264\0176\276\254\326\321\341\rv\357\214\220\270\031=\353\270\360\375\270\222\375\027\222\027\004\234\365\305vU\322\007\004\267:\305\344\223\353S\3068\257\002\243\324\364\360\250u\025\221\351\005\024\000Q@\005\024\000Q@\036+\326\216\225\324n\326\242\251\311\342\220\223\272\213\203a\316y\244=j\032l\023\024\032:\361T\264$L\021\315\031\247q!A\355MnM\033\214P{R\342\200\334LR\364\024\000\325\340\322\261\355Hv\020P*\204\365\016\246\202x\3054\304&qK\216\364\300;SzqI\200\264\243\000PM\204\315\007\232\006%\031\246\002\002I\351JE\010. \344\320x4\\V-XYMz\314\260\262\256\337\274\315\322\267t\255>\033H\211\306\351[\3575p\342*\3647\204K\205F1H\312B\372W\234\315.W{r\352Nq\317zI\033bl\335\323\322\206\254\211\271\032\\nu\013\310\356\005<\244\202`\343\204\3174\242L\231\026\255)\017\263\370q\315?J\235>\302U\301 1\030\357N\372\231t*j,\031YA![\214zT\0321\362\255f\371\276`\330\037Jra\022\334\214\261,p\246\014\222\034\261\253\026@\227 \237\224\014\324\331\263D\311Q\341@e*\001<d\325vG\236wv8^\330\252J\302\221J9T\313\230\334\211P\363\364\253V\327\2060\306|\260\355GRK\004Gr\312\352\343j\363\357U/\356\027\r\022\362\030`\212\321Z\3042\025\323M\306\235\270;E!<g\246)4\2352\341&\230\311(`\243h\307CR\212E\263j\254b\212D!U\211\344u\251\245Kk\247&hU\266\361\212Li\r\333l\2214Q\301\022#\366U\2527\232t\013\023\313\0030\332\271\331\236\264h\211eX\347\017\014S\304\304l\0305\265\340\304Iu\t\247(\254\250;\216\206\233z\016\232\324\350\256f\001\010\332N}\005`\352\221\332\314\303\n\350\313\300\347\025\232M\233\317c*uH\030\253\253\344\364\'\2453\314@\273Xe\017z\353\244\254p\325&P\306/\226L\343\241=\252\314\223\311-\251K\236N\334\003\324\032\352\211\301Q\352.\224\255\026Yr\013\014\347\265oX\222\023>f\322{U\301jf\330\267\352\262\252\244\237uN~\265SPQ*\303n\241v\023\234(\351\\\265\325\244w\321~\351v\346X$\207\354\340\215\3108\007\265\026n\377\000f\3036\001\007\223R\213\271GGW[fyr\333\333\214\367\251\032\345\240y\033\203\350;P\231,w\332\014\353\034M\020,\307$\343\205\024\371\032@\255\005\260,\001\345\275*\2011\220\355Y[\311?u~f=\0057N\231\245\270v\337\362\251\345\301\340\324&\3566hE\250\305$\242(\016\364\035Z\237\177y\032\262 \313\021\367\261\332\265\276\202\270\301}n\"V\017\272L\341Qz\232\275\020y\034\tb\331\221\234\347\232q\r\311\266\230\234\200w/l\365\252:\245\235\236\253\017\225p\034m?+\257\014+hI\304[\031W~\036\323-\354\213-\274\322\270\004\002\030\344\3271yewe\n\311q\026\330\330\340\034\364\372\327u*\227\334\315\225\362\017 \321\232\3513\001\322\224\320\002{Tw\004,lI\340\003\232M\215\"M\0161\344Z\256\016\013g\365\254\035ZV\271\370\327\345\343\002\004@y\354#\315h\266!\356w\336\033\346\033\2311\202\\\n\323\025]\014\236\342\212Z\221\n\r-\"G\nQR\010)E\000/ZQHLQNSR\304\235\230\367;,\246\220p\331\n*m\nL\\\274}\212\344V5\025\3428\273L\331\024W\232z\361~\350\326<\323\201\315;\020\245\250QH\330(\240\002\212\004\366 \234\345\276\225S\357^g\240E\375k\242\033\0365wy\026#\\\270\257\032\370\315w\366\357\210-\010`R\312\335c\340\327V\031^C\202\2627\376\001\351\333Z\377\000R\313\021\201\n\347\246s\223^\241X\342\335\344vaV\201Eq\235\241E\000\024P\001E\000\024P \242\201\005!\241\021-\216\027\343M\351\217H\264\323\224\214\317!f\347\030\003\377\000\327\372W\236Z)H\336C\330`\037Z\3670\361\264\017.\253\324\350<5\007\356\343`\271g;\216k\274\360\304\033b\226b\006\342v\346\264\304\312\32097f\344b\246\035+\302\226\347\257\206Z\005\025\007hQ@\005\024\000Q@\005\024\001\342\212\010\353Js\212\3527b/&\227\246}\352I\020\003\216Nh<\212`\0358\243\334\322)\354\003\'\255\007\216\225H\220\000\036h=i\200\224\271\244\207`\006\214\344U\n\342R\003Hw\270\240\212O\255\002z\010\334R\203\305\002\270\002(RH4\333\020d\343\336\220\003@\330\246\233\212,H\243\245\024\024\'9\245\246 \351A\317j,!bC$\2025\031c\332\264\243\321\335\341\004\273\t\t\345{\n\302\255NTi\010\334\330\264\202;h\274\250\320\014u>\265g<v\257.s\346f\373!\207$\344\036*\270i\036`\271<\036\365\233d\\u\354\276T\\\036Mf\263\023\326\207\261\027\324\321\323!\362\324\357U\335\3247|R]\254\262L\360\300Cdg9\305(\241H\241`\r\3034o\234\201\214\232\267mo\035\261h\374\302\316F[=\253E\021t1\365I\3619S\215\275E&\237/\231\301\312\201\311\346\245\246Bc\305\317\233p\362(c\375\332\323\323\245?fy6\363\3374#DGs!kq\356{T\267\355%\256\232\200\001\272F\003\351E\2122\257\321\241\324-\331\021\200?{=\352[\234\354 rq\307\275\027\"\3046w\014bm\312\310\377\000N\264\272\024\221\\j^[\003\202\244\251=\310\251LMjo\231\003(V\355N\267#\313g\r\307j\265\251{\020\013\217\264\334\225\007\204\035=*9\243\362#wV\311<\232\224\265\006\364)J\376N\010rCt\245{\217,\023\221\312\367\245\'c3\n=\360\334\205\207\346\212f\003h\354Mz.\215h\226\032jB\212C\267.ORhF\264\320\315J\343\311\205\225AbGn\265\317\\\336\200\344\010\031\337\250\315i\000\250\310D\315/2!_@j\274\252\212\217$\217\261s\326\272\340pTdQO(\333$HDg\204\334>\377\000\341Z\022\t\323\013 +\2027q\353[\246q\3153J\327t1\264\'\240$\257\322\257\332\315\310\014\2705p\334\316\366&\225\225\244\000\216\010\307>\265\207\245\274\322k/\226a\030\310,{b\271\353\255N\332/CR\362%\236\"!`\322g\257\265:G\t\245\035\3226c\217\234v\254\2224l\307\206\366Y\301b\333cO\272\017\025a\347\037e\2062\271\226C\226\036\325-\331\205\215R\311\030V_\270{\324\2261yqK+\034\211[\240\364\255\023\270lQ\324!Cp`\204\225\205\006\\\347\251\254\211o\244\231\305\245\256E\272\236H\352\306\245\255G\271\271\247ZKol\276q\021\356\034\201\367\205Y\273\211\2325\264\265\033\032O\275#v\025I\211\242k[;k\035\257\031\337 \352\346\257E)\221\303\226\311\034\325\246>\203\342\230\231\037\316P\270\035s\3058\252\224\0011\317\245hgq\267{\326\335\222<3\0361\236\325\226\366\206\353\344\273\215\035\010\301\031\351ZFv\025\212:\327\206m\236\305\345\323W\312\221F\342\030\222\016+\221S\271C\n\355\243>dL\220\356\324\275\253\240\2018\252\332\216~\3076\007\360\365\364\244\306\215\r\rN\353\004\007\373\270\317z\344\364\351\r\317\306mZd\003\010X\036}\006*\272\n\332\236\223\341\300\006\230\355\317\3151\376U~\2659\333\324Z*\004(\247f\220\230\240\322\203HB\232QH\030R\212@-8T\261\r\325$)km\037\0379.\177\n]6]\22716\354\014\340\322\224}\302W\304t\202\212\362^\347\257\007\356\220H\330b=)\321\2705v\320\343U-2PsEfz\021wAE\005\005\024\023-\212\362\034\271>\246\253Za\232I:\356n+\242;\036=]d[\207\001\262p\000\344\346\276o\324\357\006\241\255\352\032\231;V\342\345\337\360\256\314*\352V\321=\257\341\025\213\331x&\r\350Q\247v\233\007\322\272\272\342\304;\314\356\303/t(\254\016\240\242\200\n(\000\242\200\n(\023\n(\020\206\220\362@\252\202\2730\250\354\217 \370\235{\366\337\031\\F\247tv\250\261\212\310\214\017*8\327\3577j\372\nj\321G\2279\035^\205o\345\300pv\344rMw:\\^U\214K\216\253\270\326\030\307ec\010\353\"\374B\245\257\032G\267\207VAEI\322\024P\001E\000\024P\001E\000x\2514\234\327S6\222\324\006Gj\010\315$\t\n\007\035i\016GJo@HS\234q\326\233\317C\326\221A\232?\032h\226\034\201\315/\030\365\246\220Xoz\007ZB\270\264\2075H\003\245!\244\002\201\351I\315\010m\334Q\323\232Bp)\262E\242\200B\022H\240S\027Qr\000\311\246\222\240\022X\014R\270\354\031\036\243\004q@\004\344\212\023\2704\031\2434\356 <\3202X\001\311=\005\r\331\002Wf\316\215\246\225e\270\231\200l}\337J\331@k\312\304T\273:c\033 l \3115\004\322\222\244D\3035\312\201\213g\3462\025f\004\320\331Yw)\316;\322\265\310eMD\263H\235H\357L\262P\356T\014\266x\315\r\330Ijk\316\313m\n\356\373\304t\250\032h\342\226<\020\014\235\307J\270\023)\ru\215&.\020#\023\223\350k ]\237\355Y\220g>\347\255V\3046e\3532\035\304\216\017bj\230\2726\366\217\316\013\361\377\000\352\252 \332\260d\026P\024\030,\231\367\253\200\221\0262@n\325\225\315\243\251<rD\220\240\330\013\016\247\024\335B\3566\215<\303\3009\024\271\212n\305yn\222wH\224n-\323\212\265\035\243\307\0213&\000\034s\232\026\244\224ndW\270\205Cm\330qUl/`\217\304sF\240$m\302\221\375\354t\244\220\032\205\330\027\316}\315,\363\2646\360E\202K\367\241]\003$\323\"\362fuRK?\031\366\254\375OR\362uSl\353\230\272\026\315TI\223\"\275c\344d0\302r\rS\236\340\022\200\2709\034\n\211\010\323\360>\235\035\356\245-\325\311&81\261A\352}k\261\271\271A&\304V q\232\023:`\254\214\215Na\270\254Q\263\261\357\236+\"\356\346\3460\177s\036q\330V\3201\250\3123\334\312p\316\343=\360*\025Yn]\r\306\343l>c\221\215\325\321\027dqI]\233\376\036_\266\335\033\311cQ\004\037*.8\006\265f\264\215\\+\022\333\276g\315oM\\\302\265\222\026x\"\236\334\317\031\nG\313Ldt\207td3\217\341=\353\246\326G\032wf5\346\257\276X\343\344`\235\306\256i\356\222\242J\204\356\335\310\365\256)\312\354\357\247\242.M\277d\206\325\302\313\214b\253\331^\030\254\335\256#-\217\224\356\035j\032);\214\373\025\275\312\305\"\002\203\251\003\200jqb!inZ@\300.\027\332\242\3274OB\031n\274\311\"\266\022\020\277y\275\205Z\277\3257H\226\3600\334q\300\037\245ZV!\352>H\030D\240\2343\034\271\250\305\255\2247\261\314\221\240e\350\001\340\237ZR\330\322%\343u\373\305\022\362\017\351R\371\212U\31208^\032\234\tdqe\340 0\336\335I<\032\225|\310@ \344t\353\326\251\356&\364%\324\325\256\254YV@\214\010 z\373U[9\331\001\210K\271\261\301\364\255o\241\212\334\266\236z\377\000\253a&z\234Rl\236\"\273CH\t\347\002\204U\231r\335\303\0344e\000\352\033\275rz\327\206\356\343\226k\253EIcy\tT^\010\037J\351\243;\025c\237|\306\305%VV\034\020A\245\344W\240\245s6\254 \025WR?\350\262\202x+\326\206(\232\272\010&\372\3038\000\025\376U\305x,\207\370\227\3429\266\016\'\237\007\323\367\206\253\2417\324\364\377\000\017\014h\353\236I\225\215]\350kS\231\356:\212\2261ijD(\2454\206(\245\240\226\024\264\2048S\206{T1\224\265\271\203j\342,\020!\214/\342y\247[\260#\203[8\373\2043\251\262\220\313k\034\207\251Q\232\226\274J\212\322=J.\360+\\\214I\237^i\221\266\rh\265G\233Q\332\241f3O\254Y\351\321\225\320QH\350\nG8Ri\243:\216\321)\334I\262\027r3\201Ij\273m\343\035\361\223]\013Dx\362w\221\231\343\353\363\246x\027V\274_\274 (\274\343\226\371G\363\257\n\322\354%\222H\355\321\025\203.\3203\334\327v\035Z\027.N\352\307\321\332\\\006\327K\265\2658\314P\252\034{\000*\305y\225]\344\317J\202\264B\212\314\334(\240\002\212\000(\240\002\212\000(\240\226\006\240\276\270\216\316\316{\311~\3441\227?\200\255h\253\311\034\325\266<\025\346{\313\311\257\037!\246\220\273g\334\325\3556#-\374d\220\025k\337\207C\313\231\333\350po\362\241\3109`\rv1\200\000Q\330b\270q\262\324\316\222\274\213(0)\325\3453\336\244\254\202\212F\241E\000\024P\001E\000\024\264\322\273&N\310\361a\033rDo\216\331\024m \205\332\300\237j\352:\236\241\264\347\225?\225\014\033\323\037Q\212\224\311n\301\214\340`\323H\303`\203\217\245)j4\030\303u\310\244\310=\350\275\220\206\2223\214\216)X`\343\275R\330\030\255\307S@\306;P\002\022:dQ\355LIj \316iM\013A\261\0004\205y\245a\013\203\2120qLV\020\003Jy\352)\240`x\244\353\316)\014F\316x\245@K\001\216h\271%\375\016\323\316\273K\211\201\026\350\370`GS]r\350ztWM:\302\214\t\345O \327%j\226z\033A!.\264\233\'\262ku\267\215@\311\217\013\322\271_\354\371\255ti\356Y\031[pT\r\307\031\346\235)\212f`B\0200V+\323v8\240\n\352\213\271\220c\322\266\364m8\254kq0\303\036\212GJ\307\021S\226&\220W5\341X\334\021\310+\372\322\315<v\345C!\347\241\025\3457sw\242#\221\303\014\203\221P*D\037 \025\365\305B!\223\306\251\030\334\033 \373R=\314j>R\016z\343\265hCc6$\317\2753\223\326\237\025\272\333\314e\031\334G\255-\302\372\020\\\310\035\266\234\364\252\267*\337eI\017\335\'\036\364&d\320\232\265\313*\304\245\317\270\002\262K\257\332\032e\352G5}\t#6\363\352\027\0024#\236\347\322\252x\263O\362!\216\033w\335\345\223\272\236\345X\327\360\205\235\317\331m\247\223\002//\200z\346\256I \010Kv5\235\215\021\017\236\r\273I\307^*\0338g\324f\301;\"\034o\305M\256;\\\327\263\323\022\315\326o0\312\343\201\221\302\325\273\230\211\267x\321\211g\340{U\245`\271\r\236\237km\203*,\262\367c\320U\023\240X\315}\347\242m\335(s\311\365\244\364\025\315k\237\263#\204\030\031\351\236\365B\376\027\271\273\267\2168\302\010\362I=\010\250l\033\271e\374\253E\336O\335\030\372\232\341\374L\262\305\254\311+\037\335\312\240\202:\003\351T\327\272g!-u0t\327\212S\227C\2059\352*\013y\r\301\201PfB\330\332\007&\243\240Gs\325<?i\036\237\244\307\017\222\212\3142\304.\t\372\322^\024\347i \236\270\240\354\331\030\272\214\357\270%\252\023\203\3635c\317\366\211\035\301c\222kxX\343\251\253\013KH\214\201\356\233\003\262\023\326\255J\005\325\334pB\273S\241\364\307\265ok\230KCz\313\312\212\305\355\341P\241\010\355\326\254\312\373\341,F\002\375\343\350\005vRVG\005y\\\316\260\274\212Q,h\304\202w\016;\325O\021_\2642D m\222*\356\317\256kI=\014)\356sWW~a\313\005Q\222X\216\346\266|;z\205C\026\034\361\203\\\017s\266\372\032zc\311\366\331\231\306\026<\236;\346\247\231\"\273\267>f\340T\356!M6\212\214\213)$\021\332\204\003\313\302\343\236\265\227{!6Lf\2711\304\247\363\366\247k\"\271\265)i\223\017)\247)\271\245`\261\212\350\205\245\265\237\227\210\320\314?\217\275Av!\325\2470Z3d\2278\000\372T:1X\207\237q\226v\344\017\356\322\220\342-\326\247\014\223\204\211p\213\324\221\311\251\242\275\311H\212yp\236r\335\350Be\253\'\017\037\232\000\010\033\000S\355\314\222\3373\0316\306\203\345_SV\230\232-y\312\327AJ\375\321\222MW\026\360O|\355\034\241PrTU\333C=\231\247n\201\027i`\t\350)\321\314\230`\034ez\214\323E\\\200\334(\237\017\"\347\334\325\225n7\006\374\251\247f6\364\031ymo}\003Er\212\352\335\361\310\2563\304\332*\351\2429m\336i!$\253n\031\256\3523\"\3671\311\035\252\226\246ql\300u<W[\324\225\271\271\240\200/\340\300\037 \007\364\256\027\341\263\254\336#\361%\340\034<\314G\321\235\215_C>\247\250\350\003n\217\020=\331\217\353W1\315hb\325\305\024\352\226J\024s@\353R\014u\006\2200\036\364\352\002\301J)\010p\251mF\351\320\017^jDs\263\\y\372\205\304\340\3444\207\037A\300\253\266\255]M{\204H\350\364\tA\2641\222r\215ZU\341WV\221\350\341\245x\220\335\005+\223\326\240\003\024\341\261\307\210^\3714F\246\007\"\263\222:\360\322\320Z*\016\333\205P\271\272x\234\245\312\205\214\375\326\002\265\247\033\263\217\025;-\n\367\323G$Q\307\024\252\373\334\016\r[<\034t\255\345\033#\314R\324\341\276:\335\371~\036\323\364\374\200n.7\237\242\217\361\"\271?\206\226)u\342\033\005U- \270\363X\236\312\274\327u5jf\353[\036\343Ex\363\370\231\352\323V\210QRh\024P\001E\000\024P&\024P\001A\240\226!\256W\342\276\240,\274\037,C\033\356\230D9\355\324\377\000/\326\272p\261\274\316J\362\320\362\233l.H^\002\367\255\177\016G\231\363\214\226;\263\354+\335\202<\351\263\320|)\01024\300p\200\340\343\271\256\205\0079\257+\030\375\340\240\256\311\327\245-y\307\271Mh\024PXQ@\005\024\000Q@\005R\326/\005\245\261\300%\333\246\017J\326\214o$s\327\235\242y\n\353P\224$\312\316\271\340\221\212x\327 \330q(\343\266\336\225\253;n/\366\304#\370\243\307\2558j\260\267Y\"a\216\231\241D.=uH\273\230pG\256)?\264\243\340\206\211G\361sN\302lr\352\026\241\366\260\204n<\035\302\233\366\353bJ\274Q\225\007\206\310&\213\rH|w\226\354\301LQ\234\362\t\"\224\334Z\261!\240\215\217\324S[\016\340\327v\244|\326\340\343\247CHn\254\231\266\213e\367\342\2206+Mdd\310\203$\365\300\030\024\214\326D\220##=\375(\035\305\315\201\340\306q\217ZE\373\001\007ll\247\353CW\022a\267N\037y\244\007\330\346\200\232Q`KL\t\372\320\220\256\0334\254\374\267\022\214\014\221\317\370P\260\351\270\377\000\217\251\206{\377\000\221M\225p\020i\3078\273\233#\324\177\365\251\306\327O\007?k\220{g\212\021-\2156\272qp>\332\344\212p\262\2639T\277\344\362wb\201!\255en\024cPA\223\334\n\275\246\351\266\303\017$\206G\352\214:VU\035\221QW6\327\3131\354*\000\343\240\251\236}\253\264\034\3765\347T\225\306\335\211\336\347\345\362\307\336\"\253\334\331\213\304\215%m\221)\311\\rh\214\354%\251\227\254\351:\215\302\254Z}\242\307\010<\344\3435\220\372-\364n\004\215\002\372\344\327}*\212\303p\026\r\032\361\237,\321\000\274\202\2479\255\343\270*\0022@\301\305qb\247\314\354k\017u\r\363\32121\315FJ\\\017\230t\256]\2307p(\250\273W8\355PHL|\36644E\312\2174\221J7\022\321\237\314S\343\222\031\0136J\221Bd\262\315\225\300G#\223\307\024\346\273\375\351V<\367\366\252H\206\306\312\312\362(8\004\361\322\263\365\233\240\257\035\2721\010\243$\212,L\231\233\250\317=\314\013\034;\231\330\341q\311\247x~\322\356k\277.\352\031\"\n>vu\306j[\034bu0${\322(\0218\030\030\035*\206\243\243\314\367&R\252\337\336Q\334U\247d]\211Z\342G?g\212&\033W\356\252\363X\227\362\310\220\006*\312\254p3\336\245\261\223\370z\320\336\242\227\336-\371\344\034\022kjQ\025\225\232\307\022\354\215N\0055\033\003d2\334\266\3449\371H\350)a\273o8\261<zU\2436\304\236bP\310d\030\034\325[MMM\313\242\261\351\301\317Zn$\363\014{\242\372\214{\234\225A\223\232\263>\241\032\251*H\365\366\250\262\271M\350U\232\360I7\314w)<\023\336\271\275kU\225\257\036\017%\02601\2223\272\253\227C>k\2639#2)}\276P\035I\350kk\3006O.\267\366\207 \305\037\334#\2515\205\3656\206\347\245\273\306>m\305}\211\252\027\363\227P\221a?\274\304u\244n\331\221q*D\013\002\030\203T$\231p\\\202\\\234\343\265tB\',\3442\tQ\231\245\231\025UG\\\347\362\251\024\263\\\303:\222\210\010 \017J\350\201\3159hj\332K,\223\250C\301<\373\325\255vY \322\000U\0009!\376\225\333Oc\317\252\356\314\030g\026\261\2022wTmo\025\364\345\344\236M\330\306*g.\201\004gk\032x\266d\221\03449\371\301\340\212\216\326q\022\225\215\225\273\342\271\244\215\257\241\273\241<\316\201\231\271\357\356*\335\325\330\267\272,\275q\363\n\244\202\344\366\221\213\310\332\342\356F\215q\234\003\203\212\302\212\306\377\000W\221\344YV8\024\341wg\006\245\233E\032z\025\263[\352\017qu\264Gj\273#Px\25377\215$\246_\300Vf\255\205\242\375\241\304\327G\020\247!\177\274jmF\342\017\263\264\2120\347\205Q\336\206\t\214\323m!\t\347](.F@\'\245[\273k#n\321\220^C\367q\332\245j\212\021$1Z\371i\200\340p=*[)\325\2438\004J\243\212\322(\316R\021\256\212\314\220\220\306F\344\344SQ\326)\214\305\211>\325\257C-\315\030\256f\227\375a\\c\214T\226\253n\315\220\317\327\232W\270\304\231lm\235\211\220\273?8#\245I\014\350S\367g5V)\275\007Cv\205\210\n\334\034\032\222\341\225\225\221p\350\343\004\036Ek\tX\213\234\364\336\024\266y\032E\277x\225\272.:\032\300\361\'\207/l\340k\205\236)\255\321\206O\"\272#V\356\306\232X\223D*\263\3150?v,\327\021\360\240\177\304\267S\230\250\313\3109\374\353\271js\265\271\352\332jl\322\355\177\353\236jpkV`\205\354}\251\302\245\203\014\322\360y\244&(<R\212Ap\035ii\005\303<\323\205!n(\247I)\267\261\271\271S\203\024,\300\373\343\212]A\034\235\231\001\024g\234V\255\263\360\t\256\275\342L\221\271\240L~\320\311\374.3\370\212\335S^.*6\221\321\206\225\264+jnc\267,*\013y7\2409\315(G\3359\361\017\337&F\301\251\342u<g\006\263\2325\303\324W%\024V\'\250\225\320b\253_\333\244\310\001\316E]9Y\234\370\230^&t\232g\357\025\343\225T\203\237\273Vc[\205\300r$\367\003\025\326\352)\036W-\216?\342\'\2045\037\022\353+w\r\334\020\254P\210\341Y\017|\344\364\372\376\225k\341\317\204\256\264\rF[\233\311m\334\371[\027\312\'\256y<\327L\252\245N\306\264\345\255\216\334Q^K\334\366 \364\n)\026\024P\001E\000\024P+\205\024\003aA\240\2061\316\005y\227\305\353\311o5\233{\033x\332D\265M\354W\234\223\377\000\326\305z\030(\336G\235\210\225\331\313-\274\213\n\006\215\325\245\350\010\305tz\025\261\216\025Lm `\221^\272\320\342\223\271\335\370z5\217N\3343\226n\236\325\253\rx\270\227y\033a\267&\024W\021\355G`\242\202\202\212\000(\240\002\203\300\346\232&N\310\317{\251\006N\007=\005C-\333JV/)z\344\367\256\270B\312\347\2356\333<\255\264\233\"AX\212\343\320\361H\332E\251\344.\334\365\0243\332\345\003\244X\201\210\303\216=i\215\241Ym\003|\203>\235\250L|\242\235\022\320\252\362\331\365\035\251?\261\355\325\260\254\307?y\232\225\356\034\244c@\266\332\177z\313\203\332\204\321\"\310\331#\200\275\317zh\227\024\017\241\301\214\t\335\262r{S\033A\\c\355.\271\367\240\256QN\204T\251K\266\307\245#\350\305T\201v\344\343\326\2304F\232$\301\263\366\302A\347\006\234\232<\333I[\2228\343\332\225\211\344b\035&\357p\331v\010\356rsK.\233x\304m\271|\377\000v\230X?\262\365\r\301D\340\0023\234\362)\036\307Q^\005\306}\350\270\271Dk-UTb`\240\177\027ZE\262\325\235p%W\3649\305\003q`mu~#\363\006\356\374\322\265\276\257\023\025i\025\200\031\300\301\245bl4&\260\016\n\201\236\234sK\"\352\370\371\242U\000\372\014\323\004\213\026V\332\254\323\210\244X\2200\310\'\265u\366\026\355mb\210\316\256\301z\201\\\230\231YX\264\254\212\362]:\223\330\323\245\234\310\250W\250<\346\274\353\231=\311\242u2fYX7\246kJ9m\332>\'\003\035A<\320\235\315\024\222\'\027qF\2033\003\350\003sU\257\244\212\341J2\202\275\275\252\343&\215\024\323+p\213\201\300\364\250\244g+\362\340\032\312R\324\266\2643\357\347`\304J\270a\216\235\352[I\320Z\256\016\033\251\251\352f\331\004\367\001\333\000\3629\024\346\273/\020\014\000\252\334\315\262\t\376x\211\031\351\326\210\006cP\203q#\322\225\354WA\310&\206\345\221\361\270\001\201U\357\245d\271\371\262\017S\212h\316C\243\270f}\331\310\002\242\216\314_]\346BB\223\363\020z\017J\233\260\214nt60\331\305\030\362\240\214,|)\307?\2355\204\363>\305S\264\236\264\354k\261=\305\304Zt\n\021U\344<\023\353T\027Ui$\302\260l\034\021\212\273hf\345v[\027Km\0138\373\344\363\236\365\205\342\005}B\336<(\014\257\273\216\343\322\204\213L\326\267\305\245\214Q\306\241B\201\332\253\336\313\346DK\236\007&\265Q\271\023e\022\373\224\025=:Tw2\230\312\234r\337\245M\254C\034\263+D\305\217B\005Xh\355\323\005!@Tpq\315=\304Cq\013F\031\212cw \373VRJ>v9*M>]Il]Zan#\\c\3375\202m\356o&,\316\031]\371$\363U%\241\232\334~\252\305d0)\302!\0331\337\212\355\374\tn\326Z4{\220\007\220nl\216k\236I#\256\221\2773\001\030b\t\031\355Yw\223M$\246$\215\266\036\370\376\265\021\334\326L\252\366\355\235\322\262F\236\207\255S\2719\223\030\005q\307\275t\300\342\252\312\316\302Y\326\321#P[\203\317J\322T\013\022\306\177\204`\032\336\013S\236\177\tgKvK\215\313\216G4\317\021\336\237\263\307l\271\303\222O\240\256\270\350\216\031ns\227\267\036Y_5\302\246;\324)x\036,\3030\336\017\004\032\306KSE\261v\336f\325]U\302\251\003\022\372\032\222\317Bwy\246i\202D>\342\257\\\324ni\0048\335\265\242\005\\\2530\300\343\255OhVv\014\353\221\334\320.\246\224\362\275\315\257\221\n\025W\302\226\364\002\243W\270u6\272h\013\024c\005\372\017\302\203x\226\014\002\326\315V\346BY\306H\034\223TQ^y\202`\307\030<\347\255CE\242\315\355\3346\326\340pODA\336\250\303;4\245\244\371\244a\200\007AI\3543b!\2761\271\262@\353\351Um\314P\\>\033vO&\245h4\313\261\313\003\220\356Y@\251\026e\001\245\207f\376\200\021Z\305\031M\224ZI#\272c3\027\230\365#\265M-\312\254\n\020\035\344\367\247bnO\034\357\010Yx]\336\265f\322\347p$?\313N(\227\"l\305(\033\376l\323\336\027U\r\013\354\003\202*\231P\324\261\r\261\013\271\330\256\356\346\225\333\311\371I\317\245\t\215\253\016\2260\352\016\177\032\251\253\330\033\255.hQ<\327#\201\273\034\326\264\276\"N>\355\'\323\364MfY!x\336\033\031\030f\271?\205\213\263\302w/\236^^\277\200\257Z$H\365X>[8\027\030\002%\376T\361\322\264f\010QJ*X\300S\261\305\"l(\242\220\013\326\227\265 \265\304\024\352\031#\252\217\213f6\376\031d\034\033\231\226,\373u\376\225+q\255\316z\335\272`\366\255+G\371y\256\310\354)\243SO\233\313\2367\317F\031\372WP\254;t\257/\031\035EN\\\254\257\253\035\332t\270\352\006k?N\223\020\216\325\024\343\356\231\327ww/F\371\\\232F\223\007\212\216S5+\022Ct\352@`\030U\270\245I\007\312\334\372w\254gN\307\245\206\304tc\351\037\245d\216\332\232\304\204\216i@\002\264\271\347\270\220L\006\342qO\266\0005[z\034\360_\274-\016\224W9\354\307`\242\202\302\212\006\024P\001E\002\260Q@X(#4\t\241\254\200\326N\245\241iW\314\3155\271I\017\374\264\215\260k\246\205g\006y\330\212v1o<#(;\254u\005\220\016\221\316\275>\206\262\332\303T\322\371\272\263p\201\262]~e?\210\351^\275<Lf\254\316)A\263wD\326l\376\312!ee#\221\212\334\263\271\206eV\212@\331\355\336\270q\024\265\272\n2\345\221tt\242\274\346\254{\264\335\320QH\260\242\200\n(\000\250\257_\313\265w\000\223\216\202\252\n\354\316\246\306\034\2271\347\205|\216\264\3352\3529\356\300\n\371\364\305z|\226\211\300\331\303\251\247\021\221\\\307\272\"\000\0061\315!\r\334\324\275\004\000P};\323\030\200\035\3373q\330R\236\016(\025\204\310\034c&\220\356<\201\232\006\003#\255#u\351E\304.7}\352\\qMj\002\014-&[v\354SbB\306O>\264\230\001\210#4\206\014\247\241\340zQ\333\000`R@\304\003\034\232T89\356j\200V\372\363L \361\236\324\220\213\026k\231G8\344v\255\314(]\200\340W\016(\276\206D\240\231\330z\034S\032R\252T\014\340\327\0020c\243\227\345\335\3154\310\317?\227\310\310\316GJ\321#&\311RA\033o\030\'\030\251\022\341\302\263\2268\253H\024\265,3\271\205I<\343\232\210\335\005e\\n\'\212\346\250\265:\343-\nZ\251`\312\307\243d\032\253\034\254\252\020.\357\245e\031j&\210\335\330\317\362\347-\201\212\327\260\323\\(38\031=:\342\267\345&\304\223\304\203\367A~A\351N\013\034*\251\022m\372\n\224;\225\241\263\270}I\347y1\037l\324\315m\025\274\306\346Is+t\253\350L\226\205vd2\022QG\265[\260\267\0066r<\260\307#\212\222\242\264/O\344\303\032F\207\234Ug\2731t\307\002\256(\316L\313\232i.nwHs\217N\202\241\264\362\315\374\204\222\210\235\375\352\310H\273r\376pR\01089\030\350i\344!u*0z\375\r;\025rK\231\001A\276\251\\e\342dQ\235\303\024\342\311\222\271Z\306\031\026s\034\252\333q\221\201\305Kw\014R*\006\340\006\347\025)\216\304\027\326\245-g\'\256\337\226\235\2463\311\032K#eJ\343\031\364\242\372\211#Z\373\023[$jp\001\004\326v\263al\220\307=\262\342F8(\017\r\357Z\211\2437W\3205{\270\304\242\001\265r\300n\344\324zN\213yg\247\375\266\354(\007\237/\373\225*\367\027*CE\275\274q\231\245\211ZI\017\003\322\272\277\017\211\033L\214\310\0338\357YT\261\2756_\2320\320\024W\331\351\232\250\337\273M\214\331#\365\254\342\\\236\205+\327\204\034n\r!\353\236\325\2258,\304\344\005\365\025\327\025\241\301U\335\222xybF\275\273\224g\000\010\313~9\376\225%\304\3735(`nT\305\270\237z\326\233\261\225M\211`\271\371X(\001\261\336\262\320\335^\353\226\260\310\035a^pG\006\267\347\320\345P\273\271?\211\340\200\335\333D\360\256\025Kdq\237j\312\270\322b\212\302K\325\017\366\206#b\257\335\004\237J\316N\345\244lY\351\306\316\331e.D\362\000\\\016{V\335\202\260\265We\3327w\244\267-\350\212\336&\216+\235;$\000\361\235\312}k\036\315\300U\031\302\021\200)\263#B\033\321\034aKaGA\334\325\313I\314\215\210\206\001\034\217JF\251\221\337^\004\205\235\n\274\303\214\221\234\n\202\333\317\231\003\261\345\273\326r\221\254S&\212\31219\226Hd\225\261\301n\202\255yq\222\025\221W\036\202\245;\2322\255\300\275\363\2328c\304}\216q\221U\256\234\3338Y\010$\364\013L\315\312\303~\322\362\344&T\n\265k1@\033\251\036\265\2422\223$\270\324-\242!\230\"\267\\\223\311\252\027z\211\270o\2216+\017\224\260\353\357Ub/r\325\240y\0003\3341Q\367W<\n\322\226Hb\2651\300\001f\365\251W*\326EX\357\212\310\254\307\014\247\241<V\245\246\242\256\024\266U\211\343\214\212w\0103Y\247w\332$e>\324\217\205l\234c\324\325\"\333 {\203\0330\335\271Ojx\234\2142\036+H\255L\234\216o\307)u/\207u\331Dn\313%\214\212\201W\276\334W\023\360\336\"\236\rX\331J\267\232\333\201\340\203^\2359^\303\265\342z~\000\215\024v@?J\000\305t\030\216\024\003H\233\216\024\271\251\030\264f\221,QKH}\004\3058P\035\005\003\232\346~)\335\354:^\234\223\024`\255p\303\373\325=G\005v`\351W\370a\014\344g<\034\326\375\263\355 \177:\351\247+\205EcN&\310<\361\212\351\354\246\363-\"l\362\024\003\365\256l\\ns\275\004\276.\3667\021\306q#Dv\375k\237\322nd\373(\016\333\210\352j(F\361%\273\243R\031\262\265&\374\324J6d$(jz\271\030 \220k7\033\224\235\211\341\275e\307\2307\016\370\353V\326h\345\037#\003\355\336\271\247N\307},E\325\230\032\000\250+r)G\315N\267\003vj\236\306\020^\371`t\242\261=x\205\024\014(\240\002\212\006\024P\001E\000\024P\000zTL9\252\211\313]\\LS\320\221\336\253\231\255\214#\013\262\275\346\231av\333\347\266B\377\000\336\034\037\314U\031t\005V\335kr\311\354\343?\255m\014C\331\225<*z\241\361\266\257j6\262\t\320\177\020\344\237\353Vm\365(\344;]\n\260\353JqR\325\031\306r\244\354\313i,m\2140\311\355N\256v\254wB\252\222\n)\032\205\024\000UMX\203\n\306I\033\216x\366\255)|FUv0\245\217\312f+\234g\255?Ix\241\220\315!\n9\033\253\325wq<\371h\216#\000\217Jw\033pI\256\024{\303s\236\007\024\343\300\246P\336\247\031\344\364\245\376\037CH\221\027=M:\202\256!\353\3061Lf9\000\n\004.p(\306\0274\000\016\224d\021\351@\304\343\0314o\354\005;\222\305\007\277z7s\2229\247q6\033\263A\004\374\331\340R\0300\004psM\004w\246M\305\'\002\227\201\3114\2543CG\3730\1776yv\036\313\212\275wq\001\205\220\034\221\312\232\3631M\336\305\267\241\226\203l\254\307\346\335\323\236\225\004\356\213\301#\'\265rE\030\261!\223\314\223b\221M\206Q+\020\200\326\360\324\302E\313H\225\327{\214\205\341E\016<\300\001\030\031\315ia\"x\210W,\343r\340\000*\033\270q\"4!\216[\247\245s\316\'M66tw\271+*|\235E9#E\227z\240R\006\005s%fj\3136\360\302\n\310\361+?bGJ\222\352p\214;\003[\363Y\020\306Z\306\362\240\220\220\252z\032\215\346\037h\021\307\3636p\t\250\013\223I.\034\305\027-\234\nr\303\227\3354`\221\3235\252\013\\\212;+f\224K!o\240<V\312\371B\021\275T\242\214\363\332\204\265\th\214RD\267\262\310\207\367C8&\263\232G\275\270\333\037\003<c\275[1z\226\345\263\3735\243\020\341\233\255gZ u(0\024}\343\232Lcb\275\217\355-\034c0\001\200\336\376\265i\344\307~}i\251\022=\245ib\013\300>\325\004\022\030\256p\315\30189\244\313E\320\304\237\223\265E*\215\345z\363\232\002\303\232\023=\273+7\'\212\257\345\255\276\324\214|\230\351LE\353LJ\233\t</\024\304\204\314\261\214`\243d\372\325DL\322\236f\022\201\3235\235\251\274\217\244\312O%Xn\007\3235[\020\316R\351\244\270\326\343\214>\324R\243\003\363\256\343I\300F\005\2168\332=\253\232\252l\336\231bs\033\002\017\036\347\245Q\271{pB#\227\177Px\0250*l\312\2761<\333U\262\303\270\252\256\244\266\013q]1\225\216)GQ\221\td\226F@D@mP=i\227\323\265\305\362\306\261\267\230\252\025G\275R\226\242q\271b\033k\233k\361\366\214.S\000\006\3105\247k,\177\332*\3142U6\214\366\2559\210\3442uD\232\373^\221\021\030\225\033U}\005i\265\213C\034\021I*\200F\010\357C\226\244\250\027^\r\366\312-\330mS\311c\311\247\334\314\002\201 \302\343&\2512d\212W2\244\260\010\325\030\273\036\006*{\213]\272\014\2028C:\247\312p89\252\270F7\037\341\315=-m\205\305\364K$\362}\305np*\325\355\244\013\033}\231\016\346;\244U\346\222e\362\330\223F\265O\261\310\322\300\240\312H\031^@\374j\264\332t\226\261FQ\303\223\234\373Q\312\230\357b\224\323\354\004\226#\003\232\312\274\325\226!\362\002[\324\366\251\345\260\244\314\251\357/.\246\336f\225\2018\n\244\340T\360\306\021\367\315#\023\350M\006M\017}F(\024e\207^\005U\237U\271r\301eX\327\266*\326\210\315\335\226\364\r*\353X\271\006q$p(\334\322\260\352=\005v\r\005\215\260&TY@\001bF\347\024\'sH\253!\255c\014\357\013(\021\250l\260\366\2505\210\345\274\325\"\202\321B\252\256\025\211\306M]\204\365(\336\331^\351\363\010\356#\334\033\243\257 \323\341\232F\0078_\240\251\261\235\354]\267\221\270\371\230\234w5\246\'\r\016\322\304`w=i\255\006\235\311\021\255\345\\J\330\3052\331\323\314 /\312;\346\2550d\321\264\2223.\325\362\317\0047\245r\232\226\230\326W,\361\333\254\026\263Jv*\376\274We\007\251Qz\0353\340\036;\001I\212\364\014\205\351J\005!X3\212\232hZ5R\303\357t\250n\300F2)E\002\260\242\226\220\254 \245\3074\n\303\343\033\230/\251\305y?\305\370u-W\307\367\023X\310\026+;t\267O\237\0352O\352MCv5\245\271\316\306\236(\267\\\025I\324\377\000\264\rt\336\035\361E\312\010\355\365\3132\240\016&\217\234\017CN\225MMjS\272\271\335Y\310\222F%\205\326H\310\310e9\030\255\275\026o\334\272\3478?\225m]sD\340\250\254]\363p\300\346\271\214\233k\231\242<a\216\007\265g\207Z\021\320\324\265\223\345^{U\245l\212\232\221\324C\324\322\356\254Z\020f\2241\035\t\037JM\\\270\226\"\273u\373\343p\365\357Wa\225%\\\251\347\323\275sT\247c\242\235N\343d\345\251\360\214VOcJz\314\232\212\310\365\026\301E\003\n(\000\242\200\n(\000\242\200\n(\000=)\215\326\2329\352\211NZl\316\236\343\250\251:\320Sd\2169\007\316\212\337QMI\242%MH\205\255\024.\"vON\364\205.#;\201\336}\215h\244\236\347\034\350\312\032\241\242\351\325\261\"\201\355\214\032\226;\224o\274\n}hp\354\020\3048\351\"Tt\177\272\301\276\206\235Y\330\354\215E \254\315REk\200\240\375\301[Q\217\274eZH\300\326\235\314#d\254\200\267$\036\265{M\211<\205V\\\236\274\363^\244\235\240q\317c\205S\225\312\375\332P\177*\363\317|\0167qK\370f\220\003(\3154\217z\000^\010\036\224\203\333\245\014,!84\2522}\205\000)`\006q\221Lf-\364\252\020\26408\'\240\002\222C\021\016W\024\200\001@\205V\024\023\226\364\240b\203\330\340\322\263\223\320aM4\305a\024\022:\322m\240V\0250(c\223\201M1\2274\271-\274\320g\030\307\030\035I\253:\246\303\031x\324\246\323\323\326\274\354R\326\343oC&{\211\002\023\023\0058\342\253i\361y\312eg\313n\371\226\270/s\026Y\335\034e\200\340\257j[\0162\374\020\3351[\303C6\211\303\264,T6\001\355R\302\345\362\374`\234\014V\244\022\315\270&\020\214\372\324\2208\220\360@\013\334\324\324Z\027\026G&\360N\342\010\007\255\020bE\311\030\346\270\336\347Z\330\266\031\t\0315\233\1771%\210\316Eik\242%\271,s4Zr\005\',(\322l\356|\343s!\001H\340\346\225\202\32647G\021\317\226\273\277\275\212\2555\313\006%\217\007\212\322\304\271j6\0317dS\365{\255\226\216w\000\245i\301j)\275\014\225\271+e\346.A\223\2003R\351\301\340]\261\014\312\335\361\322\234\221\021\324\320\362\367\362fBG^j\t\321.uh\254cE\362\302\356\224\212\026\243f\\\372\024\315\251\274v\316\253o\324g\267\2652\362;\353\000\032d&#\321\207\"\207\021$hY*\334\332\371\311\234\201\301\367\364\250\300O<y\261\347\007\014=*.]\254[\227\021\247\3106\201\372UI\245\375\372d\360\307\223Uq3J\310b@\307\201\216\225\026\243\016e\314K\236y\366\2442\306\235\021X\372|\276\265ea\215#y\324\235\303\031\035\252\340L\201@/\275\272\212.\024Kn\321\2009\252\276\244\330\304\274\321\374\215@\336\374\256\247\237\227\261\255\0337v\217t#\000z\212\211\255K\203\26134\217\203.\t\366\030\025V\347\311y\022\335b#q\344\250\305f\321M\225\341\323\213j/\022\262\254q\214\222{\325\273\375:\003dG\312\263\000v\262\216\265\244LYSM\2666\266jd \271by\024\355QU\220J\212\276p\003\234v\253H\206Ay\347M\035\274\261\206}\231\017\201\232kD\360I\034\315\215\254y\035\350ab\324\200\332\310\316\006\331%\347=\370\250\365\t^o(\3067;q\237J\255\321\r\330\261\001\222\010\222\335F\355\243$\201\326\241\221\376\321\316F\305??5\244^\2062\334\226\310\205\234N\300dp=\205>\342\367\314\220F\257\210\327\267\255+\225\035\013+3\314\023i\371\210\3005a\227\310d\205$\313\267\336\307Z\013d\322\336\035\342(\312\005\035G\\\n\223R\271\266\213O\363K\026\000\216\203\232\270\231\266b-\375\235\324\231\021H\303\034\374\203\212\253&\233\025\345\3234\026\340!\003$\256E65\251fM\"\336(\313\024\220\244K\270\252.\005r\327\227\026\022\334\267\331\322HU\270\000\362s\353I\023(\261\326~\022yd3\337^H\260\236\221\225\303\032\330\233B\321\313G\024V\316\247 \037\230\236*%-lZ\247duv\376S\306\034\r\261\'\312\243\266\005W\tno$\272\333\275\317\n;\n\264\310c\240\202G\266v2,k\223\223\355M\260\222\021s\2713\2658\311\356)\363\013\224\227W\rq,1\306~R\010\334{U\006\321n\014\233\226\346\035\276\234\346\252\346r\211NF\362\\\243\036G\353S\301\"?#\232\243\'\241q\016V\236\262\"\360s\232\241\242\314w\003\033GZ\226U\216t\013,j\370\344g\261\255)J\314\241`\267\014\377\000;ajI\355\t @\240\000;\327g\266\3249H>\317&\t\310\342\230\240\206\332G#\255n\247rlI\004;\346E\311\000\236j\326\245&\353\221\022\375\324\034\326M\335\205\210B\002\271\"\230\313\315Rd\215\242\250\220\245\024\001=\210\006\345I \004\371\217\341^Kw7\332\357n\2572s<\356\375s\325\215e3j*\344\014q\367j&\364\355Yu:z\026t\335R\357J\335-\253\223\032|\315\021\373\255]\307\203<O\244\352\361\312\321\315\366ic\003\314Ix\003>\207\270\256\310K\23268\253\323\352i\334k\272b1U\226I\230q\362.G\347Y\223]\233\273\347\237f\300\300\000=\253ZP\261\315\312hY9\351W\221\352*\255I\2612\275;us\264;\013\232QR\320-\005\006\234\t\007 \220}A\250j\340\231b;\206\030\335\363\017\326\256\333H\217\302\260\317\245r\324\201\321BV\226\244\364W1\353\305\335\005\024\024\024P\001E\000\024P\001E\000\024P\000zTf\2329\252\205=i\261S\334Z*N\244\024P\001E\001`eV\030`\017\324T&\332,\222\240\256}\rR\223G5Z\nDF\332E\\\206\014{c\203U\346\232d>[\027_\255m\013H\343p\22529$r\270,\314>\264\310Q$r\035\216=\215tF*!\314\331B\362\3040\223.\373D\237(\310\344z\325\355=\002\341W$\001\336\266\251;\304\316r\276\207\237(\300\343\245\000\002k\224\372F\205\037)\346\200\304\036\224\230\220\022z\322\021\236(\000\'\037.\006)0s\355B\030\014g\336\224\340r)\260\030\304}\30284\346\371\210\343\214T\205\206\223\351NRH\301\351T!\2541\322\224\001\214\367\240\020\023F3B\006\306\222;S\217*0(&\340r(\343\036\3641\241\010\310\366\244\031\364\241\000\364 \270\031\301=\353BH\377\000\3218c\220;\367\256LR\320\026\246-\316\366\220&\335\254{\n}\233l2.B\217\177Z\363\022\261\234\221\006\346\270\221Q\000\033\217&\264aE\2065\010\016+X\231\364\002C\271c\326\247\211\206\000Q\201Z\\\316\344\2220e#\004zU[\211\031%HQ\t-\203M\352\013BYfap\321>\016\3208\035\251\352w.:W<\343vuBB\03101\322\226\326\030\246\336dR\334\364\241h>\246\233[\333\264{D@\014`c\2655\217\331\255\002\214\355^3T\220\244\312\236o\232\033q\371\227\365\252w/\2723\214\342\251\0311\372t\233\331pz\325/\020\313\346\2741.\340\t;\251\247`\221\014\322\026*\"BB\364\000f\264\255>\322\266\250\261\253I+\016p:R\223\034\021j\317M\223l\315p\341L\203\214\036E\032\r\224\326o,\3632\2630\332)\026\325\213S`\235\302\243\313K\031 \251@q\266\256\346hz\304\345p\025U=\007\025Z{vb[g>\276\265\2335Bm+\036\323\310\307z\317\274B\037\003\200y\007\265Kab\365\2433\354\004\214\361WB\r\370\356hCh\222\024\362\36226\366\250\374\307X\235\217\030\035k[Y\031H\216+\201\".\323\363w\253\001\202&I\305$\005[\331Y\343+\037zK\031$[q\031\306\001\241\260E\370\2361\313`\232\212X#\222\351%F\333\317+\332\213\t\261a\267*$\225\216\013\032[\210\226H\0131`W\221\203DQ\0222\257\244\310\2064lg\234\322H\036b\010\r\265\2062\005=S\025\213V-\025\275\253\244Y#<\265E<BYD\322\022\002`\201\353Zt!\2615k\204x\320\037\274y\036\242\222\342\023m\247\207s\323\004\325#&%\234\357.\217<\212\330r\305T\372T\026\266\322\253*\311\203\022\222\307\007\357\037zd\226\303b\322[\2207\005C\265@\357Y:t\215<\201\330\374\243\226?\322\211 L\326\027\002\030\374\363\200\007L\361U\332\362X\367\261%\256%\357\351Hw%\265\220\307\036I\344\375\343V\225\332\341\204}}\000\252N\302\265\315\005\265\207\313D\021 \003\250\003\031\255\004\333\034Ec\000*\214\234\n/sU\261J\370\334KbdY<\262z\016\307\353X\220YX[J\327\306\3327\270\353\275\272\003\355C\3209\210\355\021\357/\032\342i\031\225\016G\245k\332\237=\205\274\nv\347\347lV\r\352j\366\'\324\257\"\267\261hb\217\346\003\0358\036\365GHiof?uR>I\037\312\267[\034\255\352Z\276\276\2154\327\213h\334\347h\307\353U`b-|\321\205\214w41s\n\227[\307\235#\004\000\341\007\177\255\\[\245\330\250W%\277\213<U\'bw&\222;Vt\212Xb+\330\221I5\225\254\211\210cT#\241\034V\221w\"V)\316\0323\214\021\357H\254\017^\265\2620m\242\304(\241\013c\232tr\235\330a\201D\225\225\313\203\271j\336R[h<U\302\3478\025\021\226\247E\204\334\000!\272\323\025U\330\261\035}k\242\025u\023\2114)\211\014\203\030Q\232\2570-39\352\325\264^\246rC\325x\002\222TQ\200\252y\247\315\251)\021\265\273\004\335\337\322\2415\254eq5`\315(\346\250\222\276\2658\263\360\336\251vN\n\3332\251\377\000h\327\227B\002\300\213\300\001Ee$oKD#\0003\317\025\014\254\273p\244\026<\n\210\306\354\331\273#SV\360\316\253mc\000X\204\217s\362|\2075\277\243x2\313OP\004\345\235\343Q  \032\354\247O\224\343\251R\372\010!\362&xX\000\310\304\020*\315\266;\034\326\311X\304\323\264\310\353WQ\270\250\250C%CO\006\271\330\220\361O\254\330\205\024\265 9M=[\007\203\203Q%sDY\206\365\223\001\376`\007\343W!\236)@(\334\372\032\344\251N\332\235\324+\364d\264\225\201\336\235\302\212\006\024P\001E\001p\242\200\n(\020\215L\252G5M\305\024\361\322\223\0354\024R:B\212\000(\240\002\212\000*\226\245\363J\277\354\212\322\226\3476#b\251Q\214\032\211\202\251\307j\356\216\254\340\330\245ot\323^J\230P\221\361\234u5z\336EPO8\365\255*GC\'\271\347\343\216\274S[\255r-\217\251\000ORi\334c=h\025\204\310\024\207\234\020qHHO\3429\351\332\200\307\240\024\000}z\322\020OC\3151\241q\264\005\'>\364\022GA\232,\027\021NNH\305)4\311\020\214\257SH\275q@\356-\003\035*\202\302\361\351FOjB\023\346\317\007\212:\365\240a\216\331\240\256\321\367\211\244Kb\250\033\203w\007\"\257\330\307%\316\346\222C\264\034W>\"\326\034QOQ\266\375\363\242\222;\243\326Z\033\211\325\323\345\017\334\372W\220\367\024\225\313VV\306%pNB\234\203S5\301U,~\350\034\366\255c\241\214\264#\263p#S\203\22699\355W\001\300\310\346\265\213Fm\023\250\304\234\363\221\305Aq4p\316\214\3147(\350j\333#\251\002H\305%\270\021\026g9P\006im^f\213.\030s\320\2561\\\362:`\206\231\030\310\006{\342\264-\276]\303\030\031\315g\035\315I\343\271\330\370<\217\255C{u\274l#\000\376\225\321\003\t;\031\220O\215`.xe\300\342\244\232P\036X[\2468\372P\325\211N\342x~9$\014\370>J\364o\177J\321\237F\267\272usq,d\016\203\030\250\334\322\305}\016\315\240\273\231P\264\210\255\367\215lG\2712X`\232,R\320W|\234Sn\244\021D\204\364&\232\t\025\335\213!\3005-\250H\355\302\216Crh%\004\262\025\030\317^\207\024\tY\223\336\223)\r\231@\207v\337\233\332\242\026\350\312D\261\206\030\342\241\226>\336%\212-\250\200\037Z|rm\220g\255TU\330\245\260\311\345!\262I#\371S\244\220\264#<\251\255\274\216vQ\265s\024\322+\001\203\312\322\3151}\311Q\312\t\214\264p\331`r;T\321\312\006x\305C/\240\310\356\030\202\277w#\255Kg6\020\362N\rR3e\331.\000\217\000\356$qT\265\tZ0\2439\336+D\254E\356V\323\343\373M\326\351\006c\214r}O\245^\236\343\367\236L[F\321\320T\356\313\350>\335\022+R\"\371\262~l\325-Z`\220\241\007\033\237i\255V\3062z\225-\241\222\357U\213\203\345\250\313\267\247\245O\257NE\234\203vK6\007\322\204\214\344R\261\223n\231n\200\201\276S\237\316\255\312\354\2202g\226n\265H\222k#\266\003\031}\301\3626\237N\225J(\226$0\201\200\215\315X\";\251\303L\271\031T\365\356j&\224\254\236sr\307\2475\022CE\2556)\365\013\234}\330#\345\333\260\255\350\002F\214 \001T\016\\\367\254\3335J\310[y\336I<\255\307\013\313\032\266\227\"\010K\207\004g\271\352j\342M\312\332\245\344\223YlH\307\004\026\305s\367R\312f\362\345\215\220\016\200\364\3059\313A\305\032\272$f\3457l\333l\207\221\217\274}+l\335\010\341\221\241\207\367\204aB\216\265\224U\331svFE\342yV3\031\244>|\203\001jm:\326kk\021\036\345G\227\226?\335\025\275\214\0322\365{y-\356\321\356\030yX\375\336;\323Vg\273\221~\320\302\336\3259\nx-C\"\305\315:\336;\353\323(,-\327\247\271\377\000\n\330\231\240R\\\256UG<t\372T\307r\344\254\214\373\013\217\266\\\274\314\270\204p\005\\{\270Q\t-\264v\036\265\266\306/R\322<rX\006\222<\356\034Vd\272}\324y\2225\363#\036\374\376U\244^\2048\334[Y\211\033\016r;\032F\2329\t\215\\\253{\212\271=\t\202\263\"\202wF\001%\311\036\365\245\004\363l\371\344\317\241\305s\263\252,tR\215\370\003\257RM[\r\270dt\255\250\216d\215(\026\330\343\'\2574\314\251\301\255\275\242Dr\334xaN\363\002\255G\264\270X`\2207U8\246\2440\0279r\203\034\000zV\224\352\3529GB\027\214(\300l\221\336\243\344WbwG<\2641>\"\274\213\341xm\243R\315qv\240\2003X\276\032\320Vv{\235J\002\220\343jD\307\rDaw\251\252\333B\360\360\256\226\215\271\246\234\3069\010\330\347\332\256Gc\244Z\314\263%\204-\"\214\006\307J\275\"i\0309\"o\355`\362\030\232\337\0038\373\324\223_C\023\006b\334r\024\n\272s\346v3\253F\310\225n-&\1778[\r\376\245FMC-\240\217\367\321\237\225\371\301\355[\332\307\r\354\354O\007j\265\037J\312`\311T\324\213X2n9M<\032\315\240\270\341KP\303\240\240\323\263H\250\211\232L\372\022\017\2504\232\270\323\261f\336\372H\270|\310\236\347\232\320\267\271\206q\373\267\031\376\351\352+\226\255+j\216\332\025\355\243%\242\271\217A;\205\024\014(\240V\n(\030Q@\230\215L\252G%M\305Zx\351I\232RaE#\240(\240\002\212\000(\240\002\263\356\216\371\337d\200\372\014\326\264\2679q\014\201\204\201\177\325\222}\252\264\357\267$\203\371Wt78\332(\334\316\240p\254\t\357\266\233&\261\035\255\261o!\234\364\000\212\354\215>b%\035\016D\363\336\224\216\234\342\274\263\350\330\244\n\027\353\307\2450\270c\002\220z\322`\r\311\246\271#\220(\013\006\017SNR~\224\254\010N\374\321\322\250\004\335\232i94\2300\317\034\323\220\221\222(\020\001\316{\321\300\340\325!\206\340N\005\031\024\311B\'\034\216\364\354\343\245!\260\003\"\214d\342\223v\022\324\236\326\333\316\371\233*\237\316\264X\250\213\313A\201^n*\247Dk\010\350V\272Wx\300\035{Vs\242\251;\207\226OS\216k\211H\312h\242n\3451\264_xg\250\364\245i\022h|\222\017\317\351\355T\244c\"\304M\276\004U\340\221\311\003\245YV\377\000I\211q\337\037J\264\304\313\210\303\'\324RH\221>dx\325\210\356Ek}\010KR\331\273E\267\033\021W\003\260\2527s4\245T\311\264Vl\3262)J\233\0303\234c\220Gz\326\363U\243^\0061\306++jir\255\301\371I\364\252\2272\035\276\274q[E\230\314\3163\030\365\033R\177\211\210\'\322\255_\266\347\r\306FA>\264NC\2126|<\251\375\233\002\005`X\223\203ZR\210c\215\316\376\200\347514z#/LvHY\367\203\3460\375*\365\314\245\210\021\253{\325!66\315\367\344\262\364\034\032\257\250I\347\010\034\034 l\032\020\231pF\025\212\216\374T\026<C\211\t\312\266?\nM\224Q\220\317\366\211\220n\021n\312\237J\275jX\'\315\311\305 \210y\340JS<\216\242\245\205\213\2637\030\024\226\2456+\266;T\\9%\201\317j\255\214\357r6#\314\000\340\203LY\001G\210\037aZD\315\225\320\356\347\270\252\223\310\302\357\202v\267\030\3644M\331\t\"\366\237k\266\"\316\307\004\360\007jY\225\"\037+1\031\357X\244\331m\225\343\000\312\303?\205K\016\350\313\001\310\'9\255\240\214\2446\342u\01699\307\025f9\026d|\220\330\030\346\251\220\231\007\332\032\033\230\355\202\256\336\247\024\304\227\375&Y\t\311\007\031\254\331i\223[\\\225\264\225\362yjMN\021s\245+\250\304\252C\201\353[GTe-\3114V1\302Kcs\036~\225\225\254\337&\346\263\217\030 \222}=\252\222\320\206K\245\210WN\207\317\306T\222\000\255d\267\206vXW8\373\315\353B\320\253\031\322\200\232\362Z\300\344\254JG?J%\267\232\346\364\254d\307\0209w=\376\224\233\005\033\226^\322\302#\346\315\036\027\030Rry\252\177\331\022]^\026I\207\331\317\314s\301\003\320T\336\346\234\250\332\264\267\210\333\0109\2025\341Tw\3674\366\362\220\230\331\301E\354)&\014\201-\356\033)n\207k\234\263\036\325b\372\327\345\202\336\0317:\344\271\317\025q3\231FY\314jcV\014\240\375\343\336\250\305\005\336\267\252* +o\036\004\216\275\000\364\372\324\315\\pgN&\202\336%\202\025\005\023\200\242\242\232\353h\341O\230z\001\332\234\020\346\312\2152$\242Y\306d\036\265*\336\306\023|\262ry\000\367\253\271\221B\371\335\245{\302\276{\242\376\355I\302\255V\3224\371\365\031Z\353Q\220\005\007\345\214w\242Li\\\351!\177\262Y\237\"\334\005QX\372\234\355$B(\344\371\\\374\347=}\252\242\214\252\262\274w{\"\020\'\021\257\336#\251\245\216O>|}\343\330zU6e\035Y\275j\007\227\266Y\033=\206x\025j\332B\252\001~E8\273\232\275\010e\216\334\335\033\207\030\317`j+\253[i\221\344\n\301\317M\246\264\221+s\034\261\202b\0322\255\350z\325\350n\310\030#\"\261l\321\t5\342\344\341\030c\265Ikq,\341z\252P\245b\355r\351a\270\022y\350*X\334w8\024s\025a\336`\306T\323\243\2200\332O5I\220.\360\016\314\322\254d\003\316kz:\262f\306\237Ji\332\001\311\256\336t\214\224\0333u\246\022^\301\261\362\220&p:n\'\232\257$\317\263su\255\334\255\023Z0\327S:\346\364C\214\311\264g\326\251\317\2503\017\224\200\277\255sJL\353Z\013\243\2170\3119m\300\034d\324\367r\225e(\003\022ps]\030Uy\031Wv\210\277md\004F\2370\350{\n\322\323/\213\200\223\260\2247|t\257R\245?v\347\2079j[u\362\345\330\016x\310\251c5\305#D\356\211\222\245\025\203\006\207\nx\254\331)\016\024\240\3241\354--!\241)\r\010\241\244\346\223\276z\037QT\343pZ\026\355\265\t\242\302\277\357\020\016\375kJ\332\352\013\201\373\267\031\376\351\353\\U\250\333Tv\320\255m\0315\025\312z\t\334(\240aE\000\024P&\006\230i\243\236\242\020qOSM\221M\331\213EI\326\202\212\006\024P\001E\000\004\341I\364\025\214v\343\266}EtPG\035q\233\244NRF\037^j\244\363M\346\022]I\372W}8\234\222\271R\346y\312\343)\307\265f_\211\036<o\333\3178\025\350RV&\315\243\037<\322\267\241\257\014\3725\250\203\201@\317aL,\031\343\212C\3235#\027\370i\277xd\361L\030g<R\026\033\366\217JI\334\000\375\354\236\264\nd\260\310\003\024\200\201@\372\nNO@\0058\021\234\nw\001\244\220Oz\010\343\004`\367\244 \300\306\005 \367\247q\212:\323\230n\\w\024\233\023W\032\030\343\336\247\266\201\246\221q\307sQS\341\0324\330\373S\030\340e\205x\265\'vh\364$\217\022\001\351Y\332\265\256\\J\255\310\340\217j\315\nKC\032[\230`\336\204e\372\020\005%\274\260\301\010\227\035z\032\263\235\216\322%>[\256r\025\260*\341p>pq\203\311\253\204\210e\250\245\371\310?\305\322\226G\312\354\255/\241\"\202DAG$U+\260\315m\346F\0139l\014\n\226\301\"u\321e\204,\3277g\221\226A\333\332\265\226\316\tm\001\202M\254\027\345\311\357\351E\215\266FR\311 \274\362\245B\275\217\245>k\010\2329\024\263c\370y\351M\021$bj\026\227\026\240I Y\020\037\274\207\356\375j\376\202\276|\233\332#$k\310,8\251oQ\301\035+O\030\21690\003c\003\332\252\334\211\r\254\213\037,\312v\325\255\007#:?:\030\341\267|,\235H5\261\016ZBH#\214\032\233\352\th*D\266\355\362\2730>\265Bh\302n\211\217\016r*\326\302,\233\200\2422G\004`\323t\327\r4\261\311\316:\032\206S-N\252a\021\234c9\025\031Lt\244\335\201\025\245\267&\344:\203\223\327\0257\230QJ\362\247\351B\334%\260\301#\305(\030\335R\307\373\311\030\201\3069\025d\014\270\001N\n\374\302\250]\031!\273\334@\n\334\257\322\264z\020\365\022F\362\320NFP\376\265\014\326\361\335\241\222\334\262\277\241\351\232\227\357\002.[Aw\n\026a\220\313\223\203\234\032m\312oEm\333y\346\234P\230*\"\261E?6)>\346\025y\255\0222\233(\352.\3112\0360s\232\236\306Q\260\366\335I\356B!\324RX\365\024\230\014\253 \351\332\211$\331\033\260\003\326\241\226\212\361L\347O\223\234n\220V\375\346G\225\030\004F\200\002j\351\356D\366*\227\362m\344\004\216I\305r\267\222\0171\231\271\005\270\307j\251;\031\255M\315\010o\267YJ\220\212q\203\336\272\013-\251\036\366\342G<\375*y\256mm\014H\"?\360\221]\\(,\241O#\362\253\320\310\3066p\204\200zP\365\032\"\220I3\013\211\301\330\207\205=\005]K\205\212\0372N\013v\025\010\242\033\233\211\266\356(Ao\272\000\247[Y\316\263G$\345v\236Ys\310\024[Q\032\002\340<?\273!P\036O\265Wf3Z;\302\330w8\036\342\264J\306Rcb1ZFE\302+\361\317\031\374*]2\347d~L\010\261\241\311\300\030\252\271)\2264\233H\343\216I\245\223\030\343$\340\017z\305\274\324\222\t],\225\246rp$a\307\341M\r\3522\316\322ie\373U\375\301_a\326\247\275\212\3027WYdg=\024\364\245\273\016\2033%\314d\254.\321\203\203\260\036\265~\313|p\200ch\300\350\n\342\211\004P\232\234\323\233q\030\014\241\272\343\270\250a\265\214FM\313\035\304a#S\310\2556Fn7f-\242O%\351\265PT\206;\2163\201]%\225\242\331\301\373\274d\365f\352j/pP\261r\3327\362\304\214\274S\367\207\224\250]\270\0315\254\t\233+\316w0\311\343\2659$n\002\017\227\336\253r\021\225\250Hg\276i\016=\006:T\221!$\005#\212\315\232\244>\"\247\314%r@\305Z\210\374\252\252\270\003\260\251f\221-\305\020T,\307\346?\245&\327 \220\247\025&\244~n3\355\332\210f&pz\201\311\252\275\214\355\250\255/\315\223\324\325\244\271\3711\336\264\247;\nQ\273\"\222fc\327\002\250\335K)\007\004\355\241\315\271\032\250\244\214\273\211\334\023\226\300\035s\306jI&\r\032\205\034b\2756\375\304*[\230>&\225E\261u\214\026N\344Ve\225\311\232\337$\347\232\207\261\253F\346\210O\330_\004\340\2775Z\362\355`\2741\355w\333\313g\337\322\273\260\207&\'bX.\274\304\336\321\264h~\356kb\3068\3317\242\355#\007\216\365\351\315\373\247\221Q\032\215\220FF\t\037\235I\036k\202EGbt\317z\220W<\213$\000\323\205C\020\242\234*\030\\p\242\244\241\032\233\232\244!\271\244&\251\014nNiU\2109\031\007\324P\343r\223\261r\333S\232,\t3*\367\365\025\251kw\005\300\375\333\214\367S\326\270kQ\266\250\354\243[\243&\242\271\016\364\356\024P0\242\20104\306\246\214*\t\212p\024\3333\202\324u\025\'\\B\212\006\024P&!88\301\307\255\001\324\234\006\004\323\261\034\366\334\212\374\267\331\034+\000\304`f\261\013\354\224\306q\270u\000\364\256\314<49*\313\231\215\271\227\313\213y\310\004\365\034\326L\267\360\005\223\016\304\241\301\300\257J\2253\t2\244\327\251\275Ap\t\031\0035Y\357ax\316$\035y\256\245\240\321\234x\346\225\216FOj\360\031\364\t\010\2440\353\216(\316\024.;\321q\261:\034\346\200Fh\020\277\307\236\3249\346\230\230\000\017=)>\357\"\225\254\002\014\036M\000\2509\240\005$\021L\305\000\2059<\n_\273\300\034\325 \025}i7.rM\014\020\244\005\004\201\315\'^h\270\203\251#4\217\302\3654\r\n\243\003&\255\331E&\355\345\266\250?\235cZID\"\265/\202*\'c\237\233\245x\265,h\311c\220\004\310\252\267\023\t\343ed\332G\\T {\030\272\255\272\311\373\324U\014\243\214\017\275\365\254\366\267\222WP\314\024(\347=\252\221\316\321v\024\330\230\215\016\305\376/Z\0142\31403\264\037Z\322(\316E\370\370\300\353\212h\233}\310\\\034\364\342\265H\315\356Y\310\037-%\273\265\272\250P\tV\317=\352di\003FI\213\347~\010=\005:\310\246\000@v\372U\"\312Z\202\207\223\246\034\036\3253e\355\367\344\003\216E\017FK\330\305\326^O\261K\032\214\356\300\305^\360\342\210\364\221\2068f\340\036\325\022.\231\251\003\242\333H\316\241\261\322\243IA\267\363\363\201\351O\240\336\344\266\321$\243\317\226\025$\375\326=\252yIP\033\003oza\261SR\224\244h\333\260\244\325I.\013\034\220\t^\225[#4\365\025\244\022D\033\261\364\253\032v6\227\\\034\365\254\315.L0\322\026|\347\2674\346`\020\267j\032\270\220\305\225G9\346\241y\230\314\031\327*\334SBb\354$\256\321\237Rjh\201\022\006R\001\035\275j\321\005i\346&\353h\033\230\366\024j\0203$EO\314\215\302\373\032\253\334\206I|\312\360\030\312.3\323\322\237\247\312\221\332\230\310\031\366\241+\r1\263N\027q\004\340\324\027\212\032\324a\206\t\317\025qDI\224\371f@\244\226S\306:\321p\355\013\251\220\024a\311\004U-\014\332\270\214\026t\013*\356\\\344v\250Df\327Pks\235\230\312\032\227\250lK$\242Hab\337)8\315P\273f\214\264G\202A\305L\304\206i+\346m\334\331\371\363\214\372WG|\373l\000\347s\021E=\3075\241\215\254\\\004\267~@\330\271\347\326\263,\022\326\340\251\273\034u\n\247\255]M\214\351\356uVqY\334C\266\326UW_\340\315\'\235#j\rn\252@\216<\234\326p\330\336H\207D\036T3\334M\2203\201\356jp\341\023\'\031=\205]\364\022\025`\271\272\224,\271\206\025\354z\323\347\222\337\314\371c\017\216\000=*P\330\221J\322\352J\025O\312:zR\352\2577\372\265\3102w\355\212\t\270j\327\253o\245$\026\370\005\260\275:\372\324&\354[Z$`e\300\344\372U\246a-X\330\224\352\026\355#\037/a\343\236\010\357S\305w\016\340c\316\321\307\035\350l\0137Lnt\271\"!\325[\370GSI\247ii\002\206\233%\217\277\335\025W)\031\032\365\364q\\0\266\016\321\216\003\001\3015V+k\311\266\334]\312\321\241?*w\"\251\350\207\030\334\353\341-m\246\231\014{6\256V1\375j\224Ws\200f\270\030S\337\025\t\216Z\004\3276\367d}\235Y\230\034\026#\025+\333-\265\263N\247s\001\316\352\266\311H\255l\323H\314m\220\031\033\222}*Kd\236K\255\267/\235\274\221Sa2[\373\225\216\177\"6\311\037{\332\240\027 o\307\314@\315o\033X\347\223\273\026\330\315:\371\217\362\250\351\216\365z\335~R\316\244/\275P\342\265\026[K[\225m\337+\343\202\275\253\n)L7&6a\264\222\001\254dnI\014\234\266:\346\257Z\261\300$\201\232\316L\322\010\264%\347\031\317\343S\254\240\'2\214\212Qe\225n\007\232\016\006I\246 \362\343\332F\017z\251\n\304fA\237Zx\224\216\206\234B\332\2162\216F\340\rP\273\232Ldv\365\253\217\3043>Y<\341\276`\273@\306\000\305e\305|\366\327\036S\0251\177\017\265{J\027\201\214_,\207]N\227P\264.\200\206\034\361\322\262`\265\026n\321\226;\030\345I\025\202\215\331\321}\r\353\010\336\033 \201\313\202K\014\nQ\242\233\311<\343z\353\270\362\n\366\257G\017O\225\0345\345\315\241\243\026\217f\277+\335\316\340\177\t\305h\332}\212\003\2628\312\223\320WD\333j\307\024\343t[\232\3463\016\337,\222\274\212\2055+D\r\277!\327\261\025\316\251\266f\223Hx\325-\3627)\347\221\212\222\337R\266u\014H\004\234m\316\r\'A\212\344\342\376\022\007\312I\317cNK\253g\004\254\231\301\301\031\351Y:\022A\251*\274lF\034s\357R\017\250?\215e(4+\216\301\244&\2635LBi\247\245R\030\332i5Hv\020\322f\231H3J\030\202\010b\010\356)8\335\026\221z\327R\236!\2111*\217_\275Z\226\267p\\\256c~\177\272z\327\005j6\325\035t\252\333FMEr\035\211\334(\240\030\032a\353M\030T\np\241\212\002\321H\350AE\003\n(\000\246\272+\256\030~\\SL\211F\350\317\276\262rF\311K/ec\322\262\257l\244M\304F\310\030}\340x\257C\017Q\036|\327+9\333\373MB(\331\355\356n\266\377\000u[#?J\307x5\005\005M\354\243y\311\004w\257^\235\232\320\302R\261\034Q\334\306\377\000\275\224Hz`\236\225#\234\256\002\362:\212\267\026Tj&9s\2674\000Xs_>\321\364W\001\214\322\236\275*\030\300\216)\017\024\322\006\004\2002h\317s\315S\020\006%h\301<\003@\306m\354\0174p:\324\210\t\301\245\034u\246;\013\234\212\t#\240\351M2D\344\234\223H@=\350`;? \365\243\2654\002\216\234R\014\216\274\320\001\030i\\ \004d\326\241\317\033x\003\265p\342\245eb\342$\317\204\307L\324\001\213\014g\212\362\245\250\331*\022@^\2644H\273\211=h\212\002\245\334!\227\010FGJ\304\231\244K\257*H\374\260\335I5m\031I\026\215\314f1\034\035\007\0304\366\231\376U\217\000\016\264\356\314\230\262JU\014\234\361\332\247\214\210[\250\317s[\\\315\241\376b\264\373\211\301j.eX\266\203\324\376\224\244TK+!\026\276n2\005[\323\026@\223\260?/\030\036\264&h\266\025\255<\307\022,\230f?u\2056\342\031b\210\206^\235H\246+\025\356t\377\000:\3329\024e\217`\330\251-\355\r\266\"\001\260\334\37652F\221VE\246\211\226\325\343R7\021\301\254\351\025\326\021\0236:S\027SZ#\373\240\253\302\216\000\364\246\2370F\361\023\273=*\222&E\033\205i-@\220\343\007\212\242\273\204\333A\351\315T\221\232\334z\253\2537\007i9\025z\305\212\302O\034\232\314\324\224\372\036\364\305\227j\264D`\251\240C\013njI2\314\2438\301\241\010yv@v\222E\r&\3626\365\357VK\030\300\tc\220p\313\337\326\254\337\214D\255\316\355\300\223V\210e\033\211\267\262\306\033\031\353VV\030\341*L\233\217\177Jb*,\204\302\310\3038\316\323V\005\250\373\024{\237\016y>\206\232ak\214\206\320\307u\033\375\341\236\231\251ua\276D\310R\000\301\342\2015b\"S\3739\027\0006\356=\252\313[Ar@\233\357F8\301\242$\264e5\206\317:\332)7 \371\224\236\010\244\324-\326\372(UJ\307)\300\334zsT\326\202H\252t\251\364\333\210\235\345Y\201c\367\007J\333\220\253\331\367 b\263\206\214r\325\031:\375\205\304\326%\255\355\314\207\243\001\327\025\211h6\273>\016\3201USTDcc\241\265\2661Z\245\302\2342&I\3645\245o!\222\311e\227\002Ix$\016\242\242\006\214\253{ \001c\030X\343\347\352i\332vd\013<\203\003w\312\017z\251\0105MG\312\014!l\273\215\240\016\3254\017\035\265\242+\215\322\001\226\'\326\202nGi\'\223\003^H\307\315\230\340\001\351Wm\030\\Y\357v\304k\222\314{UEX\227s9ld\324.M\322\312\022\331N#$r}\352\307\331\204Jm\243c4\263\0143\221\306*\221<\242_G\024V\006\306\330\356\224u\003\323\275&\227d\320\303\366\211\361\277?*\366\002\245\240H\273\347\301\024d\264\243\351\336\240\325\356_\354\252\314\304D\334\020?\212\256(M\220\302\354m\374\305\215B\250\310\\U\213\030\030\260\236\177\232C\367G\367h\221\2446,\352\022\271\215`\016N\343\367GSY:\323\313\025\274q\315&\335\307\205\366\241\"\'\251^\326\351\224*G\222\001\376\021\322\257\265\332,%d}\3227\033A\242\304\246Z\264\324\340\262\262*c\314\304\360\253\375i4\333\260&\335&\0137?J\026\203d\232\243[4\202$A\346\310FX\016j\305\272[\301\036\322\210\244\214\022z\232\2436\221Z)\211\'g\335\007\214\324\263\3359\013\0362?\225P\223#2O\267\021\035\236\365\315\335\334\005\275\301e!\037\2504\244\213\211p\315\224Yb\373\246\254\033\202#\007w\030\351\\\322gL\020[\336\371Y\3079\364\251\326\357\355\022\005@\312O\267J\236b\254\\\023\305\014[FKu\315A-\306\376\235\353@\031\030-\313\035\253\353D\322\242\375\323\220*\323\320V+\231\244f\312\214TW\215;\341VP\200\216M\021ve\330\240\272{\340\t.\303\202z`\324W\226(\2506D\037\234p+\330\303\326\346V9\352B\332\214\264\323\235wI$\204/e\3075v\005X\360\270V\377\000z\273\241I^\346\022\250\322-\274\250\253\362\220\016*\030\257J\312\252\270\311\3521]qF\r\334.\356vL\240g\'\2552K\327\371O8\350\017\245U\310e\225\324Y\245\001\212\344\001\312\367\245\226\3466\\2\251n\334P\254M\211`\231D{^\016\374\036\265\r\344pO&\364\310l`\343\265U\265#\224\211Q\342<J\377\000C\322\241>|34\361>I\352\t\340\323i\016\304\320^\271\0302\3109\3163\232\322\206\342\341\031Y\344\225\230t\340\364\254e\004\320\234M[[\351v\001\215\300u\315Z\373J\221\222\204~5\347\316\235\236\206]EYb\177\272\334\372\032pRzc\025\235\254W0\322\264\322)\246h\232bm>\224\233[\035\r;\225q\247\212p\351L\326,\007Zvpr\t\004t#\255L\225\315\"\213\326\272\234\261`H\014\251\352~\360\255;[\250.\007\356\337\237\356\236\ry\365\250\333Tt\323\235\264&\242\271N\233\335\0054\363M\030\314\0058P\302\010(\244l\202\212\006\024P\001E\0006A\221Q2\343\232\322\022\261\303Z\032\334\257qi\014\240\206\217n{\257\025B\353HI2#d#\373\262\017\353]\324q.\'#W\321\230\327\332\036\326/%\263 \035\035y\025\227.\224K\221\t\022c\236\016?:\365ib\024\2673p\266\306R\214w\247r9\257\021l}CB\023\236(\313c\013\326\240@\006\327,NsJy\346\250\004$t\244bzv\240h:t\247\022q\305\010\030\306\351\326\20003HB\341s\223\332\220\362r(\013\212\244w\243x9\0304\300F\004\212\021)\244\003\266\216I4\325\034\347\265\000;\201\316x\2439\344R\023$\262\033\356\225A\307sZ@\005<\327\235\213\334\250\220\273\007b\030\014v\246\200\025zq^zZ\216\343\004\2008<S\344!\201\007\241\025C\271J\003$\223\250\035\007\336>\224_\244E\203\272\256z\014\326\257c)2\t\264\3212\026\265q\034\207\2341\342\252\026\373<\213l\334\310\247\r\365\245\004g$:\372W\200bx\312+\034\002GZ\233N\202}@\221\023(D\306\346&\211-H\265\311\2329!\346d\332\204\341I\357YW\272\204\262]\203\032\345W\214\021\326\224\331I\035~\237o\347\330,S.\302G\315\216\325pD\261\246\330\330\0208\246\221\246\312\305K\327xDnF>n*\3111\316\214\034\234c\232\264I\0311\305d\025\t;MG%\306\035O\004b\206]\310Vro3\234\344r*+\273K\271\2443\306\024\251#\003<\322N\342f\246\354\036@\031\353U\256\245\000\202\007=\r\\\010\233)\334\310e\266`\027\016\274\212\251o\024\267.%\200na\367\207\2459\273\"#\271\245\004h\320\220W,8\372Sl\227hh\330\347\236k4\356l\2214\333A\003\276)\217\022\200$b1\334S\025\210\344F,\014C\036\240\232o\225#\036p(hC\232)\027(\245q\216\247\275$-\345\267\314*\343\251\014`Yd\225\274\243\221\324d\364\251\356&2X\312\017\336\306\032\252(\316D\021\252\375\235T`\261\3478\245}\362D\257\216\007\004\n\242w*K\225.\235\010\355S%\303>\230\245_qQ\301=\275\252v/\241f\312\354\315j\262H>oj\257\254\\\204X\230g\004\220\336\324\357tD\236\243U\304\266\321\355\313)\301\316*\304R\343q\375i-\000\215\246\371\331\210\0351RE\014~do\264u\004\212\321\202\rU\035\307\356G=\177\nu\203\221\000\310\307nj@\236i\266DJ\236O\275T\227O\266kI\026X\200\'\346\004\016A\246\366\022\0332L\266\013\030^\033\031\3078\245\212Fg\206\335A u\372VkA6S\273\2327\273{h\311\371O\314MK<\314mC\304>Pv\217aOv\035\nvQIqp\367\r\300O\225}\315h\336Z\026\2028\314\2779\373\324\302\326-\336\010p\266\312\253\300\n\270\352\005V\325\030\265\272Y\'\356\355\201\314\214:\223\351M\021rv\275\331\0046\321*\357\350\252;\n\232C*\306\014c\367\240e\207\245U\211r)E<6\366\362y\244y\222\036}MA5\305\354\326\333\342\\ \341Gz\253\020\345q\226\321\270p\323\276[9>\324\222J\327\327\252D\247\310\217\205\024\356$\215\'\226+xv\2601\247vn\365QuK\233\231E\256\230\205\275_o\371\305+\232\033v\026\221\330\302&\270\230\0311\3633\036\237J\300{\177\266j2\337\\\007\226\335_\345\003\246)\\f\220\276\204\240\205a\021\307\364\300\244\263\323\354\344\2727\r&\341\234\205\006\204\311\334Ym\026[\327\225\230,j0\025GZ\252\322\t\356D\026\370D\037y\317Zi\t\350J\257\024S\376\354o`x\347\223RF\333\334\264\254w\347\205\364\253F,|\371\210\360s\364\250\304\333N\356\246\256\300\231\237\252\335J\221\031n%d\213\247\313\305a\351\302\031a\226FfX\325\273\324H\322%\215\036\3546\364\316\345?tT\322\316\362\310a\031\007\246+\222H\351\201\241k\016\006\314\362\006I\253\021\334,*v\021\223\306jR\324\320\207\355\005\334\374\307\000\342\234\267G~\330\300\310\365\255\310D\313\3460\334\347\236\276\325\014\214I\316\354b\223\320\321\025f\275H\333g\230\247>\225^k\363\220\251\214\223\216kZp\346\006\313Zt\032\215\364\333 \202W#\256\324\340~5\251\007\207u\311\033j\330\225\035wH\340W\251B1\246\256\314d\234\213\037\360\212\353\340\203\262\324\217O2\253\336xc\\\214\226\373\"\3101\3227\006\273!\212\211\213\244\331\215\250[\337Z2\265\305\264\220\243\034e\324\3434\r\276X`C\022q\301\256\270\315Kc\007\013\020\273\\D\355\222\262\250\356O\"\226\013\230\344B\245\n\260\374\252\310\2612\254n\241\310\332}\251\304\003\324P\264\025\207\301\347,\201\243\235\306\007\335a\301\255\010\304\254\2431\250\'\256*\324\256$\254=\226$P\322?\3409\246<\226,\270\3730f\036\242\215Y\224\267\021n#\214\204\211c\213?\354\361S}\264\307\031>dl\336\212\331\241\306\342\037\r\355\306\321\210\323\030\3439\253Q]+\305\272@\024\216\270\254eH\206\210#\324\003\022#\211\230\347\271\253_\332\014d\362\304\252\244\372\212\211Q\023D\206\355\326&%\227\201\236*\001\253\272 \373D@\344\374\273\0075\n\205\304\213\220\337\303 \007\005>\246\235\035\324R|\241\371\367\254\235\026\213w\034J\021\326\221\312\250\316r*,\315#R\302\251\016\273\227\232R\01084\215\341;\206is\310 \220GB\r)F\346\350\273k\251M\010\002Q\346\257\352+R\332\352\013\201\230\334g\320\365\257>\265\033j\215\241;\023\032J\345-\352\002\226\202\242\202\212\r\002\212\000(\240\002\212\000)\010\246\214g\033\214#\332\233\264U\246q\312\002\020H\3075Z\352\306\326\340\037:\004$\363\271F\rmN\253\211\233L\362\322\307\037(\346\235\316\000\'\"\233>\204=\205\n\016\377\000jBc\333\030\346\233\236\346\206\201\t\236\243\024c,\001\316(E\003`t\244RB\342\231!\216\374\222h\\\2259\035)1\211\324dt\241A\365\241\005\204$\0023\322\236yZb\014\340t$\322\270%@\351\353L\006l\3179\245\000\355\342\200\004\000\2320CqI\354\006\235\224\021E\027\230N\351\034v\355Q\371\216e\"\274\214D\233\221Dr8\0079\246\227`\204\365\256f\"\203\316\333\210\r\3105\240\217\276\025l\366\252@K\002D\023*s\236\246\250\352\021\t\241f\016w/A\330\326\326\320\311\356Y\323\216`S\301\317Z\220\305\024\227Bo.2\313\306\342\274\232\225\2405q\232\275\262^\331yn\245\212\035\313\216\264hqEk\003\"\006\033\260H5L\224\211\365%\216kp\233\007\313\310\315T\323-\3442\211\035bh\323\246\005L\225\312\216\346\334\215\271>B\0015\000y\023\000\014\220s\217Zq\t\020\353\362\371\226\221\223\270\025~\006)\367\276zX\017\263\306\344\205\005\216*\214\312V\263\231ba\275\271\352)re\013\330\255C)\027\342\202>\034\256\010\037\235>g)\016\365\347\332\234v)\261\202m\344p\000\003\232\214\247\236\373A\3323\311\364\252\216\344HI\241\026\362\006V\310l\3435K{\332\334\206\213\345\007\357\014u\252\236\244\255\031j7\336|\370\030\036p\352*h\025Af\356k\030\233-\210\346?\277\031?\205A\251\310\n\210\227\'#\240\253$\261\022I\035\2103\020dQ\332\231\024\23719\353M+\203$\222B\247y\031\025\014\362\306%\316>\360\350)\354C&\215v\2422!\000\367\250\356\242 \022\205\262\343\232\322,\312D\026\337\274\214z\216\265\022\356\206^\030\230\331\277*\033\032E\255F\025y\201F\001\200\344z\324v\336T\026\262D\250>l\346\240c\254 \020\305\231P\355a\322\245\324\364\305\273\264\177%\266H\006\345\007\245TY\r\024\364\251\000\267H\261\310L\032[\263\366x\301c\327\364\241\201R\313}\315\301q\237-~\361\354}\252\334\323*\311\225\310=x\242\372\002c\365[\206\267XG,H\251w\254_+\032z\2112\022\345\231\200\310\031\253\260\2210\005\217#\266hC{\020\3133\004\221\027\351N\271\226=?O{\202\243\314\t\307\034\223CD\231\372\025\263\033\tfpL\263\234d\216\225cZ\tg\245Aj\200\226\221\361\232H\030\313F\033\222\005S\352M]x\225I\225\244\310Q\305(\352\306\366\"\363\0268\360\253\272f\344\261\355Y\227\227\212\222%\261 \266ry\350j\314M]&\336+k\177\264\312\273\247~r{\016\325,\327\014\310\351o\201#\365c\330V\221\"L\347\214\247\317bs!\014Ac\322\236\327\356\211\264\270@x\306*\214\366.[A\366\230\277z\345\"\307\'\271\255\013smj\201 D\376u\014\332(\206\370Ex\301\256K2G\316\321\306jM&F\301[X\343\206>\344\320\306E\251\301\272\361w\316\323\0022T\n\2674\263\303j\"\216\035\273\2063\216\024S@fIk\031`\'\271c\307#\240\253v\267\320ZD \204\006oZ-\251<\326$[\306U$\307\346;t\002\263%[\251\2471D\233\030\362O\240\253\261\017R\326\227\010\267\230\2279a\335\273T\333\303\314\356\240\234\236\264\"mb\302\271\t\206\344\236*\216\243t\220\270\021\306\016\006H\255\022\023*_\314\227\232[\3052\005\016>\\v5\213-\234\261Y0\\2\343\221YM\350\\CL\177*=\221\355\016:\2229\251\322S\035\321\224\220X\2562Mr\263\256\033\033\032{f\307.\305\236^\247\333\322\226d\301D^\244\365\364\025Q)\224nom\325\033\311l\200v\202;\325\010f\220\314O\232\370\0075L\224Z\027\262\216Zf>\2314\325\324ZR#~[ (^\346\232\213\223-\035\006\217\340\275F\376O7Qd\265\207\363c\370WY\244xcC\323\202\264v\202yW\376ZI]\320J\010\270\302\346\334_\"\355@\250\276\2121O\334}j%&\313\345\260\340iA\254\365D8\211\"\244\250RDWS\3240\3105\213w\341M\036`\346\033\177\2633\3651\364\374\253\246\216&Pz\230\316\0279=W\302z\255\204\222\033|]\333\001\225o\342\254)-\311w\214)\215\320\364n+\332\245YM\034\223\247bH-\325#\332\356\333\210\347\237\345V-\240E\034;7\324\326\2673\2618\333\037\314\030g\353Q\313u*\020\310\337\235Rd\265r\031.\213\261;v\034\362\001\340\322\245\305\276\374Ip\261\220;\326\211\230\264#^\330\016Z\360`v\306h\017k3f$l\037\342\3063Z\031\226\255\346\"0\215\320t4\321q\346\t\0227\310\350i\362\212\367\026\013\226\030\215#Q\260\365\251\003\t\023\347\0377\\\322q\002hf\\\205\005\210\333\202*)Nf\014\330\\\014f\245F\303\345\r\312c$r\276\264\261K\260\253\016\203\236hqLm\027 \276\313\250l\376\025}e\215\270V\004\372W%Jv1z\022$\310\251\271y\372v\251Z\345\n\016\347\320W3\203.\022\260\211\"1\034\343>\264\342\276\225-X\355\247R\342\200@\350i2x!\210\307\241\250i3t\323.\332\352s\305\201/\357S\365\255;[\313{\216#|7\367O\006\270kQ\266\250\321J\305\201Er\033\305\205\024\026\024P\001E\000\024P\001E\004\264!\024\230\247s\031@\002\361I\266\232d:z\036>\006\033\257\035\251\371\256\226z\242\014\346\227&\225\306\366\014\346\212w\004\205<u\244\334s\355R\230\304>\270\243p\3051\010I\355B\347\030\355F\340\001y\240\225+\216E\033\000(\005FE8\266MP\r\316:u\245\316W\031\244$\r\367q\322\203\234\3439\035\250\006\033y\334)s\212.\006\206\232\204\332\027\301\000\261\3005*\341\027\224\000z\327\225^\315\224V\270\362\312\226\316=\252\227\231\324\251<\216+\212R\260\231\236[q\353\310\353W\264\351\t\006\017NE8I\261\244^\211v\241\007\271\250N\036\341q\367q\202=\353\246:\243\031n>7\362_\313E\001O\037J\2365,2\rK\001\220I\271\267g\030\247\273\225}\330\316\356(LV%e\r\303w\251\340\375\325\261P\253\260t\252e!\200\222\273\260@\025\r\234\233\365\006f<\355\342\242\"\220\272\212\213\250\204{\302\3559\006\257E;4\000\203\214\014\023W}H1\342V\376\323\2251\3620\310\"\245\200*_\010\344\373\255\323\336\211\025\024j\252\251\0351U\257F\330\312\016\342\232Z\003\334\251fN\320\037\203\322\257F\004p6\321\317ZQZ\211\354T\324\344\314J\304\340\003\232\251p\336b\034\236H\353[4es>\316\354\332\312\304\347\223\312\326\325\265\302J\006\3022zV\0333x=\t\333hRH\005\200\252L\034\\\305 L\225=(l-\251~\031AiU\271#\245T\265\217\3122+u\307\004\325\'\241/A\223LV\315\224\257#\371UmVU\373\014w0\003\327\267jm\334\202\375\215\321\236\306\',\016W\221\357D\2220`\244}*\240L\204\267U\215\313*\201\236\325^y|\213\305\214\200\025\371\004\325\265\241)\214\276\226@\373\300;\177\275\212\254\322\177\245B\t\373\316\001\374\353&\306\215ig)?\357\024\355\316\016:b\2544\212\215\220\334c\265\\\0215\036\206]\202\244Q#\021\363s\232\212\366\326[\353\264\214\310R6\0377\035\252\232\024uF\214q\303o\001\267\201H@8\254\213\345u\265\004\344d\342\224\266\002k\266\337\255*g\344\205\006\357\312\244\266I\356\256\274\322\245a\003\251\3434\'\240\322\'%U\266\367=\375)\366{\032E\223=\rBn\343oB3\"\231%8;w\023\322\231}\033]\264H\304\035\315\235\247\275h\314\321\245\252\334Ah\220\304\273T\343\201\216\302\262<A0\232\362\322\037\356&\357\304\377\000\372\250\023d\266\260=\270g#,\303\025\024\327\007\316X2A\316_\332\222V\006\364-*\221\'\332\034\000\273r++D\323$\271\273\376\322\324\027*\356J =}\317\265kc&h\353\232\212B\n!\007\030\030\035\352\204W2,\0041ff9v\376\357\265Rv2\335\226\354\343\216\0132\333\013K/\334\030\311\025\237x\273\357c\017n\350\311\3200\306\357z\226\3159M{KI\244\263\363n_\311\204\362}MG<\260\302\002Z\215\307\2737jH\253\330\210\315+\007\212\336&\226R9 p)4\251&\232V\215#2>9\035\226\223\004\215\r\262\332;O9\r\264s\267\371Tb\366K\351UbO.\0202\333\2175qBlf\264\252\361\304\271\330\334\347\035\305C\nZ\333@\030\034\311\356y\374\251\223\243-Z\371\216\200\274e\007l\323g\272\202\t\003)\003\327\375\252\244&\354W\215\256u;\222cM\221\216\375EZ\013\345|\240\202G\245\010\221\357\"\307\023M)\302\250\310\025\307\311}qw\251K<\237 \307\335\317j\266\311e\213{\227\226%\000\347\236=*\345\362\206\263\362P\235\304\202H\254e\251p1\322)\241\234\344\362\3350{S\'\224\356\021\262\034\226\3075\214\242uD\336\264\272$|\301p\243\034Um_S\221-\374\270\201W\220\355\317\242\321L\251=\014\222\016\025W8\035*x\231\200\000\326\214\"\211\255mg\324\257b\262\264Gydl|\277\302=Mzo\205\374\'\246h\313\034\317\020\270\274Q\235\357\316\323\355]\024\243eshF\347A\311\353K\234U\275N\213XPi\302\241\211\241\302\224T\26368\0323Sb\032\021\233\003\203X^\"\322\2545\025i&\214E:\257\022\247\007\361\365\256\314-G\026c(\334\340\265\273;\313\t\024J\310T\017\225\307zr\025X\026B\304\026\034\212\366\341+\243\216\2449YRY\221\343`\252@<g\275V\013r\355\314\204\'\327\232\263\022fG\355#/\256*9a\204\217\336D%\367j\023\324M]\020\030c|\201n\211\351\212\321B\246%U\005B\216\007\245tE\234\362\320E\221\302\024\214\343\336\233e\276\325\030L\331\334\331\004\034\346\251\261Cr\374l\276pa\302\260\347\332\245-\337\240\350(E\310X\330c\003\246z\323\330|\207\'?ZLI\020\3712:\215\371H\324\360;\232\231\201\373\250\000\003\326\213\232X\205e_\341q\237cO\267\274h\345%\211l\200\243\212n\034\310\302h\260\327\3467\033\010\301\373\333\205No#tRe\213-\320\006\301\254%D\315\022%\324{\274\263\034\273\207\345V\243\273D\306\331pOPk\236\245#D\331b+\200[,\371\366\315L\036\'_\225\207\275r\312-\035\020\251`(G#\221M\301\316\341\220}ECW;#5\"\355\256\243q\021\304\237\275O\177\275\371\326\245\255\334\027\000lp\033\373\244\363\\5\250\333Tm\031X\236\212\3447N\341E\003\n(\000\242\200\n\t\305\004\271$#\020\006h\024\354d\246\233\026\212F\266\271\343jrq\351N\035q]\'}\207\000E!\340S%\210\334\212r\034\257<Qa\203\214\014\2328\013\232v\020\231\007\247Jo\024\2002\001\346\234\016\005\003\350&I\373\247\024\207\035\315\002\270\273\273t\241H\335\315;\2101\201K\320p(c\020\022h\307|\320\204\030=\252kh\032U\312\2669\364\254\352K\225\r\032\316\302\033e\307n8\025^K\204+\363q\232\362g+\262\231\235w>\350\331\220g\351T#\235[\224n+\231\352\310\"f\n\371\342\264\264\203\034\262\211\002\234\251\306{\032i\3522\354\207#\246*\261\215\200\334\255\310\256\224\314\244\265\031\023\031O\312A\307|\325\315\301\"`z\324\207B\264n\005\331Bp\030|\277Z\264\315\201\364\244\204:\'\334\001 \356\247I+\010Z<q\336\252\343E\233WT\265E\317\'\236j\007\205\026\355\236,\214\325!=J\215.\311\3178\335\3235r\007i\242\n\247\013\336\213\t\"t\002>x\311\342\235\347G\010\n\300\034\367\307J\036\245\247bV\316\335\303\245U\276,\366\345c\341\363\326\256+C9=B8\312Z\205\227\014\343\234\320\322\222\230\350q\332\234V\242n\350\253t\242K\031P\363\362\376F\250X\221%\227\'\346^\t\255Y\212\334\247wne\235YN\030~\242\255\351\352\352\371\000\204\035\375\353\226\241\274\rX\t\224\237n\2650N\244t\025\035\r\n\361\202^Iw\000\017\353Qo;\211\034\346\266\246\2642\223\324\212f\347\236\206\200\313\263h\003n1\212\021!l\022(\274\26003\305>F\334Cw\035+H\"dH\254^-\312}\276\225ZHE\320\371\233\346N\225LH\266d\rm\345\237\306\262\357UE\344eF1\203\305f\320u4L\313*\341\333\345\31755\3026\317\335\366Z\270\021P\307\271i\211\211c\004\345\2718\255xe\304\r\323\"\233\334Q\321\r\222e\335\271\006[\035+\037P\231\277\264 \212E\345\230\034g\240\315\022Z\t=KP\301$\267\023\311\335\330c=\352}\367Q\020\254\307oM\276\225\222L\322\366\031y$\253\324`\021\201\357Mb\360\302\256\001\3308\315>\240\313\261I\347Z\307\346\001\205\000\237z\235#\205&7G\240\031Q\330U\255L\333\261\235\254\300\323\310\227I#6\374\002\000\351W\257\240\211\236\'\225\000\221G\024!\\P|\247%\3758\254v\233\355:\301\205\002\251f\371\217p)\313B[,^\312n\356\205\274o\266\024\340\237\247Z/\365!\014;mF\3566\203\376\025Kb\031U\254\314\250\261\260\375\373\374\304\236\242\266\245\373\036\235`\260\246\320:\220z\277\275\027\270\355c&}n\33691\031\375\357a\267\212K[\263%\310\273\324]|\264\350\000\353@\223\273-\313\366\275]\322V\315\275\212\237\227w\005\276\225j+kH\345\r\020\373\277\336<PS\"{\301\004R\264\013\220O.\007\024\272C:[\223\022\204\004\345\231\272\232\022\016c2\362\033\213\213\323\233\206h\367|\240\036*\364l\266\341Qx\000rEh\221\234\231V4\270\276\271r\315\261s\204\343\232\275\246[%\263\273N\202Y?\274\3034n\021V\324\245\342mK\311&\332\336V\334\343$\257oj\316\033\2566#\234.9\3655OB\033\2737\264\351\326\010\204jT(\034\n|\312ZF\225\027#\031\"\210\214\346|Mwr\340\302\030\254@g\345=k\237\263\270i\005\300q\215\247\nh\223%\233\032q\013\010\3078\002\256[H^V\0140\005f\367.\003\'\004\022\305p\t\342\2625\'72\024\207\346x\373\346\263h\352Z\"\315\275\332\210\243\204\356\312\250\335\365\250\256g\005\213+n\000\3654\223\260\367\026\031w\215\304\214{S\3673\310\261D\245\244r\025\024u&\252\n\354\321#\325\374\t\341\364\320\354<\353\204S{0\313\237\356\217J\277\342\035n\303A\265I/[t\323\035\260@\017\315!\377\000\017z\356\267C\246\013C\315|A\361o_\262\325\247\263\203I\323\320DFU\230\261\301\031\352\017\275_\360\277\305\250o\345\020\352\366Kl\344}\370\262V\265IlG3L\364\250\035e\211%\214\345\035C)\251\226\260\232\2634{\016\024\265\231\001E\"Z\031!\342\251^\020P\372\326\364w\"\3077\250\306\223\223\034\210\017<f\271\215VDRTc+\301\257b\2039\261\013C=$\334\247h\031\024\007\271\030+\206bz\036\005u\034 \322\334<\237\275X\224t\371NqQ\336M\345\306_\256\321\353B@\364\022Y\231,\322RDr\277\335\0254\016b\267/-\313H\\\002s\320V\221f-\\y\234\000\251\026\322\347\336\225.<\271\267\\2\344\214`s\315hg\025fM5\322$\212\001\371\010\344\323\345\235%H\222\'\335\271\302\343\322\251\003\324\2653\024@\200\367\353L\236\365#\333\032\345\344n\276\324\332)29\357\311!#\223\r\334\372S\036\344E\021\0029&\177\322\245\350R\270\330\374\304\003r\014\260\347\236\224\362\236g\361\2254\343\"e\022\027\212\341~X\216@?u\272\032\211^Y\230\306\361F\034p{b\256\346|\272\232V\247\313\217lw\311\277\030\373\375*x/\357`\030x\341\224\036\375\3539\3054W)}/c\225\0244{\033\320\032\261\034\361\354\312\2768\316\rrN\230\236\204\360]\276\345\014\331S\306q\322\256\307<,\333|\304\'\353\\\225)\330\326\022h]\271\373\254\r \310l\367\035\353\026\256\254\316\350O\230\275k\251M\026\026E\363Pw\'\232\323\266\272\202\340|\2167wRy\256\n\324m\252:#\"j+\224\3310\242\200n\305{\333\333kD\3354\203=\224}\343\370Vl\336%\262@q\024\271\036\270\025\331G\013)\352rT\257\321\024_\304\322\2317[\306\245\t\341\\\022\177:\235\374B$\266\001\255\235$=\324\361\232\353\372\232G+\234\332 \266\325\257\033\344\224\253\00088\301\253\226Z\276\340#x\334\260\357\355SS\014\222!9E\334\325\206\362\336L\001 \007\336\247\004\036\2075\346\316\016,\364(\326RV<eF\301\212pa\353]\007\251rE9L\322\214c\232H\006\267\335\241:b\206\200\030\222qB\361\301\031\317AI\000.\000\305\'\035MP\001\034\347\024\253\203H\030\215\234\3609\240\257\257Zb\r\275\351\000\346\201\2129\346\234q\212\000`?6\005.\016h\260\230\340\256\354\0221\227=\005m\306\026(cI6#\005\301\307L\327\036.vE\"7\"E;X\021X\372\2036\376OQ\212\362\333\t\031\027/-\273\006G\300<RiV\3277r\221\024M\263<\2768\024$B,\335[\230\237d\200\035\247\234\036\265\322Z[\024\265\215LaT.q\365\246\226\245\364)J\3061\227\034\003\212c\222\352Tq\232\322\306R+\331~\342\366HNN\341\220j\341\313Rh\022\007\201\0365Q\362\2609\310\245\225\013!P~a\315W),,\244+\'\314\017<s\332\255\306\250\255#\227\336X\360\017j\">\202\312\340\200\017\024\325m\304\340\3251\025\244\206;\211\227\r\267\007\255\\\014\261\220\022?\227\247\024\\h\036Q\021\005\220\222zR$\221\310\013\001\365\025j(\206\311\226\341B\000\033 \361\201\332\243\274\304h\034\034\206\253H\315\261\026L[,\205\270\350}\251\030\017(H1\212\022\004\310d8V\307B0j\2446\336C\260\031\303\014\325=\210KQ\353lB\227\034\373R\303\th\366*\220\271\347\025\3175sxhX\264\371\033\031=1S\251 \020\017\006\245\"\333*\304Y#(Nz\323m\201h\316H\'\371V\227\261\233\035\366f\',\300\'\267Z\206\033y\032F\301\033Gz\030\2546Q\263\202qMQ+&Gn9\246\233\021>\224\304<\261\310\006\016*\305\204\020\371\257(\223\014\0161\332\264!\262\013\226\002W\333\320\032\200\300\2272\3441\\w\024=U\211EE\220\256\365s\203\031\346\266\226\345^\324\3549%8\025\024\364eOb\013\036\t\00501\334T^p\036h\310\340\343\025\2532\277B\013\031\214\272\213\251\341A\030\2527\256n<`\210\244\005\004/\3443Sq\243~\355\366\\\304\213\200]\277J\202\374\201le\017\321\261B)\213w:\253[\302y\312\365\251\003 EV\301V\007\212\211nR\330b\304\346\335H#i\030\030\253W|\330\262\201\202\251\332\256(\306eKiq\245\356n\210\177\255O4\246\342\1771H\332\243\025\254Q\233c5\033\244\202\306[\231B\376\355r3\306O\245s\3323\\G\023\335\311\023+K\222\254F2\r\023D\"{\333\205\264\263\333\237\236N\265>\223j\362[\233\311P\222?\324\241?\255Be\245r\356\233es\024\206Y\327t\322\214\223\236\203\322\256\337\330Z\\D\255u\223\260s\203\214\373ROR\332\261\205w\247\331Z\307\346\220w1\375\332\226\311\255\r.\306\331\024]^\342F\034\244}\227\377\000\257M\211X\272\315>\243:\252\035\220\257S\351Tu8B\335\233h\256\013&\001b:\375*\342L\211f\272\267\266\200D\240\005\013\367qY\257ws*\260\215V8\317\257Z\273\030\312W&\201\366E\367\262GSL\265I\365\013\234\023\345B\247\223\334\320\330\343\033\232\257\345\333l\2161\236\331\246jn\242\325\234\316\321\263\016\010\353DJ\223\350bY\332Mv\341\2350\277\337n\265\245%\265\254\020\371k\030\336x\335\334Sz\223\030\213\000\211H\332\243wsV\304\341S\356\374\324\"\254rz\364\340\\\037,\202\313\367\227\372Vm\222[L\354\376Y\215\217\337Px4\245\251,\263\004\213\021\330\006\007j\320\267|\344\343\000Vl\250\"\035Jr\321\030\321\260OJ\213M\263X\341=\032G\373\304\366\250l\352D\022Eo\024\256d\220D\273\271,\177\225gjr\331\207\013m3Hz\2368\250Z\232\330-d\333\214\360\235\315z\037\302m\036;\211\316\263<a\322>\"b+\246\214u\034u=\035>y\000n\346\276x\370\231\256]j\277\021\365\026\225\230Cc)\256\236\247D\264\211\225\256_\305}k\n\251c,l2\010\3130\305K\340\215*}o_\202\312\000\344n\313m\035\005i\030\3650n\347\322\326\320\213{Xm\220\000\261 Q\317\240\251EcQ\352m\320QFk1\006i\030\232bdlx\305S\273\351\357[\322Z\2313\237\324y\230\260\350G\345\\\247\210\002\255\301\nK\0029\364\257V\211\205}\214\304!\016H\307\256)\346h\344;c$\237\\c\025\330y\354\"\306O \023I$na m\301\373\304\232i\020\365+\334G-\324\243s*\304\203\033\201\376Un\010cx\000_\2265\365\2411\025\323\313Y\236\342\000\262\225\030\037Z\232\332(x{\225\\\260\317\024\371\203\220\262\326\360>\025T\343\257ZW\205cPc\334\254\017QZ)\023a\360Ko#yS\031\025\327\370\275i\322\303\013\267\335v8\306{\212m\202DRZC\006\320\214\341\230\377\000\0379\251G\230\027\223\221\354*\0334Hx\031\344\265$s\242H\013n\332\017$U\2437\2714\262d\017#\014z\323%x\346]\323\305\036\356\200\367\246\230\232\"\2268H\000C\036}@\251\320\376\357\n\017N\325,h\212\013\204B|\347+\203\325\207J\265\366\374\225\001\343#8\312\034\234S\334RD\361_\337\253e\004R \352;\232\226-RTr\357l\253\237N\3652\242\231\027/[jO\345\357\222\334\000zm?\316\256\301\250\333JD{\2127\373]+\206\245\013li\t4[S\222\001\374\3058\256>a\323\324W\034\343\321\235tj\337F[\266\324g\214m\220\tTw\357ZV\367PN\006\307\000\237\341=k\202\255+j\216\330\310\232\263\365\375F\013\0132$\311y\001\n\007_\255M\nns\2615\247h\234\005\345\331\231\235!2/\030,[\255E\003H\20329b}k\334rT\343dr\323\247\314\356L\223`\235\244g\275<]\270#\241\256\177l\316\277d\211\222\367\007==\352\335\276\244\276f\016\024\377\000:|\374\3063\242i[j\026\354\300l \212\327\261\273\211\223\207\037L\3275j7W9\324\034\035\317)\316y<\nQ\315s\036\370\365<b\234\0069\244\206)\031^)\007L\nw\001p1\311\346\200q\317z\005\324B22:\322c\247\250\241 b\222I\344\321\234t\246\010\006\006I4\200\217\\\232V\0009\003\212Lw\'\232h\030\2507s\234\001Hs\332\230\010O#\035i\370\311\353J\342e\315!K\\\227U\312\240 \237z\273t\244\256\032\274\314K\273)\020+,I\3450 \366>\265J\355\025\220\347\257j\343\260\231\215z\001&6\007\221Z\376\026\216x\264\327\334\010\215\337)\221\332\204\010\271\025\274\'PV\222<\356\376u\241#\214\024n\230\353T\2132\357\325YX/<\365\365\254\310\347\221\235\002\365F\303\n\246\314\231ki\373O\232A\007\025=\271\r\316i!t\036r\030\221\322\232\262ml\367\253\330\201\373\325\216[\212x\317\336Q\234u\246\230\305\225\327\311l\2140\250\241m\252\315\236OJ$H\333x\336I\300RTz\324\345\307\231\261\030\260\035\361P\257r\256:I\332B#\331\234u\247\271\214\256S\003\261\256\210\231\310\246\356\321\223 \373\271\251w\274\260\206\316S\2654@\350\000r\024\216\017j\320XbkVU^\017\\\366\245}J\266\206tQ\201s\344;}\017\255>\346\007\312\235\353\221\301\025ObR$\205\n\307\234\346\221\016s\212\347\223h\326#\025U\033q\030&\243\232LI\200z\324)\026\366\031\265\331\200\031\311\247\303\007\226\016\017\314z\326\253c6\213v\201ND\230>\225\014aQ\334\036\010>\264\311c\032X\304\2738>\240\212\2227\213c\r\212(OQ2(\"\t#36w\016*(\201[\306Q\222\225\251\224\212\327R\355\235\262p\243\364\253\021E\345\035\361\311\271Xf\206\021\"\271\2677W G\265K\0146jK\025\222\335\000\225A`1\326\241G[\224\366\010\256\323\317u\177\274\275j\275\255\273K;\263\276#b~\265\245\314\224EkSi|\276[\027\215\3339?J}\226\232\261\337\275\353H\035\234\2228\373\264\221\242\037v\377\000\3611Y\033%\021N8\252\032\234\371\260R\270\316\362E+\330\222;\213\202f\211\200\311\003\364\255An\362A\024\210\303+\222T\372T\275J\330}\274\304[*\355]\250\344U\2379\030<@\202\305:V\2201\221CV\"\303N\2126\352\347\221V\004&%\205A?\274pI\307\265]\365\"\305\r~\334]j6\232`f(\357\275\360{V\205\365\260\237\313H\324\254Q\014\014Q&R\211\235y\246\333O\253\304\031\330\240<\257\255m\217(\266Y\202\001\323\216+6\315\022\260\313{\263=\331D\001\243A\311\025\016\2574i$H$%\317%\007oz\250\231\315\231\367\260=\344\2614{~N\271\247i\321\335\352$\242\261\216\325\016\031\300\345\217\265\017rR.\337^K\032\013=:\026\312\361\277\373\277\375zHD6\360yE\207\235 \345\217RMk\025dD\336\245y\264\302\035\014s\207v\353\270t\247\305g\030\270\036s\207\215G w4\333\022\211j\356;I\"\336\252\"(26\3645\237,\215o\010p\240\206>\264\213\021\346x#Yd#sv<\324\332{\013\273\205{\210\325\310\373\240t\024\257b\022\273/j3*\005\000\014\216\303\265g\3112\3109?1\252A&:\001\350)\267\004\205;\261\232\244%s\223\325\230$\216A\001\333\247\326\263,\256\014.\376k\340\260\343\212\315\310|\254\267\247+I#K!$\017\273Z\021\335/1\2027\016\2435\213f\261D~n\371\210\035\252\307\230P\000A\305&\316\210#\017_\232Y\256QJ\004U\350Oz\243;\254n\00198\315Tt)\275K\232\025\254\372\306\253o\247\332`\231[\014I\340W\320zm\2546:|\0260(X\341@8\035\353\266\232\2624\247\271a[k\203\212\371\337\342\216\203}\245\370\352\376H\242\222Kk\332\253\033\315^%?\tx_\304\032\345\330]6\333b\017\2774\225\357>\003\360\265\237\205\364\342\221\205{\271\006e\255[\264La\023\240\024\271\256g\251\250f\214\322\260X7\nk\032i\022\320\307\351To\030\340\214\342\272)-L\231\316\352n\273\276\367\'\265sz\320W\\o u8\025\351\321\334\346\254\3641<\325l\002\300\002z\223DrF\323\010\202\341\217\033\261]i\036sa,\277d\207n#f\317v\3152\332\031\256&\363n\233\010x\215\001\352j\333\260E\\\266\023jyk\205\035>\225\016\251\346E\247\341&\371\013a\275\352\006\343\250\272H\215t\366uB% \377\000\365\252{iVHQ\031\017\231\323\356\365\251n\306\221\215\315\275;\303\372\324\357\373\273\'\n\303\211\030\200+b\333\301\272\270\345\257-\217<\3475\234\261Q\211k\014\331m|\020\257\223=\344I\236IE\311\251\307\202m\000R5;\235\303\271\002\271g\230\032\254-\207I\340\2739UC\337JJ\367\n\005C\'\201\376`\320\352\2541\331\243\030\376u+0\324=\201R\353\301Z\240\317\223wo\'\246AZ\305\272\360\376\267g\023\265\325\221U^K\306C\256?\n\354\245\216\214\2640\235\006\2122\303\2622\3511\033FH\034S!\271\312\001\304\213\3347Z\353\214\223\330\305\306\304\212\321\273\3423\273\325q\322\245\230\355\210\2642\010\2603\202;\325\020WA#a\356\025e\017\357\326\226\030\355\221\361\022\2521>\264\\I\\\260cq(h\344\010\337\316\213\243*\304\031\207\327\232\245!8\222\3034\321\246T\226R:U\231%\205\242R\207c\372\016\265.\314\022\261f\322\345\201\003\355\033\210\354Z\264\354\357\'\311\\\251\343\241\346\271*\322L.\326\305\370XJ\277p\257\275<\204E\334\362*`g$\340\212\340t\333v:\251U\323R\205\317\213\004Q\230\355\335\3168\363$^+\236\276\277{\271<\311\244i\033\334\327M\034:\247\250\334\234\235\210\2428\031 Sd\220\347\226\343\025\313VWg}8\331\021\371\230\036\231\246\031\030r+\026h5\356\016\3221\327\275>)\201\306\360N;\323N\302\334\263\025\310S\204$b\257\351\367\317\277\357\360z\201]0\225\325\231\205H\234\341\350\r(8\351^s=6<\036:\323\324\234ri\016\302\347\265.\317\223\256\010\242\3003;\270\'\006\227w=3@\201\230\361\267\223FpzP\002\223H\331\004Qp\020\216rh\000\n`\2039\342\227\037\235!\215<d\216\000\245\371\207\030\246+\211\214\266I\305I\0023\314\261\252\223\237N\325\023vW\031\271k\020\202\335bA\216\347\334\323ebd\343\030\035\253\310\251.i\r\020\335\334\374\233d\205[\0350k=\245\205\270/\264\366\006\262l\231nEq\247Mu\031h\2250\234\365\353Z\032DsE\246F\227\037}I\300\366\246\207\024[\215<\311\026Pv\201Q\337\234\020T\234w\245r\336\305\031\330\252\2001\315d\2372\033\361+\306\330c\214z\212l\307\251\264@-\200p*\010\363\023\025\347\2555\334]G\253\360A\356j\031A$`\214\325\266CB^o\206\005,F\342p*x.qjJ\251cI=A\016\007\314\204\0162z\324d\210[\312=*\330\213K,k\010\021\232\256\204\223\225lR\013\223\206H\237(C7~j;\231\031\330\224^\235\205o\035\214\330\344tkm\256\001R9\024Z\356Km\247\033T\232m\202$Q\265<\305\306*\354\014\014Dg\203\326\241-J\276\205+\354\307*I\375\323\371\212\2611PG\241\252lD\250US\250\344Uh\300\2066\335\202Gz\316[\024\235\212\222Nd\270\332;\324\266\377\0001m\340\020:V1F\227\271(UV\014\264\311\231\267\202+k\350f\367\010\344\010\271=\372Tq\312\246\354\207\031-\353\332\205\2612$\235Rm\254\240\006_\324TR,\212I\013\362\221\301\246CeM6G\373Hi\t*;\037Z\274\344r\312p}+H\231Kc#z\233\231!\224\343\036\265n\322b\366\350\240c\031\024Hp\330\235\024\305 $\221\315:\344e\203)\374(E3.\3629!\324\001*\330=\300\316j\314.\321\306\300\203\234\364\244\304\213\020\002\226\314\323\234\177\026\017jX&\363K\204 m\365\241\001$n\273J2\3440\301\367\254\215~\306d\260\363\240\033\243\215\362}j\244\256\204_\321aI\264\266\221\243\001\261\225b:\321kp\273N\322\010\315d\264\030\326\013\016\236\037$\271m\304U\215 \003w<\323(\n\250\002\217\255h\214\332\026\366\001}+\310\370\362\224\000\200\212[\211\362-\316s\345\347\257\260\253h\213\231\326FA\250O}\"\374\322|\251\337\002\265\245\271Kk\022\331\014\344d\n\206\315\026\305] \031L\267S}\354\321\177v\251\032\240R\322\310p\250;\322\260\315\010\022\r\023N\222y\233|\233r\313\352{\017\245a[\006h\345\325\265\003\207\224\374\252:(\255b\2641\233\037jL\3618\311X\334|\304u\305h[\334\371Q\255\275\266\0225\036\235)\330I\350C\r\334j\217\363\223\203\371\324aO\232n\245\316\360r\027\371U\231\267vXS(\314\263\020\t\034\001\332\242\270\220*\201\203\223\321E\003r\320\255+\274\267k\030l\250\306@\355\365\253\260\"\264\352d*B\2163H\"\356P\271\022\336\\\225\205\013\252\267\'\260\255\0338\315\264\037\274#\'\322\243\251\242)\352\323\306$c\016N\000\004\236\346\253YF\307\017\'\003\256=kDe{\262\364O\270\235\235\252\035J@\";\327\201\316j\323,\343\265F\r.{\363Y\023\270\363y\031\003\255b\355r\326\306\336\225%\263\241kY\262v}\303\374&\237mj\260!b\304\310\303\223Y4\\KZt1\202\314\334\266x\247\3523$\010\004\231\334\337tT\\\332/C\'SutBF\346\317_j\307\277\226>>\\\221\336\266\202+s\271\370\021\247y\272\245\316\250A\330\203j\375k\330\021\262\271#\232\356KCZ@\303w\025\033\333A(\304\320\243\366\344SN\306\344\326\320Co\027\227o\022D\236\2121R\375j$\356+\0014\233\252l\026\014\320M;\010i4\205\270\247bY\034\222b\263o\244=\001\311\'\221]\024\221\214\216z\375\324\2633\014\001\372W/\177/\332.\231\"\220l\035}\353\321\242\216*\357\241\235sl\230*\t#\257\322\242\206a\366n\244\005\3175\324\216&\206E<rG\223\022\027\007\202j\320\230\276\326\307#\323\265&T4$\\G\031\222g\n\247\356\212Y<\202\321\243\260b\304aq\234\324\271X\3221rgI\242\370?U\277\211M\333%\244\035T\365lWq\244h\366\032l*\220D\035\300\346G\031&\274\372\370\216\210\364)P\352ie\217|}(\003\025\347JM\235\\\250\\\322\203P\026\000i\341\2514K\210\340\324\340jn\326\306R\211Z\373O\262\276\\][G\'\271\034\376u\312x\217\301\t(\363\264\307;\207\374\263\'\037\225z\030Lc\213\2639*\322\2728\233\233ai1\215\274\330n\020\343k\014\034\324\2550(\004\252\033\330\216\365\357F\\\312\350\340\222\345#yeU\315\261L\216\250\343\212\250\263\3153\356\236\000\301\017>Z\364\2523R.Z]Z;\001\023t<\206\343\024\222_)\221\224\3106\217N\325-\224I\271\304k$2\345W\246z\032b\335M\031\3636\007ry\354)^\303\036\232\274hA\232\330\206\317\313\264\346\257\035C~\323\030u_^\206\215\367\033W\036\272\235\354\001\313\313\210\301\310\313t\252\327z\261x\203\335]\027L\340\347\255C\212\010\253\031\227\327\r,A\343;\324\362\027\332\255\333\001\0241\006bX\200I=\253:\216\321:i+\262\314\354\0226 \366\315fIy\226(\254:\363^[\334\356\021d\"B\305\271#\034\232l\327Xp\246L\3765%\\lRy\262\177\254$/\345V\236T\2150\017\'\2650H-]\244\230\001\330\3655\253\020\001\301\034\037j\270H\231#$S\300\2565\251\336\325\205^\271\034\323\201=\306(\260\\p\365\245$\232. \312\223\216\364\005\301\346\230!I\000R\014\236i1!U\271\301\\\212Fo\232\230\304nG\007\232Lc\004\320\014w\312\010\035\350\004\203\232\002\340\314\002\363M\014O4\204 \371\211\253\33229\273B\017@sY\326~\350\326\346\264\247\007\326\253\010\331\230\225G>\365\345\024\312\327q\314\\)S\307_j\316\273\215\363\363#(\3167m\254\332&\306\266\233\034\221\330\'\2309=\017\250\251\360\304r1T\266-\t\376\2562G\030\246H\333\342,q\212Z\t\263>\353\257\036\224\353F\027\021F\370\341O?Z\226\310D\322F\302M\300\360G4\200\374\330c\212\270\255\001\2141\003!\031\344\325[\363\344\220\030\214\202\0056\264!\211\251?\231f\235\016\342>`jm5\nZ\253\026\344\363J;\334\233\023\310CG\274q\356;\323!\306\377\0001\3278\030\031\255\031$.\344\311\362\014\262\234\342\243\232f\202e2\202#~\376\224\355\240\2214J\376r\270\033\220\367\364\251\245\221!`I\000\236\365pz\nD6l]\335\007(rEY\267F\362\314@\360G$\321-@4\350\313\301 /\337\217j\260\247\313P\241\263\357Um\001\n\345gQ\221\234R^\270\033Ux\024n&\312\353;\021\3062)\267\022\222\270\306s\306*m\240&Wh\244\022+\017\224z\326\245\265\253\033el\236Fr{\326\017sx-\007\317\022%\276\344^W\257=j\025\033\327p\252D6>F\214yh@P:\014w\252\262\303,\222\263\005\000\223\301\253\261\234\230\230\005G<\3247S\230\355\344;\360\000\253H\200\321\345Im\025\230\000\311\301&\247\231FAV\034\366\253\216\346sZ\031\232\304,\002\315\263\004\235\244\212f\221r~\320\260\2661\330\373\321=\002\236\306\214\341\345l\006\013\212[\371\225\021\010^z\034RE\262\304-\210T\222\t#\221U\356\303\310\233\321N\356\364\367%\021\263o\323\311\352\301NECb$R\254\370\304\203\201H\t\356_\313\331\217\357`\324\312\341\355n\242\220\361\267p\037J\030\207i\362\201\244\300s\220A\000\017\255g\351\3210W\022\253)\007\234\366\250hh\270\214\005\264\204\014\234`R\371\245a\300\340\260\002\265\212\272\"Ld\023\021\'\226NB\365\252\032\373I\016\236_<;\355Z\273\031\022\022b\267\2021\303\004\033\276\265\002\274\257y\344\237\226I\207\025\224\221\244[4\355C\331\333\204\177\235A?\211\252\232\0028\275\270\324\257\327b\307\367\001\347\360\246\221M\232\205\374\350\236I>m\353\300=\253\037\\\375\364v\366\300\340\002Y\215j\216y\223\351\322\"\246\325\000\000\000\024\335R\366\013\021\207q\346\021\235\243\2552o\241\027\207\222k\246\373L\2126\217\272\265\241\263u\350L\357\013\317\343E\356%\240\313\245+#0b\334\364\354*\244\362y$\273\344\310\303\n*\355\241\027\324\212\325\266\222\007\314X\345\215>Y\236Y\204\021\266I\352A\351Y\227\023V9-l\355\002\026!G\'\035I\254\331\256\245\273\230\262\302\302.\213\315\010\322OBi4\2570\211\232\343a\003\356\342\236\261\224\217\034`w\247\270\224,:&U\034\n\311\361\005\326\330\233k\002z\375*\332\320\246r\027\327\037\274\014\240\021\216MW\021\265\313\005N\013w\256r\226\205\3756\336;)d\332\305\276P\t\365\253\311$\257\313.\027\260\003\232\233\334\244Y\2661\304\376l\254\000\3503\332\252\352\363\213\233\225\223v\025W\n\r.Sh\354b\337M\272a\316\024\017Z\316\272\303\006\n\330\'\245uB)\214\366\017\203V\353k\341P\301\203y\222\026$W}\033eF\ru\333Czc\324\324\252sP\315\207f\212\201\210M&i\330\006\356\346\202\325V%\215-\307Zan*\2223ey\344 VU\354\204\216z\327U4C\330\346\265\251\210\237\312|\005a\371\326\023F\302Vl\017\2505\350S\330\363kn1\231\210\000\340\036\365V\372\346!\037\226\361\026\311\376\021\232\325\0302\272\311\033N-\340\201\225\210\317\315\305\\0J-\325\023\014\314\334\200zTI\330\250\243K\303Z&\241\255\334\371&0b\215\266\371\204p+\320\2749\341=\037F\223\355\021\306n.\277\347\254\274\340\373\016\202\2701\025\255\242=\034=.\346\367$`\364\245\002\274\351J\347v\300)M@\202\212\000QFy\244!\300\323\201\251h\316Hx4\271\251\330\312H\314\361\026\207c\255\332\371W+\266A\312J\277z\274\363^\3205-\036\344\275\302\231\255W\356J\242\275\254\006+NVp\327\247s\036+\353i\311\r\021\036\247\265 \225\326\340%\256B\347\234\3645\353\263\317\265\231<\326\326\322 ;V7\007,Gz\212\033\023\3473\202\273\010\301QQsU\033\223\310\251\032\210\343\014\243\320t\246\306\273\217jR\032\334Y,\243rX\247\314GcP]C\177\014g\354\363\254\212\007\335?xT\246]\212i\0231\3353\022\371\356i\363\304$\214\306\340\343\326\223ab\275\244\006\031\316y\035I\255E\231X\253\006R\005eQ\335\032\322Vc\245\230<M\363\343\214qX\027\263E\034\233W$\236\265\347=\316\32295<\262\205^}\005>\335Z\362C.\335\240\034qI\206\346\244f8P*\215\242\242\222@\315\202\334\023\332\222W/cgO\205D*q\311\346\256\240\301\252[\203\330\306S\357Rg\212\343;\236\242\251\305=Ni\337A\013\232\024\372\324\336\342\034\016\016)KqV1\003\006\241\207\024\256\002\003\315\0143LC\224\023H\345h\001\270\3059\216(\020\203\007\223\326\221}\351\000\345\255]\024\010\355d\234\272\346C\201\355\212\346\304\273D\244\036c,\231f$zT\027\232\215\300\217l.\023>\213\232\362\323\006\306h\356\2672\023+\261(y\347\255l}\261b\213cD$\007\2651\220\0317\266Y\260\007jB\331jM\224\231\025\346T\001\333\257\326\253H\301\225Pg\203\305&\210b\262\007\214\256\007#\275W\262\002(\231A\031-\223\216\2244I3\315\357\232k\020\300=Zz\020\330\306b\214\033\326\2374ku\001\217\200OF\364\247{\241\024#\202H\224\332\271\334G\335\307CV2\361(\211\324\206\003\2415\"\031\024\254\243a\350\rY\216U#\332\264\203\356K3\347\222X\256\367\304\000\317j\275q\0047\021\242\315\270m\347*y\252r\034Q3y\010\230\210\376\265$Q\306\350D\221\206\317\250\252\216\242dR\225\204lD\n\007\240\251\240\001\242\016\017\006\201\"\332\221\366q\260(\307\007\002\252N\256\"\030S\271}\272\325\267\240\230~\362,3\215\240\216\365\035\374\241\"F=\017z\224\311d1H\201\201 a\273\322\313\270\270*3\317\025\022v)\03260G/\315(,\0078\253\216I|\0361\320\n\311\3677[\r\371H!\272w\252\356\023v\324\300\035\2005\252F2vf}\353\271\270A\374#\275J\3637\3129\007\245h\2643\223#gX\233nr\335j\215\335\275\325\305\270\230\225 d\225\351\305Q\027\037\247I\032Z\214.\334\362jKV\373M\273L\215\200\207\034\324\255\005!\227/\366\210|\265|\217Z\2455\221\264>p\223\314\344\0368\252n\342\211\255\020\335\265\301\341\227\"\252\352ip\320)\2103mn@\364\252[\024\305I\210\010\307\277ZF\277h\t\300\016\240\343\006\222\320\226\301K\313(0\251\013)\347\332\211\374\341\252&\324%c \001\333\336\246\372\224\2115u&\302W\2141t\303\000\007\2775V\316\355\230\266@dh\360E9\010\265k\031\213J\265\001\270\346\244\235\366\304\305\372\021\315\002C\232&6\251$<\251\344\343\322\252I&J\266x\025kc9n%\217\231-\304\315\264\005\343\025W\304w!\356m\242C\230\320\235\337Z9\205b\306\233\004\267\262\227\316#\003\226#\364\255O\"\322\033\237=\220\264\330\302\037\356\212\206\315\022\260\313\363\037\226\244\2761\300\024\333KO\264\256\351\033d\nw\037\366\2154\300\275\027\221&\346\307\003\217j\312\325\302\233\177\263[\277\013\363H\347\371\n\3213)!t8`\215\032\362\340\205\2121\205\317s\353X\255au\256k\263^\003\0340\026\300c\375\321\320}hd\250\235%\275\213Em\344Cp\024\016\344u5\035\266\353\033)d}\257#>\001\242,\231F\305I\'\362`\3132\226\317 \236\265\235\250N\262\352\013!\371bT\000\363\336\264oC+\352ih\310\263\003\2711\010\035;\2652h\215\255\313}\236-\276i\371@==\253;\334\336+B\345\355\244p[\242\315!y\333\220\007\255@\001\210lp\023\034\323\035\2544^#8D\334\307\333\245K\275\301\033\277*h.Aw(X\330\2362+\234\326f\007\t\200s\333\326\264\236\210H\347\231ck\220\034\201\223\200\271\253\004Kn\240\306F\366;G\035+\231\226hZ@\211\017\357\030\263\236\276\306\264\255Q\231~\352\242\216\376\265\233v5\211\014\366\255$\354\333\225\223\266{VE\373\307\270\204\303\001\305\nW5\261\231y$AU\017.y\006\250K\033\270\300l\016\344WU!\036\317\360\310\301\007\205m\022\006&<\235\304\372\346\273xXm\343\245v\255\215\351\222\206\346\245F\251f\350xjB\3256\0017dR\006\247a\rcL-\305RBcKqQ\227\315h\221\233*\\H2Fx\254\353\243\223\220s[\304\211\034\347\210d\313\341P\026\036\275\253\002G\332D\231$w\000\327u5\241\346V~\361V\356Wa\362D\331\365\246\332\t\306J\307\222\274\226&\264\271\224E\205\026K\307\270fe]\270\r\352k\260\360o\204\257n\325\256n\330Aj\344\025\376\363\017oJ\347\255>TuQ\247\314\317D\262\266\202\316\325m\255c\021D\243\030\035\352u\034W\217Rwg\251\025\312\207c\024VC\n(\000\315\024\000\231\245\315\026\006&\352\003S\261\233$V\365\247\006\254\3323hxj\016\010 \200A\352\r\021\223\203\2720\222\271\313x\253\301\326\232\206n\254\024Cr9\362\307\010\377\000\341\\\034\226\377\000f\271\222\326x\032\tc8en\325\3648<G\264\215\231\347\325\205\202o%\341\307W\376\034Uy\345x\302\204%OB\255\306k\255\356f\231,7\014\353\262hTm\350U\263O*A\336\t\244\331I\010\367\"5;\367\017|f\242K\205f?3\220;\221S\271I\201x\247$m \217Q\315Th/\026F\362I\2321\311V\355Hw\270\350\002\237\276\n\222:\021\322\251\312\256\221\257?t\365\254*\350k\024N&>@=\366\366\254=Y\\\311\275r{\032\341{\235qZ\023\351\232k\020\254F\3362kr\322\002\000TL\366\000T6j\221d\351\2156<\331<\265\356\007Z\271ac\005\272d\000\330\352Xf\225\306\311K\252\216\242\243\222\341Q\260>lu\253\202\324\231;\031\2526\3659\251G\"\270\254w\0060\274\232r\236(\260\207\014\355\347\255/a\232\022\022\035\234\364\240\203\270\372b\235\303\250%+\037jhw\020\034}):\261\240A\222\0063K\2162h@\007\031\244\0074\010C\267\007\322\224q\212\020\354;<c\240\255=4\263i\342<(U8\034u\256|J\367F\210\347\220\006\300\306G\025B~\003g\203^S\210\210\364\251\014w\001\312\022\255\225$V\262\272\362I\300\243dR\324Va\203\203E\264\205\211\014\270\307zI\215\013v\377\000\273\0039\367\252j\255#pH\305S%\242\300\310\\Tp\305\030\336\304\223\236\242\202X\333\177-\324\356R;c4\220|\262\004a\221\232\tcn\377\000\326\274K\225\300\340\324q\227X\306q\223I\010xu 6\006\341\322\237\273\316`\\\016\006*\323!\217[8\t-\265\262y<\3242F\024\217/\356\236>\225\242\217Q3?Q\014\204\377\000xt\255\035\016h\357-\225\231\276u\341\224\367\244\265`\211\'\210-\3033)\021\344v\342\247\236UV\033@\000\364\255-a6R\324\345\331\037\231\270\014\361\370\323\264\211>\320\230V\036\343\322\246OP\211\241\002\264Q\260p\016Nh\222\345\tC\202A<\343\265U\354\204\311\')9\0213\020\247\241\025V\342\t$\205\255\323s0\373\247\035hZ\222\321\231s\025\304\026\352Z6S\236jh\235\366\215\352\310O\250\251\231qF\365\266\310mF\tbFI\252\2272\266\323+\262\306\200|\314MBF\215\214\202\351f\266\0067\336\275\232\235\202#\334\027\245i\023\031\231w\2239\277X\307\314H\340\016\365\246\3023\007\314\301_\251\030\247\324\236\205\013rnn\361\321W\357z\325\253\325\021F\253\032\261\004\340S\216\3442\265\324&8\220\262d\036\270\354j\236\220\317\034\322\332\270\306\341\223Ub\036\245{Y\032\027\222\027\3109\302\344u\255[\342\261i\204\273}\334g\212\224\265-lG\246\264\262@\031G\356\361\200M\013,\266\322\230\244R7r\247\326\264D\260\211\026y>C\214\322XA,Ws\371\221\206C\310=@5,\244\211,fW\222@\020\256\017J\232W\333\"H\270\0308\"\2041\257#\005\220\001\324q\357P\033X\247\261Y-\202\306@9\002\202\t\255J\265\202\006\350\200~\225[S\227\375\021\231I\300\031\247k\242\033\261\026\225s\'\227\016\307\306:\214\360E.\2574p\257\232\213\317\367{\n\023%\225\354%h\244gf%\345\300Z\271>\227mp\351\031R\0306\346\301\373\324\256h\221uY\255a\303F\"\211z\ne\254\246\365\231\343V\010\277y\230c\024XcmB\006if]\374\341\0063O\325n6@\212\214\027{`\201\330T\333R[\261\002L\322\"\306\030\254 \374\243\373\325%\322\017\262\311\034J\273\210\371\217\265m\023&E\004\220O\2474R\234C\027\004\372\237jX\336+{U\t\323<b\233\002\346\237\346Ko\3479\302\261\300\347\265G\257\316\220\351\252\200c/\330R\216\341-\212z}\254\027\326\"{\225o\231\216\314\036\302\261]c\237Rf\227>Lm\265S\373\304z\325\310\311+3Zi\336\312\313\355EI,\330\000v\251t3<\327\013{q\222?\201z\347\336\263\261\252-I(\222\355\244+\203\236\364\267Q\305:\223+\020\270\344\212\264=\3126J\261/\004\023\236\364\371\244\313n\307Z\270\255I3\365;\241\034\005\262\236\3315\311\375\247\314\271ys\310\343=\252\352\354\010\201a\266\363\376]\322K\234\326\325\255\213\311:\312\377\000\"\250\340{\327+E-K\213\024i!;A\366=*y%\205\020\344\361\216\325\223\211\321\024d\3527\240\222\221+,~\247\251\254K\226\004\223\320\325\3067-\262\224\350H/\216q\305V\201\244i\202\006 \347,+\252\222\324\206{\027\303\353\224\177\017\303\034C\001\t\0141\336\273KG\312.Nx\353]\215\033\322\330\262\037\025*\311\305M\215\320\3573\336\220\270\'\255;\024&\361\353G\230=i\330CZO~\264\214\334SHDL\370\352qP\315.8\253Fl\2474\231=k>\376\344D\205\201\004\364\305m\r\314\246\3649MM\303N\352d\313\016[\025\222\032\010\237\220\300\236\235\363^\204v<\271\352\311\030,0;\335\276\315\374\000imL\204\356H[\312#h\343\255\r\013cc\303\032b\335kvQ\272\006\214>\346B8\305z\312\201\302\205\332\007\000W\233\213\227C\324\302\255.<\014R\212\363\231\326\031\242\220\205\244\3150\0234f\213\014L\342\232^\251+\211\354F\323.\322K\005\307\251\250WP\263\017\363^[\377\000\337b\266T\214[\'\216a \337\023\007S\335NjT\227\'\332\263\235;\021{\223+\017Zx5\316\321\224\205\315ex\213C\264\326b\036`\331:\217\225\307\177j\350\303U\366r9j+\236a\253\351\267\232^\247\345\317 \0308^1\232I\"3\304\035\217*z\236\202\276\2122\347W9Z\3453\215\316\311Z\324\340\357\350\340\364\250\r\356\241\004\205&\036t\000}\362:{\346\251\242S-\301\251Z\264\1774\204\021\324m\315%\305\365\273\020\003\261Q\337mM\206\230\350n\255\211\001\t-\323\225\305\\\2142\215\300\343=\351X\32129\n\344\007\000\344\361Q\311l\2463\301\031\350Ee8\335\033\305\330\243<\022E\367T\262\236\342\251\033if\230\272\203\263\241\317j\342\224\016\205#b\316\332O,o`\006:\n\320\204G\nt\367&\260qf\367\024\334\216\271\342\252\334\335\023(\3019\307AW\030\031\312DR\\\273\020UNG\255B\362\335\310J\250\353\334\n\350\205#\t\325\320\260>\3574\3658\257-\236\270\245\201\342\234\017Lt\244\010Q\223N\347\0304!0\034\034\n\223\007m\026\030\325=\251wS\271#I\365\244\357\232w\035\207\360GNh\'=hb\260\337~\264\034v\241\r\010h_\255\003\270\374\220\007\031=\005k[\303$v\237\274#q\347\003\265r\342e\240#3Pp\212s\236N\007\326\261\346\275\2229v\237\237\332\274\2077{\n\306\256\210\352\333\263\033(<\344\212\275#)\007 \001U\320cT\374\231\006\226\317&Gr\334t\305!\241\327G\367d\016\365,k\262 \253\216\007_Z\240\032C\017\233\031\025WqK\246\300\312\261\351\236\224\326\3041!\332\26378\317j\211\211\3632N\016x4\256Cw\022\345\332VV\310R\243\255\\\337\n\307\273\216\007$\320\230\236\304\010\260\263q\234\032.\021c!\221\230\217z\325$\311\271$R\271\203$\361\330\322\314\023`\0211\311\347\232w\260\212qZ<\367[fl\005\344\343\275Zx`\266\n \217`\3178\357Du\0319f\270Q\037\360\217\2743\326\251\337\234[\031T\0261\236\202\255J\344\311\016\266D\274\201Y\223|m\353\353U<:\353\026\245=\270#\' \003\355D\225\304\215\2237\033j\244\333P\025\014H\034\323\272\260\026`q(\r\036wt\"\256B\305w)nV\222\001\242(fv.\t>\231\252\332\242\217=\\\000\274`qT\325\320\\In\n\333\307\032\347\007\222k\013\304\217$\305\"\311+\327\031\353Y\275\n.xlyv\r\0231\336\016ke\344\337\036\322qUM\\\232\233\034\374\217\345ki\346\260\014\255\220=\215j9\363\0303\036*\355\251\035\004\206!\346\266\300\024\032\217\314e\221\243\220\237\227\2475I\031I\3506\352\341\204eU\213\016\342\244\20204\357;\000\2767\034\212l\230\224u\010\347\274\362\r\260\033\220\372\361O\3247\275\254\260Hyu\333\232V-\r\320\022X\264\363\023\023\265\030\205\317z\265t\026x\303\261\'g\351U\035BE\033G{k\362$\037#\3645\245\004\300\310@\306\030t5\026\035\364*_\311\366[\205^p\3435-\274\250\367\n\207\004\021\223R\364`\235\307_J\003\306\016\0009\037Z\226\321\2260Oc\330V\210\206\306\006\n\3063\205\340\216k.d\236\367L\221!\306\355\230<\323\330\316\327e\275\017Lh4\330\332\344\237<\216\007\367EC\250ir\275\304\253%\312\245\271<\022y\2505\345%\321\022\335\256&x\360\351\n\005L\363\317\255ji\354\277jva\223\300\372P\201\230:\305\313]j\222\251\221\214\02161\330\232\332\322\000\026\213n\010\016~w\307oj/\250\226\305K\253\201\366\347\231\330\010\224\355P)\260\303.\245r\2673G\345\332\'N\305\251\220\265\'\221\343\212r\333s\260a\027\322\253\311?\225\030K\200\313\347\022\t\307\037J\322\004H\247p\017\232\266\321\2411\251\371Uy\316{\324z\214\262\301\265dF@x\004\216\264M\330\224l\333\312\3428\243\210\02206\2553W\260im\3634\347\314$g\320R\203)\221\25340\244\021\221\220\273S\002\252\351\332[O|\315:<q#d\2020X\325\262b\256k]\300\362\002\016\321\031\030\002\244\211R\333M$\022Jr=\375\252:\233[B\256\234\002\273I\"\027\221\271\003\260\025=\354\310\332\\\250\253\264\343\322\213\352#\032&\310\334\335\205Gq8Uc\232\350\201\2331u9P\243\r\313\323\345\006\271\340&,I\371\213\036\000\250\250\365*&\226\223\007\224\373\245\306\363\370\326\372a#\344\364\353Y6\213\212\324\243{:\244\201U\213\367\302\325y]\266\340\365=\005C6\216\345+\371\025#\3037\316z\n\312\272v\307\336\374)\245a\310\201]\360F\354\237\345L\207o\230\316\335\306\ru\320Wd=\216\357\341\276\245\345\264\226.p\245w\243\037\345^\221apJ(\302\225\003\255u\315X\326\214\256\213\302L\214f\236\222v\316j\021\322\207\231:s@\223\222sT0\016s\326\234\315M0\023wzl\217\201\327\024\320\231\004\222\001\3115Vi\263\316N*\221\233(\335]\224\004\371d\217PzV]\345\314F=\363J\261\256{\236k\252\224\016J\323\2629\273\250\336\352\370\311\023\017,\236\374f\235\262%(Z\025\033O\313]\233\034=nR\273\002\363U\335x\n\304\213\362\005\255-\314\245Qy\004dR\223*:\235_\303{F\227Q\236\374\266c\2116.?\275]\314|W\223\211wg\255\207^\351 4\271\256;\033\330\r\031\240\004\315\031\240bf\220\232v\013\014v\302\223\330W7\342\337\021\303\244\333\035\312ZFS\260\003\311\255\240\211\226\307\235\315\251\334\353\321\025\223P\270\212a\222\221\003\205c\332\271=A.\354n|\271\325\243\230.\355\245\263\234\326\361l\345\2327\374\033\342[\335\'R\201R\341\332\335\210\363\024\266F;\361^\327it\222\205*\300\206P\300\217CU8sF\347,g\357X\276\215R\241\257:h\331\241\342\226\2631\2223|E\243\332kV_g\272R\035y\216E\373\312}EyF\277\245\336i:\211\263\270ye\307\314\001<2\372\212\366\3605\256\254r\325\215\312L\261M\265b\267\362\345\007\260\255\ta\017k\345\223\235\303\004W\244\314b\264*Zi\361\254\245\007 \214\344\366\366\251g\2067\033LaJ\360H\030\244\306\264\010,\326(\2739\035\030\216iZ}\261\354U\311\365\317J\222\266cm]\313/\232\202A\357\306*\324\254\010\313\003\214\361\201P\325\315\"\306+\205\350qUg\225@\033X\020Mg(\232FbCv\301vg\351N{\211\030\252\357\300\357Y*hn\253D\204\374\240)\031\246\310@\\\0003Z(XNwCz\021\223\214\326\214Q\343\014p\ro\010\0309\024\224\340sN\\\021_;\271\364hSB\023K`\036\t\031\307zPy\240V\035\273\232P\307\024\014\027\007\234\221J\007\313\234U\n\302\037zA\323\025%\013\234`R\276\017J\246!\025\261\327\2459\266\216\005\002c\027\246O\024t4\220\023Z\204y\024\236p\303\217z\331\324cx\243\022F\247h8nk\213\024Q\203}*\313\234\343\216\376\365I\255\367\341\201\301\365\305y\361\212l\203R\305<\220\027\363\251\356\2364\214\220rqNM\025\320\202\331ex\214\270\302\036\2254G\202\010\372\032\225\250!\311\026\363\313q\232\234\363(\301\342\2300v8\333\232\213\312\314\200\364\035\352\321\014K\3132W\316\203;\207U\365\254\273\302c\233\r\220q\234VU4\"\305\313+D\272\2623J^<\375\323\237\327\025Y\313l\330[8\365\357BZ\\\033#\202m\215\267w\006\254\027\035\315l\264D\330\232\304\231\211N6\250\347\332\245\270\331\024Ac\000\237Z\273\\OAVR\261e\320\007\356EAr\347\001\301\343\275\033!&:)Y\'R:0\246N\300\314c\213 \270\347\353M\r\223\331\261\202\005\200\306\027mP\324m\374\231\215\375\2630\221H,\265V\320\222\325\304\241\341Y\242#\346\346\233p\262\210\026\343g\356\317z\200\'\323\346\037e8\000\020y\253\321\262m?7-U\020c\341\"6\'=EC\251\312\237df`\0169\036\265\247B/\251\235\024\333\342\346\250j\250\373\343b\244\251\3175\204\231\242-\351p\275\272\374\347\227\034\217J\272^\256\223\260\252#\003\304\240\375\252)\3079\030$v\255\305\036}\262\272p\000\034w5\245\365\"\332\022@PB\243\030#\2552\363\022\205\010\024z\237Z\243&-\244\036K?\316\030\021\306E:\324\233\270NIX\272\036:\322B\330\247\032\265\264\257\026\030\240\345N:\324\222Fe\037:\340\036\364\024\206\314\302\014m\037.)\272r\356vgbCt\247{\013rK\364\000\205\317#\221Y\363J\321\274Rg\001O4I\202w-\352q\033\213U*\337:\235\310}}\252\r\035\227\354m+\225\363cr\247\351R\365\032E\230\231.\017\227)\303)\371\r%\322\317\024bT\r\225\352*\367D5qe\333x#\225N\017J\247\245?\224\367H\344nO\224\217\245Ka\025flX\310g\266\311$\361\217\245ek\311$\332\220\341\266\252\340z\023U\320w\263\031\244?\227\346\242(\003\215\306\256\333\314\026b\t\311?\322\241\003fU\236\'\270.\200\034\311\271\207\343[\027\005\204\373!\001Y\377\000\225\026\352\005}:\316U\324\236k\220\255\032\344\216s\223\332\237\342\035]m\341\003 \271\373\252;\232\273\031I\330\253\240\274\267%\345r\034\2579\355\315K|\262j\023\305a\016<\270\217\231+\347\364\252D\214\267\332\267\005\242\347i\342\245kT\325/\"i\246>\\D\374\242\246C\211uLkr\321\333\344\2766\375\0052\350?\226\023q\'\271<\323\212\034\331OJ\363\005\321\272\231\033\010p\274V\234\232\204j\233\334rN\025s\311\247\250\242\310.n\313\242 Q\273=\217J$\224${\211\317\240\3654X\253\214\216\356A\023*\001\3467V\376\350\250\232PSoP8\241 l\315\276\225\367yK\300\352H\357T\256\026f\217+\036@\035I\305Z\225\211\265\316ji\214\223\023\"\017N\271\251\355\226I%H\342@\304\364\366\251\233\270\3666\340K{H\262\300\031\027\277\275A$\362\314\204\240m\247\251\254\033.,\216c\0340y\307\010\007\336\365\252\022\274\263FY\025\312\343\256*\222\320\332,\316\224\234a\211\'\324\324\017\2069cZ$\014\2479e\177\224\342\2263\265y\315ua\326\244\313c\245\321I\202E\2212\255\200F;\327\244xz\374Oh\034`1\373\303\320\327uU\240\250\312\316\306\312L\010\251\"\235U\261\\\307r&\363\203\014\322\371\200\016hL\244\"\311\316\340i\336orqN\345XF\224\221\201\322\243y\211\311b0:U&&\2127\267H\213\222\340\014\367\252\322\336G\263\345q\371\327D!s\226r\261\317_]<\2633,\205@=3T\344\232&\227u\306\n\250\340\032\357\204l\217:\244\356\314\373\253\350\304\350\253!\030\354:\nt\267\022\310G\3142;\n\263\"\010\345\3356\327\334\247;Fj\315\353\010\361\345\222\322\021\212\316{\032\323\334\365\217\003\330\215?\303\226\361\260\001\234o z\232\332\006\274\212\316\362=\212+\335\014\323\263X\232\260\315\031\245`\260\202\220\265;\000\326n)\245\252\222\002\031@c\3115\345\237\031<\350\356\241\2246#\332FI\2556Fs\330\363\373}B{Y\022x%(\351\320\221\234S\357\357\244\324g\373D\300\231\261\202\347\003#\350*\243>\207$\231\251\340\215-ou%\236dS\014M\271\201\352k\322t\235A\255\365\270\225[\t \332\023=+\261[\220\363\324\237\264;\230X\236\265e\032\274\312\253S\274z\265<qX39 <\212\312\361\006\221i\253@\251:\0375\t1\270<\212\350\303T\344\221\204\217:\270\265\232\322\362x\247\004:7\313\356*\"\244\203\201_C\027\314\256`\325\206\252\242\223\273*\300d\323Y\310\311UWS\327\232\tc\320\307\345\202\214\024\377\000v\230\261\253>Lc\236\244Ul+\334tV\221\207\334\2631O\356\221K(t\030\316\r+\032l\212\362I\274|\303\014+&\375\224\035\321\344(<\324\311\n:\225\303\266\361*\347+\333\332\245\226a:\021\031 \343\0075\232)\253\223\302e\212%\303\034\343\024\303\270\316$g\350s\202j\322%\350Y\226Q#\241B@\317>\325\245\034\214\333Cg\232\336\n\307=I\025\261\232wj\371\213\037T.qJ\235\375\351\000\345\351\203NE\342\225\201\261\300\000)p:\323\004!rH\000t\241\235\267\0168\245\320hV\0376h#\216(\020\014\001\305\034\016M0\270\201\307Z\t-\370\364\243q\000\0353\326\202\t\372S@,N\321\343j\003\203\221\365\255\353K\365\270\214\031\231wc\346\030\342\271q\020\272\032f\036\275l\276q\236\337\356\236\251\232\253\2476\342`\220m\311\302\232\363R\260\213\361\007c\260\217\231x\246jj\321H2\331B9\250c\2715\213\227\260\\\034\200H\0253\215\226\312\334\223\336\224U\2064H<\274\363\201J&ub\006\030\021\336\211n\014`\230\3579\355K\r\301\023\3623\223\370U\253\220\331<\327h\337t\0245V\3461p\313\274\002\t\352jg\251(\236m\221C\265e\317\242\347\245e\376\356k\224\022\311\345\200j\226\210\207\271\247\035\255\222.D#=\2119\252\317d\304g\315U\317N:U\255\211\226\345e\216\346+\222\261\276\322\275[\261\253FUp\007\000\212\"\232\023ds;\030\310\031\351\315Eh\323\\A$[\t\003\200qWbP\313Idf\362\212\260x\370`{U\270\202\274\252q\363z\322\271\242.\206ER]C\021Q2\3055\273d\020\304`U\251hKZ\224\354\355\3440\230\237\033W\247\275\\\235\267\331\033p\200\r\270\037\205J\006\204\322\342T\215\235\312\261c\214T\257\013G\226\030\307^*\242\211\223\320\216K\237\221pyS\317\275I~\003\332\225\335\200q\315m\035Q\225\312\221F<\262\000\031\355O\004\030\302\310\240\343\261\254e\023X\310l\323\2520\035jl\340\356\315B-\352C5\264\023\304|\330\203\363\221RF\342\024\307\000V\261\356g\'a\331S\037\353I\t;\267\017\230U\231\017$1\303\203\315F\t\201>\316\t\013\234\342\200,\273\203j\355\217\224\016\375\252\254w\021\313e\275\010%)\242nP\324\234\275\271enW\232\275\247\210\241\263\206pr\\e\262hh\023\013\274\375\241\211\030\310\342\253\337\250\232\327\314\333\300\306\r\017`ORgP\326\301\027\000\200\n\375k)O\221{&A\0138\311\037\355Q\313t\'-K\366\252\255\033 \003~r*\304wDe\034\035\313\306j\226\210.BI\215s\032\206\031\317\007\245V\271\214-\324\223\001\362\312\271#\336\241\224\231wM\324\355\3263\024\221m`\006\010\357Wf{[\230\0011\007\214\365\365\315\\\010\221\221y\014V\317#[\347\r\203\203\332\244\272\211a\206{\222\347\t\021\177c\305KC\212)x(\244\372}\344\310O\337\t\317\2563\375kV\010U\214\323\310X8\001@<b\247r\232\037,\342;|gq\'\030\366\254\275~\316\326\342\325\357\0326\022\306\002\243)\3655\244{\030\314\275\240\210\354t\265\363@\000\r\356H\346\242k\217\263X<\220!\022\316~Q\351\236\364\322&\346|\216\366V\242\030\310\363\037\3579<\212\273\024\206\303H\023\267\337\227\345Or{\322\352\t\3506\312\345\222O*\034<\222\020$l\347h\253\227\004\314\3064l*\216O\2554\r\335\022\306\231\267\n\344\202\005Q[i%\022]\311&\320\243\344R:\n\262lEd\255\264\310\303\223\336\226I\014\222\200\216\0168\003\260\250\261Ht\263\254+\345 \371\317\336j\204\314\261\306}\272\n\2446\314\253\273\261\n4\305w0\344\212\246e\222\372\325\377\000|\312\200r\007\037\205 L\247g\247\255\312\220\262\250\305iY\300\326\374l]\3352=*$\312\265\311nQ$\nd^\236\235\351\021\262v\"\341j-sD\254gkL^o\262(\\`\022}\351\'\231mm2N\346\003\000\nv\324\321\034\374\362\231\t\347\2753\356\246\343\311\364\255R\023*N\316\362\202F\006*\3048O\275]\270evD\336\207I\244C\"Zy\256\270-\300\365\305jh\327\315aw\363n\0211\347\212\364g\013\304\306\022\264\216\316\316\355f@W\2463\237Z\230N\003`\034\327\004\225\231\350\302WE\253y\367\016\265)\233#\031\250\271\264Xy\330\031?\205>\327}\314\336Zg8\311\240\321jh.\235\'\014\\\016pA\251\344\322\241x\266o`3\324u\247\027a\362\224\245\360\345\234\310\312\362\312\3376s\232\346nt;\373\033\251-\312\031\021\211\330\3523\232\354\243P\345\257F\346&\241fm\235\222Vfv\351\236+\007U\206\357\014\222\333:\246Gn\325\337\t\\\362\352Si\225Z\002\320\007\r\220\247\007\035\252|\225\333!\030P:\325\243&\211\241\225[\030\\\367\031\035\351\360L\317\252\333\333\304[\314\222@3\217z\312\246\306\224\267=\266\327\213h\327\000a@\342\247\r^ME\251\354\322\330\013Q\272\263\261\250\006\241\233\024X\006\227\342\215\324\322\020\326n1M\335\305RB\032\374\212\302\361v\207o\255\351R\333I\030\005\227\n\300U\330\316L\360\335gD\277\322\256d\265\275\202H\331~\353\n\316BT\343\r\203\355G!\313SB\375\270\235\035]n%\213\266A\"\275\023\300\226\027\267\227q\\K\277\312\204\362\315\326\272\026\3077\"\346\271\352V\373\266\214\372U\205\256*\233\235\013a\350i\371\254\0323\226\300\032\232\343\275\021\321\230H\346\274u\246\213\313\023w\022\250\232\017\230\377\000\266+\200\212\1776E*\376^}k\337\302N\3619\3522\315\300W\300\034\236\347\326\241HB\034\214\201\350+\244KQ\267~J\220\337?OJt,\004D\026u\252\334N6\007\224\204\300\0143\334\n\214>\337\274\\\237\256hh/\240\340#\177]\302\240\273\266\215\263\234&\356\016\005+\tJ\305X\355\204_\273-\346\014\365\333\326\240\226\327l\340\243eH\3175\233\216\246\234\300n\374\262#\220n\376b\240\235\314\214\0069\'\002\252(\231\313CV+f(\025\020\223\2008\356k\177B\261\224\017\337\234c\370}+w\356\304\343\234\256\314e\"\234\010\355_+s\354C\265*\003\212HLz\217zz\223\353N\3408PO<P\000\347\013\362\201\223FI\035)\211\016\306\006M\035jB\342\221\3055\200 \036\365@\320\321\364\245\035p?\032,\002\223\3158z\320\r\211\374T\364\224F\016FGaS%t\003\244\220K\301\024\226\366Y;\216z\344\001^ujv\032/\332\252\231\211`\013\001\201\355R=\245\264\310\3530\335\337\223\214W\034\221\\\245h|\264\"\336,a{\n/\344\001\204I\301#\322\225\372\022\310\364\235\363\306\352\353\215\255\202M\\hr\307\003\361\246\265\033\330\317\274\333\031F\335\367\270\241\017\356\316\r]\314\231B[\215\344\036\204\364\346\201q\"\306T\032\316LHQ1\221\006\343\203\353Z\037d\216X\243\007\236\373\207z\250\352&N\341\226?,\360*6\223\344\334H8\350+d\210\221Ng~v\347\036\276\224\373xa\225L\215#\003\355\332\226\242H\211$\021\006\r\311\317\036\365f\336\341\325\360F\320\324\'\320\021\032\305$\367Fh\331Q\227\206\'\270\251b\202H\346g.\245OLRf\210\260\321\376\3500`s\324T\002D\014b\335\202\247\232\250\354f\367\0267T\'\232\222\337{\263\267\033A\340S\030\243\376>Lj0\017J\270\345|\262\247\270\305k\rY\224\3661\346\336\223\262?\340}j\313I\276\3348#\004V\213Fb\310c\312\035\335)\263O\311\000\363Y\324F\210\314\272\225\226p\001$\2022s[1\311\276\027\3167\003\326\260\275\215V\305\230#&\001\234g\255W\272\210\226F\\`u\255\341\261\234\204\231\3040y\207\240<\324\026\222\251i0\336\230\247-\010E\333\006\363\344~\t\010*\234\377\000>\266\303\034\034c\037JQ\325\003\013\347\226+y\342\307A\237cM\321\226\037#\314\016[\177U#\200j\366%+\262\345\315\262\334[\010\320(\'\201\305A\366y--\226\332VR\310;}h\334-a\344\213\213e.O\035\375*M@*\331$)\302\377\000\027\322\251+\222\364!\204+G\362\234\001T\265H\312\241\225FB\236ER\330\226E\005\311\213l\261\235\304\216\206\256\261K\230~\323\016w\216\035i\r\220\253\340\357\014q\336\246\233\022D\234\221\316i4\005K\230\374\273\234m\034\217\322\244\263gEm\216A\007\345\025;2\257t-\331y\340q\200\263(\351\353Qi\267\177m\323\256l\244|\266\302\230n\270\3056\264\024w\037\340\3450\350\221\304\303igbF1ZL^F\223\313\301\007\237\245g\003IlU\033V \316A$\220\rKc\206\271\3736w\0002}+ds\231\272\334\356\267\302\301\030\005\030i1\337\332\264-[f\225-\303\2161\201\375)\242mvA\247\351\360]\334+\334\203\376\350?\316\244\325\026+\375Im\320\221\005\250\301\013\353AM\025\263\025\202=\275\271-#\034\263\236\242\255\330\347\354\346Y\t\n\007\'\326\201\022ZK$\243\314?s\240\315\027\251<\261yj6E\325\217\255RI\2022\256\256\003\221\005\271;\000\371\237\372S\340\0028\266\240\372\373\322\345\324M\214\225\230)aT.e+\301\311&\233\320\222\021\345H\205%@\340\366\2527\302\010t\351<\211O\315\300Rk&\356\\D\321-\200\204\\;r\303\000\016\302\265K\r\231B\rK4E\253p\004\003 6z\346\263.\315\304n\322(1\306O\025-\232\255\214y]\344\271+\273\251\345\252k\2653DF\030\214b\253r\221\206\303d\205\0178\247\242\273\035\304qZ\255\004\325\312\262\261g\301^\206\257i\360\211&\214\277\010\017<\327\245\205FSV:\245 \242\261\300\343\000\003L\226\001*\022\035\211\356\276\265\350\264s\247\251cN\274\233L\371\010g\205\217#<\217\245o\332j\020\317\021tpq\324w\025\305Z\236\267;(\317K\023\305t\312\333\272\003\305\\\027 \2419\035+\237\224\352\214\213\332U\225\345\355\263N\240$_\302[\277\322\265\240\271\261\322\241\021\005ie?{\036\265\'Bv\324\205\365\233\246%\243X\221\t\350FM4k\027\344\234\312\204v\033kE\022]R\305\276\260\246@\263(\\\367\025\240\262$\253\225p~\224\322\261jJH\317\277\323\254\r\260\022[\253\022\373\272s\232\340u\370\3047\227\0226\370\300\227n\316\241}+\252\205MN,M5m\014E\211w2\264_+s\234qO\226$l\374\277)\030\305w\356yEkX-\322\357\347\224\205\037uI\251\264ib\207VW^v\311\222MgScZoS\330l\244\017\022\025\373\270\030\253[\253\314\236\347\261KaA\310\347\212F\177J\314\324B\315I\346s\203Sa\0037\034Sw\325\354&\033\270\2434\311\023&\200\304t\252D\310\257\177ei}\013Gwn\222\347\246\341\234W5/\303\177\016\311)e\336\273\216O\315Z&\216y\253\217\323\376\037hv\322\t$in6\266Ud<\n\352l\355\343\202\037.(\325\027\320\nR\236\206|\245\270\370\251V\271dP\354\342\200sY\330\316C\201\245$c\232V0\222+\334\"\272\224p\n\020A\006\274\267\\\264\213K\325\236\326Da\265\267!\003\252\327\255\201\226\2269\346\210\244e\332$G\004\016q\232l\223\251+\207\021\344\365&\2754\211\321\024\346\277\363\2461\246YW\215\376\265r9\024\303\2729\006\357B)&1\260~\3604\271+\217\341\355I\033\243\310\344\202\000\366\353V\214\331\004w\236d\262F\312\"d\373\247=ji\t\223\346\220\203\232,!\366\210\033\346\205\311\365\006\244\270\211\n\362\243#\276(\345.\352\306m\345\202\\2\264q\376\360t9\306i\266V\204]\0179F\025\2727\255\\ a9\0356\225l\033\010\000\3369$V\310\263xHie\353\324\001\317\347X\327\251m\010\243\016y\034F\017\2559\010\307\275|\303G\327\261\352}i\313\232\020\001\034\3654\240\320!\352s\305/;\252\2068\365\243\'\034T\337Pb\344\343\024\204\234\365\252\'`$\372\322\347\216hE\010{Q\274\003\367h\270\205\034\214\201\315\n\315\310#\0246\r\010O<\324\320\301,\347\367q\226\301\346\245\312\300)\214\243\371N6\265j[\202\"^0p+\227\020\323CH\221#\nZA\324\365\250.\367\312\246\335\001\313u\305y\323)\354W\322\241\021;\3171\330\007\013\216\246\256\250\226q\230a\302\001\313\021\326\246*\304\244F\210\261\002\275\006rj7\270\033\266\216\235\3519Y\215\231\272\203\2531\302\3753Q\330\245\313\220J2\307\236[\266*\2672\261}\264\375/\345\224\263\031\0079\334q\371V~\245h\"\223\316\204\376\354\365\035qD\243\240\256A0E\215^,\260=E_\213\315\204\005]\373OL\216\224\342\364\006\205\236w\000n\'\237QU\2039`\250:\326\310\305\222F\031P\251<\023\322\213@P\310\244\202\0160=()l&V+\260A\0007\034\323\257<\2632n$2\362=*\036\343D\310\343\315V^C\016qR\356\371X\236\324\200ic\345\374\2475\224fe\276\221X\000\01794\323\023Z\232\266V\276|j\322\310c\'\322\226xZ\316\357`b\310\303\202j\322\270\230\311_k\006\316\010\357R\211\262\203\236+H\2733)\225o\331X+w\024\355&14j\257\312\006\317\025s\334QH\233Z*\263*\240\000\025\355X\323\317\363\005\311\315\rh+\352VRZ\361=\031\376b+j\331r]G%\277Z\346j\354\335lhZ\202#\'\030\300\252\221\312\256U\024\222Z\272c\2420\226\342j\261\377\000\304\275\303\036\276\225\227`\304\313\260s\305\023\022F\346\222\246\005\227$\235\370\374+\027Pib\326&x\330\2021\202;\323\212\320\211\2732\364\263\213\273p\340\360\313\202=)m\221c\0024\354(e\300\321\265\221D{p0\rA\252\250\232p\343\206\013\214\372\212\250jL\335\212\220\261@\313\236;T\2631h\210=\306\rZ3\223+\304D`\017\302\226\341\266\306\321\260\005O\034\320\027\271\216]`\335\023\206\332\016T\201\332\256\351\036b+\335$\201\243c\214R\260\311\356B\007%x\017\332\232$d\215NrTc4\230 s\346\310\t\306\374b\250\253\230n@$\347v\323Q&\013sJ\375\266L\247\215\325\206\323\010\365\221,x\331#`\376=h\276\200\223\271\267m\2628\225\207@\rY\323\274\301k$\216\254\004\237t\373T\255\013l\255#\211&\202\325\006\325\316X\325\350\240\212\337sF\344\356\306sZ\307S&gjV\242k\231\'\217\033\311\034\324\332\203\204\323\323q\036X<\217Z\266g\0262)\236\r<\315\214M1\302(\355PO#Y\301\345/\372\306\031\'\372\324\2667rm\n\311\256\343{\231\006\325S\200O\361\032\237W\221\322\030\355\343\340\311\327\330R\271v\320\223JB\361\356p\004i\302\217\357\032\237P\234l\332x\337\362\342\252\"kC\01686K\267\215\243\240\253\220\306\007Z\325\030\245\250\333\210C\002\027\214\326U\355\262\264\240\344\20285R\215\320\314]R\354Z\314a\356\006A\315e\334;\337\334Fa\317NW\320\327$\264f\251hiZ[\334M\373\223&\330\327\200\007S[qE\0240\242\005\306\0069=\3505\212\t.6&\346a\267\322\261\374Aq$\266\350\003\340\003\235\264\254j\212zxU\033\230\037\306\255H\345\330a\260\224\220\314\rBP\267\322,k\237z\201^yS\n\254\274\343\322\265\213\001\004R!\303\214\267|V\326\225\010\306dRW\003\212\365\260\253C\032\206\314\021D\261\346 \307=sMyXecm\276\246\275\013\\\344\276\243#\220\223\324\260=\311\251\243\216\'|\211\336\027\377\000g\275D\243sE+\026%\2731)Wy\030\016\013z\327o\340\277\016\\\334\262\335j^jZ`2#pd\372\373W%d\242\216\354=\344\315\377\000\022j\t\n\2156\323\nq\363\025\376\021\351X\203\201\324\237Rk\225jvT\023v\r\005\2168\255b`\300\021\270\023\324T\320\3375\273\356\217-\237\2743Wa)X\326\202\354^\001\264\362\006q\351Y\232\376\2165\"\313\033l\232]\245\207n;\322R\345f\355sD\314o\013\352\021\007\214G\024\310Ov\353\\\346\247euk,\250b`\250v\205a]\324\252\246\217:\256\035\255\214(\214\017t\035\2066\267\314\rj\330E\002\334\243\242+\006|\017AZ\312\315\034\321\213L\365- \237\260\241l\347\036\235*\360z\363*h\317^\223\3207\361H\0175\2127\024\260\025\031<\346\250\226(<f\202{S\000\315\000\363N\302\027\265%Q\234\205\3178\247\255&f\307qOZ\206C\036\r=[<Vl\227\260\271\245\006\244\311\212\r-#)\014\223;k\220\370\223n\032\312\033\320\277\274\215\366\226\3665\335\203\225\244sH\342$\316\302\352\001Q\3114\353\231b6\036D\321ns\312\214g\232\366Q\211\037\331\"T\006\022U\300\352:T\310v\242\254\212\273\273\355\251h\321\273\241\212\254\356\376[\264dq\354jH\256e\212=\273\003\250<\347\212\322&\022e2\361]]\226L\363\367\201\253-\0322\200\027\345\035\273S\032d\221B\256\t\216C\023/]\224\215%\315\274?;3)=z\376ui\021&\311\264\302e%\216x\350MZ\324\021\236\014\307\032\223\234\223\355Z$f\335\321{D\225\010\n\204.1\221\336\272I\263%\262\236\017\177\245y\370\245\251X7i\236r\274\016\271\024\243 \347\031\315|\361\365\373\217S\332\236\017jh\030{S\251\t\016\003\275*\234S\035\305S\223N\351J\301p\034\034\322\023\306i\241\n:sA \214P1s\201H\3358\240HS\267\003\326\232\271\3151\261\301z\023\317\265]\2627\026\317\346\252\035\255\325q\301\254\252Y F\215\305\242\315*L\277/r\r<&\321\3168\257:\264\313\260\241\201\030\024\351\n\305\013>>v\340W%\356\014-\340\2051\277\367\214\016M\\\324#\271\272\265\tn\353\024c\357g\214\323*\332\031\367\020%\245\270\215\2303\270\254{\226\021\216\2714\255\241\224\212\222$\363\000bNOc\305Y\263\222\362\033m\222D\273T\375\323\327\025q \'\270\212N\0101g\2515\025\304\023$YB\0311\234\016\364\376\":\220i\366\3575\306\320\301\0062r?\225k\315#\004\'\257\2658\306\310reXg\212\341\312>\016;\032\202w\211%`\273P\216qW\026e$T\266i\357o\360\216\302\0002\304\364_\376\275h\307\032B\033\031a\330\223\315\027\004T\324\2124J\335\033=*\033\377\000?\312V \207\003#\351M\253\240E\2352g(N>Q\214\032\262\355\3620\354z\324_\241C\241\332\320\0028>\224\330\327\367\273YT\203\310\310\241+\001aNd\0000\004\366\251$1\310\236T\214s\330\372V\220dH\216\033c\222&\n\353\216\306\241\222\006\201\000#\344\'\203T\226\244H\317\273<4dr:V\256\201*\266\222\023n\326BA\252oQEhU\327]C$\2309U9\254I\225\331\304\240g-\200*\244\364&*\354\322:=\314w(\344\252 \344\347\255hY$q>H\313t\004\366\254\034l\315\323\320\270X(\353\305e\333B\362^\311\263\345Q\316ke\261\233Z\226\357@kCnFI\034\032\312\262\321\357 \277Y\032h\211\344\361F\344\233\352\333I\034d\372V\016\245\275\265\tG\033s\324\326\321Z\030Or]\034\307\"L\250>\356\000\253p!ge9\\\017J\316H\322#\255\233\tO\271\313m\330pG\353N\2315JG9\247\256du\031\300\357W\324\312\367\"\225\017\317\031\350~\355F\354\317jT\363\"\372\367\246M\354f\\\314\247\367lF\376\343\322\237\245\314\326m\345\272\237\263\310r\336\307\326\202\323\320\267w&\302\001\306\336\252\303\270\250<\364h\035[\'\"\242\343\216\244\232k\211\243\335\222\035x\301\252\272\262\206}\312v\261#\'\336\245\242\272\226\265\033\2451\303p\307\004\035\244\017z\313\263\202k\275v\030\240\214\272,\312\357\307E\315A\242GM\251\302\251!\266C\3639\316\177\272*K\211<\215\031b\034\224\030\317\265\021\t-\002\013B\210\222\263|\354\275=(\325\177\321-\243m\333\367\276\t\255\240b\312\3209\032m\304\335s\235\265V67W\220[:\226Q\320z\232\271=\014\222\324\334k{p\003\264c\344\351\355\\\334\315%\345\331\354\030\355A\355\353YJ\3666\214N\236\320\210\254\242\211\310\n\243\034\016\265\207;=\367\210\035X\224E\343\003\260\024D\031\256\345!\215!\217\240\254\353\242\322\335\207\317\t\300\255R\"CJ\006\270ff\030\307J\2361\305Y\021\035\214\365\252Z\224 \235\343\323\217\255ok\304]N\037\305\031mC{\005\033W\000\003Vt\253O\"\303y\003\314\221w\023\337\351\\L\330\277\244\001i`d\224\374\354K\023\334\017J@\362L\302f\316\317\341\025+SH\221L\3634\231\227\217E\025B\356+\207\230\310W\344\003\214T\275\315\021\017\232\377\000t~~\225\"9\t\214\234SHi\224\247\001\256\031\321H\006\246\217iL\024\355\326\255\r\224\245fk\203\264`\0161\353[zf\370\243\031r\000\0371\305{8E\356\234\265dh\303.N\344\'\353\353T\356\267y\217\345\203\223^\2029X\226\345\325y<\223\214zU\330#v\220\022\201\302\236OAQ7cXF\354\356\374!\341C&\246\227\332\230\006\335\024I\024b\273\267\225A$\220\0068\036\225\345\327\2373=\274=>Us\211\272\220\311w,\257\367\213\036\225\026\376z\326qd\315\352)pzSL\204\0340\307\025\2522\223\020\310i\241\353TesC\303YmBE\335\200\261\356#\327\232\350T\00228\315D\225\216\272.\344\221#\026\033\207\312:\032K\213e\231q0V\217\373\270\357\353Q\031\264o(&\216\177\304z\025\255\365\250\211\255H\nIFQ\320\327\237\275\263\300\357nr\217\033\340\373{\327m\031\337C\314\304S\345z\035\317\2045\021%\272\331\311+y\221\216\375\010\256\211e\030\254j\307Sj\022\320O2\234\034\376\025\205\216\213\203\260=\r1\237\035\2511\016V\342\214\232\020\016JuZ\000\355FE4D\200S\307Jl\311\213\232z5CD\261\301\251\352{\3244f\305\315(5&,vh\006\225\214d\301\217\025\203\343KU\272\360\355\302\363\230\360\343\360\256\234+\264\216y\036q\0234{\243\302\272\216\271\246\337\314\253o\024\201\016C\340\201\351\212\367\026\306ht7\010\2501\026\342\335rjWM\307\316\214\223\201\222\264\017b;W2\253>0\001\300\242\376h\332\314\207b\250N>^\244\325\020\312\320\274k\021xc\301\333\307\034\232}\2139\231\244\r\311\034\247jhLu\244\314\222\310\3522\270\371\206{\325\270\356\324\200\241\034\207\340\344c\025\254Hr\'\214,jJ\266Ol\325\370K4Ev\340\021\212\321\2309jW\210\230eRW \036\374\032\352\264\371\005\305\271\332H\300\351\\x\265ur\250\273M\036}\237\223n8\365\247\023\220\006x\351_0\217\263\035\030\301\316i\342\202E\344b\203\212Or\220\340x\247)\365\246\330\254<\025\3074\240\212\006\320c<R\343\003\002\232\023\023>\264\243\004\016)\025\320B=\350\3475V\020\237x\3620\007\353K\2361HD\266Q\031\256\0265?;\034(\255\373[\031`\205U\331ZNMr\342%\241ihLn\025\341\301L0\343>\225ZG\317\035\253\314\223(E\340\346\222U\236\351\3228\307\003\251\354+=\230\222,\335\242\332\331\002\247\220y\'\275UmE\334\207#\205\340 <\032\245\250\334\2546\345XD\327\022\251\007\031c\236\225GOD\271w.\030(\031\0074\233\350C\324}\363\333\306\243\014\024/\003\236\265By\344\035\n\225>\374\325\364\"\345[\260\323F\251\236A\315i\330\244\211l\202V\r\350i\300\226\204\271\26220x\234G\317QN\236\336D\200\346_0\343\223Z4A^-\252\003.3\353L\273\216;\331\025\013\210\330\177\020\250\216\232\t\222\262Ai\n\333C\200\010\313\036\347\353E\273!c\033\177\017oZ\273Y\202\324t\366\326\362|\314\203\217z\2652\307,!p\003\0006\321p\261\234\222 \227\313\310\000\363M\222A\345\261\316\001\342\263oP&\323\225\032\025\216Ge\317\3355-\325\264\226\356\214\271pz\021\315RW@EpZ)\267\220\301\207=*y\0367\203x\352\006j\242\254L\202\332\343r\2028\"\255\3052\272\030\244\350kH\275H{\0317\366\2225\371\362\260\024\250\344\324\232 \2228\356Q\372\006\006\255\255HE_\022\261[-\352\254~`\t\025CM\221\316\035~r\214\016\030Q0\211\327%\312\335DI\000\0229\036\225\236\347d\333\n\363\353D\226\227*,\227\316\343\346\031\305F\327j\255\261\023\036\346\226\350oB\256\367\226\3560\001 \034\223\355Z.\340\310\010\035(\206\344Hx`H\007\212\307\232\003qw\"\227\330\243\257\255os\tj\311l\343\216\326g\216!\367\361\363\032\324\201\3021I\006C\014\022*:\232t)I\210\356Z.\303\247\322\225\244\304\201z\222:UGC)\261\306\025\225\212\006\306G\002\222\3221\275\221\270\331\305[#\224\216E-\363t\364\036\265N\351X\020\331\000\236)\264CA\r\210i\003\264a\234\365v\251\315\254\316\305J\222=\251r\232\305\016\376\307\220\303\264\273\205\3645\022h\213\033\027\r#(\341\226\251Rl\321!\237d\026\333\266n*NA5CR\210\310\254\261\220X\216\225\215H\330v2/o\017\330\342V%\0300\004u\350k\243\360\202:Y\334]\036\263\270U\343\260\357XEjZ-j\216\377\000o\226@8\n6\221\364\252\367RcE_\230\356f\305S\321\222\331}\246g\202\0009\371\005%\3224\2662\243#\034\002@\3645\2522h\251u\'\221\240$=\035\310_\2479\251\264\024E&\351\2609\302\361\311\246\330E\016\324\247\222\346s\034\'lK\324\216\364\3735\266\206\035\353\032\227\003\033\210\346\216\205-\313\201D\256\254\344\205Q\305b\351r\027\276\232\341W\033\330\236hH\211n\\\270\227\345f=@\252\3217\311\274\364\255\021-\215\\J\337/\007\255L\214\312\274U\\H\226\0317Qt\252bl\214\326\364\235\320\3328\335r\316\023\251\307q\'\021\216O\275Eqq\302\242\222<\303\2001\320W-]\031\244Ic>d\240\311\312\201\200*\351\345:m\000t\254\023\324\321\024&%\265\026\334@U\\b\252j\327@\005\205I\343\222\007z}KL\246\255\216O\024\276b\366\240h\225\031\002\026\013\234\216k;P\270);G\031 b\264\247\253\023\033b\244J\233X\365\357]\005\272\\2*\274\250W<\375+\335\303\253D\344\250\256^\225\243\216?\224\000\005P\226S\311\307\035\253\255\031$-\214M+2\356\307\243{\327\245\350^\025\263:E\242\334\312\355 \"F\"\2711\023\262=\014->fu\363|\270\331\215\2520\270\342\252\274\247?1\343\241\2571\273\263\330\345\2629K\304\362\245s\323\346\250L\230\306N3V\216)\356\005\310\346\232\322\222FNkH\230\310C.\007&\226\020\322L\025\001f#\240\255L\3326\3743\031\206\t\256\016\003\273l\347\250\002\267-\276d\337\237\226\224\216\272(\265\273\345\001@\002\234\234\214\236\225\211\324\212Z\203N\310R2#S\320\216\271\256\'\304\326i\0234\313g!\235\2072g#\361\255\350\2733\227\023\033\243&\312\367\354w0\334\034\200\010\016}\253\271\202\360H\273\201\004\036\230\255k\034\264em\013\021\315\221\315H%\311\256c\256\343\203\340Rn\334h\260\016S\212^z\322\260\307\006\305=Ni\241\006\372\001\006\255\022\3038\240>N\0052\030\3659\247}\336\206\245\2311\301\270\247\251\025\r\0316;8\2406jle&;u(4\254c!\t\252\367J\317\004\210\006C)\030\374+j\037\021\317#\310eb\227ry\277t\261\351\330\ne\352\2251\311\270\264d\343\351^\362\370L\323\324h\221]1\021;\273|\274S\256g\226\024\214\254\255\220y\003\275$6\313:m\305\271C!e\\\375\360\334\032\315\272\274\216IH\0044;\270\342\250\222\356\225\034\252<\330\300+\216\007\250\250\226u\027\r)P\241\211\372\323B{\010\254\202f(\354\256\3351\322\246K\225\267\2731\335!\334T\024~\325\2521e\211w2\345%\016\033\240\007\245nZI\230\004d\r\310\275\273\325Kc)+\022O\017\356\325\307\336\351\310\253z$\355\034\276^z\3275_z#\205\323\271\310\016\230#\036\324\022s\214q_0\317\264\275\205BsR\016\225#\270\243=)@\301\3156\010V\247\034\020\000\2441\361\200x\24388\246\204.s\322\225\207\313\326\230\206\343<\323\220|\275zR\032b\366\311\244\316j\2200\\\236)\017\034\032\030\215\035\026\022\233\356\335\001\3320\225\242\227LT1p\030v\364\256\n\332\232&\022\\,\247p\000\036\365\023\267~\325\301k0li\223\266j\334w\"\005\\\022}x\251\220)\025\357\356>\323\033\300>l\234\0169\253:V\237\025\255\260.\003H\303$\267o\245$\301jG\252\\\305\034N\254\013n\343\000u\254)\257Lp\230\000\t\236\230\243vCft\362;\200\t-\212\211\007\227\373\306\373\247\275j\236\206v\324\260\035\204\250P\003\236\325tGzN\020\252\217\255f\257q\310\2369\347D\362\345Pq\374B\240\232o\233\206*OZ\350\266\206\r\224\344\270\n\304\036\364\333I\243\336D\235I\340\324Hq-GnnIw\220\205\3501S\230\222\006\014\034\343\030\346\251j\207k\t\024\350X\206\037\235>\031\001_Q@\031\367\313\213\222\321~B\264\2401(]\320\2508\356;\326n:\215\022\224\201\346\215\213\225\301\316*\305\304\200\362\275{V\250LX\337\203\270p\303\006\253Ol\021w!\371;\373U\245tg&fB\262Cr\351\220W\265N&;\203t\305M\254%\251od\322G\033\250\030j\235b\2157\203\325\206\t\025\252z\023\261\237}\013O\246O\016\336q\221\370V6\200a7\006\';\007\360\217SD\243p\216\347C\0324G\322\247ha\235T\261*\313\334S[X\253X\243z\344`\221\267\035G\255S\273\177\364~\027q\006\223\320\205\253/X\304E\252I\335\207>\324\250$L0\004\200}(Z\016C..\017\033W\201RZ\254O\010\234\016[\255Sf+Q\232\211\215|\211\327\001I\301\251\347\220\231A\003\216(\271I\023#\307\271\220\201\227\030\'\025N\351\014W\351\036z\035\271\3665\254]\314\246\205du\231[\272t\251g\223\311V\223nN:\016\364\021{\025\242-#\356=Oj\263gh\216\344\3107\034\361\355Z\3027\032W4\342\260\004\005\371\216}\005h[\351J\257\373\317\312\272!H\321\"\330\260E\376\032\255ud0[h\340V\372$;\031W\026j\2611\3321\212\304\325t\364\221|\304%\035Gn\365\347W\334\321#\226\327-\231\">b\006S\321\227\236k\243$\301\245\333C\027\014\221\256}\2169\256&\312H\267k\211\240\216i\006\347\037)\310\357S\313\004\017\016\321\022\371\213\312\361\336\256:\242%\241\005\234\231\313\266\001_\322\235\253\314ct]\331\3343W\024e3\"\364\233\231\243L\341TV\206\202U\356\234\034\355\205x^\337ZM\216\010\321\220E\277*\213\364\307\025\004\321B\221\206\303\022\275\024w\246\206\331\024\2638\205\331N\010S\212\243j\005\275\270\307,\307\232\321#&\365\'r\nc\326\223`h\004]\005Z\025\210Le\010\035\352X\303\343\346\251\032C\327\3459\024\351d\375\331\372V\264\335\206s:\340\022\267\226\024\355\'\222+)\001k\265\216%,\335>\225\205]\313\211y\021\221\262\330b\247\200*Ig\036jE\203\270\214\232\347[\227\022\013\210@\271\337\270\374\375\215e\352\267\021Ip!\211rPc8\357T\212\261B_5[\223\234\372R\001)\300\013\234\373\326\210\007\375\237p \312\321\214v5J\342\023\023\253y\336h\'\035*\351|@\366.\351\361\227\224\020\240\205#$\232\351l\2360\233X.\001\344\372\327\273Ehr\311\352:\345P\202\021F\rSX\271 \036+\245hf\321\324x/\303P\337A\366\233\274\204f\3710};\232\364[D0\242\306[;F3\353^n&Wg\263\203\215\221i\333)\216*\225\302\261$\003\232\340\276\247\244\3662\365m.yp\360\206v\003%B\365\256y\316\035\225\225\225\227\252\260\344V\250\344\251\0229\335\370\005\330{f\230\244\251\340\365\255\"\316W\021&\224\221\362\374\307\333\232\335\320-^\341\341\270\266\343h\304\204\377\000*\3251(\235\003\240H\312\242\364\354;\325\2352&\302\264\244\200\007\335\365\251\233\324\354\245\033\"\323\356bx\300\245\214\023\3036\024~\265&\204\0272\355\310\201r}k\013X\265\275\236\337(\353\022\203\312\262\3475\244\035\231\215Utp\332\324\riu\025\234\243\001\376l\201\332\266\364{\337!\305\273\267\037\302MuMsF\347\230\264\221\277\024\331\\c\237j\2327\007\221\232\344\222\261\330\230\363\'aN\022\0208\342\225\315\007+\212\225i\014Vn(\022b\204\304\305\337\232\003b\2552n.\343\212\025\252\321\022\035\273\212r\222z\323\261\214\211\003q\212r\266*\0321c\324\344P\016\rE\214\230\360sFjlc&\035\252&\301lf\265\245\361\0303\310\346*u\333\250\366\360&q\221\337\236\225GT\216U\304h\344\034\356)\237\312\275\305\360\230\257\210\226\t\236\332\005fR\310\337xz\032\267\034\326\362\312\253\345\206\337\306H\351N%2\266\255b\360\301\373\2310X\367\035j=:\325LN\263\014\344c>\225B,\211\336\336\333\312\030\3118S\234Ue\265\221YC\224\000\267<\346\232D\336\305\324H\255\347\006E*\270\373\330\246\352\030\270p\312\024\215\240\014\361\315h\210le\262<\026\354\344\010\312\347\007<U\375\027Ti.\222)b;\272\002:UZ\350\312GLI~#\301V\353L\2004\014K\216\375Er\317k\002w9!\222\274\365\245O\273\315|\312>\321\216\030\305(\3163S hr\221\216i\331\3156$\205\352\270\241s\322\201\217\034P(\261I\216\034w\316iX\363\201\232\004\000\0203B\374\303\236\0051\003\362@\317J\000\364\244\002\235\312x\306;\322\023\217ZR\330f\345\230+c\004}X\256O\343G\331\362\340\026\300\357^t\245i\026\207Oj\261\220\361\311\365\030\252\223E<\267#\346\332\203\275sM\335\211\352(\216Eo\231\016={T\267\014\314~U\374\252\031(\237N\021\301\031\231\276iO\177J\235\256\025\370\311$ri8\273\026\214\375c\023&\324\034\201\311\365\256b\352R\254F9_Z\250\253#\t\275I,&I\323#\036\204T\223\257\233\t\203\035y\036\324\312\271\235\014\262\305#D\361\271\307S\216\225\277\005\355\274\261\003\tc\307B*\242D\210\322E\363\312\263\276OA\216*Y\\,eYF\337_Z\333te#*\3761\235\360\037\252\366\374+4K!\224u\003\320\326RBN\306\346\2359\222\323a\033\031x\251%K\251\"0\202\255\365\242&\254\202\005\225n|\271\001\310\034\373T\242R\262\262\203\3014\\\221\223o\016\223m\345\177Z\320I\222U\016\213\326\245=F\200\3012\260v\306\336\243\006\235\270\340\220sZXM\222\332\335$\247\312n\030U\223\345\224*\303*F\010\255\351\230\314\314\236\3166\233\314y\031Tt\333LI\254\036\\#\344\364\353D\220\342\364/F\301\023j\266W\267\2652YH=i\244g\'\250\261\260\306s\214\367\254Xm\205\245\361\224\341\210\'\007\260\253kA\'\251\251\r\300\221r\031}\305\036~:V76\334\227\021H\240H\241\205V\273\001\231R\030\376^\234P\335\305k\026W\367q\210\327\200)\0136\302\252q\221T\210\236\24596\"\222\307\'\240\251\354\034\264\001\010\302\366\252dEh%\3722\305\032\025\005Cd\346\264Dp\360\354\234\343\326\204\005\007v\023\000\271\310lsF\267\030\373(\231O\357\003\360Ej\221\224\235\311\032_0,\204\000J\366\357Q\334\021$C\322\2513\027\271&\235\020b\033\001\217a[v\260\001\221\3005\275=Y\274U\221\257e\017 \343\232\321\216\020\027\246+\242n\306\251\022yb\242\232%+\202\005f\2443&\372\317\033\212\220W\322\260o\242(\333\202t\353YW\247\245\3013\013P\263\215\303\030\366gvJ\036\365V\346nX\005 \347\245y\222\334\265\261{Efk\027\336ND\274~Ui\013n.\t<\361ZGDg%s?v\313\333\222~R[;{U\243l\332\214\221\261\220\304\250\277{\031\246\245fK\205\307\235 ?\316\223\250q\307\335\343\024i0y/+g\375a\003>\200Sz\216\326\033\366\250\332i\035yPp9\353E\274\315\"\2637\004\037\322\256(\312L\255<\231\310\354j0\352\231w\350:\017z\262\033\0209a\317SVb\031\301\252H\023\2716\300\335\2501\340U\250\\d2\260^;\325;\211\216\303\332\226\3031f\363\244\223dyb\307\265K\245\300#I\347\226=\273{\265a7v\\QV\305C\\I+\237\335\002q\232\255k0y\345\270\333\201\270\343>\225\2234Z\r\274rai\331\270\037w\'\275e@\026<\221\313\036\246\264\212\320\030\327?6OJ7\216\n\202j\2541s\237\275\305C2\2418QZ\320\205\344Ke\313\030\331\020\r\307\223\310\025\254\273v\2251\026\025\356RVG4\227Q\320\3422\024#\034\236\016x\0258\205|\301\236\271\355[\275\214\257vw\237\016\244\207\3543\307\033\022\361\267#\3235\324)\310\310\353^=\177\210\367p\277\010\346 \214Q\022\242\260-\222=+\235#\272\372\026\322S\374\037\255g\352\332t\027A\236x\243ROU<\232\242Z\271\2016\203op2$t\013\320\212\202\337E\020\026&V\224\347\370\206\0054\314\2353B\322\3168\227w\224\212;\200:\326\205\270\216\005)\014aC\034\234\014V\252V!S,D\204\2678>\225f\020\336h\031=;Q#e\241<\244$d\343\240\342\240\211J\305\226\311\'\223B\020\205I\351\322\252_\026\214n\003 \017^I\252DKTy\367\211\242\274\376\322\027\027\221\355\214\361\037\250\025F\t\356\026\343\310\271\010\361\366n\376\325\335M\336\'\223UZW6l/\3327\020;m?\302s\326\266 \271 pEs\324\216\246\324\347r\322\310\030\002jDuc\315cc\241H\2208\355S\243\361H\240\363r8\024\335\336\264\220\305\016q\315=\\m\311\253D1<\312P\302\264H\315\216\017\216\265*\266ER2\223\027v)\321\276hh\305\262Px\245\007\234\326V1\223\260\355\324\340jZ1\220\214\334Uk\271\322\013i\246~\0264-\326\266\240\257#\0313\310t\366\363\035\347\316Y\244g\374\315E,\255u~f\\\356Q\217\312\275\276\206Q\334\266\304\260\005T\363\367\205C\345\201v\214\254\004`t\036\264\"\256E$\315ur\320H\317\350\200\266j\325\274\236]\222y\253\222\247i4 \032\361\240Ev\316\314\345s\353@i\n\371\221\215\3128*{\325\031\315\227\304\314\356\261\264@\023\214\014\347\232#\262\006\341^p6\347;A\342\265FLv\252<\337\335\024M\312GJ4\333G\020\231<\274\024?xv\253Fl\330\322\333\346\030\225\210\3061Vc\271\335)Y\000\004\0368\353\\\365#qCC\222]\307\025 \257\224Z\237op\306O4\2708\300\240c\221\207LsO\316E0\330Px\251\0061H@}\251\001\347\223@\307\014f\2342I\030\340Q\270\016\'\"\220t\3156\002p\243\245\003\236\364\010p\3645=\215\254\2673\371H>\\e\217\245MGh\224\215\310\243X\375\3160*)\024\202Cv\257\026r\346e\330LdS\010!NzR{\023b\007\220\201\311\342\236\341\326L(-\306x\251B\261v\336\335R\014\312\234\277$g\221M)n\200\205\312\347\2574\323\033\320\313\272/\275\202\271 \3645B\342\316\007L\272\026p=q\232\243\006\2651aG\265\230H\252T\0360kB&i$\001G5%#J\321\245x\366M\030\300\340\037ZI\255c\214\031-\200\210\236\253\324\032\270\212D+<\212\271\225\001\307p*9v\334\201\345\313\263\'\241\025i\330\316H\220\351\261\306\234\334\2268\3166\326u\316\204\323\251&\361cc\330.j\236\250\233\021\330\301{`^9]d\214\360\254\rj\351\262\371\204\345\262\3129\006\262Z3E\261=\303,A\233\000g\251\254\377\0001a\277W\221wF\374}(n\354,hJ\204\002\024n\004U[\tX\026\217i;i\255\304\215%\235|\257\240\344b\241\202)&\237| *\223\316zb\264\2712\033q\023\305)\221N\017qH\267,\203r\223\264\365\255\242\254c!\346L\256\341\3105J[h\241\231n\035H\031\316;\032r\324Q4Wq\001\324|\244dR\025\014N\343\307\245R\023\334Q\201\037\003\000U\033\3079\301\351T\366!=F\331\025\345\224\023\332\255\311\026\324-\203\322\260{\235\010H_1\212xf\362\361\234})\244&AspcD\035y\3015jM\261\355B\331cB!\231\032\274\270\224\"\261\035\352\375\214\344\\\303\030\\\223\306=8\251\223\324\"\215\033\245L8\316Y\0275^\336a,j\333\201\307\025\264Q\234\231\021}\272\320R\001\017\317\351O\271\036m\273\306O9\365\253F-\225Cm\205C`mZu\2634\261\004\306\030\266\177\nRv\010\306\354\334\261\212(\"\302\014\271\352\306\265t\370\201pG>\271\256\2142\276\246\314\332\266\214(\025m@\305kQ\352i\024\004qQI\322\242 \312\027\207\003\246k\006\375A$\226\305]W\240\221\213=\274r\313\270}\341\336\252\254mur\320E\2665\217\253\021\3115\346N\032\225ru\201\341B:\202sHN\310\307nh\330\031\227z\345\357\245V\350H\347\326\267\342u\216%R\000\n\240T\365&\344)9-\265N\002\323n\256\226\336\326I2\273\210\332\243\334\326\321Z\031JF=\273\226h\242\310\\\236j\364\215\205*\247\0318\372V\221F\r\224o\022d\270\215d\030F\340\034\322H~`:\363\212\253\022X\021\036\r]\267\003\034\365\253\211Q,E\036Nq\3058\2475\323\010\025s;U!\016O\036\365\215<\244\266\336\2715\311Y\331\226\207\331\242!1\242\341\233\222s\332\244\224f\023\017\360\367\256v\315\"P\325\343\212\337J\362\343\300.q\217Z\305\014\252V\3353\223\313b\245\026\310u13L\252\321\224D\037(=\375\352&\333\034\\\3655\242\025\212\027\022\262\266C\214\366\343\255B\363\313\327~\017\250\025cD\177k\271\337\376\263=\262E\\\264\311\346R\013\036\365\327\206\206\267\"{\032v#$\214\221\216Ek\371m\344\206Glw\343\232\365\240\254s\313a\0227.\024.r:\346\254[\244\254~\350Lz\234\326\255\220\221\321x&g\202\377\000\313f\214\tN\0178\257@\364\004\034\216\006;\327\227\210Z\236\316\022Z\025d\230\211\016\345\332\005M\024\250\303!\327\3618\256S\27129n\3026\304\332\336\2475\034\r\021\220\262\307\264\236\274\344P1\'B\t\303\202\243\246\332 \\\035\314\240\217zI\352\\\226\202\270B\010\034})\020609\305[fh\267l\n\374\307\350*E\235\326L \031<U\364%\356I!,\006\363\236\3643\264\235~T\035\205ZD\262\274\267e\001X\023{\036\007\240\252\263\001\034~u\314\241\334\366\354(\"Z\030\372\364\210\2263\337\314\240mO\221[\277\247\025\301\306\222\316\246Y\030\243\343\215\265\331A\036n$R<\267\210;\020\304\361\353[Zf\240\331\021\312\340\034\360Oz\272\2601\245#b\033\237\227\206\006\255\307&P\034\363\336\270d\216\330\273\223E\'5ad\242\306\200\257\216\264\0319\366\244\220\356804\027\307zd\210$\347\246i\336`\253L\315\261\301\267w\251#\220\347\255j\221\214\2117\202z\322\243\363\201\322\251\243\026L\217\3075&Eb\321\214\205\024\360j\031\224\266\032\355\332\271_\210z\234\226\332y\262\207\345\363\220\357r\330\307\265ua\243\255\314Y\347\366\363\310\002\305\032\000\315\302\221V\002\264W\"8\266\356#\222+\325\350a\324\214\334\2156\355\342\236R\351\"\202\275\360jW\213\375\032I\t\303\223\225\307\245\006\226*yN\317\366\210\210V^0{\325\213\243*\302\021p\371\373\303<\nh\031)\231&\266]\352QP\363\201\305L\034\020\245H\333\374$U#6\272\227t\325C\231\030\002\340\374\271\024\267o \272H\342\332\025p\\\347\237\245j\210a\027\226\322\360r\335\353B\031\232;qn\020\025=I\247\271\003\342\331\023y\210\234\343\034v\2476e\237;\202\223\337\322\263\222\022G6\307\006\225N\345\353\305|\213g\332\330^i\303\212I\224\205\003<\323\324\320\200QN\006\230\204\007\326\234@\343\024\014r\364\346\234NF\005\010B\2168\0243c\n?\032\241\356\035E\n(\270\230\361\023<\213\030#,@\353]<6\221X\300\312\254q\236k\213\023;+\025\021\241\3670\242T,8\0038\257>\305\221:\020\000RA\365\025\\G#1\214\023\370\324XLt\226\034\177\256\3741Ry\023\006\336\3146\256?\032v&\303u[\366\216<\242\007\311\307\'\255c\336j\014\370\021mF\003\346\004\346\213\031\271j>\331\330\306ZW\313u\351U\303\371\214X?Z\321GA6%\314a\240\021\262\202A\310\310\244\205H!v\205=\310\351Q`\'.a\350wTR\\4\216\252\277)=\205Rv\025\256I=\254\2460\241p\347\336\250\307\023\333\271[\245\021n\373\271j\246\256f[\203s\251\003\234t>\265\002\334\0374\306GN(H\t\23286\204\231\031\331\271\030\355SA\r\240\033\343C\033\036\304\365\246\320\322#\275\003%\033\356\221\315:8aH\206\340\030\3439\251\260\310nL\206,#\036?Z\261\244\030\326\022\3402\273\360wQ\025v!n\021\262\315\237\233\371\321\247\336\244;\340c\202\307\370\270\305SZ\222\311.\235[$\220I\252v\314\026S\026\013\006\355\351]=\016q\201\314S\274|\224\317C\332\255\226Y\355Z\007\031\310\340\372P4Od\213\025\252\307\271\230\217Z\202r\313+\003V\2213da\316\334g\212\253|w\304\310\016\0339\3157\261\227P\260\225m\241$\345\244s\333\240\253\016\3628\334K7\260\254yN\230\213\010m\335\010\030\251z\003@32\376e=\372\032\331B\\,\222\"\206#8\305M\365\032E\013\326\271\373B\231l\343\362\367|\265z;dYRp1\"\364\307Jv\'a\262M\272G\031\311<5P\321\243\275\373C[K\003*\267!\210\300\342\266\211\316\357r\335\3322\336F\333O\311\306}ja\023F\333\217\033\217z\265\251\224\221\227|\010\2746\361\251 \037^\265\253b\2424\014\303\016GOJ\231F\354\2702\374\014\316\3305\273\246\345Td\363]\330t\224K\276\246\254r\250\003\232\262\254\n\3474\246\215S\002\325\014\215J(L\243xr\010\254\033\336\033=\250\255\260\321\223:\262\254\245\016\013\014)\364\252\221o\2312\347l\210r\010\357^d\257r\313\326\200\311\001f9!\261QjQf\005hy \341\205U\256Cf:[M6\271\300\371#`\304\375+FiX+\005\031,x\024\271u\023\330\222{im\242,\304\022y\300\355X\227\327+#lS\270\'S\357[\243\226b\351L?y+\344\366\025$\204\312\336k\022#\003\205\035\352\242fi\330\332\254\232a7\031r\340\262\203\374\"\230\220\304\000TQ\221\336\251jj\325\221:\306\030r)\361 \017\214V\252:\211\"\324_/\024J>\\\201]\261Z\014\346|C1l\203\316\017z\240\006\"\0149f\350+\311\257w#hlY\262S\032o\220fF\343\350)\227\014\346|s\264sX\331\226\214O\020]:\310!\010Y\213q\236\337\205Z\3204\301o\037\332n\3304\215\310\\t\241\350;\013\251\333Cyq\034\207t{\006\323\203Y\367\267\032F\234\206FV\271\224t\006\232\271v\271\211\252]K\251\335\254\242\330\302\210\270U\357\212\210\332L@\000(\372\232\325\020\310<\222\263m\301\315]\214\200\240\236\243\265w\341\314\346\215\215:?17y\273\017\246+^\335\245\332\013\200\330\343\345\025\351\307c\231\216\026\306V\311\232ES\311]\265-\274\007\224\016N+Bz\226,\3427:\254v)2\307\310\371\263\322\275>\t\026\033d\214\023\225\\\026#\223^~$\3650l\243r\322<\205\367\226\025\030\221?\210\022G\240\315p\365=\' \363S\260o\312\230.\334\266\317\2723\330Rlh\264\252\353&\305^MZ#fF\0018\241nk\272*\3110\'\246)\2603\344\2678=\252\233&(\265\275\230\000\007A\322\244\266UG\334\307\031\353ZE6g=\tZd\225\361\033\002\007\031\251%E\362\360\315\201\337\336\2643\271]\372ax\036\225\237v\262\356\304q\206~\3315V\"R15\375;S\274\263t\33071\350_\247\322\270\351-/`\234Et\257\006\336\235\303WU\003\316\304\021\\,\304)-\231Q\276R{\212KK\271\032#\347(\334\030\364\025\324\325\3164\354ki\232\203\002#t\030\354s\203[6\327\'\327\025\307V\026;)N\345\353y\261\237\231O\265XIH\346\271\331\324\231\'\232\t\244/Hlz\3101\315 q\214\2221M\t\201\220c\212\004\231\350j\3223b\2111\337\237J\225$\374\253H\2312p\334u\245\211\260\334\326\255\030\262m\334\374\275*ToZ\315\243\031\017\007\322\234\033\003\232\316\306\022e=oS\203J\323\336\362v\300^\200\3675\343\332\356\255.\257\252Is8c\036\357\2220xQ]\370xY\031\330u\225\274`\371\221HD@d\002{\325\313W\014\362\314@\000.\003}+\263\241\227R\204\026\377\000h\235\256\256\017\230d\340a\272\n\265\031rZ\025\221\266\250\340\232\020\333\324\206\336\345$c\020\'9\343\212u\242\334\274\362#; \377\000n\251 e\214\355\225\254\262\003\355\373\336\271\247Z\300,\340\222G>a_\272)\244f\331\241\242[\317$\"I]\2252_\030\251\0325\r+G\276Vc\237S\217\302\265KBKV\261\226\216<\240U\305\000)\272\330\\\235\247\245R%\226\256\\\244\014\307j\017S\332\231o\002\221\346\211K\253\016@\346\241\354BZ\230M\311\240c\245|\203G\334\n\016\336Oz^\t\342\246\366\022\0348\024\365\351DX\\Q\322\220g5L\007\021N\357R!\303\024\3401\336\251\014:\014\322\365^\2240L\\|\275y\247(\033\2240\310\310\334\007\245L\235\220X\351-\264\213X\246\027?31\345T\236\005?Rc\345m\377\000lf\274\252\323rf\266\262\"A\234\355\243\317\304\2331\322\262[\010\221A \237J\214\230\311$0\3169\247a2\214\316\360?\230$\371A\316\rC.\252$8Y\030\257\2468\241\2637\"\274\327PI\030U}\315\327\000t\254\013\267\232)\233\216\275\351^\346r4\355\256\204\266\340\263\374\373FW\245E6|\263\345)\016\007\004U\2467\260\313{\247fX\356\016\033\247&\2647\025\217\232\233\213r\264l\317)g\004c\214T\212\361C2\274\221\344g\222;T\255J-\315s\214\311\031\'\214\347\025\233uq\346\306Vl8\355\307J\333\241\214\236\244\232|@\305\272+\217\231\177\203\275V\277\216Us,$\357\034\221I\354\027&\267\274\023B\257\263d\243\267\255O4\304\355|\001S\314Z!gW\225K\236\017^j\314\216\261\250\003\225\241\352RDv\273\345\273\343\375_V\366\255\t\n\347\"\234Q2e[\231\266\260\317\347T\357e\027\0106\205\363\007B;\326\266\320\314\265k\037\231b\201\311\336G\'\320\323\354\256\366\006\215\343\303\257\037Z\322&R\320\212\357\014\373\375z\324q9\r\301\305SD&YI\271\317<u\246\\>\346\336:c\237z\244\305=G\"\026\217p\344\021UA\377\000Ix\360\271\025]\014\236\206r\3341\224\203\222wb\265,\213\266A\"\263gD$X\031V\344\322\340\273\034Vm\232\014\266\2028$f*\034\237\357sS=\302\266\322\0179\346\263(\207\355\002Mam\271`?J\267<\233/6c\345\307Z\3213)\020\010R9\032\34469\350zU\205\272*Q\310\311\351V\214\230\263J\255!`A\251g\006[\002\300a\201\014\005k\026e=Q\204\322\210\365\263+\246@\343\327\267Z\333T%7\257#\031\310\252\352L\tl\030\273`s\351[v\257\214f\272i\312\310\332(\273\023d\203\351VVo\235P\021\201\311\367\252N\345\267b\301\2235\024\214*\222\025\312\227$\024\353\364\254]@a\270\350EM}\212F6\242\354B\242\222;\237z\257e\315\322\006\007\014pk\313\223\273.\332\027X\371L\321\202v\347\212\257$\222\247-\362\253t>\2646C\033j\3219&5\001\301\371\261\324\323\255\243\"\360\356\373\203\221\307SR\233c{\022\313p\262\315p\214~P\273I\364\315s0\351\363\265\327\331\240\037/\374\364=1[\247\241\315(\352hI\246\313\023%\274r\t7\016q\306*\315\2641\207U\306\340\234c\326\235\3020\324\265z[\312\013\335\370 v\025\024\021m^3WM\\\251\"\314h@\346\236\350P\253\201\320\362+\252\020d\026\016\010\004T\0272\005F>\2035\326\335\242$rwM\366\233\202q\205\365=\350\021\256\3403\234\016=\253\307\253/x\336(\223\220s\232\257\250\335\264{`\200/\232z\267\240\254\256h\225\214\331%O\266\357*$\237\030\335\351Wl\240\274\272\227r\222\252x\311\376\225\022n\340\206\35266\261\312\241\356e<\374\303v\005\026\360\351\020\313\237\262\306\3479\313\r\307\365\252R-\031\376 \271K\371\243H\3400\210\263\316:\326h\213\241\337\301\351Z\306\366&EI\242X\345b\323\253\266z\001\3154\020\006Ezxm\214j\032:c\031\333j+`\017\230\236\000\256\216\325\321\227b\225\312\216Ez19\330\351M\306\306(d\n;\251\346\221T\371\033\345\225\362G\033\270\255.M\214\373q\346O\335]\016\340G\255wz\006\267\"\332G\r\354\241\344\'\nMsb!tu\341\247gcZ)\'\275\273\216\332\336\"K\236q\330z\327E.\221\010\205\025\025|\3009 \3435\347%c\323\346\271\222\360D\034\244\261\310\204w\335T\246tF\014\256\010\3161\236je\023X\310\323\265}\344\226\316\031z\324\322C\000\033\244\225\362GL\342\225\215.Uh\"$\262\223\371\323\243\362\325\201-\217z\032*,\272<\262\207,\273\272\373\325)\336vr\261\345G\270\353Z\'\241\022\334-\320F\271\231\306\007j\220J\\\344)\013\330\232\322&S\320d\223m8\003>\365\014\2223r\030f\264F\r\224\356d\271\316D\250\000\025\347\372\366\245t\372\214\361\314\340\260}\250\240~U\321Gs\216\273\320\242\2271\304\345n\031\332P9\300\351QCr\r\3001\225\332?\277\305v$p6Kp\3153\217.d\210\203\236z\032[K\333\213v\362\256%\223n:\201\225\251\234SE\306vf\265\216\261o\017\372\313\250\311\365\007\232\337\265\324\340\237\344W\031\036\265\303R\235\216\332u.ZY\201\345Ni\313)#\'\031\254M\356\'\234N2~\264\340\300\201\316@\244\204\311\001\030\246\264\233+H\231\310E\233\'8\253\020\311\221\326\264OR\0310q\216\264\345|7\0075\262f,\261\024\230\340\324\341\351J&3d\210\371\351U\365\035B\336\302\'\232\352U\2168\306X\232P\247vs\275O-\361\216\254u\373\345\221C\371*\337\"\226\343\353\212\317\2656\350|\245o\336\3438\035k\320\202\262!\222[\304\021d\221N\347\034\2054\262\006\026RC:\224r\013.\017\037J\262\032\273\031\247\273\245\272\205L\036\225j9\322\010d\223x,\006:\363\237\2454\026\324\257\032FJ\315\345\225 \356\310\030\315i\330+\273n\227o\'\203\337\036\225HR\"\264\331q\2542t*\370\014z\234U\231\320G\2545\270;P\201\237\313\255Rfm\032W\007\313\322\344Er\001\005P}j?\017+Ag<\216\016U\270\031\353Z\\\226\\\210\226B\3319\035\275)-\004>{\035\231n\271\240\030\232\250\216uXL\206?\233*OCM\323\022\362\316S\345\201\2009\031\340\322\227\302I\216\207\216z\016\364\240\2023_!s\355\036\303\272\212\020{\342\223\210\017\000\0027\036)h\025\207\023\305\000\321r\2549y\353N\003\007\212\004:\224\036=i\214r\220\007J\t\364\246+\002\3475\263\341\255\315\013\271\211H\007\203\212\306\263\264K\211\273\023\003\327\212\243\252\217,\225l\200O\025\344I\335\226\306\351\262\007\214\304\330\3349\315U\273fi\t_\274\017#\326\222$\255,\212N\322Yq\316\t\250\322\3413\345\211@?Z\322\3046Cy\"\230\266\263\022I\317^\265\215\250I\266C\260\262\344q\351G*f\r\352E\245\337\264\023\342S\271[\202{\324\272\260\027\222\306\212D21\300o\361\250\370J\334\275g`!\267H\036_2E\373\317\353V\231\220\256\325\000\216\224\324\264\033EAi\004wq\310T\260-\321\217\002\255^\310\252U{\322BD{\321\224\021\300>\265\0020v\332N@\245\3144Y_>(\363\033\253 \376\002\265\034V\337lW&\3265>\273\261\315le$5\364y\303oV\021I\333\346\342\221\322t\033n\007\3148\334\017Z\276\204\220\304U$\014{Ts\315\270m\037\235f\342Rd+.\027>\225f\031\274\310\006\356}\350E\334\263c*m pj[\262\361/\231\346\035\275\307j\270\253\231\314\251,\321\310>f\005}\253:\370<.\206\006lg\203C\0227\232A\034\010\201N\355\274\375j\274R\306d<\202\335+X-\014\346\256*\022o\242\216N!s\203\2325{\037\224\315`\345\0359(\017\006\264\334\305\224,\365\0012~\364ma\301\253\273\301L\212\020\313\272{\003\t\001G=k*\361\314W}:\365\252D\311hR@\005\353\023\236OZ\325\323\316X\252\221\2209\254\352h]\"m\354\303\r\324w\241\244*\206\260f\350\206\t\033\315b9\035\362j9\030$`\003\337\326\244\246Y\323\tU\226\347\313\031b0\306\243\324.I\277\033\262W\000\212\321\030\311\227-\245\216q\345\277\031?\205;j\310\345U2\213\306j\324\211h}\2741e\331\207\346jo=K\204=1\326\256\346m\021Z\333@L\322\005\334\347\214\236\325=\264m\004%I\340\034\217\245Zd\250\213l\014w\031^\214+^\026\255c-\rb\213+0\003\255K\034\301FO&\252\234\265\t\"h\347\0162\t\250\256&`2;WL\245\245\321(\252\367!\206\t\347\322\263\365\006\312\365\313zW-I\335\032\305\031S\347\235\307\247\255>8b\334\222\253\034\216k\317{\224\305\224\356lv\2505\371\024Z\304\275\n\372u\253[\021#>(\356\020\033\214\020\200rA\253V\323\312\347!~Q\336\232V!\261\2278X\334)\3139\313\023L\323\213\211w\001\362\0167Sd-Yvbc\007c|\315\324\324V9BI\316}j\226\245l\311\333\016\330\340\232\236\030\266\327e\010\031\311\223B\234\226<\216\324\351#$W|a\241\225\310\031\212\003\324V.\265~\241|\244\014\3229\305cZ\\\252\305\2432O\221\274\261\324\016i\361\250X\311c\202y&\274\251j\315\342E<\3428\032Rp\024V,\267-$\277\272\377\000\276\217j\204YoL\267,\370\215y=N*\376\241\251-\217\356!m\322\221\217\367je\270\326\206T\266\276z\031w0bs\363\036\264\373\206\222\010\002B\025\246#\000\236\202\210\255F\273\234\376\2445\026fk\211K\355\353\216+6\341N\301\202\303\236\306\273 \223\024\265\037h\233p\336\265e\221\333\n\275\353\321\243\r\014$\315\013 b\213c3\026\307\"\266\255\235#\201%X\263\221\306z\327tU\214\033\324\264\2234_<\323\252\014\177\253\034\232k5\306\241\t\020*\242!\352\325bl\255ee\344\337\026\226\341\2468\364\305jy\2426\215\214^a\0146\257\251\250\251\252.\226\347\254xGN{-5nn#\362\356\256\024\026^\350=+\\\2161\212\361\352?x\365a\261\313|@\325\364\375\032\3268\345\223}\333\361\025\272\236[\353\355P\351\226\000[\305uqfRY\0241]\304\340\232\325+\243T\354\313\017\346\006\371Q\370\366\244\221w>\351C1\307J\306G@\233\022F\375\332\010q\336\210\243o,\310\343\013\234.x\315\"\221|F\222\240#\201\353\351H\304\250\362\337\237CZD\316d2D\025\367\030\203\216\347\322\231$\212\016\320@>\230\255Q\213\324\205\324\267\314\304\212\206gUR#^OsV\214de\335\026$\266@\003\364\256+P}\372\233?\224\222\315\273\004\205\300\255\351=NZ\273\031Z\237\226\232\250\222Gf\223\215\300\016\005>KD\271VkvPG$\001\234\327r8\032#\265kD\006\013\270\311\000\23469\025rm\301\025-\262\3529\334:b\223\004\210\205\234\036~\363\373\266#>\325%\264\362\251/\033g\265e5\314k\031X\321\260\361\n\253\224\235Z<u\317#5\273o}\034\313\271\017\004W$\351\330\351\215K\2163\2508\31754S\212\311D\323\230\235d\310\353Q]J\251\264n\344\366\255-\241\027\"\216`OZ\265\014\207<\023J;\204\266-\243\377\000{\232\2266\003\245t\306&\r\222\305 \3349\251\336P\210Y\301\003\025\257-\316i\310\315\327\274Cm\244Y4\233\303L\300\210\320\034\346\274\332\367T\232\355\214\372\214\262\315!\311\330O\313Z\302\02613\340\226L\231\006F\177\204S\243\211g\270\022D\306\031{\221\305j\230\354km\213bAp\373\030\364#\271\372\325\035N)KF<\366\222 y\007\265Y\tjOo\030(\241\030s\327\'\245<\332\302\220y\263\252\026\335\324zP&X\213\376=Y\344s\266>y\364\251\364\311\274\310\244\220\035\240>\006x\342\251\022\364%\321b\215\245\226C\2171O\007\270\031\250-]\346\361\0033o\n\307i\'\256*\221\033\233\322*<X\035\023\225\030\250 \005]\310\310W=+B\013,J\307\301#\024\272|\201\347e \364\317J\004\321W\304\021\247\234\256O\312\026\264<9#\274j\256\314\313\2163J\177\t\017Fsjy\300\315?\030\025\362\007\332\264*\347\275;\223R\330\307\001\362\365\315*\321a\216\344\364\034Q\322\235\2048S\324\361M\005\205\036\364\271\364\2464.i9\244!\321\034\232\330\360\337\231\366\2510\330\215S\356\372\232\306\277\302T^\246\214\2624r\036~\360\351K\347-\304\001\037\014\303\241\257\035\356[eHH\016\\\037\231z\325\213\005\202i7\311\264\363\367\211\247q\"\276\271\014-/\356\202\240\003\202;\327?y\000E\344\203\357M=L\345\271\237r\362${cm\276\365\\\312Z<?&\2522W3h\246\366\317$\210\252\017\314z\216\325\320\307\247\254`;\312]\307\335\004t\244\335\330\326\205\302IP\307\031\376u\235w#Y\336\254\216\370\206C\226\003\265\r\005\315\026\362\336\021\"\035\350z\032\315\274fd$6\341\234\014SD7fZ\224~\351y\306\321Y\361\334\210o\243\022`#\037\275\330Q(Xi\352tm\034&=\302PI\356\246\251\334I4\nD8\'\035\373\325\'\24123\347\325\265\030O\317\020a\322\204\274\216u\371\031\325\272\220kDE\312\323\315\262A\273\0305\035\3030PS\234\324\\BZ\267\232\276[\000\037\270\253\361\215\250\006\000\372T\244Z\021b!\367n\343\322\254\356f\210#\034\201\3235q\320%\2522\356T\244\300\356\302\372\032t\203|%:\236\304U4\210\201wN\226Yl\266\310w\0248\311\034\321j\261\307u\363e\224\376\225\244^\202kR\316\241\037\231\010h\337!y\"\213I\367\246Cd\216\ri\023\236fV\261j\260\\\033\210\216\026N\253\350i\326\022\273\177\016S\035}(\223\260\241\251\257b\031P\266\356\033\240\252Z\232\376\364\221\217\2558\216FP\220y\315\320\366\315h\351\'sJs\200\000\346\242eS\035\366\222\263 \343ild\367\253.\003dc\203X6n\210f\371\034\001\301j\271mo\0140|\300H\355\311b*R\324r\320.\231\233\020@\277)\030\343\240\250u\205)cl\000\001\267`\221\364\255\021\213%\202$\211\007\226wdrO\255Ii\346(b\344\021\326\251\003\033s9\000\355\340R\362\326\342Ps\337\212\263+\223Z\334\342 \001\310=\352\301\224\205\001\206A\244\244U\213\021\264{\2221\200\330\251Rl1\006\253\233B\2217\231\222\005?\315\371\371<\364\253\204\204\307\211J6\340i\355>\345\351]\nz\t\024\356\031z\367\365\254\331\231\214\277x\232\346\252i\026>X\203\"\251\030\310\346\253\246\370\240\2267\306Pq\\\316 \331\0242\263JW9\300\311\252:\214\3556\256\321\"\202\250\000c\357ZEhK$\271f\225\226\312\"\000\003-\357Z\022\010\243\215!\214\000\240S\023(\310\342IN\321\300\375i\236pV\332\253\237Z\253\031\210K\313 %\217\320v\253Q\203\264s\305TF\307/\311:\260\350\0175v\0172y1\037\010:\265wa\325\335\214\245\241}\025\025F\005#\362+\325J\310\305\231Z\265\322[\302\344\236q\201\\\324\254\336q\235\300-\217\224W\223\214\226\2665\201\034Y\000\231\016I9&\23434\230\376\001\337\326\270\016\204a\3527\177h\272eR\004*v\205\365>\265&\237n\356FW\t\333=j\031H\232\376\366+XZ\332\337\231O\014W\265;L\260\177(O*\345\275I\244\221[\213r\322\355\302\340Us\362.]\367{\323\210\354S\2731\341\2108\007\271\256z\353\375a\031\315u\322B\223\320\232\330\003\030\007\265XV\332r:\327\251KDs2[Y$b\031\330\222\307\201[\366r\200\261\311:\021\265p8\340WTLe\270G,r\273\312b\313\026\340\325\221r\236G\331\321\312(9}\243\257\265]\211&\263\230\025\313E\204\376\361\256\333\341\246\210\267W\037\333w1\223\004G\026\352\303\3577\367\253\n\322\345\211\321A]\236\204[w&\263|M\256XxwL7\267\362`\267\313\024c\222\355\330\n\362\222\346\221\352EY\034\307\203<6oo\237\305Z\362\264\267\267\r\276\010\234q\032\366\342\273\026\2143n`>\202\265\234\255\240-YV\3425\215IQ\337\326\262\356\334\234\004R\336\240VoS\246#\240\332\221\356\231p=\017zv\243:,\010\344\345\277\201i\025p\013$l\037w\014\001\3052i\230H\030\216;\373U\304\231\003\312\254\312L\201q\323\322\230\317\024\231\371\201#\203\212\331\030I\330\256\340\022\nM\221\350{T&%c\2371I\364\006\256&2*^\304\231\306}\353\227\327\240\205&\373E\274f6\376<\3645\2655\357\034\265e\241\202\3422e\337\203\346\017\231\251ta\004*\350Kns\311\364\025\335c\316\276\245\td\234j/0\000\252\222\240vaZ\020\334J\373Dq\'\253/CE\212L\206\351\245\231Z6\205H\367\352*\264P\317\014\271G%q\316O\037J\226\212L\267\010\215\327\313\227\345\'\255A#\\\331K\266\326\357\010{\003\372TJ\027*2\'\032\305\360\034\306\273\261\200I\353RYj\367\320\314\255\"\207\\\3623Y\373\"\335K\035\025\246\261n\350\013:\202z\202q\212\316\324\365\253a9\314\212\330\343+\315O s\334\227M\325 \221\300F\004\037^+f\336\3461\200[\0318\002\241S\324\257j\254Z7p\306>iS\037Q\232\241\250\370\216\312\316@\245\361\221\317|\327JM\030J\241X\370\266\326\024VH\374\366\'\214v\254Mc\304\272\215\373\266fh\220gh_Oz\321#\006\356\314\204\235\200y%\r4\204pO85[\022\312\304\270 \037\326\2546%m\361Z\374\254T\251\317\"\234\223\313&\310\314K\271\270\007\275RB.\210n\236x\305\303|\213\323\003 S\257\022U\272\216\337?#\200w\342\254\315=D\212/&\377\000c\225 \214\036\177Z\212\366I%,\233\230F\016\024z\321r\256_\021\275\3341H\2146\343k)\342\255F\336T\014\222\005.\017\313\216\225q\"\241,\321\307\022\3054L@a\207\000\361\232m\201\306\243\346\221\367\273\036\203\336\233\"\016\306\264\222\252`1\0377pi\367,#\205\036,;\003\317=\252\356+\017F\023)\030#w\025$\t\344\237\274I\"\2305\240\232\244~m\276\354)<\016jm\010\030\276S\200H\307\006\224\376\023\026s*Fx\247\200z\346\276D\373a\300\323\276\207\232L\030sN^\007\024$\003\227\201\311\346\227\265P\320t\0034\344<\346\220\nM9zP\330\230\343\234P\275iX\020\345 \002\005kxZ6\222\356V\r\302\2560}\353\032\377\000\010\341\271\251\253[\204\211gA\235\2745fo\334\343i\031\025\345\273\025\"+\246u\235Bd\356\035*\355\247\356\255U3\226\031\311\250\265\301\020\317\275\320;d\236\306\263\256\027\314\0370\241\"ddIo!\220\241\031$\361U/b6\354\003\241\\\361B\215\211\022\312F[\225e \000{\326\364%\344;\217&\2521\020\347%F@\344v\254\375P\245\316\325p\006;\n\266g}K\366\255\020\266T\267!S\030\000\366\252\020\r\327\201T\000\0019\006\232Z\023-\307_Nc!P\214\251\311\035\215f\315\213\214\225\351\334SasOJ\023G\n\200K(\035\352\320\371\217\'4\322\007\261KS\022\306\254b\001\311\034\n\3027\2429BH\031\033\271\253kC.\245\275\306kp\377\000\227\275\0206\304%\361\264\036\rG.\203[\217\225\223x\221Xg\330\325\353I\374\320\001\306\341\324\nq\2134E\255\234R\260\302\325\311X\253\025\256\"YF\034qT\255\242x\356\205\263\276\323\237\225\275EOB9u7\244\201\355\354\366\226\335\216\274V=\333\264\022\014\345wr\244\367\252OK\031\275\313\332<\262I&\371\0302\016\265SPsa\250\263\251\333\034\207+\217J\272fU\021u\026\013\250\nHC\306\343\202;U\033H%\265\236{F\344c(j\233\2710\320\320\323\030\265\257\004\222\207\0074\267\311\013\306D\212X6\007\007\275\034\326)\253\225#\323lyo!\331\217m\306\255\010\204k\265\025S\216\231\244\335\307\025b\205\314G\177\230\344\354N@\002\254YJ\322\306\tR=3YH\336#n\2035\334\010\017,\177J\323\226# \362\321\266\202z\326qz\204\207>\330\221QN\030\365>\264H#x\2128V8\312\347\261\255\"\214\231B\334\267\330\204\204\340\003\203V\232_1\022(\261\223U{1n\027QE\025\223\251;\3448\037\215I\242\357\216\315\243d;I g\322\251\262\024Hb\265\225s\022?\334n\264\375Bs\024\021t\310\342\245\350Q\240\245U#\227\'qQM\236m\257\222>Z\256\204\365$\027\034\003J\263\346e\347\202j\2422\321q\267\'\245A$\345[\001\206\rW0\014\336$\035s\353PH\007\231\237J\231;\224\2214\255\2132\304\374\373r\265^vY\355\235\307\022\004\303\001E\264\023\334\317.\261\256z\026\0315N\325Hy\'n79\"\240E\333DX\211\221\276gn\376\224\\\313\200Al\026\351U\024)=\n\363+4aA*\017\\T\220\250\034\016\236\365oC5\250\365\n8\035*e$\220\005\021\334oB\325\245\233\310w\273m^\300w\255$T\205\002\250\001Gj\366p\264\354\256\316y\310F~\365\024\222\214g5\323)$\214\316_]\271Y.H\'\205\035+.\025\222G2\270\332\275\263^\036!\363H\336\010\262\240\004,\344\004\035I\254\235KPi\177ul\333\"\351\221\324\3271\321\320\247o\034V\340\311!\n;\023\327\360\251^\352\342\340\010\255\324\305\031\034\277\361\032\207\240\321oK\260\202\020\256r\315\334\032\261\253^M\r\266#P\t\340c\265\t\232#%d\221S\314\270rO\277z\253p\323N~B\024v\025q\006\364!\270\264\227\311,\322\203\201\321\253\036Q\373\363\206\334+\256\223\324\315\354On2~\225z8T\214\261\343\025\351RW1e\273T\n\302@8\003\025\263h\217\344)\221G=\005u\2439j:q\014h!\\\006\003s\220:{SA\205UV6\007spMQ\026.\0206\210\330\006\317\345]\267\204\274aokm\016\235w\020XPaY{V\025\241\314\215\250K\225\235\234\272\215\2246\017~\363\217%\020\271\256K\303\232cx\243\\\177\024\353H\317k\023m\261\267bp?\332#\245p(\362\236\237>\207o\220NB\355\366\024\0221X=YH\310\327n\243\206\345-C\r\31477?v\250\264\245\006\330\227\007\373\335\315im\r\243\"\274\362r\216O\335==\351\361\004\334\316N\342F9\352+3K\226^\344y1\356\316s\264\325+\373\205K\260\275C\343>\325\274v2\223&c\033\306c`1\330\326|\323\307i\367\263\327\031\025\242Z\030\316Ek\211\274\356\025\331O\250\244@\347\214\222}{\322[\231\266s\3364\212\371\036\335#\272)\033\347 6\t\254\211\221\230\252\313;:\252\343\3469\305z\024U\321\347b\033\271\225y#+\255\275\276ZG<\014U\3538>\317n\036`<\300p\331\255\331\316\2214\013\034\331dU\'\320\366\252\227D-\352\262\241RG<b\201\240\270dh\262eh\345\376\027#\3645\000\273\272\210\024\270\267I8\341\220\365\244;\210\267\267\010\007\233`\273\017 \356 \325_7\317\220\260\267Q\316N\336\264\300\260\333\031B\364\357\326\241f\221I\001X\373\203C\002\"\222\261\n\346C\334q\310\246\311\033A\320\3447L\365\250h\244)\232F@\257\037\323`\346\247\200\316\024\346\342|c\234\261\342\232FL\231\3360\205\335\2118\353\232\202(\345\271\224\310\340\262\373\366\372V\2263\330\263)\267\203\034>H\376\355R\234\266\320\354\304\022xP(hH\226\023q\n\267\313\271\n\344\223N{\221!\211`\016\275\311\307Jh\266Y\205\3422btI8\3763R[\335GpI\362v\221\300\300\342\232\"[\023\255\304\226\353\263\312-\346\037\223\2363M\2772\371\320+H\004\257\306\3208_\245is(\214\270\200\312F\303\271\207\006\247\261_\263\306\216\352\006\323\315\"\366%\267\2327\236s\000b\252\273\212\366\317\2556yVHrc\000\347\216i\336\302e\253b\036\320\302\027\036\2254l\203\n\016\321\320\361Vf\321-\263\332\"\311\227R\3120\026\243\2345\224bh\331]\037\215\246\2512QzRV\325\026,\203\220x\253\021JZ`\035K1\343\351V\205\'bk\220\031v\026\367\253ZU\273\t7\355\\zVu\035\242E\256\316=x\340\016*@p\274\327\311\275\017\264Lr\365\346\235\367\252F\305\344\034P\247\236j\220\256<R\203@\307\023\362\361\315\001\272\003Sq\2122M8\034pMP\233\037\2360h\372Qq\016\\c\245kxju\202S\032\222dbI\367\025\215ux\225\026jOq\346\276\300@\317POj\316\236\006Yr\273UI\257*h\246\256\311\2225\221T\365#\322\245HdP\025\224\346\241;\"\254:\352 a#$\021\323\025\215p\214\'(FF3N,\211!\026\335ZU=\252\266\275d\'\2042\006-\037 V\226\320\222\216\231b\032\324Ip\244\014\375\334V\254;@>X\3004\'\241,c\256[\255R\271\2073\020=x4\\\315\356:8Z\020\0032\222{\n\212\341JN\262\257\007<\212\245\242\"E\r_\314@vcx\344\203\351Ut\347\226\342L\302>a\367\205+\334Q:+\010$H?z\312\017\240\244\227\"A\351Ur\330\331\216W\004\3435\217\254Z\211\307;C\372\343\265j\245\241\204\267+\244\277d\212\010\334\226]\333I\364\243T`\261\262\017\227wJ\312\345\032~\032\322\003\333,\322\202Kv5\320Z\351\021\375\341\030\317\255w\322\246\232-\023>\232B\205\002\253If\351\220E\025)\224RxN\366\007\214~\265GU\\\371l\234\020pOp+\202\247\272\3125\214\204*\227m\300\201I\250\301\025\375\220\215\230n\007*GcU\026\214f\214-8\334A\177\344\004>p;J\216\342\266\257\264\363yj\361I\205n\253\354j\351\275L\244\256\214\315.\336HCC#lh\317\003\326\264 \234H\3008\002E\343>\325\243\320\224\\\216\030\343m\261\2563\324U;\255\321\345\033\370Ny\245\270KB\253\314\362FDM\203\353U\341\224\242\237\233\347\357\236\2645\240\224\265,-\301b\001 \017J\226)\242\022\004\007\346\307J\347\223:\"\021\341\2658\210=\377\000*\322\037/&\242\232\324l\251u8\373N\334\00009\247\335\025X\222l\345{\327TQ\204\231\225k?\233\014\321\365\330\374V\226\235\031HVW\003q\344\037AQ%\250\326\301\026\353\251\333\345;\025\276\365^\215\212; \034c\212\241=\010-\256Un\237s\017\234g\025\n*\335H\206V%A?(\241\212\345\215Fr\254\251\202\010\031\343\265?RuA\020\004d\2554\2643\271]\246\375\331\004\342\226\031\232F]\271\'\267\255C\225\231\244Mp\305m\231\237\000\365\254\333\211\203\025\177J\241=\311\364\366\334$,p\0161K\006$v\225\216\020\nW-\025m\256\215\324s\340\222\244\340b\213\034\375\256T\343n\300\010\253OC9\031\254\244;\2069\344\217\250\247\203\300\'\267jL\244\364\025\346\347yl \353Q\223\346\316\035\277\001N.\304I\017\232TP7\020=\251!\224\313&\324S\201\336\253rob\344q\356\307Z\261\014J\254+zp\324Rf\214,\0260\005%\304\200G\327\255z\321\222Q9\232\324\240.\230\261\005\370\252\332\216\240\260\306Je\234\3601\322\271\247WA\244`\302\204\271\232C\274\223\232t\256\022\331\356\'m\250\225\346\311\352tE\034\306\243\254\033\266\013\024M\345)\356p\rA\025\304\222J0\300z\000)=\021f\225\235\223\312\341\312;{\265i\333[c$\374\271\352k\026\356j\211\013,HD`d\236\265F\362\342\030F\373\206\310=\0055\241f=\305\313\334\311\271\021\302\250\341i\360-\300\004\267\310\017\347T\267!\242\035R\346\030c\t\226vq\310\254\243\345`yk\212\352\242\265&[\023[\000\0015\243f\273\224\006\033\211\257Z\231\204\215{(\226D\r\301\002\264\242\\\340\223\300\364\256\204\214\256R\274\2671\307$\244\222]\370\036\325\025\244~e\332\261\350\213\323\326\250L\2753\242:\371\314p?\204Uy\256\025\325\221\024\240#\024\202\366 \226[\366\261[4\274\2701g;\013\360+\324\274\023\343-6k(\264\311\374\273i!P\265\315Z\226\207e\032\267\334\354\306\031\003\243\006C\320\212\207P\273\267\260\264\222\342\342@\252\212X\373\017Z\340T\335\316\336m\0171\321\374B\232\306\257sw\277#q\300#\265n\035FI\210UeOS\353NZ\027\031\017.\257\373\255\341\344\007\'\025 \220mRA\0078\310\357Y\233\\\223%\201Rx=*\264\361\035\350\033\234\326\360W0\233\033=\321\267\215\203\234\343\241\254\233\333\277\266\022\000\332\243\255h\3640n\3440\314\036\"`\224\022\247\007\236\365\025\315\346-\032Y^L \316T\322KQ7\241\316\334]]^L\013\311\362n\310n\364\245\343\215\360\006\347=MzT\325\221\347U\225\330\311e\001\267\225\000\216\370\251\001\022\021\274q\326\2650\275\205\222\325\343\002E;VON\325#y\016\202\031\324\357\003\344lRe!\3512\311g,s\300\262l\311\371\207\025\223x\220\246&\266\316\337\342A\325~\224Xw\270\327\274O$\031\025\246\215\270\014:\212\257n\300\r\312\0326\364\365\024\016\342\357\262?,\210]\317^:S\255\355 t2$\214\024u\003\265\0009Q\243\314\220\314\314\200s\236\265^y<\351K\262\0201\201\201@\022\333\314a\301X\330\250\353\3074\377\000\265(\214\263&\305>\207\232d45\204o\202\243\000\212\232\002\353\031X\317\314\007\024\321\234\265+^Ks\346\302\030\241\334\177*\260\026\t\276f_\233\246})\246+\t>\345\033\n\341{\232\263m\265-\n \005Yp{\n\253\t\262\200\212\006\022H\025\244 q\307\003\025\241\245\334m\323\367Ej\030\261<\023\201B\036\350\245tn\244\231#\221UN\357\335\343\246~\265\264\266\253\024\321\312[\224\003\202;\367\252!\350*\252\213\231\202\3403\'OOz\203]\333\035\245\274\021\006iY\263\323\266*\222\013\227c\323\2331\275\266\021\312\200\336\342\250H\255\004\322\332\220N\316~\224\354g}M(!x\241W\270%C\017\226\207_\335\206NT\361\223N\303\275\310\255\3421\311\206\001\224\367\035j\334\261\233\211`\214\361\030a\232qD\026\257\344KVA\215\301\272.y\002\226\312U\334X\036{\344v\255Q\017r\344\221\263a\225y\255\215.)<\245f\365\353\\\330\211h\\\026\247\005\236iY\210\3503_,}z$\3502;\323\201\343\336\201\260V\317jp^\364\320$9H\003\006\227\203\336\225\312\025M) \232V\'\250\356\264\240\n\256\203\024\020:\323\324\214\363I\014v\360\000\007\251\253\332;\301\024\2154\207k\201\205\301\355\336\262\254\337(\321r\342H\247;\243,\256;\221\326\231\347J\353\345\277,+\310\251q\246i\330\245\234$3\310U\375\t\342\235s0B|\266W5\035\013\271Fk\231\234\341\\/\321j\031\203\025\004\216j\226\206oQ!M\330r\007\245\014\205\233\000`\326\251\350+\014kr#!\220m\355\212\254\2604e\210\301\014:zT\242Y\033r\271\3447z\216\005\363f\031\345GZ\270\352e!\327h6\261\214mr88\340U\010\305\302@&\234q\273\006\234\221\005gE\223V\r\"\207W8\333\370U\230-\322\332;\257.$\214\217AS\020J\304\372JI%\276\3669\031\340\346\255\310\207n@\344Uu)\242\243\223\321\227\007\320\325+\204\3360z\366\255,d\314\353\210\204\262\010B\362N>\224\227P\371\227q@\300\221\236\244u\245mB\'w\243\333\342\331\020q\212\350,\355\223`\310\350+\325\241\037t\332\304\317j\273\177\245Q\274\261\334p*\352F\350\244\214[\373}\203,\2438\307\025\231%\272\3559@I\257\036\264u\023\006B\300.@\025 \t\032\347\356\201Y\255\014\331^h\204\232\214s\243\355\307SWY\311\227\216\247\275j\273\231\262\226\263f\300\375\2607\314\007 \n\257n\321\313\030$\341\217z\266\310H\322\2103\363\236\224\232\245\263Of\333\010\334\007\024\340\302Q1\354\343\231\031\204\212@\035\315E|\205fv\351\236\224\344\311\260\353X\216\002\251\334\335\330\366\253V\251\345\334\363\363mS\\\262\324\336$\332Z\261\27520!pz\325\213\2119e\311\367\252\204l\022d\026\323B\314ald\2163\336\2110#hX\035\246\267\213\271\2133\355`\020\\K\325\203\216\246\2664\362\263Zynq\264m\251{\215\t\026\373o\335\267\335nF*E\233y p}j\2212e\033\353vGIcb\3149#\332\235g\237\267B\204\225\004\344\375)H\224_\2731;o\031\335\3235K\\\234Gon\355\352V\256\332\020\3673\341\274V\334\204\360\277\312\257\350\251,\263<\243\"4\037{\334\326\017Vk\023bi1nT\236\242\261e\235|\324\016>M\330<\326\235\t\223\324\327\263\330\300\3048!r=\3056\350J\266\276L19 v\035M\026/\241OC\202\362;g2[\262\374\304\200F\r>\332\336\352\r\362I\036\302\347\'\346\316j\222\271\234\231J\367l\000\317+\341\007S\216\365\232\367RLHC\261=hq%\310\022\3462\2428~m\247\234\366\247C$\336i%\370\305+\013\230\2264\337\'L\372\346\264\355\020\"\2001\216\365\254\005b\334c\270\251\003\214\363\332\272b\354K\001 .\030\236\225\026\243>\330A\317S\332\266s\264I\261\221%\321\014\301NH\351U\256#y\225Q\330*\347,k\211\310\244>-\2017o\004t\002\262\274I\034\367S[Y@\314\021\276g\364\254\233\271\252(\276\211\024\022e\356\367we+\200*\375\201\267T\333m\264\201\327\002\246N\305X\264&\214\375\326\\\372Rn\030\3130\025\026\324\332%]B\362\030 r\027s\201\205\305c\031\036w\313\036\3351V\r\223\"\204\030\316\005W\273\271)\205\204\002{\347\2655\035Es&\346\026y\032F$\226\347&\240\215\tlWe%\251\022\330\271\032\020\000\\\001W-\200\306\335\345I\342\2758\034\354\331\323\216\335\220(>\234V\253\002\002\371|v#\326\272Q\026\324\213U&(#\r\367\230\347o\245Pi\026\033c\267\036c7_J\264\211eB\3469xb\312z\223\353R\304\307y\335\232i\010\237$\2361\212ix\223\001\023-\375\356\204Q%r\242\3325<+\343{\355\022u\206g\232\342\3301\312b\252\374D\361\275\337\210Y\2544\365{{\022\001\226\271]4\231\325\032\256\306?\206\2653\247^.\340~\316\303\007\375\223]\366\220\351>&I\303\241\034`\327-hks\242\214\3645!\362\321\225\267\020s\205\347\251\253\321J\215\t\217\034\251-\232\347h\352\213\033kr\215+\333\234\356\013\274T\302Tb\233\230\002\0161[\3223\250\316_\307Z\315\276\235\221$n\333\316\021W\326\270\353\315z\362\3520\240\213X\377\000\270\274\223\3655\323\030\\\342\235K\020hZ\220\323\256d\232G;\\\344\216\271\255{\255Sd\262G\031-\024\321ex\350i\252~\361.\256\205{Um\201px\034\237J{\304\340\211\0161\234\002k\262;\034r\325\214\212?3P\t#\022\201w\021\375*{\355\357\031\223\313\332\2122~\225d[R-\"\353\355\252mH!@\317ZX\257ax\300\237\207\211\312\347\025%\226\222q\273x\002Da\202\007q\353T\257\317\331&\267\274\200\035\201\2668\2444Cp\366\362HV\030\3123\034\340\364&\253,\256\\\251\003\361\035)\241_Rfx\312\207\362\224\3108-T\347\230\203\263\346\214\037n\r\001\271$Io8\300\275Ur0\301N)\351oyo\031\345eA\321\263\316(\033\321\010\014\207\345RT\232$\212&\301h\301>\264\321#%e\004\024\014}qN\216)e\330D\2460O\'\332\2312\330\265c\247\333\3712\264\214\317 ?x\361S=\244)\n\357\231c_cT\221\223\"\271xB\254K#\225\376,\257Z[\331\214\241 [}\2529\001OZb$\226?\263Y\026P\002\001\206U\355\232\206\336\325dU&\340\262\216\250\224u\013\331\013\254\000\261\304a,\2463\362\001\324\032\324\022K\022\240\233\367\216\000;\215ZD7r[E\002\302y\225\367M!<\343\364\246M\nY\332Euu\363\314[+\035]\211/5\341\216\0032\303\373\335\243jzUm&\017\364\251o.\216]\227\346\030\244S\320\265<\2135\260i\020\230C\340S\356#X\247\010\252J\005\315Z$\216\010T1\221\316T\364\366\253PG\261\274\325\373\240q\221V\221\235\310o#[\233\201!8`\270\030\357SAj\341\001\030\034g\003\2552\036\346\306\227n\346\024\016\333\237$\363\330V\315\262\250\204v>\225\347b%vtQWg\232/Jz\203\267\232\371\364\256}sZ\213J3\214T\311\000\345#\351N^\224Dw\000A\342\205\\\034\323b\036\016)\304d\203Hc\326\214sT!GZ\t\246\003\230\002\2655\223\242\\\306e\316\334\343\025\023WC4\332\346\334\036\003\001\364\2463\2536\344<\3665\344TZ\330\0029\031\367+\222H\357R\303*\204?6\177\245`\321I\215\267\221>\322\252\3560j\315\312\207\031Q\305\\U\303\240\330Sh\346\225\266\356#\034\216\365\242Z\003CZR\275FET\270\2203\204\031\243b\030\215n\253\036H\311<\236j\232B\321\334\251W\371I\351BV3h\236f\033\n\201\236h\362\324\302\310\303\n\303\030\255ms-\212z4\010\272\216Xgb\222\271\035\352\372\333\254\323\220\303p\177\275\232\315\242\355rW\2028#X`]\252\275y\250\332<\307\2249\245\0249lA$q\314\2408\332\313\3375\231w\2048q\264\236\236\365\262v0\222)@\214\367;\311\342\252\350\315<\376!\212W\004\241c\264\366\366\245\027\357\016\007\245\330.\000\316\007\322\266\255~\355z\364\2667D\347\245V\221\2031Q\324UM\331\014\306\326\340v\335*\250\010\0078\254BRO\245yu\267&D\027\201Q2\204\373\212\202\331\332b#\227\234w\305b\3672lTS\270\240<\216\224E,\252JH\245X{u\252\350E\313\036p\226\026By\306\010\254\205\264\226\t\\3\010\342\354\304\361\365\253\265\321\013sZ\3228\343\211|\273\221!\356qR4\205[\007\004\032PV\034\336\205y\344\270H\367E\265\261\330\216\325KS\r4qN\352\250FA\002\234\211\213+\331\211\276\320\337\334\307\025\247\242\234<\2220\031\373\242\261\266\246\335\013\333\024\276p\001\252\267\2617\332\220\'*\303\346=\205m\024e&gj6\257o\"\313\023\022\027\234b\245YZX\203rN*\224l@\337-\313\202\371Q\357\336\254\300\302)wd\340\216i4Z-y\212X\022\001\372\324\031X\346q\320v\252H\2229\014\222\2261\267\0108\025>\234b\226S3\200H\030\372T\330\010\256%\362\342\270\340\360\tZ\216\332!\254*\304s\345\250\311$t4_\241\235\212Z\006\232&\212\341\247$mm\261\232\352 T\0261\304\277*\257\034T\331\\\321-\n\332\231\331\003`\340\001\237\255aL\305\244#\256MS\321\031u5tf\235\340\220\001\367F\021\215]\215\357\325@{\225\003\330\nQf\335\006\317|\261\311\211%\371\275\226\241\271\272/\037\356\340\222B:\226\340V\361F\022f>\273t\342\024\215\225DL~a\327\236\325\317\312\344\334\242\345\2301\000(4\331\223f\326\225g\024S32r\303\3275,\266\333$fW?CSa\242[p\203\236\365u\030\0009\241\032\022\2432\267\035\r8\222kUrH\345\224\"\347\275gj\027\r\274\0069\310\371PR\223\320\010\340@\304\235\270\'\255A\250d\316b\007<\001X7sE\022B\252\220m#\034b\252\272\027\270\363\017@0\242\247b\354b\352\327kww\366h\034F\253\304\216{\237J\226\320*\241\266\265?3\375\346\365\241\3545\271m\"\216\331x\003=\330\324wwI\024^h\001\330\234*\232\224Z1\337\314\226]\317\216z\001V<\231U\006\000PO\'\2750\033 )\021\3322I\252s$\270,J\203\326\2551X\313{\231\312\225\014\244\023\351R[)\'q\357]\264\0213-*\340\212\263n\t;@\006\275(\034\3627\364\250\344\021\253\355\001\233\251\364\025\256\000T%@g\307\313\236\231\256\224f\214\313\205e\220\311p\347\314<\036\370\252\260\306\3026i9\334x\'\275Z!\262\262B\022m\316\333\330v5,_3\027q\221\320S\022c\245*\243 \343\003\245B\262+\260\3302\017ZE\2462\355\302\202U;c\002\261\332M\247-\236\265\023)1\333\300\311\031\305^\322u[\255*o2\031\031\243n\251\324V\023WF\260\225\231\322X\370\2729\240w\272\215\267)\033@\025\253c\342K[\215.y\226P\3142\212\204`\3274\251\035P\253r\326\213~\'\232;\247\304n\313\264\241n\335\215;T\327\364\233\033\206\222{\350\301S\320s\370qN\020hs\235\317>\361V\2656\263\254\231\320l\267N\024\036\365Gv\344\353\310\034WT48\346:\333,\352Be\253J\336\"\"k\201\223\203\214zV\250\306F\206\227$\2233\306@\3309&\202e\3245\017*\026\305\254\037}\207sZ\242K7)\035\274\023O\026D\2730;\212\310\277\272\276\273\021[L\3428\337\217\227\277\326\2303GJ\212\010]\225H\363\224\014{\323e\210-\314\262\204]\2542sA#&\221\004\266\355\002\204\005\261\270q\232\224\264\240Ko4ccw\251-\024\256\342\215\025Y\001f^\240\177:b\222PH\212\207#\207\035\177\032bkR\264\322\230\272\203\270\372\n\222IM\354J\222\251R:q\212a{\r\267\266\267S\200\373\330uV\0305e\217\225\013\025\334F:\003\232\020\257r\010$\222a\362\204\307\251l\021Iq,\310\2465\301\365&\201n>\317\n\331\311\r\364\342\247\0135\344\376S:\250\003$\217J\244L\364,Or\2023\014J]x\25271<\354\254\243\n\007BqT\310\350XC\022L\257q\032<x\347\236\177\n\267\t\334M\302/\227\031\030Px\340U-\210l\317k\206\273v\265\206F`\334\020\027\201Zv\037f\323\"\021m\01736C\021\326\222\034\266$\021\304\316\367s\261\225\210\312\256:S\322&\271\371$\334Z^\276\302\255\031\245\241bv\206\325E\265\262\006(2OaO\226\335g\221&\225A;GZ\253\223\251\014`=\332:\236\021\201**\306\242\014\027\253\030\005\226l`\373\372P\014K\3051\332\210\317\312\025\262x\255\010X:\253m\007\344\0035q%\260\200*!\004m\000\361SF\242H\360z\021\212\266f\236\246%\326\341rB9\0063\200Emiis3\201\303m\356N3Q\'d[W:\033\010Z(\210\220\202\344\366\355V\200\342\274\272\216\354\354\243\033\036^\033<\200F}jA\223\300\257\0213\351\356(\353\315)9<v\246\300\026\236:pp*B\343\206\016\017J\016GQC\032\036\204c\024\243\223\234\325t\001\3034\240\324\200n\305*\3629\241;\200\360y\305]\322\326\006m\363H\203kp\rMGd5\251\2518\266\031/\027\036\265NF\205\0302`\216\313^l\306\354Zi\341\222 \342\035\271\034\214U[\202\214\373\220c\360\305s=\005 \260X\205\322<\330*3\307\255iI$r\023\263\206\372V\221\321\002\324\213\007\034\232@#\007s\236{sW{ \330I$\217\030\307\322\251\311$\000\356PA\372T9hI\"\237120ET\277v\212E`\234\016\270\2422&EI\247\"pW;1\326\257\007Y\"\334\207\"\264\2131\221\r\2527\332\227\266A\346\264,q\024\262\036\273\205I\244K`F\341\201\003,1\232\304[k\213\031F\013<}\375(L$M:\007BW\203\332\262o\313\"\220\3439\351\355V\356bC\004j y9,\334\000*\355\205\232\333\305\024\214\253\346(\354:R\206\345$u\272{+\304\205{\212\325\2668\030\365\257b\213\320\325\026s\362\326F\245,\220]\007\316\024\364\002\247\020\364(\205\356w\002\013d\036\240\326%\342\005s\264\000+\206O\230\211\231\323\347<\323\240Q\313\241\306k\033\030\330\257y\035\324\013\366\215\271\\\365\006\247\206\361$U\225z\367_Ji\330\314u\276\302\354\343\253\034\342\235u\266[i!n\025\206+D\310eM\030\267\332\005\253\002v\217\274*\356\244\276R\026^@\244\267\034\225\321\025\241\363\034\374\307\212\222\3664\222=\255\367\207=:\3251EX\245\024EIaW\240*\221 \357\214\232\305\273\033GT;{\274\200\016\224\366b\234\001\365\255\"\364\"HVew\0101\232C\002\t2x\365\307z\245\"lCu\004\201\014\203\0061\337=*\243d\246\341W\2723\276\242\303)e\301<\212K\254\355Y2x\340\324\241=\306\332\271Yr;\360i,dh5W\210\237\335\314\t_\255\027)\021\352s\020s\273\357\003Z~\024e\217CY\317RNq\337\025\017q\244W\322\301\204\2609\303\222~\225\240\262\220\233I\350hJ\354M\331\0255\331I\266\211\267p\\)\002\252[\301\304\227R\235\261F;\216\246\265q\2722\276\245\255>\351M\222\230\370RN\005Y\264v\220\355-\234\034\326;\033\241\327\214\251(p\273\234\217\312\253\345\346]\316x\317j\350\213\320\302J\344:\205\264\006\000\223\214\357\345EU\265\260\267\220o\362\300p88\253J\346mj\\\212\337h\340\022G\265$\252I\242Q\261Eg\004\034\257\007\270\244\023\374\245Xc\025\225\312\350X\263\235\244\200\344a\224\342\237\347\222p\010\300\353Z\306Z\021\"\205\324\373\256\016\337\272:RE\023L\301\272\267r}*\033**\341us\005\253yJ\345\245\364^\325\035\272+\250u\'\'\271\353Y\333SU\330\222|l#\256+:i\312\206p3\201\300\246\321[\031qipK9}\256\305\333\'\320V\2341%\260\n\2522:\034TI\330\250\2245{\300d\331\032<\273:\221\320Vtb{\271|\311X\000:\016\302\204\301\356\\\205a\213\235\3370\374\252\265\315\322y\205\026C\221\330\032-\251I\224\230\222\307\203\317zkL\250\233\244\004\n\244\235\304\331JFI$.\211\2675b\335N\334\327\243Ahe\"u\311\253\266\261\271`\250\000\317S\355]\364\331\213:-:#\034apH\354=*\3338\214\006s\205\256\202,R\270\227\314\224\311\"\200\275\207\265E\013I&\351\t\336s\205\003\265Z\324\207\240\313\273E\023\267%[\031?Z\206\336\035\312\312e\307pqT\204\0028\374\345\203\316go\247Z\222H\026\024\\\242\256}(\260\212WaI\014\247\223\300\025\237<-\274\356P\032\263\2324\211\024\351\264\340rq\322\222\335\001$\001\317Z\316\305\226\3262T\226 \0228\025\0238\203\205\r\3467p)\362\334i\330zO#\362\214VL`\266y5^H\343D \205\317\347\315\034\251\017\232\343m\343\006\'\313c\003<\324\266\021\231\034(\353M!6\\\265\201\025\313\2069\306\010\364\253\366;\3024l\240\0069Z\325lb\311_)\024\213\027\036g\007\025\245f#\206\325`\300H\324rGsL\014\373\331\344}\320E\021\332\307h\'\255@\313\031V21\022\'\003\332\252\341\270\324\031\273\215\230\374\203\357f\247\261\235ey-\345\317\314\016\303C$\227\313(\0220\003&8\365\006\245\222R\305\226R\001\003?Z\224RV)+#\271g,\216:\014u\252\313\344\307,\230\311\317\'\035\005U\200\257sp\244\242\357}\275rG\025v\324\357_\234\356\n8\007\250\246K+\\8\'|k\300\357\214\032y\021\264j\355#\356\365\240V\0221\032\316\004\220\344\177yz\232\232\342;E\001\321\331rz\032\006E`\032whP\364\347=\261V\241M\216\312>\370<\236\324\326\206s\327B\274\323,w\004\306\312\355\374C8\247ys\352r\2528\362a^\335\351\356+Y\032\261\333\332@\213\2612\027\246\356j\264\255s\252\241A\037\227\002\234\r\247\223Z\030\365/\351\361\245\205\2334j6\251\371\210\034\234T0@u\013\301spDQ\223\204L\366\024\024\313W~L.\0264%\333\205E\376u<\0222\267\2236\026V_\227\024\321\027\322\303.\343\216\010\0328\276f\306eo_j\226_4\333/\230\002|\271\374)\264M\310l\366E\246\317*\246Y\370\037OZ\275d~\321l\227\0146\220p=x\247\024)\020\352\261\313p\004a\300P2I5\241\010\215m\342U\030!\000\255\021-\214~g\013\316\001\346\254+\010\324\034t\024\311!\216\302\031%\022\"\035\314s\311\255\335.\021\024J\270\347o\'\326\271\253\312\312\305CY\027\027\002\236\033\265y\354\364\242\254\2170\'#vsOF\340\346\274G\271\364\010p#\275\'=\000\252[\014z\365\247p9\246\3003\363sNb\300\215\2434n\206(<\322\202z\212C\037\270\221\305.E0\034:s\322\201\305;\022\003\'\232\225\017JM\\/b\311\273\221\323c0\332:T\266\026\246|M0!A\343\336\271\252\301%q\247sBT\343\003\201Y\367\001\325\261\216+\316\232)\221\251\223z\252\246rq[*\2025\371F\354\017\232\232\330Q\032\322\302\250H`}\275+>\342F\231\266\304\030\376\024\236\243\221\023\227U\306\t\003\256)\326\345\2448\340\200?\032\315\2430P\261J@8\366\252\232\374\371\267\"\006!\3602h\216\302f\0247/\033fGb\203\250\255\255>\3526\214\005 \003\320\236\365Q\235\264%\306\345\330\233\236z\212\236\031\0131]\247\330\325s]\202\320\177\234\252~l\344{S\205\316~\357\\t5i\023&R\271\273\332>hJ\347\251\007\212\243y\"4gh\004\037^\325}\014\233\324\245\024\253\032\216p7V\363\246W\216\3435\234e\251\254Q\251\341\267tVI\020\215\2753[\321\014\200\325\353a\345th\207\310\370\004\366\254\335A\304\303i\035>\355N!\201\213&\344ld\361PN\371\355\315y\316V3f}\306A9\351L\263\225cs\274\235\247\3645<\332\222^\336%\343#gq\353P[\332Z\233\231\n\215\243o\000\037\326\256\3673\2615\225\232\244$;\356l\2221P\3362\306\341N\016zV\333\"\036\344v\312\360\317\347\240\371]q\232\272\241g\266ta\236{\326i\352WBTTX\325\000\003\003\265S\324\033\312\221OPkVd\310\342\034\223\221\203S\333 \235\366\257E\357\\\362\334\332;\r\210\341\217\2508\244\222B\316\261\201\313t\253\213\006J\220\354Py,\264N\305p[\241\2559L\233\010\234\250<\345OjGU\233\271Q\323\"\251\020\320\325\260\211[|d\217\\\367\250\356\242*\254\273r\010\246\221-\024Uq\203\332\231~\354\262\300\321\361\264\362j\036\205\304%\214K\2739;A\342\267m\321m\264H#\\*\242\002~\247\232\204[*N\304\354\021\217\231\232\213Q,\223\311\204$V\261F\022\271\024\330\030\r\316\033\201\352i\232\242\313q\002@\314QA\313`u\253{\023\261R\" \214\307\223\303qV\264\351I\271\343?v\271\336\346\321\330v\267w$1\205\210\0371\306\001\244\323w\305h\022n\254w\023\232\321&f\345\251.\242\342\342h\312p\210\270\346\237l\273W\271\256\230\255\014\233\324\273\036\n\216\306\252\314\201I\347\245\\\326\203\271^U\313g\035j\265\305\270eb23X(\216\345[K\203\003\025s\2726\350}\r>\346C\024Y_\343\340sKf\'\250\333u\337\226o^\225\006\261\251\233`mm\177\3272\362\303\370j$\313\216\210\207L\262c\030y\367\005\353\317V5\177r\201\2618\002\2234\212\261R\346\352\024Fyd\332\243\365\254\330\357\r\303\035\261\204\214\360\007sN\366\002i\204\240\004BUG\'oZ\313\271\324\206HI\216\301\321A\344\375j-sE\260\330>\337s\273dN\023\037uW\257\343Vm,\356\312\346E\362\027\247\3149\245b\222\271+i\353\237\232\347r\3750k\016tQ3\010\333 t=\351\241=\005\264\023\312\316\261E$\233z\204Rh\324#U\263f\221Z6\3166\260\301?\205t\3027\324\226gG\234\340\n\277\002\374\270#\030\025\337E\031H\261\032\014`\234\n\320\266d\201\032Y$\332\270\256\270\331\031\263cG\232\362\366\325\232\312\006\221\201\333\271\270\013\351ZZO\203\2659\300\373u\322\333\241$\341N\342M_1j\0275\345\360\236\227\031\001\345\236c\321\2118\246\237\017\330C\t6q:8\350Kd\032# \2252\264\276\034\236C\347Ip\006\361\300\305P\213\302\327\353+\262\274l\230\371y\346\264\3462t\312+\240_E\250\003$r\230\263\226*3\212]J\001\034\033]d\033zo^M_1\237#2\315\224\362\306$6\267\010\277\337\330v\376uNu$g<\'zW\270Y\242\243\002\344\020\240g\275H \332\201\261\265\373T\262\223\'\264\214\277\022\266\321\216\265$\305|\262\021\376Q\334\212\"\r\225m\242i\245\333\0366\216M$\266\326\345\213+\003\216\376\265V\001`\266\363b\221\263\3060\277Z\200\t#\373\203\014\247\361\024\254Q\245\245:\311\224\333\270\221\234\367\315h\306\262\371\204\030\334m\035qT\210\334\231#E\271\210K\300\373\300z\3243\231\236v\317\310\252r0{U\t\213\013\005\220\273c\201\324\236\225Oc\316\355\311([ \372\325!2[\323\036#\216 L\214pq\332\213E+\251\257\232\270\033\177Z\t[\227\242\016\263\206\335\223\236\235\253>I|\371\037kg\313\220\363\216\264Xw\037\252C,Q$\220\266T\236r9\025\014\021\312\250%E\001\375GC\365\244\312B\267\331\356\025\202|\214>\372\036\207\351Ii\373\204 0\306z\236\302\231%w\177=\233\311\301\2536\221\217,\266\300\304u\372\320\027!\323\213\265\343HPl\000\360{T\267\356\306\340\242\205\330TP2\037\265\010\303y\003,\253\216*8\347y\240o6a\030\035qL\233jCo\nM\203)\033\367c9\355[\226[\022\023\021\'\345\031g\316I\366\246\267\"\246\305d\272%\214pE f8\347\260\253\366\357-\266\236\221\260\375\341b3\236\265\241\212\320\322\267\211R\001\004\270l\365\357\326\250\335\335\007\324V\0135\336\303\205oz\241\\\324\373*\333*\020\301\246<\273Uib\226\356\372&\214\000c\301f\366\252\261\005\237)M\313+7\356\227\267\251\2510o\343\2222\305@\030\036\364\311\026\333g\331\014o\032\252\247\313\370S\325YP*\260\n;UX.B\244N\370\'h\'\034V\201@\273J\216:U\"7\037\264g5Y\034\317q\260)\nN\005\002z#^\302=\253\217N9\353W\220\225P\017Z\341\252\356\315\350-I\001\310\247+W;Gr<\320\014\017jU\025\341=\317\177\250\365\307zU\301\315R\334\2448\021N\340\361C\033\210\3201\301\251\027\245\010I\330Zp\002\253@\024\037j0\r-\3011\351\323\024\341\322\220\300\0361NB)\223cGE\323\226\362S,\254|\244?w\324\325\373\273\310VM\221/\231\2160\247\201\\5\233\223\261q\320\257!e\371\345s\236\300v\250\3102.\340:\364\342\271\245\330M\2245\t^%)\277nF}\352O\016_K\373\350\235\231\327\215\254\307\275J\260\321\240e\207~d\213\277QJ\317\272\"!\004g\271\240M\231\367\tt\204\252)`}z\325W\027gq\330\321\343\271\340\326r\330\202x\203\030\325\235\201n\365\025\342\031b`\006x\357B\0030i\3273#\010m\235\307C\203\322\265\354\364\240\326\021\307p\362\304\361\366\365\241DD\351\246\257\332\014\261\336\262q\367v\365\253*Di\214\363W\030\330\226\310f\270;N\365Q\3375M\247\037E\252[\231I\220\313s($,\212S\320\214\342\250\3174\2006\000\332F\rj\314\372\224\345\220y\n\035\212\214\214\234WU\247I\346Y\304y;F\t\365\254:\2350z\032vr\307\024\253\234\214\367\255\270f\001F9\257K\r-\013D\215&FH\254\213\303\227(\304\360r\010\247]\334\014\351\316\326\303~u\033\252\021\237j\341i\021&P\272U\306\356x\357L\267\222\'\214\227\214\025^\365\227R\tN\314\356A\201\350*\031$d\230:\375\017\275hC.\254\240\307\271\001\007\322\253\\\262\315\036\3449\332y\3665\272\330\305\275Ht\373\2635\233\243\251W\214\364\253Z\\\342Ue\nC\003\315g{3E\251t\251=\252\013\220\262Bca\363\003\221\232\333\241\223\334\245\264\214\252\234\037J\267\246F\311\001v8\311\340V.:\232\247\241\014\203e\313\365\311\346\244\261\371/\225\231I\372R[\214\320\235T\222\303\203T\246\303\235\207\245m}\014\232\025\241\204\3046\263+\216\364\202C\037\312b\334=A\247\320H\262\353\261A<g\261\250e\346\232b\222(^BB\027Pp\006H\25221t\300\340\212\211\240\212-\350v\317x_\346\"4\341\234\367>\225{W\270\2169!\266V\310\007\030\254\323\261\252Z\025\241\220-\342\234\3603\232\321\262\234,d\034u\310\342\232\231<\245\'\263\224\334\371\210\352P\035\334\232.r\361\236\241\275\353d\314$\216cP\230Z\202\300\225\215\216\013\023\223\232\321\360\275\334W(v\222\246\"\024\226\035A\357Y\270\3528>\206\236\243\022,\221\007`\317\202s\350)\020(\300\004\034\325^\301\312X\021*\256y5$@\014\372\327U\'tg%f$s\005,\030q\330\3242\310\031\310\007\212S\220\222#9\307\"\243\231\210\036\225)\330\021\2334\010q\270\261a\323\336\213\202\036\351\"\333\201\032\344\375MCcB]\334\245\234*\301w;p\213\353Ul\255\2027\332o?\326\023\273\036\365\r\224Y\236w\332\034\200\273\276\350\254\275WP\362b\362\304\233]\270n9\242%\266Egc%\316\331\257\231\226,e\023\271\255\013k\030m\331\245,\331\376\020{\n\231\"\342\256=\335V\006\347h#\255W\323\240\2013*\332\306_?x\250\315$\315-b\344\263\023\200X\222*\244\316\031\276wbz\201\332\225\356QZ\360\310\0202\000q\324Vi\265Yf,\000Ry&\252;\223$w\277\014\255$\265\323\247\223\344\303\311\2656\216k\222\370\274\322?\215\322,(D\264R1\334\222k\276+A[C\233\267A\234\221\363v\253Q\214\n\354\244\254\214$H@\340\023\326\267\374=\245\233\333\210\344\272R\"S\362!\376#W&LV\247\241XDc\215cHQP\016\200\001\212\321\214;\021\316\017\275R:\022\260\311\212e\200\347\034g\326\242Tg#$m\364\252Bc\257\031[\010\006q\324\325U\313>\304=:\237J\264Ie7\306\230\335\201QN\242Ly\200\034z\212\242Z {f\220:\276J8\333\214\366\372W-\251xj?1\322\330\341{n\355I;\021(hs\027\326R[\314\320\\\306Q\263\301\354~\224\257\021h\343\332FS\251=\352\357\241\216\314e\320\007 \003\214u\025,\326\006+\030\246\222fo0\003\200:f\234P\233\324\265bma\263vXC\023\362\2630\352k+P\214n+\032\214\003\326\255h+\223\305\004\351\032[G\3030\334\247\324\323m\2017^T\351\265\363\236\224\272\224\215-2\030#v\225T\002I\371\277\245Z\363\010\270x\325\361\224\004\017Za\261Y\24637\236\312\001\217\214\216\370\245\275\270O1\"\003,\313\271\216z\n\020\254P\272\272A\"\241\034zTF\352G\271\335\0330\2121\330U\022\313\266F\330\306\262#\356\2239\344\342\254\005\rt\036_\225\024g\237Z\2414A\006\240n\265)\255\343`\253\263\344a\336\244\322V+v\270G\'9\031\rH,M\252#\033\210P10>8\036\265\024\346\343N\225\274\264Y\241a\237qC(\254\023\314\215\256\0261\226\376\351\315\021\341\343\334\220\226l|\313\353HE;\213VFW\265\334\200\236P\236\206\245\202\364F~x\212N8*z\032h\032\034M\330>`L\0079\340S\226\002\315\271\276\351\352\017z\005q\220D-eb\271 \214\000j(\232=\356\263[\362G\036\224\300tV\021l\363\031\231N8\031\351RB\261\307 \005\344\010x4&L\265F\2642,\2042a\220\014R\311\032\317u\000 \204F\005\233\332\265\211\213W4d\330\327+\035\273\003\346{\364\025.\232\220[\260$\004\000\020\t\253!Y2I\335\025\231I\373\335\010\252\027WM\031\020\243m\010rv\3654\\\036\245\255]\036+\005\371\370s\311\365\366\251\255\377\000\321\242\206\034\026,\241\217\265R3\265\213Ra\255\325F6\226\3175\t \335$q\003\264\214\037cZ\"X\325T\373P\\\023\203\310\367\253\340az\320\310\022f\371T\016\375j\305\214Q\207\313(\310\347\245D\335\221KSB4 \222W\000t4\355\331\351\332\270\236\247U%a\312M<\036+6\216\204y\243\375i\350pq\311\257\013\227[\237Cq\344\363\3059\017\2550B\367\247\220\007~jor\333\020s\326\234\207\221\351A\003\372\232^\331\244\364(p<t\315\000\344zSB\260\345\247\023T\301\216\000m\240b\213\001$W\022\306\2468\345uF<\250<\032\222\031\3321\265W\3465\224\242\206h[\305,\352\247i\007nI\"\237u,v\321\021\234\260\035\005yu]\231V1%\013q.\351Y\224\036\270\250\256\356\305\276\330\355QUG~\365\215\304\215\253\225gX\344_\227*\017?J\267k\021\334\010\364\311\255\326\242h}\330pN\3207{\325\'\261\232f\334e\343\334T\314B\307am\027,]\333\3275\r\324*\253\301\001ME\205b\265\255\364P\020\241\272zU\2575\346\313\202y\365\252Be;\355\261\217\232NI\350)\366\247\314\214\005\351\353M^\344X|\321\267\227\264\215\313UE\271s\200\301EZ!\242\275\335\254\260\377\000\267\356\005f\\\314\252\345[z\376\025W2\345\324\254\322G:\230\3627u\301\353]?\206\234\013%\213\251\036\365\217S\242\032\032\257\214\340\376U~\322\350\254Ap\016;\223]\024\347\312h\213B\344?\000\325[\224\310\334\277\225k)\363\"dS\221w\360N*\274\320\371`\257\235\226\372W4\214\333(\\\3056\302\301K\001\351\351S[M\034\360\010cE\\\014\025\365\251\216\202\026\334A\023yr&\017\251\250o\355w\206\222\007\'\037\303\336\264%\214\205nM\270\336\010+\3235-\260\210\310N\335\257\334\023\326\256:\031\265\250\347\206\007\223r\242\253\343\267\031\243M\201\322\345\317\233\265@\316\007z.\233+b\364\204/|\324a\241\224\355-\310\366\255[2 \362\225e\014>j\263\033\0059#8\254\331F]\357\231\366\325u\005\206y\031\353S\253\022~RT\373v\251[\224\230\262\3114gxvb}MD\322\206\313c\000\365\252&B\244\355\034\233%;\243=\033\322\247\000\255\304n\033+\236ER\025\211\2659\002\246\367\317^H\254\344\271\317(\344\217CUb.5\256\303\037+\220\177\235C$L\323\017)r\356@\002\263l\244l\341l\254\326\005<\216\247\246Mak3\250\2269\010\031\r\216\017J\226P\373O2[\206\237\030S\315h[\006,9\357I-D\311\343p\316\312\275\027\214\324w\254\032\330\221\203\223\212\350\2022\231\314kVJ\217\033?\314\207 )\354k?\303\2624z\204\260\223\303\306r\243\240\"\234\214\321\324J<\350E\323t\333\214\324\226\013\n\000\376Yc\236\016j\022\271i\330\272gI\006\0266\\z\321\236+\242\233\260\245\251ZM\335\350\215X7#\255;\\\316\341+\355\312\367\2527W)\033\225b3\217Z\231 +}\251\t/\375\321\220;\232\201\356R\322\t.\256Fe\227\356\245e\'d\\\025\312\372|r\335J\3272\200\034\217\224zV\275\265\274g\n\312\013z\232\205+\232X\302\361\016\257\233\203c\247\306\013\206\332d\364\365\246i\032Tp\237\264\335Hf\227<d\361T\303\251\254X\261\017\327\025\013\226fg\'5\235\315Q\037\224]\367\312\006\336\3035 $)\031\n\005\"\231\003`\345\226]\307\353T/\246d\211\206\362\013p1J\314.Cn%*1)|\372\232z\241Yb\335\203\227\034\032\322;\223\271\352\336\036.4\233q%\262\300G\360\251\340\373\327\225\374G\203\354\3768\271%\331\374\350\325\301\"\275H-\002Z#\032\025\001\262*|\205\353]\013Ds\330\322\320\354X\314.\'\000\271\373\243\322\273?\017\302\026]\344\344\257\267AQ{\263X\306\307O\003\206\034\032\2264!\213\261\310\355[E\226\022\215\344\016\224\214\0068\340U&\003\204hSi\344\036\264\320\250\213\265\026\2552l.T!b3\201\300\367\241P|\262H\312H\344\212\253\212\303e\306\013{U3\004\222\r\3560\017sF\344\310\312\324\364\373{\270\231\'\217\314\307*\343\202+\237\272\320n!\266s\034\200\214\344\003\327\024\223\261\223\215\312s[\"#H\313\363\005\306\010\2536\350\262\333\371Lr\200`\203\334V\261f/FV\275\267\216-,\305\031c!m\300\032\212\353KO\262G2\310K.\031\307\363\255\004:\321\032d\036\\\252\305;\036\242\254\\\242\262F\353\215\343\206\367\244\027*M*\254\"(\260~l\260\036\265\005\324\276k\302\020\224\224\361\223\351@\311\347>E\252\306\231fc\206oJ\247$\312/Hdm\2450\016;\320\231#\'H\245U$\003\364\352j[\231`\202\002\"P\031\306\002\325\r\220\255\2522F\215\327\275Msq\020\207\354\222\\\r\374\202I\351@\r\320\225\021\235\212\374\275\021\307\255h\334\024\363S?\305\306G\255\001b\302\312\252\026)z\257#\"\233{s\004\027QG.B\312\277)\354O\245\002)\331D!vx]\224\037\274\235\252P%\301,\023i\356\033\006\204>\204\030h\267\022K\367\347\255V\274\272C*\211!\016\276\275\351\262l[\202x~T$\252\036\007\034\212[\220[Q\333\026Yv\214c\271\364\246@\363\037\310\373\220\226\003\225\357Y\310\352\355\266U`\247\201\236\264\230\340M\014\023E\304o\346\307\333\324Sn\314\3456\200\275z\257Z\023)\222i\306m\312\2526\177x\3665\274\354\220i\313\277\356\261\301\305i\026e=\002+7\265\273\212\346&\335\033\257\342\001\024\276x\271\267\270\000m\330\270\036\246\2659\344\265\271n V\316\033\211\006AP\241j\245\252G\024\215,\343k\271\343\034\212\030D\265}/\332\355\367I\273b\234(\367\253\027\227\001g\210\010\363\362\205\310\252\212\024\230\355F_*\001#\276\326\341W\003\275Ie\001\026\271b<\302s\222z\326\204X\014!\356\216\340\313\362\216W\326\255\201\204\310\034\n\031\014c \225\300\357\333\232\321Um\352\017\004c\232\306\253\320\250\352Yr\010\246\002;W!\337\005dH\274-\000\232\223C\316T\374\325!P9\257\013\241\357\244/\315\216\234\323\251+\225q\340\361I\214\236h\260\230\341J6\367\241!\330V\3664\003\305\'\250\326\203\324\237\245)\034Q{\r\212\007\034\032y\030\306\r2l(\351\212q\351\357L\004<sV\364\215\206\3573:\205\306Fk:\213A\243R\352\351\312\005\217\010\200\347\216\246\261\357]\330\362\304\216\347\275y5S\271W\320\207aP\031\216\001\350*\206\256\257\024[\231Td\360\017Z\311\"oc{D\272\027\266\220\233\251V6\300\000c\255i(\226\t\010W\005\017j\323b\223\270\376Xd\343\353\232\215\346UP7\002hbh\317\236\347q*\037o8\342\234-\340\220o\272\225\334\016\2108\315E\305bXb\201s\344[G\030=\310\346\2339a\205\003\'\330U\022\314\371\342\215\247S1,\240\375\321\336\265b\216?(.\300\212>\350\003\245\021bhH\302\356\300\'\361\250\356R2NUI=\305jd\321T\242\250\371r\277SY\327\370\221\n\311\265\271\354:T\222d\315m\000\235f\033\225\207\345Z\232,\302\013\260\030\020\030c#\265.\203L\351\242x.\223#\036b\367\307Z\206E\2312@,\276\242\2271\262-\333\026\020npA\364\247\371\350P\257\361V\221\220\244\312W.\374\355\037Z\255\266G\313c\037Z\251\352`\t$\203\031\344\3247Q\215\342]\233\033\324T-\200&\"t\033\217\316;\323ZC\034\212\321\344\036\376\364\306J\316\323C\2719q\320z\326u\245\3747n\321\272y\027\010y\\\365\255\023\320\206\265/G\020uY\331\211\305I\033\205l\243~\264\242\265\006#\334\005o\230\365\351I\024\341\260\212\2771\352j\323\324\315\211k#.\265\366w9\005s\216\335*\304\316\025\035\273g\255\000d_M\231\225\227\200\0074\373K\242\371\210\257\357z\214w\250\226\214qF\212\253}\235Ze\013\236\007\275)\266\267\021\374\330\004\366\315ReX\213\310\206=\321\226\334\247\327\265Z\2024X@\004\267\326\2512Z\"\274!\243\nO\035\353*Kyw\022\214\005Z\324\305\255G\332\332\224\266{\273\225\301^\021s\324\325\315\014e\332\341\361\204\310S\357\336\241\356j\226\205;\373\306\270\237|`\262\003\301\0039\252\211e-\335\312+\243\005\r\271\211\025\022\0324\256\344\206\3363\032\262\207\356}*{\010\334\333\031pT\277B}=i\'\250\207\270[xIPv\242\226\311\352k!.\232+xT\362\316K\021\3655\262vFrF\275\325\225\263\330\277\234\233\333n@=\215r\226\232t\226w\200\311\314\204\234\034u\315ZwD\362\330\337\264T\026\017\003\272\344\347\000v\247[\306\252\270\006\204Q0\300#\232\177\030\246\201\253\221>\003\216\364\2622(\311 W]$\254s\313s7Q\273X\327*2s\214\372\326Z\333]\310ZG\210\202\307\214\326\025_cD\207\303o$He\221A=2OJzZ\t\245\022\310\371\343\030\305snRV,\305\031\264\336\322`)\\(\357N\226Qoc-\304\207\033GOSS\324\263\230\267\000;H\023\346v\316:\222k^\316\311\213\254\267Y\307d\315]\354\010\236\361\221#2;mQ\350*\207\332Z`R\030\313\003\324\366\025;\227\260\257 \201\007\232\301\237< \346\253\301gq4\306\346gP\033\240\315C\320kQ.$\020\035\203\004\203\310\364\250\235\014\301\272\034\364\024\356U\212\260\310Q\210\350A\301\025\247\243i\255\253jp\302\256B\223\363\0203\217\255kI^@z\212*\303\022C\036p\200(\2573\370\2732\017\026[[#\263b\337{\203\330\222k\321N\302\222\320\346\363\362\000\203\232\326\322\354\266\225\226P\014\204}\336\313[\267\241\312\2677-\243\n~Q[\372Zl\\`d\342\245\035\010\331\211J\216\0335a\016\324\306\354\326\350\244\033\263K\367\210\031\343\275RB\026L\260\302\216}(T\332rz\236\265B\036T\001U\356X0\021\005\005\233\241\364\246\204\307\205\0020\255\330RL\013&9\300\347\025H\226\204H\024\332\025a\265\234v\254\313\233\006\226\341\241S\220\024w\357CB\266\207?\251Z\347\314\007*\311\303\014u\252\367+\210[j\343\013\332\265\201\3075fPfv\272\016\301\261\200\270\"\257D\337\2701\220>`W\037Z\261\\\255\0240Z\3333\306\301\\p\t\252\227/\277\346_\225\211\311\301\353Hi\024\242\220%\323+\241\317\\\324\222\305\346\\,\246\\`\374\274p)\014}\364\245\'X\230\006\004g\212\210\t\"\234\177\024L?*v\001\267>T1\275\302\201\200:zUI%c\211<\277\220\377\000\020\355L\007D\nr\223\226$z\364\244\266\263\210\334\006`X\367\317\365\246\"\360\225a\221\342P1\327\030\351Wm\2366\264_1\224\204;\206z\212lW-]\272\310G\313\311\031\315d\335\274w\016\361\256wC\367A\025#\334\231\342a,x?)\000\226\035\250ke\225f\216l\3622\204t\317\255R\013\225,\026\356\3469\"\216\350\226\003\205a\326\253\2447^c3\3067\307\325I\347\360\247bM)e\261\272\201\036\021\262D8a\267\232\267\022,N\217,j\271\3447\245\006l\263t\003\247\237\031\014\000\352\017Z\314\232\304^/\230\344\253\366\n(\036\304Ikue\325$\226>\273\220\036*]\320H\241\371\335\353\353RV\345\333\004P\233\216\3223\323\035)d`\305\221Ih\363\317|U\305\2214^\206r\226\210\341\272u\343\265W\265bd\236l`0\033Ej\231\202-H\362Ki\004\nw8}\307\351M\324d\362\364\366\334\2009`\024\216\325A{\032\022\303\033\331\333\030\2166\200\317\371U\1771\220\302_,<\316\ri\261\233\324n\260]\245\212)\010\332\3141\370\326\231*T\354;N1\315\021\324\231h\204\322\313\310\254\\\347\r\201Vn\237\312Q\320!\375M\017s;\266,K\236\010\347\265h\307\304CvI\305cU\232SZ\206\342O4\340{v\256c\275l9x\\\nU\317zE\036v\243\025 n9\257\007c\337\270n\357J\244s\305+\214Q\326\244\030\353\326\215\312\005\343\2558c\034\323\030t\\\346\225O=*[\260\016 \267|S\373P\225\303aF\010\240`t\252\001A\031\24774\302\342\216x\245\003\214Rz\210z\313 \340\234\212\232\001\273?-q\325\244\206\205\217\312Wi\344\003lc\222k\n\354\311\252\352l\261\374\240\221\311\354\005p5f\014\336t\204\336Ei\n\374\303\030\307lV\203\245\313\276U0=sF\340*4\200\341\271\246:\231\037\345\024\233\260\256V[0%\363\003\234\217\3415d,q\215\3628c\351\212\032\035\302\027\023ne\302\214\340f\222\346\'\000n\311_ji\\\222\254\355\034E~\356\345\347\035\352i&\230Z\345\024\347\034SHM\224\243\270Y$\333qv\310\007\250\251dU#t7H\313\333i\246f+Y\310q\276\364\223\216AJ\247u\246\3371&\031-\331~\2475(\013Vq\274zKY\336\304\231l\341\224\364\254{\213\013\310\235^5wOQ\326\251\350\204\321cK\273\2312\033pu9\034s]\n\335)\205\'^\t\340\214\364\250\350i\026:[\224=A\000\367\355U|\330\32523\311\373\325qd\314\246\367\016\356v\206\332=\372\323~\332B\355d!O\007\332\236\246W,\017\"XC#\235\376\324\351C\010\216\343\270c\232\326\002fs0\r\362\020qN\363w\000q\217Z\201\241\321\026\215\367&~n+3\304vl\263\233\3302\222\002\030\340\365\247\021H\320\262\276k\3152<\340;\0146=E\034\303,j:1\000\320\2302\336\245hU\013\257AV\243\211!\323\223j\000\304\002MZ\334\315\224\343?\3618\023\036\2011\372U\035r\373\311\267H\206\tg\313\003\351Cv\022%\3234\370\344\265\373U\3636\326\345\020\034q[Zm\215\275\264\017r\"\001\335p=\205M\356h\221[Q\2266|\264\200\201\302\217J\312\276\r,\310\021\310\003\257<R\275\230\321n\312\321 \265\363d\224\261\' zU\2577\313(;=U\304\306J\013\234\201R\332X\264\311\276A\265\007Z\270\263;\020k\355\030\265\214F\301c\335\223\352j\275\274/ya\025\264nb\214\363+\016\303\322\224\307\026_S\022F \266M\260\240\300\367\250\24421;[m\013Q\020\330ij\3235\304\347z)\310\004pMY\236\362%}\245\2677\367\005\026\036\310\247u)\271o%\216\321\325\200?\245e\332\253\317\253\207o\226(\233\345\037J\246\314\267f\334\363\226`\240\344u\315Of\252\340\266\325c\236I\035(\325\025\271V\362\310\334\314\354\223\004\'\261^+1\344\2229\032&?2\236\265H\231\026\255\013\311\031m\244\014\365\365\251\231\374\264\313v\252QlJVEcv\203,]~\206\263\305\334\227wH\221\374\250[\006\265RiX\312\327f\225\276\304S\215\253\264\3434\331f\216(\232f\'h\340{\232\312N\346\233\024\031\236\345p\251\234s\214\324\366\220\\\007\335p\2068\243\033\217N}\253\026\313Z\214l\312\302Y\233\nN\177\n\241u\005\306\2518,|\213d8Pz\375q\353R\227R\254Z\212\312\312\330\253D\244\036\354O&\245\273`\350\252\271\0309\372\323n\372\r+\025.c\014\0021\312\365\306j)\031\"\213\313A\217`)\257u\014d\t\013e\304cq=M$\223\034\354Rs\374\251I\\h\245u\0236\031\216[\326\236\"\2368\303,20\306s\2675Q\215\306\331\267\247h\021k\0327\333\255$\331q\235\270a\301\307c]\'\2034\226\322,$\373C+\\Lrp:{Wu*v\324\r\224\031\221G\275y\017\217\333\355\0368\276\220\250\0010\234\034\347\002\267[\212{\031\3261y\267q\240]\304\236=\253\252\265\210(\343$\3675r1\212.B9\255\273\034lR)\304\320\321\207s\236\265h\002\027\232\332#\027>\224\202M\276\365W\002H\272\345\217&\245<S\022\032\333\233\030\250\327\036k\276\336W\201V\202\304s;\270\001A\034\363OP\303\202\rR\320L\224)\341\317n\325\034\243\022\264\375\311\n)\261\"\216\251\245\254\251p\343qpK\202k\231\362\376p$\004`\341\270\252\203\261\205X\334\2552fb\333H\003\216\225\035\306c\332{\023\305j`\214\217\020\254\262\313\0041F\315\221\270\201\353Sip\030\243o\264.w\001\205<\342\200C.m\340@g\334T\261\306\322i<\245\020\241\'\031\347\024\r\2146\354Q\244\310\014:c\270\246$\203h\000\222{\346\222\005\261\r\324\212\354 \226\r\244\221\316x\"\246h\201\375\322\252\200\007\335\354i\240\271\017\221\0248\220(V\035\252\320\224:\253\260\034\216i\246I\014\362E\346\007`p:\234U\237\263\3072yy\3020\352\264\003-C\210\225b\016\013 \300\317R\005C{\014r\334\375\2525+\"\257 tj\033\004>\325\202N\276b\206\211\306>\206\230\305\355\247x\345\313F\016U\207jhOQ<\270\204\342\346\000\254{\3555aai\357\024\310\273O\267qM\022\335\212\327\366\342k\326\226\320\2522(\014\203\276*\352\274\267V\314\000\347\030\301\240M\334\247g*\243\264w\t\345\221\306GJ\271\014\2026/\033\253d`\014\322\023e\250\' \022\t\n{\032\257-\244\r1\222\021\261\272\225\354i\026\236\203\256\014B\003\265\010\224\017N\246\252\3310G\334\331U~\010>\265hR\330\274\341w\004#*z\221\351Uu\007(\271\264f\333\220\240\201Z#\237fZ\261[\210P\254\304\0313\220s\315\0207\332/\010\272v(\235\0068\315;\212H\230\336\207y\0227b1\260\0008\251\'_\263\333\306q\274\202\016\017j\322\372\031\215\275\225oPH\221\374\361ry\355Z\221\'\231\032\220N\ne\275\216*\340D\365%\264\375\304#\256\017S\212\206\342o:`\240\345Tt\355N\302\331\032V(YC\236@\340\037Z\232Y\016\341\203\305r\324z\233R\000\344\217jxl\327;:\223\036\255N,{S\035\317<\311\353Ru\350+\347\337\274}\020\277\205(\030\\\232V\030\253\203\320\323\201\301\003=i\"\220\341\234f\225N\341T6\207\036F(=0(hHr\375\332\006\342\330\034\321p$C\371\322\366\252\350\001\300\353J\t\317ZL\020\345lR\375)\334\005\317~\364\370\345uR\025\260\rD\243t\010\212\340\263\333y \361\234\237z\254!10\2221\363\372\212\342\235;j&M\247j1\331\352-,\340\263\343h9\317&\267\355/\022\3624d\231\262\331\340/J\344z\026\266/4h\251\313d\372\372\325g\211\221\304\220\234\372\2127\023CY\226O\231F\326\356*\006!\270=\251\350I$m\n\3066\200\244\236\365\034\236l\352\310\217\267\216\r4&Q\212\332\030\356VI\\\276\016H\350\t\2555\232\335\210\300M\376\224\322\021\005\305\250\224\345m\325\211\352zUc\245\235\331\005S\035E&+\022\255\271U\316\354\201\327\232\251qy0+\r\274 \276x\315C\320\231\026\255\376\320\215\233\220W\216@\034U\210\325J\356IWo\265>\203\261Z`\271#j\221\353\336\241;\225p\243\3454\223\021\235$\2671\\ybV*O\000\363V\341\272\230\262\305-\273\262\036\254\252x\250\263Lv\2714\313\034c\000\020*+i<\331\0142\340)\350Mo}\014mfM\022\255\273\230\324\005l\360Ozx\270\335\220\312\001\372\365\252\213\023*\\\302\033\346^\265G|\254\373@\332s\336\223\022-#`\355\336\t\036\365+m\236\027\215\361\222:\232\023)\231v\301\355%h\245\300\347 \326\2067\017\233\234\3645\234\264a\023WO\334\372p\363\030\226\351\370R4\233\340h\217\014\274\212\331lCEk\2206D\300\374\347\214\372\3258-\322\342\371!\332$T\371\244,2>\224K`\2127l\255\215\314\341\345\037\272C\323\327\320T:\366\242\340\264\026\333w\216\017=(\212\320rv9\363w0C\034\204\022z\034r(\265$\347\347?\215L\220\242\313\361\310Z\334$D\226\006\265\014\001\"\216I\266\371\233zSL\266\210Z\t\032O\220\340\036\271\355V\256\244\305\267\221\001\300\013\214\372\232\250\242\031\2174_h\225\026G-\263\267j\270\261\254q\010\323\345^\365m\\\2046[\230m-$\270q\225A\300\3655N\312Y\244O\264_>\335\347)\022\214\034Q\260\\MOQ\235\242\021Z\235\203\246GaT\355\363\032\207;\234\217\324\323\"R\324\225\\\254D\023\231$\353\216\324\260A \000\240\343\326\206\211E\330R4\\9\317\365\243\355\274\355\214\341\000\340\001M\r\310\232\331\245o\274\000_\347E\3140\2149P\016\177:\244\307k\242\255\314\305@P\3013\333\025\223\250O7\230\000l\201\323&\255;\0312\240\225\335J\036I\352\005M\002GjU\330\020s\306i6$ b\362\3452\001l\361R2\315{p`\205w\010\306y\351\232\206\313\265\310\340\216\345\241!\025\370<\260\355W\255\356f\224\013u\013\345\242\376\361\317SPj\264\022\346\031dO3\370\001\300\025T\312\250\333K\014\364\305\'\240\311O\314\271\357\357P\317(\216-\316\300\023\300\036\264[K\224W\371\235K\002@\376t\254\210\300\002\016>\264\223\270\255q\262\014\000\023\201P\227X\301<d\323+a\220\317\010\234\t\312\225\317\"\272\317\016\256\001\2326\r\023p\017Z\353\243\033\231\271\0330\354\217>Z\204\004\344\205\030\031\251\204\234\3475\325k\024\2314.\245\262O\322\274cT2I\342\rM\345\'q\272|\376uKrj=\013\332\0322\202\3103\352Mt\026\340m\333\216i\275\311\211j \007^\225\255b\271@}z\n\270\227sJ 2\t\034\324\305\217\255lR\330\027=I\243o4\354M\207\247<f\236\010\003\201\311\246\200$gP\354\247\033V\226\024ua\270`m\252B\270\014\031~\357#\232@]\233\221\327\245X\205\206]\306E<m\340\346\234\027\367A\033\236A\036\324\304\207\2611\304\3628\334\247\214Vt\3660\275\231\215\207S\301\317J@\321\201\250\332\264J\310\256X\203\336\261/\314\336j\300\234\2667\023\351Z\305\334\347\232\260\313x\0249\236Wl\240\311\367\250\265wX\354K\307\325\210\301\364\006\255\031\024\257m\234\333\304\321\345\200\373\300\325t\221\356\246X\202\235\312pV\201\334\265w\272\326%\362\024\272\356\371\201\355N/\024\233Y\242\3108>\342\201\025\256|\231\256vK\362\000:1\307\343\232\222\352\332X\261$O\275\024t=\350\021^y\243\2257\272\220\253\334\322[\266\350\367B\314W\330S(\002\\\334#E\022\006c\320\223\322\255i3\210P\332\334\304U\267}\374\346\220n:;_\364\266\221\234\343?)\247]Jm\247\333!b\214\237+\016\324\304M\231\032\325\030\252\343\375\223\234\322\332H\257t\321>\030\355\351\336\231$M\024v\332\2001~\350>\001O\341\255Kf}\273\324n\333\311\317j\250\221#\021ex\357\344\275\2327+\346\023\362u\255\004\324,f\303Cu\207\356\031J\324\261\306\326\031 \212B\314N\340z\363R\300mcPB|\247\257\265$\001\252\254\221(hIh\230s\217\341\252\220\371\255\031h\345\221\361\327&\206\205\314Hf\270\222&F;\231FG\035EK\035\315\255\305\242FAF\\\035\244pH\252@\331t\304\276Q`\371\005s\221\320Uk5\363\027\345\177\335\251\374\315l\216i\"\353l\336$rs\214b\252]G#\234&PJp1\353L\233\227R\336\326\323\013\273i\3322\247\251\367\250b\232I\313\251Q\350*\221%\3352$\205\t\332[\264\231\035kM1\260\274g#\035\253Tg\314C\177u\344Z\024f\330\322)\t\365\252\332\021m\341eR\352[\222;\322\270\344\364:3\205\217\201\307\245W\'\222k\216oS\246\224t\0361\267\223\30581\316j\0326Z\017^\271\247\347\024Xi\236~84\355\307\034W\316\354} \340O\034qN\251\273)4*\250\315+m,3T\220\207\201\216)\241\376}\270\305\r\350U\307\212\\\363J\342\024\0228\247\000{\034\032hn\303\227\013\326\235\236x\034U\022\031\035\351V\201\217R\r\000|\335h\260\\RTu\240\365\242\302\020g4\354db\246P\272\021\237sb\315!\221\030\0229\000\367\256\257\3031\230\364\210\330\242\251$\375k\317\253K\224\270\227e\270\217\230\331O\261\025\233+\317\033\356@\335zv\256]\201\261L\277\306\303\236\365\033\313\033\235\310O\343Ka\\\2534\204\251\\}*\213\335Kn\t\336\312?\272)\334\226\301&{\210\267<eA\365\357S\351\316\213q\276S\302\2161Z\253\261\032o\251\306\251\373\270\017\343Y\367\032\254\354\330 \001\355ZJ6@\210\026\351\213d\344\347\324\325\210-L\305e\216_-\275\206k\013\003E\360\314\220\204\222@\344w\252\346<\035\311*\202y\"\245\222\310\336\336\022\301\232]\244\373\323\340X\325\310\373R\272\367\035\r\027\260\221l\262\371`G\004c\320\342\241\230\\H\2702\005\025{\240eV\266\233\014@\335\364=k>Vub\222D\312}\305RVD=GGxCl\223\225\354{\212u\313\007@\312\303\203\301\006\215\211h\2015\001\031\021\334\0223\321\205Ez\022X\311\373\310y\3104\256\010\241\004:\210\271\333k\023N\240gn:V\234W\016\262\01704dp\312\302\226\273\2145]\257jfA\226A\371\2124\371\374\313e\0309\003\000T\267}D\264:[%0\351\321\304G8\311\'\336\250]\007IK\240\372\217Z\336:\242%\271\014\223\247\331\307\003#\356\217J\237\303\310\355\006\340\270i\2179\364\241\273\224\221\253\250\334%\245\242\301\033\005v\351\3765\204\360\006b\312p\335I\252\216\204H\202HC\340\310\270q\320\372\325Y\221\343\205\333\031>\325M\\\233\330\227J\177+;\216\025\207\031\354k~YU\342F^x\346\261\265\231\255\364\034$& \020\360:\322n_/-\301\255bD\231OaF/\273r\347\255A5\313\273\177tv\025{\231s\025u7Y\014Qc \035\306\243f\222f\010\200\343?1\251\222\004\\K6\334\016\320Tu\311\353R\334\333\025C\032ci\034v\3054\264\013j2(|\273R\277y\377\000\275\212dw\022-\307\222\350\010\037\205\014,\\\021\303#\007\004\216\304f\234!\215>\342*\375\0054W*!\236\342H\262\"\214;\343\200zU\010n.\331\230\334\360s\351\300\252\261.]\t`{{\342\320\305/\357@\364\254\273\215.h&d\271\221\216O\312\303\275\t\334N7E\230\241\212\330\017-pq\324\324\027\356\'u\301\345x\244\331\tXKx\261\200\356\000\034V\205\244\321@\236\\\n\006~\363\3675\214\235\315b\254Kg9\004\250\031\003\220i\346HAf\225B\216\247\216\264\032\"\246\255\250\264\221\010 P\275\311\254\270\222(\334<\215\270\323Z\2416I$\236b\374\244\342\252yhf\335!\334\335\275(\220\026$ F\000\302\250\250\231\324\214)\007\334Q\262)2\274\222\234c\"\253^0\362\017\367\273S@\366#\2162\353\2229>\265\325xa\347\206\325J\020\326\357\325\177\272}k\266\206\346\022\320\335Yr:\323\326S\212\354\260\324\207\3037\357\001\317J\362\213\247i\365\033\353\234\226\337p\355\223\334f\210\241I\233\0324B+d9\'<\232\327\201\2068\251oR\342\264-[\020\\ddV\275\247f\034V\221\035\213\361\034\324\200\232\325\r\016\0353N\317aT1\312@8\025 \0309\246Hn\366\315I\223\311=\3061T\200a\\\251=(\211\260zU\000\211$Fv@2\000\344\216\346\202\242K\255\331\306\334`S\2716&\224\361\203\367})\222\004e\301\031\357R\330\354f\334@\255p\300\r\316\334\223\330V=\305\207\231s+\303\026x\303g\214}*\323\261\214\343s+T\262\232!\222>R\274\3265\3343\260\200H\312\350\033;G\245k\026a%a5\026\226]\221\002Dd\362\026\2046\366\363y\261\240\033F\t\357VfKw$R\335n\215\203\017,g\036\264\335\336YF+\221\3234\212!6\321\336\333H\030a\224\220\033\322\204\263\235 v2\206\2165\373\271\240\036\2042G\347X\030\200\300\300$\321\243D\320^&\305.\262d7\024\022\331,\220\210&\226{I[z\023\2711\326\237\247\314&W\270\232\016W\322\230\320\373\233\277!\266\230w#\014\3474\330\266\334\257\031\013\2163\332\201&Ck1\206E\215T\021#m\333\357V\345\210\033\364\375\331\004\001\363\nh\231=B\t\014\367\215is\265\261\3025:K\326\216\t,\274\275\254I\033\263\306*\272\023!\"a\032\016\016G_\245A\016\227\233\331$\310\362_\346\000u\006\245\204\r\003`\256\273\242r\262\216\203\261\250\")$L\n\355u\373\300\320Rh\2269\014+\202ILqVb\266\203c\317\027\013\267q\307j\245\251-\025J\251) \371\013\034\021\332\235ok\000\2701:\215\254r\010\035\r\t\020\331Y\247\226;\227\267g>R1R\243\3235tG\366#\031S\221#\341F*\3223o\241$\322\010\345\375\376UI\300=pjxy\230\260P\313\032\346\264DH\247\033I3\274\357\223$\237(\366\251\"O(4\000\020\010\311a\336\232!\253#f\334\242E\022\347#\003q\365\253Z`\214\031\014lH<\201\351Z\364!+\231>#\333&\242\252\273\206\020\034v\315[\360\314.\250IrT\266q\351Y\337B\244\256\315\233\251NB\001\2009\372\324\0319\2569\263\256\232\320\221pW\221OC\305Je\241\301\260E?9\246=\016\020\001\216~\3658/\025\340n\217\245`\264\240\036y\342\245\253\222\225\207 \347\004\342\224py\241\3541\343\245!\373\303\037\215\013b\254?9\024\235\275\3510\260\274\323\327!x\353Ih\014\002\223\306y\2511\216+K\213a0sJ)1\216\\\322\212h\007v\351JFi\354!\007N(S\316)6\026\003\355[\036\035Vd\220\311)\332\016Bf\260\256\275\321\242\315\304`>T\2223\305P\232Y#\220\251\340g\270\353^S\023\032%\334y\034R\223\001\034\266\334\367\002\205bnG<A\316c`q\336\250^\302\307\004\036\235h\021\033\310B\200z\037\322\243G!\362\255\220kJr\324e\330\244WQ\236\270\344Tr[\202I\007\255vi$H\323\016\016qS\332\305\221\200X\037j\306q\324w#\271\027\0219\335\271\207\257\2456\322\362\337k\306\350\375~\360\025\213V$\212K\033\271\234\265\261\334?\33285Q\254\357\"\224H\313\260\203\223\316k.[\215hiYj\022E\031C\000\223\277-\212\321\262\227\3551\356?\273o\356\232\265+hK\324t\333\323>Y\031\252\301nd\227\027\022F\311\354:Usj+\020\336i6\362>\350\344u\334y\025\r\306\204\240\357\261\272h\017u~A\253\265\310ey4\331\266\205\270x\310\376\362sU\355\354\'\206Q\344\315\220O\335\305g\3123v\326wV\002T\362\346\003\007\216\264\335MR\362\334\243\3408\345Z\257\2404by\257\016b\223\007\250\253~\t\26333I#e\"l\266;\236\302\241+\205\216\232\345xf\316\002\214\326e\314\213<A\3238^sZGBZ2\244\213{\226V\300=kv\311\343\264\261\023\223\204\332\002\346\252\332\202\330\302\361\005\334\227R\231\325\311\333\367q\332\235\244\335I4\037\276\373\303\370\275j\211\334\277\200\303\324\032\212H\001\004\017\312\250\206\214\371\341d$&p9\301\253\2667\237\273\013 \333X\333R\342\313BVS\2762:s\223\332\256\333\243\334\304$H\230\253z\212\270\260\222+\335D\3601\214\020A\035A\351X\3633E6\306\311\3175\246\307=\265\035\0342\334\311\362.\304\003\227o\351S\\yv\266\244\246\371\034\014\216:\2327-\"\202\334\336\\\241\212kG|\217\227\031\025\241\246\305\250C\023$\320\311\261H\331\337\212\031V4YT\250\317\313T\245\201\276\320\\\235\305\217@(&\300\373\3438\344\032\222{\231\220#$A\320\216H\352(\265\207p\206q1\3169\007\246:UMXI$\014\266r\356u?\274N\370\252D4A\243\201\006\373\227R\201GR+F\323Q\202\372\003\014\361\262\363\303u\305OR\223\320\243{\nG+F\262\226\357\232\244\321.\306`v\252\214\237\245\006Os>\332\371\256&\302c\312\335\214\343\221Zv\300\024\373\330\346\261\226\206\3614\255\014J\247\0078\035\353?Y\274\216\005\336\307`<\014\367\253\216\250r\320\310\227PI\243\021\302\214\331<\267J\261d\216H%\000\003\276i=\031+Ry\027\000\201\212\252\211\203\223\236)I2\306O\013\316\373\236C\264tZ\206]\341\002\003\264\016\276\364\323\320j#$\004\247N(\201C\267\316F\000\342\256(\226\3644,\264\364\272\311YYY:.85\267\244[\275\265\256\306\357]\324ac\007+\227\001\307J]\304WQ\027\037\023|\300z\327\234\335\225\373e\320@0fp1\320\363F\305\033\266(\026(\323\217\225E]\217\025\027\324\336+B\325\276\013\373\326\265\213\r\244sV\206^\213\245J2x\255\220\017\003\2658\nc\025q\237zx\364\246\220\230\240`\322\222F8\316j\204\t\033\014\340\347q\242\\!*\343\007\031\024\300j\230\343\200\001\215\304\366\247D0\373\310\347\030\252\020\330\235\256.\310\'\020\306:\373\324\2018$\267\322\225\206Aq\265TF\2032H\324K\0166\253c c\212.KE\013\233a;\230\243M\310\017\316OJ\347\265\r>8\356$\021\214\002~_j\322,\347\251\023\007\304\013%\262\305\025\252<\2228\371\234\016\005fZD\373\0327c\363s\370\326\306\006\236\227n\027s9\007+\266\235\014\210\263y#\347\343\232c\021\330B\214\270\n3\234z\321;\230\341F\037t\217\233\236\364\t\204;\346\363g`UYv\250\307\025kN\362\322\330 #zv\244\303r6\205\004\2570\'y\0370\247\307\036\370$1\340\022)\r\025\"!\242X\347\000\220x\004U\254\240\033\000\n\017 \nhF^\251m\376\230\376H;\227\r\217\352*\3343K\010\212k\222\344\021\367\361\323\330\323Bh\271\022Z\\8m\233\034\037\276\275\352\274\312\005\323C6\335\375\233\324S&\305\263\026\333p\314\243\030\375=\352H\266,C\030\372S\261;\022\332\260\362\232c\3213\237aY\353\000\235VH[.\017s\301\0240[\213\n\310\'\334\311\3008t=*\334\205E\234\311\n\355fM\253\212\"\022(\240\232[\020\254Hx\377\000SV\254\031.\027\367\233\221\307\007\216*\2233h\203O\215e\325\210e\334\254\344\026?\245_\324\241\021\250bIh\330\024\315h\214\344\212\332\220\226[78\000\3440\372\325\253\000c\213\367\233wJ\2039\246\211\334}\274[\340g\373\252\271\000\217Z\216;y<\231%\220\215\240\023\356j\320\244\364\'\212V[h\227\312\3343\324\036\225\245f\312\217\275x\005q\317aWr\014\303\037\233q#\2072\r\334f\267\254\266\303\021l\016\230\254\346\354\204\225\331\036\360Y\216I\'\326\235\220O\245q7s\266:\"L\323\220\372R-\016\036\271\247\nhH\341\343`Z\235\236k\300\331\037J\035\351\300g\031\242\367\006;\201\326\235\267\'\255\026\270\354\013\362\215\271\346\205\343\203\315+\000\360\r(\034sT\220 \007\017\214S\311\305\'\251B\000O>\265 \030\024E\022\302\224ScB\363I\234\234\nI\201 >\275(\357\305\014H9\245\030\353@\304\034\n\261\247J\353y\022\307\301v\333\232\232\237\010#\242\235V4(X\026\034\3265\367\231&v\241\'<\022k\311\226\341\"\274\013 \341\327\223\330T\206\034\216x\036\206\241\231\220\311i#aQ\200\035z\320\220\316W\347S\364\242\303+\336[e\n\344\202F\rg\305\023\3060N@<b\256\326\004XF\013\317zz\334a\262FO\255j\247`d\351\"\271\306z\325\333\000\023-\214\232\256ngp\260\353\225.\t\035\305Uc2.\324*\007\272\326u\0216&\210\310\211\362J\003\021\317\025b\332(\347\007\316,\370\353\332\261\270\332\270Io\n\361\014(=\317Z\2554m\2027\306\247\3234\210\330u\235\267\232\010i\311\036\325<QEn\3527n\003\326\265@I*\306W*\007\347Tn\032E\316%lzc\245Sd\330\316\236\350\001\2373\333\322\253GrV`\314\315\263\276=*.\356U\221\266.-na\016\2223)\340\022;\325v\212~Dh\317\217jm\334V0\357\303\313!\205\341e\2378\346\273\017\r\333Cg\243Em\031\313/26:\261\252BB\353\022\311\344l\210\014\236\t=\205s\376q\266\223\226,\244a\206kM\214\333.\333\301\014\255\2709\331\216\224\353\327\222F\362\301\t\n\014\005\252Z\201\227y\021D8\034v\244\322\316b\014\353\202OJ\030\2224\"VC\2049COf\300\317\245Kc\261\004\2373S\032\"\303\n\3371\351\201P\230X\320\322\364\250\355c\027W\363\022;\'cZGP\211\360\200\354S\302\323[\215\354Aul\n\273G&\030\214\363\336\251\311\032l\363\244@d\003\002\266\271\205\210\341\216I\271v\362\343\007\200*w\264vB\025\212\347\243RC \216\312\346\007\335\035\316[\324\256*\334W71\034\356\334Glu\241\242\321+\337G \006k^\335sL\270\270\2128\017\224\2043q\322\232L\226f\312\344\313\227bs\324\325\007\270\226\337U\333\024\204G\325\273\212d6>m^\353\224\216\030\367\037\343\3052\3127\205\205\303HG]\354OZM\206\34473\233\207\016\271X\227\356\217_zE\235\243\375\334|n\373\306\243Q^\304\22108RN\007Z\177\331\376\323\274;\025\217\004m\035\351\246.S\002K[\253\013\320\251\030*O\3123\332\266,\344bp\341\027\350j]\231p-It\260\333\263\371e\310\034\001\336\271[\211\232\366\340\3137L\360\276\224^\310\251\352h\351\266\350\361\207\000\205\007\201\353Z\004\242G\214\355\002\232\010\2213(\311\317\002\250\3343\314\300!\332;\220h\223-\022cl`\026\'\334\324EC6X\034\n\230\241\214\233\347]\252qRY[\007p\215\367O\353[\301]\230\325gMb\261*\225\214\005\300\351S\206\307\035\253\322\206\307:\002\324\241\262*\312B1,\214\271\013\221\327\322\274\372\\G$\207\216$8\374\352\220\272\235$\003(\215\200\013(<U\210\262++ju-\213V\300\023\356kZ\333\204\037\255Z\032/\303\367x\253\010\274f\265\210\354\003\203\203JX\347\030\252\023\034\203\214\323\324\016\275\352\223\020\277ZL\340\362i\205\207\017\\\232\206dy\245$\034\237z\244\026%\010\213\324\014\366\245Q\270(\'\353M1XP\253\032mQ\311\352i9\034\223\305Kb\0306\2072\020I\350=\251\216|\303\215\247\035\r0\035;\225\204\244\013\222\243\223X\315a<\2634\262r\010\373\307\2754\354D\225\314\353\333Bb\223\310\214n\031\371OCX\r\246\265\275\233\274\243l\314p\002\234\367\255\343-\016Y\304l\020\264\nGP9<\323e\222;I\226Q\036C\214q\332\251\022W\021K#\371\2626\346v<zU\261\001\222/%\370Rh\021^+\302\320\275\245\270,\030\225\316:T\251\t\266\210+p\307\277\255\000\220\350\235\2119\311n\206\2367\304\233\306Xg\007\024\206\022<`\r\340a\216)\215\024\202\3665\nX\021\301\240V\261,\210\242\343\315\003\222\233M,rDakb\271\007\200)\211\216x\204\026r\334!\332#\\\220GZ\317\260\216K\326\222H\234HW\346\n\337\322\250\224\213k+\265\274\220\202Aa\214\036\324i\262;\206\206O\365\211\337\324S\2712-\310\376]\243y\230\n\377\000\'\347U\354a\222\023\230\306F9\307\245=\311Z\023\333HZ\346Dq\270\217J\216o2\336E2\251h\330\362A\373\264\017p3\304&\362H;\330eXt?Z|\327+\035\251\343-\320\001\353A,-m\320\264wi\306\341\363\003\330\324\367\261\274\341T\222Fs\365\255bf\330\333\367\022\307\373\240=1\351K0\"\022\222\002]P\032d\226l$\006\311WhQ\236\271\346\254K\031xO\312J\221\316+Df\306\030\312Z\263\'%A$TJ\317ul\215\221\270u\002\213\211-\007\335H\272m\213]\312\215\273\030\\s\206\355T\254\274@.n\302\335\200\231\037+\250\376u\313ZgM\032z\033\320\262H\202H\233r\236\342\245C\371W:6h\220\021O<g\035\352\305\320U\3160jA\300\305\010\223\206B\003\025\333\201\330\323\325y$\232\360\017\247C\200\007\221\322\235\311\244\220\330c\003\232U<u\247\260\257qF\001\310\346\224\014\363H\244;\240\240z\223@!A#\2574cw^\224t\013\216\003\035:S\301\246\266\001A&\235\237\316\235\304\304\317\315H\331\335BCB\256{\323\307\002\220\016\034\216M#`\364\240\004\3174\340\305Ha\303)\310>\206\206\256&j\331]\031C-\301\335\'b=)\362(\010[p\300\025\346\325\205\23039\356\355\301\004+n\317Z\215\265d\376\010d\225\207m\265\205\254I5\265\331\23174\017\017\261\251C\006\373\257\203\354jR\030\331\027\217\230dU)\255\210?/9\375+[]\022\364#H\006H\301\367\246K\021\335\205\034T\265\245\200\222\030\366\000v\363W\355\233\266y\247OFQpC\346G\220\340\037qUg\201\025N\353\2003\323\212\251\352\"(\236\030\230\001\226\367\305ZI\243\334\025\213*\372\342\263Hd\376E\264\250\262\202\370\355\3151\254lVA&\302{\365\253Q2\220J\031\200\2166X\342\035\200\2527\021^y\231\363A^\300P\305{\014e\230\036P\206\365\315I\026\344q\270dz\324\333P\2714\361\351\227+\262X\223\314\003\'\034\032\246\332^\234_tr\001\354\306\255\330\0224l\341\216+u\206%R\211\355\232\033zJ\004m\203\334T\240h\216\365\325\200\363\000\007\246q\315X\261t\216\r\241\211\367=\352\322\271%{\251\t9\'\232\253!\267lo\2043}+K\020\320[p\370H\366%%\300\211x\004\261\352MSB*\031Q\201\004n^\304R\307\032`|\343\21695#D\361\274Q\347-\237\2474\350o\243W\313Fv\216\346\241\262\354I\250\244\006\017\264B\243,8\"\227B\213,\3620,\335\027\212\226\0265\036\024\336$\270\3030\037*\347\201Q\250\203xe\210d~Uq\023\025\262\347\346\252\267\330\216&\357\301\342\264F3\320\306U.\371rO\343V-\343\220M\274K\'\323<UXI\227\341yv\235\357\221\332\2279\346\204\201\261\\\006Z\255r\010O\245m\313\241\233\226\245\031X\225\310<\203\315g]\270I\244\221\216\001\000\342\263\025\312\277\332\020\207L\206n2v\323\225\356\365\03130\362\355\201\341A\355Y=\315\"\356h\"E\270\000\000\003\240\364\245t\216^H\316=)^\303\345%KuA\312\362j\304m\022E\345\252c\336\245=J\266\206\035\376\227$\327fHnX(\376\367j\236+G\214&$\014q\311\"\250\315\'r|\010 i\244`YG\003\265d\303\014r\\\356x\327$\347\201Ilh\321\250\002\306\233v\340TS\243NA\037(Q\306{\323C\261^\371\014v\3746X\366\002\240\205X}\352`\220]!eP\037h\0075\232\276y\220\356\221\212\203\300\024Xm\227\254\306\342r\207\201\232\335\260\215\026%!1\221\316k\256\2029\252nZ\214\005<p*L\327dQ\0107w\244\rM\215\n\2163\2022\017\025\304kV\377\000g\275\236$\034\006\317\340i\304\r}(\221a\t\335\311^j\354mQ&tCR\335\231<\222x\255;v\340{\323\213*\306\224#\n*\3127\000\001[!\212\331$v\002\216\0175H\005\rOST\204\004\023\316i\027\033\262y\3051\001|\3628\024\360\333F}j\220\206\273\214\372\322\214\2221LC\234\365\317S\322\230\310\330\000\235\324\200\033r\257\310y\241\035\210;\300\024\3065\244D\340\020G\265Df\211\363\346\023\264zR%\225/\247\261d\302) \365\025\225sl\263D\354\221:\240\357\324\325E\231M]\030wI%\234\005\312\263\234\340`Vc\007w7\016\247 |\243\322\267N\347=\254X\204:m\334B\3679\246K\250\223\004\202\010\303pF\343TK\035\247$6\366H\304`\267\314\307\034\212\265r\321\\\030cB~R\030\034P\t\215\324\000I<\317|qN\213z\261\353\234g\024\232\032+\335\'\236\361\230\310\003\277\326\255\301(c\216\214\007C\336\200eo\336\271y\010*I\340U\204\203to.\006\345\\\212d\214\273\271\017\2412\311\362\223\362\225\035MU\322\342\222\332\322K\210\201,\243 \017Jb\275\313\2663Et\r\320P\013\000\010\364=\352\021\032\275\314\236K\022q\363\014\366\240\035\213\016\346h\2666\010\007\371S\240w\204\253\014\200\017OZ\244e!\273\227\315y\320\261\363\033\237j\202\346\340\017\226P@\'\035:\212\246+\216\236(\336h\247V\310Q\202>\2251\266I\2036\346\000.\354\nh\226\311\213*B0\010\007\201V!\231\032d\217\206P\006NkDf\367+[[\230\344\220\356\371K\222\001\355R\335\017\225\273\226\\U\n\344wm\265\321B\360\024\020G\255i$\257\r\260\266|\264\245p\007ni\2416E\023\230\327\004\222\017\004\036\324\350\342\216\013if|\200\213\273\002\246O@KS\215\361\007\210.\265\021\366o\271\020n\303\223Y\326r*\356Vs\203\330\327\235Rwg\245N\026F\376\205\252\313m\224\316\370\333\034g\221]e\215\322\\\306\0366\311\037xT\246)\301\242\344m\214\0223R\361\236+T\314m\240\340\303\"\2341\236O\322\255\002G\021\234\032x9\257\234\346>\233\240\243\245*\036)\240\036y\024\320q\332\234\204=z\323\267d\340Q{\r!z\202(<\001\232c\024\203\307\2459:\322[\203\027\201N^i\334B\236\224\261\372\3201\010%\263N\031\357@\3548`\364\244_Q\322\231\"\216M\007 \361@\n\010n){P\301\217\265\225\242\233\314\353\306\000\253R\267\237o\367\300\'\2605\317Z\027W\002\325\233\331E\020PbB\000\334Xu\253\271\216T \005\301\350@\305y\354,V\232\302\006]\3173\003\236\213L[xPb58\367\244\264\013\021\314\241F8\031\250Xt\030\315TId~_5\024\310\253\310\'\334Rb \221\335c%GJ\212\031eYC\006=zQq\0320\337`\025\300\372Q\366\204g\033\306G\245]\356;\223\231\243U\314q\201\237\342\"\241\222R\344\2229\364\247\312\t\226-w,\037\275$\216\300v\246}\250\016\026\026?S\212\227\240Z\343\243}\347\347\371\005N\360n\031IT\017\347H\206\212\362\300\377\000\363\325y\3501H\360\0200O\343\212,\"\235\315\261a\234\340\212\211m\331\230\007m\376\364\222\350\002,2\306\302X7\207\3168=Eki\341\344\213\316\235J\234\340\022:\325F6\033z\004\362FOc\357U%\270*J\247\036\365\242fl\203\316b\345d#\360\241\244r0\010\037\2051\r\363\233\257S\357QyE\313.r[\322\202Y^\350\313\362\333\332\306F\007-I\025\231E\010\\\271<\261\305&\203bdR\253\214q@h\227\001\217^\325\005\246h[\260eX\361\300\355Z6\263\005\205\321X.9$v\247b\205H\320.T\226\317$\232\212[\273;PL\316r?\205E5\261,\316}jk\213\270\343\202\327\313\204\037\233wSZg\313q\363\000E\\\031\234\321E\355c\022p\010\372w\253Z}\231f\335\"\354A\317\271\255\014\354G\177(\373AU\033W\260\250\343\371\216\0058\356L\264\'\nB\324R\343\007wN\365\327\313dd\314;\313\224YY\021\201>\325\223}r\356\217\037\313\223\301\'\322\271\245\243\021\034VfF\013\363\020Gn\225~fhaH-\320aF\030\223\315c\324\321;\014G\224H\001\033\227\035\205X\267\226\350\201\213V\331\331\275i\032\306W-[<\2560\313\214z\320\254\214I\017\237QG(\331SR\271\231n\026\010@\003\031\3163\223Vm\326W\001\245*\016:\001J\300\212\372\244j\345wHUW\260\357IlcQ\362\014\003DU\206\365$\220\266\001P\010\250f\224\242\362N\356\330\02444B\214\371\334\375}\351\034\347\220F(E\025\211\334\375\316jX-\325\210\340\363\332\265\214n\310\2235m\241\2121\264 \315N8\350+\320\204\024Q\314\335\330\355\335\350\016+A\006\372\030\3200\335\307\025\317\370\256\037\364\270gV\000H\233\017\3274\300\267m\030\216\024N\016\320\006@\251\227 \361Y\263\246:\"x\234\214\n\324\261l*\222sN%\032QI\300\035\363V\243|\016\265\264X\307\226\310\305\030\342\264D\260\034S\267qM\210r\034\322H\304)U\352x\246\200\002\215\241=)&b\033\000q\212w$\027\236M!m\315\301\351M\261\203\310r:\223NR\337\336\374)\010Q\277<\363M\221W!\244\223\013\375\337Zh,9-\222e\335\270\242\236\300u\252\367\361\307\020\020\303\030Wa\201\216I\246&\211\r\255\275\272 Xs&9&\241\235\331\224\257\3461B%\243*\355!\222\"\254\231\031\340\343\275r\267\226\355mrY\317\310Mi\026a4P\271\271\377\000Jd\235T\240\350\007LS\326h U)\030$\364QZ\334\312\304\201\032FfbB\2360;S\311\371\223\236c\301\025@\221zg\016\002\2229\346\235k\271\257\344\035@\214dRcd\026\016\256\314\n\343i\312\232\234\230\336P\033\357\016E\004\255HD\230\271\222\026^\203#\336\226\026\221\331\323$\034p;\032i\t\255\n\232\261\332\226\312G.\347#\324\216\325z\002\366\356\321\217\224c+\307\000\325\020\235\206\305k\274m\\.\356\270\340U\033c/\366\202\264{\262N\306\372z\322\260\233-N^\033\305U9F\035q\336\247\226S\362\250\\\014d}j\226\204\267qd\217|\250#\030F\340\343\327\275C,\013qf\312\314|\330\311\333\217\322\252H\213\214\262\003\354\351\234\340\344\023\357Wb;\256#Px#i\036\324!=\211\2471\206\005\300\332\234\361\336\251h\250D\322\t\016K1l\217OJ\320\316\345\244\237w\230\371\3178\024\370\020\312\274\261\034\323\334\006\311\013\033\322\211 8\003\255i\000\031\327y\313\016\204\232\322(\206\365\032\266\352\363\263g\345\035}\005r\276#\3618\226\326k\r=\335\031X\253J;\363\332\271\253\317\225\033\320\246\344\356r\300\343\215\304\237SR\002\007\336\351\334\327\227)jzqZ\027-\245da\265\262\303\220Mk\351W\223E0\232\031J\260\373\330\346\232eMhv\026Wm\"\251\300\343\222{\032\260nW>\225\262\221\307\312/\234r\010\031\245{\227\335\265c\031\3674\371\3545\r\016Pa\260Gzq;x\3075\341\362\237BJ\240\204\364\315\"c\034\365\246\364\010\261\307\245\030\340S@ \310l\021\307\255I\2162)7q\241S=\351\343\035M5\261Oa\244b\2360)\245bC\212\005&1\315\323\232]\333W\246iu\030#\034S\206I\366\252\334C\227\003\240\244c\317\0240\016)\313\323\232\026\242\260R\201C\025\300\214\nB\241\260A\344R\226\250e\311!\006$bw\0023V\326\351\304\030\n\016\005y\223\215\230\312\245\346\223\347\313(\354zR\300\257)#\317va\327\006\261\265\330\2317\331%\'\346l\237\\\323\315\271\034\347\360\252\260\2540\305\327=j\254\360\260\347 \217\255+;\022\310\n\202\n\236\206\242\021\355\3119\300\252Be[\221\271\267\'\036\365\023K*\365v-\353R\264d\226~\325>\321\202O\242\326\236\231o4hn/\037\014\307\344\217?\316\265\346*%\331!\033y\224s\330u\250\247\210G\037\310\t4\236\243\330KFVm\262>1\372\325\260Pr\031q\365\251@2GL\344\005\317\255F\362\034c<U\022\310\\\226\347\025\037\001\261\306MTQ,\267h\336_`O\275Iu#0\345\260*\255q2\243\005#\212\202X\361\310\344\322\261,\242Q\325\331\360NMI\222\203\356\3474r\211\261\231\226Bc\2160\276\254\307\212O\264\244,Q\033{\343\222\007\002\252\304\266\211l\230:\225Q\363\023R\317\210\301\003\251\342\245\253\003\324\257\273b\363P\207\215_*\243q\357\232C,\301\'\224\340\217\274EL\263\020\333\202\200OZI\364.\344\360_\354R\246\014\372a\251/\347[\253]\211l\025\211\344\223\222)\r\352W\263\267*\215\237\274z\325\273v$\371|\2228\252WD\264\\\212\0220\362\234z\nu\365\302\010<\265\371\024}\354w\255Q\233V2\245`\355\236\364\260\270V\255\351\255NY\262\303\\\304\211\227l\n\305\325u@\360\262B\244\003\374Y\256\212\223I\021s.(\367\036O55\276\235l$\336\305\344$tc\\\022\235\313\214n]\"(\342\333\022c\330UT\266 \227\225\271\'8\364\247u`\266\245\253x\021\272\223\216\365\0247;\335\342\211\030\250\350\325\006\351X\262\024\256\025\2178\351M\026\310\355\362\200\237J\253\205\210\244\214+\345\007J\220\026\t\22685+q\225\244\344\365\316)\261\205A\221\311\251\276\243H\220\235\303\'\201PJ2x\353\332\252\345X\251 rN\366\025\010\302p)\'\2502Xaw\233\n8\357Z\326\361,k\352Oz\354\241\027\271\3179\017\350i\312\331\256\304gp\3174\023LA\236\364\326cA@\037\025G_Q.\234N\302\3066\014(\030\333I<\310\225\272\361V\001\347\245C:\026\304\220\214\266kN\325\260\240\016\324D\263F\016\307\030\342\254!9\366\255P\254X\033p\r$\216wc5\252`\320\356\000\245\0304\301\016\316\332o|\323D\264;8\353H>c\223LC_vv\216\364`*\200:\323\260\\\002\223\311\247\251\000\320\026\036@a\203A1\302A\330\245\275\r\003\033=\315\304\212\014Q \367\'\2452\334J\207\314`\014\215\374G\265\004\261f`\244\006l\346\241Y#\316\320\000\364\367\246+\020\336\311\306\034\205@:z\326N\251\004\027\026\214\262E\362\365\310\034\325\247b%\023\213\324,E\265\320\014\\\306FW#\212o\230\252\377\000:\355#\332\266[\034\257B[\371\324\302\251\037\312\211\363\026\251\"\210O\262D\311\300\004\265R&\344\267\036|a]N]\316\321\216\324\370\256\032\010\324\313\273\315\306\030\201\332\233\001\321/\225\267\262\271\302\266z\323m\213I(\336H\220\032C\035y\373\251\221\345\007s|\240\342\254Z\263\207up0>\351\365\246\204\321\025\372\207X\324\240 >s\351VVH\245\211\300 \260\034\200y\024\310\261\022;\371\r\024|9\373\255L\267s\366l\220<\310\316$\036\336\264\321\r\022+\211@ eA\246^\314b\2229v\34600}E0\266\204\3263\242\336m\332\0327\352\017c\352*v\205\"\2732\306\331V\344\212\321;\243&\265+\304\276U\324\221\257\314\222r\252}iRE\206-\315\313f\225\204\301\035\245\031\333\214\323\267\010b(\207\367\204~^\365h\316\332\205\204D\330\031\210\311\334\331\251c\270O\2268\201\311\352\336\225q\023\320\267\034k\366\205u\\\261\251.!\222K\264\332F\320\270\353\322\251\273#4\256\316_\307\232\265\355\214\353\246[\316\2426\2172\0202y\2565\\\201\214~U\342\342\352\373\307\265\205\247h\222\'$\037\312\246Z\346N\346\366%\2179\344r:\032\272\262\030\242WV\332\354?:\247!\250\334\332\360\366\243t\233\221\317\230\273x\315i-\364\204s!\r\351\216\225Q\221\214\243\250\202\372`v\211\\\037^\324\033\231v\234H\335=j\256\026\320\253\317\345O\\\223\317Z\363\033=\222Br\274\322\'S\305\r\205\207\037j9$d\321{\262\220\3409\247\002v\3621M\r\202\203N<\034P\027\320h\'v\r? \361I\010Q\3234!\317Q\212\0068\014\216h\036\224$ \003\007\002\237\232\253\330,\001\270\247u\024\257p\030FM=x\340\320\264\007\260\342p:R\202)\334\221\030\212i\342\201\222\333H\321\253&r\255\330\366\2536\312v\227\334vzW-Z}@u\254S\337JD\231\2164\037J\275ok\005\267\010s\236\347\251\256\'\271D\314\t\031\025\024\204\217\247z/dI\t`x\025\023\345\201\001I\366\245\315\2412Df\320g/\221\355L\222%*W\250<RL\203:kv\301\033\261\216\265M\"yf\010\207\255)1\027\304\036X\302\202H\357L2\230\246\363\031\276a\335\216i\271\002v-[\352\361I!\213\014d=\033\034U\263$\315(\022\272\214\366\351MJ\345\336\343\246*\243\201Q\031\241L\031p\252:\232\264E\304MGN\220\221\003\231\010\366\241\356A !\031=\005Z\0068[]LU\232`\200v\002\243\222k\013\"|\311\324\312\007>\277\225S\320\213\210\227\360\312\273\343\335\267\266E)\272\3369\311\254\371\212\020\313\273\356\361J$;Oz\244\302\300%L\034\234\036\364\326\000\216*\256C\211\021\216V$$Lq\337\240\246\233y\010m\301W\324z\323FRDA\036\000\345[\347#\000\016\3252\253\371J\030s\217ZM\227\010\350Vo5\211\0331\217Z\236\336\315\024y\256\245\234\364\317j\311=J\260LDC\356\375MM\n\211\020?@E;]\200\305\201\214\247\223\212\275o\016\310\327\256G\255i\030\n\344\250\253\232\225d\333\310\030\252\344\013\220<\204\022K\036j\245\333\215\270\353\223\311\246\221\224\344Qy\3329\323\237\227\2756\342\355c\345\006\374\372U\305\330\347\226\246-\326\245q;\026*\000\317\n)^8\246O0\273{\214\3644\252J\344\244Y\201\242\013\205\344\375j\342\354\306\024\326\017Sx\253\"h\342\310\310 \322\316\203\310l\216H\342\250V\324\256\035v\355\014=1N\214\371@\010S\007\271\305M\315\020\377\000\224`\263e\215\023J\002\341I\315Re$G\030f\316?Z\205^YX\202\273U}{\322\013\rb>\350\310\367\247G\345\202s\3114\255\251W \273\227\003\021\214\232\201<\326\345\230\021\355Wq\r\224qR\331\331n>a$\017J\322\2349\231\235IX\274\024\"\341@\002\2247j\364c\033#\235\261z\367\243v8\246+\013\232F4\302\340\033\265!84!\334\t\357M\221\220\241Y9S\324z\322-+\231\026\346K{\311\025s\344\356\350=+Q\010<\212\206\315\340\211c\343\223W`\224\001\232kB\313\366\347\3239\253BB\023\324\366\255P\256=eg\352\000\372T\210\240\017ST\206H\033\265=\017\006\264B\330H\263&Kp;S\212\200z\361TH1\310\247\022:\nb\016\212I\353M\355\223L\020d\342\243%\267d\032\226\003\200\223\206\337\217jx\\\362\244g\276h@\201\230/,F\005\002q\261\234\016G\255\000\312\022\311#\315\367K\006\364\355N\335\345.\343\036N*\321\235\3545\254\356\0377\023\014\261\373\253\236\202\246\332|\245\336\003\025\035)6\013S#U\2637\366\245\204Y\t\334u\025\307^\333\237\266\"J\300\3558$zV\360f\023\215\231Z\3628\313\204\363\177v9\342\254\331\316-\235\"PLDd\221\326\264FOCF\'G\272@\214\2546\344\017ziC,\262,\230\003\234S%3:\312gu\2141\336\201\260\027\322\256\310\200:O\034\233\n\234\220\306\225\212\2615\324\246h@\224.P\344\021Km\225\332\305\276S\332\204\004\"\341\022\372KK\245\302\261\371\\z\036\224\371-~\315p\036\335\231\230\214\344\367\036\225D\223#|\273\266\237\2456\336hg>j\241\216^\207\320\323D1J4\014\321\307\206G\344{\032]\321JcYF\326\007\0161\324S x\267\2129v\"|\377\000\302\336\306\246\331\345\2003\236\344\232\321\021\"8\324=\300\270\350\253Q\334(\233p\013\200O\024\354g\315vI\006\350\243\303\374\333G\024\313\225V\273\022\'\005\220\007\024\301\356[E\021X\310\006\t\010~QPh\220\266|\307\\\2468\315R\023\330\324\003k|\330\036\225W\\\277M\037H\226\363\031\220\360\200\3674\252\312\321\nP\274\217-\270\270\232\346w\271\235\331\345\220\345\211\376T\325\347\255|\365i\336G\271MYX\236>\277J\223\2475\021z\032X\261h\273\337\031\374*I\2134\313\267\240\352(\223\270\326\206\276\216Lj[\271\352*\376I>\346\265OC\031 \223\216(I2\017\\\212i\352B\320\227\030\342\235\200H\301\305q5c\327\260\034\347\003\232rt\307zV\270\367C\200\305\000\023\234\323J\3008\014\034\320\307\'4\220\330\252r=1J\001\246\305p\013\357\315.\00184\231H;`t\247-\t\210vs@\346\233\030\243$\322\221\306)n!\000\347\255?\240\242\326\001\271$\361N\004\036\275i\210P\334`\212Z\020\ny\346\221\261L@89\251\"\223a\3108\251\222\272\031z\327P\013!/\200\205{R\\]\274A\230E\270\236\2315\347T\205\230\331\025\260\324\256\027th\312\t\343\003\212\264\2663\006\315\324\305\217\367W\245ek\210\234l\217\242\3434\326#\251\034\232v\"\344\022\242\310\01022\373\212\247%\220W\004]\276\0078\305\026D\266Vk=\356\307{\223\236I=j\305\2041\253\025\t\226\356q\332\246\301\026>\375\274\250\266E\030%\277\213\322\251\331ZD\301\245\270o5\317\030\364\251h\222\033\270 \316\320\247\216\230\355S\350\302\024b\322\235\316xR\307\245RCF\205\323$Q\231%m\252;z\3279\252\335\\\336L\261C\023$]\001\255\033\021r\030\226\306\000v\207f\373\304\ne\246\265\035\272q\003I1=1\305Td&&\241\250\336\335I\261d1D\007\334^\377\000\215f\254X\220\261$\223\324\326\233\2316X\212I\243\007$\021\330\032\263gt\016\004\216\241\273\201Q(\330\270\263^\320\333\251\371\230\026\307\335\251\366\333?\335\035\372\003U\025\241B\213X0@\r\203\357J \201@\030\340\017Z9Ib3\214`\014\n\251<\256\315\205\001W\36546\t\t\024@\235\331\253\013\026GJ\204\256^\310>\3167\214\014\346\254\264Yp3\323\2658\303R\001\355\221\2711+{\021P\224r>`\024\326\256\235\204Kk\002\264\203<\201V\212\000\306\266\247\035\tl\2577\006\242/\3335\022v`\310\345<Vf\245{\004Na\r\270\217\274@\351\355B2\2221\356\256&\226]\301J\240\351Q\264\267\005\202\247\247_JNG3\334\245e\271/!y\t;\244\332kT[\354\222G\034)\352*Yh\257<D0t\310^\370\253\026\314Y\001\311c\322\262\2236\216\306\214V\254\023\316\311\000T\027\006Y\234fF\n:-Ri\241\330tQ\200x^}j\314j?\213\247sP\236\245$U\232H\330|\236\264\311Ih\360:\325Xw\022\005}\276\236\2715J\342\362\3466\362\306\3009\350;Qa\r\267\235\334mc\234w\305+\313!\220a\200\036\202\232\020\205\207B3M\213h$\006\252\265\302\344\242&q\350=j\344\003b\214W]\010\230\324`\314{\322\006\346\272nd\207\206\310\3154\232\241\261wq\357@=rh`\220\003\317ZV<f\221MXh$\322\025\317\006\242L\332\224.4\333\251\344\363H\271V\000\016+4\365:\2714,\247NjX\201\317\006\2643\261\245l[\201\372\325\330\260G8\255\"\004\201\277\204\nv\374\034\n\320\tP\361\223N\340\212\264\304\304.{S\203f\251\0228\014\375(\037{\332\204\000M! \nw\025\206\223\221H1\234\221\315\000\3116\344\340\223\217jl\222G\030\003\327\240\035\350\032\036\275:S\2260\020\026\034\032b\022I#\334#U\035;\nn\321\275X\234\000i\212\304\2226\343\216\346\241\225v\270\317*>\365\002+XJ\212\354\255\300bq\357Y>\"\321`\270s$\004@\344\374\314\006j\223\263&J\350\340\365\030\345\265\2730N\020\362@q\320\324\255 \212\327\t\202\344``\326\351\234\262Dzqv\236#\226\0047\314\303\202+R3 g\002B\307\256\017Z\263$\306G\020F\306\006\030\361\354i5\010\311M\222\000P\3644\213\334d,\361\331\030T\002\231\351\232u\215\322E:\3053\276\007 b\222\334\256\204\362-\273\\\265\302\277\230$\003#<\214SY\356\241!]\274\330\203e\033\270\317j\2436hZJ\202\027wb\245ry\351\212\3177H\272\226\310\\\025\003-\370\323&\327-F%w\363\023h\357\216\2250`\322\025\227\n\343\236*\223%\242U\266\226<I\235\374\344\n\226\3412\207<q\310\364\253RFn\r\213\014\033\354c\n\235[\221\236\265%\315\253\314\361\371J\331V\332p;S\347@\2512+\225D\224\306G;{\216j\2541\277\230\304\034\250\035\317Ji\334\316q\261aU\334\225\004\203\214\347\326\264\264\373q\260\026<\221\306;\032\322&N\342\0243\\\001\260m\215\266\223\353\\7\304\355DO\252Gc\031*\260(\'\216\246\271\361\222\345\201\323\205^\361\313gu=\000\257\234\223\273=\244H\256G\000T\211\271\233i\351\336\252/\2402\345\202\354I\034\201\214\360{\322D\205\245\363\013\000\271\315\022Z\226\2647-F\304\007\003&\247\313u\355Z\304\302Z\261A\311\344\222)T\365=\253D\214\354Y\007\'&\227\336\270[=\204\305\000\365\245\003\237\245\000\230\360iFM\003B\347\333\203E\005t\005\346\236x\252%\n)H\357\232\231+\214Lq\232\024\343\214P\226\202\027\236\324\251\326\224A\350HE0\226\316*\236\200(\301\347<\323\307J\001\202\361K\374X\3074\204\007\201\232\0074\330\016\355\212@)\330b\250\035\350lQa\\#m\256\033\031\031\253\320\237\264\375\007Q\\\265\340Q\241k9E\362\366\361I4\214\355\2000+\201\356&\200\272g\004~t\311^2\270\007\030\355L\233\025\244\221\020e\230\n\201\335]\260\231oz\014\332#\231\344\217\210\333kw8\315>\325\347\010w>Gr{\322\032\330|\266\363N\006\321\200\017$\322\255\222[\0171\337s\0369\030\241\275B\305k\253c(\312J#n\334UD\322\222\020\010\271g=\324\256\005Q\014K\245\036^\323\226\307\251\252\310J\266\005Kw`J%\225\210\357\216\336\225,p\306\3373\"\206\255cdL\210.m\245$\230\302\221\351\232|V.\274\310\2438\365\351U}L\330\331\254\334\003\205\310>\365\004\226\270\306\341\307\261\253%;\022G+\306\200d\2208\251\255\365\030\342?\275,H\350\005Jv4L\2705Da\215\312\274t\007\232Hu\010\334\200\314\000\253\270\356N\267\021K&\324n\324\365\205]\263\353U\312\206\231-\255\252\241$\273\034\376\225g\313$\214\016=i\306\235\202\367\036\210\240\017j\2325Ps\220\ri\010\244\365$&uQ\203\201T\344e\335\201\336\252\243C%\201\221\006I\000\232$\270Q\222\017\347II$CE7\2301\316A\315D\323F\030\206|`g\245b\332\006g\334\336\2113\344\203\201\334\326j\241\226B@\340\365\254\245=Iq$\021\007S\021\316{\021Dv\343\033\031y\357\357N&\022Ve\010\000ge\306<\266\342\264\320\031c(rKSr\034PC\020\3440\301\253\266\261\306\275TV-\033E\022\337\\\254q\004V\014{\212\317I\025\244\311=h\263E\262`\341FOJS e\343\237J\245\0213\021n\3369\331&S\214\234{T\363\335\202\240D8\357\236\265I\352er\276w.7\034\037SR\303i\346\220C\201\232lI\266]\206\3328S\004\203\352OJ\317\2268\345\177\335\345\010n\010\2413[hC8\332\336^\363\317z\236\326\334\025\022\001ZB7fRv-\360\007\003\024#`\221^\204cc\235\334W9\357L\007\232\260C\267s\355I\236i2\200\2679\240\234\323CB\0169\247\257\314q\232:\025k\222*\340S\300\310\256yjwR\215\220\335\247\234TR)\344\365\2507\266\204\266\371=Oj\261\017Z\336,\346\222\2634m\230\005\002\255\304I\0035\252$\231G\024\345\036\225\242\324Z\216 \346\2368\024\320\010\300\236\007N\365\'\033\200\025hC\211\3321H\3146\3602j\220\230p\027\030\344\322*\222\t?\205!\016U\001qF\024qLV\023?)\244\265\2144\376d\207\204\037(\367\241\014|\214\003\355\007\346\245\225\335\234+v\035\250\002\010\343f\234\260\307LsS\237\225\207\033\2056\010V!~v T\014\342@p\334g\037Z\244L\210R\324Ip\340\276\323\214\375*\232^\263\002\255\020\3348\335\330\212\033%\034\247\212me3H\215\t\020H\333\343`2\024\327>\253\317\226\310#e\356\005m\027\241\204\321y#\312\3427\371q\311\025\017\357\343\270.\244\340w\006\265F<\243\343\271\224\r\263)\222\"z\216\242\236.\376C\031fd\034\201\216i1\255\007\206S\031l\r\243\256j\005T{\227e|\367\r\350h\035\306\213\225\201\206\370\263\236\216+^\311\263i+\021\277\003\362\252\211\234\331\006\246\362.\232\345\024\235\303\030\003\245g\351\262B_\016\273d\351\223\336\233\022\330\322&M\240,\230SR\225r\200ulb\263\224\271Qp\2173\261\320h\366\255t\302-\303*\243<\327Oa\246Z<\n\215\020b8}\335Ms\373k\235\221\240\026^\036\267\203UI\203\023\0168C\316\rk\233x\242Vd@\016\t\340w\251\225f\016\225\214\315{G\267\276\2023$f91\200\31295\221\250xfh\026%\267\223\177\030 \216k\242\225c\222\245+\205\276\201t\"Um\231\335\3005\036\243m5\214#\315E\0318\312\364\025\327N\262n\307\034\351\270\221\332\215\234\362FwW\220x\212V\271\361\r\344\345\213\r\344s\333\006\271\263\007\356\233\341#vR\000u\024\364\351\315x\t\352z\244\310\000\031\251!\3018\317^\225\252i\001}0\226Y\037\353\016s\212[\004\033\360[<\344\214v\247-K\350j\306A\034\003\201S+q\212\264\354\214$\354\301A\337\220\307\247J~{U\305\212\305\254\036\324\344\007\275q[S\324\275\207\257\035\251~\\\361\3156\'\2507\335\340sK\320P8\216By\315 \0375&X\376(<\216)\336\342A\214\n>\360\366\240lp\004qH\333\201\030\000\217\255\033!\013\310\351O\'\035\251!\200\311\035iG=\251\245p\270*\200)T\373Qa\013\216\364n#\346\n\t\247`hQ\3157\024\230\222\0348\353N\036\264\320\330\022\005\'\004\320&!\316x\247\241`r\244\203S(\334\013\366S\202\207q\371\327\267\255[\216\342)\224\256\n\262\372\327\235V\r2\272\025n\237\344$\002}\205V\262\023\311x\233\243\225c\'\234\214\014V\016\367$\322\236+a\215\321\006\'\326\251\316\307\356\252\004\035\200\025M\020G\r\264\217&U\036F<\343\322\264\341\263\n\271\220\014\372zRH{\005\303\210\227l}{\232\246\221\265\324\204J\344\017j\213j\033\223\375\230*\354\214\222}Z\253O\002) \311\270\367\000p*\222d\264R{Igc\202\020\016\231\251\"\323c\007\367\214G\262\367\242+R^\302=\274I\362\304\270\025\013F\001\343$\212\326\306w\033\">\001\351MG)\303\022j\254@\031K\034\236\007\2451\330m%\210T\356M\027hv*\315,.@\214\223\216\370\252\216wLB\253\005\365\"\223\004X\264\266\231\362Ba{\261\342\246[\"\024\205,}kD\256K\225\213\020\333:\234\363\376\025e\244\222\030\177u\324t\357V\267\016be\272\234C\264\355\007\271\305(\275\224\221\363\020\007\247z\247P\244\305\222\376b6\240\013\223\326\253\\\335\334\031\000Iv\361\326\247\332\005\312\357}re\031m\304\234b\256\206\230Dpr\347\247\035*9\271\207r)^G\001]\311\035)\322\007h\n\003\201M\266\"\257\230\261\035\261}\357j\221\027l{\335\271\352H\250\346\035\2126\343\031\014{\325\230\243\004\022\270\025\226\303\266\204r\243D\301\361\306z\212\225\024N3\235\256\007\347W\026c(\334\255=\256\367\022\307\200\313\311\000u\247Y8i\001\332E6(\242\340D/\270\216\265;Z\203\003mb\257\216\264Gr\355c\n\351n\021\312\274\205\375\010\250a\235\262W\220{\223NDs\026\032@\2038-\354(\027@FQc*{sS\252\0375\312\357\010\220|\3039=\252a`z\246x\253DY\334y\2668\345T\325\210b\211\023s\021\030\002\204\315\024lR\270\224\312\354\207%T\374\247\326\242(1\223\221E\256\306\330\221@\031\271$\217z\264~T\3005\327F&5\030\305l\3644\200\363\212\3540\034\307\"\230\030\216*[\032B\223\305\000\232{\214\016q\326\225[<w\241\024\203\241\301\353SA\221\324pzTI\233SW$\000\202y\310\251\024\034V\027;\343\035\005#\"\243t8\244j\210\0032>\341\317\265Z\216@\\\001\306kX=\014j\307\251\243l\343\030\253\321\223\332\267\211\316\311\3278\247\253\0008\255\220\207\223\221B\214\232\253\t\217\366\241F\r4 9=h\356*\223\020\356\37143\035\270\035h`\022\035\253\264\034\266)\252\t\240B\267\034R!9\305\0005\231D\205\310,O\024\362\370\031\247q\330Ta\267 \361I\236h@G2y\247-\222\005-\264(\255\2779#\240\252!\217\270\013\004\022N_\031S\221\352j\206\235\022\311\033\266\315\333\2169\034\nV\023+$~lsZ\312\233\221X\251\366\256oQ\320b\206\346`\3631\215\206c~\343\332\252\016\314\211\253\243\0168\277r\3029\n\3108\343\275@\363\311\270)L/L\373\327Jg=\211\262D\001\262@=\016)\201\266\020w\001\357@4\ru!\205\221\010\351\311\253\226\330tN\002\202\006\354z\323D\264\037f1\210\233n\3452\340\217j\323\324\341k{i\226\327*Ly\307\265R\"Z\224\364\313\254#G>\342\214\240g\320\324\022B\321\334\020\2002\023\234\232Rb\202\326\305\270c\371p\200\000y\247Z\254\217\177\n*3e\272\016\365\317U\350u\321\217\274w\2325\212\304\200\004\001\301\303\267\177\245n\332!F\313d\036\225\347\251jz\252\032\027\300\313\356\355\214S\227\346\004b\251\263)Ds\016\000?AL1\374\334\366\241H\344\222\031\"\202j\226\263m\366\233\006\207\370\233\247\025\321Fv\221\313V:\034\273y\226\321\312\322\214\030\324\344\267\035+\305\356\245k\213\231d \002\32218\035y\256\214l\257\022p\260\263#\013\3158-x\234\247\241a\340es\232\263k\036\3429\3675Q\210\313w.\001X\301\351Vl\227\016\010^1\315h\212[\027T\221\320S\262\334c\223ZX\306q$\034\347\236E\031\3054\254N\245\365\330W(I\3674\000}k\220\365\244\223\0363\267\004\323\224T\365 2~\356(\246\330\303vN)F{\3246\315R\320S\236\307\024\361\324\032h\201[9\244\007\216*\254\003\201lP\t=hl\005\030\357Fy\246P\364<Q\234\036zR\025\200\265;\357\n\023\006!\3160)T\361\203N\340\230\242\224`u\246\001\326\201\2200Ni\222\003\221\322\224.*F\035(=z\325 \020\261\006\246\202R\243\357\032\312\244\024\220\\tW2\245\302I\0378=\017C[\262J\305\200e\307\025\303:|\243D3\315\031\310\340\343\275g\335\314\210\013s\364\254Y6\324\277\2409\226\027u\316;\237\351V.\344\333\220:\323B\221\2353n\350ri\221\006_\233\277\265+\020\204\270\274\216$\375\353\355\317S\351E\245\315\224\314\313\0012\221\311;N(Lb\312dV\336@U\317OZq\23601\264\377\000\2152mr\027\355\270`\236\325\034\211&\302@*;\032\255\314\344\254Vr\304\345\311$S\003+t\"\225\311HX\342\336\340\001\200z\232\251r\032y\214k\363\001\302\216\302\251\260\261f\322\320/-\264\267\322\254\245\242\200\016O\320\212\321+\222\3311\210g \321\260w8\025kC\")\247H\243;NX\361\300\351T\305\332\006\301\311>\2252\270&\206_^\377\000\243\021\030\3037@z\321k+-\212y\204du5\223\275\315bC\366\227\373K\223\376\254\343h\305C~d\230b1\311\036\265<\314\247\250i\t$l\357\274\266\3201\236\306\247\275\275\273\306#\223\000u\343\232i\330L\240\367\027~v\344\225\201_n*H\257\032PE\344\301y\340\372\323s\320\"\313P\\[<\302\030\030\023\374\352\375\302\355\267q\216\234Vw-\231\023\311\226b\215\264/z\325\210`!l\006*:w\252\334\256\205\204\215\\\020@ \366\250\036$\202A\216\377\000\245;\330\315\242E\010\313\220>oZl\3500\000\352)\337ByI-\3438\311\251e\270DB\243\226#\2458\225\320\306\221\311\344\251\310<\323LQK\363\020\013z\325_S\026(\267\310\0007>\264\341l\205\206\365\004z\323a\024\002\334\304;\034\036*t\'\024\222(\206I\000lc\212e\313\254\226\346#\320\367\025J#\271M\327n\010\344\323\3217\2145\\cvCv\025\2328\370\007\232\210\277=s]\260\\\250\301\260\r\305&\356y\253\271#\303\361\234S\003\036\3641\216\006\224\363Be%p\366\247(\305\027\324\265\021\370\357ON\325\0226\206\214\260\000\024\243\212\301\236\2046\027#mD\362\005\306{\323Cc%\\\374\302\242V(\373\210&\251=E5tj\332\272\215\244\032\321\201\3628\346\267\2138\332-G\234S\207Z\331\010\221q\336\234\0175i\210S\327\212Q\3175d\261\244\343\255\nKg\035\251\202W\025rM;\332\222\025\206r[\256i\303p95V\020\2376I\357B6GJC\030\337z\226M\333\177\235\0009H\021(\355\212r\343\353M\005\204.d\231a\217\251\031\'\260\247\030\331z\270\372\212d\225\356\020\\8\336IP0\005L\377\000\270\2631Dv\373\325_Bw3m\342\220JgT\334z\034\367\250\374O\004W\032K\311\024@\311\020\335\264\365\037J\235\230t9\013H#\272\340\017-\261\222\303\255d\336\220\267\017m3\341\221\273WTv9$\365\030\2673\265\261\212(\367\216\201\217Z\212V\021\303\265\225\213\366\247`.\330Zyh\036]\216\222\257\036\325\245u\0346\326\"E\004\250\000|\242\204\311h\257kr\262*\371\215\201\273\214\212\320\236Ex\0329\037!\227\001\201\316*\210\261\223\243\303*\026\r\363\304N\323\237_Z\226\3729-\345\310bW\031\031\250eGF*\333\026\2169\245\016\252\375\320\344\n\351\274;\013\265\33100\362\3250X\214\363\\\265\337\272wa\325\344u\232t\216I\214\220v\363\370\326\254L\016\t\352+\317\213\324\365\355dN\262nl\n\2262A\255\272\034\325\021&~`s\3055\333.qH\343\226\343H\244\333\363\006\356*\342\354\314e\033\234\177\305\033c\017\207\256\345\201%]\352A\33222k\303\010\302\214\261\'\337\265k\210\225\340:Q\260\002{\323\3018\365\257>\347B\035\031\306I\351Wt\360\033\221\215\265Qv\r\307\257\315r\\\037\226\257\333\374\274\364\315TP7fY\\\203\221O\310\007q\340U\363X\226\307n\035\271\245\004\325\'r\031\2442\006qJ\007\0315\314z#\300\031\311\024\244\364\305+\r!@\245\000c\221\315\027\035\204T\371\251pCb\223\210\324\207\0001\315\t\323\232,;_Q\375i\230 \325l$92M\004dsJ\343\260\276\364\034\032`\000\216\306\2349\340\322\013\213\212Z\020\220t\351M$\346\206\003\324\346\224\361@\000\317Z\006z\232.\t\001jPN8\240\030\203\'\255;\034f\232\023\033\324\344t\240\220:P\002\2064\351g\271T\0069YA\353\357X\325J\305\305\005\276\244\003\010\347M\271\376!S\253E:\227\014\0313\353\\\022\210\334Mk\033\333qh\220\241\333\267\203\307\025\r\325\302\314\344\242\220\240c\'\275A\022*\254\212\237x1\036\325[P\325$\2116A\002\231\017l\347mU\254AKK\260\233R\275\315\333\311\345\016]\227\327\322\267\2040\332\270\212\335\002 \035;\324u\020N\017\360\372u\244\202[\010 2J\373\245\3541\310>\325@\221\024n\246\355%u;A\351R\336\270\220\035\215\30694\\\231F\346<\352\322\260\212.\001\352j\323\265\225\242\355\000M1\354)\023a\3449@\304`\221\320RGj \210\2002O\336cZ\222\364&\2021\263!y\251\031B\217\234\326\221fR*\313:\347djY\277AUe\363\\\354c\271\217\247AZha+\211,~\\`\271\372{\325(\241i\345/\310_Z%\260E\013,j\274\343>\306\241\231\'\310X\224\222\177J\302[\033\305\010\321L\240\014\3565r8\177\321\207M\337\304k#DK\034]\200\244\222\3317o\333\363\021\334\323\2602\265\364\007\311*\243\227\340\326l\226\273\"\363\033\005\207\000PGRM:%\212\3469Y\376m\300s\351].\261\037\223i#\0022~\357\326\253K\026\221\317Y\351\361\\]D\215#;\023\226\\pk^D&\370*\343\031\332\242\221L\222B\360\276\003`\367\246\244BW\313\023\236\275hh\233\334<\251\026_\335\236*h\321\361\226\242(Cn.\005\272\0169=\361\322\2513\263\222\300\361\217\316\252\300A\367\333p\357R\254C\034\014\032w\324\207\033\222\307\003\021\270\216\007J\'\371\023\345\344\325\002V!]\316\t\311?Zl\204\240\0038&\252\332\010`L\256j\t\337\313S\200\t\247a\"(\344b\00089=i\306a\036\345\306[\034WM(\230\315\225\367\226\345\272\320\032\2673B\2519\310\243\034\346\251\016\303\224\3209=he\245q\303\246M9G\245Ke\245b@\005\030\244\331j#\307\275(\346\223.:2ta\266\236\234\212\301\243\272/B9\225\317\013N\021\341Fy\246\207\270:\361\322\241e\307\030\241\227m\t\355\262\024\017J\324\265\223\267c[\307c\216j\314\320\204\374\274T\200\016\365\321\026f;\267\024\345\346\254C\307\024\323TM\204\306G4m\350\007\0034\006\300N\017\0241`\274\034S\006$\\S\345\231\021O9\246\231#b\336\347-\300\247\220:/Zc#\301\335J\304\203\315 \0360\0074\320N\354t\036\224\223\030\261\"\241f\031\334\177Jk\357$\347\201VI$eV4\004\014\212e\324\240\215\243\232\023$K\235\306\324G\n\200\307\202}=\352\201\234I\036\316\222\247S\331\205\014\014mR\311,\331n-\324,r\236G\243W7{c\023\335\317,\244\357q\235\240\361]\024\345tr\324Ve]+&\006^>Rq\354)\326\361|\345\244\351\327\236\265\2533\270\344\016\3210\215\217\007r\347\246i\361\335N\320\230\234\205\335\325qP;\023\351\313nZA(\'\216\0068\245\225\022\021\210\330\221\236\224\256>Q\253,\256DpF\253\216z\342\226\371\304\352#\225\000`z\203R\331I\\\261\341\230\257\"\277[H\321\246\216F\345OD\035\353\320\264\3138\240\217\313\267\210\306\247\223\356k\202\274\256zxji\032qD7\002\000\007\030<sO\007\313lv\256X\2733\322\234n\211al\234\202=\352\307\271\256\225\251\3135\240\374\340\nx\030^h\261\301=\306\356\024n\004\342\213\023\320\251\253\333\255\346\2355\263\034\007B\271=\262+\347\337\030h\223x\177W\373\024\362\007\016\273\221\307F\025s\370\010\213\324\310\300\364\247&I\306q\\\021z\233\262M\271>\335\352\375\262\252\333?\007$|\243\246*\354\021\013e\311\0315\241\027\030\030\3158\204\221epOpir}\215j\221\033\216V\0102FE+6O\034S\270X\324\0039\036\234\323\200\3349\025\317s\322HQ\307\007\245)\353S\314$/n)GJ\236\243a\226\014\010\031\245#\236\265w\013\003\022i\310=\350*\326B\236(^\271\245q$.2y\244<\034P4-.8\240L\024`\364\245\004g\245U\204\205oA@\003\034\322\265\206/\000b\220sLC\223\212V<\320!\006M(\007\035i\"\256\000f\225\007cT ~(\0146T\334\030\206\232\0050-i\226\355upUG\312\203,{}*\345\355\260U\'h\003<W5Wvm\010\350a]\'\316x\350j\025%\030m$V\\\240\315\033{\330\203(f\332}\372U\321}c\214=\314k\370\326\\\206RBI\265\360!e*y\334*7\2021\223\214g\256;\324\263;X\267\245\337E\004\r\001P\270?/\2756YS\314\336\307$\324\244\200\314\271\226\366\352v\2167h\242\350q\351SE\0141\306\021\330\234w&\200\026k\245\003\010G\034{\323\240\273s\030\213\311\031\'\256z\n\233\352\r\016\221H_\227\202{\323\355\255\255\343\316\324\022\312G$\326\226&\305\330`X\220\031\2102\036\212;So\025DE\330\340\017\326\251\354CEXg\230\022\261\306\254=i\222\007\007|\255\324\321\027de$,V\362L\271\311\211\t\353\216M,\242;|\307\034y#\240\365\255\021\223ESk4\314d\271r=\207\362\251b\266bv\"\3421\337468D\212qo\023\0200\317\323\035pj\264\322\205\033\252e\261\246\305\025\232\352\342O&\336 \322z\216\325\267ci$p\010\345\306G_sP\225\306\231;\"\205\3328\002\2421\031\016\007\002\252\300T\273\330\317\265[!zb\252\312\210\347iA\201R\301jG<`\000U3\203\232~\257\177%\350A\345\025U\347\031\311&\240\264^\322->\314\353,\200\2116\347\025,q\024\237\315=K\346\232\006K\252[\221p3\320\212\214\005B\007z\266\211E\204\000.}j\013\273\205\201ri\244&\312\263K\347\302\330 \2009\366\252\366\250\312\201OJVw\002I6\"\203\267\214\366\245GV\345MU\256\010zO\316\334\323&`N{\323\0060\220\027wJ\256\363\2418*s\353V\366!h\017&\344\304u\003\225\335\206\"\264\204Y\224\331^\352e$\244k\205\035\307z\205Ij\352\216\206B\236\r\014\330\353M\215!\321\220FsFy\342\233z\025arq\305:3\305JcH\220c\275J\243\216*[6KAh\344R- \007\212Ulu\243\230-\2514\1772u\346\255\333\252\355\001\275*.uA\004\201K\235\243\024\005\310\245st\254\200\240\307\255#D\275q\237\2554\265\023dd\004<t\253\026r\343\250\007\322\266\2139\252\032\260I\373\260GqS);rkh\263\026>6$\364\342\246\0351Z\307RG\001A\034\325\200\230\347\212B=\351\330C@94\215\234\363@\230\341\2009\241]FI\031\305\002\035\275\235zm\366\246\226*\247oS\336\230\302\"\n\200\016O\2558c\006\201\021\234\3674\261\3769\242\300=\313*\345qQG#;r\331\024\356!\322\002\340`\343\035\352\035\201[$\323\001\036G\332Uyf\340R-\221\215\225\023\346$g\0351A%}F\321o-\036\337\356\310\016T\372\032\343\357\325a\274\331+\006\221F\326\003\326\264\244\3651\254\264)\010\326\030\030\250\302\203\223\353Dl&\\\001\264\366\006\272\0339P\342\246\337*\337u\251\262\303\031\2108\306\361\322\245\262\343\270A0\373\214\2447\351N-\324T\226@\361M+\027\200\354u\350A\305.\236\322K)Y\313\027S\327\326\242L\264\216\307\300\341\215\335\301\3300\212\010l\367\256\276\020q\316y\351^eW\357\036\266\031hN\215\202)\322\340\362psX\330\354\271\030\033W*p}jm\304\225\311\346\272)\234\365\211VbH\003<\014sR\026,1\222+{\0343Cr\027\214\340T1\314\315! \343\236*\3222%V \365\343\2715\342_\0275\010\357\274Hb\211\203,?!>\277\215MO\204\225\035NI\270\241x\031\257+\251\2714\r\234g\275h\267\313\030\311\311\366\364\255\223\320v$\265\004\260*\274\032\272\203\003\217\224\372U\300\2311\374\225\311\353OC\305krV\240\001\315.\361\3105<\326\031\262\030`g\255(\373\274V\007\240\330\340A\352)\240\356\316)44*\222i\330\342\220\305ZR\274\361E\201\354!\034\214\323\203\001\234\014\n\023\025\304\034\267N*E\000\n.\003q\336\216\243\2474\3200\311\247\n:\210V\351J\274 \025C@)GZ[\2008\340z\320\252H\353\212\020\205\305\'S@!\343\003\002\203\301\342\200a\202\005!\334\010 \320\010\017\'&\224(\305\000\004`b\221Q\335\3268\324\227s\205\002\223\321\016*\354\352t\3535\264\265\020\2563\325\317\251\246_[\211\027h\357\315r\267vv\332\310\307\277\26088\340\3655\223<\005\030\216hf\014\254\340\212\204\201\234\0201H\222Xe\226.#r\007\241\351Vm\357ef\021K\216z\032\227\r\010q,Er\242R\002+0\353\315K\366\224w\010:\3679\254\324L\354X\004\205\333\310\025\037\225\221\363\032\316\332\210A\014J\271*\243\360\251c1\260\304+\237S\212-\250\205p\304\355\'\025~\311!\266\261V y\207\223\317SLh}\222\013\231\311\177\341\344\232&\215nfd\003\367C\214\203Bw&H.\004V\321l\210\0058\374M$\026\260F\242[\202ds\310\035\2052\\t\t\213Hx\371j\264\202\010:\222\322\037\304\326\353c\006\206HI\345\217O\322\263\356\256Ce#l\017_Z\2062\254LI!\024\217z\222\033u\222EYd\310\'\260\251\265\300\324-\034\010\"@\250;\001\336\243i\273\n\261!b\3371\333\032\344w=\205>UT\207`l\377\000y\250\031\230\361\356\371\"\215\206}\005J-\312E\270\343\216\265\233W)\024\356$\211\244\331\274\017J\222\3224\r\215\300\232\231\"\313\326\327P\334\316Q%\\\201\316O\245X\220\242\020\314p\252F(J\302d\232\313\004\271\214\3439L\346\262\246rX\355\353\326\266\266\204\\\263\025\301\226\331N1\216\rT\272u\232\027T\344\343\004\372RBd\021\177\243\303)\343-\326\245\265\1772\000\333\201\347\024\320\014\272\216A\030\t\367s\223T\033\316\\\264ls\334\003M\241&Kj\345\3603\226\036\265i\331Q\t$R\212\035\364(]M#)\301\332\276\325^96\271\02278\3435\320\225\314[,K:,!c \261\347>\225JF,w\023\365\256\230\253#-\306\236\224.h\035\207\226\350i\214\334\362(c@\234d\323\302\223J\345\330\231W\"\225W\024\236\205\306$\350\271\034\212p\025&\211\tHX\322\275\207`S\3155\372\323\334\t-\330 \3005\241\006$\210a\276aR\321\2759\016+N\030QR\221\321qA\004\323d \n\325\020\331\237\177<pD\323H\330Q\323\353T|9\255\255\325\344\266\216\273\0109\214\347;\252\221\214\345c\251\261\220\206\301=}{V\212d\365\351Z\300\305\352<\036jD5\264X\232$\007\216h \372\326\202\002p=h\301#\232bLk\034\014\n`9<\320&\3070\344\n\215Fd\366\024\010~\342\017\362\2449a\214\342\222\030\274(\001E)5W\020\240\256\336\231>\364\210\333y\306M\014c$\235H9\\\036\302\225S\n1\336\222\006($\035\275\200\250\335p\231\344\232\242XF\002\276\363\327\267\265N\217\227\335\355\212d\242\tv\233\235\304\375\356k\217\361u\203\301\251\233\264\\,\275\375=\352\243\243\"\246\250\253\n3@\312\340|\311\217\255S\272\267[\211@C\206\215\177\206\272\026\247\032Defh\325d\007\031\340\216qO\362\\\005\001I\245b\211\022\005$\221\220\307\2504\341\002\356%\207\004u\241\224\231Y#\2266.\254I\036\235\305X\031\335\347\005\303c\221X\310\326;\235\237\202\211:P\226;%F\'\005\211\373\325\322\'\230G8\030\353\315yu>#\330\241\260\342\300\202;\323Kz\232\204\316\201T\347\35094\327\224\2318\255`\354cSR\305\243e2\335\272\232sL\037\356\223\212\353\247\251\305W@VM\244\343\'\336\242\215\216\376\201G\245kc\232\341\250B\327\026\216\213!\214\021\311\003$\212\362O\036\256\227\246oH4\206idc\276w\315gW\341\024w8T\224c\277\343R+nN\017Z\362[\324\351E\213T>b\221\311\364\253\362\357\312\250#\216\265q@\221n\325v\250\347\255X<.y\255\342\205-\207\257\037Jv\341\370V\202[\006K\014\216\202\220pFjX\226\346\340\\\016\271\367\245\311Q\212\347n\307sB\241\365\024\253\200O\275\017A\241\300qA\034s\305-\301\n\001\0247\0034\336\203\024{\323\202\214q\326\230\332\023\247j=qP\304\235\2059\305\003\221Oa\260\003\212p\253\022\001\301\351N\'\214P\002\020hP{\232[\000\247\245(<\014\360jo\250\322\024\365\306i\247\203\357T\'\240\243\336\227\270\315\010\t\017JF\030\246\003\010\365\240\032\030!OL\347\245m\370r\315p/YN\366\342<\216\236\365\225GdmJ:\233A0)\276VG\'\255s\330\352 \236\335X\021\216}k\033R\260\004\2366\234\362E3\031\304\304\273\201\321\216EU\021s\310\250\266\246@\313\266\233\310l\256sWq\r\220\020\t\307^\265\021\022\202$BW\332\244\236R{K\262\254<\326`{\034\361Z1N\262\215\310rG\255c-\310\345\2618;\323\016\337\225I\004\310\200\242\260\312\366\244\221,Uu\'s\034\237JF\223\313`\305\217\322\206\211E\273+\367H\031@\007q\353\350)$\272\225P\010v\214w\357BE\004*\323\276\342\331\177z\264\021\241_\235\211>\364Z\344I\225..\212)#\257aP\301\224\217\315\233\000\223\336\255;\031nT\274\237\314\214\200\010\317^j\010-\245\221\224`\000\177AS\270\232-\233u\205@m\252=sP\202\231\314|\212\321lCv\034\245T\031\033\346n\302\255F-\3261%\304\212\243\2563Hi\004\332\264l\311\025\264g\311\035p0M\rt\273Nb\030\3674\267,\211f\231\2331\205Pz\361Q\\\261a\211\030\343\251\"\206\254\0065\302\264\212\354\203\222\334}*{vb\201\t>\225\r\352WA\361@c\270\014\212N\356\016;V\244\331\222!\2738\004U\242.Z\324\344[\230#\225H\334\213\214\016\325\235\'\312\216q\316+K\221\324\253k)X\nd\363\311\315On2\033\336\242\372\225$\022F<\266-\320TpKl\2610\016\252:\363\305U\205\022G\276\207\311\036Y\334\307\203\212\316\t\262}\313\235\207\232m\211\253\017\223\222\034pG\245Fd\022|\254\017\265i\024Cb\\\264P\3329\233\356\221\300\3655\220ey\010f\343\322\267\212\261\233D\312\330\0314\006\311\343\245iq\245aZ\225z\342\213\005\265\025\201\000\214\320\006\344\301^E\017b\222\026\0245:\306r*\026\206\226\'P1\214Rc\025-\334\270\241\310q\324\322\223I\262\254/\030\246c\'\232R\004\'F\315\007\232qv(c\026\034\212\236\336\351\2429$`\216i\2665\243/\301*\310\273\201\315J9\025)\2357\320k\234\014\325+\353\301\036p\333X\014\342\265FRg\037\255j\023^\313\264\271\021\017\341\305f\257\231\014\2515\273\024\225\016U\207cJ\3474\235\331\350~\025\326\240\324\340\330\331\027h\000\221q\327\334WI\004\207\030&\264\213)\023)\315J\207\212\332,M\016\363\007\335\301\245$c\004\363V\231,Fm\240\034d\032y|\220\240}kDH\327`:t\250\303d\022\274\320$\005\266\307\236\364F\177:\006;\036\364\207\"\200\021\211\310\240\236p(B\024\216\307\212\034\240;Cd\212l,5B\223\310\006\245\221\301p\275\361LcA\333\226\352j5.G4\"X\306\005\230/rj\316\322\210[\320U&+\025\231\\|\371\371j\013\330\222\355Z)\000l\214S\275\211j\3475=\263\331\271\267%\211S\362\344v\252\021D\246\354\310\271Fn\010\355[FW9g\033\020\316nm\356\230l\335\036;\016\242\236g\004\r\250G\256i\2222\341\313\021\270\000G \212]\345\"\371\311(MM\312D/9\363\277t~^\340\324\354\304G\310\355\232\211li\r\316\263\3017\027sX?\231\205\211\033\013\357],,H\344\327\231Ss\327\303\354<0\3151\3300\340\326gP\335\314#`\037\346>\364\211\224Pd$\232\270\030\317BD\231Y\266\251\315;\317*\333B\203\357]\224\331\305SQ$\271\021\021\274g=\2528\256\014\2371\371Ej\331\316\220\232\246\2475\226\233$\366\266\206\356T\031\010\257\215\325\343\336>\361\036\251\177r\366\227VKl\254w(e \201\370\3276\"V\211qW9\022y\3109\251!\223\007\006\274\256mM\r\0358o\270F\003\220s\326\264^2$ \216Oj\351\212\320h\263\n\220\243\200*Db\016\017\"\264\213\2604=~f\372S\307\322\264\2716\021\\\016\324\204\344f\246\344\245\251\277\202\313\216\224rO=\253)+\235\367\024\234\320\246\224\266*\367\036\276\264\343\3278\242*\302\003\322\212\256\240\305 c=\350L\344\343\212Or\257\240\244\016\364\242\210\255I\024\340\016i\243\322\211\003\035\234v\342\220\236h\032B\214\320Oj\003q\324g<S\334V\014\03223\315\003\2700\003\221\326\224\014\365\244%\250\277JNsB`\320\340Nhjw\001X\014SN}*^\241r\316\225h\327\267A6\237)\016do\351]\204q\200\243\013\264\001\205\003\260\256z\216\354\353\244\264\003\327\024\240b\244\331\210\300zU{\210\203)\030\03044KWFM\356\236\255\222\007Z\313\272\262e<!\347\251\024\\\302Q\261M\355\245*q\031\300\357Q\030\\\034\3558\244C\032\321\361\320\376T\307\210\201\234f\204\"\003\021\344\021\305:=\361\220A\342\245\306\344\262\322^\252)W8\'\247\024\260O\010?{,\307\000c\255.[\0314\\\224\210\227su\250\240\2702\310\021\243\003\0039\024\254g\261$\323\234\204P\027\035qQ\t\356L\177,\204.z\221P\307r\305\245\325\3043y\250\3438\301\030\253\217ze8~\247\275\t\206\350Ba$n#waU\257\311r\006s\236\203\322\224\265\"\326\022\322\320?\315#c\034\340T\267\262\030\243\021Z\256$n\255\350)\255\021,\241\344\3131\nNGrh\224*\260\211;u\305_C7\253&Ky\033\000`\014rM:K \355\231\033*\007\030\244\212\260\010\243\217\205\030\252\367\022n\272X\324\375}\205P&J\322\355\033W\212\255rO\226\334\365\375)\014\211\"\312\002Ni\266\301\205\350\000d\0361R\325\306\231\254\221\005a\216\242\240/1\220\306>\356z\n\022\260\2212G\262\337cd\034\3565J\376d\217\367y\371\210\315ia=\312+<`\343p\317\275Y\323.\026i\212+a\272c\326\204\205rK\311\302\315,\nG\030\316j\204\211\270\347\037(\247\324\231\010J\306\271\350(\216\3448\nq\365\252\345\013\216c\362\341\230(>\247\025By\3326\333\023\203\214\215\302\267\202!\224\337{\266\351\035\230\373\323\320V\226\025\211\007\335\311\247\250\350i\241\330y\0314\252\207\322\206\312Q\270\361\036G\255H#\312\340\324\336\345\250\217\216<t\024\2529\340\322e\244HF\026\233\236jKz\006;\323\207+@\t\3168\240\003\326\223\022\n@s\332\202\206\025\3154\216\324\330\302\t\244\267\224\354 \251\352\r[]R\337\030r\350~\231\025)\330\3212\rCW\212\r\256\261\231Q\2758 \326\026\261{-\344\243h(\230\355\324\326\253c9\276\206\\Q\357c\337\336\247\216\327\215\333[\236\364\272\031E\\\261jd\265\235&\267\371dF\316Gz\357\364\013\365\277\264\023\206\\\236\030g\241\247M\232X\324\035:\324\212kt\311hqa\322\234\243=kH\222\3214Ez\366\240\220\315\300\255Q$n\007zF\037/\000\n\2426\023\240\346\204]\243\232L\004f\3074\214J\214\232E\rVbriG\r\232d\261\373\2014\222\004\013\235\274\372\320>\202G\221\311\035i:1n\364\304\000\234f\227#\024&!\210@\227y<t\251\235\267\361\332\250\n\327\356V\000?\332\037\215$K\203\270\216i\022\3127B\332{\211Rv\302\206\352{~5\201y\034p\352&\031\266\313\023\017\225\327\266j\340\365\"\244n\212\262\006\206\343\312g,\277\302\325\004\262\276\374I\030Y\007~\314+s\232\303]\222N\030\036\225\024\314q\263u+\026\220\324\211\316\002\201\370\324\305\034d\003\221\217\326\263\221p\334\353\274\013\345\177e|\322\026`\3751\323\332\2721(\000q^eM\317V\213\262&\\\021\232\212l!\300=k#\246\345c\362|\304\223R\2747q\005i3\207\351\317J\326\010\306l#\2149!\230\252\367\305\\\267\263\211\016D\205\317P3]09fV\277\211\225\302H\273\206r\r\0214\021\250\363\006\305\035\305l\265f\rY\031\276-\270\376\310\323WQ\265\2657\220\365b\215\310\036\277J\361\317\020_\334j\332\223^\317)a\310\214\020>Q\351\\\270\255\207\rL\251\020\344\221\322\243\031\006\274\276\246\255X\271\247^\233I\304\202%\220w\004\342\257\301\253%\305\333\031\027\311\334x&\267\214\306\213\317\177h\253\267\355\010[\364\250\216\241\006\303\262e\017\333=3[9\"%\250\341\252Z}\335\354\034\016F\332zj\220\030\360\013\222z\035\265\n\255\212K@:\214\010\204\266\343\317\030\035h\376\320\200.\n:\237\341\3322\r\\j\"mc\256\007\214S\211\007\212W;R\023h\335\232\024\215\370\305K\220\354J\330\002\200\300\216)\\i\010\001\353K\202j\206\320\2434\016\270\244\202\332\016l\001\315&)\246M\200\323\270\333J\327\030n\366\315\005C`\232l{\t\235\275(\014\017AMl$.\t\350i\303\002\224@RI^)\203\203\203C\020\341\317Z^E\000\220\243\246\177:\017\2656\000\273GSN\004\021Hv\014\322\240f`\252\273\235\216\024z\232OD\t]\235v\217d,m\226!\313\375\351\017\251\253\214}+\231\263\272\021\262\032\213\216{\232R9\251)\201\306*)FN=i\334\020\327\210\0361P=\262\226\344f\2212\211^{5=\024`\366\252s\332$k\300\366\2521\224L\353\264\\\023\301\"\250J2MK2\"(;\016)\214\264\\D{\0019#\221L\332\301\273\323\025\204ef\301$\234\036\346\244I\244\210|\204\003\356(FN7\036\327l\252\314\000,z\325\t\347\236\351\300\220\205\211y\010(qL\236B\315\245\353D\341\037;=z\325\351.\343\363\020F\341\317`\rC\210=\tL\337\275\371GN\276\325*\334\244Dy\207.\347\n\rCB{\023\'\311\'.\241\200\311\311\245\212X\256\2271:\310\t\344\251\310\250wD\270\350=\300U\302\014\037j\216\013rK1\035\005]\356\214lM\032\225\310<T->\3516 \317\27546\310/d\362\211\211y\230\216=\252\240\036J|\234\310\335\315V\304\211\207\t\271\372\325k\331\033\354\354\003c\275RW\025\312K\251\312-\322\020\230\333\324\377\000z\232u\031\226?1B\243\037\310S\344%L\336\322\357\036\352\3229\030\000\330\347\025\'\021K\275\233\000\234\363R\342l\230\353\233\310R\331\247i\000A\320\372\3275w\177\366\233\226\222<\025\034\002{\325(\221&Ci\'\332#fo\274\255\327\326\226b@\314lU\307qM\"[%\202v\2226\r&$\307\014k>mJ\361\227\313\014\002\203\327\034\232\265\001\\I//%\213\313w\033}\2074\300\363\271\300c\307\245]\222\004\207\262\311!.\354Y\272d\232\261\022a\000\307\030\253N\305$\001N\356\005J\250q\214SM\007)\"Fq\307\343O\021\366\251\271\\\244\2011\320S\225=\251\2664\207\005\307n)G\007\232\202\320\365\244#\rJ\345!I\3154\003\2734!\330\t\346\205l\032W\324,;\275)\367\246\t\010q\212\005\005XCLa\351N\372\017\224\205\224\356\344\324n\265\231D2\302\262\0148\312\372T?d\013&Fv\212\322\372\t\3016\'\331\342\003!pA\355JW\034R\270\371lF\321\374\334T\332]\314\266\027bX\230\204<:\216\206\205\243\023Gm\245^\305w\002M\023\356\0149\031\344{\032\274\217\317Z\350\213\"H\220c\256i\3172\001\301\006\266L\315\222D\371OJq\223\034b\264\213!\240V\0143A`*\323\025\206\263\356l\321\220\027\255 \023=\3053vN\t\241\000\2129\'=i\3540\001\3150HE\365\244/\317\335\374\350\001\331;s\324\323v\260N~\371\240M\211!\333\300\301\246\022M\004\210\020\263\252\203\216j\301\300lU\010\212H\367\272\206\306\320sKp\301 /\325\273P&s\227.\314I\227\244\207\2468\372V}\325\241\263\036`Vx\233\250\364\253\213I\231\312\366+\202\243\345\030e\354j\013\240\315\327<t\255\256`\265++\225\341\224\355\'\007\332\222B\013t\034t4\256X\2113Fv\262\374\275\215:9\316\354\003\327\255L\202&\216\231\254\335Y\355\211v\2649\347\214\021\357]%\255\346\320gff\351\301<\032\340\253\rnw\321\251\320\325\203R\023@\035xl}\337J\026|\314\030\3623\363W,\221\332\236\203\344s\220W\246j\326\251|V\326 @,\006\321\216\365\254\035\214\344\312\326\267\243`&<\267q\232\265#\303>\326V\362\345\035\263\217\302\272a+\034\323\324\255q3o\000\266p1\311\242\031U\233c\340\253q\203\336\264L\311\234\266\275\253\313\242\334\313gn\342KV\377\000\226Lr\007\322\274\362\362 \352e\2160\257\222H\025\313]\363\027\030\330\242\313\306;\325v\007~\334W\237%fh\3066G4\212H\355IKR\032\027~x\300\307\245\033\376a\236i\363j\t\017Y0\371=\352\3023!\033z\347<\320\331Q4\354\243\363\307\335Q\307\335&\254\213@\334\010\276\3578SW\031\017s\256\035)\300\016\375*\336\347V\300\0174\361\267\202\302\251!\334\030\002y8\245\013\216\225-\r\310wA\232\001\306MRbn\340\241\210\315/^E\001}\007\001\232G_JI\r1\024\nvp:Ul-\306\023\273\2404\361\202\001\241j\206\301\2714\203\035\271\240H\223\034Sz\320\302\3407g\203A\024\005\265\025jL|\264 la\342\226\213\010Lz\322\257\024\000\346\030\031\255\357\ni\305\242:\214\243\226\342\034\366\3655\023vF\324cvo\225#\251\315 \\\327=\216\304)\373\324\204Rh,F\336\324*\372\322\345\001\330\246\260\025V\320.E\"\034g\025B\3526=:\032H\312fE\344,\017\335\2522\304\340goZ\244\216v@\312A\306)\230\317\024\272\223a\254\2708\243e6\211\223\032\313QH\234\347\024[BS\"e\"\232\251\337\030\2411\261\nq\223@R\247=\r6\256KW\035\023\310\212\301X\200\335i\214e8m\344\2201\315%\022\032\271Rx.$,\004\322\035\334\340\261\305Z\320d\270\260\220\344\376\355\272\2504J\n\302f\265\316\272\221\334*Gf^0>c\273\0075\253g{oqi\033FUKu\004\362\re\313a8\214\236ef\362\221\224\236\3704\310\024\"\274\304\340\016\264$d\342S\206\"d{\207\311w\351\354)\353\032n\311\0370\375+K\022\321\035\311\004\001\332\263\256\210\016P\2161\336\252(\211-\014y\306\030*\367\353\355Q\335\000XG\330\n\264\264!\"\366\211\251\033?\3358%\007\335\300\251n\365)nf+*\205\210\3601\351P\342l\266)\337)A\030PJ\344\236\264\313x\210;\224\020\r\\P\271nI\n\225s\201\201\237JY\200f\371})\330\256B\234\213\226\332hH\262\274\n\264CC\343\203p\342\254\332[|\347\251\035s\212MjZE\217\262\256\336Pg5/\2226\001\201N\303H\214\305\203\322\236\261\360=il>R@\277(\310\305(^iHv\034W\245*\216)\r\001\024\230\346\213\214R)\000\371\251\014q\307jj\367\247\260\354\"\216M)\036\324\254\014U \212\r0LL\034\321\214T\226\036\364\214y\305\r\214k.i\216\274t\244\010\213h\306;PW\216\0054\312\"\021\366\246l>\204\342\223\001vw\003\232a\217#\240\346\252\342H[9\246\260\237\315\200}W\263W[\243\352\021_\300$A\265\307\336C\332\264\214\254L\221|9=\315=\033i\343\025\264Y\221b7\310\346\202\342\265\213!\202\347\004\003\327\232Nwb\266D\n>\360>\224\204\036N(\001J\3459\374\251\211\036I`0\007\255 b\364\351@rr\017jC\035\033c<\014S\031\262v\214\323\270\230\360\352\212\001\355M/\273\236\224\323\023\030rO\035)\307\201LV\026,n-\355F\362d\242\342\031<\252\231vlm\025\t\224\315\0362Fzf\2016A\251\331\377\000\240\262\0223\270\037Nk\222\326\205\335\205\332\354\231\3668\312\347\221\364\253\211\023\330\202\306t{\217.O\2247OcW5\0006\0001\322\267G5\212\004\253E\363\034{UT\345\366\356\301\317\245\003L\262\346D\030(3\374\351\2107u\\g\270\351I\242\323\020\206F\335\214\217C\336\245[\233\206*Vy\000^\200\236\005e(\\\270J\314\351\364\235F\t!\022)\031\307\316\2350}\253N\336h\345\177\220\234W\034\3514wB\252h|\267[&\362\216\017\257=)\223\310]\200f\316\336\202\245Sc\225D\t4p\217\336\022\007\\\324-w\346\307\366\250\210!}O\351]P\244\3329eU&H\232\255\221El\3103\324\021\320\326f\267q\014\210e\264\274\2223\217\231s\212\322p\345\211\224jsKC\217\275\222I\245\335q\363?\367\252\233\202\033\345\2572\263w;b\264+]\333\356\033\320s\337\336\250\3558=\253\226Q{\203\"d8\246\224>\325\233*\332\014\331\305(Q\216\224&JB\001\216\265$rv&\252\367C\265\213v\362\260\332S\206\007 \327I\244\315\025\334L\333\261\"\2342\377\000Z\252{\202\334\350H\007\241\247(\364\351]\r\\\351\037\264\003\232R\0014\320 \306z\364\245\030\306E-\301\213\326\224\364\245`\024\003\2674\235\005R@*c\275;#\245\000\034\036h\"\233\032\330i8\340P\231\350*A\017\332(\3078\024\332\006\036\324\231\301\251`\207\nN\364\356\rXQ\234\323\271\30511\275M;\265\014i\211\214\221O\300\374iX:\227tM=\365+\337$\251\362\023\231[\333\322\273h\343P\212\210\241QF\025GaXM\335\235\224\325\220\327\034\342\232\0075)\232\\F\342\243z\231\r\r@Y\276\225#\014S\2101\244R\005\311\245bEu\004b\240\232 W\2474\304\325\312W6\244\236\234b\250\317d\254z\032\243\236Q(\315d\313\234q\365\252\322\332\262\215\370\357C \204\305\363g\024\216\236\324\023$FV\232\313\333\024\020\210\245\217\216)\2412zR\266\243\027\313\300\351Mt\334q\351\336\257bD)\201\3050\'\007\212\tLM\274t\246\0255.\343H<\276\370\244(9\343\255;\003\037o\2722J\022\247\246A\251\256nf\226\325-\213\020\250y\367\242\310\226\204K\273\210\343\013\034\204\025\030\344g\212\200\334\\\371\205\214\205\211\352\017J\0223q\031<\223\310\301\213\221\216\230\355U\330I\346\022K\026=I\357T\221\234\220\315\205\234;\nc\300\314~n9\253!D\226+r\240w\253\002\000\303\014\007\275A\264P\366\215Xa\206i\032<.\000\3052\222\033\345\361M\362\2079\353E\306\306\010\tc\300\251>\316\t\001\272\n\253\350G(\363\010\317L}*h\343\3328\357J\345$8\216\324\021E\3047\031\243n)\024<\364\002\220\016x\242\342\034\303\212\024|\203\212aa\214\r*\257sP\2204+\016)\253\326\233C\034x\246\343\2756;\2069\243\004P\206\206\364\177j\220c\0257\030\235)\244\346\201\206i\033\035\351\r\013\217\224\032B\231\025C\031\345\344\232<\262;Tl1\2462\334\250\245\362\370\365\246\230\332\017\263\341I\307ZE\266\310\007\000\036\364\301\003[\356\310\316?\n\251\233\253\033\2576\031\n\221\316\007zW\324M\035^\217~\232\214\006E\0029\027\207C\353\355W\263\212\351\213\320\306J\304\321\021\3274\254W<V\261v!\241\321\261\364\247DA&\266\213!\242R\253M \360\000\342\254DR\265\"\253\036w~\025-\212\302\221\265iT\r\271\307\024\206\'^\224\326\310\240Li>\264\326\'\200\275\350\275\201\017\316\007\024.OZ\244\301\216<.\007Z\024mB\347\031\252\275\211\261Z\\M)P\243h\0371\251!A\274\003\332\235\311\266\2435\tU\2411\343\222\300\326&\253\n\\\330\312\216yU%~\264DRG+\nnp\303\004\216\325s\314\332\276[\236=q]6\320\345l\212E\007\220y\025\021L\035\335E\026\r\211\311>F\343\222\000\374EB\222\005\204yD\021\236\364\212\271$2\t\016\327\034{v\241!e\223\033\301Zi\t\262\324\010\252\301q\267w\335\"\245\036te\274\266*\315\303sW\310\231\227\264q-B\362\243#\226%\207\353R\233\331^e\230\0340<\216\324{$7]\226o.\243\231c!\210#\202\265\217\346\273\3362`\010\324\3623W\030\330\211J\352\345\243!U\310\034\177*\310\270\2722\\0\310+\320\032\347\304\275,m\205Z\334\2574j\343#\326\252\025\344\226\025\346I#\323\271\031\035\010\031\025V\362\006o\231\000\r\351\353X\311\013vR\220\020q\212c\014\327,\2674\265\320\315\244\234qB\250\r\3175-\t\rq\317\025\031R\016h\270\231-\274\2308\'\030\351Zv3\0301,G\0079>\365\244]\230\342w\200\014{\323\323\201\221]\'K\324@\335\251W\256)14=:\232U\352h@\220\240\220I4\247\212M\2140Xpp)H\004S\020\233piG\034b\204;\nq\212\003qL\020\222\014\340\201N^(\2601[\250\245\316)\202\020\362:Rt\245a\354;\255\030\305\t\010QH\336\224\010\024S\263\267\035\350\001T\363J\026I\035c\211KH\347j\217zOb\342\256\316\363A\322\323M\262\020n\335+|\3237\251\253\262(\034\016+\234\353O\241\036\316*29\305+\0264\324N2p)0Hz&\321H\324\326\302\020\002x\024\374m\024\003\020\016sH\300\023\300\243p\030\321\202\246\241hT\257Jh\226\256U\222\327{\344\023P\317i\216\027\007=iu!\300\2455\242\201\3670j\244\326\304)\332\243\036\224\321\214\242U{w\\\374\274z\016\265\033DA\301\034\375(\"\302\010N:SDDrF*\211\032\311L\362\373\201A#\n\034\021\212A\0368\240@\361\323<\261\237j@5\223\002\231\267\332\230\016\010{\321\264QbD\333\353I\260\023\322\215\201\201@9\305\002<\323L\227\021\246\001\2201@\213\025D\244< \3549\245)\216\265,\241\245iJ\323C\260\205{R\030\371\251{\211\017H\260}ivg\360\246\2001\310\024\374`S\020\325\373\335(a\232\036\250\004\332)q\315!\2063J\027\034\323\266\200&\t<\n^\000\246\2045\250QH\264.8\3057m\026\023\025\307\024\323\367i\r\002\365\2454\256\033\r4-\003\024\321\306(CHh\245\300\"\202\207\2058\306)\333=E+\215+\212\022\227g8\305\027*\302\210\211\354x\2450\216\r\"\207$`\365\240\305\223\322\252\342Hw\2248\342\231sf\222\307\206\007\352:\212[\216\306C%\315\234\376t\014P\203\323\261\372\326\366\223\254\333\335\'\227pD\023\347\271\341\253H;\031I\\\324\264\232\336E\331\034\361\264\203\235\241\271\251A\311\255\2232hpn\324\345`\rm\026CC\203\220\375x5(\220\221\212\3212\010\230\002\303\232r\216:Sb\033\215\315\2068\0243\347\205\037(\2441\027\332\223\352i\246&G/\\S\260A\244$7$\267Jtg\r\315;\330A\274d\261\250\331\336N: \241j\014r\200\2103\317\255#I\363\3608\305U\354I^e\335\3175Z\3625\021\253\340`\234\021M2Y\316]\351\321\333\\\357\2100F\350\017cQ\310\236\275+\246.\350\347\232\324\254s\216:\212K\177\231\200\037x\236\0056\310\261jD\033w\201\317\361-0\303\007\231\271W\236\270\247`lg\222<\302T\220)\373\\\251\312\364\350j\354C\221%\264\205\224+\216}j\304\3670\001\267\r\274\034`\nw&\302,\255\032\344\261`y\000\366\247\254\200\220\370\005q\317\265Rfr\036\355\301`\007\265Ao\223p\316\303\007\370\252\211\rR\344[\330H\343\214\214\003\\\274S\272\313\270\236+\312\306\324\263=,$}\323F\336M\343<b\222T\347\326\271\023\272;,W\021\220\304`\205\035\251\257\032\347\201\223Y\262\322V(^\333\344\003\032\374\331\346\252\020W\357\016GZ\347\222\263\035\3545\210\035\006M5\275\307Z\316Lv\023\024\327\0315\017p\266\203\030m\353Wl\344\002>N\010\351\357W}\t\216\347\242\221\3158q\322\273:\2356\016\275EH:R\260\233\260\212\2479\014A\247\341\266\374\307\237_ZI4\013Q\330\033Fh\0304\220\330\253\307\322\2001\315X!\303\236i\020n$\320=\304#\024\3560s\326\200\334\024qC(=EPXRp1H\271\357@\322\016y\245\034\232\004\305\351H\016i=\002\303\243\301$\023\322\223\275+\212\303\200\342\220\203\232aa\303\000d\361]G\201\264\342\321\215RT\303\266V\036:\016\346\242n\332\032\323GY\200\023\256}\352\273\014\267J\310\321=F\262\324l\264\215S!\220\342\232\213\221\221H\265\260\356\324\326\351@\220\250;\232v2i\211\210F))\241\010sM4\201\r#\002\233\345df\201\221I\010c\351Ue\265S\324d\366\240\306H\256\366\270\311\356j6\264\3320\017\'\332\231\034\244oe\316E1\254\206\010)\232\010p 688T\374i\217g\306y\006\2323h\256\326\235\316i\215jA\313dS%\2429b\333\306*&C\351J\302#e\006\220/^(\004!S\264\323B\032\000FSJ\213\221B\023\002\243\024\241x\252HI\213\267\002\223o\031\246\311\000\274\346\224\216)\025d3o8\245 \202=)\354\t\202\001\222H\240.M+\021a\3528\241@\252\001\204e\351\307\024\202\340\000\3054\340\232I\215\241\010\240\017\23346\tXS\311\245\355B\034\204\306)q\232l\224&):0\305M\313@G4\244f\230\306\221A\000\322\020\230\355F\3327&\314\n\363\232@9\315\026.:\212S<\322\0049\244\321\240\357)\206\033\2504\361\037@\005&\026$\021\234\324\202#\327\034PR\034\"\343\232p\213\216\224\212\036\261\323\226.\243\035i\240\025a\307jS\027\024\000$y<\212z\306=((\202\356\301g\215\2008$t=\353\233\276\260`\345G8\352=(3\222(\300\323\331\335\255\325\273\005\221\017\030\357\355]\227\207\365\2105D(TAt\243-\031?{\334V\221fV4\307\007\236\r-tE\231\311\016\316ph/\375\323W\314K\210\322\374\322\211\t<\232\244\311\260\370\362\307\223\201G\260\357T!X\224^1\232i\311\031\240CUIl\366\245s\3334\300h4\303\222N)\t\217\350\2704\204\200\230\035i\241Xk\022\304\000x\025\024\222\r\376Z\366\352i\210|\177>s\220\005E,>lM\026\007\007+\357M2Z0\365\'1\220%\310\\\343\036\206\263\245\221Y\216:V\320fS\211X\343;\220\216\274\212|ew\356\343w\257\245j\214\334IQ\3348n\030\036\242\243\235\223\315VF\340\037\230c\245RfrV\'@\241s\273 \364\247\306\252\333\260y\003\245U\310\345+C#+\272\260\343\261\246\312\331;\266\222GoZL\244Lf.\203\215\276\242\237\006C\356\335\307\367i\246L\243\251#\273\026\302\342\246\013\265r\3347z\326\372\031\311\030~)\231Lq@\304\260\316\343\307J\303^\247\035\005x\230\331^G\255\206\217\272]\323[\007\313\376\367+Z!\031\330\017\316\262\246\256\215Zi\211$-\2161\232\255$ey8\351\3159D\244\256C4|p>S\332\263\356b\341\230\217\251\254f\200\250\352q\220zSX\036\t\256Y-F\201ps\355M\'\346\245\320\261\2162\324g\003\025Q\324\314\365,\373f\201\307j\353n\314\352\036\270\241\272\361E\356&;\356\342\234Nq\355M\261\245aT\220r9\245\310=*G`^G\275*r9\353Cd\261z\032Q\372SCZ\t\3014\036\264\336\210I\330U\\\234\346\224\320\236\205\\Ld\320M\r\217p\\\365\245\346\213\211\200\240\347<\nB\035\306=\r\"t\241j4-8\362\2759\252\004]\3204\323\252\352k\003\177\250\217\346\230\373zW\243[B\211\032\355P\252\243\n\240p\005a\'vk\360\304y\000\212\215\224b\204\211\213!\177QP\311\305K: @T\263d\324\212\002\256\005J5\223\032\313\351M\003\232l\221\370\244<P\002g4\270\246\230\014sM\024\256\002w\245\355J\342\023\024\327@G4\304F\261n\344\216;R\371 s\327\360\246+\r\362A9\244x\001\352?\032\th\210\333\373TR[\006\030\305\0048\225\344\264_\356\217\245E$\030^F\001\244\231\233\211NkbX\225Z\2575\266?\302\2512\032\261RXHl\343\203L)\203\322\204@\214\234SJ\034P\330\021\221\223O\013\201B\006&\337j_,\221TCB\025\306)J\347\351@\230\233h#\212\001\014\301\335\322\202)\210\000\364\247*\340R\270\372\n@\333M\3503E\3045y4\342\243\024\306\220\270\300\250\366\374\3244\205\324V\342\205\305\"\204#\346\315;\370sE\304!\247\020@\376t\000\325\007\251\030\244 n\351@\003\n\005\010\240a\3055x\244\300\\d\346\200\247<\322\001\373(\t\221L\244\207\"{S\326.\247\024\212\034#8\306)\361\307\323#\245&RD\302!\351O\021g\214R\035\207\244?+\014c#\212#\214\217|P4=#\371~\3569\3159S\'\245\003\260\276_=8\2451\347\232\030\301R\234#\347\245\010c\266d\364\252Z\215\222K\363\001\206\365\024\356&\256\216{T\323\266\035\301F\007\"\262\0362\035dBU\320\360\312pV\264[\031X\334\322|J\361~\343TWt\037vd\034\201\357],2\244\321,\260\272\311\033te9\255\"\314\332\036\016G\024\234\346\254\206\r@\342\255H\206\207\203\330\232~\341\216*\256+\rs\222\0014\034c\212{\222!\223b\324h\305\3118\305\003\027#8\247 \357N\344\20375\013\035\307\203\305;\200\311\\\252\220\235i\226\321\345}I94\321\014\235\201X\362\007N\264\203%7\003\315\013q\\\305\326\301\271\201\306\300\2542x\256Z\027`\016\326=z\232\336\006sd\346A\301|\002}(eYW\247J\3213;\221\2051I\2752\001\030\"\254\\\014(\220\020W\034\325\031\356\302\036_\203\306)\2444w\036b1\025I\212H\226\'b\014drzR\244\212\300\344a\226\251\262V\341$e\260\310FGoZ\222\026\371q\203\232h\2312X\2204\240\266x\251/&\021@\362\311\215\252\t4\346\354\210\202\273\261\311_]\311yrd\223\205\350\243\260\025\024k\227\310\351^\005ysH\366\250\253+\022\250m\331\007\030\351ZvS\026\214\006\0370\375h\244\3655\222.\005\334\274\232\257$`\203\307J\335\231\266W\231K`\212\2534d\377\000\016Es\324E\255Q\237q\tVf\n\000\364\252\305{W-D$\306\250;y\030\246\200A9\035{\324-\213\003\327\006\232\303\024&-\217CK\356q\267i\035\363\326\235\375\242\200\251X\231\275rq]\262F\267\260\365\276\210}\365\306z`\346\244\376\320\204\246\302\214\255\353\353BVA\315qR\3562p\314x\366\247\213\230\030\035\217\365\310\305\026\016a\351,l\027c\203\236\265 \222\020\301|\325\'\247Z\022)\261\303n\376\031s\365\247\260\000\216y\372\321\312J\023 \375i\335W\002\250b{b\200\017\341I\253\241&\013\311\342\224\236jb\212\000)\244g\201\3059+\216\343\360\000\245\247\320@0)\t\'\2450\000\016y\024\252>lQ`\270\342\010\241Ab\261\3047J\344*\257\271\250\223\261p\325\236\207\341}&=6\307\354\371\r1\371\246q\374G\322\265\310\307\025\222\n\217[\r\3051\3054(\262\t\006\005A%&\216\230\010\253\315\014\005M\254h\330\303@\034P\027\024\360=\2511\334\321a\\a\342\214\361@\r#\275!<b\201\200^9\241A\305\026\020S\030\345\260(b\260\341\300\244&\204\300\024S\210\311\305\000\304\3051\324\034b\2316\030\321\214\016*\031\"\310#\326\220\232 x\007\240\252\263\333\214qB3\224nT\222\324c\030\315V{|f\213\2318\220I\017\315\214qQ:\001\354*\254gk\021*d\346\224\246E\t\010]\264\0059\252\020ym\334qG\224})!0\362\215\006>)\202\320\211\223\r\305\005h\033\020.)\300qL\221\254\244\364\241\320\354\315HY\211\022\034t\241\323\006\233\032\320VC\212h\030\244-\204+\2321\3057\260\\h\3158\203\216) \r\274\323\217N\371\246!\241ORh \3204\204 \221J\251E\307a\333\017z<\242T\343\255-\3065\021\201\001\272\324\302>i!\244=c\310\351\212Q\020\306\000\244\313\034\261\237J\225\"\036\224\321V\036\221d\340\214S\204X<\nM\226J\261\032r\307\363f\220X~\312Q\0374\025a\3339\366\247\"\014P\000S\332\227g\024\201\010\020\346\234\026\204\302\302\204\3055\220g\212ab\235\365\232I\033|\246\271\255[Mh\362\350\002\377\000Z\244\314\344\214\207F\003\014>\242\245\323/\2564\231w\301\227\215\217\315\021<\032\264\354d\321\324\351:\345\226\241\205\031\202b?\325\277\370\326\221$\034\032\3252X\003GZ\244KA\307\343K\234\n\266@\231\311\315+\267\034\nI\205\2060\310\000\232S\200\270\035*\256+\r#\212V\345G4\320\254F2\030\372R\214c\"\250\221\216\270\247\305\221\264\203\201B`\321+7\006\241f\021\305\273\240\252\271\0262\365\"\246\' \341\212\236\177\n\344m\320\356\301\'\320V\264\331\234\313\014\010\354:Tq\035\274\251 \236\365\252frZ\026\020\007\004zri\216w\241\034\342\252\346{\016\207\356\234\323\224n>\270\252DHRJ>\354\034\232l\212X\006S\316s\326\200\261<\177(\317R)\322\240w\016\t\317\240\255\"e\"\330l&q\201X~(\276\330\253l\244\262\277^\334V8\231\362\304\323\014\257#\rz{t\251\321x\341\216Ex\r\335\334\366\343\242\0347)\004\362*\314\022\025\332W\271\247Nz\224\326\206\245\273\007@\301\263\355Nq\217\230\232\354N\346-\025\246\311}\330\316\0060*\031\341n\253\300=Fj$\256\013b\244\361\347 \257j\316\270\266\331\226\\\343\3235\3158\266\005m\247\241\'\2554\203\234s\\\3554h\230\314w4\205z\362NzRH\031\333?\035z\322\036G\025\350\315\002c\323\2201Rf\227B\222\010\334d\237Jy\223<\200F{PKz\216\215\203pFq\315H\204\003\310\372R\260\371\205\332\273\267c\223OEQ\310\316~\265V\022w\0343\217\274s\353\232v\347\n>s\237\\\321k\024;\316\220\343\017\214Pf\224\000\003\321q\212&\223\373\304{\322\254\356\253\330\232\002\342\265\314\202?\227\001\217\351K\366\311\017\337A\364\002\220s\001\275$\377\000\251\353\350i\302\355B\374\352\300\366\024\0070\013\2658\312\025\374i\337l\204\017\233\345#\327\275!\334\177\332\340\007\005\216{`R\371\361n\341\261\365\246\027\036g\205\227>b\361\327\236\225\325x\023H\016\337\332\263\240!\270\204\023\371\232\212\206\264\373\235\244k\264S\261\353Q\023);\261\247\255G!\002\202\242V\233\353Q\355\251z\235Q\330)\255R\313C1E\005!\033\245 =\250\020\204z\3227\034Qa\241\254(Q\232\001\201\024\275\251\222F\335p:\322\242b\220\305 Rm\311\246\220\013\201K\3052X\206\232\026\220 a\305FW\232Aa\nf\242x\201=)\211\242\031 \003\240\000Uim\270\315$C\211Nks\351Ue\265\371zd\023\316i\243\tD\214\333\355\340-\013nO\2654K\210\357\262\206\347\346\310\245\216\323<\221\315;\223\312M\366Q\264dR\375\234zQq\362\221\264\003\267\025\024\220q\220?\n\023%\242\026\200\344qLx\016\352aa\236Q\310\247\371M\351J\341`\362y\307zs\300\336[0\364\340c\255&\307bD\266\300\340v\250\232\037\233\2450\260\311#\030\364\366\250\232:\001\241\233x\243g\031\242\344\330iZv\334\nb\260\200|\334\323\212\361\232aa\021I4\363\031\245q\244\006\"9\306i\351\036[\245+\216\304\276O\255 \213\031\342\225\312HO/=\005I\024Y\034\365\244\212\266\204\253\0258EC\004\207\030\261\357ND\343\024\026\220\365\214g\221R\010\373\342\246\345\330z\307\306i|\276\370\247`C\266\214g\024\273(\035\207*\215\275)B\016\324\003\024\257\024\201h\0016\322\355\305+\000b\223o4\312b\025\031\252\227\226\253$ep\010\367\247\261\014\347\365M%\231KE\303\177:\303\270\266t\347\223\203\312\221\322\203)D\255<J{t\375+KI\327nl\177us\276\342\023\300\347\225\255\024\214\354tv:\225\235\343m\266\227/\237\270\334\032\267\273\007\004r+D\311\260\254\331\245\007\216j\323&\301\232\030\323L@y\024\204\342\235\304\306\347\232\034\216)\334V\021\370\\\346\220\372t\252\270\254E!-\225\006\244\210\2206\261\355\326\232b\260\3370\001\202\304\201\320\323e\223+\202)\\V3u\005/\003\241\343x*1\\\366<\254\253\200\n\034V\324\331\234\320\262`\306\n\221\223P\355\'\236\236\265\265\214\031$K\200\300\037\2740MD\201\303`\223\264\016\236\264\320\254Y\2162\007\'\250\245\200\343\220y\351Z\231\2649\316x\034\261\340\n\216&\333\303\016G\034\325\t\223\253t\251\355\325y9\344\325#\t\205\313\252B]\237b\257\361W){7\332\256ZS\223\223\3275\305\214\222\265\216\274,:\214U\300\342\246A\305x\247\250\266\024.N:\324\200g\356\266\010\241+\032\026m\245h\337{\000\0061\307z\322B\216\200\203\220EuS}\014\346\254F\303\346\316\322\0004\331\343\007$w\256\204b\231]\341\033s\232\251sn7\027+\362\034\002+\031\242\326\246e\325\277\225 *I\031\344\036\325\tQ\214\344\346\270\247\021\304\214\201\320\323\033\035\353;\224\321\3317\336\315(\332\006:\327}\365\020\365\000\n\030n\030&\234\264F\210r\216*M\274\014u\251\350ORH\227\277\255?\000\375i\247a4(\'\030\002\202pB\216\364\356JW\034\231\000\344\346\214\323\271B\214\3209\245b\223\016h\344\232j7\023v\002H8\006\205b\277ZV\001U\315.\377\000\342\357@\354\005\363\3334\273\224\216P\037\255\026\000R\244\343n1N\033\017Q\212\000\322\360\326\223\375\263\251\245\272\222\266\351\363N\336\203\260\374k\325l\242\2168\324G\032\242(\302\000:\n\302n\354\337h\226\007&\235B9\3065E(\342\207\261\244\n\314\2714\204v\251:\223\032\302\231\214\232f\210\017\2654\324\224\206\0321H\0307\024\322s@\220\322\t4\361\200)\330c[\232i rh$D\344\347\2659\250C\017\2558t\242\3407\370\250#\232,&!\242\230\254\004qM4\254\003ON)\270\240\020\326\031\035*7L\251\342\246\342dO\016q\221PKm\222\000\003\025D8\2146\330\346\217\263\367\"\231\034\243\215\260\310\342\224@3\322\200\260\255\010\340\221Lh\300\347\024\t\2423\016Nj7\213\256\005\004\270\22148\305F\320rN\005\"\\Am\371\344\nQ\017=)\330\\\242\010\000=\006i\336N01@$=\242 qQ\030\271\316)\r\241\222\301\22028\250\036\017j\005b\'\204p\000\351I,\\\001\212h\233\021\010I4\363\t\002\200\260\213\021\'\245?\311\355\212\241\016\216\014\003\301\366\247\371=\252YI\022y?/J\026\021\274dt\242\345$L\"\030\316)\026<\322\271v\017\'>\324\010v\322\023D\252\234c\024\242/\312\230\354+G\307J\026>i\026\221&\321\306\0074\340\247\221R;\016Q\212\\U\\\005\013I\214qC)\n\0058\016)!\264\006\223\024\305`#\024u\024 hJP\0050c\010\346\232\313\353A$\022\305\236\325\233\250i\351(\007`\334;\372\320\204\321\317j6\215\034\230\331\327\270\025\2354@\016\224\321\224\221\003&\342\017 \216\204\036j\365\276\265\251\333*)+2\253d\207\352G\246j\256JF\365\246\275\246L\2433\210\037\272\311\306+Md\r\202\010 \214\203\236\265\255\311hpoZ\\\323D4.N)\037\2200*\204\320\214\007\030\246\323$V\345pi\244\372\323\270Z\342dR\022)\334-a\205@\372R\020\r12\255\312|\343\322\271=P\224\275\222 \247\035s\353Z\3231\236\302B\255\362\342\245\270\300L\250\3175\320\235\216e\250\333w\310\303|\271\343\351N\211Hm\247\346#\365\253\211/B\301e\3162EF\307\004\2208\252&\303ca\366\204\315Nb\036g\231\264b\251\022\320\2507\034m\306:T\256\245FA\252!\306\346F\275t\373\005\263\r\312NI\315e\"\364P1^F*w\221\351P\215\242K\032\023\222\0061\353OLn5\302\367;\"\264\0206\030\376T\370\306\007NhcZ\217\371\203g\275Z\262\234\206\021\261\036\325\2457\251\0234A\016\243\2757ns\232\3551\"`\001\340\032\216T\316==\rL\221KB\255\344Hcm\303\201\310\307\\\326e\334\001\033r\214\002?Z\302\244t\032EM\236\331\250\332<\002z\346\270\334t5L"
chromium-84.0.4147.105/media/gpu/vaapi/fuzzers/jpeg_decoder/seed/pixel-1280x720.textproto-87-    image_size: 121358
##############################################
chromium-84.0.4147.105/media/audio/mac/coreaudio_dispatch_override.cc-94-  Dl_info info;
chromium-84.0.4147.105/media/audio/mac/coreaudio_dispatch_override.cc:95:  if (!dladdr(reinterpret_cast<const void*>(address), &info))
chromium-84.0.4147.105/media/audio/mac/coreaudio_dispatch_override.cc-96-    return false;
##############################################
chromium-84.0.4147.105/media/audio/mac/coreaudio_dispatch_override.cc-175-  Dl_info info = {};
chromium-84.0.4147.105/media/audio/mac/coreaudio_dispatch_override.cc:176:  if (!dladdr(symbol, &info)) {
chromium-84.0.4147.105/media/audio/mac/coreaudio_dispatch_override.cc-177-    LOG(ERROR) << "Unable to find Mach header for CoreAudio library.";
##############################################
chromium-84.0.4147.105/media/midi/midi_manager_alsa.cc-1234-    while (!snd_seq_query_next_port(in_client_.get(), port_info)) {
chromium-84.0.4147.105/media/midi/midi_manager_alsa.cc:1235:      const snd_seq_addr_t* addr = snd_seq_port_info_get_addr(port_info);
chromium-84.0.4147.105/media/midi/midi_manager_alsa.cc-1236-      ProcessPortStartEvent(*addr);
##############################################
chromium-84.0.4147.105/courgette/run_stress_test-82-        courgette -dis "${file1}" "${dis}"
chromium-84.0.4147.105/courgette/run_stress_test:83:        courgette -asm "${dis}" "${asm}"
chromium-84.0.4147.105/courgette/run_stress_test-84-        cmp -s "${file1}" "${asm}"
##############################################
chromium-84.0.4147.105/courgette/courgette_tool.cc-41-const char kUsageDis[] = "-dis <exec_file_in> <assembly_file_out>";
chromium-84.0.4147.105/courgette/courgette_tool.cc:42:const char kUsageAsm[] = "-asm <assembly_file_in> <exec_file_out>";
chromium-84.0.4147.105/courgette/courgette_tool.cc-43-const char kUsageDisadj[] = "-disadj <old_in> <new_in> <new_assembly_file_out>";
##############################################
chromium-84.0.4147.105/courgette/courgette_tool.cc-414-  bool cmd_dis = command_line.HasSwitch("dis");
chromium-84.0.4147.105/courgette/courgette_tool.cc:415:  bool cmd_asm = command_line.HasSwitch("asm");
chromium-84.0.4147.105/courgette/courgette_tool.cc-416-  bool cmd_disadj = command_line.HasSwitch("disadj");
##############################################
chromium-84.0.4147.105/courgette/courgette_tool.cc-437-
chromium-84.0.4147.105/courgette/courgette_tool.cc:438:  if (cmd_sup + cmd_dis + cmd_asm + cmd_disadj + cmd_make_patch +
chromium-84.0.4147.105/courgette/courgette_tool.cc-439-          cmd_apply_patch + cmd_make_bsdiff_patch + cmd_apply_bsdiff_patch +
##############################################
chromium-84.0.4147.105/courgette/memory_monitor.cc-69-    if (sum > 200*1024*1024) {
chromium-84.0.4147.105/courgette/memory_monitor.cc:70:      // __asm int 3;
chromium-84.0.4147.105/courgette/memory_monitor.cc-71-      m_bw_ = sum;
##############################################
chromium-84.0.4147.105/components/exo/wayland/clients/client_base.cc-998-        reinterpret_cast<PFN_vkCreateDmaBufImageINTEL>(
chromium-84.0.4147.105/components/exo/wayland/clients/client_base.cc:999:            vkGetDeviceProcAddr(vk_device_->get(), "vkCreateDmaBufImageINTEL"));
chromium-84.0.4147.105/components/exo/wayland/clients/client_base.cc-1000-    if (!create_dma_buf_image_intel) {
##############################################
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-37-function makeKeyValueRegExp(key) {
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js:38:  return new RegExp(`\\b${key}=([^&]*)`);
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-39-}
##############################################
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-44-  const keyValueRegExp = makeKeyValueRegExp(key);
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js:45:  const keyValue = `${key}=${value}`;
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-46-  if (keyValueRegExp.test(window.location.hash)) {
##############################################
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-196-    input.setAttribute('type', 'checkbox');
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js:197:    input.setAttribute('id', `checkbox-${scope}`);
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-198-    input.checked = getUrlHashParam(scope) !== 'n';
##############################################
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-200-      setUrlHashParam(scope, input.checked ? 'y' : 'n');
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js:201:      const cls = `hide-${scope}`;
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-202-      const scrollAfterInsert = needsScrollDown();
##############################################
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-214-    const label = document.createElement('label');
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js:215:    label.setAttribute('for', `checkbox-${scope}`);
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-216-    label.innerText = scope;
##############################################
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-230-      attributes: {'class': 'marker', 'contenteditable': 'true'},
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js:231:      children: [{type: 'text', value: `#${markerCounter} `}]
chromium-84.0.4147.105/components/autofill/core/browser/autofill_and_password_manager_internals/autofill_and_password_manager_internals.js-232-    });
##############################################
chromium-84.0.4147.105/components/policy/resources/policy_templates.json-5781-
chromium-84.0.4147.105/components/policy/resources/policy_templates.json:5782:          The value must be an array of stringified JSON dictionaries. Each dictionary must have the form <ph name="AUTO_SELECT_CERTIFICATE_FOR_URLS_EXAMPLE">{ "pattern": "$URL_PATTERN", "filter" : $FILTER }</ph>, where <ph name="URL_PATTERN_PLACEHOLDER">$URL_PATTERN</ph> is a content setting pattern. <ph name="FILTER_PLACEHOLDER">$FILTER</ph> restricts from which client certificates the browser will automatically select. Independent of the filter, only certificates will be selected that match the server's certificate request. For example, if <ph name="FILTER_PLACEHOLDER">$FILTER</ph> has the form <ph name="AUTO_SELECT_CERTIFICATE_FOR_URLS_FILTER_EXAMPLE">{ "ISSUER": { "CN": "$ISSUER_CN" } }</ph>, additionally only client certificates are selected that are issued by a certificate with the CommonName <ph name="ISSUER_CN_PLACEHOLDER">$ISSUER_CN</ph>. If <ph name="FILTER_PLACEHOLDER">$FILTER</ph> contains an <ph name="ISSUER_STRING_VALUE">"ISSUER"</ph> and a <ph name="SUBJECT_STRING_VALUE">"SUBJECT"</ph> section, a client certificate must satisfy both conditions to be selected. If <ph name="FILTER_PLACEHOLDER">$FILTER</ph> specifies an organization ("O"), a certificate must have at least one organization which matches the specified value to be selected. If <ph name="FILTER_PLACEHOLDER">$FILTER</ph> specifies an organization unit ("OU"), a certificate must have at least one organization unit which matches the specified value to be selected. If <ph name="FILTER_PLACEHOLDER">$FILTER</ph> is the empty dictionary <ph name="EMPTY_DICTIONARY">{}</ph>, the selection of client certificates is not additionally restricted.
chromium-84.0.4147.105/components/policy/resources/policy_templates.json-5783-
##############################################
chromium-84.0.4147.105/components/policy/resources/policy_templates.json-5824-
chromium-84.0.4147.105/components/policy/resources/policy_templates.json:5825:      The value must be an array of stringified JSON dictionaries. Each dictionary must have the form <ph name="DEVICE_LOGIN_SCREEN_AUTO_SELECT_CERTIFICATE_FOR_URLS_EXAMPLE">'{ "pattern": "$URL_PATTERN", "filter" : $FILTER }'</ph>, where <ph name="URL_PATTERN_PLACEHOLDER">$URL_PATTERN</ph> is a content setting pattern. <ph name="FILTER_PLACEHOLDER">$FILTER</ph> restricts from which client certificates the browser will automatically select. Independent of the filter, only certificates will be selected that match the server's certificate request. If <ph name="FILTER_PLACEHOLDER">$FILTER</ph> has the form <ph name="JSON_DICTIONARY_EXAMPLE">'{ "ISSUER": { "CN": "$ISSUER_CN" } }'</ph>, additionally only client certificates are selected that are issued by a certificate with the CommonName <ph name="ISSUER_CN_PLACEHOLDER">$ISSUER_CN</ph>. If <ph name="FILTER_PLACEHOLDER">$FILTER</ph> is the empty dictionary {}, the selection of client certificates is not additionally restricted.
chromium-84.0.4147.105/components/policy/resources/policy_templates.json-5826-
##############################################
chromium-84.0.4147.105/components/policy/resources/policy_templates.json-14182-                  'type': 'boolean',
chromium-84.0.4147.105/components/policy/resources/policy_templates.json:14183:                  'description': 'Boolean flag indicating whether IPP Everywhere should be used to set up the printer. This flag is supported on <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> version 76 and higher.'
chromium-84.0.4147.105/components/policy/resources/policy_templates.json-14184-                }
##############################################
chromium-84.0.4147.105/components/policy/resources/webui/policy_base.js-291-            (policy.value && policy.value.toString().length > 256) ?
chromium-84.0.4147.105/components/policy/resources/webui/policy_base.js:292:            `${policy.value.toString().substr(0, 256)}\u2026` :
chromium-84.0.4147.105/components/policy/resources/webui/policy_base.js-293-            policy.value;
##############################################
chromium-84.0.4147.105/components/policy/resources/webui/policy_base.js-539-          name: value.forSigninScreen ?
chromium-84.0.4147.105/components/policy/resources/webui/policy_base.js:540:              `${value.name} [${loadTimeData.getString('signinProfile')}]` :
chromium-84.0.4147.105/components/policy/resources/webui/policy_base.js-541-              value.name,
##############################################
chromium-84.0.4147.105/components/policy/resources/webui/policy_base.js-553-    createOrUpdatePolicyTable(dataModel) {
chromium-84.0.4147.105/components/policy/resources/webui/policy_base.js:554:      const id = `${dataModel.name}-${dataModel.id}`;
chromium-84.0.4147.105/components/policy/resources/webui/policy_base.js-555-      if (!this.policyTables[id]) {
##############################################
chromium-84.0.4147.105/components/ukm/debug/ukm_internals.js-81-    const lo = (num[1] >>> 0).toString(16).padStart(8, '0');
chromium-84.0.4147.105/components/ukm/debug/ukm_internals.js:82:    return `0x${hi}${lo}`;
chromium-84.0.4147.105/components/ukm/debug/ukm_internals.js-83-  }
##############################################
chromium-84.0.4147.105/components/viz/service/compositor_frame_fuzzer/fuzzer_software_output_surface_provider.cc-53-    gfx::PNGCodec::Encode(
chromium-84.0.4147.105/components/viz/service/compositor_frame_fuzzer/fuzzer_software_output_surface_provider.cc:54:        static_cast<const unsigned char*>(input_pixmap.addr()), color_format,
chromium-84.0.4147.105/components/viz/service/compositor_frame_fuzzer/fuzzer_software_output_surface_provider.cc-55-        gfx::Size(input_pixmap.width(), input_pixmap.height()),
##############################################
chromium-84.0.4147.105/components/viz/service/display_embedder/skia_output_device_x11.cc-85-    gfx::PutARGBImage(display_, attributes_.visual, attributes_.depth, widget_,
chromium-84.0.4147.105/components/viz/service/display_embedder/skia_output_device_x11.cc:86:                      gc_, static_cast<const uint8_t*>(sk_pixmap.addr()),
chromium-84.0.4147.105/components/viz/service/display_embedder/skia_output_device_x11.cc-87-                      rect.width(), rect.height(), 0 /* src_x */, 0 /* src_y */,
##############################################
chromium-84.0.4147.105/components/viz/service/display_embedder/skia_output_device_x11.cc-108-    image.blue_mask = 0xff << SK_B32_SHIFT;
chromium-84.0.4147.105/components/viz/service/display_embedder/skia_output_device_x11.cc:109:    image.data = const_cast<char*>(static_cast<const char*>(sk_pixmap.addr()));
chromium-84.0.4147.105/components/viz/service/display_embedder/skia_output_device_x11.cc-110-    XPutImage(display_, pixmap, gc, &image, 0 /* src_x */, 0 /* src_y */,
##############################################
chromium-84.0.4147.105/components/viz/service/display/gl_renderer_copier_pixeltest.cc-123-    for (int y = 0; y < rgba_bitmap.height(); ++y) {
chromium-84.0.4147.105/components/viz/service/display/gl_renderer_copier_pixeltest.cc:124:      const uint8_t* src = static_cast<uint8_t*>(rgba_bitmap.getAddr(0, y));
chromium-84.0.4147.105/components/viz/service/display/gl_renderer_copier_pixeltest.cc-125-      const int flipped_y = flipped_source_ ? rgba_bitmap.height() - y - 1 : y;
##############################################
chromium-84.0.4147.105/components/viz/service/display/gl_renderer_copier_pixeltest.cc-152-      const uint8_t* const src_row = pixels + flipped_y * size.width() * 4;
chromium-84.0.4147.105/components/viz/service/display/gl_renderer_copier_pixeltest.cc:153:      void* const dest_row = bitmap.getAddr(0, y);
chromium-84.0.4147.105/components/viz/service/display/gl_renderer_copier_pixeltest.cc-154-      std::memcpy(dest_row, src_row, size.width() * 4);
##############################################
chromium-84.0.4147.105/components/viz/service/display/gl_renderer_copier_perftest.cc-111-    for (int y = 0; y < rgba_bitmap.height(); ++y) {
chromium-84.0.4147.105/components/viz/service/display/gl_renderer_copier_perftest.cc:112:      const uint8_t* src = static_cast<uint8_t*>(rgba_bitmap.getAddr(0, y));
chromium-84.0.4147.105/components/viz/service/display/gl_renderer_copier_perftest.cc-113-      const int flipped_y = flipped_source ? rgba_bitmap.height() - y - 1 : y;
##############################################
chromium-84.0.4147.105/components/viz/service/display/software_renderer.cc-606-                       .makeColorSpace(std::move(color_space)),
chromium-84.0.4147.105/components/viz/service/display/software_renderer.cc:607:                   render_pass_output.addr(geometry.sampling_bounds.x(),
chromium-84.0.4147.105/components/viz/service/display/software_renderer.cc-608-                                           geometry.sampling_bounds.y()),
##############################################
chromium-84.0.4147.105/components/viz/common/gpu/vulkan_in_process_context_provider.cc-81-        return reinterpret_cast<PFN_vkVoidFunction>(&gpu::QueueSubmitHook);
chromium-84.0.4147.105/components/viz/common/gpu/vulkan_in_process_context_provider.cc:82:      return vkGetDeviceProcAddr(device, proc_name);
chromium-84.0.4147.105/components/viz/common/gpu/vulkan_in_process_context_provider.cc-83-    }
chromium-84.0.4147.105/components/viz/common/gpu/vulkan_in_process_context_provider.cc:84:    return vkGetInstanceProcAddr(instance, proc_name);
chromium-84.0.4147.105/components/viz/common/gpu/vulkan_in_process_context_provider.cc-85-  };
##############################################
chromium-84.0.4147.105/components/viz/common/gl_scaler_test_util.cc-335-      AllocateRGBABitmap(gfx::Size(as_n32.width(), as_n32.height()));
chromium-84.0.4147.105/components/viz/common/gl_scaler_test_util.cc:336:  if (!as_n32.readPixels(SkPixmap(as_rgba.info(), as_rgba.getAddr(0, 0),
chromium-84.0.4147.105/components/viz/common/gl_scaler_test_util.cc-337-                                  as_rgba.rowBytes()))) {
##############################################
chromium-84.0.4147.105/components/ui_devtools/devtools_server_unittest.cc-49-  // Connect to the server socket.
chromium-84.0.4147.105/components/ui_devtools/devtools_server_unittest.cc:50:  net::AddressList addr(
chromium-84.0.4147.105/components/ui_devtools/devtools_server_unittest.cc-51-      net::IPEndPoint(net::IPAddress(127, 0, 0, 1), fake_port));
##############################################
chromium-84.0.4147.105/components/gcm_driver/resources/gcm_internals.js-55-    for (const [registeredAppId, count] of registeredAppIds.entries()) {
chromium-84.0.4147.105/components/gcm_driver/resources/gcm_internals.js:56:      list.push(registeredAppId + (count > 1 ? ` (x${count})` : ``));
chromium-84.0.4147.105/components/gcm_driver/resources/gcm_internals.js-57-    }
##############################################
chromium-84.0.4147.105/components/neterror/resources/neterror.js-268-    extraContainerClasses.push('suggestion-with-image');
chromium-84.0.4147.105/components/neterror/resources/neterror.js:269:    thumbnail = `<img ${src}="${item.thumbnail_data_uri}">`;
chromium-84.0.4147.105/components/neterror/resources/neterror.js-270-  } else {
##############################################
chromium-84.0.4147.105/components/neterror/resources/neterror.js-272-    const iconClass = getIconForSuggestedItem(item);
chromium-84.0.4147.105/components/neterror/resources/neterror.js:273:    thumbnail = `<div><img class="${iconClass}"></div>`;
chromium-84.0.4147.105/components/neterror/resources/neterror.js-274-  }
##############################################
chromium-84.0.4147.105/components/neterror/resources/neterror.js-277-  if (item.favicon_data_uri) {
chromium-84.0.4147.105/components/neterror/resources/neterror.js:278:    favicon = `<img ${src}="${item.favicon_data_uri}">`;
chromium-84.0.4147.105/components/neterror/resources/neterror.js-279-  } else {
##############################################
chromium-84.0.4147.105/components/neterror/resources/neterror.js-352-  for (let index = 0; index < suggestions.length; index++) {
chromium-84.0.4147.105/components/neterror/resources/neterror.js:353:    document.getElementById(`offline-content-suggestion-title-${index}`)
chromium-84.0.4147.105/components/neterror/resources/neterror.js-354-        .textContent =
chromium-84.0.4147.105/components/neterror/resources/neterror.js-355-        decodeUTF16Base64ToString(suggestions[index].title_base64);
chromium-84.0.4147.105/components/neterror/resources/neterror.js:356:    document.getElementById(`offline-content-suggestion-attribution-${index}`)
chromium-84.0.4147.105/components/neterror/resources/neterror.js-357-        .textContent =
##############################################
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h-27-
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h:28:    const mojom::BluetoothAddressPtr& remote_addr() const {
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h-29-      return remote_addr_;
##############################################
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h-50-
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h:51:    const mojom::BluetoothAddressPtr& addr() const { return addr_; }
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h-52-
##############################################
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h-76-
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h:77:    const mojom::BluetoothAddressPtr& addr() const { return addr_; }
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h-78-    device::BluetoothTransport device_type() const { return device_type_; }
##############################################
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h-94-
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h:95:    const mojom::BluetoothAddressPtr& addr() const { return addr_; }
chromium-84.0.4147.105/components/arc/test/fake_bluetooth_instance.h-96-    bool connected() const { return connected_; }
##############################################
chromium-84.0.4147.105/components/printing/resources/print_header_footer_template_page.html-87-
chromium-84.0.4147.105/components/printing/resources/print_header_footer_template_page.html:88:  body.style.width = `${options.width}px`;
chromium-84.0.4147.105/components/printing/resources/print_header_footer_template_page.html:89:  body.style.height = `${options.height}px`;
chromium-84.0.4147.105/components/printing/resources/print_header_footer_template_page.html:90:  header.style.height = `${options.topMargin}px`;
chromium-84.0.4147.105/components/printing/resources/print_header_footer_template_page.html:91:  footer.style.height = `${options.bottomMargin}px`;
chromium-84.0.4147.105/components/printing/resources/print_header_footer_template_page.html-92-
##############################################
chromium-84.0.4147.105/components/printing/resources/print_header_footer_template_page.html-108-  for (const cssClass of ['date', 'title', 'url', 'pageNumber', 'totalPages']) {
chromium-84.0.4147.105/components/printing/resources/print_header_footer_template_page.html:109:    for (const element of document.querySelectorAll(`.${cssClass}`)) {
chromium-84.0.4147.105/components/printing/resources/print_header_footer_template_page.html-110-      element.textContent = options[cssClass];
##############################################
chromium-84.0.4147.105/components/nacl/browser/nacl_process_host.cc-684-    addr.sin_family = AF_INET;
chromium-84.0.4147.105/components/nacl/browser/nacl_process_host.cc:685:    addr.sin_addr.s_addr = inet_addr("127.0.0.1");
chromium-84.0.4147.105/components/nacl/browser/nacl_process_host.cc-686-    addr.sin_port = base::HostToNet16(port);
##############################################
chromium-84.0.4147.105/components/zucchini/abs32_utils_unittest.cc-378-  MutableBufferView image32(data32.data(), data32.size());
chromium-84.0.4147.105/components/zucchini/abs32_utils_unittest.cc:379:  AbsoluteAddress addr(kBit32, kImageBase);
chromium-84.0.4147.105/components/zucchini/abs32_utils_unittest.cc-380-  TestAddressTranslator translator(data32.size(), kRvaBegin);
##############################################
chromium-84.0.4147.105/components/zucchini/abs32_utils_unittest.cc-409-  MutableBufferView image32(data64.data(), data64.size());
chromium-84.0.4147.105/components/zucchini/abs32_utils_unittest.cc:410:  AbsoluteAddress addr(kBit64, kImageBase);
chromium-84.0.4147.105/components/zucchini/abs32_utils_unittest.cc-411-  TestAddressTranslator translator(data64.size(), kRvaBegin);
##############################################
chromium-84.0.4147.105/components/zucchini/zucchini_gen.cc-266-  // Initialize Disassemblers.
chromium-84.0.4147.105/components/zucchini/zucchini_gen.cc:267:  std::unique_ptr<Disassembler> old_disasm =
chromium-84.0.4147.105/components/zucchini/zucchini_gen.cc-268-      MakeDisassemblerOfType(old_image, exe_type);
chromium-84.0.4147.105/components/zucchini/zucchini_gen.cc:269:  std::unique_ptr<Disassembler> new_disasm =
chromium-84.0.4147.105/components/zucchini/zucchini_gen.cc-270-      MakeDisassemblerOfType(new_image, exe_type);
chromium-84.0.4147.105/components/zucchini/zucchini_gen.cc:271:  if (!old_disasm || !new_disasm) {
chromium-84.0.4147.105/components/zucchini/zucchini_gen.cc-272-    LOG(ERROR) << "Failed to create Disassembler.";
##############################################
chromium-84.0.4147.105/components/zucchini/zucchini_apply.cc-97-                               MutableBufferView new_image) {
chromium-84.0.4147.105/components/zucchini/zucchini_apply.cc:98:  auto old_disasm = MakeDisassemblerOfType(old_image, exe_type);
chromium-84.0.4147.105/components/zucchini/zucchini_apply.cc:99:  auto new_disasm =
chromium-84.0.4147.105/components/zucchini/zucchini_apply.cc-100-      MakeDisassemblerOfType(ConstBufferView(new_image), exe_type);
chromium-84.0.4147.105/components/zucchini/zucchini_apply.cc:101:  if (!old_disasm || !new_disasm) {
chromium-84.0.4147.105/components/zucchini/zucchini_apply.cc-102-    LOG(ERROR) << "Failed to create Disassembler";
##############################################
chromium-84.0.4147.105/components/zucchini/element_detection.cc-43-  if (DisassemblerWin32X86::QuickDetect(image)) {
chromium-84.0.4147.105/components/zucchini/element_detection.cc:44:    auto disasm = Disassembler::Make<DisassemblerWin32X86>(image);
chromium-84.0.4147.105/components/zucchini/element_detection.cc:45:    if (disasm && disasm->size() >= kMinProgramSize)
chromium-84.0.4147.105/components/zucchini/element_detection.cc-46-      return disasm;
##############################################
chromium-84.0.4147.105/components/zucchini/element_detection.cc-49-  if (DisassemblerWin32X64::QuickDetect(image)) {
chromium-84.0.4147.105/components/zucchini/element_detection.cc:50:    auto disasm = Disassembler::Make<DisassemblerWin32X64>(image);
chromium-84.0.4147.105/components/zucchini/element_detection.cc:51:    if (disasm && disasm->size() >= kMinProgramSize)
chromium-84.0.4147.105/components/zucchini/element_detection.cc-52-      return disasm;
##############################################
chromium-84.0.4147.105/components/zucchini/element_detection.cc-57-  if (DisassemblerElfX86::QuickDetect(image)) {
chromium-84.0.4147.105/components/zucchini/element_detection.cc:58:    auto disasm = Disassembler::Make<DisassemblerElfX86>(image);
chromium-84.0.4147.105/components/zucchini/element_detection.cc:59:    if (disasm && disasm->size() >= kMinProgramSize)
chromium-84.0.4147.105/components/zucchini/element_detection.cc-60-      return disasm;
##############################################
chromium-84.0.4147.105/components/zucchini/element_detection.cc-63-  if (DisassemblerElfX64::QuickDetect(image)) {
chromium-84.0.4147.105/components/zucchini/element_detection.cc:64:    auto disasm = Disassembler::Make<DisassemblerElfX64>(image);
chromium-84.0.4147.105/components/zucchini/element_detection.cc:65:    if (disasm && disasm->size() >= kMinProgramSize)
chromium-84.0.4147.105/components/zucchini/element_detection.cc-66-      return disasm;
##############################################
chromium-84.0.4147.105/components/zucchini/element_detection.cc-71-  if (DisassemblerDex::QuickDetect(image)) {
chromium-84.0.4147.105/components/zucchini/element_detection.cc:72:    auto disasm = Disassembler::Make<DisassemblerDex>(image);
chromium-84.0.4147.105/components/zucchini/element_detection.cc:73:    if (disasm && disasm->size() >= kMinProgramSize)
chromium-84.0.4147.105/components/zucchini/element_detection.cc-74-      return disasm;
##############################################
chromium-84.0.4147.105/components/zucchini/element_detection.cc-80-    // This disallows very short examples like "ZTxtxtZ\n" in ensemble patching.
chromium-84.0.4147.105/components/zucchini/element_detection.cc:81:    auto disasm = Disassembler::Make<DisassemblerZtf>(image);
chromium-84.0.4147.105/components/zucchini/element_detection.cc:82:    if (disasm && disasm->size() >= kMinProgramSize)
chromium-84.0.4147.105/components/zucchini/element_detection.cc-83-      return disasm;
##############################################
chromium-84.0.4147.105/components/zucchini/element_detection.cc-121-base::Optional<Element> DetectElementFromDisassembler(ConstBufferView image) {
chromium-84.0.4147.105/components/zucchini/element_detection.cc:122:  std::unique_ptr<Disassembler> disasm = MakeDisassemblerWithoutFallback(image);
chromium-84.0.4147.105/components/zucchini/element_detection.cc-123-  if (disasm)
##############################################
chromium-84.0.4147.105/components/zucchini/zucchini_tools.cc-29-                            std::ostream& out) {
chromium-84.0.4147.105/components/zucchini/zucchini_tools.cc:30:  std::unique_ptr<Disassembler> disasm = MakeDisassemblerWithoutFallback(image);
chromium-84.0.4147.105/components/zucchini/zucchini_tools.cc-31-  if (!disasm) {
##############################################
chromium-84.0.4147.105/components/zucchini/zucchini_tools.cc-95-      print_range(last_out_pos, pos - last_out_pos, "?");
chromium-84.0.4147.105/components/zucchini/zucchini_tools.cc:96:    auto disasm = MakeDisassemblerOfType(sub_image, element->exe_type);
chromium-84.0.4147.105/components/zucchini/zucchini_tools.cc-97-    print_range(pos, prog_size, disasm->GetExeTypeString());
##############################################
chromium-84.0.4147.105/components/zucchini/disassembler.h-50-  static std::unique_ptr<DIS> Make(ConstBufferView image) {
chromium-84.0.4147.105/components/zucchini/disassembler.h:51:    auto disasm = std::make_unique<DIS>();
chromium-84.0.4147.105/components/zucchini/disassembler.h-52-    if (!disasm->Parse(image))
##############################################
chromium-84.0.4147.105/components/feature_engagement/README.md-387-        that must have been met.
chromium-84.0.4147.105/components/feature_engagement/README.md:388:    *   Name must match `/^event_[a-zA-Z0-9-_]+$/` and not be `event_used` or
chromium-84.0.4147.105/components/feature_engagement/README.md-389-        `event_trigger`.
##############################################
chromium-84.0.4147.105/components/feature_engagement/README.md-441-    *   Must only contain alphanumeric, dash and underscore.
chromium-84.0.4147.105/components/feature_engagement/README.md:442:        *   Specifically must match this regex: `/^[a-zA-Z0-9-_]+$/`
chromium-84.0.4147.105/components/feature_engagement/README.md-443-    *   Value client side data type: std::string
##############################################
chromium-84.0.4147.105/components/crash/core/browser/resources/crashes.js-90-        const crashLink = document.createElement('a');
chromium-84.0.4147.105/components/crash/core/browser/resources/crashes.js:91:        crashLink.href = `https://goto.google.com/crash/${crash.id}`;
chromium-84.0.4147.105/components/crash/core/browser/resources/crashes.js-92-        crashLink.target = '_blank';
##############################################
chromium-84.0.4147.105/components/crash/core/app/crashpad_android.cc-296-  Dl_info info;
chromium-84.0.4147.105/components/crash/core/app/crashpad_android.cc:297:  if (dladdr(reinterpret_cast<void*>(&GetHandlerTrampoline), &info) == 0 ||
chromium-84.0.4147.105/components/crash/core/app/crashpad_android.cc-298-      dlsym(dlopen(info.dli_fname, RTLD_NOLOAD | RTLD_LAZY),
##############################################
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc-255-
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc:256:  uintptr_t free_page = state_.SlotToAddr(free_slot);
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc-257-  MarkPageReadWrite(reinterpret_cast<void*>(free_page));
##############################################
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc-285-  const uintptr_t addr = reinterpret_cast<uintptr_t>(ptr);
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc:286:  AllocatorState::SlotIdx slot = state_.AddrToSlot(state_.GetPageAddr(addr));
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc-287-  AllocatorState::MetadataIdx metadata_idx = slot_to_metadata_idx_[slot];
##############################################
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc-311-  RecordDeallocationMetadata(metadata_idx);
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc:312:  MarkPageInaccessible(reinterpret_cast<void*>(state_.GetPageAddr(addr)));
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc-313-
##############################################
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc-319-  const uintptr_t addr = reinterpret_cast<uintptr_t>(ptr);
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc:320:  AllocatorState::SlotIdx slot = state_.AddrToSlot(state_.GetPageAddr(addr));
chromium-84.0.4147.105/components/gwp_asan/client/guarded_page_allocator.cc-321-  AllocatorState::MetadataIdx metadata_idx = slot_to_metadata_idx_[slot];
##############################################
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state_unittest.cc-114-  EXPECT_EQ(
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state_unittest.cc:115:      state_.GetPageAddr(state_.GetNearestValidPage(state_.pages_base_addr)),
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state_unittest.cc-116-      state_.first_page_addr);
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state_unittest.cc-117-  EXPECT_EQ(
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state_unittest.cc:118:      state_.GetPageAddr(state_.GetNearestValidPage(state_.pages_end_addr - 1)),
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state_unittest.cc-119-      state_.pages_end_addr - (2 * state_.page_size));
##############################################
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.cc-91-
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.cc:92:uintptr_t AllocatorState::GetPageAddr(uintptr_t addr) const {
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.cc-93-  const uintptr_t addr_mask = ~(page_size - 1ULL);
##############################################
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.cc-117-AllocatorState::SlotIdx AllocatorState::GetNearestSlot(uintptr_t addr) const {
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.cc:118:  return AddrToSlot(GetPageAddr(GetNearestValidPage(addr)));
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.cc-119-}
##############################################
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.cc-156-
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.cc:157:uintptr_t AllocatorState::SlotToAddr(AllocatorState::SlotIdx slot) const {
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.cc-158-  DCHECK_LT(slot, kMaxSlots);
##############################################
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.h-155-  // Returns the address of the page that addr resides on.
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.h:156:  uintptr_t GetPageAddr(uintptr_t addr) const;
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.h-157-
##############################################
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.h-163-
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.h:164:  uintptr_t SlotToAddr(SlotIdx slot) const;
chromium-84.0.4147.105/components/gwp_asan/common/allocator_state.h-165-  SlotIdx AddrToSlot(uintptr_t addr) const;
##############################################
chromium-84.0.4147.105/testing/android/docs/gtest_implementation.md-115-target type, then copies the resulting executable and any requisite shared libraries
chromium-84.0.4147.105/testing/android/docs/gtest_implementation.md:116:to ```${root_out_dir}/${target_name}__dist``` (e.g. ```out/Debug/breakpad_unittests__dist```).
chromium-84.0.4147.105/testing/android/docs/gtest_implementation.md-117-
##############################################
chromium-84.0.4147.105/testing/perf/luci_test_result_unittest.cc-178-  const std::string expected_json =
chromium-84.0.4147.105/testing/perf/luci_test_result_unittest.cc:179:      base::StringPrintf(json_template.c_str(), GetParam());
chromium-84.0.4147.105/testing/perf/luci_test_result_unittest.cc-180-  ValidateResult(result, expected_json);
##############################################
chromium-84.0.4147.105/testing/chromoting/browser_tests_launcher.py-76-      # The JID for the remote-host did not match the JID that was used for this
chromium-84.0.4147.105/testing/chromoting/browser_tests_launcher.py:77:      # execution of the test. This happens because of a replication delay in
chromium-84.0.4147.105/testing/chromoting/browser_tests_launcher.py-78-      # updating all instances of the Chromoting Directory Server. To
##############################################
chromium-84.0.4147.105/testing/libfuzzer/reproducing.md-22-   For the rest of this walkthrough, we call the path of this
chromium-84.0.4147.105/testing/libfuzzer/reproducing.md:23:   file: `$TESTCASE_PATH` and the fuzz target you want to reproduce a
chromium-84.0.4147.105/testing/libfuzzer/reproducing.md:24:   crash on: `$FUZZER_NAME` (provided as "Fuzz Target" in the bug
chromium-84.0.4147.105/testing/libfuzzer/reproducing.md-25-   description).
##############################################
chromium-84.0.4147.105/testing/libfuzzer/efficient_fuzzing.md-19-
chromium-84.0.4147.105/testing/libfuzzer/efficient_fuzzing.md:20:### Execution speed
chromium-84.0.4147.105/testing/libfuzzer/efficient_fuzzing.md-21-
##############################################
chromium-84.0.4147.105/testing/libfuzzer/getting_started.md-139-stacktrace, make sure you add the `third_party/llvm-build/Release+Asserts/bin/`
chromium-84.0.4147.105/testing/libfuzzer/getting_started.md:140:directory from Chromium’s Clang package in `$PATH`. This directory contains the
chromium-84.0.4147.105/testing/libfuzzer/getting_started.md-141-`llvm-symbolizer` binary.
##############################################
chromium-84.0.4147.105/headless/lib/resources/devtools_discovery_page.html-26-    var devtoolsFrontendUrl = item.devtoolsFrontendUrl.replace(/^\/devtools\//,'');
chromium-84.0.4147.105/headless/lib/resources/devtools_discovery_page.html:27:    link.href = `https://chrome-devtools-frontend.appspot.com/serve_file/@${hash}/${devtoolsFrontendUrl}&remoteFrontend=true`;
chromium-84.0.4147.105/headless/lib/resources/devtools_discovery_page.html-28-    link.title = item.title;
##############################################
chromium-84.0.4147.105/DEPS-4625-  },
chromium-84.0.4147.105/DEPS:4626:  # Download wasm ink resources for chromeos.
chromium-84.0.4147.105/DEPS-4627-  {
##############################################
chromium-84.0.4147.105/DEPS-4639-  },
chromium-84.0.4147.105/DEPS:4640:  # Download wasm threaded ink resources for chromeos.
chromium-84.0.4147.105/DEPS-4641-  {
##############################################
chromium-84.0.4147.105/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc-89-  Dl_info dl_info;
chromium-84.0.4147.105/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc:90:  if (dladdr(&__ehdr_start, &dl_info)) {
chromium-84.0.4147.105/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc-91-    base::debug::ElfBuildIdBuffer build_id;
##############################################
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android_unittest.cc-153-  uintptr_t sp, pc;
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android_unittest.cc:154:  asm volatile("mov %0, sp" : "=r"(sp));
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android_unittest.cc:155:  asm volatile("mov %0, pc" : "=r"(pc));
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android_unittest.cc-156-  marker.Init<base::android::MethodID::TYPE_STATIC>(
##############################################
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc-427-
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc:428:  asm volatile("mov %0, sp" : "=r"(sp));
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc-429-  *params->sp = sp;
##############################################
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc-471-  static const FakeExidx chrome_exidx_data[] = {
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc:472:      {CFIBacktraceAndroid::executable_start_addr(), 0x80000000},
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc:473:      {CFIBacktraceAndroid::executable_end_addr(), 0x80000000}};
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc-474-  *length = base::size(chrome_exidx_data);
##############################################
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc-528-
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc:529:  asm volatile("mov %0, sp" : "=r"(sp));
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/stack_unwinder_android.cc-530-  // If unwind goes beyond 4MB from top of stack, we stop.
##############################################
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc-374-      rel_pc = frame.instruction_pointer -
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc:375:               base::trace_event::CFIBacktraceAndroid::executable_start_addr();
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc:376:    } else if (dladdr(reinterpret_cast<void*>(frame.instruction_pointer),
chromium-84.0.4147.105/services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.cc-377-                      &info) != 0) {
##############################################
chromium-84.0.4147.105/services/proxy_resolver/pac_js_library.h-79-  ""                                                                           \
chromium-84.0.4147.105/services/proxy_resolver/pac_js_library.h:80:  "function convert_addr(ipchars) {\n"                                         \
chromium-84.0.4147.105/services/proxy_resolver/pac_js_library.h-81-  "    var bytes = ipchars.split('.');\n"                                      \
##############################################
chromium-84.0.4147.105/services/proxy_resolver/pac_js_library.h-98-  "    }\n"                                                                    \
chromium-84.0.4147.105/services/proxy_resolver/pac_js_library.h:99:  "    var host = convert_addr(ipaddr);\n"                                     \
chromium-84.0.4147.105/services/proxy_resolver/pac_js_library.h:100:  "    var pat  = convert_addr(pattern);\n"                                    \
chromium-84.0.4147.105/services/proxy_resolver/pac_js_library.h:101:  "    var mask = convert_addr(maskstr);\n"                                    \
chromium-84.0.4147.105/services/proxy_resolver/pac_js_library.h-102-  "    return ((host & mask) == (pat & mask));\n"                              \
##############################################
chromium-84.0.4147.105/services/network/proxy_resolving_client_socket_unittest.cc-196-    net::StaticSocketDataProvider socket_data(reads, writes);
chromium-84.0.4147.105/services/network/proxy_resolving_client_socket_unittest.cc:197:    net::IPEndPoint remote_addr(net::IPAddress(127, 0, 0, 1),
chromium-84.0.4147.105/services/network/proxy_resolving_client_socket_unittest.cc-198-                                is_direct ? kDirectPort : kProxyPort);
##############################################
chromium-84.0.4147.105/services/network/proxy_resolving_client_socket_unittest.cc-296-    net::StaticSocketDataProvider socket_data(reads, writes);
chromium-84.0.4147.105/services/network/proxy_resolving_client_socket_unittest.cc:297:    net::IPEndPoint remote_addr(net::IPAddress(127, 0, 0, 1),
chromium-84.0.4147.105/services/network/proxy_resolving_client_socket_unittest.cc-298-                                test.is_direct ? kDirectPort : kProxyPort);
##############################################
chromium-84.0.4147.105/services/network/network_context_unittest.cc-2658-
chromium-84.0.4147.105/services/network/network_context_unittest.cc:2659:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/network_context_unittest.cc-2660-  mojo::Remote<mojom::UDPSocket> server_socket;
##############################################
chromium-84.0.4147.105/services/network/network_context_unittest.cc-2671-
chromium-84.0.4147.105/services/network/network_context_unittest.cc:2672:  net::IPEndPoint client_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/network_context_unittest.cc-2673-  test::UDPSocketTestHelper client_helper(&client_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-241-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:242:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-243-
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-264-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:265:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-266-  test::UDPSocketTestHelper helper(&server_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-272-                             mojo::NullRemote());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:273:  net::IPEndPoint client_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-274-  test::UDPSocketTestHelper client_helper(&client_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-298-  test::UDPSocketTestHelper helper(&socket_remote);
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:299:  net::IPEndPoint local_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-300-
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-331-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:332:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-333-  test::UDPSocketTestHelper helper(&socket_remote);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-373-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:374:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-375-  test::UDPSocketTestHelper helper(&socket_remote);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-419-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:420:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-421-  test::UDPSocketTestHelper helper(&server_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-440-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:441:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-442-  test::UDPSocketTestHelper helper(&server_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-448-                             mojo::NullRemote());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:449:  net::IPEndPoint client_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-450-  test::UDPSocketTestHelper client_helper(&client_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-505-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:506:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-507-  test::UDPSocketTestHelper helper(&server_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-516-                             listener_receiver.BindNewPipeAndPassRemote());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:517:  net::IPEndPoint client_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-518-  test::UDPSocketTestHelper client_helper(&client_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-573-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:574:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-575-  test::UDPSocketTestHelper helper(&server_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-581-                             mojo::NullRemote());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:582:  net::IPEndPoint client_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-583-  test::UDPSocketTestHelper client_helper(&client_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-619-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:620:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-621-  test::UDPSocketTestHelper helper(&server_socket);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-627-  EXPECT_FALSE(ip_address.IsValid());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:628:  net::IPEndPoint invalid_addr(ip_address, 53);
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-629-  server_socket->SendTo(
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-652-
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:653:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-654-  test::UDPSocketTestHelper helper(&socket_remote);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-760-  test::UDPSocketTestHelper server_helper(&server_socket_remote);
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc:761:  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
chromium-84.0.4147.105/services/network/udp_socket_unittest.cc-762-  ASSERT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/p2p/socket_tcp_unittest.cc-513-  net::StaticSocketDataProvider data_provider(reads, writes);
chromium-84.0.4147.105/services/network/p2p/socket_tcp_unittest.cc:514:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/p2p/socket_tcp_unittest.cc-515-  data_provider.set_connect_data(
##############################################
chromium-84.0.4147.105/services/network/p2p/socket_tcp_unittest.cc-567-      reads, base::span<const net::MockWrite>());
chromium-84.0.4147.105/services/network/p2p/socket_tcp_unittest.cc:568:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/p2p/socket_tcp_unittest.cc-569-  data_provider.set_connect_data(
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-203-
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:204:  const net::IPEndPoint& server_addr() { return server_addr_; }
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-205-
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-389-                           mojo::NullRemote() /*observer*/, test.client_addr,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:390:                           server.server_addr(), &client_socket_receive_handle,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-391-                           &client_socket_send_handle));
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-429-        client_socket.BindNewPipeAndPassReceiver(),
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:430:        mojo::NullRemote() /*observer*/, test.client_addr, server.server_addr(),
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-431-        &client_socket_receive_handle, &client_socket_send_handle);
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-469-                  mojo::NullRemote() /*observer*/, base::nullopt /*local_addr*/,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:470:                  server.server_addr(), &client_socket_receive_handle,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-471-                  &client_socket_send_handle));
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-494-                mojo::NullRemote() /*observer*/, base::nullopt /*local_addr*/,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:495:                server.server_addr(), &client_socket_receive_handle,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-496-                &client_socket_send_handle));
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-539-                observer()->GetObserverRemote(), base::nullopt /*local_addr*/,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:540:                server->server_addr(), &client_socket_receive_handle,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-541-                &client_socket_send_handle));
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-604-                mojo::NullRemote() /*observer*/, base::nullopt /*local_addr*/,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:605:                server.server_addr(), &client_socket_receive_handle,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-606-                &client_socket_send_handle));
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-633-                mojo::NullRemote() /*observer*/, base::nullopt /*local_addr*/,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:634:                server.server_addr(), &client_socket_receive_handle,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-635-                &client_socket_send_handle));
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-662-                mojo::NullRemote() /*observer*/, base::nullopt /*local_addr*/,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:663:                server.server_addr(), &client_socket_receive_handle,
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-664-                &client_socket_send_handle));
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-896-  net::StaticSocketDataProvider data_provider(reads, writes);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:897:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-898-  data_provider.set_connect_data(
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-948-  net::StaticSocketDataProvider data_provider(reads, writes);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:949:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-950-  data_provider.set_connect_data(
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-992-      net::MockWrite(mode, kTestMsg, strlen(kTestMsg), 0)};
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:993:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-994-  net::StaticSocketDataProvider data_provider(reads, writes);
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1029-
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:1030:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1031-  data_provider.set_connect_data(
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1053-TEST_P(TCPSocketWithMockSocketTest, InitialTCPConnectedSocketOptions) {
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:1054:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1055-  mojo::ScopedDataPipeConsumerHandle client_socket_receive_handle;
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1108-TEST_P(TCPSocketWithMockSocketTest, InitialTCPConnectedSocketOptionsFails) {
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:1109:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1110-  mojo::ScopedDataPipeConsumerHandle client_socket_receive_handle;
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1167-  mojo::Remote<mojom::TCPConnectedSocket> client_socket;
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:1168:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1169-  mojo::ScopedDataPipeConsumerHandle client_socket_receive_handle;
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1209-  mojo::Remote<mojom::TCPConnectedSocket> client_socket;
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:1210:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1211-  mojo::ScopedDataPipeConsumerHandle client_socket_receive_handle;
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1244-  mojo::Remote<mojom::TCPConnectedSocket> client_socket;
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:1245:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1246-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1321-  mojo::Remote<mojom::TCPConnectedSocket> client_socket;
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:1322:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1323-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1366-  mojo::Remote<mojom::TCPConnectedSocket> client_socket;
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:1367:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1368-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1437-  mojo::Remote<mojom::TCPConnectedSocket> client_socket;
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc:1438:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tcp_socket_unittest.cc-1439-  net::AddressList remote_addr_list(server_addr);
##############################################
chromium-84.0.4147.105/services/network/udp_socket_test_util.cc-154-    : net_error(net_error_arg),
chromium-84.0.4147.105/services/network/udp_socket_test_util.cc:155:      src_addr(src_addr_arg),
chromium-84.0.4147.105/services/network/udp_socket_test_util.cc-156-      data(std::move(data_arg)) {}
##############################################
chromium-84.0.4147.105/services/network/proxy_resolving_socket_mojo_unittest.cc-210-    net::StaticSocketDataProvider socket_data(reads, writes);
chromium-84.0.4147.105/services/network/proxy_resolving_socket_mojo_unittest.cc:211:    net::IPEndPoint remote_addr(net::IPAddress(127, 0, 0, 1),
chromium-84.0.4147.105/services/network/proxy_resolving_socket_mojo_unittest.cc-212-                                is_direct ? kDirectPort : kProxyPort);
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-341-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:342:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-343-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-379-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:380:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-381-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-419-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:420:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-421-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-487-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:488:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-489-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-541-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:542:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-543-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-587-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:588:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-589-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-628-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:629:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-630-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-671-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:672:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-673-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-717-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:718:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-719-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-766-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:767:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-768-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-812-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:813:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-814-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-851-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:852:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-853-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-920-  SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:921:  net::IPEndPoint server_addr(net::IPAddress(192, 168, 1, 1), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-922-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-988-  mojo::Remote<mojom::TCPConnectedSocket> client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:989:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-990-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-1039-  mojo::Remote<mojom::TCPConnectedSocket> client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:1040:  net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(), 1234);
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-1041-  EXPECT_EQ(net::OK,
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-1094-    SocketHandle client_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:1095:    net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(),
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-1096-                                server_.port());
##############################################
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-1115-    mojo::Remote<mojom::TCPConnectedSocket> tcp_socket;
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc:1116:    net::IPEndPoint server_addr(net::IPAddress::IPv4Localhost(),
chromium-84.0.4147.105/services/network/tls_client_socket_unittest.cc-1117-                                server_.port());
##############################################
chromium-84.0.4147.105/styleguide/c++/c++.md-225-  * There is no `(c)` after `Copyright`.
chromium-84.0.4147.105/styleguide/c++/c++.md:226:  * `$YEAR` should be set to the current year at the time a file is created, and
chromium-84.0.4147.105/styleguide/c++/c++.md-227-    not changed thereafter.
##############################################
chromium-84.0.4147.105/styleguide/web/web.md-142-    * Exception: `camelCase` is allowed in Polymer code for easier
chromium-84.0.4147.105/styleguide/web/web.md:143:      `this.$.idName` access.
chromium-84.0.4147.105/styleguide/web/web.md-144-
##############################################
chromium-84.0.4147.105/styleguide/web/web.md-316-
chromium-84.0.4147.105/styleguide/web/web.md:317:* Use `$('element-id')` instead of `document.getElementById`
chromium-84.0.4147.105/styleguide/web/web.md-318-
##############################################
chromium-84.0.4147.105/styleguide/web/web.md-385-* Use camelCase for element IDs to simplify local DOM accessors (i.e.
chromium-84.0.4147.105/styleguide/web/web.md:386:  `this.$.camelCase` instead of `this.$[‘dash-case’]`).
chromium-84.0.4147.105/styleguide/web/web.md-387-
##############################################
chromium-84.0.4147.105/mojo/public/cpp/platform/named_platform_channel_posix.cc-33-// violated the naming rules).
chromium-84.0.4147.105/mojo/public/cpp/platform/named_platform_channel_posix.cc:34:bool MakeUnixAddr(const NamedPlatformChannel::ServerName& server_name,
chromium-84.0.4147.105/mojo/public/cpp/platform/named_platform_channel_posix.cc-35-                  struct sockaddr_un* unix_addr,
##############################################
chromium-84.0.4147.105/mojo/public/cpp/platform/named_platform_channel_posix.cc-102-  size_t unix_addr_len;
chromium-84.0.4147.105/mojo/public/cpp/platform/named_platform_channel_posix.cc:103:  if (!MakeUnixAddr(name, &unix_addr, &unix_addr_len))
chromium-84.0.4147.105/mojo/public/cpp/platform/named_platform_channel_posix.cc-104-    return PlatformChannelServerEndpoint();
##############################################
chromium-84.0.4147.105/mojo/public/cpp/platform/named_platform_channel_posix.cc-134-  size_t unix_addr_len;
chromium-84.0.4147.105/mojo/public/cpp/platform/named_platform_channel_posix.cc:135:  if (!MakeUnixAddr(server_name, &unix_addr, &unix_addr_len))
chromium-84.0.4147.105/mojo/public/cpp/platform/named_platform_channel_posix.cc-136-    return PlatformChannelEndpoint();
##############################################
chromium-84.0.4147.105/mojo/public/cpp/bindings/README.md-1677-To depend specifically on generated Blink bindings, reference
chromium-84.0.4147.105/mojo/public/cpp/bindings/README.md:1678:`${target_name}_blink`. So for example, with the definition:
chromium-84.0.4147.105/mojo/public/cpp/bindings/README.md-1679-
##############################################
chromium-84.0.4147.105/mojo/public/cpp/bindings/README.md-1707-C++ sources can depend on shared sources only, by referencing the
chromium-84.0.4147.105/mojo/public/cpp/bindings/README.md:1708:`"${target_name}_shared"` target, e.g. `"//foo/mojom:mojom_shared"` in the
chromium-84.0.4147.105/mojo/public/cpp/bindings/README.md-1709-example above.
##############################################
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js-186-    throw new Error(
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js:187:        `Value for ${unionSpec.name} must be an Object with a ` +
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js-188-        'single property named one of: ' +
##############################################
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js-557-      throw new Error(
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js:558:          `Value for ${unionSpec.name} must be an Object with a ` +
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js-559-          'single property named one of: ' +
##############################################
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js-809-          throw new Error(
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js:810:              `Received ${unionSpec.name} with invalid null ` +
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js:811:              `field: ${field['name']}`);
chromium-84.0.4147.105/mojo/public/js/bindings_lite.js-812-        }
##############################################
chromium-84.0.4147.105/url/url_canon_unittest.cc-1961-    // Certain characters have special meanings and must be encoded.
chromium-84.0.4147.105/url/url_canon_unittest.cc:1962:    {"mailto:! \x22$&()+,-./09:;<=>@AZ[\\]&_`az{|}~\x7f?Query! \x22$&()+,-./09:;<=>@AZ[\\]&_`az{|}~",
chromium-84.0.4147.105/url/url_canon_unittest.cc-1963-     "mailto:!%20%22$&()+,-./09:;%3C=%3E@AZ[\\]&_%60az%7B%7C%7D~%7F?Query!%20%22$&()+,-./09:;%3C=%3E@AZ[\\]&_`az{|}~",
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VmaReplay/VmaReplay.cpp-2407-        reinterpret_cast<PFN_vkCreateDebugReportCallbackEXT>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VmaReplay/VmaReplay.cpp:2408:            (vkGetInstanceProcAddr(m_VulkanInstance, "vkCreateDebugReportCallbackEXT"));
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VmaReplay/VmaReplay.cpp-2409-    m_pvkDebugReportMessageEXT =
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VmaReplay/VmaReplay.cpp-2410-        reinterpret_cast<PFN_vkDebugReportMessageEXT>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VmaReplay/VmaReplay.cpp:2411:            (vkGetInstanceProcAddr(m_VulkanInstance, "vkDebugReportMessageEXT"));
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VmaReplay/VmaReplay.cpp-2412-    m_pvkDestroyDebugReportCallbackEXT =
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VmaReplay/VmaReplay.cpp-2413-        reinterpret_cast<PFN_vkDestroyDebugReportCallbackEXT>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VmaReplay/VmaReplay.cpp:2414:            (vkGetInstanceProcAddr(m_VulkanInstance, "vkDestroyDebugReportCallbackEXT"));
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VmaReplay/VmaReplay.cpp-2415-    assert(m_pvkCreateDebugReportCallbackEXT);
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/vk_mem_alloc.h-3866-
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/vk_mem_alloc.h:3867:    vulkanFunctions.vkAllocateMemory = (PFN_vkAllocateMemory)vkGetDeviceProcAddr(m_hDevice, vkAllocateMemory);
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/vk_mem_alloc.h-3868-*/
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/vk_mem_alloc.h-15779-        m_VulkanFunctions.memberName = \
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/vk_mem_alloc.h:15780:            (functionPointerType)vkGetInstanceProcAddr(m_hInstance, functionNameString);
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/vk_mem_alloc.h-15781-#define VMA_FETCH_DEVICE_FUNC(memberName, functionPointerType, functionNameString) \
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/vk_mem_alloc.h-15783-        m_VulkanFunctions.memberName = \
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/vk_mem_alloc.h:15784:            (functionPointerType)vkGetDeviceProcAddr(m_hDevice, functionNameString);
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/vk_mem_alloc.h-15785-
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-591-        reinterpret_cast<PFN_vkCreateDebugReportCallbackEXT>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp:592:            (vkGetInstanceProcAddr(g_hVulkanInstance, "vkCreateDebugReportCallbackEXT"));
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-593-    g_pvkDebugReportMessageEXT =
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-594-        reinterpret_cast<PFN_vkDebugReportMessageEXT>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp:595:            (vkGetInstanceProcAddr(g_hVulkanInstance, "vkDebugReportMessageEXT"));
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-596-    g_pvkDestroyDebugReportCallbackEXT =
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-597-        reinterpret_cast<PFN_vkDestroyDebugReportCallbackEXT>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp:598:            (vkGetInstanceProcAddr(g_hVulkanInstance, "vkDestroyDebugReportCallbackEXT"));
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-599-    assert(g_pvkCreateDebugReportCallbackEXT);
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1533-        {
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp:1534:            g_vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vkGetDeviceProcAddr(g_hDevice, "vkGetBufferDeviceAddress");
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1535-            //assert(g_vkGetBufferDeviceAddressEXT != nullptr);
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1549-            {
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp:1550:                g_vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vkGetInstanceProcAddr(g_hVulkanInstance, "vkGetBufferDeviceAddress");
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1551-            }
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1553-            {
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp:1554:                g_vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vkGetDeviceProcAddr(g_hDevice, "vkGetBufferDeviceAddressKHR");
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1555-            }
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1557-            {
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp:1558:                g_vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vkGetDeviceProcAddr(g_hDevice, "vkGetBufferDeviceAddressEXT");
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1559-            }
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1563-        {
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp:1564:            g_vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vkGetDeviceProcAddr(g_hDevice, "vkGetBufferDeviceAddressKHR");
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1565-            assert(g_vkGetBufferDeviceAddressEXT != nullptr);
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1568-        {
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp:1569:            g_vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)vkGetDeviceProcAddr(g_hDevice, "vkGetBufferDeviceAddressEXT");
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/src/VulkanSample.cpp-1570-            assert(g_vkGetBufferDeviceAddressEXT != nullptr);
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/vk__mem__alloc_8h_source.html-857-<div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;<span class="comment"></span> </div>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/vk__mem__alloc_8h_source.html:858:<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160;<span class="comment">    vulkanFunctions.vkAllocateMemory = (PFN_vkAllocateMemory)vkGetDeviceProcAddr(m_hDevice, vkAllocateMemory);</span></div>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/vk__mem__alloc_8h_source.html-859-<div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>&#160;<span class="comment">*/</span></div>
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/vk__mem__alloc_8h_source.html-12705-<div class="line"><a name="l15760"></a><span class="lineno">15760</span>&#160;<span class="preprocessor">        m_VulkanFunctions.memberName = \</span></div>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/vk__mem__alloc_8h_source.html:12706:<div class="line"><a name="l15761"></a><span class="lineno">15761</span>&#160;<span class="preprocessor">            (functionPointerType)vkGetInstanceProcAddr(m_hInstance, functionNameString);</span></div>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/vk__mem__alloc_8h_source.html-12707-<div class="line"><a name="l15762"></a><span class="lineno">15762</span>&#160;<span class="preprocessor">#define VMA_FETCH_DEVICE_FUNC(memberName, functionPointerType, functionNameString) \</span></div>
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/vk__mem__alloc_8h_source.html-12709-<div class="line"><a name="l15764"></a><span class="lineno">15764</span>&#160;<span class="preprocessor">        m_VulkanFunctions.memberName = \</span></div>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/vk__mem__alloc_8h_source.html:12710:<div class="line"><a name="l15765"></a><span class="lineno">15765</span>&#160;<span class="preprocessor">            (functionPointerType)vkGetDeviceProcAddr(m_hDevice, functionNameString);</span></div>
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/vk__mem__alloc_8h_source.html-12711-<div class="line"><a name="l15766"></a><span class="lineno">15766</span>&#160; </div>
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js-1-/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js:2:!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js-3-/*! jQuery UI - v1.12.1 - 2019-01-27
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js-7-
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js:8:(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}t.ui=t.ui||{},t.ui.version="1.12.1";var i=0,s=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,n,o=s.call(arguments,1),a=0,r=o.length;r>a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,m,g,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),x={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,m=_.offset,g=t.extend({},m),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):h.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=h.test(i[1])?i[1]:"center",t=l.exec(i[0]),e=l.exec(i[1]),x[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?g.left+=p:"center"===n.at[0]&&(g.left+=p/2),"bottom"===n.at[1]?g.top+=f:"center"===n.at[1]&&(g.top+=f/2),u=e(x.at,p,f),g.left+=u[0],g.top+=u[1],this.each(function(){var s,r,h=t(this),l=h.outerWidth(),c=h.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),k=l+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},g),T=e(x.my,h.outerWidth(),h.outerHeight());"right"===n.my[0]?D.left-=l:"center"===n.my[0]&&(D.left-=l/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:l,elemHeight:c,collisionPosition:s,collisionWidth:k,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:h})}),n.using&&(r=function(t){var e=m.left-D.left,i=e+p-l,s=m.top-D.top,r=s+f-c,u={target:{element:v,left:m.left,top:m.top,width:p,height:f},element:{element:h,left:D.left,top:D.top,width:l,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js-9-},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/**
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js-14- */
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js:15:;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js-16-/*!
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js-22-*/
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js:23:(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=factory(require("jquery"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$("body");var DATA_DISPLAYCONTROLLER="displayController",DATA_HASACTIVEHOVER="hasActiveHover",DATA_FORCEDOPEN="forcedOpen",DATA_HASMOUSEMOVE="hasMouseMove",DATA_MOUSEONTOTIP="mouseOnToPopup",DATA_ORIGINALTITLE="originalTitle",DATA_POWERTIP="powertip",DATA_POWERTIPJQ="powertipjq",DATA_POWERTIPTARGET="powertiptarget",EVENT_NAMESPACE=".powertip",RAD2DEG=180/Math.PI,MOUSE_EVENTS=["click","dblclick","mousedown","mouseup","mousemove","mouseover","mouseout","mouseenter","mouseleave","contextmenu"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)==="string"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr("title");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr("title")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference<options.intentSensitivity){cancelClose();closeAnyDelayed();tipController.showTip(element)}else{session.previousX=session.currentX;session.previousY=session.currentY;openTooltip()}}function cancelTimer(stopClose){hoverTimer=clearTimeout(hoverTimer);if(session.closeDelayTimeout&&myCloseDelay===session.closeDelayTimeout||stopClose){cancelClose()}}function cancelClose(){session.closeDelayTimeout=clearTimeout(session.closeDelayTimeout);session.delayInProgress=false}function closeAnyDelayed(){if(session.delayInProgress&&session.activeHover&&!session.activeHover.is(element)){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true)}}function repositionTooltip(){tipController.resetPosition(element)}this.show=openTooltip;this.hide=closeTooltip;this.cancel=cancelTimer;this.resetPosition=repositionTooltip}function PlacementCalculator(){function computePlacementCoords(element,placement,tipWidth,tipHeight,offset){var placementBase=placement.split("-")[0],coords=new CSSCoordinates,position;if(isSvgElement(element)){position=getSvgPlacement(element,placementBase)}else{position=getHtmlPlacement(element,placementBase)}switch(placement){case"n":coords.set("left",position.left-tipWidth/2);coords.set("bottom",session.windowHeight-position.top+offset);break;case"e":coords.set("left",position.left+offset);coords.set("top",position.top-tipHeight/2);break;case"s":coords.set("left",position.left-tipWidth/2);coords.set("top",position.top+offset);break;case"w":coords.set("top",position.top-tipHeight/2);coords.set("right",session.windowWidth-position.left+offset);break;case"nw":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"nw-alt":coords.set("left",position.left);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne":coords.set("left",position.left-20);coords.set("bottom",session.windowHeight-position.top+offset);break;case"ne-alt":coords.set("bottom",session.windowHeight-position.top+offset);coords.set("right",session.windowWidth-position.left);break;case"sw":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left-20);break;case"sw-alt":coords.set("left",position.left);coords.set("top",position.top+offset);break;case"se":coords.set("left",position.left-20);coords.set("top",position.top+offset);break;case"se-alt":coords.set("top",position.top+offset);coords.set("right",session.windowWidth-position.left);break}return coords}function getHtmlPlacement(element,placement){var objectOffset=element.offset(),objectWidth=element.outerWidth(),objectHeight=element.outerHeight(),left,top;switch(placement){case"n":left=objectOffset.left+objectWidth/2;top=objectOffset.top;break;case"e":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight/2;break;case"s":left=objectOffset.left+objectWidth/2;top=objectOffset.top+objectHeight;break;case"w":left=objectOffset.left;top=objectOffset.top+objectHeight/2;break;case"nw":left=objectOffset.left;top=objectOffset.top;break;case"ne":left=objectOffset.left+objectWidth;top=objectOffset.top;break;case"sw":left=objectOffset.left;top=objectOffset.top+objectHeight;break;case"se":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight;break}return{top:top,left:left}}function getSvgPlacement(element,placement){var svgElement=element.closest("svg")[0],domElement=element[0],point=svgElement.createSVGPoint(),boundingBox=domElement.getBBox(),matrix=domElement.getScreenCTM(),halfWidth=boundingBox.width/2,halfHeight=boundingBox.height/2,placements=[],placementKeys=["nw","n","ne","e","se","s","sw","w"],coords,rotation,steps,x;function pushPlacement(){placements.push(point.matrixTransform(matrix))}point.x=boundingBox.x;point.y=boundingBox.y;pushPlacement();point.x+=halfWidth;pushPlacement();point.x+=halfWidth;pushPlacement();point.y+=halfHeight;pushPlacement();point.y+=halfHeight;pushPlacement();point.x-=halfWidth;pushPlacement();point.x-=halfWidth;pushPlacement();point.y-=halfHeight;pushPlacement();if(placements[0].y!==placements[1].y||placements[0].x!==placements[7].x){rotation=Math.atan2(matrix.b,matrix.a)*RAD2DEG;steps=Math.ceil((rotation%360-22.5)/45);if(steps<1){steps+=8}while(steps--){placementKeys.push(placementKeys.shift())}}for(x=0;x<placements.length;x++){if(placementKeys[x]===placement){coords=placements[x];break}}return{top:coords.y+session.scrollTop,left:coords.x+session.scrollLeft}}this.compute=computePlacementCoords}function TooltipController(options){var placementCalculator=new PlacementCalculator,tipElement=$("#"+options.popupId);if(tipElement.length===0){tipElement=$("<div/>",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.top<viewportTop||Math.abs(coords.bottom-session.windowHeight)-elementHeight<viewportTop){collisions|=Collision.top}if(coords.top+elementHeight>viewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.left<viewportLeft||coords.right+elementWidth>viewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right<viewportLeft){collisions|=Collision.right}return collisions}function countFlags(value){var count=0;while(value){value&=value-1;count++}return count}return $.powerTip});/*!
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js-24- * jQuery UI Touch Punch 0.2.3
##############################################
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js-34- * http://www.smartmenus.org/
chromium-84.0.4147.105/third_party/vulkan_memory_allocator/docs/html/jquery.js:35: * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$});
##############################################
chromium-84.0.4147.105/third_party/pymock/mock.py-668-                # XXXX should we get the attribute without triggering code
chromium-84.0.4147.105/third_party/pymock/mock.py:669:                # execution?
chromium-84.0.4147.105/third_party/pymock/mock.py-670-                wraps = getattr(self._mock_wraps, name)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-422-# These constants define the current inline assembly state
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:423:_NO_ASM = 0       # Outside of inline assembly block
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:424:_INSIDE_ASM = 1   # Inside inline assembly block
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:425:_END_ASM = 2      # Last line of inline assembly block
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:426:_BLOCK_ASM = 3    # The whole block is an inline assembly block
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-427-
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-428-# Match start of assembly blocks
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:429:_MATCH_ASM = re.compile(r'^\s*(?:asm|_asm|__asm|__asm__)'
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-430-                        r'(?:\s+(volatile|__volatile__))?'
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1649-    self.open_parentheses = 0
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:1650:    self.inline_asm = _NO_ASM
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1651-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1914-      # Also check if we are starting or ending an inline assembly block.
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:1915:      if inner_block.inline_asm in (_NO_ASM, _END_ASM):
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1916-        if (depth_change != 0 and
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1919-          # Enter assembly block
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:1920:          inner_block.inline_asm = _INSIDE_ASM
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1921-        else:
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1922-          # Not entering assembly block.  If previous line was _END_ASM,
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:1923:          # we will now shift to _NO_ASM state.
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:1924:          inner_block.inline_asm = _NO_ASM
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:1925:      elif (inner_block.inline_asm == _INSIDE_ASM and
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1926-            inner_block.open_parentheses == 0):
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1927-        # Exit assembly block
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:1928:        inner_block.inline_asm = _END_ASM
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-1929-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-2029-          if _MATCH_ASM.match(line):
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:2030:            self.stack[-1].inline_asm = _BLOCK_ASM
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-2031-      elif token == ';' or token == ')':
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-4514-  nesting_state.Update(filename, clean_lines, line, error)
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py:4515:  if nesting_state.stack and nesting_state.stack[-1].inline_asm != _NO_ASM:
chromium-84.0.4147.105/third_party/libaom/source/libaom/tools/cpplint.py-4516-    return
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/av1/encoder/hash_motion.c-21-#define kBlockSizeBits 3
chromium-84.0.4147.105/third_party/libaom/source/libaom/av1/encoder/hash_motion.c:22:#define kMaxAddr (1 << (kSrcBits + kBlockSizeBits))
chromium-84.0.4147.105/third_party/libaom/source/libaom/av1/encoder/hash_motion.c-23-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12extend.c-210-#if CONFIG_AV1_HIGHBITDEPTH
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12extend.c:211:static void memcpy_short_addr(uint8_t *dst8, const uint8_t *src8, int num) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12extend.c-212-  uint16_t *dst = CONVERT_TO_SHORTPTR(dst8);
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12extend.c-241-      for (int row = 0; row < src_bc->heights[is_uv]; ++row) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12extend.c:242:        memcpy_short_addr(plane_dst, plane_src, src_bc->widths[is_uv]);
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12extend.c-243-        plane_src += src_bc->strides[is_uv];
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c-88-
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c:89:      ybf->buffer_alloc = (uint8_t *)aom_align_addr(fb->data, 32);
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c-90-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c-143-
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c:144:    ybf->y_buffer = (uint8_t *)aom_align_addr(
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c-145-        buf + (border * y_stride) + border, aom_byte_align);
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c:146:    ybf->u_buffer = (uint8_t *)aom_align_addr(
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c-147-        buf + yplane_size + (uv_border_h * uv_stride) + uv_border_w,
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c-149-    ybf->v_buffer =
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c:150:        (uint8_t *)aom_align_addr(buf + yplane_size + uvplane_size +
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_scale/generic/yv12config.c-151-                                      (uv_border_h * uv_stride) + uv_border_w,
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/README.md-50- 4. For x86 targets, [yasm](http://yasm.tortall.net/), which is preferred, or a
chromium-84.0.4147.105/third_party/libaom/source/libaom/README.md:51:    recent version of [nasm](http://www.nasm.us/). If you download yasm with
chromium-84.0.4147.105/third_party/libaom/source/libaom/README.md-52-    the intention to work with Visual Studio, please download win32.exe or
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/compiler_flags.cmake-17-include(CheckCXXCompilerFlag)
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/compiler_flags.cmake:18:include("${AOM_ROOT}/build/cmake/compiler_tests.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/compiler_flags.cmake-19-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/armv7-ios.cmake-24-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/armv7-ios.cmake:25:include("${CMAKE_CURRENT_LIST_DIR}/arm-ios-common.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/armv7-ios.cmake-26-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/arm64-android-clang.cmake-39-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/arm64-android-clang.cmake:40:include("${AOM_ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/arm64-android-clang.cmake-41-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/armv7s-ios.cmake-24-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/armv7s-ios.cmake:25:include("${CMAKE_CURRENT_LIST_DIR}/arm-ios-common.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/armv7s-ios.cmake-26-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/arm64-ios.cmake-22-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/arm64-ios.cmake:23:include("${CMAKE_CURRENT_LIST_DIR}/arm-ios-common.cmake")
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/x86-ios-simulator.cmake-27-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/x86-ios-simulator.cmake:28:include("${CMAKE_CURRENT_LIST_DIR}/ios-simulator-common.cmake")
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/x86_64-ios-simulator.cmake-24-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/toolchains/x86_64-ios-simulator.cmake:25:include("${CMAKE_CURRENT_LIST_DIR}/ios-simulator-common.cmake")
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/generate_exports.cmake-21-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/generate_exports.cmake:22:include("${AOM_ROOT}/build/cmake/exports_sources.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/generate_exports.cmake-23-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-15-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake:16:include("${AOM_ROOT}/build/cmake/util.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-17-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-124-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake:125:# Adds library target named $lib_name for ASM files in variable named by
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-126-# $asm_sources. Builds an output directory path from $lib_name. Links $lib_name
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-151-                       DEPENDS "${asm_source}"
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake:152:                       COMMENT "Building ASM object ${asm_object}"
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-153-                       WORKING_DIRECTORY "${AOM_CONFIG_DIR}"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-160-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake:161:  # The above created a target containing only ASM sources. Cmake needs help
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-162-  # here to determine the linker language. Add a dummy C file to force the
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-172-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake:173:# Terminates generation if nasm found in PATH does not meet requirements.
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_optimization.cmake-174-# Currently checks only for presence of required object formats and support for
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_config_defaults.cmake-10-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_config_defaults.cmake:11:include("${AOM_ROOT}/build/cmake/util.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_config_defaults.cmake-12-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_config_defaults.cmake-153-  "Enables running tests within IDEs like Visual Studio and Xcode." OFF)
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_config_defaults.cmake:154:set_aom_option_var(ENABLE_NASM "Use nasm instead of yasm for x86 assembly." OFF)
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_config_defaults.cmake-155-set_aom_option_var(ENABLE_TESTDATA "Enables unit test data download targets."
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/pkg_config.cmake-23-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/pkg_config.cmake:24:include("${AOM_ROOT}/build/cmake/util.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/pkg_config.cmake-25-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/generate_aom_config_templates.cmake-70-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/generate_aom_config_templates.cmake:71:include("${AOM_ROOT}/build/cmake/aom_config_defaults.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/generate_aom_config_templates.cmake-72-list(APPEND aom_build_vars ${AOM_DETECT_VARS} ${AOM_CONFIG_VARS})
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/sanitizers.cmake-19-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/sanitizers.cmake:20:include("${AOM_ROOT}/build/cmake/compiler_flags.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/sanitizers.cmake-21-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/version.cmake-21-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/version.cmake:22:include("${AOM_ROOT}/build/cmake/util.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/version.cmake-23-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/exports.cmake-15-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/exports.cmake:16:include("${AOM_ROOT}/build/cmake/exports_sources.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/exports.cmake-17-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-19-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:20:include("${AOM_ROOT}/build/cmake/aom_config_defaults.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:21:include("${AOM_ROOT}/build/cmake/aom_experiment_deps.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:22:include("${AOM_ROOT}/build/cmake/aom_optimization.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:23:include("${AOM_ROOT}/build/cmake/compiler_flags.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:24:include("${AOM_ROOT}/build/cmake/compiler_tests.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:25:include("${AOM_ROOT}/build/cmake/util.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-26-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-132-if("${AOM_TARGET_CPU}" STREQUAL "x86" OR "${AOM_TARGET_CPU}" STREQUAL "x86_64")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:133:  find_program(AS_EXECUTABLE yasm $ENV{YASM_PATH})
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-134-  if(NOT AS_EXECUTABLE OR ENABLE_NASM)
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-135-    unset(AS_EXECUTABLE CACHE)
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:136:    find_program(AS_EXECUTABLE nasm $ENV{NASM_PATH})
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-137-    if(AS_EXECUTABLE)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-181-  find_package(wxWidgets REQUIRED adv base core)
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:182:  include(${wxWidgets_USE_FILE})
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-183-endif()
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-233-
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake:234:include("${AOM_ROOT}/build/cmake/cpu.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/build/cmake/aom_configure.cmake-235-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_mem/aom_mem.h-41-/*returns an addr aligned to the byte boundary specified by align*/
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_mem/aom_mem.h:42:#define aom_align_addr(addr, align) \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_mem/aom_mem.h-43-  (void *)(((uintptr_t)(addr) + ((align)-1)) & ~(uintptr_t)((align)-1))
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_mem/aom_mem.c-56-  if (addr) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_mem/aom_mem.c:57:    x = aom_align_addr((unsigned char *)addr + ADDRESS_STORAGE_SIZE, align);
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_mem/aom_mem.c-58-    SetActualMallocAddress(x, addr);
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom/src/aom_image.c-131-      if (img->img_data) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom/src/aom_image.c:132:        img->img_data = (uint8_t *)aom_align_addr(img->img_data, buf_align);
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom/src/aom_image.c-133-      }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/.gitattributes-3-*.[ch]xx     filter=fixtabswsp
chromium-84.0.4147.105/third_party/libaom/source/libaom/.gitattributes:4:*.asm        filter=fixtabswsp
chromium-84.0.4147.105/third_party/libaom/source/libaom/.gitattributes-5-*.php        filter=fixtabswsp
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/avg_test.cc-141-
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/avg_test.cc:142:// Params: height, asm function, c function.
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/avg_test.cc-143-typedef std::tuple<int, IntProRowFunc, IntProRowFunc> IntProRowParam;
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/avg_test.cc-190-
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/avg_test.cc:191:// Params: width, asm function, c function.
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/avg_test.cc-192-typedef std::tuple<int, IntProColFunc, IntProColFunc> IntProColParam;
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/test.cmake-18-
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/test.cmake:19:include("${AOM_ROOT}/test/test_data_util.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/test.cmake-20-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/test_data_download_worker.cmake-10-#
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/test_data_download_worker.cmake:11:include("${AOM_ROOT}/test/test_data_util.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/test/test_data_download_worker.cmake-12-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/arm_cpudetect.c-71-  mask = arm_cpu_env_mask();
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/arm_cpudetect.c:72:/* MSVC has no inline __asm support for ARM, but it does let you __emit
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/arm_cpudetect.c-73- *  instructions via their assembled hex code.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-64-#define cpuid(func, func2, ax, bx, cx, dx)     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:65:  asm volatile(                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-66-      "xchg %rsi, %rbx \n\t"                   \
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-73-#define cpuid(func, func2, ax, bx, cx, dx)     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:74:  asm volatile(                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-75-      "pushl %ebx       \n\t"                  \
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-107-#define cpuid(func, func2, a, b, c, d) \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:108:  __asm mov eax, func                  \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:109:  __asm mov ecx, func2                 \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:110:  __asm cpuid                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:111:  __asm mov a, eax                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:112:  __asm mov b, ebx                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:113:  __asm mov c, ecx                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:114:  __asm mov d, edx
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-115-#endif
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-136-  uint32_t eax_, edx_;
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:137:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-138-    xor ecx, ecx  // ecx = 0
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-139-    // Use the raw opcode for xgetbv for compatibility with older toolchains.
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:140:    __asm _emit 0x0f __asm _emit 0x01 __asm _emit 0xd0
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-141-    mov eax_, eax
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-251-  unsigned int tsc;
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:252:  asm volatile("rdtsc\n\t" : "=a"(tsc) :);
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-253-  return tsc;
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-257-#else
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:258:  __asm rdtsc;
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-259-#endif
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-269-  uint_t hi, lo;
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:270:  asm volatile("rdtsc\n\t" : "=a"(lo), "=d"(hi));
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-271-  return ((uint64_t)hi << 32) | lo;
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-275-#else
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:276:  __asm rdtsc;
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-277-#endif
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-288-  unsigned int tscp;
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:289:  asm volatile("rdtscp\n\t" : "=a"(tscp) :);
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-290-  return tscp;
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-297-#else
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:298:  __asm rdtscp;
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-299-#endif
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-318-#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:319:#define x86_pause_hint() asm volatile("pause \n\t")
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-320-#else
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-323-#else
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:324:#define x86_pause_hint() __asm pause
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-325-#endif
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-338-static void x87_set_control_word(unsigned short mode) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:339:  asm volatile("fldcw %0" : : "m"(*&mode));
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-340-}
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-342-  unsigned short mode;
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:343:  asm volatile("fstcw %0\n\t" : "=m"(*&mode) :);
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-344-  return mode;
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-346-#elif ARCH_X86_64
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:347:/* No fldcw intrinsics on Windows x64, punt to external asm */
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-348-extern void aom_winx64_fldcw(unsigned short mode);
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-353-static void x87_set_control_word(unsigned short mode) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:354:  __asm { fldcw mode }
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-355-}
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-357-  unsigned short mode;
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h:358:  __asm { fstcw mode }
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86.h-359-  return mode;
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm-85-; Set LIBAOM_YASM_WIN64 if output is Windows 64bit so the code will work if x64
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm:86:; or win64 is defined on the Yasm command line.
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm-87-%ifidn __OUTPUT_FORMAT__,win64
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm-138-;   http://www.tortall.net/projects/yasm/ticket/236
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm:139:; or nasm > 2.14.
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm-140-;
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm-143-    %if __NASM_VERSION_ID__ < 0x020e0000 ; 2.14
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm:144:      ; nasm < 2.14 does not support :private_extern directive
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm:145:      %fatal Must use nasm 2.14 or newer
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm-146-    %endif
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm-202-; The Microsoft assembler tries to impose a certain amount of type safety in
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm:203:; its register usage. YASM doesn't recognize these directives, so we just
chromium-84.0.4147.105/third_party/libaom/source/libaom/aom_ports/x86_abi_support.asm-204-; %define them away to maintain as much compatibility as possible with the
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt-34-
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:35:include("${AOM_ROOT}/build/cmake/aom_configure.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:36:include("${AOM_ROOT}/aom_dsp/aom_dsp.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:37:include("${AOM_ROOT}/aom_mem/aom_mem.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:38:include("${AOM_ROOT}/aom_ports/aom_ports.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:39:include("${AOM_ROOT}/aom_scale/aom_scale.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:40:include("${AOM_ROOT}/aom_util/aom_util.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:41:include("${AOM_ROOT}/av1/av1.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:42:include("${AOM_ROOT}/build/cmake/aom_install.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:43:include("${AOM_ROOT}/build/cmake/sanitizers.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:44:include("${AOM_ROOT}/build/cmake/util.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:45:include("${AOM_ROOT}/test/test.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt-46-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt-615-if(BUILD_SHARED_LIBS)
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:616:  include("${AOM_ROOT}/build/cmake/exports.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt-617-  setup_exports_target()
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt-627-  if(DOXYGEN_FOUND)
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt:628:    include("${AOM_ROOT}/docs.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/CMakeLists.txt-629-    setup_documentation_targets()
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_win.cc-25-                        uint8* dst, int dst_stride, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_win.cc:26:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_win.cc-27-    push      edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_win.cc-118-                         int w) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_win.cc:119:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_win.cc-120-    push      ebx
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-326-void J400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:327:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-328-    mov        eax, [esp + 4]        // src_y
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-355-void J400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:356:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-357-    mov         eax, [esp + 4]        // src_y
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-385-void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:386:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-387-    mov       eax, [esp + 4]   // src_rgb24
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-424-                        int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:425:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-426-    mov       eax, [esp + 4]   // src_raw
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-470-                          int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:471:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-472-    mov       eax, 0x01080108  // generate multiplier to repeat 5 bits
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-526-                          int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:527:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-528-    mov        eax, 0x01080108  // generate multiplier to repeat 5 bits
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-577-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:578:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-579-    mov        eax, 0x01080108  // generate multiplier to repeat 5 bits
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-629-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:630:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-631-    mov       eax,  0x0f0f0f0f  // generate mask 0x0f0f0f0f
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-667-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:668:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-669-    mov       eax, 0x01080108  // generate multiplier to repeat 5 bits
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-720-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:721:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-722-    mov       eax, 0x0f0f0f0f  // generate mask 0x0f0f0f0f
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-757-void ARGBToRGB24Row_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:758:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-759-    mov       eax, [esp + 4]   // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-795-void ARGBToRAWRow_SSSE3(const uint8* src_argb, uint8* dst_rgb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:796:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-797-    mov       eax, [esp + 4]   // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-834-void ARGBToRGB565Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:835:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-836-    mov       eax, [esp + 4]   // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-873-                                const uint32 dither4, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:874:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-875-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-919-                                const uint32 dither4, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:920:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-921-    mov        eax, [esp + 4]      // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-961-void ARGBToARGB1555Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:962:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-963-    mov       eax, [esp + 4]   // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1002-void ARGBToARGB4444Row_SSE2(const uint8* src_argb, uint8* dst_rgb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1003:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1004-    mov       eax, [esp + 4]   // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1032-void ARGBToRGB565Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1033:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1034-    mov        eax, [esp + 4]      // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1069-void ARGBToARGB1555Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1070:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1071-    mov        eax, [esp + 4]      // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1109-void ARGBToARGB4444Row_AVX2(const uint8* src_argb, uint8* dst_rgb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1110:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1111-    mov        eax, [esp + 4]   // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1140-void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1141:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1142-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1175-void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1176:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1177-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1216-void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1217:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1218-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1255-void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1256:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1257-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1294-void BGRAToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1295:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1296-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1327-void ABGRToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1328:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1329-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1360-void RGBAToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1361:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1362-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1394-                       uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1395:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1396-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1464-                        uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1465:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1466-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1536-                      uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1537:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1538-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1601-                          uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1602:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1603-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1658-                          uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1659:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1660-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1716-                       uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1717:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1718-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1786-                       uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1787:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1788-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1856-                       uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1857:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1858-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1925-// Read 16 UV from 444
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1926:#define READYUV444_AVX2 __asm {                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1927:    __asm vmovdqu    xmm0, [esi]                  /* U */         /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1928:    __asm vmovdqu    xmm1, [esi + edi]            /* V */         /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1929:    __asm lea        esi,  [esi + 16]                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1930:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1931:    __asm vpermq     ymm1, ymm1, 0xd8                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1932:    __asm vpunpcklbw ymm0, ymm0, ymm1             /* UV */                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1933-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1935-// Read 8 UV from 422, upsample to 16 UV.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1936:#define READYUV422_AVX2 __asm {                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1937:    __asm vmovq      xmm0, qword ptr [esi]        /* U */         /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1938:    __asm vmovq      xmm1, qword ptr [esi + edi]  /* V */         /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1939:    __asm lea        esi,  [esi + 8]                                           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1940:    __asm vpunpcklbw ymm0, ymm0, ymm1             /* UV */                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1941:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1942:    __asm vpunpcklwd ymm0, ymm0, ymm0             /* UVUV (upsample) */        \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1943-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1945-// Read 4 UV from 411, upsample to 16 UV.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1946:#define READYUV411_AVX2 __asm {                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1947:    __asm vmovd      xmm0, dword ptr [esi]        /* U */         /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1948:    __asm vmovd      xmm1, dword ptr [esi + edi]  /* V */         /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1949:    __asm lea        esi,  [esi + 4]                                           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1950:    __asm vpunpcklbw ymm0, ymm0, ymm1             /* UV */                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1951:    __asm vpunpcklwd ymm0, ymm0, ymm0             /* UVUV (upsample) */        \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1952:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1953:    __asm vpunpckldq ymm0, ymm0, ymm0             /* UVUVUVUV (upsample) */    \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1954-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1956-// Read 8 UV from NV12, upsample to 16 UV.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1957:#define READNV12_AVX2 __asm {                                                  \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1958:    __asm vmovdqu    xmm0, [esi]                  /* UV */                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1959:    __asm lea        esi,  [esi + 16]                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1960:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1961:    __asm vpunpcklwd ymm0, ymm0, ymm0             /* UVUV (upsample) */        \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1962-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1964-// Convert 16 pixels: 16 UV and 16 Y.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1965:#define YUVTORGB_AVX2(YuvConstants) __asm {                                    \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1966-    /* Step 1: Find 8 UV contributions to 16 R,G,B values */                   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1967:    __asm vpmaddubsw ymm2, ymm0, YuvConstants.kUVToR        /* scale R UV */   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1968:    __asm vpmaddubsw ymm1, ymm0, YuvConstants.kUVToG        /* scale G UV */   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1969:    __asm vpmaddubsw ymm0, ymm0, YuvConstants.kUVToB        /* scale B UV */   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1970:    __asm vmovdqu    ymm3, YuvConstants.kUVBiasR                               \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1971:    __asm vpsubw     ymm2, ymm3, ymm2                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1972:    __asm vmovdqu    ymm3, YuvConstants.kUVBiasG                               \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1973:    __asm vpsubw     ymm1, ymm3, ymm1                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1974:    __asm vmovdqu    ymm3, YuvConstants.kUVBiasB                               \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1975:    __asm vpsubw     ymm0, ymm3, ymm0                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1976-    /* Step 2: Find Y contribution to 16 R,G,B values */                       \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1977:    __asm vmovdqu    xmm3, [eax]                  /* NOLINT */                 \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1978:    __asm lea        eax, [eax + 16]                                           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1979:    __asm vpermq     ymm3, ymm3, 0xd8                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1980:    __asm vpunpcklbw ymm3, ymm3, ymm3                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1981:    __asm vpmulhuw   ymm3, ymm3, YuvConstants.kYToRgb                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1982:    __asm vpaddsw    ymm0, ymm0, ymm3           /* B += Y */                   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1983:    __asm vpaddsw    ymm1, ymm1, ymm3           /* G += Y */                   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1984:    __asm vpaddsw    ymm2, ymm2, ymm3           /* R += Y */                   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1985:    __asm vpsraw     ymm0, ymm0, 6                                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1986:    __asm vpsraw     ymm1, ymm1, 6                                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1987:    __asm vpsraw     ymm2, ymm2, 6                                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1988:    __asm vpackuswb  ymm0, ymm0, ymm0           /* B */                        \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1989:    __asm vpackuswb  ymm1, ymm1, ymm1           /* G */                        \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1990:    __asm vpackuswb  ymm2, ymm2, ymm2           /* R */                        \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1991-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1993-// Store 16 ARGB values.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1994:#define STOREARGB_AVX2 __asm {                                                 \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-1995-    /* Step 3: Weave into ARGB */                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1996:    __asm vpunpcklbw ymm0, ymm0, ymm1           /* BG */                       \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1997:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1998:    __asm vpunpcklbw ymm2, ymm2, ymm5           /* RA */                       \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:1999:    __asm vpermq     ymm2, ymm2, 0xd8                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2000:    __asm vpunpcklwd ymm1, ymm0, ymm2           /* BGRA first 8 pixels */      \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2001:    __asm vpunpckhwd ymm0, ymm0, ymm2           /* BGRA next 8 pixels */       \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2002:    __asm vmovdqu    0[edx], ymm1                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2003:    __asm vmovdqu    32[edx], ymm0                                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2004:    __asm lea        edx,  [edx + 64]                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2005-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2015-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2016:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2017-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2051-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2052:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2053-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2087-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2088:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2089-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2123-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2124:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2125-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2158-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2159:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2160-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2189-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2190:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2191-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2222-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2223:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2224-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2268-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2269:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2270-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2314-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2315:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2316-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2354-// Read 8 UV from 444.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2355:#define READYUV444 __asm {                                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2356:    __asm movq       xmm0, qword ptr [esi] /* U */                /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2357:    __asm movq       xmm1, qword ptr [esi + edi] /* V */          /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2358:    __asm lea        esi,  [esi + 8]                                           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2359:    __asm punpcklbw  xmm0, xmm1           /* UV */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2360-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2362-// Read 4 UV from 422, upsample to 8 UV.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2363:#define READYUV422 __asm {                                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2364:    __asm movd       xmm0, [esi]          /* U */                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2365:    __asm movd       xmm1, [esi + edi]    /* V */                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2366:    __asm lea        esi,  [esi + 4]                                           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2367:    __asm punpcklbw  xmm0, xmm1           /* UV */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2368:    __asm punpcklwd  xmm0, xmm0           /* UVUV (upsample) */                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2369-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2371-// Read 2 UV from 411, upsample to 8 UV.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2372:#define READYUV411 __asm {                                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2373:    __asm movzx      ebx, word ptr [esi]        /* U */           /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2374:    __asm movd       xmm0, ebx                                                 \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2375:    __asm movzx      ebx, word ptr [esi + edi]  /* V */           /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2376:    __asm movd       xmm1, ebx                                                 \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2377:    __asm lea        esi,  [esi + 2]                                           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2378:    __asm punpcklbw  xmm0, xmm1           /* UV */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2379:    __asm punpcklwd  xmm0, xmm0           /* UVUV (upsample) */                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2380:    __asm punpckldq  xmm0, xmm0           /* UVUVUVUV (upsample) */            \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2381-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2383-// Read 4 UV from NV12, upsample to 8 UV.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2384:#define READNV12 __asm {                                                       \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2385:    __asm movq       xmm0, qword ptr [esi] /* UV */               /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2386:    __asm lea        esi,  [esi + 8]                                           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2387:    __asm punpcklwd  xmm0, xmm0           /* UVUV (upsample) */                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2388-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2390-// Convert 8 pixels: 8 UV and 8 Y.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2391:#define YUVTORGB(YuvConstants) __asm {                                         \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2392-    /* Step 1: Find 4 UV contributions to 8 R,G,B values */                    \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2393:    __asm movdqa     xmm1, xmm0                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2394:    __asm movdqa     xmm2, xmm0                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2395:    __asm movdqa     xmm3, xmm0                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2396:    __asm movdqa     xmm0, YuvConstants.kUVBiasB /* unbias back to signed */   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2397:    __asm pmaddubsw  xmm1, YuvConstants.kUVToB   /* scale B UV */              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2398:    __asm psubw      xmm0, xmm1                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2399:    __asm movdqa     xmm1, YuvConstants.kUVBiasG                               \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2400:    __asm pmaddubsw  xmm2, YuvConstants.kUVToG   /* scale G UV */              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2401:    __asm psubw      xmm1, xmm2                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2402:    __asm movdqa     xmm2, YuvConstants.kUVBiasR                               \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2403:    __asm pmaddubsw  xmm3, YuvConstants.kUVToR   /* scale R UV */              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2404:    __asm psubw      xmm2, xmm3                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2405-    /* Step 2: Find Y contribution to 8 R,G,B values */                        \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2406:    __asm movq       xmm3, qword ptr [eax]                        /* NOLINT */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2407:    __asm lea        eax, [eax + 8]                                            \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2408:    __asm punpcklbw  xmm3, xmm3                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2409:    __asm pmulhuw    xmm3, YuvConstants.kYToRgb                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2410:    __asm paddsw     xmm0, xmm3           /* B += Y */                         \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2411:    __asm paddsw     xmm1, xmm3           /* G += Y */                         \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2412:    __asm paddsw     xmm2, xmm3           /* R += Y */                         \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2413:    __asm psraw      xmm0, 6                                                   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2414:    __asm psraw      xmm1, 6                                                   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2415:    __asm psraw      xmm2, 6                                                   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2416:    __asm packuswb   xmm0, xmm0           /* B */                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2417:    __asm packuswb   xmm1, xmm1           /* G */                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2418:    __asm packuswb   xmm2, xmm2           /* R */                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2419-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2421-// Store 8 ARGB values.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2422:#define STOREARGB __asm {                                                      \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2423-    /* Step 3: Weave into ARGB */                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2424:    __asm punpcklbw  xmm0, xmm1           /* BG */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2425:    __asm punpcklbw  xmm2, xmm5           /* RA */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2426:    __asm movdqa     xmm1, xmm0                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2427:    __asm punpcklwd  xmm0, xmm2           /* BGRA first 4 pixels */            \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2428:    __asm punpckhwd  xmm1, xmm2           /* BGRA next 4 pixels */             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2429:    __asm movdqu     0[edx], xmm0                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2430:    __asm movdqu     16[edx], xmm1                                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2431:    __asm lea        edx,  [edx + 32]                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2432-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2434-// Store 8 BGRA values.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2435:#define STOREBGRA __asm {                                                      \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2436-    /* Step 3: Weave into BGRA */                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2437:    __asm pcmpeqb    xmm5, xmm5           /* generate 0xffffffff for alpha */  \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2438:    __asm punpcklbw  xmm1, xmm0           /* GB */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2439:    __asm punpcklbw  xmm5, xmm2           /* AR */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2440:    __asm movdqa     xmm0, xmm5                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2441:    __asm punpcklwd  xmm5, xmm1           /* BGRA first 4 pixels */            \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2442:    __asm punpckhwd  xmm0, xmm1           /* BGRA next 4 pixels */             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2443:    __asm movdqu     0[edx], xmm5                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2444:    __asm movdqu     16[edx], xmm0                                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2445:    __asm lea        edx,  [edx + 32]                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2446-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2448-// Store 8 ABGR values.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2449:#define STOREABGR __asm {                                                      \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2450-    /* Step 3: Weave into ABGR */                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2451:    __asm punpcklbw  xmm2, xmm1           /* RG */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2452:    __asm punpcklbw  xmm0, xmm5           /* BA */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2453:    __asm movdqa     xmm1, xmm2                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2454:    __asm punpcklwd  xmm2, xmm0           /* RGBA first 4 pixels */            \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2455:    __asm punpckhwd  xmm1, xmm0           /* RGBA next 4 pixels */             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2456:    __asm movdqu     0[edx], xmm2                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2457:    __asm movdqu     16[edx], xmm1                                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2458:    __asm lea        edx,  [edx + 32]                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2459-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2461-// Store 8 RGBA values.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2462:#define STORERGBA __asm {                                                      \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2463-    /* Step 3: Weave into RGBA */                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2464:    __asm pcmpeqb    xmm5, xmm5           /* generate 0xffffffff for alpha */  \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2465:    __asm punpcklbw  xmm1, xmm2           /* GR */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2466:    __asm punpcklbw  xmm5, xmm0           /* AB */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2467:    __asm movdqa     xmm0, xmm5                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2468:    __asm punpcklwd  xmm5, xmm1           /* RGBA first 4 pixels */            \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2469:    __asm punpckhwd  xmm0, xmm1           /* RGBA next 4 pixels */             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2470:    __asm movdqu     0[edx], xmm5                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2471:    __asm movdqu     16[edx], xmm0                                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2472:    __asm lea        edx,  [edx + 32]                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2473-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2475-// Store 8 RGB24 values.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2476:#define STORERGB24 __asm {                                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2477-    /* Step 3: Weave into RRGB */                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2478:    __asm punpcklbw  xmm0, xmm1           /* BG */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2479:    __asm punpcklbw  xmm2, xmm2           /* RR */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2480:    __asm movdqa     xmm1, xmm0                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2481:    __asm punpcklwd  xmm0, xmm2           /* BGRR first 4 pixels */            \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2482:    __asm punpckhwd  xmm1, xmm2           /* BGRR next 4 pixels */             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2483-    /* Step 4: RRGB -> RGB24 */                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2484:    __asm pshufb     xmm0, xmm5           /* Pack first 8 and last 4 bytes. */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2485:    __asm pshufb     xmm1, xmm6           /* Pack first 12 bytes. */           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2486:    __asm palignr    xmm1, xmm0, 12       /* last 4 bytes of xmm0 + 12 xmm1 */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2487:    __asm movq       qword ptr 0[edx], xmm0  /* First 8 bytes */               \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2488:    __asm movdqu     8[edx], xmm1         /* Last 16 bytes */                  \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2489:    __asm lea        edx,  [edx + 24]                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2490-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2492-// Store 8 RAW values.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2493:#define STORERAW __asm {                                                       \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2494-    /* Step 3: Weave into RRGB */                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2495:    __asm punpcklbw  xmm0, xmm1           /* BG */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2496:    __asm punpcklbw  xmm2, xmm2           /* RR */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2497:    __asm movdqa     xmm1, xmm0                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2498:    __asm punpcklwd  xmm0, xmm2           /* BGRR first 4 pixels */            \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2499:    __asm punpckhwd  xmm1, xmm2           /* BGRR next 4 pixels */             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2500-    /* Step 4: RRGB -> RAW */                                                  \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2501:    __asm pshufb     xmm0, xmm5           /* Pack first 8 and last 4 bytes. */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2502:    __asm pshufb     xmm1, xmm6           /* Pack first 12 bytes. */           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2503:    __asm palignr    xmm1, xmm0, 12       /* last 4 bytes of xmm0 + 12 xmm1 */ \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2504:    __asm movq       qword ptr 0[edx], xmm0  /* First 8 bytes */               \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2505:    __asm movdqu     8[edx], xmm1         /* Last 16 bytes */                  \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2506:    __asm lea        edx,  [edx + 24]                                          \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2507-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2509-// Store 8 RGB565 values.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2510:#define STORERGB565 __asm {                                                    \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2511-    /* Step 3: Weave into RRGB */                                              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2512:    __asm punpcklbw  xmm0, xmm1           /* BG */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2513:    __asm punpcklbw  xmm2, xmm2           /* RR */                             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2514:    __asm movdqa     xmm1, xmm0                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2515:    __asm punpcklwd  xmm0, xmm2           /* BGRR first 4 pixels */            \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2516:    __asm punpckhwd  xmm1, xmm2           /* BGRR next 4 pixels */             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2517-    /* Step 4: RRGB -> RGB565 */                                               \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2518:    __asm movdqa     xmm3, xmm0    /* B  first 4 pixels of argb */             \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2519:    __asm movdqa     xmm2, xmm0    /* G */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2520:    __asm pslld      xmm0, 8       /* R */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2521:    __asm psrld      xmm3, 3       /* B */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2522:    __asm psrld      xmm2, 5       /* G */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2523:    __asm psrad      xmm0, 16      /* R */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2524:    __asm pand       xmm3, xmm5    /* B */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2525:    __asm pand       xmm2, xmm6    /* G */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2526:    __asm pand       xmm0, xmm7    /* R */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2527:    __asm por        xmm3, xmm2    /* BG */                                    \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2528:    __asm por        xmm0, xmm3    /* BGR */                                   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2529:    __asm movdqa     xmm3, xmm1    /* B  next 4 pixels of argb */              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2530:    __asm movdqa     xmm2, xmm1    /* G */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2531:    __asm pslld      xmm1, 8       /* R */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2532:    __asm psrld      xmm3, 3       /* B */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2533:    __asm psrld      xmm2, 5       /* G */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2534:    __asm psrad      xmm1, 16      /* R */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2535:    __asm pand       xmm3, xmm5    /* B */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2536:    __asm pand       xmm2, xmm6    /* G */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2537:    __asm pand       xmm1, xmm7    /* R */                                     \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2538:    __asm por        xmm3, xmm2    /* BG */                                    \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2539:    __asm por        xmm1, xmm3    /* BGR */                                   \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2540:    __asm packssdw   xmm0, xmm1                                                \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2541:    __asm movdqu     0[edx], xmm0  /* store 8 pixels of RGB565 */              \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2542:    __asm lea        edx, [edx + 16]                                           \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2543-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2552-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2553:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2554-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2585-                          int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2586:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2587-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2619-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2620:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2621-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2653-                           int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2654:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2655-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2692-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2693:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2694-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2726-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2727:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2728-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2760-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2761:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2762-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2794-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2795:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2796-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2822-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2823:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2824-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2849-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2850:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2851-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2879-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2880:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2881-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2910-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2911:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2912-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2942-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2943:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2944-    mov        eax, 0x4a354a35      // 4a35 = 18997 = round(1.164 * 64 * 256)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2990-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:2991:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-2992-    mov        eax, 0x4a354a35      // 4a35 = 18997 = round(1.164 * 64 * 256)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3043-void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3044:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3045-    mov       eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3064-void MirrorRow_AVX2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3065:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3066-    mov       eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3087-void MirrorRow_SSE2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3088:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3089-    mov       eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3119-                       int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3120:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3121-    push      edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3148-void ARGBMirrorRow_SSE2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3149:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3150-    mov       eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3175-void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3176:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3177-    mov       eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3196-void SplitUVRow_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3197:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3198-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3234-void SplitUVRow_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3235:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3236-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3273-                     int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3274:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3275-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3304-                     int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3305:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3306-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3337-void CopyRow_SSE2(const uint8* src, uint8* dst, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3338:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3339-    mov        eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3360-void CopyRow_AVX(const uint8* src, uint8* dst, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3361:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3362-    mov        eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3384-void CopyRow_ERMS(const uint8* src, uint8* dst, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3385:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3386-    mov        eax, esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3401-void ARGBCopyAlphaRow_SSE2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3402:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3403-    mov        eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3437-void ARGBCopyAlphaRow_AVX2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3438:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3439-    mov        eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3466-void ARGBCopyYToAlphaRow_SSE2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3467:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3468-    mov        eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3504-void ARGBCopyYToAlphaRow_AVX2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3505:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3506-    mov        eax, [esp + 4]   // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3536-void SetRow_X86(uint8* dst, uint8 v8, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3537:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3538-    movzx      eax, byte ptr [esp + 8]    // v8
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3553-void SetRow_ERMS(uint8* dst, uint8 v8, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3554:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3555-    mov        edx, edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3567-void ARGBSetRow_X86(uint8* dst_argb, uint32 v32, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3568:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3569-    mov        edx, edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3583-                     uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3584:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3585-    mov        eax, [esp + 4]    // src_yuy2
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3610-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3611:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3612-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3654-                         uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3655:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3656-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3693-                     uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3694:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3695-    mov        eax, [esp + 4]    // src_uyvy
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3718-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3719:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3720-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3762-                         uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3763:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3764-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3803-                     uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3804:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3805-    mov        eax, [esp + 4]    // src_yuy2
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3828-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3829:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3830-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3871-                         uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3872:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3873-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3907-                     uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3908:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3909-    mov        eax, [esp + 4]    // src_uyvy
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3930-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3931:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3932-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3973-                         uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:3974:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-3975-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4012-                       uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4013:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4014-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4111-                        uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4112:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4113-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4193-void ARGBAttenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4194:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4195-    mov        eax, [esp + 4]   // src_argb0
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4242-void ARGBAttenuateRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4243:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4244-    mov        eax, [esp + 4]   // src_argb0
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4286-void ARGBAttenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4287:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4288-    mov        eax, [esp + 4]   // src_argb0
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4324-                             int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4325:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4326-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4378-                             int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4379:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4380-    mov        eax, [esp + 4]   // src_argb0
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4412-                             int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4413:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4414-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4478-void ARGBGrayRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4479:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4480-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4537-void ARGBSepiaRow_SSSE3(uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4538:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4539-    mov        eax, [esp + 4]   /* dst_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4595-                              const int8* matrix_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4596:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4597-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4656-                          int interval_offset, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4657:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4658-    mov        eax, [esp + 4]    /* dst_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4701-                       uint32 value) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4702:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4703-    mov        eax, [esp + 4]   // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4735-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4736:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4737-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4774-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4775:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4776-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4822-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4823:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4824-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4851-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4852:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4853-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4888-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4889:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4890-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4917-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4918:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4919-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4949-                    const uint8* src_y2, uint8* dst_sobelx, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:4950:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-4951-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5005-                    uint8* dst_sobely, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5006:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5007-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5058-                   uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5059:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5060-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5105-                          uint8* dst_y, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5106:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5107-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5138-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5139:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5140-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5195-                                    int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5196:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5197-    mov        eax, topleft  // eax topleft
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5341-                                  const int32* previous_cumsum, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5342:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5343-    mov        eax, row
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5426-                        uint8* dst_argb, const float* uv_dudv, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5427:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5428-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5511-                         int source_y_fraction) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5512:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5513-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5608-                          int source_y_fraction) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5609:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5610-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5709-                         int source_y_fraction) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5710:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5711-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5815-                          const uint8* shuffler, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5816:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5817-    mov        eax, [esp + 4]    // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5841-                         const uint8* shuffler, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5842:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5843-    mov        eax, [esp + 4]     // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5869-                         const uint8* shuffler, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5870:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5871-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5993-                        uint8* dst_frame, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:5994:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-5995-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6030-                        uint8* dst_frame, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:6031:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6032-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6067-                            int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:6068:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6069-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6126-                            int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:6127:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6128-    mov        eax, [esp + 4]   /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6165-                           int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:6166:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6167-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6198-void RGBColorTableRow_X86(uint8* dst_argb, const uint8* table_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:6199:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6200-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6231-                                 const uint8* luma, uint32 lumacoeff) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc:6232:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_win.cc-6233-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/mjpeg_validate.cc-27-const uint8* ScanRow_ERMS(const uint8* src, uint32 val, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/mjpeg_validate.cc:28:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/mjpeg_validate.cc-29-    mov        edx, edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_gcc.cc-22-  uint32 sse;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_gcc.cc:23:  asm volatile (  // NOLINT
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_gcc.cc-24-    "pxor      %%xmm0,%%xmm0                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_gcc.cc-93-  uint32 hash;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_gcc.cc:94:  asm volatile (  // NOLINT
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_gcc.cc-95-    "movd      %2,%%xmm0                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-100-                        uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:101:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-102-    mov        eax, [esp + 4]        // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-126-                              uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:127:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-128-    mov        eax, [esp + 4]        // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-162-                           uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:163:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-164-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-205-                        uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:206:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-207-    mov        eax, [esp + 4]        // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-233-                              uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:234:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-235-    mov         eax, [esp + 4]        // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-270-                           uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:271:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-272-    push        esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-312-                        uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:313:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-314-    mov        eax, [esp + 4]        // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-343-                           uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:344:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-345-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-403-                        uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:404:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-405-    mov         eax, [esp + 4]        // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-437-                           uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:438:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-439-    push        esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-496-                          uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:497:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-498-    mov        eax, [esp + 4]        // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-544-                                uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:545:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-546-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-601-                                uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:602:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-603-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-662-                          uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:663:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-664-    mov        eax, [esp + 4]        // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-694-                                uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:695:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-696-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-759-                                uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:760:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-761-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-802-void ScaleAddRow_SSE2(const uint8* src_ptr, uint16* dst_ptr, int src_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:803:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-804-    mov        eax, [esp + 4]   // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-832-void ScaleAddRow_AVX2(const uint8* src_ptr, uint16* dst_ptr, int src_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:833:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-834-    mov         eax, [esp + 4]   // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-863-                           int dst_width, int x, int dx) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:864:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-865-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-940-                       int dst_width, int x, int dx) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:941:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-942-    mov        edx, [esp + 4]    // dst_ptr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-966-                            uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:967:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-968-    mov        eax, [esp + 4]        // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-991-                                  uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:992:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-993-    mov        eax, [esp + 4]        // src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1019-                               uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:1020:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1021-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1053-                               uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:1054:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1055-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1090-                                  uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:1091:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1092-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1136-                        int dst_width, int x, int dx) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:1137:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1138-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1227-                               int dst_width, int x, int dx) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:1228:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1229-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1298-                           int dst_width, int x, int dx) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:1299:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1300-    mov        edx, [esp + 4]    // dst_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1322-int FixedDiv_X86(int num, int div) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:1323:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1324-    mov        eax, [esp + 4]    // num
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1335-int FixedDiv1_X86(int num, int div) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc:1336:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_win.cc-1337-    mov        eax, [esp + 4]    // num
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-24-uint32 SumSquareError_SSE2(const uint8* src_a, const uint8* src_b, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc:25:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-26-    mov        eax, [esp + 4]    // src_a
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-65-uint32 SumSquareError_AVX2(const uint8* src_a, const uint8* src_b, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc:66:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-67-    mov        eax, [esp + 4]    // src_a
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-134-// 83: 66 0F 38 40 CD     pmulld      xmm1,xmm5
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc:135:#define pmulld(reg) _asm _emit 0x66 _asm _emit 0x0F _asm _emit 0x38 \
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc:136:    _asm _emit 0x40 _asm _emit reg
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-137-
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-139-uint32 HashDjb2_SSE41(const uint8* src, int count, uint32 seed) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc:140:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-141-    mov        eax, [esp + 4]    // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-190-uint32 HashDjb2_AVX2(const uint8* src, int count, uint32 seed) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc:191:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_win.cc-192-    mov        eax, [esp + 4]    // src
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_x86.asm-12-%if __YASM_VERSION_ID__ < 01020000h
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_x86.asm:13:%error AVX2 is supported only by yasm 1.2.0 or later.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_x86.asm-14-%endif
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon.cc-30-  const uint8* src_temp = NULL;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon.cc:31:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon.cc-32-    // loops are on blocks of 8. loop will stop when
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon.cc-251-  const uint8* src_temp = NULL;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon.cc:252:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon.cc-253-    // loops are on blocks of 8. loop will stop when
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc-25-                        uint8* dst, int dst_stride, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc:26:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc-27-    // Read in the data from the source pointer.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc-112-                         uint8* dst_b, int dst_stride_b, int width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc:113:  asm (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc-114-    DECLARE_FUNCTION(TransposeUVWx8_SSE2)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc-240-                             uint8* dst, int dst_stride, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc:241:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc-242-  // Read in the data from the source pointer.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc-379-                         uint8* dst_b, int dst_stride_b, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc:380:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_gcc.cc-381-  // Read in the data from the source pointer.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_neon64.cc-22-  volatile uint32 sse;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_neon64.cc:23:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_neon64.cc-24-    "eor        v16.16b, v16.16b, v16.16b      \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_common.cc-2163-    defined(HAS_I422TORGB565ROW_SSSE3)
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_common.cc:2164:// row_win.cc has asm version, but GCC uses 2 step wrapper.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_common.cc-2165-void I422ToRGB565Row_SSSE3(const uint8* src_y,
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_neon.cc-23-  volatile uint32 sse;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_neon.cc:24:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/compare_neon.cc-25-    "vmov.u8    q8, #0                         \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc-55-#elif defined(_M_IX86)
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc:56:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc-57-    mov        eax, info_eax
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc-75-  uint32 info_ebx, info_edx;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc:76:  asm volatile (  // NOLINT
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc-77-#if defined( __i386__) && defined(__PIC__)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc-111-#elif defined(_M_IX86) && defined(_MSC_VER) && !defined(__clang__)
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc:112:  __asm {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc-113-    xor        ecx, ecx    // xcr 0
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc:114:    _asm _emit 0x0f _asm _emit 0x01 _asm _emit 0xd0  // For VS2010 and earlier.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/cpu_id.cc-115-    mov        xcr0, eax
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon64.cc-30-  int64 width64 = (int64) width;  // Work around clang 3.4 warning.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon64.cc:31:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon64.cc-32-    // loops are on blocks of 8. loop will stop when
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon64.cc-259-  int64 width64 = (int64) width;  // Work around clang 3.4 warning.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon64.cc:260:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/rotate_neon64.cc-261-    // loops are on blocks of 8. loop will stop when
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-100-                        uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:101:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-102-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-122-                              uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:123:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-124-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-153-                           uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:154:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-155-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-190-                        uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:191:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-192-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-219-  intptr_t stridex3 = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:220:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-221-    "pcmpeqb   %%xmm7,%%xmm7                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-271-                          uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:272:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-273-    "movdqa    %0,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-280-  );
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:281:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-282-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-307-                                uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:308:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-309-    "movdqa    %0,%%xmm2                       \n"  // kShuf01
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-316-  );
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:317:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-318-    "movdqa    %0,%%xmm5                       \n"  // kMadd01
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-325-  );
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:326:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-327-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-372-                                uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:373:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-374-    "movdqa    %0,%%xmm2                       \n"  // kShuf01
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-381-  );
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:382:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-383-    "movdqa    %0,%%xmm5                       \n"  // kMadd01
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-391-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:392:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-393-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-440-                          uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:441:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-442-    "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-470-                                uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:471:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-472-    "movdqa    %0,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-481-  );
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:482:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-483-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-515-                                uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:516:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-517-    "movdqa    %0,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-525-  );
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:526:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-527-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-580-  intptr_t tmp_src = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:581:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-582-    "mov       %0,%3                           \n"  // row pointer
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-624-  intptr_t x0 = 0, x1 = 0, temp_pixel = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:625:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-626-    "movd      %6,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-696-                       int dst_width, int x, int dx) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:697:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-698-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-720-                            uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:721:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-722-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-741-                                  uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:742:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-743-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-765-                               uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:766:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-767-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-798-  intptr_t src_stepx_x12 = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:799:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-800-    "lea       " MEMLEA3(0x00,1,4) ",%1        \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-833-  intptr_t row1 = (intptr_t)(src_stride);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:834:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-835-    "lea       " MEMLEA3(0x00,1,4) ",%1        \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-874-  intptr_t x0 = 0, x1 = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:875:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-876-    "movd      %5,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-942-                           int dst_width, int x, int dx) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:943:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-944-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-979-  intptr_t x0 = 0, x1 = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:980:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-981-    "movdqa    %0,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-987-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:988:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-989-    "movd      %5,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-1052-int FixedDiv_X86(int num, int div) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:1053:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-1054-    "cdq                                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-1067-int FixedDiv1_X86(int num, int div) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc:1068:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_gcc.cc-1069-    "cdq                                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-175-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:176:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-177-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-204-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:205:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-206-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-233-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:234:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-235-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-262-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:263:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-264-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-291-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:292:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-293-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-320-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:321:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-322-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-349-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:350:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-351-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-377-                       int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:378:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-379-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-412-                          int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:413:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-414-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-450-                            int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:451:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-452-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-490-                            int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:491:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-492-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-520-  int64 width64 = (int64)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:521:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-522-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-545-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:546:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-547-    "movi       v23.8b, #255                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-570-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:571:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-572-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-597-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:598:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-599-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-624-                          int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:625:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-626-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-651-                          int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:652:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-653-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-678-  int64 width64 = (int64)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:679:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-680-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-704-  int64 width64 = (int64)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:705:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-706-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-729-                     int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:730:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-731-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-753-                     int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:754:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-755-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-777-void CopyRow_NEON(const uint8* src, uint8* dst, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:778:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-779-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-796-void SetRow_NEON(uint8* dst, uint8 v8, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:797:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-798-    "dup        v0.16b, %w2                    \n"  // duplicate 16 bytes
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-811-void ARGBSetRow_NEON(uint8* dst, uint32 v32, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:812:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-813-    "dup        v0.4s, %w2                     \n"  // duplicate 4 ints
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-828-  int64 width64 = (int64) width;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:829:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-830-    // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-856-  int64 width64 = (int64) width;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:857:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-858-    // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-885-  int64 width64 = (int64) width;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:886:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-887-    // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-911-void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:912:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-913-    "movi       v4.8b, #255                    \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-931-void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:932:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-933-    "movi       v5.8b, #255                    \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-966-void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:967:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-968-    "movi       v3.8b, #255                    \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1025-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1026:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1027-    "movi       v3.8b, #255                    \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1059-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1060:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1061-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1079-void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb24, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1080:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1081-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1098-void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_raw, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1099:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1100-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1119-void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1120:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1121-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1138-void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1139:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1140-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1158-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1159:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1160-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1181-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1182:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1183-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1205-  const uint8* src_yuy2b = src_yuy2 + stride_yuy2;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1206:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1207-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1235-  const uint8* src_uyvyb = src_uyvy + stride_uyvy;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1236:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1237-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1265-                         const uint8* shuffler, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1266:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1267-    MEMACCESS(3)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1290-                        uint8* dst_yuy2, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1291:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1292-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1319-                        uint8* dst_uyvy, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1320:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1321-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1345-void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb565, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1346:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1347-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1366-                                const uint32 dither4, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1367:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1368-    "dup        v1.4s, %w2                     \n"  // dither4
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1391-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1392:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1393-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1412-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1413:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1414-    "movi       v4.16b, #0x0f                  \n"  // bits to clear with vbic.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1433-void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1434:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1435-    "movi       v4.8b, #13                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1461-void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1462:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1463-    "movi       v4.8b, #15                     \n"  // B * 0.11400 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1489-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1490:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1491-    "movi       v24.8b, #112                   \n"  // UB / VR 0.875 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1533-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1534:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1535-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1577-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1578:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1579-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1646-  const uint8* src_argb_1 = src_argb + src_stride_argb;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1647:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1648-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1689-  const uint8* src_argb_1 = src_argb + src_stride_argb;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1690:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1691-    "movi       v20.8h, #63, lsl #0            \n"  // UB/VR coeff (0.500) / 2
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1735-  const uint8* src_bgra_1 = src_bgra + src_stride_bgra;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1736:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1737-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1776-  const uint8* src_abgr_1 = src_abgr + src_stride_abgr;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1777:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1778-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1817-  const uint8* src_rgba_1 = src_rgba + src_stride_rgba;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1818:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1819-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1858-  const uint8* src_rgb24_1 = src_rgb24 + src_stride_rgb24;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1859:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1860-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1899-  const uint8* src_raw_1 = src_raw + src_stride_raw;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1900:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1901-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1941-  const uint8* src_rgb565_1 = src_rgb565 + src_stride_rgb565;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:1942:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-1943-    "movi       v22.8h, #56, lsl #0            \n"  // UB / VR coeff (0.875) / 2
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2017-  const uint8* src_argb1555_1 = src_argb1555 + src_stride_argb1555;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2018:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2019-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2088-  const uint8* src_argb4444_1 = src_argb4444 + src_stride_argb4444;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2089:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2090-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2157-void RGB565ToYRow_NEON(const uint8* src_rgb565, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2158:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2159-    "movi       v24.8b, #13                    \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2187-void ARGB1555ToYRow_NEON(const uint8* src_argb1555, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2188:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2189-    "movi       v4.8b, #13                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2216-void ARGB4444ToYRow_NEON(const uint8* src_argb4444, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2217:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2218-    "movi       v24.8b, #13                    \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2245-void BGRAToYRow_NEON(const uint8* src_bgra, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2246:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2247-    "movi       v4.8b, #33                     \n"  // R * 0.2578 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2273-void ABGRToYRow_NEON(const uint8* src_abgr, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2274:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2275-    "movi       v4.8b, #33                     \n"  // R * 0.2578 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2301-void RGBAToYRow_NEON(const uint8* src_rgba, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2302:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2303-    "movi       v4.8b, #13                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2329-void RGB24ToYRow_NEON(const uint8* src_rgb24, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2330:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2331-    "movi       v4.8b, #13                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2357-void RAWToYRow_NEON(const uint8* src_raw, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2358:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2359-    "movi       v4.8b, #33                     \n"  // R * 0.2578 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2391-  const uint8* src_ptr1 = src_ptr + src_stride;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2392:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2393-    "cmp        %w4, #0                        \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2488-                       uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2489:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2490-    "subs       %w3, %w3, #8                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2559-void ARGBAttenuateRow_NEON(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2560:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2561-    // Attenuate 8 pixels.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2588-                          int interval_offset, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2589:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2590-    "dup        v4.8h, %w2                     \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2633-                       uint32 value) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2634:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2635-    "dup        v0.4s, %w3                     \n"  // duplicate scale value.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2672-void ARGBGrayRow_NEON(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2673:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2674-    "movi       v24.8b, #15                    \n"  // B * 0.11400 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2705-void ARGBSepiaRow_NEON(uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2706:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2707-    "movi       v20.8b, #17                    \n"  // BB coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2749-                             const int8* matrix_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2750:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2751-    MEMACCESS(3)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2813-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2814:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2815-    // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2847-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2848:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2849-    // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2877-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2878:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2879-    // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2911-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2912:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2913-    "movi       v3.8b, #255                    \n"  // alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2940-                          uint8* dst_y, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2941:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2942-    // 16 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2970-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:2971:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-2972-    "movi       v3.8b, #255                    \n"  // alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-3000-                    const uint8* src_y2, uint8* dst_sobelx, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:3001:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-3002-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-3045-                    uint8* dst_sobely, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc:3046:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon64.cc-3047-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-27-                        uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:28:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-29-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-48-                           uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:49:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-50-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-72-                           uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:73:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-74-    // change the stride to row 2 pointer
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-102-                        uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:103:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-104-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-124-  const uint8* src_ptr3 = src_ptr + src_stride * 3;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:125:asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-126-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-163-                         uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:164:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-165-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-184-                               uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:185:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-186-    "vmov.u8    d24, #3                        \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-244-                               uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:245:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-246-    "vmov.u8    d24, #3                        \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-299-                         uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:300:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-301-    MEMACCESS(3)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-328-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:329:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-330-    MEMACCESS(5)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-446-                               uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:447:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-448-    MEMACCESS(4)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-546-  const uint8* src_tmp = NULL;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:547:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-548-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-591-  const uint8* src_tmp = src_ptr;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:592:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-593-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-653-                          int dst_width, int source_y_fraction) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:654:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-655-    "cmp          %4, #0                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-750-                            uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:751:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-752-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-774-                                  uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:775:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-776-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-803-                               uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:804:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-805-    // change the stride to row 2 pointer
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-845-                               int src_stepx, uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:846:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-847-    "mov        r12, %3, lsl #2                \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-874-                                  uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:875:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-876-    "mov        r12, %4, lsl #2                \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-931-  const uint8* src_tmp = src_argb;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:932:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-933-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-975-  const uint8* src_tmp = src_argb;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc:976:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon.cc-977-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-174-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:175:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-176-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-204-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:205:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-206-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-234-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:235:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-236-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-264-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:265:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-266-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-295-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:296:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-297-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-326-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:327:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-328-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-356-                         int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:357:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-358-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-385-                       int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:386:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-387-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-427-                          int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:428:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-429-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-472-                            int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:473:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-474-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-512-                            int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:513:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-514-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-542-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:543:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-544-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-568-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:569:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-570-    "vmov.u8    d23, #255                      \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-592-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:593:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-594-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-620-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:621:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-622-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-648-                          int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:649:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-650-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-676-                          int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:677:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-678-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-703-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:704:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-705-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-729-                        int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:730:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-731-    YUV422TORGB_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-755-                     int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:756:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-757-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-778-                     int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:779:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-780-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-801-void CopyRow_NEON(const uint8* src, uint8* dst, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:802:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-803-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-820-void SetRow_NEON(uint8* dst, uint8 v8, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:821:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-822-    "vdup.8    q0, %2                          \n"  // duplicate 16 bytes
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-836-void ARGBSetRow_NEON(uint8* dst, uint32 v32, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:837:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-838-    "vdup.u32  q0, %2                          \n"  // duplicate 4 ints
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-851-void MirrorRow_NEON(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:852:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-853-    // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-878-                      int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:879:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-880-    // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-905-void ARGBMirrorRow_NEON(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:906:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-907-    // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-931-void RGB24ToARGBRow_NEON(const uint8* src_rgb24, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:932:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-933-    "vmov.u8    d4, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-950-void RAWToARGBRow_NEON(const uint8* src_raw, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:951:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-952-    "vmov.u8    d4, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-982-void RGB565ToARGBRow_NEON(const uint8* src_rgb565, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:983:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-984-    "vmov.u8    d3, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1030-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1031:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1032-    "vmov.u8    d3, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1061-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1062:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1063-    "vmov.u8    d3, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1081-void ARGBToRGB24Row_NEON(const uint8* src_argb, uint8* dst_rgb24, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1082:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1083-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1099-void ARGBToRAWRow_NEON(const uint8* src_argb, uint8* dst_raw, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1100:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1101-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1118-void YUY2ToYRow_NEON(const uint8* src_yuy2, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1119:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1120-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1136-void UYVYToYRow_NEON(const uint8* src_uyvy, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1137:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1138-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1155-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1156:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1157-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1177-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1178:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1179-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1199-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1200:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1201-    "add        %1, %0, %1                     \n"  // stride + src_yuy2
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1227-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1228:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1229-    "add        %1, %0, %1                     \n"  // stride + src_uyvy
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1256-                         const uint8* shuffler, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1257:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1258-    MEMACCESS(3)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1280-                        uint8* dst_yuy2, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1281:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1282-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1307-                        uint8* dst_uyvy, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1308:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1309-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1331-void ARGBToRGB565Row_NEON(const uint8* src_argb, uint8* dst_rgb565, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1332:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1333-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1351-                                const uint32 dither4, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1352:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1353-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1375-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1376:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1377-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1395-                            int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1396:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1397-    "vmov.u8    d4, #0x0f                      \n"  // bits to clear with vbic.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1415-void ARGBToYRow_NEON(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1416:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1417-    "vmov.u8    d24, #13                       \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1442-void ARGBToYJRow_NEON(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1443:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1444-    "vmov.u8    d24, #15                       \n"  // B * 0.11400 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1469-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1470:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1471-    "vmov.u8    d24, #112                      \n"  // UB / VR 0.875 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1511-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1512:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1513-    "vmov.s16   q10, #112 / 2                  \n"  // UB / VR 0.875 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1561-                         int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1562:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1563-    "vmov.s16   q10, #112 / 2                  \n"  // UB / VR 0.875 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1638-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1639:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1640-    "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1688-                       uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1689:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1690-    "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1737-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1738:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1739-    "add        %1, %0, %1                     \n"  // src_stride + src_bgra
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1786-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1787:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1788-    "add        %1, %0, %1                     \n"  // src_stride + src_abgr
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1835-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1836:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1837-    "add        %1, %0, %1                     \n"  // src_stride + src_rgba
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1884-                       uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1885:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1886-    "add        %1, %0, %1                     \n"  // src_stride + src_rgb24
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1933-                     uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1934:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1935-    "add        %1, %0, %1                     \n"  // src_stride + src_raw
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1983-                        uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:1984:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-1985-    "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2053-                        uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2054:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2055-    "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2123-                          uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2124:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2125-    "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2191-void RGB565ToYRow_NEON(const uint8* src_rgb565, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2192:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2193-    "vmov.u8    d24, #13                       \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2219-void ARGB1555ToYRow_NEON(const uint8* src_argb1555, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2220:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2221-    "vmov.u8    d24, #13                       \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2247-void ARGB4444ToYRow_NEON(const uint8* src_argb4444, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2248:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2249-    "vmov.u8    d24, #13                       \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2275-void BGRAToYRow_NEON(const uint8* src_bgra, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2276:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2277-    "vmov.u8    d4, #33                        \n"  // R * 0.2578 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2302-void ABGRToYRow_NEON(const uint8* src_abgr, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2303:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2304-    "vmov.u8    d4, #33                        \n"  // R * 0.2578 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2329-void RGBAToYRow_NEON(const uint8* src_rgba, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2330:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2331-    "vmov.u8    d4, #13                        \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2356-void RGB24ToYRow_NEON(const uint8* src_rgb24, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2357:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2358-    "vmov.u8    d4, #13                        \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2383-void RAWToYRow_NEON(const uint8* src_raw, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2384:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2385-    "vmov.u8    d4, #33                        \n"  // R * 0.2578 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2413-                         int dst_width, int source_y_fraction) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2414:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2415-    "cmp        %4, #0                         \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2509-                       uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2510:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2511-    "subs       %3, #8                         \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2573-void ARGBAttenuateRow_NEON(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2574:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2575-    // Attenuate 8 pixels.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2600-                          int interval_offset, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2601:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2602-    "vdup.u16   q8, %2                         \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2644-                       uint32 value) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2645:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2646-    "vdup.u32   q0, %3                         \n"  // duplicate scale value.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2682-void ARGBGrayRow_NEON(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2683:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2684-    "vmov.u8    d24, #15                       \n"  // B * 0.11400 coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2713-void ARGBSepiaRow_NEON(uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2714:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2715-    "vmov.u8    d20, #17                       \n"  // BB coefficient
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2756-                             const int8* matrix_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2757:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2758-    MEMACCESS(3)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2820-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2821:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2822-    // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2854-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2855:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2856-    // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2881-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2882:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2883-    // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2912-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2913:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2914-    "vmov.u8    d3, #255                       \n"  // alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2940-                          uint8* dst_y, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2941:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2942-    // 16 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2969-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2970:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2971-    "vmov.u8    d3, #255                       \n"  // alpha
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-2998-                    const uint8* src_y2, uint8* dst_sobelx, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:2999:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-3000-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-3042-                    uint8* dst_sobely, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc:3043:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_neon.cc-3044-    ".p2align   2                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-145-void TestRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:146:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-147-    ".p2align  5                               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-240-void J400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:241:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-242-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-268-void RGB24ToARGBRow_SSSE3(const uint8* src_rgb24, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:269:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-270-    "pcmpeqb   %%xmm5,%%xmm5                   \n"  // generate mask 0xff000000
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-306-void RAWToARGBRow_SSSE3(const uint8* src_raw, uint8* dst_argb, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:307:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-308-    "pcmpeqb   %%xmm5,%%xmm5                   \n"  // generate mask 0xff000000
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-344-void RGB565ToARGBRow_SSE2(const uint8* src, uint8* dst, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:345:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-346-    "mov       $0x1080108,%%eax                \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-392-void ARGB1555ToARGBRow_SSE2(const uint8* src, uint8* dst, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:393:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-394-    "mov       $0x1080108,%%eax                \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-443-void ARGB4444ToARGBRow_SSE2(const uint8* src, uint8* dst, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:444:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-445-    "mov       $0xf0f0f0f,%%eax                \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-481-void ARGBToRGB24Row_SSSE3(const uint8* src, uint8* dst, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:482:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-483-    "movdqa    %3,%%xmm6                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-519-void ARGBToRAWRow_SSSE3(const uint8* src, uint8* dst, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:520:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-521-    "movdqa    %3,%%xmm6                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-557-void ARGBToRGB565Row_SSE2(const uint8* src, uint8* dst, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:558:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-559-    "pcmpeqb   %%xmm3,%%xmm3                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-593-void ARGBToARGB1555Row_SSE2(const uint8* src, uint8* dst, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:594:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-595-    "pcmpeqb   %%xmm4,%%xmm4                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-634-void ARGBToARGB4444Row_SSE2(const uint8* src, uint8* dst, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:635:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-636-    "pcmpeqb   %%xmm4,%%xmm4                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-665-void ARGBToYRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:666:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-667-    "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-703-void ARGBToYJRow_SSSE3(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:704:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-705-    "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-746-void ARGBToYRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:747:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-748-    "vbroadcastf128 %3,%%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-787-void ARGBToYJRow_AVX2(const uint8* src_argb, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:788:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-789-    "vbroadcastf128 %3,%%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-829-                       uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:830:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-831-    "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-897-                      uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:898:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-899-    "vbroadcastf128 %5,%%ymm5                  \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-957-                        uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:958:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-959-    "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1021-                          int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1022:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1023-    "movdqa    %4,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1078-                          uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1079:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1080-    "movdqa    %4,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1129-void BGRAToYRow_SSSE3(const uint8* src_bgra, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1130:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1131-    "movdqa    %4,%%xmm5                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1164-                       uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1165:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1166-    "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1224-void ABGRToYRow_SSSE3(const uint8* src_abgr, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1225:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1226-    "movdqa    %4,%%xmm5                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1258-void RGBAToYRow_SSSE3(const uint8* src_rgba, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1259:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1260-    "movdqa    %4,%%xmm5                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1293-                       uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1294:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1295-    "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1354-                       uint8* dst_u, uint8* dst_v, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1355:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1356-    "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1644-                                int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1645:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1646-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1671-                                 int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1672:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1673-    "movdqa    %[kShuffleMaskARGBToRGB24_0],%%xmm5 \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1715-                               int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1716:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1717-    "movdqa    %[kShuffleMaskARGBToRAW_0],%%xmm5 \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1759-                                int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1760:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1761-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1785-                                int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1786:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1787-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1811-                                int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1812:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1813-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1836-                                int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1837:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1838-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1859-                                int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1860:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1861-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1883-                                int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1884:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1885-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1909-                                int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1910:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1911-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1935-                                int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:1936:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-1937-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2001-                               int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2002:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2003-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2043-                               int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2044:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2045-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2085-                               int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2086:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2087-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2127-                               int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2128:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2129-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2168-                               int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2169:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2170-    "sub       %[u_buf],%[v_buf]               \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2203-void I400ToARGBRow_SSE2(const uint8* y_buf, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2204:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2205-    "mov       $0x4a354a35,%%eax               \n"  // 4a35 = 18997 = 1.164
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2250-void I400ToARGBRow_AVX2(const uint8* y_buf, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2251:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2252-    "mov        $0x4a354a35,%%eax              \n" // 0488 = 1160 = 1.164 * 16
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2301-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2302:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2303-    "movdqa    %3,%%xmm5                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2324-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2325:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2326-    "vbroadcastf128 %3,%%ymm5                  \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2349-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2350:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2351-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2382-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2383:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2384-    "movdqa    %4,%%xmm1                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2411-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2412:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2413-    "lea       " MEMLEA4(-0x10,0,2,4) ",%0     \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2439-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2440:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2441-    "vmovdqu    %3,%%ymm5                      \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2461-void SplitUVRow_AVX2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2462:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2463-    "vpcmpeqb   %%ymm5,%%ymm5,%%ymm5             \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2497-void SplitUVRow_SSE2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2498:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2499-    "pcmpeqb    %%xmm5,%%xmm5                    \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2533-                     int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2534:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2535-    "sub       %0,%1                             \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2564-                     int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2565:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2566-    "sub       %0,%1                             \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2592-void CopyRow_SSE2(const uint8* src, uint8* dst, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2593:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2594-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2615-void CopyRow_AVX(const uint8* src, uint8* dst, int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2616:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2617-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2640-  size_t width_tmp = (size_t)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2641:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2642-    "rep movsb " MEMMOVESTRING(0,1) "          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2654-void ARGBCopyAlphaRow_SSE2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2655:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2656-    "pcmpeqb   %%xmm0,%%xmm0                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2690-void ARGBCopyAlphaRow_AVX2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2691:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2692-    "vpcmpeqb  %%ymm0,%%ymm0,%%ymm0            \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2719-void ARGBCopyYToAlphaRow_SSE2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2720:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2721-    "pcmpeqb   %%xmm0,%%xmm0                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2757-void ARGBCopyYToAlphaRow_AVX2(const uint8* src, uint8* dst, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2758:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2759-    "vpcmpeqb  %%ymm0,%%ymm0,%%ymm0            \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2789-  const uint32 v32 = v8 * 0x01010101;  // Duplicate byte to all bytes.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2790:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2791-    "rep stosl " MEMSTORESTRING(eax,0) "       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2799-  size_t width_tmp = (size_t)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2800:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2801-    "rep stosb " MEMSTORESTRING(al,0) "        \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2809-  size_t width_tmp = (size_t)(width);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2810:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2811-    "rep stosl " MEMSTORESTRING(eax,0) "       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2820-void YUY2ToYRow_SSE2(const uint8* src_yuy2, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2821:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2822-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2846-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2847:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2848-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2884-                         uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2885:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2886-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2917-void UYVYToYRow_SSE2(const uint8* src_uyvy, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2918:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2919-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2941-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2942:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2943-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2979-                         uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:2980:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-2981-    "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3014-void YUY2ToYRow_AVX2(const uint8* src_yuy2, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3015:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3016-    "vpcmpeqb  %%ymm5,%%ymm5,%%ymm5            \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3042-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3043:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3044-    "vpcmpeqb  %%ymm5,%%ymm5,%%ymm5            \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3081-                         uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3082:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3083-    "vpcmpeqb  %%ymm5,%%ymm5,%%ymm5            \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3117-void UYVYToYRow_AVX2(const uint8* src_uyvy, uint8* dst_y, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3118:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3119-    LABELALIGN
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3142-                      uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3143:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3144-    "vpcmpeqb  %%ymm5,%%ymm5,%%ymm5            \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3182-                         uint8* dst_u, uint8* dst_v, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3183:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3184-    "vpcmpeqb   %%ymm5,%%ymm5,%%ymm5           \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3222-                       uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3223:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3224-    "pcmpeqb   %%xmm7,%%xmm7                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3323-                        uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3324:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3325-    "pcmpeqb   %%xmm7,%%xmm7                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3404-void ARGBAttenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3405:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3406-    "pcmpeqb   %%xmm4,%%xmm4                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3456-void ARGBAttenuateRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3457:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3458-    "pcmpeqb   %%xmm3,%%xmm3                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3504-void ARGBAttenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3505:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3506-    "vbroadcastf128 %3,%%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3545-  uintptr_t alpha = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3546:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3547-    // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3595-  uintptr_t alpha = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3596:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3597-    "sub        %0,%1                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3658-void ARGBGrayRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3659:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3660-    "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3721-void ARGBSepiaRow_SSSE3(uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3722:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3723-    "movdqa    %2,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3782-                              const int8* matrix_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3783:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3784-    "movdqu    " MEMACCESS(3) ",%%xmm5         \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3845-                          int interval_offset, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3846:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3847-    "movd      %2,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3895-                       uint32 value) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3896:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3897-    "movd      %3,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3931-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3932:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3933-    "pxor      %%xmm5,%%xmm5                  \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3969-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:3970:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-3971-    "vpxor      %%ymm5,%%ymm5,%%ymm5           \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4008-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4009:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4010-    // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4036-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4037:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4038-    // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4064-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4065:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4066-    // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4092-                          uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4093:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4094-    // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4123-                    const uint8* src_y2, uint8* dst_sobelx, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4124:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4125-    "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4177-                    uint8* dst_sobely, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4178:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4179-    "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4230-                   uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4231:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4232-    "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4277-                          uint8* dst_y, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4278:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4279-    "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4312-                     uint8* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4313:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4314-    "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4359-                                  const int32* previous_cumsum, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4360:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4361-    "pxor      %%xmm0,%%xmm0                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4438-                                    int count) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4439:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4440-    "movd      %5,%%xmm5                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4572-  intptr_t temp = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4573:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4574-    "movq      " MEMACCESS(3) ",%%xmm2         \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4656-                          int source_y_fraction) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4657:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4658-    "sub       %1,%0                           \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4759-                         int source_y_fraction) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4760:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4761-    "shr       %3                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4860-                         int source_y_fraction) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4861:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4862-    "sub       %1,%0                           \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4970-                          const uint8* shuffler, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4971:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4972-    "movdqu    " MEMACCESS(3) ",%%xmm5         \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-4998-                         const uint8* shuffler, int pix) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:4999:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5000-    "vbroadcastf128 " MEMACCESS(3) ",%%ymm5    \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5028-  uintptr_t pixel_temp = 0u;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:5029:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5030-    "pxor      %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5148-                        uint8* dst_frame, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:5149: asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5150-    "sub       %1,%2                             \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5183-                        uint8* dst_frame, int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:5184: asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5185-    "sub        %1,%2                            \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5217-                            int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:5218:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5219-    "pxor      %%xmm3,%%xmm3                   \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5273-                            int width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:5274:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5275-    "vbroadcastf128 " MEMACCESS(3) ",%%ymm4     \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5314-  uintptr_t pixel_temp = 0u;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:5315:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5316-    // 1 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5345-  uintptr_t pixel_temp = 0u;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:5346:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5347-    // 1 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5376-  uintptr_t table_temp = 0u;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc:5377:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/row_gcc.cc-5378-    "movd      %6,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-25-                        uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:26:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-27-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-45-                           uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:46:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-47-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-68-                           uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:69:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-70-    // change the stride to row 2 pointer
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-97-                        uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:98:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-99-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-118-  const uint8* src_ptr3 = src_ptr + src_stride * 3;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:119:asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-120-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-155-                         uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:156:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-157-  "1:                                                  \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-175-                               uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:176:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-177-    "movi      v20.8b, #3                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-235-                               uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:236:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-237-    "movi      v20.8b, #3                              \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-290-                         uint8* dst_ptr, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:291:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-292-    MEMACCESS(3)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-318-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:319:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-320-    MEMACCESS(5)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-446-  ptrdiff_t tmp_src_stride = src_stride;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:447:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-448-    MEMACCESS(4)
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-550-  const uint8* src_tmp = NULL;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:551:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-552-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-597-  int64 dx64 = (int64) dx;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:598:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-599-    "dup        v0.4s, %w3                     \n"  // x
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-659-    int y_fraction = 256 - source_y_fraction;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:660:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-661-    "cmp          %w4, #0                      \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-756-                            uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:757:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-758-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-779-                                  uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:780:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-781-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-806-                               uint8* dst, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:807:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-808-    // change the stride to row 2 pointer
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-843-                               int src_stepx, uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:844:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-845-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-872-                                  uint8* dst_argb, int dst_width) {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:873:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-874-    "add        %1, %1, %0                     \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-934-  int64 tmp64 = 0;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:935:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-936-  "1:                                          \n"
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-980-  int64 dx64 = (int64) dx;
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc:981:  asm volatile (
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/scale_neon64.cc-982-    "dup        v0.4s, %w3                     \n"  // x
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm-1-;*****************************************************************************
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm:2:;* x86inc.asm: x264asm abstraction layer
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm-3-;*****************************************************************************
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm-23-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm:24:; This is a header file for the x264ASM assembly language, which uses
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm:25:; NASM/YASM syntax combined with a large number of macros to provide easy
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm-26-; abstraction between different calling conventions (x86_32, win64, linux64).
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm-1134-; tzcnt is equivalent to "rep bsf" and is backwards-compatible with bsf.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm:1135:; This lets us use tzcnt without bumping the yasm version requirement yet.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/libyuv/source/x86inc.asm-1136-%define tzcnt rep bsf
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc-3262-  } else {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc:3263:    printf(", where %s = %s\n", kTypeParamLabel, test_case.type_param());
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc-3264-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc-3276-  } else {
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc:3277:    printf(", where %s = %s\n", kTypeParamLabel, test_suite.type_param());
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc-3278-  }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc-5625-            // the output easy to parse by a program.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc:5626:            PrintOnOneLine(test_suite->type_param(), kMaxParamLength);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc-5627-          }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc-5634-          // output easy to parse by a program.
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc:5635:          PrintOnOneLine(test_info->value_param(), kMaxParamLength);
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/src/gtest.cc-5636-        }
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/README.md-10-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/README.md:11:Suppose you put Google Test in directory `${GTEST_DIR}`. To build it, create a
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/README.md-12-library build target (or a project as called by Visual Studio and Xcode) to
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/README.md-16-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/README.md:17:with `${GTEST_DIR}/include` in the system header search path and `${GTEST_DIR}`
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/README.md-18-in the normal header search path. Assuming a Linux-like system and gcc,
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/README.md-26-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/README.md:27:Next, you should compile your test source file with `${GTEST_DIR}/include` in
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/README.md-28-the system header search path, and link it with gtest and any other necessary
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/cmake/Config.cmake.in-7-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/cmake/Config.cmake.in:8:include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/googletest/src/googletest/cmake/Config.cmake.in-9-check_required_components("@project_name@")
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/x86inc/x86inc.asm-1-;*****************************************************************************
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/x86inc/x86inc.asm:2:;* x86inc.asm: x264asm abstraction layer
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/x86inc/x86inc.asm-3-;*****************************************************************************
##############################################
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/x86inc/x86inc.asm-23-
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/x86inc/x86inc.asm:24:; This is a header file for the x264ASM assembly language, which uses
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/x86inc/x86inc.asm:25:; NASM/YASM syntax combined with a large number of macros to provide easy
chromium-84.0.4147.105/third_party/libaom/source/libaom/third_party/x86inc/x86inc.asm-26-; abstraction between different calling conventions (x86_32, win64, linux64).
##############################################
chromium-84.0.4147.105/third_party/libaom/cmake_update.sh-16-# - cmake3
chromium-84.0.4147.105/third_party/libaom/cmake_update.sh:17:# - yasm or nasm
chromium-84.0.4147.105/third_party/libaom/cmake_update.sh-18-# Toolchain for armv7:
##############################################
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-6-
chromium-84.0.4147.105/third_party/libaom/lint_config.sh:7:# This script is used to compare aom_config.h and aom_config.asm to
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-8-# verify the two files match.
##############################################
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-12-# -h - C Header file.
chromium-84.0.4147.105/third_party/libaom/lint_config.sh:13:# -a - ASM file.
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-14-# -p - Print the options if correct.
##############################################
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-19-# # Compare the two configuration files and output the final results.
chromium-84.0.4147.105/third_party/libaom/lint_config.sh:20:# ./lint_config.sh -h aom_config.h -a aom_config.asm -o libaom.config -p
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-21-
##############################################
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-44-if [ -z "$asm_file" ]; then
chromium-84.0.4147.105/third_party/libaom/lint_config.sh:45:  echo "ASM file not specified."
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-46-  false
##############################################
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-64-
chromium-84.0.4147.105/third_party/libaom/lint_config.sh:65:# Remove equ in the ASM file.
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-66-combined_config="$(echo "$combined_config" | sed 's/\.equ//')" # gas style
##############################################
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-69-
chromium-84.0.4147.105/third_party/libaom/lint_config.sh:70:# Remove %define in YASM ASM files.
chromium-84.0.4147.105/third_party/libaom/lint_config.sh-71-combined_config="$(echo "$combined_config" | sed 's/%define[[:space:]]*//')"
##############################################
chromium-84.0.4147.105/third_party/libusb/src/libusb/os/openbsd_usb.c-753-
chromium-84.0.4147.105/third_party/libusb/src/libusb/os/openbsd_usb.c:754:	endpt = UE_GET_ADDR(transfer->endpoint);
chromium-84.0.4147.105/third_party/libusb/src/libusb/os/openbsd_usb.c-755-	mode = IS_XFERIN(transfer) ? O_RDONLY : O_WRONLY;
##############################################
chromium-84.0.4147.105/third_party/leveldatabase/src/cmake/leveldbConfig.cmake.in-6-
chromium-84.0.4147.105/third_party/leveldatabase/src/cmake/leveldbConfig.cmake.in:7:include("${CMAKE_CURRENT_LIST_DIR}/leveldbTargets.cmake")
chromium-84.0.4147.105/third_party/leveldatabase/src/cmake/leveldbConfig.cmake.in-8-
##############################################
chromium-84.0.4147.105/third_party/pffft/src/pffft.c-1710- 
chromium-84.0.4147.105/third_party/pffft/src/pffft.c:1711:#ifdef ZCONVOLVE_USING_INLINE_ASM // inline asm version, unfortunately miscompiled by clang 3.2, at least on ubuntu.. so this will be restricted to gcc
chromium-84.0.4147.105/third_party/pffft/src/pffft.c-1712-  const float *a_ = a, *b_ = b; float *ab_ = ab;
chromium-84.0.4147.105/third_party/pffft/src/pffft.c-1713-  int N = Ncvec;
chromium-84.0.4147.105/third_party/pffft/src/pffft.c:1714:  asm volatile("mov         r8, %2                  \n"
chromium-84.0.4147.105/third_party/pffft/src/pffft.c-1715-               "vdup.f32    q15, %4                 \n"
##############################################
chromium-84.0.4147.105/third_party/devscripts/licensecheck.pl-205-    foreach my $var (keys %config_vars) { $shell_cmd .= "echo \$$var;\n" }
chromium-84.0.4147.105/third_party/devscripts/licensecheck.pl:206:    my $shell_out = `/bin/bash -c '$shell_cmd'`;
chromium-84.0.4147.105/third_party/devscripts/licensecheck.pl-207-    @config_vars{keys %config_vars} = split /\n/, $shell_out, -1;
##############################################
chromium-84.0.4147.105/third_party/devscripts/licensecheck.pl-344-    s/^[cC] //gm;
chromium-84.0.4147.105/third_party/devscripts/licensecheck.pl:345:    # Remove .ASM comments
chromium-84.0.4147.105/third_party/devscripts/licensecheck.pl-346-    s#^;\*?##gm;
##############################################
chromium-84.0.4147.105/third_party/devscripts/licensecheck.pl.vanilla-201-    foreach my $var (keys %config_vars) { $shell_cmd .= "echo \$$var;\n" }
chromium-84.0.4147.105/third_party/devscripts/licensecheck.pl.vanilla:202:    my $shell_out = `/bin/bash -c '$shell_cmd'`;
chromium-84.0.4147.105/third_party/devscripts/licensecheck.pl.vanilla-203-    @config_vars{keys %config_vars} = split /\n/, $shell_out, -1;
##############################################
chromium-84.0.4147.105/third_party/libFuzzer/src/FuzzerUtilWindows.cpp-183-  if (ExecuteCommand(Command(command_vector)) == 0)
chromium-84.0.4147.105/third_party/libFuzzer/src/FuzzerUtilWindows.cpp:184:    return "dumpbin /disasm " + FileName;
chromium-84.0.4147.105/third_party/libFuzzer/src/FuzzerUtilWindows.cpp-185-  Printf("libFuzzer: couldn't find tool to disassemble (dumpbin)\n");
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4-86-m4_define([b4_required_version_if],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4:87:[m4_if(m4_eval($1 <= b4_required_version),
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4-88-              [1], [$2], [$3])])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4-249-m4_define([b4_ints_in],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4:250:[m4_eval([$3 <= $1 && $1 <= $4 && $3 <= $2 && $2 <= $4])])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4-251-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4-258-[m4_bmatch([$1$2], [^[0123456789]*$],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4:259:           [m4_eval([$1 - $2])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4-260-           [($1) - ($2)])])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4-266-# b4_join calls itself recursively until it sees the first non-empty
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4:267:# argument, then calls _b4_join (i.e., `_$0`) which prepends each
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/bison.m4-268-# non-empty argument with a comma.
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/yacc.c-120-
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/yacc.c:121:       m4_eval([0 <= $1]),                [1], [unsigned],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/yacc.c-122-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/c.m4-178-
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/c.m4:179:       m4_eval([0 <= $1]),                [1], [unsigned],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/c.m4-180-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/c.m4-197-m4_define([b4_table_value_equals],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/c.m4:198:[m4_if(m4_eval($3 < m4_indir([b4_]$1[_min])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/skeletons/c.m4-199-               || m4_indir([b4_]$1[_max]) < $3), [1],
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-94-m4_define([m4_case],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:95:[m4_if(m4_eval([$# <= 2]), [1], [$2],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:96:[m4_pushdef([_$0], [m4_if(]_m4_for([2], m4_eval([($# - 1) / 2 * 2]), [2],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-97-     [_$0_(], [)])[_m4_popdef(
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:98:	 [_$0])]m4_dquote($m4_eval([($# + 1) & ~1]))[)])_$0($@)])])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-99-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-127-       [m4_pushdef([_m4_b], [m4_define([_m4_b],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:128:  _m4_defn([_$0]))]_m4_for([3], m4_eval([($# + 1) / 2 * 2 - 1]),
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-129-  [2], [_$0_(], [)])[_m4_b([], [],]m4_dquote([$]m4_eval(
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-158-[m4_pushdef([_m4_c], [m4_define([_m4_c],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:159:  _m4_defn([m4_unquote]))]_m4_for([2], m4_eval([$# / 3 * 3 - 1]), [3],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-160-  [$0_(], [)])[_m4_c(]m4_dquote(m4_dquote(
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:161:  [$]m4_eval([$# / 3 * 3 + 1])))[_m4_popdef([_m4_c]))])m4_unquote(_m4_c($@))])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-162-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-207-[m4_if(m4_incr([$1]), [$#], [], [m4_pushdef([_m4_s],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:208:  _m4_for(m4_eval([$1 + 2]), [$#], [1],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-209-  [[,]m4_dquote($], [)])[_m4_popdef([_m4_s])])m4_shift(_m4_s($@))])])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-259-       [m4_pushdef([_$0], _m4_for([3],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:260:   m4_eval([$# / 2 * 2 - 1]), [2], [_$0_(], [)])_$0_end(
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-261-   [1], [2], [$#])[_m4_popdef([_$0])])_$0($@)])])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-269-m4_define([_m4_map_args_pair_end],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:270:[m4_if(m4_eval([$3 & 1]), [1], [[m4_default([$$2], [$$1])([$$3])[]]])])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-271-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-293-m4_define([m4_joinall],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:294:[[$2]m4_if(m4_eval([$# <= 2]), [1], [],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-295-	   [_m4_foreach([$1], [], m4_shift($@))])])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-306-# is found.  For example, m4_list_cmp([1], [1,2]) creates _m4_cmp as
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:307:#   m4_if(m4_eval([($1) != ($3)]), [1], [m4_cmp([$1], [$3])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:308:#         m4_eval([($2) != ($4)]), [1], [m4_cmp([$2], [$4])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-309-#         [0]_m4_popdef([_m4_cmp]))
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-316-m4_define([_m4_list_pad],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:317:[m4_if(m4_eval($1 < $2), [1],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-318-       [_m4_for(m4_incr([$1]), [$2], [1], [,0*])])])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-321-[m4_pushdef([_m4_cmp], [m4_if(]_m4_for(
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:322:   [1], m4_eval([$# >> 1]), [1], [$0_(], [,]m4_eval([$# >> 1])[)])[
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-323-      [0]_m4_popdef([_m4_cmp]))])_m4_cmp($@)])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-325-m4_define([_m4_list_cmp_],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:326:[$0_([$1], m4_eval([$1 + $2]))])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-327-
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-328-m4_define([_m4_list_cmp__],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:329:[[m4_eval([($$1) != ($$2)]), [1], [m4_cmp([$$1], [$$2])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-330-]])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-341-m4_define([_m4_minmax],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:342:[m4_pushdef([_m4_best], m4_eval([$2]))_m4_foreach(
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-343-  [m4_define([_m4_best], $1(_m4_best,], [))], m4_shift($@))]dnl
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-354-[m4_if([$#], [0], [], [$#], [1], [],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4:355:       [m4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/foreach.m4-356-	  + m4_len(_m4_foreach(m4_ifdef([_m4_set_cleanup($1)],
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-66-# in time, but because of the space cost of 1, it's not that obvious.
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:67:# Nevertheless, one huge difference is the handling of `$0'.  If `from'
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:68:# uses `$0', then with 1, `to''s `$0' is `to', while it is `from' in 2.
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-69-# The user would certainly prefer to see `to'.
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-222-m4_define([m4_assert],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:223:[m4_if(m4_eval([$1]), 0,
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-224-       [m4_fatal([assert failed: $1], [$2])])])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-274-m4_define([m4_include_unique],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:275:[m4_ifdef([m4_include($1)],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-276-	  [m4_warn([syntax], [file `$1' included several times])])dnl
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:277:m4_define([m4_include($1)])])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-278-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-483-#    m4_if(m4_index([$1], [\]), [-1], [$2],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:484:#          m4_eval(m4_index([$1], [\\]) >= 0), [1], [$2],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:485:#          m4_eval(m4_index([$1], [\$]) >= 0), [1], [$2],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:486:#          m4_eval(m4_index([$1], [\`]) >= 0), [1], [$3],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:487:#          m4_eval(m4_index([$1], [\"]) >= 0), [1], [$3],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-488-#          [$2])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-493-#    m4_cond([m4_index([$1], [\])], [-1], [$2],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:494:#            [m4_eval(m4_index([$1], [\\]) >= 0)], [1], [$2],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:495:#            [m4_eval(m4_index([$1], [\$]) >= 0)], [1], [$2],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:496:#            [m4_eval(m4_index([$1], [\`]) >= 0)], [1], [$3],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:497:#            [m4_eval(m4_index([$1], [\"]) >= 0)], [1], [$3],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-498-#            [$2])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-506-       [$#], [1], [$1],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:507:       m4_eval([$# % 3]), [2], [m4_fatal([$0: missing an argument])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-508-       [_$0($@)])])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-545-       [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:546:       [_$0($@m4_if(m4_eval($# & 1), 0, [,]))])])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-547-m4_define([_m4_bpatsubsts],
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-832-# Not quite as practical as m4_incr, but you could also do:
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:833:#   m4_define([add], [m4_eval(([$1]) + ([$2]))])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-834-#   m4_define([add_one], [m4_curry([add], [1])])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1022-m4_define([m4_for],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:1023:[m4_pushdef([$1], m4_eval([$2]))]dnl
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:1024:[m4_cond([m4_eval(([$3]) > ([$2]))], 1,
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1025-	   [m4_pushdef([_m4_step], m4_eval(m4_default_quoted([$4],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1026-	      1)))m4_assert(_m4_step > 0)_$0(_m4_defn([$1]),
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:1027:  m4_eval((([$3]) - ([$2])) / _m4_step * _m4_step + ([$2])), _m4_step,],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:1028:	 [m4_eval(([$3]) < ([$2]))], 1,
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1029-	   [m4_pushdef([_m4_step], m4_eval(m4_default_quoted([$4],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1030-	      -1)))m4_assert(_m4_step < 0)_$0(_m4_defn([$1]),
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:1031:  m4_eval((([$2]) - ([$3])) / -(_m4_step) * _m4_step + ([$2])), _m4_step,],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1032-	 [m4_pushdef([_m4_step])_$0(_m4_defn([$1]), _m4_defn([$1]), 0,])]dnl
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1041-[$4[$1]$5[]m4_if([$1], [$2], [],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:1042:		 [$0(m4_eval([$1 + $3]), [$2], [$3], [$4], [$5])])])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1043-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1108-#
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:1109:# Now, just replace the `$2' with `m4_quote($2)' in the outer `m4_if'
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1110-# to improve robustness, and you come up with a nice implementation
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1304-m4_define([_m4_map_args_w],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:1305:[m4_substr([$1], [$2], m4_eval(m4_len([$1]) - [$2] - [$3]))])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-1306-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2464-m4_define([m4_combine],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2465:[m4_if([$2], [], [], m4_eval([$# > 3]), [1],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2466-[m4_map_args_sep([m4_map_args_sep(m4_dquote(], [)[[$3]], [], [[$1]],]]]dnl
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2541-		       [m4_warn([syntax],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2542:				[$0: `$2' contains `$3'])])])_$0($@)])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2543-m4_define([_m4_append_uniq],
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2665-m4_define([_m4_text_wrap_word],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2666:[m4_define([m4_Cursor], m4_eval(m4_Cursor + m4_qlen([$1]) + 1))]dnl
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2667:[m4_if(m4_eval(m4_Cursor > ([$3])),
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2668:      [1], [m4_define([m4_Cursor], m4_eval(m4_Indent + m4_qlen([$1]) + 1))
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2669-[$2]],
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2734-m4_define([m4_cmp],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2735:[m4_eval((([$1]) > ([$2])) - (([$1]) < ([$2])))])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2736-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2790-[m4_if([$#], [0], [m4_fatal([too few arguments to $0])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2791:       [$#], [1], [m4_eval([$1])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2792:       [$#$1], [2$2], [m4_eval([$1])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2793-       [$#], [2], [_$0($@)],
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2796-m4_define([_m4_max],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2797:[m4_eval((([$1]) > ([$2])) * ([$1]) + (([$1]) <= ([$2])) * ([$2]))])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2798-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2800-[m4_if([$#], [0], [m4_fatal([too few arguments to $0])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2801:       [$#], [1], [m4_eval([$1])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2802:       [$#$1], [2$2], [m4_eval([$1])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2803-       [$#], [2], [_$0($@)],
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2806-m4_define([_m4_min],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2807:[m4_eval((([$1]) < ([$2])) * ([$1]) + (([$1]) >= ([$2])) * ([$2]))])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2808-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2823-m4_define([m4_sign],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2824:[m4_eval((([$1]) > 0) - (([$1]) < 0))])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2825-
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2976-m4_define([m4_set_add_all],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:2977:[m4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1])
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-2978-  + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@))))])
##############################################
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-3143-[m4_if([$1], [$2], [m4_set_listc([$1])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4:3144:       m4_eval(m4_set_size([$2]) < m4_set_size([$1])), [1], [$0([$2], [$1])],
chromium-84.0.4147.105/third_party/angle/tools/flex-bison/third_party/m4sugar/m4sugar.m4-3145-       [m4_set_map_sep([$1], [_$0([$2],], [)])])])
##############################################
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp-261-        reinterpret_cast<PFN_vkImportSemaphoreZirconHandleFUCHSIA>(
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp:262:            vkGetInstanceProcAddr(renderer->getInstance(), "vkImportSemaphoreZirconHandleFUCHSIA"));
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp-263-
##############################################
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp-671-    auto enumerateInstanceVersion = reinterpret_cast<PFN_vkEnumerateInstanceVersion>(
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp:672:        vkGetInstanceProcAddr(mInstance, "vkEnumerateInstanceVersion"));
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/RendererVk.cpp-673-    if (!enumerateInstanceVersion)
##############################################
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.cpp-781-        {                                                                                      \
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.cpp:782:            vkName = reinterpret_cast<PFN_##vkName>(vkGetInstanceProcAddr(instance, #vkName)); \
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.cpp-783-            ASSERT(vkName);                                                                    \
##############################################
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.cpp-788-        {                                                                                  \
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.cpp:789:            vkName = reinterpret_cast<PFN_##vkName>(vkGetDeviceProcAddr(device, #vkName)); \
chromium-84.0.4147.105/third_party/angle/src/libANGLE/renderer/vulkan/vk_utils.cpp-790-            ASSERT(vkName);                                                                \
##############################################
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-355-        reinterpret_cast<PFN_vkGetPhysicalDeviceImageFormatProperties2>(
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp:356:            vkGetInstanceProcAddr(mInstance, "vkGetPhysicalDeviceImageFormatProperties2"));
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-357-    vkGetMemoryFdKHR = reinterpret_cast<PFN_vkGetMemoryFdKHR>(
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp:358:        vkGetInstanceProcAddr(mInstance, "vkGetMemoryFdKHR"));
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-359-    ASSERT(!mHasExternalMemoryFd || vkGetMemoryFdKHR);
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-360-    vkGetSemaphoreFdKHR = reinterpret_cast<PFN_vkGetSemaphoreFdKHR>(
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp:361:        vkGetInstanceProcAddr(mInstance, "vkGetSemaphoreFdKHR"));
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-362-    ASSERT(!mHasExternalSemaphoreFd || vkGetSemaphoreFdKHR);
##############################################
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-364-        reinterpret_cast<PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR>(
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp:365:            vkGetInstanceProcAddr(mInstance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"));
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-366-    vkGetMemoryZirconHandleFUCHSIA = reinterpret_cast<PFN_vkGetMemoryZirconHandleFUCHSIA>(
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp:367:        vkGetInstanceProcAddr(mInstance, "vkGetMemoryZirconHandleFUCHSIA"));
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-368-    ASSERT(!mHasExternalMemoryFuchsia || vkGetMemoryZirconHandleFUCHSIA);
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-369-    vkGetSemaphoreZirconHandleFUCHSIA = reinterpret_cast<PFN_vkGetSemaphoreZirconHandleFUCHSIA>(
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp:370:        vkGetInstanceProcAddr(mInstance, "vkGetSemaphoreZirconHandleFUCHSIA"));
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/VulkanExternalHelper.cpp-371-    ASSERT(!mHasExternalSemaphoreFuchsia || vkGetSemaphoreZirconHandleFUCHSIA);
##############################################
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/third_party/vulkan_command_buffer_utils.cpp-590-#elif defined(__ANDROID__)
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/third_party/vulkan_command_buffer_utils.cpp:591:    GET_INSTANCE_PROC_ADDR(info.inst, CreateAndroidSurfaceKHR);
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/third_party/vulkan_command_buffer_utils.cpp-592-    VkAndroidSurfaceCreateInfoKHR createInfo;
##############################################
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h-84-#    define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "VK-SAMPLE", __VA_ARGS__))
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h:85:#    define GET_INSTANCE_PROC_ADDR(inst, entrypoint)                               \
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h-86-        {                                                                          \
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h-87-            info.fp##entrypoint =                                                  \
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h:88:                (PFN_vk##entrypoint)vkGetInstanceProcAddr(inst, "vk" #entrypoint); \
chromium-84.0.4147.105/third_party/angle/src/tests/test_utils/third_party/vulkan_command_buffer_utils.h-89-            if (info.fp##entrypoint == NULL)                                       \
##############################################
chromium-84.0.4147.105/third_party/angle/src/common/system_utils_posix.cpp-63-    Dl_info dlInfo;
chromium-84.0.4147.105/third_party/angle/src/common/system_utils_posix.cpp:64:    if (dladdr(&dummySymbol, &dlInfo) != 0)
chromium-84.0.4147.105/third_party/angle/src/common/system_utils_posix.cpp-65-    {
##############################################
chromium-84.0.4147.105/third_party/angle/src/third_party/volk/volk.c-36-{
chromium-84.0.4147.105/third_party/angle/src/third_party/volk/volk.c:37:	return vkGetInstanceProcAddr((VkInstance)context, name);
chromium-84.0.4147.105/third_party/angle/src/third_party/volk/volk.c-38-}
##############################################
chromium-84.0.4147.105/third_party/angle/src/third_party/volk/volk.c-41-{
chromium-84.0.4147.105/third_party/angle/src/third_party/volk/volk.c:42:	return vkGetDeviceProcAddr((VkDevice)context, name);
chromium-84.0.4147.105/third_party/angle/src/third_party/volk/volk.c-43-}
##############################################
chromium-84.0.4147.105/third_party/angle/android/compress_symbols.py-35-
chromium-84.0.4147.105/third_party/angle/android/compress_symbols.py:36:    awk_cmd = subprocess.Popen(['awk', '{ print $1}'], stdin=nm_cmd.stdout, stdout=subprocess.PIPE)
chromium-84.0.4147.105/third_party/angle/android/compress_symbols.py-37-
##############################################
chromium-84.0.4147.105/third_party/angle/android/compress_symbols.py-46-
chromium-84.0.4147.105/third_party/angle/android/compress_symbols.py:47:    awk_cmd = subprocess.Popen(['awk', '{ if ($2 == "T" || $2 == "t" || $2 == "D") print $1 }'],
chromium-84.0.4147.105/third_party/angle/android/compress_symbols.py-48-                               stdin=nm_cmd.stdout,
##############################################
chromium-84.0.4147.105/third_party/angle/doc/DebuggingTips.md-29-
chromium-84.0.4147.105/third_party/angle/doc/DebuggingTips.md:30:For example, to trace a run of `hello_triangle`, assuming the apitrace executables are in `$PATH`:
chromium-84.0.4147.105/third_party/angle/doc/DebuggingTips.md-31-
##############################################
chromium-84.0.4147.105/third_party/angle/util/posix/crash_handler_posix.cpp-115-        Dl_info info;
chromium-84.0.4147.105/third_party/angle/util/posix/crash_handler_posix.cpp:116:        if (dladdr(stack[i], &info) && info.dli_sname)
chromium-84.0.4147.105/third_party/angle/util/posix/crash_handler_posix.cpp-117-        {
##############################################
chromium-84.0.4147.105/third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h-231-    c.ContextFlags = contextFlags;                                \
chromium-84.0.4147.105/third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h:232:    __asm    call x                                               \
chromium-84.0.4147.105/third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h:233:    __asm x: pop eax                                              \
chromium-84.0.4147.105/third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h:234:    __asm    mov c.Eip, eax                                       \
chromium-84.0.4147.105/third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h:235:    __asm    mov c.Ebp, ebp                                       \
chromium-84.0.4147.105/third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h:236:    __asm    mov c.Esp, esp                                       \
chromium-84.0.4147.105/third_party/angle/util/windows/third_party/StackWalker/src/StackWalker.h-237-  } while (0)
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-2322-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:2323:        fp_create_inst = (PFN_vkCreateInstance)fp_get_proc_addr(NULL, "vkCreateInstance");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-2324-        if (NULL == fp_create_inst) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-2332-        fp_get_inst_ext_props =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:2333:            (PFN_vkEnumerateInstanceExtensionProperties)fp_get_proc_addr(NULL, "vkEnumerateInstanceExtensionProperties");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-2334-        if (NULL == fp_get_inst_ext_props) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-4931-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:4932:    return icd_term->dispatch.GetDeviceProcAddr(device, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-4933-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-4947-    if (dev != NULL) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:4948:        gdpa_value = dev->loader_dispatch.core_dispatch.GetDeviceProcAddr(dev->chain_device, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-4949-        if (gdpa_value != NULL) dev->loader_dispatch.ext_dispatch.dev_ext[idx] = (PFN_vkDevExt)gdpa_value;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-4953-            while (ldev) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:4954:                gdpa_value = ldev->loader_dispatch.core_dispatch.GetDeviceProcAddr(ldev->chain_device, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-4955-                if (gdpa_value != NULL) ldev->loader_dispatch.ext_dispatch.dev_ext[idx] = (PFN_vkDevExt)gdpa_value;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-4974-    while (NULL != icd_term) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:4975:        if (icd_term->scanned_icd->GetInstanceProcAddr(icd_term->instance, funcName))
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-4976-            // this icd supports funcName
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5147-        if (icd_term->scanned_icd->interface_version >= MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION &&
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:5148:            icd_term->scanned_icd->GetPhysicalDeviceProcAddr(icd_term->instance, funcName))
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5149-            // this icd supports funcName
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5164-            if (NULL != functions->get_physical_device_proc_addr &&
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:5165:                NULL != functions->get_physical_device_proc_addr((VkInstance)inst->instance, funcName)) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5166-                return true;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5273-// found, then the trampoline address for that mapping is returned in
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:5274:// tramp_addr (if it is not NULL) and the terminator address for that
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:5275:// mapping is returned in term_addr (if it is not NULL). Otherwise,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5276-// this unknown entry point has not been seen yet.
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5325-                icd_term->phys_dev_ext[idx] =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:5326:                    (PFN_PhysDevExt)icd_term->scanned_icd->GetPhysicalDeviceProcAddr(icd_term->instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5327-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5344-                inst->disp->phys_dev_ext[idx] =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:5345:                    (PFN_PhysDevExt)layer_prop->functions.get_physical_device_proc_addr((VkInstance)inst->instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-5346-                if (NULL != inst->disp->phys_dev_ext[idx]) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-6313-            PFN_vkEnumerateInstanceVersion icd_enumerate_instance_version = (PFN_vkEnumerateInstanceVersion)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c:6314:                icd_term->scanned_icd->GetInstanceProcAddr(NULL, "vkEnumerateInstanceVersion");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/loader.c-6315-            if (icd_enumerate_instance_version != NULL) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/gpa_helper.h-25-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/gpa_helper.h:26:static inline void *trampolineGetProcAddr(struct loader_instance *inst, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/gpa_helper.h-27-    // Don't include or check global functions
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/gpa_helper.h-223-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/gpa_helper.h:224:static inline void *globalGetProcAddr(const char *name) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/gpa_helper.h-225-    if (!name || name[0] != 'v' || name[1] != 'k') return NULL;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-48-//    functions both core and extensions.
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c:49:LOADER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *pName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-50-    void *addr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-51-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c:52:    addr = globalGetProcAddr(pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-53-    if (instance == VK_NULL_HANDLE || addr != NULL) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-62-    // loader or someone else supports the extension
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c:63:    return trampolineGetProcAddr(ptr_instance, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-64-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-72-//    Device relative means call down the device chain.
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c:73:LOADER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkDevice device, const char *pName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-74-    void *addr;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-94-    if (disp_table->GetDeviceProcAddr == NULL) return NULL;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c:95:    return disp_table->GetDeviceProcAddr(device, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/trampoline.c-96-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/generated/vk_loader_extensions.h-125-    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/generated/vk_loader_extensions.h:126:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL terminator_GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/generated/vk_loader_extensions.h-127-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-948-installed from Linux-distribution-provided packages.
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:949:5. The locations in `$HOME` will only be searched if an application does not have
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-950-root access. This is done to ensure that an application with root access does not
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-979-will be ignored for suid programs.
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:980:4. The locations in `$HOME` will only be searched if an application does not have
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-981-root access. This is done to ensure that an application with root access does not
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1162-```cpp
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:1163:PFN_vkVoidFunction vk_layerGetPhysicalDeviceProcAddr(VkInstance instance,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1164-                                                     const char* pName);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1380-"pfnNextGetInstanceProcAddr":
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:1381:     pfnNextGetInstanceProcAddr(NULL, "vkCreateInstance").
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1382-  - For CreateDevice get the next entity's `vkCreateDevice` by calling the
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1383-"pfnNextGetInstanceProcAddr":
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:1384:     pfnNextGetInstanceProcAddr(NULL, "vkCreateDevice").
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1385-  - Advanced the linked list to the next node: pLayerInfo = pLayerInfo->pNext.
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1405-    PFN_vkCreateInstance fpCreateInstance =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:1406:        (PFN_vkCreateInstance)fpGetInstanceProcAddr(NULL, "vkCreateInstance");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1407-    if (fpCreateInstance == NULL) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1449-    PFN_vkCreateDevice fpCreateDevice =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:1450:        (PFN_vkCreateDevice)fpGetInstanceProcAddr(NULL, "vkCreateDevice");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1451-    if (fpCreateDevice == NULL) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1975-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:1976:- `<layerName>GetInstanceProcAddr(instance, pName)` behaves identically to a
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-1977-layer's vkGetInstanceProcAddr except it is exported.
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-2323-```cpp
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:2324:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-2325-                                               VkInstance instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-2423-```cpp
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md:2424:PFN_vkVoidFunction vk_icdGetPhysicalDeviceProcAddr(VkInstance instance,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/LoaderAndLayerInterface.md-2425-                                                   const char* pName);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/CMakeLists.txt-139-        target_link_libraries(asm_offset Vulkan::Headers)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/CMakeLists.txt:140:        add_custom_command(OUTPUT gen_defines.asm DEPENDS asm_offset COMMAND asm_offset MASM)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/CMakeLists.txt-141-        add_custom_target(loader_asm_gen_files DEPENDS gen_defines.asm)
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/CMakeLists.txt-145-    else()
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/CMakeLists.txt:146:        message(WARNING "Could not find working MASM assebler\n${ASM_FAILURE_MSG}")
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/CMakeLists.txt-147-        add_custom_target(loader_asm_gen_files)
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/CMakeLists.txt-170-        target_link_libraries(asm_offset Vulkan::Headers)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/CMakeLists.txt:171:        add_custom_command(OUTPUT gen_defines.asm DEPENDS asm_offset COMMAND asm_offset GAS)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/loader/CMakeLists.txt-172-        add_custom_target(loader_asm_gen_files DEPENDS gen_defines.asm)
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-52-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp:53:    PFN_vkCreateInstance fpCreateInstance = (PFN_vkCreateInstance) fpGetInstanceProcAddr(NULL, "vkCreateInstance");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-54-    if (fpCreateInstance == nullptr)
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-128-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp:129:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetInstanceProcAddr(VkInstance instance, const char* funcName)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-130-{
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-158-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp:159:    return pTable->GetInstanceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-160-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-161-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp:162:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetPhysicalDeviceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-163-    assert(instance);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-171-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp:172:    return pTable->GetPhysicalDeviceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-173-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-176-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp:177:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char* funcName)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-178-{
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp:179:    return test::GetInstanceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-180-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-191-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp:192:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_layerGetPhysicalDeviceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp:193:    return test::GetPhysicalDeviceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/test.cpp-194-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/vk_layer_logging.h-577-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/vk_layer_logging.h:578:static inline PFN_vkVoidFunction debug_utils_get_instance_proc_addr(debug_report_data *debug_data, const char *func_name) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/vk_layer_logging.h-579-    if (!debug_data) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-47-    PFN_vkGetInstanceProcAddr fpGetInstanceProcAddr = chain_info->u.pLayerInfo->pfnNextGetInstanceProcAddr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:48:    PFN_vkCreateInstance fpCreateInstance = (PFN_vkCreateInstance) fpGetInstanceProcAddr(NULL, "vkCreateInstance");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-49-    if (fpCreateInstance == NULL) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-175-    PFN_vkGetDeviceProcAddr fpGetDeviceProcAddr = chain_info->u.pLayerInfo->pfnNextGetDeviceProcAddr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:176:    PFN_vkCreateDevice fpCreateDevice = (PFN_vkCreateDevice)fpGetInstanceProcAddr(phys_dev->inst->obj, "vkCreateDevice");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-177-    if (fpCreateDevice == NULL) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1437-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1438:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkDevice device, const char* funcName)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1439-{
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1470-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1471:    return pDisp->GetDeviceProcAddr(device, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1472-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1473-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1474:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char* funcName)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1475-{
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1542-        return NULL;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1543:    return pTable->GetInstanceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1544-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1545-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1546:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetPhysicalDeviceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1547-    assert(instance);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1554-        return NULL;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1555:    return pTable->GetPhysicalDeviceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1556-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1560-// loader-layer interface v0, just wrappers since there is only a layer
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1561:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char* funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1562:    return wrap_objects::vkGetInstanceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1563-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1564-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1565:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkDevice device, const char* funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1566:    return wrap_objects::vkGetDeviceProcAddr(device, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1567-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1595-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1596:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_layerGetPhysicalDeviceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp:1597:    return wrap_objects::GetPhysicalDeviceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/layers/wrap_objects.cpp-1598-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/README.md-10-This can be done by setting the `VK_LAYER_PATH` environment variable to point at the built layers.
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/README.md:11:Depending on the platform build tool you use, this location will either be `${CMAKE_BINARY_DIR}/tests/layers` or `${CMAKE_BINARY_DIR}/tests/layers/${CONFIGURATION}`.
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/README.md-12-When using Visual Studio, a the generated project will already be set up to set the environment as needed.
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-279-          was_allocated(false),
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp:280:          aligned_start_addr(nullptr),
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp:281:          actual_start_addr(nullptr),
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-282-          requested_size_bytes(0),
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-1085-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp:1086:    void *pfnCreateDevice = (void *)vkGetInstanceProcAddr(instance, "vkCreateDevice");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp:1087:    void *pfnDestroyDevice = (void *)vkGetInstanceProcAddr(instance, "vkDestroyDevice");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-1088-    ASSERT_TRUE(pfnCreateDevice != NULL && pfnDestroyDevice != NULL);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-1552-    PFN_vkEnumeratePhysicalDeviceGroupsKHR p_vkEnumeratePhysicalDeviceGroupsKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp:1553:        (PFN_vkEnumeratePhysicalDeviceGroupsKHR)vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroupsKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-1554-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-1621-    PFN_vkEnumeratePhysicalDeviceGroupsKHR p_vkEnumeratePhysicalDeviceGroupsKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp:1622:        (PFN_vkEnumeratePhysicalDeviceGroupsKHR)vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroupsKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-1623-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-1704-    PFN_vkEnumeratePhysicalDeviceGroupsKHR p_vkEnumeratePhysicalDeviceGroupsKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp:1705:        (PFN_vkEnumeratePhysicalDeviceGroupsKHR)vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroupsKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/tests/loader_validation_tests.cpp-1706-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/BUILD.md-314-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/BUILD.md:315:The default location is `$CMAKE_BINARY_DIR\install`, but can be changed with
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/BUILD.md-316-the `CMAKE_INSTALL_PREFIX` variable when first generating the project build
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/CONTRIBUTING.md-145-* To install: `sudo pip install cmake_format`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/CONTRIBUTING.md:146:* To run: `cmake-format --in-place $FILENAME`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/CONTRIBUTING.md-147-* **IMPORTANT (June 2018)** cmake-format v0.3.6 has a
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/CONTRIBUTING.md-150-  A workaround is to use the following command _before_ running cmake-format:
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/CONTRIBUTING.md:151:  `sed --in-place='' 's/^  *#/#/' $FILENAME`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-loader/src/CONTRIBUTING.md-152-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h-1467-If you want to provide your own pointers to these functions, e.g. fetched using
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h:1468:`vkGetInstanceProcAddr()` and `vkGetDeviceProcAddr()`:
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h-1469-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h-1854-    Fill this member if you want to provide your own pointers to Vulkan functions,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h:1855:    e.g. fetched using `vkGetInstanceProcAddr()` and `vkGetDeviceProcAddr()`.
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h-1856-    */
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h-14165-        m_VulkanFunctions.vkGetBufferMemoryRequirements2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h:14166:            (PFN_vkGetBufferMemoryRequirements2KHR)vkGetDeviceProcAddr(m_hDevice, "vkGetBufferMemoryRequirements2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h-14167-        m_VulkanFunctions.vkGetImageMemoryRequirements2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h:14168:            (PFN_vkGetImageMemoryRequirements2KHR)vkGetDeviceProcAddr(m_hDevice, "vkGetImageMemoryRequirements2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/vk_mem_alloc.h-14169-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h-597-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h:598:void PreCallRecordGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h-599-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h-601-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h:602:void PostCallRecordGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h-603-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h-605-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h:606:void PreCallRecordGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h-607-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h-609-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h:610:void PostCallRecordGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.h-611-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.h-76-    VkPhysicalDeviceMemoryProperties*           pMemoryProperties) const;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.h:77:bool PreCallValidateGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.h-78-    VkInstance                                  instance,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.h-79-    const char*                                 pName) const;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.h:80:bool PreCallValidateGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.h-81-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp-1120-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp:1121:PFN_vkVoidFunction DispatchGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp-1122-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp-1125-    auto layer_data = GetLayerDataPtr(get_dispatch_key(instance), layer_data_map);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp:1126:    PFN_vkVoidFunction result = layer_data->instance_dispatch_table.GetInstanceProcAddr(instance, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp-1127-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp-1130-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp:1131:PFN_vkVoidFunction DispatchGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp-1132-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp-1135-    auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp:1136:    PFN_vkVoidFunction result = layer_data->device_dispatch_table.GetDeviceProcAddr(device, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.cpp-1137-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h-72-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h:73:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetPhysicalDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h-74-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h-123-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h:124:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h-125-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h-127-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h:128:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h-129-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h-3074-        virtual void PostCallRecordGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h:3075:        virtual bool PreCallValidateGetInstanceProcAddr(VkInstance instance, const char* pName) const { return false; };
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h:3076:        virtual void PreCallRecordGetInstanceProcAddr(VkInstance instance, const char* pName) {};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h:3077:        virtual void PostCallRecordGetInstanceProcAddr(VkInstance instance, const char* pName) {};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h:3078:        virtual bool PreCallValidateGetDeviceProcAddr(VkDevice device, const char* pName) const { return false; };
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h:3079:        virtual void PreCallRecordGetDeviceProcAddr(VkDevice device, const char* pName) {};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h:3080:        virtual void PostCallRecordGetDeviceProcAddr(VkDevice device, const char* pName) {};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.h-3081-        virtual bool PreCallValidateCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) const { return false; };
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.cpp-172-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.cpp:173:bool ObjectLifetimes::PreCallValidateGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.cpp-174-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.cpp-181-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.cpp:182:bool ObjectLifetimes::PreCallValidateGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/object_tracker.cpp-183-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.h-67-    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.h:68:PFN_vkVoidFunction DispatchGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.h-69-    VkInstance                                  instance,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.h-70-    const char*                                 pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.h:71:PFN_vkVoidFunction DispatchGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/layer_chassis_dispatch.h-72-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-342-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:343:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetDeviceProcAddr(VkDevice device, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-344-    auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-357-    if (!table.GetDeviceProcAddr) return nullptr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:358:    return table.GetDeviceProcAddr(device, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-359-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-360-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:361:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetInstanceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-362-    const auto &item = name_to_funcptr_map.find(funcName);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-368-    if (!table.GetInstanceProcAddr) return nullptr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:369:    return table.GetInstanceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-370-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-371-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:372:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetPhysicalDeviceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-373-    const auto &item = name_to_funcptr_map.find(funcName);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-383-    if (!table.GetPhysicalDeviceProcAddr) return nullptr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:384:    return table.GetPhysicalDeviceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-385-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-417-    PFN_vkGetInstanceProcAddr fpGetInstanceProcAddr = chain_info->u.pLayerInfo->pfnNextGetInstanceProcAddr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:418:    PFN_vkCreateInstance fpCreateInstance = (PFN_vkCreateInstance)fpGetInstanceProcAddr(NULL, "vkCreateInstance");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-419-    if (fpCreateInstance == NULL) return VK_ERROR_INITIALIZATION_FAILED;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-566-    PFN_vkGetDeviceProcAddr fpGetDeviceProcAddr = chain_info->u.pLayerInfo->pfnNextGetDeviceProcAddr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:567:    PFN_vkCreateDevice fpCreateDevice = (PFN_vkCreateDevice)fpGetInstanceProcAddr(instance_interceptor->instance, "vkCreateDevice");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-568-    if (fpCreateDevice == NULL) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-11031-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:11032:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkDevice dev, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:11033:    return vulkan_layer_chassis::GetDeviceProcAddr(dev, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-11034-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-11035-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:11036:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:11037:    return vulkan_layer_chassis::GetInstanceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-11038-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-11039-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:11040:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_layerGetPhysicalDeviceProcAddr(VkInstance instance,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-11041-                                                                                           const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp:11042:    return vulkan_layer_chassis::GetPhysicalDeviceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/chassis.cpp-11043-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp-649-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp:650:void ThreadSafety::PreCallRecordGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp-651-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp-655-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp:656:void ThreadSafety::PostCallRecordGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp-657-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp-661-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp:662:void ThreadSafety::PreCallRecordGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp-663-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp-667-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp:668:void ThreadSafety::PostCallRecordGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/layers/generated/thread_safety.cpp-669-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-605-        PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp:606:            (PFN_vkDestroyAccelerationStructureNV)vk::GetDeviceProcAddr(device(), "vkDestroyAccelerationStructureNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-607-        assert(vkDestroyAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-614-    PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp:615:        (PFN_vkGetAccelerationStructureMemoryRequirementsNV)vk::GetDeviceProcAddr(device(),
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-616-                                                                                  "vkGetAccelerationStructureMemoryRequirementsNV");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-629-    PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp:630:        (PFN_vkGetAccelerationStructureMemoryRequirementsNV)vk::GetDeviceProcAddr(device(),
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-631-                                                                                  "vkGetAccelerationStructureMemoryRequirementsNV");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-645-    PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp:646:        (PFN_vkCreateAccelerationStructureNV)vk::GetDeviceProcAddr(dev.handle(), "vkCreateAccelerationStructureNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-647-    assert(vkCreateAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-657-        PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp:658:            (PFN_vkBindAccelerationStructureMemoryNV)vk::GetDeviceProcAddr(dev.handle(), "vkBindAccelerationStructureMemoryNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-659-        assert(vkBindAccelerationStructureMemoryNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-667-        PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp:668:            (PFN_vkGetAccelerationStructureHandleNV)vk::GetDeviceProcAddr(dev.handle(), "vkGetAccelerationStructureHandleNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.cpp-669-        assert(vkGetAccelerationStructureHandleNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-119-    PFN_vkGetInstanceProcAddr fp_get_instance_proc_addr = chain_info->u.pLayerInfo->pfnNextGetInstanceProcAddr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:120:    PFN_vkCreateInstance fp_create_instance = (PFN_vkCreateInstance)fp_get_instance_proc_addr(NULL, "vkCreateInstance");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-121-    if (fp_create_instance == NULL) return VK_ERROR_INITIALIZATION_FAILED;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-132-    instance_data->dispatch_table.GetPhysicalDeviceProcAddr =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:133:        (PFN_GetPhysicalDeviceProcAddr)fp_get_instance_proc_addr(*pInstance, "vk_layerGetPhysicalDeviceProcAddr");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-134-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-214-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:215:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetPhysicalDeviceProcAddr(VkInstance instance, const char *name) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-216-    if (!strcmp(name, "vkSetPhysicalDeviceLimitsEXT")) return (PFN_vkVoidFunction)SetPhysicalDeviceLimitsEXT;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-226-    if (!table.GetPhysicalDeviceProcAddr) return nullptr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:227:    return table.GetPhysicalDeviceProcAddr(instance, name);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-228-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-229-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:230:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetInstanceProcAddr(VkInstance instance, const char *name) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-231-    if (!strcmp(name, "vkCreateInstance")) return (PFN_vkVoidFunction)CreateInstance;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-250-    if (!table.GetInstanceProcAddr) return nullptr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:251:    return table.GetInstanceProcAddr(instance, name);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-252-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-265-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:266:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:267:    return device_profile_api::GetInstanceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-268-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-269-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:270:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_layerGetPhysicalDeviceProcAddr(VkInstance instance,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-271-                                                                                           const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp:272:    return device_profile_api::GetPhysicalDeviceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layers/device_profile_api.cpp-273-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_imageless_framebuffer.cpp-1032-    PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_imageless_framebuffer.cpp:1033:        (PFN_vkCreateRenderPass2KHR)vk::GetDeviceProcAddr(m_device->device(), "vkCreateRenderPass2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_imageless_framebuffer.cpp-1034-    vkCreateRenderPass2KHR(m_device->device(), &renderPassCreateInfo, nullptr, &renderPass);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-145-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:146:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-147-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-214-    PFN_vkDebugMarkerSetObjectNameEXT fpvkDebugMarkerSetObjectNameEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:215:        (PFN_vkDebugMarkerSetObjectNameEXT)vk::GetInstanceProcAddr(instance(), "vkDebugMarkerSetObjectNameEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-216-    if (!(fpvkDebugMarkerSetObjectNameEXT)) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-329-    PFN_vkSetDebugUtilsObjectNameEXT fpvkSetDebugUtilsObjectNameEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:330:        (PFN_vkSetDebugUtilsObjectNameEXT)vk::GetInstanceProcAddr(instance(), "vkSetDebugUtilsObjectNameEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-331-    ASSERT_TRUE(fpvkSetDebugUtilsObjectNameEXT);  // Must be extant if extension is enabled
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-332-    PFN_vkCreateDebugUtilsMessengerEXT fpvkCreateDebugUtilsMessengerEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:333:        (PFN_vkCreateDebugUtilsMessengerEXT)vk::GetInstanceProcAddr(instance(), "vkCreateDebugUtilsMessengerEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-334-    ASSERT_TRUE(fpvkCreateDebugUtilsMessengerEXT);  // Must be extant if extension is enabled
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-335-    PFN_vkDestroyDebugUtilsMessengerEXT fpvkDestroyDebugUtilsMessengerEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:336:        (PFN_vkDestroyDebugUtilsMessengerEXT)vk::GetInstanceProcAddr(instance(), "vkDestroyDebugUtilsMessengerEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-337-    ASSERT_TRUE(fpvkDestroyDebugUtilsMessengerEXT);  // Must be extant if extension is enabled
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-338-    PFN_vkCmdInsertDebugUtilsLabelEXT fpvkCmdInsertDebugUtilsLabelEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:339:        (PFN_vkCmdInsertDebugUtilsLabelEXT)vk::GetInstanceProcAddr(instance(), "vkCmdInsertDebugUtilsLabelEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-340-    ASSERT_TRUE(fpvkCmdInsertDebugUtilsLabelEXT);  // Must be extant if extension is enabled
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-526-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:527:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-528-    ASSERT_TRUE(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-885-    auto vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:886:        (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-887-            instance(), "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-917-    auto vkGetSemaphoreWin32HandleKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:918:        (PFN_vkGetSemaphoreWin32HandleKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetSemaphoreWin32HandleKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-919-    err = vkGetSemaphoreWin32HandleKHR(m_device->device(), &ghi, &handle);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-930-    auto vkImportSemaphoreWin32HandleKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:931:        (PFN_vkImportSemaphoreWin32HandleKHR)vk::GetDeviceProcAddr(m_device->device(), "vkImportSemaphoreWin32HandleKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-932-    err = vkImportSemaphoreWin32HandleKHR(m_device->device(), &ihi);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-937-    VkSemaphoreGetFdInfoKHR ghi = {VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR, nullptr, export_semaphore, handle_type};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:938:    auto vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetSemaphoreFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-939-    err = vkGetSemaphoreFdKHR(m_device->device(), &ghi, &fd);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-944-                                      VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR,          handle_type, fd};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:945:    auto vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)vk::GetDeviceProcAddr(m_device->device(), "vkImportSemaphoreFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-946-    err = vkImportSemaphoreFdKHR(m_device->device(), &ihi);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1013-    VkExternalFencePropertiesKHR efp = {VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR, nullptr};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:1014:    auto vkGetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1015-        instance(), "vkGetPhysicalDeviceExternalFencePropertiesKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1048-        auto vkGetFenceWin32HandleKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:1049:            (PFN_vkGetFenceWin32HandleKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetFenceWin32HandleKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1050-        err = vkGetFenceWin32HandleKHR(m_device->device(), &ghi, &handle);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1063-        auto vkImportFenceWin32HandleKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:1064:            (PFN_vkImportFenceWin32HandleKHR)vk::GetDeviceProcAddr(m_device->device(), "vkImportFenceWin32HandleKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1065-        err = vkImportFenceWin32HandleKHR(m_device->device(), &ifi);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1072-        VkFenceGetFdInfoKHR gfi = {VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR, nullptr, export_fence, handle_type};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:1073:        auto vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetFenceFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1074-        err = vkGetFenceFdKHR(m_device->device(), &gfi, &fd);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1081-                                      VK_FENCE_IMPORT_TEMPORARY_BIT_KHR,          handle_type, fd};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:1082:        auto vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)vk::GetDeviceProcAddr(m_device->device(), "vkImportFenceFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1083-        err = vkImportFenceFdKHR(m_device->device(), &ifi);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1854-    auto fpCreateValidationCache =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:1855:        (PFN_vkCreateValidationCacheEXT)vk::GetDeviceProcAddr(m_device->device(), "vkCreateValidationCacheEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1856-    auto fpDestroyValidationCache =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:1857:        (PFN_vkDestroyValidationCacheEXT)vk::GetDeviceProcAddr(m_device->device(), "vkDestroyValidationCacheEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1858-    auto fpMergeValidationCaches =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:1859:        (PFN_vkMergeValidationCachesEXT)vk::GetDeviceProcAddr(m_device->device(), "vkMergeValidationCachesEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-1860-    if (!fpCreateValidationCache || !fpDestroyValidationCache || !fpMergeValidationCaches) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3243-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3244:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3245-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3376-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3377:    auto fpvkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)vk::GetDeviceProcAddr(m_device->device(), "vkResetQueryPoolEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3378-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3422-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3423:    auto fpvkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)vk::GetDeviceProcAddr(m_device->device(), "vkResetQueryPoolEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3424-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3436-    if (DeviceValidationVersion() >= VK_API_VERSION_1_2) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3437:        auto fpvkResetQueryPool = (PFN_vkResetQueryPool)vk::GetDeviceProcAddr(m_device->device(), "vkResetQueryPool");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3438-        if (nullptr == fpvkResetQueryPool) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3480-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3481:    auto fpvkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)vk::GetDeviceProcAddr(m_device->device(), "vkResetQueryPoolEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3482-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3525-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3526:    auto fpvkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)vk::GetDeviceProcAddr(m_device->device(), "vkResetQueryPoolEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3527-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3571-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3572:    auto fpvkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)vk::GetDeviceProcAddr(m_device->device(), "vkResetQueryPoolEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3573-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3689-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3690:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3691-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3891-    auto vkCmdBindShadingRateImageNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3892:        (PFN_vkCmdBindShadingRateImageNV)vk::GetDeviceProcAddr(m_device->device(), "vkCmdBindShadingRateImageNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3893-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3903-    auto vkCmdSetViewportShadingRatePaletteNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3904:        (PFN_vkCmdSetViewportShadingRatePaletteNV)vk::GetDeviceProcAddr(m_device->device(), "vkCmdSetViewportShadingRatePaletteNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3905-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3982-        auto vkCmdSetCoarseSampleOrderNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:3983:            (PFN_vkCmdSetCoarseSampleOrderNV)vk::GetDeviceProcAddr(m_device->device(), "vkCmdSetCoarseSampleOrderNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-3984-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4095-    PFN_vkGetAndroidHardwareBufferPropertiesANDROID pfn_GetAHBProps =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:4096:        (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)vk::GetDeviceProcAddr(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4097-    ASSERT_TRUE(pfn_GetAHBProps != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4272-    PFN_vkGetAndroidHardwareBufferPropertiesANDROID pfn_GetAHBProps =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:4273:        (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)vk::GetDeviceProcAddr(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4274-    ASSERT_TRUE(pfn_GetAHBProps != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4638-    PFN_vkGetAndroidHardwareBufferPropertiesANDROID pfn_GetAHBProps =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:4639:        (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)vk::GetDeviceProcAddr(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4640-    ASSERT_TRUE(pfn_GetAHBProps != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4829-    PFN_vkGetAndroidHardwareBufferPropertiesANDROID pfn_GetAHBProps =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:4830:        (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)vk::GetDeviceProcAddr(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4831-    ASSERT_TRUE(pfn_GetAHBProps != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4941-    PFN_vkGetMemoryAndroidHardwareBufferANDROID pfn_GetMemAHB =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:4942:        (PFN_vkGetMemoryAndroidHardwareBufferANDROID)vk::GetDeviceProcAddr(dev, "vkGetMemoryAndroidHardwareBufferANDROID");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-4943-    ASSERT_TRUE(pfn_GetMemAHB != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5219-    PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = reinterpret_cast<PFN_vkCreateAccelerationStructureNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:5220:        vk::GetDeviceProcAddr(m_device->handle(), "vkCreateAccelerationStructureNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5221-    assert(vkCreateAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5407-    PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = reinterpret_cast<PFN_vkCreateAccelerationStructureNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:5408:        vk::GetDeviceProcAddr(m_device->handle(), "vkCreateAccelerationStructureNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5409-    assert(vkCreateAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5511-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:5512:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5513-    auto features2 = lvl_init_struct<VkPhysicalDeviceFeatures2KHR>(&ray_tracing_features);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5520-    PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = reinterpret_cast<PFN_vkCreateAccelerationStructureKHR>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:5521:        vk::GetDeviceProcAddr(m_device->handle(), "vkCreateAccelerationStructureKHR"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5522-    assert(vkCreateAccelerationStructureKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5665-        reinterpret_cast<PFN_vkBindAccelerationStructureMemoryNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:5666:            vk::GetDeviceProcAddr(m_device->handle(), "vkBindAccelerationStructureMemoryNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5667-    assert(vkBindAccelerationStructureMemoryNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5870-        reinterpret_cast<PFN_vkCmdBuildAccelerationStructureNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:5871:            vk::GetDeviceProcAddr(m_device->handle(), "vkCmdBuildAccelerationStructureNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-5872-    assert(vkCmdBuildAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6004-        reinterpret_cast<PFN_vkGetAccelerationStructureHandleNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6005:            vk::GetDeviceProcAddr(m_device->handle(), "vkGetAccelerationStructureHandleNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6006-    assert(vkGetAccelerationStructureHandleNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6050-    PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = reinterpret_cast<PFN_vkCmdCopyAccelerationStructureNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6051:        vk::GetDeviceProcAddr(m_device->handle(), "vkCmdCopyAccelerationStructureNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6052-    assert(vkCmdCopyAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6134-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6135:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6136-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6148-        vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6149:            (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6150-                instance(), "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6244-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6245:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6246-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6259-        vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6260:            (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6261-                instance(), "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6320-    PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6321:        (PFN_vkAcquireProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkAcquireProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6322-    ASSERT_TRUE(vkAcquireProfilingLockKHR != nullptr);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6323-    PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6324:        (PFN_vkReleaseProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkReleaseProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6325-    ASSERT_TRUE(vkReleaseProfilingLockKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6456-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6457:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6458-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6471-        vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6472:            (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6473-                instance(), "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6534-    PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6535:        (PFN_vkAcquireProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkAcquireProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6536-    ASSERT_TRUE(vkAcquireProfilingLockKHR != nullptr);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6537-    PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6538:        (PFN_vkReleaseProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkReleaseProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6539-    ASSERT_TRUE(vkReleaseProfilingLockKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6597-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6598:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6599-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6612-        vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6613:            (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6614-                instance(), "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6673-    PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6674:        (PFN_vkAcquireProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkAcquireProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6675-    ASSERT_TRUE(vkAcquireProfilingLockKHR != nullptr);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6676-    PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6677:        (PFN_vkReleaseProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkReleaseProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6678-    ASSERT_TRUE(vkReleaseProfilingLockKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6797-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6798:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6799-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6817-        vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6818:            (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6819-                instance(), "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6822-    PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6823:        (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6824-            instance(), "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6889-    PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6890:        (PFN_vkAcquireProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkAcquireProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6891-    ASSERT_TRUE(vkAcquireProfilingLockKHR != nullptr);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6892-    PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6893:        (PFN_vkReleaseProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkReleaseProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6894-    ASSERT_TRUE(vkReleaseProfilingLockKHR != nullptr);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6895-    PFN_vkResetQueryPoolEXT fpvkResetQueryPoolEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:6896:        (PFN_vkResetQueryPoolEXT)vk::GetInstanceProcAddr(instance(), "vkResetQueryPoolEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-6897-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7066-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7067:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7068-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7086-        vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7087:            (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7088-                instance(), "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7091-    PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7092:        (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7093-            instance(), "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7158-    PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7159:        (PFN_vkAcquireProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkAcquireProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7160-    ASSERT_TRUE(vkAcquireProfilingLockKHR != nullptr);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7161-    PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7162:        (PFN_vkReleaseProfilingLockKHR)vk::GetInstanceProcAddr(instance(), "vkReleaseProfilingLockKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7163-    ASSERT_TRUE(vkReleaseProfilingLockKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7327-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7328:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7329-    ASSERT_TRUE(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7653-    import_semaphore_fd_info.fd = fd;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7654:    auto vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)vk::GetDeviceProcAddr(m_device->device(), "vkImportSemaphoreFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7655-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7708-    semaphore_wait_info.pValues = &wait_values[0];
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7709:    auto vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)vk::GetDeviceProcAddr(m_device->device(), "vkWaitSemaphoresKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7710-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7738-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7739:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7740-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7760-    semaphore_signal_info.value = 10;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7761:    auto vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)vk::GetDeviceProcAddr(m_device->device(), "vkSignalSemaphoreKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7762-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7794-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7795:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7796-    ASSERT_TRUE(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7817-    semaphore_signal_info.value = 3;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7818:    auto vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)vk::GetDeviceProcAddr(m_device->device(), "vkSignalSemaphoreKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7819-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7902-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7903:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7904-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7921-    auto vkGetSemaphoreCounterValueKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7922:        (PFN_vkGetSemaphoreCounterValueKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetSemaphoreCounterValueKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7923-    uint64_t value = 0xdeadbeef;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7944-    PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:7945:        (PFN_vkGetImageDrmFormatModifierPropertiesEXT)vk::GetInstanceProcAddr(instance(),
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-7946-                                                                              "vkGetImageDrmFormatModifierPropertiesEXT");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8052-    auto vkGetQueueCheckpointDataNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8053:        (PFN_vkGetQueueCheckpointDataNV)vk::GetDeviceProcAddr(m_device->device(), "vkGetQueueCheckpointDataNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8054-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8055:    auto vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)vk::GetDeviceProcAddr(m_device->device(), "vkCmdSetCheckpointNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8056-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8078-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8079:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8080-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8196-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8197:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8198-    ASSERT_TRUE(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8203-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8204:    PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)vk::GetInstanceProcAddr(instance(), "vkCmdTraceRaysKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8205-    ASSERT_TRUE(vkCmdTraceRaysKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8287-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8288:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8289-    vkGetPhysicalDeviceFeatures2KHR(gpu(), &features2);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8315-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8316:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8317-    ASSERT_TRUE(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8323-    PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8324:        (PFN_vkCmdTraceRaysIndirectKHR)vk::GetInstanceProcAddr(instance(), "vkCmdTraceRaysIndirectKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8325-    ASSERT_TRUE(vkCmdTraceRaysIndirectKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8408-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8409:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8410-    vkGetPhysicalDeviceFeatures2KHR(gpu(), &features2);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8416-    PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp:8417:        (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_others.cpp-8418-            instance(), "vkGetDeviceAccelerationStructureCompatibilityKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-204-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:205:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-206-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-4618-    PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:4619:        (PFN_vkCmdPushDescriptorSetKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdPushDescriptorSetKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-4620-    ASSERT_TRUE(vkCmdPushDescriptorSetKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-4741-    PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:4742:        (PFN_vkCmdPushDescriptorSetKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdPushDescriptorSetKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-4743-    ASSERT_TRUE(vkCmdPushDescriptorSetKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-4924-    PFN_vkCmdDrawIndirectByteCountEXT fpvkCmdDrawIndirectByteCountEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:4925:        (PFN_vkCmdDrawIndirectByteCountEXT)vk::GetDeviceProcAddr(device(), "vkCmdDrawIndirectByteCountEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-4926-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-4960-    auto vkCmdDrawIndirectCountKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:4961:        (PFN_vkCmdDrawIndirectCountKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdDrawIndirectCountKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-4962-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5064-    auto vkCmdDrawIndexedIndirectCountKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:5065:        (PFN_vkCmdDrawIndexedIndirectCountKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdDrawIndexedIndirectCountKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5066-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5237-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:5238:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5239-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5322-        auto vkCmdSetExclusiveScissorNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:5323:            (PFN_vkCmdSetExclusiveScissorNV)vk::GetDeviceProcAddr(m_device->device(), "vkCmdSetExclusiveScissorNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5324-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5410-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:5411:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5412-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5480-    PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:5481:        (PFN_vkCmdDrawMeshTasksIndirectNV)vk::GetInstanceProcAddr(instance(), "vkCmdDrawMeshTasksIndirectNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5482-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5630-    auto vkCmdSetViewportWScalingNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:5631:        reinterpret_cast<PFN_vkCmdSetViewportWScalingNV>(vk::GetDeviceProcAddr(m_device->device(), "vkCmdSetViewportWScalingNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5632-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5773-    PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionFunction =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp:5774:        (PFN_vkCreateSamplerYcbcrConversionKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkCreateSamplerYcbcrConversionKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_command.cpp-5775-    if (vkCreateSamplerYcbcrConversionFunction == nullptr) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-116-        PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:117:            (PFN_vkCreateRenderPass2KHR)vk::GetDeviceProcAddr(m_device->device(), "vkCreateRenderPass2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-118-        safe_VkRenderPassCreateInfo2 create_info2;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-447-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:448:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-449-    auto separate_depth_stencil_layouts_features = lvl_init_struct<VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR>();
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-961-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:962:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-963-    auto separate_depth_stencil_layouts_features = lvl_init_struct<VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR>();
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-1769-        vkCmdBeginRenderPass2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:1770:            (PFN_vkCmdBeginRenderPass2KHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdBeginRenderPass2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-1771-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2115-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:2116:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2117-    assert(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2225-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:2226:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2227-    assert(vkGetPhysicalDeviceProperties2KHR != nullptr);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2228-    PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:2229:        (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)vk::GetInstanceProcAddr(instance(),
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2230-                                                                                 "vkGetPhysicalDeviceMultisamplePropertiesEXT");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2232-    PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:2233:        (PFN_vkCmdSetSampleLocationsEXT)vk::GetInstanceProcAddr(instance(), "vkCmdSetSampleLocationsEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2234-    assert(vkCmdSetSampleLocationsEXT != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2456-    if (rp2Supported) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:2457:        vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdNextSubpass2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2458-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2496-    if (rp2Supported) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:2497:        vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdEndRenderPass2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-2498-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-4869-    auto vkCreateDescriptorUpdateTemplateKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:4870:        (PFN_vkCreateDescriptorUpdateTemplateKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCreateDescriptorUpdateTemplateKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-4871-    auto vkDestroyDescriptorUpdateTemplateKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:4872:        (PFN_vkDestroyDescriptorUpdateTemplateKHR)vk::GetDeviceProcAddr(m_device->device(), "vkDestroyDescriptorUpdateTemplateKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-4873-    auto vkUpdateDescriptorSetWithTemplateKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:4874:        (PFN_vkUpdateDescriptorSetWithTemplateKHR)vk::GetDeviceProcAddr(m_device->device(), "vkUpdateDescriptorSetWithTemplateKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-4875-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-4912-    auto vkCmdPushDescriptorSetKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:4913:        (PFN_vkCmdPushDescriptorSetKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdPushDescriptorSetKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:4914:    auto vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)vk::GetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-4915-        m_device->device(), "vkCmdPushDescriptorSetWithTemplateKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6121-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:6122:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6123-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6252-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:6253:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6254-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6537-    PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:6538:        (PFN_vkCreateDescriptorUpdateTemplateKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCreateDescriptorUpdateTemplateKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6539-    ASSERT_NE(vkCreateDescriptorUpdateTemplateKHR, nullptr);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6540-    PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:6541:        (PFN_vkDestroyDescriptorUpdateTemplateKHR)vk::GetDeviceProcAddr(m_device->device(), "vkDestroyDescriptorUpdateTemplateKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6542-    ASSERT_NE(vkDestroyDescriptorUpdateTemplateKHR, nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6656-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:6657:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6658-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6667-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:6668:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-6669-    assert(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-7019-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp:7020:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_descriptor_renderpass_framebuffer.cpp-7021-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.h-209-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.h:210:    // vkGetDeviceProcAddr()
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.h:211:    PFN_vkVoidFunction get_proc(const char *name) const { return vk::GetDeviceProcAddr(handle(), name); }
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vktestbinding.h-212-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-48-        PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp:49:            (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-50-        ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-524-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp:525:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-526-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-580-    auto vkGetBufferDeviceAddressKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp:581:        (PFN_vkGetBufferDeviceAddressKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetBufferDeviceAddressKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-582-    ASSERT_TRUE(vkGetBufferDeviceAddressKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-708-        reinterpret_cast<PFN_vkCmdBuildAccelerationStructureNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp:709:            vk::GetDeviceProcAddr(m_device->handle(), "vkCmdBuildAccelerationStructureNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-710-    assert(vkCmdBuildAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-795-        reinterpret_cast<PFN_vkCmdBuildAccelerationStructureNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp:796:            vk::GetDeviceProcAddr(m_device->handle(), "vkCmdBuildAccelerationStructureNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-797-    assert(vkCmdBuildAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-893-        reinterpret_cast<PFN_vkCmdBuildAccelerationStructureNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp:894:            vk::GetDeviceProcAddr(m_device->handle(), "vkCmdBuildAccelerationStructureNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-895-    assert(vkCmdBuildAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-1013-        reinterpret_cast<PFN_vkCmdBuildAccelerationStructureNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp:1014:            vk::GetDeviceProcAddr(m_device->handle(), "vkCmdBuildAccelerationStructureNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-1015-    assert(vkCmdBuildAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-1017-    PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp:1018:        (PFN_vkCmdPushDescriptorSetKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkCmdPushDescriptorSetKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-1019-    assert(vkCmdPushDescriptorSetKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-1257-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp:1258:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_gpu.cpp-1259-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-1483-    } else {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:1484:        vkBindImageMemory2Function = (PFN_vkBindImageMemory2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkBindImageMemory2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-1485-        vkGetImageMemoryRequirements2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:1486:            (PFN_vkGetImageMemoryRequirements2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkGetImageMemoryRequirements2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-1487-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-1655-            vkBindImageMemory2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:1656:                (PFN_vkBindImageMemory2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkBindImageMemory2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-1657-        }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-1664-            vkGetImageMemoryRequirements2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:1665:                (PFN_vkGetImageMemoryRequirements2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkGetImageMemoryRequirements2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-1666-        }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2156-            vkGetImageMemoryRequirements2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:2157:                (PFN_vkGetImageMemoryRequirements2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkGetImageMemoryRequirements2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2158-            vkBindImageMemory2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:2159:                (PFN_vkBindImageMemory2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkBindImageMemory2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2160-        }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2289-    } else {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:2290:        vkBindImageMemory2Function = (PFN_vkBindImageMemory2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkBindImageMemory2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2291-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2375-            vkGetImageMemoryRequirements2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:2376:                (PFN_vkGetImageMemoryRequirements2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkGetImageMemoryRequirements2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2377-        }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2555-    PFN_vkSetPhysicalDeviceLimitsEXT fpvkSetPhysicalDeviceLimitsEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:2556:        (PFN_vkSetPhysicalDeviceLimitsEXT)vk::GetInstanceProcAddr(instance(), "vkSetPhysicalDeviceLimitsEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2557-    PFN_vkGetOriginalPhysicalDeviceLimitsEXT fpvkGetOriginalPhysicalDeviceLimitsEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:2558:        (PFN_vkGetOriginalPhysicalDeviceLimitsEXT)vk::GetInstanceProcAddr(instance(), "vkGetOriginalPhysicalDeviceLimitsEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-2559-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-4504-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:4505:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-4506-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-5117-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:5118:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-5119-    auto separate_depth_stencil_layouts_features = lvl_init_struct<VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR>();
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-5324-            vkBindImageMemory2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:5325:                (PFN_vkBindImageMemory2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkBindImageMemory2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-5326-            vkGetImageMemoryRequirements2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:5327:                (PFN_vkGetImageMemoryRequirements2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkGetImageMemoryRequirements2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-5328-        }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-7318-    PFN_vkSetPhysicalDeviceFormatPropertiesEXT fpvkSetPhysicalDeviceFormatPropertiesEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:7319:        (PFN_vkSetPhysicalDeviceFormatPropertiesEXT)vk::GetInstanceProcAddr(instance(), "vkSetPhysicalDeviceFormatPropertiesEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-7320-    PFN_vkGetOriginalPhysicalDeviceFormatPropertiesEXT fpvkGetOriginalPhysicalDeviceFormatPropertiesEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:7321:        (PFN_vkGetOriginalPhysicalDeviceFormatPropertiesEXT)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-7322-            instance(), "vkGetOriginalPhysicalDeviceFormatPropertiesEXT");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8189-        vkCreateSamplerYcbcrConversionFunction =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:8190:            (PFN_vkCreateSamplerYcbcrConversionKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkCreateSamplerYcbcrConversionKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8191-        vkDestroySamplerYcbcrConversionFunction =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:8192:            (PFN_vkDestroySamplerYcbcrConversionKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkDestroySamplerYcbcrConversionKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8193-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8433-    auto vkCreateSamplerYcbcrConversionKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:8434:        (PFN_vkCreateSamplerYcbcrConversionKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkCreateSamplerYcbcrConversionKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8435-    if (vkCreateSamplerYcbcrConversionKHR == nullptr) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8607-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:8608:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8609-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8705-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:8706:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8707-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8928-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:8929:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8930-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8966-        vkCreateSamplerYcbcrConversionFunction =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:8967:            (PFN_vkCreateSamplerYcbcrConversionKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkCreateSamplerYcbcrConversionKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8968-        vkDestroySamplerYcbcrConversionFunction =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:8969:            (PFN_vkDestroySamplerYcbcrConversionKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkDestroySamplerYcbcrConversionKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-8970-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9111-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9112:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9113-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9124-    PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9125:        (PFN_vkGetBufferDeviceAddressEXT)vk::GetDeviceProcAddr(device(), "vkGetBufferDeviceAddressEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9126-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9195-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9196:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9197-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9209-    PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9210:        (PFN_vkGetBufferDeviceAddressEXT)vk::GetDeviceProcAddr(device(), "vkGetBufferDeviceAddressEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9211-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9258-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9259:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9260-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9271-    PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9272:        (PFN_vkGetBufferDeviceAddressKHR)vk::GetDeviceProcAddr(device(), "vkGetBufferDeviceAddressKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9273-    PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9274:        (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)vk::GetDeviceProcAddr(device(), "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9275-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9300-    if (DeviceValidationVersion() >= VK_API_VERSION_1_2) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9301:        auto fpGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)vk::GetDeviceProcAddr(device(), "vkGetBufferDeviceAddress");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9302-        if (nullptr == fpGetBufferDeviceAddress) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9335-        auto fpGetDeviceMemoryOpaqueCaptureAddress =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9336:            (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)vk::GetDeviceProcAddr(device(), "vkGetDeviceMemoryOpaqueCaptureAddress");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9337-        if (nullptr == fpGetDeviceMemoryOpaqueCaptureAddress) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9399-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9400:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9401-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9413-    PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9414:        (PFN_vkGetBufferDeviceAddressKHR)vk::GetDeviceProcAddr(device(), "vkGetBufferDeviceAddressKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9415-    PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9416:        (PFN_vkGetBufferOpaqueCaptureAddressKHR)vk::GetDeviceProcAddr(device(), "vkGetBufferOpaqueCaptureAddressKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9417-    PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9418:        (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)vk::GetDeviceProcAddr(device(), "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9419-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9441-        auto fpGetBufferOpaqueCaptureAddress =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9442:            (PFN_vkGetBufferOpaqueCaptureAddress)vk::GetDeviceProcAddr(device(), "vkGetBufferOpaqueCaptureAddress");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9443-        if (nullptr == fpGetBufferOpaqueCaptureAddress) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9648-        vkCreateSamplerYcbcrConversionFunction =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9649:            (PFN_vkCreateSamplerYcbcrConversionKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkCreateSamplerYcbcrConversionKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9650-        vkDestroySamplerYcbcrConversionFunction =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:9651:            (PFN_vkDestroySamplerYcbcrConversionKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkDestroySamplerYcbcrConversionKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-9652-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-10254-            PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:10255:                (PFN_vkGetImageMemoryRequirements2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkGetImageMemoryRequirements2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-10256-            ASSERT_TRUE(vkGetImageMemoryRequirements2Function != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-10542-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:10543:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-10544-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-10593-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:10594:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-10595-    assert(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-10631-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp:10632:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_buffer_image_memory_sampler.cpp-10633-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-104-    PFN_vkGetPhysicalDeviceImageFormatProperties2KHR p_GetPDIFP2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:105:        (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)vk::GetInstanceProcAddr(inst,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-106-                                                                                "vkGetPhysicalDeviceImageFormatProperties2KHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-131-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:132:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-133-    assert(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-245-        PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:246:            (PFN_vkCreateRenderPass2KHR)vk::GetDeviceProcAddr(device, "vkCreateRenderPass2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-247-        safe_VkRenderPassCreateInfo2 create_info2;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-255-        // For api version >= 1.2, try core entrypoint
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:256:        PFN_vkCreateRenderPass2 vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)vk::GetDeviceProcAddr(device, "vkCreateRenderPass2");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-257-        if (vkCreateRenderPass2) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-277-        PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:278:            (PFN_vkCreateRenderPass2KHR)vk::GetDeviceProcAddr(device, "vkCreateRenderPass2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-279-        safe_VkRenderPassCreateInfo2 create_info2;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-293-    PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:294:        (PFN_vkCreateRenderPass2KHR)vk::GetDeviceProcAddr(device, "vkCreateRenderPass2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-295-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-315-        PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:316:            (PFN_vkCmdBeginRenderPass2KHR)vk::GetDeviceProcAddr(device, "vkCmdBeginRenderPass2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-317-        VkSubpassBeginInfoKHR subpass_begin_info = {VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR, nullptr, VK_SUBPASS_CONTENTS_INLINE};
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-325-        PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2 =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:326:            (PFN_vkCmdBeginRenderPass2KHR)vk::GetDeviceProcAddr(device, "vkCmdBeginRenderPass2");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-327-        if (vkCmdBeginRenderPass2) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-710-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:711:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(renderFramework->instance(),
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-712-                                                                     "vkGetPhysicalDeviceFeatures2KHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-974-    // Find out what version the instance supports and record the default target instance
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:975:    auto enumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)vk::GetInstanceProcAddr(nullptr, "vkEnumerateInstanceVersion");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-976-    if (enumerateInstanceVersion) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-1065-    fpvkSetPhysicalDeviceFormatPropertiesEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:1066:        (PFN_vkSetPhysicalDeviceFormatPropertiesEXT)vk::GetInstanceProcAddr(instance(), "vkSetPhysicalDeviceFormatPropertiesEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:1067:    fpvkGetOriginalPhysicalDeviceFormatPropertiesEXT = (PFN_vkGetOriginalPhysicalDeviceFormatPropertiesEXT)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-1068-        instance(), "vkGetOriginalPhysicalDeviceFormatPropertiesEXT");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-1082-    fpvkSetPhysicalDeviceFormatProperties2EXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:1083:        (PFN_vkSetPhysicalDeviceFormatProperties2EXT)vk::GetInstanceProcAddr(instance(), "vkSetPhysicalDeviceFormatProperties2EXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-1084-    fpvkGetOriginalPhysicalDeviceFormatProperties2EXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:1085:        (PFN_vkGetOriginalPhysicalDeviceFormatProperties2EXT)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-1086-            instance(), "vkGetOriginalPhysicalDeviceFormatProperties2EXT");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-1868-    PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:1869:        (PFN_vkCreateRayTracingPipelinesNV)vk::GetInstanceProcAddr(layer_test_.instance(), "vkCreateRayTracingPipelinesNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-1870-    err = vkCreateRayTracingPipelinesNV(layer_test_.device(), pipeline_cache_, 1, &rp_ci_, nullptr, &pipeline_);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-1883-    PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:1884:        (PFN_vkCreateRayTracingPipelinesKHR)vk::GetInstanceProcAddr(layer_test_.instance(), "vkCreateRayTracingPipelinesKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-1885-    err = vkCreateRayTracingPipelinesKHR(layer_test_.device(), pipeline_cache_, 1, &rp_ci_KHR_, nullptr, &pipeline_);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2142-        PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:2143:            (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2144-        ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2159-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:2160:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2161-    ASSERT_TRUE(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2791-    PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = reinterpret_cast<PFN_vkCreateRayTracingPipelinesNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:2792:        vk::GetDeviceProcAddr(m_device->handle(), "vkCreateRayTracingPipelinesNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2793-    ASSERT_TRUE(vkCreateRayTracingPipelinesNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2796-        reinterpret_cast<PFN_vkGetRayTracingShaderGroupHandlesNV>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:2797:            vk::GetDeviceProcAddr(m_device->handle(), "vkGetRayTracingShaderGroupHandlesNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2798-    ASSERT_TRUE(vkGetRayTracingShaderGroupHandlesNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2800-    PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp:2801:        reinterpret_cast<PFN_vkCmdTraceRaysNV>(vk::GetDeviceProcAddr(m_device->handle(), "vkCmdTraceRaysNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/layer_validation_tests.cpp-2802-    ASSERT_TRUE(vkCmdTraceRaysNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkrenderframework.cpp-237-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkrenderframework.cpp:238:    auto DebugCreate = reinterpret_cast<DebugCreateFnType>(vk::GetInstanceProcAddr(instance, debug_create_fn_name_));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkrenderframework.cpp-239-    if (!DebugCreate) return;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkrenderframework.cpp-248-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkrenderframework.cpp:249:    auto DebugDestroy = reinterpret_cast<DebugDestroyFnType>(vk::GetInstanceProcAddr(instance, debug_destroy_fn_name_));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkrenderframework.cpp-250-    assert(DebugDestroy);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkrenderframework.cpp-1975-    PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkrenderframework.cpp:1976:        (PFN_vkCmdBuildAccelerationStructureNV)vk::GetDeviceProcAddr(as->dev(), "vkCmdBuildAccelerationStructureNV");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkrenderframework.cpp-1977-    assert(vkCmdBuildAccelerationStructureNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1473-        auto fpCmdDrawIndirectCountKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:1474:            (PFN_vkCmdDrawIndirectCountKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdDrawIndirectCountKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1475-        ASSERT_NE(fpCmdDrawIndirectCountKHR, nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1483-            auto fpCmdDrawIndirectCount =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:1484:                (PFN_vkCmdDrawIndirectCount)vk::GetDeviceProcAddr(m_device->device(), "vkCmdDrawIndirectCount");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1485-            if (nullptr == fpCmdDrawIndirectCount) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1497-        auto fpCmdDrawIndexedIndirectCountKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:1498:            (PFN_vkCmdDrawIndexedIndirectCountKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdDrawIndexedIndirectCountKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1499-        ASSERT_NE(fpCmdDrawIndexedIndirectCountKHR, nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1506-            auto fpCmdDrawIndexedIndirectCount =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:1507:                (PFN_vkCmdDrawIndexedIndirectCount)vk::GetDeviceProcAddr(m_device->device(), "vkCmdDrawIndexedIndirectCount");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1508-            if (nullptr == fpCmdDrawIndexedIndirectCount) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1625-        PFN_vkCmdDispatchBaseKHR fp_vkCmdDispatchBaseKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:1626:            (PFN_vkCmdDispatchBaseKHR)vk::GetInstanceProcAddr(instance(), "vkCmdDispatchBaseKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-1627-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-2814-            PFN_vkSetPhysicalDeviceLimitsEXT fpvkSetPhysicalDeviceLimitsEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:2815:                (PFN_vkSetPhysicalDeviceLimitsEXT)vk::GetInstanceProcAddr(instance(), "vkSetPhysicalDeviceLimitsEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-2816-            if (!fpvkSetPhysicalDeviceLimitsEXT) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-5542-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:5543:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-5544-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-5850-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:5851:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-5852-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-5916-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:5917:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-5918-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-6417-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:6418:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-6419-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-6488-    PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:6489:        (PFN_vkCmdSetLineStippleEXT)vk::GetDeviceProcAddr(m_device->device(), "vkCmdSetLineStippleEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-6490-    ASSERT_TRUE(vkCmdSetLineStippleEXT != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-6689-    PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:6690:        reinterpret_cast<PFN_vkCreateRayTracingPipelinesNV>(vk::GetInstanceProcAddr(instance(), "vkCreateRayTracingPipelinesNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-6691-    ASSERT_TRUE(vkCreateRayTracingPipelinesNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7181-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:7182:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7183-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7205-    PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:7206:        reinterpret_cast<PFN_vkCreateRayTracingPipelinesNV>(vk::GetInstanceProcAddr(instance(), "vkCreateRayTracingPipelinesNV"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7207-    ASSERT_TRUE(vkCreateRayTracingPipelinesNV != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7336-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:7337:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7338-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7359-    PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:7360:        reinterpret_cast<PFN_vkCreateRayTracingPipelinesKHR>(vk::GetInstanceProcAddr(instance(), "vkCreateRayTracingPipelinesKHR"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7361-    ASSERT_TRUE(vkCreateRayTracingPipelinesKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7512-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:7513:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7514-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7543-    PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:7544:        reinterpret_cast<PFN_vkCreateRayTracingPipelinesKHR>(vk::GetInstanceProcAddr(instance(), "vkCreateRayTracingPipelinesKHR"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-7545-    ASSERT_TRUE(vkCreateRayTracingPipelinesKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-8253-    PFN_vkSetPhysicalDeviceLimitsEXT fpvkSetPhysicalDeviceLimitsEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:8254:        (PFN_vkSetPhysicalDeviceLimitsEXT)vk::GetInstanceProcAddr(instance(), "vkSetPhysicalDeviceLimitsEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-8255-    PFN_vkGetOriginalPhysicalDeviceLimitsEXT fpvkGetOriginalPhysicalDeviceLimitsEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:8256:        (PFN_vkGetOriginalPhysicalDeviceLimitsEXT)vk::GetInstanceProcAddr(instance(), "vkGetOriginalPhysicalDeviceLimitsEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-8257-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-8347-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:8348:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-8349-    auto features2 = lvl_init_struct<VkPhysicalDeviceFeatures2KHR>(&ray_tracing_features);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-8378-    PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:8379:        (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-8380-            instance(), "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-8386-    PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp:8387:        (PFN_vkGetPhysicalDeviceProperties2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceProperties2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vklayertests_pipeline_shader.cpp-8388-    ASSERT_TRUE(vkGetPhysicalDeviceProperties2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-72-    auto fpGetPhysicalDeviceToolPropertiesEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:73:        (PFN_vkGetPhysicalDeviceToolPropertiesEXT)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceToolPropertiesEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-74-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-122-    auto fpGetBufferMemoryRequirements =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:123:        (PFN_vkGetBufferMemoryRequirements2)vk::GetDeviceProcAddr(m_device->device(), "vkGetBufferMemoryRequirements2");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-124-    if (fpGetBufferMemoryRequirements) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-966-    PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:967:        (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceDisplayPropertiesKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-968-    PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:969:        (PFN_vkGetDisplayModePropertiesKHR)vk::GetInstanceProcAddr(instance(), "vkGetDisplayModePropertiesKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-970-    ASSERT_TRUE(vkGetPhysicalDeviceDisplayPropertiesKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-1356-    PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:1357:        (PFN_vkGetPhysicalDeviceFeatures2)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-1358-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-1438-    PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:1439:        (PFN_vkGetPhysicalDeviceFeatures2)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-1440-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-2560-    PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:2561:        (PFN_vkCmdPushDescriptorSetKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdPushDescriptorSetKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-2562-    assert(vkCmdPushDescriptorSetKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-2644-    PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:2645:        (PFN_vkCmdPushDescriptorSetKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdPushDescriptorSetKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-2646-    assert(vkCmdPushDescriptorSetKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-2707-    PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:2708:        (PFN_vkCmdPushDescriptorSetKHR)vk::GetDeviceProcAddr(m_device->device(), "vkCmdPushDescriptorSetKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-2709-    ASSERT_TRUE(vkCmdPushDescriptorSetKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6063-    auto vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6064:        (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6065-            instance(), "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6096-    auto vkGetSemaphoreWin32HandleKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6097:        (PFN_vkGetSemaphoreWin32HandleKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetSemaphoreWin32HandleKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6098-    err = vkGetSemaphoreWin32HandleKHR(m_device->device(), &ghi, &handle);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6104-    auto vkImportSemaphoreWin32HandleKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6105:        (PFN_vkImportSemaphoreWin32HandleKHR)vk::GetDeviceProcAddr(m_device->device(), "vkImportSemaphoreWin32HandleKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6106-    err = vkImportSemaphoreWin32HandleKHR(m_device->device(), &ihi);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6111-    VkSemaphoreGetFdInfoKHR ghi = {VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR, nullptr, export_semaphore, handle_type};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6112:    auto vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetSemaphoreFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6113-    err = vkGetSemaphoreFdKHR(m_device->device(), &ghi, &fd);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6118-        VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR, nullptr, import_semaphore, 0, handle_type, fd};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6119:    auto vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)vk::GetDeviceProcAddr(m_device->device(), "vkImportSemaphoreFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6120-    err = vkImportSemaphoreFdKHR(m_device->device(), &ihi);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6186-    VkExternalFencePropertiesKHR efp = {VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR, nullptr};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6187:    auto vkGetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6188-        instance(), "vkGetPhysicalDeviceExternalFencePropertiesKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6222-        auto vkGetFenceWin32HandleKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6223:            (PFN_vkGetFenceWin32HandleKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetFenceWin32HandleKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6224-        err = vkGetFenceWin32HandleKHR(m_device->device(), &ghi, &handle);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6232-        auto vkImportFenceWin32HandleKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6233:            (PFN_vkImportFenceWin32HandleKHR)vk::GetDeviceProcAddr(m_device->device(), "vkImportFenceWin32HandleKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6234-        err = vkImportFenceWin32HandleKHR(m_device->device(), &ifi);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6241-        VkFenceGetFdInfoKHR gfi = {VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR, nullptr, export_fence, handle_type};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6242:        auto vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetFenceFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6243-        err = vkGetFenceFdKHR(m_device->device(), &gfi, &fd);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6249-        VkImportFenceFdInfoKHR ifi = {VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR, nullptr, import_fence, 0, handle_type, fd};
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6250:        auto vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)vk::GetDeviceProcAddr(m_device->device(), "vkImportFenceFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6251-        err = vkImportFenceFdKHR(m_device->device(), &ifi);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6677-    auto vkGetPhysicalDeviceExternalBufferPropertiesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6678:        (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)vk::GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6679-            instance(), "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6750-    auto vkGetMemoryWin32HandleKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6751:        (PFN_vkGetMemoryWin32HandleKHR)vk::GetInstanceProcAddr(instance(), "vkGetMemoryWin32HandleKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6752-    ASSERT_TRUE(vkGetMemoryWin32HandleKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6761-    // Export memory to fd
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6762:    auto vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)vk::GetInstanceProcAddr(instance(), "vkGetMemoryFdKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6763-    ASSERT_TRUE(vkGetMemoryFdKHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6819-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6820:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6821-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6920-    auto vkGetBufferMemoryRequirements2KHR = reinterpret_cast<PFN_vkGetBufferMemoryRequirements2KHR>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6921:        vk::GetDeviceProcAddr(m_device->device(), "vkGetBufferMemoryRequirements2KHR"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6922-    ASSERT_TRUE(vkGetBufferMemoryRequirements2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6945-    auto vkGetImageMemoryRequirements2KHR = reinterpret_cast<PFN_vkGetImageMemoryRequirements2KHR>(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:6946:        vk::GetDeviceProcAddr(m_device->device(), "vkGetImageMemoryRequirements2KHR"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-6947-    ASSERT_TRUE(vkGetImageMemoryRequirements2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7007-    auto vkBindBufferMemory2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7008:        reinterpret_cast<PFN_vkBindBufferMemory2KHR>(vk::GetDeviceProcAddr(m_device->device(), "vkBindBufferMemory2KHR"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7009-    ASSERT_TRUE(vkBindBufferMemory2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7030-    auto vkBindImageMemory2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7031:        reinterpret_cast<PFN_vkBindImageMemory2KHR>(vk::GetDeviceProcAddr(m_device->device(), "vkBindImageMemory2KHR"));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7032-    ASSERT_TRUE(vkBindImageMemory2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7238-    } else {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7239:        vkBindImageMemory2Function = (PFN_vkBindImageMemory2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkBindImageMemory2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7240-        vkGetImageMemoryRequirements2Function =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7241:            (PFN_vkGetImageMemoryRequirements2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkGetImageMemoryRequirements2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7242:        vkGetPhysicalDeviceMemoryProperties2Function = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)vk::GetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7243-            m_device->handle(), "vkGetPhysicalDeviceMemoryProperties2KHR");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7517-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7518:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7519-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7708-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7709:    auto fpvkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)vk::GetDeviceProcAddr(m_device->device(), "vkResetQueryPoolEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7710-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7828-    m_errorMonitor->ExpectSuccess();
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7829:    auto fpDestroySurface = (PFN_vkCreateValidationCacheEXT)vk::GetDeviceProcAddr(m_device->device(), "vkDestroySurfaceKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7830-    if (fpDestroySurface) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7846-    m_errorMonitor->ExpectSuccess();
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7847:    auto vkTrimCommandPool = vk::GetDeviceProcAddr(m_device->device(), "vkTrimCommandPool");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7848:    auto vkTrimCommandPoolKHR = vk::GetDeviceProcAddr(m_device->device(), "vkTrimCommandPoolKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7849-    if (nullptr == vkTrimCommandPool) m_errorMonitor->SetError("Unexpected null pointer");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7869-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7870:    vkTrimCommandPoolKHR = vk::GetDeviceProcAddr(device, "vkTrimCommandPoolKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7871-    if (nullptr == vkTrimCommandPoolKHR) m_errorMonitor->SetError("Unexpected null pointer");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7888-    PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7889:        (PFN_vkGetPhysicalDeviceFeatures2)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7890-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2 != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7933-    auto vkGetBufferDeviceAddress =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7934:        (PFN_vkGetBufferDeviceAddress)vk::GetDeviceProcAddr(m_device->device(), "vkGetBufferDeviceAddress");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7935-    ASSERT_TRUE(vkGetBufferDeviceAddress != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7940-    auto vkGetBufferDeviceAddressKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:7941:        (PFN_vkGetBufferDeviceAddressKHR)vk::GetDeviceProcAddr(m_device->device(), "vkGetBufferDeviceAddressKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-7942-    if (nullptr != vkGetBufferDeviceAddressKHR) m_errorMonitor->SetError("Didn't receive expected null pointer");
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-8674-    PFN_vkGetSwapchainImagesKHR fpGetSwapchainImagesKHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:8675:        (PFN_vkGetSwapchainImagesKHR)vk::GetDeviceProcAddr(m_device->handle(), "vkGetSwapchainImagesKHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-8676-    fpGetSwapchainImagesKHR(m_device->handle(), m_swapchain, &image_count, NULL);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-8914-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:8915:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-8916-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-8990-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:8991:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-8992-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-9119-    PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp:9120:        (PFN_vkGetPhysicalDeviceFeatures2KHR)vk::GetInstanceProcAddr(instance(), "vkGetPhysicalDeviceFeatures2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/tests/vkpositivelayertests.cpp-9121-    ASSERT_TRUE(vkGetPhysicalDeviceFeatures2KHR != nullptr);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/BUILD.md-380-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/BUILD.md:381:The default location is `$CMAKE_BINARY_DIR\install`, but can be changed with
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/BUILD.md-382-the `CMAKE_INSTALL_PREFIX` variable when first generating the project build
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/docs/creating_tests.md-103-} else {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/docs/creating_tests.md:104:    vkBindImageMemory2Function = (PFN_vkBindImageMemory2KHR)vk::GetDeviceProcAddr(m_device->handle(), "vkBindImageMemory2KHR");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/docs/creating_tests.md-105-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-247-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:248:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetPhysicalDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-249-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-958-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:959:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetDeviceProcAddr(VkDevice device, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-960-    auto layer_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-973-    if (!table.GetDeviceProcAddr) return nullptr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:974:    return table.GetDeviceProcAddr(device, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-975-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-976-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:977:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetInstanceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-978-    const auto &item = name_to_funcptr_map.find(funcName);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-984-    if (!table.GetInstanceProcAddr) return nullptr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:985:    return table.GetInstanceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-986-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-987-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:988:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetPhysicalDeviceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-989-    const auto &item = name_to_funcptr_map.find(funcName);
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-999-    if (!table.GetPhysicalDeviceProcAddr) return nullptr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:1000:    return table.GetPhysicalDeviceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1001-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1033-    PFN_vkGetInstanceProcAddr fpGetInstanceProcAddr = chain_info->u.pLayerInfo->pfnNextGetInstanceProcAddr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:1034:    PFN_vkCreateInstance fpCreateInstance = (PFN_vkCreateInstance)fpGetInstanceProcAddr(NULL, "vkCreateInstance");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1035-    if (fpCreateInstance == NULL) return VK_ERROR_INITIALIZATION_FAILED;
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1182-    PFN_vkGetDeviceProcAddr fpGetDeviceProcAddr = chain_info->u.pLayerInfo->pfnNextGetDeviceProcAddr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:1183:    PFN_vkCreateDevice fpCreateDevice = (PFN_vkCreateDevice)fpGetInstanceProcAddr(instance_interceptor->instance, "vkCreateDevice");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1184-    if (fpCreateDevice == NULL) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1786-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:1787:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkDevice dev, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:1788:    return vulkan_layer_chassis::GetDeviceProcAddr(dev, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1789-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1790-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:1791:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:1792:    return vulkan_layer_chassis::GetInstanceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1793-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1794-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:1795:VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_layerGetPhysicalDeviceProcAddr(VkInstance instance,
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1796-                                                                                           const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py:1797:    return vulkan_layer_chassis::GetPhysicalDeviceProcAddr(instance, funcName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/scripts/layer_chassis_generator.py-1798-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/CONTRIBUTING.md-151-* To install: `sudo pip install cmake_format`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/CONTRIBUTING.md:152:* To run: `cmake-format --in-place $FILENAME`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/CONTRIBUTING.md-153-* **IMPORTANT (June 2018)** cmake-format v0.3.6 has a
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/CONTRIBUTING.md-156-  A workaround is to use the following command _before_ running cmake-format:
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/CONTRIBUTING.md:157:  `sed --in-place='' 's/^  *#/#/' $FILENAME`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-validation-layers/src/CONTRIBUTING.md-158-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/windows-runtime-installer/InstallerRT.nsi-113-  Pop $_LOGICLIB_TEMP
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/windows-runtime-installer/InstallerRT.nsi:114:  !insertmacro _!= $_LOGICLIB_TEMP 0 `${_t}` `${_f}`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/windows-runtime-installer/InstallerRT.nsi-115-!macroend
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/windows-runtime-installer/InstallerRT.nsi-119-  !if ${NSIS_PTR_SIZE} > 4
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/windows-runtime-installer/InstallerRT.nsi:120:    !insertmacro LogicLib_JumpToBranch `${_t}` `${_f}`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/windows-runtime-installer/InstallerRT.nsi-121-  !else
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/windows-runtime-installer/InstallerRT.nsi:122:    !insertmacro _IsWow64 `${_a}` `${_b}` `${_t}` `${_f}`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/windows-runtime-installer/InstallerRT.nsi-123-  !endif
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-133-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:134:#define GET_INSTANCE_PROC_ADDR(inst, entrypoint)                                                              \
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-135-    {                                                                                                         \
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:136:        demo->fp##entrypoint = (PFN_vk##entrypoint)vkGetInstanceProcAddr(inst, "vk" #entrypoint);             \
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-137-        if (demo->fp##entrypoint == NULL) {                                                                   \
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-143-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:144:#define GET_DEVICE_PROC_ADDR(dev, entrypoint)                                                                    \
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-145-    {                                                                                                            \
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:146:        if (!g_gdpa) g_gdpa = (PFN_vkGetDeviceProcAddr)vkGetInstanceProcAddr(demo->inst, "vkGetDeviceProcAddr"); \
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-147-        demo->fp##entrypoint = (PFN_vk##entrypoint)g_gdpa(dev, "vk" #entrypoint);                                \
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3265-        demo->CreateDebugUtilsMessengerEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3266:            (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(demo->inst, "vkCreateDebugUtilsMessengerEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3267-        demo->DestroyDebugUtilsMessengerEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3268:            (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(demo->inst, "vkDestroyDebugUtilsMessengerEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3269-        demo->SubmitDebugUtilsMessageEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3270:            (PFN_vkSubmitDebugUtilsMessageEXT)vkGetInstanceProcAddr(demo->inst, "vkSubmitDebugUtilsMessageEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3271-        demo->CmdBeginDebugUtilsLabelEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3272:            (PFN_vkCmdBeginDebugUtilsLabelEXT)vkGetInstanceProcAddr(demo->inst, "vkCmdBeginDebugUtilsLabelEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3273-        demo->CmdEndDebugUtilsLabelEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3274:            (PFN_vkCmdEndDebugUtilsLabelEXT)vkGetInstanceProcAddr(demo->inst, "vkCmdEndDebugUtilsLabelEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3275-        demo->CmdInsertDebugUtilsLabelEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3276:            (PFN_vkCmdInsertDebugUtilsLabelEXT)vkGetInstanceProcAddr(demo->inst, "vkCmdInsertDebugUtilsLabelEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3277-        demo->SetDebugUtilsObjectNameEXT =
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3278:            (PFN_vkSetDebugUtilsObjectNameEXT)vkGetInstanceProcAddr(demo->inst, "vkSetDebugUtilsObjectNameEXT");
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3279-        if (NULL == demo->CreateDebugUtilsMessengerEXT || NULL == demo->DestroyDebugUtilsMessengerEXT ||
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3312-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3313:    GET_INSTANCE_PROC_ADDR(demo->inst, GetPhysicalDeviceSurfaceSupportKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3314:    GET_INSTANCE_PROC_ADDR(demo->inst, GetPhysicalDeviceSurfaceCapabilitiesKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3315:    GET_INSTANCE_PROC_ADDR(demo->inst, GetPhysicalDeviceSurfaceFormatsKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3316:    GET_INSTANCE_PROC_ADDR(demo->inst, GetPhysicalDeviceSurfacePresentModesKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3317:    GET_INSTANCE_PROC_ADDR(demo->inst, GetSwapchainImagesKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3318-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3486-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3487:    GET_DEVICE_PROC_ADDR(demo->device, CreateSwapchainKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3488:    GET_DEVICE_PROC_ADDR(demo->device, DestroySwapchainKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3489:    GET_DEVICE_PROC_ADDR(demo->device, GetSwapchainImagesKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3490:    GET_DEVICE_PROC_ADDR(demo->device, AcquireNextImageKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3491:    GET_DEVICE_PROC_ADDR(demo->device, QueuePresentKHR);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3492-    if (demo->VK_GOOGLE_display_timing_enabled) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3493:        GET_DEVICE_PROC_ADDR(demo->device, GetRefreshCycleDurationGOOGLE);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c:3494:        GET_DEVICE_PROC_ADDR(demo->device, GetPastPresentationTimingGOOGLE);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/cube/cube.c-3495-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/BUILD.md-326-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/BUILD.md:327:The default location is `$CMAKE_BINARY_DIR\install`, but can be changed with
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/BUILD.md-328-the `CMAKE_INSTALL_PREFIX` variable when first generating the project build
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/vulkaninfo/vulkaninfo.h-485-    void Load(T &dest, const char *name) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/vulkaninfo/vulkaninfo.h:486:        dest = reinterpret_cast<T>(vkGetInstanceProcAddr(instance, name));
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/vulkaninfo/vulkaninfo.h-487-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/vulkaninfo/macOS/vulkaninfo.sh-1-#!/bin/bash
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/vulkaninfo/macOS/vulkaninfo.sh:2:BASEDIR=`dirname $0`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/vulkaninfo/macOS/vulkaninfo.sh-3-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/vulkaninfo/CMakeLists.txt-91-if(APPLE)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/vulkaninfo/CMakeLists.txt:92:    include(${CMAKE_CURRENT_SOURCE_DIR}/macOS/vulkaninfo.cmake)
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/vulkaninfo/CMakeLists.txt-93-endif()
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-203-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py:204:static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetPhysicalDeviceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-205-    // TODO: This function should only care about physical device functions and return nullptr for other functions
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-225-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py:226:EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-227-    if (!vkmock::negotiate_loader_icd_interface_called) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-229-    }
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py:230:    return vkmock::GetInstanceProcAddr(instance, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-231-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-232-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py:233:EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance instance, const char* pName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py:234:    return vkmock::GetPhysicalDeviceProcAddr(instance, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-235-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-674-'vkGetDeviceProcAddr': '''
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py:675:    return GetInstanceProcAddr(nullptr, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/scripts/mock_icd_generator.py-676-''',
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-323-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp:324:static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-325-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-339-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp:340:static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-341-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-344-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp:345:    return GetInstanceProcAddr(nullptr, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-346-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-4723-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp:4724:static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetPhysicalDeviceProcAddr(VkInstance instance, const char *funcName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-4725-    // TODO: This function should only care about physical device functions and return nullptr for other functions
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-4745-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp:4746:EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-4747-    if (!vkmock::negotiate_loader_icd_interface_called) {
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-4749-    }
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp:4750:    return vkmock::GetInstanceProcAddr(instance, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-4751-}
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-4752-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp:4753:EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance instance, const char* pName) {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp:4754:    return vkmock::GetPhysicalDeviceProcAddr(instance, pName);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.cpp-4755-}
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.h-307-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.h:308:static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.h-309-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.h-311-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.h:312:static VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL GetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/icd/generated/mock_icd.h-313-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/CONTRIBUTING.md-108-* To install: `sudo pip install cmake_format`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/CONTRIBUTING.md:109:* To run: `cmake-format --in-place $FILENAME`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/CONTRIBUTING.md-110-* **IMPORTANT (June 2018)** cmake-format v0.3.6 has a
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/CONTRIBUTING.md-113-  A workaround is to use the following command _before_ running cmake-format:
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/CONTRIBUTING.md:114:  `sed --in-place='' 's/^  *#/#/' $FILENAME`
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-tools/src/CONTRIBUTING.md-115-
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-2127-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:2128:    PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-2129-    {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:2130:      return ::vkGetDeviceProcAddr( device, pName );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-2131-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-2716-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:2717:    PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-2718-    {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:2719:      return ::vkGetInstanceProcAddr( instance, pName );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-2720-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-19416-    template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:19417:    PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-19418-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-19419-    template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:19420:    PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-19421-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-21129-    template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:21130:    PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-21131-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-21132-    template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:21133:    PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-21134-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-78894-  template<typename Dispatch>
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:78895:  VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-78896-  {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:78897:    return d.vkGetDeviceProcAddr( m_device, pName );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-78898-  }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-78900-  template<typename Dispatch>
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:78901:  VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-78902-  {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:78903:    return d.vkGetDeviceProcAddr( m_device, name.c_str() );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-78904-  }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-81236-  template<typename Dispatch>
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:81237:  VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-81238-  {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:81239:    return d.vkGetInstanceProcAddr( m_instance, pName );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-81240-  }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-81242-  template<typename Dispatch>
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:81243:  VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-81244-  {
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:81245:    return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-81246-  }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84335-      vkGetInstanceProcAddr = getInstanceProcAddr;
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84336:      vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84337:      vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84338:      vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84339:      vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84340-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84362-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84363:      vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84364-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84365:      vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84366:      vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84367:      vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84368:      vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84369-#ifdef VK_USE_PLATFORM_IOS_MVK
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84370:      vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84371-#endif /*VK_USE_PLATFORM_IOS_MVK*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84372-#ifdef VK_USE_PLATFORM_FUCHSIA
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84373:      vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84374-#endif /*VK_USE_PLATFORM_FUCHSIA*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84375-#ifdef VK_USE_PLATFORM_MACOS_MVK
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84376:      vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84377-#endif /*VK_USE_PLATFORM_MACOS_MVK*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84378-#ifdef VK_USE_PLATFORM_METAL_EXT
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84379:      vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84380-#endif /*VK_USE_PLATFORM_METAL_EXT*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84381-#ifdef VK_USE_PLATFORM_GGP
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84382:      vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84383-#endif /*VK_USE_PLATFORM_GGP*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84384-#ifdef VK_USE_PLATFORM_VI_NN
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84385:      vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84386-#endif /*VK_USE_PLATFORM_VI_NN*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84387-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84388:      vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84389-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84390-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84391:      vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84392-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84393-#ifdef VK_USE_PLATFORM_XCB_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84394:      vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84395-#endif /*VK_USE_PLATFORM_XCB_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84396-#ifdef VK_USE_PLATFORM_XLIB_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84397:      vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84398-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84399:      vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84400:      vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84401:      vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84402:      vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84403:      vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84404:      vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84405:      vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84406:      vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84407:      vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84408-#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84409:      vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84410-#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84411:      vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84412:      vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84413:      vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84414:      vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84415:      vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84416:      vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84417:      vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84418:      vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84419:      vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84420:      vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84421:      vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84422:      vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84423:      vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84424:      vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84425:      vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84426:      vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84427:      vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84428:      vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84429:      vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84430:      vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84431:      vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84432:      vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84433:      vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84434:      vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84435:      vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84436:      vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84437:      vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84438:      vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84439:      vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84440:      vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84441:      vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84442:      vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84443:      vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84444:      vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84445:      vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84446:      vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84447:      vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84448:      vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84449:      vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84450:      vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84451:      vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84452:      vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84453:      vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84454:      vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84455:      vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84456:      vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84457:      vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84458:      vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84459:      vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84460:      vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84461:      vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84462:      vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84463:      vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84464-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84465:      vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84466-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84467:      vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84468:      vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84469:      vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84470-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84471:      vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84472-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84473-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84474:      vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84475-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84476-#ifdef VK_USE_PLATFORM_XCB_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84477:      vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84478-#endif /*VK_USE_PLATFORM_XCB_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84479-#ifdef VK_USE_PLATFORM_XLIB_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84480:      vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84481-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84482-#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84483:      vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84484-#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84485:      vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84486:      vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84487:      vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84488:      vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84489:      vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84490:      vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84491:      vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84492:      vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84493:      vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84494:      vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84495:      vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84496:      vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84497:      vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84498:      vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84499:      vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84500:      vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84501:      vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84502:      vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84503-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84504:      vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84505-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84506-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84507:      vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84508-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84509:      vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84510:      vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84511:      vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84512:      vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84513-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84514:      vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84515-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84516:      vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84517-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84518:      vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84519-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84520:      vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84521:      vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84522:      vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84523:      vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84524-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84525:      vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84526-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84527:      vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84528:      vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84529:      vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84530:      vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84531:      vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84532:      vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84533:      vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84534:      vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84535:      vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84536:      vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84537:      vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84538:      vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84539:      vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84540:      vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84541:      vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84542:      vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84543:      vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84544:      vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84545:      vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84546:      vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84547:      vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84548:      vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84549:      vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84550:      vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84551:      vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84552:      vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84553:      vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84554:      vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84555:      vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84556:      vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84557:      vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84558:      vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84559:      vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84560:      vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84561:      vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84562:      vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84563:      vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84564:      vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84565:      vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84566:      vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84567:      vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84568:      vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84569:      vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84570:      vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84571:      vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84572:      vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84573:      vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84574:      vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84575:      vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84576:      vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84577:      vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84578:      vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84579:      vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84580:      vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84581:      vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84582:      vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84583:      vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84584:      vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84585:      vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84586:      vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84587:      vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84588:      vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84589:      vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84590:      vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84591:      vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84592:      vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84593:      vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84594:      vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84595-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84596:      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84597-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84598-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84599:      vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84600-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84601:      vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84602:      vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84603:      vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84604:      vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84605:      vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84606:      vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84607:      vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84608:      vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84609:      vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84610-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84611:      vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84612-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84613:      vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84614:      vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84615:      vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84616:      vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84617:      vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84618:      vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84619:      vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84620:      vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84621:      vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84622:      vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84623:      vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84624:      vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84625:      vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84626:      vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84627:      vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84628-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84629:      vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84630-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84631:      vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84632-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84633:      vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84634-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84635-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84636:      vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84637-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84638-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84639:      vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84640-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84641-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84642:      vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84643-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84644:      vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84645:      vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84646:      vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84647:      vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84648:      vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84649-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84650:      vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84651-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84652:      vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84653:      vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84654:      vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84655:      vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84656:      vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84657:      vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84658:      vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84659:      vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84660:      vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84661:      vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84662:      vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84663:      vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84664:      vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84665:      vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84666:      vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84667-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84668:      vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84669-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84670:      vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84671:      vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84672:      vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84673:      vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84674:      vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84675:      vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84676:      vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84677:      vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84678:      vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84679:      vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84680:      vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84681:      vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84682:      vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84683:      vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84684-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84685:      vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84686-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84687:      vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84688:      vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84689:      vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84690:      vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84691:      vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84692-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84693:      vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84694-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84695:      vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84696:      vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84697:      vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84698:      vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84699:      vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84700:      vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84701:      vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84702:      vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84703:      vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84704:      vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84705:      vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84706:      vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84707:      vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84708:      vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84709:      vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84710:      vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84711:      vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84712:      vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84713:      vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84714:      vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84715:      vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84716:      vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84717:      vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84718:      vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84719:      vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84720:      vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84721:      vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84722:      vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84723:      vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84724:      vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84725-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84726:      vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84727-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84728:      vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84729-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84730:      vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84731-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84732:      vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84733-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84734:      vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84735-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84736:      vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84737:      vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84738:      vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84739:      vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84740:      vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84741:      vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84742:      vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84743:      vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84744:      vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84745-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84746:      vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84747-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84748-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84749:      vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84750-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84751:      vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84752:      vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84753-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84754:      vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84755-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84756:      vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84757:      vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84758:      vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84759-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84760:      vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84761-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84762:      vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84763:      vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84764:      vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84765:      vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84766:      vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84767:      vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84768:      vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84769:      vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84770:      vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84771:      vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84772-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84773:      vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84774-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84775:      vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84776:      vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84777:      vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84778:      vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84779:      vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84780:      vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84781:      vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84782:      vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84783:      vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84784:      vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84785:      vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84786-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84787:      vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84788-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84789:      vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84790:      vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84791:      vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84792-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84793:      vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84794-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84795-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84796:      vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84797-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84798-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84799:      vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84800-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84801:      vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84802:      vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84803:      vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84804:      vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84805:      vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84806:      vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84807:      vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84808:      vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84809-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84810:      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84811-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84812:      vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84813:      vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84814:      vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84815:      vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84816:      vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84817:      vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84818:      vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84819-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84820:      vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84821-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84822:      vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84823:      vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84824:      vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84825:      vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84826:      vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84827:      vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84828-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84829:      vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84830-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84831:      vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84832-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84833:      vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84834-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84835:      vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84836:      vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84837:      vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84838:      vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84839:      vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84840:      vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84841:      vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84842-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84843:      vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84844-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84845:      vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84846:      vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84847:      vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84848:      vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84849:      vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84850:      vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84851:      vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84852:      vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84853:      vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84854:      vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84855:      vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84856:      vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84857:      vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84858:      vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84859:      vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84860:      vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84861:      vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84862:      vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84863:      vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84864:      vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84865:      vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84866:      vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84867:      vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84868:      vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84869:      vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84870:      vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84871-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84872:      vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84873-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84874:      vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84875:      vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84876:      vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84877:      vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84878:      vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84879:      vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84880:      vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84881:      vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84882:      vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84883-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84887-      VkDevice device = static_cast<VkDevice>(deviceCpp);
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84888:      vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84889:      vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84890:      vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84891:      vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84892:      vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84893:      vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84894:      vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84895:      vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84896:      vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84897:      vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84898:      vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84899:      vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84900:      vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84901:      vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84902:      vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84903:      vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84904:      vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84905-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84906:      vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84907-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84908-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84909:      vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84910-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84911:      vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84912:      vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84913:      vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84914:      vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84915-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84916:      vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84917-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84918:      vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84919-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84920:      vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84921-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84922:      vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84923:      vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84924:      vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84925:      vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84926-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84927:      vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84928-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84929:      vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84930:      vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84931:      vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84932:      vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84933:      vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84934:      vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84935:      vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84936:      vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84937:      vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84938:      vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84939:      vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84940:      vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84941:      vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84942:      vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84943:      vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84944:      vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84945:      vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84946:      vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84947:      vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84948:      vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84949:      vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84950:      vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84951:      vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84952:      vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84953:      vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84954:      vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84955:      vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84956:      vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84957:      vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84958:      vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84959:      vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84960:      vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84961:      vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84962:      vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84963:      vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84964:      vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84965:      vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84966:      vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84967:      vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84968:      vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84969:      vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84970:      vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84971:      vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84972:      vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84973:      vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84974:      vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84975:      vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84976:      vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84977:      vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84978:      vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84979:      vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84980:      vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84981:      vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84982:      vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84983:      vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84984:      vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84985:      vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84986:      vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84987:      vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84988:      vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84989:      vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84990:      vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84991:      vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84992:      vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84993:      vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84994:      vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84995:      vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84996:      vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84997-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:84998:      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-84999-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85000-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85001:      vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85002-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85003:      vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85004:      vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85005:      vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85006:      vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85007:      vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85008:      vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85009:      vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85010:      vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85011:      vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85012-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85013:      vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85014-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85015:      vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85016:      vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85017:      vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85018:      vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85019:      vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85020:      vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85021:      vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85022:      vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85023:      vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85024:      vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85025:      vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85026:      vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85027:      vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85028:      vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85029:      vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85030-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85031:      vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85032-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85033:      vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85034-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85035:      vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85036-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85037-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85038:      vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85039-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85040-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85041:      vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85042-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85043-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85044:      vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85045-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85046:      vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85047:      vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85048:      vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85049:      vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85050:      vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85051-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85052:      vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85053-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85054:      vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85055:      vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85056:      vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85057:      vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85058:      vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85059:      vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85060:      vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85061:      vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85062:      vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85063:      vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85064:      vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85065:      vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85066:      vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85067:      vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85068:      vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85069-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85070:      vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85071-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85072:      vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85073:      vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85074:      vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85075:      vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85076:      vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85077:      vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85078:      vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85079:      vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85080:      vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85081:      vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85082:      vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85083:      vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85084:      vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85085:      vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85086-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85087:      vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85088-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85089:      vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85090:      vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85091:      vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85092:      vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85093:      vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85094-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85095:      vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85096-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85097:      vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85098:      vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85099:      vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85100:      vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85101:      vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85102:      vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85103:      vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85104:      vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85105:      vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85106:      vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85107:      vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85108:      vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85109:      vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85110:      vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85111:      vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85112:      vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85113:      vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85114:      vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85115:      vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85116:      vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85117:      vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85118:      vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85119:      vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85120:      vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85121:      vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85122:      vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85123:      vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85124:      vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85125:      vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85126:      vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85127-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85128:      vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85129-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85130:      vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85131-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85132:      vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85133-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85134:      vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85135-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85136:      vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85137-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85138:      vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85139:      vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85140:      vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85141:      vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85142:      vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85143:      vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85144:      vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85145:      vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85146:      vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85147-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85148:      vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85149-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85150-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85151:      vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85152-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85153:      vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85154:      vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85155-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85156:      vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85157-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85158:      vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85159:      vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85160:      vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85161-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85162:      vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85163-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85164:      vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85165:      vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85166:      vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85167:      vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85168:      vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85169:      vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85170:      vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85171:      vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85172:      vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85173:      vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85174-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85175:      vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85176-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85177:      vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85178:      vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85179:      vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85180:      vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85181:      vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85182:      vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85183:      vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85184:      vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85185:      vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85186:      vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85187:      vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85188-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85189:      vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85190-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85191:      vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85192:      vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85193:      vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85194-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85195:      vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85196-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85197-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85198:      vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85199-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85200-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85201:      vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85202-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85203:      vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85204:      vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85205:      vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85206:      vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85207:      vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85208:      vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85209:      vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85210:      vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85211-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85212:      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85213-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85214:      vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85215:      vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85216:      vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85217:      vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85218:      vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85219:      vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85220:      vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85221-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85222:      vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85223-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85224:      vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85225:      vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85226:      vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85227:      vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85228:      vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85229:      vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85230-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85231:      vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85232-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85233:      vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85234-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85235:      vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85236-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85237:      vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85238:      vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85239:      vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85240:      vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85241:      vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85242:      vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85243:      vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85244-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85245:      vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85246-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85247:      vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85248:      vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85249:      vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85250:      vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85251:      vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85252:      vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85253:      vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85254:      vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85255:      vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85256:      vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85257:      vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85258:      vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85259:      vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85260:      vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85261:      vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85262:      vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85263:      vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85264:      vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85265:      vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85266:      vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85267:      vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85268:      vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85269:      vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85270:      vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85271:      vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85272:      vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85273-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85274:      vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85275-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85276:      vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85277:      vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85278:      vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85279:      vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85280:      vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85281:      vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85282:      vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85283:      vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp:85284:      vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp-85285-    }
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan_core.h-3249-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan_core.h:3250:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan_core.h-3251-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan_core.h-3253-
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan_core.h:3254:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/include/vulkan/vulkan_core.h-3255-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/BUILD.md-124-The CMake configuration files set the default install directory location to
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/BUILD.md:125:`$CMAKE_BINARY_DIR\install`, which is a child of your build directory. In this
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/BUILD.md-126-example, the install directory becomes the `Vulkan-Headers\build\install`
##############################################
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/BUILD.md-230-The above `cmake` command sets the install directory to
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/BUILD.md:231:`$CMAKE_BINARY_DIR/install`, which is a child of your `build` directory. In
chromium-84.0.4147.105/third_party/angle/third_party/vulkan-headers/src/BUILD.md-232-this example, the install directory becomes the `Vulkan-Headers/build/install`
##############################################
chromium-84.0.4147.105/third_party/pdfium/tools/ubsan/security_blacklist.txt-6-#############################################################################
chromium-84.0.4147.105/third_party/pdfium/tools/ubsan/security_blacklist.txt:7:# YASM does some funny things that UBsan doesn't like.
chromium-84.0.4147.105/third_party/pdfium/tools/ubsan/security_blacklist.txt-8-# https://crbug.com/489901
##############################################
chromium-84.0.4147.105/third_party/pdfium/tools/ubsan/blacklist.txt-4-#############################################################################
chromium-84.0.4147.105/third_party/pdfium/tools/ubsan/blacklist.txt:5:# YASM does some funny things that UBsan doesn't like.
chromium-84.0.4147.105/third_party/pdfium/tools/ubsan/blacklist.txt-6-# https://crbug.com/489901
##############################################
chromium-84.0.4147.105/third_party/pdfium/fpdfsdk/fpdf_view.cpp-989-  // Use interpreted JS only to avoid RWX pages in our address space.
chromium-84.0.4147.105/third_party/pdfium/fpdfsdk/fpdf_view.cpp:990:  return "--no-expose-wasm --jitless";
chromium-84.0.4147.105/third_party/pdfium/fpdfsdk/fpdf_view.cpp-991-}
##############################################
chromium-84.0.4147.105/third_party/pdfium/testing/tools/make_expected.sh-28-  for RESULT in $RESULTS ; do
chromium-84.0.4147.105/third_party/pdfium/testing/tools/make_expected.sh:29:    EXPECTED=`echo -n $RESULT | sed 's/[.]pdf[.]/_expected.pdf./'`
chromium-84.0.4147.105/third_party/pdfium/testing/tools/make_expected.sh-30-    mv $RESULT $EXPECTED
##############################################
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.pdf-80-BP,jX746Y[8VL'e=mlrkg+[&/4Xn#1'(72pCc`cXNN+/Z0?DM&g%BgA@co7e)9J3X;X\\(5@"=N^/d""
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.pdf:81:T`@poCcT@G`,Q43B>^KnLk;$<#C1`ZRI:qa#-tMr)R?VE.RR\7=sKe@N)#YuA]JfMaHgYN/!?c&OsZTe
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.pdf-82-^cXe0%l-1*krrj[$8W`Wl)*K?>t9dJirfrR7MYH\=XPN5Q2qL_I4eudg4b]KRT\<OAl/T-PZ'?3dZ$p;
##############################################
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.pdf-99-2<(<.=8A484n4$P`>fQKA"tBRWbq]tDur6ODulS&f!BB<ZPSc21WW3#buP0(+9gU#Z,bH/SFFh24G?`5
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.pdf:100:dOt)^QkNbrnhfi)90SEq&n`q[F;s7b!nXc$g#@aPQN3qbFeWl+!e=Zt`EF'M1(Bm%7HR8DbV4gg<TZ"1
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.pdf-101-'QY,(Ci/)_["1h766XD'&ADrraHq=DH%OF$jsfp?jsbDCGm`Bc4nAYbhNNN6HSW+QHSVNRk<)"p3=KZH
##############################################
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.pdf-123-2jEaIeeu%@g_SZi^/+`r>koI@22thoJ$T#-Ig:8=C[r)9A@gh.nJ+P$rtk!a7oB995m%NRR_tlI7kn;C
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.pdf:124:L?s85#0T`VHa<+&O5K'$Eo(6pn-XUq4Y6-9Re-B$rhtBq!Tfi]GEbPb2*A\G,P/,p;d\J77]S.F#9J`B
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.pdf-125-DopA\Sjp8ME&Btm*&[^S4k/0Z~>
##############################################
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.in-79-BP,jX746Y[8VL'e=mlrkg+[&/4Xn#1'(72pCc`cXNN+/Z0?DM&g%BgA@co7e)9J3X;X\\(5@"=N^/d""
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.in:80:T`@poCcT@G`,Q43B>^KnLk;$<#C1`ZRI:qa#-tMr)R?VE.RR\7=sKe@N)#YuA]JfMaHgYN/!?c&OsZTe
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.in-81-^cXe0%l-1*krrj[$8W`Wl)*K?>t9dJirfrR7MYH\=XPN5Q2qL_I4eudg4b]KRT\<OAl/T-PZ'?3dZ$p;
##############################################
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.in-98-2<(<.=8A484n4$P`>fQKA"tBRWbq]tDur6ODulS&f!BB<ZPSc21WW3#buP0(+9gU#Z,bH/SFFh24G?`5
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.in:99:dOt)^QkNbrnhfi)90SEq&n`q[F;s7b!nXc$g#@aPQN3qbFeWl+!e=Zt`EF'M1(Bm%7HR8DbV4gg<TZ"1
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.in-100-'QY,(Ci/)_["1h766XD'&ADrraHq=DH%OF$jsfp?jsbDCGm`Bc4nAYbhNNN6HSW+QHSVNRk<)"p3=KZH
##############################################
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.in-122-2jEaIeeu%@g_SZi^/+`r>koI@22thoJ$T#-Ig:8=C[r)9A@gh.nJ+P$rtk!a7oB995m%NRR_tlI7kn;C
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.in:123:L?s85#0T`VHa<+&O5K'$Eo(6pn-XUq4Y6-9Re-B$rhtBq!Tfi]GEbPb2*A\G,P/,p;d\J77]S.F#9J`B
chromium-84.0.4147.105/third_party/pdfium/testing/resources/hebrew_mirrored.in-124-DopA\Sjp8ME&Btm*&[^S4k/0Z~>
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/pymock/mock.py-668-                # XXXX should we get the attribute without triggering code
chromium-84.0.4147.105/third_party/pdfium/third_party/pymock/mock.py:669:                # execution?
chromium-84.0.4147.105/third_party/pdfium/third_party/pymock/mock.py-670-                wraps = getattr(self._mock_wraps, name)
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/freetype/include/freetype-custom-config/ftoption.h-40-  /*  - You can put a copy of this file in your build directory, more      */
chromium-84.0.4147.105/third_party/pdfium/third_party/freetype/include/freetype-custom-config/ftoption.h:41:  /*    precisely in `$BUILD/freetype/config/ftoption.h', where `$BUILD'   */
chromium-84.0.4147.105/third_party/pdfium/third_party/freetype/include/freetype-custom-config/ftoption.h-42-  /*    is the name of a directory that is included _before_ the FreeType  */
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-15-// - Different instances of TRAP_SEQUENCE_() must not be folded together, to
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:16://   ensure crash reports are debuggable. Unlike __builtin_trap(), asm volatile
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-17-//   blocks will not be folded together.
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-18-//   Note: TRAP_SEQUENCE_() previously required an instruction with a unique
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:19://   nonce since unlike clang, GCC folds together identical asm volatile
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-20-//   blocks.
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-47-#define TRAP_SEQUENCE1_() __builtin_trap()
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:48:#define TRAP_SEQUENCE2_() asm volatile("")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-49-
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-55-// to continue after SIGTRAP.
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:56:#define TRAP_SEQUENCE1_() asm volatile("int3")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-57-
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-60-// (see IMMEDIATE_CRASH below) and already emits a ud2 on Mac.
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:61:#define TRAP_SEQUENCE2_() asm volatile("")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-62-#else
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:63:#define TRAP_SEQUENCE2_() asm volatile("ud2")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-64-#endif  // defined(OS_MACOSX)
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-72-// TODO(https://crbug.com/958675): Remove bkpt from this sequence.
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:73:#define TRAP_SEQUENCE1_() asm volatile("bkpt #0")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:74:#define TRAP_SEQUENCE2_() asm volatile("udf #0")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-75-
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-79-// TODO(https://crbug.com/958675): Remove brk from this sequence.
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:80:#define TRAP_SEQUENCE1_() asm volatile("brk #0")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:81:#define TRAP_SEQUENCE2_() asm volatile("hlt #0")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-82-
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-87-#define TRAP_SEQUENCE1_() __builtin_trap()
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:88:#define TRAP_SEQUENCE2_() asm volatile("")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-89-
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-107-// https://crbug.com/958373
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:108:#define TRAP_SEQUENCE2_() __asm volatile("")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-109-
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-111-
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:112:#define TRAP_SEQUENCE1_() asm volatile("int3")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:113:#define TRAP_SEQUENCE2_() asm volatile("ud2")
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-114-
##############################################
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-130-// This could make compilation fail on GCC, as it forbids directly using inline
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h:131:// asm inside a constexpr function. However, it allows calling a lambda
chromium-84.0.4147.105/third_party/pdfium/third_party/base/immediate_crash.h-132-// expression including the same asm.
##############################################
chromium-84.0.4147.105/third_party/pdfium/fxjs/xfa/cfxjse_formcalc_context_embeddertest.cpp-1079-      {R"(Decode("", "xml"))", ""},
chromium-84.0.4147.105/third_party/pdfium/fxjs/xfa/cfxjse_formcalc_context_embeddertest.cpp:1080:      {R"(Decode("~!@#$%%^&amp;*()_+|`", "xml"))", "~!@#$%%^&*()_+|`"},
chromium-84.0.4147.105/third_party/pdfium/fxjs/xfa/cfxjse_formcalc_context_embeddertest.cpp-1081-      {R"(Decode("abc&nonesuchbutverylongindeed;", "xml"))", "abc"},
##############################################
chromium-84.0.4147.105/third_party/nasm/config/unknown.h-2- *
chromium-84.0.4147.105/third_party/nasm/config/unknown.h:3: *   Copyright 2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/config/unknown.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/config/unknown.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/config/watcom.h-2- *
chromium-84.0.4147.105/third_party/nasm/config/watcom.h:3: *   Copyright 2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/config/watcom.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/config/watcom.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/config/msvc.h-2- *
chromium-84.0.4147.105/third_party/nasm/config/msvc.h:3: *   Copyright 2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/config/msvc.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/config/msvc.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/contrib/MSVC6.txt:1:Compilation with Nasm on MSVC 6.0, with usage of Custom Build step.
chromium-84.0.4147.105/third_party/nasm/contrib/MSVC6.txt-2-
##############################################
chromium-84.0.4147.105/third_party/nasm/contrib/MSVC6.txt-4-
chromium-84.0.4147.105/third_party/nasm/contrib/MSVC6.txt:5:2) Add .asm at the list of source files.
chromium-84.0.4147.105/third_party/nasm/contrib/MSVC6.txt-6-
##############################################
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README:1:			Visual Studio 2008 NASM integration
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README-2-
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README-3-
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README:4:In order to use nasm seamlessly in your VS2k8, follow the steps below. 
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README-5-
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README:6:1. First install nasm by running its installer
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README-7-2. copy nasm.rules to c:\Program Files\Microsoft Visual Studio 2008\VC\VCProjectDefaults
##############################################
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README-10-5. click on Show Directories for Executables
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README:11:6. add C:\Program Files\NASM to the list of paths
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README:12:7. Open a solution that you want to use NASM with
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README-13-8. Right click on the project name and select Custom Build Rules
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README:14:9. Check the box next to the NASM line
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README:15:10. Add any .asm files to the project
chromium-84.0.4147.105/third_party/nasm/contrib/VSrules/nasm.README-16-11. click on build to test
##############################################
chromium-84.0.4147.105/third_party/nasm/include/compiler.h-2- *   
chromium-84.0.4147.105/third_party/nasm/include/compiler.h:3: *   Copyright 2007-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/compiler.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/compiler.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/tables.h-2- *   
chromium-84.0.4147.105/third_party/nasm/include/tables.h:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/tables.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/tables.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/ver.h-2- *
chromium-84.0.4147.105/third_party/nasm/include/ver.h:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/ver.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/ver.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/ver.h-34-/*
chromium-84.0.4147.105/third_party/nasm/include/ver.h:35: * NASM version strings, defined in ver.c
chromium-84.0.4147.105/third_party/nasm/include/ver.h-36- */
##############################################
chromium-84.0.4147.105/third_party/nasm/include/insns.h-5- * redistributable under the license given in the file "LICENSE"
chromium-84.0.4147.105/third_party/nasm/include/insns.h:6: * distributed in the NASM archive.
chromium-84.0.4147.105/third_party/nasm/include/insns.h-7- */
##############################################
chromium-84.0.4147.105/third_party/nasm/include/hashtbl.h-2- *   
chromium-84.0.4147.105/third_party/nasm/include/hashtbl.h:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/hashtbl.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/hashtbl.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/labels.h-2- *   
chromium-84.0.4147.105/third_party/nasm/include/labels.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/labels.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/labels.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/opflags.h-2- *   
chromium-84.0.4147.105/third_party/nasm/include/opflags.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/opflags.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/opflags.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/saa.h-2- *   
chromium-84.0.4147.105/third_party/nasm/include/saa.h:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/saa.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/saa.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/saa.h-91-void saa_wleb128s(struct SAA *, int);   /* write signed LEB128 value */
chromium-84.0.4147.105/third_party/nasm/include/saa.h:92:void saa_writeaddr(struct SAA *, uint64_t, size_t);
chromium-84.0.4147.105/third_party/nasm/include/saa.h-93-
##############################################
chromium-84.0.4147.105/third_party/nasm/include/rdoff.h-2- *   
chromium-84.0.4147.105/third_party/nasm/include/rdoff.h:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/rdoff.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/rdoff.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/error.h-2- *
chromium-84.0.4147.105/third_party/nasm/include/error.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/error.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/error.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/error.h-111-#define ERR_WARN_ZEXTRELOC	WARN(15) /* relocation zero-extended */
chromium-84.0.4147.105/third_party/nasm/include/error.h:112:#define ERR_WARN_PTR		WARN(16) /* not a NASM keyword */
chromium-84.0.4147.105/third_party/nasm/include/error.h-113-#define ERR_WARN_BAD_PRAGMA	WARN(17) /* malformed pragma */
##############################################
chromium-84.0.4147.105/third_party/nasm/include/bytesex.h-2- *
chromium-84.0.4147.105/third_party/nasm/include/bytesex.h:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/bytesex.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/bytesex.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/bytesex.h-233-
chromium-84.0.4147.105/third_party/nasm/include/bytesex.h:234:#define WRITEADDR(p,v,s)                        		\
chromium-84.0.4147.105/third_party/nasm/include/bytesex.h-235-    do {                                                        \
##############################################
chromium-84.0.4147.105/third_party/nasm/include/raa.h-2- *   
chromium-84.0.4147.105/third_party/nasm/include/raa.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/raa.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/raa.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/perfhash.h-2- *
chromium-84.0.4147.105/third_party/nasm/include/perfhash.h:3: *   Copyright 2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/perfhash.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/perfhash.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/rbtree.h-2- *   
chromium-84.0.4147.105/third_party/nasm/include/rbtree.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/rbtree.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/rbtree.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/disp8.h-2- *
chromium-84.0.4147.105/third_party/nasm/include/disp8.h:3: *   Copyright 1996-2013 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/disp8.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/disp8.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/nasm.h-2- *
chromium-84.0.4147.105/third_party/nasm/include/nasm.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/nasm.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/nasm.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/nasm.h-377-/*
chromium-84.0.4147.105/third_party/nasm/include/nasm.h:378: * Some lexical properties of the NASM source language, included
chromium-84.0.4147.105/third_party/nasm/include/nasm.h-379- * here because they are shared between the parser and preprocessor.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/strlist.h-2- *
chromium-84.0.4147.105/third_party/nasm/include/strlist.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/strlist.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/strlist.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/ilog2.h-2- *
chromium-84.0.4147.105/third_party/nasm/include/ilog2.h:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/ilog2.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/ilog2.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-2- *
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-113-/*
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h:114: * NASM assert failure
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-115- */
##############################################
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-123-/*
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h:124: * NASM failure at build time if the argument is false
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-125- */
##############################################
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-179-/*
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h:180: * Convert a string into a number, using NASM number rules. Sets
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-181- * `*error' to true if an error occurs, and false otherwise.
##############################################
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-255-void fwriteint64_t(uint64_t data, FILE * fp);
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h:256:void fwriteaddr(uint64_t data, int size, FILE * fp);
chromium-84.0.4147.105/third_party/nasm/include/nasmlib.h-257-
##############################################
chromium-84.0.4147.105/third_party/nasm/tools/syncfiles.pl-3-##   
chromium-84.0.4147.105/third_party/nasm/tools/syncfiles.pl:4:##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/tools/syncfiles.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/tools/syncfiles.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/tools/release-2-#
chromium-84.0.4147.105/third_party/nasm/tools/release:3:# Generate a NASM release
chromium-84.0.4147.105/third_party/nasm/tools/release-4-#
##############################################
chromium-84.0.4147.105/third_party/nasm/tools/release-29-fi
chromium-84.0.4147.105/third_party/nasm/tools/release:30:git tag -m "NASM version ${version}" -f "nasm-${version}" 
chromium-84.0.4147.105/third_party/nasm/tools/release-31-
##############################################
chromium-84.0.4147.105/third_party/nasm/tools/release-59-# Create tarfile (Unix convention: file includes prefix)
chromium-84.0.4147.105/third_party/nasm/tools/release:60:mv nasm nasm-"$version"
chromium-84.0.4147.105/third_party/nasm/tools/release-61-tar cvvf  nasm-"$version".tar nasm-"$version"
##############################################
chromium-84.0.4147.105/third_party/nasm/tools/tag-release-10-    --ver=*)
chromium-84.0.4147.105/third_party/nasm/tools/tag-release:11:        version=`echo $opt | sed 's/[-a-zA-Z0-9]*=//'`
chromium-84.0.4147.105/third_party/nasm/tools/tag-release-12-        ;;
chromium-84.0.4147.105/third_party/nasm/tools/tag-release-13-    --repo=*)
chromium-84.0.4147.105/third_party/nasm/tools/tag-release:14:        repo=`echo $opt | sed 's/[-a-zA-Z0-9]*=//'`
chromium-84.0.4147.105/third_party/nasm/tools/tag-release-15-        ;;
chromium-84.0.4147.105/third_party/nasm/tools/tag-release-16-    --branch=*)
chromium-84.0.4147.105/third_party/nasm/tools/tag-release:17:        branch=`echo $opt | sed 's/[-a-zA-Z0-9]*=//'`
chromium-84.0.4147.105/third_party/nasm/tools/tag-release-18-        ;;
##############################################
chromium-84.0.4147.105/third_party/nasm/tools/tag-release-47-git add version
chromium-84.0.4147.105/third_party/nasm/tools/tag-release:48:git commit -m "NASM $version"
chromium-84.0.4147.105/third_party/nasm/tools/tag-release:49:git tag -a -m "NASM $version" "$tag"
chromium-84.0.4147.105/third_party/nasm/tools/tag-release-50-
##############################################
chromium-84.0.4147.105/third_party/nasm/tools/mkdep.pl-3-##
chromium-84.0.4147.105/third_party/nasm/tools/mkdep.pl:4:##   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/tools/mkdep.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/tools/mkdep.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nsis/nasm.nsi-172-    ;Language strings
chromium-84.0.4147.105/third_party/nasm/nsis/nasm.nsi:173:    LangString DESC_SecNasm ${LANG_ENGLISH}     "NASM assembler and disassember modules"
chromium-84.0.4147.105/third_party/nasm/nsis/nasm.nsi:174:    LangString DESC_SecManual ${LANG_ENGLISH}   "Complete NASM manual (pdf file)"
chromium-84.0.4147.105/third_party/nasm/nsis/nasm.nsi-175-    LangString DESC_SecRdoff ${LANG_ENGLISH}    "RDOFF utilities (you may not need it if you don't know what is it)"
chromium-84.0.4147.105/third_party/nasm/nsis/nasm.nsi:176:    LangString DESC_SecVS8 ${LANG_ENGLISH}      "Visual Studio 2008 NASM integration (rules file)"
chromium-84.0.4147.105/third_party/nasm/nsis/nasm.nsi-177-
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outmacho.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/output/outmacho.mac:3:;;   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outmacho.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outmacho.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/output/outelf.mac:3:;;   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outelf.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outelf.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/nullout.c-2- *   
chromium-84.0.4147.105/third_party/nasm/output/nullout.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/nullout.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/nullout.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.h-2- *
chromium-84.0.4147.105/third_party/nasm/output/outelf.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outelf.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outelf.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outas86.c-2- *   
chromium-84.0.4147.105/third_party/nasm/output/outas86.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outas86.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outas86.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/elf.h-2- *
chromium-84.0.4147.105/third_party/nasm/output/elf.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/elf.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/elf.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/elf.h-37-/*
chromium-84.0.4147.105/third_party/nasm/output/elf.h:38: * Since NASM support both Elf32/64 file formats
chromium-84.0.4147.105/third_party/nasm/output/elf.h-39- * we need to cover all types, structures, typedefs and etc
##############################################
chromium-84.0.4147.105/third_party/nasm/output/strtbl.h-2- *
chromium-84.0.4147.105/third_party/nasm/output/strtbl.h:3: *   Copyright 2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/strtbl.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/strtbl.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-2- *   
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-98-static void elf_sect_write(struct elf_section *, const void *, size_t);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:99:static void elf_sect_writeaddr(struct elf_section *, int64_t, size_t);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-100-static void elf_section_header(int, int, uint64_t, void *, bool, uint64_t, int, int,
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-186-/*
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:187: * Special NASM section numbers which are used to define ELF special
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-188- * symbols.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-488-        /*
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:489:         * This is a NASM special symbol. We never allow it into
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-490-         * the ELF symbol table, even if it's a valid one. If it
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-596-         *     GLOBAL crash_nasm
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:597:         *     crash_nasm equ 0
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-598-         * To avoid such a crash, such requests are silently discarded.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-930-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:931:        elf_sect_writeaddr(s, addr, asize);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-932-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-959-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:960:        elf_sect_writeaddr(s, addr, bytes);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-961-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-985-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:986:        elf_sect_writeaddr(s, addr, 4);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-987-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-991-        addr = 0;
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:992:        elf_sect_writeaddr(s, addr, 8);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-993-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1167-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:1168:        elf_sect_writeaddr(s, addr, asize);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1169-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1199-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:1200:        elf_sect_writeaddr(s, addr, bytes);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1201-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1237-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:1238:        elf_sect_writeaddr(s, addr, 4);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1239-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1270-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:1271:        elf_sect_writeaddr(s, addr, 8);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1272-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1437-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:1438:        elf_sect_writeaddr(s, addr, asize);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1439-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1469-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:1470:        elf_sect_writeaddr(s, addr, bytes);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1471-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1506-        }
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:1507:        elf_sect_writeaddr(s, addr, 4);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1508-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1512-        addr = 0;
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:1513:        elf_sect_writeaddr(s, addr, 8);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-1514-        break;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-2166-
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:2167:static void elf_sect_writeaddr(struct elf_section *sect, int64_t data, size_t len)
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-2168-{
chromium-84.0.4147.105/third_party/nasm/output/outelf.c:2169:    saa_writeaddr(sect->data, data, len);
chromium-84.0.4147.105/third_party/nasm/output/outelf.c-2170-    sect->len += len;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outlib.c-2- *   
chromium-84.0.4147.105/third_party/nasm/output/outlib.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outlib.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outlib.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outcoff.c-2- *
chromium-84.0.4147.105/third_party/nasm/output/outcoff.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outcoff.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outcoff.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outcoff.c-92- *
chromium-84.0.4147.105/third_party/nasm/output/outcoff.c:93: * Newer versions of MASM seem to have changed this to be zero, and
chromium-84.0.4147.105/third_party/nasm/output/outcoff.c-94- * that apparently matches the COFF spec, so go with that.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outform.h-2- *
chromium-84.0.4147.105/third_party/nasm/output/outform.h:3: *   Copyright 1996-2011 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outform.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outform.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outform.h-40- * This header file allows configuration of which output formats
chromium-84.0.4147.105/third_party/nasm/output/outform.h:41: * get compiled into the NASM binary. You can configure by defining
chromium-84.0.4147.105/third_party/nasm/output/outform.h-42- * various preprocessor symbols beginning with "OF_", either on the
##############################################
chromium-84.0.4147.105/third_party/nasm/output/legacy.c-2- *
chromium-84.0.4147.105/third_party/nasm/output/legacy.c:3: *   Copyright 2016-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/legacy.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/legacy.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/dwarf.h-2- *
chromium-84.0.4147.105/third_party/nasm/output/dwarf.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/dwarf.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/dwarf.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outas86.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/output/outas86.mac:3:;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outas86.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outas86.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outobj.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/output/outobj.mac:3:;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outobj.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outobj.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-2- *
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-60- * outobj.c is divided into two sections.  The first section is low level
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:61: * routines for creating obj records;  It has nearly zero NASM specific
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-62- * code.  The second section is high level routines for processing calls and
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:63: * data structures from the rest of NASM into obj format.
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-64- *
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-577-    char *name;
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:578:    int32_t index;                 /* the NASM segment id */
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-579-    int32_t obj_index;             /* the OBJ-file segment index */
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-597-    char *name;
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:598:    int32_t index;                 /* NASM segment id */
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-599-    int32_t obj_index;             /* OBJ-file group index */
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-1979-    /*
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:1980:     * Write the NASM boast comment.
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-1981-     */
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-2212-     * should be omitted. So we'll omit it just in case.
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:2213:     * But, TASM puts it in all the time so if we are using
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:2214:     * TASM debug stuff we are putting it in
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-2215-     */
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-2299-     * switch records when we switch segments, and output the
chromium-84.0.4147.105/third_party/nasm/output/outobj.c:2300:     * file in a pseudo-TASM fashion.  The record switch is naive; that
chromium-84.0.4147.105/third_party/nasm/output/outobj.c-2301-     * is that one file may have many records for the same segment
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-2- *   
chromium-84.0.4147.105/third_party/nasm/output/outbin.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outbin.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-127-    char *vfollows;             /* the section that this one will notionally follow */
chromium-84.0.4147.105/third_party/nasm/output/outbin.c:128:    int32_t start_index;           /* NASM section id for non-relocated version */
chromium-84.0.4147.105/third_party/nasm/output/outbin.c:129:    int32_t vstart_index;          /* the NASM section id */
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-130-
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-562-
chromium-84.0.4147.105/third_party/nasm/output/outbin.c:563:        WRITEADDR(p, l, r->bytes);
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-564-        saa_fwrite(r->target->contents, r->posn, mydata, r->bytes);
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-575-        /* Display input and output file names. */
chromium-84.0.4147.105/third_party/nasm/output/outbin.c:576:        fprintf(rf, "\n- NASM Map file ");
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-577-        for (h = 63; h; h--)
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-772-            p = mydata;
chromium-84.0.4147.105/third_party/nasm/output/outbin.c:773:	    WRITEADDR(p, *(int64_t *)data, asize);
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-774-            saa_wbytes(s->contents, mydata, asize);
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-816-            p = mydata;
chromium-84.0.4147.105/third_party/nasm/output/outbin.c:817:	    WRITEADDR(p, addr - s->length, size);
chromium-84.0.4147.105/third_party/nasm/output/outbin.c-818-            saa_wbytes(s->contents, mydata, size);
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outform.c-2- *   
chromium-84.0.4147.105/third_party/nasm/output/outform.c:3: *   Copyright 1996-2011 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outform.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outform.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outdbg.c-2- *
chromium-84.0.4147.105/third_party/nasm/output/outdbg.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outdbg.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outdbg.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outdbg.c-69-    dbgsect = NULL;
chromium-84.0.4147.105/third_party/nasm/output/outdbg.c:70:    fprintf(ofile, "NASM Output format debug dump\n");
chromium-84.0.4147.105/third_party/nasm/output/outdbg.c-71-    fprintf(ofile, "input file  = %s\n", inname);
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-2- *   
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-65-/* Note that whenever a segment is referred to in the RDOFF file, its number
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c:66: * is always half of the segment number that NASM uses to refer to it; this
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c:67: * is because NASM only allocates even numbered segments, so as to not
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-68- * waste any of the 16 bits of segment number written to the file - this
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-257-
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c:258:    r->refseg >>= 1;            /* adjust segment nos to RDF rather than NASM */
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-259-
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-534-
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c:535:    segto >>= 1;                /* convert NASM segment no to RDF number */
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-536-
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-593-        pd = databuf;           /* convert address to little-endian */
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c:594:	WRITEADDR(pd, *(int64_t *)data, asize);
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.c-595-        membufwrite(segto, databuf, asize);
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outdbg.mac-2-;;
chromium-84.0.4147.105/third_party/nasm/output/outdbg.mac:3:;;   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outdbg.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outdbg.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outaout.c-2- *   
chromium-84.0.4147.105/third_party/nasm/output/outaout.c:3: *   Copyright 1996-2013 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outaout.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outaout.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outaout.c-270-        /*
chromium-84.0.4147.105/third_party/nasm/output/outaout.c:271:         * This is a NASM special symbol. We never allow it into
chromium-84.0.4147.105/third_party/nasm/output/outaout.c-272-         * the a.out symbol table, even if it's a valid one. If it
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outieee.c-2- *
chromium-84.0.4147.105/third_party/nasm/output/outieee.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outieee.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outieee.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outieee.c-147-    struct ieeeFixupp *fptr, *flptr;
chromium-84.0.4147.105/third_party/nasm/output/outieee.c:148:    int32_t index;                 /* the NASM segment id */
chromium-84.0.4147.105/third_party/nasm/output/outieee.c-149-    int32_t ieee_index;            /* the OBJ-file segment index */
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outieee.c-470-
chromium-84.0.4147.105/third_party/nasm/output/outieee.c:471:    /* Don't put a fixup for things NASM can calculate */
chromium-84.0.4147.105/third_party/nasm/output/outieee.c-472-    if (wrt == NO_SEG && segment == NO_SEG)
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outieee.c-893-    /*
chromium-84.0.4147.105/third_party/nasm/output/outieee.c:894:     * Write the NASM boast comment.
chromium-84.0.4147.105/third_party/nasm/output/outieee.c-895-     */
##############################################
chromium-84.0.4147.105/third_party/nasm/output/strtbl.c-2- *
chromium-84.0.4147.105/third_party/nasm/output/strtbl.c:3: *   Copyright 2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/strtbl.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/strtbl.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outcoff.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/output/outcoff.mac:3:;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outcoff.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outcoff.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/pecoff.h-2- *
chromium-84.0.4147.105/third_party/nasm/output/pecoff.h:3: *   Copyright 1996-2010 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/pecoff.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/pecoff.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/pecoff.h-505-    int section;                /* section number where it's defined
chromium-84.0.4147.105/third_party/nasm/output/pecoff.h:506:                                 * - in COFF codes, not NASM codes */
chromium-84.0.4147.105/third_party/nasm/output/pecoff.h-507-    bool is_global;             /* is it a global symbol or not? */
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outlib.h-2- *   
chromium-84.0.4147.105/third_party/nasm/output/outlib.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outlib.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outlib.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-2- *
chromium-84.0.4147.105/third_party/nasm/output/codeview.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/codeview.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-388-     * as we were last time.  Make this a pointer comparison: this is
chromium-84.0.4147.105/third_party/nasm/output/codeview.c:389:     * safe because the NASM core code allocates each filename once
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-390-     * and never frees it.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-623-    section_write16(sect, 0x1101);
chromium-84.0.4147.105/third_party/nasm/output/codeview.c:624:    section_write32(sect, 0); /* ASM language */
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-625-    section_wbytes(sect, cv8_state.outfile.name, cv8_state.outfile.namebytes);
##############################################
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-640-     * options available; however, BinScope from WACK (the Windows Application
chromium-84.0.4147.105/third_party/nasm/output/codeview.c:641:     * Certification Kit) tests for specific minimum MASM versions and trying to
chromium-84.0.4147.105/third_party/nasm/output/codeview.c:642:     * match an increasing sequence of random MASM version/build numbers seems
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-643-     * like a fool's errand.
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-644-     *
chromium-84.0.4147.105/third_party/nasm/output/codeview.c:645:     * Instead, use a different language ID (NASM is, after all, not MASM
chromium-84.0.4147.105/third_party/nasm/output/codeview.c:646:     * syntax) and just write the actual NASM version number. BinScope appears
chromium-84.0.4147.105/third_party/nasm/output/codeview.c-647-     * to be happy with that.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/stabs.h-2- *
chromium-84.0.4147.105/third_party/nasm/output/stabs.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/stabs.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/stabs.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.mac:3:;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outrdf2.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outrdf.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/output/outrdf.mac:3:;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outrdf.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outrdf.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outbin.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/output/outbin.mac:3:;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outbin.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outbin.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/macho.h-2- *
chromium-84.0.4147.105/third_party/nasm/output/macho.h:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/macho.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/macho.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-2- *
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-113-{
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c:114:    fwriteaddr(data, fmt.ptrsize, fp);
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-115-}
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-117-struct section {
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c:118:    /* nasm internal data */
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-119-    struct section *next;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-147-struct reloc {
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c:148:    /* nasm internal data */
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-149-    struct reloc *next;
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-162-struct symbol {
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c:163:    /* nasm internal data */
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-164-    struct rbtree symv[2];	/* All/global symbol rbtrees; "key" contains the
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-638-        p = mydata;
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c:639:	WRITEADDR(p, addr, asize);
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-640-        sect_write(s, mydata, asize);
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-1015-	/*
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c:1016:	 * This is a NASM special symbol. We never allow it into
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-1017-	 * the Macho-O symbol table, even if it's a valid one. If it
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-1073-             ** symbols, this works because every external symbol gets
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c:1074:             ** its own section number allocated internally by nasm and
chromium-84.0.4147.105/third_party/nasm/output/outmacho.c-1075-             ** can so be used as a key */
##############################################
chromium-84.0.4147.105/third_party/nasm/output/nulldbg.c-2- *   
chromium-84.0.4147.105/third_party/nasm/output/nulldbg.c:3: *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/nulldbg.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/nulldbg.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/output/outaout.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/output/outaout.mac:3:;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/output/outaout.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/output/outaout.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/headers/c-2- *
chromium-84.0.4147.105/third_party/nasm/headers/c:3: *   Copyright 1996-2010 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/headers/c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/headers/c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/headers/mac-2-;;
chromium-84.0.4147.105/third_party/nasm/headers/mac:3:;;   Copyright 1996-2010 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/headers/mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/headers/mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/headers/doc-2-\#
chromium-84.0.4147.105/third_party/nasm/headers/doc:3:\#   Copyright 1996-2010 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/headers/doc:4:\#   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/headers/doc-5-\#   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/headers/perl-2-##   
chromium-84.0.4147.105/third_party/nasm/headers/perl:3:##   Copyright 1996-2010 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/headers/perl:4:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/headers/perl-5-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-8-
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches:9:The NASM sources are tracked by Git SCM at http://repo.or.cz/w/nasm.git
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-10-repository. You either could download packed sources or use git tool itself
##############################################
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-16-
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches:17:When you change the NASM source code keep in mind -- we prefer tabs and
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-18-indentations to be 4 characters width, space filled.
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-19-
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches:20:Other "rules" could be learned from NASM sources -- just make your code
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-21-to look similar.
##############################################
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-98-
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches:99:The patches should be sent to NASM development mailing list
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-100-
##############################################
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-108-
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches:109:Be patient. Most NASM developers are pretty busy people so if
chromium-84.0.4147.105/third_party/nasm/SubmittingPatches-110-there is no immediate response on your patch -- don't
##############################################
chromium-84.0.4147.105/third_party/nasm/AUTHORS:1:This is the AUTHORS file for the NASM project located at:
chromium-84.0.4147.105/third_party/nasm/AUTHORS-2-http://nasm.sourceforge.net/
##############################################
chromium-84.0.4147.105/third_party/nasm/AUTHORS-64-E: KendallB@scitechsoft.com
chromium-84.0.4147.105/third_party/nasm/AUTHORS:65:D: NASM enhancements
chromium-84.0.4147.105/third_party/nasm/AUTHORS-66-D: macros
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/README.md-2-============
chromium-84.0.4147.105/third_party/nasm/travis/README.md:3:We use [Travis CI](https://travis-ci.org/) service to execute NASM tests,
chromium-84.0.4147.105/third_party/nasm/travis/README.md-4-which basically prepares the environment and runs our `nasm-t.py` script.
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/README.md-16- - a test descriptor get parsed to figure out which arguments
chromium-84.0.4147.105/third_party/nasm/travis/README.md:17:   are to be provided into the NASM command line;
chromium-84.0.4147.105/third_party/nasm/travis/README.md:18: - invoke the NASM with arguments;
chromium-84.0.4147.105/third_party/nasm/travis/README.md-19- - compare generated files with precompiled templates.
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/README.md-40-   while the rest of the fields are the same;
chromium-84.0.4147.105/third_party/nasm/travis/README.md:41: - `format`: NASM output format to use (`bin`,`elf` and etc);
chromium-84.0.4147.105/third_party/nasm/travis/README.md-42- - `source`: is a source file name to compile, this file must
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-22-                    dest = 'nasm', default = './nasm',
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py:23:                    help = 'Nasm executable to use')
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-24-
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-99-    #
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py:100:    # Which code to expect when nasm finishes
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-101-    desc['_wait'] = 0
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-277-    print("\tExecuting %s" % (" ".join(opts)))
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py:278:    pnasm = subprocess.Popen(opts,
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-279-                             stdout = subprocess.PIPE,
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-281-                             close_fds = True)
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py:282:    if pnasm == None:
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-283-        test_fail(desc['_test-name'], "Unable to execute test")
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-305-    pnasm, stdout, stderr = exec_nasm(desc)
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py:306:    if pnasm == None:
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-307-        return False
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-352-    pnasm, stdout, stderr = exec_nasm(desc)
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py:353:    if pnasm == None:
chromium-84.0.4147.105/third_party/nasm/travis/nasm-t.py-354-        return False
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/test/tmap.json-1-{
chromium-84.0.4147.105/third_party/nasm/travis/test/tmap.json:2:	"description": "Test abuse the section flags which breaks NASM 0.98.37",
chromium-84.0.4147.105/third_party/nasm/travis/test/tmap.json-3-	"format": "elf",
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/test/_version.json-1-{
chromium-84.0.4147.105/third_party/nasm/travis/test/_version.json:2:	"description": "Check the NASM version",
chromium-84.0.4147.105/third_party/nasm/travis/test/_version.json-3-	"target": [
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/test/_version.stdout:1:NASM version 2.14rc0 compiled on Apr 25 2018
##############################################
chromium-84.0.4147.105/third_party/nasm/travis/test/tmap.asm:1:;; NASM note: this file abuses the section flags in such a way that
chromium-84.0.4147.105/third_party/nasm/travis/test/tmap.asm:2:;; NASM 0.98.37 broke when this was compiled with:
chromium-84.0.4147.105/third_party/nasm/travis/test/tmap.asm:3:;; nasm -o tmap.o -f elf -DLINUX tmap.nas
chromium-84.0.4147.105/third_party/nasm/travis/test/tmap.asm-4-
##############################################
chromium-84.0.4147.105/third_party/nasm/configure.ac-246-  dnl CC name which ought to already contain the host triplet if needed
chromium-84.0.4147.105/third_party/nasm/configure.ac:247:  ccbase=`echo "$CC" | awk '{ print $1; }'`
chromium-84.0.4147.105/third_party/nasm/configure.ac-248-  AC_CHECK_PROGS(CC_AR, [${ccbase}-ar], [$ac_cv_prog_AR])
##############################################
chromium-84.0.4147.105/third_party/nasm/configure.ac-310-
chromium-84.0.4147.105/third_party/nasm/configure.ac:311:AC_OUTPUT_COMMANDS([mkdir -p config nasmlib nsis output stdlib x86 asm disasm rdoff macros common])
chromium-84.0.4147.105/third_party/nasm/configure.ac-312-AC_OUTPUT(Makefile doc/Makefile)
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-365-
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:366:/* For TASM compatibility we need to be able to recognise TASM compatible
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:367: * conditional compilation directives. Using the NASM pre-processor does
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-368- * not work, so we look for them specifically from the following list and
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:369: * then jam in the equivalent NASM directive into the input stream.
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-370- */
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-505-/*
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:506: * Handle TASM specific directives, which do not contain a % in
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-507- * front of them. We do it here because I could not find any other
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-508- * place to do it for the moment, and it is a hack (ideally it would
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:509: * be nice to be able to use the NASM pre-processor to do it).
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-510- */
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-530-                /* We have found a directive, so jam a % in front of it
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:531:                 * so that NASM will then recognise it as one if it's own.
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-532-                 */
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-539-                    /*
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:540:                     * NASM does not recognise IFDIFI, so we convert
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-541-                     * it to %if 0. This is not used in NASM
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-542-                     * compatible code, but does need to parse for the
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:543:                     * TASM macro package.
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-544-                     */
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-563- * number indications as they emerge from GNU cpp (`# lineno "file"
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:564: * flags') into NASM preprocessor line number indications (`%line
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-565- * lineno file').
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-2338-    case PP_STACKSIZE:
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:2339:        /* Directive to tell NASM what the default stack size is. The
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-2340-         * default is for a 16-bit stack, and this can be overriden with
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-2387-    case PP_ARG:
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:2388:        /* TASM like ARG directive to define arguments to functions, in
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-2389-         * the following form:
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-2456-    case PP_LOCAL:
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:2457:        /* TASM like LOCAL directive to define local variables for a
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-2458-         * function, in the following form:
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-2462-         * The '= LocalSize' at the end is ignored by NASM, but is
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:2463:         * required by TASM to define the local parameter size (and used
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c:2464:         * by the TASM macro package).
chromium-84.0.4147.105/third_party/nasm/asm/preproc.c-2465-         */
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.c-171-	    nasm_error(ERR_WARNING|ERR_PASS1|ERR_WARN_PTR,
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.c:172:		       "`%s' is not a NASM keyword", tv->t_charptr);
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.c-173-	}
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/quote.h-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/quote.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/quote.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/quote.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/labels.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/labels.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/labels.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/labels.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/labels.c-53- *
chromium-84.0.4147.105/third_party/nasm/asm/labels.c:54: * If TASM compatibility is enabled, a local label can also begin with
chromium-84.0.4147.105/third_party/nasm/asm/labels.c-55- * @@.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/labels.c-199-    /*
chromium-84.0.4147.105/third_party/nasm/asm/labels.c:200:     * NASM special symbols are not passed to the debug format; none
chromium-84.0.4147.105/third_party/nasm/asm/labels.c-201-     * of the current backends want to see them.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/segalloc.c-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/segalloc.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/segalloc.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/segalloc.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/float.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/float.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/float.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/float.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-835-{
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c:836:    printf("NASM version %s%s\n",
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-837-           nasm_version, nasm_compile_options);
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1695- * file.asm:50: error: blah blah blah
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c:1696: * where file.asm is the name of the file, 50 is the line number on
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1697- * which the error occurs (or is detected) and "error:" is one of
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1736- * file.asm(50) : error: blah blah blah
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c:1737: * where file.asm is the name of the file, 50 is the line number on
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1738- * which the error occurs (or is detected) and "error:" is one of
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1928-{
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c:1929:    fputs("type `nasm -h' for help\n", error_file);
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1930-}
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1936-    printf
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c:1937:        ("usage: nasm [-@ response file] [-o outfile] [-f format] "
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1938-         "[-l listfile]\n"
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1939-         "            [options...] [--] filename\n"
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c:1940:         "    or nasm -v (or --v) for version info\n\n"
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1941-         "\n"
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1944-         "\n"
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c:1945:         "    -t            assemble in SciTech TASM compatible mode\n");
chromium-84.0.4147.105/third_party/nasm/asm/nasm.c-1946-    printf
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/directiv.dat-2-;;
chromium-84.0.4147.105/third_party/nasm/asm/directiv.dat:3:;;   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/directiv.dat:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/directiv.dat-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/directiv.dat-33-;;
chromium-84.0.4147.105/third_party/nasm/asm/directiv.dat:34:;; List of global NASM directives and pragma operations codes
chromium-84.0.4147.105/third_party/nasm/asm/directiv.dat-35-;;
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/error.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/error.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/error.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/error.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/error.c-65-    {"zext-reloc", "relocation zero-extended to match output format", true},
chromium-84.0.4147.105/third_party/nasm/asm/error.c:66:    {"ptr", "non-NASM keyword used in other assemblers", true},
chromium-84.0.4147.105/third_party/nasm/asm/error.c-67-    {"bad-pragma", "empty or malformed %pragma", false},
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/float.h-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/float.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/float.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/float.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/pragma.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/pragma.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/pragma.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/pragma.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/pragma.c-70- * limit	- limit setting
chromium-84.0.4147.105/third_party/nasm/asm/pragma.c:71: * asm		- assembler
chromium-84.0.4147.105/third_party/nasm/asm/pragma.c-72- * list		- listing generator
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/exprdump.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/exprdump.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/exprdump.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/exprdump.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/pptok.dat-2-##   
chromium-84.0.4147.105/third_party/nasm/asm/pptok.dat:3:##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/pptok.dat:4:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/pptok.dat-5-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/listing.h-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/listing.h:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/listing.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/listing.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/pptok.pl-3-##   
chromium-84.0.4147.105/third_party/nasm/asm/pptok.pl:4:##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/pptok.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/pptok.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.h-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/stdscan.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/strfunc.c-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/strfunc.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/strfunc.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/strfunc.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/phash.pl-3-##   
chromium-84.0.4147.105/third_party/nasm/asm/phash.pl:4:##   Copyright 1996-2009 the NASM Authors - All rights reserved.
chromium-84.0.4147.105/third_party/nasm/asm/phash.pl-5-##
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/rdstrnum.c-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/rdstrnum.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/rdstrnum.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/rdstrnum.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/rdstrnum.c-36- *
chromium-84.0.4147.105/third_party/nasm/asm/rdstrnum.c:37: * This converts a NASM string to an integer, used when a string
chromium-84.0.4147.105/third_party/nasm/asm/rdstrnum.c-38- * is used in an integer constant context.  This is a binary conversion,
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/parser.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/parser.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-109-        switch (tokval.t_integer) {
chromium-84.0.4147.105/third_party/nasm/asm/parser.c:110:            /* For TASM compatibility a size override inside the
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-111-             * brackets changes the size of the operand, not the
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-112-             * address type of the operand as it does in standard
chromium-84.0.4147.105/third_party/nasm/asm/parser.c:113:             * NASM syntax. Hence:
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-114-             *
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-116-             *
chromium-84.0.4147.105/third_party/nasm/asm/parser.c:117:             * is valid syntax in TASM compatibility mode. Note that
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-118-             * you lose the ability to override the default address
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-146-    } else {
chromium-84.0.4147.105/third_party/nasm/asm/parser.c:147:        /* Standard NASM compatible syntax */
chromium-84.0.4147.105/third_party/nasm/asm/parser.c-148-        switch (tokval.t_integer) {
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/eval.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/eval.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/eval.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/eval.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/quote.c-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/quote.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/quote.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/quote.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-515-
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c:516:static void out_reladdr(struct out_data *data, const struct operand *opx,
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-517-                        int size)
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1655-            }
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c:1656:            out_reladdr(data, opx, 1);
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1657-            break;
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1663-        case4(060):
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c:1664:            out_reladdr(data, opx, 2);
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1665-            break;
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1672-
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c:1673:            out_reladdr(data, opx, size);
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1674-            break;
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1676-        case4(070):
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c:1677:            out_reladdr(data, opx, 4);
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1678-            break;
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1968-                    } else if (ea_data.rip) {
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c:1969:                        out_reladdr(data, opy, ea_data.bytes);
chromium-84.0.4147.105/third_party/nasm/asm/assemble.c-1970-                    } else {
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/tokhash.pl-3-##   
chromium-84.0.4147.105/third_party/nasm/asm/tokhash.pl:4:##   Copyright 1996-2014 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/tokhash.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/tokhash.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/tokens.dat-2-##   
chromium-84.0.4147.105/third_party/nasm/asm/tokens.dat:3:##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/tokens.dat:4:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/tokens.dat-5-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/eval.h-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/eval.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/eval.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/eval.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc.h-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/preproc.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/preproc.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/preproc.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/listing.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/listing.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/listing.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/listing.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/directiv.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/directiv.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/directiv.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/directiv.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/exprlib.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/exprlib.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/exprlib.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/exprlib.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/preproc-nop.c-2- *
chromium-84.0.4147.105/third_party/nasm/asm/preproc-nop.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/preproc-nop.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/preproc-nop.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/parser.h-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/parser.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/parser.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/parser.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/asm/assemble.h-2- *   
chromium-84.0.4147.105/third_party/nasm/asm/assemble.h:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/asm/assemble.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/asm/assemble.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasm.txt-8-----
chromium-84.0.4147.105/third_party/nasm/nasm.txt:9:nasm - the Netwide Assembler, a portable 80x86 assembler
chromium-84.0.4147.105/third_party/nasm/nasm.txt-10-
##############################################
chromium-84.0.4147.105/third_party/nasm/nasm.txt-118-*-t*::
chromium-84.0.4147.105/third_party/nasm/nasm.txt:119:	Causes *nasm* to assemble in SciTech TASM compatible mode.
chromium-84.0.4147.105/third_party/nasm/nasm.txt-120-
##############################################
chromium-84.0.4147.105/third_party/nasm/x86/insns-iflags.ph-3-##
chromium-84.0.4147.105/third_party/nasm/x86/insns-iflags.ph:4:##   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/x86/insns-iflags.ph:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/x86/insns-iflags.ph-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/x86/regs.dat-2-##   
chromium-84.0.4147.105/third_party/nasm/x86/regs.dat:3:##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/x86/regs.dat:4:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/x86/regs.dat-5-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/x86/regs.pl-3-##   
chromium-84.0.4147.105/third_party/nasm/x86/regs.pl:4:##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/x86/regs.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/x86/regs.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/x86/disp8.c-2- *
chromium-84.0.4147.105/third_party/nasm/x86/disp8.c:3: *   Copyright 1996-2013 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/x86/disp8.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/x86/disp8.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/x86/insns.dat-2-;;
chromium-84.0.4147.105/third_party/nasm/x86/insns.dat:3:;;   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/x86/insns.dat:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/x86/insns.dat-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/x86/insns.dat-46-; Comments with a pound sign after the semicolon generate section
chromium-84.0.4147.105/third_party/nasm/x86/insns.dat:47:; subheaders in the NASM documentation.
chromium-84.0.4147.105/third_party/nasm/x86/insns.dat-48-;
##############################################
chromium-84.0.4147.105/third_party/nasm/x86/insns.pl-3-##
chromium-84.0.4147.105/third_party/nasm/x86/insns.pl:4:##   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/x86/insns.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/x86/insns.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/Makefile.in-6-# redistributable under the license given in the file "LICENSE"
chromium-84.0.4147.105/third_party/nasm/Makefile.in:7:# distributed in the NASM archive.
chromium-84.0.4147.105/third_party/nasm/Makefile.in-8-
##############################################
chromium-84.0.4147.105/third_party/nasm/Makefile.in-27-		  -I$(srcdir)/x86 -I$(objdir)/x86 \
chromium-84.0.4147.105/third_party/nasm/Makefile.in:28:		  -I$(srcdir)/asm -I$(objdir)/asm \
chromium-84.0.4147.105/third_party/nasm/Makefile.in:29:		  -I$(srcdir)/disasm -I$(objdir)/disasm \
chromium-84.0.4147.105/third_party/nasm/Makefile.in-30-		  -I$(srcdir)/output -I$(objdir)/output
##############################################
chromium-84.0.4147.105/third_party/nasm/Makefile.in-91-#-- Begin File Lists --#
chromium-84.0.4147.105/third_party/nasm/Makefile.in:92:NASM =	asm/nasm.$(O)
chromium-84.0.4147.105/third_party/nasm/Makefile.in:93:NDISASM = disasm/ndisasm.$(O)
chromium-84.0.4147.105/third_party/nasm/Makefile.in-94-
##############################################
chromium-84.0.4147.105/third_party/nasm/Makefile.in-141-
chromium-84.0.4147.105/third_party/nasm/Makefile.in:142:SUBDIRS  = stdlib nasmlib output asm disasm x86 common macros
chromium-84.0.4147.105/third_party/nasm/Makefile.in-143-XSUBDIRS = test doc nsis rdoff
##############################################
chromium-84.0.4147.105/third_party/nasm/Makefile.in-165-# Perl scripts. They're distributed, though, so it isn't necessary to
chromium-84.0.4147.105/third_party/nasm/Makefile.in:166:# have Perl just to recompile NASM from the distribution.
chromium-84.0.4147.105/third_party/nasm/Makefile.in-167-
##############################################
chromium-84.0.4147.105/third_party/nasm/Makefile.in-404-	for f in $(RDF2BINLINKS); do \
chromium-84.0.4147.105/third_party/nasm/Makefile.in:405:		bn=`basename "$$f"` && $(RM_F) "$$bn" && \
chromium-84.0.4147.105/third_party/nasm/Makefile.in-406-		$(LN_S) rdf2bin$(X) "$$bn" ; \
##############################################
chromium-84.0.4147.105/third_party/nasm/Makefile.in-447-test: nasm$(X)
chromium-84.0.4147.105/third_party/nasm/Makefile.in:448:	cd test && $(RUNPERL) performtest.pl --nasm=../nasm *.asm
chromium-84.0.4147.105/third_party/nasm/Makefile.in-449-
chromium-84.0.4147.105/third_party/nasm/Makefile.in-450-golden: nasm$(X)
chromium-84.0.4147.105/third_party/nasm/Makefile.in:451:	cd test && $(RUNPERL) performtest.pl --golden --nasm=../nasm *.asm
chromium-84.0.4147.105/third_party/nasm/Makefile.in-452-
##############################################
chromium-84.0.4147.105/third_party/nasm/nasm.spec.in-30-%description
chromium-84.0.4147.105/third_party/nasm/nasm.spec.in:31:NASM is the Netwide Assembler, a free portable assembler for the Intel
chromium-84.0.4147.105/third_party/nasm/nasm.spec.in-32-80x86 microprocessor series, using primarily the traditional Intel
##############################################
chromium-84.0.4147.105/third_party/nasm/README.md-5-
chromium-84.0.4147.105/third_party/nasm/README.md:6:Many many developers all over the net respect NASM for what it is:
chromium-84.0.4147.105/third_party/nasm/README.md-7-a widespread (thus netwide), portable (thus netwide!), very flexible
##############################################
chromium-84.0.4147.105/third_party/nasm/README.md-9-
chromium-84.0.4147.105/third_party/nasm/README.md:10:Now we have good news for you: NASM is licensed under the "simplified"
chromium-84.0.4147.105/third_party/nasm/README.md-11-[(2-clause) BSD license](https://opensource.org/licenses/BSD-2-Clause).
##############################################
chromium-84.0.4147.105/third_party/nasm/README.md-18-
chromium-84.0.4147.105/third_party/nasm/README.md:19:With best regards, the NASM crew.
##############################################
chromium-84.0.4147.105/third_party/nasm/install-sh-85-
chromium-84.0.4147.105/third_party/nasm/install-sh:86:	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
chromium-84.0.4147.105/third_party/nasm/install-sh-87-	    shift
##############################################
chromium-84.0.4147.105/third_party/nasm/install-sh-89-
chromium-84.0.4147.105/third_party/nasm/install-sh:90:	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
chromium-84.0.4147.105/third_party/nasm/install-sh-91-	    shift
##############################################
chromium-84.0.4147.105/third_party/nasm/install-sh-150-	then
chromium-84.0.4147.105/third_party/nasm/install-sh:151:		dst="$dst"/`basename $src`
chromium-84.0.4147.105/third_party/nasm/install-sh-152-	else
##############################################
chromium-84.0.4147.105/third_party/nasm/install-sh-157-## this sed command emulates the dirname command
chromium-84.0.4147.105/third_party/nasm/install-sh:158:dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
chromium-84.0.4147.105/third_party/nasm/install-sh-159-
##############################################
chromium-84.0.4147.105/third_party/nasm/install-sh-171-IFS='%'
chromium-84.0.4147.105/third_party/nasm/install-sh:172:set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
chromium-84.0.4147.105/third_party/nasm/install-sh-173-IFS="${oIFS}"
##############################################
chromium-84.0.4147.105/third_party/nasm/install-sh-205-	then
chromium-84.0.4147.105/third_party/nasm/install-sh:206:		dstfile=`basename $dst`
chromium-84.0.4147.105/third_party/nasm/install-sh-207-	else
##############################################
chromium-84.0.4147.105/third_party/nasm/install-sh-215-	then
chromium-84.0.4147.105/third_party/nasm/install-sh:216:		dstfile=`basename $dst`
chromium-84.0.4147.105/third_party/nasm/install-sh-217-	else
##############################################
chromium-84.0.4147.105/third_party/nasm/stdlib/strrchrnul.c-2- *
chromium-84.0.4147.105/third_party/nasm/stdlib/strrchrnul.c:3: *   Copyright 2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/stdlib/strrchrnul.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/stdlib/strrchrnul.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/stdlib/strnlen.c-2- *
chromium-84.0.4147.105/third_party/nasm/stdlib/strnlen.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/stdlib/strnlen.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/stdlib/strnlen.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/TODO:1:NASM TODO list
chromium-84.0.4147.105/third_party/nasm/TODO-2-==============
##############################################
chromium-84.0.4147.105/third_party/nasm/TODO-26-
chromium-84.0.4147.105/third_party/nasm/TODO:27:F: NDISASM x64 Support
chromium-84.0.4147.105/third_party/nasm/TODO-28-D: Ability to disassemble respective x64 code
##############################################
chromium-84.0.4147.105/third_party/nasm/TODO-120-D: of relocation not work. See zbrown.asm. Looks like we may have to do
chromium-84.0.4147.105/third_party/nasm/TODO:121:D: a major rewrite of parts of it. Compare some NASM code output with
chromium-84.0.4147.105/third_party/nasm/TODO-122-D: equivalent GAS code output. Look at the ELF spec. Generally fix things.
##############################################
chromium-84.0.4147.105/third_party/nasm/TODO-125-V: 0.99
chromium-84.0.4147.105/third_party/nasm/TODO:126:D: NASM is currently using a kludge in ELF that involves defining
chromium-84.0.4147.105/third_party/nasm/TODO-127-D: a symbol at a zero absolute offset. This isn't needed, as the
##############################################
chromium-84.0.4147.105/third_party/nasm/TODO-161-V: 1.00
chromium-84.0.4147.105/third_party/nasm/TODO:162:D: ndisasm should know this. New special code in instruction encodings, probably.
chromium-84.0.4147.105/third_party/nasm/TODO-163-
##############################################
chromium-84.0.4147.105/third_party/nasm/TODO-195-D: Bennett's (<KendallB@scitechsoft.com>) alternative syntax stuff,
chromium-84.0.4147.105/third_party/nasm/TODO:196:D: providing an alternative syntax mode for NASM which allows a macro
chromium-84.0.4147.105/third_party/nasm/TODO-197-D: set to be written that allows the same source files to be
chromium-84.0.4147.105/third_party/nasm/TODO:198:D: assembled with NASM and TASM.
chromium-84.0.4147.105/third_party/nasm/TODO-199-R: Kendall Bennett
##############################################
chromium-84.0.4147.105/third_party/nasm/TODO-343-D: versions?
chromium-84.0.4147.105/third_party/nasm/TODO:344:D: hpa: The -p option to ndisasm now uses this to some extent.
chromium-84.0.4147.105/third_party/nasm/TODO-345-V: 1.10
##############################################
chromium-84.0.4147.105/third_party/nasm/TODO-361-V: 2.00?
chromium-84.0.4147.105/third_party/nasm/TODO:362:D: Possibly invent a _patch_ for gcc so that it can take .asm files on the command line?
chromium-84.0.4147.105/third_party/nasm/TODO-363-D: If a wrapper happens, think about adding an option to cause the
chromium-84.0.4147.105/third_party/nasm/TODO-364-D: resulting executable file to be executed immediately, thus
chromium-84.0.4147.105/third_party/nasm/TODO:365:D: allowing NASM source files to have #!... (probably silly)
chromium-84.0.4147.105/third_party/nasm/TODO-366-
##############################################
chromium-84.0.4147.105/third_party/nasm/version.pl-3-##   
chromium-84.0.4147.105/third_party/nasm/version.pl:4:##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/version.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/version.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/version.pl-37-#
chromium-84.0.4147.105/third_party/nasm/version.pl:38:# Parse the NASM version file and produce appropriate macros
chromium-84.0.4147.105/third_party/nasm/version.pl-39-#
chromium-84.0.4147.105/third_party/nasm/version.pl:40:# The NASM version number is assumed to consist of:
chromium-84.0.4147.105/third_party/nasm/version.pl-41-#
##############################################
chromium-84.0.4147.105/third_party/nasm/README.chromium-16-
chromium-84.0.4147.105/third_party/nasm/README.chromium:17:If you make any changes to nasm which are not in upstream, please update the
chromium-84.0.4147.105/third_party/nasm/README.chromium-18-README.patches file with the following command:
##############################################
chromium-84.0.4147.105/third_party/nasm/LICENSE:1:NASM is now licensed under the 2-clause BSD license, also known as the
chromium-84.0.4147.105/third_party/nasm/LICENSE-2-simplified BSD license.
chromium-84.0.4147.105/third_party/nasm/LICENSE-3-
chromium-84.0.4147.105/third_party/nasm/LICENSE:4:    Copyright 1996-2010 the NASM Authors - All rights reserved.
chromium-84.0.4147.105/third_party/nasm/LICENSE-5-
##############################################
chromium-84.0.4147.105/third_party/nasm/ndisasm.txt-8-----
chromium-84.0.4147.105/third_party/nasm/ndisasm.txt:9:ndisasm - the Netwide Disassembler, an 80x86 binary file disassembler
chromium-84.0.4147.105/third_party/nasm/ndisasm.txt-10-
##############################################
chromium-84.0.4147.105/third_party/nasm/README.patches-15-
chromium-84.0.4147.105/third_party/nasm/README.patches:16:    This is one of the initial commits preparing NASM for use in Chrome.
chromium-84.0.4147.105/third_party/nasm/README.patches-17-
##############################################
chromium-84.0.4147.105/third_party/nasm/README.patches-53-    Prior to this change, no inline function bodies would be provided for
chromium-84.0.4147.105/third_party/nasm/README.patches:54:    MSVC. This change fixes that, so nasm will be slightly faster.
chromium-84.0.4147.105/third_party/nasm/README.patches-55-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-95-This doesn't count as a module - it defines a few arrays which are
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc:96:shared between NASM and NDISASM, so it's a separate file which is
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-97-#included by both parser.c and disasm.c.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-213-sections/segments/groups of which an object file is composed.
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc:214:Essentially, every address NASM is capable of understanding is
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-215-expressed as an offset from the beginning of some segment.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-253-
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc:254:We have tried to write NASM in portable ANSI C: we do not assume
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-255-little-endianness or any hardware characteristics (in order that
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc:256:NASM should work as a cross-assembler for x86 platforms, even when
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-257-run on other, stranger machines).
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-265-- We rely on having more than 6 characters of significance on
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc:266:  externally linked symbols in the NASM sources. This may get fixed
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-267-  at some point. We haven't yet come across a linker brain-dead
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-271-  binary data files. This may be wrong on systems like VMS, with a
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc:272:  strange file system. Though why you'd want to run NASM on VMS is
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-273-  beyond me anyway.
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-274-
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc:275:That's it. Subject to those caveats, NASM should be completely
chromium-84.0.4147.105/third_party/nasm/doc/internal.doc-276-portable. If not, we _really_ want to know about it.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/findfont.ph-3-##
chromium-84.0.4147.105/third_party/nasm/doc/findfont.ph:4:##   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/doc/findfont.ph:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/doc/findfont.ph-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/head.ps-1-%
chromium-84.0.4147.105/third_party/nasm/doc/head.ps:2:% PostScript header for NASM documentation
chromium-84.0.4147.105/third_party/nasm/doc/head.ps-3-%
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/opt_var.txt:1:                     NASM Optimizer Usage of
chromium-84.0.4147.105/third_party/nasm/doc/opt_var.txt-2-              Certain Variables to Control Assembly
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/opt_var.txt-9-        optimizing     optimization meta data (with level and flag info)
chromium-84.0.4147.105/third_party/nasm/doc/opt_var.txt:10:        .level         -1 flags nasm 0.98 compatible operation;
chromium-84.0.4147.105/third_party/nasm/doc/opt_var.txt-11-                            offsets usually are explicit (short/near)
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/inslist.pl-3-##   
chromium-84.0.4147.105/third_party/nasm/doc/inslist.pl:4:##   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/doc/inslist.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/doc/inslist.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/Makefile.in-1-#
chromium-84.0.4147.105/third_party/nasm/doc/Makefile.in:2:# UNIX Makefile for NASM documentation
chromium-84.0.4147.105/third_party/nasm/doc/Makefile.in-3-#
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/afmmetrics.ph-3-##
chromium-84.0.4147.105/third_party/nasm/doc/afmmetrics.ph:4:##   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/doc/afmmetrics.ph:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/doc/afmmetrics.ph-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl-3-##
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl:4:##   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl-1012-print "%%BoundingBox: 0 0 ", $psconf{pagewidth}, ' ', $psconf{pageheight}, "\n";
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl:1013:print "%%Creator: (NASM psflow.pl)\n";
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl-1014-print "%%DocumentData: Clean7Bit\n";
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl-1065-foreach $font ( sort(keys(%ps_all_fonts)) ) {
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl:1066:    print '/',$font,'-NASM /',$font," nasmenc\n";
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl-1067-}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl-1073-	print '/', $fset->{name}, $i, ' ',
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl:1074:	'/', $font->[1]->{name}, '-NASM findfont ',
chromium-84.0.4147.105/third_party/nasm/doc/genps.pl-1075-	$font->[0], " scalefont def\n";
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/pspdf.pl-92-# 1. Acrobat distiller
chromium-84.0.4147.105/third_party/nasm/doc/pspdf.pl:93:my $r = system('acrodist', '-n', '-q', '--nosecurity', '-o', $out, $in);
chromium-84.0.4147.105/third_party/nasm/doc/pspdf.pl-94-exit 0 if ( !$r && -f $out );
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/pspdf.pl-112-# 3. pstopdf (BSD/MacOS X utility)
chromium-84.0.4147.105/third_party/nasm/doc/pspdf.pl:113:my $r = system('pstopdf', $in, '-o', $out);
chromium-84.0.4147.105/third_party/nasm/doc/pspdf.pl-114-exit 0 if ( !$r && -f $out );
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2-\#
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3:\#   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4:\#   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5-\#   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-33-\#
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:34:\# Source code to NASM documentation
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-35-\#
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-37-\M{category}{Programming}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:38:\M{title}{NASM - The Netwide Assembler}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-39-\M{year}{1996-2017}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:40:\M{author}{The NASM Development Team}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-41-\M{copyright_tail}{-- All Rights Reserved}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:42:\M{license}{This document is redistributable under the license given in the file "LICENSE" distributed in the NASM archive.}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-43-\M{summary}{This file documents NASM, the Netwide Assembler: an assembler targetting the Intel x86 series of processors, with portable source.}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-109-\IR{>>} \c{>>} operator
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:110:\IR{?} \c{?} MASM syntax
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-111-\IR{^} \c{^} operator
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-215-\IR{nan} NaN
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:216:\IR{nasm version} NASM version
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-217-\IR{netbsd} NetBSD
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-305-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:306:NASM also comes with a set of utilities for handling the \c{RDOFF}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-307-custom object-file format.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-312-distribution archive, for the license conditions under which you may
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:313:use NASM.  NASM is now under the so-called 2-clause BSD license, also
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-314-known as the simplified BSD license.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-315-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:316:Copyright 1996-2017 the NASM Authors - All rights reserved.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-317-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-344-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:345:\H{syntax} NASM \i{Command-Line} Syntax
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-346-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-348-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:349:\c nasm -f <format> <filename> [-o <output>]
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-350-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-352-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:353:\c nasm -f elf myfile.asm
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-354-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-356-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:357:\c nasm -f bin myfile.asm -o myfile.com
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-358-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-364-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:365:\c nasm -f coff myfile.asm -l myfile.lst
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-366-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-368-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:369:\c nasm -h
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-370-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-380-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:381:(in the directory in which you put the NASM binary when you
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-382-installed it). If it says something like
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-386-then your system is \c{ELF}, and you should use the option \c{-f elf}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:387:when you want NASM to produce Linux object files. If it says
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-388-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-394-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:395:Like Unix compilers and assemblers, NASM is silent unless it
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-396-goes wrong: you won't see any output at all, unless it gives error
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-401-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:402:NASM will normally choose the name of your output file for you;
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-403-precisely how it does this is dependent on the object file format.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-405-it will remove the \c{.asm} \i{extension} (or whatever extension you
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:406:like to use - NASM doesn't care) from your source file name and
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-407-substitute \c{.obj}. For Unix object file formats (\c{aout}, \c{as86},
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-413-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:414:If the output file already exists, NASM will overwrite it, unless it
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-415-has the same name as the input file, in which case it will give a
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-423-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:424:\c nasm -f bin program.asm -o program.com
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:425:\c nasm -f bin driver.asm -odriver.sys
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-426-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-442-A complete list of the available output file formats can be given by
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:443:issuing the command \i\c{nasm -hf}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-444-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-448-If you supply the \c{-l} option to NASM, followed (with the usual
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:449:optional space) by a file name, NASM will generate a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-450-\i{source-listing file} for you, in which addresses and generated
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-455-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:456:\c nasm -f elf myfile.asm -l myfile.lst
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-457-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-469-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:470:\c nasm -M myfile.asm > myfile.dep
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-471-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-485-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:486:\c nasm -M -MF myfile.dep myfile.asm
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-487-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-496-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:497:\c nasm -f elf -o myfile.o -MD myfile.dep myfile.asm
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-498-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-518-When used with any of the dependency generation options, the \c{-MP}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:519:option causes NASM to emit a phony target without dependencies for
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-520-each header file.  This prevents Make from complaining if a header
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-525-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:526:This option causes NASM to attempt to quote dependencies according to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-527-Watcom Make conventions rather than POSIX Make conventions (also used
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-542-A complete list of the available debug file formats for an output
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:543:format can be seen by issuing the command \c{nasm -f <format> -y}.  Not
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-544-all output formats currently support debugging output.  See \k{opt-y}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-589-redirect the standard-error output of a program to a file. Since
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:590:NASM usually produces its warning and \i{error messages} on
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-591-\i\c{stderr}, this can make it hard to capture the errors if (for
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-593-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:594:NASM therefore provides the \c{-Z} option, taking a filename argument
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-595-which causes errors to be sent to the specified files rather than
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-598-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:599:\c nasm -Z myfile.err -f obj myfile.asm
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-600-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-611-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:612:\c nasm -s -f obj myfile.asm | more
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-613-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-618-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:619:When NASM sees the \i\c{%include} or \i\c{%pathsearch} directive in a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-620-source file (see \k{include}, \k{pathsearch} or \k{incbin}), it will
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-625-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:626:\c nasm -ic:\macrolib\ -f obj myfile.asm
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-627-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-652-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:653:\I\c{%include}NASM allows you to specify files to be
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-654-\e{pre-included} into your source file, by the use of the \c{-p}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-656-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:657:\c nasm myfile.asm -p myinc.inc
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-658-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:659:is equivalent to running \c{nasm myfile.asm} and placing the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-660-directive \c{%include "myinc.inc"} at the start of the file.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-675-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:676:\c nasm myfile.asm -dFOO=100
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-677-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-699-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:700:\c nasm myfile.asm -dFOO=100 -uFOO
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-701-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-711-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:712:NASM allows the \i{preprocessor} to be run on its own, up to a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-713-point. Using the \c{-E} option (which requires no arguments) will
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:714:cause NASM to preprocess its input file, expand all the macro
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-715-references, remove all the comments and preprocessor directives, and
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-727-For compatiblity with older version of NASM, this option can also be
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:728:written \c{-e}.  \c{-E} in older versions of NASM was the equivalent
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-729-of the current \c{-Z} option, \k{opt-Z}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-732-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:733:If NASM is being used as the back end to a compiler, it might be
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-734-desirable to \I{suppressing preprocessing}suppress preprocessing
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-736-and increase compilation speeds. The \c{-a} option, requiring no
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:737:argument, instructs NASM to replace its powerful \i{preprocessor}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-738-with a \i{stub preprocessor} which does nothing.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-742-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:743:Using the \c{-O} option, you can tell NASM to carry out different
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-744-levels of optimization.  The syntax is:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-747-        if a short form is not specified, except conditional jumps.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:748:        This is intended to match NASM 0.98 behavior.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-749-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-762-The \c{-Ox} mode is recommended for most uses, and is the default
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:763:since NASM 2.09.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-764-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-768-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:769:\S{opt-t} The \i\c{-t} Option: Enable TASM Compatibility Mode
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-770-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:771:NASM includes a limited form of compatibility with Borland's \i\c{TASM}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-772-When NASM's \c{-t} option is used, the following changes are made:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-775-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:776:\b size override is supported within brackets. In TASM compatible mode,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-777-a size override inside square brackets changes the size of the operand,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:778:and not the address type of the operand as it does in NASM syntax. E.g.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:779:\c{mov eax,[DWORD val]} is valid syntax in TASM compatibility mode.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-780-Note that you lose the ability to override the default address type for
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-788-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:789:NASM can observe many conditions during the course of assembly which
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-790-are worth mentioning to the user, but not a sufficiently severe
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:791:error to justify NASM refusing to generate an output file. These
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-792-conditions are reported like errors, but come up with the word
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:793:`warning' before the message. Warnings do not prevent NASM from
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-794-generating an output file and returning a success status to the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-797-Some conditions are even less severe than that: they are only
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:798:sometimes worth mentioning to the user. Therefore NASM supports the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-799-\c{-w} command-line option, which enables or disables certain
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-822-contain no instruction but define a label without a trailing colon.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:823:NASM warns about this somewhat obscure condition by default;
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-824-see \k{syntax} for more information.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-881-Thus, \c{-w+all} enables all available warnings, and \c{-w-all}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:882:disables warnings entirely (since NASM 2.13).
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-883-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:884:Since version 2.00, NASM has also supported the \c{gcc}-like syntax
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-885-\c{-Wwarning-class} and \c{-Wno-warning-class} instead of
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-891-(\c{-w+error=}\e{warning-class} or \c{-Werror=}\e{warning-class});
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:892:if no \e{warning-class} is specified NASM treats it as
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-893-\c{-w+error=all}; the same applies to \c{-w-error} or
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-902-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:903:Typing \c{NASM -v} will display the version of NASM which you are using,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-904-and the date on which it was compiled.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-908-For command-line compatibility with Yasm, the form \i\c{--v} is also
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:909:accepted for this option starting in NASM version 2.11.05.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-910-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-912-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:913:Typing \c{nasm -f <option> -y} will display a list of the available
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-914-debug info formats for the given output format. The default format
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-916-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:917:\c nasm -f elf -y
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-918-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-934-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:935:\c nasm -f macho --gprefix _
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-936-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-943-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:944:NASM accepts an argument as \c{%pragma} option, which is like placing
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-945-a \c{%pragma} preprocess statement at the beginning of the source.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-947-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:948:\c nasm -f macho --pragma "macho gprefix _"
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-949-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-957-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:958:\c nasm -f macho --before "%pragma macho gprefix _"
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-959-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-984-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:985:\c nasm --limit-lines 1000
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-986-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1004-what you might want, because it will be split at the space and the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1005:NASM command-line processing will get confused by the two
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1006-nonsensical words \c{-dNAME="my} and \c{name"}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1007-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1008:To get round this, NASM provides a feature whereby, if you begin the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1009-\c{NASMENV} environment variable with some character that isn't a minus
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1010:sign, then NASM will treat this character as the \i{separator
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1011-character} for options. So setting the \c{NASMENV} variable to the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1027-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1028:\S{qscs} NASM Is \I{case sensitivity}Case-Sensitive
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1029-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1030:One simple difference is that NASM is case-sensitive. It makes a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1031-difference whether you call your label \c{foo}, \c{Foo} or \c{FOO}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1038-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1039:\S{qsbrackets} NASM Requires \i{Square Brackets} For \i{Memory References}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1040-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1041:NASM was designed with simplicity of syntax in mind. One of the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1042:\i{design goals} of NASM is that it should be possible, as far as is
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1043:practical, for the user to look at a single line of NASM code
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1044-and tell what opcode is generated by it. You can't do this in MASM:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1057-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1058:NASM avoids this undesirable situation by having a much simpler
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1059-syntax for memory references. The rule is simply that any access to
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1066-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1067:This also means that NASM has no need for MASM's \i\c{OFFSET}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1068:keyword, since the MASM code \c{mov ax,offset bar} means exactly the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1069-same thing as NASM's \c{mov ax,bar}. If you're trying to get
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1070:large amounts of MASM code to assemble sensibly under NASM, you
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1071-can always code \c{%idefine offset} to make the preprocessor treat
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1078-\c{var} was declared as \c{var: dw 0} (a label) or \c{var dw 0} (a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1079:word-size variable). NASM is very simple by comparison:
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1080-\e{everything} is a label.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1082-NASM, in the interests of simplicity, also does not support the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1083:\i{hybrid syntaxes} supported by MASM and its clones, such as
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1084-\c{mov ax,table[bx]}, where a memory reference is denoted by one
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1089-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1090:\S{qstypes} NASM Doesn't Store \i{Variable Types}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1091-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1092-NASM, by design, chooses not to remember the types of variables you
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1093:declare. Whereas MASM will remember, on seeing \c{var dw 0}, that
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1094-you declared \c{var} as a word-size variable, and will then be able
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1095-to fill in the \i{ambiguity} in the size of the instruction \c{mov
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1096:var,2}, NASM will deliberately remember nothing about the symbol
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1097-\c{var} except where it begins, and so you must explicitly code
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1099-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1100:For this reason, NASM doesn't support the \c{LODS}, \c{MOVS},
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1101-\c{STOS}, \c{SCAS}, \c{CMPS}, \c{INS}, or \c{OUTS} instructions,
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1106-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1107:\S{qsassume} NASM Doesn't \i\c{ASSUME}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1108-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1109-As part of NASM's drive for simplicity, it also does not support the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1110:\c{ASSUME} directive. NASM will not keep track of what values you
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1111-choose to put in your segment registers, and will never
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1114-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1115:\S{qsmodel} NASM Doesn't Support \i{Memory Models}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1116-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1117:NASM also does not have any directives to support different 16-bit
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1118-memory models. The programmer has to keep track of which functions
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1120-\i{near call}, and is responsible for putting the correct form of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1121:\c{RET} instruction (\c{RETN} or \c{RETF}; NASM accepts \c{RET}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1122-itself as an alternate form for \c{RETN}); in addition, the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1130-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1131:NASM uses different names to refer to floating-point registers from
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1132:MASM: where MASM would call them \c{ST(0)}, \c{ST(1)} and so on, and
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1133-\i\c{a86} would call them simply \c{0}, \c{1} and so on, NASM
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1135-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1136:As of version 0.96, NASM now treats the instructions with
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1137-\i{`nowait'} forms in the same way as MASM-compatible assemblers.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1143-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1144:For historical reasons, NASM uses the keyword \i\c{TWORD} where MASM
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1145-and compatible assemblers use \i\c{TBYTE}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1146-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1147:NASM does not declare \i{uninitialized storage} in the same way as
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1148:MASM: where a MASM programmer might use \c{stack db 64 dup (?)},
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1149:NASM requires \c{stack resb 64}, intended to be read as `reserve 64
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1150:bytes'. For a limited amount of compatibility, since NASM treats
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1151-\c{?} as a valid character in symbol names, you can code \c{? equ 0}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1159-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1160:\C{lang} The NASM Language
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1161-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1162:\H{syntax} Layout of a NASM Source Line
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1163-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1164:Like most assemblers, each NASM source line contains (unless it
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1165-is a macro, a preprocessor directive or an assembler directive: see
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1174-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1175:NASM uses backslash (\\) as the line continuation character; if a line
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1176-ends with backslash, the next line is considered to be a part of the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1178-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1179:NASM places no restrictions on white space within a line: labels may
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1180-have white space before them, or instructions may have no space
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1184-valid source line which does nothing but define a label. Running
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1185:NASM with the command-line option
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1186-\I{orphan-labels}\c{-w+orphan-labels} will cause it to warn you if
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1217-\c{CS}, \c{A32}, \c{LOCK} or \c{REPE} can appear on a line by
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1218:themselves, and NASM will just generate the prefix bytes.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1219-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1220:In addition to actual machine instructions, NASM also supports a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1221-number of pseudo-instructions, described in \k{pseudop}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1224-registers, described simply by the register name (e.g. \c{ax},
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1225:\c{bp}, \c{ebx}, \c{cr0}: NASM does not use the \c{gas}-style
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1226-syntax in which register names must be prefixed by a \c{%} sign), or
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1229-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1230:For x87 \i{floating-point} instructions, NASM accepts a wide range of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1231:syntaxes: you can use two-operand forms like MASM supports, or you
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1232-can use NASM's native single-operand forms in most cases.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1292-words, doublewords or whatever to reserve.  As stated in \k{qsother},
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1293:NASM does not support the MASM/TASM syntax of reserving uninitialized
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1294-space by writing \I\c{?}\c{DW ?} or similar things: this is what it
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1400-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1401:NASM is capable of doing \i{algebra} on these effective addresses,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1402-so that things which don't necessarily \e{look} legal are perfectly
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1408-Some forms of effective address have more than one assembled form;
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1409:in most such cases NASM will generate the smallest form it can. For
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1410-example, there are distinct assembled forms for the 32-bit effective
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1411:addresses \c{[eax*2+0]} and \c{[eax+eax]}, and NASM will generally
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1412-generate the latter on the grounds that the former requires four
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1414-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1415:NASM has a hinting mechanism which will cause \c{[eax+ebx]} and
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1416-\c{[ebx+eax]} to generate different opcodes; this is occasionally
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1419-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1420:However, you can force NASM to generate an effective address in a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1421-particular form by the use of the keywords \c{BYTE}, \c{WORD},
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1422-\c{DWORD} and \c{NOSPLIT}. If you need \c{[eax+3]} to be assembled
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1423:using a double-word offset field instead of the one byte NASM will
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1424-normally generate, you can code \c{[dword eax+3]}. Similarly, you
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1425:can force NASM to use a byte offset for a small value which it
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1426-hasn't seen on the first pass (see \k{crit} for an example of such a
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1436-offset that is larger than will fit in a 16-bit value, if you don't
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1437:specify that it is a dword offset, nasm will cause the high word of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1438-the offset to be lost.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1439-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1440:Similarly, NASM will split \c{[eax*2]} into \c{[eax+eax]} because
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1441-that allows the offset field to be absent and space to be saved; in
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1449-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1450:In 64-bit mode, NASM will by default generate absolute addresses.  The
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1451-\i\c{REL} keyword makes it produce \c{RIP}-relative addresses. Since
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1462-For mib operands, there are several ways of writing effective address depending
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1463:on the tools. NASM supports all currently possible ways of mib syntax:
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1464-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1467-\c      ; base=rax, index=rbx, scale=1, displacement=3
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1468:\c      bndstx [rax+0x3,rbx], bnd0      ; NASM - split EA
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1469-\c      bndstx [rbx*1+rax+0x3], bnd0    ; GAS - '*1' indecates an index reg
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1482-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1483:NASM understands four different types of constant: numeric,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1484-character, string and floating-point.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1488-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1489:A numeric constant is simply a number. NASM allows you to specify
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1490-numbers in a variety of number bases, in a variety of ways: you can
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1498-digit after the \c{$} rather than a letter.  In addition, current
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1499:versions of NASM accept the prefix \c{0h} for hexadecimal, \c{0d} or
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1500-\c{0t} for decimal, \c{0o} or \c{0q} for octal, and \c{0b} or \c{0y}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1531-backquotes (\c{`...`}).  Single or double quotes are equivalent to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1532:NASM (except of course that surrounding the constant with single
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1533-quotes allows double quotes to appear within it and vice versa); the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1650-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1651:NASM also support C99-style hexadecimal floating-point: \c{0x},
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1652-hexadecimal digits, period, optionally more hexadeximal digits, then
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1653-optionally a \c{P} followed by a \e{binary} (not hexadecimal) exponent
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1654:in decimal notation.  As an extension, NASM additionally supports the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1655-\c{0h} and \c{$} prefixes for hexadecimal, as well binary and octal
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1699-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1700:NASM cannot do compile-time arithmetic on floating-point constants.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1701:This is because NASM is designed to be portable - although it always
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1702-generates code to run on x86 processors, the assembler itself can
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1704-cannot guarantee the presence of a floating-point unit capable of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1705:handling the \i{Intel number formats}, and so for NASM to be able to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1706-do floating arithmetic it would have to include its own complete set
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1741-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1742:Expressions in NASM are similar in syntax to those in C.  Expressions
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1743-are evaluated as 64-bit integers which are then adjusted to the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1745-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1746:NASM supports two special tokens in expressions, allowing
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1747-calculations to involve the current assembly position: the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1753-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1754:The arithmetic \i{operators} provided by NASM are listed here, in
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1755-increasing order of \i{precedence}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1846-want to refer to some symbol using a different segment base from the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1847:preferred one. NASM lets you do this, by the use of the \c{WRT}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1848-(With Reference To) keyword. So you can do things like
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1856-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1857:NASM supports far (inter-segment) calls and jumps by means of the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1858-syntax \c{call segment:offset}, where \c{segment} and \c{offset}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1868-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1869:NASM supports the syntax \I\c{CALL FAR}\c{call far procedure} as a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1870-synonym for the first of the above usages. \c{JMP} works identically
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1877-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1878:NASM supports no convenient synonym for this, though you can always
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1879-invent one using the macro processor.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1884-When assembling with the optimizer set to level 2 or higher (see
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1885:\k{opt-O}), NASM will use size specifiers (\c{BYTE}, \c{WORD},
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1886-\c{DWORD}, \c{QWORD}, \c{TWORD}, \c{OWORD}, \c{YWORD} or \c{ZWORD}),
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1906-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1907:Although NASM has an optional multi-pass optimizer, there are some
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1908-expressions which must be resolvable on the first pass. These are
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1913-code, knows all the symbol addresses the code refers to. So one
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1914:thing NASM can't handle is code whose size depends on the value of a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1915-symbol declared after the code in question. For example,
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1920-The argument to \i\c{TIMES} in this case could equally legally
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1921:evaluate to anything at all; NASM will reject this example because
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1922-it cannot tell the size of the \c{TIMES} line when it first sees it.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1931-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1932:NASM rejects these examples by means of a concept called a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1933-\e{critical expression}, which is defined to be an expression whose
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1939-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1940:NASM gives special treatment to symbols beginning with a \i{period}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1941-A label beginning with a single period is treated as a \e{local}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1966-This form of local label handling is borrowed from the old Amiga
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1967:assembler \i{DevPac}; however, NASM goes one step further, in
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1968-allowing access to local labels from other parts of the code. This
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1985-local because the macro that defined it wouldn't know the label's
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1986:full name. NASM therefore introduces a third type of label, which is
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1987-probably only useful in macro definitions: if a label begins with
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-1998-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:1999:NASM has the capacity to define other special symbols beginning with
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2000-a double period: for example, \c{..start} is used to specify the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2007-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2008:\C{preproc} The NASM \i{Preprocessor}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2009-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2010:NASM contains a powerful \i{macro processor}, which supports
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2011-conditional assembly, multi-level file inclusion, two forms of macro
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2106-You can \i{pre-define} single-line macros using the `-d' option on
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2107:the NASM command line: see \k{opt-d}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2108-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2262-Macros that would otherwise be pre-defined can be undefined on the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2263:command-line using the `-u' option on the NASM command line: see
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2264-\k{opt-u}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2407-Multi-line macros are much more like the type of macro seen in MASM
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2408:and TASM: a multi-line macro definition in NASM looks something like
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2409-this.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2487-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2488:Ordinarily, NASM will give a warning for the first of the above two
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2489-lines, since \c{push} is now defined to be a macro, and is being
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2497-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2498:NASM allows you to define labels within a multi-line macro
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2499-definition in such a way as to make them local to the macro call: so
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2513-You can call this macro as many times as you want, and every time
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2514:you call it NASM will make up a different `real' name to substitute
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2515:for the label \c{%%skip}. The names NASM invents are of the form
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2516-\c{..@2345.skip}, where the number 2345 changes with every macro
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2533-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2534:NASM allows you to define the last parameter of a macro to be
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2535-\e{greedy}, meaning that if you invoke the macro with more
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2558-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2559:The greedy nature of the macro is indicated to NASM by the use of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2560-the \I{+ modifier}\c{+} sign after the parameter count on the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2562-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2563:If you define a greedy macro, you are effectively telling NASM how
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2564-it should expand the macro given \e{any} number of parameters from
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2565-the actual number specified up to infinity; in this case, for
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2566:example, NASM now knows what to do when it sees a call to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2567:\c{writefile} with 2, 3, 4 or more parameters. NASM will take this
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2568-into account when overloading macros, and will not allow you to
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2577-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2578:NASM provides both mechanisms for putting \i{commas in macro
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2579-parameters}, and you choose which one you prefer for each macro
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2585-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2586:NASM allows you to expand parameters via special construction \c{%\{x:y\}}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2587-where \c{x} is the first parameter index and \c{y} is the last. Any index can
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2610-But even this is not the last. The parameters can be addressed via negative
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2611:indices so NASM will count them reversed. The ones who know Python may see
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2612-the analogue here.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2621-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2622:Note that NASM uses \i{comma} to separate parameters being expanded.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2623-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2628-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2629:NASM also allows you to define a multi-line macro with a \e{range}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2630-of allowable parameter counts. If you do this, you can specify
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2714-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2715:NASM provides a similar mechanism, in the form of \c{%rotate}. As
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2716-its name suggests, it differs from the Unix \c{shift} in that no
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2776-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2777:NASM can concatenate macro parameters and macro indirection constructs
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2778-on to other text surrounding them. This allows you to declare a family
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2821-\c{bar} to the end of the real name of the macro-local label
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2822:\c{%%foo}. (This is unnecessary, since the form NASM uses for the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2823-real names of macro-local labels means that the two usages
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2835-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2836:NASM can give special treatment to a macro parameter which contains
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2837-a condition code. For a start, you can refer to the macro parameter
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2838-\c{%1} by means of the alternative syntax \i\c{%+1}, which informs
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2839:NASM that this macro parameter is supposed to contain a condition
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2840-code, and will cause the preprocessor to report an error message if
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2844-Far more usefully, though, you can refer to the macro parameter by
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2845:means of \i\c{%-1}, which NASM will expand as the \e{inverse}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2846-condition code. So the \c{retz} macro defined in \k{maclocal} can be
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2869-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2870:When NASM is generating a listing file from your program, it will
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2871-generally expand multi-line macros by means of writing the macro
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2876-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2877:NASM therefore provides the \c{.nolist} qualifier, which you can
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2878-include in a macro definition to inhibit the expansion of the macro
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2914-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:2915:Similarly to the C preprocessor, NASM allows sections of a source
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-2916-file to be assembled only if certain conditions are met. The general
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3025-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3026:\c{%if} extends the normal NASM expression syntax, by providing a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3027-set of \i{relational operators} which are not normally available in
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3183-multi-line macro multiple times, because it is processed by NASM
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3184:after macros have already been expanded. Therefore NASM provides
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3185-another form of loop, this time at the preprocessor level: \c{%rep}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3222-16 bits. Note that a maximum repeat count must still be given to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3223:\c{%rep}. This is to prevent the possibility of NASM getting into an
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3224-infinite loop in the preprocessor, which (on multitasking or
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3248-current directory (the directory you're in when you run NASM, as
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3249:opposed to the location of the NASM executable or the location of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3250:the source file), plus any directories specified on the NASM command
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3251-line using the \c{-i} option.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3267-directive that explicitly includes it, by using the \i\c{-p} option
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3268:on the NASM command line (see \k{opt-p}).
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3269-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3335-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3336:NASM provides this level of power by means of a \e{context stack}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3337-The preprocessor maintains a stack of \e{contexts}, each of which is
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3403-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3404:NASM also allows you to define single-line macros which are local to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3405-a particular context, in just the same way:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3416-Context fall-through lookup (automatic searching of outer contexts)
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3417:is a feature that was added in NASM version 0.98.03. Unfortunately,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3418-this feature is unintuitive and can result in buggy code that would
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3419-have otherwise been prevented by NASM's error reporting. As a result,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3420:this feature has been \e{deprecated}. NASM version 2.09 will issue a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3421-warning when usage of this \e{deprecated} feature is detected. Starting
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3422:with NASM version 2.10, usage of this \e{deprecated} feature will simply
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3423-result in an \e{expression syntax error}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3443-referenced within the \c{ctx2} context would implicitly use \c{%$external}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3444:as defined in \c{ctx1}. Most people would expect NASM to issue an error in
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3445-this situation because \c{%$external} was never defined within \c{ctx2} and also
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3475-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3476:NASM provides the directive \c{%repl}, which \e{replaces} a context
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3477-with a different name, without touching the associated macros and
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3588-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3589:While NASM has macros which attempt to duplicate this
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3590-functionality (see \k{16cmacro}), the syntax is not particularly
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3591:convenient to use and is not TASM compatible. Here is an example
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3592-which shows the use of \c{%arg} without any external macros:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3596-\c     %push     mycontext        ; save the current context
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3597:\c     %stacksize large           ; tell NASM to use bp
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3598-\c     %arg      i:word, j_ptr:word
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3616-\c{%arg} (see \k{arg}) and the \c{%local} (see \k{local}) directives.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3617:It tells NASM the default size to use for subsequent \c{%arg} and
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3618-\c{%local} directives. The \c{%stacksize} directive takes one
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3622-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3623:This form causes NASM to use stack-based parameter addressing
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3624-relative to \c{ebp} and it assumes that a near form of call was used
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3628-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3629:This form causes NASM to use stack-based parameter addressing
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3630-relative to \c{rbp} and it assumes that a near form of call was used
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3666-\c     %push mycontext             ; save the current context
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3667:\c     %stacksize small            ; tell NASM to use bp
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3668-\c     %assign %$localsize 0       ; see text for explanation
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3693-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3694:The preprocessor directive \c{%error} will cause NASM to report an
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3695-error if it occurs in assembled code. So if other users are going to
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3744-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3745:NASM also has preprocessor directives which allow access to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3746-information from external sources. Currently they include:
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3747-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3748:\b\c{%line} enables NASM to correctly handle the output of another
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3749-preprocessor (see \k{line}).
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3750-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3751:\b\c{%!} enables NASM to read in the value of an environment variable,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3752-which can then be used in your program (see \k{getenv}).
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3755-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3756:The \c{%line} directive is used to notify NASM that the input line
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3757-corresponds to a specific line number in another file.  Typically
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3758-this other file would be an original source file, with the current
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3759:NASM input being the output of a pre-processor.  The \c{%line}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3760:directive allows NASM to output messages which indicate the line
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3761-number of the original source file, instead of the file that is being
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3776-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3777:After reading a \c{%line} preprocessor directive, NASM will report
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3778-all file name and line numbers relative to the values specified
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3805-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3806:NASM defines a set of standard macros, which are already defined
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3807-when it starts to process any source file. If you really need a
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3817-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3818:\S{stdmacver} \i{NASM Version} Macros
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3819-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3822-major, minor, subminor and patch level parts of the \i{version
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3823:number of NASM} being used. So, under NASM 0.98.32p1 for
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3824-example, \c{__NASM_MAJOR__} would be defined to be 0, \c{__NASM_MINOR__}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3831-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3832:\S{stdmacverid} \i\c{__NASM_VERSION_ID__}: \i{NASM Version ID}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3833-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3834-The single-line macro \c{__NASM_VERSION_ID__} expands to a dword integer
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3835:representing the full version number of the version of nasm being used.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3836-The value is the equivalent to \c{__NASM_MAJOR__}, \c{__NASM_MINOR__},
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3851-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3852:\S{stdmacverstr} \i\c{__NASM_VER__}: \i{NASM Version string}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3853-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3854-The single-line macro \c{__NASM_VER__} expands to a string which defines
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3855:the version number of nasm being used. So, under NASM 0.98.32 for example,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3856-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3865-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3866:Like the C preprocessor, NASM allows the user to find out the file
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3867-name and line number containing the current instruction. The macro
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3905-The \c{__OUTPUT_FORMAT__} standard macro holds the current Output Format,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3906:as given by the \c{-f} option or NASM's default. Type \c{nasm -hf} for a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3907-list.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3917-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3918:NASM provides a variety of macros that represent the timestamp of the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3919-assembly session.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3989-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:3990:The core of NASM contains no intrinsic means of defining data
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-3991-structures; instead, the preprocessor is sufficiently powerful that
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4072-to do is to declare instances of that structure in your data
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4073:segment. NASM provides an easy way to do this in the \c{ISTRUC}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4074-mechanism. To declare a structure of type \c{mytype} in a program,
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4165-section you're in is only guaranteed to be aligned to a 4-byte
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4166:boundary, for example, is a waste of effort. Again, NASM does not
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4167-check that the section's alignment characteristics are sensible for
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4203-The \i\c{%use} directive (see \k{use}) includes one of the standard
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4204:macro packages included with the NASM distribution and compiled into
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4205:the NASM binary.  It operates like the \c{%include} directive (see
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4206:\k{include}), but the included contents is provided by NASM itself.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4207-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4237-package is enabled, when \c{ALIGN} is used without a second argument,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4238:NASM will generate a sequence of instructions more efficient than a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4239-series of \c{NOP}.  Furthermore, if the padding exceeds a specific
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4240:threshold, then NASM will generate a jump over the entire padding
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4241-sequence.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4253-\b \c{nop}: Pad out with \c{NOP} instructions.  The only difference
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4254:compared to the standard \c{ALIGN} macro is that NASM can still jump
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4255-over a large padding area.  The default jump threshold is 16.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4326-NASM, though it attempts to avoid the bureaucracy of assemblers like
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4327:MASM and TASM, is nevertheless forced to support a \e{few}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4328-directives. These are described in this chapter.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4348-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4349:The \c{BITS} directive specifies whether NASM should generate code
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4350-\I{16-bit mode, versus 32-bit mode}designed to run on a processor
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4356-object formats, which are designed for use in 32-bit or 64-bit
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4357:operating systems, all cause NASM to select 32-bit or 64-bit mode,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4358-respectively, by default. The \c{obj} object format allows you
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4359-to specify each segment you define as either \c{USE16} or \c{USE32},
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4360:and NASM will set its operating mode accordingly, so the use of the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4361-\c{BITS} directive is once again unnecessary.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4376-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4377:When NASM is in \c{BITS 16} mode, instructions which use 32-bit
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4378-data are prefixed with an 0x66 byte, and those referring to 32-bit
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4383-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4384:When NASM is in \c{BITS 64} mode, most instructions operate the same
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4385-as they do for \c{BITS 32} mode. However, there are 8 more general and
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4391-prefix is used both to select 64-bit operand size, and to access the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4392:new registers. NASM automatically inserts REX prefixes when
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4393-necessary.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4415-The \c{DEFAULT} directive changes the assembler defaults.  Normally,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4416:NASM defaults to a mode where the programmer is expected to explicitly
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4417-specify most features directly.  However, this is occasionally
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4579-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4580:\c{EXTERN} is similar to the MASM directive \c{EXTRN} and the C
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4581-keyword \c{extern}: it is used to declare a symbol which is not
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4828-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4829:NASM is a portable assembler, designed to be able to compile on any
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4830-ANSI C-supporting platform and produce output to run on a variety of
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4832-of available output formats, selected using the \i\c{-f} option on
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4833:the NASM \i{command line}. Each of these formats, along with its
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4834:extensions to the base NASM syntax, is detailed in this chapter.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4835-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4836:As stated in \k{opt-o}, NASM chooses a \i{default name} for your
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4837-output file based on the input file name and the chosen output
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4853-The \c{bin} format supports \i{multiple section names}. For details of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4854:how NASM handles sections in the \c{bin} format, see \k{multisec}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4855-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4856:Using the \c{bin} format puts NASM by default into 16-bit mode (see
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4857-\k{bits}). In order to use \c{bin} to write 32-bit or 64-bit code,
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4862-leaves your file name as it is once the original extension has been
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4863:removed. Thus, the default is for NASM to assemble \c{binprog.asm}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4864-into a binary file called \c{binprog}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4870-given in \k{directive}: \c{ORG}. The function of the \c{ORG}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4871:directive is to specify the origin address which NASM will assume
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4872-the program begins at when it is loaded into memory.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4948-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4949:\b NASM creates the \c{section.<secname>.start} for each section,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4950-which may be used in your code.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4989-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4990:The \c{obj} file format (NASM calls it \c{obj} rather than \c{omf}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4991-for historical reasons) is the one produced by \i{MASM} and
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4996-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:4997:\c{obj} is not exclusively a 16-bit format, though: NASM has full
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-4998-support for the 32-bit extensions to the format. In particular,
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5007-If your source file contains code before specifying an explicit
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5008:\c{SEGMENT} directive, then NASM will invent its own segment called
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5009-\i\c{__NASMDEFSEG} for you.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5010-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5011:When you define a segment in an \c{obj} file, NASM defines the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5012-segment name as a symbol as well, so that you can access the segment
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5095-are currently known to make sensible use of this feature;
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5096:nevertheless, NASM allows you to declare a segment such as
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5097-\c{SEGMENT SCREEN ABSOLUTE=0xB800} if you need to. The \i\c{ABSOLUTE}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5107-single segment register can be used to refer to all the segments in
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5108:a group. NASM therefore supplies the \c{GROUP} directive, whereby
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5109-you can code
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5128-If you just refer to \c{var}, however, and \c{var} is declared in a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5129:segment which is part of a group, then NASM will default to giving
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5130-you the offset of \c{var} from the beginning of the \e{group}, not
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5133-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5134:NASM will allow a segment to be part of more than one group, but
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5135-will generate a warning if you do this. Variables declared in a
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5146-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5147:Although NASM itself is \i{case sensitive}, some OMF linkers are
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5148:not; therefore it can be useful for NASM to output single-case
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5149-object files. The \c{UPPERCASE} format-specific directive causes all
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5151-to be forced to upper case just before being written. Within a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5152:source file, NASM is still case-sensitive; but the object file can
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5153-be written entirely in upper case if desired.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5260-However, having to type this every time you want to access \c{foo}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5261:can be a pain; so NASM allows you to declare \c{foo} in the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5262-alternative form
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5265-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5266:This form causes NASM to pretend that the preferred segment base of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5267-\c{foo} is in fact \c{dgroup}; so the expression \c{seg foo} will
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5280-The \c{obj} format allows common variables to be either near\I{near
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5281:common variables} or far\I{far common variables}; NASM allows you to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5282-specify which your variables should be by the use of the syntax
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5295-the variable size, to match when resolving common variables declared
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5296:in more than one module. Therefore NASM must allow you to specify
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5297-the element size on your far common variables. This is done by the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5321-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5322:Since NASM 2.13.02, \c{obj} files contain embedded dependency file
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5323-information.  To suppress the generation of dependencies, use
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5352-and properties of sections you declare. Section types and properties
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5353:are generated automatically by NASM for the \i{standard section names}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5354-\c{.text}, \c{.data} and \c{.bss}, but may still be overridden by
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5390-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5391:The defaults assumed by NASM if you do not specify the above
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5392-qualifiers are:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5417-Without regard to this run-time check merits it's natural to expect
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5418:NASM to be capable of generating modules suitable for \c{/safeseh}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5419-linking. From developer's viewpoint the problem is two-fold:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5424-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5425:Former can be easily achieved with any NASM version by adding following
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5426-line to source code:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5429-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5430:As of version 2.03 NASM adds this absolute symbol automatically. If
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5431-it's not already present to be precise. I.e. if for whatever reason
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5487-data for "safe exception handler table" causes no backward
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5488:incompatibilities and "safeseh" modules generated by NASM 2.03 and
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5489-later can still be linked by earlier versions or non-Microsoft linkers.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5547-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5548:NASM version 2.03 and later provides another alternative, \c{wrt
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5549-..imagebase} operator, which returns offset from base address of the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5564-One can argue that the operator is redundant. Indeed,  snippet before
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5565:last works just fine with any NASM version and is not even Windows
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5566-specific... The real reason for implementing \c{wrt ..imagebase} will
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5631-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5632:As for the moment of this writing NASM unfortunately does not
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5633-facilitate generation of above mentioned detailed information about
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5893-and properties of sections you declare. Section types and properties
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5894:are generated automatically by NASM for the \i{standard section
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5895-names}, but may still be
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5923-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5924:The defaults assumed by NASM if you do not specify the above
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5925-qualifiers are:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5987-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5988:\b Referring to a symbol name using \c{wrt ..sym} causes NASM to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5989-write an ordinary relocation, but instead of making the relocation
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5995-A fuller explanation of how to use these relocation types to write
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:5996:shared libraries entirely in NASM is given in \k{picdll}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-5997-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6028-merely debugger conveniences, but are actually necessary when the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6029:program being written is a \i{shared library}. NASM therefore
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6030-supports some extensions to the \c{GLOBAL} directive, allowing you
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6059-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6060:This makes NASM automatically calculate the length of the table and
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6061-place that information into the \c{ELF} symbol table.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6088-16-bit values, but the GNU \c{ld} linker adds these as an extension.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6089:NASM can generate GNU-compatible relocations, to allow 16-bit code to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6090:be linked as ELF using GNU \c{ld}. If NASM is used with the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6091-\c{-w+gnu-elf-extensions} option, a warning is issued when one of
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6150-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6151:NASM supports this format, just in case it is useful, as \c{as86}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6152-\c{as86} provides a default output file-name extension of \c{.o}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6153-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6154:\c{as86} is a very simple object format (from the NASM user's point
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6155-of view). It supports no special directives, no use of \c{SEG} or \c{WRT},
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6165-(Relocatable Dynamic Object File Format) is a home-grown object-file
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6166:format, designed alongside NASM itself and reflecting in its file
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6167-format the internal structure of the assembler.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6173-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6174:The Unix NASM archive, and the DOS archive which includes sources,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6175-both contain an \I{rdoff subdirectory}\c{rdoff} subdirectory holding
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6257-it outputs a text file which contains a complete list of all the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6258:transactions between the main body of NASM and the output-format
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6259-back end module. It is primarily intended to aid people who want to
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6265-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6266:\c nasm -f dbg filename.asm
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6267-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6272-will not be defined in the \c{dbg} format. Therefore it can be
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6273:useful to run NASM twice, in order to do the preprocessing with the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6274-native object format selected:
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6275-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6276:\c nasm -e -f rdf -o rdfprog.i rdfprog.asm
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6277:\c nasm -a -f dbg rdfprog.i
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6278-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6324-format to produce one or more \i\c{.OBJ} files, and then linking
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6325:them together using a linker. However, NASM also supports the direct
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6326-generation of simple DOS \c{.EXE} files using the \c{bin} output
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6330-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6331:NASM may also support \c{.EXE} natively as another output format in
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6332-future releases.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6361-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6362:An example of a NASM source file which can be assembled to a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6363-\c{.OBJ} file and linked on its own to a \c{.EXE} is given here. It
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6366-also provided in the \I{test subdirectory}\c{test} subdirectory of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6367:the NASM archives, under the name \c{objexe.asm}.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6368-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6431-a 32-byte header on the front. This header is simple enough that it
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6432:can be generated using \c{DB} and \c{DW} commands by NASM itself, so
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6433-that you can use the \c{bin} output format to directly generate
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6435-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6436:Included in the NASM archives, in the \I{misc subdirectory}\c{misc}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6437-subdirectory, is a file \i\c{exebin.mac} of macros. It defines three
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6469-A sample program which generates a \c{.EXE} file in this way is
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6470:given in the \c{test} subdirectory of the NASM archive, as
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6471-\c{binexe.asm}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6518-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6519:\c nasm myprog.asm -fbin -o myprog.com
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6520-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6543-\c{.COM} file. Other assemblers use an \i\c{ORG} directive for this
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6544:purpose, but \c{ORG} in NASM is a format-specific directive to the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6545-\c{bin} output format, and does not mean the same thing as it does
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6635-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6636:NASM contains no mechanism to support the various C memory models
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6637-directly; you have to keep track yourself of which one you are
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6873-can either do this by converting the C structure definition into a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6874:NASM structure definition (using \i\c{STRUC}), or by calculating the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6875-one offset and using just that.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6877-To do either of these, you should read your C compiler's manual to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6878:find out how it organizes data structures. NASM gives no special
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6879-alignment to structure members in its own \c{STRUC} macro, so you
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6896-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6897:Included in the NASM archives, in the \I{misc subdirectory}\c{misc}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6898-directory, is a file \c{c16.mac} of macros. It defines three macros:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6902-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:6903:(An alternative, TASM compatible form of \c{arg} is also now built
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-6904-into NASM's preprocessor. See \k{stackrel} for details.)
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7328-can either do this by converting the C structure definition into a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7329:NASM structure definition (using \c{STRUC}), or by calculating the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7330-one offset and using just that.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7332-To do either of these, you should read your C compiler's manual to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7333:find out how it organizes data structures. NASM gives no special
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7334-alignment to structure members in its own \i\c{STRUC} macro, so you
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7351-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7352:Included in the NASM archives, in the \I{misc directory}\c{misc}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7353-directory, is a file \c{c32.mac} of macros. It defines three macros:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7398-a different approach by hacking PIC support into the \c{a.out}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7399:format. NASM supports this as the \i\c{aoutb} output format, so you
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7400:can write \i{BSD} shared libraries in NASM too.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7401-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7474-section. (Actually, \c{ELF} encodes it as the offset from the operand
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7475:field of the \c{ADD} instruction, but NASM simplifies this
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7476-deliberately, so you do things the same way for both \c{ELF} and
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7583-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7584:NASM will interpret this code as an ordinary relocation, in which
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7585-\c{global_data_item} is merely an offset from the beginning of the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7594-which makes use of the special \c{WRT} type \I\c{WRT ..sym}\c{..sym}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7595:to instruct NASM to search the symbol table for a particular symbol
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7596-at that address, rather than just relocating by section base.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7681-generate the required instruction by coding it manually, using
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7682:\c{DB} instructions. NASM can go one better than that, by actually
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7683-generating the right instruction itself. Here's how to do it right:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7688-come \e{after} the colon, since it is declaring the \e{offset} field
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7689:to be a doubleword; but NASM will accept either form, since both are
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7690-unambiguous) forces the offset part to be treated as far, in the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7700-prefix in 32-bit mode, they will be ignored, since each is
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7701:explicitly forcing NASM into a mode it was in anyway.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7702-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7728-addresses to specify nothing but a 4-byte offset, so why shouldn't
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7729:NASM be able to generate the best instruction for the purpose?
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7730-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7735-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7736:Also as in \k{mixjump}, NASM is not fussy about whether the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7737-\c{DWORD} prefix comes before or after the segment override, so
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7856-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7857:NASM uses the following names for general-purpose registers in 64-bit
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7858-mode, for 8-, 16-, 32- and 64-bit references, respectively:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7875-In 64-bit mode, immediates and displacements are generally only 32
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7876:bits wide.  NASM will therefore truncate most displacements and
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7877-immediates to 32 bits.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7882-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7883:NASM will produce this instruction whenever the programmer uses
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7884-\c{MOV} with an immediate into a 64-bit register.  If this is not
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7895-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:7896:If optimization is enabled and NASM can determine at assembly time
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-7897-that a shorter instruction will suffice, the shorter instruction will
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8008-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8009:\S{inefficient} NASM Generates \i{Inefficient Code}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8010-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8011:We sometimes get `bug' reports about NASM generating inefficient, or
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8012-even `wrong', code on instructions such as \c{ADD ESP,8}. This is a
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8017-the instruction. This isn't a bug, it's user error: if you prefer to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8018:have NASM produce the more efficient code automatically enable
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8019-optimization with the \c{-O} option (see \k{opt-O}).
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8025-jumps} (which are \c{SHORT} by default) that try to jump too far,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8026:NASM reports `short jump out of range' instead of making the jumps
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8027-longer.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8029-This, again, is partly a predictability issue, but in fact has a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8030:more practical reason as well. NASM has no means of being told what
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8031-type of processor the code it is generating will be run on; so it
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8047-place the \c{0xAA55} signature word at the end of a 512-byte boot
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8048:sector, people who are used to MASM tend to code
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8049-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8057-This is not the intended use of the \c{ORG} directive in NASM, and
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8058:will not work. The correct way to solve this problem in NASM is to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8059-use the \i\c{TIMES} directive, like this:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8070-has the advantage that if you accidentally fill your boot sector too
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8071:full, NASM will catch the problem at assembly time and report it, so
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8072-you won't end up with a boot sector that you have to disassemble to
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8086-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8087:NASM is a \e{modular} assembler: the various component parts are
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8088-designed to be easily separable for re-use, so they don't exchange
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8120-The Netwide Disassembler does nothing except to produce
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8121:disassemblies of \e{binary} source files. NDISASM does not have any
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8122-understanding of object file formats, like \c{objdump}, and it will
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8130-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8131:\c        ndisasm -b {16|32|64} filename
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8132-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8133:NDISASM can disassemble 16-, 32- or 64-bit code equally easily,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8134-provided of course that you remember to specify which it is to work
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8135:with. If no \i\c{-b} switch is present, NDISASM works in 16-bit mode
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8136-by default. The \i\c{-u} switch (for USE32) also invokes 32-bit mode.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8138-Two more command line options are \i\c{-r} which reports the version
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8139:number of NDISASM you are running, and \i\c{-h} which gives a short
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8140-summary of command line options.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8152-file you are disassembling. Its argument may be expressed in any of
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8153:the NASM numeric formats: decimal by default, if it begins with `\c{$}'
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8154-or `\c{0x}' or ends in `\c{H}' it's \c{hex}, if it ends in `\c{Q}' it's
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8158-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8159:\c        ndisasm -o100h filename.com
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8160-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8173-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8174:Supposing NDISASM has just finished generating a strange machine
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8175-instruction from part of the data section, and its file position is
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8183-To avoid this, you can specify a `\i\c{synchronisation}' point, or indeed
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8184:as many synchronisation points as you like (although NDISASM can
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8185-only handle 2147483647 sync points internally). The definition of a sync
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8186:point is this: NDISASM guarantees to hit sync points exactly during
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8187-disassembly. If it is thinking about generating an instruction which
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8197-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8198:\c        ndisasm -o100h -s120h file.com
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8199-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8201-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8202:\c        ndisasm -o100h -s20h file.com
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8203-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8214-will contain a \c{JMP} instruction, then some data, then the rest of the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8215:code. So there is a very good chance of NDISASM being \e{misaligned}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8216-when the data ends and the code begins. Hence a sync point is
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8221-be, surely, would be to read the \c{JMP} instruction, and then to use
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8222:its target address as a sync point. So can NDISASM do that for you?
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8223-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8227-generates a sync point for any forward-referring PC-relative jump or
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8228:call instruction that NDISASM encounters. (Since NDISASM is one-pass,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8229-if it encounters a PC-relative jump whose target has already been
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8232-Only PC-relative jumps are processed, since an absolute jump is
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8233:either through a register (in which case NDISASM doesn't know what
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8234-the register contains) or involves a segment address (in which case
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8235:the target code isn't in the same segment that NDISASM is working
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8236-in, and so the sync point can't be placed anywhere useful).
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8250-fluke, something in your data section should disassemble to a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8251:PC-relative call or jump instruction, NDISASM may obediently place a
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8252-sync point in a totally random place, for example in the middle of
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8278-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8279:The following sections show the instructions which NASM currently supports. For each
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8280-instruction, there is a separate entry for each supported addressing mode. The third
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8285-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8286:\A{changelog} \i{NASM Version History}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8287-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8289-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8290:\A{source} Building NASM from Source
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8291-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8292:The source code for NASM is available from our website,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8293-\W{http://www.nasm.us/}{http://wwww.nasm.us/}, see \k{website}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8298-building on a number of platforms.  This is the recommended method for
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8299:building NASM to support platforms for which executables are not
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8300-available.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8321-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8322:The NASM development tree is kept in a source code repository using
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8323-the \c{git} distributed source control system.  The link is available
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8324-on the website.  This is recommended only to participate in the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8325:development of NASM or to assist with testing the development code.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8326-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8327:To build NASM from the \c{git} repository you will need a Perl and, if
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8328-building on a Unix system, GNU autoconf.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8339-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8340:NASM has a \i{website} at
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8341-\W{http://www.nasm.us/}\c{http://www.nasm.us/}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8343-\i{New releases}, \i{release candidates}, and \I{snapshots, daily
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8344:development}\i{daily development snapshots} of NASM are available from
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8345-the official web site in source form as well as binaries for a number
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8349-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8350:Users of NASM may find the Forums on the website useful.  These are,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8351-however, not frequented much by the developers of NASM, so they are
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8355-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8356:The development of NASM is coordinated primarily though the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8357-\i\c{nasm-devel} mailing list.  If you wish to participate in
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8378-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8379:\b What operating system you're running NASM under.  Linux,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8380-FreeBSD, NetBSD, MacOS X, Win16, Win32, Win64, MS-DOS, OS/2, VMS,
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8390-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8391:\b Which version of NASM you're using, and exactly how you invoked
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8392-it. Give us the precise command line, and the contents of the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8403-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8404:\b If at all possible, send us a NASM source file which exhibits the
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8405-problem. If this causes copyright problems (e.g. you can only
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8407-the following two points: firstly, we guarantee that any source code
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8408:sent to us for the purposes of debugging NASM will be used \e{only}
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8409-for the purposes of debugging NASM, and that we will delete all our
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8420-is happening that shouldn't be, or what isn't happening that should.
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8421:Examples might be: `NASM generates an error message saying Line 3
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8422:for an error that's actually on Line 5'; `NASM generates an error
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8423-message that I believe it shouldn't be generating at all'; `NASM
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8428-
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8429:\b If you believe the output file from NASM to be faulty, send it to
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8430-us. That allows us to determine whether our own copy of NASM
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8438-\b Any other information or data files that might be helpful. If,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8439:for example, the problem involves NASM failing to generate an object
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8440:file while TASM can generate an equivalent file without trouble,
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src:8441:then send us \e{both} object files, so we can see what TASM is doing
chromium-84.0.4147.105/third_party/nasm/doc/nasmdoc.src-8442-differently from us.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1-\#
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2:\# NASM revision history in nasmdoc format
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-3-\#
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-4-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:5:\H{cl-2.xx} NASM 2 Series
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-6-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:7:The NASM 2 series supports x86-64, and is the production version of NASM
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-8-since 2007.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-158-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:159:\b NASM can now generate sparse output files for relevant output
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-160-   formats, if the underlying operating system supports them.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-182-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:183:\b Significant improvements to building NASM with Microsoft Visual
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-184-   Studio via \c{Mkfiles/msvc.mak}.  It is now possible to build the
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-187-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:188:\b To build NASM with custom modifications (table changes) or from the
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-189-   git tree now requires Perl 5.8 at the very minimum, quite possibly
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-191-   have Perl on your system at all if all you want to do is build
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:192:   unmodified NASM from source archives.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-193-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-234-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:235:\b If the MASM \c{PTR} keyword is encountered, issue a warning.  This is
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:236:   much more likely to indicate a MASM-ism encountered in NASM than it
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-237-   is a valid label.  This warning can be suppressed with \c{-w-ptr},
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-270-\b Fix wrong negative size treated as a big positive value passed into
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:271:   backend causing NASM to crash.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-272-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-279-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:280:\b Portability fixes for building NASM with the LLVM compiler.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-281-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-445-\b Add \c{{evex}}, \c{{vex3}} and \c{{vex2}} instruction prefixes to
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:446:have NASM encode the corresponding instruction, if possible, with an EVEX,
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-447-3-byte VEX, or 2-byte VEX prefix, respectively.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-577-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:578:\b Fix \c{mach64} output format bug that crashes NASM due to NULL symbols.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-579-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-630-   too early and sometime simply wrong. Move behaviour back to
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:631:   the origins (down to NASM 2.05.01).
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-632-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-709-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:710:\b The environments without vsnprintf function are able to build nasm again.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-711-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-759-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:760:\b Visual Studio 2008 NASM integration (rules file).
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-761-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-787-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:788:\b NASM is now under the 2-clause BSD license.  See \k{legal}.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-789-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-801-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:802:\b The Windows installer now puts the NASM directory first in the
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:803:  \c{PATH} of the "NASM Shell".
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-804-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-821-\b This release is dedicated to the memory of Charles A. Crayne, long
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:822:  time NASM developer as well as moderator of \c{comp.lang.asm.x86} and
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-823-  author of the book \e{Serious Assembler}.  We miss you, Chuck.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-866-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:867:\b Fix the \c{-w}/\c{-W} option parsing, which was broken in NASM 2.05.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-868-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-873-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:874:\b Make the behaviour of \c{-O0} match NASM 0.98 legacy behavior.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-875-  See \k{opt-O}.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-886-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:887:\b Fix error where NASM would generate a spurious warning on valid
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-888-  optimizations of immediate values.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1143-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1144:\H{cl-0.98.xx} NASM 0.98 Series
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1145-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1146:The 0.98 series was the production versions of NASM from 1999 to 2007.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1147-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1297-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1298:\b Fix NASM crashing when \c{%macro} directives were left unterminated.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1299-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1332-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1333:\b Changed the NASM environment variable to NASMENV.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1334-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1344-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1345:\b Added 'make strip' target to strip debug info from nasm & ndisasm.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1346-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1348-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1349:\b Added -v option description to nasm man.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1350-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1390-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1391:\b Documentation - Ndisasm doc added to Nasm.doc.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1392-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1456-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1457:\b Changes to test/bintest.asm (?).
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1458-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1463-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1464:\b Ndisasm fixed.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1465-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1479-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1480:\b Remove "#ifdef" from Tasm compatibility options.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1481-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1571-\b Nelson Rush resigns from the group. Big thanks to Nelson for
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1572:  his leadership and enthusiasm in getting these changes
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1573-  incorporated into Nasm!
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1646-\b Note that you must define "TASM_COMPAT" at compile-time
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1647:to get the Tasm Ideal Mode compatibility.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1648-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1652-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1653:\b standard.mac, macros.c: Added macros to ignore TASM directives before
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1654-first include
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1659-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1660:\b Added command line switch for TASM compatible mode (-t)
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1661-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1662:\b Changed version command line to reflect when compiled with TASM additions
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1663-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1664-\b Added response file processing to allow all arguments on a single
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1665:line (response file is @resp rather than -@resp for NASM format).
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1666-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1667:\b labels.c: Changes islocal() macro to support TASM style @@local labels.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1668-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1669:\b Added islocalchar() macro to support TASM style @@local labels.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1670-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1671:\b parser.c: Added support for TASM style memory references (ie: mov
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1672:[DWORD eax],10 rather than the NASM style mov DWORD [eax],10).
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1673-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1676-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1677:\b Added support for TASM style directives without a leading % symbol.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1678-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1738-    concatenate everything without whitespaces in between before usage.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1739:    For example, with "unfixed" nasm the commands
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1740-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1767-\b A new directive [WARNING {+|-}warning-id] have been added. It works only
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1768:    if the assembly phase is enabled (i.e. it doesn't work with nasm -e).
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1769-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1770-\b A new warning type: macro-selfref. By default this warning is disabled;
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1771:    when enabled NASM warns when a macro self-references itself; for example
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1772-    the following source:
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1856-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1857:All changes since NASM 0.98p3 have been produced by H. Peter Anvin <hpa@zytor.com>.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1858-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1873-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1874:\b Verified that the NASM implementation of the PEXTRW and PMOVMSKB
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1875-  instructions is correct.  The encoding differs from what the Intel
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1887-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1888:\b Fix for "DB" when NASM is running on a bigendian machine.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1889-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1981-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:1982:\b Renamed changes.asm to changed.asm.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-1983-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2009-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2010:\b Added a -p (preferred vendor) option to ndisasm so that it can
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2011-  distinguish e.g. Cyrix opcodes also used in SSE.  For example:
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2012-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2013:\c      ndisasm -p cyrix aliased.bin
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2014-\c      00000000  670F514310        paddsiw mm0,[ebx+0x10]
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2015-\c      00000005  670F514320        paddsiw mm0,[ebx+0x20]
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2016:\c      ndisasm -p intel aliased.bin
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2017-\c      00000000  670F514310        sqrtps xmm0,[ebx+0x10]
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2030-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2031:\b changes.asm changes from John S. Fine.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2032-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2041-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2042:\b Updated changes.asm to include the latest changes.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2043-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2137-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2138:\b Fixed a stale-pointer bug in the handling of the NASM environment
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2139-variable. Thanks to Thomas McWilliams.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2143-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2144:\b Added ability for ndisasm to read from stdin by using `-' as the
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2145-filename.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2146-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2147:\b ndisasm wasn't outputting the TO keyword. Fixed.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2148-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2196-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2197:\H{cl-0.9x} NASM 0.9 Series
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2198-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2209-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2210:\b ndisasm hung at EOF when compiled with lcc on Linux because lcc on
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2211:Linux somehow breaks feof(). ndisasm now does not rely on feof().
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2212-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2242-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2243:\b Fixed a bug whereby, if `nasm sourcefile' would cause a filename
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2244-collision warning and put output into `nasm.out', then `nasm
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2250-\b Fixed minor instruction table problems: FUCOM and FUCOMP didn't have
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2251:two-operand forms; NDISASM didn't recognise the longer register
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2252-forms of PUSH and POP (eg FF F3 for PUSH BX); TEST mem,imm32 was
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2312-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2313:\b Transformed the Unix NASM archive into an auto-configuring package.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2314-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2389-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2390:\b ndisasm forgot to check whether the input file had been successfully
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2391-opened. Now it does. Doh!
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2408-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2409:\b Added makefiles (for NASM and the RDF tools) to build Win32 console
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2410-apps under Symantec C++. Donated by Mark Junker.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2487-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2488:\b Added the NASM environment variable.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2489-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2652-
chromium-84.0.4147.105/third_party/nasm/doc/changes.src:2653:\b \c{-e} and \c{-k} options in NDISASM added.
chromium-84.0.4147.105/third_party/nasm/doc/changes.src-2654-
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-3-##
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl:4:##   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-35-
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl:36:# Read the source-form of the NASM manual and generate the various
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-37-# output forms.
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-73-# \H{whatsnasm} What is NASM?
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl:74:# \S{free} NASM Is Free
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-75-#   dealt with as appropriate. Chapters begin on new sides, possibly
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-161-foreach $file (@files) {
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl:162:  &include($file);
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-163-}
##############################################
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-227-  if (/\\& (\S+)/) {
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl:228:     &include($1);
chromium-84.0.4147.105/third_party/nasm/doc/rdsrc.pl-229-  } else {
##############################################
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-4-
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni:5:# This provides the nasm_assemble() template which uses NASM to assemble
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-6-# assembly files.
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-7-#
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni:8:# Files to be assembled with NASM should have an extension of .asm.
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-9-#
##############################################
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-80-
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni:81:  # Only depend on NASM on x86 systems. Force compilation of .asm files for
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-82-  # ARM to fail.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-109-      foreach(include, invoker.include_dirs) {
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni:110:        # NASM does not append path separators when processing the -I flags, so
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-111-        # -Ifoo means includes of bar look up "foobar" rather than "foo/bar".
##############################################
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-116-
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni:117:    # Default nasm include dirs. Make it match the native build (source root and
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-118-    # root generated code directory).
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-119-    # This goes to the end of include list. Note that, as above, we must append
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni:120:    # path separators because NASM does not do it itself.
chromium-84.0.4147.105/third_party/nasm/nasm_assemble.gni-121-    args += [
##############################################
chromium-84.0.4147.105/third_party/nasm/INSTALL:1:1. Installing NASM from source (Unix, MacOS X; Windows - Cygwin;
chromium-84.0.4147.105/third_party/nasm/INSTALL-2-   Windows - MinGW; DOS - DJGPP)
chromium-84.0.4147.105/third_party/nasm/INSTALL:3:2. Installing NASM from source (Windows - MS Visual C++)
chromium-84.0.4147.105/third_party/nasm/INSTALL:4:3. Installing NASM from source (DOS, Windows, OS/2 - OpenWatcom)
chromium-84.0.4147.105/third_party/nasm/INSTALL-5-
chromium-84.0.4147.105/third_party/nasm/INSTALL-6-
chromium-84.0.4147.105/third_party/nasm/INSTALL:7:1. Installing NASM from source (Unix, MacOS X; Windows - Cygwin;
chromium-84.0.4147.105/third_party/nasm/INSTALL-8-   Windows - MinGW; DOS - DJGPP)
##############################################
chromium-84.0.4147.105/third_party/nasm/INSTALL-10-
chromium-84.0.4147.105/third_party/nasm/INSTALL:11:Installing NASM is pretty straightforward on Unix or Unix-like systems
chromium-84.0.4147.105/third_party/nasm/INSTALL-12-with a C compiler, Make, and standard shell tools installed, including
##############################################
chromium-84.0.4147.105/third_party/nasm/INSTALL-38-
chromium-84.0.4147.105/third_party/nasm/INSTALL:39:to build NASM, ndisasm and rdoff tools, or
chromium-84.0.4147.105/third_party/nasm/INSTALL-40-
##############################################
chromium-84.0.4147.105/third_party/nasm/INSTALL-72-
chromium-84.0.4147.105/third_party/nasm/INSTALL:73:2. Installing NASM from source (Windows - MS Visual C++)
chromium-84.0.4147.105/third_party/nasm/INSTALL-74-========================================================
chromium-84.0.4147.105/third_party/nasm/INSTALL-75-
chromium-84.0.4147.105/third_party/nasm/INSTALL:76:The recommended compiler for NASM on Windows is MinGW
chromium-84.0.4147.105/third_party/nasm/INSTALL-77-(http://www.mingw.org/), but it is also possible to compile with
##############################################
chromium-84.0.4147.105/third_party/nasm/INSTALL-80-To do so, start the "Visual C++ Command Shell", go to the directory
chromium-84.0.4147.105/third_party/nasm/INSTALL:81:where the NASM source code was extracted, and run:
chromium-84.0.4147.105/third_party/nasm/INSTALL-82-
##############################################
chromium-84.0.4147.105/third_party/nasm/INSTALL-89-
chromium-84.0.4147.105/third_party/nasm/INSTALL:90:3. Installing NASM from source (DOS, Windows, OS/2 - OpenWatcom)
chromium-84.0.4147.105/third_party/nasm/INSTALL-91-================================================================
chromium-84.0.4147.105/third_party/nasm/INSTALL-92-
chromium-84.0.4147.105/third_party/nasm/INSTALL:93:NASM has been reported to build correctly with OpenWatcom 1.7 on the
chromium-84.0.4147.105/third_party/nasm/INSTALL-94-Windows and OS/2 platforms.  In addition, it *should* work under DOS
chromium-84.0.4147.105/third_party/nasm/INSTALL:95:with the DOS4GW DOS extender, although the NASM developers recommend
chromium-84.0.4147.105/third_party/nasm/INSTALL-96-using DJGPP with the CWSDPMI DOS extender instead.
##############################################
chromium-84.0.4147.105/third_party/nasm/common/common.c-2- *   
chromium-84.0.4147.105/third_party/nasm/common/common.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/common/common.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/common/common.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/common/common.c-34-/*
chromium-84.0.4147.105/third_party/nasm/common/common.c:35: * common.c - code common to nasm and ndisasm
chromium-84.0.4147.105/third_party/nasm/common/common.c-36- */
##############################################
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-22-    # Build with full optimizations even on debug configurations, because some
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:23:    # yasm build steps (highbd_sad4d_sse2.asm) can take ~33 seconds or more in
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-24-    # debug component builds on Windows. Enabling compiler optimizations saves
##############################################
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-36-  if (is_win) {
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:37:    # This switches to using the release CRT. For yasm debug component builds
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:38:    # of highbd_sad4d_sse2.asm on Windows this saved about 15 s.
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-39-    configs_to_delete += [ "//build/config/win:default_crt" ]
##############################################
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-66-
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:67:      # NASM writes nasm_assert(!"some string literal").
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-68-      "-Wno-string-conversion",
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-69-
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:70:      # NASM sometimes redefines macros from its config.h.
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-71-      "-Wno-macro-redefined",
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-72-
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:73:      # NASM sometimes compares enums to unsigned integers.
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-74-      "-Wno-sign-compare",
##############################################
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-78-    cflags = [
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:79:      # NASM sometimes redefines macros from its config.h.
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-80-      "/wd4005",  # macro redefinition
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-81-
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:82:      # NASM sometimes compares enums to unsigned integers.
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-83-      "/wd4018",  # sign compare
##############################################
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-87-
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:88:      # NASM comment: Uninitialized -> all zero by C spec
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-89-      # Or sometimes one const struct is forward declared for no reason.
##############################################
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-91-
chromium-84.0.4147.105/third_party/nasm/BUILD.gn:92:      # NASM uses "(-x) & 0xFF" pattern to negate byte.
chromium-84.0.4147.105/third_party/nasm/BUILD.gn-93-      "/wd4146",  # unary minus operator applied to unsigned type
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/c32.mac:1:; NASM macro set to make interfacing to 32-bit programs easier -*- nasm -*-
chromium-84.0.4147.105/third_party/nasm/misc/c32.mac-2-
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/exebin.mac:1:; -*- nasm -*-
chromium-84.0.4147.105/third_party/nasm/misc/exebin.mac:2:; NASM macro file to allow the `bin' output format to generate
chromium-84.0.4147.105/third_party/nasm/misc/exebin.mac-3-; simple .EXE files by constructing the EXE header by hand.
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/scitech.mac-134-
chromium-84.0.4147.105/third_party/nasm/misc/scitech.mac:135:; Convert all jumps to near jumps, since NASM does not so this automatically
chromium-84.0.4147.105/third_party/nasm/misc/scitech.mac-136-
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/scitech.mac-721-; Macros to access the floating point stack registers to convert them
chromium-84.0.4147.105/third_party/nasm/misc/scitech.mac:722:; from NASM style to TASM style
chromium-84.0.4147.105/third_party/nasm/misc/scitech.mac-723-
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/c16.mac:1:; NASM macro set to make interfacing to 16-bit programs easier -*- nasm -*-
chromium-84.0.4147.105/third_party/nasm/misc/c16.mac-2-
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/proc32.ash-3-;   Copyright (C) 1999 by Andrew Zabolotny
chromium-84.0.4147.105/third_party/nasm/misc/proc32.ash:4:;   Miscelaneous NASM macros that makes use of new preprocessor features
chromium-84.0.4147.105/third_party/nasm/misc/proc32.ash-5-; 
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/proc32.ash-22-;   The macros in this file provides support for writing 32-bit C-callable
chromium-84.0.4147.105/third_party/nasm/misc/proc32.ash:23:;   NASM routines. For a short description of every macros see the
chromium-84.0.4147.105/third_party/nasm/misc/proc32.ash-24-;   corresponding comment before every one. Simple usage example:
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/Nindent-3-RES=`indent --version`
chromium-84.0.4147.105/third_party/nasm/misc/Nindent:4:V1=`echo $RES | cut -d' ' -f3 | cut -d'.' -f1`
chromium-84.0.4147.105/third_party/nasm/misc/Nindent:5:V2=`echo $RES | cut -d' ' -f3 | cut -d'.' -f2`
chromium-84.0.4147.105/third_party/nasm/misc/Nindent:6:V3=`echo $RES | cut -d' ' -f3 | cut -d'.' -f3`
chromium-84.0.4147.105/third_party/nasm/misc/Nindent-7-if [ $V1 -gt 2 ]; then
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/nasm.sl:1:% This file defines a NASM editor mode for the JED editor.
chromium-84.0.4147.105/third_party/nasm/misc/nasm.sl-2-% JED's home page is http://space.mit.edu/~davis/jed.html.
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/nasm.sl-9-% (you can of course replace "asm" with whatever file extension
chromium-84.0.4147.105/third_party/nasm/misc/nasm.sl:10:% you like to use for your NASM source files).
chromium-84.0.4147.105/third_party/nasm/misc/nasm.sl-11-
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-48-        print "\t-o,--output-file";
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab:49:        print "\t\tThe output file name (if not specified, *.asm becomes *.o";
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-50-        print "\t\tand anything else becomes a.out)";
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-51-        print "\t-l,--list-file";
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab:52:        print "\t\tThe listing file's name (default: trailing .asm is
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-53-removed";
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-55-        print "\t-s,--second-asm-file";
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab:56:        print "\t\tThe second asm file's name (default: trailing .asm is";
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab:57:        print "\t\tremoved if there and .nasm is appended)";
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-58-        print "\n";
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-112-
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab:113:$err = `nasm -f elf ${filename} -l ${listname} -o ${outname} `;
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-114-
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-117-open(LISTFILE,"${listname}") or die "\n $0: Could not reopen list file!\n";
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab:118:open(ASMFILE,">${asmname}")  or die "\n $0: Could not open asm file!\n";
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-119-
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-182-unless ( $has_text eq "TRUE" ) {
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab:183:        $err = `nasm -f elf ${asmname} -o ${outname}`;
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-184-        print STDERR $err;
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-237-
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab:238:$err = `nasm -f elf ${asmname} -o ${outname}`;
chromium-84.0.4147.105/third_party/nasm/misc/nasmstab-239-
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/Doxyfile-18-
chromium-84.0.4147.105/third_party/nasm/misc/Doxyfile:19:PROJECT_NAME           = "NASM - the Netwide Assembler"
chromium-84.0.4147.105/third_party/nasm/misc/Doxyfile-20-
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/myC32.mac:1:; NASM macro set to make interfacing to 32-bit programs easier
chromium-84.0.4147.105/third_party/nasm/misc/myC32.mac:2:; Also cool little macros to make NASM emulate some MASM things.
chromium-84.0.4147.105/third_party/nasm/misc/myC32.mac-3-;
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/pmw.bat-1-@echo off
chromium-84.0.4147.105/third_party/nasm/misc/pmw.bat:2:rem some batch file to bind nasm and ndisasm with pmode/w
chromium-84.0.4147.105/third_party/nasm/misc/pmw.bat-3-rem a mega cool dos extender for watcom done by tran
##############################################
chromium-84.0.4147.105/third_party/nasm/misc/exebin2.mac:1:; -*- nasm -*-
chromium-84.0.4147.105/third_party/nasm/misc/exebin2.mac-2-
chromium-84.0.4147.105/third_party/nasm/misc/exebin2.mac:3:; NASM macro file to allow the `bin' output format to generate
chromium-84.0.4147.105/third_party/nasm/misc/exebin2.mac-4-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/inctest.asm-2-
chromium-84.0.4147.105/third_party/nasm/test/inctest.asm:3:; This file, plus inc1.asm and inc2.asm, test NASM's file inclusion
chromium-84.0.4147.105/third_party/nasm/test/inctest.asm-4-; mechanism.
##############################################
chromium-84.0.4147.105/third_party/nasm/test/inctest.asm-6-; This produces a DOS .COM file: to assemble, use
chromium-84.0.4147.105/third_party/nasm/test/inctest.asm:7:;    nasm -f bin inctest.asm -o inctest.com
chromium-84.0.4147.105/third_party/nasm/test/inctest.asm-8-; and when run, it should print `hello, world'.
##############################################
chromium-84.0.4147.105/third_party/nasm/test/cofftest.c-3- * build with (under DJGPP, for example):
chromium-84.0.4147.105/third_party/nasm/test/cofftest.c:4: *    nasm -f coff cofftest.asm
chromium-84.0.4147.105/third_party/nasm/test/cofftest.c-5- *    gcc -o cofftest cofftest.c cofftest.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/objlink.c-3- * build with (16-bit Microsoft C):
chromium-84.0.4147.105/third_party/nasm/test/objlink.c:4: *    nasm -f obj objtest.asm
chromium-84.0.4147.105/third_party/nasm/test/objlink.c-5- *    cl /AL objtest.obj objlink.c
##############################################
chromium-84.0.4147.105/third_party/nasm/test/avx512pf.asm-8-;
chromium-84.0.4147.105/third_party/nasm/test/avx512pf.asm:9:; Jin Kyu Song converted it for the nasm testing suite using gas2nasm.py
chromium-84.0.4147.105/third_party/nasm/test/avx512pf.asm-10-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-48-
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:49:        #Call nasm with this test case
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:50:        system("$nasm $arguments $testpath > $stdoutfile 2> $stderrfile");
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:51:        debugprint("$nasm $arguments $testpath > $stdoutfile 2> $stderrfile ----> $?");
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-52-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-135-pod2usage() if $help;
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:136:die "Please specify either --nasm or --clean. Use --help for help.\n"
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:137:unless $nasm or $clean;
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-138-die "Please specify the test files, e.g. *.asm\n" unless @ARGV;
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-139-
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:140:unless (!defined $nasm or -x $nasm) {
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:141:  warn "Warning: $nasm may not be executable. Expect problems.\n\n";
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-142-  sleep 5;
##############################################
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-151-
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:152:performtest.pl - NASM regression tester based on golden files
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-153-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-155-
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:156:performtest.pl [options] [testfile.asm ...]
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-157-
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:158:Runs NASM on the specified test files and compare the results
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-159-with "golden" output files.
##############################################
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-165-     --help      Get this help
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:166:     --nasm=file Specify the file name for the NASM executable, e.g. ../nasm
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-167-     --verbose   Get more output
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-168-
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:169:     If --clean is not specified, --nasm is required.
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-170-
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:171: testfile.asm ...:
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:172:    One or more files that NASM should be tested with,
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl:173:    often *.asm in the test directory.
chromium-84.0.4147.105/third_party/nasm/test/performtest.pl-174-    It should contain one or more option lines at the start,
##############################################
chromium-84.0.4147.105/third_party/nasm/test/new-2-for f; do
chromium-84.0.4147.105/third_party/nasm/test/new:3:  if [ -e "$f".asm ]; then
chromium-84.0.4147.105/third_party/nasm/test/new-4-    # For safety...
##############################################
chromium-84.0.4147.105/third_party/nasm/test/inc2.asm-1-; This file is part of the include test.
chromium-84.0.4147.105/third_party/nasm/test/inc2.asm:2:; See inctest.asm for build instructions.
chromium-84.0.4147.105/third_party/nasm/test/inc2.asm-3-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/Makefile:1:.SUFFIXES: .bin .o .o64 .obj .obj64 .exe .asm .lst .pl
chromium-84.0.4147.105/third_party/nasm/test/Makefile-2-
chromium-84.0.4147.105/third_party/nasm/test/Makefile-3-NASMDEP = ../nasm
chromium-84.0.4147.105/third_party/nasm/test/Makefile:4:NASM	= ../nasm
chromium-84.0.4147.105/third_party/nasm/test/Makefile-5-NASMOPT = -Ox -I../misc $(OPT)
##############################################
chromium-84.0.4147.105/third_party/nasm/test/Makefile-13-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:14:%.bin: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-15-	$(NASM) $(NASMOPT) -f bin -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-16-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:17:%.ith: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-18-	$(NASM) $(NASMOPT) -f ith -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-19-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:20:%.srec: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-21-	$(NASM) $(NASMOPT) -f srec -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-22-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:23:%.o: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-24-	$(NASM) $(NASMOPT) -f elf32 -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-25-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:26:%.o64: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-27-	$(NASM) $(NASMOPT) -f elf64 -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-28-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:29:%.obj: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-30-	$(NASM) $(NASMOPT) -f obj -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-31-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:32:%.rdf: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-33-	$(NASM) $(NASMOPT) -f rdf -o $@ -MD $@.dep -l $@.lst $<
##############################################
chromium-84.0.4147.105/third_party/nasm/test/Makefile-37-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:38:%.coff: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-39-	$(NASM) $(NASMOPT) -f coff -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-40-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:41:%.win32: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-42-	$(NASM) $(NASMOPT) -f win32 -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-43-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:44:%.win64: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-45-	$(NASM) $(NASMOPT) -f win64 -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-46-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:47:%.mo32: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-48-	$(NASM) $(NASMOPT) -f macho32 -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-49-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:50:%.mo64: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-51-	$(NASM) $(NASMOPT) -f macho64 -o $@ -MD $@.dep -l $@.lst $<
chromium-84.0.4147.105/third_party/nasm/test/Makefile-52-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:53:%.dbg: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-54-	$(NASM) $(NASMOPT) -f dbg -o $@ -MD $@.dep -l $@.lst $<
##############################################
chromium-84.0.4147.105/third_party/nasm/test/Makefile-58-
chromium-84.0.4147.105/third_party/nasm/test/Makefile:59:%.i: %.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-60-	$(NASM) $(NASMOPT) -E -o $@ -MD $@.dep $<
##############################################
chromium-84.0.4147.105/third_party/nasm/test/Makefile-84-#
chromium-84.0.4147.105/third_party/nasm/test/Makefile:85:elfso.o: elfso.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-86-	$(NASM) $(NASMOPT) -f elf32 -F stabs -o $@ -MD $@.dep -l $@.lst $<
##############################################
chromium-84.0.4147.105/third_party/nasm/test/Makefile-97-#
chromium-84.0.4147.105/third_party/nasm/test/Makefile:98:elf64so.o: elf64so.asm $(NASMDEP)
chromium-84.0.4147.105/third_party/nasm/test/Makefile-99-	$(NASM) $(NASMOPT) -f elf64 -F dwarf -o $@ -MD $@.dep -l $@.lst $<
##############################################
chromium-84.0.4147.105/third_party/nasm/test/elf64so.asm-2-; build with:
chromium-84.0.4147.105/third_party/nasm/test/elf64so.asm:3:;    nasm -f elf64 elf64so.asm
chromium-84.0.4147.105/third_party/nasm/test/elf64so.asm-4-;    ld -shared -o elf64so.so elf64so.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/elf64so.asm-16-; [7] Define a COMMON symbol
chromium-84.0.4147.105/third_party/nasm/test/elf64so.asm:17:; [8] Define a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/elf64so.asm:18:; [9] Reference a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/elf64so.asm-19-; [10] Import an external symbol
##############################################
chromium-84.0.4147.105/third_party/nasm/test/aouttest.c-3- * build with:
chromium-84.0.4147.105/third_party/nasm/test/aouttest.c:4: *    nasm -f aout aouttest.asm
chromium-84.0.4147.105/third_party/nasm/test/aouttest.c-5- *    gcc -o aouttest aouttest.c aouttest.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/cofftest.asm-5-; build with (under DJGPP, for example):
chromium-84.0.4147.105/third_party/nasm/test/cofftest.asm:6:;    nasm -f coff cofftest.asm
chromium-84.0.4147.105/third_party/nasm/test/cofftest.asm-7-;    gcc -o cofftest cofftest.c cofftest.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/cofftest.asm-16-; [7] Define a COMMON symbol
chromium-84.0.4147.105/third_party/nasm/test/cofftest.asm:17:; [8] Define a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/cofftest.asm:18:; [9] Reference a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/cofftest.asm-19-; [10] Import an external symbol
##############################################
chromium-84.0.4147.105/third_party/nasm/test/avx512er.asm-8-;
chromium-84.0.4147.105/third_party/nasm/test/avx512er.asm:9:; Jin Kyu Song converted it for the nasm testing suite using gas2nasm.py
chromium-84.0.4147.105/third_party/nasm/test/avx512er.asm-10-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/binexe.asm-6-; To build:
chromium-84.0.4147.105/third_party/nasm/test/binexe.asm:7:;    nasm -fbin binexe.asm -o binexe.exe -ipath
chromium-84.0.4147.105/third_party/nasm/test/binexe.asm-8-; (where `path' is such as to allow the %include directive to find
##############################################
chromium-84.0.4147.105/third_party/nasm/test/elftest.c-3- * build with:
chromium-84.0.4147.105/third_party/nasm/test/elftest.c:4: *    nasm -f elf elftest.asm
chromium-84.0.4147.105/third_party/nasm/test/elftest.c-5- *    gcc -o elftest elftest.c elftest.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/inc1.asm-1-; This file is part of the include test.
chromium-84.0.4147.105/third_party/nasm/test/inc1.asm:2:; See inctest.asm for build instructions.
chromium-84.0.4147.105/third_party/nasm/test/inc1.asm-3-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/objexe.asm-3-; To build:
chromium-84.0.4147.105/third_party/nasm/test/objexe.asm:4:;    nasm -fobj objexe.asm
chromium-84.0.4147.105/third_party/nasm/test/objexe.asm-5-;    val objexe.obj,objexe.exe;
##############################################
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:1:;This file demonstrates many of the differences between NASM version X and NASM
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-2-;version 0.97
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-3-;
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:4:; changed.asm is copyright (C) 1998 John S. Fine
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-5-;
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:6:;  It may be redistributed under the same conditions as NASM as described in
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:7:;  LICENSE file in the NASM archive
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-8-;_________________________________
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-9-;
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:10:;  nasm changed.asm -l changed.lst
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-11-;
##############################################
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-17-; Not all the differences can be seen in the .lst file.  I suggest that you use
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:18:; "ndisasm changes"  to examine the code actually generated.
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-19-;_________________________________
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-20-;
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:21:;  nasm changed.asm -l changed.lst -doldmsg
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-22-;
##############################################
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-27-;
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:28:;  nasm changed.asm -l changed.lst -doldcrash
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-29-;
##############################################
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-31-;       Work correctly in version X
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:32:;  and  Cause NASM to crash in version 0.97
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-33-;_________________________________
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-34-;
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:35:;  nasm changed.asm -l changed.lst -dnewmsg
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-36-;
##############################################
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-180-;
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:181:%endif			;NASM 0.97 doesn't handle %0 etc. inside false %if
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-182-%macro push 1-*		;
##############################################
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-201-; Note that neither of these warnings was really needed, because a later stage
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:202:; of NASM would almost always give an adequate error message if the macro use
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-203-; really was wrong.
##############################################
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-303-;
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:304:; Actually make SSE work, and use the -p option to ndisasm to select
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-305-; one of several aliased opcodes
##############################################
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-361-;
chromium-84.0.4147.105/third_party/nasm/test/changed.asm:362:; Builds of NASM that prohibit dereferencing a NULL pointer used to crash if a
chromium-84.0.4147.105/third_party/nasm/test/changed.asm-363-; macro that started with a blank line was invoked with a label
##############################################
chromium-84.0.4147.105/third_party/nasm/test/bintest.asm-5-; build with:
chromium-84.0.4147.105/third_party/nasm/test/bintest.asm:6:;    nasm -f bin -o bintest.com bintest.asm
chromium-84.0.4147.105/third_party/nasm/test/bintest.asm-7-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/bintest.asm-15-; [3] Define a BSS-section symbol
chromium-84.0.4147.105/third_party/nasm/test/bintest.asm:16:; [4] Define a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/bintest.asm:17:; [5] Reference a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/bintest.asm-18-; [6] Reference a text-section symbol in the text section
##############################################
chromium-84.0.4147.105/third_party/nasm/test/pragma.asm-4-%pragma "Hej tomtegubbar"
chromium-84.0.4147.105/third_party/nasm/test/pragma.asm:5:%define PR asm foobar
chromium-84.0.4147.105/third_party/nasm/test/pragma.asm-6-%pragma PR
##############################################
chromium-84.0.4147.105/third_party/nasm/test/avx2.asm-8-;
chromium-84.0.4147.105/third_party/nasm/test/avx2.asm:9:; nasm64developer adopted it for the nasm testing suite
chromium-84.0.4147.105/third_party/nasm/test/avx2.asm-10-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/aouttest.asm-5-; build with:
chromium-84.0.4147.105/third_party/nasm/test/aouttest.asm:6:;    nasm -f aout aouttest.asm
chromium-84.0.4147.105/third_party/nasm/test/aouttest.asm-7-;    gcc -o aouttest aouttest.c aouttest.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/aouttest.asm-17-; [7] Define a COMMON symbol
chromium-84.0.4147.105/third_party/nasm/test/aouttest.asm:18:; [8] Define a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/aouttest.asm:19:; [9] Reference a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/aouttest.asm-20-; [10] Import an external symbol
##############################################
chromium-84.0.4147.105/third_party/nasm/test/floattest.asm-2-
chromium-84.0.4147.105/third_party/nasm/test/floattest.asm:3:; nasm -O99 -f elf32 floattest.asm
chromium-84.0.4147.105/third_party/nasm/test/floattest.asm-4-; ld -m elf_i386 -o floattest floattest.o -I/lib/ld-linux.so.2 -lc
##############################################
chromium-84.0.4147.105/third_party/nasm/test/avx512f.asm-8-;
chromium-84.0.4147.105/third_party/nasm/test/avx512f.asm:9:; Jin Kyu Song converted it for the nasm testing suite using gas2nasm.py
chromium-84.0.4147.105/third_party/nasm/test/avx512f.asm-10-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/elftest.asm-2-; build with:
chromium-84.0.4147.105/third_party/nasm/test/elftest.asm:3:;    nasm -f elf elftest.asm
chromium-84.0.4147.105/third_party/nasm/test/elftest.asm-4-;    gcc -o elftest elftest.c elftest.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/elftest.asm-14-; [7] Define a COMMON symbol
chromium-84.0.4147.105/third_party/nasm/test/elftest.asm:15:; [8] Define a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/elftest.asm:16:; [9] Reference a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/elftest.asm-17-; [10] Import an external symbol
##############################################
chromium-84.0.4147.105/third_party/nasm/test/fpu.asm-2-
chromium-84.0.4147.105/third_party/nasm/test/fpu.asm:3:; relaxed encodings for FPU instructions, which NASM should support
chromium-84.0.4147.105/third_party/nasm/test/fpu.asm-4-; -----------------------------------------------------------------
##############################################
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py-2-# -*- python -*-
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py:3:# Convert gas testsuite file to NASM test asm file
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py-4-# usage >
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py-5-# python gas2nasm.py -i input_gas_file -o output_nasm_file -b bits
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py:6:# e.g. python gas2nasm.py -i x86-64-avx512f-intel.d -o avx512f.asm -b 64
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py-7-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py-19-            default="",
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py:20:            help='Name for output NASM test asm file.')
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py-21-    parser.add_option('-b', dest='bits', action='store',
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py-22-            default="",
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py:23:            help='Bits for output ASM file.')
chromium-84.0.4147.105/third_party/nasm/test/gas2nasm.py-24-    parser.add_option('-r', dest='raw_output', action='store',
##############################################
chromium-84.0.4147.105/third_party/nasm/test/elfso.asm-5-; build with:
chromium-84.0.4147.105/third_party/nasm/test/elfso.asm:6:;    nasm -f elf elfso.asm
chromium-84.0.4147.105/third_party/nasm/test/elfso.asm-7-;    ld -shared -o elfso.so elfso.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/elfso.asm-20-; [7] Define a COMMON symbol
chromium-84.0.4147.105/third_party/nasm/test/elfso.asm:21:; [8] Define a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/elfso.asm:22:; [9] Reference a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/elfso.asm-23-; [10] Import an external symbol
##############################################
chromium-84.0.4147.105/third_party/nasm/test/testdos.asm-2-;
chromium-84.0.4147.105/third_party/nasm/test/testdos.asm:3:; This file was known to miscompile with the 16-bit NASM built
chromium-84.0.4147.105/third_party/nasm/test/testdos.asm-4-; under Borland C++ 3.1, so keep it around for testing...
##############################################
chromium-84.0.4147.105/third_party/nasm/test/elftest64.c-2- *  build with:
chromium-84.0.4147.105/third_party/nasm/test/elftest64.c:3: *	nasm -f elf64 elf64so.asm
chromium-84.0.4147.105/third_party/nasm/test/elftest64.c-4- *	ld -shared -o elf64so.so elf64so.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/mpx-64.asm-77-	; next 5 lines should be parsed same
chromium-84.0.4147.105/third_party/nasm/test/mpx-64.asm:78:	bndstx [rax+0x3,rbx], bnd0	; NASM - split EA
chromium-84.0.4147.105/third_party/nasm/test/mpx-64.asm-79-	bndstx [rax+rbx*1+0x3], bnd0	; GAS
##############################################
chromium-84.0.4147.105/third_party/nasm/test/objtest.asm-5-; build with (16-bit Microsoft C):
chromium-84.0.4147.105/third_party/nasm/test/objtest.asm:6:;    nasm -f obj objtest.asm
chromium-84.0.4147.105/third_party/nasm/test/objtest.asm-7-;    cl /AL objtest.obj objlink.c
##############################################
chromium-84.0.4147.105/third_party/nasm/test/objtest.asm-14-; [3] Define a common symbol
chromium-84.0.4147.105/third_party/nasm/test/objtest.asm:15:; [4] Define a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/objtest.asm:16:; [5] Reference a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/objtest.asm-17-; [6] Import an external symbol
##############################################
chromium-84.0.4147.105/third_party/nasm/test/aoutso.asm-5-; build with:
chromium-84.0.4147.105/third_party/nasm/test/aoutso.asm:6:;    nasm -f aoutb aoutso.asm
chromium-84.0.4147.105/third_party/nasm/test/aoutso.asm-7-;    ld -Bshareable -o aoutso.so aoutso.o
##############################################
chromium-84.0.4147.105/third_party/nasm/test/aoutso.asm-19-; [7] Define a COMMON symbol
chromium-84.0.4147.105/third_party/nasm/test/aoutso.asm:20:; [8] Define a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/aoutso.asm:21:; [9] Reference a NASM local label
chromium-84.0.4147.105/third_party/nasm/test/aoutso.asm-22-; [10] Import an external symbol
##############################################
chromium-84.0.4147.105/third_party/nasm/test/tmap.nas:1:;; NASM note: this file abuses the section flags in such a way that
chromium-84.0.4147.105/third_party/nasm/test/tmap.nas:2:;; NASM 0.98.37 broke when this was compiled with:
chromium-84.0.4147.105/third_party/nasm/test/tmap.nas:3:;; nasm -o tmap.o -f elf -DLINUX tmap.nas
chromium-84.0.4147.105/third_party/nasm/test/tmap.nas-4-
##############################################
chromium-84.0.4147.105/third_party/nasm/test/avx512cd.asm-8-;
chromium-84.0.4147.105/third_party/nasm/test/avx512cd.asm:9:; Jin Kyu Song converted it for the nasm testing suite using gas2nasm.py
chromium-84.0.4147.105/third_party/nasm/test/avx512cd.asm-10-
##############################################
chromium-84.0.4147.105/third_party/nasm/disasm/disasm.c-2- *   
chromium-84.0.4147.105/third_party/nasm/disasm/disasm.c:3: *   Copyright 1996-2012 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/disasm/disasm.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/disasm/disasm.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/disasm/sync.c-2- *
chromium-84.0.4147.105/third_party/nasm/disasm/sync.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/disasm/sync.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/disasm/sync.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c-2- *   
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c-57-static const char *help =
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c:58:    "usage: ndisasm [-a] [-i] [-h] [-r] [-u] [-b bits] [-o origin] [-s sync...]\n"
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c-59-    "               [-e bytes] [-k start,bytes] [-p vendor] file\n"
##############################################
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c-120-                    fprintf(stderr,
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c:121:                            "NDISASM version %s\n",
chromium-84.0.4147.105/third_party/nasm/disasm/ndisasm.c-122-			    nasm_version);
##############################################
chromium-84.0.4147.105/third_party/nasm/disasm/disasm.h-2- *   
chromium-84.0.4147.105/third_party/nasm/disasm/disasm.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/disasm/disasm.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/disasm/disasm.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/disasm/sync.h-2- *   
chromium-84.0.4147.105/third_party/nasm/disasm/sync.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/disasm/sync.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/disasm/sync.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-2-#
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak:3:# Makefile for building NASM using OpenWatcom
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-4-# cross-compile on a DOS/Win32/OS2 platform host
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-18-BUILD_CFLAGS    = $(CFLAGS) $(%TARGET_CFLAGS)
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak:19:INTERNAL_CFLAGS = -I$(srcdir) -I. -I$(srcdir)\include -I$(srcdir)\x86 -Ix86 -I$(srcdir)\asm -Iasm -I$(srcdir)\disasm -I$(srcdir)\output
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-20-ALL_CFLAGS  = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS)
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-52-# Edit in Makefile.in, not here!
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak:53:NASM =	asm\nasm.$(O)
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak:54:NDISASM = disasm\ndisasm.$(O)
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-55-
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-102-
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak:103:SUBDIRS  = stdlib nasmlib output asm disasm x86 common macros
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-104-XSUBDIRS = test doc nsis rdoff
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-149-# Perl scripts. They're distributed, though, so it isn't necessary to
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak:150:# have Perl just to recompile NASM from the distribution.
chromium-84.0.4147.105/third_party/nasm/Mkfiles/openwcom.mak-151-
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-2-#
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak:3:# Makefile for building NASM using Microsoft Visual C++ and NMAKE.
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-4-# Tested on Microsoft Visual C++ 2005 Express Edition.
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-35-		  /I$(srcdir)/x86 /I./x86 \
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak:36:		  /I$(srcdir)/asm /I./asm \
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak:37:		  /I$(srcdir)/disasm /I./disasm \
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-38-		  /I$(srcdir)/output /I./output
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-63-# Edit in Makefile.in, not here!
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak:64:NASM =	asm\nasm.$(O)
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak:65:NDISASM = disasm\ndisasm.$(O)
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-66-
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-113-
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak:114:SUBDIRS  = stdlib nasmlib output asm disasm x86 common macros
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-115-XSUBDIRS = test doc nsis rdoff
##############################################
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-136-# Perl scripts. They're distributed, though, so it isn't necessary to
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak:137:# have Perl just to recompile NASM from the distribution.
chromium-84.0.4147.105/third_party/nasm/Mkfiles/msvc.mak-138-
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/badenum.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/badenum.c:3: *   Copyright 2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/badenum.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/badenum.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/crc64.c-2- *   
chromium-84.0.4147.105/third_party/nasm/nasmlib/crc64.c:3: *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/crc64.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/crc64.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/perfhash.pl-3-##
chromium-84.0.4147.105/third_party/nasm/nasmlib/perfhash.pl:4:##   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/perfhash.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/perfhash.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/readnum.c-2- *   
chromium-84.0.4147.105/third_party/nasm/nasmlib/readnum.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/readnum.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/readnum.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/hashtbl.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/hashtbl.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/hashtbl.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/hashtbl.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/string.c-2- *   
chromium-84.0.4147.105/third_party/nasm/nasmlib/string.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/string.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/string.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/malloc.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/malloc.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/malloc.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/malloc.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/ver.c-2- *   
chromium-84.0.4147.105/third_party/nasm/nasmlib/ver.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/ver.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/ver.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/ver.c-36-
chromium-84.0.4147.105/third_party/nasm/nasmlib/ver.c:37:/* This is printed when entering nasm -v */
chromium-84.0.4147.105/third_party/nasm/nasmlib/ver.c-38-const char nasm_version[] = NASM_VER;
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/ver.c-49-const char nasm_signature[] =
chromium-84.0.4147.105/third_party/nasm/nasmlib/ver.c:50:    "NASM " NASM_VER;
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/raa.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/raa.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/raa.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/raa.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/strlist.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/strlist.c:3: *   Copyright 1996-2018 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/strlist.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/strlist.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/saa.c-2- *   
chromium-84.0.4147.105/third_party/nasm/nasmlib/saa.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/saa.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/saa.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/saa.c-319-
chromium-84.0.4147.105/third_party/nasm/nasmlib/saa.c:320:void saa_writeaddr(struct SAA *s, uint64_t v, size_t len)
chromium-84.0.4147.105/third_party/nasm/nasmlib/saa.c-321-{
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/realpath.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/realpath.c:3: *   Copyright 2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/realpath.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/realpath.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/mmap.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/mmap.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/mmap.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/mmap.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/srcfile.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/srcfile.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/srcfile.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/srcfile.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/zerobuf.c-2- *   
chromium-84.0.4147.105/third_party/nasm/nasmlib/zerobuf.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/zerobuf.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/zerobuf.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.c-70-
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.c:71:void fwriteaddr(uint64_t data, int size, FILE * fp)
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.c-72-{
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/path.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/path.c:3: *   Copyright 2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/path.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/path.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.h-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.h:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/file.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/bsi.c-2- *   
chromium-84.0.4147.105/third_party/nasm/nasmlib/bsi.c:3: *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/bsi.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/bsi.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/rbtree.c-2- *   
chromium-84.0.4147.105/third_party/nasm/nasmlib/rbtree.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/rbtree.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/rbtree.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/filename.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/filename.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/filename.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/filename.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/nasmlib/perfhash.c-2- *
chromium-84.0.4147.105/third_party/nasm/nasmlib/perfhash.c:3: *   Copyright 2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/nasmlib/perfhash.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/nasmlib/perfhash.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/PRESUBMIT.py-3-# found in the LICENSE file.
chromium-84.0.4147.105/third_party/nasm/PRESUBMIT.py:4:"""Presubmit script for nasm repository."""
chromium-84.0.4147.105/third_party/nasm/PRESUBMIT.py-5-
##############################################
chromium-84.0.4147.105/third_party/nasm/macros/ifunc.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/macros/ifunc.mac:3:;;   Copyright 2012-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/macros/ifunc.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/macros/ifunc.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/macros/altreg.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/macros/altreg.mac:3:;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/macros/altreg.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/macros/altreg.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/macros/macros.pl-3-##   
chromium-84.0.4147.105/third_party/nasm/macros/macros.pl:4:##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/macros/macros.pl:5:##   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/macros/macros.pl-6-##   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/macros/standard.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/macros/standard.mac:3:;;   Copyright 1996-2016 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/macros/standard.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/macros/standard.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/macros/standard.mac-33-
chromium-84.0.4147.105/third_party/nasm/macros/standard.mac:34:; Standard macro set for NASM -*- nasm -*-
chromium-84.0.4147.105/third_party/nasm/macros/standard.mac-35-
chromium-84.0.4147.105/third_party/nasm/macros/standard.mac:36:; Macros to make NASM ignore some TASM directives
chromium-84.0.4147.105/third_party/nasm/macros/standard.mac-37-STD: tasm
##############################################
chromium-84.0.4147.105/third_party/nasm/macros/smartalign.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/macros/smartalign.mac:3:;;   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/macros/smartalign.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/macros/smartalign.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/macros/fp.mac-2-;;   
chromium-84.0.4147.105/third_party/nasm/macros/fp.mac:3:;;   Copyright 2010 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/macros/fp.mac:4:;;   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/macros/fp.mac-5-;;   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdf2bin.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/rdf2bin.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdf2bin.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdf2bin.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/segtab.h-2- *   
chromium-84.0.4147.105/third_party/nasm/rdoff/segtab.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/segtab.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/segtab.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.h-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.h:3: *   These routines donated to the NASM effort by Graeme Defty.
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.h-4- *
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.h-7- * redistributable under the license given in the file "LICENSE"
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.h:8: * distributed in the NASM archive.
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.h-9- */
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.h-2- *   
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfload.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfload.c:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfload.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfload.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.c-36- *
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.c:37: *   These routines donated to the NASM effort by Graeme Defty.
chromium-84.0.4147.105/third_party/nasm/rdoff/symtab.c-38- */
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfutils.h-2- *   
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfutils.h:3: *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfutils.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfutils.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlib.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlib.c:3: *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlib.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlib.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdflib.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/rdflib.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdflib.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdflib.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/segtab.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/segtab.c:3: *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/segtab.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/segtab.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.c-36- *
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.c:37: *   These routines donated to the NASM effort by Graeme Defty.
chromium-84.0.4147.105/third_party/nasm/rdoff/hash.c-38- */
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/ldrdf.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/ldrdf.c:3: *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/ldrdf.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/ldrdf.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdx.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/rdx.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdx.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdx.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfdump.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfdump.c:3: *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfdump.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfdump.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlib.h-2- *   
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlib.h:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlib.h:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlib.h-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/test/Makefile-1-RDT  = $(patsubst %.asm,%.rdf,$(wildcard *.asm))
chromium-84.0.4147.105/third_party/nasm/rdoff/test/Makefile:2:NASM = ../../nasm
chromium-84.0.4147.105/third_party/nasm/rdoff/test/Makefile-3-
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/test/rdtmain.asm-6-	;; assemble and link with the following commands:
chromium-84.0.4147.105/third_party/nasm/rdoff/test/rdtmain.asm:7:	;; nasm -f rdf rdtmain.asm
chromium-84.0.4147.105/third_party/nasm/rdoff/test/rdtmain.asm:8:	;; nasm -f rdf rdtlib.asm
chromium-84.0.4147.105/third_party/nasm/rdoff/test/rdtmain.asm-9-	;; ldrdf rdtmain.rdf rdtlib.rdf -o rdxtest.rdx
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/test/rdftest2.asm:1:	;; rdftest2.asm - test linkage and generation of RDOFF files
chromium-84.0.4147.105/third_party/nasm/rdoff/test/rdftest2.asm-2-
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdoff.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/rdoff.c:3: *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdoff.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdoff.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlar.c-2- *
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlar.c:3: *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlar.c:4: *   See the file AUTHORS included with the NASM distribution for
chromium-84.0.4147.105/third_party/nasm/rdoff/rdlar.c-5- *   the specific copyright holders.
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfload.h-5- * redistributable under the license given in the file "LICENSE"
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfload.h:6: * distributed in the NASM archive.
chromium-84.0.4147.105/third_party/nasm/rdoff/rdfload.h-7- *
##############################################
chromium-84.0.4147.105/third_party/nasm/rdoff/collectn.h-3- *
chromium-84.0.4147.105/third_party/nasm/rdoff/collectn.h:4: * This file is public domain, and does not come under the NASM license.
chromium-84.0.4147.105/third_party/nasm/rdoff/collectn.h-5- * It, aint32_t with 'collectn.c' implements what is basically a variable
##############################################
chromium-84.0.4147.105/third_party/openvr/src/src/vrcommon/pathtools_public.cpp-450-	Dl_info info;
chromium-84.0.4147.105/third_party/openvr/src/src/vrcommon/pathtools_public.cpp:451:	dladdr( (void *)Path_GetThisModulePath, &info );
chromium-84.0.4147.105/third_party/openvr/src/src/vrcommon/pathtools_public.cpp-452-	return info.dli_fname;
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/chrome_tests.sh-12-
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/chrome_tests.sh:13:export THISDIR=`dirname $0`
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/chrome_tests.sh-14-ARGV_COPY="$@"
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/chrome_tests.sh-47-then
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/chrome_tests.sh:48:  export CHROME_VALGRIND=`sh $THISDIR/locate_valgrind.sh`
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/chrome_tests.sh-49-  if [ "$CHROME_VALGRIND" = "" ]
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind_test.py-361-
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind_test.py:362:    f.write('DIR=`dirname $0`\n'
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind_test.py-363-            'TESTNAME_FILE=$DIR/testcase.$$.name\n\n')
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind.sh-19-
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind.sh:20:export THISDIR=`dirname $0`
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind.sh-21-
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind.sh-51-# Select a tool different from memcheck with --tool=TOOL as a first argument
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind.sh:52:TMP_STR=`echo $1 | sed 's/^\-\-tool=//'`
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind.sh-53-if [ "$TMP_STR" != "$1" ]; then
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind.sh-70-
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind.sh:71:CHROME_VALGRIND=`sh $THISDIR/locate_valgrind.sh`
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/valgrind.sh-72-if [ "$CHROME_VALGRIND" = "" ]
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/locate_valgrind.sh-15-
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/locate_valgrind.sh:16:export THISDIR=`dirname $0`
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/locate_valgrind.sh-17-
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.sh-21-
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.sh:22:export THISDIR=`dirname $0`
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.sh-23-ARGV_COPY="$@"
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.sh-56-then
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.sh:57:  CHROME_VALGRIND=`sh $THISDIR/locate_valgrind.sh`
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.sh-58-  if [ "$CHROME_VALGRIND" = "" ]
##############################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/ubsan/blacklist.txt-8-#############################################################################
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/ubsan/blacklist.txt:9:# YASM does some funny things that UBsan doesn't like.
chromium-84.0.4147.105/third_party/libyuv/tools_libyuv/ubsan/blacklist.txt-10-# https://crbug.com/489901
##############################################
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-22-    uint32_t val_m;                                    \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h:23:    asm volatile("lw  %[val_m],  %[psrc_lw_m]  \n"     \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-24-                 : [val_m] "=r"(val_m)                 \
##############################################
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-33-    uint64_t val_m = 0;                                \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h:34:    asm volatile("ld  %[val_m],  %[psrc_ld_m]  \n"     \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-35-                 : [val_m] "=r"(val_m)                 \
##############################################
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-57-    uint32_t val_m = (val);                             \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h:58:    asm volatile("sw  %[val_m],  %[pdst_sw_m]  \n"      \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-59-                 : [pdst_sw_m] "=m"(*pdst_sw_m)         \
##############################################
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-67-    uint64_t val_m = (val);                             \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h:68:    asm volatile("sd  %[val_m],  %[pdst_sd_m]  \n"      \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-69-                 : [pdst_sd_m] "=m"(*pdst_sd_m)         \
##############################################
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-87-    uint32_t val_m;                                    \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h:88:    asm volatile("ulw  %[val_m],  %[psrc_lw_m]  \n"    \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-89-                 : [val_m] "=r"(val_m)                 \
##############################################
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-98-    uint64_t val_m = 0;                                \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h:99:    asm volatile("uld  %[val_m],  %[psrc_ld_m]  \n"    \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-100-                 : [val_m] "=r"(val_m)                 \
##############################################
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-122-    uint32_t val_m = (val);                             \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h:123:    asm volatile("usw  %[val_m],  %[pdst_sw_m]  \n"     \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/macros_msa.h-124-                 : [pdst_sw_m] "=m"(*pdst_sw_m)         \
##############################################
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/row.h-754-#define IACA_UD_BYTES \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/row.h:755:  { __asm _emit 0x0F __asm _emit 0x0B }
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/row.h-756-
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/row.h-757-#define IACA_SSC_MARK(x) \
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/row.h:758:  { __asm mov ebx, x __asm _emit 0x64 __asm _emit 0x67 __asm _emit 0x90 }
chromium-84.0.4147.105/third_party/libyuv/include/libyuv/row.h-759-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/rotate_win.cc-26-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/rotate_win.cc:27:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/rotate_win.cc-28-    push      edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/rotate_win.cc-121-                                           int w) {
chromium-84.0.4147.105/third_party/libyuv/source/rotate_win.cc:122:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/rotate_win.cc-123-    push      ebx
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-260-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:261:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-262-    mov        eax, [esp + 4]  // src_y
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-290-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:291:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-292-    mov         eax, [esp + 4]  // src_y
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-321-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:322:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-323-    mov       eax, [esp + 4]  // src_rgb24
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-360-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:361:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-362-    mov       eax, [esp + 4]  // src_raw
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-399-                                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:400:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-401-    mov       eax, [esp + 4]  // src_raw
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-435-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:436:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-437-    mov       eax, 0x01080108  // generate multiplier to repeat 5 bits
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-491-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:492:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-493-    mov        eax, 0x01080108  // generate multiplier to repeat 5 bits
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-542-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:543:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-544-    mov        eax, 0x01080108  // generate multiplier to repeat 5 bits
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-594-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:595:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-596-    mov       eax,  0x0f0f0f0f  // generate mask 0x0f0f0f0f
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-632-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:633:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-634-    mov       eax, 0x01080108  // generate multiplier to repeat 5 bits
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-685-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:686:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-687-    mov       eax, 0x0f0f0f0f  // generate mask 0x0f0f0f0f
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-723-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:724:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-725-    mov       eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-762-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:763:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-764-    mov       eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-801-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:802:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-803-    mov       eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-840-                                                  int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:841:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-842-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-887-                                                  int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:888:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-889-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-930-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:931:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-932-    mov       eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-972-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:973:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-974-    mov       eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1003-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1004:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1005-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1041-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1042:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1043-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1082-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1083:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1084-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1114-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1115:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1116-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1150-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1151:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1152-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1190-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1191:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1192-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1230-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1231:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1232-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1270-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1271:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1272-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1304-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1305:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1306-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1338-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1339:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1340-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1374-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1375:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1376-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1446-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1447:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1448-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1520-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1521:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1522-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1588-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1589:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1590-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1655-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1656:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1657-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1714-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1715:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1716-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1786-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1787:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1788-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1858-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1859:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1860-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1928-#define READYUV444_AVX2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1929:  __asm {                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1930:    __asm vmovdqu    xmm0, [esi] /* U */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1931:    __asm vmovdqu    xmm1, [esi + edi] /* V */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1932:    __asm lea        esi,  [esi + 16]                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1933:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1934:    __asm vpermq     ymm1, ymm1, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1935:    __asm vpunpcklbw ymm0, ymm0, ymm1 /* UV */                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1936:    __asm vmovdqu    xmm4, [eax] /* Y */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1937:    __asm vpermq     ymm4, ymm4, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1938:    __asm vpunpcklbw ymm4, ymm4, ymm4                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1939:    __asm lea        eax, [eax + 16]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1940-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1942-#define READYUV422_AVX2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1943:  __asm {                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1944:    __asm vmovq      xmm0, qword ptr [esi] /* U */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1945:    __asm vmovq      xmm1, qword ptr [esi + edi] /* V */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1946:    __asm lea        esi,  [esi + 8]                                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1947:    __asm vpunpcklbw ymm0, ymm0, ymm1 /* UV */                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1948:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1949:    __asm vpunpcklwd ymm0, ymm0, ymm0 /* UVUV (upsample) */        \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1950:    __asm vmovdqu    xmm4, [eax] /* Y */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1951:    __asm vpermq     ymm4, ymm4, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1952:    __asm vpunpcklbw ymm4, ymm4, ymm4                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1953:    __asm lea        eax, [eax + 16]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1954-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1956-#define READYUVA422_AVX2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1957:  __asm {                                               \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1958:    __asm vmovq      xmm0, qword ptr [esi] /* U */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1959:    __asm vmovq      xmm1, qword ptr [esi + edi] /* V */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1960:    __asm lea        esi,  [esi + 8]                                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1961:    __asm vpunpcklbw ymm0, ymm0, ymm1 /* UV */                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1962:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1963:    __asm vpunpcklwd ymm0, ymm0, ymm0 /* UVUV (upsample) */        \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1964:    __asm vmovdqu    xmm4, [eax] /* Y */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1965:    __asm vpermq     ymm4, ymm4, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1966:    __asm vpunpcklbw ymm4, ymm4, ymm4                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1967:    __asm lea        eax, [eax + 16]                                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1968:    __asm vmovdqu    xmm5, [ebp] /* A */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1969:    __asm vpermq     ymm5, ymm5, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1970:    __asm lea        ebp, [ebp + 16]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1971-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1973-#define READNV12_AVX2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1974:  __asm {                                                  \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1975:    __asm vmovdqu    xmm0, [esi] /* UV */                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1976:    __asm lea        esi,  [esi + 16]                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1977:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1978:    __asm vpunpcklwd ymm0, ymm0, ymm0 /* UVUV (upsample) */        \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1979:    __asm vmovdqu    xmm4, [eax] /* Y */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1980:    __asm vpermq     ymm4, ymm4, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1981:    __asm vpunpcklbw ymm4, ymm4, ymm4                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1982:    __asm lea        eax, [eax + 16]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1983-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1985-#define READNV21_AVX2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1986:  __asm {                                                  \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1987:    __asm vmovdqu    xmm0, [esi] /* UV */                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1988:    __asm lea        esi,  [esi + 16]                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1989:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1990:    __asm vpshufb    ymm0, ymm0, ymmword ptr kShuffleNV21                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1991:    __asm vmovdqu    xmm4, [eax] /* Y */                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1992:    __asm vpermq     ymm4, ymm4, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1993:    __asm vpunpcklbw ymm4, ymm4, ymm4                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1994:    __asm lea        eax, [eax + 16]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1995-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-1997-#define READYUY2_AVX2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1998:  __asm {                                                  \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:1999:    __asm vmovdqu    ymm4, [eax] /* YUY2 */                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2000:    __asm vpshufb    ymm4, ymm4, ymmword ptr kShuffleYUY2Y                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2001:    __asm vmovdqu    ymm0, [eax] /* UV */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2002:    __asm vpshufb    ymm0, ymm0, ymmword ptr kShuffleYUY2UV                    \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2003:    __asm lea        eax, [eax + 32]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2004-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2006-#define READUYVY_AVX2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2007:  __asm {                                                  \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2008:    __asm vmovdqu    ymm4, [eax] /* UYVY */                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2009:    __asm vpshufb    ymm4, ymm4, ymmword ptr kShuffleUYVYY                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2010:    __asm vmovdqu    ymm0, [eax] /* UV */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2011:    __asm vpshufb    ymm0, ymm0, ymmword ptr kShuffleUYVYUV                    \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2012:    __asm lea        eax, [eax + 32]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2013-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2015-#define YUVTORGB_AVX2(YuvConstants) \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2016:  __asm {                                    \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2017:    __asm vpmaddubsw ymm2, ymm0, ymmword ptr [YuvConstants + KUVTOR] /* R UV */\
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2018:    __asm vpmaddubsw ymm1, ymm0, ymmword ptr [YuvConstants + KUVTOG] /* G UV */\
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2019:    __asm vpmaddubsw ymm0, ymm0, ymmword ptr [YuvConstants + KUVTOB] /* B UV */\
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2020:    __asm vmovdqu    ymm3, ymmword ptr [YuvConstants + KUVBIASR]               \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2021:    __asm vpsubw     ymm2, ymm3, ymm2                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2022:    __asm vmovdqu    ymm3, ymmword ptr [YuvConstants + KUVBIASG]               \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2023:    __asm vpsubw     ymm1, ymm3, ymm1                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2024:    __asm vmovdqu    ymm3, ymmword ptr [YuvConstants + KUVBIASB]               \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2025:    __asm vpsubw     ymm0, ymm3, ymm0 /* Step 2: Find Y contribution to 16 R,G,B values */                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2026:    __asm vpmulhuw   ymm4, ymm4, ymmword ptr [YuvConstants + KYTORGB]          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2027:    __asm vpaddsw    ymm0, ymm0, ymm4 /* B += Y */                   \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2028:    __asm vpaddsw    ymm1, ymm1, ymm4 /* G += Y */                   \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2029:    __asm vpaddsw    ymm2, ymm2, ymm4 /* R += Y */                   \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2030:    __asm vpsraw     ymm0, ymm0, 6                                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2031:    __asm vpsraw     ymm1, ymm1, 6                                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2032:    __asm vpsraw     ymm2, ymm2, 6                                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2033:    __asm vpackuswb  ymm0, ymm0, ymm0 /* B */                        \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2034:    __asm vpackuswb  ymm1, ymm1, ymm1 /* G */                        \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2035:    __asm vpackuswb  ymm2, ymm2, ymm2 /* R */                  \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2036-  }
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2039-#define STOREARGB_AVX2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2040:  __asm {                                                 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2041:    __asm vpunpcklbw ymm0, ymm0, ymm1 /* BG */                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2042:    __asm vpermq     ymm0, ymm0, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2043:    __asm vpunpcklbw ymm2, ymm2, ymm5 /* RA */                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2044:    __asm vpermq     ymm2, ymm2, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2045:    __asm vpunpcklwd ymm1, ymm0, ymm2 /* BGRA first 8 pixels */      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2046:    __asm vpunpckhwd ymm0, ymm0, ymm2 /* BGRA next 8 pixels */       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2047:    __asm vmovdqu    0[edx], ymm1                                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2048:    __asm vmovdqu    32[edx], ymm0                                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2049:    __asm lea        edx,  [edx + 64]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2050-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2052-#define STORERGBA_AVX2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2053:  __asm {                                                 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2054:    __asm vpunpcklbw ymm1, ymm1, ymm2 /* GR */                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2055:    __asm vpermq     ymm1, ymm1, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2056:    __asm vpunpcklbw ymm2, ymm5, ymm0 /* AB */                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2057:    __asm vpermq     ymm2, ymm2, 0xd8                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2058:    __asm vpunpcklwd ymm0, ymm2, ymm1 /* ABGR first 8 pixels */      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2059:    __asm vpunpckhwd ymm1, ymm2, ymm1 /* ABGR next 8 pixels */       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2060:    __asm vmovdqu    [edx], ymm0                                               \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2061:    __asm vmovdqu    [edx + 32], ymm1                                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2062:    __asm lea        edx,  [edx + 64]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2063-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2073-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2074:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2075-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2114-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2115:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2116-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2156-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2157:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2158-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2194-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2195:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2196-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2229-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2230:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2231-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2263-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2264:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2265-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2294-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2295:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2296-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2327-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2328:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2329-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2363-#define READYUV444 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2364:  __asm {                                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2365:    __asm movq       xmm0, qword ptr [esi] /* U */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2366:    __asm movq       xmm1, qword ptr [esi + edi] /* V */                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2367:    __asm lea        esi,  [esi + 8]                                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2368:    __asm punpcklbw  xmm0, xmm1 /* UV */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2369:    __asm movq       xmm4, qword ptr [eax]                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2370:    __asm punpcklbw  xmm4, xmm4                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2371:    __asm lea        eax, [eax + 8]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2372-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2374-#define READYUV422 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2375:  __asm {                                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2376:    __asm movd       xmm0, [esi] /* U */                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2377:    __asm movd       xmm1, [esi + edi] /* V */                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2378:    __asm lea        esi,  [esi + 4]                                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2379:    __asm punpcklbw  xmm0, xmm1 /* UV */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2380:    __asm punpcklwd  xmm0, xmm0 /* UVUV (upsample) */                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2381:    __asm movq       xmm4, qword ptr [eax]                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2382:    __asm punpcklbw  xmm4, xmm4                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2383:    __asm lea        eax, [eax + 8]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2384-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2386-#define READYUVA422 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2387:  __asm {                                                    \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2388:    __asm movd       xmm0, [esi] /* U */                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2389:    __asm movd       xmm1, [esi + edi] /* V */                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2390:    __asm lea        esi,  [esi + 4]                                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2391:    __asm punpcklbw  xmm0, xmm1 /* UV */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2392:    __asm punpcklwd  xmm0, xmm0 /* UVUV (upsample) */                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2393:    __asm movq       xmm4, qword ptr [eax] /* Y */                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2394:    __asm punpcklbw  xmm4, xmm4                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2395:    __asm lea        eax, [eax + 8]                                            \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2396:    __asm movq       xmm5, qword ptr [ebp] /* A */                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2397:    __asm lea        ebp, [ebp + 8]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2398-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2400-#define READNV12 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2401:  __asm {                                                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2402:    __asm movq       xmm0, qword ptr [esi] /* UV */                            \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2403:    __asm lea        esi,  [esi + 8]                                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2404:    __asm punpcklwd  xmm0, xmm0 /* UVUV (upsample) */                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2405:    __asm movq       xmm4, qword ptr [eax]                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2406:    __asm punpcklbw  xmm4, xmm4                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2407:    __asm lea        eax, [eax + 8]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2408-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2410-#define READNV21 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2411:  __asm {                                                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2412:    __asm movq       xmm0, qword ptr [esi] /* UV */                            \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2413:    __asm lea        esi,  [esi + 8]                                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2414:    __asm pshufb     xmm0, xmmword ptr kShuffleNV21                            \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2415:    __asm movq       xmm4, qword ptr [eax]                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2416:    __asm punpcklbw  xmm4, xmm4                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2417:    __asm lea        eax, [eax + 8]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2418-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2420-#define READYUY2 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2421:  __asm {                                                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2422:    __asm movdqu     xmm4, [eax] /* YUY2 */                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2423:    __asm pshufb     xmm4, xmmword ptr kShuffleYUY2Y                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2424:    __asm movdqu     xmm0, [eax] /* UV */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2425:    __asm pshufb     xmm0, xmmword ptr kShuffleYUY2UV                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2426:    __asm lea        eax, [eax + 16]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2427-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2429-#define READUYVY \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2430:  __asm {                                                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2431:    __asm movdqu     xmm4, [eax] /* UYVY */                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2432:    __asm pshufb     xmm4, xmmword ptr kShuffleUYVYY                           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2433:    __asm movdqu     xmm0, [eax] /* UV */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2434:    __asm pshufb     xmm0, xmmword ptr kShuffleUYVYUV                          \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2435:    __asm lea        eax, [eax + 16]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2436-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2438-#define YUVTORGB(YuvConstants) \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2439:  __asm {                                         \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2440:    __asm movdqa     xmm1, xmm0                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2441:    __asm movdqa     xmm2, xmm0                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2442:    __asm movdqa     xmm3, xmm0                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2443:    __asm movdqa     xmm0, xmmword ptr [YuvConstants + KUVBIASB]               \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2444:    __asm pmaddubsw  xmm1, xmmword ptr [YuvConstants + KUVTOB]                 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2445:    __asm psubw      xmm0, xmm1                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2446:    __asm movdqa     xmm1, xmmword ptr [YuvConstants + KUVBIASG]               \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2447:    __asm pmaddubsw  xmm2, xmmword ptr [YuvConstants + KUVTOG]                 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2448:    __asm psubw      xmm1, xmm2                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2449:    __asm movdqa     xmm2, xmmword ptr [YuvConstants + KUVBIASR]               \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2450:    __asm pmaddubsw  xmm3, xmmword ptr [YuvConstants + KUVTOR]                 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2451:    __asm psubw      xmm2, xmm3                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2452:    __asm pmulhuw    xmm4, xmmword ptr [YuvConstants + KYTORGB]                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2453:    __asm paddsw     xmm0, xmm4 /* B += Y */                         \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2454:    __asm paddsw     xmm1, xmm4 /* G += Y */                         \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2455:    __asm paddsw     xmm2, xmm4 /* R += Y */                         \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2456:    __asm psraw      xmm0, 6                                                   \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2457:    __asm psraw      xmm1, 6                                                   \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2458:    __asm psraw      xmm2, 6                                                   \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2459:    __asm packuswb   xmm0, xmm0 /* B */                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2460:    __asm packuswb   xmm1, xmm1 /* G */                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2461:    __asm packuswb   xmm2, xmm2 /* R */             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2462-  }
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2465-#define STOREARGB \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2466:  __asm {                                                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2467:    __asm punpcklbw  xmm0, xmm1 /* BG */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2468:    __asm punpcklbw  xmm2, xmm5 /* RA */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2469:    __asm movdqa     xmm1, xmm0                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2470:    __asm punpcklwd  xmm0, xmm2 /* BGRA first 4 pixels */            \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2471:    __asm punpckhwd  xmm1, xmm2 /* BGRA next 4 pixels */             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2472:    __asm movdqu     0[edx], xmm0                                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2473:    __asm movdqu     16[edx], xmm1                                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2474:    __asm lea        edx,  [edx + 32]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2475-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2477-#define STOREBGRA \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2478:  __asm {                                                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2479:    __asm pcmpeqb    xmm5, xmm5 /* generate 0xffffffff for alpha */  \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2480:    __asm punpcklbw  xmm1, xmm0 /* GB */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2481:    __asm punpcklbw  xmm5, xmm2 /* AR */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2482:    __asm movdqa     xmm0, xmm5                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2483:    __asm punpcklwd  xmm5, xmm1 /* BGRA first 4 pixels */            \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2484:    __asm punpckhwd  xmm0, xmm1 /* BGRA next 4 pixels */             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2485:    __asm movdqu     0[edx], xmm5                                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2486:    __asm movdqu     16[edx], xmm0                                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2487:    __asm lea        edx,  [edx + 32]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2488-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2490-#define STORERGBA \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2491:  __asm {                                                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2492:    __asm pcmpeqb    xmm5, xmm5 /* generate 0xffffffff for alpha */  \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2493:    __asm punpcklbw  xmm1, xmm2 /* GR */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2494:    __asm punpcklbw  xmm5, xmm0 /* AB */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2495:    __asm movdqa     xmm0, xmm5                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2496:    __asm punpcklwd  xmm5, xmm1 /* RGBA first 4 pixels */            \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2497:    __asm punpckhwd  xmm0, xmm1 /* RGBA next 4 pixels */             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2498:    __asm movdqu     0[edx], xmm5                                              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2499:    __asm movdqu     16[edx], xmm0                                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2500:    __asm lea        edx,  [edx + 32]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2501-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2503-#define STORERGB24 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2504:  __asm {/* Weave into RRGB */                                                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2505:    __asm punpcklbw  xmm0, xmm1 /* BG */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2506:    __asm punpcklbw  xmm2, xmm2 /* RR */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2507:    __asm movdqa     xmm1, xmm0                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2508:    __asm punpcklwd  xmm0, xmm2 /* BGRR first 4 pixels */            \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2509:    __asm punpckhwd  xmm1, xmm2 /* BGRR next 4 pixels */ /* RRGB -> RGB24 */                                                        \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2510:    __asm pshufb     xmm0, xmm5 /* Pack first 8 and last 4 bytes. */ \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2511:    __asm pshufb     xmm1, xmm6 /* Pack first 12 bytes. */           \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2512:    __asm palignr    xmm1, xmm0, 12 /* last 4 bytes of xmm0 + 12 xmm1 */ \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2513:    __asm movq       qword ptr 0[edx], xmm0 /* First 8 bytes */               \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2514:    __asm movdqu     8[edx], xmm1 /* Last 16 bytes */                  \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2515:    __asm lea        edx,  [edx + 24]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2516-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2518-#define STORERGB565 \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2519:  __asm {/* Weave into RRGB */                                                      \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2520:    __asm punpcklbw  xmm0, xmm1 /* BG */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2521:    __asm punpcklbw  xmm2, xmm2 /* RR */                             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2522:    __asm movdqa     xmm1, xmm0                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2523:    __asm punpcklwd  xmm0, xmm2 /* BGRR first 4 pixels */            \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2524:    __asm punpckhwd  xmm1, xmm2 /* BGRR next 4 pixels */ /* RRGB -> RGB565 */                                                       \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2525:    __asm movdqa     xmm3, xmm0 /* B  first 4 pixels of argb */             \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2526:    __asm movdqa     xmm2, xmm0 /* G */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2527:    __asm pslld      xmm0, 8 /* R */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2528:    __asm psrld      xmm3, 3 /* B */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2529:    __asm psrld      xmm2, 5 /* G */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2530:    __asm psrad      xmm0, 16 /* R */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2531:    __asm pand       xmm3, xmm5 /* B */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2532:    __asm pand       xmm2, xmm6 /* G */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2533:    __asm pand       xmm0, xmm7 /* R */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2534:    __asm por        xmm3, xmm2 /* BG */                                    \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2535:    __asm por        xmm0, xmm3 /* BGR */                                   \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2536:    __asm movdqa     xmm3, xmm1 /* B  next 4 pixels of argb */              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2537:    __asm movdqa     xmm2, xmm1 /* G */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2538:    __asm pslld      xmm1, 8 /* R */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2539:    __asm psrld      xmm3, 3 /* B */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2540:    __asm psrld      xmm2, 5 /* G */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2541:    __asm psrad      xmm1, 16 /* R */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2542:    __asm pand       xmm3, xmm5 /* B */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2543:    __asm pand       xmm2, xmm6 /* G */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2544:    __asm pand       xmm1, xmm7 /* R */                                     \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2545:    __asm por        xmm3, xmm2 /* BG */                                    \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2546:    __asm por        xmm1, xmm3 /* BGR */                                   \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2547:    __asm packssdw   xmm0, xmm1                                                \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2548:    __asm movdqu     0[edx], xmm0 /* store 8 pixels of RGB565 */              \
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2549:    __asm lea        edx, [edx + 16]}
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2550-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2559-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2560:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2561-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2596-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2597:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2598-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2634-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2635:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2636-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2677-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2678:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2679-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2715-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2716:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2717-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2753-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2754:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2755-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2785-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2786:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2787-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2816-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2817:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2818-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2844-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2845:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2846-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2872-    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2873:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2874-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2905-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2906:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2907-    mov        eax, 0x4a354a35  // 4a35 = 18997 = round(1.164 * 64 * 256)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2952-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:2953:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-2954-    mov        eax, 0x4a354a35  // 4a35 = 18997 = round(1.164 * 64 * 256)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3005-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3006:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3007-    mov       eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3027-                                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3028:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3029-    mov       eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3056-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3057:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3058-    push      edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3086-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3087:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3088-    mov       eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3112-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3113:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3114-    mov       eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3135-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3136:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3137-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3175-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3176:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3177-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3215-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3216:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3217-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3247-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3248:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3249-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3281-                                    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3282:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3283-    mov        eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3320-                                   int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3321:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3322-    mov        eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3345-                                    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3346:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3347-    mov        eax, esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3363-                                             int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3364:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3365-    mov        eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3400-                                             int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3401:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3402-    mov        eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3430-                                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3431:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3432-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3458-                                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3459:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3460-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3494-                                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3495:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3496-    mov        eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3533-                                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3534:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3535-    mov        eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3564-__declspec(naked) void SetRow_X86(uint8_t* dst, uint8_t v8, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3565:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3566-    movzx      eax, byte ptr [esp + 8]  // v8
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3580-__declspec(naked) void SetRow_ERMS(uint8_t* dst, uint8_t v8, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3581:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3582-    mov        edx, edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3595-                                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3596:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3597-    mov        edx, edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3611-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3612:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3613-    mov        eax, [esp + 4]  // src_yuy2
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3640-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3641:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3642-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3685-                                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3686:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3687-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3724-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3725:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3726-    mov        eax, [esp + 4]  // src_uyvy
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3751-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3752:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3753-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3796-                                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3797:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3798-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3837-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3838:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3839-    mov        eax, [esp + 4]  // src_yuy2
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3864-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3865:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3866-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3908-                                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3909:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3910-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3944-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3945:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3946-    mov        eax, [esp + 4]  // src_uyvy
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3969-                                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:3970:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-3971-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4013-                                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4014:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4015-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4058-                                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4059:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4060-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4115-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4116:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4117-    push        esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4178-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4179:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4180-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4268-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4269:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4270-    mov        eax, [esp + 4]  // src_argb0
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4313-                                             int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4314:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4315-    mov        eax, [esp + 4]  // src_argb0
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4351-                                               int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4352:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4353-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4407-                                               int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4408:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4409-    mov        eax, [esp + 4]  // src_argb0
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4441-                                               int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4442:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4443-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4510-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4511:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4512-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4565-__declspec(naked) void ARGBSepiaRow_SSSE3(uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4566:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4567-    mov        eax, [esp + 4] /* dst_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4624-                                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4625:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4626-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4687-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4688:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4689-    mov        eax, [esp + 4] /* dst_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4733-                                         uint32_t value) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4734:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4735-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4768-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4769:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4770-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4808-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4809:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4810-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4857-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4858:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4859-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4887-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4888:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4889-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4925-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4926:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4927-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4955-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4956:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4957-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4989-                                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:4990:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-4991-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5046-                                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5047:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5048-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5100-                                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5101:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5102-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5148-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5149:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5150-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5182-                                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5183:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5184-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5243-                                    int count) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5244:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5245-    mov        eax, topleft  // eax topleft
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5391-                                  int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5392:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5393-    mov        eax, row
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5477-                                                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5478:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5479-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5563-                                           int source_y_fraction) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5564:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5565-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5640-                                            int source_y_fraction) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5641:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5642-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5721-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5722:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5723-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5748-                                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5749:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5750-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5784-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5785:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5786-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5821-                                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5822:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5823-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5858-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5859:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5860-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5917-                                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5918:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5919-    mov        eax, [esp + 4] /* src_argb */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5957-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5958:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5959-    mov        eax, [esp + 4] /* src */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5994-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:5995:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-5996-    mov        eax, [esp + 4] /* src */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-6032-                                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:6033:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-6034-    mov        eax, [esp + 4] /* src */
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-6065-                                             int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:6066:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-6067-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-6099-                                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:6100:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-6101-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-6133-                                                   uint32_t lumacoeff) {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc:6134:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/row_win.cc-6135-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-30-
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc:31:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-32-      "xor        %3,%3                          \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-78-
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc:79:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-80-      // Process 16 bytes per loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-122-
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc:123:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-124-      "movdqa     %4,%%xmm2                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-181-
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc:182:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-183-      "vbroadcastf128 %4,%%ymm2                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-235-  uint32_t sse;
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc:236:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-237-      "pxor      %%xmm0,%%xmm0                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-302-  uint32_t hash;
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc:303:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_gcc.cc-304-      "movd      %2,%%xmm0                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-95-                                           int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:96:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-97-    mov        eax, [esp + 4]  // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-122-                                                 int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:123:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-124-    mov        eax, [esp + 4]  // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-156-                                              int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:157:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-158-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-201-                                          int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:202:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-203-    mov        eax, [esp + 4]  // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-230-                                                int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:231:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-232-    mov         eax, [esp + 4]  // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-268-                                             int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:269:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-270-    push        esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-315-                                           int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:316:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-317-    mov        eax, [esp + 4]  // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-347-                                              int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:348:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-349-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-406-                                          int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:407:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-408-    mov         eax, [esp + 4]  // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-441-                                             int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:442:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-443-    push        esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-505-                                            int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:506:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-507-    mov        eax, [esp + 4]   // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-553-                                                  int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:554:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-555-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-610-                                                  int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:611:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-612-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-672-                                            int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:673:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-674-    mov        eax, [esp + 4]  // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-704-                                                  int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:705:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-706-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-769-                                                  int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:770:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-771-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-813-                                        int src_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:814:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-815-    mov        eax, [esp + 4]  // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-844-                                        int src_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:845:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-846-    mov         eax, [esp + 4]  // src_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-886-                                             int dx) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:887:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-888-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-972-                                         int dx) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:973:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-974-    mov        edx, [esp + 4]  // dst_ptr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-998-                                              int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:999:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1000-    mov        eax, [esp + 4]   // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1023-                                                    int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:1024:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1025-    mov        eax, [esp + 4]  // src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1051-                                                 int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:1052:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1053-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1086-                                                 int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:1087:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1088-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1123-                                                    int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:1124:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1125-    push       ebx
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1171-                                          int dx) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:1172:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1173-    push       edi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1264-                                                 int dx) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:1265:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1266-    push       esi
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1337-                                             int dx) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:1338:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1339-    mov        edx, [esp + 4]  // dst_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1360-__declspec(naked) int FixedDiv_X86(int num, int div) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:1361:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1362-    mov        eax, [esp + 4]  // num
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1372-__declspec(naked) int FixedDiv1_X86(int num, int div) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc:1373:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/scale_win.cc-1374-    mov        eax, [esp + 4]  // num
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc-44-    SumSquareError_SSE2(const uint8_t* src_a, const uint8_t* src_b, int count) {
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc:45:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc-46-    mov        eax, [esp + 4]  // src_a
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc-85-    SumSquareError_AVX2(const uint8_t* src_a, const uint8_t* src_b, int count) {
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc:86:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc-87-    mov        eax, [esp + 4]  // src_a
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc-150-    HashDjb2_SSE41(const uint8_t* src, int count, uint32_t seed) {
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc:151:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc-152-    mov        eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc-201-    HashDjb2_AVX2(const uint8_t* src, int count, uint32_t seed) {
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc:202:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/compare_win.cc-203-    mov        eax, [esp + 4]  // src
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon.cc-32-  const uint8_t* src_temp;
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon.cc:33:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon.cc-34-      // loops are on blocks of 8. loop will stop when
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon.cc-202-  const uint8_t* src_temp;
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon.cc:203:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon.cc-204-      // loops are on blocks of 8. loop will stop when
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/rotate_gcc.cc-29-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/rotate_gcc.cc:30:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/rotate_gcc.cc-31-      // Read in the data from the source pointer.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/rotate_gcc.cc-119-                             int width) {
chromium-84.0.4147.105/third_party/libyuv/source/rotate_gcc.cc:120:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/rotate_gcc.cc-121-      // Read in the data from the source pointer.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/rotate_gcc.cc-264-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/rotate_gcc.cc:265:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/rotate_gcc.cc-266-      // Read in the data from the source pointer.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon64.cc-28-  uint32_t diff;
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon64.cc:29:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon64.cc-30-      "movi       v4.8h, #0                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon64.cc-55-  uint32_t sse;
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon64.cc:56:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon64.cc-57-      "eor        v16.16b, v16.16b, v16.16b      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_common.cc-3007-    defined(HAS_I422TORGB565ROW_SSSE3)
chromium-84.0.4147.105/third_party/libyuv/source/row_common.cc:3008:// row_win.cc has asm version, but GCC uses 2 step wrapper.
chromium-84.0.4147.105/third_party/libyuv/source/row_common.cc-3009-void I422ToRGB565Row_SSSE3(const uint8_t* src_y,
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon.cc-30-
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon.cc:31:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon.cc-32-      "vmov.u16   q4, #0                         \n"  // accumulator
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon.cc-60-  uint32_t sse;
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon.cc:61:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/compare_neon.cc-62-      "vmov.u8    q8, #0                         \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc-54-#elif defined(_M_IX86)
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc:55:  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc-56-    mov        eax, info_eax
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc-74-  int info_ebx, info_edx;
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc:75:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc-76-#if defined(__i386__) && defined(__PIC__)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc-102-// For VS2010 and earlier emit can be used:
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc:103://   _asm _emit 0x0f _asm _emit 0x01 _asm _emit 0xd0  // For VS2010 and earlier.
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc:104://  __asm {
chromium-84.0.4147.105/third_party/libyuv/source/cpu_id.cc-105-//    xor        ecx, ecx    // xcr 0
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon64.cc-32-  const uint8_t* src_temp;
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon64.cc:33:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon64.cc-34-      // loops are on blocks of 8. loop will stop when
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon64.cc-210-  const uint8_t* src_temp;
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon64.cc:211:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/rotate_neon64.cc-212-      // loops are on blocks of 8. loop will stop when
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-100-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:101:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-102-      // 16 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-126-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:127:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-128-      "pcmpeqb    %%xmm4,%%xmm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-157-                            int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:158:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-159-      "pcmpeqb    %%xmm4,%%xmm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-198-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:199:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-200-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-226-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:227:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-228-      "vpcmpeqb   %%ymm4,%%ymm4,%%ymm4           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-259-                           int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:260:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-261-      "vpcmpeqb   %%ymm4,%%ymm4,%%ymm4           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-302-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:303:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-304-      "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-333-  intptr_t stridex3;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:334:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-335-      "pcmpeqb    %%xmm4,%%xmm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-388-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:389:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-390-      "vpcmpeqb   %%ymm5,%%ymm5,%%ymm5           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-421-                           int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:422:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-423-      "vpcmpeqb   %%ymm4,%%ymm4,%%ymm4           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-477-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:478:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-479-      "movdqa    %0,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-486-  );
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:487:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-488-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-515-                                int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:516:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-517-      "movdqa    %0,%%xmm2                       \n"  // kShuf01
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-524-  );
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:525:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-526-      "movdqa    %0,%%xmm5                       \n"  // kMadd01
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-533-  );
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:534:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-535-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-581-                                int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:582:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-583-      "movdqa    %0,%%xmm2                       \n"  // kShuf01
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-590-  );
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:591:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-592-      "movdqa    %0,%%xmm5                       \n"  // kMadd01
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-600-
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:601:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-602-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-652-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:653:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-654-      "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-682-                                int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:683:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-684-      "movdqa    %0,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-693-  );
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:694:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-695-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-727-                                int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:728:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-729-      "movdqa    %0,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-737-  );
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:738:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-739-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-791-                      int src_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:792:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-793-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-824-                      int src_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:825:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-826-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-867-  intptr_t x0, x1, temp_pixel;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:868:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-869-      "movd      %6,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-964-  (void)dx;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:965:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-966-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-991-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:992:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-993-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1015-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1016:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1017-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1041-                               int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1042:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1043-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1077-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1078:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1079-      "lea       0x00(,%1,4),%1                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1114-  intptr_t row1 = (intptr_t)(src_stride);
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1115:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1116-      "lea       0x00(,%1,4),%1                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1157-  intptr_t x0, x1;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1158:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1159-      "movd      %5,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1228-  (void)dx;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1229:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1230-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1268-  intptr_t x0, x1;
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1269:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1270-      "movdqa    %0,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1276-
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1277:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1278-      "movd      %5,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1339-int FixedDiv_X86(int num, int div) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1340:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1341-      "cdq                                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1353-int FixedDiv1_X86(int num, int div) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc:1354:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_gcc.cc-1355-      "cdq                                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-120-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:121:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-122-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-149-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:150:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-151-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-179-                             int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:180:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-181-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-209-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:210:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-211-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-238-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:239:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-240-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-273-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:274:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-275-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-309-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:310:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-311-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-347-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:348:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-349-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-373-void I400ToARGBRow_NEON(const uint8_t* src_y, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:374:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-375-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-395-void J400ToARGBRow_NEON(const uint8_t* src_y, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:396:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-397-      "movi       v23.8b, #255                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-416-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:417:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-418-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-443-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:444:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-445-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-470-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:471:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-472-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-496-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:497:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-498-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-522-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:523:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-524-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-546-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:547:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-548-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-571-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:572:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-573-    YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-597-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:598:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-599-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-618-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:619:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-620-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-640-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:641:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-642-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-664-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:665:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-666-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-684-void CopyRow_NEON(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:685:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-686-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-700-void SetRow_NEON(uint8_t* dst, uint8_t v8, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:701:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-702-      "dup        v0.16b, %w2                    \n"  // duplicate 16 bytes
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-713-void ARGBSetRow_NEON(uint8_t* dst, uint32_t v32, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:714:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-715-      "dup        v0.4s, %w2                     \n"  // duplicate 4 ints
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-726-void MirrorRow_NEON(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:727:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-728-      // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-748-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:749:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-750-      // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-769-void ARGBMirrorRow_NEON(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:770:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-771-      // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-790-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:791:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-792-      "movi       v4.8b, #255                    \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-806-void RAWToARGBRow_NEON(const uint8_t* src_raw, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:807:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-808-      "movi       v5.8b, #255                    \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-824-void RAWToRGBARow_NEON(const uint8_t* src_raw, uint8_t* dst_rgba, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:825:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-826-      "movi       v0.8b, #255                    \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-842-void RAWToRGB24Row_NEON(const uint8_t* src_raw, uint8_t* dst_rgb24, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:843:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-844-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-874-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:875:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-876-      "movi       v3.8b, #255                    \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-930-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:931:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-932-      "movi       v3.8b, #255                    \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-962-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:963:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-964-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-981-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:982:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-983-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-997-void ARGBToRAWRow_NEON(const uint8_t* src_argb, uint8_t* dst_raw, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:998:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-999-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1014-void YUY2ToYRow_NEON(const uint8_t* src_yuy2, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1015:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1016-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1029-void UYVYToYRow_NEON(const uint8_t* src_uyvy, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1030:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1031-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1047-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1048:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1049-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1067-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1068:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1069-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1089-  const uint8_t* src_yuy2b = src_yuy2 + stride_yuy2;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1090:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1091-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1116-  const uint8_t* src_uyvyb = src_uyvy + stride_uyvy;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1117:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1118-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1142-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1143:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1144-      "ld1        {v2.16b}, [%3]                 \n"  // shuffler
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1163-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1164:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1165-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1186-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1187:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1188-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1207-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1208:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1209-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1225-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1226:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1227-      "dup        v1.4s, %w2                     \n"  // dither4
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1245-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1246:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1247-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1263-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1264:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1265-      "movi       v4.16b, #0x0f                  \n"  // bits to clear with
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1281-void ARGBToYRow_NEON(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1282:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1283-      "movi       v4.8b, #25                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1306-                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1307:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1308-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1322-void ARGBToYJRow_NEON(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1323:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1324-      "movi       v4.8b, #29                     \n"  // B * 0.1140 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1343-void RGBAToYJRow_NEON(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1344:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1345-      "movi       v4.8b, #29                     \n"  // B * 0.1140 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1368-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1369:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1370-      "movi       v24.8b, #112                   \n"  // UB / VR 0.875
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1437-  const uint8_t* src_argb_1 = src_argb + src_stride_argb;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1438:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1439-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1477-  const uint8_t* src_argb_1 = src_argb + src_stride_argb;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1478:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1479-    "movi       v20.8h, #63, lsl #0            \n"  // UB/VR coeff (0.500) / 2
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1520-  const uint8_t* src_bgra_1 = src_bgra + src_stride_bgra;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1521:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1522-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1558-  const uint8_t* src_abgr_1 = src_abgr + src_stride_abgr;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1559:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1560-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1596-  const uint8_t* src_rgba_1 = src_rgba + src_stride_rgba;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1597:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1598-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1634-  const uint8_t* src_rgb24_1 = src_rgb24 + src_stride_rgb24;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1635:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1636-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1672-  const uint8_t* src_raw_1 = src_raw + src_stride_raw;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1673:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1674-    RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1711-  const uint8_t* src_rgb565_1 = src_rgb565 + src_stride_rgb565;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1712:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1713-      "movi       v22.8h, #56, lsl #0            \n"  // UB / VR coeff (0.875) /
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1782-  const uint8_t* src_argb1555_1 = src_argb1555 + src_stride_argb1555;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1783:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1784-      RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1847-  const uint8_t* src_argb4444_1 = src_argb4444 + src_stride_argb4444;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1848:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1849-      RGBTOUV_SETUP_REG
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1908-void RGB565ToYRow_NEON(const uint8_t* src_rgb565, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1909:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1910-      "movi       v24.8b, #25                    \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1935-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1936:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1937-      "movi       v4.8b, #25                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1961-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1962:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1963-      "movi       v24.8b, #25                    \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1985-void BGRAToYRow_NEON(const uint8_t* src_bgra, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:1986:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-1987-      "movi       v4.8b, #66                     \n"  // R * 0.2578 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2008-void ABGRToYRow_NEON(const uint8_t* src_abgr, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2009:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2010-      "movi       v6.8b, #25                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2031-void RGBAToYRow_NEON(const uint8_t* src_rgba, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2032:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2033-      "movi       v4.8b, #25                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2054-void RGB24ToYRow_NEON(const uint8_t* src_rgb24, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2055:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2056-      "movi       v4.8b, #25                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2077-void RAWToYRow_NEON(const uint8_t* src_raw, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2078:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2079-      "movi       v6.8b, #25                     \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2108-  const uint8_t* src_ptr1 = src_ptr + src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2109:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2110-      "cmp        %w4, #0                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2164-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2165:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2166-      "subs       %w3, %w3, #8                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2231-                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2232:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2233-      // Attenuate 8 pixels.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2259-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2260:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2261-      "dup        v4.8h, %w2                     \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2301-                       uint32_t value) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2302:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2303-      "dup        v0.4s, %w3                     \n"  // duplicate scale value.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2335-void ARGBGrayRow_NEON(const uint8_t* src_argb, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2336:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2337-      "movi       v24.8b, #29                    \n"  // B * 0.1140 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2363-void ARGBSepiaRow_NEON(uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2364:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2365-      "movi       v20.8b, #17                    \n"  // BB coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2404-                             int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2405:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2406-      "ld1        {v2.16b}, [%3]                 \n"  // load 3 ARGB vectors.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2464-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2465:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2466-      // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2493-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2494:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2495-      // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2518-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2519:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2520-      // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2547-                   int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2548:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2549-      "movi       v3.8b, #255                    \n"  // alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2572-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2573:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2574-      // 16 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2598-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2599:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2600-      "movi       v3.8b, #255                    \n"  // alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2625-                    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2626:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2627-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2663-                    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2664:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2665-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2697-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2698:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2699-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2720-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2721:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2722-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2745-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2746:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2747-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2770-  float fmax;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2771:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2772-      "movi       v5.4s, #0                      \n"  // max
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2799-  float fsum;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2800:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2801-      "movi       v5.4s, #0                      \n"  // max
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2825-void ScaleSamples_NEON(const float* src, float* dst, float scale, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2826:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2827-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2848-                   int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2849:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2850-      "movi       v6.8h, #4                      \n"  // constant 4
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2885-  const uint32_t* src3 = src + 3;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2886:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2887-      "movi       v6.4s, #4                      \n"  // constant 4
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2922-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2923:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2924-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2944-  const uint8_t* src_ayuv_1 = src_ayuv + src_stride_ayuv;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2945:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2946-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2971-  const uint8_t* src_ayuv_1 = src_ayuv + src_stride_ayuv;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2972:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2973-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2996-void AYUVToYRow_NEON(const uint8_t* src_ayuv, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:2997:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-2998-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-3012-void SwapUVRow_NEON(const uint8_t* src_uv, uint8_t* dst_vu, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc:3013:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon64.cc-3014-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-30-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:31:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-32-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-51-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:52:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-53-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-71-                           int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:72:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-73-      // change the stride to row 2 pointer
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-102-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:103:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-104-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-122-  const uint8_t* src_ptr3 = src_ptr + src_stride * 3;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:123:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-124-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-156-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:157:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-158-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-174-                               int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:175:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-176-      "vmov.u8    d24, #3                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-231-                               int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:232:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-233-      "vmov.u8    d24, #3                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-283-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:284:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-285-      "vld1.8     {q3}, [%3]                     \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-307-
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:308:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-309-      "vld1.16    {q13}, [%5]                    \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-417-                               int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:418:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-419-      "vld1.16    {q13}, [%4]                    \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-511-                      int src_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:512:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-513-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-548-  const uint8_t* src_tmp = src_ptr;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:549:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-550-    "vdup.32    q0, %3                         \n"  // x
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-610-                          int source_y_fraction) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:611:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-612-      "cmp          %4, #0                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-694-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:695:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-696-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-722-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:723:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-724-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-743-                               int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:744:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-745-      // change the stride to row 2 pointer
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-782-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:783:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-784-      "mov        r12, %3, lsl #2                \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-806-                                  int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:807:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-808-      "mov        r12, %4, lsl #2                \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-854-  const uint8_t* src_tmp = src_argb;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:855:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-856-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-898-  const uint8_t* src_tmp = src_argb;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc:899:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon.cc-900-    "vdup.32    q0, %3                         \n"  // x
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-114-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:115:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-116-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-140-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:141:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-142-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-167-                             int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:168:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-169-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-194-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:195:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-196-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-220-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:221:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-222-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-252-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:253:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-254-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-286-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:287:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-288-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-321-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:322:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-323-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-345-void I400ToARGBRow_NEON(const uint8_t* src_y, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:346:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-347-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-364-void J400ToARGBRow_NEON(const uint8_t* src_y, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:365:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-366-      "vmov.u8    d23, #255                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-385-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:386:  asm volatile(YUVTORGB_SETUP
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-387-               "vmov.u8    d23, #255                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-408-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:409:  asm volatile(YUVTORGB_SETUP
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-410-               "vmov.u8    d23, #255                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-431-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:432:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-433-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-458-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:459:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-460-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-485-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:486:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-487-      YUVTORGB_SETUP
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-507-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:508:  asm volatile(YUVTORGB_SETUP
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-509-               "vmov.u8    d23, #255                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-528-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:529:  asm volatile(YUVTORGB_SETUP
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-530-               "vmov.u8    d23, #255                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-550-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:551:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-552-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-571-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:572:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-573-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-593-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:594:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-595-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-618-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:619:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-620-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-639-void CopyRow_NEON(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:640:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-641-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-655-void SetRow_NEON(uint8_t* dst, uint8_t v8, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:656:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-657-      "vdup.8    q0, %2                          \n"  // duplicate 16 bytes
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-669-void ARGBSetRow_NEON(uint8_t* dst, uint32_t v32, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:670:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-671-      "vdup.u32  q0, %2                          \n"  // duplicate 4 ints
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-682-void MirrorRow_NEON(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:683:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-684-      // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-706-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:707:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-708-      // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-728-void ARGBMirrorRow_NEON(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:729:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-730-      // Start at end of source row.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-751-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:752:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-753-      "vmov.u8    d4, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-767-void RAWToARGBRow_NEON(const uint8_t* src_raw, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:768:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-769-      "vmov.u8    d4, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-784-void RAWToRGBARow_NEON(const uint8_t* src_raw, uint8_t* dst_rgba, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:785:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-786-      "vmov.u8    d0, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-800-void RAWToRGB24Row_NEON(const uint8_t* src_raw, uint8_t* dst_rgb24, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:801:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-802-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-831-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:832:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-833-      "vmov.u8    d3, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-877-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:878:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-879-      "vmov.u8    d3, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-906-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:907:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-908-      "vmov.u8    d3, #255                       \n"  // Alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-925-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:926:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-927-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-941-void ARGBToRAWRow_NEON(const uint8_t* src_argb, uint8_t* dst_raw, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:942:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-943-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-957-void YUY2ToYRow_NEON(const uint8_t* src_yuy2, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:958:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-959-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-972-void UYVYToYRow_NEON(const uint8_t* src_uyvy, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:973:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-974-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-990-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:991:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-992-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1010-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1011:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1012-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1031-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1032:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1033-      "add        %1, %0, %1                     \n"  // stride + src_yuy2
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1058-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1059:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1060-      "add        %1, %0, %1                     \n"  // stride + src_uyvy
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1085-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1086:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1087-      "vld1.8     {q2}, [%3]                     \n"  // shuffler
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1107-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1108:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1109-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1129-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1130:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1131-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1149-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1150:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1151-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1167-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1168:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1169-      "vdup.32    d2, %2                         \n"  // dither4
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1188-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1189:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1190-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1205-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1206:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1207-      "vmov.u8    d4, #0x0f                      \n"  // bits to clear with
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1222-void ARGBToYRow_NEON(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1223:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1224-      "vmov.u8    d24, #25                       \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1247-                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1248:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1249-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1263-void ARGBToYJRow_NEON(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1264:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1265-      "vmov.u8    d24, #29                       \n"  // B * 0.1140 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1284-void RGBAToYJRow_NEON(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1285:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1286-      "vmov.u8    d24, #29                       \n"  // B * 0.1140 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1309-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1310:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1311-      "vmov.u8    d24, #112                      \n"  // UB / VR 0.875
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1366-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1367:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1368-    "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1412-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1413:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1414-    "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1457-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1458:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1459-    "add        %1, %0, %1                     \n"  // src_stride + src_bgra
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1502-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1503:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1504-    "add        %1, %0, %1                     \n"  // src_stride + src_abgr
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1547-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1548:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1549-    "add        %1, %0, %1                     \n"  // src_stride + src_rgba
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1592-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1593:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1594-    "add        %1, %0, %1                     \n"  // src_stride + src_rgb24
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1637-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1638:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1639-    "add        %1, %0, %1                     \n"  // src_stride + src_raw
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1683-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1684:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1685-      "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1749-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1750:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1751-      "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1815-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1816:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1817-      "add        %1, %0, %1                     \n"  // src_stride + src_argb
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1876-void RGB565ToYRow_NEON(const uint8_t* src_rgb565, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1877:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1878-      "vmov.u8    d24, #25                       \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1902-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1903:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1904-      "vmov.u8    d24, #25                       \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1928-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1929:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1930-      "vmov.u8    d24, #25                       \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1952-void BGRAToYRow_NEON(const uint8_t* src_bgra, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1953:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1954-      "vmov.u8    d6, #25                        \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1975-void ABGRToYRow_NEON(const uint8_t* src_abgr, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1976:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1977-      "vmov.u8    d6, #25                        \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-1998-void RGBAToYRow_NEON(const uint8_t* src_rgba, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:1999:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2000-      "vmov.u8    d4, #25                        \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2021-void RGB24ToYRow_NEON(const uint8_t* src_rgb24, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2022:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2023-      "vmov.u8    d4, #25                        \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2044-void RAWToYRow_NEON(const uint8_t* src_raw, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2045:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2046-      "vmov.u8    d6, #25                        \n"  // B * 0.1016 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2073-  int y1_fraction = source_y_fraction;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2074:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2075-      "cmp        %4, #0                         \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2130-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2131:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2132-      "subs       %3, #8                         \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2189-                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2190:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2191-      // Attenuate 8 pixels.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2216-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2217:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2218-      "vdup.u16   q8, %2                         \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2258-                       uint32_t value) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2259:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2260-      "vdup.u32   q0, %3                         \n"  // duplicate scale value.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2292-void ARGBGrayRow_NEON(const uint8_t* src_argb, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2293:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2294-      "vmov.u8    d24, #29                       \n"  // B * 0.1140 coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2319-void ARGBSepiaRow_NEON(uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2320:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2321-      "vmov.u8    d20, #17                       \n"  // BB coefficient
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2360-                             int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2361:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2362-      "vld1.8     {q2}, [%3]                     \n"  // load 3 ARGB vectors.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2419-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2420:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2421-      // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2448-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2449:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2450-      // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2471-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2472:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2473-      // 8 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2498-                   int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2499:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2500-      "vmov.u8    d3, #255                       \n"  // alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2523-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2524:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2525-      // 16 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2549-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2550:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2551-      "vmov.u8    d3, #255                       \n"  // alpha
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2576-                    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2577:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2578-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2614-                    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2615:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2616-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2651-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2652:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2653-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2677-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2678:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2679-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2703-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2704:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2705-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2732-                   int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2733:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2734-      "vmov.u16   d6, #4                         \n"  // constant 4
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2769-  const uint32_t* src3 = src + 3;
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2770:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2771-      "vmov.u32    q10, #4                        \n"  // constant 4
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2807-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2808:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2809-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2831-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2832:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2833-      "add        %1, %0, %1                     \n"  // src_stride + src_AYUV
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2862-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2863:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2864-      "add        %1, %0, %1                     \n"  // src_stride + src_AYUV
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2892-void AYUVToYRow_NEON(const uint8_t* src_ayuv, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2893:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2894-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2908-void SwapUVRow_NEON(const uint8_t* src_uv, uint8_t* dst_vu, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc:2909:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_neon.cc-2910-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-160-void J400ToARGBRow_SSE2(const uint8_t* src_y, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:161:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-162-      "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-191-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:192:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-193-      "pcmpeqb   %%xmm5,%%xmm5                   \n"  // 0xff000000
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-229-void RAWToARGBRow_SSSE3(const uint8_t* src_raw, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:230:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-231-      "pcmpeqb   %%xmm5,%%xmm5                   \n"  // 0xff000000
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-268-void RAWToRGBARow_SSSE3(const uint8_t* src_raw, uint8_t* dst_rgba, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:269:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-270-      "pcmpeqb   %%xmm5,%%xmm5                   \n"  // 0x000000ff
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-308-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:309:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-310-      "movdqa     %3,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-338-void RGB565ToARGBRow_SSE2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:339:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-340-      "mov       $0x1080108,%%eax                \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-386-void ARGB1555ToARGBRow_SSE2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:387:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-388-      "mov       $0x1080108,%%eax                \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-437-void ARGB4444ToARGBRow_SSE2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:438:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-439-      "mov       $0xf0f0f0f,%%eax                \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-474-void ARGBToRGB24Row_SSSE3(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:475:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-476-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-513-void ARGBToRAWRow_SSSE3(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:514:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-515-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-556-void ARGBToRGB24Row_AVX2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:557:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-558-      "vbroadcastf128 %3,%%ymm6                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-616-void ARGBToRGB24Row_AVX512VBMI(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:617:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-618-      "vmovdqa    %3,%%ymm5                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-650-void ARGBToRAWRow_AVX2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:651:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-652-      "vbroadcastf128 %3,%%ymm6                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-695-void ARGBToRGB565Row_SSE2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:696:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-697-      "pcmpeqb   %%xmm3,%%xmm3                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-735-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:736:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-737-      "movd       %3,%%xmm6                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-783-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:784:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-785-      "vbroadcastss %3,%%xmm6                    \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-825-void ARGBToARGB1555Row_SSE2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:826:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-827-      "pcmpeqb   %%xmm4,%%xmm4                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-866-void ARGBToARGB4444Row_SSE2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:867:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-868-      "pcmpeqb   %%xmm4,%%xmm4                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-929-void ARGBToAR30Row_SSSE3(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:930:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-931-      "movdqa     %3,%%xmm2                     \n"  // shuffler for RB
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-968-void ABGRToAR30Row_SSSE3(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:969:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-970-      "movdqa     %3,%%xmm2                     \n"  // shuffler for RB
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1008-void ARGBToAR30Row_AVX2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1009:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1010-      "vbroadcastf128 %3,%%ymm2                  \n"  // shuffler for RB
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1045-void ABGRToAR30Row_AVX2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1046:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1047-      "vbroadcastf128 %3,%%ymm2                  \n"  // shuffler for RB
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1149-void ARGBToYRow_SSSE3(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1150:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1151-      "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1170-void ARGBToYJRow_SSSE3(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1171:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1172-      "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1188-void RGBAToYJRow_SSSE3(const uint8_t* src_rgba, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1189:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1190-      "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1208-void ARGBToYRow_AVX2(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1209:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1210-      "vbroadcastf128 %3,%%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1230-void ABGRToYRow_AVX2(const uint8_t* src_abgr, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1231:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1232-      "vbroadcastf128 %3,%%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1252-void ARGBToYJRow_AVX2(const uint8_t* src_argb, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1253:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1254-      "vbroadcastf128 %3,%%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1272-void RGBAToYJRow_AVX2(const uint8_t* src_rgba, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1273:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1274-      "vbroadcastf128 %3,%%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1295-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1296:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1297-      "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1364-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1365:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1366-      "vbroadcastf128 %5,%%ymm5                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1427-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1428:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1429-      "vbroadcastf128 %5,%%ymm5                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1490-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1491:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1492-      "vbroadcastf128 %5,%%ymm5                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1554-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1555:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1556-      "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1619-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1620:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1621-      "movdqa    %4,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1673-void BGRAToYRow_SSSE3(const uint8_t* src_bgra, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1674:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1675-      "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1694-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1695:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1696-      "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1753-void ABGRToYRow_SSSE3(const uint8_t* src_abgr, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1754:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1755-      "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1770-void RGBAToYRow_SSSE3(const uint8_t* src_rgba, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1771:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1772-      "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1791-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1792:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1793-      "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1854-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:1855:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-1856-      "movdqa    %5,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2115-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2116:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2117-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2144-                                 int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2145:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2146-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2190-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2191:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2192-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2219-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2220:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2221-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2254-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2255:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2256-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2284-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2285:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2286-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2321-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2322:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2323-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2356-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2357:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2358-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2384-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2385:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2386-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2412-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2413:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2414-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2440-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2441:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2442-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2469-                                int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2470:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2471-    YUVTORGB_SETUP(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2693-                               int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2694:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2695-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2727-                               int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2728:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2729-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2762-                               int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2763:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2764-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2802-                               int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2803:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2804-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2837-                               int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2838:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2839-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2879-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2880:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2881-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2918-                               int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2919:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2920-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2962-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2963:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2964-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2995-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:2996:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-2997-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3028-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3029:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3030-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3061-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3062:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3063-    YUVTORGB_SETUP_AVX2(yuvconstants)
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3088-void I400ToARGBRow_SSE2(const uint8_t* y_buf, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3089:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3090-      "mov       $0x4a354a35,%%eax               \n"  // 4a35 = 18997 = 1.164
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3135-void I400ToARGBRow_AVX2(const uint8_t* y_buf, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3136:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3137-      "mov        $0x4a354a35,%%eax              \n"  // 0488 = 1160 = 1.164 *
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3184-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3185:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3186-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3207-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3208:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3209-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3238-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3239:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3240-      "movdqa    %4,%%xmm1                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3266-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3267:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3268-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3292-  intptr_t temp_width = (intptr_t)(width);
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3293:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3294-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3317-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3318:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3319-      "vpcmpeqb   %%ymm5,%%ymm5,%%ymm5           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3355-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3356:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3357-      "pcmpeqb    %%xmm5,%%xmm5                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3392-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3393:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3394-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3425-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3426:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3427-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3463-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3464:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3465-    "vmovd      %4,%%xmm3                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3509-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3510:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3511-    "vmovd      %3,%%xmm3                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3547-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3548:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3549-    "movd      %3,%%xmm2                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3579-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3580:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3581-    "vmovd      %3,%%xmm2                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3618-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3619:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3620-    "movd      %3,%%xmm2                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3652-  // clang-format off
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3653:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3654-    "vmovd      %3,%%xmm2                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3720-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3721:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3722-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3815-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3816:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3817-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3875-void CopyRow_SSE2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3876:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3877-      "test       $0xf,%0                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3915-void CopyRow_AVX(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3916:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3917-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3939-  size_t width_tmp = (size_t)(width);
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3940:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3941-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3953-void ARGBCopyAlphaRow_SSE2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3954:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3955-      "pcmpeqb   %%xmm0,%%xmm0                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3988-void ARGBCopyAlphaRow_AVX2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:3989:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-3990-      "vpcmpeqb  %%ymm0,%%ymm0,%%ymm0            \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4018-                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4019:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4020-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4049-                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4050:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4051-      "vmovdqa    %3,%%ymm4                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4085-void ARGBCopyYToAlphaRow_SSE2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4086:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4087-      "pcmpeqb   %%xmm0,%%xmm0                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4122-void ARGBCopyYToAlphaRow_AVX2(const uint8_t* src, uint8_t* dst, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4123:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4124-      "vpcmpeqb  %%ymm0,%%ymm0,%%ymm0            \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4153-  const uint32_t v32 = v8 * 0x01010101u;  // Duplicate byte to all bytes.
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4154:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4155-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4164-  size_t width_tmp = (size_t)(width);
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4165:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4166-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4175-  size_t width_tmp = (size_t)(width);
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4176:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4177-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4187-void YUY2ToYRow_SSE2(const uint8_t* src_yuy2, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4188:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4189-      "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4215-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4216:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4217-      "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4254-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4255:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4256-      "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4286-void UYVYToYRow_SSE2(const uint8_t* src_uyvy, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4287:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4288-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4312-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4313:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4314-      "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4351-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4352:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4353-      "pcmpeqb   %%xmm5,%%xmm5                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4385-void YUY2ToYRow_AVX2(const uint8_t* src_yuy2, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4386:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4387-      "vpcmpeqb  %%ymm5,%%ymm5,%%ymm5            \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4415-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4416:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4417-      "vpcmpeqb  %%ymm5,%%ymm5,%%ymm5            \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4455-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4456:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4457-      "vpcmpeqb  %%ymm5,%%ymm5,%%ymm5            \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4490-void UYVYToYRow_AVX2(const uint8_t* src_uyvy, uint8_t* dst_y, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4491:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4492-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4517-                      int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4518:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4519-      "vpcmpeqb  %%ymm5,%%ymm5,%%ymm5            \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4557-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4558:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4559-      "vpcmpeqb   %%ymm5,%%ymm5,%%ymm5           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4602-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4603:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4604-      "pcmpeqb   %%xmm7,%%xmm7                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4690-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4691:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4692-      "pcmpeqb    %%xmm5,%%xmm5                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4742-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4743:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4744-      "vpcmpeqb   %%ymm5,%%ymm5,%%ymm5           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4802-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4803:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4804-      "pcmpeqb   %%xmm3,%%xmm3                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4850-                           int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4851:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4852-      "vbroadcastf128 %3,%%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4890-  uintptr_t alpha;
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4891:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4892-      // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4938-  uintptr_t alpha;
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:4939:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-4940-      "sub        %0,%1                          \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5000-void ARGBGrayRow_SSSE3(const uint8_t* src_argb, uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5001:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5002-      "movdqa    %3,%%xmm4                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5062-void ARGBSepiaRow_SSSE3(uint8_t* dst_argb, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5063:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5064-      "movdqa    %2,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5123-                              int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5124:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5125-      "movdqu    (%3),%%xmm5                     \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5188-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5189:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5190-      "movd      %2,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5239-                       uint32_t value) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5240:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5241-      "movd      %3,%%xmm2                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5275-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5276:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5277-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5314-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5315:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5316-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5357-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5358:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5359-      // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5385-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5386:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5387-      // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5413-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5414:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5415-      // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5441-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5442:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5443-      // 4 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5473-                    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5474:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5475-      "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5527-                    int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5528:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5529-      "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5580-                   int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5581:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5582-      "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5627-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5628:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5629-      "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5662-                     int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5663:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5664-      "sub       %0,%1                           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5710-                                  int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5711:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5712-      "pxor      %%xmm0,%%xmm0                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5790-                                    int count) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5791:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5792-      "movd      %5,%%xmm5                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5925-  intptr_t temp;
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:5926:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-5927-      "movq      (%3),%%xmm2                     \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6010-                          int source_y_fraction) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6011:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6012-      "sub       %1,%0                           \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6091-                         int source_y_fraction) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6092:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6093-      "cmp       $0x0,%3                         \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6166-                          int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6167:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6168-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6196-                         int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6197:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6198-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6227-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6228:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6229-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6263-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6264:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6265-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6299-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6300:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6301-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6338-                        int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6339:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6340-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6376-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6377:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6378-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6432-                            int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6433:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6434-      "vbroadcastf128 (%3),%%ymm4                \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6475-  scale *= kScaleBias;
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6476:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6477-      "movd        %3,%%xmm4                     \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6513-  scale *= kScaleBias;
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6514:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6515-      "vbroadcastss  %3, %%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6554-                       int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6555:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6556-      "vbroadcastss  %3, %%ymm4                  \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6589-void HalfFloat1Row_F16C(const uint16_t* src, uint16_t* dst, float, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6590:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6591-      "sub        %0,%1                          \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6620-  uintptr_t pixel_temp;
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6621:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6622-      // 1 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6653-  uintptr_t pixel_temp;
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6654:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6655-      // 1 pixel loop.
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6686-  uintptr_t table_temp;
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6687:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6688-      "movd      %6,%%xmm3                       \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6838-
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6839:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6840-      "vmovdqu     %5, %%ymm0 \n"  // init blend value
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6907-void SwapUVRow_SSSE3(const uint8_t* src_uv, uint8_t* dst_vu, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6908:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6909-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6933-void SwapUVRow_AVX2(const uint8_t* src_uv, uint8_t* dst_vu, int width) {
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc:6934:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/row_gcc.cc-6935-
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-28-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:29:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-30-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-49-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:50:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-51-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-70-                           int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:71:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-72-      // change the stride to row 2 pointer
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-99-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:100:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-101-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-119-  const uint8_t* src_ptr3 = src_ptr + src_stride * 3;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:120:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-121-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-152-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:153:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-154-      "1:                                                \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-170-                               int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:171:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-172-      "movi      v20.8b, #3                              \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-227-                               int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:228:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-229-      "movi      v20.8b, #3                              \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-280-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:281:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-282-      "ld1       {v3.16b}, [%3]                          \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-304-
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:305:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-306-      "ld1       {v29.8h}, [%5]                          \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-423-  ptrdiff_t tmp_src_stride = src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:424:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-425-      "ld1       {v30.8h}, [%4]                          \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-522-                      int src_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:523:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-524-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-561-  int64_t dx64 = (int64_t)dx;  // NOLINT
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:562:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-563-    "dup        v0.4s, %w3                     \n"  // x
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-624-  int y_fraction = 256 - source_y_fraction;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:625:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-626-      "cmp          %w4, #0                      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-708-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:709:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-710-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-729-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:730:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-731-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-751-                               int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:752:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-753-      // change the stride to row 2 pointer
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-788-  (void)src_stride;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:789:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-790-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-813-                                  int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:814:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-815-      "add        %1, %1, %0                     \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-866-  int64_t tmp64;
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:867:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-868-      "1:                                        \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-912-  int64_t dx64 = (int64_t)dx;  // NOLINT
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:913:  asm volatile (
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-914-    "dup        v0.4s, %w3                     \n"  // x
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-972-                              int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:973:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-974-      // change the stride to row 2 pointer
##############################################
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-1002-                         int dst_width) {
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc:1003:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/source/scale_neon64.cc-1004-      "add        %1, %0, %1, lsl #1             \n"  // ptr + stide * 2
##############################################
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-317-  orig_pixels[5][3] = 224u;
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc:318:  // Do 16 to test asm version.
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-319-  ARGBGray(&orig_pixels[0][0], 0, 0, 0, 16, 1);
##############################################
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-389-  orig_pixels[5][3] = 224u;
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc:390:  // Do 16 to test asm version.
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-391-  ARGBGrayTo(&orig_pixels[0][0], 0, &gray_pixels[0][0], 0, 16, 1);
##############################################
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-474-  orig_pixels[5][3] = 224u;
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc:475:  // Do 16 to test asm version.
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-476-  ARGBSepia(&orig_pixels[0][0], 0, 0, 0, 16, 1);
##############################################
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-544-  orig_pixels[3][3] = 224u;
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc:545:  // Do 16 to test asm version.
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-546-  ARGBColorMatrix(&orig_pixels[0][0], 0, &dst_pixels_opt[0][0], 0,
##############################################
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-618-  orig_pixels[3][3] = 224u;
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc:619:  // Do 16 to test asm version.
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-620-  RGBColorMatrix(&orig_pixels[0][0], 0, &kRGBToSepia[0], 0, 0, 16, 1);
##############################################
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-673-  orig_pixels[3][3] = 3u;
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc:674:  // Do 16 to test asm version.
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-675-  ARGBColorTable(&orig_pixels[0][0], 0, &kARGBTable[0], 0, 0, 16, 1);
##############################################
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-729-  orig_pixels[3][3] = 3u;
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc:730:  // Do 16 to test asm version.
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-731-  RGBColorTable(&orig_pixels[0][0], 0, &kARGBTable[0], 0, 0, 16, 1);
##############################################
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-2005-  orig_pixels[4][3] = 224u;
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc:2006:  // Do 16 to test asm version.
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-2007-  ARGBPolynomial(&orig_pixels[0][0], 0, &dst_pixels_opt[0][0], 0,
##############################################
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-2266-  orig_pixels[3][3] = 224u;
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc:2267:  // Do 16 to test asm version.
chromium-84.0.4147.105/third_party/libyuv/unit_test/planar_test.cc-2268-  ARGBLumaColorTable(&orig_pixels[0][0], 0, &dst_pixels_opt[0][0], 0,
##############################################
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-44-  volatile uint32_t sse;
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc:45:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-46-      "vmov.u8    q7, #0                         \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-79-  volatile uint32_t sse;
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc:80:  asm volatile(
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-81-      "eor        v16.16b, v16.16b, v16.16b      \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-112-                                                      int /*count*/) {
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc:113:  __asm {
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-114-    mov        eax, [esp + 4]  // src_a
##############################################
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-152-  uint32_t sse;
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc:153:  asm volatile(  // NOLINT
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-154-      "pxor      %%xmm0,%%xmm0                   \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-199-static __inline void __cpuid(int cpu_info[4], int info_type) {
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc:200:  asm volatile(  // NOLINT
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-201-      "mov %%ebx, %%edi                          \n"
##############################################
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-210-static __inline void __cpuid(int cpu_info[4], int info_type) {
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc:211:  asm volatile(  // NOLINT
chromium-84.0.4147.105/third_party/libyuv/util/psnr.cc-212-      "cpuid                                     \n"
##############################################
chromium-84.0.4147.105/third_party/web-animations-js/sources/web-animations-next-lite.min.js-14-
chromium-84.0.4147.105/third_party/web-animations-js/sources/web-animations-next-lite.min.js:15:!function(a,b){var c={},d={},e={},f=null;!function(a,b){function c(a){if("number"==typeof a)return a;var b={};for(var c in a)b[c]=a[c];return b}function d(){this._delay=0,this._endDelay=0,this._fill="none",this._iterationStart=0,this._iterations=1,this._duration=0,this._playbackRate=1,this._direction="normal",this._easing="linear",this._easingFunction=x}function e(){return a.isDeprecated("Invalid timing inputs","2016-03-02","TypeError exceptions will be thrown instead.",!0)}function f(b,c,e){var f=new d;return c&&(f.fill="both",f.duration="auto"),"number"!=typeof b||isNaN(b)?void 0!==b&&Object.getOwnPropertyNames(b).forEach(function(c){if("auto"!=b[c]){if(("number"==typeof f[c]||"duration"==c)&&("number"!=typeof b[c]||isNaN(b[c])))return;if("fill"==c&&v.indexOf(b[c])==-1)return;if("direction"==c&&w.indexOf(b[c])==-1)return;if("playbackRate"==c&&1!==b[c]&&a.isDeprecated("AnimationEffectTiming.playbackRate","2014-11-28","Use Animation.playbackRate instead."))return;f[c]=b[c]}}):f.duration=b,f}function g(a){return"number"==typeof a&&(a=isNaN(a)?{duration:0}:{duration:a}),a}function h(b,c){return b=a.numericTimingToObject(b),f(b,c)}function i(a,b,c,d){return a<0||a>1||c<0||c>1?x:function(e){function f(a,b,c){return 3*a*(1-c)*(1-c)*c+3*b*(1-c)*c*c+c*c*c}if(e<=0){var g=0;return a>0?g=b/a:!b&&c>0&&(g=d/c),g*e}if(e>=1){var h=0;return c<1?h=(d-1)/(c-1):1==c&&a<1&&(h=(b-1)/(a-1)),1+h*(e-1)}for(var i=0,j=1;i<j;){var k=(i+j)/2,l=f(a,c,k);if(Math.abs(e-l)<1e-5)return f(b,d,k);l<e?i=k:j=k}return f(b,d,k)}}function j(a,b){return function(c){if(c>=1)return 1;var d=1/a;return c+=b*d,c-c%d}}function k(a){C||(C=document.createElement("div").style),C.animationTimingFunction="",C.animationTimingFunction=a;var b=C.animationTimingFunction;if(""==b&&e())throw new TypeError(a+" is not a valid value for easing");return b}function l(a){if("linear"==a)return x;var b=E.exec(a);if(b)return i.apply(this,b.slice(1).map(Number));var c=F.exec(a);if(c)return j(Number(c[1]),{start:y,middle:z,end:A}[c[2]]);var d=B[a];return d?d:x}function m(a){return Math.abs(n(a)/a.playbackRate)}function n(a){return 0===a.duration||0===a.iterations?0:a.duration*a.iterations}function o(a,b,c){if(null==b)return G;var d=c.delay+a+c.endDelay;return b<Math.min(c.delay,d)?H:b>=Math.min(c.delay+a,d)?I:J}function p(a,b,c,d,e){switch(d){case H:return"backwards"==b||"both"==b?0:null;case J:return c-e;case I:return"forwards"==b||"both"==b?a:null;case G:return null}}function q(a,b,c,d,e){var f=e;return 0===a?b!==H&&(f+=c):f+=d/a,f}function r(a,b,c,d,e,f){var g=a===1/0?b%1:a%1;return 0!==g||c!==I||0===d||0===e&&0!==f||(g=1),g}function s(a,b,c,d){return a===I&&b===1/0?1/0:1===c?Math.floor(d)-1:Math.floor(d)}function t(a,b,c){var d=a;if("normal"!==a&&"reverse"!==a){var e=b;"alternate-reverse"===a&&(e+=1),d="normal",e!==1/0&&e%2!==0&&(d="reverse")}return"normal"===d?c:1-c}function u(a,b,c){var d=o(a,b,c),e=p(a,c.fill,b,d,c.delay);if(null===e)return null;var f=q(c.duration,d,c.iterations,e,c.iterationStart),g=r(f,c.iterationStart,d,c.iterations,e,c.duration),h=s(d,c.iterations,g,f),i=t(c.direction,h,g);return c._easingFunction(i)}var v="backwards|forwards|both|none".split("|"),w="reverse|alternate|alternate-reverse".split("|"),x=function(a){return a};d.prototype={_setMember:function(b,c){this["_"+b]=c,this._effect&&(this._effect._timingInput[b]=c,this._effect._timing=a.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=a.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(a){this._setMember("delay",a)},get delay(){return this._delay},set endDelay(a){this._setMember("endDelay",a)},get endDelay(){return this._endDelay},set fill(a){this._setMember("fill",a)},get fill(){return this._fill},set iterationStart(a){if((isNaN(a)||a<0)&&e())throw new TypeError("iterationStart must be a non-negative number, received: "+timing.iterationStart);this._setMember("iterationStart",a)},get iterationStart(){return this._iterationStart},set duration(a){if("auto"!=a&&(isNaN(a)||a<0)&&e())throw new TypeError("duration must be non-negative or auto, received: "+a);this._setMember("duration",a)},get duration(){return this._duration},set direction(a){this._setMember("direction",a)},get direction(){return this._direction},set easing(a){this._easingFunction=l(k(a)),this._setMember("easing",a)},get easing(){return this._easing},set iterations(a){if((isNaN(a)||a<0)&&e())throw new TypeError("iterations must be non-negative, received: "+a);this._setMember("iterations",a)},get iterations(){return this._iterations}};var y=1,z=.5,A=0,B={ease:i(.25,.1,.25,1),"ease-in":i(.42,0,1,1),"ease-out":i(0,0,.58,1),"ease-in-out":i(.42,0,.58,1),"step-start":j(1,y),"step-middle":j(1,z),"step-end":j(1,A)},C=null,D="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",E=new RegExp("cubic-bezier\\("+D+","+D+","+D+","+D+"\\)"),F=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/,G=0,H=1,I=2,J=3;a.cloneTimingInput=c,a.makeTiming=f,a.numericTimingToObject=g,a.normalizeTimingInput=h,a.calculateActiveDuration=m,a.calculateIterationProgress=u,a.calculatePhase=o,a.normalizeEasing=k,a.parseEasingFunction=l}(c,f),function(a,b){function c(a,b){return a in k?k[a][b]||b:b}function d(a){return"display"===a||0===a.lastIndexOf("animation",0)||0===a.lastIndexOf("transition",0)}function e(a,b,e){if(!d(a)){var f=h[a];if(f){i.style[a]=b;for(var g in f){var j=f[g],k=i.style[j];e[j]=c(j,k)}}else e[a]=c(a,b)}}function f(a){var b=[];for(var c in a)if(!(c in["easing","offset","composite"])){var d=a[c];Array.isArray(d)||(d=[d]);for(var e,f=d.length,g=0;g<f;g++)e={},"offset"in a?e.offset=a.offset:1==f?e.offset=1:e.offset=g/(f-1),"easing"in a&&(e.easing=a.easing),"composite"in a&&(e.composite=a.composite),e[c]=d[g],b.push(e)}return b.sort(function(a,b){return a.offset-b.offset}),b}function g(b){function c(){var a=d.length;null==d[a-1].offset&&(d[a-1].offset=1),a>1&&null==d[0].offset&&(d[0].offset=0);for(var b=0,c=d[0].offset,e=1;e<a;e++){var f=d[e].offset;if(null!=f){for(var g=1;g<e-b;g++)d[b+g].offset=c+(f-c)*g/(e-b);b=e,c=f}}}if(null==b)return[];window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||(b=f(b));for(var d=b.map(function(b){var c={};for(var d in b){var f=b[d];if("offset"==d){if(null!=f){if(f=Number(f),!isFinite(f))throw new TypeError("Keyframe offsets must be numbers.");if(f<0||f>1)throw new TypeError("Keyframe offsets must be between 0 and 1.")}}else if("composite"==d){if("add"==f||"accumulate"==f)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"add compositing is not supported"};if("replace"!=f)throw new TypeError("Invalid composite mode "+f+".")}else f="easing"==d?a.normalizeEasing(f):""+f;e(d,f,c)}return void 0==c.offset&&(c.offset=null),void 0==c.easing&&(c.easing="linear"),c}),g=!0,h=-(1/0),i=0;i<d.length;i++){var j=d[i].offset;if(null!=j){if(j<h)throw new TypeError("Keyframes are not loosely sorted by offset. Sort or specify offsets.");h=j}else g=!1}return d=d.filter(function(a){return a.offset>=0&&a.offset<=1}),g||c(),d}var h={background:["backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","backgroundAttachment","backgroundOrigin","backgroundClip","backgroundColor"],border:["borderTopColor","borderTopStyle","borderTopWidth","borderRightColor","borderRightStyle","borderRightWidth","borderBottomColor","borderBottomStyle","borderBottomWidth","borderLeftColor","borderLeftStyle","borderLeftWidth"],borderBottom:["borderBottomWidth","borderBottomStyle","borderBottomColor"],borderColor:["borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],borderLeft:["borderLeftWidth","borderLeftStyle","borderLeftColor"],borderRadius:["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],borderRight:["borderRightWidth","borderRightStyle","borderRightColor"],borderTop:["borderTopWidth","borderTopStyle","borderTopColor"],borderWidth:["borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth"],flex:["flexGrow","flexShrink","flexBasis"],font:["fontFamily","fontSize","fontStyle","fontVariant","fontWeight","lineHeight"],margin:["marginTop","marginRight","marginBottom","marginLeft"],outline:["outlineColor","outlineStyle","outlineWidth"],padding:["paddingTop","paddingRight","paddingBottom","paddingLeft"]},i=document.createElementNS("http://www.w3.org/1999/xhtml","div"),j={thin:"1px",medium:"3px",thick:"5px"},k={borderBottomWidth:j,borderLeftWidth:j,borderRightWidth:j,borderTopWidth:j,fontSize:{"xx-small":"60%","x-small":"75%",small:"89%",medium:"100%",large:"120%","x-large":"150%","xx-large":"200%"},fontWeight:{normal:"400",bold:"700"},outlineWidth:j,textShadow:{none:"0px 0px 0px transparent"},boxShadow:{none:"0px 0px 0px 0px transparent"}};a.convertToArrayForm=f,a.normalizeKeyframes=g}(c,f),function(a){var b={};a.isDeprecated=function(a,c,d,e){var f=e?"are":"is",g=new Date,h=new Date(c);return h.setMonth(h.getMonth()+3),!(g<h&&(a in b||console.warn("Web Animations: "+a+" "+f+" deprecated and will stop working on "+h.toDateString()+". "+d),b[a]=!0,1))},a.deprecated=function(b,c,d,e){var f=e?"are":"is";if(a.isDeprecated(b,c,d,e))throw new Error(b+" "+f+" no longer supported. "+d)}}(c),function(){if(document.documentElement.animate){var a=document.documentElement.animate([],0),b=!0;if(a&&(b=!1,"play|currentTime|pause|reverse|playbackRate|cancel|finish|startTime|playState".split("|").forEach(function(c){void 0===a[c]&&(b=!0)})),!b)return}!function(a,b,c){function d(a){for(var b={},c=0;c<a.length;c++)for(var d in a[c])if("offset"!=d&&"easing"!=d&&"composite"!=d){var e={offset:a[c].offset,easing:a[c].easing,value:a[c][d]};b[d]=b[d]||[],b[d].push(e)}for(var f in b){var g=b[f];if(0!=g[0].offset||1!=g[g.length-1].offset)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"Partial keyframes are not supported"}}return b}function e(c){var d=[];for(var e in c)for(var f=c[e],g=0;g<f.length-1;g++){var h=g,i=g+1,j=f[h].offset,k=f[i].offset,l=j,m=k;0==g&&(l=-(1/0),0==k&&(i=h)),g==f.length-2&&(m=1/0,1==j&&(h=i)),d.push({applyFrom:l,applyTo:m,startOffset:f[h].offset,endOffset:f[i].offset,easingFunction:a.parseEasingFunction(f[h].easing),property:e,interpolation:b.propertyInterpolation(e,f[h].value,f[i].value)})}return d.sort(function(a,b){return a.startOffset-b.startOffset}),d}b.convertEffectInput=function(c){var f=a.normalizeKeyframes(c),g=d(f),h=e(g);return function(a,c){if(null!=c)h.filter(function(a){return c>=a.applyFrom&&c<a.applyTo}).forEach(function(d){var e=c-d.startOffset,f=d.endOffset-d.startOffset,g=0==f?0:d.easingFunction(e/f);b.apply(a,d.property,d.interpolation(g))});else for(var d in g)"offset"!=d&&"easing"!=d&&"composite"!=d&&b.clear(a,d)}}}(c,d,f),function(a,b,c){function d(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}function e(a,b,c){h[c]=h[c]||[],h[c].push([a,b])}function f(a,b,c){for(var f=0;f<c.length;f++){var g=c[f];e(a,b,d(g))}}function g(c,e,f){var g=c;/-/.test(c)&&!a.isDeprecated("Hyphenated property names","2016-03-22","Use camelCase instead.",!0)&&(g=d(c)),"initial"!=e&&"initial"!=f||("initial"==e&&(e=i[g]),"initial"==f&&(f=i[g]));for(var j=e==f?[]:h[g],k=0;j&&k<j.length;k++){var l=j[k][0](e),m=j[k][0](f);if(void 0!==l&&void 0!==m){var n=j[k][1](l,m);if(n){var o=b.Interpolation.apply(null,n);return function(a){return 0==a?e:1==a?f:o(a)}}}}return b.Interpolation(!1,!0,function(a){return a?f:e})}var h={};b.addPropertiesHandler=f;var i={backgroundColor:"transparent",backgroundPosition:"0% 0%",borderBottomColor:"currentColor",borderBottomLeftRadius:"0px",borderBottomRightRadius:"0px",borderBottomWidth:"3px",borderLeftColor:"currentColor",borderLeftWidth:"3px",borderRightColor:"currentColor",borderRightWidth:"3px",borderSpacing:"2px",borderTopColor:"currentColor",borderTopLeftRadius:"0px",borderTopRightRadius:"0px",borderTopWidth:"3px",bottom:"auto",clip:"rect(0px, 0px, 0px, 0px)",color:"black",fontSize:"100%",fontWeight:"400",height:"auto",left:"auto",letterSpacing:"normal",lineHeight:"120%",marginBottom:"0px",marginLeft:"0px",marginRight:"0px",marginTop:"0px",maxHeight:"none",maxWidth:"none",minHeight:"0px",minWidth:"0px",opacity:"1.0",outlineColor:"invert",outlineOffset:"0px",outlineWidth:"3px",paddingBottom:"0px",paddingLeft:"0px",paddingRight:"0px",paddingTop:"0px",right:"auto",textIndent:"0px",textShadow:"0px 0px 0px transparent",top:"auto",transform:"",verticalAlign:"0px",visibility:"visible",width:"auto",wordSpacing:"normal",zIndex:"auto"};b.propertyInterpolation=g}(c,d,f),function(a,b,c){function d(b){var c=a.calculateActiveDuration(b),d=function(d){return a.calculateIterationProgress(c,d,b)};return d._totalDuration=b.delay+c+b.endDelay,d}b.KeyframeEffect=function(c,e,f,g){var h,i=d(a.normalizeTimingInput(f)),j=b.convertEffectInput(e),k=function(){j(c,h)};return k._update=function(a){return h=i(a),null!==h},k._clear=function(){j(c,null)},k._hasSameTarget=function(a){return c===a},k._target=c,k._totalDuration=i._totalDuration,k._id=g,k},b.NullEffect=function(a){var b=function(){a&&(a(),a=null)};return b._update=function(){return null},b._totalDuration=0,b._hasSameTarget=function(){return!1},b}}(c,d,f),function(a,b){a.apply=function(b,c,d){b.style[a.propertyName(c)]=d},a.clear=function(b,c){b.style[a.propertyName(c)]=""}}(d,f),function(a){window.Element.prototype.animate=function(b,c){var d="";return c&&c.id&&(d=c.id),a.timeline._play(a.KeyframeEffect(this,b,c,d))}}(d),function(a,b){function c(a,b,d){if("number"==typeof a&&"number"==typeof b)return a*(1-d)+b*d;if("boolean"==typeof a&&"boolean"==typeof b)return d<.5?a:b;if(a.length==b.length){for(var e=[],f=0;f<a.length;f++)e.push(c(a[f],b[f],d));return e}throw"Mismatched interpolation arguments "+a+":"+b}a.Interpolation=function(a,b,d){return function(e){return d(c(a,b,e))}}}(d,f),function(a,b,c){a.sequenceNumber=0;var d=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type="finish",this.bubbles=!1,this.cancelable=!1,this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()};b.Animation=function(b){this.id="",b&&b._id&&(this.id=b._id),this._sequenceNumber=a.sequenceNumber++,this._currentTime=0,this._startTime=null,this._paused=!1,this._playbackRate=1,this._inTimeline=!0,this._finishedFlag=!0,this.onfinish=null,this._finishHandlers=[],this._effect=b,this._inEffect=this._effect._update(0),this._idle=!0,this._currentTimePending=!1},b.Animation.prototype={_ensureAlive:function(){this.playbackRate<0&&0===this.currentTime?this._inEffect=this._effect._update(-1):this._inEffect=this._effect._update(this.currentTime),this._inTimeline||!this._inEffect&&this._finishedFlag||(this._inTimeline=!0,b.timeline._animations.push(this))},_tickCurrentTime:function(a,b){a!=this._currentTime&&(this._currentTime=a,this._isFinished&&!b&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(a){a=+a,isNaN(a)||(b.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-a/this._playbackRate),this._currentTimePending=!1,this._currentTime!=a&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(a,!0),b.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(a){a=+a,isNaN(a)||this._paused||this._idle||(this._startTime=a,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),b.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(a){if(a!=this._playbackRate){var c=this.currentTime;this._playbackRate=a,this._startTime=null,"paused"!=this.playState&&"idle"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)),null!=c&&(this.currentTime=c)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?"idle":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?"pending":this._paused?"paused":this._isFinished?"finished":"running"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException("Unable to rewind negative playback rate animation with infinite duration","InvalidStateError");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),b.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,b.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._isFinished=!0,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),b.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(a,b){"function"==typeof b&&"finish"==a&&this._finishHandlers.push(b)},removeEventListener:function(a,b){if("finish"==a){var c=this._finishHandlers.indexOf(b);c>=0&&this._finishHandlers.splice(c,1)}},_fireEvents:function(a){if(this._isFinished){if(!this._finishedFlag){var b=new d(this,this._currentTime,a),c=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){c.forEach(function(a){a.call(b.target,b)})},0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(a,b){this._idle||this._paused||(null==this._startTime?b&&(this.startTime=a-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((a-this._startTime)*this.playbackRate)),b&&(this._currentTimePending=!1,this._fireEvents(a))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var a=this._effect._target;return a._activeAnimations||(a._activeAnimations=[]),a._activeAnimations},_markTarget:function(){var a=this._targetAnimations();a.indexOf(this)===-1&&a.push(this)},_unmarkTarget:function(){var a=this._targetAnimations(),b=a.indexOf(this);b!==-1&&a.splice(b,1)}}}(c,d,f),function(a,b,c){function d(a){var b=j;j=[],a<q.currentTime&&(a=q.currentTime),q._animations.sort(e),q._animations=h(a,!0,q._animations)[0],b.forEach(function(b){b[1](a)}),g(),l=void 0}function e(a,b){return a._sequenceNumber-b._sequenceNumber}function f(){this._animations=[],this.currentTime=window.performance&&performance.now?performance.now():0}function g(){o.forEach(function(a){a()}),o.length=0}function h(a,c,d){p=!0,n=!1;var e=b.timeline;e.currentTime=a,m=!1;var f=[],g=[],h=[],i=[];return d.forEach(function(b){b._tick(a,c),b._inEffect?(g.push(b._effect),b._markTarget()):(f.push(b._effect),b._unmarkTarget()),b._needsTick&&(m=!0);var d=b._inEffect||b._needsTick;b._inTimeline=d,d?h.push(b):i.push(b)}),o.push.apply(o,f),o.push.apply(o,g),m&&requestAnimationFrame(function(){}),p=!1,[h,i]}var i=window.requestAnimationFrame,j=[],k=0;window.requestAnimationFrame=function(a){var b=k++;return 0==j.length&&i(d),j.push([b,a]),b},window.cancelAnimationFrame=function(a){j.forEach(function(b){b[0]==a&&(b[1]=function(){})})},f.prototype={_play:function(c){c._timing=a.normalizeTimingInput(c.timing);var d=new b.Animation(c);return d._idle=!1,d._timeline=this,this._animations.push(d),b.restart(),b.applyDirtiedAnimation(d),d}};var l=void 0,m=!1,n=!1;b.restart=function(){return m||(m=!0,requestAnimationFrame(function(){}),n=!0),n},b.applyDirtiedAnimation=function(a){if(!p){a._markTarget();var c=a._targetAnimations();c.sort(e);var d=h(b.timeline.currentTime,!1,c.slice())[1];d.forEach(function(a){var b=q._animations.indexOf(a);b!==-1&&q._animations.splice(b,1)}),g()}};var o=[],p=!1,q=new f;b.timeline=q}(c,d,f),function(a){function b(a,b){var c=a.exec(b);if(c)return c=a.ignoreCase?c[0].toLowerCase():c[0],[c,b.substr(c.length)]}function c(a,b){b=b.replace(/^\s*/,"");var c=a(b);if(c)return[c[0],c[1].replace(/^\s*/,"")]}function d(a,d,e){a=c.bind(null,a);for(var f=[];;){var g=a(e);if(!g)return[f,e];if(f.push(g[0]),e=g[1],g=b(d,e),!g||""==g[1])return[f,e];e=g[1]}}function e(a,b){for(var c=0,d=0;d<b.length&&(!/\s|,/.test(b[d])||0!=c);d++)if("("==b[d])c++;else if(")"==b[d]&&(c--,0==c&&d++,c<=0))break;var e=a(b.substr(0,d));return void 0==e?void 0:[e,b.substr(d)]}function f(a,b){for(var c=a,d=b;c&&d;)c>d?c%=d:d%=c;return c=a*b/(c+d)}function g(a){return function(b){var c=a(b);return c&&(c[0]=void 0),c}}function h(a,b){return function(c){var d=a(c);return d?d:[b,c]}}function i(b,c){for(var d=[],e=0;e<b.length;e++){var f=a.consumeTrimmed(b[e],c);if(!f||""==f[0])return;void 0!==f[0]&&d.push(f[0]),c=f[1]}if(""==c)return d}function j(a,b,c,d,e){for(var g=[],h=[],i=[],j=f(d.length,e.length),k=0;k<j;k++){var l=b(d[k%d.length],e[k%e.length]);if(!l)return;g.push(l[0]),h.push(l[1]),i.push(l[2])}return[g,h,function(b){var d=b.map(function(a,b){return i[b](a)}).join(c);return a?a(d):d}]}function k(a,b,c){for(var d=[],e=[],f=[],g=0,h=0;h<c.length;h++)if("function"==typeof c[h]){var i=c[h](a[g],b[g++]);d.push(i[0]),e.push(i[1]),f.push(i[2])}else!function(a){d.push(!1),e.push(!1),f.push(function(){return c[a]})}(h);return[d,e,function(a){for(var b="",c=0;c<a.length;c++)b+=f[c](a[c]);return b}]}a.consumeToken=b,a.consumeTrimmed=c,a.consumeRepeated=d,a.consumeParenthesised=e,a.ignore=g,a.optional=h,a.consumeList=i,a.mergeNestedRepeated=j.bind(null,null),a.mergeWrappedNestedRepeated=j,a.mergeList=k}(d),function(a){function b(b){function c(b){var c=a.consumeToken(/^inset/i,b);if(c)return d.inset=!0,c;var c=a.consumeLengthOrPercent(b);if(c)return d.lengths.push(c[0]),c;var c=a.consumeColor(b);return c?(d.color=c[0],c):void 0}var d={inset:!1,lengths:[],color:null},e=a.consumeRepeated(c,/^/,b);if(e&&e[0].length)return[d,e[1]]}function c(c){var d=a.consumeRepeated(b,/^,/,c);if(d&&""==d[1])return d[0]}function d(b,c){for(;b.lengths.length<Math.max(b.lengths.length,c.lengths.length);)b.lengths.push({px:0});for(;c.lengths.length<Math.max(b.lengths.length,c.lengths.length);)c.lengths.push({px:0});if(b.inset==c.inset&&!!b.color==!!c.color){for(var d,e=[],f=[[],0],g=[[],0],h=0;h<b.lengths.length;h++){var i=a.mergeDimensions(b.lengths[h],c.lengths[h],2==h);f[0].push(i[0]),g[0].push(i[1]),e.push(i[2])}if(b.color&&c.color){var j=a.mergeColors(b.color,c.color);f[1]=j[0],g[1]=j[1],d=j[2]}return[f,g,function(a){for(var c=b.inset?"inset ":" ",f=0;f<e.length;f++)c+=e[f](a[0][f])+" ";return d&&(c+=d(a[1])),c}]}}function e(b,c,d,e){function f(a){return{inset:a,color:[0,0,0,0],lengths:[{px:0},{px:0},{px:0},{px:0}]}}for(var g=[],h=[],i=0;i<d.length||i<e.length;i++){var j=d[i]||f(e[i].inset),k=e[i]||f(d[i].inset);g.push(j),h.push(k)}return a.mergeNestedRepeated(b,c,g,h)}var f=e.bind(null,d,", ");a.addPropertiesHandler(c,f,["box-shadow","text-shadow"])}(d),function(a,b){function c(a){return a.toFixed(3).replace(".000","")}function d(a,b,c){return Math.min(b,Math.max(a,c))}function e(a){if(/^\s*[-+]?(\d*\.)?\d+\s*$/.test(a))return Number(a)}function f(a,b){return[a,b,c]}function g(a,b){if(0!=a)return i(0,1/0)(a,b)}function h(a,b){return[a,b,function(a){return Math.round(d(1,1/0,a))}]}function i(a,b){return function(e,f){return[e,f,function(e){return c(d(a,b,e))}]}}function j(a,b){return[a,b,Math.round]}a.clamp=d,a.addPropertiesHandler(e,i(0,1/0),["border-image-width","line-height"]),a.addPropertiesHandler(e,i(0,1),["opacity","shape-image-threshold"]),a.addPropertiesHandler(e,g,["flex-grow","flex-shrink"]),a.addPropertiesHandler(e,h,["orphans","widows"]),a.addPropertiesHandler(e,j,["z-index"]),a.parseNumber=e,a.mergeNumbers=f,a.numberToString=c}(d,f),function(a,b){function c(a,b){if("visible"==a||"visible"==b)return[0,1,function(c){return c<=0?a:c>=1?b:"visible"}]}a.addPropertiesHandler(String,c,["visibility"])}(d),function(a,b){function c(a){a=a.trim(),f.fillStyle="#000",f.fillStyle=a;var b=f.fillStyle;if(f.fillStyle="#fff",f.fillStyle=a,b==f.fillStyle){f.fillRect(0,0,1,1);var c=f.getImageData(0,0,1,1).data;f.clearRect(0,0,1,1);var d=c[3]/255;return[c[0]*d,c[1]*d,c[2]*d,d]}}function d(b,c){return[b,c,function(b){function c(a){return Math.max(0,Math.min(255,a))}if(b[3])for(var d=0;d<3;d++)b[d]=Math.round(c(b[d]/b[3]));return b[3]=a.numberToString(a.clamp(0,1,b[3])),"rgba("+b.join(",")+")"}]}var e=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");e.width=e.height=1;var f=e.getContext("2d");a.addPropertiesHandler(c,d,["background-color","border-bottom-color","border-left-color","border-right-color","border-top-color","color","outline-color","text-decoration-color"]),a.consumeColor=a.consumeParenthesised.bind(null,c),a.mergeColors=d}(d,f),function(a,b){function c(a,b){if(b=b.trim().toLowerCase(),"0"==b&&"px".search(a)>=0)return{px:0};if(/^[^(]*$|^calc/.test(b)){b=b.replace(/calc\(/g,"(");var c={};b=b.replace(a,function(a){return c[a]=null,"U"+a});for(var d="U("+a.source+")",e=b.replace(/[-+]?(\d*\.)?\d+/g,"N").replace(new RegExp("N"+d,"g"),"D").replace(/\s[+-]\s/g,"O").replace(/\s/g,""),f=[/N\*(D)/g,/(N|D)[*\/]N/g,/(N|D)O\1/g,/\((N|D)\)/g],g=0;g<f.length;)f[g].test(e)?(e=e.replace(f[g],"$1"),g=0):g++;if("D"==e){for(var h in c){var i=eval(b.replace(new RegExp("U"+h,"g"),"").replace(new RegExp(d,"g"),"*0"));if(!isFinite(i))return;c[h]=i}return c}}}function d(a,b){return e(a,b,!0)}function e(b,c,d){var e,f=[];for(e in b)f.push(e);for(e in c)f.indexOf(e)<0&&f.push(e);return b=f.map(function(a){return b[a]||0}),c=f.map(function(a){return c[a]||0}),[b,c,function(b){var c=b.map(function(c,e){return 1==b.length&&d&&(c=Math.max(c,0)),a.numberToString(c)+f[e]}).join(" + ");return b.length>1?"calc("+c+")":c}]}var f="px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc",g=c.bind(null,new RegExp(f,"g")),h=c.bind(null,new RegExp(f+"|%","g")),i=c.bind(null,/deg|rad|grad|turn/g);a.parseLength=g,a.parseLengthOrPercent=h,a.consumeLengthOrPercent=a.consumeParenthesised.bind(null,h),a.parseAngle=i,a.mergeDimensions=e;var j=a.consumeParenthesised.bind(null,g),k=a.consumeRepeated.bind(void 0,j,/^/),l=a.consumeRepeated.bind(void 0,k,/^,/);a.consumeSizePairList=l;var m=function(a){var b=l(a);if(b&&""==b[1])return b[0]},n=a.mergeNestedRepeated.bind(void 0,d," "),o=a.mergeNestedRepeated.bind(void 0,n,",");a.mergeNonNegativeSizePair=n,a.addPropertiesHandler(m,o,["background-size"]),a.addPropertiesHandler(h,d,["border-bottom-width","border-image-width","border-left-width","border-right-width","border-top-width","flex-basis","font-size","height","line-height","max-height","max-width","outline-width","width"]),a.addPropertiesHandler(h,e,["border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","bottom","left","letter-spacing","margin-bottom","margin-left","margin-right","margin-top","min-height","min-width","outline-offset","padding-bottom","padding-left","padding-right","padding-top","perspective","right","shape-margin","text-indent","top","vertical-align","word-spacing"])}(d,f),function(a,b){function c(b){return a.consumeLengthOrPercent(b)||a.consumeToken(/^auto/,b)}function d(b){var d=a.consumeList([a.ignore(a.consumeToken.bind(null,/^rect/)),a.ignore(a.consumeToken.bind(null,/^\(/)),a.consumeRepeated.bind(null,c,/^,/),a.ignore(a.consumeToken.bind(null,/^\)/))],b);if(d&&4==d[0].length)return d[0]}function e(b,c){return"auto"==b||"auto"==c?[!0,!1,function(d){var e=d?b:c;if("auto"==e)return"auto";var f=a.mergeDimensions(e,e);return f[2](f[0])}]:a.mergeDimensions(b,c)}function f(a){return"rect("+a+")"}var g=a.mergeWrappedNestedRepeated.bind(null,f,e,", ");a.parseBox=d,a.mergeBoxes=g,a.addPropertiesHandler(d,g,["clip"])}(d,f),function(a,b){function c(a){return function(b){var c=0;return a.map(function(a){return a===k?b[c++]:a})}}function d(a){return a}function e(b){if(b=b.toLowerCase().trim(),"none"==b)return[];for(var c,d=/\s*(\w+)\(([^)]*)\)/g,e=[],f=0;c=d.exec(b);){if(c.index!=f)return;f=c.index+c[0].length;var g=c[1],h=n[g];if(!h)return;var i=c[2].split(","),j=h[0];if(j.length<i.length)return;for(var k=[],o=0;o<j.length;o++){var p,q=i[o],r=j[o];if(p=q?{A:function(b){return"0"==b.trim()?m:a.parseAngle(b)},N:a.parseNumber,T:a.parseLengthOrPercent,L:a.parseLength}[r.toUpperCase()](q):{a:m,n:k[0],t:l}[r],void 0===p)return;k.push(p)}if(e.push({t:g,d:k}),d.lastIndex==b.length)return e}}function f(a){return a.toFixed(6).replace(".000000","")}function g(b,c){if(b.decompositionPair!==c){b.decompositionPair=c;var d=a.makeMatrixDecomposition(b)}if(c.decompositionPair!==b){c.decompositionPair=b;var e=a.makeMatrixDecomposition(c)}return null==d[0]||null==e[0]?[[!1],[!0],function(a){return a?c[0].d:b[0].d}]:(d[0].push(0),e[0].push(1),[d,e,function(b){var c=a.quat(d[0][3],e[0][3],b[5]),g=a.composeMatrix(b[0],b[1],b[2],c,b[4]),h=g.map(f).join(",");return h}])}function h(a){return a.replace(/[xy]/,"")}function i(a){return a.replace(/(x|y|z|3d)?$/,"3d")}function j(b,c){var d=a.makeMatrixDecomposition&&!0,e=!1;if(!b.length||!c.length){b.length||(e=!0,b=c,c=[]);for(var f=0;f<b.length;f++){var j=b[f].t,k=b[f].d,l="scale"==j.substr(0,5)?1:0;c.push({t:j,d:k.map(function(a){if("number"==typeof a)return l;var b={};for(var c in a)b[c]=l;return b})})}}var m=function(a,b){return"perspective"==a&&"perspective"==b||("matrix"==a||"matrix3d"==a)&&("matrix"==b||"matrix3d"==b)},o=[],p=[],q=[];if(b.length!=c.length){if(!d)return;var r=g(b,c);o=[r[0]],p=[r[1]],q=[["matrix",[r[2]]]]}else for(var f=0;f<b.length;f++){var j,s=b[f].t,t=c[f].t,u=b[f].d,v=c[f].d,w=n[s],x=n[t];if(m(s,t)){if(!d)return;var r=g([b[f]],[c[f]]);o.push(r[0]),p.push(r[1]),q.push(["matrix",[r[2]]])}else{if(s==t)j=s;else if(w[2]&&x[2]&&h(s)==h(t))j=h(s),u=w[2](u),v=x[2](v);else{if(!w[1]||!x[1]||i(s)!=i(t)){if(!d)return;var r=g(b,c);o=[r[0]],p=[r[1]],q=[["matrix",[r[2]]]];break}j=i(s),u=w[1](u),v=x[1](v)}for(var y=[],z=[],A=[],B=0;B<u.length;B++){var C="number"==typeof u[B]?a.mergeNumbers:a.mergeDimensions,r=C(u[B],v[B]);y[B]=r[0],z[B]=r[1],A.push(r[2])}o.push(y),p.push(z),q.push([j,A])}}if(e){var D=o;o=p,p=D}return[o,p,function(a){return a.map(function(a,b){var c=a.map(function(a,c){return q[b][1][c](a)}).join(",");return"matrix"==q[b][0]&&16==c.split(",").length&&(q[b][0]="matrix3d"),q[b][0]+"("+c+")"}).join(" ")}]}var k=null,l={px:0},m={deg:0},n={matrix:["NNNNNN",[k,k,0,0,k,k,0,0,0,0,1,0,k,k,0,1],d],matrix3d:["NNNNNNNNNNNNNNNN",d],rotate:["A"],rotatex:["A"],rotatey:["A"],rotatez:["A"],rotate3d:["NNNA"],perspective:["L"],scale:["Nn",c([k,k,1]),d],scalex:["N",c([k,1,1]),c([k,1])],scaley:["N",c([1,k,1]),c([1,k])],scalez:["N",c([1,1,k])],scale3d:["NNN",d],skew:["Aa",null,d],skewx:["A",null,c([k,m])],skewy:["A",null,c([m,k])],translate:["Tt",c([k,k,l]),d],translatex:["T",c([k,l,l]),c([k,l])],translatey:["T",c([l,k,l]),c([l,k])],translatez:["L",c([l,l,k])],translate3d:["TTL",d]};a.addPropertiesHandler(e,j,["transform"])}(d,f),function(a,b){function c(a,b){b.concat([a]).forEach(function(b){b in document.documentElement.style&&(d[a]=b)})}var d={};c("transform",["webkitTransform","msTransform"]),c("transformOrigin",["webkitTransformOrigin"]),c("perspective",["webkitPerspective"]),c("perspectiveOrigin",["webkitPerspectiveOrigin"]),a.propertyName=function(a){return d[a]||a}}(d,f)}(),!function(){if(void 0===document.createElement("div").animate([]).oncancel){var a;if(window.performance&&performance.now)var a=function(){return performance.now()};else var a=function(){return Date.now()};var b=function(a,b,c){this.target=a,this.currentTime=b,this.timelineTime=c,this.type="cancel",this.bubbles=!1,this.cancelable=!1,
chromium-84.0.4147.105/third_party/web-animations-js/sources/web-animations-next-lite.min.js-16-this.currentTarget=a,this.defaultPrevented=!1,this.eventPhase=Event.AT_TARGET,this.timeStamp=Date.now()},c=window.Element.prototype.animate;window.Element.prototype.animate=function(d,e){var f=c.call(this,d,e);f._cancelHandlers=[],f.oncancel=null;var g=f.cancel;f.cancel=function(){g.call(this);var c=new b(this,null,a()),d=this._cancelHandlers.concat(this.oncancel?[this.oncancel]:[]);setTimeout(function(){d.forEach(function(a){a.call(c.target,c)})},0)};var h=f.addEventListener;f.addEventListener=function(a,b){"function"==typeof b&&"cancel"==a?this._cancelHandlers.push(b):h.call(this,a,b)};var i=f.removeEventListener;return f.removeEventListener=function(a,b){if("cancel"==a){var c=this._cancelHandlers.indexOf(b);c>=0&&this._cancelHandlers.splice(c,1)}else i.call(this,a,b)},f}}}(),function(a){var b=document.documentElement,c=null,d=!1;try{var e=getComputedStyle(b).getPropertyValue("opacity"),f="0"==e?"1":"0";c=b.animate({opacity:[f,f]},{duration:1}),c.currentTime=0,d=getComputedStyle(b).getPropertyValue("opacity")==f}catch(a){}finally{c&&c.cancel()}if(!d){var g=window.Element.prototype.animate;window.Element.prototype.animate=function(b,c){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&b[Symbol.iterator]&&(b=Array.from(b)),Array.isArray(b)||null===b||(b=a.convertToArrayForm(b)),g.call(this,b,c)}}}(c),!function(a,b,c){function d(a){var c=b.timeline;c.currentTime=a,c._discardAnimations(),0==c._animations.length?f=!1:requestAnimationFrame(d)}var e=window.requestAnimationFrame;window.requestAnimationFrame=function(a){return e(function(c){b.timeline._updateAnimationsPromises(),a(c),b.timeline._updateAnimationsPromises()})},b.AnimationTimeline=function(){this._animations=[],this.currentTime=void 0},b.AnimationTimeline.prototype={getAnimations:function(){return this._discardAnimations(),this._animations.slice()},_updateAnimationsPromises:function(){b.animationsWithPromises=b.animationsWithPromises.filter(function(a){return a._updatePromises()})},_discardAnimations:function(){this._updateAnimationsPromises(),this._animations=this._animations.filter(function(a){return"finished"!=a.playState&&"idle"!=a.playState})},_play:function(a){var c=new b.Animation(a,this);return this._animations.push(c),b.restartWebAnimationsNextTick(),c._updatePromises(),c._animation.play(),c._updatePromises(),c},play:function(a){return a&&a.remove(),this._play(a)}};var f=!1;b.restartWebAnimationsNextTick=function(){f||(f=!0,requestAnimationFrame(d))};var g=new b.AnimationTimeline;b.timeline=g;try{Object.defineProperty(window.document,"timeline",{configurable:!0,get:function(){return g}})}catch(a){}try{window.document.timeline=g}catch(a){}}(c,e,f),function(a,b,c){b.animationsWithPromises=[],b.Animation=function(b,c){if(this.id="",b&&b._id&&(this.id=b._id),this.effect=b,b&&(b._animation=this),!c)throw new Error("Animation with null timeline is not supported");this._timeline=c,this._sequenceNumber=a.sequenceNumber++,this._holdTime=0,this._paused=!1,this._isGroup=!1,this._animation=null,this._childAnimations=[],this._callback=null,this._oldPlayState="idle",this._rebuildUnderlyingAnimation(),this._animation.cancel(),this._updatePromises()},b.Animation.prototype={_updatePromises:function(){var a=this._oldPlayState,b=this.playState;return this._readyPromise&&b!==a&&("idle"==b?(this._rejectReadyPromise(),this._readyPromise=void 0):"pending"==a?this._resolveReadyPromise():"pending"==b&&(this._readyPromise=void 0)),this._finishedPromise&&b!==a&&("idle"==b?(this._rejectFinishedPromise(),this._finishedPromise=void 0):"finished"==b?this._resolveFinishedPromise():"finished"==a&&(this._finishedPromise=void 0)),this._oldPlayState=this.playState,this._readyPromise||this._finishedPromise},_rebuildUnderlyingAnimation:function(){this._updatePromises();var a,c,d,e,f=!!this._animation;f&&(a=this.playbackRate,c=this._paused,d=this.startTime,e=this.currentTime,this._animation.cancel(),this._animation._wrapper=null,this._animation=null),(!this.effect||this.effect instanceof window.KeyframeEffect)&&(this._animation=b.newUnderlyingAnimationForKeyframeEffect(this.effect),b.bindAnimationForKeyframeEffect(this)),(this.effect instanceof window.SequenceEffect||this.effect instanceof window.GroupEffect)&&(this._animation=b.newUnderlyingAnimationForGroup(this.effect),b.bindAnimationForGroup(this)),this.effect&&this.effect._onsample&&b.bindAnimationForCustomEffect(this),f&&(1!=a&&(this.playbackRate=a),null!==d?this.startTime=d:null!==e?this.currentTime=e:null!==this._holdTime&&(this.currentTime=this._holdTime),c&&this.pause()),this._updatePromises()},_updateChildren:function(){if(this.effect&&"idle"!=this.playState){var a=this.effect._timing.delay;this._childAnimations.forEach(function(c){this._arrangeChildren(c,a),this.effect instanceof window.SequenceEffect&&(a+=b.groupChildDuration(c.effect))}.bind(this))}},_setExternalAnimation:function(a){if(this.effect&&this._isGroup)for(var b=0;b<this.effect.children.length;b++)this.effect.children[b]._animation=a,this._childAnimations[b]._setExternalAnimation(a)},_constructChildAnimations:function(){if(this.effect&&this._isGroup){var a=this.effect._timing.delay;this._removeChildAnimations(),this.effect.children.forEach(function(c){var d=b.timeline._play(c);this._childAnimations.push(d),d.playbackRate=this.playbackRate,this._paused&&d.pause(),c._animation=this.effect._animation,this._arrangeChildren(d,a),this.effect instanceof window.SequenceEffect&&(a+=b.groupChildDuration(c))}.bind(this))}},_arrangeChildren:function(a,b){null===this.startTime?a.currentTime=this.currentTime-b/this.playbackRate:a.startTime!==this.startTime+b/this.playbackRate&&(a.startTime=this.startTime+b/this.playbackRate)},get timeline(){return this._timeline},get playState(){return this._animation?this._animation.playState:"idle"},get finished(){return window.Promise?(this._finishedPromise||(b.animationsWithPromises.indexOf(this)==-1&&b.animationsWithPromises.push(this),this._finishedPromise=new Promise(function(a,b){this._resolveFinishedPromise=function(){a(this)},this._rejectFinishedPromise=function(){b({type:DOMException.ABORT_ERR,name:"AbortError"})}}.bind(this)),"finished"==this.playState&&this._resolveFinishedPromise()),this._finishedPromise):(console.warn("Animation Promises require JavaScript Promise constructor"),null)},get ready(){return window.Promise?(this._readyPromise||(b.animationsWithPromises.indexOf(this)==-1&&b.animationsWithPromises.push(this),this._readyPromise=new Promise(function(a,b){this._resolveReadyPromise=function(){a(this)},this._rejectReadyPromise=function(){b({type:DOMException.ABORT_ERR,name:"AbortError"})}}.bind(this)),"pending"!==this.playState&&this._resolveReadyPromise()),this._readyPromise):(console.warn("Animation Promises require JavaScript Promise constructor"),null)},get onfinish(){return this._animation.onfinish},set onfinish(a){"function"==typeof a?this._animation.onfinish=function(b){b.target=this,a.call(this,b)}.bind(this):this._animation.onfinish=a},get oncancel(){return this._animation.oncancel},set oncancel(a){"function"==typeof a?this._animation.oncancel=function(b){b.target=this,a.call(this,b)}.bind(this):this._animation.oncancel=a},get currentTime(){this._updatePromises();var a=this._animation.currentTime;return this._updatePromises(),a},set currentTime(a){this._updatePromises(),this._animation.currentTime=isFinite(a)?a:Math.sign(a)*Number.MAX_VALUE,this._register(),this._forEachChild(function(b,c){b.currentTime=a-c}),this._updatePromises()},get startTime(){return this._animation.startTime},set startTime(a){this._updatePromises(),this._animation.startTime=isFinite(a)?a:Math.sign(a)*Number.MAX_VALUE,this._register(),this._forEachChild(function(b,c){b.startTime=a+c}),this._updatePromises()},get playbackRate(){return this._animation.playbackRate},set playbackRate(a){this._updatePromises();var b=this.currentTime;this._animation.playbackRate=a,this._forEachChild(function(b){b.playbackRate=a}),null!==b&&(this.currentTime=b),this._updatePromises()},play:function(){this._updatePromises(),this._paused=!1,this._animation.play(),this._timeline._animations.indexOf(this)==-1&&this._timeline._animations.push(this),this._register(),b.awaitStartTime(this),this._forEachChild(function(a){var b=a.currentTime;a.play(),a.currentTime=b}),this._updatePromises()},pause:function(){this._updatePromises(),this.currentTime&&(this._holdTime=this.currentTime),this._animation.pause(),this._register(),this._forEachChild(function(a){a.pause()}),this._paused=!0,this._updatePromises()},finish:function(){this._updatePromises(),this._animation.finish(),this._register(),this._updatePromises()},cancel:function(){this._updatePromises(),this._animation.cancel(),this._register(),this._removeChildAnimations(),this._updatePromises()},reverse:function(){this._updatePromises();var a=this.currentTime;this._animation.reverse(),this._forEachChild(function(a){a.reverse()}),null!==a&&(this.currentTime=a),this._updatePromises()},addEventListener:function(a,b){var c=b;"function"==typeof b&&(c=function(a){a.target=this,b.call(this,a)}.bind(this),b._wrapper=c),this._animation.addEventListener(a,c)},removeEventListener:function(a,b){this._animation.removeEventListener(a,b&&b._wrapper||b)},_removeChildAnimations:function(){for(;this._childAnimations.length;)this._childAnimations.pop().cancel()},_forEachChild:function(b){var c=0;if(this.effect.children&&this._childAnimations.length<this.effect.children.length&&this._constructChildAnimations(),this._childAnimations.forEach(function(a){b.call(this,a,c),this.effect instanceof window.SequenceEffect&&(c+=a.effect.activeDuration)}.bind(this)),"pending"!=this.playState){var d=this.effect._timing,e=this.currentTime;null!==e&&(e=a.calculateIterationProgress(a.calculateActiveDuration(d),e,d)),(null==e||isNaN(e))&&this._removeChildAnimations()}}},window.Animation=b.Animation}(c,e,f),function(a,b,c){function d(b){this._frames=a.normalizeKeyframes(b)}function e(){for(var a=!1;i.length;){var b=i.shift();b._updateChildren(),a=!0}return a}var f=function(a){if(a._animation=void 0,a instanceof window.SequenceEffect||a instanceof window.GroupEffect)for(var b=0;b<a.children.length;b++)f(a.children[b])};b.removeMulti=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];d._parent?(b.indexOf(d._parent)==-1&&b.push(d._parent),d._parent.children.splice(d._parent.children.indexOf(d),1),d._parent=null,f(d)):d._animation&&d._animation.effect==d&&(d._animation.cancel(),d._animation.effect=new KeyframeEffect(null,[]),d._animation._callback&&(d._animation._callback._animation=null),d._animation._rebuildUnderlyingAnimation(),f(d))}for(c=0;c<b.length;c++)b[c]._rebuild()},b.KeyframeEffect=function(b,c,e,f){return this.target=b,this._parent=null,e=a.numericTimingToObject(e),this._timingInput=a.cloneTimingInput(e),this._timing=a.normalizeTimingInput(e),this.timing=a.makeTiming(e,!1,this),this.timing._effect=this,"function"==typeof c?(a.deprecated("Custom KeyframeEffect","2015-06-22","Use KeyframeEffect.onsample instead."),this._normalizedKeyframes=c):this._normalizedKeyframes=new d(c),this._keyframes=c,this.activeDuration=a.calculateActiveDuration(this._timing),this._id=f,this},b.KeyframeEffect.prototype={getFrames:function(){return"function"==typeof this._normalizedKeyframes?this._normalizedKeyframes:this._normalizedKeyframes._frames},set onsample(a){if("function"==typeof this.getFrames())throw new Error("Setting onsample on custom effect KeyframeEffect is not supported.");this._onsample=a,this._animation&&this._animation._rebuildUnderlyingAnimation()},get parent(){return this._parent},clone:function(){if("function"==typeof this.getFrames())throw new Error("Cloning custom effects is not supported.");var b=new KeyframeEffect(this.target,[],a.cloneTimingInput(this._timingInput),this._id);return b._normalizedKeyframes=this._normalizedKeyframes,b._keyframes=this._keyframes,b},remove:function(){b.removeMulti([this])}};var g=Element.prototype.animate;Element.prototype.animate=function(a,c){var d="";return c&&c.id&&(d=c.id),b.timeline._play(new b.KeyframeEffect(this,a,c,d))};var h=document.createElementNS("http://www.w3.org/1999/xhtml","div");b.newUnderlyingAnimationForKeyframeEffect=function(a){if(a){var b=a.target||h,c=a._keyframes;"function"==typeof c&&(c=[]);var d=a._timingInput;d.id=a._id}else var b=h,c=[],d=0;return g.apply(b,[c,d])},b.bindAnimationForKeyframeEffect=function(a){a.effect&&"function"==typeof a.effect._normalizedKeyframes&&b.bindAnimationForCustomEffect(a)};var i=[];b.awaitStartTime=function(a){null===a.startTime&&a._isGroup&&(0==i.length&&requestAnimationFrame(e),i.push(a))};var j=window.getComputedStyle;Object.defineProperty(window,"getComputedStyle",{configurable:!0,enumerable:!0,value:function(){b.timeline._updateAnimationsPromises();var a=j.apply(this,arguments);return e()&&(a=j.apply(this,arguments)),b.timeline._updateAnimationsPromises(),a}}),window.KeyframeEffect=b.KeyframeEffect,window.Element.prototype.getAnimations=function(){return document.timeline.getAnimations().filter(function(a){return null!==a.effect&&a.effect.target==this}.bind(this))}}(c,e,f),function(a,b,c){function d(a){a._registered||(a._registered=!0,g.push(a),h||(h=!0,requestAnimationFrame(e)))}function e(a){var b=g;g=[],b.sort(function(a,b){return a._sequenceNumber-b._sequenceNumber}),b=b.filter(function(a){a();var b=a._animation?a._animation.playState:"idle";return"running"!=b&&"pending"!=b&&(a._registered=!1),a._registered}),g.push.apply(g,b),g.length?(h=!0,requestAnimationFrame(e)):h=!1}var f=(document.createElementNS("http://www.w3.org/1999/xhtml","div"),0);b.bindAnimationForCustomEffect=function(b){var c,e=b.effect.target,g="function"==typeof b.effect.getFrames();c=g?b.effect.getFrames():b.effect._onsample;var h=b.effect.timing,i=null;h=a.normalizeTimingInput(h);var j=function(){var d=j._animation?j._animation.currentTime:null;null!==d&&(d=a.calculateIterationProgress(a.calculateActiveDuration(h),d,h),isNaN(d)&&(d=null)),d!==i&&(g?c(d,e,b.effect):c(d,b.effect,b.effect._animation)),i=d};j._animation=b,j._registered=!1,j._sequenceNumber=f++,b._callback=j,d(j)};var g=[],h=!1;b.Animation.prototype._register=function(){this._callback&&d(this._callback)}}(c,e,f),function(a,b,c){function d(a){return a._timing.delay+a.activeDuration+a._timing.endDelay}function e(b,c,d){this._id=d,this._parent=null,this.children=b||[],this._reparent(this.children),c=a.numericTimingToObject(c),this._timingInput=a.cloneTimingInput(c),this._timing=a.normalizeTimingInput(c,!0),this.timing=a.makeTiming(c,!0,this),this.timing._effect=this,"auto"===this._timing.duration&&(this._timing.duration=this.activeDuration)}window.SequenceEffect=function(){e.apply(this,arguments)},window.GroupEffect=function(){e.apply(this,arguments)},e.prototype={_isAncestor:function(a){for(var b=this;null!==b;){if(b==a)return!0;b=b._parent}return!1},_rebuild:function(){for(var a=this;a;)"auto"===a.timing.duration&&(a._timing.duration=a.activeDuration),a=a._parent;this._animation&&this._animation._rebuildUnderlyingAnimation()},_reparent:function(a){b.removeMulti(a);for(var c=0;c<a.length;c++)a[c]._parent=this},_putChild:function(a,b){for(var c=b?"Cannot append an ancestor or self":"Cannot prepend an ancestor or self",d=0;d<a.length;d++)if(this._isAncestor(a[d]))throw{type:DOMException.HIERARCHY_REQUEST_ERR,name:"HierarchyRequestError",message:c};for(var d=0;d<a.length;d++)b?this.children.push(a[d]):this.children.unshift(a[d]);this._reparent(a),this._rebuild()},append:function(){this._putChild(arguments,!0)},prepend:function(){this._putChild(arguments,!1)},get parent(){return this._parent},get firstChild(){return this.children.length?this.children[0]:null},get lastChild(){return this.children.length?this.children[this.children.length-1]:null},clone:function(){for(var b=a.cloneTimingInput(this._timingInput),c=[],d=0;d<this.children.length;d++)c.push(this.children[d].clone());return this instanceof GroupEffect?new GroupEffect(c,b):new SequenceEffect(c,b)},remove:function(){b.removeMulti([this])}},window.SequenceEffect.prototype=Object.create(e.prototype),Object.defineProperty(window.SequenceEffect.prototype,"activeDuration",{get:function(){var a=0;return this.children.forEach(function(b){a+=d(b)}),Math.max(a,0)}}),window.GroupEffect.prototype=Object.create(e.prototype),Object.defineProperty(window.GroupEffect.prototype,"activeDuration",{get:function(){var a=0;return this.children.forEach(function(b){a=Math.max(a,d(b))}),a}}),b.newUnderlyingAnimationForGroup=function(c){var d,e=null,f=function(b){var c=d._wrapper;if(c&&"pending"!=c.playState&&c.effect)return null==b?void c._removeChildAnimations():0==b&&c.playbackRate<0&&(e||(e=a.normalizeTimingInput(c.effect.timing)),b=a.calculateIterationProgress(a.calculateActiveDuration(e),-1,e),isNaN(b)||null==b)?(c._forEachChild(function(a){a.currentTime=-1}),void c._removeChildAnimations()):void 0},g=new KeyframeEffect(null,[],c._timing,c._id);return g.onsample=f,d=b.timeline._play(g)},b.bindAnimationForGroup=function(a){a._animation._wrapper=a,a._isGroup=!0,b.awaitStartTime(a),a._constructChildAnimations(),a._setExternalAnimation(a)},b.groupChildDuration=d}(c,e,f),b.true=a}({},function(){return this}());
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-190-      # In silent mode exceptions thrown during evaluation are not reported and do not pause
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:191:      # execution. Overrides `setPauseOnException` state.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-192-      optional boolean silent
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-206-
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:207:  # Execute a Wasm Evaluator module on a given call frame.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-208-  experimental command executeWasmEvaluator
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-242-    returns
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:243:      # Script source (empty in case of Wasm bytecode).
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-244-      string scriptSource
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:245:      # Wasm bytecode.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-246-      optional binary bytecode
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-250-    parameters
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:251:      # Id of the Wasm script to get source for.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-252-      Runtime.ScriptId scriptId
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-527-
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:528:  # Debug symbols available for a wasm script.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-529-  type DebugSymbols extends object
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1184-      ExecutionContextId id
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:1185:      # Execution context origin.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1186-      string origin
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1192-  # Detailed information about exception (or error) that was thrown during script compilation or
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:1193:  # execution.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1194-  type ExceptionDetails extends object
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1285-      # In silent mode exceptions thrown during evaluation are not reported and do not pause
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:1286:      # execution. Overrides `setPauseOnException` state.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1287-      optional boolean silent
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1297-      # Specifies execution context which global object will be used to call function on. Either
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:1298:      # executionContextId or objectId should be specified.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1299-      optional ExecutionContextId executionContextId
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1347-      # In silent mode exceptions thrown during evaluation are not reported and do not pause
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:1348:      # execution. Overrides `setPauseOnException` state.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1349-      optional boolean silent
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1461-      # In silent mode exceptions thrown during evaluation are not reported and do not pause
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl:1462:      # execution. Overrides `setPauseOnException` state.
chromium-84.0.4147.105/third_party/devtools-frontend/src/v8/include/js_protocol.pdl-1463-      optional boolean silent
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/extensions_test_runner/ExtensionsTestRunner.js-11-self.Extensions.extensionServer._registerHandler('evaluateForTestInFrontEnd', onEvaluate);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/extensions_test_runner/ExtensionsTestRunner.js:12:Extensions.extensionsOrigin = `http://${extensionsHost}:8000`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/extensions_test_runner/ExtensionsTestRunner.js-13-self.Extensions.extensionServer._extensionAPITestHook = function(extensionServerClient, coreAPI) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/profiler_strings.grdp-60-  <message name="IDS_DEVTOOLS_228c1dff0f18df113246bd4e033c91c2" desc="Text in Profiles Panel of a profiler tool">
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/profiler_strings.grdp:61:    Can’t load file. Supported file extensions: `<ph name="ARRAY_FROM_EXTENSIONS__JOIN________">$1s<ex>'.js', '.json'</ex></ph>`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/profiler_strings.grdp-62-  </message>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/ProfileView.js-555-    this._fileName = this._fileName ||
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/ProfileView.js:556:        `${this.profileType().typeName()}-${new Date().toISO8601Compact()}${this.profileType().fileExtension()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/ProfileView.js-557-    const accepted = await fileOutputStream.open(this._fileName);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-35-    const trendIntervalMinutes = Math.round(SDK.IsolateManager.MemoryTrendWindowMs / 60e3);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js:36:    this._totalTrendDiv.title = ls`Total page JS heap size change trend over the last ${trendIntervalMinutes} minutes.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-37-    this._totalValueDiv.title = ls`Total page JS heap size across all VM instances.`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-150-    if (changeRateBytesPerSecond > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js:151:      changeText = ls`\u2B06${changeRateText}/s`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-152-      element.classList.toggle('increasing', true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js:153:      changeLabel = ls`increasing by ${changeRateText} per second`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-154-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js:155:      changeText = ls`\u2B07${changeRateText}/s`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-156-      element.classList.toggle('increasing', false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js:157:      changeLabel = ls`decreasing by ${changeRateText} per second`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-158-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-245-    this._trendDiv = this.element.createChild('div', 'profile-memory-usage-item-trend');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js:246:    this._trendDiv.title = ls`Heap size change trend over the last ${trendIntervalMinutes} minutes.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-247-    this._nameDiv = this.element.createChild('div', 'profile-memory-usage-item-name');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-270-      const domain = parsedURL.isValid ? parsedURL.domain() : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js:271:      const title = target.decorateLabel(domain && name ? `${domain}: ${name}` : name || domain || ls`(empty)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-272-      modelCountByName.set(title, (modelCountByName.get(title) || 0) + 1);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-276-    for (const [name, count] of modelCountByName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js:277:      const title = count > 1 ? `${name} (${count})` : name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/IsolateSelector.js-278-      titles.push(title);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-230-      const div = createElement('div');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:231:      const valueSpan = UI.Fragment.html`<span>${this.data[columnId]}</span>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-232-      div.appendChild(valueSpan);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-234-      if (percentColumn in this.data) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:235:        const percentSpan = UI.Fragment.html`<span class="percent-column">${this.data[percentColumn]}</span>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-236-        div.appendChild(percentSpan);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-239-        UI.ARIAUtils.markAsHidden(percentSpan);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:240:        this.setCellAccessibleName(ls`${this.data[columnId]}, ${this.data[percentColumn]}`, cell, columnId);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-241-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-541-      case 'string':
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:542:        value = `"${value}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-543-        valueStyle = 'string';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-545-      case 'regexp':
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:546:        value = `/${value}/`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-547-        valueStyle = 'string';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-549-      case 'closure':
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:550:        value = `${value}()`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-551-        valueStyle = 'function';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-562-      case 'array':
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:563:        value = value ? `${value}[]` : ls`(internal array)[]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-564-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-585-      div.appendChild(UI.Fragment.html
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:586:                      `<span class="heap-object-tag" title="${ls`User object reachable from window`}">🗖</span>`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-587-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-588-    if (this.detachedDOMTreeNode) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:589:      div.appendChild(UI.Fragment.html`<span class="heap-object-tag" title="${ls`Detached from DOM tree`}">✀</span>`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-590-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-684-        contextMenu.revealSection().appendItem(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:685:            ls`Reveal object '${objectName}' with id @${snapshotNodeId} in Summary view`, () => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-686-              dataDisplayDelegate.showObject(snapshotNodeId, ls`Summary`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-823-      case 'element':
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:824:        name = `[${name}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-825-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-1078-    if (columnId === 'object' && this._count > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js:1079:      cell.appendChild(UI.Fragment.html`<span class="objects-count">×${this._count}</span>`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapSnapshotGridNodes.js-1080-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/LiveHeapProfileView.js-142-      if (!url) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/LiveHeapProfileView.js:143:        console.info(`Node with empty URL: ${size} bytes`);  // eslint-disable-line no-console
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/LiveHeapProfileView.js-144-        continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/LiveHeapProfileView.js-353-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/LiveHeapProfileView.js:354:        console.assert(false, `Unknown action: ${actionId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/LiveHeapProfileView.js-355-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-74-    const maxId = /** @type {number} */ (event.data.maxId);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:75:    this._selectedSizeText.setText(ls`Selected size: ${Platform.NumberUtilities.bytesToString(event.data.size)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-76-    this._setSelectionRange(minId, maxId);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-160-    const guides = '+!:|';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:161:    let text = `Sampling memory profile.\n\nDate/Time:       ${new Date()}\n` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-162-        'Report Version:  7\n' +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:163:        `App Version:     ${/Chrom\S*/.exec(navigator.appVersion)[0] || 'Unknown'}\n` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-164-        'Node Weight:     1 KiB\n' +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:165:        `Total Size:      ${Math.round(this.profile().root.total / 1024)} KiB\n` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-166-        '----\n\nCall graph:\n';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-181-          module.uuid.replace(/(.{8})(.{4})(.{4})(.{4})(.{12}).*/, '$1-$2-$3-$4-$5');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:182:      text += `${('0x' + module.address.toString(16)).padStart(18)} - `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:183:      text += `${('0x' + (module.endAddress - BigInt(1)).toString(16)).padStart(18)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:184:      text += `  ${fileName} (${version}) <${formattedUuid}> ${module.name}\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-185-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-205-          (addressText ? node.functionName.substr(addressText.length + 1) : node.functionName) || '???';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:206:      text += `${padding}${Math.round(node.total / 1024)}  ${functionName}  `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-207-      if (module) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-209-        if (fileName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:210:          text += `(in ${fileName})  `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-211-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-212-        const offset = BigInt(addressText) - module.address;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:213:        text += `load address ${module.baseAddress} + 0x${offset.toString(16)}  `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-214-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-215-      if (addressText) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:216:        text += `[${addressText}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-217-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-473-  constructor(processType) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:474:    super(SamplingNativeHeapSnapshotType.TypeId, ls`Native memory allocation snapshot (${processType})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-475-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-520-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:521:    const profile = new SamplingHeapProfileHeader(heapProfilerModel, this, ls`Snapshot ${this.nextProfileUid()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-522-    this.setProfileBeingRecorded(profile);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-736-  formatValueAccessibleText(value) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js:737:    return ls`${value} bytes`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/HeapProfileView.js-738-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/ProfileSidebarTreeElement.js-139-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/ProfileSidebarTreeElement.js:140:    UI.ARIAUtils.setDescription(this.listItemElement, ls`${this.profile.profileType().name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/ProfileSidebarTreeElement.js-141-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/ProfileDataGrid.js-228-    const valueAccessibleText = this.tree._formatter.formatValueAccessibleText(value, this);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/ProfileDataGrid.js:229:    this.setCellAccessibleName(ls`${valueAccessibleText}, ${percentText}`, cell, columnId);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/profiler/ProfileDataGrid.js-230-    return cell;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-252-      if (tracksByProcess.size > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js:253:        const name = `${process.name()} ${process.id()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-254-        this._appendHeader(name, processGroupStyle, false /* selectable */);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-334-            const group = this._appendSyncEvents(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js:335:                track, track.events, track.url ? ls`Main \u2014 ${track.url}` : ls`Main`, this._headerLevel1,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-336-                eventEntryType, true /* selectable */);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-341-            this._appendSyncEvents(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js:342:                track, track.events, track.url ? ls`Frame \u2014 ${track.url}` : ls`Subframe`, this._headerLevel1,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-343-                eventEntryType, true /* selectable */);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-359-          this._appendSyncEvents(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js:360:              track, track.events, ls`Rasterizer Thread ${rasterCount}`, this._headerLevel2, eventEntryType,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-361-              true /* selectable */);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-761-        const occurrences = 1;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js:762:        time = ls`Occurrences: ${occurrences}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-763-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-851-    const key = event.categoriesString || event.name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js:852:    return key ? `hsl(${String.hashCode(key) % 300 + 30}, 40%, 70%)` : '#ccc';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-853-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-1044-    for (const thread of allThreads) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js:1045:      const title = singleTrack ? entry.title : thread.name() || ls`Thread ${++threadIndex}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartDataProvider.js-1046-      this._appendAsyncEventsGroup(null, title, thread.asyncEvents(), style, entryType, false /* selectable */);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-21-  <message name="IDS_DEVTOOLS_04cbdd8baeb482d9ff2e48b186479a06" desc="Text in Timeline UIUtils of the Performance panel">
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp:22:    Streaming Wasm Response
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-23-  </message>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-286-  <message name="IDS_DEVTOOLS_3f978efb26e66c6c9af5db34268ccf41" desc="Text in Timeline UIUtils of the Performance panel">
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp:287:    Compiled Wasm Module
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-288-  </message>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-346-  <message name="IDS_DEVTOOLS_504d75604f56770c3c513de2c49ecbe8" desc="Text in Timeline UIUtils of the Performance panel">
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp:347:    Wasm Module Cache Hit
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-348-  </message>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-526-  <message name="IDS_DEVTOOLS_7820708244a842157c5fc8186e7b2bfa" desc="Text in Timeline UIUtils of the Performance panel">
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp:527:    Wasm Module Cache Invalid
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-528-  </message>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-532-  <message name="IDS_DEVTOOLS_798afebf1a5e9d795a96f0c82cccaae2" desc="Text in Timeline UIUtils of the Performance panel">
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp:533:    Cached Wasm Module
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/timeline_strings.grdp-534-  </message>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineTreeView.js-886-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineTreeView.js:887:        console.assert(false, `Unexpected aggregation setting: ${groupBy}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineTreeView.js-888-        return null;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineHistoryManager.js-45-    const buttonTitle = this._action.title();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineHistoryManager.js:46:    UI.ARIAUtils.setAccessibleName(this._button.element, ls`Current Session: ${modelTitle}. ${buttonTitle}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineHistoryManager.js-47-    this._updateState();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineHistoryManager.js-138-    this._button.setText(modelTitle);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineHistoryManager.js:139:    UI.ARIAUtils.setAccessibleName(this._button.element, ls`Current Session: ${modelTitle}. ${buttonTitle}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineHistoryManager.js-140-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineEventOverview.js-900-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineEventOverview.js:901:    this._heapSizeLabel.textContent = `${percentUsed}% used`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineEventOverview.js-902-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartNetworkDataProvider.js-177-    const parsedURL = new Common.ParsedURL.ParsedURL(request.url || '');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartNetworkDataProvider.js:178:    return parsedURL.isValid ? `${parsedURL.displayName} (${parsedURL.host})` : request.url || null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartNetworkDataProvider.js-179-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartNetworkDataProvider.js-365-    const value = this._priorityToValue.get(priority);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartNetworkDataProvider.js:366:    return value ? `hsla(214, 80%, 50%, ${value / 5})` : null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartNetworkDataProvider.js-367-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartView.js-501-    const startTime = Number.millisToString(this._startOffset);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartView.js:502:    return ls`${this._style.title} at ${startTime}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineFlameChartView.js-503-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-102-    eventStyles[type.StreamingCompileScriptParsing] = new TimelineRecordStyle(ls`Parse and Compile`, scripting);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:103:    eventStyles[type.WasmStreamFromResponseCallback] = new TimelineRecordStyle(ls`Streaming Wasm Response`, scripting);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:104:    eventStyles[type.WasmCompiledModule] = new TimelineRecordStyle(ls`Compiled Wasm Module`, scripting);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:105:    eventStyles[type.WasmCachedModule] = new TimelineRecordStyle(ls`Cached Wasm Module`, scripting);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:106:    eventStyles[type.WasmModuleCacheHit] = new TimelineRecordStyle(ls`Wasm Module Cache Hit`, scripting);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:107:    eventStyles[type.WasmModuleCacheInvalid] = new TimelineRecordStyle(ls`Wasm Module Cache Invalid`, scripting);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-108-    eventStyles[type.FrameStartedLoading] = new TimelineRecordStyle(ls`Frame Started Loading`, loading, true);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-377-    if (event.name === recordType.TimeStamp) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:378:      return ls`${title}: ${eventData['message']}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-379-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-380-    if (event.name === recordType.Animation && eventData && eventData['name']) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:381:      return ls`${title}: ${eventData['name']}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-382-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-383-    if (event.name === recordType.EventDispatch && eventData && eventData['type']) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:384:      return ls`${title}: ${eventData['type']}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-385-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-798-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:799:    return UI.Fragment.html`<div>${UI.XLink.XLink.create(link, ls`Learn more`)} about ${name}.</div>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-800-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-881-        } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:882:          contentHelper.appendTextRow(key, `<${typeof event.args[key]}>`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-883-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-945-        if (eventData['encodedDataLength']) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:946:          contentHelper.appendTextRow(ls`Encoded Data`, ls`${eventData['encodedDataLength']} Bytes`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-947-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-948-        if (eventData['decodedBodyLength']) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:949:          contentHelper.appendTextRow(ls`Decoded Body`, ls`${eventData['decodedBodyLength']} Bytes`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-950-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1009-        const clip = eventData['clip'];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:1010:        contentHelper.appendTextRow(ls`Location`, ls`(${clip[0]}, ${clip[1]})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1011-        const clipWidth = TimelineUIUtils.quadWidth(clip);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1012-        const clipHeight = TimelineUIUtils.quadHeight(clip);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:1013:        contentHelper.appendTextRow(ls`Dimensions`, ls`${clipWidth} × ${clipHeight}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1014-        // Fall-through intended.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1055-        contentHelper.appendTextRow(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:1056:            ls`Nodes That Need Layout`, ls`${beginData['dirtyObjects']} of ${beginData['totalObjects']}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1057-        relatedNodeLabel = ls`Layout root`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1378-        const cacheOrNetworkLabel = request.cached() ? ls`load from cache` : ls`network transfer`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:1379:        textRow += ls` (${networkDurationStr} ${cacheOrNetworkLabel} + ${processingDurationStr} resource loading)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1380-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1406-    if (request.encodedDataLength || !lengthText) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:1407:      lengthText = `${Platform.NumberUtilities.bytesToString(request.encodedDataLength)}${lengthText}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-1408-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-2126-        const exceededMs = Number.millisToString(event.duration - eventData['allottedMilliseconds'], true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:2127:        span.textContent = ls`Idle callback execution extended beyond deadline by ${exceededMs}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-2128-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-2172-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js:2173:    return url.startsWith('about:') ? `"${frame.name.trimMiddle(trimAt)}"` : frame.url.trimEnd(trimAt);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineUIUtils.js-2174-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineDetailsView.js-92-      if (model.timelineModel().totalBlockingTime() !== -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineDetailsView.js:93:        message = ls`Total blocking time: ${model.timelineModel().totalBlockingTime().toFixed(2)}ms`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineDetailsView.js-94-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineDetailsView.js-308-    contentHelper.addSection(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineDetailsView.js:309:        ls`Range:  ${Number.millisToString(startOffset)} \u2013 ${Number.millisToString(endOffset)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/TimelineDetailsView.js-310-    const pieChart = TimelineUIUtils.generatePieChart(aggregatedStats);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/CLSLinkifier.js-36-    const {x, y, width, height} = rect;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/CLSLinkifier.js:37:    link.textContent = `Location: [${x},${y}], Size: [${width}x${height}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline/CLSLinkifier.js-38-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/platform/string-utilities.js-116-  const re =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/platform/string-utilities.js:117:      new RegExp(`%%|%(?:(\\d+)\\$)?(?:\\.(\\d*))?([${Object.keys(formatters).join('')}])|\\u001b\\[(\\d+)m`, 'g');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/platform/string-utilities.js-118-  for (let match = re.exec(formatString); !!match; match = re.exec(formatString)) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-53-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js:54:  TestRunner.addResult(`Removed: ${removedLines.length} uiSourceCodes`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-55-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-59-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js:60:  TestRunner.addResult(`Workspace: ${urls.length} uiSourceCodes.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-61-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-71-BindingsTestRunner.attachFrame = function(frameId, url, evalSourceURL) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js:72:  let evalSource = `(${attachFrame.toString()})('${frameId}', '${url}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-73-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-89-BindingsTestRunner.detachFrame = function(frameId, evalSourceURL) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js:90:  let evalSource = `(${detachFrame.toString()})('${frameId}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-91-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-104-BindingsTestRunner.navigateFrame = function(frameId, navigateURL, evalSourceURL) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js:105:  let evalSource = `(${navigateFrame.toString()})('${frameId}', '${navigateURL}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-106-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-120-BindingsTestRunner.attachShadowDOM = function(id, templateSelector, evalSourceURL) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js:121:  let evalSource = `(${createShadowDOM.toString()})('${id}', '${templateSelector}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-122-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-142-BindingsTestRunner.detachShadowDOM = function(id, evalSourceURL) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js:143:  let evalSource = `(${removeShadowDOM.toString()})('${id}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-144-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-221-  hint = hint || '[  GET   ]';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js:222:  const prefix = `${hint}  LiveLocation-${liveLocation[nameSymbol]}: `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/BindingsTestRunner.js-223-  const uiLocation = await liveLocation.uiLocation();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/PersistenceTestRunner.js-65-    if (this._findBinding(urlSuffix)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/PersistenceTestRunner.js:66:      TestRunner.addResult(`FAILED TO ADD BINDING: binding already exists for ${urlSuffix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/PersistenceTestRunner.js-67-      TestRunner.completeTest();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/PersistenceTestRunner.js-91-    if (!binding) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/PersistenceTestRunner.js:92:      TestRunner.addResult(`FAILED TO REMOVE BINDING: binding does not exist for ${urlSuffix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings_test_runner/PersistenceTestRunner.js-93-      TestRunner.completeTest();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-896-          Protocol.Security.SecurityState.Insecure, title, ls`missing`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js:897:          ls`This site is missing a valid, trusted certificate (${certificateSecurityState.certificateNetworkError}).`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-898-          certificateSecurityState.certificate, Protocol.Security.MixedContentType.None));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-940-    if (certificateSecurityState.obsoleteSslProtocol) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js:941:      recommendations.push(ls`${certificateSecurityState.protocol} is obsolete. Enable TLS 1.2 or later.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-942-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-946-    if (certificateSecurityState.obsoleteSslCipher) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js:947:      recommendations.push(ls`${certificateSecurityState.cipher} is obsolete. Enable an AES-GCM-based cipher suite.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-948-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-1347-            sanDiv.classList.add('truncated-san');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js:1348:            buttonText = ls`Show more (${sanList.length} total)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-1349-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-1354-        const truncatedSANToggle =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js:1355:            UI.UIUtils.createTextButton(ls`Show more (${sanList.length} total)`, toggleSANTruncation);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityPanel.js-1356-        sanDiv.appendChild(truncatedSANToggle);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityModel.js-169-    if (this.keyExchangeGroup) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityModel.js:170:      return this.keyExchange ? ls`${this.keyExchange} with ${this.keyExchangeGroup}` : this.keyExchangeGroup;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityModel.js-171-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityModel.js-178-  getCipherFullName() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityModel.js:179:    return this.mac ? ls`${this.cipher} with ${this.mac}` : this.cipher;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/security/SecurityModel.js-180-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/layer_viewer/LayerDetailsView.js-272-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/layer_viewer/LayerDetailsView.js:273:        console.error(`Compositing reason id '${compositingReasonId}' is not recognized.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/layer_viewer/LayerDetailsView.js-274-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/snippets/ScriptSnippetFileSystem.js-37-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/snippets/ScriptSnippetFileSystem.js:38:    const snippetName = ls`Script snippet #${nextId}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/snippets/ScriptSnippetFileSystem.js-39-    const snippets = this._snippetsSetting.get();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/snippets/ScriptSnippetFileSystem.js-146-  tooltipForURL(url) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/snippets/ScriptSnippetFileSystem.js:147:    return ls`Linked to ${unescape(url.substring(this.path().length))}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/snippets/ScriptSnippetFileSystem.js-148-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/snippets/ScriptSnippetFileSystem.js-181-      {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/snippets/ScriptSnippetFileSystem.js:182:        expression: `${expression}\n//# sourceURL=${url}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/snippets/ScriptSnippetFileSystem.js-183-        objectGroup: 'console',
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStartView.js-39-    if (!runtimeSetting || !runtimeSetting.options) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStartView.js:40:      throw new Error(`${settingName} is not a setting with options`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStartView.js-41-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStartView.js-54-    if (!runtimeSetting || !runtimeSetting.title) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStartView.js:55:      throw new Error(`${settingName} is not a setting with a title`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStartView.js-56-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStatusView.js-93-    const pageHost = parsedURL && parsedURL.host;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStatusView.js:94:    const statusHeader = pageHost ? ls`Auditing ${pageHost}` : ls`Auditing your web page`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStatusView.js-95-    this._renderStatusHeader(statusHeader);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStatusView.js-102-  _renderStatusHeader(statusHeader) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStatusView.js:103:    this._statusHeader.textContent = `${statusHeader}…`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStatusView.js-104-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStatusView.js-210-    const fastFactIndex = Math.floor(Math.random() * this._fastFactsQueued.length);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStatusView.js:211:    this._scheduleTextChange(ls`\ud83d\udca1 ${this._fastFactsQueued[fastFactIndex]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseStatusView.js-212-    this._fastFactsQueued.splice(fastFactIndex, 1);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseReportRenderer.js-153-    const ext = blob.type.match('json') ? '.json' : '.html';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseReportRenderer.js:154:    const basename = `${sanitizedDomain}-${timestamp}${ext}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseReportRenderer.js-155-    const text = await blob.text();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseReportSelector.js-115-    this._element = createElement('option');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseReportSelector.js:116:    this._element.label = `${new Date(timestamp).toLocaleTimeString()} - ${url.domain()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse/LighthouseReportSelector.js-117-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextContentBuilder.js-51-  _addEntry(entry, value, unit) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextContentBuilder.js:52:    const valueWithUnit = value + (unit ? ` ${unit}` : '');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextContentBuilder.js-53-    this._container.appendChild(UI.Fragment.html`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js-26-    this._toolbarItem.setEnabled(false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js:27:    this._toolbarItem.setTitle(ls`Audio context: ${this._placeholderText}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js-28-    this._items.addEventListener(UI.ListModel.Events.ItemsReplaced, this._onListItemReplaced, this);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js-38-    if (!hasItems) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js:39:      this._toolbarItem.setTitle(ls`Audio context: ${this._placeholderText}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js-40-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js-144-      this._selectedContext = item;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js:145:      this._toolbarItem.setTitle(ls`Audio context: ${this.titleFor(item)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js-146-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js-160-  titleFor(context) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js:161:    return `${context.contextType} (${context.contextId.substr(-6)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/AudioContextSelector.js-162-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/EdgeView.js-34-  if (!data.sourceId || !data.destinationId) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/EdgeView.js:35:    console.error(`Undefined node message: ${JSON.stringify(data)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/EdgeView.js-36-    return null;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/EdgeView.js-42-  return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/EdgeView.js:43:    edgeId: `${sourcePortId}->${destinationPortId}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/EdgeView.js-44-    sourcePortId: sourcePortId,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/EdgeView.js-60-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/EdgeView.js:61:    console.error(`Unknown edge type: ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/EdgeView.js-62-    return '';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js-193-export const generateInputPortId = (nodeId, inputIndex) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js:194:  return `${nodeId}-input-${inputIndex || 0}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js-195-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js-203-export const generateOutputPortId = (nodeId, outputIndex) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js:204:  return `${nodeId}-output-${outputIndex || 0}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js-205-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js-213-export const generateParamPortId = (nodeId, paramId) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js:214:  return `${nodeId}-param-${paramId}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js-215-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js-236-    this._totalNumberOfNodes += 1;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js:237:    const label = `${nodeType} ${this._totalNumberOfNodes}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/web_audio/graph_visualizer/NodeView.js-238-    return label;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources_test_runner/DebuggerTestRunner.js-854-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources_test_runner/DebuggerTestRunner.js:855:    TestRunner.addResult(`Could not click on Javascript breakpoint - lineNumber: ${lineNumber}, index: ${index}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources_test_runner/DebuggerTestRunner.js-856-    next();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources_test_runner/SourcesTestRunner.js-89-  if (isContentScript) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources_test_runner/SourcesTestRunner.js:90:    content = `testRunner.evaluateScriptInIsolatedWorld(${worldId}, \`${content}\`)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources_test_runner/SourcesTestRunner.js-91-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-258-    this._canvas.height = height;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js:259:    this._canvas.style.width = `${width / ratio}px`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js:260:    this._canvas.style.height = `${height / ratio}px`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-261-    if (this._useWebGL) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-263-      this._canvasGL.height = height;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js:264:      this._canvasGL.style.width = `${width / ratio}px`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js:265:      this._canvasGL.style.height = `${height / ratio}px`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-266-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-504-      this._deselectAllGroups();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js:505:      UI.ARIAUtils.alert(ls`${groupName} hovered`, this._canvas);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-506-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-510-      this._draw();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js:511:      UI.ARIAUtils.alert(ls`${groupName} selected`, this._canvas);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-512-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-608-      const groupName = groups[groupIndex].name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js:609:      const content = group.expanded ? ls`${groupName} expanded` : ls`${groupName} collapsed`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/FlameChart.js-610-      UI.ARIAUtils.alert(content, this._canvas);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/PieChart.js-141-    path.setAttribute('d',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/PieChart.js:142:        `M${x1},${y1} A1,1,0,${largeArc},1,${x2},${y2} L${x3},${y3} A${r2},${r2},0,${largeArc},0,${x4},${y4} Z`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/PieChart.js-143-    path.setAttribute('fill', color);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js-236-  decorate(uiSourceCode, textEditor, type) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js:237:    const gutterType = `CodeMirror-gutter-${type}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js-238-    const decorations = uiSourceCode.decorationsForType(type);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js-261-      element.textContent = Common.UIString.UIString('%.1f', value);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js:262:      element.style.backgroundColor = `hsla(44, 100%, 50%, ${intensity.toFixed(3)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js-263-      element.createChild('span', 'line-marker-units').textContent = ls`ms`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js-265-      const intensity = Platform.NumberUtilities.clamp(Math.log10(1 + 2e-3 * value) / 5, 0.02, 1);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js:266:      element.style.backgroundColor = `hsla(217, 100%, 70%, ${intensity.toFixed(3)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js-267-      value /= 1e3;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js-277-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js:278:      element.textContent = Common.UIString.UIString(`%.${fractionDigits}f`, value);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/perf_ui/LineLevelProfile.js-279-      element.createChild('span', 'line-marker-units').textContent = units;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/axe_core_test_runner/AxeCoreTestRunner.js-166-    const violations = AxeCoreTestRunner.processAxeResult(results.violations);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/axe_core_test_runner/AxeCoreTestRunner.js:167:    TestRunner.addResult(`aXe violations: ${violations}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/axe_core_test_runner/AxeCoreTestRunner.js-168-  } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/axe_core_test_runner/AxeCoreTestRunner.js:169:    TestRunner.addResult(`aXe threw an error: '${e}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/axe_core_test_runner/AxeCoreTestRunner.js-170-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-21-  // if path ends with '/', 2nd regex returns everything between the last two '/'
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js:22:  return (/[^/]+$/.exec(path) || /[^/]+\/$/.exec(path) || [''])[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-23-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-85-    this._affectedResourcesCount = count;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js:86:    this._affectedResourcesCountElement.textContent = `${count} ${this.getResourceName(count)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-87-    this.hidden = this._affectedResourcesCount === 0;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-264-    info.classList.add('affected-resource-cookie-info');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js:265:    info.textContent = `${cookie.domain}${cookie.path}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-266-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-534-    countAdorner.classList.add('aggregated-issues-count');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js:535:    this._aggregatedIssuesCount.textContent = `${this._issue.getAggregatedIssuesCount()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-536-    header.appendChild(icon);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-548-    if (this._aggregatedIssuesCount) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js:549:      this._aggregatedIssuesCount.textContent = `${this._issue.getAggregatedIssuesCount()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-550-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-597-    for (const description of this._description.links) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js:598:      const link = UI.XLink.XLink.create(description.link, ls`Learn more: ${description.linkTitle}`, 'link');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-599-      const linkIcon = UI.Icon.Icon.create('largeicon-link', 'link-icon');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-686-    const updateToolbarIssuesCount = count => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js:687:      toolbarIssuesCount.textContent = `${count}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-688-      if (count === 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js:689:        toolbarIssuesItem.setTitle(ls`Issues pertaining to ${count} operation detected.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-690-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js:691:        toolbarIssuesItem.setTitle(ls`Issues pertaining to ${count} operations detected.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssuesPane.js-692-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssueAggregator.js-104-    const {domain, path, name} = cookie;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssueAggregator.js:105:    return `${domain};${path};${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/issues/IssueAggregator.js-106-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CSSMetadata.js-125-                         .sort(CSSMetadata._sortPrefixesToEnd);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CSSMetadata.js:126:      const presets = values.map(value => `${name}: ${value}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CSSMetadata.js-127-      if (!this.isSVGProperty(name)) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/IssuesModel.js-137-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/IssuesModel.js:138:    console.warn(`No handler registered for issue code ${inspectorIssue.code}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/IssuesModel.js-139-    return [];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/DebuggerModel.js-305-      const platformPath = Common.ParsedURL.ParsedURL.urlToPlatformPath(url, Host.Platform.isWin());
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/DebuggerModel.js:306:      urlRegex = `${platformPath.escapeForRegExp()}|${url.escapeForRegExp()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/DebuggerModel.js-307-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMapManager.js-115-  _getSourceMapId(sourceURL, sourceMapURL) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMapManager.js:116:    return `${sourceURL}:${sourceMapURL}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMapManager.js-117-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMapManager.js-177-          .catch(error => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMapManager.js:178:            Common.Console.Console.instance().warn(ls`DevTools failed to load SourceMap: ${error.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMapManager.js-179-          })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-86-    if (typeof payload.id2 === 'undefined') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js:87:      return scope && payload.id ? `${scope}@${payload.id}` : payload.id;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-88-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-90-    if (typeof id2 === 'object' && ('global' in id2) !== ('local' in id2)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js:91:      return typeof id2['global'] !== 'undefined' ? `:${scope}:${id2['global']}` :
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js:92:                                                    `:${scope}:${payload.pid}:${id2['local']}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-93-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-94-    console.error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js:95:        `Unexpected id2 field at ${payload.ts / 1000}, one and only one of 'local' and 'global' should be present.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-96-    return undefined;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-276-  _addSampleEvent(event) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js:277:    const id = `${event.thread.process().id()}:${event.id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-278-    const group = this._profileGroups.get(id);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-290-  profileGroup(event) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js:291:    return this._profileGroups.get(`${event.thread.process().id()}:${event.id}`) || null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-292-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-430-          console.error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js:431:              `Begin/end event mismatch for nestable async event, ${top.name} vs. ${event.name}, key: ${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-432-          break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-448-      if (asyncEvent) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js:449:        console.error(`Event ${event.name} has already been started`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/TracingModel.js-450-        return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js-217-                    if (r.headers.get('Content-Type') != 'application/wasm') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js:218:                        console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js-219-                        return r.arrayBuffer();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js-242-    return result.then(({instance, module}) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js:243:        wasm = instance.exports;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/pkg/wasm_source_map.js-244-        init.__wbindgen_wasm_module = module;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/lib.rs-195-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/lib.rs:196:    res.locations.sort_by_key(|loc| loc.addr());
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/lib.rs:197:    res.locations.dedup_by_key(|loc| loc.addr());
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/lib.rs-198-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/lib.rs-243-  pub fn resolve(&self, addr: u32) -> Option<SourceMapEntry> {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/lib.rs:244:    let idx = match self.locations.binary_search_by_key(&addr, |loc| loc.addr()) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/lib.rs-245-      Ok(idx) => idx,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/location.rs-67-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/location.rs:68:  pub fn addr(&self) -> u32 {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/location.rs-69-    self.0.addr
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/location.rs-83-        0,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/location.rs:84:        self.addr(),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/src/location.rs-85-        self.dest(),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/README-3-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/README:4:It's compiled to Wasm + JS bindings that are used by SDK.WasmSourceMap.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/wasm_source_map/README-5-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/Connections.js-371-  if (wsParam || wssParam) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/Connections.js:372:    const ws = wsParam ? `ws://${wsParam}` : `wss://${wssParam}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/Connections.js-373-    return new WebSocketConnection(ws, websocketConnectionLost);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/Script.js-239-    const base64 = await this.debuggerModel.target().debuggerAgent().invoke_getWasmBytecode({scriptId: this.scriptId});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/Script.js:240:    const response = await fetch(`data:application/wasm;base64,${base64.bytecode}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/Script.js-241-    return response.arrayBuffer();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/Script.js-350-    let line = 0;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/Script.js:351:    // TODO: Implement binary search if necessary for large wasm modules
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/Script.js-352-    while (this._lineMap && line < this._lineMap.length && byteOffset > this._lineMap[line]) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkManager.js-905-    if (!originalNetworkRequest) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkManager.js:906:      throw new Error(`Could not find original network request for ${requestId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkManager.js-907-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServiceWorkerManager.js-683-    const localizedStatus = ServiceWorkerVersion.Status[version.status];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServiceWorkerManager.js:684:    context.setLabel(ls`${label} #${version.id} (${localizedStatus})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServiceWorkerManager.js-685-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ProfileTreeModel.js-20-    /** @type {string} */
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ProfileTreeModel.js:21:    this.callUID = `${callFrame.functionName}@${callFrame.scriptId}:${callFrame.lineNumber}:${callFrame.columnNumber}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ProfileTreeModel.js-22-    /** @type {number} */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CompilerSourceMappingContentProvider.js-85-            if (!success) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CompilerSourceMappingContentProvider.js:86:              const error = ls`Could not load content for ${this._sourceURL} (${errorDescription.message})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CompilerSourceMappingContentProvider.js-87-              console.error(error);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js-222-        Common.Console.Console.instance().warn(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js:223:            `SourceMap "${sourceMappingURL}" contains unsupported "URL" field in one of its sections.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js-224-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js-239-            if (!content || !success) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js:240:              const error = new Error(ls`Could not load content for ${sourceMapURL}: ${errorDescription.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js-241-              reject(error);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js-255-    } catch (error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js:256:      throw new Error(ls`Could not parse content for ${sourceMapURL}: ${error.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js-257-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js-1131-        'is');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js:1132:    const fields = data.split(new RegExp(`--${sanitizedBoundary}(?:--\s*$)?`, 'g'));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js-1133-    return fields.reduce(parseMultipartField, []);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js-1410-  markAsRedirect(redirectCount) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js:1411:    this._requestId = `${this._backendRequestId}:redirected.${redirectCount}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js-1412-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js-1493-        // Network.requestWillBeSentExtraInfo doesn't include headers text.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js:1494:        let requestHeadersText = `${this.requestMethod} ${this.parsedURL.path}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js-1495-        if (this.parsedURL.queryParams) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js:1496:          requestHeadersText += `?${this.parsedURL.queryParams}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js-1497-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js-1500-        for (const {name, value} of this.requestHeaders()) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js:1501:          requestHeadersText += `${name}: ${value}\r\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/NetworkRequest.js-1502-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/EmulationModel.js-366-  toSetting() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/EmulationModel.js:367:    return `${this.latitude}@${this.longitude}:${this.timezoneId}:${this.locale}:${this.error || ''}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/EmulationModel.js-368-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-147-          if (entry.hasOwnProperty(paramName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js:148:            this.showWarning(ls`Duplicate parameter "${paramName}" ignored.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-149-            continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-152-          if (paramValue === null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js:153:            this.showWarning(ls`No value found for parameter "${paramName}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-154-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-158-          // paramName is not valid
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js:159:          this.showWarning(ls`Unrecognized parameter "${paramName}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-160-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-190-            if (isNaN(duration)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js:191:              ServerTiming.showWarning(ls`Unable to parse "${paramName}" value "${paramValue}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-192-              return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-220-  static showWarning(msg) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js:221:    Common.Console.Console.instance().warn(Common.UIString.UIString(`ServerTiming: ${msg}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/ServerTiming.js-222-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SameSiteCookieIssue.js-24-    const {domain, path, name} = this._issueDetails.cookie;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SameSiteCookieIssue.js:25:    const cookieId = `${domain};${path};${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SameSiteCookieIssue.js-26-    const requestId = this._issueDetails.request ? this._issueDetails.request.requestId : 'no-request';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SameSiteCookieIssue.js:27:    return `${this.code()}-(${cookieId})-(${requestId})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/SameSiteCookieIssue.js-28-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CrossOriginEmbedderPolicyIssue.js-23-  constructor(blockedReason, requestId) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CrossOriginEmbedderPolicyIssue.js:24:    super(`CrossOriginEmbedderPolicy::${toCamelCase(blockedReason)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CrossOriginEmbedderPolicyIssue.js-25-    /** @type {!Protocol.Audits.AffectedRequest} */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CrossOriginEmbedderPolicyIssue.js-32-  primaryKey() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CrossOriginEmbedderPolicyIssue.js:33:    return `${this.code()}-(${this._affectedRequest.requestId})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CrossOriginEmbedderPolicyIssue.js-34-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CPUProfileDataModel.js-322-    if (count) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CPUProfileDataModel.js:323:      Common.Console.Console.instance().warn(ls`DevTools: CPU profile parser is fixing ${count} missing samples.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sdk/CPUProfileDataModel.js-324-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/input/InputTimeline.js-154-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/input/InputTimeline.js:155:    const fileName = `InputProfile-${new Date().toISO8601Compact()}.json`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/input/InputTimeline.js-156-    const stream = new Bindings.FileUtils.FileOutputStream();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/input/InputTimeline.js-317-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/input/InputTimeline.js:318:        console.assert(false, `Unknown action: ${actionId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/input/InputTimeline.js-319-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/extensions/ExtensionServer.js-765-            extensionOrigin, injectedAPI);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/extensions/ExtensionServer.js:766:        const name = extensionInfo.name || `Extension ${extensionOrigin}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/extensions/ExtensionServer.js-767-        this._registeredExtensions.set(extensionOrigin, {name});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/extensions/ExtensionTraceProvider.js-51-  persistentIdentifier() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/extensions/ExtensionTraceProvider.js:52:    return `${this._extensionOrigin}/${this._categoryName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/extensions/ExtensionTraceProvider.js-53-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkerCacheViews.js-215-    if (this._entryPathFilter) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkerCacheViews.js:216:      span.textContent = ls`Matching entries: ${this._returnCount}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkerCacheViews.js-217-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkerCacheViews.js:218:      span.textContent = ls`Total entries: ${this._returnCount}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkerCacheViews.js-219-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ClearStorageView.js-138-      this._securityOrigin = unreachableMainOrigin;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ClearStorageView.js:139:      this._reportView.setSubtitle(ls`${unreachableMainOrigin} (failed to load)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ClearStorageView.js-140-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DatabaseQueryView.js-298-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DatabaseQueryView.js:299:    UI.ARIAUtils.setAccessibleName(element, ls`Query: ${query}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DatabaseQueryView.js-300-    this._queryResults.push(element);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DatabaseTableView.js-90-    if (!this._dataGrid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DatabaseTableView.js:91:      this._emptyWidget = new UI.EmptyWidget.EmptyWidget(ls`The "${this.tableName}"\ntable is empty.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DatabaseTableView.js-92-      this._emptyWidget.show(this.element);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DatabaseTableView.js-146-    errorMsgElement.className = 'storage-table-error';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DatabaseTableView.js:147:    errorMsgElement.textContent = ls`An error occurred trying to\nread the "${this.tableName}" table.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DatabaseTableView.js-148-    this.element.appendChild(errorMsgElement);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/CookieItemsView.js-203-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/CookieItemsView.js:204:    const shownCookies = this.filter(allCookies, cookie => `${cookie.name()} ${cookie.value()} ${cookie.domain()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/CookieItemsView.js-205-    this._cookiesTable.setCookies(shownCookies, this._model.getCookieToBlockedReasonsMap());
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/IndexedDBViews.js-417-    const span = this._summaryBarElement.createChild('span');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/IndexedDBViews.js:418:    span.textContent = ls`Total entries: ${String(metadata.entriesCount)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/IndexedDBViews.js-419-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/IndexedDBViews.js-421-      span.textContent += separator;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/IndexedDBViews.js:422:      span.textContent += ls`Key generator value: ${String(metadata.keyGeneratorValue)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/IndexedDBViews.js-423-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/BackgroundServiceView.js-340-      const featureName = BackgroundServiceView.getUIString(this._serviceName);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/BackgroundServiceView.js:341:      centered.createChild('p').textContent = ls`Recording ${featureName} activity...`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/BackgroundServiceView.js-342-      centered.createChild('p').textContent =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/BackgroundServiceView.js:343:          ls`DevTools will record all ${featureName} activity for up to 3 days, even when closed.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/BackgroundServiceView.js-344-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/BackgroundServiceView.js-366-  async _saveToFile() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/BackgroundServiceView.js:367:    const fileName = `${this._serviceName}-${new Date().toISO8601Compact()}.json`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/BackgroundServiceView.js-368-    const stream = new Bindings.FileUtils.FileOutputStream();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-211-      image.src = 'data:image/png;base64,' + manifestIcons.primaryIcon;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js:212:      image.alt = ls`Primary manifest icon from ${url}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-213-      const title = ls`Primary icon\nas used by Chrome`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-225-    for (const shortcut of shortcuts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js:226:      const shortcutSection = this._reportView.appendSection(ls`Shortcut #${shortcutIndex}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-227-      this._shortcutSections.push(shortcutSection);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-361-        default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js:362:          console.error(`Installability error id '${installabilityError.errorId}' is not recognized`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-363-          break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-384-    image.src = url;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js:385:    image.alt = ls`Image from ${url}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-386-    wrapper.appendChild(image);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-405-    if (!result) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js:406:      iconErrors.push(ls`Icon ${iconUrl} failed to load`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-407-      return iconErrors;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-413-    if (!icon.sizes) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js:414:      iconErrors.push(ls`Icon ${iconUrl} does not specify its size in the manifest`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-415-    } else if (!/^\d+x\d+$/.test(icon.sizes)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js:416:      iconErrors.push(ls`Icon ${iconUrl} should specify its size as \`{width}x{height}\``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-417-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-424-            ls
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js:425:            `Actual width (${image.naturalWidth}px) of icon ${iconUrl} does not match specified width (${width}px)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/AppManifestView.js-426-      } else if (image.naturalHeight !== height) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DOMStorageItemsView.js-204-    let selectedNode = null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DOMStorageItemsView.js:205:    const filteredItems = item => `${item[0]} ${item[1]}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DOMStorageItemsView.js-206-    for (const item of this.filter(items, filteredItems)) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DOMStorageItemsView.js-315-    const protocol = this._domStorage.isLocalStorage ? 'localstorage' : 'sessionstorage';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DOMStorageItemsView.js:316:    const url = `${protocol}://${entry.key}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/DOMStorageItemsView.js-317-    const provider = TextUtils.StaticContentProvider.StaticContentProvider.fromString(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-861-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js:862:        console.error(`Service ${this._serviceName} does not have a dedicated icon`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-863-        return 'mediumicon-table';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-881-  get itemURL() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js:882:    return `background-service://${this._serviceName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-883-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-1504-    if (Object.keys(this._idbObjectStoreTreeElements).length === 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js:1505:      this.tooltip = ls`Version: ${this._database.version} (empty)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-1506-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js:1507:      this.tooltip = ls`Version: ${this._database.version}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-1508-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-1649-    const keyPathString = this._objectStore.keyPathString;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js:1650:    let tooltipString = keyPathString !== null ? ls`Key path: ${keyPathString}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-1651-    if (this._objectStore.autoIncrement) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-1749-    const keyPathString = this._index.keyPathString;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js:1750:    tooltipLines.push(ls`Key path: ${keyPathString}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-1751-    if (this._index.unique) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-1840-    this._cookieDomain = cookieDomain;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js:1841:    this.tooltip = ls`Cookies used by frames from ${cookieDomain}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ApplicationPanelSidebar.js-1842-    const icon = UI.Icon.Icon.create('mediumicon-cookie', 'resource-tree-item');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js-253-      const uiSection = this._getReportViewForOrigin(registration.securityOrigin).appendSection(title);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js:254:      uiSection.setUiGroupTitle(ls`Service worker for ${title}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js-255-      uiSection[this._registrationSymbol] = registration;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js-464-      errorsLabel.tabIndex = 0;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js:465:      UI.ARIAUtils.setAccessibleName(errorsLabel, ls`${this._registration.errors.length} registration errors`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js-466-      self.onInvokeElement(errorsLabel, () => Common.Console.Console.instance().show());
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js-502-      const activeEntry = this._addVersion(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js:503:          versionsStack, 'service-worker-active-circle', ls`#${active.id} activated and is ${localizedRunningStatus}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js-504-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js-621-      const clientString = element.createChild('span', 'service-worker-client-string');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js:622:      clientString.createTextChild(ls`Worker: ${targetInfo.url}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/resources/ServiceWorkersView.js-623-      return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingManager.js-66-          const option = new Option(title, title);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingManager.js:67:          UI.ARIAUtils.setAccessibleName(option, ls`${group.title}: ${title}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingManager.js-68-          groupElement.appendChild(option);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingManager.js-72-          const option = new Option(ls`Add…`, ls`Add…`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingManager.js:73:          UI.ARIAUtils.setAccessibleName(option, ls`Add ${group.title}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingManager.js-74-          groupElement.appendChild(option);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingSettingsTab.js-207-      if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingSettingsTab.js:208:        const errorMessage = ls`Profile Name characters length must be between 1 to ${maxLength} inclusive`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingSettingsTab.js-209-        return {valid, errorMessage};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingSettingsTab.js-228-        const errorMessage =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingSettingsTab.js:229:            ls`${throughput} must be a number between ${minThroughput}kb/s to ${maxThroughput}kb/s inclusive`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingSettingsTab.js-230-        return {valid, errorMessage};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingSettingsTab.js-247-      if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingSettingsTab.js:248:        const errorMessage = ls`Latency must be an integer between ${minLatency}ms to ${maxLatency}ms inclusive`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/mobile_throttling/ThrottlingSettingsTab.js-249-        return {valid, errorMessage};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/application_test_runner/ResourcesTestRunner.js-23-ApplicationTestRunner.createWebSQLDatabase = function(name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/application_test_runner/ResourcesTestRunner.js:24:  return TestRunner.evaluateInPageAsync(`_openWebSQLDatabase("${name}")`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/application_test_runner/ResourcesTestRunner.js-25-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/application_test_runner/ResourcesTestRunner.js-145-    for (const cookie of cookies) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/application_test_runner/ResourcesTestRunner.js:146:      TestRunner.addResult(`${cookie.name()}=${cookie.value()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/application_test_runner/ResourcesTestRunner.js-147-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse_test_runner/LighthouseTestRunner.js-96-  const checkedLabel = checkboxContainer.checkboxElement.checked ? 'x' : ' ';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse_test_runner/LighthouseTestRunner.js:97:  return `[${checkedLabel}] ${label}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse_test_runner/LighthouseTestRunner.js-98-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse_test_runner/LighthouseTestRunner.js-110-  const hiddenLabel = window.getComputedStyle(button).getPropertyValue('visibility');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse_test_runner/LighthouseTestRunner.js:111:  return `${button.textContent}: ${enabledLabel} ${hiddenLabel}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse_test_runner/LighthouseTestRunner.js-112-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse_test_runner/LighthouseTestRunner.js-131-  if (!helpText.classList.contains('hidden')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse_test_runner/LighthouseTestRunner.js:132:    TestRunner.addResult(`Help text: ${helpText.textContent}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/lighthouse_test_runner/LighthouseTestRunner.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/host/ResourceLoader.js-142-        if (isHTTPError(netError)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/host/ResourceLoader.js:143:          message += ls`HTTP error: status code ${statusCode}, ${netErrorName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/host/ResourceLoader.js-144-        } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/host/ResourceLoader.js-147-          // and `netErrorName` is an error code like 'net::ERR_CERT_AUTHORITY_INVALID'.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/host/ResourceLoader.js:148:          message = `${errorCategory}: ${netErrorName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/host/ResourceLoader.js-149-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/JavaScriptAutocomplete.js-778-        if (i === argumentIndex || (i < argumentIndex && args[i].startsWith('...'))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/JavaScriptAutocomplete.js:779:          argumentsElement.appendChild(UI.Fragment.html`<b>${args[i]}</b>`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/JavaScriptAutocomplete.js-780-        } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/JavaScriptAutocomplete.js-786-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/JavaScriptAutocomplete.js:787:      tooltip.appendChild(UI.Fragment.html`<div class='source-code'>\u0192(${argumentsElement})</div>`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/JavaScriptAutocomplete.js-788-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-173-    if (/^\s|\s$|^$|\n/.test(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:174:      return UI.Fragment.html`<span class="name">"${name.replace(/\n/g, '\u21B5')}"</span>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-175-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-180-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:181:    return UI.Fragment.html`<span class="name">${name}</span>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-182-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-961-    if (isInternalEntries) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:962:      this._rowContainer = UI.Fragment.html`<span class='name-and-value'>${this.nameElement}</span>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-963-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-964-      this._rowContainer =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:965:          UI.Fragment.html`<span class='name-and-value'>${this.nameElement}: ${this.valueElement}</span>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-966-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-989-    if (this.property.private || useDotNotation.test(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:990:      this.nameElement.title = parentPath ? `${parentPath}.${name}` : name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-991-    } else if (isInteger.test(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:992:      this.nameElement.title = `${parentPath}[${name}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-993-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:994:      this.nameElement.title = `${parentPath}[${JSON.stringify(name)}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-995-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-1033-    if (this.property.value.type === 'string' && typeof text === 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:1034:      text = `"${text}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-1035-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-1652-    container.textContent = text.slice(0, maxLength);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:1653:    container.title = `${text.slice(0, maxLength)}…`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-1654-    this._expandElement = container.createChild('span');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-1659-    if (this._text.length < this._maxDisplayableTextLength) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:1660:      this._expandElementText = ls`Show more (${totalBytesText})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-1661-      this._expandElement.setAttribute('data-text', this._expandElementText);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-1670-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js:1671:      this._expandElement.setAttribute('data-text', ls`long text was truncated (${totalBytesText})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPropertiesSection.js-1672-      this._expandElement.classList.add('undisplayable-text');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPopoverHelper.js-102-    if (result.type === 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPopoverHelper.js:103:      valueElement.createTextChildren(`"${description}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/object_ui/ObjectPopoverHelper.js-104-    } else if (result.type !== 'function') {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js-590-  const row = HeapProfilerTestRunner.findRow(name);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js:591:  TestRunner.assertEquals(true, !!row, `"${name}" row`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js-592-  await HeapProfilerTestRunner.expandRowPromise(row);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js-668-      if (profiles.length > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js:669:        throw `FAILED: wrong number of recorded profiles was found. profiles.length = ${profiles.length}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js-670-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-498-          typeof request.timing.pushStart === 'number' && request.timing.pushStart > 0,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js:499:          `pushStart is invalid: ${request.timing.pushStart}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js:500:      test.assertTrue(typeof request.timing.pushEnd === 'number', `pushEnd is invalid: ${request.timing.pushEnd}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-501-      test.assertTrue(request.timing.pushStart < request.startTime, 'pushStart should be before startTime');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-502-      if (request.url().endsWith('?pushUseNullEndTime')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js:503:        test.assertTrue(request.timing.pushEnd === 0, `pushEnd should be 0 but is ${request.timing.pushEnd}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-504-      } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-506-            request.timing.pushStart < request.timing.pushEnd,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js:507:            `pushStart should be before pushEnd (${request.timing.pushStart} >= ${request.timing.pushEnd})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-508-        // The below assertion is just due to the way we generate times in the moch URLRequestJob and is not generally an invariant.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1187-    if (typeof original !== 'function') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js:1188:      this.fail(`TestSuite._overrideMethod: ${methodName} is not a function`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1189-      return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1219-    const callback = arguments[arguments.length - 1];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js:1220:    const doneMessage = `DONE: ${functionName}.${++this._asyncInvocationId}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1221-    const argsString = arguments.length < 3 ?
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1224-    this.evaluateInConsole_(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js:1225:        `${functionName}(${argsString} function() { console.log('${doneMessage}'); });`, function() {});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1226-    self.SDK.consoleModel.addEventListener(SDK.ConsoleModel.Events.MessageAdded, onConsoleMessage);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1269-          typeof TimelineModel.TimelineData.forEvent(e.steps[0]).timeWaitingForMainThread !== 'number') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js:1270:        throw `Missing timeWaitingForMainThread on ${e.name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1271-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1508-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js:1509:    this.evaluateInConsole_(`new WebSocket('ws://127.0.0.1:${websocketPort}')`, () => {});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/Tests.js-1510-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_monitor/PerformanceMonitor.js-225-        self.UI.themeSupport.patchColorText('rgba(0, 0, 0, 0.55)', UI.UIUtils.ThemeSupport.ColorUsage.Foreground);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_monitor/PerformanceMonitor.js:226:    ctx.font = `10px  ${Host.Platform.fontFamily()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_monitor/PerformanceMonitor.js-227-    ctx.fillText(chartInfo.title, 8, 10);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_monitor/PerformanceMonitor.js-397-    this._canvas.height = this._height;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_monitor/PerformanceMonitor.js:398:    this._canvas.style.height = `${this._height / window.devicePixelRatio}px`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_monitor/PerformanceMonitor.js-399-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/wasmparser_worker/WasmParserWorker.js-45-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/wasmparser_worker/WasmParserWorker.js:46:  const response = await fetch(`data:application/wasm;base64,${params.content}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/wasmparser_worker/WasmParserWorker.js-47-  const buffer = await response.arrayBuffer();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter/SourceFormatter.js-148-      do {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter/SourceFormatter.js:149:        formattedURL = `${uiSourceCode.url()}:formatted${suffix}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter/SourceFormatter.js:150:        suffix = `:${count++}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter/SourceFormatter.js-151-      } while (this._project.uiSourceCodeForURL(formattedURL));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements_test_runner/ElementsTestRunner.js-1212-    if (!info) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements_test_runner/ElementsTestRunner.js:1213:      TestRunner.addResult(`${idValue}: No distance info`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements_test_runner/ElementsTestRunner.js-1214-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements_test_runner/ElementsTestRunner.js-1228-  if (!info) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements_test_runner/ElementsTestRunner.js:1229:    TestRunner.addResult(`${idValue}: No style info`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements_test_runner/ElementsTestRunner.js-1230-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/Adorner.js-86-  connectedCallback() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/Adorner.js:87:    UI.ARIAUtils.setAccessibleName(this, `${this.name}, adorner`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/Adorner.js-88-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylePropertyTreeElement.js-276-      const value = result.value.trim();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylePropertyTreeElement.js:277:      const content = UI.Fragment.html`<br /><span class='styles-clipboard-only'>${indent.repeat(2)}</span>${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylePropertyTreeElement.js-278-      container.appendChild(content);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylePropertyTreeElement.js-523-      UI.ARIAUtils.setAccessibleName(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylePropertyTreeElement.js:524:          enabledCheckboxElement, `${this.nameElement.textContent} ${this.valueElement.textContent}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylePropertyTreeElement.js-525-      this.listItemElement.insertBefore(enabledCheckboxElement, this.listItemElement.firstChild);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylePropertyTreeElement.js-873-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylePropertyTreeElement.js:874:      await this.applyStyleText(`${this.nameElement.textContent}: ${valueText}`, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylePropertyTreeElement.js-875-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsPanel.js-755-      this._splitWidget.element.classList.add('disable-resizer-for-elements-hack');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsPanel.js:756:      stylePaneWrapperElement.style.setProperty('height', `${stylePaneWrapperElement.offsetHeight}px`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsPanel.js-757-      const largeLength = 1000000;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsPanel.js:758:      stylePaneWrapperElement.style.setProperty('left', `${- 1 * largeLength}px`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsPanel.js:759:      stylePaneWrapperElement.style.setProperty('padding-left', `${largeLength}px`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsPanel.js:760:      stylePaneWrapperElement.style.setProperty('width', `calc(100% + ${largeLength}px)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsPanel.js-761-      stylePaneWrapperElement.style.setProperty('position', 'fixed');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ClassesPaneWidget.js-96-    const announcementString =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ClassesPaneWidget.js:97:        classNames.length > 1 ? ls`Classes ${joinClassString} added.` : ls`Class ${joinClassString} added.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ClassesPaneWidget.js-98-    UI.ARIAUtils.alert(announcementString, this.contentElement);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/DOMPath.js-83-    if (i) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/DOMPath.js:84:      result += `.shadowRoot.querySelector(${string})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/DOMPath.js-85-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/DOMPath.js:86:      result += `document.querySelector(${string})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/DOMPath.js-87-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-866-    separatorElement.className = 'sidebar-separator';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js:867:    separatorElement.textContent = `@keyframes ${keyframesName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-868-    return new SectionBlock(separatorElement);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-877-    separatorElement.className = 'sidebar-separator';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js:878:    separatorElement.createTextChild(ls`Inherited from${' '}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-879-    const link = await Common.Linkifier.Linkifier.linkify(node, {preventKeyboardFocus: true});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-927-    this.element.classList.add('monospace');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js:928:    UI.ARIAUtils.setAccessibleName(this.element, `${this._headerText()}, css selector`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-929-    this.element.tabIndex = -1;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-1249-    if (this._style.type === SDK.CSSStyleDeclaration.Type.Attributes) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js:1250:      return ls`${node.nodeNameInCorrectCase()}[Attributes Style]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-1251-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-1433-        case SDK.CSSMedia.Source.INLINE_SHEET: {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js:1434:          mediaTextElement.textContent = `media="${media.text}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-1435-          break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-1449-        case SDK.CSSMedia.Source.IMPORT_RULE: {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js:1450:          mediaTextElement.textContent = `@import ${media.text}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-1451-          break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-1592-      this._showAllButton.classList.remove('hidden');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js:1593:      this._showAllButton.textContent = ls`Show All Properties (${properties.length - count} more)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-1594-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-2364-          this.setTitle(ls
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js:2365:              `Increment/decrement with mousewheel or up/down keys. ${cmdOrCtrl}: R ±1, Shift: G ±1, Alt: B ±1`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-2366-        } else if (cssValueText.match(/\d+/)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-2367-          this.setTitle(ls
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js:2368:              `Increment/decrement with mousewheel or up/down keys. ${cmdOrCtrl}: ±100, Shift: ±10, Alt: ±0.1`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/StylesSidebarPane.js-2369-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ColorSwatchPopoverIcon.js-225-    if (colorName && colorName.startsWith('--')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ColorSwatchPopoverIcon.js:226:      this._swatch.setText(`var(${colorName})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ColorSwatchPopoverIcon.js-227-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsTreeElement.js-290-      const selectedElementCommand = '$0';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsTreeElement.js:291:      this._hintElement.title = ls`Use ${selectedElementCommand} in the console to refer to this element.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsTreeElement.js-292-      UI.ARIAUtils.markAsHidden(this._hintElement);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsTreeElement.js-1811-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsTreeElement.js:1812:        lines.push(`${property.name}: ${property.value};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/elements/ElementsTreeElement.js-1813-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/workspace/WorkspaceImpl.js-485-  addProject(project) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/workspace/WorkspaceImpl.js:486:    console.assert(!this._projects.has(project.id()), `A project with id ${project.id()} already exists!`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/workspace/WorkspaceImpl.js-487-    this._projects.set(project.id(), project);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-32-  console.log = (...args) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:33:    addResult(`log: ${args}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-34-  };
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-35-  console.error = (...args) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:36:    addResult(`error: ${args}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-37-  };
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-38-  console.info = (...args) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:39:    addResult(`info: ${args}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-40-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-42-    if (!assertionCondition) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:43:      addResult(`ASSERTION FAILURE: ${args.join(' ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-44-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-54-  self.addEventListener('unhandledrejection', event => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:55:    addResult(`PROMISE FAILURE: ${event.reason.stack}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-56-    completeTest();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-419-  const fileName = source[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:420:  const sourceURL = `test://evaluations/${_evaluateInPageCounter++}/` + fileName;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-421-  const lineOffset = parseInt(source[1], 10);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-423-  if (code.indexOf('sourceURL=') === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:424:    code += `//# sourceURL=${sourceURL}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-425-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-548-    const doctypeRegex = /(<!DOCTYPE.*?>)/i;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:549:    const baseTag = `<base href="${url()}">`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-550-    if (html.match(doctypeRegex)) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-556-  html = html.replace(/'/g, '\\\'').replace(/\n/g, '\\n');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:557:  return evaluateInPageAnonymously(`document.write(\`${html}\`);document.close();`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-558-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-1423-export async function dumpInspectedPageElementText(querySelector) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js:1424:  const value = await evaluateInPageAsync(`document.querySelector('${querySelector}').innerText`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/TestRunner.js-1425-  addResult(value);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/test_runner.js-57-      // TODO(crbug.com/1011811): Remove eval when we use TypeScript which does support dynamic imports
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/test_runner.js:58:      await eval(`import("${testScriptURL}")`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/test_runner.js-59-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/test_runner.js-64-    // TODO(crbug.com/1011811): Remove eval when we use TypeScript which does support dynamic imports
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/test_runner.js:65:    await eval(`import("${testScriptURL}")`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/test_runner/test_runner.js-66-  } catch (err) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/inspector_overlay/tool_highlight_impl.js-362-  if (fontFamily && fontSize !== '0px') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/inspector_overlay/tool_highlight_impl.js:363:    addTextRow('Font', `${fontSize} ${fontFamily}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/inspector_overlay/tool_highlight_impl.js-364-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SoftContextMenu.js-176-      if (item.shortcut) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SoftContextMenu.js:177:        accessibleName = ls`${item.label}, ${item.shortcut}, ${checkedState}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SoftContextMenu.js-178-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SoftContextMenu.js:179:        accessibleName = ls`${item.label}, ${checkedState}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SoftContextMenu.js-180-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SoftContextMenu.js-181-    } else if (item.shortcut) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SoftContextMenu.js:182:      accessibleName = ls`${item.label}, ${item.shortcut}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SoftContextMenu.js-183-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js-59-      console.assert(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js:60:          this._spriteSheet, `ERROR: icon ${this._iconType} has unknown spritesheet: ${this._descriptor.spritesheet}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js-61-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js-66-    } else if (iconType) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js:67:      throw new Error(`ERROR: failed to find icon descriptor for type: ${iconType}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js-68-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js-86-      if (!this._descriptor.position || !_positionRegex.test(this._descriptor.position)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js:87:        throw new Error(`ERROR: icon '${this._iconType}' has malformed position: '${this._descriptor.position}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js-88-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js-95-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js:96:    return `${this._descriptor.coordinates.x}px ${this._descriptor.coordinates.y}px`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/Icon.js-97-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/TabbedPane.js-225-    tab.setDelegate(this._delegate);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/TabbedPane.js:226:    console.assert(!this._tabsById.has(id), `Tabbed pane already contains a tab with id '${id}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/TabbedPane.js-227-    this._tabsById.set(id, tab);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/TabbedPane.js-1247-      closeButton.gray = true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/TabbedPane.js:1248:      closeButton.setAccessibleName(ls`Close ${this.title}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/TabbedPane.js-1249-      tabElement.classList.add('closeable');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ContextMenu.js-176-      if (!optional) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ContextMenu.js:177:        console.error(`Action ${actionId} was not defined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ContextMenu.js-178-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ViewManager.js-207-    ARIAUtils.markAsTabpanel(this.element);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ViewManager.js:208:    ARIAUtils.setAccessibleName(this.element, ls`${view.title()} panel`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ViewManager.js-209-    this.setDefaultFocusedElement(this.element);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ActionRegistry.js-36-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ActionRegistry.js:37:        console.error(`Category actions require a title for command menu: ${actionId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ActionRegistry.js-38-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ZoomManager.js-39-        throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ZoomManager.js:40:            `Unable to create zoom manager: window and frontendHost must be provided: ${new Error().stack}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/ZoomManager.js-41-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SuggestBox.js-176-    if (this._onlyCompletion) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SuggestBox.js:177:      ARIAUtils.alert(ls`${this._onlyCompletion.text}, suggestion`, this._element);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SuggestBox.js-178-      this._suggestBoxDelegate.applySuggestion(this._onlyCompletion, isIntermediateSuggestion);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SuggestBox.js-182-    if (suggestion && suggestion.text) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SuggestBox.js:183:      ARIAUtils.alert(ls`${suggestion.title || suggestion.text}, suggestion`, this._element);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/SuggestBox.js-184-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/UIUtils.js-731-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/UIUtils.js:732:    return ls`${description} (async)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/UIUtils.js-733-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/UIUtils.js-1756-    if (typeof computedRoot === 'symbol') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/UIUtils.js:1757:      throw new Error(`Computed value for property (${variableName}) could not be found on :root.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/ui/UIUtils.js-1758-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js-323-        const sizeAccessibleName =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js:324:            (this._coverageInfo.size() === 1) ? ls`1 byte` : ls`${this._coverageInfo.size() || 0} bytes`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js-325-        this.setCellAccessibleName(sizeAccessibleName, cell, columnId);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js-332-        unusedSizeSpan.textContent = Number.withThousandsSeparator(unusedSize);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js:333:        const unusedPercentFormatted = ls`${this._percentageString(this._coverageInfo.unusedPercentage())} %`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js-334-        unusedPercentsSpan.textContent = unusedPercentFormatted;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js:335:        const unusedAccessibleName = (unusedSize === 1) ? ls`1 byte, ${unusedPercentFormatted}` :
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js:336:                                                          ls`${unusedSize} bytes, ${unusedPercentFormatted}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js-337-        this.setCellAccessibleName(unusedAccessibleName, cell, columnId);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js-366-        this.setCellAccessibleName(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js:367:            ls`${unusedPercent} % of file unused, ${usedPercent} % of file used`, cell, columnId);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageListView.js-368-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageDecorationManager.js-165-        result.push({
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageDecorationManager.js:166:          id: `js:${location.scriptId}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageDecorationManager.js-167-          contentProvider: location.script(),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageDecorationManager.js-187-        result.push({
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageDecorationManager.js:188:          id: `css:${location.styleSheetId}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageDecorationManager.js-189-          contentProvider: location.header(),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageView.js-403-    const fos = new Bindings.FileUtils.FileOutputStream();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageView.js:404:    const fileName = `Coverage-${new Date().toISO8601Compact()}.json`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageView.js-405-    const accepted = await fos.open(fileName);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageView.js-451-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageView.js:452:        console.assert(false, `Unknown action: ${actionId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageView.js-453-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageModel.js-268-      this._coverageByContentProvider.delete(contentProvider);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageModel.js:269:      const key = `${contentProvider.startLine}:${contentProvider.startColumn}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageModel.js-270-      const urlEntry = this._coverageByURL.get(entry.url());
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageModel.js-707-  _ensureEntry(contentProvider, contentLength, lineOffset, columnOffset, type) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageModel.js:708:    const key = `${lineOffset}:${columnOffset}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage/CoverageModel.js-709-    let entry = this._coverageInfoByLocation.get(key);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-376-    if (reader.error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js:377:      const error = ls`Can't read file: ${path}: ${reader.error}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-378-      console.error(error);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-386-      result = null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js:387:      error = ls`Can't read file: ${path}: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-388-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-389-    if (result === undefined || result === null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js:390:      error = error || ls`Unknown error reading file: ${path}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-391-      console.error(error);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-430-      if (isBase64) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js:431:        blob = await (await fetch(`data:application/octet-stream;base64,${content}`)).blob();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-432-      } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-715-    const path = Common.ParsedURL.ParsedURL.urlToPlatformPath(url, Host.Platform.isWin()).trimMiddle(150);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js:716:    return ls`Linked to ${path}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/persistence/IsolatedFileSystem.js-717-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/browser_sdk/RelatedIssue.js-61-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/browser_sdk/RelatedIssue.js:62:  throw new Error(`issues can not be associated with ${obj}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/browser_sdk/RelatedIssue.js-63-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/event_listeners/EventListenersView.js-254-    this._changeCallback = changeCallback;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/event_listeners/EventListenersView.js:255:    UI.ARIAUtils.setAccessibleName(this.listItemElement, `${type}, event listener`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/event_listeners/EventListenersView.js-256-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js-204-    if (insertions === 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js:205:      insertionText = ls`${insertions} insertion (+),`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js-206-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js:207:      insertionText = ls`${insertions} insertions (+),`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js-208-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js-211-    if (deletions === 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js:212:      deletionText = ls`${deletions} deletion (-)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js-213-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js:214:      deletionText = ls`${deletions} deletions (-)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js-215-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js-216-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js:217:    this._diffStats.setText(`${insertionText} ${deletionText}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesView.js-218-    this._toolbar.setEnabled(true);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesTextEditor.js-80-    if (rowType === RowType.Deletion) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesTextEditor.js:81:      this.textarea.value = ls`Deletion:${this.textarea.value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesTextEditor.js-82-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesTextEditor.js-83-    if (rowType === RowType.Addition) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesTextEditor.js:84:      this.textarea.value = ls`Addition:${this.textarea.value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/changes/ChangesTextEditor.js-85-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_snapshot_worker/HeapSnapshot.js-1627-        for (let it = dumpNode.retainers(); it.hasNext(); it.next()) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_snapshot_worker/HeapSnapshot.js:1628:          retainers.push(`${it.item().node().name()}@${it.item().node().id()}.${it.item().name()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_snapshot_worker/HeapSnapshot.js-1629-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_snapshot_worker/HeapSnapshot.js:1630:        errors.addError(`${dumpNode.name()} @${dumpNode.id()}  weak retainers: ${retainers.join(', ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/heap_snapshot_worker/HeapSnapshot.js-1631-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewSidebarPanel.js-43-  _deselectAllItems() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewSidebarPanel.js:44:    const items = this.contentElement.querySelectorAll(`.${CSSOverviewSidebarPanel.ITEM_CLASS_NAME}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewSidebarPanel.js-45-    for (const item of items) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewSidebarPanel.js-61-  select(id) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewSidebarPanel.js:62:    const target = this.contentElement.querySelector(`[data-id=${CSS.escape(id)}]`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewSidebarPanel.js-63-    if (!target) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-177-        const nodes = nodesIds.map(nodeId => ({nodeId}));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:178:        const name = `${value} (${fontFamily}, ${fontMetric})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-179-        payload = {type, name, nodes};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-282-        <h1>${ls`Colors`}</h1>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:283:        <h2>${ls`Background colors: ${sortedBackgroundColors.length}`}</h2>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-284-        <ul>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-287-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:288:        <h2>${ls`Text colors: ${sortedTextColors.length}`}</h2>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-289-        <ul>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-292-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:293:        <h2>${ls`Fill colors: ${sortedFillColors.length}`}</h2>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-294-        <ul>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-297-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:298:        <h2>${ls`Border colors: ${sortedBorderColors.length}`}</h2>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-299-        <ul>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-307-        fontInfo.size > 0 ? this._fontInfoToFragment(fontInfo) :
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:308:                            UI.Fragment.Fragment.build`<div>${ls`There are no fonts.`}</div>`}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-309-      </div>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-315-            this._groupToFragment(unusedDeclarations, 'unused-declarations', 'declaration') :
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:316:            UI.Fragment.Fragment.build`<div class="horizontally-padded">${ls`There are no unused declarations.`}</div>`}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-317-      </div>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-323-            this._groupToFragment(mediaQueries, 'media-queries', 'text') :
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:324:            UI.Fragment.Fragment.build`<div class="horizontally-padded">${ls`There are no media queries.`}</div>`}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-325-      </div>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-339-        const {section, color} = evt.data;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:340:        id = `${section}-${color}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:341:        tabTitle = `${color.toUpperCase()} (${section})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-342-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-346-        const {declaration} = evt.data;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:347:        id = `${declaration}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:348:        tabTitle = `${declaration}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-349-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-353-        const {text} = evt.data;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:354:        id = `${text}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:355:        tabTitle = `${text}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-356-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-360-        const {name} = evt.data;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:361:        id = `${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:362:        tabTitle = `${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-363-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-381-      return UI.Fragment.Fragment.build
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:382:      `<section class="font-family"><h2>${font}</h2> ${this._fontMetricsToFragment(font, fontMetrics)}</section>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-383-    })}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-392-      ${fontMetricInfo.map(([label, values]) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:393:      const sanitizedPath = `${font}/${label}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-394-      return UI.Fragment.Fragment.build`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-420-        <button data-type="${type}" data-path="${path}" data-${dataLabel}="${title}">
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:421:          <div class="details">${ls`${nodes.length} ${itemLabel}`}</div>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-422-          <div class="bar-container">
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-448-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js:449:    const borderString = `1px solid hsl(${h}, ${s}%, ${l}%)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewCompletedView.js-450-    block.style.border = borderString;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-23-      this._add(unusedDeclarations, reason, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js:24:        declaration: `top: ${strings[topIdx]}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-25-        nodeId,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-31-      this._add(unusedDeclarations, reason, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js:32:        declaration: `left: ${strings[leftIdx]}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-33-        nodeId,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-39-      this._add(unusedDeclarations, reason, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js:40:        declaration: `right: ${strings[rightIdx]}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-41-        nodeId,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-47-      this._add(unusedDeclarations, reason, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js:48:        declaration: `bottom: ${strings[bottomIdx]}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-49-        nodeId,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-61-      this._add(unusedDeclarations, reason, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js:62:        declaration: `width: ${strings[widthIdx]}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-63-        nodeId,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-69-      this._add(unusedDeclarations, reason, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js:70:        declaration: `height: ${strings[heightIdx]}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-71-        nodeId,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-83-      this._add(unusedDeclarations, reason, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js:84:        declaration: `vertical-align: ${strings[verticalAlignIdx]}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/css_overview/CSSOverviewUnusedDeclarations.js-85-        nodeId,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-155-    } else if (needsUpdate) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js:156:      this.changeContents(`${this._width}×${this._height}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-157-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-211-    const newTab = new AttributesView(tabElements);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js:212:    tabs.CreateAndAddDropdownButton('tab_' + tabNumber, {title: UI.Fragment.html`Track #${tabNumber}`, element: newTab});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-213-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-229-    const newtab = new AttributesView(tabElements);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js:230:    tabs.CreateAndAddDropdownButton('tab_' + tabNumber, {title: UI.Fragment.html`Track #${tabNumber}`, element: newtab});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-231-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-278-    if (!renderer) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js:279:      throw new Error(`PlayerProperty ${property.name} not supported.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-280-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-288-    const kbps = Math.floor(bitsPerSecond / 1000);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js:289:    return `${kbps} kbps`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-290-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-307-    const bytesDecimal = (bytes / Math.pow(1000, power)).toFixed(2);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js:308:    return `${bytesDecimal} ${suffix}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/media/PlayerPropertiesView.js-309-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js-129-    contextMenu.defaultSection().appendItem(ls`Filter`, () => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js:130:      this._textFilterUI.setValue(`method:${node.data.method}`, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js-131-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js-135-      Host.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js:136:          `https://chromedevtools.github.io/devtools-protocol/tot/${domain}#${type}-${method}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js-137-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js-209-    return target.decorateLabel(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js:210:        `${target.name()} ${target === SDK.SDKModel.TargetManager.instance().mainTarget() ? '' : target.id()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js-211-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js-299-        const cell = this.createTD(columnId);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js:300:        cell.textContent = ls`${this.data[columnId]} ms`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_monitor/ProtocolMonitor.js-301-        return cell;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/node_main/NodeMain.js-112-  attachedToTarget(sessionId, targetInfo, waitingForDebugger) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/node_main/NodeMain.js:113:    const name = ls`Node.js: ${targetInfo.url}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/node_main/NodeMain.js-114-    const connection = new NodeConnection(this._targetAgent, sessionId);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/browser_debugger/DOMBreakpointsSidebarPane.js-114-      linkifiedNode.appendChild(linkified);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/browser_debugger/DOMBreakpointsSidebarPane.js:115:      UI.ARIAUtils.setAccessibleName(checkboxElement, ls`${breakpointTypeLabel}: ${linkified.deepTextContent()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/browser_debugger/DOMBreakpointsSidebarPane.js-116-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/browser_debugger/DOMBreakpointsSidebarPane.js-122-      element.classList.add('breakpoint-hit');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/browser_debugger/DOMBreakpointsSidebarPane.js:123:      UI.ARIAUtils.setDescription(element, ls`${checkedStateText} breakpoint hit`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/browser_debugger/DOMBreakpointsSidebarPane.js-124-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js-112-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js:113:    matchesCountSpan.textContent = `${this._searchResult.matchesCount()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js:114:    UI.ARIAUtils.setAccessibleName(matchesCountSpan, ls`Matches Count ${this._searchResult.matchesCount()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js-115-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js-160-      if (typeof resultLabel === 'number' && !isNaN(resultLabel)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js:161:        UI.ARIAUtils.setAccessibleName(labelSpan, ls`Line ${resultLabel}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js-162-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js:163:        UI.ARIAUtils.setAccessibleName(labelSpan, ls`${resultLabel}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js-164-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js-215-    contentSpan.textContent = lineContent;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js:216:    UI.ARIAUtils.setAccessibleName(contentSpan, `${lineContent} line`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/search/SearchResultsPane.js-217-    UI.UIUtils.highlightRangesWithStyleClass(contentSpan, matchRanges, 'highlighted-match');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js-62-        throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js:63:            `Unable to create settings: targetManager and workspace must be provided: ${new Error().stack}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js-64-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js-664-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js:665:    const legacyFileName = `${this._name}-legacy.js`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js:666:    const fileName = this._descriptor.modules.includes(legacyFileName) ? legacyFileName : `${this._name}.js`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js-667-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js-668-    // TODO(crbug.com/1011811): Remove eval when we use TypeScript which does support dynamic imports
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js:669:    return eval(`import('../${this._name}/${fileName}')`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js-670-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js-1201-      if (versionMatch) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js:1202:        remoteBase = `${location.origin}/remote/serve_file/${versionMatch[1]}/`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/root/Runtime.js-1203-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/ImagePreview.js-65-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/ImagePreview.js:66:          description = ls`${renderedWidth} × ${renderedHeight} pixels`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/ImagePreview.js-67-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/ImagePreview.js-117-    const imageSourceText = parsedImageURL.isValid ? parsedImageURL.displayName : ls`unknown source`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/ImagePreview.js:118:    return ls`Image from ${imageSourceText}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/ImagePreview.js-119-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/Linkifier.js-665-        section: 'reveal',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/Linkifier.js:666:        title: destination ? ls`Reveal in ${destination}` : ls`Reveal`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/Linkifier.js-667-        handler: () => Common.Revealer.reveal(revealable)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/JSPresentationUtils.js-145-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/JSPresentationUtils.js:146:      showAllLink.textContent = ls`Show ${totalHiddenCallFramesCount} more frames`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/components/JSPresentationUtils.js-147-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage_test_runner/CoverageTestRunner.js-125-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage_test_runner/CoverageTestRunner.js:126:    TestRunner.addResult(`${line}: ${markerType} ${text}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage_test_runner/CoverageTestRunner.js-127-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage_test_runner/CoverageTestRunner.js-143-    const type = Coverage.CoverageListView._typeToString(data.type());
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage_test_runner/CoverageTestRunner.js:144:    TestRunner.addResult(`${url} ${type} used: ${data.usedSize()} unused: ${data.unusedSize()} total: ${data.size()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/coverage_test_runner/CoverageTestRunner.js-145-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteText.js-402-        subtitle:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteText.js:403:            `Press ${commandMenuShortcut} and run the “Clear Site Data” command to clear cookies, storage, and more.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteText.js-404-        link: 'https://developers.google.com/web/updates/2019/04/devtools#clear',
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteText.js-630-        title: 'Search across all network headers',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteText.js:631:        subtitle: `Press ${networkSearchShortcut} in the Network panel to open the Network Search pane.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteText.js-632-        link: 'https://developers.google.com/web/updates/2018/04/devtools#network-search',
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js-15-    const topSection = this.contentElement.createChild('div', 'release-note-top-section');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js:16:    topSection.textContent = ls`${latestReleaseNote().header}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js-17-    this.contentElement.appendChild(releaseNoteElement);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js-28-    const contentContainer = container.createChild('ul');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js:29:    UI.ARIAUtils.setAccessibleName(contentContainer, ls`${latestReleaseNote().header}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js-30-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js-37-      UI.ARIAUtils.setAccessibleName(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js:38:          linkWrapper, `${highlight.title}: ${highlight.subtitle} ${linkNumber} of ${releaseNote.highlights.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js-39-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js-64-    imageLink.classList.add('release-note-image');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js:65:    imageLink.title = ls`${latestReleaseNote().header}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/help/ReleaseNoteView.js-66-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/ResourceMapping.js-44-        throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/ResourceMapping.js:45:            `Unable to create settings: targetManager and workspace must be provided: ${new Error().stack}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/ResourceMapping.js-46-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/language_plugins/CXXDWARFLanguagePlugin.js-71-  handleScript(script) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/language_plugins/CXXDWARFLanguagePlugin.js:72:    return script.isWasm() &&                       // Only handle wasm scripts
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/language_plugins/CXXDWARFLanguagePlugin.js-73-        !script.sourceURL.startsWith('wasm://') &&  // Only handle scripts with valid response URL
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/language_plugins/CXXDWARFLanguagePlugin.js-195-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/language_plugins/CXXDWARFLanguagePlugin.js:196:    console.error(`Repr for type ${value.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/language_plugins/CXXDWARFLanguagePlugin.js-197-    const numberTypes = [
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/DebuggerLanguagePlugins.js-288-      rawModuleId: script.scriptId,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/DebuggerLanguagePlugins.js:289:      // RawLocation.columnNumber is the byte offset in the full raw wasm module. Plugins expect the offset in the code
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/DebuggerLanguagePlugins.js-290-      // section, so subtract the offset of the code section in the module here.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/DebuggerLanguagePlugins.js-563-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/DebuggerLanguagePlugins.js:564:/** Raw modules represent compiled JavaScript Scripts or Wasm Modules
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/DebuggerLanguagePlugins.js-565- * @typedef {{
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/CSSWorkspaceBinding.js-48-        throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/CSSWorkspaceBinding.js:49:            `Unable to create settings: targetManager and workspace must be provided: ${new Error().stack}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/CSSWorkspaceBinding.js-50-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/DebuggerWorkspaceBinding.js-58-        throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/DebuggerWorkspaceBinding.js:59:            `Unable to create settings: targetManager and workspace must be provided: ${new Error().stack}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/bindings/DebuggerWorkspaceBinding.js-60-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/settings/FrameworkBlackboxSettingsTab.js-80-    pattern.textContent = item.pattern;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/settings/FrameworkBlackboxSettingsTab.js:81:    pattern.title = ls`Blackbox scripts whose names match '${item.pattern}'`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/settings/FrameworkBlackboxSettingsTab.js-82-    element.createChild('div', 'blackbox-separator');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Color.js-974-    const a = this._indexToValueInSpace(hash >> 24, this._alphaSpace);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Color.js:975:    const start = `hsl(${h}deg ${s}% ${l}%`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Color.js-976-    if (a !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Color.js:977:      return `${start} / ${Math.floor(a * 100)}%)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Color.js-978-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Color.js:979:    return `${start})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Color.js-980-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js-76-      if (!globalStorage || !localStorage) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js:77:        throw new Error(`Unable to create settings: global and local storage must be provided: ${new Error().stack}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js-78-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js-891-    const urls = Object.keys(oldSetting.get());
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js:892:    const textFilter = urls.map(url => `-url:${url}`).join(' ');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js-893-    if (textFilter) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js-894-      const textFilterSetting = Settings.instance().createSetting('console.textFilter', '');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js:895:      const suffix = textFilterSetting.get() ? ` ${textFilterSetting.get()}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js:896:      textFilterSetting.set(`${textFilter}${suffix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/common/Settings.js-897-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationTimeline.js-145-      const button = playbackRateControl.createChild('button', 'animation-playback-rate-button');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationTimeline.js:146:      button.textContent = playbackRate ? ls`${playbackRate * 100}%` : ls`Pause`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationTimeline.js-147-      button.playbackRate = playbackRate;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationTimeline.js-149-      UI.ARIAUtils.markAsOption(button);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationTimeline.js:150:      button.title = ls`Set speed to ${button.textContent}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationTimeline.js-151-      button.tabIndex = -1;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationTimeline.js-454-    preview.element.addEventListener('keydown', this._handleAnimationGroupKeyDown.bind(this, group));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationTimeline.js:455:    UI.ARIAUtils.setAccessibleName(preview.element, ls`Animation Preview ${this._groupBuffer.indexOf(group) + 1}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationTimeline.js-456-    UI.ARIAUtils.markAsOption(preview.element);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationUI.js-213-    group.tabIndex = 0;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationUI.js:214:    UI.ARIAUtils.setAccessibleName(group, ls`${this._animation.name()} slider`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/animation/AnimationUI.js-215-    group.style.transform = 'translateX(' + leftDistance.toFixed(2) + 'px)';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogViewColumns.js-854-    // having multiple translations for a string is not supported
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogViewColumns.js:855:    title: ls`${'Connection'}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogViewColumns.js-856-    sortingFunction: NetworkRequestNode.ResponseHeaderStringComparator.bind(null, 'connection')
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/ResourceWebSocketFrameView.js-134-    if (mask) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/ResourceWebSocketFrameView.js:135:      return ls`${localizedDescription} (Opcode ${opCode}, mask)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/ResourceWebSocketFrameView.js-136-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/ResourceWebSocketFrameView.js:137:    return ls`${localizedDescription} (Opcode ${opCode})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/ResourceWebSocketFrameView.js-138-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkSearchScope.js-91-    function headerMatchesQuery(header) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkSearchScope.js:92:      return stringMatchesQuery(`${header.name}: ${header.value}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkSearchScope.js-93-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkSearchScope.js-247-    if (header) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkSearchScope.js:248:      return `${header.name}:`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkSearchScope.js-249-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-890-    if (selectedNodeNumber !== nodeCount) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:891:      appendChunk(ls`${selectedNodeNumber} / ${nodeCount} requests`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-892-      this._summaryToolbar.appendSeparator();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-895-              Platform.NumberUtilities.bytesToString(transferSize)} transferred`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:896:          ls`${selectedTransferSize} B / ${transferSize} B transferred over network`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-897-      this._summaryToolbar.appendSeparator();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-900-              Platform.NumberUtilities.bytesToString(resourceSize)} resources`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:901:          ls`${selectedResourceSize} B / ${resourceSize} B resources loaded by the page`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-902-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:903:      appendChunk(ls`${nodeCount} requests`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-904-      this._summaryToolbar.appendSeparator();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-905-      appendChunk(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:906:          ls`${Platform.NumberUtilities.bytesToString(transferSize)} transferred`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:907:          ls`${transferSize} B transferred over network`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-908-      this._summaryToolbar.appendSeparator();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-909-      appendChunk(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:910:          ls`${Platform.NumberUtilities.bytesToString(resourceSize)} resources`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:911:          ls`${resourceSize} B resources loaded by the page`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-912-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-915-      this._summaryToolbar.appendSeparator();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:916:      appendChunk(ls`Finish: ${Number.secondsToString(maxTime - baseTime)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-917-      if (this._mainRequestDOMContentLoadedTime !== -1 && this._mainRequestDOMContentLoadedTime > baseTime) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-919-        const domContentLoadedText =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:920:            ls`DOMContentLoaded: ${Number.secondsToString(this._mainRequestDOMContentLoadedTime - baseTime)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-921-        appendChunk(domContentLoadedText).style.color = NetworkLogView.getDCLEventColor();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-924-        this._summaryToolbar.appendSeparator();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:925:        const loadText = ls`Load: ${Number.secondsToString(this._mainRequestLoadTime - baseTime)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-926-        appendChunk(loadText).style.color = NetworkLogView.getLoadEventColor();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-1908-    const options = JSON.stringify(fetchOptions, null, 2);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:1909:    return `fetch(${url}, ${options});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-1910-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-2080-      return '"' +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js:2081:          str.replace(/[`\$"]/g, '`$&').replace(/[^\x20-\x7E]/g, char => '$([char]' + char.charCodeAt(0) + ')') + '"';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkLogView.js-2082-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-305-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js:306:    element.style.backgroundColor = `var(${this.backgroundColor()})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-307-    this._parentView.stylesChanged();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1263-      cell.createTextChild(ls`(memory cache)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js:1264:      cell.title = ls`Served from memory cache, resource size: ${resourceSize}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1265-      cell.classList.add('network-dim-cell');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1267-      cell.createTextChild(ls`(ServiceWorker)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js:1268:      cell.title = ls`Served from ServiceWorker, resource size: ${resourceSize}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1269-      cell.classList.add('network-dim-cell');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1273-      cell.createTextChild(ls`(signed-exchange)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js:1274:      cell.title = ls`Served from Signed HTTP Exchange, resource size: ${resourceSize}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1275-      cell.classList.add('network-dim-cell');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1277-      cell.createTextChild(ls`(prefetch cache)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js:1278:      cell.title = ls`Served from prefetch cache, resource size: ${resourceSize}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1279-      cell.classList.add('network-dim-cell');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1281-      cell.createTextChild(ls`(disk cache)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js:1282:      cell.title = ls`Served from disk cache, resource size: ${resourceSize}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1283-      cell.classList.add('network-dim-cell');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1286-      cell.createTextChild(transferSize);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js:1287:      cell.title = `${transferSize} transferred over network, resource size: ${resourceSize}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1288-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1329-    const primaryColumn = this.dataGrid.visibleColumnsArray[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js:1330:    const localizedTitle = ls`${primaryColumn.title}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1331-    const localizedLevel = ls`level 1`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1332-    this.nodeAccessibleText =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js:1333:        `${localizedLevel} ${localizedTitle}: ${this.cellAccessibleTextMap.get(primaryColumn.id)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkDataGridNode.js-1334-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkPanel.js-194-    for (const filter of filters) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkPanel.js:195:      filterString += `${filter.filterType}:${filter.filterValue} `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/NetworkPanel.js-196-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/RequestTimingView.js-270-      bar.textContent = '\u200B';  // Important for 0-time items to have 0 width.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/RequestTimingView.js:271:      UI.ARIAUtils.setAccessibleName(row, ls`Started at ${calculator.formatValue(range.start, 2)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network/RequestTimingView.js-272-      const label = tr.createChild('td').createChild('div', 'network-timing-bar-title');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-262-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js:263:      const rowHeader = ls`${this._displayName} Row ${expandText}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js:264:      accessibleText = `${rowHeader} ${this.selectedNode.nodeAccessibleText}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-265-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-267-      const children = this._enumerateChildren(this._rootNode, [], 1);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js:268:      const items = ls`Rows: ${children.length}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-269-      accessibleText = ls`${
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-1369-              contextMenu.defaultSection().appendItem(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js:1370:                  ls`Edit "${firstColumn.title}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-1371-                  this._startEditingColumnOfDataGridNode.bind(this, gridNode, firstEditColumnIndex));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-1713-    if (this._hasChildren || !this.parent._isRoot) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js:1714:      accessibleTextArray.push(ls`level ${this.depth + 1}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-1715-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-1719-      // Add each visibile cell to the node's accessible text by gathering 'Column Title: content'
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js:1720:      const localizedTitle = ls`${column.title}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js:1721:      accessibleTextArray.push(`${localizedTitle}: ${this.cellAccessibleTextMap.get(column.id) || cell.textContent}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/data_grid/DataGrid.js-1722-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/services/ServiceManager.js-49-    if (queryParams.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/services/ServiceManager.js:50:      url += `?${queryParams.join('&')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/services/ServiceManager.js-51-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-288-  TestRunner.waitForPendingLiveLocationUpdates();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js:289:  TestRunner.addResult(`Text details for ${event.name}: ${details}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-290-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-291-  if (TimelineModel.TimelineData.forEvent(event).warning) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js:292:    TestRunner.addResult(`${event.name} has a warning`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-293-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-383-        (groupIndex + 1 < timelineData.groups.length ? timelineData.groups[groupIndex + 1].startLevel : stackDepth);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js:384:    TestRunner.addResult(`Group: ${group.name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-385-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-386-    for (let level = group.startLevel; level < maxLevel; ++level) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js:387:      TestRunner.addResult(`Level ${level - group.startLevel}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-388-      const entries = entriesByLevel.get(level);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-392-        const color = provider.entryColor(index);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js:393:        TestRunner.addResult(`${title} (${color})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/performance_test_runner/TimelineTestRunner.js-394-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/InplaceFormatterEditorAction.js-41-    if (isFormattable) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/InplaceFormatterEditorAction.js:42:      this._button.setTitle(Common.UIString.UIString(`Format ${uiSourceCode.name()}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/InplaceFormatterEditorAction.js-43-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js-505-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js:506:    // Block popover eager evaluation for Wasm frames for now. We don't have
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js:507:    // a way to Debug-Evaluate Wasm yet, and the logic below assumes JavaScript
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js-508-    // source code. See https://crbug.com/1063875 for details.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js-1563-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js:1564:    // Check to see if it is Wasm Disassembly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js-1565-    const script = this._getScriptForCurrentUISourceCode();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js-1755-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js:1756:    // Check to see if it is Wasm Disassembly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPlugin.js-1757-    const script = this._getScriptForCurrentUISourceCode();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/GoToLineQuickOpen.js-46-      const linesCount = sourceFrame.textEditor.linesCount;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/GoToLineQuickOpen.js:47:      return ls`Current line: ${currentLineNumber}. Type a line number between 1 and ${linesCount} to navigate to.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/GoToLineQuickOpen.js-48-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/GoToLineQuickOpen.js-49-    if (position.column && position.column > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/GoToLineQuickOpen.js:50:      return ls`Go to line ${position.line} and column ${position.column}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/GoToLineQuickOpen.js-51-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/GoToLineQuickOpen.js:52:    return ls`Go to line ${position.line}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/GoToLineQuickOpen.js-53-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js-142-    function searchPath() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js:143:      SearchSourcesView.openSearch(`file:${path.trim()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js-144-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js-1052-    this.listItemElement.classList.add('navigator-' + type + '-tree-item', 'navigator-folder-tree-item');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js:1053:    UI.ARIAUtils.setAccessibleName(this.listItemElement, `${title}, ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js-1054-    this._nodeType = type;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js-1100-    this.tooltip = paths.join('/');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js:1101:    UI.ARIAUtils.setAccessibleName(this.listItemElement, `${this.title}, ${this._nodeType}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js-1102-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js-1155-    this.tooltip = uiSourceCode.url();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js:1156:    UI.ARIAUtils.setAccessibleName(this.listItemElement, `${uiSourceCode.name()}, ${this._nodeType}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/NavigatorView.js-1157-    Common.EventTarget.fireEvent('source-tree-file-added', uiSourceCode.fullDisplayName());
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/sources_strings.grdp-261-  <message name="IDS_DEVTOOLS_6f3f982e7cdcc7ac653a7f571edb753f" desc="Text in Debugger Plugin pretty-print details message of the Sources panel">
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/sources_strings.grdp:262:    Pretty-printing will format this file in a new tab where you can continue debugging. You can also pretty-print this file by clicking the <ph name="TOOLBAR_ELEMENT">$1s<ex>{}</ex></ph> button on the bottom status bar.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/sources_strings.grdp-263-  </message>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/ScopeChainSidebarPane.js-142-      if (scopeName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/ScopeChainSidebarPane.js:143:        title = ls`Closure (${UI.UIUtils.beautifyFunctionName(scopeName)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/ScopeChainSidebarPane.js-144-      } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/ScriptFormatterEditorAction.js-57-    if (isFormattable) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/ScriptFormatterEditorAction.js:58:      this._button.setTitle(Common.UIString.UIString(`Pretty print ${uiSourceCode.name()}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/ScriptFormatterEditorAction.js-59-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPausedMessage.js-56-    const breakpointType = BreakpointTypeNouns.get(data.type);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPausedMessage.js:57:    mainElement.appendChild(createTextNode(ls`Paused on ${breakpointType}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/DebuggerPausedMessage.js-58-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/BreakpointEditDialog.js-33-    const toolbar = new UI.Toolbar.Toolbar('source-frame-breakpoint-toolbar', this.contentElement);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/BreakpointEditDialog.js:34:    toolbar.appendText(`Line ${editorLineNumber + 1}:`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/BreakpointEditDialog.js-35-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/BreakpointEditDialog.js-70-  static _conditionForLogpoint(condition) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/BreakpointEditDialog.js:71:    return `${LogpointPrefix}${condition}${LogpointSuffix}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/BreakpointEditDialog.js-72-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/CoveragePlugin.js-82-      this._text.setTitle(ls`Show Details`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/CoveragePlugin.js:83:      this._text.setText(ls`Coverage: ${this._coverage.usedPercentage().toFixed(1)} %`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/CoveragePlugin.js-84-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/JavaScriptBreakpointsSidebarPane.js-229-    if (item.isSelected) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/JavaScriptBreakpointsSidebarPane.js:230:      UI.ARIAUtils.setDescription(element, ls`${checkedDescription} breakpoint hit`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/sources/JavaScriptBreakpointsSidebarPane.js-231-      element.classList.add('breakpoint-hit');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts-2471-    /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts:2472:     * Execute a Wasm Evaluator module on a given call frame.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts-2473-     */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts-3120-    /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts:3121:     * Execute a Wasm Evaluator module on a given call frame.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts-3122-     */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-11835-    /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts:11836:     * Debug symbols available for a wasm script.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-11837-     */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-11987-      /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts:11988:       * Script source (empty in case of Wasm bytecode).
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-11989-       */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-11991-      /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts:11992:       * Wasm bytecode.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-11993-       */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-11998-      /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts:11999:       * Id of the Wasm script to get source for.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-12000-       */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-13032-      Bigint = 'bigint',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts:13033:      Wasm = 'wasm',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/generated/protocol.d.ts-13034-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-511-        InspectorBackend.reportProtocolError(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js:512:            `Protocol Error: the message ${messageObject.method} is for non-existing domain '${domainName}'`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-513-            messageObject);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-754-        errorCallback(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js:755:            `Protocol Error: Invalid number of arguments for method '${method}' call. ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js:756:            `It must have the following arguments ${JSON.stringify(signature)}'.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-757-        return null;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-766-        errorCallback(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js:767:            `Protocol Error: Invalid type of argument '${paramName}' for method '${method}' call. ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js:768:            `It must be '${typeName}' but it is '${typeof value}'.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-769-        return null;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-776-    if (args.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js:777:      errorCallback(`Protocol Error: Extra ${args.length} arguments in a call to method '${method}'.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-778-      return null;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-912-      InspectorBackend.reportProtocolError(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js:913:          `Protocol Error: Attempted to dispatch an unspecified method '${messageObject.method}'`, messageObject);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/protocol_client/InspectorBackend.js-914-      return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/source_frame/FontView.js-46-    this._url = contentProvider.contentURL();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/source_frame/FontView.js:47:    UI.ARIAUtils.setAccessibleName(this.element, ls`Preview of font from ${this._url}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/source_frame/FontView.js-48-    this._mimeType = mimeType;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/source_frame/ImageView.js-68-    this._imagePreviewElement.addEventListener('contextmenu', this._contextMenu.bind(this), true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/source_frame/ImageView.js:69:    this._imagePreviewElement.alt = ls`Image from ${this._url}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/source_frame/ImageView.js-70-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/source_frame/SourceFrame.js-829-      const location = this._prettyToRawLocation(textRange.endLine, textRange.endColumn);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/source_frame/SourceFrame.js:830:      this._sourcePosition.setText(ls`Line ${location[0] + 1}, Column ${location[1] + 1}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/source_frame/SourceFrame.js-831-      return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/SensorsView.js-107-    const cmdOrCtrl = Host.Platform.isMac() ? '\u2318' : 'Ctrl';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/SensorsView.js:108:    const modifierKeyMessage = ls`Adjust with mousewheel or up/down keys. ${cmdOrCtrl}: ±10, Shift: ±1, Alt: ±0.01`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/SensorsView.js-109-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js-95-    } else if (value > MaxDeviceSize) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js:96:      errorMessage = ls`Width must be less than or equal to ${MaxDeviceSize}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js-97-    } else if (value < MinDeviceSize) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js:98:      errorMessage = ls`Width must be greater than or equal to ${MinDeviceSize}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js-99-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js-116-    } else if (value > MaxDeviceSize) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js:117:      errorMessage = ls`Height must be less than or equal to ${MaxDeviceSize}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js-118-    } else if (value < MinDeviceSize) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js:119:      errorMessage = ls`Height must be greater than or equal to ${MinDeviceSize}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js-120-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js-140-    } else if (value > MaxDeviceScaleFactor) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js:141:      errorMessage = ls`Device pixel ratio must be less than or equal to ${MaxDeviceScaleFactor}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js-142-    } else if (value < MinDeviceScaleFactor) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js:143:      errorMessage = ls`Device pixel ratio must be greater than or equal to ${MinDeviceScaleFactor}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DeviceModeModel.js-144-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js-193-      } else if (value.length > maxLength) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js:194:        errorMessage = ls`Location name must be less than ${maxLength} characters`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js-195-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js-222-      } else if (parseFloat(value) < minLat) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js:223:        errorMessage = ls`Latitude must be greater than or equal to ${minLat}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js-224-      } else if (parseFloat(value) > maxLat) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js:225:        errorMessage = ls`Latitude must be less than or equal to ${maxLat}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js-226-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js-253-      } else if (parseFloat(value) < minLong) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js:254:        errorMessage = ls`Longitude must be greater than or equal to ${minLong}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js-255-      } else if (parseFloat(value) > maxLong) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js:256:        errorMessage = ls`Longitude must be less than or equal to ${maxLong}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/LocationsSettingsTab.js-257-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DevicesSettingsTab.js-245-      if (value.length >= MaxDeviceNameLength) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DevicesSettingsTab.js:246:        errorMessage = ls`Device name must be less than ${MaxDeviceNameLength} characters.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/emulation/DevicesSettingsTab.js-247-      } else if (value.length === 0) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js-28-      if (!node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js:29:        console.error(`Node with unknown id ${samples[i]} at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js-30-        continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js-129-        if (depth < lockedDepth) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js:130:          console.error(`Child stack is shallower (${depth}) than the parent stack (${lockedDepth}) at ${time}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js-131-          depth = lockedDepth;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js-134-      if (jsFramesStack.length < depth) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js:135:        console.error(`Trying to truncate higher than the current stack size at ${time}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js-136-        depth = jsFramesStack.length;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js-257-    if (!name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js:258:      name = ls`Thread ${tid}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineJSProfile.js-259-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineProfileTree.js-625-  if (event.name === RecordType.TimeStamp) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineProfileTree.js:626:    return `${event.name}:${event.args.data.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineProfileTree.js-627-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineProfileTree.js-635-      TimelineJSProfileProcessor.nativeGroup(functionName) || functionName :
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineProfileTree.js:636:      `${functionName}:${frame['lineNumber']}:${frame['columnNumber']}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineProfileTree.js:637:  return `f:${name}@${location}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineProfileTree.js-638-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineFrameModel.js-221-      console.assert(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineFrameModel.js:222:          false, `Inconsistent frame time for frame ${this._frames.length} (${frame.startTime} - ${frame.endTime})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineFrameModel.js-223-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-165-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js:166:    return `${event.thread.process().id()}.${id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-167-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-642-    const track = new Track();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js:643:    track.name = thread.name() || ls`Thread ${thread.id()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-644-    track.type = TrackType.Other;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-652-      track.url = url;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js:653:      track.name = track.url ? ls`Worker — ${track.url}` : ls`Dedicated Worker`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-654-    } else if (thread.name().startsWith('CompositorTileWorker')) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-668-        if (target) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js:669:          track.name = ls`Worker: ${target.name()} — ${track.url}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-670-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-725-      console.error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js:726:          `Children are longer than parent at ${event.startTime} ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js:727:          `(${(child.startTime - this.minimumRecordTime()).toFixed(3)} by ${(-event.selfTime).toFixed(3)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TimelineModel.js-728-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TracingLayerTree.js-79-    if (!tile) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TracingLayerTree.js:80:      Common.Console.Console.instance().error(`Tile ${tileId} is missing`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TracingLayerTree.js-81-      return /** @type {!Promise<?SDK.PaintProfiler.SnapshotWithRect>} */ (Promise.resolve(null));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TracingLayerTree.js-84-    if (!layer) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TracingLayerTree.js:85:      Common.Console.Console.instance().error(`Layer ${tile.layer_id} for tile ${tileId} is not found`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/timeline_model/TracingLayerTree.js-86-      return /** @type {!Promise<?SDK.PaintProfiler.SnapshotWithRect>} */ (Promise.resolve(null));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleContextSelector.js-296-    this._toolbarItem.element.classList.toggle('warning', !this._isTopContext(item) && this._hasTopContext());
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleContextSelector.js:297:    const title = item ? ls`JavaScript context: ${this.titleFor(item)}` : ls`JavaScript context: Not selected`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleContextSelector.js-298-    this._toolbarItem.setTitle(title);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js-560-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js:561:    this._filterStatusText.setText(ls`${this._hiddenByFilterCount} hidden`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js-562-    this._filterStatusText.setVisible(!!this._hiddenByFilterCount);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js-785-    if (consoleMessage && consoleMessage.url) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js:786:      const menuTitle = ls`Hide messages from ${new Common.ParsedURL.ParsedURL(consoleMessage.url).displayName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js-787-      contextMenu.headerSection().appendItem(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js-1444-    this._levelMenuButton.setText(text);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js:1445:    this._levelMenuButton.setTitle(ls`Log level: ${text}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js-1446-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js-1482-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js:1483:    const suffix = this._textFilterUI.value() ? ` ${this._textFilterUI.value()}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js:1484:    this._textFilterUI.setValue(`-url:${url}${suffix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleView.js-1485-    this._textFilterSetting.set(this._textFilterUI.value());
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js-243-          messageElement.title =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js:244:              ls`Clear all messages with ${self.UI.shortcutRegistry.shortcutTitleForAction('console.clear')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js-245-          break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js-1408-    this._repeatCountElement.textContent = this._repeatCount;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js:1409:    let accessibleName = ls`Repeat ${this._repeatCount}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js-1410-    if (this._message.level === SDK.ConsoleModel.MessageLevel.Warning) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js:1411:      accessibleName = ls`Warning ${accessibleName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js-1412-    } else if (this._message.level === SDK.ConsoleModel.MessageLevel.Error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js:1413:      accessibleName = ls`Error ${accessibleName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console/ConsoleViewMessage.js-1414-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js-78-  for (const request of self.SDK.networkLog.requests()) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js:79:    TestRunner.addResult(`* ${request.url()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js:80:    TestRunner.addResult(`  failed: ${!!request.failed}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js:81:    TestRunner.addResult(`  statusCode: ${request.statusCode}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js:82:    TestRunner.addResult(`  resourceType: ${request.resourceType().name()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js-83-    if (request.signedExchangeInfo()) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js-86-        const header = request.signedExchangeInfo().header;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js:87:        TestRunner.addResult(`    Request URL: ${header.requestUrl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js-88-        for (const signature of header.signatures) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js:89:          TestRunner.addResult(`    Certificate URL: ${signature.certUrl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js-90-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js-93-        const securityDetails = request.signedExchangeInfo().securityDetails;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js:94:        TestRunner.addResult(`    Certificate Subject: ${securityDetails.subjectName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js:95:        TestRunner.addResult(`    Certificate Issuer: ${securityDetails.issuer}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js-96-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js-98-        for (const errorMessage of request.signedExchangeInfo().errors) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js:99:          TestRunner.addResult(`    Error: ${JSON.stringify(errorMessage)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/network_test_runner/NetworkTestRunner.js-100-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-134-    if (errors === 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js:135:      errorCountTitle = ls`${errors} error`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-136-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js:137:      errorCountTitle = ls`${errors} errors`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-138-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-142-    if (warnings === 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js:143:      warningCountTitle = ls`${warnings} warning`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-144-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js:145:      warningCountTitle = ls`${warnings} warnings`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-146-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-151-      if (violations === 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js:152:        violationCountTitle = ls`${violations} violation`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-153-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js:154:        violationCountTitle = ls`${violations} violations`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-155-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-162-      if (issues === 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js:163:        issuesCountTitle = ls`Issues pertaining to ${issues} operation detected.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-164-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js:165:        issuesCountTitle = ls`Issues pertaining to ${issues} operations detected.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-166-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-172-    if (errors & warnings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js:173:      this._titles = ls`${errorCountTitle}, ${warningCountTitle}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/console_counters/WarningErrorCounter.js-174-    } else if (errors) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-441-      UI.ARIAUtils.markAsButton(colorElement);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js:442:      UI.ARIAUtils.setAccessibleName(colorElement, ls`Color ${palette.colors[i]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-443-      colorElement.tabIndex = -1;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-460-        shadow.style.background = palette.colors[i];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js:461:        colorElement.title = ls`Long-click or long-press space to show alternate shades of ${palette.colors[i]}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-462-        UI.ARIAUtils.setAccessibleName(colorElement, colorElement.title);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-523-      UI.ARIAUtils.markAsButton(shadeElement);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js:524:      UI.ARIAUtils.setAccessibleName(shadeElement, ls`Color ${shades[i]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-525-      shadeElement.tabIndex = -1;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-1005-            this._textValues[i],
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js:1006:            /** R in RGBA */ ls`${this._textLabels.textContent.charAt(i)} in ${this._textLabels.textContent}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-1007-        this._textValues[i].value = colorValues[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-1013-          this._textValues[3],
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js:1014:          /** A in RGBA */ ls`${this._textLabels.textContent.charAt(3)} in ${this._textLabels.textContent}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/color_picker/Spectrum.js-1015-      this._textValues[3].value = Math.round(colorValues[3] * 100) / 100;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-48-  static get MS_DISPLAY_VALUE() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:49:    return `%10d${NBSP}ms`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-50-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-264-      if (preserveHost) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:265:        name = `${parsedUrl.host}/${name.replace(/^\//, '')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-266-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-267-      if (preserveQuery) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:268:        name = `${name}${parsedUrl.search}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-269-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-273-    // Always elide hexadecimal hash
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:274:    name = name.replace(/([a-f0-9]{7})[a-f0-9]{13}[a-f0-9]*/g, `$1${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-275-    // Also elide other hash-like mixed-case strings
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-276-    name = name.replace(/([a-zA-Z0-9-_]{9})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9-_]{10,}/g,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:277:      `$1${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-278-    // Also elide long number sequences
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:279:    name = name.replace(/(\d{3})\d{6,}/g, `$1${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-280-    // Merge any adjacent ellipses
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-285-      // Try to leave the first query parameter intact
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:286:      name = name.replace(/\?([^=]*)(=)?.*/, `?$1$2${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-287-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-289-      if (name.length > MAX_LENGTH) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:290:        name = name.replace(/\?.*/, `?${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-291-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-299-          // Show file extension
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:300:          `${ELLIPSIS}${name.slice(dotIndex)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-301-      } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-344-    if (!listOfTlds.includes(tlds[0])) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:345:      return `.${tlds[tlds.length - 1]}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-346-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-347-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:348:    return `.${tlds.join('.')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-349-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-407-        const {cpuSlowdownMultiplier, requestLatencyMs} = throttling;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:408:        cpuThrottling = `${Util.i18n.formatNumber(cpuSlowdownMultiplier)}x slowdown (DevTools)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:409:        networkThrottling = `${Util.i18n.formatNumber(requestLatencyMs)}${NBSP}ms HTTP RTT, ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:410:          `${Util.i18n.formatNumber(throttling.downloadThroughputKbps)}${NBSP}Kbps down, ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:411:          `${Util.i18n.formatNumber(throttling.uploadThroughputKbps)}${NBSP}Kbps up (DevTools)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-412-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-415-        const {cpuSlowdownMultiplier, rttMs, throughputKbps} = throttling;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:416:        cpuThrottling = `${Util.i18n.formatNumber(cpuSlowdownMultiplier)}x slowdown (Simulated)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:417:        networkThrottling = `${Util.i18n.formatNumber(rttMs)}${NBSP}ms TCP RTT, ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:418:          `${Util.i18n.formatNumber(throughputKbps)}${NBSP}Kbps throughput (Simulated)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-419-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-699-    if (!template) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:700:      throw new Error(`Template not found: template${selector}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-701-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-811-    if (result === null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:812:      throw new Error(`query ${query} not found`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-813-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1135-      displayedPath = parsed.file === '/' ? parsed.origin : parsed.file;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:1136:      displayedHost = parsed.file === '/' ? '' : `(${parsed.hostname})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1137-      title = url;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1225-    // eslint-disable-next-line no-console
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:1226:    console.error(`Unknown details type: ${type}`, value);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1227-    const element = this._dom.createElement('details', 'lh-unknown');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1228-    this._dom.createChildOf(element, 'summary').textContent =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:1229:      `We don't know how to render audit details of type \`${type}\`. ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1230-      'The Lighthouse version that collected this data is likely newer than the Lighthouse ' +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1397-      const valueType = heading.valueType || 'text';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:1398:      const classes = `lh-table-column--${valueType}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1399-      const labelEl = this._dom.createElement('div', 'lh-text');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1441-        if (valueFragment.childElementCount) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:1442:          const classes = `lh-table-column--${heading.valueType}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1443-          this._dom.createChildOf(rowElem, 'td', classes).appendChild(valueFragment);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1510-      element = this.renderTextURL(item.url);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:1511:      this._dom.find('a', element).textContent += `:${line}:${column}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1512-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:1513:      element = this._renderText(`${item.url}:${line}:${column} (from sourceURL)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-1514-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2168-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:2169:  const filenamePrefix = `${hostname}_${dateStr}_${timeStr}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2170-  // replace characters that are unfriendly to filenames
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2506-        /** @type {HTMLInputElement} */ (this._dom.find('input', filterTemplate));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:2507:      const id = `lh-3p-filter-label--${index}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2508-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2527-      this._dom.find('.lh-3p-filter-count', filterTemplate).textContent =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:2528:          `${thirdPartyRows.size}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2529-      this._dom.find('.lh-3p-ui-string', filterTemplate).textContent =
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2759-    const fetchTime = json.fetchTime || fallbackFetchTime;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:2760:    const windowName = `${json.lighthouseVersion}-${json.requestedUrl}-${fetchTime}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:2761:    const popup = window.open(`${VIEWER_ORIGIN}${viewerPath}`, windowName);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2762-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2839-    const a = this._dom.createElement('a');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:2840:    a.download = `${filename}${ext}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2841-    a.href = href;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2886-    // Mutate at end to avoid layout thrashing.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:2887:    this.highlightEl.style.transform = `translate(${offset}px)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-2888-    this.stickyHeaderEl.classList.toggle('lh-sticky-header--visible', showStickyHeader);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3267-    const rating = Util.calculateRating(score, scoreDisplayMode);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3268:    element.classList.add(`lh-audit--${scoreDisplayMode.toLowerCase()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3269-    if (scoreDisplayMode !== 'informative') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3270:      element.classList.add(`lh-audit--${rating}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3271-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3358-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3359:      auditGroupElem.classList.add(`lh-audit-group--${groupId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3360-      auditElements.push(auditGroupElem);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3408-    const itemCountEl = this.dom.find('.lh-audit-group__itemcount', clumpElement);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3409:    itemCountEl.textContent = `(${auditRefs.length})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3410-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3414-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3415:    clumpElement.classList.add(`lh-clump--${clumpId.toLowerCase()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3416-    return clumpElement;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3434-    const wrapper = /** @type {HTMLAnchorElement} */ (this.dom.find('.lh-gauge__wrapper', tmpl));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3435:    wrapper.href = `#${category.id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3436:    wrapper.classList.add(`lh-gauge__wrapper--${Util.calculateRating(category.score)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3437-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3473-    const rotationalAdjustmentPercent = 0.25 * strokeWidthPx / circumferencePx;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3474:    arcElem.style.transform = `rotate(${-90 + rotationalAdjustmentPercent * 360}deg)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3475-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3481-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3482:    arcElem.style.strokeDasharray = `${Math.max(arcLengthPx, 0)} ${circumferencePx}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3483-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3626-    const rating = Util.calculateRating(audit.result.score, audit.result.scoreDisplayMode);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3627:    element.classList.add(`lh-metric--${rating}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3628-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3667-    const displayEl = this.dom.find('.lh-audit__display-text', element);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3668:    const sparklineWidthPct = `${details.overallSavingsMs / scale * 100}%`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3669-    this.dom.find('.lh-sparkline__bar', element).style.width = sparklineWidthPct;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3957-      tmpl));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3958:    wrapper.href = `#${category.id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3959-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3971-      for (const passingGroupId of passingGroupIds) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:3972:        wrapper.classList.add(`lh-badged--${passingGroupId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-3973-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4024-      const title = groupDefinitions[groupId].title;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4025:      tips.push(`${title}: ${passedCount}/${auditCount}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4026-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4043-    for (const groupId of passsingGroupIds) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4044:      const groupElem = this.dom.find(`.lh-audit-group--${groupId}`, auditsElem);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4045-      groupElem.classList.add('lh-badged');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4065-      const oldId = el.id;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4066:      const newId = `${oldId}-${idSuffix}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4067-      el.id = newId;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4069-      // Update all <use>s.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4070:      const useEls = svgRoot.querySelectorAll(`use[href="#${oldId}"]`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4071-      for (const useEl of useEls) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4072:        useEl.setAttribute('href', `#${newId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4073-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4075-      // Update all fill="url(#...)"s.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4076:      const fillEls = svgRoot.querySelectorAll(`[fill="url(#${oldId})"]`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4077-      for (const fillEl of fillEls) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4078:        fillEl.setAttribute('fill', `url(#${newId})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4079-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4402-    const kbs = this._numberFormatter.format(Math.round(size / 1024 / granularity) * granularity);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4403:    return `${kbs}${NBSP2}KB`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4404-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4412-    const coarseTime = Math.round(ms / granularity) * granularity;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4413:    return `${this._numberFormatter.format(coarseTime)}${NBSP2}ms`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4414-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4422-    const coarseTime = Math.round(ms / 1000 / granularity) * granularity;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4423:    return `${this._numberFormatter.format(coarseTime)}${NBSP2}s`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4424-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4472-        timeInSeconds -= numberOfUnits * unit;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js:4473:        parts.push(`${numberOfUnits}\xa0${label}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report.js-4474-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report-generator.js-106-    /** @param {string} value @return {string} */
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report-generator.js:107:    const escape = value => `"${value.replace(/"/g, '""')}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/report-assets/report-generator.js-108-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-3055-if(!Number.isFinite(wastedRatio)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:3056:return new Error(`Invalid image sizing information ${url}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-3057-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-3778-const displayUrl=!src||!networkRecord?
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:3779:`inline: ${content.substr(0,40)}...`:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-3780-networkRecord.url;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-3790-const url=networkRecord?networkRecord.url:'?';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:3791:warnings.push(`Unable to process script ${url}: ${err.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-3792-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4251-headers.set(header.name.toLowerCase(),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:4252:`${previousHeaderValue}, ${header.value}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4253-}else{
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4431-if(image.failed){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:4432:warnings.push(`Unable to decode ${URL.getURLDisplayName(image.url)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4433-continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4443-if(!imageElement){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:4444:warnings.push(`Unable to locate resource ${URL.getURLDisplayName(image.url)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4445-continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4575-if(!Number.isFinite(wastedRatio)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:4576:return new Error(`Invalid image sizing information ${url}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4577-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4835-if(image.failed){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:4836:warnings.push(`Unable to decode ${URL.getURLDisplayName(image.url)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4837-continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4845-if(!imageElement){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:4846:warnings.push(`Unable to locate resource ${URL.getURLDisplayName(image.url)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-4847-continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-6269-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:6270:if(/^\d+\.\d+$/.test(version))return`${version}.0`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-6271-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-6313-numericSeverity:this.severityMap[vuln.severity],
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:6314:library:`${lib.name}@${normalizedVersion}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-6315-url:'https://snyk.io/vuln/'+vuln.id};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-6364-text:lib.name+'@'+version,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:6365:url:`https://snyk.io/vuln/npm:${lib.npm}?lh=${version}&utm_source=lighthouse&utm_medium=ref&utm_campaign=audit`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-6366-type:'link'}});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-7363-elidedUrl:URL.elideDataURI(image.src),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:7364:displayedSize:`${image.displayedWidth} x ${image.displayedHeight}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:7365:actualSize:`${image.naturalWidth} x ${image.naturalHeight}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-7366-actualPixels:image.naturalWidth*image.naturalHeight,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:7367:expectedSize:`${expectedWidth} x ${expectedHeight}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-7368-expectedPixels:expectedWidth*expectedHeight};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-7920-constructor(patterns){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:7921:const patternsExpression=patterns.map(pattern=>`(${pattern.expression})`).join('|');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:7922:this.re=new RegExp(`(^\r\n|\r|\n)|${patternsExpression}`,'g');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-7923-this.patterns=patterns;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-7996-const qt=token=>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:7997:`['"]${token}['"]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-7998-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8002-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:8003:expression+=`${object}\\.${property}\\s?=[^=]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8004-}else{
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8007-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:8008:expression+=`(?:window\\.|[\\s;]+)${property}\\s?=[^=]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8009-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8012-if(object){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:8013:expression+=`|${object}\\[${qt(property)}\\]\\s?=[^=]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8014-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8016-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:8017:expression+=`|defineProperty\\(${object||'window'},\\s?${qt(property)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8018-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8029-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:8030:expression+=`|\\$export\\([^,]+,${qt(objectWithoutPrototype)},{${property}:`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8031-}else{
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8032-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:8033:expression+=`|function ${property}\\(`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8034-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8189-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:8190:const source=bundle.rawMap.sources.find(source=>source.endsWith(`${module}.js`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-8191-if(!source)continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-9018-numericUnit:'millisecond',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:9019:displayValue:`${metricResult.timing}\xa0ms`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-9020-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-10601-pageRedirects.push({
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:10602:url:`(Initial: ${redirectRequests[0].url})`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-10603-wastedMs:0});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-10895-timestamp:targetTimestamp*1000,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:10896:data:`data:image/jpeg;base64,${base64Data}`});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-10897-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11252-const attributesString=attributes.map((value,idx)=>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11253:idx%2===0?` ${value}`:`="${value}"`).
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11254-join('');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11258-selector:node.parentNode?getSelector(node.parentNode):'',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11259:snippet:`<${node.localName}${attributesString}>`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11260-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11356-const startColumn=styleDeclaration.range?styleDeclaration.range.startColumn:0;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11357:return`${styleDeclaration.styleSheetId}@${startLine}:${startColumn}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11358-}else{
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11359:return`node_${node.nodeId}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11360-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11432-selector:origin.selector,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11433:coverage:`${percentageOfAffectedText.toFixed(2)}%`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11434:fontSize:`${fontSize}px`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11435-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11446-selector:'',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11447:coverage:`${percentageOfUnanalyzedFailingText.toFixed(2)}%`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11448-fontSize:'< 12px'});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11456-selector:'',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11457:coverage:`${percentageOfPassingText.toFixed(2)}%`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11458-fontSize:'≥ 12px'});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11571-type:'node',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11572:snippet:`<link rel="alternate" hreflang="${link.hreflang}" href="${link.href}" />`}});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11573-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11576-invalidHreflangs.push({
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11577:source:`Link: <${link.href}>; rel="alternate"; hreflang="${link.hreflang}"`});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11578-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11656-score:0,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11657:displayValue:`${statusCode}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11658-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11781-type:'node',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11782:snippet:`<meta name="robots" content="${metaRobotsContent}" />`}});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11783-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11790-hasBlockingDirective(h.value)).
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:11791:forEach(h=>blockingDirectives.push({source:`${h.name}: ${h.value}`}));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-11792-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-12244-if(plugin[attr]!==null){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:12245:result+=` ${attr}="${plugin[attr]}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-12246-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-12250-filter(param=>SOURCE_PARAMS.has(param.name.trim().toLowerCase())).
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:12251:map(param=>`<param ${param.name}="${param.value}" />`).
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-12252-join('');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-12256-type:'node',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:12257:snippet:`<${tagName}${attributes}>${params}</${tagName}>`}};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-12258-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-12507-if(content===null){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:12508:throw new Error(`Status ${status} was valid, but content was null`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-12509-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-14538-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:14539:const axeLibSource="/*! axe v3.5.3\n * Copyright (c) 2020 Deque Systems, Inc.\n *\n * Your use of this Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n *\n * This entire copyright notice must appear in every copy of this file you\n * distribute or in any file that contains substantial portions of this source\n * code.\n */\n!function e(window){var a=window,document=window.document;function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function u(e){this.name=\"SupportError\",this.cause=e.cause,this.message=\"`\".concat(e.cause,\"` - feature unsupported in your environment.\"),e.ruleId&&(this.ruleId=e.ruleId,this.message+=\" Skipping \".concat(this.ruleId,\" rule.\")),this.stack=(new Error).stack}(axe=axe||{}).version=\"3.5.3\",\"function\"==typeof define&&define.amd&&define(\"axe-core\",[],function(){\"use strict\";return axe}),\"object\"===(\"undefined\"==typeof module?\"undefined\":W(module))&&module.exports&&\"function\"==typeof e.toString&&(axe.source=\"(\"+e.toString()+')(typeof window === \"object\" ? window : this);',module.exports=axe),\"function\"==typeof window.getComputedStyle&&(window.axe=axe),(u.prototype=Object.create(Error.prototype)).constructor=u,function o(i,s,l){function u(t,e){if(!s[t]){if(!i[t]){var r=\"function\"==typeof require&&require;if(!e&&r)return r(t,!0);if(c)return c(t,!0);var n=new Error(\"Cannot find module '\"+t+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var a=s[t]={exports:{}};i[t][0].call(a.exports,function(e){return u(i[t][1][e]||e)},a,a.exports,o,i,s,l)}return s[t].exports}for(var c=\"function\"==typeof require&&require,e=0;e<l.length;e++)u(l[e]);return u}({1:[function(e,t,r){\"Promise\"in window||e(\"es6-promise\").polyfill(),\"Uint32Array\"in window||e(\"core-js/features/typed-array/uint32-array\"),window.Uint32Array&&(\"some\"in window.Uint32Array.prototype||e(\"core-js/features/typed-array/some\"),\"reduce\"in window.Uint32Array.prototype||e(\"core-js/features/typed-array/reduce\")),e(\"weakmap-polyfill\"),axe.imports={axios:e(\"axios\"),CssSelectorParser:e(\"css-selector-parser\").CssSelectorParser,doT:e(\"@deque/dot\"),emojiRegexText:e(\"emoji-regex\"),memoize:e(\"memoizee\")}},{\"@deque/dot\":2,axios:3,\"core-js/features/typed-array/reduce\":31,\"core-js/features/typed-array/some\":32,\"core-js/features/typed-array/uint32-array\":33,\"css-selector-parser\":155,\"emoji-regex\":158,\"es6-promise\":202,memoizee:223,\"weakmap-polyfill\":245}],2:[function(e,r,t){(function(t){!function(){\"use strict\";var l={name:\"doT\",version:\"1.1.1\",templateSettings:{evaluate:/\\{\\{([\\s\\S]+?(\\}?)+)\\}\\}/g,interpolate:/\\{\\{=([\\s\\S]+?)\\}\\}/g,encode:/\\{\\{!([\\s\\S]+?)\\}\\}/g,use:/\\{\\{#([\\s\\S]+?)\\}\\}/g,useParams:/(^|[^\\w$])def(?:\\.|\\[[\\'\\\"])([\\w$\\.]+)(?:[\\'\\\"]\\])?\\s*\\:\\s*([\\w$\\.]+|\\\"[^\\\"]+\\\"|\\'[^\\']+\\'|\\{[^\\}]+\\})/g,define:/\\{\\{##\\s*([\\w\\.$]+)\\s*(\\:|=)([\\s\\S]+?)#\\}\\}/g,defineParams:/^\\s*([\\w$]+):([\\s\\S]+)/,conditional:/\\{\\{\\?(\\?)?\\s*([\\s\\S]*?)\\s*\\}\\}/g,iterate:/\\{\\{~\\s*(?:\\}\\}|([\\s\\S]+?)\\s*\\:\\s*([\\w$]+)\\s*(?:\\:\\s*([\\w$]+))?\\s*\\}\\})/g,varname:\"it\",strip:!0,append:!0,selfcontained:!1,doNotSkipEncoded:!1},template:void 0,compile:void 0,log:!0};!function(){if(\"object\"!=typeof globalThis)try{Object.defineProperty(Object.prototype,\"__magic__\",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch(e){window.globalThis=function(){if(\"undefined\"!=typeof self)return self;if(void 0!==window)return window;if(void 0!==t)return t;if(void 0!==this)return this;throw new Error(\"Unable to locate global `this`\")}()}}(),l.encodeHTMLSource=function(e){var t={\"&\":\"&#38;\",\"<\":\"&#60;\",\">\":\"&#62;\",'\"':\"&#34;\",\"'\":\"&#39;\",\"/\":\"&#47;\"},r=e?/[&<>\"'\\/]/g:/&(?!#?\\w+;)|<|>|\"|'|\\//g;return function(e){return e?e.toString().replace(r,function(e){return t[e]||e}):\"\"}},void 0!==r&&r.exports?r.exports=l:\"function\"==typeof define&&define.amd?define(function(){return l}):globalThis.doT=l;var u={append:{start:\"'+(\",end:\")+'\",startencode:\"'+encodeHTML(\"},split:{start:\"';out+=(\",end:\");out+='\",startencode:\"';out+=encodeHTML(\"}},c=/$^/;function d(e){return e.replace(/\\\\('|\\\\)/g,\"$1\").replace(/[\\r\\t\\n]/g,\" \")}l.template=function(e,t,r){var n,a,o=(t=t||l.templateSettings).append?u.append:u.split,i=0,s=t.use||t.define?function n(a,e,o){return(\"string\"==typeof e?e:e.toString()).replace(a.define||c,function(e,n,t,r){return 0===n.indexOf(\"def.\")&&(n=n.substring(4)),n in o||(\":\"===t?(a.defineParams&&r.replace(a.defineParams,function(e,t,r){o[n]={arg:t,text:r}}),n in o||(o[n]=r)):new Function(\"def\",\"def['\"+n+\"']=\"+r)(o)),\"\"}).replace(a.use||c,function(e,t){a.useParams&&(t=t.replace(a.useParams,function(e,t,r,n){if(o[r]&&o[r].arg&&n){var a=(r+\":\"+n).replace(/'|\\\\/g,\"_\");return o.__exp=o.__exp||{},o.__exp[a]=o[r].text.replace(new RegExp(\"(^|[^\\\\w$])\"+o[r].arg+\"([^\\\\w$])\",\"g\"),\"$1\"+n+\"$2\"),t+\"def.__exp['\"+a+\"']\"}}));var r=new Function(\"def\",\"return \"+t)(o);return r?n(a,r,o):r})}(t,e,r||{}):e;s=(\"var out='\"+(t.strip?s.replace(/(^|\\r|\\n)\\t* +| +\\t*(\\r|\\n|$)/g,\" \").replace(/\\r|\\n|\\t|\\/\\*[\\s\\S]*?\\*\\//g,\"\"):s).replace(/'|\\\\/g,\"\\\\$&\").replace(t.interpolate||c,function(e,t){return o.start+d(t)+o.end}).replace(t.encode||c,function(e,t){return n=!0,o.startencode+d(t)+o.end}).replace(t.conditional||c,function(e,t,r){return t?r?\"';}else if(\"+d(r)+\"){out+='\":\"';}else{out+='\":r?\"';if(\"+d(r)+\"){out+='\":\"';}out+='\"}).replace(t.iterate||c,function(e,t,r,n){return t?(i+=1,a=n||\"i\"+i,t=d(t),\"';var arr\"+i+\"=\"+t+\";if(arr\"+i+\"){var \"+r+\",\"+a+\"=-1,l\"+i+\"=arr\"+i+\".length-1;while(\"+a+\"<l\"+i+\"){\"+r+\"=arr\"+i+\"[\"+a+\"+=1];out+='\"):\"';} } out+='\"}).replace(t.evaluate||c,function(e,t){return\"';\"+d(t)+\"out+='\"})+\"';return out;\").replace(/\\n/g,\"\\\\n\").replace(/\\t/g,\"\\\\t\").replace(/\\r/g,\"\\\\r\").replace(/(\\s|;|\\}|^|\\{)out\\+='';/g,\"$1\").replace(/\\+''/g,\"\"),n&&(t.selfcontained||!globalThis||globalThis._encodeHTML||(globalThis._encodeHTML=l.encodeHTMLSource(t.doNotSkipEncoded)),s=\"var encodeHTML = typeof _encodeHTML !== 'undefined' ? _encodeHTML : (\"+l.encodeHTMLSource.toString()+\"(\"+(t.doNotSkipEncoded||\"\")+\"));\"+s);try{return new Function(t.varname,s)}catch(e){throw\"undefined\"!=typeof console&&console.log(\"Could not create a template function: \"+s),e}},l.compile=function(e,t){return l.template(e,null,t)}}()}).call(this,void 0!==a?a:\"undefined\"!=typeof self?self:void 0!==window?window:{})},{}],3:[function(e,t,r){t.exports=e(\"./lib/axios\")},{\"./lib/axios\":5}],4:[function(d,e,t){\"use strict\";var utils=d(\"./../utils\"),p=d(\"./../core/settle\"),m=d(\"./../helpers/buildURL\"),f=d(\"../core/buildFullPath\"),h=d(\"./../helpers/parseHeaders\"),b=d(\"./../helpers/isURLSameOrigin\"),g=d(\"../core/createError\");e.exports=function(c){return new Promise(function(r,n){var a=c.data,o=c.headers;utils.isFormData(a)&&delete o[\"Content-Type\"];var i=new XMLHttpRequest;if(c.auth){var e=c.auth.username||\"\",t=c.auth.password||\"\";o.Authorization=\"Basic \"+btoa(e+\":\"+t)}var s=f(c.baseURL,c.url);if(i.open(c.method.toUpperCase(),m(s,c.params,c.paramsSerializer),!0),i.timeout=c.timeout,i.onreadystatechange=function(){if(i&&4===i.readyState&&(0!==i.status||i.responseURL&&0===i.responseURL.indexOf(\"file:\"))){var e=\"getAllResponseHeaders\"in i?h(i.getAllResponseHeaders()):null,t={data:c.responseType&&\"text\"!==c.responseType?i.response:i.responseText,status:i.status,statusText:i.statusText,headers:e,config:c,request:i};p(r,n,t),i=null}},i.onabort=function(){i&&(n(g(\"Request aborted\",c,\"ECONNABORTED\",i)),i=null)},i.onerror=function(){n(g(\"Network Error\",c,null,i)),i=null},i.ontimeout=function(){var e=\"timeout of \"+c.timeout+\"ms exceeded\";c.timeoutErrorMessage&&(e=c.timeoutErrorMessage),n(g(e,c,\"ECONNABORTED\",i)),i=null},utils.isStandardBrowserEnv()){var l=d(\"./../helpers/cookies\"),u=(c.withCredentials||b(s))&&c.xsrfCookieName?l.read(c.xsrfCookieName):void 0;u&&(o[c.xsrfHeaderName]=u)}if(\"setRequestHeader\"in i&&utils.forEach(o,function(e,t){void 0===a&&\"content-type\"===t.toLowerCase()?delete o[t]:i.setRequestHeader(t,e)}),utils.isUndefined(c.withCredentials)||(i.withCredentials=!!c.withCredentials),c.responseType)try{i.responseType=c.responseType}catch(e){if(\"json\"!==c.responseType)throw e}\"function\"==typeof c.onDownloadProgress&&i.addEventListener(\"progress\",c.onDownloadProgress),\"function\"==typeof c.onUploadProgress&&i.upload&&i.upload.addEventListener(\"progress\",c.onUploadProgress),c.cancelToken&&c.cancelToken.promise.then(function(e){i&&(i.abort(),n(e),i=null)}),void 0===a&&(a=null),i.send(a)})}},{\"../core/buildFullPath\":11,\"../core/createError\":12,\"./../core/settle\":16,\"./../helpers/buildURL\":20,\"./../helpers/cookies\":22,\"./../helpers/isURLSameOrigin\":24,\"./../helpers/parseHeaders\":26,\"./../utils\":28}],5:[function(e,t,r){\"use strict\";var utils=e(\"./utils\"),n=e(\"./helpers/bind\"),a=e(\"./core/Axios\"),o=e(\"./core/mergeConfig\");function i(e){var t=new a(e),r=n(a.prototype.request,t);return utils.extend(r,a.prototype,t),utils.extend(r,t),r}var s=i(e(\"./defaults\"));s.Axios=a,s.create=function(e){return i(o(s.defaults,e))},s.Cancel=e(\"./cancel/Cancel\"),s.CancelToken=e(\"./cancel/CancelToken\"),s.isCancel=e(\"./cancel/isCancel\"),s.all=function(e){return Promise.all(e)},s.spread=e(\"./helpers/spread\"),t.exports=s,t.exports.default=s},{\"./cancel/Cancel\":6,\"./cancel/CancelToken\":7,\"./cancel/isCancel\":8,\"./core/Axios\":9,\"./core/mergeConfig\":15,\"./defaults\":18,\"./helpers/bind\":19,\"./helpers/spread\":27,\"./utils\":28}],6:[function(e,t,r){\"use strict\";function n(e){this.message=e}n.prototype.toString=function(){return\"Cancel\"+(this.message?\": \"+this.message:\"\")},n.prototype.__CANCEL__=!0,t.exports=n},{}],7:[function(e,t,r){\"use strict\";var n=e(\"./Cancel\");function a(e){if(\"function\"!=typeof e)throw new TypeError(\"executor must be a function.\");var t;this.promise=new Promise(function(e){t=e});var r=this;e(function(e){r.reason||(r.reason=new n(e),t(r.reason))})}a.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},a.source=function(){var t;return{token:new a(function(e){t=e}),cancel:t}},t.exports=a},{\"./Cancel\":6}],8:[function(e,t,r){\"use strict\";t.exports=function(e){return!(!e||!e.__CANCEL__)}},{}],9:[function(e,t,r){\"use strict\";var utils=e(\"./../utils\"),n=e(\"../helpers/buildURL\"),a=e(\"./InterceptorManager\"),o=e(\"./dispatchRequest\"),i=e(\"./mergeConfig\");function s(e){this.defaults=e,this.interceptors={request:new a,response:new a}}s.prototype.request=function(e,t){\"string\"==typeof e?(e=t||{}).url=arguments[0]:e=e||{},(e=i(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method=\"get\";var r=[o,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){r.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){r.push(e.fulfilled,e.rejected)});r.length;)n=n.then(r.shift(),r.shift());return n},s.prototype.getUri=function(e){return e=i(this.defaults,e),n(e.url,e.params,e.paramsSerializer).replace(/^\\?/,\"\")},utils.forEach([\"delete\",\"get\",\"head\",\"options\"],function(r){s.prototype[r]=function(e,t){return this.request(utils.merge(t||{},{method:r,url:e}))}}),utils.forEach([\"post\",\"put\",\"patch\"],function(n){s.prototype[n]=function(e,t,r){return this.request(utils.merge(r||{},{method:n,url:e,data:t}))}}),t.exports=s},{\"../helpers/buildURL\":20,\"./../utils\":28,\"./InterceptorManager\":10,\"./dispatchRequest\":13,\"./mergeConfig\":15}],10:[function(e,t,r){\"use strict\";var utils=e(\"./../utils\");function n(){this.handlers=[]}n.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},n.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},n.prototype.forEach=function(t){utils.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=n},{\"./../utils\":28}],11:[function(e,t,r){\"use strict\";var n=e(\"../helpers/isAbsoluteURL\"),a=e(\"../helpers/combineURLs\");t.exports=function(e,t){return e&&!n(t)?a(e,t):t}},{\"../helpers/combineURLs\":21,\"../helpers/isAbsoluteURL\":23}],12:[function(e,t,r){\"use strict\";var i=e(\"./enhanceError\");t.exports=function(e,t,r,n,a){var o=new Error(e);return i(o,t,r,n,a)}},{\"./enhanceError\":14}],13:[function(e,t,r){\"use strict\";var utils=e(\"./../utils\"),n=e(\"./transformData\"),a=e(\"../cancel/isCancel\"),o=e(\"../defaults\");function i(e){e.cancelToken&&e.cancelToken.throwIfRequested()}t.exports=function(t){return i(t),t.headers=t.headers||{},t.data=n(t.data,t.headers,t.transformRequest),t.headers=utils.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),utils.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],function(e){delete t.headers[e]}),(t.adapter||o.adapter)(t).then(function(e){return i(t),e.data=n(e.data,e.headers,t.transformResponse),e},function(e){return a(e)||(i(t),e&&e.response&&(e.response.data=n(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}},{\"../cancel/isCancel\":8,\"../defaults\":18,\"./../utils\":28,\"./transformData\":17}],14:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n,a){return e.config=t,r&&(e.code=r),e.request=n,e.response=a,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},{}],15:[function(e,t,r){\"use strict\";var utils=e(\"../utils\");t.exports=function(t,r){r=r||{};var n={},e=[\"url\",\"method\",\"params\",\"data\"],a=[\"headers\",\"auth\",\"proxy\"],o=[\"baseURL\",\"url\",\"transformRequest\",\"transformResponse\",\"paramsSerializer\",\"timeout\",\"withCredentials\",\"adapter\",\"responseType\",\"xsrfCookieName\",\"xsrfHeaderName\",\"onUploadProgress\",\"onDownloadProgress\",\"maxContentLength\",\"validateStatus\",\"maxRedirects\",\"httpAgent\",\"httpsAgent\",\"cancelToken\",\"socketPath\"];utils.forEach(e,function(e){void 0!==r[e]&&(n[e]=r[e])}),utils.forEach(a,function(e){utils.isObject(r[e])?n[e]=utils.deepMerge(t[e],r[e]):void 0!==r[e]?n[e]=r[e]:utils.isObject(t[e])?n[e]=utils.deepMerge(t[e]):void 0!==t[e]&&(n[e]=t[e])}),utils.forEach(o,function(e){void 0!==r[e]?n[e]=r[e]:void 0!==t[e]&&(n[e]=t[e])});var i=e.concat(a).concat(o),s=Object.keys(r).filter(function(e){return-1===i.indexOf(e)});return utils.forEach(s,function(e){void 0!==r[e]?n[e]=r[e]:void 0!==t[e]&&(n[e]=t[e])}),n}},{\"../utils\":28}],16:[function(e,t,r){\"use strict\";var a=e(\"./createError\");t.exports=function(e,t,r){var n=r.config.validateStatus;!n||n(r.status)?e(r):t(a(\"Request failed with status code \"+r.status,r.config,null,r.request,r))}},{\"./createError\":12}],17:[function(e,t,r){\"use strict\";var utils=e(\"./../utils\");t.exports=function(t,r,e){return utils.forEach(e,function(e){t=e(t,r)}),t}},{\"./../utils\":28}],18:[function(i,s,e){(function(e){\"use strict\";var utils=i(\"./utils\"),r=i(\"./helpers/normalizeHeaderName\"),t={\"Content-Type\":\"application/x-www-form-urlencoded\"};function n(e,t){!utils.isUndefined(e)&&utils.isUndefined(e[\"Content-Type\"])&&(e[\"Content-Type\"]=t)}var a,o={adapter:(\"undefined\"!=typeof XMLHttpRequest?a=i(\"./adapters/xhr\"):void 0!==e&&\"[object process]\"===Object.prototype.toString.call(e)&&(a=i(\"./adapters/http\")),a),transformRequest:[function(e,t){return r(t,\"Accept\"),r(t,\"Content-Type\"),utils.isFormData(e)||utils.isArrayBuffer(e)||utils.isBuffer(e)||utils.isStream(e)||utils.isFile(e)||utils.isBlob(e)?e:utils.isArrayBufferView(e)?e.buffer:utils.isURLSearchParams(e)?(n(t,\"application/x-www-form-urlencoded;charset=utf-8\"),e.toString()):utils.isObject(e)?(n(t,\"application/json;charset=utf-8\"),JSON.stringify(e)):e}],transformResponse:[function(e){if(\"string\"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,validateStatus:function(e){return 200<=e&&e<300}};o.headers={common:{Accept:\"application/json, text/plain, */*\"}},utils.forEach([\"delete\",\"get\",\"head\"],function(e){o.headers[e]={}}),utils.forEach([\"post\",\"put\",\"patch\"],function(e){o.headers[e]=utils.merge(t)}),s.exports=o}).call(this,i(\"_process\"))},{\"./adapters/http\":4,\"./adapters/xhr\":4,\"./helpers/normalizeHeaderName\":25,\"./utils\":28,_process:236}],19:[function(e,t,r){\"use strict\";t.exports=function(r,n){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];return r.apply(n,e)}}},{}],20:[function(e,t,r){\"use strict\";var utils=e(\"./../utils\");function i(e){return encodeURIComponent(e).replace(/%40/gi,\"@\").replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}t.exports=function(e,t,r){if(!t)return e;var n;if(r)n=r(t);else if(utils.isURLSearchParams(t))n=t.toString();else{var a=[];utils.forEach(t,function(e,t){null!=e&&(utils.isArray(e)?t+=\"[]\":e=[e],utils.forEach(e,function(e){utils.isDate(e)?e=e.toISOString():utils.isObject(e)&&(e=JSON.stringify(e)),a.push(i(t)+\"=\"+i(e))}))}),n=a.join(\"&\")}if(n){var o=e.indexOf(\"#\");-1!==o&&(e=e.slice(0,o)),e+=(-1===e.indexOf(\"?\")?\"?\":\"&\")+n}return e}},{\"./../utils\":28}],21:[function(e,t,r){\"use strict\";t.exports=function(e,t){return t?e.replace(/\\/+$/,\"\")+\"/\"+t.replace(/^\\/+/,\"\"):e}},{}],22:[function(e,t,r){\"use strict\";var utils=e(\"./../utils\");t.exports=utils.isStandardBrowserEnv()?{write:function(e,t,r,n,a,o){var i=[];i.push(e+\"=\"+encodeURIComponent(t)),utils.isNumber(r)&&i.push(\"expires=\"+new Date(r).toGMTString()),utils.isString(n)&&i.push(\"path=\"+n),utils.isString(a)&&i.push(\"domain=\"+a),!0===o&&i.push(\"secure\"),document.cookie=i.join(\"; \")},read:function(e){var t=document.cookie.match(new RegExp(\"(^|;\\\\s*)(\"+e+\")=([^;]*)\"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,\"\",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},{\"./../utils\":28}],23:[function(e,t,r){\"use strict\";t.exports=function(e){return/^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(e)}},{}],24:[function(e,t,r){\"use strict\";var n,a,o,utils=e(\"./../utils\");function i(e){var t=e;return a&&(o.setAttribute(\"href\",t),t=o.href),o.setAttribute(\"href\",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,\"\"):\"\",host:o.host,search:o.search?o.search.replace(/^\\?/,\"\"):\"\",hash:o.hash?o.hash.replace(/^#/,\"\"):\"\",hostname:o.hostname,port:o.port,pathname:\"/\"===o.pathname.charAt(0)?o.pathname:\"/\"+o.pathname}}t.exports=utils.isStandardBrowserEnv()?(a=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement(\"a\"),n=i(window.location.href),function(e){var t=utils.isString(e)?i(e):e;return t.protocol===n.protocol&&t.host===n.host}):function(){return!0}},{\"./../utils\":28}],25:[function(e,t,r){\"use strict\";var utils=e(\"../utils\");t.exports=function(r,n){utils.forEach(r,function(e,t){t!==n&&t.toUpperCase()===n.toUpperCase()&&(r[n]=e,delete r[t])})}},{\"../utils\":28}],26:[function(e,t,r){\"use strict\";var utils=e(\"./../utils\"),o=[\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"];t.exports=function(e){var t,r,n,a={};return e&&utils.forEach(e.split(\"\\n\"),function(e){if(n=e.indexOf(\":\"),t=utils.trim(e.substr(0,n)).toLowerCase(),r=utils.trim(e.substr(n+1)),t){if(a[t]&&0<=o.indexOf(t))return;a[t]=\"set-cookie\"===t?(a[t]?a[t]:[]).concat([r]):a[t]?a[t]+\", \"+r:r}}),a}},{\"./../utils\":28}],27:[function(e,t,r){\"use strict\";t.exports=function(t){return function(e){return t.apply(null,e)}}},{}],28:[function(e,t,r){\"use strict\";var a=e(\"./helpers/bind\"),n=Object.prototype.toString;function o(e){return\"[object Array]\"===n.call(e)}function i(e){return void 0===e}function s(e){return null!==e&&\"object\"==typeof e}function l(e){return\"[object Function]\"===n.call(e)}function u(e,t){if(null!=e)if(\"object\"!=typeof e&&(e=[e]),o(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.call(null,e[a],a,e)}t.exports={isArray:o,isArrayBuffer:function(e){return\"[object ArrayBuffer]\"===n.call(e)},isBuffer:function(e){return null!==e&&!i(e)&&null!==e.constructor&&!i(e.constructor)&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return\"undefined\"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return\"string\"==typeof e},isNumber:function(e){return\"number\"==typeof e},isObject:s,isUndefined:i,isDate:function(e){return\"[object Date]\"===n.call(e)},isFile:function(e){return\"[object File]\"===n.call(e)},isBlob:function(e){return\"[object Blob]\"===n.call(e)},isFunction:l,isStream:function(e){return s(e)&&l(e.pipe)},isURLSearchParams:function(e){return\"undefined\"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return(\"undefined\"==typeof navigator||\"ReactNative\"!==navigator.product&&\"NativeScript\"!==navigator.product&&\"NS\"!==navigator.product)&&(void 0!==window&&void 0!==document)},forEach:u,merge:function r(){var n={};function e(e,t){\"object\"==typeof n[t]&&\"object\"==typeof e?n[t]=r(n[t],e):n[t]=e}for(var t=0,a=arguments.length;t<a;t++)u(arguments[t],e);return n},deepMerge:function r(){var n={};function e(e,t){\"object\"==typeof n[t]&&\"object\"==typeof e?n[t]=r(n[t],e):n[t]=\"object\"==typeof e?r({},e):e}for(var t=0,a=arguments.length;t<a;t++)u(arguments[t],e);return n},extend:function(r,e,n){return u(e,function(e,t){r[t]=n&&\"function\"==typeof e?a(e,n):e}),r},trim:function(e){return e.replace(/^\\s*/,\"\").replace(/\\s*$/,\"\")}}},{\"./helpers/bind\":19}],29:[function(e,t,r){e(\"../../modules/es.typed-array.from\"),e(\"../../modules/es.typed-array.of\"),e(\"../../modules/es.typed-array.copy-within\"),e(\"../../modules/es.typed-array.every\"),e(\"../../modules/es.typed-array.fill\"),e(\"../../modules/es.typed-array.filter\"),e(\"../../modules/es.typed-array.find\"),e(\"../../modules/es.typed-array.find-index\"),e(\"../../modules/es.typed-array.for-each\"),e(\"../../modules/es.typed-array.includes\"),e(\"../../modules/es.typed-array.index-of\"),e(\"../../modules/es.typed-array.join\"),e(\"../../modules/es.typed-array.last-index-of\"),e(\"../../modules/es.typed-array.map\"),e(\"../../modules/es.typed-array.reduce\"),e(\"../../modules/es.typed-array.reduce-right\"),e(\"../../modules/es.typed-array.reverse\"),e(\"../../modules/es.typed-array.set\"),e(\"../../modules/es.typed-array.slice\"),e(\"../../modules/es.typed-array.some\"),e(\"../../modules/es.typed-array.sort\"),e(\"../../modules/es.typed-array.subarray\"),e(\"../../modules/es.typed-array.to-locale-string\"),e(\"../../modules/es.typed-array.to-string\"),e(\"../../modules/es.typed-array.iterator\"),e(\"../../modules/es.object.to-string\")},{\"../../modules/es.object.to-string\":128,\"../../modules/es.typed-array.copy-within\":129,\"../../modules/es.typed-array.every\":130,\"../../modules/es.typed-array.fill\":131,\"../../modules/es.typed-array.filter\":132,\"../../modules/es.typed-array.find\":134,\"../../modules/es.typed-array.find-index\":133,\"../../modules/es.typed-array.for-each\":135,\"../../modules/es.typed-array.from\":136,\"../../modules/es.typed-array.includes\":137,\"../../modules/es.typed-array.index-of\":138,\"../../modules/es.typed-array.iterator\":139,\"../../modules/es.typed-array.join\":140,\"../../modules/es.typed-array.last-index-of\":141,\"../../modules/es.typed-array.map\":142,\"../../modules/es.typed-array.of\":143,\"../../modules/es.typed-array.reduce\":145,\"../../modules/es.typed-array.reduce-right\":144,\"../../modules/es.typed-array.reverse\":146,\"../../modules/es.typed-array.set\":147,\"../../modules/es.typed-array.slice\":148,\"../../modules/es.typed-array.some\":149,\"../../modules/es.typed-array.sort\":150,\"../../modules/es.typed-array.subarray\":151,\"../../modules/es.typed-array.to-locale-string\":152,\"../../modules/es.typed-array.to-string\":153}],30:[function(e,t,r){e(\"../../modules/es.typed-array.uint32-array\"),e(\"./methods\");var n=e(\"../../internals/global\");t.exports=n.Uint32Array},{\"../../internals/global\":68,\"../../modules/es.typed-array.uint32-array\":154,\"./methods\":29}],31:[function(e,t,r){e(\"../../modules/es.typed-array.reduce\")},{\"../../modules/es.typed-array.reduce\":145}],32:[function(e,t,r){e(\"../../modules/es.typed-array.some\")},{\"../../modules/es.typed-array.some\":149}],33:[function(e,t,r){var n=e(\"../../es/typed-array/uint32-array\");t.exports=n},{\"../../es/typed-array/uint32-array\":30}],34:[function(e,t,r){t.exports=function(e){if(\"function\"!=typeof e)throw TypeError(String(e)+\" is not a function\");return e}},{}],35:[function(e,t,r){var n=e(\"../internals/is-object\");t.exports=function(e){if(!n(e)&&null!==e)throw TypeError(\"Can't set \"+String(e)+\" as a prototype\");return e}},{\"../internals/is-object\":81}],36:[function(e,t,r){var n=e(\"../internals/well-known-symbol\"),a=e(\"../internals/object-create\"),o=e(\"../internals/object-define-property\"),i=n(\"unscopables\"),s=Array.prototype;null==s[i]&&o.f(s,i,{configurable:!0,value:a(null)}),t.exports=function(e){s[i][e]=!0}},{\"../internals/object-create\":87,\"../internals/object-define-property\":89,\"../internals/well-known-symbol\":126}],37:[function(e,t,r){t.exports=function(e,t,r){if(!(e instanceof t))throw TypeError(\"Incorrect \"+(r?r+\" \":\"\")+\"invocation\");return e}},{}],38:[function(e,t,r){var n=e(\"../internals/is-object\");t.exports=function(e){if(!n(e))throw TypeError(String(e)+\" is not an object\");return e}},{\"../internals/is-object\":81}],39:[function(e,t,r){t.exports=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof DataView},{}],40:[function(e,t,r){\"use strict\";function n(e){return l(e)&&u(N,c(e))}var a,o=e(\"../internals/array-buffer-native\"),i=e(\"../internals/descriptors\"),s=e(\"../internals/global\"),l=e(\"../internals/is-object\"),u=e(\"../internals/has\"),c=e(\"../internals/classof\"),d=e(\"../internals/create-non-enumerable-property\"),p=e(\"../internals/redefine\"),m=e(\"../internals/object-define-property\").f,f=e(\"../internals/object-get-prototype-of\"),h=e(\"../internals/object-set-prototype-of\"),b=e(\"../internals/well-known-symbol\"),g=e(\"../internals/uid\"),y=s.Int8Array,v=y&&y.prototype,w=s.Uint8ClampedArray,x=w&&w.prototype,D=y&&f(y),k=v&&f(v),E=Object.prototype,A=E.isPrototypeOf,j=b(\"toStringTag\"),C=g(\"TYPED_ARRAY_TAG\"),F=o&&!!h&&\"Opera\"!==c(s.opera),T=!1,N={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8};for(a in N)s[a]||(F=!1);if((!F||\"function\"!=typeof D||D===Function.prototype)&&(D=function(){throw TypeError(\"Incorrect invocation\")},F))for(a in N)s[a]&&h(s[a],D);if((!F||!k||k===E)&&(k=D.prototype,F))for(a in N)s[a]&&h(s[a].prototype,k);if(F&&f(x)!==k&&h(x,k),i&&!u(k,j))for(a in T=!0,m(k,j,{get:function(){return l(this)?this[C]:void 0}}),N)s[a]&&d(s[a],C,a);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:F,TYPED_ARRAY_TAG:T&&C,aTypedArray:function(e){if(n(e))return e;throw TypeError(\"Target is not a typed array\")},aTypedArrayConstructor:function(e){if(h){if(A.call(D,e))return e}else for(var t in N)if(u(N,a)){var r=s[t];if(r&&(e===r||A.call(r,e)))return e}throw TypeError(\"Target is not a typed array constructor\")},exportTypedArrayMethod:function(e,t,r){if(i){if(r)for(var n in N){var a=s[n];a&&u(a.prototype,e)&&delete a.prototype[e]}k[e]&&!r||p(k,e,!r&&F&&v[e]||t)}},exportTypedArrayStaticMethod:function(e,t,r){var n,a;if(i){if(h){if(r)for(n in N)(a=s[n])&&u(a,e)&&delete a[e];if(D[e]&&!r)return;try{return p(D,e,!r&&F&&y[e]||t)}catch(e){}}for(n in N)!(a=s[n])||a[e]&&!r||p(a,e,t)}},isView:function(e){var t=c(e);return\"DataView\"===t||u(N,t)},isTypedArray:n,TypedArray:D,TypedArrayPrototype:k}},{\"../internals/array-buffer-native\":39,\"../internals/classof\":53,\"../internals/create-non-enumerable-property\":57,\"../internals/descriptors\":60,\"../internals/global\":68,\"../internals/has\":69,\"../internals/is-object\":81,\"../internals/object-define-property\":89,\"../internals/object-get-prototype-of\":93,\"../internals/object-set-prototype-of\":97,\"../internals/redefine\":102,\"../internals/uid\":124,\"../internals/well-known-symbol\":126}],41:[function(e,t,r){\"use strict\";function n(e){return[255&e]}function a(e){return[255&e,e>>8&255]}function o(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function i(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function s(e){return V(e,23,4)}function l(e){return V(e,52,8)}function u(e,t){j(e[O],t,{get:function(){return N(this)[t]}})}function c(e,t,r,n){var a=x(r),o=N(e);if(a+t>o.byteLength)throw M(_);var i=N(o.buffer).bytes,s=a+o.byteOffset,l=i.slice(s,s+t);return n?l:l.reverse()}function d(e,t,r,n,a,o){var i=x(r),s=N(e);if(i+t>s.byteLength)throw M(_);for(var l=N(s.buffer).bytes,u=i+s.byteOffset,c=n(+a),d=0;d<t;d++)l[u+d]=c[o?d:t-d-1]}var p=e(\"../internals/global\"),m=e(\"../internals/descriptors\"),f=e(\"../internals/array-buffer-native\"),h=e(\"../internals/create-non-enumerable-property\"),b=e(\"../internals/redefine-all\"),g=e(\"../internals/fails\"),y=e(\"../internals/an-instance\"),v=e(\"../internals/to-integer\"),w=e(\"../internals/to-length\"),x=e(\"../internals/to-index\"),D=e(\"../internals/ieee754\"),k=e(\"../internals/object-get-prototype-of\"),E=e(\"../internals/object-set-prototype-of\"),A=e(\"../internals/object-get-own-property-names\").f,j=e(\"../internals/object-define-property\").f,C=e(\"../internals/array-fill\"),F=e(\"../internals/set-to-string-tag\"),T=e(\"../internals/internal-state\"),N=T.get,S=T.set,z=\"ArrayBuffer\",q=\"DataView\",O=\"prototype\",_=\"Wrong index\",R=p[z],P=R,I=p[q],L=I&&I[O],B=Object.prototype,M=p.RangeError,V=D.pack,U=D.unpack;if(f){if(!g(function(){R(1)})||!g(function(){new R(-1)})||g(function(){return new R,new R(1.5),new R(NaN),R.name!=z})){for(var H,$=(P=function(e){return y(this,P),new R(x(e))})[O]=R[O],G=A(R),W=0;G.length>W;)(H=G[W++])in P||h(P,H,R[H]);$.constructor=P}E&&k(L)!==B&&E(L,B);var Y=new I(new P(2)),K=L.setInt8;Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),!Y.getInt8(0)&&Y.getInt8(1)||b(L,{setInt8:function(e,t){K.call(this,e,t<<24>>24)},setUint8:function(e,t){K.call(this,e,t<<24>>24)}},{unsafe:!0})}else P=function(e){y(this,P,z);var t=x(e);S(this,{bytes:C.call(new Array(t),0),byteLength:t}),m||(this.byteLength=t)},I=function(e,t,r){y(this,I,q),y(e,P,q);var n=N(e).byteLength,a=v(t);if(a<0||n<a)throw M(\"Wrong offset\");if(n<a+(r=void 0===r?n-a:w(r)))throw M(\"Wrong length\");S(this,{buffer:e,byteLength:r,byteOffset:a}),m||(this.buffer=e,this.byteLength=r,this.byteOffset=a)},m&&(u(P,\"byteLength\"),u(I,\"buffer\"),u(I,\"byteLength\"),u(I,\"byteOffset\")),b(I[O],{getInt8:function(e){return c(this,1,e)[0]<<24>>24},getUint8:function(e){return c(this,1,e)[0]},getInt16:function(e,t){var r=c(this,2,e,1<arguments.length?t:void 0);return(r[1]<<8|r[0])<<16>>16},getUint16:function(e,t){var r=c(this,2,e,1<arguments.length?t:void 0);return r[1]<<8|r[0]},getInt32:function(e,t){return i(c(this,4,e,1<arguments.length?t:void 0))},getUint32:function(e,t){return i(c(this,4,e,1<arguments.length?t:void 0))>>>0},getFloat32:function(e,t){return U(c(this,4,e,1<arguments.length?t:void 0),23)},getFloat64:function(e,t){return U(c(this,8,e,1<arguments.length?t:void 0),52)},setInt8:function(e,t){d(this,1,e,n,t)},setUint8:function(e,t){d(this,1,e,n,t)},setInt16:function(e,t,r){d(this,2,e,a,t,2<arguments.length?r:void 0)},setUint16:function(e,t,r){d(this,2,e,a,t,2<arguments.length?r:void 0)},setInt32:function(e,t,r){d(this,4,e,o,t,2<arguments.length?r:void 0)},setUint32:function(e,t,r){d(this,4,e,o,t,2<arguments.length?r:void 0)},setFloat32:function(e,t,r){d(this,4,e,s,t,2<arguments.length?r:void 0)},setFloat64:function(e,t,r){d(this,8,e,l,t,2<arguments.length?r:void 0)}});F(P,z),F(I,q),t.exports={ArrayBuffer:P,DataView:I}},{\"../internals/an-instance\":37,\"../internals/array-buffer-native\":39,\"../internals/array-fill\":43,\"../internals/create-non-enumerable-property\":57,\"../internals/descriptors\":60,\"../internals/fails\":64,\"../internals/global\":68,\"../internals/ieee754\":73,\"../internals/internal-state\":77,\"../internals/object-define-property\":89,\"../internals/object-get-own-property-names\":91,\"../internals/object-get-prototype-of\":93,\"../internals/object-set-prototype-of\":97,\"../internals/redefine-all\":101,\"../internals/set-to-string-tag\":106,\"../internals/to-index\":112,\"../internals/to-integer\":114,\"../internals/to-length\":115}],42:[function(e,t,r){\"use strict\";var c=e(\"../internals/to-object\"),d=e(\"../internals/to-absolute-index\"),p=e(\"../internals/to-length\"),m=Math.min;t.exports=[].copyWithin||function(e,t,r){var n=c(this),a=p(n.length),o=d(e,a),i=d(t,a),s=2<arguments.length?r:void 0,l=m((void 0===s?a:d(s,a))-i,a-o),u=1;for(i<o&&o<i+l&&(u=-1,i+=l-1,o+=l-1);0<l--;)i in n?n[o]=n[i]:delete n[o],o+=u,i+=u;return n}},{\"../internals/to-absolute-index\":111,\"../internals/to-length\":115,\"../internals/to-object\":116}],43:[function(e,t,r){\"use strict\";var u=e(\"../internals/to-object\"),c=e(\"../internals/to-absolute-index\"),d=e(\"../internals/to-length\");t.exports=function(e,t,r){for(var n=u(this),a=d(n.length),o=arguments.length,i=c(1<o?t:void 0,a),s=2<o?r:void 0,l=void 0===s?a:c(s,a);i<l;)n[i++]=e;return n}},{\"../internals/to-absolute-index\":111,\"../internals/to-length\":115,\"../internals/to-object\":116}],44:[function(e,t,r){function n(s){return function(e,t,r){var n,a=l(e),o=u(a.length),i=c(r,o);if(s&&t!=t){for(;i<o;)if((n=a[i++])!=n)return!0}else for(;i<o;i++)if((s||i in a)&&a[i]===t)return s||i||0;return!s&&-1}}var l=e(\"../internals/to-indexed-object\"),u=e(\"../internals/to-length\"),c=e(\"../internals/to-absolute-index\");t.exports={includes:n(!0),indexOf:n(!1)}},{\"../internals/to-absolute-index\":111,\"../internals/to-indexed-object\":113,\"../internals/to-length\":115}],45:[function(e,t,r){function n(m){var f=1==m,h=2==m,b=3==m,g=4==m,y=6==m,v=5==m||y;return function(e,t,r,n){for(var a,o,i=D(e),s=x(i),l=w(t,r,3),u=k(s.length),c=0,d=n||E,p=f?d(e,u):h?d(e,0):void 0;c<u;c++)if((v||c in s)&&(o=l(a=s[c],c,i),m))if(f)p[c]=o;else if(o)switch(m){case 3:return!0;case 5:return a;case 6:return c;case 2:A.call(p,a)}else if(g)return!1;return y?-1:b||g?g:p}}var w=e(\"../internals/function-bind-context\"),x=e(\"../internals/indexed-object\"),D=e(\"../internals/to-object\"),k=e(\"../internals/to-length\"),E=e(\"../internals/array-species-create\"),A=[].push;t.exports={forEach:n(0),map:n(1),filter:n(2),some:n(3),every:n(4),find:n(5),findIndex:n(6)}},{\"../internals/array-species-create\":50,\"../internals/function-bind-context\":65,\"../internals/indexed-object\":74,\"../internals/to-length\":115,\"../internals/to-object\":116}],46:[function(e,t,r){\"use strict\";var o=e(\"../internals/to-indexed-object\"),i=e(\"../internals/to-integer\"),s=e(\"../internals/to-length\"),n=e(\"../internals/array-method-is-strict\"),a=e(\"../internals/array-method-uses-to-length\"),l=Math.min,u=[].lastIndexOf,c=!!u&&1/[1].lastIndexOf(1,-0)<0,d=n(\"lastIndexOf\"),p=a(\"indexOf\",{ACCESSORS:!0,1:0}),m=c||!d||!p;t.exports=m?function(e,t){if(c)return u.apply(this,arguments)||0;var r=o(this),n=s(r.length),a=n-1;for(1<arguments.length&&(a=l(a,i(t))),a<0&&(a=n+a);0<=a;a--)if(a in r&&r[a]===e)return a||0;return-1}:u},{\"../internals/array-method-is-strict\":47,\"../internals/array-method-uses-to-length\":48,\"../internals/to-indexed-object\":113,\"../internals/to-integer\":114,\"../internals/to-length\":115}],47:[function(e,t,r){\"use strict\";var n=e(\"../internals/fails\");t.exports=function(e,t){var r=[][e];return!!r&&n(function(){r.call(null,t||function(){throw 1},1)})}},{\"../internals/fails\":64}],48:[function(e,t,r){function i(e){throw e}var s=e(\"../internals/descriptors\"),l=e(\"../internals/fails\"),u=e(\"../internals/has\"),c=Object.defineProperty,d={};t.exports=function(e,t){if(u(d,e))return d[e];var r=[][e],n=!!u(t=t||{},\"ACCESSORS\")&&t.ACCESSORS,a=u(t,0)?t[0]:i,o=u(t,1)?t[1]:void 0;return d[e]=!!r&&!l(function(){if(n&&!s)return!0;var e={length:-1};n?c(e,1,{enumerable:!0,get:i}):e[1]=1,r.call(e,a,o)})}},{\"../internals/descriptors\":60,\"../internals/fails\":64,\"../internals/has\":69}],49:[function(e,t,r){function n(u){return function(e,t,r,n){c(t);var a=d(e),o=p(a),i=m(a.length),s=u?i-1:0,l=u?-1:1;if(r<2)for(;;){if(s in o){n=o[s],s+=l;break}if(s+=l,u?s<0:i<=s)throw TypeError(\"Reduce of empty array with no initial value\")}for(;u?0<=s:s<i;s+=l)s in o&&(n=t(n,o[s],s,a));return n}}var c=e(\"../internals/a-function\"),d=e(\"../internals/to-object\"),p=e(\"../internals/indexed-object\"),m=e(\"../internals/to-length\");t.exports={left:n(!1),right:n(!0)}},{\"../internals/a-function\":34,\"../internals/indexed-object\":74,\"../internals/to-length\":115,\"../internals/to-object\":116}],50:[function(e,t,r){var n=e(\"../internals/is-object\"),a=e(\"../internals/is-array\"),o=e(\"../internals/well-known-symbol\")(\"species\");t.exports=function(e,t){var r;return a(e)&&(\"function\"==typeof(r=e.constructor)&&(r===Array||a(r.prototype))||n(r)&&null===(r=r[o]))&&(r=void 0),new(void 0===r?Array:r)(0===t?0:t)}},{\"../internals/is-array\":79,\"../internals/is-object\":81,\"../internals/well-known-symbol\":126}],51:[function(e,t,r){var a=e(\"../internals/well-known-symbol\")(\"iterator\"),o=!1;try{var n=0,i={next:function(){return{done:!!n++}},return:function(){o=!0}};i[a]=function(){return this},Array.from(i,function(){throw 2})}catch(e){}t.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var n={};n[a]=function(){return{next:function(){return{done:r=!0}}}},e(n)}catch(e){}return r}},{\"../internals/well-known-symbol\":126}],52:[function(e,t,r){var n={}.toString;t.exports=function(e){return n.call(e).slice(8,-1)}},{}],53:[function(e,t,r){var n=e(\"../internals/to-string-tag-support\"),a=e(\"../internals/classof-raw\"),o=e(\"../internals/well-known-symbol\")(\"toStringTag\"),i=\"Arguments\"==a(function(){return arguments}());t.exports=n?a:function(e){var t,r,n;return void 0===e?\"Undefined\":null===e?\"Null\":\"string\"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?r:i?a(t):\"Object\"==(n=a(t))&&\"function\"==typeof t.callee?\"Arguments\":n}},{\"../internals/classof-raw\":52,\"../internals/to-string-tag-support\":120,\"../internals/well-known-symbol\":126}],54:[function(e,t,r){var s=e(\"../internals/has\"),l=e(\"../internals/own-keys\"),u=e(\"../internals/object-get-own-property-descriptor\"),c=e(\"../internals/object-define-property\");t.exports=function(e,t){for(var r=l(t),n=c.f,a=u.f,o=0;o<r.length;o++){var i=r[o];s(e,i)||n(e,i,a(t,i))}}},{\"../internals/has\":69,\"../internals/object-define-property\":89,\"../internals/object-get-own-property-descriptor\":90,\"../internals/own-keys\":99}],55:[function(e,t,r){var n=e(\"../internals/fails\");t.exports=!n(function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})},{\"../internals/fails\":64}],56:[function(e,t,r){\"use strict\";function a(){return this}var o=e(\"../internals/iterators-core\").IteratorPrototype,i=e(\"../internals/object-create\"),s=e(\"../internals/create-property-descriptor\"),l=e(\"../internals/set-to-string-tag\"),u=e(\"../internals/iterators\");t.exports=function(e,t,r){var n=t+\" Iterator\";return e.prototype=i(o,{next:s(1,r)}),l(e,n,!1,!0),u[n]=a,e}},{\"../internals/create-property-descriptor\":58,\"../internals/iterators\":84,\"../internals/iterators-core\":83,\"../internals/object-create\":87,\"../internals/set-to-string-tag\":106}],57:[function(e,t,r){var n=e(\"../internals/descriptors\"),a=e(\"../internals/object-define-property\"),o=e(\"../internals/create-property-descriptor\");t.exports=n?function(e,t,r){return a.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},{\"../internals/create-property-descriptor\":58,\"../internals/descriptors\":60,\"../internals/object-define-property\":89}],58:[function(e,t,r){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],59:[function(e,t,r){\"use strict\";function g(){return this}var y=e(\"../internals/export\"),v=e(\"../internals/create-iterator-constructor\"),w=e(\"../internals/object-get-prototype-of\"),x=e(\"../internals/object-set-prototype-of\"),D=e(\"../internals/set-to-string-tag\"),k=e(\"../internals/create-non-enumerable-property\"),E=e(\"../internals/redefine\"),n=e(\"../internals/well-known-symbol\"),A=e(\"../internals/is-pure\"),j=e(\"../internals/iterators\"),a=e(\"../internals/iterators-core\"),C=a.IteratorPrototype,F=a.BUGGY_SAFARI_ITERATORS,T=n(\"iterator\"),N=\"values\",S=\"entries\";t.exports=function(e,t,r,n,a,o,i){v(r,t,n);function s(e){if(e===a&&h)return h;if(!F&&e in m)return m[e];switch(e){case\"keys\":case N:case S:return function(){return new r(this,e)}}return function(){return new r(this)}}var l,u,c,d=t+\" Iterator\",p=!1,m=e.prototype,f=m[T]||m[\"@@iterator\"]||a&&m[a],h=!F&&f||s(a),b=\"Array\"==t&&m.entries||f;if(b&&(l=w(b.call(new e)),C!==Object.prototype&&l.next&&(A||w(l)===C||(x?x(l,C):\"function\"!=typeof l[T]&&k(l,T,g)),D(l,d,!0,!0),A&&(j[d]=g))),a==N&&f&&f.name!==N&&(p=!0,h=function(){return f.call(this)}),A&&!i||m[T]===h||k(m,T,h),j[t]=h,a)if(u={values:s(N),keys:o?h:s(\"keys\"),entries:s(S)},i)for(c in u)!F&&!p&&c in m||E(m,c,u[c]);else y({target:t,proto:!0,forced:F||p},u);return u}},{\"../internals/create-iterator-constructor\":56,\"../internals/create-non-enumerable-property\":57,\"../internals/export\":63,\"../internals/is-pure\":82,\"../internals/iterators\":84,\"../internals/iterators-core\":83,\"../internals/object-get-prototype-of\":93,\"../internals/object-set-prototype-of\":97,\"../internals/redefine\":102,\"../internals/set-to-string-tag\":106,\"../internals/well-known-symbol\":126}],60:[function(e,t,r){var n=e(\"../internals/fails\");t.exports=!n(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},{\"../internals/fails\":64}],61:[function(e,t,r){var n=e(\"../internals/global\"),a=e(\"../internals/is-object\"),document=n.document,o=a(document)&&a(document.createElement);t.exports=function(e){return o?document.createElement(e):{}}},{\"../internals/global\":68,\"../internals/is-object\":81}],62:[function(e,t,r){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},{}],63:[function(e,t,r){var c=e(\"../internals/global\"),d=e(\"../internals/object-get-own-property-descriptor\").f,p=e(\"../internals/create-non-enumerable-property\"),m=e(\"../internals/redefine\"),f=e(\"../internals/set-global\"),h=e(\"../internals/copy-constructor-properties\"),b=e(\"../internals/is-forced\");t.exports=function(e,t){var r,n,a,o,i,s=e.target,l=e.global,u=e.stat;if(r=l?c:u?c[s]||f(s,{}):(c[s]||{}).prototype)for(n in t){if(o=t[n],a=e.noTargetGet?(i=d(r,n))&&i.value:r[n],!b(l?n:s+(u?\".\":\"#\")+n,e.forced)&&void 0!==a){if(typeof o==typeof a)continue;h(o,a)}(e.sham||a&&a.sham)&&p(o,\"sham\",!0),m(r,n,o,e)}}},{\"../internals/copy-constructor-properties\":54,\"../internals/create-non-enumerable-property\":57,\"../internals/global\":68,\"../internals/is-forced\":80,\"../internals/object-get-own-property-descriptor\":90,\"../internals/redefine\":102,\"../internals/set-global\":104}],64:[function(e,t,r){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],65:[function(e,t,r){var o=e(\"../internals/a-function\");t.exports=function(n,a,e){if(o(n),void 0===a)return n;switch(e){case 0:return function(){return n.call(a)};case 1:return function(e){return n.call(a,e)};case 2:return function(e,t){return n.call(a,e,t)};case 3:return function(e,t,r){return n.call(a,e,t,r)}}return function(){return n.apply(a,arguments)}}},{\"../internals/a-function\":34}],66:[function(e,t,r){function n(e){return\"function\"==typeof e?e:void 0}var a=e(\"../internals/path\"),o=e(\"../internals/global\");t.exports=function(e,t){return arguments.length<2?n(a[e])||n(o[e]):a[e]&&a[e][t]||o[e]&&o[e][t]}},{\"../internals/global\":68,\"../internals/path\":100}],67:[function(e,t,r){var n=e(\"../internals/classof\"),a=e(\"../internals/iterators\"),o=e(\"../internals/well-known-symbol\")(\"iterator\");t.exports=function(e){if(null!=e)return e[o]||e[\"@@iterator\"]||a[n(e)]}},{\"../internals/classof\":53,\"../internals/iterators\":84,\"../internals/well-known-symbol\":126}],68:[function(e,r,t){(function(e){function t(e){return e&&e.Math==Math&&e}r.exports=t(\"object\"==typeof globalThis&&globalThis)||t(\"object\"==typeof window&&window)||t(\"object\"==typeof self&&self)||t(\"object\"==typeof e&&e)||Function(\"return this\")()}).call(this,void 0!==a?a:\"undefined\"!=typeof self?self:void 0!==window?window:{})},{}],69:[function(e,t,r){var n={}.hasOwnProperty;t.exports=function(e,t){return n.call(e,t)}},{}],70:[function(e,t,r){t.exports={}},{}],71:[function(e,t,r){var n=e(\"../internals/get-built-in\");t.exports=n(\"document\",\"documentElement\")},{\"../internals/get-built-in\":66}],72:[function(e,t,r){var n=e(\"../internals/descriptors\"),a=e(\"../internals/fails\"),o=e(\"../internals/document-create-element\");t.exports=!n&&!a(function(){return 7!=Object.defineProperty(o(\"div\"),\"a\",{get:function(){return 7}}).a})},{\"../internals/descriptors\":60,\"../internals/document-create-element\":61,\"../internals/fails\":64}],73:[function(e,t,r){var m=Math.abs,f=Math.pow,h=Math.floor,b=Math.log,g=Math.LN2;t.exports={pack:function(e,t,r){var n,a,o,i=new Array(r),s=8*r-t-1,l=(1<<s)-1,u=l>>1,c=23===t?f(2,-24)-f(2,-77):0,d=e<0||0===e&&1/e<0?1:0,p=0;for((e=m(e))!=e||e===1/0?(a=e!=e?1:0,n=l):(n=h(b(e)/g),e*(o=f(2,-n))<1&&(n--,o*=2),2<=(e+=1<=n+u?c/o:c*f(2,1-u))*o&&(n++,o/=2),l<=n+u?(a=0,n=l):1<=n+u?(a=(e*o-1)*f(2,t),n+=u):(a=e*f(2,u-1)*f(2,t),n=0));8<=t;i[p++]=255&a,a/=256,t-=8);for(n=n<<t|a,s+=t;0<s;i[p++]=255&n,n/=256,s-=8);return i[--p]|=128*d,i},unpack:function(e,t){var r,n=e.length,a=8*n-t-1,o=(1<<a)-1,i=o>>1,s=a-7,l=n-1,u=e[l--],c=127&u;for(u>>=7;0<s;c=256*c+e[l],l--,s-=8);for(r=c&(1<<-s)-1,c>>=-s,s+=t;0<s;r=256*r+e[l],l--,s-=8);if(0===c)c=1-i;else{if(c===o)return r?NaN:u?-1/0:1/0;r+=f(2,t),c-=i}return(u?-1:1)*r*f(2,c-t)}}},{}],74:[function(e,t,r){var n=e(\"../internals/fails\"),a=e(\"../internals/classof-raw\"),o=\"\".split;t.exports=n(function(){return!Object(\"z\").propertyIsEnumerable(0)})?function(e){return\"String\"==a(e)?o.call(e,\"\"):Object(e)}:Object},{\"../internals/classof-raw\":52,\"../internals/fails\":64}],75:[function(e,t,r){var o=e(\"../internals/is-object\"),i=e(\"../internals/object-set-prototype-of\");t.exports=function(e,t,r){var n,a;return i&&\"function\"==typeof(n=t.constructor)&&n!==r&&o(a=n.prototype)&&a!==r.prototype&&i(e,a),e}},{\"../internals/is-object\":81,\"../internals/object-set-prototype-of\":97}],76:[function(e,t,r){var n=e(\"../internals/shared-store\"),a=Function.toString;\"function\"!=typeof n.inspectSource&&(n.inspectSource=function(e){return a.call(e)}),t.exports=n.inspectSource},{\"../internals/shared-store\":108}],77:[function(e,t,r){var n,a,o,i=e(\"../internals/native-weak-map\"),s=e(\"../internals/global\"),l=e(\"../internals/is-object\"),u=e(\"../internals/create-non-enumerable-property\"),c=e(\"../internals/has\"),d=e(\"../internals/shared-key\"),p=e(\"../internals/hidden-keys\"),m=s.WeakMap;if(i){var f=new m,h=f.get,b=f.has,g=f.set;n=function(e,t){return g.call(f,e,t),t},a=function(e){return h.call(f,e)||{}},o=function(e){return b.call(f,e)}}else{var y=d(\"state\");p[y]=!0,n=function(e,t){return u(e,y,t),t},a=function(e){return c(e,y)?e[y]:{}},o=function(e){return c(e,y)}}t.exports={set:n,get:a,has:o,enforce:function(e){return o(e)?a(e):n(e,{})},getterFor:function(r){return function(e){var t;if(!l(e)||(t=a(e)).type!==r)throw TypeError(\"Incompatible receiver, \"+r+\" required\");return t}}}},{\"../internals/create-non-enumerable-property\":57,\"../internals/global\":68,\"../internals/has\":69,\"../internals/hidden-keys\":70,\"../internals/is-object\":81,\"../internals/native-weak-map\":86,\"../internals/shared-key\":107}],78:[function(e,t,r){var n=e(\"../internals/well-known-symbol\"),a=e(\"../internals/iterators\"),o=n(\"iterator\"),i=Array.prototype;t.exports=function(e){return void 0!==e&&(a.Array===e||i[o]===e)}},{\"../internals/iterators\":84,\"../internals/well-known-symbol\":126}],79:[function(e,t,r){var n=e(\"../internals/classof-raw\");t.exports=Array.isArray||function(e){return\"Array\"==n(e)}},{\"../internals/classof-raw\":52}],80:[function(e,t,r){function n(e,t){var r=s[i(e)];return r==u||r!=l&&(\"function\"==typeof t?a(t):!!t)}var a=e(\"../internals/fails\"),o=/#|\\.prototype\\./,i=n.normalize=function(e){return String(e).replace(o,\".\").toLowerCase()},s=n.data={},l=n.NATIVE=\"N\",u=n.POLYFILL=\"P\";t.exports=n},{\"../internals/fails\":64}],81:[function(e,t,r){t.exports=function(e){return\"object\"==typeof e?null!==e:\"function\"==typeof e}},{}],82:[function(e,t,r){t.exports=!1},{}],83:[function(e,t,r){\"use strict\";var n,a,o,i=e(\"../internals/object-get-prototype-of\"),s=e(\"../internals/create-non-enumerable-property\"),l=e(\"../internals/has\"),u=e(\"../internals/well-known-symbol\"),c=e(\"../internals/is-pure\"),d=u(\"iterator\"),p=!1;[].keys&&(\"next\"in(o=[].keys())?(a=i(i(o)))!==Object.prototype&&(n=a):p=!0),null==n&&(n={}),c||l(n,d)||s(n,d,function(){return this}),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:p}},{\"../internals/create-non-enumerable-property\":57,\"../internals/has\":69,\"../internals/is-pure\":82,\"../internals/object-get-prototype-of\":93,\"../internals/well-known-symbol\":126}],84:[function(e,t,r){arguments[4][70][0].apply(r,arguments)},{dup:70}],85:[function(e,t,r){var n=e(\"../internals/fails\");t.exports=!!Object.getOwnPropertySymbols&&!n(function(){return!String(Symbol())})},{\"../internals/fails\":64}],86:[function(e,t,r){var n=e(\"../internals/global\"),a=e(\"../internals/inspect-source\"),o=n.WeakMap;t.exports=\"function\"==typeof o&&/native code/.test(a(o))},{\"../internals/global\":68,\"../internals/inspect-source\":76}],87:[function(e,t,r){function n(){}function a(e){return\"<script>\"+e+\"</\"+f+\">\"}var o,i=e(\"../internals/an-object\"),s=e(\"../internals/object-define-properties\"),l=e(\"../internals/enum-bug-keys\"),u=e(\"../internals/hidden-keys\"),c=e(\"../internals/html\"),d=e(\"../internals/document-create-element\"),p=e(\"../internals/shared-key\"),m=\"prototype\",f=\"script\",h=p(\"IE_PROTO\"),b=function(){try{o=document.domain&&new ActiveXObject(\"htmlfile\")}catch(e){}var e,t;b=o?function(e){e.write(a(\"\")),e.close();var t=e.parentWindow.Object;return e=null,t}(o):((t=d(\"iframe\")).style.display=\"none\",c.appendChild(t),t.src=String(\"javascript:\"),(e=t.contentWindow.document).open(),e.write(a(\"document.F=Object\")),e.close(),e.F);for(var r=l.length;r--;)delete b[m][l[r]];return b()};u[h]=!0,t.exports=Object.create||function(e,t){var r;return null!==e?(n[m]=i(e),r=new n,n[m]=null,r[h]=e):r=b(),void 0===t?r:s(r,t)}},{\"../internals/an-object\":38,\"../internals/document-create-element\":61,\"../internals/enum-bug-keys\":62,\"../internals/hidden-keys\":70,\"../internals/html\":71,\"../internals/object-define-properties\":88,\"../internals/shared-key\":107}],88:[function(e,t,r){var n=e(\"../internals/descriptors\"),i=e(\"../internals/object-define-property\"),s=e(\"../internals/an-object\"),l=e(\"../internals/object-keys\");t.exports=n?Object.defineProperties:function(e,t){s(e);for(var r,n=l(t),a=n.length,o=0;o<a;)i.f(e,r=n[o++],t[r]);return e}},{\"../internals/an-object\":38,\"../internals/descriptors\":60,\"../internals/object-define-property\":89,\"../internals/object-keys\":95}],89:[function(e,t,r){var n=e(\"../internals/descriptors\"),a=e(\"../internals/ie8-dom-define\"),o=e(\"../internals/an-object\"),i=e(\"../internals/to-primitive\"),s=Object.defineProperty;r.f=n?s:function(e,t,r){if(o(e),t=i(t,!0),o(r),a)try{return s(e,t,r)}catch(e){}if(\"get\"in r||\"set\"in r)throw TypeError(\"Accessors not supported\");return\"value\"in r&&(e[t]=r.value),e}},{\"../internals/an-object\":38,\"../internals/descriptors\":60,\"../internals/ie8-dom-define\":72,\"../internals/to-primitive\":119}],90:[function(e,t,r){var n=e(\"../internals/descriptors\"),a=e(\"../internals/object-property-is-enumerable\"),o=e(\"../internals/create-property-descriptor\"),i=e(\"../internals/to-indexed-object\"),s=e(\"../internals/to-primitive\"),l=e(\"../internals/has\"),u=e(\"../internals/ie8-dom-define\"),c=Object.getOwnPropertyDescriptor;r.f=n?c:function(e,t){if(e=i(e),t=s(t,!0),u)try{return c(e,t)}catch(e){}if(l(e,t))return o(!a.f.call(e,t),e[t])}},{\"../internals/create-property-descriptor\":58,\"../internals/descriptors\":60,\"../internals/has\":69,\"../internals/ie8-dom-define\":72,\"../internals/object-property-is-enumerable\":96,\"../internals/to-indexed-object\":113,\"../internals/to-primitive\":119}],91:[function(e,t,r){var n=e(\"../internals/object-keys-internal\"),a=e(\"../internals/enum-bug-keys\").concat(\"length\",\"prototype\");r.f=Object.getOwnPropertyNames||function(e){return n(e,a)}},{\"../internals/enum-bug-keys\":62,\"../internals/object-keys-internal\":94}],92:[function(e,t,r){r.f=Object.getOwnPropertySymbols},{}],93:[function(e,t,r){var n=e(\"../internals/has\"),a=e(\"../internals/to-object\"),o=e(\"../internals/shared-key\"),i=e(\"../internals/correct-prototype-getter\"),s=o(\"IE_PROTO\"),l=Object.prototype;t.exports=i?Object.getPrototypeOf:function(e){return e=a(e),n(e,s)?e[s]:\"function\"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},{\"../internals/correct-prototype-getter\":55,\"../internals/has\":69,\"../internals/shared-key\":107,\"../internals/to-object\":116}],94:[function(e,t,r){var i=e(\"../internals/has\"),s=e(\"../internals/to-indexed-object\"),l=e(\"../internals/array-includes\").indexOf,u=e(\"../internals/hidden-keys\");t.exports=function(e,t){var r,n=s(e),a=0,o=[];for(r in n)!i(u,r)&&i(n,r)&&o.push(r);for(;t.length>a;)i(n,r=t[a++])&&(~l(o,r)||o.push(r));return o}},{\"../internals/array-includes\":44,\"../internals/has\":69,\"../internals/hidden-keys\":70,\"../internals/to-indexed-object\":113}],95:[function(e,t,r){var n=e(\"../internals/object-keys-internal\"),a=e(\"../internals/enum-bug-keys\");t.exports=Object.keys||function(e){return n(e,a)}},{\"../internals/enum-bug-keys\":62,\"../internals/object-keys-internal\":94}],96:[function(e,t,r){\"use strict\";var n={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,o=a&&!n.call({1:2},1);r.f=o?function(e){var t=a(this,e);return!!t&&t.enumerable}:n},{}],97:[function(e,t,r){var a=e(\"../internals/an-object\"),o=e(\"../internals/a-possible-prototype\");t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var r,n=!1,e={};try{(r=Object.getOwnPropertyDescriptor(Object.prototype,\"__proto__\").set).call(e,[]),n=e instanceof Array}catch(e){}return function(e,t){return a(e),o(t),n?r.call(e,t):e.__proto__=t,e}}():void 0)},{\"../internals/a-possible-prototype\":35,\"../internals/an-object\":38}],98:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-string-tag-support\"),a=e(\"../internals/classof\");t.exports=n?{}.toString:function(){return\"[object \"+a(this)+\"]\"}},{\"../internals/classof\":53,\"../internals/to-string-tag-support\":120}],99:[function(e,t,r){var n=e(\"../internals/get-built-in\"),a=e(\"../internals/object-get-own-property-names\"),o=e(\"../internals/object-get-own-property-symbols\"),i=e(\"../internals/an-object\");t.exports=n(\"Reflect\",\"ownKeys\")||function(e){var t=a.f(i(e)),r=o.f;return r?t.concat(r(e)):t}},{\"../internals/an-object\":38,\"../internals/get-built-in\":66,\"../internals/object-get-own-property-names\":91,\"../internals/object-get-own-property-symbols\":92}],100:[function(e,t,r){var n=e(\"../internals/global\");t.exports=n},{\"../internals/global\":68}],101:[function(e,t,r){var a=e(\"../internals/redefine\");t.exports=function(e,t,r){for(var n in t)a(e,n,t[n],r);return e}},{\"../internals/redefine\":102}],102:[function(e,t,r){var s=e(\"../internals/global\"),l=e(\"../internals/create-non-enumerable-property\"),u=e(\"../internals/has\"),c=e(\"../internals/set-global\"),n=e(\"../internals/inspect-source\"),a=e(\"../internals/internal-state\"),o=a.get,d=a.enforce,p=String(String).split(\"String\");(t.exports=function(e,t,r,n){var a=!!n&&!!n.unsafe,o=!!n&&!!n.enumerable,i=!!n&&!!n.noTargetGet;\"function\"==typeof r&&(\"string\"!=typeof t||u(r,\"name\")||l(r,\"name\",t),d(r).source=p.join(\"string\"==typeof t?t:\"\")),e!==s?(a?!i&&e[t]&&(o=!0):delete e[t],o?e[t]=r:l(e,t,r)):o?e[t]=r:c(t,r)})(Function.prototype,\"toString\",function(){return\"function\"==typeof this&&o(this).source||n(this)})},{\"../internals/create-non-enumerable-property\":57,\"../internals/global\":68,\"../internals/has\":69,\"../internals/inspect-source\":76,\"../internals/internal-state\":77,\"../internals/set-global\":104}],103:[function(e,t,r){t.exports=function(e){if(null==e)throw TypeError(\"Can't call method on \"+e);return e}},{}],104:[function(e,t,r){var n=e(\"../internals/global\"),a=e(\"../internals/create-non-enumerable-property\");t.exports=function(t,r){try{a(n,t,r)}catch(e){n[t]=r}return r}},{\"../internals/create-non-enumerable-property\":57,\"../internals/global\":68}],105:[function(e,t,r){\"use strict\";var n=e(\"../internals/get-built-in\"),a=e(\"../internals/object-define-property\"),o=e(\"../internals/well-known-symbol\"),i=e(\"../internals/descriptors\"),s=o(\"species\");t.exports=function(e){var t=n(e),r=a.f;i&&t&&!t[s]&&r(t,s,{configurable:!0,get:function(){return this}})}},{\"../internals/descriptors\":60,\"../internals/get-built-in\":66,\"../internals/object-define-property\":89,\"../internals/well-known-symbol\":126}],106:[function(e,t,r){var n=e(\"../internals/object-define-property\").f,a=e(\"../internals/has\"),o=e(\"../internals/well-known-symbol\")(\"toStringTag\");t.exports=function(e,t,r){e&&!a(e=r?e:e.prototype,o)&&n(e,o,{configurable:!0,value:t})}},{\"../internals/has\":69,\"../internals/object-define-property\":89,\"../internals/well-known-symbol\":126}],107:[function(e,t,r){var n=e(\"../internals/shared\"),a=e(\"../internals/uid\"),o=n(\"keys\");t.exports=function(e){return o[e]||(o[e]=a(e))}},{\"../internals/shared\":109,\"../internals/uid\":124}],108:[function(e,t,r){var n=e(\"../internals/global\"),a=e(\"../internals/set-global\"),o=\"__core-js_shared__\",i=n[o]||a(o,{});t.exports=i},{\"../internals/global\":68,\"../internals/set-global\":104}],109:[function(e,t,r){var n=e(\"../internals/is-pure\"),a=e(\"../internals/shared-store\");(t.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})(\"versions\",[]).push({version:\"3.6.4\",mode:n?\"pure\":\"global\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})},{\"../internals/is-pure\":82,\"../internals/shared-store\":108}],110:[function(e,t,r){var a=e(\"../internals/an-object\"),o=e(\"../internals/a-function\"),i=e(\"../internals/well-known-symbol\")(\"species\");t.exports=function(e,t){var r,n=a(e).constructor;return void 0===n||null==(r=a(n)[i])?t:o(r)}},{\"../internals/a-function\":34,\"../internals/an-object\":38,\"../internals/well-known-symbol\":126}],111:[function(e,t,r){var n=e(\"../internals/to-integer\"),a=Math.max,o=Math.min;t.exports=function(e,t){var r=n(e);return r<0?a(r+t,0):o(r,t)}},{\"../internals/to-integer\":114}],112:[function(e,t,r){var n=e(\"../internals/to-integer\"),a=e(\"../internals/to-length\");t.exports=function(e){if(void 0===e)return 0;var t=n(e),r=a(t);if(t!==r)throw RangeError(\"Wrong length or index\");return r}},{\"../internals/to-integer\":114,\"../internals/to-length\":115}],113:[function(e,t,r){var n=e(\"../internals/indexed-object\"),a=e(\"../internals/require-object-coercible\");t.exports=function(e){return n(a(e))}},{\"../internals/indexed-object\":74,\"../internals/require-object-coercible\":103}],114:[function(e,t,r){var n=Math.ceil,a=Math.floor;t.exports=function(e){return isNaN(e=+e)?0:(0<e?a:n)(e)}},{}],115:[function(e,t,r){var n=e(\"../internals/to-integer\"),a=Math.min;t.exports=function(e){return 0<e?a(n(e),9007199254740991):0}},{\"../internals/to-integer\":114}],116:[function(e,t,r){var n=e(\"../internals/require-object-coercible\");t.exports=function(e){return Object(n(e))}},{\"../internals/require-object-coercible\":103}],117:[function(e,t,r){var n=e(\"../internals/to-positive-integer\");t.exports=function(e,t){var r=n(e);if(r%t)throw RangeError(\"Wrong offset\");return r}},{\"../internals/to-positive-integer\":118}],118:[function(e,t,r){var n=e(\"../internals/to-integer\");t.exports=function(e){var t=n(e);if(t<0)throw RangeError(\"The argument can't be less than 0\");return t}},{\"../internals/to-integer\":114}],119:[function(e,t,r){var a=e(\"../internals/is-object\");t.exports=function(e,t){if(!a(e))return e;var r,n;if(t&&\"function\"==typeof(r=e.toString)&&!a(n=r.call(e)))return n;if(\"function\"==typeof(r=e.valueOf)&&!a(n=r.call(e)))return n;if(!t&&\"function\"==typeof(r=e.toString)&&!a(n=r.call(e)))return n;throw TypeError(\"Can't convert object to primitive value\")}},{\"../internals/is-object\":81}],120:[function(e,t,r){var n={};n[e(\"../internals/well-known-symbol\")(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(n)},{\"../internals/well-known-symbol\":126}],121:[function(e,t,r){\"use strict\";function f(e,t){for(var r=0,n=t.length,a=new(W(e))(n);r<n;)a[r]=t[r++];return a}function n(e,t){P(e,t,{get:function(){return _(this)[t]}})}function h(e){var t;return e instanceof M||\"ArrayBuffer\"==(t=k(e))||\"SharedArrayBuffer\"==t}function a(e,t){return Y(e)&&\"symbol\"!=typeof t&&t in e&&String(+t)==String(t)}function o(e,t){return a(e,t=m(t,!0))?p(2,e[t]):I(e,t)}function i(e,t,r){return!(a(e,t=m(t,!0))&&E(r)&&D(r,\"value\"))||D(r,\"get\")||D(r,\"set\")||r.configurable||D(r,\"writable\")&&!r.writable||D(r,\"enumerable\")&&!r.enumerable?P(e,t,r):(e[t]=r.value,e)}var l=e(\"../internals/export\"),u=e(\"../internals/global\"),s=e(\"../internals/descriptors\"),b=e(\"../internals/typed-array-constructors-require-wrappers\"),c=e(\"../internals/array-buffer-view-core\"),d=e(\"../internals/array-buffer\"),g=e(\"../internals/an-instance\"),p=e(\"../internals/create-property-descriptor\"),y=e(\"../internals/create-non-enumerable-property\"),v=e(\"../internals/to-length\"),w=e(\"../internals/to-index\"),x=e(\"../internals/to-offset\"),m=e(\"../internals/to-primitive\"),D=e(\"../internals/has\"),k=e(\"../internals/classof\"),E=e(\"../internals/is-object\"),A=e(\"../internals/object-create\"),j=e(\"../internals/object-set-prototype-of\"),C=e(\"../internals/object-get-own-property-names\").f,F=e(\"../internals/typed-array-from\"),T=e(\"../internals/array-iteration\").forEach,N=e(\"../internals/set-species\"),S=e(\"../internals/object-define-property\"),z=e(\"../internals/object-get-own-property-descriptor\"),q=e(\"../internals/internal-state\"),O=e(\"../internals/inherit-if-required\"),_=q.get,R=q.set,P=S.f,I=z.f,L=Math.round,B=u.RangeError,M=d.ArrayBuffer,V=d.DataView,U=c.NATIVE_ARRAY_BUFFER_VIEWS,H=c.TYPED_ARRAY_TAG,$=c.TypedArray,G=c.TypedArrayPrototype,W=c.aTypedArrayConstructor,Y=c.isTypedArray,K=\"BYTES_PER_ELEMENT\",X=\"Wrong length\";s?(U||(z.f=o,S.f=i,n(G,\"buffer\"),n(G,\"byteOffset\"),n(G,\"byteLength\"),n(G,\"length\")),l({target:\"Object\",stat:!0,forced:!U},{getOwnPropertyDescriptor:o,defineProperty:i}),t.exports=function(e,t,o){function c(e,a){P(e,a,{get:function(){return e=a,(t=_(this)).view[r](e*d+t.byteOffset,!0);var e,t},set:function(e){return t=a,r=e,n=_(this),o&&(r=(r=L(r))<0?0:255<r?255:255&r),void n.view[i](t*d+n.byteOffset,r,!0);var t,r,n},enumerable:!0})}var d=e.match(/\\d+$/)[0]/8,p=e+(o?\"Clamped\":\"\")+\"Array\",r=\"get\"+e,i=\"set\"+e,a=u[p],m=a,n=m&&m.prototype,s={};U?b&&(m=t(function(e,t,r,n){return g(e,m,p),O(E(t)?h(t)?void 0!==n?new a(t,x(r,d),n):void 0!==r?new a(t,x(r,d)):new a(t):Y(t)?f(m,t):F.call(m,t):new a(w(t)),e,m)}),j&&j(m,$),T(C(a),function(e){e in m||y(m,e,a[e])}),m.prototype=n):(m=t(function(e,t,r,n){g(e,m,p);var a,o,i,s=0,l=0;if(E(t)){if(!h(t))return Y(t)?f(m,t):F.call(m,t);a=t,l=x(r,d);var u=t.byteLength;if(void 0===n){if(u%d)throw B(X);if((o=u-l)<0)throw B(X)}else if(u<(o=v(n)*d)+l)throw B(X);i=o/d}else i=w(t),a=new M(o=i*d);for(R(e,{buffer:a,byteOffset:l,byteLength:o,length:i,view:new V(a)});s<i;)c(e,s++)}),j&&j(m,$),n=m.prototype=A(G)),n.constructor!==m&&y(n,\"constructor\",m),H&&y(n,H,p),s[p]=m,l({global:!0,forced:m!=a,sham:!U},s),K in m||y(m,K,d),K in n||y(n,K,d),N(p)}):t.exports=function(){}},{\"../internals/an-instance\":37,\"../internals/array-buffer\":41,\"../internals/array-buffer-view-core\":40,\"../internals/array-iteration\":45,\"../internals/classof\":53,\"../internals/create-non-enumerable-property\":57,\"../internals/create-property-descriptor\":58,\"../internals/descriptors\":60,\"../internals/export\":63,\"../internals/global\":68,\"../internals/has\":69,\"../internals/inherit-if-required\":75,\"../internals/internal-state\":77,\"../internals/is-object\":81,\"../internals/object-create\":87,\"../internals/object-define-property\":89,\"../internals/object-get-own-property-descriptor\":90,\"../internals/object-get-own-property-names\":91,\"../internals/object-set-prototype-of\":97,\"../internals/set-species\":105,\"../internals/to-index\":112,\"../internals/to-length\":115,\"../internals/to-offset\":117,\"../internals/to-primitive\":119,\"../internals/typed-array-constructors-require-wrappers\":122,\"../internals/typed-array-from\":123}],122:[function(e,t,r){var n=e(\"../internals/global\"),a=e(\"../internals/fails\"),o=e(\"../internals/check-correctness-of-iteration\"),i=e(\"../internals/array-buffer-view-core\").NATIVE_ARRAY_BUFFER_VIEWS,s=n.ArrayBuffer,l=n.Int8Array;t.exports=!i||!a(function(){l(1)})||!a(function(){new l(-1)})||!o(function(e){new l,new l(null),new l(1.5),new l(e)},!0)||a(function(){return 1!==new l(new s(2),1,void 0).length})},{\"../internals/array-buffer-view-core\":40,\"../internals/check-correctness-of-iteration\":51,\"../internals/fails\":64,\"../internals/global\":68}],123:[function(e,t,r){var f=e(\"../internals/to-object\"),h=e(\"../internals/to-length\"),b=e(\"../internals/get-iterator-method\"),g=e(\"../internals/is-array-iterator-method\"),y=e(\"../internals/function-bind-context\"),v=e(\"../internals/array-buffer-view-core\").aTypedArrayConstructor;t.exports=function(e,t,r){var n,a,o,i,s,l,u=f(e),c=arguments.length,d=1<c?t:void 0,p=void 0!==d,m=b(u);if(null!=m&&!g(m))for(l=(s=m.call(u)).next,u=[];!(i=l.call(s)).done;)u.push(i.value);for(p&&2<c&&(d=y(d,r,2)),a=h(u.length),o=new(v(this))(a),n=0;n<a;n++)o[n]=p?d(u[n],n):u[n];return o}},{\"../internals/array-buffer-view-core\":40,\"../internals/function-bind-context\":65,\"../internals/get-iterator-method\":67,\"../internals/is-array-iterator-method\":78,\"../internals/to-length\":115,\"../internals/to-object\":116}],124:[function(e,t,r){var n=0,a=Math.random();t.exports=function(e){return\"Symbol(\"+String(void 0===e?\"\":e)+\")_\"+(++n+a).toString(36)}},{}],125:[function(e,t,r){var n=e(\"../internals/native-symbol\");t.exports=n&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},{\"../internals/native-symbol\":85}],126:[function(e,t,r){var n=e(\"../internals/global\"),a=e(\"../internals/shared\"),o=e(\"../internals/has\"),i=e(\"../internals/uid\"),s=e(\"../internals/native-symbol\"),l=e(\"../internals/use-symbol-as-uid\"),u=a(\"wks\"),c=n.Symbol,d=l?c:c&&c.withoutSetter||i;t.exports=function(e){return o(u,e)||(s&&o(c,e)?u[e]=c[e]:u[e]=d(\"Symbol.\"+e)),u[e]}},{\"../internals/global\":68,\"../internals/has\":69,\"../internals/native-symbol\":85,\"../internals/shared\":109,\"../internals/uid\":124,\"../internals/use-symbol-as-uid\":125}],127:[function(e,t,r){\"use strict\";var n=e(\"../internals/to-indexed-object\"),a=e(\"../internals/add-to-unscopables\"),o=e(\"../internals/iterators\"),i=e(\"../internals/internal-state\"),s=e(\"../internals/define-iterator\"),l=\"Array Iterator\",u=i.set,c=i.getterFor(l);t.exports=s(Array,\"Array\",function(e,t){u(this,{type:l,target:n(e),index:0,kind:t})},function(){var e=c(this),t=e.target,r=e.kind,n=e.index++;return!t||n>=t.length?{value:e.target=void 0,done:!0}:\"keys\"==r?{value:n,done:!1}:\"values\"==r?{value:t[n],done:!1}:{value:[n,t[n]],done:!1}},\"values\"),o.Arguments=o.Array,a(\"keys\"),a(\"values\"),a(\"entries\")},{\"../internals/add-to-unscopables\":36,\"../internals/define-iterator\":59,\"../internals/internal-state\":77,\"../internals/iterators\":84,\"../internals/to-indexed-object\":113}],128:[function(e,t,r){var n=e(\"../internals/to-string-tag-support\"),a=e(\"../internals/redefine\"),o=e(\"../internals/object-to-string\");n||a(Object.prototype,\"toString\",o,{unsafe:!0})},{\"../internals/object-to-string\":98,\"../internals/redefine\":102,\"../internals/to-string-tag-support\":120}],129:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-copy-within\"),o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"copyWithin\",function(e,t,r){return a.call(o(this),e,t,2<arguments.length?r:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-copy-within\":42}],130:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-iteration\").every,o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"every\",function(e,t){return a(o(this),e,1<arguments.length?t:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-iteration\":45}],131:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-fill\"),o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"fill\",function(e){return a.apply(o(this),arguments)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-fill\":43}],132:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),s=e(\"../internals/array-iteration\").filter,l=e(\"../internals/species-constructor\"),u=n.aTypedArray,c=n.aTypedArrayConstructor;(0,n.exportTypedArrayMethod)(\"filter\",function(e,t){for(var r=s(u(this),e,1<arguments.length?t:void 0),n=l(this,this.constructor),a=0,o=r.length,i=new(c(n))(o);a<o;)i[a]=r[a++];return i})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-iteration\":45,\"../internals/species-constructor\":110}],133:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-iteration\").findIndex,o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"findIndex\",function(e,t){return a(o(this),e,1<arguments.length?t:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-iteration\":45}],134:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-iteration\").find,o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"find\",function(e,t){return a(o(this),e,1<arguments.length?t:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-iteration\":45}],135:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-iteration\").forEach,o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"forEach\",function(e,t){a(o(this),e,1<arguments.length?t:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-iteration\":45}],136:[function(e,t,r){\"use strict\";var n=e(\"../internals/typed-array-constructors-require-wrappers\");(0,e(\"../internals/array-buffer-view-core\").exportTypedArrayStaticMethod)(\"from\",e(\"../internals/typed-array-from\"),n)},{\"../internals/array-buffer-view-core\":40,\"../internals/typed-array-constructors-require-wrappers\":122,\"../internals/typed-array-from\":123}],137:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-includes\").includes,o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"includes\",function(e,t){return a(o(this),e,1<arguments.length?t:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-includes\":44}],138:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-includes\").indexOf,o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"indexOf\",function(e,t){return a(o(this),e,1<arguments.length?t:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-includes\":44}],139:[function(e,t,r){\"use strict\";function n(){return u.call(p(this))}var a=e(\"../internals/global\"),o=e(\"../internals/array-buffer-view-core\"),i=e(\"../modules/es.array.iterator\"),s=e(\"../internals/well-known-symbol\")(\"iterator\"),l=a.Uint8Array,u=i.values,c=i.keys,d=i.entries,p=o.aTypedArray,m=o.exportTypedArrayMethod,f=l&&l.prototype[s],h=!!f&&(\"values\"==f.name||null==f.name);m(\"entries\",function(){return d.call(p(this))}),m(\"keys\",function(){return c.call(p(this))}),m(\"values\",n,!h),m(s,n,!h)},{\"../internals/array-buffer-view-core\":40,\"../internals/global\":68,\"../internals/well-known-symbol\":126,\"../modules/es.array.iterator\":127}],140:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=n.aTypedArray,o=n.exportTypedArrayMethod,i=[].join;o(\"join\",function(e){return i.apply(a(this),arguments)})},{\"../internals/array-buffer-view-core\":40}],141:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-last-index-of\"),o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"lastIndexOf\",function(e){return a.apply(o(this),arguments)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-last-index-of\":46}],142:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-iteration\").map,o=e(\"../internals/species-constructor\"),i=n.aTypedArray,s=n.aTypedArrayConstructor;(0,n.exportTypedArrayMethod)(\"map\",function(e,t){return a(i(this),e,1<arguments.length?t:void 0,function(e,t){return new(s(o(e,e.constructor)))(t)})})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-iteration\":45,\"../internals/species-constructor\":110}],143:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/typed-array-constructors-require-wrappers\"),o=n.aTypedArrayConstructor;(0,n.exportTypedArrayStaticMethod)(\"of\",function(){for(var e=0,t=arguments.length,r=new(o(this))(t);e<t;)r[e]=arguments[e++];return r},a)},{\"../internals/array-buffer-view-core\":40,\"../internals/typed-array-constructors-require-wrappers\":122}],144:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-reduce\").right,o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"reduceRight\",function(e,t){return a(o(this),e,arguments.length,1<arguments.length?t:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-reduce\":49}],145:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-reduce\").left,o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"reduce\",function(e,t){return a(o(this),e,arguments.length,1<arguments.length?t:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-reduce\":49}],146:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),o=n.aTypedArray,a=n.exportTypedArrayMethod,i=Math.floor;a(\"reverse\",function(){for(var e,t=this,r=o(t).length,n=i(r/2),a=0;a<n;)e=t[a],t[a++]=t[--r],t[r]=e;return t})},{\"../internals/array-buffer-view-core\":40}],147:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),s=e(\"../internals/to-length\"),l=e(\"../internals/to-offset\"),u=e(\"../internals/to-object\"),a=e(\"../internals/fails\"),c=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"set\",function(e,t){c(this);var r=l(1<arguments.length?t:void 0,1),n=this.length,a=u(e),o=s(a.length),i=0;if(n<o+r)throw RangeError(\"Wrong length\");for(;i<o;)this[r+i]=a[i++]},a(function(){new Int8Array(1).set({})}))},{\"../internals/array-buffer-view-core\":40,\"../internals/fails\":64,\"../internals/to-length\":115,\"../internals/to-object\":116,\"../internals/to-offset\":117}],148:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),s=e(\"../internals/species-constructor\"),a=e(\"../internals/fails\"),l=n.aTypedArray,u=n.aTypedArrayConstructor,o=n.exportTypedArrayMethod,c=[].slice;o(\"slice\",function(e,t){for(var r=c.call(l(this),e,t),n=s(this,this.constructor),a=0,o=r.length,i=new(u(n))(o);a<o;)i[a]=r[a++];return i},a(function(){new Int8Array(1).slice()}))},{\"../internals/array-buffer-view-core\":40,\"../internals/fails\":64,\"../internals/species-constructor\":110}],149:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=e(\"../internals/array-iteration\").some,o=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"some\",function(e,t){return a(o(this),e,1<arguments.length?t:void 0)})},{\"../internals/array-buffer-view-core\":40,\"../internals/array-iteration\":45}],150:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),a=n.aTypedArray,o=n.exportTypedArrayMethod,i=[].sort;o(\"sort\",function(e){return i.call(a(this),e)})},{\"../internals/array-buffer-view-core\":40}],151:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\"),o=e(\"../internals/to-length\"),i=e(\"../internals/to-absolute-index\"),s=e(\"../internals/species-constructor\"),l=n.aTypedArray;(0,n.exportTypedArrayMethod)(\"subarray\",function(e,t){var r=l(this),n=r.length,a=i(e,n);return new(s(r,r.constructor))(r.buffer,r.byteOffset+a*r.BYTES_PER_ELEMENT,o((void 0===t?n:i(t,n))-a))})},{\"../internals/array-buffer-view-core\":40,\"../internals/species-constructor\":110,\"../internals/to-absolute-index\":111,\"../internals/to-length\":115}],152:[function(e,t,r){\"use strict\";var n=e(\"../internals/global\"),a=e(\"../internals/array-buffer-view-core\"),o=e(\"../internals/fails\"),i=n.Int8Array,s=a.aTypedArray,l=a.exportTypedArrayMethod,u=[].toLocaleString,c=[].slice,d=!!i&&o(function(){u.call(new i(1))});l(\"toLocaleString\",function(){return u.apply(d?c.call(s(this)):s(this),arguments)},o(function(){return[1,2].toLocaleString()!=new i([1,2]).toLocaleString()})||!o(function(){i.prototype.toLocaleString.call([1,2])}))},{\"../internals/array-buffer-view-core\":40,\"../internals/fails\":64,\"../internals/global\":68}],153:[function(e,t,r){\"use strict\";var n=e(\"../internals/array-buffer-view-core\").exportTypedArrayMethod,a=e(\"../internals/fails\"),o=e(\"../internals/global\").Uint8Array,i=o&&o.prototype||{},s=[].toString,l=[].join;a(function(){s.call({})})&&(s=function(){return l.call(this)}),n(\"toString\",s,i.toString!=s)},{\"../internals/array-buffer-view-core\":40,\"../internals/fails\":64,\"../internals/global\":68}],154:[function(e,t,r){e(\"../internals/typed-array-constructor\")(\"Uint32\",function(n){return function(e,t,r){return n(this,e,t,r)}})},{\"../internals/typed-array-constructor\":121}],155:[function(e,t,r){t.exports={CssSelectorParser:e(\"./lib/css-selector-parser.js\").CssSelectorParser}},{\"./lib/css-selector-parser.js\":156}],156:[function(e,t,r){function n(){this.pseudos={},this.attrEqualityMods={},this.ruleNestingOperators={},this.substitutesEnabled=!1}function o(e){return\"a\"<=e&&e<=\"f\"||\"A\"<=e&&e<=\"F\"||\"0\"<=e&&e<=\"9\"}n.prototype.registerSelectorPseudos=function(e){for(var t=0,r=arguments.length;t<r;t++)e=arguments[t],this.pseudos[e]=\"selector\";return this},n.prototype.unregisterSelectorPseudos=function(e){for(var t=0,r=arguments.length;t<r;t++)e=arguments[t],delete this.pseudos[e];return this},n.prototype.registerNumericPseudos=function(e){for(var t=0,r=arguments.length;t<r;t++)e=arguments[t],this.pseudos[e]=\"numeric\";return this},n.prototype.unregisterNumericPseudos=function(e){for(var t=0,r=arguments.length;t<r;t++)e=arguments[t],delete this.pseudos[e];return this},n.prototype.registerNestingOperators=function(e){for(var t=0,r=arguments.length;t<r;t++)e=arguments[t],this.ruleNestingOperators[e]=!0;return this},n.prototype.unregisterNestingOperators=function(e){for(var t=0,r=arguments.length;t<r;t++)e=arguments[t],delete this.ruleNestingOperators[e];return this},n.prototype.registerAttrEqualityMods=function(e){for(var t=0,r=arguments.length;t<r;t++)e=arguments[t],this.attrEqualityMods[e]=!0;return this},n.prototype.unregisterAttrEqualityMods=function(e){for(var t=0,r=arguments.length;t<r;t++)e=arguments[t],delete this.attrEqualityMods[e];return this},n.prototype.enableSubstitutes=function(){return this.substitutesEnabled=!0,this},n.prototype.disableSubstitutes=function(){return this.substitutesEnabled=!1,this};var s={\"!\":!0,'\"':!0,\"#\":!0,$:!0,\"%\":!0,\"&\":!0,\"'\":!0,\"(\":!0,\")\":!0,\"*\":!0,\"+\":!0,\",\":!0,\".\":!0,\"/\":!0,\";\":!0,\"<\":!0,\"=\":!0,\">\":!0,\"?\":!0,\"@\":!0,\"[\":!0,\"\\\\\":!0,\"]\":!0,\"^\":!0,\"`\":!0,\"{\":!0,\"|\":!0,\"}\":!0,\"~\":!0},i={\"\\n\":\"\\\\n\",\"\\r\":\"\\\\r\",\"\\t\":\"\\\\t\",\"\\f\":\"\\\\f\",\"\\v\":\"\\\\v\"},y={n:\"\\n\",r:\"\\r\",t:\"\\t\",f:\"\\f\",\"\\\\\":\"\\\\\",\"'\":\"'\"},v={n:\"\\n\",r:\"\\r\",t:\"\\t\",f:\"\\f\",\"\\\\\":\"\\\\\",'\"':'\"'};function a(l,u,c,d,a,p){var m,f,h,b,g;return b=l.length,m=null,h=function(e,t){var r,n,a;for(a=\"\",u++,m=l.charAt(u);u<b;){if(m===e)return u++,a;if(\"\\\\\"===m)if(u++,(m=l.charAt(u))===e)a+=e;else if(r=t[m])a+=r;else{if(o(m)){for(n=m,u++,m=l.charAt(u);o(m);)n+=m,u++,m=l.charAt(u);\" \"===m&&(u++,m=l.charAt(u)),a+=String.fromCharCode(parseInt(n,16));continue}a+=m}else a+=m;u++,m=l.charAt(u)}return a},f=function(){var e,t=\"\";for(m=l.charAt(u);u<b;){if(\"a\"<=(e=m)&&e<=\"z\"||\"A\"<=e&&e<=\"Z\"||\"0\"<=e&&e<=\"9\"||\"-\"===e||\"_\"===e)t+=m;else{if(\"\\\\\"!==m)return t;if(b<=++u)throw Error(\"Expected symbol but end of file reached.\");if(m=l.charAt(u),s[m])t+=m;else{if(o(m)){var r=m;for(u++,m=l.charAt(u);o(m);)r+=m,u++,m=l.charAt(u);\" \"===m&&(u++,m=l.charAt(u)),t+=String.fromCharCode(parseInt(r,16));continue}t+=m}}u++,m=l.charAt(u)}return t},g=function(){m=l.charAt(u);for(var e=!1;\" \"===m||\"\\t\"===m||\"\\n\"===m||\"\\r\"===m||\"\\f\"===m;)e=!0,u++,m=l.charAt(u);return e},this.parse=function(){var e=this.parseSelector();if(u<b)throw Error('Rule expected but \"'+l.charAt(u)+'\" found.');return e},this.parseSelector=function(){var e,t=e=this.parseSingleSelector();for(m=l.charAt(u);\",\"===m;){if(u++,g(),\"selectors\"!==e.type&&(e={type:\"selectors\",selectors:[t]}),!(t=this.parseSingleSelector()))throw Error('Rule expected after \",\".');e.selectors.push(t)}return e},this.parseSingleSelector=function(){g();var e={type:\"ruleSet\"},t=this.parseRule();if(!t)return null;for(var r=e;t&&(t.type=\"rule\",r.rule=t,r=t,g(),m=l.charAt(u),!(b<=u||\",\"===m||\")\"===m));)if(a[m]){var n=m;if(u++,g(),!(t=this.parseRule()))throw Error('Rule expected after \"'+n+'\".');t.nestingOperator=n}else(t=this.parseRule())&&(t.nestingOperator=null);return e},this.parseRule=function(){for(var e,t=null;u<b;)if(\"*\"===(m=l.charAt(u)))u++,(t=t||{}).tagName=\"*\";else if(\"a\"<=(e=m)&&e<=\"z\"||\"A\"<=e&&e<=\"Z\"||\"-\"===e||\"_\"===e||\"\\\\\"===m)(t=t||{}).tagName=f();else if(\".\"===m)u++,((t=t||{}).classNames=t.classNames||[]).push(f());else if(\"#\"===m)u++,(t=t||{}).id=f();else if(\"[\"===m){u++,g();var r={name:f()};if(g(),\"]\"===m)u++;else{var n=\"\";if(d[m]&&(n=m,u++,m=l.charAt(u)),b<=u)throw Error('Expected \"=\" but end of file reached.');if(\"=\"!==m)throw Error('Expected \"=\" but \"'+m+'\" found.');r.operator=n+\"=\",u++,g();var a=\"\";if(r.valueType=\"string\",'\"'===m)a=h('\"',v);else if(\"'\"===m)a=h(\"'\",y);else if(p&&\"$\"===m)u++,a=f(),r.valueType=\"substitute\";else{for(;u<b&&\"]\"!==m;)a+=m,u++,m=l.charAt(u);a=a.trim()}if(g(),b<=u)throw Error('Expected \"]\" but end of file reached.');if(\"]\"!==m)throw Error('Expected \"]\" but \"'+m+'\" found.');u++,r.value=a}((t=t||{}).attrs=t.attrs||[]).push(r)}else{if(\":\"!==m)break;u++;var o=f(),i={name:o};if(\"(\"===m){u++;var s=\"\";if(g(),\"selector\"===c[o])i.valueType=\"selector\",s=this.parseSelector();else{if(i.valueType=c[o]||\"string\",'\"'===m)s=h('\"',v);else if(\"'\"===m)s=h(\"'\",y);else if(p&&\"$\"===m)u++,s=f(),i.valueType=\"substitute\";else{for(;u<b&&\")\"!==m;)s+=m,u++,m=l.charAt(u);s=s.trim()}g()}if(b<=u)throw Error('Expected \")\" but end of file reached.');if(\")\"!==m)throw Error('Expected \")\" but \"'+m+'\" found.');u++,i.value=s}((t=t||{}).pseudos=t.pseudos||[]).push(i)}return t},this}n.prototype.parse=function(e){return new a(e,0,this.pseudos,this.attrEqualityMods,this.ruleNestingOperators,this.substitutesEnabled).parse()},n.prototype.escapeIdentifier=function(e){for(var t=\"\",r=0,n=e.length;r<n;){var a=e.charAt(r);if(s[a])t+=\"\\\\\"+a;else if(\"_\"===a||\"-\"===a||\"A\"<=a&&a<=\"Z\"||\"a\"<=a&&a<=\"z\"||0!==r&&\"0\"<=a&&a<=\"9\")t+=a;else{var o=a.charCodeAt(0);if(55296==(63488&o)){var i=e.charCodeAt(r++);if(55296!=(64512&o)||56320!=(64512&i))throw Error(\"UCS-2(decode): illegal sequence\");o=((1023&o)<<10)+(1023&i)+65536}t+=\"\\\\\"+o.toString(16)+\" \"}r++}return t},n.prototype.escapeStr=function(e){for(var t,r,n=\"\",a=0,o=e.length;a<o;)'\"'===(t=e.charAt(a))?t='\\\\\"':\"\\\\\"===t?t=\"\\\\\\\\\":(r=i[t])&&(t=r),n+=t,a++;return'\"'+n+'\"'},n.prototype.render=function(e){return this._renderEntity(e).trim()},n.prototype._renderEntity=function(e){var t,r,n;switch(n=\"\",e.type){case\"ruleSet\":for(t=e.rule,r=[];t;)t.nestingOperator&&r.push(t.nestingOperator),r.push(this._renderEntity(t)),t=t.rule;n=r.join(\" \");break;case\"selectors\":n=e.selectors.map(this._renderEntity,this).join(\", \");break;case\"rule\":e.tagName&&(n=\"*\"===e.tagName?\"*\":this.escapeIdentifier(e.tagName)),e.id&&(n+=\"#\"+this.escapeIdentifier(e.id)),e.classNames&&(n+=e.classNames.map(function(e){return\".\"+this.escapeIdentifier(e)},this).join(\"\")),e.attrs&&(n+=e.attrs.map(function(e){return e.operator?\"substitute\"===e.valueType?\"[\"+this.escapeIdentifier(e.name)+e.operator+\"$\"+e.value+\"]\":\"[\"+this.escapeIdentifier(e.name)+e.operator+this.escapeStr(e.value)+\"]\":\"[\"+this.escapeIdentifier(e.name)+\"]\"},this).join(\"\")),e.pseudos&&(n+=e.pseudos.map(function(e){return e.valueType?\"selector\"===e.valueType?\":\"+this.escapeIdentifier(e.name)+\"(\"+this._renderEntity(e.value)+\")\":\"substitute\"===e.valueType?\":\"+this.escapeIdentifier(e.name)+\"($\"+e.value+\")\":\"numeric\"===e.valueType?\":\"+this.escapeIdentifier(e.name)+\"(\"+e.value+\")\":\":\"+this.escapeIdentifier(e.name)+\"(\"+this.escapeIdentifier(e.value)+\")\":\":\"+this.escapeIdentifier(e.name)},this).join(\"\"));break;default:throw Error('Unknown entity type: \"'+e.type(NaN))}return n},r.CssSelectorParser=n},{}],157:[function(e,t,r){\"use strict\";var s=e(\"type/value/is\"),l=e(\"type/plain-function/is\"),u=e(\"es5-ext/object/assign\"),c=e(\"es5-ext/object/normalize-options\"),d=e(\"es5-ext/string/#/contains\");(t.exports=function(e,t){var r,n,a,o,i;return arguments.length<2||\"string\"!=typeof e?(o=t,t=e,e=null):o=arguments[2],s(e)?(r=d.call(e,\"c\"),n=d.call(e,\"e\"),a=d.call(e,\"w\")):(r=a=!0,n=!1),i={value:t,configurable:r,enumerable:n,writable:a},o?u(c(o),i):i}).gs=function(e,t,r){var n,a,o,i;return\"string\"!=typeof e?(o=r,r=t,t=e,e=null):o=arguments[3],s(t)?l(t)?s(r)?l(r)||(o=r,r=void 0):r=void 0:(o=t,t=r=void 0):t=void 0,a=s(e)?(n=d.call(e,\"c\"),d.call(e,\"e\")):!(n=!0),i={get:t,set:r,configurable:n,enumerable:a},o?u(c(o),i):i}},{\"es5-ext/object/assign\":178,\"es5-ext/object/normalize-options\":190,\"es5-ext/string/#/contains\":197,\"type/plain-function/is\":242,\"type/value/is\":244}],158:[function(e,t,r){\"use strict\";t.exports=function(){return/\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g}},{}],159:[function(e,t,r){\"use strict\";var o=e(\"../../number/is-nan\"),i=e(\"../../number/to-pos-integer\"),s=e(\"../../object/valid-value\"),l=Array.prototype.indexOf,u=Object.prototype.hasOwnProperty,c=Math.abs,d=Math.floor;t.exports=function(e){var t,r,n,a;if(!o(e))return l.apply(this,arguments);for(r=i(s(this).length),n=arguments[1],t=n=isNaN(n)?0:0<=n?d(n):i(this.length)-d(c(n));t<r;++t)if(u.call(this,t)&&(a=this[t],o(a)))return t;return-1}},{\"../../number/is-nan\":172,\"../../number/to-pos-integer\":176,\"../../object/valid-value\":193}],160:[function(e,t,r){\"use strict\";t.exports=e(\"./is-implemented\")()?Array.from:e(\"./shim\")},{\"./is-implemented\":161,\"./shim\":162}],161:[function(e,t,r){\"use strict\";t.exports=function(){var e,t,r=Array.from;return\"function\"==typeof r&&(t=r(e=[\"raz\",\"dwa\"]),Boolean(t&&t!==e&&\"dwa\"===t[1]))}},{}],162:[function(e,t,r){\"use strict\";var m=e(\"es6-symbol\").iterator,f=e(\"../../function/is-arguments\"),h=e(\"../../function/is-function\"),b=e(\"../../number/to-pos-integer\"),g=e(\"../../object/valid-callable\"),y=e(\"../../object/valid-value\"),v=e(\"../../object/is-value\"),w=e(\"../../string/is-string\"),x=Array.isArray,D=Function.prototype.call,k={configurable:!0,enumerable:!0,writable:!0,value:null},E=Object.defineProperty;t.exports=function(e){var t,r,n,a,o,i,s,l,u,c,d=arguments[1],p=arguments[2];if(e=Object(y(e)),v(d)&&g(d),this&&this!==Array&&h(this))t=this;else{if(!d){if(f(e))return 1!==(o=e.length)?Array.apply(null,e):((a=new Array(1))[0]=e[0],a);if(x(e)){for(a=new Array(o=e.length),r=0;r<o;++r)a[r]=e[r];return a}}a=[]}if(!x(e))if(void 0!==(u=e[m])){for(s=g(u).call(e),t&&(a=new t),l=s.next(),r=0;!l.done;)c=d?D.call(d,p,l.value,r):l.value,t?(k.value=c,E(a,r,k)):a[r]=c,l=s.next(),++r;o=r}else if(w(e)){for(o=e.length,t&&(a=new t),n=r=0;r<o;++r)c=e[r],r+1<o&&55296<=(i=c.charCodeAt(0))&&i<=56319&&(c+=e[++r]),c=d?D.call(d,p,c,n):c,t?(k.value=c,E(a,n,k)):a[n]=c,++n;o=n}if(void 0===o)for(o=b(e.length),t&&(a=new t(o)),r=0;r<o;++r)c=d?D.call(d,p,e[r],r):e[r],t?(k.value=c,E(a,r,k)):a[r]=c;return t&&(k.value=null,a.length=o),a}},{\"../../function/is-arguments\":166,\"../../function/is-function\":167,\"../../number/to-pos-integer\":176,\"../../object/is-value\":184,\"../../object/valid-callable\":192,\"../../object/valid-value\":193,\"../../string/is-string\":200,\"es6-symbol\":203}],163:[function(e,t,r){\"use strict\";var n=e(\"./from\"),a=Array.isArray;t.exports=function(e){return a(e)?e:n(e)}},{\"./from\":160}],164:[function(e,a,t){\"use strict\";var o=e(\"../object/assign\"),i=e(\"../object/is-object\"),s=e(\"../object/is-value\"),l=Error.captureStackTrace;a.exports=function(e){var t=new Error(e),r=arguments[1],n=arguments[2];return s(n)||i(r)&&(n=r,r=null),s(n)&&o(t,n),s(r)&&(t.code=r),l&&l(t,a.exports),t}},{\"../object/assign\":178,\"../object/is-object\":183,\"../object/is-value\":184}],165:[function(e,t,r){\"use strict\";function n(e,t){return t}var a,o,i,s,l,u=e(\"../number/to-pos-integer\");try{Object.defineProperty(n,\"length\",{configurable:!0,writable:!1,enumerable:!1,value:1})}catch(e){}1===n.length?(a={configurable:!0,writable:!1,enumerable:!1},o=Object.defineProperty,t.exports=function(e,t){return t=u(t),e.length===t?e:(a.value=t,o(e,\"length\",a))}):(s=e(\"../object/mixin\"),l=[],i=function(e){var t,r=0;if(l[e])return l[e];for(t=[];e--;)t.push(\"a\"+(++r).toString(36));return new Function(\"fn\",\"return function (\"+t.join(\", \")+\") { return fn.apply(this, arguments); };\")},t.exports=function(e,t){var r;if(t=u(t),e.length===t)return e;r=i(t)(e);try{s(r,e)}catch(e){}return r})},{\"../number/to-pos-integer\":176,\"../object/mixin\":189}],166:[function(e,t,r){\"use strict\";var n=Object.prototype.toString,a=n.call(function(){return arguments}());t.exports=function(e){return n.call(e)===a}},{}],167:[function(e,t,r){\"use strict\";var n=Object.prototype.toString,a=RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);t.exports=function(e){return\"function\"==typeof e&&a(n.call(e))}},{}],168:[function(e,t,r){\"use strict\";t.exports=function(){}},{}],169:[function(e,t,r){\"use strict\";t.exports=e(\"./is-implemented\")()?Math.sign:e(\"./shim\")},{\"./is-implemented\":170,\"./shim\":171}],170:[function(e,t,r){\"use strict\";t.exports=function(){var e=Math.sign;return\"function\"==typeof e&&(1===e(10)&&-1===e(-20))}},{}],171:[function(e,t,r){\"use strict\";t.exports=function(e){return e=Number(e),isNaN(e)||0===e?e:0<e?1:-1}},{}],172:[function(e,t,r){\"use strict\";t.exports=e(\"./is-implemented\")()?Number.isNaN:e(\"./shim\")},{\"./is-implemented\":173,\"./shim\":174}],173:[function(e,t,r){\"use strict\";t.exports=function(){var e=Number.isNaN;return\"function\"==typeof e&&(!e({})&&e(NaN)&&!e(34))}},{}],174:[function(e,t,r){\"use strict\";t.exports=function(e){return e!=e}},{}],175:[function(e,t,r){\"use strict\";var n=e(\"../math/sign\"),a=Math.abs,o=Math.floor;t.exports=function(e){return isNaN(e)?0:0!==(e=Number(e))&&isFinite(e)?n(e)*o(a(e)):e}},{\"../math/sign\":169}],176:[function(e,t,r){\"use strict\";var n=e(\"./to-integer\"),a=Math.max;t.exports=function(e){return a(0,n(e))}},{\"./to-integer\":175}],177:[function(e,t,r){\"use strict\";var s=e(\"./valid-callable\"),l=e(\"./valid-value\"),u=Function.prototype.bind,c=Function.prototype.call,d=Object.keys,p=Object.prototype.propertyIsEnumerable;t.exports=function(o,i){return function(r,n){var e,a=arguments[2],t=arguments[3];return r=Object(l(r)),s(n),e=d(r),t&&e.sort(\"function\"==typeof t?u.call(t,r):void 0),\"function\"!=typeof o&&(o=e[o]),c.call(o,e,function(e,t){return p.call(r,e)?c.call(n,a,r[e],e,r,t):i})}}},{\"./valid-callable\":192,\"./valid-value\":193}],178:[function(e,t,r){\"use strict\";t.exports=e(\"./is-implemented\")()?Object.assign:e(\"./shim\")},{\"./is-implemented\":179,\"./shim\":180}],179:[function(e,t,r){\"use strict\";t.exports=function(){var e,t=Object.assign;return\"function\"==typeof t&&(t(e={foo:\"raz\"},{bar:\"dwa\"},{trzy:\"trzy\"}),e.foo+e.bar+e.trzy===\"razdwatrzy\")}},{}],180:[function(e,t,r){\"use strict\";var i=e(\"../keys\"),s=e(\"../valid-value\"),l=Math.max;t.exports=function(t,r){var n,e,a,o=l(arguments.length,2);for(t=Object(s(t)),a=function(e){try{t[e]=r[e]}catch(e){n=n||e}},e=1;e<o;++e)i(r=arguments[e]).forEach(a);if(void 0!==n)throw n;return t}},{\"../keys\":185,\"../valid-value\":193}],181:[function(e,t,r){\"use strict\";t.exports=e(\"./_iterate\")(\"forEach\")},{\"./_iterate\":177}],182:[function(e,t,r){\"use strict\";t.exports=function(e){return\"function\"==typeof e}},{}],183:[function(e,t,r){\"use strict\";var n=e(\"./is-value\"),a={function:!0,object:!0};t.exports=function(e){return n(e)&&a[typeof e]||!1}},{\"./is-value\":184}],184:[function(e,t,r){\"use strict\";var n=e(\"../function/noop\")();t.exports=function(e){return e!==n&&null!==e}},{\"../function/noop\":168}],185:[function(e,t,r){\"use strict\";t.exports=e(\"./is-implemented\")()?Object.keys:e(\"./shim\")},{\"./is-implemented\":186,\"./shim\":187}],186:[function(e,t,r){\"use strict\";t.exports=function(){try{return Object.keys(\"primitive\"),!0}catch(e){return!1}}},{}],187:[function(e,t,r){\"use strict\";var n=e(\"../is-value\"),a=Object.keys;t.exports=function(e){return a(n(e)?Object(e):e)}},{\"../is-value\":184}],188:[function(e,t,r){\"use strict\";var n=e(\"./valid-callable\"),s=e(\"./for-each\"),l=Function.prototype.call;t.exports=function(e,a){var o={},i=arguments[2];return n(a),s(e,function(e,t,r,n){o[t]=l.call(a,i,e,t,r,n)}),o}},{\"./for-each\":181,\"./valid-callable\":192}],189:[function(e,t,r){\"use strict\";var a=e(\"./valid-value\"),o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols;t.exports=function(t,r){var n,e=Object(a(r));if(t=Object(a(t)),s(e).forEach(function(e){try{o(t,e,i(r,e))}catch(e){n=e}}),\"function\"==typeof l&&l(e).forEach(function(e){try{o(t,e,i(r,e))}catch(e){n=e}}),void 0!==n)throw n;return t}},{\"./valid-value\":193}],190:[function(e,t,r){\"use strict\";var n=e(\"./is-value\"),a=Array.prototype.forEach,o=Object.create;t.exports=function(e){var t=o(null);return a.call(arguments,function(e){n(e)&&function(e,t){var r;for(r in e)t[r]=e[r]}(Object(e),t)}),t}},{\"./is-value\":184}],191:[function(e,t,r){\"use strict\";var n=Array.prototype.forEach,a=Object.create;t.exports=function(e){var t=a(null);return n.call(arguments,function(e){t[e]=!0}),t}},{}],192:[function(e,t,r){\"use strict\";t.exports=function(e){if(\"function\"!=typeof e)throw new TypeError(e+\" is not a function\");return e}},{}],193:[function(e,t,r){\"use strict\";var n=e(\"./is-value\");t.exports=function(e){if(!n(e))throw new TypeError(\"Cannot use null or undefined\");return e}},{\"./is-value\":184}],194:[function(e,t,r){\"use strict\";var n=e(\"./valid-value\"),a=e(\"./validate-stringifiable\");t.exports=function(e){return a(n(e))}},{\"./valid-value\":193,\"./validate-stringifiable\":195}],195:[function(e,t,r){\"use strict\";var n=e(\"./is-callable\");t.exports=function(e){try{return e&&n(e.toString)?e.toString():String(e)}catch(e){throw new TypeError(\"Passed argument cannot be stringifed\")}}},{\"./is-callable\":182}],196:[function(e,t,r){\"use strict\";var n=e(\"./object/is-callable\");t.exports=function(e){try{return e&&n(e.toString)?e.toString():String(e)}catch(e){return\"<Non-coercible to string value>\"}}},{\"./object/is-callable\":182}],197:[function(e,t,r){\"use strict\";t.exports=e(\"./is-implemented\")()?String.prototype.contains:e(\"./shim\")},{\"./is-implemented\":198,\"./shim\":199}],198:[function(e,t,r){\"use strict\";var n=\"razdwatrzy\";t.exports=function(){return\"function\"==typeof n.contains&&(!0===n.contains(\"dwa\")&&!1===n.contains(\"foo\"))}},{}],199:[function(e,t,r){\"use strict\";var n=String.prototype.indexOf;t.exports=function(e){return-1<n.call(this,e,arguments[1])}},{}],200:[function(e,t,r){\"use strict\";var n=Object.prototype.toString,a=n.call(\"\");t.exports=function(e){return\"string\"==typeof e||e&&\"object\"==typeof e&&(e instanceof String||n.call(e)===a)||!1}},{}],201:[function(e,t,r){\"use strict\";var n=e(\"./safe-to-string\"),a=/[\\n\\r\\u2028\\u2029]/g;t.exports=function(e){var t=n(e);return 100<t.length&&(t=t.slice(0,99)+\"…\"),t=t.replace(a,function(e){return JSON.stringify(e).slice(1,-1)})}},{\"./safe-to-string\":196}],202:[function(U,r,n){(function(M,V){var e,t;e=this,t=function(){\"use strict\";function l(e){return\"function\"==typeof e}var r=Array.isArray?Array.isArray:function(e){return\"[object Array]\"===Object.prototype.toString.call(e)},n=0,t=void 0,a=void 0,i=function(e,t){p[n]=e,p[n+1]=t,2===(n+=2)&&(a?a(m):y())};var e=void 0!==window?window:void 0,o=e||{},s=o.MutationObserver||o.WebKitMutationObserver,u=\"undefined\"==typeof self&&void 0!==M&&\"[object process]\"==={}.toString.call(M),c=\"undefined\"!=typeof Uint8ClampedArray&&\"undefined\"!=typeof importScripts&&\"undefined\"!=typeof MessageChannel;function d(){var e=setTimeout;return function(){return e(m,1)}}var p=new Array(1e3);function m(){for(var e=0;e<n;e+=2){(0,p[e])(p[e+1]),p[e]=void 0,p[e+1]=void 0}n=0}var f,h,b,g,y=void 0;function v(e,t){var r=this,n=new this.constructor(D);void 0===n[x]&&R(n);var a=r._state;if(a){var o=arguments[a-1];i(function(){return O(a,n,o,r._result)})}else z(r,n,e,t);return n}function w(e){if(e&&\"object\"==typeof e&&e.constructor===this)return e;var t=new this(D);return F(t,e),t}y=u?function(){return M.nextTick(m)}:s?(h=0,b=new s(m),g=document.createTextNode(\"\"),b.observe(g,{characterData:!0}),function(){g.data=h=++h%2}):c?((f=new MessageChannel).port1.onmessage=m,function(){return f.port2.postMessage(0)}):(void 0===e&&\"function\"==typeof U?function(){try{var e=Function(\"return this\")().require(\"vertx\");return void 0!==(t=e.runOnLoop||e.runOnContext)?function(){t(m)}:d()}catch(e){return d()}}:d)();var x=Math.random().toString(36).substring(2);function D(){}var k=void 0,E=1,A=2;function j(e,n,a){i(function(t){var r=!1,e=function(e,t,r,n){try{e.call(t,r,n)}catch(e){return e}}(a,n,function(e){r||(r=!0,(n!==e?F:N)(t,e))},function(e){r||(r=!0,S(t,e))},t._label);!r&&e&&(r=!0,S(t,e))},e)}function C(e,t,r){var n,a;t.constructor===e.constructor&&r===v&&t.constructor.resolve===w?(n=e,(a=t)._state===E?N(n,a._result):a._state===A?S(n,a._result):z(a,void 0,function(e){return F(n,e)},function(e){return S(n,e)})):void 0!==r&&l(r)?j(e,t,r):N(e,t)}function F(t,e){if(t===e)S(t,new TypeError(\"You cannot resolve a promise with itself\"));else if(a=typeof(n=e),null===n||\"object\"!=a&&\"function\"!=a)N(t,e);else{var r=void 0;try{r=e.then}catch(e){return void S(t,e)}C(t,e,r)}var n,a}function T(e){e._onerror&&e._onerror(e._result),q(e)}function N(e,t){e._state===k&&(e._result=t,e._state=E,0!==e._subscribers.length&&i(q,e))}function S(e,t){e._state===k&&(e._state=A,e._result=t,i(T,e))}function z(e,t,r,n){var a=e._subscribers,o=a.length;e._onerror=null,a[o]=t,a[o+E]=r,a[o+A]=n,0===o&&e._state&&i(q,e)}function q(e){var t=e._subscribers,r=e._state;if(0!==t.length){for(var n=void 0,a=void 0,o=e._result,i=0;i<t.length;i+=3)n=t[i],a=t[i+r],n?O(r,n,a,o):a(o);e._subscribers.length=0}}function O(e,t,r,n){var a=l(r),o=void 0,i=void 0,s=!0;if(a){try{o=r(n)}catch(e){s=!1,i=e}if(t===o)return void S(t,new TypeError(\"A promises callback cannot return that same promise.\"))}else o=n;t._state!==k||(a&&s?F(t,o):!1===s?S(t,i):e===E?N(t,o):e===A&&S(t,o))}var _=0;function R(e){e[x]=_++,e._state=void 0,e._result=void 0,e._subscribers=[]}var P=(I.prototype._enumerate=function(e){for(var t=0;this._state===k&&t<e.length;t++)this._eachEntry(e[t],t)},I.prototype._eachEntry=function(t,e){var r=this._instanceConstructor,n=r.resolve;if(n===w){var a=void 0,o=void 0,i=!1;try{a=t.then}catch(e){i=!0,o=e}if(a===v&&t._state!==k)this._settledAt(t._state,e,t._result);else if(\"function\"!=typeof a)this._remaining--,this._result[e]=t;else if(r===L){var s=new r(D);i?S(s,o):C(s,t,a),this._willSettleAt(s,e)}else this._willSettleAt(new r(function(e){return e(t)}),e)}else this._willSettleAt(n(t),e)},I.prototype._settledAt=function(e,t,r){var n=this.promise;n._state===k&&(this._remaining--,e===A?S(n,r):this._result[t]=r),0===this._remaining&&N(n,this._result)},I.prototype._willSettleAt=function(e,t){var r=this;z(e,void 0,function(e){return r._settledAt(E,t,e)},function(e){return r._settledAt(A,t,e)})},I);function I(e,t){this._instanceConstructor=e,this.promise=new e(D),this.promise[x]||R(this.promise),r(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?N(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&N(this.promise,this._result))):S(this.promise,new Error(\"Array Methods must be provided an Array\"))}var L=(B.prototype.catch=function(e){return this.then(null,e)},B.prototype.finally=function(t){var r=this.constructor;return l(t)?this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})}):this.then(t,t)},B);function B(e){this[x]=_++,this._result=this._state=void 0,this._subscribers=[],D!==e&&(\"function\"!=typeof e&&function(){throw new TypeError(\"You must pass a resolver function as the first argument to the promise constructor\")}(),this instanceof B?function(t,e){try{e(function(e){F(t,e)},function(e){S(t,e)})}catch(e){S(t,e)}}(this,e):function(){throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\")}())}return L.prototype.then=v,L.all=function(e){return new P(this,e).promise},L.race=function(a){var o=this;return r(a)?new o(function(e,t){for(var r=a.length,n=0;n<r;n++)o.resolve(a[n]).then(e,t)}):new o(function(e,t){return t(new TypeError(\"You must pass an array to race.\"))})},L.resolve=w,L.reject=function(e){var t=new this(D);return S(t,e),t},L._setScheduler=function(e){a=e},L._setAsap=function(e){i=e},L._asap=i,L.polyfill=function(){var e=void 0;if(void 0!==V)e=V;else if(\"undefined\"!=typeof self)e=self;else try{e=Function(\"return this\")()}catch(e){throw new Error(\"polyfill failed because global object is unavailable in this environment\")}var t=e.Promise;if(t){var r=null;try{r=Object.prototype.toString.call(t.resolve())}catch(e){}if(\"[object Promise]\"===r&&!t.cast)return}e.Promise=L},L.Promise=L},\"object\"==typeof n&&void 0!==r?r.exports=t():\"function\"==typeof define&&define.amd?define(t):e.ES6Promise=t()}).call(this,U(\"_process\"),void 0!==a?a:\"undefined\"!=typeof self?self:void 0!==window?window:{})},{_process:236}],203:[function(e,t,r){\"use strict\";t.exports=e(\"./is-implemented\")()?e(\"ext/global-this\").Symbol:e(\"./polyfill\")},{\"./is-implemented\":204,\"./polyfill\":209,\"ext/global-this\":213}],204:[function(e,t,r){\"use strict\";var n=e(\"ext/global-this\"),a={object:!0,symbol:!0};t.exports=function(){var e,t=n.Symbol;if(\"function\"!=typeof t)return!1;e=t(\"test symbol\");try{String(e)}catch(e){return!1}return!!a[typeof t.iterator]&&(!!a[typeof t.toPrimitive]&&!!a[typeof t.toStringTag])}},{\"ext/global-this\":213}],205:[function(e,t,r){\"use strict\";t.exports=function(e){return!!e&&(\"symbol\"==typeof e||!!e.constructor&&(\"Symbol\"===e.constructor.name&&\"Symbol\"===e[e.constructor.toStringTag]))}},{}],206:[function(e,t,r){\"use strict\";var a=e(\"d\"),n=Object.create,o=Object.defineProperty,i=Object.prototype,s=n(null);t.exports=function(e){for(var t,r,n=0;s[e+(n||\"\")];)++n;return s[e+=n||\"\"]=!0,o(i,t=\"@@\"+e,a.gs(null,function(e){r||(r=!0,o(this,t,a(e)),r=!1)})),t}},{d:157}],207:[function(e,t,r){\"use strict\";var n=e(\"d\"),a=e(\"ext/global-this\").Symbol;t.exports=function(e){return Object.defineProperties(e,{hasInstance:n(\"\",a&&a.hasInstance||e(\"hasInstance\")),isConcatSpreadable:n(\"\",a&&a.isConcatSpreadable||e(\"isConcatSpreadable\")),iterator:n(\"\",a&&a.iterator||e(\"iterator\")),match:n(\"\",a&&a.match||e(\"match\")),replace:n(\"\",a&&a.replace||e(\"replace\")),search:n(\"\",a&&a.search||e(\"search\")),species:n(\"\",a&&a.species||e(\"species\")),split:n(\"\",a&&a.split||e(\"split\")),toPrimitive:n(\"\",a&&a.toPrimitive||e(\"toPrimitive\")),toStringTag:n(\"\",a&&a.toStringTag||e(\"toStringTag\")),unscopables:n(\"\",a&&a.unscopables||e(\"unscopables\"))})}},{d:157,\"ext/global-this\":213}],208:[function(e,t,r){\"use strict\";var n=e(\"d\"),a=e(\"../../../validate-symbol\"),o=Object.create(null);t.exports=function(t){return Object.defineProperties(t,{for:n(function(e){return o[e]?o[e]:o[e]=t(String(e))}),keyFor:n(function(e){var t;for(t in a(e),o)if(o[t]===e)return t})})}},{\"../../../validate-symbol\":210,d:157}],209:[function(e,t,r){\"use strict\";var n,a,o,i=e(\"d\"),s=e(\"./validate-symbol\"),l=e(\"ext/global-this\").Symbol,u=e(\"./lib/private/generate-name\"),c=e(\"./lib/private/setup/standard-symbols\"),d=e(\"./lib/private/setup/symbol-registry\"),p=Object.create,m=Object.defineProperties,f=Object.defineProperty;if(\"function\"==typeof l)try{String(l()),o=!0}catch(e){}else l=null;a=function(e){if(this instanceof a)throw new TypeError(\"Symbol is not a constructor\");return n(e)},t.exports=n=function e(t){var r;if(this instanceof e)throw new TypeError(\"Symbol is not a constructor\");return o?l(t):(r=p(a.prototype),t=void 0===t?\"\":String(t),m(r,{__description__:i(\"\",t),__name__:i(\"\",u(t))}))},c(n),d(n),m(a.prototype,{constructor:i(n),toString:i(\"\",function(){return this.__name__})}),m(n.prototype,{toString:i(function(){return\"Symbol (\"+s(this).__description__+\")\"}),valueOf:i(function(){return s(this)})}),f(n.prototype,n.toPrimitive,i(\"\",function(){var e=s(this);return\"symbol\"==typeof e?e:e.toString()})),f(n.prototype,n.toStringTag,i(\"c\",\"Symbol\")),f(a.prototype,n.toStringTag,i(\"c\",n.prototype[n.toStringTag])),f(a.prototype,n.toPrimitive,i(\"c\",n.prototype[n.toPrimitive]))},{\"./lib/private/generate-name\":206,\"./lib/private/setup/standard-symbols\":207,\"./lib/private/setup/symbol-registry\":208,\"./validate-symbol\":210,d:157,\"ext/global-this\":213}],210:[function(e,t,r){\"use strict\";var n=e(\"./is-symbol\");t.exports=function(e){if(!n(e))throw new TypeError(e+\" is not a symbol\");return e}},{\"./is-symbol\":205}],211:[function(e,t,r){\"use strict\";var a,n,o,i,s,l,u,c=e(\"d\"),d=e(\"es5-ext/object/valid-callable\"),p=Function.prototype.apply,m=Function.prototype.call,f=Object.create,h=Object.defineProperty,b=Object.defineProperties,g=Object.prototype.hasOwnProperty,y={configurable:!0,enumerable:!1,writable:!0};n=function(e,t){var r,n;return d(t),a.call(n=this,e,r=function(){o.call(n,e,r),p.call(t,this,arguments)}),r.__eeOnceListener__=t,this},s={on:a=function(e,t){var r;return d(t),g.call(this,\"__ee__\")?r=this.__ee__:(r=y.value=f(null),h(this,\"__ee__\",y),y.value=null),r[e]?\"object\"==typeof r[e]?r[e].push(t):r[e]=[r[e],t]:r[e]=t,this},once:n,off:o=function(e,t){var r,n,a,o;if(d(t),!g.call(this,\"__ee__\"))return this;if(!(r=this.__ee__)[e])return this;if(\"object\"==typeof(n=r[e]))for(o=0;a=n[o];++o)a!==t&&a.__eeOnceListener__!==t||(2===n.length?r[e]=n[o?0:1]:n.splice(o,1));else n!==t&&n.__eeOnceListener__!==t||delete r[e];return this},emit:i=function(e){var t,r,n,a,o;if(g.call(this,\"__ee__\")&&(a=this.__ee__[e]))if(\"object\"==typeof a){for(r=arguments.length,o=new Array(r-1),t=1;t<r;++t)o[t-1]=arguments[t];for(a=a.slice(),t=0;n=a[t];++t)p.call(n,this,o)}else switch(arguments.length){case 1:m.call(a,this);break;case 2:m.call(a,this,arguments[1]);break;case 3:m.call(a,this,arguments[1],arguments[2]);break;default:for(r=arguments.length,o=new Array(r-1),t=1;t<r;++t)o[t-1]=arguments[t];p.call(a,this,o)}}},l={on:c(a),once:c(n),off:c(o),emit:c(i)},u=b({},l),t.exports=r=function(e){return null==e?f(u):b(Object(e),l)},r.methods=s},{d:157,\"es5-ext/object/valid-callable\":192}],212:[function(e,t,r){function n(){if(\"object\"==typeof self&&self)return self;if(\"object\"==typeof window&&window)return window;throw new Error(\"Unable to resolve global `this`\")}t.exports=function(){if(this)return this;try{Object.defineProperty(Object.prototype,\"__global__\",{get:function(){return this},configurable:!0})}catch(e){return n()}try{return __global__?__global__:n()}finally{delete Object.prototype.__global__}}()},{}],213:[function(e,t,r){\"use strict\";t.exports=e(\"./is-implemented\")()?globalThis:e(\"./implementation\")},{\"./implementation\":212,\"./is-implemented\":214}],214:[function(e,t,r){\"use strict\";t.exports=function(){return\"object\"==typeof globalThis&&(!!globalThis&&globalThis.Array===Array)}},{}],215:[function(e,t,r){t.exports=function(e){return!!e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof e.then}},{}],216:[function(e,t,r){\"use strict\";var c=e(\"es5-ext/number/to-pos-integer\"),d=Object.create,p=Object.prototype.hasOwnProperty;t.exports=function(n){var a,o=0,i=1,s=d(null),l=d(null),u=0;return n=c(n),{hit:function(e){var t=l[e],r=++u;if(s[r]=e,l[e]=r,!t){if(++o<=n)return;return e=s[i],a(e),e}if(delete s[t],i===t)for(;!p.call(s,++i););},delete:a=function(e){var t=l[e];if(t&&(delete s[t],delete l[e],--o,i===t)){if(!o)return u=0,void(i=1);for(;!p.call(s,++i););}},clear:function(){o=0,i=1,s=d(null),l=d(null),u=0}}}},{\"es5-ext/number/to-pos-integer\":176}],217:[function(e,t,r){\"use strict\";var p=e(\"es5-ext/array/from\"),a=e(\"es5-ext/object/map\"),m=e(\"es5-ext/object/mixin\"),f=e(\"es5-ext/function/_define-length\"),h=e(\"next-tick\"),b=Array.prototype.slice,g=Function.prototype.apply,y=Object.create;e(\"../lib/registered-extensions\").async=function(e,i){var s,l,u,c=y(null),d=y(null),o=i.memoized,n=i.original;i.memoized=f(function(e){var t=arguments,r=t[t.length-1];return\"function\"==typeof r&&(s=r,t=b.call(t,0,-1)),o.apply(l=this,u=t)},o);try{m(i.memoized,o)}catch(e){}i.on(\"get\",function(t){var r,n,a;if(s){if(c[t])return\"function\"==typeof c[t]?c[t]=[c[t],s]:c[t].push(s),void(s=null);r=s,n=l,a=u,s=l=u=null,h(function(){var e;hasOwnProperty.call(d,t)?(e=d[t],i.emit(\"getasync\",t,a,n),g.call(r,e.context,e.args)):(s=r,l=n,u=a,o.apply(n,a))})}}),i.original=function(){var e,t,r,o;return s?(e=p(arguments),t=function e(t){var r,n,a=e.id;if(null!=a){if(delete e.id,r=c[a],delete c[a],r)return n=p(arguments),i.has(a)&&(t?i.delete(a):(d[a]={context:this,args:n},i.emit(\"setasync\",a,\"function\"==typeof r?1:r.length))),\"function\"==typeof r?o=g.call(r,this,n):r.forEach(function(e){o=g.call(e,this,n)},this),o}else h(g.bind(e,this,arguments))},r=s,s=l=u=null,e.push(t),o=g.call(n,this,e),t.cb=r,s=t,o):g.call(n,this,arguments)},i.on(\"set\",function(e){s?(c[e]?\"function\"==typeof c[e]?c[e]=[c[e],s.cb]:c[e].push(s.cb):c[e]=s.cb,delete s.cb,s.id=e,s=null):i.delete(e)}),i.on(\"delete\",function(e){var t;hasOwnProperty.call(c,e)||d[e]&&(t=d[e],delete d[e],i.emit(\"deleteasync\",e,b.call(t.args,1)))}),i.on(\"clear\",function(){var e=d;d=y(null),i.emit(\"clearasync\",a(e,function(e){return b.call(e.args,1)}))})}},{\"../lib/registered-extensions\":225,\"es5-ext/array/from\":160,\"es5-ext/function/_define-length\":165,\"es5-ext/object/map\":188,\"es5-ext/object/mixin\":189,\"next-tick\":235}],218:[function(e,t,r){\"use strict\";var a=e(\"es5-ext/object/valid-callable\"),o=e(\"es5-ext/object/for-each\"),i=e(\"../lib/registered-extensions\"),s=Function.prototype.apply;i.dispose=function(r,e,t){var n;if(a(r),t.async&&i.async||t.promise&&i.promise)return e.on(\"deleteasync\",n=function(e,t){s.call(r,null,t)}),void e.on(\"clearasync\",function(e){o(e,function(e,t){n(t,e)})});e.on(\"delete\",n=function(e,t){r(t)}),e.on(\"clear\",function(e){o(e,function(e,t){n(t,e)})})}},{\"../lib/registered-extensions\":225,\"es5-ext/object/for-each\":181,\"es5-ext/object/valid-callable\":192}],219:[function(e,t,r){\"use strict\";var s=e(\"es5-ext/array/from\"),l=e(\"es5-ext/object/for-each\"),u=e(\"next-tick\"),c=e(\"is-promise\"),d=e(\"timers-ext/valid-timeout\"),p=e(\"../lib/registered-extensions\"),m=Function.prototype,f=Math.max,h=Math.min,b=Object.create;p.maxAge=function(t,a,o){var r,e,n,i;(t=d(t))&&(r=b(null),e=o.async&&p.async||o.promise&&p.promise?\"async\":\"\",a.on(\"set\"+e,function(e){r[e]=setTimeout(function(){a.delete(e)},t),\"function\"==typeof r[e].unref&&r[e].unref(),i&&(i[e]&&\"nextTick\"!==i[e]&&clearTimeout(i[e]),i[e]=setTimeout(function(){delete i[e]},n),\"function\"==typeof i[e].unref&&i[e].unref())}),a.on(\"delete\"+e,function(e){clearTimeout(r[e]),delete r[e],i&&(\"nextTick\"!==i[e]&&clearTimeout(i[e]),delete i[e])}),o.preFetch&&(n=!0===o.preFetch||isNaN(o.preFetch)?.333:f(h(Number(o.preFetch),1),0))&&(i={},n=(1-n)*t,a.on(\"get\"+e,function(t,r,n){i[t]||(i[t]=\"nextTick\",u(function(){var e;\"nextTick\"===i[t]&&(delete i[t],a.delete(t),o.async&&(r=s(r)).push(m),e=a.memoized.apply(n,r),o.promise&&c(e)&&(\"function\"==typeof e.done?e.done(m,m):e.then(m,m)))}))})),a.on(\"clear\"+e,function(){l(r,function(e){clearTimeout(e)}),r={},i&&(l(i,function(e){\"nextTick\"!==e&&clearTimeout(e)}),i={})}))}},{\"../lib/registered-extensions\":225,\"es5-ext/array/from\":160,\"es5-ext/object/for-each\":181,\"is-promise\":215,\"next-tick\":235,\"timers-ext/valid-timeout\":239}],220:[function(e,t,r){\"use strict\";var i=e(\"es5-ext/number/to-pos-integer\"),s=e(\"lru-queue\"),l=e(\"../lib/registered-extensions\");l.max=function(e,t,r){var n,a,o;(e=i(e))&&(a=s(e),n=r.async&&l.async||r.promise&&l.promise?\"async\":\"\",t.on(\"set\"+n,o=function(e){void 0!==(e=a.hit(e))&&t.delete(e)}),t.on(\"get\"+n,o),t.on(\"delete\"+n,a.delete),t.on(\"clear\"+n,a.clear))}},{\"../lib/registered-extensions\":225,\"es5-ext/number/to-pos-integer\":176,\"lru-queue\":216}],221:[function(e,t,r){\"use strict\";var n=e(\"es5-ext/object/map\"),a=e(\"es5-ext/object/primitive-set\"),o=e(\"es5-ext/object/validate-stringifiable-value\"),i=e(\"es5-ext/to-short-string-representation\"),m=e(\"is-promise\"),f=e(\"next-tick\"),s=Object.create,h=a(\"then\",\"then:finally\",\"done\",\"done:finally\");e(\"../lib/registered-extensions\").promise=function(l,u){var c=s(null),d=s(null),p=s(null);if(!0===l)l=null;else if(l=o(l),!h[l])throw new TypeError(\"'\"+i(l)+\"' is not valid promise mode\");u.on(\"set\",function(r,e,t){var n=!1;if(!m(t))return d[r]=t,void u.emit(\"setasync\",r,1);c[r]=1,p[r]=t;function a(e){var t=c[r];if(n)throw new Error(\"Memoizee error: Detected unordered then|done & finally resolution, which in turn makes proper detection of success/failure impossible (when in 'done:finally' mode)\\nConsider to rely on 'then' or 'done' mode instead.\");t&&(delete c[r],d[r]=e,u.emit(\"setasync\",r,t))}function o(){n=!0,c[r]&&(delete c[r],delete p[r],u.delete(r))}var i=l;if(\"then\"===(i=i||\"then\")){var s=function(){f(o)};\"function\"==typeof(t=t.then(function(e){f(a.bind(this,e))},s)).finally&&t.finally(s)}else if(\"done\"===i){if(\"function\"!=typeof t.done)throw new Error(\"Memoizee error: Retrieved promise does not implement 'done' in 'done' mode\");t.done(a,o)}else if(\"done:finally\"===i){if(\"function\"!=typeof t.done)throw new Error(\"Memoizee error: Retrieved promise does not implement 'done' in 'done:finally' mode\");if(\"function\"!=typeof t.finally)throw new Error(\"Memoizee error: Retrieved promise does not implement 'finally' in 'done:finally' mode\");t.done(a),t.finally(o)}}),u.on(\"get\",function(e,t,r){var n;if(c[e])++c[e];else{n=p[e];var a=function(){u.emit(\"getasync\",e,t,r)};m(n)?\"function\"==typeof n.done?n.done(a):n.then(function(){f(a)}):a()}}),u.on(\"delete\",function(e){if(delete p[e],c[e])delete c[e];else if(hasOwnProperty.call(d,e)){var t=d[e];delete d[e],u.emit(\"deleteasync\",e,[t])}}),u.on(\"clear\",function(){var e=d;d=s(null),c=s(null),p=s(null),u.emit(\"clearasync\",n(e,function(e){return[e]}))})}},{\"../lib/registered-extensions\":225,\"es5-ext/object/map\":188,\"es5-ext/object/primitive-set\":191,\"es5-ext/object/validate-stringifiable-value\":194,\"es5-ext/to-short-string-representation\":201,\"is-promise\":215,\"next-tick\":235}],222:[function(e,t,r){\"use strict\";var o=e(\"d\"),i=e(\"../lib/registered-extensions\"),s=Object.create,l=Object.defineProperties;i.refCounter=function(e,t,r){var n,a;n=s(null),a=r.async&&i.async||r.promise&&i.promise?\"async\":\"\",t.on(\"set\"+a,function(e,t){n[e]=t||1}),t.on(\"get\"+a,function(e){++n[e]}),t.on(\"delete\"+a,function(e){delete n[e]}),t.on(\"clear\"+a,function(){n={}}),l(t.memoized,{deleteRef:o(function(){var e=t.get(arguments);return null!==e&&n[e]?!--n[e]&&(t.delete(e),!0):null}),getRefCount:o(function(){var e=t.get(arguments);return null!==e&&n[e]?n[e]:0})})}},{\"../lib/registered-extensions\":225,d:157}],223:[function(n,e,t){\"use strict\";var a=n(\"es5-ext/object/normalize-options\"),o=n(\"./lib/resolve-length\"),i=n(\"./plain\");e.exports=function(e){var t,r=a(arguments[1]);return r.normalizer||0!==(t=r.length=o(r.length,e.length,r.async))&&(r.primitive?!1===t?r.normalizer=n(\"./normalizers/primitive\"):1<t&&(r.normalizer=n(\"./normalizers/get-primitive-fixed\")(t)):r.normalizer=!1===t?n(\"./normalizers/get\")():1===t?n(\"./normalizers/get-1\")():n(\"./normalizers/get-fixed\")(t)),r.async&&n(\"./ext/async\"),r.promise&&n(\"./ext/promise\"),r.dispose&&n(\"./ext/dispose\"),r.maxAge&&n(\"./ext/max-age\"),r.max&&n(\"./ext/max\"),r.refCounter&&n(\"./ext/ref-counter\"),i(e,r)}},{\"./ext/async\":217,\"./ext/dispose\":218,\"./ext/max\":220,\"./ext/max-age\":219,\"./ext/promise\":221,\"./ext/ref-counter\":222,\"./lib/resolve-length\":226,\"./normalizers/get\":232,\"./normalizers/get-1\":229,\"./normalizers/get-fixed\":230,\"./normalizers/get-primitive-fixed\":231,\"./normalizers/primitive\":233,\"./plain\":234,\"es5-ext/object/normalize-options\":190}],224:[function(e,t,r){\"use strict\";var v=e(\"es5-ext/error/custom\"),w=e(\"es5-ext/function/_define-length\"),x=e(\"d\"),n=e(\"event-emitter\").methods,D=e(\"./resolve-resolve\"),k=e(\"./resolve-normalize\"),E=Function.prototype.apply,A=Function.prototype.call,j=Object.create,C=Object.defineProperties,F=n.on,T=n.emit;t.exports=function(a,r,e){var o,t,i,s,n,l,u,c,d,p,m,f,h,b,g,y=j(null);return t=!1!==r?r:isNaN(a.length)?1:a.length,e.normalizer&&(p=k(e.normalizer),i=p.get,s=p.set,n=p.delete,l=p.clear),null!=e.resolvers&&(g=D(e.resolvers)),b=i?w(function(e){var t,r,n=arguments;if(g&&(n=g(n)),null!==(t=i(n))&&hasOwnProperty.call(y,t))return m&&o.emit(\"get\",t,n,this),y[t];if(r=1===n.length?A.call(a,this,n[0]):E.call(a,this,n),null===t){if(null!==(t=i(n)))throw v(\"Circular invocation\",\"CIRCULAR_INVOCATION\");t=s(n)}else if(hasOwnProperty.call(y,t))throw v(\"Circular invocation\",\"CIRCULAR_INVOCATION\");return y[t]=r,f&&o.emit(\"set\",t,null,r),r},t):0===r?function(){var e;if(hasOwnProperty.call(y,\"data\"))return m&&o.emit(\"get\",\"data\",arguments,this),y.data;if(e=arguments.length?E.call(a,this,arguments):A.call(a,this),hasOwnProperty.call(y,\"data\"))throw v(\"Circular invocation\",\"CIRCULAR_INVOCATION\");return y.data=e,f&&o.emit(\"set\",\"data\",null,e),e}:function(e){var t,r,n=arguments;if(g&&(n=g(arguments)),r=String(n[0]),hasOwnProperty.call(y,r))return m&&o.emit(\"get\",r,n,this),y[r];if(t=1===n.length?A.call(a,this,n[0]):E.call(a,this,n),hasOwnProperty.call(y,r))throw v(\"Circular invocation\",\"CIRCULAR_INVOCATION\");return y[r]=t,f&&o.emit(\"set\",r,null,t),t},o={original:a,memoized:b,profileName:e.profileName,get:function(e){return g&&(e=g(e)),i?i(e):String(e[0])},has:function(e){return hasOwnProperty.call(y,e)},delete:function(e){var t;hasOwnProperty.call(y,e)&&(n&&n(e),t=y[e],delete y[e],h&&o.emit(\"delete\",e,t))},clear:function(){var e=y;l&&l(),y=j(null),o.emit(\"clear\",e)},on:function(e,t){return\"get\"===e?m=!0:\"set\"===e?f=!0:\"delete\"===e&&(h=!0),F.call(this,e,t)},emit:T,updateEnv:function(){a=o.original}},u=i?w(function(e){var t,r=arguments;g&&(r=g(r)),null!==(t=i(r))&&o.delete(t)},t):0===r?function(){return o.delete(\"data\")}:function(e){return g&&(e=g(arguments)[0]),o.delete(e)},c=w(function(){var e,t=arguments;return 0===r?y.data:(g&&(t=g(t)),e=i?i(t):String(t[0]),y[e])}),d=w(function(){var e,t=arguments;return 0===r?o.has(\"data\"):(g&&(t=g(t)),null!==(e=i?i(t):String(t[0]))&&o.has(e))}),C(b,{__memoized__:x(!0),delete:x(u),clear:x(o.clear),_get:x(c),_has:x(d)}),o}},{\"./resolve-normalize\":227,\"./resolve-resolve\":228,d:157,\"es5-ext/error/custom\":164,\"es5-ext/function/_define-length\":165,\"event-emitter\":211}],225:[function(e,t,r){},{}],226:[function(e,t,r){\"use strict\";var n=e(\"es5-ext/number/to-pos-integer\");t.exports=function(e,t,r){return isNaN(e)?0<=t?r&&t?t-1:t:1:!1!==e&&n(e)}},{\"es5-ext/number/to-pos-integer\":176}],227:[function(e,t,r){\"use strict\";var n=e(\"es5-ext/object/valid-callable\");t.exports=function(e){var t;return\"function\"==typeof e?{set:e,get:e}:(t={get:n(e.get)},void 0!==e.set?(t.set=n(e.set),e.delete&&(t.delete=n(e.delete)),e.clear&&(t.clear=n(e.clear))):t.set=t.get,t)}},{\"es5-ext/object/valid-callable\":192}],228:[function(e,t,r){\"use strict\";var n,a=e(\"es5-ext/array/to-array\"),o=e(\"es5-ext/object/is-value\"),i=e(\"es5-ext/object/valid-callable\"),s=Array.prototype.slice;n=function(r){return this.map(function(e,t){return e?e(r[t]):r[t]}).concat(s.call(r,this.length))},t.exports=function(e){return(e=a(e)).forEach(function(e){o(e)&&i(e)}),n.bind(e)}},{\"es5-ext/array/to-array\":163,\"es5-ext/object/is-value\":184,\"es5-ext/object/valid-callable\":192}],229:[function(e,t,r){\"use strict\";var a=e(\"es5-ext/array/#/e-index-of\");t.exports=function(){var t=0,r=[],n=[];return{get:function(e){var t=a.call(r,e[0]);return-1===t?null:n[t]},set:function(e){return r.push(e[0]),n.push(++t),t},delete:function(e){var t=a.call(n,e);-1!==t&&(r.splice(t,1),n.splice(t,1))},clear:function(){r=[],n=[]}}}},{\"es5-ext/array/#/e-index-of\":159}],230:[function(e,t,r){\"use strict\";var u=e(\"es5-ext/array/#/e-index-of\"),n=Object.create;t.exports=function(i){var a=0,s=[[],[]],l=n(null);return{get:function(e){for(var t,r=0,n=s;r<i-1;){if(-1===(t=u.call(n[0],e[r])))return null;n=n[1][t],++r}return-1!==(t=u.call(n[0],e[r]))&&n[1][t]||null},set:function(e){for(var t,r=0,n=s;r<i-1;)-1===(t=u.call(n[0],e[r]))&&(t=n[0].push(e[r])-1,n[1].push([[],[]])),n=n[1][t],++r;return-1===(t=u.call(n[0],e[r]))&&(t=n[0].push(e[r])-1),n[1][t]=++a,l[a]=e,a},delete:function(e){for(var t,r=0,n=s,a=[],o=l[e];r<i-1;){if(-1===(t=u.call(n[0],o[r])))return;a.push(n,t),n=n[1][t],++r}if(-1!==(t=u.call(n[0],o[r]))){for(e=n[1][t],n[0].splice(t,1),n[1].splice(t,1);!n[0].length&&a.length;)t=a.pop(),(n=a.pop())[0].splice(t,1),n[1].splice(t,1);delete l[e]}},clear:function(){s=[[],[]],l=n(null)}}}},{\"es5-ext/array/#/e-index-of\":159}],231:[function(e,t,r){\"use strict\";t.exports=function(a){return a?function(e){for(var t=String(e[0]),r=0,n=a;--n;)t+=\"\u0001\"+e[++r];return t}:function(){return\"\"}}},{}],232:[function(e,t,r){\"use strict\";var u=e(\"es5-ext/array/#/e-index-of\"),n=Object.create;t.exports=function(){var o=0,s=[],l=n(null);return{get:function(e){var t,r=0,n=s,a=e.length;if(0===a)return n[a]||null;if(n=n[a]){for(;r<a-1;){if(-1===(t=u.call(n[0],e[r])))return null;n=n[1][t],++r}return-1!==(t=u.call(n[0],e[r]))&&n[1][t]||null}return null},set:function(e){var t,r=0,n=s,a=e.length;if(0===a)n[a]=++o;else{for(n[a]||(n[a]=[[],[]]),n=n[a];r<a-1;)-1===(t=u.call(n[0],e[r]))&&(t=n[0].push(e[r])-1,n[1].push([[],[]])),n=n[1][t],++r;-1===(t=u.call(n[0],e[r]))&&(t=n[0].push(e[r])-1),n[1][t]=++o}return l[o]=e,o},delete:function(e){var t,r=0,n=s,a=l[e],o=a.length,i=[];if(0===o)delete n[o];else if(n=n[o]){for(;r<o-1;){if(-1===(t=u.call(n[0],a[r])))return;i.push(n,t),n=n[1][t],++r}if(-1===(t=u.call(n[0],a[r])))return;for(e=n[1][t],n[0].splice(t,1),n[1].splice(t,1);!n[0].length&&i.length;)t=i.pop(),(n=i.pop())[0].splice(t,1),n[1].splice(t,1)}delete l[e]},clear:function(){s=[],l=n(null)}}}},{\"es5-ext/array/#/e-index-of\":159}],233:[function(e,t,r){\"use strict\";t.exports=function(e){var t,r,n=e.length;if(!n)return\"\u0002\";for(t=String(e[r=0]);--n;)t+=\"\u0001\"+e[++r];return t}},{}],234:[function(e,t,r){\"use strict\";var o=e(\"es5-ext/object/valid-callable\"),i=e(\"es5-ext/object/for-each\"),s=e(\"./lib/registered-extensions\"),l=e(\"./lib/configure-map\"),u=e(\"./lib/resolve-length\");t.exports=function e(t){var r,n,a;if(o(t),(r=Object(arguments[1])).async&&r.promise)throw new Error(\"Options 'async' and 'promise' cannot be used together\");return hasOwnProperty.call(t,\"__memoized__\")&&!r.force?t:(n=u(r.length,t.length,r.async&&s.async),a=l(t,n,r),i(s,function(e,t){r[t]&&e(r[t],a,r)}),e.__profiler__&&e.__profiler__(a),a.updateEnv(),a.memoized)}},{\"./lib/configure-map\":224,\"./lib/registered-extensions\":225,\"./lib/resolve-length\":226,\"es5-ext/object/for-each\":181,\"es5-ext/object/valid-callable\":192}],235:[function(e,n,t){(function(e,t){\"use strict\";var o,r;o=function(e){if(\"function\"!=typeof e)throw new TypeError(e+\" is not a function\");return e},r=function(e){var t,r,n=document.createTextNode(\"\"),a=0;return new e(function(){var e;if(t)r&&(t=r.concat(t));else{if(!r)return;t=r}if(r=t,t=null,\"function\"==typeof r)return e=r,r=null,void e();for(n.data=a=++a%2;r;)e=r.shift(),r.length||(r=null),e()}).observe(n,{characterData:!0}),function(e){o(e),t?\"function\"==typeof t?t=[t,e]:t.push(e):(t=e,n.data=a=++a%2)}},n.exports=function(){if(\"object\"==typeof e&&e&&\"function\"==typeof e.nextTick)return e.nextTick;if(\"object\"==typeof document&&document){if(\"function\"==typeof MutationObserver)return r(MutationObserver);if(\"function\"==typeof WebKitMutationObserver)return r(WebKitMutationObserver)}return\"function\"==typeof t?function(e){t(o(e))}:\"function\"==typeof setTimeout||\"object\"==typeof setTimeout?function(e){setTimeout(o(e),0)}:null}()}).call(this,e(\"_process\"),e(\"timers\").setImmediate)},{_process:236,timers:237}],236:[function(e,t,r){var n,a,o=t.exports={};function i(){throw new Error(\"setTimeout has not been defined\")}function s(){throw new Error(\"clearTimeout has not been defined\")}function l(t){if(n===setTimeout)return setTimeout(t,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n=\"function\"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{a=\"function\"==typeof clearTimeout?clearTimeout:s}catch(e){a=s}}();var u,c=[],d=!1,p=-1;function m(){d&&u&&(d=!1,u.length?c=u.concat(c):p=-1,c.length&&f())}function f(){if(!d){var e=l(m);d=!0;for(var t=c.length;t;){for(u=c,c=[];++p<t;)u&&u[p].run();p=-1,t=c.length}u=null,d=!1,function(t){if(a===clearTimeout)return clearTimeout(t);if((a===s||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(t);try{a(t)}catch(e){try{return a.call(null,t)}catch(e){return a.call(this,t)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function b(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(1<arguments.length)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new h(e,t)),1!==c.length||d||l(f)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title=\"browser\",o.browser=!0,o.env={},o.argv=[],o.version=\"\",o.versions={},o.on=b,o.addListener=b,o.once=b,o.off=b,o.removeListener=b,o.removeAllListeners=b,o.emit=b,o.prependListener=b,o.prependOnceListener=b,o.listeners=function(e){return[]},o.binding=function(e){throw new Error(\"process.binding is not supported\")},o.cwd=function(){return\"/\"},o.chdir=function(e){throw new Error(\"process.chdir is not supported\")},o.umask=function(){return 0}},{}],237:[function(l,e,u){(function(e,t){var n=l(\"process/browser.js\").nextTick,r=Function.prototype.apply,a=Array.prototype.slice,o={},i=0;function s(e,t){this._id=e,this._clearFn=t}u.setTimeout=function(){return new s(r.call(setTimeout,window,arguments),clearTimeout)},u.setInterval=function(){return new s(r.call(setInterval,window,arguments),clearInterval)},u.clearTimeout=u.clearInterval=function(e){e.close()},s.prototype.unref=s.prototype.ref=function(){},s.prototype.close=function(){this._clearFn.call(window,this._id)},u.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},u.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},u._unrefActive=u.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;0<=t&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},u.setImmediate=\"function\"==typeof e?e:function(e){var t=i++,r=!(arguments.length<2)&&a.call(arguments,1);return o[t]=!0,n(function(){o[t]&&(r?e.apply(null,r):e.call(null),u.clearImmediate(t))}),t},u.clearImmediate=\"function\"==typeof t?t:function(e){delete o[e]}}).call(this,l(\"timers\").setImmediate,l(\"timers\").clearImmediate)},{\"process/browser.js\":236,timers:237}],238:[function(e,t,r){\"use strict\";t.exports=2147483647},{}],239:[function(e,t,r){\"use strict\";var n=e(\"es5-ext/number/to-pos-integer\"),a=e(\"./max-timeout\");t.exports=function(e){if(e=n(e),a<e)throw new TypeError(e+\" exceeds maximum possible timeout\");return e}},{\"./max-timeout\":238,\"es5-ext/number/to-pos-integer\":176}],240:[function(e,t,r){\"use strict\";var n=e(\"../prototype/is\");t.exports=function(e){if(\"function\"!=typeof e)return!1;if(!hasOwnProperty.call(e,\"length\"))return!1;try{if(\"number\"!=typeof e.length)return!1;if(\"function\"!=typeof e.call)return!1;if(\"function\"!=typeof e.apply)return!1}catch(e){return!1}return!n(e)}},{\"../prototype/is\":243}],241:[function(e,t,r){\"use strict\";var n=e(\"../value/is\"),a={object:!0,function:!0,undefined:!0};t.exports=function(e){return!!n(e)&&hasOwnProperty.call(a,typeof e)}},{\"../value/is\":244}],242:[function(e,t,r){\"use strict\";var n=e(\"../function/is\"),a=/^\\s*class[\\s{/}]/,o=Function.prototype.toString;t.exports=function(e){return!!n(e)&&!a.test(o.call(e))}},{\"../function/is\":240}],243:[function(e,t,r){\"use strict\";var n=e(\"../object/is\");t.exports=function(e){if(!n(e))return!1;try{return e.constructor?e.constructor.prototype===e:!1}catch(e){return!1}}},{\"../object/is\":241}],244:[function(e,t,r){\"use strict\";t.exports=function(e){return null!=e}},{}],245:[function(e,t,r){(function(e){!function(e){\"use strict\";if(!e.WeakMap){var r=Object.prototype.hasOwnProperty,n=function(e,t,r){Object.defineProperty?Object.defineProperty(e,t,{configurable:!0,writable:!0,value:r}):e[t]=r};e.WeakMap=(n(t.prototype,\"delete\",function(e){if(a(this,\"delete\"),!i(e))return!1;var t=e[this._id];return!(!t||t[0]!==e||(delete e[this._id],0))}),n(t.prototype,\"get\",function(e){if(a(this,\"get\"),i(e)){var t=e[this._id];return t&&t[0]===e?t[1]:void 0}}),n(t.prototype,\"has\",function(e){if(a(this,\"has\"),!i(e))return!1;var t=e[this._id];return!(!t||t[0]!==e)}),n(t.prototype,\"set\",function(e,t){if(a(this,\"set\"),!i(e))throw new TypeError(\"Invalid value used as weak map key\");var r=e[this._id];return r&&r[0]===e?r[1]=t:n(e,this._id,[e,t]),this}),n(t,\"_polyfill\",!0),t)}function t(){if(void 0===this)throw new TypeError(\"Constructor WeakMap requires 'new'\");if(n(this,\"_id\",\"_WeakMap\"+\"_\"+o()+\".\"+o()),0<arguments.length)throw new TypeError(\"WeakMap iterable is not supported\")}function a(e,t){if(!i(e)||!r.call(e,\"_id\"))throw new TypeError(t+\" method called on incompatible receiver \"+typeof e)}function o(){return Math.random().toString().substring(2)}function i(e){return Object(e)===e}}(\"undefined\"!=typeof self?self:void 0!==window?window:void 0!==e?e:this)}).call(this,void 0!==a?a:\"undefined\"!=typeof self?self:void 0!==window?window:{})},{}]},{},[1]);var utils=axe.utils={},s={};function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}var l=/\\{\\{.+?\\}\\}/g;function t(e,t,r){\"use strict\";var n,a;for(n=0,a=e.length;n<a;n++)t[r](e[n])}function r(e){this.brand=\"axe\",this.application=\"axeAPI\",this.tagExclude=[\"experimental\"],this.lang=\"en\",this.defaultConfig=e,this._init(),this._defaultLocale=null}r.prototype._setDefaultLocale=function(){if(!this._defaultLocale){for(var e={checks:{},rules:{},failureSummaries:{},incompleteFallbackMessage:\"\",lang:this.lang},t=Object.keys(this.data.checks),r=0;r<t.length;r++){var n=t[r],a=this.data.checks[n].messages,o=a.pass,i=a.fail,s=a.incomplete;e.checks[n]={pass:o,fail:i,incomplete:s}}for(var l=Object.keys(this.data.rules),u=0;u<l.length;u++){var c=l[u],d=this.data.rules[c],p=d.description,m=d.help;e.rules[c]={description:p,help:m}}for(var f=Object.keys(this.data.failureSummaries),h=0;h<f.length;h++){var b=f[h],g=this.data.failureSummaries[b].failureMessage;e.failureSummaries[b]={failureMessage:g}}e.incompleteFallbackMessage=this.data.incompleteFallbackMessage,this._defaultLocale=e}},r.prototype._resetLocale=function(){var e=this._defaultLocale;e&&this.applyLocale(e)};function m(a,e,o){return o.performanceTimer&&axe.utils.performanceTimer.mark(\"mark_rule_start_\"+a.id),function(r,n){a.run(e,o,function(e){r(e)},function(e){if(o.debug)n(e);else{var t=Object.assign(new h(a),{result:axe.constants.CANTTELL,description:\"An error occured while running this rule\",message:e.message,stack:e.stack,error:e,errorNode:e.errorNode});r(t)}})}}function o(e,t,r){var n=e.brand,a=e.application,o=e.lang;return axe.constants.helpUrlBase+n+\"/\"+(r||axe.version.substring(0,axe.version.lastIndexOf(\".\")))+\"/\"+t+\"?application=\"+encodeURIComponent(a)+(o&&\"en\"!==o?\"&lang=\"+encodeURIComponent(o):\"\")}function c(e){\"use strict\";this.id=e.id,this.data=null,this.relatedNodes=[],this.result=null}function n(e){\"use strict\";return\"string\"==typeof e?new Function(\"return \"+e+\";\")():e}function i(e){e&&(this.id=e.id,this.configure(e))}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function d(e,t,r){\"use strict\";var n,a;e.frames=e.frames||[];var o=document.querySelectorAll(r.shift());e:for(var i=0,s=o.length;i<s;i++){a=o[i];for(var l=0,u=e.frames.length;l<u;l++)if(e.frames[l].node===a){e.frames[l][t].push(r);break e}n={node:a,include:[],exclude:[]},r&&n[t].push(r),e.frames.push(n)}}function p(e,t){\"use strict\";for(var r,n,a=[],o=0,i=e[t].length;o<i;o++){if(\"string\"==typeof(r=e[t][o])){n=Array.from(document.querySelectorAll(r)),a=a.concat(n.map(function(e){return axe.utils.getNodeFromTree(e)}));break}!r||!r.length||r instanceof Node?r instanceof Node&&(r.documentElement instanceof Node?a.push(e.flatTree[0]):a.push(axe.utils.getNodeFromTree(r))):1<r.length?d(e,t,r):(n=Array.from(document.querySelectorAll(r[0])),a=a.concat(n.map(function(e){return axe.utils.getNodeFromTree(e)})))}return a.filter(function(e){return e})}function f(e){\"use strict\";var t=this;this.frames=[],this.initiator=!e||\"boolean\"!=typeof e.initiator||e.initiator,this.page=!1,e=function(e){\"use strict\";if(e&&\"object\"===W(e)||e instanceof NodeList){if(e instanceof Node)return{include:[e],exclude:[]};if(e.hasOwnProperty(\"include\")||e.hasOwnProperty(\"exclude\"))return{include:e.include&&+e.include.length?e.include:[document],exclude:e.exclude||[]};if(e.length===+e.length)return{include:e,exclude:[]}}return\"string\"==typeof e?{include:[e],exclude:[]}:{include:[document],exclude:[]}}(e),this.flatTree=axe.utils.getFlattenedTree(function(e){for(var t=e.include,r=e.exclude,n=Array.from(t).concat(Array.from(r)),a=0;a<n.length;++a){var o=n[a];if(o instanceof Element)return o.ownerDocument.documentElement;if(o instanceof Document)return o.documentElement}return document.documentElement}(e)),this.exclude=e.exclude,this.include=e.include,this.include=p(this,\"include\"),this.exclude=p(this,\"exclude\"),axe.utils.select(\"frame, iframe\",this).forEach(function(e){Ze(e,t)&&function(e,t){\"use strict\";axe.utils.isHidden(t)||axe.utils.findBy(e,\"node\",t)||e.push({node:t,include:[],exclude:[]})}(t.frames,e.actualNode)}),1===this.include.length&&this.include[0].actualNode===document.documentElement&&(this.page=!0);var r=function(e){\"use strict\";if(0===e.include.length){if(0===e.frames.length){var t=axe.utils.respondable.isInFrame()?\"frame\":\"page\";return new Error(\"No elements found for include in \"+t+\" Context\")}e.frames.forEach(function(e,t){if(0===e.include.length)return new Error(\"No elements found for include in Context of frame \"+t)})}}(this);if(r instanceof Error)throw r;Array.isArray(this.include)||(this.include=Array.from(this.include)),this.include.sort(axe.utils.nodeSorter)}function h(e){\"use strict\";this.id=e.id,this.result=axe.constants.NA,this.pageLevel=e.pageLevel,this.impact=null,this.nodes=[]}function b(e,t){\"use strict\";this._audit=t,this.id=e.id,this.selector=e.selector||\"*\",this.excludeHidden=\"boolean\"!=typeof e.excludeHidden||e.excludeHidden,this.enabled=\"boolean\"!=typeof e.enabled||e.enabled,this.pageLevel=\"boolean\"==typeof e.pageLevel&&e.pageLevel,this.any=e.any||[],this.all=e.all||[],this.none=e.none||[],this.tags=e.tags||[],this.preload=!!e.preload,e.matches&&(this.matches=n(e.matches))}function g(e){if(e.length){var r=!1,n={};return e.forEach(function(e){var t=e.results.filter(function(e){return e});(n[e.type]=t).length&&(r=!0)}),r?n:null}}function y(e){\"use strict\";var n=[\"any\",\"all\",\"none\"],t=e.nodes.filter(function(t){var r=0;return n.forEach(function(e){t[e]=function(e){\"use strict\";return e.filter(function(e){return!0!==e.filtered})}(t[e]),r+=t[e].length}),0<r});return e.pageLevel&&t.length&&(t=[t.reduce(function(t,r){if(t)return n.forEach(function(e){t[e].push.apply(t[e],r[e])}),t})]),t}function v(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function w(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function x(e,t,r){return t&&w(e.prototype,t),r&&w(e,r),e}r.prototype._applyCheckLocale=function(e){for(var t,r,n,a,o=Object.keys(e),i=0;i<o.length;i++){var s=o[i];if(!this.data.checks[s])throw new Error('Locale provided for unknown check: \"'.concat(s,'\"'));this.data.checks[s]=(t=this.data.checks[s],r=e[s],a=n=void 0,n=r.pass,a=r.fail,\"string\"==typeof n&&l.test(n)&&(n=axe.imports.doT.compile(n)),\"string\"==typeof a&&l.test(a)&&(a=axe.imports.doT.compile(a)),Y({},t,{messages:{pass:n||t.messages.pass,fail:a||t.messages.fail,incomplete:\"object\"===W(t.messages.incomplete)?Y({},t.messages.incomplete,{},r.incomplete):r.incomplete}}))}},r.prototype._applyRuleLocale=function(e){for(var t,r,n,a,o=Object.keys(e),i=0;i<o.length;i++){var s=o[i];if(!this.data.rules[s])throw new Error('Locale provided for unknown rule: \"'.concat(s,'\"'));this.data.rules[s]=(t=this.data.rules[s],r=e[s],a=n=void 0,n=r.help,a=r.description,\"string\"==typeof n&&l.test(n)&&(n=axe.imports.doT.compile(n)),\"string\"==typeof a&&l.test(a)&&(a=axe.imports.doT.compile(a)),Y({},t,{help:n||t.help,description:a||t.description}))}},r.prototype._applyFailureSummaries=function(e){for(var t,r,n,a=Object.keys(e),o=0;o<a.length;o++){var i=a[o];if(!this.data.failureSummaries[i])throw new Error('Locale provided for unknown failureMessage: \"'.concat(i,'\"'));this.data.failureSummaries[i]=(t=this.data.failureSummaries[i],r=e[i],n=void 0,\"string\"==typeof(n=r.failureMessage)&&l.test(n)&&(n=axe.imports.doT.compile(n)),Y({},t,{failureMessage:n||t.failureMessage}))}},r.prototype.applyLocale=function(e){var t,r;this._setDefaultLocale(),e.checks&&this._applyCheckLocale(e.checks),e.rules&&this._applyRuleLocale(e.rules),e.failureSummaries&&this._applyFailureSummaries(e.failureSummaries,\"failureSummaries\"),e.incompleteFallbackMessage&&(this.data.incompleteFallbackMessage=(t=this.data.incompleteFallbackMessage,\"string\"==typeof(r=e.incompleteFallbackMessage)&&l.test(r)&&(r=axe.imports.doT.compile(r)),r||t)),e.lang&&(this.lang=e.lang)},r.prototype._init=function(){var e=function(e){\"use strict\";var t;return e?(t=axe.utils.clone(e)).commons=e.commons:t={},t.reporter=t.reporter||null,t.rules=t.rules||[],t.checks=t.checks||[],t.data=Y({checks:{},rules:{}},t.data),t}(this.defaultConfig);axe.commons=e.commons,this.lang=e.lang||\"en\",this.reporter=e.reporter,this.commands={},this.rules=[],this.checks={},t(e.rules,this,\"addRule\"),t(e.checks,this,\"addCheck\"),this.data={},this.data.checks=e.data&&e.data.checks||{},this.data.rules=e.data&&e.data.rules||{},this.data.failureSummaries=e.data&&e.data.failureSummaries||{},this.data.incompleteFallbackMessage=e.data&&e.data.incompleteFallbackMessage||\"\",this._constructHelpUrls()},r.prototype.registerCommand=function(e){\"use strict\";this.commands[e.id]=e.callback},r.prototype.addRule=function(e){\"use strict\";e.metadata&&(this.data.rules[e.id]=e.metadata);var t=this.getRule(e.id);t?t.configure(e):this.rules.push(new b(e,this))},r.prototype.addCheck=function(e){\"use strict\";var t=e.metadata;\"object\"===W(t)&&(this.data.checks[e.id]=t,\"object\"===W(t.messages)&&Object.keys(t.messages).filter(function(e){return t.messages.hasOwnProperty(e)&&\"string\"==typeof t.messages[e]}).forEach(function(e){0===t.messages[e].indexOf(\"function\")&&(t.messages[e]=new Function(\"return \"+t.messages[e]+\";\")())})),this.checks[e.id]?this.checks[e.id].configure(e):this.checks[e.id]=new i(e)},r.prototype.run=function(o,i,s,l){\"use strict\";this.normalizeOptions(i),axe._selectCache=[];var e,r,n,t=(e=this.rules,r=o,n=i,e.reduce(function(e,t){return axe.utils.ruleShouldRun(t,r,n)&&(t.preload?e.later.push(t):e.now.push(t)),e},{now:[],later:[]})),a=t.now,u=t.later,c=axe.utils.queue();a.forEach(function(e){c.defer(m(e,o,i))});var d=axe.utils.queue();u.length&&d.defer(function(t){axe.utils.preload(i).then(function(e){return t(e)}).catch(function(e){console.warn(\"Couldn't load preload assets: \",e),t(void 0)})});var p=axe.utils.queue();p.defer(c),p.defer(d),p.then(function(e){var t=e.pop();if(t&&t.length){var r=t[0];r&&(o=Y({},o,{},r))}var n=e[0];if(!u.length)return axe._selectCache=void 0,void s(n.filter(function(e){return!!e}));var a=axe.utils.queue();u.forEach(function(e){var t=m(e,o,i);a.defer(t)}),a.then(function(e){axe._selectCache=void 0,s(n.concat(e).filter(function(e){return!!e}))}).catch(l)}).catch(l)},r.prototype.after=function(e,r){\"use strict\";var n=this.rules;return e.map(function(e){var t=axe.utils.findBy(n,\"id\",e.id);if(!t)throw new Error(\"Result for unknown rule. You may be running mismatch axe-core versions\");return t.after(e,r)})},r.prototype.getRule=function(t){return this.rules.find(function(e){return e.id===t})},r.prototype.normalizeOptions=function(e){\"use strict\";var t=[],r=[];if(this.rules.forEach(function(e){r.push(e.id),e.tags.forEach(function(e){t.includes(e)||t.push(e)})}),\"object\"===W(e.runOnly)){if(Array.isArray(e.runOnly)){var n=e.runOnly.find(function(e){return t.includes(e)}),a=e.runOnly.find(function(e){return r.includes(e)});if(n&&a)throw new Error(\"runOnly cannot be both rules and tags\");e.runOnly=a?{type:\"rule\",values:e.runOnly}:{type:\"tag\",values:e.runOnly}}var o=e.runOnly;if(o.value&&!o.values&&(o.values=o.value,delete o.value),!Array.isArray(o.values)||0===o.values.length)throw new Error(\"runOnly.values must be a non-empty array\");if([\"rule\",\"rules\"].includes(o.type))o.type=\"rule\",o.values.forEach(function(e){if(!r.includes(e))throw new Error(\"unknown rule `\"+e+\"` in options.runOnly\")});else{if(![\"tag\",\"tags\",void 0].includes(o.type))throw new Error(\"Unknown runOnly type '\".concat(o.type,\"'\"));o.type=\"tag\";var i=o.values.filter(function(e){return!t.includes(e)});0!==i.length&&axe.log(\"Could not find tags `\"+i.join(\"`, `\")+\"`\")}}return\"object\"===W(e.rules)&&Object.keys(e.rules).forEach(function(e){if(!r.includes(e))throw new Error(\"unknown rule `\"+e+\"` in options.rules\")}),e},r.prototype.setBranding=function(e){\"use strict\";var t={brand:this.brand,application:this.application};e&&e.hasOwnProperty(\"brand\")&&e.brand&&\"string\"==typeof e.brand&&(this.brand=e.brand),e&&e.hasOwnProperty(\"application\")&&e.application&&\"string\"==typeof e.application&&(this.application=e.application),this._constructHelpUrls(t)},r.prototype._constructHelpUrls=function(){var r=this,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,a=(axe.version.match(/^[1-9][0-9]*\\.[0-9]+/)||[\"x.y\"])[0];this.rules.forEach(function(e){r.data.rules[e.id]||(r.data.rules[e.id]={});var t=r.data.rules[e.id];(\"string\"!=typeof t.helpUrl||n&&t.helpUrl===o(n,e.id,a))&&(t.helpUrl=o(r,e.id,a))})},r.prototype.resetRulesAndChecks=function(){\"use strict\";this._init(),this._resetLocale()},function(){\"use strict\";var r={},e={set:function(e,t){r[e]=t},get:function(e){return r[e]},clear:function(){r={}}};axe._cache=e}(),i.prototype.enabled=!0,i.prototype.run=function(t,e,r,n,a){\"use strict\";var o=(e=e||{}).hasOwnProperty(\"enabled\")?e.enabled:this.enabled,i=e.options||this.options;if(o){var s,l=new c(this),u=axe.utils.checkHelper(l,e,n,a);try{s=this.evaluate.call(u,t.actualNode,i,t,r)}catch(e){return t&&t.actualNode&&(e.errorNode=new le(t.actualNode).toJSON()),void a(e)}u.isAsync||(l.result=s,n(l))}else n(null)},i.prototype.runSync=function(t,e,r){var n=(e=e||{}).enabled;if(!(void 0===n?this.enabled:n))return null;var a,o=e.options||this.options,i=new c(this),s=axe.utils.checkHelper(i,e);s.async=function(){throw new Error(\"Cannot run async check while in a synchronous run\")};try{a=this.evaluate.call(s,t.actualNode,o,t,r)}catch(e){throw t&&t.actualNode&&(e.errorNode=new le(t.actualNode).toJSON()),e}return i.result=a,i},i.prototype.configure=function(t){var r=this;[\"options\",\"enabled\"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(e){return r[e]=t[e]}),[\"evaluate\",\"after\"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(e){return r[e]=n(t[e])})},b.prototype.matches=function(){\"use strict\";return!0},b.prototype.gather=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=\"mark_gather_start_\"+this.id,n=\"mark_gather_end_\"+this.id,a=\"mark_isHidden_start_\"+this.id,o=\"mark_isHidden_end_\"+this.id;t.performanceTimer&&axe.utils.performanceTimer.mark(r);var i=axe.utils.select(this.selector,e);return this.excludeHidden&&(t.performanceTimer&&axe.utils.performanceTimer.mark(a),i=i.filter(function(e){return!axe.utils.isHidden(e.actualNode)}),t.performanceTimer&&(axe.utils.performanceTimer.mark(o),axe.utils.performanceTimer.measure(\"rule_\"+this.id+\"#gather_axe.utils.isHidden\",a,o))),t.performanceTimer&&(axe.utils.performanceTimer.mark(n),axe.utils.performanceTimer.measure(\"rule_\"+this.id+\"#gather\",r,n)),i},b.prototype.runChecks=function(t,a,o,i,r,e){\"use strict\";var s=this,l=axe.utils.queue();this[t].forEach(function(e){var r=s._audit.checks[e.id||e],n=axe.utils.getCheckOption(r,s.id,o);l.defer(function(e,t){r.run(a,n,i,e,t)})}),l.then(function(e){e=e.filter(function(e){return e}),r({type:t,results:e})}).catch(e)},b.prototype.runChecksSync=function(e,n,a,o){\"use strict\";var i=this,s=[];return this[e].forEach(function(e){var t=i._audit.checks[e.id||e],r=axe.utils.getCheckOption(t,i.id,a);s.push(t.runSync(n,r,o))}),{type:e,results:s=s.filter(function(e){return e})}},b.prototype.run=function(a){var o=this,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=2<arguments.length?arguments[2]:void 0,t=3<arguments.length?arguments[3]:void 0;i.performanceTimer&&this._trackPerformance();var r,s=axe.utils.queue(),l=new h(this);try{r=this.gatherAndMatchNodes(a,i)}catch(e){return void t(new u({cause:e,ruleId:this.id}))}i.performanceTimer&&this._logGatherPerformance(r),r.forEach(function(n){s.defer(function(r,t){var e=axe.utils.queue();[\"any\",\"all\",\"none\"].forEach(function(r){e.defer(function(e,t){o.runChecks(r,n,i,a,e,t)})}),e.then(function(e){var t=g(e);t&&(t.node=new axe.utils.DqElement(n.actualNode,i),l.nodes.push(t)),r()}).catch(function(e){return t(e)})})}),s.defer(function(e){return setTimeout(e,0)}),i.performanceTimer&&this._logRulePerformance(),s.then(function(){return e(l)}).catch(function(e){return t(e)})},b.prototype.runSync=function(n){var a=this,o=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};o.performanceTimer&&this._trackPerformance();var e,i=new h(this);try{e=this.gatherAndMatchNodes(n,o)}catch(e){throw new u({cause:e,ruleId:this.id})}return o.performanceTimer&&this._logGatherPerformance(e),e.forEach(function(t){var r=[];[\"any\",\"all\",\"none\"].forEach(function(e){r.push(a.runChecksSync(e,t,o,n))});var e=g(r);e&&(e.node=t.actualNode?new axe.utils.DqElement(t.actualNode,o):null,i.nodes.push(e))}),o.performanceTimer&&this._logRulePerformance(),i},b.prototype._trackPerformance=function(){this._markStart=\"mark_rule_start_\"+this.id,this._markEnd=\"mark_rule_end_\"+this.id,this._markChecksStart=\"mark_runchecks_start_\"+this.id,this._markChecksEnd=\"mark_runchecks_end_\"+this.id},b.prototype._logGatherPerformance=function(e){axe.log(\"gather (\",e.length,\"):\",axe.utils.performanceTimer.timeElapsed()+\"ms\"),axe.utils.performanceTimer.mark(this._markChecksStart)},b.prototype._logRulePerformance=function(){axe.utils.performanceTimer.mark(this._markChecksEnd),axe.utils.performanceTimer.mark(this._markEnd),axe.utils.performanceTimer.measure(\"runchecks_\"+this.id,this._markChecksStart,this._markChecksEnd),axe.utils.performanceTimer.measure(\"rule_\"+this.id,this._markStart,this._markEnd)},b.prototype.gatherAndMatchNodes=function(t,e){var r=this,n=\"mark_matches_start_\"+this.id,a=\"mark_matches_end_\"+this.id,o=this.gather(t,e);return e.performanceTimer&&axe.utils.performanceTimer.mark(n),o=o.filter(function(e){return r.matches(e.actualNode,e,t)}),e.performanceTimer&&(axe.utils.performanceTimer.mark(a),axe.utils.performanceTimer.measure(\"rule_\"+this.id+\"#matches\",n,a)),o},b.prototype.after=function(a,o){\"use strict\";var e=function(r){\"use strict\";return axe.utils.getAllChecks(r).map(function(e){var t=r._audit.checks[e.id||e];return t&&\"function\"==typeof t.after?t:null}).filter(Boolean)}(this),i=this.id;return e.forEach(function(e){var t=function(e,t){\"use strict\";var r=[];return e.forEach(function(e){axe.utils.getAllChecks(e).forEach(function(e){e.id===t&&r.push(e)})}),r}(a.nodes,e.id),r=axe.utils.getCheckOption(e,i,o),n=e.after(t,r);t.forEach(function(e){-1===n.indexOf(e)&&(e.filtered=!0)})}),a.nodes=y(a),a},b.prototype.configure=function(e){\"use strict\";e.hasOwnProperty(\"selector\")&&(this.selector=e.selector),e.hasOwnProperty(\"excludeHidden\")&&(this.excludeHidden=\"boolean\"!=typeof e.excludeHidden||e.excludeHidden),e.hasOwnProperty(\"enabled\")&&(this.enabled=\"boolean\"!=typeof e.enabled||e.enabled),e.hasOwnProperty(\"pageLevel\")&&(this.pageLevel=\"boolean\"==typeof e.pageLevel&&e.pageLevel),e.hasOwnProperty(\"any\")&&(this.any=e.any),e.hasOwnProperty(\"all\")&&(this.all=e.all),e.hasOwnProperty(\"none\")&&(this.none=e.none),e.hasOwnProperty(\"tags\")&&(this.tags=e.tags),e.hasOwnProperty(\"matches\")&&(\"string\"==typeof e.matches?this.matches=new Function(\"return \"+e.matches+\";\")():this.matches=e.matches)};var D=/[\\t\\r\\n\\f]/g,k=(x(E,[{key:\"attr\",value:function(){throw new Error('VirtualNode class must have a \"attr\" function')}},{key:\"hasAttr\",value:function(){throw new Error('VirtualNode class must have a \"hasAttr\" function')}},{key:\"hasClass\",value:function(e){var t=this.attr(\"class\");if(!t)return!1;var r=\" \"+e+\" \";return 0<=(\" \"+t+\" \").replace(D,\" \").indexOf(r)}},{key:\"props\",get:function(){throw new Error('VirtualNode class must have a \"props\" object consisting of \"nodeType\" and \"nodeName\" properties')}}]),E);function E(){v(this,E),this.children=[],this.parent=null}function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function v(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function w(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function x(e,t,r){return t&&w(e.prototype,t),r&&w(e,r),e}function A(e,t){return!t||\"object\"!==W(t)&&\"function\"!=typeof t?j(e):t}function j(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function F(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&T(e,t)}function T(e,t){return(T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}axe.AbstractVirtualNode=k;var N,S,z=(N=axe.AbstractVirtualNode,F(q,N),x(q,[{key:\"attr\",value:function(e){return this._attrs[e]||null}},{key:\"hasAttr\",value:function(e){return void 0!==this._attrs[e]}},{key:\"props\",get:function(){return this._props}}]),q);function q(e){var t,r,n,a;return v(this,q),(t=A(this,C(q).call(this)))._props=function(e){var t=e.nodeName,r=e.nodeType,n=void 0===r?1:r;axe.utils.assert(1===n,\"nodeType has to be undefined or 1, got '\".concat(n,\"'\")),axe.utils.assert(\"string\"==typeof t,\"nodeName has to be a string, got '\".concat(t,\"'\"));var a=Y({},e,{nodeType:n,nodeName:t.toLowerCase()});return delete a.attributes,Object.freeze(a)}(e),t._attrs=(r=e.attributes,n=void 0===r?{}:r,a={htmlFor:\"for\",className:\"class\"},Object.keys(n).reduce(function(e,t){var r=n[t];return axe.utils.assert(\"object\"!==W(r)||null===r,\"expects attributes not to be an object, '\".concat(t,\"' was\")),void 0!==r&&(e[a[t]||t]=null!==r?String(r):null),e},{})),t}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function v(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function w(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function x(e,t,r){return t&&w(e.prototype,t),r&&w(e,r),e}function A(e,t){return!t||\"object\"!==W(t)&&\"function\"!=typeof t?j(e):t}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function j(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function F(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&T(e,t)}function T(e,t){return(T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}axe.SerialVirtualNode=z;var O,K=(O=axe.AbstractVirtualNode,F(_,O),x(_,[{key:\"attr\",value:function(e){return\"function\"!=typeof this.actualNode.getAttribute?null:this.actualNode.getAttribute(e)}},{key:\"hasAttr\",value:function(e){return\"function\"==typeof this.actualNode.hasAttribute&&this.actualNode.hasAttribute(e)}},{key:\"getComputedStylePropertyValue\",value:function(e){var t=\"computedStyle_\"+e;return this._cache.hasOwnProperty(t)||(this._cache.hasOwnProperty(\"computedStyle\")||(this._cache.computedStyle=window.getComputedStyle(this.actualNode)),this._cache[t]=this._cache.computedStyle.getPropertyValue(e)),this._cache[t]}},{key:\"props\",get:function(){var e=this.actualNode,t=e.nodeType,r=e.nodeName,n=e.id,a=e.type,o=e.multiple;return{nodeType:t,nodeName:this._isXHTML?r:r.toLowerCase(),id:n,type:a,multiple:o}}},{key:\"isFocusable\",get:function(){return this._cache.hasOwnProperty(\"isFocusable\")||(this._cache.isFocusable=axe.commons.dom.isFocusable(this.actualNode)),this._cache.isFocusable}},{key:\"tabbableElements\",get:function(){return this._cache.hasOwnProperty(\"tabbableElements\")||(this._cache.tabbableElements=axe.commons.dom.getTabbableElements(this)),this._cache.tabbableElements}},{key:\"clientRects\",get:function(){return this._cache.hasOwnProperty(\"clientRects\")||(this._cache.clientRects=Array.from(this.actualNode.getClientRects()).filter(function(e){return 0<e.width})),this._cache.clientRects}},{key:\"boundingClientRect\",get:function(){return this._cache.hasOwnProperty(\"boundingClientRect\")||(this._cache.boundingClientRect=this.actualNode.getBoundingClientRect()),this._cache.boundingClientRect}}]),_);function _(e,t,r){var n;return v(this,_),(n=A(this,C(_).call(this))).shadowId=r,n.children=[],n.actualNode=e,n.parent=t,n._isHidden=null,n._cache={},void 0===S&&(S=axe.utils.isXHTML(e.ownerDocument)),n._isXHTML=S,axe._cache.get(\"nodeMap\")&&axe._cache.get(\"nodeMap\").set(e,j(n)),n}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function R(t,r){\"use strict\";if(t=t||function(){},r=r||axe.log,!axe._audit)throw new Error(\"No audit configured\");var n=axe.utils.queue(),a=[];Object.keys(axe.plugins).forEach(function(e){n.defer(function(t){function r(e){a.push(e),t()}try{axe.plugins[e].cleanup(t,r)}catch(e){r(e)}})});var e=axe.utils.getFlattenedTree(document.body);axe.utils.querySelectorAll(e,\"iframe, frame\").forEach(function(r){n.defer(function(e,t){return axe.utils.sendCommandToFrame(r.actualNode,{command:\"cleanup-plugin\"},e,t)})}),n.then(function(e){0===a.length?t(e):r(a)}).catch(r)}function X(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(a)throw o}}return r}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}()}function P(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function I(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var r=[],n=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(a)throw o}}return r}}function L(e){if(Array.isArray(e))return e}function B(e,t,r){\"use strict\";function n(e){e instanceof Error==!1&&(e=new Error(e)),r(e)}var a=r,o=e&&e.context||{};o.hasOwnProperty(\"include\")&&!o.include.length&&(o.include=[document]);var i=e&&e.options||{};switch(e.command){case\"rules\":return $(o,i,function(e,t){a(e),t()},n);case\"cleanup-plugin\":return R(a,n);default:if(axe._audit&&axe._audit.commands&&axe._audit.commands[e.command])return axe._audit.commands[e.command](e,r)}}function M(e){\"use strict\";this._run=e.run,this._collect=e.collect,this._registry={},e.commands.forEach(function(e){axe._audit.registerCommand(e)})}axe.VirtualNode=K,function(axe){var o={helpUrlBase:\"https://dequeuniversity.com/rules/\",results:[],resultGroups:[],resultGroupMap:{},impact:Object.freeze([\"minor\",\"moderate\",\"serious\",\"critical\"]),preload:Object.freeze({assets:[\"cssom\",\"media\"],timeout:1e4})};[{name:\"NA\",value:\"inapplicable\",priority:0,group:\"inapplicable\"},{name:\"PASS\",value:\"passed\",priority:1,group:\"passes\"},{name:\"CANTTELL\",value:\"cantTell\",priority:2,group:\"incomplete\"},{name:\"FAIL\",value:\"failed\",priority:3,group:\"violations\"}].forEach(function(e){var t=e.name,r=e.value,n=e.priority,a=e.group;o[t]=r,o[t+\"_PRIO\"]=n,o[t+\"_GROUP\"]=a,o.results[n]=r,o.resultGroups[n]=a,o.resultGroupMap[r]=a}),Object.freeze(o.results),Object.freeze(o.resultGroups),Object.freeze(o.resultGroupMap),Object.freeze(o),Object.defineProperty(axe,\"constants\",{value:o,enumerable:!0,configurable:!1,writable:!1})}(axe),axe.log=function(){\"use strict\";\"object\"===(\"undefined\"==typeof console?\"undefined\":W(console))&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},axe.cleanup=R,axe.configure=function(e){\"use strict\";var t;if(!(t=axe._audit))throw new Error(\"No audit configured\");if(e.axeVersion||e.ver){var r=e.axeVersion||e.ver;if(!/^\\d+\\.\\d+\\.\\d+(-canary)?/.test(r))throw new Error(\"Invalid configured version \".concat(r));var n=r.split(\"-\"),a=X(n,2),o=a[0],i=a[1],s=o.split(\".\").map(Number),l=X(s,3),u=l[0],c=l[1],d=l[2],p=axe.version.split(\"-\"),m=X(p,2),f=m[0],h=m[1],b=f.split(\".\").map(Number),g=X(b,3),y=g[0],v=g[1],w=g[2];if(u!==y||v<c||v===c&&w<d||u===y&&c===v&&d===w&&i&&i!==h)throw new Error(\"Configured version \".concat(r,\" is not compatible with current axe version \").concat(axe.version))}e.reporter&&(\"function\"==typeof e.reporter||U[e.reporter])&&(t.reporter=e.reporter),e.checks&&e.checks.forEach(function(e){t.addCheck(e)});var x=[];e.rules&&e.rules.forEach(function(e){x.push(e.id),t.addRule(e)}),e.disableOtherRules&&t.rules.forEach(function(e){!1===x.includes(e.id)&&(e.enabled=!1)}),void 0!==e.branding?t.setBranding(e.branding):t._constructHelpUrls(),e.tagExclude&&(t.tagExclude=e.tagExclude),e.locale&&t.applyLocale(e.locale)},axe.getRules=function(e){\"use strict\";var t=(e=e||[]).length?axe._audit.rules.filter(function(t){return!!e.filter(function(e){return-1!==t.tags.indexOf(e)}).length}):axe._audit.rules,r=axe._audit.data.rules||{};return t.map(function(e){var t=r[e.id]||{};return{ruleId:e.id,description:t.description,help:t.help,helpUrl:t.helpUrl,tags:e.tags}})},axe._load=function(e){\"use strict\";axe.utils.respondable.subscribe(\"axe.ping\",function(e,t,r){r({axe:!0})}),axe.utils.respondable.subscribe(\"axe.start\",B),axe._audit=new r(e)},(axe=axe||{}).plugins={},M.prototype.run=function(){\"use strict\";return this._run.apply(this,arguments)},M.prototype.collect=function(){\"use strict\";return this._collect.apply(this,arguments)},M.prototype.cleanup=function(e){\"use strict\";var r=axe.utils.queue(),n=this;Object.keys(this._registry).forEach(function(t){r.defer(function(e){n._registry[t].cleanup(e)})}),r.then(function(){e()})},M.prototype.add=function(e){\"use strict\";this._registry[e.id]=e},axe.registerPlugin=function(e){\"use strict\";axe.plugins[e.id]=new M(e)};var V,U={};function H(){axe._memoizedFns.forEach(function(e){return e.clear()}),axe._cache.clear(),axe._tree=void 0,axe._selectorData=void 0}function $(r,n,a,o){\"use strict\";try{r=new f(r),axe._tree=r.flatTree,axe._selectorData=axe.utils.getSelectorData(r.flatTree)}catch(e){return H(),o(e)}var i,e=axe.utils.queue(),s=axe._audit;n.performanceTimer&&axe.utils.performanceTimer.auditStart(),r.frames.length&&!1!==n.iframes&&e.defer(function(e,t){axe.utils.collectResultsFromFrames(r,n,\"rules\",null,e,t)}),e.defer(function(e,t){n.restoreScroll&&(i=axe.utils.getScrollState()),s.run(r,n,e,t)}),e.then(function(e){try{i&&axe.utils.setScrollState(i),n.performanceTimer&&axe.utils.performanceTimer.auditEnd();var t=axe.utils.mergeResults(e.map(function(e){return{results:e}}));r.initiator&&((t=s.after(t,n)).forEach(axe.utils.publishMetaData),t=t.map(axe.utils.finalizeRuleResult));try{a(t,H)}catch(e){H(),axe.log(e)}}catch(e){H(),o(e)}}).catch(function(e){H(),o(e)})}function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}axe.getReporter=function(e){\"use strict\";return\"string\"==typeof e&&U[e]?U[e]:\"function\"==typeof e?e:V},axe.addReporter=function(e,t,r){\"use strict\";U[e]=t,r&&(V=t)},axe.reset=function(){\"use strict\";var e=axe._audit;if(!e)throw new Error(\"No audit configured\");e.resetRulesAndChecks()},axe._runRules=$,axe.runVirtualRule=function(t,e){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};r.reporter=r.reporter||axe._audit.reporter||\"v1\",axe._selectorData={},e instanceof axe.AbstractVirtualNode==!1&&(e=new z(e));var n=axe._audit.rules.find(function(e){return e.id===t});if(!n)throw new Error(\"unknown rule `\"+t+\"`\");var a={include:[e]},o=(n=Object.create(n,{excludeHidden:{value:!1}})).runSync(a,r);axe.utils.publishMetaData(o),axe.utils.finalizeRuleResult(o);var i=axe.utils.aggregateResult([o]);return i.violations.forEach(function(e){return e.nodes.forEach(function(e){e.failureSummary=s.failureSummary(e)})}),Y({},s.getEnvironmentData(),{},i,{toolOptions:r})};function G(){}function J(e,t,r){\"use strict\";var n=new TypeError(\"axe.run arguments are invalid\");if(!function(e){\"use strict\";switch(!0){case\"string\"==typeof e:case Array.isArray(e):case Node&&e instanceof Node:case NodeList&&e instanceof NodeList:return 1;case\"object\"!==W(e):return;case void 0!==e.include:case void 0!==e.exclude:case\"number\"==typeof e.length:return 1;default:return}}(e)){if(void 0!==r)throw n;r=t,t=e,e=document}if(\"object\"!==W(t)){if(void 0!==r)throw n;r=t,t={}}if(\"function\"!=typeof r&&void 0!==r)throw n;return{context:e,options:t,callback:r||G}}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}axe.run=function(e,a,o){\"use strict\";if(!axe._audit)throw new Error(\"No audit configured\");var t,r=J(e,a,o);e=r.context,a=r.options,o=r.callback,a.reporter=a.reporter||axe._audit.reporter||\"v1\",a.performanceTimer&&axe.utils.performanceTimer.start();var i=G,s=G;if(\"function\"==typeof Promise&&o===G&&(t=new Promise(function(e,t){i=t,s=e})),axe._running){var n=\"Axe is already running. Use `await axe.run()` to wait for the previous run to finish before starting a new run.\";return o(n),i(n),t}return axe._running=!0,axe._runRules(e,a,function(e,t){function r(e){axe._running=!1,t();try{o(null,e)}catch(e){axe.log(e)}s(e)}a.performanceTimer&&axe.utils.performanceTimer.end();try{var n=axe.getReporter(a.reporter)(e,a,r);void 0!==n&&r(n)}catch(e){axe._running=!1,t(),o(e),i(e)}},function(e){axe._running=!1,o(e),i(e)}),t},s.failureSummary=function(e){\"use strict\";var r={};return r.none=e.none.concat(e.all),r.any=e.any,Object.keys(r).map(function(e){if(r[e].length){var t=axe._audit.data.failureSummaries[e];return t&&\"function\"==typeof t.failureMessage?t.failureMessage(r[e].map(function(e){return e.message||\"\"})):void 0}}).filter(function(e){return void 0!==e}).join(\"\\n\\n\")},s.getEnvironmentData=function(e){var t=0<arguments.length&&void 0!==e?e:window,r=t.screen,n=void 0===r?{}:r,a=t.navigator,o=void 0===a?{}:a,i=t.location,s=void 0===i?{}:i,l=t.innerHeight,u=t.innerWidth,c=n.msOrientation||n.orientation||n.mozOrientation||{};return{testEngine:{name:\"axe-core\",version:axe.version},testRunner:{name:axe._audit.brand},testEnvironment:{userAgent:o.userAgent,windowWidth:u,windowHeight:l,orientationAngle:c.angle,orientationType:c.type},timestamp:(new Date).toISOString(),url:s.href}},s.incompleteFallbackMessage=function(){\"use strict\";return\"function\"==typeof axe._audit.data.incompleteFallbackMessage?axe._audit.data.incompleteFallbackMessage():axe._audit.data.incompleteFallbackMessage};var Z=axe.constants.resultGroups;function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}s.processAggregate=function(e,r){var t=axe.utils.aggregateResult(e);return Z.forEach(function(e){r.resultTypes&&!r.resultTypes.includes(e)&&(t[e]||[]).forEach(function(e){Array.isArray(e.nodes)&&0<e.nodes.length&&(e.nodes=[e.nodes[0]])}),t[e]=(t[e]||[]).map(function(t){return t=Object.assign({},t),Array.isArray(t.nodes)&&0<t.nodes.length&&(t.nodes=t.nodes.map(function(e){return\"object\"===W(e.node)&&(e.html=e.node.source,r.elementRef&&!e.node.fromFrame&&(e.element=e.node.element),!1===r.selectors&&!e.node.fromFrame||(e.target=e.node.selector),r.xpath&&(e.xpath=e.node.xpath)),delete e.result,delete e.node,function(t,r){\"use strict\";[\"any\",\"all\",\"none\"].forEach(function(e){Array.isArray(t[e])&&t[e].filter(function(e){return Array.isArray(e.relatedNodes)}).forEach(function(e){e.relatedNodes=e.relatedNodes.map(function(e){var t={html:e.source};return r.elementRef&&!e.fromFrame&&(t.element=e.element),!1===r.selectors&&!e.fromFrame||(t.target=e.selector),r.xpath&&(t.xpath=e.xpath),t})})})}(e,r),e})),Z.forEach(function(e){return delete t[e]}),delete t.pageLevel,delete t.result,t})}),t},axe.addReporter(\"na\",function(e,t,r){\"use strict\";console.warn('\"na\" reporter will be deprecated in axe v4.0. Use the \"v2\" reporter instead.'),\"function\"==typeof t&&(r=t,t={});var n=s.processAggregate(e,t);r(Y({},s.getEnvironmentData(),{toolOptions:t,violations:n.violations,passes:n.passes,incomplete:n.incomplete,inapplicable:n.inapplicable}))}),axe.addReporter(\"no-passes\",function(e,t,r){\"use strict\";\"function\"==typeof t&&(r=t,t={}),t.resultTypes=[\"violations\"];var n=s.processAggregate(e,t);r(Y({},s.getEnvironmentData(),{toolOptions:t,violations:n.violations}))}),axe.addReporter(\"rawEnv\",function(e,t,r){\"function\"==typeof t&&(r=t,t={}),axe.getReporter(\"raw\")(e,t,function(e){var t=s.getEnvironmentData();r({raw:e,env:t})})}),axe.addReporter(\"raw\",function(e,t,r){\"use strict\";if(\"function\"==typeof t&&(r=t,t={}),!e||!Array.isArray(e))return r(e);r(e.map(function(e){for(var t=Y({},e),r=0,n=[\"passes\",\"violations\",\"incomplete\",\"inapplicable\"];r<n.length;r++){var a=n[r];t[a]&&Array.isArray(t[a])&&(t[a]=t[a].map(function(e){return Y({},e,{node:e.node.toJSON()})}))}return t}))}),axe.addReporter(\"v1\",function(e,t,r){\"use strict\";\"function\"==typeof t&&(r=t,t={});function n(e){e.nodes.forEach(function(e){e.failureSummary=s.failureSummary(e)})}var a=s.processAggregate(e,t);a.incomplete.forEach(n),a.violations.forEach(n),r(Y({},s.getEnvironmentData(),{toolOptions:t,violations:a.violations,passes:a.passes,incomplete:a.incomplete,inapplicable:a.inapplicable}))}),axe.addReporter(\"v2\",function(e,t,r){\"use strict\";\"function\"==typeof t&&(r=t,t={});var n=s.processAggregate(e,t);r(Y({},s.getEnvironmentData(),{toolOptions:t,violations:n.violations,passes:n.passes,incomplete:n.incomplete,inapplicable:n.inapplicable}))},!0),axe.utils.aggregate=function(t,e,r){e=e.slice(),r&&e.push(r);var n=e.map(function(e){return t.indexOf(e)}).sort();return t[n.pop()]};var Q=axe.constants,ee=Q.CANTTELL_PRIO,te=Q.FAIL_PRIO,re=[];re[axe.constants.PASS_PRIO]=!0,re[axe.constants.CANTTELL_PRIO]=null,re[axe.constants.FAIL_PRIO]=!1;var axe,ne=[\"any\",\"all\",\"none\"];function ae(r,n){return ne.reduce(function(e,t){return e[t]=(r[t]||[]).map(function(e){return n(e,t)}),e},{})}function oe(e,t,r){var n=Object.assign({},t);n.nodes=(n[r]||[]).concat(),axe.constants.resultGroups.forEach(function(e){delete n[e]}),e[r].push(n)}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function ie(e,t){\"use strict\";var r;return axe._tree&&(r=axe.utils.getSelector(t)),new Error(e+\": \"+(r||t))}function se(e){var t=e.outerHTML;return t||\"function\"!=typeof XMLSerializer||(t=(new XMLSerializer).serializeToString(e)),function(e,t){if(t=t||300,e.length>t){var r=e.indexOf(\">\");e=e.substring(0,r+1)}return e}(t||\"\")}function le(e,t,r){this._fromFrame=!!r,this.spec=r||{},t&&t.absolutePaths&&(this._options={toRoot:!0}),this.source=void 0!==this.spec.source?this.spec.source:se(e),this._element=e}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function ue(e,a,r){var n,t,o;function i(e,t,r){var n=ue(t,a,r);return n&&(e=e.concat(n)),e}if(e.documentElement&&(e=e.documentElement),o=e.nodeName.toLowerCase(),axe.utils.isShadowRoot(e))return n=new K(e,r,a),a=\"a\"+Math.random().toString().substring(2),t=Array.from(e.shadowRoot.childNodes),n.children=t.reduce(function(e,t){return i(e,t,n)},[]),[n];if(\"content\"===o&&\"function\"==typeof e.getDistributedNodes)return(t=Array.from(e.getDistributedNodes())).reduce(function(e,t){return i(e,t,r)},[]);if(\"slot\"!==o||\"function\"!=typeof e.assignedNodes)return 1===e.nodeType?(n=new K(e,r,a),t=Array.from(e.childNodes),n.children=t.reduce(function(e,t){return i(e,t,n)},[]),[n]):3===e.nodeType?[new K(e,r)]:void 0;(t=Array.from(e.assignedNodes())).length||(t=function(e){var t=[];for(e=e.firstChild;e;)t.push(e),e=e.nextSibling;return t}(e));window.getComputedStyle(e);return t.reduce(function(e,t){return i(e,t,r)},[])}function X(e,t){return L(e)||I(e,t)||P()}function P(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function I(e,t){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)){var r=[],n=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(a)throw o}}return r}}function L(e){if(Array.isArray(e))return e}function ce(e,t){return[e.substring(0,t),e.substring(t)]}function de(e){return e.replace(/\\s+$/,\"\")}axe.utils.aggregateChecks=function(e){var r=Object.assign({},e);ae(r,function(e,t){var r=void 0===e.result?-1:re.indexOf(e.result);e.priority=-1!==r?r:axe.constants.CANTTELL_PRIO,\"none\"===t&&(e.priority===axe.constants.PASS_PRIO?e.priority=axe.constants.FAIL_PRIO:e.priority===axe.constants.FAIL_PRIO&&(e.priority=axe.constants.PASS_PRIO))});var n={all:r.all.reduce(function(e,t){return Math.max(e,t.priority)},0),none:r.none.reduce(function(e,t){return Math.max(e,t.priority)},0),any:r.any.reduce(function(e,t){return Math.min(e,t.priority)},4)%4};r.priority=Math.max(n.all,n.none,n.any);var a=[];return ne.forEach(function(t){r[t]=r[t].filter(function(e){return e.priority===r.priority&&e.priority===n[t]}),r[t].forEach(function(e){return a.push(e.impact)})}),[ee,te].includes(r.priority)?r.impact=axe.utils.aggregate(axe.constants.impact,a):r.impact=null,ae(r,function(e){delete e.result,delete e.priority}),r.result=axe.constants.results[r.priority],delete r.priority,r},axe.utils.aggregateNodeResults=function(e){var r={};if((e=e.map(function(e){if(e.any&&e.all&&e.none)return axe.utils.aggregateChecks(e);if(Array.isArray(e.node))return axe.utils.finalizeRuleResult(e);throw new TypeError(\"Invalid Result type\")}))&&e.length){var t=e.map(function(e){return e.result});r.result=axe.utils.aggregate(axe.constants.results,t,r.result)}else r.result=\"inapplicable\";axe.constants.resultGroups.forEach(function(e){return r[e]=[]}),e.forEach(function(e){var t=axe.constants.resultGroupMap[e.result];r[t].push(e)});var n=axe.constants.FAIL_GROUP;if(0===r[n].length&&(n=axe.constants.CANTTELL_GROUP),0<r[n].length){var a=r[n].map(function(e){return e.impact});r.impact=axe.utils.aggregate(axe.constants.impact,a)||null}else r.impact=null;return r},axe.utils.aggregateResult=function(e){var r={};return axe.constants.resultGroups.forEach(function(e){return r[e]=[]}),e.forEach(function(t){t.error?oe(r,t,axe.constants.CANTTELL_GROUP):t.result===axe.constants.NA?oe(r,t,axe.constants.NA_GROUP):axe.constants.resultGroups.forEach(function(e){Array.isArray(t[e])&&0<t[e].length&&oe(r,t,e)})}),r},axe.utils.areStylesSet=function e(t,r,n){\"use strict\";var a=window.getComputedStyle(t,null);if(!a)return!1;for(var o=0;o<r.length;++o){var i=r[o];if(a.getPropertyValue(i.property)===i.value)return!0}return!(!t.parentNode||t.nodeName.toUpperCase()===n.toUpperCase())&&e(t.parentNode,r,n)},axe.utils.assert=function(e,t){if(!e)throw new Error(t)},axe.utils.checkHelper=function(t,r,n,a){\"use strict\";return{isAsync:!1,async:function(){return this.isAsync=!0,function(e){e instanceof Error==!1?(t.result=e,n(t)):a(e)}},data:function(e){t.data=e},relatedNodes:function(e){e=e instanceof Node?[e]:axe.utils.toArray(e),t.relatedNodes=e.map(function(e){return new axe.utils.DqElement(e,r)})}}},axe.utils.clone=function(e){\"use strict\";var t,r,n=e;if(null!==e&&\"object\"===W(e))if(Array.isArray(e))for(n=[],t=0,r=e.length;t<r;t++)n[t]=axe.utils.clone(e[t]);else for(t in n={},e)n[t]=axe.utils.clone(e[t]);return n},axe.utils.sendCommandToFrame=function(t,r,n,a){\"use strict\";var o=t.contentWindow;if(!o)return axe.log(\"Frame does not have a content window\",t),void n(null);var i=setTimeout(function(){i=setTimeout(function(){r.debug?a(ie(\"No response from frame\",t)):n(null)},0)},500);axe.utils.respondable(o,\"axe.ping\",null,void 0,function(){clearTimeout(i);var e=r.options&&r.options.frameWaitTime||6e4;i=setTimeout(function(){a(ie(\"Axe in frame timed out\",t))},e),axe.utils.respondable(o,\"axe.start\",r,void 0,function(e){clearTimeout(i),(e instanceof Error==!1?n:a)(e)})})},axe.utils.collectResultsFromFrames=function(e,t,r,o,n,a){\"use strict\";var i=axe.utils.queue();e.frames.forEach(function(n){var a={options:t,command:r,parameter:o,context:{initiator:!1,page:e.page,include:n.include||[],exclude:n.exclude||[]}};i.defer(function(t,e){var r=n.node;axe.utils.sendCommandToFrame(r,a,function(e){if(e)return t({results:e,frameElement:r,frame:axe.utils.getSelector(r)});t(null)},e)})}),i.then(function(e){n(axe.utils.mergeResults(e,t))}).catch(a)},axe.utils.contains=function(e,t){\"use strict\";if(e.shadowId||t.shadowId)return function t(e,r){return e.shadowId===r.shadowId||!!e.children.find(function(e){return t(e,r)})}(e,t);if(e.actualNode)return\"function\"==typeof e.actualNode.contains?e.actualNode.contains(t.actualNode):!!(16&e.actualNode.compareDocumentPosition(t.actualNode));do{if(t===e)return!0}while(t=t&&t.parent);return!1},function(axe){var e=new axe.imports.CssSelectorParser;e.registerSelectorPseudos(\"not\"),e.registerNestingOperators(\">\"),e.registerAttrEqualityMods(\"^\",\"$\",\"*\"),axe.utils.cssParser=e}(axe),le.prototype={get selector(){return this.spec.selector||[axe.utils.getSelector(this.element,this._options)]},get xpath(){return this.spec.xpath||[axe.utils.getXpath(this.element)]},get element(){return this._element},get fromFrame(){return this._fromFrame},toJSON:function(){\"use strict\";return{selector:this.selector,source:this.source,xpath:this.xpath}}},le.fromFrame=function(e,t,r){return e.selector.unshift(r.selector),e.xpath.unshift(r.xpath),new axe.utils.DqElement(r.element,t,e)},axe.utils.DqElement=le,axe.utils.matchesSelector=function(){\"use strict\";var r;return function(e,t){return r&&e[r]||(r=function(e){var t,r,n=[\"matches\",\"matchesSelector\",\"mozMatchesSelector\",\"webkitMatchesSelector\",\"msMatchesSelector\"],a=n.length;for(t=0;t<a;t++)if(e[r=n[t]])return r}(e)),!!e[r]&&e[r](t)}}(),axe.utils.escapeSelector=function(e){\"use strict\";for(var t,r=String(e),n=r.length,a=-1,o=\"\",i=r.charCodeAt(0);++a<n;)0!=(t=r.charCodeAt(a))?o+=1<=t&&t<=31||127==t||0==a&&48<=t&&t<=57||1==a&&48<=t&&t<=57&&45==i?\"\\\\\"+t.toString(16)+\" \":(0!=a||1!=n||45!=t)&&(128<=t||45==t||95==t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122)?r.charAt(a):\"\\\\\"+r.charAt(a):o+=\"�\";return o},axe.utils.extendMetaData=function(t,r){Object.assign(t,r),Object.keys(r).filter(function(e){return\"function\"==typeof r[e]}).forEach(function(e){t[e]=null;try{t[e]=r[e](t)}catch(e){}})},axe.utils.finalizeRuleResult=function(e){return Object.assign(e,axe.utils.aggregateNodeResults(e.nodes)),delete e.nodes,e},axe.utils.findBy=function(e,t,r){if(Array.isArray(e))return e.find(function(e){return\"object\"===W(e)&&e[t]===r})},(axe=axe||{utils:{}}).utils.getFlattenedTree=function(e,t){return axe._cache.set(\"nodeMap\",new WeakMap),ue(e,t)},axe.utils.getNodeFromTree=function(e,t){var r=t||e;return axe._cache.get(\"nodeMap\")?axe._cache.get(\"nodeMap\").get(r):null},axe.utils.getAllChecks=function(e){\"use strict\";return[].concat(e.any||[]).concat(e.all||[]).concat(e.none||[])},axe.utils.getBaseLang=function(e){return e?e.trim().split(\"-\")[0].toLowerCase():\"\"},axe.utils.getCheckMessage=function(e,t,r){var n=axe._audit.data.checks[e];if(!n)throw new Error(\"Cannot get message for unknown check: \".concat(e,\".\"));if(!n.messages[t])throw new Error('Check \"'.concat(e,'\"\" does not have a \"').concat(t,'\" message.'));return axe.utils.processMessage(n.messages[t],r)},axe.utils.getCheckOption=function(e,t,r){var n=((r.rules&&r.rules[t]||{}).checks||{})[e.id],a=(r.checks||{})[e.id],o=e.enabled,i=e.options;return a&&(a.hasOwnProperty(\"enabled\")&&(o=a.enabled),a.hasOwnProperty(\"options\")&&(i=a.options)),n&&(n.hasOwnProperty(\"enabled\")&&(o=n.enabled),n.hasOwnProperty(\"options\")&&(i=n.options)),{enabled:o,options:i,absolutePaths:r.absolutePaths}},axe.utils.getFriendlyUriEnd=function(e,t){var r=0<arguments.length&&void 0!==e?e:\"\",n=1<arguments.length&&void 0!==t?t:{};if(!(r.length<=1||\"data:\"===r.substr(0,5)||\"javascript:\"===r.substr(0,11)||r.includes(\"?\"))){var a=n.currentDomain,o=n.maxLength,i=void 0===o?25:o,s=function(e){var t=e,r=\"\",n=\"\",a=\"\",o=\"\",i=\"\";if(e.includes(\"#\")){var s=ce(e,e.indexOf(\"#\")),l=X(s,2);e=l[0],i=l[1]}if(e.includes(\"?\")){var u=ce(e,e.indexOf(\"?\")),c=X(u,2);e=c[0],o=c[1]}if(e.includes(\"://\")){var d=e.split(\"://\"),p=X(d,2);r=p[0];var m=ce(e=p[1],e.indexOf(\"/\")),f=X(m,2);n=f[0],e=f[1]}else if(\"//\"===e.substr(0,2)){var h=ce(e=e.substr(2),e.indexOf(\"/\")),b=X(h,2);n=b[0],e=b[1]}if(\"www.\"===n.substr(0,4)&&(n=n.substr(4)),n&&n.includes(\":\")){var g=ce(n,n.indexOf(\":\")),y=X(g,2);n=y[0],a=y[1]}return{original:t,protocol:r,domain:n,port:a,path:e,query:o,hash:i}}(r),l=s.path,u=s.domain,c=s.hash,d=l.substr(l.substr(0,l.length-2).lastIndexOf(\"/\")+1);if(c)return d&&(d+c).length<=i?de(d+c):d.length<2&&2<c.length&&c.length<=i?de(c):void 0;if(u&&u.length<i&&l.length<=1)return de(u+l);if(l===\"/\"+d&&u&&a&&u!==a&&(u+l).length<=i)return de(u+l);var p=d.lastIndexOf(\".\");return(-1===p||1<p)&&(-1!==p||2<d.length)&&d.length<=i&&!d.match(/index(\\.[a-zA-Z]{2-4})?/)&&!function(e){var t=0<arguments.length&&void 0!==e?e:\"\";return 0!==t.length&&(t.match(/[0-9]/g)||\"\").length>=t.length/2}(d)?de(d):void 0}},axe.utils.getNodeAttributes=function(e){return e.attributes instanceof window.NamedNodeMap?e.attributes:e.cloneNode(!1).attributes},axe.utils.getRootNode=function(e){var t=e.getRootNode&&e.getRootNode()||document;return t===e&&(t=document),t},axe.utils.getScroll=function(e,t){var r=1<arguments.length&&void 0!==t?t:0,n=e.scrollWidth>e.clientWidth+r,a=e.scrollHeight>e.clientHeight+r;if(n||a){var o=window.getComputedStyle(e),i=o.getPropertyValue(\"overflow-x\"),s=o.getPropertyValue(\"overflow-y\");return n&&(\"visible\"!==i&&\"hidden\"!==i)||a&&(\"visible\"!==s&&\"hidden\"!==s)?{elm:e,top:e.scrollTop,left:e.scrollLeft}:void 0}};var pe,me,fe=axe.utils.escapeSelector,he=[\"class\",\"style\",\"id\",\"selected\",\"checked\",\"disabled\",\"tabindex\",\"aria-checked\",\"aria-selected\",\"aria-invalid\",\"aria-activedescendant\",\"aria-busy\",\"aria-disabled\",\"aria-expanded\",\"aria-grabbed\",\"aria-pressed\",\"aria-valuenow\"],be=31;function ge(e,t){var r,n=t.name;if(-1!==n.indexOf(\"href\")||-1!==n.indexOf(\"src\")){var a=axe.utils.getFriendlyUriEnd(e.getAttribute(n));if(a){var o=encodeURI(a);if(!o)return;r=fe(t.name)+'$=\"'+fe(o)+'\"'}else r=fe(t.name)+'=\"'+fe(e.getAttribute(n))+'\"'}else r=fe(n)+'=\"'+fe(t.value)+'\"';return r}function ye(e,t){return e.count<t.count?-1:e.count===t.count?0:1}function ve(e){return!he.includes(e.name)&&-1===e.name.indexOf(\":\")&&(!e.value||e.value.length<be)}function we(t,r){var e=t.parentNode&&Array.from(t.parentNode.children||\"\")||[];return e.find(function(e){return e!==t&&axe.utils.matchesSelector(e,r)})?\":nth-child(\"+(1+e.indexOf(t))+\")\":\"\"}function xe(e){if(e.getAttribute(\"id\")){var t=e.getRootNode&&e.getRootNode()||document,r=\"#\"+fe(e.getAttribute(\"id\")||\"\");return r.match(/player_uid_/)||1!==t.querySelectorAll(r).length?void 0:r}}function De(e){return void 0===pe&&(pe=axe.utils.isXHTML(document)),fe(pe?e.localName:e.nodeName.toLowerCase())}function ke(e,t){var r,n,a,o,i,s,l,u,c,d,p,m=\"\",f=(n=e,o=[],i=(a=t).classes,s=a.tags,n.classList&&Array.from(n.classList).forEach(function(e){var t=fe(e);i[t]<s[n.nodeName]&&o.push({name:t,count:i[t],species:\"class\"})}),o.sort(ye)),h=(l=e,c=[],d=(u=t).attributes,p=u.tags,l.hasAttributes()&&Array.from(axe.utils.getNodeAttributes(l)).filter(ve).forEach(function(e){var t=ge(l,e);t&&d[t]<p[l.nodeName]&&c.push({name:t,count:d[t],species:\"attribute\"})}),c.sort(ye));return f.length&&1===f[0].count?r=[f[0]]:h.length&&1===h[0].count?(r=[h[0]],m=De(e)):((r=f.concat(h)).sort(ye),(r=r.slice(0,3)).some(function(e){return\"class\"===e.species})?r.sort(function(e,t){return e.species!==t.species&&\"class\"===e.species?-1:e.species===t.species?0:1}):m=De(e)),m+r.reduce(function(e,t){switch(t.species){case\"class\":return e+\".\"+t.name;case\"attribute\":return e+\"[\"+t.name+\"]\"}return e},\"\")}function Ee(e,t,r){if(!axe._selectorData)throw new Error(\"Expect axe._selectorData to be set up\");var n,a,o=t.toRoot,i=void 0!==o&&o;do{var s=xe(e);s||(s=ke(e,axe._selectorData),s+=we(e,s)),n=n?s+\" > \"+n:s,a=a?a.filter(function(e){return axe.utils.matchesSelector(e,n)}):Array.from(r.querySelectorAll(n)),e=e.parentElement}while((1<a.length||i)&&e&&11!==e.nodeType);return 1===a.length?n:-1!==n.indexOf(\" > \")?\":root\"+n.substring(n.indexOf(\" > \")):\":root\"}axe.utils.getSelectorData=function(e){function t(){var e=a.pop(),r=e.actualNode;if(r.querySelectorAll){var t=r.nodeName;n.tags[t]?n.tags[t]++:n.tags[t]=1,r.classList&&Array.from(r.classList).forEach(function(e){var t=fe(e);n.classes[t]?n.classes[t]++:n.classes[t]=1}),r.hasAttributes()&&Array.from(axe.utils.getNodeAttributes(r)).filter(ve).forEach(function(e){var t=ge(r,e);t&&(n.attributes[t]?n.attributes[t]++:n.attributes[t]=1)})}for(e.children.length&&(o.push(a),a=e.children.slice());!a.length&&o.length;)a=o.pop()}for(var n={classes:{},tags:{},attributes:{}},a=(e=Array.isArray(e)?e:[e]).slice(),o=[];a.length;)t();return n},axe.utils.getSelector=function(e,t){var r=1<arguments.length&&void 0!==t?t:{};if(!e)return\"\";var n=e.getRootNode&&e.getRootNode()||document;if(11!==n.nodeType)return Ee(e,r,n);for(var a=[];11===n.nodeType;){if(!n.host)return\"\";a.push({elm:e,doc:n}),n=(e=n.host).getRootNode()}return a.push({elm:e,doc:n}),a.reverse().map(function(e){return Ee(e.elm,r,e.doc)})},axe.utils.getStyleSheetFactory=function(d){if(!d)throw new Error(\"axe.utils.getStyleSheetFactory should be invoked with an argument\");return function(e){var t=e.data,r=e.isCrossOrigin,n=void 0!==r&&r,a=e.shadowId,o=e.root,i=e.priority,s=e.isLink,l=void 0!==s&&s,u=d.createElement(\"style\");if(l){var c=d.createTextNode('@import \"'.concat(t.href,'\"'));u.appendChild(c)}else u.appendChild(d.createTextNode(t));return d.head.appendChild(u),{sheet:u.sheet,isCrossOrigin:n,shadowId:a,root:o,priority:i}}},axe.utils.getXpath=function(e){var t=function e(t,r){var n,a;if(!t)return[];if(!r&&9===t.nodeType)return r=[{str:\"html\"}];if(r=r||[],t.parentNode&&t.parentNode!==t&&(r=e(t.parentNode,r)),t.previousSibling){for(a=1,n=t.previousSibling;1===n.nodeType&&n.nodeName===t.nodeName&&a++,n=n.previousSibling;);1===a&&(a=null)}else if(t.nextSibling)for(n=t.nextSibling;n=1===n.nodeType&&n.nodeName===t.nodeName?(a=1,null):(a=null,n.previousSibling););if(1===t.nodeType){var o={};o.str=t.nodeName.toLowerCase();var i=t.getAttribute&&axe.utils.escapeSelector(t.getAttribute(\"id\"));i&&1===t.ownerDocument.querySelectorAll(\"#\"+i).length&&(o.id=t.getAttribute(\"id\")),1<a&&(o.count=a),r.push(o)}return r}(e);return t.reduce(function(e,t){return t.id?\"/\".concat(t.str,\"[@id='\").concat(t.id,\"']\"):e+\"/\".concat(t.str)+(0<t.count?\"[\".concat(t.count,\"]\"):\"\")},\"\")},axe.utils.injectStyle=function(e){\"use strict\";if(me&&me.parentNode)return void 0===me.styleSheet?me.appendChild(document.createTextNode(e)):me.styleSheet.cssText+=e,me;if(e){var t=document.head||document.getElementsByTagName(\"head\")[0];return(me=document.createElement(\"style\")).type=\"text/css\",void 0===me.styleSheet?me.appendChild(document.createTextNode(e)):me.styleSheet.cssText=e,t.appendChild(me),me}},axe.utils.isHidden=function(e,t){\"use strict\";var r=axe.utils.getNodeFromTree(e);if(9===e.nodeType)return!1;if(11===e.nodeType&&(e=e.host),r&&null!==r._isHidden)return r._isHidden;var n=window.getComputedStyle(e,null);if(!n||!e.parentNode||\"none\"===n.getPropertyValue(\"display\")||!t&&\"hidden\"===n.getPropertyValue(\"visibility\")||\"true\"===e.getAttribute(\"aria-hidden\"))return!0;var a=e.assignedSlot?e.assignedSlot:e.parentNode,o=axe.utils.isHidden(a,!0);return r&&(r._isHidden=o),o};var Ae=[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"math\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rb\",\"rp\",\"rt\",\"rtc\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"slot\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"svg\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"];axe.utils.isHtmlElement=function(e){return\"http://www.w3.org/2000/svg\"!==e.namespaceURI&&Ae.includes(e.nodeName.toLowerCase())};var je=[\"article\",\"aside\",\"blockquote\",\"body\",\"div\",\"footer\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"main\",\"nav\",\"p\",\"section\",\"span\"];function Ce(e,t){return d=t,1===(c=e).props.nodeType&&(\"*\"===d.tag||c.props.nodeName===d.tag)&&(l=e,!(u=t).classes||u.classes.every(function(e){return l.hasClass(e.value)}))&&(i=e,!(s=t).attributes||s.attributes.every(function(e){var t=i.attr(e.key);return null!==t&&(!e.value||e.test(t))}))&&(a=e,!(o=t).id||a.props.id===o.id)&&(r=e,!((n=t).pseudos&&!n.pseudos.every(function(e){if(\"not\"===e.name)return!axe.utils.matchesExpression(r,e.expressions[0]);throw new Error(\"the pseudo selector \"+e.name+\" has not yet been implemented\")})));var r,n,a,o,i,s,l,u,c,d}axe.utils.isShadowRoot=function(e){if(e.shadowRoot){var t=e.nodeName.toLowerCase();if(je.includes(t)||/^[a-z][a-z0-9_.-]*-[a-z0-9_.-]*$/.test(t))return!0}return!1},axe.utils.isXHTML=function(e){\"use strict\";return!!e.createElement&&\"A\"===e.createElement(\"A\").localName};var Fe,Te,Ne,Se=(Fe=/(?=[\\-\\[\\]{}()*+?.\\\\\\^$|,#\\s])/g,function(e){return e.replace(Fe,\"\\\\\")}),ze=/\\\\/g;function qe(e){if(e)return e.map(function(e){var t,r,n=e.name.replace(ze,\"\"),a=(e.value||\"\").replace(ze,\"\");switch(e.operator){case\"^=\":r=new RegExp(\"^\"+Se(a));break;case\"$=\":r=new RegExp(Se(a)+\"$\");break;case\"~=\":r=new RegExp(\"(^|\\\\s)\"+Se(a)+\"(\\\\s|$)\");break;case\"|=\":r=new RegExp(\"^\"+Se(a)+\"(-|$)\");break;case\"=\":t=function(e){return a===e};break;case\"*=\":t=function(e){return e&&e.includes(a)};break;case\"!=\":t=function(e){return a!==e};break;default:t=function(e){return!!e}}return\"\"===a&&/^[*$^]=$/.test(e.operator)&&(t=function(){return!1}),{key:n,value:a,test:t=t||function(e){return e&&r.test(e)}}})}function Oe(e){if(e)return e.map(function(e){return{value:e=e.replace(ze,\"\"),regexp:new RegExp(\"(^|\\\\s)\"+Se(e)+\"(\\\\s|$)\")}})}function _e(e){if(e)return e.map(function(e){var t;return\"not\"===e.name&&(t=Re(t=(t=e.value).selectors?t.selectors:[t])),{name:e.name,expressions:t,value:e.value}})}function Re(e){return e.map(function(e){for(var t=[],r=e.rule;r;)t.push({tag:r.tagName?r.tagName.toLowerCase():\"*\",combinator:r.nestingOperator?r.nestingOperator:\" \",id:r.id,attributes:qe(r.attrs),classes:Oe(r.classNames),pseudos:_e(r.pseudos)}),r=r.rule;return t})}function Pe(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}()}function Ie(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function Le(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function Be(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}function Me(e){return\"function\"==typeof e||\"[object Function]\"===Te.call(e)}function Ve(e){var t,r=(t=Number(e),isNaN(t)?0:0!==t&&isFinite(t)?(0<t?1:-1)*Math.floor(Math.abs(t)):t);return Math.min(Math.max(r,0),Ne)}function Ue(e){var t=e.nodeName.toUpperCase(),r=e.getAttribute(\"href\"),n=e.getAttribute(\"rel\"),a=\"LINK\"===t&&r&&n&&e.rel.toUpperCase().includes(\"STYLESHEET\");return\"STYLE\"===t||a&&He(e.media)}function He(e){return!e||!e.toUpperCase().includes(\"PRINT\")}function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}axe.utils.convertSelector=function(e){var t=axe.utils.cssParser.parse(e);return Re(t=t.selectors?t.selectors:[t])},axe.utils.matchesExpression=function(e,t,r){for(var n=[].concat(t),a=n.pop(),o=Ce(e,a);!o&&r&&e.parent;)o=Ce(e=e.parent,a);if(n.length){if(!1===[\" \",\">\"].includes(a.combinator))throw new Error(\"axe.utils.matchesExpression does not support the combinator: \"+a.combinator);o=o&&axe.utils.matchesExpression(e.parent,n,\" \"===a.combinator)}return o},axe.utils.matches=function(t,e){return axe.utils.convertSelector(e).some(function(e){return axe.utils.matchesExpression(t,e)})},axe._memoizedFns=[],axe.utils.memoize=function(e){var t=axe.imports.memoize(e);return axe._memoizedFns.push(t),t},axe.utils.mergeResults=function(e,n){\"use strict\";var a=[];return e.forEach(function(r){var e=function(e){\"use strict\";return e&&e.results?Array.isArray(e.results)?e.results.length?e.results:null:[e.results]:null}(r);e&&e.length&&e.forEach(function(e){e.nodes&&r.frame&&function(e,r,t,n){\"use strict\";var a={element:t,selector:n,xpath:axe.utils.getXpath(t)};e.forEach(function(e){e.node=axe.utils.DqElement.fromFrame(e.node,r,a);var t=axe.utils.getAllChecks(e);t.length&&t.forEach(function(e){e.relatedNodes=e.relatedNodes.map(function(e){return axe.utils.DqElement.fromFrame(e,r,a)})})})}(e.nodes,n,r.frameElement,r.frame);var t=axe.utils.findBy(a,\"id\",e.id);t?e.nodes.length&&function(e,t){\"use strict\";for(var r,n,a=t[0].node,o=0,i=e.length;o<i;o++)if(n=e[o].node,0<(r=axe.utils.nodeSorter({actualNode:n.element},{actualNode:a.element}))||0===r&&a.selector.length<n.selector.length)return e.splice.apply(e,[o,0].concat(t));e.push.apply(e,t)}(t.nodes,e.nodes):a.push(e)})}),a},axe.utils.nodeSorter=function(e,t){return(e=e.actualNode||e)===(t=t.actualNode||t)?0:4&e.compareDocumentPosition(t)?-1:1},axe.utils.parseCrossOriginStylesheet=function(e,n,a,o,i){var t={method:\"get\",timeout:axe.constants.preload.timeout,url:e};return o.push(e),axe.imports.axios(t).then(function(e){var t=e.data,r=n.convertDataToStylesheet({data:t,isCrossOrigin:i,priority:a,root:n.rootNode,shadowId:n.shadowId});return axe.utils.parseStylesheet(r.sheet,n,a,o,r.isCrossOrigin)})},axe.utils.parseSameOriginStylesheet=function(e,a,o,i,t){var r=4<arguments.length&&void 0!==t&&t,n=Array.from(e.cssRules);if(!n)return Promise.resolve();var s=n.filter(function(e){return 3===e.type});if(!s.length)return Promise.resolve({isCrossOrigin:r,priority:o,root:a.rootNode,shadowId:a.shadowId,sheet:e});var l=s.filter(function(e){return e.href}).map(function(e){return e.href}).filter(function(e){return!i.includes(e)}).map(function(e,t){var r=[].concat(Pe(o),[t]),n=/^https?:\\/\\/|^\\/\\//i.test(e);return axe.utils.parseCrossOriginStylesheet(e,a,r,i,n)}),u=n.filter(function(e){return 3!==e.type});return u.length&&l.push(Promise.resolve(a.convertDataToStylesheet({data:u.map(function(e){return e.cssText}).join(),isCrossOrigin:r,priority:o,root:a.rootNode,shadowId:a.shadowId}))),Promise.all(l)},axe.utils.parseStylesheet=function(e,t,r,n,a){var o=4<arguments.length&&void 0!==a&&a;return function(e){try{return!e.cssRules&&e.href?!1:!0}catch(e){return!1}}(e)?axe.utils.parseSameOriginStylesheet(e,t,r,n,o):axe.utils.parseCrossOriginStylesheet(e.href,t,r,n,!0)},utils.performanceTimer=function(){\"use strict\";function e(){if(window.performance&&window.performance)return window.performance.now()}var t=null,r=e();return{start:function(){this.mark(\"mark_axe_start\")},end:function(){this.mark(\"mark_axe_end\"),this.measure(\"axe\",\"mark_axe_start\",\"mark_axe_end\"),this.logMeasures(\"axe\")},auditStart:function(){this.mark(\"mark_audit_start\")},auditEnd:function(){this.mark(\"mark_audit_end\"),this.measure(\"audit_start_to_end\",\"mark_audit_start\",\"mark_audit_end\"),this.logMeasures()},mark:function(e){window.performance&&void 0!==window.performance.mark&&window.performance.mark(e)},measure:function(e,t,r){window.performance&&void 0!==window.performance.measure&&window.performance.measure(e,t,r)},logMeasures:function(e){function t(e){axe.log(\"Measure \"+e.name+\" took \"+e.duration+\"ms\")}if(window.performance&&void 0!==window.performance.getEntriesByType)for(var r=window.performance.getEntriesByName(\"mark_axe_start\")[0],n=window.performance.getEntriesByType(\"measure\").filter(function(e){return e.startTime>=r.startTime}),a=0;a<n.length;++a){var o=n[a];if(o.name===e)return void t(o);t(o)}},timeElapsed:function(){return e()-r},reset:function(){t=t||e(),r=e()}}}(),\"function\"!=typeof Object.assign&&(Object.assign=function(e){\"use strict\";if(null==e)throw new TypeError(\"Cannot convert undefined or null to object\");for(var t=Object(e),r=1;r<arguments.length;r++){var n=arguments[r];if(null!=n)for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a])}return t}),Array.prototype.find||Object.defineProperty(Array.prototype,\"find\",{value:function(e){if(null===this)throw new TypeError(\"Array.prototype.find called on null or undefined\");if(\"function\"!=typeof e)throw new TypeError(\"predicate must be a function\");for(var t,r=Object(this),n=r.length>>>0,a=arguments[1],o=0;o<n;o++)if(t=r[o],e.call(a,t,o,r))return t}}),axe.utils.pollyfillElementsFromPoint=function(){if(document.elementsFromPoint)return document.elementsFromPoint;if(document.msElementsFromPoint)return document.msElementsFromPoint;var e,t=((e=document.createElement(\"x\")).style.cssText=\"pointer-events:auto\",\"auto\"===e.style.pointerEvents),s=t?\"pointer-events\":\"visibility\",l=t?\"none\":\"hidden\",u=document.createElement(\"style\");return u.innerHTML=t?\"* { pointer-events: all }\":\"* { visibility: visible }\",function(e,t){var r,n,a,o=[],i=[];for(document.head.appendChild(u);(r=document.elementFromPoint(e,t))&&-1===o.indexOf(r);)o.push(r),i.push({value:r.style.getPropertyValue(s),priority:r.style.getPropertyPriority(s)}),r.style.setProperty(s,l,\"important\");for(o.indexOf(document.documentElement)<o.length-1&&(o.splice(o.indexOf(document.documentElement),1),o.push(document.documentElement)),n=i.length;a=i[--n];)o[n].style.setProperty(s,a.value?a.value:\"\",a.priority);return document.head.removeChild(u),o}},\"function\"==typeof window.addEventListener&&(document.elementsFromPoint=axe.utils.pollyfillElementsFromPoint()),Array.prototype.includes||Object.defineProperty(Array.prototype,\"includes\",{value:function(e,t){\"use strict\";var r=Object(this),n=parseInt(r.length,10)||0;if(0===n)return!1;var a,o,i=parseInt(t,10)||0;for(0<=i?a=i:(a=n+i)<0&&(a=0);a<n;){if(e===(o=r[a])||e!=e&&o!=o)return!0;a++}return!1}}),Array.prototype.some||Object.defineProperty(Array.prototype,\"some\",{value:function(e,t){\"use strict\";if(null==this)throw new TypeError(\"Array.prototype.some called on null or undefined\");if(\"function\"!=typeof e)throw new TypeError;for(var r=Object(this),n=r.length>>>0,a=2<=arguments.length?t:void 0,o=0;o<n;o++)if(o in r&&e.call(a,r[o],o,r))return!0;return!1}}),Array.from||Object.defineProperty(Array,\"from\",{value:(Te=Object.prototype.toString,Ne=Math.pow(2,53)-1,function(e,t,r){var n=Object(e);if(null==e)throw new TypeError(\"Array.from requires an array-like object - not null or undefined\");var a,o=1<arguments.length?t:void 0;if(void 0!==o){if(!Me(o))throw new TypeError(\"Array.from: when provided, the second argument must be a function\");2<arguments.length&&(a=r)}for(var i,s=Ve(n.length),l=Me(this)?Object(new this(s)):new Array(s),u=0;u<s;)i=n[u],l[u]=o?void 0===a?o(i,u):o.call(a,i,u):i,u+=1;return l.length=s,l})}),String.prototype.includes||(String.prototype.includes=function(e,t){return\"number\"!=typeof t&&(t=0),!(t+e.length>this.length)&&-1!==this.indexOf(e,t)}),axe.utils.preloadCssom=function(e){var t,r,n,a=e.treeRoot,o=void 0===a?axe._tree[0]:a,i=(t=o,r=[],n=axe.utils.querySelectorAllFilter(t,\"*\",function(e){return!r.includes(e.shadowId)&&(r.push(e.shadowId),!0)}).map(function(e){return{shadowId:e.shadowId,rootNode:axe.utils.getRootNode(e.actualNode)}}),axe.utils.uniqueArray(n,[]));if(!i.length)return Promise.resolve();var u,c,s=document.implementation.createHTMLDocument(\"Dynamic document for loading cssom\"),l=axe.utils.getStyleSheetFactory(s);return u=l,c=[],i.forEach(function(e,t){var r=e.rootNode,n=e.shadowId,a=function(e,t,r){return function(e){var t=[];return e.filter(function(e){return!e.href||!t.includes(e.href)&&(t.push(e.href),!0)})}(11===e.nodeType&&t?function(o,i){return Array.from(o.children).filter(Ue).reduce(function(e,t){var r=t.nodeName.toUpperCase(),n=\"STYLE\"===r?t.textContent:t,a=i({data:n,isLink:\"LINK\"===r,root:o});return e.push(a.sheet),e},[])}(e,r):function(e){return Array.from(e.styleSheets).filter(function(e){return He(e.media.mediaText)})}(e))}(r,n,u);if(!a)return Promise.all(c);var o=t+1,i={rootNode:r,shadowId:n,convertDataToStylesheet:u,rootIndex:o},s=[],l=Promise.all(a.map(function(e,t){var r=[o,t];return axe.utils.parseStylesheet(e,i,r,s)}));c.push(l)}),Promise.all(c).then(function(e){return function r(e){return e.reduce(function(e,t){return Array.isArray(t)?e.concat(r(t)):e.concat(t)},[])}(e)})},axe.utils.preloadMedia=function(e){var t=e.treeRoot,r=void 0===t?axe._tree[0]:t,n=axe.utils.querySelectorAllFilter(r,\"video, audio\",function(e){var t=e.actualNode;return t.hasAttribute(\"src\")?!!t.getAttribute(\"src\"):!(Array.from(t.getElementsByTagName(\"source\")).filter(function(e){return!!e.getAttribute(\"src\")}).length<=0)});return Promise.all(n.map(function(e){var r,t=e.actualNode;return r=t,new Promise(function(t){0<r.readyState&&t(r),r.addEventListener(\"loadedmetadata\",function e(){r.removeEventListener(\"loadedmetadata\",e),t(r)})})}))},axe.utils.shouldPreload=function(e){return!e||void 0===e.preload||null===e.preload||(\"boolean\"==typeof e.preload?e.preload:(t=e.preload,\"object\"===W(t)&&Array.isArray(t.assets)));var t},axe.utils.getPreloadConfig=function(e){var t=axe.constants.preload,r=t.assets,n=t.timeout,a={assets:r,timeout:n};if(!e.preload)return a;if(\"boolean\"==typeof e.preload)return a;if(!e.preload.assets.every(function(e){return r.includes(e.toLowerCase())}))throw new Error(\"Requested assets, not supported. \"+\"Supported assets are: \".concat(r.join(\", \"),\".\"));return a.assets=axe.utils.uniqueArray(e.preload.assets.map(function(e){return e.toLowerCase()}),[]),e.preload.timeout&&\"number\"==typeof e.preload.timeout&&!isNaN(e.preload.timeout)&&(a.timeout=e.preload.timeout),a},axe.utils.preload=function(i){var s={cssom:axe.utils.preloadCssom,media:axe.utils.preloadMedia};return axe.utils.shouldPreload(i)?new Promise(function(r,t){var e=axe.utils.getPreloadConfig(i),n=e.assets,a=e.timeout,o=setTimeout(function(){return t(new Error(\"Preload assets timed out.\"))},a);Promise.all(n.map(function(a){return s[a](i).then(function(e){return n=e,(r=a)in(t={})?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t;var t,r,n})})).then(function(e){var t=e.reduce(function(e,t){return Y({},e,{},t)},{});clearTimeout(o),r(t)}).catch(function(e){clearTimeout(o),t(e)})}):Promise.resolve()};var $e,Ge=/\\$\\{\\s?data\\s?\\}/g;function We(e,t){if(\"string\"==typeof t)return e.replace(Ge,t);for(var r in t)if(t.hasOwnProperty(r)){var n=new RegExp(\"\\\\${\\\\s?data\\\\.\"+r+\"\\\\s?}\",\"g\");e=e.replace(n,t[r])}return e}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function Ye(a,o){\"use strict\";return function(e){var t=a[e.id]||{},r=t.messages||{},n=Object.assign({},t);delete n.messages,void 0===e.result?(\"object\"!==W(r.incomplete)||Array.isArray(e.data)||(n.message=function(t,r){function n(e){return e.incomplete&&e.incomplete.default?e.incomplete.default:s.incompleteFallbackMessage()}if(!t||!t.missingData)return t&&t.messageKey?r.incomplete[t.messageKey]:n(r);try{var e=r.incomplete[t.missingData[0].reason];if(!e)throw new Error;return e}catch(e){return\"string\"==typeof t.missingData?r.incomplete[t.missingData]:n(r)}}(e.data,r)),n.message||(n.message=r.incomplete)):n.message=e.result===o?r.pass:r.fail,\"function\"!=typeof n.message&&(n.message=axe.utils.processMessage(n.message,e.data)),axe.utils.extendMetaData(e,n)}}function Ke(e,t,r,n){var a={vNodes:e.slice(),anyLevel:t,thisLevel:r,parentShadowId:n};return a.vNodes.reverse(),a}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function Xe(t,e){\"use strict\";var r,n,a=axe._audit&&axe._audit.tagExclude?axe._audit.tagExclude:[];return n=e.hasOwnProperty(\"include\")||e.hasOwnProperty(\"exclude\")?(r=e.include||[],r=Array.isArray(r)?r:[r],n=e.exclude||[],(n=Array.isArray(n)?n:[n]).concat(a.filter(function(e){return-1===r.indexOf(e)}))):(r=Array.isArray(e)?e:[e],a.filter(function(e){return-1===r.indexOf(e)})),!!(r.some(function(e){return-1!==t.tags.indexOf(e)})||0===r.length&&!1!==t.enabled)&&n.every(function(e){return-1===t.tags.indexOf(e)})}function Je(e){\"use strict\";return e.sort(function(e,t){return axe.utils.contains(e,t)?1:-1})[0]}function Ze(t,e){\"use strict\";var r=e.include&&Je(e.include.filter(function(e){return axe.utils.contains(e,t)})),n=e.exclude&&Je(e.exclude.filter(function(e){return axe.utils.contains(e,t)}));return!!(!n&&r||n&&axe.utils.contains(n,r))}function Qe(e,t){\"use strict\";var r;if(0===e.length)return t;e.length<t.length&&(r=e,e=t,t=r);for(var n=0,a=t.length;n<a;n++)e.includes(t[n])||e.push(t[n]);return e}axe.utils.processMessage=function e(t,r){if(t){if(Array.isArray(r))return(r.values=r.join(\", \"),\"string\"!=typeof t.singular||\"string\"!=typeof t.plural)?We(t,r):We(1===r.length?t.singular:t.plural,r);if(\"string\"==typeof t)return We(t,r);if(\"string\"==typeof r)return We(t[r],r);var n=t.default||s.incompleteFallbackMessage();return r&&r.messageKey&&t[r.messageKey]&&(n=t[r.messageKey]),e(n,r)}},axe.utils.publishMetaData=function(e){\"use strict\";var t=axe._audit.data.checks||{},r=axe._audit.data.rules||{},n=axe.utils.findBy(axe._audit.rules,\"id\",e.id)||{};e.tags=axe.utils.clone(n.tags||[]);var a=Ye(t,!0),o=Ye(t,!1);e.nodes.forEach(function(e){e.any.forEach(a),e.all.forEach(a),e.none.forEach(o)}),axe.utils.extendMetaData(e,axe.utils.clone(r[e.id]||{}))},axe.utils.querySelectorAll=function(e,t){return axe.utils.querySelectorAllFilter(e,t)},axe.utils.querySelectorAllFilter=function(e,t,r){return function(e,t,r){for(var n=[],a=Ke(Array.isArray(e)?e:[e],t,[],e[0].shadowId),o=[];a.vNodes.length;){for(var i=a.vNodes.pop(),s=[],l=[],u=a.anyLevel.slice().concat(a.thisLevel),c=!1,d=0;d<u.length;d++){var p=u[d];if((!p[0].id||i.shadowId===a.parentShadowId)&&axe.utils.matchesExpression(i,p[0]))if(1===p.length)c||r&&!r(i)||(o.push(i),c=!0);else{var m=p.slice(1);if(!1===[\" \",\">\"].includes(m[0].combinator))throw new Error(\"axe.utils.querySelectorAll does not support the combinator: \"+p[1].combinator);\">\"===m[0].combinator?s.push(m):l.push(m)}p[0].id&&i.shadowId!==a.parentShadowId||!a.anyLevel.includes(p)||l.push(p)}for(i.children&&i.children.length&&(n.push(a),a=Ke(i.children,l,s,i.shadowId));!a.vNodes.length&&n.length;)a=n.pop()}return o}(e=Array.isArray(e)?e:[e],axe.utils.convertSelector(t),r)},function(){\"use strict\";function p(){}function m(e){if(\"function\"!=typeof e)throw new TypeError(\"Queue methods require functions as arguments\")}axe.utils.queue=function(){function t(e){n=e,setTimeout(function(){null!=n&&axe.log(\"Uncaught error (of queue)\",n)},1)}var n,a=[],o=0,i=0,r=p,s=!1,l=t;function u(t){return function(e){a[t]=e,--i||r===p||(s=!0,r(a))}}function c(e){return r=p,l(e),a}var d={defer:function(e){if(\"object\"===W(e)&&e.then&&e.catch){var r=e;e=function(e,t){r.then(e).catch(t)}}if(m(e),void 0===n){if(s)throw new Error(\"Queue already completed\");return a.push(e),++i,function(){for(var e=a.length;o<e;o++){var t=a[o];try{t.call(null,u(o),c)}catch(e){c(e)}}}(),d}},then:function(e){if(m(e),r!==p)throw new Error(\"queue `then` already set\");return n||(r=e,i||(s=!0,r(a))),d},catch:function(e){if(m(e),l!==t)throw new Error(\"queue `catch` already set\");return n?(e(n),n=null):l=e,d},abort:c};return d}}(),function(e){\"use strict\";var u={},i={},s=Object.freeze([\"EvalError\",\"RangeError\",\"ReferenceError\",\"SyntaxError\",\"TypeError\",\"URIError\"]);function c(){var e=\"axeAPI\",t=\"\";return void 0!==axe&&axe._audit&&axe._audit.application&&(e=axe._audit.application),void 0!==axe&&(t=axe.version),e+\".\"+t}function l(e,t,r,n,a,o){var i;r instanceof Error&&(i={name:r.name,message:r.message,stack:r.stack},r=void 0);var s={uuid:n,topic:t,message:r,error:i,_respondable:!0,_source:c(),_axeuuid:axe._uuid,_keepalive:a},l=axe._cache.get(\"axeRespondables\");l||(l={},axe._cache.set(\"axeRespondables\",l)),l[n]=!0,\"function\"==typeof o&&(u[n]=o),e.postMessage(JSON.stringify(s),\"*\")}function t(e,t,r,n,a){l(e,t,r,$e.v1(),n,a)}function d(n,a,o){return function(e,t,r){l(n,a,e,o,t,r)}}function o(e){var t;if(\"string\"==typeof e){try{t=JSON.parse(e)}catch(e){}var r,n,a,o;if(function(e){if(\"object\"===W(e)&&\"string\"==typeof e.uuid&&!0===e._respondable){var t=c();return e._source===t||\"axeAPI.x.y.z\"===e._source||\"axeAPI.x.y.z\"===t}}(t))return\"object\"===W(t.error)?t.error=(r=t.error,n=r.message||\"Unknown error occurred\",a=s.includes(r.name)?r.name:\"Error\",o=window[a]||Error,r.stack&&(n+=\"\\n\"+r.stack.replace(r.message,\"\")),new o(n)):t.error=void 0,t}}t.subscribe=function(e,t){i[e]=t},t.isInFrame=function(e){return!!(e=e||window).frameElement},\"function\"==typeof window.addEventListener&&window.addEventListener(\"message\",function(t){var e=o(t.data);if(e&&e._axeuuid){var r=e.uuid;if(!(axe._cache.get(\"axeRespondables\")||{})[r]||e._axeuuid!==axe._uuid){var n=e._keepalive,a=u[r];if(a)a(e.error||e.message,n,d(t.source,e.topic,r)),n||delete u[r];if(!e.error)try{!function(e,t,r){var n=t.topic,a=i[n];if(a){var o=d(e,null,t.uuid);a(t.message,r,o)}}(t.source,e,n)}catch(e){l(t.source,null,e,r,!1)}}}},!1),e.respondable=t}(utils),axe.utils.ruleShouldRun=function(e,t,r){\"use strict\";var n=r.runOnly||{},a=(r.rules||{})[e.id];return!(e.pageLevel&&!t.page)&&(\"rule\"===n.type?-1!==n.values.indexOf(e.id):a&&\"boolean\"==typeof a.enabled?a.enabled:\"tag\"===n.type&&n.values?Xe(e,n.values):Xe(e,[]))},axe.utils.getScrollState=function(e){var t=0<arguments.length&&void 0!==e?e:window,r=t.document.documentElement;return[void 0!==t.pageXOffset?{elm:t,top:t.pageYOffset,left:t.pageXOffset}:{elm:r,top:r.scrollTop,left:r.scrollLeft}].concat(function n(e){return Array.from(e.children||e.childNodes||[]).reduce(function(e,t){var r=axe.utils.getScroll(t);return r&&e.push(r),e.concat(n(t))},[])}(document.body))},axe.utils.setScrollState=function(e){e.forEach(function(e){return function(e,t,r){if(e===window)return e.scroll(r,t);e.scrollTop=t,e.scrollLeft=r}(e.elm,e.top,e.left)})},axe.utils.select=function(e,t){\"use strict\";var r,n=[];if(axe._selectCache)for(var a=0,o=axe._selectCache.length;a<o;a++){var i=axe._selectCache[a];if(i.selector===e)return i.result}for(var s,l=function(e){return Ze(e,s)},u=(s=t).include.reduce(function(e,t){return e.length&&axe.utils.contains(e[e.length-1],t)||e.push(t),e},[]),c=0;c<u.length;c++)r=u[c],n=Qe(n,axe.utils.querySelectorAllFilter(r,e,l));return axe._selectCache&&axe._selectCache.push({selector:e,result:n}),n},axe.utils.toArray=function(e){\"use strict\";return Array.prototype.slice.call(e)},axe.utils.uniqueArray=function(e,t){return e.concat(t).filter(function(e,t,r){return r.indexOf(e)===t})},axe.utils.tokenList=function(e){\"use strict\";return e.trim().replace(/\\s{2,}/g,\" \").split(\" \")},function(e){var i,t=e.crypto||e.msCrypto;if(!i&&t&&t.getRandomValues){var r=new Uint8Array(16);i=function(){return t.getRandomValues(r),r}}if(!i){var n=new Array(16);i=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),n[t]=e>>>((3&t)<<3)&255;return n}}for(var s=\"function\"==typeof e.Buffer?e.Buffer:Array,a=[],o={},l=0;l<256;l++)a[l]=(l+256).toString(16).substr(1),o[a[l]]=l;function m(e,t){var r=t||0;return a[e[r++]]+a[e[r++]]+a[e[r++]]+a[e[r++]]+\"-\"+a[e[r++]]+a[e[r++]]+\"-\"+a[e[r++]]+a[e[r++]]+\"-\"+a[e[r++]]+a[e[r++]]+\"-\"+a[e[r++]]+a[e[r++]]+a[e[r++]]+a[e[r++]]+a[e[r++]]+a[e[r++]]}var u=i(),f=[1|u[0],u[1],u[2],u[3],u[4],u[5]],h=16383&(u[6]<<8|u[7]),b=0,g=0;function c(e,t,r){var n=t&&r||0,a=t||[],o=null!=(e=e||{}).clockseq?e.clockseq:h,i=null!=e.msecs?e.msecs:(new Date).getTime(),s=null!=e.nsecs?e.nsecs:g+1,l=i-b+(s-g)/1e4;if(l<0&&null==e.clockseq&&(o=o+1&16383),(l<0||b<i)&&null==e.nsecs&&(s=0),1e4<=s)throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");b=i,h=o;var u=(1e4*(268435455&(i+=122192928e5))+(g=s))%4294967296;a[n++]=u>>>24&255,a[n++]=u>>>16&255,a[n++]=u>>>8&255,a[n++]=255&u;var c=i/4294967296*1e4&268435455;a[n++]=c>>>8&255,a[n++]=255&c,a[n++]=c>>>24&15|16,a[n++]=c>>>16&255,a[n++]=o>>>8|128,a[n++]=255&o;for(var d=e.node||f,p=0;p<6;p++)a[n+p]=d[p];return t||m(a)}function d(e,t,r){var n=t&&r||0;\"string\"==typeof e&&(t=\"binary\"==e?new s(16):null,e=null);var a=(e=e||{}).random||(e.rng||i)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var o=0;o<16;o++)t[n+o]=a[o];return t||m(a)}($e=d).v1=c,$e.v4=d,$e.parse=function(e,t,r){var n=t&&r||0,a=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){a<16&&(t[n+a++]=o[e])});a<16;)t[n+a++]=0;return t},$e.unparse=m,$e.BufferClass=s,axe._uuid=c()}(window),axe.utils.validInputTypes=function(){\"use strict\";return[\"hidden\",\"text\",\"search\",\"tel\",\"url\",\"email\",\"password\",\"date\",\"month\",\"week\",\"time\",\"datetime-local\",\"number\",\"range\",\"color\",\"checkbox\",\"radio\",\"file\",\"submit\",\"image\",\"reset\",\"button\"]};var et=[\"aa\",\"ab\",\"ae\",\"af\",\"ak\",\"am\",\"an\",\"ar\",\"as\",\"av\",\"ay\",\"az\",\"ba\",\"be\",\"bg\",\"bh\",\"bi\",\"bm\",\"bn\",\"bo\",\"br\",\"bs\",\"ca\",\"ce\",\"ch\",\"co\",\"cr\",\"cs\",\"cu\",\"cv\",\"cy\",\"da\",\"de\",\"dv\",\"dz\",\"ee\",\"el\",\"en\",\"eo\",\"es\",\"et\",\"eu\",\"fa\",\"ff\",\"fi\",\"fj\",\"fo\",\"fr\",\"fy\",\"ga\",\"gd\",\"gl\",\"gn\",\"gu\",\"gv\",\"ha\",\"he\",\"hi\",\"ho\",\"hr\",\"ht\",\"hu\",\"hy\",\"hz\",\"ia\",\"id\",\"ie\",\"ig\",\"ii\",\"ik\",\"in\",\"io\",\"is\",\"it\",\"iu\",\"iw\",\"ja\",\"ji\",\"jv\",\"jw\",\"ka\",\"kg\",\"ki\",\"kj\",\"kk\",\"kl\",\"km\",\"kn\",\"ko\",\"kr\",\"ks\",\"ku\",\"kv\",\"kw\",\"ky\",\"la\",\"lb\",\"lg\",\"li\",\"ln\",\"lo\",\"lt\",\"lu\",\"lv\",\"mg\",\"mh\",\"mi\",\"mk\",\"ml\",\"mn\",\"mo\",\"mr\",\"ms\",\"mt\",\"my\",\"na\",\"nb\",\"nd\",\"ne\",\"ng\",\"nl\",\"nn\",\"no\",\"nr\",\"nv\",\"ny\",\"oc\",\"oj\",\"om\",\"or\",\"os\",\"pa\",\"pi\",\"pl\",\"ps\",\"pt\",\"qu\",\"rm\",\"rn\",\"ro\",\"ru\",\"rw\",\"sa\",\"sc\",\"sd\",\"se\",\"sg\",\"sh\",\"si\",\"sk\",\"sl\",\"sm\",\"sn\",\"so\",\"sq\",\"sr\",\"ss\",\"st\",\"su\",\"sv\",\"sw\",\"ta\",\"te\",\"tg\",\"th\",\"ti\",\"tk\",\"tl\",\"tn\",\"to\",\"tr\",\"ts\",\"tt\",\"tw\",\"ty\",\"ug\",\"uk\",\"ur\",\"uz\",\"ve\",\"vi\",\"vo\",\"wa\",\"wo\",\"xh\",\"yi\",\"yo\",\"za\",\"zh\",\"zu\",\"aaa\",\"aab\",\"aac\",\"aad\",\"aae\",\"aaf\",\"aag\",\"aah\",\"aai\",\"aak\",\"aal\",\"aam\",\"aan\",\"aao\",\"aap\",\"aaq\",\"aas\",\"aat\",\"aau\",\"aav\",\"aaw\",\"aax\",\"aaz\",\"aba\",\"abb\",\"abc\",\"abd\",\"abe\",\"abf\",\"abg\",\"abh\",\"abi\",\"abj\",\"abl\",\"abm\",\"abn\",\"abo\",\"abp\",\"abq\",\"abr\",\"abs\",\"abt\",\"abu\",\"abv\",\"abw\",\"abx\",\"aby\",\"abz\",\"aca\",\"acb\",\"acd\",\"ace\",\"acf\",\"ach\",\"aci\",\"ack\",\"acl\",\"acm\",\"acn\",\"acp\",\"acq\",\"acr\",\"acs\",\"act\",\"acu\",\"acv\",\"acw\",\"acx\",\"acy\",\"acz\",\"ada\",\"adb\",\"add\",\"ade\",\"adf\",\"adg\",\"adh\",\"adi\",\"adj\",\"adl\",\"adn\",\"ado\",\"adp\",\"adq\",\"adr\",\"ads\",\"adt\",\"adu\",\"adw\",\"adx\",\"ady\",\"adz\",\"aea\",\"aeb\",\"aec\",\"aed\",\"aee\",\"aek\",\"ael\",\"aem\",\"aen\",\"aeq\",\"aer\",\"aes\",\"aeu\",\"aew\",\"aey\",\"aez\",\"afa\",\"afb\",\"afd\",\"afe\",\"afg\",\"afh\",\"afi\",\"afk\",\"afn\",\"afo\",\"afp\",\"afs\",\"aft\",\"afu\",\"afz\",\"aga\",\"agb\",\"agc\",\"agd\",\"age\",\"agf\",\"agg\",\"agh\",\"agi\",\"agj\",\"agk\",\"agl\",\"agm\",\"agn\",\"ago\",\"agp\",\"agq\",\"agr\",\"ags\",\"agt\",\"agu\",\"agv\",\"agw\",\"agx\",\"agy\",\"agz\",\"aha\",\"ahb\",\"ahg\",\"ahh\",\"ahi\",\"ahk\",\"ahl\",\"ahm\",\"ahn\",\"aho\",\"ahp\",\"ahr\",\"ahs\",\"aht\",\"aia\",\"aib\",\"aic\",\"aid\",\"aie\",\"aif\",\"aig\",\"aih\",\"aii\",\"aij\",\"aik\",\"ail\",\"aim\",\"ain\",\"aio\",\"aip\",\"aiq\",\"air\",\"ais\",\"ait\",\"aiw\",\"aix\",\"aiy\",\"aja\",\"ajg\",\"aji\",\"ajn\",\"ajp\",\"ajt\",\"aju\",\"ajw\",\"ajz\",\"akb\",\"akc\",\"akd\",\"ake\",\"akf\",\"akg\",\"akh\",\"aki\",\"akj\",\"akk\",\"akl\",\"akm\",\"ako\",\"akp\",\"akq\",\"akr\",\"aks\",\"akt\",\"aku\",\"akv\",\"akw\",\"akx\",\"aky\",\"akz\",\"ala\",\"alc\",\"ald\",\"ale\",\"alf\",\"alg\",\"alh\",\"ali\",\"alj\",\"alk\",\"all\",\"alm\",\"aln\",\"alo\",\"alp\",\"alq\",\"alr\",\"als\",\"alt\",\"alu\",\"alv\",\"alw\",\"alx\",\"aly\",\"alz\",\"ama\",\"amb\",\"amc\",\"ame\",\"amf\",\"amg\",\"ami\",\"amj\",\"amk\",\"aml\",\"amm\",\"amn\",\"amo\",\"amp\",\"amq\",\"amr\",\"ams\",\"amt\",\"amu\",\"amv\",\"amw\",\"amx\",\"amy\",\"amz\",\"ana\",\"anb\",\"anc\",\"and\",\"ane\",\"anf\",\"ang\",\"anh\",\"ani\",\"anj\",\"ank\",\"anl\",\"anm\",\"ann\",\"ano\",\"anp\",\"anq\",\"anr\",\"ans\",\"ant\",\"anu\",\"anv\",\"anw\",\"anx\",\"any\",\"anz\",\"aoa\",\"aob\",\"aoc\",\"aod\",\"aoe\",\"aof\",\"aog\",\"aoh\",\"aoi\",\"aoj\",\"aok\",\"aol\",\"aom\",\"aon\",\"aor\",\"aos\",\"aot\",\"aou\",\"aox\",\"aoz\",\"apa\",\"apb\",\"apc\",\"apd\",\"ape\",\"apf\",\"apg\",\"aph\",\"api\",\"apj\",\"apk\",\"apl\",\"apm\",\"apn\",\"apo\",\"app\",\"apq\",\"apr\",\"aps\",\"apt\",\"apu\",\"apv\",\"apw\",\"apx\",\"apy\",\"apz\",\"aqa\",\"aqc\",\"aqd\",\"aqg\",\"aql\",\"aqm\",\"aqn\",\"aqp\",\"aqr\",\"aqt\",\"aqz\",\"arb\",\"arc\",\"ard\",\"are\",\"arh\",\"ari\",\"arj\",\"ark\",\"arl\",\"arn\",\"aro\",\"arp\",\"arq\",\"arr\",\"ars\",\"art\",\"aru\",\"arv\",\"arw\",\"arx\",\"ary\",\"arz\",\"asa\",\"asb\",\"asc\",\"asd\",\"ase\",\"asf\",\"asg\",\"ash\",\"asi\",\"asj\",\"ask\",\"asl\",\"asn\",\"aso\",\"asp\",\"asq\",\"asr\",\"ass\",\"ast\",\"asu\",\"asv\",\"asw\",\"asx\",\"asy\",\"asz\",\"ata\",\"atb\",\"atc\",\"atd\",\"ate\",\"atg\",\"ath\",\"ati\",\"atj\",\"atk\",\"atl\",\"atm\",\"atn\",\"ato\",\"atp\",\"atq\",\"atr\",\"ats\",\"att\",\"atu\",\"atv\",\"atw\",\"atx\",\"aty\",\"atz\",\"aua\",\"aub\",\"auc\",\"aud\",\"aue\",\"auf\",\"aug\",\"auh\",\"aui\",\"auj\",\"auk\",\"aul\",\"aum\",\"aun\",\"auo\",\"aup\",\"auq\",\"aur\",\"aus\",\"aut\",\"auu\",\"auw\",\"aux\",\"auy\",\"auz\",\"avb\",\"avd\",\"avi\",\"avk\",\"avl\",\"avm\",\"avn\",\"avo\",\"avs\",\"avt\",\"avu\",\"avv\",\"awa\",\"awb\",\"awc\",\"awd\",\"awe\",\"awg\",\"awh\",\"awi\",\"awk\",\"awm\",\"awn\",\"awo\",\"awr\",\"aws\",\"awt\",\"awu\",\"awv\",\"aww\",\"awx\",\"awy\",\"axb\",\"axe\",\"axg\",\"axk\",\"axl\",\"axm\",\"axx\",\"aya\",\"ayb\",\"ayc\",\"ayd\",\"aye\",\"ayg\",\"ayh\",\"ayi\",\"ayk\",\"ayl\",\"ayn\",\"ayo\",\"ayp\",\"ayq\",\"ayr\",\"ays\",\"ayt\",\"ayu\",\"ayx\",\"ayy\",\"ayz\",\"aza\",\"azb\",\"azc\",\"azd\",\"azg\",\"azj\",\"azm\",\"azn\",\"azo\",\"azt\",\"azz\",\"baa\",\"bab\",\"bac\",\"bad\",\"bae\",\"baf\",\"bag\",\"bah\",\"bai\",\"baj\",\"bal\",\"ban\",\"bao\",\"bap\",\"bar\",\"bas\",\"bat\",\"bau\",\"bav\",\"baw\",\"bax\",\"bay\",\"baz\",\"bba\",\"bbb\",\"bbc\",\"bbd\",\"bbe\",\"bbf\",\"bbg\",\"bbh\",\"bbi\",\"bbj\",\"bbk\",\"bbl\",\"bbm\",\"bbn\",\"bbo\",\"bbp\",\"bbq\",\"bbr\",\"bbs\",\"bbt\",\"bbu\",\"bbv\",\"bbw\",\"bbx\",\"bby\",\"bbz\",\"bca\",\"bcb\",\"bcc\",\"bcd\",\"bce\",\"bcf\",\"bcg\",\"bch\",\"bci\",\"bcj\",\"bck\",\"bcl\",\"bcm\",\"bcn\",\"bco\",\"bcp\",\"bcq\",\"bcr\",\"bcs\",\"bct\",\"bcu\",\"bcv\",\"bcw\",\"bcy\",\"bcz\",\"bda\",\"bdb\",\"bdc\",\"bdd\",\"bde\",\"bdf\",\"bdg\",\"bdh\",\"bdi\",\"bdj\",\"bdk\",\"bdl\",\"bdm\",\"bdn\",\"bdo\",\"bdp\",\"bdq\",\"bdr\",\"bds\",\"bdt\",\"bdu\",\"bdv\",\"bdw\",\"bdx\",\"bdy\",\"bdz\",\"bea\",\"beb\",\"bec\",\"bed\",\"bee\",\"bef\",\"beg\",\"beh\",\"bei\",\"bej\",\"bek\",\"bem\",\"beo\",\"bep\",\"beq\",\"ber\",\"bes\",\"bet\",\"beu\",\"bev\",\"bew\",\"bex\",\"bey\",\"bez\",\"bfa\",\"bfb\",\"bfc\",\"bfd\",\"bfe\",\"bff\",\"bfg\",\"bfh\",\"bfi\",\"bfj\",\"bfk\",\"bfl\",\"bfm\",\"bfn\",\"bfo\",\"bfp\",\"bfq\",\"bfr\",\"bfs\",\"bft\",\"bfu\",\"bfw\",\"bfx\",\"bfy\",\"bfz\",\"bga\",\"bgb\",\"bgc\",\"bgd\",\"bge\",\"bgf\",\"bgg\",\"bgi\",\"bgj\",\"bgk\",\"bgl\",\"bgm\",\"bgn\",\"bgo\",\"bgp\",\"bgq\",\"bgr\",\"bgs\",\"bgt\",\"bgu\",\"bgv\",\"bgw\",\"bgx\",\"bgy\",\"bgz\",\"bha\",\"bhb\",\"bhc\",\"bhd\",\"bhe\",\"bhf\",\"bhg\",\"bhh\",\"bhi\",\"bhj\",\"bhk\",\"bhl\",\"bhm\",\"bhn\",\"bho\",\"bhp\",\"bhq\",\"bhr\",\"bhs\",\"bht\",\"bhu\",\"bhv\",\"bhw\",\"bhx\",\"bhy\",\"bhz\",\"bia\",\"bib\",\"bic\",\"bid\",\"bie\",\"bif\",\"big\",\"bij\",\"bik\",\"bil\",\"bim\",\"bin\",\"bio\",\"bip\",\"biq\",\"bir\",\"bit\",\"biu\",\"biv\",\"biw\",\"bix\",\"biy\",\"biz\",\"bja\",\"bjb\",\"bjc\",\"bjd\",\"bje\",\"bjf\",\"bjg\",\"bjh\",\"bji\",\"bjj\",\"bjk\",\"bjl\",\"bjm\",\"bjn\",\"bjo\",\"bjp\",\"bjq\",\"bjr\",\"bjs\",\"bjt\",\"bju\",\"bjv\",\"bjw\",\"bjx\",\"bjy\",\"bjz\",\"bka\",\"bkb\",\"bkc\",\"bkd\",\"bkf\",\"bkg\",\"bkh\",\"bki\",\"bkj\",\"bkk\",\"bkl\",\"bkm\",\"bkn\",\"bko\",\"bkp\",\"bkq\",\"bkr\",\"bks\",\"bkt\",\"bku\",\"bkv\",\"bkw\",\"bkx\",\"bky\",\"bkz\",\"bla\",\"blb\",\"blc\",\"bld\",\"ble\",\"blf\",\"blg\",\"blh\",\"bli\",\"blj\",\"blk\",\"bll\",\"blm\",\"bln\",\"blo\",\"blp\",\"blq\",\"blr\",\"bls\",\"blt\",\"blv\",\"blw\",\"blx\",\"bly\",\"blz\",\"bma\",\"bmb\",\"bmc\",\"bmd\",\"bme\",\"bmf\",\"bmg\",\"bmh\",\"bmi\",\"bmj\",\"bmk\",\"bml\",\"bmm\",\"bmn\",\"bmo\",\"bmp\",\"bmq\",\"bmr\",\"bms\",\"bmt\",\"bmu\",\"bmv\",\"bmw\",\"bmx\",\"bmy\",\"bmz\",\"bna\",\"bnb\",\"bnc\",\"bnd\",\"bne\",\"bnf\",\"bng\",\"bni\",\"bnj\",\"bnk\",\"bnl\",\"bnm\",\"bnn\",\"bno\",\"bnp\",\"bnq\",\"bnr\",\"bns\",\"bnt\",\"bnu\",\"bnv\",\"bnw\",\"bnx\",\"bny\",\"bnz\",\"boa\",\"bob\",\"boe\",\"bof\",\"bog\",\"boh\",\"boi\",\"boj\",\"bok\",\"bol\",\"bom\",\"bon\",\"boo\",\"bop\",\"boq\",\"bor\",\"bot\",\"bou\",\"bov\",\"bow\",\"box\",\"boy\",\"boz\",\"bpa\",\"bpb\",\"bpd\",\"bpg\",\"bph\",\"bpi\",\"bpj\",\"bpk\",\"bpl\",\"bpm\",\"bpn\",\"bpo\",\"bpp\",\"bpq\",\"bpr\",\"bps\",\"bpt\",\"bpu\",\"bpv\",\"bpw\",\"bpx\",\"bpy\",\"bpz\",\"bqa\",\"bqb\",\"bqc\",\"bqd\",\"bqf\",\"bqg\",\"bqh\",\"bqi\",\"bqj\",\"bqk\",\"bql\",\"bqm\",\"bqn\",\"bqo\",\"bqp\",\"bqq\",\"bqr\",\"bqs\",\"bqt\",\"bqu\",\"bqv\",\"bqw\",\"bqx\",\"bqy\",\"bqz\",\"bra\",\"brb\",\"brc\",\"brd\",\"brf\",\"brg\",\"brh\",\"bri\",\"brj\",\"brk\",\"brl\",\"brm\",\"brn\",\"bro\",\"brp\",\"brq\",\"brr\",\"brs\",\"brt\",\"bru\",\"brv\",\"brw\",\"brx\",\"bry\",\"brz\",\"bsa\",\"bsb\",\"bsc\",\"bse\",\"bsf\",\"bsg\",\"bsh\",\"bsi\",\"bsj\",\"bsk\",\"bsl\",\"bsm\",\"bsn\",\"bso\",\"bsp\",\"bsq\",\"bsr\",\"bss\",\"bst\",\"bsu\",\"bsv\",\"bsw\",\"bsx\",\"bsy\",\"bta\",\"btb\",\"btc\",\"btd\",\"bte\",\"btf\",\"btg\",\"bth\",\"bti\",\"btj\",\"btk\",\"btl\",\"btm\",\"btn\",\"bto\",\"btp\",\"btq\",\"btr\",\"bts\",\"btt\",\"btu\",\"btv\",\"btw\",\"btx\",\"bty\",\"btz\",\"bua\",\"bub\",\"buc\",\"bud\",\"bue\",\"buf\",\"bug\",\"buh\",\"bui\",\"buj\",\"buk\",\"bum\",\"bun\",\"buo\",\"bup\",\"buq\",\"bus\",\"but\",\"buu\",\"buv\",\"buw\",\"bux\",\"buy\",\"buz\",\"bva\",\"bvb\",\"bvc\",\"bvd\",\"bve\",\"bvf\",\"bvg\",\"bvh\",\"bvi\",\"bvj\",\"bvk\",\"bvl\",\"bvm\",\"bvn\",\"bvo\",\"bvp\",\"bvq\",\"bvr\",\"bvt\",\"bvu\",\"bvv\",\"bvw\",\"bvx\",\"bvy\",\"bvz\",\"bwa\",\"bwb\",\"bwc\",\"bwd\",\"bwe\",\"bwf\",\"bwg\",\"bwh\",\"bwi\",\"bwj\",\"bwk\",\"bwl\",\"bwm\",\"bwn\",\"bwo\",\"bwp\",\"bwq\",\"bwr\",\"bws\",\"bwt\",\"bwu\",\"bww\",\"bwx\",\"bwy\",\"bwz\",\"bxa\",\"bxb\",\"bxc\",\"bxd\",\"bxe\",\"bxf\",\"bxg\",\"bxh\",\"bxi\",\"bxj\",\"bxk\",\"bxl\",\"bxm\",\"bxn\",\"bxo\",\"bxp\",\"bxq\",\"bxr\",\"bxs\",\"bxu\",\"bxv\",\"bxw\",\"bxx\",\"bxz\",\"bya\",\"byb\",\"byc\",\"byd\",\"bye\",\"byf\",\"byg\",\"byh\",\"byi\",\"byj\",\"byk\",\"byl\",\"bym\",\"byn\",\"byo\",\"byp\",\"byq\",\"byr\",\"bys\",\"byt\",\"byv\",\"byw\",\"byx\",\"byy\",\"byz\",\"bza\",\"bzb\",\"bzc\",\"bzd\",\"bze\",\"bzf\",\"bzg\",\"bzh\",\"bzi\",\"bzj\",\"bzk\",\"bzl\",\"bzm\",\"bzn\",\"bzo\",\"bzp\",\"bzq\",\"bzr\",\"bzs\",\"bzt\",\"bzu\",\"bzv\",\"bzw\",\"bzx\",\"bzy\",\"bzz\",\"caa\",\"cab\",\"cac\",\"cad\",\"cae\",\"caf\",\"cag\",\"cah\",\"cai\",\"caj\",\"cak\",\"cal\",\"cam\",\"can\",\"cao\",\"cap\",\"caq\",\"car\",\"cas\",\"cau\",\"cav\",\"caw\",\"cax\",\"cay\",\"caz\",\"cba\",\"cbb\",\"cbc\",\"cbd\",\"cbe\",\"cbg\",\"cbh\",\"cbi\",\"cbj\",\"cbk\",\"cbl\",\"cbn\",\"cbo\",\"cbq\",\"cbr\",\"cbs\",\"cbt\",\"cbu\",\"cbv\",\"cbw\",\"cby\",\"cca\",\"ccc\",\"ccd\",\"cce\",\"ccg\",\"cch\",\"ccj\",\"ccl\",\"ccm\",\"ccn\",\"cco\",\"ccp\",\"ccq\",\"ccr\",\"ccs\",\"cda\",\"cdc\",\"cdd\",\"cde\",\"cdf\",\"cdg\",\"cdh\",\"cdi\",\"cdj\",\"cdm\",\"cdn\",\"cdo\",\"cdr\",\"cds\",\"cdy\",\"cdz\",\"cea\",\"ceb\",\"ceg\",\"cek\",\"cel\",\"cen\",\"cet\",\"cfa\",\"cfd\",\"cfg\",\"cfm\",\"cga\",\"cgc\",\"cgg\",\"cgk\",\"chb\",\"chc\",\"chd\",\"chf\",\"chg\",\"chh\",\"chj\",\"chk\",\"chl\",\"chm\",\"chn\",\"cho\",\"chp\",\"chq\",\"chr\",\"cht\",\"chw\",\"chx\",\"chy\",\"chz\",\"cia\",\"cib\",\"cic\",\"cid\",\"cie\",\"cih\",\"cik\",\"cim\",\"cin\",\"cip\",\"cir\",\"ciw\",\"ciy\",\"cja\",\"cje\",\"cjh\",\"cji\",\"cjk\",\"cjm\",\"cjn\",\"cjo\",\"cjp\",\"cjr\",\"cjs\",\"cjv\",\"cjy\",\"cka\",\"ckb\",\"ckh\",\"ckl\",\"ckn\",\"cko\",\"ckq\",\"ckr\",\"cks\",\"ckt\",\"cku\",\"ckv\",\"ckx\",\"cky\",\"ckz\",\"cla\",\"clc\",\"cld\",\"cle\",\"clh\",\"cli\",\"clj\",\"clk\",\"cll\",\"clm\",\"clo\",\"clt\",\"clu\",\"clw\",\"cly\",\"cma\",\"cmc\",\"cme\",\"cmg\",\"cmi\",\"cmk\",\"cml\",\"cmm\",\"cmn\",\"cmo\",\"cmr\",\"cms\",\"cmt\",\"cna\",\"cnb\",\"cnc\",\"cng\",\"cnh\",\"cni\",\"cnk\",\"cnl\",\"cno\",\"cnr\",\"cns\",\"cnt\",\"cnu\",\"cnw\",\"cnx\",\"coa\",\"cob\",\"coc\",\"cod\",\"coe\",\"cof\",\"cog\",\"coh\",\"coj\",\"cok\",\"col\",\"com\",\"con\",\"coo\",\"cop\",\"coq\",\"cot\",\"cou\",\"cov\",\"cow\",\"cox\",\"coy\",\"coz\",\"cpa\",\"cpb\",\"cpc\",\"cpe\",\"cpf\",\"cpg\",\"cpi\",\"cpn\",\"cpo\",\"cpp\",\"cps\",\"cpu\",\"cpx\",\"cpy\",\"cqd\",\"cqu\",\"cra\",\"crb\",\"crc\",\"crd\",\"crf\",\"crg\",\"crh\",\"cri\",\"crj\",\"crk\",\"crl\",\"crm\",\"crn\",\"cro\",\"crp\",\"crq\",\"crr\",\"crs\",\"crt\",\"crv\",\"crw\",\"crx\",\"cry\",\"crz\",\"csa\",\"csb\",\"csc\",\"csd\",\"cse\",\"csf\",\"csg\",\"csh\",\"csi\",\"csj\",\"csk\",\"csl\",\"csm\",\"csn\",\"cso\",\"csq\",\"csr\",\"css\",\"cst\",\"csu\",\"csv\",\"csw\",\"csy\",\"csz\",\"cta\",\"ctc\",\"ctd\",\"cte\",\"ctg\",\"cth\",\"ctl\",\"ctm\",\"ctn\",\"cto\",\"ctp\",\"cts\",\"ctt\",\"ctu\",\"ctz\",\"cua\",\"cub\",\"cuc\",\"cug\",\"cuh\",\"cui\",\"cuj\",\"cuk\",\"cul\",\"cum\",\"cuo\",\"cup\",\"cuq\",\"cur\",\"cus\",\"cut\",\"cuu\",\"cuv\",\"cuw\",\"cux\",\"cuy\",\"cvg\",\"cvn\",\"cwa\",\"cwb\",\"cwd\",\"cwe\",\"cwg\",\"cwt\",\"cya\",\"cyb\",\"cyo\",\"czh\",\"czk\",\"czn\",\"czo\",\"czt\",\"daa\",\"dac\",\"dad\",\"dae\",\"daf\",\"dag\",\"dah\",\"dai\",\"daj\",\"dak\",\"dal\",\"dam\",\"dao\",\"dap\",\"daq\",\"dar\",\"das\",\"dau\",\"dav\",\"daw\",\"dax\",\"day\",\"daz\",\"dba\",\"dbb\",\"dbd\",\"dbe\",\"dbf\",\"dbg\",\"dbi\",\"dbj\",\"dbl\",\"dbm\",\"dbn\",\"dbo\",\"dbp\",\"dbq\",\"dbr\",\"dbt\",\"dbu\",\"dbv\",\"dbw\",\"dby\",\"dcc\",\"dcr\",\"dda\",\"ddd\",\"dde\",\"ddg\",\"ddi\",\"ddj\",\"ddn\",\"ddo\",\"ddr\",\"dds\",\"ddw\",\"dec\",\"ded\",\"dee\",\"def\",\"deg\",\"deh\",\"dei\",\"dek\",\"del\",\"dem\",\"den\",\"dep\",\"deq\",\"der\",\"des\",\"dev\",\"dez\",\"dga\",\"dgb\",\"dgc\",\"dgd\",\"dge\",\"dgg\",\"dgh\",\"dgi\",\"dgk\",\"dgl\",\"dgn\",\"dgo\",\"dgr\",\"dgs\",\"dgt\",\"dgu\",\"dgw\",\"dgx\",\"dgz\",\"dha\",\"dhd\",\"dhg\",\"dhi\",\"dhl\",\"dhm\",\"dhn\",\"dho\",\"dhr\",\"dhs\",\"dhu\",\"dhv\",\"dhw\",\"dhx\",\"dia\",\"dib\",\"dic\",\"did\",\"dif\",\"dig\",\"dih\",\"dii\",\"dij\",\"dik\",\"dil\",\"dim\",\"din\",\"dio\",\"dip\",\"diq\",\"dir\",\"dis\",\"dit\",\"diu\",\"diw\",\"dix\",\"diy\",\"diz\",\"dja\",\"djb\",\"djc\",\"djd\",\"dje\",\"djf\",\"dji\",\"djj\",\"djk\",\"djl\",\"djm\",\"djn\",\"djo\",\"djr\",\"dju\",\"djw\",\"dka\",\"dkk\",\"dkl\",\"dkr\",\"dks\",\"dkx\",\"dlg\",\"dlk\",\"dlm\",\"dln\",\"dma\",\"dmb\",\"dmc\",\"dmd\",\"dme\",\"dmg\",\"dmk\",\"dml\",\"dmm\",\"dmn\",\"dmo\",\"dmr\",\"dms\",\"dmu\",\"dmv\",\"dmw\",\"dmx\",\"dmy\",\"dna\",\"dnd\",\"dne\",\"dng\",\"dni\",\"dnj\",\"dnk\",\"dnn\",\"dnr\",\"dnt\",\"dnu\",\"dnv\",\"dnw\",\"dny\",\"doa\",\"dob\",\"doc\",\"doe\",\"dof\",\"doh\",\"doi\",\"dok\",\"dol\",\"don\",\"doo\",\"dop\",\"doq\",\"dor\",\"dos\",\"dot\",\"dov\",\"dow\",\"dox\",\"doy\",\"doz\",\"dpp\",\"dra\",\"drb\",\"drc\",\"drd\",\"dre\",\"drg\",\"drh\",\"dri\",\"drl\",\"drn\",\"dro\",\"drq\",\"drr\",\"drs\",\"drt\",\"dru\",\"drw\",\"dry\",\"dsb\",\"dse\",\"dsh\",\"dsi\",\"dsl\",\"dsn\",\"dso\",\"dsq\",\"dta\",\"dtb\",\"dtd\",\"dth\",\"dti\",\"dtk\",\"dtm\",\"dtn\",\"dto\",\"dtp\",\"dtr\",\"dts\",\"dtt\",\"dtu\",\"dty\",\"dua\",\"dub\",\"duc\",\"dud\",\"due\",\"duf\",\"dug\",\"duh\",\"dui\",\"duj\",\"duk\",\"dul\",\"dum\",\"dun\",\"duo\",\"dup\",\"duq\",\"dur\",\"dus\",\"duu\",\"duv\",\"duw\",\"dux\",\"duy\",\"duz\",\"dva\",\"dwa\",\"dwl\",\"dwr\",\"dws\",\"dwu\",\"dww\",\"dwy\",\"dya\",\"dyb\",\"dyd\",\"dyg\",\"dyi\",\"dym\",\"dyn\",\"dyo\",\"dyu\",\"dyy\",\"dza\",\"dzd\",\"dze\",\"dzg\",\"dzl\",\"dzn\",\"eaa\",\"ebg\",\"ebk\",\"ebo\",\"ebr\",\"ebu\",\"ecr\",\"ecs\",\"ecy\",\"eee\",\"efa\",\"efe\",\"efi\",\"ega\",\"egl\",\"ego\",\"egx\",\"egy\",\"ehu\",\"eip\",\"eit\",\"eiv\",\"eja\",\"eka\",\"ekc\",\"eke\",\"ekg\",\"eki\",\"ekk\",\"ekl\",\"ekm\",\"eko\",\"ekp\",\"ekr\",\"eky\",\"ele\",\"elh\",\"eli\",\"elk\",\"elm\",\"elo\",\"elp\",\"elu\",\"elx\",\"ema\",\"emb\",\"eme\",\"emg\",\"emi\",\"emk\",\"emm\",\"emn\",\"emo\",\"emp\",\"ems\",\"emu\",\"emw\",\"emx\",\"emy\",\"ena\",\"enb\",\"enc\",\"end\",\"enf\",\"enh\",\"enl\",\"enm\",\"enn\",\"eno\",\"enq\",\"enr\",\"enu\",\"env\",\"enw\",\"enx\",\"eot\",\"epi\",\"era\",\"erg\",\"erh\",\"eri\",\"erk\",\"ero\",\"err\",\"ers\",\"ert\",\"erw\",\"ese\",\"esg\",\"esh\",\"esi\",\"esk\",\"esl\",\"esm\",\"esn\",\"eso\",\"esq\",\"ess\",\"esu\",\"esx\",\"esy\",\"etb\",\"etc\",\"eth\",\"etn\",\"eto\",\"etr\",\"ets\",\"ett\",\"etu\",\"etx\",\"etz\",\"euq\",\"eve\",\"evh\",\"evn\",\"ewo\",\"ext\",\"eya\",\"eyo\",\"eza\",\"eze\",\"faa\",\"fab\",\"fad\",\"faf\",\"fag\",\"fah\",\"fai\",\"faj\",\"fak\",\"fal\",\"fam\",\"fan\",\"fap\",\"far\",\"fat\",\"fau\",\"fax\",\"fay\",\"faz\",\"fbl\",\"fcs\",\"fer\",\"ffi\",\"ffm\",\"fgr\",\"fia\",\"fie\",\"fil\",\"fip\",\"fir\",\"fit\",\"fiu\",\"fiw\",\"fkk\",\"fkv\",\"fla\",\"flh\",\"fli\",\"fll\",\"fln\",\"flr\",\"fly\",\"fmp\",\"fmu\",\"fnb\",\"fng\",\"fni\",\"fod\",\"foi\",\"fom\",\"fon\",\"for\",\"fos\",\"fox\",\"fpe\",\"fqs\",\"frc\",\"frd\",\"frk\",\"frm\",\"fro\",\"frp\",\"frq\",\"frr\",\"frs\",\"frt\",\"fse\",\"fsl\",\"fss\",\"fub\",\"fuc\",\"fud\",\"fue\",\"fuf\",\"fuh\",\"fui\",\"fuj\",\"fum\",\"fun\",\"fuq\",\"fur\",\"fut\",\"fuu\",\"fuv\",\"fuy\",\"fvr\",\"fwa\",\"fwe\",\"gaa\",\"gab\",\"gac\",\"gad\",\"gae\",\"gaf\",\"gag\",\"gah\",\"gai\",\"gaj\",\"gak\",\"gal\",\"gam\",\"gan\",\"gao\",\"gap\",\"gaq\",\"gar\",\"gas\",\"gat\",\"gau\",\"gav\",\"gaw\",\"gax\",\"gay\",\"gaz\",\"gba\",\"gbb\",\"gbc\",\"gbd\",\"gbe\",\"gbf\",\"gbg\",\"gbh\",\"gbi\",\"gbj\",\"gbk\",\"gbl\",\"gbm\",\"gbn\",\"gbo\",\"gbp\",\"gbq\",\"gbr\",\"gbs\",\"gbu\",\"gbv\",\"gbw\",\"gbx\",\"gby\",\"gbz\",\"gcc\",\"gcd\",\"gce\",\"gcf\",\"gcl\",\"gcn\",\"gcr\",\"gct\",\"gda\",\"gdb\",\"gdc\",\"gdd\",\"gde\",\"gdf\",\"gdg\",\"gdh\",\"gdi\",\"gdj\",\"gdk\",\"gdl\",\"gdm\",\"gdn\",\"gdo\",\"gdq\",\"gdr\",\"gds\",\"gdt\",\"gdu\",\"gdx\",\"gea\",\"geb\",\"gec\",\"ged\",\"geg\",\"geh\",\"gei\",\"gej\",\"gek\",\"gel\",\"gem\",\"geq\",\"ges\",\"gev\",\"gew\",\"gex\",\"gey\",\"gez\",\"gfk\",\"gft\",\"gfx\",\"gga\",\"ggb\",\"ggd\",\"gge\",\"ggg\",\"ggk\",\"ggl\",\"ggn\",\"ggo\",\"ggr\",\"ggt\",\"ggu\",\"ggw\",\"gha\",\"ghc\",\"ghe\",\"ghh\",\"ghk\",\"ghl\",\"ghn\",\"gho\",\"ghr\",\"ghs\",\"ght\",\"gia\",\"gib\",\"gic\",\"gid\",\"gie\",\"gig\",\"gih\",\"gil\",\"gim\",\"gin\",\"gio\",\"gip\",\"giq\",\"gir\",\"gis\",\"git\",\"giu\",\"giw\",\"gix\",\"giy\",\"giz\",\"gji\",\"gjk\",\"gjm\",\"gjn\",\"gjr\",\"gju\",\"gka\",\"gkd\",\"gke\",\"gkn\",\"gko\",\"gkp\",\"gku\",\"glc\",\"gld\",\"glh\",\"gli\",\"glj\",\"glk\",\"gll\",\"glo\",\"glr\",\"glu\",\"glw\",\"gly\",\"gma\",\"gmb\",\"gmd\",\"gme\",\"gmg\",\"gmh\",\"gml\",\"gmm\",\"gmn\",\"gmq\",\"gmu\",\"gmv\",\"gmw\",\"gmx\",\"gmy\",\"gmz\",\"gna\",\"gnb\",\"gnc\",\"gnd\",\"gne\",\"gng\",\"gnh\",\"gni\",\"gnj\",\"gnk\",\"gnl\",\"gnm\",\"gnn\",\"gno\",\"gnq\",\"gnr\",\"gnt\",\"gnu\",\"gnw\",\"gnz\",\"goa\",\"gob\",\"goc\",\"god\",\"goe\",\"gof\",\"gog\",\"goh\",\"goi\",\"goj\",\"gok\",\"gol\",\"gom\",\"gon\",\"goo\",\"gop\",\"goq\",\"gor\",\"gos\",\"got\",\"gou\",\"gow\",\"gox\",\"goy\",\"goz\",\"gpa\",\"gpe\",\"gpn\",\"gqa\",\"gqi\",\"gqn\",\"gqr\",\"gqu\",\"gra\",\"grb\",\"grc\",\"grd\",\"grg\",\"grh\",\"gri\",\"grj\",\"grk\",\"grm\",\"gro\",\"grq\",\"grr\",\"grs\",\"grt\",\"gru\",\"grv\",\"grw\",\"grx\",\"gry\",\"grz\",\"gse\",\"gsg\",\"gsl\",\"gsm\",\"gsn\",\"gso\",\"gsp\",\"gss\",\"gsw\",\"gta\",\"gti\",\"gtu\",\"gua\",\"gub\",\"guc\",\"gud\",\"gue\",\"guf\",\"gug\",\"guh\",\"gui\",\"guk\",\"gul\",\"gum\",\"gun\",\"guo\",\"gup\",\"guq\",\"gur\",\"gus\",\"gut\",\"guu\",\"guv\",\"guw\",\"gux\",\"guz\",\"gva\",\"gvc\",\"gve\",\"gvf\",\"gvj\",\"gvl\",\"gvm\",\"gvn\",\"gvo\",\"gvp\",\"gvr\",\"gvs\",\"gvy\",\"gwa\",\"gwb\",\"gwc\",\"gwd\",\"gwe\",\"gwf\",\"gwg\",\"gwi\",\"gwj\",\"gwm\",\"gwn\",\"gwr\",\"gwt\",\"gwu\",\"gww\",\"gwx\",\"gxx\",\"gya\",\"gyb\",\"gyd\",\"gye\",\"gyf\",\"gyg\",\"gyi\",\"gyl\",\"gym\",\"gyn\",\"gyo\",\"gyr\",\"gyy\",\"gza\",\"gzi\",\"gzn\",\"haa\",\"hab\",\"hac\",\"had\",\"hae\",\"haf\",\"hag\",\"hah\",\"hai\",\"haj\",\"hak\",\"hal\",\"ham\",\"han\",\"hao\",\"hap\",\"haq\",\"har\",\"has\",\"hav\",\"haw\",\"hax\",\"hay\",\"haz\",\"hba\",\"hbb\",\"hbn\",\"hbo\",\"hbu\",\"hca\",\"hch\",\"hdn\",\"hds\",\"hdy\",\"hea\",\"hed\",\"heg\",\"heh\",\"hei\",\"hem\",\"hgm\",\"hgw\",\"hhi\",\"hhr\",\"hhy\",\"hia\",\"hib\",\"hid\",\"hif\",\"hig\",\"hih\",\"hii\",\"hij\",\"hik\",\"hil\",\"him\",\"hio\",\"hir\",\"hit\",\"hiw\",\"hix\",\"hji\",\"hka\",\"hke\",\"hkk\",\"hkn\",\"hks\",\"hla\",\"hlb\",\"hld\",\"hle\",\"hlt\",\"hlu\",\"hma\",\"hmb\",\"hmc\",\"hmd\",\"hme\",\"hmf\",\"hmg\",\"hmh\",\"hmi\",\"hmj\",\"hmk\",\"hml\",\"hmm\",\"hmn\",\"hmp\",\"hmq\",\"hmr\",\"hms\",\"hmt\",\"hmu\",\"hmv\",\"hmw\",\"hmx\",\"hmy\",\"hmz\",\"hna\",\"hnd\",\"hne\",\"hnh\",\"hni\",\"hnj\",\"hnn\",\"hno\",\"hns\",\"hnu\",\"hoa\",\"hob\",\"hoc\",\"hod\",\"hoe\",\"hoh\",\"hoi\",\"hoj\",\"hok\",\"hol\",\"hom\",\"hoo\",\"hop\",\"hor\",\"hos\",\"hot\",\"hov\",\"how\",\"hoy\",\"hoz\",\"hpo\",\"hps\",\"hra\",\"hrc\",\"hre\",\"hrk\",\"hrm\",\"hro\",\"hrp\",\"hrr\",\"hrt\",\"hru\",\"hrw\",\"hrx\",\"hrz\",\"hsb\",\"hsh\",\"hsl\",\"hsn\",\"hss\",\"hti\",\"hto\",\"hts\",\"htu\",\"htx\",\"hub\",\"huc\",\"hud\",\"hue\",\"huf\",\"hug\",\"huh\",\"hui\",\"huj\",\"huk\",\"hul\",\"hum\",\"huo\",\"hup\",\"huq\",\"hur\",\"hus\",\"hut\",\"huu\",\"huv\",\"huw\",\"hux\",\"huy\",\"huz\",\"hvc\",\"hve\",\"hvk\",\"hvn\",\"hvv\",\"hwa\",\"hwc\",\"hwo\",\"hya\",\"hyw\",\"hyx\",\"iai\",\"ian\",\"iap\",\"iar\",\"iba\",\"ibb\",\"ibd\",\"ibe\",\"ibg\",\"ibh\",\"ibi\",\"ibl\",\"ibm\",\"ibn\",\"ibr\",\"ibu\",\"iby\",\"ica\",\"ich\",\"icl\",\"icr\",\"ida\",\"idb\",\"idc\",\"idd\",\"ide\",\"idi\",\"idr\",\"ids\",\"idt\",\"idu\",\"ifa\",\"ifb\",\"ife\",\"iff\",\"ifk\",\"ifm\",\"ifu\",\"ify\",\"igb\",\"ige\",\"igg\",\"igl\",\"igm\",\"ign\",\"igo\",\"igs\",\"igw\",\"ihb\",\"ihi\",\"ihp\",\"ihw\",\"iin\",\"iir\",\"ijc\",\"ije\",\"ijj\",\"ijn\",\"ijo\",\"ijs\",\"ike\",\"iki\",\"ikk\",\"ikl\",\"iko\",\"ikp\",\"ikr\",\"iks\",\"ikt\",\"ikv\",\"ikw\",\"ikx\",\"ikz\",\"ila\",\"ilb\",\"ilg\",\"ili\",\"ilk\",\"ill\",\"ilm\",\"ilo\",\"ilp\",\"ils\",\"ilu\",\"ilv\",\"ilw\",\"ima\",\"ime\",\"imi\",\"iml\",\"imn\",\"imo\",\"imr\",\"ims\",\"imy\",\"inb\",\"inc\",\"ine\",\"ing\",\"inh\",\"inj\",\"inl\",\"inm\",\"inn\",\"ino\",\"inp\",\"ins\",\"int\",\"inz\",\"ior\",\"iou\",\"iow\",\"ipi\",\"ipo\",\"iqu\",\"iqw\",\"ira\",\"ire\",\"irh\",\"iri\",\"irk\",\"irn\",\"iro\",\"irr\",\"iru\",\"irx\",\"iry\",\"isa\",\"isc\",\"isd\",\"ise\",\"isg\",\"ish\",\"isi\",\"isk\",\"ism\",\"isn\",\"iso\",\"isr\",\"ist\",\"isu\",\"itb\",\"itc\",\"itd\",\"ite\",\"iti\",\"itk\",\"itl\",\"itm\",\"ito\",\"itr\",\"its\",\"itt\",\"itv\",\"itw\",\"itx\",\"ity\",\"itz\",\"ium\",\"ivb\",\"ivv\",\"iwk\",\"iwm\",\"iwo\",\"iws\",\"ixc\",\"ixl\",\"iya\",\"iyo\",\"iyx\",\"izh\",\"izi\",\"izr\",\"izz\",\"jaa\",\"jab\",\"jac\",\"jad\",\"jae\",\"jaf\",\"jah\",\"jaj\",\"jak\",\"jal\",\"jam\",\"jan\",\"jao\",\"jaq\",\"jar\",\"jas\",\"jat\",\"jau\",\"jax\",\"jay\",\"jaz\",\"jbe\",\"jbi\",\"jbj\",\"jbk\",\"jbn\",\"jbo\",\"jbr\",\"jbt\",\"jbu\",\"jbw\",\"jcs\",\"jct\",\"jda\",\"jdg\",\"jdt\",\"jeb\",\"jee\",\"jeg\",\"jeh\",\"jei\",\"jek\",\"jel\",\"jen\",\"jer\",\"jet\",\"jeu\",\"jgb\",\"jge\",\"jgk\",\"jgo\",\"jhi\",\"jhs\",\"jia\",\"jib\",\"jic\",\"jid\",\"jie\",\"jig\",\"jih\",\"jii\",\"jil\",\"jim\",\"jio\",\"jiq\",\"jit\",\"jiu\",\"jiv\",\"jiy\",\"jje\",\"jjr\",\"jka\",\"jkm\",\"jko\",\"jkp\",\"jkr\",\"jku\",\"jle\",\"jls\",\"jma\",\"jmb\",\"jmc\",\"jmd\",\"jmi\",\"jml\",\"jmn\",\"jmr\",\"jms\",\"jmw\",\"jmx\",\"jna\",\"jnd\",\"jng\",\"jni\",\"jnj\",\"jnl\",\"jns\",\"job\",\"jod\",\"jog\",\"jor\",\"jos\",\"jow\",\"jpa\",\"jpr\",\"jpx\",\"jqr\",\"jra\",\"jrb\",\"jrr\",\"jrt\",\"jru\",\"jsl\",\"jua\",\"jub\",\"juc\",\"jud\",\"juh\",\"jui\",\"juk\",\"jul\",\"jum\",\"jun\",\"juo\",\"jup\",\"jur\",\"jus\",\"jut\",\"juu\",\"juw\",\"juy\",\"jvd\",\"jvn\",\"jwi\",\"jya\",\"jye\",\"jyy\",\"kaa\",\"kab\",\"kac\",\"kad\",\"kae\",\"kaf\",\"kag\",\"kah\",\"kai\",\"kaj\",\"kak\",\"kam\",\"kao\",\"kap\",\"kaq\",\"kar\",\"kav\",\"kaw\",\"kax\",\"kay\",\"kba\",\"kbb\",\"kbc\",\"kbd\",\"kbe\",\"kbf\",\"kbg\",\"kbh\",\"kbi\",\"kbj\",\"kbk\",\"kbl\",\"kbm\",\"kbn\",\"kbo\",\"kbp\",\"kbq\",\"kbr\",\"kbs\",\"kbt\",\"kbu\",\"kbv\",\"kbw\",\"kbx\",\"kby\",\"kbz\",\"kca\",\"kcb\",\"kcc\",\"kcd\",\"kce\",\"kcf\",\"kcg\",\"kch\",\"kci\",\"kcj\",\"kck\",\"kcl\",\"kcm\",\"kcn\",\"kco\",\"kcp\",\"kcq\",\"kcr\",\"kcs\",\"kct\",\"kcu\",\"kcv\",\"kcw\",\"kcx\",\"kcy\",\"kcz\",\"kda\",\"kdc\",\"kdd\",\"kde\",\"kdf\",\"kdg\",\"kdh\",\"kdi\",\"kdj\",\"kdk\",\"kdl\",\"kdm\",\"kdn\",\"kdo\",\"kdp\",\"kdq\",\"kdr\",\"kdt\",\"kdu\",\"kdv\",\"kdw\",\"kdx\",\"kdy\",\"kdz\",\"kea\",\"keb\",\"kec\",\"ked\",\"kee\",\"kef\",\"keg\",\"keh\",\"kei\",\"kej\",\"kek\",\"kel\",\"kem\",\"ken\",\"keo\",\"kep\",\"keq\",\"ker\",\"kes\",\"ket\",\"keu\",\"kev\",\"kew\",\"kex\",\"key\",\"kez\",\"kfa\",\"kfb\",\"kfc\",\"kfd\",\"kfe\",\"kff\",\"kfg\",\"kfh\",\"kfi\",\"kfj\",\"kfk\",\"kfl\",\"kfm\",\"kfn\",\"kfo\",\"kfp\",\"kfq\",\"kfr\",\"kfs\",\"kft\",\"kfu\",\"kfv\",\"kfw\",\"kfx\",\"kfy\",\"kfz\",\"kga\",\"kgb\",\"kgc\",\"kgd\",\"kge\",\"kgf\",\"kgg\",\"kgh\",\"kgi\",\"kgj\",\"kgk\",\"kgl\",\"kgm\",\"kgn\",\"kgo\",\"kgp\",\"kgq\",\"kgr\",\"kgs\",\"kgt\",\"kgu\",\"kgv\",\"kgw\",\"kgx\",\"kgy\",\"kha\",\"khb\",\"khc\",\"khd\",\"khe\",\"khf\",\"khg\",\"khh\",\"khi\",\"khj\",\"khk\",\"khl\",\"khn\",\"kho\",\"khp\",\"khq\",\"khr\",\"khs\",\"kht\",\"khu\",\"khv\",\"khw\",\"khx\",\"khy\",\"khz\",\"kia\",\"kib\",\"kic\",\"kid\",\"kie\",\"kif\",\"kig\",\"kih\",\"kii\",\"kij\",\"kil\",\"kim\",\"kio\",\"kip\",\"kiq\",\"kis\",\"kit\",\"kiu\",\"kiv\",\"kiw\",\"kix\",\"kiy\",\"kiz\",\"kja\",\"kjb\",\"kjc\",\"kjd\",\"kje\",\"kjf\",\"kjg\",\"kjh\",\"kji\",\"kjj\",\"kjk\",\"kjl\",\"kjm\",\"kjn\",\"kjo\",\"kjp\",\"kjq\",\"kjr\",\"kjs\",\"kjt\",\"kju\",\"kjv\",\"kjx\",\"kjy\",\"kjz\",\"kka\",\"kkb\",\"kkc\",\"kkd\",\"kke\",\"kkf\",\"kkg\",\"kkh\",\"kki\",\"kkj\",\"kkk\",\"kkl\",\"kkm\",\"kkn\",\"kko\",\"kkp\",\"kkq\",\"kkr\",\"kks\",\"kkt\",\"kku\",\"kkv\",\"kkw\",\"kkx\",\"kky\",\"kkz\",\"kla\",\"klb\",\"klc\",\"kld\",\"kle\",\"klf\",\"klg\",\"klh\",\"kli\",\"klj\",\"klk\",\"kll\",\"klm\",\"kln\",\"klo\",\"klp\",\"klq\",\"klr\",\"kls\",\"klt\",\"klu\",\"klv\",\"klw\",\"klx\",\"kly\",\"klz\",\"kma\",\"kmb\",\"kmc\",\"kmd\",\"kme\",\"kmf\",\"kmg\",\"kmh\",\"kmi\",\"kmj\",\"kmk\",\"kml\",\"kmm\",\"kmn\",\"kmo\",\"kmp\",\"kmq\",\"kmr\",\"kms\",\"kmt\",\"kmu\",\"kmv\",\"kmw\",\"kmx\",\"kmy\",\"kmz\",\"kna\",\"knb\",\"knc\",\"knd\",\"kne\",\"knf\",\"kng\",\"kni\",\"knj\",\"knk\",\"knl\",\"knm\",\"knn\",\"kno\",\"knp\",\"knq\",\"knr\",\"kns\",\"knt\",\"knu\",\"knv\",\"knw\",\"knx\",\"kny\",\"knz\",\"koa\",\"koc\",\"kod\",\"koe\",\"kof\",\"kog\",\"koh\",\"koi\",\"koj\",\"kok\",\"kol\",\"koo\",\"kop\",\"koq\",\"kos\",\"kot\",\"kou\",\"kov\",\"kow\",\"kox\",\"koy\",\"koz\",\"kpa\",\"kpb\",\"kpc\",\"kpd\",\"kpe\",\"kpf\",\"kpg\",\"kph\",\"kpi\",\"kpj\",\"kpk\",\"kpl\",\"kpm\",\"kpn\",\"kpo\",\"kpp\",\"kpq\",\"kpr\",\"kps\",\"kpt\",\"kpu\",\"kpv\",\"kpw\",\"kpx\",\"kpy\",\"kpz\",\"kqa\",\"kqb\",\"kqc\",\"kqd\",\"kqe\",\"kqf\",\"kqg\",\"kqh\",\"kqi\",\"kqj\",\"kqk\",\"kql\",\"kqm\",\"kqn\",\"kqo\",\"kqp\",\"kqq\",\"kqr\",\"kqs\",\"kqt\",\"kqu\",\"kqv\",\"kqw\",\"kqx\",\"kqy\",\"kqz\",\"kra\",\"krb\",\"krc\",\"krd\",\"kre\",\"krf\",\"krh\",\"kri\",\"krj\",\"krk\",\"krl\",\"krm\",\"krn\",\"kro\",\"krp\",\"krr\",\"krs\",\"krt\",\"kru\",\"krv\",\"krw\",\"krx\",\"kry\",\"krz\",\"ksa\",\"ksb\",\"ksc\",\"ksd\",\"kse\",\"ksf\",\"ksg\",\"ksh\",\"ksi\",\"ksj\",\"ksk\",\"ksl\",\"ksm\",\"ksn\",\"kso\",\"ksp\",\"ksq\",\"ksr\",\"kss\",\"kst\",\"ksu\",\"ksv\",\"ksw\",\"ksx\",\"ksy\",\"ksz\",\"kta\",\"ktb\",\"ktc\",\"ktd\",\"kte\",\"ktf\",\"ktg\",\"kth\",\"kti\",\"ktj\",\"ktk\",\"ktl\",\"ktm\",\"ktn\",\"kto\",\"ktp\",\"ktq\",\"ktr\",\"kts\",\"ktt\",\"ktu\",\"ktv\",\"ktw\",\"ktx\",\"kty\",\"ktz\",\"kub\",\"kuc\",\"kud\",\"kue\",\"kuf\",\"kug\",\"kuh\",\"kui\",\"kuj\",\"kuk\",\"kul\",\"kum\",\"kun\",\"kuo\",\"kup\",\"kuq\",\"kus\",\"kut\",\"kuu\",\"kuv\",\"kuw\",\"kux\",\"kuy\",\"kuz\",\"kva\",\"kvb\",\"kvc\",\"kvd\",\"kve\",\"kvf\",\"kvg\",\"kvh\",\"kvi\",\"kvj\",\"kvk\",\"kvl\",\"kvm\",\"kvn\",\"kvo\",\"kvp\",\"kvq\",\"kvr\",\"kvs\",\"kvt\",\"kvu\",\"kvv\",\"kvw\",\"kvx\",\"kvy\",\"kvz\",\"kwa\",\"kwb\",\"kwc\",\"kwd\",\"kwe\",\"kwf\",\"kwg\",\"kwh\",\"kwi\",\"kwj\",\"kwk\",\"kwl\",\"kwm\",\"kwn\",\"kwo\",\"kwp\",\"kwq\",\"kwr\",\"kws\",\"kwt\",\"kwu\",\"kwv\",\"kww\",\"kwx\",\"kwy\",\"kwz\",\"kxa\",\"kxb\",\"kxc\",\"kxd\",\"kxe\",\"kxf\",\"kxh\",\"kxi\",\"kxj\",\"kxk\",\"kxl\",\"kxm\",\"kxn\",\"kxo\",\"kxp\",\"kxq\",\"kxr\",\"kxs\",\"kxt\",\"kxu\",\"kxv\",\"kxw\",\"kxx\",\"kxy\",\"kxz\",\"kya\",\"kyb\",\"kyc\",\"kyd\",\"kye\",\"kyf\",\"kyg\",\"kyh\",\"kyi\",\"kyj\",\"kyk\",\"kyl\",\"kym\",\"kyn\",\"kyo\",\"kyp\",\"kyq\",\"kyr\",\"kys\",\"kyt\",\"kyu\",\"kyv\",\"kyw\",\"kyx\",\"kyy\",\"kyz\",\"kza\",\"kzb\",\"kzc\",\"kzd\",\"kze\",\"kzf\",\"kzg\",\"kzh\",\"kzi\",\"kzj\",\"kzk\",\"kzl\",\"kzm\",\"kzn\",\"kzo\",\"kzp\",\"kzq\",\"kzr\",\"kzs\",\"kzt\",\"kzu\",\"kzv\",\"kzw\",\"kzx\",\"kzy\",\"kzz\",\"laa\",\"lab\",\"lac\",\"lad\",\"lae\",\"laf\",\"lag\",\"lah\",\"lai\",\"laj\",\"lak\",\"lal\",\"lam\",\"lan\",\"lap\",\"laq\",\"lar\",\"las\",\"lau\",\"law\",\"lax\",\"lay\",\"laz\",\"lba\",\"lbb\",\"lbc\",\"lbe\",\"lbf\",\"lbg\",\"lbi\",\"lbj\",\"lbk\",\"lbl\",\"lbm\",\"lbn\",\"lbo\",\"lbq\",\"lbr\",\"lbs\",\"lbt\",\"lbu\",\"lbv\",\"lbw\",\"lbx\",\"lby\",\"lbz\",\"lcc\",\"lcd\",\"lce\",\"lcf\",\"lch\",\"lcl\",\"lcm\",\"lcp\",\"lcq\",\"lcs\",\"lda\",\"ldb\",\"ldd\",\"ldg\",\"ldh\",\"ldi\",\"ldj\",\"ldk\",\"ldl\",\"ldm\",\"ldn\",\"ldo\",\"ldp\",\"ldq\",\"lea\",\"leb\",\"lec\",\"led\",\"lee\",\"lef\",\"leg\",\"leh\",\"lei\",\"lej\",\"lek\",\"lel\",\"lem\",\"len\",\"leo\",\"lep\",\"leq\",\"ler\",\"les\",\"let\",\"leu\",\"lev\",\"lew\",\"lex\",\"ley\",\"lez\",\"lfa\",\"lfn\",\"lga\",\"lgb\",\"lgg\",\"lgh\",\"lgi\",\"lgk\",\"lgl\",\"lgm\",\"lgn\",\"lgq\",\"lgr\",\"lgt\",\"lgu\",\"lgz\",\"lha\",\"lhh\",\"lhi\",\"lhl\",\"lhm\",\"lhn\",\"lhp\",\"lhs\",\"lht\",\"lhu\",\"lia\",\"lib\",\"lic\",\"lid\",\"lie\",\"lif\",\"lig\",\"lih\",\"lii\",\"lij\",\"lik\",\"lil\",\"lio\",\"lip\",\"liq\",\"lir\",\"lis\",\"liu\",\"liv\",\"liw\",\"lix\",\"liy\",\"liz\",\"lja\",\"lje\",\"lji\",\"ljl\",\"ljp\",\"ljw\",\"ljx\",\"lka\",\"lkb\",\"lkc\",\"lkd\",\"lke\",\"lkh\",\"lki\",\"lkj\",\"lkl\",\"lkm\",\"lkn\",\"lko\",\"lkr\",\"lks\",\"lkt\",\"lku\",\"lky\",\"lla\",\"llb\",\"llc\",\"lld\",\"lle\",\"llf\",\"llg\",\"llh\",\"lli\",\"llj\",\"llk\",\"lll\",\"llm\",\"lln\",\"llo\",\"llp\",\"llq\",\"lls\",\"llu\",\"llx\",\"lma\",\"lmb\",\"lmc\",\"lmd\",\"lme\",\"lmf\",\"lmg\",\"lmh\",\"lmi\",\"lmj\",\"lmk\",\"lml\",\"lmm\",\"lmn\",\"lmo\",\"lmp\",\"lmq\",\"lmr\",\"lmu\",\"lmv\",\"lmw\",\"lmx\",\"lmy\",\"lmz\",\"lna\",\"lnb\",\"lnd\",\"lng\",\"lnh\",\"lni\",\"lnj\",\"lnl\",\"lnm\",\"lnn\",\"lno\",\"lns\",\"lnu\",\"lnw\",\"lnz\",\"loa\",\"lob\",\"loc\",\"loe\",\"lof\",\"log\",\"loh\",\"loi\",\"loj\",\"lok\",\"lol\",\"lom\",\"lon\",\"loo\",\"lop\",\"loq\",\"lor\",\"los\",\"lot\",\"lou\",\"lov\",\"low\",\"lox\",\"loy\",\"loz\",\"lpa\",\"lpe\",\"lpn\",\"lpo\",\"lpx\",\"lra\",\"lrc\",\"lre\",\"lrg\",\"lri\",\"lrk\",\"lrl\",\"lrm\",\"lrn\",\"lro\",\"lrr\",\"lrt\",\"lrv\",\"lrz\",\"lsa\",\"lsd\",\"lse\",\"lsg\",\"lsh\",\"lsi\",\"lsl\",\"lsm\",\"lso\",\"lsp\",\"lsr\",\"lss\",\"lst\",\"lsy\",\"ltc\",\"ltg\",\"lth\",\"lti\",\"ltn\",\"lto\",\"lts\",\"ltu\",\"lua\",\"luc\",\"lud\",\"lue\",\"luf\",\"lui\",\"luj\",\"luk\",\"lul\",\"lum\",\"lun\",\"luo\",\"lup\",\"luq\",\"lur\",\"lus\",\"lut\",\"luu\",\"luv\",\"luw\",\"luy\",\"luz\",\"lva\",\"lvk\",\"lvs\",\"lvu\",\"lwa\",\"lwe\",\"lwg\",\"lwh\",\"lwl\",\"lwm\",\"lwo\",\"lws\",\"lwt\",\"lwu\",\"lww\",\"lya\",\"lyg\",\"lyn\",\"lzh\",\"lzl\",\"lzn\",\"lzz\",\"maa\",\"mab\",\"mad\",\"mae\",\"maf\",\"mag\",\"mai\",\"maj\",\"mak\",\"mam\",\"man\",\"map\",\"maq\",\"mas\",\"mat\",\"mau\",\"mav\",\"maw\",\"max\",\"maz\",\"mba\",\"mbb\",\"mbc\",\"mbd\",\"mbe\",\"mbf\",\"mbh\",\"mbi\",\"mbj\",\"mbk\",\"mbl\",\"mbm\",\"mbn\",\"mbo\",\"mbp\",\"mbq\",\"mbr\",\"mbs\",\"mbt\",\"mbu\",\"mbv\",\"mbw\",\"mbx\",\"mby\",\"mbz\",\"mca\",\"mcb\",\"mcc\",\"mcd\",\"mce\",\"mcf\",\"mcg\",\"mch\",\"mci\",\"mcj\",\"mck\",\"mcl\",\"mcm\",\"mcn\",\"mco\",\"mcp\",\"mcq\",\"mcr\",\"mcs\",\"mct\",\"mcu\",\"mcv\",\"mcw\",\"mcx\",\"mcy\",\"mcz\",\"mda\",\"mdb\",\"mdc\",\"mdd\",\"mde\",\"mdf\",\"mdg\",\"mdh\",\"mdi\",\"mdj\",\"mdk\",\"mdl\",\"mdm\",\"mdn\",\"mdp\",\"mdq\",\"mdr\",\"mds\",\"mdt\",\"mdu\",\"mdv\",\"mdw\",\"mdx\",\"mdy\",\"mdz\",\"mea\",\"meb\",\"mec\",\"med\",\"mee\",\"mef\",\"meg\",\"meh\",\"mei\",\"mej\",\"mek\",\"mel\",\"mem\",\"men\",\"meo\",\"mep\",\"meq\",\"mer\",\"mes\",\"met\",\"meu\",\"mev\",\"mew\",\"mey\",\"mez\",\"mfa\",\"mfb\",\"mfc\",\"mfd\",\"mfe\",\"mff\",\"mfg\",\"mfh\",\"mfi\",\"mfj\",\"mfk\",\"mfl\",\"mfm\",\"mfn\",\"mfo\",\"mfp\",\"mfq\",\"mfr\",\"mfs\",\"mft\",\"mfu\",\"mfv\",\"mfw\",\"mfx\",\"mfy\",\"mfz\",\"mga\",\"mgb\",\"mgc\",\"mgd\",\"mge\",\"mgf\",\"mgg\",\"mgh\",\"mgi\",\"mgj\",\"mgk\",\"mgl\",\"mgm\",\"mgn\",\"mgo\",\"mgp\",\"mgq\",\"mgr\",\"mgs\",\"mgt\",\"mgu\",\"mgv\",\"mgw\",\"mgx\",\"mgy\",\"mgz\",\"mha\",\"mhb\",\"mhc\",\"mhd\",\"mhe\",\"mhf\",\"mhg\",\"mhh\",\"mhi\",\"mhj\",\"mhk\",\"mhl\",\"mhm\",\"mhn\",\"mho\",\"mhp\",\"mhq\",\"mhr\",\"mhs\",\"mht\",\"mhu\",\"mhw\",\"mhx\",\"mhy\",\"mhz\",\"mia\",\"mib\",\"mic\",\"mid\",\"mie\",\"mif\",\"mig\",\"mih\",\"mii\",\"mij\",\"mik\",\"mil\",\"mim\",\"min\",\"mio\",\"mip\",\"miq\",\"mir\",\"mis\",\"mit\",\"miu\",\"miw\",\"mix\",\"miy\",\"miz\",\"mja\",\"mjb\",\"mjc\",\"mjd\",\"mje\",\"mjg\",\"mjh\",\"mji\",\"mjj\",\"mjk\",\"mjl\",\"mjm\",\"mjn\",\"mjo\",\"mjp\",\"mjq\",\"mjr\",\"mjs\",\"mjt\",\"mju\",\"mjv\",\"mjw\",\"mjx\",\"mjy\",\"mjz\",\"mka\",\"mkb\",\"mkc\",\"mke\",\"mkf\",\"mkg\",\"mkh\",\"mki\",\"mkj\",\"mkk\",\"mkl\",\"mkm\",\"mkn\",\"mko\",\"mkp\",\"mkq\",\"mkr\",\"mks\",\"mkt\",\"mku\",\"mkv\",\"mkw\",\"mkx\",\"mky\",\"mkz\",\"mla\",\"mlb\",\"mlc\",\"mld\",\"mle\",\"mlf\",\"mlh\",\"mli\",\"mlj\",\"mlk\",\"mll\",\"mlm\",\"mln\",\"mlo\",\"mlp\",\"mlq\",\"mlr\",\"mls\",\"mlu\",\"mlv\",\"mlw\",\"mlx\",\"mlz\",\"mma\",\"mmb\",\"mmc\",\"mmd\",\"mme\",\"mmf\",\"mmg\",\"mmh\",\"mmi\",\"mmj\",\"mmk\",\"mml\",\"mmm\",\"mmn\",\"mmo\",\"mmp\",\"mmq\",\"mmr\",\"mmt\",\"mmu\",\"mmv\",\"mmw\",\"mmx\",\"mmy\",\"mmz\",\"mna\",\"mnb\",\"mnc\",\"mnd\",\"mne\",\"mnf\",\"mng\",\"mnh\",\"mni\",\"mnj\",\"mnk\",\"mnl\",\"mnm\",\"mnn\",\"mno\",\"mnp\",\"mnq\",\"mnr\",\"mns\",\"mnt\",\"mnu\",\"mnv\",\"mnw\",\"mnx\",\"mny\",\"mnz\",\"moa\",\"moc\",\"mod\",\"moe\",\"mof\",\"mog\",\"moh\",\"moi\",\"moj\",\"mok\",\"mom\",\"moo\",\"mop\",\"moq\",\"mor\",\"mos\",\"mot\",\"mou\",\"mov\",\"mow\",\"mox\",\"moy\",\"moz\",\"mpa\",\"mpb\",\"mpc\",\"mpd\",\"mpe\",\"mpg\",\"mph\",\"mpi\",\"mpj\",\"mpk\",\"mpl\",\"mpm\",\"mpn\",\"mpo\",\"mpp\",\"mpq\",\"mpr\",\"mps\",\"mpt\",\"mpu\",\"mpv\",\"mpw\",\"mpx\",\"mpy\",\"mpz\",\"mqa\",\"mqb\",\"mqc\",\"mqe\",\"mqf\",\"mqg\",\"mqh\",\"mqi\",\"mqj\",\"mqk\",\"mql\",\"mqm\",\"mqn\",\"mqo\",\"mqp\",\"mqq\",\"mqr\",\"mqs\",\"mqt\",\"mqu\",\"mqv\",\"mqw\",\"mqx\",\"mqy\",\"mqz\",\"mra\",\"mrb\",\"mrc\",\"mrd\",\"mre\",\"mrf\",\"mrg\",\"mrh\",\"mrj\",\"mrk\",\"mrl\",\"mrm\",\"mrn\",\"mro\",\"mrp\",\"mrq\",\"mrr\",\"mrs\",\"mrt\",\"mru\",\"mrv\",\"mrw\",\"mrx\",\"mry\",\"mrz\",\"msb\",\"msc\",\"msd\",\"mse\",\"msf\",\"msg\",\"msh\",\"msi\",\"msj\",\"msk\",\"msl\",\"msm\",\"msn\",\"mso\",\"msp\",\"msq\",\"msr\",\"mss\",\"mst\",\"msu\",\"msv\",\"msw\",\"msx\",\"msy\",\"msz\",\"mta\",\"mtb\",\"mtc\",\"mtd\",\"mte\",\"mtf\",\"mtg\",\"mth\",\"mti\",\"mtj\",\"mtk\",\"mtl\",\"mtm\",\"mtn\",\"mto\",\"mtp\",\"mtq\",\"mtr\",\"mts\",\"mtt\",\"mtu\",\"mtv\",\"mtw\",\"mtx\",\"mty\",\"mua\",\"mub\",\"muc\",\"mud\",\"mue\",\"mug\",\"muh\",\"mui\",\"muj\",\"muk\",\"mul\",\"mum\",\"mun\",\"muo\",\"mup\",\"muq\",\"mur\",\"mus\",\"mut\",\"muu\",\"muv\",\"mux\",\"muy\",\"muz\",\"mva\",\"mvb\",\"mvd\",\"mve\",\"mvf\",\"mvg\",\"mvh\",\"mvi\",\"mvk\",\"mvl\",\"mvm\",\"mvn\",\"mvo\",\"mvp\",\"mvq\",\"mvr\",\"mvs\",\"mvt\",\"mvu\",\"mvv\",\"mvw\",\"mvx\",\"mvy\",\"mvz\",\"mwa\",\"mwb\",\"mwc\",\"mwd\",\"mwe\",\"mwf\",\"mwg\",\"mwh\",\"mwi\",\"mwj\",\"mwk\",\"mwl\",\"mwm\",\"mwn\",\"mwo\",\"mwp\",\"mwq\",\"mwr\",\"mws\",\"mwt\",\"mwu\",\"mwv\",\"mww\",\"mwx\",\"mwy\",\"mwz\",\"mxa\",\"mxb\",\"mxc\",\"mxd\",\"mxe\",\"mxf\",\"mxg\",\"mxh\",\"mxi\",\"mxj\",\"mxk\",\"mxl\",\"mxm\",\"mxn\",\"mxo\",\"mxp\",\"mxq\",\"mxr\",\"mxs\",\"mxt\",\"mxu\",\"mxv\",\"mxw\",\"mxx\",\"mxy\",\"mxz\",\"myb\",\"myc\",\"myd\",\"mye\",\"myf\",\"myg\",\"myh\",\"myi\",\"myj\",\"myk\",\"myl\",\"mym\",\"myn\",\"myo\",\"myp\",\"myq\",\"myr\",\"mys\",\"myt\",\"myu\",\"myv\",\"myw\",\"myx\",\"myy\",\"myz\",\"mza\",\"mzb\",\"mzc\",\"mzd\",\"mze\",\"mzg\",\"mzh\",\"mzi\",\"mzj\",\"mzk\",\"mzl\",\"mzm\",\"mzn\",\"mzo\",\"mzp\",\"mzq\",\"mzr\",\"mzs\",\"mzt\",\"mzu\",\"mzv\",\"mzw\",\"mzx\",\"mzy\",\"mzz\",\"naa\",\"nab\",\"nac\",\"nad\",\"nae\",\"naf\",\"nag\",\"nah\",\"nai\",\"naj\",\"nak\",\"nal\",\"nam\",\"nan\",\"nao\",\"nap\",\"naq\",\"nar\",\"nas\",\"nat\",\"naw\",\"nax\",\"nay\",\"naz\",\"nba\",\"nbb\",\"nbc\",\"nbd\",\"nbe\",\"nbf\",\"nbg\",\"nbh\",\"nbi\",\"nbj\",\"nbk\",\"nbm\",\"nbn\",\"nbo\",\"nbp\",\"nbq\",\"nbr\",\"nbs\",\"nbt\",\"nbu\",\"nbv\",\"nbw\",\"nbx\",\"nby\",\"nca\",\"ncb\",\"ncc\",\"ncd\",\"nce\",\"ncf\",\"ncg\",\"nch\",\"nci\",\"ncj\",\"nck\",\"ncl\",\"ncm\",\"ncn\",\"nco\",\"ncp\",\"ncq\",\"ncr\",\"ncs\",\"nct\",\"ncu\",\"ncx\",\"ncz\",\"nda\",\"ndb\",\"ndc\",\"ndd\",\"ndf\",\"ndg\",\"ndh\",\"ndi\",\"ndj\",\"ndk\",\"ndl\",\"ndm\",\"ndn\",\"ndp\",\"ndq\",\"ndr\",\"nds\",\"ndt\",\"ndu\",\"ndv\",\"ndw\",\"ndx\",\"ndy\",\"ndz\",\"nea\",\"neb\",\"nec\",\"ned\",\"nee\",\"nef\",\"neg\",\"neh\",\"nei\",\"nej\",\"nek\",\"nem\",\"nen\",\"neo\",\"neq\",\"ner\",\"nes\",\"net\",\"neu\",\"nev\",\"new\",\"nex\",\"ney\",\"nez\",\"nfa\",\"nfd\",\"nfl\",\"nfr\",\"nfu\",\"nga\",\"ngb\",\"ngc\",\"ngd\",\"nge\",\"ngf\",\"ngg\",\"ngh\",\"ngi\",\"ngj\",\"ngk\",\"ngl\",\"ngm\",\"ngn\",\"ngo\",\"ngp\",\"ngq\",\"ngr\",\"ngs\",\"ngt\",\"ngu\",\"ngv\",\"ngw\",\"ngx\",\"ngy\",\"ngz\",\"nha\",\"nhb\",\"nhc\",\"nhd\",\"nhe\",\"nhf\",\"nhg\",\"nhh\",\"nhi\",\"nhk\",\"nhm\",\"nhn\",\"nho\",\"nhp\",\"nhq\",\"nhr\",\"nht\",\"nhu\",\"nhv\",\"nhw\",\"nhx\",\"nhy\",\"nhz\",\"nia\",\"nib\",\"nic\",\"nid\",\"nie\",\"nif\",\"nig\",\"nih\",\"nii\",\"nij\",\"nik\",\"nil\",\"nim\",\"nin\",\"nio\",\"niq\",\"nir\",\"nis\",\"nit\",\"niu\",\"niv\",\"niw\",\"nix\",\"niy\",\"niz\",\"nja\",\"njb\",\"njd\",\"njh\",\"nji\",\"njj\",\"njl\",\"njm\",\"njn\",\"njo\",\"njr\",\"njs\",\"njt\",\"nju\",\"njx\",\"njy\",\"njz\",\"nka\",\"nkb\",\"nkc\",\"nkd\",\"nke\",\"nkf\",\"nkg\",\"nkh\",\"nki\",\"nkj\",\"nkk\",\"nkm\",\"nkn\",\"nko\",\"nkp\",\"nkq\",\"nkr\",\"nks\",\"nkt\",\"nku\",\"nkv\",\"nkw\",\"nkx\",\"nkz\",\"nla\",\"nlc\",\"nle\",\"nlg\",\"nli\",\"nlj\",\"nlk\",\"nll\",\"nlm\",\"nln\",\"nlo\",\"nlq\",\"nlr\",\"nlu\",\"nlv\",\"nlw\",\"nlx\",\"nly\",\"nlz\",\"nma\",\"nmb\",\"nmc\",\"nmd\",\"nme\",\"nmf\",\"nmg\",\"nmh\",\"nmi\",\"nmj\",\"nmk\",\"nml\",\"nmm\",\"nmn\",\"nmo\",\"nmp\",\"nmq\",\"nmr\",\"nms\",\"nmt\",\"nmu\",\"nmv\",\"nmw\",\"nmx\",\"nmy\",\"nmz\",\"nna\",\"nnb\",\"nnc\",\"nnd\",\"nne\",\"nnf\",\"nng\",\"nnh\",\"nni\",\"nnj\",\"nnk\",\"nnl\",\"nnm\",\"nnn\",\"nnp\",\"nnq\",\"nnr\",\"nns\",\"nnt\",\"nnu\",\"nnv\",\"nnw\",\"nnx\",\"nny\",\"nnz\",\"noa\",\"noc\",\"nod\",\"noe\",\"nof\",\"nog\",\"noh\",\"noi\",\"noj\",\"nok\",\"nol\",\"nom\",\"non\",\"noo\",\"nop\",\"noq\",\"nos\",\"not\",\"nou\",\"nov\",\"now\",\"noy\",\"noz\",\"npa\",\"npb\",\"npg\",\"nph\",\"npi\",\"npl\",\"npn\",\"npo\",\"nps\",\"npu\",\"npx\",\"npy\",\"nqg\",\"nqk\",\"nql\",\"nqm\",\"nqn\",\"nqo\",\"nqq\",\"nqy\",\"nra\",\"nrb\",\"nrc\",\"nre\",\"nrf\",\"nrg\",\"nri\",\"nrk\",\"nrl\",\"nrm\",\"nrn\",\"nrp\",\"nrr\",\"nrt\",\"nru\",\"nrx\",\"nrz\",\"nsa\",\"nsc\",\"nsd\",\"nse\",\"nsf\",\"nsg\",\"nsh\",\"nsi\",\"nsk\",\"nsl\",\"nsm\",\"nsn\",\"nso\",\"nsp\",\"nsq\",\"nsr\",\"nss\",\"nst\",\"nsu\",\"nsv\",\"nsw\",\"nsx\",\"nsy\",\"nsz\",\"ntd\",\"nte\",\"ntg\",\"nti\",\"ntj\",\"ntk\",\"ntm\",\"nto\",\"ntp\",\"ntr\",\"nts\",\"ntu\",\"ntw\",\"ntx\",\"nty\",\"ntz\",\"nua\",\"nub\",\"nuc\",\"nud\",\"nue\",\"nuf\",\"nug\",\"nuh\",\"nui\",\"nuj\",\"nuk\",\"nul\",\"num\",\"nun\",\"nuo\",\"nup\",\"nuq\",\"nur\",\"nus\",\"nut\",\"nuu\",\"nuv\",\"nuw\",\"nux\",\"nuy\",\"nuz\",\"nvh\",\"nvm\",\"nvo\",\"nwa\",\"nwb\",\"nwc\",\"nwe\",\"nwg\",\"nwi\",\"nwm\",\"nwo\",\"nwr\",\"nwx\",\"nwy\",\"nxa\",\"nxd\",\"nxe\",\"nxg\",\"nxi\",\"nxk\",\"nxl\",\"nxm\",\"nxn\",\"nxo\",\"nxq\",\"nxr\",\"nxu\",\"nxx\",\"nyb\",\"nyc\",\"nyd\",\"nye\",\"nyf\",\"nyg\",\"nyh\",\"nyi\",\"nyj\",\"nyk\",\"nyl\",\"nym\",\"nyn\",\"nyo\",\"nyp\",\"nyq\",\"nyr\",\"nys\",\"nyt\",\"nyu\",\"nyv\",\"nyw\",\"nyx\",\"nyy\",\"nza\",\"nzb\",\"nzd\",\"nzi\",\"nzk\",\"nzm\",\"nzs\",\"nzu\",\"nzy\",\"nzz\",\"oaa\",\"oac\",\"oar\",\"oav\",\"obi\",\"obk\",\"obl\",\"obm\",\"obo\",\"obr\",\"obt\",\"obu\",\"oca\",\"och\",\"oco\",\"ocu\",\"oda\",\"odk\",\"odt\",\"odu\",\"ofo\",\"ofs\",\"ofu\",\"ogb\",\"ogc\",\"oge\",\"ogg\",\"ogo\",\"ogu\",\"oht\",\"ohu\",\"oia\",\"oin\",\"ojb\",\"ojc\",\"ojg\",\"ojp\",\"ojs\",\"ojv\",\"ojw\",\"oka\",\"okb\",\"okd\",\"oke\",\"okg\",\"okh\",\"oki\",\"okj\",\"okk\",\"okl\",\"okm\",\"okn\",\"oko\",\"okr\",\"oks\",\"oku\",\"okv\",\"okx\",\"ola\",\"old\",\"ole\",\"olk\",\"olm\",\"olo\",\"olr\",\"olt\",\"olu\",\"oma\",\"omb\",\"omc\",\"ome\",\"omg\",\"omi\",\"omk\",\"oml\",\"omn\",\"omo\",\"omp\",\"omq\",\"omr\",\"omt\",\"omu\",\"omv\",\"omw\",\"omx\",\"ona\",\"onb\",\"one\",\"ong\",\"oni\",\"onj\",\"onk\",\"onn\",\"ono\",\"onp\",\"onr\",\"ons\",\"ont\",\"onu\",\"onw\",\"onx\",\"ood\",\"oog\",\"oon\",\"oor\",\"oos\",\"opa\",\"opk\",\"opm\",\"opo\",\"opt\",\"opy\",\"ora\",\"orc\",\"ore\",\"org\",\"orh\",\"orn\",\"oro\",\"orr\",\"ors\",\"ort\",\"oru\",\"orv\",\"orw\",\"orx\",\"ory\",\"orz\",\"osa\",\"osc\",\"osi\",\"oso\",\"osp\",\"ost\",\"osu\",\"osx\",\"ota\",\"otb\",\"otd\",\"ote\",\"oti\",\"otk\",\"otl\",\"otm\",\"otn\",\"oto\",\"otq\",\"otr\",\"ots\",\"ott\",\"otu\",\"otw\",\"otx\",\"oty\",\"otz\",\"oua\",\"oub\",\"oue\",\"oui\",\"oum\",\"oun\",\"ovd\",\"owi\",\"owl\",\"oyb\",\"oyd\",\"oym\",\"oyy\",\"ozm\",\"paa\",\"pab\",\"pac\",\"pad\",\"pae\",\"paf\",\"pag\",\"pah\",\"pai\",\"pak\",\"pal\",\"pam\",\"pao\",\"pap\",\"paq\",\"par\",\"pas\",\"pat\",\"pau\",\"pav\",\"paw\",\"pax\",\"pay\",\"paz\",\"pbb\",\"pbc\",\"pbe\",\"pbf\",\"pbg\",\"pbh\",\"pbi\",\"pbl\",\"pbm\",\"pbn\",\"pbo\",\"pbp\",\"pbr\",\"pbs\",\"pbt\",\"pbu\",\"pbv\",\"pby\",\"pbz\",\"pca\",\"pcb\",\"pcc\",\"pcd\",\"pce\",\"pcf\",\"pcg\",\"pch\",\"pci\",\"pcj\",\"pck\",\"pcl\",\"pcm\",\"pcn\",\"pcp\",\"pcr\",\"pcw\",\"pda\",\"pdc\",\"pdi\",\"pdn\",\"pdo\",\"pdt\",\"pdu\",\"pea\",\"peb\",\"ped\",\"pee\",\"pef\",\"peg\",\"peh\",\"pei\",\"pej\",\"pek\",\"pel\",\"pem\",\"peo\",\"pep\",\"peq\",\"pes\",\"pev\",\"pex\",\"pey\",\"pez\",\"pfa\",\"pfe\",\"pfl\",\"pga\",\"pgd\",\"pgg\",\"pgi\",\"pgk\",\"pgl\",\"pgn\",\"pgs\",\"pgu\",\"pgy\",\"pgz\",\"pha\",\"phd\",\"phg\",\"phh\",\"phi\",\"phk\",\"phl\",\"phm\",\"phn\",\"pho\",\"phq\",\"phr\",\"pht\",\"phu\",\"phv\",\"phw\",\"pia\",\"pib\",\"pic\",\"pid\",\"pie\",\"pif\",\"pig\",\"pih\",\"pii\",\"pij\",\"pil\",\"pim\",\"pin\",\"pio\",\"pip\",\"pir\",\"pis\",\"pit\",\"piu\",\"piv\",\"piw\",\"pix\",\"piy\",\"piz\",\"pjt\",\"pka\",\"pkb\",\"pkc\",\"pkg\",\"pkh\",\"pkn\",\"pko\",\"pkp\",\"pkr\",\"pks\",\"pkt\",\"pku\",\"pla\",\"plb\",\"plc\",\"pld\",\"ple\",\"plf\",\"plg\",\"plh\",\"plj\",\"plk\",\"pll\",\"pln\",\"plo\",\"plp\",\"plq\",\"plr\",\"pls\",\"plt\",\"plu\",\"plv\",\"plw\",\"ply\",\"plz\",\"pma\",\"pmb\",\"pmc\",\"pmd\",\"pme\",\"pmf\",\"pmh\",\"pmi\",\"pmj\",\"pmk\",\"pml\",\"pmm\",\"pmn\",\"pmo\",\"pmq\",\"pmr\",\"pms\",\"pmt\",\"pmu\",\"pmw\",\"pmx\",\"pmy\",\"pmz\",\"pna\",\"pnb\",\"pnc\",\"pne\",\"png\",\"pnh\",\"pni\",\"pnj\",\"pnk\",\"pnl\",\"pnm\",\"pnn\",\"pno\",\"pnp\",\"pnq\",\"pnr\",\"pns\",\"pnt\",\"pnu\",\"pnv\",\"pnw\",\"pnx\",\"pny\",\"pnz\",\"poc\",\"pod\",\"poe\",\"pof\",\"pog\",\"poh\",\"poi\",\"pok\",\"pom\",\"pon\",\"poo\",\"pop\",\"poq\",\"pos\",\"pot\",\"pov\",\"pow\",\"pox\",\"poy\",\"poz\",\"ppa\",\"ppe\",\"ppi\",\"ppk\",\"ppl\",\"ppm\",\"ppn\",\"ppo\",\"ppp\",\"ppq\",\"ppr\",\"pps\",\"ppt\",\"ppu\",\"pqa\",\"pqe\",\"pqm\",\"pqw\",\"pra\",\"prb\",\"prc\",\"prd\",\"pre\",\"prf\",\"prg\",\"prh\",\"pri\",\"prk\",\"prl\",\"prm\",\"prn\",\"pro\",\"prp\",\"prq\",\"prr\",\"prs\",\"prt\",\"pru\",\"prw\",\"prx\",\"pry\",\"prz\",\"psa\",\"psc\",\"psd\",\"pse\",\"psg\",\"psh\",\"psi\",\"psl\",\"psm\",\"psn\",\"pso\",\"psp\",\"psq\",\"psr\",\"pss\",\"pst\",\"psu\",\"psw\",\"psy\",\"pta\",\"pth\",\"pti\",\"ptn\",\"pto\",\"ptp\",\"ptq\",\"ptr\",\"ptt\",\"ptu\",\"ptv\",\"ptw\",\"pty\",\"pua\",\"pub\",\"puc\",\"pud\",\"pue\",\"puf\",\"pug\",\"pui\",\"puj\",\"puk\",\"pum\",\"puo\",\"pup\",\"puq\",\"pur\",\"put\",\"puu\",\"puw\",\"pux\",\"puy\",\"puz\",\"pwa\",\"pwb\",\"pwg\",\"pwi\",\"pwm\",\"pwn\",\"pwo\",\"pwr\",\"pww\",\"pxm\",\"pye\",\"pym\",\"pyn\",\"pys\",\"pyu\",\"pyx\",\"pyy\",\"pzn\",\"qaa..qtz\",\"qua\",\"qub\",\"quc\",\"qud\",\"quf\",\"qug\",\"quh\",\"qui\",\"quk\",\"qul\",\"qum\",\"qun\",\"qup\",\"quq\",\"qur\",\"qus\",\"quv\",\"quw\",\"qux\",\"quy\",\"quz\",\"qva\",\"qvc\",\"qve\",\"qvh\",\"qvi\",\"qvj\",\"qvl\",\"qvm\",\"qvn\",\"qvo\",\"qvp\",\"qvs\",\"qvw\",\"qvy\",\"qvz\",\"qwa\",\"qwc\",\"qwe\",\"qwh\",\"qwm\",\"qws\",\"qwt\",\"qxa\",\"qxc\",\"qxh\",\"qxl\",\"qxn\",\"qxo\",\"qxp\",\"qxq\",\"qxr\",\"qxs\",\"qxt\",\"qxu\",\"qxw\",\"qya\",\"qyp\",\"raa\",\"rab\",\"rac\",\"rad\",\"raf\",\"rag\",\"rah\",\"rai\",\"raj\",\"rak\",\"ral\",\"ram\",\"ran\",\"rao\",\"rap\",\"raq\",\"rar\",\"ras\",\"rat\",\"rau\",\"rav\",\"raw\",\"rax\",\"ray\",\"raz\",\"rbb\",\"rbk\",\"rbl\",\"rbp\",\"rcf\",\"rdb\",\"rea\",\"reb\",\"ree\",\"reg\",\"rei\",\"rej\",\"rel\",\"rem\",\"ren\",\"rer\",\"res\",\"ret\",\"rey\",\"rga\",\"rge\",\"rgk\",\"rgn\",\"rgr\",\"rgs\",\"rgu\",\"rhg\",\"rhp\",\"ria\",\"rie\",\"rif\",\"ril\",\"rim\",\"rin\",\"rir\",\"rit\",\"riu\",\"rjg\",\"rji\",\"rjs\",\"rka\",\"rkb\",\"rkh\",\"rki\",\"rkm\",\"rkt\",\"rkw\",\"rma\",\"rmb\",\"rmc\",\"rmd\",\"rme\",\"rmf\",\"rmg\",\"rmh\",\"rmi\",\"rmk\",\"rml\",\"rmm\",\"rmn\",\"rmo\",\"rmp\",\"rmq\",\"rmr\",\"rms\",\"rmt\",\"rmu\",\"rmv\",\"rmw\",\"rmx\",\"rmy\",\"rmz\",\"rna\",\"rnd\",\"rng\",\"rnl\",\"rnn\",\"rnp\",\"rnr\",\"rnw\",\"roa\",\"rob\",\"roc\",\"rod\",\"roe\",\"rof\",\"rog\",\"rol\",\"rom\",\"roo\",\"rop\",\"ror\",\"rou\",\"row\",\"rpn\",\"rpt\",\"rri\",\"rro\",\"rrt\",\"rsb\",\"rsi\",\"rsl\",\"rsm\",\"rtc\",\"rth\",\"rtm\",\"rts\",\"rtw\",\"rub\",\"ruc\",\"rue\",\"ruf\",\"rug\",\"ruh\",\"rui\",\"ruk\",\"ruo\",\"rup\",\"ruq\",\"rut\",\"ruu\",\"ruy\",\"ruz\",\"rwa\",\"rwk\",\"rwm\",\"rwo\",\"rwr\",\"rxd\",\"rxw\",\"ryn\",\"rys\",\"ryu\",\"rzh\",\"saa\",\"sab\",\"sac\",\"sad\",\"sae\",\"saf\",\"sah\",\"sai\",\"saj\",\"sak\",\"sal\",\"sam\",\"sao\",\"sap\",\"saq\",\"sar\",\"sas\",\"sat\",\"sau\",\"sav\",\"saw\",\"sax\",\"say\",\"saz\",\"sba\",\"sbb\",\"sbc\",\"sbd\",\"sbe\",\"sbf\",\"sbg\",\"sbh\",\"sbi\",\"sbj\",\"sbk\",\"sbl\",\"sbm\",\"sbn\",\"sbo\",\"sbp\",\"sbq\",\"sbr\",\"sbs\",\"sbt\",\"sbu\",\"sbv\",\"sbw\",\"sbx\",\"sby\",\"sbz\",\"sca\",\"scb\",\"sce\",\"scf\",\"scg\",\"sch\",\"sci\",\"sck\",\"scl\",\"scn\",\"sco\",\"scp\",\"scq\",\"scs\",\"sct\",\"scu\",\"scv\",\"scw\",\"scx\",\"sda\",\"sdb\",\"sdc\",\"sde\",\"sdf\",\"sdg\",\"sdh\",\"sdj\",\"sdk\",\"sdl\",\"sdm\",\"sdn\",\"sdo\",\"sdp\",\"sdr\",\"sds\",\"sdt\",\"sdu\",\"sdv\",\"sdx\",\"sdz\",\"sea\",\"seb\",\"sec\",\"sed\",\"see\",\"sef\",\"seg\",\"seh\",\"sei\",\"sej\",\"sek\",\"sel\",\"sem\",\"sen\",\"seo\",\"sep\",\"seq\",\"ser\",\"ses\",\"set\",\"seu\",\"sev\",\"sew\",\"sey\",\"sez\",\"sfb\",\"sfe\",\"sfm\",\"sfs\",\"sfw\",\"sga\",\"sgb\",\"sgc\",\"sgd\",\"sge\",\"sgg\",\"sgh\",\"sgi\",\"sgj\",\"sgk\",\"sgl\",\"sgm\",\"sgn\",\"sgo\",\"sgp\",\"sgr\",\"sgs\",\"sgt\",\"sgu\",\"sgw\",\"sgx\",\"sgy\",\"sgz\",\"sha\",\"shb\",\"shc\",\"shd\",\"she\",\"shg\",\"shh\",\"shi\",\"shj\",\"shk\",\"shl\",\"shm\",\"shn\",\"sho\",\"shp\",\"shq\",\"shr\",\"shs\",\"sht\",\"shu\",\"shv\",\"shw\",\"shx\",\"shy\",\"shz\",\"sia\",\"sib\",\"sid\",\"sie\",\"sif\",\"sig\",\"sih\",\"sii\",\"sij\",\"sik\",\"sil\",\"sim\",\"sio\",\"sip\",\"siq\",\"sir\",\"sis\",\"sit\",\"siu\",\"siv\",\"siw\",\"six\",\"siy\",\"siz\",\"sja\",\"sjb\",\"sjd\",\"sje\",\"sjg\",\"sjk\",\"sjl\",\"sjm\",\"sjn\",\"sjo\",\"sjp\",\"sjr\",\"sjs\",\"sjt\",\"sju\",\"sjw\",\"ska\",\"skb\",\"skc\",\"skd\",\"ske\",\"skf\",\"skg\",\"skh\",\"ski\",\"skj\",\"skk\",\"skm\",\"skn\",\"sko\",\"skp\",\"skq\",\"skr\",\"sks\",\"skt\",\"sku\",\"skv\",\"skw\",\"skx\",\"sky\",\"skz\",\"sla\",\"slc\",\"sld\",\"sle\",\"slf\",\"slg\",\"slh\",\"sli\",\"slj\",\"sll\",\"slm\",\"sln\",\"slp\",\"slq\",\"slr\",\"sls\",\"slt\",\"slu\",\"slw\",\"slx\",\"sly\",\"slz\",\"sma\",\"smb\",\"smc\",\"smd\",\"smf\",\"smg\",\"smh\",\"smi\",\"smj\",\"smk\",\"sml\",\"smm\",\"smn\",\"smp\",\"smq\",\"smr\",\"sms\",\"smt\",\"smu\",\"smv\",\"smw\",\"smx\",\"smy\",\"smz\",\"snb\",\"snc\",\"sne\",\"snf\",\"sng\",\"snh\",\"sni\",\"snj\",\"snk\",\"snl\",\"snm\",\"snn\",\"sno\",\"snp\",\"snq\",\"snr\",\"sns\",\"snu\",\"snv\",\"snw\",\"snx\",\"sny\",\"snz\",\"soa\",\"sob\",\"soc\",\"sod\",\"soe\",\"sog\",\"soh\",\"soi\",\"soj\",\"sok\",\"sol\",\"son\",\"soo\",\"sop\",\"soq\",\"sor\",\"sos\",\"sou\",\"sov\",\"sow\",\"sox\",\"soy\",\"soz\",\"spb\",\"spc\",\"spd\",\"spe\",\"spg\",\"spi\",\"spk\",\"spl\",\"spm\",\"spn\",\"spo\",\"spp\",\"spq\",\"spr\",\"sps\",\"spt\",\"spu\",\"spv\",\"spx\",\"spy\",\"sqa\",\"sqh\",\"sqj\",\"sqk\",\"sqm\",\"sqn\",\"sqo\",\"sqq\",\"sqr\",\"sqs\",\"sqt\",\"squ\",\"sra\",\"srb\",\"src\",\"sre\",\"srf\",\"srg\",\"srh\",\"sri\",\"srk\",\"srl\",\"srm\",\"srn\",\"sro\",\"srq\",\"srr\",\"srs\",\"srt\",\"sru\",\"srv\",\"srw\",\"srx\",\"sry\",\"srz\",\"ssa\",\"ssb\",\"ssc\",\"ssd\",\"sse\",\"ssf\",\"ssg\",\"ssh\",\"ssi\",\"ssj\",\"ssk\",\"ssl\",\"ssm\",\"ssn\",\"sso\",\"ssp\",\"ssq\",\"ssr\",\"sss\",\"sst\",\"ssu\",\"ssv\",\"ssx\",\"ssy\",\"ssz\",\"sta\",\"stb\",\"std\",\"ste\",\"stf\",\"stg\",\"sth\",\"sti\",\"stj\",\"stk\",\"stl\",\"stm\",\"stn\",\"sto\",\"stp\",\"stq\",\"str\",\"sts\",\"stt\",\"stu\",\"stv\",\"stw\",\"sty\",\"sua\",\"sub\",\"suc\",\"sue\",\"sug\",\"sui\",\"suj\",\"suk\",\"sul\",\"sum\",\"suq\",\"sur\",\"sus\",\"sut\",\"suv\",\"suw\",\"sux\",\"suy\",\"suz\",\"sva\",\"svb\",\"svc\",\"sve\",\"svk\",\"svm\",\"svr\",\"svs\",\"svx\",\"swb\",\"swc\",\"swf\",\"swg\",\"swh\",\"swi\",\"swj\",\"swk\",\"swl\",\"swm\",\"swn\",\"swo\",\"swp\",\"swq\",\"swr\",\"sws\",\"swt\",\"swu\",\"swv\",\"sww\",\"swx\",\"swy\",\"sxb\",\"sxc\",\"sxe\",\"sxg\",\"sxk\",\"sxl\",\"sxm\",\"sxn\",\"sxo\",\"sxr\",\"sxs\",\"sxu\",\"sxw\",\"sya\",\"syb\",\"syc\",\"syd\",\"syi\",\"syk\",\"syl\",\"sym\",\"syn\",\"syo\",\"syr\",\"sys\",\"syw\",\"syx\",\"syy\",\"sza\",\"szb\",\"szc\",\"szd\",\"sze\",\"szg\",\"szl\",\"szn\",\"szp\",\"szs\",\"szv\",\"szw\",\"taa\",\"tab\",\"tac\",\"tad\",\"tae\",\"taf\",\"tag\",\"tai\",\"taj\",\"tak\",\"tal\",\"tan\",\"tao\",\"tap\",\"taq\",\"tar\",\"tas\",\"tau\",\"tav\",\"taw\",\"tax\",\"tay\",\"taz\",\"tba\",\"tbb\",\"tbc\",\"tbd\",\"tbe\",\"tbf\",\"tbg\",\"tbh\",\"tbi\",\"tbj\",\"tbk\",\"tbl\",\"tbm\",\"tbn\",\"tbo\",\"tbp\",\"tbq\",\"tbr\",\"tbs\",\"tbt\",\"tbu\",\"tbv\",\"tbw\",\"tbx\",\"tby\",\"tbz\",\"tca\",\"tcb\",\"tcc\",\"tcd\",\"tce\",\"tcf\",\"tcg\",\"tch\",\"tci\",\"tck\",\"tcl\",\"tcm\",\"tcn\",\"tco\",\"tcp\",\"tcq\",\"tcs\",\"tct\",\"tcu\",\"tcw\",\"tcx\",\"tcy\",\"tcz\",\"tda\",\"tdb\",\"tdc\",\"tdd\",\"tde\",\"tdf\",\"tdg\",\"tdh\",\"tdi\",\"tdj\",\"tdk\",\"tdl\",\"tdm\",\"tdn\",\"tdo\",\"tdq\",\"tdr\",\"tds\",\"tdt\",\"tdu\",\"tdv\",\"tdx\",\"tdy\",\"tea\",\"teb\",\"tec\",\"ted\",\"tee\",\"tef\",\"teg\",\"teh\",\"tei\",\"tek\",\"tem\",\"ten\",\"teo\",\"tep\",\"teq\",\"ter\",\"tes\",\"tet\",\"teu\",\"tev\",\"tew\",\"tex\",\"tey\",\"tez\",\"tfi\",\"tfn\",\"tfo\",\"tfr\",\"tft\",\"tga\",\"tgb\",\"tgc\",\"tgd\",\"tge\",\"tgf\",\"tgg\",\"tgh\",\"tgi\",\"tgj\",\"tgn\",\"tgo\",\"tgp\",\"tgq\",\"tgr\",\"tgs\",\"tgt\",\"tgu\",\"tgv\",\"tgw\",\"tgx\",\"tgy\",\"tgz\",\"thc\",\"thd\",\"the\",\"thf\",\"thh\",\"thi\",\"thk\",\"thl\",\"thm\",\"thn\",\"thp\",\"thq\",\"thr\",\"ths\",\"tht\",\"thu\",\"thv\",\"thw\",\"thx\",\"thy\",\"thz\",\"tia\",\"tic\",\"tid\",\"tie\",\"tif\",\"tig\",\"tih\",\"tii\",\"tij\",\"tik\",\"til\",\"tim\",\"tin\",\"tio\",\"tip\",\"tiq\",\"tis\",\"tit\",\"tiu\",\"tiv\",\"tiw\",\"tix\",\"tiy\",\"tiz\",\"tja\",\"tjg\",\"tji\",\"tjl\",\"tjm\",\"tjn\",\"tjo\",\"tjs\",\"tju\",\"tjw\",\"tka\",\"tkb\",\"tkd\",\"tke\",\"tkf\",\"tkg\",\"tkk\",\"tkl\",\"tkm\",\"tkn\",\"tkp\",\"tkq\",\"tkr\",\"tks\",\"tkt\",\"tku\",\"tkv\",\"tkw\",\"tkx\",\"tkz\",\"tla\",\"tlb\",\"tlc\",\"tld\",\"tlf\",\"tlg\",\"tlh\",\"tli\",\"tlj\",\"tlk\",\"tll\",\"tlm\",\"tln\",\"tlo\",\"tlp\",\"tlq\",\"tlr\",\"tls\",\"tlt\",\"tlu\",\"tlv\",\"tlw\",\"tlx\",\"tly\",\"tma\",\"tmb\",\"tmc\",\"tmd\",\"tme\",\"tmf\",\"tmg\",\"tmh\",\"tmi\",\"tmj\",\"tmk\",\"tml\",\"tmm\",\"tmn\",\"tmo\",\"tmp\",\"tmq\",\"tmr\",\"tms\",\"tmt\",\"tmu\",\"tmv\",\"tmw\",\"tmy\",\"tmz\",\"tna\",\"tnb\",\"tnc\",\"tnd\",\"tne\",\"tnf\",\"tng\",\"tnh\",\"tni\",\"tnk\",\"tnl\",\"tnm\",\"tnn\",\"tno\",\"tnp\",\"tnq\",\"tnr\",\"tns\",\"tnt\",\"tnu\",\"tnv\",\"tnw\",\"tnx\",\"tny\",\"tnz\",\"tob\",\"toc\",\"tod\",\"toe\",\"tof\",\"tog\",\"toh\",\"toi\",\"toj\",\"tol\",\"tom\",\"too\",\"top\",\"toq\",\"tor\",\"tos\",\"tou\",\"tov\",\"tow\",\"tox\",\"toy\",\"toz\",\"tpa\",\"tpc\",\"tpe\",\"tpf\",\"tpg\",\"tpi\",\"tpj\",\"tpk\",\"tpl\",\"tpm\",\"tpn\",\"tpo\",\"tpp\",\"tpq\",\"tpr\",\"tpt\",\"tpu\",\"tpv\",\"tpw\",\"tpx\",\"tpy\",\"tpz\",\"tqb\",\"tql\",\"tqm\",\"tqn\",\"tqo\",\"tqp\",\"tqq\",\"tqr\",\"tqt\",\"tqu\",\"tqw\",\"tra\",\"trb\",\"trc\",\"trd\",\"tre\",\"trf\",\"trg\",\"trh\",\"tri\",\"trj\",\"trk\",\"trl\",\"trm\",\"trn\",\"tro\",\"trp\",\"trq\",\"trr\",\"trs\",\"trt\",\"tru\",\"trv\",\"trw\",\"trx\",\"try\",\"trz\",\"tsa\",\"tsb\",\"tsc\",\"tsd\",\"tse\",\"tsf\",\"tsg\",\"tsh\",\"tsi\",\"tsj\",\"tsk\",\"tsl\",\"tsm\",\"tsp\",\"tsq\",\"tsr\",\"tss\",\"tst\",\"tsu\",\"tsv\",\"tsw\",\"tsx\",\"tsy\",\"tsz\",\"tta\",\"ttb\",\"ttc\",\"ttd\",\"tte\",\"ttf\",\"ttg\",\"tth\",\"tti\",\"ttj\",\"ttk\",\"ttl\",\"ttm\",\"ttn\",\"tto\",\"ttp\",\"ttq\",\"ttr\",\"tts\",\"ttt\",\"ttu\",\"ttv\",\"ttw\",\"tty\",\"ttz\",\"tua\",\"tub\",\"tuc\",\"tud\",\"tue\",\"tuf\",\"tug\",\"tuh\",\"tui\",\"tuj\",\"tul\",\"tum\",\"tun\",\"tuo\",\"tup\",\"tuq\",\"tus\",\"tut\",\"tuu\",\"tuv\",\"tuw\",\"tux\",\"tuy\",\"tuz\",\"tva\",\"tvd\",\"tve\",\"tvk\",\"tvl\",\"tvm\",\"tvn\",\"tvo\",\"tvs\",\"tvt\",\"tvu\",\"tvw\",\"tvy\",\"twa\",\"twb\",\"twc\",\"twd\",\"twe\",\"twf\",\"twg\",\"twh\",\"twl\",\"twm\",\"twn\",\"two\",\"twp\",\"twq\",\"twr\",\"twt\",\"twu\",\"tww\",\"twx\",\"twy\",\"txa\",\"txb\",\"txc\",\"txe\",\"txg\",\"txh\",\"txi\",\"txj\",\"txm\",\"txn\",\"txo\",\"txq\",\"txr\",\"txs\",\"txt\",\"txu\",\"txx\",\"txy\",\"tya\",\"tye\",\"tyh\",\"tyi\",\"tyj\",\"tyl\",\"tyn\",\"typ\",\"tyr\",\"tys\",\"tyt\",\"tyu\",\"tyv\",\"tyx\",\"tyz\",\"tza\",\"tzh\",\"tzj\",\"tzl\",\"tzm\",\"tzn\",\"tzo\",\"tzx\",\"uam\",\"uan\",\"uar\",\"uba\",\"ubi\",\"ubl\",\"ubr\",\"ubu\",\"uby\",\"uda\",\"ude\",\"udg\",\"udi\",\"udj\",\"udl\",\"udm\",\"udu\",\"ues\",\"ufi\",\"uga\",\"ugb\",\"uge\",\"ugn\",\"ugo\",\"ugy\",\"uha\",\"uhn\",\"uis\",\"uiv\",\"uji\",\"uka\",\"ukg\",\"ukh\",\"ukk\",\"ukl\",\"ukp\",\"ukq\",\"uks\",\"uku\",\"ukw\",\"uky\",\"ula\",\"ulb\",\"ulc\",\"ule\",\"ulf\",\"uli\",\"ulk\",\"ull\",\"ulm\",\"uln\",\"ulu\",\"ulw\",\"uma\",\"umb\",\"umc\",\"umd\",\"umg\",\"umi\",\"umm\",\"umn\",\"umo\",\"ump\",\"umr\",\"ums\",\"umu\",\"una\",\"und\",\"une\",\"ung\",\"unk\",\"unm\",\"unn\",\"unp\",\"unr\",\"unu\",\"unx\",\"unz\",\"uok\",\"upi\",\"upv\",\"ura\",\"urb\",\"urc\",\"ure\",\"urf\",\"urg\",\"urh\",\"uri\",\"urj\",\"urk\",\"url\",\"urm\",\"urn\",\"uro\",\"urp\",\"urr\",\"urt\",\"uru\",\"urv\",\"urw\",\"urx\",\"ury\",\"urz\",\"usa\",\"ush\",\"usi\",\"usk\",\"usp\",\"usu\",\"uta\",\"ute\",\"utp\",\"utr\",\"utu\",\"uum\",\"uun\",\"uur\",\"uuu\",\"uve\",\"uvh\",\"uvl\",\"uwa\",\"uya\",\"uzn\",\"uzs\",\"vaa\",\"vae\",\"vaf\",\"vag\",\"vah\",\"vai\",\"vaj\",\"val\",\"vam\",\"van\",\"vao\",\"vap\",\"var\",\"vas\",\"vau\",\"vav\",\"vay\",\"vbb\",\"vbk\",\"vec\",\"ved\",\"vel\",\"vem\",\"veo\",\"vep\",\"ver\",\"vgr\",\"vgt\",\"vic\",\"vid\",\"vif\",\"vig\",\"vil\",\"vin\",\"vis\",\"vit\",\"viv\",\"vka\",\"vki\",\"vkj\",\"vkk\",\"vkl\",\"vkm\",\"vko\",\"vkp\",\"vkt\",\"vku\",\"vlp\",\"vls\",\"vma\",\"vmb\",\"vmc\",\"vmd\",\"vme\",\"vmf\",\"vmg\",\"vmh\",\"vmi\",\"vmj\",\"vmk\",\"vml\",\"vmm\",\"vmp\",\"vmq\",\"vmr\",\"vms\",\"vmu\",\"vmv\",\"vmw\",\"vmx\",\"vmy\",\"vmz\",\"vnk\",\"vnm\",\"vnp\",\"vor\",\"vot\",\"vra\",\"vro\",\"vrs\",\"vrt\",\"vsi\",\"vsl\",\"vsv\",\"vto\",\"vum\",\"vun\",\"vut\",\"vwa\",\"waa\",\"wab\",\"wac\",\"wad\",\"wae\",\"waf\",\"wag\",\"wah\",\"wai\",\"waj\",\"wak\",\"wal\",\"wam\",\"wan\",\"wao\",\"wap\",\"waq\",\"war\",\"was\",\"wat\",\"wau\",\"wav\",\"waw\",\"wax\",\"way\",\"waz\",\"wba\",\"wbb\",\"wbe\",\"wbf\",\"wbh\",\"wbi\",\"wbj\",\"wbk\",\"wbl\",\"wbm\",\"wbp\",\"wbq\",\"wbr\",\"wbs\",\"wbt\",\"wbv\",\"wbw\",\"wca\",\"wci\",\"wdd\",\"wdg\",\"wdj\",\"wdk\",\"wdu\",\"wdy\",\"wea\",\"wec\",\"wed\",\"weg\",\"weh\",\"wei\",\"wem\",\"wen\",\"weo\",\"wep\",\"wer\",\"wes\",\"wet\",\"weu\",\"wew\",\"wfg\",\"wga\",\"wgb\",\"wgg\",\"wgi\",\"wgo\",\"wgu\",\"wgw\",\"wgy\",\"wha\",\"whg\",\"whk\",\"whu\",\"wib\",\"wic\",\"wie\",\"wif\",\"wig\",\"wih\",\"wii\",\"wij\",\"wik\",\"wil\",\"wim\",\"win\",\"wir\",\"wit\",\"wiu\",\"wiv\",\"wiw\",\"wiy\",\"wja\",\"wji\",\"wka\",\"wkb\",\"wkd\",\"wkl\",\"wku\",\"wkw\",\"wky\",\"wla\",\"wlc\",\"wle\",\"wlg\",\"wli\",\"wlk\",\"wll\",\"wlm\",\"wlo\",\"wlr\",\"wls\",\"wlu\",\"wlv\",\"wlw\",\"wlx\",\"wly\",\"wma\",\"wmb\",\"wmc\",\"wmd\",\"wme\",\"wmh\",\"wmi\",\"wmm\",\"wmn\",\"wmo\",\"wms\",\"wmt\",\"wmw\",\"wmx\",\"wnb\",\"wnc\",\"wnd\",\"wne\",\"wng\",\"wni\",\"wnk\",\"wnm\",\"wnn\",\"wno\",\"wnp\",\"wnu\",\"wnw\",\"wny\",\"woa\",\"wob\",\"woc\",\"wod\",\"woe\",\"wof\",\"wog\",\"woi\",\"wok\",\"wom\",\"won\",\"woo\",\"wor\",\"wos\",\"wow\",\"woy\",\"wpc\",\"wra\",\"wrb\",\"wrd\",\"wrg\",\"wrh\",\"wri\",\"wrk\",\"wrl\",\"wrm\",\"wrn\",\"wro\",\"wrp\",\"wrr\",\"wrs\",\"wru\",\"wrv\",\"wrw\",\"wrx\",\"wry\",\"wrz\",\"wsa\",\"wsg\",\"wsi\",\"wsk\",\"wsr\",\"wss\",\"wsu\",\"wsv\",\"wtf\",\"wth\",\"wti\",\"wtk\",\"wtm\",\"wtw\",\"wua\",\"wub\",\"wud\",\"wuh\",\"wul\",\"wum\",\"wun\",\"wur\",\"wut\",\"wuu\",\"wuv\",\"wux\",\"wuy\",\"wwa\",\"wwb\",\"wwo\",\"wwr\",\"www\",\"wxa\",\"wxw\",\"wya\",\"wyb\",\"wyi\",\"wym\",\"wyr\",\"wyy\",\"xaa\",\"xab\",\"xac\",\"xad\",\"xae\",\"xag\",\"xai\",\"xaj\",\"xak\",\"xal\",\"xam\",\"xan\",\"xao\",\"xap\",\"xaq\",\"xar\",\"xas\",\"xat\",\"xau\",\"xav\",\"xaw\",\"xay\",\"xba\",\"xbb\",\"xbc\",\"xbd\",\"xbe\",\"xbg\",\"xbi\",\"xbj\",\"xbm\",\"xbn\",\"xbo\",\"xbp\",\"xbr\",\"xbw\",\"xbx\",\"xby\",\"xcb\",\"xcc\",\"xce\",\"xcg\",\"xch\",\"xcl\",\"xcm\",\"xcn\",\"xco\",\"xcr\",\"xct\",\"xcu\",\"xcv\",\"xcw\",\"xcy\",\"xda\",\"xdc\",\"xdk\",\"xdm\",\"xdo\",\"xdy\",\"xeb\",\"xed\",\"xeg\",\"xel\",\"xem\",\"xep\",\"xer\",\"xes\",\"xet\",\"xeu\",\"xfa\",\"xga\",\"xgb\",\"xgd\",\"xgf\",\"xgg\",\"xgi\",\"xgl\",\"xgm\",\"xgn\",\"xgr\",\"xgu\",\"xgw\",\"xha\",\"xhc\",\"xhd\",\"xhe\",\"xhr\",\"xht\",\"xhu\",\"xhv\",\"xia\",\"xib\",\"xii\",\"xil\",\"xin\",\"xip\",\"xir\",\"xis\",\"xiv\",\"xiy\",\"xjb\",\"xjt\",\"xka\",\"xkb\",\"xkc\",\"xkd\",\"xke\",\"xkf\",\"xkg\",\"xkh\",\"xki\",\"xkj\",\"xkk\",\"xkl\",\"xkn\",\"xko\",\"xkp\",\"xkq\",\"xkr\",\"xks\",\"xkt\",\"xku\",\"xkv\",\"xkw\",\"xkx\",\"xky\",\"xkz\",\"xla\",\"xlb\",\"xlc\",\"xld\",\"xle\",\"xlg\",\"xli\",\"xln\",\"xlo\",\"xlp\",\"xls\",\"xlu\",\"xly\",\"xma\",\"xmb\",\"xmc\",\"xmd\",\"xme\",\"xmf\",\"xmg\",\"xmh\",\"xmj\",\"xmk\",\"xml\",\"xmm\",\"xmn\",\"xmo\",\"xmp\",\"xmq\",\"xmr\",\"xms\",\"xmt\",\"xmu\",\"xmv\",\"xmw\",\"xmx\",\"xmy\",\"xmz\",\"xna\",\"xnb\",\"xnd\",\"xng\",\"xnh\",\"xni\",\"xnk\",\"xnn\",\"xno\",\"xnr\",\"xns\",\"xnt\",\"xnu\",\"xny\",\"xnz\",\"xoc\",\"xod\",\"xog\",\"xoi\",\"xok\",\"xom\",\"xon\",\"xoo\",\"xop\",\"xor\",\"xow\",\"xpa\",\"xpc\",\"xpe\",\"xpg\",\"xpi\",\"xpj\",\"xpk\",\"xpm\",\"xpn\",\"xpo\",\"xpp\",\"xpq\",\"xpr\",\"xps\",\"xpt\",\"xpu\",\"xpy\",\"xqa\",\"xqt\",\"xra\",\"xrb\",\"xrd\",\"xre\",\"xrg\",\"xri\",\"xrm\",\"xrn\",\"xrq\",\"xrr\",\"xrt\",\"xru\",\"xrw\",\"xsa\",\"xsb\",\"xsc\",\"xsd\",\"xse\",\"xsh\",\"xsi\",\"xsj\",\"xsl\",\"xsm\",\"xsn\",\"xso\",\"xsp\",\"xsq\",\"xsr\",\"xss\",\"xsu\",\"xsv\",\"xsy\",\"xta\",\"xtb\",\"xtc\",\"xtd\",\"xte\",\"xtg\",\"xth\",\"xti\",\"xtj\",\"xtl\",\"xtm\",\"xtn\",\"xto\",\"xtp\",\"xtq\",\"xtr\",\"xts\",\"xtt\",\"xtu\",\"xtv\",\"xtw\",\"xty\",\"xtz\",\"xua\",\"xub\",\"xud\",\"xug\",\"xuj\",\"xul\",\"xum\",\"xun\",\"xuo\",\"xup\",\"xur\",\"xut\",\"xuu\",\"xve\",\"xvi\",\"xvn\",\"xvo\",\"xvs\",\"xwa\",\"xwc\",\"xwd\",\"xwe\",\"xwg\",\"xwj\",\"xwk\",\"xwl\",\"xwo\",\"xwr\",\"xwt\",\"xww\",\"xxb\",\"xxk\",\"xxm\",\"xxr\",\"xxt\",\"xya\",\"xyb\",\"xyj\",\"xyk\",\"xyl\",\"xyt\",\"xyy\",\"xzh\",\"xzm\",\"xzp\",\"yaa\",\"yab\",\"yac\",\"yad\",\"yae\",\"yaf\",\"yag\",\"yah\",\"yai\",\"yaj\",\"yak\",\"yal\",\"yam\",\"yan\",\"yao\",\"yap\",\"yaq\",\"yar\",\"yas\",\"yat\",\"yau\",\"yav\",\"yaw\",\"yax\",\"yay\",\"yaz\",\"yba\",\"ybb\",\"ybd\",\"ybe\",\"ybh\",\"ybi\",\"ybj\",\"ybk\",\"ybl\",\"ybm\",\"ybn\",\"ybo\",\"ybx\",\"yby\",\"ych\",\"ycl\",\"ycn\",\"ycp\",\"yda\",\"ydd\",\"yde\",\"ydg\",\"ydk\",\"yds\",\"yea\",\"yec\",\"yee\",\"yei\",\"yej\",\"yel\",\"yen\",\"yer\",\"yes\",\"yet\",\"yeu\",\"yev\",\"yey\",\"yga\",\"ygi\",\"ygl\",\"ygm\",\"ygp\",\"ygr\",\"ygs\",\"ygu\",\"ygw\",\"yha\",\"yhd\",\"yhl\",\"yhs\",\"yia\",\"yif\",\"yig\",\"yih\",\"yii\",\"yij\",\"yik\",\"yil\",\"yim\",\"yin\",\"yip\",\"yiq\",\"yir\",\"yis\",\"yit\",\"yiu\",\"yiv\",\"yix\",\"yiy\",\"yiz\",\"yka\",\"ykg\",\"yki\",\"ykk\",\"ykl\",\"ykm\",\"ykn\",\"yko\",\"ykr\",\"ykt\",\"yku\",\"yky\",\"yla\",\"ylb\",\"yle\",\"ylg\",\"yli\",\"yll\",\"ylm\",\"yln\",\"ylo\",\"ylr\",\"ylu\",\"yly\",\"yma\",\"ymb\",\"ymc\",\"ymd\",\"yme\",\"ymg\",\"ymh\",\"ymi\",\"ymk\",\"yml\",\"ymm\",\"ymn\",\"ymo\",\"ymp\",\"ymq\",\"ymr\",\"yms\",\"ymt\",\"ymx\",\"ymz\",\"yna\",\"ynd\",\"yne\",\"yng\",\"ynh\",\"ynk\",\"ynl\",\"ynn\",\"yno\",\"ynq\",\"yns\",\"ynu\",\"yob\",\"yog\",\"yoi\",\"yok\",\"yol\",\"yom\",\"yon\",\"yos\",\"yot\",\"yox\",\"yoy\",\"ypa\",\"ypb\",\"ypg\",\"yph\",\"ypk\",\"ypm\",\"ypn\",\"ypo\",\"ypp\",\"ypz\",\"yra\",\"yrb\",\"yre\",\"yri\",\"yrk\",\"yrl\",\"yrm\",\"yrn\",\"yro\",\"yrs\",\"yrw\",\"yry\",\"ysc\",\"ysd\",\"ysg\",\"ysl\",\"ysn\",\"yso\",\"ysp\",\"ysr\",\"yss\",\"ysy\",\"yta\",\"ytl\",\"ytp\",\"ytw\",\"yty\",\"yua\",\"yub\",\"yuc\",\"yud\",\"yue\",\"yuf\",\"yug\",\"yui\",\"yuj\",\"yuk\",\"yul\",\"yum\",\"yun\",\"yup\",\"yuq\",\"yur\",\"yut\",\"yuu\",\"yuw\",\"yux\",\"yuy\",\"yuz\",\"yva\",\"yvt\",\"ywa\",\"ywg\",\"ywl\",\"ywn\",\"ywq\",\"ywr\",\"ywt\",\"ywu\",\"yww\",\"yxa\",\"yxg\",\"yxl\",\"yxm\",\"yxu\",\"yxy\",\"yyr\",\"yyu\",\"yyz\",\"yzg\",\"yzk\",\"zaa\",\"zab\",\"zac\",\"zad\",\"zae\",\"zaf\",\"zag\",\"zah\",\"zai\",\"zaj\",\"zak\",\"zal\",\"zam\",\"zao\",\"zap\",\"zaq\",\"zar\",\"zas\",\"zat\",\"zau\",\"zav\",\"zaw\",\"zax\",\"zay\",\"zaz\",\"zbc\",\"zbe\",\"zbl\",\"zbt\",\"zbw\",\"zca\",\"zch\",\"zdj\",\"zea\",\"zeg\",\"zeh\",\"zen\",\"zga\",\"zgb\",\"zgh\",\"zgm\",\"zgn\",\"zgr\",\"zhb\",\"zhd\",\"zhi\",\"zhn\",\"zhw\",\"zhx\",\"zia\",\"zib\",\"zik\",\"zil\",\"zim\",\"zin\",\"zir\",\"ziw\",\"ziz\",\"zka\",\"zkb\",\"zkd\",\"zkg\",\"zkh\",\"zkk\",\"zkn\",\"zko\",\"zkp\",\"zkr\",\"zkt\",\"zku\",\"zkv\",\"zkz\",\"zle\",\"zlj\",\"zlm\",\"zln\",\"zlq\",\"zls\",\"zlw\",\"zma\",\"zmb\",\"zmc\",\"zmd\",\"zme\",\"zmf\",\"zmg\",\"zmh\",\"zmi\",\"zmj\",\"zmk\",\"zml\",\"zmm\",\"zmn\",\"zmo\",\"zmp\",\"zmq\",\"zmr\",\"zms\",\"zmt\",\"zmu\",\"zmv\",\"zmw\",\"zmx\",\"zmy\",\"zmz\",\"zna\",\"znd\",\"zne\",\"zng\",\"znk\",\"zns\",\"zoc\",\"zoh\",\"zom\",\"zoo\",\"zoq\",\"zor\",\"zos\",\"zpa\",\"zpb\",\"zpc\",\"zpd\",\"zpe\",\"zpf\",\"zpg\",\"zph\",\"zpi\",\"zpj\",\"zpk\",\"zpl\",\"zpm\",\"zpn\",\"zpo\",\"zpp\",\"zpq\",\"zpr\",\"zps\",\"zpt\",\"zpu\",\"zpv\",\"zpw\",\"zpx\",\"zpy\",\"zpz\",\"zqe\",\"zra\",\"zrg\",\"zrn\",\"zro\",\"zrp\",\"zrs\",\"zsa\",\"zsk\",\"zsl\",\"zsm\",\"zsr\",\"zsu\",\"zte\",\"ztg\",\"ztl\",\"ztm\",\"ztn\",\"ztp\",\"ztq\",\"zts\",\"ztt\",\"ztu\",\"ztx\",\"zty\",\"zua\",\"zuh\",\"zum\",\"zun\",\"zuy\",\"zwa\",\"zxx\",\"zyb\",\"zyg\",\"zyj\",\"zyn\",\"zyp\",\"zza\",\"zzj\"];function Y(){return(Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function Pe(e){return Be(e)||Le(e)||Ie()}function Ie(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}function Le(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function Be(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}function X(e,t){return L(e)||I(e,t)||P()}function P(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}function I(e,t){if(!(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(n=(i=s.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){a=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(a)throw o}}return r}function L(e){if(Array.isArray(e))return e}function W(e){return(W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}axe.utils.validLangs=function(){\"use strict\";return et},axe._load({lang:\"en\",data:{rules:{accesskeys:{description:\"Ensures every accesskey attribute value is unique\",help:\"accesskey attribute value must be unique\"},\"area-alt\":{description:\"Ensures <area> elements of image maps have alternate text\",help:\"Active <area> elements must have alternate text\"},\"aria-allowed-attr\":{description:\"Ensures ARIA attributes are allowed for an element's role\",help:\"Elements must only use allowed ARIA attributes\"},\"aria-allowed-role\":{description:\"Ensures role attribute has an appropriate value for the element\",help:\"ARIA role must be appropriate for the element\"},\"aria-dpub-role-fallback\":{description:\"Ensures unsupported DPUB roles are only used on elements with implicit fallback roles\",help:\"Unsupported DPUB ARIA roles should be used on elements with implicit fallback roles\"},\"aria-hidden-body\":{description:\"Ensures aria-hidden='true' is not present on the document body.\",help:\"aria-hidden='true' must not be present on the document body\"},\"aria-hidden-focus\":{description:\"Ensures aria-hidden elements do not contain focusable elements\",help:\"ARIA hidden element must not contain focusable elements\"},\"aria-input-field-name\":{description:\"Ensures every ARIA input field has an accessible name\",help:\"ARIA input fields have an accessible name\"},\"aria-required-attr\":{description:\"Ensures elements with ARIA roles have all required ARIA attributes\",help:\"Required ARIA attributes must be provided\"},\"aria-required-children\":{description:\"Ensures elements with an ARIA role that require child roles contain them\",help:\"Certain ARIA roles must contain particular children\"},\"aria-required-parent\":{description:\"Ensures elements with an ARIA role that require parent roles are contained by them\",help:\"Certain ARIA roles must be contained by particular parents\"},\"aria-roledescription\":{description:\"Ensure aria-roledescription is only used on elements with an implicit or explicit role\",help:\"Use aria-roledescription on elements with a semantic role\"},\"aria-roles\":{description:\"Ensures all elements with a role attribute use a valid value\",help:\"ARIA roles used must conform to valid values\"},\"aria-toggle-field-name\":{description:\"Ensures every ARIA toggle field has an accessible name\",help:\"ARIA toggle fields have an accessible name\"},\"aria-valid-attr-value\":{description:\"Ensures all ARIA attributes have valid values\",help:\"ARIA attributes must conform to valid values\"},\"aria-valid-attr\":{description:\"Ensures attributes that begin with aria- are valid ARIA attributes\",help:\"ARIA attributes must conform to valid names\"},\"audio-caption\":{description:\"Ensures <audio> elements have captions\",help:\"<audio> elements must have a captions track\"},\"autocomplete-valid\":{description:\"Ensure the autocomplete attribute is correct and suitable for the form field\",help:\"autocomplete attribute must be used correctly\"},\"avoid-inline-spacing\":{description:\"Ensure that text spacing set through style attributes can be adjusted with custom stylesheets\",help:\"Inline text spacing must be adjustable with custom stylesheets\"},blink:{description:\"Ensures <blink> elements are not used\",help:\"<blink> elements are deprecated and must not be used\"},\"button-name\":{description:\"Ensures buttons have discernible text\",help:\"Buttons must have discernible text\"},bypass:{description:\"Ensures each page has at least one mechanism for a user to bypass navigation and jump straight to the content\",help:\"Page must have means to bypass repeated blocks\"},checkboxgroup:{description:'Ensures related <input type=\"checkbox\"> elements have a group and that the group designation is consistent',help:\"Checkbox inputs with the same name attribute value must be part of a group\"},\"color-contrast\":{description:\"Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds\",help:\"Elements must have sufficient color contrast\"},\"css-orientation-lock\":{description:\"Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations\",help:\"CSS Media queries are not used to lock display orientation\"},\"definition-list\":{description:\"Ensures <dl> elements are structured correctly\",help:\"<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements\"},dlitem:{description:\"Ensures <dt> and <dd> elements are contained by a <dl>\",help:\"<dt> and <dd> elements must be contained by a <dl>\"},\"document-title\":{description:\"Ensures each HTML document contains a non-empty <title> element\",help:\"Documents must have <title> element to aid in navigation\"},\"duplicate-id-active\":{description:\"Ensures every id attribute value of active elements is unique\",help:\"IDs of active elements must be unique\"},\"duplicate-id-aria\":{description:\"Ensures every id attribute value used in ARIA and in labels is unique\",help:\"IDs used in ARIA and labels must be unique\"},\"duplicate-id\":{description:\"Ensures every id attribute value is unique\",help:\"id attribute value must be unique\"},\"empty-heading\":{description:\"Ensures headings have discernible text\",help:\"Headings must not be empty\"},\"focus-order-semantics\":{description:\"Ensures elements in the focus order have an appropriate role\",help:\"Elements in the focus order need a role appropriate for interactive content\"},\"form-field-multiple-labels\":{description:\"Ensures form field does not have multiple label elements\",help:\"Form field should not have multiple label elements\"},\"frame-tested\":{description:\"Ensures <iframe> and <frame> elements contain the axe-core script\",help:\"Frames must be tested with axe-core\"},\"frame-title-unique\":{description:\"Ensures <iframe> and <frame> elements contain a unique title attribute\",help:\"Frames must have a unique title attribute\"},\"frame-title\":{description:\"Ensures <iframe> and <frame> elements contain a non-empty title attribute\",help:\"Frames must have title attribute\"},\"heading-order\":{description:\"Ensures the order of headings is semantically correct\",help:\"Heading levels should only increase by one\"},\"hidden-content\":{description:\"Informs users about hidden content.\",help:\"Hidden content on the page cannot be analyzed\"},\"html-has-lang\":{description:\"Ensures every HTML document has a lang attribute\",help:\"<html> element must have a lang attribute\"},\"html-lang-valid\":{description:\"Ensures the lang attribute of the <html> element has a valid value\",help:\"<html> element must have a valid value for the lang attribute\"},\"html-xml-lang-mismatch\":{description:\"Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page\",help:\"HTML elements with lang and xml:lang must have the same base language\"},\"identical-links-same-purpose\":{description:\"Ensure that links with the same accessible name serve a similar purpose\",help:\"Links with the same name have a similar purpose\"},\"image-alt\":{description:\"Ensures <img> elements have alternate text or a role of none or presentation\",help:\"Images must have alternate text\"},\"image-redundant-alt\":{description:\"Ensure image alternative is not repeated as text\",help:\"Alternative text of images should not be repeated as text\"},\"input-button-name\":{description:\"Ensures input buttons have discernible text\",help:\"Input buttons must have discernible text\"},\"input-image-alt\":{description:'Ensures <input type=\"image\"> elements have alternate text',help:\"Image buttons must have alternate text\"},\"label-content-name-mismatch\":{description:\"Ensures that elements labelled through their content must have their visible text as part of their accessible name\",help:\"Elements must have their visible text as part of their accessible name\"},\"label-title-only\":{description:\"Ensures that every form element is not solely labeled using the title or aria-describedby attributes\",help:\"Form elements should have a visible label\"},label:{description:\"Ensures every form element has a label\",help:\"Form elements must have labels\"},\"landmark-banner-is-top-level\":{description:\"Ensures the banner landmark is at top level\",help:\"Banner landmark must not be contained in another landmark\"},\"landmark-complementary-is-top-level\":{description:\"Ensures the complementary landmark or aside is at top level\",help:\"Aside must not be contained in another landmark\"},\"landmark-contentinfo-is-top-level\":{description:\"Ensures the contentinfo landmark is at top level\",help:\"Contentinfo landmark must not be contained in another landmark\"},\"landmark-main-is-top-level\":{description:\"Ensures the main landmark is at top level\",help:\"Main landmark must not be contained in another landmark\"},\"landmark-no-duplicate-banner\":{description:\"Ensures the document has at most one banner landmark\",help:\"Document must not have more than one banner landmark\"},\"landmark-no-duplicate-contentinfo\":{description:\"Ensures the document has at most one contentinfo landmark\",help:\"Document must not have more than one contentinfo landmark\"},\"landmark-no-duplicate-main\":{description:\"Ensures the document has at most one main landmark\",help:\"Document must not have more than one main landmark\"},\"landmark-one-main\":{description:\"Ensures the document has a main landmark\",help:\"Document must have one main landmark\"},\"landmark-unique\":{help:\"Ensures landmarks are unique\",description:\"Landmarks must have a unique role or role/label/title (i.e. accessible name) combination\"},\"layout-table\":{description:\"Ensures presentational <table> elements do not use <th>, <caption> elements or the summary attribute\",help:\"Layout tables must not use data table elements\"},\"link-in-text-block\":{description:\"Links can be distinguished without relying on color\",help:\"Links must be distinguished from surrounding text in a way that does not rely on color\"},\"link-name\":{description:\"Ensures links have discernible text\",help:\"Links must have discernible text\"},list:{description:\"Ensures that lists are structured correctly\",help:\"<ul> and <ol> must only directly contain <li>, <script> or <template> elements\"},listitem:{description:\"Ensures <li> elements are used semantically\",help:\"<li> elements must be contained in a <ul> or <ol>\"},marquee:{description:\"Ensures <marquee> elements are not used\",help:\"<marquee> elements are deprecated and must not be used\"},\"meta-refresh\":{description:'Ensures <meta http-equiv=\"refresh\"> is not used',help:\"Timed refresh must not exist\"},\"meta-viewport-large\":{description:'Ensures <meta name=\"viewport\"> can scale a significant amount',help:\"Users should be able to zoom and scale the text up to 500%\"},\"meta-viewport\":{description:'Ensures <meta name=\"viewport\"> does not disable text scaling and zooming',help:\"Zooming and scaling must not be disabled\"},\"no-autoplay-audio\":{description:\"Ensures <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio\",help:\"<video> or <audio> elements do not autoplay audio\"},\"object-alt\":{description:\"Ensures <object> elements have alternate text\",help:\"<object> elements must have alternate text\"},\"p-as-heading\":{description:\"Ensure p elements are not used to style headings\",help:\"Bold, italic text and font-size are not used to style p elements as a heading\"},\"page-has-heading-one\":{description:\"Ensure that the page, or at least one of its frames contains a level-one heading\",help:\"Page must contain a level-one heading\"},radiogroup:{description:'Ensures related <input type=\"radio\"> elements have a group and that the group designation is consistent',help:\"Radio inputs with the same name attribute value must be part of a group\"},region:{description:\"Ensures all page content is contained by landmarks\",help:\"All page content must be contained by landmarks\"},\"role-img-alt\":{description:\"Ensures [role='img'] elements have alternate text\",help:\"[role='img'] elements have an alternative text\"},\"scope-attr-valid\":{description:\"Ensures the scope attribute is used correctly on tables\",help:\"scope attribute should be used correctly\"},\"scrollable-region-focusable\":{description:\"Elements that have scrollable content should be accessible by keyboard\",help:\"Ensure that scrollable region has keyboard access\"},\"server-side-image-map\":{description:\"Ensures that server-side image maps are not used\",help:\"Server-side image maps must not be used\"},\"skip-link\":{description:\"Ensure all skip links have a focusable target\",help:\"The skip-link target should exist and be focusable\"},\"svg-img-alt\":{description:\"Ensures svg elements with an img, graphics-document or graphics-symbol role have an accessible text\",help:\"svg elements with an img role have an alternative text\"},tabindex:{description:\"Ensures tabindex attribute values are not greater than 0\",help:\"Elements should not have tabindex greater than zero\"},\"table-duplicate-name\":{description:\"Ensure that tables do not have the same summary and caption\",help:\"The <caption> element should not contain the same text as the summary attribute\"},\"table-fake-caption\":{description:\"Ensure that tables with a caption use the <caption> element.\",help:\"Data or header cells should not be used to give caption to a data table.\"},\"td-has-header\":{description:\"Ensure that each non-empty data cell in a large table has one or more table headers\",help:\"All non-empty td element in table larger than 3 by 3 must have an associated table header\"},\"td-headers-attr\":{description:\"Ensure that each cell in a table using the headers refers to another cell in that table\",help:\"All cells in a table element that use the headers attribute must only refer to other cells of that same table\"},\"th-has-data-cells\":{description:\"Ensure that each table header in a data table refers to data cells\",help:\"All th elements and elements with role=columnheader/rowheader must have data cells they describe\"},\"valid-lang\":{description:\"Ensures lang attributes have valid values\",help:\"lang attribute must have a valid value\"},\"video-caption\":{description:\"Ensures <video> elements have captions\",help:\"<video> elements must have captions\"},\"video-description\":{description:\"Ensures <video> elements have audio descriptions\",help:\"<video> elements must have an audio description track\"}},checks:{accesskeys:{impact:\"serious\",messages:{pass:\"Accesskey attribute value is unique\",fail:\"Document has multiple elements with the same accesskey\"}},\"non-empty-alt\":{impact:\"critical\",messages:{pass:\"Element has a non-empty alt attribute\",fail:\"Element has no alt attribute or the alt attribute is empty\"}},\"non-empty-title\":{impact:\"serious\",messages:{pass:\"Element has a title attribute\",fail:\"Element has no title attribute or the title attribute is empty\"}},\"aria-label\":{impact:\"serious\",messages:{pass:\"aria-label attribute exists and is not empty\",fail:\"aria-label attribute does not exist or is empty\"}},\"aria-labelledby\":{impact:\"serious\",messages:{pass:\"aria-labelledby attribute exists and references elements that are visible to screen readers\",fail:\"aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\"}},\"aria-allowed-attr\":{impact:\"critical\",messages:{pass:\"ARIA attributes are used correctly for the defined role\",fail:{singular:\"ARIA attribute is not allowed: ${data.values}\",plural:\"ARIA attributes are not allowed: ${data.values}\"}}},\"aria-unsupported-attr\":{impact:\"critical\",messages:{pass:\"ARIA attribute is supported\",fail:\"ARIA attribute is not widely supported in screen readers and assistive technologies: ${data.values}\"}},\"aria-allowed-role\":{impact:\"minor\",messages:{pass:\"ARIA role is allowed for given element\",fail:{singular:\"ARIA role ${data.values} is not allowed for given element\",plural:\"ARIA roles ${data.values} are not allowed for given element\"},incomplete:{singular:\"ARIA role ${data.values} must be removed when the element is made visible, as it is not allowed for the element\",plural:\"ARIA roles ${data.values} must be removed when the element is made visible, as they are not allowed for the element\"}}},\"implicit-role-fallback\":{impact:\"moderate\",messages:{pass:\"Element’s implicit ARIA role is an appropriate fallback\",fail:\"Element’s implicit ARIA role is not a good fallback for the (unsupported) role\"}},\"aria-hidden-body\":{impact:\"critical\",messages:{pass:\"No aria-hidden attribute is present on document body\",fail:\"aria-hidden=true should not be present on the document body\"}},\"focusable-modal-open\":{impact:\"serious\",messages:{pass:\"No focusable elements while a modal is open\",incomplete:\"Check that focusable elements are not tabbable in the current state\"}},\"focusable-disabled\":{impact:\"serious\",messages:{pass:\"No focusable elements contained within element\",fail:\"Focusable content should be disabled or be removed from the DOM\"}},\"focusable-not-tabbable\":{impact:\"serious\",messages:{pass:\"No focusable elements contained within element\",fail:\"Focusable content should have tabindex='-1' or be removed from the DOM\"}},\"no-implicit-explicit-label\":{impact:\"moderate\",messages:{pass:\"There is no mismatch between a <label> and accessible name\",incomplete:\"Check that the <label> does not need be part of the ARIA ${data} field's name\"}},\"aria-required-attr\":{impact:\"critical\",messages:{pass:\"All required ARIA attributes are present\",fail:{singular:\"Required ARIA attribute not present: ${data.values}\",plural:\"Required ARIA attributes not present: ${data.values}\"}}},\"aria-required-children\":{impact:\"critical\",messages:{pass:\"Required ARIA children are present\",fail:{singular:\"Required ARIA child role not present: ${data.values}\",plural:\"Required ARIA children role not present: ${data.values}\"},incomplete:{singular:\"Expecting ARIA child role to be added: ${data.values}\",plural:\"Expecting ARIA children role to be added: ${data.values}\"}}},\"aria-required-parent\":{impact:\"critical\",messages:{pass:\"Required ARIA parent role present\",fail:{singular:\"Required ARIA parent role not present: ${data.values}\",plural:\"Required ARIA parents role not present: ${data.values}\"}}},\"aria-roledescription\":{impact:\"serious\",messages:{pass:\"aria-roledescription used on a supported semantic role\",incomplete:\"Check that the aria-roledescription is announced by supported screen readers\",fail:\"Give the element a role that supports aria-roledescription\"}},fallbackrole:{impact:\"serious\",messages:{pass:\"Only one role value used\",fail:\"Use only one role value, since fallback roles are not supported in older browsers\"}},invalidrole:{impact:\"critical\",messages:{pass:\"ARIA role is valid\",fail:{singular:\"Role must be one of the valid ARIA roles: ${data.values}\",plural:\"Roles must be one of the valid ARIA roles: ${data.values}\"}}},abstractrole:{impact:\"serious\",messages:{pass:\"Abstract roles are not used\",fail:{singular:\"Abstract role cannot be directly used: ${data.values}\",plural:\"Abstract roles cannot be directly used: ${data.values}\"}}},unsupportedrole:{impact:\"critical\",messages:{pass:\"ARIA role is supported\",fail:\"The role used is not widely supported in screen readers and assistive technologies: ${data.values}\"}},\"has-visible-text\":{impact:\"minor\",messages:{pass:\"Element has text that is visible to screen readers\",fail:\"Element does not have text that is visible to screen readers\"}},\"aria-valid-attr-value\":{impact:\"critical\",messages:{pass:\"ARIA attribute values are valid\",fail:{singular:\"Invalid ARIA attribute value: ${data.values}\",plural:\"Invalid ARIA attribute values: ${data.values}\"},incomplete:{noId:\"ARIA attribute element ID does not exist on the page: ${data.needsReview}\",ariaCurrent:'ARIA attribute value is invalid and will be treated as \"aria-current=true\": ${data.needsReview}'}}},\"aria-errormessage\":{impact:\"critical\",messages:{pass:\"Uses a supported aria-errormessage technique\",fail:{singular:\"aria-errormessage value `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)\",plural:\"aria-errormessage values `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)\"}}},\"aria-valid-attr\":{impact:\"critical\",messages:{pass:\"ARIA attribute name is valid\",fail:{singular:\"Invalid ARIA attribute name: ${data.values}\",plural:\"Invalid ARIA attribute names: ${data.values}\"}}},caption:{impact:\"critical\",messages:{pass:\"The multimedia element has a captions track\",incomplete:\"Check that captions is available for the element\"}},\"autocomplete-valid\":{impact:\"serious\",messages:{pass:\"the autocomplete attribute is correctly formatted\",fail:\"the autocomplete attribute is incorrectly formatted\"}},\"autocomplete-appropriate\":{impact:\"serious\",messages:{pass:\"the autocomplete value is on an appropriate element\",fail:\"the autocomplete value is inappropriate for this type of input\"}},\"avoid-inline-spacing\":{impact:\"serious\",messages:{pass:\"No inline styles with '!important' that affect text spacing has been specified\",fail:{singular:\"Remove '!important' from inline style ${data.values}, as overriding this is not supported by most browsers\",plural:\"Remove '!important' from inline styles ${data.values}, as overriding this is not supported by most browsers\"}}},\"is-on-screen\":{impact:\"serious\",messages:{pass:\"Element is not visible\",fail:\"Element is visible\"}},\"button-has-visible-text\":{impact:\"critical\",messages:{pass:\"Element has inner text that is visible to screen readers\",fail:\"Element does not have inner text that is visible to screen readers\"}},\"role-presentation\":{impact:\"minor\",messages:{pass:'Element\\'s default semantics were overriden with role=\"presentation\"',fail:'Element\\'s default semantics were not overridden with role=\"presentation\"'}},\"role-none\":{impact:\"minor\",messages:{pass:'Element\\'s default semantics were overriden with role=\"none\"',fail:'Element\\'s default semantics were not overridden with role=\"none\"'}},\"internal-link-present\":{impact:\"serious\",messages:{pass:\"Valid skip link found\",fail:\"No valid skip link found\"}},\"header-present\":{impact:\"serious\",messages:{pass:\"Page has a heading\",fail:\"Page does not have a heading\"}},landmark:{impact:\"serious\",messages:{pass:\"Page has a landmark region\",fail:\"Page does not have a landmark region\"}},\"group-labelledby\":{impact:\"critical\",messages:{pass:'Elements with the name \"${data.name}\" have both a shared label, and a unique label, referenced through aria-labelledby',fail:{default:'Elements with the name \"${data.name}\" do not all have both a shared label, and a unique label referenced through aria-labelledby',\"no-shared-label\":'Elements with the name \"${data.name}\" do not all have a shared label referenced through aria-labelledby',\"no-unique-label\":'Elements with the name \"${data.name}\" do not all have a unique label referenced through aria-labelledby'}}},fieldset:{impact:\"critical\",messages:{pass:\"Element is contained in a fieldset\",fail:{default:\"Element does not have a containing fieldset or ARIA group\",\"no-legend\":\"Fieldset does not have a legend as its first child\",\"empty-legend\":\"Legend does not have text that is visible to screen readers\",\"mixed-inputs\":\"Fieldset contains unrelated inputs\",\"no-group-label\":\"ARIA group does not have aria-label or aria-labelledby\",\"group-mixed-inputs\":\"ARIA group contains unrelated inputs\"}}},\"color-contrast\":{impact:\"serious\",messages:{pass:\"Element has sufficient color contrast of ${data.contrastRatio}\",fail:\"Element has insufficient color contrast of ${data.contrastRatio} (foreground color: ${data.fgColor}, background color: ${data.bgColor}, font size: ${data.fontSize}, font weight: ${data.fontWeight}). Expected contrast ratio of ${data.expectedContrastRatio}\",incomplete:{default:\"Unable to determine contrast ratio\",bgImage:\"Element's background color could not be determined due to a background image\",bgGradient:\"Element's background color could not be determined due to a background gradient\",imgNode:\"Element's background color could not be determined because element contains an image node\",bgOverlap:\"Element's background color could not be determined because it is overlapped by another element\",fgAlpha:\"Element's foreground color could not be determined because of alpha transparency\",elmPartiallyObscured:\"Element's background color could not be determined because it's partially obscured by another element\",elmPartiallyObscuring:\"Element's background color could not be determined because it partially overlaps other elements\",outsideViewport:\"Element's background color could not be determined because it's outside the viewport\",equalRatio:\"Element has a 1:1 contrast ratio with the background\",shortTextContent:\"Element content is too short to determine if it is actual text content\",nonBmp:\"Element content contains only non-text characters\"}}},\"css-orientation-lock\":{impact:\"serious\",messages:{pass:\"Display is operable, and orientation lock does not exist\",fail:\"CSS Orientation lock is applied, and makes display inoperable\",incomplete:\"CSS Orientation lock cannot be determined\"}},\"structured-dlitems\":{impact:\"serious\",messages:{pass:\"When not empty, element has both <dt> and <dd> elements\",fail:\"When not empty, element does not have at least one <dt> element followed by at least one <dd> element\"}},\"only-dlitems\":{impact:\"serious\",messages:{pass:\"List element only has direct children that are allowed inside <dt> or <dd> elements\",fail:\"List element has direct children that are not allowed inside <dt> or <dd> elements\"}},dlitem:{impact:\"serious\",messages:{pass:\"Description list item has a <dl> parent element\",fail:\"Description list item does not have a <dl> parent element\"}},\"doc-has-title\":{impact:\"serious\",messages:{pass:\"Document has a non-empty <title> element\",fail:\"Document does not have a non-empty <title> element\"}},\"duplicate-id-active\":{impact:\"serious\",messages:{pass:\"Document has no active elements that share the same id attribute\",fail:\"Document has active elements with the same id attribute: ${data}\"}},\"duplicate-id-aria\":{impact:\"critical\",messages:{pass:\"Document has no elements referenced with ARIA or labels that share the same id attribute\",fail:\"Document has multiple elements referenced with ARIA with the same id attribute: ${data}\"}},\"duplicate-id\":{impact:\"minor\",messages:{pass:\"Document has no static elements that share the same id attribute\",fail:\"Document has multiple static elements with the same id attribute\"}},\"has-widget-role\":{impact:\"minor\",messages:{pass:\"Element has a widget role.\",fail:\"Element does not have a widget role.\"}},\"valid-scrollable-semantics\":{impact:\"minor\",messages:{pass:\"Element has valid semantics for an element in the focus order.\",fail:\"Element has invalid semantics for an element in the focus order.\"}},\"multiple-label\":{impact:\"moderate\",messages:{pass:\"Form field does not have multiple label elements\",incomplete:\"Multiple label elements is not widely supported in assistive technologies. Ensure the first label contains all necessary information.\"}},\"frame-tested\":{impact:\"critical\",messages:{pass:\"The iframe was tested with axe-core\",fail:\"The iframe could not be tested with axe-core\",incomplete:\"The iframe still has to be tested with axe-core\"}},\"unique-frame-title\":{impact:\"serious\",messages:{pass:\"Element's title attribute is unique\",fail:\"Element's title attribute is not unique\"}},\"heading-order\":{impact:\"moderate\",messages:{pass:\"Heading order valid\",fail:\"Heading order invalid\"}},\"hidden-content\":{impact:\"minor\",messages:{pass:\"All content on the page has been analyzed.\",fail:\"There were problems analyzing the content on this page.\",incomplete:\"There is hidden content on the page that was not analyzed. You will need to trigger the display of this content in order to analyze it.\"}},\"has-lang\":{impact:\"serious\",messages:{pass:\"The <html> element has a lang attribute\",fail:{noXHTML:\"The xml:lang attribute is not valid on HTML pages, use the lang attribute.\",noLang:\"The <html> element does not have a lang attribute\"}}},\"valid-lang\":{impact:\"serious\",messages:{pass:\"Value of lang attribute is included in the list of valid languages\",fail:\"Value of lang attribute not included in the list of valid languages\"}},\"xml-lang-mismatch\":{impact:\"moderate\",messages:{pass:\"Lang and xml:lang attributes have the same base language\",fail:\"Lang and xml:lang attributes do not have the same base language\"}},\"identical-links-same-purpose\":{impact:\"minor\",messages:{pass:\"There are no other links with the same name, that go to a different URL\",incomplete:\"Check that links have the same purpose, or are intentionally ambiguous.\"}},\"has-alt\":{impact:\"critical\",messages:{pass:\"Element has an alt attribute\",fail:\"Element does not have an alt attribute\"}},\"alt-space-value\":{impact:\"critical\",messages:{pass:\"Element has a valid alt attribute value\",fail:\"Element has an alt attribute containing only a space character, which is not ignored by all screen readers\"}},\"duplicate-img-label\":{impact:\"minor\",messages:{pass:\"Element does not duplicate existing text in <img> alt text\",fail:\"Element contains <img> element with alt text that duplicates existing text\"}},\"non-empty-if-present\":{impact:\"critical\",messages:{pass:{default:\"Element does not have a value attribute\",\"has-label\":\"Element has a non-empty value attribute\"},fail:\"Element has a value attribute and the value attribute is empty\"}},\"non-empty-value\":{impact:\"critical\",messages:{pass:\"Element has a non-empty value attribute\",fail:\"Element has no value attribute or the value attribute is empty\"}},\"label-content-name-mismatch\":{impact:\"serious\",messages:{pass:\"Element contains visible text as part of it's accessible name\",fail:\"Text inside the element is not included in the accessible name\"}},\"title-only\":{impact:\"serious\",messages:{pass:\"Form element does not solely use title attribute for its label\",fail:\"Only title used to generate label for form element\"}},\"implicit-label\":{impact:\"critical\",messages:{pass:\"Form element has an implicit (wrapped) <label>\",fail:\"Form element does not have an implicit (wrapped) <label>\"}},\"explicit-label\":{impact:\"critical\",messages:{pass:\"Form element has an explicit <label>\",fail:\"Form element does not have an explicit <label>\"}},\"help-same-as-label\":{impact:\"minor\",messages:{pass:\"Help text (title or aria-describedby) does not duplicate label text\",fail:\"Help text (title or aria-describedby) text is the same as the label text\"}},\"hidden-explicit-label\":{impact:\"critical\",messages:{pass:\"Form element has a visible explicit <label>\",fail:\"Form element has explicit <label> that is hidden\"}},\"landmark-is-top-level\":{impact:\"moderate\",messages:{pass:\"The ${data.role} landmark is at the top level.\",fail:\"The ${data.role} landmark is contained in another landmark.\"}},\"page-no-duplicate-banner\":{impact:\"moderate\",messages:{pass:\"Document does not have more than one banner landmark\",fail:\"Document has more than one banner landmark\"}},\"page-no-duplicate-contentinfo\":{impact:\"moderate\",messages:{pass:\"Document does not have more than one contentinfo landmark\",fail:\"Document has more than one contentinfo landmark\"}},\"page-no-duplicate-main\":{impact:\"moderate\",messages:{pass:\"Document does not have more than one main landmark\",fail:\"Document has more than one main landmark\"}},\"page-has-main\":{impact:\"moderate\",messages:{pass:\"Document has at least one main landmark\",fail:\"Document does not have a main landmark\"}},\"landmark-is-unique\":{impact:\"moderate\",messages:{pass:\"Landmarks must have a unique role or role/label/title (i.e. accessible name) combination\",fail:\"The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable\"}},\"has-th\":{impact:\"serious\",messages:{pass:\"Layout table does not use <th> elements\",fail:\"Layout table uses <th> elements\"}},\"has-caption\":{impact:\"serious\",messages:{pass:\"Layout table does not use <caption> element\",fail:\"Layout table uses <caption> element\"}},\"has-summary\":{impact:\"serious\",messages:{pass:\"Layout table does not use summary attribute\",fail:\"Layout table uses summary attribute\"}},\"link-in-text-block\":{impact:\"serious\",messages:{pass:\"Links can be distinguished from surrounding text in some way other than by color\",fail:\"Links need to be distinguished from surrounding text in some way other than by color\",incomplete:{default:\"Unable to determine contrast ratio\",bgContrast:\"Element's contrast ratio could not be determined. Check for a distinct hover/focus style\",bgImage:\"Element's contrast ratio could not be determined due to a background image\",bgGradient:\"Element's contrast ratio could not be determined due to a background gradient\",imgNode:\"Element's contrast ratio could not be determined because element contains an image node\",bgOverlap:\"Element's contrast ratio could not be determined because of element overlap\"}}},\"focusable-no-name\":{impact:\"serious\",messages:{pass:\"Element is not in tab order or has accessible text\",fail:\"Element is in tab order and does not have accessible text\"}},\"only-listitems\":{impact:\"serious\",messages:{pass:\"List element only has direct children that are allowed inside <li> elements\",fail:{default:\"List element has direct children that are not allowed inside <li> elements\",roleNotValid:\"List element has direct children with a role that is not allowed: ${data.roles}\"}}},listitem:{impact:\"serious\",messages:{pass:'List item has a <ul>, <ol> or role=\"list\" parent element',fail:{default:\"List item does not have a <ul>, <ol> parent element\",roleNotValid:'List item does not have a <ul>, <ol> parent element without a role, or a role=\"list\"'}}},\"meta-refresh\":{impact:\"critical\",messages:{pass:\"<meta> tag does not immediately refresh the page\",fail:\"<meta> tag forces timed refresh of page\"}},\"meta-viewport-large\":{impact:\"minor\",messages:{pass:\"<meta> tag does not prevent significant zooming on mobile devices\",fail:\"<meta> tag limits zooming on mobile devices\"}},\"meta-viewport\":{impact:\"critical\",messages:{pass:\"<meta> tag does not disable zooming on mobile devices\",fail:\"${data} on <meta> tag disables zooming on mobile devices\"}},\"no-autoplay-audio\":{impact:\"moderate\",messages:{pass:\"<video> or <audio> does not output audio for more than allowed duration or has controls mechanism\",fail:\"<video> or <audio> outputs audio for more than allowed duration and does not have a controls mechanism\",incomplete:\"Check that the <video> or <audio> does not output audio for more than allowed duration or provides a controls mechanism\"}},\"p-as-heading\":{impact:\"serious\",messages:{pass:\"<p> elements are not styled as headings\",fail:\"Heading elements should be used instead of styled p elements\"}},\"page-has-heading-one\":{impact:\"moderate\",messages:{pass:\"Page has at least one level-one heading\",fail:\"Page must have a level-one heading\"}},region:{impact:\"moderate\",messages:{pass:\"All page content is contained by landmarks\",fail:\"Some page content is not contained by landmarks\"}},\"html5-scope\":{impact:\"moderate\",messages:{pass:\"Scope attribute is only used on table header elements (<th>)\",fail:\"In HTML 5, scope attributes may only be used on table header elements (<th>)\"}},\"scope-value\":{impact:\"critical\",messages:{pass:\"Scope attribute is used correctly\",fail:\"The value of the scope attribute may only be 'row' or 'col'\"}},\"focusable-content\":{impact:\"moderate\",messages:{pass:\"Element contains focusable elements\",fail:\"Element should have focusable content\"}},\"focusable-element\":{impact:\"moderate\",messages:{pass:\"Element is focusable\",fail:\"Element should be focusable\"}},exists:{impact:\"minor\",messages:{pass:\"Element does not exist\",incomplete:\"Element exists\"}},\"skip-link\":{impact:\"moderate\",messages:{pass:\"Skip link target exists\",incomplete:\"Skip link target should become visible on activation\",fail:\"No skip link target\"}},\"svg-non-empty-title\":{impact:\"serious\",messages:{pass:\"element has a child that is a title\",fail:\"element has no child that is a title\"}},tabindex:{impact:\"serious\",messages:{pass:\"Element does not have a tabindex greater than 0\",fail:\"Element has a tabindex greater than 0\"}},\"same-caption-summary\":{impact:\"minor\",messages:{pass:\"Content of summary attribute and <caption> are not duplicated\",fail:\"Content of summary attribute and <caption> element are identical\"}},\"caption-faked\":{impact:\"serious\",messages:{pass:\"The first row of a table is not used as a caption\",fail:\"The first child of the table should be a caption instead of a table cell\"}},\"td-has-header\":{impact:\"critical\",messages:{pass:\"All non-empty data cells have table headers\",fail:\"Some non-empty data cells do not have table headers\"}},\"td-headers-attr\":{impact:\"serious\",messages:{pass:\"The headers attribute is exclusively used to refer to other cells in the table\",incomplete:\"The headers attribute is empty\",fail:\"The headers attribute is not exclusively used to refer to other cells in the table\"}},\"th-has-data-cells\":{impact:\"serious\",messages:{pass:\"All table header cells refer to data cells\",fail:\"Not all table header cells refer to data cells\",incomplete:\"Table data cells are missing or empty\"}},description:{impact:\"critical\",messages:{pass:\"The multimedia element has an audio description track\",incomplete:\"Check that audio description is available for the element\"}}},failureSummaries:{any:{failureMessage:function(e){var t=\"Fix any of the following:\",r=e;if(r)for(var n=-1,a=r.length-1;n<a;)t+=\"\\n  \"+r[n+=1].split(\"\\n\").join(\"\\n  \");return t}},none:{failureMessage:function(e){var t=\"Fix all of the following:\",r=e;if(r)for(var n=-1,a=r.length-1;n<a;)t+=\"\\n  \"+r[n+=1].split(\"\\n\").join(\"\\n  \");return t}}},incompleteFallbackMessage:{}},rules:[{id:\"accesskeys\",selector:\"[accesskey]\",excludeHidden:!1,tags:[\"best-practice\",\"cat.keyboard\"],all:[],any:[],none:[\"accesskeys\"]},{id:\"area-alt\",selector:\"map area[href]\",excludeHidden:!1,tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag111\",\"wcag244\",\"wcag412\",\"section508\",\"section508.22.a\"],all:[],any:[\"non-empty-alt\",\"non-empty-title\",\"aria-label\",\"aria-labelledby\"],none:[]},{id:\"aria-allowed-attr\",matches:function(e){var t=/^aria-/;if(e.hasAttributes())for(var r=axe.utils.getNodeAttributes(e),n=0,a=r.length;n<a;n++)if(t.test(r[n].name))return!0;return!1},tags:[\"cat.aria\",\"wcag2a\",\"wcag412\"],all:[],any:[\"aria-allowed-attr\"],none:[\"aria-unsupported-attr\"]},{id:\"aria-allowed-role\",excludeHidden:!1,selector:\"[role]\",matches:function(e){return null!==axe.commons.aria.getRole(e,{noImplicit:!0,dpub:!0,fallback:!0})},tags:[\"cat.aria\",\"best-practice\"],all:[],any:[{options:{allowImplicit:!0,ignoredTags:[]},id:\"aria-allowed-role\"}],none:[]},{id:\"aria-dpub-role-fallback\",selector:\"[role]\",matches:function(e){var t=e.getAttribute(\"role\");return[\"doc-backlink\",\"doc-biblioentry\",\"doc-biblioref\",\"doc-cover\",\"doc-endnote\",\"doc-glossref\",\"doc-noteref\"].includes(t)},tags:[\"cat.aria\",\"wcag2a\",\"wcag131\",\"deprecated\"],enabled:!1,all:[\"implicit-role-fallback\"],any:[],none:[]},{id:\"aria-hidden-body\",selector:\"body\",excludeHidden:!1,tags:[\"cat.aria\",\"wcag2a\",\"wcag412\"],all:[],any:[\"aria-hidden-body\"],none:[]},{id:\"aria-hidden-focus\",selector:'[aria-hidden=\"true\"]',matches:function(e){var r=axe.commons.dom.getComposedParent;return function e(t){return!t||\"true\"!==t.getAttribute(\"aria-hidden\")&&e(r(t))}(r(e))},excludeHidden:!1,tags:[\"cat.name-role-value\",\"wcag2a\",\"wcag412\",\"wcag131\"],all:[\"focusable-modal-open\",\"focusable-disabled\",\"focusable-not-tabbable\"],any:[],none:[]},{id:\"aria-input-field-name\",selector:'[role=\"combobox\"], [role=\"listbox\"], [role=\"searchbox\"], [role=\"slider\"], [role=\"spinbutton\"], [role=\"textbox\"]',matches:function(e,t){var r=axe.commons.aria,n=e.nodeName.toUpperCase(),a=r.getRole(e,{noImplicit:!0});return(\"AREA\"!==n||!e.getAttribute(\"href\"))&&(![\"INPUT\",\"SELECT\",\"TEXTAREA\"].includes(n)&&(\"IMG\"!==n&&(\"img\"!==a||\"SVG\"===n)&&(\"BUTTON\"!==n&&\"button\"!==a&&(\"combobox\"!==a||!axe.utils.querySelectorAll(t,'input:not([type=\"hidden\"])').length))))},tags:[\"wcag2a\",\"wcag412\"],all:[],any:[\"aria-label\",\"aria-labelledby\",\"non-empty-title\"],none:[\"no-implicit-explicit-label\"]},{id:\"aria-required-attr\",selector:\"[role]\",tags:[\"cat.aria\",\"wcag2a\",\"wcag412\"],all:[],any:[\"aria-required-attr\"],none:[]},{id:\"aria-required-children\",selector:\"[role]\",tags:[\"cat.aria\",\"wcag2a\",\"wcag131\"],all:[],any:[{options:{reviewEmpty:[\"doc-bibliography\",\"doc-endnotes\",\"grid\",\"list\",\"listbox\",\"table\",\"tablist\",\"tree\",\"treegrid\",\"rowgroup\"]},id:\"aria-required-children\"}],none:[]},{id:\"aria-required-parent\",selector:\"[role]\",tags:[\"cat.aria\",\"wcag2a\",\"wcag131\"],all:[],any:[\"aria-required-parent\"],none:[]},{id:\"aria-roledescription\",selector:\"[aria-roledescription]\",tags:[\"cat.aria\",\"wcag2a\",\"wcag412\"],all:[],any:[{options:{supportedRoles:[\"button\",\"img\",\"checkbox\",\"radio\",\"combobox\",\"menuitemcheckbox\",\"menuitemradio\"]},id:\"aria-roledescription\"}],none:[]},{id:\"aria-roles\",selector:\"[role]\",matches:function(e,t){return!!t.hasAttr(\"role\")&&!!t.attr(\"role\").trim()},tags:[\"cat.aria\",\"wcag2a\",\"wcag412\"],all:[],any:[],none:[\"fallbackrole\",\"invalidrole\",\"abstractrole\",\"unsupportedrole\"]},{id:\"aria-toggle-field-name\",selector:'[role=\"checkbox\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"], [role=\"radio\"], [role=\"switch\"]',matches:function(e,t){var r=axe.commons.aria,n=e.nodeName.toUpperCase(),a=r.getRole(e,{noImplicit:!0});return(\"AREA\"!==n||!e.getAttribute(\"href\"))&&(![\"INPUT\",\"SELECT\",\"TEXTAREA\"].includes(n)&&(\"IMG\"!==n&&(\"img\"!==a||\"SVG\"===n)&&(\"BUTTON\"!==n&&\"button\"!==a&&(\"combobox\"!==a||!axe.utils.querySelectorAll(t,'input:not([type=\"hidden\"])').length))))},tags:[\"wcag2a\",\"wcag412\"],all:[],any:[\"aria-label\",\"aria-labelledby\",\"non-empty-title\",\"has-visible-text\"],none:[\"no-implicit-explicit-label\"]},{id:\"aria-valid-attr-value\",matches:function(e){var t=/^aria-/;if(e.hasAttributes())for(var r=axe.utils.getNodeAttributes(e),n=0,a=r.length;n<a;n++)if(t.test(r[n].name))return!0;return!1},tags:[\"cat.aria\",\"wcag2a\",\"wcag412\"],all:[{options:[],id:\"aria-valid-attr-value\"},\"aria-errormessage\"],any:[],none:[]},{id:\"aria-valid-attr\",matches:function(e){var t=/^aria-/;if(e.hasAttributes())for(var r=axe.utils.getNodeAttributes(e),n=0,a=r.length;n<a;n++)if(t.test(r[n].name))return!0;return!1},tags:[\"cat.aria\",\"wcag2a\",\"wcag412\"],all:[],any:[{options:[],id:\"aria-valid-attr\"}],none:[]},{id:\"audio-caption\",selector:\"audio\",enabled:!1,excludeHidden:!1,tags:[\"cat.time-and-media\",\"wcag2a\",\"wcag121\",\"section508\",\"section508.22.a\"],all:[],any:[],none:[\"caption\"]},{id:\"autocomplete-valid\",matches:function(e,t){var r=axe.commons,n=r.text,a=r.aria,o=r.dom,i=t.attr(\"autocomplete\");if(!i||\"\"===n.sanitize(i))return!1;var s=t.props.nodeName;if(!1===[\"textarea\",\"input\",\"select\"].includes(s))return!1;if(\"input\"===s&&[\"submit\",\"reset\",\"button\",\"hidden\"].includes(t.props.type))return!1;var l=t.attr(\"aria-disabled\")||\"false\";if(t.hasAttr(\"disabled\")||\"true\"===l.toLowerCase())return!1;var u=t.attr(\"role\"),c=t.attr(\"tabindex\");if(\"-1\"===c&&u){var d=a.lookupTable.role[u];if(void 0===d||\"widget\"!==d.type)return!1}return!(\"-1\"===c&&t.actualNode&&!o.isVisible(t.actualNode,!1)&&!o.isVisible(t.actualNode,!0))},tags:[\"cat.forms\",\"wcag21aa\",\"wcag135\"],all:[\"autocomplete-valid\",\"autocomplete-appropriate\"],any:[],none:[]},{id:\"avoid-inline-spacing\",selector:\"[style]\",tags:[\"wcag21aa\",\"wcag1412\"],all:[\"avoid-inline-spacing\"],any:[],none:[]},{id:\"blink\",selector:\"blink\",excludeHidden:!1,tags:[\"cat.time-and-media\",\"wcag2a\",\"wcag222\",\"section508\",\"section508.22.j\"],all:[],any:[],none:[\"is-on-screen\"]},{id:\"button-name\",selector:'button, [role=\"button\"]:not(input)',tags:[\"cat.name-role-value\",\"wcag2a\",\"wcag412\",\"section508\",\"section508.22.a\"],all:[],any:[\"button-has-visible-text\",\"aria-label\",\"aria-labelledby\",\"role-presentation\",\"role-none\",\"non-empty-title\"],none:[]},{id:\"bypass\",selector:\"html\",pageLevel:!0,matches:function(e){return!!e.querySelector(\"a[href]\")},tags:[\"cat.keyboard\",\"wcag2a\",\"wcag241\",\"section508\",\"section508.22.o\"],all:[],any:[\"internal-link-present\",\"header-present\",\"landmark\"],none:[]},{id:\"checkboxgroup\",selector:\"input[type=checkbox][name]\",tags:[\"cat.forms\",\"best-practice\",\"deprecated\"],enabled:!1,all:[],any:[\"group-labelledby\",\"fieldset\"],none:[]},{id:\"color-contrast\",matches:function(e,t){var r=e.nodeName.toUpperCase(),n=e.type;if(\"true\"===e.getAttribute(\"aria-disabled\")||axe.commons.dom.findUpVirtual(t,'[aria-disabled=\"true\"]'))return!1;if([\"INPUT\",\"SELECT\",\"TEXTAREA\"].includes(r)){var a=window.getComputedStyle(e),o=parseInt(a.getPropertyValue(\"text-indent\"),10);if(o){var i=e.getBoundingClientRect();if(i={top:i.top,bottom:i.bottom,left:i.left+o,right:i.right+o},!axe.commons.dom.visuallyOverlaps(i,e))return!1}}if(\"INPUT\"===r)return-1===[\"hidden\",\"range\",\"color\",\"checkbox\",\"radio\",\"image\"].indexOf(n)&&!e.disabled;if(\"SELECT\"===r)return!!e.options.length&&!e.disabled;if(\"TEXTAREA\"===r)return!e.disabled;if(\"OPTION\"===r)return!1;if(\"BUTTON\"===r&&e.disabled||axe.commons.dom.findUpVirtual(t,\"button[disabled]\"))return!1;if(\"FIELDSET\"===r&&e.disabled||axe.commons.dom.findUpVirtual(t,\"fieldset[disabled]\"))return!1;var s=axe.commons.dom.findUpVirtual(t,\"label\");if(\"LABEL\"===r||s){var l=e,u=t;s&&(l=s,u=axe.utils.getNodeFromTree(s));var c=axe.commons.dom.getRootNode(l),d=l.htmlFor&&c.getElementById(l.htmlFor),p=axe.utils.getNodeFromTree(d);if(d&&(d.disabled||\"true\"===d.getAttribute(\"aria-disabled\")||axe.commons.dom.findUpVirtual(p,'[aria-disabled=\"true\"]')))return!1;if((d=axe.utils.querySelectorAll(u,'input:not([type=\"hidden\"]):not([type=\"image\"]):not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]), select, textarea')).length&&d[0].actualNode.disabled)return!1}if(e.getAttribute(\"id\")){var m=axe.utils.escapeSelector(e.getAttribute(\"id\")),f=axe.commons.dom.getRootNode(e).querySelector(\"[aria-labelledby~=\"+m+\"]\");if(f&&f.disabled)return!1}var h=axe.commons.text.visibleVirtual(t,!1,!0);if(\"\"===h||\"\"===axe.commons.text.removeUnicode(h,{emoji:!0,nonBmp:!1,punctuations:!0}))return!1;var b=document.createRange(),g=t.children,y=g.length,v=null,w=0;for(w=0;w<y;w++)3===(v=g[w]).actualNode.nodeType&&\"\"!==axe.commons.text.sanitize(v.actualNode.nodeValue)&&b.selectNodeContents(v.actualNode);var x=b.getClientRects();for(y=x.length,w=0;w<y;w++)if(axe.commons.dom.visuallyOverlaps(x[w],e))return!0;return!1},excludeHidden:!1,tags:[\"cat.color\",\"wcag2aa\",\"wcag143\"],all:[],any:[{options:{noScroll:!1,ignoreUnicode:!0,ignoreLength:!1},id:\"color-contrast\"}],none:[]},{id:\"css-orientation-lock\",selector:\"html\",tags:[\"cat.structure\",\"wcag134\",\"wcag21aa\",\"experimental\"],all:[{options:{degreeThreshold:2},id:\"css-orientation-lock\"}],any:[],none:[],preload:!0},{id:\"definition-list\",selector:\"dl\",matches:function(e){return!e.getAttribute(\"role\")},tags:[\"cat.structure\",\"wcag2a\",\"wcag131\"],all:[],any:[],none:[\"structured-dlitems\",\"only-dlitems\"]},{id:\"dlitem\",selector:\"dd, dt\",matches:function(e){return!e.getAttribute(\"role\")},tags:[\"cat.structure\",\"wcag2a\",\"wcag131\"],all:[],any:[\"dlitem\"],none:[]},{id:\"document-title\",selector:\"html\",matches:function(e){return e.ownerDocument.defaultView.self===e.ownerDocument.defaultView.top},tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag242\"],all:[],any:[\"doc-has-title\"],none:[]},{id:\"duplicate-id-active\",selector:\"[id]\",matches:function(e){var t=axe.commons,r=t.dom,n=t.aria,a=e.getAttribute(\"id\").trim(),o='*[id=\"'.concat(axe.utils.escapeSelector(a),'\"]'),i=Array.from(r.getRootNode(e).querySelectorAll(o));return!n.isAccessibleRef(e)&&i.some(r.isFocusable)},excludeHidden:!1,tags:[\"cat.parsing\",\"wcag2a\",\"wcag411\"],all:[],any:[\"duplicate-id-active\"],none:[]},{id:\"duplicate-id-aria\",selector:\"[id]\",matches:function(e){return axe.commons.aria.isAccessibleRef(e)},excludeHidden:!1,tags:[\"cat.parsing\",\"wcag2a\",\"wcag411\"],all:[],any:[\"duplicate-id-aria\"],none:[]},{id:\"duplicate-id\",selector:\"[id]\",matches:function(e){var t=axe.commons,r=t.dom,n=t.aria,a=e.getAttribute(\"id\").trim(),o='*[id=\"'.concat(axe.utils.escapeSelector(a),'\"]'),i=Array.from(r.getRootNode(e).querySelectorAll(o));return!n.isAccessibleRef(e)&&i.every(function(e){return!r.isFocusable(e)})},excludeHidden:!1,tags:[\"cat.parsing\",\"wcag2a\",\"wcag411\"],all:[],any:[\"duplicate-id\"],none:[]},{id:\"empty-heading\",selector:'h1, h2, h3, h4, h5, h6, [role=\"heading\"]',matches:function(e){var t;return e.hasAttribute(\"role\")&&(t=e.getAttribute(\"role\").split(/\\s+/i).filter(axe.commons.aria.isValidRole)),t&&0<t.length?t.includes(\"heading\"):\"heading\"===axe.commons.aria.implicitRole(e)},tags:[\"cat.name-role-value\",\"best-practice\"],all:[],any:[\"has-visible-text\"],none:[]},{id:\"focus-order-semantics\",selector:\"div, h1, h2, h3, h4, h5, h6, [role=heading], p, span\",matches:function(e){return axe.commons.dom.insertedIntoFocusOrder(e)},tags:[\"cat.keyboard\",\"best-practice\",\"experimental\"],all:[],any:[{options:[],id:\"has-widget-role\"},{options:[],id:\"valid-scrollable-semantics\"}],none:[]},{id:\"form-field-multiple-labels\",selector:\"input, select, textarea\",matches:function(e){if(\"input\"!==e.nodeName.toLowerCase()||!1===e.hasAttribute(\"type\"))return!0;var t=e.getAttribute(\"type\").toLowerCase();return!1===[\"hidden\",\"image\",\"button\",\"submit\",\"reset\"].includes(t)},tags:[\"cat.forms\",\"wcag2a\",\"wcag332\"],all:[],any:[],none:[\"multiple-label\"]},{id:\"frame-tested\",selector:\"frame, iframe\",tags:[\"cat.structure\",\"review-item\",\"best-practice\"],all:[{options:{isViolation:!1},id:\"frame-tested\"}],any:[],none:[]},{id:\"frame-title-unique\",selector:\"frame[title], iframe[title]\",matches:function(e){var t=e.getAttribute(\"title\");return!(!t||!axe.commons.text.sanitize(t).trim())},tags:[\"cat.text-alternatives\",\"best-practice\"],all:[],any:[],none:[\"unique-frame-title\"]},{id:\"frame-title\",selector:\"frame, iframe\",tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag241\",\"wcag412\",\"section508\",\"section508.22.i\"],all:[],any:[\"aria-label\",\"aria-labelledby\",\"non-empty-title\",\"role-presentation\",\"role-none\"],none:[]},{id:\"heading-order\",selector:\"h1, h2, h3, h4, h5, h6, [role=heading]\",matches:function(e){var t;return e.hasAttribute(\"role\")&&(t=e.getAttribute(\"role\").split(/\\s+/i).filter(axe.commons.aria.isValidRole)),t&&0<t.length?t.includes(\"heading\"):\"heading\"===axe.commons.aria.implicitRole(e)},tags:[\"cat.semantics\",\"best-practice\"],all:[],any:[\"heading-order\"],none:[]},{id:\"hidden-content\",selector:\"*\",excludeHidden:!1,tags:[\"cat.structure\",\"experimental\",\"review-item\",\"best-practice\"],all:[],any:[\"hidden-content\"],none:[]},{id:\"html-has-lang\",selector:\"html\",matches:function(e){return e.ownerDocument.defaultView.self===e.ownerDocument.defaultView.top},tags:[\"cat.language\",\"wcag2a\",\"wcag311\"],all:[],any:[\"has-lang\"],none:[]},{id:\"html-lang-valid\",selector:\"html[lang], html[xml\\\\:lang]\",tags:[\"cat.language\",\"wcag2a\",\"wcag311\"],all:[],any:[],none:[\"valid-lang\"]},{id:\"html-xml-lang-mismatch\",selector:\"html[lang][xml\\\\:lang]\",matches:function(e){var t=axe.utils.getBaseLang,r=t(e.getAttribute(\"lang\")),n=t(e.getAttribute(\"xml:lang\"));return axe.utils.validLangs().includes(r)&&axe.utils.validLangs().includes(n)},tags:[\"cat.language\",\"wcag2a\",\"wcag311\"],all:[\"xml-lang-mismatch\"],any:[],none:[]},{id:\"identical-links-same-purpose\",selector:'a[href], area[href], [role=\"link\"]',excludeHidden:!1,matches:function(e,t){var r=axe.commons,n=r.aria;if(!!!r.text.accessibleTextVirtual(t))return!1;var a=n.getRole(e);return!a||\"link\"===a},tags:[\"wcag2aaa\",\"wcag249\",\"best-practice\"],all:[\"identical-links-same-purpose\"],any:[],none:[]},{id:\"image-alt\",selector:\"img\",tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag111\",\"section508\",\"section508.22.a\"],all:[],any:[\"has-alt\",\"aria-label\",\"aria-labelledby\",\"non-empty-title\",\"role-presentation\",\"role-none\"],none:[\"alt-space-value\"]},{id:\"image-redundant-alt\",selector:\"img\",tags:[\"cat.text-alternatives\",\"best-practice\"],all:[],any:[],none:[\"duplicate-img-label\"]},{id:\"input-button-name\",selector:'input[type=\"button\"], input[type=\"submit\"], input[type=\"reset\"]',tags:[\"cat.name-role-value\",\"wcag2a\",\"wcag412\",\"section508\",\"section508.22.a\"],all:[],any:[\"non-empty-if-present\",\"non-empty-value\",\"aria-label\",\"aria-labelledby\",\"role-presentation\",\"role-none\",\"non-empty-title\"],none:[]},{id:\"input-image-alt\",selector:'input[type=\"image\"]',tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag111\",\"section508\",\"section508.22.a\"],all:[],any:[\"non-empty-alt\",\"aria-label\",\"aria-labelledby\",\"non-empty-title\"],none:[]},{id:\"label-content-name-mismatch\",matches:function(e,t){var r=axe.commons,n=r.aria,a=r.text,o=n.getRole(e);return!!o&&(!!Object.keys(n.lookupTable.role).filter(function(e){return\"widget\"===n.lookupTable.role[e].type}).includes(o)&&(!!n.getRolesWithNameFromContents().includes(o)&&(!(!a.sanitize(n.arialabelText(t))&&!a.sanitize(n.arialabelledbyText(e)))&&!!a.sanitize(a.visibleVirtual(t)))))},tags:[\"wcag21a\",\"wcag253\",\"experimental\"],all:[],any:[{options:{pixelThreshold:.1,occuranceThreshold:3},id:\"label-content-name-mismatch\"}],none:[]},{id:\"label-title-only\",selector:\"input, select, textarea\",matches:function(e){if(\"input\"!==e.nodeName.toLowerCase()||!1===e.hasAttribute(\"type\"))return!0;var t=e.getAttribute(\"type\").toLowerCase();return!1===[\"hidden\",\"image\",\"button\",\"submit\",\"reset\"].includes(t)},tags:[\"cat.forms\",\"best-practice\"],all:[],any:[],none:[\"title-only\"]},{id:\"label\",selector:\"input, select, textarea\",matches:function(e){if(\"input\"!==e.nodeName.toLowerCase()||!1===e.hasAttribute(\"type\"))return!0;var t=e.getAttribute(\"type\").toLowerCase();return!1===[\"hidden\",\"image\",\"button\",\"submit\",\"reset\"].includes(t)},tags:[\"cat.forms\",\"wcag2a\",\"wcag412\",\"wcag131\",\"section508\",\"section508.22.n\"],all:[],any:[\"aria-label\",\"aria-labelledby\",\"implicit-label\",\"explicit-label\",\"non-empty-title\"],none:[\"help-same-as-label\",\"hidden-explicit-label\"]},{id:\"landmark-banner-is-top-level\",selector:\"header:not([role]), [role=banner]\",matches:function(e,t){return e.hasAttribute(\"role\")||!axe.commons.dom.findUpVirtual(t,\"article, aside, main, nav, section\")},tags:[\"cat.semantics\",\"best-practice\"],all:[],any:[\"landmark-is-top-level\"],none:[]},{id:\"landmark-complementary-is-top-level\",selector:\"aside:not([role]), [role=complementary]\",tags:[\"cat.semantics\",\"best-practice\"],all:[],any:[\"landmark-is-top-level\"],none:[]},{id:\"landmark-contentinfo-is-top-level\",selector:\"footer:not([role]), [role=contentinfo]\",matches:function(e,t){return e.hasAttribute(\"role\")||!axe.commons.dom.findUpVirtual(t,\"article, aside, main, nav, section\")},tags:[\"cat.semantics\",\"best-practice\"],all:[],any:[\"landmark-is-top-level\"],none:[]},{id:\"landmark-main-is-top-level\",selector:\"main:not([role]), [role=main]\",tags:[\"cat.semantics\",\"best-practice\"],all:[],any:[\"landmark-is-top-level\"],none:[]},{id:\"landmark-no-duplicate-banner\",selector:\"header:not([role]), [role=banner]\",tags:[\"cat.semantics\",\"best-practice\"],all:[],any:[{options:{selector:\"header:not([role]), [role=banner]\",nativeScopeFilter:\"article, aside, main, nav, section\"},id:\"page-no-duplicate-banner\"}],none:[]},{id:\"landmark-no-duplicate-contentinfo\",selector:\"footer:not([role]), [role=contentinfo]\",tags:[\"cat.semantics\",\"best-practice\"],all:[],any:[{options:{selector:\"footer:not([role]), [role=contentinfo]\",nativeScopeFilter:\"article, aside, main, nav, section\"},id:\"page-no-duplicate-contentinfo\"}],none:[]},{id:\"landmark-no-duplicate-main\",selector:\"main:not([role]), [role=main]\",tags:[\"cat.semantics\",\"best-practice\"],all:[],any:[{options:{selector:\"main:not([role]), [role='main']\"},id:\"page-no-duplicate-main\"}],none:[]},{id:\"landmark-one-main\",selector:\"html\",tags:[\"cat.semantics\",\"best-practice\"],all:[{options:{selector:\"main:not([role]), [role='main']\"},id:\"page-has-main\"}],any:[],none:[]},{id:\"landmark-unique\",selector:\"[role=banner], [role=complementary], [role=contentinfo], [role=main], [role=navigation], [role=region], [role=search], [role=form], form, footer, header, aside, main, nav, section\",tags:[\"cat.semantics\",\"best-practice\"],matches:function(e,t){var i=[\"article\",\"aside\",\"main\",\"nav\",\"section\"].join(\",\");return function(e){var t=e.actualNode,r=axe.commons.aria.getRolesByType(\"landmark\"),n=axe.commons.aria.getRole(t);if(!n)return!1;var a,o=t.nodeName.toUpperCase();return\"HEADER\"===o||\"FOOTER\"===o?(a=e,!axe.commons.dom.findUpVirtual(a,i)):\"SECTION\"!==o&&\"FORM\"!==o?0<=r.indexOf(n)||\"region\"===n:!!axe.commons.text.accessibleTextVirtual(e)}(t)&&axe.commons.dom.isVisible(e,!0)},all:[],any:[\"landmark-is-unique\"],none:[]},{id:\"layout-table\",selector:\"table\",matches:function(e){var t=(e.getAttribute(\"role\")||\"\").toLowerCase();return!((\"presentation\"===t||\"none\"===t)&&!axe.commons.dom.isFocusable(e)||axe.commons.table.isDataTable(e))},tags:[\"cat.semantics\",\"wcag2a\",\"wcag131\",\"deprecated\"],enabled:!1,all:[],any:[],none:[\"has-th\",\"has-caption\",\"has-summary\"]},{id:\"link-in-text-block\",selector:\"a[href], [role=link]\",matches:function(e){var t=axe.commons.text.sanitize(e.textContent),r=e.getAttribute(\"role\");return(!r||\"link\"===r)&&(!!t&&(!!axe.commons.dom.isVisible(e,!1)&&axe.commons.dom.isInTextBlock(e)))},excludeHidden:!1,tags:[\"cat.color\",\"experimental\",\"wcag2a\",\"wcag141\"],all:[\"link-in-text-block\"],any:[],none:[]},{id:\"link-name\",selector:\"a[href]:not([role=button]), [role=link]\",tags:[\"cat.name-role-value\",\"wcag2a\",\"wcag412\",\"wcag244\",\"section508\",\"section508.22.a\"],all:[],any:[\"has-visible-text\",\"aria-label\",\"aria-labelledby\",\"role-presentation\",\"role-none\"],none:[\"focusable-no-name\"]},{id:\"list\",selector:\"ul, ol\",matches:function(e){return!e.getAttribute(\"role\")},tags:[\"cat.structure\",\"wcag2a\",\"wcag131\"],all:[],any:[],none:[\"only-listitems\"]},{id:\"listitem\",selector:\"li\",matches:function(e){return!e.getAttribute(\"role\")},tags:[\"cat.structure\",\"wcag2a\",\"wcag131\"],all:[],any:[\"listitem\"],none:[]},{id:\"marquee\",selector:\"marquee\",excludeHidden:!1,tags:[\"cat.parsing\",\"wcag2a\",\"wcag222\"],all:[],any:[],none:[\"is-on-screen\"]},{id:\"meta-refresh\",selector:'meta[http-equiv=\"refresh\"]',excludeHidden:!1,tags:[\"cat.time-and-media\",\"wcag2a\",\"wcag2aaa\",\"wcag221\",\"wcag224\",\"wcag325\"],all:[],any:[\"meta-refresh\"],none:[]},{id:\"meta-viewport-large\",selector:'meta[name=\"viewport\"]',excludeHidden:!1,tags:[\"cat.sensory-and-visual-cues\",\"best-practice\"],all:[],any:[{options:{scaleMinimum:5,lowerBound:2},id:\"meta-viewport-large\"}],none:[]},{id:\"meta-viewport\",selector:'meta[name=\"viewport\"]',excludeHidden:!1,tags:[\"cat.sensory-and-visual-cues\",\"best-practice\"],all:[],any:[{options:{scaleMinimum:2},id:\"meta-viewport\"}],none:[]},{id:\"no-autoplay-audio\",excludeHidden:!1,selector:\"audio[autoplay], video[autoplay]\",matches:function(e){return!!e.currentSrc&&(!e.hasAttribute(\"paused\")&&!e.hasAttribute(\"muted\"))},tags:[\"wcag2a\",\"wcag142\",\"experimental\"],preload:!0,all:[{options:{allowedDuration:3},id:\"no-autoplay-audio\"}],any:[],none:[]},{id:\"object-alt\",selector:\"object\",tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag111\",\"section508\",\"section508.22.a\"],all:[],any:[\"has-visible-text\",\"aria-label\",\"aria-labelledby\",\"non-empty-title\",\"role-presentation\",\"role-none\"],none:[]},{id:\"p-as-heading\",selector:\"p\",matches:function(e){var t=Array.from(e.parentNode.childNodes),r=e.textContent.trim();return!(0===r.length||2<=(r.match(/[.!?:;](?![.!?:;])/g)||[]).length)&&0!==t.slice(t.indexOf(e)+1).filter(function(e){return\"P\"===e.nodeName.toUpperCase()&&\"\"!==e.textContent.trim()}).length},tags:[\"cat.semantics\",\"wcag2a\",\"wcag131\",\"experimental\"],all:[{options:{margins:[{weight:150,italic:!0},{weight:150,size:1.15},{italic:!0,size:1.15},{size:1.4}]},id:\"p-as-heading\"}],any:[],none:[]},{id:\"page-has-heading-one\",selector:\"html\",tags:[\"cat.semantics\",\"best-practice\"],all:[{options:{selector:'h1:not([role]), [role=\"heading\"][aria-level=\"1\"]'},id:\"page-has-heading-one\"}],any:[],none:[]},{id:\"radiogroup\",selector:\"input[type=radio][name]\",tags:[\"cat.forms\",\"best-practice\",\"deprecated\"],enabled:!1,all:[],any:[\"group-labelledby\",\"fieldset\"],none:[]},{id:\"region\",selector:\"body *\",tags:[\"cat.keyboard\",\"best-practice\"],all:[],any:[\"region\"],none:[]},{id:\"role-img-alt\",selector:\"[role='img']:not(img):not(area):not(input):not(object)\",matches:function(e){return\"http://www.w3.org/1999/xhtml\"===e.namespaceURI},tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag111\",\"section508\",\"section508.22.a\"],all:[],any:[\"aria-label\",\"aria-labelledby\",\"non-empty-title\"],none:[]},{id:\"scope-attr-valid\",selector:\"td[scope], th[scope]\",tags:[\"cat.tables\",\"best-practice\"],all:[\"html5-scope\",\"scope-value\"],any:[],none:[]},{id:\"scrollable-region-focusable\",matches:function(e,t){var r=axe.utils.querySelectorAll,n=axe.commons.dom.hasContentVirtual;return!1!=!!axe.utils.getScroll(e,13)&&!!r(t,\"*\").some(function(e){return n(e,!0,!0)})},tags:[\"wcag2a\",\"wcag211\"],all:[],any:[\"focusable-content\",\"focusable-element\"],none:[]},{id:\"server-side-image-map\",selector:\"img[ismap]\",tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag211\",\"section508\",\"section508.22.f\"],all:[],any:[],none:[\"exists\"]},{id:\"skip-link\",selector:'a[href^=\"#\"], a[href^=\"/#\"]',matches:function(e){return axe.commons.dom.isSkipLink(e)&&axe.commons.dom.isOffscreen(e)},tags:[\"cat.keyboard\",\"best-practice\"],all:[],any:[\"skip-link\"],none:[]},{id:\"svg-img-alt\",selector:'[role=\"img\"], [role=\"graphics-symbol\"], svg[role=\"graphics-document\"]',matches:function(e){return\"http://www.w3.org/2000/svg\"===e.namespaceURI},tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag111\",\"section508\",\"section508.22.a\"],all:[],any:[\"svg-non-empty-title\",\"aria-label\",\"aria-labelledby\",\"non-empty-title\"],none:[]},{id:\"tabindex\",selector:\"[tabindex]\",tags:[\"cat.keyboard\",\"best-practice\"],all:[],any:[\"tabindex\"],none:[]},{id:\"table-duplicate-name\",selector:\"table\",tags:[\"cat.tables\",\"best-practice\"],all:[],any:[],none:[\"same-caption-summary\"]},{id:\"table-fake-caption\",selector:\"table\",matches:function(e){return axe.commons.table.isDataTable(e)},tags:[\"cat.tables\",\"experimental\",\"wcag2a\",\"wcag131\",\"section508\",\"section508.22.g\"],all:[\"caption-faked\"],any:[],none:[]},{id:\"td-has-header\",selector:\"table\",matches:function(e){if(axe.commons.table.isDataTable(e)){var t=axe.commons.table.toArray(e);return 3<=t.length&&3<=t[0].length&&3<=t[1].length&&3<=t[2].length}return!1},tags:[\"cat.tables\",\"experimental\",\"wcag2a\",\"wcag131\",\"section508\",\"section508.22.g\"],all:[\"td-has-header\"],any:[],none:[]},{id:\"td-headers-attr\",selector:\"table\",tags:[\"cat.tables\",\"wcag2a\",\"wcag131\",\"section508\",\"section508.22.g\"],all:[\"td-headers-attr\"],any:[],none:[]},{id:\"th-has-data-cells\",selector:\"table\",matches:function(e){return axe.commons.table.isDataTable(e)},tags:[\"cat.tables\",\"wcag2a\",\"wcag131\",\"section508\",\"section508.22.g\"],all:[\"th-has-data-cells\"],any:[],none:[]},{id:\"valid-lang\",selector:\"[lang], [xml\\\\:lang]\",matches:function(e){return\"html\"!==e.nodeName.toLowerCase()},tags:[\"cat.language\",\"wcag2aa\",\"wcag312\"],all:[],any:[],none:[\"valid-lang\"]},{id:\"video-caption\",selector:\"video\",excludeHidden:!1,tags:[\"cat.text-alternatives\",\"wcag2a\",\"wcag122\",\"section508\",\"section508.22.a\"],all:[],any:[],none:[\"caption\"]},{id:\"video-description\",selector:\"video\",excludeHidden:!1,tags:[\"cat.text-alternatives\",\"wcag2aa\",\"wcag125\",\"section508\",\"section508.22.b\",\"deprecated\"],enabled:!1,all:[],any:[],none:[\"description\"]}],checks:[{id:\"abstractrole\",evaluate:function(e,t,r){var n=axe.utils.tokenList(r.attr(\"role\")).filter(function(e){return\"abstract\"===axe.commons.aria.getRoleType(e)});return 0<n.length&&(this.data(n),!0)}},{id:\"aria-allowed-attr\",evaluate:function(e,t){t=t||{};var r,n,a,o=[],i=e.getAttribute(\"role\"),s=axe.utils.getNodeAttributes(e);if(i=i||axe.commons.aria.implicitRole(e),a=axe.commons.aria.allowedAttr(i),Array.isArray(t[i])&&(a=axe.utils.uniqueArray(t[i].concat(a))),i&&a)for(var l=0,u=s.length;l<u;l++)n=(r=s[l]).name,axe.commons.aria.validateAttr(n)&&!a.includes(n)&&o.push(n+'=\"'+r.nodeValue+'\"');return!o.length||(this.data(o),!1)}},{id:\"aria-allowed-role\",evaluate:function(e,t){var r=axe.commons.dom,n=t||{},a=n.allowImplicit,o=void 0===a||a,i=n.ignoredTags,s=void 0===i?[]:i,l=e.nodeName.toUpperCase();if(s.map(function(e){return e.toUpperCase()}).includes(l))return!0;var u=axe.commons.aria.getElementUnallowedRoles(e,o);if(u.length){if(this.data(u),!r.isVisible(e,!0))return;return!1}return!0},options:{allowImplicit:!0,ignoredTags:[]}},{id:\"aria-hidden-body\",evaluate:function(e){return\"true\"!==e.getAttribute(\"aria-hidden\")}},{id:\"aria-roledescription\",evaluate:function(e,t){t=t||{};var r=axe.commons.aria.getRole(e);return!!(t.supportedRoles||[]).includes(r)||!(!r||\"presentation\"===r||\"none\"===r)&&void 0},options:{supportedRoles:[\"button\",\"img\",\"checkbox\",\"radio\",\"combobox\",\"menuitemcheckbox\",\"menuitemradio\"]}},{id:\"aria-errormessage\",evaluate:function(r,e){var t=axe.commons,n=t.aria,a=t.dom;e=Array.isArray(e)?e:[];var o=r.getAttribute(\"aria-errormessage\"),i=r.hasAttribute(\"aria-errormessage\"),s=a.getRootNode(r);return!(-1===e.indexOf(o)&&i&&!function(e){if(\"\"===e.trim())return n.lookupTable.attributes[\"aria-errormessage\"].allowEmpty;var t=e&&s.getElementById(e);return t&&(\"alert\"===t.getAttribute(\"role\")||\"assertive\"===t.getAttribute(\"aria-live\")||-1<axe.utils.tokenList(r.getAttribute(\"aria-describedby\")||\"\").indexOf(e))}(o))||(this.data(axe.utils.tokenList(o)),!1)}},{id:\"fallbackrole\",evaluate:function(e,t,r){return 1<axe.utils.tokenList(r.attr(\"role\")).length}},{id:\"has-widget-role\",evaluate:function(e){var t=e.getAttribute(\"role\");if(null===t)return!1;var r=axe.commons.aria.getRoleType(t);return\"widget\"===r||\"composite\"===r},options:[]},{id:\"implicit-role-fallback\",evaluate:function(e){var t=e.getAttribute(\"role\");if(null===t||!axe.commons.aria.isValidRole(t))return!0;var r=axe.commons.aria.getRoleType(t);return axe.commons.aria.implicitRole(e)===r},deprecated:!0},{id:\"invalidrole\",evaluate:function(e,t,r){var n=axe.utils.tokenList,a=axe.commons.aria,o=n(r.attr(\"role\"));return!!o.every(function(e){return!a.isValidRole(e,{allowAbstract:!0})})&&(this.data(o),!0)}},{id:\"no-implicit-explicit-label\",evaluate:function(e,t,r){var n=axe.commons,a=n.aria,o=n.text,i=a.getRole(e,{noImplicit:!0});this.data(i);var s=o.sanitize(o.labelText(r)).toLowerCase(),l=o.sanitize(o.accessibleText(e)).toLowerCase();return!(!l&&!s)&&(!((l||!s)&&l.includes(s))&&void 0)}},{id:\"aria-required-attr\",evaluate:function(e,t){t=t||{};var r=[],n=axe.commons.forms,a=n.isNativeTextbox,o=n.isNativeSelect,i=n.isAriaTextbox,s=n.isAriaListbox,l=n.isAriaCombobox,u=n.isAriaRange,c={\"aria-valuenow\":function(){return!(a(e)||o(e)||i(e)||s(e)||l(e)||u(e)&&e.hasAttribute(\"aria-valuenow\"))}};if(e.hasAttributes()){var d=e.getAttribute(\"role\"),p=axe.commons.aria.requiredAttr(d);if(Array.isArray(t[d])&&(p=axe.utils.uniqueArray(t[d],p)),d&&p)for(var m=0,f=p.length;m<f;m++){var h=p[m];e.getAttribute(h)||c[h]&&!c[h]()||r.push(h)}}return!r.length||(this.data(r),!1)}},{id:\"aria-required-children\",evaluate:function(e,t,b){var r=axe.commons.aria.requiredOwned,i=axe.commons.aria.implicitNodes,s=axe.utils.matchesSelector,g=axe.commons.dom.idrefs,n=axe.commons.dom.hasContentVirtual,a=t&&Array.isArray(t.reviewEmpty)?t.reviewEmpty:[];function y(e,t,r,n){if(null!==e){var a=i(r),o=['[role=\"'+r+'\"]'];return a&&(o=o.concat(a.map(function(e){return e+\":not([role])\"}))),o=o.join(\",\"),n&&s(e,o)||axe.utils.querySelectorAll(t,o)[0]}}function v(e,t){for(var r=0;r<e.length;r++){var n=e[r];if(null!==n)if(y(n,axe.utils.getNodeFromTree(n),t,!0))return 1}}var o=e.getAttribute(\"role\"),l=r(o);if(!l)return!0;var u=!1,c=l.one;c||(u=!0,c=l.all);var d=function(e,t,r,n){for(var a=[],o=g(e,\"aria-owns\"),i=0;i<t.length;i++){var s=t[i];if(y(e,b,s)||v(o,s)){if(!r)return null}else r&&a.push(s)}if(\"combobox\"===n){var l=a.indexOf(\"textbox\");(0<=l&&\"INPUT\"===e.nodeName.toUpperCase()&&[\"text\",\"search\",\"email\",\"url\",\"tel\"].includes(e.type)||y(e,b,\"searchbox\")||v(o,\"searchbox\"))&&a.splice(l,1);for(var u=[\"listbox\",\"tree\",\"grid\",\"dialog\"],c=e.getAttribute(\"aria-expanded\"),d=c&&\"false\"!==c,p=(e.getAttribute(\"aria-haspopup\")||\"listbox\").toLowerCase(),m=0;m<u.length;m++){var f=u[m];if(!d||f!==p){var h=a.indexOf(f);0<=h&&a.splice(h,1)}}}return a.length?a:!r&&t.length?t:null}(e,c,u,o);return!d||(this.data(d),!(!a.includes(o)||n(b,!1,!0)||function r(e){return e.children&&e.children.some(function(e){var t=axe.commons.aria.getRole(e);return![\"presentation\",\"none\",null].includes(t)||r(e)})}(b)||0!==g(e,\"aria-owns\").length)&&void 0)},options:{reviewEmpty:[\"doc-bibliography\",\"doc-endnotes\",\"grid\",\"list\",\"listbox\",\"table\",\"tablist\",\"tree\",\"treegrid\",\"rowgroup\"]}},{id:\"aria-required-parent\",evaluate:function(e,t,r){function s(e){return(axe.commons.aria.implicitNodes(e)||[]).concat('[role=\"'+e+'\"]').join(\",\")}function n(e,t,r){var n,a,o=e.actualNode.getAttribute(\"role\"),i=[];if(!(t=t||axe.commons.aria.requiredContext(o)))return null;for(n=0,a=t.length;n<a;n++){if(r&&axe.utils.matchesSelector(e.actualNode,s(t[n])))return null;if(axe.commons.dom.findUpVirtual(e,s(t[n])))return null;i.push(t[n])}return i}var a=n(r);if(!a)return!0;var o=function(e){for(var t=[],r=null;e;){if(e.getAttribute(\"id\")){var n=axe.utils.escapeSelector(e.getAttribute(\"id\"));(r=axe.commons.dom.getRootNode(e).querySelector(\"[aria-owns~=\".concat(n,\"]\")))&&t.push(r)}e=e.parentElement}return t.length?t:null}(e);if(o)for(var i=0,l=o.length;i<l;i++)if(!(a=n(axe.utils.getNodeFromTree(o[i]),a,!0)))return!0;return this.data(a),!1}},{id:\"aria-unsupported-attr\",evaluate:function(o){var i=o.nodeName.toUpperCase(),s=axe.commons.aria.lookupTable,l=axe.commons.aria.getRole(o),e=Array.from(axe.utils.getNodeAttributes(o)).filter(function(e){var t=e.name,r=s.attributes[t];if(!axe.commons.aria.validateAttr(t))return!1;var n=r.unsupported;if(\"object\"!==W(n))return!!n;var a=axe.commons.matches(o,n.exceptions);return Object.keys(s.evaluateRoleForElement).includes(i)?!s.evaluateRoleForElement[i]({node:o,role:l,out:a}):!a}).map(function(e){return e.name.toString()});return!!e.length&&(this.data(e),!0)}},{id:\"unsupportedrole\",evaluate:function(e){return axe.commons.aria.isUnsupportedRole(axe.commons.aria.getRole(e))}},{id:\"aria-valid-attr-value\",evaluate:function(e,t){t=Array.isArray(t)?t:[];for(var r=\"\",n=\"\",a=[],o=/^aria-/,i=axe.utils.getNodeAttributes(e),s=[\"aria-errormessage\"],l={\"aria-controls\":function(){return\"false\"!==e.getAttribute(\"aria-expanded\")&&\"false\"!==e.getAttribute(\"aria-selected\")},\"aria-current\":function(){axe.commons.aria.validateAttrValue(e,\"aria-current\")||(r='aria-current=\"'.concat(e.getAttribute(\"aria-current\"),'\"'),n=\"ariaCurrent\")},\"aria-owns\":function(){return\"false\"!==e.getAttribute(\"aria-expanded\")},\"aria-describedby\":function(){axe.commons.aria.validateAttrValue(e,\"aria-describedby\")||(r='aria-describedby=\"'.concat(e.getAttribute(\"aria-describedby\"),'\"'),n=\"noId\")}},u=0,c=i.length;u<c;u++){var d=i[u],p=d.name;s.includes(p)||-1!==t.indexOf(p)||!o.test(p)||l[p]&&!l[p]()||axe.commons.aria.validateAttrValue(e,p)||a.push(\"\".concat(p,'=\"').concat(d.nodeValue,'\"'))}if(!r)return!a.length||(this.data(a),!1);this.data({messageKey:n,needsReview:r})},options:[]},{id:\"aria-valid-attr\",evaluate:function(e,t){t=Array.isArray(t)?t:[];for(var r,n=[],a=/^aria-/,o=axe.utils.getNodeAttributes(e),i=0,s=o.length;i<s;i++)r=o[i].name,-1===t.indexOf(r)&&a.test(r)&&!axe.commons.aria.validateAttr(r)&&n.push(r);return!n.length||(this.data(n),!1)},options:[]},{id:\"valid-scrollable-semantics\",evaluate:function(e){var t,r,n,a={ARTICLE:!0,ASIDE:!0,NAV:!0,SECTION:!0},o={application:!0,banner:!1,complementary:!0,contentinfo:!0,form:!0,main:!0,navigation:!0,region:!0,search:!1};return(n=(t=e).getAttribute(\"role\"))&&o[n.toLowerCase()]||(r=t.nodeName.toUpperCase(),a[r]||!1)},options:[]},{id:\"color-contrast\",evaluate:function(e,t,r){var n=axe.commons,a=n.dom,o=n.color,i=n.text;if(!a.isVisible(e,!1))return!0;var s=i.visibleVirtual(r,!1,!0),l=!!(t||{}).ignoreUnicode;if(!i.hasUnicode(s,{nonBmp:!0})||\"\"!==i.sanitize(i.removeUnicode(s,{nonBmp:!0}))||!l){var u,c=!!(t||{}).noScroll,d=[],p=o.getBackgroundColor(e,d,c),m=o.getForegroundColor(e,c,p),f=window.getComputedStyle(e),h=parseFloat(f.getPropertyValue(\"font-size\")),b=parseFloat(f.getPropertyValue(\"font-weight\")),g=!isNaN(b)&&700<=b,y=o.hasValidContrastRatio(p,m,h,g),v=Math.floor(100*y.contrastRatio)/100;null===p&&(u=o.incompleteData.get(\"bgColor\"));var w=1==v,x=1===s.length,D=!!(t||{}).ignoreLength;w?u=o.incompleteData.set(\"bgColor\",\"equalRatio\"):x&&!D&&(u=\"shortTextContent\");var k={fgColor:m?m.toHexString():void 0,bgColor:p?p.toHexString():void 0,contrastRatio:y?v:void 0,fontSize:\"\".concat((72*h/96).toFixed(1),\"pt (\").concat(h,\"px)\"),fontWeight:g?\"bold\":\"normal\",messageKey:u,expectedContrastRatio:y.expectedContrastRatio+\":1\"};return(this.data(k),null===m||null===p||w||x&&!D&&!y.isValid)?(u=null,o.incompleteData.clear(),void this.relatedNodes(d)):(y.isValid||this.relatedNodes(d),y.isValid)}this.data({messageKey:\"nonBmp\"})},options:{noScroll:!1,ignoreUnicode:!0,ignoreLength:!1}},{id:\"link-in-text-block\",evaluate:function(e){var t=axe.commons,r=t.color,n=t.dom;function a(e,t){var r=e.getRelativeLuminance(),n=t.getRelativeLuminance();return(Math.max(r,n)+.05)/(Math.min(r,n)+.05)}var o=[\"block\",\"list-item\",\"table\",\"flex\",\"grid\",\"inline-block\"];function i(e){var t=window.getComputedStyle(e).getPropertyValue(\"display\");return-1!==o.indexOf(t)||\"table-\"===t.substr(0,6)}if(i(e))return!1;for(var s,l,u=n.getComposedParent(e);1===u.nodeType&&!i(u);)u=n.getComposedParent(u);if(this.relatedNodes([u]),r.elementIsDistinct(e,u))return!0;if(s=r.getForegroundColor(e),l=r.getForegroundColor(u),s&&l){var c,d=a(s,l);return 1===d||(3<=d?(axe.commons.color.incompleteData.set(\"fgColor\",\"bgContrast\"),this.data({messageKey:axe.commons.color.incompleteData.get(\"fgColor\")}),void axe.commons.color.incompleteData.clear()):(s=r.getBackgroundColor(e),l=r.getBackgroundColor(u),(!s||!l||3<=a(s,l))&&(c=s&&l?\"bgContrast\":axe.commons.color.incompleteData.get(\"bgColor\"),axe.commons.color.incompleteData.set(\"fgColor\",c),this.data({messageKey:axe.commons.color.incompleteData.get(\"fgColor\")}),void axe.commons.color.incompleteData.clear())))}}},{id:\"autocomplete-appropriate\",evaluate:function(e,t,r){if(\"input\"!==r.props.nodeName)return!0;var n=[\"text\",\"search\",\"number\"],a=[\"text\",\"search\",\"url\"],o={bday:[\"text\",\"search\",\"date\"],email:[\"text\",\"search\",\"email\"],\"cc-exp\":[\"text\",\"search\",\"month\"],\"street-address\":[\"text\"],tel:[\"text\",\"search\",\"tel\"],\"cc-exp-month\":n,\"cc-exp-year\":n,\"transaction-amount\":n,\"bday-day\":n,\"bday-month\":n,\"bday-year\":n,\"new-password\":[\"text\",\"search\",\"password\"],\"current-password\":[\"text\",\"search\",\"password\"],url:a,photo:a,impp:a};\"object\"===W(t)&&Object.keys(t).forEach(function(e){o[e]||(o[e]=[]),o[e]=o[e].concat(t[e])});var i=r.attr(\"autocomplete\").split(/\\s+/g).map(function(e){return e.toLowerCase()}),s=i[i.length-1];if(axe.commons.text.autocomplete.stateTerms.includes(s))return!0;var l=o[s],u=r.hasAttr(\"type\")?axe.commons.text.sanitize(r.attr(\"type\")).toLowerCase():\"text\";return u=axe.utils.validInputTypes().includes(u)?u:\"text\",void 0===l?\"text\"===u:l.includes(u)}},{id:\"autocomplete-valid\",evaluate:function(e,t,r){var n=r.attr(\"autocomplete\")||\"\";return axe.commons.text.isValidAutocomplete(n,t)}},{id:\"fieldset\",evaluate:function(e,t,r){var s,l=this;function u(e,t){return axe.utils.toArray(e.querySelectorAll('select,textarea,button,input:not([name=\"'+t+'\"]):not([type=\"hidden\"])'))}var n={name:e.getAttribute(\"name\"),type:e.getAttribute(\"type\")},a=function(e){var t=axe.utils.escapeSelector(e.actualNode.name),r=axe.commons.dom.getRootNode(e.actualNode).querySelectorAll('input[type=\"'+axe.utils.escapeSelector(e.actualNode.type)+'\"][name=\"'+t+'\"]');if(r.length<2)return!0;var n,a,o=axe.commons.dom.findUpVirtual(e,\"fieldset\"),i=axe.commons.dom.findUpVirtual(e,'[role=\"group\"]'+(\"radio\"===e.actualNode.type?',[role=\"radiogroup\"]':\"\"));return i||o?o?function(e,t){var r=e.firstElementChild;if(!r||\"LEGEND\"!==r.nodeName.toUpperCase())return l.relatedNodes([e]),!(s=\"no-legend\");if(!axe.commons.text.accessibleText(r))return l.relatedNodes([r]),!(s=\"empty-legend\");var n=u(e,t);return!n.length||(l.relatedNodes(n),!(s=\"mixed-inputs\"))}(o,t):function(e,t){var r=axe.commons.dom.idrefs(e,\"aria-labelledby\").some(function(e){return e&&axe.commons.text.accessibleText(e)}),n=e.getAttribute(\"aria-label\");if(!(r||n&&axe.commons.text.sanitize(n)))return l.relatedNodes(e),!(s=\"no-group-label\");var a=u(e,t);return!a.length||(l.relatedNodes(a),!(s=\"group-mixed-inputs\"))}(i,t):(s=\"no-group\",l.relatedNodes((n=r,a=e.actualNode,axe.utils.toArray(n).filter(function(e){return e!==a}))),!1)}(r);return a||(n.messageKey=s),this.data(n),a},after:function(e){var n={};return e.filter(function(e){if(e.result)return!0;var t=e.data;if(t){if(n[t.type]=n[t.type]||{},!n[t.type][t.name])return n[t.type][t.name]=[t],!0;var r=n[t.type][t.name].some(function(e){return e.failureCode===t.failureCode});return r||n[t.type][t.name].push(t),!r}return!1})},deprecated:!0},{id:\"group-labelledby\",evaluate:function(r){var e=axe.commons,n=e.dom,t=e.text,a=axe.utils.escapeSelector(r.type),o=axe.utils.escapeSelector(r.name),i=n.getRootNode(r),s={name:r.name,type:r.type},l=Array.from(i.querySelectorAll('input[type=\"'.concat(a,'\"][name=\"').concat(o,'\"]')));if(l.length<=1)return this.data(s),!0;var u=n.idrefs(r,\"aria-labelledby\").filter(function(e){return!!e}),c=u.slice();l.forEach(function(e){if(e!==r){var t=n.idrefs(e,\"aria-labelledby\").filter(function(e){return e});u=u.filter(function(e){return t.includes(e)}),c=c.filter(function(e){return!t.includes(e)})}});var d={inLabelledByContext:!0};return c=c.filter(function(e){return t.accessibleText(e,d)}),u=u.filter(function(e){return t.accessibleText(e,d)}),0<c.length&&0<u.length?(this.data(s),!0):(0<c.length&&0===u.length?s.messageKey=\"no-shared-label\":0===c.length&&0<u.length&&(s.messageKey=\"no-unique-label\"),this.data(s),!1)},after:function(e){var r={};return e.filter(function(e){var t=e.data;return!(!t||(r[t.type]=r[t.type]||{},r[t.type][t.name]))&&(r[t.type][t.name]=!0)})},deprecated:!0},{id:\"accesskeys\",evaluate:function(e){return axe.commons.dom.isVisible(e,!1)&&(this.data(e.getAttribute(\"accesskey\")),this.relatedNodes([e])),!0},after:function(e){var r={};return e.filter(function(e){if(!e.data)return!1;var t=e.data.toUpperCase();return r[t]?(r[t].relatedNodes.push(e.relatedNodes[0]),!1):((r[t]=e).relatedNodes=[],!0)}).map(function(e){return e.result=!!e.relatedNodes.length,e})}},{id:\"focusable-content\",evaluate:function(e,t,r){var n=r.tabbableElements;return!!n&&0<n.filter(function(e){return e!==r}).length}},{id:\"focusable-disabled\",evaluate:function(e,t,r){var a=[\"BUTTON\",\"FIELDSET\",\"INPUT\",\"SELECT\",\"TEXTAREA\"],n=r.tabbableElements;if(!n||!n.length)return!0;var o=n.reduce(function(e,t){var r=t.actualNode,n=r.nodeName.toUpperCase();return a.includes(n)&&e.push(r),e},[]);return this.relatedNodes(o),!(!o.length||!axe.commons.dom.isModalOpen())||0===o.length}},{id:\"focusable-element\",evaluate:function(e,t,r){var n=r.isFocusable,a=parseInt(r.actualNode.getAttribute(\"tabindex\"),10);return(a=isNaN(a)?null:a)?n&&0<=a:n}},{id:\"focusable-modal-open\",evaluate:function(e,t,r){var n=r.tabbableElements.map(function(e){return e.actualNode});return!n||!n.length||(!axe.commons.dom.isModalOpen()||void this.relatedNodes(n))}},{id:\"focusable-no-name\",evaluate:function(e,t,r){var n=e.getAttribute(\"tabindex\");return!!(axe.commons.dom.isFocusable(e)&&-1<n)&&!axe.commons.text.accessibleTextVirtual(r)}},{id:\"focusable-not-tabbable\",evaluate:function(e,t,r){var a=[\"BUTTON\",\"FIELDSET\",\"INPUT\",\"SELECT\",\"TEXTAREA\"],n=r.tabbableElements;if(!n||!n.length)return!0;var o=n.reduce(function(e,t){var r=t.actualNode,n=r.nodeName.toUpperCase();return a.includes(n)||e.push(r),e},[]);return this.relatedNodes(o),!!(0<o.length&&axe.commons.dom.isModalOpen())||0===o.length}},{id:\"landmark-is-top-level\",evaluate:function(e){var t=axe.commons.aria.getRolesByType(\"landmark\"),r=axe.commons.dom.getComposedParent(e);for(this.data({role:e.getAttribute(\"role\")||axe.commons.aria.implicitRole(e)});r;){var n=r.getAttribute(\"role\");if(n||\"FORM\"===r.nodeName.toUpperCase()||(n=axe.commons.aria.implicitRole(r)),n&&t.includes(n))return!1;r=axe.commons.dom.getComposedParent(r)}return!0}},{id:\"page-has-heading-one\",evaluate:function(e,t,r){if(!t||!t.selector||\"string\"!=typeof t.selector)throw new TypeError(\"visible-in-page requires options.selector to be a string\");var n=axe.utils.querySelectorAllFilter(r,t.selector,function(e){return axe.commons.dom.isVisible(e.actualNode,!0)});return this.relatedNodes(n.map(function(e){return e.actualNode})),0<n.length},after:function(e){return e.some(function(e){return!0===e.result})&&e.forEach(function(e){e.result=!0}),e},options:{selector:'h1:not([role]), [role=\"heading\"][aria-level=\"1\"]'}},{id:\"page-has-main\",evaluate:function(e,t,r){if(!t||!t.selector||\"string\"!=typeof t.selector)throw new TypeError(\"visible-in-page requires options.selector to be a string\");var n=axe.utils.querySelectorAllFilter(r,t.selector,function(e){return axe.commons.dom.isVisible(e.actualNode,!0)});return this.relatedNodes(n.map(function(e){return e.actualNode})),0<n.length},after:function(e){return e.some(function(e){return!0===e.result})&&e.forEach(function(e){e.result=!0}),e},options:{selector:\"main:not([role]), [role='main']\"}},{id:\"page-no-duplicate-banner\",evaluate:function(e,t,r){if(!t||!t.selector||\"string\"!=typeof t.selector)throw new TypeError(\"visible-in-page requires options.selector to be a string\");var n=\"page-no-duplicate;\"+t.selector;if(!axe._cache.get(n)){axe._cache.set(n,!0);var a=axe.utils.querySelectorAllFilter(axe._tree[0],t.selector,function(e){return axe.commons.dom.isVisible(e.actualNode)});return\"string\"==typeof t.nativeScopeFilter&&(a=a.filter(function(e){return e.actualNode.hasAttribute(\"role\")||!axe.commons.dom.findUpVirtual(e,t.nativeScopeFilter)})),this.relatedNodes(a.filter(function(e){return e!==r}).map(function(e){return e.actualNode})),a.length<=1}this.data(\"ignored\")},after:function(e){return e.filter(function(e){return\"ignored\"!==e.data})},options:{selector:\"header:not([role]), [role=banner]\",nativeScopeFilter:\"article, aside, main, nav, section\"}},{id:\"page-no-duplicate-contentinfo\",evaluate:function(e,t,r){if(!t||!t.selector||\"string\"!=typeof t.selector)throw new TypeError(\"visible-in-page requires options.selector to be a string\");var n=\"page-no-duplicate;\"+t.selector;if(!axe._cache.get(n)){axe._cache.set(n,!0);var a=axe.utils.querySelectorAllFilter(axe._tree[0],t.selector,function(e){return axe.commons.dom.isVisible(e.actualNode)});return\"string\"==typeof t.nativeScopeFilter&&(a=a.filter(function(e){return e.actualNode.hasAttribute(\"role\")||!axe.commons.dom.findUpVirtual(e,t.nativeScopeFilter)})),this.relatedNodes(a.filter(function(e){return e!==r}).map(function(e){return e.actualNode})),a.length<=1}this.data(\"ignored\")},after:function(e){return e.filter(function(e){return\"ignored\"!==e.data})},options:{selector:\"footer:not([role]), [role=contentinfo]\",nativeScopeFilter:\"article, aside, main, nav, section\"}},{id:\"page-no-duplicate-main\",evaluate:function(e,t,r){if(!t||!t.selector||\"string\"!=typeof t.selector)throw new TypeError(\"visible-in-page requires options.selector to be a string\");var n=\"page-no-duplicate;\"+t.selector;if(!axe._cache.get(n)){axe._cache.set(n,!0);var a=axe.utils.querySelectorAllFilter(axe._tree[0],t.selector,function(e){return axe.commons.dom.isVisible(e.actualNode)});return\"string\"==typeof t.nativeScopeFilter&&(a=a.filter(function(e){return e.actualNode.hasAttribute(\"role\")||!axe.commons.dom.findUpVirtual(e,t.nativeScopeFilter)})),this.relatedNodes(a.filter(function(e){return e!==r}).map(function(e){return e.actualNode})),a.length<=1}this.data(\"ignored\")},after:function(e){return e.filter(function(e){return\"ignored\"!==e.data})},options:{selector:\"main:not([role]), [role='main']\"}},{id:\"tabindex\",evaluate:function(e){var t=parseInt(e.getAttribute(\"tabindex\"),10);return!!isNaN(t)||t<=0}},{id:\"alt-space-value\",evaluate:function(e,t,r){var n=r.attr(\"alt\");return\"string\"==typeof n&&/^\\s+$/.test(n)}},{id:\"duplicate-img-label\",evaluate:function(e,t,r){var n=axe.commons,a=n.aria,o=n.text,i=n.dom;if([\"none\",\"presentation\"].includes(a.getRole(e)))return!1;var s=i.findUpVirtual(r,'button, [role=\"button\"], a[href], p, li, td, th');if(!s)return!1;var l=axe.utils.getNodeFromTree(s),u=o.visibleVirtual(l,!0).toLowerCase();return\"\"!==u&&u===o.accessibleTextVirtual(r).toLowerCase()}},{id:\"explicit-label\",evaluate:function(e){if(e.getAttribute(\"id\")){var t=axe.commons.dom.getRootNode(e),r=axe.utils.escapeSelector(e.getAttribute(\"id\")),n=t.querySelector('label[for=\"'.concat(r,'\"]'));if(n)return!axe.commons.dom.isVisible(n)||!!axe.commons.text.accessibleText(n)}return!1}},{id:\"help-same-as-label\",evaluate:function(e,t,r){var n=axe.commons.text.labelVirtual(r),a=e.getAttribute(\"title\");if(!n)return!1;a||(a=\"\",e.getAttribute(\"aria-describedby\")&&(a=axe.commons.dom.idrefs(e,\"aria-describedby\").map(function(e){return e?axe.commons.text.accessibleText(e):\"\"}).join(\"\")));return axe.commons.text.sanitize(a)===axe.commons.text.sanitize(n)},enabled:!1},{id:\"hidden-explicit-label\",evaluate:function(e,t,r){if(e.getAttribute(\"id\")){var n=axe.commons.dom.getRootNode(e),a=axe.utils.escapeSelector(e.getAttribute(\"id\")),o=n.querySelector('label[for=\"'.concat(a,'\"]'));if(o&&!axe.commons.dom.isVisible(o,!0))return\"\"===axe.commons.text.accessibleTextVirtual(r).trim()}return!1}},{id:\"implicit-label\",evaluate:function(e,t,r){var n=axe.commons,a=n.dom,o=n.text,i=a.findUpVirtual(r,\"label\");return!!i&&!!o.accessibleText(i,{inControlContext:!0})}},{id:\"label-content-name-mismatch\",evaluate:function(e,t,r){var n=axe.commons.text,a=t||{},o=a.pixelThreshold,i=a.occuranceThreshold,s=n.accessibleText(e).toLowerCase();if(!(n.isHumanInterpretable(s)<1)){var l=n.visibleTextNodes(r).filter(function(e){return!n.isIconLigature(e,o,i)}).map(function(e){return e.actualNode.nodeValue}).join(\"\"),u=n.sanitize(l).toLowerCase();return!u||(n.isHumanInterpretable(u)<1?!!c(u,s)||void 0:c(u,s))}function c(e,t){var r=d(t),n=d(e);return!(!r||!n)&&r.includes(n)}function d(e){var t=n.removeUnicode(e,{emoji:!0,nonBmp:!0,punctuations:!0});return n.sanitize(t)}},options:{pixelThreshold:.1,occuranceThreshold:3}},{id:\"multiple-label\",evaluate:function(e){var t=axe.utils.escapeSelector(e.getAttribute(\"id\")),r=e.parentNode,n=axe.commons.dom.getRootNode(e);n=n.documentElement||n;var a=Array.from(n.querySelectorAll('label[for=\"'.concat(t,'\"]')));for(a.length&&(a=a.filter(function(e){return axe.commons.dom.isVisible(e)}));r;)\"LABEL\"===r.nodeName.toUpperCase()&&-1===a.indexOf(r)&&a.push(r),r=r.parentNode;if(this.relatedNodes(a),1<a.length){var o=a.filter(function(e){return axe.commons.dom.isVisible(e,!0)});if(1<o.length)return;return!axe.commons.dom.idrefs(e,\"aria-labelledby\").includes(o[0])&&void 0}return!1}},{id:\"title-only\",evaluate:function(e,t,r){return!(axe.commons.text.labelVirtual(r)||!e.getAttribute(\"title\")&&!e.getAttribute(\"aria-describedby\"))}},{id:\"landmark-is-unique\",evaluate:function(e,t,r){var n=axe.commons.aria.getRole(e),a=axe.commons.text.accessibleTextVirtual(r);return a=a?a.toLowerCase():null,this.data({role:n,accessibleText:a}),this.relatedNodes([e]),!0},after:function(e){var r=[];return e.filter(function(t){var e=r.find(function(e){return t.data.role===e.data.role&&t.data.accessibleText===e.data.accessibleText});return e?(e.result=!1,e.relatedNodes.push(t.relatedNodes[0]),!1):(r.push(t),t.relatedNodes=[],!0)})}},{id:\"has-lang\",evaluate:function(e){var t=axe.utils.isXHTML,r=(e.getAttribute(\"lang\")||\"\").trim(),n=(e.getAttribute(\"xml:lang\")||\"\").trim();return r||!n||t(document)?!(!r&&!n)||(this.data({messageKey:\"noLang\"}),!1):(this.data({messageKey:\"noXHTML\"}),!1)}},{id:\"valid-lang\",evaluate:function(a,e){var o,t;return o=(e||axe.utils.validLangs()).map(axe.utils.getBaseLang),!!(t=[\"lang\",\"xml:lang\"].reduce(function(e,t){var r=a.getAttribute(t);if(\"string\"!=typeof r)return e;var n=axe.utils.getBaseLang(r);return\"\"!==n&&-1===o.indexOf(n)&&e.push(t+'=\"'+a.getAttribute(t)+'\"'),e},[])).length&&(this.data(t),!0)}},{id:\"xml-lang-mismatch\",evaluate:function(e){var t=axe.utils.getBaseLang;return t(e.getAttribute(\"lang\"))===t(e.getAttribute(\"xml:lang\"))}},{id:\"dlitem\",evaluate:function(e){var t=axe.commons.dom.getComposedParent(e),r=t.nodeName.toUpperCase(),n=axe.commons.aria.getRole(t,{noImplicit:!0});return\"DIV\"===r&&[\"presentation\",\"none\",null].includes(n)&&(r=(t=axe.commons.dom.getComposedParent(t)).nodeName.toUpperCase(),n=axe.commons.aria.getRole(t,{noImplicit:!0})),\"DL\"===r&&(!n||\"list\"===n)}},{id:\"listitem\",evaluate:function(e){var t=axe.commons.dom.getComposedParent(e);if(t){var r=t.nodeName.toUpperCase(),n=(t.getAttribute(\"role\")||\"\").toLowerCase();return\"list\"===n||(n&&axe.commons.aria.isValidRole(n)?(this.data({messageKey:\"roleNotValid\"}),!1):[\"UL\",\"OL\"].includes(r))}}},{id:\"only-dlitems\",evaluate:function(e,t,r){var n=axe.commons,o=n.dom,i=n.aria,s=[\"definition\",\"term\",\"list\"],a=r.children.reduce(function(e,t){var r=t.actualNode;return\"DIV\"===r.nodeName.toUpperCase()&&null===i.getRole(r)?e.concat(t.children):e.concat(t)},[]).reduce(function(e,t){var r=t.actualNode,n=r.nodeName.toUpperCase();if(1===r.nodeType&&o.isVisible(r,!0,!1)){var a=i.getRole(r,{noImplicit:!0});(\"DT\"!==n&&\"DD\"!==n||a)&&(s.includes(a)||e.badNodes.push(r))}else 3===r.nodeType&&\"\"!==r.nodeValue.trim()&&(e.hasNonEmptyTextNode=!0);return e},{badNodes:[],hasNonEmptyTextNode:!1});return a.badNodes.length&&this.relatedNodes(a.badNodes),!!a.badNodes.length||a.hasNonEmptyTextNode}},{id:\"only-listitems\",evaluate:function(e,t,r){var n=axe.commons,o=n.dom,i=n.aria,s=!1,l=!1,u=!0,c=[],d=[],p=[];return r.children.forEach(function(e){var t=e.actualNode;if(3!==t.nodeType||\"\"===t.nodeValue.trim()){if(1===t.nodeType&&o.isVisible(t,!0,!1)){u=!1;var r=\"LI\"===t.nodeName.toUpperCase(),n=i.getRole(e),a=\"listitem\"===n;r||a||c.push(t),r&&!a&&(d.push(t),p.includes(n)||p.push(n)),a&&(l=!0)}}else s=!0}),s||c.length?(this.relatedNodes(c),!0):!u&&!l&&(this.relatedNodes(d),this.data({messageKey:\"roleNotValid\",roles:p.join(\", \")}),!0)}},{id:\"structured-dlitems\",evaluate:function(e,t,r){var n=r.children;if(!n||!n.length)return!1;for(var a,o=!1,i=!1,s=0;s<n.length;s++){if(\"DT\"===(a=n[s].actualNode.nodeName.toUpperCase())&&(o=!0),o&&\"DD\"===a)return!1;\"DD\"===a&&(i=!0)}return o||i}},{id:\"caption\",evaluate:function(e,t,r){return!axe.utils.querySelectorAll(r,\"track\").some(function(e){return\"captions\"===(e.actualNode.getAttribute(\"kind\")||\"\").toLowerCase()})&&void 0}},{id:\"description\",evaluate:function(e,t,r){return!axe.utils.querySelectorAll(r,\"track\").some(function(e){return\"descriptions\"===(e.actualNode.getAttribute(\"kind\")||\"\").toLowerCase()})&&void 0}},{id:\"frame-tested\",evaluate:function(e,t){var r=this.async(),n=Object.assign({isViolation:!1,timeout:500},t),a=n.isViolation,o=n.timeout,i=setTimeout(function(){i=setTimeout(function(){i=null,r(!a&&void 0)},0)},o);axe.utils.respondable(e.contentWindow,\"axe.ping\",null,void 0,function(){null!==i&&(clearTimeout(i),r(!0))})},options:{isViolation:!1}},{id:\"no-autoplay-audio\",evaluate:function(e,t){if(e.duration){var r=t.allowedDuration,n=void 0===r?3:r;return function(e){if(!e.currentSrc)return 0;var t=function(e){var t=e.match(/#t=(.*)/);return t?X(t,2)[1].split(\",\").map(function(e){return(/:/.test(e)?function(e){var t=e.split(\":\"),r=0,n=1;for(;0<t.length;)r+=n*parseInt(t.pop(),10),n*=60;return parseFloat(r)}:parseFloat)(e)}):void 0}(e.currentSrc);return t?1!==t.length?Math.abs(t[1]-t[0]):Math.abs(e.duration-t[0]):Math.abs(e.duration-(e.currentTime||0))}(e)<=n&&!e.hasAttribute(\"loop\")||!!e.hasAttribute(\"controls\")}console.warn(\"axe.utils.preloadMedia did not load metadata\")},options:{allowedDuration:3}},{id:\"css-orientation-lock\",evaluate:function(e,t,r,n){var a=(n||{}).cssom,o=void 0===a?void 0:a,i=(t||{}).degreeThreshold,u=void 0===i?0:i;if(o&&o.length){function s(){var e=m[p],t=d[e],n=t.root,r=t.rules.filter(f);if(!r.length)return\"continue\";r.forEach(function(e){var t=e.cssRules;Array.from(t).forEach(function(e){var t=function(e){var t=e.selectorText,r=e.style;if(!t||r.length<=0)return!1;var n=r.transform||r.webkitTransform||r.msTransform||!1;if(!n)return!1;var a=n.match(/(rotate|rotateZ|rotate3d|matrix|matrix3d)\\(([^)]+)\\)(?!.*(rotate|rotateZ|rotate3d|matrix|matrix3d))/);if(!a)return!1;var o=X(a,3),i=o[1],s=o[2],l=function(e,t){switch(e){case\"rotate\":case\"rotateZ\":return h(t);case\"rotate3d\":var r=t.split(\",\").map(function(e){return e.trim()}),n=X(r,4),a=n[2],o=n[3];if(0===parseInt(a))return;return h(o);case\"matrix\":case\"matrix3d\":return function(e){var t=e.split(\",\");if(t.length<=6){var r=X(t,2),n=r[0],a=r[1];return b(Math.atan2(parseFloat(a),parseFloat(n)))}var o=parseFloat(t[8]),i=Math.asin(o),s=Math.cos(i);return b(Math.acos(parseFloat(t[0])/s))}(t);default:return}}(i,s);if(!l)return!1;if(l=Math.abs(l),Math.abs(l-180)%180<=u)return!1;return Math.abs(l-90)%90<=u}(e);if(t&&\"HTML\"!==e.selectorText.toUpperCase()){var r=Array.from(n.querySelectorAll(e.selectorText))||[];c=c.concat(r)}l=l||t})})}for(var l=!1,c=[],d=o.reduce(function(e,t){var r=t.sheet,n=t.root,a=t.shadowId,o=a||\"topDocument\";if(e[o]||(e[o]={root:n,rules:[]}),!r||!r.cssRules)return e;var i=Array.from(r.cssRules);return e[o].rules=e[o].rules.concat(i),e},{}),p=0,m=Object.keys(d);p<m.length;p++)s();return l?(c.length&&this.relatedNodes(c),!1):!0}function f(e){var t=e.type,r=e.cssText;return 4===t&&(/orientation:\\s*landscape/i.test(r)||/orientation:\\s*portrait/i.test(r))}function h(e){var t=e.match(/(deg|grad|rad|turn)/)||[],r=X(t,1)[0];if(r){var n,a=parseFloat(e.replace(r,\"\"));switch(r){case\"rad\":return b(a);case\"grad\":return function(e){(e%=400)<0&&(e+=400);return Math.round(e/400*360)}(a);case\"turn\":return n=a,Math.round(360/(1/n));case\"deg\":default:return parseInt(a)}}}function b(e){return Math.round(e*(180/Math.PI))}},options:{degreeThreshold:2}},{id:\"meta-viewport-large\",evaluate:function(e,t){var r=t||{},n=r.scaleMinimum,a=void 0===n?2:n,o=r.lowerBound,i=void 0!==o&&o,s=e.getAttribute(\"content\")||\"\";if(!s)return!0;var l=s.split(/[;,]/).reduce(function(e,t){var r=t.trim();if(!r)return e;var n=r.split(\"=\"),a=X(n,2),o=a[0],i=a[1],s=o.toLowerCase().trim(),l=i.toLowerCase().trim();return\"maximum-scale\"===s&&\"yes\"===l&&(l=1),\"maximum-scale\"===s&&parseFloat(l)<0||(e[s]=l),e},{});return!!(i&&l[\"maximum-scale\"]&&parseFloat(l[\"maximum-scale\"])<i)||(i||\"no\"!==l[\"user-scalable\"]?!(l[\"maximum-scale\"]&&parseFloat(l[\"maximum-scale\"])<a)||(this.data(\"maximum-scale\"),!1):(this.data(\"user-scalable=no\"),!1))},options:{scaleMinimum:5,lowerBound:2}},{id:\"meta-viewport\",evaluate:function(e,t){var r=t||{},n=r.scaleMinimum,a=void 0===n?2:n,o=r.lowerBound,i=void 0!==o&&o,s=e.getAttribute(\"content\")||\"\";if(!s)return!0;var l=s.split(/[;,]/).reduce(function(e,t){var r=t.trim();if(!r)return e;var n=r.split(\"=\"),a=X(n,2),o=a[0],i=a[1],s=o.toLowerCase().trim(),l=i.toLowerCase().trim();return\"maximum-scale\"===s&&\"yes\"===l&&(l=1),\"maximum-scale\"===s&&parseFloat(l)<0||(e[s]=l),e},{});return!!(i&&l[\"maximum-scale\"]&&parseFloat(l[\"maximum-scale\"])<i)||(i||\"no\"!==l[\"user-scalable\"]?!(l[\"maximum-scale\"]&&parseFloat(l[\"maximum-scale\"])<a)||(this.data(\"maximum-scale\"),!1):(this.data(\"user-scalable=no\"),!1))},options:{scaleMinimum:2}},{id:\"header-present\",evaluate:function(e,t,r){return!!axe.utils.querySelectorAll(r,'h1, h2, h3, h4, h5, h6, [role=\"heading\"]')[0]}},{id:\"heading-order\",evaluate:function(e){var t=e.getAttribute(\"aria-level\");if(null!==t)return this.data(parseInt(t,10)),!0;var r=e.nodeName.toUpperCase().match(/H(\\d)/);return r&&this.data(parseInt(r[1],10)),!0},after:function(e){if(e.length<2)return e;for(var t=e[0].data,r=1;r<e.length;r++)e[r].result&&e[r].data>t+1&&(e[r].result=!1),t=e[r].data;return e}},{id:\"identical-links-same-purpose\",evaluate:function(e,t,r){var n=axe.commons,a=n.dom,o=n.text,i=o.accessibleTextVirtual(r),s=o.sanitize(o.removeUnicode(i,{emoji:!0,nonBmp:!0,punctuations:!0})).toLowerCase();if(s){var l={name:s,urlProps:a.urlPropsFromAttribute(e,\"href\")};return this.data(l),this.relatedNodes([e]),!0}},after:function(e){if(e.length<2)return e;function t(r){var e,t=l[r],n=t.data,a=n.name,o=n.urlProps;if(c[a])return\"continue\";var i=l.filter(function(e,t){return e.data.name===a&&t!==r}),s=i.every(function(e){return function n(a,o){if(!a||!o)return!1;var e=Object.getOwnPropertyNames(a);var t=Object.getOwnPropertyNames(o);if(e.length!==t.length)return!1;var r=e.every(function(e){var t=a[e],r=o[e];return W(t)===W(r)&&(\"object\"==typeof t||\"object\"==typeof r?n(t,r):t===r)});return r}(e.data.urlProps,o)});i.length&&!s&&(t.result=void 0),t.relatedNodes=[],(e=t.relatedNodes).push.apply(e,Pe(i.map(function(e){return e.relatedNodes[0]}))),c[a]=i,u.push(t)}for(var l=e.filter(function(e){return void 0!==e.result}),u=[],c={},r=0;r<l.length;r++)t(r);return u}},{id:\"internal-link-present\",evaluate:function(e,t,r){return axe.utils.querySelectorAll(r,\"a[href]\").some(function(e){return/^#[^/!]/.test(e.actualNode.getAttribute(\"href\"))})}},{id:\"landmark\",evaluate:function(e,t,r){return 0<axe.utils.querySelectorAll(r,'main, [role=\"main\"]').length}},{id:\"meta-refresh\",evaluate:function(e){var t=e.getAttribute(\"content\")||\"\",r=t.split(/[;,]/);return\"\"===t||\"0\"===r[0]}},{id:\"p-as-heading\",evaluate:function(e,t,r){var n=Array.from(e.parentNode.children),a=n.indexOf(e),o=(t=t||{}).margins||[],i=n.slice(a+1).find(function(e){return\"P\"===e.nodeName.toUpperCase()}),s=n.slice(0,a).reverse().find(function(e){return\"P\"===e.nodeName.toUpperCase()});function l(e){var t=window.getComputedStyle(function(e){for(var t=e,r=e.textContent.trim(),n=r;n===r&&void 0!==t;){var a=-1;if(0===(e=t).children.length)return e;for(;a++,\"\"===(n=e.children[a].textContent.trim())&&a+1<e.children.length;);t=e.children[a]}return e}(e));return{fontWeight:function(e){switch(e){case\"lighter\":return 100;case\"normal\":return 400;case\"bold\":return 700;case\"bolder\":return 900}return e=parseInt(e),isNaN(e)?400:e}(t.getPropertyValue(\"font-weight\")),fontSize:parseInt(t.getPropertyValue(\"font-size\")),isItalic:\"italic\"===t.getPropertyValue(\"font-style\")}}function u(r,n,e){return e.reduce(function(e,t){return e||(!t.size||r.fontSize/t.size>n.fontSize)&&(!t.weight||r.fontWeight-t.weight>n.fontWeight)&&(!t.italic||r.isItalic&&!n.isItalic)},!1)}var c=l(e),d=i?l(i):null,p=s?l(s):null;if(!d||!u(c,d,o))return!0;var m=axe.commons.dom.findUpVirtual(r,\"blockquote\");return!!(m&&\"BLOCKQUOTE\"===m.nodeName.toUpperCase()||p&&!u(c,p,o))&&void 0},options:{margins:[{weight:150,italic:!0},{weight:150,size:1.15},{italic:!0,size:1.15},{size:1.4}]}},{id:\"region\",evaluate:function(e,t,r){var n=axe.commons,l=n.dom,u=n.aria,c=u.getRolesByType(\"landmark\"),d=[\"alert\",\"log\",\"status\"],a=axe._cache.get(\"regionlessNodes\");if(a)return!a.includes(r);var p=c.reduce(function(e,t){return e.concat(u.implicitNodes(t))},[]).filter(function(e){return null!==e});return a=function e(t){var a,o,r,n,i=t.actualNode;if(o=(a=t).actualNode,r=axe.commons.aria.getRole(o,{noImplicit:!0}),n=(o.getAttribute(\"aria-live\")||\"\").toLowerCase().trim(),[\"assertive\",\"polite\"].includes(n)||d.includes(r)||(r?\"dialog\"===r||c.includes(r):p.some(function(e){var t=axe.utils.matchesSelector(o,e);if(\"FORM\"!==o.nodeName.toUpperCase())return t;var r=o.getAttribute(\"title\"),n=r&&\"\"!==r.trim()?axe.commons.text.sanitize(r):null;return t&&(!!u.labelVirtual(a)||!!n)}))||l.isSkipLink(t.actualNode)&&l.getElementByReference(t.actualNode,\"href\")||!l.isVisible(i,!0)){for(var s=t;s;)s._hasRegionDescendant=!0,s=s.parent;return[]}return i!==document.body&&l.hasContent(i,!0)?[t]:t.children.filter(function(e){return 1===e.actualNode.nodeType}).map(e).reduce(function(e,t){return e.concat(t)},[])}(axe._tree[0]).map(function(e){for(;e.parent&&!e.parent._hasRegionDescendant&&e.parent.actualNode!==document.body;)e=e.parent;return e}).filter(function(e,t,r){return r.indexOf(e)===t}),axe._cache.set(\"regionlessNodes\",a),!a.includes(r)}},{id:\"skip-link\",evaluate:function(e){var t=axe.commons.dom.getElementByReference(e,\"href\");return!!t&&(axe.commons.dom.isVisible(t,!0)||void 0)}},{id:\"unique-frame-title\",evaluate:function(e){var t=axe.commons.text.sanitize(e.title).trim().toLowerCase();return this.data(t),!0},after:function(e){var t={};return e.forEach(function(e){t[e.data]=void 0!==t[e.data]?++t[e.data]:0}),e.forEach(function(e){e.result=!!t[e.data]}),e}},{id:\"duplicate-id-active\",evaluate:function(t){var e=t.getAttribute(\"id\").trim();if(!e)return!0;var r=axe.commons.dom.getRootNode(t),n=Array.from(r.querySelectorAll('[id=\"'.concat(axe.utils.escapeSelector(e),'\"]'))).filter(function(e){return e!==t});return n.length&&this.relatedNodes(n),this.data(e),0===n.length},after:function(e){var t=[];return e.filter(function(e){return-1===t.indexOf(e.data)&&(t.push(e.data),!0)})}},{id:\"duplicate-id-aria\",evaluate:function(t){var e=t.getAttribute(\"id\").trim();if(!e)return!0;var r=axe.commons.dom.getRootNode(t),n=Array.from(r.querySelectorAll('[id=\"'.concat(axe.utils.escapeSelector(e),'\"]'))).filter(function(e){return e!==t});return n.length&&this.relatedNodes(n),this.data(e),0===n.length},after:function(e){var t=[];return e.filter(function(e){return-1===t.indexOf(e.data)&&(t.push(e.data),!0)})}},{id:\"duplicate-id\",evaluate:function(t){var e=t.getAttribute(\"id\").trim();if(!e)return!0;var r=axe.commons.dom.getRootNode(t),n=Array.from(r.querySelectorAll('[id=\"'.concat(axe.utils.escapeSelector(e),'\"]'))).filter(function(e){return e!==t});return n.length&&this.relatedNodes(n),this.data(e),0===n.length},after:function(e){var t=[];return e.filter(function(e){return-1===t.indexOf(e.data)&&(t.push(e.data),!0)})}},{id:\"aria-label\",evaluate:function(e,t,r){var n=axe.commons,a=n.text,o=n.aria;return!!a.sanitize(o.arialabelText(r))}},{id:\"aria-labelledby\",evaluate:function(e){var t=axe.commons,r=t.text,n=t.aria;return!!r.sanitize(n.arialabelledbyText(e))}},{id:\"avoid-inline-spacing\",evaluate:function(t){var e=[\"line-height\",\"letter-spacing\",\"word-spacing\"].filter(function(e){if(\"important\"===t.style.getPropertyPriority(e))return e});return!(0<e.length)||(this.data(e),!1)}},{id:\"button-has-visible-text\",evaluate:function(e,t,r){var n,a=e.nodeName.toUpperCase(),o=e.getAttribute(\"role\");return(\"BUTTON\"===a||\"button\"===o&&\"INPUT\"!==a)&&(n=axe.commons.text.accessibleTextVirtual(r),this.data(n),!!n)}},{id:\"doc-has-title\",evaluate:function(){var e=document.title;return!(!e||!axe.commons.text.sanitize(e).trim())}},{id:\"exists\",evaluate:function(){}},{id:\"has-alt\",evaluate:function(e,t,r){var n=r.props.nodeName;return!![\"img\",\"input\",\"area\"].includes(n)&&r.hasAttr(\"alt\")}},{id:\"has-visible-text\",evaluate:function(e,t,r){return 0<axe.commons.text.accessibleTextVirtual(r).length}},{id:\"is-on-screen\",evaluate:function(e){return axe.commons.dom.isVisible(e,!1)&&!axe.commons.dom.isOffscreen(e)}},{id:\"non-empty-alt\",evaluate:function(e,t,r){var n=r.attr(\"alt\");return!(!n||!axe.commons.text.sanitize(n).trim())}},{id:\"non-empty-if-present\",evaluate:function(e){var t=e.nodeName.toUpperCase(),r=(e.getAttribute(\"type\")||\"\").toLowerCase(),n=e.getAttribute(\"value\");return n&&this.data({messageKey:\"has-label\"}),!(\"INPUT\"!==t||![\"submit\",\"reset\"].includes(r))&&null===n}},{id:\"non-empty-title\",evaluate:function(e){var t=axe.commons.text;return!!t.sanitize(t.titleText(e))}},{id:\"non-empty-value\",evaluate:function(e){var t=e.getAttribute(\"value\");return!(!t||!axe.commons.text.sanitize(t).trim())}},{id:\"role-none\",evaluate:function(e){return\"none\"===e.getAttribute(\"role\")}},{id:\"role-presentation\",evaluate:function(e){return\"presentation\"===e.getAttribute(\"role\")}},{id:\"svg-non-empty-title\",evaluate:function(e,t,r){var n=r.children.find(function(e){return\"title\"===e.props.nodeName});return!!n&&\"\"!==n.actualNode.textContent.trim()}},{id:\"caption-faked\",evaluate:function(e){var t=axe.commons.table.toGrid(e),n=t[0];return t.length<=1||n.length<=1||e.rows.length<=1||n.reduce(function(e,t,r){return e||t!==n[r+1]&&void 0!==n[r+1]},!1)}},{id:\"has-caption\",evaluate:function(e){return!!e.caption},deprecated:!0},{id:\"has-summary\",evaluate:function(e){return!!e.summary},deprecated:!0},{id:\"has-th\",evaluate:function(e){for(var t,r,n=[],a=0,o=e.rows.length;a<o;a++)for(var i=0,s=(t=e.rows[a]).cells.length;i<s;i++)\"TH\"!==(r=t.cells[i]).nodeName.toUpperCase()&&-1===[\"rowheader\",\"columnheader\"].indexOf(r.getAttribute(\"role\"))||n.push(r);return!!n.length&&(this.relatedNodes(n),!0)},deprecated:!0},{id:\"html5-scope\",evaluate:function(e){return!axe.commons.dom.isHTML5(document)||\"TH\"===e.nodeName.toUpperCase()}},{id:\"same-caption-summary\",evaluate:function(e){return!(!e.summary||!e.caption)&&e.summary.toLowerCase()===axe.commons.text.accessibleText(e.caption).toLowerCase()}},{id:\"scope-value\",evaluate:function(e){var t=e.getAttribute(\"scope\").toLowerCase();return-1!==[\"row\",\"col\",\"rowgroup\",\"colgroup\"].indexOf(t)}},{id:\"td-has-header\",evaluate:function(e){var t=axe.commons.table,r=[],n=t.getAllCells(e),a=t.toGrid(e);return n.forEach(function(e){axe.commons.dom.hasContent(e)&&t.isDataCell(e)&&!axe.commons.aria.label(e)&&(t.getHeaders(e,a).some(function(e){return null!==e&&!!axe.commons.dom.hasContent(e)})||r.push(e))}),!r.length||(this.relatedNodes(r),!1)}},{id:\"td-headers-attr\",evaluate:function(e){for(var t=[],o=[],i=[],r=0;r<e.rows.length;r++)for(var n=e.rows[r],a=0;a<n.cells.length;a++)t.push(n.cells[a]);var s=t.reduce(function(e,t){return t.getAttribute(\"id\")&&e.push(t.getAttribute(\"id\")),e},[]);return t.forEach(function(e){var t=!1,r=!1;if(e.hasAttribute(\"headers\")){var n=e.getAttribute(\"headers\").trim();if(!n)return o.push(e);var a=axe.utils.tokenList(n);0!==a.length&&(e.getAttribute(\"id\")&&(t=-1!==a.indexOf(e.getAttribute(\"id\").trim())),r=a.some(function(e){return!s.includes(e)}),(t||r)&&i.push(e))}}),0<i.length?(this.relatedNodes(i),!1):!o.length||void this.relatedNodes(o)}},{id:\"th-has-data-cells\",evaluate:function(e){var n=axe.commons.table,t=n.getAllCells(e),a=this,o=[];t.forEach(function(e){var t=e.getAttribute(\"headers\");t&&(o=o.concat(t.split(/\\s+/)));var r=e.getAttribute(\"aria-labelledby\");r&&(o=o.concat(r.split(/\\s+/)))});var r=t.filter(function(e){return\"\"!==axe.commons.text.sanitize(e.textContent)&&(\"TH\"===e.nodeName.toUpperCase()||-1!==[\"rowheader\",\"columnheader\"].indexOf(e.getAttribute(\"role\")))}),i=n.toGrid(e),s=!0;return r.forEach(function(t){if(!t.getAttribute(\"id\")||!o.includes(t.getAttribute(\"id\"))){var e=n.getCellPosition(t,i),r=!1;n.isColumnHeader(t)&&(r=n.traverse(\"down\",e,i).find(function(e){return!n.isColumnHeader(e)&&n.getHeaders(e,i).includes(t)})),!r&&n.isRowHeader(t)&&(r=n.traverse(\"right\",e,i).find(function(e){return!n.isRowHeader(e)&&n.getHeaders(e,i).includes(t)})),r||a.relatedNodes(t),s=s&&r}}),!!s||void 0}},{id:\"hidden-content\",evaluate:function(e,t,r){if(![\"SCRIPT\",\"HEAD\",\"TITLE\",\"NOSCRIPT\",\"STYLE\",\"TEMPLATE\"].includes(e.nodeName.toUpperCase())&&axe.commons.dom.hasContentVirtual(r)){var n=window.getComputedStyle(e);if(\"none\"===n.getPropertyValue(\"display\"))return;if(\"hidden\"===n.getPropertyValue(\"visibility\")){var a=axe.commons.dom.getComposedParent(e),o=a&&window.getComputedStyle(a);if(!o||\"hidden\"!==o.getPropertyValue(\"visibility\"))return}}return!0}}],commons:function(){function e(e){return null===e}function t(e){return null!==e}var commons={},u=commons.aria={},r=u.lookupTable={};r.attributes={\"aria-activedescendant\":{type:\"idref\",allowEmpty:!0,unsupported:!1},\"aria-atomic\":{type:\"boolean\",values:[\"true\",\"false\"],unsupported:!1},\"aria-autocomplete\":{type:\"nmtoken\",values:[\"inline\",\"list\",\"both\",\"none\"],unsupported:!1},\"aria-busy\":{type:\"boolean\",values:[\"true\",\"false\"],unsupported:!1},\"aria-checked\":{type:\"nmtoken\",values:[\"true\",\"false\",\"mixed\",\"undefined\"],unsupported:!1},\"aria-colcount\":{type:\"int\",unsupported:!1},\"aria-colindex\":{type:\"int\",unsupported:!1},\"aria-colspan\":{type:\"int\",unsupported:!1},\"aria-controls\":{type:\"idrefs\",allowEmpty:!0,unsupported:!1},\"aria-current\":{type:\"nmtoken\",allowEmpty:!0,values:[\"page\",\"step\",\"location\",\"date\",\"time\",\"true\",\"false\"],unsupported:!1},\"aria-describedby\":{type:\"idrefs\",allowEmpty:!0,unsupported:!1},\"aria-describedat\":{unsupported:!0,unstandardized:!0},\"aria-details\":{type:\"idref\",allowEmpty:!0,unsupported:!1},\"aria-disabled\":{type:\"boolean\",values:[\"true\",\"false\"],unsupported:!1},\"aria-dropeffect\":{type:\"nmtokens\",values:[\"copy\",\"move\",\"reference\",\"execute\",\"popup\",\"none\"],unsupported:!1},\"aria-errormessage\":{type:\"idref\",allowEmpty:!0,unsupported:!1},\"aria-expanded\":{type:\"nmtoken\",values:[\"true\",\"false\",\"undefined\"],unsupported:!1},\"aria-flowto\":{type:\"idrefs\",allowEmpty:!0,unsupported:!1},\"aria-grabbed\":{type:\"nmtoken\",values:[\"true\",\"false\",\"undefined\"],unsupported:!1},\"aria-haspopup\":{type:\"nmtoken\",allowEmpty:!0,values:[\"true\",\"false\",\"menu\",\"listbox\",\"tree\",\"grid\",\"dialog\"],unsupported:!1},\"aria-hidden\":{type:\"boolean\",values:[\"true\",\"false\"],unsupported:!1},\"aria-invalid\":{type:\"nmtoken\",allowEmpty:!0,values:[\"true\",\"false\",\"spelling\",\"grammar\"],unsupported:!1},\"aria-keyshortcuts\":{type:\"string\",allowEmpty:!0,unsupported:!1},\"aria-label\":{type:\"string\",allowEmpty:!0,unsupported:!1},\"aria-labelledby\":{type:\"idrefs\",allowEmpty:!0,unsupported:!1},\"aria-level\":{type:\"int\",unsupported:!1},\"aria-live\":{type:\"nmtoken\",values:[\"off\",\"polite\",\"assertive\"],unsupported:!1},\"aria-modal\":{type:\"boolean\",values:[\"true\",\"false\"],unsupported:!1},\"aria-multiline\":{type:\"boolean\",values:[\"true\",\"false\"],unsupported:!1},\"aria-multiselectable\":{type:\"boolean\",values:[\"true\",\"false\"],unsupported:!1},\"aria-orientation\":{type:\"nmtoken\",values:[\"horizontal\",\"vertical\"],unsupported:!1},\"aria-owns\":{type:\"idrefs\",allowEmpty:!0,unsupported:!1},\"aria-placeholder\":{type:\"string\",allowEmpty:!0,unsupported:!1},\"aria-posinset\":{type:\"int\",unsupported:!1},\"aria-pressed\":{type:\"nmtoken\",values:[\"true\",\"false\",\"mixed\",\"undefined\"],unsupported:!1},\"aria-readonly\":{type:\"boolean\",values:[\"true\",\"false\"],unsupported:!1},\"aria-relevant\":{type:\"nmtokens\",values:[\"additions\",\"removals\",\"text\",\"all\"],unsupported:!1},\"aria-required\":{type:\"boolean\",values:[\"true\",\"false\"],unsupported:!1},\"aria-roledescription\":{type:\"string\",allowEmpty:!0,unsupported:!1},\"aria-rowcount\":{type:\"int\",unsupported:!1},\"aria-rowindex\":{type:\"int\",unsupported:!1},\"aria-rowspan\":{type:\"int\",unsupported:!1},\"aria-selected\":{type:\"nmtoken\",values:[\"true\",\"false\",\"undefined\"],unsupported:!1},\"aria-setsize\":{type:\"int\",unsupported:!1},\"aria-sort\":{type:\"nmtoken\",values:[\"ascending\",\"descending\",\"other\",\"none\"],unsupported:!1},\"aria-valuemax\":{type:\"decimal\",unsupported:!1},\"aria-valuemin\":{type:\"decimal\",unsupported:!1},\"aria-valuenow\":{type:\"decimal\",unsupported:!1},\"aria-valuetext\":{type:\"string\",unsupported:!1}},r.globalAttributes=[\"aria-atomic\",\"aria-busy\",\"aria-controls\",\"aria-current\",\"aria-describedby\",\"aria-details\",\"aria-disabled\",\"aria-dropeffect\",\"aria-flowto\",\"aria-grabbed\",\"aria-haspopup\",\"aria-hidden\",\"aria-invalid\",\"aria-keyshortcuts\",\"aria-label\",\"aria-labelledby\",\"aria-live\",\"aria-owns\",\"aria-relevant\",\"aria-roledescription\"],r.role={alert:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},alertdialog:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-modal\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"dialog\",\"section\"]},application:{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"article\",\"audio\",\"embed\",\"iframe\",\"object\",\"section\",\"svg\",\"video\"]},article:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-posinset\",\"aria-setsize\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"article\"],unsupported:!1},banner:{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"header\"],unsupported:!1,allowedElements:[\"section\"]},button:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-pressed\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,implicit:[\"button\",'input[type=\"button\"]','input[type=\"image\"]','input[type=\"reset\"]','input[type=\"submit\"]',\"summary\"],unsupported:!1,allowedElements:[{nodeName:\"a\",attributes:{href:t}}]},cell:{type:\"structure\",attributes:{allowed:[\"aria-colindex\",\"aria-colspan\",\"aria-rowindex\",\"aria-rowspan\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"row\"],implicit:[\"td\",\"th\"],unsupported:!1},checkbox:{type:\"widget\",attributes:{allowed:[\"aria-checked\",\"aria-required\",\"aria-readonly\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,implicit:['input[type=\"checkbox\"]'],unsupported:!1,allowedElements:[\"button\"]},columnheader:{type:\"structure\",attributes:{allowed:[\"aria-colindex\",\"aria-colspan\",\"aria-expanded\",\"aria-rowindex\",\"aria-rowspan\",\"aria-required\",\"aria-readonly\",\"aria-selected\",\"aria-sort\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"row\"],implicit:[\"th\"],unsupported:!1},combobox:{type:\"composite\",attributes:{allowed:[\"aria-autocomplete\",\"aria-required\",\"aria-activedescendant\",\"aria-orientation\",\"aria-errormessage\"],required:[\"aria-expanded\"]},owned:{all:[\"listbox\",\"tree\",\"grid\",\"dialog\",\"textbox\"]},nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[{nodeName:\"input\",properties:{type:[\"text\",\"search\",\"tel\",\"url\",\"email\"]}}]},command:{nameFrom:[\"author\"],type:\"abstract\",unsupported:!1},complementary:{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"aside\"],unsupported:!1,allowedElements:[\"section\"]},composite:{nameFrom:[\"author\"],type:\"abstract\",unsupported:!1},contentinfo:{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"footer\"],unsupported:!1,allowedElements:[\"section\"]},definition:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"dd\",\"dfn\"],unsupported:!1},dialog:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-modal\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"dialog\"],unsupported:!1,allowedElements:[\"section\"]},directory:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,unsupported:!1,allowedElements:[\"ol\",\"ul\"]},document:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"body\"],unsupported:!1,allowedElements:[\"article\",\"embed\",\"iframe\",\"object\",\"section\",\"svg\"]},\"doc-abstract\":{type:\"section\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-acknowledgments\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-afterword\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-appendix\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-backlink\":{type:\"link\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,unsupported:!1,allowedElements:[{nodeName:\"a\",attributes:{href:t}}]},\"doc-biblioentry\":{type:\"listitem\",attributes:{allowed:[\"aria-expanded\",\"aria-level\",\"aria-posinset\",\"aria-setsize\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:[\"doc-bibliography\"],unsupported:!1,allowedElements:[\"li\"]},\"doc-bibliography\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:{one:[\"doc-biblioentry\"]},nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-biblioref\":{type:\"link\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,unsupported:!1,allowedElements:[{nodeName:\"a\",attributes:{href:t}}]},\"doc-chapter\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-colophon\":{type:\"section\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-conclusion\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-cover\":{type:\"img\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1},\"doc-credit\":{type:\"section\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-credits\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-dedication\":{type:\"section\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-endnote\":{type:\"listitem\",attributes:{allowed:[\"aria-expanded\",\"aria-level\",\"aria-posinset\",\"aria-setsize\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:[\"doc-endnotes\"],unsupported:!1,allowedElements:[\"li\"]},\"doc-endnotes\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:{one:[\"doc-endnote\"]},namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-epigraph\":{type:\"section\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1},\"doc-epilogue\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-errata\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-example\":{type:\"section\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"aside\",\"section\"]},\"doc-footnote\":{type:\"section\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"aside\",\"footer\",\"header\"]},\"doc-foreword\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-glossary\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:[\"term\",\"definition\"],namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"dl\"]},\"doc-glossref\":{type:\"link\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\",\"contents\"],context:null,unsupported:!1,allowedElements:[{nodeName:\"a\",attributes:{href:t}}]},\"doc-index\":{type:\"navigation\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"nav\",\"section\"]},\"doc-introduction\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-noteref\":{type:\"link\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\",\"contents\"],context:null,unsupported:!1,allowedElements:[{nodeName:\"a\",attributes:{href:t}}]},\"doc-notice\":{type:\"note\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-pagebreak\":{type:\"separator\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"hr\"]},\"doc-pagelist\":{type:\"navigation\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"nav\",\"section\"]},\"doc-part\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-preface\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-prologue\":{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-pullquote\":{type:\"none\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"aside\",\"section\"]},\"doc-qna\":{type:\"section\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},\"doc-subtitle\":{type:\"sectionhead\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:{nodeName:[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"]}},\"doc-tip\":{type:\"note\",attributes:{allowed:[\"aria-expanded\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"aside\"]},\"doc-toc\":{type:\"navigation\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,namefrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"nav\",\"section\"]},feed:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:{one:[\"article\"]},nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"article\",\"aside\",\"section\"]},figure:{type:\"structure\",unsupported:!1},form:{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"form\"],unsupported:!1},grid:{type:\"composite\",attributes:{allowed:[\"aria-activedescendant\",\"aria-expanded\",\"aria-colcount\",\"aria-level\",\"aria-multiselectable\",\"aria-readonly\",\"aria-rowcount\",\"aria-errormessage\"]},owned:{one:[\"rowgroup\",\"row\"]},nameFrom:[\"author\"],context:null,implicit:[\"table\"],unsupported:!1},gridcell:{type:\"widget\",attributes:{allowed:[\"aria-colindex\",\"aria-colspan\",\"aria-expanded\",\"aria-rowindex\",\"aria-rowspan\",\"aria-selected\",\"aria-readonly\",\"aria-required\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"row\"],implicit:[\"td\",\"th\"],unsupported:!1},group:{type:\"structure\",attributes:{allowed:[\"aria-activedescendant\",\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"details\",\"optgroup\"],unsupported:!1,allowedElements:[\"dl\",\"figcaption\",\"fieldset\",\"figure\",\"footer\",\"header\",\"ol\",\"ul\"]},heading:{type:\"structure\",attributes:{required:[\"aria-level\"],allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,implicit:[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],unsupported:!1},img:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"img\"],unsupported:!1,allowedElements:[\"embed\",\"iframe\",\"object\",\"svg\"]},input:{nameFrom:[\"author\"],type:\"abstract\",unsupported:!1},landmark:{nameFrom:[\"author\"],type:\"abstract\",unsupported:!1},link:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,implicit:[\"a[href]\"],unsupported:!1,allowedElements:[\"button\",{nodeName:\"input\",properties:{type:[\"image\",\"button\"]}}]},list:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:{all:[\"listitem\"]},nameFrom:[\"author\"],context:null,implicit:[\"ol\",\"ul\",\"dl\"],unsupported:!1},listbox:{type:\"composite\",attributes:{allowed:[\"aria-activedescendant\",\"aria-multiselectable\",\"aria-readonly\",\"aria-required\",\"aria-expanded\",\"aria-orientation\",\"aria-errormessage\"]},owned:{all:[\"option\"]},nameFrom:[\"author\"],context:null,implicit:[\"select\"],unsupported:!1,allowedElements:[\"ol\",\"ul\"]},listitem:{type:\"structure\",attributes:{allowed:[\"aria-level\",\"aria-posinset\",\"aria-setsize\",\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"list\"],implicit:[\"li\",\"dt\"],unsupported:!1},log:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},main:{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"main\"],unsupported:!1,allowedElements:[\"article\",\"section\"]},marquee:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},math:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"math\"],unsupported:!1},menu:{type:\"composite\",attributes:{allowed:[\"aria-activedescendant\",\"aria-expanded\",\"aria-orientation\",\"aria-errormessage\"]},owned:{one:[\"menuitem\",\"menuitemradio\",\"menuitemcheckbox\"]},nameFrom:[\"author\"],context:null,implicit:['menu[type=\"context\"]'],unsupported:!1,allowedElements:[\"ol\",\"ul\"]},menubar:{type:\"composite\",attributes:{allowed:[\"aria-activedescendant\",\"aria-expanded\",\"aria-orientation\",\"aria-errormessage\"]},owned:{one:[\"menuitem\",\"menuitemradio\",\"menuitemcheckbox\"]},nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"ol\",\"ul\"]},menuitem:{type:\"widget\",attributes:{allowed:[\"aria-posinset\",\"aria-setsize\",\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"menu\",\"menubar\"],implicit:['menuitem[type=\"command\"]'],unsupported:!1,allowedElements:[\"button\",\"li\",{nodeName:\"iput\",properties:{type:[\"image\",\"button\"]}},{nodeName:\"a\",attributes:{href:t}}]},menuitemcheckbox:{type:\"widget\",attributes:{allowed:[\"aria-checked\",\"aria-posinset\",\"aria-setsize\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"menu\",\"menubar\"],implicit:['menuitem[type=\"checkbox\"]'],unsupported:!1,allowedElements:[{nodeName:[\"button\",\"li\"]},{nodeName:\"input\",properties:{type:[\"checkbox\",\"image\",\"button\"]}},{nodeName:\"a\",attributes:{href:t}}]},menuitemradio:{type:\"widget\",attributes:{allowed:[\"aria-checked\",\"aria-selected\",\"aria-posinset\",\"aria-setsize\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"menu\",\"menubar\"],implicit:['menuitem[type=\"radio\"]'],unsupported:!1,allowedElements:[{nodeName:[\"button\",\"li\"]},{nodeName:\"input\",properties:{type:[\"image\",\"button\",\"radio\"]}},{nodeName:\"a\",attributes:{href:t}}]},navigation:{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"nav\"],unsupported:!1,allowedElements:[\"section\"]},none:{type:\"structure\",attributes:null,owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[{nodeName:[\"article\",\"aside\",\"dl\",\"embed\",\"figcaption\",\"fieldset\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"iframe\",\"li\",\"ol\",\"section\",\"ul\"]},{nodeName:\"img\",attributes:{alt:t}}]},note:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"aside\"]},option:{type:\"widget\",attributes:{allowed:[\"aria-selected\",\"aria-posinset\",\"aria-setsize\",\"aria-checked\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"listbox\"],implicit:[\"option\"],unsupported:!1,allowedElements:[{nodeName:[\"button\",\"li\"]},{nodeName:\"input\",properties:{type:[\"checkbox\",\"button\"]}},{nodeName:\"a\",attributes:{href:t}}]},presentation:{type:\"structure\",attributes:null,owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[{nodeName:[\"article\",\"aside\",\"dl\",\"embed\",\"figcaption\",\"fieldset\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"iframe\",\"li\",\"ol\",\"section\",\"ul\"]},{nodeName:\"img\",attributes:{alt:t}}]},progressbar:{type:\"widget\",attributes:{allowed:[\"aria-valuetext\",\"aria-valuenow\",\"aria-valuemax\",\"aria-valuemin\",\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"progress\"],unsupported:!1},radio:{type:\"widget\",attributes:{allowed:[\"aria-selected\",\"aria-posinset\",\"aria-setsize\",\"aria-required\",\"aria-errormessage\",\"aria-checked\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,implicit:['input[type=\"radio\"]'],unsupported:!1,allowedElements:[{nodeName:[\"button\",\"li\"]},{nodeName:\"input\",properties:{type:[\"image\",\"button\"]}}]},radiogroup:{type:\"composite\",attributes:{allowed:[\"aria-activedescendant\",\"aria-required\",\"aria-expanded\",\"aria-readonly\",\"aria-errormessage\"]},owned:{all:[\"radio\"]},nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:{nodeName:[\"ol\",\"ul\"]}},range:{nameFrom:[\"author\"],type:\"abstract\",unsupported:!1},region:{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"section[aria-label]\",\"section[aria-labelledby]\",\"section[title]\"],unsupported:!1,allowedElements:{nodeName:[\"article\",\"aside\"]}},roletype:{type:\"abstract\",unsupported:!1},row:{type:\"structure\",attributes:{allowed:[\"aria-activedescendant\",\"aria-colindex\",\"aria-expanded\",\"aria-level\",\"aria-selected\",\"aria-rowindex\",\"aria-errormessage\"]},owned:{one:[\"cell\",\"columnheader\",\"rowheader\",\"gridcell\"]},nameFrom:[\"author\",\"contents\"],context:[\"rowgroup\",\"grid\",\"treegrid\",\"table\"],implicit:[\"tr\"],unsupported:!1},rowgroup:{type:\"structure\",attributes:{allowed:[\"aria-activedescendant\",\"aria-expanded\",\"aria-errormessage\"]},owned:{all:[\"row\"]},nameFrom:[\"author\",\"contents\"],context:[\"grid\",\"table\",\"treegrid\"],implicit:[\"tbody\",\"thead\",\"tfoot\"],unsupported:!1},rowheader:{type:\"structure\",attributes:{allowed:[\"aria-colindex\",\"aria-colspan\",\"aria-expanded\",\"aria-rowindex\",\"aria-rowspan\",\"aria-required\",\"aria-readonly\",\"aria-selected\",\"aria-sort\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"row\"],implicit:[\"th\"],unsupported:!1},scrollbar:{type:\"widget\",attributes:{required:[\"aria-controls\",\"aria-valuenow\"],allowed:[\"aria-valuetext\",\"aria-orientation\",\"aria-errormessage\",\"aria-valuemax\",\"aria-valuemin\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1},search:{type:\"landmark\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:{nodeName:[\"aside\",\"form\",\"section\"]}},searchbox:{type:\"widget\",attributes:{allowed:[\"aria-activedescendant\",\"aria-autocomplete\",\"aria-multiline\",\"aria-readonly\",\"aria-required\",\"aria-placeholder\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:['input[type=\"search\"]'],unsupported:!1,allowedElements:{nodeName:\"input\",properties:{type:\"text\"}}},section:{nameFrom:[\"author\",\"contents\"],type:\"abstract\",unsupported:!1},sectionhead:{nameFrom:[\"author\",\"contents\"],type:\"abstract\",unsupported:!1},select:{nameFrom:[\"author\"],type:\"abstract\",unsupported:!1},separator:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-orientation\",\"aria-valuenow\",\"aria-valuemax\",\"aria-valuemin\",\"aria-valuetext\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"hr\"],unsupported:!1,allowedElements:[\"li\"]},slider:{type:\"widget\",attributes:{allowed:[\"aria-valuetext\",\"aria-orientation\",\"aria-readonly\",\"aria-errormessage\",\"aria-valuemax\",\"aria-valuemin\"],required:[\"aria-valuenow\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:['input[type=\"range\"]'],unsupported:!1},spinbutton:{type:\"widget\",attributes:{allowed:[\"aria-valuetext\",\"aria-required\",\"aria-readonly\",\"aria-errormessage\",\"aria-valuemax\",\"aria-valuemin\"],required:[\"aria-valuenow\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:['input[type=\"number\"]'],unsupported:!1,allowedElements:{nodeName:\"input\",properties:{type:[\"text\",\"tel\"]}}},status:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:[\"output\"],unsupported:!1,allowedElements:[\"section\"]},structure:{type:\"abstract\",unsupported:!1},switch:{type:\"widget\",attributes:{allowed:[\"aria-errormessage\"],required:[\"aria-checked\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,unsupported:!1,allowedElements:[\"button\",{nodeName:\"input\",properties:{type:[\"checkbox\",\"image\",\"button\"]}},{nodeName:\"a\",attributes:{href:t}}]},tab:{type:\"widget\",attributes:{allowed:[\"aria-selected\",\"aria-expanded\",\"aria-setsize\",\"aria-posinset\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"tablist\"],unsupported:!1,allowedElements:[{nodeName:[\"button\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"li\"]},{nodeName:\"input\",properties:{type:\"button\"}},{nodeName:\"a\",attributes:{href:t}}]},table:{type:\"structure\",attributes:{allowed:[\"aria-colcount\",\"aria-rowcount\",\"aria-errormessage\"]},owned:{one:[\"rowgroup\",\"row\"]},nameFrom:[\"author\"],context:null,implicit:[\"table\"],unsupported:!1},tablist:{type:\"composite\",attributes:{allowed:[\"aria-activedescendant\",\"aria-expanded\",\"aria-level\",\"aria-multiselectable\",\"aria-orientation\",\"aria-errormessage\"]},owned:{all:[\"tab\"]},nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"ol\",\"ul\"]},tabpanel:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"section\"]},term:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,implicit:[\"dt\"],unsupported:!1},textbox:{type:\"widget\",attributes:{allowed:[\"aria-activedescendant\",\"aria-autocomplete\",\"aria-multiline\",\"aria-readonly\",\"aria-required\",\"aria-placeholder\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:['input[type=\"text\"]','input[type=\"email\"]','input[type=\"password\"]','input[type=\"tel\"]','input[type=\"url\"]',\"input:not([type])\",\"textarea\"],unsupported:!1},timer:{type:\"widget\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,unsupported:!1},toolbar:{type:\"structure\",attributes:{allowed:[\"aria-activedescendant\",\"aria-expanded\",\"aria-orientation\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\"],context:null,implicit:['menu[type=\"toolbar\"]'],unsupported:!1,allowedElements:[\"ol\",\"ul\"]},tooltip:{type:\"structure\",attributes:{allowed:[\"aria-expanded\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:null,unsupported:!1},tree:{type:\"composite\",attributes:{allowed:[\"aria-activedescendant\",\"aria-multiselectable\",\"aria-required\",\"aria-expanded\",\"aria-orientation\",\"aria-errormessage\"]},owned:{all:[\"treeitem\"]},nameFrom:[\"author\"],context:null,unsupported:!1,allowedElements:[\"ol\",\"ul\"]},treegrid:{type:\"composite\",attributes:{allowed:[\"aria-activedescendant\",\"aria-colcount\",\"aria-expanded\",\"aria-level\",\"aria-multiselectable\",\"aria-readonly\",\"aria-required\",\"aria-rowcount\",\"aria-orientation\",\"aria-errormessage\"]},owned:{one:[\"rowgroup\",\"row\"]},nameFrom:[\"author\"],context:null,unsupported:!1},treeitem:{type:\"widget\",attributes:{allowed:[\"aria-checked\",\"aria-selected\",\"aria-expanded\",\"aria-level\",\"aria-posinset\",\"aria-setsize\",\"aria-errormessage\"]},owned:null,nameFrom:[\"author\",\"contents\"],context:[\"group\",\"tree\"],unsupported:!1,allowedElements:[\"li\",{nodeName:\"a\",attributes:{href:t}}]},widget:{type:\"abstract\",unsupported:!1},window:{nameFrom:[\"author\"],type:\"abstract\",unsupported:!1}},r.elementsAllowedNoRole=[{nodeName:[\"base\",\"body\",\"caption\",\"col\",\"colgroup\",\"datalist\",\"dd\",\"details\",\"dt\",\"head\",\"html\",\"keygen\",\"label\",\"legend\",\"main\",\"map\",\"math\",\"meta\",\"meter\",\"noscript\",\"optgroup\",\"param\",\"picture\",\"progress\",\"script\",\"source\",\"style\",\"template\",\"textarea\",\"title\",\"track\"]},{nodeName:\"area\",attributes:{href:t}},{nodeName:\"input\",properties:{type:[\"color\",\"data\",\"datatime\",\"file\",\"hidden\",\"month\",\"number\",\"password\",\"range\",\"reset\",\"submit\",\"time\",\"week\"]}},{nodeName:\"link\",attributes:{href:t}},{nodeName:\"menu\",attributes:{type:\"context\"}},{nodeName:\"menuitem\",attributes:{type:[\"command\",\"checkbox\",\"radio\"]}},{nodeName:\"select\",condition:function(e){return e instanceof axe.AbstractVirtualNode||(e=axe.utils.getNodeFromTree(e)),1<Number(e.attr(\"size\"))},properties:{multiple:!0}},{nodeName:[\"clippath\",\"cursor\",\"defs\",\"desc\",\"feblend\",\"fecolormatrix\",\"fecomponenttransfer\",\"fecomposite\",\"feconvolvematrix\",\"fediffuselighting\",\"fedisplacementmap\",\"fedistantlight\",\"fedropshadow\",\"feflood\",\"fefunca\",\"fefuncb\",\"fefuncg\",\"fefuncr\",\"fegaussianblur\",\"feimage\",\"femerge\",\"femergenode\",\"femorphology\",\"feoffset\",\"fepointlight\",\"fespecularlighting\",\"fespotlight\",\"fetile\",\"feturbulence\",\"filter\",\"hatch\",\"hatchpath\",\"lineargradient\",\"marker\",\"mask\",\"meshgradient\",\"meshpatch\",\"meshrow\",\"metadata\",\"mpath\",\"pattern\",\"radialgradient\",\"solidcolor\",\"stop\",\"switch\",\"view\"]}],r.elementsAllowedAnyRole=[{nodeName:\"a\",attributes:{href:e}},{nodeName:\"img\",attributes:{alt:e}},{nodeName:[\"abbr\",\"address\",\"canvas\",\"div\",\"p\",\"pre\",\"blockquote\",\"ins\",\"del\",\"output\",\"span\",\"table\",\"tbody\",\"thead\",\"tfoot\",\"td\",\"em\",\"strong\",\"small\",\"s\",\"cite\",\"q\",\"dfn\",\"abbr\",\"time\",\"code\",\"var\",\"samp\",\"kbd\",\"sub\",\"sup\",\"i\",\"b\",\"u\",\"mark\",\"ruby\",\"rt\",\"rp\",\"bdi\",\"bdo\",\"br\",\"wbr\",\"th\",\"tr\"]}],r.evaluateRoleForElement={A:function(e){var t=e.node,r=e.out;return\"http://www.w3.org/2000/svg\"===t.namespaceURI||(!t.href.length||r)},AREA:function(e){return!e.node.href},BUTTON:function(e){var t=e.node,r=e.role,n=e.out;return\"menu\"===t.getAttribute(\"type\")?\"menuitem\"===r:n},IMG:function(e){var t=e.node,r=e.role,n=e.out;switch(t.alt){case null:return n;case\"\":return\"presentation\"===r||\"none\"===r;default:return\"presentation\"!==r&&\"none\"!==r}},INPUT:function(e){var t=e.node,r=e.role,n=e.out;switch(t.type){case\"button\":case\"image\":return n;case\"checkbox\":return\"button\"===r&&t.hasAttribute(\"aria-pressed\")?!0:n;case\"radio\":return\"menuitemradio\"===r;case\"text\":return\"combobox\"===r||\"searchbox\"===r||\"spinbutton\"===r;case\"tel\":return\"combobox\"===r||\"spinbutton\"===r;case\"url\":case\"search\":case\"email\":return\"combobox\"===r;default:return!1}},LI:function(e){var t=e.node,r=e.out;return!axe.utils.matchesSelector(t,\"ol li, ul li\")||r},MENU:function(e){return\"context\"!==e.node.getAttribute(\"type\")},OPTION:function(e){var t=e.node;return!axe.utils.matchesSelector(t,\"select > option, datalist > option, optgroup > option\")},SELECT:function(e){var t=e.node,r=e.role;return!t.multiple&&t.size<=1&&\"menu\"===r},SVG:function(e){var t=e.node,r=e.out;return!(!t.parentNode||\"http://www.w3.org/2000/svg\"!==t.parentNode.namespaceURI)||r}},r.rolesOfType={widget:[\"button\",\"checkbox\",\"dialog\",\"gridcell\",\"link\",\"log\",\"marquee\",\"menuitem\",\"menuitemcheckbox\",\"menuitemradio\",\"option\",\"progressbar\",\"radio\",\"scrollbar\",\"searchbox\",\"slider\",\"spinbutton\",\"status\",\"switch\",\"tab\",\"tabpanel\",\"textbox\",\"timer\",\"tooltip\",\"tree\",\"treeitem\"]};var l={};commons.color=l;var h=commons.dom={},n={};function i(e,t){return i.fromDefinition(e,t)}commons.forms=n,commons.matches=i;var m=commons.table={},v=commons.text={EdgeFormDefaults:{}};commons.utils=axe.utils;u.arialabelText=function(e){if(e instanceof axe.AbstractVirtualNode==!1){if(1!==e.nodeType)return\"\";e=axe.utils.getNodeFromTree(e)}return e.attr(\"aria-label\")||\"\"},u.arialabelledbyText=function(n,e){var a=1<arguments.length&&void 0!==e?e:{};return 1!==(n=n.actualNode||n).nodeType||a.inLabelledByContext||a.inControlContext?\"\":h.idrefs(n,\"aria-labelledby\").filter(function(e){return e}).reduce(function(e,t){var r=v.accessibleText(t,Y({inLabelledByContext:!0,startNode:a.startNode||n},a));return e?\"\".concat(e,\" \").concat(r):r},\"\")},u.requiredAttr=function(e){var t=u.lookupTable.role[e];return t&&t.attributes&&t.attributes.required||[]},u.allowedAttr=function(e){var t=u.lookupTable.role[e],r=t&&t.attributes&&t.attributes.allowed||[],n=t&&t.attributes&&t.attributes.required||[];return r.concat(u.lookupTable.globalAttributes).concat(n)},u.validateAttr=function(e){return!!u.lookupTable.attributes[e]};var s=[\"doc-backlink\",\"doc-biblioentry\",\"doc-biblioref\",\"doc-cover\",\"doc-endnote\",\"doc-glossref\",\"doc-noteref\"];u.getElementUnallowedRoles=function(r,e){var n=!(1<arguments.length&&void 0!==e)||e,a=r.nodeName.toUpperCase();if(!axe.utils.isHtmlElement(r))return[];var t=function(e){var t=[];if(!e)return t;if(e.hasAttribute(\"role\")){var r=axe.utils.tokenList(e.getAttribute(\"role\").toLowerCase());t=t.concat(r)}if(e.hasAttributeNS(\"http://www.idpf.org/2007/ops\",\"type\")){var n=axe.utils.tokenList(e.getAttributeNS(\"http://www.idpf.org/2007/ops\",\"type\").toLowerCase()).map(function(e){return\"doc-\".concat(e)});t=t.concat(n)}return t=t.filter(function(e){return axe.commons.aria.isValidRole(e)})}(r),o=axe.commons.aria.implicitRole(r);return t.filter(function(e){if(n&&e===o)return!1;if(n&&s.includes(e)){var t=axe.commons.aria.getRoleType(e);if(o!==t)return!0}return!(n||\"row\"===e&&\"TR\"===a&&axe.utils.matchesSelector(r,'table[role=\"grid\"] > tr'))||!u.isAriaRoleAllowedOnElement(r,e)})},u.getOwnedVirtual=function(e){var t=e.actualNode,r=e.children;if(!t||!r)throw new Error(\"getOwnedVirtual requires a virtual node\");return h.idrefs(t,\"aria-owns\").reduce(function(e,t){if(t){var r=axe.utils.getNodeFromTree(t);e.push(r)}return e},r)},u.getRole=function(e,t){var r=1<arguments.length&&void 0!==t?t:{},n=r.noImplicit,a=r.fallback,o=r.abstracts,i=r.dpub;if(1!==(e=e.actualNode||e).nodeType)return null;var s=(e.getAttribute(\"role\")||\"\").trim().toLowerCase(),l=(a?axe.utils.tokenList(s):[s]).filter(function(e){return!(!i&&\"doc-\"===e.substr(0,4))&&u.isValidRole(e,{allowAbstract:o})})[0];return l||n?l||null:u.implicitRole(e)};var a,o=/^idrefs?$/;function c(e){return e.getPropertyValue(\"font-family\").split(/[,;]/g).map(function(e){return e.trim().toLowerCase()})}function d(e,t){var r=e.getClientRects()[0],n=h.shadowElementsFromPoint(r.left,r.top);if(n)for(var a=0;a<n.length;a++)if(n[a]!==e&&n[a]===t)return 1}u.isAccessibleRef=function(e){e=e.actualNode||e;var t=h.getRootNode(e);t=t.documentElement||t;var r=e.id;axe._cache.get(\"idRefs\")||(axe._cache.set(\"idRefs\",{}),function e(t,r){if(t.hasAttribute){var n=axe._cache.get(\"idRefs\");\"LABEL\"===t.nodeName.toUpperCase()&&t.hasAttribute(\"for\")&&(n[t.getAttribute(\"for\")]=!0);for(var a=0;a<r.length;++a){var o=r[a];if(t.hasAttribute(o))for(var i=t.getAttribute(o),s=axe.utils.tokenList(i),l=0;l<s.length;++l)n[s[l]]=!0}}for(var u=0;u<t.children.length;u++)e(t.children[u],r)}(t,Object.keys(u.lookupTable.attributes).filter(function(e){var t=u.lookupTable.attributes[e].type;return o.test(t)})));return!0===axe._cache.get(\"idRefs\")[r]},u.isAriaRoleAllowedOnElement=function(e,t){var r=e.nodeName.toUpperCase(),n=axe.commons.aria.lookupTable;if(i(e,n.elementsAllowedNoRole))return!1;if(i(e,n.elementsAllowedAnyRole))return!0;var a=n.role[t];if(!a||!a.allowedElements)return!1;var o=i(e,a.allowedElements);return Object.keys(n.evaluateRoleForElement).includes(r)?n.evaluateRoleForElement[r]({node:e,role:t,out:o}):o},u.isUnsupportedRole=function(e){var t=u.lookupTable.role[e];return!!t&&t.unsupported},u.labelVirtual=function(e){var t,r=e.actualNode;return r.getAttribute(\"aria-labelledby\")&&(t=h.idrefs(r,\"aria-labelledby\").map(function(e){var t=axe.utils.getNodeFromTree(e);return t?v.visibleVirtual(t,!0):\"\"}).join(\" \").trim())||(t=(t=r.getAttribute(\"aria-label\"))&&v.sanitize(t).trim())?t:null},u.label=function(e){return e=axe.utils.getNodeFromTree(e),u.labelVirtual(e)},u.namedFromContents=function(e,t){var r=(1<arguments.length&&void 0!==t?t:{}).strict;if(1!==(e=e.actualNode||e).nodeType)return!1;var n=u.getRole(e),a=u.lookupTable.role[n];return!!(a&&a.nameFrom.includes(\"contents\")||\"TABLE\"===e.nodeName.toUpperCase())||!r&&(!a||[\"presentation\",\"none\"].includes(n))},u.isValidRole=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=t.allowAbstract,n=t.flagUnsupported,a=void 0!==n&&n,o=u.lookupTable.role[e],i=!!o&&o.unsupported;return!(!o||a&&i)&&(!!r||\"abstract\"!==o.type)},u.getRolesWithNameFromContents=function(){return Object.keys(u.lookupTable.role).filter(function(e){return u.lookupTable.role[e].nameFrom&&-1!==u.lookupTable.role[e].nameFrom.indexOf(\"contents\")})},u.getRolesByType=function(t){return Object.keys(u.lookupTable.role).filter(function(e){return u.lookupTable.role[e].type===t})},u.getRoleType=function(e){var t=u.lookupTable.role[e];return t&&t.type||null},u.requiredOwned=function(e){\"use strict\";var t=null,r=u.lookupTable.role[e];return r&&(t=axe.utils.clone(r.owned)),t},u.requiredContext=function(e){\"use strict\";var t=null,r=u.lookupTable.role[e];return r&&(t=axe.utils.clone(r.context)),t},u.implicitNodes=function(e){\"use strict\";var t=null,r=u.lookupTable.role[e];return r&&r.implicit&&(t=axe.utils.clone(r.implicit)),t},u.implicitRole=function(r){\"use strict\";var e=Object.keys(u.lookupTable.role).map(function(e){var t=u.lookupTable.role[e];return{name:e,implicit:t&&t.implicit}}).reduce(function(e,t){return t.implicit&&t.implicit.some(function(e){return axe.utils.matchesSelector(r,e)})&&e.push(t.name),e},[]);if(!e.length)return null;for(var n,t=axe.utils.getNodeAttributes(r),a=[],o=0,i=t.length;o<i;o++){var s=t[o];s.name.match(/^aria-/)&&a.push(s.name)}return n=a,e.map(function(e){return{score:(t=e,u.allowedAttr(t).reduce(function(e,t){return e+(-1<n.indexOf(t)?1:0)},0)),name:e};var t}).sort(function(e,t){return t.score-e.score}).map(function(e){return e.name}).shift()},u.validateAttrValue=function(e,t){\"use strict\";var r,n,a=e.getAttribute(t),o=u.lookupTable.attributes[t],i=h.getRootNode(e);if(!o)return!0;if(o.allowEmpty&&(!a||\"\"===a.trim()))return!0;switch(o.type){case\"boolean\":case\"nmtoken\":return\"string\"==typeof a&&o.values.includes(a.toLowerCase());case\"nmtokens\":return(n=axe.utils.tokenList(a)).reduce(function(e,t){return e&&o.values.includes(t)},0!==n.length);case\"idref\":return!(!a||!i.getElementById(a));case\"idrefs\":return(n=axe.utils.tokenList(a)).some(function(e){return i.getElementById(e)});case\"string\":return\"\"!==a.trim();case\"decimal\":return!(!(r=a.match(/^[-+]?([0-9]*)\\.?([0-9]*)$/))||!r[1]&&!r[2]);case\"int\":return/^[-+]?[0-9]+$/.test(a)}},l.centerPointOfRect=function(e){if(!(e.left>window.innerWidth)&&!(e.top>window.innerHeight))return{x:Math.min(Math.ceil(e.left+e.width/2),window.innerWidth-1),y:Math.min(Math.ceil(e.top+e.height/2),window.innerHeight-1)}},l.Color=function(e,t,r,n){this.red=e,this.green=t,this.blue=r,this.alpha=n,this.toHexString=function(){var e=Math.round(this.red).toString(16),t=Math.round(this.green).toString(16),r=Math.round(this.blue).toString(16);return\"#\"+(15.5<this.red?e:\"0\"+e)+(15.5<this.green?t:\"0\"+t)+(15.5<this.blue?r:\"0\"+r)};var a=/^rgb\\((\\d+), (\\d+), (\\d+)\\)$/,o=/^rgba\\((\\d+), (\\d+), (\\d+), (\\d*(\\.\\d+)?)\\)/;this.parseRgbString=function(e){if(\"transparent\"===e)return this.red=0,this.green=0,this.blue=0,void(this.alpha=0);var t=e.match(a);return t?(this.red=parseInt(t[1],10),this.green=parseInt(t[2],10),this.blue=parseInt(t[3],10),void(this.alpha=1)):(t=e.match(o))?(this.red=parseInt(t[1],10),this.green=parseInt(t[2],10),this.blue=parseInt(t[3],10),void(this.alpha=Math.round(100*parseFloat(t[4]))/100)):void 0},this.getRelativeLuminance=function(){var e=this.red/255,t=this.green/255,r=this.blue/255;return.2126*(e<=.03928?e/12.92:Math.pow((.055+e)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((.055+t)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((.055+r)/1.055,2.4))}},l.flattenColors=function(e,t){var r=e.alpha,n=(1-r)*t.red+r*e.red,a=(1-r)*t.green+r*e.green,o=(1-r)*t.blue+r*e.blue,i=e.alpha+t.alpha*(1-e.alpha);return new l.Color(n,a,o,i)},l.getContrast=function(e,t){if(!t||!e)return null;t.alpha<1&&(t=l.flattenColors(t,e));var r=e.getRelativeLuminance(),n=t.getRelativeLuminance();return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},l.hasValidContrastRatio=function(e,t,r,n){var a=l.getContrast(e,t),o=n&&Math.ceil(72*r)/96<14||!n&&Math.ceil(72*r)/96<18?4.5:3;return{isValid:o<a,contrastRatio:a,expectedContrastRatio:o}},l.elementHasImage=function(e,t){var r=e.nodeName.toUpperCase();if([\"IMG\",\"CANVAS\",\"OBJECT\",\"IFRAME\",\"VIDEO\",\"SVG\"].includes(r))return axe.commons.color.incompleteData.set(\"bgColor\",\"imgNode\"),!0;var n=(t=t||window.getComputedStyle(e)).getPropertyValue(\"background-image\"),a=\"none\"!==n;if(a){var o=/gradient/.test(n);axe.commons.color.incompleteData.set(\"bgColor\",o?\"bgGradient\":\"bgImage\")}return a},l.elementIsDistinct=function(e,t){var n=window.getComputedStyle(e);if(\"none\"!==n.getPropertyValue(\"background-image\"))return!0;if([\"border-bottom\",\"border-top\",\"outline\"].reduce(function(e,t){var r=new l.Color;return r.parseRgbString(n.getPropertyValue(t+\"-color\")),e||\"none\"!==n.getPropertyValue(t+\"-style\")&&0<parseFloat(n.getPropertyValue(t+\"-width\"))&&0!==r.alpha},!1))return!0;var r=window.getComputedStyle(t);if(c(n)[0]!==c(r)[0])return!0;var a=[\"text-decoration-line\",\"text-decoration-style\",\"font-weight\",\"font-style\",\"font-size\"].reduce(function(e,t){return e||n.getPropertyValue(t)!==r.getPropertyValue(t)},!1),o=n.getPropertyValue(\"text-decoration\");return o.split(\" \").length<3&&(a=a||o!==r.getPropertyValue(\"text-decoration\")),a},l.getBackgroundColor=function(n,e){var a=1<arguments.length&&void 0!==e?e:[],o=[],t=l.getBackgroundStack(n);return(t||[]).some(function(e){var t=window.getComputedStyle(e),r=l.getOwnBackgroundColor(t);return function(e,t,r){var n=e!==t&&!h.visuallyContains(e,t)&&0!==r.alpha;n&&axe.commons.color.incompleteData.set(\"bgColor\",\"elmPartiallyObscured\");return n}(n,e,r)||l.elementHasImage(e,t)?(o=null,a.push(e),!0):0!==r.alpha&&(a.push(e),o.push(r),1===r.alpha)}),null===o||null===t?null:(o.push(new l.Color(255,255,255,1)),o.reduce(l.flattenColors))},l.getBackgroundStack=function(e){var t=l.filteredRectStack(e);if(null===t)return null;var r=(t=function(e){var t=e.indexOf(document.body),r=e;(1<t||-1===t)&&!l.elementHasImage(document.documentElement)&&0===l.getOwnBackgroundColor(window.getComputedStyle(document.documentElement)).alpha&&(1<t&&r.splice(t,1),r.splice(e.indexOf(document.documentElement),1),r.push(document.body));return r}(t=h.reduceToElementsBelowFloating(t,e))).indexOf(e);return function(e,t,r){if(0<e)for(var n=e-1;0<=n;n--){var a=t[n];if(d(r,a))return 1;t.splice(n,1)}return}(r,t,e)?(axe.commons.color.incompleteData.set(\"bgColor\",\"bgOverlap\"),null):-1!==r?t:null},l.filteredRectStack=function(a){var o=l.getRectStack(a);if(o&&1===o.length)return o[0];if(o&&1<o.length){var i,s=o.shift();return o.forEach(function(e,t){if(0!==t){var r=o[t-1],n=o[t];i=r.every(function(e,t){return e===n[t]})||s.includes(a)}}),i?o[0]:(axe.commons.color.incompleteData.set(\"bgColor\",\"elmPartiallyObscuring\"),null)}return axe.commons.color.incompleteData.set(\"bgColor\",\"outsideViewport\"),null},l.getRectStack=function(e){var t=axe.commons.dom.getElementStack(e),r=axe.commons.dom.getTextElementStack(e);return!r||r.length<=1?[t]:r.some(function(e){return void 0===e})?null:(r.splice(0,0,t),r)},h.isOpaque=function(e){var t=window.getComputedStyle(e);return l.elementHasImage(e,t)||1===l.getOwnBackgroundColor(t).alpha},l.getForegroundColor=function(e,t,r){var n=window.getComputedStyle(e),a=new l.Color;a.parseRgbString(n.getPropertyValue(\"color\"));var o=function e(t){if(!t)return 1;var r=axe.utils.getNodeFromTree(t);if(r&&void 0!==r._opacity&&null!==r._opacity)return r._opacity;var n=window.getComputedStyle(t).getPropertyValue(\"opacity\")*e(t.parentElement);return r&&(r._opacity=n),n}(e);if(a.alpha=a.alpha*o,1===a.alpha)return a;if(null!==(r=r||l.getBackgroundColor(e,[],t)))return l.flattenColors(a,r);var i=axe.commons.color.incompleteData.get(\"bgColor\");return axe.commons.color.incompleteData.set(\"fgColor\",i),null},l.getOwnBackgroundColor=function(e){var t=new l.Color;if(t.parseRgbString(e.getPropertyValue(\"background-color\")),0!==t.alpha){var r=e.getPropertyValue(\"opacity\");t.alpha=t.alpha*r}return t},l.incompleteData=(a={},{set:function(e,t){if(\"string\"!=typeof e)throw new Error(\"Incomplete data: key must be a string\");return t&&(a[e]=t),a[e]},get:function(e){return a[e]},clear:function(){a={}}}),h.reduceToElementsBelowFloating=function(e,t){var r,n,a,o=[\"fixed\",\"sticky\"],i=[],s=!1;for(r=0;r<e.length;++r)(n=e[r])===t&&(s=!0),a=window.getComputedStyle(n),s||-1===o.indexOf(a.position)?i.push(n):i=[];return i},h.findElmsInContext=function(e){var t,r=e.context,n=e.value,a=e.attr,o=e.elm,i=void 0===o?\"\":o,s=axe.utils.escapeSelector(n);return t=9===r.nodeType||11===r.nodeType?r:h.getRootNode(r),Array.from(t.querySelectorAll(i+\"[\"+a+\"=\"+s+\"]\"))},h.findUp=function(e,t){return h.findUpVirtual(axe.utils.getNodeFromTree(e),t)},h.findUpVirtual=function(e,t){var r;if(r=e.actualNode,!e.shadowId&&\"function\"==typeof e.actualNode.closest){var n=e.actualNode.closest(t);return n?n:null}for(;(r=r.assignedSlot?r.assignedSlot:r.parentNode)&&11===r.nodeType&&(r=r.host),r&&!axe.utils.matchesSelector(r,t)&&r!==document.documentElement;);return r&&axe.utils.matchesSelector(r,t)?r:null},h.getComposedParent=function e(t){if(t.assignedSlot)return e(t.assignedSlot);if(t.parentNode){var r=t.parentNode;if(1===r.nodeType)return r;if(r.host)return r.host}return null},h.getElementByReference=function(e,t){var r=e.getAttribute(t);if(!r)return null;\"#\"===r.charAt(0)?r=decodeURIComponent(r.substring(1)):\"/#\"===r.substr(0,2)&&(r=decodeURIComponent(r.substring(2)));var n=document.getElementById(r);return n||((n=document.getElementsByName(r)).length?n[0]:null)},h.getElementCoordinates=function(e){\"use strict\";var t=h.getScrollOffset(document),r=t.left,n=t.top,a=e.getBoundingClientRect();return{top:a.top+n,right:a.right+r,bottom:a.bottom+n,left:a.left+r,width:a.right-a.left,height:a.bottom-a.top}};var p=200;function b(e){return\"static\"===e.getComputedStylePropertyValue(\"position\")?-1!==e.getComputedStylePropertyValue(\"display\").indexOf(\"inline\")?2:\"none\"!==e.getComputedStylePropertyValue(\"float\")?1:0:3}function f(e,t){for(var r=0;r<e._stackingOrder.length;r++){if(void 0===t._stackingOrder[r])return-1;if(t._stackingOrder[r]>e._stackingOrder[r])return 1;if(t._stackingOrder[r]<e._stackingOrder[r])return-1}var n=e.actualNode,a=t.actualNode;if(n.getRootNode&&n.getRootNode()!==a.getRootNode()){for(var o=[];n;)o.push({root:n.getRootNode(),node:n}),n=n.getRootNode().host;for(;a&&!o.find(function(e){return e.root===a.getRootNode()});)a=a.getRootNode().host;if((n=o.find(function(e){return e.root===a.getRootNode()}).node)===a)return e.actualNode.getRootNode()!==n.getRootNode()?-1:1}var i=window.Node,s=i.DOCUMENT_POSITION_FOLLOWING,l=i.DOCUMENT_POSITION_CONTAINS,u=i.DOCUMENT_POSITION_CONTAINED_BY,c=n.compareDocumentPosition(a),d=c&s?1:-1,p=c&l||c&u,m=b(e),f=b(t);return m===f||p?d:f-m}function g(e,t){var r=t._stackingOrder.slice(),n=e.getComputedStylePropertyValue(\"z-index\");return\"auto\"!==n&&(r[r.length-1]=parseInt(n)),function(e,t){var r=e.getComputedStylePropertyValue(\"position\"),n=e.getComputedStylePropertyValue(\"z-index\");if(\"fixed\"===r||\"sticky\"===r)return 1;if(\"auto\"!==n&&\"static\"!==r)return 1;if(\"1\"!==e.getComputedStylePropertyValue(\"opacity\"))return 1;if(\"none\"!==(e.getComputedStylePropertyValue(\"-webkit-transform\")||e.getComputedStylePropertyValue(\"-ms-transform\")||e.getComputedStylePropertyValue(\"transform\")||\"none\"))return 1;var a=e.getComputedStylePropertyValue(\"mix-blend-mode\");if(a&&\"normal\"!==a)return 1;var o=e.getComputedStylePropertyValue(\"filter\");if(o&&\"none\"!==o)return 1;var i=e.getComputedStylePropertyValue(\"perspective\");if(i&&\"none\"!==i)return 1;var s=e.getComputedStylePropertyValue(\"clip-path\");if(s&&\"none\"!==s)return 1;if(\"none\"!==(e.getComputedStylePropertyValue(\"-webkit-mask\")||e.getComputedStylePropertyValue(\"mask\")||\"none\"))return 1;if(\"none\"!==(e.getComputedStylePropertyValue(\"-webkit-mask-image\")||e.getComputedStylePropertyValue(\"mask-image\")||\"none\"))return 1;if(\"none\"!==(e.getComputedStylePropertyValue(\"-webkit-mask-border\")||e.getComputedStylePropertyValue(\"mask-border\")||\"none\"))return 1;if(\"isolate\"===e.getComputedStylePropertyValue(\"isolation\"))return 1;var l=e.getComputedStylePropertyValue(\"will-change\");if(\"transform\"===l||\"opacity\"===l)return 1;if(\"touch\"===e.getComputedStylePropertyValue(\"-webkit-overflow-scrolling\"))return 1;var u=e.getComputedStylePropertyValue(\"contain\");if([\"layout\",\"paint\",\"strict\",\"content\"].includes(u))return 1;if(\"auto\"!==n&&t){var c=t.getComputedStylePropertyValue(\"display\");if([\"flex\",\"inline-flex\",\"inline flex\",\"grid\",\"inline-grid\",\"inline grid\"].includes(c))return 1}}(e,t)&&r.push(0),r}function y(e,t){for(var r=null,n=[e];t;){if(t._scrollRegionParent){r=t._scrollRegionParent;break}if(axe.utils.getScroll(t.actualNode)){r=t;break}n.push(t),t=axe.utils.getNodeFromTree(t.actualNode.parentElement||t.actualNode.parentNode)}return n.forEach(function(e){return e._scrollRegionParent=r}),r}function w(u,c){c._grid=u,c.clientRects.forEach(function(e){for(var t=e.left,r=e.top,n=r/p|0,a=t/p|0,o=(r+e.height)/p|0,i=(t+e.width)/p|0,s=n;s<=o;s++){u.cells[s]=u.cells[s]||[];for(var l=a;l<=i;l++)u.cells[s][l]=u.cells[s][l]||[],u.cells[s][l].includes(c)||u.cells[s][l].push(c)}})}function x(e,t,r){var n=0<arguments.length&&void 0!==e?e:document.body,a=1<arguments.length&&void 0!==t?t:{container:null,cells:[]},o=2<arguments.length&&void 0!==r?r:null;if(!o){var i=axe.utils.getNodeFromTree(document.documentElement);if((i=i||new K(document.documentElement))._stackingOrder=[0],w(a,i),axe.utils.getScroll(i.actualNode)){var s={container:i,cells:[]};i._subGrid=s}}for(var l=document.createTreeWalker(n,window.NodeFilter.SHOW_ELEMENT,null,!1),u=o?l.nextNode():l.currentNode;u;){var c=axe.utils.getNodeFromTree(u);u.parentElement?o=axe.utils.getNodeFromTree(u.parentElement):u.parentNode&&axe.utils.getNodeFromTree(u.parentNode)&&(o=axe.utils.getNodeFromTree(u.parentNode)),(c=c||new K(u,o))._stackingOrder=g(c,o);var d=y(c,o),p=d?d._subGrid:a;if(axe.utils.getScroll(c.actualNode)){var m={container:c,cells:[]};c._subGrid=m}var f=c.boundingClientRect;0!==f.width&&0!==f.height&&h.isVisible(u)&&w(p,c),axe.utils.isShadowRoot(u)&&x(u.shadowRoot,p,c),u=l.nextNode()}}function D(e,t,r){var n=2<arguments.length&&void 0!==r&&r,a=t.left+t.width/2,o=t.top+t.height/2,i=o/p|0,s=a/p|0,l=e.cells[i][s].filter(function(e){return e.clientRects.find(function(e){var t=e.left,r=e.top;return a<=t+e.width&&t<=a&&o<=r+e.height&&r<=o})}),u=e.container;return u&&(l=D(u._grid,u.boundingClientRect,!0).concat(l)),n||(l=l.sort(f).map(function(e){return e.actualNode}).concat(document.documentElement).filter(function(e,t,r){return r.indexOf(e)===t})),l}h.getElementStack=function(e){axe._cache.get(\"gridCreated\")||(x(),axe._cache.set(\"gridCreated\",!0));var t=axe.utils.getNodeFromTree(e),r=t._grid;return r?D(r,t.boundingClientRect):[]},h.getTextElementStack=function(e){axe._cache.get(\"gridCreated\")||(x(),axe._cache.set(\"gridCreated\",!0));var t=axe.utils.getNodeFromTree(e)._grid;if(!t)return[];var o=[];return Array.from(e.childNodes).forEach(function(e){if(3===e.nodeType&&\"\"!==axe.commons.text.sanitize(e.textContent)){var t=document.createRange();t.selectNodeContents(e);for(var r=t.getClientRects(),n=0;n<r.length;n++){var a=r[n];1<=a.width&&1<=a.height&&o.push(a)}}}),o.map(function(e){return D(t,e)})},h.getRootNode=axe.utils.getRootNode,h.getScrollOffset=function(e){\"use strict\";if(!e.nodeType&&e.document&&(e=e.document),9!==e.nodeType)return{left:e.scrollLeft,top:e.scrollTop};var t=e.documentElement,r=e.body;return{left:t&&t.scrollLeft||r&&r.scrollLeft||0,top:t&&t.scrollTop||r&&r.scrollTop||0}},h.getTabbableElements=function(e){return axe.utils.querySelectorAll(e,\"*\").filter(function(e){var t=e.isFocusable,r=e.actualNode.getAttribute(\"tabindex\");return(r=r&&!isNaN(parseInt(r,10))?parseInt(r):null)?t&&0<=r:t})},h.getViewportSize=function(e){\"use strict\";var t,r=e.document,n=r.documentElement;return e.innerWidth?{width:e.innerWidth,height:e.innerHeight}:n?{width:n.clientWidth,height:n.clientHeight}:{width:(t=r.body).clientWidth,height:t.clientHeight}};var k=[\"HEAD\",\"TITLE\",\"TEMPLATE\",\"SCRIPT\",\"STYLE\",\"IFRAME\",\"OBJECT\",\"VIDEO\",\"AUDIO\",\"NOSCRIPT\"];function E(e){return e.disabled||\"AREA\"!==e.nodeName.toUpperCase()&&h.isHiddenWithCSS(e)}function A(e,t){if(9===e.nodeType)return!1;if(11===e.nodeType&&(e=e.host),[\"STYLE\",\"SCRIPT\"].includes(e.nodeName.toUpperCase()))return!1;var r=window.getComputedStyle(e,null);if(!r)throw new Error(\"Style does not exist for the given element.\");if(\"none\"===r.getPropertyValue(\"display\"))return!0;var n=[\"hidden\",\"collapse\"],a=r.getPropertyValue(\"visibility\");if(n.includes(a)&&!t)return!0;if(n.includes(a)&&t&&n.includes(t))return!0;var o=h.getComposedParent(e);return!(!o||n.includes(a))&&h.isHiddenWithCSS(o,a)}h.hasContentVirtual=function(e,t,r){return function(e){if(!k.includes(e.actualNode.nodeName.toUpperCase()))return e.children.some(function(e){var t=e.actualNode;return 3===t.nodeType&&t.nodeValue.trim()})}(e)||h.isVisualContent(e.actualNode)||!r&&!!u.labelVirtual(e)||!t&&e.children.some(function(e){return 1===e.actualNode.nodeType&&h.hasContentVirtual(e)})},h.hasContent=function(e,t,r){return e=axe.utils.getNodeFromTree(e),h.hasContentVirtual(e,t,r)},h.idrefs=function(e,t){\"use strict\";var r,n,a=h.getRootNode(e),o=[],i=e.getAttribute(t);if(i)for(r=0,n=(i=axe.utils.tokenList(i)).length;r<n;r++)o.push(a.getElementById(i[r]));return o},h.isFocusable=function(e){\"use strict\";if(E(e))return!1;if(h.isNativelyFocusable(e))return!0;var t=e.getAttribute(\"tabindex\");return!(!t||isNaN(parseInt(t,10)))},h.isNativelyFocusable=function(e){\"use strict\";if(!e||E(e))return!1;switch(e.nodeName.toUpperCase()){case\"A\":case\"AREA\":if(e.href)return!0;break;case\"INPUT\":return\"hidden\"!==e.type;case\"TEXTAREA\":case\"SELECT\":case\"SUMMARY\":case\"BUTTON\":return!0;case\"DETAILS\":return!e.querySelector(\"summary\")}return!1},h.insertedIntoFocusOrder=function(e){return-1<parseInt(e.getAttribute(\"tabindex\"),10)&&h.isFocusable(e)&&!h.isNativelyFocusable(e)},h.isHiddenWithCSS=function(e,t){var r=axe.utils.getNodeFromTree(e);return r?(void 0===r._isHiddenWithCSS&&(r._isHiddenWithCSS=A(e,t)),r._isHiddenWithCSS):A(e,t)},h.isHTML5=function(e){var t=e.doctype;return null!==t&&(\"html\"===t.name&&!t.publicId&&!t.systemId)};var j=[\"block\",\"list-item\",\"table\",\"flex\",\"grid\",\"inline-block\"];function C(e){var t=window.getComputedStyle(e).getPropertyValue(\"display\");return j.includes(t)||\"table-\"===t.substr(0,6)}h.isInTextBlock=function(r){if(C(r))return!1;var e=function(e){for(var t=h.getComposedParent(e);t&&!C(t);)t=h.getComposedParent(t);return axe.utils.getNodeFromTree(t)}(r),n=\"\",a=\"\",o=0;return function t(e,r){!1!==r(e.actualNode)&&e.children.forEach(function(e){return t(e,r)})}(e,function(e){if(2===o)return!1;if(3===e.nodeType&&(n+=e.nodeValue),1===e.nodeType){var t=(e.nodeName||\"\").toUpperCase();if([\"BR\",\"HR\"].includes(t))0===o?a=n=\"\":o=2;else{if(\"none\"===e.style.display||\"hidden\"===e.style.overflow||![\"\",null,\"none\"].includes(e.style.float)||![\"\",null,\"relative\"].includes(e.style.position))return!1;if(\"A\"===t&&e.href||\"link\"===(e.getAttribute(\"role\")||\"\").toLowerCase())return e===r&&(o=1),a+=e.textContent,!1}}}),n=axe.commons.text.sanitize(n),a=axe.commons.text.sanitize(a),n.length>a.length},h.isModalOpen=function(e){var t=(e=e||{}).modalPercent||.75;if(axe._cache.get(\"isModalOpen\"))return axe._cache.get(\"isModalOpen\");if(axe.utils.querySelectorAllFilter(axe._tree[0],\"dialog, [role=dialog], [aria-modal=true]\",function(e){return h.isVisible(e.actualNode)}).length)return axe._cache.set(\"isModalOpen\",!0),!0;function r(e){var t=l[e].find(function(e){var t=window.getComputedStyle(e);return parseInt(t.width,10)>=a&&parseInt(t.height,10)>=o&&\"none\"!==t.getPropertyValue(\"pointer-events\")&&(\"absolute\"===t.position||\"fixed\"===t.position)});if(t&&l.every(function(e){return e.includes(t)}))return axe._cache.set(\"isModalOpen\",!0),{v:!0}}for(var n=h.getViewportSize(window),a=n.width*t,o=n.height*t,i=(n.width-a)/2,s=(n.height-o)/2,l=[{x:i,y:s},{x:n.width-i,y:s},{x:n.width/2,y:n.height/2},{x:i,y:n.height-s},{x:n.width-i,y:n.height-s}].map(function(e){return Array.from(document.elementsFromPoint(e.x,e.y))}),u=0;u<l.length;u++){var c=r(u);if(\"object\"===W(c))return c.v}axe._cache.set(\"isModalOpen\",void 0)},h.isNode=function(e){\"use strict\";return e instanceof Node},h.isOffscreen=function(e){var t,r=document.documentElement,n=window.getComputedStyle(e),a=window.getComputedStyle(document.body||r).getPropertyValue(\"direction\"),o=h.getElementCoordinates(e);if(o.bottom<0&&(function(e,t){for(e=h.getComposedParent(e);e&&\"html\"!==e.nodeName.toLowerCase();){if(e.scrollTop&&0<=(t+=e.scrollTop))return;e=h.getComposedParent(e)}return 1}(e,o.bottom)||\"absolute\"===n.position))return!0;if(0===o.left&&0===o.right)return!1;if(\"ltr\"===a){if(o.right<=0)return!0}else if(t=Math.max(r.scrollWidth,h.getViewportSize(window).width),o.left>=t)return!0;return!1};var F=/^\\/?#[^/!]/;h.isSkipLink=function(e){return!!F.test(e.getAttribute(\"href\"))&&(void 0!==axe._cache.get(\"firstPageLink\")?t=axe._cache.get(\"firstPageLink\"):(t=axe.utils.querySelectorAll(axe._tree,'a:not([href^=\"#\"]):not([href^=\"/#\"]):not([href^=\"javascript\"])')[0],axe._cache.set(\"firstPageLink\",t||null)),!t||e.compareDocumentPosition(t.actualNode)===e.DOCUMENT_POSITION_FOLLOWING);var t};var T=/rect\\s*\\(([0-9]+)px,?\\s*([0-9]+)px,?\\s*([0-9]+)px,?\\s*([0-9]+)px\\s*\\)/,N=/(\\w+)\\((\\d+)/;h.isVisible=function(e,t,r){\"use strict\";var n=axe.utils.getNodeFromTree(e),a=\"_isVisible\"+(t?\"ScreenReader\":\"\");if(9===e.nodeType)return!0;if(11===e.nodeType&&(e=e.host),n&&void 0!==n[a])return n[a];var o=window.getComputedStyle(e,null);if(null===o)return!1;var i=e.nodeName.toUpperCase();if(\"AREA\"!==i&&\"none\"===o.getPropertyValue(\"display\")||[\"STYLE\",\"SCRIPT\",\"NOSCRIPT\",\"TEMPLATE\"].includes(i)||!t&&function(e){\"use strict\";var t=e.getPropertyValue(\"clip\").match(T),r=e.getPropertyValue(\"clip-path\").match(N);if(t&&5===t.length)return t[3]-t[1]<=0&&t[2]-t[4]<=0;if(r){var n=r[1],a=parseInt(r[2],10);switch(n){case\"inset\":return 50<=a;case\"circle\":return 0===a}}}(o)||!r&&(\"hidden\"===o.getPropertyValue(\"visibility\")||!t&&h.isOffscreen(e))||t&&\"true\"===e.getAttribute(\"aria-hidden\"))return!1;if(\"AREA\"===i)return function(e,r,n){var t=h.findUp(e,\"map\");if(!t)return!1;var a=t.getAttribute(\"name\");if(!a)return!1;var o=h.getRootNode(e);if(!o||9!==o.nodeType)return!1;var i=axe.utils.querySelectorAll(axe._tree,'img[usemap=\"#'.concat(axe.utils.escapeSelector(a),'\"]'));return!(!i||!i.length)&&i.some(function(e){var t=e.actualNode;return h.isVisible(t,r,n)})}(e,t,r);var s=e.assignedSlot?e.assignedSlot:e.parentNode,l=!1;return s&&(l=h.isVisible(s,t,!0)),n&&(n[a]=l),l};var S=[\"checkbox\",\"img\",\"radio\",\"range\",\"slider\",\"spinbutton\",\"textbox\"];function z(e){for(var t=axe.utils.getNodeFromTree(e).parent;t;){if(axe.utils.getScroll(t.actualNode))return t.actualNode;t=t.parent}}h.isVisualContent=function(e){var t=e.getAttribute(\"role\");if(t)return-1!==S.indexOf(t);switch(e.nodeName.toUpperCase()){case\"IMG\":case\"IFRAME\":case\"OBJECT\":case\"VIDEO\":case\"AUDIO\":case\"CANVAS\":case\"SVG\":case\"MATH\":case\"BUTTON\":case\"SELECT\":case\"TEXTAREA\":case\"KEYGEN\":case\"PROGRESS\":case\"METER\":return!0;case\"INPUT\":return\"hidden\"!==e.type;default:return!1}},h.shadowElementsFromPoint=function(n,a){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:document,o=3<arguments.length&&void 0!==arguments[3]?arguments[3]:0;if(999<o)throw new Error(\"Infinite loop detected\");return Array.from(t.elementsFromPoint(n,a)||[]).filter(function(e){return h.getRootNode(e)===t}).reduce(function(e,t){if(axe.utils.isShadowRoot(t)){var r=h.shadowElementsFromPoint(n,a,t.shadowRoot,o+1);(e=e.concat(r)).length&&axe.commons.dom.visuallyContains(e[0],t)&&e.push(t)}else e.push(t);return e},[])},h.urlPropsFromAttribute=function(e,t){if(e.hasAttribute(t)){var r=e.nodeName.toUpperCase(),n=e;[\"A\",\"AREA\"].includes(r)&&!e.ownerSVGElement||((n=document.createElement(\"a\")).href=e.getAttribute(t));var a,o,i,s=[\"https:\",\"ftps:\"].includes(n.protocol)?n.protocol.replace(/s:$/,\":\"):n.protocol,l=/^\\//.test(n.pathname)?n.pathname:\"/\".concat(n.pathname),u=(o=(a=l).split(\"/\").pop())&&-1!==o.indexOf(\".\")?{pathname:a.replace(o,\"\"),filename:/index./.test(o)?\"\":o}:{pathname:a,filename:\"\"},c=u.pathname,d=u.filename;return{protocol:s,hostname:n.hostname,port:(i=n.port,[\"443\",\"80\"].includes(i)?\"\":i),pathname:/\\/$/.test(c)?c:\"\".concat(c,\"/\"),search:function(e){var t={};if(!e||!e.length)return t;var r=e.substring(1).split(\"&\");if(!r||!r.length)return t;for(var n=0;n<r.length;n++){var a=r[n].split(\"=\"),o=X(a,2),i=o[0],s=o[1],l=void 0===s?\"\":s;t[decodeURIComponent(i)]=decodeURIComponent(l)}return t}(n.search),hash:function(e){if(!e)return\"\";var t=e.match(/#!?\\/?/g);return t&&\"#\"!==X(t,1)[0]?e:\"\"}(n.hash),filename:d}}},h.visuallyContains=function(e,t){var r,n,a,o,i,s,l,u,c,d,p,m,f,h,b=z(t);do{var g=z(e);if(g===b||g===t)return r=t,h=f=m=p=d=s=i=o=a=void 0,n=e.getBoundingClientRect(),a=n.top+.01,o=n.bottom-.01,i=n.left+.01,s=n.right-.01,l=r.getBoundingClientRect(),u=l.top,c=l.left,d=u-r.scrollTop,p=u-r.scrollTop+r.scrollHeight,m=c-r.scrollLeft,f=c-r.scrollLeft+r.scrollWidth,\"inline\"===(h=window.getComputedStyle(r)).getPropertyValue(\"display\")||!(i<m&&i<l.left||a<d&&a<l.top||f<s&&s>l.right||p<o&&o>l.bottom)&&(!(s>l.right||o>l.bottom)||\"scroll\"===h.overflow||\"auto\"===h.overflow||\"hidden\"===h.overflow||r instanceof HTMLBodyElement||r instanceof HTMLHtmlElement);e=g}while(e);return!1},h.visuallyOverlaps=function(e,t){var r=t.getBoundingClientRect(),n=r.top,a=r.left,o=n-t.scrollTop,i=n-t.scrollTop+t.scrollHeight,s=a-t.scrollLeft,l=a-t.scrollLeft+t.scrollWidth;if(e.left>l&&e.left>r.right||e.top>i&&e.top>r.bottom||e.right<s&&e.right<r.left||e.bottom<o&&e.bottom<r.top)return!1;var u=window.getComputedStyle(t);return!(e.left>r.right||e.top>r.bottom)||(\"scroll\"===u.overflow||\"auto\"===u.overflow||t instanceof HTMLBodyElement||t instanceof HTMLHtmlElement)},n.isAriaCombobox=function(e){return\"combobox\"===axe.commons.aria.getRole(e,{noImplicit:!0})},n.isAriaListbox=function(e){return\"listbox\"===axe.commons.aria.getRole(e,{noImplicit:!0})};var q=[\"progressbar\",\"scrollbar\",\"slider\",\"spinbutton\"];n.isAriaRange=function(e){var t=axe.commons.aria.getRole(e,{noImplicit:!0});return q.includes(t)},n.isAriaTextbox=function(e){return\"textbox\"===axe.commons.aria.getRole(e,{noImplicit:!0})},n.isNativeSelect=function(e){return\"SELECT\"===e.nodeName.toUpperCase()};var O=[\"button\",\"checkbox\",\"color\",\"file\",\"hidden\",\"image\",\"password\",\"radio\",\"reset\",\"submit\"];n.isNativeTextbox=function(e){var t=e.nodeName.toUpperCase();return\"TEXTAREA\"===t||\"INPUT\"===t&&!O.includes(e.type)},i.attributes=function(t,e){return t instanceof axe.AbstractVirtualNode||(t=axe.utils.getNodeFromTree(t)),i.fromFunction(function(e){return t.attr(e)},e)},i.condition=function(e,t){return!!t(e)};var _=[\"nodeName\",\"attributes\",\"properties\",\"condition\"];function R(e,t,r){for(var n,a=\"row\"===e?\"_rowHeaders\":\"_colHeaders\",o=\"row\"===e?m.isRowHeader:m.isColumnHeader,i=\"row\"===e?t.y:0,s=\"row\"===e?0:t.x,l=[],u=t.y;i<=u&&!n;u--)for(var c=t.x;s<=c;c--){var d=r[u]?r[u][c]:void 0;if(d){var p=axe.utils.getNodeFromTree(d);if(p[a]){n=p[a];break}l.push(d)}}return n=(n||[]).concat(l.filter(o)),l.forEach(function(e){axe.utils.getNodeFromTree(e)[a]=n}),n}function P(e){var t=e.actualNode;return 3!==t.nodeType?\"\":t.textContent}i.fromDefinition=function(n,a){return n instanceof axe.AbstractVirtualNode||(n=axe.utils.getNodeFromTree(n)),Array.isArray(a)?a.some(function(e){return i(n,e)}):\"string\"==typeof a?axe.utils.matches(n,a):Object.keys(a).every(function(e){if(!_.includes(e))throw new Error('Unknown matcher type \"'.concat(e,'\"'));var t=i[e],r=a[e];return t(n,r)})},i.fromFunction=function(t,r){if(\"object\"!==W(r)||Array.isArray(r)||r instanceof RegExp)throw new Error(\"Expect matcher to be an object\");return Object.keys(r).every(function(e){return i.fromPrimative(t(e),r[e])})},i.fromPrimative=function(e,t){var r=W(t);return Array.isArray(t)&&void 0!==e?t.includes(e):\"function\"===r?!!t(e):t instanceof RegExp?t.test(e):t===e},i.nodeName=function(e,t){return e instanceof axe.AbstractVirtualNode||(e=axe.utils.getNodeFromTree(e)),i.fromPrimative(e.props.nodeName,t)},i.properties=function(t,e){return t instanceof axe.AbstractVirtualNode||(t=axe.utils.getNodeFromTree(t)),i.fromFunction(function(e){return t.props[e]},e)},m.getAllCells=function(e){var t,r,n,a,o=[];for(t=0,n=e.rows.length;t<n;t++)for(r=0,a=e.rows[t].cells.length;r<a;r++)o.push(e.rows[t].cells[r]);return o},m.getCellPosition=axe.utils.memoize(function(e,t){var r,n;for(t=t||m.toGrid(h.findUp(e,\"table\")),r=0;r<t.length;r++)if(t[r]&&-1!==(n=t[r].indexOf(e)))return{x:n,y:r}}),m.getHeaders=function(e,t){if(e.getAttribute(\"headers\")){var r=commons.dom.idrefs(e,\"headers\");if(r.filter(function(e){return e}).length)return r}t=t||commons.table.toGrid(commons.dom.findUp(e,\"table\"));var n=commons.table.getCellPosition(e,t),a=R(\"row\",n,t),o=R(\"col\",n,t);return[].concat(a,o).reverse()},m.getScope=function(e){var t=e.getAttribute(\"scope\"),r=e.getAttribute(\"role\");if(e instanceof Element==!1||-1===[\"TD\",\"TH\"].indexOf(e.nodeName.toUpperCase()))throw new TypeError(\"Expected TD or TH element\");if(\"columnheader\"===r)return\"col\";if(\"rowheader\"===r)return\"row\";if(\"col\"===t||\"row\"===t)return t;if(\"TH\"!==e.nodeName.toUpperCase())return!1;var n=m.toGrid(h.findUp(e,\"table\")),a=m.getCellPosition(e,n);return n[a.y].reduce(function(e,t){return e&&\"TH\"===t.nodeName.toUpperCase()},!0)?\"col\":n.map(function(e){return e[a.x]}).reduce(function(e,t){return e&&t&&\"TH\"===t.nodeName.toUpperCase()},!0)?\"row\":\"auto\"},m.isColumnHeader=function(e){return-1!==[\"col\",\"auto\"].indexOf(m.getScope(e))},m.isDataCell=function(e){if(!e.children.length&&!e.textContent.trim())return!1;var t=e.getAttribute(\"role\");return axe.commons.aria.isValidRole(t)?[\"cell\",\"gridcell\"].includes(t):\"TD\"===e.nodeName.toUpperCase()},m.isDataTable=function(e){var t=(e.getAttribute(\"role\")||\"\").toLowerCase();if((\"presentation\"===t||\"none\"===t)&&!h.isFocusable(e))return!1;if(\"true\"===e.getAttribute(\"contenteditable\")||h.findUp(e,'[contenteditable=\"true\"]'))return!0;if(\"grid\"===t||\"treegrid\"===t||\"table\"===t)return!0;if(\"landmark\"===commons.aria.getRoleType(t))return!0;if(\"0\"===e.getAttribute(\"datatable\"))return!1;if(e.getAttribute(\"summary\"))return!0;if(e.tHead||e.tFoot||e.caption)return!0;for(var r=0,n=e.children.length;r<n;r++)if(\"COLGROUP\"===e.children[r].nodeName.toUpperCase())return!0;for(var a,o,i=0,s=e.rows.length,l=!1,u=0;u<s;u++)for(var c=0,d=(a=e.rows[u]).cells.length;c<d;c++){if(\"TH\"===(o=a.cells[c]).nodeName.toUpperCase())return!0;if(l||o.offsetWidth===o.clientWidth&&o.offsetHeight===o.clientHeight||(l=!0),o.getAttribute(\"scope\")||o.getAttribute(\"headers\")||o.getAttribute(\"abbr\"))return!0;if([\"columnheader\",\"rowheader\"].includes((o.getAttribute(\"role\")||\"\").toLowerCase()))return!0;if(1===o.children.length&&\"ABBR\"===o.children[0].nodeName.toUpperCase())return!0;i++}if(e.getElementsByTagName(\"table\").length)return!1;if(s<2)return!1;var p,m,f=e.rows[Math.ceil(s/2)];if(1===f.cells.length&&1===f.cells[0].colSpan)return!1;if(5<=f.cells.length)return!0;if(l)return!0;for(u=0;u<s;u++){if(a=e.rows[u],p&&p!==window.getComputedStyle(a).getPropertyValue(\"background-color\"))return!0;if(p=window.getComputedStyle(a).getPropertyValue(\"background-color\"),m&&m!==window.getComputedStyle(a).getPropertyValue(\"background-image\"))return!0;m=window.getComputedStyle(a).getPropertyValue(\"background-image\")}return 20<=s||!(h.getElementCoordinates(e).width>.95*h.getViewportSize(window).width)&&(!(i<10)&&!e.querySelector(\"object, embed, iframe, applet\"))},m.isHeader=function(e){if(m.isColumnHeader(e)||m.isRowHeader(e))return!0;if(e.getAttribute(\"id\")){var t=axe.utils.escapeSelector(e.getAttribute(\"id\"));return!!document.querySelector('[headers~=\"'.concat(t,'\"]'))}return!1},m.isRowHeader=function(e){return[\"row\",\"auto\"].includes(m.getScope(e))},m.toGrid=axe.utils.memoize(function(e){for(var t=[],r=e.rows,n=0,a=r.length;n<a;n++){var o=r[n].cells;t[n]=t[n]||[];for(var i=0,s=0,l=o.length;s<l;s++)for(var u=0;u<o[s].colSpan;u++){for(var c=0;c<o[s].rowSpan;c++){for(t[n+c]=t[n+c]||[];t[n+c][i];)i++;t[n+c][i]=o[s]}i++}}return t}),m.toArray=m.toGrid,m.traverse=function(e,t,r,n){if(Array.isArray(t)&&(n=r,r=t,t={x:0,y:0}),\"string\"==typeof e)switch(e){case\"left\":e={x:-1,y:0};break;case\"up\":e={x:0,y:-1};break;case\"right\":e={x:1,y:0};break;case\"down\":e={x:0,y:1}}return function e(t,r,n,a){var o,i=n[r.y]?n[r.y][r.x]:void 0;return i?\"function\"==typeof a&&!0===(o=a(i,r,n))?[i]:((o=e(t,{x:r.x+t.x,y:r.y+t.y},n,a)).unshift(i),o):[]}(e,{x:t.x+e.x,y:t.y+e.y},r,n)},v.accessibleText=function(e,t){var r=axe.utils.getNodeFromTree(e);return v.accessibleTextVirtual(r,t)},v.accessibleTextVirtual=function(r,e){var n=1<arguments.length&&void 0!==e?e:{},t=r.actualNode;if(n=function(e,t){var r=e.actualNode;t.startNode||(t=Y({startNode:e},t));1===r.nodeType&&t.inLabelledByContext&&void 0===t.includeHidden&&(t=Y({includeHidden:!h.isVisible(r,!0)},t));return t}(r,n),function(e,t){var r=e.actualNode;if(1!==r.nodeType||t.includeHidden)return;return!h.isVisible(r,!0)}(r,n))return\"\";var a=[u.arialabelledbyText,u.arialabelText,v.nativeTextAlternative,v.formControlValue,v.subtreeText,P,v.titleText].reduce(function(e,t){return n.startNode===r&&(e=v.sanitize(e)),\"\"!==e?e:t(r,n)},\"\");return n.debug&&axe.log(a||\"{empty-value}\",t,n),a},v.accessibleTextVirtual.alreadyProcessed=function(e,t){return t.processed=t.processed||[],!!t.processed.includes(e)||(t.processed.push(e),!1)};var I=[\"textbox\",\"progressbar\",\"scrollbar\",\"slider\",\"spinbutton\",\"combobox\",\"listbox\"];v.formControlValueMethods={nativeTextboxValue:function(e){if(e=e.actualNode||e,axe.commons.forms.isNativeTextbox(e))return e.value||\"\";return\"\"},nativeSelectValue:function(e){return e=e.actualNode||e,axe.commons.forms.isNativeSelect(e)&&Array.from(e.options).filter(function(e){return e.selected}).map(function(e){return e.text}).join(\" \")||\"\"},ariaTextboxValue:function(e){var t=e.actualNode;if(!axe.commons.forms.isAriaTextbox(t))return\"\";return h.isHiddenWithCSS(t)?t.textContent:v.visibleVirtual(e,!0)},ariaListboxValue:function(e,t){var r=e.actualNode;if(!axe.commons.forms.isAriaListbox(r))return\"\";var n=u.getOwnedVirtual(e).filter(function(e){return\"option\"===u.getRole(e)&&\"true\"===e.actualNode.getAttribute(\"aria-selected\")});return 0!==n.length?axe.commons.text.accessibleTextVirtual(n[0],t):\"\"},ariaComboboxValue:function(e,t){var r,n=e.actualNode;return axe.commons.forms.isAriaCombobox(n)&&(r=u.getOwnedVirtual(e).filter(function(e){return\"listbox\"===u.getRole(e)})[0])?v.formControlValueMethods.ariaListboxValue(r,t):\"\"},ariaRangeValue:function(e){if(e=e.actualNode||e,!axe.commons.forms.isAriaRange(e)||!e.hasAttribute(\"aria-valuenow\"))return\"\";var t=+e.getAttribute(\"aria-valuenow\");return isNaN(t)?\"0\":String(t)}},v.formControlValue=function(r,e){var n=1<arguments.length&&void 0!==e?e:{},t=r.actualNode,a=v.unsupported.accessibleNameFromFieldValue||[],o=u.getRole(t);if(n.startNode===r||!I.includes(o)||a.includes(o))return\"\";var i=Object.keys(v.formControlValueMethods).map(function(e){return v.formControlValueMethods[e]}).reduce(function(e,t){return e||t(r,n)},\"\");return n.debug&&axe.log(i||\"{empty-value}\",t,n),i},v.isHumanInterpretable=function(e){if(!e.length)return 0;if([\"x\",\"i\"].includes(e))return 0;var t=v.removeUnicode(e,{emoji:!0,nonBmp:!0,punctuations:!0});return v.sanitize(t)?1:0},v.isIconLigature=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:.15,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:3,n=e.actualNode.nodeValue.trim();if(!v.sanitize(n)||v.hasUnicode(n,{emoji:!0,nonBmp:!0}))return!1;axe._cache.get(\"canvasContext\")||axe._cache.set(\"canvasContext\",document.createElement(\"canvas\").getContext(\"2d\"));var a=axe._cache.get(\"canvasContext\"),o=a.canvas;axe._cache.get(\"fonts\")||axe._cache.set(\"fonts\",{});var i=axe._cache.get(\"fonts\"),s=window.getComputedStyle(e.parent.actualNode).getPropertyValue(\"font-family\");i[s]||(i[s]={occurances:0,numLigatures:0});var l=i[s];if(l.occurances>=r){if(l.numLigatures/l.occurances==1)return!0;if(0===l.numLigatures)return!1}l.occurances++;var u=30,c=\"\".concat(u,\"px \").concat(s);a.font=c;var d=n.charAt(0),p=a.measureText(d).width;if(p<30){var m=30/p;p*=m,c=\"\".concat(u*=m,\"px \").concat(s)}o.width=p,o.height=u,a.font=c,a.textAlign=\"left\",a.textBaseline=\"top\",a.fillText(d,0,0);var f=new Uint32Array(a.getImageData(0,0,p,u).data.buffer);if(!f.some(function(e){return e}))return l.numLigatures++,!0;a.clearRect(0,0,p,u),a.fillText(n,0,0);var h=new Uint32Array(a.getImageData(0,0,p,u).data.buffer),b=f.reduce(function(e,t,r){return 0===t&&0===h[r]||0!==t&&0!==h[r]?e:++e},0),g=n.split(\"\").reduce(function(e,t){return e+a.measureText(t).width},0),y=a.measureText(n).width;return t<=b/f.length&&t<=1-y/g&&(l.numLigatures++,!0)};v.autocomplete={stateTerms:[\"on\",\"off\"],standaloneTerms:[\"name\",\"honorific-prefix\",\"given-name\",\"additional-name\",\"family-name\",\"honorific-suffix\",\"nickname\",\"username\",\"new-password\",\"current-password\",\"organization-title\",\"organization\",\"street-address\",\"address-line1\",\"address-line2\",\"address-line3\",\"address-level4\",\"address-level3\",\"address-level2\",\"address-level1\",\"country\",\"country-name\",\"postal-code\",\"cc-name\",\"cc-given-name\",\"cc-additional-name\",\"cc-family-name\",\"cc-number\",\"cc-exp\",\"cc-exp-month\",\"cc-exp-year\",\"cc-csc\",\"cc-type\",\"transaction-currency\",\"transaction-amount\",\"language\",\"bday\",\"bday-day\",\"bday-month\",\"bday-year\",\"sex\",\"url\",\"photo\"],qualifiers:[\"home\",\"work\",\"mobile\",\"fax\",\"pager\"],qualifiedTerms:[\"tel\",\"tel-country-code\",\"tel-national\",\"tel-area-code\",\"tel-local\",\"tel-local-prefix\",\"tel-local-suffix\",\"tel-extension\",\"email\",\"impp\"],locations:[\"billing\",\"shipping\"]},v.isValidAutocomplete=function(e,t){var r=1<arguments.length&&void 0!==t?t:{},n=r.looseTyped,a=void 0!==n&&n,o=r.stateTerms,i=void 0===o?[]:o,s=r.locations,l=void 0===s?[]:s,u=r.qualifiers,c=void 0===u?[]:u,d=r.standaloneTerms,p=void 0===d?[]:d,m=r.qualifiedTerms,f=void 0===m?[]:m;if(e=e.toLowerCase().trim(),(i=i.concat(v.autocomplete.stateTerms)).includes(e)||\"\"===e)return!0;c=c.concat(v.autocomplete.qualifiers),l=l.concat(v.autocomplete.locations),p=p.concat(v.autocomplete.standaloneTerms),f=f.concat(v.autocomplete.qualifiedTerms);var h=e.split(/\\s+/g);if(!a&&(8<h[0].length&&\"section-\"===h[0].substr(0,8)&&h.shift(),l.includes(h[0])&&h.shift(),c.includes(h[0])&&(h.shift(),p=[]),1!==h.length))return!1;var b=h[h.length-1];return p.includes(b)||f.includes(b)},v.labelText=function(e,t){var r=1<arguments.length&&void 0!==t?t:{},n=v.accessibleTextVirtual.alreadyProcessed;if(r.inControlContext||r.inLabelledByContext||n(e,r))return\"\";r.startNode||(r.startNode=e);var a,o,i=Y({inControlContext:!0},r),s=(a=e.actualNode).id?h.findElmsInContext({elm:\"label\",attr:\"for\",value:a.id,context:a}):[],l=h.findUpVirtual(e,\"label\");return l?(o=[].concat(Pe(s),[l])).sort(axe.utils.nodeSorter):o=s,o.map(function(e){return v.accessibleText(e,i)}).filter(function(e){return\"\"!==e}).join(\" \")},v.labelVirtual=function(e){var t,r;if(r=u.labelVirtual(e))return r;if(e.actualNode.id){var n=axe.utils.escapeSelector(e.actualNode.getAttribute(\"id\"));if(r=(t=axe.commons.dom.getRootNode(e.actualNode).querySelector('label[for=\"'+n+'\"]'))&&v.visible(t,!0))return r}return(r=(t=h.findUpVirtual(e,\"label\"))&&v.visible(t,!0))||null},v.label=function(e){return e=axe.utils.getNodeFromTree(e),v.labelVirtual(e)},v.nativeElementType=[{matches:[{nodeName:\"textarea\"},{nodeName:\"input\",properties:{type:[\"text\",\"password\",\"search\",\"tel\",\"email\",\"url\"]}}],namingMethods:\"labelText\"},{matches:{nodeName:\"input\",properties:{type:[\"button\",\"submit\",\"reset\"]}},namingMethods:[\"valueText\",\"titleText\",\"buttonDefaultText\"]},{matches:{nodeName:\"input\",properties:{type:\"image\"}},namingMethods:[\"altText\",\"valueText\",\"labelText\",\"titleText\",\"buttonDefaultText\"]},{matches:\"button\",namingMethods:\"subtreeText\"},{matches:\"fieldset\",namingMethods:\"fieldsetLegendText\"},{matches:\"OUTPUT\",namingMethods:\"subtreeText\"},{matches:[{nodeName:\"select\"},{nodeName:\"input\",properties:{type:/^(?!text|password|search|tel|email|url|button|submit|reset)/}}],namingMethods:\"labelText\"},{matches:\"summary\",namingMethods:\"subtreeText\"},{matches:\"figure\",namingMethods:[\"figureText\",\"titleText\"]},{matches:\"img\",namingMethods:\"altText\"},{matches:\"table\",namingMethods:[\"tableCaptionText\",\"tableSummaryText\"]},{matches:[\"hr\",\"br\"],namingMethods:[\"titleText\",\"singleSpace\"]}],v.nativeTextAlternative=function(r,e){var n=1<arguments.length&&void 0!==e?e:{},t=r.actualNode;if(1!==t.nodeType||[\"presentation\",\"none\"].includes(u.getRole(t)))return\"\";var a,o,i,s,l=(a=r,o=v.nativeElementType,i=v.nativeTextMethods,((s=o.find(function(e){var t=e.matches;return axe.commons.matches(a,t)}))?[].concat(s.namingMethods):[]).map(function(e){return i[e]})).reduce(function(e,t){return e||t(r,n)},\"\");return n.debug&&axe.log(l||\"{empty-value}\",t,n),l};var L={submit:\"Submit\",image:\"Submit\",reset:\"Reset\",button:\"\"};function B(e,t){return t.actualNode.getAttribute(e)||\"\"}function M(e,t,r){var n=t.actualNode,a=[e=e.toLowerCase(),n.nodeName.toLowerCase()].join(\",\"),o=n.querySelector(a);return o&&o.nodeName.toLowerCase()===e?v.accessibleText(o,r):\"\"}v.nativeTextMethods={valueText:function(e){return e.actualNode.value||\"\"},buttonDefaultText:function(e){var t=e.actualNode;return L[t.type]||\"\"},tableCaptionText:M.bind(null,\"caption\"),figureText:M.bind(null,\"figcaption\"),fieldsetLegendText:M.bind(null,\"legend\"),altText:B.bind(null,\"alt\"),tableSummaryText:B.bind(null,\"summary\"),titleText:function(e,t){return v.titleText(e,t)},subtreeText:function(e,t){return v.subtreeText(e,t)},labelText:function(e,t){return v.labelText(e,t)},singleSpace:function(){return\" \"}},v.sanitize=function(e){\"use strict\";return e.replace(/\\r\\n/g,\"\\n\").replace(/\\u00A0/g,\" \").replace(/[\\s]{2,}/g,\" \").trim()},v.subtreeText=function(e,t){var r=1<arguments.length&&void 0!==t?t:{},n=v.accessibleTextVirtual.alreadyProcessed;r.startNode=r.startNode||e;var a=r.strict;return n(e,r)||!u.namedFromContents(e,{strict:a})?\"\":u.getOwnedVirtual(e).reduce(function(e,t){return function(e,t,r){var n=t.actualNode.nodeName.toUpperCase(),a=v.accessibleTextVirtual(t,r);if(!a)return e;V.includes(n)||(\" \"!==a[0]&&(a+=\" \"),e&&\" \"!==e[e.length-1]&&(a=\" \"+a));return e+a}(e,t,r)},\"\")};var V=[\"A\",\"EM\",\"STRONG\",\"SMALL\",\"MARK\",\"ABBR\",\"DFN\",\"I\",\"B\",\"S\",\"U\",\"CODE\",\"VAR\",\"SAMP\",\"KBD\",\"SUP\",\"SUB\",\"Q\",\"CITE\",\"SPAN\",\"BDO\",\"BDI\",\"WBR\",\"INS\",\"DEL\",\"MAP\",\"AREA\",\"NOSCRIPT\",\"RUBY\",\"BUTTON\",\"LABEL\",\"OUTPUT\",\"DATALIST\",\"KEYGEN\",\"PROGRESS\",\"COMMAND\",\"CANVAS\",\"TIME\",\"METER\",\"#TEXT\"];var U=[\"button\",\"iframe\",\"a[href]\",{nodeName:\"input\",properties:{type:\"button\"}}];function H(){return/[\\u1D00-\\u1D7F\\u1D80-\\u1DBF\\u1DC0-\\u1DFF\\u20A0-\\u20CF\\u20D0-\\u20FF\\u2100-\\u214F\\u2150-\\u218F\\u2190-\\u21FF\\u2200-\\u22FF\\u2300-\\u23FF\\u2400-\\u243F\\u2440-\\u245F\\u2460-\\u24FF\\u2500-\\u257F\\u2580-\\u259F\\u25A0-\\u25FF\\u2600-\\u26FF\\u2700-\\u27BF\\uE000-\\uF8FF]/g}function $(){return/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&\\xa3\\xa2\\xa5\\xa7\\u20ac()*+,\\-.\\/:;<=>?@\\[\\]^_`{|}~\\xb1]/g}function G(){return/[\\uDB80-\\uDBBF][\\uDC00-\\uDFFF]/g}return v.titleText=function(e){return 1!==(e=e.actualNode||e).nodeType||!e.hasAttribute(\"title\")||!axe.commons.matches(e,U)&&[\"none\",\"presentation\"].includes(u.getRole(e))?\"\":e.getAttribute(\"title\")},v.hasUnicode=function(e,t){var r=t.emoji,n=t.nonBmp,a=t.punctuations;return r?axe.imports.emojiRegexText().test(e):n?H().test(e)||G().test(e):!!a&&$().test(e)},v.removeUnicode=function(e,t){var r=t.emoji,n=t.nonBmp,a=t.punctuations;return r&&(e=e.replace(axe.imports.emojiRegexText(),\"\")),n&&(e=(e=e.replace(H(),\"\")).replace(G(),\"\")),a&&(e=e.replace($(),\"\")),e},v.unsupported={accessibleNameFromFieldValue:[\"combobox\",\"listbox\",\"progressbar\"]},v.visibleTextNodes=function(e){var t=axe.commons.dom.isVisible(e.actualNode),r=[];return e.children.forEach(function(e){3===e.actualNode.nodeType?t&&r.push(e):r=r.concat(v.visibleTextNodes(e))}),r},v.visibleVirtual=function(r,n,a){var e=r.children.map(function(e){if(3===e.actualNode.nodeType){var t=e.actualNode.nodeValue;if(t&&h.isVisible(r.actualNode,n))return t}else if(!a)return v.visibleVirtual(e,n)}).join(\"\");return v.sanitize(e)},v.visible=function(e,t,r){return e=axe.utils.getNodeFromTree(e),v.visibleVirtual(e,t,r)},commons}()})}(\"object\"==typeof window?window:this);";
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-14540-const pageFunctions=require('../../lib/page-functions.js');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-14796-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:14797:const cacheUrls=await driver.evaluateAsync(`(${getCacheContents.toString()}())`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-14798-if(!cacheUrls||!Array.isArray(cacheUrls)){
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-14983-const driver=passContext.driver;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:14984:return driver.evaluateAsync(`(${getDoctype.toString()}())`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-14985-}}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15019-if(idAttr){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:15020:name+=`#${idAttr}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15021-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15026-if(className){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:15027:name+=`.${className.trim().replace(/\s+/g,'.')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15028-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15588-const friendly='Unable to gather Scripts/Stylesheets/HTML Imports on the page';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:15589:reject(new Error(`${friendly}: ${e.message}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15590-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15633-static findBlockingTags(driver,networkRecords){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:15634:const scriptSrc=`(${collectTagsThatBlockFirstPaint.toString()}())`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15635-const firstRequestEndTime=networkRecords.reduce(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15676-beforePass(passContext){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:15677:return passContext.driver.evaluateScriptOnNewDocument(`(${installMediaListener.toString()})()`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15678-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15734-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:15735:const expression=`(${getBodyText.toString()}())`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-15736-const{bodyText,hasNoScript}=await passContext.driver.evaluateAsync(expression);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-16018-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:16019:const size=await driver.evaluateAsync(`(${determineNaturalSize.toString()})(${url})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-16020-this._naturalSizeCache.set(url,size);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17034-afterPass(passContext){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:17035:return passContext.driver.evaluateAsync(`(${getRobotsTxtContent.toString()}())`,{
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17036-useIsolation:true});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17228-const styleTag=document.createElement('style');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:17229:styleTag.textContent=`.${className} { pointer-events: none !important }`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17230-document.body.appendChild(styleTag);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17504-scriptUrl,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:17505:errorMessage:`Could not resolve map url: ${event.sourceMapURL}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17506-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17615-if(detailedMsg){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:17616:return{isReadFailure:true,reason:`Error fetching web app manifest: ${detailedMsg}.`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17617-}else{
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17639-statusCode:-1,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:17640:explanation:`Timed out waiting for start_url (${startUrl}) to respond.`}),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17641-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17668-return driver.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:17669:evaluateAsync(`window.location = '${startUrl}'`).
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17670-then(()=>Promise.race([fetchPromise,timeoutPromise]));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17879-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:17880:const dimensions=await driver.evaluateAsync(`(${getViewportDimensions.toString()}())`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17881-{useIsolation:true});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17885-const results=JSON.stringify(dimensions);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:17886:throw new Error(`ViewportDimensions results were not numeric: ${results}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-17887-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18036-score:null,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18037:errorMessage:`axe-core Error: ${incompleteResult.error.message||'Unknown error'}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18038-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18306-if(score===null||!Number.isFinite(score)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18307:throw new Error(`Invalid score for ${auditId}: ${score}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18308-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18309:if(score>1)throw new Error(`Audit score for ${auditId} is > 1`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18310:if(score<0)throw new Error(`Audit score for ${auditId} is < 0`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18311-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18532-options=Object.assign({includeLoad:true,label:this.meta.id},options);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18533:const beforeLabel=`${options.label}-before`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18534:const afterLabel=`${options.label}-after`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18535-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18733-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18734:explanation:`Failures: ${result.failures.join(',\n')}.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18735-details};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18782-filter(entry=>entry.url&&entry.source==='violation'&&pattern.test(entry.text)).
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18783:map(entry=>({label:`line: ${entry.lineNumber}`,url:entry.url})).
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18784-filter(entry=>{
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18786-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18787:const key=`${entry.url}!${entry.label}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18788-if(seen.has(key))return false;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18836-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18837:const status={msg:`Computing artifact: ${computedName}`,id:`lh:computed:${computedName}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18838-log.time(status,'verbose');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18971-if(!parentRequest){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:18972:throw new Error(`request with id ${ancestor} not found.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-18973-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-19070-if(line===null){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:19071:log.error('JSBundles',`${map.url()} mapping for line out of bounds: ${lineNum+1}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-19072-return failureResult;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-19076-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:19077:log.error('JSBundles',`${map.url()} mapping for column out of bounds: ${lineNum+1}:${colNum}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-19078-return failureResult;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-19084-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:19085:log.error('JSBundles',`${map.url()} mapping for last column out of bounds: ${lineNum+1}:${lastColNum}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-19086-return failureResult;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-19378-id:'shortNameLength',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:19379:failureText:`Manifest's \`short_name\` is too long (>${SUGGESTED_SHORTNAME_LENGTH} `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-19380-`characters) to be displayed on a homescreen without truncation`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-20953-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:20954:let simulateOptions={label:`optimistic${metricName}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-20955-const optimisticSimulation=simulator.simulate(optimisticGraph,simulateOptions);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-20956-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:20957:simulateOptions={label:`optimisticFlex${metricName}`,flexibleOrdering:true};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-20958-const optimisticFlexSimulation=simulator.simulate(optimisticGraph,simulateOptions);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-20959-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:20960:simulateOptions={label:`pessimistic${metricName}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-20961-const pessimisticSimulation=simulator.simulate(pessimisticGraph,simulateOptions);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-21444-default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:21445:throw new TypeError(`Unrecognized throttling method: ${settings.throttlingMethod}`);}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-21446-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-22309-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:22310:throw new Error(`${rootNode?'mainDocument':'root'}Node not found.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-22311-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-22357-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:22358:console.log(padRight(bar,widthInCharacters),`| ${displayName.slice(0,30)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-22359-});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-22449-const rootDomain=Util.getRootDomain(mainResourceURL);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:22450:firstPartyHosts=[`*.${rootDomain}`];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-22451-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-22533-timestamp:evt.ts,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:22534:datauri:`data:image/jpeg;base64,${evt.args.snapshot}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-22535-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23111-if(Object.keys(parsedProps.unknownProperties).length){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23112:warnings.push(`Invalid properties found: ${JSON.stringify(parsedProps.unknownProperties)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23113-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23114-if(Object.keys(parsedProps.invalidValues).length){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23115:warnings.push(`Invalid values found: ${JSON.stringify(parsedProps.invalidValues)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23116-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23182-const keys=invalidKeys.join(', ');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23183:throw new Error(`${objectName} has unrecognized properties: [${keys}]`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23184-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23196-if(foundStrings.has(string)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23197:throw new Error(`${arrayName} has duplicate entry of type '${string}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23198-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23224-if(!validResourceTypes.includes(resourceType)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23225:throw new Error(`Invalid resource type: ${resourceType}. \n`+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23226:`Valid resource types are: ${validResourceTypes.join(', ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23227-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23228-if(!isNumber(budget)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23229:throw new Error(`Invalid budget: ${budget}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23230-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23241-static throwInvalidPathError(path,error){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23242:throw new Error(`Invalid path ${path}. ${error}\n`+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23243-`'Path' should be specified using the 'robots.txt' format.\n`+
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23265-}else if((path.match(/\$/g)||[]).length>1){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23266:this.throwInvalidPathError(path,`Path should only contain one '$' character.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23267-}else if(path.includes('$')&&!path.endsWith('$')){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23268:this.throwInvalidPathError(path,`'$' character should only occur at end of path.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23269-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23371-if(!validTimingMetrics.includes(metric)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23372:throw new Error(`Invalid timing metric: ${metric}. \n`+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23373:`Valid timing metrics are: ${validTimingMetrics.join(', ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23374-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23375-if(!isNumber(budget)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23376:throw new Error(`Invalid budget: ${budget}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23377-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23388-static validateHostname(hostname){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23389:const errMsg=`${hostname} is not a valid hostname.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23390-if(hostname.length===0){
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23446-}else if(options!==undefined){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23447:throw new Error(`Invalid options property in budget at index ${index}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23448-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23452-Budget.assertNoDuplicateStrings(budget.resourceSizes.map(r=>r.resourceType),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23453:`budgets[${index}].resourceSizes`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23454-}else if(resourceSizes!==undefined){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23455:throw new Error(`Invalid resourceSizes entry in budget at index ${index}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23456-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23460-Budget.assertNoDuplicateStrings(budget.resourceCounts.map(r=>r.resourceType),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23461:`budgets[${index}].resourceCounts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23462-}else if(resourceCounts!==undefined){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23463:throw new Error(`Invalid resourceCounts entry in budget at index ${index}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23464-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23468-Budget.assertNoDuplicateStrings(budget.timings.map(r=>r.metric),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23469:`budgets[${index}].timings`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23470-}else if(timings!==undefined){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23471:throw new Error(`Invalid timings entry in budget at index ${index}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23472-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23532-if(typeof implementation.audit!=='function'||implementation.audit===Audit.audit){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23533:throw new Error(`${auditName} has no audit() method.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23534-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23536-if(typeof implementation.meta.id!=='string'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23537:throw new Error(`${auditName} has no meta.id property, or the property is not a string.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23538-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23540-if(typeof implementation.meta.title!=='string'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23541:throw new Error(`${auditName} has no meta.title property, or the property is not a string.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23542-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23548-{
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23549:throw new Error(`${auditName} has no failureTitle and should.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23550-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23553-throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23554:`${auditName} has no meta.description property, or the property is not a string.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23555-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23557-throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23558:`${auditName} has an empty meta.description string. Please add a description for the UI.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23559-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23563-throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23564:`${auditName} has no meta.requiredArtifacts property, or the property is not an array.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23565-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23620-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23621:const auditPathJs=`${audit.path}.js`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23622-const coreAudit=coreList.find(a=>a===auditPathJs);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23623:let requirePath=`../audits/${audit.path}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23624-if(!coreAudit){
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23677-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23678:const errorString='Unable to locate '+(category?`${category}: `:'')+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23679:`\`${moduleIdentifier}\`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23680-     Tried to require() from these locations:
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23745-const keys=invalidKeys.join(', ');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23746:throw new Error(`${pluginName} has unrecognized ${objectName}properties: [${keys}]`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23747-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23765-}else if(!isArrayOfUnknownObjects(auditsJson)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23766:throw new Error(`${pluginName} has an invalid audits array.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23767-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23773-if(typeof path!=='string'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23774:throw new Error(`${pluginName} has a missing audit path.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23775-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23789-if(!isArrayOfUnknownObjects(auditRefsJson)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23790:throw new Error(`${pluginName} has no valid auditsRefs.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23791-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23797-if(typeof id!=='string'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23798:throw new Error(`${pluginName} has an invalid auditRef id.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23799-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23800-if(typeof weight!=='number'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23801:throw new Error(`${pluginName} has an invalid auditRef weight.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23802-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23803-if(typeof group!=='string'&&typeof group!=='undefined'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23804:throw new Error(`${pluginName} has an invalid auditRef group.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23805-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23806-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23807:const prependedGroup=group?`${pluginName}-${group}`:group;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23808-return{
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23823-if(!isObjectOfUnknownProperties(categoryJson)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23824:throw new Error(`${pluginName} has no valid category.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23825-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23837-if(typeof title!=='string'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23838:throw new Error(`${pluginName} has an invalid category tile.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23839-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23840-if(typeof description!=='string'&&typeof description!=='undefined'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23841:throw new Error(`${pluginName} has an invalid category description.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23842-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23843-if(typeof manualDescription!=='string'&&typeof manualDescription!=='undefined'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23844:throw new Error(`${pluginName} has an invalid category manualDescription.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23845-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23868-if(!isObjectOfUnknownProperties(groupsJson)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23869:throw new Error(`${pluginName} groups json is not defined as an object.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23870-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23877-if(!isObjectOfUnknownProperties(groupJson)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23878:throw new Error(`${pluginName} has a group not defined as an object.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23879-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23883-if(typeof title!=='string'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23884:throw new Error(`${pluginName} has an invalid group title.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23885-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23886-if(typeof description!=='string'&&typeof description!=='undefined'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23887:throw new Error(`${pluginName} has an invalid group description.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23888-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23889:parsedGroupsJson[`${pluginName}-${groupId}`]={
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23890-title,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23907-if(!isObjectOfUnknownProperties(pluginJson)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23908:throw new Error(`${pluginName} is not defined as an object.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23909-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23996-if(passIndex===0&&pass.loadFailureMode!=='fatal'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:23997:log.warn(`"${pass.passName}" is the first pass but was marked as non-fatal. `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-23998-`The first pass will always be treated as loadFailureMode=fatal.`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24006-if(!isGatherRequiredByAudits){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24007:const msg=`${gatherer.name} gatherer requested, however no audit requires it.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24008-log.warn('config',msg);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24017-if(!foundGatherers.has(requiredArtifact)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24018:throw new Error(`${requiredArtifact} gatherer, required by audit ${auditMeta.id}, `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24019-'was not found in config.');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24028-if(usedNames.has(passName)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24029:throw new Error(`Passes must have unique names (repeated passName: ${passName}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24030-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24052-if(!auditRef.id){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24053:throw new Error(`missing an audit id at ${categoryId}[${index}]`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24054-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24057-if(!audit){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24058:throw new Error(`could not find ${auditRef.id} audit for category ${categoryId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24059-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24063-if(categoryId==='accessibility'&&!auditRef.group&&!isManual){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24064:throw new Error(`${auditRef.id} accessibility audit does not have a group`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24065-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24067-if(auditRef.weight>0&&isManual){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24068:throw new Error(`${auditRef.id} is manual but has a positive weight`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24069-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24071-if(auditRef.group&&(!groups||!groups[auditRef.group])){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24072:throw new Error(`${auditRef.id} references unknown group ${auditRef.group}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24073-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24085-if(typeof gathererInstance.beforePass!=='function'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24086:throw new Error(`${gathererName} has no beforePass() method.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24087-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24089-if(typeof gathererInstance.pass!=='function'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24090:throw new Error(`${gathererName} has no pass() method.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24091-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24093-if(typeof gathererInstance.afterPass!=='function'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24094:throw new Error(`${gathererName} has no afterPass() method.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24095-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24105-if(!pluginName.startsWith('lighthouse-plugin-')){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24106:throw new Error(`plugin name '${pluginName}' does not start with 'lighthouse-plugin-'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24107-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24109-if(configJSON.categories&&configJSON.categories[pluginName]){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24110:throw new Error(`plugin name '${pluginName}' not allowed because it is the id of a category already found in config`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24111-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24147-if(overwriteArrays)return extension;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24148:if(!Array.isArray(base))throw new TypeError(`Expected array but got ${typeof base}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24149-const merged=base.slice();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24155-}else if(typeof extension==='object'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24156:if(typeof base!=='object')throw new TypeError(`Expected object but got ${typeof base}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24157-if(Array.isArray(base))throw new TypeError('Expected object but got Array');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24546-if(!oldCategories[categoryId]){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24547:log.warn('config',`unrecognized category in 'onlyCategories': ${categoryId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24548-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24560-const parentKeyName=skipAuditIds.includes(auditId)?'skipAudits':'onlyAudits';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24561:log.warn('config',`unrecognized audit in '${parentKeyName}': ${auditId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24562-}else if(auditIds.includes(auditId)&&categoryIds.includes(foundCategory)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24563:log.warn('config',`${auditId} in 'onlyAudits' is already included by `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24564:`${foundCategory} in 'onlyCategories'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24565-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24660-const passName=pass.passName||'unknown pass';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24661:log.warn('config',`Trace not requested by an audit, dropping trace in ${passName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24662-pass.recordTrace=false;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24699-static requireGathererFromPath(path,options,coreAuditList,configDir){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24700:const coreGatherer=coreAuditList.find(a=>a===`${path}.js`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24701-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:24702:let requirePath=`../gather/gatherers/${path}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-24703-if(!coreGatherer){
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-25635-const error=object.error&&object.error.message;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:25636:log.formatProtocol(`disowned method <= browser ${error?'ERR':'OK'}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-25637-{method:'UNKNOWN',params:error||object.result},'verbose');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-25951-log.time(status);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:25952:const indexVal=await this.evaluateAsync(`(${pageFunctions.ultradumbBenchmarkString})()`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-25953-log.timeEnd(status);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26049-if(enable&&newCount===1||!enable&&newCount===0){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:26050:log.verbose('Driver',`${domain}.${enable?'enable':'disable'}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26051-return true;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26053-if(newCount<0){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:26054:log.error('Driver',`Attempted to disable domain '${domain}' when already disabled.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26055-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26273-response.exceptionDetails.text;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:26274:return Promise.reject(new Error(`Evaluation exception: ${errorMessage}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26275-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26550-for(const record of inflightRecords){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:26551:log.verbose('Driver',`Waiting on ${record.url.slice(0,120)} to finish`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26552-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26597-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:26598:const checkForQuietExpression=`(${pageFunctions.checkTimeSinceLastLongTaskString})()`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26599-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26610-if(timeSinceLongTask>=waitForCPUQuiet){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:26611:log.verbose('Driver',`CPU has been idle for ${timeSinceLongTask} ms`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26612-resolve();
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26613-}else{
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:26614:log.verbose('Driver',`CPU has been idle for ${timeSinceLongTask} ms`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-26615-const timeToWait=waitForCPUQuiet-timeSinceLongTask;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27007-scrollTo(position){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27008:const scrollExpression=`window.scrollTo(${position.x}, ${position.y})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27009-return this.evaluateAsync(scrollExpression,{useIsolation:true});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27252-async registerPerformanceObserver(){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27253:const scriptStr=`(${pageFunctions.registerPerformanceObserverInPageString})()`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27254-await this.evaluateScriptOnNewDocument(scriptStr);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27277-this.on('Page.javascriptDialogOpening',data=>{
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27278:log.warn('Driver',`${data.type} dialog opened by the page automatically suppressed.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27279-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27412-if(!(responseStatusCode>=200&&responseStatusCode<300)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27413:reject(new Error(`Invalid response status code: ${responseStatusCode}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27414-return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27452-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27453:await this.driver.evaluateAsync(`${injectIframe}(${JSON.stringify(url)})`,{
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27454-useIsolation:true});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27555-msg:'Loading page & waiting for onload',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27556:id:`lh:gather:loadPage-${passContext.passConfig.passName}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27557-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27658-LHError.errors.ERRORED_DOCUMENT_REQUEST,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27659:{statusCode:`${mainRecord.statusCode}`});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27660-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27824-const status={
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27825:msg:`Gathering setup: ${gatherer.name}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27826:id:`lh:gather:beforePass:${gatherer.name}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27827-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27854-const status={
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27855:msg:`Gathering in-page: ${gatherer.name}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27856:id:`lh:gather:pass:${gatherer.name}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27857-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27891-const status={
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27892:msg:`Gathering: ${gatherer.name}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27893:id:`lh:gather:afterPass:${gatherer.name}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27894-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27938-if(gathererArtifacts[gathererName]===undefined){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:27939:throw new Error(`${gathererName} failed to provide an artifact.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-27940-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28182-const status={
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28183:msg:`Running ${passContext.passConfig.passName} pass`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28184:id:`lh:gather:runPass-${passContext.passConfig.passName}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28185-args:[passContext.passConfig.gatherers.map(g=>g.instance.name).join(', ')]};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28218-GatherRunner._addLoadDataToBaseArtifacts(passContext,loadData,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28219:`pageLoadError-${passConfig.passName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28220-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28560-fs.mkdirSync(basePath,{recursive:true});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28561:rimraf.sync(`${basePath}/*${traceSuffix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28562:rimraf.sync(`${basePath}/${artifactsFilename}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28563-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28567-for(const[passName,trace]of Object.entries(traces)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28568:await saveTrace(trace,`${basePath}/${passName}${traceSuffix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28569-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28573-const log=JSON.stringify(devtoolsLog);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28574:fs.writeFileSync(`${basePath}/${passName}${devtoolsLogSuffix}`,log,'utf8');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28575-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28578-const restArtifactsString=JSON.stringify(restArtifacts,stringifyReplacer,2);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28579:fs.writeFileSync(`${basePath}/${artifactsFilename}`,restArtifactsString,'utf8');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28580-log.log('Artifacts saved to disk in folder:',basePath);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28632-const firstEvent=eventsIterator.next().value;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28633:yield`  ${JSON.stringify(firstEvent)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28634-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28637-for(const event of eventsIterator){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28638:eventsJSON+=`,\n  ${JSON.stringify(event)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28639-eventsRemaining--;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28654-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28655:yield`,\n"${key}": ${JSON.stringify(traceData[key],null,2)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28656-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28697-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28698:const traceFilename=`${pathWithBasename}-${label}${traceSuffix}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28699-await saveTrace(lanternTraceSaver.convertNodeTimingsToTrace(nodeTimings),traceFilename);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28700:log.log('saveAssets',`${label} lantern trace file streamed to disk: ${traceFilename}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28701-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28713-const saveAll=allAssets.map(async(passAssets,index)=>{
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28714:const devtoolsLogFilename=`${pathWithBasename}-${index}${devtoolsLogSuffix}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28715-fs.writeFileSync(devtoolsLogFilename,JSON.stringify(passAssets.devtoolsLog,null,2));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28717-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:28718:const streamTraceFilename=`${pathWithBasename}-${index}${traceSuffix}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-28719-log.log('saveAssets','streaming trace file to disk: '+streamTraceFilename);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-29100-if(sectionWithURL){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:29101:Common.console.warn(`SourceMap "${sourceMappingURL}" contains unsupported "URL" field in one of its sections.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-29102-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-29769-constructor(parentEvent,childEvents=[]){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:29770:const nodeId=`${parentEvent.tid}.${parentEvent.ts}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-29771-super(nodeId);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-30017-if(!connections.length){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:30018:throw new Error(`Could not find a connection for origin: ${origin}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-30019-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-30813-const timingData=this._nodeTimings.get(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:30814:if(!timingData)throw new Error(`Unable to get timing data for node ${node.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-30815-return timingData;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31806-if(id&&id in values===false){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31807:throw new Error(`ICU Message "${icuMessage}" contains a value reference ("${id}") `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31808-`that wasn't provided`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31819-if(typeof value!=='number'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31820:throw new Error(`ICU Message "${icuMessage}" contains a numeric reference ("${id}") `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31821-'but provided value was not a number');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31849-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31850:throw new Error(`Provided value "${valueId}" does not match any placeholder in `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31851:`ICU message "${icuMessage}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31852-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31877-const localeMessages=LOCALES[locale];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31878:if(!localeMessages)throw new Error(`Unsupported locale '${locale}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31879-let localeMessage=localeMessages[icuMessageId]&&localeMessages[icuMessageId].message;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31888-if(!LOCALES.en[icuMessageId]||localeMessage!==LOCALES.en[icuMessageId].message){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31889:log.verbose('i18n',`Message "${icuMessageId}" does not match its 'en' counterpart. `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31890-`Run 'i18n' to update.`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31917-}else{
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31918:if(/]|"|'|\s/.test(property))throw new Error(`Cannot handle "${property}" in i18n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31919:pathAsString+=`[${property}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31920-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31931-const localeMessages=LOCALES[locale];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31932:if(!localeMessages)throw new Error(`Unsupported locale '${locale}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31933-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31937-const[filename,varName]=icuMessageId.split(' | ');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31938:if(!filename.endsWith('util.js'))throw new Error(`Unexpected message: ${icuMessageId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31939-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31966-const keyname=Object.keys(mergedStrings).find(key=>mergedStrings[key]===icuMessage);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31967:if(!keyname)throw new Error(`Could not locate: ${icuMessage}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31968-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31970-const unixStyleFilename=path.relative(LH_ROOT,filenameToLookup).replace(/\\/g,'/');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31971:const icuMessageId=`${unixStyleFilename} | ${keyname}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31972-const icuMessageInstances=_icuMessageInstanceMap.get(icuMessageId)||[];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31981-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:31982:return`${icuMessageId} # ${indexOfInstance}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-31983-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-32031-const matches=icuMessageInstanceId.match(MESSAGE_INSTANCE_ID_REGEX);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:32032:if(!matches)throw new Error(`${icuMessageInstanceId} is not a valid message instance ID`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-32033-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-32732-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:32733:let errMsg=`(${method}): ${protocolError.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:32734:if(protocolError.data)errMsg+=` (${protocolError.data})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:32735:const error=new Error(`Protocol error ${errMsg}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-32736-return Object.assign(error,{protocolMethod:method,protocolError:protocolError.message});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33154-value:documentUrl,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:33155:warning:`ERROR: invalid start_url relative to ${manifestUrl}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33156-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33194-warning:'ERROR: \'display\' has invalid value '+displayValue+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:33195:`. will fall back to ${DEFAULT_DISPLAY_MODE}.`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33196-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33238-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:33239:src.warning=`ERROR: invalid icon url will be ignored: '${raw.src}'`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33240-src.value=undefined;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33366-appUrl.value=undefined;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:33367:appUrl.warning=`ERROR: invalid application URL ${raw.url}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33368-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33501-}catch(_){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:33502:manifestUrlWarning=`ERROR: invalid manifest URL: '${manifestUrl}'`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33503-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33897-initiator:originalRequest.initiator,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:33898:requestId:`${originalRequest.requestId}:redirect`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-33899-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-34701-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:34702:return`<${element.localName}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-34703-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35227-if(tags.audit){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:35228:const key=`audit-${tags.audit}-${err.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35229-if(sentryExceptionCache.has(key))return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35233-if(tags.gatherer){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:35234:const key=`gatherer-${tags.gatherer}-${err.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35235-if(sentryExceptionCache.has(key))return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35287-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:35288:const libDetectorSource="var UNKNOWN_VERSION = null;\nvar d41d8cd98f00b204e9800998ecf8427e_LibraryDetectorTests = {\n\n    'GWT': {\n        id: 'gwt',\n        icon: 'gwt',\n        url: 'http://www.gwtproject.org/',\n        test: function(win) {\n            // pretty complicated, many possible tell tales\n            var doc = win.document,\n                hasHistFrame = doc.getElementById('__gwt_historyFrame'),\n                hasGwtUid = doc.gwt_uid,\n                hasBodyListener = doc.body.__listener,\n                hasBodyEventBits = doc.body.__eventBits,\n                hasModules = win.__gwt_activeModules,\n                hasJsonP = win.__gwt_jsonp__,\n                hasRootWinApp = win.__gwt_scriptsLoaded || win.__gwt_stylesLoaded || win.__gwt_activeModules;\n\n            // use the many possible indicators\n            if(hasHistFrame || hasGwtUid || hasBodyListener || hasBodyEventBits || hasModules || hasJsonP || hasRootWinApp) {\n\n                // carefully look at frames, but only if certain is GWT frame\n                var frames = doc.getElementsByTagName('iframe'),\n                    gwtVersion = UNKNOWN_VERSION;\n                for(var n=0; n<frames.length; n++) {\n                    // catch security access errors\n                    try {\n                        var hasNegativeTabIndex = frames[n].tabIndex < 0; // on for GWT\n                        if(hasNegativeTabIndex && frames[n].contentWindow && frames[n].contentWindow.$gwt_version) {\n                            gwtVersion = frames[n].contentWindow.$gwt_version;\n                            break;\n                        }\n                    }\n                    catch(e) {}\n                }\n\n                if(gwtVersion=='0.0.999') {\n                  gwtVersion = 'Google Internal';\n                }\n\n                return { version: gwtVersion };\n            }\n            return false;\n        }\n    },\n\n    'Ink': {\n        id: 'ink',\n        icon: 'ink',\n        url: 'http://ink.sapo.pt/',\n        test: function(win) {\n            if (win.Ink && win.Ink.createModule) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Vaadin': {\n        id: 'vaadin',\n        icon: 'vaadin',\n        url: 'https://vaadin.com/',\n        test: function(win) {\n            if (win.vaadin && win.vaadin.registerWidgetset) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Bootstrap': {\n        id: 'bootstrap',\n        icon: 'bootstrap',\n        url: 'http://getbootstrap.com/',\n        npm: 'bootstrap',\n        // look for a function Boostrap has added to jQuery - regex for BS 2 & 3\n        test: function(win) {\n            var jQueryAvailable = win.$ && win.$.fn,\n                RE_PREFIX_V2 = '\\\\$this\\\\.data\\\\((?:\\'|\")',\n                RE_PREFIX_V3 = '\\\\$this\\\\.data\\\\((?:\\'|\")(?:bs\\\\.){1}',\n                bootstrapComponents = [\n                    'affix', 'alert', 'button', 'carousel', 'collapse', 'dropdown',\n                    'modal', 'popover', 'scrollspy', 'tab', 'tooltip'\n                ];\n\n            if(jQueryAvailable) {\n                var bootstrapVersion;\n\n                bootstrapComponents.some(function(component) {\n                    if(win.$.fn[component]) {\n                        // Bootstrap >= 3.2.0 detection\n                        if(win.$.fn[component].Constructor && win.$.fn[component].Constructor.VERSION) {\n                            bootstrapVersion = win.$.fn[component].Constructor.VERSION;\n                            return true;\n                        // Bootstrap >= 2.0.0 and <= 3.1.0 detection\n                        } else if(new RegExp(RE_PREFIX_V3 + component).test(win.$.fn[component].toString())) {\n                            bootstrapVersion = '>= 3.0.0 & <= 3.1.1';\n                            return true;\n                        // Bootstrap < 3.1.0 detection\n                        } else if(new RegExp(RE_PREFIX_V2 + component).test(win.$.fn[component].toString())) {\n                            bootstrapVersion = '>= 2.0.0 & <= 2.3.2';\n                            return true;\n                        }\n                    }\n\n                    return false;\n                });\n\n                if (bootstrapVersion) {\n                    return { version: bootstrapVersion };\n                }\n            }\n\n            return false;\n        }\n    },\n\n    'Zurb': {\n        id: 'zurb',\n        icon: 'zurb',\n        url: 'https://foundation.zurb.com/',\n        npm: 'foundation-sites',\n        test: function(win) {\n            if(win.Foundation && win.Foundation.Toggler) {\n                return { version: win.Foundation.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Polymer': {\n        id: 'polymer',\n        icon: 'polymer',\n        url: 'https://www.polymer-project.org/',\n        npm: '@polymer/polymer',\n        test: function(win) {\n            if(win.Polymer && win.Polymer.dom) {\n                return { version: win.Polymer.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Highcharts': {\n        id: 'highcharts',\n        icon: 'highcharts',\n        url: 'http://www.highcharts.com',\n        npm: 'highcharts',\n        test: function(win) {\n            if(win.Highcharts && win.Highcharts.Point) {\n                return { version: win.Highcharts.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'InfoVis': {\n        id: 'jit',\n        icon: 'jit',\n        url: 'http://philogb.github.com/jit/',\n        test: function test(win) {\n            if(win.$jit && win.$jit.PieChart) {\n                return { version: win.$jit.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'FlotCharts': {\n        id: 'flotcharts',\n        icon: 'flotcharts',\n        url: 'http://www.flotcharts.org/',\n        npm: 'flot',\n        test: function(win) {\n            if(win.$ && win.$.plot) {\n                return { version: win.$.plot.version || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'CreateJS': {\n        id: 'createjs',\n        icon: 'createjs',\n        url: 'https://createjs.com/',\n        npm: 'createjs',\n        test: function(win) {\n            if(win.createjs && win.createjs.promote) {\n                return { version: UNKNOWN_VERSION}; // no version info available\n            }\n            return false;\n        }\n    },\n\n    'Google Maps': {\n        id: 'gmaps',\n        icon: 'gmaps',\n        url: 'https://developers.google.com/maps/',\n        test: function(win) {\n            if (win.google && win.google.maps) {\n                return { version: win.google.maps.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'jQuery': {\n        id: 'jquery',\n        icon: 'jquery',\n        url: 'http://jquery.com',\n        npm: 'jquery',\n        test: function(win) {\n            var jq = win.jQuery || win.$;\n            if (jq && jq.fn && jq.fn.jquery) {\n                return { version: jq.fn.jquery.replace(/[^\\d+\\.+]/g, '') || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'jQuery (Fast path)': {\n        id: 'jquery-fast',\n        icon: 'jquery',\n        url: 'http://jquery.com',\n        npm: 'jquery',\n        test: function (win) {\n            var jq = win.jQuery || win.$;\n            if (jq && jq.fn) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'jQuery UI': {\n        id: 'jquery_ui',\n        icon: 'jquery_ui',\n        url: 'http://jqueryui.com',\n        npm: 'jquery-ui',\n        test: function(win) {\n            var jq = win.jQuery || win.$ || win.$jq || win.$j;\n            if(jq && jq.fn && jq.fn.jquery && jq.ui) {\n                var plugins = 'accordion,datepicker,dialog,draggable,droppable,progressbar,resizable,selectable,slider,menu,grid,tabs'.split(','), concat = [];\n                for (var i=0; i < plugins.length; i++) { if(jq.ui[plugins[i]]) concat.push(plugins[i].substr(0,1).toUpperCase() + plugins[i].substr(1)); }\n                return { version: jq.ui.version || UNKNOWN_VERSION, details: concat.length ? 'Plugins used: '+concat.join(',') : '' };\n            }\n            return false;\n        }\n    },\n\n    'Dojo': {\n        id: 'dojo',\n        icon: 'dojo',\n        url: 'http://dojotoolkit.org',\n        npm: 'dojo',\n        test: function(win) {\n            if(win.dojo && win.dojo.delegate) {\n                var version = win.dojo.version ? win.dojo.version.toString() : UNKNOWN_VERSION;\n                return { version: version, details: 'Details: '+(win.dijit ? 'Uses Dijit' : 'none') };\n            }\n            return false;\n        }\n    },\n\n    'Prototype': {\n        id: 'prototype',\n        icon: 'prototype',\n        url: 'http://prototypejs.org',\n        test: function(win) {\n            if(win.Prototype && win.Prototype.BrowserFeatures) {\n                return { version: win.Prototype.Version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Scriptaculous': {\n        id: 'scriptaculous',\n        icon: 'scriptaculous',\n        url: 'http://script.aculo.us',\n        test: function(win) {\n            if(win.Scriptaculous && win.Scriptaculous.load) {\n                return { version: win.Scriptaculous.Version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'MooTools': {\n        id: 'mootools',\n        icon: 'mootools',\n        url: 'https://mootools.net/',\n        test: function(win) {\n            if(win.MooTools && win.MooTools.build) {\n                return { version: win.MooTools.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Spry': {\n        id: 'spry',\n        icon: 'spry',\n        url: 'http://labs.adobe.com/technologies/spry',\n        test: function(win) {\n            if (win.Spry && win.Spry.Data) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'YUI 2': {\n        id: 'yui',\n        icon: 'yui',\n        url: 'http://developer.yahoo.com/yui/2/',\n        test: function(win) {\n            if (win.YAHOO && win.YAHOO.util) {\n                return { version: win.YAHOO.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'YUI 3': {\n        id: 'yui3',\n        icon: 'yui3',\n        url: 'https://yuilibrary.com/',\n        npm: 'yui',\n        test: function(win) {\n            if (win.YUI && win.YUI.Env) {\n                return { version: win.YUI.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Qooxdoo': {\n        id: 'qooxdoo',\n        icon: 'qooxdoo',\n        url: 'http://www.qooxdoo.org/',\n        npm: 'qooxdoo',\n        test: function(win) {\n            if(win.qx && win.qx.Bootstrap) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Ext JS': {\n        id: 'extjs',\n        icon: 'extjs',\n        url: 'https://www.sencha.com/products/extjs/',\n        test: function(win) {\n            if (win.Ext && win.Ext.versions) {\n                return { version: win.Ext.versions.core.version };\n            }\n            else if(win.Ext) {\n                return { version: win.Ext.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'base2': {\n        id: 'base2',\n        icon: 'base2',\n        url: 'http://code.google.com/p/base2',\n        test: function(win) {\n            if(win.base2 && win.base2.dom) {\n                return { version: win.base2.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Closure Library': {\n        id: 'closure',\n        icon: 'closure',\n        url: 'https://developers.google.com/closure/library/',\n        npm: 'google-closure-library',\n        test: function(win) {\n            if(win.goog && win.goog.provide) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Rapha&euml;l': {\n        id: 'raphael',\n        icon: 'raphael',\n        url: 'http://dmitrybaranovskiy.github.io/raphael/',\n        test: function(win) {\n            if (win.Raphael && win.Raphael.circle) {\n                return { version: win.Raphael.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'React': {\n        id: 'react',\n        icon: 'react',\n        url: 'https://reactjs.org/',\n        npm: 'react',\n        test: function(win) {\n            function isMatch(node) {\n                return node!=null && node._reactRootContainer!=null;\n            }\n            function nodeFilter(node) {\n                return isMatch(node) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n            }\n            var reactRoot = document.getElementById('react-root');\n            var altHasReact = document.querySelector('*[data-reactroot]');\n            var bodyReactRoot = isMatch(document.body) || isMatch(document.body.firstElementChild);\n            var hasReactRoot = bodyReactRoot|| document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT, nodeFilter).nextNode() != null;\n            if (hasReactRoot || reactRoot && reactRoot.innerText.length > 0 || altHasReact || win.React && win.React.Component) {\n                return { version: win.React && win.React.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'React (Fast path)': {\n        id: 'react-fast',\n        icon: 'react',\n        url: 'https://reactjs.org/',\n        npm: 'react',\n        test: function (win) {\n            function isMatch(node) {\n                return node != null && node._reactRootContainer != null;\n            }\n            var reactRoot = document.getElementById('react-root');\n            var altHasReact = document.querySelector('*[data-reactroot]');\n            var hasReactRoot = isMatch(document.body) || isMatch(document.body.firstElementChild);\n            if (hasReactRoot || reactRoot || altHasReact || win.React) {\n                return { version: win.React && win.React.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Next.js': {\n        id: 'next',\n        icon: 'next',\n        url: 'https://nextjs.org/',\n        npm: 'next',\n        test: function(win) {\n            if (win.__NEXT_DATA__ && win.__NEXT_DATA__.buildId) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Next.js (Fast path)': {\n        id: 'next-fast',\n        icon: 'next',\n        url: 'https://nextjs.org/',\n        npm: 'next',\n        test: function (win) {\n            if (win.__NEXT_DATA__) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Preact': {\n        id: 'preact',\n        icon: 'preact',\n        url: 'https://preactjs.com/',\n        npm: 'preact',\n        test: function(win) {\n            var expando = typeof Symbol!='undefined' && Symbol.for && Symbol.for('preactattr');\n            function isMatch(node) {\n                if ('__k' in node && 'props' in node.__k && 'type' in node.__k) {\n                    return true;\n                }\n                return '_component' in node || '__preactattr_' in node || expando && node[expando]!=null;\n            }\n            function getMatch(node) {\n                return node!=null && isMatch(node) && node;\n            }\n            function nodeFilter(node) {\n                return isMatch(node) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n            }\n            var preactRoot = getMatch(document.body) || getMatch(document.body.firstElementChild);\n            if (!preactRoot) {\n                preactRoot = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT, nodeFilter).nextNode();\n            }\n            if (preactRoot || win.preact) {\n                var version = UNKNOWN_VERSION;\n                if (expando && preactRoot && preactRoot[expando]!=null) {\n                    version = '7';\n                }\n                if (preactRoot && '__k' in preactRoot) {\n                    version = '10';\n                }\n                return { version: version };\n            }\n            return false;\n        }\n    },\n\n    'Preact (Fast path)': {\n        id: 'preact-fast',\n        icon: 'preact',\n        url: 'https://preactjs.com/',\n        npm: 'preact',\n        test: function (win) {\n            function isMatch(node) {\n                return node._component != null || node.__preactattr_ != null;\n            }\n            function getMatch(node) {\n                return node != null && isMatch(node);\n            }\n            var preactRoot = getMatch(document.body) || getMatch(document.body.firstElementChild);\n            if (preactRoot || win.preact) {\n                var version = UNKNOWN_VERSION;\n                return { version: version };\n            }\n            return false;\n        }\n    },\n\n    'Modernizr': {\n        id: 'modernizr',\n        icon: 'modernizr',\n        url: 'https://modernizr.com/',\n        npm: 'modernizr',\n        test: function(win) {\n            if (win.Modernizr && win.Modernizr.addTest) {\n                return { version: win.Modernizr._version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Processing.js': {\n        id: 'processingjs',\n        icon: 'processingjs',\n        url: 'http://processingjs.org',\n        npm: 'processing-js',\n        test: function(win) {\n            if(win.Processing && win.Processing.box) {\n                return { version: Processing.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Backbone': {\n        id: 'backbone',\n        icon: 'backbone',\n        url: 'http://backbonejs.org/',\n        npm: 'backbone',\n        test: function(win) {\n            if (win.Backbone && win.Backbone.Model.extend) {\n                return {version: win.Backbone.VERSION || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'Leaflet': {\n        id: 'leaflet',\n        icon: 'leaflet',\n        url: 'http://leafletjs.com',\n        npm: 'leaflet',\n        test: function(win) {\n            // Leaflet 3.1 uses L.Marker and L.VERSION; later versions use L.marker and L.version\n            if (win.L && win.L.GeoJSON && (win.L.marker || win.L.Marker)) {\n                return { version: win.L.version || win.L.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Mapbox': {\n        id: 'mapbox',\n        icon: 'mapbox',\n        url: 'https://www.mapbox.com/',\n        npm: 'mapbox-gl',\n        test: function(win) {\n            if (win.L && win.L.mapbox && win.L.mapbox.geocoder) {\n                return { version: win.L.mapbox.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Lo-Dash': {\n        id: 'lodash',\n        icon: 'lodash',\n        url: 'https://lodash.com/',\n        npm: 'lodash',\n        test: function(win) {\n            var _ = typeof (_ = win._) == 'function' && _,\n                chain = typeof (chain = _ && _.chain) == 'function' && chain,\n                wrapper = (chain || _ || function() { return {}; })(1);\n\n            if (_ && wrapper.__wrapped__) {\n                return { version: _.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Underscore': {\n        id: 'underscore',\n        icon: 'underscore',\n        url: 'http://underscorejs.org/',\n        npm: 'underscore',\n        test: function(win) {\n            if (win._ && typeof win._.tap === 'function' &&\n                !d41d8cd98f00b204e9800998ecf8427e_LibraryDetectorTests['Lo-Dash'].test(win)) {\n                return {version: win._.VERSION || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'Sammy': {\n        id: 'sammy',\n        icon: 'sammy',\n        url: 'http://sammyjs.org',\n        test: function(win) {\n            if (win.Sammy && win.Sammy.Application.curry) {\n                return {version: win.Sammy.VERSION || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'Rico': {\n        id: 'rico',\n        icon: 'rico',\n        url: 'http://openrico.sourceforge.net/examples/index.html',\n        test:  function(win) {\n            if (win.Rico && window.Rico.checkIfComplete) {\n                return {version: win.Rico.Version || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'MochiKit': {\n        id: 'mochikit',\n        icon: 'mochikit',\n        url: 'https://mochi.github.io/mochikit/',\n        test: function(win) {\n            if (win.MochiKit && win.MochiKit.Base.module) {\n                return {version: MochiKit.VERSION || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'gRapha&euml;l': {\n        id: 'graphael',\n        icon: 'graphael',\n        url: 'https://github.com/DmitryBaranovskiy/g.raphael',\n        test: function(win) {\n            if (win.Raphael && win.Raphael.fn.g) {\n                return {version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'Glow': {\n        id: 'glow',\n        icon: 'glow',\n        url: 'http://www.bbc.co.uk/glow/',\n        test: function(win) {\n            if (win.gloader && win.gloader.getRequests) {\n                return {version: UNKNOWN_VERSION};\n            }\n            else if (win.glow && win.glow.dom) {\n                return {version: win.glow.VERSION || UNKNOWN_VERSION};\n            }\n            else if (win.Glow) {\n                return {version: win.Glow.version || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'Socket.IO': {\n        id: 'socketio',\n        icon: 'socketio', // currently has no icon\n        url: 'https://socket.io/',\n        npm: 'socket.io',\n        test: function(win) {\n            // version 0.6.2 uses only io.Socket; more recent versions also have io.sockets\n            if (win.io && (win.io.sockets || win.io.Socket)) {\n                return {version: win.io.version || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'Mustache': {\n        id: 'mustache',\n        icon: 'mustache',\n        url: 'http://mustache.github.io/',\n        npm: 'mustache',\n        test: function(win) {\n            if (win.Mustache && win.Mustache.to_html) {\n                return {version: win.Mustache.version || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'Fabric.js': {\n        id: 'fabricjs',\n        icon: 'icon38', // currently has no icon\n        url: 'http://fabricjs.com/',\n        npm: 'fabric',\n        test: function(win) {\n            if (win.fabric && win.fabric.util) {\n                return {version: win.fabric.version || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'FuseJS': {\n        id: 'fusejs',\n        icon: 'fusejs',\n        url: 'http://fusejs.io/',\n        npm: 'fuse.js',\n        test: function(win) {\n            if (win.Fuse) {\n                return {version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'Tween.js': {\n        id: 'tweenjs',\n        icon: 'icon38', // currently has no icon\n        url: 'https://github.com/tweenjs/tween.js',\n        npm: 'tween.js',\n        test: function(win) {\n            if (win.TWEEN && win.TWEEN.Easing) {\n                return {version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'SproutCore': {\n       id: 'sproutcore',\n       icon: 'sproutcore',\n       url: 'http://sproutcore.com/',\n       test: function(win) {\n           if (win.SC && win.SC.Application) {\n               return {version: UNKNOWN_VERSION};\n           }\n           return false;\n       }\n    },\n\n    'Zepto.js': {\n       id: 'zepto',\n       icon: 'zepto',\n       url: 'http://zeptojs.com',\n       npm: 'zepto',\n       test: function(win) {\n           if (win.Zepto && win.Zepto.fn) {\n               return {version: UNKNOWN_VERSION};\n           }\n           return false;\n       }\n    },\n\n    'three.js': {\n       id: 'threejs',\n       icon: 'icon38', // currently has no icon\n       url: 'https://threejs.org/',\n       npm: 'three',\n       test: function(win) {\n           if (win.THREE && win.THREE.REVISION) {\n               return {version: 'r' + win.THREE.REVISION};\n           }\n           else if (win.THREE) {\n               return {version: UNKNOWN_VERSION};\n           }\n           return false;\n       }\n    },\n\n    'PhiloGL': {\n       id: 'philogl',\n       icon: 'philogl',\n       url: 'http://www.senchalabs.org/philogl/',\n       npm: 'philogl',\n       test: function(win) {\n           if (win.PhiloGL && win.PhiloGL.Camera) {\n               return {version: win.PhiloGL.version || UNKNOWN_VERSION};\n           }\n           return false;\n       }\n    },\n\n    'CamanJS': {\n        id: 'camanjs',\n        icon: 'camanjs',\n        url: 'http://camanjs.com/',\n        npm: 'caman',\n        test: function(win) {\n            if (win.Caman && win.Caman.version) {\n                return {version: win.Caman.version.release};\n            }\n            else if (win.Caman) {\n                return {version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'yepnope': {\n        id: 'yepnope',\n        icon: 'yepnope',\n        url: 'http://yepnopejs.com/',\n        test: function(win) {\n            if (win.yepnope && win.yepnope.injectJs) {\n                return {version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'LABjs': {\n        id: 'labjs',\n        icon: 'icon38',\n        url: 'https://github.com/getify/LABjs',\n        test: function(win) {\n            if (win.$LAB && win.$LAB.setOptions) {\n                return {version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'Head JS': {\n        id: 'headjs',\n        icon: 'headjs',\n        url: 'http://headjs.com/',\n        npm: 'headjs',\n        test: function(win) {\n            if (win.head && win.head.js) {\n                return {version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'ControlJS': {\n        id: 'controljs',\n        icon: 'icon38',\n        url: 'http://stevesouders.com/controljs/',\n        test: function(win) {\n            if (win.CJS && win.CJS.start) {\n                return {version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'RequireJS': {\n        id: 'requirejs',\n        icon: 'requirejs',\n        url: 'http://requirejs.org/',\n        npm: 'requirejs',\n        test: function(win) {\n            var req = win.require || win.requirejs;\n            if (req && (req.load || (req.s && req.s.contexts && req.s.contexts._ && (req.s.contexts._.loaded || req.s.contexts._.load)))) {\n                return { version: req.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'RightJS': {\n        id: 'rightjs',\n        icon: 'rightjs',\n        url: 'http://rightjs.org/',\n        test: function(win) {\n            if (win.RightJS && win.RightJS.isNode) {\n                return { version: win.RightJS.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'jQuery Tools': {\n       id: 'jquerytools',\n       icon: 'jquerytools',\n       url: 'http://jquerytools.github.io/',\n       test: function(win) {\n            var jq = win.jQuery || win.$;\n            if(jq && jq.tools) {\n               return { version: jq.tools.version || UNKNOWN_VERSION };\n           }\n           return false;\n       }\n    },\n\n    'Pusher': {\n       id: 'pusher',\n       icon: 'pusher',\n       url: 'https://pusher.com/docs/',\n       npm: 'pusher-js',\n       test: function(win) {\n            if(win.Pusher && win.Pusher.Channel) {\n               return { version: win.Pusher.VERSION || UNKNOWN_VERSION };\n           }\n           return false;\n       }\n    },\n\n    'Paper.js': {\n       id: 'paperjs',\n       icon: 'paperjs',\n       url: 'http://paperjs.org/',\n       npm: 'paper',\n       test: function(win) {\n            if(win.paper && win.paper.Point) {\n               return { version: win.paper.version || UNKNOWN_VERSION };\n           }\n           return false;\n       }\n    },\n\n    'Swiffy': {\n       id: 'swiffy',\n       icon: 'icon38',\n       url: 'https://developers.google.com/swiffy/',\n       test: function(win) {\n            if(win.swiffy && win.swiffy.Stage) {\n               return { version: UNKNOWN_VERSION };\n           }\n           return false;\n       }\n    },\n\n    'Move': {\n       id: 'move',\n       icon: 'move',\n       url: 'https://github.com/rsms/move',\n       npm: 'move',\n       test: function(win) {\n            if(win.move && win.move.compile) {\n               return { version: win.move.version() || UNKNOWN_VERSION };\n           }\n           return false;\n       }\n    },\n\n    'AmplifyJS': {\n       id: 'amplifyjs',\n       icon: 'amplifyjs',\n       url: 'http://amplifyjs.com/',\n       npm: 'amplifyjs',\n       test: function(win) {\n            if(win.amplify && win.amplify.publish) {\n               return { version: UNKNOWN_VERSION };\n           }\n           return false;\n       }\n    },\n\n    'Popcorn.js': {\n       id: 'popcornjs',\n       icon: 'popcornjs',\n       url: 'https://github.com/mozilla/popcorn-js/',\n       test: function(win) {\n            if (win.Popcorn && win.Popcorn.Events) {\n               return { version: win.Popcorn.version || UNKNOWN_VERSION };\n           }\n           return false;\n       }\n    },\n\n    'D3': {\n        id: 'd3',\n        icon: 'd3',\n        url: 'https://d3js.org/',\n        npm: 'd3',\n        test: function(win) {\n            if (win.d3 && win.d3.select) {\n                return { version: win.d3.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Handlebars': {\n        id: 'handlebars',\n        icon: 'handlebars',\n        url: 'http://handlebarsjs.com/',\n        npm: 'handlebars',\n        test: function(win) {\n            if(win.Handlebars && win.Handlebars.compile) {\n                return { version: win.Handlebars.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Knockout': {\n        id: 'knockout',\n        icon: 'knockout',\n        url: 'http://knockoutjs.com/',\n        npm: 'knockout',\n        test: function(win) {\n            if (win.ko && win.ko.applyBindings) {\n                return { version: win.ko.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Spine': {\n        id: 'spine',\n        icon: 'icon38',\n        url: 'http://spine.github.io/',\n        test: function(win) {\n            if (win.Spine && win.Spine.Controller) {\n                return {version: win.Spine.version || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n\n    'jQuery Mobile': {\n        id: 'jquery-mobile',\n        icon: 'jquery_mobile',\n        url: 'http://jquerymobile.com/',\n        npm: 'jquery-mobile',\n        test: function(win) {\n            var jq = win.jQuery || win.$ || win.$jq || win.$j;\n            if(jq && jq.fn && jq.fn.jquery && jq.mobile) {\n                return { version: jq.mobile.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'WebFont Loader': {\n        id: 'webfontloader',\n        icon: 'icon38',\n        url: 'https://github.com/typekit/webfontloader',\n        npm: 'webfontloader',\n        test: function(win) {\n            if(win.WebFont && win.WebFont.load) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Angular': {\n        id: 'angular',\n        icon: 'angular',\n        url: 'https://angular.io/',\n        npm: '@angular/core',\n        test: function(win) {\n            var ngVersion = win.document.querySelector('[ng-version]');\n            if (ngVersion) {\n                return { version: ngVersion.getAttribute('ng-version') || UNKNOWN_VERSION };\n            }\n            else if (win.ng && win.ng.probe instanceof Function) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'AngularJS': {\n        id: 'angularjs',\n        icon: 'angularjs',\n        url: 'https://angularjs.org/',\n        npm: 'angular',\n        test: function(win) {\n            var ng = win.angular;\n            if(ng && ng.version && ng.version.full) {\n                return { version: ng.version.full };\n            }\n            else if (ng) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Ember.js': {\n        id: 'emberjs',\n        icon: 'emberjs',\n        url: 'https://emberjs.com/',\n        npm: 'ember-source',\n        test: function(win) {\n            var ember = win.Ember || win.Em;\n            if (ember && ember.GUID_KEY) {\n                return { version: ember.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Ember.js (Fast path)': {\n        id: 'emberjs-fast',\n        icon: 'emberjs',\n        url: 'https://emberjs.com/',\n        npm: 'ember-source',\n        test: function (win) {\n            var ember = win.Ember || win.Em;\n            if (ember) {\n                return { version: ember.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Hammer.js': {\n        id: 'hammerjs',\n        icon: 'hammerjs',\n        url: 'http://eightmedia.github.io/hammer.js/',\n        npm: 'hammerjs',\n        test: function(win) {\n            if(win.Hammer && win.Hammer.Pinch) {\n                // Hammer.VERSION available in 1.0.10+\n                return { version: win.Hammer.VERSION || \"&lt; 1.0.10\" };\n            }\n            return false;\n        }\n    },\n\n    'Visibility.js': {\n        id: 'visibilityjs',\n        icon: 'icon38',\n        url: 'https://github.com/ai/visibilityjs',\n        npm: 'visibilityjs',\n        test: function(win) {\n            if(win.Visibility && win.Visibility.every) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'Velocity.js': {\n        id: 'velocityjs',\n        icon: 'icon38',\n        url: 'http://velocityjs.org/',\n        npm: 'velocity-animate',\n        test: function(win) {\n            var jq = win.jQuery || win.$,\n                velocity = jq ? jq.Velocity : win.Velocity;\n\n            if(velocity && velocity.RegisterEffect && velocity.version) {\n                return {\n                    version:\n                        velocity.version.major + \".\" +\n                        velocity.version.minor + \".\" +\n                        velocity.version.patch\n                };\n            }\n            else if (velocity && velocity.RegisterEffect) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n\n    'IfVisible.js': {\n        id: 'ifvisiblejs',\n        icon: 'icon38',\n        url: 'http://serkanyersen.github.io/ifvisible.js/',\n        npm: 'ifvisible.js',\n        test: function(win) {\n            var iv = win.ifvisible;\n            if(iv && iv.__ceGUID === \"ifvisible.object.event.identifier\") {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Pixi.js': {\n        id: 'pixi',\n        icon: 'pixi',\n        url: 'http://www.pixijs.com/',\n        npm: 'pixi.js',\n        test: function(win) {\n            var px = win.PIXI;\n            if(px && px.WebGLRenderer && px.VERSION) {\n                // version 4.4.3 returns simply \"4.4.3\"; version 1.5.2 returns \"v1.5.2\"\n                return { version: px.VERSION.replace('v', '') || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'DC.js': {\n        id: 'dcjs',\n        icon: 'dcjs',\n        url: 'http://dc-js.github.io/dc.js/',\n        npm: 'dc',\n        test: function(win) {\n            var dc = win.dc;\n            if(dc && dc.registerChart) {\n                return { version: dc.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'GreenSock JS': {\n        id: 'greensock',\n        icon: 'greensock',\n        url: 'https://greensock.com/gsap',\n        npm: 'gsap',\n        test: function(win) {\n            if (win.TweenMax && win.TweenMax.pauseAll) {\n                return { version: win.TweenMax.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'FastClick': {\n        id: 'fastclick',\n        icon: 'fastclick',\n        url: 'https://github.com/ftlabs/fastclick',\n        npm: 'fastclick',\n        test: function(win) {\n            if(win.FastClick && win.FastClick.notNeeded) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Isotope': {\n        id: 'isotope',\n        icon: 'isotope',\n        url: 'https://isotope.metafizzy.co/',\n        npm: 'isotope-layout',\n        test: function(win) {\n            if(win.Isotope || (win.$ != null && win.$.Isotope)) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Marionette': {\n        id: 'marionette',\n        icon: 'marionette',\n        url: 'https://marionettejs.com/',\n        npm: 'backbone.marionette',\n        test: function(win) {\n            if(win.Marionette && win.Marionette.Application) {\n                return { version: win.Marionette.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Can': {\n        id: 'canjs',\n        icon: 'canjs',\n        url: 'https://canjs.com/',\n        npm: 'can',\n        test: function (win) {\n            if (win.can && win.can.Construct) {\n                return { version: win.can.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Vue': {\n        id: 'vue',\n        icon: 'vue',\n        url: 'https://vuejs.org/',\n        npm: 'vue',\n        test: function(win) {\n            function isVueNode(node) {\n                return node.__vue__ != null ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n            }\n            var hasVueNode = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT, isVueNode).nextNode() !== null;\n            if (hasVueNode) {\n                return { version: win.Vue && win.Vue.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Vue (Fast path)': {\n        id: 'vue-fast',\n        icon: 'vue',\n        url: 'https://vuejs.org/',\n        npm: 'vue',\n        test: function (win) {\n            if (win.Vue) {\n                return { version: win.Vue && win.Vue.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Nuxt.js': {\n        id: 'nuxt',\n        icon: 'nuxt',\n        url: 'https://nuxtjs.org/',\n        npm: 'nuxt',\n        test: function(win) {\n            if ((win.__NUXT__ && win.__NUXT__.data != null) || win.$nuxt) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Nuxt.js (Fast path)': {\n        id: 'nuxt-fast',\n        icon: 'nuxt',\n        url: 'https://nuxtjs.org/',\n        npm: 'nuxt',\n        test: function (win) {\n            if (win.__NUXT__  || win.$nuxt) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Two': {\n        id: 'two',\n        icon: 'two',\n        url: 'https://two.js.org/',\n        npm: 'two.js',\n        test: function(win) {\n            if (win.Two && win.Two.Utils) {\n                return { version: win.Two.Version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Brewser': {\n        id: 'brewser',\n        icon: 'brewser',\n        url: 'https://robertpataki.github.io/brewser/',\n        npm: 'brewser',\n        test: function(win) {\n            if(win.BREWSER && win.BREWSER.ua) {\n                return { version: BREWSER.VERSION || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Material Design Lite': {\n        id: 'materialdesignlite',\n        icon: 'mdl',\n        url: 'https://getmdl.io/',\n        npm: 'material-design-lite',\n        test: function(win) {\n            if(win.componentHandler && win.componentHandler.upgradeElement) {\n                return { version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n    'Kendo UI': {\n        id: 'kendoui',\n        icon: 'kendoui',\n        url: 'https://github.com/telerik/kendo-ui-core',\n        npm: 'kendo-ui-core',\n        test: function(win) {\n            if (win.kendo && win.kendo.View && win.kendo.View.extend) {\n                return {version: win.kendo.version || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n    'Matter.js': {\n        id: 'matterjs',\n        icon: 'matter-js',\n        url: 'http://brm.io/matter-js/',\n        npm: 'matter-js',\n        test: function(win) {\n            if (win.Matter && win.Matter.Engine) {\n                return {version: UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n    'Riot': {\n        id: 'riot',\n        icon: 'riot',\n        url: 'http://riotjs.com/',\n        npm: 'riot',\n        test: function(win) {\n            if (win.riot && win.riot.mixin) {\n                return { version: win.riot.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Sea.js': {\n        id: 'seajs',\n        icon: 'icon38',\n        url: 'https://seajs.github.io/seajs/docs/',\n        npm: 'seajs',\n        test: function(win) {\n            if(win.seajs && win.seajs.use) {\n                return { version: win.seajs.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Moment.js': {\n        id: 'momentjs',\n        icon: 'momentjs',\n        url: 'http://momentjs.com/',\n        npm: 'moment',\n        test: function(win) {\n            if(win.moment && (win.moment.isMoment || win.moment.lang)) {\n                // version 1.0.0 has neither \"isMoment\" nor \"version\"\n                return { version: win.moment.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Moment Timezone': {\n        id: 'moment-timezone',\n        icon: 'momentjs',\n        url: 'http://momentjs.com/timezone/',\n        npm: 'moment-timezone',\n        test: function(win) {\n            if (win.moment && win.moment.tz) {\n                return { version: win.moment.tz.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'ScrollMagic': {\n        id: 'scrollmagic',\n        icon: 'scrollmagic',\n        url: 'http://scrollmagic.io/',\n        npm: 'scrollmagic',\n        test: function(win) {\n            if (win.ScrollMagic && win.ScrollMagic.Controller) {\n                return {version: ScrollMagic.version || UNKNOWN_VERSION};\n            }\n            return false;\n        }\n    },\n    'SWFObject': {\n        id: 'swfobject',\n        icon: 'icon38', // currently has no icon\n        url: 'https://github.com/swfobject/swfobject',\n        test: function(win) {\n            if (win.swfobject && win.swfobject.embedSWF) {\n                // 2.x - exact version only for 2.3\n                return { version: win.swfobject.version || UNKNOWN_VERSION };\n            } else if(win.deconcept && win.deconcept.SWFObject) {\n                // 1.x\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'FlexSlider': {\n        id: 'flexslider',\n        icon: 'icon38', // currently has no icon\n        url: 'https://woocommerce.com/flexslider/',\n        npm: 'flexslider',\n        test: function(win) {\n            var jq = win.jQuery || win.$ || win.$jq || win.$j;\n            if (jq && jq.fn && jq.fn.jquery && jq.flexslider){\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'SPF': {\n        id: 'spf',\n        icon: 'icon38', // currently has no icon\n        url: 'https://youtube.github.io/spfjs/',\n        npm: 'spf',\n        test: function(win) {\n            if (win.spf && win.spf.init) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Numeral.js': {\n        id: 'numeraljs',\n        icon: 'icon38', // currently has no icon\n        url: 'http://numeraljs.com/',\n        npm: 'numeraljs',\n        test: function(win) {\n            if (win.numeral && win.isNumeral) {\n                return { version: win.numeral.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'boomerang.js': {\n        id: 'boomerangjs',\n        icon: 'icon38', // currently has no icon\n        url: 'https://soasta.github.io/boomerang/',\n        npm: 'boomerangjs',\n        test: function(win) {\n            if (win.BOOMR && win.BOOMR.utils && win.BOOMR.init) {\n                return { version: win.BOOMR.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Framer': {\n        id: 'framer',\n        icon: 'framer',\n        url: 'https://framer.com/',\n        npm: 'framerjs',\n        test: function(win) {\n            if (win.Framer && win.Framer.Layer) {\n                return { version: win.Framer.Version.build || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Marko': {\n        id: 'marko',\n        icon: 'marko',\n        url: 'https://markojs.com/',\n        npm: 'marko',\n        test: function (win) {\n            var selector = '[data-marko-key], [data-marko]';\n            var markoElement = document.querySelector(selector);\n            if (markoElement) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'AMP': {\n        id: 'amp',\n        icon: 'amp',\n        url: 'https://amp.dev/',\n        npm: 'https://www.npmjs.com/org/ampproject',\n        test: function (win) {\n            var version = win.document.documentElement.getAttribute(\"amp-version\");\n            return version ? { version: version } : false;\n        }\n    },\n    'Gatsby': {\n        id: 'gatsby',\n        icon: 'gatsby',\n        url: 'https://www.gatsbyjs.org/',\n        npm: 'gatsby',\n        test: function (win) {\n            if (document.getElementById('___gatsby')) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Shopify': {\n        id: 'shopify',\n        icon: 'shopify',\n        url: 'https://www.shopify.com/',\n        npm: null,\n        test: function (win) {\n            if (win.Shopify && win.Shopify.shop) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Magento': {\n        id: 'magento',\n        icon: 'magento',\n        url: 'https://magento.com/',\n        npm: null,\n        test: function (win) {\n            // Same detecton used in Magento 2 DevTools: https://github.com/magento/m2-devtools\n            const reRequireScript = /\\/static(?:\\/version\\d+)?\\/frontend\\/.+\\/.+\\/requirejs\\/require(?:\\.min)?\\.js/;\n            const scripts = Array.from(document.querySelectorAll('script[src]') || []);\n            if (scripts.some(s => reRequireScript.test(s.src))) {\n                return { version: 2 }; // Magento 1 is no longer supported and this only verifies version 2\n            }\n            \n            return false;\n        }\n    },\n    'WordPress': {\n        id: 'wordpress',\n        icon: 'wordpress',\n        url: 'https://wordpress.org/',\n        npm: null,\n        test: function (win) {\n            const hasAPILinkElem = !!document.querySelector('link[rel=\"https://api.w.org/\"]');\n            const hasWPIncludes = !!document.querySelectorAll('link[href*=\"wp-includes\"], script[src*=\"wp-includes\"]').length;\n\n            if (!hasAPILinkElem && !hasWPIncludes) return false;\n\n            const generatorMeta = document.querySelector('meta[name=generator][content^=\"WordPress\"]');\n            const version = generatorMeta ? generatorMeta.getAttribute(\"content\").replace(/^\\w+\\s/,'') : UNKNOWN_VERSION;\n            return { version };\n        }\n    },\n    'Wix': {\n        id: 'wix',\n        icon: 'wix',\n        url: 'https://www.wix.com/',\n        npm: null,\n        test: function (win) {\n            if (win.wixBiSession) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Workbox': {\n      id: 'workbox',\n      icon: 'workbox',\n      url: 'https://developers.google.com/web/tools/workbox/',\n      npm: 'workbox-sw',\n      test: async function (win) {\n        var nav = win.navigator;\n        // Service Workers not supported\n        if (!('serviceWorker' in nav)) {\n          return false;\n        }\n        return nav.serviceWorker.getRegistration()\n        .then(function(registration) {\n          var scriptURL = nav.serviceWorker.controller.scriptURL;\n          return fetch(scriptURL, { credentials: 'include',\n            headers: { 'service-worker': 'script' }\n          })\n          .then(function(response) {\n            return response.text();\n          })\n          .then(function(scriptContent) {\n            var workboxRegExp = /new Workbox|new workbox|workbox\\.precaching\\.|workbox\\.strategies/gm;\n            if (workboxRegExp.test(scriptContent)) {\n              // Adapted from\n              // https://github.com/semver/semver/issues/232#issue-48635632\n              var semVerRegExp = /workbox.*?\\b((0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(-(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(\\.(0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\\+[0-9a-zA-Z-]+(\\.[0-9a-zA-Z-]+)*)?)\\b/gim;\n              var matches = semVerRegExp.exec(scriptContent);\n              var version = UNKNOWN_VERSION;\n              if (Array.isArray(matches) && matches.length > 1 && matches[1]) {\n                version = matches[1];\n              }\n              return { version: version };\n            }\n            return false;\n          });\n        }).catch(function(exception) {\n          return false;\n        });\n      }\n    },\n    'Boq': {\n        id: 'boq',\n        icon: 'icon38',\n        url: 'https://github.com/johnmichel/Library-Detector-for-Chrome/pull/143',\n        npm: null,\n        test: function (win) {\n            if (win.WIZ_global_data) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Wiz': {\n        id: 'wiz',\n        icon: 'icon38',\n        url: 'https://github.com/johnmichel/Library-Detector-for-Chrome/pull/147',\n        npm: null,\n        test: function (win) {\n            if (document.__wizdispatcher) {\n                return { version: UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'core-js': {\n        id: 'corejs',\n        icon: 'icon38',\n        url: 'https://github.com/zloirock/core-js',\n        npm: 'core-js',\n        test: function (win) {\n            const shared = win['__core-js_shared__'];\n            const core = win.core;\n            if (shared) {\n                const versions = shared.versions;\n                return { version: Array.isArray(versions) ? versions.map(it => `${ it.version }: ${ it.mode }`).join(', ') : UNKNOWN_VERSION };\n            } else if (core) {\n                return { version: core.version || UNKNOWN_VERSION };\n            }\n            return false;\n        }\n    },\n    'Create React App': {\n        id: 'create-react-app',\n        icon: 'cra',\n        url: 'https://create-react-app.dev/',\n        npm: 'react-scripts',\n        test: async function (win) {\n            // CRA does not have any explicit markers\n            // This requests for an asset-manifest.json file that exists for mostly all v2 and v3 CRA apps\n            try {\n                const response = await fetch('/asset-manifest.json');\n                const manifest = await response.json();\n\n                const hasFilesEntrypoints = manifest.files || manifest.entrypoints;\n                const containsMainBundle = manifest['main.js'] || (manifest.files && manifest.files['main.js']);\n\n                if (hasFilesEntrypoints || containsMainBundle) {\n                    return { version: UNKNOWN_VERSION };\n                }\n            \n                return false;\n            }\n            catch (err) {\n                return false;\n            }\n        }\n    }\n};\n";
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35289-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35412-const stackPackToIncl=stackPacksToInclude.find(stackPackToIncl=>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:35413:stackPackToIncl.requiredStacks.includes(`${pageStack.detector}:${pageStack.id}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35414-if(!stackPackToIncl){
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35421-log.warn('StackPacks',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:35422:`'${stackPackToIncl.packId}' stack pack was matched but is not found in stack-packs lib`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35423-continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35874-throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:35875:`Fatal trace logic error - ${taskEndEventsReverseQueue.length} unmatched end events`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-35876-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-36904-fmpFellBack=true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:36905:log.verbose('trace-of-tab',`No firstMeaningfulPaint found, falling back to last ${fmpCand}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-36906-const lastCandidate=frameEvents.filter(e=>e.name===fmpCand).pop();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37132-if(ts===undefined){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37133:log.error('pwmetrics-events',`${metric.name} timestamp not found`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37134-return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37176-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37177:id:`0x${(Math.random()*1000000|0).toString(16)}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37178-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37212-if(!metric.ts){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37213:log.error('pwmetrics-events',`(${metric.name}) missing timestamp. Skipping…`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37214-return;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37215-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37216:log.verbose('pwmetrics-events',`Sythesizing trace events for ${metric.name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37217-fakeEvents.push(...this.synthesizeEventPair(metric,navigationStartEvt));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37273-const kbs=this._numberFormatter.format(Math.round(size/1024/granularity)*granularity);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37274:return`${kbs}${NBSP2}KB`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37275-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37283-const coarseTime=Math.round(ms/granularity)*granularity;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37284:return`${this._numberFormatter.format(coarseTime)}${NBSP2}ms`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37285-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37293-const coarseTime=Math.round(ms/1000/granularity)*granularity;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37294:return`${this._numberFormatter.format(coarseTime)}${NBSP2}s`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37295-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37343-timeInSeconds-=numberOfUnits*unit;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37344:parts.push(`${numberOfUnits}\xa0${label}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37345-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37406-static get MS_DISPLAY_VALUE(){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37407:return`%10d${NBSP}ms`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37408-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37622-if(preserveHost){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37623:name=`${parsedUrl.host}/${name.replace(/^\//,'')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37624-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37625-if(preserveQuery){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37626:name=`${name}${parsedUrl.search}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37627-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37631-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37632:name=name.replace(/([a-f0-9]{7})[a-f0-9]{13}[a-f0-9]*/g,`$1${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37633-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37634-name=name.replace(/([a-zA-Z0-9-_]{9})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9-_]{10,}/g,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37635:`$1${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37636-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37637:name=name.replace(/(\d{3})\d{6,}/g,`$1${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37638-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37643-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37644:name=name.replace(/\?([^=]*)(=)?.*/,`?$1$2${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37645-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37647-if(name.length>MAX_LENGTH){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37648:name=name.replace(/\?.*/,`?${ELLIPSIS}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37649-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37657-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37658:`${ELLIPSIS}${name.slice(dotIndex)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37659-}else{
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37702-if(!listOfTlds.includes(tlds[0])){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37703:return`.${tlds[tlds.length-1]}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37704-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37705-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37706:return`.${tlds.join('.')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37707-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37765-const{cpuSlowdownMultiplier,requestLatencyMs}=throttling;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37766:cpuThrottling=`${Util.i18n.formatNumber(cpuSlowdownMultiplier)}x slowdown (DevTools)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37767:networkThrottling=`${Util.i18n.formatNumber(requestLatencyMs)}${NBSP}ms HTTP RTT, `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37768:`${Util.i18n.formatNumber(throttling.downloadThroughputKbps)}${NBSP}Kbps down, `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37769:`${Util.i18n.formatNumber(throttling.uploadThroughputKbps)}${NBSP}Kbps up (DevTools)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37770-break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37773-const{cpuSlowdownMultiplier,rttMs,throughputKbps}=throttling;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37774:cpuThrottling=`${Util.i18n.formatNumber(cpuSlowdownMultiplier)}x slowdown (Simulated)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37775:networkThrottling=`${Util.i18n.formatNumber(rttMs)}${NBSP}ms TCP RTT, `+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:37776:`${Util.i18n.formatNumber(throughputKbps)}${NBSP}Kbps throughput (Simulated)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-37777-break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38037-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38038:const escape=value=>`"${value.replace(/"/g,'""')}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38039-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38370-const status={
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38371:msg:`Auditing: ${i18n.getFormatted(audit.meta.title,'en-US')}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38372:id:`lh:audit:${audit.meta.id}`};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38373-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38389-log.warn('Runner',
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38390:`${artifactName} gatherer, required by audit ${audit.meta.id}, did not run.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38391-throw new LHError(LHError.errors.MISSING_REQUIRED_ARTIFACT,{artifactName});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38404-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38405:log.warn('Runner',`${artifactName} gatherer, required by audit ${audit.meta.id},`+
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38406:` encountered an error: ${artifactError.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38407-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38442-if(err.code!=='MISSING_REQUIRED_ARTIFACT'&&err.code!=='ERRORED_REQUIRED_ARTIFACT'){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38443:log.warn(audit.meta.id,`Caught exception: ${err.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38444-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38497-...["accessibility","apple-touch-icon.js","audit.js","bootup-time.js","byte-efficiency","content-width.js","critical-request-chains.js","deprecations.js","diagnostics.js","dobetterweb","errors-in-console.js","final-screenshot.js","font-display.js","image-aspect-ratio.js","image-size-responsive.js","installable-manifest.js","is-on-https.js","largest-contentful-paint-element.js","layout-shift-elements.js","legacy-javascript.js","load-fast-enough-for-pwa.js","main-thread-tasks.js","mainthread-work-breakdown.js","manual","maskable-icon.js","metrics","metrics.js","multi-check-audit.js","network-requests.js","network-rtt.js","network-server-latency.js","offline-start-url.js","performance-budget.js","predictive-perf.js","redirects-http.js","redirects.js","resource-summary.js","screenshot-thumbnails.js","seo","server-response-time.js","service-worker.js","splash-screen.js","themed-omnibox.js","third-party-summary.js","timing-budget.js","user-timings.js","uses-rel-preconnect.js","uses-rel-preload.js","viewport.js","violation-audit.js","without-javascript.js","works-offline.js"],
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38498:...["appcache-manifest.js","charset.js","doctype.js","dom-size.js","external-anchors-use-rel-noopener.js","geolocation-on-start.js","js-libraries.js","no-document-write.js","no-vulnerable-libraries.js","notification-on-start.js","password-inputs-can-be-pasted-into.js","uses-http2.js","uses-passive-event-listeners.js"].map(f=>`dobetterweb/${f}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38499:...["cumulative-layout-shift.js","estimated-input-latency.js","first-contentful-paint-3g.js","first-contentful-paint.js","first-cpu-idle.js","first-meaningful-paint.js","interactive.js","largest-contentful-paint.js","max-potential-fid.js","speed-index.js","total-blocking-time.js"].map(f=>`metrics/${f}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38500:...["canonical.js","font-size.js","hreflang.js","http-status-code.js","is-crawlable.js","link-text.js","manual","meta-description.js","plugins.js","robots-txt.js","tap-targets.js"].map(f=>`seo/${f}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38501:...["structured-data.js"].map(f=>`seo/manual/${f}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38502-...["accesskeys.js","aria-allowed-attr.js","aria-hidden-body.js","aria-hidden-focus.js","aria-input-field-name.js","aria-required-attr.js","aria-required-children.js","aria-required-parent.js","aria-roles.js","aria-toggle-field-name.js","aria-valid-attr-value.js","aria-valid-attr.js","axe-audit.js","button-name.js","bypass.js","color-contrast.js","definition-list.js","dlitem.js","document-title.js","duplicate-id-active.js","duplicate-id-aria.js","form-field-multiple-labels.js","frame-title.js","heading-order.js","html-has-lang.js","html-lang-valid.js","image-alt.js","input-image-alt.js","label.js","layout-table.js","link-name.js","list.js","listitem.js","manual","meta-refresh.js","meta-viewport.js","object-alt.js","tabindex.js","td-headers-attr.js","th-has-data-cells.js","valid-lang.js","video-caption.js","video-description.js"].
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38503:map(f=>`accessibility/${f}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38504-...["custom-controls-labels.js","custom-controls-roles.js","focus-traps.js","focusable-controls.js","interactive-element-affordance.js","logical-tab-order.js","managed-focus.js","offscreen-content-hidden.js","use-landmarks.js","visual-order-follows-dom.js"].
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38505:map(f=>`accessibility/manual/${f}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38506-...["byte-efficiency-audit.js","duplicated-javascript.js","efficient-animated-content.js","offscreen-images.js","render-blocking-resources.js","total-byte-weight.js","unminified-css.js","unminified-javascript.js","unused-css-rules.js","unused-javascript.js","uses-long-cache-ttl.js","uses-optimized-images.js","uses-responsive-images.js","uses-text-compression.js","uses-webp-images.js"].
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38507:map(f=>`byte-efficiency/${f}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38508:...["manual-audit.js","pwa-cross-browser.js","pwa-each-page-has-url.js","pwa-page-transitions.js"].map(f=>`manual/${f}`)];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38509-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38521-...["accessibility.js","anchor-elements.js","cache-contents.js","console-messages.js","css-usage.js","dobetterweb","gatherer.js","html-without-javascript.js","http-redirect.js","iframe-elements.js","image-elements.js","js-usage.js","link-elements.js","main-document-content.js","meta-elements.js","offline.js","runtime-exceptions.js","script-elements.js","seo","service-worker.js","source-maps.js","start-url.js","trace-elements.js","viewport-dimensions.js"],
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38522:...["embedded-content.js","font-size.js","robots-txt.js","tap-targets.js"].map(f=>`seo/${f}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38523-...["appcache.js","doctype.js","domstats.js","optimized-images.js","password-inputs-with-prevented-paste.js","response-compression.js","tags-blocking-first-paint.js"].
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38524:map(f=>`dobetterweb/${f}`)];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38525-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38746-if(this.maxAge){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38747:tokens.push(`${STRINGS.maxAge}=${this.maxAge}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38748-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38750-if(this.sharedMaxAge){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38751:tokens.push(`${STRINGS.sharedMaxAge}=${this.sharedMaxAge}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38752-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38755-if(this.maxStaleDuration){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38756:tokens.push(`${STRINGS.maxStale}=${this.maxStaleDuration}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38757-}else{
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38762-if(this.minFresh){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:38763:tokens.push(`${STRINGS.minFresh}=${this.minFresh}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-38764-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57037-JSON.stringify(data.params).substr(0,maxLength):'';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:57038:Log._logToStdErr(`${prefix}:${level||''}`,[method,snippet]);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57039-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57064-Log.events.issueWarning(title,args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:57065:return Log._logToStdErr(`${title}:warn`,args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57066-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57068-static error(title,...args){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:57069:return Log._logToStdErr(`${title}:error`,args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57070-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57073-Log.events.issueStatus(title,args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:57074:return Log._logToStdErr(`${title}:verbose`,args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57075-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57082-static greenify(str){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:57083:return`${Log.green}${str}${Log.reset}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57084-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57091-static redify(str){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:57092:return`${Log.red}${str}${Log.reset}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-57093-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-71409-if(!Object.keys(Include).some(key=>Include[key]===include)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:71410:throw new Error(`Unrecognized include option: ${include}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-71411-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-72141-if(DOMAIN_CHARACTERS.test(originOrURL))return originOrURL.match(DOMAIN_CHARACTERS)[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:72142:throw new Error(`Unable to find domain in "${originOrURL}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-72143-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-72175-const duplicate=entityByDomain.get(domain);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:72176:throw new Error(`Duplicate domain ${domain} (${entity.name} and ${duplicate.name})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-72177-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-74004-for(const e of traceEvents){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:74005:if(e.name==`${eventName}EventStart`){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-74006-openInterval={start:e.ts,end:Infinity,eventName};
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:74007:}else if(e.name==`${eventName}EventEnd`){
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-74008-openInterval.end=e.ts;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-75628-audits:[
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75629:{path:`${PLUGIN_PATH}/audits/ad-blocking-tasks`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75630:{path:`${PLUGIN_PATH}/audits/ad-render-blocking-resources`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75631:{path:`${PLUGIN_PATH}/audits/ad-request-critical-path`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75632:{path:`${PLUGIN_PATH}/audits/bid-request-from-page-start`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75633:{path:`${PLUGIN_PATH}/audits/ad-request-from-page-start`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75634:{path:`${PLUGIN_PATH}/audits/ad-top-of-viewport`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75635:{path:`${PLUGIN_PATH}/audits/ads-in-viewport`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75636:{path:`${PLUGIN_PATH}/audits/async-ad-tags`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75637:{path:`${PLUGIN_PATH}/audits/blocking-load-events`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75638:{path:`${PLUGIN_PATH}/audits/bottleneck-requests`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75639:{path:`${PLUGIN_PATH}/audits/duplicate-tags`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75640:{path:`${PLUGIN_PATH}/audits/first-ad-render`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75641:{path:`${PLUGIN_PATH}/audits/full-width-slots`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75642:{path:`${PLUGIN_PATH}/audits/gpt-bids-parallel`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75643:{path:`${PLUGIN_PATH}/audits/loads-gpt-from-sgdn`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75644:{path:`${PLUGIN_PATH}/audits/loads-ad-tag-over-https`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75645:{path:`${PLUGIN_PATH}/audits/script-injected-tags`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75646:{path:`${PLUGIN_PATH}/audits/serial-header-bidding`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75647:{path:`${PLUGIN_PATH}/audits/tag-load-time`},
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js:75648:{path:`${PLUGIN_PATH}/audits/viewport-ad-density`}],
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lighthouse/lighthouse-dt-bundle.js-75649-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/shady-render.ts-39-const getTemplateCacheKey = (type: string, scopeName: string) =>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/shady-render.ts:40:    `${type}--${scopeName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/shady-render.ts-41-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template.ts-24- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template.ts:25:export const marker = `{{lit-${String(Math.random()).slice(2)}}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template.ts-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template.ts-30- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template.ts:31:export const nodeMarker = `<!--${marker}-->`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template.ts-32-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template.ts:33:export const markerRegex = new RegExp(`${marker}|${nodeMarker}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template.ts-34-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/parts.ts-287-    // of TemplateResults that will be commonly returned from expressions like:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/parts.ts:288:    // array.map((i) => html`${i}`), by reusing existing TemplateInstances.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/parts.ts-289-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/directive.ts-45- * ```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/directive.ts:46: * html`<ul><${repeat(items, (item) => html`<li>${item}</li>`)}</ul>`
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/directive.ts-47- * ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template-result.ts-22-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template-result.ts:23:const commentMarker = ` ${marker} `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template-result.ts-24-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template-result.ts-116-  getHTML(): string {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template-result.ts:117:    return `<svg>${super.getHTML()}</svg>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/lib/template-result.ts-118-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/directives/guard.ts-42- *   <div>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/directives/guard.ts:43: *     ${guard([immutableItems], () => immutableItems.map(i => html`${i}`))}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/directives/guard.ts-44- *   </div>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/directives/until.ts-48- *     const content = fetch('./content.txt').then(r => r.text());
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/directives/until.ts:49: *     html`${until(content, html`<span>Loading...</span>`)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/src/directives/until.ts-50- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/README.md-23-// This is a lit-html template function. It returns a lit-html template.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/README.md:24:const helloTemplate = (name) => html`<div>Hello ${name}!</div>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/README.md-25-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/directive.d.ts-37- * ```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/directive.d.ts:38: * html`<ul><${repeat(items, (item) => html`<li>${item}</li>`)}</ul>`
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/directive.d.ts-39- * ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template.js-17- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template.js:18:export const marker = `{{lit-${String(Math.random()).slice(2)}}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template.js-19-/**
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template.js-22- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template.js:23:export const nodeMarker = `<!--${marker}-->`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template.js:24:export const markerRegex = new RegExp(`${marker}|${nodeMarker}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template.js-25-/**
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/shady-render.js-32-// Get a key to lookup in `templateCaches`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/shady-render.js:33:const getTemplateCacheKey = (type, scopeName) => `${type}--${scopeName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/shady-render.js-34-let compatibleShadyCSSVersion = true;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/directive.js-32- * ```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/directive.js:33: * html`<ul><${repeat(items, (item) => html`<li>${item}</li>`)}</ul>`
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/directive.js-34- * ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/parts.js.map:1:{"version":3,"file":"parts.js","sourceRoot":"","sources":["../src/lib/parts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAO,MAAM,WAAW,CAAC;AAElD,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAI3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE;IAChE,OAAO,CACH,KAAK,KAAK,IAAI;QACd,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAA8B,EAAE;IACvE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACvB,kCAAkC;QAClC,CAAC,CAAC,CAAC,KAAK,IAAK,KAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IAO7B,YAAY,OAAgB,EAAE,IAAY,EAAE,OAA8B;QAF1E,UAAK,GAAG,IAAI,CAAC;QAGX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAyB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;SACzD;IACH,CAAC;IAED;;OAEG;IACO,WAAW;QACnB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAES,SAAS;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBACrB,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;oBACpC,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAC/C;qBAAM;oBACL,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;wBACjB,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;qBAC/C;iBACF;aACF;SACF;QAED,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAY,CAAC,CAAC;SAClE;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAIxB,YAAY,SAA6B;QAFzC,UAAK,GAAY,SAAS,CAAC;QAGzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,KAAc;QACrB,IAAI,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;YACvE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,uEAAuE;YACvE,kEAAkE;YAClE,oCAAoC;YACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;aAC7B;SACF;IACH,CAAC;IAED,MAAM;QACJ,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,CAAC;SACjB;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO;SACR;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,QAAQ;IAOnB,YAAY,OAAsB;QAHlC,UAAK,GAAY,SAAS,CAAC;QACnB,mBAAc,GAAY,SAAS,CAAC;QAG1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,SAAe;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,GAAS;QACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,WAAY,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,IAAc;QAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,GAAa;QAC3B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;YACtC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,CAAC;SACjB;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QAClC,IAAI,KAAK,KAAK,QAAQ,EAAE;YACtB,OAAO;SACR;QACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;gBACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;aAAM,IAAI,KAAK,YAAY,cAAc,EAAE;YAC1C,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SACpC;aAAM,IAAI,KAAK,YAAY,IAAI,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC1B;aAAM,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM,IAAI,KAAK,KAAK,OAAO,EAAE;YAC5B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;YACrB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;aAAM;YACL,kDAAkD;YAClD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC1B;IACH,CAAC;IAEO,QAAQ,CAAC,IAAU;QACzB,IAAI,CAAC,OAAO,CAAC,UAAW,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEO,YAAY,CAAC,KAAW;QAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACxB,OAAO;SACR;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,YAAY,CAAC,KAAc;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAY,CAAC;QACzC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACnC,2EAA2E;QAC3E,yDAAyD;QACzD,MAAM,aAAa,GACf,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,eAAe;YACrC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,oBAAoB,EAAE;YAC5C,sEAAsE;YACtE,2CAA2C;YAC3C,qEAAqE;YACpE,IAAa,CAAC,IAAI,GAAG,aAAa,CAAC;SACrC;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;SAC3D;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,sBAAsB,CAAC,KAAqB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,KAAK,YAAY,gBAAgB;YACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACjC;aAAM;YACL,wEAAwE;YACxE,uEAAuE;YACvE,mEAAmE;YACnE,6BAA6B;YAC7B,MAAM,QAAQ,GACV,IAAI,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;SACvB;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAwB;QAC/C,uEAAuE;QACvE,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,uEAAuE;QAEvE,4DAA4D;QAC5D,mEAAmE;QACnE,oEAAoE;QACpE,uBAAuB;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QAED,2EAA2E;QAC3E,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAmB,CAAC;QAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAA4B,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,gCAAgC;YAChC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YAEhC,wCAAwC;YACxC,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,IAAI,SAAS,KAAK,CAAC,EAAE;oBACnB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;iBAC/B;qBAAM;oBACL,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;iBACpD;aACF;YACD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxB,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,SAAS,EAAE,CAAC;SACb;QAED,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE;YAChC,gEAAgE;YAChE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC1C;IACH,CAAC;IAED,KAAK,CAAC,YAAkB,IAAI,CAAC,SAAS;QACpC,WAAW,CACP,IAAI,CAAC,SAAS,CAAC,UAAW,EAAE,SAAS,CAAC,WAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,oBAAoB;IAO/B,YAAY,OAAgB,EAAE,IAAY,EAAE,OAA8B;QAH1E,UAAK,GAAY,SAAS,CAAC;QACnB,mBAAc,GAAY,SAAS,CAAC;QAG1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAClE,MAAM,IAAI,KAAK,CACX,yDAAyD,CAAC,CAAC;SAChE;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;YACtC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,CAAC;SACjB;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YACpC,OAAO;SACR;QACD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QACpC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;YACxB,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;aAC1C;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzC;YACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;QACD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;IACjC,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAkB,SAAQ,kBAAkB;IAGvD,YAAY,OAAgB,EAAE,IAAY,EAAE,OAA8B;QACxE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM;YACP,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAES,WAAW;QACnB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAES,SAAS;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAC5B;QACD,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,kCAAkC;YACjC,IAAI,CAAC,OAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;SACrD;IACH,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,aAAa;CAAG;AAElD,2EAA2E;AAC3E,8EAA8E;AAC9E,4EAA4E;AAC5E,uDAAuD;AACvD,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAElC,IAAI;IACF,MAAM,OAAO,GAAG;QACd,IAAI,OAAO;YACT,qBAAqB,GAAG,IAAI,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;IACF,kCAAkC;IAClC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAc,EAAE,OAAO,CAAC,CAAC;IACzD,kCAAkC;IAClC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAc,EAAE,OAAO,CAAC,CAAC;CAC7D;AAAC,OAAO,EAAE,EAAE;CACZ;AAKD,MAAM,OAAO,SAAS;IASpB,YAAY,OAAgB,EAAE,SAAiB,EAAE,YAA0B;QAL3E,UAAK,GAAsC,SAAS,CAAC;QAE7C,mBAAc,GAAsC,SAAS,CAAC;QAIpE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,QAAQ,CAAC,KAAwC;QAC/C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;YACtC,IAAI,CAAC,cAAc,GAAG,QAAmC,CAAC;YAC1D,SAAS,CAAC,IAAI,CAAC,CAAC;SACjB;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YACpC,OAAO;SACR;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,MAAM,oBAAoB,GAAG,WAAW,IAAI,IAAI;YAC5C,WAAW,IAAI,IAAI;gBACf,CAAC,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO;oBAC3C,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;oBACrC,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,iBAAiB,GACnB,WAAW,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,oBAAoB,CAAC,CAAC;QAEzE,IAAI,oBAAoB,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAC5B,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9D;QACD,IAAI,iBAAiB,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACzB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9D;QACD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,QAAmC,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3D;aAAM;YACJ,IAAI,CAAC,KAA6B,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACxD;IACH,CAAC;CACF;AAED,gFAAgF;AAChF,8EAA8E;AAC9E,uEAAuE;AACvE,MAAM,UAAU,GAAG,CAAC,CAAoC,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC,qBAAqB,CAAC,CAAC;QACnB,EAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC;QACxD,CAAC,CAAC,OAAkC,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {isDirective} from './directive.js';\nimport {removeNodes} from './dom.js';\nimport {noChange, nothing, Part} from './part.js';\nimport {RenderOptions} from './render-options.js';\nimport {TemplateInstance} from './template-instance.js';\nimport {TemplateResult} from './template-result.js';\nimport {createMarker} from './template.js';\n\n// https://tc39.github.io/ecma262/#sec-typeof-operator\nexport type Primitive = null|undefined|boolean|number|string|Symbol|bigint;\nexport const isPrimitive = (value: unknown): value is Primitive => {\n  return (\n      value === null ||\n      !(typeof value === 'object' || typeof value === 'function'));\n};\nexport const isIterable = (value: unknown): value is Iterable<unknown> => {\n  return Array.isArray(value) ||\n      // tslint:disable-next-line:no-any\n      !!(value && (value as any)[Symbol.iterator]);\n};\n\n/**\n * Writes attribute values to the DOM for a group of AttributeParts bound to a\n * single attibute. The value is only set once even if there are multiple parts\n * for an attribute.\n */\nexport class AttributeCommitter {\n  readonly element: Element;\n  readonly name: string;\n  readonly strings: ReadonlyArray<string>;\n  readonly parts: ReadonlyArray<AttributePart>;\n  dirty = true;\n\n  constructor(element: Element, name: string, strings: ReadonlyArray<string>) {\n    this.element = element;\n    this.name = name;\n    this.strings = strings;\n    this.parts = [];\n    for (let i = 0; i < strings.length - 1; i++) {\n      (this.parts as AttributePart[])[i] = this._createPart();\n    }\n  }\n\n  /**\n   * Creates a single part. Override this to create a differnt type of part.\n   */\n  protected _createPart(): AttributePart {\n    return new AttributePart(this);\n  }\n\n  protected _getValue(): unknown {\n    const strings = this.strings;\n    const l = strings.length - 1;\n    let text = '';\n\n    for (let i = 0; i < l; i++) {\n      text += strings[i];\n      const part = this.parts[i];\n      if (part !== undefined) {\n        const v = part.value;\n        if (isPrimitive(v) || !isIterable(v)) {\n          text += typeof v === 'string' ? v : String(v);\n        } else {\n          for (const t of v) {\n            text += typeof t === 'string' ? t : String(t);\n          }\n        }\n      }\n    }\n\n    text += strings[l];\n    return text;\n  }\n\n  commit(): void {\n    if (this.dirty) {\n      this.dirty = false;\n      this.element.setAttribute(this.name, this._getValue() as string);\n    }\n  }\n}\n\n/**\n * A Part that controls all or part of an attribute value.\n */\nexport class AttributePart implements Part {\n  readonly committer: AttributeCommitter;\n  value: unknown = undefined;\n\n  constructor(committer: AttributeCommitter) {\n    this.committer = committer;\n  }\n\n  setValue(value: unknown): void {\n    if (value !== noChange && (!isPrimitive(value) || value !== this.value)) {\n      this.value = value;\n      // If the value is a not a directive, dirty the committer so that it'll\n      // call setAttribute. If the value is a directive, it'll dirty the\n      // committer if it calls setValue().\n      if (!isDirective(value)) {\n        this.committer.dirty = true;\n      }\n    }\n  }\n\n  commit() {\n    while (isDirective(this.value)) {\n      const directive = this.value;\n      this.value = noChange;\n      directive(this);\n    }\n    if (this.value === noChange) {\n      return;\n    }\n    this.committer.commit();\n  }\n}\n\n/**\n * A Part that controls a location within a Node tree. Like a Range, NodePart\n * has start and end locations and can set and update the Nodes between those\n * locations.\n *\n * NodeParts support several value types: primitives, Nodes, TemplateResults,\n * as well as arrays and iterables of those types.\n */\nexport class NodePart implements Part {\n  readonly options: RenderOptions;\n  startNode!: Node;\n  endNode!: Node;\n  value: unknown = undefined;\n  private __pendingValue: unknown = undefined;\n\n  constructor(options: RenderOptions) {\n    this.options = options;\n  }\n\n  /**\n   * Appends this part into a container.\n   *\n   * This part must be empty, as its contents are not automatically moved.\n   */\n  appendInto(container: Node) {\n    this.startNode = container.appendChild(createMarker());\n    this.endNode = container.appendChild(createMarker());\n  }\n\n  /**\n   * Inserts this part after the `ref` node (between `ref` and `ref`'s next\n   * sibling). Both `ref` and its next sibling must be static, unchanging nodes\n   * such as those that appear in a literal section of a template.\n   *\n   * This part must be empty, as its contents are not automatically moved.\n   */\n  insertAfterNode(ref: Node) {\n    this.startNode = ref;\n    this.endNode = ref.nextSibling!;\n  }\n\n  /**\n   * Appends this part into a parent part.\n   *\n   * This part must be empty, as its contents are not automatically moved.\n   */\n  appendIntoPart(part: NodePart) {\n    part.__insert(this.startNode = createMarker());\n    part.__insert(this.endNode = createMarker());\n  }\n\n  /**\n   * Inserts this part after the `ref` part.\n   *\n   * This part must be empty, as its contents are not automatically moved.\n   */\n  insertAfterPart(ref: NodePart) {\n    ref.__insert(this.startNode = createMarker());\n    this.endNode = ref.endNode;\n    ref.endNode = this.startNode;\n  }\n\n  setValue(value: unknown): void {\n    this.__pendingValue = value;\n  }\n\n  commit() {\n    while (isDirective(this.__pendingValue)) {\n      const directive = this.__pendingValue;\n      this.__pendingValue = noChange;\n      directive(this);\n    }\n    const value = this.__pendingValue;\n    if (value === noChange) {\n      return;\n    }\n    if (isPrimitive(value)) {\n      if (value !== this.value) {\n        this.__commitText(value);\n      }\n    } else if (value instanceof TemplateResult) {\n      this.__commitTemplateResult(value);\n    } else if (value instanceof Node) {\n      this.__commitNode(value);\n    } else if (isIterable(value)) {\n      this.__commitIterable(value);\n    } else if (value === nothing) {\n      this.value = nothing;\n      this.clear();\n    } else {\n      // Fallback, will render the string representation\n      this.__commitText(value);\n    }\n  }\n\n  private __insert(node: Node) {\n    this.endNode.parentNode!.insertBefore(node, this.endNode);\n  }\n\n  private __commitNode(value: Node): void {\n    if (this.value === value) {\n      return;\n    }\n    this.clear();\n    this.__insert(value);\n    this.value = value;\n  }\n\n  private __commitText(value: unknown): void {\n    const node = this.startNode.nextSibling!;\n    value = value == null ? '' : value;\n    // If `value` isn't already a string, we explicitly convert it here in case\n    // it can't be implicitly converted - i.e. it's a symbol.\n    const valueAsString: string =\n        typeof value === 'string' ? value : String(value);\n    if (node === this.endNode.previousSibling &&\n        node.nodeType === 3 /* Node.TEXT_NODE */) {\n      // If we only have a single text node between the markers, we can just\n      // set its value, rather than replacing it.\n      // TODO(justinfagnani): Can we just check if this.value is primitive?\n      (node as Text).data = valueAsString;\n    } else {\n      this.__commitNode(document.createTextNode(valueAsString));\n    }\n    this.value = value;\n  }\n\n  private __commitTemplateResult(value: TemplateResult): void {\n    const template = this.options.templateFactory(value);\n    if (this.value instanceof TemplateInstance &&\n        this.value.template === template) {\n      this.value.update(value.values);\n    } else {\n      // Make sure we propagate the template processor from the TemplateResult\n      // so that we use its syntax extension, etc. The template factory comes\n      // from the render function options so that it can control template\n      // caching and preprocessing.\n      const instance =\n          new TemplateInstance(template, value.processor, this.options);\n      const fragment = instance._clone();\n      instance.update(value.values);\n      this.__commitNode(fragment);\n      this.value = instance;\n    }\n  }\n\n  private __commitIterable(value: Iterable<unknown>): void {\n    // For an Iterable, we create a new InstancePart per item, then set its\n    // value to the item. This is a little bit of overhead for every item in\n    // an Iterable, but it lets us recurse easily and efficiently update Arrays\n    // of TemplateResults that will be commonly returned from expressions like:\n    // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n\n    // If _value is an array, then the previous render was of an\n    // iterable and _value will contain the NodeParts from the previous\n    // render. If _value is not an array, clear this part and make a new\n    // array for NodeParts.\n    if (!Array.isArray(this.value)) {\n      this.value = [];\n      this.clear();\n    }\n\n    // Lets us keep track of how many items we stamped so we can clear leftover\n    // items from a previous render\n    const itemParts = this.value as NodePart[];\n    let partIndex = 0;\n    let itemPart: NodePart|undefined;\n\n    for (const item of value) {\n      // Try to reuse an existing part\n      itemPart = itemParts[partIndex];\n\n      // If no existing part, create a new one\n      if (itemPart === undefined) {\n        itemPart = new NodePart(this.options);\n        itemParts.push(itemPart);\n        if (partIndex === 0) {\n          itemPart.appendIntoPart(this);\n        } else {\n          itemPart.insertAfterPart(itemParts[partIndex - 1]);\n        }\n      }\n      itemPart.setValue(item);\n      itemPart.commit();\n      partIndex++;\n    }\n\n    if (partIndex < itemParts.length) {\n      // Truncate the parts array so _value reflects the current state\n      itemParts.length = partIndex;\n      this.clear(itemPart && itemPart.endNode);\n    }\n  }\n\n  clear(startNode: Node = this.startNode) {\n    removeNodes(\n        this.startNode.parentNode!, startNode.nextSibling!, this.endNode);\n  }\n}\n\n/**\n * Implements a boolean attribute, roughly as defined in the HTML\n * specification.\n *\n * If the value is truthy, then the attribute is present with a value of\n * ''. If the value is falsey, the attribute is removed.\n */\nexport class BooleanAttributePart implements Part {\n  readonly element: Element;\n  readonly name: string;\n  readonly strings: ReadonlyArray<string>;\n  value: unknown = undefined;\n  private __pendingValue: unknown = undefined;\n\n  constructor(element: Element, name: string, strings: ReadonlyArray<string>) {\n    if (strings.length !== 2 || strings[0] !== '' || strings[1] !== '') {\n      throw new Error(\n          'Boolean attributes can only contain a single expression');\n    }\n    this.element = element;\n    this.name = name;\n    this.strings = strings;\n  }\n\n  setValue(value: unknown): void {\n    this.__pendingValue = value;\n  }\n\n  commit() {\n    while (isDirective(this.__pendingValue)) {\n      const directive = this.__pendingValue;\n      this.__pendingValue = noChange;\n      directive(this);\n    }\n    if (this.__pendingValue === noChange) {\n      return;\n    }\n    const value = !!this.__pendingValue;\n    if (this.value !== value) {\n      if (value) {\n        this.element.setAttribute(this.name, '');\n      } else {\n        this.element.removeAttribute(this.name);\n      }\n      this.value = value;\n    }\n    this.__pendingValue = noChange;\n  }\n}\n\n/**\n * Sets attribute values for PropertyParts, so that the value is only set once\n * even if there are multiple parts for a property.\n *\n * If an expression controls the whole property value, then the value is simply\n * assigned to the property under control. If there are string literals or\n * multiple expressions, then the strings are expressions are interpolated into\n * a string first.\n */\nexport class PropertyCommitter extends AttributeCommitter {\n  readonly single: boolean;\n\n  constructor(element: Element, name: string, strings: ReadonlyArray<string>) {\n    super(element, name, strings);\n    this.single =\n        (strings.length === 2 && strings[0] === '' && strings[1] === '');\n  }\n\n  protected _createPart(): PropertyPart {\n    return new PropertyPart(this);\n  }\n\n  protected _getValue() {\n    if (this.single) {\n      return this.parts[0].value;\n    }\n    return super._getValue();\n  }\n\n  commit(): void {\n    if (this.dirty) {\n      this.dirty = false;\n      // tslint:disable-next-line:no-any\n      (this.element as any)[this.name] = this._getValue();\n    }\n  }\n}\n\nexport class PropertyPart extends AttributePart {}\n\n// Detect event listener options support. If the `capture` property is read\n// from the options object, then options are supported. If not, then the thrid\n// argument to add/removeEventListener is interpreted as the boolean capture\n// value so we should only pass the `capture` property.\nlet eventOptionsSupported = false;\n\ntry {\n  const options = {\n    get capture() {\n      eventOptionsSupported = true;\n      return false;\n    }\n  };\n  // tslint:disable-next-line:no-any\n  window.addEventListener('test', options as any, options);\n  // tslint:disable-next-line:no-any\n  window.removeEventListener('test', options as any, options);\n} catch (_e) {\n}\n\n\ntype EventHandlerWithOptions =\n    EventListenerOrEventListenerObject&Partial<AddEventListenerOptions>;\nexport class EventPart implements Part {\n  readonly element: Element;\n  readonly eventName: string;\n  readonly eventContext?: EventTarget;\n  value: undefined|EventHandlerWithOptions = undefined;\n  private __options?: AddEventListenerOptions;\n  private __pendingValue: undefined|EventHandlerWithOptions = undefined;\n  private readonly __boundHandleEvent: (event: Event) => void;\n\n  constructor(element: Element, eventName: string, eventContext?: EventTarget) {\n    this.element = element;\n    this.eventName = eventName;\n    this.eventContext = eventContext;\n    this.__boundHandleEvent = (e) => this.handleEvent(e);\n  }\n\n  setValue(value: undefined|EventHandlerWithOptions): void {\n    this.__pendingValue = value;\n  }\n\n  commit() {\n    while (isDirective(this.__pendingValue)) {\n      const directive = this.__pendingValue;\n      this.__pendingValue = noChange as EventHandlerWithOptions;\n      directive(this);\n    }\n    if (this.__pendingValue === noChange) {\n      return;\n    }\n\n    const newListener = this.__pendingValue;\n    const oldListener = this.value;\n    const shouldRemoveListener = newListener == null ||\n        oldListener != null &&\n            (newListener.capture !== oldListener.capture ||\n             newListener.once !== oldListener.once ||\n             newListener.passive !== oldListener.passive);\n    const shouldAddListener =\n        newListener != null && (oldListener == null || shouldRemoveListener);\n\n    if (shouldRemoveListener) {\n      this.element.removeEventListener(\n          this.eventName, this.__boundHandleEvent, this.__options);\n    }\n    if (shouldAddListener) {\n      this.__options = getOptions(newListener);\n      this.element.addEventListener(\n          this.eventName, this.__boundHandleEvent, this.__options);\n    }\n    this.value = newListener;\n    this.__pendingValue = noChange as EventHandlerWithOptions;\n  }\n\n  handleEvent(event: Event) {\n    if (typeof this.value === 'function') {\n      this.value.call(this.eventContext || this.element, event);\n    } else {\n      (this.value as EventListenerObject).handleEvent(event);\n    }\n  }\n}\n\n// We copy options because of the inconsistent behavior of browsers when reading\n// the third argument of add/removeEventListener. IE11 doesn't support options\n// at all. Chrome 41 only reads `capture` if the argument is an object.\nconst getOptions = (o: AddEventListenerOptions|undefined) => o &&\n    (eventOptionsSupported ?\n         {capture: o.capture, passive: o.passive, once: o.once} :\n         o.capture as AddEventListenerOptions);\n"]}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/shady-render.js.map:1:{"version":3,"file":"shady-render.js","sourceRoot":"","sources":["../src/lib/shady-render.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * Module to add shady DOM/shady CSS polyfill support to lit-html template\n * rendering. See the [[render]] method for details.\n *\n * @module shady-render\n * @preferred\n */\n\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport {removeNodes} from './dom.js';\nimport {insertNodeIntoTemplate, removeNodesFromTemplate} from './modify-template.js';\nimport {RenderOptions} from './render-options.js';\nimport {parts, render as litRender} from './render.js';\nimport {templateCaches} from './template-factory.js';\nimport {TemplateInstance} from './template-instance.js';\nimport {TemplateResult} from './template-result.js';\nimport {marker, Template} from './template.js';\n\nexport {html, svg, TemplateResult} from '../lit-html.js';\n\n// Get a key to lookup in `templateCaches`.\nconst getTemplateCacheKey = (type: string, scopeName: string) =>\n    `${type}--${scopeName}`;\n\nlet compatibleShadyCSSVersion = true;\n\nif (typeof window.ShadyCSS === 'undefined') {\n  compatibleShadyCSSVersion = false;\n} else if (typeof window.ShadyCSS.prepareTemplateDom === 'undefined') {\n  console.warn(\n      `Incompatible ShadyCSS version detected. ` +\n      `Please update to at least @webcomponents/webcomponentsjs@2.0.2 and ` +\n      `@webcomponents/shadycss@1.3.1.`);\n  compatibleShadyCSSVersion = false;\n}\n\n/**\n * Template factory which scopes template DOM using ShadyCSS.\n * @param scopeName {string}\n */\nconst shadyTemplateFactory = (scopeName: string) =>\n    (result: TemplateResult) => {\n      const cacheKey = getTemplateCacheKey(result.type, scopeName);\n      let templateCache = templateCaches.get(cacheKey);\n      if (templateCache === undefined) {\n        templateCache = {\n          stringsArray: new WeakMap<TemplateStringsArray, Template>(),\n          keyString: new Map<string, Template>()\n        };\n        templateCaches.set(cacheKey, templateCache);\n      }\n\n      let template = templateCache.stringsArray.get(result.strings);\n      if (template !== undefined) {\n        return template;\n      }\n\n      const key = result.strings.join(marker);\n      template = templateCache.keyString.get(key);\n      if (template === undefined) {\n        const element = result.getTemplateElement();\n        if (compatibleShadyCSSVersion) {\n          window.ShadyCSS!.prepareTemplateDom(element, scopeName);\n        }\n        template = new Template(result, element);\n        templateCache.keyString.set(key, template);\n      }\n      templateCache.stringsArray.set(result.strings, template);\n      return template;\n    };\n\nconst TEMPLATE_TYPES = ['html', 'svg'];\n\n/**\n * Removes all style elements from Templates for the given scopeName.\n */\nconst removeStylesFromLitTemplates = (scopeName: string) => {\n  TEMPLATE_TYPES.forEach((type) => {\n    const templates = templateCaches.get(getTemplateCacheKey(type, scopeName));\n    if (templates !== undefined) {\n      templates.keyString.forEach((template) => {\n        const {element: {content}} = template;\n        // IE 11 doesn't support the iterable param Set constructor\n        const styles = new Set<Element>();\n        Array.from(content.querySelectorAll('style')).forEach((s: Element) => {\n          styles.add(s);\n        });\n        removeNodesFromTemplate(template, styles);\n      });\n    }\n  });\n};\n\nconst shadyRenderSet = new Set<string>();\n\n/**\n * For the given scope name, ensures that ShadyCSS style scoping is performed.\n * This is done just once per scope name so the fragment and template cannot\n * be modified.\n * (1) extracts styles from the rendered fragment and hands them to ShadyCSS\n * to be scoped and appended to the document\n * (2) removes style elements from all lit-html Templates for this scope name.\n *\n * Note, <style> elements can only be placed into templates for the\n * initial rendering of the scope. If <style> elements are included in templates\n * dynamically rendered to the scope (after the first scope render), they will\n * not be scoped and the <style> will be left in the template and rendered\n * output.\n */\nconst prepareTemplateStyles =\n    (scopeName: string, renderedDOM: DocumentFragment, template?: Template) => {\n      shadyRenderSet.add(scopeName);\n      // If `renderedDOM` is stamped from a Template, then we need to edit that\n      // Template's underlying template element. Otherwise, we create one here\n      // to give to ShadyCSS, which still requires one while scoping.\n      const templateElement =\n          !!template ? template.element : document.createElement('template');\n      // Move styles out of rendered DOM and store.\n      const styles = renderedDOM.querySelectorAll('style');\n      const {length} = styles;\n      // If there are no styles, skip unnecessary work\n      if (length === 0) {\n        // Ensure prepareTemplateStyles is called to support adding\n        // styles via `prepareAdoptedCssText` since that requires that\n        // `prepareTemplateStyles` is called.\n        //\n        // ShadyCSS will only update styles containing @apply in the template\n        // given to `prepareTemplateStyles`. If no lit Template was given,\n        // ShadyCSS will not be able to update uses of @apply in any relevant\n        // template. However, this is not a problem because we only create the\n        // template for the purpose of supporting `prepareAdoptedCssText`,\n        // which doesn't support @apply at all.\n        window.ShadyCSS!.prepareTemplateStyles(templateElement, scopeName);\n        return;\n      }\n      const condensedStyle = document.createElement('style');\n      // Collect styles into a single style. This helps us make sure ShadyCSS\n      // manipulations will not prevent us from being able to fix up template\n      // part indices.\n      // NOTE: collecting styles is inefficient for browsers but ShadyCSS\n      // currently does this anyway. When it does not, this should be changed.\n      for (let i = 0; i < length; i++) {\n        const style = styles[i];\n        style.parentNode!.removeChild(style);\n        condensedStyle.textContent! += style.textContent;\n      }\n      // Remove styles from nested templates in this scope.\n      removeStylesFromLitTemplates(scopeName);\n      // And then put the condensed style into the \"root\" template passed in as\n      // `template`.\n      const content = templateElement.content;\n      if (!!template) {\n        insertNodeIntoTemplate(template, condensedStyle, content.firstChild);\n      } else {\n        content.insertBefore(condensedStyle, content.firstChild);\n      }\n      // Note, it's important that ShadyCSS gets the template that `lit-html`\n      // will actually render so that it can update the style inside when\n      // needed (e.g. @apply native Shadow DOM case).\n      window.ShadyCSS!.prepareTemplateStyles(templateElement, scopeName);\n      const style = content.querySelector('style');\n      if (window.ShadyCSS!.nativeShadow && style !== null) {\n        // When in native Shadow DOM, ensure the style created by ShadyCSS is\n        // included in initially rendered output (`renderedDOM`).\n        renderedDOM.insertBefore(style.cloneNode(true), renderedDOM.firstChild);\n      } else if (!!template) {\n        // When no style is left in the template, parts will be broken as a\n        // result. To fix this, we put back the style node ShadyCSS removed\n        // and then tell lit to remove that node from the template.\n        // There can be no style in the template in 2 cases (1) when Shady DOM\n        // is in use, ShadyCSS removes all styles, (2) when native Shadow DOM\n        // is in use ShadyCSS removes the style if it contains no content.\n        // NOTE, ShadyCSS creates its own style so we can safely add/remove\n        // `condensedStyle` here.\n        content.insertBefore(condensedStyle, content.firstChild);\n        const removes = new Set<Node>();\n        removes.add(condensedStyle);\n        removeNodesFromTemplate(template, removes);\n      }\n    };\n\nexport interface ShadyRenderOptions extends Partial<RenderOptions> {\n  scopeName: string;\n}\n\n/**\n * Extension to the standard `render` method which supports rendering\n * to ShadowRoots when the ShadyDOM (https://github.com/webcomponents/shadydom)\n * and ShadyCSS (https://github.com/webcomponents/shadycss) polyfills are used\n * or when the webcomponentsjs\n * (https://github.com/webcomponents/webcomponentsjs) polyfill is used.\n *\n * Adds a `scopeName` option which is used to scope element DOM and stylesheets\n * when native ShadowDOM is unavailable. The `scopeName` will be added to\n * the class attribute of all rendered DOM. In addition, any style elements will\n * be automatically re-written with this `scopeName` selector and moved out\n * of the rendered DOM and into the document `<head>`.\n *\n * It is common to use this render method in conjunction with a custom element\n * which renders a shadowRoot. When this is done, typically the element's\n * `localName` should be used as the `scopeName`.\n *\n * In addition to DOM scoping, ShadyCSS also supports a basic shim for css\n * custom properties (needed only on older browsers like IE11) and a shim for\n * a deprecated feature called `@apply` that supports applying a set of css\n * custom properties to a given location.\n *\n * Usage considerations:\n *\n * * Part values in `<style>` elements are only applied the first time a given\n * `scopeName` renders. Subsequent changes to parts in style elements will have\n * no effect. Because of this, parts in style elements should only be used for\n * values that will never change, for example parts that set scope-wide theme\n * values or parts which render shared style elements.\n *\n * * Note, due to a limitation of the ShadyDOM polyfill, rendering in a\n * custom element's `constructor` is not supported. Instead rendering should\n * either done asynchronously, for example at microtask timing (for example\n * `Promise.resolve()`), or be deferred until the first time the element's\n * `connectedCallback` runs.\n *\n * Usage considerations when using shimmed custom properties or `@apply`:\n *\n * * Whenever any dynamic changes are made which affect\n * css custom properties, `ShadyCSS.styleElement(element)` must be called\n * to update the element. There are two cases when this is needed:\n * (1) the element is connected to a new parent, (2) a class is added to the\n * element that causes it to match different custom properties.\n * To address the first case when rendering a custom element, `styleElement`\n * should be called in the element's `connectedCallback`.\n *\n * * Shimmed custom properties may only be defined either for an entire\n * shadowRoot (for example, in a `:host` rule) or via a rule that directly\n * matches an element with a shadowRoot. In other words, instead of flowing from\n * parent to child as do native css custom properties, shimmed custom properties\n * flow only from shadowRoots to nested shadowRoots.\n *\n * * When using `@apply` mixing css shorthand property names with\n * non-shorthand names (for example `border` and `border-width`) is not\n * supported.\n */\nexport const render =\n    (result: unknown,\n     container: Element|DocumentFragment|ShadowRoot,\n     options: ShadyRenderOptions) => {\n      if (!options || typeof options !== 'object' || !options.scopeName) {\n        throw new Error('The `scopeName` option is required.');\n      }\n      const scopeName = options.scopeName;\n      const hasRendered = parts.has(container);\n      const needsScoping = compatibleShadyCSSVersion &&\n          container.nodeType === 11 /* Node.DOCUMENT_FRAGMENT_NODE */ &&\n          !!(container as ShadowRoot).host;\n      // Handle first render to a scope specially...\n      const firstScopeRender = needsScoping && !shadyRenderSet.has(scopeName);\n      // On first scope render, render into a fragment; this cannot be a single\n      // fragment that is reused since nested renders can occur synchronously.\n      const renderContainer =\n          firstScopeRender ? document.createDocumentFragment() : container;\n      litRender(\n          result,\n          renderContainer,\n          {templateFactory: shadyTemplateFactory(scopeName), ...options} as\n              RenderOptions);\n      // When performing first scope render,\n      // (1) We've rendered into a fragment so that there's a chance to\n      // `prepareTemplateStyles` before sub-elements hit the DOM\n      // (which might cause them to render based on a common pattern of\n      // rendering in a custom element's `connectedCallback`);\n      // (2) Scope the template with ShadyCSS one time only for this scope.\n      // (3) Render the fragment into the container and make sure the\n      // container knows its `part` is the one we just rendered. This ensures\n      // DOM will be re-used on subsequent renders.\n      if (firstScopeRender) {\n        const part = parts.get(renderContainer)!;\n        parts.delete(renderContainer);\n        // ShadyCSS might have style sheets (e.g. from `prepareAdoptedCssText`)\n        // that should apply to `renderContainer` even if the rendered value is\n        // not a TemplateInstance. However, it will only insert scoped styles\n        // into the document if `prepareTemplateStyles` has already been called\n        // for the given scope name.\n        const template = part.value instanceof TemplateInstance ?\n            part.value.template :\n            undefined;\n        prepareTemplateStyles(\n            scopeName, renderContainer as DocumentFragment, template);\n        removeNodes(container, container.firstChild);\n        container.appendChild(renderContainer);\n        parts.set(container, part);\n      }\n      // After elements have hit the DOM, update styling if this is the\n      // initial render to this container.\n      // This is needed whenever dynamic changes are made so it would be\n      // safest to do every render; however, this would regress performance\n      // so we leave it up to the user to call `ShadyCSS.styleElement`\n      // for dynamic changes.\n      if (!hasRendered && needsScoping) {\n        window.ShadyCSS!.styleElement((container as ShadowRoot).host);\n      }\n    };\n"]}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template-result.js-18-import { boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker } from './template.js';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template-result.js:19:const commentMarker = ` ${marker} `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template-result.js-20-/**
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template-result.js-101-    getHTML() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template-result.js:102:        return `<svg>${super.getHTML()}</svg>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template-result.js-103-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template-result.js.map:1:{"version":3,"file":"template-result.js","sourceRoot":"","sources":["../src/lib/template-result.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {reparentNodes} from './dom.js';\nimport {TemplateProcessor} from './template-processor.js';\nimport {boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker} from './template.js';\n\nconst commentMarker = ` ${marker} `;\n\n/**\n * The return type of `html`, which holds a Template and the values from\n * interpolated expressions.\n */\nexport class TemplateResult {\n  readonly strings: TemplateStringsArray;\n  readonly values: ReadonlyArray<unknown>;\n  readonly type: string;\n  readonly processor: TemplateProcessor;\n\n  constructor(\n      strings: TemplateStringsArray, values: ReadonlyArray<unknown>,\n      type: string, processor: TemplateProcessor) {\n    this.strings = strings;\n    this.values = values;\n    this.type = type;\n    this.processor = processor;\n  }\n\n  /**\n   * Returns a string of HTML used to create a `<template>` element.\n   */\n  getHTML(): string {\n    const l = this.strings.length - 1;\n    let html = '';\n    let isCommentBinding = false;\n\n    for (let i = 0; i < l; i++) {\n      const s = this.strings[i];\n      // For each binding we want to determine the kind of marker to insert\n      // into the template source before it's parsed by the browser's HTML\n      // parser. The marker type is based on whether the expression is in an\n      // attribute, text, or comment poisition.\n      //   * For node-position bindings we insert a comment with the marker\n      //     sentinel as its text content, like <!--{{lit-guid}}-->.\n      //   * For attribute bindings we insert just the marker sentinel for the\n      //     first binding, so that we support unquoted attribute bindings.\n      //     Subsequent bindings can use a comment marker because multi-binding\n      //     attributes must be quoted.\n      //   * For comment bindings we insert just the marker sentinel so we don't\n      //     close the comment.\n      //\n      // The following code scans the template source, but is *not* an HTML\n      // parser. We don't need to track the tree structure of the HTML, only\n      // whether a binding is inside a comment, and if not, if it appears to be\n      // the first binding in an attribute.\n      const commentOpen = s.lastIndexOf('<!--');\n      // We're in comment position if we have a comment open with no following\n      // comment close. Because <-- can appear in an attribute value there can\n      // be false positives.\n      isCommentBinding = (commentOpen > -1 || isCommentBinding) &&\n          s.indexOf('-->', commentOpen + 1) === -1;\n      // Check to see if we have an attribute-like sequence preceeding the\n      // expression. This can match \"name=value\" like structures in text,\n      // comments, and attribute values, so there can be false-positives.\n      const attributeMatch = lastAttributeNameRegex.exec(s);\n      if (attributeMatch === null) {\n        // We're only in this branch if we don't have a attribute-like\n        // preceeding sequence. For comments, this guards against unusual\n        // attribute values like <div foo=\"<!--${'bar'}\">. Cases like\n        // <!-- foo=${'bar'}--> are handled correctly in the attribute branch\n        // below.\n        html += s + (isCommentBinding ? commentMarker : nodeMarker);\n      } else {\n        // For attributes we use just a marker sentinel, and also append a\n        // $lit$ suffix to the name to opt-out of attribute-specific parsing\n        // that IE and Edge do for style and certain SVG attributes.\n        html += s.substr(0, attributeMatch.index) + attributeMatch[1] +\n            attributeMatch[2] + boundAttributeSuffix + attributeMatch[3] +\n            marker;\n      }\n    }\n    html += this.strings[l];\n    return html;\n  }\n\n  getTemplateElement(): HTMLTemplateElement {\n    const template = document.createElement('template');\n    template.innerHTML = this.getHTML();\n    return template;\n  }\n}\n\n/**\n * A TemplateResult for SVG fragments.\n *\n * This class wraps HTML in an `<svg>` tag in order to parse its contents in the\n * SVG namespace, then modifies the template to remove the `<svg>` tag so that\n * clones only container the original fragment.\n */\nexport class SVGTemplateResult extends TemplateResult {\n  getHTML(): string {\n    return `<svg>${super.getHTML()}</svg>`;\n  }\n\n  getTemplateElement(): HTMLTemplateElement {\n    const template = super.getTemplateElement();\n    const content = template.content;\n    const svgElement = content.firstChild!;\n    content.removeChild(svgElement);\n    reparentNodes(content, svgElement.firstChild);\n    return template;\n  }\n}\n"]}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/template.js.map:1:{"version":3,"file":"template.js","sourceRoot":"","sources":["../src/lib/template.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {TemplateResult} from './template-result.js';\n\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = `<!--${marker}-->`;\n\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n\n/**\n * An updateable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n  readonly parts: TemplatePart[] = [];\n  readonly element: HTMLTemplateElement;\n\n  constructor(result: TemplateResult, element: HTMLTemplateElement) {\n    this.element = element;\n\n    const nodesToRemove: Node[] = [];\n    const stack: Node[] = [];\n    // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n    const walker = document.createTreeWalker(\n        element.content,\n        133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */,\n        null,\n        false);\n    // Keeps track of the last index associated with a part. We try to delete\n    // unnecessary nodes, but we never want to associate two different parts\n    // to the same index. They must have a constant node between.\n    let lastPartIndex = 0;\n    let index = -1;\n    let partIndex = 0;\n    const {strings, values: {length}} = result;\n    while (partIndex < length) {\n      const node = walker.nextNode() as Element | Comment | Text | null;\n      if (node === null) {\n        // We've exhausted the content inside a nested template element.\n        // Because we still have parts (the outer for-loop), we know:\n        // - There is a template in the stack\n        // - The walker will find a nextNode outside the template\n        walker.currentNode = stack.pop()!;\n        continue;\n      }\n      index++;\n\n      if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n        if ((node as Element).hasAttributes()) {\n          const attributes = (node as Element).attributes;\n          const {length} = attributes;\n          // Per\n          // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n          // attributes are not guaranteed to be returned in document order.\n          // In particular, Edge/IE can return them out of order, so we cannot\n          // assume a correspondence between part index and attribute index.\n          let count = 0;\n          for (let i = 0; i < length; i++) {\n            if (endsWith(attributes[i].name, boundAttributeSuffix)) {\n              count++;\n            }\n          }\n          while (count-- > 0) {\n            // Get the template literal section leading up to the first\n            // expression in this attribute\n            const stringForPart = strings[partIndex];\n            // Find the attribute name\n            const name = lastAttributeNameRegex.exec(stringForPart)![2];\n            // Find the corresponding attribute\n            // All bound attributes have had a suffix added in\n            // TemplateResult#getHTML to opt out of special attribute\n            // handling. To look up the attribute value we also need to add\n            // the suffix.\n            const attributeLookupName =\n                name.toLowerCase() + boundAttributeSuffix;\n            const attributeValue =\n                (node as Element).getAttribute(attributeLookupName)!;\n            (node as Element).removeAttribute(attributeLookupName);\n            const statics = attributeValue.split(markerRegex);\n            this.parts.push({type: 'attribute', index, name, strings: statics});\n            partIndex += statics.length - 1;\n          }\n        }\n        if ((node as Element).tagName === 'TEMPLATE') {\n          stack.push(node);\n          walker.currentNode = (node as HTMLTemplateElement).content;\n        }\n      } else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n        const data = (node as Text).data;\n        if (data.indexOf(marker) >= 0) {\n          const parent = node.parentNode!;\n          const strings = data.split(markerRegex);\n          const lastIndex = strings.length - 1;\n          // Generate a new text node for each literal section\n          // These nodes are also used as the markers for node parts\n          for (let i = 0; i < lastIndex; i++) {\n            let insert: Node;\n            let s = strings[i];\n            if (s === '') {\n              insert = createMarker();\n            } else {\n              const match = lastAttributeNameRegex.exec(s);\n              if (match !== null && endsWith(match[2], boundAttributeSuffix)) {\n                s = s.slice(0, match.index) + match[1] +\n                    match[2].slice(0, -boundAttributeSuffix.length) + match[3];\n              }\n              insert = document.createTextNode(s);\n            }\n            parent.insertBefore(insert, node);\n            this.parts.push({type: 'node', index: ++index});\n          }\n          // If there's no text, we must insert a comment to mark our place.\n          // Else, we can trust it will stick around after cloning.\n          if (strings[lastIndex] === '') {\n            parent.insertBefore(createMarker(), node);\n            nodesToRemove.push(node);\n          } else {\n            (node as Text).data = strings[lastIndex];\n          }\n          // We have a part for each match found\n          partIndex += lastIndex;\n        }\n      } else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n        if ((node as Comment).data === marker) {\n          const parent = node.parentNode!;\n          // Add a new marker node to be the startNode of the Part if any of\n          // the following are true:\n          //  * We don't have a previousSibling\n          //  * The previousSibling is already the start of a previous part\n          if (node.previousSibling === null || index === lastPartIndex) {\n            index++;\n            parent.insertBefore(createMarker(), node);\n          }\n          lastPartIndex = index;\n          this.parts.push({type: 'node', index});\n          // If we don't have a nextSibling, keep this node so we have an end.\n          // Else, we can remove it to save future costs.\n          if (node.nextSibling === null) {\n            (node as Comment).data = '';\n          } else {\n            nodesToRemove.push(node);\n            index--;\n          }\n          partIndex++;\n        } else {\n          let i = -1;\n          while ((i = (node as Comment).data.indexOf(marker, i + 1)) !== -1) {\n            // Comment node has a binding marker inside, make an inactive part\n            // The binding won't work, but subsequent bindings will\n            // TODO (justinfagnani): consider whether it's even worth it to\n            // make bindings in comments work\n            this.parts.push({type: 'node', index: -1});\n            partIndex++;\n          }\n        }\n      }\n    }\n\n    // Remove text binding nodes after the walk to not disturb the TreeWalker\n    for (const n of nodesToRemove) {\n      n.parentNode!.removeChild(n);\n    }\n  }\n}\n\nconst endsWith = (str: string, suffix: string): boolean => {\n  const index = str.length - suffix.length;\n  return index >= 0 && str.slice(index) === suffix;\n};\n\n/**\n * A placeholder for a dynamic expression in an HTML template.\n *\n * There are two built-in part types: AttributePart and NodePart. NodeParts\n * always represent a single dynamic expression, while AttributeParts may\n * represent as many expressions are contained in the attribute.\n *\n * A Template's parts are mutable, so parts can be replaced or modified\n * (possibly to implement different template semantics). The contract is that\n * parts can only be replaced, not removed, added or reordered, and parts must\n * always consume the correct number of values in their `update()` method.\n *\n * TODO(justinfagnani): That requirement is a little fragile. A\n * TemplateInstance could instead be more careful about which values it gives\n * to Part.update().\n */\nexport type TemplatePart = {\n  readonly type: 'node',\n  index: number\n}|{readonly type: 'attribute', index: number, readonly name: string, readonly strings: ReadonlyArray<string>};\n\nexport const isTemplatePartActive = (part: TemplatePart) => part.index !== -1;\n\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-characters\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters, which includes every\n * space character except \" \".\n *\n * So an attribute is:\n *  * The name: any character except a control character, space character, ('),\n *    (\"), \">\", \"=\", or \"/\"\n *  * Followed by zero or more space characters\n *  * Followed by \"=\"\n *  * Followed by zero or more space characters\n *  * Followed by:\n *    * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n *    * (\") then any non-(\"), or\n *    * (') then any non-(')\n */\nexport const lastAttributeNameRegex =\n    /([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n"]}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/directive.js.map:1:{"version":3,"file":"directive.js","sourceRoot":"","sources":["../src/lib/directive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,MAAM,UAAU,GAAG,IAAI,OAAO,EAAgB,CAAC;AAO/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAA6B,CAAI,EAAK,EAAE,CAC7D,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE;IACtB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACxB,OAAO,CAAC,CAAC;AACX,CAAC,CAAM,CAAC;AAEZ,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAU,EAAoB,EAAE;IAC1D,OAAO,OAAO,CAAC,KAAK,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @module lit-html\n */\n\nimport {Part} from './part.js';\n\nconst directives = new WeakMap<object, true>();\n\n// tslint:disable-next-line:no-any\nexport type DirectiveFactory = (...args: any[]) => object;\n\nexport type DirectiveFn = (part: Part) => void;\n\n/**\n * Brands a function as a directive factory function so that lit-html will call\n * the function during template rendering, rather than passing as a value.\n *\n * A _directive_ is a function that takes a Part as an argument. It has the\n * signature: `(part: Part) => void`.\n *\n * A directive _factory_ is a function that takes arguments for data and\n * configuration and returns a directive. Users of directive usually refer to\n * the directive factory as the directive. For example, \"The repeat directive\".\n *\n * Usually a template author will invoke a directive factory in their template\n * with relevant arguments, which will then return a directive function.\n *\n * Here's an example of using the `repeat()` directive factory that takes an\n * array and a function to render an item:\n *\n * ```js\n * html`<ul><${repeat(items, (item) => html`<li>${item}</li>`)}</ul>`\n * ```\n *\n * When `repeat` is invoked, it returns a directive function that closes over\n * `items` and the template function. When the outer template is rendered, the\n * return directive function is called with the Part for the expression.\n * `repeat` then performs it's custom logic to render multiple items.\n *\n * @param f The directive factory function. Must be a function that returns a\n * function of the signature `(part: Part) => void`. The returned function will\n * be called with the part object.\n *\n * @example\n *\n * import {directive, html} from 'lit-html';\n *\n * const immutable = directive((v) => (part) => {\n *   if (part.value !== v) {\n *     part.setValue(v)\n *   }\n * });\n */\nexport const directive = <F extends DirectiveFactory>(f: F): F =>\n    ((...args: unknown[]) => {\n      const d = f(...args);\n      directives.set(d, true);\n      return d;\n    }) as F;\n\nexport const isDirective = (o: unknown): o is DirectiveFn => {\n  return typeof o === 'function' && directives.has(o);\n};\n"]}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/parts.js-254-        // of TemplateResults that will be commonly returned from expressions like:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/parts.js:255:        // array.map((i) => html`${i}`), by reusing existing TemplateInstances.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/lib/parts.js-256-        // If _value is an array, then the previous render was of an
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/guard.d.ts-38- *   <div>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/guard.d.ts:39: *     ${guard([immutableItems], () => immutableItems.map(i => html`${i}`))}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/guard.d.ts-40- *   </div>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/guard.js-39- *   <div>
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/guard.js:40: *     ${guard([immutableItems], () => immutableItems.map(i => html`${i}`))}
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/guard.js-41- *   </div>
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/until.js-35- *     const content = fetch('./content.txt').then(r => r.text());
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/until.js:36: *     html`${until(content, html`<span>Loading...</span>`)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/until.js-37- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/until.d.ts-31- *     const content = fetch('./content.txt').then(r => r.text());
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/until.d.ts:32: *     html`${until(content, html`<span>Loading...</span>`)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/until.d.ts-33- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/until.js.map:1:{"version":3,"file":"until.js","sourceRoot":"","sources":["../src/directives/until.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAO,MAAM,gBAAgB,CAAC;AAY/C,MAAM,MAAM,GAAG,IAAI,OAAO,EAAoB,CAAC;AAC/C,mCAAmC;AACnC,MAAM,SAAS,GAAG,UAAU,CAAC;AAE7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;IACpE,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,KAAK,GAAG;YACN,iBAAiB,EAAE,SAAS;YAC5B,MAAM,EAAE,EAAE;SACX,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACzB;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;IACpC,IAAI,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC;IAC3C,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,2DAA2D;QAC3D,IAAI,CAAC,GAAG,KAAK,CAAC,iBAAiB,EAAE;YAC/B,MAAM;SACP;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEtB,wCAAwC;QACxC,IAAI,WAAW,CAAC,KAAK,CAAC;YAClB,OAAQ,KAA0B,CAAC,IAAI,KAAK,UAAU,EAAE;YAC1D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;YAC5B,sEAAsE;YACtE,kDAAkD;YAClD,MAAM;SACP;QAED,uDAAuD;QACvD,IAAI,CAAC,GAAG,cAAc,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE;YACrD,SAAS;SACV;QAED,wEAAwE;QACxE,2CAA2C;QAC3C,KAAK,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACpC,cAAc,GAAG,CAAC,CAAC;QAEnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,aAAsB,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1C,uEAAuE;YACvE,mEAAmE;YACnE,qDAAqD;YACrD,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC,iBAAiB,EAAE;gBACjD,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\nimport {isPrimitive} from '../lib/parts.js';\nimport {directive, Part} from '../lit-html.js';\n\ninterface AsyncState {\n  /**\n   * The last rendered index of a call to until(). A value only renders if its\n   * index is less than the `lastRenderedIndex`.\n   */\n  lastRenderedIndex: number;\n\n  values: unknown[];\n}\n\nconst _state = new WeakMap<Part, AsyncState>();\n// Effectively infinity, but a SMI.\nconst _infinity = 0x7fffffff;\n\n/**\n * Renders one of a series of values, including Promises, to a Part.\n *\n * Values are rendered in priority order, with the first argument having the\n * highest priority and the last argument having the lowest priority. If a\n * value is a Promise, low-priority values will be rendered until it resolves.\n *\n * The priority of values can be used to create placeholder content for async\n * data. For example, a Promise with pending content can be the first,\n * highest-priority, argument, and a non_promise loading indicator template can\n * be used as the second, lower-priority, argument. The loading indicator will\n * render immediately, and the primary content will render when the Promise\n * resolves.\n *\n * Example:\n *\n *     const content = fetch('./content.txt').then(r => r.text());\n *     html`${until(content, html`<span>Loading...</span>`)}`\n */\nexport const until = directive((...args: unknown[]) => (part: Part) => {\n  let state = _state.get(part)!;\n  if (state === undefined) {\n    state = {\n      lastRenderedIndex: _infinity,\n      values: [],\n    };\n    _state.set(part, state);\n  }\n  const previousValues = state.values;\n  let previousLength = previousValues.length;\n  state.values = args;\n\n  for (let i = 0; i < args.length; i++) {\n    // If we've rendered a higher-priority value already, stop.\n    if (i > state.lastRenderedIndex) {\n      break;\n    }\n\n    const value = args[i];\n\n    // Render non-Promise values immediately\n    if (isPrimitive(value) ||\n        typeof (value as {then?: unknown}).then !== 'function') {\n      part.setValue(value);\n      state.lastRenderedIndex = i;\n      // Since a lower-priority value will never overwrite a higher-priority\n      // synchronous value, we can stop processsing now.\n      break;\n    }\n\n    // If this is a Promise we've already handled, skip it.\n    if (i < previousLength && value === previousValues[i]) {\n      continue;\n    }\n\n    // We have a Promise that we haven't seen before, so priorities may have\n    // changed. Forget what we rendered before.\n    state.lastRenderedIndex = _infinity;\n    previousLength = 0;\n\n    Promise.resolve(value).then((resolvedValue: unknown) => {\n      const index = state.values.indexOf(value);\n      // If state.values doesn't contain the value, we've re-rendered without\n      // the value, so don't render it. Then, only render if the value is\n      // higher-priority than what's already been rendered.\n      if (index > -1 && index < state.lastRenderedIndex) {\n        state.lastRenderedIndex = index;\n        part.setValue(resolvedValue);\n        part.commit();\n      }\n    });\n  }\n});\n"]}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/cache.js.map:1:{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/directives/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAQ,aAAa,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAMxF,MAAM,cAAc,GAChB,IAAI,OAAO,EAA+C,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;IAChE,IAAI,CAAC,CAAC,IAAI,YAAY,QAAQ,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC5D;IAED,IAAI,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;KACzC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;IAEjC,2EAA2E;IAC3E,oCAAoC;IACpC,IAAI,aAAa,YAAY,gBAAgB,EAAE;QAC7C,IAAI,KAAK,YAAY,cAAc;YAC/B,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;YAClE,gEAAgE;YAChE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO;SACR;aAAM;YACL,qEAAqE;YACrE,IAAI,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/D,IAAI,cAAc,KAAK,SAAS,EAAE;gBAChC,cAAc,GAAG;oBACf,QAAQ,EAAE,aAAa;oBACvB,KAAK,EAAE,QAAQ,CAAC,sBAAsB,EAAE;iBACzC,CAAC;gBACF,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;aAC3D;YACD,aAAa,CACT,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACrE;KACF;IAED,2CAA2C;IAC3C,IAAI,KAAK,YAAY,cAAc,EAAE;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,0BAA0B;YAC1B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,iEAAiE;YACjE,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC;SACtC;KACF;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\nimport {TemplateInstance} from '../lib/template-instance.js';\nimport {Template} from '../lib/template.js';\nimport {directive, NodePart, Part, reparentNodes, TemplateResult} from '../lit-html.js';\n\ntype CachedTemplate = {\n  readonly instance: TemplateInstance,\n  readonly nodes: DocumentFragment\n};\nconst templateCaches =\n    new WeakMap<NodePart, WeakMap<Template, CachedTemplate>>();\n\n/**\n * Enables fast switching between multiple templates by caching the DOM nodes\n * and TemplateInstances produced by the templates.\n *\n * Example:\n *\n * ```\n * let checked = false;\n *\n * html`\n *   ${cache(checked ? html`input is checked` : html`input is not checked`)}\n * `\n * ```\n */\nexport const cache = directive((value: unknown) => (part: Part) => {\n  if (!(part instanceof NodePart)) {\n    throw new Error('cache can only be used in text bindings');\n  }\n\n  let templateCache = templateCaches.get(part);\n\n  if (templateCache === undefined) {\n    templateCache = new WeakMap();\n    templateCaches.set(part, templateCache);\n  }\n\n  const previousValue = part.value;\n\n  // First, can we update the current TemplateInstance, or do we need to move\n  // the current nodes into the cache?\n  if (previousValue instanceof TemplateInstance) {\n    if (value instanceof TemplateResult &&\n        previousValue.template === part.options.templateFactory(value)) {\n      // Same Template, just trigger an update of the TemplateInstance\n      part.setValue(value);\n      return;\n    } else {\n      // Not the same Template, move the nodes from the DOM into the cache.\n      let cachedTemplate = templateCache.get(previousValue.template);\n      if (cachedTemplate === undefined) {\n        cachedTemplate = {\n          instance: previousValue,\n          nodes: document.createDocumentFragment(),\n        };\n        templateCache.set(previousValue.template, cachedTemplate);\n      }\n      reparentNodes(\n          cachedTemplate.nodes, part.startNode.nextSibling, part.endNode);\n    }\n  }\n\n  // Next, can we reuse nodes from the cache?\n  if (value instanceof TemplateResult) {\n    const template = part.options.templateFactory(value);\n    const cachedTemplate = templateCache.get(template);\n    if (cachedTemplate !== undefined) {\n      // Move nodes out of cache\n      part.setValue(cachedTemplate.nodes);\n      part.commit();\n      // Set the Part value to the TemplateInstance so it'll update it.\n      part.value = cachedTemplate.instance;\n    }\n  }\n  part.setValue(value);\n});\n"]}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/lit-html/package/directives/guard.js.map:1:{"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/directives/guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,SAAS,EAAO,MAAM,gBAAgB,CAAC;AAE/C,MAAM,cAAc,GAAG,IAAI,OAAO,EAAiB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,KAAK,GACd,SAAS,CAAC,CAAC,KAAc,EAAE,CAAgB,EAAE,EAAE,CAAC,CAAC,IAAU,EAAQ,EAAE;IACnE,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,6BAA6B;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;YAC5B,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YACrC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,OAAO;SACR;KACF;SAAM,IACH,aAAa,KAAK,KAAK;QACvB,CAAC,KAAK,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;QACrD,qCAAqC;QACrC,OAAO;KACR;IAED,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,0EAA0E;IAC1E,iCAAiC;IACjC,cAAc,CAAC,GAAG,CACd,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC","sourcesContent":["/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n\nimport {directive, Part} from '../lit-html.js';\n\nconst previousValues = new WeakMap<Part, unknown>();\n\n/**\n * Prevents re-render of a template function until a single value or an array of\n * values changes.\n *\n * Example:\n *\n * ```js\n * html`\n *   <div>\n *     ${guard([user.id, company.id], () => html`...`)}\n *   </div>\n * ```\n *\n * In this case, the template only renders if either `user.id` or `company.id`\n * changes.\n *\n * guard() is useful with immutable data patterns, by preventing expensive work\n * until data updates.\n *\n * Example:\n *\n * ```js\n * html`\n *   <div>\n *     ${guard([immutableItems], () => immutableItems.map(i => html`${i}`))}\n *   </div>\n * ```\n *\n * In this case, items are mapped over only when the array reference changes.\n *\n * @param value the value to check before re-rendering\n * @param f the template function\n */\nexport const guard =\n    directive((value: unknown, f: () => unknown) => (part: Part): void => {\n      const previousValue = previousValues.get(part);\n      if (Array.isArray(value)) {\n        // Dirty-check arrays by item\n        if (Array.isArray(previousValue) &&\n            previousValue.length === value.length &&\n            value.every((v, i) => v === previousValue[i])) {\n          return;\n        }\n      } else if (\n          previousValue === value &&\n          (value !== undefined || previousValues.has(part))) {\n        // Dirty-check non-arrays by identity\n        return;\n      }\n\n      part.setValue(f());\n      // Copy the value if it's an array so that if it's mutated we don't forget\n      // what the previous values were.\n      previousValues.set(\n          part, Array.isArray(value) ? Array.from(value) : value);\n    });\n"]}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/acorn/package/dist/acorn.mjs.map:1:{"version":3,"file":"acorn.mjs","sources":["../src/identifier.js","../src/tokentype.js","../src/whitespace.js","../src/util.js","../src/locutil.js","../src/options.js","../src/scopeflags.js","../src/state.js","../src/parseutil.js","../src/statement.js","../src/lval.js","../src/expression.js","../src/location.js","../src/scope.js","../src/node.js","../src/tokencontext.js","../src/unicode-property-data.js","../src/regexp.js","../src/tokenize.js","../src/index.js"],"sourcesContent":["// Reserved word lists for various dialects of the language\n\nexport const reservedWords = {\n  3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n  5: \"class enum extends super const export import\",\n  6: \"enum\",\n  strict: \"implements interface let package private protected public static yield\",\n  strictBind: \"eval arguments\"\n}\n\n// And the keywords\n\nconst ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\"\n\nexport const keywords = {\n  5: ecma5AndLessKeywords,\n  6: ecma5AndLessKeywords + \" const class extends export import super\"\n}\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n// Generated by `bin/generate-identifier-regex.js`.\n\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7b9\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab65\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\"\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2-\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\"\n\nconst nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\")\nconst nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\")\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by bin/generate-identifier-regex.js\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541]\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239]\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n  let pos = 0x10000\n  for (let i = 0; i < set.length; i += 2) {\n    pos += set[i]\n    if (pos > code) return false\n    pos += set[i + 1]\n    if (pos >= code) return true\n  }\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code, astral) {\n  if (code < 65) return code === 36\n  if (code < 91) return true\n  if (code < 97) return code === 95\n  if (code < 123) return true\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n  if (astral === false) return false\n  return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code, astral) {\n  if (code < 48) return code === 36\n  if (code < 58) return true\n  if (code < 65) return false\n  if (code < 91) return true\n  if (code < 97) return code === 95\n  if (code < 123) return true\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code))\n  if (astral === false) return false\n  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n","// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nexport class TokenType {\n  constructor(label, conf = {}) {\n    this.label = label\n    this.keyword = conf.keyword\n    this.beforeExpr = !!conf.beforeExpr\n    this.startsExpr = !!conf.startsExpr\n    this.isLoop = !!conf.isLoop\n    this.isAssign = !!conf.isAssign\n    this.prefix = !!conf.prefix\n    this.postfix = !!conf.postfix\n    this.binop = conf.binop || null\n    this.updateContext = null\n  }\n}\n\nfunction binop(name, prec) {\n  return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nconst beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}\n\n// Map keyword names to token types.\n\nexport const keywords = {}\n\n// Succinct definitions of keyword token types\nfunction kw(name, options = {}) {\n  options.keyword = name\n  return keywords[name] = new TokenType(name, options)\n}\n\nexport const types = {\n  num: new TokenType(\"num\", startsExpr),\n  regexp: new TokenType(\"regexp\", startsExpr),\n  string: new TokenType(\"string\", startsExpr),\n  name: new TokenType(\"name\", startsExpr),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n  bracketR: new TokenType(\"]\"),\n  braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n  braceR: new TokenType(\"}\"),\n  parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", beforeExpr),\n  semi: new TokenType(\";\", beforeExpr),\n  colon: new TokenType(\":\", beforeExpr),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", beforeExpr),\n  arrow: new TokenType(\"=>\", beforeExpr),\n  template: new TokenType(\"template\"),\n  invalidTemplate: new TokenType(\"invalidTemplate\"),\n  ellipsis: new TokenType(\"...\", beforeExpr),\n  backQuote: new TokenType(\"`\", startsExpr),\n  dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n  assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n  incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n  prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  logicalOR: binop(\"||\", 1),\n  logicalAND: binop(\"&&\", 2),\n  bitwiseOR: binop(\"|\", 3),\n  bitwiseXOR: binop(\"^\", 4),\n  bitwiseAND: binop(\"&\", 5),\n  equality: binop(\"==/!=/===/!==\", 6),\n  relational: binop(\"</>/<=/>=\", 7),\n  bitShift: binop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n  modulo: binop(\"%\", 10),\n  star: binop(\"*\", 10),\n  slash: binop(\"/\", 10),\n  starstar: new TokenType(\"**\", {beforeExpr: true}),\n\n  // Keyword token types.\n  _break: kw(\"break\"),\n  _case: kw(\"case\", beforeExpr),\n  _catch: kw(\"catch\"),\n  _continue: kw(\"continue\"),\n  _debugger: kw(\"debugger\"),\n  _default: kw(\"default\", beforeExpr),\n  _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n  _else: kw(\"else\", beforeExpr),\n  _finally: kw(\"finally\"),\n  _for: kw(\"for\", {isLoop: true}),\n  _function: kw(\"function\", startsExpr),\n  _if: kw(\"if\"),\n  _return: kw(\"return\", beforeExpr),\n  _switch: kw(\"switch\"),\n  _throw: kw(\"throw\", beforeExpr),\n  _try: kw(\"try\"),\n  _var: kw(\"var\"),\n  _const: kw(\"const\"),\n  _while: kw(\"while\", {isLoop: true}),\n  _with: kw(\"with\"),\n  _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n  _this: kw(\"this\", startsExpr),\n  _super: kw(\"super\", startsExpr),\n  _class: kw(\"class\", startsExpr),\n  _extends: kw(\"extends\", beforeExpr),\n  _export: kw(\"export\"),\n  _import: kw(\"import\"),\n  _null: kw(\"null\", startsExpr),\n  _true: kw(\"true\", startsExpr),\n  _false: kw(\"false\", startsExpr),\n  _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n  _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n  _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n}\n","// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nexport const lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\")\n\nexport function isNewLine(code, ecma2019String) {\n  return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n}\n\nexport const nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g\n","const {hasOwnProperty, toString} = Object.prototype\n\n// Checks if an object has a property.\n\nexport function has(obj, propName) {\n  return hasOwnProperty.call(obj, propName)\n}\n\nexport const isArray = Array.isArray || ((obj) => (\n  toString.call(obj) === \"[object Array]\"\n))\n\nexport function wordsRegexp(words) {\n  return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n","import {lineBreakG} from \"./whitespace\"\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  constructor(line, col) {\n    this.line = line\n    this.column = col\n  }\n\n  offset(n) {\n    return new Position(this.line, this.column + n)\n  }\n}\n\nexport class SourceLocation {\n  constructor(p, start, end) {\n    this.start = start\n    this.end = end\n    if (p.sourceFile !== null) this.source = p.sourceFile\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input, offset) {\n  for (let line = 1, cur = 0;;) {\n    lineBreakG.lastIndex = cur\n    let match = lineBreakG.exec(input)\n    if (match && match.index < offset) {\n      ++line\n      cur = match.index + match[0].length\n    } else {\n      return new Position(line, offset - cur)\n    }\n  }\n}\n","import {has, isArray} from \"./util\"\nimport {SourceLocation} from \"./locutil\"\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport const defaultOptions = {\n  // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n  // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10\n  // (2019). This influences support for strict mode, the set of\n  // reserved words, and support for new syntax features. The default\n  // is 9.\n  ecmaVersion: 9,\n  // `sourceType` indicates the mode the code should be parsed in.\n  // Can be either `\"script\"` or `\"module\"`. This influences global\n  // strict mode and parsing of `import` and `export` declarations.\n  sourceType: \"script\",\n  // `onInsertedSemicolon` can be a callback that will be called\n  // when a semicolon is automatically inserted. It will be passed\n  // the position of the comma as an offset, and if `locations` is\n  // enabled, it is given the location as a `{line, column}` object\n  // as second argument.\n  onInsertedSemicolon: null,\n  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n  // trailing commas.\n  onTrailingComma: null,\n  // By default, reserved words are only enforced if ecmaVersion >= 5.\n  // Set `allowReserved` to a boolean value to explicitly turn this on\n  // an off. When this option has the value \"never\", reserved words\n  // and keywords can also not be used as property names.\n  allowReserved: null,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // When enabled, await identifiers are allowed to appear at the top-level scope,\n  // but they are still not allowed in non-async functions.\n  allowAwaitOutsideFunction: false,\n  // When enabled, hashbang directive in the beginning of file\n  // is allowed and treated as a line comment.\n  allowHashBang: false,\n  // When `locations` is on, `loc` properties holding objects with\n  // `start` and `end` properties in `{line, column}` form (with\n  // line being 1-based and column 0-based) will be attached to the\n  // nodes.\n  locations: false,\n  // A function can be passed as `onToken` option, which will\n  // cause Acorn to call that function with object in the same\n  // format as tokens returned from `tokenizer().getToken()`. Note\n  // that you are not allowed to call the parser from the\n  // callback—that will corrupt its internal state.\n  onToken: null,\n  // A function can be passed as `onComment` option, which will\n  // cause Acorn to call that function with `(block, text, start,\n  // end)` parameters whenever a comment is skipped. `block` is a\n  // boolean indicating whether this is a block (`/* */`) comment,\n  // `text` is the content of the comment, and `start` and `end` are\n  // character offsets that denote the start and end of the comment.\n  // When the `locations` option is on, two more parameters are\n  // passed, the full `{line, column}` locations of the start and\n  // end of the comments. Note that you are not allowed to call the\n  // parser from the callback—that will corrupt its internal state.\n  onComment: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // It is possible to parse multiple files into a single AST by\n  // passing the tree produced by parsing the first file as\n  // `program` option in subsequent parses. This will add the\n  // toplevel forms of the parsed file to the `Program` (top) node\n  // of an existing parse tree.\n  program: null,\n  // When `locations` is on, you can pass this to record the source\n  // file in every node's `loc` object.\n  sourceFile: null,\n  // This value, if given, is stored in every node, whether\n  // `locations` is on or off.\n  directSourceFile: null,\n  // When enabled, parenthesized expressions are represented by\n  // (non-standard) ParenthesizedExpression nodes\n  preserveParens: false\n}\n\n// Interpret and default an options object\n\nexport function getOptions(opts) {\n  let options = {}\n\n  for (let opt in defaultOptions)\n    options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]\n\n  if (options.ecmaVersion >= 2015)\n    options.ecmaVersion -= 2009\n\n  if (options.allowReserved == null)\n    options.allowReserved = options.ecmaVersion < 5\n\n  if (isArray(options.onToken)) {\n    let tokens = options.onToken\n    options.onToken = (token) => tokens.push(token)\n  }\n  if (isArray(options.onComment))\n    options.onComment = pushComment(options, options.onComment)\n\n  return options\n}\n\nfunction pushComment(options, array) {\n  return function(block, text, start, end, startLoc, endLoc) {\n    let comment = {\n      type: block ? \"Block\" : \"Line\",\n      value: text,\n      start: start,\n      end: end\n    }\n    if (options.locations)\n      comment.loc = new SourceLocation(this, startLoc, endLoc)\n    if (options.ranges)\n      comment.range = [start, end]\n    array.push(comment)\n  }\n}\n","// Each scope gets a bitset that may contain these flags\nexport const\n    SCOPE_TOP = 1,\n    SCOPE_FUNCTION = 2,\n    SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n    SCOPE_ASYNC = 4,\n    SCOPE_GENERATOR = 8,\n    SCOPE_ARROW = 16,\n    SCOPE_SIMPLE_CATCH = 32,\n    SCOPE_SUPER = 64,\n    SCOPE_DIRECT_SUPER = 128\n\nexport function functionFlags(async, generator) {\n  return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal and declareName to determine the type of a binding\nexport const\n    BIND_NONE = 0, // Not a binding\n    BIND_VAR = 1, // Var-style binding\n    BIND_LEXICAL = 2, // Let- or const-style binding\n    BIND_FUNCTION = 3, // Function declaration\n    BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n    BIND_OUTSIDE = 5 // Special case for function names as bound inside the function\n","import {reservedWords, keywords} from \"./identifier\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\nimport {getOptions} from \"./options\"\nimport {wordsRegexp} from \"./util\"\nimport {SCOPE_TOP, SCOPE_FUNCTION, SCOPE_ASYNC, SCOPE_GENERATOR, SCOPE_SUPER, SCOPE_DIRECT_SUPER} from \"./scopeflags\"\n\nexport class Parser {\n  constructor(options, input, startPos) {\n    this.options = options = getOptions(options)\n    this.sourceFile = options.sourceFile\n    this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5])\n    let reserved = \"\"\n    if (!options.allowReserved) {\n      for (let v = options.ecmaVersion;; v--)\n        if (reserved = reservedWords[v]) break\n      if (options.sourceType === \"module\") reserved += \" await\"\n    }\n    this.reservedWords = wordsRegexp(reserved)\n    let reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict\n    this.reservedWordsStrict = wordsRegexp(reservedStrict)\n    this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind)\n    this.input = String(input)\n\n    // Used to signal to callers of `readWord1` whether the word\n    // contained any escape sequences. This is needed because words with\n    // escape sequences must not be interpreted as keywords.\n    this.containsEsc = false\n\n    // Set up token state\n\n    // The current position of the tokenizer in the input.\n    if (startPos) {\n      this.pos = startPos\n      this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1\n      this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length\n    } else {\n      this.pos = this.lineStart = 0\n      this.curLine = 1\n    }\n\n    // Properties of the current token:\n    // Its type\n    this.type = tt.eof\n    // For tokens that include more information than their type, the value\n    this.value = null\n    // Its start and end offset\n    this.start = this.end = this.pos\n    // And, if locations are used, the {line, column} object\n    // corresponding to those offsets\n    this.startLoc = this.endLoc = this.curPosition()\n\n    // Position information for the previous token\n    this.lastTokEndLoc = this.lastTokStartLoc = null\n    this.lastTokStart = this.lastTokEnd = this.pos\n\n    // The context stack is used to superficially track syntactic\n    // context to predict whether a regular expression is allowed in a\n    // given position.\n    this.context = this.initialContext()\n    this.exprAllowed = true\n\n    // Figure out if it's a module code.\n    this.inModule = options.sourceType === \"module\"\n    this.strict = this.inModule || this.strictDirective(this.pos)\n\n    // Used to signify the start of a potential arrow function\n    this.potentialArrowAt = -1\n\n    // Positions to delayed-check that yield/await does not exist in default parameters.\n    this.yieldPos = this.awaitPos = this.awaitIdentPos = 0\n    // Labels in scope.\n    this.labels = []\n    // Thus-far undefined exports.\n    this.undefinedExports = {}\n\n    // If enabled, skip leading hashbang line.\n    if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n      this.skipLineComment(2)\n\n    // Scope tracking for duplicate variable names (see scope.js)\n    this.scopeStack = []\n    this.enterScope(SCOPE_TOP)\n\n    // For RegExp validation\n    this.regexpState = null\n  }\n\n  parse() {\n    let node = this.options.program || this.startNode()\n    this.nextToken()\n    return this.parseTopLevel(node)\n  }\n\n  get inFunction() { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }\n  get inGenerator() { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }\n  get inAsync() { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }\n  get allowSuper() { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 }\n  get allowDirectSuper() { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }\n  get treatFunctionsAsVar() { return this.treatFunctionsAsVarInScope(this.currentScope()) }\n\n  // Switch to a getter for 7.0.0.\n  inNonArrowFunction() { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 }\n\n  static extend(...plugins) {\n    let cls = this\n    for (let i = 0; i < plugins.length; i++) cls = plugins[i](cls)\n    return cls\n  }\n\n  static parse(input, options) {\n    return new this(options, input).parse()\n  }\n\n  static parseExpressionAt(input, pos, options) {\n    let parser = new this(options, input, pos)\n    parser.nextToken()\n    return parser.parseExpression()\n  }\n\n  static tokenizer(input, options) {\n    return new this(options, input)\n  }\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\n\nconst pp = Parser.prototype\n\n// ## Parser utilities\n\nconst literal = /^(?:'((?:\\\\.|[^'])*?)'|\"((?:\\\\.|[^\"])*?)\")/\npp.strictDirective = function(start) {\n  for (;;) {\n    // Try to find string literal.\n    skipWhiteSpace.lastIndex = start\n    start += skipWhiteSpace.exec(this.input)[0].length\n    let match = literal.exec(this.input.slice(start))\n    if (!match) return false\n    if ((match[1] || match[2]) === \"use strict\") return true\n    start += match[0].length\n\n    // Skip semicolon, if any.\n    skipWhiteSpace.lastIndex = start\n    start += skipWhiteSpace.exec(this.input)[0].length\n    if (this.input[start] === \";\")\n      start++\n  }\n}\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp.eat = function(type) {\n  if (this.type === type) {\n    this.next()\n    return true\n  } else {\n    return false\n  }\n}\n\n// Tests whether parsed token is a contextual keyword.\n\npp.isContextual = function(name) {\n  return this.type === tt.name && this.value === name && !this.containsEsc\n}\n\n// Consumes contextual keyword if possible.\n\npp.eatContextual = function(name) {\n  if (!this.isContextual(name)) return false\n  this.next()\n  return true\n}\n\n// Asserts that following token is given contextual keyword.\n\npp.expectContextual = function(name) {\n  if (!this.eatContextual(name)) this.unexpected()\n}\n\n// Test whether a semicolon can be inserted at the current position.\n\npp.canInsertSemicolon = function() {\n  return this.type === tt.eof ||\n    this.type === tt.braceR ||\n    lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\npp.insertSemicolon = function() {\n  if (this.canInsertSemicolon()) {\n    if (this.options.onInsertedSemicolon)\n      this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc)\n    return true\n  }\n}\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp.semicolon = function() {\n  if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected()\n}\n\npp.afterTrailingComma = function(tokType, notNext) {\n  if (this.type === tokType) {\n    if (this.options.onTrailingComma)\n      this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc)\n    if (!notNext)\n      this.next()\n    return true\n  }\n}\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp.expect = function(type) {\n  this.eat(type) || this.unexpected()\n}\n\n// Raise an unexpected token error.\n\npp.unexpected = function(pos) {\n  this.raise(pos != null ? pos : this.start, \"Unexpected token\")\n}\n\nexport function DestructuringErrors() {\n  this.shorthandAssign =\n  this.trailingComma =\n  this.parenthesizedAssign =\n  this.parenthesizedBind =\n  this.doubleProto =\n    -1\n}\n\npp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n  if (!refDestructuringErrors) return\n  if (refDestructuringErrors.trailingComma > -1)\n    this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\")\n  let parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind\n  if (parens > -1) this.raiseRecoverable(parens, \"Parenthesized pattern\")\n}\n\npp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n  if (!refDestructuringErrors) return false\n  let {shorthandAssign, doubleProto} = refDestructuringErrors\n  if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0\n  if (shorthandAssign >= 0)\n    this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\")\n  if (doubleProto >= 0)\n    this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\")\n}\n\npp.checkYieldAwaitInDefaultParams = function() {\n  if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n    this.raise(this.yieldPos, \"Yield expression cannot be a default value\")\n  if (this.awaitPos)\n    this.raise(this.awaitPos, \"Await expression cannot be a default value\")\n}\n\npp.isSimpleAssignTarget = function(expr) {\n  if (expr.type === \"ParenthesizedExpression\")\n    return this.isSimpleAssignTarget(expr.expression)\n  return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\nimport {isIdentifierStart, isIdentifierChar, keywordRelationalOperator} from \"./identifier\"\nimport {has} from \"./util\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {functionFlags, SCOPE_SIMPLE_CATCH, BIND_SIMPLE_CATCH, BIND_LEXICAL, BIND_VAR, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node.  Optionally takes a\n// `program` argument.  If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp.parseTopLevel = function(node) {\n  let exports = {}\n  if (!node.body) node.body = []\n  while (this.type !== tt.eof) {\n    let stmt = this.parseStatement(null, true, exports)\n    node.body.push(stmt)\n  }\n  if (this.inModule)\n    for (let name of Object.keys(this.undefinedExports))\n      this.raiseRecoverable(this.undefinedExports[name].start, `Export '${name}' is not defined`)\n  this.adaptDirectivePrologue(node.body)\n  this.next()\n  if (this.options.ecmaVersion >= 6) {\n    node.sourceType = this.options.sourceType\n  }\n  return this.finishNode(node, \"Program\")\n}\n\nconst loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"}\n\npp.isLet = function(context) {\n  if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) return false\n  skipWhiteSpace.lastIndex = this.pos\n  let skip = skipWhiteSpace.exec(this.input)\n  let next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next)\n  // For ambiguous cases, determine if a LexicalDeclaration (or only a\n  // Statement) is allowed here. If context is not empty then only a Statement\n  // is allowed. However, `let [` is an explicit negative lookahead for\n  // ExpressionStatement, so special-case it first.\n  if (nextCh === 91) return true // '['\n  if (context) return false\n\n  if (nextCh === 123) return true // '{'\n  if (isIdentifierStart(nextCh, true)) {\n    let pos = next + 1\n    while (isIdentifierChar(this.input.charCodeAt(pos), true)) ++pos\n    let ident = this.input.slice(next, pos)\n    if (!keywordRelationalOperator.test(ident)) return true\n  }\n  return false\n}\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp.isAsyncFunction = function() {\n  if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n    return false\n\n  skipWhiteSpace.lastIndex = this.pos\n  let skip = skipWhiteSpace.exec(this.input)\n  let next = this.pos + skip[0].length\n  return !lineBreak.test(this.input.slice(this.pos, next)) &&\n    this.input.slice(next, next + 8) === \"function\" &&\n    (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))\n}\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp.parseStatement = function(context, topLevel, exports) {\n  let starttype = this.type, node = this.startNode(), kind\n\n  if (this.isLet(context)) {\n    starttype = tt._var\n    kind = \"let\"\n  }\n\n  // Most types of statements are recognized by the keyword they\n  // start with. Many are trivial to parse, some require a bit of\n  // complexity.\n\n  switch (starttype) {\n  case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n  case tt._debugger: return this.parseDebuggerStatement(node)\n  case tt._do: return this.parseDoStatement(node)\n  case tt._for: return this.parseForStatement(node)\n  case tt._function:\n    // Function as sole body of either an if statement or a labeled statement\n    // works, but not when it is part of a labeled statement that is the sole\n    // body of an if statement.\n    if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) this.unexpected()\n    return this.parseFunctionStatement(node, false, !context)\n  case tt._class:\n    if (context) this.unexpected()\n    return this.parseClass(node, true)\n  case tt._if: return this.parseIfStatement(node)\n  case tt._return: return this.parseReturnStatement(node)\n  case tt._switch: return this.parseSwitchStatement(node)\n  case tt._throw: return this.parseThrowStatement(node)\n  case tt._try: return this.parseTryStatement(node)\n  case tt._const: case tt._var:\n    kind = kind || this.value\n    if (context && kind !== \"var\") this.unexpected()\n    return this.parseVarStatement(node, kind)\n  case tt._while: return this.parseWhileStatement(node)\n  case tt._with: return this.parseWithStatement(node)\n  case tt.braceL: return this.parseBlock(true, node)\n  case tt.semi: return this.parseEmptyStatement(node)\n  case tt._export:\n  case tt._import:\n    if (!this.options.allowImportExportEverywhere) {\n      if (!topLevel)\n        this.raise(this.start, \"'import' and 'export' may only appear at the top level\")\n      if (!this.inModule)\n        this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\")\n    }\n    return starttype === tt._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n  default:\n    if (this.isAsyncFunction()) {\n      if (context) this.unexpected()\n      this.next()\n      return this.parseFunctionStatement(node, true, !context)\n    }\n\n    let maybeName = this.value, expr = this.parseExpression()\n    if (starttype === tt.name && expr.type === \"Identifier\" && this.eat(tt.colon))\n      return this.parseLabeledStatement(node, maybeName, expr, context)\n    else return this.parseExpressionStatement(node, expr)\n  }\n}\n\npp.parseBreakContinueStatement = function(node, keyword) {\n  let isBreak = keyword === \"break\"\n  this.next()\n  if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null\n  else if (this.type !== tt.name) this.unexpected()\n  else {\n    node.label = this.parseIdent()\n    this.semicolon()\n  }\n\n  // Verify that there is an actual destination to break or\n  // continue to.\n  let i = 0\n  for (; i < this.labels.length; ++i) {\n    let lab = this.labels[i]\n    if (node.label == null || lab.name === node.label.name) {\n      if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break\n      if (node.label && isBreak) break\n    }\n  }\n  if (i === this.labels.length) this.raise(node.start, \"Unsyntactic \" + keyword)\n  return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n}\n\npp.parseDebuggerStatement = function(node) {\n  this.next()\n  this.semicolon()\n  return this.finishNode(node, \"DebuggerStatement\")\n}\n\npp.parseDoStatement = function(node) {\n  this.next()\n  this.labels.push(loopLabel)\n  node.body = this.parseStatement(\"do\")\n  this.labels.pop()\n  this.expect(tt._while)\n  node.test = this.parseParenExpression()\n  if (this.options.ecmaVersion >= 6)\n    this.eat(tt.semi)\n  else\n    this.semicolon()\n  return this.finishNode(node, \"DoWhileStatement\")\n}\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp.parseForStatement = function(node) {\n  this.next()\n  let awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual(\"await\")) ? this.lastTokStart : -1\n  this.labels.push(loopLabel)\n  this.enterScope(0)\n  this.expect(tt.parenL)\n  if (this.type === tt.semi) {\n    if (awaitAt > -1) this.unexpected(awaitAt)\n    return this.parseFor(node, null)\n  }\n  let isLet = this.isLet()\n  if (this.type === tt._var || this.type === tt._const || isLet) {\n    let init = this.startNode(), kind = isLet ? \"let\" : this.value\n    this.next()\n    this.parseVar(init, true, kind)\n    this.finishNode(init, \"VariableDeclaration\")\n    if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1 &&\n        !(kind !== \"var\" && init.declarations[0].init)) {\n      if (this.options.ecmaVersion >= 9) {\n        if (this.type === tt._in) {\n          if (awaitAt > -1) this.unexpected(awaitAt)\n        } else node.await = awaitAt > -1\n      }\n      return this.parseForIn(node, init)\n    }\n    if (awaitAt > -1) this.unexpected(awaitAt)\n    return this.parseFor(node, init)\n  }\n  let refDestructuringErrors = new DestructuringErrors\n  let init = this.parseExpression(true, refDestructuringErrors)\n  if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n    if (this.options.ecmaVersion >= 9) {\n      if (this.type === tt._in) {\n        if (awaitAt > -1) this.unexpected(awaitAt)\n      } else node.await = awaitAt > -1\n    }\n    this.toAssignable(init, false, refDestructuringErrors)\n    this.checkLVal(init)\n    return this.parseForIn(node, init)\n  } else {\n    this.checkExpressionErrors(refDestructuringErrors, true)\n  }\n  if (awaitAt > -1) this.unexpected(awaitAt)\n  return this.parseFor(node, init)\n}\n\npp.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n  this.next()\n  return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n}\n\npp.parseIfStatement = function(node) {\n  this.next()\n  node.test = this.parseParenExpression()\n  // allow function declarations in branches, but only in non-strict mode\n  node.consequent = this.parseStatement(\"if\")\n  node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null\n  return this.finishNode(node, \"IfStatement\")\n}\n\npp.parseReturnStatement = function(node) {\n  if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n    this.raise(this.start, \"'return' outside of function\")\n  this.next()\n\n  // In `return` (and `break`/`continue`), the keywords with\n  // optional arguments, we eagerly look for a semicolon or the\n  // possibility to insert one.\n\n  if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null\n  else { node.argument = this.parseExpression(); this.semicolon() }\n  return this.finishNode(node, \"ReturnStatement\")\n}\n\npp.parseSwitchStatement = function(node) {\n  this.next()\n  node.discriminant = this.parseParenExpression()\n  node.cases = []\n  this.expect(tt.braceL)\n  this.labels.push(switchLabel)\n  this.enterScope(0)\n\n  // Statements under must be grouped (by label) in SwitchCase\n  // nodes. `cur` is used to keep the node that we are currently\n  // adding statements to.\n\n  let cur\n  for (let sawDefault = false; this.type !== tt.braceR;) {\n    if (this.type === tt._case || this.type === tt._default) {\n      let isCase = this.type === tt._case\n      if (cur) this.finishNode(cur, \"SwitchCase\")\n      node.cases.push(cur = this.startNode())\n      cur.consequent = []\n      this.next()\n      if (isCase) {\n        cur.test = this.parseExpression()\n      } else {\n        if (sawDefault) this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\")\n        sawDefault = true\n        cur.test = null\n      }\n      this.expect(tt.colon)\n    } else {\n      if (!cur) this.unexpected()\n      cur.consequent.push(this.parseStatement(null))\n    }\n  }\n  this.exitScope()\n  if (cur) this.finishNode(cur, \"SwitchCase\")\n  this.next() // Closing brace\n  this.labels.pop()\n  return this.finishNode(node, \"SwitchStatement\")\n}\n\npp.parseThrowStatement = function(node) {\n  this.next()\n  if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n    this.raise(this.lastTokEnd, \"Illegal newline after throw\")\n  node.argument = this.parseExpression()\n  this.semicolon()\n  return this.finishNode(node, \"ThrowStatement\")\n}\n\n// Reused empty array added for node fields that are always empty.\n\nconst empty = []\n\npp.parseTryStatement = function(node) {\n  this.next()\n  node.block = this.parseBlock()\n  node.handler = null\n  if (this.type === tt._catch) {\n    let clause = this.startNode()\n    this.next()\n    if (this.eat(tt.parenL)) {\n      clause.param = this.parseBindingAtom()\n      let simple = clause.param.type === \"Identifier\"\n      this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0)\n      this.checkLVal(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL)\n      this.expect(tt.parenR)\n    } else {\n      if (this.options.ecmaVersion < 10) this.unexpected()\n      clause.param = null\n      this.enterScope(0)\n    }\n    clause.body = this.parseBlock(false)\n    this.exitScope()\n    node.handler = this.finishNode(clause, \"CatchClause\")\n  }\n  node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null\n  if (!node.handler && !node.finalizer)\n    this.raise(node.start, \"Missing catch or finally clause\")\n  return this.finishNode(node, \"TryStatement\")\n}\n\npp.parseVarStatement = function(node, kind) {\n  this.next()\n  this.parseVar(node, false, kind)\n  this.semicolon()\n  return this.finishNode(node, \"VariableDeclaration\")\n}\n\npp.parseWhileStatement = function(node) {\n  this.next()\n  node.test = this.parseParenExpression()\n  this.labels.push(loopLabel)\n  node.body = this.parseStatement(\"while\")\n  this.labels.pop()\n  return this.finishNode(node, \"WhileStatement\")\n}\n\npp.parseWithStatement = function(node) {\n  if (this.strict) this.raise(this.start, \"'with' in strict mode\")\n  this.next()\n  node.object = this.parseParenExpression()\n  node.body = this.parseStatement(\"with\")\n  return this.finishNode(node, \"WithStatement\")\n}\n\npp.parseEmptyStatement = function(node) {\n  this.next()\n  return this.finishNode(node, \"EmptyStatement\")\n}\n\npp.parseLabeledStatement = function(node, maybeName, expr, context) {\n  for (let label of this.labels)\n    if (label.name === maybeName)\n      this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\")\n  let kind = this.type.isLoop ? \"loop\" : this.type === tt._switch ? \"switch\" : null\n  for (let i = this.labels.length - 1; i >= 0; i--) {\n    let label = this.labels[i]\n    if (label.statementStart === node.start) {\n      // Update information about previous labels on this node\n      label.statementStart = this.start\n      label.kind = kind\n    } else break\n  }\n  this.labels.push({name: maybeName, kind, statementStart: this.start})\n  node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\")\n  this.labels.pop()\n  node.label = expr\n  return this.finishNode(node, \"LabeledStatement\")\n}\n\npp.parseExpressionStatement = function(node, expr) {\n  node.expression = expr\n  this.semicolon()\n  return this.finishNode(node, \"ExpressionStatement\")\n}\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp.parseBlock = function(createNewLexicalScope = true, node = this.startNode()) {\n  node.body = []\n  this.expect(tt.braceL)\n  if (createNewLexicalScope) this.enterScope(0)\n  while (!this.eat(tt.braceR)) {\n    let stmt = this.parseStatement(null)\n    node.body.push(stmt)\n  }\n  if (createNewLexicalScope) this.exitScope()\n  return this.finishNode(node, \"BlockStatement\")\n}\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp.parseFor = function(node, init) {\n  node.init = init\n  this.expect(tt.semi)\n  node.test = this.type === tt.semi ? null : this.parseExpression()\n  this.expect(tt.semi)\n  node.update = this.type === tt.parenR ? null : this.parseExpression()\n  this.expect(tt.parenR)\n  node.body = this.parseStatement(\"for\")\n  this.exitScope()\n  this.labels.pop()\n  return this.finishNode(node, \"ForStatement\")\n}\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp.parseForIn = function(node, init) {\n  let type = this.type === tt._in ? \"ForInStatement\" : \"ForOfStatement\"\n  this.next()\n  if (type === \"ForInStatement\") {\n    if (init.type === \"AssignmentPattern\" ||\n      (init.type === \"VariableDeclaration\" && init.declarations[0].init != null &&\n       (this.strict || init.declarations[0].id.type !== \"Identifier\")))\n      this.raise(init.start, \"Invalid assignment in for-in loop head\")\n  }\n  node.left = init\n  node.right = type === \"ForInStatement\" ? this.parseExpression() : this.parseMaybeAssign()\n  this.expect(tt.parenR)\n  node.body = this.parseStatement(\"for\")\n  this.exitScope()\n  this.labels.pop()\n  return this.finishNode(node, type)\n}\n\n// Parse a list of variable declarations.\n\npp.parseVar = function(node, isFor, kind) {\n  node.declarations = []\n  node.kind = kind\n  for (;;) {\n    let decl = this.startNode()\n    this.parseVarId(decl, kind)\n    if (this.eat(tt.eq)) {\n      decl.init = this.parseMaybeAssign(isFor)\n    } else if (kind === \"const\" && !(this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n      this.unexpected()\n    } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === tt._in || this.isContextual(\"of\")))) {\n      this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\")\n    } else {\n      decl.init = null\n    }\n    node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"))\n    if (!this.eat(tt.comma)) break\n  }\n  return node\n}\n\npp.parseVarId = function(decl, kind) {\n  if ((kind === \"const\" || kind === \"let\") && this.isContextual(\"let\")) {\n    this.raiseRecoverable(this.start, \"let is disallowed as a lexically bound name\")\n  }\n  decl.id = this.parseBindingAtom()\n  this.checkLVal(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false)\n}\n\nconst FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n    if (this.type === tt.star && (statement & FUNC_HANGING_STATEMENT))\n      this.unexpected()\n    node.generator = this.eat(tt.star)\n  }\n  if (this.options.ecmaVersion >= 8)\n    node.async = !!isAsync\n\n  if (statement & FUNC_STATEMENT) {\n    node.id = (statement & FUNC_NULLABLE_ID) && this.type !== tt.name ? null : this.parseIdent()\n    if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n      // If it is a regular function declaration in sloppy mode, then it is\n      // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n      // mode depends on properties of the current scope (see\n      // treatFunctionsAsVar).\n      this.checkLVal(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION)\n  }\n\n  let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n  this.enterScope(functionFlags(node.async, node.generator))\n\n  if (!(statement & FUNC_STATEMENT))\n    node.id = this.type === tt.name ? this.parseIdent() : null\n\n  this.parseFunctionParams(node)\n  this.parseFunctionBody(node, allowExpressionBody, false)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n}\n\npp.parseFunctionParams = function(node) {\n  this.expect(tt.parenL)\n  node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n  this.checkYieldAwaitInDefaultParams()\n}\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp.parseClass = function(node, isStatement) {\n  this.next()\n\n  // ecma-262 14.6 Class Definitions\n  // A class definition is always strict mode code.\n  const oldStrict = this.strict\n  this.strict = true\n\n  this.parseClassId(node, isStatement)\n  this.parseClassSuper(node)\n  let classBody = this.startNode()\n  let hadConstructor = false\n  classBody.body = []\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    const element = this.parseClassElement(node.superClass !== null)\n    if (element) {\n      classBody.body.push(element)\n      if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n        if (hadConstructor) this.raise(element.start, \"Duplicate constructor in the same class\")\n        hadConstructor = true\n      }\n    }\n  }\n  node.body = this.finishNode(classBody, \"ClassBody\")\n  this.strict = oldStrict\n  return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n}\n\npp.parseClassElement = function(constructorAllowsSuper) {\n  if (this.eat(tt.semi)) return null\n\n  let method = this.startNode()\n  const tryContextual = (k, noLineBreak = false) => {\n    const start = this.start, startLoc = this.startLoc\n    if (!this.eatContextual(k)) return false\n    if (this.type !== tt.parenL && (!noLineBreak || !this.canInsertSemicolon())) return true\n    if (method.key) this.unexpected()\n    method.computed = false\n    method.key = this.startNodeAt(start, startLoc)\n    method.key.name = k\n    this.finishNode(method.key, \"Identifier\")\n    return false\n  }\n\n  method.kind = \"method\"\n  method.static = tryContextual(\"static\")\n  let isGenerator = this.eat(tt.star)\n  let isAsync = false\n  if (!isGenerator) {\n    if (this.options.ecmaVersion >= 8 && tryContextual(\"async\", true)) {\n      isAsync = true\n      isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n    } else if (tryContextual(\"get\")) {\n      method.kind = \"get\"\n    } else if (tryContextual(\"set\")) {\n      method.kind = \"set\"\n    }\n  }\n  if (!method.key) this.parsePropertyName(method)\n  let {key} = method\n  let allowsDirectSuper = false\n  if (!method.computed && !method.static && (key.type === \"Identifier\" && key.name === \"constructor\" ||\n      key.type === \"Literal\" && key.value === \"constructor\")) {\n    if (method.kind !== \"method\") this.raise(key.start, \"Constructor can't have get/set modifier\")\n    if (isGenerator) this.raise(key.start, \"Constructor can't be a generator\")\n    if (isAsync) this.raise(key.start, \"Constructor can't be an async method\")\n    method.kind = \"constructor\"\n    allowsDirectSuper = constructorAllowsSuper\n  } else if (method.static && key.type === \"Identifier\" && key.name === \"prototype\") {\n    this.raise(key.start, \"Classes may not have a static property named prototype\")\n  }\n  this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper)\n  if (method.kind === \"get\" && method.value.params.length !== 0)\n    this.raiseRecoverable(method.value.start, \"getter should have no params\")\n  if (method.kind === \"set\" && method.value.params.length !== 1)\n    this.raiseRecoverable(method.value.start, \"setter should have exactly one param\")\n  if (method.kind === \"set\" && method.value.params[0].type === \"RestElement\")\n    this.raiseRecoverable(method.value.params[0].start, \"Setter cannot use rest params\")\n  return method\n}\n\npp.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n  method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper)\n  return this.finishNode(method, \"MethodDefinition\")\n}\n\npp.parseClassId = function(node, isStatement) {\n  if (this.type === tt.name) {\n    node.id = this.parseIdent()\n    if (isStatement)\n      this.checkLVal(node.id, BIND_LEXICAL, false)\n  } else {\n    if (isStatement === true)\n      this.unexpected()\n    node.id = null\n  }\n}\n\npp.parseClassSuper = function(node) {\n  node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null\n}\n\n// Parses module export declaration.\n\npp.parseExport = function(node, exports) {\n  this.next()\n  // export * from '...'\n  if (this.eat(tt.star)) {\n    this.expectContextual(\"from\")\n    if (this.type !== tt.string) this.unexpected()\n    node.source = this.parseExprAtom()\n    this.semicolon()\n    return this.finishNode(node, \"ExportAllDeclaration\")\n  }\n  if (this.eat(tt._default)) { // export default ...\n    this.checkExport(exports, \"default\", this.lastTokStart)\n    let isAsync\n    if (this.type === tt._function || (isAsync = this.isAsyncFunction())) {\n      let fNode = this.startNode()\n      this.next()\n      if (isAsync) this.next()\n      node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n    } else if (this.type === tt._class) {\n      let cNode = this.startNode()\n      node.declaration = this.parseClass(cNode, \"nullableID\")\n    } else {\n      node.declaration = this.parseMaybeAssign()\n      this.semicolon()\n    }\n    return this.finishNode(node, \"ExportDefaultDeclaration\")\n  }\n  // export var|const|let|function|class ...\n  if (this.shouldParseExportStatement()) {\n    node.declaration = this.parseStatement(null)\n    if (node.declaration.type === \"VariableDeclaration\")\n      this.checkVariableExport(exports, node.declaration.declarations)\n    else\n      this.checkExport(exports, node.declaration.id.name, node.declaration.id.start)\n    node.specifiers = []\n    node.source = null\n  } else { // export { x, y as z } [from '...']\n    node.declaration = null\n    node.specifiers = this.parseExportSpecifiers(exports)\n    if (this.eatContextual(\"from\")) {\n      if (this.type !== tt.string) this.unexpected()\n      node.source = this.parseExprAtom()\n    } else {\n      for (let spec of node.specifiers) {\n        // check for keywords used as local names\n        this.checkUnreserved(spec.local)\n        // check if export is defined\n        this.checkLocalExport(spec.local)\n      }\n\n      node.source = null\n    }\n    this.semicolon()\n  }\n  return this.finishNode(node, \"ExportNamedDeclaration\")\n}\n\npp.checkExport = function(exports, name, pos) {\n  if (!exports) return\n  if (has(exports, name))\n    this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\")\n  exports[name] = true\n}\n\npp.checkPatternExport = function(exports, pat) {\n  let type = pat.type\n  if (type === \"Identifier\")\n    this.checkExport(exports, pat.name, pat.start)\n  else if (type === \"ObjectPattern\")\n    for (let prop of pat.properties)\n      this.checkPatternExport(exports, prop)\n  else if (type === \"ArrayPattern\")\n    for (let elt of pat.elements) {\n      if (elt) this.checkPatternExport(exports, elt)\n    }\n  else if (type === \"Property\")\n    this.checkPatternExport(exports, pat.value)\n  else if (type === \"AssignmentPattern\")\n    this.checkPatternExport(exports, pat.left)\n  else if (type === \"RestElement\")\n    this.checkPatternExport(exports, pat.argument)\n  else if (type === \"ParenthesizedExpression\")\n    this.checkPatternExport(exports, pat.expression)\n}\n\npp.checkVariableExport = function(exports, decls) {\n  if (!exports) return\n  for (let decl of decls)\n    this.checkPatternExport(exports, decl.id)\n}\n\npp.shouldParseExportStatement = function() {\n  return this.type.keyword === \"var\" ||\n    this.type.keyword === \"const\" ||\n    this.type.keyword === \"class\" ||\n    this.type.keyword === \"function\" ||\n    this.isLet() ||\n    this.isAsyncFunction()\n}\n\n// Parses a comma-separated list of module exports.\n\npp.parseExportSpecifiers = function(exports) {\n  let nodes = [], first = true\n  // export { x, y as z } [from '...']\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    let node = this.startNode()\n    node.local = this.parseIdent(true)\n    node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local\n    this.checkExport(exports, node.exported.name, node.exported.start)\n    nodes.push(this.finishNode(node, \"ExportSpecifier\"))\n  }\n  return nodes\n}\n\n// Parses import declaration.\n\npp.parseImport = function(node) {\n  this.next()\n  // import '...'\n  if (this.type === tt.string) {\n    node.specifiers = empty\n    node.source = this.parseExprAtom()\n  } else {\n    node.specifiers = this.parseImportSpecifiers()\n    this.expectContextual(\"from\")\n    node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()\n  }\n  this.semicolon()\n  return this.finishNode(node, \"ImportDeclaration\")\n}\n\n// Parses a comma-separated list of module imports.\n\npp.parseImportSpecifiers = function() {\n  let nodes = [], first = true\n  if (this.type === tt.name) {\n    // import defaultObj, { x, y as z } from '...'\n    let node = this.startNode()\n    node.local = this.parseIdent()\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"))\n    if (!this.eat(tt.comma)) return nodes\n  }\n  if (this.type === tt.star) {\n    let node = this.startNode()\n    this.next()\n    this.expectContextual(\"as\")\n    node.local = this.parseIdent()\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportNamespaceSpecifier\"))\n    return nodes\n  }\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    let node = this.startNode()\n    node.imported = this.parseIdent(true)\n    if (this.eatContextual(\"as\")) {\n      node.local = this.parseIdent()\n    } else {\n      this.checkUnreserved(node.imported)\n      node.local = node.imported\n    }\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportSpecifier\"))\n  }\n  return nodes\n}\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp.adaptDirectivePrologue = function(statements) {\n  for (let i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n    statements[i].directive = statements[i].expression.raw.slice(1, -1)\n  }\n}\npp.isDirectiveCandidate = function(statement) {\n  return (\n    statement.type === \"ExpressionStatement\" &&\n    statement.expression.type === \"Literal\" &&\n    typeof statement.expression.value === \"string\" &&\n    // Reject parenthesized strings.\n    (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n  )\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {has} from \"./util\"\nimport {BIND_NONE, BIND_OUTSIDE} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp.toAssignable = function(node, isBinding, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 6 && node) {\n    switch (node.type) {\n    case \"Identifier\":\n      if (this.inAsync && node.name === \"await\")\n        this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\")\n      break\n\n    case \"ObjectPattern\":\n    case \"ArrayPattern\":\n    case \"RestElement\":\n      break\n\n    case \"ObjectExpression\":\n      node.type = \"ObjectPattern\"\n      if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n      for (let prop of node.properties) {\n        this.toAssignable(prop, isBinding)\n        // Early error:\n        //   AssignmentRestProperty[Yield, Await] :\n        //     `...` DestructuringAssignmentTarget[Yield, Await]\n        //\n        //   It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n        if (\n          prop.type === \"RestElement\" &&\n          (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n        ) {\n          this.raise(prop.argument.start, \"Unexpected token\")\n        }\n      }\n      break\n\n    case \"Property\":\n      // AssignmentProperty has type === \"Property\"\n      if (node.kind !== \"init\") this.raise(node.key.start, \"Object pattern can't contain getter or setter\")\n      this.toAssignable(node.value, isBinding)\n      break\n\n    case \"ArrayExpression\":\n      node.type = \"ArrayPattern\"\n      if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n      this.toAssignableList(node.elements, isBinding)\n      break\n\n    case \"SpreadElement\":\n      node.type = \"RestElement\"\n      this.toAssignable(node.argument, isBinding)\n      if (node.argument.type === \"AssignmentPattern\")\n        this.raise(node.argument.start, \"Rest elements cannot have a default value\")\n      break\n\n    case \"AssignmentExpression\":\n      if (node.operator !== \"=\") this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\")\n      node.type = \"AssignmentPattern\"\n      delete node.operator\n      this.toAssignable(node.left, isBinding)\n      // falls through to AssignmentPattern\n\n    case \"AssignmentPattern\":\n      break\n\n    case \"ParenthesizedExpression\":\n      this.toAssignable(node.expression, isBinding, refDestructuringErrors)\n      break\n\n    case \"MemberExpression\":\n      if (!isBinding) break\n\n    default:\n      this.raise(node.start, \"Assigning to rvalue\")\n    }\n  } else if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n  return node\n}\n\n// Convert list of expression atoms to binding list.\n\npp.toAssignableList = function(exprList, isBinding) {\n  let end = exprList.length\n  for (let i = 0; i < end; i++) {\n    let elt = exprList[i]\n    if (elt) this.toAssignable(elt, isBinding)\n  }\n  if (end) {\n    let last = exprList[end - 1]\n    if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n      this.unexpected(last.argument.start)\n  }\n  return exprList\n}\n\n// Parses spread element.\n\npp.parseSpread = function(refDestructuringErrors) {\n  let node = this.startNode()\n  this.next()\n  node.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n  return this.finishNode(node, \"SpreadElement\")\n}\n\npp.parseRestBinding = function() {\n  let node = this.startNode()\n  this.next()\n\n  // RestElement inside of a function parameter must be an identifier\n  if (this.options.ecmaVersion === 6 && this.type !== tt.name)\n    this.unexpected()\n\n  node.argument = this.parseBindingAtom()\n\n  return this.finishNode(node, \"RestElement\")\n}\n\n// Parses lvalue (assignable) atom.\n\npp.parseBindingAtom = function() {\n  if (this.options.ecmaVersion >= 6) {\n    switch (this.type) {\n    case tt.bracketL:\n      let node = this.startNode()\n      this.next()\n      node.elements = this.parseBindingList(tt.bracketR, true, true)\n      return this.finishNode(node, \"ArrayPattern\")\n\n    case tt.braceL:\n      return this.parseObj(true)\n    }\n  }\n  return this.parseIdent()\n}\n\npp.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n  let elts = [], first = true\n  while (!this.eat(close)) {\n    if (first) first = false\n    else this.expect(tt.comma)\n    if (allowEmpty && this.type === tt.comma) {\n      elts.push(null)\n    } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n      break\n    } else if (this.type === tt.ellipsis) {\n      let rest = this.parseRestBinding()\n      this.parseBindingListItem(rest)\n      elts.push(rest)\n      if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n      this.expect(close)\n      break\n    } else {\n      let elem = this.parseMaybeDefault(this.start, this.startLoc)\n      this.parseBindingListItem(elem)\n      elts.push(elem)\n    }\n  }\n  return elts\n}\n\npp.parseBindingListItem = function(param) {\n  return param\n}\n\n// Parses assignment pattern around given atom if possible.\n\npp.parseMaybeDefault = function(startPos, startLoc, left) {\n  left = left || this.parseBindingAtom()\n  if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left\n  let node = this.startNodeAt(startPos, startLoc)\n  node.left = left\n  node.right = this.parseMaybeAssign()\n  return this.finishNode(node, \"AssignmentPattern\")\n}\n\n// Verify that a node is an lval — something that can be assigned\n// to.\n// bindingType can be either:\n// 'var' indicating that the lval creates a 'var' binding\n// 'let' indicating that the lval creates a lexical ('let' or 'const') binding\n// 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references\n\npp.checkLVal = function(expr, bindingType = BIND_NONE, checkClashes) {\n  switch (expr.type) {\n  case \"Identifier\":\n    if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n      this.raiseRecoverable(expr.start, (bindingType ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\")\n    if (checkClashes) {\n      if (has(checkClashes, expr.name))\n        this.raiseRecoverable(expr.start, \"Argument name clash\")\n      checkClashes[expr.name] = true\n    }\n    if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) this.declareName(expr.name, bindingType, expr.start)\n    break\n\n  case \"MemberExpression\":\n    if (bindingType) this.raiseRecoverable(expr.start, \"Binding member expression\")\n    break\n\n  case \"ObjectPattern\":\n    for (let prop of expr.properties)\n      this.checkLVal(prop, bindingType, checkClashes)\n    break\n\n  case \"Property\":\n    // AssignmentProperty has type === \"Property\"\n    this.checkLVal(expr.value, bindingType, checkClashes)\n    break\n\n  case \"ArrayPattern\":\n    for (let elem of expr.elements) {\n      if (elem) this.checkLVal(elem, bindingType, checkClashes)\n    }\n    break\n\n  case \"AssignmentPattern\":\n    this.checkLVal(expr.left, bindingType, checkClashes)\n    break\n\n  case \"RestElement\":\n    this.checkLVal(expr.argument, bindingType, checkClashes)\n    break\n\n  case \"ParenthesizedExpression\":\n    this.checkLVal(expr.expression, bindingType, checkClashes)\n    break\n\n  default:\n    this.raise(expr.start, (bindingType ? \"Binding\" : \"Assigning to\") + \" rvalue\")\n  }\n}\n","// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {lineBreak} from \"./whitespace\"\nimport {functionFlags, SCOPE_ARROW, SCOPE_SUPER, SCOPE_DIRECT_SUPER, BIND_OUTSIDE, BIND_VAR} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n    return\n  if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n    return\n  let {key} = prop, name\n  switch (key.type) {\n  case \"Identifier\": name = key.name; break\n  case \"Literal\": name = String(key.value); break\n  default: return\n  }\n  let {kind} = prop\n  if (this.options.ecmaVersion >= 6) {\n    if (name === \"__proto__\" && kind === \"init\") {\n      if (propHash.proto) {\n        if (refDestructuringErrors && refDestructuringErrors.doubleProto < 0) refDestructuringErrors.doubleProto = key.start\n        // Backwards-compat kludge. Can be removed in version 6.0\n        else this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\")\n      }\n      propHash.proto = true\n    }\n    return\n  }\n  name = \"$\" + name\n  let other = propHash[name]\n  if (other) {\n    let redefinition\n    if (kind === \"init\") {\n      redefinition = this.strict && other.init || other.get || other.set\n    } else {\n      redefinition = other.init || other[kind]\n    }\n    if (redefinition)\n      this.raiseRecoverable(key.start, \"Redefinition of property\")\n  } else {\n    other = propHash[name] = {\n      init: false,\n      get: false,\n      set: false\n    }\n  }\n  other[kind] = true\n}\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp.parseExpression = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseMaybeAssign(noIn, refDestructuringErrors)\n  if (this.type === tt.comma) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.expressions = [expr]\n    while (this.eat(tt.comma)) node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors))\n    return this.finishNode(node, \"SequenceExpression\")\n  }\n  return expr\n}\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {\n  if (this.isContextual(\"yield\")) {\n    if (this.inGenerator) return this.parseYield(noIn)\n    // The tokenizer will assume an expression is allowed after\n    // `yield`, but this isn't that kind of yield\n    else this.exprAllowed = false\n  }\n\n  let ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldShorthandAssign = -1\n  if (refDestructuringErrors) {\n    oldParenAssign = refDestructuringErrors.parenthesizedAssign\n    oldTrailingComma = refDestructuringErrors.trailingComma\n    oldShorthandAssign = refDestructuringErrors.shorthandAssign\n    refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.shorthandAssign = -1\n  } else {\n    refDestructuringErrors = new DestructuringErrors\n    ownDestructuringErrors = true\n  }\n\n  let startPos = this.start, startLoc = this.startLoc\n  if (this.type === tt.parenL || this.type === tt.name)\n    this.potentialArrowAt = this.start\n  let left = this.parseMaybeConditional(noIn, refDestructuringErrors)\n  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc)\n  if (this.type.isAssign) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.operator = this.value\n    node.left = this.type === tt.eq ? this.toAssignable(left, false, refDestructuringErrors) : left\n    if (!ownDestructuringErrors) DestructuringErrors.call(refDestructuringErrors)\n    refDestructuringErrors.shorthandAssign = -1 // reset because shorthand default was used correctly\n    this.checkLVal(left)\n    this.next()\n    node.right = this.parseMaybeAssign(noIn)\n    return this.finishNode(node, \"AssignmentExpression\")\n  } else {\n    if (ownDestructuringErrors) this.checkExpressionErrors(refDestructuringErrors, true)\n  }\n  if (oldParenAssign > -1) refDestructuringErrors.parenthesizedAssign = oldParenAssign\n  if (oldTrailingComma > -1) refDestructuringErrors.trailingComma = oldTrailingComma\n  if (oldShorthandAssign > -1) refDestructuringErrors.shorthandAssign = oldShorthandAssign\n  return left\n}\n\n// Parse a ternary conditional (`?:`) operator.\n\npp.parseMaybeConditional = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseExprOps(noIn, refDestructuringErrors)\n  if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n  if (this.eat(tt.question)) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.test = expr\n    node.consequent = this.parseMaybeAssign()\n    this.expect(tt.colon)\n    node.alternate = this.parseMaybeAssign(noIn)\n    return this.finishNode(node, \"ConditionalExpression\")\n  }\n  return expr\n}\n\n// Start the precedence parser.\n\npp.parseExprOps = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseMaybeUnary(refDestructuringErrors, false)\n  if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n  return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)\n}\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {\n  let prec = this.type.binop\n  if (prec != null && (!noIn || this.type !== tt._in)) {\n    if (prec > minPrec) {\n      let logical = this.type === tt.logicalOR || this.type === tt.logicalAND\n      let op = this.value\n      this.next()\n      let startPos = this.start, startLoc = this.startLoc\n      let right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn)\n      let node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical)\n      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)\n    }\n  }\n  return left\n}\n\npp.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n  let node = this.startNodeAt(startPos, startLoc)\n  node.left = left\n  node.operator = op\n  node.right = right\n  return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n}\n\n// Parse unary operators, both prefix and postfix.\n\npp.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {\n  let startPos = this.start, startLoc = this.startLoc, expr\n  if (this.isContextual(\"await\") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {\n    expr = this.parseAwait()\n    sawUnary = true\n  } else if (this.type.prefix) {\n    let node = this.startNode(), update = this.type === tt.incDec\n    node.operator = this.value\n    node.prefix = true\n    this.next()\n    node.argument = this.parseMaybeUnary(null, true)\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    if (update) this.checkLVal(node.argument)\n    else if (this.strict && node.operator === \"delete\" &&\n             node.argument.type === \"Identifier\")\n      this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\")\n    else sawUnary = true\n    expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\")\n  } else {\n    expr = this.parseExprSubscripts(refDestructuringErrors)\n    if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n    while (this.type.postfix && !this.canInsertSemicolon()) {\n      let node = this.startNodeAt(startPos, startLoc)\n      node.operator = this.value\n      node.prefix = false\n      node.argument = expr\n      this.checkLVal(expr)\n      this.next()\n      expr = this.finishNode(node, \"UpdateExpression\")\n    }\n  }\n\n  if (!sawUnary && this.eat(tt.starstar))\n    return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false)\n  else\n    return expr\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp.parseExprSubscripts = function(refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseExprAtom(refDestructuringErrors)\n  let skipArrowSubscripts = expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\"\n  if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr\n  let result = this.parseSubscripts(expr, startPos, startLoc)\n  if (refDestructuringErrors && result.type === \"MemberExpression\") {\n    if (refDestructuringErrors.parenthesizedAssign >= result.start) refDestructuringErrors.parenthesizedAssign = -1\n    if (refDestructuringErrors.parenthesizedBind >= result.start) refDestructuringErrors.parenthesizedBind = -1\n  }\n  return result\n}\n\npp.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n  let maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n      this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === \"async\"\n  while (true) {\n    let element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow)\n    if (element === base || element.type === \"ArrowFunctionExpression\") return element\n    base = element\n  }\n}\n\npp.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow) {\n  let computed = this.eat(tt.bracketL)\n  if (computed || this.eat(tt.dot)) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.object = base\n    node.property = computed ? this.parseExpression() : this.parseIdent(true)\n    node.computed = !!computed\n    if (computed) this.expect(tt.bracketR)\n    base = this.finishNode(node, \"MemberExpression\")\n  } else if (!noCalls && this.eat(tt.parenL)) {\n    let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n    this.yieldPos = 0\n    this.awaitPos = 0\n    this.awaitIdentPos = 0\n    let exprList = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors)\n    if (maybeAsyncArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false)\n      this.checkYieldAwaitInDefaultParams()\n      if (this.awaitIdentPos > 0)\n        this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\")\n      this.yieldPos = oldYieldPos\n      this.awaitPos = oldAwaitPos\n      this.awaitIdentPos = oldAwaitIdentPos\n      return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n    }\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    this.yieldPos = oldYieldPos || this.yieldPos\n    this.awaitPos = oldAwaitPos || this.awaitPos\n    this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos\n    let node = this.startNodeAt(startPos, startLoc)\n    node.callee = base\n    node.arguments = exprList\n    base = this.finishNode(node, \"CallExpression\")\n  } else if (this.type === tt.backQuote) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.tag = base\n    node.quasi = this.parseTemplate({isTagged: true})\n    base = this.finishNode(node, \"TaggedTemplateExpression\")\n  }\n  return base\n}\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp.parseExprAtom = function(refDestructuringErrors) {\n  // If a division operator appears in an expression position, the\n  // tokenizer got confused, and we force it to read a regexp instead.\n  if (this.type === tt.slash) this.readRegexp()\n\n  let node, canBeArrow = this.potentialArrowAt === this.start\n  switch (this.type) {\n  case tt._super:\n    if (!this.allowSuper)\n      this.raise(this.start, \"'super' keyword outside a method\")\n    node = this.startNode()\n    this.next()\n    if (this.type === tt.parenL && !this.allowDirectSuper)\n      this.raise(node.start, \"super() call outside constructor of a subclass\")\n    // The `super` keyword can appear at below:\n    // SuperProperty:\n    //     super [ Expression ]\n    //     super . IdentifierName\n    // SuperCall:\n    //     super Arguments\n    if (this.type !== tt.dot && this.type !== tt.bracketL && this.type !== tt.parenL)\n      this.unexpected()\n    return this.finishNode(node, \"Super\")\n\n  case tt._this:\n    node = this.startNode()\n    this.next()\n    return this.finishNode(node, \"ThisExpression\")\n\n  case tt.name:\n    let startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc\n    let id = this.parseIdent(false)\n    if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(tt._function))\n      return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true)\n    if (canBeArrow && !this.canInsertSemicolon()) {\n      if (this.eat(tt.arrow))\n        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false)\n      if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === tt.name && !containsEsc) {\n        id = this.parseIdent(false)\n        if (this.canInsertSemicolon() || !this.eat(tt.arrow))\n          this.unexpected()\n        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n      }\n    }\n    return id\n\n  case tt.regexp:\n    let value = this.value\n    node = this.parseLiteral(value.value)\n    node.regex = {pattern: value.pattern, flags: value.flags}\n    return node\n\n  case tt.num: case tt.string:\n    return this.parseLiteral(this.value)\n\n  case tt._null: case tt._true: case tt._false:\n    node = this.startNode()\n    node.value = this.type === tt._null ? null : this.type === tt._true\n    node.raw = this.type.keyword\n    this.next()\n    return this.finishNode(node, \"Literal\")\n\n  case tt.parenL:\n    let start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow)\n    if (refDestructuringErrors) {\n      if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n        refDestructuringErrors.parenthesizedAssign = start\n      if (refDestructuringErrors.parenthesizedBind < 0)\n        refDestructuringErrors.parenthesizedBind = start\n    }\n    return expr\n\n  case tt.bracketL:\n    node = this.startNode()\n    this.next()\n    node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors)\n    return this.finishNode(node, \"ArrayExpression\")\n\n  case tt.braceL:\n    return this.parseObj(false, refDestructuringErrors)\n\n  case tt._function:\n    node = this.startNode()\n    this.next()\n    return this.parseFunction(node, 0)\n\n  case tt._class:\n    return this.parseClass(this.startNode(), false)\n\n  case tt._new:\n    return this.parseNew()\n\n  case tt.backQuote:\n    return this.parseTemplate()\n\n  default:\n    this.unexpected()\n  }\n}\n\npp.parseLiteral = function(value) {\n  let node = this.startNode()\n  node.value = value\n  node.raw = this.input.slice(this.start, this.end)\n  this.next()\n  return this.finishNode(node, \"Literal\")\n}\n\npp.parseParenExpression = function() {\n  this.expect(tt.parenL)\n  let val = this.parseExpression()\n  this.expect(tt.parenR)\n  return val\n}\n\npp.parseParenAndDistinguishExpression = function(canBeArrow) {\n  let startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8\n  if (this.options.ecmaVersion >= 6) {\n    this.next()\n\n    let innerStartPos = this.start, innerStartLoc = this.startLoc\n    let exprList = [], first = true, lastIsComma = false\n    let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart\n    this.yieldPos = 0\n    this.awaitPos = 0\n    // Do not save awaitIdentPos to allow checking awaits nested in parameters\n    while (this.type !== tt.parenR) {\n      first ? first = false : this.expect(tt.comma)\n      if (allowTrailingComma && this.afterTrailingComma(tt.parenR, true)) {\n        lastIsComma = true\n        break\n      } else if (this.type === tt.ellipsis) {\n        spreadStart = this.start\n        exprList.push(this.parseParenItem(this.parseRestBinding()))\n        if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n        break\n      } else {\n        exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem))\n      }\n    }\n    let innerEndPos = this.start, innerEndLoc = this.startLoc\n    this.expect(tt.parenR)\n\n    if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false)\n      this.checkYieldAwaitInDefaultParams()\n      this.yieldPos = oldYieldPos\n      this.awaitPos = oldAwaitPos\n      return this.parseParenArrowList(startPos, startLoc, exprList)\n    }\n\n    if (!exprList.length || lastIsComma) this.unexpected(this.lastTokStart)\n    if (spreadStart) this.unexpected(spreadStart)\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    this.yieldPos = oldYieldPos || this.yieldPos\n    this.awaitPos = oldAwaitPos || this.awaitPos\n\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc)\n      val.expressions = exprList\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc)\n    } else {\n      val = exprList[0]\n    }\n  } else {\n    val = this.parseParenExpression()\n  }\n\n  if (this.options.preserveParens) {\n    let par = this.startNodeAt(startPos, startLoc)\n    par.expression = val\n    return this.finishNode(par, \"ParenthesizedExpression\")\n  } else {\n    return val\n  }\n}\n\npp.parseParenItem = function(item) {\n  return item\n}\n\npp.parseParenArrowList = function(startPos, startLoc, exprList) {\n  return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n}\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nconst empty = []\n\npp.parseNew = function() {\n  let node = this.startNode()\n  let meta = this.parseIdent(true)\n  if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {\n    node.meta = meta\n    let containsEsc = this.containsEsc\n    node.property = this.parseIdent(true)\n    if (node.property.name !== \"target\" || containsEsc)\n      this.raiseRecoverable(node.property.start, \"The only valid meta property for new is new.target\")\n    if (!this.inNonArrowFunction())\n      this.raiseRecoverable(node.start, \"new.target can only be used in functions\")\n    return this.finishNode(node, \"MetaProperty\")\n  }\n  let startPos = this.start, startLoc = this.startLoc\n  node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true)\n  if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false)\n  else node.arguments = empty\n  return this.finishNode(node, \"NewExpression\")\n}\n\n// Parse template expression.\n\npp.parseTemplateElement = function({isTagged}) {\n  let elem = this.startNode()\n  if (this.type === tt.invalidTemplate) {\n    if (!isTagged) {\n      this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\")\n    }\n    elem.value = {\n      raw: this.value,\n      cooked: null\n    }\n  } else {\n    elem.value = {\n      raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.value\n    }\n  }\n  this.next()\n  elem.tail = this.type === tt.backQuote\n  return this.finishNode(elem, \"TemplateElement\")\n}\n\npp.parseTemplate = function({isTagged = false} = {}) {\n  let node = this.startNode()\n  this.next()\n  node.expressions = []\n  let curElt = this.parseTemplateElement({isTagged})\n  node.quasis = [curElt]\n  while (!curElt.tail) {\n    if (this.type === tt.eof) this.raise(this.pos, \"Unterminated template literal\")\n    this.expect(tt.dollarBraceL)\n    node.expressions.push(this.parseExpression())\n    this.expect(tt.braceR)\n    node.quasis.push(curElt = this.parseTemplateElement({isTagged}))\n  }\n  this.next()\n  return this.finishNode(node, \"TemplateLiteral\")\n}\n\npp.isAsyncProp = function(prop) {\n  return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n    (this.type === tt.name || this.type === tt.num || this.type === tt.string || this.type === tt.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === tt.star)) &&\n    !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\n// Parse an object literal or binding pattern.\n\npp.parseObj = function(isPattern, refDestructuringErrors) {\n  let node = this.startNode(), first = true, propHash = {}\n  node.properties = []\n  this.next()\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    const prop = this.parseProperty(isPattern, refDestructuringErrors)\n    if (!isPattern) this.checkPropClash(prop, propHash, refDestructuringErrors)\n    node.properties.push(prop)\n  }\n  return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n}\n\npp.parseProperty = function(isPattern, refDestructuringErrors) {\n  let prop = this.startNode(), isGenerator, isAsync, startPos, startLoc\n  if (this.options.ecmaVersion >= 9 && this.eat(tt.ellipsis)) {\n    if (isPattern) {\n      prop.argument = this.parseIdent(false)\n      if (this.type === tt.comma) {\n        this.raise(this.start, \"Comma is not permitted after the rest element\")\n      }\n      return this.finishNode(prop, \"RestElement\")\n    }\n    // To disallow parenthesized identifier via `this.toAssignable()`.\n    if (this.type === tt.parenL && refDestructuringErrors) {\n      if (refDestructuringErrors.parenthesizedAssign < 0) {\n        refDestructuringErrors.parenthesizedAssign = this.start\n      }\n      if (refDestructuringErrors.parenthesizedBind < 0) {\n        refDestructuringErrors.parenthesizedBind = this.start\n      }\n    }\n    // Parse argument.\n    prop.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n    // To disallow trailing comma via `this.toAssignable()`.\n    if (this.type === tt.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n      refDestructuringErrors.trailingComma = this.start\n    }\n    // Finish\n    return this.finishNode(prop, \"SpreadElement\")\n  }\n  if (this.options.ecmaVersion >= 6) {\n    prop.method = false\n    prop.shorthand = false\n    if (isPattern || refDestructuringErrors) {\n      startPos = this.start\n      startLoc = this.startLoc\n    }\n    if (!isPattern)\n      isGenerator = this.eat(tt.star)\n  }\n  let containsEsc = this.containsEsc\n  this.parsePropertyName(prop)\n  if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n    isAsync = true\n    isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n    this.parsePropertyName(prop, refDestructuringErrors)\n  } else {\n    isAsync = false\n  }\n  this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc)\n  return this.finishNode(prop, \"Property\")\n}\n\npp.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n  if ((isGenerator || isAsync) && this.type === tt.colon)\n    this.unexpected()\n\n  if (this.eat(tt.colon)) {\n    prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors)\n    prop.kind = \"init\"\n  } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) {\n    if (isPattern) this.unexpected()\n    prop.kind = \"init\"\n    prop.method = true\n    prop.value = this.parseMethod(isGenerator, isAsync)\n  } else if (!isPattern && !containsEsc &&\n             this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n             (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n             (this.type !== tt.comma && this.type !== tt.braceR)) {\n    if (isGenerator || isAsync) this.unexpected()\n    prop.kind = prop.key.name\n    this.parsePropertyName(prop)\n    prop.value = this.parseMethod(false)\n    let paramCount = prop.kind === \"get\" ? 0 : 1\n    if (prop.value.params.length !== paramCount) {\n      let start = prop.value.start\n      if (prop.kind === \"get\")\n        this.raiseRecoverable(start, \"getter should have no params\")\n      else\n        this.raiseRecoverable(start, \"setter should have exactly one param\")\n    } else {\n      if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n        this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\")\n    }\n  } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n    if (isGenerator || isAsync) this.unexpected()\n    this.checkUnreserved(prop.key)\n    if (prop.key.name === \"await\" && !this.awaitIdentPos)\n      this.awaitIdentPos = startPos\n    prop.kind = \"init\"\n    if (isPattern) {\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n    } else if (this.type === tt.eq && refDestructuringErrors) {\n      if (refDestructuringErrors.shorthandAssign < 0)\n        refDestructuringErrors.shorthandAssign = this.start\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n    } else {\n      prop.value = prop.key\n    }\n    prop.shorthand = true\n  } else this.unexpected()\n}\n\npp.parsePropertyName = function(prop) {\n  if (this.options.ecmaVersion >= 6) {\n    if (this.eat(tt.bracketL)) {\n      prop.computed = true\n      prop.key = this.parseMaybeAssign()\n      this.expect(tt.bracketR)\n      return prop.key\n    } else {\n      prop.computed = false\n    }\n  }\n  return prop.key = this.type === tt.num || this.type === tt.string ? this.parseExprAtom() : this.parseIdent(true)\n}\n\n// Initialize empty function node.\n\npp.initFunction = function(node) {\n  node.id = null\n  if (this.options.ecmaVersion >= 6) node.generator = node.expression = false\n  if (this.options.ecmaVersion >= 8) node.async = false\n}\n\n// Parse object or class method.\n\npp.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n  let node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 6)\n    node.generator = isGenerator\n  if (this.options.ecmaVersion >= 8)\n    node.async = !!isAsync\n\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n  this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0))\n\n  this.expect(tt.parenL)\n  node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n  this.checkYieldAwaitInDefaultParams()\n  this.parseFunctionBody(node, false, true)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, \"FunctionExpression\")\n}\n\n// Parse arrow function expression with given parameters.\n\npp.parseArrowExpression = function(node, params, isAsync) {\n  let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n  this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW)\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 8) node.async = !!isAsync\n\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n\n  node.params = this.toAssignableList(params, true)\n  this.parseFunctionBody(node, true, false)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, \"ArrowFunctionExpression\")\n}\n\n// Parse function body and check parameters.\n\npp.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n  let isExpression = isArrowFunction && this.type !== tt.braceL\n  let oldStrict = this.strict, useStrict = false\n\n  if (isExpression) {\n    node.body = this.parseMaybeAssign()\n    node.expression = true\n    this.checkParams(node, false)\n  } else {\n    let nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params)\n    if (!oldStrict || nonSimple) {\n      useStrict = this.strictDirective(this.end)\n      // If this is a strict mode function, verify that argument names\n      // are not repeated, and it does not try to bind the words `eval`\n      // or `arguments`.\n      if (useStrict && nonSimple)\n        this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\")\n    }\n    // Start a new scope with regard to labels and the `inFunction`\n    // flag (restore them to their old value afterwards).\n    let oldLabels = this.labels\n    this.labels = []\n    if (useStrict) this.strict = true\n\n    // Add the params to varDeclaredNames to ensure that an error is thrown\n    // if a let/const declaration in the function clashes with one of the params.\n    this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params))\n    node.body = this.parseBlock(false)\n    node.expression = false\n    this.adaptDirectivePrologue(node.body.body)\n    this.labels = oldLabels\n  }\n  this.exitScope()\n\n  // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n  if (this.strict && node.id) this.checkLVal(node.id, BIND_OUTSIDE)\n  this.strict = oldStrict\n}\n\npp.isSimpleParamList = function(params) {\n  for (let param of params)\n    if (param.type !== \"Identifier\") return false\n  return true\n}\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp.checkParams = function(node, allowDuplicates) {\n  let nameHash = {}\n  for (let param of node.params)\n    this.checkLVal(param, BIND_VAR, allowDuplicates ? null : nameHash)\n}\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n  let elts = [], first = true\n  while (!this.eat(close)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (allowTrailingComma && this.afterTrailingComma(close)) break\n    } else first = false\n\n    let elt\n    if (allowEmpty && this.type === tt.comma)\n      elt = null\n    else if (this.type === tt.ellipsis) {\n      elt = this.parseSpread(refDestructuringErrors)\n      if (refDestructuringErrors && this.type === tt.comma && refDestructuringErrors.trailingComma < 0)\n        refDestructuringErrors.trailingComma = this.start\n    } else {\n      elt = this.parseMaybeAssign(false, refDestructuringErrors)\n    }\n    elts.push(elt)\n  }\n  return elts\n}\n\npp.checkUnreserved = function({start, end, name}) {\n  if (this.inGenerator && name === \"yield\")\n    this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\")\n  if (this.inAsync && name === \"await\")\n    this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\")\n  if (this.keywords.test(name))\n    this.raise(start, `Unexpected keyword '${name}'`)\n  if (this.options.ecmaVersion < 6 &&\n    this.input.slice(start, end).indexOf(\"\\\\\") !== -1) return\n  const re = this.strict ? this.reservedWordsStrict : this.reservedWords\n  if (re.test(name)) {\n    if (!this.inAsync && name === \"await\")\n      this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\")\n    this.raiseRecoverable(start, `The keyword '${name}' is reserved`)\n  }\n}\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp.parseIdent = function(liberal, isBinding) {\n  let node = this.startNode()\n  if (liberal && this.options.allowReserved === \"never\") liberal = false\n  if (this.type === tt.name) {\n    node.name = this.value\n  } else if (this.type.keyword) {\n    node.name = this.type.keyword\n\n    // To fix https://github.com/acornjs/acorn/issues/575\n    // `class` and `function` keywords push new context into this.context.\n    // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n    // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n    if ((node.name === \"class\" || node.name === \"function\") &&\n        (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n      this.context.pop()\n    }\n  } else {\n    this.unexpected()\n  }\n  this.next()\n  this.finishNode(node, \"Identifier\")\n  if (!liberal) {\n    this.checkUnreserved(node)\n    if (node.name === \"await\" && !this.awaitIdentPos)\n      this.awaitIdentPos = node.start\n  }\n  return node\n}\n\n// Parses yield expression inside generator.\n\npp.parseYield = function(noIn) {\n  if (!this.yieldPos) this.yieldPos = this.start\n\n  let node = this.startNode()\n  this.next()\n  if (this.type === tt.semi || this.canInsertSemicolon() || (this.type !== tt.star && !this.type.startsExpr)) {\n    node.delegate = false\n    node.argument = null\n  } else {\n    node.delegate = this.eat(tt.star)\n    node.argument = this.parseMaybeAssign(noIn)\n  }\n  return this.finishNode(node, \"YieldExpression\")\n}\n\npp.parseAwait = function() {\n  if (!this.awaitPos) this.awaitPos = this.start\n\n  let node = this.startNode()\n  this.next()\n  node.argument = this.parseMaybeUnary(null, true)\n  return this.finishNode(node, \"AwaitExpression\")\n}\n","import {Parser} from \"./state\"\nimport {Position, getLineInfo} from \"./locutil\"\n\nconst pp = Parser.prototype\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp.raise = function(pos, message) {\n  let loc = getLineInfo(this.input, pos)\n  message += \" (\" + loc.line + \":\" + loc.column + \")\"\n  let err = new SyntaxError(message)\n  err.pos = pos; err.loc = loc; err.raisedAt = this.pos\n  throw err\n}\n\npp.raiseRecoverable = pp.raise\n\npp.curPosition = function() {\n  if (this.options.locations) {\n    return new Position(this.curLine, this.pos - this.lineStart)\n  }\n}\n","import {Parser} from \"./state\"\nimport {SCOPE_VAR, SCOPE_FUNCTION, SCOPE_TOP, SCOPE_ARROW, SCOPE_SIMPLE_CATCH, BIND_LEXICAL, BIND_SIMPLE_CATCH, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\nclass Scope {\n  constructor(flags) {\n    this.flags = flags\n    // A list of var-declared names in the current lexical scope\n    this.var = []\n    // A list of lexically-declared names in the current lexical scope\n    this.lexical = []\n    // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n    this.functions = []\n  }\n}\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp.enterScope = function(flags) {\n  this.scopeStack.push(new Scope(flags))\n}\n\npp.exitScope = function() {\n  this.scopeStack.pop()\n}\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp.treatFunctionsAsVarInScope = function(scope) {\n  return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n}\n\npp.declareName = function(name, bindingType, pos) {\n  let redeclared = false\n  if (bindingType === BIND_LEXICAL) {\n    const scope = this.currentScope()\n    redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n    scope.lexical.push(name)\n    if (this.inModule && (scope.flags & SCOPE_TOP))\n      delete this.undefinedExports[name]\n  } else if (bindingType === BIND_SIMPLE_CATCH) {\n    const scope = this.currentScope()\n    scope.lexical.push(name)\n  } else if (bindingType === BIND_FUNCTION) {\n    const scope = this.currentScope()\n    if (this.treatFunctionsAsVar)\n      redeclared = scope.lexical.indexOf(name) > -1\n    else\n      redeclared = scope.lexical.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n    scope.functions.push(name)\n  } else {\n    for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n      const scope = this.scopeStack[i]\n      if (scope.lexical.indexOf(name) > -1 && !((scope.flags & SCOPE_SIMPLE_CATCH) && scope.lexical[0] === name) ||\n          !this.treatFunctionsAsVarInScope(scope) && scope.functions.indexOf(name) > -1) {\n        redeclared = true\n        break\n      }\n      scope.var.push(name)\n      if (this.inModule && (scope.flags & SCOPE_TOP))\n        delete this.undefinedExports[name]\n      if (scope.flags & SCOPE_VAR) break\n    }\n  }\n  if (redeclared) this.raiseRecoverable(pos, `Identifier '${name}' has already been declared`)\n}\n\npp.checkLocalExport = function(id) {\n  // scope.functions must be empty as Module code is always strict.\n  if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1) {\n    this.undefinedExports[id.name] = id\n  }\n}\n\npp.currentScope = function() {\n  return this.scopeStack[this.scopeStack.length - 1]\n}\n\npp.currentVarScope = function() {\n  for (let i = this.scopeStack.length - 1;; i--) {\n    let scope = this.scopeStack[i]\n    if (scope.flags & SCOPE_VAR) return scope\n  }\n}\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp.currentThisScope = function() {\n  for (let i = this.scopeStack.length - 1;; i--) {\n    let scope = this.scopeStack[i]\n    if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) return scope\n  }\n}\n","import {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\n\nexport class Node {\n  constructor(parser, pos, loc) {\n    this.type = \"\"\n    this.start = pos\n    this.end = 0\n    if (parser.options.locations)\n      this.loc = new SourceLocation(parser, loc)\n    if (parser.options.directSourceFile)\n      this.sourceFile = parser.options.directSourceFile\n    if (parser.options.ranges)\n      this.range = [pos, 0]\n  }\n}\n\n// Start an AST node, attaching a start offset.\n\nconst pp = Parser.prototype\n\npp.startNode = function() {\n  return new Node(this, this.start, this.startLoc)\n}\n\npp.startNodeAt = function(pos, loc) {\n  return new Node(this, pos, loc)\n}\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n  node.type = type\n  node.end = pos\n  if (this.options.locations)\n    node.loc.end = loc\n  if (this.options.ranges)\n    node.range[1] = pos\n  return node\n}\n\npp.finishNode = function(node, type) {\n  return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n}\n\n// Finish node at given position\n\npp.finishNodeAt = function(node, type, pos, loc) {\n  return finishNodeAt.call(this, node, type, pos, loc)\n}\n","// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport {Parser} from \"./state\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\n\nexport class TokContext {\n  constructor(token, isExpr, preserveSpace, override, generator) {\n    this.token = token\n    this.isExpr = !!isExpr\n    this.preserveSpace = !!preserveSpace\n    this.override = override\n    this.generator = !!generator\n  }\n}\n\nexport const types = {\n  b_stat: new TokContext(\"{\", false),\n  b_expr: new TokContext(\"{\", true),\n  b_tmpl: new TokContext(\"${\", false),\n  p_stat: new TokContext(\"(\", false),\n  p_expr: new TokContext(\"(\", true),\n  q_tmpl: new TokContext(\"`\", true, true, p => p.tryReadTemplateToken()),\n  f_stat: new TokContext(\"function\", false),\n  f_expr: new TokContext(\"function\", true),\n  f_expr_gen: new TokContext(\"function\", true, false, null, true),\n  f_gen: new TokContext(\"function\", false, false, null, true)\n}\n\nconst pp = Parser.prototype\n\npp.initialContext = function() {\n  return [types.b_stat]\n}\n\npp.braceIsBlock = function(prevType) {\n  let parent = this.curContext()\n  if (parent === types.f_expr || parent === types.f_stat)\n    return true\n  if (prevType === tt.colon && (parent === types.b_stat || parent === types.b_expr))\n    return !parent.isExpr\n\n  // The check for `tt.name && exprAllowed` detects whether we are\n  // after a `yield` or `of` construct. See the `updateContext` for\n  // `tt.name`.\n  if (prevType === tt._return || prevType === tt.name && this.exprAllowed)\n    return lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n  if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR || prevType === tt.arrow)\n    return true\n  if (prevType === tt.braceL)\n    return parent === types.b_stat\n  if (prevType === tt._var || prevType === tt._const || prevType === tt.name)\n    return false\n  return !this.exprAllowed\n}\n\npp.inGeneratorContext = function() {\n  for (let i = this.context.length - 1; i >= 1; i--) {\n    let context = this.context[i]\n    if (context.token === \"function\")\n      return context.generator\n  }\n  return false\n}\n\npp.updateContext = function(prevType) {\n  let update, type = this.type\n  if (type.keyword && prevType === tt.dot)\n    this.exprAllowed = false\n  else if (update = type.updateContext)\n    update.call(this, prevType)\n  else\n    this.exprAllowed = type.beforeExpr\n}\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.context.length === 1) {\n    this.exprAllowed = true\n    return\n  }\n  let out = this.context.pop()\n  if (out === types.b_stat && this.curContext().token === \"function\") {\n    out = this.context.pop()\n  }\n  this.exprAllowed = !out.isExpr\n}\n\ntt.braceL.updateContext = function(prevType) {\n  this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr)\n  this.exprAllowed = true\n}\n\ntt.dollarBraceL.updateContext = function() {\n  this.context.push(types.b_tmpl)\n  this.exprAllowed = true\n}\n\ntt.parenL.updateContext = function(prevType) {\n  let statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while\n  this.context.push(statementParens ? types.p_stat : types.p_expr)\n  this.exprAllowed = true\n}\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n}\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (prevType.beforeExpr && prevType !== tt.semi && prevType !== tt._else &&\n      !(prevType === tt._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n      !((prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat))\n    this.context.push(types.f_expr)\n  else\n    this.context.push(types.f_stat)\n  this.exprAllowed = false\n}\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.q_tmpl)\n    this.context.pop()\n  else\n    this.context.push(types.q_tmpl)\n  this.exprAllowed = false\n}\n\ntt.star.updateContext = function(prevType) {\n  if (prevType === tt._function) {\n    let index = this.context.length - 1\n    if (this.context[index] === types.f_expr)\n      this.context[index] = types.f_expr_gen\n    else\n      this.context[index] = types.f_gen\n  }\n  this.exprAllowed = true\n}\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false\n  if (this.options.ecmaVersion >= 6 && prevType !== tt.dot) {\n    if (this.value === \"of\" && !this.exprAllowed ||\n        this.value === \"yield\" && this.inGeneratorContext())\n      allowed = true\n  }\n  this.exprAllowed = allowed\n}\n","import {wordsRegexp} from \"./util.js\"\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nconst ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\"\nconst unicodeBinaryProperties = {\n  9: ecma9BinaryProperties,\n  10: ecma9BinaryProperties + \" Extended_Pictographic\"\n}\n\n// #table-unicode-general-category-values\nconst unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\"\n\n// #table-unicode-script-values\nconst ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\"\nconst unicodeScriptValues = {\n  9: ecma9ScriptValues,\n  10: ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\"\n}\n\nconst data = {}\nfunction buildUnicodeData(ecmaVersion) {\n  let d = data[ecmaVersion] = {\n    binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n    nonBinary: {\n      General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n      Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n    }\n  }\n  d.nonBinary.Script_Extensions = d.nonBinary.Script\n\n  d.nonBinary.gc = d.nonBinary.General_Category\n  d.nonBinary.sc = d.nonBinary.Script\n  d.nonBinary.scx = d.nonBinary.Script_Extensions\n}\nbuildUnicodeData(9)\nbuildUnicodeData(10)\n\nexport default data\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier.js\"\nimport {Parser} from \"./state.js\"\nimport UNICODE_PROPERTY_VALUES from \"./unicode-property-data.js\"\nimport {has} from \"./util.js\"\n\nconst pp = Parser.prototype\n\nexport class RegExpValidationState {\n  constructor(parser) {\n    this.parser = parser\n    this.validFlags = `gim${parser.options.ecmaVersion >= 6 ? \"uy\" : \"\"}${parser.options.ecmaVersion >= 9 ? \"s\" : \"\"}`\n    this.unicodeProperties = UNICODE_PROPERTY_VALUES[parser.options.ecmaVersion >= 10 ? 10 : parser.options.ecmaVersion]\n    this.source = \"\"\n    this.flags = \"\"\n    this.start = 0\n    this.switchU = false\n    this.switchN = false\n    this.pos = 0\n    this.lastIntValue = 0\n    this.lastStringValue = \"\"\n    this.lastAssertionIsQuantifiable = false\n    this.numCapturingParens = 0\n    this.maxBackReference = 0\n    this.groupNames = []\n    this.backReferenceNames = []\n  }\n\n  reset(start, pattern, flags) {\n    const unicode = flags.indexOf(\"u\") !== -1\n    this.start = start | 0\n    this.source = pattern + \"\"\n    this.flags = flags\n    this.switchU = unicode && this.parser.options.ecmaVersion >= 6\n    this.switchN = unicode && this.parser.options.ecmaVersion >= 9\n  }\n\n  raise(message) {\n    this.parser.raiseRecoverable(this.start, `Invalid regular expression: /${this.source}/: ${message}`)\n  }\n\n  // If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n  // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\n  at(i) {\n    const s = this.source\n    const l = s.length\n    if (i >= l) {\n      return -1\n    }\n    const c = s.charCodeAt(i)\n    if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n      return c\n    }\n    return (c << 10) + s.charCodeAt(i + 1) - 0x35FDC00\n  }\n\n  nextIndex(i) {\n    const s = this.source\n    const l = s.length\n    if (i >= l) {\n      return l\n    }\n    const c = s.charCodeAt(i)\n    if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n      return i + 1\n    }\n    return i + 2\n  }\n\n  current() {\n    return this.at(this.pos)\n  }\n\n  lookahead() {\n    return this.at(this.nextIndex(this.pos))\n  }\n\n  advance() {\n    this.pos = this.nextIndex(this.pos)\n  }\n\n  eat(ch) {\n    if (this.current() === ch) {\n      this.advance()\n      return true\n    }\n    return false\n  }\n}\n\nfunction codePointToString(ch) {\n  if (ch <= 0xFFFF) return String.fromCharCode(ch)\n  ch -= 0x10000\n  return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n}\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpFlags = function(state) {\n  const validFlags = state.validFlags\n  const flags = state.flags\n\n  for (let i = 0; i < flags.length; i++) {\n    const flag = flags.charAt(i)\n    if (validFlags.indexOf(flag) === -1) {\n      this.raise(state.start, \"Invalid regular expression flag\")\n    }\n    if (flags.indexOf(flag, i + 1) > -1) {\n      this.raise(state.start, \"Duplicate regular expression flag\")\n    }\n  }\n}\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpPattern = function(state) {\n  this.regexp_pattern(state)\n\n  // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n  // parsing contains a |GroupName|, reparse with the goal symbol\n  // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n  // exception if _P_ did not conform to the grammar, if any elements of _P_\n  // were not matched by the parse, or if any Early Error conditions exist.\n  if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n    state.switchN = true\n    this.regexp_pattern(state)\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp.regexp_pattern = function(state) {\n  state.pos = 0\n  state.lastIntValue = 0\n  state.lastStringValue = \"\"\n  state.lastAssertionIsQuantifiable = false\n  state.numCapturingParens = 0\n  state.maxBackReference = 0\n  state.groupNames.length = 0\n  state.backReferenceNames.length = 0\n\n  this.regexp_disjunction(state)\n\n  if (state.pos !== state.source.length) {\n    // Make the same messages as V8.\n    if (state.eat(0x29 /* ) */)) {\n      state.raise(\"Unmatched ')'\")\n    }\n    if (state.eat(0x5D /* [ */) || state.eat(0x7D /* } */)) {\n      state.raise(\"Lone quantifier brackets\")\n    }\n  }\n  if (state.maxBackReference > state.numCapturingParens) {\n    state.raise(\"Invalid escape\")\n  }\n  for (const name of state.backReferenceNames) {\n    if (state.groupNames.indexOf(name) === -1) {\n      state.raise(\"Invalid named capture referenced\")\n    }\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp.regexp_disjunction = function(state) {\n  this.regexp_alternative(state)\n  while (state.eat(0x7C /* | */)) {\n    this.regexp_alternative(state)\n  }\n\n  // Make the same message as V8.\n  if (this.regexp_eatQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\")\n  }\n  if (state.eat(0x7B /* { */)) {\n    state.raise(\"Lone quantifier brackets\")\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp.regexp_alternative = function(state) {\n  while (state.pos < state.source.length && this.regexp_eatTerm(state))\n    ;\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp.regexp_eatTerm = function(state) {\n  if (this.regexp_eatAssertion(state)) {\n    // Handle `QuantifiableAssertion Quantifier` alternative.\n    // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n    // is a QuantifiableAssertion.\n    if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n      // Make the same message as V8.\n      if (state.switchU) {\n        state.raise(\"Invalid quantifier\")\n      }\n    }\n    return true\n  }\n\n  if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n    this.regexp_eatQuantifier(state)\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp.regexp_eatAssertion = function(state) {\n  const start = state.pos\n  state.lastAssertionIsQuantifiable = false\n\n  // ^, $\n  if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n    return true\n  }\n\n  // \\b \\B\n  if (state.eat(0x5C /* \\ */)) {\n    if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n      return true\n    }\n    state.pos = start\n  }\n\n  // Lookahead / Lookbehind\n  if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n    let lookbehind = false\n    if (this.options.ecmaVersion >= 9) {\n      lookbehind = state.eat(0x3C /* < */)\n    }\n    if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n      this.regexp_disjunction(state)\n      if (!state.eat(0x29 /* ) */)) {\n        state.raise(\"Unterminated group\")\n      }\n      state.lastAssertionIsQuantifiable = !lookbehind\n      return true\n    }\n  }\n\n  state.pos = start\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp.regexp_eatQuantifier = function(state, noError = false) {\n  if (this.regexp_eatQuantifierPrefix(state, noError)) {\n    state.eat(0x3F /* ? */)\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp.regexp_eatQuantifierPrefix = function(state, noError) {\n  return (\n    state.eat(0x2A /* * */) ||\n    state.eat(0x2B /* + */) ||\n    state.eat(0x3F /* ? */) ||\n    this.regexp_eatBracedQuantifier(state, noError)\n  )\n}\npp.regexp_eatBracedQuantifier = function(state, noError) {\n  const start = state.pos\n  if (state.eat(0x7B /* { */)) {\n    let min = 0, max = -1\n    if (this.regexp_eatDecimalDigits(state)) {\n      min = state.lastIntValue\n      if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n        max = state.lastIntValue\n      }\n      if (state.eat(0x7D /* } */)) {\n        // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n        if (max !== -1 && max < min && !noError) {\n          state.raise(\"numbers out of order in {} quantifier\")\n        }\n        return true\n      }\n    }\n    if (state.switchU && !noError) {\n      state.raise(\"Incomplete quantifier\")\n    }\n    state.pos = start\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp.regexp_eatAtom = function(state) {\n  return (\n    this.regexp_eatPatternCharacters(state) ||\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state)\n  )\n}\npp.regexp_eatReverseSolidusAtomEscape = function(state) {\n  const start = state.pos\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatAtomEscape(state)) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatUncapturingGroup = function(state) {\n  const start = state.pos\n  if (state.eat(0x28 /* ( */)) {\n    if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n      this.regexp_disjunction(state)\n      if (state.eat(0x29 /* ) */)) {\n        return true\n      }\n      state.raise(\"Unterminated group\")\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatCapturingGroup = function(state) {\n  if (state.eat(0x28 /* ( */)) {\n    if (this.options.ecmaVersion >= 9) {\n      this.regexp_groupSpecifier(state)\n    } else if (state.current() === 0x3F /* ? */) {\n      state.raise(\"Invalid group\")\n    }\n    this.regexp_disjunction(state)\n    if (state.eat(0x29 /* ) */)) {\n      state.numCapturingParens += 1\n      return true\n    }\n    state.raise(\"Unterminated group\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp.regexp_eatExtendedAtom = function(state) {\n  return (\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state) ||\n    this.regexp_eatInvalidBracedQuantifier(state) ||\n    this.regexp_eatExtendedPatternCharacter(state)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp.regexp_eatInvalidBracedQuantifier = function(state) {\n  if (this.regexp_eatBracedQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp.regexp_eatSyntaxCharacter = function(state) {\n  const ch = state.current()\n  if (isSyntaxCharacter(ch)) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n  return false\n}\nfunction isSyntaxCharacter(ch) {\n  return (\n    ch === 0x24 /* $ */ ||\n    ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n    ch === 0x2E /* . */ ||\n    ch === 0x3F /* ? */ ||\n    ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n    ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp.regexp_eatPatternCharacters = function(state) {\n  const start = state.pos\n  let ch = 0\n  while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n    state.advance()\n  }\n  return state.pos !== start\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp.regexp_eatExtendedPatternCharacter = function(state) {\n  const ch = state.current()\n  if (\n    ch !== -1 &&\n    ch !== 0x24 /* $ */ &&\n    !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n    ch !== 0x2E /* . */ &&\n    ch !== 0x3F /* ? */ &&\n    ch !== 0x5B /* [ */ &&\n    ch !== 0x5E /* ^ */ &&\n    ch !== 0x7C /* | */\n  ) {\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// GroupSpecifier[U] ::\n//   [empty]\n//   `?` GroupName[?U]\npp.regexp_groupSpecifier = function(state) {\n  if (state.eat(0x3F /* ? */)) {\n    if (this.regexp_eatGroupName(state)) {\n      if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n        state.raise(\"Duplicate capture group name\")\n      }\n      state.groupNames.push(state.lastStringValue)\n      return\n    }\n    state.raise(\"Invalid group\")\n  }\n}\n\n// GroupName[U] ::\n//   `<` RegExpIdentifierName[?U] `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatGroupName = function(state) {\n  state.lastStringValue = \"\"\n  if (state.eat(0x3C /* < */)) {\n    if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n      return true\n    }\n    state.raise(\"Invalid capture group name\")\n  }\n  return false\n}\n\n// RegExpIdentifierName[U] ::\n//   RegExpIdentifierStart[?U]\n//   RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatRegExpIdentifierName = function(state) {\n  state.lastStringValue = \"\"\n  if (this.regexp_eatRegExpIdentifierStart(state)) {\n    state.lastStringValue += codePointToString(state.lastIntValue)\n    while (this.regexp_eatRegExpIdentifierPart(state)) {\n      state.lastStringValue += codePointToString(state.lastIntValue)\n    }\n    return true\n  }\n  return false\n}\n\n// RegExpIdentifierStart[U] ::\n//   UnicodeIDStart\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[?U]\npp.regexp_eatRegExpIdentifierStart = function(state) {\n  const start = state.pos\n  let ch = state.current()\n  state.advance()\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n    ch = state.lastIntValue\n  }\n  if (isRegExpIdentifierStart(ch)) {\n    state.lastIntValue = ch\n    return true\n  }\n\n  state.pos = start\n  return false\n}\nfunction isRegExpIdentifierStart(ch) {\n  return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart[U] ::\n//   UnicodeIDContinue\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[?U]\n//   <ZWNJ>\n//   <ZWJ>\npp.regexp_eatRegExpIdentifierPart = function(state) {\n  const start = state.pos\n  let ch = state.current()\n  state.advance()\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n    ch = state.lastIntValue\n  }\n  if (isRegExpIdentifierPart(ch)) {\n    state.lastIntValue = ch\n    return true\n  }\n\n  state.pos = start\n  return false\n}\nfunction isRegExpIdentifierPart(ch) {\n  return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp.regexp_eatAtomEscape = function(state) {\n  if (\n    this.regexp_eatBackReference(state) ||\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state) ||\n    (state.switchN && this.regexp_eatKGroupName(state))\n  ) {\n    return true\n  }\n  if (state.switchU) {\n    // Make the same message as V8.\n    if (state.current() === 0x63 /* c */) {\n      state.raise(\"Invalid unicode escape\")\n    }\n    state.raise(\"Invalid escape\")\n  }\n  return false\n}\npp.regexp_eatBackReference = function(state) {\n  const start = state.pos\n  if (this.regexp_eatDecimalEscape(state)) {\n    const n = state.lastIntValue\n    if (state.switchU) {\n      // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n      if (n > state.maxBackReference) {\n        state.maxBackReference = n\n      }\n      return true\n    }\n    if (n <= state.numCapturingParens) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatKGroupName = function(state) {\n  if (state.eat(0x6B /* k */)) {\n    if (this.regexp_eatGroupName(state)) {\n      state.backReferenceNames.push(state.lastStringValue)\n      return true\n    }\n    state.raise(\"Invalid named reference\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp.regexp_eatCharacterEscape = function(state) {\n  return (\n    this.regexp_eatControlEscape(state) ||\n    this.regexp_eatCControlLetter(state) ||\n    this.regexp_eatZero(state) ||\n    this.regexp_eatHexEscapeSequence(state) ||\n    this.regexp_eatRegExpUnicodeEscapeSequence(state) ||\n    (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n    this.regexp_eatIdentityEscape(state)\n  )\n}\npp.regexp_eatCControlLetter = function(state) {\n  const start = state.pos\n  if (state.eat(0x63 /* c */)) {\n    if (this.regexp_eatControlLetter(state)) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatZero = function(state) {\n  if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n    state.lastIntValue = 0\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp.regexp_eatControlEscape = function(state) {\n  const ch = state.current()\n  if (ch === 0x74 /* t */) {\n    state.lastIntValue = 0x09 /* \\t */\n    state.advance()\n    return true\n  }\n  if (ch === 0x6E /* n */) {\n    state.lastIntValue = 0x0A /* \\n */\n    state.advance()\n    return true\n  }\n  if (ch === 0x76 /* v */) {\n    state.lastIntValue = 0x0B /* \\v */\n    state.advance()\n    return true\n  }\n  if (ch === 0x66 /* f */) {\n    state.lastIntValue = 0x0C /* \\f */\n    state.advance()\n    return true\n  }\n  if (ch === 0x72 /* r */) {\n    state.lastIntValue = 0x0D /* \\r */\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp.regexp_eatControlLetter = function(state) {\n  const ch = state.current()\n  if (isControlLetter(ch)) {\n    state.lastIntValue = ch % 0x20\n    state.advance()\n    return true\n  }\n  return false\n}\nfunction isControlLetter(ch) {\n  return (\n    (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp.regexp_eatRegExpUnicodeEscapeSequence = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x75 /* u */)) {\n    if (this.regexp_eatFixedHexDigits(state, 4)) {\n      const lead = state.lastIntValue\n      if (state.switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n        const leadSurrogateEnd = state.pos\n        if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n          const trail = state.lastIntValue\n          if (trail >= 0xDC00 && trail <= 0xDFFF) {\n            state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000\n            return true\n          }\n        }\n        state.pos = leadSurrogateEnd\n        state.lastIntValue = lead\n      }\n      return true\n    }\n    if (\n      state.switchU &&\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatHexDigits(state) &&\n      state.eat(0x7D /* } */) &&\n      isValidUnicode(state.lastIntValue)\n    ) {\n      return true\n    }\n    if (state.switchU) {\n      state.raise(\"Invalid unicode escape\")\n    }\n    state.pos = start\n  }\n\n  return false\n}\nfunction isValidUnicode(ch) {\n  return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp.regexp_eatIdentityEscape = function(state) {\n  if (state.switchU) {\n    if (this.regexp_eatSyntaxCharacter(state)) {\n      return true\n    }\n    if (state.eat(0x2F /* / */)) {\n      state.lastIntValue = 0x2F /* / */\n      return true\n    }\n    return false\n  }\n\n  const ch = state.current()\n  if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp.regexp_eatDecimalEscape = function(state) {\n  state.lastIntValue = 0\n  let ch = state.current()\n  if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n    do {\n      state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n      state.advance()\n    } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp.regexp_eatCharacterClassEscape = function(state) {\n  const ch = state.current()\n\n  if (isCharacterClassEscape(ch)) {\n    state.lastIntValue = -1\n    state.advance()\n    return true\n  }\n\n  if (\n    state.switchU &&\n    this.options.ecmaVersion >= 9 &&\n    (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n  ) {\n    state.lastIntValue = -1\n    state.advance()\n    if (\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatUnicodePropertyValueExpression(state) &&\n      state.eat(0x7D /* } */)\n    ) {\n      return true\n    }\n    state.raise(\"Invalid property name\")\n  }\n\n  return false\n}\nfunction isCharacterClassEscape(ch) {\n  return (\n    ch === 0x64 /* d */ ||\n    ch === 0x44 /* D */ ||\n    ch === 0x73 /* s */ ||\n    ch === 0x53 /* S */ ||\n    ch === 0x77 /* w */ ||\n    ch === 0x57 /* W */\n  )\n}\n\n// UnicodePropertyValueExpression ::\n//   UnicodePropertyName `=` UnicodePropertyValue\n//   LoneUnicodePropertyNameOrValue\npp.regexp_eatUnicodePropertyValueExpression = function(state) {\n  const start = state.pos\n\n  // UnicodePropertyName `=` UnicodePropertyValue\n  if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n    const name = state.lastStringValue\n    if (this.regexp_eatUnicodePropertyValue(state)) {\n      const value = state.lastStringValue\n      this.regexp_validateUnicodePropertyNameAndValue(state, name, value)\n      return true\n    }\n  }\n  state.pos = start\n\n  // LoneUnicodePropertyNameOrValue\n  if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n    const nameOrValue = state.lastStringValue\n    this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n    return true\n  }\n  return false\n}\npp.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n  if (!has(state.unicodeProperties.nonBinary, name))\n    state.raise(\"Invalid property name\")\n  if (!state.unicodeProperties.nonBinary[name].test(value))\n    state.raise(\"Invalid property value\")\n}\npp.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n  if (!state.unicodeProperties.binary.test(nameOrValue))\n    state.raise(\"Invalid property name\")\n}\n\n// UnicodePropertyName ::\n//   UnicodePropertyNameCharacters\npp.regexp_eatUnicodePropertyName = function(state) {\n  let ch = 0\n  state.lastStringValue = \"\"\n  while (isUnicodePropertyNameCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch)\n    state.advance()\n  }\n  return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyNameCharacter(ch) {\n  return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n//   UnicodePropertyValueCharacters\npp.regexp_eatUnicodePropertyValue = function(state) {\n  let ch = 0\n  state.lastStringValue = \"\"\n  while (isUnicodePropertyValueCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch)\n    state.advance()\n  }\n  return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyValueCharacter(ch) {\n  return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n//   UnicodePropertyValueCharacters\npp.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n  return this.regexp_eatUnicodePropertyValue(state)\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp.regexp_eatCharacterClass = function(state) {\n  if (state.eat(0x5B /* [ */)) {\n    state.eat(0x5E /* ^ */)\n    this.regexp_classRanges(state)\n    if (state.eat(0x5D /* [ */)) {\n      return true\n    }\n    // Unreachable since it threw \"unterminated regular expression\" error before.\n    state.raise(\"Unterminated character class\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp.regexp_classRanges = function(state) {\n  while (this.regexp_eatClassAtom(state)) {\n    const left = state.lastIntValue\n    if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n      const right = state.lastIntValue\n      if (state.switchU && (left === -1 || right === -1)) {\n        state.raise(\"Invalid character class\")\n      }\n      if (left !== -1 && right !== -1 && left > right) {\n        state.raise(\"Range out of order in character class\")\n      }\n    }\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp.regexp_eatClassAtom = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatClassEscape(state)) {\n      return true\n    }\n    if (state.switchU) {\n      // Make the same message as V8.\n      const ch = state.current()\n      if (ch === 0x63 /* c */ || isOctalDigit(ch)) {\n        state.raise(\"Invalid class escape\")\n      }\n      state.raise(\"Invalid escape\")\n    }\n    state.pos = start\n  }\n\n  const ch = state.current()\n  if (ch !== 0x5D /* [ */) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp.regexp_eatClassEscape = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x62 /* b */)) {\n    state.lastIntValue = 0x08 /* <BS> */\n    return true\n  }\n\n  if (state.switchU && state.eat(0x2D /* - */)) {\n    state.lastIntValue = 0x2D /* - */\n    return true\n  }\n\n  if (!state.switchU && state.eat(0x63 /* c */)) {\n    if (this.regexp_eatClassControlLetter(state)) {\n      return true\n    }\n    state.pos = start\n  }\n\n  return (\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp.regexp_eatClassControlLetter = function(state) {\n  const ch = state.current()\n  if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n    state.lastIntValue = ch % 0x20\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatHexEscapeSequence = function(state) {\n  const start = state.pos\n  if (state.eat(0x78 /* x */)) {\n    if (this.regexp_eatFixedHexDigits(state, 2)) {\n      return true\n    }\n    if (state.switchU) {\n      state.raise(\"Invalid escape\")\n    }\n    state.pos = start\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp.regexp_eatDecimalDigits = function(state) {\n  const start = state.pos\n  let ch = 0\n  state.lastIntValue = 0\n  while (isDecimalDigit(ch = state.current())) {\n    state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n    state.advance()\n  }\n  return state.pos !== start\n}\nfunction isDecimalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp.regexp_eatHexDigits = function(state) {\n  const start = state.pos\n  let ch = 0\n  state.lastIntValue = 0\n  while (isHexDigit(ch = state.current())) {\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n    state.advance()\n  }\n  return state.pos !== start\n}\nfunction isHexDigit(ch) {\n  return (\n    (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n    (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n  )\n}\nfunction hexToInt(ch) {\n  if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n    return 10 + (ch - 0x41 /* A */)\n  }\n  if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n    return 10 + (ch - 0x61 /* a */)\n  }\n  return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp.regexp_eatLegacyOctalEscapeSequence = function(state) {\n  if (this.regexp_eatOctalDigit(state)) {\n    const n1 = state.lastIntValue\n    if (this.regexp_eatOctalDigit(state)) {\n      const n2 = state.lastIntValue\n      if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n        state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue\n      } else {\n        state.lastIntValue = n1 * 8 + n2\n      }\n    } else {\n      state.lastIntValue = n1\n    }\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp.regexp_eatOctalDigit = function(state) {\n  const ch = state.current()\n  if (isOctalDigit(ch)) {\n    state.lastIntValue = ch - 0x30 /* 0 */\n    state.advance()\n    return true\n  }\n  state.lastIntValue = 0\n  return false\n}\nfunction isOctalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatFixedHexDigits = function(state, length) {\n  const start = state.pos\n  state.lastIntValue = 0\n  for (let i = 0; i < length; ++i) {\n    const ch = state.current()\n    if (!isHexDigit(ch)) {\n      state.pos = start\n      return false\n    }\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n    state.advance()\n  }\n  return true\n}\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier\"\nimport {types as tt, keywords as keywordTypes} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\nimport {RegExpValidationState} from \"./regexp\"\nimport {lineBreak, lineBreakG, isNewLine, nonASCIIwhitespace} from \"./whitespace\"\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(p) {\n    this.type = p.type\n    this.value = p.value\n    this.start = p.start\n    this.end = p.end\n    if (p.options.locations)\n      this.loc = new SourceLocation(p, p.startLoc, p.endLoc)\n    if (p.options.ranges)\n      this.range = [p.start, p.end]\n  }\n}\n\n// ## Tokenizer\n\nconst pp = Parser.prototype\n\n// Move to the next token\n\npp.next = function() {\n  if (this.options.onToken)\n    this.options.onToken(new Token(this))\n\n  this.lastTokEnd = this.end\n  this.lastTokStart = this.start\n  this.lastTokEndLoc = this.endLoc\n  this.lastTokStartLoc = this.startLoc\n  this.nextToken()\n}\n\npp.getToken = function() {\n  this.next()\n  return new Token(this)\n}\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n  pp[Symbol.iterator] = function() {\n    return {\n      next: () => {\n        let token = this.getToken()\n        return {\n          done: token.type === tt.eof,\n          value: token\n        }\n      }\n    }\n  }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\npp.curContext = function() {\n  return this.context[this.context.length - 1]\n}\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n  let curContext = this.curContext()\n  if (!curContext || !curContext.preserveSpace) this.skipSpace()\n\n  this.start = this.pos\n  if (this.options.locations) this.startLoc = this.curPosition()\n  if (this.pos >= this.input.length) return this.finishToken(tt.eof)\n\n  if (curContext.override) return curContext.override(this)\n  else this.readToken(this.fullCharCodeAtPos())\n}\n\npp.readToken = function(code) {\n  // Identifier or keyword. '\\uXXXX' sequences are allowed in\n  // identifiers, so '\\' also dispatches to that.\n  if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n    return this.readWord()\n\n  return this.getTokenFromCode(code)\n}\n\npp.fullCharCodeAtPos = function() {\n  let code = this.input.charCodeAt(this.pos)\n  if (code <= 0xd7ff || code >= 0xe000) return code\n  let next = this.input.charCodeAt(this.pos + 1)\n  return (code << 10) + next - 0x35fdc00\n}\n\npp.skipBlockComment = function() {\n  let startLoc = this.options.onComment && this.curPosition()\n  let start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2)\n  if (end === -1) this.raise(this.pos - 2, \"Unterminated comment\")\n  this.pos = end + 2\n  if (this.options.locations) {\n    lineBreakG.lastIndex = start\n    let match\n    while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n      ++this.curLine\n      this.lineStart = match.index + match[0].length\n    }\n  }\n  if (this.options.onComment)\n    this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n                           startLoc, this.curPosition())\n}\n\npp.skipLineComment = function(startSkip) {\n  let start = this.pos\n  let startLoc = this.options.onComment && this.curPosition()\n  let ch = this.input.charCodeAt(this.pos += startSkip)\n  while (this.pos < this.input.length && !isNewLine(ch)) {\n    ch = this.input.charCodeAt(++this.pos)\n  }\n  if (this.options.onComment)\n    this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n                           startLoc, this.curPosition())\n}\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n  loop: while (this.pos < this.input.length) {\n    let ch = this.input.charCodeAt(this.pos)\n    switch (ch) {\n    case 32: case 160: // ' '\n      ++this.pos\n      break\n    case 13:\n      if (this.input.charCodeAt(this.pos + 1) === 10) {\n        ++this.pos\n      }\n    case 10: case 8232: case 8233:\n      ++this.pos\n      if (this.options.locations) {\n        ++this.curLine\n        this.lineStart = this.pos\n      }\n      break\n    case 47: // '/'\n      switch (this.input.charCodeAt(this.pos + 1)) {\n      case 42: // '*'\n        this.skipBlockComment()\n        break\n      case 47:\n        this.skipLineComment(2)\n        break\n      default:\n        break loop\n      }\n      break\n    default:\n      if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n        ++this.pos\n      } else {\n        break loop\n      }\n    }\n  }\n}\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n  this.end = this.pos\n  if (this.options.locations) this.endLoc = this.curPosition()\n  let prevType = this.type\n  this.type = type\n  this.value = val\n\n  this.updateContext(prevType)\n}\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next >= 48 && next <= 57) return this.readNumber(true)\n  let next2 = this.input.charCodeAt(this.pos + 2)\n  if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n    this.pos += 3\n    return this.finishToken(tt.ellipsis)\n  } else {\n    ++this.pos\n    return this.finishToken(tt.dot)\n  }\n}\n\npp.readToken_slash = function() { // '/'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.slash, 1)\n}\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n  let next = this.input.charCodeAt(this.pos + 1)\n  let size = 1\n  let tokentype = code === 42 ? tt.star : tt.modulo\n\n  // exponentiation operator ** and **=\n  if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n    ++size\n    tokentype = tt.starstar\n    next = this.input.charCodeAt(this.pos + 2)\n  }\n\n  if (next === 61) return this.finishOp(tt.assign, size + 1)\n  return this.finishOp(tokentype, size)\n}\n\npp.readToken_pipe_amp = function(code) { // '|&'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === code) return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2)\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1)\n}\n\npp.readToken_caret = function() { // '^'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.bitwiseXOR, 1)\n}\n\npp.readToken_plus_min = function(code) { // '+-'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === code) {\n    if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n        (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n      // A `-->` line comment\n      this.skipLineComment(3)\n      this.skipSpace()\n      return this.nextToken()\n    }\n    return this.finishOp(tt.incDec, 2)\n  }\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n  let next = this.input.charCodeAt(this.pos + 1)\n  let size = 1\n  if (next === code) {\n    size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n    if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n    return this.finishOp(tt.bitShift, size)\n  }\n  if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n      this.input.charCodeAt(this.pos + 3) === 45) {\n    // `<!--`, an XML-style comment that should be interpreted as a line comment\n    this.skipLineComment(4)\n    this.skipSpace()\n    return this.nextToken()\n  }\n  if (next === 61) size = 2\n  return this.finishOp(tt.relational, size)\n}\n\npp.readToken_eq_excl = function(code) { // '=!'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === 61) return this.finishOp(tt.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2)\n  if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n    this.pos += 2\n    return this.finishToken(tt.arrow)\n  }\n  return this.finishOp(code === 61 ? tt.eq : tt.prefix, 1)\n}\n\npp.getTokenFromCode = function(code) {\n  switch (code) {\n  // The interpretation of a dot depends on whether it is followed\n  // by a digit or another two dots.\n  case 46: // '.'\n    return this.readToken_dot()\n\n  // Punctuation tokens.\n  case 40: ++this.pos; return this.finishToken(tt.parenL)\n  case 41: ++this.pos; return this.finishToken(tt.parenR)\n  case 59: ++this.pos; return this.finishToken(tt.semi)\n  case 44: ++this.pos; return this.finishToken(tt.comma)\n  case 91: ++this.pos; return this.finishToken(tt.bracketL)\n  case 93: ++this.pos; return this.finishToken(tt.bracketR)\n  case 123: ++this.pos; return this.finishToken(tt.braceL)\n  case 125: ++this.pos; return this.finishToken(tt.braceR)\n  case 58: ++this.pos; return this.finishToken(tt.colon)\n  case 63: ++this.pos; return this.finishToken(tt.question)\n\n  case 96: // '`'\n    if (this.options.ecmaVersion < 6) break\n    ++this.pos\n    return this.finishToken(tt.backQuote)\n\n  case 48: // '0'\n    let next = this.input.charCodeAt(this.pos + 1)\n    if (next === 120 || next === 88) return this.readRadixNumber(16) // '0x', '0X' - hex number\n    if (this.options.ecmaVersion >= 6) {\n      if (next === 111 || next === 79) return this.readRadixNumber(8) // '0o', '0O' - octal number\n      if (next === 98 || next === 66) return this.readRadixNumber(2) // '0b', '0B' - binary number\n    }\n\n  // Anything else beginning with a digit is an integer, octal\n  // number, or float.\n  case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n    return this.readNumber(false)\n\n  // Quotes produce strings.\n  case 34: case 39: // '\"', \"'\"\n    return this.readString(code)\n\n  // Operators are parsed inline in tiny state machines. '=' (61) is\n  // often referred to. `finishOp` simply skips the amount of\n  // characters it is given as second argument, and returns a token\n  // of the type given by its first argument.\n\n  case 47: // '/'\n    return this.readToken_slash()\n\n  case 37: case 42: // '%*'\n    return this.readToken_mult_modulo_exp(code)\n\n  case 124: case 38: // '|&'\n    return this.readToken_pipe_amp(code)\n\n  case 94: // '^'\n    return this.readToken_caret()\n\n  case 43: case 45: // '+-'\n    return this.readToken_plus_min(code)\n\n  case 60: case 62: // '<>'\n    return this.readToken_lt_gt(code)\n\n  case 61: case 33: // '=!'\n    return this.readToken_eq_excl(code)\n\n  case 126: // '~'\n    return this.finishOp(tt.prefix, 1)\n  }\n\n  this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\")\n}\n\npp.finishOp = function(type, size) {\n  let str = this.input.slice(this.pos, this.pos + size)\n  this.pos += size\n  return this.finishToken(type, str)\n}\n\npp.readRegexp = function() {\n  let escaped, inClass, start = this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(start, \"Unterminated regular expression\")\n    let ch = this.input.charAt(this.pos)\n    if (lineBreak.test(ch)) this.raise(start, \"Unterminated regular expression\")\n    if (!escaped) {\n      if (ch === \"[\") inClass = true\n      else if (ch === \"]\" && inClass) inClass = false\n      else if (ch === \"/\" && !inClass) break\n      escaped = ch === \"\\\\\"\n    } else escaped = false\n    ++this.pos\n  }\n  let pattern = this.input.slice(start, this.pos)\n  ++this.pos\n  let flagsStart = this.pos\n  let flags = this.readWord1()\n  if (this.containsEsc) this.unexpected(flagsStart)\n\n  // Validate pattern\n  const state = this.regexpState || (this.regexpState = new RegExpValidationState(this))\n  state.reset(start, pattern, flags)\n  this.validateRegExpFlags(state)\n  this.validateRegExpPattern(state)\n\n  // Create Literal#value property value.\n  let value = null\n  try {\n    value = new RegExp(pattern, flags)\n  } catch (e) {\n    // ESTree requires null if it failed to instantiate RegExp object.\n    // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n  }\n\n  return this.finishToken(tt.regexp, {pattern, flags, value})\n}\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp.readInt = function(radix, len) {\n  let start = this.pos, total = 0\n  for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n    let code = this.input.charCodeAt(this.pos), val\n    if (code >= 97) val = code - 97 + 10 // a\n    else if (code >= 65) val = code - 65 + 10 // A\n    else if (code >= 48 && code <= 57) val = code - 48 // 0-9\n    else val = Infinity\n    if (val >= radix) break\n    ++this.pos\n    total = total * radix + val\n  }\n  if (this.pos === start || len != null && this.pos - start !== len) return null\n\n  return total\n}\n\npp.readRadixNumber = function(radix) {\n  this.pos += 2 // 0x\n  let val = this.readInt(radix)\n  if (val == null) this.raise(this.start + 2, \"Expected number in radix \" + radix)\n  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\")\n  return this.finishToken(tt.num, val)\n}\n\n// Read an integer, octal integer, or floating-point number.\n\npp.readNumber = function(startsWithDot) {\n  let start = this.pos\n  if (!startsWithDot && this.readInt(10) === null) this.raise(start, \"Invalid number\")\n  let octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48\n  if (octal && this.strict) this.raise(start, \"Invalid number\")\n  if (octal && /[89]/.test(this.input.slice(start, this.pos))) octal = false\n  let next = this.input.charCodeAt(this.pos)\n  if (next === 46 && !octal) { // '.'\n    ++this.pos\n    this.readInt(10)\n    next = this.input.charCodeAt(this.pos)\n  }\n  if ((next === 69 || next === 101) && !octal) { // 'eE'\n    next = this.input.charCodeAt(++this.pos)\n    if (next === 43 || next === 45) ++this.pos // '+-'\n    if (this.readInt(10) === null) this.raise(start, \"Invalid number\")\n  }\n  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\")\n\n  let str = this.input.slice(start, this.pos)\n  let val = octal ? parseInt(str, 8) : parseFloat(str)\n  return this.finishToken(tt.num, val)\n}\n\n// Read a string value, interpreting backslash-escapes.\n\npp.readCodePoint = function() {\n  let ch = this.input.charCodeAt(this.pos), code\n\n  if (ch === 123) { // '{'\n    if (this.options.ecmaVersion < 6) this.unexpected()\n    let codePos = ++this.pos\n    code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos)\n    ++this.pos\n    if (code > 0x10FFFF) this.invalidStringToken(codePos, \"Code point out of bounds\")\n  } else {\n    code = this.readHexChar(4)\n  }\n  return code\n}\n\nfunction codePointToString(code) {\n  // UTF-16 Decoding\n  if (code <= 0xFFFF) return String.fromCharCode(code)\n  code -= 0x10000\n  return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\npp.readString = function(quote) {\n  let out = \"\", chunkStart = ++this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(this.start, \"Unterminated string constant\")\n    let ch = this.input.charCodeAt(this.pos)\n    if (ch === quote) break\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos)\n      out += this.readEscapedChar(false)\n      chunkStart = this.pos\n    } else {\n      if (isNewLine(ch, this.options.ecmaVersion >= 10)) this.raise(this.start, \"Unterminated string constant\")\n      ++this.pos\n    }\n  }\n  out += this.input.slice(chunkStart, this.pos++)\n  return this.finishToken(tt.string, out)\n}\n\n// Reads template string tokens.\n\nconst INVALID_TEMPLATE_ESCAPE_ERROR = {}\n\npp.tryReadTemplateToken = function() {\n  this.inTemplateElement = true\n  try {\n    this.readTmplToken()\n  } catch (err) {\n    if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n      this.readInvalidTemplateToken()\n    } else {\n      throw err\n    }\n  }\n\n  this.inTemplateElement = false\n}\n\npp.invalidStringToken = function(position, message) {\n  if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n    throw INVALID_TEMPLATE_ESCAPE_ERROR\n  } else {\n    this.raise(position, message)\n  }\n}\n\npp.readTmplToken = function() {\n  let out = \"\", chunkStart = this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(this.start, \"Unterminated template\")\n    let ch = this.input.charCodeAt(this.pos)\n    if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n      if (this.pos === this.start && (this.type === tt.template || this.type === tt.invalidTemplate)) {\n        if (ch === 36) {\n          this.pos += 2\n          return this.finishToken(tt.dollarBraceL)\n        } else {\n          ++this.pos\n          return this.finishToken(tt.backQuote)\n        }\n      }\n      out += this.input.slice(chunkStart, this.pos)\n      return this.finishToken(tt.template, out)\n    }\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos)\n      out += this.readEscapedChar(true)\n      chunkStart = this.pos\n    } else if (isNewLine(ch)) {\n      out += this.input.slice(chunkStart, this.pos)\n      ++this.pos\n      switch (ch) {\n      case 13:\n        if (this.input.charCodeAt(this.pos) === 10) ++this.pos\n      case 10:\n        out += \"\\n\"\n        break\n      default:\n        out += String.fromCharCode(ch)\n        break\n      }\n      if (this.options.locations) {\n        ++this.curLine\n        this.lineStart = this.pos\n      }\n      chunkStart = this.pos\n    } else {\n      ++this.pos\n    }\n  }\n}\n\n// Reads a template token to search for the end, without validating any escape sequences\npp.readInvalidTemplateToken = function() {\n  for (; this.pos < this.input.length; this.pos++) {\n    switch (this.input[this.pos]) {\n    case \"\\\\\":\n      ++this.pos\n      break\n\n    case \"$\":\n      if (this.input[this.pos + 1] !== \"{\") {\n        break\n      }\n    // falls through\n\n    case \"`\":\n      return this.finishToken(tt.invalidTemplate, this.input.slice(this.start, this.pos))\n\n    // no default\n    }\n  }\n  this.raise(this.start, \"Unterminated template\")\n}\n\n// Used to read escaped characters\n\npp.readEscapedChar = function(inTemplate) {\n  let ch = this.input.charCodeAt(++this.pos)\n  ++this.pos\n  switch (ch) {\n  case 110: return \"\\n\" // 'n' -> '\\n'\n  case 114: return \"\\r\" // 'r' -> '\\r'\n  case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n  case 117: return codePointToString(this.readCodePoint()) // 'u'\n  case 116: return \"\\t\" // 't' -> '\\t'\n  case 98: return \"\\b\" // 'b' -> '\\b'\n  case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n  case 102: return \"\\f\" // 'f' -> '\\f'\n  case 13: if (this.input.charCodeAt(this.pos) === 10) ++this.pos // '\\r\\n'\n  case 10: // ' \\n'\n    if (this.options.locations) { this.lineStart = this.pos; ++this.curLine }\n    return \"\"\n  default:\n    if (ch >= 48 && ch <= 55) {\n      let octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]\n      let octal = parseInt(octalStr, 8)\n      if (octal > 255) {\n        octalStr = octalStr.slice(0, -1)\n        octal = parseInt(octalStr, 8)\n      }\n      this.pos += octalStr.length - 1\n      ch = this.input.charCodeAt(this.pos)\n      if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n        this.invalidStringToken(\n          this.pos - 1 - octalStr.length,\n          inTemplate\n            ? \"Octal literal in template string\"\n            : \"Octal literal in strict mode\"\n        )\n      }\n      return String.fromCharCode(octal)\n    }\n    if (isNewLine(ch)) {\n      // Unicode new line characters after \\ get removed from output in both\n      // template literals and strings\n      return \"\"\n    }\n    return String.fromCharCode(ch)\n  }\n}\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp.readHexChar = function(len) {\n  let codePos = this.pos\n  let n = this.readInt(16, len)\n  if (n === null) this.invalidStringToken(codePos, \"Bad character escape sequence\")\n  return n\n}\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp.readWord1 = function() {\n  this.containsEsc = false\n  let word = \"\", first = true, chunkStart = this.pos\n  let astral = this.options.ecmaVersion >= 6\n  while (this.pos < this.input.length) {\n    let ch = this.fullCharCodeAtPos()\n    if (isIdentifierChar(ch, astral)) {\n      this.pos += ch <= 0xffff ? 1 : 2\n    } else if (ch === 92) { // \"\\\"\n      this.containsEsc = true\n      word += this.input.slice(chunkStart, this.pos)\n      let escStart = this.pos\n      if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n        this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\")\n      ++this.pos\n      let esc = this.readCodePoint()\n      if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n        this.invalidStringToken(escStart, \"Invalid Unicode escape\")\n      word += codePointToString(esc)\n      chunkStart = this.pos\n    } else {\n      break\n    }\n    first = false\n  }\n  return word + this.input.slice(chunkStart, this.pos)\n}\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp.readWord = function() {\n  let word = this.readWord1()\n  let type = tt.name\n  if (this.keywords.test(word)) {\n    if (this.containsEsc) this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + word)\n    type = keywordTypes[word]\n  }\n  return this.finishToken(type, word)\n}\n","// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n//\n// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and\n// various contributors and released under an MIT license.\n//\n// Git repositories for Acorn are available at\n//\n//     http://marijnhaverbeke.nl/git/acorn\n//     https://github.com/acornjs/acorn.git\n//\n// Please use the [github bug tracker][ghbt] to report issues.\n//\n// [ghbt]: https://github.com/acornjs/acorn/issues\n//\n// [walk]: util/walk.js\n\nimport {Parser} from \"./state\"\nimport \"./parseutil\"\nimport \"./statement\"\nimport \"./lval\"\nimport \"./expression\"\nimport \"./location\"\nimport \"./scope\"\n\nexport {Parser} from \"./state\"\nexport {defaultOptions} from \"./options\"\nexport {Position, SourceLocation, getLineInfo} from \"./locutil\"\nexport {Node} from \"./node\"\nexport {TokenType, types as tokTypes, keywords as keywordTypes} from \"./tokentype\"\nexport {TokContext, types as tokContexts} from \"./tokencontext\"\nexport {isIdentifierChar, isIdentifierStart} from \"./identifier\"\nexport {Token} from \"./tokenize\"\nexport {isNewLine, lineBreak, lineBreakG, nonASCIIwhitespace} from \"./whitespace\"\n\nexport const version = \"6.1.1\"\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and\n// returns an abstract syntax tree as specified by [Mozilla parser\n// API][api].\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\nexport function parse(input, options) {\n  return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nexport function parseExpressionAt(input, pos, options) {\n  return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nexport function tokenizer(input, options) {\n  return Parser.tokenizer(input, options)\n}\n"],"names":["const","let","keywords","tt","this","pp","init","label","node","empty","scope","types","UNICODE_PROPERTY_VALUES","codePointToString","ch","keywordTypes"],"mappings":"AAAA;;AAEA,AAAOA,IAAM,aAAa,GAAG;EAC3B,CAAC,EAAE,qNAAqN;EACxN,CAAC,EAAE,8CAA8C;EACjD,CAAC,EAAE,MAAM;EACT,MAAM,EAAE,wEAAwE;EAChF,UAAU,EAAE,gBAAgB;EAC7B;;;;AAIDA,IAAM,oBAAoB,GAAG,8KAA6K;;AAE1M,AAAOA,IAAM,QAAQ,GAAG;EACtB,CAAC,EAAE,oBAAoB;EACvB,CAAC,EAAE,oBAAoB,GAAG,0CAA0C;EACrE;;AAED,AAAOA,IAAM,yBAAyB,GAAG,kBAAiB;;;;;;;;;;AAU1DC,IAAI,4BAA4B,GAAG,4tIAA2tI;AAC9vIA,IAAI,uBAAuB,GAAG,sjFAAqjF;;AAEnlFD,IAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,GAAG,EAAC;AACpFA,IAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,uBAAuB,GAAG,GAAG,EAAC;;AAEzG,4BAA4B,GAAG,uBAAuB,GAAG,KAAI;;;;;;;;;AAS7DA,IAAM,0BAA0B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;;;AAGvqCA,IAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CA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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/acorn/package/dist/acorn.js.map:1:{"version":3,"file":"acorn.js","sources":["../src/identifier.js","../src/tokentype.js","../src/whitespace.js","../src/util.js","../src/locutil.js","../src/options.js","../src/scopeflags.js","../src/state.js","../src/parseutil.js","../src/statement.js","../src/lval.js","../src/expression.js","../src/location.js","../src/scope.js","../src/node.js","../src/tokencontext.js","../src/unicode-property-data.js","../src/regexp.js","../src/tokenize.js","../src/index.js"],"sourcesContent":["// Reserved word lists for various dialects of the language\n\nexport const reservedWords = {\n  3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n  5: \"class enum extends super const export import\",\n  6: \"enum\",\n  strict: \"implements interface let package private protected public static yield\",\n  strictBind: \"eval arguments\"\n}\n\n// And the keywords\n\nconst ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\"\n\nexport const keywords = {\n  5: ecma5AndLessKeywords,\n  6: ecma5AndLessKeywords + \" const class extends export import super\"\n}\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n// Generated by `bin/generate-identifier-regex.js`.\n\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7b9\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab65\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\"\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2-\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\"\n\nconst nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\")\nconst nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\")\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by bin/generate-identifier-regex.js\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541]\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239]\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n  let pos = 0x10000\n  for (let i = 0; i < set.length; i += 2) {\n    pos += set[i]\n    if (pos > code) return false\n    pos += set[i + 1]\n    if (pos >= code) return true\n  }\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code, astral) {\n  if (code < 65) return code === 36\n  if (code < 91) return true\n  if (code < 97) return code === 95\n  if (code < 123) return true\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n  if (astral === false) return false\n  return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code, astral) {\n  if (code < 48) return code === 36\n  if (code < 58) return true\n  if (code < 65) return false\n  if (code < 91) return true\n  if (code < 97) return code === 95\n  if (code < 123) return true\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code))\n  if (astral === false) return false\n  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n","// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nexport class TokenType {\n  constructor(label, conf = {}) {\n    this.label = label\n    this.keyword = conf.keyword\n    this.beforeExpr = !!conf.beforeExpr\n    this.startsExpr = !!conf.startsExpr\n    this.isLoop = !!conf.isLoop\n    this.isAssign = !!conf.isAssign\n    this.prefix = !!conf.prefix\n    this.postfix = !!conf.postfix\n    this.binop = conf.binop || null\n    this.updateContext = null\n  }\n}\n\nfunction binop(name, prec) {\n  return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nconst beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}\n\n// Map keyword names to token types.\n\nexport const keywords = {}\n\n// Succinct definitions of keyword token types\nfunction kw(name, options = {}) {\n  options.keyword = name\n  return keywords[name] = new TokenType(name, options)\n}\n\nexport const types = {\n  num: new TokenType(\"num\", startsExpr),\n  regexp: new TokenType(\"regexp\", startsExpr),\n  string: new TokenType(\"string\", startsExpr),\n  name: new TokenType(\"name\", startsExpr),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n  bracketR: new TokenType(\"]\"),\n  braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n  braceR: new TokenType(\"}\"),\n  parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", beforeExpr),\n  semi: new TokenType(\";\", beforeExpr),\n  colon: new TokenType(\":\", beforeExpr),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", beforeExpr),\n  arrow: new TokenType(\"=>\", beforeExpr),\n  template: new TokenType(\"template\"),\n  invalidTemplate: new TokenType(\"invalidTemplate\"),\n  ellipsis: new TokenType(\"...\", beforeExpr),\n  backQuote: new TokenType(\"`\", startsExpr),\n  dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n  assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n  incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n  prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  logicalOR: binop(\"||\", 1),\n  logicalAND: binop(\"&&\", 2),\n  bitwiseOR: binop(\"|\", 3),\n  bitwiseXOR: binop(\"^\", 4),\n  bitwiseAND: binop(\"&\", 5),\n  equality: binop(\"==/!=/===/!==\", 6),\n  relational: binop(\"</>/<=/>=\", 7),\n  bitShift: binop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n  modulo: binop(\"%\", 10),\n  star: binop(\"*\", 10),\n  slash: binop(\"/\", 10),\n  starstar: new TokenType(\"**\", {beforeExpr: true}),\n\n  // Keyword token types.\n  _break: kw(\"break\"),\n  _case: kw(\"case\", beforeExpr),\n  _catch: kw(\"catch\"),\n  _continue: kw(\"continue\"),\n  _debugger: kw(\"debugger\"),\n  _default: kw(\"default\", beforeExpr),\n  _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n  _else: kw(\"else\", beforeExpr),\n  _finally: kw(\"finally\"),\n  _for: kw(\"for\", {isLoop: true}),\n  _function: kw(\"function\", startsExpr),\n  _if: kw(\"if\"),\n  _return: kw(\"return\", beforeExpr),\n  _switch: kw(\"switch\"),\n  _throw: kw(\"throw\", beforeExpr),\n  _try: kw(\"try\"),\n  _var: kw(\"var\"),\n  _const: kw(\"const\"),\n  _while: kw(\"while\", {isLoop: true}),\n  _with: kw(\"with\"),\n  _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n  _this: kw(\"this\", startsExpr),\n  _super: kw(\"super\", startsExpr),\n  _class: kw(\"class\", startsExpr),\n  _extends: kw(\"extends\", beforeExpr),\n  _export: kw(\"export\"),\n  _import: kw(\"import\"),\n  _null: kw(\"null\", startsExpr),\n  _true: kw(\"true\", startsExpr),\n  _false: kw(\"false\", startsExpr),\n  _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n  _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n  _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n}\n","// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nexport const lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\")\n\nexport function isNewLine(code, ecma2019String) {\n  return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n}\n\nexport const nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g\n","const {hasOwnProperty, toString} = Object.prototype\n\n// Checks if an object has a property.\n\nexport function has(obj, propName) {\n  return hasOwnProperty.call(obj, propName)\n}\n\nexport const isArray = Array.isArray || ((obj) => (\n  toString.call(obj) === \"[object Array]\"\n))\n\nexport function wordsRegexp(words) {\n  return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n","import {lineBreakG} from \"./whitespace\"\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  constructor(line, col) {\n    this.line = line\n    this.column = col\n  }\n\n  offset(n) {\n    return new Position(this.line, this.column + n)\n  }\n}\n\nexport class SourceLocation {\n  constructor(p, start, end) {\n    this.start = start\n    this.end = end\n    if (p.sourceFile !== null) this.source = p.sourceFile\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input, offset) {\n  for (let line = 1, cur = 0;;) {\n    lineBreakG.lastIndex = cur\n    let match = lineBreakG.exec(input)\n    if (match && match.index < offset) {\n      ++line\n      cur = match.index + match[0].length\n    } else {\n      return new Position(line, offset - cur)\n    }\n  }\n}\n","import {has, isArray} from \"./util\"\nimport {SourceLocation} from \"./locutil\"\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport const defaultOptions = {\n  // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n  // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10\n  // (2019). This influences support for strict mode, the set of\n  // reserved words, and support for new syntax features. The default\n  // is 9.\n  ecmaVersion: 9,\n  // `sourceType` indicates the mode the code should be parsed in.\n  // Can be either `\"script\"` or `\"module\"`. This influences global\n  // strict mode and parsing of `import` and `export` declarations.\n  sourceType: \"script\",\n  // `onInsertedSemicolon` can be a callback that will be called\n  // when a semicolon is automatically inserted. It will be passed\n  // the position of the comma as an offset, and if `locations` is\n  // enabled, it is given the location as a `{line, column}` object\n  // as second argument.\n  onInsertedSemicolon: null,\n  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n  // trailing commas.\n  onTrailingComma: null,\n  // By default, reserved words are only enforced if ecmaVersion >= 5.\n  // Set `allowReserved` to a boolean value to explicitly turn this on\n  // an off. When this option has the value \"never\", reserved words\n  // and keywords can also not be used as property names.\n  allowReserved: null,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // When enabled, await identifiers are allowed to appear at the top-level scope,\n  // but they are still not allowed in non-async functions.\n  allowAwaitOutsideFunction: false,\n  // When enabled, hashbang directive in the beginning of file\n  // is allowed and treated as a line comment.\n  allowHashBang: false,\n  // When `locations` is on, `loc` properties holding objects with\n  // `start` and `end` properties in `{line, column}` form (with\n  // line being 1-based and column 0-based) will be attached to the\n  // nodes.\n  locations: false,\n  // A function can be passed as `onToken` option, which will\n  // cause Acorn to call that function with object in the same\n  // format as tokens returned from `tokenizer().getToken()`. Note\n  // that you are not allowed to call the parser from the\n  // callback—that will corrupt its internal state.\n  onToken: null,\n  // A function can be passed as `onComment` option, which will\n  // cause Acorn to call that function with `(block, text, start,\n  // end)` parameters whenever a comment is skipped. `block` is a\n  // boolean indicating whether this is a block (`/* */`) comment,\n  // `text` is the content of the comment, and `start` and `end` are\n  // character offsets that denote the start and end of the comment.\n  // When the `locations` option is on, two more parameters are\n  // passed, the full `{line, column}` locations of the start and\n  // end of the comments. Note that you are not allowed to call the\n  // parser from the callback—that will corrupt its internal state.\n  onComment: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // It is possible to parse multiple files into a single AST by\n  // passing the tree produced by parsing the first file as\n  // `program` option in subsequent parses. This will add the\n  // toplevel forms of the parsed file to the `Program` (top) node\n  // of an existing parse tree.\n  program: null,\n  // When `locations` is on, you can pass this to record the source\n  // file in every node's `loc` object.\n  sourceFile: null,\n  // This value, if given, is stored in every node, whether\n  // `locations` is on or off.\n  directSourceFile: null,\n  // When enabled, parenthesized expressions are represented by\n  // (non-standard) ParenthesizedExpression nodes\n  preserveParens: false\n}\n\n// Interpret and default an options object\n\nexport function getOptions(opts) {\n  let options = {}\n\n  for (let opt in defaultOptions)\n    options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]\n\n  if (options.ecmaVersion >= 2015)\n    options.ecmaVersion -= 2009\n\n  if (options.allowReserved == null)\n    options.allowReserved = options.ecmaVersion < 5\n\n  if (isArray(options.onToken)) {\n    let tokens = options.onToken\n    options.onToken = (token) => tokens.push(token)\n  }\n  if (isArray(options.onComment))\n    options.onComment = pushComment(options, options.onComment)\n\n  return options\n}\n\nfunction pushComment(options, array) {\n  return function(block, text, start, end, startLoc, endLoc) {\n    let comment = {\n      type: block ? \"Block\" : \"Line\",\n      value: text,\n      start: start,\n      end: end\n    }\n    if (options.locations)\n      comment.loc = new SourceLocation(this, startLoc, endLoc)\n    if (options.ranges)\n      comment.range = [start, end]\n    array.push(comment)\n  }\n}\n","// Each scope gets a bitset that may contain these flags\nexport const\n    SCOPE_TOP = 1,\n    SCOPE_FUNCTION = 2,\n    SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n    SCOPE_ASYNC = 4,\n    SCOPE_GENERATOR = 8,\n    SCOPE_ARROW = 16,\n    SCOPE_SIMPLE_CATCH = 32,\n    SCOPE_SUPER = 64,\n    SCOPE_DIRECT_SUPER = 128\n\nexport function functionFlags(async, generator) {\n  return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal and declareName to determine the type of a binding\nexport const\n    BIND_NONE = 0, // Not a binding\n    BIND_VAR = 1, // Var-style binding\n    BIND_LEXICAL = 2, // Let- or const-style binding\n    BIND_FUNCTION = 3, // Function declaration\n    BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n    BIND_OUTSIDE = 5 // Special case for function names as bound inside the function\n","import {reservedWords, keywords} from \"./identifier\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\nimport {getOptions} from \"./options\"\nimport {wordsRegexp} from \"./util\"\nimport {SCOPE_TOP, SCOPE_FUNCTION, SCOPE_ASYNC, SCOPE_GENERATOR, SCOPE_SUPER, SCOPE_DIRECT_SUPER} from \"./scopeflags\"\n\nexport class Parser {\n  constructor(options, input, startPos) {\n    this.options = options = getOptions(options)\n    this.sourceFile = options.sourceFile\n    this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5])\n    let reserved = \"\"\n    if (!options.allowReserved) {\n      for (let v = options.ecmaVersion;; v--)\n        if (reserved = reservedWords[v]) break\n      if (options.sourceType === \"module\") reserved += \" await\"\n    }\n    this.reservedWords = wordsRegexp(reserved)\n    let reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict\n    this.reservedWordsStrict = wordsRegexp(reservedStrict)\n    this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind)\n    this.input = String(input)\n\n    // Used to signal to callers of `readWord1` whether the word\n    // contained any escape sequences. This is needed because words with\n    // escape sequences must not be interpreted as keywords.\n    this.containsEsc = false\n\n    // Set up token state\n\n    // The current position of the tokenizer in the input.\n    if (startPos) {\n      this.pos = startPos\n      this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1\n      this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length\n    } else {\n      this.pos = this.lineStart = 0\n      this.curLine = 1\n    }\n\n    // Properties of the current token:\n    // Its type\n    this.type = tt.eof\n    // For tokens that include more information than their type, the value\n    this.value = null\n    // Its start and end offset\n    this.start = this.end = this.pos\n    // And, if locations are used, the {line, column} object\n    // corresponding to those offsets\n    this.startLoc = this.endLoc = this.curPosition()\n\n    // Position information for the previous token\n    this.lastTokEndLoc = this.lastTokStartLoc = null\n    this.lastTokStart = this.lastTokEnd = this.pos\n\n    // The context stack is used to superficially track syntactic\n    // context to predict whether a regular expression is allowed in a\n    // given position.\n    this.context = this.initialContext()\n    this.exprAllowed = true\n\n    // Figure out if it's a module code.\n    this.inModule = options.sourceType === \"module\"\n    this.strict = this.inModule || this.strictDirective(this.pos)\n\n    // Used to signify the start of a potential arrow function\n    this.potentialArrowAt = -1\n\n    // Positions to delayed-check that yield/await does not exist in default parameters.\n    this.yieldPos = this.awaitPos = this.awaitIdentPos = 0\n    // Labels in scope.\n    this.labels = []\n    // Thus-far undefined exports.\n    this.undefinedExports = {}\n\n    // If enabled, skip leading hashbang line.\n    if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n      this.skipLineComment(2)\n\n    // Scope tracking for duplicate variable names (see scope.js)\n    this.scopeStack = []\n    this.enterScope(SCOPE_TOP)\n\n    // For RegExp validation\n    this.regexpState = null\n  }\n\n  parse() {\n    let node = this.options.program || this.startNode()\n    this.nextToken()\n    return this.parseTopLevel(node)\n  }\n\n  get inFunction() { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }\n  get inGenerator() { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }\n  get inAsync() { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }\n  get allowSuper() { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 }\n  get allowDirectSuper() { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }\n  get treatFunctionsAsVar() { return this.treatFunctionsAsVarInScope(this.currentScope()) }\n\n  // Switch to a getter for 7.0.0.\n  inNonArrowFunction() { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 }\n\n  static extend(...plugins) {\n    let cls = this\n    for (let i = 0; i < plugins.length; i++) cls = plugins[i](cls)\n    return cls\n  }\n\n  static parse(input, options) {\n    return new this(options, input).parse()\n  }\n\n  static parseExpressionAt(input, pos, options) {\n    let parser = new this(options, input, pos)\n    parser.nextToken()\n    return parser.parseExpression()\n  }\n\n  static tokenizer(input, options) {\n    return new this(options, input)\n  }\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\n\nconst pp = Parser.prototype\n\n// ## Parser utilities\n\nconst literal = /^(?:'((?:\\\\.|[^'])*?)'|\"((?:\\\\.|[^\"])*?)\")/\npp.strictDirective = function(start) {\n  for (;;) {\n    // Try to find string literal.\n    skipWhiteSpace.lastIndex = start\n    start += skipWhiteSpace.exec(this.input)[0].length\n    let match = literal.exec(this.input.slice(start))\n    if (!match) return false\n    if ((match[1] || match[2]) === \"use strict\") return true\n    start += match[0].length\n\n    // Skip semicolon, if any.\n    skipWhiteSpace.lastIndex = start\n    start += skipWhiteSpace.exec(this.input)[0].length\n    if (this.input[start] === \";\")\n      start++\n  }\n}\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp.eat = function(type) {\n  if (this.type === type) {\n    this.next()\n    return true\n  } else {\n    return false\n  }\n}\n\n// Tests whether parsed token is a contextual keyword.\n\npp.isContextual = function(name) {\n  return this.type === tt.name && this.value === name && !this.containsEsc\n}\n\n// Consumes contextual keyword if possible.\n\npp.eatContextual = function(name) {\n  if (!this.isContextual(name)) return false\n  this.next()\n  return true\n}\n\n// Asserts that following token is given contextual keyword.\n\npp.expectContextual = function(name) {\n  if (!this.eatContextual(name)) this.unexpected()\n}\n\n// Test whether a semicolon can be inserted at the current position.\n\npp.canInsertSemicolon = function() {\n  return this.type === tt.eof ||\n    this.type === tt.braceR ||\n    lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\npp.insertSemicolon = function() {\n  if (this.canInsertSemicolon()) {\n    if (this.options.onInsertedSemicolon)\n      this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc)\n    return true\n  }\n}\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp.semicolon = function() {\n  if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected()\n}\n\npp.afterTrailingComma = function(tokType, notNext) {\n  if (this.type === tokType) {\n    if (this.options.onTrailingComma)\n      this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc)\n    if (!notNext)\n      this.next()\n    return true\n  }\n}\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp.expect = function(type) {\n  this.eat(type) || this.unexpected()\n}\n\n// Raise an unexpected token error.\n\npp.unexpected = function(pos) {\n  this.raise(pos != null ? pos : this.start, \"Unexpected token\")\n}\n\nexport function DestructuringErrors() {\n  this.shorthandAssign =\n  this.trailingComma =\n  this.parenthesizedAssign =\n  this.parenthesizedBind =\n  this.doubleProto =\n    -1\n}\n\npp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n  if (!refDestructuringErrors) return\n  if (refDestructuringErrors.trailingComma > -1)\n    this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\")\n  let parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind\n  if (parens > -1) this.raiseRecoverable(parens, \"Parenthesized pattern\")\n}\n\npp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n  if (!refDestructuringErrors) return false\n  let {shorthandAssign, doubleProto} = refDestructuringErrors\n  if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0\n  if (shorthandAssign >= 0)\n    this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\")\n  if (doubleProto >= 0)\n    this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\")\n}\n\npp.checkYieldAwaitInDefaultParams = function() {\n  if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n    this.raise(this.yieldPos, \"Yield expression cannot be a default value\")\n  if (this.awaitPos)\n    this.raise(this.awaitPos, \"Await expression cannot be a default value\")\n}\n\npp.isSimpleAssignTarget = function(expr) {\n  if (expr.type === \"ParenthesizedExpression\")\n    return this.isSimpleAssignTarget(expr.expression)\n  return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\nimport {isIdentifierStart, isIdentifierChar, keywordRelationalOperator} from \"./identifier\"\nimport {has} from \"./util\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {functionFlags, SCOPE_SIMPLE_CATCH, BIND_SIMPLE_CATCH, BIND_LEXICAL, BIND_VAR, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node.  Optionally takes a\n// `program` argument.  If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp.parseTopLevel = function(node) {\n  let exports = {}\n  if (!node.body) node.body = []\n  while (this.type !== tt.eof) {\n    let stmt = this.parseStatement(null, true, exports)\n    node.body.push(stmt)\n  }\n  if (this.inModule)\n    for (let name of Object.keys(this.undefinedExports))\n      this.raiseRecoverable(this.undefinedExports[name].start, `Export '${name}' is not defined`)\n  this.adaptDirectivePrologue(node.body)\n  this.next()\n  if (this.options.ecmaVersion >= 6) {\n    node.sourceType = this.options.sourceType\n  }\n  return this.finishNode(node, \"Program\")\n}\n\nconst loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"}\n\npp.isLet = function(context) {\n  if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) return false\n  skipWhiteSpace.lastIndex = this.pos\n  let skip = skipWhiteSpace.exec(this.input)\n  let next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next)\n  // For ambiguous cases, determine if a LexicalDeclaration (or only a\n  // Statement) is allowed here. If context is not empty then only a Statement\n  // is allowed. However, `let [` is an explicit negative lookahead for\n  // ExpressionStatement, so special-case it first.\n  if (nextCh === 91) return true // '['\n  if (context) return false\n\n  if (nextCh === 123) return true // '{'\n  if (isIdentifierStart(nextCh, true)) {\n    let pos = next + 1\n    while (isIdentifierChar(this.input.charCodeAt(pos), true)) ++pos\n    let ident = this.input.slice(next, pos)\n    if (!keywordRelationalOperator.test(ident)) return true\n  }\n  return false\n}\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp.isAsyncFunction = function() {\n  if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n    return false\n\n  skipWhiteSpace.lastIndex = this.pos\n  let skip = skipWhiteSpace.exec(this.input)\n  let next = this.pos + skip[0].length\n  return !lineBreak.test(this.input.slice(this.pos, next)) &&\n    this.input.slice(next, next + 8) === \"function\" &&\n    (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))\n}\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp.parseStatement = function(context, topLevel, exports) {\n  let starttype = this.type, node = this.startNode(), kind\n\n  if (this.isLet(context)) {\n    starttype = tt._var\n    kind = \"let\"\n  }\n\n  // Most types of statements are recognized by the keyword they\n  // start with. Many are trivial to parse, some require a bit of\n  // complexity.\n\n  switch (starttype) {\n  case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n  case tt._debugger: return this.parseDebuggerStatement(node)\n  case tt._do: return this.parseDoStatement(node)\n  case tt._for: return this.parseForStatement(node)\n  case tt._function:\n    // Function as sole body of either an if statement or a labeled statement\n    // works, but not when it is part of a labeled statement that is the sole\n    // body of an if statement.\n    if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) this.unexpected()\n    return this.parseFunctionStatement(node, false, !context)\n  case tt._class:\n    if (context) this.unexpected()\n    return this.parseClass(node, true)\n  case tt._if: return this.parseIfStatement(node)\n  case tt._return: return this.parseReturnStatement(node)\n  case tt._switch: return this.parseSwitchStatement(node)\n  case tt._throw: return this.parseThrowStatement(node)\n  case tt._try: return this.parseTryStatement(node)\n  case tt._const: case tt._var:\n    kind = kind || this.value\n    if (context && kind !== \"var\") this.unexpected()\n    return this.parseVarStatement(node, kind)\n  case tt._while: return this.parseWhileStatement(node)\n  case tt._with: return this.parseWithStatement(node)\n  case tt.braceL: return this.parseBlock(true, node)\n  case tt.semi: return this.parseEmptyStatement(node)\n  case tt._export:\n  case tt._import:\n    if (!this.options.allowImportExportEverywhere) {\n      if (!topLevel)\n        this.raise(this.start, \"'import' and 'export' may only appear at the top level\")\n      if (!this.inModule)\n        this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\")\n    }\n    return starttype === tt._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n  default:\n    if (this.isAsyncFunction()) {\n      if (context) this.unexpected()\n      this.next()\n      return this.parseFunctionStatement(node, true, !context)\n    }\n\n    let maybeName = this.value, expr = this.parseExpression()\n    if (starttype === tt.name && expr.type === \"Identifier\" && this.eat(tt.colon))\n      return this.parseLabeledStatement(node, maybeName, expr, context)\n    else return this.parseExpressionStatement(node, expr)\n  }\n}\n\npp.parseBreakContinueStatement = function(node, keyword) {\n  let isBreak = keyword === \"break\"\n  this.next()\n  if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null\n  else if (this.type !== tt.name) this.unexpected()\n  else {\n    node.label = this.parseIdent()\n    this.semicolon()\n  }\n\n  // Verify that there is an actual destination to break or\n  // continue to.\n  let i = 0\n  for (; i < this.labels.length; ++i) {\n    let lab = this.labels[i]\n    if (node.label == null || lab.name === node.label.name) {\n      if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break\n      if (node.label && isBreak) break\n    }\n  }\n  if (i === this.labels.length) this.raise(node.start, \"Unsyntactic \" + keyword)\n  return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n}\n\npp.parseDebuggerStatement = function(node) {\n  this.next()\n  this.semicolon()\n  return this.finishNode(node, \"DebuggerStatement\")\n}\n\npp.parseDoStatement = function(node) {\n  this.next()\n  this.labels.push(loopLabel)\n  node.body = this.parseStatement(\"do\")\n  this.labels.pop()\n  this.expect(tt._while)\n  node.test = this.parseParenExpression()\n  if (this.options.ecmaVersion >= 6)\n    this.eat(tt.semi)\n  else\n    this.semicolon()\n  return this.finishNode(node, \"DoWhileStatement\")\n}\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp.parseForStatement = function(node) {\n  this.next()\n  let awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual(\"await\")) ? this.lastTokStart : -1\n  this.labels.push(loopLabel)\n  this.enterScope(0)\n  this.expect(tt.parenL)\n  if (this.type === tt.semi) {\n    if (awaitAt > -1) this.unexpected(awaitAt)\n    return this.parseFor(node, null)\n  }\n  let isLet = this.isLet()\n  if (this.type === tt._var || this.type === tt._const || isLet) {\n    let init = this.startNode(), kind = isLet ? \"let\" : this.value\n    this.next()\n    this.parseVar(init, true, kind)\n    this.finishNode(init, \"VariableDeclaration\")\n    if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1 &&\n        !(kind !== \"var\" && init.declarations[0].init)) {\n      if (this.options.ecmaVersion >= 9) {\n        if (this.type === tt._in) {\n          if (awaitAt > -1) this.unexpected(awaitAt)\n        } else node.await = awaitAt > -1\n      }\n      return this.parseForIn(node, init)\n    }\n    if (awaitAt > -1) this.unexpected(awaitAt)\n    return this.parseFor(node, init)\n  }\n  let refDestructuringErrors = new DestructuringErrors\n  let init = this.parseExpression(true, refDestructuringErrors)\n  if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n    if (this.options.ecmaVersion >= 9) {\n      if (this.type === tt._in) {\n        if (awaitAt > -1) this.unexpected(awaitAt)\n      } else node.await = awaitAt > -1\n    }\n    this.toAssignable(init, false, refDestructuringErrors)\n    this.checkLVal(init)\n    return this.parseForIn(node, init)\n  } else {\n    this.checkExpressionErrors(refDestructuringErrors, true)\n  }\n  if (awaitAt > -1) this.unexpected(awaitAt)\n  return this.parseFor(node, init)\n}\n\npp.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n  this.next()\n  return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n}\n\npp.parseIfStatement = function(node) {\n  this.next()\n  node.test = this.parseParenExpression()\n  // allow function declarations in branches, but only in non-strict mode\n  node.consequent = this.parseStatement(\"if\")\n  node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null\n  return this.finishNode(node, \"IfStatement\")\n}\n\npp.parseReturnStatement = function(node) {\n  if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n    this.raise(this.start, \"'return' outside of function\")\n  this.next()\n\n  // In `return` (and `break`/`continue`), the keywords with\n  // optional arguments, we eagerly look for a semicolon or the\n  // possibility to insert one.\n\n  if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null\n  else { node.argument = this.parseExpression(); this.semicolon() }\n  return this.finishNode(node, \"ReturnStatement\")\n}\n\npp.parseSwitchStatement = function(node) {\n  this.next()\n  node.discriminant = this.parseParenExpression()\n  node.cases = []\n  this.expect(tt.braceL)\n  this.labels.push(switchLabel)\n  this.enterScope(0)\n\n  // Statements under must be grouped (by label) in SwitchCase\n  // nodes. `cur` is used to keep the node that we are currently\n  // adding statements to.\n\n  let cur\n  for (let sawDefault = false; this.type !== tt.braceR;) {\n    if (this.type === tt._case || this.type === tt._default) {\n      let isCase = this.type === tt._case\n      if (cur) this.finishNode(cur, \"SwitchCase\")\n      node.cases.push(cur = this.startNode())\n      cur.consequent = []\n      this.next()\n      if (isCase) {\n        cur.test = this.parseExpression()\n      } else {\n        if (sawDefault) this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\")\n        sawDefault = true\n        cur.test = null\n      }\n      this.expect(tt.colon)\n    } else {\n      if (!cur) this.unexpected()\n      cur.consequent.push(this.parseStatement(null))\n    }\n  }\n  this.exitScope()\n  if (cur) this.finishNode(cur, \"SwitchCase\")\n  this.next() // Closing brace\n  this.labels.pop()\n  return this.finishNode(node, \"SwitchStatement\")\n}\n\npp.parseThrowStatement = function(node) {\n  this.next()\n  if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n    this.raise(this.lastTokEnd, \"Illegal newline after throw\")\n  node.argument = this.parseExpression()\n  this.semicolon()\n  return this.finishNode(node, \"ThrowStatement\")\n}\n\n// Reused empty array added for node fields that are always empty.\n\nconst empty = []\n\npp.parseTryStatement = function(node) {\n  this.next()\n  node.block = this.parseBlock()\n  node.handler = null\n  if (this.type === tt._catch) {\n    let clause = this.startNode()\n    this.next()\n    if (this.eat(tt.parenL)) {\n      clause.param = this.parseBindingAtom()\n      let simple = clause.param.type === \"Identifier\"\n      this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0)\n      this.checkLVal(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL)\n      this.expect(tt.parenR)\n    } else {\n      if (this.options.ecmaVersion < 10) this.unexpected()\n      clause.param = null\n      this.enterScope(0)\n    }\n    clause.body = this.parseBlock(false)\n    this.exitScope()\n    node.handler = this.finishNode(clause, \"CatchClause\")\n  }\n  node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null\n  if (!node.handler && !node.finalizer)\n    this.raise(node.start, \"Missing catch or finally clause\")\n  return this.finishNode(node, \"TryStatement\")\n}\n\npp.parseVarStatement = function(node, kind) {\n  this.next()\n  this.parseVar(node, false, kind)\n  this.semicolon()\n  return this.finishNode(node, \"VariableDeclaration\")\n}\n\npp.parseWhileStatement = function(node) {\n  this.next()\n  node.test = this.parseParenExpression()\n  this.labels.push(loopLabel)\n  node.body = this.parseStatement(\"while\")\n  this.labels.pop()\n  return this.finishNode(node, \"WhileStatement\")\n}\n\npp.parseWithStatement = function(node) {\n  if (this.strict) this.raise(this.start, \"'with' in strict mode\")\n  this.next()\n  node.object = this.parseParenExpression()\n  node.body = this.parseStatement(\"with\")\n  return this.finishNode(node, \"WithStatement\")\n}\n\npp.parseEmptyStatement = function(node) {\n  this.next()\n  return this.finishNode(node, \"EmptyStatement\")\n}\n\npp.parseLabeledStatement = function(node, maybeName, expr, context) {\n  for (let label of this.labels)\n    if (label.name === maybeName)\n      this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\")\n  let kind = this.type.isLoop ? \"loop\" : this.type === tt._switch ? \"switch\" : null\n  for (let i = this.labels.length - 1; i >= 0; i--) {\n    let label = this.labels[i]\n    if (label.statementStart === node.start) {\n      // Update information about previous labels on this node\n      label.statementStart = this.start\n      label.kind = kind\n    } else break\n  }\n  this.labels.push({name: maybeName, kind, statementStart: this.start})\n  node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\")\n  this.labels.pop()\n  node.label = expr\n  return this.finishNode(node, \"LabeledStatement\")\n}\n\npp.parseExpressionStatement = function(node, expr) {\n  node.expression = expr\n  this.semicolon()\n  return this.finishNode(node, \"ExpressionStatement\")\n}\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp.parseBlock = function(createNewLexicalScope = true, node = this.startNode()) {\n  node.body = []\n  this.expect(tt.braceL)\n  if (createNewLexicalScope) this.enterScope(0)\n  while (!this.eat(tt.braceR)) {\n    let stmt = this.parseStatement(null)\n    node.body.push(stmt)\n  }\n  if (createNewLexicalScope) this.exitScope()\n  return this.finishNode(node, \"BlockStatement\")\n}\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp.parseFor = function(node, init) {\n  node.init = init\n  this.expect(tt.semi)\n  node.test = this.type === tt.semi ? null : this.parseExpression()\n  this.expect(tt.semi)\n  node.update = this.type === tt.parenR ? null : this.parseExpression()\n  this.expect(tt.parenR)\n  node.body = this.parseStatement(\"for\")\n  this.exitScope()\n  this.labels.pop()\n  return this.finishNode(node, \"ForStatement\")\n}\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp.parseForIn = function(node, init) {\n  let type = this.type === tt._in ? \"ForInStatement\" : \"ForOfStatement\"\n  this.next()\n  if (type === \"ForInStatement\") {\n    if (init.type === \"AssignmentPattern\" ||\n      (init.type === \"VariableDeclaration\" && init.declarations[0].init != null &&\n       (this.strict || init.declarations[0].id.type !== \"Identifier\")))\n      this.raise(init.start, \"Invalid assignment in for-in loop head\")\n  }\n  node.left = init\n  node.right = type === \"ForInStatement\" ? this.parseExpression() : this.parseMaybeAssign()\n  this.expect(tt.parenR)\n  node.body = this.parseStatement(\"for\")\n  this.exitScope()\n  this.labels.pop()\n  return this.finishNode(node, type)\n}\n\n// Parse a list of variable declarations.\n\npp.parseVar = function(node, isFor, kind) {\n  node.declarations = []\n  node.kind = kind\n  for (;;) {\n    let decl = this.startNode()\n    this.parseVarId(decl, kind)\n    if (this.eat(tt.eq)) {\n      decl.init = this.parseMaybeAssign(isFor)\n    } else if (kind === \"const\" && !(this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n      this.unexpected()\n    } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === tt._in || this.isContextual(\"of\")))) {\n      this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\")\n    } else {\n      decl.init = null\n    }\n    node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"))\n    if (!this.eat(tt.comma)) break\n  }\n  return node\n}\n\npp.parseVarId = function(decl, kind) {\n  if ((kind === \"const\" || kind === \"let\") && this.isContextual(\"let\")) {\n    this.raiseRecoverable(this.start, \"let is disallowed as a lexically bound name\")\n  }\n  decl.id = this.parseBindingAtom()\n  this.checkLVal(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false)\n}\n\nconst FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n    if (this.type === tt.star && (statement & FUNC_HANGING_STATEMENT))\n      this.unexpected()\n    node.generator = this.eat(tt.star)\n  }\n  if (this.options.ecmaVersion >= 8)\n    node.async = !!isAsync\n\n  if (statement & FUNC_STATEMENT) {\n    node.id = (statement & FUNC_NULLABLE_ID) && this.type !== tt.name ? null : this.parseIdent()\n    if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n      // If it is a regular function declaration in sloppy mode, then it is\n      // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n      // mode depends on properties of the current scope (see\n      // treatFunctionsAsVar).\n      this.checkLVal(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION)\n  }\n\n  let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n  this.enterScope(functionFlags(node.async, node.generator))\n\n  if (!(statement & FUNC_STATEMENT))\n    node.id = this.type === tt.name ? this.parseIdent() : null\n\n  this.parseFunctionParams(node)\n  this.parseFunctionBody(node, allowExpressionBody, false)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n}\n\npp.parseFunctionParams = function(node) {\n  this.expect(tt.parenL)\n  node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n  this.checkYieldAwaitInDefaultParams()\n}\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp.parseClass = function(node, isStatement) {\n  this.next()\n\n  // ecma-262 14.6 Class Definitions\n  // A class definition is always strict mode code.\n  const oldStrict = this.strict\n  this.strict = true\n\n  this.parseClassId(node, isStatement)\n  this.parseClassSuper(node)\n  let classBody = this.startNode()\n  let hadConstructor = false\n  classBody.body = []\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    const element = this.parseClassElement(node.superClass !== null)\n    if (element) {\n      classBody.body.push(element)\n      if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n        if (hadConstructor) this.raise(element.start, \"Duplicate constructor in the same class\")\n        hadConstructor = true\n      }\n    }\n  }\n  node.body = this.finishNode(classBody, \"ClassBody\")\n  this.strict = oldStrict\n  return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n}\n\npp.parseClassElement = function(constructorAllowsSuper) {\n  if (this.eat(tt.semi)) return null\n\n  let method = this.startNode()\n  const tryContextual = (k, noLineBreak = false) => {\n    const start = this.start, startLoc = this.startLoc\n    if (!this.eatContextual(k)) return false\n    if (this.type !== tt.parenL && (!noLineBreak || !this.canInsertSemicolon())) return true\n    if (method.key) this.unexpected()\n    method.computed = false\n    method.key = this.startNodeAt(start, startLoc)\n    method.key.name = k\n    this.finishNode(method.key, \"Identifier\")\n    return false\n  }\n\n  method.kind = \"method\"\n  method.static = tryContextual(\"static\")\n  let isGenerator = this.eat(tt.star)\n  let isAsync = false\n  if (!isGenerator) {\n    if (this.options.ecmaVersion >= 8 && tryContextual(\"async\", true)) {\n      isAsync = true\n      isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n    } else if (tryContextual(\"get\")) {\n      method.kind = \"get\"\n    } else if (tryContextual(\"set\")) {\n      method.kind = \"set\"\n    }\n  }\n  if (!method.key) this.parsePropertyName(method)\n  let {key} = method\n  let allowsDirectSuper = false\n  if (!method.computed && !method.static && (key.type === \"Identifier\" && key.name === \"constructor\" ||\n      key.type === \"Literal\" && key.value === \"constructor\")) {\n    if (method.kind !== \"method\") this.raise(key.start, \"Constructor can't have get/set modifier\")\n    if (isGenerator) this.raise(key.start, \"Constructor can't be a generator\")\n    if (isAsync) this.raise(key.start, \"Constructor can't be an async method\")\n    method.kind = \"constructor\"\n    allowsDirectSuper = constructorAllowsSuper\n  } else if (method.static && key.type === \"Identifier\" && key.name === \"prototype\") {\n    this.raise(key.start, \"Classes may not have a static property named prototype\")\n  }\n  this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper)\n  if (method.kind === \"get\" && method.value.params.length !== 0)\n    this.raiseRecoverable(method.value.start, \"getter should have no params\")\n  if (method.kind === \"set\" && method.value.params.length !== 1)\n    this.raiseRecoverable(method.value.start, \"setter should have exactly one param\")\n  if (method.kind === \"set\" && method.value.params[0].type === \"RestElement\")\n    this.raiseRecoverable(method.value.params[0].start, \"Setter cannot use rest params\")\n  return method\n}\n\npp.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n  method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper)\n  return this.finishNode(method, \"MethodDefinition\")\n}\n\npp.parseClassId = function(node, isStatement) {\n  if (this.type === tt.name) {\n    node.id = this.parseIdent()\n    if (isStatement)\n      this.checkLVal(node.id, BIND_LEXICAL, false)\n  } else {\n    if (isStatement === true)\n      this.unexpected()\n    node.id = null\n  }\n}\n\npp.parseClassSuper = function(node) {\n  node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null\n}\n\n// Parses module export declaration.\n\npp.parseExport = function(node, exports) {\n  this.next()\n  // export * from '...'\n  if (this.eat(tt.star)) {\n    this.expectContextual(\"from\")\n    if (this.type !== tt.string) this.unexpected()\n    node.source = this.parseExprAtom()\n    this.semicolon()\n    return this.finishNode(node, \"ExportAllDeclaration\")\n  }\n  if (this.eat(tt._default)) { // export default ...\n    this.checkExport(exports, \"default\", this.lastTokStart)\n    let isAsync\n    if (this.type === tt._function || (isAsync = this.isAsyncFunction())) {\n      let fNode = this.startNode()\n      this.next()\n      if (isAsync) this.next()\n      node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n    } else if (this.type === tt._class) {\n      let cNode = this.startNode()\n      node.declaration = this.parseClass(cNode, \"nullableID\")\n    } else {\n      node.declaration = this.parseMaybeAssign()\n      this.semicolon()\n    }\n    return this.finishNode(node, \"ExportDefaultDeclaration\")\n  }\n  // export var|const|let|function|class ...\n  if (this.shouldParseExportStatement()) {\n    node.declaration = this.parseStatement(null)\n    if (node.declaration.type === \"VariableDeclaration\")\n      this.checkVariableExport(exports, node.declaration.declarations)\n    else\n      this.checkExport(exports, node.declaration.id.name, node.declaration.id.start)\n    node.specifiers = []\n    node.source = null\n  } else { // export { x, y as z } [from '...']\n    node.declaration = null\n    node.specifiers = this.parseExportSpecifiers(exports)\n    if (this.eatContextual(\"from\")) {\n      if (this.type !== tt.string) this.unexpected()\n      node.source = this.parseExprAtom()\n    } else {\n      for (let spec of node.specifiers) {\n        // check for keywords used as local names\n        this.checkUnreserved(spec.local)\n        // check if export is defined\n        this.checkLocalExport(spec.local)\n      }\n\n      node.source = null\n    }\n    this.semicolon()\n  }\n  return this.finishNode(node, \"ExportNamedDeclaration\")\n}\n\npp.checkExport = function(exports, name, pos) {\n  if (!exports) return\n  if (has(exports, name))\n    this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\")\n  exports[name] = true\n}\n\npp.checkPatternExport = function(exports, pat) {\n  let type = pat.type\n  if (type === \"Identifier\")\n    this.checkExport(exports, pat.name, pat.start)\n  else if (type === \"ObjectPattern\")\n    for (let prop of pat.properties)\n      this.checkPatternExport(exports, prop)\n  else if (type === \"ArrayPattern\")\n    for (let elt of pat.elements) {\n      if (elt) this.checkPatternExport(exports, elt)\n    }\n  else if (type === \"Property\")\n    this.checkPatternExport(exports, pat.value)\n  else if (type === \"AssignmentPattern\")\n    this.checkPatternExport(exports, pat.left)\n  else if (type === \"RestElement\")\n    this.checkPatternExport(exports, pat.argument)\n  else if (type === \"ParenthesizedExpression\")\n    this.checkPatternExport(exports, pat.expression)\n}\n\npp.checkVariableExport = function(exports, decls) {\n  if (!exports) return\n  for (let decl of decls)\n    this.checkPatternExport(exports, decl.id)\n}\n\npp.shouldParseExportStatement = function() {\n  return this.type.keyword === \"var\" ||\n    this.type.keyword === \"const\" ||\n    this.type.keyword === \"class\" ||\n    this.type.keyword === \"function\" ||\n    this.isLet() ||\n    this.isAsyncFunction()\n}\n\n// Parses a comma-separated list of module exports.\n\npp.parseExportSpecifiers = function(exports) {\n  let nodes = [], first = true\n  // export { x, y as z } [from '...']\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    let node = this.startNode()\n    node.local = this.parseIdent(true)\n    node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local\n    this.checkExport(exports, node.exported.name, node.exported.start)\n    nodes.push(this.finishNode(node, \"ExportSpecifier\"))\n  }\n  return nodes\n}\n\n// Parses import declaration.\n\npp.parseImport = function(node) {\n  this.next()\n  // import '...'\n  if (this.type === tt.string) {\n    node.specifiers = empty\n    node.source = this.parseExprAtom()\n  } else {\n    node.specifiers = this.parseImportSpecifiers()\n    this.expectContextual(\"from\")\n    node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()\n  }\n  this.semicolon()\n  return this.finishNode(node, \"ImportDeclaration\")\n}\n\n// Parses a comma-separated list of module imports.\n\npp.parseImportSpecifiers = function() {\n  let nodes = [], first = true\n  if (this.type === tt.name) {\n    // import defaultObj, { x, y as z } from '...'\n    let node = this.startNode()\n    node.local = this.parseIdent()\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"))\n    if (!this.eat(tt.comma)) return nodes\n  }\n  if (this.type === tt.star) {\n    let node = this.startNode()\n    this.next()\n    this.expectContextual(\"as\")\n    node.local = this.parseIdent()\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportNamespaceSpecifier\"))\n    return nodes\n  }\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    let node = this.startNode()\n    node.imported = this.parseIdent(true)\n    if (this.eatContextual(\"as\")) {\n      node.local = this.parseIdent()\n    } else {\n      this.checkUnreserved(node.imported)\n      node.local = node.imported\n    }\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportSpecifier\"))\n  }\n  return nodes\n}\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp.adaptDirectivePrologue = function(statements) {\n  for (let i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n    statements[i].directive = statements[i].expression.raw.slice(1, -1)\n  }\n}\npp.isDirectiveCandidate = function(statement) {\n  return (\n    statement.type === \"ExpressionStatement\" &&\n    statement.expression.type === \"Literal\" &&\n    typeof statement.expression.value === \"string\" &&\n    // Reject parenthesized strings.\n    (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n  )\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {has} from \"./util\"\nimport {BIND_NONE, BIND_OUTSIDE} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp.toAssignable = function(node, isBinding, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 6 && node) {\n    switch (node.type) {\n    case \"Identifier\":\n      if (this.inAsync && node.name === \"await\")\n        this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\")\n      break\n\n    case \"ObjectPattern\":\n    case \"ArrayPattern\":\n    case \"RestElement\":\n      break\n\n    case \"ObjectExpression\":\n      node.type = \"ObjectPattern\"\n      if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n      for (let prop of node.properties) {\n        this.toAssignable(prop, isBinding)\n        // Early error:\n        //   AssignmentRestProperty[Yield, Await] :\n        //     `...` DestructuringAssignmentTarget[Yield, Await]\n        //\n        //   It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n        if (\n          prop.type === \"RestElement\" &&\n          (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n        ) {\n          this.raise(prop.argument.start, \"Unexpected token\")\n        }\n      }\n      break\n\n    case \"Property\":\n      // AssignmentProperty has type === \"Property\"\n      if (node.kind !== \"init\") this.raise(node.key.start, \"Object pattern can't contain getter or setter\")\n      this.toAssignable(node.value, isBinding)\n      break\n\n    case \"ArrayExpression\":\n      node.type = \"ArrayPattern\"\n      if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n      this.toAssignableList(node.elements, isBinding)\n      break\n\n    case \"SpreadElement\":\n      node.type = \"RestElement\"\n      this.toAssignable(node.argument, isBinding)\n      if (node.argument.type === \"AssignmentPattern\")\n        this.raise(node.argument.start, \"Rest elements cannot have a default value\")\n      break\n\n    case \"AssignmentExpression\":\n      if (node.operator !== \"=\") this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\")\n      node.type = \"AssignmentPattern\"\n      delete node.operator\n      this.toAssignable(node.left, isBinding)\n      // falls through to AssignmentPattern\n\n    case \"AssignmentPattern\":\n      break\n\n    case \"ParenthesizedExpression\":\n      this.toAssignable(node.expression, isBinding, refDestructuringErrors)\n      break\n\n    case \"MemberExpression\":\n      if (!isBinding) break\n\n    default:\n      this.raise(node.start, \"Assigning to rvalue\")\n    }\n  } else if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n  return node\n}\n\n// Convert list of expression atoms to binding list.\n\npp.toAssignableList = function(exprList, isBinding) {\n  let end = exprList.length\n  for (let i = 0; i < end; i++) {\n    let elt = exprList[i]\n    if (elt) this.toAssignable(elt, isBinding)\n  }\n  if (end) {\n    let last = exprList[end - 1]\n    if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n      this.unexpected(last.argument.start)\n  }\n  return exprList\n}\n\n// Parses spread element.\n\npp.parseSpread = function(refDestructuringErrors) {\n  let node = this.startNode()\n  this.next()\n  node.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n  return this.finishNode(node, \"SpreadElement\")\n}\n\npp.parseRestBinding = function() {\n  let node = this.startNode()\n  this.next()\n\n  // RestElement inside of a function parameter must be an identifier\n  if (this.options.ecmaVersion === 6 && this.type !== tt.name)\n    this.unexpected()\n\n  node.argument = this.parseBindingAtom()\n\n  return this.finishNode(node, \"RestElement\")\n}\n\n// Parses lvalue (assignable) atom.\n\npp.parseBindingAtom = function() {\n  if (this.options.ecmaVersion >= 6) {\n    switch (this.type) {\n    case tt.bracketL:\n      let node = this.startNode()\n      this.next()\n      node.elements = this.parseBindingList(tt.bracketR, true, true)\n      return this.finishNode(node, \"ArrayPattern\")\n\n    case tt.braceL:\n      return this.parseObj(true)\n    }\n  }\n  return this.parseIdent()\n}\n\npp.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n  let elts = [], first = true\n  while (!this.eat(close)) {\n    if (first) first = false\n    else this.expect(tt.comma)\n    if (allowEmpty && this.type === tt.comma) {\n      elts.push(null)\n    } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n      break\n    } else if (this.type === tt.ellipsis) {\n      let rest = this.parseRestBinding()\n      this.parseBindingListItem(rest)\n      elts.push(rest)\n      if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n      this.expect(close)\n      break\n    } else {\n      let elem = this.parseMaybeDefault(this.start, this.startLoc)\n      this.parseBindingListItem(elem)\n      elts.push(elem)\n    }\n  }\n  return elts\n}\n\npp.parseBindingListItem = function(param) {\n  return param\n}\n\n// Parses assignment pattern around given atom if possible.\n\npp.parseMaybeDefault = function(startPos, startLoc, left) {\n  left = left || this.parseBindingAtom()\n  if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left\n  let node = this.startNodeAt(startPos, startLoc)\n  node.left = left\n  node.right = this.parseMaybeAssign()\n  return this.finishNode(node, \"AssignmentPattern\")\n}\n\n// Verify that a node is an lval — something that can be assigned\n// to.\n// bindingType can be either:\n// 'var' indicating that the lval creates a 'var' binding\n// 'let' indicating that the lval creates a lexical ('let' or 'const') binding\n// 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references\n\npp.checkLVal = function(expr, bindingType = BIND_NONE, checkClashes) {\n  switch (expr.type) {\n  case \"Identifier\":\n    if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n      this.raiseRecoverable(expr.start, (bindingType ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\")\n    if (checkClashes) {\n      if (has(checkClashes, expr.name))\n        this.raiseRecoverable(expr.start, \"Argument name clash\")\n      checkClashes[expr.name] = true\n    }\n    if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) this.declareName(expr.name, bindingType, expr.start)\n    break\n\n  case \"MemberExpression\":\n    if (bindingType) this.raiseRecoverable(expr.start, \"Binding member expression\")\n    break\n\n  case \"ObjectPattern\":\n    for (let prop of expr.properties)\n      this.checkLVal(prop, bindingType, checkClashes)\n    break\n\n  case \"Property\":\n    // AssignmentProperty has type === \"Property\"\n    this.checkLVal(expr.value, bindingType, checkClashes)\n    break\n\n  case \"ArrayPattern\":\n    for (let elem of expr.elements) {\n      if (elem) this.checkLVal(elem, bindingType, checkClashes)\n    }\n    break\n\n  case \"AssignmentPattern\":\n    this.checkLVal(expr.left, bindingType, checkClashes)\n    break\n\n  case \"RestElement\":\n    this.checkLVal(expr.argument, bindingType, checkClashes)\n    break\n\n  case \"ParenthesizedExpression\":\n    this.checkLVal(expr.expression, bindingType, checkClashes)\n    break\n\n  default:\n    this.raise(expr.start, (bindingType ? \"Binding\" : \"Assigning to\") + \" rvalue\")\n  }\n}\n","// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {lineBreak} from \"./whitespace\"\nimport {functionFlags, SCOPE_ARROW, SCOPE_SUPER, SCOPE_DIRECT_SUPER, BIND_OUTSIDE, BIND_VAR} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n    return\n  if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n    return\n  let {key} = prop, name\n  switch (key.type) {\n  case \"Identifier\": name = key.name; break\n  case \"Literal\": name = String(key.value); break\n  default: return\n  }\n  let {kind} = prop\n  if (this.options.ecmaVersion >= 6) {\n    if (name === \"__proto__\" && kind === \"init\") {\n      if (propHash.proto) {\n        if (refDestructuringErrors && refDestructuringErrors.doubleProto < 0) refDestructuringErrors.doubleProto = key.start\n        // Backwards-compat kludge. Can be removed in version 6.0\n        else this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\")\n      }\n      propHash.proto = true\n    }\n    return\n  }\n  name = \"$\" + name\n  let other = propHash[name]\n  if (other) {\n    let redefinition\n    if (kind === \"init\") {\n      redefinition = this.strict && other.init || other.get || other.set\n    } else {\n      redefinition = other.init || other[kind]\n    }\n    if (redefinition)\n      this.raiseRecoverable(key.start, \"Redefinition of property\")\n  } else {\n    other = propHash[name] = {\n      init: false,\n      get: false,\n      set: false\n    }\n  }\n  other[kind] = true\n}\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp.parseExpression = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseMaybeAssign(noIn, refDestructuringErrors)\n  if (this.type === tt.comma) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.expressions = [expr]\n    while (this.eat(tt.comma)) node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors))\n    return this.finishNode(node, \"SequenceExpression\")\n  }\n  return expr\n}\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {\n  if (this.isContextual(\"yield\")) {\n    if (this.inGenerator) return this.parseYield(noIn)\n    // The tokenizer will assume an expression is allowed after\n    // `yield`, but this isn't that kind of yield\n    else this.exprAllowed = false\n  }\n\n  let ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldShorthandAssign = -1\n  if (refDestructuringErrors) {\n    oldParenAssign = refDestructuringErrors.parenthesizedAssign\n    oldTrailingComma = refDestructuringErrors.trailingComma\n    oldShorthandAssign = refDestructuringErrors.shorthandAssign\n    refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.shorthandAssign = -1\n  } else {\n    refDestructuringErrors = new DestructuringErrors\n    ownDestructuringErrors = true\n  }\n\n  let startPos = this.start, startLoc = this.startLoc\n  if (this.type === tt.parenL || this.type === tt.name)\n    this.potentialArrowAt = this.start\n  let left = this.parseMaybeConditional(noIn, refDestructuringErrors)\n  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc)\n  if (this.type.isAssign) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.operator = this.value\n    node.left = this.type === tt.eq ? this.toAssignable(left, false, refDestructuringErrors) : left\n    if (!ownDestructuringErrors) DestructuringErrors.call(refDestructuringErrors)\n    refDestructuringErrors.shorthandAssign = -1 // reset because shorthand default was used correctly\n    this.checkLVal(left)\n    this.next()\n    node.right = this.parseMaybeAssign(noIn)\n    return this.finishNode(node, \"AssignmentExpression\")\n  } else {\n    if (ownDestructuringErrors) this.checkExpressionErrors(refDestructuringErrors, true)\n  }\n  if (oldParenAssign > -1) refDestructuringErrors.parenthesizedAssign = oldParenAssign\n  if (oldTrailingComma > -1) refDestructuringErrors.trailingComma = oldTrailingComma\n  if (oldShorthandAssign > -1) refDestructuringErrors.shorthandAssign = oldShorthandAssign\n  return left\n}\n\n// Parse a ternary conditional (`?:`) operator.\n\npp.parseMaybeConditional = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseExprOps(noIn, refDestructuringErrors)\n  if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n  if (this.eat(tt.question)) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.test = expr\n    node.consequent = this.parseMaybeAssign()\n    this.expect(tt.colon)\n    node.alternate = this.parseMaybeAssign(noIn)\n    return this.finishNode(node, \"ConditionalExpression\")\n  }\n  return expr\n}\n\n// Start the precedence parser.\n\npp.parseExprOps = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseMaybeUnary(refDestructuringErrors, false)\n  if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n  return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)\n}\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {\n  let prec = this.type.binop\n  if (prec != null && (!noIn || this.type !== tt._in)) {\n    if (prec > minPrec) {\n      let logical = this.type === tt.logicalOR || this.type === tt.logicalAND\n      let op = this.value\n      this.next()\n      let startPos = this.start, startLoc = this.startLoc\n      let right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn)\n      let node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical)\n      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)\n    }\n  }\n  return left\n}\n\npp.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n  let node = this.startNodeAt(startPos, startLoc)\n  node.left = left\n  node.operator = op\n  node.right = right\n  return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n}\n\n// Parse unary operators, both prefix and postfix.\n\npp.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {\n  let startPos = this.start, startLoc = this.startLoc, expr\n  if (this.isContextual(\"await\") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {\n    expr = this.parseAwait()\n    sawUnary = true\n  } else if (this.type.prefix) {\n    let node = this.startNode(), update = this.type === tt.incDec\n    node.operator = this.value\n    node.prefix = true\n    this.next()\n    node.argument = this.parseMaybeUnary(null, true)\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    if (update) this.checkLVal(node.argument)\n    else if (this.strict && node.operator === \"delete\" &&\n             node.argument.type === \"Identifier\")\n      this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\")\n    else sawUnary = true\n    expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\")\n  } else {\n    expr = this.parseExprSubscripts(refDestructuringErrors)\n    if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n    while (this.type.postfix && !this.canInsertSemicolon()) {\n      let node = this.startNodeAt(startPos, startLoc)\n      node.operator = this.value\n      node.prefix = false\n      node.argument = expr\n      this.checkLVal(expr)\n      this.next()\n      expr = this.finishNode(node, \"UpdateExpression\")\n    }\n  }\n\n  if (!sawUnary && this.eat(tt.starstar))\n    return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false)\n  else\n    return expr\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp.parseExprSubscripts = function(refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseExprAtom(refDestructuringErrors)\n  let skipArrowSubscripts = expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\"\n  if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr\n  let result = this.parseSubscripts(expr, startPos, startLoc)\n  if (refDestructuringErrors && result.type === \"MemberExpression\") {\n    if (refDestructuringErrors.parenthesizedAssign >= result.start) refDestructuringErrors.parenthesizedAssign = -1\n    if (refDestructuringErrors.parenthesizedBind >= result.start) refDestructuringErrors.parenthesizedBind = -1\n  }\n  return result\n}\n\npp.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n  let maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n      this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === \"async\"\n  while (true) {\n    let element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow)\n    if (element === base || element.type === \"ArrowFunctionExpression\") return element\n    base = element\n  }\n}\n\npp.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow) {\n  let computed = this.eat(tt.bracketL)\n  if (computed || this.eat(tt.dot)) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.object = base\n    node.property = computed ? this.parseExpression() : this.parseIdent(true)\n    node.computed = !!computed\n    if (computed) this.expect(tt.bracketR)\n    base = this.finishNode(node, \"MemberExpression\")\n  } else if (!noCalls && this.eat(tt.parenL)) {\n    let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n    this.yieldPos = 0\n    this.awaitPos = 0\n    this.awaitIdentPos = 0\n    let exprList = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors)\n    if (maybeAsyncArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false)\n      this.checkYieldAwaitInDefaultParams()\n      if (this.awaitIdentPos > 0)\n        this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\")\n      this.yieldPos = oldYieldPos\n      this.awaitPos = oldAwaitPos\n      this.awaitIdentPos = oldAwaitIdentPos\n      return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n    }\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    this.yieldPos = oldYieldPos || this.yieldPos\n    this.awaitPos = oldAwaitPos || this.awaitPos\n    this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos\n    let node = this.startNodeAt(startPos, startLoc)\n    node.callee = base\n    node.arguments = exprList\n    base = this.finishNode(node, \"CallExpression\")\n  } else if (this.type === tt.backQuote) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.tag = base\n    node.quasi = this.parseTemplate({isTagged: true})\n    base = this.finishNode(node, \"TaggedTemplateExpression\")\n  }\n  return base\n}\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp.parseExprAtom = function(refDestructuringErrors) {\n  // If a division operator appears in an expression position, the\n  // tokenizer got confused, and we force it to read a regexp instead.\n  if (this.type === tt.slash) this.readRegexp()\n\n  let node, canBeArrow = this.potentialArrowAt === this.start\n  switch (this.type) {\n  case tt._super:\n    if (!this.allowSuper)\n      this.raise(this.start, \"'super' keyword outside a method\")\n    node = this.startNode()\n    this.next()\n    if (this.type === tt.parenL && !this.allowDirectSuper)\n      this.raise(node.start, \"super() call outside constructor of a subclass\")\n    // The `super` keyword can appear at below:\n    // SuperProperty:\n    //     super [ Expression ]\n    //     super . IdentifierName\n    // SuperCall:\n    //     super Arguments\n    if (this.type !== tt.dot && this.type !== tt.bracketL && this.type !== tt.parenL)\n      this.unexpected()\n    return this.finishNode(node, \"Super\")\n\n  case tt._this:\n    node = this.startNode()\n    this.next()\n    return this.finishNode(node, \"ThisExpression\")\n\n  case tt.name:\n    let startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc\n    let id = this.parseIdent(false)\n    if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(tt._function))\n      return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true)\n    if (canBeArrow && !this.canInsertSemicolon()) {\n      if (this.eat(tt.arrow))\n        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false)\n      if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === tt.name && !containsEsc) {\n        id = this.parseIdent(false)\n        if (this.canInsertSemicolon() || !this.eat(tt.arrow))\n          this.unexpected()\n        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n      }\n    }\n    return id\n\n  case tt.regexp:\n    let value = this.value\n    node = this.parseLiteral(value.value)\n    node.regex = {pattern: value.pattern, flags: value.flags}\n    return node\n\n  case tt.num: case tt.string:\n    return this.parseLiteral(this.value)\n\n  case tt._null: case tt._true: case tt._false:\n    node = this.startNode()\n    node.value = this.type === tt._null ? null : this.type === tt._true\n    node.raw = this.type.keyword\n    this.next()\n    return this.finishNode(node, \"Literal\")\n\n  case tt.parenL:\n    let start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow)\n    if (refDestructuringErrors) {\n      if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n        refDestructuringErrors.parenthesizedAssign = start\n      if (refDestructuringErrors.parenthesizedBind < 0)\n        refDestructuringErrors.parenthesizedBind = start\n    }\n    return expr\n\n  case tt.bracketL:\n    node = this.startNode()\n    this.next()\n    node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors)\n    return this.finishNode(node, \"ArrayExpression\")\n\n  case tt.braceL:\n    return this.parseObj(false, refDestructuringErrors)\n\n  case tt._function:\n    node = this.startNode()\n    this.next()\n    return this.parseFunction(node, 0)\n\n  case tt._class:\n    return this.parseClass(this.startNode(), false)\n\n  case tt._new:\n    return this.parseNew()\n\n  case tt.backQuote:\n    return this.parseTemplate()\n\n  default:\n    this.unexpected()\n  }\n}\n\npp.parseLiteral = function(value) {\n  let node = this.startNode()\n  node.value = value\n  node.raw = this.input.slice(this.start, this.end)\n  this.next()\n  return this.finishNode(node, \"Literal\")\n}\n\npp.parseParenExpression = function() {\n  this.expect(tt.parenL)\n  let val = this.parseExpression()\n  this.expect(tt.parenR)\n  return val\n}\n\npp.parseParenAndDistinguishExpression = function(canBeArrow) {\n  let startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8\n  if (this.options.ecmaVersion >= 6) {\n    this.next()\n\n    let innerStartPos = this.start, innerStartLoc = this.startLoc\n    let exprList = [], first = true, lastIsComma = false\n    let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart\n    this.yieldPos = 0\n    this.awaitPos = 0\n    // Do not save awaitIdentPos to allow checking awaits nested in parameters\n    while (this.type !== tt.parenR) {\n      first ? first = false : this.expect(tt.comma)\n      if (allowTrailingComma && this.afterTrailingComma(tt.parenR, true)) {\n        lastIsComma = true\n        break\n      } else if (this.type === tt.ellipsis) {\n        spreadStart = this.start\n        exprList.push(this.parseParenItem(this.parseRestBinding()))\n        if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n        break\n      } else {\n        exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem))\n      }\n    }\n    let innerEndPos = this.start, innerEndLoc = this.startLoc\n    this.expect(tt.parenR)\n\n    if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false)\n      this.checkYieldAwaitInDefaultParams()\n      this.yieldPos = oldYieldPos\n      this.awaitPos = oldAwaitPos\n      return this.parseParenArrowList(startPos, startLoc, exprList)\n    }\n\n    if (!exprList.length || lastIsComma) this.unexpected(this.lastTokStart)\n    if (spreadStart) this.unexpected(spreadStart)\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    this.yieldPos = oldYieldPos || this.yieldPos\n    this.awaitPos = oldAwaitPos || this.awaitPos\n\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc)\n      val.expressions = exprList\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc)\n    } else {\n      val = exprList[0]\n    }\n  } else {\n    val = this.parseParenExpression()\n  }\n\n  if (this.options.preserveParens) {\n    let par = this.startNodeAt(startPos, startLoc)\n    par.expression = val\n    return this.finishNode(par, \"ParenthesizedExpression\")\n  } else {\n    return val\n  }\n}\n\npp.parseParenItem = function(item) {\n  return item\n}\n\npp.parseParenArrowList = function(startPos, startLoc, exprList) {\n  return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n}\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nconst empty = []\n\npp.parseNew = function() {\n  let node = this.startNode()\n  let meta = this.parseIdent(true)\n  if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {\n    node.meta = meta\n    let containsEsc = this.containsEsc\n    node.property = this.parseIdent(true)\n    if (node.property.name !== \"target\" || containsEsc)\n      this.raiseRecoverable(node.property.start, \"The only valid meta property for new is new.target\")\n    if (!this.inNonArrowFunction())\n      this.raiseRecoverable(node.start, \"new.target can only be used in functions\")\n    return this.finishNode(node, \"MetaProperty\")\n  }\n  let startPos = this.start, startLoc = this.startLoc\n  node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true)\n  if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false)\n  else node.arguments = empty\n  return this.finishNode(node, \"NewExpression\")\n}\n\n// Parse template expression.\n\npp.parseTemplateElement = function({isTagged}) {\n  let elem = this.startNode()\n  if (this.type === tt.invalidTemplate) {\n    if (!isTagged) {\n      this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\")\n    }\n    elem.value = {\n      raw: this.value,\n      cooked: null\n    }\n  } else {\n    elem.value = {\n      raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.value\n    }\n  }\n  this.next()\n  elem.tail = this.type === tt.backQuote\n  return this.finishNode(elem, \"TemplateElement\")\n}\n\npp.parseTemplate = function({isTagged = false} = {}) {\n  let node = this.startNode()\n  this.next()\n  node.expressions = []\n  let curElt = this.parseTemplateElement({isTagged})\n  node.quasis = [curElt]\n  while (!curElt.tail) {\n    if (this.type === tt.eof) this.raise(this.pos, \"Unterminated template literal\")\n    this.expect(tt.dollarBraceL)\n    node.expressions.push(this.parseExpression())\n    this.expect(tt.braceR)\n    node.quasis.push(curElt = this.parseTemplateElement({isTagged}))\n  }\n  this.next()\n  return this.finishNode(node, \"TemplateLiteral\")\n}\n\npp.isAsyncProp = function(prop) {\n  return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n    (this.type === tt.name || this.type === tt.num || this.type === tt.string || this.type === tt.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === tt.star)) &&\n    !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\n// Parse an object literal or binding pattern.\n\npp.parseObj = function(isPattern, refDestructuringErrors) {\n  let node = this.startNode(), first = true, propHash = {}\n  node.properties = []\n  this.next()\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    const prop = this.parseProperty(isPattern, refDestructuringErrors)\n    if (!isPattern) this.checkPropClash(prop, propHash, refDestructuringErrors)\n    node.properties.push(prop)\n  }\n  return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n}\n\npp.parseProperty = function(isPattern, refDestructuringErrors) {\n  let prop = this.startNode(), isGenerator, isAsync, startPos, startLoc\n  if (this.options.ecmaVersion >= 9 && this.eat(tt.ellipsis)) {\n    if (isPattern) {\n      prop.argument = this.parseIdent(false)\n      if (this.type === tt.comma) {\n        this.raise(this.start, \"Comma is not permitted after the rest element\")\n      }\n      return this.finishNode(prop, \"RestElement\")\n    }\n    // To disallow parenthesized identifier via `this.toAssignable()`.\n    if (this.type === tt.parenL && refDestructuringErrors) {\n      if (refDestructuringErrors.parenthesizedAssign < 0) {\n        refDestructuringErrors.parenthesizedAssign = this.start\n      }\n      if (refDestructuringErrors.parenthesizedBind < 0) {\n        refDestructuringErrors.parenthesizedBind = this.start\n      }\n    }\n    // Parse argument.\n    prop.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n    // To disallow trailing comma via `this.toAssignable()`.\n    if (this.type === tt.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n      refDestructuringErrors.trailingComma = this.start\n    }\n    // Finish\n    return this.finishNode(prop, \"SpreadElement\")\n  }\n  if (this.options.ecmaVersion >= 6) {\n    prop.method = false\n    prop.shorthand = false\n    if (isPattern || refDestructuringErrors) {\n      startPos = this.start\n      startLoc = this.startLoc\n    }\n    if (!isPattern)\n      isGenerator = this.eat(tt.star)\n  }\n  let containsEsc = this.containsEsc\n  this.parsePropertyName(prop)\n  if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n    isAsync = true\n    isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n    this.parsePropertyName(prop, refDestructuringErrors)\n  } else {\n    isAsync = false\n  }\n  this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc)\n  return this.finishNode(prop, \"Property\")\n}\n\npp.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n  if ((isGenerator || isAsync) && this.type === tt.colon)\n    this.unexpected()\n\n  if (this.eat(tt.colon)) {\n    prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors)\n    prop.kind = \"init\"\n  } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) {\n    if (isPattern) this.unexpected()\n    prop.kind = \"init\"\n    prop.method = true\n    prop.value = this.parseMethod(isGenerator, isAsync)\n  } else if (!isPattern && !containsEsc &&\n             this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n             (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n             (this.type !== tt.comma && this.type !== tt.braceR)) {\n    if (isGenerator || isAsync) this.unexpected()\n    prop.kind = prop.key.name\n    this.parsePropertyName(prop)\n    prop.value = this.parseMethod(false)\n    let paramCount = prop.kind === \"get\" ? 0 : 1\n    if (prop.value.params.length !== paramCount) {\n      let start = prop.value.start\n      if (prop.kind === \"get\")\n        this.raiseRecoverable(start, \"getter should have no params\")\n      else\n        this.raiseRecoverable(start, \"setter should have exactly one param\")\n    } else {\n      if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n        this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\")\n    }\n  } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n    if (isGenerator || isAsync) this.unexpected()\n    this.checkUnreserved(prop.key)\n    if (prop.key.name === \"await\" && !this.awaitIdentPos)\n      this.awaitIdentPos = startPos\n    prop.kind = \"init\"\n    if (isPattern) {\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n    } else if (this.type === tt.eq && refDestructuringErrors) {\n      if (refDestructuringErrors.shorthandAssign < 0)\n        refDestructuringErrors.shorthandAssign = this.start\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n    } else {\n      prop.value = prop.key\n    }\n    prop.shorthand = true\n  } else this.unexpected()\n}\n\npp.parsePropertyName = function(prop) {\n  if (this.options.ecmaVersion >= 6) {\n    if (this.eat(tt.bracketL)) {\n      prop.computed = true\n      prop.key = this.parseMaybeAssign()\n      this.expect(tt.bracketR)\n      return prop.key\n    } else {\n      prop.computed = false\n    }\n  }\n  return prop.key = this.type === tt.num || this.type === tt.string ? this.parseExprAtom() : this.parseIdent(true)\n}\n\n// Initialize empty function node.\n\npp.initFunction = function(node) {\n  node.id = null\n  if (this.options.ecmaVersion >= 6) node.generator = node.expression = false\n  if (this.options.ecmaVersion >= 8) node.async = false\n}\n\n// Parse object or class method.\n\npp.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n  let node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 6)\n    node.generator = isGenerator\n  if (this.options.ecmaVersion >= 8)\n    node.async = !!isAsync\n\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n  this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0))\n\n  this.expect(tt.parenL)\n  node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n  this.checkYieldAwaitInDefaultParams()\n  this.parseFunctionBody(node, false, true)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, \"FunctionExpression\")\n}\n\n// Parse arrow function expression with given parameters.\n\npp.parseArrowExpression = function(node, params, isAsync) {\n  let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n  this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW)\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 8) node.async = !!isAsync\n\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n\n  node.params = this.toAssignableList(params, true)\n  this.parseFunctionBody(node, true, false)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, \"ArrowFunctionExpression\")\n}\n\n// Parse function body and check parameters.\n\npp.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n  let isExpression = isArrowFunction && this.type !== tt.braceL\n  let oldStrict = this.strict, useStrict = false\n\n  if (isExpression) {\n    node.body = this.parseMaybeAssign()\n    node.expression = true\n    this.checkParams(node, false)\n  } else {\n    let nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params)\n    if (!oldStrict || nonSimple) {\n      useStrict = this.strictDirective(this.end)\n      // If this is a strict mode function, verify that argument names\n      // are not repeated, and it does not try to bind the words `eval`\n      // or `arguments`.\n      if (useStrict && nonSimple)\n        this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\")\n    }\n    // Start a new scope with regard to labels and the `inFunction`\n    // flag (restore them to their old value afterwards).\n    let oldLabels = this.labels\n    this.labels = []\n    if (useStrict) this.strict = true\n\n    // Add the params to varDeclaredNames to ensure that an error is thrown\n    // if a let/const declaration in the function clashes with one of the params.\n    this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params))\n    node.body = this.parseBlock(false)\n    node.expression = false\n    this.adaptDirectivePrologue(node.body.body)\n    this.labels = oldLabels\n  }\n  this.exitScope()\n\n  // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n  if (this.strict && node.id) this.checkLVal(node.id, BIND_OUTSIDE)\n  this.strict = oldStrict\n}\n\npp.isSimpleParamList = function(params) {\n  for (let param of params)\n    if (param.type !== \"Identifier\") return false\n  return true\n}\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp.checkParams = function(node, allowDuplicates) {\n  let nameHash = {}\n  for (let param of node.params)\n    this.checkLVal(param, BIND_VAR, allowDuplicates ? null : nameHash)\n}\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n  let elts = [], first = true\n  while (!this.eat(close)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (allowTrailingComma && this.afterTrailingComma(close)) break\n    } else first = false\n\n    let elt\n    if (allowEmpty && this.type === tt.comma)\n      elt = null\n    else if (this.type === tt.ellipsis) {\n      elt = this.parseSpread(refDestructuringErrors)\n      if (refDestructuringErrors && this.type === tt.comma && refDestructuringErrors.trailingComma < 0)\n        refDestructuringErrors.trailingComma = this.start\n    } else {\n      elt = this.parseMaybeAssign(false, refDestructuringErrors)\n    }\n    elts.push(elt)\n  }\n  return elts\n}\n\npp.checkUnreserved = function({start, end, name}) {\n  if (this.inGenerator && name === \"yield\")\n    this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\")\n  if (this.inAsync && name === \"await\")\n    this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\")\n  if (this.keywords.test(name))\n    this.raise(start, `Unexpected keyword '${name}'`)\n  if (this.options.ecmaVersion < 6 &&\n    this.input.slice(start, end).indexOf(\"\\\\\") !== -1) return\n  const re = this.strict ? this.reservedWordsStrict : this.reservedWords\n  if (re.test(name)) {\n    if (!this.inAsync && name === \"await\")\n      this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\")\n    this.raiseRecoverable(start, `The keyword '${name}' is reserved`)\n  }\n}\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp.parseIdent = function(liberal, isBinding) {\n  let node = this.startNode()\n  if (liberal && this.options.allowReserved === \"never\") liberal = false\n  if (this.type === tt.name) {\n    node.name = this.value\n  } else if (this.type.keyword) {\n    node.name = this.type.keyword\n\n    // To fix https://github.com/acornjs/acorn/issues/575\n    // `class` and `function` keywords push new context into this.context.\n    // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n    // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n    if ((node.name === \"class\" || node.name === \"function\") &&\n        (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n      this.context.pop()\n    }\n  } else {\n    this.unexpected()\n  }\n  this.next()\n  this.finishNode(node, \"Identifier\")\n  if (!liberal) {\n    this.checkUnreserved(node)\n    if (node.name === \"await\" && !this.awaitIdentPos)\n      this.awaitIdentPos = node.start\n  }\n  return node\n}\n\n// Parses yield expression inside generator.\n\npp.parseYield = function(noIn) {\n  if (!this.yieldPos) this.yieldPos = this.start\n\n  let node = this.startNode()\n  this.next()\n  if (this.type === tt.semi || this.canInsertSemicolon() || (this.type !== tt.star && !this.type.startsExpr)) {\n    node.delegate = false\n    node.argument = null\n  } else {\n    node.delegate = this.eat(tt.star)\n    node.argument = this.parseMaybeAssign(noIn)\n  }\n  return this.finishNode(node, \"YieldExpression\")\n}\n\npp.parseAwait = function() {\n  if (!this.awaitPos) this.awaitPos = this.start\n\n  let node = this.startNode()\n  this.next()\n  node.argument = this.parseMaybeUnary(null, true)\n  return this.finishNode(node, \"AwaitExpression\")\n}\n","import {Parser} from \"./state\"\nimport {Position, getLineInfo} from \"./locutil\"\n\nconst pp = Parser.prototype\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp.raise = function(pos, message) {\n  let loc = getLineInfo(this.input, pos)\n  message += \" (\" + loc.line + \":\" + loc.column + \")\"\n  let err = new SyntaxError(message)\n  err.pos = pos; err.loc = loc; err.raisedAt = this.pos\n  throw err\n}\n\npp.raiseRecoverable = pp.raise\n\npp.curPosition = function() {\n  if (this.options.locations) {\n    return new Position(this.curLine, this.pos - this.lineStart)\n  }\n}\n","import {Parser} from \"./state\"\nimport {SCOPE_VAR, SCOPE_FUNCTION, SCOPE_TOP, SCOPE_ARROW, SCOPE_SIMPLE_CATCH, BIND_LEXICAL, BIND_SIMPLE_CATCH, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\nclass Scope {\n  constructor(flags) {\n    this.flags = flags\n    // A list of var-declared names in the current lexical scope\n    this.var = []\n    // A list of lexically-declared names in the current lexical scope\n    this.lexical = []\n    // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n    this.functions = []\n  }\n}\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp.enterScope = function(flags) {\n  this.scopeStack.push(new Scope(flags))\n}\n\npp.exitScope = function() {\n  this.scopeStack.pop()\n}\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp.treatFunctionsAsVarInScope = function(scope) {\n  return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n}\n\npp.declareName = function(name, bindingType, pos) {\n  let redeclared = false\n  if (bindingType === BIND_LEXICAL) {\n    const scope = this.currentScope()\n    redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n    scope.lexical.push(name)\n    if (this.inModule && (scope.flags & SCOPE_TOP))\n      delete this.undefinedExports[name]\n  } else if (bindingType === BIND_SIMPLE_CATCH) {\n    const scope = this.currentScope()\n    scope.lexical.push(name)\n  } else if (bindingType === BIND_FUNCTION) {\n    const scope = this.currentScope()\n    if (this.treatFunctionsAsVar)\n      redeclared = scope.lexical.indexOf(name) > -1\n    else\n      redeclared = scope.lexical.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n    scope.functions.push(name)\n  } else {\n    for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n      const scope = this.scopeStack[i]\n      if (scope.lexical.indexOf(name) > -1 && !((scope.flags & SCOPE_SIMPLE_CATCH) && scope.lexical[0] === name) ||\n          !this.treatFunctionsAsVarInScope(scope) && scope.functions.indexOf(name) > -1) {\n        redeclared = true\n        break\n      }\n      scope.var.push(name)\n      if (this.inModule && (scope.flags & SCOPE_TOP))\n        delete this.undefinedExports[name]\n      if (scope.flags & SCOPE_VAR) break\n    }\n  }\n  if (redeclared) this.raiseRecoverable(pos, `Identifier '${name}' has already been declared`)\n}\n\npp.checkLocalExport = function(id) {\n  // scope.functions must be empty as Module code is always strict.\n  if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1) {\n    this.undefinedExports[id.name] = id\n  }\n}\n\npp.currentScope = function() {\n  return this.scopeStack[this.scopeStack.length - 1]\n}\n\npp.currentVarScope = function() {\n  for (let i = this.scopeStack.length - 1;; i--) {\n    let scope = this.scopeStack[i]\n    if (scope.flags & SCOPE_VAR) return scope\n  }\n}\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp.currentThisScope = function() {\n  for (let i = this.scopeStack.length - 1;; i--) {\n    let scope = this.scopeStack[i]\n    if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) return scope\n  }\n}\n","import {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\n\nexport class Node {\n  constructor(parser, pos, loc) {\n    this.type = \"\"\n    this.start = pos\n    this.end = 0\n    if (parser.options.locations)\n      this.loc = new SourceLocation(parser, loc)\n    if (parser.options.directSourceFile)\n      this.sourceFile = parser.options.directSourceFile\n    if (parser.options.ranges)\n      this.range = [pos, 0]\n  }\n}\n\n// Start an AST node, attaching a start offset.\n\nconst pp = Parser.prototype\n\npp.startNode = function() {\n  return new Node(this, this.start, this.startLoc)\n}\n\npp.startNodeAt = function(pos, loc) {\n  return new Node(this, pos, loc)\n}\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n  node.type = type\n  node.end = pos\n  if (this.options.locations)\n    node.loc.end = loc\n  if (this.options.ranges)\n    node.range[1] = pos\n  return node\n}\n\npp.finishNode = function(node, type) {\n  return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n}\n\n// Finish node at given position\n\npp.finishNodeAt = function(node, type, pos, loc) {\n  return finishNodeAt.call(this, node, type, pos, loc)\n}\n","// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport {Parser} from \"./state\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\n\nexport class TokContext {\n  constructor(token, isExpr, preserveSpace, override, generator) {\n    this.token = token\n    this.isExpr = !!isExpr\n    this.preserveSpace = !!preserveSpace\n    this.override = override\n    this.generator = !!generator\n  }\n}\n\nexport const types = {\n  b_stat: new TokContext(\"{\", false),\n  b_expr: new TokContext(\"{\", true),\n  b_tmpl: new TokContext(\"${\", false),\n  p_stat: new TokContext(\"(\", false),\n  p_expr: new TokContext(\"(\", true),\n  q_tmpl: new TokContext(\"`\", true, true, p => p.tryReadTemplateToken()),\n  f_stat: new TokContext(\"function\", false),\n  f_expr: new TokContext(\"function\", true),\n  f_expr_gen: new TokContext(\"function\", true, false, null, true),\n  f_gen: new TokContext(\"function\", false, false, null, true)\n}\n\nconst pp = Parser.prototype\n\npp.initialContext = function() {\n  return [types.b_stat]\n}\n\npp.braceIsBlock = function(prevType) {\n  let parent = this.curContext()\n  if (parent === types.f_expr || parent === types.f_stat)\n    return true\n  if (prevType === tt.colon && (parent === types.b_stat || parent === types.b_expr))\n    return !parent.isExpr\n\n  // The check for `tt.name && exprAllowed` detects whether we are\n  // after a `yield` or `of` construct. See the `updateContext` for\n  // `tt.name`.\n  if (prevType === tt._return || prevType === tt.name && this.exprAllowed)\n    return lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n  if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR || prevType === tt.arrow)\n    return true\n  if (prevType === tt.braceL)\n    return parent === types.b_stat\n  if (prevType === tt._var || prevType === tt._const || prevType === tt.name)\n    return false\n  return !this.exprAllowed\n}\n\npp.inGeneratorContext = function() {\n  for (let i = this.context.length - 1; i >= 1; i--) {\n    let context = this.context[i]\n    if (context.token === \"function\")\n      return context.generator\n  }\n  return false\n}\n\npp.updateContext = function(prevType) {\n  let update, type = this.type\n  if (type.keyword && prevType === tt.dot)\n    this.exprAllowed = false\n  else if (update = type.updateContext)\n    update.call(this, prevType)\n  else\n    this.exprAllowed = type.beforeExpr\n}\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.context.length === 1) {\n    this.exprAllowed = true\n    return\n  }\n  let out = this.context.pop()\n  if (out === types.b_stat && this.curContext().token === \"function\") {\n    out = this.context.pop()\n  }\n  this.exprAllowed = !out.isExpr\n}\n\ntt.braceL.updateContext = function(prevType) {\n  this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr)\n  this.exprAllowed = true\n}\n\ntt.dollarBraceL.updateContext = function() {\n  this.context.push(types.b_tmpl)\n  this.exprAllowed = true\n}\n\ntt.parenL.updateContext = function(prevType) {\n  let statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while\n  this.context.push(statementParens ? types.p_stat : types.p_expr)\n  this.exprAllowed = true\n}\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n}\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (prevType.beforeExpr && prevType !== tt.semi && prevType !== tt._else &&\n      !(prevType === tt._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n      !((prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat))\n    this.context.push(types.f_expr)\n  else\n    this.context.push(types.f_stat)\n  this.exprAllowed = false\n}\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.q_tmpl)\n    this.context.pop()\n  else\n    this.context.push(types.q_tmpl)\n  this.exprAllowed = false\n}\n\ntt.star.updateContext = function(prevType) {\n  if (prevType === tt._function) {\n    let index = this.context.length - 1\n    if (this.context[index] === types.f_expr)\n      this.context[index] = types.f_expr_gen\n    else\n      this.context[index] = types.f_gen\n  }\n  this.exprAllowed = true\n}\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false\n  if (this.options.ecmaVersion >= 6 && prevType !== tt.dot) {\n    if (this.value === \"of\" && !this.exprAllowed ||\n        this.value === \"yield\" && this.inGeneratorContext())\n      allowed = true\n  }\n  this.exprAllowed = allowed\n}\n","import {wordsRegexp} from \"./util.js\"\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nconst ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\"\nconst unicodeBinaryProperties = {\n  9: ecma9BinaryProperties,\n  10: ecma9BinaryProperties + \" Extended_Pictographic\"\n}\n\n// #table-unicode-general-category-values\nconst unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\"\n\n// #table-unicode-script-values\nconst ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\"\nconst unicodeScriptValues = {\n  9: ecma9ScriptValues,\n  10: ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\"\n}\n\nconst data = {}\nfunction buildUnicodeData(ecmaVersion) {\n  let d = data[ecmaVersion] = {\n    binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n    nonBinary: {\n      General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n      Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n    }\n  }\n  d.nonBinary.Script_Extensions = d.nonBinary.Script\n\n  d.nonBinary.gc = d.nonBinary.General_Category\n  d.nonBinary.sc = d.nonBinary.Script\n  d.nonBinary.scx = d.nonBinary.Script_Extensions\n}\nbuildUnicodeData(9)\nbuildUnicodeData(10)\n\nexport default data\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier.js\"\nimport {Parser} from \"./state.js\"\nimport UNICODE_PROPERTY_VALUES from \"./unicode-property-data.js\"\nimport {has} from \"./util.js\"\n\nconst pp = Parser.prototype\n\nexport class RegExpValidationState {\n  constructor(parser) {\n    this.parser = parser\n    this.validFlags = `gim${parser.options.ecmaVersion >= 6 ? \"uy\" : \"\"}${parser.options.ecmaVersion >= 9 ? \"s\" : \"\"}`\n    this.unicodeProperties = UNICODE_PROPERTY_VALUES[parser.options.ecmaVersion >= 10 ? 10 : parser.options.ecmaVersion]\n    this.source = \"\"\n    this.flags = \"\"\n    this.start = 0\n    this.switchU = false\n    this.switchN = false\n    this.pos = 0\n    this.lastIntValue = 0\n    this.lastStringValue = \"\"\n    this.lastAssertionIsQuantifiable = false\n    this.numCapturingParens = 0\n    this.maxBackReference = 0\n    this.groupNames = []\n    this.backReferenceNames = []\n  }\n\n  reset(start, pattern, flags) {\n    const unicode = flags.indexOf(\"u\") !== -1\n    this.start = start | 0\n    this.source = pattern + \"\"\n    this.flags = flags\n    this.switchU = unicode && this.parser.options.ecmaVersion >= 6\n    this.switchN = unicode && this.parser.options.ecmaVersion >= 9\n  }\n\n  raise(message) {\n    this.parser.raiseRecoverable(this.start, `Invalid regular expression: /${this.source}/: ${message}`)\n  }\n\n  // If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n  // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\n  at(i) {\n    const s = this.source\n    const l = s.length\n    if (i >= l) {\n      return -1\n    }\n    const c = s.charCodeAt(i)\n    if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n      return c\n    }\n    return (c << 10) + s.charCodeAt(i + 1) - 0x35FDC00\n  }\n\n  nextIndex(i) {\n    const s = this.source\n    const l = s.length\n    if (i >= l) {\n      return l\n    }\n    const c = s.charCodeAt(i)\n    if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n      return i + 1\n    }\n    return i + 2\n  }\n\n  current() {\n    return this.at(this.pos)\n  }\n\n  lookahead() {\n    return this.at(this.nextIndex(this.pos))\n  }\n\n  advance() {\n    this.pos = this.nextIndex(this.pos)\n  }\n\n  eat(ch) {\n    if (this.current() === ch) {\n      this.advance()\n      return true\n    }\n    return false\n  }\n}\n\nfunction codePointToString(ch) {\n  if (ch <= 0xFFFF) return String.fromCharCode(ch)\n  ch -= 0x10000\n  return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n}\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpFlags = function(state) {\n  const validFlags = state.validFlags\n  const flags = state.flags\n\n  for (let i = 0; i < flags.length; i++) {\n    const flag = flags.charAt(i)\n    if (validFlags.indexOf(flag) === -1) {\n      this.raise(state.start, \"Invalid regular expression flag\")\n    }\n    if (flags.indexOf(flag, i + 1) > -1) {\n      this.raise(state.start, \"Duplicate regular expression flag\")\n    }\n  }\n}\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpPattern = function(state) {\n  this.regexp_pattern(state)\n\n  // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n  // parsing contains a |GroupName|, reparse with the goal symbol\n  // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n  // exception if _P_ did not conform to the grammar, if any elements of _P_\n  // were not matched by the parse, or if any Early Error conditions exist.\n  if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n    state.switchN = true\n    this.regexp_pattern(state)\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp.regexp_pattern = function(state) {\n  state.pos = 0\n  state.lastIntValue = 0\n  state.lastStringValue = \"\"\n  state.lastAssertionIsQuantifiable = false\n  state.numCapturingParens = 0\n  state.maxBackReference = 0\n  state.groupNames.length = 0\n  state.backReferenceNames.length = 0\n\n  this.regexp_disjunction(state)\n\n  if (state.pos !== state.source.length) {\n    // Make the same messages as V8.\n    if (state.eat(0x29 /* ) */)) {\n      state.raise(\"Unmatched ')'\")\n    }\n    if (state.eat(0x5D /* [ */) || state.eat(0x7D /* } */)) {\n      state.raise(\"Lone quantifier brackets\")\n    }\n  }\n  if (state.maxBackReference > state.numCapturingParens) {\n    state.raise(\"Invalid escape\")\n  }\n  for (const name of state.backReferenceNames) {\n    if (state.groupNames.indexOf(name) === -1) {\n      state.raise(\"Invalid named capture referenced\")\n    }\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp.regexp_disjunction = function(state) {\n  this.regexp_alternative(state)\n  while (state.eat(0x7C /* | */)) {\n    this.regexp_alternative(state)\n  }\n\n  // Make the same message as V8.\n  if (this.regexp_eatQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\")\n  }\n  if (state.eat(0x7B /* { */)) {\n    state.raise(\"Lone quantifier brackets\")\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp.regexp_alternative = function(state) {\n  while (state.pos < state.source.length && this.regexp_eatTerm(state))\n    ;\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp.regexp_eatTerm = function(state) {\n  if (this.regexp_eatAssertion(state)) {\n    // Handle `QuantifiableAssertion Quantifier` alternative.\n    // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n    // is a QuantifiableAssertion.\n    if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n      // Make the same message as V8.\n      if (state.switchU) {\n        state.raise(\"Invalid quantifier\")\n      }\n    }\n    return true\n  }\n\n  if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n    this.regexp_eatQuantifier(state)\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp.regexp_eatAssertion = function(state) {\n  const start = state.pos\n  state.lastAssertionIsQuantifiable = false\n\n  // ^, $\n  if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n    return true\n  }\n\n  // \\b \\B\n  if (state.eat(0x5C /* \\ */)) {\n    if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n      return true\n    }\n    state.pos = start\n  }\n\n  // Lookahead / Lookbehind\n  if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n    let lookbehind = false\n    if (this.options.ecmaVersion >= 9) {\n      lookbehind = state.eat(0x3C /* < */)\n    }\n    if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n      this.regexp_disjunction(state)\n      if (!state.eat(0x29 /* ) */)) {\n        state.raise(\"Unterminated group\")\n      }\n      state.lastAssertionIsQuantifiable = !lookbehind\n      return true\n    }\n  }\n\n  state.pos = start\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp.regexp_eatQuantifier = function(state, noError = false) {\n  if (this.regexp_eatQuantifierPrefix(state, noError)) {\n    state.eat(0x3F /* ? */)\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp.regexp_eatQuantifierPrefix = function(state, noError) {\n  return (\n    state.eat(0x2A /* * */) ||\n    state.eat(0x2B /* + */) ||\n    state.eat(0x3F /* ? */) ||\n    this.regexp_eatBracedQuantifier(state, noError)\n  )\n}\npp.regexp_eatBracedQuantifier = function(state, noError) {\n  const start = state.pos\n  if (state.eat(0x7B /* { */)) {\n    let min = 0, max = -1\n    if (this.regexp_eatDecimalDigits(state)) {\n      min = state.lastIntValue\n      if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n        max = state.lastIntValue\n      }\n      if (state.eat(0x7D /* } */)) {\n        // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n        if (max !== -1 && max < min && !noError) {\n          state.raise(\"numbers out of order in {} quantifier\")\n        }\n        return true\n      }\n    }\n    if (state.switchU && !noError) {\n      state.raise(\"Incomplete quantifier\")\n    }\n    state.pos = start\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp.regexp_eatAtom = function(state) {\n  return (\n    this.regexp_eatPatternCharacters(state) ||\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state)\n  )\n}\npp.regexp_eatReverseSolidusAtomEscape = function(state) {\n  const start = state.pos\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatAtomEscape(state)) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatUncapturingGroup = function(state) {\n  const start = state.pos\n  if (state.eat(0x28 /* ( */)) {\n    if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n      this.regexp_disjunction(state)\n      if (state.eat(0x29 /* ) */)) {\n        return true\n      }\n      state.raise(\"Unterminated group\")\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatCapturingGroup = function(state) {\n  if (state.eat(0x28 /* ( */)) {\n    if (this.options.ecmaVersion >= 9) {\n      this.regexp_groupSpecifier(state)\n    } else if (state.current() === 0x3F /* ? */) {\n      state.raise(\"Invalid group\")\n    }\n    this.regexp_disjunction(state)\n    if (state.eat(0x29 /* ) */)) {\n      state.numCapturingParens += 1\n      return true\n    }\n    state.raise(\"Unterminated group\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp.regexp_eatExtendedAtom = function(state) {\n  return (\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state) ||\n    this.regexp_eatInvalidBracedQuantifier(state) ||\n    this.regexp_eatExtendedPatternCharacter(state)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp.regexp_eatInvalidBracedQuantifier = function(state) {\n  if (this.regexp_eatBracedQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp.regexp_eatSyntaxCharacter = function(state) {\n  const ch = state.current()\n  if (isSyntaxCharacter(ch)) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n  return false\n}\nfunction isSyntaxCharacter(ch) {\n  return (\n    ch === 0x24 /* $ */ ||\n    ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n    ch === 0x2E /* . */ ||\n    ch === 0x3F /* ? */ ||\n    ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n    ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp.regexp_eatPatternCharacters = function(state) {\n  const start = state.pos\n  let ch = 0\n  while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n    state.advance()\n  }\n  return state.pos !== start\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp.regexp_eatExtendedPatternCharacter = function(state) {\n  const ch = state.current()\n  if (\n    ch !== -1 &&\n    ch !== 0x24 /* $ */ &&\n    !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n    ch !== 0x2E /* . */ &&\n    ch !== 0x3F /* ? */ &&\n    ch !== 0x5B /* [ */ &&\n    ch !== 0x5E /* ^ */ &&\n    ch !== 0x7C /* | */\n  ) {\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// GroupSpecifier[U] ::\n//   [empty]\n//   `?` GroupName[?U]\npp.regexp_groupSpecifier = function(state) {\n  if (state.eat(0x3F /* ? */)) {\n    if (this.regexp_eatGroupName(state)) {\n      if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n        state.raise(\"Duplicate capture group name\")\n      }\n      state.groupNames.push(state.lastStringValue)\n      return\n    }\n    state.raise(\"Invalid group\")\n  }\n}\n\n// GroupName[U] ::\n//   `<` RegExpIdentifierName[?U] `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatGroupName = function(state) {\n  state.lastStringValue = \"\"\n  if (state.eat(0x3C /* < */)) {\n    if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n      return true\n    }\n    state.raise(\"Invalid capture group name\")\n  }\n  return false\n}\n\n// RegExpIdentifierName[U] ::\n//   RegExpIdentifierStart[?U]\n//   RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatRegExpIdentifierName = function(state) {\n  state.lastStringValue = \"\"\n  if (this.regexp_eatRegExpIdentifierStart(state)) {\n    state.lastStringValue += codePointToString(state.lastIntValue)\n    while (this.regexp_eatRegExpIdentifierPart(state)) {\n      state.lastStringValue += codePointToString(state.lastIntValue)\n    }\n    return true\n  }\n  return false\n}\n\n// RegExpIdentifierStart[U] ::\n//   UnicodeIDStart\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[?U]\npp.regexp_eatRegExpIdentifierStart = function(state) {\n  const start = state.pos\n  let ch = state.current()\n  state.advance()\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n    ch = state.lastIntValue\n  }\n  if (isRegExpIdentifierStart(ch)) {\n    state.lastIntValue = ch\n    return true\n  }\n\n  state.pos = start\n  return false\n}\nfunction isRegExpIdentifierStart(ch) {\n  return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart[U] ::\n//   UnicodeIDContinue\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[?U]\n//   <ZWNJ>\n//   <ZWJ>\npp.regexp_eatRegExpIdentifierPart = function(state) {\n  const start = state.pos\n  let ch = state.current()\n  state.advance()\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n    ch = state.lastIntValue\n  }\n  if (isRegExpIdentifierPart(ch)) {\n    state.lastIntValue = ch\n    return true\n  }\n\n  state.pos = start\n  return false\n}\nfunction isRegExpIdentifierPart(ch) {\n  return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp.regexp_eatAtomEscape = function(state) {\n  if (\n    this.regexp_eatBackReference(state) ||\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state) ||\n    (state.switchN && this.regexp_eatKGroupName(state))\n  ) {\n    return true\n  }\n  if (state.switchU) {\n    // Make the same message as V8.\n    if (state.current() === 0x63 /* c */) {\n      state.raise(\"Invalid unicode escape\")\n    }\n    state.raise(\"Invalid escape\")\n  }\n  return false\n}\npp.regexp_eatBackReference = function(state) {\n  const start = state.pos\n  if (this.regexp_eatDecimalEscape(state)) {\n    const n = state.lastIntValue\n    if (state.switchU) {\n      // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n      if (n > state.maxBackReference) {\n        state.maxBackReference = n\n      }\n      return true\n    }\n    if (n <= state.numCapturingParens) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatKGroupName = function(state) {\n  if (state.eat(0x6B /* k */)) {\n    if (this.regexp_eatGroupName(state)) {\n      state.backReferenceNames.push(state.lastStringValue)\n      return true\n    }\n    state.raise(\"Invalid named reference\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp.regexp_eatCharacterEscape = function(state) {\n  return (\n    this.regexp_eatControlEscape(state) ||\n    this.regexp_eatCControlLetter(state) ||\n    this.regexp_eatZero(state) ||\n    this.regexp_eatHexEscapeSequence(state) ||\n    this.regexp_eatRegExpUnicodeEscapeSequence(state) ||\n    (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n    this.regexp_eatIdentityEscape(state)\n  )\n}\npp.regexp_eatCControlLetter = function(state) {\n  const start = state.pos\n  if (state.eat(0x63 /* c */)) {\n    if (this.regexp_eatControlLetter(state)) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatZero = function(state) {\n  if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n    state.lastIntValue = 0\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp.regexp_eatControlEscape = function(state) {\n  const ch = state.current()\n  if (ch === 0x74 /* t */) {\n    state.lastIntValue = 0x09 /* \\t */\n    state.advance()\n    return true\n  }\n  if (ch === 0x6E /* n */) {\n    state.lastIntValue = 0x0A /* \\n */\n    state.advance()\n    return true\n  }\n  if (ch === 0x76 /* v */) {\n    state.lastIntValue = 0x0B /* \\v */\n    state.advance()\n    return true\n  }\n  if (ch === 0x66 /* f */) {\n    state.lastIntValue = 0x0C /* \\f */\n    state.advance()\n    return true\n  }\n  if (ch === 0x72 /* r */) {\n    state.lastIntValue = 0x0D /* \\r */\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp.regexp_eatControlLetter = function(state) {\n  const ch = state.current()\n  if (isControlLetter(ch)) {\n    state.lastIntValue = ch % 0x20\n    state.advance()\n    return true\n  }\n  return false\n}\nfunction isControlLetter(ch) {\n  return (\n    (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp.regexp_eatRegExpUnicodeEscapeSequence = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x75 /* u */)) {\n    if (this.regexp_eatFixedHexDigits(state, 4)) {\n      const lead = state.lastIntValue\n      if (state.switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n        const leadSurrogateEnd = state.pos\n        if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n          const trail = state.lastIntValue\n          if (trail >= 0xDC00 && trail <= 0xDFFF) {\n            state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000\n            return true\n          }\n        }\n        state.pos = leadSurrogateEnd\n        state.lastIntValue = lead\n      }\n      return true\n    }\n    if (\n      state.switchU &&\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatHexDigits(state) &&\n      state.eat(0x7D /* } */) &&\n      isValidUnicode(state.lastIntValue)\n    ) {\n      return true\n    }\n    if (state.switchU) {\n      state.raise(\"Invalid unicode escape\")\n    }\n    state.pos = start\n  }\n\n  return false\n}\nfunction isValidUnicode(ch) {\n  return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp.regexp_eatIdentityEscape = function(state) {\n  if (state.switchU) {\n    if (this.regexp_eatSyntaxCharacter(state)) {\n      return true\n    }\n    if (state.eat(0x2F /* / */)) {\n      state.lastIntValue = 0x2F /* / */\n      return true\n    }\n    return false\n  }\n\n  const ch = state.current()\n  if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp.regexp_eatDecimalEscape = function(state) {\n  state.lastIntValue = 0\n  let ch = state.current()\n  if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n    do {\n      state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n      state.advance()\n    } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp.regexp_eatCharacterClassEscape = function(state) {\n  const ch = state.current()\n\n  if (isCharacterClassEscape(ch)) {\n    state.lastIntValue = -1\n    state.advance()\n    return true\n  }\n\n  if (\n    state.switchU &&\n    this.options.ecmaVersion >= 9 &&\n    (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n  ) {\n    state.lastIntValue = -1\n    state.advance()\n    if (\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatUnicodePropertyValueExpression(state) &&\n      state.eat(0x7D /* } */)\n    ) {\n      return true\n    }\n    state.raise(\"Invalid property name\")\n  }\n\n  return false\n}\nfunction isCharacterClassEscape(ch) {\n  return (\n    ch === 0x64 /* d */ ||\n    ch === 0x44 /* D */ ||\n    ch === 0x73 /* s */ ||\n    ch === 0x53 /* S */ ||\n    ch === 0x77 /* w */ ||\n    ch === 0x57 /* W */\n  )\n}\n\n// UnicodePropertyValueExpression ::\n//   UnicodePropertyName `=` UnicodePropertyValue\n//   LoneUnicodePropertyNameOrValue\npp.regexp_eatUnicodePropertyValueExpression = function(state) {\n  const start = state.pos\n\n  // UnicodePropertyName `=` UnicodePropertyValue\n  if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n    const name = state.lastStringValue\n    if (this.regexp_eatUnicodePropertyValue(state)) {\n      const value = state.lastStringValue\n      this.regexp_validateUnicodePropertyNameAndValue(state, name, value)\n      return true\n    }\n  }\n  state.pos = start\n\n  // LoneUnicodePropertyNameOrValue\n  if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n    const nameOrValue = state.lastStringValue\n    this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n    return true\n  }\n  return false\n}\npp.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n  if (!has(state.unicodeProperties.nonBinary, name))\n    state.raise(\"Invalid property name\")\n  if (!state.unicodeProperties.nonBinary[name].test(value))\n    state.raise(\"Invalid property value\")\n}\npp.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n  if (!state.unicodeProperties.binary.test(nameOrValue))\n    state.raise(\"Invalid property name\")\n}\n\n// UnicodePropertyName ::\n//   UnicodePropertyNameCharacters\npp.regexp_eatUnicodePropertyName = function(state) {\n  let ch = 0\n  state.lastStringValue = \"\"\n  while (isUnicodePropertyNameCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch)\n    state.advance()\n  }\n  return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyNameCharacter(ch) {\n  return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n//   UnicodePropertyValueCharacters\npp.regexp_eatUnicodePropertyValue = function(state) {\n  let ch = 0\n  state.lastStringValue = \"\"\n  while (isUnicodePropertyValueCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch)\n    state.advance()\n  }\n  return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyValueCharacter(ch) {\n  return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n//   UnicodePropertyValueCharacters\npp.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n  return this.regexp_eatUnicodePropertyValue(state)\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp.regexp_eatCharacterClass = function(state) {\n  if (state.eat(0x5B /* [ */)) {\n    state.eat(0x5E /* ^ */)\n    this.regexp_classRanges(state)\n    if (state.eat(0x5D /* [ */)) {\n      return true\n    }\n    // Unreachable since it threw \"unterminated regular expression\" error before.\n    state.raise(\"Unterminated character class\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp.regexp_classRanges = function(state) {\n  while (this.regexp_eatClassAtom(state)) {\n    const left = state.lastIntValue\n    if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n      const right = state.lastIntValue\n      if (state.switchU && (left === -1 || right === -1)) {\n        state.raise(\"Invalid character class\")\n      }\n      if (left !== -1 && right !== -1 && left > right) {\n        state.raise(\"Range out of order in character class\")\n      }\n    }\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp.regexp_eatClassAtom = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatClassEscape(state)) {\n      return true\n    }\n    if (state.switchU) {\n      // Make the same message as V8.\n      const ch = state.current()\n      if (ch === 0x63 /* c */ || isOctalDigit(ch)) {\n        state.raise(\"Invalid class escape\")\n      }\n      state.raise(\"Invalid escape\")\n    }\n    state.pos = start\n  }\n\n  const ch = state.current()\n  if (ch !== 0x5D /* [ */) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp.regexp_eatClassEscape = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x62 /* b */)) {\n    state.lastIntValue = 0x08 /* <BS> */\n    return true\n  }\n\n  if (state.switchU && state.eat(0x2D /* - */)) {\n    state.lastIntValue = 0x2D /* - */\n    return true\n  }\n\n  if (!state.switchU && state.eat(0x63 /* c */)) {\n    if (this.regexp_eatClassControlLetter(state)) {\n      return true\n    }\n    state.pos = start\n  }\n\n  return (\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp.regexp_eatClassControlLetter = function(state) {\n  const ch = state.current()\n  if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n    state.lastIntValue = ch % 0x20\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatHexEscapeSequence = function(state) {\n  const start = state.pos\n  if (state.eat(0x78 /* x */)) {\n    if (this.regexp_eatFixedHexDigits(state, 2)) {\n      return true\n    }\n    if (state.switchU) {\n      state.raise(\"Invalid escape\")\n    }\n    state.pos = start\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp.regexp_eatDecimalDigits = function(state) {\n  const start = state.pos\n  let ch = 0\n  state.lastIntValue = 0\n  while (isDecimalDigit(ch = state.current())) {\n    state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n    state.advance()\n  }\n  return state.pos !== start\n}\nfunction isDecimalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp.regexp_eatHexDigits = function(state) {\n  const start = state.pos\n  let ch = 0\n  state.lastIntValue = 0\n  while (isHexDigit(ch = state.current())) {\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n    state.advance()\n  }\n  return state.pos !== start\n}\nfunction isHexDigit(ch) {\n  return (\n    (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n    (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n  )\n}\nfunction hexToInt(ch) {\n  if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n    return 10 + (ch - 0x41 /* A */)\n  }\n  if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n    return 10 + (ch - 0x61 /* a */)\n  }\n  return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp.regexp_eatLegacyOctalEscapeSequence = function(state) {\n  if (this.regexp_eatOctalDigit(state)) {\n    const n1 = state.lastIntValue\n    if (this.regexp_eatOctalDigit(state)) {\n      const n2 = state.lastIntValue\n      if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n        state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue\n      } else {\n        state.lastIntValue = n1 * 8 + n2\n      }\n    } else {\n      state.lastIntValue = n1\n    }\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp.regexp_eatOctalDigit = function(state) {\n  const ch = state.current()\n  if (isOctalDigit(ch)) {\n    state.lastIntValue = ch - 0x30 /* 0 */\n    state.advance()\n    return true\n  }\n  state.lastIntValue = 0\n  return false\n}\nfunction isOctalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatFixedHexDigits = function(state, length) {\n  const start = state.pos\n  state.lastIntValue = 0\n  for (let i = 0; i < length; ++i) {\n    const ch = state.current()\n    if (!isHexDigit(ch)) {\n      state.pos = start\n      return false\n    }\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n    state.advance()\n  }\n  return true\n}\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier\"\nimport {types as tt, keywords as keywordTypes} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\nimport {RegExpValidationState} from \"./regexp\"\nimport {lineBreak, lineBreakG, isNewLine, nonASCIIwhitespace} from \"./whitespace\"\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(p) {\n    this.type = p.type\n    this.value = p.value\n    this.start = p.start\n    this.end = p.end\n    if (p.options.locations)\n      this.loc = new SourceLocation(p, p.startLoc, p.endLoc)\n    if (p.options.ranges)\n      this.range = [p.start, p.end]\n  }\n}\n\n// ## Tokenizer\n\nconst pp = Parser.prototype\n\n// Move to the next token\n\npp.next = function() {\n  if (this.options.onToken)\n    this.options.onToken(new Token(this))\n\n  this.lastTokEnd = this.end\n  this.lastTokStart = this.start\n  this.lastTokEndLoc = this.endLoc\n  this.lastTokStartLoc = this.startLoc\n  this.nextToken()\n}\n\npp.getToken = function() {\n  this.next()\n  return new Token(this)\n}\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n  pp[Symbol.iterator] = function() {\n    return {\n      next: () => {\n        let token = this.getToken()\n        return {\n          done: token.type === tt.eof,\n          value: token\n        }\n      }\n    }\n  }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\npp.curContext = function() {\n  return this.context[this.context.length - 1]\n}\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n  let curContext = this.curContext()\n  if (!curContext || !curContext.preserveSpace) this.skipSpace()\n\n  this.start = this.pos\n  if (this.options.locations) this.startLoc = this.curPosition()\n  if (this.pos >= this.input.length) return this.finishToken(tt.eof)\n\n  if (curContext.override) return curContext.override(this)\n  else this.readToken(this.fullCharCodeAtPos())\n}\n\npp.readToken = function(code) {\n  // Identifier or keyword. '\\uXXXX' sequences are allowed in\n  // identifiers, so '\\' also dispatches to that.\n  if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n    return this.readWord()\n\n  return this.getTokenFromCode(code)\n}\n\npp.fullCharCodeAtPos = function() {\n  let code = this.input.charCodeAt(this.pos)\n  if (code <= 0xd7ff || code >= 0xe000) return code\n  let next = this.input.charCodeAt(this.pos + 1)\n  return (code << 10) + next - 0x35fdc00\n}\n\npp.skipBlockComment = function() {\n  let startLoc = this.options.onComment && this.curPosition()\n  let start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2)\n  if (end === -1) this.raise(this.pos - 2, \"Unterminated comment\")\n  this.pos = end + 2\n  if (this.options.locations) {\n    lineBreakG.lastIndex = start\n    let match\n    while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n      ++this.curLine\n      this.lineStart = match.index + match[0].length\n    }\n  }\n  if (this.options.onComment)\n    this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n                           startLoc, this.curPosition())\n}\n\npp.skipLineComment = function(startSkip) {\n  let start = this.pos\n  let startLoc = this.options.onComment && this.curPosition()\n  let ch = this.input.charCodeAt(this.pos += startSkip)\n  while (this.pos < this.input.length && !isNewLine(ch)) {\n    ch = this.input.charCodeAt(++this.pos)\n  }\n  if (this.options.onComment)\n    this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n                           startLoc, this.curPosition())\n}\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n  loop: while (this.pos < this.input.length) {\n    let ch = this.input.charCodeAt(this.pos)\n    switch (ch) {\n    case 32: case 160: // ' '\n      ++this.pos\n      break\n    case 13:\n      if (this.input.charCodeAt(this.pos + 1) === 10) {\n        ++this.pos\n      }\n    case 10: case 8232: case 8233:\n      ++this.pos\n      if (this.options.locations) {\n        ++this.curLine\n        this.lineStart = this.pos\n      }\n      break\n    case 47: // '/'\n      switch (this.input.charCodeAt(this.pos + 1)) {\n      case 42: // '*'\n        this.skipBlockComment()\n        break\n      case 47:\n        this.skipLineComment(2)\n        break\n      default:\n        break loop\n      }\n      break\n    default:\n      if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n        ++this.pos\n      } else {\n        break loop\n      }\n    }\n  }\n}\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n  this.end = this.pos\n  if (this.options.locations) this.endLoc = this.curPosition()\n  let prevType = this.type\n  this.type = type\n  this.value = val\n\n  this.updateContext(prevType)\n}\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next >= 48 && next <= 57) return this.readNumber(true)\n  let next2 = this.input.charCodeAt(this.pos + 2)\n  if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n    this.pos += 3\n    return this.finishToken(tt.ellipsis)\n  } else {\n    ++this.pos\n    return this.finishToken(tt.dot)\n  }\n}\n\npp.readToken_slash = function() { // '/'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.slash, 1)\n}\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n  let next = this.input.charCodeAt(this.pos + 1)\n  let size = 1\n  let tokentype = code === 42 ? tt.star : tt.modulo\n\n  // exponentiation operator ** and **=\n  if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n    ++size\n    tokentype = tt.starstar\n    next = this.input.charCodeAt(this.pos + 2)\n  }\n\n  if (next === 61) return this.finishOp(tt.assign, size + 1)\n  return this.finishOp(tokentype, size)\n}\n\npp.readToken_pipe_amp = function(code) { // '|&'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === code) return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2)\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1)\n}\n\npp.readToken_caret = function() { // '^'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.bitwiseXOR, 1)\n}\n\npp.readToken_plus_min = function(code) { // '+-'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === code) {\n    if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n        (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n      // A `-->` line comment\n      this.skipLineComment(3)\n      this.skipSpace()\n      return this.nextToken()\n    }\n    return this.finishOp(tt.incDec, 2)\n  }\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n  let next = this.input.charCodeAt(this.pos + 1)\n  let size = 1\n  if (next === code) {\n    size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n    if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n    return this.finishOp(tt.bitShift, size)\n  }\n  if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n      this.input.charCodeAt(this.pos + 3) === 45) {\n    // `<!--`, an XML-style comment that should be interpreted as a line comment\n    this.skipLineComment(4)\n    this.skipSpace()\n    return this.nextToken()\n  }\n  if (next === 61) size = 2\n  return this.finishOp(tt.relational, size)\n}\n\npp.readToken_eq_excl = function(code) { // '=!'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === 61) return this.finishOp(tt.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2)\n  if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n    this.pos += 2\n    return this.finishToken(tt.arrow)\n  }\n  return this.finishOp(code === 61 ? tt.eq : tt.prefix, 1)\n}\n\npp.getTokenFromCode = function(code) {\n  switch (code) {\n  // The interpretation of a dot depends on whether it is followed\n  // by a digit or another two dots.\n  case 46: // '.'\n    return this.readToken_dot()\n\n  // Punctuation tokens.\n  case 40: ++this.pos; return this.finishToken(tt.parenL)\n  case 41: ++this.pos; return this.finishToken(tt.parenR)\n  case 59: ++this.pos; return this.finishToken(tt.semi)\n  case 44: ++this.pos; return this.finishToken(tt.comma)\n  case 91: ++this.pos; return this.finishToken(tt.bracketL)\n  case 93: ++this.pos; return this.finishToken(tt.bracketR)\n  case 123: ++this.pos; return this.finishToken(tt.braceL)\n  case 125: ++this.pos; return this.finishToken(tt.braceR)\n  case 58: ++this.pos; return this.finishToken(tt.colon)\n  case 63: ++this.pos; return this.finishToken(tt.question)\n\n  case 96: // '`'\n    if (this.options.ecmaVersion < 6) break\n    ++this.pos\n    return this.finishToken(tt.backQuote)\n\n  case 48: // '0'\n    let next = this.input.charCodeAt(this.pos + 1)\n    if (next === 120 || next === 88) return this.readRadixNumber(16) // '0x', '0X' - hex number\n    if (this.options.ecmaVersion >= 6) {\n      if (next === 111 || next === 79) return this.readRadixNumber(8) // '0o', '0O' - octal number\n      if (next === 98 || next === 66) return this.readRadixNumber(2) // '0b', '0B' - binary number\n    }\n\n  // Anything else beginning with a digit is an integer, octal\n  // number, or float.\n  case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n    return this.readNumber(false)\n\n  // Quotes produce strings.\n  case 34: case 39: // '\"', \"'\"\n    return this.readString(code)\n\n  // Operators are parsed inline in tiny state machines. '=' (61) is\n  // often referred to. `finishOp` simply skips the amount of\n  // characters it is given as second argument, and returns a token\n  // of the type given by its first argument.\n\n  case 47: // '/'\n    return this.readToken_slash()\n\n  case 37: case 42: // '%*'\n    return this.readToken_mult_modulo_exp(code)\n\n  case 124: case 38: // '|&'\n    return this.readToken_pipe_amp(code)\n\n  case 94: // '^'\n    return this.readToken_caret()\n\n  case 43: case 45: // '+-'\n    return this.readToken_plus_min(code)\n\n  case 60: case 62: // '<>'\n    return this.readToken_lt_gt(code)\n\n  case 61: case 33: // '=!'\n    return this.readToken_eq_excl(code)\n\n  case 126: // '~'\n    return this.finishOp(tt.prefix, 1)\n  }\n\n  this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\")\n}\n\npp.finishOp = function(type, size) {\n  let str = this.input.slice(this.pos, this.pos + size)\n  this.pos += size\n  return this.finishToken(type, str)\n}\n\npp.readRegexp = function() {\n  let escaped, inClass, start = this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(start, \"Unterminated regular expression\")\n    let ch = this.input.charAt(this.pos)\n    if (lineBreak.test(ch)) this.raise(start, \"Unterminated regular expression\")\n    if (!escaped) {\n      if (ch === \"[\") inClass = true\n      else if (ch === \"]\" && inClass) inClass = false\n      else if (ch === \"/\" && !inClass) break\n      escaped = ch === \"\\\\\"\n    } else escaped = false\n    ++this.pos\n  }\n  let pattern = this.input.slice(start, this.pos)\n  ++this.pos\n  let flagsStart = this.pos\n  let flags = this.readWord1()\n  if (this.containsEsc) this.unexpected(flagsStart)\n\n  // Validate pattern\n  const state = this.regexpState || (this.regexpState = new RegExpValidationState(this))\n  state.reset(start, pattern, flags)\n  this.validateRegExpFlags(state)\n  this.validateRegExpPattern(state)\n\n  // Create Literal#value property value.\n  let value = null\n  try {\n    value = new RegExp(pattern, flags)\n  } catch (e) {\n    // ESTree requires null if it failed to instantiate RegExp object.\n    // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n  }\n\n  return this.finishToken(tt.regexp, {pattern, flags, value})\n}\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp.readInt = function(radix, len) {\n  let start = this.pos, total = 0\n  for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n    let code = this.input.charCodeAt(this.pos), val\n    if (code >= 97) val = code - 97 + 10 // a\n    else if (code >= 65) val = code - 65 + 10 // A\n    else if (code >= 48 && code <= 57) val = code - 48 // 0-9\n    else val = Infinity\n    if (val >= radix) break\n    ++this.pos\n    total = total * radix + val\n  }\n  if (this.pos === start || len != null && this.pos - start !== len) return null\n\n  return total\n}\n\npp.readRadixNumber = function(radix) {\n  this.pos += 2 // 0x\n  let val = this.readInt(radix)\n  if (val == null) this.raise(this.start + 2, \"Expected number in radix \" + radix)\n  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\")\n  return this.finishToken(tt.num, val)\n}\n\n// Read an integer, octal integer, or floating-point number.\n\npp.readNumber = function(startsWithDot) {\n  let start = this.pos\n  if (!startsWithDot && this.readInt(10) === null) this.raise(start, \"Invalid number\")\n  let octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48\n  if (octal && this.strict) this.raise(start, \"Invalid number\")\n  if (octal && /[89]/.test(this.input.slice(start, this.pos))) octal = false\n  let next = this.input.charCodeAt(this.pos)\n  if (next === 46 && !octal) { // '.'\n    ++this.pos\n    this.readInt(10)\n    next = this.input.charCodeAt(this.pos)\n  }\n  if ((next === 69 || next === 101) && !octal) { // 'eE'\n    next = this.input.charCodeAt(++this.pos)\n    if (next === 43 || next === 45) ++this.pos // '+-'\n    if (this.readInt(10) === null) this.raise(start, \"Invalid number\")\n  }\n  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\")\n\n  let str = this.input.slice(start, this.pos)\n  let val = octal ? parseInt(str, 8) : parseFloat(str)\n  return this.finishToken(tt.num, val)\n}\n\n// Read a string value, interpreting backslash-escapes.\n\npp.readCodePoint = function() {\n  let ch = this.input.charCodeAt(this.pos), code\n\n  if (ch === 123) { // '{'\n    if (this.options.ecmaVersion < 6) this.unexpected()\n    let codePos = ++this.pos\n    code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos)\n    ++this.pos\n    if (code > 0x10FFFF) this.invalidStringToken(codePos, \"Code point out of bounds\")\n  } else {\n    code = this.readHexChar(4)\n  }\n  return code\n}\n\nfunction codePointToString(code) {\n  // UTF-16 Decoding\n  if (code <= 0xFFFF) return String.fromCharCode(code)\n  code -= 0x10000\n  return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\npp.readString = function(quote) {\n  let out = \"\", chunkStart = ++this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(this.start, \"Unterminated string constant\")\n    let ch = this.input.charCodeAt(this.pos)\n    if (ch === quote) break\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos)\n      out += this.readEscapedChar(false)\n      chunkStart = this.pos\n    } else {\n      if (isNewLine(ch, this.options.ecmaVersion >= 10)) this.raise(this.start, \"Unterminated string constant\")\n      ++this.pos\n    }\n  }\n  out += this.input.slice(chunkStart, this.pos++)\n  return this.finishToken(tt.string, out)\n}\n\n// Reads template string tokens.\n\nconst INVALID_TEMPLATE_ESCAPE_ERROR = {}\n\npp.tryReadTemplateToken = function() {\n  this.inTemplateElement = true\n  try {\n    this.readTmplToken()\n  } catch (err) {\n    if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n      this.readInvalidTemplateToken()\n    } else {\n      throw err\n    }\n  }\n\n  this.inTemplateElement = false\n}\n\npp.invalidStringToken = function(position, message) {\n  if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n    throw INVALID_TEMPLATE_ESCAPE_ERROR\n  } else {\n    this.raise(position, message)\n  }\n}\n\npp.readTmplToken = function() {\n  let out = \"\", chunkStart = this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(this.start, \"Unterminated template\")\n    let ch = this.input.charCodeAt(this.pos)\n    if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n      if (this.pos === this.start && (this.type === tt.template || this.type === tt.invalidTemplate)) {\n        if (ch === 36) {\n          this.pos += 2\n          return this.finishToken(tt.dollarBraceL)\n        } else {\n          ++this.pos\n          return this.finishToken(tt.backQuote)\n        }\n      }\n      out += this.input.slice(chunkStart, this.pos)\n      return this.finishToken(tt.template, out)\n    }\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos)\n      out += this.readEscapedChar(true)\n      chunkStart = this.pos\n    } else if (isNewLine(ch)) {\n      out += this.input.slice(chunkStart, this.pos)\n      ++this.pos\n      switch (ch) {\n      case 13:\n        if (this.input.charCodeAt(this.pos) === 10) ++this.pos\n      case 10:\n        out += \"\\n\"\n        break\n      default:\n        out += String.fromCharCode(ch)\n        break\n      }\n      if (this.options.locations) {\n        ++this.curLine\n        this.lineStart = this.pos\n      }\n      chunkStart = this.pos\n    } else {\n      ++this.pos\n    }\n  }\n}\n\n// Reads a template token to search for the end, without validating any escape sequences\npp.readInvalidTemplateToken = function() {\n  for (; this.pos < this.input.length; this.pos++) {\n    switch (this.input[this.pos]) {\n    case \"\\\\\":\n      ++this.pos\n      break\n\n    case \"$\":\n      if (this.input[this.pos + 1] !== \"{\") {\n        break\n      }\n    // falls through\n\n    case \"`\":\n      return this.finishToken(tt.invalidTemplate, this.input.slice(this.start, this.pos))\n\n    // no default\n    }\n  }\n  this.raise(this.start, \"Unterminated template\")\n}\n\n// Used to read escaped characters\n\npp.readEscapedChar = function(inTemplate) {\n  let ch = this.input.charCodeAt(++this.pos)\n  ++this.pos\n  switch (ch) {\n  case 110: return \"\\n\" // 'n' -> '\\n'\n  case 114: return \"\\r\" // 'r' -> '\\r'\n  case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n  case 117: return codePointToString(this.readCodePoint()) // 'u'\n  case 116: return \"\\t\" // 't' -> '\\t'\n  case 98: return \"\\b\" // 'b' -> '\\b'\n  case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n  case 102: return \"\\f\" // 'f' -> '\\f'\n  case 13: if (this.input.charCodeAt(this.pos) === 10) ++this.pos // '\\r\\n'\n  case 10: // ' \\n'\n    if (this.options.locations) { this.lineStart = this.pos; ++this.curLine }\n    return \"\"\n  default:\n    if (ch >= 48 && ch <= 55) {\n      let octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]\n      let octal = parseInt(octalStr, 8)\n      if (octal > 255) {\n        octalStr = octalStr.slice(0, -1)\n        octal = parseInt(octalStr, 8)\n      }\n      this.pos += octalStr.length - 1\n      ch = this.input.charCodeAt(this.pos)\n      if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n        this.invalidStringToken(\n          this.pos - 1 - octalStr.length,\n          inTemplate\n            ? \"Octal literal in template string\"\n            : \"Octal literal in strict mode\"\n        )\n      }\n      return String.fromCharCode(octal)\n    }\n    if (isNewLine(ch)) {\n      // Unicode new line characters after \\ get removed from output in both\n      // template literals and strings\n      return \"\"\n    }\n    return String.fromCharCode(ch)\n  }\n}\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp.readHexChar = function(len) {\n  let codePos = this.pos\n  let n = this.readInt(16, len)\n  if (n === null) this.invalidStringToken(codePos, \"Bad character escape sequence\")\n  return n\n}\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp.readWord1 = function() {\n  this.containsEsc = false\n  let word = \"\", first = true, chunkStart = this.pos\n  let astral = this.options.ecmaVersion >= 6\n  while (this.pos < this.input.length) {\n    let ch = this.fullCharCodeAtPos()\n    if (isIdentifierChar(ch, astral)) {\n      this.pos += ch <= 0xffff ? 1 : 2\n    } else if (ch === 92) { // \"\\\"\n      this.containsEsc = true\n      word += this.input.slice(chunkStart, this.pos)\n      let escStart = this.pos\n      if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n        this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\")\n      ++this.pos\n      let esc = this.readCodePoint()\n      if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n        this.invalidStringToken(escStart, \"Invalid Unicode escape\")\n      word += codePointToString(esc)\n      chunkStart = this.pos\n    } else {\n      break\n    }\n    first = false\n  }\n  return word + this.input.slice(chunkStart, this.pos)\n}\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp.readWord = function() {\n  let word = this.readWord1()\n  let type = tt.name\n  if (this.keywords.test(word)) {\n    if (this.containsEsc) this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + word)\n    type = keywordTypes[word]\n  }\n  return this.finishToken(type, word)\n}\n","// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n//\n// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and\n// various contributors and released under an MIT license.\n//\n// Git repositories for Acorn are available at\n//\n//     http://marijnhaverbeke.nl/git/acorn\n//     https://github.com/acornjs/acorn.git\n//\n// Please use the [github bug tracker][ghbt] to report issues.\n//\n// [ghbt]: https://github.com/acornjs/acorn/issues\n//\n// [walk]: util/walk.js\n\nimport {Parser} from \"./state\"\nimport \"./parseutil\"\nimport \"./statement\"\nimport \"./lval\"\nimport \"./expression\"\nimport \"./location\"\nimport \"./scope\"\n\nexport {Parser} from \"./state\"\nexport {defaultOptions} from \"./options\"\nexport {Position, SourceLocation, getLineInfo} from \"./locutil\"\nexport {Node} from \"./node\"\nexport {TokenType, types as tokTypes, keywords as keywordTypes} from \"./tokentype\"\nexport {TokContext, types as tokContexts} from \"./tokencontext\"\nexport {isIdentifierChar, isIdentifierStart} from \"./identifier\"\nexport {Token} from \"./tokenize\"\nexport {isNewLine, lineBreak, lineBreakG, nonASCIIwhitespace} from \"./whitespace\"\n\nexport const version = \"6.1.1\"\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and\n// returns an abstract syntax tree as specified by [Mozilla parser\n// API][api].\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\nexport function parse(input, options) {\n  return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nexport function parseExpressionAt(input, pos, options) {\n  return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nexport function tokenizer(input, options) {\n  return Parser.tokenizer(input, options)\n}\n"],"names":["const","let","keywords","tt","this","pp","init","label","node","empty","scope","types","UNICODE_PROPERTY_VALUES","codePointToString","ch","keywordTypes"],"mappings":";;;;;;AAAA;;AAEA,AAAOA,IAAM,aAAa,GAAG;EAC3B,CAAC,EAAE,qNAAqN;EACxN,CAAC,EAAE,8CAA8C;EACjD,CAAC,EAAE,MAAM;EACT,MAAM,EAAE,wEAAwE;EAChF,UAAU,EAAE,gBAAgB;EAC7B;;;;AAIDA,IAAM,oBAAoB,GAAG,8KAA6K;;AAE1M,AAAOA,IAAM,QAAQ,GAAG;EACtB,CAAC,EAAE,oBAAoB;EACvB,CAAC,EAAE,oBAAoB,GAAG,0CAA0C;EACrE;;AAED,AAAOA,IAAM,yBAAyB,GAAG,kBAAiB;;;;;;;;;;AAU1DC,IAAI,4BAA4B,GAAG,4tIAA2tI;AAC9vIA,IAAI,uBAAuB,GAAG,sjFAAqjF;;AAEnlFD,IAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,GAAG,EAAC;AACpFA,IAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,uBAAuB,GAAG,GAAG,EAAC;;AAEzG,4BAA4B,GAAG,uBAAuB,GAAG,KAAI;;;;;;;;;AAS7DA,IAAM,0BAA0B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;;;AAGvqCA,IAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,C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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-27-        case -17 /* anyref */: return 'anyref';
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:28:        default: throw new Error(`Unexpected type ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-29-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-71-    for (var i = 0; i < count; i++)
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:72:        result.push(`0x${formatHex(dv.getInt32(i << 2, true), 8)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-73-    return result.join(' ');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-78-    for (var i = 0; i < count; i++)
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:79:        result.push(`${dv.getInt8(i)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-80-    return result.join(' ');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-187-    if (address.flags == defaultAlignFlags) // hide default flags
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:188:        return !address.offset ? null : `offset=${address.offset}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-189-    if (!address.offset) // hide default offset
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:190:        return `align=${1 << address.flags}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:191:    return `offset=${address.offset | 0} align=${1 << address.flags}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-192-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-195-        return typeToString(type.contentType);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:196:    return `(mut ${typeToString(type.contentType)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-197-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-263-            return super.getTableName(index, isRef);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:264:        return isRef ? `$${name}` : `$${name} (;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-265-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-269-            return super.getMemoryName(index, isRef);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:270:        return isRef ? `$${name}` : `$${name} (;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-271-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-275-            return super.getGlobalName(index, isRef);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:276:        return isRef ? `$${name}` : `$${name} (;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-277-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-281-            return super.getFunctionName(index, isImport, isRef);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:282:        return isRef ? `$${name}` : `$${name} (;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-283-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-287-            return super.getVariableName(funcIndex, index, isRef);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:288:        return isRef ? `$${name}` : `$${name} (;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-289-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-292-    getTypeName(index, isRef) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:293:        return isRef ? '' + index : `(;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-294-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-295-    getTableName(index, isRef) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:296:        return isRef ? '' + index : `(;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-297-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-298-    getMemoryName(index, isRef) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:299:        return isRef ? '' + index : `(;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-300-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-301-    getGlobalName(index, isRef) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:302:        return isRef ? '' + index : `(;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-303-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-304-    getFunctionName(index, isImport, isRef) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:305:        return isRef ? '' + index : `(;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-306-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-307-    getVariableName(funcIndex, index, isRef) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:308:        return isRef ? '' + index : `(;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-309-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-507-                var funcName = this._nameResolver.getFunctionName(operator.funcIndex, operator.funcIndex < this._importCount, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:508:                this.appendBuffer(` ${funcName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-509-                break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-512-                var typeName = this._nameResolver.getTypeName(operator.typeIndex, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:513:                this.appendBuffer(` (type ${typeName})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-514-                break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-518-                var paramName = this._nameResolver.getVariableName(this._funcIndex, operator.localIndex, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:519:                this.appendBuffer(` ${paramName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-520-                break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-523-                var globalName = this._nameResolver.getGlobalName(operator.globalIndex, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:524:                this.appendBuffer(` ${globalName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-525-                break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-626-            case 65 /* i32_const */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:627:                this.appendBuffer(` ${operator.literal.toString()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-628-                break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-629-            case 66 /* i64_const */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:630:                this.appendBuffer(` ${operator.literal.toString()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-631-                break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-632-            case 67 /* f32_const */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:633:                this.appendBuffer(` ${formatFloat32(operator.literal)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-634-                break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-635-            case 68 /* f64_const */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:636:                this.appendBuffer(` ${formatFloat64(operator.literal)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-637-                break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-638-            case 64770 /* v128_const */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:639:                this.appendBuffer(` i32x4 ${formatI32Array(operator.literal, 4)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-640-                break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-641-            case 64771 /* v8x16_shuffle */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:642:                this.appendBuffer(` ${formatI8Array(operator.lines, 16)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-643-                break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-657-            case 64791 /* f64x2_replace_lane */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:658:                this.appendBuffer(` ${operator.lineIndex}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-659-                break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-662-            case 64525 /* elem_drop */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:663:                this.appendBuffer(` ${operator.segmentIndex}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-664-                break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-669-                    let tableName = this._nameResolver.getTableName(operator.tableIndex, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:670:                    this.appendBuffer(` ${tableName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-671-                    break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-676-                    let destinationName = this._nameResolver.getTableName(operator.destinationIndex, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:677:                    this.appendBuffer(` ${destinationName} ${tableName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-678-                    break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-682-                    let tableName = this._nameResolver.getTableName(operator.tableIndex, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:683:                    this.appendBuffer(` ${operator.segmentIndex} ${tableName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-684-                    break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-776-            switch (reader.state) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:777:                case 2 /* END_WASM */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-778-                    this.appendBuffer(')');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-787-                    throw reader.error;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:788:                case 1 /* BEGIN_WASM */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-789-                    this.appendBuffer('(module');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-816-                    var memoryName = this._nameResolver.getMemoryName(this._memoryCount++, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:817:                    this.appendBuffer(`  (memory ${memoryName} `);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-818-                    if (memoryInfo.shared) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:819:                        this.appendBuffer(`(shared ${limitsToString(memoryInfo.limits)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-820-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-829-                    var tableName = this._nameResolver.getTableName(this._tableCount++, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:830:                    this.appendBuffer(`  (table ${tableName} ${limitsToString(tableInfo.limits)} ${typeToString(tableInfo.elementType)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-831-                    this.newLine();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-840-                            var funcName = this._nameResolver.getFunctionName(exportInfo.index, exportInfo.index < this._importCount, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:841:                            this.appendBuffer(`(func ${funcName})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-842-                            break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-844-                            var tableName = this._nameResolver.getTableName(exportInfo.index, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:845:                            this.appendBuffer(`(table ${tableName})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-846-                            break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-848-                            var memoryName = this._nameResolver.getMemoryName(exportInfo.index, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:849:                            this.appendBuffer(`(memory ${memoryName})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-850-                            break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-852-                            var globalName = this._nameResolver.getGlobalName(exportInfo.index, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:853:                            this.appendBuffer(`(global ${globalName})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-854-                            break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-855-                        default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:856:                            throw new Error(`Unsupported export ${exportInfo.kind}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-857-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-868-                            var funcName = this._nameResolver.getFunctionName(this._funcIndex++, true, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:869:                            this.appendBuffer(` (func ${funcName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-870-                            this.printFuncType(importInfo.funcTypeIndex);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-875-                            var tableName = this._nameResolver.getTableName(this._tableCount++, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:876:                            this.appendBuffer(` (table ${tableName} ${limitsToString(tableImportInfo.limits)} ${typeToString(tableImportInfo.elementType)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-877-                            break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-880-                            var memoryName = this._nameResolver.getMemoryName(this._memoryCount++, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:881:                            this.appendBuffer(` (memory ${memoryName} `);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-882-                            if (memoryImportInfo.shared) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:883:                                this.appendBuffer(`(shared ${limitsToString(memoryImportInfo.limits)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-884-                            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-892-                            var globalName = this._nameResolver.getGlobalName(this._globalCount++, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:893:                            this.appendBuffer(` (global ${globalName} ${globalTypeToString(globalImportInfo)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-894-                            break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-895-                        default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:896:                            throw new Error(`NYI other import types: ${importInfo.kind}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-897-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-912-                        let typeName = typeToString(elementSegmentBody.elementType);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:913:                        this.appendBuffer(` ${typeName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-914-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-921-                                let funcName = this._nameResolver.getFunctionName(funcIndex, funcIndex < this._importCount, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:922:                                this.appendBuffer(` (ref.func ${funcName})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-923-                            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-926-                            let funcName = this._nameResolver.getFunctionName(funcIndex, funcIndex < this._importCount, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:927:                            this.appendBuffer(` ${funcName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-928-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-933-                    var globalName = this._nameResolver.getGlobalName(this._globalCount++, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:934:                    this.appendBuffer(`  (global ${globalName} ${globalTypeToString(globalInfo.type)} `);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-935-                    break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-944-                    var typeName = this._nameResolver.getTypeName(typeIndex, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:945:                    this.appendBuffer(`  (type ${typeName} (func`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-946-                    this.printFuncType(typeIndex);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-952-                    var funcName = this._nameResolver.getFunctionName(startEntry.index, startEntry.index < this._importCount, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:953:                    this.appendBuffer(`  (start ${funcName})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-954-                    this.newLine();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-999-                        var paramName = this._nameResolver.getVariableName(this._funcIndex, i, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1000:                        this.appendBuffer(` (param ${paramName} ${typeToString(type.params[i])})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1001-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1002-                    for (var i = 0; i < type.returns.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1003:                        this.appendBuffer(` (result ${typeToString(type.returns[i])})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1004-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1011-                                var paramName = this._nameResolver.getVariableName(this._funcIndex, localIndex++, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1012:                                this.appendBuffer(` (local ${paramName} ${typeToString(l.type)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1013-                            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1059-                default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1060:                    throw new Error(`Expectected state: ${reader.state}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1061-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1074-        if (!name)
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1075:            return `$${UNKNOWN_FUNCTION_PREFIX}${index}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1076:        return isRef ? `$${name}` : `$${name} (;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1077-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1081-            return super.getVariableName(funcIndex, index, isRef);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1082:        return isRef ? `$${name}` : `$${name} (;${index};)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1083-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1100-            switch (reader.state) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1101:                case 2 /* END_WASM */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1102-                    if (!reader.hasMoreBytes()) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1108-                    throw reader.error;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1109:                case 1 /* BEGIN_WASM */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1110-                    this._functionsCount = 0;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1158-                default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1159:                    throw new Error(`Expectected state: ${reader.state}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1160-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1226-            switch (reader.state) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1227:                case 2 /* END_WASM */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1228-                    if (!reader.hasMoreBytes()) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1234-                    throw reader.error;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1235:                case 1 /* BEGIN_WASM */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1236-                    this._functionImportsCount = 0;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1281-                        default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1282:                            throw new Error(`Unsupported export ${importInfo.kind}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1283-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1321-                        default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1322:                            throw new Error(`Unsupported export ${exportInfo.kind}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1323-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1325-                default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js:1326:                    throw new Error(`Expectected state: ${reader.state}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmDis.js-1327-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1109-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:1110:                this.error = new Error(`Bad name entry type: ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1111-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1158-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:1159:                this.error = new Error(`Bad linking type: ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1160-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1212-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:1213:                this.error = new Error(`Bad relocation type: ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1214-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1269-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:1270:                this.error = new Error(`Unknown operator: ${code}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1271-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1451-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:1452:                this.error = new Error(`Unknown operator: ${code}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1453-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1541-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:1542:                this.error = new Error(`Unknown operator: ${code}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1543-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1822-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:1823:                this.error = new Error(`Unknown operator: ${code}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1824-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1877-            this.result = null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:1878:            this.state = 2 /* END_WASM */;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1879-            return true;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1887-                this.result = null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:1888:                this.state = 2 /* END_WASM */;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-1889-                return true;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2011-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2012:                this.error = new Error(`Unsupported section: ${this._sectionId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2013-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2030-                    version != WASM_SUPPORTED_EXPERIMENTAL_VERSION) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2031:                    this.error = new Error(`Bad version number ${version}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2032-                    this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2035-                this.result = { magicNumber: magicNumber, version: version };
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2036:                this.state = 1 /* BEGIN_WASM */;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2037-                return true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2038:            case 2 /* END_WASM */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2039-                this.result = null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2040:                this.state = 1 /* BEGIN_WASM */;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2041-                if (this.hasMoreBytes()) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2047-                return true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2048:            case 1 /* BEGIN_WASM */:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2049-            case 4 /* END_SECTION */:
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2123-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2124:                this.error = new Error(`Unexpected section type: ${this._sectionId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2125-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2161-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2162:                this.error = new Error(`Unsupported state: ${this.state}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2163-                this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2170-            this.state === 4 /* END_SECTION */ ||
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2171:            this.state === 1 /* BEGIN_WASM */ ||
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2172:            this.state === 2 /* END_WASM */)
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2173-            return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2187-        if (this.state !== 3 /* BEGIN_SECTION */) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js:2188:            this.error = new Error(`Unsupported state: ${this.state}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/wasmparser/WasmParser.js-2189-            this.state = -1 /* ERROR */;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-213-    if (id && (id in values) === false) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:214:      throw new Error(`ICU Message "${icuMessage}" contains a value reference ("${id}") ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-215-        `that wasn't provided`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-226-    if (typeof value !== 'number') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:227:      throw new Error(`ICU Message "${icuMessage}" contains a numeric reference ("${id}") ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-228-        'but provided value was not a number');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-256-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:257:    throw new Error(`Provided value "${valueId}" does not match any placeholder in ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:258:      `ICU message "${icuMessage}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-259-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-284-  const localeMessages = LOCALES[locale];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:285:  if (!localeMessages) throw new Error(`Unsupported locale '${locale}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-286-  let localeMessage = localeMessages[icuMessageId] && localeMessages[icuMessageId].message;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-295-    if (!LOCALES.en[icuMessageId] || localeMessage !== LOCALES.en[icuMessageId].message) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:296:      log.verbose('i18n', `Message "${icuMessageId}" does not match its 'en' counterpart. ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-297-        `Run 'i18n' to update.`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-324-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:325:      if (/]|"|'|\s/.test(property)) throw new Error(`Cannot handle "${property}" in i18n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:326:      pathAsString += `[${property}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-327-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-338-  const localeMessages = LOCALES[locale];
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:339:  if (!localeMessages) throw new Error(`Unsupported locale '${locale}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-340-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-344-    const [filename, varName] = icuMessageId.split(' | ');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:345:    if (!filename.endsWith('util.js')) throw new Error(`Unexpected message: ${icuMessageId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-346-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-373-    const keyname = Object.keys(mergedStrings).find(key => mergedStrings[key] === icuMessage);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:374:    if (!keyname) throw new Error(`Could not locate: ${icuMessage}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-375-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-377-    const unixStyleFilename = path.relative(LH_ROOT, filenameToLookup).replace(/\\/g, '/');
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:378:    const icuMessageId = `${unixStyleFilename} | ${keyname}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-379-    const icuMessageInstances = _icuMessageInstanceMap.get(icuMessageId) || [];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-388-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:389:    return `${icuMessageId} # ${indexOfInstance}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-390-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-438-  const matches = icuMessageInstanceId.match(MESSAGE_INSTANCE_ID_REGEX);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js:439:  if (!matches) throw new Error(`${icuMessageInstanceId} is not a valid message instance ID`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/i18n/i18n.js-440-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js-98-    lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass,
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js:99:                                    `left: ${cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth}px; width: ${dims.gutterTotalWidth}px`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js-100-    cm.display.input.setUneditable(lineView.gutterBackground)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js-105-    let wrap = ensureLineWrapped(lineView)
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js:106:    let gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", `left: ${cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth}px`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js-107-    cm.display.input.setUneditable(gutterWrap)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js-114-            "CodeMirror-linenumber CodeMirror-gutter-elt",
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js:115:            `left: ${dims.gutterLeft["CodeMirror-linenumbers"]}px; width: ${cm.display.lineNumInnerWidth}px`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js-116-    if (markers) for (let k = 0; k < cm.display.gutterSpecs.length; ++k) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js-119-        gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt",
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js:120:                                   `left: ${dims.gutterLeft[id]}px; width: ${dims.gutterWidth[id]}px`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/src/display/update_line.js-121-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/CHANGELOG.md-162-
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/CHANGELOG.md:163:[vim bindings](https://codemirror.net/demo/vim.html): Adjust char escape substitution to match vim, support `&/$0`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/CHANGELOG.md-164-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/mode/d/d.js-204-    name: "d",
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/mode/d/d.js:205:    keywords: words("abstract alias align asm assert auto break case cast cdouble cent cfloat const continue " +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/mode/d/d.js-206-                    "debug default delegate delete deprecated export extern final finally function goto immutable " +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/mode/clike/clike.js-270-    "static else struct switch extern typedef union for goto while enum const " +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/mode/clike/clike.js:271:    "volatile inline restrict asm fortran";
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/mode/clike/clike.js-272-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/mode/pascal/pascal.js-20-  var keywords = words(
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/mode/pascal/pascal.js:21:    "absolute and array asm begin case const constructor destructor div do " +
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/third_party/codemirror/package/mode/pascal/pascal.js-22-    "downto else end file for function goto if implementation in inherited " +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-302-  const baseExpression =
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js:303:      `(${base.baseExpression.substring(callee.start - base.baseNode.start, callee.end - base.baseNode.start)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-304-  let receiver = '(function(){return this})()';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-323-    // Try to parse as a function, anonymous function, or arrow function.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js:324:    parsed = acorn.parse(`(${content})`, {});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-325-  } catch (e) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-329-      // Try to parse as a method.
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js:330:      parsed = acorn.parse(`({${content}})`, {});
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-331-    } catch (e) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-429-      // Wrap content in paren to successfully parse object literals
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js:430:      parsedContent = content[i] === '{' ? `(${content.substring(i)})${suffix}` : `${content.substring(i)}${suffix}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-431-      ast = acorn.parse(parsedContent, {});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-453-  if (baseExpression.startsWith('{')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js:454:    baseExpression = `(${baseExpression})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/front_end/formatter_worker/FormatterWorker.js-455-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-18-2. If your string contains variables, consider the following cases:
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:19:   1. Directly substitute variables, as how you would normally inject variables into a template literal with `${}`, **only if** your variable satisfies one of the following
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-20-
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:21:      1. If the variable is a number, e.g. `` ls`${renderedWidth} × ${renderedHeight} pixels` ``
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-22-      2. or if your variable is a string that likely doesn't need to be localized (for example, DOM, or a url),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-29-      const title = ls`New Tool`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:30:      const message = ls`Click ${title} for more details`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-31-      ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-54-      ```javascript
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:55:      ls`Check ${title} for more information.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-56-      ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-62-      ```javascript
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:63:      ls`Reveal${destination ? ls` in ${destination}` : ``}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-64-      ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-66-      ```javascript
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:67:      destination ? ls`Reveal in ${destination}` : ls`Reveal`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-68-      ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-72-      ```javascript
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:73:      ls`${count} insertion${count !== 1 ? `s` : ``}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-74-      ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-82-      else
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:83:        ls`${count} insertions`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-84-      ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-106-      ```javascript
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:107:      UI.Fragment.build`<a>${ls`Learn more`}</a>`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-108-      ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-112-      const link = ls`Learn more`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md:113:      UI.Fragment.build`<a>${link}</a>`
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/adding_strings.md-114-      ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/localization_apis.md-3-## ls tagged template literal [preferred]
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/localization_apis.md:4:Template literal prefixed with `ls` that returns a translation string. Use on string with or without substitution and return a translation string. To substitute variable, wrap it with `${}`, e.g. ``` ls`Hi ${name}` ```.
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/localization_apis.md-5-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/localization_apis.md-9-const progress = 0.734156;
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/localization_apis.md:10:ls`${Number.parseFloat(progress).toPrecision(2)}% done`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/docs/langpacks/localization_apis.md-11-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-24-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js:25:      reject(new Error(`Invalid protocol for url: ${url}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-26-      return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-32-    if (response.statusCode !== 200) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js:33:      reject(new Error(`Request error: + ${response.statusCode}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-34-      return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-66-  } catch (error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js:67:    throw new Error(`Received an error: [${error}] while trying to copy: ${src} -> ${dest}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-68-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-93-  } catch (error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js:94:    throw new Error(`Received an error: [${error}] while trying to copy: ${src} -> ${dest}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-95-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-116-  } catch (error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js:117:    throw new Error(`Received an error: [${error}] while trying to remove: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/utils.js-118-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-35-    emitIndent();
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:36:    emit(`${str}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-37-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-42-const emitOpenBlock = (str: string, openChar = ' {') => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:43:  emitLine(`${str}${openChar}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-44-  numIndents++;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-66-  emitHeaderComments();
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:67:  emitOpenBlock(`declare namespace ${moduleName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-68-  emitGlobalTypeDefs();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-89-  emitDescription(domain.description);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:90:  emitOpenBlock(`export namespace ${domainName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-91-  if (domain.types) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-103-const getCommentLines = (description: string) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:104:  const lines = description.split(/\r?\n/g).map(line => line && ` * ${line}` || ' *');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-105-  return ['/**', ...lines, ' */'];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-122-  // Quote key if it has a . in it.
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:123:  const propName = prop.name.includes('.') ? `'${prop.name}'` : prop.name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-124-  let type: string;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-129-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:130:  return `${propName}${prop.optional ? '?' : ''}: ${type}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-131-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-137-  if (prop.type === 'array') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:138:    return `${getPropertyType(interfaceName, prop.items)}[]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-139-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-147-    numIndents++;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:148:    objStr += prop.properties.map(p => `${getIndent()}${getPropertyDef(interfaceName, p)};\n`).join('');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-149-    numIndents--;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:150:    objStr += `${getIndent()}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-151-    return objStr;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-157-  emitDescription(prop.description);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:158:  emitLine(`${getPropertyDef(interfaceName, prop)};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-159-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-161-const emitInterface = (interfaceName: string, props?: Protocol.PropertyType[], optionalExtendsClause: string = '') => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:162:  emitOpenBlock(`export interface ${interfaceName}${optionalExtendsClause}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-163-  props ? props.forEach(prop => emitProperty(interfaceName, prop)) : emitLine('[key: string]: string;');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-167-const emitEnum = (enumName: string, enumValues: string[]) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:168:  emitOpenBlock(`export enum ${enumName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-169-  enumValues.forEach(value => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:170:    emitLine(`${fixCamelCase(value)} = '${value}',`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-171-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-228-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:229:    emitLine(`export type ${type.id} = ${getPropertyType(type.id, type)};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-230-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-234-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:235:const toCmdRequestName = (commandName: string) => `${toTitleCase(commandName)}Request`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-236-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:237:const toCmdResponseName = (commandName: string) => `${toTitleCase(commandName)}Response`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-238-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-253-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:254:const toEventPayloadName = (eventName: string) => `${toTitleCase(eventName)}Event`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-255-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-270-      // Use TS3.0+ tuples
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:271:      const payloadType = event.parameters ? `[${modulePrefix}.${domainName}.${toEventPayloadName(event.name)}]` : '[]';
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-272-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-274-        // domain-prefixed name since it will be used outside of the module.
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:275:        name: `${domainName}.${event.name}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-276-        description: event.description,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-286-                           modulePrefix: string): Protocol.ObjectType&Protocol.PropertyBaseType => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:287:  const prefix = `${modulePrefix}.${domainName}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-288-  // Use TS3.0+ tuples for paramsType
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-297-    type: 'object',
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:298:    name: `${domainName}.${command.name}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-299-    description: command.description,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-318-  emitDescription('Mappings from protocol event and command names to the types required for them.');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:319:  emitOpenBlock(`export namespace ${moduleName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-320-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-337-  emitLine();
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:338:  emitLine(`export default ${moduleName};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-339-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-341-const emitApiCommand = (command: Protocol.Command, domainName: string, modulePrefix: string) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:342:  const prefix = `${modulePrefix}.${domainName}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-343-  emitDescription(command.description);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:344:  const params = command.parameters ? `params: ${prefix}${toCmdRequestName(command.name)}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-345-  const response =
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:346:      command.returns ? `${prefix}${toCmdResponseName(command.name)}` : 'Protocol.ProtocolResponseWithError';
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:347:  emitLine(`invoke_${command.name}(${params}): Promise<${response}>;`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-348-  emitLine();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-351-const emitApiEvent = (event: Protocol.Event, domainName: string, modulePrefix: string) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:352:  const prefix = `${modulePrefix}.${domainName}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-353-  emitDescription(event.description);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:354:  const params = event.parameters ? `params: ${prefix}${toEventPayloadName(event.name)}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:355:  emitLine(`${event.name}(${params}): void;`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-356-  emitLine();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-365-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:366:  emitOpenBlock(`export interface ${domainName}Api`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-367-  if (domain.commands) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-370-  emitCloseBlock();
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:371:  emitOpenBlock(`export interface ${domainName}Dispatcher`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-372-  if (domain.events) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-382-  emitDescription('API generated from Protocol commands and events.');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:383:  emitOpenBlock(`declare namespace ${moduleName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-384-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-387-  domains.forEach(d => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:388:    emitLine(`${d.domain}: ${d.domain}Api;`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-389-    emitLine();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-400-const flushEmitToFile = (path: string) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts:401:  console.log(`Wrote file: ${path}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/protocol_typescript/protocol_dts_generator.ts-402-  fs.writeFileSync(path, emitStr, {encoding: 'utf-8'});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/build/generate_devtools_ui_strings.js-52-  const toRemoveError = checkLocalizedStrings.getAndReportResourcesToRemove();
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/build/generate_devtools_ui_strings.js:53:  let error = `${toAddError ? `${toAddError}\n` : ''}${toModifyError ? `${toModifyError}\n` : ''}${
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/build/generate_devtools_ui_strings.js:54:      toRemoveError ? `${toRemoveError}\n` : ''}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/build/generate_devtools_ui_strings.js-55-  if (error !== '') {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/build/generate_devtools_ui_strings.js-103-  frontendStrings.forEach((frontendString, idsKey) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/build/generate_devtools_ui_strings.js:104:    mappingsStr += `  {"${localizationUtils.sanitizeStringIntoCppFormat(frontendString.string)}", ${idsKey}},\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/build/generate_devtools_ui_strings.js-105-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-170-    if (startLine === endLine) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js:171:      return ` Line ${startLine}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-172-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js:173:    return ` Line ${location.start.line}-${location.end.line}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-174-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-252-  if (str.match(/^\s+/)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js:253:    str = `'''${str}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-254-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-255-  if (str.match(/\s+$/)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js:256:    str = `${str}'''`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-257-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-288-    // e.g. $1s, $1d, $1.2f
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js:289:    const newPh = `$${count}` + ph.substr(1);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-290-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-299-function createGrdpMessage(ids, stringObj) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js:300:  let message = `  <message name="${ids}" desc="${stringObj.description || ''}">\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js:301:  message += `    ${modifyStringIntoGRDFormat(stringObj.string, stringObj.arguments)}\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-302-  message += '  </message>\n';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-306-function getIDSKey(str) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js:307:  return `${IDSPrefix}${md5(str)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-308-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-327-  const relativeGrdpFilePath = getRelativeGrdpPath(grdpFilePath);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js:328:  return `      <part file="${relativeGrdpFilePath}" />\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/localization_utils.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/parse_typescript_files.js-8- * this code takes TypeScript files and looks for calls to an `ls`
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/parse_typescript_files.js:9: * function as a tagged template e.g.: ls`blah` or ls`blah ${x}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/parse_typescript_files.js-10- *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/parse_typescript_files.js-54- * generate a GRDP match for a call to ls with expressions inside
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/parse_typescript_files.js:55: * e.g.: ls`foo ${x}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/parse_typescript_files.js-56- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/check_localized_strings.js-74-  if (grdError !== '' || grdpError !== '') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/check_localized_strings.js:75:    return `${grdError}\n${grdpError}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/check_localized_strings.js-76-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/check_localized_strings.js-80-function expectedGrdpFilePath(dir) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/check_localized_strings.js:81:  return path.resolve(dir, `${path.basename(dir)}_strings.grdp`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/check_localized_strings.js-82-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/check_localized_strings.js-116-        'Please verify the grdp file and update the <part file="..."> entry to reference the correct grdp file. ' +
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/check_localized_strings.js:117:        `Make sure the grdp file name is ${path.basename(expectedGrdpFile)}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/utils/check_localized_strings.js-118-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizability.js-80-  if (errors.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizability.js:81:    console.log(`DevTools localization checker detected errors!\n${errors.join('\n')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizability.js-82-    process.exit(1);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizability.js-114- * don't contain letters.
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizability.js:115: * Example (allowed): ls`Status code: ${statusCode}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizability.js-116- * Example (allowed): ls`Status code` + ': '
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-50-  let error =
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js:51:      `${existingError ? `${existingError}\n` : ''}${toAddError || ''}${toModifyError || ''}${toRemoveError || ''}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-52-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-157-      // Create a new grdp file and reference it in the parent grd file
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js:158:      promises.push(appendFileAsync(grdpFilePath, `${grdpFileStart}${grdpMessagesToAdd}${grdpFileEnd}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-159-      grdpFilePathsToAdd.push(grdpFilePath);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-166-    let newGrdpFileContent = '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js:167:    const IDSRegex = new RegExp(`"(${localizationUtils.IDSPrefix}.*?)"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-168-    for (let i = 0; i < grdpFileLines.length; i++) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-215-    for (const message of messages) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js:216:      const idsRegex = new RegExp(`name="${message.actualIDSKey}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js:217:      fileContent = fileContent.replace(idsRegex, `name="${message.ids}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-218-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-230-      const match =
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js:231:        line.match(new RegExp(`<message[^>]*name="${message.ids}"[^>]*desc="(.*)?"[^>]*>`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/localization/check_localizable_resources.js-232-      if (match) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-15-http.createServer(requestHandler).listen(serverPort);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:16:console.log(`Started hosted mode server at http://localhost:${serverPort}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-17-console.log('For info on using the hosted mode server, see our contributing docs:');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-23-  if (filePath === '/') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:24:    const landingURL = `http://localhost:${remoteDebuggingPort}#custom=true`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:25:    sendResponse(200, `<html>Please go to <a href="${landingURL}">${landingURL}</a></html>`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-26-    return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-35-  function handleProxyError(err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:36:    console.log(`Error serving the file ${filePath}:`, err);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:37:    console.log(`Make sure you opened Chrome with the flag "--remote-debugging-port=${remoteDebuggingPort}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-38-    sendResponse(500, '500 - Internal Server Error');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-42-  if (!path.resolve(absoluteFilePath).startsWith(devtoolsFolder)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:43:    console.log(`File requested (${absoluteFilePath}) is outside of devtools folder: ${devtoolsFolder}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:44:    sendResponse(403, `403 - Access denied. File requested is outside of devtools folder: ${devtoolsFolder}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-45-    return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-51-    if (!fileExists) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:52:      console.log(`Cannot find file ${absoluteFilePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-53-      sendResponse(404, '404 - File not found');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-66-    if (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:67:      console.log(`Unable to read local file ${absoluteFilePath}:`, err);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-68-      sendResponse(500, '500 - Internal Server Error');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-148-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:149:  return utils.fetch(`http://localhost:${remoteDebuggingPort}/json/version`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-150-      .then(onBrowserMetadata)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-173-    if (isFullCheckout) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:174:      earlierCommitHash = utils.shellOutput(`${gitLogCommand} --pretty=format:"%H"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-175-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js:176:      const commitMessage = utils.shellOutput(`${gitLogCommand}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/server.js-177-      earlierCommitHash = commitMessage.match(/Cr-Mirrored-Commit: (.*)/)[1];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js-27-const chromeArgs = [
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js:28:  `--remote-debugging-port=${REMOTE_DEBUGGING_PORT}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js:29:  `--custom-devtools-frontend=http://localhost:${SERVER_PORT}/front_end/`, '--no-first-run',
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js:30:  `http://localhost:${REMOTE_DEBUGGING_PORT}#custom=true`, 'https://devtools.chrome.com',
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js:31:  `--user-data-dir=${CHROME_PROFILE_PATH}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js-32-].concat(process.argv.slice(2));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js-46-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js:47:throw new Error(`Unrecognized platform detected: ${process.platform}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js-48-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js-76-    const chromeCanaryPath = shellOutput(
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js:77:        `${lsregister} -dump | grep -i 'applications/google chrome canary.app$' | awk '{$1=""; print $0}' | head -n 1`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js:78:    chromeExecPath = `${chromeCanaryPath}/Contents/MacOS/Google Chrome Canary`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js-79-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js-96-function launchChrome(filePath, chromeArgs) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js:97:  console.log(`Launching Chrome from ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/hosted_mode/launch_chrome.js-98-  console.log('Chrome args:', chromeArgs.join(' '), '\n');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/eslint_rules/lib/check_license_header.js-53-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/eslint_rules/lib/check_license_header.js:54:const LICENSE_HEADER_ADDITION = LINE_LICENSE_HEADER.map(line => `// ${line}`).join('\n') + '\n\n';
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/eslint_rules/lib/check_license_header.js-55-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/eslint_rules/lib/es_modules_import.js-41-  // TODO(crbug.com/1011811): remove -legacy fallback
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/eslint_rules/lib/es_modules_import.js:42:  return directoryName === fileNameWithoutExtension || `${directoryName}-legacy` === fileNameWithoutExtension;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/eslint_rules/lib/es_modules_import.js-43-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/eslint_rules/lib/es_modules_import.js-63-      fix(fixer) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/eslint_rules/lib/es_modules_import.js:64:        return fixer.replaceText(node.source, `'${importPath}.js'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/eslint_rules/lib/es_modules_import.js-65-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-61-    console.log('Unable to run tests because of error:', error);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:62:    console.log(`Try removing the .test_cache folder [${CACHE_PATH}] and retrying`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-63-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-69-  try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:70:    shell(`ninja -C ${RELEASE_PATH} devtools_frontend_resources`, {cwd: CHROMIUM_SRC_PATH});
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-71-  } catch (err) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-84-  if (hasCachedContentShell) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:85:    console.log(`Using cached content shell at: ${contentShellPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-86-    copyFrontend(contentShellResourcesPath);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-118-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:119:        `Chromium source directory not found at \`${srcPath}\`. ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-120-        'Either move your standalone `devtools/devtools-frontend` checkout ' +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-137-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:138:  throw new Error(`Unrecognized platform detected: ${process.platform}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-139-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-157-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:158:  console.log(`Removed old content shells: ${oldContentShellDirs}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-159-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-185-    if (error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:186:      console.log(`Received error: ${error} trying to fetch positions list from url: ${positionsListURL}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-187-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:188:    throw new Error(`Unable to find a previous upload position for commit position: ${commitPosition}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-189-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-213-  function onError(error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:214:    console.log(`Received error: ${error} trying to download content shell from url: ${url}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-215-    throw new Error('Unable to download content shell');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-219-function extractContentShell(contentShellZipPath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:220:  console.log(`Extracting content shell zip: ${contentShellZipPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-221-  const unzipScriptPath = path.resolve(__dirname, 'unzip.py');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-223-  const dest = path.resolve(path.dirname(src), 'out');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:224:  shell(`${PYTHON} ${unzipScriptPath} ${src} ${dest}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-225-  fs.unlinkSync(src);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-271-    if (unitTest) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:272:      const unitTestPath = `http://localhost:8080/${unitTest.slice('http/tests/'.length)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-273-      const link =
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:274:          `http://localhost:8080/inspector-sources/debug/integration_test_runner.html?test=${unitTestPath}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-275-      console.log('1) Go to: ', link);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-284-  const args = [BLINK_TEST_PATH].concat(testArgs).concat(getTestFlags());
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js:285:  console.log(`Running web tests with args: ${args.join(' ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/npm_test.js-286-  childProcess.spawn(PYTHON, args, {stdio: 'inherit'});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-23-    '/**',
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:24:    `* @return {!${interfaceName}}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-25-    '*/',
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:26:    `export function create${componentClassCamelCased}() {`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:27:    `  return /** @type {!${interfaceName}} */ (document.createElement('${customElementTagName}'));`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-28-    '}',
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-35-  // the name needs to differ from the TypeScript name so there's no TS/Closure conflicts
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:36:  return `${className}ClosureInterface`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-37-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-57-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:58:  const paramNameIfRequired = docType === 'param' ? ` ${paramName}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-59-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-83-    const paramString = ['!', paramValue, nodeIsOptional ? '=' : ''].join('');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:84:    return `* @${docType} {${paramString}}${paramNameIfRequired}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-85-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-100-      // interfaces need the ! so they are non-nullable in Closure land
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:101:      output += `!${valueForTypeNode(internalType, true)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-102-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:103:      throw new Error(`Unsupported Array<X> type: ${ts.SyntaxKind[internalType.kind]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-104-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-107-    if (nodeIsOptional) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:108:      output = `(${output}|undefined)=`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-109-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-110-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:111:    return `* @${docType} {${output}}${paramNameIfRequired}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-112-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-119-    const paramString = ['(', paramValue, '|', 'undefined', ')='].join('');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:120:    return `* @${docType} {${paramString}}${paramNameIfRequired}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-121-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-136-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:137:  return `* @${docType} {${paramOptionalModifier}${paramValue}}${paramNameIfRequired}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-138-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-148-  output.push('// eslint-disable-next-line no-unused-vars');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:149:  output.push(`class ${generatedClassName} extends HTMLElement {`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-150-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-182-    output.push(jsDocForFunc.join('\n'));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:183:    output.push(indent(`${methodName}(${argsForFunc}) {}`, 2));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-184-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-190-    if (!getter.type) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:191:      throw new Error(`Found invalid getter with no return type: ${getterName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-192-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-207-    output.push(jsDocForFunc.join('\n'));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:208:    output.push(indent(`get ${getterName}() {}`, 2));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-209-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-215-    if (setter.parameters.length === 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:216:      throw new Error(`Found invalid setter with no parameter: ${setterName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-217-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-222-    if (!setterParamType) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:223:      throw new Error(`Found invalid setter with no explicit parameter type: ${setterName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-224-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-236-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:237:    output.push(indent(`set ${setterName}(${setterParamName}) {}`, 2));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-238-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-250-      if (!member.type) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:251:        throw new Error(`Interface member ${ts.SyntaxKind[member.kind]} did not have a type key, aborting.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-252-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-260-        if (nodeIsPrimitive(member.type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:261:          nodeValue = `(${nodeValue}|undefined)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-262-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:263:          nodeValue = `(!${nodeValue}|undefined)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-264-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-266-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:267:      output.push(`* ${keyName}:${nodeValue},`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-282-    if (!interfaceDec) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:283:      throw new Error(`Could not find interface: ${interfaceName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-284-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-292-    interfaceBits.push('// @ts-ignore we export this for Closure not TS');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts:293:    interfaceBits.push(`export let ${interfaceName};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/generate_closure.ts-294-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-24-    const modifier = isPrimitive ? '' : '!';
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts:25:    value = `Array.<${modifier}${valueForTypeNode(node.elementType)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-26-  } else if (node.kind === ts.SyntaxKind.NumberKeyword) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-55-        const value = valueForTypeNode(notNullNode);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts:56:        return `?${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-57-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-62-      const value = valueForTypeNode(notNullNode);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts:63:      return isFunctionParam ? `?${value}` : `!${value}|null`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-64-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-75-    if (returnType.includes('|')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts:76:      returnType = `(${returnType})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-77-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-87-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts:88:    value = `function(${params}): ${returnType}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-89-  } else if (ts.isTypeLiteralNode(node)) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-106-                        .map(member => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts:107:                          return member ? `${member.name}: ${member.value}` : null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-108-                        })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-111-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts:112:    return `{${members}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-113-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts:114:    throw new Error(`Unsupported node kind: ${ts.SyntaxKind[node.kind]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/value_for_type_node.ts-115-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/cli.ts-17-  const baseName = path.basename(inputFilePath, '.ts');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/cli.ts:18:  const outputFileName = `${baseName}_bridge.js`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/cli.ts-19-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/cli.ts-59-  if (!bridgeComponentPath || !fs.existsSync(bridgeComponentPath)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/cli.ts:60:    throw new Error(`Could not find bridgeComponent path ${bridgeComponentPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/cli.ts-61-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/walk_tree.ts-149-    const fileWithoutExt = path.basename(filePath, '.js');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/walk_tree.ts:150:    const sourceFile = `${fileWithoutExt}.ts`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/walk_tree.ts-151-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/walk_tree.ts-212-      throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/walk_tree.ts:213:          `Could not find definition for interface ${missingInterfaceName} in the source file or any of its imports.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/component_bridges/walk_tree.ts-214-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-29-    console.log('DevTools BUILD.gn checker detected errors!');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:30:    console.log(`There's an issue with: ${gnPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-31-    console.log(errors.join('\n'));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-46-  const gnVariable = 'generated_non_autostart_non_remote_modules';
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:47:  const lines = selectGNLines(`${gnVariable} = [`, ']');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-48-  if (!lines.length) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-56-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:57:  const missingModules = modules.filter(m => !text.includes(`${m}/${m}_module.js`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-58-  if (missingModules.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:59:    errors.push(`Check that you've included [${missingModules.join(', ')}] modules in: ` + gnVariable);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-60-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-66-  if (extraneousModules.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:67:    errors.push(`Found extraneous modules [${extraneousModules.join(', ')}] in: ` + gnVariable);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-68-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-93-        return (moduleJSON.modules || []).filter(fileName => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:94:          return fileName !== `${folderName}.js` && fileName !== `${folderName}-legacy.js`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-95-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-97-      buildGNPath => filename => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:98:        const relativePath = path.normalize(`${buildGNPath}/${filename}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:99:        return `"${relativePath}",`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-100-      });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-107-        return (moduleJSON.modules || []).filter(fileName => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:108:          return fileName === `${folderName}.js` || fileName === `${folderName}-legacy.js`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-109-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-111-      buildGNPath => filename => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:112:        const relativePath = path.normalize(`${buildGNPath}/${filename}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:113:        return `"${relativePath}",`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-114-      });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-119-  const excludedFiles = ['axe.js', 'formatter_worker/', 'third_party/lighthouse/'].map(path.normalize);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:120:  const lines = selectGNLines(`${gnVariable} = [`, ']').map(path.normalize);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-121-  if (!lines.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-122-    return [
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:123:      `Could not identify ${gnVariable} list in gn file`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-124-      'Please look at: ' + __filename,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-137-    function relativePathFromBuildGN(filename) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:138:      const relativePath = path.normalize(`front_end/${buildGNPath}/${filename}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:139:      return `"${relativePath}",`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-140-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-153-      traverseDirectoriesForModuleJSONFiles(
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:154:          path.join(folderName, nestedModuleName), `${buildGNPath}/${nestedModuleName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-155-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-163-    if (!gnFiles.has(file)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js:164:      errors.push(`Missing file in BUILD.gn for ${gnVariable}: ` + file);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/check_gn.js-165-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/get-mappings.ts-16-  const src = namespace.toLocaleLowerCase();
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/get-mappings.ts:17:  const externalModule = path.join(FRONT_END_FOLDER, src, `${src}.js`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/get-mappings.ts:18:  const legacy = path.join(FRONT_END_FOLDER, src, `${src}-legacy.js`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/get-mappings.ts-19-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/get-mappings.ts-20-  if (!(await stat(legacy))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/get-mappings.ts:21:    console.error(`Unable to find legacy file: ${legacy}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/get-mappings.ts-22-    process.exit(1);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts-31-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts:32:  console.error(`Unable to refactor declaration of type "${declaration.type}" named "${propertyName.name}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts-33-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts-73-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts:74:            console.error(`Nested field "${assignment.left.property.name}" detected! Requires manual changes.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts-75-            expression.comments = expression.comments || [];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts-161-async function main(refactoringNamespace: string, refactoringFileName: string) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts:162:  const pathName = path.join(FRONT_END_FOLDER, refactoringNamespace, `${refactoringFileName}.js`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts-163-  const source = await readFile(pathName, {encoding: 'utf-8'});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts-168-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts:169:  // console.log(`Succesfully written source to "${pathName}". Make sure that no other errors are reported before submitting!`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/refactor-to-es-module.ts-170-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/replace-internal-references.ts-34-        for (const [str, value] of mappings.entries()) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/replace-internal-references.ts:35:          const containsString = new RegExp(`${str}([^\\.\\w])`, 'g');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/replace-internal-references.ts-36-          const stringMatches = containsString.exec(comment.value);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/replace-internal-references.ts-146-  for (const srcFile of srcDir) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/replace-internal-references.ts:147:    if (srcFile === `${folder}.js` || srcFile === `${folder}-legacy.js` || !srcFile.endsWith('.js')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/replace-internal-references.ts-148-      continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/replace-internal-references.ts-151-    const distFileContents = await rewriteSource(pathName, srcFile, mappings, useExternalRefs);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/replace-internal-references.ts:152:    await writeFile(path.join(pathName, `${srcFile}`), distFileContents);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/replace-internal-references.ts-153-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-37-  while (expression.object.type === 'MemberExpression') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts:38:    name = `${(expression.property as any).name}${name && `.${name}` || ''}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-39-    expression = expression.object;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-41-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts:42:  return `${(expression.property as any).name}${name && `.${name}` || ''}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-43-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-64-          // UI.ARIAUtils.Foo
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts:65:          const fullName = `${computeNamespaceName(refactoringNamespace)}.${getFullTypeName(topLevelAssignment)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-66-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-68-            const usedInModuleJson = !!child_process.execSync(
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts:69:                `grep --include=\*module.json -r ${fullName} ${FRONT_END_FOLDER} || true`, {encoding: 'utf8'});
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-70-            const usedInLayoutTests =
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts:71:                !!child_process.execSync(`grep -r ${fullName} ${TEST_FOLDER} || true`, {encoding: 'utf8'});
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-72-            const usedInLayoutTestRunners = !!child_process.execSync(
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts:73:                `grep --include=\*test_runner\*.js -r ${fullName} ${FRONT_END_FOLDER} || true`, {encoding: 'utf8'});
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-74-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-119-          default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts:120:            throw new Error(`Unknown type: ${statement.declaration.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/remove-unused-global-exports.ts-121-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/move-side-effects-to-legacy.ts-85-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/move-side-effects-to-legacy.ts:86:      console.warn(`Unexpected expression in ${fileName}:`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/move-side-effects-to-legacy.ts-87-      console.warn(print(statement).code);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/move-side-effects-to-legacy.ts-100-      const innerNamespace = capitalizeFirstLetter(fileName).replace(/.js$/, '');
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/move-side-effects-to-legacy.ts:101:      statement.expression.right.name = `${targetNamespace}Module.${innerNamespace}.${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/move-side-effects-to-legacy.ts-102-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/move-side-effects-to-legacy.ts-138-  // Create a foo-legacy.js file
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/move-side-effects-to-legacy.ts:139:  const dstLegacy = path.join(pathName, `${folder}-legacy.js`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/migration/move-side-effects-to-legacy.ts-140-  const legacyContents = `// Copyright 2019 The Chromium Authors. All rights reserved.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-23-  try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js:24:    childProcess.execSync(`dot -O -Tsvg ${OUT_FILE_PATH}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-25-  } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js:26:    console.log(`Could not generate dot svg because: ${err}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-27-    console.log('Make sure you have graphviz installed (e.g. sudo apt install graphviz)');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-31-  startServer();
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js:32:  console.log(`Go to: http://localhost:${SERVER_PORT}/jquery_svg.html`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-33-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-62-
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js:63:      moduleToDependencyList.push(`${module} [width=${moduleSize}, height=${moduleSize} fontsize=${fontSize}];`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-64-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-66-        for (const d of moduleJSON.dependencies) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js:67:          moduleToDependencyList.push(`  ${module} -> ${d}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-68-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-83-    if (!path.resolve(absoluteFilePath).startsWith(__dirname)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js:84:      console.log(`File requested is outside of folder: ${__dirname}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js:85:      sendResponse(403, `403 - Access denied. File requested is outside of folder: ${__dirname}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-86-      return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-92-      if (!fileExists) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js:93:        console.log(`Cannot find file ${absoluteFilePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-94-        sendResponse(404, '404 - File not found');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-101-      if (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js:102:        console.log(`Unable to read local file ${absoluteFilePath}:`, err);
chromium-84.0.4147.105/third_party/devtools-frontend/src/scripts/visualize_deps/run_visualize.js-103-        sendResponse(500, '500 - Internal Server Error');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Modules.cc-175-          lldb::eSectionTypeCode, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Modules.cc:176:  lldb_private::Address addr(section, offset);
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Modules.cc-177-  auto resolved = module->ResolveSymbolContextForAddress(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Modules.cc-217-            lldb::eSectionTypeCode, false);
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Modules.cc:218:    lldb_private::Address addr(section, offset);
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Modules.cc-219-    if (lt->FindLineEntryByAddress(addr, le)) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Variables.cc-153-      return llvm::createStringError(llvm::inconvertibleErrorCode(),
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Variables.cc:154:                                     "Unimplemented Wasm Address Space '%u'",
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Variables.cc-155-                                     variable.address_space);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.h-46- private:
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.h:47:  llvm::Error ParseAddr();
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.h-48-  llvm::Error ParseFbReg();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Util.h-20-class ClangASTContext;
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Util.h:21:namespace wasm {
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/Util.h-22-class ObjectFileWasm;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc-44-
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc:45:llvm::Error symbol_server::DWARFLocationParser::ParseAddr() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc-46-  uint64_t address = opcodes_.GetAddress(&offset_);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc-309-      return llvm::createStringError(llvm::inconvertibleErrorCode(),
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc:310:                                     "Unimplemented wasm location type %llu",
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc-311-                                     mem_type);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc-313-      return llvm::createStringError(llvm::inconvertibleErrorCode(),
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc:314:                                     "Unknown wasm location type %llu",
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc-315-                                     mem_type);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc-322-      case DW_OP_addr:
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc:323:        return ParseAddr();
chromium-84.0.4147.105/third_party/devtools-frontend/src/back_end/CXXDWARFSymbols/lib/DWARFLocationParser.cc-324-      case DW_OP_deref:
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/he/he.js-54-	var regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/he/he.js:55:	var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/he/he.js-56-	var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/he/he.js-289-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/he/he.js:290:			// If we’re still here, `if ($7)` is implied; it’s an ambiguous
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/he/he.js-291-			// ampersand for sure. https://mths.be/notes/ambiguous-ampersands
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/he/he.js-307-		return string.replace(regexEscape, function($0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/he/he.js:308:			// Note: there is no need to check `has(escapeMap, $0)` here.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/he/he.js-309-			return escapeMap[$0];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/gensync/index.js-123-  if (allowUndefined) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/gensync/index.js:124:    msg = `Expected opts.${name} to be either a ${type}, or undefined.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/gensync/index.js-125-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/gensync/index.js:126:    msg = `Expected opts.${name} to be a ${type}.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/gensync/index.js-127-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md-88-watcher
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md:89:  .on('add', path => log(`File ${path} has been added`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md:90:  .on('change', path => log(`File ${path} has been changed`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md:91:  .on('unlink', path => log(`File ${path} has been removed`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md-92-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md-94-watcher
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md:95:  .on('addDir', path => log(`Directory ${path} has been added`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md:96:  .on('unlinkDir', path => log(`Directory ${path} has been removed`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md:97:  .on('error', error => log(`Watcher error: ${error}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md-98-  .on('ready', () => log('Initial scan complete. Ready for changes'))
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md-105-watcher.on('change', (path, stats) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md:106:  if (stats) console.log(`File ${path} changed size to ${stats.size}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/README.md-107-});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/lib/constants.js-33-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/lib/constants.js:34:exports.DOT_SLASH = `.${sep}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/lib/constants.js-35-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/index.js-93-  if (!paths.every(p => typeof p === STRING_TYPE)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/index.js:94:    throw new TypeError(`Non-string provided as watch path: ${paths}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/index.js-95-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/index.js-501-  ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/index.js:502:    this[`_${key}`].clear();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/index.js-503-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/readdirp/README.md-17-  const {path} = entry;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/readdirp/README.md:18:  console.log(`${JSON.stringify({path})}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/readdirp/README.md-19-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/readdirp/README.md-25-    const {path, stats: {size}} = entry;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/readdirp/README.md:26:    console.log(`${JSON.stringify({path, size})}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/readdirp/README.md-27-  })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/readdirp/index.js-232-  } else if (type && !ALL_TYPES.includes(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/readdirp/index.js:233:    throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/readdirp/index.js-234-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js-9-if (process.platform !== 'darwin') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js:10:  throw new Error(`Module 'fsevents' is not compatible with platform '${process.platform}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js-11-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js-17-  if (typeof path !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js:18:    throw new TypeError(`fsevents argument 1 must be a string and not a ${typeof path}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js-19-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js-20-  if (typeof handler !== 'function') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js:21:    throw new TypeError(`fsevents argument 2 must be a function and not a ${typeof handler}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js-24-  let instance = Native.start(path, handler);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js:25:  if (!instance) throw new Error(`could not watch: ${path}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chokidar/node_modules/fsevents/fsevents.js-26-  return () => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs.map:1:{"version":3,"file":"index.mjs.map","sources":["src/unicode/ids.ts","src/unicode/property-data.ts","src/unicode/index.ts","src/reader.ts","src/regexp-syntax-error.ts","src/validator.ts","src/parser.ts","src/visitor.ts","src/index.ts"],"sourcesContent":["/* Generated from DerivedCoreProperties-11.0.0.txt */\nexport function isIdStart(cp: number): boolean {\n    if (cp < 0x41) return false\n    if (cp < 0x5b) return true\n    if (cp < 0x61) return false\n    if (cp < 0x7b) return true\n    return isLargeIdStart(cp)\n}\nexport function isIdContinue(cp: number): boolean {\n    if (cp < 0x30) return false\n    if (cp < 0x3a) return true\n    if (cp < 0x41) return false\n    if (cp < 0x5b) return true\n    if (cp === 0x5f) return true\n    if (cp < 0x61) return false\n    if (cp < 0x7b) return true\n    return isLargeIdStart(cp) || isLargeIdContinue(cp)\n}\n\nfunction isLargeIdStart(cp: number): boolean {\n    if (cp < 0x30a1) {\n        if (cp < 0xec0) {\n            if (cp < 0xa35) {\n                if (cp < 0x6e5) {\n                    if (cp < 0x37a) {\n                        if (cp < 0x294) {\n                            if (cp < 0xf8) {\n                                if (cp === 0xaa) return true\n                                if (cp === 0xb5) return true\n                                if (cp === 0xba) return true\n                                if (cp < 0xc0) return false\n                                if (cp < 0xd7) return true\n                                if (cp < 0xd8) return false\n                                if (cp < 0xf7) return true\n                                return false\n                            }\n                            if (cp < 0x1bb) return true\n                            if (cp === 0x1bb) return true\n                            if (cp < 0x1bc) return false\n                            if (cp < 0x1c0) return true\n                            if (cp < 0x1c0) return false\n                            if (cp < 0x1c4) return true\n                            if (cp < 0x1c4) return false\n                            if (cp < 0x294) return true\n                            return false\n                        }\n                        if (cp < 0x2ec) {\n                            if (cp === 0x294) return true\n                            if (cp < 0x295) return false\n                            if (cp < 0x2b0) return true\n                            if (cp < 0x2b0) return false\n                            if (cp < 0x2c2) return true\n                            if (cp < 0x2c6) return false\n                            if (cp < 0x2d2) return true\n                            if (cp < 0x2e0) return false\n                            if (cp < 0x2e5) return true\n                            return false\n                        }\n                        if (cp === 0x2ec) return true\n                        if (cp === 0x2ee) return true\n                        if (cp < 0x370) return false\n                        if (cp < 0x374) return true\n                        if (cp === 0x374) return true\n                        if (cp < 0x376) return false\n                        if (cp < 0x378) return true\n                        return false\n                    }\n                    if (cp < 0x531) {\n                        if (cp < 0x38c) {\n                            if (cp === 0x37a) return true\n                            if (cp < 0x37b) return false\n                            if (cp < 0x37e) return true\n                            if (cp === 0x37f) return true\n                            if (cp === 0x386) return true\n                            if (cp < 0x388) return false\n                            if (cp < 0x38b) return true\n                            return false\n                        }\n                        if (cp === 0x38c) return true\n                        if (cp < 0x38e) return false\n                        if (cp < 0x3a2) return true\n                        if (cp < 0x3a3) return false\n                        if (cp < 0x3f6) return true\n                        if (cp < 0x3f7) return false\n                        if (cp < 0x482) return true\n                        if (cp < 0x48a) return false\n                        if (cp < 0x530) return true\n                        return false\n                    }\n                    if (cp < 0x620) {\n                        if (cp < 0x531) return false\n                        if (cp < 0x557) return true\n                        if (cp === 0x559) return true\n                        if (cp < 0x560) return false\n                        if (cp < 0x589) return true\n                        if (cp < 0x5d0) return false\n                        if (cp < 0x5eb) return true\n                        if (cp < 0x5ef) return false\n                        if (cp < 0x5f3) return true\n                        return false\n                    }\n                    if (cp < 0x640) return true\n                    if (cp === 0x640) return true\n                    if (cp < 0x641) return false\n                    if (cp < 0x64b) return true\n                    if (cp < 0x66e) return false\n                    if (cp < 0x670) return true\n                    if (cp < 0x671) return false\n                    if (cp < 0x6d4) return true\n                    if (cp === 0x6d5) return true\n                    return false\n                }\n                if (cp < 0x950) {\n                    if (cp < 0x7fa) {\n                        if (cp < 0x712) {\n                            if (cp < 0x6e5) return false\n                            if (cp < 0x6e7) return true\n                            if (cp < 0x6ee) return false\n                            if (cp < 0x6f0) return true\n                            if (cp < 0x6fa) return false\n                            if (cp < 0x6fd) return true\n                            if (cp === 0x6ff) return true\n                            if (cp === 0x710) return true\n                            return false\n                        }\n                        if (cp < 0x730) return true\n                        if (cp < 0x74d) return false\n                        if (cp < 0x7a6) return true\n                        if (cp === 0x7b1) return true\n                        if (cp < 0x7ca) return false\n                        if (cp < 0x7eb) return true\n                        if (cp < 0x7f4) return false\n                        if (cp < 0x7f6) return true\n                        return false\n                    }\n                    if (cp < 0x840) {\n                        if (cp === 0x7fa) return true\n                        if (cp < 0x800) return false\n                        if (cp < 0x816) return true\n                        if (cp === 0x81a) return true\n                        if (cp === 0x824) return true\n                        if (cp === 0x828) return true\n                        return false\n                    }\n                    if (cp < 0x859) return true\n                    if (cp < 0x860) return false\n                    if (cp < 0x86b) return true\n                    if (cp < 0x8a0) return false\n                    if (cp < 0x8b5) return true\n                    if (cp < 0x8b6) return false\n                    if (cp < 0x8be) return true\n                    if (cp < 0x904) return false\n                    if (cp < 0x93a) return true\n                    if (cp === 0x93d) return true\n                    return false\n                }\n                if (cp < 0x9bd) {\n                    if (cp < 0x98f) {\n                        if (cp === 0x950) return true\n                        if (cp < 0x958) return false\n                        if (cp < 0x962) return true\n                        if (cp === 0x971) return true\n                        if (cp < 0x972) return false\n                        if (cp < 0x981) return true\n                        if (cp < 0x985) return false\n                        if (cp < 0x98d) return true\n                        return false\n                    }\n                    if (cp < 0x991) return true\n                    if (cp < 0x993) return false\n                    if (cp < 0x9a9) return true\n                    if (cp < 0x9aa) return false\n                    if (cp < 0x9b1) return true\n                    if (cp === 0x9b2) return true\n                    if (cp < 0x9b6) return false\n                    if (cp < 0x9ba) return true\n                    return false\n                }\n                if (cp < 0x9fc) {\n                    if (cp === 0x9bd) return true\n                    if (cp === 0x9ce) return true\n                    if (cp < 0x9dc) return false\n                    if (cp < 0x9de) return true\n                    if (cp < 0x9df) return false\n                    if (cp < 0x9e2) return true\n                    if (cp < 0x9f0) return false\n                    if (cp < 0x9f2) return true\n                    return false\n                }\n                if (cp === 0x9fc) return true\n                if (cp < 0xa05) return false\n                if (cp < 0xa0b) return true\n                if (cp < 0xa0f) return false\n                if (cp < 0xa11) return true\n                if (cp < 0xa13) return false\n                if (cp < 0xa29) return true\n                if (cp < 0xa2a) return false\n                if (cp < 0xa31) return true\n                if (cp < 0xa32) return false\n                if (cp < 0xa34) return true\n                return false\n            }\n            if (cp < 0xc60) {\n                if (cp < 0xb3d) {\n                    if (cp < 0xab5) {\n                        if (cp < 0xa85) {\n                            if (cp < 0xa35) return false\n                            if (cp < 0xa37) return true\n                            if (cp < 0xa38) return false\n                            if (cp < 0xa3a) return true\n                            if (cp < 0xa59) return false\n                            if (cp < 0xa5d) return true\n                            if (cp === 0xa5e) return true\n                            if (cp < 0xa72) return false\n                            if (cp < 0xa75) return true\n                            return false\n                        }\n                        if (cp < 0xa8e) return true\n                        if (cp < 0xa8f) return false\n                        if (cp < 0xa92) return true\n                        if (cp < 0xa93) return false\n                        if (cp < 0xaa9) return true\n                        if (cp < 0xaaa) return false\n                        if (cp < 0xab1) return true\n                        if (cp < 0xab2) return false\n                        if (cp < 0xab4) return true\n                        return false\n                    }\n                    if (cp < 0xb05) {\n                        if (cp < 0xab5) return false\n                        if (cp < 0xaba) return true\n                        if (cp === 0xabd) return true\n                        if (cp === 0xad0) return true\n                        if (cp < 0xae0) return false\n                        if (cp < 0xae2) return true\n                        if (cp === 0xaf9) return true\n                        return false\n                    }\n                    if (cp < 0xb0d) return true\n                    if (cp < 0xb0f) return false\n                    if (cp < 0xb11) return true\n                    if (cp < 0xb13) return false\n                    if (cp < 0xb29) return true\n                    if (cp < 0xb2a) return false\n                    if (cp < 0xb31) return true\n                    if (cp < 0xb32) return false\n                    if (cp < 0xb34) return true\n                    if (cp < 0xb35) return false\n                    if (cp < 0xb3a) return true\n                    return false\n                }\n                if (cp < 0xb9e) {\n                    if (cp < 0xb85) {\n                        if (cp === 0xb3d) return true\n                        if (cp < 0xb5c) return false\n                        if (cp < 0xb5e) return true\n                        if (cp < 0xb5f) return false\n                        if (cp < 0xb62) return true\n                        if (cp === 0xb71) return true\n                        if (cp === 0xb83) return true\n                        return false\n                    }\n                    if (cp < 0xb8b) return true\n                    if (cp < 0xb8e) return false\n                    if (cp < 0xb91) return true\n                    if (cp < 0xb92) return false\n                    if (cp < 0xb96) return true\n                    if (cp < 0xb99) return false\n                    if (cp < 0xb9b) return true\n                    if (cp === 0xb9c) return true\n                    return false\n                }\n                if (cp < 0xc05) {\n                    if (cp < 0xb9e) return false\n                    if (cp < 0xba0) return true\n                    if (cp < 0xba3) return false\n                    if (cp < 0xba5) return true\n                    if (cp < 0xba8) return false\n                    if (cp < 0xbab) return true\n                    if (cp < 0xbae) return false\n                    if (cp < 0xbba) return true\n                    if (cp === 0xbd0) return true\n                    return false\n                }\n                if (cp < 0xc0d) return true\n                if (cp < 0xc0e) return false\n                if (cp < 0xc11) return true\n                if (cp < 0xc12) return false\n                if (cp < 0xc29) return true\n                if (cp < 0xc2a) return false\n                if (cp < 0xc3a) return true\n                if (cp === 0xc3d) return true\n                if (cp < 0xc58) return false\n                if (cp < 0xc5b) return true\n                return false\n            }\n            if (cp < 0xdb3) {\n                if (cp < 0xcf1) {\n                    if (cp < 0xcaa) {\n                        if (cp < 0xc60) return false\n                        if (cp < 0xc62) return true\n                        if (cp === 0xc80) return true\n                        if (cp < 0xc85) return false\n                        if (cp < 0xc8d) return true\n                        if (cp < 0xc8e) return false\n                        if (cp < 0xc91) return true\n                        if (cp < 0xc92) return false\n                        if (cp < 0xca9) return true\n                        return false\n                    }\n                    if (cp < 0xcb4) return true\n                    if (cp < 0xcb5) return false\n                    if (cp < 0xcba) return true\n                    if (cp === 0xcbd) return true\n                    if (cp === 0xcde) return true\n                    if (cp < 0xce0) return false\n                    if (cp < 0xce2) return true\n                    return false\n                }\n                if (cp < 0xd4e) {\n                    if (cp < 0xcf1) return false\n                    if (cp < 0xcf3) return true\n                    if (cp < 0xd05) return false\n                    if (cp < 0xd0d) return true\n                    if (cp < 0xd0e) return false\n                    if (cp < 0xd11) return true\n                    if (cp < 0xd12) return false\n                    if (cp < 0xd3b) return true\n                    if (cp === 0xd3d) return true\n                    return false\n                }\n                if (cp === 0xd4e) return true\n                if (cp < 0xd54) return false\n                if (cp < 0xd57) return true\n                if (cp < 0xd5f) return false\n                if (cp < 0xd62) return true\n                if (cp < 0xd7a) return false\n                if (cp < 0xd80) return true\n                if (cp < 0xd85) return false\n                if (cp < 0xd97) return true\n                if (cp < 0xd9a) return false\n                if (cp < 0xdb2) return true\n                return false\n            }\n            if (cp < 0xe8a) {\n                if (cp < 0xe40) {\n                    if (cp < 0xdb3) return false\n                    if (cp < 0xdbc) return true\n                    if (cp === 0xdbd) return true\n                    if (cp < 0xdc0) return false\n                    if (cp < 0xdc7) return true\n                    if (cp < 0xe01) return false\n                    if (cp < 0xe31) return true\n                    if (cp < 0xe32) return false\n                    if (cp < 0xe34) return true\n                    return false\n                }\n                if (cp < 0xe46) return true\n                if (cp === 0xe46) return true\n                if (cp < 0xe81) return false\n                if (cp < 0xe83) return true\n                if (cp === 0xe84) return true\n                if (cp < 0xe87) return false\n                if (cp < 0xe89) return true\n                return false\n            }\n            if (cp < 0xea5) {\n                if (cp === 0xe8a) return true\n                if (cp === 0xe8d) return true\n                if (cp < 0xe94) return false\n                if (cp < 0xe98) return true\n                if (cp < 0xe99) return false\n                if (cp < 0xea0) return true\n                if (cp < 0xea1) return false\n                if (cp < 0xea4) return true\n                return false\n            }\n            if (cp === 0xea5) return true\n            if (cp === 0xea7) return true\n            if (cp < 0xeaa) return false\n            if (cp < 0xeac) return true\n            if (cp < 0xead) return false\n            if (cp < 0xeb1) return true\n            if (cp < 0xeb2) return false\n            if (cp < 0xeb4) return true\n            if (cp === 0xebd) return true\n            return false\n        }\n        if (cp < 0x1ce9) {\n            if (cp < 0x166f) {\n                if (cp < 0x10fd) {\n                    if (cp < 0x105a) {\n                        if (cp < 0xf49) {\n                            if (cp < 0xec0) return false\n                            if (cp < 0xec5) return true\n                            if (cp === 0xec6) return true\n                            if (cp < 0xedc) return false\n                            if (cp < 0xee0) return true\n                            if (cp === 0xf00) return true\n                            if (cp < 0xf40) return false\n                            if (cp < 0xf48) return true\n                            return false\n                        }\n                        if (cp < 0xf6d) return true\n                        if (cp < 0xf88) return false\n                        if (cp < 0xf8d) return true\n                        if (cp < 0x1000) return false\n                        if (cp < 0x102b) return true\n                        if (cp === 0x103f) return true\n                        if (cp < 0x1050) return false\n                        if (cp < 0x1056) return true\n                        return false\n                    }\n                    if (cp < 0x108e) {\n                        if (cp < 0x105a) return false\n                        if (cp < 0x105e) return true\n                        if (cp === 0x1061) return true\n                        if (cp < 0x1065) return false\n                        if (cp < 0x1067) return true\n                        if (cp < 0x106e) return false\n                        if (cp < 0x1071) return true\n                        if (cp < 0x1075) return false\n                        if (cp < 0x1082) return true\n                        return false\n                    }\n                    if (cp === 0x108e) return true\n                    if (cp < 0x10a0) return false\n                    if (cp < 0x10c6) return true\n                    if (cp === 0x10c7) return true\n                    if (cp === 0x10cd) return true\n                    if (cp < 0x10d0) return false\n                    if (cp < 0x10fb) return true\n                    if (cp === 0x10fc) return true\n                    return false\n                }\n                if (cp < 0x12b8) {\n                    if (cp < 0x125a) {\n                        if (cp < 0x10fd) return false\n                        if (cp < 0x1100) return true\n                        if (cp < 0x1100) return false\n                        if (cp < 0x1249) return true\n                        if (cp < 0x124a) return false\n                        if (cp < 0x124e) return true\n                        if (cp < 0x1250) return false\n                        if (cp < 0x1257) return true\n                        if (cp === 0x1258) return true\n                        return false\n                    }\n                    if (cp < 0x125e) return true\n                    if (cp < 0x1260) return false\n                    if (cp < 0x1289) return true\n                    if (cp < 0x128a) return false\n                    if (cp < 0x128e) return true\n                    if (cp < 0x1290) return false\n                    if (cp < 0x12b1) return true\n                    if (cp < 0x12b2) return false\n                    if (cp < 0x12b6) return true\n                    return false\n                }\n                if (cp < 0x1312) {\n                    if (cp < 0x12b8) return false\n                    if (cp < 0x12bf) return true\n                    if (cp === 0x12c0) return true\n                    if (cp < 0x12c2) return false\n                    if (cp < 0x12c6) return true\n                    if (cp < 0x12c8) return false\n                    if (cp < 0x12d7) return true\n                    if (cp < 0x12d8) return false\n                    if (cp < 0x1311) return true\n                    return false\n                }\n                if (cp < 0x1316) return true\n                if (cp < 0x1318) return false\n                if (cp < 0x135b) return true\n                if (cp < 0x1380) return false\n                if (cp < 0x1390) return true\n                if (cp < 0x13a0) return false\n                if (cp < 0x13f6) return true\n                if (cp < 0x13f8) return false\n                if (cp < 0x13fe) return true\n                if (cp < 0x1401) return false\n                if (cp < 0x166d) return true\n                return false\n            }\n            if (cp < 0x18b0) {\n                if (cp < 0x176e) {\n                    if (cp < 0x1700) {\n                        if (cp < 0x166f) return false\n                        if (cp < 0x1680) return true\n                        if (cp < 0x1681) return false\n                        if (cp < 0x169b) return true\n                        if (cp < 0x16a0) return false\n                        if (cp < 0x16eb) return true\n                        if (cp < 0x16ee) return false\n                        if (cp < 0x16f1) return true\n                        if (cp < 0x16f1) return false\n                        if (cp < 0x16f9) return true\n                        return false\n                    }\n                    if (cp < 0x170d) return true\n                    if (cp < 0x170e) return false\n                    if (cp < 0x1712) return true\n                    if (cp < 0x1720) return false\n                    if (cp < 0x1732) return true\n                    if (cp < 0x1740) return false\n                    if (cp < 0x1752) return true\n                    if (cp < 0x1760) return false\n                    if (cp < 0x176d) return true\n                    return false\n                }\n                if (cp < 0x1843) {\n                    if (cp < 0x176e) return false\n                    if (cp < 0x1771) return true\n                    if (cp < 0x1780) return false\n                    if (cp < 0x17b4) return true\n                    if (cp === 0x17d7) return true\n                    if (cp === 0x17dc) return true\n                    if (cp < 0x1820) return false\n                    if (cp < 0x1843) return true\n                    return false\n                }\n                if (cp === 0x1843) return true\n                if (cp < 0x1844) return false\n                if (cp < 0x1879) return true\n                if (cp < 0x1880) return false\n                if (cp < 0x1885) return true\n                if (cp < 0x1885) return false\n                if (cp < 0x1887) return true\n                if (cp < 0x1887) return false\n                if (cp < 0x18a9) return true\n                if (cp === 0x18aa) return true\n                return false\n            }\n            if (cp < 0x1b45) {\n                if (cp < 0x19b0) {\n                    if (cp < 0x18b0) return false\n                    if (cp < 0x18f6) return true\n                    if (cp < 0x1900) return false\n                    if (cp < 0x191f) return true\n                    if (cp < 0x1950) return false\n                    if (cp < 0x196e) return true\n                    if (cp < 0x1970) return false\n                    if (cp < 0x1975) return true\n                    if (cp < 0x1980) return false\n                    if (cp < 0x19ac) return true\n                    return false\n                }\n                if (cp < 0x19ca) return true\n                if (cp < 0x1a00) return false\n                if (cp < 0x1a17) return true\n                if (cp < 0x1a20) return false\n                if (cp < 0x1a55) return true\n                if (cp === 0x1aa7) return true\n                if (cp < 0x1b05) return false\n                if (cp < 0x1b34) return true\n                return false\n            }\n            if (cp < 0x1c4d) {\n                if (cp < 0x1b45) return false\n                if (cp < 0x1b4c) return true\n                if (cp < 0x1b83) return false\n                if (cp < 0x1ba1) return true\n                if (cp < 0x1bae) return false\n                if (cp < 0x1bb0) return true\n                if (cp < 0x1bba) return false\n                if (cp < 0x1be6) return true\n                if (cp < 0x1c00) return false\n                if (cp < 0x1c24) return true\n                return false\n            }\n            if (cp < 0x1c50) return true\n            if (cp < 0x1c5a) return false\n            if (cp < 0x1c78) return true\n            if (cp < 0x1c78) return false\n            if (cp < 0x1c7e) return true\n            if (cp < 0x1c80) return false\n            if (cp < 0x1c89) return true\n            if (cp < 0x1c90) return false\n            if (cp < 0x1cbb) return true\n            if (cp < 0x1cbd) return false\n            if (cp < 0x1cc0) return true\n            return false\n        }\n        if (cp < 0x212f) {\n            if (cp < 0x1fc2) {\n                if (cp < 0x1f18) {\n                    if (cp < 0x1d6b) {\n                        if (cp < 0x1ce9) return false\n                        if (cp < 0x1ced) return true\n                        if (cp < 0x1cee) return false\n                        if (cp < 0x1cf2) return true\n                        if (cp < 0x1cf5) return false\n                        if (cp < 0x1cf7) return true\n                        if (cp < 0x1d00) return false\n                        if (cp < 0x1d2c) return true\n                        if (cp < 0x1d2c) return false\n                        if (cp < 0x1d6b) return true\n                        return false\n                    }\n                    if (cp < 0x1d78) return true\n                    if (cp === 0x1d78) return true\n                    if (cp < 0x1d79) return false\n                    if (cp < 0x1d9b) return true\n                    if (cp < 0x1d9b) return false\n                    if (cp < 0x1dc0) return true\n                    if (cp < 0x1e00) return false\n                    if (cp < 0x1f16) return true\n                    return false\n                }\n                if (cp < 0x1f5b) {\n                    if (cp < 0x1f18) return false\n                    if (cp < 0x1f1e) return true\n                    if (cp < 0x1f20) return false\n                    if (cp < 0x1f46) return true\n                    if (cp < 0x1f48) return false\n                    if (cp < 0x1f4e) return true\n                    if (cp < 0x1f50) return false\n                    if (cp < 0x1f58) return true\n                    if (cp === 0x1f59) return true\n                    return false\n                }\n                if (cp === 0x1f5b) return true\n                if (cp === 0x1f5d) return true\n                if (cp < 0x1f5f) return false\n                if (cp < 0x1f7e) return true\n                if (cp < 0x1f80) return false\n                if (cp < 0x1fb5) return true\n                if (cp < 0x1fb6) return false\n                if (cp < 0x1fbd) return true\n                if (cp === 0x1fbe) return true\n                return false\n            }\n            if (cp < 0x2102) {\n                if (cp < 0x1ff2) {\n                    if (cp < 0x1fc2) return false\n                    if (cp < 0x1fc5) return true\n                    if (cp < 0x1fc6) return false\n                    if (cp < 0x1fcd) return true\n                    if (cp < 0x1fd0) return false\n                    if (cp < 0x1fd4) return true\n                    if (cp < 0x1fd6) return false\n                    if (cp < 0x1fdc) return true\n                    if (cp < 0x1fe0) return false\n                    if (cp < 0x1fed) return true\n                    return false\n                }\n                if (cp < 0x1ff5) return true\n                if (cp < 0x1ff6) return false\n                if (cp < 0x1ffd) return true\n                if (cp === 0x2071) return true\n                if (cp === 0x207f) return true\n                if (cp < 0x2090) return false\n                if (cp < 0x209d) return true\n                return false\n            }\n            if (cp < 0x2119) {\n                if (cp === 0x2102) return true\n                if (cp === 0x2107) return true\n                if (cp < 0x210a) return false\n                if (cp < 0x2114) return true\n                if (cp === 0x2115) return true\n                if (cp === 0x2118) return true\n                return false\n            }\n            if (cp < 0x211e) return true\n            if (cp === 0x2124) return true\n            if (cp === 0x2126) return true\n            if (cp === 0x2128) return true\n            if (cp < 0x212a) return false\n            if (cp < 0x212e) return true\n            if (cp === 0x212e) return true\n            return false\n        }\n        if (cp < 0x2d80) {\n            if (cp < 0x2c30) {\n                if (cp < 0x214e) {\n                    if (cp < 0x212f) return false\n                    if (cp < 0x2135) return true\n                    if (cp < 0x2135) return false\n                    if (cp < 0x2139) return true\n                    if (cp === 0x2139) return true\n                    if (cp < 0x213c) return false\n                    if (cp < 0x2140) return true\n                    if (cp < 0x2145) return false\n                    if (cp < 0x214a) return true\n                    return false\n                }\n                if (cp === 0x214e) return true\n                if (cp < 0x2160) return false\n                if (cp < 0x2183) return true\n                if (cp < 0x2183) return false\n                if (cp < 0x2185) return true\n                if (cp < 0x2185) return false\n                if (cp < 0x2189) return true\n                if (cp < 0x2c00) return false\n                if (cp < 0x2c2f) return true\n                return false\n            }\n            if (cp < 0x2cf2) {\n                if (cp < 0x2c30) return false\n                if (cp < 0x2c5f) return true\n                if (cp < 0x2c60) return false\n                if (cp < 0x2c7c) return true\n                if (cp < 0x2c7c) return false\n                if (cp < 0x2c7e) return true\n                if (cp < 0x2c7e) return false\n                if (cp < 0x2ce5) return true\n                if (cp < 0x2ceb) return false\n                if (cp < 0x2cef) return true\n                return false\n            }\n            if (cp < 0x2cf4) return true\n            if (cp < 0x2d00) return false\n            if (cp < 0x2d26) return true\n            if (cp === 0x2d27) return true\n            if (cp === 0x2d2d) return true\n            if (cp < 0x2d30) return false\n            if (cp < 0x2d68) return true\n            if (cp === 0x2d6f) return true\n            return false\n        }\n        if (cp < 0x3006) {\n            if (cp < 0x2dc0) {\n                if (cp < 0x2d80) return false\n                if (cp < 0x2d97) return true\n                if (cp < 0x2da0) return false\n                if (cp < 0x2da7) return true\n                if (cp < 0x2da8) return false\n                if (cp < 0x2daf) return true\n                if (cp < 0x2db0) return false\n                if (cp < 0x2db7) return true\n                if (cp < 0x2db8) return false\n                if (cp < 0x2dbf) return true\n                return false\n            }\n            if (cp < 0x2dc7) return true\n            if (cp < 0x2dc8) return false\n            if (cp < 0x2dcf) return true\n            if (cp < 0x2dd0) return false\n            if (cp < 0x2dd7) return true\n            if (cp < 0x2dd8) return false\n            if (cp < 0x2ddf) return true\n            if (cp === 0x3005) return true\n            return false\n        }\n        if (cp < 0x303b) {\n            if (cp === 0x3006) return true\n            if (cp === 0x3007) return true\n            if (cp < 0x3021) return false\n            if (cp < 0x302a) return true\n            if (cp < 0x3031) return false\n            if (cp < 0x3036) return true\n            if (cp < 0x3038) return false\n            if (cp < 0x303b) return true\n            return false\n        }\n        if (cp === 0x303b) return true\n        if (cp === 0x303c) return true\n        if (cp < 0x3041) return false\n        if (cp < 0x3097) return true\n        if (cp < 0x309b) return false\n        if (cp < 0x309d) return true\n        if (cp < 0x309d) return false\n        if (cp < 0x309f) return true\n        if (cp === 0x309f) return true\n        return false\n    }\n    if (cp < 0x10b60) {\n        if (cp < 0xd7b0) {\n            if (cp < 0xa882) {\n                if (cp < 0xa67f) {\n                    if (cp < 0xa015) {\n                        if (cp < 0x31a0) {\n                            if (cp < 0x30a1) return false\n                            if (cp < 0x30fb) return true\n                            if (cp < 0x30fc) return false\n                            if (cp < 0x30ff) return true\n                            if (cp === 0x30ff) return true\n                            if (cp < 0x3105) return false\n                            if (cp < 0x3130) return true\n                            if (cp < 0x3131) return false\n                            if (cp < 0x318f) return true\n                            return false\n                        }\n                        if (cp < 0x31bb) return true\n                        if (cp < 0x31f0) return false\n                        if (cp < 0x3200) return true\n                        if (cp < 0x3400) return false\n                        if (cp < 0x4db6) return true\n                        if (cp < 0x4e00) return false\n                        if (cp < 0x9ff0) return true\n                        if (cp < 0xa000) return false\n                        if (cp < 0xa015) return true\n                        return false\n                    }\n                    if (cp < 0xa60c) {\n                        if (cp === 0xa015) return true\n                        if (cp < 0xa016) return false\n                        if (cp < 0xa48d) return true\n                        if (cp < 0xa4d0) return false\n                        if (cp < 0xa4f8) return true\n                        if (cp < 0xa4f8) return false\n                        if (cp < 0xa4fe) return true\n                        if (cp < 0xa500) return false\n                        if (cp < 0xa60c) return true\n                        return false\n                    }\n                    if (cp === 0xa60c) return true\n                    if (cp < 0xa610) return false\n                    if (cp < 0xa620) return true\n                    if (cp < 0xa62a) return false\n                    if (cp < 0xa62c) return true\n                    if (cp < 0xa640) return false\n                    if (cp < 0xa66e) return true\n                    if (cp === 0xa66e) return true\n                    return false\n                }\n                if (cp < 0xa78b) {\n                    if (cp < 0xa717) {\n                        if (cp === 0xa67f) return true\n                        if (cp < 0xa680) return false\n                        if (cp < 0xa69c) return true\n                        if (cp < 0xa69c) return false\n                        if (cp < 0xa69e) return true\n                        if (cp < 0xa6a0) return false\n                        if (cp < 0xa6e6) return true\n                        if (cp < 0xa6e6) return false\n                        if (cp < 0xa6f0) return true\n                        return false\n                    }\n                    if (cp < 0xa720) return true\n                    if (cp < 0xa722) return false\n                    if (cp < 0xa770) return true\n                    if (cp === 0xa770) return true\n                    if (cp < 0xa771) return false\n                    if (cp < 0xa788) return true\n                    if (cp === 0xa788) return true\n                    return false\n                }\n                if (cp < 0xa7fa) {\n                    if (cp < 0xa78b) return false\n                    if (cp < 0xa78f) return true\n                    if (cp === 0xa78f) return true\n                    if (cp < 0xa790) return false\n                    if (cp < 0xa7ba) return true\n                    if (cp === 0xa7f7) return true\n                    if (cp < 0xa7f8) return false\n                    if (cp < 0xa7fa) return true\n                    return false\n                }\n                if (cp === 0xa7fa) return true\n                if (cp < 0xa7fb) return false\n                if (cp < 0xa802) return true\n                if (cp < 0xa803) return false\n                if (cp < 0xa806) return true\n                if (cp < 0xa807) return false\n                if (cp < 0xa80b) return true\n                if (cp < 0xa80c) return false\n                if (cp < 0xa823) return true\n                if (cp < 0xa840) return false\n                if (cp < 0xa874) return true\n                return false\n            }\n            if (cp < 0xaab1) {\n                if (cp < 0xa9e6) {\n                    if (cp < 0xa930) {\n                        if (cp < 0xa882) return false\n                        if (cp < 0xa8b4) return true\n                        if (cp < 0xa8f2) return false\n                        if (cp < 0xa8f8) return true\n                        if (cp === 0xa8fb) return true\n                        if (cp < 0xa8fd) return false\n                        if (cp < 0xa8ff) return true\n                        if (cp < 0xa90a) return false\n                        if (cp < 0xa926) return true\n                        return false\n                    }\n                    if (cp < 0xa947) return true\n                    if (cp < 0xa960) return false\n                    if (cp < 0xa97d) return true\n                    if (cp < 0xa984) return false\n                    if (cp < 0xa9b3) return true\n                    if (cp === 0xa9cf) return true\n                    if (cp < 0xa9e0) return false\n                    if (cp < 0xa9e5) return true\n                    return false\n                }\n                if (cp < 0xaa44) {\n                    if (cp === 0xa9e6) return true\n                    if (cp < 0xa9e7) return false\n                    if (cp < 0xa9f0) return true\n                    if (cp < 0xa9fa) return false\n                    if (cp < 0xa9ff) return true\n                    if (cp < 0xaa00) return false\n                    if (cp < 0xaa29) return true\n                    if (cp < 0xaa40) return false\n                    if (cp < 0xaa43) return true\n                    return false\n                }\n                if (cp < 0xaa4c) return true\n                if (cp < 0xaa60) return false\n                if (cp < 0xaa70) return true\n                if (cp === 0xaa70) return true\n                if (cp < 0xaa71) return false\n                if (cp < 0xaa77) return true\n                if (cp === 0xaa7a) return true\n                if (cp < 0xaa7e) return false\n                if (cp < 0xaab0) return true\n                return false\n            }\n            if (cp < 0xab01) {\n                if (cp < 0xaadb) {\n                    if (cp === 0xaab1) return true\n                    if (cp < 0xaab5) return false\n                    if (cp < 0xaab7) return true\n                    if (cp < 0xaab9) return false\n                    if (cp < 0xaabe) return true\n                    if (cp === 0xaac0) return true\n                    if (cp === 0xaac2) return true\n                    return false\n                }\n                if (cp < 0xaadd) return true\n                if (cp === 0xaadd) return true\n                if (cp < 0xaae0) return false\n                if (cp < 0xaaeb) return true\n                if (cp === 0xaaf2) return true\n                if (cp < 0xaaf3) return false\n                if (cp < 0xaaf5) return true\n                return false\n            }\n            if (cp < 0xab30) {\n                if (cp < 0xab01) return false\n                if (cp < 0xab07) return true\n                if (cp < 0xab09) return false\n                if (cp < 0xab0f) return true\n                if (cp < 0xab11) return false\n                if (cp < 0xab17) return true\n                if (cp < 0xab20) return false\n                if (cp < 0xab27) return true\n                if (cp < 0xab28) return false\n                if (cp < 0xab2f) return true\n                return false\n            }\n            if (cp < 0xab5b) return true\n            if (cp < 0xab5c) return false\n            if (cp < 0xab60) return true\n            if (cp < 0xab60) return false\n            if (cp < 0xab66) return true\n            if (cp < 0xab70) return false\n            if (cp < 0xabc0) return true\n            if (cp < 0xabc0) return false\n            if (cp < 0xabe3) return true\n            if (cp < 0xac00) return false\n            if (cp < 0xd7a4) return true\n            return false\n        }\n        if (cp < 0x1032d) {\n            if (cp < 0xff41) {\n                if (cp < 0xfb3e) {\n                    if (cp < 0xfb13) {\n                        if (cp < 0xd7b0) return false\n                        if (cp < 0xd7c7) return true\n                        if (cp < 0xd7cb) return false\n                        if (cp < 0xd7fc) return true\n                        if (cp < 0xf900) return false\n                        if (cp < 0xfa6e) return true\n                        if (cp < 0xfa70) return false\n                        if (cp < 0xfada) return true\n                        if (cp < 0xfb00) return false\n                        if (cp < 0xfb07) return true\n                        return false\n                    }\n                    if (cp < 0xfb18) return true\n                    if (cp === 0xfb1d) return true\n                    if (cp < 0xfb1f) return false\n                    if (cp < 0xfb29) return true\n                    if (cp < 0xfb2a) return false\n                    if (cp < 0xfb37) return true\n                    if (cp < 0xfb38) return false\n                    if (cp < 0xfb3d) return true\n                    return false\n                }\n                if (cp < 0xfd50) {\n                    if (cp === 0xfb3e) return true\n                    if (cp < 0xfb40) return false\n                    if (cp < 0xfb42) return true\n                    if (cp < 0xfb43) return false\n                    if (cp < 0xfb45) return true\n                    if (cp < 0xfb46) return false\n                    if (cp < 0xfbb2) return true\n                    if (cp < 0xfbd3) return false\n                    if (cp < 0xfd3e) return true\n                    return false\n                }\n                if (cp < 0xfd90) return true\n                if (cp < 0xfd92) return false\n                if (cp < 0xfdc8) return true\n                if (cp < 0xfdf0) return false\n                if (cp < 0xfdfc) return true\n                if (cp < 0xfe70) return false\n                if (cp < 0xfe75) return true\n                if (cp < 0xfe76) return false\n                if (cp < 0xfefd) return true\n                if (cp < 0xff21) return false\n                if (cp < 0xff3b) return true\n                return false\n            }\n            if (cp < 0x10000) {\n                if (cp < 0xffa0) {\n                    if (cp < 0xff41) return false\n                    if (cp < 0xff5b) return true\n                    if (cp < 0xff66) return false\n                    if (cp < 0xff70) return true\n                    if (cp === 0xff70) return true\n                    if (cp < 0xff71) return false\n                    if (cp < 0xff9e) return true\n                    if (cp < 0xff9e) return false\n                    if (cp < 0xffa0) return true\n                    return false\n                }\n                if (cp < 0xffbf) return true\n                if (cp < 0xffc2) return false\n                if (cp < 0xffc8) return true\n                if (cp < 0xffca) return false\n                if (cp < 0xffd0) return true\n                if (cp < 0xffd2) return false\n                if (cp < 0xffd8) return true\n                if (cp < 0xffda) return false\n                if (cp < 0xffdd) return true\n                return false\n            }\n            if (cp < 0x10050) {\n                if (cp < 0x10000) return false\n                if (cp < 0x1000c) return true\n                if (cp < 0x1000d) return false\n                if (cp < 0x10027) return true\n                if (cp < 0x10028) return false\n                if (cp < 0x1003b) return true\n                if (cp < 0x1003c) return false\n                if (cp < 0x1003e) return true\n                if (cp < 0x1003f) return false\n                if (cp < 0x1004e) return true\n                return false\n            }\n            if (cp < 0x1005e) return true\n            if (cp < 0x10080) return false\n            if (cp < 0x100fb) return true\n            if (cp < 0x10140) return false\n            if (cp < 0x10175) return true\n            if (cp < 0x10280) return false\n            if (cp < 0x1029d) return true\n            if (cp < 0x102a0) return false\n            if (cp < 0x102d1) return true\n            if (cp < 0x10300) return false\n            if (cp < 0x10320) return true\n            return false\n        }\n        if (cp < 0x10837) {\n            if (cp < 0x10450) {\n                if (cp < 0x10380) {\n                    if (cp < 0x1032d) return false\n                    if (cp < 0x10341) return true\n                    if (cp === 0x10341) return true\n                    if (cp < 0x10342) return false\n                    if (cp < 0x1034a) return true\n                    if (cp === 0x1034a) return true\n                    if (cp < 0x10350) return false\n                    if (cp < 0x10376) return true\n                    return false\n                }\n                if (cp < 0x1039e) return true\n                if (cp < 0x103a0) return false\n                if (cp < 0x103c4) return true\n                if (cp < 0x103c8) return false\n                if (cp < 0x103d0) return true\n                if (cp < 0x103d1) return false\n                if (cp < 0x103d6) return true\n                if (cp < 0x10400) return false\n                if (cp < 0x10450) return true\n                return false\n            }\n            if (cp < 0x10600) {\n                if (cp < 0x10450) return false\n                if (cp < 0x1049e) return true\n                if (cp < 0x104b0) return false\n                if (cp < 0x104d4) return true\n                if (cp < 0x104d8) return false\n                if (cp < 0x104fc) return true\n                if (cp < 0x10500) return false\n                if (cp < 0x10528) return true\n                if (cp < 0x10530) return false\n                if (cp < 0x10564) return true\n                return false\n            }\n            if (cp < 0x10737) return true\n            if (cp < 0x10740) return false\n            if (cp < 0x10756) return true\n            if (cp < 0x10760) return false\n            if (cp < 0x10768) return true\n            if (cp < 0x10800) return false\n            if (cp < 0x10806) return true\n            if (cp === 0x10808) return true\n            if (cp < 0x1080a) return false\n            if (cp < 0x10836) return true\n            return false\n        }\n        if (cp < 0x109be) {\n            if (cp < 0x108e0) {\n                if (cp < 0x10837) return false\n                if (cp < 0x10839) return true\n                if (cp === 0x1083c) return true\n                if (cp < 0x1083f) return false\n                if (cp < 0x10856) return true\n                if (cp < 0x10860) return false\n                if (cp < 0x10877) return true\n                if (cp < 0x10880) return false\n                if (cp < 0x1089f) return true\n                return false\n            }\n            if (cp < 0x108f3) return true\n            if (cp < 0x108f4) return false\n            if (cp < 0x108f6) return true\n            if (cp < 0x10900) return false\n            if (cp < 0x10916) return true\n            if (cp < 0x10920) return false\n            if (cp < 0x1093a) return true\n            if (cp < 0x10980) return false\n            if (cp < 0x109b8) return true\n            return false\n        }\n        if (cp < 0x10a60) {\n            if (cp < 0x109be) return false\n            if (cp < 0x109c0) return true\n            if (cp === 0x10a00) return true\n            if (cp < 0x10a10) return false\n            if (cp < 0x10a14) return true\n            if (cp < 0x10a15) return false\n            if (cp < 0x10a18) return true\n            if (cp < 0x10a19) return false\n            if (cp < 0x10a36) return true\n            return false\n        }\n        if (cp < 0x10a7d) return true\n        if (cp < 0x10a80) return false\n        if (cp < 0x10a9d) return true\n        if (cp < 0x10ac0) return false\n        if (cp < 0x10ac8) return true\n        if (cp < 0x10ac9) return false\n        if (cp < 0x10ae5) return true\n        if (cp < 0x10b00) return false\n        if (cp < 0x10b36) return true\n        if (cp < 0x10b40) return false\n        if (cp < 0x10b56) return true\n        return false\n    }\n    if (cp < 0x16e40) {\n        if (cp < 0x11580) {\n            if (cp < 0x11213) {\n                if (cp < 0x11083) {\n                    if (cp < 0x10d00) {\n                        if (cp < 0x10b60) return false\n                        if (cp < 0x10b73) return true\n                        if (cp < 0x10b80) return false\n                        if (cp < 0x10b92) return true\n                        if (cp < 0x10c00) return false\n                        if (cp < 0x10c49) return true\n                        if (cp < 0x10c80) return false\n                        if (cp < 0x10cb3) return true\n                        if (cp < 0x10cc0) return false\n                        if (cp < 0x10cf3) return true\n                        return false\n                    }\n                    if (cp < 0x10d24) return true\n                    if (cp < 0x10f00) return false\n                    if (cp < 0x10f1d) return true\n                    if (cp === 0x10f27) return true\n                    if (cp < 0x10f30) return false\n                    if (cp < 0x10f46) return true\n                    if (cp < 0x11003) return false\n                    if (cp < 0x11038) return true\n                    return false\n                }\n                if (cp < 0x11176) {\n                    if (cp < 0x11083) return false\n                    if (cp < 0x110b0) return true\n                    if (cp < 0x110d0) return false\n                    if (cp < 0x110e9) return true\n                    if (cp < 0x11103) return false\n                    if (cp < 0x11127) return true\n                    if (cp === 0x11144) return true\n                    if (cp < 0x11150) return false\n                    if (cp < 0x11173) return true\n                    return false\n                }\n                if (cp === 0x11176) return true\n                if (cp < 0x11183) return false\n                if (cp < 0x111b3) return true\n                if (cp < 0x111c1) return false\n                if (cp < 0x111c5) return true\n                if (cp === 0x111da) return true\n                if (cp === 0x111dc) return true\n                if (cp < 0x11200) return false\n                if (cp < 0x11212) return true\n                return false\n            }\n            if (cp < 0x1132a) {\n                if (cp < 0x1129f) {\n                    if (cp < 0x11213) return false\n                    if (cp < 0x1122c) return true\n                    if (cp < 0x11280) return false\n                    if (cp < 0x11287) return true\n                    if (cp === 0x11288) return true\n                    if (cp < 0x1128a) return false\n                    if (cp < 0x1128e) return true\n                    if (cp < 0x1128f) return false\n                    if (cp < 0x1129e) return true\n                    return false\n                }\n                if (cp < 0x112a9) return true\n                if (cp < 0x112b0) return false\n                if (cp < 0x112df) return true\n                if (cp < 0x11305) return false\n                if (cp < 0x1130d) return true\n                if (cp < 0x1130f) return false\n                if (cp < 0x11311) return true\n                if (cp < 0x11313) return false\n                if (cp < 0x11329) return true\n                return false\n            }\n            if (cp < 0x1135d) {\n                if (cp < 0x1132a) return false\n                if (cp < 0x11331) return true\n                if (cp < 0x11332) return false\n                if (cp < 0x11334) return true\n                if (cp < 0x11335) return false\n                if (cp < 0x1133a) return true\n                if (cp === 0x1133d) return true\n                if (cp === 0x11350) return true\n                return false\n            }\n            if (cp < 0x11362) return true\n            if (cp < 0x11400) return false\n            if (cp < 0x11435) return true\n            if (cp < 0x11447) return false\n            if (cp < 0x1144b) return true\n            if (cp < 0x11480) return false\n            if (cp < 0x114b0) return true\n            if (cp < 0x114c4) return false\n            if (cp < 0x114c6) return true\n            if (cp === 0x114c7) return true\n            return false\n        }\n        if (cp < 0x11d00) {\n            if (cp < 0x11a0b) {\n                if (cp < 0x11700) {\n                    if (cp < 0x11580) return false\n                    if (cp < 0x115af) return true\n                    if (cp < 0x115d8) return false\n                    if (cp < 0x115dc) return true\n                    if (cp < 0x11600) return false\n                    if (cp < 0x11630) return true\n                    if (cp === 0x11644) return true\n                    if (cp < 0x11680) return false\n                    if (cp < 0x116ab) return true\n                    return false\n                }\n                if (cp < 0x1171b) return true\n                if (cp < 0x11800) return false\n                if (cp < 0x1182c) return true\n                if (cp < 0x118a0) return false\n                if (cp < 0x118e0) return true\n                if (cp === 0x118ff) return true\n                if (cp === 0x11a00) return true\n                return false\n            }\n            if (cp < 0x11a9d) {\n                if (cp < 0x11a0b) return false\n                if (cp < 0x11a33) return true\n                if (cp === 0x11a3a) return true\n                if (cp === 0x11a50) return true\n                if (cp < 0x11a5c) return false\n                if (cp < 0x11a84) return true\n                if (cp < 0x11a86) return false\n                if (cp < 0x11a8a) return true\n                return false\n            }\n            if (cp === 0x11a9d) return true\n            if (cp < 0x11ac0) return false\n            if (cp < 0x11af9) return true\n            if (cp < 0x11c00) return false\n            if (cp < 0x11c09) return true\n            if (cp < 0x11c0a) return false\n            if (cp < 0x11c2f) return true\n            if (cp === 0x11c40) return true\n            if (cp < 0x11c72) return false\n            if (cp < 0x11c90) return true\n            return false\n        }\n        if (cp < 0x12400) {\n            if (cp < 0x11d67) {\n                if (cp < 0x11d00) return false\n                if (cp < 0x11d07) return true\n                if (cp < 0x11d08) return false\n                if (cp < 0x11d0a) return true\n                if (cp < 0x11d0b) return false\n                if (cp < 0x11d31) return true\n                if (cp === 0x11d46) return true\n                if (cp < 0x11d60) return false\n                if (cp < 0x11d66) return true\n                return false\n            }\n            if (cp < 0x11d69) return true\n            if (cp < 0x11d6a) return false\n            if (cp < 0x11d8a) return true\n            if (cp === 0x11d98) return true\n            if (cp < 0x11ee0) return false\n            if (cp < 0x11ef3) return true\n            if (cp < 0x12000) return false\n            if (cp < 0x1239a) return true\n            return false\n        }\n        if (cp < 0x16a40) {\n            if (cp < 0x12400) return false\n            if (cp < 0x1246f) return true\n            if (cp < 0x12480) return false\n            if (cp < 0x12544) return true\n            if (cp < 0x13000) return false\n            if (cp < 0x1342f) return true\n            if (cp < 0x14400) return false\n            if (cp < 0x14647) return true\n            if (cp < 0x16800) return false\n            if (cp < 0x16a39) return true\n            return false\n        }\n        if (cp < 0x16a5f) return true\n        if (cp < 0x16ad0) return false\n        if (cp < 0x16aee) return true\n        if (cp < 0x16b00) return false\n        if (cp < 0x16b30) return true\n        if (cp < 0x16b40) return false\n        if (cp < 0x16b44) return true\n        if (cp < 0x16b63) return false\n        if (cp < 0x16b78) return true\n        if (cp < 0x16b7d) return false\n        if (cp < 0x16b90) return true\n        return false\n    }\n    if (cp < 0x1d7c4) {\n        if (cp < 0x1d4bd) {\n            if (cp < 0x1bc70) {\n                if (cp < 0x17000) {\n                    if (cp < 0x16e40) return false\n                    if (cp < 0x16e80) return true\n                    if (cp < 0x16f00) return false\n                    if (cp < 0x16f45) return true\n                    if (cp === 0x16f50) return true\n                    if (cp < 0x16f93) return false\n                    if (cp < 0x16fa0) return true\n                    if (cp < 0x16fe0) return false\n                    if (cp < 0x16fe2) return true\n                    return false\n                }\n                if (cp < 0x187f2) return true\n                if (cp < 0x18800) return false\n                if (cp < 0x18af3) return true\n                if (cp < 0x1b000) return false\n                if (cp < 0x1b11f) return true\n                if (cp < 0x1b170) return false\n                if (cp < 0x1b2fc) return true\n                if (cp < 0x1bc00) return false\n                if (cp < 0x1bc6b) return true\n                return false\n            }\n            if (cp < 0x1d49e) {\n                if (cp < 0x1bc70) return false\n                if (cp < 0x1bc7d) return true\n                if (cp < 0x1bc80) return false\n                if (cp < 0x1bc89) return true\n                if (cp < 0x1bc90) return false\n                if (cp < 0x1bc9a) return true\n                if (cp < 0x1d400) return false\n                if (cp < 0x1d455) return true\n                if (cp < 0x1d456) return false\n                if (cp < 0x1d49d) return true\n                return false\n            }\n            if (cp < 0x1d4a0) return true\n            if (cp === 0x1d4a2) return true\n            if (cp < 0x1d4a5) return false\n            if (cp < 0x1d4a7) return true\n            if (cp < 0x1d4a9) return false\n            if (cp < 0x1d4ad) return true\n            if (cp < 0x1d4ae) return false\n            if (cp < 0x1d4ba) return true\n            if (cp === 0x1d4bb) return true\n            return false\n        }\n        if (cp < 0x1d552) {\n            if (cp < 0x1d51e) {\n                if (cp < 0x1d4bd) return false\n                if (cp < 0x1d4c4) return true\n                if (cp < 0x1d4c5) return false\n                if (cp < 0x1d506) return true\n                if (cp < 0x1d507) return false\n                if (cp < 0x1d50b) return true\n                if (cp < 0x1d50d) return false\n                if (cp < 0x1d515) return true\n                if (cp < 0x1d516) return false\n                if (cp < 0x1d51d) return true\n                return false\n            }\n            if (cp < 0x1d53a) return true\n            if (cp < 0x1d53b) return false\n            if (cp < 0x1d53f) return true\n            if (cp < 0x1d540) return false\n            if (cp < 0x1d545) return true\n            if (cp === 0x1d546) return true\n            if (cp < 0x1d54a) return false\n            if (cp < 0x1d551) return true\n            return false\n        }\n        if (cp < 0x1d716) {\n            if (cp < 0x1d552) return false\n            if (cp < 0x1d6a6) return true\n            if (cp < 0x1d6a8) return false\n            if (cp < 0x1d6c1) return true\n            if (cp < 0x1d6c2) return false\n            if (cp < 0x1d6db) return true\n            if (cp < 0x1d6dc) return false\n            if (cp < 0x1d6fb) return true\n            if (cp < 0x1d6fc) return false\n            if (cp < 0x1d715) return true\n            return false\n        }\n        if (cp < 0x1d735) return true\n        if (cp < 0x1d736) return false\n        if (cp < 0x1d74f) return true\n        if (cp < 0x1d750) return false\n        if (cp < 0x1d76f) return true\n        if (cp < 0x1d770) return false\n        if (cp < 0x1d789) return true\n        if (cp < 0x1d78a) return false\n        if (cp < 0x1d7a9) return true\n        if (cp < 0x1d7aa) return false\n        if (cp < 0x1d7c3) return true\n        return false\n    }\n    if (cp < 0x1ee5b) {\n        if (cp < 0x1ee39) {\n            if (cp < 0x1ee21) {\n                if (cp < 0x1d7c4) return false\n                if (cp < 0x1d7cc) return true\n                if (cp < 0x1e800) return false\n                if (cp < 0x1e8c5) return true\n                if (cp < 0x1e900) return false\n                if (cp < 0x1e944) return true\n                if (cp < 0x1ee00) return false\n                if (cp < 0x1ee04) return true\n                if (cp < 0x1ee05) return false\n                if (cp < 0x1ee20) return true\n                return false\n            }\n            if (cp < 0x1ee23) return true\n            if (cp === 0x1ee24) return true\n            if (cp === 0x1ee27) return true\n            if (cp < 0x1ee29) return false\n            if (cp < 0x1ee33) return true\n            if (cp < 0x1ee34) return false\n            if (cp < 0x1ee38) return true\n            return false\n        }\n        if (cp < 0x1ee4b) {\n            if (cp === 0x1ee39) return true\n            if (cp === 0x1ee3b) return true\n            if (cp === 0x1ee42) return true\n            if (cp === 0x1ee47) return true\n            if (cp === 0x1ee49) return true\n            return false\n        }\n        if (cp === 0x1ee4b) return true\n        if (cp < 0x1ee4d) return false\n        if (cp < 0x1ee50) return true\n        if (cp < 0x1ee51) return false\n        if (cp < 0x1ee53) return true\n        if (cp === 0x1ee54) return true\n        if (cp === 0x1ee57) return true\n        if (cp === 0x1ee59) return true\n        return false\n    }\n    if (cp < 0x1ee80) {\n        if (cp < 0x1ee67) {\n            if (cp === 0x1ee5b) return true\n            if (cp === 0x1ee5d) return true\n            if (cp === 0x1ee5f) return true\n            if (cp < 0x1ee61) return false\n            if (cp < 0x1ee63) return true\n            if (cp === 0x1ee64) return true\n            return false\n        }\n        if (cp < 0x1ee6b) return true\n        if (cp < 0x1ee6c) return false\n        if (cp < 0x1ee73) return true\n        if (cp < 0x1ee74) return false\n        if (cp < 0x1ee78) return true\n        if (cp < 0x1ee79) return false\n        if (cp < 0x1ee7d) return true\n        if (cp === 0x1ee7e) return true\n        return false\n    }\n    if (cp < 0x20000) {\n        if (cp < 0x1ee80) return false\n        if (cp < 0x1ee8a) return true\n        if (cp < 0x1ee8b) return false\n        if (cp < 0x1ee9c) return true\n        if (cp < 0x1eea1) return false\n        if (cp < 0x1eea4) return true\n        if (cp < 0x1eea5) return false\n        if (cp < 0x1eeaa) return true\n        if (cp < 0x1eeab) return false\n        if (cp < 0x1eebc) return true\n        return false\n    }\n    if (cp < 0x2a6d7) return true\n    if (cp < 0x2a700) return false\n    if (cp < 0x2b735) return true\n    if (cp < 0x2b740) return false\n    if (cp < 0x2b81e) return true\n    if (cp < 0x2b820) return false\n    if (cp < 0x2cea2) return true\n    if (cp < 0x2ceb0) return false\n    if (cp < 0x2ebe1) return true\n    if (cp < 0x2f800) return false\n    if (cp < 0x2fa1e) return true\n    return false\n}\n\nfunction isLargeIdContinue(cp: number): boolean {\n    if (cp < 0x1cd0) {\n        if (cp < 0xd82) {\n            if (cp < 0xa83) {\n                if (cp < 0x93b) {\n                    if (cp < 0x6ea) {\n                        if (cp < 0x5c7) {\n                            if (cp === 0xb7) return true\n                            if (cp < 0x300) return false\n                            if (cp < 0x370) return true\n                            if (cp === 0x387) return true\n                            if (cp < 0x483) return false\n                            if (cp < 0x488) return true\n                            if (cp < 0x591) return false\n                            if (cp < 0x5be) return true\n                            if (cp === 0x5bf) return true\n                            if (cp < 0x5c1) return false\n                            if (cp < 0x5c3) return true\n                            if (cp < 0x5c4) return false\n                            if (cp < 0x5c6) return true\n                            return false\n                        }\n                        if (cp === 0x5c7) return true\n                        if (cp < 0x610) return false\n                        if (cp < 0x61b) return true\n                        if (cp < 0x64b) return false\n                        if (cp < 0x660) return true\n                        if (cp < 0x660) return false\n                        if (cp < 0x66a) return true\n                        if (cp === 0x670) return true\n                        if (cp < 0x6d6) return false\n                        if (cp < 0x6dd) return true\n                        if (cp < 0x6df) return false\n                        if (cp < 0x6e5) return true\n                        if (cp < 0x6e7) return false\n                        if (cp < 0x6e9) return true\n                        return false\n                    }\n                    if (cp < 0x816) {\n                        if (cp < 0x6ea) return false\n                        if (cp < 0x6ee) return true\n                        if (cp < 0x6f0) return false\n                        if (cp < 0x6fa) return true\n                        if (cp === 0x711) return true\n                        if (cp < 0x730) return false\n                        if (cp < 0x74b) return true\n                        if (cp < 0x7a6) return false\n                        if (cp < 0x7b1) return true\n                        if (cp < 0x7c0) return false\n                        if (cp < 0x7ca) return true\n                        if (cp < 0x7eb) return false\n                        if (cp < 0x7f4) return true\n                        if (cp === 0x7fd) return true\n                        return false\n                    }\n                    if (cp < 0x81a) return true\n                    if (cp < 0x81b) return false\n                    if (cp < 0x824) return true\n                    if (cp < 0x825) return false\n                    if (cp < 0x828) return true\n                    if (cp < 0x829) return false\n                    if (cp < 0x82e) return true\n                    if (cp < 0x859) return false\n                    if (cp < 0x85c) return true\n                    if (cp < 0x8d3) return false\n                    if (cp < 0x8e2) return true\n                    if (cp < 0x8e3) return false\n                    if (cp < 0x903) return true\n                    if (cp === 0x903) return true\n                    if (cp === 0x93a) return true\n                    return false\n                }\n                if (cp < 0x9cd) {\n                    if (cp < 0x962) {\n                        if (cp === 0x93b) return true\n                        if (cp === 0x93c) return true\n                        if (cp < 0x93e) return false\n                        if (cp < 0x941) return true\n                        if (cp < 0x941) return false\n                        if (cp < 0x949) return true\n                        if (cp < 0x949) return false\n                        if (cp < 0x94d) return true\n                        if (cp === 0x94d) return true\n                        if (cp < 0x94e) return false\n                        if (cp < 0x950) return true\n                        if (cp < 0x951) return false\n                        if (cp < 0x958) return true\n                        return false\n                    }\n                    if (cp < 0x964) return true\n                    if (cp < 0x966) return false\n                    if (cp < 0x970) return true\n                    if (cp === 0x981) return true\n                    if (cp < 0x982) return false\n                    if (cp < 0x984) return true\n                    if (cp === 0x9bc) return true\n                    if (cp < 0x9be) return false\n                    if (cp < 0x9c1) return true\n                    if (cp < 0x9c1) return false\n                    if (cp < 0x9c5) return true\n                    if (cp < 0x9c7) return false\n                    if (cp < 0x9c9) return true\n                    if (cp < 0x9cb) return false\n                    if (cp < 0x9cd) return true\n                    return false\n                }\n                if (cp < 0xa3e) {\n                    if (cp === 0x9cd) return true\n                    if (cp === 0x9d7) return true\n                    if (cp < 0x9e2) return false\n                    if (cp < 0x9e4) return true\n                    if (cp < 0x9e6) return false\n                    if (cp < 0x9f0) return true\n                    if (cp === 0x9fe) return true\n                    if (cp < 0xa01) return false\n                    if (cp < 0xa03) return true\n                    if (cp === 0xa03) return true\n                    if (cp === 0xa3c) return true\n                    return false\n                }\n                if (cp < 0xa41) return true\n                if (cp < 0xa41) return false\n                if (cp < 0xa43) return true\n                if (cp < 0xa47) return false\n                if (cp < 0xa49) return true\n                if (cp < 0xa4b) return false\n                if (cp < 0xa4e) return true\n                if (cp === 0xa51) return true\n                if (cp < 0xa66) return false\n                if (cp < 0xa70) return true\n                if (cp < 0xa70) return false\n                if (cp < 0xa72) return true\n                if (cp === 0xa75) return true\n                if (cp < 0xa81) return false\n                if (cp < 0xa83) return true\n                return false\n            }\n            if (cp < 0xc00) {\n                if (cp < 0xb41) {\n                    if (cp < 0xae2) {\n                        if (cp === 0xa83) return true\n                        if (cp === 0xabc) return true\n                        if (cp < 0xabe) return false\n                        if (cp < 0xac1) return true\n                        if (cp < 0xac1) return false\n                        if (cp < 0xac6) return true\n                        if (cp < 0xac7) return false\n                        if (cp < 0xac9) return true\n                        if (cp === 0xac9) return true\n                        if (cp < 0xacb) return false\n                        if (cp < 0xacd) return true\n                        if (cp === 0xacd) return true\n                        return false\n                    }\n                    if (cp < 0xae4) return true\n                    if (cp < 0xae6) return false\n                    if (cp < 0xaf0) return true\n                    if (cp < 0xafa) return false\n                    if (cp < 0xb00) return true\n                    if (cp === 0xb01) return true\n                    if (cp < 0xb02) return false\n                    if (cp < 0xb04) return true\n                    if (cp === 0xb3c) return true\n                    if (cp === 0xb3e) return true\n                    if (cp === 0xb3f) return true\n                    if (cp === 0xb40) return true\n                    return false\n                }\n                if (cp < 0xb82) {\n                    if (cp < 0xb41) return false\n                    if (cp < 0xb45) return true\n                    if (cp < 0xb47) return false\n                    if (cp < 0xb49) return true\n                    if (cp < 0xb4b) return false\n                    if (cp < 0xb4d) return true\n                    if (cp === 0xb4d) return true\n                    if (cp === 0xb56) return true\n                    if (cp === 0xb57) return true\n                    if (cp < 0xb62) return false\n                    if (cp < 0xb64) return true\n                    if (cp < 0xb66) return false\n                    if (cp < 0xb70) return true\n                    return false\n                }\n                if (cp === 0xb82) return true\n                if (cp < 0xbbe) return false\n                if (cp < 0xbc0) return true\n                if (cp === 0xbc0) return true\n                if (cp < 0xbc1) return false\n                if (cp < 0xbc3) return true\n                if (cp < 0xbc6) return false\n                if (cp < 0xbc9) return true\n                if (cp < 0xbca) return false\n                if (cp < 0xbcd) return true\n                if (cp === 0xbcd) return true\n                if (cp === 0xbd7) return true\n                if (cp < 0xbe6) return false\n                if (cp < 0xbf0) return true\n                return false\n            }\n            if (cp < 0xcc7) {\n                if (cp < 0xc62) {\n                    if (cp === 0xc00) return true\n                    if (cp < 0xc01) return false\n                    if (cp < 0xc04) return true\n                    if (cp === 0xc04) return true\n                    if (cp < 0xc3e) return false\n                    if (cp < 0xc41) return true\n                    if (cp < 0xc41) return false\n                    if (cp < 0xc45) return true\n                    if (cp < 0xc46) return false\n                    if (cp < 0xc49) return true\n                    if (cp < 0xc4a) return false\n                    if (cp < 0xc4e) return true\n                    if (cp < 0xc55) return false\n                    if (cp < 0xc57) return true\n                    return false\n                }\n                if (cp < 0xc64) return true\n                if (cp < 0xc66) return false\n                if (cp < 0xc70) return true\n                if (cp === 0xc81) return true\n                if (cp < 0xc82) return false\n                if (cp < 0xc84) return true\n                if (cp === 0xcbc) return true\n                if (cp === 0xcbe) return true\n                if (cp === 0xcbf) return true\n                if (cp < 0xcc0) return false\n                if (cp < 0xcc5) return true\n                if (cp === 0xcc6) return true\n                return false\n            }\n            if (cp < 0xd3b) {\n                if (cp < 0xcc7) return false\n                if (cp < 0xcc9) return true\n                if (cp < 0xcca) return false\n                if (cp < 0xccc) return true\n                if (cp < 0xccc) return false\n                if (cp < 0xcce) return true\n                if (cp < 0xcd5) return false\n                if (cp < 0xcd7) return true\n                if (cp < 0xce2) return false\n                if (cp < 0xce4) return true\n                if (cp < 0xce6) return false\n                if (cp < 0xcf0) return true\n                if (cp < 0xd00) return false\n                if (cp < 0xd02) return true\n                if (cp < 0xd02) return false\n                if (cp < 0xd04) return true\n                return false\n            }\n            if (cp < 0xd3d) return true\n            if (cp < 0xd3e) return false\n            if (cp < 0xd41) return true\n            if (cp < 0xd41) return false\n            if (cp < 0xd45) return true\n            if (cp < 0xd46) return false\n            if (cp < 0xd49) return true\n            if (cp < 0xd4a) return false\n            if (cp < 0xd4d) return true\n            if (cp === 0xd4d) return true\n            if (cp === 0xd57) return true\n            if (cp < 0xd62) return false\n            if (cp < 0xd64) return true\n            if (cp < 0xd66) return false\n            if (cp < 0xd70) return true\n            return false\n        }\n        if (cp < 0x17e0) {\n            if (cp < 0x1038) {\n                if (cp < 0xf18) {\n                    if (cp < 0xe31) {\n                        if (cp < 0xd82) return false\n                        if (cp < 0xd84) return true\n                        if (cp === 0xdca) return true\n                        if (cp < 0xdcf) return false\n                        if (cp < 0xdd2) return true\n                        if (cp < 0xdd2) return false\n                        if (cp < 0xdd5) return true\n                        if (cp === 0xdd6) return true\n                        if (cp < 0xdd8) return false\n                        if (cp < 0xde0) return true\n                        if (cp < 0xde6) return false\n                        if (cp < 0xdf0) return true\n                        if (cp < 0xdf2) return false\n                        if (cp < 0xdf4) return true\n                        return false\n                    }\n                    if (cp === 0xe31) return true\n                    if (cp < 0xe34) return false\n                    if (cp < 0xe3b) return true\n                    if (cp < 0xe47) return false\n                    if (cp < 0xe4f) return true\n                    if (cp < 0xe50) return false\n                    if (cp < 0xe5a) return true\n                    if (cp === 0xeb1) return true\n                    if (cp < 0xeb4) return false\n                    if (cp < 0xeba) return true\n                    if (cp < 0xebb) return false\n                    if (cp < 0xebd) return true\n                    if (cp < 0xec8) return false\n                    if (cp < 0xece) return true\n                    if (cp < 0xed0) return false\n                    if (cp < 0xeda) return true\n                    return false\n                }\n                if (cp < 0xf80) {\n                    if (cp < 0xf18) return false\n                    if (cp < 0xf1a) return true\n                    if (cp < 0xf20) return false\n                    if (cp < 0xf2a) return true\n                    if (cp === 0xf35) return true\n                    if (cp === 0xf37) return true\n                    if (cp === 0xf39) return true\n                    if (cp < 0xf3e) return false\n                    if (cp < 0xf40) return true\n                    if (cp < 0xf71) return false\n                    if (cp < 0xf7f) return true\n                    if (cp === 0xf7f) return true\n                    return false\n                }\n                if (cp < 0xf85) return true\n                if (cp < 0xf86) return false\n                if (cp < 0xf88) return true\n                if (cp < 0xf8d) return false\n                if (cp < 0xf98) return true\n                if (cp < 0xf99) return false\n                if (cp < 0xfbd) return true\n                if (cp === 0xfc6) return true\n                if (cp < 0x102b) return false\n                if (cp < 0x102d) return true\n                if (cp < 0x102d) return false\n                if (cp < 0x1031) return true\n                if (cp === 0x1031) return true\n                if (cp < 0x1032) return false\n                if (cp < 0x1038) return true\n                return false\n            }\n            if (cp < 0x1090) {\n                if (cp < 0x1062) {\n                    if (cp === 0x1038) return true\n                    if (cp < 0x1039) return false\n                    if (cp < 0x103b) return true\n                    if (cp < 0x103b) return false\n                    if (cp < 0x103d) return true\n                    if (cp < 0x103d) return false\n                    if (cp < 0x103f) return true\n                    if (cp < 0x1040) return false\n                    if (cp < 0x104a) return true\n                    if (cp < 0x1056) return false\n                    if (cp < 0x1058) return true\n                    if (cp < 0x1058) return false\n                    if (cp < 0x105a) return true\n                    if (cp < 0x105e) return false\n                    if (cp < 0x1061) return true\n                    return false\n                }\n                if (cp < 0x1065) return true\n                if (cp < 0x1067) return false\n                if (cp < 0x106e) return true\n                if (cp < 0x1071) return false\n                if (cp < 0x1075) return true\n                if (cp === 0x1082) return true\n                if (cp < 0x1083) return false\n                if (cp < 0x1085) return true\n                if (cp < 0x1085) return false\n                if (cp < 0x1087) return true\n                if (cp < 0x1087) return false\n                if (cp < 0x108d) return true\n                if (cp === 0x108d) return true\n                if (cp === 0x108f) return true\n                return false\n            }\n            if (cp < 0x1772) {\n                if (cp < 0x1090) return false\n                if (cp < 0x109a) return true\n                if (cp < 0x109a) return false\n                if (cp < 0x109d) return true\n                if (cp === 0x109d) return true\n                if (cp < 0x135d) return false\n                if (cp < 0x1360) return true\n                if (cp < 0x1369) return false\n                if (cp < 0x1372) return true\n                if (cp < 0x1712) return false\n                if (cp < 0x1715) return true\n                if (cp < 0x1732) return false\n                if (cp < 0x1735) return true\n                if (cp < 0x1752) return false\n                if (cp < 0x1754) return true\n                return false\n            }\n            if (cp < 0x1774) return true\n            if (cp < 0x17b4) return false\n            if (cp < 0x17b6) return true\n            if (cp === 0x17b6) return true\n            if (cp < 0x17b7) return false\n            if (cp < 0x17be) return true\n            if (cp < 0x17be) return false\n            if (cp < 0x17c6) return true\n            if (cp === 0x17c6) return true\n            if (cp < 0x17c7) return false\n            if (cp < 0x17c9) return true\n            if (cp < 0x17c9) return false\n            if (cp < 0x17d4) return true\n            if (cp === 0x17dd) return true\n            return false\n        }\n        if (cp < 0x1b04) {\n            if (cp < 0x1a1b) {\n                if (cp < 0x1930) {\n                    if (cp < 0x17e0) return false\n                    if (cp < 0x17ea) return true\n                    if (cp < 0x180b) return false\n                    if (cp < 0x180e) return true\n                    if (cp < 0x1810) return false\n                    if (cp < 0x181a) return true\n                    if (cp === 0x18a9) return true\n                    if (cp < 0x1920) return false\n                    if (cp < 0x1923) return true\n                    if (cp < 0x1923) return false\n                    if (cp < 0x1927) return true\n                    if (cp < 0x1927) return false\n                    if (cp < 0x1929) return true\n                    if (cp < 0x1929) return false\n                    if (cp < 0x192c) return true\n                    return false\n                }\n                if (cp < 0x1932) return true\n                if (cp === 0x1932) return true\n                if (cp < 0x1933) return false\n                if (cp < 0x1939) return true\n                if (cp < 0x1939) return false\n                if (cp < 0x193c) return true\n                if (cp < 0x1946) return false\n                if (cp < 0x1950) return true\n                if (cp < 0x19d0) return false\n                if (cp < 0x19da) return true\n                if (cp === 0x19da) return true\n                if (cp < 0x1a17) return false\n                if (cp < 0x1a19) return true\n                if (cp < 0x1a19) return false\n                if (cp < 0x1a1b) return true\n                return false\n            }\n            if (cp < 0x1a63) {\n                if (cp === 0x1a1b) return true\n                if (cp === 0x1a55) return true\n                if (cp === 0x1a56) return true\n                if (cp === 0x1a57) return true\n                if (cp < 0x1a58) return false\n                if (cp < 0x1a5f) return true\n                if (cp === 0x1a60) return true\n                if (cp === 0x1a61) return true\n                if (cp === 0x1a62) return true\n                return false\n            }\n            if (cp < 0x1a65) return true\n            if (cp < 0x1a65) return false\n            if (cp < 0x1a6d) return true\n            if (cp < 0x1a6d) return false\n            if (cp < 0x1a73) return true\n            if (cp < 0x1a73) return false\n            if (cp < 0x1a7d) return true\n            if (cp === 0x1a7f) return true\n            if (cp < 0x1a80) return false\n            if (cp < 0x1a8a) return true\n            if (cp < 0x1a90) return false\n            if (cp < 0x1a9a) return true\n            if (cp < 0x1ab0) return false\n            if (cp < 0x1abe) return true\n            if (cp < 0x1b00) return false\n            if (cp < 0x1b04) return true\n            return false\n        }\n        if (cp < 0x1baa) {\n            if (cp < 0x1b43) {\n                if (cp === 0x1b04) return true\n                if (cp === 0x1b34) return true\n                if (cp === 0x1b35) return true\n                if (cp < 0x1b36) return false\n                if (cp < 0x1b3b) return true\n                if (cp === 0x1b3b) return true\n                if (cp === 0x1b3c) return true\n                if (cp < 0x1b3d) return false\n                if (cp < 0x1b42) return true\n                if (cp === 0x1b42) return true\n                return false\n            }\n            if (cp < 0x1b45) return true\n            if (cp < 0x1b50) return false\n            if (cp < 0x1b5a) return true\n            if (cp < 0x1b6b) return false\n            if (cp < 0x1b74) return true\n            if (cp < 0x1b80) return false\n            if (cp < 0x1b82) return true\n            if (cp === 0x1b82) return true\n            if (cp === 0x1ba1) return true\n            if (cp < 0x1ba2) return false\n            if (cp < 0x1ba6) return true\n            if (cp < 0x1ba6) return false\n            if (cp < 0x1ba8) return true\n            if (cp < 0x1ba8) return false\n            if (cp < 0x1baa) return true\n            return false\n        }\n        if (cp < 0x1bee) {\n            if (cp === 0x1baa) return true\n            if (cp < 0x1bab) return false\n            if (cp < 0x1bae) return true\n            if (cp < 0x1bb0) return false\n            if (cp < 0x1bba) return true\n            if (cp === 0x1be6) return true\n            if (cp === 0x1be7) return true\n            if (cp < 0x1be8) return false\n            if (cp < 0x1bea) return true\n            if (cp < 0x1bea) return false\n            if (cp < 0x1bed) return true\n            if (cp === 0x1bed) return true\n            return false\n        }\n        if (cp === 0x1bee) return true\n        if (cp < 0x1bef) return false\n        if (cp < 0x1bf2) return true\n        if (cp < 0x1bf2) return false\n        if (cp < 0x1bf4) return true\n        if (cp < 0x1c24) return false\n        if (cp < 0x1c2c) return true\n        if (cp < 0x1c2c) return false\n        if (cp < 0x1c34) return true\n        if (cp < 0x1c34) return false\n        if (cp < 0x1c36) return true\n        if (cp < 0x1c36) return false\n        if (cp < 0x1c38) return true\n        if (cp < 0x1c40) return false\n        if (cp < 0x1c4a) return true\n        if (cp < 0x1c50) return false\n        if (cp < 0x1c5a) return true\n        return false\n    }\n    if (cp < 0x1123e) {\n        if (cp < 0xaab7) {\n            if (cp < 0xa8b4) {\n                if (cp < 0x2d7f) {\n                    if (cp < 0x1cf8) {\n                        if (cp < 0x1cd0) return false\n                        if (cp < 0x1cd3) return true\n                        if (cp < 0x1cd4) return false\n                        if (cp < 0x1ce1) return true\n                        if (cp === 0x1ce1) return true\n                        if (cp < 0x1ce2) return false\n                        if (cp < 0x1ce9) return true\n                        if (cp === 0x1ced) return true\n                        if (cp < 0x1cf2) return false\n                        if (cp < 0x1cf4) return true\n                        if (cp === 0x1cf4) return true\n                        if (cp === 0x1cf7) return true\n                        return false\n                    }\n                    if (cp < 0x1cfa) return true\n                    if (cp < 0x1dc0) return false\n                    if (cp < 0x1dfa) return true\n                    if (cp < 0x1dfb) return false\n                    if (cp < 0x1e00) return true\n                    if (cp < 0x203f) return false\n                    if (cp < 0x2041) return true\n                    if (cp === 0x2054) return true\n                    if (cp < 0x20d0) return false\n                    if (cp < 0x20dd) return true\n                    if (cp === 0x20e1) return true\n                    if (cp < 0x20e5) return false\n                    if (cp < 0x20f1) return true\n                    if (cp < 0x2cef) return false\n                    if (cp < 0x2cf2) return true\n                    return false\n                }\n                if (cp < 0xa69e) {\n                    if (cp === 0x2d7f) return true\n                    if (cp < 0x2de0) return false\n                    if (cp < 0x2e00) return true\n                    if (cp < 0x302a) return false\n                    if (cp < 0x302e) return true\n                    if (cp < 0x302e) return false\n                    if (cp < 0x3030) return true\n                    if (cp < 0x3099) return false\n                    if (cp < 0x309b) return true\n                    if (cp < 0xa620) return false\n                    if (cp < 0xa62a) return true\n                    if (cp === 0xa66f) return true\n                    if (cp < 0xa674) return false\n                    if (cp < 0xa67e) return true\n                    return false\n                }\n                if (cp < 0xa6a0) return true\n                if (cp < 0xa6f0) return false\n                if (cp < 0xa6f2) return true\n                if (cp === 0xa802) return true\n                if (cp === 0xa806) return true\n                if (cp === 0xa80b) return true\n                if (cp < 0xa823) return false\n                if (cp < 0xa825) return true\n                if (cp < 0xa825) return false\n                if (cp < 0xa827) return true\n                if (cp === 0xa827) return true\n                if (cp < 0xa880) return false\n                if (cp < 0xa882) return true\n                return false\n            }\n            if (cp < 0xa9d0) {\n                if (cp < 0xa952) {\n                    if (cp < 0xa8b4) return false\n                    if (cp < 0xa8c4) return true\n                    if (cp < 0xa8c4) return false\n                    if (cp < 0xa8c6) return true\n                    if (cp < 0xa8d0) return false\n                    if (cp < 0xa8da) return true\n                    if (cp < 0xa8e0) return false\n                    if (cp < 0xa8f2) return true\n                    if (cp === 0xa8ff) return true\n                    if (cp < 0xa900) return false\n                    if (cp < 0xa90a) return true\n                    if (cp < 0xa926) return false\n                    if (cp < 0xa92e) return true\n                    if (cp < 0xa947) return false\n                    if (cp < 0xa952) return true\n                    return false\n                }\n                if (cp < 0xa954) return true\n                if (cp < 0xa980) return false\n                if (cp < 0xa983) return true\n                if (cp === 0xa983) return true\n                if (cp === 0xa9b3) return true\n                if (cp < 0xa9b4) return false\n                if (cp < 0xa9b6) return true\n                if (cp < 0xa9b6) return false\n                if (cp < 0xa9ba) return true\n                if (cp < 0xa9ba) return false\n                if (cp < 0xa9bc) return true\n                if (cp === 0xa9bc) return true\n                if (cp < 0xa9bd) return false\n                if (cp < 0xa9c1) return true\n                return false\n            }\n            if (cp < 0xaa43) {\n                if (cp < 0xa9d0) return false\n                if (cp < 0xa9da) return true\n                if (cp === 0xa9e5) return true\n                if (cp < 0xa9f0) return false\n                if (cp < 0xa9fa) return true\n                if (cp < 0xaa29) return false\n                if (cp < 0xaa2f) return true\n                if (cp < 0xaa2f) return false\n                if (cp < 0xaa31) return true\n                if (cp < 0xaa31) return false\n                if (cp < 0xaa33) return true\n                if (cp < 0xaa33) return false\n                if (cp < 0xaa35) return true\n                if (cp < 0xaa35) return false\n                if (cp < 0xaa37) return true\n                return false\n            }\n            if (cp === 0xaa43) return true\n            if (cp === 0xaa4c) return true\n            if (cp === 0xaa4d) return true\n            if (cp < 0xaa50) return false\n            if (cp < 0xaa5a) return true\n            if (cp === 0xaa7b) return true\n            if (cp === 0xaa7c) return true\n            if (cp === 0xaa7d) return true\n            if (cp === 0xaab0) return true\n            if (cp < 0xaab2) return false\n            if (cp < 0xaab5) return true\n            return false\n        }\n        if (cp < 0x10d30) {\n            if (cp < 0xfe00) {\n                if (cp < 0xabe3) {\n                    if (cp < 0xaab7) return false\n                    if (cp < 0xaab9) return true\n                    if (cp < 0xaabe) return false\n                    if (cp < 0xaac0) return true\n                    if (cp === 0xaac1) return true\n                    if (cp === 0xaaeb) return true\n                    if (cp < 0xaaec) return false\n                    if (cp < 0xaaee) return true\n                    if (cp < 0xaaee) return false\n                    if (cp < 0xaaf0) return true\n                    if (cp === 0xaaf5) return true\n                    if (cp === 0xaaf6) return true\n                    return false\n                }\n                if (cp < 0xabe5) return true\n                if (cp === 0xabe5) return true\n                if (cp < 0xabe6) return false\n                if (cp < 0xabe8) return true\n                if (cp === 0xabe8) return true\n                if (cp < 0xabe9) return false\n                if (cp < 0xabeb) return true\n                if (cp === 0xabec) return true\n                if (cp === 0xabed) return true\n                if (cp < 0xabf0) return false\n                if (cp < 0xabfa) return true\n                if (cp === 0xfb1e) return true\n                return false\n            }\n            if (cp < 0x10376) {\n                if (cp < 0xfe00) return false\n                if (cp < 0xfe10) return true\n                if (cp < 0xfe20) return false\n                if (cp < 0xfe30) return true\n                if (cp < 0xfe33) return false\n                if (cp < 0xfe35) return true\n                if (cp < 0xfe4d) return false\n                if (cp < 0xfe50) return true\n                if (cp < 0xff10) return false\n                if (cp < 0xff1a) return true\n                if (cp === 0xff3f) return true\n                if (cp === 0x101fd) return true\n                if (cp === 0x102e0) return true\n                return false\n            }\n            if (cp < 0x1037b) return true\n            if (cp < 0x104a0) return false\n            if (cp < 0x104aa) return true\n            if (cp < 0x10a01) return false\n            if (cp < 0x10a04) return true\n            if (cp < 0x10a05) return false\n            if (cp < 0x10a07) return true\n            if (cp < 0x10a0c) return false\n            if (cp < 0x10a10) return true\n            if (cp < 0x10a38) return false\n            if (cp < 0x10a3b) return true\n            if (cp === 0x10a3f) return true\n            if (cp < 0x10ae5) return false\n            if (cp < 0x10ae7) return true\n            if (cp < 0x10d24) return false\n            if (cp < 0x10d28) return true\n            return false\n        }\n        if (cp < 0x1112d) {\n            if (cp < 0x11082) {\n                if (cp < 0x10d30) return false\n                if (cp < 0x10d3a) return true\n                if (cp < 0x10f46) return false\n                if (cp < 0x10f51) return true\n                if (cp === 0x11000) return true\n                if (cp === 0x11001) return true\n                if (cp === 0x11002) return true\n                if (cp < 0x11038) return false\n                if (cp < 0x11047) return true\n                if (cp < 0x11066) return false\n                if (cp < 0x11070) return true\n                if (cp < 0x1107f) return false\n                if (cp < 0x11082) return true\n                return false\n            }\n            if (cp === 0x11082) return true\n            if (cp < 0x110b0) return false\n            if (cp < 0x110b3) return true\n            if (cp < 0x110b3) return false\n            if (cp < 0x110b7) return true\n            if (cp < 0x110b7) return false\n            if (cp < 0x110b9) return true\n            if (cp < 0x110b9) return false\n            if (cp < 0x110bb) return true\n            if (cp < 0x110f0) return false\n            if (cp < 0x110fa) return true\n            if (cp < 0x11100) return false\n            if (cp < 0x11103) return true\n            if (cp < 0x11127) return false\n            if (cp < 0x1112c) return true\n            if (cp === 0x1112c) return true\n            return false\n        }\n        if (cp < 0x111bf) {\n            if (cp < 0x1112d) return false\n            if (cp < 0x11135) return true\n            if (cp < 0x11136) return false\n            if (cp < 0x11140) return true\n            if (cp < 0x11145) return false\n            if (cp < 0x11147) return true\n            if (cp === 0x11173) return true\n            if (cp < 0x11180) return false\n            if (cp < 0x11182) return true\n            if (cp === 0x11182) return true\n            if (cp < 0x111b3) return false\n            if (cp < 0x111b6) return true\n            if (cp < 0x111b6) return false\n            if (cp < 0x111bf) return true\n            return false\n        }\n        if (cp < 0x111c1) return true\n        if (cp < 0x111c9) return false\n        if (cp < 0x111cd) return true\n        if (cp < 0x111d0) return false\n        if (cp < 0x111da) return true\n        if (cp < 0x1122c) return false\n        if (cp < 0x1122f) return true\n        if (cp < 0x1122f) return false\n        if (cp < 0x11232) return true\n        if (cp < 0x11232) return false\n        if (cp < 0x11234) return true\n        if (cp === 0x11234) return true\n        if (cp === 0x11235) return true\n        if (cp < 0x11236) return false\n        if (cp < 0x11238) return true\n        return false\n    }\n    if (cp < 0x11a33) {\n        if (cp < 0x115af) {\n            if (cp < 0x11435) {\n                if (cp < 0x1133e) {\n                    if (cp === 0x1123e) return true\n                    if (cp === 0x112df) return true\n                    if (cp < 0x112e0) return false\n                    if (cp < 0x112e3) return true\n                    if (cp < 0x112e3) return false\n                    if (cp < 0x112eb) return true\n                    if (cp < 0x112f0) return false\n                    if (cp < 0x112fa) return true\n                    if (cp < 0x11300) return false\n                    if (cp < 0x11302) return true\n                    if (cp < 0x11302) return false\n                    if (cp < 0x11304) return true\n                    if (cp < 0x1133b) return false\n                    if (cp < 0x1133d) return true\n                    return false\n                }\n                if (cp < 0x11340) return true\n                if (cp === 0x11340) return true\n                if (cp < 0x11341) return false\n                if (cp < 0x11345) return true\n                if (cp < 0x11347) return false\n                if (cp < 0x11349) return true\n                if (cp < 0x1134b) return false\n                if (cp < 0x1134e) return true\n                if (cp === 0x11357) return true\n                if (cp < 0x11362) return false\n                if (cp < 0x11364) return true\n                if (cp < 0x11366) return false\n                if (cp < 0x1136d) return true\n                if (cp < 0x11370) return false\n                if (cp < 0x11375) return true\n                return false\n            }\n            if (cp < 0x114b0) {\n                if (cp < 0x11435) return false\n                if (cp < 0x11438) return true\n                if (cp < 0x11438) return false\n                if (cp < 0x11440) return true\n                if (cp < 0x11440) return false\n                if (cp < 0x11442) return true\n                if (cp < 0x11442) return false\n                if (cp < 0x11445) return true\n                if (cp === 0x11445) return true\n                if (cp === 0x11446) return true\n                if (cp < 0x11450) return false\n                if (cp < 0x1145a) return true\n                if (cp === 0x1145e) return true\n                return false\n            }\n            if (cp < 0x114b3) return true\n            if (cp < 0x114b3) return false\n            if (cp < 0x114b9) return true\n            if (cp === 0x114b9) return true\n            if (cp === 0x114ba) return true\n            if (cp < 0x114bb) return false\n            if (cp < 0x114bf) return true\n            if (cp < 0x114bf) return false\n            if (cp < 0x114c1) return true\n            if (cp === 0x114c1) return true\n            if (cp < 0x114c2) return false\n            if (cp < 0x114c4) return true\n            if (cp < 0x114d0) return false\n            if (cp < 0x114da) return true\n            return false\n        }\n        if (cp < 0x116ae) {\n            if (cp < 0x11633) {\n                if (cp < 0x115af) return false\n                if (cp < 0x115b2) return true\n                if (cp < 0x115b2) return false\n                if (cp < 0x115b6) return true\n                if (cp < 0x115b8) return false\n                if (cp < 0x115bc) return true\n                if (cp < 0x115bc) return false\n                if (cp < 0x115be) return true\n                if (cp === 0x115be) return true\n                if (cp < 0x115bf) return false\n                if (cp < 0x115c1) return true\n                if (cp < 0x115dc) return false\n                if (cp < 0x115de) return true\n                if (cp < 0x11630) return false\n                if (cp < 0x11633) return true\n                return false\n            }\n            if (cp < 0x1163b) return true\n            if (cp < 0x1163b) return false\n            if (cp < 0x1163d) return true\n            if (cp === 0x1163d) return true\n            if (cp === 0x1163e) return true\n            if (cp < 0x1163f) return false\n            if (cp < 0x11641) return true\n            if (cp < 0x11650) return false\n            if (cp < 0x1165a) return true\n            if (cp === 0x116ab) return true\n            if (cp === 0x116ac) return true\n            if (cp === 0x116ad) return true\n            return false\n        }\n        if (cp < 0x11726) {\n            if (cp < 0x116ae) return false\n            if (cp < 0x116b0) return true\n            if (cp < 0x116b0) return false\n            if (cp < 0x116b6) return true\n            if (cp === 0x116b6) return true\n            if (cp === 0x116b7) return true\n            if (cp < 0x116c0) return false\n            if (cp < 0x116ca) return true\n            if (cp < 0x1171d) return false\n            if (cp < 0x11720) return true\n            if (cp < 0x11720) return false\n            if (cp < 0x11722) return true\n            if (cp < 0x11722) return false\n            if (cp < 0x11726) return true\n            return false\n        }\n        if (cp === 0x11726) return true\n        if (cp < 0x11727) return false\n        if (cp < 0x1172c) return true\n        if (cp < 0x11730) return false\n        if (cp < 0x1173a) return true\n        if (cp < 0x1182c) return false\n        if (cp < 0x1182f) return true\n        if (cp < 0x1182f) return false\n        if (cp < 0x11838) return true\n        if (cp === 0x11838) return true\n        if (cp < 0x11839) return false\n        if (cp < 0x1183b) return true\n        if (cp < 0x118e0) return false\n        if (cp < 0x118ea) return true\n        if (cp < 0x11a01) return false\n        if (cp < 0x11a0b) return true\n        return false\n    }\n    if (cp < 0x11d97) {\n        if (cp < 0x11ca9) {\n            if (cp < 0x11a97) {\n                if (cp < 0x11a33) return false\n                if (cp < 0x11a39) return true\n                if (cp === 0x11a39) return true\n                if (cp < 0x11a3b) return false\n                if (cp < 0x11a3f) return true\n                if (cp === 0x11a47) return true\n                if (cp < 0x11a51) return false\n                if (cp < 0x11a57) return true\n                if (cp < 0x11a57) return false\n                if (cp < 0x11a59) return true\n                if (cp < 0x11a59) return false\n                if (cp < 0x11a5c) return true\n                if (cp < 0x11a8a) return false\n                if (cp < 0x11a97) return true\n                return false\n            }\n            if (cp === 0x11a97) return true\n            if (cp < 0x11a98) return false\n            if (cp < 0x11a9a) return true\n            if (cp === 0x11c2f) return true\n            if (cp < 0x11c30) return false\n            if (cp < 0x11c37) return true\n            if (cp < 0x11c38) return false\n            if (cp < 0x11c3e) return true\n            if (cp === 0x11c3e) return true\n            if (cp === 0x11c3f) return true\n            if (cp < 0x11c50) return false\n            if (cp < 0x11c5a) return true\n            if (cp < 0x11c92) return false\n            if (cp < 0x11ca8) return true\n            return false\n        }\n        if (cp < 0x11d3c) {\n            if (cp === 0x11ca9) return true\n            if (cp < 0x11caa) return false\n            if (cp < 0x11cb1) return true\n            if (cp === 0x11cb1) return true\n            if (cp < 0x11cb2) return false\n            if (cp < 0x11cb4) return true\n            if (cp === 0x11cb4) return true\n            if (cp < 0x11cb5) return false\n            if (cp < 0x11cb7) return true\n            if (cp < 0x11d31) return false\n            if (cp < 0x11d37) return true\n            if (cp === 0x11d3a) return true\n            return false\n        }\n        if (cp < 0x11d3e) return true\n        if (cp < 0x11d3f) return false\n        if (cp < 0x11d46) return true\n        if (cp === 0x11d47) return true\n        if (cp < 0x11d50) return false\n        if (cp < 0x11d5a) return true\n        if (cp < 0x11d8a) return false\n        if (cp < 0x11d8f) return true\n        if (cp < 0x11d90) return false\n        if (cp < 0x11d92) return true\n        if (cp < 0x11d93) return false\n        if (cp < 0x11d95) return true\n        if (cp === 0x11d95) return true\n        if (cp === 0x11d96) return true\n        return false\n    }\n    if (cp < 0x1d242) {\n        if (cp < 0x16f51) {\n            if (cp === 0x11d97) return true\n            if (cp < 0x11da0) return false\n            if (cp < 0x11daa) return true\n            if (cp < 0x11ef3) return false\n            if (cp < 0x11ef5) return true\n            if (cp < 0x11ef5) return false\n            if (cp < 0x11ef7) return true\n            if (cp < 0x16a60) return false\n            if (cp < 0x16a6a) return true\n            if (cp < 0x16af0) return false\n            if (cp < 0x16af5) return true\n            if (cp < 0x16b30) return false\n            if (cp < 0x16b37) return true\n            if (cp < 0x16b50) return false\n            if (cp < 0x16b5a) return true\n            return false\n        }\n        if (cp < 0x16f7f) return true\n        if (cp < 0x16f8f) return false\n        if (cp < 0x16f93) return true\n        if (cp < 0x1bc9d) return false\n        if (cp < 0x1bc9f) return true\n        if (cp < 0x1d165) return false\n        if (cp < 0x1d167) return true\n        if (cp < 0x1d167) return false\n        if (cp < 0x1d16a) return true\n        if (cp < 0x1d16d) return false\n        if (cp < 0x1d173) return true\n        if (cp < 0x1d17b) return false\n        if (cp < 0x1d183) return true\n        if (cp < 0x1d185) return false\n        if (cp < 0x1d18c) return true\n        if (cp < 0x1d1aa) return false\n        if (cp < 0x1d1ae) return true\n        return false\n    }\n    if (cp < 0x1e000) {\n        if (cp < 0x1d242) return false\n        if (cp < 0x1d245) return true\n        if (cp < 0x1d7ce) return false\n        if (cp < 0x1d800) return true\n        if (cp < 0x1da00) return false\n        if (cp < 0x1da37) return true\n        if (cp < 0x1da3b) return false\n        if (cp < 0x1da6d) return true\n        if (cp === 0x1da75) return true\n        if (cp === 0x1da84) return true\n        if (cp < 0x1da9b) return false\n        if (cp < 0x1daa0) return true\n        if (cp < 0x1daa1) return false\n        if (cp < 0x1dab0) return true\n        return false\n    }\n    if (cp < 0x1e007) return true\n    if (cp < 0x1e008) return false\n    if (cp < 0x1e019) return true\n    if (cp < 0x1e01b) return false\n    if (cp < 0x1e022) return true\n    if (cp < 0x1e023) return false\n    if (cp < 0x1e025) return true\n    if (cp < 0x1e026) return false\n    if (cp < 0x1e02b) return true\n    if (cp < 0x1e8d0) return false\n    if (cp < 0x1e8d7) return true\n    if (cp < 0x1e944) return false\n    if (cp < 0x1e94b) return true\n    if (cp < 0x1e950) return false\n    if (cp < 0x1e95a) return true\n    if (cp < 0xe0100) return false\n    if (cp < 0xe01f0) return true\n    return false\n}\n","const PropertyData: Object & { [key: string]: Set<string> } = {\n    $LONE: new Set([\n        \"ASCII\",\n        \"ASCII_Hex_Digit\",\n        \"AHex\",\n        \"Alphabetic\",\n        \"Alpha\",\n        \"Any\",\n        \"Assigned\",\n        \"Bidi_Control\",\n        \"Bidi_C\",\n        \"Bidi_Mirrored\",\n        \"Bidi_M\",\n        \"Case_Ignorable\",\n        \"CI\",\n        \"Cased\",\n        \"Changes_When_Casefolded\",\n        \"CWCF\",\n        \"Changes_When_Casemapped\",\n        \"CWCM\",\n        \"Changes_When_Lowercased\",\n        \"CWL\",\n        \"Changes_When_NFKC_Casefolded\",\n        \"CWKCF\",\n        \"Changes_When_Titlecased\",\n        \"CWT\",\n        \"Changes_When_Uppercased\",\n        \"CWU\",\n        \"Dash\",\n        \"Default_Ignorable_Code_Point\",\n        \"DI\",\n        \"Deprecated\",\n        \"Dep\",\n        \"Diacritic\",\n        \"Dia\",\n        \"Emoji\",\n        \"Emoji_Component\",\n        \"Emoji_Modifier\",\n        \"Emoji_Modifier_Base\",\n        \"Emoji_Presentation\",\n        \"Extender\",\n        \"Ext\",\n        \"Grapheme_Base\",\n        \"Gr_Base\",\n        \"Grapheme_Extend\",\n        \"Gr_Ext\",\n        \"Hex_Digit\",\n        \"Hex\",\n        \"IDS_Binary_Operator\",\n        \"IDSB\",\n        \"IDS_Trinary_Operator\",\n        \"IDST\",\n        \"ID_Continue\",\n        \"IDC\",\n        \"ID_Start\",\n        \"IDS\",\n        \"Ideographic\",\n        \"Ideo\",\n        \"Join_Control\",\n        \"Join_C\",\n        \"Logical_Order_Exception\",\n        \"LOE\",\n        \"Lowercase\",\n        \"Lower\",\n        \"Math\",\n        \"Noncharacter_Code_Point\",\n        \"NChar\",\n        \"Pattern_Syntax\",\n        \"Pat_Syn\",\n        \"Pattern_White_Space\",\n        \"Pat_WS\",\n        \"Quotation_Mark\",\n        \"QMark\",\n        \"Radical\",\n        \"Regional_Indicator\",\n        \"RI\",\n        \"Sentence_Terminal\",\n        \"STerm\",\n        \"Soft_Dotted\",\n        \"SD\",\n        \"Terminal_Punctuation\",\n        \"Term\",\n        \"Unified_Ideograph\",\n        \"UIdeo\",\n        \"Uppercase\",\n        \"Upper\",\n        \"Variation_Selector\",\n        \"VS\",\n        \"White_Space\",\n        \"space\",\n        \"XID_Continue\",\n        \"XIDC\",\n        \"XID_Start\",\n        \"XIDS\",\n    ]),\n    General_Category: new Set([\n        \"Cased_Letter\",\n        \"LC\",\n        \"Close_Punctuation\",\n        \"Pe\",\n        \"Connector_Punctuation\",\n        \"Pc\",\n        \"Control\",\n        \"Cc\",\n        \"cntrl\",\n        \"Currency_Symbol\",\n        \"Sc\",\n        \"Dash_Punctuation\",\n        \"Pd\",\n        \"Decimal_Number\",\n        \"Nd\",\n        \"digit\",\n        \"Enclosing_Mark\",\n        \"Me\",\n        \"Final_Punctuation\",\n        \"Pf\",\n        \"Format\",\n        \"Cf\",\n        \"Initial_Punctuation\",\n        \"Pi\",\n        \"Letter\",\n        \"L\",\n        \"Letter_Number\",\n        \"Nl\",\n        \"Line_Separator\",\n        \"Zl\",\n        \"Lowercase_Letter\",\n        \"Ll\",\n        \"Mark\",\n        \"M\",\n        \"Combining_Mark\",\n        \"Math_Symbol\",\n        \"Sm\",\n        \"Modifier_Letter\",\n        \"Lm\",\n        \"Modifier_Symbol\",\n        \"Sk\",\n        \"Nonspacing_Mark\",\n        \"Mn\",\n        \"Number\",\n        \"N\",\n        \"Open_Punctuation\",\n        \"Ps\",\n        \"Other\",\n        \"C\",\n        \"Other_Letter\",\n        \"Lo\",\n        \"Other_Number\",\n        \"No\",\n        \"Other_Punctuation\",\n        \"Po\",\n        \"Other_Symbol\",\n        \"So\",\n        \"Paragraph_Separator\",\n        \"Zp\",\n        \"Private_Use\",\n        \"Co\",\n        \"Punctuation\",\n        \"P\",\n        \"punct\",\n        \"Separator\",\n        \"Z\",\n        \"Space_Separator\",\n        \"Zs\",\n        \"Spacing_Mark\",\n        \"Mc\",\n        \"Surrogate\",\n        \"Cs\",\n        \"Symbol\",\n        \"S\",\n        \"Titlecase_Letter\",\n        \"Lt\",\n        \"Unassigned\",\n        \"Cn\",\n        \"Uppercase_Letter\",\n        \"Lu\",\n    ]),\n    Script: new Set([\n        \"Adlam\",\n        \"Adlm\",\n        \"Ahom\",\n        \"Anatolian_Hieroglyphs\",\n        \"Hluw\",\n        \"Arabic\",\n        \"Arab\",\n        \"Armenian\",\n        \"Armn\",\n        \"Avestan\",\n        \"Avst\",\n        \"Balinese\",\n        \"Bali\",\n        \"Bamum\",\n        \"Bamu\",\n        \"Bassa_Vah\",\n        \"Bass\",\n        \"Batak\",\n        \"Batk\",\n        \"Bengali\",\n        \"Beng\",\n        \"Bhaiksuki\",\n        \"Bhks\",\n        \"Bopomofo\",\n        \"Bopo\",\n        \"Brahmi\",\n        \"Brah\",\n        \"Braille\",\n        \"Brai\",\n        \"Buginese\",\n        \"Bugi\",\n        \"Buhid\",\n        \"Buhd\",\n        \"Canadian_Aboriginal\",\n        \"Cans\",\n        \"Carian\",\n        \"Cari\",\n        \"Caucasian_Albanian\",\n        \"Aghb\",\n        \"Chakma\",\n        \"Cakm\",\n        \"Cham\",\n        \"Cherokee\",\n        \"Cher\",\n        \"Common\",\n        \"Zyyy\",\n        \"Coptic\",\n        \"Copt\",\n        \"Qaac\",\n        \"Cuneiform\",\n        \"Xsux\",\n        \"Cypriot\",\n        \"Cprt\",\n        \"Cyrillic\",\n        \"Cyrl\",\n        \"Deseret\",\n        \"Dsrt\",\n        \"Devanagari\",\n        \"Deva\",\n        \"Duployan\",\n        \"Dupl\",\n        \"Egyptian_Hieroglyphs\",\n        \"Egyp\",\n        \"Elbasan\",\n        \"Elba\",\n        \"Ethiopic\",\n        \"Ethi\",\n        \"Georgian\",\n        \"Geor\",\n        \"Glagolitic\",\n        \"Glag\",\n        \"Gothic\",\n        \"Goth\",\n        \"Grantha\",\n        \"Gran\",\n        \"Greek\",\n        \"Grek\",\n        \"Gujarati\",\n        \"Gujr\",\n        \"Gurmukhi\",\n        \"Guru\",\n        \"Han\",\n        \"Hani\",\n        \"Hangul\",\n        \"Hang\",\n        \"Hanunoo\",\n        \"Hano\",\n        \"Hatran\",\n        \"Hatr\",\n        \"Hebrew\",\n        \"Hebr\",\n        \"Hiragana\",\n        \"Hira\",\n        \"Imperial_Aramaic\",\n        \"Armi\",\n        \"Inherited\",\n        \"Zinh\",\n        \"Qaai\",\n        \"Inscriptional_Pahlavi\",\n        \"Phli\",\n        \"Inscriptional_Parthian\",\n        \"Prti\",\n        \"Javanese\",\n        \"Java\",\n        \"Kaithi\",\n        \"Kthi\",\n        \"Kannada\",\n        \"Knda\",\n        \"Katakana\",\n        \"Kana\",\n        \"Kayah_Li\",\n        \"Kali\",\n        \"Kharoshthi\",\n        \"Khar\",\n        \"Khmer\",\n        \"Khmr\",\n        \"Khojki\",\n        \"Khoj\",\n        \"Khudawadi\",\n        \"Sind\",\n        \"Lao\",\n        \"Laoo\",\n        \"Latin\",\n        \"Latn\",\n        \"Lepcha\",\n        \"Lepc\",\n        \"Limbu\",\n        \"Limb\",\n        \"Linear_A\",\n        \"Lina\",\n        \"Linear_B\",\n        \"Linb\",\n        \"Lisu\",\n        \"Lycian\",\n        \"Lyci\",\n        \"Lydian\",\n        \"Lydi\",\n        \"Mahajani\",\n        \"Mahj\",\n        \"Malayalam\",\n        \"Mlym\",\n        \"Mandaic\",\n        \"Mand\",\n        \"Manichaean\",\n        \"Mani\",\n        \"Marchen\",\n        \"Marc\",\n        \"Masaram_Gondi\",\n        \"Gonm\",\n        \"Meetei_Mayek\",\n        \"Mtei\",\n        \"Mende_Kikakui\",\n        \"Mend\",\n        \"Meroitic_Cursive\",\n        \"Merc\",\n        \"Meroitic_Hieroglyphs\",\n        \"Mero\",\n        \"Miao\",\n        \"Plrd\",\n        \"Modi\",\n        \"Mongolian\",\n        \"Mong\",\n        \"Mro\",\n        \"Mroo\",\n        \"Multani\",\n        \"Mult\",\n        \"Myanmar\",\n        \"Mymr\",\n        \"Nabataean\",\n        \"Nbat\",\n        \"New_Tai_Lue\",\n        \"Talu\",\n        \"Newa\",\n        \"Nko\",\n        \"Nkoo\",\n        \"Nushu\",\n        \"Nshu\",\n        \"Ogham\",\n        \"Ogam\",\n        \"Ol_Chiki\",\n        \"Olck\",\n        \"Old_Hungarian\",\n        \"Hung\",\n        \"Old_Italic\",\n        \"Ital\",\n        \"Old_North_Arabian\",\n        \"Narb\",\n        \"Old_Permic\",\n        \"Perm\",\n        \"Old_Persian\",\n        \"Xpeo\",\n        \"Old_South_Arabian\",\n        \"Sarb\",\n        \"Old_Turkic\",\n        \"Orkh\",\n        \"Oriya\",\n        \"Orya\",\n        \"Osage\",\n        \"Osge\",\n        \"Osmanya\",\n        \"Osma\",\n        \"Pahawh_Hmong\",\n        \"Hmng\",\n        \"Palmyrene\",\n        \"Palm\",\n        \"Pau_Cin_Hau\",\n        \"Pauc\",\n        \"Phags_Pa\",\n        \"Phag\",\n        \"Phoenician\",\n        \"Phnx\",\n        \"Psalter_Pahlavi\",\n        \"Phlp\",\n        \"Rejang\",\n        \"Rjng\",\n        \"Runic\",\n        \"Runr\",\n        \"Samaritan\",\n        \"Samr\",\n        \"Saurashtra\",\n        \"Saur\",\n        \"Sharada\",\n        \"Shrd\",\n        \"Shavian\",\n        \"Shaw\",\n        \"Siddham\",\n        \"Sidd\",\n        \"SignWriting\",\n        \"Sgnw\",\n        \"Sinhala\",\n        \"Sinh\",\n        \"Sora_Sompeng\",\n        \"Sora\",\n        \"Soyombo\",\n        \"Soyo\",\n        \"Sundanese\",\n        \"Sund\",\n        \"Syloti_Nagri\",\n        \"Sylo\",\n        \"Syriac\",\n        \"Syrc\",\n        \"Tagalog\",\n        \"Tglg\",\n        \"Tagbanwa\",\n        \"Tagb\",\n        \"Tai_Le\",\n        \"Tale\",\n        \"Tai_Tham\",\n        \"Lana\",\n        \"Tai_Viet\",\n        \"Tavt\",\n        \"Takri\",\n        \"Takr\",\n        \"Tamil\",\n        \"Taml\",\n        \"Tangut\",\n        \"Tang\",\n        \"Telugu\",\n        \"Telu\",\n        \"Thaana\",\n        \"Thaa\",\n        \"Thai\",\n        \"Tibetan\",\n        \"Tibt\",\n        \"Tifinagh\",\n        \"Tfng\",\n        \"Tirhuta\",\n        \"Tirh\",\n        \"Ugaritic\",\n        \"Ugar\",\n        \"Vai\",\n        \"Vaii\",\n        \"Warang_Citi\",\n        \"Wara\",\n        \"Yi\",\n        \"Yiii\",\n        \"Zanabazar_Square\",\n        \"Zanb\",\n    ]),\n}\n\nPropertyData.gc = PropertyData.General_Category\nPropertyData.sc = PropertyData.Script_Extensions = PropertyData.scx =\n    PropertyData.Script\n\nexport { PropertyData }\n","export { isIdContinue, isIdStart } from \"./ids\"\nexport { PropertyData } from \"./property-data\"\n\nexport const Null = 0x00\nexport const Backspace = 0x08\nexport const CharacterTabulation = 0x09\nexport const LineFeed = 0x0a\nexport const LineTabulation = 0x0b\nexport const FormFeed = 0x0c\nexport const CarriageReturn = 0x0d\nexport const ExclamationMark = 0x21\nexport const DollarSign = 0x24\nexport const LeftParenthesis = 0x28\nexport const RightParenthesis = 0x29\nexport const Asterisk = 0x2a\nexport const PlusSign = 0x2b\nexport const Comma = 0x2c\nexport const HyphenMinus = 0x2d\nexport const FullStop = 0x2e\nexport const Solidus = 0x2f\nexport const DigitZero = 0x30\nexport const DigitOne = 0x31\nexport const DigitSeven = 0x37\nexport const DigitNine = 0x39\nexport const Colon = 0x3a\nexport const LessThanSign = 0x3c\nexport const EqualsSign = 0x3d\nexport const GreaterThanSign = 0x3e\nexport const QuestionMark = 0x3f\nexport const LatinCapitalLetterA = 0x41\nexport const LatinCapitalLetterB = 0x42\nexport const LatinCapitalLetterD = 0x44\nexport const LatinCapitalLetterF = 0x46\nexport const LatinCapitalLetterP = 0x50\nexport const LatinCapitalLetterS = 0x53\nexport const LatinCapitalLetterW = 0x57\nexport const LatinCapitalLetterZ = 0x5a\nexport const LowLine = 0x5f\nexport const LatinSmallLetterA = 0x61\nexport const LatinSmallLetterB = 0x62\nexport const LatinSmallLetterC = 0x63\nexport const LatinSmallLetterD = 0x64\nexport const LatinSmallLetterF = 0x66\nexport const LatinSmallLetterG = 0x67\nexport const LatinSmallLetterI = 0x69\nexport const LatinSmallLetterK = 0x6b\nexport const LatinSmallLetterM = 0x6d\nexport const LatinSmallLetterN = 0x6e\nexport const LatinSmallLetterP = 0x70\nexport const LatinSmallLetterR = 0x72\nexport const LatinSmallLetterS = 0x73\nexport const LatinSmallLetterT = 0x74\nexport const LatinSmallLetterU = 0x75\nexport const LatinSmallLetterV = 0x76\nexport const LatinSmallLetterW = 0x77\nexport const LatinSmallLetterX = 0x78\nexport const LatinSmallLetterY = 0x79\nexport const LatinSmallLetterZ = 0x7a\nexport const LeftSquareBracket = 0x5b\nexport const ReverseSolidus = 0x5c\nexport const RightSquareBracket = 0x5d\nexport const CircumflexAccent = 0x5e\nexport const LeftCurlyBracket = 0x7b\nexport const VerticalLine = 0x7c\nexport const RightCurlyBracket = 0x7d\nexport const ZeroWidthNonJoiner = 0x200c\nexport const ZeroWidthJoiner = 0x200d\nexport const LineSeparator = 0x2028\nexport const ParagraphSeparator = 0x2029\n\nexport const MinCodePoint = 0x00\nexport const MaxCodePoint = 0x10ffff\n\nexport function isLatinLetter(code: number): boolean {\n    return (\n        (code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ) ||\n        (code >= LatinSmallLetterA && code <= LatinSmallLetterZ)\n    )\n}\n\nexport function isDecimalDigit(code: number): boolean {\n    return code >= DigitZero && code <= DigitNine\n}\n\nexport function isOctalDigit(code: number): boolean {\n    return code >= DigitZero && code <= DigitSeven\n}\n\nexport function isHexDigit(code: number): boolean {\n    return (\n        (code >= DigitZero && code <= DigitNine) ||\n        (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) ||\n        (code >= LatinSmallLetterA && code <= LatinSmallLetterF)\n    )\n}\n\nexport function isLineTerminator(code: number): boolean {\n    return (\n        code === LineFeed ||\n        code === CarriageReturn ||\n        code === LineSeparator ||\n        code === ParagraphSeparator\n    )\n}\n\nexport function isValidUnicode(code: number): boolean {\n    return code >= MinCodePoint && code <= MaxCodePoint\n}\n\nexport function digitToInt(code: number): number {\n    if (code >= LatinSmallLetterA && code <= LatinSmallLetterF) {\n        return code - LatinSmallLetterA + 10\n    }\n    if (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) {\n        return code - LatinCapitalLetterA + 10\n    }\n    return code - DigitZero\n}\n","const legacyImpl = {\n    at(s: string, end: number, i: number): number {\n        return i < end ? s.charCodeAt(i) : -1\n    },\n    width(c: number): number {\n        return 1\n    },\n}\nconst unicodeImpl = {\n    at(s: string, end: number, i: number): number {\n        return i < end ? s.codePointAt(i)! : -1\n    },\n    width(c: number): number {\n        return c > 0xffff ? 2 : 1\n    },\n}\n\nexport class Reader {\n    private _impl = legacyImpl\n    private _s = \"\"\n    private _i = 0\n    private _end = 0\n    private _cp1: number = -1\n    private _w1 = 1\n    private _cp2: number = -1\n    private _w2 = 1\n    private _cp3: number = -1\n    private _w3 = 1\n    private _cp4: number = -1\n\n    public get source(): string {\n        return this._s\n    }\n\n    public get index(): number {\n        return this._i\n    }\n\n    public get currentCodePoint(): number {\n        return this._cp1\n    }\n\n    public get nextCodePoint(): number {\n        return this._cp2\n    }\n\n    public get nextCodePoint2(): number {\n        return this._cp3\n    }\n\n    public get nextCodePoint3(): number {\n        return this._cp4\n    }\n\n    public reset(\n        source: string,\n        start: number,\n        end: number,\n        uFlag: boolean,\n    ): void {\n        this._impl = uFlag ? unicodeImpl : legacyImpl\n        this._s = source\n        this._end = end\n        this.rewind(start)\n    }\n\n    public rewind(index: number): void {\n        const impl = this._impl\n        this._i = index\n        this._cp1 = impl.at(this._s, this._end, index)\n        this._w1 = impl.width(this._cp1)\n        this._cp2 = impl.at(this._s, this._end, index + this._w1)\n        this._w2 = impl.width(this._cp2)\n        this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2)\n        this._w3 = impl.width(this._cp3)\n        this._cp4 = impl.at(\n            this._s,\n            this._end,\n            index + this._w1 + this._w2 + this._w3,\n        )\n    }\n\n    public advance(): void {\n        if (this._cp1 !== -1) {\n            const impl = this._impl\n            this._i += this._w1\n            this._cp1 = this._cp2\n            this._w1 = this._w2\n            this._cp2 = this._cp3\n            this._w2 = impl.width(this._cp2)\n            this._cp3 = this._cp4\n            this._w3 = impl.width(this._cp3)\n            this._cp4 = impl.at(\n                this._s,\n                this._end,\n                this._i + this._w1 + this._w2 + this._w3,\n            )\n        }\n    }\n\n    public eat(cp: number): boolean {\n        if (this._cp1 === cp) {\n            this.advance()\n            return true\n        }\n        return false\n    }\n\n    public eat2(cp1: number, cp2: number): boolean {\n        if (this._cp1 === cp1 && this._cp2 === cp2) {\n            this.advance()\n            this.advance()\n            return true\n        }\n        return false\n    }\n\n    public eat3(cp1: number, cp2: number, cp3: number): boolean {\n        if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) {\n            this.advance()\n            this.advance()\n            this.advance()\n            return true\n        }\n        return false\n    }\n}\n","export class RegExpSyntaxError extends SyntaxError {\n    public index: number\n    public constructor(\n        source: string,\n        uFlag: boolean,\n        index: number,\n        message: string,\n    ) {\n        /*eslint-disable no-param-reassign */\n        if (source) {\n            if (source[0] !== \"/\") {\n                source = `/${source}/${uFlag ? \"u\" : \"\"}`\n            }\n            source = `: ${source}`\n        }\n        /*eslint-enable no-param-reassign */\n\n        super(`Invalid regular expression${source}: ${message}`)\n        this.index = index\n    }\n}\n","import { Reader } from \"./reader\"\nimport { RegExpSyntaxError } from \"./regexp-syntax-error\"\nimport {\n    Asterisk,\n    Backspace,\n    CarriageReturn,\n    CharacterTabulation,\n    CircumflexAccent,\n    Colon,\n    Comma,\n    DigitNine,\n    DigitOne,\n    digitToInt,\n    DigitZero,\n    DollarSign,\n    EqualsSign,\n    ExclamationMark,\n    FormFeed,\n    FullStop,\n    GreaterThanSign,\n    HyphenMinus,\n    isDecimalDigit,\n    isHexDigit,\n    isIdContinue,\n    isIdStart,\n    isLatinLetter,\n    isLineTerminator,\n    isOctalDigit,\n    isValidUnicode,\n    LatinCapitalLetterB,\n    LatinCapitalLetterD,\n    LatinCapitalLetterP,\n    LatinCapitalLetterS,\n    LatinCapitalLetterW,\n    LatinSmallLetterB,\n    LatinSmallLetterC,\n    LatinSmallLetterD,\n    LatinSmallLetterF,\n    LatinSmallLetterG,\n    LatinSmallLetterI,\n    LatinSmallLetterK,\n    LatinSmallLetterM,\n    LatinSmallLetterN,\n    LatinSmallLetterP,\n    LatinSmallLetterR,\n    LatinSmallLetterS,\n    LatinSmallLetterT,\n    LatinSmallLetterU,\n    LatinSmallLetterV,\n    LatinSmallLetterW,\n    LatinSmallLetterX,\n    LatinSmallLetterY,\n    LeftCurlyBracket,\n    LeftParenthesis,\n    LeftSquareBracket,\n    LessThanSign,\n    LineFeed,\n    LineTabulation,\n    LowLine,\n    PlusSign,\n    PropertyData,\n    QuestionMark,\n    ReverseSolidus,\n    RightCurlyBracket,\n    RightParenthesis,\n    RightSquareBracket,\n    Solidus,\n    VerticalLine,\n    ZeroWidthJoiner,\n    ZeroWidthNonJoiner,\n} from \"./unicode\"\n\nfunction isSyntaxCharacter(cp: number): boolean {\n    return (\n        cp === CircumflexAccent ||\n        cp === DollarSign ||\n        cp === ReverseSolidus ||\n        cp === FullStop ||\n        cp === Asterisk ||\n        cp === PlusSign ||\n        cp === QuestionMark ||\n        cp === LeftParenthesis ||\n        cp === RightParenthesis ||\n        cp === LeftSquareBracket ||\n        cp === RightSquareBracket ||\n        cp === LeftCurlyBracket ||\n        cp === RightCurlyBracket ||\n        cp === VerticalLine\n    )\n}\n\nfunction isRegExpIdentifierStart(cp: number): boolean {\n    return isIdStart(cp) || cp === DollarSign || cp === LowLine\n}\n\nfunction isRegExpIdentifierPart(cp: number): boolean {\n    return (\n        isIdContinue(cp) ||\n        cp === DollarSign ||\n        cp === LowLine ||\n        cp === ZeroWidthNonJoiner ||\n        cp === ZeroWidthJoiner\n    )\n}\n\nfunction isUnicodePropertyNameCharacter(cp: number): boolean {\n    return isLatinLetter(cp) || cp === LowLine\n}\n\nfunction isUnicodePropertyValueCharacter(cp: number): boolean {\n    return isUnicodePropertyNameCharacter(cp) || isDecimalDigit(cp)\n}\n\nfunction isValidUnicodeProperty(name: string, value: string): boolean {\n    //eslint-disable-next-line no-prototype-builtins\n    return PropertyData.hasOwnProperty(name) && PropertyData[name].has(value)\n}\n\nfunction isValidUnicodePropertyName(name: string): boolean {\n    return PropertyData.$LONE.has(name)\n}\n\nexport namespace RegExpValidator {\n    /**\n     * The options for RegExpValidator construction.\n     */\n    export interface Options {\n        /**\n         * The flag to disable Annex B syntax. Default is `false`.\n         */\n        strict?: boolean\n\n        /**\n         * ECMAScript version. Default is `2018`.\n         * - `2015` added `u` and `y` flags.\n         * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n         *   and Unicode Property Escape.\n         */\n        ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n\n        /**\n         * A function that is called when the validator entered a RegExp literal.\n         * @param start The 0-based index of the first character.\n         */\n        onLiteralEnter?(start: number): void\n\n        /**\n         * A function that is called when the validator left a RegExp literal.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         */\n        onLiteralLeave?(start: number, end: number): void\n\n        /**\n         * A function that is called when the validator found flags.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param global `g` flag.\n         * @param ignoreCase `i` flag.\n         * @param multiline `m` flag.\n         * @param unicode `u` flag.\n         * @param sticky `y` flag.\n         * @param dotAll `s` flag.\n         */\n        onFlags?(\n            start: number,\n            end: number,\n            global: boolean,\n            ignoreCase: boolean,\n            multiline: boolean,\n            unicode: boolean,\n            sticky: boolean,\n            dotAll: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator entered a pattern.\n         * @param start The 0-based index of the first character.\n         */\n        onPatternEnter?(start: number): void\n\n        /**\n         * A function that is called when the validator left a pattern.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         */\n        onPatternLeave?(start: number, end: number): void\n\n        /**\n         * A function that is called when the validator entered a disjunction.\n         * @param start The 0-based index of the first character.\n         */\n        onDisjunctionEnter?(start: number): void\n\n        /**\n         * A function that is called when the validator left a disjunction.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         */\n        onDisjunctionLeave?(start: number, end: number): void\n\n        /**\n         * A function that is called when the validator entered an alternative.\n         * @param start The 0-based index of the first character.\n         * @param index The 0-based index of alternatives in a disjunction.\n         */\n        onAlternativeEnter?(start: number, index: number): void\n\n        /**\n         * A function that is called when the validator left an alternative.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param index The 0-based index of alternatives in a disjunction.\n         */\n        onAlternativeLeave?(start: number, end: number, index: number): void\n\n        /**\n         * A function that is called when the validator entered an uncapturing group.\n         * @param start The 0-based index of the first character.\n         */\n        onGroupEnter?(start: number): void\n\n        /**\n         * A function that is called when the validator left an uncapturing group.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         */\n        onGroupLeave?(start: number, end: number): void\n\n        /**\n         * A function that is called when the validator entered a capturing group.\n         * @param start The 0-based index of the first character.\n         * @param name The group name.\n         */\n        onCapturingGroupEnter?(start: number, name: string | null): void\n\n        /**\n         * A function that is called when the validator left a capturing group.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param name The group name.\n         */\n        onCapturingGroupLeave?(\n            start: number,\n            end: number,\n            name: string | null,\n        ): void\n\n        /**\n         * A function that is called when the validator found a quantifier.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param min The minimum number of repeating.\n         * @param max The maximum number of repeating.\n         * @param greedy The flag to choose the longest matching.\n         */\n        onQuantifier?(\n            start: number,\n            end: number,\n            min: number,\n            max: number,\n            greedy: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator entered a lookahead/lookbehind assertion.\n         * @param start The 0-based index of the first character.\n         * @param kind The kind of the assertion.\n         * @param negate The flag which represents that the assertion is negative.\n         */\n        onLookaroundAssertionEnter?(\n            start: number,\n            kind: \"lookahead\" | \"lookbehind\",\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator left a lookahead/lookbehind assertion.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the assertion.\n         * @param negate The flag which represents that the assertion is negative.\n         */\n        onLookaroundAssertionLeave?(\n            start: number,\n            end: number,\n            kind: \"lookahead\" | \"lookbehind\",\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found an edge boundary assertion.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the assertion.\n         */\n        onEdgeAssertion?(\n            start: number,\n            end: number,\n            kind: \"start\" | \"end\",\n        ): void\n\n        /**\n         * A function that is called when the validator found a word boundary assertion.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the assertion.\n         * @param negate The flag which represents that the assertion is negative.\n         */\n        onWordBoundaryAssertion?(\n            start: number,\n            end: number,\n            kind: \"word\",\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found a dot.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the character set.\n         */\n        onAnyCharacterSet?(start: number, end: number, kind: \"any\"): void\n\n        /**\n         * A function that is called when the validator found a character set escape.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the character set.\n         * @param negate The flag which represents that the character set is negative.\n         */\n        onEscapeCharacterSet?(\n            start: number,\n            end: number,\n            kind: \"digit\" | \"space\" | \"word\",\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found a Unicode proerty escape.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the character set.\n         * @param key The property name.\n         * @param value The property value.\n         * @param negate The flag which represents that the character set is negative.\n         */\n        onUnicodePropertyCharacterSet?(\n            start: number,\n            end: number,\n            kind: \"property\",\n            key: string,\n            value: string | null,\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found a character.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param value The code point of the character.\n         */\n        onCharacter?(start: number, end: number, value: number): void\n\n        /**\n         * A function that is called when the validator found a backreference.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param ref The key of the referred capturing group.\n         */\n        onBackreference?(start: number, end: number, ref: number | string): void\n\n        /**\n         * A function that is called when the validator entered a character class.\n         * @param start The 0-based index of the first character.\n         * @param negate The flag which represents that the character class is negative.\n         */\n        onCharacterClassEnter?(start: number, negate: boolean): void\n\n        /**\n         * A function that is called when the validator left a character class.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param negate The flag which represents that the character class is negative.\n         */\n        onCharacterClassLeave?(\n            start: number,\n            end: number,\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found a character class range.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param min The minimum code point of the range.\n         * @param max The maximum code point of the range.\n         */\n        onCharacterClassRange?(\n            start: number,\n            end: number,\n            min: number,\n            max: number,\n        ): void\n    }\n}\n\n/**\n * The regular expression validator.\n */\nexport class RegExpValidator {\n    private readonly _options: RegExpValidator.Options\n    private readonly _reader = new Reader()\n    private _uFlag = false\n    private _nFlag = false\n    private _lastIntValue = 0\n    private _lastMinValue = 0\n    private _lastMaxValue = 0\n    private _lastStrValue = \"\"\n    private _lastKeyValue = \"\"\n    private _lastValValue = \"\"\n    private _lastAssertionIsQuantifiable = false\n    private _numCapturingParens = 0\n    private _groupNames = new Set<string>()\n    private _backreferenceNames = new Set<string>()\n\n    /**\n     * Initialize this validator.\n     * @param options The options of validator.\n     */\n    public constructor(options?: RegExpValidator.Options) {\n        this._options = options || {}\n    }\n\n    /**\n     * Validate a regular expression literal. E.g. \"/abc/g\"\n     * @param source The source code to validate.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     */\n    public validateLiteral(\n        source: string,\n        start = 0,\n        end: number = source.length,\n    ): void {\n        this._uFlag = this._nFlag = false\n        this.reset(source, start, end)\n\n        this.onLiteralEnter(start)\n        if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) {\n            const flagStart = this.index\n            const uFlag = source.indexOf(\"u\", flagStart) !== -1\n            this.validateFlags(source, flagStart, end)\n            this.validatePattern(source, start + 1, flagStart - 1, uFlag)\n        } else if (start >= end) {\n            this.raise(\"Empty\")\n        } else {\n            const c = String.fromCodePoint(this.currentCodePoint)\n            this.raise(`Unexpected character '${c}'`)\n        }\n        this.onLiteralLeave(start, end)\n    }\n\n    /**\n     * Validate a regular expression flags. E.g. \"gim\"\n     * @param source The source code to validate.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     */\n    public validateFlags(\n        source: string,\n        start = 0,\n        end: number = source.length,\n    ): void {\n        const existingFlags = new Set<number>()\n        let global = false\n        let ignoreCase = false\n        let multiline = false\n        let sticky = false\n        let unicode = false\n        let dotAll = false\n        for (let i = start; i < end; ++i) {\n            const flag = source.charCodeAt(i)\n\n            if (existingFlags.has(flag)) {\n                this.raise(`Duplicated flag '${source[i]}'`)\n            }\n            existingFlags.add(flag)\n\n            if (flag === LatinSmallLetterG) {\n                global = true\n            } else if (flag === LatinSmallLetterI) {\n                ignoreCase = true\n            } else if (flag === LatinSmallLetterM) {\n                multiline = true\n            } else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) {\n                unicode = true\n            } else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) {\n                sticky = true\n            } else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) {\n                dotAll = true\n            } else {\n                this.raise(`Invalid flag '${source[i]}'`)\n            }\n        }\n        this.onFlags(\n            start,\n            end,\n            global,\n            ignoreCase,\n            multiline,\n            unicode,\n            sticky,\n            dotAll,\n        )\n    }\n\n    /**\n     * Validate a regular expression pattern. E.g. \"abc\"\n     * @param source The source code to validate.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     * @param uFlag The flag to set unicode mode.\n     */\n    public validatePattern(\n        source: string,\n        start = 0,\n        end: number = source.length,\n        uFlag = false,\n    ): void {\n        this._uFlag = uFlag && this.ecmaVersion >= 2015\n        this._nFlag = uFlag && this.ecmaVersion >= 2018\n        this.reset(source, start, end)\n        this.pattern()\n\n        if (\n            !this._nFlag &&\n            this.ecmaVersion >= 2018 &&\n            this._groupNames.size > 0\n        ) {\n            this._nFlag = true\n            this.rewind(start)\n            this.pattern()\n        }\n    }\n\n    // #region Delegate for Options\n\n    private get strict() {\n        return Boolean(this._options.strict || this._uFlag)\n    }\n\n    private get ecmaVersion() {\n        return this._options.ecmaVersion || 2018\n    }\n\n    private onLiteralEnter(start: number): void {\n        if (this._options.onLiteralEnter) {\n            this._options.onLiteralEnter(start)\n        }\n    }\n\n    private onLiteralLeave(start: number, end: number): void {\n        if (this._options.onLiteralLeave) {\n            this._options.onLiteralLeave(start, end)\n        }\n    }\n\n    private onFlags(\n        start: number,\n        end: number,\n        global: boolean,\n        ignoreCase: boolean,\n        multiline: boolean,\n        unicode: boolean,\n        sticky: boolean,\n        dotAll: boolean,\n    ): void {\n        if (this._options.onFlags) {\n            this._options.onFlags(\n                start,\n                end,\n                global,\n                ignoreCase,\n                multiline,\n                unicode,\n                sticky,\n                dotAll,\n            )\n        }\n    }\n\n    private onPatternEnter(start: number): void {\n        if (this._options.onPatternEnter) {\n            this._options.onPatternEnter(start)\n        }\n    }\n\n    private onPatternLeave(start: number, end: number): void {\n        if (this._options.onPatternLeave) {\n            this._options.onPatternLeave(start, end)\n        }\n    }\n\n    private onDisjunctionEnter(start: number): void {\n        if (this._options.onDisjunctionEnter) {\n            this._options.onDisjunctionEnter(start)\n        }\n    }\n\n    private onDisjunctionLeave(start: number, end: number): void {\n        if (this._options.onDisjunctionLeave) {\n            this._options.onDisjunctionLeave(start, end)\n        }\n    }\n\n    private onAlternativeEnter(start: number, index: number): void {\n        if (this._options.onAlternativeEnter) {\n            this._options.onAlternativeEnter(start, index)\n        }\n    }\n\n    private onAlternativeLeave(\n        start: number,\n        end: number,\n        index: number,\n    ): void {\n        if (this._options.onAlternativeLeave) {\n            this._options.onAlternativeLeave(start, end, index)\n        }\n    }\n\n    private onGroupEnter(start: number): void {\n        if (this._options.onGroupEnter) {\n            this._options.onGroupEnter(start)\n        }\n    }\n\n    private onGroupLeave(start: number, end: number): void {\n        if (this._options.onGroupLeave) {\n            this._options.onGroupLeave(start, end)\n        }\n    }\n\n    private onCapturingGroupEnter(start: number, name: string | null): void {\n        if (this._options.onCapturingGroupEnter) {\n            this._options.onCapturingGroupEnter(start, name)\n        }\n    }\n\n    private onCapturingGroupLeave(\n        start: number,\n        end: number,\n        name: string | null,\n    ): void {\n        if (this._options.onCapturingGroupLeave) {\n            this._options.onCapturingGroupLeave(start, end, name)\n        }\n    }\n\n    private onQuantifier(\n        start: number,\n        end: number,\n        min: number,\n        max: number,\n        greedy: boolean,\n    ): void {\n        if (this._options.onQuantifier) {\n            this._options.onQuantifier(start, end, min, max, greedy)\n        }\n    }\n\n    private onLookaroundAssertionEnter(\n        start: number,\n        kind: \"lookahead\" | \"lookbehind\",\n        negate: boolean,\n    ): void {\n        if (this._options.onLookaroundAssertionEnter) {\n            this._options.onLookaroundAssertionEnter(start, kind, negate)\n        }\n    }\n\n    private onLookaroundAssertionLeave(\n        start: number,\n        end: number,\n        kind: \"lookahead\" | \"lookbehind\",\n        negate: boolean,\n    ): void {\n        if (this._options.onLookaroundAssertionLeave) {\n            this._options.onLookaroundAssertionLeave(start, end, kind, negate)\n        }\n    }\n\n    private onEdgeAssertion(\n        start: number,\n        end: number,\n        kind: \"start\" | \"end\",\n    ): void {\n        if (this._options.onEdgeAssertion) {\n            this._options.onEdgeAssertion(start, end, kind)\n        }\n    }\n\n    private onWordBoundaryAssertion(\n        start: number,\n        end: number,\n        kind: \"word\",\n        negate: boolean,\n    ): void {\n        if (this._options.onWordBoundaryAssertion) {\n            this._options.onWordBoundaryAssertion(start, end, kind, negate)\n        }\n    }\n\n    private onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n        if (this._options.onAnyCharacterSet) {\n            this._options.onAnyCharacterSet(start, end, kind)\n        }\n    }\n\n    private onEscapeCharacterSet(\n        start: number,\n        end: number,\n        kind: \"digit\" | \"space\" | \"word\",\n        negate: boolean,\n    ): void {\n        if (this._options.onEscapeCharacterSet) {\n            this._options.onEscapeCharacterSet(start, end, kind, negate)\n        }\n    }\n\n    private onUnicodePropertyCharacterSet(\n        start: number,\n        end: number,\n        kind: \"property\",\n        key: string,\n        value: string | null,\n        negate: boolean,\n    ): void {\n        if (this._options.onUnicodePropertyCharacterSet) {\n            this._options.onUnicodePropertyCharacterSet(\n                start,\n                end,\n                kind,\n                key,\n                value,\n                negate,\n            )\n        }\n    }\n\n    private onCharacter(start: number, end: number, value: number): void {\n        if (this._options.onCharacter) {\n            this._options.onCharacter(start, end, value)\n        }\n    }\n\n    private onBackreference(\n        start: number,\n        end: number,\n        ref: number | string,\n    ): void {\n        if (this._options.onBackreference) {\n            this._options.onBackreference(start, end, ref)\n        }\n    }\n\n    private onCharacterClassEnter(start: number, negate: boolean): void {\n        if (this._options.onCharacterClassEnter) {\n            this._options.onCharacterClassEnter(start, negate)\n        }\n    }\n\n    private onCharacterClassLeave(\n        start: number,\n        end: number,\n        negate: boolean,\n    ): void {\n        if (this._options.onCharacterClassLeave) {\n            this._options.onCharacterClassLeave(start, end, negate)\n        }\n    }\n\n    private onCharacterClassRange(\n        start: number,\n        end: number,\n        min: number,\n        max: number,\n    ): void {\n        if (this._options.onCharacterClassRange) {\n            this._options.onCharacterClassRange(start, end, min, max)\n        }\n    }\n\n    // #endregion\n\n    // #region Delegate for Reader\n\n    private get source(): string {\n        return this._reader.source\n    }\n\n    private get index(): number {\n        return this._reader.index\n    }\n\n    private get currentCodePoint(): number {\n        return this._reader.currentCodePoint\n    }\n\n    private get nextCodePoint(): number {\n        return this._reader.nextCodePoint\n    }\n\n    private get nextCodePoint2(): number {\n        return this._reader.nextCodePoint2\n    }\n\n    private get nextCodePoint3(): number {\n        return this._reader.nextCodePoint3\n    }\n\n    private reset(source: string, start: number, end: number): void {\n        this._reader.reset(source, start, end, this._uFlag)\n    }\n\n    private rewind(index: number): void {\n        this._reader.rewind(index)\n    }\n\n    private advance(): void {\n        this._reader.advance()\n    }\n\n    private eat(cp: number): boolean {\n        return this._reader.eat(cp)\n    }\n\n    private eat2(cp1: number, cp2: number): boolean {\n        return this._reader.eat2(cp1, cp2)\n    }\n\n    private eat3(cp1: number, cp2: number, cp3: number): boolean {\n        return this._reader.eat3(cp1, cp2, cp3)\n    }\n\n    // #endregion\n\n    private raise(message: string): never {\n        throw new RegExpSyntaxError(\n            this.source,\n            this._uFlag,\n            this.index,\n            message,\n        )\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-RegularExpressionBody\n    private eatRegExpBody(): boolean {\n        const start = this.index\n        let inClass = false\n        let escaped = false\n\n        for (;;) {\n            const cp = this.currentCodePoint\n            if (cp === -1 || isLineTerminator(cp)) {\n                const kind = inClass ? \"character class\" : \"regular expression\"\n                this.raise(`Unterminated ${kind}`)\n            }\n            if (escaped) {\n                escaped = false\n            } else if (cp === ReverseSolidus) {\n                escaped = true\n            } else if (cp === LeftSquareBracket) {\n                inClass = true\n            } else if (cp === RightSquareBracket) {\n                inClass = false\n            } else if (\n                (cp === Solidus && !inClass) ||\n                (cp === Asterisk && this.index === start)\n            ) {\n                break\n            }\n            this.advance()\n        }\n\n        return this.index !== start\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\n    private pattern(): void {\n        const start = this.index\n        this._numCapturingParens = this.countCapturingParens()\n        this._groupNames.clear()\n        this._backreferenceNames.clear()\n\n        this.onPatternEnter(start)\n        this.disjunction()\n\n        const cp = this.currentCodePoint\n        if (this.currentCodePoint !== -1) {\n            if (cp === RightParenthesis) {\n                this.raise(\"Unmatched ')'\")\n            }\n            if (cp === ReverseSolidus) {\n                this.raise(\"\\\\ at end of pattern\")\n            }\n            if (cp === RightSquareBracket || cp === RightCurlyBracket) {\n                this.raise(\"Lone quantifier brackets\")\n            }\n            const c = String.fromCodePoint(cp)\n            this.raise(`Unexpected character '${c}'`)\n        }\n        for (const name of this._backreferenceNames) {\n            if (!this._groupNames.has(name)) {\n                this.raise(\"Invalid named capture referenced\")\n            }\n        }\n        this.onPatternLeave(start, this.index)\n    }\n\n    private countCapturingParens(): number {\n        const start = this.index\n        let inClass = false\n        let escaped = false\n        let count = 0\n        let cp = 0\n\n        while ((cp = this.currentCodePoint) !== -1) {\n            if (escaped) {\n                escaped = false\n            } else if (cp === ReverseSolidus) {\n                escaped = true\n            } else if (cp === LeftSquareBracket) {\n                inClass = true\n            } else if (cp === RightSquareBracket) {\n                inClass = false\n            } else if (\n                cp === LeftParenthesis &&\n                !inClass &&\n                (this.nextCodePoint !== QuestionMark ||\n                    (this.nextCodePoint2 === LessThanSign &&\n                        this.nextCodePoint3 !== EqualsSign &&\n                        this.nextCodePoint3 !== ExclamationMark))\n            ) {\n                count += 1\n            }\n            this.advance()\n        }\n\n        this.rewind(start)\n        return count\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\n    private disjunction(): void {\n        const start = this.index\n        let i = 0\n\n        this.onDisjunctionEnter(start)\n        this.alternative(i++)\n        while (this.eat(VerticalLine)) {\n            this.alternative(i++)\n        }\n\n        if (this.eatQuantifier(true)) {\n            this.raise(\"Nothing to repeat\")\n        }\n        if (this.eat(LeftCurlyBracket)) {\n            this.raise(\"Lone quantifier brackets\")\n        }\n        this.onDisjunctionLeave(start, this.index)\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\n    private alternative(i: number): void {\n        const start = this.index\n\n        this.onAlternativeEnter(start, i)\n        while (this.currentCodePoint !== -1 && this.eatTerm()) {\n            // do nothing.\n        }\n        this.onAlternativeLeave(start, this.index, i)\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Term\n    private eatTerm(): boolean {\n        if (this.eatAssertion()) {\n            // Handle `QuantifiableAssertion Quantifier` alternative.\n            // `this.lastAssertionIsQuantifiable` is true if the last eaten\n            // Assertion is a QuantifiableAssertion.\n            if (this._lastAssertionIsQuantifiable) {\n                this.eatQuantifier()\n            }\n            return true\n        }\n\n        if (this.strict ? this.eatAtom() : this.eatExtendedAtom()) {\n            this.eatQuantifier()\n            return true\n        }\n\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Assertion\n    private eatAssertion(): boolean {\n        const start = this.index\n        this._lastAssertionIsQuantifiable = false\n\n        // ^, $, \\B \\b\n        if (this.eat(CircumflexAccent)) {\n            this.onEdgeAssertion(start, this.index, \"start\")\n            return true\n        }\n        if (this.eat(DollarSign)) {\n            this.onEdgeAssertion(start, this.index, \"end\")\n            return true\n        }\n        if (this.eat2(ReverseSolidus, LatinCapitalLetterB)) {\n            this.onWordBoundaryAssertion(start, this.index, \"word\", true)\n            return true\n        }\n        if (this.eat2(ReverseSolidus, LatinSmallLetterB)) {\n            this.onWordBoundaryAssertion(start, this.index, \"word\", false)\n            return true\n        }\n\n        // Lookahead / Lookbehind\n        if (this.eat2(LeftParenthesis, QuestionMark)) {\n            const lookbehind =\n                this.ecmaVersion >= 2018 && this.eat(LessThanSign)\n            let negate = false\n            if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) {\n                const kind = lookbehind ? \"lookbehind\" : \"lookahead\"\n                this.onLookaroundAssertionEnter(start, kind, negate)\n                this.disjunction()\n                if (!this.eat(RightParenthesis)) {\n                    this.raise(\"Unterminated group\")\n                }\n                this._lastAssertionIsQuantifiable = !lookbehind && !this.strict\n                this.onLookaroundAssertionLeave(start, this.index, kind, negate)\n                return true\n            }\n            this.rewind(start)\n        }\n\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\n    private eatQuantifier(noError = false): boolean {\n        const start = this.index\n        let min = 0\n        let max = 0\n        let greedy = false\n\n        if (this.eat(Asterisk)) {\n            min = 0\n            max = Number.POSITIVE_INFINITY\n        } else if (this.eat(PlusSign)) {\n            min = 1\n            max = Number.POSITIVE_INFINITY\n        } else if (this.eat(QuestionMark)) {\n            min = 0\n            max = 1\n        } else if (this.eatBracedQuantifier(noError)) {\n            min = this._lastMinValue\n            max = this._lastMaxValue\n        } else {\n            return false\n        }\n        greedy = !this.eat(QuestionMark)\n\n        if (!noError) {\n            this.onQuantifier(start, this.index, min, max, greedy)\n        }\n        return true\n    }\n\n    private eatBracedQuantifier(noError: boolean): boolean {\n        const start = this.index\n        if (this.eat(LeftCurlyBracket)) {\n            this._lastMinValue = 0\n            this._lastMaxValue = Number.POSITIVE_INFINITY\n            if (this.eatDecimalDigits()) {\n                this._lastMinValue = this._lastMaxValue = this._lastIntValue\n                if (this.eat(Comma)) {\n                    this._lastMaxValue = this.eatDecimalDigits()\n                        ? this._lastIntValue\n                        : Number.POSITIVE_INFINITY\n                }\n                if (this.eat(RightCurlyBracket)) {\n                    if (!noError && this._lastMaxValue < this._lastMinValue) {\n                        this.raise(\"numbers out of order in {} quantifier\")\n                    }\n                    return true\n                }\n            }\n            if (!noError && this.strict) {\n                this.raise(\"Incomplete quantifier\")\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\n    private eatAtom(): boolean {\n        return (\n            this.eatPatternCharacter() ||\n            this.eatDot() ||\n            this.eatReverseSolidusAtomEscape() ||\n            this.eatCharacterClass() ||\n            this.eatUncapturingGroup() ||\n            this.eatCapturingGroup()\n        )\n    }\n\n    private eatDot(): boolean {\n        if (this.eat(FullStop)) {\n            this.onAnyCharacterSet(this.index - 1, this.index, \"any\")\n            return true\n        }\n        return false\n    }\n\n    private eatReverseSolidusAtomEscape(): boolean {\n        const start = this.index\n        if (this.eat(ReverseSolidus)) {\n            if (this.eatAtomEscape()) {\n                return true\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    private eatUncapturingGroup(): boolean {\n        const start = this.index\n        if (this.eat3(LeftParenthesis, QuestionMark, Colon)) {\n            this.onGroupEnter(start)\n            this.disjunction()\n            if (!this.eat(RightParenthesis)) {\n                this.raise(\"Unterminated group\")\n            }\n            this.onGroupLeave(start, this.index)\n            return true\n        }\n        return false\n    }\n\n    private eatCapturingGroup(): boolean {\n        const start = this.index\n        if (this.eat(LeftParenthesis)) {\n            this._lastStrValue = \"\"\n            if (this.ecmaVersion >= 2018) {\n                this.groupSpecifier()\n            } else if (this.currentCodePoint === QuestionMark) {\n                this.raise(\"Invalid group\")\n            }\n            const name = this._lastStrValue || null\n\n            this.onCapturingGroupEnter(start, name)\n            this.disjunction()\n            if (!this.eat(RightParenthesis)) {\n                this.raise(\"Unterminated group\")\n            }\n            this.onCapturingGroupLeave(start, this.index, name)\n\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedAtom\n    private eatExtendedAtom(): boolean {\n        return (\n            this.eatDot() ||\n            this.eatReverseSolidusAtomEscape() ||\n            this.eatReverseSolidusFollowedByC() ||\n            this.eatCharacterClass() ||\n            this.eatUncapturingGroup() ||\n            this.eatCapturingGroup() ||\n            this.eatInvalidBracedQuantifier() ||\n            this.eatExtendedPatternCharacter()\n        )\n    }\n\n    // \\ [lookahead = c]\n    private eatReverseSolidusFollowedByC(): boolean {\n        if (\n            this.currentCodePoint === ReverseSolidus &&\n            this.nextCodePoint === LatinSmallLetterC\n        ) {\n            this._lastIntValue = this.currentCodePoint\n            this.advance()\n            this.onCharacter(this.index - 1, this.index, ReverseSolidus)\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-InvalidBracedQuantifier\n    private eatInvalidBracedQuantifier(): boolean {\n        if (this.eatBracedQuantifier(true)) {\n            this.raise(\"Nothing to repeat\")\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\n    private eatSyntaxCharacter(): boolean {\n        if (isSyntaxCharacter(this.currentCodePoint)) {\n            this._lastIntValue = this.currentCodePoint\n            this.advance()\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n    private eatPatternCharacter(): boolean {\n        const start = this.index\n        const cp = this.currentCodePoint\n        if (cp !== -1 && !isSyntaxCharacter(cp)) {\n            this.advance()\n            this.onCharacter(start, this.index, cp)\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedPatternCharacter\n    private eatExtendedPatternCharacter(): boolean {\n        const start = this.index\n        const cp = this.currentCodePoint\n        if (\n            cp !== -1 &&\n            cp !== CircumflexAccent &&\n            cp !== DollarSign &&\n            cp !== ReverseSolidus &&\n            cp !== FullStop &&\n            cp !== Asterisk &&\n            cp !== PlusSign &&\n            cp !== QuestionMark &&\n            cp !== LeftParenthesis &&\n            cp !== RightParenthesis &&\n            cp !== LeftSquareBracket &&\n            cp !== VerticalLine\n        ) {\n            this.advance()\n            this.onCharacter(start, this.index, cp)\n            return true\n        }\n        return false\n    }\n\n    // GroupSpecifier[U] ::\n    //   [empty]\n    //   `?` GroupName[?U]\n    private groupSpecifier(): void {\n        this._lastStrValue = \"\"\n        if (this.eat(QuestionMark)) {\n            if (this.eatGroupName()) {\n                if (!this._groupNames.has(this._lastStrValue)) {\n                    this._groupNames.add(this._lastStrValue)\n                    return\n                }\n                this.raise(\"Duplicate capture group name\")\n            }\n            this.raise(\"Invalid group\")\n        }\n    }\n\n    // GroupName[U] ::\n    //   `<` RegExpIdentifierName[?U] `>`\n    private eatGroupName(): boolean {\n        this._lastStrValue = \"\"\n        if (this.eat(LessThanSign)) {\n            if (this.eatRegExpIdentifierName() && this.eat(GreaterThanSign)) {\n                return true\n            }\n            this.raise(\"Invalid capture group name\")\n        }\n        return false\n    }\n\n    // RegExpIdentifierName[U] ::\n    //   RegExpIdentifierStart[?U]\n    //   RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n    private eatRegExpIdentifierName(): boolean {\n        this._lastStrValue = \"\"\n        if (this.eatRegExpIdentifierStart()) {\n            this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n            while (this.eatRegExpIdentifierPart()) {\n                this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n            }\n            return true\n        }\n        return false\n    }\n\n    // RegExpIdentifierStart[U] ::\n    //   UnicodeIDStart\n    //   `$`\n    //   `_`\n    //   `\\` RegExpUnicodeEscapeSequence[?U]\n    private eatRegExpIdentifierStart(): boolean {\n        const start = this.index\n        let cp = this.currentCodePoint\n        this.advance()\n\n        if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n            cp = this._lastIntValue\n        }\n        if (isRegExpIdentifierStart(cp)) {\n            this._lastIntValue = cp\n            return true\n        }\n\n        if (this.index !== start) {\n            this.rewind(start)\n        }\n        return false\n    }\n\n    // RegExpIdentifierPart[U] ::\n    //   UnicodeIDContinue\n    //   `$`\n    //   `_`\n    //   `\\` RegExpUnicodeEscapeSequence[?U]\n    //   <Zwnj>\n    //   <Zwj>\n    private eatRegExpIdentifierPart(): boolean {\n        const start = this.index\n        let cp = this.currentCodePoint\n        this.advance()\n\n        if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n            cp = this._lastIntValue\n        }\n        if (isRegExpIdentifierPart(cp)) {\n            this._lastIntValue = cp\n            return true\n        }\n\n        if (this.index !== start) {\n            this.rewind(start)\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-AtomEscape\n    private eatAtomEscape(): boolean {\n        if (\n            this.eatBackreference() ||\n            this.eatCharacterClassEscape() ||\n            this.eatCharacterEscape() ||\n            (this._nFlag && this.eatKGroupName())\n        ) {\n            return true\n        }\n        if (this.strict || this._uFlag) {\n            this.raise(\"Invalid escape\")\n        }\n        return false\n    }\n\n    private eatBackreference(): boolean {\n        const start = this.index\n        if (this.eatDecimalEscape()) {\n            const n = this._lastIntValue\n            if (n <= this._numCapturingParens) {\n                this.onBackreference(start - 1, this.index, n)\n                return true\n            }\n            if (this.strict) {\n                this.raise(\"Invalid escape\")\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    private eatKGroupName(): boolean {\n        const start = this.index\n        if (this.eat(LatinSmallLetterK)) {\n            if (this.eatGroupName()) {\n                const groupName = this._lastStrValue\n                this._backreferenceNames.add(groupName)\n                this.onBackreference(start - 1, this.index, groupName)\n                return true\n            }\n            this.raise(\"Invalid named reference\")\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-CharacterEscape\n    private eatCharacterEscape(): boolean {\n        const start = this.index\n        if (\n            this.eatControlEscape() ||\n            this.eatCControlLetter() ||\n            this.eatZero() ||\n            this.eatHexEscapeSequence() ||\n            this.eatRegExpUnicodeEscapeSequence() ||\n            (!this.strict && this.eatLegacyOctalEscapeSequence()) ||\n            this.eatIdentityEscape()\n        ) {\n            this.onCharacter(start - 1, this.index, this._lastIntValue)\n            return true\n        }\n        return false\n    }\n\n    private eatCControlLetter(): boolean {\n        const start = this.index\n        if (this.eat(LatinSmallLetterC)) {\n            if (this.eatControlLetter()) {\n                return true\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    private eatZero(): boolean {\n        if (\n            this.currentCodePoint === DigitZero &&\n            !isDecimalDigit(this.nextCodePoint)\n        ) {\n            this._lastIntValue = 0\n            this.advance()\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\n    private eatControlEscape(): boolean {\n        if (this.eat(LatinSmallLetterT)) {\n            this._lastIntValue = CharacterTabulation\n            return true\n        }\n        if (this.eat(LatinSmallLetterN)) {\n            this._lastIntValue = LineFeed\n            return true\n        }\n        if (this.eat(LatinSmallLetterV)) {\n            this._lastIntValue = LineTabulation\n            return true\n        }\n        if (this.eat(LatinSmallLetterF)) {\n            this._lastIntValue = FormFeed\n            return true\n        }\n        if (this.eat(LatinSmallLetterR)) {\n            this._lastIntValue = CarriageReturn\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\n    private eatControlLetter(): boolean {\n        const cp = this.currentCodePoint\n        if (isLatinLetter(cp)) {\n            this.advance()\n            this._lastIntValue = cp % 0x20\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\n    //eslint-disable-next-line complexity\n    private eatRegExpUnicodeEscapeSequence(): boolean {\n        const start = this.index\n\n        if (this.eat(LatinSmallLetterU)) {\n            if (this.eatFixedHexDigits(4)) {\n                const lead = this._lastIntValue\n                if (this._uFlag && lead >= 0xd800 && lead <= 0xdbff) {\n                    const leadSurrogateEnd = this.index\n                    if (\n                        this.eat(ReverseSolidus) &&\n                        this.eat(LatinSmallLetterU) &&\n                        this.eatFixedHexDigits(4)\n                    ) {\n                        const trail = this._lastIntValue\n                        if (trail >= 0xdc00 && trail <= 0xdfff) {\n                            this._lastIntValue =\n                                (lead - 0xd800) * 0x400 +\n                                (trail - 0xdc00) +\n                                0x10000\n                            return true\n                        }\n                    }\n                    this.rewind(leadSurrogateEnd)\n                    this._lastIntValue = lead\n                }\n                return true\n            }\n            if (\n                this._uFlag &&\n                this.eat(LeftCurlyBracket) &&\n                this.eatHexDigits() &&\n                this.eat(RightCurlyBracket) &&\n                isValidUnicode(this._lastIntValue)\n            ) {\n                return true\n            }\n            if (this.strict || this._uFlag) {\n                this.raise(\"Invalid unicode escape\")\n            }\n            this.rewind(start)\n        }\n\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-IdentityEscape\n    private eatIdentityEscape(): boolean {\n        if (this._uFlag) {\n            if (this.eatSyntaxCharacter()) {\n                return true\n            }\n            if (this.eat(Solidus)) {\n                this._lastIntValue = Solidus\n                return true\n            }\n            return false\n        }\n\n        if (this.isValidIdentityEscape(this.currentCodePoint)) {\n            this._lastIntValue = this.currentCodePoint\n            this.advance()\n            return true\n        }\n\n        return false\n    }\n    private isValidIdentityEscape(cp: number): boolean {\n        if (cp === -1) {\n            return false\n        }\n        if (this.strict) {\n            return !isIdContinue(cp)\n        }\n        return (\n            cp !== LatinSmallLetterC &&\n            (!this._nFlag || cp !== LatinSmallLetterK)\n        )\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\n    private eatDecimalEscape(): boolean {\n        this._lastIntValue = 0\n        let cp = this.currentCodePoint\n        if (cp >= DigitOne && cp <= DigitNine) {\n            do {\n                this._lastIntValue = 10 * this._lastIntValue + (cp - DigitZero)\n                this.advance()\n            } while (\n                (cp = this.currentCodePoint) >= DigitZero &&\n                cp <= DigitNine\n            )\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\n    private eatCharacterClassEscape(): boolean {\n        const start = this.index\n\n        if (this.eat(LatinSmallLetterD)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"digit\", false)\n            return true\n        }\n        if (this.eat(LatinCapitalLetterD)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"digit\", true)\n            return true\n        }\n        if (this.eat(LatinSmallLetterS)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"space\", false)\n            return true\n        }\n        if (this.eat(LatinCapitalLetterS)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"space\", true)\n            return true\n        }\n        if (this.eat(LatinSmallLetterW)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"word\", false)\n            return true\n        }\n        if (this.eat(LatinCapitalLetterW)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"word\", true)\n            return true\n        }\n\n        let negate = false\n        if (\n            this._uFlag &&\n            this.ecmaVersion >= 2018 &&\n            (this.eat(LatinSmallLetterP) ||\n                (negate = this.eat(LatinCapitalLetterP)))\n        ) {\n            this._lastIntValue = -1\n            if (\n                this.eat(LeftCurlyBracket) &&\n                this.eatUnicodePropertyValueExpression() &&\n                this.eat(RightCurlyBracket)\n            ) {\n                this.onUnicodePropertyCharacterSet(\n                    start - 1,\n                    this.index,\n                    \"property\",\n                    this._lastKeyValue,\n                    this._lastValValue || null,\n                    negate,\n                )\n                return true\n            }\n            this.raise(\"Invalid property name\")\n        }\n\n        return false\n    }\n\n    // UnicodePropertyValueExpression ::\n    //   UnicodePropertyName `=` UnicodePropertyValue\n    //   LoneUnicodePropertyNameOrValue\n    private eatUnicodePropertyValueExpression(): boolean {\n        const start = this.index\n\n        // UnicodePropertyName `=` UnicodePropertyValue\n        if (this.eatUnicodePropertyName() && this.eat(EqualsSign)) {\n            this._lastKeyValue = this._lastStrValue\n            if (this.eatUnicodePropertyValue()) {\n                this._lastValValue = this._lastStrValue\n                if (\n                    isValidUnicodeProperty(\n                        this._lastKeyValue,\n                        this._lastValValue,\n                    )\n                ) {\n                    return true\n                }\n                this.raise(\"Invalid property name\")\n            }\n        }\n        this.rewind(start)\n\n        // LoneUnicodePropertyNameOrValue\n        if (this.eatLoneUnicodePropertyNameOrValue()) {\n            const nameOrValue = this._lastStrValue\n            if (isValidUnicodeProperty(\"General_Category\", nameOrValue)) {\n                this._lastKeyValue = \"General_Category\"\n                this._lastValValue = nameOrValue\n                return true\n            }\n            if (isValidUnicodePropertyName(nameOrValue)) {\n                this._lastKeyValue = nameOrValue\n                this._lastValValue = \"\"\n                return true\n            }\n            this.raise(\"Invalid property name\")\n        }\n        return false\n    }\n\n    // UnicodePropertyName ::\n    //   UnicodePropertyNameCharacters\n    private eatUnicodePropertyName(): boolean {\n        this._lastStrValue = \"\"\n        while (isUnicodePropertyNameCharacter(this.currentCodePoint)) {\n            this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n            this.advance()\n        }\n        return this._lastStrValue !== \"\"\n    }\n\n    // UnicodePropertyValue ::\n    //   UnicodePropertyValueCharacters\n    private eatUnicodePropertyValue(): boolean {\n        this._lastStrValue = \"\"\n        while (isUnicodePropertyValueCharacter(this.currentCodePoint)) {\n            this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n            this.advance()\n        }\n        return this._lastStrValue !== \"\"\n    }\n\n    // LoneUnicodePropertyNameOrValue ::\n    //   UnicodePropertyValueCharacters\n    private eatLoneUnicodePropertyNameOrValue(): boolean {\n        return this.eatUnicodePropertyValue()\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\n    private eatCharacterClass(): boolean {\n        const start = this.index\n        if (this.eat(LeftSquareBracket)) {\n            const negate = this.eat(CircumflexAccent)\n            this.onCharacterClassEnter(start, negate)\n            this.classRanges()\n            if (!this.eat(RightSquareBracket)) {\n                this.raise(\"Unterminated character class\")\n            }\n            this.onCharacterClassLeave(start, this.index, negate)\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\n    private classRanges(): void {\n        let start = this.index\n        while (this.eatClassAtom()) {\n            const left = this._lastIntValue\n            const hyphenStart = this.index\n            if (this.eat(HyphenMinus)) {\n                this.onCharacter(hyphenStart, this.index, HyphenMinus)\n\n                if (this.eatClassAtom()) {\n                    const right = this._lastIntValue\n\n                    if (left === -1 || right === -1) {\n                        if (this.strict) {\n                            this.raise(\"Invalid character class\")\n                        }\n                    } else if (left > right) {\n                        this.raise(\"Range out of order in character class\")\n                    } else {\n                        this.onCharacterClassRange(\n                            start,\n                            this.index,\n                            left,\n                            right,\n                        )\n                    }\n                }\n            }\n\n            start = this.index\n        }\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\n    private eatClassAtom(): boolean {\n        const start = this.index\n\n        if (this.eat(ReverseSolidus)) {\n            if (this.eatClassEscape()) {\n                return true\n            }\n            if (this._uFlag) {\n                this.raise(\"Invalid escape\")\n            }\n            this.rewind(start)\n        }\n\n        const cp = this.currentCodePoint\n        if (cp !== -1 && cp !== RightSquareBracket) {\n            this.advance()\n            this._lastIntValue = cp\n            this.onCharacter(start, this.index, cp)\n            return true\n        }\n\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassEscape\n    private eatClassEscape(): boolean {\n        const start = this.index\n\n        if (this.eat(LatinSmallLetterB)) {\n            this._lastIntValue = Backspace\n            this.onCharacter(start - 1, this.index, Backspace)\n            return true\n        }\n\n        if (this._uFlag && this.eat(HyphenMinus)) {\n            this._lastIntValue = HyphenMinus\n            this.onCharacter(start - 1, this.index, HyphenMinus)\n            return true\n        }\n\n        if (!this._uFlag && this.eat(LatinSmallLetterC)) {\n            if (this.eatClassControlLetter()) {\n                this.onCharacter(start - 1, this.index, this._lastIntValue)\n                return true\n            }\n            this.rewind(start)\n        }\n\n        return this.eatCharacterClassEscape() || this.eatCharacterEscape()\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassControlLetter\n    private eatClassControlLetter(): boolean {\n        const cp = this.currentCodePoint\n        if (isDecimalDigit(cp) || cp === LowLine) {\n            this.advance()\n            this._lastIntValue = cp % 0x20\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n    private eatHexEscapeSequence(): boolean {\n        const start = this.index\n        if (this.eat(LatinSmallLetterX)) {\n            if (this.eatFixedHexDigits(2)) {\n                return true\n            }\n            if (this._uFlag) {\n                this.raise(\"Invalid escape\")\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\n    private eatDecimalDigits(): boolean {\n        const start = this.index\n\n        this._lastIntValue = 0\n        while (isDecimalDigit(this.currentCodePoint)) {\n            this._lastIntValue =\n                10 * this._lastIntValue + digitToInt(this.currentCodePoint)\n            this.advance()\n        }\n\n        return this.index !== start\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\n    private eatHexDigits(): boolean {\n        const start = this.index\n        this._lastIntValue = 0\n        while (isHexDigit(this.currentCodePoint)) {\n            this._lastIntValue =\n                16 * this._lastIntValue + digitToInt(this.currentCodePoint)\n            this.advance()\n        }\n        return this.index !== start\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-LegacyOctalEscapeSequence\n    // Allows only 0-377(octal) i.e. 0-255(decimal).\n    private eatLegacyOctalEscapeSequence(): boolean {\n        if (this.eatOctalDigit()) {\n            const n1 = this._lastIntValue\n            if (this.eatOctalDigit()) {\n                const n2 = this._lastIntValue\n                if (n1 <= 3 && this.eatOctalDigit()) {\n                    this._lastIntValue = n1 * 64 + n2 * 8 + this._lastIntValue\n                } else {\n                    this._lastIntValue = n1 * 8 + n2\n                }\n            } else {\n                this._lastIntValue = n1\n            }\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\n    private eatOctalDigit(): boolean {\n        const cp = this.currentCodePoint\n        if (isOctalDigit(cp)) {\n            this.advance()\n            this._lastIntValue = cp - DigitZero\n            return true\n        }\n        this._lastIntValue = 0\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n    // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n    private eatFixedHexDigits(length: number): boolean {\n        const start = this.index\n        this._lastIntValue = 0\n        for (let i = 0; i < length; ++i) {\n            const cp = this.currentCodePoint\n            if (!isHexDigit(cp)) {\n                this.rewind(start)\n                return false\n            }\n            this._lastIntValue = 16 * this._lastIntValue + digitToInt(cp)\n            this.advance()\n        }\n        return true\n    }\n}\n","import {\n    Alternative,\n    Backreference,\n    CapturingGroup,\n    CharacterClass,\n    CharacterClassElement,\n    CharacterClassRange,\n    Flags,\n    Group,\n    RegExpLiteral,\n    LookaroundAssertion,\n    Pattern,\n    Quantifier,\n} from \"./ast\"\nimport { HyphenMinus } from \"./unicode\"\nimport { RegExpValidator } from \"./validator\"\n\ntype AppendableNode =\n    | Pattern\n    | Alternative\n    | Group\n    | CapturingGroup\n    | CharacterClass\n    | LookaroundAssertion\n\nconst DummyPattern = {} as Pattern\nconst DummyFlags = {} as Flags\nconst DummyCapturingGroup = {} as CapturingGroup\n\nclass RegExpParserState {\n    public readonly strict: boolean\n    public readonly ecmaVersion: 5 | 2015 | 2016 | 2017 | 2018\n    private _node: AppendableNode = DummyPattern\n    private _flags: Flags = DummyFlags\n    private _backreferences: Backreference[] = []\n    private _capturingGroups: CapturingGroup[] = []\n\n    public source = \"\"\n\n    public constructor(options?: RegExpParser.Options) {\n        this.strict = Boolean(options && options.strict)\n        this.ecmaVersion = (options && options.ecmaVersion) || 2018\n    }\n\n    public get pattern(): Pattern {\n        if (this._node.type !== \"Pattern\") {\n            throw new Error(\"UnknownError\")\n        }\n        return this._node\n    }\n\n    public get flags(): Flags {\n        if (this._flags.type !== \"Flags\") {\n            throw new Error(\"UnknownError\")\n        }\n        return this._flags\n    }\n\n    public onFlags(\n        start: number,\n        end: number,\n        global: boolean,\n        ignoreCase: boolean,\n        multiline: boolean,\n        unicode: boolean,\n        sticky: boolean,\n        dotAll: boolean,\n    ): void {\n        this._flags = {\n            type: \"Flags\",\n            parent: null,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            global,\n            ignoreCase,\n            multiline,\n            unicode,\n            sticky,\n            dotAll,\n        }\n    }\n\n    public onPatternEnter(start: number): void {\n        this._node = {\n            type: \"Pattern\",\n            parent: null,\n            start,\n            end: start,\n            raw: \"\",\n            alternatives: [],\n        }\n        this._backreferences.length = 0\n        this._capturingGroups.length = 0\n    }\n\n    public onPatternLeave(start: number, end: number): void {\n        this._node.end = end\n        this._node.raw = this.source.slice(start, end)\n\n        for (const reference of this._backreferences) {\n            const ref = reference.ref\n            const group =\n                typeof ref === \"number\"\n                    ? this._capturingGroups[ref - 1]\n                    : this._capturingGroups.find(g => g.name === ref)!\n            reference.resolved = group\n            group.references.push(reference)\n        }\n    }\n\n    public onAlternativeEnter(start: number): void {\n        const parent = this._node\n        if (\n            parent.type !== \"Assertion\" &&\n            parent.type !== \"CapturingGroup\" &&\n            parent.type !== \"Group\" &&\n            parent.type !== \"Pattern\"\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"Alternative\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            elements: [],\n        }\n        parent.alternatives.push(this._node)\n    }\n\n    public onAlternativeLeave(start: number, end: number): void {\n        const node = this._node\n        if (node.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onGroupEnter(start: number): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"Group\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            alternatives: [],\n        }\n        parent.elements.push(this._node)\n    }\n\n    public onGroupLeave(start: number, end: number): void {\n        const node = this._node\n        if (node.type !== \"Group\" || node.parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onCapturingGroupEnter(start: number, name: string | null): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"CapturingGroup\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            name,\n            alternatives: [],\n            references: [],\n        }\n        parent.elements.push(this._node)\n        this._capturingGroups.push(this._node)\n    }\n\n    public onCapturingGroupLeave(start: number, end: number): void {\n        const node = this._node\n        if (\n            node.type !== \"CapturingGroup\" ||\n            node.parent.type !== \"Alternative\"\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onQuantifier(\n        start: number,\n        end: number,\n        min: number,\n        max: number,\n        greedy: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        // Replace the last element.\n        const element = parent.elements.pop()\n        if (\n            element == null ||\n            element.type === \"Quantifier\" ||\n            (element.type === \"Assertion\" && element.kind !== \"lookahead\")\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        const node: Quantifier = {\n            type: \"Quantifier\",\n            parent,\n            start: element.start,\n            end,\n            raw: this.source.slice(element.start, end),\n            min,\n            max,\n            greedy,\n            element,\n        }\n        parent.elements.push(node)\n        element.parent = node\n    }\n\n    public onLookaroundAssertionEnter(\n        start: number,\n        kind: \"lookahead\" | \"lookbehind\",\n        negate: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"Assertion\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            kind,\n            negate,\n            alternatives: [],\n        } as LookaroundAssertion\n        parent.elements.push(this._node)\n    }\n\n    public onLookaroundAssertionLeave(start: number, end: number): void {\n        const node = this._node\n        if (node.type !== \"Assertion\" || node.parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onEdgeAssertion(\n        start: number,\n        end: number,\n        kind: \"start\" | \"end\",\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        parent.elements.push({\n            type: \"Assertion\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n        })\n    }\n\n    public onWordBoundaryAssertion(\n        start: number,\n        end: number,\n        kind: \"word\",\n        negate: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        parent.elements.push({\n            type: \"Assertion\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n            negate,\n        })\n    }\n\n    public onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        parent.elements.push({\n            type: \"CharacterSet\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n        })\n    }\n\n    public onEscapeCharacterSet(\n        start: number,\n        end: number,\n        kind: \"digit\" | \"space\" | \"word\",\n        negate: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\" && parent.type !== \"CharacterClass\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        ;(parent.elements as CharacterClassElement[]).push({\n            type: \"CharacterSet\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n            negate,\n        })\n    }\n\n    public onUnicodePropertyCharacterSet(\n        start: number,\n        end: number,\n        kind: \"property\",\n        key: string,\n        value: string | null,\n        negate: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\" && parent.type !== \"CharacterClass\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        ;(parent.elements as CharacterClassElement[]).push({\n            type: \"CharacterSet\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n            key,\n            value,\n            negate,\n        })\n    }\n\n    public onCharacter(start: number, end: number, value: number): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\" && parent.type !== \"CharacterClass\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        ;(parent.elements as CharacterClassElement[]).push({\n            type: \"Character\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            value,\n        })\n    }\n\n    public onBackreference(\n        start: number,\n        end: number,\n        ref: number | string,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        const node: Backreference = {\n            type: \"Backreference\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            ref,\n            resolved: DummyCapturingGroup,\n        }\n        parent.elements.push(node)\n        this._backreferences.push(node)\n    }\n\n    public onCharacterClassEnter(start: number, negate: boolean): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"CharacterClass\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            negate,\n            elements: [],\n        }\n        parent.elements.push(this._node)\n    }\n\n    public onCharacterClassLeave(start: number, end: number): void {\n        const node = this._node\n        if (\n            node.type !== \"CharacterClass\" ||\n            node.parent.type !== \"Alternative\"\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onCharacterClassRange(start: number, end: number): void {\n        const parent = this._node\n        if (parent.type !== \"CharacterClass\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        // Replace the last three elements.\n        const elements = parent.elements\n        const max = elements.pop()\n        const hyphen = elements.pop()\n        const min = elements.pop()\n        if (\n            !min ||\n            !max ||\n            !hyphen ||\n            min.type !== \"Character\" ||\n            max.type !== \"Character\" ||\n            hyphen.type !== \"Character\" ||\n            hyphen.value !== HyphenMinus\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        const node: CharacterClassRange = {\n            type: \"CharacterClassRange\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            min,\n            max,\n        }\n        min.parent = node\n        max.parent = node\n        elements.push(node)\n    }\n}\n\nexport namespace RegExpParser {\n    /**\n     * The options for RegExpParser construction.\n     */\n    export interface Options {\n        /**\n         * The flag to disable Annex B syntax. Default is `false`.\n         */\n        strict?: boolean\n\n        /**\n         * ECMAScript version. Default is `2018`.\n         * - `2015` added `u` and `y` flags.\n         * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n         *   and Unicode Property Escape.\n         */\n        ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n    }\n}\n\nexport class RegExpParser {\n    private _state: RegExpParserState\n    private _validator: RegExpValidator\n\n    /**\n     * Initialize this parser.\n     * @param options The options of parser.\n     */\n    public constructor(options?: RegExpParser.Options) {\n        this._state = new RegExpParserState(options)\n        this._validator = new RegExpValidator(this._state)\n    }\n\n    /**\n     * Parse a regular expression literal. E.g. \"/abc/g\"\n     * @param source The source code to parse.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     * @returns The AST of the given regular expression.\n     */\n    public parseLiteral(\n        source: string,\n        start = 0,\n        end: number = source.length,\n    ): RegExpLiteral {\n        this._state.source = source\n        this._validator.validateLiteral(source, start, end)\n        const pattern = this._state.pattern\n        const flags = this._state.flags\n        const literal: RegExpLiteral = {\n            type: \"RegExpLiteral\",\n            parent: null,\n            start,\n            end,\n            raw: source,\n            pattern,\n            flags,\n        }\n        pattern.parent = literal\n        flags.parent = literal\n        return literal\n    }\n\n    /**\n     * Parse a regular expression flags. E.g. \"gim\"\n     * @param source The source code to parse.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     * @returns The AST of the given flags.\n     */\n    public parseFlags(\n        source: string,\n        start = 0,\n        end: number = source.length,\n    ): Flags {\n        this._state.source = source\n        this._validator.validateFlags(source, start, end)\n        return this._state.flags\n    }\n\n    /**\n     * Parse a regular expression pattern. E.g. \"abc\"\n     * @param source The source code to parse.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     * @param uFlag The flag to set unicode mode.\n     * @returns The AST of the given pattern.\n     */\n    public parsePattern(\n        source: string,\n        start = 0,\n        end: number = source.length,\n        uFlag = false,\n    ): Pattern {\n        this._state.source = source\n        this._validator.validatePattern(source, start, end, uFlag)\n        return this._state.pattern\n    }\n}\n","import {\n    Alternative,\n    Assertion,\n    Backreference,\n    CapturingGroup,\n    Character,\n    CharacterClass,\n    CharacterClassRange,\n    CharacterSet,\n    Flags,\n    Group,\n    Node,\n    Pattern,\n    Quantifier,\n    RegExpLiteral,\n} from \"./ast\"\n\n/**\n * The visitor to walk on AST.\n */\nexport class RegExpVisitor {\n    private readonly _handlers: RegExpVisitor.Handlers\n\n    /**\n     * Initialize this visitor.\n     * @param handlers Callbacks for each node.\n     */\n    public constructor(handlers: RegExpVisitor.Handlers) {\n        this._handlers = handlers\n    }\n\n    /**\n     * Visit a given node and descendant nodes.\n     * @param node The root node to visit tree.\n     */\n    public visit(node: Node): void {\n        switch (node.type) {\n            case \"Alternative\":\n                this.visitAlternative(node)\n                break\n            case \"Assertion\":\n                this.visitAssertion(node)\n                break\n            case \"Backreference\":\n                this.visitBackreference(node)\n                break\n            case \"CapturingGroup\":\n                this.visitCapturingGroup(node)\n                break\n            case \"Character\":\n                this.visitCharacter(node)\n                break\n            case \"CharacterClass\":\n                this.visitCharacterClass(node)\n                break\n            case \"CharacterClassRange\":\n                this.visitCharacterClassRange(node)\n                break\n            case \"CharacterSet\":\n                this.visitCharacterSet(node)\n                break\n            case \"Flags\":\n                this.visitFlags(node)\n                break\n            case \"Group\":\n                this.visitGroup(node)\n                break\n            case \"Pattern\":\n                this.visitPattern(node)\n                break\n            case \"Quantifier\":\n                this.visitQuantifier(node)\n                break\n            case \"RegExpLiteral\":\n                this.visitRegExpLiteral(node)\n                break\n            default:\n                throw new Error(`Unknown type: ${(node as any).type}`)\n        }\n    }\n\n    private visitAlternative(node: Alternative): void {\n        if (this._handlers.onAlternativeEnter) {\n            this._handlers.onAlternativeEnter(node)\n        }\n        node.elements.forEach(this.visit, this)\n        if (this._handlers.onAlternativeLeave) {\n            this._handlers.onAlternativeLeave(node)\n        }\n    }\n    private visitAssertion(node: Assertion): void {\n        if (this._handlers.onAssertionEnter) {\n            this._handlers.onAssertionEnter(node)\n        }\n        if (node.kind === \"lookahead\" || node.kind === \"lookbehind\") {\n            node.alternatives.forEach(this.visit, this)\n        }\n        if (this._handlers.onAssertionLeave) {\n            this._handlers.onAssertionLeave(node)\n        }\n    }\n    private visitBackreference(node: Backreference): void {\n        if (this._handlers.onBackreferenceEnter) {\n            this._handlers.onBackreferenceEnter(node)\n        }\n        if (this._handlers.onBackreferenceLeave) {\n            this._handlers.onBackreferenceLeave(node)\n        }\n    }\n    private visitCapturingGroup(node: CapturingGroup): void {\n        if (this._handlers.onCapturingGroupEnter) {\n            this._handlers.onCapturingGroupEnter(node)\n        }\n        node.alternatives.forEach(this.visit, this)\n        if (this._handlers.onCapturingGroupLeave) {\n            this._handlers.onCapturingGroupLeave(node)\n        }\n    }\n    private visitCharacter(node: Character): void {\n        if (this._handlers.onCharacterEnter) {\n            this._handlers.onCharacterEnter(node)\n        }\n        if (this._handlers.onCharacterLeave) {\n            this._handlers.onCharacterLeave(node)\n        }\n    }\n    private visitCharacterClass(node: CharacterClass): void {\n        if (this._handlers.onCharacterClassEnter) {\n            this._handlers.onCharacterClassEnter(node)\n        }\n        node.elements.forEach(this.visit, this)\n        if (this._handlers.onCharacterClassLeave) {\n            this._handlers.onCharacterClassLeave(node)\n        }\n    }\n    private visitCharacterClassRange(node: CharacterClassRange): void {\n        if (this._handlers.onCharacterClassRangeEnter) {\n            this._handlers.onCharacterClassRangeEnter(node)\n        }\n        this.visitCharacter(node.min)\n        this.visitCharacter(node.max)\n        if (this._handlers.onCharacterClassRangeLeave) {\n            this._handlers.onCharacterClassRangeLeave(node)\n        }\n    }\n    private visitCharacterSet(node: CharacterSet): void {\n        if (this._handlers.onCharacterSetEnter) {\n            this._handlers.onCharacterSetEnter(node)\n        }\n        if (this._handlers.onCharacterSetLeave) {\n            this._handlers.onCharacterSetLeave(node)\n        }\n    }\n    private visitFlags(node: Flags): void {\n        if (this._handlers.onFlagsEnter) {\n            this._handlers.onFlagsEnter(node)\n        }\n        if (this._handlers.onFlagsLeave) {\n            this._handlers.onFlagsLeave(node)\n        }\n    }\n    private visitGroup(node: Group): void {\n        if (this._handlers.onGroupEnter) {\n            this._handlers.onGroupEnter(node)\n        }\n        node.alternatives.forEach(this.visit, this)\n        if (this._handlers.onGroupLeave) {\n            this._handlers.onGroupLeave(node)\n        }\n    }\n    private visitPattern(node: Pattern): void {\n        if (this._handlers.onPatternEnter) {\n            this._handlers.onPatternEnter(node)\n        }\n        node.alternatives.forEach(this.visit, this)\n        if (this._handlers.onPatternLeave) {\n            this._handlers.onPatternLeave(node)\n        }\n    }\n    private visitQuantifier(node: Quantifier): void {\n        if (this._handlers.onQuantifierEnter) {\n            this._handlers.onQuantifierEnter(node)\n        }\n        this.visit(node.element)\n        if (this._handlers.onQuantifierLeave) {\n            this._handlers.onQuantifierLeave(node)\n        }\n    }\n    private visitRegExpLiteral(node: RegExpLiteral): void {\n        if (this._handlers.onRegExpLiteralEnter) {\n            this._handlers.onRegExpLiteralEnter(node)\n        }\n        this.visitPattern(node.pattern)\n        this.visitFlags(node.flags)\n        if (this._handlers.onRegExpLiteralLeave) {\n            this._handlers.onRegExpLiteralLeave(node)\n        }\n    }\n}\n\nexport namespace RegExpVisitor {\n    export interface Handlers {\n        onAlternativeEnter?(node: Alternative): void\n        onAlternativeLeave?(node: Alternative): void\n        onAssertionEnter?(node: Assertion): void\n        onAssertionLeave?(node: Assertion): void\n        onBackreferenceEnter?(node: Backreference): void\n        onBackreferenceLeave?(node: Backreference): void\n        onCapturingGroupEnter?(node: CapturingGroup): void\n        onCapturingGroupLeave?(node: CapturingGroup): void\n        onCharacterEnter?(node: Character): void\n        onCharacterLeave?(node: Character): void\n        onCharacterClassEnter?(node: CharacterClass): void\n        onCharacterClassLeave?(node: CharacterClass): void\n        onCharacterClassRangeEnter?(node: CharacterClassRange): void\n        onCharacterClassRangeLeave?(node: CharacterClassRange): void\n        onCharacterSetEnter?(node: CharacterSet): void\n        onCharacterSetLeave?(node: CharacterSet): void\n        onFlagsEnter?(node: Flags): void\n        onFlagsLeave?(node: Flags): void\n        onGroupEnter?(node: Group): void\n        onGroupLeave?(node: Group): void\n        onPatternEnter?(node: Pattern): void\n        onPatternLeave?(node: Pattern): void\n        onQuantifierEnter?(node: Quantifier): void\n        onQuantifierLeave?(node: Quantifier): void\n        onRegExpLiteralEnter?(node: RegExpLiteral): void\n        onRegExpLiteralLeave?(node: RegExpLiteral): void\n    }\n}\n","import * as AST from \"./ast\"\nimport { RegExpParser } from \"./parser\"\nimport { RegExpValidator } from \"./validator\"\nimport { RegExpVisitor } from \"./visitor\"\n\nexport { AST, RegExpParser, RegExpValidator }\n\n/**\n * Parse a given regular expression literal then make AST object.\n * @param source The source code to parse.\n * @param options The options to parse.\n * @returns The AST of the regular expression.\n */\nexport function parseRegExpLiteral(\n    source: string | RegExp,\n    options?: RegExpParser.Options,\n): AST.RegExpLiteral {\n    return new RegExpParser(options).parseLiteral(String(source))\n}\n\n/**\n * Validate a given regular expression literal.\n * @param source The source code to validate.\n * @param options The options to validate.\n */\nexport function validateRegExpLiteral(\n    source: string,\n    options?: RegExpValidator.Options,\n): void {\n    return new RegExpValidator(options).validateLiteral(source)\n}\n\nexport function visitRegExpAST(\n    node: AST.Node,\n    handlers: RegExpVisitor.Handlers,\n): void {\n    new RegExpVisitor(handlers).visit(node)\n}\n"],"names":[],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5335-            if (source[0] !== "/") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js:5336:                source = `/${source}/${uFlag ? "u" : ""}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5337-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js:5338:            source = `: ${source}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5339-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js:5340:        super(`Invalid regular expression${source}: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5341-        this.index = index;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5414-            const c = String.fromCodePoint(this.currentCodePoint);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js:5415:            this.raise(`Unexpected character '${c}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5416-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5429-            if (existingFlags.has(flag)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js:5430:                this.raise(`Duplicated flag '${source[i]}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5431-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5451-            else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js:5452:                this.raise(`Invalid flag '${source[i]}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5453-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5652-                const kind = inClass ? "character class" : "regular expression";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js:5653:                this.raise(`Unterminated ${kind}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5654-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5693-            const c = String.fromCodePoint(cp);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js:5694:            this.raise(`Unexpected character '${c}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-5695-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-6939-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js:6940:                throw new Error(`Unknown type: ${node.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js-6941-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5331-            if (source[0] !== "/") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs:5332:                source = `/${source}/${uFlag ? "u" : ""}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5333-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs:5334:            source = `: ${source}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5335-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs:5336:        super(`Invalid regular expression${source}: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5337-        this.index = index;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5410-            const c = String.fromCodePoint(this.currentCodePoint);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs:5411:            this.raise(`Unexpected character '${c}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5412-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5425-            if (existingFlags.has(flag)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs:5426:                this.raise(`Duplicated flag '${source[i]}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5427-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5447-            else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs:5448:                this.raise(`Invalid flag '${source[i]}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5449-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5648-                const kind = inClass ? "character class" : "regular expression";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs:5649:                this.raise(`Unterminated ${kind}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5650-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5689-            const c = String.fromCodePoint(cp);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs:5690:            this.raise(`Unexpected character '${c}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-5691-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-6935-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs:6936:                throw new Error(`Unknown type: ${node.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.mjs-6937-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/regexpp/index.js.map:1:{"version":3,"file":"index.js.map","sources":["src/unicode/ids.ts","src/unicode/property-data.ts","src/unicode/index.ts","src/reader.ts","src/regexp-syntax-error.ts","src/validator.ts","src/parser.ts","src/visitor.ts","src/index.ts"],"sourcesContent":["/* Generated from DerivedCoreProperties-11.0.0.txt */\nexport function isIdStart(cp: number): boolean {\n    if (cp < 0x41) return false\n    if (cp < 0x5b) return true\n    if (cp < 0x61) return false\n    if (cp < 0x7b) return true\n    return isLargeIdStart(cp)\n}\nexport function isIdContinue(cp: number): boolean {\n    if (cp < 0x30) return false\n    if (cp < 0x3a) return true\n    if (cp < 0x41) return false\n    if (cp < 0x5b) return true\n    if (cp === 0x5f) return true\n    if (cp < 0x61) return false\n    if (cp < 0x7b) return true\n    return isLargeIdStart(cp) || isLargeIdContinue(cp)\n}\n\nfunction isLargeIdStart(cp: number): boolean {\n    if (cp < 0x30a1) {\n        if (cp < 0xec0) {\n            if (cp < 0xa35) {\n                if (cp < 0x6e5) {\n                    if (cp < 0x37a) {\n                        if (cp < 0x294) {\n                            if (cp < 0xf8) {\n                                if (cp === 0xaa) return true\n                                if (cp === 0xb5) return true\n                                if (cp === 0xba) return true\n                                if (cp < 0xc0) return false\n                                if (cp < 0xd7) return true\n                                if (cp < 0xd8) return false\n                                if (cp < 0xf7) return true\n                                return false\n                            }\n                            if (cp < 0x1bb) return true\n                            if (cp === 0x1bb) return true\n                            if (cp < 0x1bc) return false\n                            if (cp < 0x1c0) return true\n                            if (cp < 0x1c0) return false\n                            if (cp < 0x1c4) return true\n                            if (cp < 0x1c4) return false\n                            if (cp < 0x294) return true\n                            return false\n                        }\n                        if (cp < 0x2ec) {\n                            if (cp === 0x294) return true\n                            if (cp < 0x295) return false\n                            if (cp < 0x2b0) return true\n                            if (cp < 0x2b0) return false\n                            if (cp < 0x2c2) return true\n                            if (cp < 0x2c6) return false\n                            if (cp < 0x2d2) return true\n                            if (cp < 0x2e0) return false\n                            if (cp < 0x2e5) return true\n                            return false\n                        }\n                        if (cp === 0x2ec) return true\n                        if (cp === 0x2ee) return true\n                        if (cp < 0x370) return false\n                        if (cp < 0x374) return true\n                        if (cp === 0x374) return true\n                        if (cp < 0x376) return false\n                        if (cp < 0x378) return true\n                        return false\n                    }\n                    if (cp < 0x531) {\n                        if (cp < 0x38c) {\n                            if (cp === 0x37a) return true\n                            if (cp < 0x37b) return false\n                            if (cp < 0x37e) return true\n                            if (cp === 0x37f) return true\n                            if (cp === 0x386) return true\n                            if (cp < 0x388) return false\n                            if (cp < 0x38b) return true\n                            return false\n                        }\n                        if (cp === 0x38c) return true\n                        if (cp < 0x38e) return false\n                        if (cp < 0x3a2) return true\n                        if (cp < 0x3a3) return false\n                        if (cp < 0x3f6) return true\n                        if (cp < 0x3f7) return false\n                        if (cp < 0x482) return true\n                        if (cp < 0x48a) return false\n                        if (cp < 0x530) return true\n                        return false\n                    }\n                    if (cp < 0x620) {\n                        if (cp < 0x531) return false\n                        if (cp < 0x557) return true\n                        if (cp === 0x559) return true\n                        if (cp < 0x560) return false\n                        if (cp < 0x589) return true\n                        if (cp < 0x5d0) return false\n                        if (cp < 0x5eb) return true\n                        if (cp < 0x5ef) return false\n                        if (cp < 0x5f3) return true\n                        return false\n                    }\n                    if (cp < 0x640) return true\n                    if (cp === 0x640) return true\n                    if (cp < 0x641) return false\n                    if (cp < 0x64b) return true\n                    if (cp < 0x66e) return false\n                    if (cp < 0x670) return true\n                    if (cp < 0x671) return false\n                    if (cp < 0x6d4) return true\n                    if (cp === 0x6d5) return true\n                    return false\n                }\n                if (cp < 0x950) {\n                    if (cp < 0x7fa) {\n                        if (cp < 0x712) {\n                            if (cp < 0x6e5) return false\n                            if (cp < 0x6e7) return true\n                            if (cp < 0x6ee) return false\n                            if (cp < 0x6f0) return true\n                            if (cp < 0x6fa) return false\n                            if (cp < 0x6fd) return true\n                            if (cp === 0x6ff) return true\n                            if (cp === 0x710) return true\n                            return false\n                        }\n                        if (cp < 0x730) return true\n                        if (cp < 0x74d) return false\n                        if (cp < 0x7a6) return true\n                        if (cp === 0x7b1) return true\n                        if (cp < 0x7ca) return false\n                        if (cp < 0x7eb) return true\n                        if (cp < 0x7f4) return false\n                        if (cp < 0x7f6) return true\n                        return false\n                    }\n                    if (cp < 0x840) {\n                        if (cp === 0x7fa) return true\n                        if (cp < 0x800) return false\n                        if (cp < 0x816) return true\n                        if (cp === 0x81a) return true\n                        if (cp === 0x824) return true\n                        if (cp === 0x828) return true\n                        return false\n                    }\n                    if (cp < 0x859) return true\n                    if (cp < 0x860) return false\n                    if (cp < 0x86b) return true\n                    if (cp < 0x8a0) return false\n                    if (cp < 0x8b5) return true\n                    if (cp < 0x8b6) return false\n                    if (cp < 0x8be) return true\n                    if (cp < 0x904) return false\n                    if (cp < 0x93a) return true\n                    if (cp === 0x93d) return true\n                    return false\n                }\n                if (cp < 0x9bd) {\n                    if (cp < 0x98f) {\n                        if (cp === 0x950) return true\n                        if (cp < 0x958) return false\n                        if (cp < 0x962) return true\n                        if (cp === 0x971) return true\n                        if (cp < 0x972) return false\n                        if (cp < 0x981) return true\n                        if (cp < 0x985) return false\n                        if (cp < 0x98d) return true\n                        return false\n                    }\n                    if (cp < 0x991) return true\n                    if (cp < 0x993) return false\n                    if (cp < 0x9a9) return true\n                    if (cp < 0x9aa) return false\n                    if (cp < 0x9b1) return true\n                    if (cp === 0x9b2) return true\n                    if (cp < 0x9b6) return false\n                    if (cp < 0x9ba) return true\n                    return false\n                }\n                if (cp < 0x9fc) {\n                    if (cp === 0x9bd) return true\n                    if (cp === 0x9ce) return true\n                    if (cp < 0x9dc) return false\n                    if (cp < 0x9de) return true\n                    if (cp < 0x9df) return false\n                    if (cp < 0x9e2) return true\n                    if (cp < 0x9f0) return false\n                    if (cp < 0x9f2) return true\n                    return false\n                }\n                if (cp === 0x9fc) return true\n                if (cp < 0xa05) return false\n                if (cp < 0xa0b) return true\n                if (cp < 0xa0f) return false\n                if (cp < 0xa11) return true\n                if (cp < 0xa13) return false\n                if (cp < 0xa29) return true\n                if (cp < 0xa2a) return false\n                if (cp < 0xa31) return true\n                if (cp < 0xa32) return false\n                if (cp < 0xa34) return true\n                return false\n            }\n            if (cp < 0xc60) {\n                if (cp < 0xb3d) {\n                    if (cp < 0xab5) {\n                        if (cp < 0xa85) {\n                            if (cp < 0xa35) return false\n                            if (cp < 0xa37) return true\n                            if (cp < 0xa38) return false\n                            if (cp < 0xa3a) return true\n                            if (cp < 0xa59) return false\n                            if (cp < 0xa5d) return true\n                            if (cp === 0xa5e) return true\n                            if (cp < 0xa72) return false\n                            if (cp < 0xa75) return true\n                            return false\n                        }\n                        if (cp < 0xa8e) return true\n                        if (cp < 0xa8f) return false\n                        if (cp < 0xa92) return true\n                        if (cp < 0xa93) return false\n                        if (cp < 0xaa9) return true\n                        if (cp < 0xaaa) return false\n                        if (cp < 0xab1) return true\n                        if (cp < 0xab2) return false\n                        if (cp < 0xab4) return true\n                        return false\n                    }\n                    if (cp < 0xb05) {\n                        if (cp < 0xab5) return false\n                        if (cp < 0xaba) return true\n                        if (cp === 0xabd) return true\n                        if (cp === 0xad0) return true\n                        if (cp < 0xae0) return false\n                        if (cp < 0xae2) return true\n                        if (cp === 0xaf9) return true\n                        return false\n                    }\n                    if (cp < 0xb0d) return true\n                    if (cp < 0xb0f) return false\n                    if (cp < 0xb11) return true\n                    if (cp < 0xb13) return false\n                    if (cp < 0xb29) return true\n                    if (cp < 0xb2a) return false\n                    if (cp < 0xb31) return true\n                    if (cp < 0xb32) return false\n                    if (cp < 0xb34) return true\n                    if (cp < 0xb35) return false\n                    if (cp < 0xb3a) return true\n                    return false\n                }\n                if (cp < 0xb9e) {\n                    if (cp < 0xb85) {\n                        if (cp === 0xb3d) return true\n                        if (cp < 0xb5c) return false\n                        if (cp < 0xb5e) return true\n                        if (cp < 0xb5f) return false\n                        if (cp < 0xb62) return true\n                        if (cp === 0xb71) return true\n                        if (cp === 0xb83) return true\n                        return false\n                    }\n                    if (cp < 0xb8b) return true\n                    if (cp < 0xb8e) return false\n                    if (cp < 0xb91) return true\n                    if (cp < 0xb92) return false\n                    if (cp < 0xb96) return true\n                    if (cp < 0xb99) return false\n                    if (cp < 0xb9b) return true\n                    if (cp === 0xb9c) return true\n                    return false\n                }\n                if (cp < 0xc05) {\n                    if (cp < 0xb9e) return false\n                    if (cp < 0xba0) return true\n                    if (cp < 0xba3) return false\n                    if (cp < 0xba5) return true\n                    if (cp < 0xba8) return false\n                    if (cp < 0xbab) return true\n                    if (cp < 0xbae) return false\n                    if (cp < 0xbba) return true\n                    if (cp === 0xbd0) return true\n                    return false\n                }\n                if (cp < 0xc0d) return true\n                if (cp < 0xc0e) return false\n                if (cp < 0xc11) return true\n                if (cp < 0xc12) return false\n                if (cp < 0xc29) return true\n                if (cp < 0xc2a) return false\n                if (cp < 0xc3a) return true\n                if (cp === 0xc3d) return true\n                if (cp < 0xc58) return false\n                if (cp < 0xc5b) return true\n                return false\n            }\n            if (cp < 0xdb3) {\n                if (cp < 0xcf1) {\n                    if (cp < 0xcaa) {\n                        if (cp < 0xc60) return false\n                        if (cp < 0xc62) return true\n                        if (cp === 0xc80) return true\n                        if (cp < 0xc85) return false\n                        if (cp < 0xc8d) return true\n                        if (cp < 0xc8e) return false\n                        if (cp < 0xc91) return true\n                        if (cp < 0xc92) return false\n                        if (cp < 0xca9) return true\n                        return false\n                    }\n                    if (cp < 0xcb4) return true\n                    if (cp < 0xcb5) return false\n                    if (cp < 0xcba) return true\n                    if (cp === 0xcbd) return true\n                    if (cp === 0xcde) return true\n                    if (cp < 0xce0) return false\n                    if (cp < 0xce2) return true\n                    return false\n                }\n                if (cp < 0xd4e) {\n                    if (cp < 0xcf1) return false\n                    if (cp < 0xcf3) return true\n                    if (cp < 0xd05) return false\n                    if (cp < 0xd0d) return true\n                    if (cp < 0xd0e) return false\n                    if (cp < 0xd11) return true\n                    if (cp < 0xd12) return false\n                    if (cp < 0xd3b) return true\n                    if (cp === 0xd3d) return true\n                    return false\n                }\n                if (cp === 0xd4e) return true\n                if (cp < 0xd54) return false\n                if (cp < 0xd57) return true\n                if (cp < 0xd5f) return false\n                if (cp < 0xd62) return true\n                if (cp < 0xd7a) return false\n                if (cp < 0xd80) return true\n                if (cp < 0xd85) return false\n                if (cp < 0xd97) return true\n                if (cp < 0xd9a) return false\n                if (cp < 0xdb2) return true\n                return false\n            }\n            if (cp < 0xe8a) {\n                if (cp < 0xe40) {\n                    if (cp < 0xdb3) return false\n                    if (cp < 0xdbc) return true\n                    if (cp === 0xdbd) return true\n                    if (cp < 0xdc0) return false\n                    if (cp < 0xdc7) return true\n                    if (cp < 0xe01) return false\n                    if (cp < 0xe31) return true\n                    if (cp < 0xe32) return false\n                    if (cp < 0xe34) return true\n                    return false\n                }\n                if (cp < 0xe46) return true\n                if (cp === 0xe46) return true\n                if (cp < 0xe81) return false\n                if (cp < 0xe83) return true\n                if (cp === 0xe84) return true\n                if (cp < 0xe87) return false\n                if (cp < 0xe89) return true\n                return false\n            }\n            if (cp < 0xea5) {\n                if (cp === 0xe8a) return true\n                if (cp === 0xe8d) return true\n                if (cp < 0xe94) return false\n                if (cp < 0xe98) return true\n                if (cp < 0xe99) return false\n                if (cp < 0xea0) return true\n                if (cp < 0xea1) return false\n                if (cp < 0xea4) return true\n                return false\n            }\n            if (cp === 0xea5) return true\n            if (cp === 0xea7) return true\n            if (cp < 0xeaa) return false\n            if (cp < 0xeac) return true\n            if (cp < 0xead) return false\n            if (cp < 0xeb1) return true\n            if (cp < 0xeb2) return false\n            if (cp < 0xeb4) return true\n            if (cp === 0xebd) return true\n            return false\n        }\n        if (cp < 0x1ce9) {\n            if (cp < 0x166f) {\n                if (cp < 0x10fd) {\n                    if (cp < 0x105a) {\n                        if (cp < 0xf49) {\n                            if (cp < 0xec0) return false\n                            if (cp < 0xec5) return true\n                            if (cp === 0xec6) return true\n                            if (cp < 0xedc) return false\n                            if (cp < 0xee0) return true\n                            if (cp === 0xf00) return true\n                            if (cp < 0xf40) return false\n                            if (cp < 0xf48) return true\n                            return false\n                        }\n                        if (cp < 0xf6d) return true\n                        if (cp < 0xf88) return false\n                        if (cp < 0xf8d) return true\n                        if (cp < 0x1000) return false\n                        if (cp < 0x102b) return true\n                        if (cp === 0x103f) return true\n                        if (cp < 0x1050) return false\n                        if (cp < 0x1056) return true\n                        return false\n                    }\n                    if (cp < 0x108e) {\n                        if (cp < 0x105a) return false\n                        if (cp < 0x105e) return true\n                        if (cp === 0x1061) return true\n                        if (cp < 0x1065) return false\n                        if (cp < 0x1067) return true\n                        if (cp < 0x106e) return false\n                        if (cp < 0x1071) return true\n                        if (cp < 0x1075) return false\n                        if (cp < 0x1082) return true\n                        return false\n                    }\n                    if (cp === 0x108e) return true\n                    if (cp < 0x10a0) return false\n                    if (cp < 0x10c6) return true\n                    if (cp === 0x10c7) return true\n                    if (cp === 0x10cd) return true\n                    if (cp < 0x10d0) return false\n                    if (cp < 0x10fb) return true\n                    if (cp === 0x10fc) return true\n                    return false\n                }\n                if (cp < 0x12b8) {\n                    if (cp < 0x125a) {\n                        if (cp < 0x10fd) return false\n                        if (cp < 0x1100) return true\n                        if (cp < 0x1100) return false\n                        if (cp < 0x1249) return true\n                        if (cp < 0x124a) return false\n                        if (cp < 0x124e) return true\n                        if (cp < 0x1250) return false\n                        if (cp < 0x1257) return true\n                        if (cp === 0x1258) return true\n                        return false\n                    }\n                    if (cp < 0x125e) return true\n                    if (cp < 0x1260) return false\n                    if (cp < 0x1289) return true\n                    if (cp < 0x128a) return false\n                    if (cp < 0x128e) return true\n                    if (cp < 0x1290) return false\n                    if (cp < 0x12b1) return true\n                    if (cp < 0x12b2) return false\n                    if (cp < 0x12b6) return true\n                    return false\n                }\n                if (cp < 0x1312) {\n                    if (cp < 0x12b8) return false\n                    if (cp < 0x12bf) return true\n                    if (cp === 0x12c0) return true\n                    if (cp < 0x12c2) return false\n                    if (cp < 0x12c6) return true\n                    if (cp < 0x12c8) return false\n                    if (cp < 0x12d7) return true\n                    if (cp < 0x12d8) return false\n                    if (cp < 0x1311) return true\n                    return false\n                }\n                if (cp < 0x1316) return true\n                if (cp < 0x1318) return false\n                if (cp < 0x135b) return true\n                if (cp < 0x1380) return false\n                if (cp < 0x1390) return true\n                if (cp < 0x13a0) return false\n                if (cp < 0x13f6) return true\n                if (cp < 0x13f8) return false\n                if (cp < 0x13fe) return true\n                if (cp < 0x1401) return false\n                if (cp < 0x166d) return true\n                return false\n            }\n            if (cp < 0x18b0) {\n                if (cp < 0x176e) {\n                    if (cp < 0x1700) {\n                        if (cp < 0x166f) return false\n                        if (cp < 0x1680) return true\n                        if (cp < 0x1681) return false\n                        if (cp < 0x169b) return true\n                        if (cp < 0x16a0) return false\n                        if (cp < 0x16eb) return true\n                        if (cp < 0x16ee) return false\n                        if (cp < 0x16f1) return true\n                        if (cp < 0x16f1) return false\n                        if (cp < 0x16f9) return true\n                        return false\n                    }\n                    if (cp < 0x170d) return true\n                    if (cp < 0x170e) return false\n                    if (cp < 0x1712) return true\n                    if (cp < 0x1720) return false\n                    if (cp < 0x1732) return true\n                    if (cp < 0x1740) return false\n                    if (cp < 0x1752) return true\n                    if (cp < 0x1760) return false\n                    if (cp < 0x176d) return true\n                    return false\n                }\n                if (cp < 0x1843) {\n                    if (cp < 0x176e) return false\n                    if (cp < 0x1771) return true\n                    if (cp < 0x1780) return false\n                    if (cp < 0x17b4) return true\n                    if (cp === 0x17d7) return true\n                    if (cp === 0x17dc) return true\n                    if (cp < 0x1820) return false\n                    if (cp < 0x1843) return true\n                    return false\n                }\n                if (cp === 0x1843) return true\n                if (cp < 0x1844) return false\n                if (cp < 0x1879) return true\n                if (cp < 0x1880) return false\n                if (cp < 0x1885) return true\n                if (cp < 0x1885) return false\n                if (cp < 0x1887) return true\n                if (cp < 0x1887) return false\n                if (cp < 0x18a9) return true\n                if (cp === 0x18aa) return true\n                return false\n            }\n            if (cp < 0x1b45) {\n                if (cp < 0x19b0) {\n                    if (cp < 0x18b0) return false\n                    if (cp < 0x18f6) return true\n                    if (cp < 0x1900) return false\n                    if (cp < 0x191f) return true\n                    if (cp < 0x1950) return false\n                    if (cp < 0x196e) return true\n                    if (cp < 0x1970) return false\n                    if (cp < 0x1975) return true\n                    if (cp < 0x1980) return false\n                    if (cp < 0x19ac) return true\n                    return false\n                }\n                if (cp < 0x19ca) return true\n                if (cp < 0x1a00) return false\n                if (cp < 0x1a17) return true\n                if (cp < 0x1a20) return false\n                if (cp < 0x1a55) return true\n                if (cp === 0x1aa7) return true\n                if (cp < 0x1b05) return false\n                if (cp < 0x1b34) return true\n                return false\n            }\n            if (cp < 0x1c4d) {\n                if (cp < 0x1b45) return false\n                if (cp < 0x1b4c) return true\n                if (cp < 0x1b83) return false\n                if (cp < 0x1ba1) return true\n                if (cp < 0x1bae) return false\n                if (cp < 0x1bb0) return true\n                if (cp < 0x1bba) return false\n                if (cp < 0x1be6) return true\n                if (cp < 0x1c00) return false\n                if (cp < 0x1c24) return true\n                return false\n            }\n            if (cp < 0x1c50) return true\n            if (cp < 0x1c5a) return false\n            if (cp < 0x1c78) return true\n            if (cp < 0x1c78) return false\n            if (cp < 0x1c7e) return true\n            if (cp < 0x1c80) return false\n            if (cp < 0x1c89) return true\n            if (cp < 0x1c90) return false\n            if (cp < 0x1cbb) return true\n            if (cp < 0x1cbd) return false\n            if (cp < 0x1cc0) return true\n            return false\n        }\n        if (cp < 0x212f) {\n            if (cp < 0x1fc2) {\n                if (cp < 0x1f18) {\n                    if (cp < 0x1d6b) {\n                        if (cp < 0x1ce9) return false\n                        if (cp < 0x1ced) return true\n                        if (cp < 0x1cee) return false\n                        if (cp < 0x1cf2) return true\n                        if (cp < 0x1cf5) return false\n                        if (cp < 0x1cf7) return true\n                        if (cp < 0x1d00) return false\n                        if (cp < 0x1d2c) return true\n                        if (cp < 0x1d2c) return false\n                        if (cp < 0x1d6b) return true\n                        return false\n                    }\n                    if (cp < 0x1d78) return true\n                    if (cp === 0x1d78) return true\n                    if (cp < 0x1d79) return false\n                    if (cp < 0x1d9b) return true\n                    if (cp < 0x1d9b) return false\n                    if (cp < 0x1dc0) return true\n                    if (cp < 0x1e00) return false\n                    if (cp < 0x1f16) return true\n                    return false\n                }\n                if (cp < 0x1f5b) {\n                    if (cp < 0x1f18) return false\n                    if (cp < 0x1f1e) return true\n                    if (cp < 0x1f20) return false\n                    if (cp < 0x1f46) return true\n                    if (cp < 0x1f48) return false\n                    if (cp < 0x1f4e) return true\n                    if (cp < 0x1f50) return false\n                    if (cp < 0x1f58) return true\n                    if (cp === 0x1f59) return true\n                    return false\n                }\n                if (cp === 0x1f5b) return true\n                if (cp === 0x1f5d) return true\n                if (cp < 0x1f5f) return false\n                if (cp < 0x1f7e) return true\n                if (cp < 0x1f80) return false\n                if (cp < 0x1fb5) return true\n                if (cp < 0x1fb6) return false\n                if (cp < 0x1fbd) return true\n                if (cp === 0x1fbe) return true\n                return false\n            }\n            if (cp < 0x2102) {\n                if (cp < 0x1ff2) {\n                    if (cp < 0x1fc2) return false\n                    if (cp < 0x1fc5) return true\n                    if (cp < 0x1fc6) return false\n                    if (cp < 0x1fcd) return true\n                    if (cp < 0x1fd0) return false\n                    if (cp < 0x1fd4) return true\n                    if (cp < 0x1fd6) return false\n                    if (cp < 0x1fdc) return true\n                    if (cp < 0x1fe0) return false\n                    if (cp < 0x1fed) return true\n                    return false\n                }\n                if (cp < 0x1ff5) return true\n                if (cp < 0x1ff6) return false\n                if (cp < 0x1ffd) return true\n                if (cp === 0x2071) return true\n                if (cp === 0x207f) return true\n                if (cp < 0x2090) return false\n                if (cp < 0x209d) return true\n                return false\n            }\n            if (cp < 0x2119) {\n                if (cp === 0x2102) return true\n                if (cp === 0x2107) return true\n                if (cp < 0x210a) return false\n                if (cp < 0x2114) return true\n                if (cp === 0x2115) return true\n                if (cp === 0x2118) return true\n                return false\n            }\n            if (cp < 0x211e) return true\n            if (cp === 0x2124) return true\n            if (cp === 0x2126) return true\n            if (cp === 0x2128) return true\n            if (cp < 0x212a) return false\n            if (cp < 0x212e) return true\n            if (cp === 0x212e) return true\n            return false\n        }\n        if (cp < 0x2d80) {\n            if (cp < 0x2c30) {\n                if (cp < 0x214e) {\n                    if (cp < 0x212f) return false\n                    if (cp < 0x2135) return true\n                    if (cp < 0x2135) return false\n                    if (cp < 0x2139) return true\n                    if (cp === 0x2139) return true\n                    if (cp < 0x213c) return false\n                    if (cp < 0x2140) return true\n                    if (cp < 0x2145) return false\n                    if (cp < 0x214a) return true\n                    return false\n                }\n                if (cp === 0x214e) return true\n                if (cp < 0x2160) return false\n                if (cp < 0x2183) return true\n                if (cp < 0x2183) return false\n                if (cp < 0x2185) return true\n                if (cp < 0x2185) return false\n                if (cp < 0x2189) return true\n                if (cp < 0x2c00) return false\n                if (cp < 0x2c2f) return true\n                return false\n            }\n            if (cp < 0x2cf2) {\n                if (cp < 0x2c30) return false\n                if (cp < 0x2c5f) return true\n                if (cp < 0x2c60) return false\n                if (cp < 0x2c7c) return true\n                if (cp < 0x2c7c) return false\n                if (cp < 0x2c7e) return true\n                if (cp < 0x2c7e) return false\n                if (cp < 0x2ce5) return true\n                if (cp < 0x2ceb) return false\n                if (cp < 0x2cef) return true\n                return false\n            }\n            if (cp < 0x2cf4) return true\n            if (cp < 0x2d00) return false\n            if (cp < 0x2d26) return true\n            if (cp === 0x2d27) return true\n            if (cp === 0x2d2d) return true\n            if (cp < 0x2d30) return false\n            if (cp < 0x2d68) return true\n            if (cp === 0x2d6f) return true\n            return false\n        }\n        if (cp < 0x3006) {\n            if (cp < 0x2dc0) {\n                if (cp < 0x2d80) return false\n                if (cp < 0x2d97) return true\n                if (cp < 0x2da0) return false\n                if (cp < 0x2da7) return true\n                if (cp < 0x2da8) return false\n                if (cp < 0x2daf) return true\n                if (cp < 0x2db0) return false\n                if (cp < 0x2db7) return true\n                if (cp < 0x2db8) return false\n                if (cp < 0x2dbf) return true\n                return false\n            }\n            if (cp < 0x2dc7) return true\n            if (cp < 0x2dc8) return false\n            if (cp < 0x2dcf) return true\n            if (cp < 0x2dd0) return false\n            if (cp < 0x2dd7) return true\n            if (cp < 0x2dd8) return false\n            if (cp < 0x2ddf) return true\n            if (cp === 0x3005) return true\n            return false\n        }\n        if (cp < 0x303b) {\n            if (cp === 0x3006) return true\n            if (cp === 0x3007) return true\n            if (cp < 0x3021) return false\n            if (cp < 0x302a) return true\n            if (cp < 0x3031) return false\n            if (cp < 0x3036) return true\n            if (cp < 0x3038) return false\n            if (cp < 0x303b) return true\n            return false\n        }\n        if (cp === 0x303b) return true\n        if (cp === 0x303c) return true\n        if (cp < 0x3041) return false\n        if (cp < 0x3097) return true\n        if (cp < 0x309b) return false\n        if (cp < 0x309d) return true\n        if (cp < 0x309d) return false\n        if (cp < 0x309f) return true\n        if (cp === 0x309f) return true\n        return false\n    }\n    if (cp < 0x10b60) {\n        if (cp < 0xd7b0) {\n            if (cp < 0xa882) {\n                if (cp < 0xa67f) {\n                    if (cp < 0xa015) {\n                        if (cp < 0x31a0) {\n                            if (cp < 0x30a1) return false\n                            if (cp < 0x30fb) return true\n                            if (cp < 0x30fc) return false\n                            if (cp < 0x30ff) return true\n                            if (cp === 0x30ff) return true\n                            if (cp < 0x3105) return false\n                            if (cp < 0x3130) return true\n                            if (cp < 0x3131) return false\n                            if (cp < 0x318f) return true\n                            return false\n                        }\n                        if (cp < 0x31bb) return true\n                        if (cp < 0x31f0) return false\n                        if (cp < 0x3200) return true\n                        if (cp < 0x3400) return false\n                        if (cp < 0x4db6) return true\n                        if (cp < 0x4e00) return false\n                        if (cp < 0x9ff0) return true\n                        if (cp < 0xa000) return false\n                        if (cp < 0xa015) return true\n                        return false\n                    }\n                    if (cp < 0xa60c) {\n                        if (cp === 0xa015) return true\n                        if (cp < 0xa016) return false\n                        if (cp < 0xa48d) return true\n                        if (cp < 0xa4d0) return false\n                        if (cp < 0xa4f8) return true\n                        if (cp < 0xa4f8) return false\n                        if (cp < 0xa4fe) return true\n                        if (cp < 0xa500) return false\n                        if (cp < 0xa60c) return true\n                        return false\n                    }\n                    if (cp === 0xa60c) return true\n                    if (cp < 0xa610) return false\n                    if (cp < 0xa620) return true\n                    if (cp < 0xa62a) return false\n                    if (cp < 0xa62c) return true\n                    if (cp < 0xa640) return false\n                    if (cp < 0xa66e) return true\n                    if (cp === 0xa66e) return true\n                    return false\n                }\n                if (cp < 0xa78b) {\n                    if (cp < 0xa717) {\n                        if (cp === 0xa67f) return true\n                        if (cp < 0xa680) return false\n                        if (cp < 0xa69c) return true\n                        if (cp < 0xa69c) return false\n                        if (cp < 0xa69e) return true\n                        if (cp < 0xa6a0) return false\n                        if (cp < 0xa6e6) return true\n                        if (cp < 0xa6e6) return false\n                        if (cp < 0xa6f0) return true\n                        return false\n                    }\n                    if (cp < 0xa720) return true\n                    if (cp < 0xa722) return false\n                    if (cp < 0xa770) return true\n                    if (cp === 0xa770) return true\n                    if (cp < 0xa771) return false\n                    if (cp < 0xa788) return true\n                    if (cp === 0xa788) return true\n                    return false\n                }\n                if (cp < 0xa7fa) {\n                    if (cp < 0xa78b) return false\n                    if (cp < 0xa78f) return true\n                    if (cp === 0xa78f) return true\n                    if (cp < 0xa790) return false\n                    if (cp < 0xa7ba) return true\n                    if (cp === 0xa7f7) return true\n                    if (cp < 0xa7f8) return false\n                    if (cp < 0xa7fa) return true\n                    return false\n                }\n                if (cp === 0xa7fa) return true\n                if (cp < 0xa7fb) return false\n                if (cp < 0xa802) return true\n                if (cp < 0xa803) return false\n                if (cp < 0xa806) return true\n                if (cp < 0xa807) return false\n                if (cp < 0xa80b) return true\n                if (cp < 0xa80c) return false\n                if (cp < 0xa823) return true\n                if (cp < 0xa840) return false\n                if (cp < 0xa874) return true\n                return false\n            }\n            if (cp < 0xaab1) {\n                if (cp < 0xa9e6) {\n                    if (cp < 0xa930) {\n                        if (cp < 0xa882) return false\n                        if (cp < 0xa8b4) return true\n                        if (cp < 0xa8f2) return false\n                        if (cp < 0xa8f8) return true\n                        if (cp === 0xa8fb) return true\n                        if (cp < 0xa8fd) return false\n                        if (cp < 0xa8ff) return true\n                        if (cp < 0xa90a) return false\n                        if (cp < 0xa926) return true\n                        return false\n                    }\n                    if (cp < 0xa947) return true\n                    if (cp < 0xa960) return false\n                    if (cp < 0xa97d) return true\n                    if (cp < 0xa984) return false\n                    if (cp < 0xa9b3) return true\n                    if (cp === 0xa9cf) return true\n                    if (cp < 0xa9e0) return false\n                    if (cp < 0xa9e5) return true\n                    return false\n                }\n                if (cp < 0xaa44) {\n                    if (cp === 0xa9e6) return true\n                    if (cp < 0xa9e7) return false\n                    if (cp < 0xa9f0) return true\n                    if (cp < 0xa9fa) return false\n                    if (cp < 0xa9ff) return true\n                    if (cp < 0xaa00) return false\n                    if (cp < 0xaa29) return true\n                    if (cp < 0xaa40) return false\n                    if (cp < 0xaa43) return true\n                    return false\n                }\n                if (cp < 0xaa4c) return true\n                if (cp < 0xaa60) return false\n                if (cp < 0xaa70) return true\n                if (cp === 0xaa70) return true\n                if (cp < 0xaa71) return false\n                if (cp < 0xaa77) return true\n                if (cp === 0xaa7a) return true\n                if (cp < 0xaa7e) return false\n                if (cp < 0xaab0) return true\n                return false\n            }\n            if (cp < 0xab01) {\n                if (cp < 0xaadb) {\n                    if (cp === 0xaab1) return true\n                    if (cp < 0xaab5) return false\n                    if (cp < 0xaab7) return true\n                    if (cp < 0xaab9) return false\n                    if (cp < 0xaabe) return true\n                    if (cp === 0xaac0) return true\n                    if (cp === 0xaac2) return true\n                    return false\n                }\n                if (cp < 0xaadd) return true\n                if (cp === 0xaadd) return true\n                if (cp < 0xaae0) return false\n                if (cp < 0xaaeb) return true\n                if (cp === 0xaaf2) return true\n                if (cp < 0xaaf3) return false\n                if (cp < 0xaaf5) return true\n                return false\n            }\n            if (cp < 0xab30) {\n                if (cp < 0xab01) return false\n                if (cp < 0xab07) return true\n                if (cp < 0xab09) return false\n                if (cp < 0xab0f) return true\n                if (cp < 0xab11) return false\n                if (cp < 0xab17) return true\n                if (cp < 0xab20) return false\n                if (cp < 0xab27) return true\n                if (cp < 0xab28) return false\n                if (cp < 0xab2f) return true\n                return false\n            }\n            if (cp < 0xab5b) return true\n            if (cp < 0xab5c) return false\n            if (cp < 0xab60) return true\n            if (cp < 0xab60) return false\n            if (cp < 0xab66) return true\n            if (cp < 0xab70) return false\n            if (cp < 0xabc0) return true\n            if (cp < 0xabc0) return false\n            if (cp < 0xabe3) return true\n            if (cp < 0xac00) return false\n            if (cp < 0xd7a4) return true\n            return false\n        }\n        if (cp < 0x1032d) {\n            if (cp < 0xff41) {\n                if (cp < 0xfb3e) {\n                    if (cp < 0xfb13) {\n                        if (cp < 0xd7b0) return false\n                        if (cp < 0xd7c7) return true\n                        if (cp < 0xd7cb) return false\n                        if (cp < 0xd7fc) return true\n                        if (cp < 0xf900) return false\n                        if (cp < 0xfa6e) return true\n                        if (cp < 0xfa70) return false\n                        if (cp < 0xfada) return true\n                        if (cp < 0xfb00) return false\n                        if (cp < 0xfb07) return true\n                        return false\n                    }\n                    if (cp < 0xfb18) return true\n                    if (cp === 0xfb1d) return true\n                    if (cp < 0xfb1f) return false\n                    if (cp < 0xfb29) return true\n                    if (cp < 0xfb2a) return false\n                    if (cp < 0xfb37) return true\n                    if (cp < 0xfb38) return false\n                    if (cp < 0xfb3d) return true\n                    return false\n                }\n                if (cp < 0xfd50) {\n                    if (cp === 0xfb3e) return true\n                    if (cp < 0xfb40) return false\n                    if (cp < 0xfb42) return true\n                    if (cp < 0xfb43) return false\n                    if (cp < 0xfb45) return true\n                    if (cp < 0xfb46) return false\n                    if (cp < 0xfbb2) return true\n                    if (cp < 0xfbd3) return false\n                    if (cp < 0xfd3e) return true\n                    return false\n                }\n                if (cp < 0xfd90) return true\n                if (cp < 0xfd92) return false\n                if (cp < 0xfdc8) return true\n                if (cp < 0xfdf0) return false\n                if (cp < 0xfdfc) return true\n                if (cp < 0xfe70) return false\n                if (cp < 0xfe75) return true\n                if (cp < 0xfe76) return false\n                if (cp < 0xfefd) return true\n                if (cp < 0xff21) return false\n                if (cp < 0xff3b) return true\n                return false\n            }\n            if (cp < 0x10000) {\n                if (cp < 0xffa0) {\n                    if (cp < 0xff41) return false\n                    if (cp < 0xff5b) return true\n                    if (cp < 0xff66) return false\n                    if (cp < 0xff70) return true\n                    if (cp === 0xff70) return true\n                    if (cp < 0xff71) return false\n                    if (cp < 0xff9e) return true\n                    if (cp < 0xff9e) return false\n                    if (cp < 0xffa0) return true\n                    return false\n                }\n                if (cp < 0xffbf) return true\n                if (cp < 0xffc2) return false\n                if (cp < 0xffc8) return true\n                if (cp < 0xffca) return false\n                if (cp < 0xffd0) return true\n                if (cp < 0xffd2) return false\n                if (cp < 0xffd8) return true\n                if (cp < 0xffda) return false\n                if (cp < 0xffdd) return true\n                return false\n            }\n            if (cp < 0x10050) {\n                if (cp < 0x10000) return false\n                if (cp < 0x1000c) return true\n                if (cp < 0x1000d) return false\n                if (cp < 0x10027) return true\n                if (cp < 0x10028) return false\n                if (cp < 0x1003b) return true\n                if (cp < 0x1003c) return false\n                if (cp < 0x1003e) return true\n                if (cp < 0x1003f) return false\n                if (cp < 0x1004e) return true\n                return false\n            }\n            if (cp < 0x1005e) return true\n            if (cp < 0x10080) return false\n            if (cp < 0x100fb) return true\n            if (cp < 0x10140) return false\n            if (cp < 0x10175) return true\n            if (cp < 0x10280) return false\n            if (cp < 0x1029d) return true\n            if (cp < 0x102a0) return false\n            if (cp < 0x102d1) return true\n            if (cp < 0x10300) return false\n            if (cp < 0x10320) return true\n            return false\n        }\n        if (cp < 0x10837) {\n            if (cp < 0x10450) {\n                if (cp < 0x10380) {\n                    if (cp < 0x1032d) return false\n                    if (cp < 0x10341) return true\n                    if (cp === 0x10341) return true\n                    if (cp < 0x10342) return false\n                    if (cp < 0x1034a) return true\n                    if (cp === 0x1034a) return true\n                    if (cp < 0x10350) return false\n                    if (cp < 0x10376) return true\n                    return false\n                }\n                if (cp < 0x1039e) return true\n                if (cp < 0x103a0) return false\n                if (cp < 0x103c4) return true\n                if (cp < 0x103c8) return false\n                if (cp < 0x103d0) return true\n                if (cp < 0x103d1) return false\n                if (cp < 0x103d6) return true\n                if (cp < 0x10400) return false\n                if (cp < 0x10450) return true\n                return false\n            }\n            if (cp < 0x10600) {\n                if (cp < 0x10450) return false\n                if (cp < 0x1049e) return true\n                if (cp < 0x104b0) return false\n                if (cp < 0x104d4) return true\n                if (cp < 0x104d8) return false\n                if (cp < 0x104fc) return true\n                if (cp < 0x10500) return false\n                if (cp < 0x10528) return true\n                if (cp < 0x10530) return false\n                if (cp < 0x10564) return true\n                return false\n            }\n            if (cp < 0x10737) return true\n            if (cp < 0x10740) return false\n            if (cp < 0x10756) return true\n            if (cp < 0x10760) return false\n            if (cp < 0x10768) return true\n            if (cp < 0x10800) return false\n            if (cp < 0x10806) return true\n            if (cp === 0x10808) return true\n            if (cp < 0x1080a) return false\n            if (cp < 0x10836) return true\n            return false\n        }\n        if (cp < 0x109be) {\n            if (cp < 0x108e0) {\n                if (cp < 0x10837) return false\n                if (cp < 0x10839) return true\n                if (cp === 0x1083c) return true\n                if (cp < 0x1083f) return false\n                if (cp < 0x10856) return true\n                if (cp < 0x10860) return false\n                if (cp < 0x10877) return true\n                if (cp < 0x10880) return false\n                if (cp < 0x1089f) return true\n                return false\n            }\n            if (cp < 0x108f3) return true\n            if (cp < 0x108f4) return false\n            if (cp < 0x108f6) return true\n            if (cp < 0x10900) return false\n            if (cp < 0x10916) return true\n            if (cp < 0x10920) return false\n            if (cp < 0x1093a) return true\n            if (cp < 0x10980) return false\n            if (cp < 0x109b8) return true\n            return false\n        }\n        if (cp < 0x10a60) {\n            if (cp < 0x109be) return false\n            if (cp < 0x109c0) return true\n            if (cp === 0x10a00) return true\n            if (cp < 0x10a10) return false\n            if (cp < 0x10a14) return true\n            if (cp < 0x10a15) return false\n            if (cp < 0x10a18) return true\n            if (cp < 0x10a19) return false\n            if (cp < 0x10a36) return true\n            return false\n        }\n        if (cp < 0x10a7d) return true\n        if (cp < 0x10a80) return false\n        if (cp < 0x10a9d) return true\n        if (cp < 0x10ac0) return false\n        if (cp < 0x10ac8) return true\n        if (cp < 0x10ac9) return false\n        if (cp < 0x10ae5) return true\n        if (cp < 0x10b00) return false\n        if (cp < 0x10b36) return true\n        if (cp < 0x10b40) return false\n        if (cp < 0x10b56) return true\n        return false\n    }\n    if (cp < 0x16e40) {\n        if (cp < 0x11580) {\n            if (cp < 0x11213) {\n                if (cp < 0x11083) {\n                    if (cp < 0x10d00) {\n                        if (cp < 0x10b60) return false\n                        if (cp < 0x10b73) return true\n                        if (cp < 0x10b80) return false\n                        if (cp < 0x10b92) return true\n                        if (cp < 0x10c00) return false\n                        if (cp < 0x10c49) return true\n                        if (cp < 0x10c80) return false\n                        if (cp < 0x10cb3) return true\n                        if (cp < 0x10cc0) return false\n                        if (cp < 0x10cf3) return true\n                        return false\n                    }\n                    if (cp < 0x10d24) return true\n                    if (cp < 0x10f00) return false\n                    if (cp < 0x10f1d) return true\n                    if (cp === 0x10f27) return true\n                    if (cp < 0x10f30) return false\n                    if (cp < 0x10f46) return true\n                    if (cp < 0x11003) return false\n                    if (cp < 0x11038) return true\n                    return false\n                }\n                if (cp < 0x11176) {\n                    if (cp < 0x11083) return false\n                    if (cp < 0x110b0) return true\n                    if (cp < 0x110d0) return false\n                    if (cp < 0x110e9) return true\n                    if (cp < 0x11103) return false\n                    if (cp < 0x11127) return true\n                    if (cp === 0x11144) return true\n                    if (cp < 0x11150) return false\n                    if (cp < 0x11173) return true\n                    return false\n                }\n                if (cp === 0x11176) return true\n                if (cp < 0x11183) return false\n                if (cp < 0x111b3) return true\n                if (cp < 0x111c1) return false\n                if (cp < 0x111c5) return true\n                if (cp === 0x111da) return true\n                if (cp === 0x111dc) return true\n                if (cp < 0x11200) return false\n                if (cp < 0x11212) return true\n                return false\n            }\n            if (cp < 0x1132a) {\n                if (cp < 0x1129f) {\n                    if (cp < 0x11213) return false\n                    if (cp < 0x1122c) return true\n                    if (cp < 0x11280) return false\n                    if (cp < 0x11287) return true\n                    if (cp === 0x11288) return true\n                    if (cp < 0x1128a) return false\n                    if (cp < 0x1128e) return true\n                    if (cp < 0x1128f) return false\n                    if (cp < 0x1129e) return true\n                    return false\n                }\n                if (cp < 0x112a9) return true\n                if (cp < 0x112b0) return false\n                if (cp < 0x112df) return true\n                if (cp < 0x11305) return false\n                if (cp < 0x1130d) return true\n                if (cp < 0x1130f) return false\n                if (cp < 0x11311) return true\n                if (cp < 0x11313) return false\n                if (cp < 0x11329) return true\n                return false\n            }\n            if (cp < 0x1135d) {\n                if (cp < 0x1132a) return false\n                if (cp < 0x11331) return true\n                if (cp < 0x11332) return false\n                if (cp < 0x11334) return true\n                if (cp < 0x11335) return false\n                if (cp < 0x1133a) return true\n                if (cp === 0x1133d) return true\n                if (cp === 0x11350) return true\n                return false\n            }\n            if (cp < 0x11362) return true\n            if (cp < 0x11400) return false\n            if (cp < 0x11435) return true\n            if (cp < 0x11447) return false\n            if (cp < 0x1144b) return true\n            if (cp < 0x11480) return false\n            if (cp < 0x114b0) return true\n            if (cp < 0x114c4) return false\n            if (cp < 0x114c6) return true\n            if (cp === 0x114c7) return true\n            return false\n        }\n        if (cp < 0x11d00) {\n            if (cp < 0x11a0b) {\n                if (cp < 0x11700) {\n                    if (cp < 0x11580) return false\n                    if (cp < 0x115af) return true\n                    if (cp < 0x115d8) return false\n                    if (cp < 0x115dc) return true\n                    if (cp < 0x11600) return false\n                    if (cp < 0x11630) return true\n                    if (cp === 0x11644) return true\n                    if (cp < 0x11680) return false\n                    if (cp < 0x116ab) return true\n                    return false\n                }\n                if (cp < 0x1171b) return true\n                if (cp < 0x11800) return false\n                if (cp < 0x1182c) return true\n                if (cp < 0x118a0) return false\n                if (cp < 0x118e0) return true\n                if (cp === 0x118ff) return true\n                if (cp === 0x11a00) return true\n                return false\n            }\n            if (cp < 0x11a9d) {\n                if (cp < 0x11a0b) return false\n                if (cp < 0x11a33) return true\n                if (cp === 0x11a3a) return true\n                if (cp === 0x11a50) return true\n                if (cp < 0x11a5c) return false\n                if (cp < 0x11a84) return true\n                if (cp < 0x11a86) return false\n                if (cp < 0x11a8a) return true\n                return false\n            }\n            if (cp === 0x11a9d) return true\n            if (cp < 0x11ac0) return false\n            if (cp < 0x11af9) return true\n            if (cp < 0x11c00) return false\n            if (cp < 0x11c09) return true\n            if (cp < 0x11c0a) return false\n            if (cp < 0x11c2f) return true\n            if (cp === 0x11c40) return true\n            if (cp < 0x11c72) return false\n            if (cp < 0x11c90) return true\n            return false\n        }\n        if (cp < 0x12400) {\n            if (cp < 0x11d67) {\n                if (cp < 0x11d00) return false\n                if (cp < 0x11d07) return true\n                if (cp < 0x11d08) return false\n                if (cp < 0x11d0a) return true\n                if (cp < 0x11d0b) return false\n                if (cp < 0x11d31) return true\n                if (cp === 0x11d46) return true\n                if (cp < 0x11d60) return false\n                if (cp < 0x11d66) return true\n                return false\n            }\n            if (cp < 0x11d69) return true\n            if (cp < 0x11d6a) return false\n            if (cp < 0x11d8a) return true\n            if (cp === 0x11d98) return true\n            if (cp < 0x11ee0) return false\n            if (cp < 0x11ef3) return true\n            if (cp < 0x12000) return false\n            if (cp < 0x1239a) return true\n            return false\n        }\n        if (cp < 0x16a40) {\n            if (cp < 0x12400) return false\n            if (cp < 0x1246f) return true\n            if (cp < 0x12480) return false\n            if (cp < 0x12544) return true\n            if (cp < 0x13000) return false\n            if (cp < 0x1342f) return true\n            if (cp < 0x14400) return false\n            if (cp < 0x14647) return true\n            if (cp < 0x16800) return false\n            if (cp < 0x16a39) return true\n            return false\n        }\n        if (cp < 0x16a5f) return true\n        if (cp < 0x16ad0) return false\n        if (cp < 0x16aee) return true\n        if (cp < 0x16b00) return false\n        if (cp < 0x16b30) return true\n        if (cp < 0x16b40) return false\n        if (cp < 0x16b44) return true\n        if (cp < 0x16b63) return false\n        if (cp < 0x16b78) return true\n        if (cp < 0x16b7d) return false\n        if (cp < 0x16b90) return true\n        return false\n    }\n    if (cp < 0x1d7c4) {\n        if (cp < 0x1d4bd) {\n            if (cp < 0x1bc70) {\n                if (cp < 0x17000) {\n                    if (cp < 0x16e40) return false\n                    if (cp < 0x16e80) return true\n                    if (cp < 0x16f00) return false\n                    if (cp < 0x16f45) return true\n                    if (cp === 0x16f50) return true\n                    if (cp < 0x16f93) return false\n                    if (cp < 0x16fa0) return true\n                    if (cp < 0x16fe0) return false\n                    if (cp < 0x16fe2) return true\n                    return false\n                }\n                if (cp < 0x187f2) return true\n                if (cp < 0x18800) return false\n                if (cp < 0x18af3) return true\n                if (cp < 0x1b000) return false\n                if (cp < 0x1b11f) return true\n                if (cp < 0x1b170) return false\n                if (cp < 0x1b2fc) return true\n                if (cp < 0x1bc00) return false\n                if (cp < 0x1bc6b) return true\n                return false\n            }\n            if (cp < 0x1d49e) {\n                if (cp < 0x1bc70) return false\n                if (cp < 0x1bc7d) return true\n                if (cp < 0x1bc80) return false\n                if (cp < 0x1bc89) return true\n                if (cp < 0x1bc90) return false\n                if (cp < 0x1bc9a) return true\n                if (cp < 0x1d400) return false\n                if (cp < 0x1d455) return true\n                if (cp < 0x1d456) return false\n                if (cp < 0x1d49d) return true\n                return false\n            }\n            if (cp < 0x1d4a0) return true\n            if (cp === 0x1d4a2) return true\n            if (cp < 0x1d4a5) return false\n            if (cp < 0x1d4a7) return true\n            if (cp < 0x1d4a9) return false\n            if (cp < 0x1d4ad) return true\n            if (cp < 0x1d4ae) return false\n            if (cp < 0x1d4ba) return true\n            if (cp === 0x1d4bb) return true\n            return false\n        }\n        if (cp < 0x1d552) {\n            if (cp < 0x1d51e) {\n                if (cp < 0x1d4bd) return false\n                if (cp < 0x1d4c4) return true\n                if (cp < 0x1d4c5) return false\n                if (cp < 0x1d506) return true\n                if (cp < 0x1d507) return false\n                if (cp < 0x1d50b) return true\n                if (cp < 0x1d50d) return false\n                if (cp < 0x1d515) return true\n                if (cp < 0x1d516) return false\n                if (cp < 0x1d51d) return true\n                return false\n            }\n            if (cp < 0x1d53a) return true\n            if (cp < 0x1d53b) return false\n            if (cp < 0x1d53f) return true\n            if (cp < 0x1d540) return false\n            if (cp < 0x1d545) return true\n            if (cp === 0x1d546) return true\n            if (cp < 0x1d54a) return false\n            if (cp < 0x1d551) return true\n            return false\n        }\n        if (cp < 0x1d716) {\n            if (cp < 0x1d552) return false\n            if (cp < 0x1d6a6) return true\n            if (cp < 0x1d6a8) return false\n            if (cp < 0x1d6c1) return true\n            if (cp < 0x1d6c2) return false\n            if (cp < 0x1d6db) return true\n            if (cp < 0x1d6dc) return false\n            if (cp < 0x1d6fb) return true\n            if (cp < 0x1d6fc) return false\n            if (cp < 0x1d715) return true\n            return false\n        }\n        if (cp < 0x1d735) return true\n        if (cp < 0x1d736) return false\n        if (cp < 0x1d74f) return true\n        if (cp < 0x1d750) return false\n        if (cp < 0x1d76f) return true\n        if (cp < 0x1d770) return false\n        if (cp < 0x1d789) return true\n        if (cp < 0x1d78a) return false\n        if (cp < 0x1d7a9) return true\n        if (cp < 0x1d7aa) return false\n        if (cp < 0x1d7c3) return true\n        return false\n    }\n    if (cp < 0x1ee5b) {\n        if (cp < 0x1ee39) {\n            if (cp < 0x1ee21) {\n                if (cp < 0x1d7c4) return false\n                if (cp < 0x1d7cc) return true\n                if (cp < 0x1e800) return false\n                if (cp < 0x1e8c5) return true\n                if (cp < 0x1e900) return false\n                if (cp < 0x1e944) return true\n                if (cp < 0x1ee00) return false\n                if (cp < 0x1ee04) return true\n                if (cp < 0x1ee05) return false\n                if (cp < 0x1ee20) return true\n                return false\n            }\n            if (cp < 0x1ee23) return true\n            if (cp === 0x1ee24) return true\n            if (cp === 0x1ee27) return true\n            if (cp < 0x1ee29) return false\n            if (cp < 0x1ee33) return true\n            if (cp < 0x1ee34) return false\n            if (cp < 0x1ee38) return true\n            return false\n        }\n        if (cp < 0x1ee4b) {\n            if (cp === 0x1ee39) return true\n            if (cp === 0x1ee3b) return true\n            if (cp === 0x1ee42) return true\n            if (cp === 0x1ee47) return true\n            if (cp === 0x1ee49) return true\n            return false\n        }\n        if (cp === 0x1ee4b) return true\n        if (cp < 0x1ee4d) return false\n        if (cp < 0x1ee50) return true\n        if (cp < 0x1ee51) return false\n        if (cp < 0x1ee53) return true\n        if (cp === 0x1ee54) return true\n        if (cp === 0x1ee57) return true\n        if (cp === 0x1ee59) return true\n        return false\n    }\n    if (cp < 0x1ee80) {\n        if (cp < 0x1ee67) {\n            if (cp === 0x1ee5b) return true\n            if (cp === 0x1ee5d) return true\n            if (cp === 0x1ee5f) return true\n            if (cp < 0x1ee61) return false\n            if (cp < 0x1ee63) return true\n            if (cp === 0x1ee64) return true\n            return false\n        }\n        if (cp < 0x1ee6b) return true\n        if (cp < 0x1ee6c) return false\n        if (cp < 0x1ee73) return true\n        if (cp < 0x1ee74) return false\n        if (cp < 0x1ee78) return true\n        if (cp < 0x1ee79) return false\n        if (cp < 0x1ee7d) return true\n        if (cp === 0x1ee7e) return true\n        return false\n    }\n    if (cp < 0x20000) {\n        if (cp < 0x1ee80) return false\n        if (cp < 0x1ee8a) return true\n        if (cp < 0x1ee8b) return false\n        if (cp < 0x1ee9c) return true\n        if (cp < 0x1eea1) return false\n        if (cp < 0x1eea4) return true\n        if (cp < 0x1eea5) return false\n        if (cp < 0x1eeaa) return true\n        if (cp < 0x1eeab) return false\n        if (cp < 0x1eebc) return true\n        return false\n    }\n    if (cp < 0x2a6d7) return true\n    if (cp < 0x2a700) return false\n    if (cp < 0x2b735) return true\n    if (cp < 0x2b740) return false\n    if (cp < 0x2b81e) return true\n    if (cp < 0x2b820) return false\n    if (cp < 0x2cea2) return true\n    if (cp < 0x2ceb0) return false\n    if (cp < 0x2ebe1) return true\n    if (cp < 0x2f800) return false\n    if (cp < 0x2fa1e) return true\n    return false\n}\n\nfunction isLargeIdContinue(cp: number): boolean {\n    if (cp < 0x1cd0) {\n        if (cp < 0xd82) {\n            if (cp < 0xa83) {\n                if (cp < 0x93b) {\n                    if (cp < 0x6ea) {\n                        if (cp < 0x5c7) {\n                            if (cp === 0xb7) return true\n                            if (cp < 0x300) return false\n                            if (cp < 0x370) return true\n                            if (cp === 0x387) return true\n                            if (cp < 0x483) return false\n                            if (cp < 0x488) return true\n                            if (cp < 0x591) return false\n                            if (cp < 0x5be) return true\n                            if (cp === 0x5bf) return true\n                            if (cp < 0x5c1) return false\n                            if (cp < 0x5c3) return true\n                            if (cp < 0x5c4) return false\n                            if (cp < 0x5c6) return true\n                            return false\n                        }\n                        if (cp === 0x5c7) return true\n                        if (cp < 0x610) return false\n                        if (cp < 0x61b) return true\n                        if (cp < 0x64b) return false\n                        if (cp < 0x660) return true\n                        if (cp < 0x660) return false\n                        if (cp < 0x66a) return true\n                        if (cp === 0x670) return true\n                        if (cp < 0x6d6) return false\n                        if (cp < 0x6dd) return true\n                        if (cp < 0x6df) return false\n                        if (cp < 0x6e5) return true\n                        if (cp < 0x6e7) return false\n                        if (cp < 0x6e9) return true\n                        return false\n                    }\n                    if (cp < 0x816) {\n                        if (cp < 0x6ea) return false\n                        if (cp < 0x6ee) return true\n                        if (cp < 0x6f0) return false\n                        if (cp < 0x6fa) return true\n                        if (cp === 0x711) return true\n                        if (cp < 0x730) return false\n                        if (cp < 0x74b) return true\n                        if (cp < 0x7a6) return false\n                        if (cp < 0x7b1) return true\n                        if (cp < 0x7c0) return false\n                        if (cp < 0x7ca) return true\n                        if (cp < 0x7eb) return false\n                        if (cp < 0x7f4) return true\n                        if (cp === 0x7fd) return true\n                        return false\n                    }\n                    if (cp < 0x81a) return true\n                    if (cp < 0x81b) return false\n                    if (cp < 0x824) return true\n                    if (cp < 0x825) return false\n                    if (cp < 0x828) return true\n                    if (cp < 0x829) return false\n                    if (cp < 0x82e) return true\n                    if (cp < 0x859) return false\n                    if (cp < 0x85c) return true\n                    if (cp < 0x8d3) return false\n                    if (cp < 0x8e2) return true\n                    if (cp < 0x8e3) return false\n                    if (cp < 0x903) return true\n                    if (cp === 0x903) return true\n                    if (cp === 0x93a) return true\n                    return false\n                }\n                if (cp < 0x9cd) {\n                    if (cp < 0x962) {\n                        if (cp === 0x93b) return true\n                        if (cp === 0x93c) return true\n                        if (cp < 0x93e) return false\n                        if (cp < 0x941) return true\n                        if (cp < 0x941) return false\n                        if (cp < 0x949) return true\n                        if (cp < 0x949) return false\n                        if (cp < 0x94d) return true\n                        if (cp === 0x94d) return true\n                        if (cp < 0x94e) return false\n                        if (cp < 0x950) return true\n                        if (cp < 0x951) return false\n                        if (cp < 0x958) return true\n                        return false\n                    }\n                    if (cp < 0x964) return true\n                    if (cp < 0x966) return false\n                    if (cp < 0x970) return true\n                    if (cp === 0x981) return true\n                    if (cp < 0x982) return false\n                    if (cp < 0x984) return true\n                    if (cp === 0x9bc) return true\n                    if (cp < 0x9be) return false\n                    if (cp < 0x9c1) return true\n                    if (cp < 0x9c1) return false\n                    if (cp < 0x9c5) return true\n                    if (cp < 0x9c7) return false\n                    if (cp < 0x9c9) return true\n                    if (cp < 0x9cb) return false\n                    if (cp < 0x9cd) return true\n                    return false\n                }\n                if (cp < 0xa3e) {\n                    if (cp === 0x9cd) return true\n                    if (cp === 0x9d7) return true\n                    if (cp < 0x9e2) return false\n                    if (cp < 0x9e4) return true\n                    if (cp < 0x9e6) return false\n                    if (cp < 0x9f0) return true\n                    if (cp === 0x9fe) return true\n                    if (cp < 0xa01) return false\n                    if (cp < 0xa03) return true\n                    if (cp === 0xa03) return true\n                    if (cp === 0xa3c) return true\n                    return false\n                }\n                if (cp < 0xa41) return true\n                if (cp < 0xa41) return false\n                if (cp < 0xa43) return true\n                if (cp < 0xa47) return false\n                if (cp < 0xa49) return true\n                if (cp < 0xa4b) return false\n                if (cp < 0xa4e) return true\n                if (cp === 0xa51) return true\n                if (cp < 0xa66) return false\n                if (cp < 0xa70) return true\n                if (cp < 0xa70) return false\n                if (cp < 0xa72) return true\n                if (cp === 0xa75) return true\n                if (cp < 0xa81) return false\n                if (cp < 0xa83) return true\n                return false\n            }\n            if (cp < 0xc00) {\n                if (cp < 0xb41) {\n                    if (cp < 0xae2) {\n                        if (cp === 0xa83) return true\n                        if (cp === 0xabc) return true\n                        if (cp < 0xabe) return false\n                        if (cp < 0xac1) return true\n                        if (cp < 0xac1) return false\n                        if (cp < 0xac6) return true\n                        if (cp < 0xac7) return false\n                        if (cp < 0xac9) return true\n                        if (cp === 0xac9) return true\n                        if (cp < 0xacb) return false\n                        if (cp < 0xacd) return true\n                        if (cp === 0xacd) return true\n                        return false\n                    }\n                    if (cp < 0xae4) return true\n                    if (cp < 0xae6) return false\n                    if (cp < 0xaf0) return true\n                    if (cp < 0xafa) return false\n                    if (cp < 0xb00) return true\n                    if (cp === 0xb01) return true\n                    if (cp < 0xb02) return false\n                    if (cp < 0xb04) return true\n                    if (cp === 0xb3c) return true\n                    if (cp === 0xb3e) return true\n                    if (cp === 0xb3f) return true\n                    if (cp === 0xb40) return true\n                    return false\n                }\n                if (cp < 0xb82) {\n                    if (cp < 0xb41) return false\n                    if (cp < 0xb45) return true\n                    if (cp < 0xb47) return false\n                    if (cp < 0xb49) return true\n                    if (cp < 0xb4b) return false\n                    if (cp < 0xb4d) return true\n                    if (cp === 0xb4d) return true\n                    if (cp === 0xb56) return true\n                    if (cp === 0xb57) return true\n                    if (cp < 0xb62) return false\n                    if (cp < 0xb64) return true\n                    if (cp < 0xb66) return false\n                    if (cp < 0xb70) return true\n                    return false\n                }\n                if (cp === 0xb82) return true\n                if (cp < 0xbbe) return false\n                if (cp < 0xbc0) return true\n                if (cp === 0xbc0) return true\n                if (cp < 0xbc1) return false\n                if (cp < 0xbc3) return true\n                if (cp < 0xbc6) return false\n                if (cp < 0xbc9) return true\n                if (cp < 0xbca) return false\n                if (cp < 0xbcd) return true\n                if (cp === 0xbcd) return true\n                if (cp === 0xbd7) return true\n                if (cp < 0xbe6) return false\n                if (cp < 0xbf0) return true\n                return false\n            }\n            if (cp < 0xcc7) {\n                if (cp < 0xc62) {\n                    if (cp === 0xc00) return true\n                    if (cp < 0xc01) return false\n                    if (cp < 0xc04) return true\n                    if (cp === 0xc04) return true\n                    if (cp < 0xc3e) return false\n                    if (cp < 0xc41) return true\n                    if (cp < 0xc41) return false\n                    if (cp < 0xc45) return true\n                    if (cp < 0xc46) return false\n                    if (cp < 0xc49) return true\n                    if (cp < 0xc4a) return false\n                    if (cp < 0xc4e) return true\n                    if (cp < 0xc55) return false\n                    if (cp < 0xc57) return true\n                    return false\n                }\n                if (cp < 0xc64) return true\n                if (cp < 0xc66) return false\n                if (cp < 0xc70) return true\n                if (cp === 0xc81) return true\n                if (cp < 0xc82) return false\n                if (cp < 0xc84) return true\n                if (cp === 0xcbc) return true\n                if (cp === 0xcbe) return true\n                if (cp === 0xcbf) return true\n                if (cp < 0xcc0) return false\n                if (cp < 0xcc5) return true\n                if (cp === 0xcc6) return true\n                return false\n            }\n            if (cp < 0xd3b) {\n                if (cp < 0xcc7) return false\n                if (cp < 0xcc9) return true\n                if (cp < 0xcca) return false\n                if (cp < 0xccc) return true\n                if (cp < 0xccc) return false\n                if (cp < 0xcce) return true\n                if (cp < 0xcd5) return false\n                if (cp < 0xcd7) return true\n                if (cp < 0xce2) return false\n                if (cp < 0xce4) return true\n                if (cp < 0xce6) return false\n                if (cp < 0xcf0) return true\n                if (cp < 0xd00) return false\n                if (cp < 0xd02) return true\n                if (cp < 0xd02) return false\n                if (cp < 0xd04) return true\n                return false\n            }\n            if (cp < 0xd3d) return true\n            if (cp < 0xd3e) return false\n            if (cp < 0xd41) return true\n            if (cp < 0xd41) return false\n            if (cp < 0xd45) return true\n            if (cp < 0xd46) return false\n            if (cp < 0xd49) return true\n            if (cp < 0xd4a) return false\n            if (cp < 0xd4d) return true\n            if (cp === 0xd4d) return true\n            if (cp === 0xd57) return true\n            if (cp < 0xd62) return false\n            if (cp < 0xd64) return true\n            if (cp < 0xd66) return false\n            if (cp < 0xd70) return true\n            return false\n        }\n        if (cp < 0x17e0) {\n            if (cp < 0x1038) {\n                if (cp < 0xf18) {\n                    if (cp < 0xe31) {\n                        if (cp < 0xd82) return false\n                        if (cp < 0xd84) return true\n                        if (cp === 0xdca) return true\n                        if (cp < 0xdcf) return false\n                        if (cp < 0xdd2) return true\n                        if (cp < 0xdd2) return false\n                        if (cp < 0xdd5) return true\n                        if (cp === 0xdd6) return true\n                        if (cp < 0xdd8) return false\n                        if (cp < 0xde0) return true\n                        if (cp < 0xde6) return false\n                        if (cp < 0xdf0) return true\n                        if (cp < 0xdf2) return false\n                        if (cp < 0xdf4) return true\n                        return false\n                    }\n                    if (cp === 0xe31) return true\n                    if (cp < 0xe34) return false\n                    if (cp < 0xe3b) return true\n                    if (cp < 0xe47) return false\n                    if (cp < 0xe4f) return true\n                    if (cp < 0xe50) return false\n                    if (cp < 0xe5a) return true\n                    if (cp === 0xeb1) return true\n                    if (cp < 0xeb4) return false\n                    if (cp < 0xeba) return true\n                    if (cp < 0xebb) return false\n                    if (cp < 0xebd) return true\n                    if (cp < 0xec8) return false\n                    if (cp < 0xece) return true\n                    if (cp < 0xed0) return false\n                    if (cp < 0xeda) return true\n                    return false\n                }\n                if (cp < 0xf80) {\n                    if (cp < 0xf18) return false\n                    if (cp < 0xf1a) return true\n                    if (cp < 0xf20) return false\n                    if (cp < 0xf2a) return true\n                    if (cp === 0xf35) return true\n                    if (cp === 0xf37) return true\n                    if (cp === 0xf39) return true\n                    if (cp < 0xf3e) return false\n                    if (cp < 0xf40) return true\n                    if (cp < 0xf71) return false\n                    if (cp < 0xf7f) return true\n                    if (cp === 0xf7f) return true\n                    return false\n                }\n                if (cp < 0xf85) return true\n                if (cp < 0xf86) return false\n                if (cp < 0xf88) return true\n                if (cp < 0xf8d) return false\n                if (cp < 0xf98) return true\n                if (cp < 0xf99) return false\n                if (cp < 0xfbd) return true\n                if (cp === 0xfc6) return true\n                if (cp < 0x102b) return false\n                if (cp < 0x102d) return true\n                if (cp < 0x102d) return false\n                if (cp < 0x1031) return true\n                if (cp === 0x1031) return true\n                if (cp < 0x1032) return false\n                if (cp < 0x1038) return true\n                return false\n            }\n            if (cp < 0x1090) {\n                if (cp < 0x1062) {\n                    if (cp === 0x1038) return true\n                    if (cp < 0x1039) return false\n                    if (cp < 0x103b) return true\n                    if (cp < 0x103b) return false\n                    if (cp < 0x103d) return true\n                    if (cp < 0x103d) return false\n                    if (cp < 0x103f) return true\n                    if (cp < 0x1040) return false\n                    if (cp < 0x104a) return true\n                    if (cp < 0x1056) return false\n                    if (cp < 0x1058) return true\n                    if (cp < 0x1058) return false\n                    if (cp < 0x105a) return true\n                    if (cp < 0x105e) return false\n                    if (cp < 0x1061) return true\n                    return false\n                }\n                if (cp < 0x1065) return true\n                if (cp < 0x1067) return false\n                if (cp < 0x106e) return true\n                if (cp < 0x1071) return false\n                if (cp < 0x1075) return true\n                if (cp === 0x1082) return true\n                if (cp < 0x1083) return false\n                if (cp < 0x1085) return true\n                if (cp < 0x1085) return false\n                if (cp < 0x1087) return true\n                if (cp < 0x1087) return false\n                if (cp < 0x108d) return true\n                if (cp === 0x108d) return true\n                if (cp === 0x108f) return true\n                return false\n            }\n            if (cp < 0x1772) {\n                if (cp < 0x1090) return false\n                if (cp < 0x109a) return true\n                if (cp < 0x109a) return false\n                if (cp < 0x109d) return true\n                if (cp === 0x109d) return true\n                if (cp < 0x135d) return false\n                if (cp < 0x1360) return true\n                if (cp < 0x1369) return false\n                if (cp < 0x1372) return true\n                if (cp < 0x1712) return false\n                if (cp < 0x1715) return true\n                if (cp < 0x1732) return false\n                if (cp < 0x1735) return true\n                if (cp < 0x1752) return false\n                if (cp < 0x1754) return true\n                return false\n            }\n            if (cp < 0x1774) return true\n            if (cp < 0x17b4) return false\n            if (cp < 0x17b6) return true\n            if (cp === 0x17b6) return true\n            if (cp < 0x17b7) return false\n            if (cp < 0x17be) return true\n            if (cp < 0x17be) return false\n            if (cp < 0x17c6) return true\n            if (cp === 0x17c6) return true\n            if (cp < 0x17c7) return false\n            if (cp < 0x17c9) return true\n            if (cp < 0x17c9) return false\n            if (cp < 0x17d4) return true\n            if (cp === 0x17dd) return true\n            return false\n        }\n        if (cp < 0x1b04) {\n            if (cp < 0x1a1b) {\n                if (cp < 0x1930) {\n                    if (cp < 0x17e0) return false\n                    if (cp < 0x17ea) return true\n                    if (cp < 0x180b) return false\n                    if (cp < 0x180e) return true\n                    if (cp < 0x1810) return false\n                    if (cp < 0x181a) return true\n                    if (cp === 0x18a9) return true\n                    if (cp < 0x1920) return false\n                    if (cp < 0x1923) return true\n                    if (cp < 0x1923) return false\n                    if (cp < 0x1927) return true\n                    if (cp < 0x1927) return false\n                    if (cp < 0x1929) return true\n                    if (cp < 0x1929) return false\n                    if (cp < 0x192c) return true\n                    return false\n                }\n                if (cp < 0x1932) return true\n                if (cp === 0x1932) return true\n                if (cp < 0x1933) return false\n                if (cp < 0x1939) return true\n                if (cp < 0x1939) return false\n                if (cp < 0x193c) return true\n                if (cp < 0x1946) return false\n                if (cp < 0x1950) return true\n                if (cp < 0x19d0) return false\n                if (cp < 0x19da) return true\n                if (cp === 0x19da) return true\n                if (cp < 0x1a17) return false\n                if (cp < 0x1a19) return true\n                if (cp < 0x1a19) return false\n                if (cp < 0x1a1b) return true\n                return false\n            }\n            if (cp < 0x1a63) {\n                if (cp === 0x1a1b) return true\n                if (cp === 0x1a55) return true\n                if (cp === 0x1a56) return true\n                if (cp === 0x1a57) return true\n                if (cp < 0x1a58) return false\n                if (cp < 0x1a5f) return true\n                if (cp === 0x1a60) return true\n                if (cp === 0x1a61) return true\n                if (cp === 0x1a62) return true\n                return false\n            }\n            if (cp < 0x1a65) return true\n            if (cp < 0x1a65) return false\n            if (cp < 0x1a6d) return true\n            if (cp < 0x1a6d) return false\n            if (cp < 0x1a73) return true\n            if (cp < 0x1a73) return false\n            if (cp < 0x1a7d) return true\n            if (cp === 0x1a7f) return true\n            if (cp < 0x1a80) return false\n            if (cp < 0x1a8a) return true\n            if (cp < 0x1a90) return false\n            if (cp < 0x1a9a) return true\n            if (cp < 0x1ab0) return false\n            if (cp < 0x1abe) return true\n            if (cp < 0x1b00) return false\n            if (cp < 0x1b04) return true\n            return false\n        }\n        if (cp < 0x1baa) {\n            if (cp < 0x1b43) {\n                if (cp === 0x1b04) return true\n                if (cp === 0x1b34) return true\n                if (cp === 0x1b35) return true\n                if (cp < 0x1b36) return false\n                if (cp < 0x1b3b) return true\n                if (cp === 0x1b3b) return true\n                if (cp === 0x1b3c) return true\n                if (cp < 0x1b3d) return false\n                if (cp < 0x1b42) return true\n                if (cp === 0x1b42) return true\n                return false\n            }\n            if (cp < 0x1b45) return true\n            if (cp < 0x1b50) return false\n            if (cp < 0x1b5a) return true\n            if (cp < 0x1b6b) return false\n            if (cp < 0x1b74) return true\n            if (cp < 0x1b80) return false\n            if (cp < 0x1b82) return true\n            if (cp === 0x1b82) return true\n            if (cp === 0x1ba1) return true\n            if (cp < 0x1ba2) return false\n            if (cp < 0x1ba6) return true\n            if (cp < 0x1ba6) return false\n            if (cp < 0x1ba8) return true\n            if (cp < 0x1ba8) return false\n            if (cp < 0x1baa) return true\n            return false\n        }\n        if (cp < 0x1bee) {\n            if (cp === 0x1baa) return true\n            if (cp < 0x1bab) return false\n            if (cp < 0x1bae) return true\n            if (cp < 0x1bb0) return false\n            if (cp < 0x1bba) return true\n            if (cp === 0x1be6) return true\n            if (cp === 0x1be7) return true\n            if (cp < 0x1be8) return false\n            if (cp < 0x1bea) return true\n            if (cp < 0x1bea) return false\n            if (cp < 0x1bed) return true\n            if (cp === 0x1bed) return true\n            return false\n        }\n        if (cp === 0x1bee) return true\n        if (cp < 0x1bef) return false\n        if (cp < 0x1bf2) return true\n        if (cp < 0x1bf2) return false\n        if (cp < 0x1bf4) return true\n        if (cp < 0x1c24) return false\n        if (cp < 0x1c2c) return true\n        if (cp < 0x1c2c) return false\n        if (cp < 0x1c34) return true\n        if (cp < 0x1c34) return false\n        if (cp < 0x1c36) return true\n        if (cp < 0x1c36) return false\n        if (cp < 0x1c38) return true\n        if (cp < 0x1c40) return false\n        if (cp < 0x1c4a) return true\n        if (cp < 0x1c50) return false\n        if (cp < 0x1c5a) return true\n        return false\n    }\n    if (cp < 0x1123e) {\n        if (cp < 0xaab7) {\n            if (cp < 0xa8b4) {\n                if (cp < 0x2d7f) {\n                    if (cp < 0x1cf8) {\n                        if (cp < 0x1cd0) return false\n                        if (cp < 0x1cd3) return true\n                        if (cp < 0x1cd4) return false\n                        if (cp < 0x1ce1) return true\n                        if (cp === 0x1ce1) return true\n                        if (cp < 0x1ce2) return false\n                        if (cp < 0x1ce9) return true\n                        if (cp === 0x1ced) return true\n                        if (cp < 0x1cf2) return false\n                        if (cp < 0x1cf4) return true\n                        if (cp === 0x1cf4) return true\n                        if (cp === 0x1cf7) return true\n                        return false\n                    }\n                    if (cp < 0x1cfa) return true\n                    if (cp < 0x1dc0) return false\n                    if (cp < 0x1dfa) return true\n                    if (cp < 0x1dfb) return false\n                    if (cp < 0x1e00) return true\n                    if (cp < 0x203f) return false\n                    if (cp < 0x2041) return true\n                    if (cp === 0x2054) return true\n                    if (cp < 0x20d0) return false\n                    if (cp < 0x20dd) return true\n                    if (cp === 0x20e1) return true\n                    if (cp < 0x20e5) return false\n                    if (cp < 0x20f1) return true\n                    if (cp < 0x2cef) return false\n                    if (cp < 0x2cf2) return true\n                    return false\n                }\n                if (cp < 0xa69e) {\n                    if (cp === 0x2d7f) return true\n                    if (cp < 0x2de0) return false\n                    if (cp < 0x2e00) return true\n                    if (cp < 0x302a) return false\n                    if (cp < 0x302e) return true\n                    if (cp < 0x302e) return false\n                    if (cp < 0x3030) return true\n                    if (cp < 0x3099) return false\n                    if (cp < 0x309b) return true\n                    if (cp < 0xa620) return false\n                    if (cp < 0xa62a) return true\n                    if (cp === 0xa66f) return true\n                    if (cp < 0xa674) return false\n                    if (cp < 0xa67e) return true\n                    return false\n                }\n                if (cp < 0xa6a0) return true\n                if (cp < 0xa6f0) return false\n                if (cp < 0xa6f2) return true\n                if (cp === 0xa802) return true\n                if (cp === 0xa806) return true\n                if (cp === 0xa80b) return true\n                if (cp < 0xa823) return false\n                if (cp < 0xa825) return true\n                if (cp < 0xa825) return false\n                if (cp < 0xa827) return true\n                if (cp === 0xa827) return true\n                if (cp < 0xa880) return false\n                if (cp < 0xa882) return true\n                return false\n            }\n            if (cp < 0xa9d0) {\n                if (cp < 0xa952) {\n                    if (cp < 0xa8b4) return false\n                    if (cp < 0xa8c4) return true\n                    if (cp < 0xa8c4) return false\n                    if (cp < 0xa8c6) return true\n                    if (cp < 0xa8d0) return false\n                    if (cp < 0xa8da) return true\n                    if (cp < 0xa8e0) return false\n                    if (cp < 0xa8f2) return true\n                    if (cp === 0xa8ff) return true\n                    if (cp < 0xa900) return false\n                    if (cp < 0xa90a) return true\n                    if (cp < 0xa926) return false\n                    if (cp < 0xa92e) return true\n                    if (cp < 0xa947) return false\n                    if (cp < 0xa952) return true\n                    return false\n                }\n                if (cp < 0xa954) return true\n                if (cp < 0xa980) return false\n                if (cp < 0xa983) return true\n                if (cp === 0xa983) return true\n                if (cp === 0xa9b3) return true\n                if (cp < 0xa9b4) return false\n                if (cp < 0xa9b6) return true\n                if (cp < 0xa9b6) return false\n                if (cp < 0xa9ba) return true\n                if (cp < 0xa9ba) return false\n                if (cp < 0xa9bc) return true\n                if (cp === 0xa9bc) return true\n                if (cp < 0xa9bd) return false\n                if (cp < 0xa9c1) return true\n                return false\n            }\n            if (cp < 0xaa43) {\n                if (cp < 0xa9d0) return false\n                if (cp < 0xa9da) return true\n                if (cp === 0xa9e5) return true\n                if (cp < 0xa9f0) return false\n                if (cp < 0xa9fa) return true\n                if (cp < 0xaa29) return false\n                if (cp < 0xaa2f) return true\n                if (cp < 0xaa2f) return false\n                if (cp < 0xaa31) return true\n                if (cp < 0xaa31) return false\n                if (cp < 0xaa33) return true\n                if (cp < 0xaa33) return false\n                if (cp < 0xaa35) return true\n                if (cp < 0xaa35) return false\n                if (cp < 0xaa37) return true\n                return false\n            }\n            if (cp === 0xaa43) return true\n            if (cp === 0xaa4c) return true\n            if (cp === 0xaa4d) return true\n            if (cp < 0xaa50) return false\n            if (cp < 0xaa5a) return true\n            if (cp === 0xaa7b) return true\n            if (cp === 0xaa7c) return true\n            if (cp === 0xaa7d) return true\n            if (cp === 0xaab0) return true\n            if (cp < 0xaab2) return false\n            if (cp < 0xaab5) return true\n            return false\n        }\n        if (cp < 0x10d30) {\n            if (cp < 0xfe00) {\n                if (cp < 0xabe3) {\n                    if (cp < 0xaab7) return false\n                    if (cp < 0xaab9) return true\n                    if (cp < 0xaabe) return false\n                    if (cp < 0xaac0) return true\n                    if (cp === 0xaac1) return true\n                    if (cp === 0xaaeb) return true\n                    if (cp < 0xaaec) return false\n                    if (cp < 0xaaee) return true\n                    if (cp < 0xaaee) return false\n                    if (cp < 0xaaf0) return true\n                    if (cp === 0xaaf5) return true\n                    if (cp === 0xaaf6) return true\n                    return false\n                }\n                if (cp < 0xabe5) return true\n                if (cp === 0xabe5) return true\n                if (cp < 0xabe6) return false\n                if (cp < 0xabe8) return true\n                if (cp === 0xabe8) return true\n                if (cp < 0xabe9) return false\n                if (cp < 0xabeb) return true\n                if (cp === 0xabec) return true\n                if (cp === 0xabed) return true\n                if (cp < 0xabf0) return false\n                if (cp < 0xabfa) return true\n                if (cp === 0xfb1e) return true\n                return false\n            }\n            if (cp < 0x10376) {\n                if (cp < 0xfe00) return false\n                if (cp < 0xfe10) return true\n                if (cp < 0xfe20) return false\n                if (cp < 0xfe30) return true\n                if (cp < 0xfe33) return false\n                if (cp < 0xfe35) return true\n                if (cp < 0xfe4d) return false\n                if (cp < 0xfe50) return true\n                if (cp < 0xff10) return false\n                if (cp < 0xff1a) return true\n                if (cp === 0xff3f) return true\n                if (cp === 0x101fd) return true\n                if (cp === 0x102e0) return true\n                return false\n            }\n            if (cp < 0x1037b) return true\n            if (cp < 0x104a0) return false\n            if (cp < 0x104aa) return true\n            if (cp < 0x10a01) return false\n            if (cp < 0x10a04) return true\n            if (cp < 0x10a05) return false\n            if (cp < 0x10a07) return true\n            if (cp < 0x10a0c) return false\n            if (cp < 0x10a10) return true\n            if (cp < 0x10a38) return false\n            if (cp < 0x10a3b) return true\n            if (cp === 0x10a3f) return true\n            if (cp < 0x10ae5) return false\n            if (cp < 0x10ae7) return true\n            if (cp < 0x10d24) return false\n            if (cp < 0x10d28) return true\n            return false\n        }\n        if (cp < 0x1112d) {\n            if (cp < 0x11082) {\n                if (cp < 0x10d30) return false\n                if (cp < 0x10d3a) return true\n                if (cp < 0x10f46) return false\n                if (cp < 0x10f51) return true\n                if (cp === 0x11000) return true\n                if (cp === 0x11001) return true\n                if (cp === 0x11002) return true\n                if (cp < 0x11038) return false\n                if (cp < 0x11047) return true\n                if (cp < 0x11066) return false\n                if (cp < 0x11070) return true\n                if (cp < 0x1107f) return false\n                if (cp < 0x11082) return true\n                return false\n            }\n            if (cp === 0x11082) return true\n            if (cp < 0x110b0) return false\n            if (cp < 0x110b3) return true\n            if (cp < 0x110b3) return false\n            if (cp < 0x110b7) return true\n            if (cp < 0x110b7) return false\n            if (cp < 0x110b9) return true\n            if (cp < 0x110b9) return false\n            if (cp < 0x110bb) return true\n            if (cp < 0x110f0) return false\n            if (cp < 0x110fa) return true\n            if (cp < 0x11100) return false\n            if (cp < 0x11103) return true\n            if (cp < 0x11127) return false\n            if (cp < 0x1112c) return true\n            if (cp === 0x1112c) return true\n            return false\n        }\n        if (cp < 0x111bf) {\n            if (cp < 0x1112d) return false\n            if (cp < 0x11135) return true\n            if (cp < 0x11136) return false\n            if (cp < 0x11140) return true\n            if (cp < 0x11145) return false\n            if (cp < 0x11147) return true\n            if (cp === 0x11173) return true\n            if (cp < 0x11180) return false\n            if (cp < 0x11182) return true\n            if (cp === 0x11182) return true\n            if (cp < 0x111b3) return false\n            if (cp < 0x111b6) return true\n            if (cp < 0x111b6) return false\n            if (cp < 0x111bf) return true\n            return false\n        }\n        if (cp < 0x111c1) return true\n        if (cp < 0x111c9) return false\n        if (cp < 0x111cd) return true\n        if (cp < 0x111d0) return false\n        if (cp < 0x111da) return true\n        if (cp < 0x1122c) return false\n        if (cp < 0x1122f) return true\n        if (cp < 0x1122f) return false\n        if (cp < 0x11232) return true\n        if (cp < 0x11232) return false\n        if (cp < 0x11234) return true\n        if (cp === 0x11234) return true\n        if (cp === 0x11235) return true\n        if (cp < 0x11236) return false\n        if (cp < 0x11238) return true\n        return false\n    }\n    if (cp < 0x11a33) {\n        if (cp < 0x115af) {\n            if (cp < 0x11435) {\n                if (cp < 0x1133e) {\n                    if (cp === 0x1123e) return true\n                    if (cp === 0x112df) return true\n                    if (cp < 0x112e0) return false\n                    if (cp < 0x112e3) return true\n                    if (cp < 0x112e3) return false\n                    if (cp < 0x112eb) return true\n                    if (cp < 0x112f0) return false\n                    if (cp < 0x112fa) return true\n                    if (cp < 0x11300) return false\n                    if (cp < 0x11302) return true\n                    if (cp < 0x11302) return false\n                    if (cp < 0x11304) return true\n                    if (cp < 0x1133b) return false\n                    if (cp < 0x1133d) return true\n                    return false\n                }\n                if (cp < 0x11340) return true\n                if (cp === 0x11340) return true\n                if (cp < 0x11341) return false\n                if (cp < 0x11345) return true\n                if (cp < 0x11347) return false\n                if (cp < 0x11349) return true\n                if (cp < 0x1134b) return false\n                if (cp < 0x1134e) return true\n                if (cp === 0x11357) return true\n                if (cp < 0x11362) return false\n                if (cp < 0x11364) return true\n                if (cp < 0x11366) return false\n                if (cp < 0x1136d) return true\n                if (cp < 0x11370) return false\n                if (cp < 0x11375) return true\n                return false\n            }\n            if (cp < 0x114b0) {\n                if (cp < 0x11435) return false\n                if (cp < 0x11438) return true\n                if (cp < 0x11438) return false\n                if (cp < 0x11440) return true\n                if (cp < 0x11440) return false\n                if (cp < 0x11442) return true\n                if (cp < 0x11442) return false\n                if (cp < 0x11445) return true\n                if (cp === 0x11445) return true\n                if (cp === 0x11446) return true\n                if (cp < 0x11450) return false\n                if (cp < 0x1145a) return true\n                if (cp === 0x1145e) return true\n                return false\n            }\n            if (cp < 0x114b3) return true\n            if (cp < 0x114b3) return false\n            if (cp < 0x114b9) return true\n            if (cp === 0x114b9) return true\n            if (cp === 0x114ba) return true\n            if (cp < 0x114bb) return false\n            if (cp < 0x114bf) return true\n            if (cp < 0x114bf) return false\n            if (cp < 0x114c1) return true\n            if (cp === 0x114c1) return true\n            if (cp < 0x114c2) return false\n            if (cp < 0x114c4) return true\n            if (cp < 0x114d0) return false\n            if (cp < 0x114da) return true\n            return false\n        }\n        if (cp < 0x116ae) {\n            if (cp < 0x11633) {\n                if (cp < 0x115af) return false\n                if (cp < 0x115b2) return true\n                if (cp < 0x115b2) return false\n                if (cp < 0x115b6) return true\n                if (cp < 0x115b8) return false\n                if (cp < 0x115bc) return true\n                if (cp < 0x115bc) return false\n                if (cp < 0x115be) return true\n                if (cp === 0x115be) return true\n                if (cp < 0x115bf) return false\n                if (cp < 0x115c1) return true\n                if (cp < 0x115dc) return false\n                if (cp < 0x115de) return true\n                if (cp < 0x11630) return false\n                if (cp < 0x11633) return true\n                return false\n            }\n            if (cp < 0x1163b) return true\n            if (cp < 0x1163b) return false\n            if (cp < 0x1163d) return true\n            if (cp === 0x1163d) return true\n            if (cp === 0x1163e) return true\n            if (cp < 0x1163f) return false\n            if (cp < 0x11641) return true\n            if (cp < 0x11650) return false\n            if (cp < 0x1165a) return true\n            if (cp === 0x116ab) return true\n            if (cp === 0x116ac) return true\n            if (cp === 0x116ad) return true\n            return false\n        }\n        if (cp < 0x11726) {\n            if (cp < 0x116ae) return false\n            if (cp < 0x116b0) return true\n            if (cp < 0x116b0) return false\n            if (cp < 0x116b6) return true\n            if (cp === 0x116b6) return true\n            if (cp === 0x116b7) return true\n            if (cp < 0x116c0) return false\n            if (cp < 0x116ca) return true\n            if (cp < 0x1171d) return false\n            if (cp < 0x11720) return true\n            if (cp < 0x11720) return false\n            if (cp < 0x11722) return true\n            if (cp < 0x11722) return false\n            if (cp < 0x11726) return true\n            return false\n        }\n        if (cp === 0x11726) return true\n        if (cp < 0x11727) return false\n        if (cp < 0x1172c) return true\n        if (cp < 0x11730) return false\n        if (cp < 0x1173a) return true\n        if (cp < 0x1182c) return false\n        if (cp < 0x1182f) return true\n        if (cp < 0x1182f) return false\n        if (cp < 0x11838) return true\n        if (cp === 0x11838) return true\n        if (cp < 0x11839) return false\n        if (cp < 0x1183b) return true\n        if (cp < 0x118e0) return false\n        if (cp < 0x118ea) return true\n        if (cp < 0x11a01) return false\n        if (cp < 0x11a0b) return true\n        return false\n    }\n    if (cp < 0x11d97) {\n        if (cp < 0x11ca9) {\n            if (cp < 0x11a97) {\n                if (cp < 0x11a33) return false\n                if (cp < 0x11a39) return true\n                if (cp === 0x11a39) return true\n                if (cp < 0x11a3b) return false\n                if (cp < 0x11a3f) return true\n                if (cp === 0x11a47) return true\n                if (cp < 0x11a51) return false\n                if (cp < 0x11a57) return true\n                if (cp < 0x11a57) return false\n                if (cp < 0x11a59) return true\n                if (cp < 0x11a59) return false\n                if (cp < 0x11a5c) return true\n                if (cp < 0x11a8a) return false\n                if (cp < 0x11a97) return true\n                return false\n            }\n            if (cp === 0x11a97) return true\n            if (cp < 0x11a98) return false\n            if (cp < 0x11a9a) return true\n            if (cp === 0x11c2f) return true\n            if (cp < 0x11c30) return false\n            if (cp < 0x11c37) return true\n            if (cp < 0x11c38) return false\n            if (cp < 0x11c3e) return true\n            if (cp === 0x11c3e) return true\n            if (cp === 0x11c3f) return true\n            if (cp < 0x11c50) return false\n            if (cp < 0x11c5a) return true\n            if (cp < 0x11c92) return false\n            if (cp < 0x11ca8) return true\n            return false\n        }\n        if (cp < 0x11d3c) {\n            if (cp === 0x11ca9) return true\n            if (cp < 0x11caa) return false\n            if (cp < 0x11cb1) return true\n            if (cp === 0x11cb1) return true\n            if (cp < 0x11cb2) return false\n            if (cp < 0x11cb4) return true\n            if (cp === 0x11cb4) return true\n            if (cp < 0x11cb5) return false\n            if (cp < 0x11cb7) return true\n            if (cp < 0x11d31) return false\n            if (cp < 0x11d37) return true\n            if (cp === 0x11d3a) return true\n            return false\n        }\n        if (cp < 0x11d3e) return true\n        if (cp < 0x11d3f) return false\n        if (cp < 0x11d46) return true\n        if (cp === 0x11d47) return true\n        if (cp < 0x11d50) return false\n        if (cp < 0x11d5a) return true\n        if (cp < 0x11d8a) return false\n        if (cp < 0x11d8f) return true\n        if (cp < 0x11d90) return false\n        if (cp < 0x11d92) return true\n        if (cp < 0x11d93) return false\n        if (cp < 0x11d95) return true\n        if (cp === 0x11d95) return true\n        if (cp === 0x11d96) return true\n        return false\n    }\n    if (cp < 0x1d242) {\n        if (cp < 0x16f51) {\n            if (cp === 0x11d97) return true\n            if (cp < 0x11da0) return false\n            if (cp < 0x11daa) return true\n            if (cp < 0x11ef3) return false\n            if (cp < 0x11ef5) return true\n            if (cp < 0x11ef5) return false\n            if (cp < 0x11ef7) return true\n            if (cp < 0x16a60) return false\n            if (cp < 0x16a6a) return true\n            if (cp < 0x16af0) return false\n            if (cp < 0x16af5) return true\n            if (cp < 0x16b30) return false\n            if (cp < 0x16b37) return true\n            if (cp < 0x16b50) return false\n            if (cp < 0x16b5a) return true\n            return false\n        }\n        if (cp < 0x16f7f) return true\n        if (cp < 0x16f8f) return false\n        if (cp < 0x16f93) return true\n        if (cp < 0x1bc9d) return false\n        if (cp < 0x1bc9f) return true\n        if (cp < 0x1d165) return false\n        if (cp < 0x1d167) return true\n        if (cp < 0x1d167) return false\n        if (cp < 0x1d16a) return true\n        if (cp < 0x1d16d) return false\n        if (cp < 0x1d173) return true\n        if (cp < 0x1d17b) return false\n        if (cp < 0x1d183) return true\n        if (cp < 0x1d185) return false\n        if (cp < 0x1d18c) return true\n        if (cp < 0x1d1aa) return false\n        if (cp < 0x1d1ae) return true\n        return false\n    }\n    if (cp < 0x1e000) {\n        if (cp < 0x1d242) return false\n        if (cp < 0x1d245) return true\n        if (cp < 0x1d7ce) return false\n        if (cp < 0x1d800) return true\n        if (cp < 0x1da00) return false\n        if (cp < 0x1da37) return true\n        if (cp < 0x1da3b) return false\n        if (cp < 0x1da6d) return true\n        if (cp === 0x1da75) return true\n        if (cp === 0x1da84) return true\n        if (cp < 0x1da9b) return false\n        if (cp < 0x1daa0) return true\n        if (cp < 0x1daa1) return false\n        if (cp < 0x1dab0) return true\n        return false\n    }\n    if (cp < 0x1e007) return true\n    if (cp < 0x1e008) return false\n    if (cp < 0x1e019) return true\n    if (cp < 0x1e01b) return false\n    if (cp < 0x1e022) return true\n    if (cp < 0x1e023) return false\n    if (cp < 0x1e025) return true\n    if (cp < 0x1e026) return false\n    if (cp < 0x1e02b) return true\n    if (cp < 0x1e8d0) return false\n    if (cp < 0x1e8d7) return true\n    if (cp < 0x1e944) return false\n    if (cp < 0x1e94b) return true\n    if (cp < 0x1e950) return false\n    if (cp < 0x1e95a) return true\n    if (cp < 0xe0100) return false\n    if (cp < 0xe01f0) return true\n    return false\n}\n","const PropertyData: Object & { [key: string]: Set<string> } = {\n    $LONE: new Set([\n        \"ASCII\",\n        \"ASCII_Hex_Digit\",\n        \"AHex\",\n        \"Alphabetic\",\n        \"Alpha\",\n        \"Any\",\n        \"Assigned\",\n        \"Bidi_Control\",\n        \"Bidi_C\",\n        \"Bidi_Mirrored\",\n        \"Bidi_M\",\n        \"Case_Ignorable\",\n        \"CI\",\n        \"Cased\",\n        \"Changes_When_Casefolded\",\n        \"CWCF\",\n        \"Changes_When_Casemapped\",\n        \"CWCM\",\n        \"Changes_When_Lowercased\",\n        \"CWL\",\n        \"Changes_When_NFKC_Casefolded\",\n        \"CWKCF\",\n        \"Changes_When_Titlecased\",\n        \"CWT\",\n        \"Changes_When_Uppercased\",\n        \"CWU\",\n        \"Dash\",\n        \"Default_Ignorable_Code_Point\",\n        \"DI\",\n        \"Deprecated\",\n        \"Dep\",\n        \"Diacritic\",\n        \"Dia\",\n        \"Emoji\",\n        \"Emoji_Component\",\n        \"Emoji_Modifier\",\n        \"Emoji_Modifier_Base\",\n        \"Emoji_Presentation\",\n        \"Extender\",\n        \"Ext\",\n        \"Grapheme_Base\",\n        \"Gr_Base\",\n        \"Grapheme_Extend\",\n        \"Gr_Ext\",\n        \"Hex_Digit\",\n        \"Hex\",\n        \"IDS_Binary_Operator\",\n        \"IDSB\",\n        \"IDS_Trinary_Operator\",\n        \"IDST\",\n        \"ID_Continue\",\n        \"IDC\",\n        \"ID_Start\",\n        \"IDS\",\n        \"Ideographic\",\n        \"Ideo\",\n        \"Join_Control\",\n        \"Join_C\",\n        \"Logical_Order_Exception\",\n        \"LOE\",\n        \"Lowercase\",\n        \"Lower\",\n        \"Math\",\n        \"Noncharacter_Code_Point\",\n        \"NChar\",\n        \"Pattern_Syntax\",\n        \"Pat_Syn\",\n        \"Pattern_White_Space\",\n        \"Pat_WS\",\n        \"Quotation_Mark\",\n        \"QMark\",\n        \"Radical\",\n        \"Regional_Indicator\",\n        \"RI\",\n        \"Sentence_Terminal\",\n        \"STerm\",\n        \"Soft_Dotted\",\n        \"SD\",\n        \"Terminal_Punctuation\",\n        \"Term\",\n        \"Unified_Ideograph\",\n        \"UIdeo\",\n        \"Uppercase\",\n        \"Upper\",\n        \"Variation_Selector\",\n        \"VS\",\n        \"White_Space\",\n        \"space\",\n        \"XID_Continue\",\n        \"XIDC\",\n        \"XID_Start\",\n        \"XIDS\",\n    ]),\n    General_Category: new Set([\n        \"Cased_Letter\",\n        \"LC\",\n        \"Close_Punctuation\",\n        \"Pe\",\n        \"Connector_Punctuation\",\n        \"Pc\",\n        \"Control\",\n        \"Cc\",\n        \"cntrl\",\n        \"Currency_Symbol\",\n        \"Sc\",\n        \"Dash_Punctuation\",\n        \"Pd\",\n        \"Decimal_Number\",\n        \"Nd\",\n        \"digit\",\n        \"Enclosing_Mark\",\n        \"Me\",\n        \"Final_Punctuation\",\n        \"Pf\",\n        \"Format\",\n        \"Cf\",\n        \"Initial_Punctuation\",\n        \"Pi\",\n        \"Letter\",\n        \"L\",\n        \"Letter_Number\",\n        \"Nl\",\n        \"Line_Separator\",\n        \"Zl\",\n        \"Lowercase_Letter\",\n        \"Ll\",\n        \"Mark\",\n        \"M\",\n        \"Combining_Mark\",\n        \"Math_Symbol\",\n        \"Sm\",\n        \"Modifier_Letter\",\n        \"Lm\",\n        \"Modifier_Symbol\",\n        \"Sk\",\n        \"Nonspacing_Mark\",\n        \"Mn\",\n        \"Number\",\n        \"N\",\n        \"Open_Punctuation\",\n        \"Ps\",\n        \"Other\",\n        \"C\",\n        \"Other_Letter\",\n        \"Lo\",\n        \"Other_Number\",\n        \"No\",\n        \"Other_Punctuation\",\n        \"Po\",\n        \"Other_Symbol\",\n        \"So\",\n        \"Paragraph_Separator\",\n        \"Zp\",\n        \"Private_Use\",\n        \"Co\",\n        \"Punctuation\",\n        \"P\",\n        \"punct\",\n        \"Separator\",\n        \"Z\",\n        \"Space_Separator\",\n        \"Zs\",\n        \"Spacing_Mark\",\n        \"Mc\",\n        \"Surrogate\",\n        \"Cs\",\n        \"Symbol\",\n        \"S\",\n        \"Titlecase_Letter\",\n        \"Lt\",\n        \"Unassigned\",\n        \"Cn\",\n        \"Uppercase_Letter\",\n        \"Lu\",\n    ]),\n    Script: new Set([\n        \"Adlam\",\n        \"Adlm\",\n        \"Ahom\",\n        \"Anatolian_Hieroglyphs\",\n        \"Hluw\",\n        \"Arabic\",\n        \"Arab\",\n        \"Armenian\",\n        \"Armn\",\n        \"Avestan\",\n        \"Avst\",\n        \"Balinese\",\n        \"Bali\",\n        \"Bamum\",\n        \"Bamu\",\n        \"Bassa_Vah\",\n        \"Bass\",\n        \"Batak\",\n        \"Batk\",\n        \"Bengali\",\n        \"Beng\",\n        \"Bhaiksuki\",\n        \"Bhks\",\n        \"Bopomofo\",\n        \"Bopo\",\n        \"Brahmi\",\n        \"Brah\",\n        \"Braille\",\n        \"Brai\",\n        \"Buginese\",\n        \"Bugi\",\n        \"Buhid\",\n        \"Buhd\",\n        \"Canadian_Aboriginal\",\n        \"Cans\",\n        \"Carian\",\n        \"Cari\",\n        \"Caucasian_Albanian\",\n        \"Aghb\",\n        \"Chakma\",\n        \"Cakm\",\n        \"Cham\",\n        \"Cherokee\",\n        \"Cher\",\n        \"Common\",\n        \"Zyyy\",\n        \"Coptic\",\n        \"Copt\",\n        \"Qaac\",\n        \"Cuneiform\",\n        \"Xsux\",\n        \"Cypriot\",\n        \"Cprt\",\n        \"Cyrillic\",\n        \"Cyrl\",\n        \"Deseret\",\n        \"Dsrt\",\n        \"Devanagari\",\n        \"Deva\",\n        \"Duployan\",\n        \"Dupl\",\n        \"Egyptian_Hieroglyphs\",\n        \"Egyp\",\n        \"Elbasan\",\n        \"Elba\",\n        \"Ethiopic\",\n        \"Ethi\",\n        \"Georgian\",\n        \"Geor\",\n        \"Glagolitic\",\n        \"Glag\",\n        \"Gothic\",\n        \"Goth\",\n        \"Grantha\",\n        \"Gran\",\n        \"Greek\",\n        \"Grek\",\n        \"Gujarati\",\n        \"Gujr\",\n        \"Gurmukhi\",\n        \"Guru\",\n        \"Han\",\n        \"Hani\",\n        \"Hangul\",\n        \"Hang\",\n        \"Hanunoo\",\n        \"Hano\",\n        \"Hatran\",\n        \"Hatr\",\n        \"Hebrew\",\n        \"Hebr\",\n        \"Hiragana\",\n        \"Hira\",\n        \"Imperial_Aramaic\",\n        \"Armi\",\n        \"Inherited\",\n        \"Zinh\",\n        \"Qaai\",\n        \"Inscriptional_Pahlavi\",\n        \"Phli\",\n        \"Inscriptional_Parthian\",\n        \"Prti\",\n        \"Javanese\",\n        \"Java\",\n        \"Kaithi\",\n        \"Kthi\",\n        \"Kannada\",\n        \"Knda\",\n        \"Katakana\",\n        \"Kana\",\n        \"Kayah_Li\",\n        \"Kali\",\n        \"Kharoshthi\",\n        \"Khar\",\n        \"Khmer\",\n        \"Khmr\",\n        \"Khojki\",\n        \"Khoj\",\n        \"Khudawadi\",\n        \"Sind\",\n        \"Lao\",\n        \"Laoo\",\n        \"Latin\",\n        \"Latn\",\n        \"Lepcha\",\n        \"Lepc\",\n        \"Limbu\",\n        \"Limb\",\n        \"Linear_A\",\n        \"Lina\",\n        \"Linear_B\",\n        \"Linb\",\n        \"Lisu\",\n        \"Lycian\",\n        \"Lyci\",\n        \"Lydian\",\n        \"Lydi\",\n        \"Mahajani\",\n        \"Mahj\",\n        \"Malayalam\",\n        \"Mlym\",\n        \"Mandaic\",\n        \"Mand\",\n        \"Manichaean\",\n        \"Mani\",\n        \"Marchen\",\n        \"Marc\",\n        \"Masaram_Gondi\",\n        \"Gonm\",\n        \"Meetei_Mayek\",\n        \"Mtei\",\n        \"Mende_Kikakui\",\n        \"Mend\",\n        \"Meroitic_Cursive\",\n        \"Merc\",\n        \"Meroitic_Hieroglyphs\",\n        \"Mero\",\n        \"Miao\",\n        \"Plrd\",\n        \"Modi\",\n        \"Mongolian\",\n        \"Mong\",\n        \"Mro\",\n        \"Mroo\",\n        \"Multani\",\n        \"Mult\",\n        \"Myanmar\",\n        \"Mymr\",\n        \"Nabataean\",\n        \"Nbat\",\n        \"New_Tai_Lue\",\n        \"Talu\",\n        \"Newa\",\n        \"Nko\",\n        \"Nkoo\",\n        \"Nushu\",\n        \"Nshu\",\n        \"Ogham\",\n        \"Ogam\",\n        \"Ol_Chiki\",\n        \"Olck\",\n        \"Old_Hungarian\",\n        \"Hung\",\n        \"Old_Italic\",\n        \"Ital\",\n        \"Old_North_Arabian\",\n        \"Narb\",\n        \"Old_Permic\",\n        \"Perm\",\n        \"Old_Persian\",\n        \"Xpeo\",\n        \"Old_South_Arabian\",\n        \"Sarb\",\n        \"Old_Turkic\",\n        \"Orkh\",\n        \"Oriya\",\n        \"Orya\",\n        \"Osage\",\n        \"Osge\",\n        \"Osmanya\",\n        \"Osma\",\n        \"Pahawh_Hmong\",\n        \"Hmng\",\n        \"Palmyrene\",\n        \"Palm\",\n        \"Pau_Cin_Hau\",\n        \"Pauc\",\n        \"Phags_Pa\",\n        \"Phag\",\n        \"Phoenician\",\n        \"Phnx\",\n        \"Psalter_Pahlavi\",\n        \"Phlp\",\n        \"Rejang\",\n        \"Rjng\",\n        \"Runic\",\n        \"Runr\",\n        \"Samaritan\",\n        \"Samr\",\n        \"Saurashtra\",\n        \"Saur\",\n        \"Sharada\",\n        \"Shrd\",\n        \"Shavian\",\n        \"Shaw\",\n        \"Siddham\",\n        \"Sidd\",\n        \"SignWriting\",\n        \"Sgnw\",\n        \"Sinhala\",\n        \"Sinh\",\n        \"Sora_Sompeng\",\n        \"Sora\",\n        \"Soyombo\",\n        \"Soyo\",\n        \"Sundanese\",\n        \"Sund\",\n        \"Syloti_Nagri\",\n        \"Sylo\",\n        \"Syriac\",\n        \"Syrc\",\n        \"Tagalog\",\n        \"Tglg\",\n        \"Tagbanwa\",\n        \"Tagb\",\n        \"Tai_Le\",\n        \"Tale\",\n        \"Tai_Tham\",\n        \"Lana\",\n        \"Tai_Viet\",\n        \"Tavt\",\n        \"Takri\",\n        \"Takr\",\n        \"Tamil\",\n        \"Taml\",\n        \"Tangut\",\n        \"Tang\",\n        \"Telugu\",\n        \"Telu\",\n        \"Thaana\",\n        \"Thaa\",\n        \"Thai\",\n        \"Tibetan\",\n        \"Tibt\",\n        \"Tifinagh\",\n        \"Tfng\",\n        \"Tirhuta\",\n        \"Tirh\",\n        \"Ugaritic\",\n        \"Ugar\",\n        \"Vai\",\n        \"Vaii\",\n        \"Warang_Citi\",\n        \"Wara\",\n        \"Yi\",\n        \"Yiii\",\n        \"Zanabazar_Square\",\n        \"Zanb\",\n    ]),\n}\n\nPropertyData.gc = PropertyData.General_Category\nPropertyData.sc = PropertyData.Script_Extensions = PropertyData.scx =\n    PropertyData.Script\n\nexport { PropertyData }\n","export { isIdContinue, isIdStart } from \"./ids\"\nexport { PropertyData } from \"./property-data\"\n\nexport const Null = 0x00\nexport const Backspace = 0x08\nexport const CharacterTabulation = 0x09\nexport const LineFeed = 0x0a\nexport const LineTabulation = 0x0b\nexport const FormFeed = 0x0c\nexport const CarriageReturn = 0x0d\nexport const ExclamationMark = 0x21\nexport const DollarSign = 0x24\nexport const LeftParenthesis = 0x28\nexport const RightParenthesis = 0x29\nexport const Asterisk = 0x2a\nexport const PlusSign = 0x2b\nexport const Comma = 0x2c\nexport const HyphenMinus = 0x2d\nexport const FullStop = 0x2e\nexport const Solidus = 0x2f\nexport const DigitZero = 0x30\nexport const DigitOne = 0x31\nexport const DigitSeven = 0x37\nexport const DigitNine = 0x39\nexport const Colon = 0x3a\nexport const LessThanSign = 0x3c\nexport const EqualsSign = 0x3d\nexport const GreaterThanSign = 0x3e\nexport const QuestionMark = 0x3f\nexport const LatinCapitalLetterA = 0x41\nexport const LatinCapitalLetterB = 0x42\nexport const LatinCapitalLetterD = 0x44\nexport const LatinCapitalLetterF = 0x46\nexport const LatinCapitalLetterP = 0x50\nexport const LatinCapitalLetterS = 0x53\nexport const LatinCapitalLetterW = 0x57\nexport const LatinCapitalLetterZ = 0x5a\nexport const LowLine = 0x5f\nexport const LatinSmallLetterA = 0x61\nexport const LatinSmallLetterB = 0x62\nexport const LatinSmallLetterC = 0x63\nexport const LatinSmallLetterD = 0x64\nexport const LatinSmallLetterF = 0x66\nexport const LatinSmallLetterG = 0x67\nexport const LatinSmallLetterI = 0x69\nexport const LatinSmallLetterK = 0x6b\nexport const LatinSmallLetterM = 0x6d\nexport const LatinSmallLetterN = 0x6e\nexport const LatinSmallLetterP = 0x70\nexport const LatinSmallLetterR = 0x72\nexport const LatinSmallLetterS = 0x73\nexport const LatinSmallLetterT = 0x74\nexport const LatinSmallLetterU = 0x75\nexport const LatinSmallLetterV = 0x76\nexport const LatinSmallLetterW = 0x77\nexport const LatinSmallLetterX = 0x78\nexport const LatinSmallLetterY = 0x79\nexport const LatinSmallLetterZ = 0x7a\nexport const LeftSquareBracket = 0x5b\nexport const ReverseSolidus = 0x5c\nexport const RightSquareBracket = 0x5d\nexport const CircumflexAccent = 0x5e\nexport const LeftCurlyBracket = 0x7b\nexport const VerticalLine = 0x7c\nexport const RightCurlyBracket = 0x7d\nexport const ZeroWidthNonJoiner = 0x200c\nexport const ZeroWidthJoiner = 0x200d\nexport const LineSeparator = 0x2028\nexport const ParagraphSeparator = 0x2029\n\nexport const MinCodePoint = 0x00\nexport const MaxCodePoint = 0x10ffff\n\nexport function isLatinLetter(code: number): boolean {\n    return (\n        (code >= LatinCapitalLetterA && code <= LatinCapitalLetterZ) ||\n        (code >= LatinSmallLetterA && code <= LatinSmallLetterZ)\n    )\n}\n\nexport function isDecimalDigit(code: number): boolean {\n    return code >= DigitZero && code <= DigitNine\n}\n\nexport function isOctalDigit(code: number): boolean {\n    return code >= DigitZero && code <= DigitSeven\n}\n\nexport function isHexDigit(code: number): boolean {\n    return (\n        (code >= DigitZero && code <= DigitNine) ||\n        (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) ||\n        (code >= LatinSmallLetterA && code <= LatinSmallLetterF)\n    )\n}\n\nexport function isLineTerminator(code: number): boolean {\n    return (\n        code === LineFeed ||\n        code === CarriageReturn ||\n        code === LineSeparator ||\n        code === ParagraphSeparator\n    )\n}\n\nexport function isValidUnicode(code: number): boolean {\n    return code >= MinCodePoint && code <= MaxCodePoint\n}\n\nexport function digitToInt(code: number): number {\n    if (code >= LatinSmallLetterA && code <= LatinSmallLetterF) {\n        return code - LatinSmallLetterA + 10\n    }\n    if (code >= LatinCapitalLetterA && code <= LatinCapitalLetterF) {\n        return code - LatinCapitalLetterA + 10\n    }\n    return code - DigitZero\n}\n","const legacyImpl = {\n    at(s: string, end: number, i: number): number {\n        return i < end ? s.charCodeAt(i) : -1\n    },\n    width(c: number): number {\n        return 1\n    },\n}\nconst unicodeImpl = {\n    at(s: string, end: number, i: number): number {\n        return i < end ? s.codePointAt(i)! : -1\n    },\n    width(c: number): number {\n        return c > 0xffff ? 2 : 1\n    },\n}\n\nexport class Reader {\n    private _impl = legacyImpl\n    private _s = \"\"\n    private _i = 0\n    private _end = 0\n    private _cp1: number = -1\n    private _w1 = 1\n    private _cp2: number = -1\n    private _w2 = 1\n    private _cp3: number = -1\n    private _w3 = 1\n    private _cp4: number = -1\n\n    public get source(): string {\n        return this._s\n    }\n\n    public get index(): number {\n        return this._i\n    }\n\n    public get currentCodePoint(): number {\n        return this._cp1\n    }\n\n    public get nextCodePoint(): number {\n        return this._cp2\n    }\n\n    public get nextCodePoint2(): number {\n        return this._cp3\n    }\n\n    public get nextCodePoint3(): number {\n        return this._cp4\n    }\n\n    public reset(\n        source: string,\n        start: number,\n        end: number,\n        uFlag: boolean,\n    ): void {\n        this._impl = uFlag ? unicodeImpl : legacyImpl\n        this._s = source\n        this._end = end\n        this.rewind(start)\n    }\n\n    public rewind(index: number): void {\n        const impl = this._impl\n        this._i = index\n        this._cp1 = impl.at(this._s, this._end, index)\n        this._w1 = impl.width(this._cp1)\n        this._cp2 = impl.at(this._s, this._end, index + this._w1)\n        this._w2 = impl.width(this._cp2)\n        this._cp3 = impl.at(this._s, this._end, index + this._w1 + this._w2)\n        this._w3 = impl.width(this._cp3)\n        this._cp4 = impl.at(\n            this._s,\n            this._end,\n            index + this._w1 + this._w2 + this._w3,\n        )\n    }\n\n    public advance(): void {\n        if (this._cp1 !== -1) {\n            const impl = this._impl\n            this._i += this._w1\n            this._cp1 = this._cp2\n            this._w1 = this._w2\n            this._cp2 = this._cp3\n            this._w2 = impl.width(this._cp2)\n            this._cp3 = this._cp4\n            this._w3 = impl.width(this._cp3)\n            this._cp4 = impl.at(\n                this._s,\n                this._end,\n                this._i + this._w1 + this._w2 + this._w3,\n            )\n        }\n    }\n\n    public eat(cp: number): boolean {\n        if (this._cp1 === cp) {\n            this.advance()\n            return true\n        }\n        return false\n    }\n\n    public eat2(cp1: number, cp2: number): boolean {\n        if (this._cp1 === cp1 && this._cp2 === cp2) {\n            this.advance()\n            this.advance()\n            return true\n        }\n        return false\n    }\n\n    public eat3(cp1: number, cp2: number, cp3: number): boolean {\n        if (this._cp1 === cp1 && this._cp2 === cp2 && this._cp3 === cp3) {\n            this.advance()\n            this.advance()\n            this.advance()\n            return true\n        }\n        return false\n    }\n}\n","export class RegExpSyntaxError extends SyntaxError {\n    public index: number\n    public constructor(\n        source: string,\n        uFlag: boolean,\n        index: number,\n        message: string,\n    ) {\n        /*eslint-disable no-param-reassign */\n        if (source) {\n            if (source[0] !== \"/\") {\n                source = `/${source}/${uFlag ? \"u\" : \"\"}`\n            }\n            source = `: ${source}`\n        }\n        /*eslint-enable no-param-reassign */\n\n        super(`Invalid regular expression${source}: ${message}`)\n        this.index = index\n    }\n}\n","import { Reader } from \"./reader\"\nimport { RegExpSyntaxError } from \"./regexp-syntax-error\"\nimport {\n    Asterisk,\n    Backspace,\n    CarriageReturn,\n    CharacterTabulation,\n    CircumflexAccent,\n    Colon,\n    Comma,\n    DigitNine,\n    DigitOne,\n    digitToInt,\n    DigitZero,\n    DollarSign,\n    EqualsSign,\n    ExclamationMark,\n    FormFeed,\n    FullStop,\n    GreaterThanSign,\n    HyphenMinus,\n    isDecimalDigit,\n    isHexDigit,\n    isIdContinue,\n    isIdStart,\n    isLatinLetter,\n    isLineTerminator,\n    isOctalDigit,\n    isValidUnicode,\n    LatinCapitalLetterB,\n    LatinCapitalLetterD,\n    LatinCapitalLetterP,\n    LatinCapitalLetterS,\n    LatinCapitalLetterW,\n    LatinSmallLetterB,\n    LatinSmallLetterC,\n    LatinSmallLetterD,\n    LatinSmallLetterF,\n    LatinSmallLetterG,\n    LatinSmallLetterI,\n    LatinSmallLetterK,\n    LatinSmallLetterM,\n    LatinSmallLetterN,\n    LatinSmallLetterP,\n    LatinSmallLetterR,\n    LatinSmallLetterS,\n    LatinSmallLetterT,\n    LatinSmallLetterU,\n    LatinSmallLetterV,\n    LatinSmallLetterW,\n    LatinSmallLetterX,\n    LatinSmallLetterY,\n    LeftCurlyBracket,\n    LeftParenthesis,\n    LeftSquareBracket,\n    LessThanSign,\n    LineFeed,\n    LineTabulation,\n    LowLine,\n    PlusSign,\n    PropertyData,\n    QuestionMark,\n    ReverseSolidus,\n    RightCurlyBracket,\n    RightParenthesis,\n    RightSquareBracket,\n    Solidus,\n    VerticalLine,\n    ZeroWidthJoiner,\n    ZeroWidthNonJoiner,\n} from \"./unicode\"\n\nfunction isSyntaxCharacter(cp: number): boolean {\n    return (\n        cp === CircumflexAccent ||\n        cp === DollarSign ||\n        cp === ReverseSolidus ||\n        cp === FullStop ||\n        cp === Asterisk ||\n        cp === PlusSign ||\n        cp === QuestionMark ||\n        cp === LeftParenthesis ||\n        cp === RightParenthesis ||\n        cp === LeftSquareBracket ||\n        cp === RightSquareBracket ||\n        cp === LeftCurlyBracket ||\n        cp === RightCurlyBracket ||\n        cp === VerticalLine\n    )\n}\n\nfunction isRegExpIdentifierStart(cp: number): boolean {\n    return isIdStart(cp) || cp === DollarSign || cp === LowLine\n}\n\nfunction isRegExpIdentifierPart(cp: number): boolean {\n    return (\n        isIdContinue(cp) ||\n        cp === DollarSign ||\n        cp === LowLine ||\n        cp === ZeroWidthNonJoiner ||\n        cp === ZeroWidthJoiner\n    )\n}\n\nfunction isUnicodePropertyNameCharacter(cp: number): boolean {\n    return isLatinLetter(cp) || cp === LowLine\n}\n\nfunction isUnicodePropertyValueCharacter(cp: number): boolean {\n    return isUnicodePropertyNameCharacter(cp) || isDecimalDigit(cp)\n}\n\nfunction isValidUnicodeProperty(name: string, value: string): boolean {\n    //eslint-disable-next-line no-prototype-builtins\n    return PropertyData.hasOwnProperty(name) && PropertyData[name].has(value)\n}\n\nfunction isValidUnicodePropertyName(name: string): boolean {\n    return PropertyData.$LONE.has(name)\n}\n\nexport namespace RegExpValidator {\n    /**\n     * The options for RegExpValidator construction.\n     */\n    export interface Options {\n        /**\n         * The flag to disable Annex B syntax. Default is `false`.\n         */\n        strict?: boolean\n\n        /**\n         * ECMAScript version. Default is `2018`.\n         * - `2015` added `u` and `y` flags.\n         * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n         *   and Unicode Property Escape.\n         */\n        ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n\n        /**\n         * A function that is called when the validator entered a RegExp literal.\n         * @param start The 0-based index of the first character.\n         */\n        onLiteralEnter?(start: number): void\n\n        /**\n         * A function that is called when the validator left a RegExp literal.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         */\n        onLiteralLeave?(start: number, end: number): void\n\n        /**\n         * A function that is called when the validator found flags.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param global `g` flag.\n         * @param ignoreCase `i` flag.\n         * @param multiline `m` flag.\n         * @param unicode `u` flag.\n         * @param sticky `y` flag.\n         * @param dotAll `s` flag.\n         */\n        onFlags?(\n            start: number,\n            end: number,\n            global: boolean,\n            ignoreCase: boolean,\n            multiline: boolean,\n            unicode: boolean,\n            sticky: boolean,\n            dotAll: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator entered a pattern.\n         * @param start The 0-based index of the first character.\n         */\n        onPatternEnter?(start: number): void\n\n        /**\n         * A function that is called when the validator left a pattern.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         */\n        onPatternLeave?(start: number, end: number): void\n\n        /**\n         * A function that is called when the validator entered a disjunction.\n         * @param start The 0-based index of the first character.\n         */\n        onDisjunctionEnter?(start: number): void\n\n        /**\n         * A function that is called when the validator left a disjunction.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         */\n        onDisjunctionLeave?(start: number, end: number): void\n\n        /**\n         * A function that is called when the validator entered an alternative.\n         * @param start The 0-based index of the first character.\n         * @param index The 0-based index of alternatives in a disjunction.\n         */\n        onAlternativeEnter?(start: number, index: number): void\n\n        /**\n         * A function that is called when the validator left an alternative.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param index The 0-based index of alternatives in a disjunction.\n         */\n        onAlternativeLeave?(start: number, end: number, index: number): void\n\n        /**\n         * A function that is called when the validator entered an uncapturing group.\n         * @param start The 0-based index of the first character.\n         */\n        onGroupEnter?(start: number): void\n\n        /**\n         * A function that is called when the validator left an uncapturing group.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         */\n        onGroupLeave?(start: number, end: number): void\n\n        /**\n         * A function that is called when the validator entered a capturing group.\n         * @param start The 0-based index of the first character.\n         * @param name The group name.\n         */\n        onCapturingGroupEnter?(start: number, name: string | null): void\n\n        /**\n         * A function that is called when the validator left a capturing group.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param name The group name.\n         */\n        onCapturingGroupLeave?(\n            start: number,\n            end: number,\n            name: string | null,\n        ): void\n\n        /**\n         * A function that is called when the validator found a quantifier.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param min The minimum number of repeating.\n         * @param max The maximum number of repeating.\n         * @param greedy The flag to choose the longest matching.\n         */\n        onQuantifier?(\n            start: number,\n            end: number,\n            min: number,\n            max: number,\n            greedy: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator entered a lookahead/lookbehind assertion.\n         * @param start The 0-based index of the first character.\n         * @param kind The kind of the assertion.\n         * @param negate The flag which represents that the assertion is negative.\n         */\n        onLookaroundAssertionEnter?(\n            start: number,\n            kind: \"lookahead\" | \"lookbehind\",\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator left a lookahead/lookbehind assertion.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the assertion.\n         * @param negate The flag which represents that the assertion is negative.\n         */\n        onLookaroundAssertionLeave?(\n            start: number,\n            end: number,\n            kind: \"lookahead\" | \"lookbehind\",\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found an edge boundary assertion.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the assertion.\n         */\n        onEdgeAssertion?(\n            start: number,\n            end: number,\n            kind: \"start\" | \"end\",\n        ): void\n\n        /**\n         * A function that is called when the validator found a word boundary assertion.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the assertion.\n         * @param negate The flag which represents that the assertion is negative.\n         */\n        onWordBoundaryAssertion?(\n            start: number,\n            end: number,\n            kind: \"word\",\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found a dot.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the character set.\n         */\n        onAnyCharacterSet?(start: number, end: number, kind: \"any\"): void\n\n        /**\n         * A function that is called when the validator found a character set escape.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the character set.\n         * @param negate The flag which represents that the character set is negative.\n         */\n        onEscapeCharacterSet?(\n            start: number,\n            end: number,\n            kind: \"digit\" | \"space\" | \"word\",\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found a Unicode proerty escape.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param kind The kind of the character set.\n         * @param key The property name.\n         * @param value The property value.\n         * @param negate The flag which represents that the character set is negative.\n         */\n        onUnicodePropertyCharacterSet?(\n            start: number,\n            end: number,\n            kind: \"property\",\n            key: string,\n            value: string | null,\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found a character.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param value The code point of the character.\n         */\n        onCharacter?(start: number, end: number, value: number): void\n\n        /**\n         * A function that is called when the validator found a backreference.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param ref The key of the referred capturing group.\n         */\n        onBackreference?(start: number, end: number, ref: number | string): void\n\n        /**\n         * A function that is called when the validator entered a character class.\n         * @param start The 0-based index of the first character.\n         * @param negate The flag which represents that the character class is negative.\n         */\n        onCharacterClassEnter?(start: number, negate: boolean): void\n\n        /**\n         * A function that is called when the validator left a character class.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param negate The flag which represents that the character class is negative.\n         */\n        onCharacterClassLeave?(\n            start: number,\n            end: number,\n            negate: boolean,\n        ): void\n\n        /**\n         * A function that is called when the validator found a character class range.\n         * @param start The 0-based index of the first character.\n         * @param end The next 0-based index of the last character.\n         * @param min The minimum code point of the range.\n         * @param max The maximum code point of the range.\n         */\n        onCharacterClassRange?(\n            start: number,\n            end: number,\n            min: number,\n            max: number,\n        ): void\n    }\n}\n\n/**\n * The regular expression validator.\n */\nexport class RegExpValidator {\n    private readonly _options: RegExpValidator.Options\n    private readonly _reader = new Reader()\n    private _uFlag = false\n    private _nFlag = false\n    private _lastIntValue = 0\n    private _lastMinValue = 0\n    private _lastMaxValue = 0\n    private _lastStrValue = \"\"\n    private _lastKeyValue = \"\"\n    private _lastValValue = \"\"\n    private _lastAssertionIsQuantifiable = false\n    private _numCapturingParens = 0\n    private _groupNames = new Set<string>()\n    private _backreferenceNames = new Set<string>()\n\n    /**\n     * Initialize this validator.\n     * @param options The options of validator.\n     */\n    public constructor(options?: RegExpValidator.Options) {\n        this._options = options || {}\n    }\n\n    /**\n     * Validate a regular expression literal. E.g. \"/abc/g\"\n     * @param source The source code to validate.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     */\n    public validateLiteral(\n        source: string,\n        start = 0,\n        end: number = source.length,\n    ): void {\n        this._uFlag = this._nFlag = false\n        this.reset(source, start, end)\n\n        this.onLiteralEnter(start)\n        if (this.eat(Solidus) && this.eatRegExpBody() && this.eat(Solidus)) {\n            const flagStart = this.index\n            const uFlag = source.indexOf(\"u\", flagStart) !== -1\n            this.validateFlags(source, flagStart, end)\n            this.validatePattern(source, start + 1, flagStart - 1, uFlag)\n        } else if (start >= end) {\n            this.raise(\"Empty\")\n        } else {\n            const c = String.fromCodePoint(this.currentCodePoint)\n            this.raise(`Unexpected character '${c}'`)\n        }\n        this.onLiteralLeave(start, end)\n    }\n\n    /**\n     * Validate a regular expression flags. E.g. \"gim\"\n     * @param source The source code to validate.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     */\n    public validateFlags(\n        source: string,\n        start = 0,\n        end: number = source.length,\n    ): void {\n        const existingFlags = new Set<number>()\n        let global = false\n        let ignoreCase = false\n        let multiline = false\n        let sticky = false\n        let unicode = false\n        let dotAll = false\n        for (let i = start; i < end; ++i) {\n            const flag = source.charCodeAt(i)\n\n            if (existingFlags.has(flag)) {\n                this.raise(`Duplicated flag '${source[i]}'`)\n            }\n            existingFlags.add(flag)\n\n            if (flag === LatinSmallLetterG) {\n                global = true\n            } else if (flag === LatinSmallLetterI) {\n                ignoreCase = true\n            } else if (flag === LatinSmallLetterM) {\n                multiline = true\n            } else if (flag === LatinSmallLetterU && this.ecmaVersion >= 2015) {\n                unicode = true\n            } else if (flag === LatinSmallLetterY && this.ecmaVersion >= 2015) {\n                sticky = true\n            } else if (flag === LatinSmallLetterS && this.ecmaVersion >= 2018) {\n                dotAll = true\n            } else {\n                this.raise(`Invalid flag '${source[i]}'`)\n            }\n        }\n        this.onFlags(\n            start,\n            end,\n            global,\n            ignoreCase,\n            multiline,\n            unicode,\n            sticky,\n            dotAll,\n        )\n    }\n\n    /**\n     * Validate a regular expression pattern. E.g. \"abc\"\n     * @param source The source code to validate.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     * @param uFlag The flag to set unicode mode.\n     */\n    public validatePattern(\n        source: string,\n        start = 0,\n        end: number = source.length,\n        uFlag = false,\n    ): void {\n        this._uFlag = uFlag && this.ecmaVersion >= 2015\n        this._nFlag = uFlag && this.ecmaVersion >= 2018\n        this.reset(source, start, end)\n        this.pattern()\n\n        if (\n            !this._nFlag &&\n            this.ecmaVersion >= 2018 &&\n            this._groupNames.size > 0\n        ) {\n            this._nFlag = true\n            this.rewind(start)\n            this.pattern()\n        }\n    }\n\n    // #region Delegate for Options\n\n    private get strict() {\n        return Boolean(this._options.strict || this._uFlag)\n    }\n\n    private get ecmaVersion() {\n        return this._options.ecmaVersion || 2018\n    }\n\n    private onLiteralEnter(start: number): void {\n        if (this._options.onLiteralEnter) {\n            this._options.onLiteralEnter(start)\n        }\n    }\n\n    private onLiteralLeave(start: number, end: number): void {\n        if (this._options.onLiteralLeave) {\n            this._options.onLiteralLeave(start, end)\n        }\n    }\n\n    private onFlags(\n        start: number,\n        end: number,\n        global: boolean,\n        ignoreCase: boolean,\n        multiline: boolean,\n        unicode: boolean,\n        sticky: boolean,\n        dotAll: boolean,\n    ): void {\n        if (this._options.onFlags) {\n            this._options.onFlags(\n                start,\n                end,\n                global,\n                ignoreCase,\n                multiline,\n                unicode,\n                sticky,\n                dotAll,\n            )\n        }\n    }\n\n    private onPatternEnter(start: number): void {\n        if (this._options.onPatternEnter) {\n            this._options.onPatternEnter(start)\n        }\n    }\n\n    private onPatternLeave(start: number, end: number): void {\n        if (this._options.onPatternLeave) {\n            this._options.onPatternLeave(start, end)\n        }\n    }\n\n    private onDisjunctionEnter(start: number): void {\n        if (this._options.onDisjunctionEnter) {\n            this._options.onDisjunctionEnter(start)\n        }\n    }\n\n    private onDisjunctionLeave(start: number, end: number): void {\n        if (this._options.onDisjunctionLeave) {\n            this._options.onDisjunctionLeave(start, end)\n        }\n    }\n\n    private onAlternativeEnter(start: number, index: number): void {\n        if (this._options.onAlternativeEnter) {\n            this._options.onAlternativeEnter(start, index)\n        }\n    }\n\n    private onAlternativeLeave(\n        start: number,\n        end: number,\n        index: number,\n    ): void {\n        if (this._options.onAlternativeLeave) {\n            this._options.onAlternativeLeave(start, end, index)\n        }\n    }\n\n    private onGroupEnter(start: number): void {\n        if (this._options.onGroupEnter) {\n            this._options.onGroupEnter(start)\n        }\n    }\n\n    private onGroupLeave(start: number, end: number): void {\n        if (this._options.onGroupLeave) {\n            this._options.onGroupLeave(start, end)\n        }\n    }\n\n    private onCapturingGroupEnter(start: number, name: string | null): void {\n        if (this._options.onCapturingGroupEnter) {\n            this._options.onCapturingGroupEnter(start, name)\n        }\n    }\n\n    private onCapturingGroupLeave(\n        start: number,\n        end: number,\n        name: string | null,\n    ): void {\n        if (this._options.onCapturingGroupLeave) {\n            this._options.onCapturingGroupLeave(start, end, name)\n        }\n    }\n\n    private onQuantifier(\n        start: number,\n        end: number,\n        min: number,\n        max: number,\n        greedy: boolean,\n    ): void {\n        if (this._options.onQuantifier) {\n            this._options.onQuantifier(start, end, min, max, greedy)\n        }\n    }\n\n    private onLookaroundAssertionEnter(\n        start: number,\n        kind: \"lookahead\" | \"lookbehind\",\n        negate: boolean,\n    ): void {\n        if (this._options.onLookaroundAssertionEnter) {\n            this._options.onLookaroundAssertionEnter(start, kind, negate)\n        }\n    }\n\n    private onLookaroundAssertionLeave(\n        start: number,\n        end: number,\n        kind: \"lookahead\" | \"lookbehind\",\n        negate: boolean,\n    ): void {\n        if (this._options.onLookaroundAssertionLeave) {\n            this._options.onLookaroundAssertionLeave(start, end, kind, negate)\n        }\n    }\n\n    private onEdgeAssertion(\n        start: number,\n        end: number,\n        kind: \"start\" | \"end\",\n    ): void {\n        if (this._options.onEdgeAssertion) {\n            this._options.onEdgeAssertion(start, end, kind)\n        }\n    }\n\n    private onWordBoundaryAssertion(\n        start: number,\n        end: number,\n        kind: \"word\",\n        negate: boolean,\n    ): void {\n        if (this._options.onWordBoundaryAssertion) {\n            this._options.onWordBoundaryAssertion(start, end, kind, negate)\n        }\n    }\n\n    private onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n        if (this._options.onAnyCharacterSet) {\n            this._options.onAnyCharacterSet(start, end, kind)\n        }\n    }\n\n    private onEscapeCharacterSet(\n        start: number,\n        end: number,\n        kind: \"digit\" | \"space\" | \"word\",\n        negate: boolean,\n    ): void {\n        if (this._options.onEscapeCharacterSet) {\n            this._options.onEscapeCharacterSet(start, end, kind, negate)\n        }\n    }\n\n    private onUnicodePropertyCharacterSet(\n        start: number,\n        end: number,\n        kind: \"property\",\n        key: string,\n        value: string | null,\n        negate: boolean,\n    ): void {\n        if (this._options.onUnicodePropertyCharacterSet) {\n            this._options.onUnicodePropertyCharacterSet(\n                start,\n                end,\n                kind,\n                key,\n                value,\n                negate,\n            )\n        }\n    }\n\n    private onCharacter(start: number, end: number, value: number): void {\n        if (this._options.onCharacter) {\n            this._options.onCharacter(start, end, value)\n        }\n    }\n\n    private onBackreference(\n        start: number,\n        end: number,\n        ref: number | string,\n    ): void {\n        if (this._options.onBackreference) {\n            this._options.onBackreference(start, end, ref)\n        }\n    }\n\n    private onCharacterClassEnter(start: number, negate: boolean): void {\n        if (this._options.onCharacterClassEnter) {\n            this._options.onCharacterClassEnter(start, negate)\n        }\n    }\n\n    private onCharacterClassLeave(\n        start: number,\n        end: number,\n        negate: boolean,\n    ): void {\n        if (this._options.onCharacterClassLeave) {\n            this._options.onCharacterClassLeave(start, end, negate)\n        }\n    }\n\n    private onCharacterClassRange(\n        start: number,\n        end: number,\n        min: number,\n        max: number,\n    ): void {\n        if (this._options.onCharacterClassRange) {\n            this._options.onCharacterClassRange(start, end, min, max)\n        }\n    }\n\n    // #endregion\n\n    // #region Delegate for Reader\n\n    private get source(): string {\n        return this._reader.source\n    }\n\n    private get index(): number {\n        return this._reader.index\n    }\n\n    private get currentCodePoint(): number {\n        return this._reader.currentCodePoint\n    }\n\n    private get nextCodePoint(): number {\n        return this._reader.nextCodePoint\n    }\n\n    private get nextCodePoint2(): number {\n        return this._reader.nextCodePoint2\n    }\n\n    private get nextCodePoint3(): number {\n        return this._reader.nextCodePoint3\n    }\n\n    private reset(source: string, start: number, end: number): void {\n        this._reader.reset(source, start, end, this._uFlag)\n    }\n\n    private rewind(index: number): void {\n        this._reader.rewind(index)\n    }\n\n    private advance(): void {\n        this._reader.advance()\n    }\n\n    private eat(cp: number): boolean {\n        return this._reader.eat(cp)\n    }\n\n    private eat2(cp1: number, cp2: number): boolean {\n        return this._reader.eat2(cp1, cp2)\n    }\n\n    private eat3(cp1: number, cp2: number, cp3: number): boolean {\n        return this._reader.eat3(cp1, cp2, cp3)\n    }\n\n    // #endregion\n\n    private raise(message: string): never {\n        throw new RegExpSyntaxError(\n            this.source,\n            this._uFlag,\n            this.index,\n            message,\n        )\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-RegularExpressionBody\n    private eatRegExpBody(): boolean {\n        const start = this.index\n        let inClass = false\n        let escaped = false\n\n        for (;;) {\n            const cp = this.currentCodePoint\n            if (cp === -1 || isLineTerminator(cp)) {\n                const kind = inClass ? \"character class\" : \"regular expression\"\n                this.raise(`Unterminated ${kind}`)\n            }\n            if (escaped) {\n                escaped = false\n            } else if (cp === ReverseSolidus) {\n                escaped = true\n            } else if (cp === LeftSquareBracket) {\n                inClass = true\n            } else if (cp === RightSquareBracket) {\n                inClass = false\n            } else if (\n                (cp === Solidus && !inClass) ||\n                (cp === Asterisk && this.index === start)\n            ) {\n                break\n            }\n            this.advance()\n        }\n\n        return this.index !== start\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\n    private pattern(): void {\n        const start = this.index\n        this._numCapturingParens = this.countCapturingParens()\n        this._groupNames.clear()\n        this._backreferenceNames.clear()\n\n        this.onPatternEnter(start)\n        this.disjunction()\n\n        const cp = this.currentCodePoint\n        if (this.currentCodePoint !== -1) {\n            if (cp === RightParenthesis) {\n                this.raise(\"Unmatched ')'\")\n            }\n            if (cp === ReverseSolidus) {\n                this.raise(\"\\\\ at end of pattern\")\n            }\n            if (cp === RightSquareBracket || cp === RightCurlyBracket) {\n                this.raise(\"Lone quantifier brackets\")\n            }\n            const c = String.fromCodePoint(cp)\n            this.raise(`Unexpected character '${c}'`)\n        }\n        for (const name of this._backreferenceNames) {\n            if (!this._groupNames.has(name)) {\n                this.raise(\"Invalid named capture referenced\")\n            }\n        }\n        this.onPatternLeave(start, this.index)\n    }\n\n    private countCapturingParens(): number {\n        const start = this.index\n        let inClass = false\n        let escaped = false\n        let count = 0\n        let cp = 0\n\n        while ((cp = this.currentCodePoint) !== -1) {\n            if (escaped) {\n                escaped = false\n            } else if (cp === ReverseSolidus) {\n                escaped = true\n            } else if (cp === LeftSquareBracket) {\n                inClass = true\n            } else if (cp === RightSquareBracket) {\n                inClass = false\n            } else if (\n                cp === LeftParenthesis &&\n                !inClass &&\n                (this.nextCodePoint !== QuestionMark ||\n                    (this.nextCodePoint2 === LessThanSign &&\n                        this.nextCodePoint3 !== EqualsSign &&\n                        this.nextCodePoint3 !== ExclamationMark))\n            ) {\n                count += 1\n            }\n            this.advance()\n        }\n\n        this.rewind(start)\n        return count\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\n    private disjunction(): void {\n        const start = this.index\n        let i = 0\n\n        this.onDisjunctionEnter(start)\n        this.alternative(i++)\n        while (this.eat(VerticalLine)) {\n            this.alternative(i++)\n        }\n\n        if (this.eatQuantifier(true)) {\n            this.raise(\"Nothing to repeat\")\n        }\n        if (this.eat(LeftCurlyBracket)) {\n            this.raise(\"Lone quantifier brackets\")\n        }\n        this.onDisjunctionLeave(start, this.index)\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\n    private alternative(i: number): void {\n        const start = this.index\n\n        this.onAlternativeEnter(start, i)\n        while (this.currentCodePoint !== -1 && this.eatTerm()) {\n            // do nothing.\n        }\n        this.onAlternativeLeave(start, this.index, i)\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Term\n    private eatTerm(): boolean {\n        if (this.eatAssertion()) {\n            // Handle `QuantifiableAssertion Quantifier` alternative.\n            // `this.lastAssertionIsQuantifiable` is true if the last eaten\n            // Assertion is a QuantifiableAssertion.\n            if (this._lastAssertionIsQuantifiable) {\n                this.eatQuantifier()\n            }\n            return true\n        }\n\n        if (this.strict ? this.eatAtom() : this.eatExtendedAtom()) {\n            this.eatQuantifier()\n            return true\n        }\n\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-Assertion\n    private eatAssertion(): boolean {\n        const start = this.index\n        this._lastAssertionIsQuantifiable = false\n\n        // ^, $, \\B \\b\n        if (this.eat(CircumflexAccent)) {\n            this.onEdgeAssertion(start, this.index, \"start\")\n            return true\n        }\n        if (this.eat(DollarSign)) {\n            this.onEdgeAssertion(start, this.index, \"end\")\n            return true\n        }\n        if (this.eat2(ReverseSolidus, LatinCapitalLetterB)) {\n            this.onWordBoundaryAssertion(start, this.index, \"word\", true)\n            return true\n        }\n        if (this.eat2(ReverseSolidus, LatinSmallLetterB)) {\n            this.onWordBoundaryAssertion(start, this.index, \"word\", false)\n            return true\n        }\n\n        // Lookahead / Lookbehind\n        if (this.eat2(LeftParenthesis, QuestionMark)) {\n            const lookbehind =\n                this.ecmaVersion >= 2018 && this.eat(LessThanSign)\n            let negate = false\n            if (this.eat(EqualsSign) || (negate = this.eat(ExclamationMark))) {\n                const kind = lookbehind ? \"lookbehind\" : \"lookahead\"\n                this.onLookaroundAssertionEnter(start, kind, negate)\n                this.disjunction()\n                if (!this.eat(RightParenthesis)) {\n                    this.raise(\"Unterminated group\")\n                }\n                this._lastAssertionIsQuantifiable = !lookbehind && !this.strict\n                this.onLookaroundAssertionLeave(start, this.index, kind, negate)\n                return true\n            }\n            this.rewind(start)\n        }\n\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\n    private eatQuantifier(noError = false): boolean {\n        const start = this.index\n        let min = 0\n        let max = 0\n        let greedy = false\n\n        if (this.eat(Asterisk)) {\n            min = 0\n            max = Number.POSITIVE_INFINITY\n        } else if (this.eat(PlusSign)) {\n            min = 1\n            max = Number.POSITIVE_INFINITY\n        } else if (this.eat(QuestionMark)) {\n            min = 0\n            max = 1\n        } else if (this.eatBracedQuantifier(noError)) {\n            min = this._lastMinValue\n            max = this._lastMaxValue\n        } else {\n            return false\n        }\n        greedy = !this.eat(QuestionMark)\n\n        if (!noError) {\n            this.onQuantifier(start, this.index, min, max, greedy)\n        }\n        return true\n    }\n\n    private eatBracedQuantifier(noError: boolean): boolean {\n        const start = this.index\n        if (this.eat(LeftCurlyBracket)) {\n            this._lastMinValue = 0\n            this._lastMaxValue = Number.POSITIVE_INFINITY\n            if (this.eatDecimalDigits()) {\n                this._lastMinValue = this._lastMaxValue = this._lastIntValue\n                if (this.eat(Comma)) {\n                    this._lastMaxValue = this.eatDecimalDigits()\n                        ? this._lastIntValue\n                        : Number.POSITIVE_INFINITY\n                }\n                if (this.eat(RightCurlyBracket)) {\n                    if (!noError && this._lastMaxValue < this._lastMinValue) {\n                        this.raise(\"numbers out of order in {} quantifier\")\n                    }\n                    return true\n                }\n            }\n            if (!noError && this.strict) {\n                this.raise(\"Incomplete quantifier\")\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\n    private eatAtom(): boolean {\n        return (\n            this.eatPatternCharacter() ||\n            this.eatDot() ||\n            this.eatReverseSolidusAtomEscape() ||\n            this.eatCharacterClass() ||\n            this.eatUncapturingGroup() ||\n            this.eatCapturingGroup()\n        )\n    }\n\n    private eatDot(): boolean {\n        if (this.eat(FullStop)) {\n            this.onAnyCharacterSet(this.index - 1, this.index, \"any\")\n            return true\n        }\n        return false\n    }\n\n    private eatReverseSolidusAtomEscape(): boolean {\n        const start = this.index\n        if (this.eat(ReverseSolidus)) {\n            if (this.eatAtomEscape()) {\n                return true\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    private eatUncapturingGroup(): boolean {\n        const start = this.index\n        if (this.eat3(LeftParenthesis, QuestionMark, Colon)) {\n            this.onGroupEnter(start)\n            this.disjunction()\n            if (!this.eat(RightParenthesis)) {\n                this.raise(\"Unterminated group\")\n            }\n            this.onGroupLeave(start, this.index)\n            return true\n        }\n        return false\n    }\n\n    private eatCapturingGroup(): boolean {\n        const start = this.index\n        if (this.eat(LeftParenthesis)) {\n            this._lastStrValue = \"\"\n            if (this.ecmaVersion >= 2018) {\n                this.groupSpecifier()\n            } else if (this.currentCodePoint === QuestionMark) {\n                this.raise(\"Invalid group\")\n            }\n            const name = this._lastStrValue || null\n\n            this.onCapturingGroupEnter(start, name)\n            this.disjunction()\n            if (!this.eat(RightParenthesis)) {\n                this.raise(\"Unterminated group\")\n            }\n            this.onCapturingGroupLeave(start, this.index, name)\n\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedAtom\n    private eatExtendedAtom(): boolean {\n        return (\n            this.eatDot() ||\n            this.eatReverseSolidusAtomEscape() ||\n            this.eatReverseSolidusFollowedByC() ||\n            this.eatCharacterClass() ||\n            this.eatUncapturingGroup() ||\n            this.eatCapturingGroup() ||\n            this.eatInvalidBracedQuantifier() ||\n            this.eatExtendedPatternCharacter()\n        )\n    }\n\n    // \\ [lookahead = c]\n    private eatReverseSolidusFollowedByC(): boolean {\n        if (\n            this.currentCodePoint === ReverseSolidus &&\n            this.nextCodePoint === LatinSmallLetterC\n        ) {\n            this._lastIntValue = this.currentCodePoint\n            this.advance()\n            this.onCharacter(this.index - 1, this.index, ReverseSolidus)\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-InvalidBracedQuantifier\n    private eatInvalidBracedQuantifier(): boolean {\n        if (this.eatBracedQuantifier(true)) {\n            this.raise(\"Nothing to repeat\")\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\n    private eatSyntaxCharacter(): boolean {\n        if (isSyntaxCharacter(this.currentCodePoint)) {\n            this._lastIntValue = this.currentCodePoint\n            this.advance()\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n    private eatPatternCharacter(): boolean {\n        const start = this.index\n        const cp = this.currentCodePoint\n        if (cp !== -1 && !isSyntaxCharacter(cp)) {\n            this.advance()\n            this.onCharacter(start, this.index, cp)\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ExtendedPatternCharacter\n    private eatExtendedPatternCharacter(): boolean {\n        const start = this.index\n        const cp = this.currentCodePoint\n        if (\n            cp !== -1 &&\n            cp !== CircumflexAccent &&\n            cp !== DollarSign &&\n            cp !== ReverseSolidus &&\n            cp !== FullStop &&\n            cp !== Asterisk &&\n            cp !== PlusSign &&\n            cp !== QuestionMark &&\n            cp !== LeftParenthesis &&\n            cp !== RightParenthesis &&\n            cp !== LeftSquareBracket &&\n            cp !== VerticalLine\n        ) {\n            this.advance()\n            this.onCharacter(start, this.index, cp)\n            return true\n        }\n        return false\n    }\n\n    // GroupSpecifier[U] ::\n    //   [empty]\n    //   `?` GroupName[?U]\n    private groupSpecifier(): void {\n        this._lastStrValue = \"\"\n        if (this.eat(QuestionMark)) {\n            if (this.eatGroupName()) {\n                if (!this._groupNames.has(this._lastStrValue)) {\n                    this._groupNames.add(this._lastStrValue)\n                    return\n                }\n                this.raise(\"Duplicate capture group name\")\n            }\n            this.raise(\"Invalid group\")\n        }\n    }\n\n    // GroupName[U] ::\n    //   `<` RegExpIdentifierName[?U] `>`\n    private eatGroupName(): boolean {\n        this._lastStrValue = \"\"\n        if (this.eat(LessThanSign)) {\n            if (this.eatRegExpIdentifierName() && this.eat(GreaterThanSign)) {\n                return true\n            }\n            this.raise(\"Invalid capture group name\")\n        }\n        return false\n    }\n\n    // RegExpIdentifierName[U] ::\n    //   RegExpIdentifierStart[?U]\n    //   RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n    private eatRegExpIdentifierName(): boolean {\n        this._lastStrValue = \"\"\n        if (this.eatRegExpIdentifierStart()) {\n            this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n            while (this.eatRegExpIdentifierPart()) {\n                this._lastStrValue += String.fromCodePoint(this._lastIntValue)\n            }\n            return true\n        }\n        return false\n    }\n\n    // RegExpIdentifierStart[U] ::\n    //   UnicodeIDStart\n    //   `$`\n    //   `_`\n    //   `\\` RegExpUnicodeEscapeSequence[?U]\n    private eatRegExpIdentifierStart(): boolean {\n        const start = this.index\n        let cp = this.currentCodePoint\n        this.advance()\n\n        if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n            cp = this._lastIntValue\n        }\n        if (isRegExpIdentifierStart(cp)) {\n            this._lastIntValue = cp\n            return true\n        }\n\n        if (this.index !== start) {\n            this.rewind(start)\n        }\n        return false\n    }\n\n    // RegExpIdentifierPart[U] ::\n    //   UnicodeIDContinue\n    //   `$`\n    //   `_`\n    //   `\\` RegExpUnicodeEscapeSequence[?U]\n    //   <Zwnj>\n    //   <Zwj>\n    private eatRegExpIdentifierPart(): boolean {\n        const start = this.index\n        let cp = this.currentCodePoint\n        this.advance()\n\n        if (cp === ReverseSolidus && this.eatRegExpUnicodeEscapeSequence()) {\n            cp = this._lastIntValue\n        }\n        if (isRegExpIdentifierPart(cp)) {\n            this._lastIntValue = cp\n            return true\n        }\n\n        if (this.index !== start) {\n            this.rewind(start)\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-AtomEscape\n    private eatAtomEscape(): boolean {\n        if (\n            this.eatBackreference() ||\n            this.eatCharacterClassEscape() ||\n            this.eatCharacterEscape() ||\n            (this._nFlag && this.eatKGroupName())\n        ) {\n            return true\n        }\n        if (this.strict || this._uFlag) {\n            this.raise(\"Invalid escape\")\n        }\n        return false\n    }\n\n    private eatBackreference(): boolean {\n        const start = this.index\n        if (this.eatDecimalEscape()) {\n            const n = this._lastIntValue\n            if (n <= this._numCapturingParens) {\n                this.onBackreference(start - 1, this.index, n)\n                return true\n            }\n            if (this.strict) {\n                this.raise(\"Invalid escape\")\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    private eatKGroupName(): boolean {\n        const start = this.index\n        if (this.eat(LatinSmallLetterK)) {\n            if (this.eatGroupName()) {\n                const groupName = this._lastStrValue\n                this._backreferenceNames.add(groupName)\n                this.onBackreference(start - 1, this.index, groupName)\n                return true\n            }\n            this.raise(\"Invalid named reference\")\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-CharacterEscape\n    private eatCharacterEscape(): boolean {\n        const start = this.index\n        if (\n            this.eatControlEscape() ||\n            this.eatCControlLetter() ||\n            this.eatZero() ||\n            this.eatHexEscapeSequence() ||\n            this.eatRegExpUnicodeEscapeSequence() ||\n            (!this.strict && this.eatLegacyOctalEscapeSequence()) ||\n            this.eatIdentityEscape()\n        ) {\n            this.onCharacter(start - 1, this.index, this._lastIntValue)\n            return true\n        }\n        return false\n    }\n\n    private eatCControlLetter(): boolean {\n        const start = this.index\n        if (this.eat(LatinSmallLetterC)) {\n            if (this.eatControlLetter()) {\n                return true\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    private eatZero(): boolean {\n        if (\n            this.currentCodePoint === DigitZero &&\n            !isDecimalDigit(this.nextCodePoint)\n        ) {\n            this._lastIntValue = 0\n            this.advance()\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\n    private eatControlEscape(): boolean {\n        if (this.eat(LatinSmallLetterT)) {\n            this._lastIntValue = CharacterTabulation\n            return true\n        }\n        if (this.eat(LatinSmallLetterN)) {\n            this._lastIntValue = LineFeed\n            return true\n        }\n        if (this.eat(LatinSmallLetterV)) {\n            this._lastIntValue = LineTabulation\n            return true\n        }\n        if (this.eat(LatinSmallLetterF)) {\n            this._lastIntValue = FormFeed\n            return true\n        }\n        if (this.eat(LatinSmallLetterR)) {\n            this._lastIntValue = CarriageReturn\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\n    private eatControlLetter(): boolean {\n        const cp = this.currentCodePoint\n        if (isLatinLetter(cp)) {\n            this.advance()\n            this._lastIntValue = cp % 0x20\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\n    //eslint-disable-next-line complexity\n    private eatRegExpUnicodeEscapeSequence(): boolean {\n        const start = this.index\n\n        if (this.eat(LatinSmallLetterU)) {\n            if (this.eatFixedHexDigits(4)) {\n                const lead = this._lastIntValue\n                if (this._uFlag && lead >= 0xd800 && lead <= 0xdbff) {\n                    const leadSurrogateEnd = this.index\n                    if (\n                        this.eat(ReverseSolidus) &&\n                        this.eat(LatinSmallLetterU) &&\n                        this.eatFixedHexDigits(4)\n                    ) {\n                        const trail = this._lastIntValue\n                        if (trail >= 0xdc00 && trail <= 0xdfff) {\n                            this._lastIntValue =\n                                (lead - 0xd800) * 0x400 +\n                                (trail - 0xdc00) +\n                                0x10000\n                            return true\n                        }\n                    }\n                    this.rewind(leadSurrogateEnd)\n                    this._lastIntValue = lead\n                }\n                return true\n            }\n            if (\n                this._uFlag &&\n                this.eat(LeftCurlyBracket) &&\n                this.eatHexDigits() &&\n                this.eat(RightCurlyBracket) &&\n                isValidUnicode(this._lastIntValue)\n            ) {\n                return true\n            }\n            if (this.strict || this._uFlag) {\n                this.raise(\"Invalid unicode escape\")\n            }\n            this.rewind(start)\n        }\n\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-IdentityEscape\n    private eatIdentityEscape(): boolean {\n        if (this._uFlag) {\n            if (this.eatSyntaxCharacter()) {\n                return true\n            }\n            if (this.eat(Solidus)) {\n                this._lastIntValue = Solidus\n                return true\n            }\n            return false\n        }\n\n        if (this.isValidIdentityEscape(this.currentCodePoint)) {\n            this._lastIntValue = this.currentCodePoint\n            this.advance()\n            return true\n        }\n\n        return false\n    }\n    private isValidIdentityEscape(cp: number): boolean {\n        if (cp === -1) {\n            return false\n        }\n        if (this.strict) {\n            return !isIdContinue(cp)\n        }\n        return (\n            cp !== LatinSmallLetterC &&\n            (!this._nFlag || cp !== LatinSmallLetterK)\n        )\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\n    private eatDecimalEscape(): boolean {\n        this._lastIntValue = 0\n        let cp = this.currentCodePoint\n        if (cp >= DigitOne && cp <= DigitNine) {\n            do {\n                this._lastIntValue = 10 * this._lastIntValue + (cp - DigitZero)\n                this.advance()\n            } while (\n                (cp = this.currentCodePoint) >= DigitZero &&\n                cp <= DigitNine\n            )\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\n    private eatCharacterClassEscape(): boolean {\n        const start = this.index\n\n        if (this.eat(LatinSmallLetterD)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"digit\", false)\n            return true\n        }\n        if (this.eat(LatinCapitalLetterD)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"digit\", true)\n            return true\n        }\n        if (this.eat(LatinSmallLetterS)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"space\", false)\n            return true\n        }\n        if (this.eat(LatinCapitalLetterS)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"space\", true)\n            return true\n        }\n        if (this.eat(LatinSmallLetterW)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"word\", false)\n            return true\n        }\n        if (this.eat(LatinCapitalLetterW)) {\n            this._lastIntValue = -1\n            this.onEscapeCharacterSet(start - 1, this.index, \"word\", true)\n            return true\n        }\n\n        let negate = false\n        if (\n            this._uFlag &&\n            this.ecmaVersion >= 2018 &&\n            (this.eat(LatinSmallLetterP) ||\n                (negate = this.eat(LatinCapitalLetterP)))\n        ) {\n            this._lastIntValue = -1\n            if (\n                this.eat(LeftCurlyBracket) &&\n                this.eatUnicodePropertyValueExpression() &&\n                this.eat(RightCurlyBracket)\n            ) {\n                this.onUnicodePropertyCharacterSet(\n                    start - 1,\n                    this.index,\n                    \"property\",\n                    this._lastKeyValue,\n                    this._lastValValue || null,\n                    negate,\n                )\n                return true\n            }\n            this.raise(\"Invalid property name\")\n        }\n\n        return false\n    }\n\n    // UnicodePropertyValueExpression ::\n    //   UnicodePropertyName `=` UnicodePropertyValue\n    //   LoneUnicodePropertyNameOrValue\n    private eatUnicodePropertyValueExpression(): boolean {\n        const start = this.index\n\n        // UnicodePropertyName `=` UnicodePropertyValue\n        if (this.eatUnicodePropertyName() && this.eat(EqualsSign)) {\n            this._lastKeyValue = this._lastStrValue\n            if (this.eatUnicodePropertyValue()) {\n                this._lastValValue = this._lastStrValue\n                if (\n                    isValidUnicodeProperty(\n                        this._lastKeyValue,\n                        this._lastValValue,\n                    )\n                ) {\n                    return true\n                }\n                this.raise(\"Invalid property name\")\n            }\n        }\n        this.rewind(start)\n\n        // LoneUnicodePropertyNameOrValue\n        if (this.eatLoneUnicodePropertyNameOrValue()) {\n            const nameOrValue = this._lastStrValue\n            if (isValidUnicodeProperty(\"General_Category\", nameOrValue)) {\n                this._lastKeyValue = \"General_Category\"\n                this._lastValValue = nameOrValue\n                return true\n            }\n            if (isValidUnicodePropertyName(nameOrValue)) {\n                this._lastKeyValue = nameOrValue\n                this._lastValValue = \"\"\n                return true\n            }\n            this.raise(\"Invalid property name\")\n        }\n        return false\n    }\n\n    // UnicodePropertyName ::\n    //   UnicodePropertyNameCharacters\n    private eatUnicodePropertyName(): boolean {\n        this._lastStrValue = \"\"\n        while (isUnicodePropertyNameCharacter(this.currentCodePoint)) {\n            this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n            this.advance()\n        }\n        return this._lastStrValue !== \"\"\n    }\n\n    // UnicodePropertyValue ::\n    //   UnicodePropertyValueCharacters\n    private eatUnicodePropertyValue(): boolean {\n        this._lastStrValue = \"\"\n        while (isUnicodePropertyValueCharacter(this.currentCodePoint)) {\n            this._lastStrValue += String.fromCodePoint(this.currentCodePoint)\n            this.advance()\n        }\n        return this._lastStrValue !== \"\"\n    }\n\n    // LoneUnicodePropertyNameOrValue ::\n    //   UnicodePropertyValueCharacters\n    private eatLoneUnicodePropertyNameOrValue(): boolean {\n        return this.eatUnicodePropertyValue()\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\n    private eatCharacterClass(): boolean {\n        const start = this.index\n        if (this.eat(LeftSquareBracket)) {\n            const negate = this.eat(CircumflexAccent)\n            this.onCharacterClassEnter(start, negate)\n            this.classRanges()\n            if (!this.eat(RightSquareBracket)) {\n                this.raise(\"Unterminated character class\")\n            }\n            this.onCharacterClassLeave(start, this.index, negate)\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\n    private classRanges(): void {\n        let start = this.index\n        while (this.eatClassAtom()) {\n            const left = this._lastIntValue\n            const hyphenStart = this.index\n            if (this.eat(HyphenMinus)) {\n                this.onCharacter(hyphenStart, this.index, HyphenMinus)\n\n                if (this.eatClassAtom()) {\n                    const right = this._lastIntValue\n\n                    if (left === -1 || right === -1) {\n                        if (this.strict) {\n                            this.raise(\"Invalid character class\")\n                        }\n                    } else if (left > right) {\n                        this.raise(\"Range out of order in character class\")\n                    } else {\n                        this.onCharacterClassRange(\n                            start,\n                            this.index,\n                            left,\n                            right,\n                        )\n                    }\n                }\n            }\n\n            start = this.index\n        }\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\n    private eatClassAtom(): boolean {\n        const start = this.index\n\n        if (this.eat(ReverseSolidus)) {\n            if (this.eatClassEscape()) {\n                return true\n            }\n            if (this._uFlag) {\n                this.raise(\"Invalid escape\")\n            }\n            this.rewind(start)\n        }\n\n        const cp = this.currentCodePoint\n        if (cp !== -1 && cp !== RightSquareBracket) {\n            this.advance()\n            this._lastIntValue = cp\n            this.onCharacter(start, this.index, cp)\n            return true\n        }\n\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassEscape\n    private eatClassEscape(): boolean {\n        const start = this.index\n\n        if (this.eat(LatinSmallLetterB)) {\n            this._lastIntValue = Backspace\n            this.onCharacter(start - 1, this.index, Backspace)\n            return true\n        }\n\n        if (this._uFlag && this.eat(HyphenMinus)) {\n            this._lastIntValue = HyphenMinus\n            this.onCharacter(start - 1, this.index, HyphenMinus)\n            return true\n        }\n\n        if (!this._uFlag && this.eat(LatinSmallLetterC)) {\n            if (this.eatClassControlLetter()) {\n                this.onCharacter(start - 1, this.index, this._lastIntValue)\n                return true\n            }\n            this.rewind(start)\n        }\n\n        return this.eatCharacterClassEscape() || this.eatCharacterEscape()\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-ClassControlLetter\n    private eatClassControlLetter(): boolean {\n        const cp = this.currentCodePoint\n        if (isDecimalDigit(cp) || cp === LowLine) {\n            this.advance()\n            this._lastIntValue = cp % 0x20\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n    private eatHexEscapeSequence(): boolean {\n        const start = this.index\n        if (this.eat(LatinSmallLetterX)) {\n            if (this.eatFixedHexDigits(2)) {\n                return true\n            }\n            if (this._uFlag) {\n                this.raise(\"Invalid escape\")\n            }\n            this.rewind(start)\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\n    private eatDecimalDigits(): boolean {\n        const start = this.index\n\n        this._lastIntValue = 0\n        while (isDecimalDigit(this.currentCodePoint)) {\n            this._lastIntValue =\n                10 * this._lastIntValue + digitToInt(this.currentCodePoint)\n            this.advance()\n        }\n\n        return this.index !== start\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\n    private eatHexDigits(): boolean {\n        const start = this.index\n        this._lastIntValue = 0\n        while (isHexDigit(this.currentCodePoint)) {\n            this._lastIntValue =\n                16 * this._lastIntValue + digitToInt(this.currentCodePoint)\n            this.advance()\n        }\n        return this.index !== start\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-strict-LegacyOctalEscapeSequence\n    // Allows only 0-377(octal) i.e. 0-255(decimal).\n    private eatLegacyOctalEscapeSequence(): boolean {\n        if (this.eatOctalDigit()) {\n            const n1 = this._lastIntValue\n            if (this.eatOctalDigit()) {\n                const n2 = this._lastIntValue\n                if (n1 <= 3 && this.eatOctalDigit()) {\n                    this._lastIntValue = n1 * 64 + n2 * 8 + this._lastIntValue\n                } else {\n                    this._lastIntValue = n1 * 8 + n2\n                }\n            } else {\n                this._lastIntValue = n1\n            }\n            return true\n        }\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\n    private eatOctalDigit(): boolean {\n        const cp = this.currentCodePoint\n        if (isOctalDigit(cp)) {\n            this.advance()\n            this._lastIntValue = cp - DigitZero\n            return true\n        }\n        this._lastIntValue = 0\n        return false\n    }\n\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n    // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n    // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\n    private eatFixedHexDigits(length: number): boolean {\n        const start = this.index\n        this._lastIntValue = 0\n        for (let i = 0; i < length; ++i) {\n            const cp = this.currentCodePoint\n            if (!isHexDigit(cp)) {\n                this.rewind(start)\n                return false\n            }\n            this._lastIntValue = 16 * this._lastIntValue + digitToInt(cp)\n            this.advance()\n        }\n        return true\n    }\n}\n","import {\n    Alternative,\n    Backreference,\n    CapturingGroup,\n    CharacterClass,\n    CharacterClassElement,\n    CharacterClassRange,\n    Flags,\n    Group,\n    RegExpLiteral,\n    LookaroundAssertion,\n    Pattern,\n    Quantifier,\n} from \"./ast\"\nimport { HyphenMinus } from \"./unicode\"\nimport { RegExpValidator } from \"./validator\"\n\ntype AppendableNode =\n    | Pattern\n    | Alternative\n    | Group\n    | CapturingGroup\n    | CharacterClass\n    | LookaroundAssertion\n\nconst DummyPattern = {} as Pattern\nconst DummyFlags = {} as Flags\nconst DummyCapturingGroup = {} as CapturingGroup\n\nclass RegExpParserState {\n    public readonly strict: boolean\n    public readonly ecmaVersion: 5 | 2015 | 2016 | 2017 | 2018\n    private _node: AppendableNode = DummyPattern\n    private _flags: Flags = DummyFlags\n    private _backreferences: Backreference[] = []\n    private _capturingGroups: CapturingGroup[] = []\n\n    public source = \"\"\n\n    public constructor(options?: RegExpParser.Options) {\n        this.strict = Boolean(options && options.strict)\n        this.ecmaVersion = (options && options.ecmaVersion) || 2018\n    }\n\n    public get pattern(): Pattern {\n        if (this._node.type !== \"Pattern\") {\n            throw new Error(\"UnknownError\")\n        }\n        return this._node\n    }\n\n    public get flags(): Flags {\n        if (this._flags.type !== \"Flags\") {\n            throw new Error(\"UnknownError\")\n        }\n        return this._flags\n    }\n\n    public onFlags(\n        start: number,\n        end: number,\n        global: boolean,\n        ignoreCase: boolean,\n        multiline: boolean,\n        unicode: boolean,\n        sticky: boolean,\n        dotAll: boolean,\n    ): void {\n        this._flags = {\n            type: \"Flags\",\n            parent: null,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            global,\n            ignoreCase,\n            multiline,\n            unicode,\n            sticky,\n            dotAll,\n        }\n    }\n\n    public onPatternEnter(start: number): void {\n        this._node = {\n            type: \"Pattern\",\n            parent: null,\n            start,\n            end: start,\n            raw: \"\",\n            alternatives: [],\n        }\n        this._backreferences.length = 0\n        this._capturingGroups.length = 0\n    }\n\n    public onPatternLeave(start: number, end: number): void {\n        this._node.end = end\n        this._node.raw = this.source.slice(start, end)\n\n        for (const reference of this._backreferences) {\n            const ref = reference.ref\n            const group =\n                typeof ref === \"number\"\n                    ? this._capturingGroups[ref - 1]\n                    : this._capturingGroups.find(g => g.name === ref)!\n            reference.resolved = group\n            group.references.push(reference)\n        }\n    }\n\n    public onAlternativeEnter(start: number): void {\n        const parent = this._node\n        if (\n            parent.type !== \"Assertion\" &&\n            parent.type !== \"CapturingGroup\" &&\n            parent.type !== \"Group\" &&\n            parent.type !== \"Pattern\"\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"Alternative\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            elements: [],\n        }\n        parent.alternatives.push(this._node)\n    }\n\n    public onAlternativeLeave(start: number, end: number): void {\n        const node = this._node\n        if (node.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onGroupEnter(start: number): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"Group\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            alternatives: [],\n        }\n        parent.elements.push(this._node)\n    }\n\n    public onGroupLeave(start: number, end: number): void {\n        const node = this._node\n        if (node.type !== \"Group\" || node.parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onCapturingGroupEnter(start: number, name: string | null): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"CapturingGroup\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            name,\n            alternatives: [],\n            references: [],\n        }\n        parent.elements.push(this._node)\n        this._capturingGroups.push(this._node)\n    }\n\n    public onCapturingGroupLeave(start: number, end: number): void {\n        const node = this._node\n        if (\n            node.type !== \"CapturingGroup\" ||\n            node.parent.type !== \"Alternative\"\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onQuantifier(\n        start: number,\n        end: number,\n        min: number,\n        max: number,\n        greedy: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        // Replace the last element.\n        const element = parent.elements.pop()\n        if (\n            element == null ||\n            element.type === \"Quantifier\" ||\n            (element.type === \"Assertion\" && element.kind !== \"lookahead\")\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        const node: Quantifier = {\n            type: \"Quantifier\",\n            parent,\n            start: element.start,\n            end,\n            raw: this.source.slice(element.start, end),\n            min,\n            max,\n            greedy,\n            element,\n        }\n        parent.elements.push(node)\n        element.parent = node\n    }\n\n    public onLookaroundAssertionEnter(\n        start: number,\n        kind: \"lookahead\" | \"lookbehind\",\n        negate: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"Assertion\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            kind,\n            negate,\n            alternatives: [],\n        } as LookaroundAssertion\n        parent.elements.push(this._node)\n    }\n\n    public onLookaroundAssertionLeave(start: number, end: number): void {\n        const node = this._node\n        if (node.type !== \"Assertion\" || node.parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onEdgeAssertion(\n        start: number,\n        end: number,\n        kind: \"start\" | \"end\",\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        parent.elements.push({\n            type: \"Assertion\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n        })\n    }\n\n    public onWordBoundaryAssertion(\n        start: number,\n        end: number,\n        kind: \"word\",\n        negate: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        parent.elements.push({\n            type: \"Assertion\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n            negate,\n        })\n    }\n\n    public onAnyCharacterSet(start: number, end: number, kind: \"any\"): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        parent.elements.push({\n            type: \"CharacterSet\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n        })\n    }\n\n    public onEscapeCharacterSet(\n        start: number,\n        end: number,\n        kind: \"digit\" | \"space\" | \"word\",\n        negate: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\" && parent.type !== \"CharacterClass\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        ;(parent.elements as CharacterClassElement[]).push({\n            type: \"CharacterSet\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n            negate,\n        })\n    }\n\n    public onUnicodePropertyCharacterSet(\n        start: number,\n        end: number,\n        kind: \"property\",\n        key: string,\n        value: string | null,\n        negate: boolean,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\" && parent.type !== \"CharacterClass\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        ;(parent.elements as CharacterClassElement[]).push({\n            type: \"CharacterSet\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            kind,\n            key,\n            value,\n            negate,\n        })\n    }\n\n    public onCharacter(start: number, end: number, value: number): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\" && parent.type !== \"CharacterClass\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        ;(parent.elements as CharacterClassElement[]).push({\n            type: \"Character\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            value,\n        })\n    }\n\n    public onBackreference(\n        start: number,\n        end: number,\n        ref: number | string,\n    ): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        const node: Backreference = {\n            type: \"Backreference\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            ref,\n            resolved: DummyCapturingGroup,\n        }\n        parent.elements.push(node)\n        this._backreferences.push(node)\n    }\n\n    public onCharacterClassEnter(start: number, negate: boolean): void {\n        const parent = this._node\n        if (parent.type !== \"Alternative\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        this._node = {\n            type: \"CharacterClass\",\n            parent,\n            start,\n            end: start,\n            raw: \"\",\n            negate,\n            elements: [],\n        }\n        parent.elements.push(this._node)\n    }\n\n    public onCharacterClassLeave(start: number, end: number): void {\n        const node = this._node\n        if (\n            node.type !== \"CharacterClass\" ||\n            node.parent.type !== \"Alternative\"\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        node.end = end\n        node.raw = this.source.slice(start, end)\n        this._node = node.parent\n    }\n\n    public onCharacterClassRange(start: number, end: number): void {\n        const parent = this._node\n        if (parent.type !== \"CharacterClass\") {\n            throw new Error(\"UnknownError\")\n        }\n\n        // Replace the last three elements.\n        const elements = parent.elements\n        const max = elements.pop()\n        const hyphen = elements.pop()\n        const min = elements.pop()\n        if (\n            !min ||\n            !max ||\n            !hyphen ||\n            min.type !== \"Character\" ||\n            max.type !== \"Character\" ||\n            hyphen.type !== \"Character\" ||\n            hyphen.value !== HyphenMinus\n        ) {\n            throw new Error(\"UnknownError\")\n        }\n\n        const node: CharacterClassRange = {\n            type: \"CharacterClassRange\",\n            parent,\n            start,\n            end,\n            raw: this.source.slice(start, end),\n            min,\n            max,\n        }\n        min.parent = node\n        max.parent = node\n        elements.push(node)\n    }\n}\n\nexport namespace RegExpParser {\n    /**\n     * The options for RegExpParser construction.\n     */\n    export interface Options {\n        /**\n         * The flag to disable Annex B syntax. Default is `false`.\n         */\n        strict?: boolean\n\n        /**\n         * ECMAScript version. Default is `2018`.\n         * - `2015` added `u` and `y` flags.\n         * - `2018` added `s` flag, Named Capturing Group, Lookbehind Assertion,\n         *   and Unicode Property Escape.\n         */\n        ecmaVersion?: 5 | 2015 | 2016 | 2017 | 2018\n    }\n}\n\nexport class RegExpParser {\n    private _state: RegExpParserState\n    private _validator: RegExpValidator\n\n    /**\n     * Initialize this parser.\n     * @param options The options of parser.\n     */\n    public constructor(options?: RegExpParser.Options) {\n        this._state = new RegExpParserState(options)\n        this._validator = new RegExpValidator(this._state)\n    }\n\n    /**\n     * Parse a regular expression literal. E.g. \"/abc/g\"\n     * @param source The source code to parse.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     * @returns The AST of the given regular expression.\n     */\n    public parseLiteral(\n        source: string,\n        start = 0,\n        end: number = source.length,\n    ): RegExpLiteral {\n        this._state.source = source\n        this._validator.validateLiteral(source, start, end)\n        const pattern = this._state.pattern\n        const flags = this._state.flags\n        const literal: RegExpLiteral = {\n            type: \"RegExpLiteral\",\n            parent: null,\n            start,\n            end,\n            raw: source,\n            pattern,\n            flags,\n        }\n        pattern.parent = literal\n        flags.parent = literal\n        return literal\n    }\n\n    /**\n     * Parse a regular expression flags. E.g. \"gim\"\n     * @param source The source code to parse.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     * @returns The AST of the given flags.\n     */\n    public parseFlags(\n        source: string,\n        start = 0,\n        end: number = source.length,\n    ): Flags {\n        this._state.source = source\n        this._validator.validateFlags(source, start, end)\n        return this._state.flags\n    }\n\n    /**\n     * Parse a regular expression pattern. E.g. \"abc\"\n     * @param source The source code to parse.\n     * @param start The start index in the source code.\n     * @param end The end index in the source code.\n     * @param uFlag The flag to set unicode mode.\n     * @returns The AST of the given pattern.\n     */\n    public parsePattern(\n        source: string,\n        start = 0,\n        end: number = source.length,\n        uFlag = false,\n    ): Pattern {\n        this._state.source = source\n        this._validator.validatePattern(source, start, end, uFlag)\n        return this._state.pattern\n    }\n}\n","import {\n    Alternative,\n    Assertion,\n    Backreference,\n    CapturingGroup,\n    Character,\n    CharacterClass,\n    CharacterClassRange,\n    CharacterSet,\n    Flags,\n    Group,\n    Node,\n    Pattern,\n    Quantifier,\n    RegExpLiteral,\n} from \"./ast\"\n\n/**\n * The visitor to walk on AST.\n */\nexport class RegExpVisitor {\n    private readonly _handlers: RegExpVisitor.Handlers\n\n    /**\n     * Initialize this visitor.\n     * @param handlers Callbacks for each node.\n     */\n    public constructor(handlers: RegExpVisitor.Handlers) {\n        this._handlers = handlers\n    }\n\n    /**\n     * Visit a given node and descendant nodes.\n     * @param node The root node to visit tree.\n     */\n    public visit(node: Node): void {\n        switch (node.type) {\n            case \"Alternative\":\n                this.visitAlternative(node)\n                break\n            case \"Assertion\":\n                this.visitAssertion(node)\n                break\n            case \"Backreference\":\n                this.visitBackreference(node)\n                break\n            case \"CapturingGroup\":\n                this.visitCapturingGroup(node)\n                break\n            case \"Character\":\n                this.visitCharacter(node)\n                break\n            case \"CharacterClass\":\n                this.visitCharacterClass(node)\n                break\n            case \"CharacterClassRange\":\n                this.visitCharacterClassRange(node)\n                break\n            case \"CharacterSet\":\n                this.visitCharacterSet(node)\n                break\n            case \"Flags\":\n                this.visitFlags(node)\n                break\n            case \"Group\":\n                this.visitGroup(node)\n                break\n            case \"Pattern\":\n                this.visitPattern(node)\n                break\n            case \"Quantifier\":\n                this.visitQuantifier(node)\n                break\n            case \"RegExpLiteral\":\n                this.visitRegExpLiteral(node)\n                break\n            default:\n                throw new Error(`Unknown type: ${(node as any).type}`)\n        }\n    }\n\n    private visitAlternative(node: Alternative): void {\n        if (this._handlers.onAlternativeEnter) {\n            this._handlers.onAlternativeEnter(node)\n        }\n        node.elements.forEach(this.visit, this)\n        if (this._handlers.onAlternativeLeave) {\n            this._handlers.onAlternativeLeave(node)\n        }\n    }\n    private visitAssertion(node: Assertion): void {\n        if (this._handlers.onAssertionEnter) {\n            this._handlers.onAssertionEnter(node)\n        }\n        if (node.kind === \"lookahead\" || node.kind === \"lookbehind\") {\n            node.alternatives.forEach(this.visit, this)\n        }\n        if (this._handlers.onAssertionLeave) {\n            this._handlers.onAssertionLeave(node)\n        }\n    }\n    private visitBackreference(node: Backreference): void {\n        if (this._handlers.onBackreferenceEnter) {\n            this._handlers.onBackreferenceEnter(node)\n        }\n        if (this._handlers.onBackreferenceLeave) {\n            this._handlers.onBackreferenceLeave(node)\n        }\n    }\n    private visitCapturingGroup(node: CapturingGroup): void {\n        if (this._handlers.onCapturingGroupEnter) {\n            this._handlers.onCapturingGroupEnter(node)\n        }\n        node.alternatives.forEach(this.visit, this)\n        if (this._handlers.onCapturingGroupLeave) {\n            this._handlers.onCapturingGroupLeave(node)\n        }\n    }\n    private visitCharacter(node: Character): void {\n        if (this._handlers.onCharacterEnter) {\n            this._handlers.onCharacterEnter(node)\n        }\n        if (this._handlers.onCharacterLeave) {\n            this._handlers.onCharacterLeave(node)\n        }\n    }\n    private visitCharacterClass(node: CharacterClass): void {\n        if (this._handlers.onCharacterClassEnter) {\n            this._handlers.onCharacterClassEnter(node)\n        }\n        node.elements.forEach(this.visit, this)\n        if (this._handlers.onCharacterClassLeave) {\n            this._handlers.onCharacterClassLeave(node)\n        }\n    }\n    private visitCharacterClassRange(node: CharacterClassRange): void {\n        if (this._handlers.onCharacterClassRangeEnter) {\n            this._handlers.onCharacterClassRangeEnter(node)\n        }\n        this.visitCharacter(node.min)\n        this.visitCharacter(node.max)\n        if (this._handlers.onCharacterClassRangeLeave) {\n            this._handlers.onCharacterClassRangeLeave(node)\n        }\n    }\n    private visitCharacterSet(node: CharacterSet): void {\n        if (this._handlers.onCharacterSetEnter) {\n            this._handlers.onCharacterSetEnter(node)\n        }\n        if (this._handlers.onCharacterSetLeave) {\n            this._handlers.onCharacterSetLeave(node)\n        }\n    }\n    private visitFlags(node: Flags): void {\n        if (this._handlers.onFlagsEnter) {\n            this._handlers.onFlagsEnter(node)\n        }\n        if (this._handlers.onFlagsLeave) {\n            this._handlers.onFlagsLeave(node)\n        }\n    }\n    private visitGroup(node: Group): void {\n        if (this._handlers.onGroupEnter) {\n            this._handlers.onGroupEnter(node)\n        }\n        node.alternatives.forEach(this.visit, this)\n        if (this._handlers.onGroupLeave) {\n            this._handlers.onGroupLeave(node)\n        }\n    }\n    private visitPattern(node: Pattern): void {\n        if (this._handlers.onPatternEnter) {\n            this._handlers.onPatternEnter(node)\n        }\n        node.alternatives.forEach(this.visit, this)\n        if (this._handlers.onPatternLeave) {\n            this._handlers.onPatternLeave(node)\n        }\n    }\n    private visitQuantifier(node: Quantifier): void {\n        if (this._handlers.onQuantifierEnter) {\n            this._handlers.onQuantifierEnter(node)\n        }\n        this.visit(node.element)\n        if (this._handlers.onQuantifierLeave) {\n            this._handlers.onQuantifierLeave(node)\n        }\n    }\n    private visitRegExpLiteral(node: RegExpLiteral): void {\n        if (this._handlers.onRegExpLiteralEnter) {\n            this._handlers.onRegExpLiteralEnter(node)\n        }\n        this.visitPattern(node.pattern)\n        this.visitFlags(node.flags)\n        if (this._handlers.onRegExpLiteralLeave) {\n            this._handlers.onRegExpLiteralLeave(node)\n        }\n    }\n}\n\nexport namespace RegExpVisitor {\n    export interface Handlers {\n        onAlternativeEnter?(node: Alternative): void\n        onAlternativeLeave?(node: Alternative): void\n        onAssertionEnter?(node: Assertion): void\n        onAssertionLeave?(node: Assertion): void\n        onBackreferenceEnter?(node: Backreference): void\n        onBackreferenceLeave?(node: Backreference): void\n        onCapturingGroupEnter?(node: CapturingGroup): void\n        onCapturingGroupLeave?(node: CapturingGroup): void\n        onCharacterEnter?(node: Character): void\n        onCharacterLeave?(node: Character): void\n        onCharacterClassEnter?(node: CharacterClass): void\n        onCharacterClassLeave?(node: CharacterClass): void\n        onCharacterClassRangeEnter?(node: CharacterClassRange): void\n        onCharacterClassRangeLeave?(node: CharacterClassRange): void\n        onCharacterSetEnter?(node: CharacterSet): void\n        onCharacterSetLeave?(node: CharacterSet): void\n        onFlagsEnter?(node: Flags): void\n        onFlagsLeave?(node: Flags): void\n        onGroupEnter?(node: Group): void\n        onGroupLeave?(node: Group): void\n        onPatternEnter?(node: Pattern): void\n        onPatternLeave?(node: Pattern): void\n        onQuantifierEnter?(node: Quantifier): void\n        onQuantifierLeave?(node: Quantifier): void\n        onRegExpLiteralEnter?(node: RegExpLiteral): void\n        onRegExpLiteralLeave?(node: RegExpLiteral): void\n    }\n}\n","import * as AST from \"./ast\"\nimport { RegExpParser } from \"./parser\"\nimport { RegExpValidator } from \"./validator\"\nimport { RegExpVisitor } from \"./visitor\"\n\nexport { AST, RegExpParser, RegExpValidator }\n\n/**\n * Parse a given regular expression literal then make AST object.\n * @param source The source code to parse.\n * @param options The options to parse.\n * @returns The AST of the regular expression.\n */\nexport function parseRegExpLiteral(\n    source: string | RegExp,\n    options?: RegExpParser.Options,\n): AST.RegExpLiteral {\n    return new RegExpParser(options).parseLiteral(String(source))\n}\n\n/**\n * Validate a given regular expression literal.\n * @param source The source code to validate.\n * @param options The options to validate.\n */\nexport function validateRegExpLiteral(\n    source: string,\n    options?: RegExpValidator.Options,\n): void {\n    return new RegExpValidator(options).validateLiteral(source)\n}\n\nexport function visitRegExpAST(\n    node: AST.Node,\n    handlers: RegExpVisitor.Handlers,\n): void {\n    new RegExpVisitor(handlers).visit(node)\n}\n"],"names":[],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/agent-base/dist/src/index.js-128-                timedOut = true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/agent-base/dist/src/index.js:129:                const err = new Error(`A "socket" was not created for HTTP request before ${timeoutMs}ms`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/agent-base/dist/src/index.js-130-                err.code = 'ETIMEOUT';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/agent-base/dist/src/index.js-165-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/agent-base/dist/src/index.js:166:                const err = new Error(`no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/agent-base/dist/src/index.js-167-                onerror(err);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-hooks-for-single-case.js-30-                            node: hookNode,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-hooks-for-single-case.js:31:                            message: `Unexpected use of Mocha \`${ hookNode.name }\` hook for a single test case`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-hooks-for-single-case.js-32-                        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-async-describe.js-60-                        node: fnArg,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-async-describe.js:61:                        message: `Unexpected async function in ${name}()`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-async-describe.js-62-                        fix(fixer) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/max-top-level-suites.js-47-                    node: topLevelDescribes[suiteLimit],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/max-top-level-suites.js:48:                    message: `The number of top-level suites is more than ${ suiteLimit }.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/max-top-level-suites.js-49-                });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/valid-test-description.js-62-                if (!hasValidOrNoTestDescription(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/valid-test-description.js:63:                    context.report(node, message || `Invalid "${ callee.name }()" description found.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/valid-test-description.js-64-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-sibling-hooks.js-39-                    node: node.callee,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-sibling-hooks.js:40:                    message: `Unexpected use of duplicate Mocha \`${ name }\` hook`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-sibling-hooks.js-41-                });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-top-level-hooks.js-23-                    node: node.callee,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-top-level-hooks.js:24:                    message: `Unexpected use of Mocha \`${ node.callee.name }\` hook outside of a test suite`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-top-level-hooks.js-25-                });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/prefer-arrow-callback.js-298-                            const arrowFunctionText =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/prefer-arrow-callback.js:299:                                `${asyncKeyword}${paramsFullText} => ${sourceCode.getText(node.body)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/prefer-arrow-callback.js-300-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/prefer-arrow-callback.js-313-                              replacedNode.parent.type !== 'ConditionalExpression';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/prefer-arrow-callback.js:314:                            const replacementText = needsParens ? `(${arrowFunctionText})` : arrowFunctionText;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/prefer-arrow-callback.js-315-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-hooks.js-10-                    node: node.callee,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-hooks.js:11:                    message: `Unexpected use of Mocha \`${ node.callee.name }\` hook`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-hooks.js-12-                });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/valid-suite-description.js-61-                if (!hasValidOrNoSuiteDescription(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/valid-suite-description.js:62:                    context.report(node, message || `Invalid "${ callee.name }()" description found.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/valid-suite-description.js-63-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js-27-        if (fn.params.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js:28:            paramsFullText = `(${ sourceCode.text.slice(fn.params[0].start, last(fn.params).end) })`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js-29-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js-30-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js:31:        return `${functionKeyword}${paramsFullText} `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js-32-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js-46-            [ fn.start, fn.end ],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js:47:            `${formatFunctionHead(fn)}{ return ${ bodyText }; }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js-48-        );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js-59-                        node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js:60:                        message: `Do not pass arrow functions to ${ name }()`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/rules/no-mocha-arrows.js-61-                        fix(fixer) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/util/ast.js-34-    if (node.type === 'MemberExpression') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/util/ast.js:35:        return `${getNodeName(node.object) }.${ getPropertyName(node.property)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/util/ast.js-36-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/util/settings.js-6-    return function (settings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/util/settings.js:7:        const value = settings[`mocha/${ propertyName}`];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-mocha/lib/util/settings.js-8-        const mochaSettings = settings.mocha || {};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/type-fest/readme.md-567-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/type-fest/readme.md:568:			console.log(`Created ${count + 1} instances of ${Constr.name} class`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/type-fest/readme.md-569-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/clustering.js-42-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/clustering.js:43:  debug(`clustering disabled ? ${disabled}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/clustering.js:44:  debug(`cluster.isMaster ? ${cluster.isMaster}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/clustering.js:45:  debug(`pm2 enabled ? ${pm2}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/clustering.js:46:  debug(`pm2InstanceVar = ${pm2InstanceVar}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/clustering.js:47:  debug(`process.env[${pm2InstanceVar}] = ${process.env[pm2InstanceVar]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/clustering.js-48-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/layouts.js-29-function colorizeStart(style) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/layouts.js:30:  return style ? `\x1B[${styles[style][0]}m` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/layouts.js-31-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/layouts.js-33-function colorizeEnd(style) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/layouts.js:34:  return style ? `\x1B[${styles[style][1]}m` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/layouts.js-35-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/layouts.js-296-        while (toPad.length < len) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/layouts.js:297:          toPad = ` ${toPad}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/layouts.js-298-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/connect-logger.js-64-    token: ':http-version',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/connect-logger.js:65:    replacement: `${req.httpVersionMajor}.${req.httpVersionMinor}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/connect-logger.js-66-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/logger.js-47-    this.parseCallStack = defaultParseCallStack;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/logger.js:48:    debug(`Logger created (${this.category}, ${this.level})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/logger.js-49-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/logger.js-78-  _log(level, data) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/logger.js:79:    debug(`sending log data (${level}) to appenders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/logger.js-80-    const loggingEvent = new LoggingEvent(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/logger.js-113-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/logger.js:114:  Logger.prototype[`is${isLevelMethod}Enabled`] = function () {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/logger.js-115-    return this.isLevelEnabled(level);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-18-  listeners.push(fn);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js:19:  debug(`Added listener, now ${listeners.length} listeners`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-20-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-23-  preProcessingListeners.push(fn);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js:24:  debug(`Added pre-processing listener, now ${preProcessingListeners.length} listeners`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-25-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-30-    if (test) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js:31:      throw new Error(`Problem with log4js configuration: (${util.inspect(config, { depth: 5 })})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js:32:        + ` - ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-33-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-40-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js:41:  debug(`Calling pre-processing listeners (${preProcessingListeners.length})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-42-  preProcessingListeners.forEach(listener => listener(candidate));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-44-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js:45:  debug(`Calling configuration listeners (${listeners.length})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/configuration.js-46-  listeners.forEach(listener => listener(candidate));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/recording.js-8-  return function (logEvent) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/recording.js:9:    debug(`received logEvent, number of events now ${recordedEvents.length + 1}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/recording.js-10-    debug('log event was ', logEvent);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/adapters.js-17-  if (validUnit.indexOf(unit) < 0 || !Number.isInteger(Number(value))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/adapters.js:18:    throw Error(`maxLogSize: "${maxLogSize}" is invalid`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/adapters.js-19-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-110-  function createSocket() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js:111:    debug(`worker appender creating socket to ${config.loggerHost || 'localhost'}:${config.loggerPort || 5000}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-112-    socket = net.createConnection(config.loggerPort || 5000, config.loggerHost || 'localhost');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-160-  let appender;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js:161:  debug(`configure with mode = ${config.mode}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-162-  if (config.mode === 'master') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-163-    if (!config.appender) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js:164:      debug(`no appender found in config ${config}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-165-      throw new Error('multiprocess master must have an "appender" defined');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-166-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js:167:    debug(`actual appender is ${config.appender}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-168-    appender = findAppender(config.appender);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-169-    if (!appender) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js:170:      debug(`actual appender "${config.appender}" not found`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js:171:      throw new Error(`multiprocess master appender "${config.appender}" not defined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/multiprocess.js-172-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp.js-13-    debug('Writing log event to socket');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp.js:14:    canWrite = socket.write(`${loggingEvent.serialise()}__LOG4JS__`, 'utf8');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp.js-15-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp.js-26-  function createSocket() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp.js:27:    debug(`appender creating socket to ${config.host || 'localhost'}:${config.port || 5000}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp.js-28-    socket = net.createConnection(config.port || 5000, config.host || 'localhost');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp.js-71-function configure(config) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp.js:72:  debug(`configure with config = ${config}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp.js-73-  return appender(config);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/stderr.js-4-  return (loggingEvent) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/stderr.js:5:    process.stderr.write(`${layout(loggingEvent, timezoneOffset)}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/stderr.js-6-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/noLogFilter.js-23-  return (logEvent) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/noLogFilter.js:24:    debug(`Checking data: ${logEvent.data} against filters: ${filters}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/noLogFilter.js-25-    if (typeof filters === 'string') {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/categoryFilter.js-7-  return (logEvent) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/categoryFilter.js:8:    debug(`Checking ${logEvent.categoryName} against ${excludes}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/categoryFilter.js-9-    if (excludes.indexOf(logEvent.categoryName) === -1) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-30-      e.code !== 'MODULE_NOT_FOUND',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:31:      `appender "${modulePath}" could not be loaded (error was: ${e})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-32-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-37-const loadAppenderModule = (type, config) => coreAppenders.get(type)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:38:  || tryLoading(`./${type}`, config)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-39-  || tryLoading(type, config)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-49-    configuration.not(appenderModule),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:50:    `appender "${name}" is not valid (type "${appenderConfig.type}" could not be found)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-51-  );
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-52-  if (appenderModule.appender) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:53:    debug(`DEPRECATION: Appender ${appenderConfig.type} exports an appender function.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-54-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-55-  if (appenderModule.shutdown) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:56:    debug(`DEPRECATION: Appender ${appenderConfig.type} exports a shutdown function.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-57-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-58-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:59:  debug(`${name}: clustering.isMaster ? ${clustering.isMaster()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:60:  debug(`${name}: appenderModule is ${require('util').inspect(appenderModule)}`); // eslint-disable-line
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-61-  return clustering.onlyOnMaster(() => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:62:    debug(`calling appenderModule.configure for ${name} / ${appenderConfig.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-63-    return appenderModule.configure(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-75-  Object.keys(config.appenders).forEach((name) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:76:    debug(`Creating appender ${name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-77-    appenders.set(name, createAppender(name, config));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-99-      configuration.not(config.appenders[name].type),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js:100:      `appender "${name}" is not valid (must be an object with property "type")`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/index.js-101-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-60-    const that = this;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js:61:    const nameMatcher = new RegExp(`^${path.basename(filename)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-62-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-67-    function index(filename_) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js:68:      return parseInt(filename_.substring((`${path.basename(filename)}.`).length), 10) || 0;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-69-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-83-      const idx = index(fileToRename);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js:84:      debug(`Index of ${fileToRename} is ${idx}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-85-      if (idx < that.backups) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-88-        try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js:89:          fs.unlinkSync(`${filename}.${idx + 1}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-90-        } catch (e) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-93-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js:94:        debug(`Renaming ${fileToRename} -> ${filename}.${idx + 1}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js:95:        fs.renameSync(path.join(path.dirname(filename), fileToRename), `${filename}.${idx + 1}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/fileSync.js-96-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/stdout.js-4-  return (loggingEvent) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/stdout.js:5:    process.stdout.write(`${layout(loggingEvent, timezoneOffset)}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/stdout.js-6-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp-server.js-38-    server.listen(config.port || 5000, config.host || 'localhost', () => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp-server.js:39:      debug(`listening on ${config.host || 'localhost'}:${config.port || 5000}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/appenders/tcp-server.js-40-      server.unref();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-95-      ],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:96:      `category "${name}" is not valid (must be an object with properties "appenders" and "level")`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-97-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-101-      configuration.not(Array.isArray(category.appenders)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:102:      `category "${name}" is not valid (appenders must be an array of appender names)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-103-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-107-      configuration.not(category.appenders.length),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:108:      `category "${name}" is not valid (appenders must contain at least one appender name)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-109-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-114-        typeof category.enableCallStack !== 'boolean',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:115:        `category "${name}" is not valid (enableCallStack must be boolean type)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-116-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-122-        configuration.not(appenders.get(appender)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:123:        `category "${name}" is not valid (appender "${appender}" is not defined)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-124-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-129-      configuration.not(levels.getLevel(category.level)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:130:      `category "${name}" is not valid (level "${category.level}" not recognised;`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:131:      + ` valid levels are ${levels.levels.join(', ')})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-132-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-150-      categoryAppenders.push(appenders.get(appender));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:151:      debug(`Creating category ${name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-152-      categories.set(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-167-const configForCategory = (category) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:168:  debug(`configForCategory: searching for config for ${category}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-169-  if (categories.has(category)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:170:    debug(`configForCategory: ${category} exists in config, returning it`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-171-    return categories.get(category);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-173-  if (category.indexOf('.') > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:174:    debug(`configForCategory: ${category} has hierarchy, searching for parents`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-175-    return configForCategory(category.substring(0, category.lastIndexOf('.')));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-185-  let categoryConfig = categories.get(category);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:186:  debug(`setLevelForCategory: found ${categoryConfig} for ${category}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-187-  if (!categoryConfig) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-189-    debug('setLevelForCategory: no config found for category, '
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js:190:      + `found ${sourceCategoryConfig} for parents of ${category}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/categories.js-191-    categoryConfig = { appenders: sourceCategoryConfig.appenders };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js-47-  if (filename) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js:48:    debug(`Loading configuration from ${filename}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js-49-    return JSON.parse(fs.readFileSync(filename, 'utf8'));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js-59-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js:60:  debug(`Configuration is ${configObject}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js-61-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js-91-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js:92:  debug(`Found ${shutdownFunctions} appenders with shutdown functions.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js-93-  function complete(err) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js-95-    completed += 1;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js:96:    debug(`Appender shutdowns complete: ${completed} / ${shutdownFunctions}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/log4js.js-97-    if (completed >= shutdownFunctions) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-118-        configuration.not(configuration.validIdentifier(l)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js:119:        `level name "${l}" is not a valid identifier (must start with a letter, only contain A-Z,a-z,0-9,_)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-120-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-123-        configuration.not(configuration.anObject(levelConfig[l])),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js:124:        `level "${l}" must be an object`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-125-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-128-        configuration.not(levelConfig[l].value),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js:129:        `level "${l}" must have a 'value' property`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-130-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-133-        configuration.not(configuration.anInteger(levelConfig[l].value)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js:134:        `level "${l}".value must have an integer value`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-135-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-138-        configuration.not(levelConfig[l].colour),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js:139:        `level "${l}" must have a 'colour' property`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-140-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-143-        configuration.not(validColours.indexOf(levelConfig[l].colour) > -1),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js:144:        `level "${l}".colour must be one of ${validColours.join(', ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/lib/levels.js-145-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/types/test.ts-130-log4js.connectLogger(logger2, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/types/test.ts:131:  format: (req, _res, format) => format(`:remote-addr - ${req.id} - ":method :url HTTP/:http-version" :status :content-length ":referrer" ":user-agent"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/log4js/types/test.ts-132-});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-35-    if (len > 2) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js:36:      return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-37-             expected[len - 1];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-38-    } else if (len === 2) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js:39:      return `one of ${thing} ${expected[0]} or ${expected[1]}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-40-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js:41:      return `of ${thing} ${expected[0]}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-42-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-43-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js:44:    return `of ${thing} ${String(expected)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-45-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-89-    // For cases like 'first argument'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js:90:    msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-91-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-92-    const type = includes(name, '.') ? 'property' : 'argument';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js:93:    msg = `The "${name}" ${type} ${determiner} ${oneOf(expected, 'type')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-94-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-95-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js:96:  msg += `. Received type ${typeof actual}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readable-stream/errors.js-97-  return msg;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/.tags-182-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:287
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/.tags:183:command	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      let command = customCmd.replace(\/(^|[^%])%s\/g, `$1${message}`);$/;"	variable	line:293
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/.tags-184-command	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        command = splitCmd.shift();$/;"	variable	line:296
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-195-        flag = flag || 'icon';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js:196:        args.push(`--${flag}`, image);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-197-        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-220-  if (options.priority) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js:221:    const priority = `${options.priority}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-222-    const checkindexOf = cmd.priority.range.indexOf(priority);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-286-      const message = options.title
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js:287:        ? `${options.title}: ${msg}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-288-        : msg;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js:289:      let command = customCmd.replace(/(^|[^%])%s/g, `$1${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-290-      const splitCmd = command.split(' ');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-311-  const now = new Date();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js:312:  const timestamp = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}.${now.getMilliseconds()}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-313-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js:314:  stderr += `[${timestamp}][node-growl] : Executed command '${cmdToExec}' with arguments '${args}'\n[stderr] : `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/lib/growl.js-315-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/.tags1-153-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:287
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/.tags1:154:command	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      let command = customCmd.replace(\/(^|[^%])%s\/g, `$1${message}`);$/;"	variable	line:293
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/growl/.tags1-155-command	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        command = splitCmd.shift();$/;"	variable	line:296
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/emoji-regex/README.md-34-  const emoji = match[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/emoji-regex/README.md:35:  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/emoji-regex/README.md-36-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cliui/node_modules/emoji-regex/README.md-34-  const emoji = match[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cliui/node_modules/emoji-regex/README.md:35:  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cliui/node_modules/emoji-regex/README.md-36-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.min.js:1:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function e(e,t){return e(t={exports:{}},t.exports),t.exports}var t=e((function(e,t){!function e(t){var r,n,s,o,a,i;function l(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?l(r):r);return n}function u(e,t){this.parent=e,this.key=t}function c(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function p(){}function f(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function h(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function d(e,t){return(new p).traverse(e,t)}function x(e,t){var r;return r=function(e,t){var r,n,s,o;for(n=e.length,s=0;n;)t(e[o=s+(r=n>>>1)])?n=r:(s=o+1,n-=r+1);return s}(t,(function(t){return t.range[0]>e.range[0]})),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},s={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n={Break:o={},Skip:a={},Remove:i={}},u.prototype.replace=function(e){this.parent[this.key]=e},u.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},p.prototype.path=function(){var e,t,r,n,s;function o(e,t){if(Array.isArray(t))for(r=0,n=t.length;r<n;++r)e.push(t[r]);else e.push(t)}if(!this.__current.path)return null;for(s=[],e=2,t=this.__leavelist.length;e<t;++e)o(s,this.__leavelist[e].path);return o(s,this.__current.path),s},p.prototype.type=function(){return this.current().type||this.__current.wrap},p.prototype.parents=function(){var e,t,r;for(r=[],e=1,t=this.__leavelist.length;e<t;++e)r.push(this.__leavelist[e].node);return r},p.prototype.current=function(){return this.__current.node},p.prototype.__execute=function(e,t){var r,n;return n=void 0,r=this.__current,this.__current=t,this.__state=null,e&&(n=e.call(this,t.node,this.__leavelist[this.__leavelist.length-1].node)),this.__current=r,n},p.prototype.notify=function(e){this.__state=e},p.prototype.skip=function(){this.notify(a)},p.prototype.break=function(){this.notify(o)},p.prototype.remove=function(){this.notify(i)},p.prototype.__initialize=function(e,t){this.visitor=t,this.root=e,this.__worklist=[],this.__leavelist=[],this.__current=null,this.__state=null,this.__fallback=null,"iteration"===t.fallback?this.__fallback=Object.keys:"function"==typeof t.fallback&&(this.__fallback=t.fallback),this.__keys=s,t.keys&&(this.__keys=Object.assign(Object.create(this.__keys),t.keys))},p.prototype.traverse=function(e,t){var r,n,s,i,l,u,p,d,x,m,y,g;for(this.__initialize(e,t),g={},r=this.__worklist,n=this.__leavelist,r.push(new c(e,null,null,null)),n.push(new c(null,null,null,null));r.length;)if((s=r.pop())!==g){if(s.node){if(u=this.__execute(t.enter,s),this.__state===o||u===o)return;if(r.push(g),n.push(s),this.__state===a||u===a)continue;if(l=(i=s.node).type||s.wrap,!(m=this.__keys[l])){if(!this.__fallback)throw new Error("Unknown node type "+l+".");m=this.__fallback(i)}for(d=m.length;(d-=1)>=0;)if(y=i[p=m[d]])if(Array.isArray(y)){for(x=y.length;(x-=1)>=0;)if(y[x]){if(h(l,m[d]))s=new c(y[x],[p,x],"Property",null);else{if(!f(y[x]))continue;s=new c(y[x],[p,x],null,null)}r.push(s)}}else f(y)&&r.push(new c(y,p,null,null))}}else if(s=n.pop(),u=this.__execute(t.leave,s),this.__state===o||u===o)return},p.prototype.replace=function(e,t){var r,n,s,l,p,d,x,m,y,g,v,A,E;function _(e){var t,n,s,o;if(e.ref.remove())for(n=e.ref.key,o=e.ref.parent,t=r.length;t--;)if((s=r[t]).ref&&s.ref.parent===o){if(s.ref.key<n)break;--s.ref.key}}for(this.__initialize(e,t),v={},r=this.__worklist,n=this.__leavelist,d=new c(e,null,null,new u(A={root:e},"root")),r.push(d),n.push(d);r.length;)if((d=r.pop())!==v){if(void 0!==(p=this.__execute(t.enter,d))&&p!==o&&p!==a&&p!==i&&(d.ref.replace(p),d.node=p),this.__state!==i&&p!==i||(_(d),d.node=null),this.__state===o||p===o)return A.root;if((s=d.node)&&(r.push(v),n.push(d),this.__state!==a&&p!==a)){if(l=s.type||d.wrap,!(y=this.__keys[l])){if(!this.__fallback)throw new Error("Unknown node type "+l+".");y=this.__fallback(s)}for(x=y.length;(x-=1)>=0;)if(g=s[E=y[x]])if(Array.isArray(g)){for(m=g.length;(m-=1)>=0;)if(g[m]){if(h(l,y[x]))d=new c(g[m],[E,m],"Property",new u(g,m));else{if(!f(g[m]))continue;d=new c(g[m],[E,m],null,new u(g,m))}r.push(d)}}else f(g)&&r.push(new c(g,E,null,new u(s,E)))}}else if(d=n.pop(),void 0!==(p=this.__execute(t.leave,d))&&p!==o&&p!==a&&p!==i&&d.ref.replace(p),this.__state!==i&&p!==i||_(d),this.__state===o||p===o)return A.root;return A.root},t.Syntax=r,t.traverse=d,t.replace=function(e,t){return(new p).replace(e,t)},t.attachComments=function(e,t,r){var s,o,a,i,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(a=0,o=t.length;a<o;a+=1)(s=l(t[a])).extendedRange=[0,e.range[0]],u.push(s);e.leadingComments=u}return e}for(a=0,o=t.length;a<o;a+=1)u.push(x(l(t[a]),r));return i=0,d(e,{enter:function(e){for(var t;i<u.length&&!((t=u[i]).extendedRange[1]>e.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(i,1)):i+=1;return i===u.length?n.Break:u[i].extendedRange[0]>e.range[1]?n.Skip:void 0}}),i=0,d(e,{leave:function(e){for(var t;i<u.length&&(t=u[i],!(e.range[1]<t.extendedRange[0]));)e.range[1]===t.extendedRange[0]?(e.trailingComments||(e.trailingComments=[]),e.trailingComments.push(t),u.splice(i,1)):i+=1;return i===u.length?n.Break:u[i].extendedRange[0]>e.range[1]?n.Skip:void 0}}),e},t.VisitorKeys=s,t.VisitorOption=n,t.Controller=p,t.cloneEnvironment=function(){return e({})},t}(t)})),r=e((function(e){e.exports&&(e.exports=function(){function e(t,r,n,s){this.message=t,this.expected=r,this.found=n,this.location=s,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+s(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?o(e.parts[t][0])+"-"+o(e.parts[t][1]):o(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function s(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function o(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return"Expected "+function(e){var t,n,s,o=new Array(e.length);for(t=0;t<e.length;t++)o[t]=(s=e[t],r[s.type](s));if(o.sort(),o.length>0){for(t=1,n=1;t<o.length;t++)o[t-1]!==o[t]&&(o[n]=o[t],n++);o.length=n}switch(o.length){case 1:return o[0];case 2:return o[0]+" or "+o[1];default:return o.slice(0,-1).join(", ")+", or "+o[o.length-1]}}(e)+" but "+function(e){return e?'"'+s(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,s,o,a,i={},l={start:Ee},u=Ee,c=me(" ",!1),p=/^[^ [\],():#!=><~+.]/,f=ye([" ","[","]",",","(",")",":","#","!","=",">","<","~","+","."],!0,!1),h=function(e){return e.join("")},d=me(">",!1),x=me("~",!1),m=me("+",!1),y=me(",",!1),g=me("!",!1),v=me("*",!1),A=me("#",!1),E=me("[",!1),_=me("]",!1),b=/^[><!]/,S=ye([">","<","!"],!1,!1),C=me("=",!1),w=function(e){return(e||"")+"="},P=/^[><]/,k=ye([">","<"],!1,!1),D=me(".",!1),I=function(e,t,r){return{type:"attribute",name:e,operator:t,value:r}},F=me('"',!1),j=/^[^\\"]/,T=ye(["\\",'"'],!0,!1),L=me("\\",!1),R={type:"any"},O=function(e,t){return e+t},B=function(e){return{type:"literal",value:(t=e.join(""),t.replace(/\\(.)/g,(function(e,t){switch(t){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";default:return t}})))};var t},M=me("'",!1),U=/^[^\\']/,V=ye(["\\","'"],!0,!1),q=/^[0-9]/,N=ye([["0","9"]],!1,!1),W=me("type(",!1),$=/^[^ )]/,G=ye([" ",")"],!0,!1),z=me(")",!1),K=/^[imsu]/,H=ye(["i","m","s","u"],!1,!1),Y=me("/",!1),J=/^[^\/]/,Q=ye(["/"],!0,!1),X=me(":not(",!1),Z=me(":matches(",!1),ee=me(":has(",!1),te=me(":first-child",!1),re=me(":last-child",!1),ne=me(":nth-child(",!1),se=me(":nth-last-child(",!1),oe=me(":",!1),ae=me("statement",!0),ie=me("expression",!0),le=me("declaration",!0),ue=me("function",!0),ce=me("pattern",!0),pe=0,fe=[{line:1,column:1}],he=0,de=[],xe={};if("startRule"in r){if(!(r.startRule in l))throw new Error("Can't start parsing from rule \""+r.startRule+'".');u=l[r.startRule]}function me(e,t){return{type:"literal",text:e,ignoreCase:t}}function ye(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function ge(e){var r,n=fe[e];if(n)return n;for(r=e-1;!fe[r];)r--;for(n={line:(n=fe[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return fe[e]=n,n}function ve(e,t){var r=ge(e),n=ge(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function Ae(e){pe<he||(pe>he&&(he=pe,de=[]),de.push(e))}function Ee(){var e,t,r,n,s=30*pe+0,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,(t=_e())!==i&&(r=Ce())!==i&&_e()!==i?e=t=1===(n=r).length?n[0]:{type:"matches",selectors:n}:(pe=e,e=i),e===i&&(e=pe,(t=_e())!==i&&(t=void 0),e=t),xe[s]={nextPos:pe,result:e},e)}function _e(){var e,r,n=30*pe+1,s=xe[n];if(s)return pe=s.nextPos,s.result;for(e=[],32===t.charCodeAt(pe)?(r=" ",pe++):(r=i,Ae(c));r!==i;)e.push(r),32===t.charCodeAt(pe)?(r=" ",pe++):(r=i,Ae(c));return xe[n]={nextPos:pe,result:e},e}function be(){var e,r,n,s=30*pe+2,o=xe[s];if(o)return pe=o.nextPos,o.result;if(r=[],p.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=i,Ae(f)),n!==i)for(;n!==i;)r.push(n),p.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=i,Ae(f));else r=i;return r!==i&&(r=h(r)),e=r,xe[s]={nextPos:pe,result:e},e}function Se(){var e,r,n,s=30*pe+3,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,(r=_e())!==i?(62===t.charCodeAt(pe)?(n=">",pe++):(n=i,Ae(d)),n!==i&&_e()!==i?e=r="child":(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,(r=_e())!==i?(126===t.charCodeAt(pe)?(n="~",pe++):(n=i,Ae(x)),n!==i&&_e()!==i?e=r="sibling":(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,(r=_e())!==i?(43===t.charCodeAt(pe)?(n="+",pe++):(n=i,Ae(m)),n!==i&&_e()!==i?e=r="adjacent":(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,32===t.charCodeAt(pe)?(r=" ",pe++):(r=i,Ae(c)),r!==i&&(n=_e())!==i?e=r="descendant":(pe=e,e=i)))),xe[s]={nextPos:pe,result:e},e)}function Ce(){var e,r,n,s,o,a,l,u,c=30*pe+4,p=xe[c];if(p)return pe=p.nextPos,p.result;if(e=pe,(r=we())!==i){for(n=[],s=pe,(o=_e())!==i?(44===t.charCodeAt(pe)?(a=",",pe++):(a=i,Ae(y)),a!==i&&(l=_e())!==i&&(u=we())!==i?s=o=[o,a,l,u]:(pe=s,s=i)):(pe=s,s=i);s!==i;)n.push(s),s=pe,(o=_e())!==i?(44===t.charCodeAt(pe)?(a=",",pe++):(a=i,Ae(y)),a!==i&&(l=_e())!==i&&(u=we())!==i?s=o=[o,a,l,u]:(pe=s,s=i)):(pe=s,s=i);n!==i?e=r=[r].concat(n.map((function(e){return e[3]}))):(pe=e,e=i)}else pe=e,e=i;return xe[c]={nextPos:pe,result:e},e}function we(){var e,t,r,n,s,o,a,l=30*pe+5,u=xe[l];if(u)return pe=u.nextPos,u.result;if(e=pe,(t=Pe())!==i){for(r=[],n=pe,(s=Se())!==i&&(o=Pe())!==i?n=s=[s,o]:(pe=n,n=i);n!==i;)r.push(n),n=pe,(s=Se())!==i&&(o=Pe())!==i?n=s=[s,o]:(pe=n,n=i);r!==i?(a=t,e=t=r.reduce((function(e,t){return{type:t[0],left:e,right:t[1]}}),a)):(pe=e,e=i)}else pe=e,e=i;return xe[l]={nextPos:pe,result:e},e}function Pe(){var e,r,n,s,o=30*pe+6,a=xe[o];if(a)return pe=a.nextPos,a.result;if(e=pe,33===t.charCodeAt(pe)?(r="!",pe++):(r=i,Ae(g)),r===i&&(r=null),r!==i){if(n=[],(s=ke())!==i)for(;s!==i;)n.push(s),s=ke();else n=i;n!==i?e=r=function(e,t){const r=1===t.length?t[0]:{type:"compound",selectors:t};return e&&(r.subject=!0),r}(r,n):(pe=e,e=i)}else pe=e,e=i;return xe[o]={nextPos:pe,result:e},e}function ke(){var e,r=30*pe+7,n=xe[r];return n?(pe=n.nextPos,n.result):((e=function(){var e,r,n=30*pe+8,s=xe[n];return s?(pe=s.nextPos,s.result):(42===t.charCodeAt(pe)?(r="*",pe++):(r=i,Ae(v)),r!==i&&(r={type:"wildcard",value:r}),e=r,xe[n]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s=30*pe+9,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,35===t.charCodeAt(pe)?(r="#",pe++):(r=i,Ae(A)),r===i&&(r=null),r!==i&&(n=be())!==i?e=r={type:"identifier",value:n}:(pe=e,e=i),xe[s]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o=30*pe+10,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,91===t.charCodeAt(pe)?(r="[",pe++):(r=i,Ae(E)),r!==i&&_e()!==i&&(n=function(){var e,r,n,s,o=30*pe+14,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,(r=De())!==i&&_e()!==i&&(n=function(){var e,r,n,s=30*pe+12,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,33===t.charCodeAt(pe)?(r="!",pe++):(r=i,Ae(g)),r===i&&(r=null),r!==i?(61===t.charCodeAt(pe)?(n="=",pe++):(n=i,Ae(C)),n!==i?(r=w(r),e=r):(pe=e,e=i)):(pe=e,e=i),xe[s]={nextPos:pe,result:e},e)}())!==i&&_e()!==i?((s=function(){var e,r,n,s,o,a=30*pe+18,l=xe[a];if(l)return pe=l.nextPos,l.result;if(e=pe,"type("===t.substr(pe,5)?(r="type(",pe+=5):(r=i,Ae(W)),r!==i)if(_e()!==i){if(n=[],$.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(G)),s!==i)for(;s!==i;)n.push(s),$.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(G));else n=i;n!==i&&(s=_e())!==i?(41===t.charCodeAt(pe)?(o=")",pe++):(o=i,Ae(z)),o!==i?(r={type:"type",value:n.join("")},e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;else pe=e,e=i;return xe[a]={nextPos:pe,result:e},e}())===i&&(s=function(){var e,r,n,s,o,a,l=30*pe+20,u=xe[l];if(u)return pe=u.nextPos,u.result;if(e=pe,47===t.charCodeAt(pe)?(r="/",pe++):(r=i,Ae(Y)),r!==i){if(n=[],J.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(Q)),s!==i)for(;s!==i;)n.push(s),J.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(Q));else n=i;n!==i?(47===t.charCodeAt(pe)?(s="/",pe++):(s=i,Ae(Y)),s!==i?((o=function(){var e,r,n=30*pe+19,s=xe[n];if(s)return pe=s.nextPos,s.result;if(e=[],K.test(t.charAt(pe))?(r=t.charAt(pe),pe++):(r=i,Ae(H)),r!==i)for(;r!==i;)e.push(r),K.test(t.charAt(pe))?(r=t.charAt(pe),pe++):(r=i,Ae(H));else e=i;return xe[n]={nextPos:pe,result:e},e}())===i&&(o=null),o!==i?(a=o,r={type:"regexp",value:new RegExp(n.join(""),a?a.join(""):"")},e=r):(pe=e,e=i)):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;return xe[l]={nextPos:pe,result:e},e}()),s!==i?(r=I(r,n,s),e=r):(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,(r=De())!==i&&_e()!==i&&(n=function(){var e,r,n,s=30*pe+11,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,b.test(t.charAt(pe))?(r=t.charAt(pe),pe++):(r=i,Ae(S)),r===i&&(r=null),r!==i?(61===t.charCodeAt(pe)?(n="=",pe++):(n=i,Ae(C)),n!==i?(r=w(r),e=r):(pe=e,e=i)):(pe=e,e=i),e===i&&(P.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=i,Ae(k))),xe[s]={nextPos:pe,result:e},e)}())!==i&&_e()!==i?((s=function(){var e,r,n,s,o,a,l=30*pe+15,u=xe[l];if(u)return pe=u.nextPos,u.result;if(e=pe,34===t.charCodeAt(pe)?(r='"',pe++):(r=i,Ae(F)),r!==i){for(n=[],j.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(T)),s===i&&(s=pe,92===t.charCodeAt(pe)?(o="\\",pe++):(o=i,Ae(L)),o!==i?(t.length>pe?(a=t.charAt(pe),pe++):(a=i,Ae(R)),a!==i?(o=O(o,a),s=o):(pe=s,s=i)):(pe=s,s=i));s!==i;)n.push(s),j.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(T)),s===i&&(s=pe,92===t.charCodeAt(pe)?(o="\\",pe++):(o=i,Ae(L)),o!==i?(t.length>pe?(a=t.charAt(pe),pe++):(a=i,Ae(R)),a!==i?(o=O(o,a),s=o):(pe=s,s=i)):(pe=s,s=i));n!==i?(34===t.charCodeAt(pe)?(s='"',pe++):(s=i,Ae(F)),s!==i?(r=B(n),e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;if(e===i)if(e=pe,39===t.charCodeAt(pe)?(r="'",pe++):(r=i,Ae(M)),r!==i){for(n=[],U.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(V)),s===i&&(s=pe,92===t.charCodeAt(pe)?(o="\\",pe++):(o=i,Ae(L)),o!==i?(t.length>pe?(a=t.charAt(pe),pe++):(a=i,Ae(R)),a!==i?(o=O(o,a),s=o):(pe=s,s=i)):(pe=s,s=i));s!==i;)n.push(s),U.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(V)),s===i&&(s=pe,92===t.charCodeAt(pe)?(o="\\",pe++):(o=i,Ae(L)),o!==i?(t.length>pe?(a=t.charAt(pe),pe++):(a=i,Ae(R)),a!==i?(o=O(o,a),s=o):(pe=s,s=i)):(pe=s,s=i));n!==i?(39===t.charCodeAt(pe)?(s="'",pe++):(s=i,Ae(M)),s!==i?(r=B(n),e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;return xe[l]={nextPos:pe,result:e},e}())===i&&(s=function(){var e,r,n,s,o=30*pe+16,a=xe[o];if(a)return pe=a.nextPos,a.result;for(e=pe,r=pe,n=[],q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));s!==i;)n.push(s),q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));if(n!==i?(46===t.charCodeAt(pe)?(s=".",pe++):(s=i,Ae(D)),s!==i?r=n=[n,s]:(pe=r,r=i)):(pe=r,r=i),r===i&&(r=null),r!==i){if(n=[],q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N)),s!==i)for(;s!==i;)n.push(s),q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));else n=i;n!==i?(r=function(e,t){const r=e?[].concat.apply([],e).join(""):"";return{type:"literal",value:parseFloat(r+t.join(""))}}(r,n),e=r):(pe=e,e=i)}else pe=e,e=i;return xe[o]={nextPos:pe,result:e},e}())===i&&(s=function(){var e,t,r=30*pe+17,n=xe[r];return n?(pe=n.nextPos,n.result):((t=be())!==i&&(t={type:"literal",value:t}),e=t,xe[r]={nextPos:pe,result:e},e)}()),s!==i?(r=I(r,n,s),e=r):(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,(r=De())!==i&&(r={type:"attribute",name:r}),e=r)),xe[o]={nextPos:pe,result:e},e)}())!==i&&_e()!==i?(93===t.charCodeAt(pe)?(s="]",pe++):(s=i,Ae(_)),s!==i?e=r=n:(pe=e,e=i)):(pe=e,e=i),xe[o]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o,a,l,u,c=30*pe+21,p=xe[c];if(p)return pe=p.nextPos,p.result;if(e=pe,46===t.charCodeAt(pe)?(r=".",pe++):(r=i,Ae(D)),r!==i)if((n=be())!==i){for(s=[],o=pe,46===t.charCodeAt(pe)?(a=".",pe++):(a=i,Ae(D)),a!==i&&(l=be())!==i?o=a=[a,l]:(pe=o,o=i);o!==i;)s.push(o),o=pe,46===t.charCodeAt(pe)?(a=".",pe++):(a=i,Ae(D)),a!==i&&(l=be())!==i?o=a=[a,l]:(pe=o,o=i);s!==i?(u=n,r={type:"field",name:s.reduce((function(e,t){return e+t[0]+t[1]}),u)},e=r):(pe=e,e=i)}else pe=e,e=i;else pe=e,e=i;return xe[c]={nextPos:pe,result:e},e}())===i&&(e=function(){var e,r,n,s,o=30*pe+22,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,":not("===t.substr(pe,5)?(r=":not(",pe+=5):(r=i,Ae(X)),r!==i&&_e()!==i&&(n=Ce())!==i&&_e()!==i?(41===t.charCodeAt(pe)?(s=")",pe++):(s=i,Ae(z)),s!==i?e=r={type:"not",selectors:n}:(pe=e,e=i)):(pe=e,e=i),xe[o]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o=30*pe+23,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,":matches("===t.substr(pe,9)?(r=":matches(",pe+=9):(r=i,Ae(Z)),r!==i&&_e()!==i&&(n=Ce())!==i&&_e()!==i?(41===t.charCodeAt(pe)?(s=")",pe++):(s=i,Ae(z)),s!==i?e=r={type:"matches",selectors:n}:(pe=e,e=i)):(pe=e,e=i),xe[o]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o=30*pe+24,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,":has("===t.substr(pe,5)?(r=":has(",pe+=5):(r=i,Ae(ee)),r!==i&&_e()!==i&&(n=Ce())!==i&&_e()!==i?(41===t.charCodeAt(pe)?(s=")",pe++):(s=i,Ae(z)),s!==i?e=r={type:"has",selectors:n}:(pe=e,e=i)):(pe=e,e=i),xe[o]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n=30*pe+25,s=xe[n];return s?(pe=s.nextPos,s.result):(":first-child"===t.substr(pe,12)?(r=":first-child",pe+=12):(r=i,Ae(te)),r!==i&&(r=Ie(1)),e=r,xe[n]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n=30*pe+26,s=xe[n];return s?(pe=s.nextPos,s.result):(":last-child"===t.substr(pe,11)?(r=":last-child",pe+=11):(r=i,Ae(re)),r!==i&&(r=Fe(1)),e=r,xe[n]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o,a=30*pe+27,l=xe[a];if(l)return pe=l.nextPos,l.result;if(e=pe,":nth-child("===t.substr(pe,11)?(r=":nth-child(",pe+=11):(r=i,Ae(ne)),r!==i)if(_e()!==i){if(n=[],q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N)),s!==i)for(;s!==i;)n.push(s),q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));else n=i;n!==i&&(s=_e())!==i?(41===t.charCodeAt(pe)?(o=")",pe++):(o=i,Ae(z)),o!==i?(r=Ie(parseInt(n.join(""),10)),e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;else pe=e,e=i;return xe[a]={nextPos:pe,result:e},e}())===i&&(e=function(){var e,r,n,s,o,a=30*pe+28,l=xe[a];if(l)return pe=l.nextPos,l.result;if(e=pe,":nth-last-child("===t.substr(pe,16)?(r=":nth-last-child(",pe+=16):(r=i,Ae(se)),r!==i)if(_e()!==i){if(n=[],q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N)),s!==i)for(;s!==i;)n.push(s),q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));else n=i;n!==i&&(s=_e())!==i?(41===t.charCodeAt(pe)?(o=")",pe++):(o=i,Ae(z)),o!==i?(r=Fe(parseInt(n.join(""),10)),e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;else pe=e,e=i;return xe[a]={nextPos:pe,result:e},e}())===i&&(e=function(){var e,r,n,s=30*pe+29,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,58===t.charCodeAt(pe)?(r=":",pe++):(r=i,Ae(oe)),r!==i?("statement"===t.substr(pe,9).toLowerCase()?(n=t.substr(pe,9),pe+=9):(n=i,Ae(ae)),n===i&&("expression"===t.substr(pe,10).toLowerCase()?(n=t.substr(pe,10),pe+=10):(n=i,Ae(ie)),n===i&&("declaration"===t.substr(pe,11).toLowerCase()?(n=t.substr(pe,11),pe+=11):(n=i,Ae(le)),n===i&&("function"===t.substr(pe,8).toLowerCase()?(n=t.substr(pe,8),pe+=8):(n=i,Ae(ue)),n===i&&("pattern"===t.substr(pe,7).toLowerCase()?(n=t.substr(pe,7),pe+=7):(n=i,Ae(ce)))))),n!==i?e=r={type:"class",name:n}:(pe=e,e=i)):(pe=e,e=i),xe[s]={nextPos:pe,result:e},e)}()),xe[r]={nextPos:pe,result:e},e)}function De(){var e,r,n,s=30*pe+13,o=xe[s];if(o)return pe=o.nextPos,o.result;if(r=[],(n=be())===i&&(46===t.charCodeAt(pe)?(n=".",pe++):(n=i,Ae(D))),n!==i)for(;n!==i;)r.push(n),(n=be())===i&&(46===t.charCodeAt(pe)?(n=".",pe++):(n=i,Ae(D)));else r=i;return r!==i&&(r=h(r)),e=r,xe[s]={nextPos:pe,result:e},e}function Ie(e){return{type:"nth-child",index:{type:"literal",value:e}}}function Fe(e){return{type:"nth-last-child",index:{type:"literal",value:e}}}if((n=u())!==i&&pe===t.length)return n;throw n!==i&&pe<t.length&&Ae({type:"end"}),s=de,o=he<t.length?t.charAt(he):null,a=he<t.length?ve(he,he+1):ve(he,he),new e(e.buildMessage(s,o),s,o,a)}}}())}));function n(e,r,i){if(!r)return!0;if(!e)return!1;switch(i||(i=[]),r.type){case"wildcard":return!0;case"identifier":return r.value.toLowerCase()===e.type.toLowerCase();case"field":{const t=r.name.split(".");return function e(t,r,n){if(0===n.length)return t===r;if(null==r)return!1;const s=r[n[0]],o=n.slice(1);if(Array.isArray(s)){for(let r=0,n=s.length;r<n;++r)if(e(t,s[r],o))return!0;return!1}return e(t,s,o)}(e,i[t.length-1],t)}case"matches":for(let t=0,s=r.selectors.length;t<s;++t)if(n(e,r.selectors[t],i))return!0;return!1;case"compound":for(let t=0,s=r.selectors.length;t<s;++t)if(!n(e,r.selectors[t],i))return!1;return!0;case"not":for(let t=0,s=r.selectors.length;t<s;++t)if(n(e,r.selectors[t],i))return!1;return!0;case"has":{const s=[];for(let o=0,a=r.selectors.length;o<a;++o){const a=[];t.traverse(e,{enter(e,t){null!=t&&a.unshift(t),n(e,r.selectors[o],a)&&s.push(e)},leave(){a.shift()},fallback:"iteration"})}return 0!==s.length}case"child":return!!n(e,r.right,i)&&n(i[0],r.left,i.slice(1));case"descendant":if(n(e,r.right,i))for(let e=0,t=i.length;e<t;++e)if(n(i[e],r.left,i.slice(e+1)))return!0;return!1;case"attribute":{const t=function(e,t){const r=t.split(".");for(let t=0;t<r.length;t++){if(null==e)return e;e=e[r[t]]}return e}(e,r.name);switch(r.operator){case void 0:return null!=t;case"=":switch(r.value.type){case"regexp":return"string"==typeof t&&r.value.value.test(t);case"literal":return`${r.value.value}`===`${t}`;case"type":return r.value.value===typeof t}throw new Error(`Unknown selector value type: ${r.value.type}`);case"!=":switch(r.value.type){case"regexp":return!r.value.value.test(t);case"literal":return`${r.value.value}`!==`${t}`;case"type":return r.value.value!==typeof t}throw new Error(`Unknown selector value type: ${r.value.type}`);case"<=":return t<=r.value.value;case"<":return t<r.value.value;case">":return t>r.value.value;case">=":return t>=r.value.value}throw new Error(`Unknown operator: ${r.operator}`)}case"sibling":return n(e,r.right,i)&&s(e,r.left,i,"LEFT_SIDE")||r.left.subject&&n(e,r.left,i)&&s(e,r.right,i,"RIGHT_SIDE");case"adjacent":return n(e,r.right,i)&&o(e,r.left,i,"LEFT_SIDE")||r.right.subject&&n(e,r.left,i)&&o(e,r.right,i,"RIGHT_SIDE");case"nth-child":return n(e,r.right,i)&&a(e,i,(function(){return r.index.value-1}));case"nth-last-child":return n(e,r.right,i)&&a(e,i,(function(e){return e-r.index.value}));case"class":switch(r.name.toLowerCase()){case"statement":if("Statement"===e.type.slice(-9))return!0;case"declaration":return"Declaration"===e.type.slice(-11);case"pattern":if("Pattern"===e.type.slice(-7))return!0;case"expression":return"Expression"===e.type.slice(-10)||"Literal"===e.type.slice(-7)||"Identifier"===e.type&&(0===i.length||"MetaProperty"!==i[0].type)||"MetaProperty"===e.type;case"function":return"FunctionDeclaration"===e.type||"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type}throw new Error(`Unknown class name: ${r.name}`)}throw new Error(`Unknown selector type: ${r.type}`)}function s(e,r,s,o){const[a]=s;if(!a)return!1;const i=t.VisitorKeys[a.type];for(let t=0,l=i.length;t<l;++t){const l=a[i[t]];if(Array.isArray(l)){const t=l.indexOf(e);if(t<0)continue;let a,i;"LEFT_SIDE"===o?(a=0,i=t):(a=t+1,i=l.length);for(let e=a;e<i;++e)if(n(l[e],r,s))return!0}}return!1}function o(e,r,s,o){const[a]=s;if(!a)return!1;const i=t.VisitorKeys[a.type];for(let t=0,l=i.length;t<l;++t){const l=a[i[t]];if(Array.isArray(l)){const t=l.indexOf(e);if(t<0)continue;if("LEFT_SIDE"===o&&t>0&&n(l[t-1],r,s))return!0;if("RIGHT_SIDE"===o&&t<l.length-1&&n(l[t+1],r,s))return!0}}return!1}function a(e,r,n){const[s]=r;if(!s)return!1;const o=t.VisitorKeys[s.type];for(let t=0,r=o.length;t<r;++t){const r=s[o[t]];if(Array.isArray(r)){const t=r.indexOf(e);if(t>=0&&t===n(r.length))return!0}}return!1}function i(e,r){const s=[],o=[];if(!r)return o;const a=function e(t,r){if(null==t||"object"!=typeof t)return[];null==r&&(r=t);const n=t.subject?[r]:[];for(const[s,o]of Object.entries(t))n.push(...e(o,"left"===s?o:r));return n}(r);return t.traverse(e,{enter(e,t){if(null!=t&&s.unshift(t),n(e,r,s))if(a.length)for(let t=0,r=a.length;t<r;++t){n(e,a[t],s)&&o.push(e);for(let e=0,r=s.length;e<r;++e)n(s[e],a[t],s.slice(e+1))&&o.push(s[e])}else o.push(e)},leave(){s.shift()},fallback:"iteration"}),o}function l(e){return r.parse(e)}function u(e,t){return i(e,l(t))}u.parse=l,u.match=i,u.matches=n,u.query=u;export default u;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.min.js-2-//# sourceMappingURL=esquery.esm.min.js.map
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3440-                        case 'regexp': return typeof p === 'string' && selector.value.value.test(p);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js:3441:                        case 'literal': return `${selector.value.value}` === `${p}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3442-                        case 'type': return selector.value.value === typeof p;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3443-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js:3444:                    throw new Error(`Unknown selector value type: ${selector.value.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3445-                case '!=':
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3447-                        case 'regexp': return !selector.value.value.test(p);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js:3448:                        case 'literal': return `${selector.value.value}` !== `${p}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3449-                        case 'type': return selector.value.value !== typeof p;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3450-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js:3451:                    throw new Error(`Unknown selector value type: ${selector.value.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3452-                case '<=': return p <= selector.value.value;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3456-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js:3457:            throw new Error(`Unknown operator: ${selector.operator}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3458-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3506-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js:3507:            throw new Error(`Unknown class name: ${selector.name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3508-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3509-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js:3510:    throw new Error(`Unknown selector type: ${selector.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.js-3511-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.min.js.map:1:{"version":3,"file":"esquery.min.js","sources":["../node_modules/estraverse/estraverse.js","../parser.js","../esquery.js"],"sourcesContent":["/*\n  Copyright (C) 2012-2013 Yusuke Suzuki <utatane.tea@gmail.com>\n  Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>\n\n  Redistribution and use in source and binary forms, with or without\n  modification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*jslint vars:false, bitwise:true*/\n/*jshint indent:4*/\n/*global exports:true*/\n(function clone(exports) {\n    'use strict';\n\n    var Syntax,\n        VisitorOption,\n        VisitorKeys,\n        BREAK,\n        SKIP,\n        REMOVE;\n\n    function deepCopy(obj) {\n        var ret = {}, key, val;\n        for (key in obj) {\n            if (obj.hasOwnProperty(key)) {\n                val = obj[key];\n                if (typeof val === 'object' && val !== null) {\n                    ret[key] = deepCopy(val);\n                } else {\n                    ret[key] = val;\n                }\n            }\n        }\n        return ret;\n    }\n\n    // based on LLVM libc++ upper_bound / lower_bound\n    // MIT License\n\n    function upperBound(array, func) {\n        var diff, len, i, current;\n\n        len = array.length;\n        i = 0;\n\n        while (len) {\n            diff = len >>> 1;\n            current = i + diff;\n            if (func(array[current])) {\n                len = diff;\n            } else {\n                i = current + 1;\n                len -= diff + 1;\n            }\n        }\n        return i;\n    }\n\n    Syntax = {\n        AssignmentExpression: 'AssignmentExpression',\n        AssignmentPattern: 'AssignmentPattern',\n        ArrayExpression: 'ArrayExpression',\n        ArrayPattern: 'ArrayPattern',\n        ArrowFunctionExpression: 'ArrowFunctionExpression',\n        AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.\n        BlockStatement: 'BlockStatement',\n        BinaryExpression: 'BinaryExpression',\n        BreakStatement: 'BreakStatement',\n        CallExpression: 'CallExpression',\n        CatchClause: 'CatchClause',\n        ClassBody: 'ClassBody',\n        ClassDeclaration: 'ClassDeclaration',\n        ClassExpression: 'ClassExpression',\n        ComprehensionBlock: 'ComprehensionBlock',  // CAUTION: It's deferred to ES7.\n        ComprehensionExpression: 'ComprehensionExpression',  // CAUTION: It's deferred to ES7.\n        ConditionalExpression: 'ConditionalExpression',\n        ContinueStatement: 'ContinueStatement',\n        DebuggerStatement: 'DebuggerStatement',\n        DirectiveStatement: 'DirectiveStatement',\n        DoWhileStatement: 'DoWhileStatement',\n        EmptyStatement: 'EmptyStatement',\n        ExportAllDeclaration: 'ExportAllDeclaration',\n        ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n        ExportNamedDeclaration: 'ExportNamedDeclaration',\n        ExportSpecifier: 'ExportSpecifier',\n        ExpressionStatement: 'ExpressionStatement',\n        ForStatement: 'ForStatement',\n        ForInStatement: 'ForInStatement',\n        ForOfStatement: 'ForOfStatement',\n        FunctionDeclaration: 'FunctionDeclaration',\n        FunctionExpression: 'FunctionExpression',\n        GeneratorExpression: 'GeneratorExpression',  // CAUTION: It's deferred to ES7.\n        Identifier: 'Identifier',\n        IfStatement: 'IfStatement',\n        ImportExpression: 'ImportExpression',\n        ImportDeclaration: 'ImportDeclaration',\n        ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n        ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n        ImportSpecifier: 'ImportSpecifier',\n        Literal: 'Literal',\n        LabeledStatement: 'LabeledStatement',\n        LogicalExpression: 'LogicalExpression',\n        MemberExpression: 'MemberExpression',\n        MetaProperty: 'MetaProperty',\n        MethodDefinition: 'MethodDefinition',\n        ModuleSpecifier: 'ModuleSpecifier',\n        NewExpression: 'NewExpression',\n        ObjectExpression: 'ObjectExpression',\n        ObjectPattern: 'ObjectPattern',\n        Program: 'Program',\n        Property: 'Property',\n        RestElement: 'RestElement',\n        ReturnStatement: 'ReturnStatement',\n        SequenceExpression: 'SequenceExpression',\n        SpreadElement: 'SpreadElement',\n        Super: 'Super',\n        SwitchStatement: 'SwitchStatement',\n        SwitchCase: 'SwitchCase',\n        TaggedTemplateExpression: 'TaggedTemplateExpression',\n        TemplateElement: 'TemplateElement',\n        TemplateLiteral: 'TemplateLiteral',\n        ThisExpression: 'ThisExpression',\n        ThrowStatement: 'ThrowStatement',\n        TryStatement: 'TryStatement',\n        UnaryExpression: 'UnaryExpression',\n        UpdateExpression: 'UpdateExpression',\n        VariableDeclaration: 'VariableDeclaration',\n        VariableDeclarator: 'VariableDeclarator',\n        WhileStatement: 'WhileStatement',\n        WithStatement: 'WithStatement',\n        YieldExpression: 'YieldExpression'\n    };\n\n    VisitorKeys = {\n        AssignmentExpression: ['left', 'right'],\n        AssignmentPattern: ['left', 'right'],\n        ArrayExpression: ['elements'],\n        ArrayPattern: ['elements'],\n        ArrowFunctionExpression: ['params', 'body'],\n        AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.\n        BlockStatement: ['body'],\n        BinaryExpression: ['left', 'right'],\n        BreakStatement: ['label'],\n        CallExpression: ['callee', 'arguments'],\n        CatchClause: ['param', 'body'],\n        ClassBody: ['body'],\n        ClassDeclaration: ['id', 'superClass', 'body'],\n        ClassExpression: ['id', 'superClass', 'body'],\n        ComprehensionBlock: ['left', 'right'],  // CAUTION: It's deferred to ES7.\n        ComprehensionExpression: ['blocks', 'filter', 'body'],  // CAUTION: It's deferred to ES7.\n        ConditionalExpression: ['test', 'consequent', 'alternate'],\n        ContinueStatement: ['label'],\n        DebuggerStatement: [],\n        DirectiveStatement: [],\n        DoWhileStatement: ['body', 'test'],\n        EmptyStatement: [],\n        ExportAllDeclaration: ['source'],\n        ExportDefaultDeclaration: ['declaration'],\n        ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],\n        ExportSpecifier: ['exported', 'local'],\n        ExpressionStatement: ['expression'],\n        ForStatement: ['init', 'test', 'update', 'body'],\n        ForInStatement: ['left', 'right', 'body'],\n        ForOfStatement: ['left', 'right', 'body'],\n        FunctionDeclaration: ['id', 'params', 'body'],\n        FunctionExpression: ['id', 'params', 'body'],\n        GeneratorExpression: ['blocks', 'filter', 'body'],  // CAUTION: It's deferred to ES7.\n        Identifier: [],\n        IfStatement: ['test', 'consequent', 'alternate'],\n        ImportExpression: ['source'],\n        ImportDeclaration: ['specifiers', 'source'],\n        ImportDefaultSpecifier: ['local'],\n        ImportNamespaceSpecifier: ['local'],\n        ImportSpecifier: ['imported', 'local'],\n        Literal: [],\n        LabeledStatement: ['label', 'body'],\n        LogicalExpression: ['left', 'right'],\n        MemberExpression: ['object', 'property'],\n        MetaProperty: ['meta', 'property'],\n        MethodDefinition: ['key', 'value'],\n        ModuleSpecifier: [],\n        NewExpression: ['callee', 'arguments'],\n        ObjectExpression: ['properties'],\n        ObjectPattern: ['properties'],\n        Program: ['body'],\n        Property: ['key', 'value'],\n        RestElement: [ 'argument' ],\n        ReturnStatement: ['argument'],\n        SequenceExpression: ['expressions'],\n        SpreadElement: ['argument'],\n        Super: [],\n        SwitchStatement: ['discriminant', 'cases'],\n        SwitchCase: ['test', 'consequent'],\n        TaggedTemplateExpression: ['tag', 'quasi'],\n        TemplateElement: [],\n        TemplateLiteral: ['quasis', 'expressions'],\n        ThisExpression: [],\n        ThrowStatement: ['argument'],\n        TryStatement: ['block', 'handler', 'finalizer'],\n        UnaryExpression: ['argument'],\n        UpdateExpression: ['argument'],\n        VariableDeclaration: ['declarations'],\n        VariableDeclarator: ['id', 'init'],\n        WhileStatement: ['test', 'body'],\n        WithStatement: ['object', 'body'],\n        YieldExpression: ['argument']\n    };\n\n    // unique id\n    BREAK = {};\n    SKIP = {};\n    REMOVE = {};\n\n    VisitorOption = {\n        Break: BREAK,\n        Skip: SKIP,\n        Remove: REMOVE\n    };\n\n    function Reference(parent, key) {\n        this.parent = parent;\n        this.key = key;\n    }\n\n    Reference.prototype.replace = function replace(node) {\n        this.parent[this.key] = node;\n    };\n\n    Reference.prototype.remove = function remove() {\n        if (Array.isArray(this.parent)) {\n            this.parent.splice(this.key, 1);\n            return true;\n        } else {\n            this.replace(null);\n            return false;\n        }\n    };\n\n    function Element(node, path, wrap, ref) {\n        this.node = node;\n        this.path = path;\n        this.wrap = wrap;\n        this.ref = ref;\n    }\n\n    function Controller() { }\n\n    // API:\n    // return property path array from root to current node\n    Controller.prototype.path = function path() {\n        var i, iz, j, jz, result, element;\n\n        function addToPath(result, path) {\n            if (Array.isArray(path)) {\n                for (j = 0, jz = path.length; j < jz; ++j) {\n                    result.push(path[j]);\n                }\n            } else {\n                result.push(path);\n            }\n        }\n\n        // root node\n        if (!this.__current.path) {\n            return null;\n        }\n\n        // first node is sentinel, second node is root element\n        result = [];\n        for (i = 2, iz = this.__leavelist.length; i < iz; ++i) {\n            element = this.__leavelist[i];\n            addToPath(result, element.path);\n        }\n        addToPath(result, this.__current.path);\n        return result;\n    };\n\n    // API:\n    // return type of current node\n    Controller.prototype.type = function () {\n        var node = this.current();\n        return node.type || this.__current.wrap;\n    };\n\n    // API:\n    // return array of parent elements\n    Controller.prototype.parents = function parents() {\n        var i, iz, result;\n\n        // first node is sentinel\n        result = [];\n        for (i = 1, iz = this.__leavelist.length; i < iz; ++i) {\n            result.push(this.__leavelist[i].node);\n        }\n\n        return result;\n    };\n\n    // API:\n    // return current node\n    Controller.prototype.current = function current() {\n        return this.__current.node;\n    };\n\n    Controller.prototype.__execute = function __execute(callback, element) {\n        var previous, result;\n\n        result = undefined;\n\n        previous  = this.__current;\n        this.__current = element;\n        this.__state = null;\n        if (callback) {\n            result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node);\n        }\n        this.__current = previous;\n\n        return result;\n    };\n\n    // API:\n    // notify control skip / break\n    Controller.prototype.notify = function notify(flag) {\n        this.__state = flag;\n    };\n\n    // API:\n    // skip child nodes of current node\n    Controller.prototype.skip = function () {\n        this.notify(SKIP);\n    };\n\n    // API:\n    // break traversals\n    Controller.prototype['break'] = function () {\n        this.notify(BREAK);\n    };\n\n    // API:\n    // remove node\n    Controller.prototype.remove = function () {\n        this.notify(REMOVE);\n    };\n\n    Controller.prototype.__initialize = function(root, visitor) {\n        this.visitor = visitor;\n        this.root = root;\n        this.__worklist = [];\n        this.__leavelist = [];\n        this.__current = null;\n        this.__state = null;\n        this.__fallback = null;\n        if (visitor.fallback === 'iteration') {\n            this.__fallback = Object.keys;\n        } else if (typeof visitor.fallback === 'function') {\n            this.__fallback = visitor.fallback;\n        }\n\n        this.__keys = VisitorKeys;\n        if (visitor.keys) {\n            this.__keys = Object.assign(Object.create(this.__keys), visitor.keys);\n        }\n    };\n\n    function isNode(node) {\n        if (node == null) {\n            return false;\n        }\n        return typeof node === 'object' && typeof node.type === 'string';\n    }\n\n    function isProperty(nodeType, key) {\n        return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key;\n    }\n\n    Controller.prototype.traverse = function traverse(root, visitor) {\n        var worklist,\n            leavelist,\n            element,\n            node,\n            nodeType,\n            ret,\n            key,\n            current,\n            current2,\n            candidates,\n            candidate,\n            sentinel;\n\n        this.__initialize(root, visitor);\n\n        sentinel = {};\n\n        // reference\n        worklist = this.__worklist;\n        leavelist = this.__leavelist;\n\n        // initialize\n        worklist.push(new Element(root, null, null, null));\n        leavelist.push(new Element(null, null, null, null));\n\n        while (worklist.length) {\n            element = worklist.pop();\n\n            if (element === sentinel) {\n                element = leavelist.pop();\n\n                ret = this.__execute(visitor.leave, element);\n\n                if (this.__state === BREAK || ret === BREAK) {\n                    return;\n                }\n                continue;\n            }\n\n            if (element.node) {\n\n                ret = this.__execute(visitor.enter, element);\n\n                if (this.__state === BREAK || ret === BREAK) {\n                    return;\n                }\n\n                worklist.push(sentinel);\n                leavelist.push(element);\n\n                if (this.__state === SKIP || ret === SKIP) {\n                    continue;\n                }\n\n                node = element.node;\n                nodeType = node.type || element.wrap;\n                candidates = this.__keys[nodeType];\n                if (!candidates) {\n                    if (this.__fallback) {\n                        candidates = this.__fallback(node);\n                    } else {\n                        throw new Error('Unknown node type ' + nodeType + '.');\n                    }\n                }\n\n                current = candidates.length;\n                while ((current -= 1) >= 0) {\n                    key = candidates[current];\n                    candidate = node[key];\n                    if (!candidate) {\n                        continue;\n                    }\n\n                    if (Array.isArray(candidate)) {\n                        current2 = candidate.length;\n                        while ((current2 -= 1) >= 0) {\n                            if (!candidate[current2]) {\n                                continue;\n                            }\n                            if (isProperty(nodeType, candidates[current])) {\n                                element = new Element(candidate[current2], [key, current2], 'Property', null);\n                            } else if (isNode(candidate[current2])) {\n                                element = new Element(candidate[current2], [key, current2], null, null);\n                            } else {\n                                continue;\n                            }\n                            worklist.push(element);\n                        }\n                    } else if (isNode(candidate)) {\n                        worklist.push(new Element(candidate, key, null, null));\n                    }\n                }\n            }\n        }\n    };\n\n    Controller.prototype.replace = function replace(root, visitor) {\n        var worklist,\n            leavelist,\n            node,\n            nodeType,\n            target,\n            element,\n            current,\n            current2,\n            candidates,\n            candidate,\n            sentinel,\n            outer,\n            key;\n\n        function removeElem(element) {\n            var i,\n                key,\n                nextElem,\n                parent;\n\n            if (element.ref.remove()) {\n                // When the reference is an element of an array.\n                key = element.ref.key;\n                parent = element.ref.parent;\n\n                // If removed from array, then decrease following items' keys.\n                i = worklist.length;\n                while (i--) {\n                    nextElem = worklist[i];\n                    if (nextElem.ref && nextElem.ref.parent === parent) {\n                        if  (nextElem.ref.key < key) {\n                            break;\n                        }\n                        --nextElem.ref.key;\n                    }\n                }\n            }\n        }\n\n        this.__initialize(root, visitor);\n\n        sentinel = {};\n\n        // reference\n        worklist = this.__worklist;\n        leavelist = this.__leavelist;\n\n        // initialize\n        outer = {\n            root: root\n        };\n        element = new Element(root, null, null, new Reference(outer, 'root'));\n        worklist.push(element);\n        leavelist.push(element);\n\n        while (worklist.length) {\n            element = worklist.pop();\n\n            if (element === sentinel) {\n                element = leavelist.pop();\n\n                target = this.__execute(visitor.leave, element);\n\n                // node may be replaced with null,\n                // so distinguish between undefined and null in this place\n                if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n                    // replace\n                    element.ref.replace(target);\n                }\n\n                if (this.__state === REMOVE || target === REMOVE) {\n                    removeElem(element);\n                }\n\n                if (this.__state === BREAK || target === BREAK) {\n                    return outer.root;\n                }\n                continue;\n            }\n\n            target = this.__execute(visitor.enter, element);\n\n            // node may be replaced with null,\n            // so distinguish between undefined and null in this place\n            if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n                // replace\n                element.ref.replace(target);\n                element.node = target;\n            }\n\n            if (this.__state === REMOVE || target === REMOVE) {\n                removeElem(element);\n                element.node = null;\n            }\n\n            if (this.__state === BREAK || target === BREAK) {\n                return outer.root;\n            }\n\n            // node may be null\n            node = element.node;\n            if (!node) {\n                continue;\n            }\n\n            worklist.push(sentinel);\n            leavelist.push(element);\n\n            if (this.__state === SKIP || target === SKIP) {\n                continue;\n            }\n\n            nodeType = node.type || element.wrap;\n            candidates = this.__keys[nodeType];\n            if (!candidates) {\n                if (this.__fallback) {\n                    candidates = this.__fallback(node);\n                } else {\n                    throw new Error('Unknown node type ' + nodeType + '.');\n                }\n            }\n\n            current = candidates.length;\n            while ((current -= 1) >= 0) {\n                key = candidates[current];\n                candidate = node[key];\n                if (!candidate) {\n                    continue;\n                }\n\n                if (Array.isArray(candidate)) {\n                    current2 = candidate.length;\n                    while ((current2 -= 1) >= 0) {\n                        if (!candidate[current2]) {\n                            continue;\n                        }\n                        if (isProperty(nodeType, candidates[current])) {\n                            element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2));\n                        } else if (isNode(candidate[current2])) {\n                            element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2));\n                        } else {\n                            continue;\n                        }\n                        worklist.push(element);\n                    }\n                } else if (isNode(candidate)) {\n                    worklist.push(new Element(candidate, key, null, new Reference(node, key)));\n                }\n            }\n        }\n\n        return outer.root;\n    };\n\n    function traverse(root, visitor) {\n        var controller = new Controller();\n        return controller.traverse(root, visitor);\n    }\n\n    function replace(root, visitor) {\n        var controller = new Controller();\n        return controller.replace(root, visitor);\n    }\n\n    function extendCommentRange(comment, tokens) {\n        var target;\n\n        target = upperBound(tokens, function search(token) {\n            return token.range[0] > comment.range[0];\n        });\n\n        comment.extendedRange = [comment.range[0], comment.range[1]];\n\n        if (target !== tokens.length) {\n            comment.extendedRange[1] = tokens[target].range[0];\n        }\n\n        target -= 1;\n        if (target >= 0) {\n            comment.extendedRange[0] = tokens[target].range[1];\n        }\n\n        return comment;\n    }\n\n    function attachComments(tree, providedComments, tokens) {\n        // At first, we should calculate extended comment ranges.\n        var comments = [], comment, len, i, cursor;\n\n        if (!tree.range) {\n            throw new Error('attachComments needs range information');\n        }\n\n        // tokens array is empty, we attach comments to tree as 'leadingComments'\n        if (!tokens.length) {\n            if (providedComments.length) {\n                for (i = 0, len = providedComments.length; i < len; i += 1) {\n                    comment = deepCopy(providedComments[i]);\n                    comment.extendedRange = [0, tree.range[0]];\n                    comments.push(comment);\n                }\n                tree.leadingComments = comments;\n            }\n            return tree;\n        }\n\n        for (i = 0, len = providedComments.length; i < len; i += 1) {\n            comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));\n        }\n\n        // This is based on John Freeman's implementation.\n        cursor = 0;\n        traverse(tree, {\n            enter: function (node) {\n                var comment;\n\n                while (cursor < comments.length) {\n                    comment = comments[cursor];\n                    if (comment.extendedRange[1] > node.range[0]) {\n                        break;\n                    }\n\n                    if (comment.extendedRange[1] === node.range[0]) {\n                        if (!node.leadingComments) {\n                            node.leadingComments = [];\n                        }\n                        node.leadingComments.push(comment);\n                        comments.splice(cursor, 1);\n                    } else {\n                        cursor += 1;\n                    }\n                }\n\n                // already out of owned node\n                if (cursor === comments.length) {\n                    return VisitorOption.Break;\n                }\n\n                if (comments[cursor].extendedRange[0] > node.range[1]) {\n                    return VisitorOption.Skip;\n                }\n            }\n        });\n\n        cursor = 0;\n        traverse(tree, {\n            leave: function (node) {\n                var comment;\n\n                while (cursor < comments.length) {\n                    comment = comments[cursor];\n                    if (node.range[1] < comment.extendedRange[0]) {\n                        break;\n                    }\n\n                    if (node.range[1] === comment.extendedRange[0]) {\n                        if (!node.trailingComments) {\n                            node.trailingComments = [];\n                        }\n                        node.trailingComments.push(comment);\n                        comments.splice(cursor, 1);\n                    } else {\n                        cursor += 1;\n                    }\n                }\n\n                // already out of owned node\n                if (cursor === comments.length) {\n                    return VisitorOption.Break;\n                }\n\n                if (comments[cursor].extendedRange[0] > node.range[1]) {\n                    return VisitorOption.Skip;\n                }\n            }\n        });\n\n        return tree;\n    }\n\n    exports.Syntax = Syntax;\n    exports.traverse = traverse;\n    exports.replace = replace;\n    exports.attachComments = attachComments;\n    exports.VisitorKeys = VisitorKeys;\n    exports.VisitorOption = VisitorOption;\n    exports.Controller = Controller;\n    exports.cloneEnvironment = function () { return clone({}); };\n\n    return exports;\n}(exports));\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n * Generated by PEG.js 0.10.0.\n *\n * http://pegjs.org/\n */\n(function(root, factory) {\n  if (typeof define === \"function\" && define.amd) {\n    define([], factory);\n  } else if (typeof module === \"object\" && module.exports) {\n    module.exports = factory();\n  }\n})(this, function() {\n  \"use strict\";\n\n  function peg$subclass(child, parent) {\n    function ctor() { this.constructor = child; }\n    ctor.prototype = parent.prototype;\n    child.prototype = new ctor();\n  }\n\n  function peg$SyntaxError(message, expected, found, location) {\n    this.message  = message;\n    this.expected = expected;\n    this.found    = found;\n    this.location = location;\n    this.name     = \"SyntaxError\";\n\n    if (typeof Error.captureStackTrace === \"function\") {\n      Error.captureStackTrace(this, peg$SyntaxError);\n    }\n  }\n\n  peg$subclass(peg$SyntaxError, Error);\n\n  peg$SyntaxError.buildMessage = function(expected, found) {\n    var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n          },\n\n          \"class\": function(expectation) {\n            var escapedParts = \"\",\n                i;\n\n            for (i = 0; i < expectation.parts.length; i++) {\n              escapedParts += expectation.parts[i] instanceof Array\n                ? classEscape(expectation.parts[i][0]) + \"-\" + classEscape(expectation.parts[i][1])\n                : classEscape(expectation.parts[i]);\n            }\n\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n          },\n\n          any: function(expectation) {\n            return \"any character\";\n          },\n\n          end: function(expectation) {\n            return \"end of input\";\n          },\n\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n\n    function hex(ch) {\n      return ch.charCodeAt(0).toString(16).toUpperCase();\n    }\n\n    function literalEscape(s) {\n      return s\n        .replace(/\\\\/g, '\\\\\\\\')\n        .replace(/\"/g,  '\\\\\"')\n        .replace(/\\0/g, '\\\\0')\n        .replace(/\\t/g, '\\\\t')\n        .replace(/\\n/g, '\\\\n')\n        .replace(/\\r/g, '\\\\r')\n        .replace(/[\\x00-\\x0F]/g,          function(ch) { return '\\\\x0' + hex(ch); })\n        .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x'  + hex(ch); });\n    }\n\n    function classEscape(s) {\n      return s\n        .replace(/\\\\/g, '\\\\\\\\')\n        .replace(/\\]/g, '\\\\]')\n        .replace(/\\^/g, '\\\\^')\n        .replace(/-/g,  '\\\\-')\n        .replace(/\\0/g, '\\\\0')\n        .replace(/\\t/g, '\\\\t')\n        .replace(/\\n/g, '\\\\n')\n        .replace(/\\r/g, '\\\\r')\n        .replace(/[\\x00-\\x0F]/g,          function(ch) { return '\\\\x0' + hex(ch); })\n        .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x'  + hex(ch); });\n    }\n\n    function describeExpectation(expectation) {\n      return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n    }\n\n    function describeExpected(expected) {\n      var descriptions = new Array(expected.length),\n          i, j;\n\n      for (i = 0; i < expected.length; i++) {\n        descriptions[i] = describeExpectation(expected[i]);\n      }\n\n      descriptions.sort();\n\n      if (descriptions.length > 0) {\n        for (i = 1, j = 1; i < descriptions.length; i++) {\n          if (descriptions[i - 1] !== descriptions[i]) {\n            descriptions[j] = descriptions[i];\n            j++;\n          }\n        }\n        descriptions.length = j;\n      }\n\n      switch (descriptions.length) {\n        case 1:\n          return descriptions[0];\n\n        case 2:\n          return descriptions[0] + \" or \" + descriptions[1];\n\n        default:\n          return descriptions.slice(0, -1).join(\", \")\n            + \", or \"\n            + descriptions[descriptions.length - 1];\n      }\n    }\n\n    function describeFound(found) {\n      return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n    }\n\n    return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n  };\n\n  function peg$parse(input, options) {\n    options = options !== void 0 ? options : {};\n\n    var peg$FAILED = {},\n\n        peg$startRuleFunctions = { start: peg$parsestart },\n        peg$startRuleFunction  = peg$parsestart,\n\n        peg$c0 = function(ss) {\n            return ss.length === 1 ? ss[0] : { type: 'matches', selectors: ss };\n          },\n        peg$c1 = function() { return void 0; },\n        peg$c2 = \" \",\n        peg$c3 = peg$literalExpectation(\" \", false),\n        peg$c4 = /^[^ [\\],():#!=><~+.]/,\n        peg$c5 = peg$classExpectation([\" \", \"[\", \"]\", \",\", \"(\", \")\", \":\", \"#\", \"!\", \"=\", \">\", \"<\", \"~\", \"+\", \".\"], true, false),\n        peg$c6 = function(i) { return i.join(''); },\n        peg$c7 = \">\",\n        peg$c8 = peg$literalExpectation(\">\", false),\n        peg$c9 = function() { return 'child'; },\n        peg$c10 = \"~\",\n        peg$c11 = peg$literalExpectation(\"~\", false),\n        peg$c12 = function() { return 'sibling'; },\n        peg$c13 = \"+\",\n        peg$c14 = peg$literalExpectation(\"+\", false),\n        peg$c15 = function() { return 'adjacent'; },\n        peg$c16 = function() { return 'descendant'; },\n        peg$c17 = \",\",\n        peg$c18 = peg$literalExpectation(\",\", false),\n        peg$c19 = function(s, ss) {\n          return [s].concat(ss.map(function (s) { return s[3]; }));\n        },\n        peg$c20 = function(a, ops) {\n            return ops.reduce(function (memo, rhs) {\n              return { type: rhs[0], left: memo, right: rhs[1] };\n            }, a);\n          },\n        peg$c21 = \"!\",\n        peg$c22 = peg$literalExpectation(\"!\", false),\n        peg$c23 = function(subject, as) {\n            const b = as.length === 1 ? as[0] : { type: 'compound', selectors: as };\n            if(subject) b.subject = true;\n            return b;\n          },\n        peg$c24 = \"*\",\n        peg$c25 = peg$literalExpectation(\"*\", false),\n        peg$c26 = function(a) { return { type: 'wildcard', value: a }; },\n        peg$c27 = \"#\",\n        peg$c28 = peg$literalExpectation(\"#\", false),\n        peg$c29 = function(i) { return { type: 'identifier', value: i }; },\n        peg$c30 = \"[\",\n        peg$c31 = peg$literalExpectation(\"[\", false),\n        peg$c32 = \"]\",\n        peg$c33 = peg$literalExpectation(\"]\", false),\n        peg$c34 = function(v) { return v; },\n        peg$c35 = /^[><!]/,\n        peg$c36 = peg$classExpectation([\">\", \"<\", \"!\"], false, false),\n        peg$c37 = \"=\",\n        peg$c38 = peg$literalExpectation(\"=\", false),\n        peg$c39 = function(a) { return (a || '') + '='; },\n        peg$c40 = /^[><]/,\n        peg$c41 = peg$classExpectation([\">\", \"<\"], false, false),\n        peg$c42 = \".\",\n        peg$c43 = peg$literalExpectation(\".\", false),\n        peg$c44 = function(name, op, value) {\n              return { type: 'attribute', name: name, operator: op, value: value };\n            },\n        peg$c45 = function(name) { return { type: 'attribute', name: name }; },\n        peg$c46 = \"\\\"\",\n        peg$c47 = peg$literalExpectation(\"\\\"\", false),\n        peg$c48 = /^[^\\\\\"]/,\n        peg$c49 = peg$classExpectation([\"\\\\\", \"\\\"\"], true, false),\n        peg$c50 = \"\\\\\",\n        peg$c51 = peg$literalExpectation(\"\\\\\", false),\n        peg$c52 = peg$anyExpectation(),\n        peg$c53 = function(a, b) { return a + b; },\n        peg$c54 = function(d) {\n                return { type: 'literal', value: strUnescape(d.join('')) };\n              },\n        peg$c55 = \"'\",\n        peg$c56 = peg$literalExpectation(\"'\", false),\n        peg$c57 = /^[^\\\\']/,\n        peg$c58 = peg$classExpectation([\"\\\\\", \"'\"], true, false),\n        peg$c59 = /^[0-9]/,\n        peg$c60 = peg$classExpectation([[\"0\", \"9\"]], false, false),\n        peg$c61 = function(a, b) {\n                // Can use `a.flat().join('')` once supported\n                const leadingDecimals = a ? [].concat.apply([], a).join('') : '';\n                return { type: 'literal', value: parseFloat(leadingDecimals + b.join('')) };\n              },\n        peg$c62 = function(i) { return { type: 'literal', value: i }; },\n        peg$c63 = \"type(\",\n        peg$c64 = peg$literalExpectation(\"type(\", false),\n        peg$c65 = /^[^ )]/,\n        peg$c66 = peg$classExpectation([\" \", \")\"], true, false),\n        peg$c67 = \")\",\n        peg$c68 = peg$literalExpectation(\")\", false),\n        peg$c69 = function(t) { return { type: 'type', value: t.join('') }; },\n        peg$c70 = /^[imsu]/,\n        peg$c71 = peg$classExpectation([\"i\", \"m\", \"s\", \"u\"], false, false),\n        peg$c72 = \"/\",\n        peg$c73 = peg$literalExpectation(\"/\", false),\n        peg$c74 = /^[^\\/]/,\n        peg$c75 = peg$classExpectation([\"/\"], true, false),\n        peg$c76 = function(d, flgs) { return {\n              type: 'regexp', value: new RegExp(d.join(''), flgs ? flgs.join('') : '') };\n            },\n        peg$c77 = function(i, is) {\n          return { type: 'field', name: is.reduce(function(memo, p){ return memo + p[0] + p[1]; }, i)};\n        },\n        peg$c78 = \":not(\",\n        peg$c79 = peg$literalExpectation(\":not(\", false),\n        peg$c80 = function(ss) { return { type: 'not', selectors: ss }; },\n        peg$c81 = \":matches(\",\n        peg$c82 = peg$literalExpectation(\":matches(\", false),\n        peg$c83 = function(ss) { return { type: 'matches', selectors: ss }; },\n        peg$c84 = \":has(\",\n        peg$c85 = peg$literalExpectation(\":has(\", false),\n        peg$c86 = function(ss) { return { type: 'has', selectors: ss }; },\n        peg$c87 = \":first-child\",\n        peg$c88 = peg$literalExpectation(\":first-child\", false),\n        peg$c89 = function() { return nth(1); },\n        peg$c90 = \":last-child\",\n        peg$c91 = peg$literalExpectation(\":last-child\", false),\n        peg$c92 = function() { return nthLast(1); },\n        peg$c93 = \":nth-child(\",\n        peg$c94 = peg$literalExpectation(\":nth-child(\", false),\n        peg$c95 = function(n) { return nth(parseInt(n.join(''), 10)); },\n        peg$c96 = \":nth-last-child(\",\n        peg$c97 = peg$literalExpectation(\":nth-last-child(\", false),\n        peg$c98 = function(n) { return nthLast(parseInt(n.join(''), 10)); },\n        peg$c99 = \":\",\n        peg$c100 = peg$literalExpectation(\":\", false),\n        peg$c101 = \"statement\",\n        peg$c102 = peg$literalExpectation(\"statement\", true),\n        peg$c103 = \"expression\",\n        peg$c104 = peg$literalExpectation(\"expression\", true),\n        peg$c105 = \"declaration\",\n        peg$c106 = peg$literalExpectation(\"declaration\", true),\n        peg$c107 = \"function\",\n        peg$c108 = peg$literalExpectation(\"function\", true),\n        peg$c109 = \"pattern\",\n        peg$c110 = peg$literalExpectation(\"pattern\", true),\n        peg$c111 = function(c) {\n          return { type: 'class', name: c };\n        },\n\n        peg$currPos          = 0,\n        peg$savedPos         = 0,\n        peg$posDetailsCache  = [{ line: 1, column: 1 }],\n        peg$maxFailPos       = 0,\n        peg$maxFailExpected  = [],\n        peg$silentFails      = 0,\n\n        peg$resultsCache = {},\n\n        peg$result;\n\n    if (\"startRule\" in options) {\n      if (!(options.startRule in peg$startRuleFunctions)) {\n        throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n      }\n\n      peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n    }\n\n    function text() {\n      return input.substring(peg$savedPos, peg$currPos);\n    }\n\n    function location() {\n      return peg$computeLocation(peg$savedPos, peg$currPos);\n    }\n\n    function expected(description, location) {\n      location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n      throw peg$buildStructuredError(\n        [peg$otherExpectation(description)],\n        input.substring(peg$savedPos, peg$currPos),\n        location\n      );\n    }\n\n    function error(message, location) {\n      location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n      throw peg$buildSimpleError(message, location);\n    }\n\n    function peg$literalExpectation(text, ignoreCase) {\n      return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n    }\n\n    function peg$classExpectation(parts, inverted, ignoreCase) {\n      return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n    }\n\n    function peg$anyExpectation() {\n      return { type: \"any\" };\n    }\n\n    function peg$endExpectation() {\n      return { type: \"end\" };\n    }\n\n    function peg$otherExpectation(description) {\n      return { type: \"other\", description: description };\n    }\n\n    function peg$computePosDetails(pos) {\n      var details = peg$posDetailsCache[pos], p;\n\n      if (details) {\n        return details;\n      } else {\n        p = pos - 1;\n        while (!peg$posDetailsCache[p]) {\n          p--;\n        }\n\n        details = peg$posDetailsCache[p];\n        details = {\n          line:   details.line,\n          column: details.column\n        };\n\n        while (p < pos) {\n          if (input.charCodeAt(p) === 10) {\n            details.line++;\n            details.column = 1;\n          } else {\n            details.column++;\n          }\n\n          p++;\n        }\n\n        peg$posDetailsCache[pos] = details;\n        return details;\n      }\n    }\n\n    function peg$computeLocation(startPos, endPos) {\n      var startPosDetails = peg$computePosDetails(startPos),\n          endPosDetails   = peg$computePosDetails(endPos);\n\n      return {\n        start: {\n          offset: startPos,\n          line:   startPosDetails.line,\n          column: startPosDetails.column\n        },\n        end: {\n          offset: endPos,\n          line:   endPosDetails.line,\n          column: endPosDetails.column\n        }\n      };\n    }\n\n    function peg$fail(expected) {\n      if (peg$currPos < peg$maxFailPos) { return; }\n\n      if (peg$currPos > peg$maxFailPos) {\n        peg$maxFailPos = peg$currPos;\n        peg$maxFailExpected = [];\n      }\n\n      peg$maxFailExpected.push(expected);\n    }\n\n    function peg$buildSimpleError(message, location) {\n      return new peg$SyntaxError(message, null, null, location);\n    }\n\n    function peg$buildStructuredError(expected, found, location) {\n      return new peg$SyntaxError(\n        peg$SyntaxError.buildMessage(expected, found),\n        expected,\n        found,\n        location\n      );\n    }\n\n    function peg$parsestart() {\n      var s0, s1, s2, s3;\n\n      var key    = peg$currPos * 30 + 0,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parse_();\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parseselectors();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parse_();\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c0(s2);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = peg$parse_();\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c1();\n        }\n        s0 = s1;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parse_() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 1,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = [];\n      if (input.charCodeAt(peg$currPos) === 32) {\n        s1 = peg$c2;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c3); }\n      }\n      while (s1 !== peg$FAILED) {\n        s0.push(s1);\n        if (input.charCodeAt(peg$currPos) === 32) {\n          s1 = peg$c2;\n          peg$currPos++;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c3); }\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseidentifierName() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 2,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = [];\n      if (peg$c4.test(input.charAt(peg$currPos))) {\n        s2 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s2 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c5); }\n      }\n      if (s2 !== peg$FAILED) {\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          if (peg$c4.test(input.charAt(peg$currPos))) {\n            s2 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c5); }\n          }\n        }\n      } else {\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c6(s1);\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsebinaryOp() {\n      var s0, s1, s2, s3;\n\n      var key    = peg$currPos * 30 + 3,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parse_();\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 62) {\n          s2 = peg$c7;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c8); }\n        }\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parse_();\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c9();\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = peg$parse_();\n        if (s1 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 126) {\n            s2 = peg$c10;\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c11); }\n          }\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parse_();\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s1 = peg$c12();\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n        if (s0 === peg$FAILED) {\n          s0 = peg$currPos;\n          s1 = peg$parse_();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 43) {\n              s2 = peg$c13;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c14); }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parse_();\n              if (s3 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c15();\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 32) {\n              s1 = peg$c2;\n              peg$currPos++;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c3); }\n            }\n            if (s1 !== peg$FAILED) {\n              s2 = peg$parse_();\n              if (s2 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c16();\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseselectors() {\n      var s0, s1, s2, s3, s4, s5, s6, s7;\n\n      var key    = peg$currPos * 30 + 4,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parseselector();\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$currPos;\n        s4 = peg$parse_();\n        if (s4 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 44) {\n            s5 = peg$c17;\n            peg$currPos++;\n          } else {\n            s5 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c18); }\n          }\n          if (s5 !== peg$FAILED) {\n            s6 = peg$parse_();\n            if (s6 !== peg$FAILED) {\n              s7 = peg$parseselector();\n              if (s7 !== peg$FAILED) {\n                s4 = [s4, s5, s6, s7];\n                s3 = s4;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s3;\n          s3 = peg$FAILED;\n        }\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          s3 = peg$currPos;\n          s4 = peg$parse_();\n          if (s4 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 44) {\n              s5 = peg$c17;\n              peg$currPos++;\n            } else {\n              s5 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c18); }\n            }\n            if (s5 !== peg$FAILED) {\n              s6 = peg$parse_();\n              if (s6 !== peg$FAILED) {\n                s7 = peg$parseselector();\n                if (s7 !== peg$FAILED) {\n                  s4 = [s4, s5, s6, s7];\n                  s3 = s4;\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c19(s1, s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseselector() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 5,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parsesequence();\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$currPos;\n        s4 = peg$parsebinaryOp();\n        if (s4 !== peg$FAILED) {\n          s5 = peg$parsesequence();\n          if (s5 !== peg$FAILED) {\n            s4 = [s4, s5];\n            s3 = s4;\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s3;\n          s3 = peg$FAILED;\n        }\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          s3 = peg$currPos;\n          s4 = peg$parsebinaryOp();\n          if (s4 !== peg$FAILED) {\n            s5 = peg$parsesequence();\n            if (s5 !== peg$FAILED) {\n              s4 = [s4, s5];\n              s3 = s4;\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c20(s1, s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsesequence() {\n      var s0, s1, s2, s3;\n\n      var key    = peg$currPos * 30 + 6,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 33) {\n        s1 = peg$c21;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c22); }\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$parseatom();\n        if (s3 !== peg$FAILED) {\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            s3 = peg$parseatom();\n          }\n        } else {\n          s2 = peg$FAILED;\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c23(s1, s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseatom() {\n      var s0;\n\n      var key    = peg$currPos * 30 + 7,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$parsewildcard();\n      if (s0 === peg$FAILED) {\n        s0 = peg$parseidentifier();\n        if (s0 === peg$FAILED) {\n          s0 = peg$parseattr();\n          if (s0 === peg$FAILED) {\n            s0 = peg$parsefield();\n            if (s0 === peg$FAILED) {\n              s0 = peg$parsenegation();\n              if (s0 === peg$FAILED) {\n                s0 = peg$parsematches();\n                if (s0 === peg$FAILED) {\n                  s0 = peg$parsehas();\n                  if (s0 === peg$FAILED) {\n                    s0 = peg$parsefirstChild();\n                    if (s0 === peg$FAILED) {\n                      s0 = peg$parselastChild();\n                      if (s0 === peg$FAILED) {\n                        s0 = peg$parsenthChild();\n                        if (s0 === peg$FAILED) {\n                          s0 = peg$parsenthLastChild();\n                          if (s0 === peg$FAILED) {\n                            s0 = peg$parseclass();\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsewildcard() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 8,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 42) {\n        s1 = peg$c24;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c25); }\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c26(s1);\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseidentifier() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 9,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 35) {\n        s1 = peg$c27;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c28); }\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parseidentifierName();\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c29(s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattr() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 10,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 91) {\n        s1 = peg$c30;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c31); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseattrValue();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 93) {\n                s5 = peg$c32;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c33); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c34(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattrOps() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 11,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (peg$c35.test(input.charAt(peg$currPos))) {\n        s1 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c36); }\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 61) {\n          s2 = peg$c37;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c38); }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c39(s1);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        if (peg$c40.test(input.charAt(peg$currPos))) {\n          s0 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s0 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c41); }\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattrEqOps() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 12,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 33) {\n        s1 = peg$c21;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c22); }\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 61) {\n          s2 = peg$c37;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c38); }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c39(s1);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattrName() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 13,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parseidentifierName();\n      if (s2 === peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 46) {\n          s2 = peg$c42;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c43); }\n        }\n      }\n      if (s2 !== peg$FAILED) {\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          s2 = peg$parseidentifierName();\n          if (s2 === peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 46) {\n              s2 = peg$c42;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c43); }\n            }\n          }\n        }\n      } else {\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c6(s1);\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattrValue() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 14,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parseattrName();\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseattrEqOps();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsetype();\n              if (s5 === peg$FAILED) {\n                s5 = peg$parseregex();\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c44(s1, s3, s5);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = peg$parseattrName();\n        if (s1 !== peg$FAILED) {\n          s2 = peg$parse_();\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parseattrOps();\n            if (s3 !== peg$FAILED) {\n              s4 = peg$parse_();\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parsestring();\n                if (s5 === peg$FAILED) {\n                  s5 = peg$parsenumber();\n                  if (s5 === peg$FAILED) {\n                    s5 = peg$parsepath();\n                  }\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s0;\n                  s1 = peg$c44(s1, s3, s5);\n                  s0 = s1;\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n        if (s0 === peg$FAILED) {\n          s0 = peg$currPos;\n          s1 = peg$parseattrName();\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c45(s1);\n          }\n          s0 = s1;\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsestring() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 15,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 34) {\n        s1 = peg$c46;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c47); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        if (peg$c48.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c49); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 92) {\n            s4 = peg$c50;\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c51); }\n          }\n          if (s4 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s5 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s5 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c52); }\n            }\n            if (s5 !== peg$FAILED) {\n              peg$savedPos = s3;\n              s4 = peg$c53(s4, s5);\n              s3 = s4;\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        }\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          if (peg$c48.test(input.charAt(peg$currPos))) {\n            s3 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c49); }\n          }\n          if (s3 === peg$FAILED) {\n            s3 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 92) {\n              s4 = peg$c50;\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c51); }\n            }\n            if (s4 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s5 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c52); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s3;\n                s4 = peg$c53(s4, s5);\n                s3 = s4;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          }\n        }\n        if (s2 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 34) {\n            s3 = peg$c46;\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c47); }\n          }\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c54(s2);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.charCodeAt(peg$currPos) === 39) {\n          s1 = peg$c55;\n          peg$currPos++;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c56); }\n        }\n        if (s1 !== peg$FAILED) {\n          s2 = [];\n          if (peg$c57.test(input.charAt(peg$currPos))) {\n            s3 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c58); }\n          }\n          if (s3 === peg$FAILED) {\n            s3 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 92) {\n              s4 = peg$c50;\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c51); }\n            }\n            if (s4 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s5 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c52); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s3;\n                s4 = peg$c53(s4, s5);\n                s3 = s4;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          }\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            if (peg$c57.test(input.charAt(peg$currPos))) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c58); }\n            }\n            if (s3 === peg$FAILED) {\n              s3 = peg$currPos;\n              if (input.charCodeAt(peg$currPos) === 92) {\n                s4 = peg$c50;\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c51); }\n              }\n              if (s4 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s5 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s5 = peg$FAILED;\n                  if (peg$silentFails === 0) { peg$fail(peg$c52); }\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s3;\n                  s4 = peg$c53(s4, s5);\n                  s3 = s4;\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 39) {\n              s3 = peg$c55;\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c56); }\n            }\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s1 = peg$c54(s2);\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsenumber() {\n      var s0, s1, s2, s3;\n\n      var key    = peg$currPos * 30 + 16,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$currPos;\n      s2 = [];\n      if (peg$c59.test(input.charAt(peg$currPos))) {\n        s3 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c60); }\n      }\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        if (peg$c59.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c60); }\n        }\n      }\n      if (s2 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 46) {\n          s3 = peg$c42;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c43); }\n        }\n        if (s3 !== peg$FAILED) {\n          s2 = [s2, s3];\n          s1 = s2;\n        } else {\n          peg$currPos = s1;\n          s1 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s1;\n        s1 = peg$FAILED;\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        if (peg$c59.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c60); }\n        }\n        if (s3 !== peg$FAILED) {\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            if (peg$c59.test(input.charAt(peg$currPos))) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c60); }\n            }\n          }\n        } else {\n          s2 = peg$FAILED;\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c61(s1, s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsepath() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 17,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parseidentifierName();\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c62(s1);\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsetype() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 18,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 5) === peg$c63) {\n        s1 = peg$c63;\n        peg$currPos += 5;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c64); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          if (peg$c65.test(input.charAt(peg$currPos))) {\n            s4 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c66); }\n          }\n          if (s4 !== peg$FAILED) {\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              if (peg$c65.test(input.charAt(peg$currPos))) {\n                s4 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c66); }\n              }\n            }\n          } else {\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c69(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseflags() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 19,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = [];\n      if (peg$c70.test(input.charAt(peg$currPos))) {\n        s1 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c71); }\n      }\n      if (s1 !== peg$FAILED) {\n        while (s1 !== peg$FAILED) {\n          s0.push(s1);\n          if (peg$c70.test(input.charAt(peg$currPos))) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c71); }\n          }\n        }\n      } else {\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseregex() {\n      var s0, s1, s2, s3, s4;\n\n      var key    = peg$currPos * 30 + 20,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 47) {\n        s1 = peg$c72;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c73); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        if (peg$c74.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c75); }\n        }\n        if (s3 !== peg$FAILED) {\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            if (peg$c74.test(input.charAt(peg$currPos))) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c75); }\n            }\n          }\n        } else {\n          s2 = peg$FAILED;\n        }\n        if (s2 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 47) {\n            s3 = peg$c72;\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c73); }\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parseflags();\n            if (s4 === peg$FAILED) {\n              s4 = null;\n            }\n            if (s4 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s1 = peg$c76(s2, s4);\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsefield() {\n      var s0, s1, s2, s3, s4, s5, s6;\n\n      var key    = peg$currPos * 30 + 21,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 46) {\n        s1 = peg$c42;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c43); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parseidentifierName();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          s4 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 46) {\n            s5 = peg$c42;\n            peg$currPos++;\n          } else {\n            s5 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c43); }\n          }\n          if (s5 !== peg$FAILED) {\n            s6 = peg$parseidentifierName();\n            if (s6 !== peg$FAILED) {\n              s5 = [s5, s6];\n              s4 = s5;\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s4;\n            s4 = peg$FAILED;\n          }\n          while (s4 !== peg$FAILED) {\n            s3.push(s4);\n            s4 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 46) {\n              s5 = peg$c42;\n              peg$currPos++;\n            } else {\n              s5 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c43); }\n            }\n            if (s5 !== peg$FAILED) {\n              s6 = peg$parseidentifierName();\n              if (s6 !== peg$FAILED) {\n                s5 = [s5, s6];\n                s4 = s5;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n          }\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c77(s2, s3);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsenegation() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 22,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 5) === peg$c78) {\n        s1 = peg$c78;\n        peg$currPos += 5;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c79); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseselectors();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c80(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsematches() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 23,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 9) === peg$c81) {\n        s1 = peg$c81;\n        peg$currPos += 9;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c82); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseselectors();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c83(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsehas() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 24,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 5) === peg$c84) {\n        s1 = peg$c84;\n        peg$currPos += 5;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c85); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseselectors();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c86(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsefirstChild() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 25,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 12) === peg$c87) {\n        s1 = peg$c87;\n        peg$currPos += 12;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c88); }\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c89();\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parselastChild() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 26,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 11) === peg$c90) {\n        s1 = peg$c90;\n        peg$currPos += 11;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c91); }\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c92();\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsenthChild() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 27,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 11) === peg$c93) {\n        s1 = peg$c93;\n        peg$currPos += 11;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c94); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          if (peg$c59.test(input.charAt(peg$currPos))) {\n            s4 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c60); }\n          }\n          if (s4 !== peg$FAILED) {\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              if (peg$c59.test(input.charAt(peg$currPos))) {\n                s4 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c60); }\n              }\n            }\n          } else {\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c95(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsenthLastChild() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 28,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 16) === peg$c96) {\n        s1 = peg$c96;\n        peg$currPos += 16;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c97); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          if (peg$c59.test(input.charAt(peg$currPos))) {\n            s4 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c60); }\n          }\n          if (s4 !== peg$FAILED) {\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              if (peg$c59.test(input.charAt(peg$currPos))) {\n                s4 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c60); }\n              }\n            }\n          } else {\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c98(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseclass() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 29,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 58) {\n        s1 = peg$c99;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c100); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.substr(peg$currPos, 9).toLowerCase() === peg$c101) {\n          s2 = input.substr(peg$currPos, 9);\n          peg$currPos += 9;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c102); }\n        }\n        if (s2 === peg$FAILED) {\n          if (input.substr(peg$currPos, 10).toLowerCase() === peg$c103) {\n            s2 = input.substr(peg$currPos, 10);\n            peg$currPos += 10;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c104); }\n          }\n          if (s2 === peg$FAILED) {\n            if (input.substr(peg$currPos, 11).toLowerCase() === peg$c105) {\n              s2 = input.substr(peg$currPos, 11);\n              peg$currPos += 11;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c106); }\n            }\n            if (s2 === peg$FAILED) {\n              if (input.substr(peg$currPos, 8).toLowerCase() === peg$c107) {\n                s2 = input.substr(peg$currPos, 8);\n                peg$currPos += 8;\n              } else {\n                s2 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c108); }\n              }\n              if (s2 === peg$FAILED) {\n                if (input.substr(peg$currPos, 7).toLowerCase() === peg$c109) {\n                  s2 = input.substr(peg$currPos, 7);\n                  peg$currPos += 7;\n                } else {\n                  s2 = peg$FAILED;\n                  if (peg$silentFails === 0) { peg$fail(peg$c110); }\n                }\n              }\n            }\n          }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c111(s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n\n      function nth(n) { return { type: 'nth-child', index: { type: 'literal', value: n } }; }\n      function nthLast(n) { return { type: 'nth-last-child', index: { type: 'literal', value: n } }; }\n      function strUnescape(s) {\n        return s.replace(/\\\\(.)/g, function(match, ch) {\n          switch(ch) {\n            case 'b': return '\\b';\n            case 'f': return '\\f';\n            case 'n': return '\\n';\n            case 'r': return '\\r';\n            case 't': return '\\t';\n            case 'v': return '\\v';\n            default: return ch;\n          }\n        });\n      }\n\n\n    peg$result = peg$startRuleFunction();\n\n    if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n      return peg$result;\n    } else {\n      if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n        peg$fail(peg$endExpectation());\n      }\n\n      throw peg$buildStructuredError(\n        peg$maxFailExpected,\n        peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n        peg$maxFailPos < input.length\n          ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n          : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n      );\n    }\n  }\n\n  return {\n    SyntaxError: peg$SyntaxError,\n    parse:       peg$parse\n  };\n});\n","/* vim: set sw=4 sts=4 : */\nimport estraverse from 'estraverse';\nimport parser from './parser.js';\n\n/**\n* @typedef {\"LEFT_SIDE\"|\"RIGHT_SIDE\"} Side\n*/\n\nconst LEFT_SIDE = 'LEFT_SIDE';\nconst RIGHT_SIDE = 'RIGHT_SIDE';\n\n/**\n * @external AST\n * @see https://esprima.readthedocs.io/en/latest/syntax-tree-format.html\n */\n\n/**\n * One of the rules of `grammar.pegjs`\n * @typedef {PlainObject} SelectorAST\n * @see grammar.pegjs\n*/\n\n/**\n * The `sequence` production of `grammar.pegjs`\n * @typedef {PlainObject} SelectorSequenceAST\n*/\n\n/**\n * Get the value of a property which may be multiple levels down\n * in the object.\n * @param {?PlainObject} obj\n * @param {string} key\n * @returns {undefined|boolean|string|number|external:AST}\n */\nfunction getPath(obj, key) {\n    const keys = key.split('.');\n    for (let i = 0; i < keys.length; i++) {\n        if (obj == null) { return obj; }\n        obj = obj[keys[i]];\n    }\n    return obj;\n}\n\n/**\n * Determine whether `node` can be reached by following `path`,\n * starting at `ancestor`.\n * @param {?external:AST} node\n * @param {?external:AST} ancestor\n * @param {string[]} path\n * @returns {boolean}\n */\nfunction inPath(node, ancestor, path) {\n    if (path.length === 0) { return node === ancestor; }\n    if (ancestor == null) { return false; }\n    const field = ancestor[path[0]];\n    const remainingPath = path.slice(1);\n    if (Array.isArray(field)) {\n        for (let i = 0, l = field.length; i < l; ++i) {\n            if (inPath(node, field[i], remainingPath)) { return true; }\n        }\n        return false;\n    } else {\n        return inPath(node, field, remainingPath);\n    }\n}\n\n/**\n * Given a `node` and its ancestors, determine if `node` is matched\n * by `selector`.\n * @param {?external:AST} node\n * @param {?SelectorAST} selector\n * @param {external:AST[]} [ancestry=[]]\n * @throws {Error} Unknowns (operator, class name, selector type, or\n * selector value type)\n * @returns {boolean}\n */\nfunction matches(node, selector, ancestry) {\n    if (!selector) { return true; }\n    if (!node) { return false; }\n    if (!ancestry) { ancestry = []; }\n\n    switch(selector.type) {\n        case 'wildcard':\n            return true;\n\n        case 'identifier':\n            return selector.value.toLowerCase() === node.type.toLowerCase();\n\n        case 'field': {\n            const path = selector.name.split('.');\n            const ancestor = ancestry[path.length - 1];\n            return inPath(node, ancestor, path);\n\n        }\n        case 'matches':\n            for (let i = 0, l = selector.selectors.length; i < l; ++i) {\n                if (matches(node, selector.selectors[i], ancestry)) { return true; }\n            }\n            return false;\n\n        case 'compound':\n            for (let i = 0, l = selector.selectors.length; i < l; ++i) {\n                if (!matches(node, selector.selectors[i], ancestry)) { return false; }\n            }\n            return true;\n\n        case 'not':\n            for (let i = 0, l = selector.selectors.length; i < l; ++i) {\n                if (matches(node, selector.selectors[i], ancestry)) { return false; }\n            }\n            return true;\n\n        case 'has': {\n            const collector = [];\n            for (let i = 0, l = selector.selectors.length; i < l; ++i) {\n                const a = [];\n                estraverse.traverse(node, {\n                    enter (node, parent) {\n                        if (parent != null) { a.unshift(parent); }\n                        if (matches(node, selector.selectors[i], a)) {\n                            collector.push(node);\n                        }\n                    },\n                    leave () { a.shift(); },\n                    fallback: 'iteration'\n                });\n            }\n            return collector.length !== 0;\n\n        }\n        case 'child':\n            if (matches(node, selector.right, ancestry)) {\n                return matches(ancestry[0], selector.left, ancestry.slice(1));\n            }\n            return false;\n\n        case 'descendant':\n            if (matches(node, selector.right, ancestry)) {\n                for (let i = 0, l = ancestry.length; i < l; ++i) {\n                    if (matches(ancestry[i], selector.left, ancestry.slice(i + 1))) {\n                        return true;\n                    }\n                }\n            }\n            return false;\n\n        case 'attribute': {\n            const p = getPath(node, selector.name);\n            switch (selector.operator) {\n                case void 0:\n                    return p != null;\n                case '=':\n                    switch (selector.value.type) {\n                        case 'regexp': return typeof p === 'string' && selector.value.value.test(p);\n                        case 'literal': return `${selector.value.value}` === `${p}`;\n                        case 'type': return selector.value.value === typeof p;\n                    }\n                    throw new Error(`Unknown selector value type: ${selector.value.type}`);\n                case '!=':\n                    switch (selector.value.type) {\n                        case 'regexp': return !selector.value.value.test(p);\n                        case 'literal': return `${selector.value.value}` !== `${p}`;\n                        case 'type': return selector.value.value !== typeof p;\n                    }\n                    throw new Error(`Unknown selector value type: ${selector.value.type}`);\n                case '<=': return p <= selector.value.value;\n                case '<': return p < selector.value.value;\n                case '>': return p > selector.value.value;\n                case '>=': return p >= selector.value.value;\n            }\n            throw new Error(`Unknown operator: ${selector.operator}`);\n        }\n        case 'sibling':\n            return matches(node, selector.right, ancestry) &&\n                sibling(node, selector.left, ancestry, LEFT_SIDE) ||\n                selector.left.subject &&\n                matches(node, selector.left, ancestry) &&\n                sibling(node, selector.right, ancestry, RIGHT_SIDE);\n        case 'adjacent':\n            return matches(node, selector.right, ancestry) &&\n                adjacent(node, selector.left, ancestry, LEFT_SIDE) ||\n                selector.right.subject &&\n                matches(node, selector.left, ancestry) &&\n                adjacent(node, selector.right, ancestry, RIGHT_SIDE);\n\n        case 'nth-child':\n            return matches(node, selector.right, ancestry) &&\n                nthChild(node, ancestry, function () {\n                    return selector.index.value - 1;\n                });\n\n        case 'nth-last-child':\n            return matches(node, selector.right, ancestry) &&\n                nthChild(node, ancestry, function (length) {\n                    return length - selector.index.value;\n                });\n\n        case 'class':\n            switch(selector.name.toLowerCase()){\n                case 'statement':\n                    if(node.type.slice(-9) === 'Statement') return true;\n                    // fallthrough: interface Declaration <: Statement { }\n                case 'declaration':\n                    return node.type.slice(-11) === 'Declaration';\n                case 'pattern':\n                    if(node.type.slice(-7) === 'Pattern') return true;\n                    // fallthrough: interface Expression <: Node, Pattern { }\n                case 'expression':\n                    return node.type.slice(-10) === 'Expression' ||\n                        node.type.slice(-7) === 'Literal' ||\n                        (\n                            node.type === 'Identifier' &&\n                            (ancestry.length === 0 || ancestry[0].type !== 'MetaProperty')\n                        ) ||\n                        node.type === 'MetaProperty';\n                case 'function':\n                    return node.type === 'FunctionDeclaration' ||\n                        node.type === 'FunctionExpression' ||\n                        node.type === 'ArrowFunctionExpression';\n            }\n            throw new Error(`Unknown class name: ${selector.name}`);\n    }\n\n    throw new Error(`Unknown selector type: ${selector.type}`);\n}\n\n/**\n * Determines if the given node has a sibling that matches the\n * given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @returns {boolean}\n */\nfunction sibling(node, selector, ancestry, side) {\n    const [parent] = ancestry;\n    if (!parent) { return false; }\n    const keys = estraverse.VisitorKeys[parent.type];\n    for (let i = 0, l = keys.length; i < l; ++i) {\n        const listProp = parent[keys[i]];\n        if (Array.isArray(listProp)) {\n            const startIndex = listProp.indexOf(node);\n            if (startIndex < 0) { continue; }\n            let lowerBound, upperBound;\n            if (side === LEFT_SIDE) {\n                lowerBound = 0;\n                upperBound = startIndex;\n            } else {\n                lowerBound = startIndex + 1;\n                upperBound = listProp.length;\n            }\n            for (let k = lowerBound; k < upperBound; ++k) {\n                if (matches(listProp[k], selector, ancestry)) {\n                    return true;\n                }\n            }\n        }\n    }\n    return false;\n}\n\n/**\n * Determines if the given node has an adjacent sibling that matches\n * the given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @returns {boolean}\n */\nfunction adjacent(node, selector, ancestry, side) {\n    const [parent] = ancestry;\n    if (!parent) { return false; }\n    const keys = estraverse.VisitorKeys[parent.type];\n    for (let i = 0, l = keys.length; i < l; ++i) {\n        const listProp = parent[keys[i]];\n        if (Array.isArray(listProp)) {\n            const idx = listProp.indexOf(node);\n            if (idx < 0) { continue; }\n            if (side === LEFT_SIDE && idx > 0 && matches(listProp[idx - 1], selector, ancestry)) {\n                return true;\n            }\n            if (side === RIGHT_SIDE && idx < listProp.length - 1 && matches(listProp[idx + 1], selector, ancestry)) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\n/**\n* @callback IndexFunction\n* @param {Integer} len Containing list's length\n* @returns {Integer}\n*/\n\n/**\n * Determines if the given node is the nth child, determined by\n * `idxFn`, which is given the containing list's length.\n * @param {external:AST} node\n * @param {external:AST[]} ancestry\n * @param {IndexFunction} idxFn\n * @returns {boolean}\n */\nfunction nthChild(node, ancestry, idxFn) {\n    const [parent] = ancestry;\n    if (!parent) { return false; }\n    const keys = estraverse.VisitorKeys[parent.type];\n    for (let i = 0, l = keys.length; i < l; ++i) {\n        const listProp = parent[keys[i]];\n        if (Array.isArray(listProp)) {\n            const idx = listProp.indexOf(node);\n            if (idx >= 0 && idx === idxFn(listProp.length)) { return true; }\n        }\n    }\n    return false;\n}\n\n/**\n * For each selector node marked as a subject, find the portion of the\n * selector that the subject must match.\n * @param {SelectorAST} selector\n * @param {SelectorAST} [ancestor] Defaults to `selector`\n * @returns {SelectorAST[]}\n */\nfunction subjects(selector, ancestor) {\n    if (selector == null || typeof selector != 'object') { return []; }\n    if (ancestor == null) { ancestor = selector; }\n    const results = selector.subject ? [ancestor] : [];\n    for (const [p, sel] of Object.entries(selector)) {\n        results.push(...subjects(sel, p === 'left' ? sel : ancestor));\n    }\n    return results;\n}\n\n/**\n * From a JS AST and a selector AST, collect all JS AST nodes that\n * match the selector.\n * @param {external:AST} ast\n * @param {?SelectorAST} selector\n * @returns {external:AST[]}\n */\nfunction match(ast, selector) {\n    const ancestry = [], results = [];\n    if (!selector) { return results; }\n    const altSubjects = subjects(selector);\n    estraverse.traverse(ast, {\n        enter (node, parent) {\n            if (parent != null) { ancestry.unshift(parent); }\n            if (matches(node, selector, ancestry)) {\n                if (altSubjects.length) {\n                    for (let i = 0, l = altSubjects.length; i < l; ++i) {\n                        if (matches(node, altSubjects[i], ancestry)) { results.push(node); }\n                        for (let k = 0, m = ancestry.length; k < m; ++k) {\n                            if (matches(ancestry[k], altSubjects[i], ancestry.slice(k + 1))) {\n                                results.push(ancestry[k]);\n                            }\n                        }\n                    }\n                } else {\n                    results.push(node);\n                }\n            }\n        },\n        leave () { ancestry.shift(); },\n        fallback: 'iteration'\n    });\n    return results;\n}\n\n/**\n * Parse a selector string and return its AST.\n * @param {string} selector\n * @returns {SelectorAST}\n */\nfunction parse(selector) {\n    return parser.parse(selector);\n}\n\n/**\n * Query the code AST using the selector string.\n * @param {external:AST} ast\n * @param {string} selector\n * @returns {external:AST[]}\n */\nfunction query(ast, selector) {\n    return match(ast, parse(selector));\n}\n\nquery.parse = parse;\nquery.match = match;\nquery.matches = matches;\nquery.query = query;\n\nexport default query;\n"],"names":["clone","exports","Syntax","VisitorOption","VisitorKeys","BREAK","SKIP","REMOVE","deepCopy","obj","key","val","ret","hasOwnProperty","Reference","parent","this","Element","node","path","wrap","ref","Controller","isNode","type","isProperty","nodeType","ObjectExpression","ObjectPattern","traverse","root","visitor","extendCommentRange","comment","tokens","target","array","func","diff","len","i","current","length","upperBound","token","range","extendedRange","AssignmentExpression","AssignmentPattern","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BlockStatement","BinaryExpression","BreakStatement","CallExpression","CatchClause","ClassBody","ClassDeclaration","ClassExpression","ComprehensionBlock","ComprehensionExpression","ConditionalExpression","ContinueStatement","DebuggerStatement","DirectiveStatement","DoWhileStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForInStatement","ForOfStatement","FunctionDeclaration","FunctionExpression","GeneratorExpression","Identifier","IfStatement","ImportExpression","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MetaProperty","MethodDefinition","ModuleSpecifier","NewExpression","Program","Property","RestElement","ReturnStatement","SequenceExpression","SpreadElement","Super","SwitchStatement","SwitchCase","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","Break","Skip","Remove","prototype","replace","remove","Array","isArray","splice","iz","j","jz","result","addToPath","push","__current","__leavelist","parents","__execute","callback","element","previous","undefined","__state","call","notify","flag","skip","__initialize","__worklist","__fallback","fallback","Object","keys","__keys","assign","create","worklist","leavelist","current2","candidates","candidate","sentinel","pop","enter","Error","leave","outer","removeElem","nextElem","attachComments","tree","providedComments","cursor","comments","leadingComments","trailingComments","cloneEnvironment","module","peg$SyntaxError","message","expected","found","location","name","captureStackTrace","child","ctor","constructor","peg$subclass","buildMessage","DESCRIBE_EXPECTATION_FNS","literal","expectation","literalEscape","text","class","escapedParts","parts","classEscape","inverted","any","end","other","description","hex","ch","charCodeAt","toString","toUpperCase","s","descriptions","sort","slice","join","describeExpected","describeFound","SyntaxError","parse","input","options","peg$result","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c3","peg$literalExpectation","peg$c4","peg$c5","peg$classExpectation","peg$c6","peg$c8","peg$c11","peg$c14","peg$c18","peg$c22","peg$c25","peg$c28","peg$c31","peg$c33","peg$c35","peg$c36","peg$c38","peg$c39","a","peg$c40","peg$c41","peg$c43","peg$c44","op","value","operator","peg$c47","peg$c48","peg$c49","peg$c51","peg$c52","peg$c53","b","peg$c54","d","match","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c64","peg$c65","peg$c66","peg$c68","peg$c70","peg$c71","peg$c73","peg$c74","peg$c75","peg$c79","peg$c82","peg$c85","peg$c88","peg$c91","peg$c94","peg$c97","peg$c100","peg$c102","peg$c104","peg$c106","peg$c108","peg$c110","peg$currPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$resultsCache","startRule","ignoreCase","peg$computePosDetails","pos","p","details","peg$computeLocation","startPos","endPos","startPosDetails","endPosDetails","offset","peg$fail","s0","s1","s2","ss","cached","nextPos","peg$parse_","peg$parseselectors","selectors","peg$c1","peg$parseidentifierName","test","charAt","peg$parsebinaryOp","s3","s4","s5","s6","s7","peg$parseselector","concat","map","peg$parsesequence","reduce","memo","rhs","left","right","peg$parseatom","subject","as","peg$c23","peg$parsewildcard","peg$parseidentifier","peg$parseattrName","peg$parseattrEqOps","substr","peg$parsetype","flgs","peg$parseflags","RegExp","peg$parseregex","peg$parseattrOps","peg$parsestring","leadingDecimals","apply","parseFloat","peg$c61","peg$parsenumber","peg$parsepath","peg$parseattrValue","peg$parseattr","peg$parsefield","peg$parsenegation","peg$parsematches","peg$parsehas","nth","peg$parsefirstChild","nthLast","peg$parselastChild","parseInt","peg$parsenthChild","peg$parsenthLastChild","toLowerCase","peg$parseclass","n","index","factory","matches","selector","ancestry","split","inPath","ancestor","field","remainingPath","l","collector","estraverse","[object Object]","unshift","shift","getPath","sibling","adjacent","nthChild","side","listProp","startIndex","indexOf","lowerBound","k","idx","idxFn","ast","results","altSubjects","subjects","sel","entries","m","parser","query"],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.min.js:1:!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).esquery=t()}(this,(function(){"use strict";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function e(e,t){return e(t={exports:{}},t.exports),t.exports}var t=e((function(e,t){!function e(t){var r,n,s,o,a,i;function l(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?l(r):r);return n}function u(e,t){this.parent=e,this.key=t}function c(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function p(){}function f(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function h(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function d(e,t){return(new p).traverse(e,t)}function x(e,t){var r;return r=function(e,t){var r,n,s,o;for(n=e.length,s=0;n;)t(e[o=s+(r=n>>>1)])?n=r:(s=o+1,n-=r+1);return s}(t,(function(t){return t.range[0]>e.range[0]})),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},s={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n={Break:o={},Skip:a={},Remove:i={}},u.prototype.replace=function(e){this.parent[this.key]=e},u.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},p.prototype.path=function(){var e,t,r,n,s;function o(e,t){if(Array.isArray(t))for(r=0,n=t.length;r<n;++r)e.push(t[r]);else e.push(t)}if(!this.__current.path)return null;for(s=[],e=2,t=this.__leavelist.length;e<t;++e)o(s,this.__leavelist[e].path);return o(s,this.__current.path),s},p.prototype.type=function(){return this.current().type||this.__current.wrap},p.prototype.parents=function(){var e,t,r;for(r=[],e=1,t=this.__leavelist.length;e<t;++e)r.push(this.__leavelist[e].node);return r},p.prototype.current=function(){return this.__current.node},p.prototype.__execute=function(e,t){var r,n;return n=void 0,r=this.__current,this.__current=t,this.__state=null,e&&(n=e.call(this,t.node,this.__leavelist[this.__leavelist.length-1].node)),this.__current=r,n},p.prototype.notify=function(e){this.__state=e},p.prototype.skip=function(){this.notify(a)},p.prototype.break=function(){this.notify(o)},p.prototype.remove=function(){this.notify(i)},p.prototype.__initialize=function(e,t){this.visitor=t,this.root=e,this.__worklist=[],this.__leavelist=[],this.__current=null,this.__state=null,this.__fallback=null,"iteration"===t.fallback?this.__fallback=Object.keys:"function"==typeof t.fallback&&(this.__fallback=t.fallback),this.__keys=s,t.keys&&(this.__keys=Object.assign(Object.create(this.__keys),t.keys))},p.prototype.traverse=function(e,t){var r,n,s,i,l,u,p,d,x,m,y,g;for(this.__initialize(e,t),g={},r=this.__worklist,n=this.__leavelist,r.push(new c(e,null,null,null)),n.push(new c(null,null,null,null));r.length;)if((s=r.pop())!==g){if(s.node){if(u=this.__execute(t.enter,s),this.__state===o||u===o)return;if(r.push(g),n.push(s),this.__state===a||u===a)continue;if(l=(i=s.node).type||s.wrap,!(m=this.__keys[l])){if(!this.__fallback)throw new Error("Unknown node type "+l+".");m=this.__fallback(i)}for(d=m.length;(d-=1)>=0;)if(y=i[p=m[d]])if(Array.isArray(y)){for(x=y.length;(x-=1)>=0;)if(y[x]){if(h(l,m[d]))s=new c(y[x],[p,x],"Property",null);else{if(!f(y[x]))continue;s=new c(y[x],[p,x],null,null)}r.push(s)}}else f(y)&&r.push(new c(y,p,null,null))}}else if(s=n.pop(),u=this.__execute(t.leave,s),this.__state===o||u===o)return},p.prototype.replace=function(e,t){var r,n,s,l,p,d,x,m,y,g,v,A,E;function _(e){var t,n,s,o;if(e.ref.remove())for(n=e.ref.key,o=e.ref.parent,t=r.length;t--;)if((s=r[t]).ref&&s.ref.parent===o){if(s.ref.key<n)break;--s.ref.key}}for(this.__initialize(e,t),v={},r=this.__worklist,n=this.__leavelist,d=new c(e,null,null,new u(A={root:e},"root")),r.push(d),n.push(d);r.length;)if((d=r.pop())!==v){if(void 0!==(p=this.__execute(t.enter,d))&&p!==o&&p!==a&&p!==i&&(d.ref.replace(p),d.node=p),this.__state!==i&&p!==i||(_(d),d.node=null),this.__state===o||p===o)return A.root;if((s=d.node)&&(r.push(v),n.push(d),this.__state!==a&&p!==a)){if(l=s.type||d.wrap,!(y=this.__keys[l])){if(!this.__fallback)throw new Error("Unknown node type "+l+".");y=this.__fallback(s)}for(x=y.length;(x-=1)>=0;)if(g=s[E=y[x]])if(Array.isArray(g)){for(m=g.length;(m-=1)>=0;)if(g[m]){if(h(l,y[x]))d=new c(g[m],[E,m],"Property",new u(g,m));else{if(!f(g[m]))continue;d=new c(g[m],[E,m],null,new u(g,m))}r.push(d)}}else f(g)&&r.push(new c(g,E,null,new u(s,E)))}}else if(d=n.pop(),void 0!==(p=this.__execute(t.leave,d))&&p!==o&&p!==a&&p!==i&&d.ref.replace(p),this.__state!==i&&p!==i||_(d),this.__state===o||p===o)return A.root;return A.root},t.Syntax=r,t.traverse=d,t.replace=function(e,t){return(new p).replace(e,t)},t.attachComments=function(e,t,r){var s,o,a,i,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(a=0,o=t.length;a<o;a+=1)(s=l(t[a])).extendedRange=[0,e.range[0]],u.push(s);e.leadingComments=u}return e}for(a=0,o=t.length;a<o;a+=1)u.push(x(l(t[a]),r));return i=0,d(e,{enter:function(e){for(var t;i<u.length&&!((t=u[i]).extendedRange[1]>e.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(i,1)):i+=1;return i===u.length?n.Break:u[i].extendedRange[0]>e.range[1]?n.Skip:void 0}}),i=0,d(e,{leave:function(e){for(var t;i<u.length&&(t=u[i],!(e.range[1]<t.extendedRange[0]));)e.range[1]===t.extendedRange[0]?(e.trailingComments||(e.trailingComments=[]),e.trailingComments.push(t),u.splice(i,1)):i+=1;return i===u.length?n.Break:u[i].extendedRange[0]>e.range[1]?n.Skip:void 0}}),e},t.VisitorKeys=s,t.VisitorOption=n,t.Controller=p,t.cloneEnvironment=function(){return e({})},t}(t)})),r=e((function(e){e.exports&&(e.exports=function(){function e(t,r,n,s){this.message=t,this.expected=r,this.found=n,this.location=s,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+s(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?o(e.parts[t][0])+"-"+o(e.parts[t][1]):o(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function s(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function o(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return"Expected "+function(e){var t,n,s,o=new Array(e.length);for(t=0;t<e.length;t++)o[t]=(s=e[t],r[s.type](s));if(o.sort(),o.length>0){for(t=1,n=1;t<o.length;t++)o[t-1]!==o[t]&&(o[n]=o[t],n++);o.length=n}switch(o.length){case 1:return o[0];case 2:return o[0]+" or "+o[1];default:return o.slice(0,-1).join(", ")+", or "+o[o.length-1]}}(e)+" but "+function(e){return e?'"'+s(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,s,o,a,i={},l={start:Ee},u=Ee,c=me(" ",!1),p=/^[^ [\],():#!=><~+.]/,f=ye([" ","[","]",",","(",")",":","#","!","=",">","<","~","+","."],!0,!1),h=function(e){return e.join("")},d=me(">",!1),x=me("~",!1),m=me("+",!1),y=me(",",!1),g=me("!",!1),v=me("*",!1),A=me("#",!1),E=me("[",!1),_=me("]",!1),b=/^[><!]/,S=ye([">","<","!"],!1,!1),C=me("=",!1),w=function(e){return(e||"")+"="},P=/^[><]/,k=ye([">","<"],!1,!1),D=me(".",!1),I=function(e,t,r){return{type:"attribute",name:e,operator:t,value:r}},j=me('"',!1),F=/^[^\\"]/,T=ye(["\\",'"'],!0,!1),L=me("\\",!1),R={type:"any"},O=function(e,t){return e+t},B=function(e){return{type:"literal",value:(t=e.join(""),t.replace(/\\(.)/g,(function(e,t){switch(t){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";default:return t}})))};var t},M=me("'",!1),U=/^[^\\']/,V=ye(["\\","'"],!0,!1),q=/^[0-9]/,N=ye([["0","9"]],!1,!1),W=me("type(",!1),$=/^[^ )]/,G=ye([" ",")"],!0,!1),z=me(")",!1),K=/^[imsu]/,H=ye(["i","m","s","u"],!1,!1),Y=me("/",!1),J=/^[^\/]/,Q=ye(["/"],!0,!1),X=me(":not(",!1),Z=me(":matches(",!1),ee=me(":has(",!1),te=me(":first-child",!1),re=me(":last-child",!1),ne=me(":nth-child(",!1),se=me(":nth-last-child(",!1),oe=me(":",!1),ae=me("statement",!0),ie=me("expression",!0),le=me("declaration",!0),ue=me("function",!0),ce=me("pattern",!0),pe=0,fe=[{line:1,column:1}],he=0,de=[],xe={};if("startRule"in r){if(!(r.startRule in l))throw new Error("Can't start parsing from rule \""+r.startRule+'".');u=l[r.startRule]}function me(e,t){return{type:"literal",text:e,ignoreCase:t}}function ye(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function ge(e){var r,n=fe[e];if(n)return n;for(r=e-1;!fe[r];)r--;for(n={line:(n=fe[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return fe[e]=n,n}function ve(e,t){var r=ge(e),n=ge(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function Ae(e){pe<he||(pe>he&&(he=pe,de=[]),de.push(e))}function Ee(){var e,t,r,n,s=30*pe+0,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,(t=_e())!==i&&(r=Ce())!==i&&_e()!==i?e=t=1===(n=r).length?n[0]:{type:"matches",selectors:n}:(pe=e,e=i),e===i&&(e=pe,(t=_e())!==i&&(t=void 0),e=t),xe[s]={nextPos:pe,result:e},e)}function _e(){var e,r,n=30*pe+1,s=xe[n];if(s)return pe=s.nextPos,s.result;for(e=[],32===t.charCodeAt(pe)?(r=" ",pe++):(r=i,Ae(c));r!==i;)e.push(r),32===t.charCodeAt(pe)?(r=" ",pe++):(r=i,Ae(c));return xe[n]={nextPos:pe,result:e},e}function be(){var e,r,n,s=30*pe+2,o=xe[s];if(o)return pe=o.nextPos,o.result;if(r=[],p.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=i,Ae(f)),n!==i)for(;n!==i;)r.push(n),p.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=i,Ae(f));else r=i;return r!==i&&(r=h(r)),e=r,xe[s]={nextPos:pe,result:e},e}function Se(){var e,r,n,s=30*pe+3,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,(r=_e())!==i?(62===t.charCodeAt(pe)?(n=">",pe++):(n=i,Ae(d)),n!==i&&_e()!==i?e=r="child":(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,(r=_e())!==i?(126===t.charCodeAt(pe)?(n="~",pe++):(n=i,Ae(x)),n!==i&&_e()!==i?e=r="sibling":(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,(r=_e())!==i?(43===t.charCodeAt(pe)?(n="+",pe++):(n=i,Ae(m)),n!==i&&_e()!==i?e=r="adjacent":(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,32===t.charCodeAt(pe)?(r=" ",pe++):(r=i,Ae(c)),r!==i&&(n=_e())!==i?e=r="descendant":(pe=e,e=i)))),xe[s]={nextPos:pe,result:e},e)}function Ce(){var e,r,n,s,o,a,l,u,c=30*pe+4,p=xe[c];if(p)return pe=p.nextPos,p.result;if(e=pe,(r=we())!==i){for(n=[],s=pe,(o=_e())!==i?(44===t.charCodeAt(pe)?(a=",",pe++):(a=i,Ae(y)),a!==i&&(l=_e())!==i&&(u=we())!==i?s=o=[o,a,l,u]:(pe=s,s=i)):(pe=s,s=i);s!==i;)n.push(s),s=pe,(o=_e())!==i?(44===t.charCodeAt(pe)?(a=",",pe++):(a=i,Ae(y)),a!==i&&(l=_e())!==i&&(u=we())!==i?s=o=[o,a,l,u]:(pe=s,s=i)):(pe=s,s=i);n!==i?e=r=[r].concat(n.map((function(e){return e[3]}))):(pe=e,e=i)}else pe=e,e=i;return xe[c]={nextPos:pe,result:e},e}function we(){var e,t,r,n,s,o,a,l=30*pe+5,u=xe[l];if(u)return pe=u.nextPos,u.result;if(e=pe,(t=Pe())!==i){for(r=[],n=pe,(s=Se())!==i&&(o=Pe())!==i?n=s=[s,o]:(pe=n,n=i);n!==i;)r.push(n),n=pe,(s=Se())!==i&&(o=Pe())!==i?n=s=[s,o]:(pe=n,n=i);r!==i?(a=t,e=t=r.reduce((function(e,t){return{type:t[0],left:e,right:t[1]}}),a)):(pe=e,e=i)}else pe=e,e=i;return xe[l]={nextPos:pe,result:e},e}function Pe(){var e,r,n,s,o=30*pe+6,a=xe[o];if(a)return pe=a.nextPos,a.result;if(e=pe,33===t.charCodeAt(pe)?(r="!",pe++):(r=i,Ae(g)),r===i&&(r=null),r!==i){if(n=[],(s=ke())!==i)for(;s!==i;)n.push(s),s=ke();else n=i;n!==i?e=r=function(e,t){const r=1===t.length?t[0]:{type:"compound",selectors:t};return e&&(r.subject=!0),r}(r,n):(pe=e,e=i)}else pe=e,e=i;return xe[o]={nextPos:pe,result:e},e}function ke(){var e,r=30*pe+7,n=xe[r];return n?(pe=n.nextPos,n.result):((e=function(){var e,r,n=30*pe+8,s=xe[n];return s?(pe=s.nextPos,s.result):(42===t.charCodeAt(pe)?(r="*",pe++):(r=i,Ae(v)),r!==i&&(r={type:"wildcard",value:r}),e=r,xe[n]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s=30*pe+9,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,35===t.charCodeAt(pe)?(r="#",pe++):(r=i,Ae(A)),r===i&&(r=null),r!==i&&(n=be())!==i?e=r={type:"identifier",value:n}:(pe=e,e=i),xe[s]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o=30*pe+10,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,91===t.charCodeAt(pe)?(r="[",pe++):(r=i,Ae(E)),r!==i&&_e()!==i&&(n=function(){var e,r,n,s,o=30*pe+14,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,(r=De())!==i&&_e()!==i&&(n=function(){var e,r,n,s=30*pe+12,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,33===t.charCodeAt(pe)?(r="!",pe++):(r=i,Ae(g)),r===i&&(r=null),r!==i?(61===t.charCodeAt(pe)?(n="=",pe++):(n=i,Ae(C)),n!==i?(r=w(r),e=r):(pe=e,e=i)):(pe=e,e=i),xe[s]={nextPos:pe,result:e},e)}())!==i&&_e()!==i?((s=function(){var e,r,n,s,o,a=30*pe+18,l=xe[a];if(l)return pe=l.nextPos,l.result;if(e=pe,"type("===t.substr(pe,5)?(r="type(",pe+=5):(r=i,Ae(W)),r!==i)if(_e()!==i){if(n=[],$.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(G)),s!==i)for(;s!==i;)n.push(s),$.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(G));else n=i;n!==i&&(s=_e())!==i?(41===t.charCodeAt(pe)?(o=")",pe++):(o=i,Ae(z)),o!==i?(r={type:"type",value:n.join("")},e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;else pe=e,e=i;return xe[a]={nextPos:pe,result:e},e}())===i&&(s=function(){var e,r,n,s,o,a,l=30*pe+20,u=xe[l];if(u)return pe=u.nextPos,u.result;if(e=pe,47===t.charCodeAt(pe)?(r="/",pe++):(r=i,Ae(Y)),r!==i){if(n=[],J.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(Q)),s!==i)for(;s!==i;)n.push(s),J.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(Q));else n=i;n!==i?(47===t.charCodeAt(pe)?(s="/",pe++):(s=i,Ae(Y)),s!==i?((o=function(){var e,r,n=30*pe+19,s=xe[n];if(s)return pe=s.nextPos,s.result;if(e=[],K.test(t.charAt(pe))?(r=t.charAt(pe),pe++):(r=i,Ae(H)),r!==i)for(;r!==i;)e.push(r),K.test(t.charAt(pe))?(r=t.charAt(pe),pe++):(r=i,Ae(H));else e=i;return xe[n]={nextPos:pe,result:e},e}())===i&&(o=null),o!==i?(a=o,r={type:"regexp",value:new RegExp(n.join(""),a?a.join(""):"")},e=r):(pe=e,e=i)):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;return xe[l]={nextPos:pe,result:e},e}()),s!==i?(r=I(r,n,s),e=r):(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,(r=De())!==i&&_e()!==i&&(n=function(){var e,r,n,s=30*pe+11,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,b.test(t.charAt(pe))?(r=t.charAt(pe),pe++):(r=i,Ae(S)),r===i&&(r=null),r!==i?(61===t.charCodeAt(pe)?(n="=",pe++):(n=i,Ae(C)),n!==i?(r=w(r),e=r):(pe=e,e=i)):(pe=e,e=i),e===i&&(P.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=i,Ae(k))),xe[s]={nextPos:pe,result:e},e)}())!==i&&_e()!==i?((s=function(){var e,r,n,s,o,a,l=30*pe+15,u=xe[l];if(u)return pe=u.nextPos,u.result;if(e=pe,34===t.charCodeAt(pe)?(r='"',pe++):(r=i,Ae(j)),r!==i){for(n=[],F.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(T)),s===i&&(s=pe,92===t.charCodeAt(pe)?(o="\\",pe++):(o=i,Ae(L)),o!==i?(t.length>pe?(a=t.charAt(pe),pe++):(a=i,Ae(R)),a!==i?(o=O(o,a),s=o):(pe=s,s=i)):(pe=s,s=i));s!==i;)n.push(s),F.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(T)),s===i&&(s=pe,92===t.charCodeAt(pe)?(o="\\",pe++):(o=i,Ae(L)),o!==i?(t.length>pe?(a=t.charAt(pe),pe++):(a=i,Ae(R)),a!==i?(o=O(o,a),s=o):(pe=s,s=i)):(pe=s,s=i));n!==i?(34===t.charCodeAt(pe)?(s='"',pe++):(s=i,Ae(j)),s!==i?(r=B(n),e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;if(e===i)if(e=pe,39===t.charCodeAt(pe)?(r="'",pe++):(r=i,Ae(M)),r!==i){for(n=[],U.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(V)),s===i&&(s=pe,92===t.charCodeAt(pe)?(o="\\",pe++):(o=i,Ae(L)),o!==i?(t.length>pe?(a=t.charAt(pe),pe++):(a=i,Ae(R)),a!==i?(o=O(o,a),s=o):(pe=s,s=i)):(pe=s,s=i));s!==i;)n.push(s),U.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(V)),s===i&&(s=pe,92===t.charCodeAt(pe)?(o="\\",pe++):(o=i,Ae(L)),o!==i?(t.length>pe?(a=t.charAt(pe),pe++):(a=i,Ae(R)),a!==i?(o=O(o,a),s=o):(pe=s,s=i)):(pe=s,s=i));n!==i?(39===t.charCodeAt(pe)?(s="'",pe++):(s=i,Ae(M)),s!==i?(r=B(n),e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;return xe[l]={nextPos:pe,result:e},e}())===i&&(s=function(){var e,r,n,s,o=30*pe+16,a=xe[o];if(a)return pe=a.nextPos,a.result;for(e=pe,r=pe,n=[],q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));s!==i;)n.push(s),q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));if(n!==i?(46===t.charCodeAt(pe)?(s=".",pe++):(s=i,Ae(D)),s!==i?r=n=[n,s]:(pe=r,r=i)):(pe=r,r=i),r===i&&(r=null),r!==i){if(n=[],q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N)),s!==i)for(;s!==i;)n.push(s),q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));else n=i;n!==i?(r=function(e,t){const r=e?[].concat.apply([],e).join(""):"";return{type:"literal",value:parseFloat(r+t.join(""))}}(r,n),e=r):(pe=e,e=i)}else pe=e,e=i;return xe[o]={nextPos:pe,result:e},e}())===i&&(s=function(){var e,t,r=30*pe+17,n=xe[r];return n?(pe=n.nextPos,n.result):((t=be())!==i&&(t={type:"literal",value:t}),e=t,xe[r]={nextPos:pe,result:e},e)}()),s!==i?(r=I(r,n,s),e=r):(pe=e,e=i)):(pe=e,e=i),e===i&&(e=pe,(r=De())!==i&&(r={type:"attribute",name:r}),e=r)),xe[o]={nextPos:pe,result:e},e)}())!==i&&_e()!==i?(93===t.charCodeAt(pe)?(s="]",pe++):(s=i,Ae(_)),s!==i?e=r=n:(pe=e,e=i)):(pe=e,e=i),xe[o]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o,a,l,u,c=30*pe+21,p=xe[c];if(p)return pe=p.nextPos,p.result;if(e=pe,46===t.charCodeAt(pe)?(r=".",pe++):(r=i,Ae(D)),r!==i)if((n=be())!==i){for(s=[],o=pe,46===t.charCodeAt(pe)?(a=".",pe++):(a=i,Ae(D)),a!==i&&(l=be())!==i?o=a=[a,l]:(pe=o,o=i);o!==i;)s.push(o),o=pe,46===t.charCodeAt(pe)?(a=".",pe++):(a=i,Ae(D)),a!==i&&(l=be())!==i?o=a=[a,l]:(pe=o,o=i);s!==i?(u=n,r={type:"field",name:s.reduce((function(e,t){return e+t[0]+t[1]}),u)},e=r):(pe=e,e=i)}else pe=e,e=i;else pe=e,e=i;return xe[c]={nextPos:pe,result:e},e}())===i&&(e=function(){var e,r,n,s,o=30*pe+22,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,":not("===t.substr(pe,5)?(r=":not(",pe+=5):(r=i,Ae(X)),r!==i&&_e()!==i&&(n=Ce())!==i&&_e()!==i?(41===t.charCodeAt(pe)?(s=")",pe++):(s=i,Ae(z)),s!==i?e=r={type:"not",selectors:n}:(pe=e,e=i)):(pe=e,e=i),xe[o]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o=30*pe+23,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,":matches("===t.substr(pe,9)?(r=":matches(",pe+=9):(r=i,Ae(Z)),r!==i&&_e()!==i&&(n=Ce())!==i&&_e()!==i?(41===t.charCodeAt(pe)?(s=")",pe++):(s=i,Ae(z)),s!==i?e=r={type:"matches",selectors:n}:(pe=e,e=i)):(pe=e,e=i),xe[o]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o=30*pe+24,a=xe[o];return a?(pe=a.nextPos,a.result):(e=pe,":has("===t.substr(pe,5)?(r=":has(",pe+=5):(r=i,Ae(ee)),r!==i&&_e()!==i&&(n=Ce())!==i&&_e()!==i?(41===t.charCodeAt(pe)?(s=")",pe++):(s=i,Ae(z)),s!==i?e=r={type:"has",selectors:n}:(pe=e,e=i)):(pe=e,e=i),xe[o]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n=30*pe+25,s=xe[n];return s?(pe=s.nextPos,s.result):(":first-child"===t.substr(pe,12)?(r=":first-child",pe+=12):(r=i,Ae(te)),r!==i&&(r=Ie(1)),e=r,xe[n]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n=30*pe+26,s=xe[n];return s?(pe=s.nextPos,s.result):(":last-child"===t.substr(pe,11)?(r=":last-child",pe+=11):(r=i,Ae(re)),r!==i&&(r=je(1)),e=r,xe[n]={nextPos:pe,result:e},e)}())===i&&(e=function(){var e,r,n,s,o,a=30*pe+27,l=xe[a];if(l)return pe=l.nextPos,l.result;if(e=pe,":nth-child("===t.substr(pe,11)?(r=":nth-child(",pe+=11):(r=i,Ae(ne)),r!==i)if(_e()!==i){if(n=[],q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N)),s!==i)for(;s!==i;)n.push(s),q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));else n=i;n!==i&&(s=_e())!==i?(41===t.charCodeAt(pe)?(o=")",pe++):(o=i,Ae(z)),o!==i?(r=Ie(parseInt(n.join(""),10)),e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;else pe=e,e=i;return xe[a]={nextPos:pe,result:e},e}())===i&&(e=function(){var e,r,n,s,o,a=30*pe+28,l=xe[a];if(l)return pe=l.nextPos,l.result;if(e=pe,":nth-last-child("===t.substr(pe,16)?(r=":nth-last-child(",pe+=16):(r=i,Ae(se)),r!==i)if(_e()!==i){if(n=[],q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N)),s!==i)for(;s!==i;)n.push(s),q.test(t.charAt(pe))?(s=t.charAt(pe),pe++):(s=i,Ae(N));else n=i;n!==i&&(s=_e())!==i?(41===t.charCodeAt(pe)?(o=")",pe++):(o=i,Ae(z)),o!==i?(r=je(parseInt(n.join(""),10)),e=r):(pe=e,e=i)):(pe=e,e=i)}else pe=e,e=i;else pe=e,e=i;return xe[a]={nextPos:pe,result:e},e}())===i&&(e=function(){var e,r,n,s=30*pe+29,o=xe[s];return o?(pe=o.nextPos,o.result):(e=pe,58===t.charCodeAt(pe)?(r=":",pe++):(r=i,Ae(oe)),r!==i?("statement"===t.substr(pe,9).toLowerCase()?(n=t.substr(pe,9),pe+=9):(n=i,Ae(ae)),n===i&&("expression"===t.substr(pe,10).toLowerCase()?(n=t.substr(pe,10),pe+=10):(n=i,Ae(ie)),n===i&&("declaration"===t.substr(pe,11).toLowerCase()?(n=t.substr(pe,11),pe+=11):(n=i,Ae(le)),n===i&&("function"===t.substr(pe,8).toLowerCase()?(n=t.substr(pe,8),pe+=8):(n=i,Ae(ue)),n===i&&("pattern"===t.substr(pe,7).toLowerCase()?(n=t.substr(pe,7),pe+=7):(n=i,Ae(ce)))))),n!==i?e=r={type:"class",name:n}:(pe=e,e=i)):(pe=e,e=i),xe[s]={nextPos:pe,result:e},e)}()),xe[r]={nextPos:pe,result:e},e)}function De(){var e,r,n,s=30*pe+13,o=xe[s];if(o)return pe=o.nextPos,o.result;if(r=[],(n=be())===i&&(46===t.charCodeAt(pe)?(n=".",pe++):(n=i,Ae(D))),n!==i)for(;n!==i;)r.push(n),(n=be())===i&&(46===t.charCodeAt(pe)?(n=".",pe++):(n=i,Ae(D)));else r=i;return r!==i&&(r=h(r)),e=r,xe[s]={nextPos:pe,result:e},e}function Ie(e){return{type:"nth-child",index:{type:"literal",value:e}}}function je(e){return{type:"nth-last-child",index:{type:"literal",value:e}}}if((n=u())!==i&&pe===t.length)return n;throw n!==i&&pe<t.length&&Ae({type:"end"}),s=de,o=he<t.length?t.charAt(he):null,a=he<t.length?ve(he,he+1):ve(he,he),new e(e.buildMessage(s,o),s,o,a)}}}())}));function n(e,r,i){if(!r)return!0;if(!e)return!1;switch(i||(i=[]),r.type){case"wildcard":return!0;case"identifier":return r.value.toLowerCase()===e.type.toLowerCase();case"field":{const t=r.name.split(".");return function e(t,r,n){if(0===n.length)return t===r;if(null==r)return!1;const s=r[n[0]],o=n.slice(1);if(Array.isArray(s)){for(let r=0,n=s.length;r<n;++r)if(e(t,s[r],o))return!0;return!1}return e(t,s,o)}(e,i[t.length-1],t)}case"matches":for(let t=0,s=r.selectors.length;t<s;++t)if(n(e,r.selectors[t],i))return!0;return!1;case"compound":for(let t=0,s=r.selectors.length;t<s;++t)if(!n(e,r.selectors[t],i))return!1;return!0;case"not":for(let t=0,s=r.selectors.length;t<s;++t)if(n(e,r.selectors[t],i))return!1;return!0;case"has":{const s=[];for(let o=0,a=r.selectors.length;o<a;++o){const a=[];t.traverse(e,{enter(e,t){null!=t&&a.unshift(t),n(e,r.selectors[o],a)&&s.push(e)},leave(){a.shift()},fallback:"iteration"})}return 0!==s.length}case"child":return!!n(e,r.right,i)&&n(i[0],r.left,i.slice(1));case"descendant":if(n(e,r.right,i))for(let e=0,t=i.length;e<t;++e)if(n(i[e],r.left,i.slice(e+1)))return!0;return!1;case"attribute":{const t=function(e,t){const r=t.split(".");for(let t=0;t<r.length;t++){if(null==e)return e;e=e[r[t]]}return e}(e,r.name);switch(r.operator){case void 0:return null!=t;case"=":switch(r.value.type){case"regexp":return"string"==typeof t&&r.value.value.test(t);case"literal":return`${r.value.value}`===`${t}`;case"type":return r.value.value===typeof t}throw new Error(`Unknown selector value type: ${r.value.type}`);case"!=":switch(r.value.type){case"regexp":return!r.value.value.test(t);case"literal":return`${r.value.value}`!==`${t}`;case"type":return r.value.value!==typeof t}throw new Error(`Unknown selector value type: ${r.value.type}`);case"<=":return t<=r.value.value;case"<":return t<r.value.value;case">":return t>r.value.value;case">=":return t>=r.value.value}throw new Error(`Unknown operator: ${r.operator}`)}case"sibling":return n(e,r.right,i)&&s(e,r.left,i,"LEFT_SIDE")||r.left.subject&&n(e,r.left,i)&&s(e,r.right,i,"RIGHT_SIDE");case"adjacent":return n(e,r.right,i)&&o(e,r.left,i,"LEFT_SIDE")||r.right.subject&&n(e,r.left,i)&&o(e,r.right,i,"RIGHT_SIDE");case"nth-child":return n(e,r.right,i)&&a(e,i,(function(){return r.index.value-1}));case"nth-last-child":return n(e,r.right,i)&&a(e,i,(function(e){return e-r.index.value}));case"class":switch(r.name.toLowerCase()){case"statement":if("Statement"===e.type.slice(-9))return!0;case"declaration":return"Declaration"===e.type.slice(-11);case"pattern":if("Pattern"===e.type.slice(-7))return!0;case"expression":return"Expression"===e.type.slice(-10)||"Literal"===e.type.slice(-7)||"Identifier"===e.type&&(0===i.length||"MetaProperty"!==i[0].type)||"MetaProperty"===e.type;case"function":return"FunctionDeclaration"===e.type||"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type}throw new Error(`Unknown class name: ${r.name}`)}throw new Error(`Unknown selector type: ${r.type}`)}function s(e,r,s,o){const[a]=s;if(!a)return!1;const i=t.VisitorKeys[a.type];for(let t=0,l=i.length;t<l;++t){const l=a[i[t]];if(Array.isArray(l)){const t=l.indexOf(e);if(t<0)continue;let a,i;"LEFT_SIDE"===o?(a=0,i=t):(a=t+1,i=l.length);for(let e=a;e<i;++e)if(n(l[e],r,s))return!0}}return!1}function o(e,r,s,o){const[a]=s;if(!a)return!1;const i=t.VisitorKeys[a.type];for(let t=0,l=i.length;t<l;++t){const l=a[i[t]];if(Array.isArray(l)){const t=l.indexOf(e);if(t<0)continue;if("LEFT_SIDE"===o&&t>0&&n(l[t-1],r,s))return!0;if("RIGHT_SIDE"===o&&t<l.length-1&&n(l[t+1],r,s))return!0}}return!1}function a(e,r,n){const[s]=r;if(!s)return!1;const o=t.VisitorKeys[s.type];for(let t=0,r=o.length;t<r;++t){const r=s[o[t]];if(Array.isArray(r)){const t=r.indexOf(e);if(t>=0&&t===n(r.length))return!0}}return!1}function i(e,r){const s=[],o=[];if(!r)return o;const a=function e(t,r){if(null==t||"object"!=typeof t)return[];null==r&&(r=t);const n=t.subject?[r]:[];for(const[s,o]of Object.entries(t))n.push(...e(o,"left"===s?o:r));return n}(r);return t.traverse(e,{enter(e,t){if(null!=t&&s.unshift(t),n(e,r,s))if(a.length)for(let t=0,r=a.length;t<r;++t){n(e,a[t],s)&&o.push(e);for(let e=0,r=s.length;e<r;++e)n(s[e],a[t],s.slice(e+1))&&o.push(s[e])}else o.push(e)},leave(){s.shift()},fallback:"iteration"}),o}function l(e){return r.parse(e)}function u(e,t){return i(e,l(t))}return u.parse=l,u.match=i,u.matches=n,u.query=u,u}));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.min.js-2-//# sourceMappingURL=esquery.min.js.map
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3446-	                        case 'regexp': return typeof p === 'string' && selector.value.value.test(p);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js:3447:	                        case 'literal': return `${selector.value.value}` === `${p}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3448-	                        case 'type': return selector.value.value === typeof p;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3449-	                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js:3450:	                    throw new Error(`Unknown selector value type: ${selector.value.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3451-	                case '!=':
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3453-	                        case 'regexp': return !selector.value.value.test(p);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js:3454:	                        case 'literal': return `${selector.value.value}` !== `${p}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3455-	                        case 'type': return selector.value.value !== typeof p;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3456-	                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js:3457:	                    throw new Error(`Unknown selector value type: ${selector.value.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3458-	                case '<=': return p <= selector.value.value;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3462-	            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js:3463:	            throw new Error(`Unknown operator: ${selector.operator}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3464-	        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3512-	            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js:3513:	            throw new Error(`Unknown class name: ${selector.name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3514-	    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3515-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js:3516:	    throw new Error(`Unknown selector type: ${selector.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.js-3517-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/esquery/dist/esquery.esm.min.js.map:1:{"version":3,"file":"esquery.esm.min.js","sources":["../node_modules/estraverse/estraverse.js","../parser.js","../esquery.js"],"sourcesContent":["/*\n  Copyright (C) 2012-2013 Yusuke Suzuki <utatane.tea@gmail.com>\n  Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com>\n\n  Redistribution and use in source and binary forms, with or without\n  modification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n\n  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*jslint vars:false, bitwise:true*/\n/*jshint indent:4*/\n/*global exports:true*/\n(function clone(exports) {\n    'use strict';\n\n    var Syntax,\n        VisitorOption,\n        VisitorKeys,\n        BREAK,\n        SKIP,\n        REMOVE;\n\n    function deepCopy(obj) {\n        var ret = {}, key, val;\n        for (key in obj) {\n            if (obj.hasOwnProperty(key)) {\n                val = obj[key];\n                if (typeof val === 'object' && val !== null) {\n                    ret[key] = deepCopy(val);\n                } else {\n                    ret[key] = val;\n                }\n            }\n        }\n        return ret;\n    }\n\n    // based on LLVM libc++ upper_bound / lower_bound\n    // MIT License\n\n    function upperBound(array, func) {\n        var diff, len, i, current;\n\n        len = array.length;\n        i = 0;\n\n        while (len) {\n            diff = len >>> 1;\n            current = i + diff;\n            if (func(array[current])) {\n                len = diff;\n            } else {\n                i = current + 1;\n                len -= diff + 1;\n            }\n        }\n        return i;\n    }\n\n    Syntax = {\n        AssignmentExpression: 'AssignmentExpression',\n        AssignmentPattern: 'AssignmentPattern',\n        ArrayExpression: 'ArrayExpression',\n        ArrayPattern: 'ArrayPattern',\n        ArrowFunctionExpression: 'ArrowFunctionExpression',\n        AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7.\n        BlockStatement: 'BlockStatement',\n        BinaryExpression: 'BinaryExpression',\n        BreakStatement: 'BreakStatement',\n        CallExpression: 'CallExpression',\n        CatchClause: 'CatchClause',\n        ClassBody: 'ClassBody',\n        ClassDeclaration: 'ClassDeclaration',\n        ClassExpression: 'ClassExpression',\n        ComprehensionBlock: 'ComprehensionBlock',  // CAUTION: It's deferred to ES7.\n        ComprehensionExpression: 'ComprehensionExpression',  // CAUTION: It's deferred to ES7.\n        ConditionalExpression: 'ConditionalExpression',\n        ContinueStatement: 'ContinueStatement',\n        DebuggerStatement: 'DebuggerStatement',\n        DirectiveStatement: 'DirectiveStatement',\n        DoWhileStatement: 'DoWhileStatement',\n        EmptyStatement: 'EmptyStatement',\n        ExportAllDeclaration: 'ExportAllDeclaration',\n        ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n        ExportNamedDeclaration: 'ExportNamedDeclaration',\n        ExportSpecifier: 'ExportSpecifier',\n        ExpressionStatement: 'ExpressionStatement',\n        ForStatement: 'ForStatement',\n        ForInStatement: 'ForInStatement',\n        ForOfStatement: 'ForOfStatement',\n        FunctionDeclaration: 'FunctionDeclaration',\n        FunctionExpression: 'FunctionExpression',\n        GeneratorExpression: 'GeneratorExpression',  // CAUTION: It's deferred to ES7.\n        Identifier: 'Identifier',\n        IfStatement: 'IfStatement',\n        ImportExpression: 'ImportExpression',\n        ImportDeclaration: 'ImportDeclaration',\n        ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n        ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n        ImportSpecifier: 'ImportSpecifier',\n        Literal: 'Literal',\n        LabeledStatement: 'LabeledStatement',\n        LogicalExpression: 'LogicalExpression',\n        MemberExpression: 'MemberExpression',\n        MetaProperty: 'MetaProperty',\n        MethodDefinition: 'MethodDefinition',\n        ModuleSpecifier: 'ModuleSpecifier',\n        NewExpression: 'NewExpression',\n        ObjectExpression: 'ObjectExpression',\n        ObjectPattern: 'ObjectPattern',\n        Program: 'Program',\n        Property: 'Property',\n        RestElement: 'RestElement',\n        ReturnStatement: 'ReturnStatement',\n        SequenceExpression: 'SequenceExpression',\n        SpreadElement: 'SpreadElement',\n        Super: 'Super',\n        SwitchStatement: 'SwitchStatement',\n        SwitchCase: 'SwitchCase',\n        TaggedTemplateExpression: 'TaggedTemplateExpression',\n        TemplateElement: 'TemplateElement',\n        TemplateLiteral: 'TemplateLiteral',\n        ThisExpression: 'ThisExpression',\n        ThrowStatement: 'ThrowStatement',\n        TryStatement: 'TryStatement',\n        UnaryExpression: 'UnaryExpression',\n        UpdateExpression: 'UpdateExpression',\n        VariableDeclaration: 'VariableDeclaration',\n        VariableDeclarator: 'VariableDeclarator',\n        WhileStatement: 'WhileStatement',\n        WithStatement: 'WithStatement',\n        YieldExpression: 'YieldExpression'\n    };\n\n    VisitorKeys = {\n        AssignmentExpression: ['left', 'right'],\n        AssignmentPattern: ['left', 'right'],\n        ArrayExpression: ['elements'],\n        ArrayPattern: ['elements'],\n        ArrowFunctionExpression: ['params', 'body'],\n        AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7.\n        BlockStatement: ['body'],\n        BinaryExpression: ['left', 'right'],\n        BreakStatement: ['label'],\n        CallExpression: ['callee', 'arguments'],\n        CatchClause: ['param', 'body'],\n        ClassBody: ['body'],\n        ClassDeclaration: ['id', 'superClass', 'body'],\n        ClassExpression: ['id', 'superClass', 'body'],\n        ComprehensionBlock: ['left', 'right'],  // CAUTION: It's deferred to ES7.\n        ComprehensionExpression: ['blocks', 'filter', 'body'],  // CAUTION: It's deferred to ES7.\n        ConditionalExpression: ['test', 'consequent', 'alternate'],\n        ContinueStatement: ['label'],\n        DebuggerStatement: [],\n        DirectiveStatement: [],\n        DoWhileStatement: ['body', 'test'],\n        EmptyStatement: [],\n        ExportAllDeclaration: ['source'],\n        ExportDefaultDeclaration: ['declaration'],\n        ExportNamedDeclaration: ['declaration', 'specifiers', 'source'],\n        ExportSpecifier: ['exported', 'local'],\n        ExpressionStatement: ['expression'],\n        ForStatement: ['init', 'test', 'update', 'body'],\n        ForInStatement: ['left', 'right', 'body'],\n        ForOfStatement: ['left', 'right', 'body'],\n        FunctionDeclaration: ['id', 'params', 'body'],\n        FunctionExpression: ['id', 'params', 'body'],\n        GeneratorExpression: ['blocks', 'filter', 'body'],  // CAUTION: It's deferred to ES7.\n        Identifier: [],\n        IfStatement: ['test', 'consequent', 'alternate'],\n        ImportExpression: ['source'],\n        ImportDeclaration: ['specifiers', 'source'],\n        ImportDefaultSpecifier: ['local'],\n        ImportNamespaceSpecifier: ['local'],\n        ImportSpecifier: ['imported', 'local'],\n        Literal: [],\n        LabeledStatement: ['label', 'body'],\n        LogicalExpression: ['left', 'right'],\n        MemberExpression: ['object', 'property'],\n        MetaProperty: ['meta', 'property'],\n        MethodDefinition: ['key', 'value'],\n        ModuleSpecifier: [],\n        NewExpression: ['callee', 'arguments'],\n        ObjectExpression: ['properties'],\n        ObjectPattern: ['properties'],\n        Program: ['body'],\n        Property: ['key', 'value'],\n        RestElement: [ 'argument' ],\n        ReturnStatement: ['argument'],\n        SequenceExpression: ['expressions'],\n        SpreadElement: ['argument'],\n        Super: [],\n        SwitchStatement: ['discriminant', 'cases'],\n        SwitchCase: ['test', 'consequent'],\n        TaggedTemplateExpression: ['tag', 'quasi'],\n        TemplateElement: [],\n        TemplateLiteral: ['quasis', 'expressions'],\n        ThisExpression: [],\n        ThrowStatement: ['argument'],\n        TryStatement: ['block', 'handler', 'finalizer'],\n        UnaryExpression: ['argument'],\n        UpdateExpression: ['argument'],\n        VariableDeclaration: ['declarations'],\n        VariableDeclarator: ['id', 'init'],\n        WhileStatement: ['test', 'body'],\n        WithStatement: ['object', 'body'],\n        YieldExpression: ['argument']\n    };\n\n    // unique id\n    BREAK = {};\n    SKIP = {};\n    REMOVE = {};\n\n    VisitorOption = {\n        Break: BREAK,\n        Skip: SKIP,\n        Remove: REMOVE\n    };\n\n    function Reference(parent, key) {\n        this.parent = parent;\n        this.key = key;\n    }\n\n    Reference.prototype.replace = function replace(node) {\n        this.parent[this.key] = node;\n    };\n\n    Reference.prototype.remove = function remove() {\n        if (Array.isArray(this.parent)) {\n            this.parent.splice(this.key, 1);\n            return true;\n        } else {\n            this.replace(null);\n            return false;\n        }\n    };\n\n    function Element(node, path, wrap, ref) {\n        this.node = node;\n        this.path = path;\n        this.wrap = wrap;\n        this.ref = ref;\n    }\n\n    function Controller() { }\n\n    // API:\n    // return property path array from root to current node\n    Controller.prototype.path = function path() {\n        var i, iz, j, jz, result, element;\n\n        function addToPath(result, path) {\n            if (Array.isArray(path)) {\n                for (j = 0, jz = path.length; j < jz; ++j) {\n                    result.push(path[j]);\n                }\n            } else {\n                result.push(path);\n            }\n        }\n\n        // root node\n        if (!this.__current.path) {\n            return null;\n        }\n\n        // first node is sentinel, second node is root element\n        result = [];\n        for (i = 2, iz = this.__leavelist.length; i < iz; ++i) {\n            element = this.__leavelist[i];\n            addToPath(result, element.path);\n        }\n        addToPath(result, this.__current.path);\n        return result;\n    };\n\n    // API:\n    // return type of current node\n    Controller.prototype.type = function () {\n        var node = this.current();\n        return node.type || this.__current.wrap;\n    };\n\n    // API:\n    // return array of parent elements\n    Controller.prototype.parents = function parents() {\n        var i, iz, result;\n\n        // first node is sentinel\n        result = [];\n        for (i = 1, iz = this.__leavelist.length; i < iz; ++i) {\n            result.push(this.__leavelist[i].node);\n        }\n\n        return result;\n    };\n\n    // API:\n    // return current node\n    Controller.prototype.current = function current() {\n        return this.__current.node;\n    };\n\n    Controller.prototype.__execute = function __execute(callback, element) {\n        var previous, result;\n\n        result = undefined;\n\n        previous  = this.__current;\n        this.__current = element;\n        this.__state = null;\n        if (callback) {\n            result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node);\n        }\n        this.__current = previous;\n\n        return result;\n    };\n\n    // API:\n    // notify control skip / break\n    Controller.prototype.notify = function notify(flag) {\n        this.__state = flag;\n    };\n\n    // API:\n    // skip child nodes of current node\n    Controller.prototype.skip = function () {\n        this.notify(SKIP);\n    };\n\n    // API:\n    // break traversals\n    Controller.prototype['break'] = function () {\n        this.notify(BREAK);\n    };\n\n    // API:\n    // remove node\n    Controller.prototype.remove = function () {\n        this.notify(REMOVE);\n    };\n\n    Controller.prototype.__initialize = function(root, visitor) {\n        this.visitor = visitor;\n        this.root = root;\n        this.__worklist = [];\n        this.__leavelist = [];\n        this.__current = null;\n        this.__state = null;\n        this.__fallback = null;\n        if (visitor.fallback === 'iteration') {\n            this.__fallback = Object.keys;\n        } else if (typeof visitor.fallback === 'function') {\n            this.__fallback = visitor.fallback;\n        }\n\n        this.__keys = VisitorKeys;\n        if (visitor.keys) {\n            this.__keys = Object.assign(Object.create(this.__keys), visitor.keys);\n        }\n    };\n\n    function isNode(node) {\n        if (node == null) {\n            return false;\n        }\n        return typeof node === 'object' && typeof node.type === 'string';\n    }\n\n    function isProperty(nodeType, key) {\n        return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key;\n    }\n\n    Controller.prototype.traverse = function traverse(root, visitor) {\n        var worklist,\n            leavelist,\n            element,\n            node,\n            nodeType,\n            ret,\n            key,\n            current,\n            current2,\n            candidates,\n            candidate,\n            sentinel;\n\n        this.__initialize(root, visitor);\n\n        sentinel = {};\n\n        // reference\n        worklist = this.__worklist;\n        leavelist = this.__leavelist;\n\n        // initialize\n        worklist.push(new Element(root, null, null, null));\n        leavelist.push(new Element(null, null, null, null));\n\n        while (worklist.length) {\n            element = worklist.pop();\n\n            if (element === sentinel) {\n                element = leavelist.pop();\n\n                ret = this.__execute(visitor.leave, element);\n\n                if (this.__state === BREAK || ret === BREAK) {\n                    return;\n                }\n                continue;\n            }\n\n            if (element.node) {\n\n                ret = this.__execute(visitor.enter, element);\n\n                if (this.__state === BREAK || ret === BREAK) {\n                    return;\n                }\n\n                worklist.push(sentinel);\n                leavelist.push(element);\n\n                if (this.__state === SKIP || ret === SKIP) {\n                    continue;\n                }\n\n                node = element.node;\n                nodeType = node.type || element.wrap;\n                candidates = this.__keys[nodeType];\n                if (!candidates) {\n                    if (this.__fallback) {\n                        candidates = this.__fallback(node);\n                    } else {\n                        throw new Error('Unknown node type ' + nodeType + '.');\n                    }\n                }\n\n                current = candidates.length;\n                while ((current -= 1) >= 0) {\n                    key = candidates[current];\n                    candidate = node[key];\n                    if (!candidate) {\n                        continue;\n                    }\n\n                    if (Array.isArray(candidate)) {\n                        current2 = candidate.length;\n                        while ((current2 -= 1) >= 0) {\n                            if (!candidate[current2]) {\n                                continue;\n                            }\n                            if (isProperty(nodeType, candidates[current])) {\n                                element = new Element(candidate[current2], [key, current2], 'Property', null);\n                            } else if (isNode(candidate[current2])) {\n                                element = new Element(candidate[current2], [key, current2], null, null);\n                            } else {\n                                continue;\n                            }\n                            worklist.push(element);\n                        }\n                    } else if (isNode(candidate)) {\n                        worklist.push(new Element(candidate, key, null, null));\n                    }\n                }\n            }\n        }\n    };\n\n    Controller.prototype.replace = function replace(root, visitor) {\n        var worklist,\n            leavelist,\n            node,\n            nodeType,\n            target,\n            element,\n            current,\n            current2,\n            candidates,\n            candidate,\n            sentinel,\n            outer,\n            key;\n\n        function removeElem(element) {\n            var i,\n                key,\n                nextElem,\n                parent;\n\n            if (element.ref.remove()) {\n                // When the reference is an element of an array.\n                key = element.ref.key;\n                parent = element.ref.parent;\n\n                // If removed from array, then decrease following items' keys.\n                i = worklist.length;\n                while (i--) {\n                    nextElem = worklist[i];\n                    if (nextElem.ref && nextElem.ref.parent === parent) {\n                        if  (nextElem.ref.key < key) {\n                            break;\n                        }\n                        --nextElem.ref.key;\n                    }\n                }\n            }\n        }\n\n        this.__initialize(root, visitor);\n\n        sentinel = {};\n\n        // reference\n        worklist = this.__worklist;\n        leavelist = this.__leavelist;\n\n        // initialize\n        outer = {\n            root: root\n        };\n        element = new Element(root, null, null, new Reference(outer, 'root'));\n        worklist.push(element);\n        leavelist.push(element);\n\n        while (worklist.length) {\n            element = worklist.pop();\n\n            if (element === sentinel) {\n                element = leavelist.pop();\n\n                target = this.__execute(visitor.leave, element);\n\n                // node may be replaced with null,\n                // so distinguish between undefined and null in this place\n                if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n                    // replace\n                    element.ref.replace(target);\n                }\n\n                if (this.__state === REMOVE || target === REMOVE) {\n                    removeElem(element);\n                }\n\n                if (this.__state === BREAK || target === BREAK) {\n                    return outer.root;\n                }\n                continue;\n            }\n\n            target = this.__execute(visitor.enter, element);\n\n            // node may be replaced with null,\n            // so distinguish between undefined and null in this place\n            if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) {\n                // replace\n                element.ref.replace(target);\n                element.node = target;\n            }\n\n            if (this.__state === REMOVE || target === REMOVE) {\n                removeElem(element);\n                element.node = null;\n            }\n\n            if (this.__state === BREAK || target === BREAK) {\n                return outer.root;\n            }\n\n            // node may be null\n            node = element.node;\n            if (!node) {\n                continue;\n            }\n\n            worklist.push(sentinel);\n            leavelist.push(element);\n\n            if (this.__state === SKIP || target === SKIP) {\n                continue;\n            }\n\n            nodeType = node.type || element.wrap;\n            candidates = this.__keys[nodeType];\n            if (!candidates) {\n                if (this.__fallback) {\n                    candidates = this.__fallback(node);\n                } else {\n                    throw new Error('Unknown node type ' + nodeType + '.');\n                }\n            }\n\n            current = candidates.length;\n            while ((current -= 1) >= 0) {\n                key = candidates[current];\n                candidate = node[key];\n                if (!candidate) {\n                    continue;\n                }\n\n                if (Array.isArray(candidate)) {\n                    current2 = candidate.length;\n                    while ((current2 -= 1) >= 0) {\n                        if (!candidate[current2]) {\n                            continue;\n                        }\n                        if (isProperty(nodeType, candidates[current])) {\n                            element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2));\n                        } else if (isNode(candidate[current2])) {\n                            element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2));\n                        } else {\n                            continue;\n                        }\n                        worklist.push(element);\n                    }\n                } else if (isNode(candidate)) {\n                    worklist.push(new Element(candidate, key, null, new Reference(node, key)));\n                }\n            }\n        }\n\n        return outer.root;\n    };\n\n    function traverse(root, visitor) {\n        var controller = new Controller();\n        return controller.traverse(root, visitor);\n    }\n\n    function replace(root, visitor) {\n        var controller = new Controller();\n        return controller.replace(root, visitor);\n    }\n\n    function extendCommentRange(comment, tokens) {\n        var target;\n\n        target = upperBound(tokens, function search(token) {\n            return token.range[0] > comment.range[0];\n        });\n\n        comment.extendedRange = [comment.range[0], comment.range[1]];\n\n        if (target !== tokens.length) {\n            comment.extendedRange[1] = tokens[target].range[0];\n        }\n\n        target -= 1;\n        if (target >= 0) {\n            comment.extendedRange[0] = tokens[target].range[1];\n        }\n\n        return comment;\n    }\n\n    function attachComments(tree, providedComments, tokens) {\n        // At first, we should calculate extended comment ranges.\n        var comments = [], comment, len, i, cursor;\n\n        if (!tree.range) {\n            throw new Error('attachComments needs range information');\n        }\n\n        // tokens array is empty, we attach comments to tree as 'leadingComments'\n        if (!tokens.length) {\n            if (providedComments.length) {\n                for (i = 0, len = providedComments.length; i < len; i += 1) {\n                    comment = deepCopy(providedComments[i]);\n                    comment.extendedRange = [0, tree.range[0]];\n                    comments.push(comment);\n                }\n                tree.leadingComments = comments;\n            }\n            return tree;\n        }\n\n        for (i = 0, len = providedComments.length; i < len; i += 1) {\n            comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens));\n        }\n\n        // This is based on John Freeman's implementation.\n        cursor = 0;\n        traverse(tree, {\n            enter: function (node) {\n                var comment;\n\n                while (cursor < comments.length) {\n                    comment = comments[cursor];\n                    if (comment.extendedRange[1] > node.range[0]) {\n                        break;\n                    }\n\n                    if (comment.extendedRange[1] === node.range[0]) {\n                        if (!node.leadingComments) {\n                            node.leadingComments = [];\n                        }\n                        node.leadingComments.push(comment);\n                        comments.splice(cursor, 1);\n                    } else {\n                        cursor += 1;\n                    }\n                }\n\n                // already out of owned node\n                if (cursor === comments.length) {\n                    return VisitorOption.Break;\n                }\n\n                if (comments[cursor].extendedRange[0] > node.range[1]) {\n                    return VisitorOption.Skip;\n                }\n            }\n        });\n\n        cursor = 0;\n        traverse(tree, {\n            leave: function (node) {\n                var comment;\n\n                while (cursor < comments.length) {\n                    comment = comments[cursor];\n                    if (node.range[1] < comment.extendedRange[0]) {\n                        break;\n                    }\n\n                    if (node.range[1] === comment.extendedRange[0]) {\n                        if (!node.trailingComments) {\n                            node.trailingComments = [];\n                        }\n                        node.trailingComments.push(comment);\n                        comments.splice(cursor, 1);\n                    } else {\n                        cursor += 1;\n                    }\n                }\n\n                // already out of owned node\n                if (cursor === comments.length) {\n                    return VisitorOption.Break;\n                }\n\n                if (comments[cursor].extendedRange[0] > node.range[1]) {\n                    return VisitorOption.Skip;\n                }\n            }\n        });\n\n        return tree;\n    }\n\n    exports.Syntax = Syntax;\n    exports.traverse = traverse;\n    exports.replace = replace;\n    exports.attachComments = attachComments;\n    exports.VisitorKeys = VisitorKeys;\n    exports.VisitorOption = VisitorOption;\n    exports.Controller = Controller;\n    exports.cloneEnvironment = function () { return clone({}); };\n\n    return exports;\n}(exports));\n/* vim: set sw=4 ts=4 et tw=80 : */\n","/*\n * Generated by PEG.js 0.10.0.\n *\n * http://pegjs.org/\n */\n(function(root, factory) {\n  if (typeof define === \"function\" && define.amd) {\n    define([], factory);\n  } else if (typeof module === \"object\" && module.exports) {\n    module.exports = factory();\n  }\n})(this, function() {\n  \"use strict\";\n\n  function peg$subclass(child, parent) {\n    function ctor() { this.constructor = child; }\n    ctor.prototype = parent.prototype;\n    child.prototype = new ctor();\n  }\n\n  function peg$SyntaxError(message, expected, found, location) {\n    this.message  = message;\n    this.expected = expected;\n    this.found    = found;\n    this.location = location;\n    this.name     = \"SyntaxError\";\n\n    if (typeof Error.captureStackTrace === \"function\") {\n      Error.captureStackTrace(this, peg$SyntaxError);\n    }\n  }\n\n  peg$subclass(peg$SyntaxError, Error);\n\n  peg$SyntaxError.buildMessage = function(expected, found) {\n    var DESCRIBE_EXPECTATION_FNS = {\n          literal: function(expectation) {\n            return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n          },\n\n          \"class\": function(expectation) {\n            var escapedParts = \"\",\n                i;\n\n            for (i = 0; i < expectation.parts.length; i++) {\n              escapedParts += expectation.parts[i] instanceof Array\n                ? classEscape(expectation.parts[i][0]) + \"-\" + classEscape(expectation.parts[i][1])\n                : classEscape(expectation.parts[i]);\n            }\n\n            return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n          },\n\n          any: function(expectation) {\n            return \"any character\";\n          },\n\n          end: function(expectation) {\n            return \"end of input\";\n          },\n\n          other: function(expectation) {\n            return expectation.description;\n          }\n        };\n\n    function hex(ch) {\n      return ch.charCodeAt(0).toString(16).toUpperCase();\n    }\n\n    function literalEscape(s) {\n      return s\n        .replace(/\\\\/g, '\\\\\\\\')\n        .replace(/\"/g,  '\\\\\"')\n        .replace(/\\0/g, '\\\\0')\n        .replace(/\\t/g, '\\\\t')\n        .replace(/\\n/g, '\\\\n')\n        .replace(/\\r/g, '\\\\r')\n        .replace(/[\\x00-\\x0F]/g,          function(ch) { return '\\\\x0' + hex(ch); })\n        .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x'  + hex(ch); });\n    }\n\n    function classEscape(s) {\n      return s\n        .replace(/\\\\/g, '\\\\\\\\')\n        .replace(/\\]/g, '\\\\]')\n        .replace(/\\^/g, '\\\\^')\n        .replace(/-/g,  '\\\\-')\n        .replace(/\\0/g, '\\\\0')\n        .replace(/\\t/g, '\\\\t')\n        .replace(/\\n/g, '\\\\n')\n        .replace(/\\r/g, '\\\\r')\n        .replace(/[\\x00-\\x0F]/g,          function(ch) { return '\\\\x0' + hex(ch); })\n        .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x'  + hex(ch); });\n    }\n\n    function describeExpectation(expectation) {\n      return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n    }\n\n    function describeExpected(expected) {\n      var descriptions = new Array(expected.length),\n          i, j;\n\n      for (i = 0; i < expected.length; i++) {\n        descriptions[i] = describeExpectation(expected[i]);\n      }\n\n      descriptions.sort();\n\n      if (descriptions.length > 0) {\n        for (i = 1, j = 1; i < descriptions.length; i++) {\n          if (descriptions[i - 1] !== descriptions[i]) {\n            descriptions[j] = descriptions[i];\n            j++;\n          }\n        }\n        descriptions.length = j;\n      }\n\n      switch (descriptions.length) {\n        case 1:\n          return descriptions[0];\n\n        case 2:\n          return descriptions[0] + \" or \" + descriptions[1];\n\n        default:\n          return descriptions.slice(0, -1).join(\", \")\n            + \", or \"\n            + descriptions[descriptions.length - 1];\n      }\n    }\n\n    function describeFound(found) {\n      return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n    }\n\n    return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n  };\n\n  function peg$parse(input, options) {\n    options = options !== void 0 ? options : {};\n\n    var peg$FAILED = {},\n\n        peg$startRuleFunctions = { start: peg$parsestart },\n        peg$startRuleFunction  = peg$parsestart,\n\n        peg$c0 = function(ss) {\n            return ss.length === 1 ? ss[0] : { type: 'matches', selectors: ss };\n          },\n        peg$c1 = function() { return void 0; },\n        peg$c2 = \" \",\n        peg$c3 = peg$literalExpectation(\" \", false),\n        peg$c4 = /^[^ [\\],():#!=><~+.]/,\n        peg$c5 = peg$classExpectation([\" \", \"[\", \"]\", \",\", \"(\", \")\", \":\", \"#\", \"!\", \"=\", \">\", \"<\", \"~\", \"+\", \".\"], true, false),\n        peg$c6 = function(i) { return i.join(''); },\n        peg$c7 = \">\",\n        peg$c8 = peg$literalExpectation(\">\", false),\n        peg$c9 = function() { return 'child'; },\n        peg$c10 = \"~\",\n        peg$c11 = peg$literalExpectation(\"~\", false),\n        peg$c12 = function() { return 'sibling'; },\n        peg$c13 = \"+\",\n        peg$c14 = peg$literalExpectation(\"+\", false),\n        peg$c15 = function() { return 'adjacent'; },\n        peg$c16 = function() { return 'descendant'; },\n        peg$c17 = \",\",\n        peg$c18 = peg$literalExpectation(\",\", false),\n        peg$c19 = function(s, ss) {\n          return [s].concat(ss.map(function (s) { return s[3]; }));\n        },\n        peg$c20 = function(a, ops) {\n            return ops.reduce(function (memo, rhs) {\n              return { type: rhs[0], left: memo, right: rhs[1] };\n            }, a);\n          },\n        peg$c21 = \"!\",\n        peg$c22 = peg$literalExpectation(\"!\", false),\n        peg$c23 = function(subject, as) {\n            const b = as.length === 1 ? as[0] : { type: 'compound', selectors: as };\n            if(subject) b.subject = true;\n            return b;\n          },\n        peg$c24 = \"*\",\n        peg$c25 = peg$literalExpectation(\"*\", false),\n        peg$c26 = function(a) { return { type: 'wildcard', value: a }; },\n        peg$c27 = \"#\",\n        peg$c28 = peg$literalExpectation(\"#\", false),\n        peg$c29 = function(i) { return { type: 'identifier', value: i }; },\n        peg$c30 = \"[\",\n        peg$c31 = peg$literalExpectation(\"[\", false),\n        peg$c32 = \"]\",\n        peg$c33 = peg$literalExpectation(\"]\", false),\n        peg$c34 = function(v) { return v; },\n        peg$c35 = /^[><!]/,\n        peg$c36 = peg$classExpectation([\">\", \"<\", \"!\"], false, false),\n        peg$c37 = \"=\",\n        peg$c38 = peg$literalExpectation(\"=\", false),\n        peg$c39 = function(a) { return (a || '') + '='; },\n        peg$c40 = /^[><]/,\n        peg$c41 = peg$classExpectation([\">\", \"<\"], false, false),\n        peg$c42 = \".\",\n        peg$c43 = peg$literalExpectation(\".\", false),\n        peg$c44 = function(name, op, value) {\n              return { type: 'attribute', name: name, operator: op, value: value };\n            },\n        peg$c45 = function(name) { return { type: 'attribute', name: name }; },\n        peg$c46 = \"\\\"\",\n        peg$c47 = peg$literalExpectation(\"\\\"\", false),\n        peg$c48 = /^[^\\\\\"]/,\n        peg$c49 = peg$classExpectation([\"\\\\\", \"\\\"\"], true, false),\n        peg$c50 = \"\\\\\",\n        peg$c51 = peg$literalExpectation(\"\\\\\", false),\n        peg$c52 = peg$anyExpectation(),\n        peg$c53 = function(a, b) { return a + b; },\n        peg$c54 = function(d) {\n                return { type: 'literal', value: strUnescape(d.join('')) };\n              },\n        peg$c55 = \"'\",\n        peg$c56 = peg$literalExpectation(\"'\", false),\n        peg$c57 = /^[^\\\\']/,\n        peg$c58 = peg$classExpectation([\"\\\\\", \"'\"], true, false),\n        peg$c59 = /^[0-9]/,\n        peg$c60 = peg$classExpectation([[\"0\", \"9\"]], false, false),\n        peg$c61 = function(a, b) {\n                // Can use `a.flat().join('')` once supported\n                const leadingDecimals = a ? [].concat.apply([], a).join('') : '';\n                return { type: 'literal', value: parseFloat(leadingDecimals + b.join('')) };\n              },\n        peg$c62 = function(i) { return { type: 'literal', value: i }; },\n        peg$c63 = \"type(\",\n        peg$c64 = peg$literalExpectation(\"type(\", false),\n        peg$c65 = /^[^ )]/,\n        peg$c66 = peg$classExpectation([\" \", \")\"], true, false),\n        peg$c67 = \")\",\n        peg$c68 = peg$literalExpectation(\")\", false),\n        peg$c69 = function(t) { return { type: 'type', value: t.join('') }; },\n        peg$c70 = /^[imsu]/,\n        peg$c71 = peg$classExpectation([\"i\", \"m\", \"s\", \"u\"], false, false),\n        peg$c72 = \"/\",\n        peg$c73 = peg$literalExpectation(\"/\", false),\n        peg$c74 = /^[^\\/]/,\n        peg$c75 = peg$classExpectation([\"/\"], true, false),\n        peg$c76 = function(d, flgs) { return {\n              type: 'regexp', value: new RegExp(d.join(''), flgs ? flgs.join('') : '') };\n            },\n        peg$c77 = function(i, is) {\n          return { type: 'field', name: is.reduce(function(memo, p){ return memo + p[0] + p[1]; }, i)};\n        },\n        peg$c78 = \":not(\",\n        peg$c79 = peg$literalExpectation(\":not(\", false),\n        peg$c80 = function(ss) { return { type: 'not', selectors: ss }; },\n        peg$c81 = \":matches(\",\n        peg$c82 = peg$literalExpectation(\":matches(\", false),\n        peg$c83 = function(ss) { return { type: 'matches', selectors: ss }; },\n        peg$c84 = \":has(\",\n        peg$c85 = peg$literalExpectation(\":has(\", false),\n        peg$c86 = function(ss) { return { type: 'has', selectors: ss }; },\n        peg$c87 = \":first-child\",\n        peg$c88 = peg$literalExpectation(\":first-child\", false),\n        peg$c89 = function() { return nth(1); },\n        peg$c90 = \":last-child\",\n        peg$c91 = peg$literalExpectation(\":last-child\", false),\n        peg$c92 = function() { return nthLast(1); },\n        peg$c93 = \":nth-child(\",\n        peg$c94 = peg$literalExpectation(\":nth-child(\", false),\n        peg$c95 = function(n) { return nth(parseInt(n.join(''), 10)); },\n        peg$c96 = \":nth-last-child(\",\n        peg$c97 = peg$literalExpectation(\":nth-last-child(\", false),\n        peg$c98 = function(n) { return nthLast(parseInt(n.join(''), 10)); },\n        peg$c99 = \":\",\n        peg$c100 = peg$literalExpectation(\":\", false),\n        peg$c101 = \"statement\",\n        peg$c102 = peg$literalExpectation(\"statement\", true),\n        peg$c103 = \"expression\",\n        peg$c104 = peg$literalExpectation(\"expression\", true),\n        peg$c105 = \"declaration\",\n        peg$c106 = peg$literalExpectation(\"declaration\", true),\n        peg$c107 = \"function\",\n        peg$c108 = peg$literalExpectation(\"function\", true),\n        peg$c109 = \"pattern\",\n        peg$c110 = peg$literalExpectation(\"pattern\", true),\n        peg$c111 = function(c) {\n          return { type: 'class', name: c };\n        },\n\n        peg$currPos          = 0,\n        peg$savedPos         = 0,\n        peg$posDetailsCache  = [{ line: 1, column: 1 }],\n        peg$maxFailPos       = 0,\n        peg$maxFailExpected  = [],\n        peg$silentFails      = 0,\n\n        peg$resultsCache = {},\n\n        peg$result;\n\n    if (\"startRule\" in options) {\n      if (!(options.startRule in peg$startRuleFunctions)) {\n        throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n      }\n\n      peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n    }\n\n    function text() {\n      return input.substring(peg$savedPos, peg$currPos);\n    }\n\n    function location() {\n      return peg$computeLocation(peg$savedPos, peg$currPos);\n    }\n\n    function expected(description, location) {\n      location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n      throw peg$buildStructuredError(\n        [peg$otherExpectation(description)],\n        input.substring(peg$savedPos, peg$currPos),\n        location\n      );\n    }\n\n    function error(message, location) {\n      location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n      throw peg$buildSimpleError(message, location);\n    }\n\n    function peg$literalExpectation(text, ignoreCase) {\n      return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n    }\n\n    function peg$classExpectation(parts, inverted, ignoreCase) {\n      return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n    }\n\n    function peg$anyExpectation() {\n      return { type: \"any\" };\n    }\n\n    function peg$endExpectation() {\n      return { type: \"end\" };\n    }\n\n    function peg$otherExpectation(description) {\n      return { type: \"other\", description: description };\n    }\n\n    function peg$computePosDetails(pos) {\n      var details = peg$posDetailsCache[pos], p;\n\n      if (details) {\n        return details;\n      } else {\n        p = pos - 1;\n        while (!peg$posDetailsCache[p]) {\n          p--;\n        }\n\n        details = peg$posDetailsCache[p];\n        details = {\n          line:   details.line,\n          column: details.column\n        };\n\n        while (p < pos) {\n          if (input.charCodeAt(p) === 10) {\n            details.line++;\n            details.column = 1;\n          } else {\n            details.column++;\n          }\n\n          p++;\n        }\n\n        peg$posDetailsCache[pos] = details;\n        return details;\n      }\n    }\n\n    function peg$computeLocation(startPos, endPos) {\n      var startPosDetails = peg$computePosDetails(startPos),\n          endPosDetails   = peg$computePosDetails(endPos);\n\n      return {\n        start: {\n          offset: startPos,\n          line:   startPosDetails.line,\n          column: startPosDetails.column\n        },\n        end: {\n          offset: endPos,\n          line:   endPosDetails.line,\n          column: endPosDetails.column\n        }\n      };\n    }\n\n    function peg$fail(expected) {\n      if (peg$currPos < peg$maxFailPos) { return; }\n\n      if (peg$currPos > peg$maxFailPos) {\n        peg$maxFailPos = peg$currPos;\n        peg$maxFailExpected = [];\n      }\n\n      peg$maxFailExpected.push(expected);\n    }\n\n    function peg$buildSimpleError(message, location) {\n      return new peg$SyntaxError(message, null, null, location);\n    }\n\n    function peg$buildStructuredError(expected, found, location) {\n      return new peg$SyntaxError(\n        peg$SyntaxError.buildMessage(expected, found),\n        expected,\n        found,\n        location\n      );\n    }\n\n    function peg$parsestart() {\n      var s0, s1, s2, s3;\n\n      var key    = peg$currPos * 30 + 0,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parse_();\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parseselectors();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parse_();\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c0(s2);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = peg$parse_();\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c1();\n        }\n        s0 = s1;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parse_() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 1,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = [];\n      if (input.charCodeAt(peg$currPos) === 32) {\n        s1 = peg$c2;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c3); }\n      }\n      while (s1 !== peg$FAILED) {\n        s0.push(s1);\n        if (input.charCodeAt(peg$currPos) === 32) {\n          s1 = peg$c2;\n          peg$currPos++;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c3); }\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseidentifierName() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 2,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = [];\n      if (peg$c4.test(input.charAt(peg$currPos))) {\n        s2 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s2 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c5); }\n      }\n      if (s2 !== peg$FAILED) {\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          if (peg$c4.test(input.charAt(peg$currPos))) {\n            s2 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c5); }\n          }\n        }\n      } else {\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c6(s1);\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsebinaryOp() {\n      var s0, s1, s2, s3;\n\n      var key    = peg$currPos * 30 + 3,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parse_();\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 62) {\n          s2 = peg$c7;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c8); }\n        }\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parse_();\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c9();\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = peg$parse_();\n        if (s1 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 126) {\n            s2 = peg$c10;\n            peg$currPos++;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c11); }\n          }\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parse_();\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s1 = peg$c12();\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n        if (s0 === peg$FAILED) {\n          s0 = peg$currPos;\n          s1 = peg$parse_();\n          if (s1 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 43) {\n              s2 = peg$c13;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c14); }\n            }\n            if (s2 !== peg$FAILED) {\n              s3 = peg$parse_();\n              if (s3 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c15();\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 32) {\n              s1 = peg$c2;\n              peg$currPos++;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c3); }\n            }\n            if (s1 !== peg$FAILED) {\n              s2 = peg$parse_();\n              if (s2 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c16();\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          }\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseselectors() {\n      var s0, s1, s2, s3, s4, s5, s6, s7;\n\n      var key    = peg$currPos * 30 + 4,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parseselector();\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$currPos;\n        s4 = peg$parse_();\n        if (s4 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 44) {\n            s5 = peg$c17;\n            peg$currPos++;\n          } else {\n            s5 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c18); }\n          }\n          if (s5 !== peg$FAILED) {\n            s6 = peg$parse_();\n            if (s6 !== peg$FAILED) {\n              s7 = peg$parseselector();\n              if (s7 !== peg$FAILED) {\n                s4 = [s4, s5, s6, s7];\n                s3 = s4;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s3;\n          s3 = peg$FAILED;\n        }\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          s3 = peg$currPos;\n          s4 = peg$parse_();\n          if (s4 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 44) {\n              s5 = peg$c17;\n              peg$currPos++;\n            } else {\n              s5 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c18); }\n            }\n            if (s5 !== peg$FAILED) {\n              s6 = peg$parse_();\n              if (s6 !== peg$FAILED) {\n                s7 = peg$parseselector();\n                if (s7 !== peg$FAILED) {\n                  s4 = [s4, s5, s6, s7];\n                  s3 = s4;\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c19(s1, s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseselector() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 5,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parsesequence();\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$currPos;\n        s4 = peg$parsebinaryOp();\n        if (s4 !== peg$FAILED) {\n          s5 = peg$parsesequence();\n          if (s5 !== peg$FAILED) {\n            s4 = [s4, s5];\n            s3 = s4;\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s3;\n          s3 = peg$FAILED;\n        }\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          s3 = peg$currPos;\n          s4 = peg$parsebinaryOp();\n          if (s4 !== peg$FAILED) {\n            s5 = peg$parsesequence();\n            if (s5 !== peg$FAILED) {\n              s4 = [s4, s5];\n              s3 = s4;\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c20(s1, s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsesequence() {\n      var s0, s1, s2, s3;\n\n      var key    = peg$currPos * 30 + 6,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 33) {\n        s1 = peg$c21;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c22); }\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        s3 = peg$parseatom();\n        if (s3 !== peg$FAILED) {\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            s3 = peg$parseatom();\n          }\n        } else {\n          s2 = peg$FAILED;\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c23(s1, s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseatom() {\n      var s0;\n\n      var key    = peg$currPos * 30 + 7,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$parsewildcard();\n      if (s0 === peg$FAILED) {\n        s0 = peg$parseidentifier();\n        if (s0 === peg$FAILED) {\n          s0 = peg$parseattr();\n          if (s0 === peg$FAILED) {\n            s0 = peg$parsefield();\n            if (s0 === peg$FAILED) {\n              s0 = peg$parsenegation();\n              if (s0 === peg$FAILED) {\n                s0 = peg$parsematches();\n                if (s0 === peg$FAILED) {\n                  s0 = peg$parsehas();\n                  if (s0 === peg$FAILED) {\n                    s0 = peg$parsefirstChild();\n                    if (s0 === peg$FAILED) {\n                      s0 = peg$parselastChild();\n                      if (s0 === peg$FAILED) {\n                        s0 = peg$parsenthChild();\n                        if (s0 === peg$FAILED) {\n                          s0 = peg$parsenthLastChild();\n                          if (s0 === peg$FAILED) {\n                            s0 = peg$parseclass();\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsewildcard() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 8,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 42) {\n        s1 = peg$c24;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c25); }\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c26(s1);\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseidentifier() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 9,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 35) {\n        s1 = peg$c27;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c28); }\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parseidentifierName();\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c29(s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattr() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 10,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 91) {\n        s1 = peg$c30;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c31); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseattrValue();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 93) {\n                s5 = peg$c32;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c33); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c34(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattrOps() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 11,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (peg$c35.test(input.charAt(peg$currPos))) {\n        s1 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c36); }\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 61) {\n          s2 = peg$c37;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c38); }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c39(s1);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        if (peg$c40.test(input.charAt(peg$currPos))) {\n          s0 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s0 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c41); }\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattrEqOps() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 12,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 33) {\n        s1 = peg$c21;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c22); }\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 61) {\n          s2 = peg$c37;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c38); }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c39(s1);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattrName() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 13,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parseidentifierName();\n      if (s2 === peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 46) {\n          s2 = peg$c42;\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c43); }\n        }\n      }\n      if (s2 !== peg$FAILED) {\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          s2 = peg$parseidentifierName();\n          if (s2 === peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 46) {\n              s2 = peg$c42;\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c43); }\n            }\n          }\n        }\n      } else {\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c6(s1);\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseattrValue() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 14,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parseattrName();\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseattrEqOps();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsetype();\n              if (s5 === peg$FAILED) {\n                s5 = peg$parseregex();\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c44(s1, s3, s5);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = peg$parseattrName();\n        if (s1 !== peg$FAILED) {\n          s2 = peg$parse_();\n          if (s2 !== peg$FAILED) {\n            s3 = peg$parseattrOps();\n            if (s3 !== peg$FAILED) {\n              s4 = peg$parse_();\n              if (s4 !== peg$FAILED) {\n                s5 = peg$parsestring();\n                if (s5 === peg$FAILED) {\n                  s5 = peg$parsenumber();\n                  if (s5 === peg$FAILED) {\n                    s5 = peg$parsepath();\n                  }\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s0;\n                  s1 = peg$c44(s1, s3, s5);\n                  s0 = s1;\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n        if (s0 === peg$FAILED) {\n          s0 = peg$currPos;\n          s1 = peg$parseattrName();\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c45(s1);\n          }\n          s0 = s1;\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsestring() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 15,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 34) {\n        s1 = peg$c46;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c47); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        if (peg$c48.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c49); }\n        }\n        if (s3 === peg$FAILED) {\n          s3 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 92) {\n            s4 = peg$c50;\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c51); }\n          }\n          if (s4 !== peg$FAILED) {\n            if (input.length > peg$currPos) {\n              s5 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s5 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c52); }\n            }\n            if (s5 !== peg$FAILED) {\n              peg$savedPos = s3;\n              s4 = peg$c53(s4, s5);\n              s3 = s4;\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n        }\n        while (s3 !== peg$FAILED) {\n          s2.push(s3);\n          if (peg$c48.test(input.charAt(peg$currPos))) {\n            s3 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c49); }\n          }\n          if (s3 === peg$FAILED) {\n            s3 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 92) {\n              s4 = peg$c50;\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c51); }\n            }\n            if (s4 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s5 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c52); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s3;\n                s4 = peg$c53(s4, s5);\n                s3 = s4;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          }\n        }\n        if (s2 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 34) {\n            s3 = peg$c46;\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c47); }\n          }\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c54(s2);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.charCodeAt(peg$currPos) === 39) {\n          s1 = peg$c55;\n          peg$currPos++;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c56); }\n        }\n        if (s1 !== peg$FAILED) {\n          s2 = [];\n          if (peg$c57.test(input.charAt(peg$currPos))) {\n            s3 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c58); }\n          }\n          if (s3 === peg$FAILED) {\n            s3 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 92) {\n              s4 = peg$c50;\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c51); }\n            }\n            if (s4 !== peg$FAILED) {\n              if (input.length > peg$currPos) {\n                s5 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c52); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s3;\n                s4 = peg$c53(s4, s5);\n                s3 = s4;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          }\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            if (peg$c57.test(input.charAt(peg$currPos))) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c58); }\n            }\n            if (s3 === peg$FAILED) {\n              s3 = peg$currPos;\n              if (input.charCodeAt(peg$currPos) === 92) {\n                s4 = peg$c50;\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c51); }\n              }\n              if (s4 !== peg$FAILED) {\n                if (input.length > peg$currPos) {\n                  s5 = input.charAt(peg$currPos);\n                  peg$currPos++;\n                } else {\n                  s5 = peg$FAILED;\n                  if (peg$silentFails === 0) { peg$fail(peg$c52); }\n                }\n                if (s5 !== peg$FAILED) {\n                  peg$savedPos = s3;\n                  s4 = peg$c53(s4, s5);\n                  s3 = s4;\n                } else {\n                  peg$currPos = s3;\n                  s3 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            }\n          }\n          if (s2 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 39) {\n              s3 = peg$c55;\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c56); }\n            }\n            if (s3 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s1 = peg$c54(s2);\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsenumber() {\n      var s0, s1, s2, s3;\n\n      var key    = peg$currPos * 30 + 16,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$currPos;\n      s2 = [];\n      if (peg$c59.test(input.charAt(peg$currPos))) {\n        s3 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s3 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c60); }\n      }\n      while (s3 !== peg$FAILED) {\n        s2.push(s3);\n        if (peg$c59.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c60); }\n        }\n      }\n      if (s2 !== peg$FAILED) {\n        if (input.charCodeAt(peg$currPos) === 46) {\n          s3 = peg$c42;\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c43); }\n        }\n        if (s3 !== peg$FAILED) {\n          s2 = [s2, s3];\n          s1 = s2;\n        } else {\n          peg$currPos = s1;\n          s1 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s1;\n        s1 = peg$FAILED;\n      }\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        if (peg$c59.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c60); }\n        }\n        if (s3 !== peg$FAILED) {\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            if (peg$c59.test(input.charAt(peg$currPos))) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c60); }\n            }\n          }\n        } else {\n          s2 = peg$FAILED;\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c61(s1, s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsepath() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 17,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      s1 = peg$parseidentifierName();\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c62(s1);\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsetype() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 18,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 5) === peg$c63) {\n        s1 = peg$c63;\n        peg$currPos += 5;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c64); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          if (peg$c65.test(input.charAt(peg$currPos))) {\n            s4 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c66); }\n          }\n          if (s4 !== peg$FAILED) {\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              if (peg$c65.test(input.charAt(peg$currPos))) {\n                s4 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c66); }\n              }\n            }\n          } else {\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c69(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseflags() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 19,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = [];\n      if (peg$c70.test(input.charAt(peg$currPos))) {\n        s1 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c71); }\n      }\n      if (s1 !== peg$FAILED) {\n        while (s1 !== peg$FAILED) {\n          s0.push(s1);\n          if (peg$c70.test(input.charAt(peg$currPos))) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c71); }\n          }\n        }\n      } else {\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseregex() {\n      var s0, s1, s2, s3, s4;\n\n      var key    = peg$currPos * 30 + 20,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 47) {\n        s1 = peg$c72;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c73); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = [];\n        if (peg$c74.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c75); }\n        }\n        if (s3 !== peg$FAILED) {\n          while (s3 !== peg$FAILED) {\n            s2.push(s3);\n            if (peg$c74.test(input.charAt(peg$currPos))) {\n              s3 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s3 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c75); }\n            }\n          }\n        } else {\n          s2 = peg$FAILED;\n        }\n        if (s2 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 47) {\n            s3 = peg$c72;\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c73); }\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parseflags();\n            if (s4 === peg$FAILED) {\n              s4 = null;\n            }\n            if (s4 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s1 = peg$c76(s2, s4);\n              s0 = s1;\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsefield() {\n      var s0, s1, s2, s3, s4, s5, s6;\n\n      var key    = peg$currPos * 30 + 21,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 46) {\n        s1 = peg$c42;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c43); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parseidentifierName();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          s4 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 46) {\n            s5 = peg$c42;\n            peg$currPos++;\n          } else {\n            s5 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c43); }\n          }\n          if (s5 !== peg$FAILED) {\n            s6 = peg$parseidentifierName();\n            if (s6 !== peg$FAILED) {\n              s5 = [s5, s6];\n              s4 = s5;\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s4;\n            s4 = peg$FAILED;\n          }\n          while (s4 !== peg$FAILED) {\n            s3.push(s4);\n            s4 = peg$currPos;\n            if (input.charCodeAt(peg$currPos) === 46) {\n              s5 = peg$c42;\n              peg$currPos++;\n            } else {\n              s5 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c43); }\n            }\n            if (s5 !== peg$FAILED) {\n              s6 = peg$parseidentifierName();\n              if (s6 !== peg$FAILED) {\n                s5 = [s5, s6];\n                s4 = s5;\n              } else {\n                peg$currPos = s4;\n                s4 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s4;\n              s4 = peg$FAILED;\n            }\n          }\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c77(s2, s3);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsenegation() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 22,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 5) === peg$c78) {\n        s1 = peg$c78;\n        peg$currPos += 5;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c79); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseselectors();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c80(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsematches() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 23,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 9) === peg$c81) {\n        s1 = peg$c81;\n        peg$currPos += 9;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c82); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseselectors();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c83(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsehas() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 24,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 5) === peg$c84) {\n        s1 = peg$c84;\n        peg$currPos += 5;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c85); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseselectors();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c86(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsefirstChild() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 25,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 12) === peg$c87) {\n        s1 = peg$c87;\n        peg$currPos += 12;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c88); }\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c89();\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parselastChild() {\n      var s0, s1;\n\n      var key    = peg$currPos * 30 + 26,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 11) === peg$c90) {\n        s1 = peg$c90;\n        peg$currPos += 11;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c91); }\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c92();\n      }\n      s0 = s1;\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsenthChild() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 27,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 11) === peg$c93) {\n        s1 = peg$c93;\n        peg$currPos += 11;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c94); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          if (peg$c59.test(input.charAt(peg$currPos))) {\n            s4 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c60); }\n          }\n          if (s4 !== peg$FAILED) {\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              if (peg$c59.test(input.charAt(peg$currPos))) {\n                s4 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c60); }\n              }\n            }\n          } else {\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c95(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parsenthLastChild() {\n      var s0, s1, s2, s3, s4, s5;\n\n      var key    = peg$currPos * 30 + 28,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 16) === peg$c96) {\n        s1 = peg$c96;\n        peg$currPos += 16;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c97); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          if (peg$c59.test(input.charAt(peg$currPos))) {\n            s4 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c60); }\n          }\n          if (s4 !== peg$FAILED) {\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              if (peg$c59.test(input.charAt(peg$currPos))) {\n                s4 = input.charAt(peg$currPos);\n                peg$currPos++;\n              } else {\n                s4 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c60); }\n              }\n            }\n          } else {\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              if (input.charCodeAt(peg$currPos) === 41) {\n                s5 = peg$c67;\n                peg$currPos++;\n              } else {\n                s5 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c68); }\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c98(s3);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n    function peg$parseclass() {\n      var s0, s1, s2;\n\n      var key    = peg$currPos * 30 + 29,\n          cached = peg$resultsCache[key];\n\n      if (cached) {\n        peg$currPos = cached.nextPos;\n\n        return cached.result;\n      }\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 58) {\n        s1 = peg$c99;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c100); }\n      }\n      if (s1 !== peg$FAILED) {\n        if (input.substr(peg$currPos, 9).toLowerCase() === peg$c101) {\n          s2 = input.substr(peg$currPos, 9);\n          peg$currPos += 9;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c102); }\n        }\n        if (s2 === peg$FAILED) {\n          if (input.substr(peg$currPos, 10).toLowerCase() === peg$c103) {\n            s2 = input.substr(peg$currPos, 10);\n            peg$currPos += 10;\n          } else {\n            s2 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c104); }\n          }\n          if (s2 === peg$FAILED) {\n            if (input.substr(peg$currPos, 11).toLowerCase() === peg$c105) {\n              s2 = input.substr(peg$currPos, 11);\n              peg$currPos += 11;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c106); }\n            }\n            if (s2 === peg$FAILED) {\n              if (input.substr(peg$currPos, 8).toLowerCase() === peg$c107) {\n                s2 = input.substr(peg$currPos, 8);\n                peg$currPos += 8;\n              } else {\n                s2 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c108); }\n              }\n              if (s2 === peg$FAILED) {\n                if (input.substr(peg$currPos, 7).toLowerCase() === peg$c109) {\n                  s2 = input.substr(peg$currPos, 7);\n                  peg$currPos += 7;\n                } else {\n                  s2 = peg$FAILED;\n                  if (peg$silentFails === 0) { peg$fail(peg$c110); }\n                }\n              }\n            }\n          }\n        }\n        if (s2 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c111(s2);\n          s0 = s1;\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      peg$resultsCache[key] = { nextPos: peg$currPos, result: s0 };\n\n      return s0;\n    }\n\n\n      function nth(n) { return { type: 'nth-child', index: { type: 'literal', value: n } }; }\n      function nthLast(n) { return { type: 'nth-last-child', index: { type: 'literal', value: n } }; }\n      function strUnescape(s) {\n        return s.replace(/\\\\(.)/g, function(match, ch) {\n          switch(ch) {\n            case 'b': return '\\b';\n            case 'f': return '\\f';\n            case 'n': return '\\n';\n            case 'r': return '\\r';\n            case 't': return '\\t';\n            case 'v': return '\\v';\n            default: return ch;\n          }\n        });\n      }\n\n\n    peg$result = peg$startRuleFunction();\n\n    if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n      return peg$result;\n    } else {\n      if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n        peg$fail(peg$endExpectation());\n      }\n\n      throw peg$buildStructuredError(\n        peg$maxFailExpected,\n        peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n        peg$maxFailPos < input.length\n          ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n          : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n      );\n    }\n  }\n\n  return {\n    SyntaxError: peg$SyntaxError,\n    parse:       peg$parse\n  };\n});\n","/* vim: set sw=4 sts=4 : */\nimport estraverse from 'estraverse';\nimport parser from './parser.js';\n\n/**\n* @typedef {\"LEFT_SIDE\"|\"RIGHT_SIDE\"} Side\n*/\n\nconst LEFT_SIDE = 'LEFT_SIDE';\nconst RIGHT_SIDE = 'RIGHT_SIDE';\n\n/**\n * @external AST\n * @see https://esprima.readthedocs.io/en/latest/syntax-tree-format.html\n */\n\n/**\n * One of the rules of `grammar.pegjs`\n * @typedef {PlainObject} SelectorAST\n * @see grammar.pegjs\n*/\n\n/**\n * The `sequence` production of `grammar.pegjs`\n * @typedef {PlainObject} SelectorSequenceAST\n*/\n\n/**\n * Get the value of a property which may be multiple levels down\n * in the object.\n * @param {?PlainObject} obj\n * @param {string} key\n * @returns {undefined|boolean|string|number|external:AST}\n */\nfunction getPath(obj, key) {\n    const keys = key.split('.');\n    for (let i = 0; i < keys.length; i++) {\n        if (obj == null) { return obj; }\n        obj = obj[keys[i]];\n    }\n    return obj;\n}\n\n/**\n * Determine whether `node` can be reached by following `path`,\n * starting at `ancestor`.\n * @param {?external:AST} node\n * @param {?external:AST} ancestor\n * @param {string[]} path\n * @returns {boolean}\n */\nfunction inPath(node, ancestor, path) {\n    if (path.length === 0) { return node === ancestor; }\n    if (ancestor == null) { return false; }\n    const field = ancestor[path[0]];\n    const remainingPath = path.slice(1);\n    if (Array.isArray(field)) {\n        for (let i = 0, l = field.length; i < l; ++i) {\n            if (inPath(node, field[i], remainingPath)) { return true; }\n        }\n        return false;\n    } else {\n        return inPath(node, field, remainingPath);\n    }\n}\n\n/**\n * Given a `node` and its ancestors, determine if `node` is matched\n * by `selector`.\n * @param {?external:AST} node\n * @param {?SelectorAST} selector\n * @param {external:AST[]} [ancestry=[]]\n * @throws {Error} Unknowns (operator, class name, selector type, or\n * selector value type)\n * @returns {boolean}\n */\nfunction matches(node, selector, ancestry) {\n    if (!selector) { return true; }\n    if (!node) { return false; }\n    if (!ancestry) { ancestry = []; }\n\n    switch(selector.type) {\n        case 'wildcard':\n            return true;\n\n        case 'identifier':\n            return selector.value.toLowerCase() === node.type.toLowerCase();\n\n        case 'field': {\n            const path = selector.name.split('.');\n            const ancestor = ancestry[path.length - 1];\n            return inPath(node, ancestor, path);\n\n        }\n        case 'matches':\n            for (let i = 0, l = selector.selectors.length; i < l; ++i) {\n                if (matches(node, selector.selectors[i], ancestry)) { return true; }\n            }\n            return false;\n\n        case 'compound':\n            for (let i = 0, l = selector.selectors.length; i < l; ++i) {\n                if (!matches(node, selector.selectors[i], ancestry)) { return false; }\n            }\n            return true;\n\n        case 'not':\n            for (let i = 0, l = selector.selectors.length; i < l; ++i) {\n                if (matches(node, selector.selectors[i], ancestry)) { return false; }\n            }\n            return true;\n\n        case 'has': {\n            const collector = [];\n            for (let i = 0, l = selector.selectors.length; i < l; ++i) {\n                const a = [];\n                estraverse.traverse(node, {\n                    enter (node, parent) {\n                        if (parent != null) { a.unshift(parent); }\n                        if (matches(node, selector.selectors[i], a)) {\n                            collector.push(node);\n                        }\n                    },\n                    leave () { a.shift(); },\n                    fallback: 'iteration'\n                });\n            }\n            return collector.length !== 0;\n\n        }\n        case 'child':\n            if (matches(node, selector.right, ancestry)) {\n                return matches(ancestry[0], selector.left, ancestry.slice(1));\n            }\n            return false;\n\n        case 'descendant':\n            if (matches(node, selector.right, ancestry)) {\n                for (let i = 0, l = ancestry.length; i < l; ++i) {\n                    if (matches(ancestry[i], selector.left, ancestry.slice(i + 1))) {\n                        return true;\n                    }\n                }\n            }\n            return false;\n\n        case 'attribute': {\n            const p = getPath(node, selector.name);\n            switch (selector.operator) {\n                case void 0:\n                    return p != null;\n                case '=':\n                    switch (selector.value.type) {\n                        case 'regexp': return typeof p === 'string' && selector.value.value.test(p);\n                        case 'literal': return `${selector.value.value}` === `${p}`;\n                        case 'type': return selector.value.value === typeof p;\n                    }\n                    throw new Error(`Unknown selector value type: ${selector.value.type}`);\n                case '!=':\n                    switch (selector.value.type) {\n                        case 'regexp': return !selector.value.value.test(p);\n                        case 'literal': return `${selector.value.value}` !== `${p}`;\n                        case 'type': return selector.value.value !== typeof p;\n                    }\n                    throw new Error(`Unknown selector value type: ${selector.value.type}`);\n                case '<=': return p <= selector.value.value;\n                case '<': return p < selector.value.value;\n                case '>': return p > selector.value.value;\n                case '>=': return p >= selector.value.value;\n            }\n            throw new Error(`Unknown operator: ${selector.operator}`);\n        }\n        case 'sibling':\n            return matches(node, selector.right, ancestry) &&\n                sibling(node, selector.left, ancestry, LEFT_SIDE) ||\n                selector.left.subject &&\n                matches(node, selector.left, ancestry) &&\n                sibling(node, selector.right, ancestry, RIGHT_SIDE);\n        case 'adjacent':\n            return matches(node, selector.right, ancestry) &&\n                adjacent(node, selector.left, ancestry, LEFT_SIDE) ||\n                selector.right.subject &&\n                matches(node, selector.left, ancestry) &&\n                adjacent(node, selector.right, ancestry, RIGHT_SIDE);\n\n        case 'nth-child':\n            return matches(node, selector.right, ancestry) &&\n                nthChild(node, ancestry, function () {\n                    return selector.index.value - 1;\n                });\n\n        case 'nth-last-child':\n            return matches(node, selector.right, ancestry) &&\n                nthChild(node, ancestry, function (length) {\n                    return length - selector.index.value;\n                });\n\n        case 'class':\n            switch(selector.name.toLowerCase()){\n                case 'statement':\n                    if(node.type.slice(-9) === 'Statement') return true;\n                    // fallthrough: interface Declaration <: Statement { }\n                case 'declaration':\n                    return node.type.slice(-11) === 'Declaration';\n                case 'pattern':\n                    if(node.type.slice(-7) === 'Pattern') return true;\n                    // fallthrough: interface Expression <: Node, Pattern { }\n                case 'expression':\n                    return node.type.slice(-10) === 'Expression' ||\n                        node.type.slice(-7) === 'Literal' ||\n                        (\n                            node.type === 'Identifier' &&\n                            (ancestry.length === 0 || ancestry[0].type !== 'MetaProperty')\n                        ) ||\n                        node.type === 'MetaProperty';\n                case 'function':\n                    return node.type === 'FunctionDeclaration' ||\n                        node.type === 'FunctionExpression' ||\n                        node.type === 'ArrowFunctionExpression';\n            }\n            throw new Error(`Unknown class name: ${selector.name}`);\n    }\n\n    throw new Error(`Unknown selector type: ${selector.type}`);\n}\n\n/**\n * Determines if the given node has a sibling that matches the\n * given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @returns {boolean}\n */\nfunction sibling(node, selector, ancestry, side) {\n    const [parent] = ancestry;\n    if (!parent) { return false; }\n    const keys = estraverse.VisitorKeys[parent.type];\n    for (let i = 0, l = keys.length; i < l; ++i) {\n        const listProp = parent[keys[i]];\n        if (Array.isArray(listProp)) {\n            const startIndex = listProp.indexOf(node);\n            if (startIndex < 0) { continue; }\n            let lowerBound, upperBound;\n            if (side === LEFT_SIDE) {\n                lowerBound = 0;\n                upperBound = startIndex;\n            } else {\n                lowerBound = startIndex + 1;\n                upperBound = listProp.length;\n            }\n            for (let k = lowerBound; k < upperBound; ++k) {\n                if (matches(listProp[k], selector, ancestry)) {\n                    return true;\n                }\n            }\n        }\n    }\n    return false;\n}\n\n/**\n * Determines if the given node has an adjacent sibling that matches\n * the given selector.\n * @param {external:AST} node\n * @param {SelectorSequenceAST} selector\n * @param {external:AST[]} ancestry\n * @param {Side} side\n * @returns {boolean}\n */\nfunction adjacent(node, selector, ancestry, side) {\n    const [parent] = ancestry;\n    if (!parent) { return false; }\n    const keys = estraverse.VisitorKeys[parent.type];\n    for (let i = 0, l = keys.length; i < l; ++i) {\n        const listProp = parent[keys[i]];\n        if (Array.isArray(listProp)) {\n            const idx = listProp.indexOf(node);\n            if (idx < 0) { continue; }\n            if (side === LEFT_SIDE && idx > 0 && matches(listProp[idx - 1], selector, ancestry)) {\n                return true;\n            }\n            if (side === RIGHT_SIDE && idx < listProp.length - 1 && matches(listProp[idx + 1], selector, ancestry)) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\n\n/**\n* @callback IndexFunction\n* @param {Integer} len Containing list's length\n* @returns {Integer}\n*/\n\n/**\n * Determines if the given node is the nth child, determined by\n * `idxFn`, which is given the containing list's length.\n * @param {external:AST} node\n * @param {external:AST[]} ancestry\n * @param {IndexFunction} idxFn\n * @returns {boolean}\n */\nfunction nthChild(node, ancestry, idxFn) {\n    const [parent] = ancestry;\n    if (!parent) { return false; }\n    const keys = estraverse.VisitorKeys[parent.type];\n    for (let i = 0, l = keys.length; i < l; ++i) {\n        const listProp = parent[keys[i]];\n        if (Array.isArray(listProp)) {\n            const idx = listProp.indexOf(node);\n            if (idx >= 0 && idx === idxFn(listProp.length)) { return true; }\n        }\n    }\n    return false;\n}\n\n/**\n * For each selector node marked as a subject, find the portion of the\n * selector that the subject must match.\n * @param {SelectorAST} selector\n * @param {SelectorAST} [ancestor] Defaults to `selector`\n * @returns {SelectorAST[]}\n */\nfunction subjects(selector, ancestor) {\n    if (selector == null || typeof selector != 'object') { return []; }\n    if (ancestor == null) { ancestor = selector; }\n    const results = selector.subject ? [ancestor] : [];\n    for (const [p, sel] of Object.entries(selector)) {\n        results.push(...subjects(sel, p === 'left' ? sel : ancestor));\n    }\n    return results;\n}\n\n/**\n * From a JS AST and a selector AST, collect all JS AST nodes that\n * match the selector.\n * @param {external:AST} ast\n * @param {?SelectorAST} selector\n * @returns {external:AST[]}\n */\nfunction match(ast, selector) {\n    const ancestry = [], results = [];\n    if (!selector) { return results; }\n    const altSubjects = subjects(selector);\n    estraverse.traverse(ast, {\n        enter (node, parent) {\n            if (parent != null) { ancestry.unshift(parent); }\n            if (matches(node, selector, ancestry)) {\n                if (altSubjects.length) {\n                    for (let i = 0, l = altSubjects.length; i < l; ++i) {\n                        if (matches(node, altSubjects[i], ancestry)) { results.push(node); }\n                        for (let k = 0, m = ancestry.length; k < m; ++k) {\n                            if (matches(ancestry[k], altSubjects[i], ancestry.slice(k + 1))) {\n                                results.push(ancestry[k]);\n                            }\n                        }\n                    }\n                } else {\n                    results.push(node);\n                }\n            }\n        },\n        leave () { ancestry.shift(); },\n        fallback: 'iteration'\n    });\n    return results;\n}\n\n/**\n * Parse a selector string and return its AST.\n * @param {string} selector\n * @returns {SelectorAST}\n */\nfunction parse(selector) {\n    return parser.parse(selector);\n}\n\n/**\n * Query the code AST using the selector string.\n * @param {external:AST} ast\n * @param {string} selector\n * @returns {external:AST[]}\n */\nfunction query(ast, selector) {\n    return match(ast, parse(selector));\n}\n\nquery.parse = parse;\nquery.match = match;\nquery.matches = matches;\nquery.query = query;\n\nexport default query;\n"],"names":["clone","exports","Syntax","VisitorOption","VisitorKeys","BREAK","SKIP","REMOVE","deepCopy","obj","key","val","ret","hasOwnProperty","Reference","parent","this","Element","node","path","wrap","ref","Controller","isNode","type","isProperty","nodeType","ObjectExpression","ObjectPattern","traverse","root","visitor","extendCommentRange","comment","tokens","target","array","func","diff","len","i","current","length","upperBound","token","range","extendedRange","AssignmentExpression","AssignmentPattern","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BlockStatement","BinaryExpression","BreakStatement","CallExpression","CatchClause","ClassBody","ClassDeclaration","ClassExpression","ComprehensionBlock","ComprehensionExpression","ConditionalExpression","ContinueStatement","DebuggerStatement","DirectiveStatement","DoWhileStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForInStatement","ForOfStatement","FunctionDeclaration","FunctionExpression","GeneratorExpression","Identifier","IfStatement","ImportExpression","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MetaProperty","MethodDefinition","ModuleSpecifier","NewExpression","Program","Property","RestElement","ReturnStatement","SequenceExpression","SpreadElement","Super","SwitchStatement","SwitchCase","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","Break","Skip","Remove","prototype","replace","remove","Array","isArray","splice","iz","j","jz","result","addToPath","push","__current","__leavelist","parents","__execute","callback","element","previous","undefined","__state","call","notify","flag","skip","__initialize","__worklist","__fallback","fallback","Object","keys","__keys","assign","create","worklist","leavelist","current2","candidates","candidate","sentinel","pop","enter","Error","leave","outer","removeElem","nextElem","attachComments","tree","providedComments","cursor","comments","leadingComments","trailingComments","cloneEnvironment","module","peg$SyntaxError","message","expected","found","location","name","captureStackTrace","child","ctor","constructor","peg$subclass","buildMessage","DESCRIBE_EXPECTATION_FNS","literal","expectation","literalEscape","text","class","escapedParts","parts","classEscape","inverted","any","end","other","description","hex","ch","charCodeAt","toString","toUpperCase","s","descriptions","sort","slice","join","describeExpected","describeFound","SyntaxError","parse","input","options","peg$result","peg$FAILED","peg$startRuleFunctions","start","peg$parsestart","peg$startRuleFunction","peg$c3","peg$literalExpectation","peg$c4","peg$c5","peg$classExpectation","peg$c6","peg$c8","peg$c11","peg$c14","peg$c18","peg$c22","peg$c25","peg$c28","peg$c31","peg$c33","peg$c35","peg$c36","peg$c38","peg$c39","a","peg$c40","peg$c41","peg$c43","peg$c44","op","value","operator","peg$c47","peg$c48","peg$c49","peg$c51","peg$c52","peg$c53","b","peg$c54","d","match","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c64","peg$c65","peg$c66","peg$c68","peg$c70","peg$c71","peg$c73","peg$c74","peg$c75","peg$c79","peg$c82","peg$c85","peg$c88","peg$c91","peg$c94","peg$c97","peg$c100","peg$c102","peg$c104","peg$c106","peg$c108","peg$c110","peg$currPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$resultsCache","startRule","ignoreCase","peg$computePosDetails","pos","p","details","peg$computeLocation","startPos","endPos","startPosDetails","endPosDetails","offset","peg$fail","s0","s1","s2","ss","cached","nextPos","peg$parse_","peg$parseselectors","selectors","peg$c1","peg$parseidentifierName","test","charAt","peg$parsebinaryOp","s3","s4","s5","s6","s7","peg$parseselector","concat","map","peg$parsesequence","reduce","memo","rhs","left","right","peg$parseatom","subject","as","peg$c23","peg$parsewildcard","peg$parseidentifier","peg$parseattrName","peg$parseattrEqOps","substr","peg$parsetype","flgs","peg$parseflags","RegExp","peg$parseregex","peg$parseattrOps","peg$parsestring","leadingDecimals","apply","parseFloat","peg$c61","peg$parsenumber","peg$parsepath","peg$parseattrValue","peg$parseattr","peg$parsefield","peg$parsenegation","peg$parsematches","peg$parsehas","nth","peg$parsefirstChild","nthLast","peg$parselastChild","parseInt","peg$parsenthChild","peg$parsenthLastChild","toLowerCase","peg$parseclass","n","index","factory","matches","selector","ancestry","split","inPath","ancestor","field","remainingPath","l","collector","estraverse","[object Object]","unshift","shift","getPath","sibling","adjacent","nthChild","side","listProp","startIndex","indexOf","lowerBound","k","idx","idxFn","ast","results","altSubjects","subjects","sel","entries","m","parser","query"],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/table/node_modules/emoji-regex/README.md-34-  const emoji = match[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/table/node_modules/emoji-regex/README.md:35:  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/table/node_modules/emoji-regex/README.md-36-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-28-      debug(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:29:        `moveAndMaybeCompressFile: source file path does not exist. not moving. sourceFilePath=${sourceFilePath}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-30-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-44-          debug(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:45:            `moveAndMaybeCompressFile: finished compressing ${targetFilePath}, deleting ${sourceFilePath}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-46-          );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-50-      debug(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:51:        `moveAndMaybeCompressFile: deleting file=${targetFilePath}, renaming ${sourceFilePath} to ${targetFilePath}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-52-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-80-  constructor(filePath, options) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:81:    debug(`creating RollingFileWriteStream. path=${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-82-    super(options);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-135-    if (options.maxSize <= 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:136:      throw new Error(`options.maxSize (${options.maxSize}) should be > 0`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-137-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-138-    if (options.numToKeep <= 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:139:      throw new Error(`options.numToKeep (${options.numToKeep}) should be > 0`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-140-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:141:    debug(`creating stream with option=${JSON.stringify(options)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-142-    return options;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-159-      debug(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:160:        `_shouldRoll: rolling by size because ${this.state.currentSize} >= ${this.options.maxSize}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-161-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-171-        `writing chunk. ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:172:          `file=${this.currentFileStream.path} ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:173:          `state=${JSON.stringify(this.state)} ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:174:          `chunk=${chunk}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-175-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-185-    fs.readdir(this.fileObject.dir, (e, files) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:186:      debug(`_getExistingFiles: files=${files}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-187-      const existingFileDetails = _.compact(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-189-          const parseResult = this._parseFileName(n);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:190:          debug(`_getExistingFiles: parsed ${n} as `, parseResult);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-191-          if (!parseResult) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-225-      debug(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:226:        `metaStr=${metaStr}, fileName=${fileName}, prefix=${prefix}, suffix=${suffix}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-227-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-233-      metaStr = fileName.slice(prefix.length + 1);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:234:      debug(`metaStr=${metaStr}, fileName=${fileName}, prefix=${prefix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-235-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-247-        const dateStr = metaStr.slice(0, -1 * (indexStr.length + 1));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:248:        debug(`dateStr is ${dateStr}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-249-        if (dateStr) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-256-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:257:      debug(`metaStr is ${metaStr}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-258-      return {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-275-    debug(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:276:      `_formatFileName: date=${date}, index=${index}, isHotFile=${isHotFile}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-277-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-285-      debug(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:286:        `_formatFileName: includePattern? ${this.options.alwaysIncludePattern}, pattern: ${this.options.pattern}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-287-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-297-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:298:      debug(`_formatFileName: is hot file so, filename: ${oriFileName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-299-      return oriFileName;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-321-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:322:    debug(`_formatFileName: ${fileName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-323-    return fileName;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-327-    const currentFilePath = this.currentFileStream.path;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:328:    debug(`numToKeep = ${this.options.numToKeep}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-329-    const finishedRolling = () => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-332-        this.state.currentDate = format(this.options.pattern, newNow());
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:333:        debug(`rolling for next period. state=${JSON.stringify(this.state)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-334-      } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-336-        debug(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:337:          `rolling during the same period. state=${JSON.stringify(this.state)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-338-        );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-351-      for (let i = todaysFiles.length; i >= 0; i--) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:352:        debug(`i = ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-353-        const sourceFilePath =
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-393-  _roll({ isNextPeriod }, cb) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:394:    debug(`rolling, isNextPeriod ? ${isNextPeriod}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-395-    debug(`_roll: closing the current stream`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-421-      debug(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:422:        `numToKeep = ${this.options.numToKeep}, existingFiles = ${existingFileDetails.length}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-423-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-441-  _deleteFiles(fileNames, done) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js:442:    debug(`files to delete: ${fileNames}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/streamroller/lib/RollingFileWriteStream.js-443-    async.each(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/README.md-27-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/README.md:28:`$ npm install yargs-unparser`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/README.md-29-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/README.md-84-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/README.md:85:`$ npm test`   
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/README.md:86:`$ npm test -- --watch` during development
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/README.md-87-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-20-function keyToFlag(key) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js:21:    return key.length === 1 ? `-${key}` : `--${key}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-22-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-29-    } else if (value === false) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js:30:        unparsed.push(`--no-${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-31-    } else if (Array.isArray(value)) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-37-            if (!isCamelCased(flattenedKey, flattened)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js:38:                unparseOption(`${key}.${flattenedKey}`, flattened[flattenedKey], unparsed);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-39-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-42-    } else if (value != null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js:43:        unparsed.push(keyToFlag(key), `${value}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-44-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-55-        .getCommandInstance()
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js:56:        .parseCommand(`foo ${options.command.substr(index + cmd.length)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-57-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-67-            .filter((arg) => arg != null)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js:68:            .map((arg) => `${arg}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/index.js-69-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/emoji-regex/README.md-34-  const emoji = match[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/emoji-regex/README.md:35:  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/emoji-regex/README.md-36-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/yargs.js-61-    self.$0 = process.env._.replace(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/yargs.js:62:      `${path.dirname(process.execPath)}/`, ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/yargs.js-63-    )
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/yargs.js-1122-        // e.g., loading in a list of commands from an API.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/yargs.js:1123:        const completionArgs = args.slice(args.indexOf(`--${completion.completionKey}`) + 1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/yargs.js-1124-        completion.getCompletion(completionArgs, (completions) => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/README.md-76-  }, (argv) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/README.md:77:    if (argv.verbose) console.info(`start server on :${argv.port}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/README.md-78-    serve(argv.port)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js-10-  if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js:11:    throw new YError(`Circular extended configurations: '${cfgPath}'.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js-12-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-181-        usages.forEach((usage) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:182:          ui.div(`${usage[0].replace(/\$0/g, base$0)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-183-          if (usage[1]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:184:            ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] })
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-185-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-191-        if (demandedCommands._) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:192:          u = `${base$0} <${__('command')}>\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-193-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:194:          u = `${base$0} [${__('command')}]\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-195-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:196:        ui.div(`${u}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-197-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-205-      const context = yargs.getContext()
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:206:      const parentCommands = context.commands.length ? `${context.commands.join(' ')} ` : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-207-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-212-      commands.forEach((command) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:213:        const commandString = `${base$0} ${parentCommands}${command[0].replace(/^\$0 ?/, '')}` // drop $0 from default commands.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-214-        ui.span(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-217-            padding: [0, 2, 0, 2],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:218:            width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-219-          },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-222-        const hints = []
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:223:        if (command[2]) hints.push(`[${__('default:').slice(0, -1)}]`) // TODO hacking around i18n here
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-224-        if (command[3] && command[3].length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:225:          hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-226-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-287-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:288:        if (~options.boolean.indexOf(key)) type = `[${__('boolean')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:289:        if (~options.count.indexOf(key)) type = `[${__('count')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:290:        if (~options.string.indexOf(key)) type = `[${__('string')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:291:        if (~options.normalize.indexOf(key)) type = `[${__('string')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:292:        if (~options.array.indexOf(key)) type = `[${__('array')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:293:        if (~options.number.indexOf(key)) type = `[${__('number')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-294-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-296-          type,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:297:          (key in demandedOptions) ? `[${__('required')}]` : null,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-298-          options.choices && options.choices[key] ? `[${__('choices:')} ${
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-349-      const e = epilog.replace(/\$0/g, base$0)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:350:      ui.div(`${e}\n`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-351-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-369-      width = Math.max(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:370:        stringWidth(modifier ? `${modifier} ${v[0]}` : v[0]),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-371-        width
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-457-  function defaultString (value, defaultDescription) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:458:    let string = `[${__('default:')} `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-459-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-466-        case 'string':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:467:          string += `"${value}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-468-          break
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-476-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js:477:    return `${string}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js-478-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js-77-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js:78:      const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js-79-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js-249-        if (key && !value) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js:250:          implyFail.push(` ${origKey} -> ${origValue}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js-251-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js-255-    if (implyFail.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js:256:      let msg = `${__('Implications failed:')}\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js-257-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/decamelize.js-28-  return text
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/decamelize.js:29:    .replace(/([a-z\d])([A-Z])/g, `$1${separator}$2`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/decamelize.js:30:    .replace(/([A-Z]+)([A-Z][a-z\d]+)/g, `$1${separator}$2`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/decamelize.js-31-    .toLowerCase()
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/command.js-118-    const mod = require('which-module')(obj)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/command.js:119:    if (!mod) throw new Error(`No command name given for module: ${inspect(obj)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/command.js-120-    return commandFromFilename(mod.filename)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/command.js-269-    pc.push(c)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/command.js:270:    return `$0 ${pc.join(' ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/command.js-271-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/command.js-342-      positionalMap[key].map((value) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/command.js:343:        unparsed.push(`--${key}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/command.js-344-        unparsed.push(value)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js-76-        const keyAndAliases = [key].concat(aliases[key] || [])
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js:77:        const notInArgs = keyAndAliases.every(val => args.indexOf(`--${val}`) === -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js-78-        if (notInArgs) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js-79-          if (!zshShell) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js:80:            completions.push(`--${key}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js-81-          } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js-82-            const desc = descs[key] || ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js:83:            completions.push(`--${key.replace(/:/g, '\\:')}:${desc.replace('__yargsString__:', '')}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js-84-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js-98-    // add ./to applications not yet installed as bin.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js:99:    if ($0.match(/\.js$/)) $0 = `./${$0}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js-100-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js-19-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js:20:      parsed = command.parseCommand(`cmd ${expected}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js-21-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js-27-    if (length < parsed.demanded.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js:28:      throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js-29-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js-32-    if (length > totalCommands) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js:33:      throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js-34-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js-66-function argumentTypeError (observedType, allowedTypes, position, optional) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js:67:  throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js-68-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-25-const zeros = input => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js:26:  let value = `${input}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-27-  let index = -1;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-76-  if (parts.negatives.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js:77:    negatives = `-(${prefix}${parts.negatives.join('|')})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-78-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-80-  if (positives && negatives) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js:81:    result = `${positives}|${negatives}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-82-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-86-  if (options.wrap) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js:87:    return `(${prefix}${result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-88-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-101-  let stop = String.fromCharCode(b);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js:102:  return `[${start}-${stop}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-103-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-108-    let prefix = options.capture ? '' : '?:';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js:109:    return wrap ? `(${prefix}${start.join('|')})` : start.join('|');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-110-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-124-  if (options.strictRanges === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js:125:    throw new TypeError(`Expected step "${step}" to be a number`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-126-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-188-  let format = options.transform || (val => String.fromCharCode(val));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js:189:  let a = `${start}`.charCodeAt(0);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js:190:  let b = `${end}`.charCodeAt(0);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fill-range/index.js-191-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array.prototype.flat/node_modules/es-to-primitive/Makefile-8-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array.prototype.flat/node_modules/es-to-primitive/Makefile:9:# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array.prototype.flat/node_modules/es-to-primitive/Makefile-10-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array.prototype.flat/node_modules/es-to-primitive/Makefile-50-	@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array.prototype.flat/node_modules/es-to-primitive/Makefile:51:	 new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array.prototype.flat/node_modules/es-to-primitive/Makefile-52-	 if printf "$$new_ver" | command grep -q '^[0-9]'; then \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array.prototype.flat/node_modules/es-to-primitive/Makefile-55-	 else \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array.prototype.flat/node_modules/es-to-primitive/Makefile:56:	   new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array.prototype.flat/node_modules/es-to-primitive/Makefile-57-	 fi; \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js-1-var a = require.resolve('buffer/').replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js:2:var b = require('resolve').sync('buffer/', { preserveSymlinks: true }).replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js:3:var c = require('resolve').sync('buffer/', { preserveSymlinks: false }).replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/normalize-package-data/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js-4-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/js-tokens/index.js-9-// (run `npm run build`).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/js-tokens/index.js:10:exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/js-tokens/index.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/relative-module-resolver.js-52-            ) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/relative-module-resolver.js:53:                error.message += `\nRequire stack:\n- ${relativeToPath}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/relative-module-resolver.js-54-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-ops.js-126-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-ops.js:127:                throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-ops.js-128-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-32-         */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:33:        const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, "u"),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:34:            scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, "u");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-35-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-36-        if (scopedPackageShortcutRegex.test(normalizedName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:37:            normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-38-        } else if (!scopedPackageNameRegex.test(normalizedName.split("/")[1])) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-43-             */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:44:            normalizedName = normalizedName.replace(/^@([^/]+)\/(.*)$/u, `@$1/${prefix}-$2`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-45-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:46:    } else if (!normalizedName.startsWith(`${prefix}-`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:47:        normalizedName = `${prefix}-${normalizedName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-48-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-60-    if (fullname[0] === "@") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:61:        let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, "u").exec(fullname);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-62-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-66-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:67:        matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, "u").exec(fullname);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-68-        if (matchResult) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:69:            return `${matchResult[1]}/${matchResult[2]}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-70-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js:71:    } else if (fullname.startsWith(`${prefix}-`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/naming.js-72-        return fullname.slice(prefix.length + 1);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-86-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:87:    throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util.inspect(severity).replace(/'/gu, "\"").replace(/\n/gu, "")}').\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-88-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-111-            throw new Error(validateRule.errors.map(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:112:                error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-113-            ).join(""));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-134-    } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:135:        const enhancedMessage = `Configuration for rule "${ruleId}" is invalid:\n${err.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-136-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-137-        if (typeof source === "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:138:            throw new Error(`${source}:\n\t${enhancedMessage}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-139-        } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-166-        if (!env) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:167:            const message = `${source}:\n\tEnvironment key "${id}" is unknown\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-168-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-212-            } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:213:                throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\n${err.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-214-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-226-    if (processorName && !getProcessor(processorName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:227:        throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-228-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-238-        if (error.keyword === "additionalProperties") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:239:            const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-240-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:241:            return `Unexpected top-level property "${formattedPropertyPath}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-242-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-247-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:248:            return `Property "${formattedField}" is the wrong type (expected ${formattedExpectedType} but got \`${formattedValue}\`)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-249-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-252-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:253:        return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:254:    }).map(message => `\t- ${message}.\n`).join("");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-255-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-269-    process.emitWarning(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:270:        `${message} (found in "${rel}")`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-271-        "DeprecationWarning",
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-285-    if (!validateSchema(config)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js:286:        throw new Error(`ESLint configuration in ${source} is invalid:\n${formatErrors(validateSchema.errors)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/config-validator.js-287-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-69-    function normalizeVersionStr(versionStr) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js:70:        return versionStr.startsWith("v") ? versionStr : `v${versionStr}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-71-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-83-        } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js:84:            log.error(`Error finding ${bin} version running the command \`${bin} ${binArgs.join(" ")}\``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-85-            throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-119-            } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js:120:                log.error(`Error finding npm binary path when running command \`npm ${npmBinArgs.join(" ")}\``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-121-                throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-132-        } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js:133:            log.error(`Error finding ${pkg} version running the command \`npm ${npmLsArgs.join(" ")}\``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-134-            throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-140-        "",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js:141:        `Node version: ${getBinVersion("node")}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js:142:        `npm version: ${getBinVersion("npm")}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js:143:        `Local ESLint version: ${getNpmPackageVersion("eslint", { global: false })}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js:144:        `Global ESLint version: ${getNpmPackageVersion("eslint", { global: true })}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-145-    ].join("\n");
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-152-function version() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js:153:    return `v${packageJson.version}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/shared/runtime-info.js-154-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js-124-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js:125:            const additional = type ? ` Allowed unused ${type} must match ${pattern}.` : "";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js-126-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js:127:            return `'{{name}}' is defined but never used.${additional}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js-128-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js-135-        function getAssignedMessage() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js:136:            const additional = config.varsIgnorePattern ? ` Allowed unused vars must match ${config.varsIgnorePattern.toString()}.` : "";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js-137-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js:138:            return `'{{name}}' is assigned a value but never used.${additional}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unused-vars.js-139-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/template-curly-spacing.js-68-                    loc: token.loc.start,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/template-curly-spacing.js:69:                    messageId: `${prefix}Before`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/template-curly-spacing.js-70-                    fix(fixer) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/template-curly-spacing.js-83-        /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/template-curly-spacing.js:84:         * Checks spacing after `${` of a given token.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/template-curly-spacing.js-85-         * @param {Token} token A token to check. This is a Template token.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/template-curly-spacing.js-100-                    },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/template-curly-spacing.js:101:                    messageId: `${prefix}After`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/template-curly-spacing.js-102-                    fix(fixer) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/arrow-parens.js-104-                    closingParenToken.range[1]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/arrow-parens.js:105:                ], `${shouldAddSpaceForAsync ? " " : ""}${paramToken.value}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/arrow-parens.js-106-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/arrow-parens.js-137-                        fix(fixer) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/arrow-parens.js:138:                            return fixer.replaceText(firstTokenOfParam, `(${firstTokenOfParam.value})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/arrow-parens.js-139-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/arrow-parens.js-172-                        fix(fixer) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/arrow-parens.js:173:                            return fixer.replaceText(firstTokenOfParam, `(${firstTokenOfParam.value})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/arrow-parens.js-174-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-ternary.js-57-                node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-ternary.js:58:                messageId: `${expected ? "expected" : "unexpected"}${node === parentNode.test ? "TestCons" : "ConsAlt"}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-ternary.js-59-            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-19-function escape(s) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js:20:    return `(?:${lodash.escapeRegExp(s)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-21-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-29-function escapeAndRepeat(s) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js:30:    return `${escape(s)}+`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-31-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-86-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js:87:        pattern += `(?:$|[${Array.from(astUtils.LINEBREAKS).join("")}]))`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-88-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-139-function createNeverStylePattern(markers) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js:140:    const pattern = `^(${markers.map(escape).join("|")})?[ \t]+`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-141-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-249-                beginRegex: requireSpace ? createAlwaysStylePattern(markers, exceptions) : createNeverStylePattern(markers),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js:250:                endRegex: balanced && requireSpace ? new RegExp(`${createExceptionsPattern(exceptions)}$`, "u") : new RegExp(endNeverPattern, "u"),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-251-                hasExceptions: exceptions.length > 0,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js:252:                captureMarker: new RegExp(`^(${markers.map(escape).join("|")})`, "u"),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/spaced-comment.js-253-                markers: new Set(markers)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/newline-after-var.js-218-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/newline-after-var.js:219:                        return fixer.replaceTextRange([lastToken.range[1], nextToken.range[0]], `${linesBetween.slice(0, -1).join("")}\n${linesBetween[linesBetween.length - 1]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/newline-after-var.js-220-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-invalid-regexp.js-53-            if (temp) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-invalid-regexp.js:54:                allowedFlags = new RegExp(`[${temp}]`, "giu");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-invalid-regexp.js-55-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-invalid-regexp.js-92-            } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-invalid-regexp.js:93:                return `Invalid flags supplied to RegExp constructor '${flags}'`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-invalid-regexp.js-94-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-destructuring.js-178-                node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-destructuring.js:179:                `{${rightNode.property.name}} = ${sourceCode.getText(rightNode.object)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-destructuring.js-180-            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/one-var.js-311-                if (afterComma.range[0] === tokenAfterDeclarator.range[1]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/one-var.js:312:                    return fixer.replaceText(tokenAfterDeclarator, `; ${declaration.kind} `);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/one-var.js-313-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/one-var.js-333-                        [tokenAfterDeclarator.range[0], lastComment.range[0]],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/one-var.js:334:                        `;${sourceCode.text.slice(tokenAfterDeclarator.range[1], lastComment.range[0])}${declaration.kind} `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/one-var.js-335-                    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/one-var.js-337-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/one-var.js:338:                return fixer.replaceText(tokenAfterDeclarator, `; ${declaration.kind}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/one-var.js-339-            }).filter(x => x);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-magic-numbers.js-129-                    value = -node.value;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-magic-numbers.js:130:                    raw = `-${node.raw}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-magic-numbers.js-131-                } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-extra-boolean-cast.js-165-                            if (astUtils.getPrecedence(argument) < astUtils.getPrecedence(node.parent)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-extra-boolean-cast.js:166:                                return fixer.replaceText(node, `(${sourceCode.getText(argument)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-extra-boolean-cast.js-167-                            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/function-paren-newline.js-242-                default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/function-paren-newline.js:243:                    throw new TypeError(`unexpected node with type ${node.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/function-paren-newline.js-244-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-222-                    ) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js:223:                        return fixer.replaceText(node, ` ${recommendation}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-224-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-236-                if (!operatorAllowed && options.boolean && isDoubleLogicalNegating(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js:237:                    const recommendation = `Boolean(${sourceCode.getText(node.argument.argument)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-238-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-244-                if (!operatorAllowed && options.boolean && isBinaryNegatingOfIndexOf(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js:245:                    const recommendation = `${sourceCode.getText(node.argument)} !== -1`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-246-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-252-                if (!operatorAllowed && options.number && node.operator === "+" && !isNumeric(node.argument)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js:253:                    const recommendation = `Number(${sourceCode.getText(node.argument)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-254-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-267-                if (nonNumericOperand) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js:268:                    const recommendation = `Number(${sourceCode.getText(nonNumericOperand)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-269-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-275-                if (!operatorAllowed && options.string && isConcatWithEmptyString(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js:276:                    const recommendation = `String(${sourceCode.getText(getNonEmptyOperand(node))})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-277-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-288-                    const code = sourceCode.getText(getNonEmptyOperand(node));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js:289:                    const recommendation = `${code} = String(${code})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-coercion.js-290-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-multi-spaces.js-65-            const value = valueLines[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-multi-spaces.js:66:            const formattedValue = `${value.slice(0, 12)}...`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-multi-spaces.js-67-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-multi-spaces.js-114-                    if (rightToken.type === "Block") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-multi-spaces.js:115:                        displayValue = `/*${formatReportedCommentValue(rightToken)}*/`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-multi-spaces.js-116-                    } else if (rightToken.type === "Line") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-multi-spaces.js:117:                        displayValue = `//${formatReportedCommentValue(rightToken)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-multi-spaces.js-118-                    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-confusing-arrow.js-74-                        // if `allowParens` is not set to true dont bother wrapping in parens
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-confusing-arrow.js:75:                        return allowParens && fixer.replaceText(node.body, `(${sourceCode.getText(node.body)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-confusing-arrow.js-76-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/keyword-spacing.js-32-        if (KEYS[i] === KEYS[i - 1]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/keyword-spacing.js:33:            throw new Error(`Duplication was found in the keyword list: ${KEYS[i]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/keyword-spacing.js-34-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-restricted-properties.js-112-            if (matchedObjectProperty) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-restricted-properties.js:113:                const message = matchedObjectProperty.message ? ` ${matchedObjectProperty.message}` : "";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-restricted-properties.js-114-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-restricted-properties.js-125-            } else if (globalMatchedProperty) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-restricted-properties.js:126:                const message = globalMatchedProperty.message ? ` ${globalMatchedProperty.message}` : "";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-restricted-properties.js-127-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js-166-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js:167:                                return fixer.replaceText(node, `${leftText}${expr.operator}=${rightText}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js-168-                            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js-214-                            ) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js:215:                                rightText = `${sourceCode.text.slice(operatorToken.range[1], node.right.range[0])}(${sourceCode.getText(node.right)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js-216-                            } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js-226-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js:227:                                rightText = `${rightTextPrefix}${sourceCode.text.slice(operatorToken.range[1], node.range[1])}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js-228-                            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js-229-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js:230:                            return fixer.replaceText(node, `${leftText}= ${leftText}${newOperator}${rightText}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/operator-assignment.js-231-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-trailing-spaces.js-51-        const BLANK_CLASS = "[ \t\u00a0\u2000-\u200b\u3000]",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-trailing-spaces.js:52:            SKIP_BLANK = `^${BLANK_CLASS}*$`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-trailing-spaces.js:53:            NONBLANK = `${BLANK_CLASS}+$`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-trailing-spaces.js-54-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/accessor-pairs.js-206-                    node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/accessor-pairs.js:207:                    messageId: `${messageKind}InObjectLiteral`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/accessor-pairs.js-208-                    loc: astUtils.getFunctionHeadLoc(node.value, sourceCode),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/accessor-pairs.js-213-                    node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/accessor-pairs.js:214:                    messageId: `${messageKind}InClass`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/accessor-pairs.js-215-                    loc: astUtils.getFunctionHeadLoc(node.value, sourceCode),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/accessor-pairs.js-220-                    node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/accessor-pairs.js:221:                    messageId: `${messageKind}InPropertyDescriptor`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/accessor-pairs.js-222-                });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js-78-function parenthesizeIfShould(text, shouldParenthesize) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js:79:    return shouldParenthesize ? `(${text})` : text;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js-80-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js-165-                        exponentReplacement = parenthesizeIfShould(exponentText, shouldParenthesizeExponent),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js:166:                        replacement = parenthesizeIfShould(`${baseReplacement}**${exponentReplacement}`, shouldParenthesizeAll);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js-167-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js:168:                    return fixer.replaceText(node, `${prefix}${replacement}${suffix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js-169-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/quote-props.js-130-            // Otherwise, the key is either an identifier or a number literal.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/quote-props.js:131:            return `"${key.type === "Identifier" ? key.name : key.value}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/quote-props.js-132-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js-86-            if (astUtils.getPrecedence(node) < astUtils.getPrecedence({ type: "UnaryExpression" })) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js:87:                return `!(${astUtils.getParenthesisedText(sourceCode, node)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js-88-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js:89:            return `!${astUtils.getParenthesisedText(sourceCode, node)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js-90-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js-135-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js:136:                            return fixer.replaceText(node, isBooleanExpression(node.test) ? astUtils.getParenthesisedText(sourceCode, node.test) : `!${invertExpression(node.test)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js-137-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js-149-                            const alternateText = shouldParenthesizeAlternate
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js:150:                                ? `(${sourceCode.getText(node.alternate)})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js-151-                                : astUtils.getParenthesisedText(sourceCode, node.alternate);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js-153-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js:154:                            return fixer.replaceText(node, `${testText} || ${alternateText}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unneeded-ternary.js-155-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js-684-        function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js:685:            const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? "" : "s"}`; // e.g. "2 tabs"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js:686:            const foundSpacesWord = `space${actualSpaces === 1 ? "" : "s"}`; // e.g. "space"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js:687:            const foundTabsWord = `tab${actualTabs === 1 ? "" : "s"}`; // e.g. "tabs"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js-688-            let foundStatement;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js-695-                 */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js:696:                foundStatement = indentType === "space" ? actualSpaces : `${actualSpaces} ${foundSpacesWord}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js-697-            } else if (actualTabs > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js:698:                foundStatement = indentType === "tab" ? actualTabs : `${actualTabs} ${foundTabsWord}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent.js-699-            } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/eqeqeq.js-168-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/eqeqeq.js:169:                report(node, `${node.operator}=`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/eqeqeq.js-170-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-location.js-70-                        messageId: "expectedDotAfterObject",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-location.js:71:                        fix: fixer => fixer.replaceTextRange([tokenBeforeDot.range[1], property.range[0]], `${neededTextAfterToken}.${textBeforeDot}${textAfterDot}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-location.js-72-                    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-location.js-78-                    messageId: "expectedDotBeforeProperty",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-location.js:79:                    fix: fixer => fixer.replaceTextRange([tokenBeforeDot.range[1], property.range[0]], `${textBeforeDot}${textAfterDot}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-location.js-80-                });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-floating-decimal.js-51-                                    tokenBefore.range[1] === node.range[0] &&
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-floating-decimal.js:52:                                    !astUtils.canTokensBeAdjacent(tokenBefore, `0${node.raw}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-floating-decimal.js-53-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-883-     *     a[tag`b`]     // => null
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js:884:     *     a[`${b}`]     // => null
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-885-     *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-893-     *     let a = {[tag`b`]: 1}     // => null
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js:894:     *     let a = {[`${b}`]: 1}     // => null
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-895-     * @param {ASTNode} node The node to get.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-1085-        if (node.id) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js:1086:            tokens.push(`'${node.id.name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-1087-        } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-1090-            if (name !== null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js:1091:                tokens.push(`'${name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-1092-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-1363-    getNameLocationInGlobalDirectiveComment(sourceCode, comment, name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js:1364:        const namePattern = new RegExp(`[\\s,]${lodash.escapeRegExp(name)}(?:$|[\\s,:])`, "gu");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/utils/ast-utils.js-1365-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unsafe-negation.js-111-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unsafe-negation.js:112:                                    return fixer.replaceTextRange(fixRange, `(${text})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unsafe-negation.js-113-                                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unsafe-negation.js-117-                                fix(fixer) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unsafe-negation.js:118:                                    return fixer.replaceText(node.left, `(${sourceCode.getText(node.left)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-unsafe-negation.js-119-                                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js-274-        function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js:275:            const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? "" : "s"}`; // e.g. "2 tabs"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js:276:            const foundSpacesWord = `space${actualSpaces === 1 ? "" : "s"}`; // e.g. "space"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js:277:            const foundTabsWord = `tab${actualTabs === 1 ? "" : "s"}`; // e.g. "tabs"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js-278-            let foundStatement;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js-280-            if (actualSpaces > 0 && actualTabs > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js:281:                foundStatement = `${actualSpaces} ${foundSpacesWord} and ${actualTabs} ${foundTabsWord}`; // e.g. "1 space and 2 tabs"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js-282-            } else if (actualSpaces > 0) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js-287-                 */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js:288:                foundStatement = indentType === "space" ? actualSpaces : `${actualSpaces} ${foundSpacesWord}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js-289-            } else if (actualTabs > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js:290:                foundStatement = indentType === "tab" ? actualTabs : `${actualTabs} ${foundTabsWord}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/indent-legacy.js-291-            } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/capitalized-comments.js-90-        if (ignorePatternStr) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/capitalized-comments.js:91:            const regExp = RegExp(`^\\s*(?:${ignorePatternStr})`, "u");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/capitalized-comments.js-92-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/new-cap.js-40-    if (Object.prototype.hasOwnProperty.call(obj, key) && !Array.isArray(obj[key])) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/new-cap.js:41:        throw new TypeError(`${key}, if provided, must be an Array`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/new-cap.js-42-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-iife.js-111-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-iife.js:112:                            return fixer.replaceText(nodeToSurround, `(${sourceCode.getText(nodeToSurround)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-iife.js-113-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-iife.js-130-                                [innerNode.range[1], parenAfter.range[1]],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-iife.js:131:                                `)${sourceCode.getText().slice(innerNode.range[1], parenAfter.range[0])}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-iife.js-132-                            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-iife.js-150-                                [parenAfter.range[0], node.range[1]],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-iife.js:151:                                `${sourceCode.getText().slice(parenAfter.range[1], node.range[1])})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-iife.js-152-                            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/eol-last.js-55-                    LF = "\n",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/eol-last.js:56:                    CRLF = `\r${LF}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/eol-last.js-57-                    endsWithNewline = lodash.endsWith(src, LF);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-dupe-class-members.js-43-            const stateMap = stack[stack.length - 1];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-dupe-class-members.js:44:            const key = `$${name}`; // to avoid "__proto__".
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-dupe-class-members.js-45-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-numeric-literals.js-107-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-numeric-literals.js:108:                            const replacement = `${literalPrefix}${str}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-numeric-literals.js-109-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-numeric-literals.js-139-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-numeric-literals.js:140:                            return fixer.replaceText(node, `${prefix}${replacement}${suffix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-numeric-literals.js-141-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-296-            const oldParamText = sourceCode.text.slice(sliceStart, sliceEnd);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js:297:            const newParamText = shouldAddParensAroundParameters ? `(${oldParamText})` : oldParamText;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-298-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-318-            if (node.value.async) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js:319:                functionHeader = `async ${functionHeader}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-320-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-321-            if (node.value.generator) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js:322:                functionHeader = `${functionHeader}*`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-323-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-324-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js:325:            return fixer.replaceTextRange([node.range[0], lastKeyToken.range[1]], `${keyText}: ${functionHeader}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-326-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-446-                            message: "Expected longform property syntax.",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js:447:                            fix: fixer => fixer.insertTextAfter(node.key, `: ${node.key.name}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/object-shorthand.js-448-                        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-globals.js-89-                                    "globalNonLexicalBinding",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-globals.js:90:                                    def.type === "FunctionName" ? "function" : `'${def.parent.kind}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-globals.js-91-                                );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-globals.js-103-                                        "globalLexicalBinding",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-globals.js:104:                                        def.type === "ClassName" ? "class" : `'${def.parent.kind}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-implicit-globals.js-105-                                    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-control-regex.js-29-        ) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-control-regex.js:30:            this._controlChars.push(`\\x${`0${cp.toString(16)}`.slice(-2)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-control-regex.js-31-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-99-/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js:100: * Determines whether a given node will start with a template curly expression (`${}`) when being converted to a template literal.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-101- * @param {ASTNode} node The node that will be fixed to a template literal
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-114-/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js:115: * Determines whether a given node end with a template curly expression (`${}`) when being converted to a template literal.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-116- * @param {ASTNode} node The node that will be fixed to a template literal
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-180-                 */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js:181:                return `\`${currentNode.raw.slice(1, -1).replace(/\\*(\$\{|`)/gu, matched => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-182-                    if (matched.lastIndexOf("\\") % 2) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js:183:                        return `\\${matched}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-184-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-187-                // Unescape any quotes that appear in the original Literal that no longer need to be escaped.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js:188:                }).replace(new RegExp(`\\\\${currentNode.raw[0]}`, "gu"), currentNode.raw[0])}\``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-189-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-204-                    // If the left side of the expression ends with a template curly, add the extra text to the end of the curly bracket.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js:205:                    // `foo${bar}` /* comment */ + 'baz' --> `foo${bar /* comment */  }${baz}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-206-                    return getTemplateLiteral(currentNode.left, textBeforeNode, textBeforePlus + textAfterPlus).slice(0, -1) +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-211-                    // Otherwise, if the right side of the expression starts with a template curly, add the text there.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js:212:                    // 'foo' /* comment */ + `${bar}baz` --> `foo${ /* comment */  bar}baz`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-213-                    return getTemplateLiteral(currentNode.left, textBeforeNode, null).slice(0, -1) +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-220-                 */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js:221:                return `${getTemplateLiteral(currentNode.left, textBeforeNode, null)}${textBeforePlus}+${textAfterPlus}${getTemplateLiteral(currentNode.right, textAfterNode, null)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-222-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-223-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js:224:            return `\`\${${textBeforeNode || ""}${sourceCode.getText(currentNode)}${textAfterNode || ""}}\``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-template.js-225-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-notation.js-81-            ) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-notation.js:82:                const formattedValue = node.property.type === "Literal" ? JSON.stringify(value) : `\`${value}\``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-notation.js-83-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-notation.js-109-                            [leftBracket.range[0], rightBracket.range[1]],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-notation.js:110:                            `${textBeforeDot}.${value}${textAfterProperty}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-notation.js-111-                        );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-notation.js-164-                                [dot.range[0], node.property.range[1]],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-notation.js:165:                                `[${textAfterDot}"${node.property.name}"]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/dot-notation.js-166-                            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-loop-func.js-192-                    messageId: "unsafeRefs",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-loop-func.js:193:                    data: { varNames: `'${unsafeRefs.join("', '")}'` }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-loop-func.js-194-                });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-124-            const lines = comment.value.split(astUtils.LINEBREAK_MATCHER).map(line => line.replace(/^\s*$/u, ""));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:125:            const leadingWhitespace = `${sourceCode.text.slice(comment.range[0] - comment.loc.start.column, comment.range[0])}   `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-126-            let offset = "";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-152-                if (lineOffset.length > leadingWhitespace.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:153:                    return `${lineOffset.slice(leadingWhitespace.length - (offset.length + lineOffset.length))}${lineContents}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-154-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-156-                if (lineOffset.length < leadingWhitespace.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:157:                    return `${lineOffset.slice(leadingWhitespace.length)}${lineContents}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-158-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-200-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:201:            return `/*\n${commentLinesList.map(line => `${initialOffset} * ${line}`).join("\n")}\n${initialOffset} */`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-202-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-210-        function convertToSeparateLines(firstComment, commentLinesList) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:211:            return commentLinesList.map(line => `// ${line}`).join(`\n${getInitialOffset(firstComment)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-212-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-220-        function convertToBlock(firstComment, commentLinesList) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:221:            return `/* ${commentLinesList.join(`\n${getInitialOffset(firstComment)}   `)} */`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-222-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-256-                    const expectedLeadingWhitespace = getInitialOffset(firstComment);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:257:                    const expectedLinePrefix = `${expectedLeadingWhitespace} *`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-258-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-267-                            messageId: "startNewline",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:268:                            fix: fixer => fixer.insertTextAfterRange([start, start + 2], `\n${expectedLinePrefix}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-269-                        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-278-                            messageId: "endNewline",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:279:                            fix: fixer => fixer.replaceTextRange([firstComment.range[1] - 2, firstComment.range[1]], `\n${expectedLinePrefix}/`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-280-                        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-317-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:318:                                        offset = `${commentTextPrefix.slice(prefix.length)}${initialOffset}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-319-                                        break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-321-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js:322:                                    return fixer.replaceTextRange([lineStartIndex, commentTextStartIndex], `${expectedLinePrefix}${offset}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/multiline-comment-style.js-323-                                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/quotes.js-36-// An unescaped newline is a newline preceded by an even number of backslashes.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/quotes.js:37:const UNESCAPED_LINEBREAK_PATTERN = new RegExp(String.raw`(^|[^\\])(\\\\)*[${Array.from(astUtils.LINEBREAKS).join("")}]`, "u");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/quotes.js-38-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/quotes.js-61-        if (match === newQuote || newQuote === "`" && match === "${") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/quotes.js:62:            return `\\${match}`; // escape
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/quotes.js-63-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-warning-comments.js-62-            const wordBoundary = "\\b";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-warning-comments.js:63:            const eitherOrWordBoundary = `|${wordBoundary}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-warning-comments.js-64-            let prefix;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/padding-line-between-statements.js-17-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/padding-line-between-statements.js:18:const LT = `[${Array.from(astUtils.LINEBREAKS).join("")}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/padding-line-between-statements.js-19-const PADDING_LINE_SEQUENCE = new RegExp(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/padding-line-between-statements.js:20:    String.raw`^(\s*?${LT})\s*${LT}(\s*;?)$`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/padding-line-between-statements.js-21-    "u"
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-arrow-callback.js-286-                            const paramsFullText = sourceCode.text.slice(paramsLeftParen.range[0], paramsRightParen.range[1]);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-arrow-callback.js:287:                            const arrowFunctionText = `${asyncKeyword}${paramsFullText} => ${sourceCode.getText(node.body)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-arrow-callback.js-288-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-arrow-callback.js-300-                            const needsParens = replacedNode.parent.type !== "CallExpression" && replacedNode.parent.type !== "ConditionalExpression";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-arrow-callback.js:301:                            const replacementText = needsParens ? `(${arrowFunctionText})` : arrowFunctionText;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/prefer-arrow-callback.js-302-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-regex-spaces.js-106-                                [rawPatternStartRange + index, rawPatternStartRange + index + length],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-regex-spaces.js:107:                                ` {${length}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/no-regex-spaces.js-108-                            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-regex.js-50-                            messageId: "requireParens",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-regex.js:51:                            fix: fixer => fixer.replaceText(node, `(${sourceCode.getText(node)})`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/wrap-regex.js-52-                        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/yoda.js-80-            value: -node.argument.value,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/yoda.js:81:            raw: `-${node.argument.value}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/yoda.js-82-        };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/valid-jsdoc.js-360-                                    line: entireTagRange.start.line,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/valid-jsdoc.js:361:                                    column: entireTagRange.start.column + `@${tag.title}`.length
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/valid-jsdoc.js-362-                                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/generator-star-spacing.js-151-                const node = after ? leftToken : rightToken;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/generator-star-spacing.js:152:                const messageId = `${spaceRequired ? "missing" : "unexpected"}${capitalize(side)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/generator-star-spacing.js-153-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/comma-style.js-87-                case "between":
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/comma-style.js:88:                    return `,${text.replace(astUtils.LINEBREAK_MATCHER, "")}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/comma-style.js-89-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/comma-style.js-90-                case "first":
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/comma-style.js:91:                    return `${text},`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/comma-style.js-92-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/comma-style.js-93-                case "last":
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/comma-style.js:94:                    return `,${text}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/comma-style.js-95-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/curly.js-284-                                },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/curly.js:285:                                fix: fixer => fixer.replaceText(body, `{${sourceCode.getText(body)}}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rules/curly.js-286-                            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/xml-escape.js-17-module.exports = function(s) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/xml-escape.js:18:    return (`${s}`).replace(/[<>&"'\x00-\x1F\x7F\u0080-\uFFFF]/gu, c => { // eslint-disable-line no-control-regex
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/xml-escape.js-19-        switch (c) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/xml-escape.js-30-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/xml-escape.js:31:                return `&#${c.charCodeAt(0)};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/xml-escape.js-32-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-155-    constructor(pattern, globDisabled) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:156:        super(`No files matching '${pattern}' were found${globDisabled ? " (glob was disabled)" : ""}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-157-        this.messageTemplate = "file-not-found";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-171-    constructor(pattern) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:172:        super(`All files matched by '${pattern}' are ignored.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-173-        this.messageTemplate = "all-files-ignored";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-282-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:283:        debug(`Complete iterating files: ${JSON.stringify(patterns)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-284-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-316-    _iterateFilesWithFile(filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:317:        debug(`File: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-318-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-334-    _iterateFilesWithDirectory(directoryPath, dotfiles) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:335:        debug(`Directory: ${directoryPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-336-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-350-    _iterateFilesWithGlob(pattern, dotfiles) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:351:        debug(`Glob: ${pattern}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-352-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-362-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:363:        debug(`recursive? ${recursive}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-364-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-381-    *_iterateFilesRecursive(directoryPath, options) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:382:        debug(`Enter the directory: ${directoryPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-383-        const { configArrayFactory, extensionRegExp } = internalSlotsMap.get(this);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-417-                if (matched) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:418:                    debug(`Yield: ${filename}${ignored ? " but ignored" : ""}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-419-                    yield {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-424-                } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:425:                    debug(`Didn't match: ${filename}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-426-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-446-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js:447:        debug(`Leave the directory: ${directoryPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/file-enumerator.js-448-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/stylish.js-21-function pluralize(word, count) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/stylish.js:22:    return (count === 1 ? word : `${word}s`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/stylish.js-23-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/stylish.js-49-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/stylish.js:50:        output += `${chalk.underline(result.filePath)}\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/stylish.js-51-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/stylish.js-77-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/stylish.js:78:        ).split("\n").map(el => el.replace(/(\d+)\s+(\d+)/u, (m, p1, p2) => chalk.dim(`${p1}:${p2}`))).join("\n")}\n\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/stylish.js-79-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js-44-            output += result.filePath;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js:45:            output += `(${message.line || 0}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js:46:            output += message.column ? `,${message.column}` : "";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js:47:            output += `): ${getMessageType(message)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js:48:            output += message.ruleId ? ` ${message.ruleId}` : "";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js:49:            output += ` : ${message.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js-50-            output += "\n";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js-58-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js:59:        output += `\n${total} problem${total !== 1 ? "s" : ""}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/visualstudio.js-60-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js-40-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js:41:        output += `<file name="${xmlEscape(result.filePath)}">`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js-42-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js-44-            output += [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js:45:                `<error line="${xmlEscape(message.line)}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js:46:                `column="${xmlEscape(message.column)}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js:47:                `severity="${xmlEscape(getMessageType(message))}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js:48:                `message="${xmlEscape(message.message)}${message.ruleId ? ` (${message.ruleId})` : ""}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js:49:                `source="${message.ruleId ? xmlEscape(`eslint.rules.${message.ruleId}`) : ""}" />`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/checkstyle.js-50-            ].join(" ");
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-21-function pluralize(word, count) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:22:    return (count === 1 ? word : `${word}s`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-23-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-35-    if (line && column) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:36:        relPath += `:${line}:${column}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-37-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-49-    const type = (message.fatal || message.severity === 2) ? chalk.red("error") : chalk.yellow("warning");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:50:    const msg = `${chalk.bold(message.message.replace(/([^ ])\.$/u, "$1"))}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:51:    const ruleId = message.fatal ? "" : chalk.dim(`(${message.ruleId})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-52-    const filePath = formatFilePath(parentResult.filePath, message.line, message.column);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-55-    const firstLine = [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:56:        `${type}:`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:57:        `${msg}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:58:        ruleId ? `${ruleId}` : "",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:59:        sourceCode ? `at ${filePath}:` : `at ${filePath}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-60-    ].filter(String).join(" ");
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-86-    if (errors > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:87:        summary.push(`${errors} ${pluralize("error", errors)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-88-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-90-    if (warnings > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:91:        summary.push(`${warnings} ${pluralize("warning", warnings)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-92-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-94-    if (fixableErrors > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:95:        fixablesSummary.push(`${fixableErrors} ${pluralize("error", fixableErrors)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-96-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-98-    if (fixableWarnings > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:99:        fixablesSummary.push(`${fixableWarnings} ${pluralize("warning", fixableWarnings)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-100-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-101-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:102:    let output = chalk[summaryColor].bold(`${summary.join(" and ")} found.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-103-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-104-    if (fixableErrors || fixableWarnings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:105:        output += chalk[summaryColor].bold(`\n${fixablesSummary.join(" and ")} potentially fixable with the \`--fix\` option.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-106-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-123-    let output = resultsWithMessages.reduce((resultsOutput, result) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js:124:        const messages = result.messages.map(message => `${formatMessage(message, result)}\n\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/codeframe.js-125-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js-24-function pluralize(word, count) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js:25:    return (count === 1 ? word : `${word}s`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js-26-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js-108-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js:109:        return `\n${result.filePath}\n\n${drawTable(result.messages)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js-110-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js-140-        [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js:141:            chalk.red(pluralize(`${errorCount} Error`, errorCount))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js-142-        ],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js-143-        [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js:144:            chalk.yellow(pluralize(`${warningCount} Warning`, warningCount))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/table.js-145-        ]
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js-31-    const prefix = "  ";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js:32:    let output = `${prefix}---\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js-33-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js:34:    output += prefix + yaml.safeDump(diagnostic).split("\n").join(`\n${prefix}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js-35-    output += "...\n";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js-43-module.exports = function(results) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js:44:    let output = `TAP version 13\n1..${results.length}\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js-45-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js-84-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js:85:        output += `${testResult} ${id + 1} - ${result.filePath}\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/tap.js-86-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js-41-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js:42:            output += `${result.filePath}:`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js:43:            output += `${message.line || 0}:`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js:44:            output += `${message.column || 0}:`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js:45:            output += ` ${message.message} `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js:46:            output += `[${getMessageType(message)}${message.ruleId ? `/${message.ruleId}` : ""}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js-47-            output += "\n";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js-53-    if (total > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js:54:        output += `\n${total} problem${total !== 1 ? "s" : ""}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/unix.js-55-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js-42-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js:43:            output += `${result.filePath}: `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js:44:            output += `line ${message.line || 0}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js:45:            output += `, col ${message.column || 0}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js:46:            output += `, ${getMessageType(message)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js:47:            output += ` - ${message.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js:48:            output += message.ruleId ? ` (${message.ruleId})` : "";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js-49-            output += "\n";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js-55-    if (total > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js:56:        output += `\n${total} problem${total !== 1 ? "s" : ""}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/compact.js-57-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js-22-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js:23:        output += `<file name="${result.filePath}">`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js-24-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js-26-            output += [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js:27:                `<issue line="${message.line}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js:28:                `char="${message.column}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js:29:                `evidence="${xmlEscape(message.source || "")}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js:30:                `reason="${xmlEscape(message.message || "")}${message.ruleId ? ` (${message.ruleId})` : ""}" />`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/jslint-xml.js-31-            ].join(" ");
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/html.js-25-function pluralize(word, count) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/html.js:26:    return (count === 1 ? word : `${word}s`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/html.js-27-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/html.js-36-    const totalProblems = totalErrors + totalWarnings;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/html.js:37:    let renderedText = `${totalProblems} ${pluralize("problem", totalProblems)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/html.js-38-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/html.js-39-    if (totalProblems !== 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/html.js:40:        renderedText += ` (${totalErrors} ${pluralize("error", totalErrors)}, ${totalWarnings} ${pluralize("warning", totalWarnings)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/html.js-41-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js-54-        if (messages.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:55:            output += `<testsuite package="org.eslint" time="0" tests="${messages.length}" errors="${messages.length}" name="${result.filePath}">\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js-56-            messages.forEach(message => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js-58-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:59:                output += `<testcase time="0" name="org.eslint.${message.ruleId || "unknown"}" classname="${classname}">`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:60:                output += `<${type} message="${xmlEscape(message.message || "")}">`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js-61-                output += "<![CDATA[";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:62:                output += `line ${message.line || 0}, col `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:63:                output += `${message.column || 0}, ${getMessageType(message)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:64:                output += ` - ${xmlEscape(message.message || "")}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:65:                output += (message.ruleId ? ` (${message.ruleId})` : "");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js-66-                output += "]]>";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:67:                output += `</${type}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js-68-                output += "</testcase>\n";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js-71-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:72:            output += `<testsuite package="org.eslint" time="0" tests="1" errors="0" name="${result.filePath}">\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js:73:            output += `<testcase time="0" name="${result.filePath}" classname="${classname}" />\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/formatters/junit.js-74-            output += "</testsuite>\n";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/lint-result-cache.js-31-    if (!configHashCache.has(config)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/lint-result-cache.js:32:        configHashCache.set(config, hash(`${pkg.version}_${nodeVersion}_${stringify(config)}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/lint-result-cache.js-33-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js-176-    constructor(directoryPath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:177:        super(`No ESLint configuration found in ${directoryPath}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js-178-        this.messageTemplate = "no-config-found";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js-268-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:269:        debug(`Load config files for ${directoryPath}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js-270-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js-312-        if (configArray) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:313:            debug(`Cache hit: ${directoryPath}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js-314-            return configArray;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js-315-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:316:        debug(`No cache found: ${directoryPath}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js-317-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/override-tester.js-107-            if (path.isAbsolute(pattern) || pattern.includes("..")) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/override-tester.js:108:                throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/override-tester.js-109-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/override-tester.js-158-        if (typeof filePath !== "string" || !path.isAbsolute(filePath)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/override-tester.js:159:            throw new Error(`'filePath' should be an absolute path, but got ${filePath}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/override-tester.js-160-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/config-array.js-298-    if (defs) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/config-array.js:299:        const prefix = pluginId && `${pluginId}/`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/config-array.js-300-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/config-array.js-302-            map.set(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/config-array.js:303:                `${prefix}${key}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/config-array.js-304-                normalize ? normalize(value) : value
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js-215-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js:216:        const prefix = `/${relative(newBasePath, basePath)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js-217-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js-223-            if (body.startsWith("/") || body.startsWith("../")) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js:224:                return `${head}${prefix}${body}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js-225-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js:226:            return loose ? pattern : `${head}${prefix}/**/${body}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js-227-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-128-function loadYAMLConfigFile(filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:129:    debug(`Loading YAML config file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-130-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-138-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:139:        debug(`Error reading YAML file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:140:        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-141-        throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-152-function loadJSONConfigFile(filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:153:    debug(`Loading JSON config file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-154-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-157-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:158:        debug(`Error reading JSON file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:159:        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-160-        e.messageTemplate = "failed-to-read-json";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-176-function loadLegacyConfigFile(filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:177:    debug(`Loading legacy config file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-178-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-185-        debug("Error reading YAML file: %s\n%o", filePath, e);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:186:        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-187-        throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-198-function loadJSConfigFile(filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:199:    debug(`Loading JS config file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-200-    try {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-202-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:203:        debug(`Error reading JavaScript file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:204:        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-205-        throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-216-function loadPackageJSONConfigFile(filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:217:    debug(`Loading package.json config file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-218-    try {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-229-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:230:        debug(`Error reading package.json file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:231:        e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-232-        throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-242-function loadESLintIgnoreFile(filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:243:    debug(`Loading .eslintignore file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-244-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-249-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:250:        debug(`Error reading .eslintignore file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:251:        e.message = `Cannot read .eslintignore file: ${filePath}\nError: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-252-        throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-264-    return Object.assign(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:265:        new Error(`Failed to load config "${configName}" to extend from.`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-266-        {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-314-            const packageJsonPath = ModuleResolver.resolve(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:315:                `${request}/package.json`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-316-                relativeTo
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-319-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:320:            nameAndVersion = `${request}@${version}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-321-        } catch (error) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-524-                if (configData) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:525:                    debug(`Config file found: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-526-                    return this._normalizeConfigData(configData, filePath, name);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-530-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:531:        debug(`Config file not found on ${directoryPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-532-        return null;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-701-                filePath,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:702:                `${name}#overrides[${i}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-703-            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-736-        } catch (error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:737:            error.message += `\nReferenced from: ${importerPath || importerName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-738-            throw error;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-749-    _loadExtendedBuiltInConfig(extendName, importerName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:750:        const name = `${importerName} » ${extendName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-751-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-787-                plugin.filePath,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:788:                `${importerName} » plugin:${plugin.id}/${configName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-789-            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-810-        } else if (extendName.startsWith(".")) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:811:            request = `./${extendName}`; // For backward compatibility. A ton of tests depended on this behavior.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-812-        } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-831-        writeDebugLogForLoading(request, relativeTo, filePath);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:832:        return this._loadConfigData(filePath, `${importerName} » ${request}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-833-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-895-            debug("Failed to load parser '%s' declared in '%s'.", nameOrPath, importerName);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:896:            error.message = `Failed to load parser '${nameOrPath}' declared in '${importerName}': ${error.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-897-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-924-            const error = Object.assign(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:925:                new Error(`Whitespace found in plugin name '${name}'`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-926-                {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-979-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:980:                debug(`Plugin ${filePath} loaded in: ${Date.now() - startTime}ms`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-981-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-994-        debug("Failed to load plugin '%s' declared in '%s'.", name, importerName);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:995:        error.message = `Failed to load plugin '${name}' declared in '${importerName}': ${error.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-996-        return new ConfigDependency({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-1026-                        {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:1027:                            files: [`*${processorId}`],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:1028:                            processor: `${pluginId}/${processorId}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-1029-                        },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-1030-                        filePath,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js:1031:                        `${name}#processors["${pluginId}/${processorId}"]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/config-array-factory.js-1032-                    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-139-        if (!validFixTypes.has(fixType)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:140:            throw new Error(`Invalid fix type "${fixType}" found.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-141-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-221-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:222:    debug(`Lint ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-223-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-408-    function getCacheFileForDirectory() {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:409:        return path.join(resolvedCacheFile, `.cache_${hash(cwd)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-410-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-463-    if (keys && !Array.isArray(keys)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:464:        throw new Error(`${displayName} must be an array.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-465-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-603-        if (options.fix && options.fixTypes && options.fixTypes.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:604:            debug(`Using fix types ${options.fixTypes}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-605-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-707-        const extensions = options.extensions.map(ext => ext.replace(/^\./u, ""));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:708:        const dirSuffix = `/**/*.{${extensions.join(",")}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-709-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-787-                    if (hadMessages && fix) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:788:                        debug(`Reprocessing cached file to allow autofix: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-789-                    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:790:                        debug(`Skipping file since it hasn't changed: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-791-                        results.push(cachedResult);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-832-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:833:        debug(`Linting complete in: ${Date.now() - startTime}ms`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-834-        return {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-903-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:904:        debug(`Linting complete in: ${Date.now() - startTime}ms`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-905-        return {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-1000-            } catch (ex) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js:1001:                ex.message = `There was a problem loading formatter: ${formatterPath}\nError: ${ex.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli-engine/cli-engine.js-1002-                throw ex;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli.js-193-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli.js:194:            debug(`Running on ${useStdin ? "text" : "files"}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/cli.js-195-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-131-        /[\u0000-\u0009|\u000b-\u001a]/gu, // eslint-disable-line no-control-regex
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:132:        c => `\\u${c.codePointAt(0).toString(16).padStart(4, "0")}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-133-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-155-        if (err instanceof assert.AssertionError) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:156:            err.message += ` (${util.inspect(err.actual)} ${err.operator} ${util.inspect(err.expected)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-157-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-286-        if (lodash.isNil(test) || typeof test !== "object") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:287:            throw new TypeError(`Test Scenarios for rule ${ruleName} : Could not find test scenario object`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-288-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-291-            if (lodash.isNil(test[scenarioType])) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:292:                scenarioErrors.push(`Could not find any ${scenarioType} test scenarios`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-293-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-297-            throw new Error([
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:298:                `Test Scenarios for rule ${ruleName} is invalid:`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-299-            ].concat(scenarioErrors).join("\n"));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-386-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:387:                        return `\t${field}: ${error.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-388-                    }).join("\n");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-389-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:390:                    throw new Error([`Schema for rule ${ruleName} is invalid:`, errors]);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-391-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-401-                } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:402:                    throw new Error(`Schema for rule ${ruleName} is invalid: ${err.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-403-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-414-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:415:                assert(!errorMessage, `A fatal parsing error occurred: ${errorMessage && errorMessage.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-416-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-422-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:423:                assert(!errorMessageInFix, `A fatal parsing error occurred in autofix: ${errorMessageInFix && errorMessageInFix.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-424-            } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-480-                    expected.test(actual),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:481:                    `Expected '${actual}' to match ${expected}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-482-                );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-496-            assert.ok(item.errors || item.errors === 0,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:497:                `Did not specify errors for an invalid test of ${ruleName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-498-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-543-                            if (!hasOwnProperty(rule.meta.messages, error.messageId)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:544:                                const friendlyIDList = `[${Object.keys(rule.meta.messages).map(key => `'${key}'`).join(", ")}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-545-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:546:                                assert(false, `Invalid messageId '${error.messageId}'. Expected one of ${friendlyIDList}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-547-                            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-550-                                error.messageId,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:551:                                `messageId '${message.messageId}' does not match expected messageId '${error.messageId}'.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-552-                            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-565-                                    rehydratedMessage,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:566:                                    `Hydrated message "${rehydratedMessage}" does not match "${message.message}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-567-                                );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-576-                        if (error.type) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:577:                            assert.strictEqual(message.nodeType, error.type, `Error type should be ${error.type}, found ${message.nodeType}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-578-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-580-                        if (hasOwnProperty(error, "line")) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:581:                            assert.strictEqual(message.line, error.line, `Error line should be ${error.line}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-582-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-584-                        if (hasOwnProperty(error, "column")) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:585:                            assert.strictEqual(message.column, error.column, `Error column should be ${error.column}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-586-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-588-                        if (hasOwnProperty(error, "endLine")) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:589:                            assert.strictEqual(message.endLine, error.endLine, `Error endLine should be ${error.endLine}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-590-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-592-                        if (hasOwnProperty(error, "endColumn")) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:593:                            assert.strictEqual(message.endColumn, error.endColumn, `Error endColumn should be ${error.endColumn}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-594-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-600-                                if (Array.isArray(message.suggestions) && message.suggestions.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:601:                                    assert.fail(`Error should have no suggestions on error with message: "${message.message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-602-                                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-603-                            } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:604:                                assert.strictEqual(Array.isArray(message.suggestions), true, `Error should have an array of suggestions. Instead received "${message.suggestions}" on error with message: "${message.message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:605:                                assert.strictEqual(message.suggestions.length, error.suggestions.length, `Error should have ${error.suggestions.length} suggestions. Instead found ${message.suggestions.length} suggestions`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-606-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-616-                                        if (hasOwnProperty(expectedSuggestion, key)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:617:                                            assert.deepStrictEqual(actualSuggestion[key], expectedSuggestion[key], `Error suggestion at index: ${index} should have desc of: "${actualSuggestion[key]}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-618-                                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-625-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:626:                                        assert.strictEqual(codeWithAppliedSuggestion, expectedSuggestion.output, `Expected the applied suggestion fix to match the test suggestion output for suggestion at index: ${index} on error with message: "${message.message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-627-                                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-633-                        // Message was an unexpected type
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js:634:                        assert.fail(`Error should be a string, object, or RegExp, but found (${util.inspect(message)})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/rule-tester/rule-tester.js-635-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/config-comment-parser.js-95-        try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/config-comment-parser.js:96:            items = JSON.parse(`{${normalizedString}}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/config-comment-parser.js-97-        } catch (ex) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/config-comment-parser.js-105-                    severity: 2,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/config-comment-parser.js:106:                    message: `Failed to parse JSON from '${normalizedString}': ${ex.message}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/config-comment-parser.js-107-                    line: location.start.line,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/apply-disable-directives.js-91-            message: directive.ruleId
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/apply-disable-directives.js:92:                ? `Unused eslint-disable directive (no problems were reported from '${directive.ruleId}').`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/apply-disable-directives.js-93-                : "Unused eslint-disable directive (no problems were reported).",
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/apply-disable-directives.js-145-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/apply-disable-directives.js:146:                throw new TypeError(`Unrecognized directive type '${directive.type}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/apply-disable-directives.js-147-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/timing.js-66-    rows.forEach(row => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/timing.js:67:        row.push(`${(row[1] * 100 / total).toFixed(1)}%`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/timing.js-68-        row[1] = row[1].toFixed(3);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-204-    return Object.prototype.hasOwnProperty.call(ruleReplacements.rules, ruleId)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:205:        ? `Rule '${ruleId}' was removed and replaced by: ${ruleReplacements.rules[ruleId].join(", ")}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:206:        : `Definition for rule '${ruleId}' was not found.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-207-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-302-        if (warnInlineConfig) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:303:            const kind = comment.type === "Block" ? `/*${directiveText}*/` : `//${directiveText}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-304-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-306-                ruleId: null,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:307:                message: `'${kind}' has no effect because you have 'noInlineConfig' setting in ${warnInlineConfig}.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-308-                loc: comment.loc,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-314-        if (lineCommentSupported && comment.loc.start.line !== comment.loc.end.line) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:315:            const message = `${directiveText} comment should not span multiple lines.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-316-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-483-    const configNameOfNoInlineConfig = config.configNameOfNoInlineConfig
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:484:        ? ` (${config.configNameOfNoInlineConfig})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-485-        : "";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-499-        warnInlineConfig: disableInlineConfig && !ignoreInlineConfig
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:500:            ? `your config${configNameOfNoInlineConfig}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-501-            : null,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-619-function parse(text, parser, providedParserOptions, filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:620:    const textToParse = stripUnicodeBOM(text).replace(astUtils.shebangPattern, (match, captured) => `//${captured}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-621-    const parserOptions = Object.assign({}, providedParserOptions, {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-666-        // If the message includes a leading line number, strip it:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:667:        const message = `Parsing error: ${ex.message.replace(/^line \d+:/iu, "").trim()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-668-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-747-    } catch (ex) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:748:        ex.message = `Error while loading rule '${ruleContext.id}': ${ex.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-749-        throw ex;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1086-                    severity: 2,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:1087:                    message: `Configured parser '${config.parser}' was not found.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1088-                    line: 0,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1168-        } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:1169:            err.message += `\nOccurred while linting ${options.filename}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1170-            debug("An error occurred while traversing");
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1175-                debug("Line:", line);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:1176:                err.message += `:${line}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1177-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1284-            const blockText = block.text;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:1285:            const blockName = path.join(filename, `${i}_${block.filename}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1286-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1383-            currentText = text;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:1384:        const debugTextDescription = options && options.filename || `${text.slice(0, 10)}...`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1385-        const shouldFix = options && typeof options.fix !== "undefined" ? options.fix : true;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1398-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:1399:            debug(`Linting code for ${debugTextDescription} (pass ${passNumber})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1400-            messages = this.verify(currentText, config, options);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1401-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js:1402:            debug(`Generating fixed text for ${debugTextDescription} (pass ${passNumber})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/linter.js-1403-            fixedResult = SourceCodeFixer.applyFixes(currentText, messages, shouldFix);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-65-        debug([
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:66:            `${state.currentSegments.map(getId).join(",")})`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:67:            `${node.type}${leaving ? ":exit" : ""}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-68-        ].join(" "));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-98-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:99:            text += `${id}[`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-100-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-110-                        switch (node.type) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:111:                            case "Identifier": return `${node.type} (${node.name})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:112:                            case "Literal": return `${node.type} (${node.value})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-113-                            default: return node.type;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-117-                        switch (node.type) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:118:                            case "Identifier": return `${node.type}:exit (${node.name})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:119:                            case "Literal": return `${node.type}:exit (${node.value})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:120:                            default: return `${node.type}:exit`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-121-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-130-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:131:        text += `${arrows}\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-132-        text += "}";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-146-        let lastId = codePath.initialSegment.id;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:147:        let text = `initial->${codePath.initialSegment.id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-148-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-165-            if (lastId === segment.id) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:166:                text += `->${nextSegment.id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-167-            } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:168:                text += `;\n${segment.id}->${nextSegment.id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-169-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-179-            } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:180:                text += `;\n${finalSegment.id}->final`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-181-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-188-            } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:189:                text += `;\n${finalSegment.id}->thrown`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-190-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-193-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js:194:        return `${text};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js-195-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js-951-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js:952:                throw new Error(`unknown type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js-953-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js-180-    add(segments) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js:181:        assert(segments.length >= this.count, `${segments.length} >= ${this.count}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js-182-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js-192-    replaceHead(segments) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js:193:        assert(segments.length >= this.count, `${segments.length} >= ${this.count}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/fork-context.js-194-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path.js-54-            "internal",
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path.js:55:            { value: new CodePathState(new IdGenerator(`${id}_`), onLooped) }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path.js-56-        );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-167-        if (currentSegment !== headSegment && currentSegment) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:168:            debug.dump(`onCodePathSegmentEnd ${currentSegment.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-169-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-188-        if (currentSegment !== headSegment && headSegment) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:189:            debug.dump(`onCodePathSegmentStart ${headSegment.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-190-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-217-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:218:        debug.dump(`onCodePathSegmentEnd ${currentSegment.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-219-        if (currentSegment.reachable) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-375-            // Emits onCodePathStart events.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:376:            debug.dump(`onCodePathStart ${codePath.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-377-            analyzer.emitter.emit("onCodePathStart", codePath, node);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-573-            // Emits onCodePathEnd event of this code path.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:574:            debug.dump(`onCodePathEnd ${codePath.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-575-            analyzer.emitter.emit("onCodePathEnd", codePath, node);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-671-        if (fromSegment.reachable && toSegment.reachable) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:672:            debug.dump(`onCodePathSegmentLoop ${fromSegment.id} -> ${toSegment.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js-673-            this.emitter.emit(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js-269-                if (!messages) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js:270:                    throw new TypeError(`context.report() called with a suggest option with a messageId '${messageId}', but no messages were present in the rule metadata.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js-271-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js-273-                if (!messages[messageId]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js:274:                    throw new TypeError(`context.report() called with a suggest option with a messageId '${messageId}' which is not present in the 'messages' config: ${JSON.stringify(messages, null, 2)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js-275-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js-284-            if (typeof suggestion.fix !== "function") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js:285:                throw new TypeError(`context.report() called with a suggest option without a fix function. See: ${suggestion}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js-286-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js-324-            if (!messages || !Object.prototype.hasOwnProperty.call(messages, id)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js:325:                throw new TypeError(`context.report() called with a messageId of '${id}' which is not present in the 'messages' config: ${JSON.stringify(messages, null, 2)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/report-translator.js-326-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/node-event-generator.js-162-        if (typeof err.offset === "number") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/node-event-generator.js:163:            throw new SyntaxError(`Syntax error in selector "${rawSelector}" at position ${err.offset}: ${err.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/linter/node-event-generator.js-164-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/autoconfig.js-275-        filenames.forEach(filename => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/autoconfig.js:276:            debug(`Linting file: ${filename}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/autoconfig.js-277-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/npm-utils.js-59-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/npm-utils.js:60:        log.error(`Could not execute npm. Please install the following package${pluralS} with a package manager of your choice: ${packageList.join(", ")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/npm-utils.js-61-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-57-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:58:    ConfigFile.write(config, `./.eslintrc${extname}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:59:    log.info(`Successfully created .eslintrc${extname} file in ${process.cwd()}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-60-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-78-    if (!result) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:79:        log.info(`Checking peerDependencies of ${moduleName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-80-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-117-                modules,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:118:                getPeerDependencies(`${moduleName}@latest`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-119-            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-141-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:142:    return Object.keys(modules).map(name => `${name}@${modules[name]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-143-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-195-    });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:196:    debug(`\nRegistry: ${util.inspect(registry.rules, { depth: null })}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-197-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-243-    const resultMessage = [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:244:        `\nEnabled ${enabledRules} out of ${totalRules}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:245:        `rules based on ${fileQty}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:246:        `file${(fileQty === 1) ? "." : "s."}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-247-    ].join(" ");
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-386-    const configName = getStyleGuideName(answers);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:387:    const moduleName = `eslint-config-${configName}@latest`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-388-    const peerDependencies = getPeerDependencies(moduleName) || {};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-412-function installModules(modules) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:413:    log.info(`Installing ${modules.join(", ")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-414-    npmUtils.installSyncSaveDev(modules);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-563-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:564:                return `The style guide "${answers.styleguide}" requires eslint@${answers.requiredESLintVersionRange}. You are currently using eslint@${answers.localESLintVersion}.\n  Do you want to ${verb}?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-565-            },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-588-            if (earlyAnswers.installESLint === false && !semver.satisfies(earlyAnswers.localESLintVersion, earlyAnswers.requiredESLintVersionRange)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js:589:                log.info(`Note: it might not work since ESLint's version is mismatched with the ${earlyAnswers.styleguide} config.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-initializer.js-590-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-45-function writeJSONConfigFile(config, filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js:46:    debug(`Writing JSON config file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-47-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-60-function writeYAMLConfigFile(config, filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js:61:    debug(`Writing YAML config file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-62-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-79-function writeJSConfigFile(config, filePath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js:80:    debug(`Writing JS config file: ${filePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-81-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-82-    let contentToWrite;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js:83:    const stringifiedContent = `module.exports = ${stringify(config, { cmp: sortByKey, space: 4 })};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-84-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-101-        e.message += "A config file was still generated, but the config file itself may not follow your linting rules.";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js:102:        e.message += `\nError: ${errorMessage}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/config-file.js-103-        throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/source-code-utils.js-47-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/source-code-utils.js:48:        throw new Error(`(${filename}:${msg.line}:${msg.column}) ${msg.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/source-code-utils.js-49-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/source-code-utils.js-88-    if (filenames.length === 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/source-code-utils.js:89:        debug(`Did not find any files matching pattern(s): ${globPatternsList}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/init/source-code-utils.js-90-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js-517-        if (index < 0 || index > this.text.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js:518:            throw new RangeError(`Index out of range (requested index ${index}, but source text has length ${this.text.length}).`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js-519-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js-554-        if (loc.line <= 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js:555:            throw new RangeError(`Line number out of range (line ${loc.line} requested). Line numbers should be 1-based.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js-556-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js-558-        if (loc.line > this.lineStartIndices.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js:559:            throw new RangeError(`Line number out of range (line ${loc.line} requested, but only ${this.lineStartIndices.length} lines present).`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js-560-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js-577-        ) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js:578:            throw new RangeError(`Column number out of range (column ${loc.column} requested, but the length of line ${loc.line} is ${lineEndIndex - lineStartIndex}).`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/lib/source-code/source-code.js-579-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/CHANGELOG.md-3497-* Fix: Remove temporary `"allow-null"` (fixes #3705) (Toru Nagashima)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/CHANGELOG.md:3498:* Fix: `no-unused-vars` had been crashed at `/*global $foo*/` (fixes #3714) (Toru Nagashima)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/CHANGELOG.md-3499-* Build: check-commit now checks commit message length. (fixes #3706) (Kevin Partington)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/node_modules/strip-json-comments/index.js-20-	if (typeof jsonString !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/node_modules/strip-json-comments/index.js:21:		throw new TypeError(`Expected argument \`jsonString\` to be a \`string\`, got \`${typeof jsonString}\``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/node_modules/strip-json-comments/index.js-22-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/bin/eslint.js-46-    if (typeof err.messageTemplate === "string" && err.messageTemplate.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/bin/eslint.js:47:        const template = lodash.template(fs.readFileSync(path.resolve(__dirname, `../messages/${err.messageTemplate}.txt`), "utf-8"));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/bin/eslint.js-48-        const pkg = require("../package.json");
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/bin/eslint.js-50-        console.error("\nOops! Something went wrong! :(");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/bin/eslint.js:51:        console.error(`\nESLint: ${pkg.version}.\n\n${template(err.messageData || {})}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint/bin/eslint.js-52-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/README.md-25-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/README.md:26:`$ npm install cross-spawn`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/README.md-27-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/README.md-88-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/README.md:89:`$ npm test`   
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/README.md:90:`$ npm test -- --watch` during development
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/README.md-91-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/enoent.js-5-function notFoundError(original, syscall) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/enoent.js:6:    return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/enoent.js-7-        code: 'ENOENT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/enoent.js-8-        errno: 'ENOENT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/enoent.js:9:        syscall: `${syscall} ${original.command}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/enoent.js-10-        path: original.command,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/util/escape.js-14-    // Convert to string
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/util/escape.js:15:    arg = `${arg}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/util/escape.js-16-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/util/escape.js-30-    // Quote the whole thing:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/util/escape.js:31:    arg = `"${arg}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/util/escape.js-32-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/parse.js-61-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/parse.js:62:        parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/parse.js-63-        parsed.command = process.env.comspec || 'cmd.exe';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/parse.js-81-        parsed.command = typeof parsed.options.shell === 'string' ? parsed.options.shell : process.env.comspec || 'cmd.exe';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/parse.js:82:        parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/cross-spawn/lib/parse.js-83-        parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/slice-ansi/index.js-12-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/slice-ansi/index.js:13:const wrapAnsi = code => `${ESCAPES[0]}[${code}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/slice-ansi/index.js-14-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/readme.md-244-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/readme.md:245:All interpolated values (`` chalk`${foo}` ``) are converted to strings via the `.toString()` method. All curly braces (`{` and `}`) in interpolated value strings are escaped.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/readme.md-246-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/index.js-196-		// https://github.com/chalk/chalk/pull/92
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/index.js:197:		str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/index.js-198-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/templates.js-38-		} else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/templates.js:39:			throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/templates.js-40-		}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/templates.js-78-			if (!(styleName in current)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/templates.js:79:				throw new Error(`Unknown Chalk style: ${styleName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/templates.js-80-			}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/templates.js-122-	if (styles.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/templates.js:123:		const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/chalk/templates.js-124-		throw new Error(errMsg);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/yargs.js-69-    self.$0 = process.env._.replace(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/yargs.js:70:      `${path.dirname(process.execPath)}/`, ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/yargs.js-71-    )
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/yargs.js-1192-        // e.g., loading in a list of commands from an API.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/yargs.js:1193:        const completionArgs = args.slice(args.indexOf(`--${completion.completionKey}`) + 1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/yargs.js-1194-        completion.getCompletion(completionArgs, (completions) => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/README.md-77-  }, (argv) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/README.md:78:    if (argv.verbose) console.info(`start server on :${argv.port}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/README.md-79-    serve(argv.port)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/apply-extends.js-10-  if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/apply-extends.js:11:    throw new YError(`Circular extended configurations: '${cfgPath}'.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/apply-extends.js-12-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-183-        usages.forEach((usage) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:184:          ui.div(`${usage[0].replace(/\$0/g, base$0)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-185-          if (usage[1]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:186:            ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] })
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-187-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-193-        if (demandedCommands._) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:194:          u = `${base$0} <${__('command')}>\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-195-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:196:          u = `${base$0} [${__('command')}]\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-197-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:198:        ui.div(`${u}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-199-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-207-      const context = yargs.getContext()
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:208:      const parentCommands = context.commands.length ? `${context.commands.join(' ')} ` : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-209-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-214-      commands.forEach((command) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:215:        const commandString = `${base$0} ${parentCommands}${command[0].replace(/^\$0 ?/, '')}` // drop $0 from default commands.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-216-        ui.span(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-219-            padding: [0, 2, 0, 2],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:220:            width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-221-          },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-224-        const hints = []
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:225:        if (command[2]) hints.push(`[${__('default')}]`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-226-        if (command[3] && command[3].length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:227:          hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-228-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-297-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:298:        if (~options.boolean.indexOf(key)) type = `[${__('boolean')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:299:        if (~options.count.indexOf(key)) type = `[${__('count')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:300:        if (~options.string.indexOf(key)) type = `[${__('string')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:301:        if (~options.normalize.indexOf(key)) type = `[${__('string')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:302:        if (~options.array.indexOf(key)) type = `[${__('array')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:303:        if (~options.number.indexOf(key)) type = `[${__('number')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-304-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-307-            typeof deprecatedOptions[key] === 'string'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:308:              ? `[${__('deprecated: %s', deprecatedOptions[key])}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:309:              : `[${__('deprecated')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-310-          ) : null,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-311-          type,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:312:          (key in demandedOptions) ? `[${__('required')}]` : null,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-313-          options.choices && options.choices[key] ? `[${__('choices:')} ${
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-364-      const e = epilogs.map(epilog => epilog.replace(/\$0/g, base$0)).join('\n')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:365:      ui.div(`${e}\n`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-366-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-384-      width = Math.max(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:385:        stringWidth(modifier ? `${modifier} ${v[0]}` : v[0]),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-386-        width
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-485-  function defaultString (value, defaultDescription) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:486:    let string = `[${__('default:')} `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-487-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-494-        case 'string':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:495:          string += `"${value}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-496-          break
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-504-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js:505:    return `${string}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/usage.js-506-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/validation.js-95-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/validation.js:96:      const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/validation.js-97-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/validation.js-301-        if (key && !value) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/validation.js:302:          implyFail.push(` ${origKey} -> ${origValue}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/validation.js-303-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/validation.js-307-    if (implyFail.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/validation.js:308:      let msg = `${__('Implications failed:')}\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/validation.js-309-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/command.js-118-    const mod = require('which-module')(obj)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/command.js:119:    if (!mod) throw new Error(`No command name given for module: ${inspect(obj)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/command.js-120-    return commandFromFilename(mod.filename)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/command.js-287-    pc.push(c)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/command.js:288:    return `$0 ${pc.join(' ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/command.js-289-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/command.js-361-        if (options.configuration['unknown-options-as-args']) options.key[key] = true
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/command.js:362:        unparsed.push(`--${key}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/command.js-363-        unparsed.push(value)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-83-        let keyAndAliases = [key].concat(aliases[key] || [])
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js:84:        if (negable) keyAndAliases = keyAndAliases.concat(keyAndAliases.map(key => `no-${key}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-85-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-86-        function completeOptionKey (key) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js:87:          const notInArgs = keyAndAliases.every(val => args.indexOf(`--${val}`) === -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-88-          if (notInArgs) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-95-              const desc = descs[key] || ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js:96:              completions.push(dashes + `${key.replace(/:/g, '\\:')}:${desc.replace('__yargsString__:', '')}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-97-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-101-        completeOptionKey(key)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js:102:        if (negable && !!options.default[key]) completeOptionKey(`no-${key}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-103-      })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-115-    // add ./to applications not yet installed as bin.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js:116:    if ($0.match(/\.js$/)) $0 = `./${$0}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/completion.js-117-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js-19-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js:20:      parsed = command.parseCommand(`cmd ${expected}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js-21-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js-27-    if (length < parsed.demanded.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js:28:      throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js-29-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js-32-    if (length > totalCommands) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js:33:      throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js-34-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js-66-function argumentTypeError (observedType, allowedTypes, position, optional) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js:67:  throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/lib/argsert.js-68-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/readme.md-19-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/readme.md:20:console.log(`${style.green.open}Hello world!${style.green.close}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/readme.md-21-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js-4-	const code = fn(...args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js:5:	return `\u001B[${code + offset}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js-6-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js-9-	const code = fn(...args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js:10:	return `\u001B[${38 + offset};5;${code}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js-11-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js-14-	const rgb = fn(...args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js:15:	return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js-16-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js-125-			styles[styleName] = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js:126:				open: `\u001B[${style[0]}m`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js:127:				close: `\u001B[${style[1]}m`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/ansi-styles/index.js-128-			};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/locate-path/index.js-19-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/locate-path/index.js:20:	throw new Error(`Invalid type specified: ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/locate-path/index.js-21-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/yargs-parser/index.js-890-        !checkAllAliases(key, flags.counts) &&
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/yargs-parser/index.js:891:        `${key}` in defaults) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/yargs-parser/index.js-892-      return defaults[key]
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/wrap-ansi/index.js-12-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/wrap-ansi/index.js:13:const wrapAnsi = code => `${ESCAPES.values().next().value}[${code}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs/node_modules/wrap-ansi/index.js-14-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/lodash/lodash.min.js-76-}function Fu(n){return qt(typeof n=="function"?n:_t(n,1))}function Nu(n,t,e){var u=Wu(t),i=Et(t,u);null!=e||du(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,Wu(t)));var o=!(du(e)&&"chain"in e&&!e.chain),f=_u(n);return r(i,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Pu(){}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/lodash/lodash.min.js:77:function Zu(n){return Ie(n)?b(Me(n)):rr(n)}function qu(){return[]}function Vu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Ku=mn.Array,Gu=mn.Date,Hu=mn.Error,Ju=mn.Function,Yu=mn.Math,Qu=mn.Object,Xu=mn.RegExp,ni=mn.String,ti=mn.TypeError,ri=Ku.prototype,ei=Qu.prototype,ui=mn["__core-js_shared__"],ii=Ju.prototype.toString,oi=ei.hasOwnProperty,fi=0,ci=function(){var n=/[^.]+$/.exec(ui&&ui.keys&&ui.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),ai=ei.toString,li=ii.call(Qu),si=$n._,hi=Xu("^"+ii.call(oi).replace(rn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),pi=Pn?mn.Buffer:T,_i=mn.Symbol,vi=mn.Uint8Array,gi=pi?pi.g:T,di=B(Qu.getPrototypeOf,Qu),yi=Qu.create,bi=ei.propertyIsEnumerable,xi=ri.splice,ji=_i?_i.isConcatSpreadable:T,wi=_i?_i.iterator:T,mi=_i?_i.toStringTag:T,Ai=function(){
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/lodash/lodash.min.js-78-try{var n=je(Qu,"defineProperty");return n({},"",{}),n}catch(n){}}(),Ei=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,ki=Gu&&Gu.now!==$n.Date.now&&Gu.now,Si=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Oi=Yu.ceil,Ii=Yu.floor,Ri=Qu.getOwnPropertySymbols,zi=pi?pi.isBuffer:T,Wi=mn.isFinite,Bi=ri.join,Li=B(Qu.keys,Qu),Ui=Yu.max,Ci=Yu.min,Di=Gu.now,Mi=mn.parseInt,Ti=Yu.random,$i=ri.reverse,Fi=je(mn,"DataView"),Ni=je(mn,"Map"),Pi=je(mn,"Promise"),Zi=je(mn,"Set"),qi=je(mn,"WeakMap"),Vi=je(Qu,"create"),Ki=qi&&new qi,Gi={},Hi=Te(Fi),Ji=Te(Ni),Yi=Te(Pi),Qi=Te(Zi),Xi=Te(qi),no=_i?_i.prototype:T,to=no?no.valueOf:T,ro=no?no.toString:T,eo=function(){
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/lodash/lodash.min.js-126-Or(n,0,t).join("")):n},An.trimStart=function(n,t,r){return(n=Iu(n))&&(r||t===T)?n.replace(on,""):n&&(t=yr(t))?(n=M(n),t=I(n,M(t)),Or(n,t).join("")):n},An.truncate=function(n,t){var r=30,e="...";if(du(t))var u="separator"in t?t.separator:u,r="length"in t?Eu(t.length):r,e="omission"in t?yr(t.omission):e;n=Iu(n);var i=n.length;if(Rn.test(n))var o=M(n),i=o.length;if(r>=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(""):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),hf(u)){if(n.slice(i).search(u)){
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/lodash/lodash.min.js:127:var f=r;for(u.global||(u=Xu(u.source,Iu(_n.exec(u))+"g")),u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1<u&&(r=r.slice(0,u)));return r+e},An.unescape=function(n){return(n=Iu(n))&&G.test(n)?n.replace(V,tt):n},An.uniqueId=function(n){var t=++fi;return Iu(n)+t},An.upperCase=Tf,An.upperFirst=$f,An.each=nu,An.eachRight=tu,An.first=qe,Nu(An,function(){var n={};return mt(An,function(t,r){oi.call(An.prototype,r)||(n[r]=t)}),n}(),{chain:false
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/lodash/lodash.min.js-128-}),An.VERSION="4.17.15",r("bind bindKey curry curryRight partial partialRight".split(" "),function(n){An[n].placeholder=An}),r(["drop","take"],function(n,t){Un.prototype[n]=function(r){r=r===T?1:Ui(Eu(r),0);var e=this.__filtered__&&!t?new Un(this):this.clone();return e.__filtered__?e.__takeCount__=Ci(r,e.__takeCount__):e.__views__.push({size:Ci(r,4294967295),type:n+(0>e.__dir__?"Right":"")}),e},Un.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/content-type/index.js-22- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/content-type/index.js:23:var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/content-type/index.js-24-var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/content-type/index.js-46- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/content-type/index.js:47:var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/content-type/index.js-48-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/onetime/index.js-20-			if (options.throw === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/onetime/index.js:21:				throw new Error(`Function \`${functionName}\` can only be called once`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/onetime/index.js-22-			}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/onetime/index.js-45-	if (!calledFunctions.has(fn)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/onetime/index.js:46:		throw new Error(`The given function \`${fn.name}\` is not wrapped by the \`onetime\` package`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/onetime/index.js-47-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/make-dir/index.js-15-		if (pathHasInvalidWinCharacters) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/make-dir/index.js:16:			const error = new Error(`Path contains invalid characters: ${pth}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/make-dir/index.js-17-			error.code = 'EINVAL';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/make-dir/index.js-38-	// `recusive` option when run on an invalid drive under Windows.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/make-dir/index.js:39:	const error = new Error(`operation not permitted, mkdir '${pth}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/make-dir/index.js-40-	error.code = 'EPERM';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-coverage/lib/coverage-map.js-96-        if (!fc) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-coverage/lib/coverage-map.js:97:            throw new Error(`No file coverage available for: ${file}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-coverage/lib/coverage-map.js-98-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/summarizer-factory.js-79-    getCoverageSummary(filesOnly) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/summarizer-factory.js:80:        const cacheProp = `c_${filesOnly ? 'files' : 'full'}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/summarizer-factory.js-81-        let summary;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/tree.js-31-['Start', 'End', 'Summary', 'SummaryEnd', 'Detail']
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/tree.js:32:    .map(k => `on${k}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/tree.js-33-    .forEach(fn => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/tree.js-60-['Start', 'Summary', 'SummaryEnd', 'Detail', 'End']
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/tree.js:61:    .map(k => `on${k}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/tree.js-62-    .forEach(fn => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-34-    println(str) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js:35:        this.write(`${str}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-36-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-92-        if (supportsColor.stdout && colors[clazz]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js:93:            return `\u001b[${colors[clazz]}m${str}\u001b[0m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-94-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-141-            throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js:142:                `Cannot create subdir writer for absolute path: ${subdir}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-143-            );
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-144-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js:145:        return new FileWriter(`${this.baseDir}/${subdir}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-146-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-156-        if (path.isAbsolute(dest)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js:157:            throw new Error(`Cannot write to absolute path: ${dest}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-158-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-180-        if (path.isAbsolute(file)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js:181:            throw new Error(`Cannot write to absolute path: ${file}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/file-writer.js-182-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-9-    return Object.entries(attrs || {})
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js:10:        .map(([k, v]) => ` ${k}="${v}"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-11-        .join('');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-34-    openTag(name, attrs) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js:35:        const str = this.indent(`<${name + attrString(attrs)}>`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-36-        this.cw.println(str);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-46-        if (this.stack.length === 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js:47:            throw new Error(`Attempt to close tag ${name} when not opened`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-48-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-49-        const stashed = this.stack.pop();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js:50:        const str = `</${name}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-51-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-53-            throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js:54:                `Attempt to close tag ${name} when ${stashed} was the one open`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-55-            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-68-        if (content) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js:69:            str += `>${content}</${name}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/xml-writer.js-70-        } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/context.js-16-    } catch (ex) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/context.js:17:        throw new Error(`Unable to lookup source: ${path} (${ex.message})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/context.js-18-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/path.js-40-    if (dir !== '') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/path.js:41:        dir = `${dir}/${file}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/path.js-42-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/path.js-59-            throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/path.js:60:                `Invalid Path argument must be string or array:${strOrArray}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-report/lib/path.js-61-            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/lib/mapped.js-57-            meta.seen[key] = index;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/lib/mapped.js:58:            name = name || `(unknown_${index})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/lib/mapped.js-59-            this.fnMap[index] = {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/lib/transformer.js-116-                if (!changed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/lib/transformer.js:117:                    debug(`File [${file}] ignored, nothing could be mapped`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/lib/transformer.js-118-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/lib/map-store.js-66-            } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/lib/map-store.js:67:                debug(`Unable to interpret source map URL: ${sourceMapUrl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/lib/map-store.js-68-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-lib-source-maps/node_modules/source-map/dist/source-map.min.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///source-map.min.js","webpack:///webpack/bootstrap 0fd5815da764db5fb9fe","webpack:///./source-map.js","webpack:///./lib/source-map-generator.js","webpack:///./lib/base64-vlq.js","webpack:///./lib/base64.js","webpack:///./lib/util.js","webpack:///./lib/array-set.js","webpack:///./lib/mapping-list.js","webpack:///./lib/source-map-consumer.js","webpack:///./lib/binary-search.js","webpack:///./lib/quick-sort.js","webpack:///./lib/source-node.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","SourceMapGenerator","SourceMapConsumer","SourceNode","aArgs","_file","util","getArg","_sourceRoot","_skipValidation","_sources","ArraySet","_names","_mappings","MappingList","_sourcesContents","base64VLQ","prototype","_version","fromSourceMap","aSourceMapConsumer","sourceRoot","generator","file","eachMapping","mapping","newMapping","generated","line","generatedLine","column","generatedColumn","source","relative","original","originalLine","originalColumn","name","addMapping","sources","forEach","sourceFile","sourceRelative","has","add","content","sourceContentFor","setSourceContent","_validateMapping","String","aSourceFile","aSourceContent","Object","create","toSetString","keys","length","applySourceMap","aSourceMapPath","Error","newSources","newNames","unsortedForEach","originalPositionFor","join","aGenerated","aOriginal","aSource","aName","JSON","stringify","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedColumn","previousGeneratedLine","previousOriginalColumn","previousOriginalLine","previousName","previousSource","result","mappings","toArray","i","len","compareByGeneratedPositionsInflated","encode","indexOf","_generateSourcesContent","aSources","aSourceRoot","map","key","hasOwnProperty","toJSON","version","names","sourcesContent","toString","toVLQSigned","aValue","fromVLQSigned","isNegative","shifted","base64","VLQ_BASE_SHIFT","VLQ_BASE","VLQ_BASE_MASK","VLQ_CONTINUATION_BIT","digit","encoded","vlq","decode","aStr","aIndex","aOutParam","continuation","strLen","shift","charCodeAt","charAt","value","rest","intToCharMap","split","number","TypeError","charCode","bigA","bigZ","littleA","littleZ","zero","nine","plus","slash","littleOffset","numberOffset","aDefaultValue","arguments","urlParse","aUrl","match","urlRegexp","scheme","auth","host","port","path","urlGenerate","aParsedUrl","url","normalize","aPath","part","isAbsolute","parts","up","splice","aRoot","aPathUrl","aRootUrl","dataUrlRegexp","joined","replace","level","index","lastIndexOf","slice","Array","substr","identity","s","isProtoString","fromSetString","compareByOriginalPositions","mappingA","mappingB","onlyCompareOriginal","cmp","strcmp","compareByGeneratedPositionsDeflated","onlyCompareGenerated","aStr1","aStr2","parseSourceMapInput","str","parse","computeSourceURL","sourceURL","sourceMapURL","parsed","substring","test","supportsNullProto","obj","_array","_set","hasNativeMap","Map","fromArray","aArray","aAllowDuplicates","set","size","getOwnPropertyNames","sStr","isDuplicate","idx","push","get","at","aIdx","generatedPositionAfter","lineA","lineB","columnA","columnB","_sorted","_last","aCallback","aThisArg","aMapping","sort","aSourceMap","aSourceMapURL","sourceMap","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","_absoluteSources","_sourceMapURL","Mapping","lastOffset","_sections","offset","offsetLine","offsetColumn","generatedOffset","consumer","binarySearch","quickSort","__generatedMappings","defineProperty","configurable","enumerable","_parseMappings","__originalMappings","_charIsMappingSeparator","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","aContext","aOrder","context","order","_generatedMappings","_originalMappings","allGeneratedPositionsFor","needle","_findSourceIndex","_findMapping","undefined","lastColumn","relativeSource","smc","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","segment","end","cachedSegments","temp","originalMappings","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","search","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","some","sc","nullOnMissing","fileUriAbsPath","generatedPositionFor","constructor","j","sectionIndex","section","bias","every","generatedPosition","ret","sectionMappings","adjustedMapping","recursiveSearch","aLow","aHigh","aHaystack","aCompare","mid","Math","floor","swap","ary","x","y","randomIntInRange","low","high","round","random","doQuickSort","comparator","r","pivotIndex","pivot","q","aLine","aColumn","aChunks","children","sourceContents","isSourceNode","REGEX_NEWLINE","NEWLINE_CODE","fromStringWithSourceMap","aGeneratedCode","aRelativePath","addMappingWithCode","code","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lineContents","newLine","lastGeneratedLine","lastMapping","nextLine","aChunk","isArray","chunk","prepend","unshift","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,UAAAD,IAEAD,EAAA,UAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,QAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAAUL,EAAQD,EAASM,GEjDjCN,EAAAe,mBAAAT,EAAA,GAAAS,mBACAf,EAAAgB,kBAAAV,EAAA,GAAAU,kBACAhB,EAAAiB,WAAAX,EAAA,IAAAW,YF6DM,SAAUhB,EAAQD,EAASM,GGhDjC,QAAAS,GAAAG,GACAA,IACAA,MAEAd,KAAAe,MAAAC,EAAAC,OAAAH,EAAA,aACAd,KAAAkB,YAAAF,EAAAC,OAAAH,EAAA,mBACAd,KAAAmB,gBAAAH,EAAAC,OAAAH,EAAA,qBACAd,KAAAoB,SAAA,GAAAC,GACArB,KAAAsB,OAAA,GAAAD,GACArB,KAAAuB,UAAA,GAAAC,GACAxB,KAAAyB,iBAAA,KAvBA,GAAAC,GAAAxB,EAAA,GACAc,EAAAd,EAAA,GACAmB,EAAAnB,EAAA,GAAAmB,SACAG,EAAAtB,EAAA,GAAAsB,WAuBAb,GAAAgB,UAAAC,SAAA,EAOAjB,EAAAkB,cACA,SAAAC,GACA,GAAAC,GAAAD,EAAAC,WACAC,EAAA,GAAArB,IACAsB,KAAAH,EAAAG,KACAF,cA2CA,OAzCAD,GAAAI,YAAA,SAAAC,GACA,GAAAC,IACAC,WACAC,KAAAH,EAAAI,cACAC,OAAAL,EAAAM,iBAIA,OAAAN,EAAAO,SACAN,EAAAM,OAAAP,EAAAO,OACA,MAAAX,IACAK,EAAAM,OAAA1B,EAAA2B,SAAAZ,EAAAK,EAAAM,SAGAN,EAAAQ,UACAN,KAAAH,EAAAU,aACAL,OAAAL,EAAAW,gBAGA,MAAAX,EAAAY,OACAX,EAAAW,KAAAZ,EAAAY,OAIAf,EAAAgB,WAAAZ,KAEAN,EAAAmB,QAAAC,QAAA,SAAAC,GACA,GAAAC,GAAAD,CACA,QAAApB,IACAqB,EAAApC,EAAA2B,SAAAZ,EAAAoB,IAGAnB,EAAAZ,SAAAiC,IAAAD,IACApB,EAAAZ,SAAAkC,IAAAF,EAGA,IAAAG,GAAAzB,EAAA0B,iBAAAL,EACA,OAAAI,GACAvB,EAAAyB,iBAAAN,EAAAI,KAGAvB,GAaArB,EAAAgB,UAAAqB,WACA,SAAAlC,GACA,GAAAuB,GAAArB,EAAAC,OAAAH,EAAA,aACA8B,EAAA5B,EAAAC,OAAAH,EAAA,iBACA4B,EAAA1B,EAAAC,OAAAH,EAAA,eACAiC,EAAA/B,EAAAC,OAAAH,EAAA,YAEAd,MAAAmB,iBACAnB,KAAA0D,iBAAArB,EAAAO,EAAAF,EAAAK,GAGA,MAAAL,IACAA,EAAAiB,OAAAjB,GACA1C,KAAAoB,SAAAiC,IAAAX,IACA1C,KAAAoB,SAAAkC,IAAAZ,IAIA,MAAAK,IACAA,EAAAY,OAAAZ,GACA/C,KAAAsB,OAAA+B,IAAAN,IACA/C,KAAAsB,OAAAgC,IAAAP,IAIA/C,KAAAuB,UAAA+B,KACAf,cAAAF,EAAAC,KACAG,gBAAAJ,EAAAG,OACAK,aAAA,MAAAD,KAAAN,KACAQ,eAAA,MAAAF,KAAAJ,OACAE,SACAK,UAOApC,EAAAgB,UAAA8B,iBACA,SAAAG,EAAAC,GACA,GAAAnB,GAAAkB,CACA,OAAA5D,KAAAkB,cACAwB,EAAA1B,EAAA2B,SAAA3C,KAAAkB,YAAAwB,IAGA,MAAAmB,GAGA7D,KAAAyB,mBACAzB,KAAAyB,iBAAAqC,OAAAC,OAAA,OAEA/D,KAAAyB,iBAAAT,EAAAgD,YAAAtB,IAAAmB,GACK7D,KAAAyB,yBAGLzB,MAAAyB,iBAAAT,EAAAgD,YAAAtB,IACA,IAAAoB,OAAAG,KAAAjE,KAAAyB,kBAAAyC,SACAlE,KAAAyB,iBAAA,QAqBAd,EAAAgB,UAAAwC,eACA,SAAArC,EAAA8B,EAAAQ,GACA,GAAAjB,GAAAS,CAEA,UAAAA,EAAA,CACA,SAAA9B,EAAAG,KACA,SAAAoC,OACA,gJAIAlB,GAAArB,EAAAG,KAEA,GAAAF,GAAA/B,KAAAkB,WAEA,OAAAa,IACAoB,EAAAnC,EAAA2B,SAAAZ,EAAAoB,GAIA,IAAAmB,GAAA,GAAAjD,GACAkD,EAAA,GAAAlD,EAGArB,MAAAuB,UAAAiD,gBAAA,SAAArC,GACA,GAAAA,EAAAO,SAAAS,GAAA,MAAAhB,EAAAU,aAAA,CAEA,GAAAD,GAAAd,EAAA2C,qBACAnC,KAAAH,EAAAU,aACAL,OAAAL,EAAAW,gBAEA,OAAAF,EAAAF,SAEAP,EAAAO,OAAAE,EAAAF,OACA,MAAA0B,IACAjC,EAAAO,OAAA1B,EAAA0D,KAAAN,EAAAjC,EAAAO,SAEA,MAAAX,IACAI,EAAAO,OAAA1B,EAAA2B,SAAAZ,EAAAI,EAAAO,SAEAP,EAAAU,aAAAD,EAAAN,KACAH,EAAAW,eAAAF,EAAAJ,OACA,MAAAI,EAAAG,OACAZ,EAAAY,KAAAH,EAAAG,OAKA,GAAAL,GAAAP,EAAAO,MACA,OAAAA,GAAA4B,EAAAjB,IAAAX,IACA4B,EAAAhB,IAAAZ,EAGA,IAAAK,GAAAZ,EAAAY,IACA,OAAAA,GAAAwB,EAAAlB,IAAAN,IACAwB,EAAAjB,IAAAP,IAGK/C,MACLA,KAAAoB,SAAAkD,EACAtE,KAAAsB,OAAAiD,EAGAzC,EAAAmB,QAAAC,QAAA,SAAAC,GACA,GAAAI,GAAAzB,EAAA0B,iBAAAL,EACA,OAAAI,IACA,MAAAa,IACAjB,EAAAnC,EAAA0D,KAAAN,EAAAjB,IAEA,MAAApB,IACAoB,EAAAnC,EAAA2B,SAAAZ,EAAAoB,IAEAnD,KAAAyD,iBAAAN,EAAAI,KAEKvD,OAcLW,EAAAgB,UAAA+B,iBACA,SAAAiB,EAAAC,EAAAC,EACAC,GAKA,GAAAF,GAAA,gBAAAA,GAAAtC,MAAA,gBAAAsC,GAAApC,OACA,SAAA6B,OACA,+OAMA,OAAAM,GAAA,QAAAA,IAAA,UAAAA,IACAA,EAAArC,KAAA,GAAAqC,EAAAnC,QAAA,IACAoC,GAAAC,GAAAC,MAIAH,GAAA,QAAAA,IAAA,UAAAA,IACAC,GAAA,QAAAA,IAAA,UAAAA,IACAD,EAAArC,KAAA,GAAAqC,EAAAnC,QAAA,GACAoC,EAAAtC,KAAA,GAAAsC,EAAApC,QAAA,GACAqC,GAKA,SAAAR,OAAA,oBAAAU,KAAAC,WACA3C,UAAAsC,EACAjC,OAAAmC,EACAjC,SAAAgC,EACA7B,KAAA+B,MASAnE,EAAAgB,UAAAsD,mBACA,WAcA,OANAC,GACA/C,EACAgD,EACAC,EAVAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,GAMAC,EAAA5F,KAAAuB,UAAAsE,UACAC,EAAA,EAAAC,EAAAH,EAAA1B,OAA0C4B,EAAAC,EAASD,IAAA,CAInD,GAHA3D,EAAAyD,EAAAE,GACAZ,EAAA,GAEA/C,EAAAI,gBAAA+C,EAEA,IADAD,EAAA,EACAlD,EAAAI,gBAAA+C,GACAJ,GAAA,IACAI,QAIA,IAAAQ,EAAA,GACA,IAAA9E,EAAAgF,oCAAA7D,EAAAyD,EAAAE,EAAA,IACA,QAEAZ,IAAA,IAIAA,GAAAxD,EAAAuE,OAAA9D,EAAAM,gBACA4C,GACAA,EAAAlD,EAAAM,gBAEA,MAAAN,EAAAO,SACA0C,EAAApF,KAAAoB,SAAA8E,QAAA/D,EAAAO,QACAwC,GAAAxD,EAAAuE,OAAAb,EAAAM,GACAA,EAAAN,EAGAF,GAAAxD,EAAAuE,OAAA9D,EAAAU,aAAA,EACA2C,GACAA,EAAArD,EAAAU,aAAA,EAEAqC,GAAAxD,EAAAuE,OAAA9D,EAAAW,eACAyC,GACAA,EAAApD,EAAAW,eAEA,MAAAX,EAAAY,OACAoC,EAAAnF,KAAAsB,OAAA4E,QAAA/D,EAAAY,MACAmC,GAAAxD,EAAAuE,OAAAd,EAAAM,GACAA,EAAAN,IAIAQ,GAAAT,EAGA,MAAAS,IAGAhF,EAAAgB,UAAAwE,wBACA,SAAAC,EAAAC,GACA,MAAAD,GAAAE,IAAA,SAAA5D,GACA,IAAA1C,KAAAyB,iBACA,WAEA,OAAA4E,IACA3D,EAAA1B,EAAA2B,SAAA0D,EAAA3D,GAEA,IAAA6D,GAAAvF,EAAAgD,YAAAtB,EACA,OAAAoB,QAAAnC,UAAA6E,eAAAjG,KAAAP,KAAAyB,iBAAA8E,GACAvG,KAAAyB,iBAAA8E,GACA,MACKvG,OAMLW,EAAAgB,UAAA8E,OACA,WACA,GAAAH,IACAI,QAAA1G,KAAA4B,SACAqB,QAAAjD,KAAAoB,SAAAyE,UACAc,MAAA3G,KAAAsB,OAAAuE,UACAD,SAAA5F,KAAAiF,qBAYA,OAVA,OAAAjF,KAAAe,QACAuF,EAAArE,KAAAjC,KAAAe,OAEA,MAAAf,KAAAkB,cACAoF,EAAAvE,WAAA/B,KAAAkB,aAEAlB,KAAAyB,mBACA6E,EAAAM,eAAA5G,KAAAmG,wBAAAG,EAAArD,QAAAqD,EAAAvE,aAGAuE,GAMA3F,EAAAgB,UAAAkF,SACA,WACA,MAAA9B,MAAAC,UAAAhF,KAAAyG,WAGA7G,EAAAe,sBH2EM,SAAUd,EAAQD,EAASM,GI/ajC,QAAA4G,GAAAC,GACA,MAAAA,GAAA,IACAA,GAAA,MACAA,GAAA,KASA,QAAAC,GAAAD,GACA,GAAAE,GAAA,OAAAF,GACAG,EAAAH,GAAA,CACA,OAAAE,IACAC,EACAA,EAhDA,GAAAC,GAAAjH,EAAA,GAcAkH,EAAA,EAGAC,EAAA,GAAAD,EAGAE,EAAAD,EAAA,EAGAE,EAAAF,CA+BAzH,GAAAqG,OAAA,SAAAc,GACA,GACAS,GADAC,EAAA,GAGAC,EAAAZ,EAAAC,EAEA,GACAS,GAAAE,EAAAJ,EACAI,KAAAN,EACAM,EAAA,IAGAF,GAAAD,GAEAE,GAAAN,EAAAlB,OAAAuB,SACGE,EAAA,EAEH,OAAAD,IAOA7H,EAAA+H,OAAA,SAAAC,EAAAC,EAAAC,GACA,GAGAC,GAAAP,EAHAQ,EAAAJ,EAAA1D,OACAyB,EAAA,EACAsC,EAAA,CAGA,IACA,GAAAJ,GAAAG,EACA,SAAA3D,OAAA,6CAIA,IADAmD,EAAAL,EAAAQ,OAAAC,EAAAM,WAAAL,MACAL,KAAA,EACA,SAAAnD,OAAA,yBAAAuD,EAAAO,OAAAN,EAAA,GAGAE,MAAAP,EAAAD,GACAC,GAAAF,EACA3B,GAAA6B,GAAAS,EACAA,GAAAb,QACGW,EAEHD,GAAAM,MAAApB,EAAArB,GACAmC,EAAAO,KAAAR,IJ2fM,SAAUhI,EAAQD,GK9nBxB,GAAA0I,GAAA,mEAAAC,MAAA,GAKA3I,GAAAqG,OAAA,SAAAuC,GACA,MAAAA,KAAAF,EAAApE,OACA,MAAAoE,GAAAE,EAEA,UAAAC,WAAA,6BAAAD,IAOA5I,EAAA+H,OAAA,SAAAe,GACA,GAAAC,GAAA,GACAC,EAAA,GAEAC,EAAA,GACAC,EAAA,IAEAC,EAAA,GACAC,EAAA,GAEAC,EAAA,GACAC,EAAA,GAEAC,EAAA,GACAC,EAAA,EAGA,OAAAT,IAAAD,MAAAE,EACAF,EAAAC,EAIAE,GAAAH,MAAAI,EACAJ,EAAAG,EAAAM,EAIAJ,GAAAL,MAAAM,EACAN,EAAAK,EAAAK,EAIAV,GAAAO,EACA,GAIAP,GAAAQ,EACA,IAIA,IL6oBM,SAAUrJ,EAAQD,GM7rBxB,QAAAqB,GAAAH,EAAAgE,EAAAuE,GACA,GAAAvE,IAAAhE,GACA,MAAAA,GAAAgE,EACG,QAAAwE,UAAApF,OACH,MAAAmF,EAEA,UAAAhF,OAAA,IAAAS,EAAA,6BAQA,QAAAyE,GAAAC,GACA,GAAAC,GAAAD,EAAAC,MAAAC,EACA,OAAAD,IAIAE,OAAAF,EAAA,GACAG,KAAAH,EAAA,GACAI,KAAAJ,EAAA,GACAK,KAAAL,EAAA,GACAM,KAAAN,EAAA,IAPA,KAYA,QAAAO,GAAAC,GACA,GAAAC,GAAA,EAiBA,OAhBAD,GAAAN,SACAO,GAAAD,EAAAN,OAAA,KAEAO,GAAA,KACAD,EAAAL,OACAM,GAAAD,EAAAL,KAAA,KAEAK,EAAAJ,OACAK,GAAAD,EAAAJ,MAEAI,EAAAH,OACAI,GAAA,IAAAD,EAAAH,MAEAG,EAAAF,OACAG,GAAAD,EAAAF,MAEAG,EAeA,QAAAC,GAAAC,GACA,GAAAL,GAAAK,EACAF,EAAAX,EAAAa,EACA,IAAAF,EAAA,CACA,IAAAA,EAAAH,KACA,MAAAK,EAEAL,GAAAG,EAAAH,KAKA,OAAAM,GAHAC,EAAA1K,EAAA0K,WAAAP,GAEAQ,EAAAR,EAAAxB,MAAA,OACAiC,EAAA,EAAA1E,EAAAyE,EAAArG,OAAA,EAA8C4B,GAAA,EAAQA,IACtDuE,EAAAE,EAAAzE,GACA,MAAAuE,EACAE,EAAAE,OAAA3E,EAAA,GACK,OAAAuE,EACLG,IACKA,EAAA,IACL,KAAAH,GAIAE,EAAAE,OAAA3E,EAAA,EAAA0E,GACAA,EAAA,IAEAD,EAAAE,OAAA3E,EAAA,GACA0E,KAUA,OANAT,GAAAQ,EAAA7F,KAAA,KAEA,KAAAqF,IACAA,EAAAO,EAAA,SAGAJ,GACAA,EAAAH,OACAC,EAAAE,IAEAH,EAoBA,QAAArF,GAAAgG,EAAAN,GACA,KAAAM,IACAA,EAAA,KAEA,KAAAN,IACAA,EAAA,IAEA,IAAAO,GAAApB,EAAAa,GACAQ,EAAArB,EAAAmB,EAMA,IALAE,IACAF,EAAAE,EAAAb,MAAA,KAIAY,MAAAhB,OAIA,MAHAiB,KACAD,EAAAhB,OAAAiB,EAAAjB,QAEAK,EAAAW,EAGA,IAAAA,GAAAP,EAAAX,MAAAoB,GACA,MAAAT,EAIA,IAAAQ,MAAAf,OAAAe,EAAAb,KAEA,MADAa,GAAAf,KAAAO,EACAJ,EAAAY,EAGA,IAAAE,GAAA,MAAAV,EAAAjC,OAAA,GACAiC,EACAD,EAAAO,EAAAK,QAAA,eAAAX,EAEA,OAAAQ,IACAA,EAAAb,KAAAe,EACAd,EAAAY,IAEAE,EAcA,QAAAnI,GAAA+H,EAAAN,GACA,KAAAM,IACAA,EAAA,KAGAA,IAAAK,QAAA,SAOA,KADA,GAAAC,GAAA,EACA,IAAAZ,EAAAlE,QAAAwE,EAAA,OACA,GAAAO,GAAAP,EAAAQ,YAAA,IACA,IAAAD,EAAA,EACA,MAAAb,EAOA,IADAM,IAAAS,MAAA,EAAAF,GACAP,EAAAjB,MAAA,qBACA,MAAAW,KAGAY,EAIA,MAAAI,OAAAJ,EAAA,GAAAtG,KAAA,OAAA0F,EAAAiB,OAAAX,EAAAxG,OAAA,GASA,QAAAoH,GAAAC,GACA,MAAAA,GAYA,QAAAvH,GAAA4D,GACA,MAAA4D,GAAA5D,GACA,IAAAA,EAGAA,EAIA,QAAA6D,GAAA7D,GACA,MAAA4D,GAAA5D,GACAA,EAAAuD,MAAA,GAGAvD,EAIA,QAAA4D,GAAAD,GACA,IAAAA,EACA,QAGA,IAAArH,GAAAqH,EAAArH,MAEA,IAAAA,EAAA,EACA,QAGA,SAAAqH,EAAArD,WAAAhE,EAAA,IACA,KAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,KAAAqH,EAAArD,WAAAhE,EAAA,IACA,KAAAqH,EAAArD,WAAAhE,EAAA,GACA,QAGA,QAAA4B,GAAA5B,EAAA,GAA2B4B,GAAA,EAAQA,IACnC,QAAAyF,EAAArD,WAAApC,GACA,QAIA,UAWA,QAAA4F,GAAAC,EAAAC,EAAAC,GACA,GAAAC,GAAAC,EAAAJ,EAAAjJ,OAAAkJ,EAAAlJ,OACA,YAAAoJ,EACAA,GAGAA,EAAAH,EAAA9I,aAAA+I,EAAA/I,aACA,IAAAiJ,EACAA,GAGAA,EAAAH,EAAA7I,eAAA8I,EAAA9I,eACA,IAAAgJ,GAAAD,EACAC,GAGAA,EAAAH,EAAAlJ,gBAAAmJ,EAAAnJ,gBACA,IAAAqJ,EACAA,GAGAA,EAAAH,EAAApJ,cAAAqJ,EAAArJ,cACA,IAAAuJ,EACAA,EAGAC,EAAAJ,EAAA5I,KAAA6I,EAAA7I,UAaA,QAAAiJ,GAAAL,EAAAC,EAAAK,GACA,GAAAH,GAAAH,EAAApJ,cAAAqJ,EAAArJ,aACA,YAAAuJ,EACAA,GAGAA,EAAAH,EAAAlJ,gBAAAmJ,EAAAnJ,gBACA,IAAAqJ,GAAAG,EACAH,GAGAA,EAAAC,EAAAJ,EAAAjJ,OAAAkJ,EAAAlJ,QACA,IAAAoJ,EACAA,GAGAA,EAAAH,EAAA9I,aAAA+I,EAAA/I,aACA,IAAAiJ,EACAA,GAGAA,EAAAH,EAAA7I,eAAA8I,EAAA9I,eACA,IAAAgJ,EACAA,EAGAC,EAAAJ,EAAA5I,KAAA6I,EAAA7I,UAIA,QAAAgJ,GAAAG,EAAAC,GACA,MAAAD,KAAAC,EACA,EAGA,OAAAD,EACA,EAGA,OAAAC,GACA,EAGAD,EAAAC,EACA,GAGA,EAOA,QAAAnG,GAAA2F,EAAAC,GACA,GAAAE,GAAAH,EAAApJ,cAAAqJ,EAAArJ,aACA,YAAAuJ,EACAA,GAGAA,EAAAH,EAAAlJ,gBAAAmJ,EAAAnJ,gBACA,IAAAqJ,EACAA,GAGAA,EAAAC,EAAAJ,EAAAjJ,OAAAkJ,EAAAlJ,QACA,IAAAoJ,EACAA,GAGAA,EAAAH,EAAA9I,aAAA+I,EAAA/I,aACA,IAAAiJ,EACAA,GAGAA,EAAAH,EAAA7I,eAAA8I,EAAA9I,eACA,IAAAgJ,EACAA,EAGAC,EAAAJ,EAAA5I,KAAA6I,EAAA7I,UASA,QAAAqJ,GAAAC,GACA,MAAAtH,MAAAuH,MAAAD,EAAAtB,QAAA,iBAAsC,KAQtC,QAAAwB,GAAAxK,EAAAyK,EAAAC,GA8BA,GA7BAD,KAAA,GAEAzK,IAEA,MAAAA,IAAAmC,OAAA,UAAAsI,EAAA,KACAzK,GAAA,KAOAyK,EAAAzK,EAAAyK,GAiBAC,EAAA,CACA,GAAAC,GAAAnD,EAAAkD,EACA,KAAAC,EACA,SAAArI,OAAA,mCAEA,IAAAqI,EAAA3C,KAAA,CAEA,GAAAkB,GAAAyB,EAAA3C,KAAAmB,YAAA,IACAD,IAAA,IACAyB,EAAA3C,KAAA2C,EAAA3C,KAAA4C,UAAA,EAAA1B,EAAA,IAGAuB,EAAA9H,EAAAsF,EAAA0C,GAAAF,GAGA,MAAArC,GAAAqC,GA3cA5M,EAAAqB,QAEA,IAAAyI,GAAA,iEACAmB,EAAA,eAeAjL,GAAA2J,WAsBA3J,EAAAoK,cAwDApK,EAAAuK,YA2DAvK,EAAA8E,OAEA9E,EAAA0K,WAAA,SAAAF,GACA,YAAAA,EAAAjC,OAAA,IAAAuB,EAAAkD,KAAAxC,IAyCAxK,EAAA+C,UAEA,IAAAkK,GAAA,WACA,GAAAC,GAAAhJ,OAAAC,OAAA,KACA,sBAAA+I,MAuBAlN,GAAAoE,YAAA6I,EAAAvB,EAAAtH,EASApE,EAAA6L,cAAAoB,EAAAvB,EAAAG,EAsEA7L,EAAA8L,6BAuCA9L,EAAAoM,sCAsDApM,EAAAoG,sCAUApG,EAAAwM,sBAqDAxM,EAAA2M,oBNqtBM,SAAU1M,EAAQD,EAASM,GO3qCjC,QAAAmB,KACArB,KAAA+M,UACA/M,KAAAgN,KAAAC,EAAA,GAAAC,KAAApJ,OAAAC,OAAA,MAZA,GAAA/C,GAAAd,EAAA,GACAmD,EAAAS,OAAAnC,UAAA6E,eACAyG,EAAA,mBAAAC,IAgBA7L,GAAA8L,UAAA,SAAAC,EAAAC,GAEA,OADAC,GAAA,GAAAjM,GACAyE,EAAA,EAAAC,EAAAqH,EAAAlJ,OAAsC4B,EAAAC,EAASD,IAC/CwH,EAAAhK,IAAA8J,EAAAtH,GAAAuH,EAEA,OAAAC,IASAjM,EAAAM,UAAA4L,KAAA,WACA,MAAAN,GAAAjN,KAAAgN,KAAAO,KAAAzJ,OAAA0J,oBAAAxN,KAAAgN,MAAA9I,QAQA7C,EAAAM,UAAA2B,IAAA,SAAAsE,EAAAyF,GACA,GAAAI,GAAAR,EAAArF,EAAA5G,EAAAgD,YAAA4D,GACA8F,EAAAT,EAAAjN,KAAAqD,IAAAuE,GAAAvE,EAAA9C,KAAAP,KAAAgN,KAAAS,GACAE,EAAA3N,KAAA+M,OAAA7I,MACAwJ,KAAAL,GACArN,KAAA+M,OAAAa,KAAAhG,GAEA8F,IACAT,EACAjN,KAAAgN,KAAAM,IAAA1F,EAAA+F,GAEA3N,KAAAgN,KAAAS,GAAAE,IAUAtM,EAAAM,UAAA0B,IAAA,SAAAuE,GACA,GAAAqF,EACA,MAAAjN,MAAAgN,KAAA3J,IAAAuE,EAEA,IAAA6F,GAAAzM,EAAAgD,YAAA4D,EACA,OAAAvE,GAAA9C,KAAAP,KAAAgN,KAAAS,IASApM,EAAAM,UAAAuE,QAAA,SAAA0B,GACA,GAAAqF,EAAA,CACA,GAAAU,GAAA3N,KAAAgN,KAAAa,IAAAjG,EACA,IAAA+F,GAAA,EACA,MAAAA,OAEG,CACH,GAAAF,GAAAzM,EAAAgD,YAAA4D,EACA,IAAAvE,EAAA9C,KAAAP,KAAAgN,KAAAS,GACA,MAAAzN,MAAAgN,KAAAS,GAIA,SAAApJ,OAAA,IAAAuD,EAAA,yBAQAvG,EAAAM,UAAAmM,GAAA,SAAAC,GACA,GAAAA,GAAA,GAAAA,EAAA/N,KAAA+M,OAAA7I,OACA,MAAAlE,MAAA+M,OAAAgB,EAEA,UAAA1J,OAAA,yBAAA0J,IAQA1M,EAAAM,UAAAkE,QAAA,WACA,MAAA7F,MAAA+M,OAAA5B,SAGAvL,EAAAyB,YPmsCM,SAAUxB,EAAQD,EAASM,GQ9yCjC,QAAA8N,GAAArC,EAAAC,GAEA,GAAAqC,GAAAtC,EAAApJ,cACA2L,EAAAtC,EAAArJ,cACA4L,EAAAxC,EAAAlJ,gBACA2L,EAAAxC,EAAAnJ,eACA,OAAAyL,GAAAD,GAAAC,GAAAD,GAAAG,GAAAD,GACAnN,EAAAgF,oCAAA2F,EAAAC,IAAA,EAQA,QAAApK,KACAxB,KAAA+M,UACA/M,KAAAqO,SAAA,EAEArO,KAAAsO,OAAgB/L,eAAA,EAAAE,gBAAA,GAzBhB,GAAAzB,GAAAd,EAAA,EAkCAsB,GAAAG,UAAA6C,gBACA,SAAA+J,EAAAC,GACAxO,KAAA+M,OAAA7J,QAAAqL,EAAAC,IAQAhN,EAAAG,UAAA2B,IAAA,SAAAmL,GACAT,EAAAhO,KAAAsO,MAAAG,IACAzO,KAAAsO,MAAAG,EACAzO,KAAA+M,OAAAa,KAAAa,KAEAzO,KAAAqO,SAAA,EACArO,KAAA+M,OAAAa,KAAAa,KAaAjN,EAAAG,UAAAkE,QAAA,WAKA,MAJA7F,MAAAqO,UACArO,KAAA+M,OAAA2B,KAAA1N,EAAAgF,qCACAhG,KAAAqO,SAAA,GAEArO,KAAA+M,QAGAnN,EAAA4B,eRk0CM,SAAU3B,EAAQD,EAASM,GSn4CjC,QAAAU,GAAA+N,EAAAC,GACA,GAAAC,GAAAF,CAKA,OAJA,gBAAAA,KACAE,EAAA7N,EAAAoL,oBAAAuC,IAGA,MAAAE,EAAAC,SACA,GAAAC,GAAAF,EAAAD,GACA,GAAAI,GAAAH,EAAAD,GA0QA,QAAAI,GAAAL,EAAAC,GACA,GAAAC,GAAAF,CACA,iBAAAA,KACAE,EAAA7N,EAAAoL,oBAAAuC,GAGA,IAAAjI,GAAA1F,EAAAC,OAAA4N,EAAA,WACA5L,EAAAjC,EAAAC,OAAA4N,EAAA,WAGAlI,EAAA3F,EAAAC,OAAA4N,EAAA,YACA9M,EAAAf,EAAAC,OAAA4N,EAAA,mBACAjI,EAAA5F,EAAAC,OAAA4N,EAAA,uBACAjJ,EAAA5E,EAAAC,OAAA4N,EAAA,YACA5M,EAAAjB,EAAAC,OAAA4N,EAAA,YAIA,IAAAnI,GAAA1G,KAAA4B,SACA,SAAAyC,OAAA,wBAAAqC,EAGA3E,KACAA,EAAAf,EAAAmJ,UAAApI,IAGAkB,IACAqD,IAAA3C,QAIA2C,IAAAtF,EAAAmJ,WAKA7D,IAAA,SAAA5D,GACA,MAAAX,IAAAf,EAAAsJ,WAAAvI,IAAAf,EAAAsJ,WAAA5H,GACA1B,EAAA2B,SAAAZ,EAAAW,GACAA,IAOA1C,KAAAsB,OAAAD,EAAA8L,UAAAxG,EAAAL,IAAA3C,SAAA,GACA3D,KAAAoB,SAAAC,EAAA8L,UAAAlK,GAAA,GAEAjD,KAAAiP,iBAAAjP,KAAAoB,SAAAyE,UAAAS,IAAA,SAAAiF,GACA,MAAAvK,GAAAuL,iBAAAxK,EAAAwJ,EAAAqD,KAGA5O,KAAA+B,aACA/B,KAAA4G,iBACA5G,KAAAuB,UAAAqE,EACA5F,KAAAkP,cAAAN,EACA5O,KAAAiC,OA4GA,QAAAkN,KACAnP,KAAAuC,cAAA,EACAvC,KAAAyC,gBAAA,EACAzC,KAAA0C,OAAA,KACA1C,KAAA6C,aAAA,KACA7C,KAAA8C,eAAA,KACA9C,KAAA+C,KAAA,KAkaA,QAAAgM,GAAAJ,EAAAC,GACA,GAAAC,GAAAF,CACA,iBAAAA,KACAE,EAAA7N,EAAAoL,oBAAAuC,GAGA,IAAAjI,GAAA1F,EAAAC,OAAA4N,EAAA,WACAC,EAAA9N,EAAAC,OAAA4N,EAAA,WAEA,IAAAnI,GAAA1G,KAAA4B,SACA,SAAAyC,OAAA,wBAAAqC,EAGA1G,MAAAoB,SAAA,GAAAC,GACArB,KAAAsB,OAAA,GAAAD,EAEA,IAAA+N,IACA9M,MAAA,EACAE,OAAA,EAEAxC,MAAAqP,UAAAP,EAAAxI,IAAA,SAAAiF,GACA,GAAAA,EAAArB,IAGA,SAAA7F,OAAA,qDAEA,IAAAiL,GAAAtO,EAAAC,OAAAsK,EAAA,UACAgE,EAAAvO,EAAAC,OAAAqO,EAAA,QACAE,EAAAxO,EAAAC,OAAAqO,EAAA,SAEA,IAAAC,EAAAH,EAAA9M,MACAiN,IAAAH,EAAA9M,MAAAkN,EAAAJ,EAAA5M,OACA,SAAA6B,OAAA,uDAIA,OAFA+K,GAAAE,GAGAG,iBAGAlN,cAAAgN,EAAA,EACA9M,gBAAA+M,EAAA,GAEAE,SAAA,GAAA9O,GAAAI,EAAAC,OAAAsK,EAAA,OAAAqD,MAh5BA,GAAA5N,GAAAd,EAAA,GACAyP,EAAAzP,EAAA,GACAmB,EAAAnB,EAAA,GAAAmB,SACAK,EAAAxB,EAAA,GACA0P,EAAA1P,EAAA,GAAA0P,SAaAhP,GAAAiB,cAAA,SAAA8M,EAAAC,GACA,MAAAI,GAAAnN,cAAA8M,EAAAC,IAMAhO,EAAAe,UAAAC,SAAA,EAgCAhB,EAAAe,UAAAkO,oBAAA,KACA/L,OAAAgM,eAAAlP,EAAAe,UAAA,sBACAoO,cAAA,EACAC,YAAA,EACAnC,IAAA,WAKA,MAJA7N,MAAA6P,qBACA7P,KAAAiQ,eAAAjQ,KAAAuB,UAAAvB,KAAA+B,YAGA/B,KAAA6P,uBAIAjP,EAAAe,UAAAuO,mBAAA,KACApM,OAAAgM,eAAAlP,EAAAe,UAAA,qBACAoO,cAAA,EACAC,YAAA,EACAnC,IAAA,WAKA,MAJA7N,MAAAkQ,oBACAlQ,KAAAiQ,eAAAjQ,KAAAuB,UAAAvB,KAAA+B,YAGA/B,KAAAkQ,sBAIAtP,EAAAe,UAAAwO,wBACA,SAAAvI,EAAAqD,GACA,GAAAxK,GAAAmH,EAAAO,OAAA8C,EACA,aAAAxK,GAAmB,MAAAA,GAQnBG,EAAAe,UAAAsO,eACA,SAAArI,EAAAvB,GACA,SAAAhC,OAAA,6CAGAzD,EAAAwP,gBAAA,EACAxP,EAAAyP,eAAA,EAEAzP,EAAA0P,qBAAA,EACA1P,EAAA2P,kBAAA,EAkBA3P,EAAAe,UAAAO,YACA,SAAAqM,EAAAiC,EAAAC,GACA,GAGA7K,GAHA8K,EAAAF,GAAA,KACAG,EAAAF,GAAA7P,EAAAwP,eAGA,QAAAO,GACA,IAAA/P,GAAAwP,gBACAxK,EAAA5F,KAAA4Q,kBACA,MACA,KAAAhQ,GAAAyP,eACAzK,EAAA5F,KAAA6Q,iBACA,MACA,SACA,SAAAxM,OAAA,+BAGA,GAAAtC,GAAA/B,KAAA+B,UACA6D,GAAAU,IAAA,SAAAnE,GACA,GAAAO,GAAA,OAAAP,EAAAO,OAAA,KAAA1C,KAAAoB,SAAA0M,GAAA3L,EAAAO,OAEA,OADAA,GAAA1B,EAAAuL,iBAAAxK,EAAAW,EAAA1C,KAAAkP,gBAEAxM,SACAH,cAAAJ,EAAAI,cACAE,gBAAAN,EAAAM,gBACAI,aAAAV,EAAAU,aACAC,eAAAX,EAAAW,eACAC,KAAA,OAAAZ,EAAAY,KAAA,KAAA/C,KAAAsB,OAAAwM,GAAA3L,EAAAY,QAEK/C,MAAAkD,QAAAqL,EAAAmC,IAyBL9P,EAAAe,UAAAmP,yBACA,SAAAhQ,GACA,GAAAwB,GAAAtB,EAAAC,OAAAH,EAAA,QAMAiQ,GACArO,OAAA1B,EAAAC,OAAAH,EAAA,UACA+B,aAAAP,EACAQ,eAAA9B,EAAAC,OAAAH,EAAA,YAIA,IADAiQ,EAAArO,OAAA1C,KAAAgR,iBAAAD,EAAArO,QACAqO,EAAArO,OAAA,EACA,QAGA,IAAAkD,MAEAqF,EAAAjL,KAAAiR,aAAAF,EACA/Q,KAAA6Q,kBACA,eACA,iBACA7P,EAAA0K,2BACAiE,EAAAY,kBACA,IAAAtF,GAAA,GACA,GAAA9I,GAAAnC,KAAA6Q,kBAAA5F,EAEA,IAAAiG,SAAApQ,EAAA0B,OAOA,IANA,GAAAK,GAAAV,EAAAU,aAMAV,KAAAU,kBACA+C,EAAAgI,MACAtL,KAAAtB,EAAAC,OAAAkB,EAAA,sBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,wBACAgP,WAAAnQ,EAAAC,OAAAkB,EAAA,8BAGAA,EAAAnC,KAAA6Q,oBAAA5F,OASA,KANA,GAAAnI,GAAAX,EAAAW,eAMAX,GACAA,EAAAU,eAAAP,GACAH,EAAAW,mBACA8C,EAAAgI,MACAtL,KAAAtB,EAAAC,OAAAkB,EAAA,sBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,wBACAgP,WAAAnQ,EAAAC,OAAAkB,EAAA,8BAGAA,EAAAnC,KAAA6Q,oBAAA5F,GAKA,MAAArF,IAGAhG,EAAAgB,oBAgGAoO,EAAArN,UAAAmC,OAAAC,OAAAnD,EAAAe,WACAqN,EAAArN,UAAA+N,SAAA9O,EAMAoO,EAAArN,UAAAqP,iBAAA,SAAAnM,GACA,GAAAuM,GAAAvM,CAKA,IAJA,MAAA7E,KAAA+B,aACAqP,EAAApQ,EAAA2B,SAAA3C,KAAA+B,WAAAqP,IAGApR,KAAAoB,SAAAiC,IAAA+N,GACA,MAAApR,MAAAoB,SAAA8E,QAAAkL,EAKA,IAAAtL,EACA,KAAAA,EAAA,EAAaA,EAAA9F,KAAAiP,iBAAA/K,SAAkC4B,EAC/C,GAAA9F,KAAAiP,iBAAAnJ,IAAAjB,EACA,MAAAiB,EAIA,WAYAkJ,EAAAnN,cACA,SAAA8M,EAAAC,GACA,GAAAyC,GAAAvN,OAAAC,OAAAiL,EAAArN,WAEAgF,EAAA0K,EAAA/P,OAAAD,EAAA8L,UAAAwB,EAAArN,OAAAuE,WAAA,GACA5C,EAAAoO,EAAAjQ,SAAAC,EAAA8L,UAAAwB,EAAAvN,SAAAyE,WAAA,EACAwL,GAAAtP,WAAA4M,EAAAzN,YACAmQ,EAAAzK,eAAA+H,EAAAxI,wBAAAkL,EAAAjQ,SAAAyE,UACAwL,EAAAtP,YACAsP,EAAApP,KAAA0M,EAAA5N,MACAsQ,EAAAnC,cAAAN,EACAyC,EAAApC,iBAAAoC,EAAAjQ,SAAAyE,UAAAS,IAAA,SAAAiF,GACA,MAAAvK,GAAAuL,iBAAA8E,EAAAtP,WAAAwJ,EAAAqD,IAYA,QAJA0C,GAAA3C,EAAApN,UAAAsE,UAAAsF,QACAoG,EAAAF,EAAAxB,uBACA2B,EAAAH,EAAAnB,sBAEApK,EAAA,EAAA5B,EAAAoN,EAAApN,OAAsD4B,EAAA5B,EAAY4B,IAAA,CAClE,GAAA2L,GAAAH,EAAAxL,GACA4L,EAAA,GAAAvC,EACAuC,GAAAnP,cAAAkP,EAAAlP,cACAmP,EAAAjP,gBAAAgP,EAAAhP,gBAEAgP,EAAA/O,SACAgP,EAAAhP,OAAAO,EAAAiD,QAAAuL,EAAA/O,QACAgP,EAAA7O,aAAA4O,EAAA5O,aACA6O,EAAA5O,eAAA2O,EAAA3O,eAEA2O,EAAA1O,OACA2O,EAAA3O,KAAA4D,EAAAT,QAAAuL,EAAA1O,OAGAyO,EAAA5D,KAAA8D,IAGAH,EAAA3D,KAAA8D,GAKA,MAFA9B,GAAAyB,EAAAnB,mBAAAlP,EAAA0K,4BAEA2F,GAMArC,EAAArN,UAAAC,SAAA,EAKAkC,OAAAgM,eAAAd,EAAArN,UAAA,WACAkM,IAAA,WACA,MAAA7N,MAAAiP,iBAAA9D,WAqBA6D,EAAArN,UAAAsO,eACA,SAAArI,EAAAvB,GAeA,IAdA,GAYAlE,GAAAkK,EAAAsF,EAAAC,EAAAxJ,EAZA7F,EAAA,EACA8C,EAAA,EACAG,EAAA,EACAD,EAAA,EACAG,EAAA,EACAD,EAAA,EACAvB,EAAA0D,EAAA1D,OACA+G,EAAA,EACA4G,KACAC,KACAC,KACAT,KAGArG,EAAA/G,GACA,SAAA0D,EAAAO,OAAA8C,GACA1I,IACA0I,IACA5F,EAAA,MAEA,UAAAuC,EAAAO,OAAA8C,GACAA,QAEA,CASA,IARA9I,EAAA,GAAAgN,GACAhN,EAAAI,gBAOAqP,EAAA3G,EAAyB2G,EAAA1N,IACzBlE,KAAAmQ,wBAAAvI,EAAAgK,GADuCA,KAQvC,GAHAvF,EAAAzE,EAAAuD,MAAAF,EAAA2G,GAEAD,EAAAE,EAAAxF,GAEApB,GAAAoB,EAAAnI,WACS,CAET,IADAyN,KACA1G,EAAA2G,GACAlQ,EAAAiG,OAAAC,EAAAqD,EAAA6G,GACA1J,EAAA0J,EAAA1J,MACA6C,EAAA6G,EAAAzJ,KACAsJ,EAAA/D,KAAAxF,EAGA,QAAAuJ,EAAAzN,OACA,SAAAG,OAAA,yCAGA,QAAAsN,EAAAzN,OACA,SAAAG,OAAA,yCAGAwN,GAAAxF,GAAAsF,EAIAxP,EAAAM,gBAAA4C,EAAAsM,EAAA,GACAtM,EAAAlD,EAAAM,gBAEAkP,EAAAzN,OAAA,IAEA/B,EAAAO,OAAAgD,EAAAiM,EAAA,GACAjM,GAAAiM,EAAA,GAGAxP,EAAAU,aAAA2C,EAAAmM,EAAA,GACAnM,EAAArD,EAAAU,aAEAV,EAAAU,cAAA,EAGAV,EAAAW,eAAAyC,EAAAoM,EAAA,GACApM,EAAApD,EAAAW,eAEA6O,EAAAzN,OAAA,IAEA/B,EAAAY,KAAA0C,EAAAkM,EAAA,GACAlM,GAAAkM,EAAA,KAIAL,EAAA1D,KAAAzL,GACA,gBAAAA,GAAAU,cACAkP,EAAAnE,KAAAzL,GAKAyN,EAAA0B,EAAAtQ,EAAAgL,qCACAhM,KAAA6P,oBAAAyB,EAEA1B,EAAAmC,EAAA/Q,EAAA0K,4BACA1L,KAAAkQ,mBAAA6B,GAOA/C,EAAArN,UAAAsP,aACA,SAAAe,EAAAC,EAAAC,EACAC,EAAAC,EAAAC,GAMA,GAAAL,EAAAE,IAAA,EACA,SAAAzJ,WAAA,gDACAuJ,EAAAE,GAEA,IAAAF,EAAAG,GAAA,EACA,SAAA1J,WAAA,kDACAuJ,EAAAG,GAGA,OAAAxC,GAAA2C,OAAAN,EAAAC,EAAAG,EAAAC,IAOArD,EAAArN,UAAA4Q,mBACA,WACA,OAAAtH,GAAA,EAAuBA,EAAAjL,KAAA4Q,mBAAA1M,SAAwC+G,EAAA,CAC/D,GAAA9I,GAAAnC,KAAA4Q,mBAAA3F,EAMA,IAAAA,EAAA,EAAAjL,KAAA4Q,mBAAA1M,OAAA,CACA,GAAAsO,GAAAxS,KAAA4Q,mBAAA3F,EAAA,EAEA,IAAA9I,EAAAI,gBAAAiQ,EAAAjQ,cAAA,CACAJ,EAAAsQ,oBAAAD,EAAA/P,gBAAA,CACA,WAKAN,EAAAsQ,oBAAAC,MA4BA1D,EAAArN,UAAA8C,oBACA,SAAA3D,GACA,GAAAiQ,IACAxO,cAAAvB,EAAAC,OAAAH,EAAA,QACA2B,gBAAAzB,EAAAC,OAAAH,EAAA,WAGAmK,EAAAjL,KAAAiR,aACAF,EACA/Q,KAAA4Q,mBACA,gBACA,kBACA5P,EAAAgL,oCACAhL,EAAAC,OAAAH,EAAA,OAAAF,EAAA0P,sBAGA,IAAArF,GAAA,GACA,GAAA9I,GAAAnC,KAAA4Q,mBAAA3F,EAEA,IAAA9I,EAAAI,gBAAAwO,EAAAxO,cAAA,CACA,GAAAG,GAAA1B,EAAAC,OAAAkB,EAAA,cACA,QAAAO,IACAA,EAAA1C,KAAAoB,SAAA0M,GAAApL,GACAA,EAAA1B,EAAAuL,iBAAAvM,KAAA+B,WAAAW,EAAA1C,KAAAkP,eAEA,IAAAnM,GAAA/B,EAAAC,OAAAkB,EAAA,YAIA,OAHA,QAAAY,IACAA,EAAA/C,KAAAsB,OAAAwM,GAAA/K,KAGAL,SACAJ,KAAAtB,EAAAC,OAAAkB,EAAA,qBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,uBACAY,SAKA,OACAL,OAAA,KACAJ,KAAA,KACAE,OAAA,KACAO,KAAA,OAQAiM,EAAArN,UAAAgR,wBACA,WACA,QAAA3S,KAAA4G,iBAGA5G,KAAA4G,eAAA1C,QAAAlE,KAAAoB,SAAAmM,SACAvN,KAAA4G,eAAAgM,KAAA,SAAAC,GAA+C,aAAAA,MAQ/C7D,EAAArN,UAAA6B,iBACA,SAAAqB,EAAAiO,GACA,IAAA9S,KAAA4G,eACA,WAGA,IAAAqE,GAAAjL,KAAAgR,iBAAAnM,EACA,IAAAoG,GAAA,EACA,MAAAjL,MAAA4G,eAAAqE,EAGA,IAAAmG,GAAAvM,CACA,OAAA7E,KAAA+B,aACAqP,EAAApQ,EAAA2B,SAAA3C,KAAA+B,WAAAqP,GAGA,IAAAlH,EACA,UAAAlK,KAAA+B,aACAmI,EAAAlJ,EAAAuI,SAAAvJ,KAAA+B,aAAA,CAKA,GAAAgR,GAAA3B,EAAArG,QAAA,gBACA,YAAAb,EAAAP,QACA3J,KAAAoB,SAAAiC,IAAA0P,GACA,MAAA/S,MAAA4G,eAAA5G,KAAAoB,SAAA8E,QAAA6M,GAGA,MAAA7I,EAAAH,MAAA,KAAAG,EAAAH,OACA/J,KAAAoB,SAAAiC,IAAA,IAAA+N,GACA,MAAApR,MAAA4G,eAAA5G,KAAAoB,SAAA8E,QAAA,IAAAkL,IAQA,GAAA0B,EACA,WAGA,UAAAzO,OAAA,IAAA+M,EAAA,+BA2BApC,EAAArN,UAAAqR,qBACA,SAAAlS,GACA,GAAA4B,GAAA1B,EAAAC,OAAAH,EAAA,SAEA,IADA4B,EAAA1C,KAAAgR,iBAAAtO,GACAA,EAAA,EACA,OACAJ,KAAA,KACAE,OAAA,KACA2O,WAAA,KAIA,IAAAJ,IACArO,SACAG,aAAA7B,EAAAC,OAAAH,EAAA,QACAgC,eAAA9B,EAAAC,OAAAH,EAAA,WAGAmK,EAAAjL,KAAAiR,aACAF,EACA/Q,KAAA6Q,kBACA,eACA,iBACA7P,EAAA0K,2BACA1K,EAAAC,OAAAH,EAAA,OAAAF,EAAA0P,sBAGA,IAAArF,GAAA,GACA,GAAA9I,GAAAnC,KAAA6Q,kBAAA5F,EAEA,IAAA9I,EAAAO,SAAAqO,EAAArO,OACA,OACAJ,KAAAtB,EAAAC,OAAAkB,EAAA,sBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,wBACAgP,WAAAnQ,EAAAC,OAAAkB,EAAA,6BAKA,OACAG,KAAA,KACAE,OAAA,KACA2O,WAAA,OAIAvR,EAAAoP,yBAmGAD,EAAApN,UAAAmC,OAAAC,OAAAnD,EAAAe,WACAoN,EAAApN,UAAAsR,YAAArS,EAKAmO,EAAApN,UAAAC,SAAA,EAKAkC,OAAAgM,eAAAf,EAAApN,UAAA,WACAkM,IAAA,WAEA,OADA5K,MACA6C,EAAA,EAAmBA,EAAA9F,KAAAqP,UAAAnL,OAA2B4B,IAC9C,OAAAoN,GAAA,EAAqBA,EAAAlT,KAAAqP,UAAAvJ,GAAA4J,SAAAzM,QAAAiB,OAA+CgP,IACpEjQ,EAAA2K,KAAA5N,KAAAqP,UAAAvJ,GAAA4J,SAAAzM,QAAAiQ,GAGA,OAAAjQ,MAuBA8L,EAAApN,UAAA8C,oBACA,SAAA3D,GACA,GAAAiQ,IACAxO,cAAAvB,EAAAC,OAAAH,EAAA,QACA2B,gBAAAzB,EAAAC,OAAAH,EAAA,WAKAqS,EAAAxD,EAAA2C,OAAAvB,EAAA/Q,KAAAqP,UACA,SAAA0B,EAAAqC,GACA,GAAAtH,GAAAiF,EAAAxO,cAAA6Q,EAAA3D,gBAAAlN,aACA,OAAAuJ,GACAA,EAGAiF,EAAAtO,gBACA2Q,EAAA3D,gBAAAhN,kBAEA2Q,EAAApT,KAAAqP,UAAA8D,EAEA,OAAAC,GASAA,EAAA1D,SAAAjL,qBACAnC,KAAAyO,EAAAxO,eACA6Q,EAAA3D,gBAAAlN,cAAA,GACAC,OAAAuO,EAAAtO,iBACA2Q,EAAA3D,gBAAAlN,gBAAAwO,EAAAxO,cACA6Q,EAAA3D,gBAAAhN,gBAAA,EACA,GACA4Q,KAAAvS,EAAAuS,QAdA3Q,OAAA,KACAJ,KAAA,KACAE,OAAA,KACAO,KAAA,OAmBAgM,EAAApN,UAAAgR,wBACA,WACA,MAAA3S,MAAAqP,UAAAiE,MAAA,SAAA/H,GACA,MAAAA,GAAAmE,SAAAiD,6BASA5D,EAAApN,UAAA6B,iBACA,SAAAqB,EAAAiO,GACA,OAAAhN,GAAA,EAAmBA,EAAA9F,KAAAqP,UAAAnL,OAA2B4B,IAAA,CAC9C,GAAAsN,GAAApT,KAAAqP,UAAAvJ,GAEAvC,EAAA6P,EAAA1D,SAAAlM,iBAAAqB,GAAA,EACA,IAAAtB,EACA,MAAAA,GAGA,GAAAuP,EACA,WAGA,UAAAzO,OAAA,IAAAQ,EAAA,+BAsBAkK,EAAApN,UAAAqR,qBACA,SAAAlS,GACA,OAAAgF,GAAA,EAAmBA,EAAA9F,KAAAqP,UAAAnL,OAA2B4B,IAAA,CAC9C,GAAAsN,GAAApT,KAAAqP,UAAAvJ,EAIA,IAAAsN,EAAA1D,SAAAsB,iBAAAhQ,EAAAC,OAAAH,EAAA,iBAGA,GAAAyS,GAAAH,EAAA1D,SAAAsD,qBAAAlS,EACA,IAAAyS,EAAA,CACA,GAAAC,IACAlR,KAAAiR,EAAAjR,MACA8Q,EAAA3D,gBAAAlN,cAAA,GACAC,OAAA+Q,EAAA/Q,QACA4Q,EAAA3D,gBAAAlN,gBAAAgR,EAAAjR,KACA8Q,EAAA3D,gBAAAhN,gBAAA,EACA,GAEA,OAAA+Q,KAIA,OACAlR,KAAA,KACAE,OAAA,OASAuM,EAAApN,UAAAsO,eACA,SAAArI,EAAAvB,GACArG,KAAA6P,uBACA7P,KAAAkQ,qBACA,QAAApK,GAAA,EAAmBA,EAAA9F,KAAAqP,UAAAnL,OAA2B4B,IAG9C,OAFAsN,GAAApT,KAAAqP,UAAAvJ,GACA2N,EAAAL,EAAA1D,SAAAkB,mBACAsC,EAAA,EAAqBA,EAAAO,EAAAvP,OAA4BgP,IAAA,CACjD,GAAA/Q,GAAAsR,EAAAP,GAEAxQ,EAAA0Q,EAAA1D,SAAAtO,SAAA0M,GAAA3L,EAAAO,OACAA,GAAA1B,EAAAuL,iBAAA6G,EAAA1D,SAAA3N,WAAAW,EAAA1C,KAAAkP,eACAlP,KAAAoB,SAAAkC,IAAAZ,GACAA,EAAA1C,KAAAoB,SAAA8E,QAAAxD,EAEA,IAAAK,GAAA,IACAZ,GAAAY,OACAA,EAAAqQ,EAAA1D,SAAApO,OAAAwM,GAAA3L,EAAAY,MACA/C,KAAAsB,OAAAgC,IAAAP,GACAA,EAAA/C,KAAAsB,OAAA4E,QAAAnD,GAOA,IAAA2Q,IACAhR,SACAH,cAAAJ,EAAAI,eACA6Q,EAAA3D,gBAAAlN,cAAA,GACAE,gBAAAN,EAAAM,iBACA2Q,EAAA3D,gBAAAlN,gBAAAJ,EAAAI,cACA6Q,EAAA3D,gBAAAhN,gBAAA,EACA,GACAI,aAAAV,EAAAU,aACAC,eAAAX,EAAAW,eACAC,OAGA/C,MAAA6P,oBAAAjC,KAAA8F,GACA,gBAAAA,GAAA7Q,cACA7C,KAAAkQ,mBAAAtC,KAAA8F,GAKA9D,EAAA5P,KAAA6P,oBAAA7O,EAAAgL,qCACA4D,EAAA5P,KAAAkQ,mBAAAlP,EAAA0K,6BAGA9L,EAAAmP,4BTu5CM,SAAUlP,EAAQD,GUx/ExB,QAAA+T,GAAAC,EAAAC,EAAA7B,EAAA8B,EAAAC,EAAA1B,GAUA,GAAA2B,GAAAC,KAAAC,OAAAL,EAAAD,GAAA,GAAAA,EACA9H,EAAAiI,EAAA/B,EAAA8B,EAAAE,IAAA,EACA,YAAAlI,EAEAkI,EAEAlI,EAAA,EAEA+H,EAAAG,EAAA,EAEAL,EAAAK,EAAAH,EAAA7B,EAAA8B,EAAAC,EAAA1B,GAKAA,GAAAzS,EAAA2Q,kBACAsD,EAAAC,EAAA5P,OAAA2P,GAAA,EAEAG,EAKAA,EAAAJ,EAAA,EAEAD,EAAAC,EAAAI,EAAAhC,EAAA8B,EAAAC,EAAA1B,GAIAA,GAAAzS,EAAA2Q,kBACAyD,EAEAJ,EAAA,KAAAA,EA1DAhU,EAAA0Q,qBAAA,EACA1Q,EAAA2Q,kBAAA,EAgFA3Q,EAAA0S,OAAA,SAAAN,EAAA8B,EAAAC,EAAA1B,GACA,OAAAyB,EAAA5P,OACA,QAGA,IAAA+G,GAAA0I,GAAA,EAAAG,EAAA5P,OAAA8N,EAAA8B,EACAC,EAAA1B,GAAAzS,EAAA0Q,qBACA,IAAArF,EAAA,EACA,QAMA,MAAAA,EAAA,MACA,IAAA8I,EAAAD,EAAA7I,GAAA6I,EAAA7I,EAAA,UAGAA,CAGA,OAAAA,KVuhFM,SAAUpL,EAAQD,GWzmFxB,QAAAuU,GAAAC,EAAAC,EAAAC,GACA,GAAAxC,GAAAsC,EAAAC,EACAD,GAAAC,GAAAD,EAAAE,GACAF,EAAAE,GAAAxC,EAWA,QAAAyC,GAAAC,EAAAC,GACA,MAAAR,MAAAS,MAAAF,EAAAP,KAAAU,UAAAF,EAAAD,IAeA,QAAAI,GAAAR,EAAAS,EAAAnU,EAAAoU,GAKA,GAAApU,EAAAoU,EAAA,CAYA,GAAAC,GAAAR,EAAA7T,EAAAoU,GACAhP,EAAApF,EAAA,CAEAyT,GAAAC,EAAAW,EAAAD,EASA,QARAE,GAAAZ,EAAAU,GAQA5B,EAAAxS,EAAmBwS,EAAA4B,EAAO5B,IAC1B2B,EAAAT,EAAAlB,GAAA8B,IAAA,IACAlP,GAAA,EACAqO,EAAAC,EAAAtO,EAAAoN,GAIAiB,GAAAC,EAAAtO,EAAA,EAAAoN,EACA,IAAA+B,GAAAnP,EAAA,CAIA8O,GAAAR,EAAAS,EAAAnU,EAAAuU,EAAA,GACAL,EAAAR,EAAAS,EAAAI,EAAA,EAAAH,IAYAlV,EAAAgQ,UAAA,SAAAwE,EAAAS,GACAD,EAAAR,EAAAS,EAAA,EAAAT,EAAAlQ,OAAA,KX4oFM,SAAUrE,EAAQD,EAASM,GY1tFjC,QAAAW,GAAAqU,EAAAC,EAAAtQ,EAAAuQ,EAAAtQ,GACA9E,KAAAqV,YACArV,KAAAsV,kBACAtV,KAAAsC,KAAA,MAAA4S,EAAA,KAAAA,EACAlV,KAAAwC,OAAA,MAAA2S,EAAA,KAAAA,EACAnV,KAAA0C,OAAA,MAAAmC,EAAA,KAAAA,EACA7E,KAAA+C,KAAA,MAAA+B,EAAA,KAAAA,EACA9E,KAAAuV,IAAA,EACA,MAAAH,GAAApV,KAAAsD,IAAA8R,GAnCA,GAAAzU,GAAAT,EAAA,GAAAS,mBACAK,EAAAd,EAAA,GAIAsV,EAAA,UAGAC,EAAA,GAKAF,EAAA,oBAiCA1U,GAAA6U,wBACA,SAAAC,EAAA7T,EAAA8T,GA+FA,QAAAC,GAAA1T,EAAA2T,GACA,UAAA3T,GAAA+O,SAAA/O,EAAAO,OACAqT,EAAAzS,IAAAwS,OACO,CACP,GAAApT,GAAAkT,EACA5U,EAAA0D,KAAAkR,EAAAzT,EAAAO,QACAP,EAAAO,MACAqT,GAAAzS,IAAA,GAAAzC,GAAAsB,EAAAU,aACAV,EAAAW,eACAJ,EACAoT,EACA3T,EAAAY,QAvGA,GAAAgT,GAAA,GAAAlV,GAMAmV,EAAAL,EAAApN,MAAAiN,GACAS,EAAA,EACAC,EAAA,WAMA,QAAAC,KACA,MAAAF,GAAAD,EAAA9R,OACA8R,EAAAC,KAAA/E,OAPA,GAAAkF,GAAAD,IAEAE,EAAAF,KAAA,EACA,OAAAC,GAAAC,GASAC,EAAA,EAAA7D,EAAA,EAKA8D,EAAA,IAgEA,OA9DAzU,GAAAI,YAAA,SAAAC,GACA,UAAAoU,EAAA,CAGA,KAAAD,EAAAnU,EAAAI,eAMS,CAIT,GAAAiU,GAAAR,EAAAC,IAAA,GACAH,EAAAU,EAAAnL,OAAA,EAAAlJ,EAAAM,gBACAgQ,EAOA,OANAuD,GAAAC,GAAAO,EAAAnL,OAAAlJ,EAAAM,gBACAgQ,GACAA,EAAAtQ,EAAAM,gBACAoT,EAAAU,EAAAT,QAEAS,EAAApU,GAhBA0T,EAAAU,EAAAL,KACAI,IACA7D,EAAA,EAqBA,KAAA6D,EAAAnU,EAAAI,eACAwT,EAAAzS,IAAA4S,KACAI,GAEA,IAAA7D,EAAAtQ,EAAAM,gBAAA,CACA,GAAA+T,GAAAR,EAAAC,IAAA,EACAF,GAAAzS,IAAAkT,EAAAnL,OAAA,EAAAlJ,EAAAM,kBACAuT,EAAAC,GAAAO,EAAAnL,OAAAlJ,EAAAM,iBACAgQ,EAAAtQ,EAAAM,gBAEA8T,EAAApU,GACKnC,MAELiW,EAAAD,EAAA9R,SACAqS,GAEAV,EAAAU,EAAAL,KAGAH,EAAAzS,IAAA0S,EAAAvL,OAAAwL,GAAAvR,KAAA,MAIA5C,EAAAmB,QAAAC,QAAA,SAAAC,GACA,GAAAI,GAAAzB,EAAA0B,iBAAAL,EACA,OAAAI,IACA,MAAAqS,IACAzS,EAAAnC,EAAA0D,KAAAkR,EAAAzS,IAEA4S,EAAAtS,iBAAAN,EAAAI,MAIAwS,GAwBAlV,EAAAc,UAAA2B,IAAA,SAAAmT,GACA,GAAArL,MAAAsL,QAAAD,GACAA,EAAAvT,QAAA,SAAAyT,GACA3W,KAAAsD,IAAAqT,IACK3W,UAEL,KAAAyW,EAAAlB,IAAA,gBAAAkB,GAMA,SAAAhO,WACA,8EAAAgO,EANAA,IACAzW,KAAAqV,SAAAzH,KAAA6I,GAQA,MAAAzW,OASAa,EAAAc,UAAAiV,QAAA,SAAAH,GACA,GAAArL,MAAAsL,QAAAD,GACA,OAAA3Q,GAAA2Q,EAAAvS,OAAA,EAAiC4B,GAAA,EAAQA,IACzC9F,KAAA4W,QAAAH,EAAA3Q,QAGA,KAAA2Q,EAAAlB,IAAA,gBAAAkB,GAIA,SAAAhO,WACA,8EAAAgO,EAJAzW,MAAAqV,SAAAwB,QAAAJ,GAOA,MAAAzW,OAUAa,EAAAc,UAAAmV,KAAA,SAAAC,GAEA,OADAJ,GACA7Q,EAAA,EAAAC,EAAA/F,KAAAqV,SAAAnR,OAA6C4B,EAAAC,EAASD,IACtD6Q,EAAA3W,KAAAqV,SAAAvP,GACA6Q,EAAApB,GACAoB,EAAAG,KAAAC,GAGA,KAAAJ,GACAI,EAAAJ,GAAoBjU,OAAA1C,KAAA0C,OACpBJ,KAAAtC,KAAAsC,KACAE,OAAAxC,KAAAwC,OACAO,KAAA/C,KAAA+C,QAYAlC,EAAAc,UAAA+C,KAAA,SAAAsS,GACA,GAAAC,GACAnR,EACAC,EAAA/F,KAAAqV,SAAAnR,MACA,IAAA6B,EAAA,GAEA,IADAkR,KACAnR,EAAA,EAAeA,EAAAC,EAAA,EAAWD,IAC1BmR,EAAArJ,KAAA5N,KAAAqV,SAAAvP,IACAmR,EAAArJ,KAAAoJ,EAEAC,GAAArJ,KAAA5N,KAAAqV,SAAAvP,IACA9F,KAAAqV,SAAA4B,EAEA,MAAAjX,OAUAa,EAAAc,UAAAuV,aAAA,SAAAC,EAAAC,GACA,GAAAC,GAAArX,KAAAqV,SAAArV,KAAAqV,SAAAnR,OAAA,EAUA,OATAmT,GAAA9B,GACA8B,EAAAH,aAAAC,EAAAC,GAEA,gBAAAC,GACArX,KAAAqV,SAAArV,KAAAqV,SAAAnR,OAAA,GAAAmT,EAAAtM,QAAAoM,EAAAC,GAGApX,KAAAqV,SAAAzH,KAAA,GAAA7C,QAAAoM,EAAAC,IAEApX,MAUAa,EAAAc,UAAA8B,iBACA,SAAAG,EAAAC,GACA7D,KAAAsV,eAAAtU,EAAAgD,YAAAJ,IAAAC,GASAhD,EAAAc,UAAA2V,mBACA,SAAAP,GACA,OAAAjR,GAAA,EAAAC,EAAA/F,KAAAqV,SAAAnR,OAA+C4B,EAAAC,EAASD,IACxD9F,KAAAqV,SAAAvP,GAAAyP,IACAvV,KAAAqV,SAAAvP,GAAAwR,mBAAAP,EAKA,QADA9T,GAAAa,OAAAG,KAAAjE,KAAAsV,gBACAxP,EAAA,EAAAC,EAAA9C,EAAAiB,OAAyC4B,EAAAC,EAASD,IAClDiR,EAAA/V,EAAAyK,cAAAxI,EAAA6C,IAAA9F,KAAAsV,eAAArS,EAAA6C,MAQAjF,EAAAc,UAAAkF,SAAA,WACA,GAAAwF,GAAA,EAIA,OAHArM,MAAA8W,KAAA,SAAAH,GACAtK,GAAAsK,IAEAtK,GAOAxL,EAAAc,UAAA4V,sBAAA,SAAAzW,GACA,GAAAuB,IACAyT,KAAA,GACAxT,KAAA,EACAE,OAAA,GAEA8D,EAAA,GAAA3F,GAAAG,GACA0W,GAAA,EACAC,EAAA,KACAC,EAAA,KACAC,EAAA,KACAC,EAAA,IAqEA,OApEA5X,MAAA8W,KAAA,SAAAH,EAAA/T,GACAP,EAAAyT,MAAAa,EACA,OAAA/T,EAAAF,QACA,OAAAE,EAAAN,MACA,OAAAM,EAAAJ,QACAiV,IAAA7U,EAAAF,QACAgV,IAAA9U,EAAAN,MACAqV,IAAA/U,EAAAJ,QACAoV,IAAAhV,EAAAG,MACAuD,EAAAtD,YACAN,OAAAE,EAAAF,OACAE,UACAN,KAAAM,EAAAN,KACAE,OAAAI,EAAAJ,QAEAH,WACAC,KAAAD,EAAAC,KACAE,OAAAH,EAAAG,QAEAO,KAAAH,EAAAG,OAGA0U,EAAA7U,EAAAF,OACAgV,EAAA9U,EAAAN,KACAqV,EAAA/U,EAAAJ,OACAoV,EAAAhV,EAAAG,KACAyU,GAAA,GACKA,IACLlR,EAAAtD,YACAX,WACAC,KAAAD,EAAAC,KACAE,OAAAH,EAAAG,UAGAiV,EAAA,KACAD,GAAA,EAEA,QAAA7J,GAAA,EAAAzJ,EAAAyS,EAAAzS,OAA4CyJ,EAAAzJ,EAAcyJ,IAC1DgJ,EAAAzO,WAAAyF,KAAA8H,GACApT,EAAAC,OACAD,EAAAG,OAAA,EAEAmL,EAAA,IAAAzJ,GACAuT,EAAA,KACAD,GAAA,GACSA,GACTlR,EAAAtD,YACAN,OAAAE,EAAAF,OACAE,UACAN,KAAAM,EAAAN,KACAE,OAAAI,EAAAJ,QAEAH,WACAC,KAAAD,EAAAC,KACAE,OAAAH,EAAAG,QAEAO,KAAAH,EAAAG,QAIAV,EAAAG,WAIAxC,KAAAsX,mBAAA,SAAAnU,EAAA0U,GACAvR,EAAA7C,iBAAAN,EAAA0U,MAGU/B,KAAAzT,EAAAyT,KAAAxP,QAGV1G,EAAAiB","file":"source-map.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/*\n\t * Copyright 2009-2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE.txt or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\texports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\texports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;\n\texports.SourceNode = __webpack_require__(10).SourceNode;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar base64VLQ = __webpack_require__(2);\n\tvar util = __webpack_require__(4);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar MappingList = __webpack_require__(6).MappingList;\n\t\n\t/**\n\t * An instance of the SourceMapGenerator represents a source map which is\n\t * being built incrementally. You may pass an object with the following\n\t * properties:\n\t *\n\t *   - file: The filename of the generated source.\n\t *   - sourceRoot: A root for all relative URLs in this source map.\n\t */\n\tfunction SourceMapGenerator(aArgs) {\n\t  if (!aArgs) {\n\t    aArgs = {};\n\t  }\n\t  this._file = util.getArg(aArgs, 'file', null);\n\t  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n\t  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t  this._mappings = new MappingList();\n\t  this._sourcesContents = null;\n\t}\n\t\n\tSourceMapGenerator.prototype._version = 3;\n\t\n\t/**\n\t * Creates a new SourceMapGenerator based on a SourceMapConsumer\n\t *\n\t * @param aSourceMapConsumer The SourceMap.\n\t */\n\tSourceMapGenerator.fromSourceMap =\n\t  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n\t    var sourceRoot = aSourceMapConsumer.sourceRoot;\n\t    var generator = new SourceMapGenerator({\n\t      file: aSourceMapConsumer.file,\n\t      sourceRoot: sourceRoot\n\t    });\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      var newMapping = {\n\t        generated: {\n\t          line: mapping.generatedLine,\n\t          column: mapping.generatedColumn\n\t        }\n\t      };\n\t\n\t      if (mapping.source != null) {\n\t        newMapping.source = mapping.source;\n\t        if (sourceRoot != null) {\n\t          newMapping.source = util.relative(sourceRoot, newMapping.source);\n\t        }\n\t\n\t        newMapping.original = {\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        };\n\t\n\t        if (mapping.name != null) {\n\t          newMapping.name = mapping.name;\n\t        }\n\t      }\n\t\n\t      generator.addMapping(newMapping);\n\t    });\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var sourceRelative = sourceFile;\n\t      if (sourceRoot !== null) {\n\t        sourceRelative = util.relative(sourceRoot, sourceFile);\n\t      }\n\t\n\t      if (!generator._sources.has(sourceRelative)) {\n\t        generator._sources.add(sourceRelative);\n\t      }\n\t\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        generator.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t    return generator;\n\t  };\n\t\n\t/**\n\t * Add a single mapping from original source line and column to the generated\n\t * source's line and column for this source map being created. The mapping\n\t * object should have the following properties:\n\t *\n\t *   - generated: An object with the generated line and column positions.\n\t *   - original: An object with the original line and column positions.\n\t *   - source: The original source file (relative to the sourceRoot).\n\t *   - name: An optional original token name for this mapping.\n\t */\n\tSourceMapGenerator.prototype.addMapping =\n\t  function SourceMapGenerator_addMapping(aArgs) {\n\t    var generated = util.getArg(aArgs, 'generated');\n\t    var original = util.getArg(aArgs, 'original', null);\n\t    var source = util.getArg(aArgs, 'source', null);\n\t    var name = util.getArg(aArgs, 'name', null);\n\t\n\t    if (!this._skipValidation) {\n\t      this._validateMapping(generated, original, source, name);\n\t    }\n\t\n\t    if (source != null) {\n\t      source = String(source);\n\t      if (!this._sources.has(source)) {\n\t        this._sources.add(source);\n\t      }\n\t    }\n\t\n\t    if (name != null) {\n\t      name = String(name);\n\t      if (!this._names.has(name)) {\n\t        this._names.add(name);\n\t      }\n\t    }\n\t\n\t    this._mappings.add({\n\t      generatedLine: generated.line,\n\t      generatedColumn: generated.column,\n\t      originalLine: original != null && original.line,\n\t      originalColumn: original != null && original.column,\n\t      source: source,\n\t      name: name\n\t    });\n\t  };\n\t\n\t/**\n\t * Set the source content for a source file.\n\t */\n\tSourceMapGenerator.prototype.setSourceContent =\n\t  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n\t    var source = aSourceFile;\n\t    if (this._sourceRoot != null) {\n\t      source = util.relative(this._sourceRoot, source);\n\t    }\n\t\n\t    if (aSourceContent != null) {\n\t      // Add the source content to the _sourcesContents map.\n\t      // Create a new _sourcesContents map if the property is null.\n\t      if (!this._sourcesContents) {\n\t        this._sourcesContents = Object.create(null);\n\t      }\n\t      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n\t    } else if (this._sourcesContents) {\n\t      // Remove the source file from the _sourcesContents map.\n\t      // If the _sourcesContents map is empty, set the property to null.\n\t      delete this._sourcesContents[util.toSetString(source)];\n\t      if (Object.keys(this._sourcesContents).length === 0) {\n\t        this._sourcesContents = null;\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Applies the mappings of a sub-source-map for a specific source file to the\n\t * source map being generated. Each mapping to the supplied source file is\n\t * rewritten using the supplied source map. Note: The resolution for the\n\t * resulting mappings is the minimium of this map and the supplied map.\n\t *\n\t * @param aSourceMapConsumer The source map to be applied.\n\t * @param aSourceFile Optional. The filename of the source file.\n\t *        If omitted, SourceMapConsumer's file property will be used.\n\t * @param aSourceMapPath Optional. The dirname of the path to the source map\n\t *        to be applied. If relative, it is relative to the SourceMapConsumer.\n\t *        This parameter is needed when the two source maps aren't in the same\n\t *        directory, and the source map to be applied contains relative source\n\t *        paths. If so, those relative source paths need to be rewritten\n\t *        relative to the SourceMapGenerator.\n\t */\n\tSourceMapGenerator.prototype.applySourceMap =\n\t  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n\t    var sourceFile = aSourceFile;\n\t    // If aSourceFile is omitted, we will use the file property of the SourceMap\n\t    if (aSourceFile == null) {\n\t      if (aSourceMapConsumer.file == null) {\n\t        throw new Error(\n\t          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n\t          'or the source map\\'s \"file\" property. Both were omitted.'\n\t        );\n\t      }\n\t      sourceFile = aSourceMapConsumer.file;\n\t    }\n\t    var sourceRoot = this._sourceRoot;\n\t    // Make \"sourceFile\" relative if an absolute Url is passed.\n\t    if (sourceRoot != null) {\n\t      sourceFile = util.relative(sourceRoot, sourceFile);\n\t    }\n\t    // Applying the SourceMap can add and remove items from the sources and\n\t    // the names array.\n\t    var newSources = new ArraySet();\n\t    var newNames = new ArraySet();\n\t\n\t    // Find mappings for the \"sourceFile\"\n\t    this._mappings.unsortedForEach(function (mapping) {\n\t      if (mapping.source === sourceFile && mapping.originalLine != null) {\n\t        // Check if it can be mapped by the source map, then update the mapping.\n\t        var original = aSourceMapConsumer.originalPositionFor({\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        });\n\t        if (original.source != null) {\n\t          // Copy mapping\n\t          mapping.source = original.source;\n\t          if (aSourceMapPath != null) {\n\t            mapping.source = util.join(aSourceMapPath, mapping.source)\n\t          }\n\t          if (sourceRoot != null) {\n\t            mapping.source = util.relative(sourceRoot, mapping.source);\n\t          }\n\t          mapping.originalLine = original.line;\n\t          mapping.originalColumn = original.column;\n\t          if (original.name != null) {\n\t            mapping.name = original.name;\n\t          }\n\t        }\n\t      }\n\t\n\t      var source = mapping.source;\n\t      if (source != null && !newSources.has(source)) {\n\t        newSources.add(source);\n\t      }\n\t\n\t      var name = mapping.name;\n\t      if (name != null && !newNames.has(name)) {\n\t        newNames.add(name);\n\t      }\n\t\n\t    }, this);\n\t    this._sources = newSources;\n\t    this._names = newNames;\n\t\n\t    // Copy sourcesContents of applied map.\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aSourceMapPath != null) {\n\t          sourceFile = util.join(aSourceMapPath, sourceFile);\n\t        }\n\t        if (sourceRoot != null) {\n\t          sourceFile = util.relative(sourceRoot, sourceFile);\n\t        }\n\t        this.setSourceContent(sourceFile, content);\n\t      }\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * A mapping can have one of the three levels of data:\n\t *\n\t *   1. Just the generated position.\n\t *   2. The Generated position, original position, and original source.\n\t *   3. Generated and original position, original source, as well as a name\n\t *      token.\n\t *\n\t * To maintain consistency, we validate that any new mapping being added falls\n\t * in to one of these categories.\n\t */\n\tSourceMapGenerator.prototype._validateMapping =\n\t  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n\t                                              aName) {\n\t    // When aOriginal is truthy but has empty values for .line and .column,\n\t    // it is most likely a programmer error. In this case we throw a very\n\t    // specific error message to try to guide them the right way.\n\t    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n\t    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n\t        throw new Error(\n\t            'original.line and original.column are not numbers -- you probably meant to omit ' +\n\t            'the original mapping entirely and only map the generated position. If so, pass ' +\n\t            'null for the original mapping instead of an object with empty or null values.'\n\t        );\n\t    }\n\t\n\t    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t        && aGenerated.line > 0 && aGenerated.column >= 0\n\t        && !aOriginal && !aSource && !aName) {\n\t      // Case 1.\n\t      return;\n\t    }\n\t    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n\t             && aGenerated.line > 0 && aGenerated.column >= 0\n\t             && aOriginal.line > 0 && aOriginal.column >= 0\n\t             && aSource) {\n\t      // Cases 2 and 3.\n\t      return;\n\t    }\n\t    else {\n\t      throw new Error('Invalid mapping: ' + JSON.stringify({\n\t        generated: aGenerated,\n\t        source: aSource,\n\t        original: aOriginal,\n\t        name: aName\n\t      }));\n\t    }\n\t  };\n\t\n\t/**\n\t * Serialize the accumulated mappings in to the stream of base 64 VLQs\n\t * specified by the source map format.\n\t */\n\tSourceMapGenerator.prototype._serializeMappings =\n\t  function SourceMapGenerator_serializeMappings() {\n\t    var previousGeneratedColumn = 0;\n\t    var previousGeneratedLine = 1;\n\t    var previousOriginalColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousName = 0;\n\t    var previousSource = 0;\n\t    var result = '';\n\t    var next;\n\t    var mapping;\n\t    var nameIdx;\n\t    var sourceIdx;\n\t\n\t    var mappings = this._mappings.toArray();\n\t    for (var i = 0, len = mappings.length; i < len; i++) {\n\t      mapping = mappings[i];\n\t      next = ''\n\t\n\t      if (mapping.generatedLine !== previousGeneratedLine) {\n\t        previousGeneratedColumn = 0;\n\t        while (mapping.generatedLine !== previousGeneratedLine) {\n\t          next += ';';\n\t          previousGeneratedLine++;\n\t        }\n\t      }\n\t      else {\n\t        if (i > 0) {\n\t          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n\t            continue;\n\t          }\n\t          next += ',';\n\t        }\n\t      }\n\t\n\t      next += base64VLQ.encode(mapping.generatedColumn\n\t                                 - previousGeneratedColumn);\n\t      previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t      if (mapping.source != null) {\n\t        sourceIdx = this._sources.indexOf(mapping.source);\n\t        next += base64VLQ.encode(sourceIdx - previousSource);\n\t        previousSource = sourceIdx;\n\t\n\t        // lines are stored 0-based in SourceMap spec version 3\n\t        next += base64VLQ.encode(mapping.originalLine - 1\n\t                                   - previousOriginalLine);\n\t        previousOriginalLine = mapping.originalLine - 1;\n\t\n\t        next += base64VLQ.encode(mapping.originalColumn\n\t                                   - previousOriginalColumn);\n\t        previousOriginalColumn = mapping.originalColumn;\n\t\n\t        if (mapping.name != null) {\n\t          nameIdx = this._names.indexOf(mapping.name);\n\t          next += base64VLQ.encode(nameIdx - previousName);\n\t          previousName = nameIdx;\n\t        }\n\t      }\n\t\n\t      result += next;\n\t    }\n\t\n\t    return result;\n\t  };\n\t\n\tSourceMapGenerator.prototype._generateSourcesContent =\n\t  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n\t    return aSources.map(function (source) {\n\t      if (!this._sourcesContents) {\n\t        return null;\n\t      }\n\t      if (aSourceRoot != null) {\n\t        source = util.relative(aSourceRoot, source);\n\t      }\n\t      var key = util.toSetString(source);\n\t      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n\t        ? this._sourcesContents[key]\n\t        : null;\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * Externalize the source map.\n\t */\n\tSourceMapGenerator.prototype.toJSON =\n\t  function SourceMapGenerator_toJSON() {\n\t    var map = {\n\t      version: this._version,\n\t      sources: this._sources.toArray(),\n\t      names: this._names.toArray(),\n\t      mappings: this._serializeMappings()\n\t    };\n\t    if (this._file != null) {\n\t      map.file = this._file;\n\t    }\n\t    if (this._sourceRoot != null) {\n\t      map.sourceRoot = this._sourceRoot;\n\t    }\n\t    if (this._sourcesContents) {\n\t      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n\t    }\n\t\n\t    return map;\n\t  };\n\t\n\t/**\n\t * Render the source map being generated to a string.\n\t */\n\tSourceMapGenerator.prototype.toString =\n\t  function SourceMapGenerator_toString() {\n\t    return JSON.stringify(this.toJSON());\n\t  };\n\t\n\texports.SourceMapGenerator = SourceMapGenerator;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t *  * Redistributions of source code must retain the above copyright\n\t *    notice, this list of conditions and the following disclaimer.\n\t *  * Redistributions in binary form must reproduce the above\n\t *    copyright notice, this list of conditions and the following\n\t *    disclaimer in the documentation and/or other materials provided\n\t *    with the distribution.\n\t *  * Neither the name of Google Inc. nor the names of its\n\t *    contributors may be used to endorse or promote products derived\n\t *    from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\t\n\tvar base64 = __webpack_require__(3);\n\t\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t//   Continuation\n\t//   |    Sign\n\t//   |    |\n\t//   V    V\n\t//   101011\n\t\n\tvar VLQ_BASE_SHIFT = 5;\n\t\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\t\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\t\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\t\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t  return aValue < 0\n\t    ? ((-aValue) << 1) + 1\n\t    : (aValue << 1) + 0;\n\t}\n\t\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t  var isNegative = (aValue & 1) === 1;\n\t  var shifted = aValue >> 1;\n\t  return isNegative\n\t    ? -shifted\n\t    : shifted;\n\t}\n\t\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t  var encoded = \"\";\n\t  var digit;\n\t\n\t  var vlq = toVLQSigned(aValue);\n\t\n\t  do {\n\t    digit = vlq & VLQ_BASE_MASK;\n\t    vlq >>>= VLQ_BASE_SHIFT;\n\t    if (vlq > 0) {\n\t      // There are still more digits in this value, so we must make sure the\n\t      // continuation bit is marked.\n\t      digit |= VLQ_CONTINUATION_BIT;\n\t    }\n\t    encoded += base64.encode(digit);\n\t  } while (vlq > 0);\n\t\n\t  return encoded;\n\t};\n\t\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t  var strLen = aStr.length;\n\t  var result = 0;\n\t  var shift = 0;\n\t  var continuation, digit;\n\t\n\t  do {\n\t    if (aIndex >= strLen) {\n\t      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t    }\n\t\n\t    digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t    if (digit === -1) {\n\t      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t    }\n\t\n\t    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t    digit &= VLQ_BASE_MASK;\n\t    result = result + (digit << shift);\n\t    shift += VLQ_BASE_SHIFT;\n\t  } while (continuation);\n\t\n\t  aOutParam.value = fromVLQSigned(result);\n\t  aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\t\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t  if (0 <= number && number < intToCharMap.length) {\n\t    return intToCharMap[number];\n\t  }\n\t  throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\t\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t  var bigA = 65;     // 'A'\n\t  var bigZ = 90;     // 'Z'\n\t\n\t  var littleA = 97;  // 'a'\n\t  var littleZ = 122; // 'z'\n\t\n\t  var zero = 48;     // '0'\n\t  var nine = 57;     // '9'\n\t\n\t  var plus = 43;     // '+'\n\t  var slash = 47;    // '/'\n\t\n\t  var littleOffset = 26;\n\t  var numberOffset = 52;\n\t\n\t  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t  if (bigA <= charCode && charCode <= bigZ) {\n\t    return (charCode - bigA);\n\t  }\n\t\n\t  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t  if (littleA <= charCode && charCode <= littleZ) {\n\t    return (charCode - littleA + littleOffset);\n\t  }\n\t\n\t  // 52 - 61: 0123456789\n\t  if (zero <= charCode && charCode <= nine) {\n\t    return (charCode - zero + numberOffset);\n\t  }\n\t\n\t  // 62: +\n\t  if (charCode == plus) {\n\t    return 62;\n\t  }\n\t\n\t  // 63: /\n\t  if (charCode == slash) {\n\t    return 63;\n\t  }\n\t\n\t  // Invalid base64 digit.\n\t  return -1;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t  if (aName in aArgs) {\n\t    return aArgs[aName];\n\t  } else if (arguments.length === 3) {\n\t    return aDefaultValue;\n\t  } else {\n\t    throw new Error('\"' + aName + '\" is a required argument.');\n\t  }\n\t}\n\texports.getArg = getArg;\n\t\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\t\n\tfunction urlParse(aUrl) {\n\t  var match = aUrl.match(urlRegexp);\n\t  if (!match) {\n\t    return null;\n\t  }\n\t  return {\n\t    scheme: match[1],\n\t    auth: match[2],\n\t    host: match[3],\n\t    port: match[4],\n\t    path: match[5]\n\t  };\n\t}\n\texports.urlParse = urlParse;\n\t\n\tfunction urlGenerate(aParsedUrl) {\n\t  var url = '';\n\t  if (aParsedUrl.scheme) {\n\t    url += aParsedUrl.scheme + ':';\n\t  }\n\t  url += '//';\n\t  if (aParsedUrl.auth) {\n\t    url += aParsedUrl.auth + '@';\n\t  }\n\t  if (aParsedUrl.host) {\n\t    url += aParsedUrl.host;\n\t  }\n\t  if (aParsedUrl.port) {\n\t    url += \":\" + aParsedUrl.port\n\t  }\n\t  if (aParsedUrl.path) {\n\t    url += aParsedUrl.path;\n\t  }\n\t  return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\t\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t  var path = aPath;\n\t  var url = urlParse(aPath);\n\t  if (url) {\n\t    if (!url.path) {\n\t      return aPath;\n\t    }\n\t    path = url.path;\n\t  }\n\t  var isAbsolute = exports.isAbsolute(path);\n\t\n\t  var parts = path.split(/\\/+/);\n\t  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t    part = parts[i];\n\t    if (part === '.') {\n\t      parts.splice(i, 1);\n\t    } else if (part === '..') {\n\t      up++;\n\t    } else if (up > 0) {\n\t      if (part === '') {\n\t        // The first part is blank if the path is absolute. Trying to go\n\t        // above the root is a no-op. Therefore we can remove all '..' parts\n\t        // directly after the root.\n\t        parts.splice(i + 1, up);\n\t        up = 0;\n\t      } else {\n\t        parts.splice(i, 2);\n\t        up--;\n\t      }\n\t    }\n\t  }\n\t  path = parts.join('/');\n\t\n\t  if (path === '') {\n\t    path = isAbsolute ? '/' : '.';\n\t  }\n\t\n\t  if (url) {\n\t    url.path = path;\n\t    return urlGenerate(url);\n\t  }\n\t  return path;\n\t}\n\texports.normalize = normalize;\n\t\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t *   first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t *   is updated with the result and aRoot is returned. Otherwise the result\n\t *   is returned.\n\t *   - If aPath is absolute, the result is aPath.\n\t *   - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t  if (aPath === \"\") {\n\t    aPath = \".\";\n\t  }\n\t  var aPathUrl = urlParse(aPath);\n\t  var aRootUrl = urlParse(aRoot);\n\t  if (aRootUrl) {\n\t    aRoot = aRootUrl.path || '/';\n\t  }\n\t\n\t  // `join(foo, '//www.example.org')`\n\t  if (aPathUrl && !aPathUrl.scheme) {\n\t    if (aRootUrl) {\n\t      aPathUrl.scheme = aRootUrl.scheme;\n\t    }\n\t    return urlGenerate(aPathUrl);\n\t  }\n\t\n\t  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t    return aPath;\n\t  }\n\t\n\t  // `join('http://', 'www.example.com')`\n\t  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t    aRootUrl.host = aPath;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t\n\t  var joined = aPath.charAt(0) === '/'\n\t    ? aPath\n\t    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\t\n\t  if (aRootUrl) {\n\t    aRootUrl.path = joined;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t  return joined;\n\t}\n\texports.join = join;\n\t\n\texports.isAbsolute = function (aPath) {\n\t  return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n\t};\n\t\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t\n\t  aRoot = aRoot.replace(/\\/$/, '');\n\t\n\t  // It is possible for the path to be above the root. In this case, simply\n\t  // checking whether the root is a prefix of the path won't work. Instead, we\n\t  // need to remove components from the root one by one, until either we find\n\t  // a prefix that fits, or we run out of components to remove.\n\t  var level = 0;\n\t  while (aPath.indexOf(aRoot + '/') !== 0) {\n\t    var index = aRoot.lastIndexOf(\"/\");\n\t    if (index < 0) {\n\t      return aPath;\n\t    }\n\t\n\t    // If the only part of the root that is left is the scheme (i.e. http://,\n\t    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t    // have exhausted all components, so the path is not relative to the root.\n\t    aRoot = aRoot.slice(0, index);\n\t    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t      return aPath;\n\t    }\n\t\n\t    ++level;\n\t  }\n\t\n\t  // Make sure we add a \"../\" for each component we removed from the root.\n\t  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\t\n\tvar supportsNullProto = (function () {\n\t  var obj = Object.create(null);\n\t  return !('__proto__' in obj);\n\t}());\n\t\n\tfunction identity (s) {\n\t  return s;\n\t}\n\t\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return '$' + aStr;\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\t\n\tfunction fromSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return aStr.slice(1);\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\t\n\tfunction isProtoString(s) {\n\t  if (!s) {\n\t    return false;\n\t  }\n\t\n\t  var length = s.length;\n\t\n\t  if (length < 9 /* \"__proto__\".length */) {\n\t    return false;\n\t  }\n\t\n\t  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n\t    return false;\n\t  }\n\t\n\t  for (var i = length - 10; i >= 0; i--) {\n\t    if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t      return false;\n\t    }\n\t  }\n\t\n\t  return true;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t  var cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0 || onlyCompareOriginal) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\t\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0 || onlyCompareGenerated) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\t\n\tfunction strcmp(aStr1, aStr2) {\n\t  if (aStr1 === aStr2) {\n\t    return 0;\n\t  }\n\t\n\t  if (aStr1 === null) {\n\t    return 1; // aStr2 !== null\n\t  }\n\t\n\t  if (aStr2 === null) {\n\t    return -1; // aStr1 !== null\n\t  }\n\t\n\t  if (aStr1 > aStr2) {\n\t    return 1;\n\t  }\n\t\n\t  return -1;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\t\n\t/**\n\t * Strip any JSON XSSI avoidance prefix from the string (as documented\n\t * in the source maps specification), and then parse the string as\n\t * JSON.\n\t */\n\tfunction parseSourceMapInput(str) {\n\t  return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n\t}\n\texports.parseSourceMapInput = parseSourceMapInput;\n\t\n\t/**\n\t * Compute the URL of a source given the the source root, the source's\n\t * URL, and the source map's URL.\n\t */\n\tfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n\t  sourceURL = sourceURL || '';\n\t\n\t  if (sourceRoot) {\n\t    // This follows what Chrome does.\n\t    if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n\t      sourceRoot += '/';\n\t    }\n\t    // The spec says:\n\t    //   Line 4: An optional source root, useful for relocating source\n\t    //   files on a server or removing repeated values in the\n\t    //   “sources” entry.  This value is prepended to the individual\n\t    //   entries in the “source” field.\n\t    sourceURL = sourceRoot + sourceURL;\n\t  }\n\t\n\t  // Historically, SourceMapConsumer did not take the sourceMapURL as\n\t  // a parameter.  This mode is still somewhat supported, which is why\n\t  // this code block is conditional.  However, it's preferable to pass\n\t  // the source map URL to SourceMapConsumer, so that this function\n\t  // can implement the source URL resolution algorithm as outlined in\n\t  // the spec.  This block is basically the equivalent of:\n\t  //    new URL(sourceURL, sourceMapURL).toString()\n\t  // ... except it avoids using URL, which wasn't available in the\n\t  // older releases of node still supported by this library.\n\t  //\n\t  // The spec says:\n\t  //   If the sources are not absolute URLs after prepending of the\n\t  //   “sourceRoot”, the sources are resolved relative to the\n\t  //   SourceMap (like resolving script src in a html document).\n\t  if (sourceMapURL) {\n\t    var parsed = urlParse(sourceMapURL);\n\t    if (!parsed) {\n\t      throw new Error(\"sourceMapURL could not be parsed\");\n\t    }\n\t    if (parsed.path) {\n\t      // Strip the last path component, but keep the \"/\".\n\t      var index = parsed.path.lastIndexOf('/');\n\t      if (index >= 0) {\n\t        parsed.path = parsed.path.substring(0, index + 1);\n\t      }\n\t    }\n\t    sourceURL = join(urlGenerate(parsed), sourceURL);\n\t  }\n\t\n\t  return normalize(sourceURL);\n\t}\n\texports.computeSourceURL = computeSourceURL;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar hasNativeMap = typeof Map !== \"undefined\";\n\t\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t  this._array = [];\n\t  this._set = hasNativeMap ? new Map() : Object.create(null);\n\t}\n\t\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t  var set = new ArraySet();\n\t  for (var i = 0, len = aArray.length; i < len; i++) {\n\t    set.add(aArray[i], aAllowDuplicates);\n\t  }\n\t  return set;\n\t};\n\t\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n\t};\n\t\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n\t  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n\t  var idx = this._array.length;\n\t  if (!isDuplicate || aAllowDuplicates) {\n\t    this._array.push(aStr);\n\t  }\n\t  if (!isDuplicate) {\n\t    if (hasNativeMap) {\n\t      this._set.set(aStr, idx);\n\t    } else {\n\t      this._set[sStr] = idx;\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t  if (hasNativeMap) {\n\t    return this._set.has(aStr);\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    return has.call(this._set, sStr);\n\t  }\n\t};\n\t\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t  if (hasNativeMap) {\n\t    var idx = this._set.get(aStr);\n\t    if (idx >= 0) {\n\t        return idx;\n\t    }\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    if (has.call(this._set, sStr)) {\n\t      return this._set[sStr];\n\t    }\n\t  }\n\t\n\t  throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\t\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t  if (aIdx >= 0 && aIdx < this._array.length) {\n\t    return this._array[aIdx];\n\t  }\n\t  throw new Error('No element indexed by ' + aIdx);\n\t};\n\t\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t  return this._array.slice();\n\t};\n\t\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2014 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\t\n\t/**\n\t * Determine whether mappingB is after mappingA with respect to generated\n\t * position.\n\t */\n\tfunction generatedPositionAfter(mappingA, mappingB) {\n\t  // Optimized for most common case\n\t  var lineA = mappingA.generatedLine;\n\t  var lineB = mappingB.generatedLine;\n\t  var columnA = mappingA.generatedColumn;\n\t  var columnB = mappingB.generatedColumn;\n\t  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n\t         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n\t}\n\t\n\t/**\n\t * A data structure to provide a sorted view of accumulated mappings in a\n\t * performance conscious manner. It trades a neglibable overhead in general\n\t * case for a large speedup in case of mappings being added in order.\n\t */\n\tfunction MappingList() {\n\t  this._array = [];\n\t  this._sorted = true;\n\t  // Serves as infimum\n\t  this._last = {generatedLine: -1, generatedColumn: 0};\n\t}\n\t\n\t/**\n\t * Iterate through internal items. This method takes the same arguments that\n\t * `Array.prototype.forEach` takes.\n\t *\n\t * NOTE: The order of the mappings is NOT guaranteed.\n\t */\n\tMappingList.prototype.unsortedForEach =\n\t  function MappingList_forEach(aCallback, aThisArg) {\n\t    this._array.forEach(aCallback, aThisArg);\n\t  };\n\t\n\t/**\n\t * Add the given source mapping.\n\t *\n\t * @param Object aMapping\n\t */\n\tMappingList.prototype.add = function MappingList_add(aMapping) {\n\t  if (generatedPositionAfter(this._last, aMapping)) {\n\t    this._last = aMapping;\n\t    this._array.push(aMapping);\n\t  } else {\n\t    this._sorted = false;\n\t    this._array.push(aMapping);\n\t  }\n\t};\n\t\n\t/**\n\t * Returns the flat, sorted array of mappings. The mappings are sorted by\n\t * generated position.\n\t *\n\t * WARNING: This method returns internal data without copying, for\n\t * performance. The return value must NOT be mutated, and should be treated as\n\t * an immutable borrow. If you want to take ownership, you must make your own\n\t * copy.\n\t */\n\tMappingList.prototype.toArray = function MappingList_toArray() {\n\t  if (!this._sorted) {\n\t    this._array.sort(util.compareByGeneratedPositionsInflated);\n\t    this._sorted = true;\n\t  }\n\t  return this._array;\n\t};\n\t\n\texports.MappingList = MappingList;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar binarySearch = __webpack_require__(8);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar base64VLQ = __webpack_require__(2);\n\tvar quickSort = __webpack_require__(9).quickSort;\n\t\n\tfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = util.parseSourceMapInput(aSourceMap);\n\t  }\n\t\n\t  return sourceMap.sections != null\n\t    ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n\t    : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n\t}\n\t\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n\t  return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n\t}\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\t\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t//     {\n\t//       generatedLine: The line number in the generated code,\n\t//       generatedColumn: The column number in the generated code,\n\t//       source: The path to the original source file that generated this\n\t//               chunk of code,\n\t//       originalLine: The line number in the original source that\n\t//                     corresponds to this chunk of generated code,\n\t//       originalColumn: The column number in the original source that\n\t//                       corresponds to this chunk of generated code,\n\t//       name: The name of the original symbol which generated this chunk of\n\t//             code.\n\t//     }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\t\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t  configurable: true,\n\t  enumerable: true,\n\t  get: function () {\n\t    if (!this.__generatedMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__generatedMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t  configurable: true,\n\t  enumerable: true,\n\t  get: function () {\n\t    if (!this.__originalMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__originalMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t    var c = aStr.charAt(index);\n\t    return c === \";\" || c === \",\";\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    throw new Error(\"Subclasses must implement _parseMappings\");\n\t  };\n\t\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\t\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t *        The function that is called with each mapping.\n\t * @param Object aContext\n\t *        Optional. If specified, this object will be the value of `this` every\n\t *        time that `aCallback` is called.\n\t * @param aOrder\n\t *        Either `SourceMapConsumer.GENERATED_ORDER` or\n\t *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t *        iterate over the mappings sorted by the generated file's line/column\n\t *        order or the original's source/line/column order, respectively. Defaults to\n\t *        `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t    var context = aContext || null;\n\t    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\t\n\t    var mappings;\n\t    switch (order) {\n\t    case SourceMapConsumer.GENERATED_ORDER:\n\t      mappings = this._generatedMappings;\n\t      break;\n\t    case SourceMapConsumer.ORIGINAL_ORDER:\n\t      mappings = this._originalMappings;\n\t      break;\n\t    default:\n\t      throw new Error(\"Unknown order of iteration.\");\n\t    }\n\t\n\t    var sourceRoot = this.sourceRoot;\n\t    mappings.map(function (mapping) {\n\t      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t      source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n\t      return {\n\t        source: source,\n\t        generatedLine: mapping.generatedLine,\n\t        generatedColumn: mapping.generatedColumn,\n\t        originalLine: mapping.originalLine,\n\t        originalColumn: mapping.originalColumn,\n\t        name: mapping.name === null ? null : this._names.at(mapping.name)\n\t      };\n\t    }, this).forEach(aCallback, context);\n\t  };\n\t\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.  The line number is 1-based.\n\t *   - column: Optional. the column number in the original source.\n\t *    The column number is 0-based.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.  The\n\t *    line number is 1-based.\n\t *   - column: The column number in the generated source, or null.\n\t *    The column number is 0-based.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t    var line = util.getArg(aArgs, 'line');\n\t\n\t    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t    // returns the index of the closest mapping less than the needle. By\n\t    // setting needle.originalColumn to 0, we thus find the last mapping for\n\t    // the given line, provided such a mapping exists.\n\t    var needle = {\n\t      source: util.getArg(aArgs, 'source'),\n\t      originalLine: line,\n\t      originalColumn: util.getArg(aArgs, 'column', 0)\n\t    };\n\t\n\t    needle.source = this._findSourceIndex(needle.source);\n\t    if (needle.source < 0) {\n\t      return [];\n\t    }\n\t\n\t    var mappings = [];\n\t\n\t    var index = this._findMapping(needle,\n\t                                  this._originalMappings,\n\t                                  \"originalLine\",\n\t                                  \"originalColumn\",\n\t                                  util.compareByOriginalPositions,\n\t                                  binarySearch.LEAST_UPPER_BOUND);\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (aArgs.column === undefined) {\n\t        var originalLine = mapping.originalLine;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we found. Since\n\t        // mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we found.\n\t        while (mapping && mapping.originalLine === originalLine) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      } else {\n\t        var originalColumn = mapping.originalColumn;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we were searching for.\n\t        // Since mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we are searching for.\n\t        while (mapping &&\n\t               mapping.originalLine === line &&\n\t               mapping.originalColumn == originalColumn) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      }\n\t    }\n\t\n\t    return mappings;\n\t  };\n\t\n\texports.SourceMapConsumer = SourceMapConsumer;\n\t\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The first parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - sources: An array of URLs to the original source files.\n\t *   - names: An array of identifiers which can be referrenced by individual mappings.\n\t *   - sourceRoot: Optional. The URL root from which all sources are relative.\n\t *   - sourcesContent: Optional. An array of contents of the original source files.\n\t *   - mappings: A string of base64 VLQs which contain the actual mappings.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t *     {\n\t *       version : 3,\n\t *       file: \"out.js\",\n\t *       sourceRoot : \"\",\n\t *       sources: [\"foo.js\", \"bar.js\"],\n\t *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *       mappings: \"AA,AB;;ABCDE;\"\n\t *     }\n\t *\n\t * The second parameter, if given, is a string whose value is the URL\n\t * at which the source map was found.  This URL is used to compute the\n\t * sources array.\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = util.parseSourceMapInput(aSourceMap);\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sources = util.getArg(sourceMap, 'sources');\n\t  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t  // requires the array) to play nice here.\n\t  var names = util.getArg(sourceMap, 'names', []);\n\t  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t  var mappings = util.getArg(sourceMap, 'mappings');\n\t  var file = util.getArg(sourceMap, 'file', null);\n\t\n\t  // Once again, Sass deviates from the spec and supplies the version as a\n\t  // string rather than a number, so we use loose equality checking here.\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  if (sourceRoot) {\n\t    sourceRoot = util.normalize(sourceRoot);\n\t  }\n\t\n\t  sources = sources\n\t    .map(String)\n\t    // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n\t    // See bugzil.la/1090768.\n\t    .map(util.normalize)\n\t    // Always ensure that absolute sources are internally stored relative to\n\t    // the source root, if the source root is absolute. Not doing this would\n\t    // be particularly problematic when the source root is a prefix of the\n\t    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t    .map(function (source) {\n\t      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t        ? util.relative(sourceRoot, source)\n\t        : source;\n\t    });\n\t\n\t  // Pass `true` below to allow duplicate names and sources. While source maps\n\t  // are intended to be compressed and deduplicated, the TypeScript compiler\n\t  // sometimes generates source maps with duplicates in them. See Github issue\n\t  // #72 and bugzil.la/889492.\n\t  this._names = ArraySet.fromArray(names.map(String), true);\n\t  this._sources = ArraySet.fromArray(sources, true);\n\t\n\t  this._absoluteSources = this._sources.toArray().map(function (s) {\n\t    return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n\t  });\n\t\n\t  this.sourceRoot = sourceRoot;\n\t  this.sourcesContent = sourcesContent;\n\t  this._mappings = mappings;\n\t  this._sourceMapURL = aSourceMapURL;\n\t  this.file = file;\n\t}\n\t\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\t\n\t/**\n\t * Utility function to find the index of a source.  Returns -1 if not\n\t * found.\n\t */\n\tBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n\t  var relativeSource = aSource;\n\t  if (this.sourceRoot != null) {\n\t    relativeSource = util.relative(this.sourceRoot, relativeSource);\n\t  }\n\t\n\t  if (this._sources.has(relativeSource)) {\n\t    return this._sources.indexOf(relativeSource);\n\t  }\n\t\n\t  // Maybe aSource is an absolute URL as returned by |sources|.  In\n\t  // this case we can't simply undo the transform.\n\t  var i;\n\t  for (i = 0; i < this._absoluteSources.length; ++i) {\n\t    if (this._absoluteSources[i] == aSource) {\n\t      return i;\n\t    }\n\t  }\n\t\n\t  return -1;\n\t};\n\t\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t *        The source map that will be consumed.\n\t * @param String aSourceMapURL\n\t *        The URL at which the source map can be found (optional)\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t  function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n\t    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\t\n\t    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t    smc.sourceRoot = aSourceMap._sourceRoot;\n\t    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t                                                            smc.sourceRoot);\n\t    smc.file = aSourceMap._file;\n\t    smc._sourceMapURL = aSourceMapURL;\n\t    smc._absoluteSources = smc._sources.toArray().map(function (s) {\n\t      return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n\t    });\n\t\n\t    // Because we are modifying the entries (by converting string sources and\n\t    // names to indices into the sources and names ArraySets), we have to make\n\t    // a copy of the entry or else bad things happen. Shared mutable state\n\t    // strikes again! See github issue #191.\n\t\n\t    var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t    var destGeneratedMappings = smc.__generatedMappings = [];\n\t    var destOriginalMappings = smc.__originalMappings = [];\n\t\n\t    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t      var srcMapping = generatedMappings[i];\n\t      var destMapping = new Mapping;\n\t      destMapping.generatedLine = srcMapping.generatedLine;\n\t      destMapping.generatedColumn = srcMapping.generatedColumn;\n\t\n\t      if (srcMapping.source) {\n\t        destMapping.source = sources.indexOf(srcMapping.source);\n\t        destMapping.originalLine = srcMapping.originalLine;\n\t        destMapping.originalColumn = srcMapping.originalColumn;\n\t\n\t        if (srcMapping.name) {\n\t          destMapping.name = names.indexOf(srcMapping.name);\n\t        }\n\t\n\t        destOriginalMappings.push(destMapping);\n\t      }\n\t\n\t      destGeneratedMappings.push(destMapping);\n\t    }\n\t\n\t    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\t\n\t    return smc;\n\t  };\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    return this._absoluteSources.slice();\n\t  }\n\t});\n\t\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t  this.generatedLine = 0;\n\t  this.generatedColumn = 0;\n\t  this.source = null;\n\t  this.originalLine = null;\n\t  this.originalColumn = null;\n\t  this.name = null;\n\t}\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    var generatedLine = 1;\n\t    var previousGeneratedColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousOriginalColumn = 0;\n\t    var previousSource = 0;\n\t    var previousName = 0;\n\t    var length = aStr.length;\n\t    var index = 0;\n\t    var cachedSegments = {};\n\t    var temp = {};\n\t    var originalMappings = [];\n\t    var generatedMappings = [];\n\t    var mapping, str, segment, end, value;\n\t\n\t    while (index < length) {\n\t      if (aStr.charAt(index) === ';') {\n\t        generatedLine++;\n\t        index++;\n\t        previousGeneratedColumn = 0;\n\t      }\n\t      else if (aStr.charAt(index) === ',') {\n\t        index++;\n\t      }\n\t      else {\n\t        mapping = new Mapping();\n\t        mapping.generatedLine = generatedLine;\n\t\n\t        // Because each offset is encoded relative to the previous one,\n\t        // many segments often have the same encoding. We can exploit this\n\t        // fact by caching the parsed variable length fields of each segment,\n\t        // allowing us to avoid a second parse if we encounter the same\n\t        // segment again.\n\t        for (end = index; end < length; end++) {\n\t          if (this._charIsMappingSeparator(aStr, end)) {\n\t            break;\n\t          }\n\t        }\n\t        str = aStr.slice(index, end);\n\t\n\t        segment = cachedSegments[str];\n\t        if (segment) {\n\t          index += str.length;\n\t        } else {\n\t          segment = [];\n\t          while (index < end) {\n\t            base64VLQ.decode(aStr, index, temp);\n\t            value = temp.value;\n\t            index = temp.rest;\n\t            segment.push(value);\n\t          }\n\t\n\t          if (segment.length === 2) {\n\t            throw new Error('Found a source, but no line and column');\n\t          }\n\t\n\t          if (segment.length === 3) {\n\t            throw new Error('Found a source and line, but no column');\n\t          }\n\t\n\t          cachedSegments[str] = segment;\n\t        }\n\t\n\t        // Generated column.\n\t        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t        previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t        if (segment.length > 1) {\n\t          // Original source.\n\t          mapping.source = previousSource + segment[1];\n\t          previousSource += segment[1];\n\t\n\t          // Original line.\n\t          mapping.originalLine = previousOriginalLine + segment[2];\n\t          previousOriginalLine = mapping.originalLine;\n\t          // Lines are stored 0-based\n\t          mapping.originalLine += 1;\n\t\n\t          // Original column.\n\t          mapping.originalColumn = previousOriginalColumn + segment[3];\n\t          previousOriginalColumn = mapping.originalColumn;\n\t\n\t          if (segment.length > 4) {\n\t            // Original name.\n\t            mapping.name = previousName + segment[4];\n\t            previousName += segment[4];\n\t          }\n\t        }\n\t\n\t        generatedMappings.push(mapping);\n\t        if (typeof mapping.originalLine === 'number') {\n\t          originalMappings.push(mapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    this.__generatedMappings = generatedMappings;\n\t\n\t    quickSort(originalMappings, util.compareByOriginalPositions);\n\t    this.__originalMappings = originalMappings;\n\t  };\n\t\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t                                         aColumnName, aComparator, aBias) {\n\t    // To return the position we are searching for, we must first find the\n\t    // mapping for the given position and then return the opposite position it\n\t    // points to. Because the mappings are sorted, we can use binary search to\n\t    // find the best mapping.\n\t\n\t    if (aNeedle[aLineName] <= 0) {\n\t      throw new TypeError('Line must be greater than or equal to 1, got '\n\t                          + aNeedle[aLineName]);\n\t    }\n\t    if (aNeedle[aColumnName] < 0) {\n\t      throw new TypeError('Column must be greater than or equal to 0, got '\n\t                          + aNeedle[aColumnName]);\n\t    }\n\t\n\t    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t  };\n\t\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t  function SourceMapConsumer_computeColumnSpans() {\n\t    for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      // Mappings do not contain a field for the last generated columnt. We\n\t      // can come up with an optimistic estimate, however, by assuming that\n\t      // mappings are contiguous (i.e. given two consecutive mappings, the\n\t      // first mapping ends where the second one starts).\n\t      if (index + 1 < this._generatedMappings.length) {\n\t        var nextMapping = this._generatedMappings[index + 1];\n\t\n\t        if (mapping.generatedLine === nextMapping.generatedLine) {\n\t          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t          continue;\n\t        }\n\t      }\n\t\n\t      // The last mapping for each line spans the entire line.\n\t      mapping.lastGeneratedColumn = Infinity;\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.  The line number\n\t *     is 1-based.\n\t *   - column: The column number in the generated source.  The column\n\t *     number is 0-based.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.  The\n\t *     line number is 1-based.\n\t *   - column: The column number in the original source, or null.  The\n\t *     column number is 0-based.\n\t *   - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t  function SourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._generatedMappings,\n\t      \"generatedLine\",\n\t      \"generatedColumn\",\n\t      util.compareByGeneratedPositionsDeflated,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      if (mapping.generatedLine === needle.generatedLine) {\n\t        var source = util.getArg(mapping, 'source', null);\n\t        if (source !== null) {\n\t          source = this._sources.at(source);\n\t          source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n\t        }\n\t        var name = util.getArg(mapping, 'name', null);\n\t        if (name !== null) {\n\t          name = this._names.at(name);\n\t        }\n\t        return {\n\t          source: source,\n\t          line: util.getArg(mapping, 'originalLine', null),\n\t          column: util.getArg(mapping, 'originalColumn', null),\n\t          name: name\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      source: null,\n\t      line: null,\n\t      column: null,\n\t      name: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t    if (!this.sourcesContent) {\n\t      return false;\n\t    }\n\t    return this.sourcesContent.length >= this._sources.size() &&\n\t      !this.sourcesContent.some(function (sc) { return sc == null; });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    if (!this.sourcesContent) {\n\t      return null;\n\t    }\n\t\n\t    var index = this._findSourceIndex(aSource);\n\t    if (index >= 0) {\n\t      return this.sourcesContent[index];\n\t    }\n\t\n\t    var relativeSource = aSource;\n\t    if (this.sourceRoot != null) {\n\t      relativeSource = util.relative(this.sourceRoot, relativeSource);\n\t    }\n\t\n\t    var url;\n\t    if (this.sourceRoot != null\n\t        && (url = util.urlParse(this.sourceRoot))) {\n\t      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t      // many users. We can help them out when they expect file:// URIs to\n\t      // behave like it would if they were running a local HTTP server. See\n\t      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t      var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n\t      if (url.scheme == \"file\"\n\t          && this._sources.has(fileUriAbsPath)) {\n\t        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t      }\n\t\n\t      if ((!url.path || url.path == \"/\")\n\t          && this._sources.has(\"/\" + relativeSource)) {\n\t        return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n\t      }\n\t    }\n\t\n\t    // This function is used recursively from\n\t    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t    // don't want to throw if we can't find the source - we just want to\n\t    // return null, so we provide a flag to exit gracefully.\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.  The line number\n\t *     is 1-based.\n\t *   - column: The column number in the original source.  The column\n\t *     number is 0-based.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.  The\n\t *     line number is 1-based.\n\t *   - column: The column number in the generated source, or null.\n\t *     The column number is 0-based.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t  function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t    var source = util.getArg(aArgs, 'source');\n\t    source = this._findSourceIndex(source);\n\t    if (source < 0) {\n\t      return {\n\t        line: null,\n\t        column: null,\n\t        lastColumn: null\n\t      };\n\t    }\n\t\n\t    var needle = {\n\t      source: source,\n\t      originalLine: util.getArg(aArgs, 'line'),\n\t      originalColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._originalMappings,\n\t      \"originalLine\",\n\t      \"originalColumn\",\n\t      util.compareByOriginalPositions,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (mapping.source === needle.source) {\n\t        return {\n\t          line: util.getArg(mapping, 'generatedLine', null),\n\t          column: util.getArg(mapping, 'generatedColumn', null),\n\t          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null,\n\t      lastColumn: null\n\t    };\n\t  };\n\t\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\t\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The first parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *   - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t *   - offset: The offset into the original specified at which this section\n\t *       begins to apply, defined as an object with a \"line\" and \"column\"\n\t *       field.\n\t *   - map: A source map definition. This source map could also be indexed,\n\t *       but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t *  {\n\t *    version : 3,\n\t *    file: \"app.js\",\n\t *    sections: [{\n\t *      offset: {line:100, column:10},\n\t *      map: {\n\t *        version : 3,\n\t *        file: \"section.js\",\n\t *        sources: [\"foo.js\", \"bar.js\"],\n\t *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *        mappings: \"AAAA,E;;ABCDE;\"\n\t *      }\n\t *    }],\n\t *  }\n\t *\n\t * The second parameter, if given, is a string whose value is the URL\n\t * at which the source map was found.  This URL is used to compute the\n\t * sources array.\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = util.parseSourceMapInput(aSourceMap);\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sections = util.getArg(sourceMap, 'sections');\n\t\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t\n\t  var lastOffset = {\n\t    line: -1,\n\t    column: 0\n\t  };\n\t  this._sections = sections.map(function (s) {\n\t    if (s.url) {\n\t      // The url field will require support for asynchronicity.\n\t      // See https://github.com/mozilla/source-map/issues/16\n\t      throw new Error('Support for url field in sections not implemented.');\n\t    }\n\t    var offset = util.getArg(s, 'offset');\n\t    var offsetLine = util.getArg(offset, 'line');\n\t    var offsetColumn = util.getArg(offset, 'column');\n\t\n\t    if (offsetLine < lastOffset.line ||\n\t        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t      throw new Error('Section offsets must be ordered and non-overlapping.');\n\t    }\n\t    lastOffset = offset;\n\t\n\t    return {\n\t      generatedOffset: {\n\t        // The offset fields are 0-based, but we use 1-based indices when\n\t        // encoding/decoding from VLQ.\n\t        generatedLine: offsetLine + 1,\n\t        generatedColumn: offsetColumn + 1\n\t      },\n\t      consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n\t    }\n\t  });\n\t}\n\t\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    var sources = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t        sources.push(this._sections[i].consumer.sources[j]);\n\t      }\n\t    }\n\t    return sources;\n\t  }\n\t});\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.  The line number\n\t *     is 1-based.\n\t *   - column: The column number in the generated source.  The column\n\t *     number is 0-based.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.  The\n\t *     line number is 1-based.\n\t *   - column: The column number in the original source, or null.  The\n\t *     column number is 0-based.\n\t *   - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    // Find the section containing the generated position we're trying to map\n\t    // to an original position.\n\t    var sectionIndex = binarySearch.search(needle, this._sections,\n\t      function(needle, section) {\n\t        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t        if (cmp) {\n\t          return cmp;\n\t        }\n\t\n\t        return (needle.generatedColumn -\n\t                section.generatedOffset.generatedColumn);\n\t      });\n\t    var section = this._sections[sectionIndex];\n\t\n\t    if (!section) {\n\t      return {\n\t        source: null,\n\t        line: null,\n\t        column: null,\n\t        name: null\n\t      };\n\t    }\n\t\n\t    return section.consumer.originalPositionFor({\n\t      line: needle.generatedLine -\n\t        (section.generatedOffset.generatedLine - 1),\n\t      column: needle.generatedColumn -\n\t        (section.generatedOffset.generatedLine === needle.generatedLine\n\t         ? section.generatedOffset.generatedColumn - 1\n\t         : 0),\n\t      bias: aArgs.bias\n\t    });\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t    return this._sections.every(function (s) {\n\t      return s.consumer.hasContentsOfAllSources();\n\t    });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      var content = section.consumer.sourceContentFor(aSource, true);\n\t      if (content) {\n\t        return content;\n\t      }\n\t    }\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.  The line number\n\t *     is 1-based.\n\t *   - column: The column number in the original source.  The column\n\t *     number is 0-based.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.  The\n\t *     line number is 1-based. \n\t *   - column: The column number in the generated source, or null.\n\t *     The column number is 0-based.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      // Only consider this section if the requested source is in the list of\n\t      // sources of the consumer.\n\t      if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n\t        continue;\n\t      }\n\t      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t      if (generatedPosition) {\n\t        var ret = {\n\t          line: generatedPosition.line +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          column: generatedPosition.column +\n\t            (section.generatedOffset.generatedLine === generatedPosition.line\n\t             ? section.generatedOffset.generatedColumn - 1\n\t             : 0)\n\t        };\n\t        return ret;\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    this.__generatedMappings = [];\n\t    this.__originalMappings = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t      var sectionMappings = section.consumer._generatedMappings;\n\t      for (var j = 0; j < sectionMappings.length; j++) {\n\t        var mapping = sectionMappings[j];\n\t\n\t        var source = section.consumer._sources.at(mapping.source);\n\t        source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n\t        this._sources.add(source);\n\t        source = this._sources.indexOf(source);\n\t\n\t        var name = null;\n\t        if (mapping.name) {\n\t          name = section.consumer._names.at(mapping.name);\n\t          this._names.add(name);\n\t          name = this._names.indexOf(name);\n\t        }\n\t\n\t        // The mappings coming from the consumer for the section have\n\t        // generated positions relative to the start of the section, so we\n\t        // need to offset them to be relative to the start of the concatenated\n\t        // generated file.\n\t        var adjustedMapping = {\n\t          source: source,\n\t          generatedLine: mapping.generatedLine +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          generatedColumn: mapping.generatedColumn +\n\t            (section.generatedOffset.generatedLine === mapping.generatedLine\n\t            ? section.generatedOffset.generatedColumn - 1\n\t            : 0),\n\t          originalLine: mapping.originalLine,\n\t          originalColumn: mapping.originalColumn,\n\t          name: name\n\t        };\n\t\n\t        this.__generatedMappings.push(adjustedMapping);\n\t        if (typeof adjustedMapping.originalLine === 'number') {\n\t          this.__originalMappings.push(adjustedMapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t  };\n\t\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t  // This function terminates when one of the following is true:\n\t  //\n\t  //   1. We find the exact element we are looking for.\n\t  //\n\t  //   2. We did not find the exact element, but we can return the index of\n\t  //      the next-closest element.\n\t  //\n\t  //   3. We did not find the exact element, and there is no next-closest\n\t  //      element than the one we are searching for, so we return -1.\n\t  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t  if (cmp === 0) {\n\t    // Found the element we are looking for.\n\t    return mid;\n\t  }\n\t  else if (cmp > 0) {\n\t    // Our needle is greater than aHaystack[mid].\n\t    if (aHigh - mid > 1) {\n\t      // The element is in the upper half.\n\t      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // The exact needle element was not found in this haystack. Determine if\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return aHigh < aHaystack.length ? aHigh : -1;\n\t    } else {\n\t      return mid;\n\t    }\n\t  }\n\t  else {\n\t    // Our needle is less than aHaystack[mid].\n\t    if (mid - aLow > 1) {\n\t      // The element is in the lower half.\n\t      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return mid;\n\t    } else {\n\t      return aLow < 0 ? -1 : aLow;\n\t    }\n\t  }\n\t}\n\t\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t *     array and returns -1, 0, or 1 depending on whether the needle is less\n\t *     than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t  if (aHaystack.length === 0) {\n\t    return -1;\n\t  }\n\t\n\t  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t  if (index < 0) {\n\t    return -1;\n\t  }\n\t\n\t  // We have found either the exact element, or the next-closest element than\n\t  // the one we are searching for. However, there may be more than one such\n\t  // element. Make sure we always return the smallest of these.\n\t  while (index - 1 >= 0) {\n\t    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t      break;\n\t    }\n\t    --index;\n\t  }\n\t\n\t  return index;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\t\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t *        The array.\n\t * @param {Number} x\n\t *        The index of the first item.\n\t * @param {Number} y\n\t *        The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t  var temp = ary[x];\n\t  ary[x] = ary[y];\n\t  ary[y] = temp;\n\t}\n\t\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t *        The lower bound on the range.\n\t * @param {Number} high\n\t *        The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t  return Math.round(low + (Math.random() * (high - low)));\n\t}\n\t\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t * @param {Number} p\n\t *        Start index of the array\n\t * @param {Number} r\n\t *        End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t  // If our lower bound is less than our upper bound, we (1) partition the\n\t  // array into two pieces and (2) recurse on each half. If it is not, this is\n\t  // the empty array and our base case.\n\t\n\t  if (p < r) {\n\t    // (1) Partitioning.\n\t    //\n\t    // The partitioning chooses a pivot between `p` and `r` and moves all\n\t    // elements that are less than or equal to the pivot to the before it, and\n\t    // all the elements that are greater than it after it. The effect is that\n\t    // once partition is done, the pivot is in the exact place it will be when\n\t    // the array is put in sorted order, and it will not need to be moved\n\t    // again. This runs in O(n) time.\n\t\n\t    // Always choose a random pivot so that an input array which is reverse\n\t    // sorted does not cause O(n^2) running time.\n\t    var pivotIndex = randomIntInRange(p, r);\n\t    var i = p - 1;\n\t\n\t    swap(ary, pivotIndex, r);\n\t    var pivot = ary[r];\n\t\n\t    // Immediately after `j` is incremented in this loop, the following hold\n\t    // true:\n\t    //\n\t    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t    //\n\t    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t    for (var j = p; j < r; j++) {\n\t      if (comparator(ary[j], pivot) <= 0) {\n\t        i += 1;\n\t        swap(ary, i, j);\n\t      }\n\t    }\n\t\n\t    swap(ary, i + 1, j);\n\t    var q = i + 1;\n\t\n\t    // (2) Recurse on each half.\n\t\n\t    doQuickSort(ary, comparator, p, q - 1);\n\t    doQuickSort(ary, comparator, q + 1, r);\n\t  }\n\t}\n\t\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t  doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\tvar util = __webpack_require__(4);\n\t\n\t// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n\t// operating systems these days (capturing the result).\n\tvar REGEX_NEWLINE = /(\\r?\\n)/;\n\t\n\t// Newline character code for charCodeAt() comparisons\n\tvar NEWLINE_CODE = 10;\n\t\n\t// Private symbol for identifying `SourceNode`s when multiple versions of\n\t// the source-map library are loaded. This MUST NOT CHANGE across\n\t// versions!\n\tvar isSourceNode = \"$$$isSourceNode$$$\";\n\t\n\t/**\n\t * SourceNodes provide a way to abstract over interpolating/concatenating\n\t * snippets of generated JavaScript source code while maintaining the line and\n\t * column information associated with the original source code.\n\t *\n\t * @param aLine The original line number.\n\t * @param aColumn The original column number.\n\t * @param aSource The original source's filename.\n\t * @param aChunks Optional. An array of strings which are snippets of\n\t *        generated JS, or other SourceNodes.\n\t * @param aName The original identifier.\n\t */\n\tfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n\t  this.children = [];\n\t  this.sourceContents = {};\n\t  this.line = aLine == null ? null : aLine;\n\t  this.column = aColumn == null ? null : aColumn;\n\t  this.source = aSource == null ? null : aSource;\n\t  this.name = aName == null ? null : aName;\n\t  this[isSourceNode] = true;\n\t  if (aChunks != null) this.add(aChunks);\n\t}\n\t\n\t/**\n\t * Creates a SourceNode from generated code and a SourceMapConsumer.\n\t *\n\t * @param aGeneratedCode The generated code\n\t * @param aSourceMapConsumer The SourceMap for the generated code\n\t * @param aRelativePath Optional. The path that relative sources in the\n\t *        SourceMapConsumer should be relative to.\n\t */\n\tSourceNode.fromStringWithSourceMap =\n\t  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n\t    // The SourceNode we want to fill with the generated code\n\t    // and the SourceMap\n\t    var node = new SourceNode();\n\t\n\t    // All even indices of this array are one line of the generated code,\n\t    // while all odd indices are the newlines between two adjacent lines\n\t    // (since `REGEX_NEWLINE` captures its match).\n\t    // Processed fragments are accessed by calling `shiftNextLine`.\n\t    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n\t    var remainingLinesIndex = 0;\n\t    var shiftNextLine = function() {\n\t      var lineContents = getNextLine();\n\t      // The last line of a file might not have a newline.\n\t      var newLine = getNextLine() || \"\";\n\t      return lineContents + newLine;\n\t\n\t      function getNextLine() {\n\t        return remainingLinesIndex < remainingLines.length ?\n\t            remainingLines[remainingLinesIndex++] : undefined;\n\t      }\n\t    };\n\t\n\t    // We need to remember the position of \"remainingLines\"\n\t    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\t\n\t    // The generate SourceNodes we need a code range.\n\t    // To extract it current and last mapping is used.\n\t    // Here we store the last mapping.\n\t    var lastMapping = null;\n\t\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      if (lastMapping !== null) {\n\t        // We add the code from \"lastMapping\" to \"mapping\":\n\t        // First check if there is a new line in between.\n\t        if (lastGeneratedLine < mapping.generatedLine) {\n\t          // Associate first line with \"lastMapping\"\n\t          addMappingWithCode(lastMapping, shiftNextLine());\n\t          lastGeneratedLine++;\n\t          lastGeneratedColumn = 0;\n\t          // The remaining code is added without mapping\n\t        } else {\n\t          // There is no new line in between.\n\t          // Associate the code between \"lastGeneratedColumn\" and\n\t          // \"mapping.generatedColumn\" with \"lastMapping\"\n\t          var nextLine = remainingLines[remainingLinesIndex] || '';\n\t          var code = nextLine.substr(0, mapping.generatedColumn -\n\t                                        lastGeneratedColumn);\n\t          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n\t                                              lastGeneratedColumn);\n\t          lastGeneratedColumn = mapping.generatedColumn;\n\t          addMappingWithCode(lastMapping, code);\n\t          // No more remaining code, continue\n\t          lastMapping = mapping;\n\t          return;\n\t        }\n\t      }\n\t      // We add the generated code until the first mapping\n\t      // to the SourceNode without any mapping.\n\t      // Each line is added as separate string.\n\t      while (lastGeneratedLine < mapping.generatedLine) {\n\t        node.add(shiftNextLine());\n\t        lastGeneratedLine++;\n\t      }\n\t      if (lastGeneratedColumn < mapping.generatedColumn) {\n\t        var nextLine = remainingLines[remainingLinesIndex] || '';\n\t        node.add(nextLine.substr(0, mapping.generatedColumn));\n\t        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n\t        lastGeneratedColumn = mapping.generatedColumn;\n\t      }\n\t      lastMapping = mapping;\n\t    }, this);\n\t    // We have processed all mappings.\n\t    if (remainingLinesIndex < remainingLines.length) {\n\t      if (lastMapping) {\n\t        // Associate the remaining code in the current line with \"lastMapping\"\n\t        addMappingWithCode(lastMapping, shiftNextLine());\n\t      }\n\t      // and add the remaining lines without any mapping\n\t      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n\t    }\n\t\n\t    // Copy sourcesContent into SourceNode\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aRelativePath != null) {\n\t          sourceFile = util.join(aRelativePath, sourceFile);\n\t        }\n\t        node.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t\n\t    return node;\n\t\n\t    function addMappingWithCode(mapping, code) {\n\t      if (mapping === null || mapping.source === undefined) {\n\t        node.add(code);\n\t      } else {\n\t        var source = aRelativePath\n\t          ? util.join(aRelativePath, mapping.source)\n\t          : mapping.source;\n\t        node.add(new SourceNode(mapping.originalLine,\n\t                                mapping.originalColumn,\n\t                                source,\n\t                                code,\n\t                                mapping.name));\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Add a chunk of generated JS to this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.add = function SourceNode_add(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    aChunk.forEach(function (chunk) {\n\t      this.add(chunk);\n\t    }, this);\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    if (aChunk) {\n\t      this.children.push(aChunk);\n\t    }\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Add a chunk of generated JS to the beginning of this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    for (var i = aChunk.length-1; i >= 0; i--) {\n\t      this.prepend(aChunk[i]);\n\t    }\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    this.children.unshift(aChunk);\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Walk over the tree of JS snippets in this node and its children. The\n\t * walking function is called once for each snippet of JS and is passed that\n\t * snippet and the its original associated source's line/column location.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n\t  var chunk;\n\t  for (var i = 0, len = this.children.length; i < len; i++) {\n\t    chunk = this.children[i];\n\t    if (chunk[isSourceNode]) {\n\t      chunk.walk(aFn);\n\t    }\n\t    else {\n\t      if (chunk !== '') {\n\t        aFn(chunk, { source: this.source,\n\t                     line: this.line,\n\t                     column: this.column,\n\t                     name: this.name });\n\t      }\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n\t * each of `this.children`.\n\t *\n\t * @param aSep The separator.\n\t */\n\tSourceNode.prototype.join = function SourceNode_join(aSep) {\n\t  var newChildren;\n\t  var i;\n\t  var len = this.children.length;\n\t  if (len > 0) {\n\t    newChildren = [];\n\t    for (i = 0; i < len-1; i++) {\n\t      newChildren.push(this.children[i]);\n\t      newChildren.push(aSep);\n\t    }\n\t    newChildren.push(this.children[i]);\n\t    this.children = newChildren;\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Call String.prototype.replace on the very right-most source snippet. Useful\n\t * for trimming whitespace from the end of a source node, etc.\n\t *\n\t * @param aPattern The pattern to replace.\n\t * @param aReplacement The thing to replace the pattern with.\n\t */\n\tSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n\t  var lastChild = this.children[this.children.length - 1];\n\t  if (lastChild[isSourceNode]) {\n\t    lastChild.replaceRight(aPattern, aReplacement);\n\t  }\n\t  else if (typeof lastChild === 'string') {\n\t    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n\t  }\n\t  else {\n\t    this.children.push(''.replace(aPattern, aReplacement));\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Set the source content for a source file. This will be added to the SourceMapGenerator\n\t * in the sourcesContent field.\n\t *\n\t * @param aSourceFile The filename of the source file\n\t * @param aSourceContent The content of the source file\n\t */\n\tSourceNode.prototype.setSourceContent =\n\t  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n\t    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n\t  };\n\t\n\t/**\n\t * Walk over the tree of SourceNodes. The walking function is called for each\n\t * source file content and is passed the filename and source content.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walkSourceContents =\n\t  function SourceNode_walkSourceContents(aFn) {\n\t    for (var i = 0, len = this.children.length; i < len; i++) {\n\t      if (this.children[i][isSourceNode]) {\n\t        this.children[i].walkSourceContents(aFn);\n\t      }\n\t    }\n\t\n\t    var sources = Object.keys(this.sourceContents);\n\t    for (var i = 0, len = sources.length; i < len; i++) {\n\t      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n\t    }\n\t  };\n\t\n\t/**\n\t * Return the string representation of this source node. Walks over the tree\n\t * and concatenates all the various snippets together to one string.\n\t */\n\tSourceNode.prototype.toString = function SourceNode_toString() {\n\t  var str = \"\";\n\t  this.walk(function (chunk) {\n\t    str += chunk;\n\t  });\n\t  return str;\n\t};\n\t\n\t/**\n\t * Returns the string representation of this source node along with a source\n\t * map.\n\t */\n\tSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n\t  var generated = {\n\t    code: \"\",\n\t    line: 1,\n\t    column: 0\n\t  };\n\t  var map = new SourceMapGenerator(aArgs);\n\t  var sourceMappingActive = false;\n\t  var lastOriginalSource = null;\n\t  var lastOriginalLine = null;\n\t  var lastOriginalColumn = null;\n\t  var lastOriginalName = null;\n\t  this.walk(function (chunk, original) {\n\t    generated.code += chunk;\n\t    if (original.source !== null\n\t        && original.line !== null\n\t        && original.column !== null) {\n\t      if(lastOriginalSource !== original.source\n\t         || lastOriginalLine !== original.line\n\t         || lastOriginalColumn !== original.column\n\t         || lastOriginalName !== original.name) {\n\t        map.addMapping({\n\t          source: original.source,\n\t          original: {\n\t            line: original.line,\n\t            column: original.column\n\t          },\n\t          generated: {\n\t            line: generated.line,\n\t            column: generated.column\n\t          },\n\t          name: original.name\n\t        });\n\t      }\n\t      lastOriginalSource = original.source;\n\t      lastOriginalLine = original.line;\n\t      lastOriginalColumn = original.column;\n\t      lastOriginalName = original.name;\n\t      sourceMappingActive = true;\n\t    } else if (sourceMappingActive) {\n\t      map.addMapping({\n\t        generated: {\n\t          line: generated.line,\n\t          column: generated.column\n\t        }\n\t      });\n\t      lastOriginalSource = null;\n\t      sourceMappingActive = false;\n\t    }\n\t    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n\t      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n\t        generated.line++;\n\t        generated.column = 0;\n\t        // Mappings end at eol\n\t        if (idx + 1 === length) {\n\t          lastOriginalSource = null;\n\t          sourceMappingActive = false;\n\t        } else if (sourceMappingActive) {\n\t          map.addMapping({\n\t            source: original.source,\n\t            original: {\n\t              line: original.line,\n\t              column: original.column\n\t            },\n\t            generated: {\n\t              line: generated.line,\n\t              column: generated.column\n\t            },\n\t            name: original.name\n\t          });\n\t        }\n\t      } else {\n\t        generated.column++;\n\t      }\n\t    }\n\t  });\n\t  this.walkSourceContents(function (sourceFile, sourceContent) {\n\t    map.setSourceContent(sourceFile, sourceContent);\n\t  });\n\t\n\t  return { code: generated.code, map: map };\n\t};\n\t\n\texports.SourceNode = SourceNode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// source-map.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0fd5815da764db5fb9fe","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source-map.js\n// module id = 0\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n *   - file: The filename of the generated source.\n *   - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n  if (!aArgs) {\n    aArgs = {};\n  }\n  this._file = util.getArg(aArgs, 'file', null);\n  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n  this._mappings = new MappingList();\n  this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n    var sourceRoot = aSourceMapConsumer.sourceRoot;\n    var generator = new SourceMapGenerator({\n      file: aSourceMapConsumer.file,\n      sourceRoot: sourceRoot\n    });\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      var newMapping = {\n        generated: {\n          line: mapping.generatedLine,\n          column: mapping.generatedColumn\n        }\n      };\n\n      if (mapping.source != null) {\n        newMapping.source = mapping.source;\n        if (sourceRoot != null) {\n          newMapping.source = util.relative(sourceRoot, newMapping.source);\n        }\n\n        newMapping.original = {\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        };\n\n        if (mapping.name != null) {\n          newMapping.name = mapping.name;\n        }\n      }\n\n      generator.addMapping(newMapping);\n    });\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var sourceRelative = sourceFile;\n      if (sourceRoot !== null) {\n        sourceRelative = util.relative(sourceRoot, sourceFile);\n      }\n\n      if (!generator._sources.has(sourceRelative)) {\n        generator._sources.add(sourceRelative);\n      }\n\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        generator.setSourceContent(sourceFile, content);\n      }\n    });\n    return generator;\n  };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n *   - generated: An object with the generated line and column positions.\n *   - original: An object with the original line and column positions.\n *   - source: The original source file (relative to the sourceRoot).\n *   - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n  function SourceMapGenerator_addMapping(aArgs) {\n    var generated = util.getArg(aArgs, 'generated');\n    var original = util.getArg(aArgs, 'original', null);\n    var source = util.getArg(aArgs, 'source', null);\n    var name = util.getArg(aArgs, 'name', null);\n\n    if (!this._skipValidation) {\n      this._validateMapping(generated, original, source, name);\n    }\n\n    if (source != null) {\n      source = String(source);\n      if (!this._sources.has(source)) {\n        this._sources.add(source);\n      }\n    }\n\n    if (name != null) {\n      name = String(name);\n      if (!this._names.has(name)) {\n        this._names.add(name);\n      }\n    }\n\n    this._mappings.add({\n      generatedLine: generated.line,\n      generatedColumn: generated.column,\n      originalLine: original != null && original.line,\n      originalColumn: original != null && original.column,\n      source: source,\n      name: name\n    });\n  };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n    var source = aSourceFile;\n    if (this._sourceRoot != null) {\n      source = util.relative(this._sourceRoot, source);\n    }\n\n    if (aSourceContent != null) {\n      // Add the source content to the _sourcesContents map.\n      // Create a new _sourcesContents map if the property is null.\n      if (!this._sourcesContents) {\n        this._sourcesContents = Object.create(null);\n      }\n      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n    } else if (this._sourcesContents) {\n      // Remove the source file from the _sourcesContents map.\n      // If the _sourcesContents map is empty, set the property to null.\n      delete this._sourcesContents[util.toSetString(source)];\n      if (Object.keys(this._sourcesContents).length === 0) {\n        this._sourcesContents = null;\n      }\n    }\n  };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n *        If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n *        to be applied. If relative, it is relative to the SourceMapConsumer.\n *        This parameter is needed when the two source maps aren't in the same\n *        directory, and the source map to be applied contains relative source\n *        paths. If so, those relative source paths need to be rewritten\n *        relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n    var sourceFile = aSourceFile;\n    // If aSourceFile is omitted, we will use the file property of the SourceMap\n    if (aSourceFile == null) {\n      if (aSourceMapConsumer.file == null) {\n        throw new Error(\n          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n          'or the source map\\'s \"file\" property. Both were omitted.'\n        );\n      }\n      sourceFile = aSourceMapConsumer.file;\n    }\n    var sourceRoot = this._sourceRoot;\n    // Make \"sourceFile\" relative if an absolute Url is passed.\n    if (sourceRoot != null) {\n      sourceFile = util.relative(sourceRoot, sourceFile);\n    }\n    // Applying the SourceMap can add and remove items from the sources and\n    // the names array.\n    var newSources = new ArraySet();\n    var newNames = new ArraySet();\n\n    // Find mappings for the \"sourceFile\"\n    this._mappings.unsortedForEach(function (mapping) {\n      if (mapping.source === sourceFile && mapping.originalLine != null) {\n        // Check if it can be mapped by the source map, then update the mapping.\n        var original = aSourceMapConsumer.originalPositionFor({\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        });\n        if (original.source != null) {\n          // Copy mapping\n          mapping.source = original.source;\n          if (aSourceMapPath != null) {\n            mapping.source = util.join(aSourceMapPath, mapping.source)\n          }\n          if (sourceRoot != null) {\n            mapping.source = util.relative(sourceRoot, mapping.source);\n          }\n          mapping.originalLine = original.line;\n          mapping.originalColumn = original.column;\n          if (original.name != null) {\n            mapping.name = original.name;\n          }\n        }\n      }\n\n      var source = mapping.source;\n      if (source != null && !newSources.has(source)) {\n        newSources.add(source);\n      }\n\n      var name = mapping.name;\n      if (name != null && !newNames.has(name)) {\n        newNames.add(name);\n      }\n\n    }, this);\n    this._sources = newSources;\n    this._names = newNames;\n\n    // Copy sourcesContents of applied map.\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aSourceMapPath != null) {\n          sourceFile = util.join(aSourceMapPath, sourceFile);\n        }\n        if (sourceRoot != null) {\n          sourceFile = util.relative(sourceRoot, sourceFile);\n        }\n        this.setSourceContent(sourceFile, content);\n      }\n    }, this);\n  };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n *   1. Just the generated position.\n *   2. The Generated position, original position, and original source.\n *   3. Generated and original position, original source, as well as a name\n *      token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n                                              aName) {\n    // When aOriginal is truthy but has empty values for .line and .column,\n    // it is most likely a programmer error. In this case we throw a very\n    // specific error message to try to guide them the right way.\n    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n        throw new Error(\n            'original.line and original.column are not numbers -- you probably meant to omit ' +\n            'the original mapping entirely and only map the generated position. If so, pass ' +\n            'null for the original mapping instead of an object with empty or null values.'\n        );\n    }\n\n    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n        && aGenerated.line > 0 && aGenerated.column >= 0\n        && !aOriginal && !aSource && !aName) {\n      // Case 1.\n      return;\n    }\n    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n             && aGenerated.line > 0 && aGenerated.column >= 0\n             && aOriginal.line > 0 && aOriginal.column >= 0\n             && aSource) {\n      // Cases 2 and 3.\n      return;\n    }\n    else {\n      throw new Error('Invalid mapping: ' + JSON.stringify({\n        generated: aGenerated,\n        source: aSource,\n        original: aOriginal,\n        name: aName\n      }));\n    }\n  };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n  function SourceMapGenerator_serializeMappings() {\n    var previousGeneratedColumn = 0;\n    var previousGeneratedLine = 1;\n    var previousOriginalColumn = 0;\n    var previousOriginalLine = 0;\n    var previousName = 0;\n    var previousSource = 0;\n    var result = '';\n    var next;\n    var mapping;\n    var nameIdx;\n    var sourceIdx;\n\n    var mappings = this._mappings.toArray();\n    for (var i = 0, len = mappings.length; i < len; i++) {\n      mapping = mappings[i];\n      next = ''\n\n      if (mapping.generatedLine !== previousGeneratedLine) {\n        previousGeneratedColumn = 0;\n        while (mapping.generatedLine !== previousGeneratedLine) {\n          next += ';';\n          previousGeneratedLine++;\n        }\n      }\n      else {\n        if (i > 0) {\n          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n            continue;\n          }\n          next += ',';\n        }\n      }\n\n      next += base64VLQ.encode(mapping.generatedColumn\n                                 - previousGeneratedColumn);\n      previousGeneratedColumn = mapping.generatedColumn;\n\n      if (mapping.source != null) {\n        sourceIdx = this._sources.indexOf(mapping.source);\n        next += base64VLQ.encode(sourceIdx - previousSource);\n        previousSource = sourceIdx;\n\n        // lines are stored 0-based in SourceMap spec version 3\n        next += base64VLQ.encode(mapping.originalLine - 1\n                                   - previousOriginalLine);\n        previousOriginalLine = mapping.originalLine - 1;\n\n        next += base64VLQ.encode(mapping.originalColumn\n                                   - previousOriginalColumn);\n        previousOriginalColumn = mapping.originalColumn;\n\n        if (mapping.name != null) {\n          nameIdx = this._names.indexOf(mapping.name);\n          next += base64VLQ.encode(nameIdx - previousName);\n          previousName = nameIdx;\n        }\n      }\n\n      result += next;\n    }\n\n    return result;\n  };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n    return aSources.map(function (source) {\n      if (!this._sourcesContents) {\n        return null;\n      }\n      if (aSourceRoot != null) {\n        source = util.relative(aSourceRoot, source);\n      }\n      var key = util.toSetString(source);\n      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n        ? this._sourcesContents[key]\n        : null;\n    }, this);\n  };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n  function SourceMapGenerator_toJSON() {\n    var map = {\n      version: this._version,\n      sources: this._sources.toArray(),\n      names: this._names.toArray(),\n      mappings: this._serializeMappings()\n    };\n    if (this._file != null) {\n      map.file = this._file;\n    }\n    if (this._sourceRoot != null) {\n      map.sourceRoot = this._sourceRoot;\n    }\n    if (this._sourcesContents) {\n      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n    }\n\n    return map;\n  };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n  function SourceMapGenerator_toString() {\n    return JSON.stringify(this.toJSON());\n  };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-generator.js\n// module id = 1\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n *  * Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above\n *    copyright notice, this list of conditions and the following\n *    disclaimer in the documentation and/or other materials provided\n *    with the distribution.\n *  * Neither the name of Google Inc. nor the names of its\n *    contributors may be used to endorse or promote products derived\n *    from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n//   Continuation\n//   |    Sign\n//   |    |\n//   V    V\n//   101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n  return aValue < 0\n    ? ((-aValue) << 1) + 1\n    : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n  var isNegative = (aValue & 1) === 1;\n  var shifted = aValue >> 1;\n  return isNegative\n    ? -shifted\n    : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n  var encoded = \"\";\n  var digit;\n\n  var vlq = toVLQSigned(aValue);\n\n  do {\n    digit = vlq & VLQ_BASE_MASK;\n    vlq >>>= VLQ_BASE_SHIFT;\n    if (vlq > 0) {\n      // There are still more digits in this value, so we must make sure the\n      // continuation bit is marked.\n      digit |= VLQ_CONTINUATION_BIT;\n    }\n    encoded += base64.encode(digit);\n  } while (vlq > 0);\n\n  return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n  var strLen = aStr.length;\n  var result = 0;\n  var shift = 0;\n  var continuation, digit;\n\n  do {\n    if (aIndex >= strLen) {\n      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n    }\n\n    digit = base64.decode(aStr.charCodeAt(aIndex++));\n    if (digit === -1) {\n      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n    }\n\n    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n    digit &= VLQ_BASE_MASK;\n    result = result + (digit << shift);\n    shift += VLQ_BASE_SHIFT;\n  } while (continuation);\n\n  aOutParam.value = fromVLQSigned(result);\n  aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64-vlq.js\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n  if (0 <= number && number < intToCharMap.length) {\n    return intToCharMap[number];\n  }\n  throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n  var bigA = 65;     // 'A'\n  var bigZ = 90;     // 'Z'\n\n  var littleA = 97;  // 'a'\n  var littleZ = 122; // 'z'\n\n  var zero = 48;     // '0'\n  var nine = 57;     // '9'\n\n  var plus = 43;     // '+'\n  var slash = 47;    // '/'\n\n  var littleOffset = 26;\n  var numberOffset = 52;\n\n  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n  if (bigA <= charCode && charCode <= bigZ) {\n    return (charCode - bigA);\n  }\n\n  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n  if (littleA <= charCode && charCode <= littleZ) {\n    return (charCode - littleA + littleOffset);\n  }\n\n  // 52 - 61: 0123456789\n  if (zero <= charCode && charCode <= nine) {\n    return (charCode - zero + numberOffset);\n  }\n\n  // 62: +\n  if (charCode == plus) {\n    return 62;\n  }\n\n  // 63: /\n  if (charCode == slash) {\n    return 63;\n  }\n\n  // Invalid base64 digit.\n  return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64.js\n// module id = 3\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n  if (aName in aArgs) {\n    return aArgs[aName];\n  } else if (arguments.length === 3) {\n    return aDefaultValue;\n  } else {\n    throw new Error('\"' + aName + '\" is a required argument.');\n  }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n  var match = aUrl.match(urlRegexp);\n  if (!match) {\n    return null;\n  }\n  return {\n    scheme: match[1],\n    auth: match[2],\n    host: match[3],\n    port: match[4],\n    path: match[5]\n  };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n  var url = '';\n  if (aParsedUrl.scheme) {\n    url += aParsedUrl.scheme + ':';\n  }\n  url += '//';\n  if (aParsedUrl.auth) {\n    url += aParsedUrl.auth + '@';\n  }\n  if (aParsedUrl.host) {\n    url += aParsedUrl.host;\n  }\n  if (aParsedUrl.port) {\n    url += \":\" + aParsedUrl.port\n  }\n  if (aParsedUrl.path) {\n    url += aParsedUrl.path;\n  }\n  return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n  var path = aPath;\n  var url = urlParse(aPath);\n  if (url) {\n    if (!url.path) {\n      return aPath;\n    }\n    path = url.path;\n  }\n  var isAbsolute = exports.isAbsolute(path);\n\n  var parts = path.split(/\\/+/);\n  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n    part = parts[i];\n    if (part === '.') {\n      parts.splice(i, 1);\n    } else if (part === '..') {\n      up++;\n    } else if (up > 0) {\n      if (part === '') {\n        // The first part is blank if the path is absolute. Trying to go\n        // above the root is a no-op. Therefore we can remove all '..' parts\n        // directly after the root.\n        parts.splice(i + 1, up);\n        up = 0;\n      } else {\n        parts.splice(i, 2);\n        up--;\n      }\n    }\n  }\n  path = parts.join('/');\n\n  if (path === '') {\n    path = isAbsolute ? '/' : '.';\n  }\n\n  if (url) {\n    url.path = path;\n    return urlGenerate(url);\n  }\n  return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n *   first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n *   is updated with the result and aRoot is returned. Otherwise the result\n *   is returned.\n *   - If aPath is absolute, the result is aPath.\n *   - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n  if (aPath === \"\") {\n    aPath = \".\";\n  }\n  var aPathUrl = urlParse(aPath);\n  var aRootUrl = urlParse(aRoot);\n  if (aRootUrl) {\n    aRoot = aRootUrl.path || '/';\n  }\n\n  // `join(foo, '//www.example.org')`\n  if (aPathUrl && !aPathUrl.scheme) {\n    if (aRootUrl) {\n      aPathUrl.scheme = aRootUrl.scheme;\n    }\n    return urlGenerate(aPathUrl);\n  }\n\n  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n    return aPath;\n  }\n\n  // `join('http://', 'www.example.com')`\n  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n    aRootUrl.host = aPath;\n    return urlGenerate(aRootUrl);\n  }\n\n  var joined = aPath.charAt(0) === '/'\n    ? aPath\n    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n  if (aRootUrl) {\n    aRootUrl.path = joined;\n    return urlGenerate(aRootUrl);\n  }\n  return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n  return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n\n  aRoot = aRoot.replace(/\\/$/, '');\n\n  // It is possible for the path to be above the root. In this case, simply\n  // checking whether the root is a prefix of the path won't work. Instead, we\n  // need to remove components from the root one by one, until either we find\n  // a prefix that fits, or we run out of components to remove.\n  var level = 0;\n  while (aPath.indexOf(aRoot + '/') !== 0) {\n    var index = aRoot.lastIndexOf(\"/\");\n    if (index < 0) {\n      return aPath;\n    }\n\n    // If the only part of the root that is left is the scheme (i.e. http://,\n    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n    // have exhausted all components, so the path is not relative to the root.\n    aRoot = aRoot.slice(0, index);\n    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n      return aPath;\n    }\n\n    ++level;\n  }\n\n  // Make sure we add a \"../\" for each component we removed from the root.\n  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n  var obj = Object.create(null);\n  return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n  return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return '$' + aStr;\n  }\n\n  return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return aStr.slice(1);\n  }\n\n  return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n  if (!s) {\n    return false;\n  }\n\n  var length = s.length;\n\n  if (length < 9 /* \"__proto__\".length */) {\n    return false;\n  }\n\n  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n    return false;\n  }\n\n  for (var i = length - 10; i >= 0; i--) {\n    if (s.charCodeAt(i) !== 36 /* '$' */) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n  var cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0 || onlyCompareOriginal) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0 || onlyCompareGenerated) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n  if (aStr1 === aStr2) {\n    return 0;\n  }\n\n  if (aStr1 === null) {\n    return 1; // aStr2 !== null\n  }\n\n  if (aStr2 === null) {\n    return -1; // aStr1 !== null\n  }\n\n  if (aStr1 > aStr2) {\n    return 1;\n  }\n\n  return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n  return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n  sourceURL = sourceURL || '';\n\n  if (sourceRoot) {\n    // This follows what Chrome does.\n    if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n      sourceRoot += '/';\n    }\n    // The spec says:\n    //   Line 4: An optional source root, useful for relocating source\n    //   files on a server or removing repeated values in the\n    //   “sources” entry.  This value is prepended to the individual\n    //   entries in the “source” field.\n    sourceURL = sourceRoot + sourceURL;\n  }\n\n  // Historically, SourceMapConsumer did not take the sourceMapURL as\n  // a parameter.  This mode is still somewhat supported, which is why\n  // this code block is conditional.  However, it's preferable to pass\n  // the source map URL to SourceMapConsumer, so that this function\n  // can implement the source URL resolution algorithm as outlined in\n  // the spec.  This block is basically the equivalent of:\n  //    new URL(sourceURL, sourceMapURL).toString()\n  // ... except it avoids using URL, which wasn't available in the\n  // older releases of node still supported by this library.\n  //\n  // The spec says:\n  //   If the sources are not absolute URLs after prepending of the\n  //   “sourceRoot”, the sources are resolved relative to the\n  //   SourceMap (like resolving script src in a html document).\n  if (sourceMapURL) {\n    var parsed = urlParse(sourceMapURL);\n    if (!parsed) {\n      throw new Error(\"sourceMapURL could not be parsed\");\n    }\n    if (parsed.path) {\n      // Strip the last path component, but keep the \"/\".\n      var index = parsed.path.lastIndexOf('/');\n      if (index >= 0) {\n        parsed.path = parsed.path.substring(0, index + 1);\n      }\n    }\n    sourceURL = join(urlGenerate(parsed), sourceURL);\n  }\n\n  return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/util.js\n// module id = 4\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n  this._array = [];\n  this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n  var set = new ArraySet();\n  for (var i = 0, len = aArray.length; i < len; i++) {\n    set.add(aArray[i], aAllowDuplicates);\n  }\n  return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n  var idx = this._array.length;\n  if (!isDuplicate || aAllowDuplicates) {\n    this._array.push(aStr);\n  }\n  if (!isDuplicate) {\n    if (hasNativeMap) {\n      this._set.set(aStr, idx);\n    } else {\n      this._set[sStr] = idx;\n    }\n  }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n  if (hasNativeMap) {\n    return this._set.has(aStr);\n  } else {\n    var sStr = util.toSetString(aStr);\n    return has.call(this._set, sStr);\n  }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n  if (hasNativeMap) {\n    var idx = this._set.get(aStr);\n    if (idx >= 0) {\n        return idx;\n    }\n  } else {\n    var sStr = util.toSetString(aStr);\n    if (has.call(this._set, sStr)) {\n      return this._set[sStr];\n    }\n  }\n\n  throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n  if (aIdx >= 0 && aIdx < this._array.length) {\n    return this._array[aIdx];\n  }\n  throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n  return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/array-set.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n  // Optimized for most common case\n  var lineA = mappingA.generatedLine;\n  var lineB = mappingB.generatedLine;\n  var columnA = mappingA.generatedColumn;\n  var columnB = mappingB.generatedColumn;\n  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n  this._array = [];\n  this._sorted = true;\n  // Serves as infimum\n  this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n  function MappingList_forEach(aCallback, aThisArg) {\n    this._array.forEach(aCallback, aThisArg);\n  };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n  if (generatedPositionAfter(this._last, aMapping)) {\n    this._last = aMapping;\n    this._array.push(aMapping);\n  } else {\n    this._sorted = false;\n    this._array.push(aMapping);\n  }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n  if (!this._sorted) {\n    this._array.sort(util.compareByGeneratedPositionsInflated);\n    this._sorted = true;\n  }\n  return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/mapping-list.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = util.parseSourceMapInput(aSourceMap);\n  }\n\n  return sourceMap.sections != null\n    ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n    : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n  return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n//     {\n//       generatedLine: The line number in the generated code,\n//       generatedColumn: The column number in the generated code,\n//       source: The path to the original source file that generated this\n//               chunk of code,\n//       originalLine: The line number in the original source that\n//                     corresponds to this chunk of generated code,\n//       originalColumn: The column number in the original source that\n//                       corresponds to this chunk of generated code,\n//       name: The name of the original symbol which generated this chunk of\n//             code.\n//     }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n  configurable: true,\n  enumerable: true,\n  get: function () {\n    if (!this.__generatedMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__generatedMappings;\n  }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n  configurable: true,\n  enumerable: true,\n  get: function () {\n    if (!this.__originalMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__originalMappings;\n  }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n    var c = aStr.charAt(index);\n    return c === \";\" || c === \",\";\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    throw new Error(\"Subclasses must implement _parseMappings\");\n  };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n *        The function that is called with each mapping.\n * @param Object aContext\n *        Optional. If specified, this object will be the value of `this` every\n *        time that `aCallback` is called.\n * @param aOrder\n *        Either `SourceMapConsumer.GENERATED_ORDER` or\n *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n *        iterate over the mappings sorted by the generated file's line/column\n *        order or the original's source/line/column order, respectively. Defaults to\n *        `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n    var context = aContext || null;\n    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n    var mappings;\n    switch (order) {\n    case SourceMapConsumer.GENERATED_ORDER:\n      mappings = this._generatedMappings;\n      break;\n    case SourceMapConsumer.ORIGINAL_ORDER:\n      mappings = this._originalMappings;\n      break;\n    default:\n      throw new Error(\"Unknown order of iteration.\");\n    }\n\n    var sourceRoot = this.sourceRoot;\n    mappings.map(function (mapping) {\n      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n      source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n      return {\n        source: source,\n        generatedLine: mapping.generatedLine,\n        generatedColumn: mapping.generatedColumn,\n        originalLine: mapping.originalLine,\n        originalColumn: mapping.originalColumn,\n        name: mapping.name === null ? null : this._names.at(mapping.name)\n      };\n    }, this).forEach(aCallback, context);\n  };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.  The line number is 1-based.\n *   - column: Optional. the column number in the original source.\n *    The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n *   - line: The line number in the generated source, or null.  The\n *    line number is 1-based.\n *   - column: The column number in the generated source, or null.\n *    The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n    var line = util.getArg(aArgs, 'line');\n\n    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n    // returns the index of the closest mapping less than the needle. By\n    // setting needle.originalColumn to 0, we thus find the last mapping for\n    // the given line, provided such a mapping exists.\n    var needle = {\n      source: util.getArg(aArgs, 'source'),\n      originalLine: line,\n      originalColumn: util.getArg(aArgs, 'column', 0)\n    };\n\n    needle.source = this._findSourceIndex(needle.source);\n    if (needle.source < 0) {\n      return [];\n    }\n\n    var mappings = [];\n\n    var index = this._findMapping(needle,\n                                  this._originalMappings,\n                                  \"originalLine\",\n                                  \"originalColumn\",\n                                  util.compareByOriginalPositions,\n                                  binarySearch.LEAST_UPPER_BOUND);\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (aArgs.column === undefined) {\n        var originalLine = mapping.originalLine;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we found. Since\n        // mappings are sorted, this is guaranteed to find all mappings for\n        // the line we found.\n        while (mapping && mapping.originalLine === originalLine) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      } else {\n        var originalColumn = mapping.originalColumn;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we were searching for.\n        // Since mappings are sorted, this is guaranteed to find all mappings for\n        // the line we are searching for.\n        while (mapping &&\n               mapping.originalLine === line &&\n               mapping.originalColumn == originalColumn) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      }\n    }\n\n    return mappings;\n  };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - sources: An array of URLs to the original source files.\n *   - names: An array of identifiers which can be referrenced by individual mappings.\n *   - sourceRoot: Optional. The URL root from which all sources are relative.\n *   - sourcesContent: Optional. An array of contents of the original source files.\n *   - mappings: A string of base64 VLQs which contain the actual mappings.\n *   - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n *     {\n *       version : 3,\n *       file: \"out.js\",\n *       sourceRoot : \"\",\n *       sources: [\"foo.js\", \"bar.js\"],\n *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n *       mappings: \"AA,AB;;ABCDE;\"\n *     }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found.  This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = util.parseSourceMapInput(aSourceMap);\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sources = util.getArg(sourceMap, 'sources');\n  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n  // requires the array) to play nice here.\n  var names = util.getArg(sourceMap, 'names', []);\n  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n  var mappings = util.getArg(sourceMap, 'mappings');\n  var file = util.getArg(sourceMap, 'file', null);\n\n  // Once again, Sass deviates from the spec and supplies the version as a\n  // string rather than a number, so we use loose equality checking here.\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  if (sourceRoot) {\n    sourceRoot = util.normalize(sourceRoot);\n  }\n\n  sources = sources\n    .map(String)\n    // Some source maps produce relative source paths like \"./foo.js\" instead of\n    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n    // See bugzil.la/1090768.\n    .map(util.normalize)\n    // Always ensure that absolute sources are internally stored relative to\n    // the source root, if the source root is absolute. Not doing this would\n    // be particularly problematic when the source root is a prefix of the\n    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n    .map(function (source) {\n      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n        ? util.relative(sourceRoot, source)\n        : source;\n    });\n\n  // Pass `true` below to allow duplicate names and sources. While source maps\n  // are intended to be compressed and deduplicated, the TypeScript compiler\n  // sometimes generates source maps with duplicates in them. See Github issue\n  // #72 and bugzil.la/889492.\n  this._names = ArraySet.fromArray(names.map(String), true);\n  this._sources = ArraySet.fromArray(sources, true);\n\n  this._absoluteSources = this._sources.toArray().map(function (s) {\n    return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n  });\n\n  this.sourceRoot = sourceRoot;\n  this.sourcesContent = sourcesContent;\n  this._mappings = mappings;\n  this._sourceMapURL = aSourceMapURL;\n  this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source.  Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n  var relativeSource = aSource;\n  if (this.sourceRoot != null) {\n    relativeSource = util.relative(this.sourceRoot, relativeSource);\n  }\n\n  if (this._sources.has(relativeSource)) {\n    return this._sources.indexOf(relativeSource);\n  }\n\n  // Maybe aSource is an absolute URL as returned by |sources|.  In\n  // this case we can't simply undo the transform.\n  var i;\n  for (i = 0; i < this._absoluteSources.length; ++i) {\n    if (this._absoluteSources[i] == aSource) {\n      return i;\n    }\n  }\n\n  return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n *        The source map that will be consumed.\n * @param String aSourceMapURL\n *        The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n  function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n    smc.sourceRoot = aSourceMap._sourceRoot;\n    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n                                                            smc.sourceRoot);\n    smc.file = aSourceMap._file;\n    smc._sourceMapURL = aSourceMapURL;\n    smc._absoluteSources = smc._sources.toArray().map(function (s) {\n      return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n    });\n\n    // Because we are modifying the entries (by converting string sources and\n    // names to indices into the sources and names ArraySets), we have to make\n    // a copy of the entry or else bad things happen. Shared mutable state\n    // strikes again! See github issue #191.\n\n    var generatedMappings = aSourceMap._mappings.toArray().slice();\n    var destGeneratedMappings = smc.__generatedMappings = [];\n    var destOriginalMappings = smc.__originalMappings = [];\n\n    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n      var srcMapping = generatedMappings[i];\n      var destMapping = new Mapping;\n      destMapping.generatedLine = srcMapping.generatedLine;\n      destMapping.generatedColumn = srcMapping.generatedColumn;\n\n      if (srcMapping.source) {\n        destMapping.source = sources.indexOf(srcMapping.source);\n        destMapping.originalLine = srcMapping.originalLine;\n        destMapping.originalColumn = srcMapping.originalColumn;\n\n        if (srcMapping.name) {\n          destMapping.name = names.indexOf(srcMapping.name);\n        }\n\n        destOriginalMappings.push(destMapping);\n      }\n\n      destGeneratedMappings.push(destMapping);\n    }\n\n    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n    return smc;\n  };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    return this._absoluteSources.slice();\n  }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n  this.generatedLine = 0;\n  this.generatedColumn = 0;\n  this.source = null;\n  this.originalLine = null;\n  this.originalColumn = null;\n  this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    var generatedLine = 1;\n    var previousGeneratedColumn = 0;\n    var previousOriginalLine = 0;\n    var previousOriginalColumn = 0;\n    var previousSource = 0;\n    var previousName = 0;\n    var length = aStr.length;\n    var index = 0;\n    var cachedSegments = {};\n    var temp = {};\n    var originalMappings = [];\n    var generatedMappings = [];\n    var mapping, str, segment, end, value;\n\n    while (index < length) {\n      if (aStr.charAt(index) === ';') {\n        generatedLine++;\n        index++;\n        previousGeneratedColumn = 0;\n      }\n      else if (aStr.charAt(index) === ',') {\n        index++;\n      }\n      else {\n        mapping = new Mapping();\n        mapping.generatedLine = generatedLine;\n\n        // Because each offset is encoded relative to the previous one,\n        // many segments often have the same encoding. We can exploit this\n        // fact by caching the parsed variable length fields of each segment,\n        // allowing us to avoid a second parse if we encounter the same\n        // segment again.\n        for (end = index; end < length; end++) {\n          if (this._charIsMappingSeparator(aStr, end)) {\n            break;\n          }\n        }\n        str = aStr.slice(index, end);\n\n        segment = cachedSegments[str];\n        if (segment) {\n          index += str.length;\n        } else {\n          segment = [];\n          while (index < end) {\n            base64VLQ.decode(aStr, index, temp);\n            value = temp.value;\n            index = temp.rest;\n            segment.push(value);\n          }\n\n          if (segment.length === 2) {\n            throw new Error('Found a source, but no line and column');\n          }\n\n          if (segment.length === 3) {\n            throw new Error('Found a source and line, but no column');\n          }\n\n          cachedSegments[str] = segment;\n        }\n\n        // Generated column.\n        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n        previousGeneratedColumn = mapping.generatedColumn;\n\n        if (segment.length > 1) {\n          // Original source.\n          mapping.source = previousSource + segment[1];\n          previousSource += segment[1];\n\n          // Original line.\n          mapping.originalLine = previousOriginalLine + segment[2];\n          previousOriginalLine = mapping.originalLine;\n          // Lines are stored 0-based\n          mapping.originalLine += 1;\n\n          // Original column.\n          mapping.originalColumn = previousOriginalColumn + segment[3];\n          previousOriginalColumn = mapping.originalColumn;\n\n          if (segment.length > 4) {\n            // Original name.\n            mapping.name = previousName + segment[4];\n            previousName += segment[4];\n          }\n        }\n\n        generatedMappings.push(mapping);\n        if (typeof mapping.originalLine === 'number') {\n          originalMappings.push(mapping);\n        }\n      }\n    }\n\n    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n    this.__generatedMappings = generatedMappings;\n\n    quickSort(originalMappings, util.compareByOriginalPositions);\n    this.__originalMappings = originalMappings;\n  };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n                                         aColumnName, aComparator, aBias) {\n    // To return the position we are searching for, we must first find the\n    // mapping for the given position and then return the opposite position it\n    // points to. Because the mappings are sorted, we can use binary search to\n    // find the best mapping.\n\n    if (aNeedle[aLineName] <= 0) {\n      throw new TypeError('Line must be greater than or equal to 1, got '\n                          + aNeedle[aLineName]);\n    }\n    if (aNeedle[aColumnName] < 0) {\n      throw new TypeError('Column must be greater than or equal to 0, got '\n                          + aNeedle[aColumnName]);\n    }\n\n    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n  };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n  function SourceMapConsumer_computeColumnSpans() {\n    for (var index = 0; index < this._generatedMappings.length; ++index) {\n      var mapping = this._generatedMappings[index];\n\n      // Mappings do not contain a field for the last generated columnt. We\n      // can come up with an optimistic estimate, however, by assuming that\n      // mappings are contiguous (i.e. given two consecutive mappings, the\n      // first mapping ends where the second one starts).\n      if (index + 1 < this._generatedMappings.length) {\n        var nextMapping = this._generatedMappings[index + 1];\n\n        if (mapping.generatedLine === nextMapping.generatedLine) {\n          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n          continue;\n        }\n      }\n\n      // The last mapping for each line spans the entire line.\n      mapping.lastGeneratedColumn = Infinity;\n    }\n  };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.  The line number\n *     is 1-based.\n *   - column: The column number in the generated source.  The column\n *     number is 0-based.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.  The\n *     line number is 1-based.\n *   - column: The column number in the original source, or null.  The\n *     column number is 0-based.\n *   - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n  function SourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._generatedMappings,\n      \"generatedLine\",\n      \"generatedColumn\",\n      util.compareByGeneratedPositionsDeflated,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._generatedMappings[index];\n\n      if (mapping.generatedLine === needle.generatedLine) {\n        var source = util.getArg(mapping, 'source', null);\n        if (source !== null) {\n          source = this._sources.at(source);\n          source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n        }\n        var name = util.getArg(mapping, 'name', null);\n        if (name !== null) {\n          name = this._names.at(name);\n        }\n        return {\n          source: source,\n          line: util.getArg(mapping, 'originalLine', null),\n          column: util.getArg(mapping, 'originalColumn', null),\n          name: name\n        };\n      }\n    }\n\n    return {\n      source: null,\n      line: null,\n      column: null,\n      name: null\n    };\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n    if (!this.sourcesContent) {\n      return false;\n    }\n    return this.sourcesContent.length >= this._sources.size() &&\n      !this.sourcesContent.some(function (sc) { return sc == null; });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    if (!this.sourcesContent) {\n      return null;\n    }\n\n    var index = this._findSourceIndex(aSource);\n    if (index >= 0) {\n      return this.sourcesContent[index];\n    }\n\n    var relativeSource = aSource;\n    if (this.sourceRoot != null) {\n      relativeSource = util.relative(this.sourceRoot, relativeSource);\n    }\n\n    var url;\n    if (this.sourceRoot != null\n        && (url = util.urlParse(this.sourceRoot))) {\n      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n      // many users. We can help them out when they expect file:// URIs to\n      // behave like it would if they were running a local HTTP server. See\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n      var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n      if (url.scheme == \"file\"\n          && this._sources.has(fileUriAbsPath)) {\n        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n      }\n\n      if ((!url.path || url.path == \"/\")\n          && this._sources.has(\"/\" + relativeSource)) {\n        return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n      }\n    }\n\n    // This function is used recursively from\n    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n    // don't want to throw if we can't find the source - we just want to\n    // return null, so we provide a flag to exit gracefully.\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.  The line number\n *     is 1-based.\n *   - column: The column number in the original source.  The column\n *     number is 0-based.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.  The\n *     line number is 1-based.\n *   - column: The column number in the generated source, or null.\n *     The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n  function SourceMapConsumer_generatedPositionFor(aArgs) {\n    var source = util.getArg(aArgs, 'source');\n    source = this._findSourceIndex(source);\n    if (source < 0) {\n      return {\n        line: null,\n        column: null,\n        lastColumn: null\n      };\n    }\n\n    var needle = {\n      source: source,\n      originalLine: util.getArg(aArgs, 'line'),\n      originalColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._originalMappings,\n      \"originalLine\",\n      \"originalColumn\",\n      util.compareByOriginalPositions,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (mapping.source === needle.source) {\n        return {\n          line: util.getArg(mapping, 'generatedLine', null),\n          column: util.getArg(mapping, 'generatedColumn', null),\n          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n        };\n      }\n    }\n\n    return {\n      line: null,\n      column: null,\n      lastColumn: null\n    };\n  };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - file: Optional. The generated file this source map is associated with.\n *   - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n *   - offset: The offset into the original specified at which this section\n *       begins to apply, defined as an object with a \"line\" and \"column\"\n *       field.\n *   - map: A source map definition. This source map could also be indexed,\n *       but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n *  {\n *    version : 3,\n *    file: \"app.js\",\n *    sections: [{\n *      offset: {line:100, column:10},\n *      map: {\n *        version : 3,\n *        file: \"section.js\",\n *        sources: [\"foo.js\", \"bar.js\"],\n *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n *        mappings: \"AAAA,E;;ABCDE;\"\n *      }\n *    }],\n *  }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found.  This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = util.parseSourceMapInput(aSourceMap);\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sections = util.getArg(sourceMap, 'sections');\n\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n\n  var lastOffset = {\n    line: -1,\n    column: 0\n  };\n  this._sections = sections.map(function (s) {\n    if (s.url) {\n      // The url field will require support for asynchronicity.\n      // See https://github.com/mozilla/source-map/issues/16\n      throw new Error('Support for url field in sections not implemented.');\n    }\n    var offset = util.getArg(s, 'offset');\n    var offsetLine = util.getArg(offset, 'line');\n    var offsetColumn = util.getArg(offset, 'column');\n\n    if (offsetLine < lastOffset.line ||\n        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n      throw new Error('Section offsets must be ordered and non-overlapping.');\n    }\n    lastOffset = offset;\n\n    return {\n      generatedOffset: {\n        // The offset fields are 0-based, but we use 1-based indices when\n        // encoding/decoding from VLQ.\n        generatedLine: offsetLine + 1,\n        generatedColumn: offsetColumn + 1\n      },\n      consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n    }\n  });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    var sources = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n        sources.push(this._sections[i].consumer.sources[j]);\n      }\n    }\n    return sources;\n  }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.  The line number\n *     is 1-based.\n *   - column: The column number in the generated source.  The column\n *     number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.  The\n *     line number is 1-based.\n *   - column: The column number in the original source, or null.  The\n *     column number is 0-based.\n *   - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    // Find the section containing the generated position we're trying to map\n    // to an original position.\n    var sectionIndex = binarySearch.search(needle, this._sections,\n      function(needle, section) {\n        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n        if (cmp) {\n          return cmp;\n        }\n\n        return (needle.generatedColumn -\n                section.generatedOffset.generatedColumn);\n      });\n    var section = this._sections[sectionIndex];\n\n    if (!section) {\n      return {\n        source: null,\n        line: null,\n        column: null,\n        name: null\n      };\n    }\n\n    return section.consumer.originalPositionFor({\n      line: needle.generatedLine -\n        (section.generatedOffset.generatedLine - 1),\n      column: needle.generatedColumn -\n        (section.generatedOffset.generatedLine === needle.generatedLine\n         ? section.generatedOffset.generatedColumn - 1\n         : 0),\n      bias: aArgs.bias\n    });\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n    return this._sections.every(function (s) {\n      return s.consumer.hasContentsOfAllSources();\n    });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      var content = section.consumer.sourceContentFor(aSource, true);\n      if (content) {\n        return content;\n      }\n    }\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.  The line number\n *     is 1-based.\n *   - column: The column number in the original source.  The column\n *     number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.  The\n *     line number is 1-based. \n *   - column: The column number in the generated source, or null.\n *     The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      // Only consider this section if the requested source is in the list of\n      // sources of the consumer.\n      if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n        continue;\n      }\n      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n      if (generatedPosition) {\n        var ret = {\n          line: generatedPosition.line +\n            (section.generatedOffset.generatedLine - 1),\n          column: generatedPosition.column +\n            (section.generatedOffset.generatedLine === generatedPosition.line\n             ? section.generatedOffset.generatedColumn - 1\n             : 0)\n        };\n        return ret;\n      }\n    }\n\n    return {\n      line: null,\n      column: null\n    };\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    this.__generatedMappings = [];\n    this.__originalMappings = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n      var sectionMappings = section.consumer._generatedMappings;\n      for (var j = 0; j < sectionMappings.length; j++) {\n        var mapping = sectionMappings[j];\n\n        var source = section.consumer._sources.at(mapping.source);\n        source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n        this._sources.add(source);\n        source = this._sources.indexOf(source);\n\n        var name = null;\n        if (mapping.name) {\n          name = section.consumer._names.at(mapping.name);\n          this._names.add(name);\n          name = this._names.indexOf(name);\n        }\n\n        // The mappings coming from the consumer for the section have\n        // generated positions relative to the start of the section, so we\n        // need to offset them to be relative to the start of the concatenated\n        // generated file.\n        var adjustedMapping = {\n          source: source,\n          generatedLine: mapping.generatedLine +\n            (section.generatedOffset.generatedLine - 1),\n          generatedColumn: mapping.generatedColumn +\n            (section.generatedOffset.generatedLine === mapping.generatedLine\n            ? section.generatedOffset.generatedColumn - 1\n            : 0),\n          originalLine: mapping.originalLine,\n          originalColumn: mapping.originalColumn,\n          name: name\n        };\n\n        this.__generatedMappings.push(adjustedMapping);\n        if (typeof adjustedMapping.originalLine === 'number') {\n          this.__originalMappings.push(adjustedMapping);\n        }\n      }\n    }\n\n    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n  };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-consumer.js\n// module id = 7\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n  // This function terminates when one of the following is true:\n  //\n  //   1. We find the exact element we are looking for.\n  //\n  //   2. We did not find the exact element, but we can return the index of\n  //      the next-closest element.\n  //\n  //   3. We did not find the exact element, and there is no next-closest\n  //      element than the one we are searching for, so we return -1.\n  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n  if (cmp === 0) {\n    // Found the element we are looking for.\n    return mid;\n  }\n  else if (cmp > 0) {\n    // Our needle is greater than aHaystack[mid].\n    if (aHigh - mid > 1) {\n      // The element is in the upper half.\n      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // The exact needle element was not found in this haystack. Determine if\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return aHigh < aHaystack.length ? aHigh : -1;\n    } else {\n      return mid;\n    }\n  }\n  else {\n    // Our needle is less than aHaystack[mid].\n    if (mid - aLow > 1) {\n      // The element is in the lower half.\n      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return mid;\n    } else {\n      return aLow < 0 ? -1 : aLow;\n    }\n  }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n *     array and returns -1, 0, or 1 depending on whether the needle is less\n *     than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n  if (aHaystack.length === 0) {\n    return -1;\n  }\n\n  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n  if (index < 0) {\n    return -1;\n  }\n\n  // We have found either the exact element, or the next-closest element than\n  // the one we are searching for. However, there may be more than one such\n  // element. Make sure we always return the smallest of these.\n  while (index - 1 >= 0) {\n    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n      break;\n    }\n    --index;\n  }\n\n  return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/binary-search.js\n// module id = 8\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n *        The array.\n * @param {Number} x\n *        The index of the first item.\n * @param {Number} y\n *        The index of the second item.\n */\nfunction swap(ary, x, y) {\n  var temp = ary[x];\n  ary[x] = ary[y];\n  ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n *        The lower bound on the range.\n * @param {Number} high\n *        The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n  return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n * @param {Number} p\n *        Start index of the array\n * @param {Number} r\n *        End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n  // If our lower bound is less than our upper bound, we (1) partition the\n  // array into two pieces and (2) recurse on each half. If it is not, this is\n  // the empty array and our base case.\n\n  if (p < r) {\n    // (1) Partitioning.\n    //\n    // The partitioning chooses a pivot between `p` and `r` and moves all\n    // elements that are less than or equal to the pivot to the before it, and\n    // all the elements that are greater than it after it. The effect is that\n    // once partition is done, the pivot is in the exact place it will be when\n    // the array is put in sorted order, and it will not need to be moved\n    // again. This runs in O(n) time.\n\n    // Always choose a random pivot so that an input array which is reverse\n    // sorted does not cause O(n^2) running time.\n    var pivotIndex = randomIntInRange(p, r);\n    var i = p - 1;\n\n    swap(ary, pivotIndex, r);\n    var pivot = ary[r];\n\n    // Immediately after `j` is incremented in this loop, the following hold\n    // true:\n    //\n    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n    //\n    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n    for (var j = p; j < r; j++) {\n      if (comparator(ary[j], pivot) <= 0) {\n        i += 1;\n        swap(ary, i, j);\n      }\n    }\n\n    swap(ary, i + 1, j);\n    var q = i + 1;\n\n    // (2) Recurse on each half.\n\n    doQuickSort(ary, comparator, p, q - 1);\n    doQuickSort(ary, comparator, q + 1, r);\n  }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n  doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/quick-sort.js\n// module id = 9\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n    // The SourceNode we want to fill with the generated code\n    // and the SourceMap\n    var node = new SourceNode();\n\n    // All even indices of this array are one line of the generated code,\n    // while all odd indices are the newlines between two adjacent lines\n    // (since `REGEX_NEWLINE` captures its match).\n    // Processed fragments are accessed by calling `shiftNextLine`.\n    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n    var remainingLinesIndex = 0;\n    var shiftNextLine = function() {\n      var lineContents = getNextLine();\n      // The last line of a file might not have a newline.\n      var newLine = getNextLine() || \"\";\n      return lineContents + newLine;\n\n      function getNextLine() {\n        return remainingLinesIndex < remainingLines.length ?\n            remainingLines[remainingLinesIndex++] : undefined;\n      }\n    };\n\n    // We need to remember the position of \"remainingLines\"\n    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n    // The generate SourceNodes we need a code range.\n    // To extract it current and last mapping is used.\n    // Here we store the last mapping.\n    var lastMapping = null;\n\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      if (lastMapping !== null) {\n        // We add the code from \"lastMapping\" to \"mapping\":\n        // First check if there is a new line in between.\n        if (lastGeneratedLine < mapping.generatedLine) {\n          // Associate first line with \"lastMapping\"\n          addMappingWithCode(lastMapping, shiftNextLine());\n          lastGeneratedLine++;\n          lastGeneratedColumn = 0;\n          // The remaining code is added without mapping\n        } else {\n          // There is no new line in between.\n          // Associate the code between \"lastGeneratedColumn\" and\n          // \"mapping.generatedColumn\" with \"lastMapping\"\n          var nextLine = remainingLines[remainingLinesIndex] || '';\n          var code = nextLine.substr(0, mapping.generatedColumn -\n                                        lastGeneratedColumn);\n          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n                                              lastGeneratedColumn);\n          lastGeneratedColumn = mapping.generatedColumn;\n          addMappingWithCode(lastMapping, code);\n          // No more remaining code, continue\n          lastMapping = mapping;\n          return;\n        }\n      }\n      // We add the generated code until the first mapping\n      // to the SourceNode without any mapping.\n      // Each line is added as separate string.\n      while (lastGeneratedLine < mapping.generatedLine) {\n        node.add(shiftNextLine());\n        lastGeneratedLine++;\n      }\n      if (lastGeneratedColumn < mapping.generatedColumn) {\n        var nextLine = remainingLines[remainingLinesIndex] || '';\n        node.add(nextLine.substr(0, mapping.generatedColumn));\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n      }\n      lastMapping = mapping;\n    }, this);\n    // We have processed all mappings.\n    if (remainingLinesIndex < remainingLines.length) {\n      if (lastMapping) {\n        // Associate the remaining code in the current line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n      }\n      // and add the remaining lines without any mapping\n      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n    }\n\n    // Copy sourcesContent into SourceNode\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aRelativePath != null) {\n          sourceFile = util.join(aRelativePath, sourceFile);\n        }\n        node.setSourceContent(sourceFile, content);\n      }\n    });\n\n    return node;\n\n    function addMappingWithCode(mapping, code) {\n      if (mapping === null || mapping.source === undefined) {\n        node.add(code);\n      } else {\n        var source = aRelativePath\n          ? util.join(aRelativePath, mapping.source)\n          : mapping.source;\n        node.add(new SourceNode(mapping.originalLine,\n                                mapping.originalColumn,\n                                source,\n                                code,\n                                mapping.name));\n      }\n    }\n  };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length-1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    }\n    else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n                     line: this.line,\n                     column: this.column,\n                     name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len-1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  }\n  else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  }\n  else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n  };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n  function SourceNode_walkSourceContents(aFn) {\n    for (var i = 0, len = this.children.length; i < len; i++) {\n      if (this.children[i][isSourceNode]) {\n        this.children[i].walkSourceContents(aFn);\n      }\n    }\n\n    var sources = Object.keys(this.sourceContents);\n    for (var i = 0, len = sources.length; i < len; i++) {\n      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n    }\n  };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null\n        && original.line !== null\n        && original.column !== null) {\n      if(lastOriginalSource !== original.source\n         || lastOriginalLine !== original.line\n         || lastOriginalColumn !== original.column\n         || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-node.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/source-map/dist/source-map.min.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///source-map.min.js","webpack:///webpack/bootstrap 42c329f865e32e011afb","webpack:///./source-map.js","webpack:///./lib/source-map-generator.js","webpack:///./lib/base64-vlq.js","webpack:///./lib/base64.js","webpack:///./lib/util.js","webpack:///./lib/array-set.js","webpack:///./lib/mapping-list.js","webpack:///./lib/source-map-consumer.js","webpack:///./lib/binary-search.js","webpack:///./lib/quick-sort.js","webpack:///./lib/source-node.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","SourceMapGenerator","SourceMapConsumer","SourceNode","aArgs","_file","util","getArg","_sourceRoot","_skipValidation","_sources","ArraySet","_names","_mappings","MappingList","_sourcesContents","base64VLQ","prototype","_version","fromSourceMap","aSourceMapConsumer","sourceRoot","generator","file","eachMapping","mapping","newMapping","generated","line","generatedLine","column","generatedColumn","source","relative","original","originalLine","originalColumn","name","addMapping","sources","forEach","sourceFile","content","sourceContentFor","setSourceContent","_validateMapping","String","has","add","aSourceFile","aSourceContent","Object","create","toSetString","keys","length","applySourceMap","aSourceMapPath","Error","newSources","newNames","unsortedForEach","originalPositionFor","join","aGenerated","aOriginal","aSource","aName","JSON","stringify","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedColumn","previousGeneratedLine","previousOriginalColumn","previousOriginalLine","previousName","previousSource","result","mappings","toArray","i","len","compareByGeneratedPositionsInflated","encode","indexOf","_generateSourcesContent","aSources","aSourceRoot","map","key","hasOwnProperty","toJSON","version","names","sourcesContent","toString","toVLQSigned","aValue","fromVLQSigned","isNegative","shifted","base64","VLQ_BASE_SHIFT","VLQ_BASE","VLQ_BASE_MASK","VLQ_CONTINUATION_BIT","digit","encoded","vlq","decode","aStr","aIndex","aOutParam","continuation","strLen","shift","charCodeAt","charAt","value","rest","intToCharMap","split","number","TypeError","charCode","bigA","bigZ","littleA","littleZ","zero","nine","plus","slash","littleOffset","numberOffset","aDefaultValue","arguments","urlParse","aUrl","match","urlRegexp","scheme","auth","host","port","path","urlGenerate","aParsedUrl","url","normalize","aPath","part","isAbsolute","parts","up","splice","aRoot","aPathUrl","aRootUrl","dataUrlRegexp","joined","replace","level","index","lastIndexOf","slice","Array","substr","identity","s","isProtoString","fromSetString","compareByOriginalPositions","mappingA","mappingB","onlyCompareOriginal","cmp","compareByGeneratedPositionsDeflated","onlyCompareGenerated","strcmp","aStr1","aStr2","supportsNullProto","obj","_array","_set","hasNativeMap","Map","fromArray","aArray","aAllowDuplicates","set","size","getOwnPropertyNames","sStr","isDuplicate","idx","push","get","at","aIdx","generatedPositionAfter","lineA","lineB","columnA","columnB","_sorted","_last","aCallback","aThisArg","aMapping","sort","aSourceMap","sourceMap","parse","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","Mapping","lastOffset","_sections","offset","offsetLine","offsetColumn","generatedOffset","consumer","binarySearch","quickSort","__generatedMappings","defineProperty","_parseMappings","__originalMappings","_charIsMappingSeparator","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","aContext","aOrder","context","order","_generatedMappings","_originalMappings","allGeneratedPositionsFor","needle","_findMapping","undefined","lastColumn","smc","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","str","segment","end","cachedSegments","temp","originalMappings","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","search","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","some","sc","nullOnMissing","fileUriAbsPath","generatedPositionFor","constructor","j","sectionIndex","section","bias","every","generatedPosition","ret","sectionMappings","adjustedMapping","recursiveSearch","aLow","aHigh","aHaystack","aCompare","mid","Math","floor","swap","ary","x","y","randomIntInRange","low","high","round","random","doQuickSort","comparator","r","pivotIndex","pivot","q","aLine","aColumn","aChunks","children","sourceContents","isSourceNode","REGEX_NEWLINE","NEWLINE_CODE","fromStringWithSourceMap","aGeneratedCode","aRelativePath","addMappingWithCode","code","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lineContents","newLine","lastGeneratedLine","lastMapping","nextLine","aChunk","isArray","chunk","prepend","unshift","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,UAAAD,IAEAD,EAAA,UAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,QAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAAUL,EAAQD,EAASM,GEjDjCN,EAAAe,mBAAAT,EAAA,GAAAS,mBACAf,EAAAgB,kBAAAV,EAAA,GAAAU,kBACAhB,EAAAiB,WAAAX,EAAA,IAAAW,YF6DM,SAAUhB,EAAQD,EAASM,GGhDjC,QAAAS,GAAAG,GACAA,IACAA,MAEAd,KAAAe,MAAAC,EAAAC,OAAAH,EAAA,aACAd,KAAAkB,YAAAF,EAAAC,OAAAH,EAAA,mBACAd,KAAAmB,gBAAAH,EAAAC,OAAAH,EAAA,qBACAd,KAAAoB,SAAA,GAAAC,GACArB,KAAAsB,OAAA,GAAAD,GACArB,KAAAuB,UAAA,GAAAC,GACAxB,KAAAyB,iBAAA,KAvBA,GAAAC,GAAAxB,EAAA,GACAc,EAAAd,EAAA,GACAmB,EAAAnB,EAAA,GAAAmB,SACAG,EAAAtB,EAAA,GAAAsB,WAuBAb,GAAAgB,UAAAC,SAAA,EAOAjB,EAAAkB,cACA,SAAAC,GACA,GAAAC,GAAAD,EAAAC,WACAC,EAAA,GAAArB,IACAsB,KAAAH,EAAAG,KACAF,cAkCA,OAhCAD,GAAAI,YAAA,SAAAC,GACA,GAAAC,IACAC,WACAC,KAAAH,EAAAI,cACAC,OAAAL,EAAAM,iBAIA,OAAAN,EAAAO,SACAN,EAAAM,OAAAP,EAAAO,OACA,MAAAX,IACAK,EAAAM,OAAA1B,EAAA2B,SAAAZ,EAAAK,EAAAM,SAGAN,EAAAQ,UACAN,KAAAH,EAAAU,aACAL,OAAAL,EAAAW,gBAGA,MAAAX,EAAAY,OACAX,EAAAW,KAAAZ,EAAAY,OAIAf,EAAAgB,WAAAZ,KAEAN,EAAAmB,QAAAC,QAAA,SAAAC,GACA,GAAAC,GAAAtB,EAAAuB,iBAAAF,EACA,OAAAC,GACApB,EAAAsB,iBAAAH,EAAAC,KAGApB,GAaArB,EAAAgB,UAAAqB,WACA,SAAAlC,GACA,GAAAuB,GAAArB,EAAAC,OAAAH,EAAA,aACA8B,EAAA5B,EAAAC,OAAAH,EAAA,iBACA4B,EAAA1B,EAAAC,OAAAH,EAAA,eACAiC,EAAA/B,EAAAC,OAAAH,EAAA,YAEAd,MAAAmB,iBACAnB,KAAAuD,iBAAAlB,EAAAO,EAAAF,EAAAK,GAGA,MAAAL,IACAA,EAAAc,OAAAd,GACA1C,KAAAoB,SAAAqC,IAAAf,IACA1C,KAAAoB,SAAAsC,IAAAhB,IAIA,MAAAK,IACAA,EAAAS,OAAAT,GACA/C,KAAAsB,OAAAmC,IAAAV,IACA/C,KAAAsB,OAAAoC,IAAAX,IAIA/C,KAAAuB,UAAAmC,KACAnB,cAAAF,EAAAC,KACAG,gBAAAJ,EAAAG,OACAK,aAAA,MAAAD,KAAAN,KACAQ,eAAA,MAAAF,KAAAJ,OACAE,SACAK,UAOApC,EAAAgB,UAAA2B,iBACA,SAAAK,EAAAC,GACA,GAAAlB,GAAAiB,CACA,OAAA3D,KAAAkB,cACAwB,EAAA1B,EAAA2B,SAAA3C,KAAAkB,YAAAwB,IAGA,MAAAkB,GAGA5D,KAAAyB,mBACAzB,KAAAyB,iBAAAoC,OAAAC,OAAA,OAEA9D,KAAAyB,iBAAAT,EAAA+C,YAAArB,IAAAkB,GACK5D,KAAAyB,yBAGLzB,MAAAyB,iBAAAT,EAAA+C,YAAArB,IACA,IAAAmB,OAAAG,KAAAhE,KAAAyB,kBAAAwC,SACAjE,KAAAyB,iBAAA,QAqBAd,EAAAgB,UAAAuC,eACA,SAAApC,EAAA6B,EAAAQ,GACA,GAAAhB,GAAAQ,CAEA,UAAAA,EAAA,CACA,SAAA7B,EAAAG,KACA,SAAAmC,OACA,gJAIAjB,GAAArB,EAAAG,KAEA,GAAAF,GAAA/B,KAAAkB,WAEA,OAAAa,IACAoB,EAAAnC,EAAA2B,SAAAZ,EAAAoB,GAIA,IAAAkB,GAAA,GAAAhD,GACAiD,EAAA,GAAAjD,EAGArB,MAAAuB,UAAAgD,gBAAA,SAAApC,GACA,GAAAA,EAAAO,SAAAS,GAAA,MAAAhB,EAAAU,aAAA,CAEA,GAAAD,GAAAd,EAAA0C,qBACAlC,KAAAH,EAAAU,aACAL,OAAAL,EAAAW,gBAEA,OAAAF,EAAAF,SAEAP,EAAAO,OAAAE,EAAAF,OACA,MAAAyB,IACAhC,EAAAO,OAAA1B,EAAAyD,KAAAN,EAAAhC,EAAAO,SAEA,MAAAX,IACAI,EAAAO,OAAA1B,EAAA2B,SAAAZ,EAAAI,EAAAO,SAEAP,EAAAU,aAAAD,EAAAN,KACAH,EAAAW,eAAAF,EAAAJ,OACA,MAAAI,EAAAG,OACAZ,EAAAY,KAAAH,EAAAG,OAKA,GAAAL,GAAAP,EAAAO,MACA,OAAAA,GAAA2B,EAAAZ,IAAAf,IACA2B,EAAAX,IAAAhB,EAGA,IAAAK,GAAAZ,EAAAY,IACA,OAAAA,GAAAuB,EAAAb,IAAAV,IACAuB,EAAAZ,IAAAX,IAGK/C,MACLA,KAAAoB,SAAAiD,EACArE,KAAAsB,OAAAgD,EAGAxC,EAAAmB,QAAAC,QAAA,SAAAC,GACA,GAAAC,GAAAtB,EAAAuB,iBAAAF,EACA,OAAAC,IACA,MAAAe,IACAhB,EAAAnC,EAAAyD,KAAAN,EAAAhB,IAEA,MAAApB,IACAoB,EAAAnC,EAAA2B,SAAAZ,EAAAoB,IAEAnD,KAAAsD,iBAAAH,EAAAC,KAEKpD,OAcLW,EAAAgB,UAAA4B,iBACA,SAAAmB,EAAAC,EAAAC,EACAC,GAKA,GAAAF,GAAA,gBAAAA,GAAArC,MAAA,gBAAAqC,GAAAnC,OACA,SAAA4B,OACA,+OAMA,OAAAM,GAAA,QAAAA,IAAA,UAAAA,IACAA,EAAApC,KAAA,GAAAoC,EAAAlC,QAAA,IACAmC,GAAAC,GAAAC,MAIAH,GAAA,QAAAA,IAAA,UAAAA,IACAC,GAAA,QAAAA,IAAA,UAAAA,IACAD,EAAApC,KAAA,GAAAoC,EAAAlC,QAAA,GACAmC,EAAArC,KAAA,GAAAqC,EAAAnC,QAAA,GACAoC,GAKA,SAAAR,OAAA,oBAAAU,KAAAC,WACA1C,UAAAqC,EACAhC,OAAAkC,EACAhC,SAAA+B,EACA5B,KAAA8B,MASAlE,EAAAgB,UAAAqD,mBACA,WAcA,OANAC,GACA9C,EACA+C,EACAC,EAVAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,GAMAC,EAAA3F,KAAAuB,UAAAqE,UACAC,EAAA,EAAAC,EAAAH,EAAA1B,OAA0C4B,EAAAC,EAASD,IAAA,CAInD,GAHA1D,EAAAwD,EAAAE,GACAZ,EAAA,GAEA9C,EAAAI,gBAAA8C,EAEA,IADAD,EAAA,EACAjD,EAAAI,gBAAA8C,GACAJ,GAAA,IACAI,QAIA,IAAAQ,EAAA,GACA,IAAA7E,EAAA+E,oCAAA5D,EAAAwD,EAAAE,EAAA,IACA,QAEAZ,IAAA,IAIAA,GAAAvD,EAAAsE,OAAA7D,EAAAM,gBACA2C,GACAA,EAAAjD,EAAAM,gBAEA,MAAAN,EAAAO,SACAyC,EAAAnF,KAAAoB,SAAA6E,QAAA9D,EAAAO,QACAuC,GAAAvD,EAAAsE,OAAAb,EAAAM,GACAA,EAAAN,EAGAF,GAAAvD,EAAAsE,OAAA7D,EAAAU,aAAA,EACA0C,GACAA,EAAApD,EAAAU,aAAA,EAEAoC,GAAAvD,EAAAsE,OAAA7D,EAAAW,eACAwC,GACAA,EAAAnD,EAAAW,eAEA,MAAAX,EAAAY,OACAmC,EAAAlF,KAAAsB,OAAA2E,QAAA9D,EAAAY,MACAkC,GAAAvD,EAAAsE,OAAAd,EAAAM,GACAA,EAAAN,IAIAQ,GAAAT,EAGA,MAAAS,IAGA/E,EAAAgB,UAAAuE,wBACA,SAAAC,EAAAC,GACA,MAAAD,GAAAE,IAAA,SAAA3D,GACA,IAAA1C,KAAAyB,iBACA,WAEA,OAAA2E,IACA1D,EAAA1B,EAAA2B,SAAAyD,EAAA1D,GAEA,IAAA4D,GAAAtF,EAAA+C,YAAArB,EACA,OAAAmB,QAAAlC,UAAA4E,eAAAhG,KAAAP,KAAAyB,iBAAA6E,GACAtG,KAAAyB,iBAAA6E,GACA,MACKtG,OAMLW,EAAAgB,UAAA6E,OACA,WACA,GAAAH,IACAI,QAAAzG,KAAA4B,SACAqB,QAAAjD,KAAAoB,SAAAwE,UACAc,MAAA1G,KAAAsB,OAAAsE,UACAD,SAAA3F,KAAAgF,qBAYA,OAVA,OAAAhF,KAAAe,QACAsF,EAAApE,KAAAjC,KAAAe,OAEA,MAAAf,KAAAkB,cACAmF,EAAAtE,WAAA/B,KAAAkB,aAEAlB,KAAAyB,mBACA4E,EAAAM,eAAA3G,KAAAkG,wBAAAG,EAAApD,QAAAoD,EAAAtE,aAGAsE,GAMA1F,EAAAgB,UAAAiF,SACA,WACA,MAAA9B,MAAAC,UAAA/E,KAAAwG,WAGA5G,EAAAe,sBH2EM,SAAUd,EAAQD,EAASM,GItajC,QAAA2G,GAAAC,GACA,MAAAA,GAAA,IACAA,GAAA,MACAA,GAAA,KASA,QAAAC,GAAAD,GACA,GAAAE,GAAA,OAAAF,GACAG,EAAAH,GAAA,CACA,OAAAE,IACAC,EACAA,EAhDA,GAAAC,GAAAhH,EAAA,GAcAiH,EAAA,EAGAC,EAAA,GAAAD,EAGAE,EAAAD,EAAA,EAGAE,EAAAF,CA+BAxH,GAAAoG,OAAA,SAAAc,GACA,GACAS,GADAC,EAAA,GAGAC,EAAAZ,EAAAC,EAEA,GACAS,GAAAE,EAAAJ,EACAI,KAAAN,EACAM,EAAA,IAGAF,GAAAD,GAEAE,GAAAN,EAAAlB,OAAAuB,SACGE,EAAA,EAEH,OAAAD,IAOA5H,EAAA8H,OAAA,SAAAC,EAAAC,EAAAC,GACA,GAGAC,GAAAP,EAHAQ,EAAAJ,EAAA1D,OACAyB,EAAA,EACAsC,EAAA,CAGA,IACA,GAAAJ,GAAAG,EACA,SAAA3D,OAAA,6CAIA,IADAmD,EAAAL,EAAAQ,OAAAC,EAAAM,WAAAL,MACAL,KAAA,EACA,SAAAnD,OAAA,yBAAAuD,EAAAO,OAAAN,EAAA,GAGAE,MAAAP,EAAAD,GACAC,GAAAF,EACA3B,GAAA6B,GAAAS,EACAA,GAAAb,QACGW,EAEHD,GAAAM,MAAApB,EAAArB,GACAmC,EAAAO,KAAAR,IJkfM,SAAU/H,EAAQD,GKrnBxB,GAAAyI,GAAA,mEAAAC,MAAA,GAKA1I,GAAAoG,OAAA,SAAAuC,GACA,MAAAA,KAAAF,EAAApE,OACA,MAAAoE,GAAAE,EAEA,UAAAC,WAAA,6BAAAD,IAOA3I,EAAA8H,OAAA,SAAAe,GACA,GAAAC,GAAA,GACAC,EAAA,GAEAC,EAAA,GACAC,EAAA,IAEAC,EAAA,GACAC,EAAA,GAEAC,EAAA,GACAC,EAAA,GAEAC,EAAA,GACAC,EAAA,EAGA,OAAAT,IAAAD,MAAAE,EACAF,EAAAC,EAIAE,GAAAH,MAAAI,EACAJ,EAAAG,EAAAM,EAIAJ,GAAAL,MAAAM,EACAN,EAAAK,EAAAK,EAIAV,GAAAO,EACA,GAIAP,GAAAQ,EACA,IAIA,ILooBM,SAAUpJ,EAAQD,GMprBxB,QAAAqB,GAAAH,EAAA+D,EAAAuE,GACA,GAAAvE,IAAA/D,GACA,MAAAA,GAAA+D,EACG,QAAAwE,UAAApF,OACH,MAAAmF,EAEA,UAAAhF,OAAA,IAAAS,EAAA,6BAQA,QAAAyE,GAAAC,GACA,GAAAC,GAAAD,EAAAC,MAAAC,EACA,OAAAD,IAIAE,OAAAF,EAAA,GACAG,KAAAH,EAAA,GACAI,KAAAJ,EAAA,GACAK,KAAAL,EAAA,GACAM,KAAAN,EAAA,IAPA,KAYA,QAAAO,GAAAC,GACA,GAAAC,GAAA,EAiBA,OAhBAD,GAAAN,SACAO,GAAAD,EAAAN,OAAA,KAEAO,GAAA,KACAD,EAAAL,OACAM,GAAAD,EAAAL,KAAA,KAEAK,EAAAJ,OACAK,GAAAD,EAAAJ,MAEAI,EAAAH,OACAI,GAAA,IAAAD,EAAAH,MAEAG,EAAAF,OACAG,GAAAD,EAAAF,MAEAG,EAeA,QAAAC,GAAAC,GACA,GAAAL,GAAAK,EACAF,EAAAX,EAAAa,EACA,IAAAF,EAAA,CACA,IAAAA,EAAAH,KACA,MAAAK,EAEAL,GAAAG,EAAAH,KAKA,OAAAM,GAHAC,EAAAzK,EAAAyK,WAAAP,GAEAQ,EAAAR,EAAAxB,MAAA,OACAiC,EAAA,EAAA1E,EAAAyE,EAAArG,OAAA,EAA8C4B,GAAA,EAAQA,IACtDuE,EAAAE,EAAAzE,GACA,MAAAuE,EACAE,EAAAE,OAAA3E,EAAA,GACK,OAAAuE,EACLG,IACKA,EAAA,IACL,KAAAH,GAIAE,EAAAE,OAAA3E,EAAA,EAAA0E,GACAA,EAAA,IAEAD,EAAAE,OAAA3E,EAAA,GACA0E,KAUA,OANAT,GAAAQ,EAAA7F,KAAA,KAEA,KAAAqF,IACAA,EAAAO,EAAA,SAGAJ,GACAA,EAAAH,OACAC,EAAAE,IAEAH,EAoBA,QAAArF,GAAAgG,EAAAN,GACA,KAAAM,IACAA,EAAA,KAEA,KAAAN,IACAA,EAAA,IAEA,IAAAO,GAAApB,EAAAa,GACAQ,EAAArB,EAAAmB,EAMA,IALAE,IACAF,EAAAE,EAAAb,MAAA,KAIAY,MAAAhB,OAIA,MAHAiB,KACAD,EAAAhB,OAAAiB,EAAAjB,QAEAK,EAAAW,EAGA,IAAAA,GAAAP,EAAAX,MAAAoB,GACA,MAAAT,EAIA,IAAAQ,MAAAf,OAAAe,EAAAb,KAEA,MADAa,GAAAf,KAAAO,EACAJ,EAAAY,EAGA,IAAAE,GAAA,MAAAV,EAAAjC,OAAA,GACAiC,EACAD,EAAAO,EAAAK,QAAA,eAAAX,EAEA,OAAAQ,IACAA,EAAAb,KAAAe,EACAd,EAAAY,IAEAE,EAcA,QAAAlI,GAAA8H,EAAAN,GACA,KAAAM,IACAA,EAAA,KAGAA,IAAAK,QAAA,SAOA,KADA,GAAAC,GAAA,EACA,IAAAZ,EAAAlE,QAAAwE,EAAA,OACA,GAAAO,GAAAP,EAAAQ,YAAA,IACA,IAAAD,EAAA,EACA,MAAAb,EAOA,IADAM,IAAAS,MAAA,EAAAF,GACAP,EAAAjB,MAAA,qBACA,MAAAW,KAGAY,EAIA,MAAAI,OAAAJ,EAAA,GAAAtG,KAAA,OAAA0F,EAAAiB,OAAAX,EAAAxG,OAAA,GASA,QAAAoH,GAAAC,GACA,MAAAA,GAYA,QAAAvH,GAAA4D,GACA,MAAA4D,GAAA5D,GACA,IAAAA,EAGAA,EAIA,QAAA6D,GAAA7D,GACA,MAAA4D,GAAA5D,GACAA,EAAAuD,MAAA,GAGAvD,EAIA,QAAA4D,GAAAD,GACA,IAAAA,EACA,QAGA,IAAArH,GAAAqH,EAAArH,MAEA,IAAAA,EAAA,EACA,QAGA,SAAAqH,EAAArD,WAAAhE,EAAA,IACA,KAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,MAAAqH,EAAArD,WAAAhE,EAAA,IACA,KAAAqH,EAAArD,WAAAhE,EAAA,IACA,KAAAqH,EAAArD,WAAAhE,EAAA,GACA,QAGA,QAAA4B,GAAA5B,EAAA,GAA2B4B,GAAA,EAAQA,IACnC,QAAAyF,EAAArD,WAAApC,GACA,QAIA,UAWA,QAAA4F,GAAAC,EAAAC,EAAAC,GACA,GAAAC,GAAAH,EAAAhJ,OAAAiJ,EAAAjJ,MACA,YAAAmJ,EACAA,GAGAA,EAAAH,EAAA7I,aAAA8I,EAAA9I,aACA,IAAAgJ,EACAA,GAGAA,EAAAH,EAAA5I,eAAA6I,EAAA7I,eACA,IAAA+I,GAAAD,EACAC,GAGAA,EAAAH,EAAAjJ,gBAAAkJ,EAAAlJ,gBACA,IAAAoJ,EACAA,GAGAA,EAAAH,EAAAnJ,cAAAoJ,EAAApJ,cACA,IAAAsJ,EACAA,EAGAH,EAAA3I,KAAA4I,EAAA5I,SAaA,QAAA+I,GAAAJ,EAAAC,EAAAI,GACA,GAAAF,GAAAH,EAAAnJ,cAAAoJ,EAAApJ,aACA,YAAAsJ,EACAA,GAGAA,EAAAH,EAAAjJ,gBAAAkJ,EAAAlJ,gBACA,IAAAoJ,GAAAE,EACAF,GAGAA,EAAAH,EAAAhJ,OAAAiJ,EAAAjJ,OACA,IAAAmJ,EACAA,GAGAA,EAAAH,EAAA7I,aAAA8I,EAAA9I,aACA,IAAAgJ,EACAA,GAGAA,EAAAH,EAAA5I,eAAA6I,EAAA7I,eACA,IAAA+I,EACAA,EAGAH,EAAA3I,KAAA4I,EAAA5I,SAIA,QAAAiJ,GAAAC,EAAAC,GACA,MAAAD,KAAAC,EACA,EAGAD,EAAAC,EACA,GAGA,EAOA,QAAAnG,GAAA2F,EAAAC,GACA,GAAAE,GAAAH,EAAAnJ,cAAAoJ,EAAApJ,aACA,YAAAsJ,EACAA,GAGAA,EAAAH,EAAAjJ,gBAAAkJ,EAAAlJ,gBACA,IAAAoJ,EACAA,GAGAA,EAAAG,EAAAN,EAAAhJ,OAAAiJ,EAAAjJ,QACA,IAAAmJ,EACAA,GAGAA,EAAAH,EAAA7I,aAAA8I,EAAA9I,aACA,IAAAgJ,EACAA,GAGAA,EAAAH,EAAA5I,eAAA6I,EAAA7I,eACA,IAAA+I,EACAA,EAGAG,EAAAN,EAAA3I,KAAA4I,EAAA5I,UApYAnD,EAAAqB,QAEA,IAAAwI,GAAA,iEACAmB,EAAA,eAeAhL,GAAA0J,WAsBA1J,EAAAmK,cAwDAnK,EAAAsK,YA2DAtK,EAAA6E,OAEA7E,EAAAyK,WAAA,SAAAF,GACA,YAAAA,EAAAjC,OAAA,MAAAiC,EAAAX,MAAAC,IAyCA7J,EAAA+C,UAEA,IAAAwJ,GAAA,WACA,GAAAC,GAAAvI,OAAAC,OAAA,KACA,sBAAAsI,MAuBAxM,GAAAmE,YAAAoI,EAAAd,EAAAtH,EASAnE,EAAA4L,cAAAW,EAAAd,EAAAG,EAsEA5L,EAAA6L,6BAuCA7L,EAAAkM,sCA8CAlM,EAAAmG,uCN4sBM,SAAUlG,EAAQD,EAASM,GO3lCjC,QAAAmB,KACArB,KAAAqM,UACArM,KAAAsM,KAAAC,EAAA,GAAAC,KAAA3I,OAAAC,OAAA,MAZA,GAAA9C,GAAAd,EAAA,GACAuD,EAAAI,OAAAlC,UAAA4E,eACAgG,EAAA,mBAAAC,IAgBAnL,GAAAoL,UAAA,SAAAC,EAAAC,GAEA,OADAC,GAAA,GAAAvL,GACAwE,EAAA,EAAAC,EAAA4G,EAAAzI,OAAsC4B,EAAAC,EAASD,IAC/C+G,EAAAlJ,IAAAgJ,EAAA7G,GAAA8G,EAEA,OAAAC,IASAvL,EAAAM,UAAAkL,KAAA,WACA,MAAAN,GAAAvM,KAAAsM,KAAAO,KAAAhJ,OAAAiJ,oBAAA9M,KAAAsM,MAAArI,QAQA5C,EAAAM,UAAA+B,IAAA,SAAAiE,EAAAgF,GACA,GAAAI,GAAAR,EAAA5E,EAAA3G,EAAA+C,YAAA4D,GACAqF,EAAAT,EAAAvM,KAAAyD,IAAAkE,GAAAlE,EAAAlD,KAAAP,KAAAsM,KAAAS,GACAE,EAAAjN,KAAAqM,OAAApI,MACA+I,KAAAL,GACA3M,KAAAqM,OAAAa,KAAAvF,GAEAqF,IACAT,EACAvM,KAAAsM,KAAAM,IAAAjF,EAAAsF,GAEAjN,KAAAsM,KAAAS,GAAAE,IAUA5L,EAAAM,UAAA8B,IAAA,SAAAkE,GACA,GAAA4E,EACA,MAAAvM,MAAAsM,KAAA7I,IAAAkE,EAEA,IAAAoF,GAAA/L,EAAA+C,YAAA4D,EACA,OAAAlE,GAAAlD,KAAAP,KAAAsM,KAAAS,IASA1L,EAAAM,UAAAsE,QAAA,SAAA0B,GACA,GAAA4E,EAAA,CACA,GAAAU,GAAAjN,KAAAsM,KAAAa,IAAAxF,EACA,IAAAsF,GAAA,EACA,MAAAA,OAEG,CACH,GAAAF,GAAA/L,EAAA+C,YAAA4D,EACA,IAAAlE,EAAAlD,KAAAP,KAAAsM,KAAAS,GACA,MAAA/M,MAAAsM,KAAAS,GAIA,SAAA3I,OAAA,IAAAuD,EAAA,yBAQAtG,EAAAM,UAAAyL,GAAA,SAAAC,GACA,GAAAA,GAAA,GAAAA,EAAArN,KAAAqM,OAAApI,OACA,MAAAjE,MAAAqM,OAAAgB,EAEA,UAAAjJ,OAAA,yBAAAiJ,IAQAhM,EAAAM,UAAAiE,QAAA,WACA,MAAA5F,MAAAqM,OAAAnB,SAGAtL,EAAAyB,YPmnCM,SAAUxB,EAAQD,EAASM,GQ9tCjC,QAAAoN,GAAA5B,EAAAC,GAEA,GAAA4B,GAAA7B,EAAAnJ,cACAiL,EAAA7B,EAAApJ,cACAkL,EAAA/B,EAAAjJ,gBACAiL,EAAA/B,EAAAlJ,eACA,OAAA+K,GAAAD,GAAAC,GAAAD,GAAAG,GAAAD,GACAzM,EAAA+E,oCAAA2F,EAAAC,IAAA,EAQA,QAAAnK,KACAxB,KAAAqM,UACArM,KAAA2N,SAAA,EAEA3N,KAAA4N,OAAgBrL,eAAA,EAAAE,gBAAA,GAzBhB,GAAAzB,GAAAd,EAAA,EAkCAsB,GAAAG,UAAA4C,gBACA,SAAAsJ,EAAAC,GACA9N,KAAAqM,OAAAnJ,QAAA2K,EAAAC,IAQAtM,EAAAG,UAAA+B,IAAA,SAAAqK,GACAT,EAAAtN,KAAA4N,MAAAG,IACA/N,KAAA4N,MAAAG,EACA/N,KAAAqM,OAAAa,KAAAa,KAEA/N,KAAA2N,SAAA,EACA3N,KAAAqM,OAAAa,KAAAa,KAaAvM,EAAAG,UAAAiE,QAAA,WAKA,MAJA5F,MAAA2N,UACA3N,KAAAqM,OAAA2B,KAAAhN,EAAA+E,qCACA/F,KAAA2N,SAAA,GAEA3N,KAAAqM,QAGAzM,EAAA4B,eRkvCM,SAAU3B,EAAQD,EAASM,GSnzCjC,QAAAU,GAAAqN,GACA,GAAAC,GAAAD,CAKA,OAJA,gBAAAA,KACAC,EAAApJ,KAAAqJ,MAAAF,EAAAnD,QAAA,WAAsD,MAGtD,MAAAoD,EAAAE,SACA,GAAAC,GAAAH,GACA,GAAAI,GAAAJ,GAoQA,QAAAI,GAAAL,GACA,GAAAC,GAAAD,CACA,iBAAAA,KACAC,EAAApJ,KAAAqJ,MAAAF,EAAAnD,QAAA,WAAsD,KAGtD,IAAArE,GAAAzF,EAAAC,OAAAiN,EAAA,WACAjL,EAAAjC,EAAAC,OAAAiN,EAAA,WAGAxH,EAAA1F,EAAAC,OAAAiN,EAAA,YACAnM,EAAAf,EAAAC,OAAAiN,EAAA,mBACAvH,EAAA3F,EAAAC,OAAAiN,EAAA,uBACAvI,EAAA3E,EAAAC,OAAAiN,EAAA,YACAjM,EAAAjB,EAAAC,OAAAiN,EAAA,YAIA,IAAAzH,GAAAzG,KAAA4B,SACA,SAAAwC,OAAA,wBAAAqC,EAGAxD,KACAoD,IAAA7C,QAIA6C,IAAArF,EAAAkJ,WAKA7D,IAAA,SAAA3D,GACA,MAAAX,IAAAf,EAAAqJ,WAAAtI,IAAAf,EAAAqJ,WAAA3H,GACA1B,EAAA2B,SAAAZ,EAAAW,GACAA,IAOA1C,KAAAsB,OAAAD,EAAAoL,UAAA/F,EAAAL,IAAA7C,SAAA,GACAxD,KAAAoB,SAAAC,EAAAoL,UAAAxJ,GAAA,GAEAjD,KAAA+B,aACA/B,KAAA2G,iBACA3G,KAAAuB,UAAAoE,EACA3F,KAAAiC,OA8EA,QAAAsM,KACAvO,KAAAuC,cAAA,EACAvC,KAAAyC,gBAAA,EACAzC,KAAA0C,OAAA,KACA1C,KAAA6C,aAAA,KACA7C,KAAA8C,eAAA,KACA9C,KAAA+C,KAAA,KAyZA,QAAAsL,GAAAJ,GACA,GAAAC,GAAAD,CACA,iBAAAA,KACAC,EAAApJ,KAAAqJ,MAAAF,EAAAnD,QAAA,WAAsD,KAGtD,IAAArE,GAAAzF,EAAAC,OAAAiN,EAAA,WACAE,EAAApN,EAAAC,OAAAiN,EAAA,WAEA,IAAAzH,GAAAzG,KAAA4B,SACA,SAAAwC,OAAA,wBAAAqC,EAGAzG,MAAAoB,SAAA,GAAAC,GACArB,KAAAsB,OAAA,GAAAD,EAEA,IAAAmN,IACAlM,MAAA,EACAE,OAAA,EAEAxC,MAAAyO,UAAAL,EAAA/H,IAAA,SAAAiF,GACA,GAAAA,EAAArB,IAGA,SAAA7F,OAAA,qDAEA,IAAAsK,GAAA1N,EAAAC,OAAAqK,EAAA,UACAqD,EAAA3N,EAAAC,OAAAyN,EAAA,QACAE,EAAA5N,EAAAC,OAAAyN,EAAA,SAEA,IAAAC,EAAAH,EAAAlM,MACAqM,IAAAH,EAAAlM,MAAAsM,EAAAJ,EAAAhM,OACA,SAAA4B,OAAA,uDAIA,OAFAoK,GAAAE,GAGAG,iBAGAtM,cAAAoM,EAAA,EACAlM,gBAAAmM,EAAA,GAEAE,SAAA,GAAAlO,GAAAI,EAAAC,OAAAqK,EAAA,WA11BA,GAAAtK,GAAAd,EAAA,GACA6O,EAAA7O,EAAA,GACAmB,EAAAnB,EAAA,GAAAmB,SACAK,EAAAxB,EAAA,GACA8O,EAAA9O,EAAA,GAAA8O,SAaApO,GAAAiB,cAAA,SAAAoM,GACA,MAAAK,GAAAzM,cAAAoM,IAMArN,EAAAe,UAAAC,SAAA,EAgCAhB,EAAAe,UAAAsN,oBAAA,KACApL,OAAAqL,eAAAtO,EAAAe,UAAA,sBACAwL,IAAA,WAKA,MAJAnN,MAAAiP,qBACAjP,KAAAmP,eAAAnP,KAAAuB,UAAAvB,KAAA+B,YAGA/B,KAAAiP,uBAIArO,EAAAe,UAAAyN,mBAAA,KACAvL,OAAAqL,eAAAtO,EAAAe,UAAA,qBACAwL,IAAA,WAKA,MAJAnN,MAAAoP,oBACApP,KAAAmP,eAAAnP,KAAAuB,UAAAvB,KAAA+B,YAGA/B,KAAAoP,sBAIAxO,EAAAe,UAAA0N,wBACA,SAAA1H,EAAAqD,GACA,GAAAvK,GAAAkH,EAAAO,OAAA8C,EACA,aAAAvK,GAAmB,MAAAA,GAQnBG,EAAAe,UAAAwN,eACA,SAAAxH,EAAAvB,GACA,SAAAhC,OAAA,6CAGAxD,EAAA0O,gBAAA,EACA1O,EAAA2O,eAAA,EAEA3O,EAAA4O,qBAAA,EACA5O,EAAA6O,kBAAA,EAkBA7O,EAAAe,UAAAO,YACA,SAAA2L,EAAA6B,EAAAC,GACA,GAGAhK,GAHAiK,EAAAF,GAAA,KACAG,EAAAF,GAAA/O,EAAA0O,eAGA,QAAAO,GACA,IAAAjP,GAAA0O,gBACA3J,EAAA3F,KAAA8P,kBACA,MACA,KAAAlP,GAAA2O,eACA5J,EAAA3F,KAAA+P,iBACA,MACA,SACA,SAAA3L,OAAA,+BAGA,GAAArC,GAAA/B,KAAA+B,UACA4D,GAAAU,IAAA,SAAAlE,GACA,GAAAO,GAAA,OAAAP,EAAAO,OAAA,KAAA1C,KAAAoB,SAAAgM,GAAAjL,EAAAO,OAIA,OAHA,OAAAA,GAAA,MAAAX,IACAW,EAAA1B,EAAAyD,KAAA1C,EAAAW,KAGAA,SACAH,cAAAJ,EAAAI,cACAE,gBAAAN,EAAAM,gBACAI,aAAAV,EAAAU,aACAC,eAAAX,EAAAW,eACAC,KAAA,OAAAZ,EAAAY,KAAA,KAAA/C,KAAAsB,OAAA8L,GAAAjL,EAAAY,QAEK/C,MAAAkD,QAAA2K,EAAA+B,IAsBLhP,EAAAe,UAAAqO,yBACA,SAAAlP,GACA,GAAAwB,GAAAtB,EAAAC,OAAAH,EAAA,QAMAmP,GACAvN,OAAA1B,EAAAC,OAAAH,EAAA,UACA+B,aAAAP,EACAQ,eAAA9B,EAAAC,OAAAH,EAAA,YAMA,IAHA,MAAAd,KAAA+B,aACAkO,EAAAvN,OAAA1B,EAAA2B,SAAA3C,KAAA+B,WAAAkO,EAAAvN,UAEA1C,KAAAoB,SAAAqC,IAAAwM,EAAAvN,QACA,QAEAuN,GAAAvN,OAAA1C,KAAAoB,SAAA6E,QAAAgK,EAAAvN,OAEA,IAAAiD,MAEAqF,EAAAhL,KAAAkQ,aAAAD,EACAjQ,KAAA+P,kBACA,eACA,iBACA/O,EAAAyK,2BACAsD,EAAAU,kBACA,IAAAzE,GAAA,GACA,GAAA7I,GAAAnC,KAAA+P,kBAAA/E,EAEA,IAAAmF,SAAArP,EAAA0B,OAOA,IANA,GAAAK,GAAAV,EAAAU,aAMAV,KAAAU,kBACA8C,EAAAuH,MACA5K,KAAAtB,EAAAC,OAAAkB,EAAA,sBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,wBACAiO,WAAApP,EAAAC,OAAAkB,EAAA,8BAGAA,EAAAnC,KAAA+P,oBAAA/E,OASA,KANA,GAAAlI,GAAAX,EAAAW,eAMAX,GACAA,EAAAU,eAAAP,GACAH,EAAAW,mBACA6C,EAAAuH,MACA5K,KAAAtB,EAAAC,OAAAkB,EAAA,sBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,wBACAiO,WAAApP,EAAAC,OAAAkB,EAAA,8BAGAA,EAAAnC,KAAA+P,oBAAA/E,GAKA,MAAArF,IAGA/F,EAAAgB,oBAmFA0N,EAAA3M,UAAAkC,OAAAC,OAAAlD,EAAAe,WACA2M,EAAA3M,UAAAmN,SAAAlO,EASA0N,EAAAzM,cACA,SAAAoM,GACA,GAAAoC,GAAAxM,OAAAC,OAAAwK,EAAA3M,WAEA+E,EAAA2J,EAAA/O,OAAAD,EAAAoL,UAAAwB,EAAA3M,OAAAsE,WAAA,GACA3C,EAAAoN,EAAAjP,SAAAC,EAAAoL,UAAAwB,EAAA7M,SAAAwE,WAAA,EACAyK,GAAAtO,WAAAkM,EAAA/M,YACAmP,EAAA1J,eAAAsH,EAAA/H,wBAAAmK,EAAAjP,SAAAwE,UACAyK,EAAAtO,YACAsO,EAAApO,KAAAgM,EAAAlN,KAWA,QAJAuP,GAAArC,EAAA1M,UAAAqE,UAAAsF,QACAqF,EAAAF,EAAApB,uBACAuB,EAAAH,EAAAjB,sBAEAvJ,EAAA,EAAA5B,EAAAqM,EAAArM,OAAsD4B,EAAA5B,EAAY4B,IAAA,CAClE,GAAA4K,GAAAH,EAAAzK,GACA6K,EAAA,GAAAnC,EACAmC,GAAAnO,cAAAkO,EAAAlO,cACAmO,EAAAjO,gBAAAgO,EAAAhO,gBAEAgO,EAAA/N,SACAgO,EAAAhO,OAAAO,EAAAgD,QAAAwK,EAAA/N,QACAgO,EAAA7N,aAAA4N,EAAA5N,aACA6N,EAAA5N,eAAA2N,EAAA3N,eAEA2N,EAAA1N,OACA2N,EAAA3N,KAAA2D,EAAAT,QAAAwK,EAAA1N,OAGAyN,EAAAtD,KAAAwD,IAGAH,EAAArD,KAAAwD,GAKA,MAFA1B,GAAAqB,EAAAjB,mBAAApO,EAAAyK,4BAEA4E,GAMA/B,EAAA3M,UAAAC,SAAA,EAKAiC,OAAAqL,eAAAZ,EAAA3M,UAAA,WACAwL,IAAA,WACA,MAAAnN,MAAAoB,SAAAwE,UAAAS,IAAA,SAAAiF,GACA,aAAAtL,KAAA+B,WAAAf,EAAAyD,KAAAzE,KAAA+B,WAAAuJ,MACKtL,SAqBLsO,EAAA3M,UAAAwN,eACA,SAAAxH,EAAAvB,GAeA,IAdA,GAYAjE,GAAAwO,EAAAC,EAAAC,EAAA1I,EAZA5F,EAAA,EACA6C,EAAA,EACAG,EAAA,EACAD,EAAA,EACAG,EAAA,EACAD,EAAA,EACAvB,EAAA0D,EAAA1D,OACA+G,EAAA,EACA8F,KACAC,KACAC,KACAV,KAGAtF,EAAA/G,GACA,SAAA0D,EAAAO,OAAA8C,GACAzI,IACAyI,IACA5F,EAAA,MAEA,UAAAuC,EAAAO,OAAA8C,GACAA,QAEA,CASA,IARA7I,EAAA,GAAAoM,GACApM,EAAAI,gBAOAsO,EAAA7F,EAAyB6F,EAAA5M,IACzBjE,KAAAqP,wBAAA1H,EAAAkJ,GADuCA,KAQvC,GAHAF,EAAAhJ,EAAAuD,MAAAF,EAAA6F,GAEAD,EAAAE,EAAAH,GAEA3F,GAAA2F,EAAA1M,WACS,CAET,IADA2M,KACA5F,EAAA6F,GACAnP,EAAAgG,OAAAC,EAAAqD,EAAA+F,GACA5I,EAAA4I,EAAA5I,MACA6C,EAAA+F,EAAA3I,KACAwI,EAAA1D,KAAA/E,EAGA,QAAAyI,EAAA3M,OACA,SAAAG,OAAA,yCAGA,QAAAwM,EAAA3M,OACA,SAAAG,OAAA,yCAGA0M,GAAAH,GAAAC,EAIAzO,EAAAM,gBAAA2C,EAAAwL,EAAA,GACAxL,EAAAjD,EAAAM,gBAEAmO,EAAA3M,OAAA,IAEA9B,EAAAO,OAAA+C,EAAAmL,EAAA,GACAnL,GAAAmL,EAAA,GAGAzO,EAAAU,aAAA0C,EAAAqL,EAAA,GACArL,EAAApD,EAAAU,aAEAV,EAAAU,cAAA,EAGAV,EAAAW,eAAAwC,EAAAsL,EAAA,GACAtL,EAAAnD,EAAAW,eAEA8N,EAAA3M,OAAA,IAEA9B,EAAAY,KAAAyC,EAAAoL,EAAA,GACApL,GAAAoL,EAAA,KAIAN,EAAApD,KAAA/K,GACA,gBAAAA,GAAAU,cACAmO,EAAA9D,KAAA/K,GAKA6M,EAAAsB,EAAAtP,EAAA8K,qCACA9L,KAAAiP,oBAAAqB,EAEAtB,EAAAgC,EAAAhQ,EAAAyK,4BACAzL,KAAAoP,mBAAA4B,GAOA1C,EAAA3M,UAAAuO,aACA,SAAAe,EAAAC,EAAAC,EACAC,EAAAC,EAAAC,GAMA,GAAAL,EAAAE,IAAA,EACA,SAAA3I,WAAA,gDACAyI,EAAAE,GAEA,IAAAF,EAAAG,GAAA,EACA,SAAA5I,WAAA,kDACAyI,EAAAG,GAGA,OAAArC,GAAAwC,OAAAN,EAAAC,EAAAG,EAAAC,IAOAhD,EAAA3M,UAAA6P,mBACA,WACA,OAAAxG,GAAA,EAAuBA,EAAAhL,KAAA8P,mBAAA7L,SAAwC+G,EAAA,CAC/D,GAAA7I,GAAAnC,KAAA8P,mBAAA9E,EAMA,IAAAA,EAAA,EAAAhL,KAAA8P,mBAAA7L,OAAA,CACA,GAAAwN,GAAAzR,KAAA8P,mBAAA9E,EAAA,EAEA,IAAA7I,EAAAI,gBAAAkP,EAAAlP,cAAA,CACAJ,EAAAuP,oBAAAD,EAAAhP,gBAAA,CACA,WAKAN,EAAAuP,oBAAAC,MAwBArD,EAAA3M,UAAA6C,oBACA,SAAA1D,GACA,GAAAmP,IACA1N,cAAAvB,EAAAC,OAAAH,EAAA,QACA2B,gBAAAzB,EAAAC,OAAAH,EAAA,WAGAkK,EAAAhL,KAAAkQ,aACAD,EACAjQ,KAAA8P,mBACA,gBACA,kBACA9O,EAAA8K,oCACA9K,EAAAC,OAAAH,EAAA,OAAAF,EAAA4O,sBAGA,IAAAxE,GAAA,GACA,GAAA7I,GAAAnC,KAAA8P,mBAAA9E,EAEA,IAAA7I,EAAAI,gBAAA0N,EAAA1N,cAAA,CACA,GAAAG,GAAA1B,EAAAC,OAAAkB,EAAA,cACA,QAAAO,IACAA,EAAA1C,KAAAoB,SAAAgM,GAAA1K,GACA,MAAA1C,KAAA+B,aACAW,EAAA1B,EAAAyD,KAAAzE,KAAA+B,WAAAW,IAGA,IAAAK,GAAA/B,EAAAC,OAAAkB,EAAA,YAIA,OAHA,QAAAY,IACAA,EAAA/C,KAAAsB,OAAA8L,GAAArK,KAGAL,SACAJ,KAAAtB,EAAAC,OAAAkB,EAAA,qBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,uBACAY,SAKA,OACAL,OAAA,KACAJ,KAAA,KACAE,OAAA,KACAO,KAAA,OAQAuL,EAAA3M,UAAAiQ,wBACA,WACA,QAAA5R,KAAA2G,iBAGA3G,KAAA2G,eAAA1C,QAAAjE,KAAAoB,SAAAyL,SACA7M,KAAA2G,eAAAkL,KAAA,SAAAC,GAA+C,aAAAA,MAQ/CxD,EAAA3M,UAAA0B,iBACA,SAAAuB,EAAAmN,GACA,IAAA/R,KAAA2G,eACA,WAOA,IAJA,MAAA3G,KAAA+B,aACA6C,EAAA5D,EAAA2B,SAAA3C,KAAA+B,WAAA6C,IAGA5E,KAAAoB,SAAAqC,IAAAmB,GACA,MAAA5E,MAAA2G,eAAA3G,KAAAoB,SAAA6E,QAAArB,GAGA,IAAAqF,EACA,UAAAjK,KAAA+B,aACAkI,EAAAjJ,EAAAsI,SAAAtJ,KAAA+B,aAAA,CAKA,GAAAiQ,GAAApN,EAAAkG,QAAA,gBACA,YAAAb,EAAAP,QACA1J,KAAAoB,SAAAqC,IAAAuO,GACA,MAAAhS,MAAA2G,eAAA3G,KAAAoB,SAAA6E,QAAA+L,GAGA,MAAA/H,EAAAH,MAAA,KAAAG,EAAAH,OACA9J,KAAAoB,SAAAqC,IAAA,IAAAmB,GACA,MAAA5E,MAAA2G,eAAA3G,KAAAoB,SAAA6E,QAAA,IAAArB,IAQA,GAAAmN,EACA,WAGA,UAAA3N,OAAA,IAAAQ,EAAA,+BAuBA0J,EAAA3M,UAAAsQ,qBACA,SAAAnR,GACA,GAAA4B,GAAA1B,EAAAC,OAAAH,EAAA,SAIA,IAHA,MAAAd,KAAA+B,aACAW,EAAA1B,EAAA2B,SAAA3C,KAAA+B,WAAAW,KAEA1C,KAAAoB,SAAAqC,IAAAf,GACA,OACAJ,KAAA,KACAE,OAAA,KACA4N,WAAA,KAGA1N,GAAA1C,KAAAoB,SAAA6E,QAAAvD,EAEA,IAAAuN,IACAvN,SACAG,aAAA7B,EAAAC,OAAAH,EAAA,QACAgC,eAAA9B,EAAAC,OAAAH,EAAA,WAGAkK,EAAAhL,KAAAkQ,aACAD,EACAjQ,KAAA+P,kBACA,eACA,iBACA/O,EAAAyK,2BACAzK,EAAAC,OAAAH,EAAA,OAAAF,EAAA4O,sBAGA,IAAAxE,GAAA,GACA,GAAA7I,GAAAnC,KAAA+P,kBAAA/E,EAEA,IAAA7I,EAAAO,SAAAuN,EAAAvN,OACA,OACAJ,KAAAtB,EAAAC,OAAAkB,EAAA,sBACAK,OAAAxB,EAAAC,OAAAkB,EAAA,wBACAiO,WAAApP,EAAAC,OAAAkB,EAAA,6BAKA,OACAG,KAAA,KACAE,OAAA,KACA4N,WAAA,OAIAxQ,EAAA0O,yBA+FAD,EAAA1M,UAAAkC,OAAAC,OAAAlD,EAAAe,WACA0M,EAAA1M,UAAAuQ,YAAAtR,EAKAyN,EAAA1M,UAAAC,SAAA,EAKAiC,OAAAqL,eAAAb,EAAA1M,UAAA,WACAwL,IAAA,WAEA,OADAlK,MACA4C,EAAA,EAAmBA,EAAA7F,KAAAyO,UAAAxK,OAA2B4B,IAC9C,OAAAsM,GAAA,EAAqBA,EAAAnS,KAAAyO,UAAA5I,GAAAiJ,SAAA7L,QAAAgB,OAA+CkO,IACpElP,EAAAiK,KAAAlN,KAAAyO,UAAA5I,GAAAiJ,SAAA7L,QAAAkP,GAGA,OAAAlP,MAmBAoL,EAAA1M,UAAA6C,oBACA,SAAA1D,GACA,GAAAmP,IACA1N,cAAAvB,EAAAC,OAAAH,EAAA,QACA2B,gBAAAzB,EAAAC,OAAAH,EAAA,WAKAsR,EAAArD,EAAAwC,OAAAtB,EAAAjQ,KAAAyO,UACA,SAAAwB,EAAAoC,GACA,GAAAxG,GAAAoE,EAAA1N,cAAA8P,EAAAxD,gBAAAtM,aACA,OAAAsJ,GACAA,EAGAoE,EAAAxN,gBACA4P,EAAAxD,gBAAApM,kBAEA4P,EAAArS,KAAAyO,UAAA2D,EAEA,OAAAC,GASAA,EAAAvD,SAAAtK,qBACAlC,KAAA2N,EAAA1N,eACA8P,EAAAxD,gBAAAtM,cAAA,GACAC,OAAAyN,EAAAxN,iBACA4P,EAAAxD,gBAAAtM,gBAAA0N,EAAA1N,cACA8P,EAAAxD,gBAAApM,gBAAA,EACA,GACA6P,KAAAxR,EAAAwR,QAdA5P,OAAA,KACAJ,KAAA,KACAE,OAAA,KACAO,KAAA,OAmBAsL,EAAA1M,UAAAiQ,wBACA,WACA,MAAA5R,MAAAyO,UAAA8D,MAAA,SAAAjH,GACA,MAAAA,GAAAwD,SAAA8C,6BASAvD,EAAA1M,UAAA0B,iBACA,SAAAuB,EAAAmN,GACA,OAAAlM,GAAA,EAAmBA,EAAA7F,KAAAyO,UAAAxK,OAA2B4B,IAAA,CAC9C,GAAAwM,GAAArS,KAAAyO,UAAA5I,GAEAzC,EAAAiP,EAAAvD,SAAAzL,iBAAAuB,GAAA,EACA,IAAAxB,EACA,MAAAA,GAGA,GAAA2O,EACA,WAGA,UAAA3N,OAAA,IAAAQ,EAAA,+BAkBAyJ,EAAA1M,UAAAsQ,qBACA,SAAAnR,GACA,OAAA+E,GAAA,EAAmBA,EAAA7F,KAAAyO,UAAAxK,OAA2B4B,IAAA,CAC9C,GAAAwM,GAAArS,KAAAyO,UAAA5I,EAIA,IAAAwM,EAAAvD,SAAA7L,QAAAgD,QAAAjF,EAAAC,OAAAH,EAAA,iBAGA,GAAA0R,GAAAH,EAAAvD,SAAAmD,qBAAAnR,EACA,IAAA0R,EAAA,CACA,GAAAC,IACAnQ,KAAAkQ,EAAAlQ,MACA+P,EAAAxD,gBAAAtM,cAAA,GACAC,OAAAgQ,EAAAhQ,QACA6P,EAAAxD,gBAAAtM,gBAAAiQ,EAAAlQ,KACA+P,EAAAxD,gBAAApM,gBAAA,EACA,GAEA,OAAAgQ,KAIA,OACAnQ,KAAA,KACAE,OAAA,OASA6L,EAAA1M,UAAAwN,eACA,SAAAxH,EAAAvB,GACApG,KAAAiP,uBACAjP,KAAAoP,qBACA,QAAAvJ,GAAA,EAAmBA,EAAA7F,KAAAyO,UAAAxK,OAA2B4B,IAG9C,OAFAwM,GAAArS,KAAAyO,UAAA5I,GACA6M,EAAAL,EAAAvD,SAAAgB,mBACAqC,EAAA,EAAqBA,EAAAO,EAAAzO,OAA4BkO,IAAA,CACjD,GAAAhQ,GAAAuQ,EAAAP,GAEAzP,EAAA2P,EAAAvD,SAAA1N,SAAAgM,GAAAjL,EAAAO,OACA,QAAA2P,EAAAvD,SAAA/M,aACAW,EAAA1B,EAAAyD,KAAA4N,EAAAvD,SAAA/M,WAAAW,IAEA1C,KAAAoB,SAAAsC,IAAAhB,GACAA,EAAA1C,KAAAoB,SAAA6E,QAAAvD,EAEA,IAAAK,GAAAsP,EAAAvD,SAAAxN,OAAA8L,GAAAjL,EAAAY,KACA/C,MAAAsB,OAAAoC,IAAAX,GACAA,EAAA/C,KAAAsB,OAAA2E,QAAAlD,EAMA,IAAA4P,IACAjQ,SACAH,cAAAJ,EAAAI,eACA8P,EAAAxD,gBAAAtM,cAAA,GACAE,gBAAAN,EAAAM,iBACA4P,EAAAxD,gBAAAtM,gBAAAJ,EAAAI,cACA8P,EAAAxD,gBAAApM,gBAAA,EACA,GACAI,aAAAV,EAAAU,aACAC,eAAAX,EAAAW,eACAC,OAGA/C,MAAAiP,oBAAA/B,KAAAyF,GACA,gBAAAA,GAAA9P,cACA7C,KAAAoP,mBAAAlC,KAAAyF,GAKA3D,EAAAhP,KAAAiP,oBAAAjO,EAAA8K,qCACAkD,EAAAhP,KAAAoP,mBAAApO,EAAAyK,6BAGA7L,EAAAyO,4BTu0CM,SAAUxO,EAAQD,GUz2ExB,QAAAgT,GAAAC,EAAAC,EAAA7B,EAAA8B,EAAAC,EAAA1B,GAUA,GAAA2B,GAAAC,KAAAC,OAAAL,EAAAD,GAAA,GAAAA,EACAhH,EAAAmH,EAAA/B,EAAA8B,EAAAE,IAAA,EACA,YAAApH,EAEAoH,EAEApH,EAAA,EAEAiH,EAAAG,EAAA,EAEAL,EAAAK,EAAAH,EAAA7B,EAAA8B,EAAAC,EAAA1B,GAKAA,GAAA1R,EAAA6P,kBACAqD,EAAAC,EAAA9O,OAAA6O,GAAA,EAEAG,EAKAA,EAAAJ,EAAA,EAEAD,EAAAC,EAAAI,EAAAhC,EAAA8B,EAAAC,EAAA1B,GAIAA,GAAA1R,EAAA6P,kBACAwD,EAEAJ,EAAA,KAAAA,EA1DAjT,EAAA4P,qBAAA,EACA5P,EAAA6P,kBAAA,EAgFA7P,EAAA2R,OAAA,SAAAN,EAAA8B,EAAAC,EAAA1B,GACA,OAAAyB,EAAA9O,OACA,QAGA,IAAA+G,GAAA4H,GAAA,EAAAG,EAAA9O,OAAAgN,EAAA8B,EACAC,EAAA1B,GAAA1R,EAAA4P,qBACA,IAAAxE,EAAA,EACA,QAMA,MAAAA,EAAA,MACA,IAAAgI,EAAAD,EAAA/H,GAAA+H,EAAA/H,EAAA,UAGAA,CAGA,OAAAA,KVw4EM,SAAUnL,EAAQD,GW19ExB,QAAAwT,GAAAC,EAAAC,EAAAC,GACA,GAAAxC,GAAAsC,EAAAC,EACAD,GAAAC,GAAAD,EAAAE,GACAF,EAAAE,GAAAxC,EAWA,QAAAyC,GAAAC,EAAAC,GACA,MAAAR,MAAAS,MAAAF,EAAAP,KAAAU,UAAAF,EAAAD,IAeA,QAAAI,GAAAR,EAAAS,EAAApT,EAAAqT,GAKA,GAAArT,EAAAqT,EAAA,CAYA,GAAAC,GAAAR,EAAA9S,EAAAqT,GACAlO,EAAAnF,EAAA,CAEA0S,GAAAC,EAAAW,EAAAD,EASA,QARAE,GAAAZ,EAAAU,GAQA5B,EAAAzR,EAAmByR,EAAA4B,EAAO5B,IAC1B2B,EAAAT,EAAAlB,GAAA8B,IAAA,IACApO,GAAA,EACAuN,EAAAC,EAAAxN,EAAAsM,GAIAiB,GAAAC,EAAAxN,EAAA,EAAAsM,EACA,IAAA+B,GAAArO,EAAA,CAIAgO,GAAAR,EAAAS,EAAApT,EAAAwT,EAAA,GACAL,EAAAR,EAAAS,EAAAI,EAAA,EAAAH,IAYAnU,EAAAoP,UAAA,SAAAqE,EAAAS,GACAD,EAAAR,EAAAS,EAAA,EAAAT,EAAApP,OAAA,KX6/EM,SAAUpE,EAAQD,EAASM,GY3kFjC,QAAAW,GAAAsT,EAAAC,EAAAxP,EAAAyP,EAAAxP,GACA7E,KAAAsU,YACAtU,KAAAuU,kBACAvU,KAAAsC,KAAA,MAAA6R,EAAA,KAAAA,EACAnU,KAAAwC,OAAA,MAAA4R,EAAA,KAAAA,EACApU,KAAA0C,OAAA,MAAAkC,EAAA,KAAAA,EACA5E,KAAA+C,KAAA,MAAA8B,EAAA,KAAAA,EACA7E,KAAAwU,IAAA,EACA,MAAAH,GAAArU,KAAA0D,IAAA2Q,GAnCA,GAAA1T,GAAAT,EAAA,GAAAS,mBACAK,EAAAd,EAAA,GAIAuU,EAAA,UAGAC,EAAA,GAKAF,EAAA,oBAiCA3T,GAAA8T,wBACA,SAAAC,EAAA9S,EAAA+S,GA+FA,QAAAC,GAAA3S,EAAA4S,GACA,UAAA5S,GAAAgO,SAAAhO,EAAAO,OACAsS,EAAAtR,IAAAqR,OACO,CACP,GAAArS,GAAAmS,EACA7T,EAAAyD,KAAAoQ,EAAA1S,EAAAO,QACAP,EAAAO,MACAsS,GAAAtR,IAAA,GAAA7C,GAAAsB,EAAAU,aACAV,EAAAW,eACAJ,EACAqS,EACA5S,EAAAY,QAvGA,GAAAiS,GAAA,GAAAnU,GAMAoU,EAAAL,EAAAtM,MAAAmM,GACAS,EAAA,EACAC,EAAA,WAMA,QAAAC,KACA,MAAAF,GAAAD,EAAAhR,OACAgR,EAAAC,KAAA/E,OAPA,GAAAkF,GAAAD,IAEAE,EAAAF,KAAA,EACA,OAAAC,GAAAC,GASAC,EAAA,EAAA7D,EAAA,EAKA8D,EAAA,IAgEA,OA9DA1T,GAAAI,YAAA,SAAAC,GACA,UAAAqT,EAAA,CAGA,KAAAD,EAAApT,EAAAI,eAMS,CAIT,GAAAkT,GAAAR,EAAAC,GACAH,EAAAU,EAAArK,OAAA,EAAAjJ,EAAAM,gBACAiP,EAOA,OANAuD,GAAAC,GAAAO,EAAArK,OAAAjJ,EAAAM,gBACAiP,GACAA,EAAAvP,EAAAM,gBACAqS,EAAAU,EAAAT,QAEAS,EAAArT,GAhBA2S,EAAAU,EAAAL,KACAI,IACA7D,EAAA,EAqBA,KAAA6D,EAAApT,EAAAI,eACAyS,EAAAtR,IAAAyR,KACAI,GAEA,IAAA7D,EAAAvP,EAAAM,gBAAA,CACA,GAAAgT,GAAAR,EAAAC,EACAF,GAAAtR,IAAA+R,EAAArK,OAAA,EAAAjJ,EAAAM,kBACAwS,EAAAC,GAAAO,EAAArK,OAAAjJ,EAAAM,iBACAiP,EAAAvP,EAAAM,gBAEA+S,EAAArT,GACKnC,MAELkV,EAAAD,EAAAhR,SACAuR,GAEAV,EAAAU,EAAAL,KAGAH,EAAAtR,IAAAuR,EAAAzK,OAAA0K,GAAAzQ,KAAA,MAIA3C,EAAAmB,QAAAC,QAAA,SAAAC,GACA,GAAAC,GAAAtB,EAAAuB,iBAAAF,EACA,OAAAC,IACA,MAAAyR,IACA1R,EAAAnC,EAAAyD,KAAAoQ,EAAA1R,IAEA6R,EAAA1R,iBAAAH,EAAAC,MAIA4R,GAwBAnU,EAAAc,UAAA+B,IAAA,SAAAgS,GACA,GAAAvK,MAAAwK,QAAAD,GACAA,EAAAxS,QAAA,SAAA0S,GACA5V,KAAA0D,IAAAkS,IACK5V,UAEL,KAAA0V,EAAAlB,IAAA,gBAAAkB,GAMA,SAAAlN,WACA,8EAAAkN,EANAA,IACA1V,KAAAsU,SAAApH,KAAAwI,GAQA,MAAA1V,OASAa,EAAAc,UAAAkU,QAAA,SAAAH,GACA,GAAAvK,MAAAwK,QAAAD,GACA,OAAA7P,GAAA6P,EAAAzR,OAAA,EAAiC4B,GAAA,EAAQA,IACzC7F,KAAA6V,QAAAH,EAAA7P,QAGA,KAAA6P,EAAAlB,IAAA,gBAAAkB,GAIA,SAAAlN,WACA,8EAAAkN,EAJA1V,MAAAsU,SAAAwB,QAAAJ,GAOA,MAAA1V,OAUAa,EAAAc,UAAAoU,KAAA,SAAAC,GAEA,OADAJ,GACA/P,EAAA,EAAAC,EAAA9F,KAAAsU,SAAArQ,OAA6C4B,EAAAC,EAASD,IACtD+P,EAAA5V,KAAAsU,SAAAzO,GACA+P,EAAApB,GACAoB,EAAAG,KAAAC,GAGA,KAAAJ,GACAI,EAAAJ,GAAoBlT,OAAA1C,KAAA0C,OACpBJ,KAAAtC,KAAAsC,KACAE,OAAAxC,KAAAwC,OACAO,KAAA/C,KAAA+C,QAYAlC,EAAAc,UAAA8C,KAAA,SAAAwR,GACA,GAAAC,GACArQ,EACAC,EAAA9F,KAAAsU,SAAArQ,MACA,IAAA6B,EAAA,GAEA,IADAoQ,KACArQ,EAAA,EAAeA,EAAAC,EAAA,EAAWD,IAC1BqQ,EAAAhJ,KAAAlN,KAAAsU,SAAAzO,IACAqQ,EAAAhJ,KAAA+I,EAEAC,GAAAhJ,KAAAlN,KAAAsU,SAAAzO,IACA7F,KAAAsU,SAAA4B,EAEA,MAAAlW,OAUAa,EAAAc,UAAAwU,aAAA,SAAAC,EAAAC,GACA,GAAAC,GAAAtW,KAAAsU,SAAAtU,KAAAsU,SAAArQ,OAAA,EAUA,OATAqS,GAAA9B,GACA8B,EAAAH,aAAAC,EAAAC,GAEA,gBAAAC,GACAtW,KAAAsU,SAAAtU,KAAAsU,SAAArQ,OAAA,GAAAqS,EAAAxL,QAAAsL,EAAAC,GAGArW,KAAAsU,SAAApH,KAAA,GAAApC,QAAAsL,EAAAC,IAEArW,MAUAa,EAAAc,UAAA2B,iBACA,SAAAK,EAAAC,GACA5D,KAAAuU,eAAAvT,EAAA+C,YAAAJ,IAAAC,GASA/C,EAAAc,UAAA4U,mBACA,SAAAP,GACA,OAAAnQ,GAAA,EAAAC,EAAA9F,KAAAsU,SAAArQ,OAA+C4B,EAAAC,EAASD,IACxD7F,KAAAsU,SAAAzO,GAAA2O,IACAxU,KAAAsU,SAAAzO,GAAA0Q,mBAAAP,EAKA,QADA/S,GAAAY,OAAAG,KAAAhE,KAAAuU,gBACA1O,EAAA,EAAAC,EAAA7C,EAAAgB,OAAyC4B,EAAAC,EAASD,IAClDmQ,EAAAhV,EAAAwK,cAAAvI,EAAA4C,IAAA7F,KAAAuU,eAAAtR,EAAA4C,MAQAhF,EAAAc,UAAAiF,SAAA,WACA,GAAA+J,GAAA,EAIA,OAHA3Q,MAAA+V,KAAA,SAAAH,GACAjF,GAAAiF,IAEAjF,GAOA9P,EAAAc,UAAA6U,sBAAA,SAAA1V,GACA,GAAAuB,IACA0S,KAAA,GACAzS,KAAA,EACAE,OAAA,GAEA6D,EAAA,GAAA1F,GAAAG,GACA2V,GAAA,EACAC,EAAA,KACAC,EAAA,KACAC,EAAA,KACAC,EAAA,IAqEA,OApEA7W,MAAA+V,KAAA,SAAAH,EAAAhT,GACAP,EAAA0S,MAAAa,EACA,OAAAhT,EAAAF,QACA,OAAAE,EAAAN,MACA,OAAAM,EAAAJ,QACAkU,IAAA9T,EAAAF,QACAiU,IAAA/T,EAAAN,MACAsU,IAAAhU,EAAAJ,QACAqU,IAAAjU,EAAAG,MACAsD,EAAArD,YACAN,OAAAE,EAAAF,OACAE,UACAN,KAAAM,EAAAN,KACAE,OAAAI,EAAAJ,QAEAH,WACAC,KAAAD,EAAAC,KACAE,OAAAH,EAAAG,QAEAO,KAAAH,EAAAG,OAGA2T,EAAA9T,EAAAF,OACAiU,EAAA/T,EAAAN,KACAsU,EAAAhU,EAAAJ,OACAqU,EAAAjU,EAAAG,KACA0T,GAAA,GACKA,IACLpQ,EAAArD,YACAX,WACAC,KAAAD,EAAAC,KACAE,OAAAH,EAAAG,UAGAkU,EAAA,KACAD,GAAA,EAEA,QAAAxJ,GAAA,EAAAhJ,EAAA2R,EAAA3R,OAA4CgJ,EAAAhJ,EAAcgJ,IAC1D2I,EAAA3N,WAAAgF,KAAAyH,GACArS,EAAAC,OACAD,EAAAG,OAAA,EAEAyK,EAAA,IAAAhJ,GACAyS,EAAA,KACAD,GAAA,GACSA,GACTpQ,EAAArD,YACAN,OAAAE,EAAAF,OACAE,UACAN,KAAAM,EAAAN,KACAE,OAAAI,EAAAJ,QAEAH,WACAC,KAAAD,EAAAC,KACAE,OAAAH,EAAAG,QAEAO,KAAAH,EAAAG,QAIAV,EAAAG,WAIAxC,KAAAuW,mBAAA,SAAApT,EAAA2T,GACAzQ,EAAA/C,iBAAAH,EAAA2T,MAGU/B,KAAA1S,EAAA0S,KAAA1O,QAGVzG,EAAAiB","file":"source-map.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/*\n\t * Copyright 2009-2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE.txt or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\texports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\texports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;\n\texports.SourceNode = __webpack_require__(10).SourceNode;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar base64VLQ = __webpack_require__(2);\n\tvar util = __webpack_require__(4);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar MappingList = __webpack_require__(6).MappingList;\n\t\n\t/**\n\t * An instance of the SourceMapGenerator represents a source map which is\n\t * being built incrementally. You may pass an object with the following\n\t * properties:\n\t *\n\t *   - file: The filename of the generated source.\n\t *   - sourceRoot: A root for all relative URLs in this source map.\n\t */\n\tfunction SourceMapGenerator(aArgs) {\n\t  if (!aArgs) {\n\t    aArgs = {};\n\t  }\n\t  this._file = util.getArg(aArgs, 'file', null);\n\t  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n\t  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t  this._mappings = new MappingList();\n\t  this._sourcesContents = null;\n\t}\n\t\n\tSourceMapGenerator.prototype._version = 3;\n\t\n\t/**\n\t * Creates a new SourceMapGenerator based on a SourceMapConsumer\n\t *\n\t * @param aSourceMapConsumer The SourceMap.\n\t */\n\tSourceMapGenerator.fromSourceMap =\n\t  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n\t    var sourceRoot = aSourceMapConsumer.sourceRoot;\n\t    var generator = new SourceMapGenerator({\n\t      file: aSourceMapConsumer.file,\n\t      sourceRoot: sourceRoot\n\t    });\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      var newMapping = {\n\t        generated: {\n\t          line: mapping.generatedLine,\n\t          column: mapping.generatedColumn\n\t        }\n\t      };\n\t\n\t      if (mapping.source != null) {\n\t        newMapping.source = mapping.source;\n\t        if (sourceRoot != null) {\n\t          newMapping.source = util.relative(sourceRoot, newMapping.source);\n\t        }\n\t\n\t        newMapping.original = {\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        };\n\t\n\t        if (mapping.name != null) {\n\t          newMapping.name = mapping.name;\n\t        }\n\t      }\n\t\n\t      generator.addMapping(newMapping);\n\t    });\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        generator.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t    return generator;\n\t  };\n\t\n\t/**\n\t * Add a single mapping from original source line and column to the generated\n\t * source's line and column for this source map being created. The mapping\n\t * object should have the following properties:\n\t *\n\t *   - generated: An object with the generated line and column positions.\n\t *   - original: An object with the original line and column positions.\n\t *   - source: The original source file (relative to the sourceRoot).\n\t *   - name: An optional original token name for this mapping.\n\t */\n\tSourceMapGenerator.prototype.addMapping =\n\t  function SourceMapGenerator_addMapping(aArgs) {\n\t    var generated = util.getArg(aArgs, 'generated');\n\t    var original = util.getArg(aArgs, 'original', null);\n\t    var source = util.getArg(aArgs, 'source', null);\n\t    var name = util.getArg(aArgs, 'name', null);\n\t\n\t    if (!this._skipValidation) {\n\t      this._validateMapping(generated, original, source, name);\n\t    }\n\t\n\t    if (source != null) {\n\t      source = String(source);\n\t      if (!this._sources.has(source)) {\n\t        this._sources.add(source);\n\t      }\n\t    }\n\t\n\t    if (name != null) {\n\t      name = String(name);\n\t      if (!this._names.has(name)) {\n\t        this._names.add(name);\n\t      }\n\t    }\n\t\n\t    this._mappings.add({\n\t      generatedLine: generated.line,\n\t      generatedColumn: generated.column,\n\t      originalLine: original != null && original.line,\n\t      originalColumn: original != null && original.column,\n\t      source: source,\n\t      name: name\n\t    });\n\t  };\n\t\n\t/**\n\t * Set the source content for a source file.\n\t */\n\tSourceMapGenerator.prototype.setSourceContent =\n\t  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n\t    var source = aSourceFile;\n\t    if (this._sourceRoot != null) {\n\t      source = util.relative(this._sourceRoot, source);\n\t    }\n\t\n\t    if (aSourceContent != null) {\n\t      // Add the source content to the _sourcesContents map.\n\t      // Create a new _sourcesContents map if the property is null.\n\t      if (!this._sourcesContents) {\n\t        this._sourcesContents = Object.create(null);\n\t      }\n\t      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n\t    } else if (this._sourcesContents) {\n\t      // Remove the source file from the _sourcesContents map.\n\t      // If the _sourcesContents map is empty, set the property to null.\n\t      delete this._sourcesContents[util.toSetString(source)];\n\t      if (Object.keys(this._sourcesContents).length === 0) {\n\t        this._sourcesContents = null;\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Applies the mappings of a sub-source-map for a specific source file to the\n\t * source map being generated. Each mapping to the supplied source file is\n\t * rewritten using the supplied source map. Note: The resolution for the\n\t * resulting mappings is the minimium of this map and the supplied map.\n\t *\n\t * @param aSourceMapConsumer The source map to be applied.\n\t * @param aSourceFile Optional. The filename of the source file.\n\t *        If omitted, SourceMapConsumer's file property will be used.\n\t * @param aSourceMapPath Optional. The dirname of the path to the source map\n\t *        to be applied. If relative, it is relative to the SourceMapConsumer.\n\t *        This parameter is needed when the two source maps aren't in the same\n\t *        directory, and the source map to be applied contains relative source\n\t *        paths. If so, those relative source paths need to be rewritten\n\t *        relative to the SourceMapGenerator.\n\t */\n\tSourceMapGenerator.prototype.applySourceMap =\n\t  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n\t    var sourceFile = aSourceFile;\n\t    // If aSourceFile is omitted, we will use the file property of the SourceMap\n\t    if (aSourceFile == null) {\n\t      if (aSourceMapConsumer.file == null) {\n\t        throw new Error(\n\t          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n\t          'or the source map\\'s \"file\" property. Both were omitted.'\n\t        );\n\t      }\n\t      sourceFile = aSourceMapConsumer.file;\n\t    }\n\t    var sourceRoot = this._sourceRoot;\n\t    // Make \"sourceFile\" relative if an absolute Url is passed.\n\t    if (sourceRoot != null) {\n\t      sourceFile = util.relative(sourceRoot, sourceFile);\n\t    }\n\t    // Applying the SourceMap can add and remove items from the sources and\n\t    // the names array.\n\t    var newSources = new ArraySet();\n\t    var newNames = new ArraySet();\n\t\n\t    // Find mappings for the \"sourceFile\"\n\t    this._mappings.unsortedForEach(function (mapping) {\n\t      if (mapping.source === sourceFile && mapping.originalLine != null) {\n\t        // Check if it can be mapped by the source map, then update the mapping.\n\t        var original = aSourceMapConsumer.originalPositionFor({\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        });\n\t        if (original.source != null) {\n\t          // Copy mapping\n\t          mapping.source = original.source;\n\t          if (aSourceMapPath != null) {\n\t            mapping.source = util.join(aSourceMapPath, mapping.source)\n\t          }\n\t          if (sourceRoot != null) {\n\t            mapping.source = util.relative(sourceRoot, mapping.source);\n\t          }\n\t          mapping.originalLine = original.line;\n\t          mapping.originalColumn = original.column;\n\t          if (original.name != null) {\n\t            mapping.name = original.name;\n\t          }\n\t        }\n\t      }\n\t\n\t      var source = mapping.source;\n\t      if (source != null && !newSources.has(source)) {\n\t        newSources.add(source);\n\t      }\n\t\n\t      var name = mapping.name;\n\t      if (name != null && !newNames.has(name)) {\n\t        newNames.add(name);\n\t      }\n\t\n\t    }, this);\n\t    this._sources = newSources;\n\t    this._names = newNames;\n\t\n\t    // Copy sourcesContents of applied map.\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aSourceMapPath != null) {\n\t          sourceFile = util.join(aSourceMapPath, sourceFile);\n\t        }\n\t        if (sourceRoot != null) {\n\t          sourceFile = util.relative(sourceRoot, sourceFile);\n\t        }\n\t        this.setSourceContent(sourceFile, content);\n\t      }\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * A mapping can have one of the three levels of data:\n\t *\n\t *   1. Just the generated position.\n\t *   2. The Generated position, original position, and original source.\n\t *   3. Generated and original position, original source, as well as a name\n\t *      token.\n\t *\n\t * To maintain consistency, we validate that any new mapping being added falls\n\t * in to one of these categories.\n\t */\n\tSourceMapGenerator.prototype._validateMapping =\n\t  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n\t                                              aName) {\n\t    // When aOriginal is truthy but has empty values for .line and .column,\n\t    // it is most likely a programmer error. In this case we throw a very\n\t    // specific error message to try to guide them the right way.\n\t    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n\t    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n\t        throw new Error(\n\t            'original.line and original.column are not numbers -- you probably meant to omit ' +\n\t            'the original mapping entirely and only map the generated position. If so, pass ' +\n\t            'null for the original mapping instead of an object with empty or null values.'\n\t        );\n\t    }\n\t\n\t    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t        && aGenerated.line > 0 && aGenerated.column >= 0\n\t        && !aOriginal && !aSource && !aName) {\n\t      // Case 1.\n\t      return;\n\t    }\n\t    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n\t             && aGenerated.line > 0 && aGenerated.column >= 0\n\t             && aOriginal.line > 0 && aOriginal.column >= 0\n\t             && aSource) {\n\t      // Cases 2 and 3.\n\t      return;\n\t    }\n\t    else {\n\t      throw new Error('Invalid mapping: ' + JSON.stringify({\n\t        generated: aGenerated,\n\t        source: aSource,\n\t        original: aOriginal,\n\t        name: aName\n\t      }));\n\t    }\n\t  };\n\t\n\t/**\n\t * Serialize the accumulated mappings in to the stream of base 64 VLQs\n\t * specified by the source map format.\n\t */\n\tSourceMapGenerator.prototype._serializeMappings =\n\t  function SourceMapGenerator_serializeMappings() {\n\t    var previousGeneratedColumn = 0;\n\t    var previousGeneratedLine = 1;\n\t    var previousOriginalColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousName = 0;\n\t    var previousSource = 0;\n\t    var result = '';\n\t    var next;\n\t    var mapping;\n\t    var nameIdx;\n\t    var sourceIdx;\n\t\n\t    var mappings = this._mappings.toArray();\n\t    for (var i = 0, len = mappings.length; i < len; i++) {\n\t      mapping = mappings[i];\n\t      next = ''\n\t\n\t      if (mapping.generatedLine !== previousGeneratedLine) {\n\t        previousGeneratedColumn = 0;\n\t        while (mapping.generatedLine !== previousGeneratedLine) {\n\t          next += ';';\n\t          previousGeneratedLine++;\n\t        }\n\t      }\n\t      else {\n\t        if (i > 0) {\n\t          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n\t            continue;\n\t          }\n\t          next += ',';\n\t        }\n\t      }\n\t\n\t      next += base64VLQ.encode(mapping.generatedColumn\n\t                                 - previousGeneratedColumn);\n\t      previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t      if (mapping.source != null) {\n\t        sourceIdx = this._sources.indexOf(mapping.source);\n\t        next += base64VLQ.encode(sourceIdx - previousSource);\n\t        previousSource = sourceIdx;\n\t\n\t        // lines are stored 0-based in SourceMap spec version 3\n\t        next += base64VLQ.encode(mapping.originalLine - 1\n\t                                   - previousOriginalLine);\n\t        previousOriginalLine = mapping.originalLine - 1;\n\t\n\t        next += base64VLQ.encode(mapping.originalColumn\n\t                                   - previousOriginalColumn);\n\t        previousOriginalColumn = mapping.originalColumn;\n\t\n\t        if (mapping.name != null) {\n\t          nameIdx = this._names.indexOf(mapping.name);\n\t          next += base64VLQ.encode(nameIdx - previousName);\n\t          previousName = nameIdx;\n\t        }\n\t      }\n\t\n\t      result += next;\n\t    }\n\t\n\t    return result;\n\t  };\n\t\n\tSourceMapGenerator.prototype._generateSourcesContent =\n\t  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n\t    return aSources.map(function (source) {\n\t      if (!this._sourcesContents) {\n\t        return null;\n\t      }\n\t      if (aSourceRoot != null) {\n\t        source = util.relative(aSourceRoot, source);\n\t      }\n\t      var key = util.toSetString(source);\n\t      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n\t        ? this._sourcesContents[key]\n\t        : null;\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * Externalize the source map.\n\t */\n\tSourceMapGenerator.prototype.toJSON =\n\t  function SourceMapGenerator_toJSON() {\n\t    var map = {\n\t      version: this._version,\n\t      sources: this._sources.toArray(),\n\t      names: this._names.toArray(),\n\t      mappings: this._serializeMappings()\n\t    };\n\t    if (this._file != null) {\n\t      map.file = this._file;\n\t    }\n\t    if (this._sourceRoot != null) {\n\t      map.sourceRoot = this._sourceRoot;\n\t    }\n\t    if (this._sourcesContents) {\n\t      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n\t    }\n\t\n\t    return map;\n\t  };\n\t\n\t/**\n\t * Render the source map being generated to a string.\n\t */\n\tSourceMapGenerator.prototype.toString =\n\t  function SourceMapGenerator_toString() {\n\t    return JSON.stringify(this.toJSON());\n\t  };\n\t\n\texports.SourceMapGenerator = SourceMapGenerator;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t *  * Redistributions of source code must retain the above copyright\n\t *    notice, this list of conditions and the following disclaimer.\n\t *  * Redistributions in binary form must reproduce the above\n\t *    copyright notice, this list of conditions and the following\n\t *    disclaimer in the documentation and/or other materials provided\n\t *    with the distribution.\n\t *  * Neither the name of Google Inc. nor the names of its\n\t *    contributors may be used to endorse or promote products derived\n\t *    from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\t\n\tvar base64 = __webpack_require__(3);\n\t\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t//   Continuation\n\t//   |    Sign\n\t//   |    |\n\t//   V    V\n\t//   101011\n\t\n\tvar VLQ_BASE_SHIFT = 5;\n\t\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\t\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\t\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\t\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t  return aValue < 0\n\t    ? ((-aValue) << 1) + 1\n\t    : (aValue << 1) + 0;\n\t}\n\t\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t  var isNegative = (aValue & 1) === 1;\n\t  var shifted = aValue >> 1;\n\t  return isNegative\n\t    ? -shifted\n\t    : shifted;\n\t}\n\t\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t  var encoded = \"\";\n\t  var digit;\n\t\n\t  var vlq = toVLQSigned(aValue);\n\t\n\t  do {\n\t    digit = vlq & VLQ_BASE_MASK;\n\t    vlq >>>= VLQ_BASE_SHIFT;\n\t    if (vlq > 0) {\n\t      // There are still more digits in this value, so we must make sure the\n\t      // continuation bit is marked.\n\t      digit |= VLQ_CONTINUATION_BIT;\n\t    }\n\t    encoded += base64.encode(digit);\n\t  } while (vlq > 0);\n\t\n\t  return encoded;\n\t};\n\t\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t  var strLen = aStr.length;\n\t  var result = 0;\n\t  var shift = 0;\n\t  var continuation, digit;\n\t\n\t  do {\n\t    if (aIndex >= strLen) {\n\t      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t    }\n\t\n\t    digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t    if (digit === -1) {\n\t      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t    }\n\t\n\t    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t    digit &= VLQ_BASE_MASK;\n\t    result = result + (digit << shift);\n\t    shift += VLQ_BASE_SHIFT;\n\t  } while (continuation);\n\t\n\t  aOutParam.value = fromVLQSigned(result);\n\t  aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\t\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t  if (0 <= number && number < intToCharMap.length) {\n\t    return intToCharMap[number];\n\t  }\n\t  throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\t\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t  var bigA = 65;     // 'A'\n\t  var bigZ = 90;     // 'Z'\n\t\n\t  var littleA = 97;  // 'a'\n\t  var littleZ = 122; // 'z'\n\t\n\t  var zero = 48;     // '0'\n\t  var nine = 57;     // '9'\n\t\n\t  var plus = 43;     // '+'\n\t  var slash = 47;    // '/'\n\t\n\t  var littleOffset = 26;\n\t  var numberOffset = 52;\n\t\n\t  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t  if (bigA <= charCode && charCode <= bigZ) {\n\t    return (charCode - bigA);\n\t  }\n\t\n\t  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t  if (littleA <= charCode && charCode <= littleZ) {\n\t    return (charCode - littleA + littleOffset);\n\t  }\n\t\n\t  // 52 - 61: 0123456789\n\t  if (zero <= charCode && charCode <= nine) {\n\t    return (charCode - zero + numberOffset);\n\t  }\n\t\n\t  // 62: +\n\t  if (charCode == plus) {\n\t    return 62;\n\t  }\n\t\n\t  // 63: /\n\t  if (charCode == slash) {\n\t    return 63;\n\t  }\n\t\n\t  // Invalid base64 digit.\n\t  return -1;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t  if (aName in aArgs) {\n\t    return aArgs[aName];\n\t  } else if (arguments.length === 3) {\n\t    return aDefaultValue;\n\t  } else {\n\t    throw new Error('\"' + aName + '\" is a required argument.');\n\t  }\n\t}\n\texports.getArg = getArg;\n\t\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\t\n\tfunction urlParse(aUrl) {\n\t  var match = aUrl.match(urlRegexp);\n\t  if (!match) {\n\t    return null;\n\t  }\n\t  return {\n\t    scheme: match[1],\n\t    auth: match[2],\n\t    host: match[3],\n\t    port: match[4],\n\t    path: match[5]\n\t  };\n\t}\n\texports.urlParse = urlParse;\n\t\n\tfunction urlGenerate(aParsedUrl) {\n\t  var url = '';\n\t  if (aParsedUrl.scheme) {\n\t    url += aParsedUrl.scheme + ':';\n\t  }\n\t  url += '//';\n\t  if (aParsedUrl.auth) {\n\t    url += aParsedUrl.auth + '@';\n\t  }\n\t  if (aParsedUrl.host) {\n\t    url += aParsedUrl.host;\n\t  }\n\t  if (aParsedUrl.port) {\n\t    url += \":\" + aParsedUrl.port\n\t  }\n\t  if (aParsedUrl.path) {\n\t    url += aParsedUrl.path;\n\t  }\n\t  return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\t\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t  var path = aPath;\n\t  var url = urlParse(aPath);\n\t  if (url) {\n\t    if (!url.path) {\n\t      return aPath;\n\t    }\n\t    path = url.path;\n\t  }\n\t  var isAbsolute = exports.isAbsolute(path);\n\t\n\t  var parts = path.split(/\\/+/);\n\t  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t    part = parts[i];\n\t    if (part === '.') {\n\t      parts.splice(i, 1);\n\t    } else if (part === '..') {\n\t      up++;\n\t    } else if (up > 0) {\n\t      if (part === '') {\n\t        // The first part is blank if the path is absolute. Trying to go\n\t        // above the root is a no-op. Therefore we can remove all '..' parts\n\t        // directly after the root.\n\t        parts.splice(i + 1, up);\n\t        up = 0;\n\t      } else {\n\t        parts.splice(i, 2);\n\t        up--;\n\t      }\n\t    }\n\t  }\n\t  path = parts.join('/');\n\t\n\t  if (path === '') {\n\t    path = isAbsolute ? '/' : '.';\n\t  }\n\t\n\t  if (url) {\n\t    url.path = path;\n\t    return urlGenerate(url);\n\t  }\n\t  return path;\n\t}\n\texports.normalize = normalize;\n\t\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t *   first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t *   is updated with the result and aRoot is returned. Otherwise the result\n\t *   is returned.\n\t *   - If aPath is absolute, the result is aPath.\n\t *   - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t  if (aPath === \"\") {\n\t    aPath = \".\";\n\t  }\n\t  var aPathUrl = urlParse(aPath);\n\t  var aRootUrl = urlParse(aRoot);\n\t  if (aRootUrl) {\n\t    aRoot = aRootUrl.path || '/';\n\t  }\n\t\n\t  // `join(foo, '//www.example.org')`\n\t  if (aPathUrl && !aPathUrl.scheme) {\n\t    if (aRootUrl) {\n\t      aPathUrl.scheme = aRootUrl.scheme;\n\t    }\n\t    return urlGenerate(aPathUrl);\n\t  }\n\t\n\t  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t    return aPath;\n\t  }\n\t\n\t  // `join('http://', 'www.example.com')`\n\t  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t    aRootUrl.host = aPath;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t\n\t  var joined = aPath.charAt(0) === '/'\n\t    ? aPath\n\t    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\t\n\t  if (aRootUrl) {\n\t    aRootUrl.path = joined;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t  return joined;\n\t}\n\texports.join = join;\n\t\n\texports.isAbsolute = function (aPath) {\n\t  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\t\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t\n\t  aRoot = aRoot.replace(/\\/$/, '');\n\t\n\t  // It is possible for the path to be above the root. In this case, simply\n\t  // checking whether the root is a prefix of the path won't work. Instead, we\n\t  // need to remove components from the root one by one, until either we find\n\t  // a prefix that fits, or we run out of components to remove.\n\t  var level = 0;\n\t  while (aPath.indexOf(aRoot + '/') !== 0) {\n\t    var index = aRoot.lastIndexOf(\"/\");\n\t    if (index < 0) {\n\t      return aPath;\n\t    }\n\t\n\t    // If the only part of the root that is left is the scheme (i.e. http://,\n\t    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t    // have exhausted all components, so the path is not relative to the root.\n\t    aRoot = aRoot.slice(0, index);\n\t    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t      return aPath;\n\t    }\n\t\n\t    ++level;\n\t  }\n\t\n\t  // Make sure we add a \"../\" for each component we removed from the root.\n\t  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\t\n\tvar supportsNullProto = (function () {\n\t  var obj = Object.create(null);\n\t  return !('__proto__' in obj);\n\t}());\n\t\n\tfunction identity (s) {\n\t  return s;\n\t}\n\t\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return '$' + aStr;\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\t\n\tfunction fromSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return aStr.slice(1);\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\t\n\tfunction isProtoString(s) {\n\t  if (!s) {\n\t    return false;\n\t  }\n\t\n\t  var length = s.length;\n\t\n\t  if (length < 9 /* \"__proto__\".length */) {\n\t    return false;\n\t  }\n\t\n\t  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n\t    return false;\n\t  }\n\t\n\t  for (var i = length - 10; i >= 0; i--) {\n\t    if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t      return false;\n\t    }\n\t  }\n\t\n\t  return true;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t  var cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0 || onlyCompareOriginal) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\t\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0 || onlyCompareGenerated) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\t\n\tfunction strcmp(aStr1, aStr2) {\n\t  if (aStr1 === aStr2) {\n\t    return 0;\n\t  }\n\t\n\t  if (aStr1 > aStr2) {\n\t    return 1;\n\t  }\n\t\n\t  return -1;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar hasNativeMap = typeof Map !== \"undefined\";\n\t\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t  this._array = [];\n\t  this._set = hasNativeMap ? new Map() : Object.create(null);\n\t}\n\t\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t  var set = new ArraySet();\n\t  for (var i = 0, len = aArray.length; i < len; i++) {\n\t    set.add(aArray[i], aAllowDuplicates);\n\t  }\n\t  return set;\n\t};\n\t\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n\t};\n\t\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n\t  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n\t  var idx = this._array.length;\n\t  if (!isDuplicate || aAllowDuplicates) {\n\t    this._array.push(aStr);\n\t  }\n\t  if (!isDuplicate) {\n\t    if (hasNativeMap) {\n\t      this._set.set(aStr, idx);\n\t    } else {\n\t      this._set[sStr] = idx;\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t  if (hasNativeMap) {\n\t    return this._set.has(aStr);\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    return has.call(this._set, sStr);\n\t  }\n\t};\n\t\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t  if (hasNativeMap) {\n\t    var idx = this._set.get(aStr);\n\t    if (idx >= 0) {\n\t        return idx;\n\t    }\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    if (has.call(this._set, sStr)) {\n\t      return this._set[sStr];\n\t    }\n\t  }\n\t\n\t  throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\t\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t  if (aIdx >= 0 && aIdx < this._array.length) {\n\t    return this._array[aIdx];\n\t  }\n\t  throw new Error('No element indexed by ' + aIdx);\n\t};\n\t\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t  return this._array.slice();\n\t};\n\t\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2014 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\t\n\t/**\n\t * Determine whether mappingB is after mappingA with respect to generated\n\t * position.\n\t */\n\tfunction generatedPositionAfter(mappingA, mappingB) {\n\t  // Optimized for most common case\n\t  var lineA = mappingA.generatedLine;\n\t  var lineB = mappingB.generatedLine;\n\t  var columnA = mappingA.generatedColumn;\n\t  var columnB = mappingB.generatedColumn;\n\t  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n\t         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n\t}\n\t\n\t/**\n\t * A data structure to provide a sorted view of accumulated mappings in a\n\t * performance conscious manner. It trades a neglibable overhead in general\n\t * case for a large speedup in case of mappings being added in order.\n\t */\n\tfunction MappingList() {\n\t  this._array = [];\n\t  this._sorted = true;\n\t  // Serves as infimum\n\t  this._last = {generatedLine: -1, generatedColumn: 0};\n\t}\n\t\n\t/**\n\t * Iterate through internal items. This method takes the same arguments that\n\t * `Array.prototype.forEach` takes.\n\t *\n\t * NOTE: The order of the mappings is NOT guaranteed.\n\t */\n\tMappingList.prototype.unsortedForEach =\n\t  function MappingList_forEach(aCallback, aThisArg) {\n\t    this._array.forEach(aCallback, aThisArg);\n\t  };\n\t\n\t/**\n\t * Add the given source mapping.\n\t *\n\t * @param Object aMapping\n\t */\n\tMappingList.prototype.add = function MappingList_add(aMapping) {\n\t  if (generatedPositionAfter(this._last, aMapping)) {\n\t    this._last = aMapping;\n\t    this._array.push(aMapping);\n\t  } else {\n\t    this._sorted = false;\n\t    this._array.push(aMapping);\n\t  }\n\t};\n\t\n\t/**\n\t * Returns the flat, sorted array of mappings. The mappings are sorted by\n\t * generated position.\n\t *\n\t * WARNING: This method returns internal data without copying, for\n\t * performance. The return value must NOT be mutated, and should be treated as\n\t * an immutable borrow. If you want to take ownership, you must make your own\n\t * copy.\n\t */\n\tMappingList.prototype.toArray = function MappingList_toArray() {\n\t  if (!this._sorted) {\n\t    this._array.sort(util.compareByGeneratedPositionsInflated);\n\t    this._sorted = true;\n\t  }\n\t  return this._array;\n\t};\n\t\n\texports.MappingList = MappingList;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar binarySearch = __webpack_require__(8);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar base64VLQ = __webpack_require__(2);\n\tvar quickSort = __webpack_require__(9).quickSort;\n\t\n\tfunction SourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  return sourceMap.sections != null\n\t    ? new IndexedSourceMapConsumer(sourceMap)\n\t    : new BasicSourceMapConsumer(sourceMap);\n\t}\n\t\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\t\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t//     {\n\t//       generatedLine: The line number in the generated code,\n\t//       generatedColumn: The column number in the generated code,\n\t//       source: The path to the original source file that generated this\n\t//               chunk of code,\n\t//       originalLine: The line number in the original source that\n\t//                     corresponds to this chunk of generated code,\n\t//       originalColumn: The column number in the original source that\n\t//                       corresponds to this chunk of generated code,\n\t//       name: The name of the original symbol which generated this chunk of\n\t//             code.\n\t//     }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\t\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t  get: function () {\n\t    if (!this.__generatedMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__generatedMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t  get: function () {\n\t    if (!this.__originalMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__originalMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t    var c = aStr.charAt(index);\n\t    return c === \";\" || c === \",\";\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    throw new Error(\"Subclasses must implement _parseMappings\");\n\t  };\n\t\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\t\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t *        The function that is called with each mapping.\n\t * @param Object aContext\n\t *        Optional. If specified, this object will be the value of `this` every\n\t *        time that `aCallback` is called.\n\t * @param aOrder\n\t *        Either `SourceMapConsumer.GENERATED_ORDER` or\n\t *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t *        iterate over the mappings sorted by the generated file's line/column\n\t *        order or the original's source/line/column order, respectively. Defaults to\n\t *        `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t    var context = aContext || null;\n\t    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\t\n\t    var mappings;\n\t    switch (order) {\n\t    case SourceMapConsumer.GENERATED_ORDER:\n\t      mappings = this._generatedMappings;\n\t      break;\n\t    case SourceMapConsumer.ORIGINAL_ORDER:\n\t      mappings = this._originalMappings;\n\t      break;\n\t    default:\n\t      throw new Error(\"Unknown order of iteration.\");\n\t    }\n\t\n\t    var sourceRoot = this.sourceRoot;\n\t    mappings.map(function (mapping) {\n\t      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t      if (source != null && sourceRoot != null) {\n\t        source = util.join(sourceRoot, source);\n\t      }\n\t      return {\n\t        source: source,\n\t        generatedLine: mapping.generatedLine,\n\t        generatedColumn: mapping.generatedColumn,\n\t        originalLine: mapping.originalLine,\n\t        originalColumn: mapping.originalColumn,\n\t        name: mapping.name === null ? null : this._names.at(mapping.name)\n\t      };\n\t    }, this).forEach(aCallback, context);\n\t  };\n\t\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t    var line = util.getArg(aArgs, 'line');\n\t\n\t    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t    // returns the index of the closest mapping less than the needle. By\n\t    // setting needle.originalColumn to 0, we thus find the last mapping for\n\t    // the given line, provided such a mapping exists.\n\t    var needle = {\n\t      source: util.getArg(aArgs, 'source'),\n\t      originalLine: line,\n\t      originalColumn: util.getArg(aArgs, 'column', 0)\n\t    };\n\t\n\t    if (this.sourceRoot != null) {\n\t      needle.source = util.relative(this.sourceRoot, needle.source);\n\t    }\n\t    if (!this._sources.has(needle.source)) {\n\t      return [];\n\t    }\n\t    needle.source = this._sources.indexOf(needle.source);\n\t\n\t    var mappings = [];\n\t\n\t    var index = this._findMapping(needle,\n\t                                  this._originalMappings,\n\t                                  \"originalLine\",\n\t                                  \"originalColumn\",\n\t                                  util.compareByOriginalPositions,\n\t                                  binarySearch.LEAST_UPPER_BOUND);\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (aArgs.column === undefined) {\n\t        var originalLine = mapping.originalLine;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we found. Since\n\t        // mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we found.\n\t        while (mapping && mapping.originalLine === originalLine) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      } else {\n\t        var originalColumn = mapping.originalColumn;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we were searching for.\n\t        // Since mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we are searching for.\n\t        while (mapping &&\n\t               mapping.originalLine === line &&\n\t               mapping.originalColumn == originalColumn) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      }\n\t    }\n\t\n\t    return mappings;\n\t  };\n\t\n\texports.SourceMapConsumer = SourceMapConsumer;\n\t\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - sources: An array of URLs to the original source files.\n\t *   - names: An array of identifiers which can be referrenced by individual mappings.\n\t *   - sourceRoot: Optional. The URL root from which all sources are relative.\n\t *   - sourcesContent: Optional. An array of contents of the original source files.\n\t *   - mappings: A string of base64 VLQs which contain the actual mappings.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t *     {\n\t *       version : 3,\n\t *       file: \"out.js\",\n\t *       sourceRoot : \"\",\n\t *       sources: [\"foo.js\", \"bar.js\"],\n\t *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *       mappings: \"AA,AB;;ABCDE;\"\n\t *     }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sources = util.getArg(sourceMap, 'sources');\n\t  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t  // requires the array) to play nice here.\n\t  var names = util.getArg(sourceMap, 'names', []);\n\t  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t  var mappings = util.getArg(sourceMap, 'mappings');\n\t  var file = util.getArg(sourceMap, 'file', null);\n\t\n\t  // Once again, Sass deviates from the spec and supplies the version as a\n\t  // string rather than a number, so we use loose equality checking here.\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  sources = sources\n\t    .map(String)\n\t    // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n\t    // See bugzil.la/1090768.\n\t    .map(util.normalize)\n\t    // Always ensure that absolute sources are internally stored relative to\n\t    // the source root, if the source root is absolute. Not doing this would\n\t    // be particularly problematic when the source root is a prefix of the\n\t    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t    .map(function (source) {\n\t      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t        ? util.relative(sourceRoot, source)\n\t        : source;\n\t    });\n\t\n\t  // Pass `true` below to allow duplicate names and sources. While source maps\n\t  // are intended to be compressed and deduplicated, the TypeScript compiler\n\t  // sometimes generates source maps with duplicates in them. See Github issue\n\t  // #72 and bugzil.la/889492.\n\t  this._names = ArraySet.fromArray(names.map(String), true);\n\t  this._sources = ArraySet.fromArray(sources, true);\n\t\n\t  this.sourceRoot = sourceRoot;\n\t  this.sourcesContent = sourcesContent;\n\t  this._mappings = mappings;\n\t  this.file = file;\n\t}\n\t\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\t\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t *        The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\t\n\t    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t    smc.sourceRoot = aSourceMap._sourceRoot;\n\t    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t                                                            smc.sourceRoot);\n\t    smc.file = aSourceMap._file;\n\t\n\t    // Because we are modifying the entries (by converting string sources and\n\t    // names to indices into the sources and names ArraySets), we have to make\n\t    // a copy of the entry or else bad things happen. Shared mutable state\n\t    // strikes again! See github issue #191.\n\t\n\t    var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t    var destGeneratedMappings = smc.__generatedMappings = [];\n\t    var destOriginalMappings = smc.__originalMappings = [];\n\t\n\t    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t      var srcMapping = generatedMappings[i];\n\t      var destMapping = new Mapping;\n\t      destMapping.generatedLine = srcMapping.generatedLine;\n\t      destMapping.generatedColumn = srcMapping.generatedColumn;\n\t\n\t      if (srcMapping.source) {\n\t        destMapping.source = sources.indexOf(srcMapping.source);\n\t        destMapping.originalLine = srcMapping.originalLine;\n\t        destMapping.originalColumn = srcMapping.originalColumn;\n\t\n\t        if (srcMapping.name) {\n\t          destMapping.name = names.indexOf(srcMapping.name);\n\t        }\n\t\n\t        destOriginalMappings.push(destMapping);\n\t      }\n\t\n\t      destGeneratedMappings.push(destMapping);\n\t    }\n\t\n\t    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\t\n\t    return smc;\n\t  };\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    return this._sources.toArray().map(function (s) {\n\t      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t    }, this);\n\t  }\n\t});\n\t\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t  this.generatedLine = 0;\n\t  this.generatedColumn = 0;\n\t  this.source = null;\n\t  this.originalLine = null;\n\t  this.originalColumn = null;\n\t  this.name = null;\n\t}\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    var generatedLine = 1;\n\t    var previousGeneratedColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousOriginalColumn = 0;\n\t    var previousSource = 0;\n\t    var previousName = 0;\n\t    var length = aStr.length;\n\t    var index = 0;\n\t    var cachedSegments = {};\n\t    var temp = {};\n\t    var originalMappings = [];\n\t    var generatedMappings = [];\n\t    var mapping, str, segment, end, value;\n\t\n\t    while (index < length) {\n\t      if (aStr.charAt(index) === ';') {\n\t        generatedLine++;\n\t        index++;\n\t        previousGeneratedColumn = 0;\n\t      }\n\t      else if (aStr.charAt(index) === ',') {\n\t        index++;\n\t      }\n\t      else {\n\t        mapping = new Mapping();\n\t        mapping.generatedLine = generatedLine;\n\t\n\t        // Because each offset is encoded relative to the previous one,\n\t        // many segments often have the same encoding. We can exploit this\n\t        // fact by caching the parsed variable length fields of each segment,\n\t        // allowing us to avoid a second parse if we encounter the same\n\t        // segment again.\n\t        for (end = index; end < length; end++) {\n\t          if (this._charIsMappingSeparator(aStr, end)) {\n\t            break;\n\t          }\n\t        }\n\t        str = aStr.slice(index, end);\n\t\n\t        segment = cachedSegments[str];\n\t        if (segment) {\n\t          index += str.length;\n\t        } else {\n\t          segment = [];\n\t          while (index < end) {\n\t            base64VLQ.decode(aStr, index, temp);\n\t            value = temp.value;\n\t            index = temp.rest;\n\t            segment.push(value);\n\t          }\n\t\n\t          if (segment.length === 2) {\n\t            throw new Error('Found a source, but no line and column');\n\t          }\n\t\n\t          if (segment.length === 3) {\n\t            throw new Error('Found a source and line, but no column');\n\t          }\n\t\n\t          cachedSegments[str] = segment;\n\t        }\n\t\n\t        // Generated column.\n\t        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t        previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t        if (segment.length > 1) {\n\t          // Original source.\n\t          mapping.source = previousSource + segment[1];\n\t          previousSource += segment[1];\n\t\n\t          // Original line.\n\t          mapping.originalLine = previousOriginalLine + segment[2];\n\t          previousOriginalLine = mapping.originalLine;\n\t          // Lines are stored 0-based\n\t          mapping.originalLine += 1;\n\t\n\t          // Original column.\n\t          mapping.originalColumn = previousOriginalColumn + segment[3];\n\t          previousOriginalColumn = mapping.originalColumn;\n\t\n\t          if (segment.length > 4) {\n\t            // Original name.\n\t            mapping.name = previousName + segment[4];\n\t            previousName += segment[4];\n\t          }\n\t        }\n\t\n\t        generatedMappings.push(mapping);\n\t        if (typeof mapping.originalLine === 'number') {\n\t          originalMappings.push(mapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    this.__generatedMappings = generatedMappings;\n\t\n\t    quickSort(originalMappings, util.compareByOriginalPositions);\n\t    this.__originalMappings = originalMappings;\n\t  };\n\t\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t                                         aColumnName, aComparator, aBias) {\n\t    // To return the position we are searching for, we must first find the\n\t    // mapping for the given position and then return the opposite position it\n\t    // points to. Because the mappings are sorted, we can use binary search to\n\t    // find the best mapping.\n\t\n\t    if (aNeedle[aLineName] <= 0) {\n\t      throw new TypeError('Line must be greater than or equal to 1, got '\n\t                          + aNeedle[aLineName]);\n\t    }\n\t    if (aNeedle[aColumnName] < 0) {\n\t      throw new TypeError('Column must be greater than or equal to 0, got '\n\t                          + aNeedle[aColumnName]);\n\t    }\n\t\n\t    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t  };\n\t\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t  function SourceMapConsumer_computeColumnSpans() {\n\t    for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      // Mappings do not contain a field for the last generated columnt. We\n\t      // can come up with an optimistic estimate, however, by assuming that\n\t      // mappings are contiguous (i.e. given two consecutive mappings, the\n\t      // first mapping ends where the second one starts).\n\t      if (index + 1 < this._generatedMappings.length) {\n\t        var nextMapping = this._generatedMappings[index + 1];\n\t\n\t        if (mapping.generatedLine === nextMapping.generatedLine) {\n\t          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t          continue;\n\t        }\n\t      }\n\t\n\t      // The last mapping for each line spans the entire line.\n\t      mapping.lastGeneratedColumn = Infinity;\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t  function SourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._generatedMappings,\n\t      \"generatedLine\",\n\t      \"generatedColumn\",\n\t      util.compareByGeneratedPositionsDeflated,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      if (mapping.generatedLine === needle.generatedLine) {\n\t        var source = util.getArg(mapping, 'source', null);\n\t        if (source !== null) {\n\t          source = this._sources.at(source);\n\t          if (this.sourceRoot != null) {\n\t            source = util.join(this.sourceRoot, source);\n\t          }\n\t        }\n\t        var name = util.getArg(mapping, 'name', null);\n\t        if (name !== null) {\n\t          name = this._names.at(name);\n\t        }\n\t        return {\n\t          source: source,\n\t          line: util.getArg(mapping, 'originalLine', null),\n\t          column: util.getArg(mapping, 'originalColumn', null),\n\t          name: name\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      source: null,\n\t      line: null,\n\t      column: null,\n\t      name: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t    if (!this.sourcesContent) {\n\t      return false;\n\t    }\n\t    return this.sourcesContent.length >= this._sources.size() &&\n\t      !this.sourcesContent.some(function (sc) { return sc == null; });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    if (!this.sourcesContent) {\n\t      return null;\n\t    }\n\t\n\t    if (this.sourceRoot != null) {\n\t      aSource = util.relative(this.sourceRoot, aSource);\n\t    }\n\t\n\t    if (this._sources.has(aSource)) {\n\t      return this.sourcesContent[this._sources.indexOf(aSource)];\n\t    }\n\t\n\t    var url;\n\t    if (this.sourceRoot != null\n\t        && (url = util.urlParse(this.sourceRoot))) {\n\t      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t      // many users. We can help them out when they expect file:// URIs to\n\t      // behave like it would if they were running a local HTTP server. See\n\t      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t      if (url.scheme == \"file\"\n\t          && this._sources.has(fileUriAbsPath)) {\n\t        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t      }\n\t\n\t      if ((!url.path || url.path == \"/\")\n\t          && this._sources.has(\"/\" + aSource)) {\n\t        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t      }\n\t    }\n\t\n\t    // This function is used recursively from\n\t    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t    // don't want to throw if we can't find the source - we just want to\n\t    // return null, so we provide a flag to exit gracefully.\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t  function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t    var source = util.getArg(aArgs, 'source');\n\t    if (this.sourceRoot != null) {\n\t      source = util.relative(this.sourceRoot, source);\n\t    }\n\t    if (!this._sources.has(source)) {\n\t      return {\n\t        line: null,\n\t        column: null,\n\t        lastColumn: null\n\t      };\n\t    }\n\t    source = this._sources.indexOf(source);\n\t\n\t    var needle = {\n\t      source: source,\n\t      originalLine: util.getArg(aArgs, 'line'),\n\t      originalColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._originalMappings,\n\t      \"originalLine\",\n\t      \"originalColumn\",\n\t      util.compareByOriginalPositions,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (mapping.source === needle.source) {\n\t        return {\n\t          line: util.getArg(mapping, 'generatedLine', null),\n\t          column: util.getArg(mapping, 'generatedColumn', null),\n\t          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null,\n\t      lastColumn: null\n\t    };\n\t  };\n\t\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\t\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *   - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t *   - offset: The offset into the original specified at which this section\n\t *       begins to apply, defined as an object with a \"line\" and \"column\"\n\t *       field.\n\t *   - map: A source map definition. This source map could also be indexed,\n\t *       but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t *  {\n\t *    version : 3,\n\t *    file: \"app.js\",\n\t *    sections: [{\n\t *      offset: {line:100, column:10},\n\t *      map: {\n\t *        version : 3,\n\t *        file: \"section.js\",\n\t *        sources: [\"foo.js\", \"bar.js\"],\n\t *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *        mappings: \"AAAA,E;;ABCDE;\"\n\t *      }\n\t *    }],\n\t *  }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sections = util.getArg(sourceMap, 'sections');\n\t\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t\n\t  var lastOffset = {\n\t    line: -1,\n\t    column: 0\n\t  };\n\t  this._sections = sections.map(function (s) {\n\t    if (s.url) {\n\t      // The url field will require support for asynchronicity.\n\t      // See https://github.com/mozilla/source-map/issues/16\n\t      throw new Error('Support for url field in sections not implemented.');\n\t    }\n\t    var offset = util.getArg(s, 'offset');\n\t    var offsetLine = util.getArg(offset, 'line');\n\t    var offsetColumn = util.getArg(offset, 'column');\n\t\n\t    if (offsetLine < lastOffset.line ||\n\t        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t      throw new Error('Section offsets must be ordered and non-overlapping.');\n\t    }\n\t    lastOffset = offset;\n\t\n\t    return {\n\t      generatedOffset: {\n\t        // The offset fields are 0-based, but we use 1-based indices when\n\t        // encoding/decoding from VLQ.\n\t        generatedLine: offsetLine + 1,\n\t        generatedColumn: offsetColumn + 1\n\t      },\n\t      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t    }\n\t  });\n\t}\n\t\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    var sources = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t        sources.push(this._sections[i].consumer.sources[j]);\n\t      }\n\t    }\n\t    return sources;\n\t  }\n\t});\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    // Find the section containing the generated position we're trying to map\n\t    // to an original position.\n\t    var sectionIndex = binarySearch.search(needle, this._sections,\n\t      function(needle, section) {\n\t        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t        if (cmp) {\n\t          return cmp;\n\t        }\n\t\n\t        return (needle.generatedColumn -\n\t                section.generatedOffset.generatedColumn);\n\t      });\n\t    var section = this._sections[sectionIndex];\n\t\n\t    if (!section) {\n\t      return {\n\t        source: null,\n\t        line: null,\n\t        column: null,\n\t        name: null\n\t      };\n\t    }\n\t\n\t    return section.consumer.originalPositionFor({\n\t      line: needle.generatedLine -\n\t        (section.generatedOffset.generatedLine - 1),\n\t      column: needle.generatedColumn -\n\t        (section.generatedOffset.generatedLine === needle.generatedLine\n\t         ? section.generatedOffset.generatedColumn - 1\n\t         : 0),\n\t      bias: aArgs.bias\n\t    });\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t    return this._sections.every(function (s) {\n\t      return s.consumer.hasContentsOfAllSources();\n\t    });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      var content = section.consumer.sourceContentFor(aSource, true);\n\t      if (content) {\n\t        return content;\n\t      }\n\t    }\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      // Only consider this section if the requested source is in the list of\n\t      // sources of the consumer.\n\t      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t        continue;\n\t      }\n\t      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t      if (generatedPosition) {\n\t        var ret = {\n\t          line: generatedPosition.line +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          column: generatedPosition.column +\n\t            (section.generatedOffset.generatedLine === generatedPosition.line\n\t             ? section.generatedOffset.generatedColumn - 1\n\t             : 0)\n\t        };\n\t        return ret;\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    this.__generatedMappings = [];\n\t    this.__originalMappings = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t      var sectionMappings = section.consumer._generatedMappings;\n\t      for (var j = 0; j < sectionMappings.length; j++) {\n\t        var mapping = sectionMappings[j];\n\t\n\t        var source = section.consumer._sources.at(mapping.source);\n\t        if (section.consumer.sourceRoot !== null) {\n\t          source = util.join(section.consumer.sourceRoot, source);\n\t        }\n\t        this._sources.add(source);\n\t        source = this._sources.indexOf(source);\n\t\n\t        var name = section.consumer._names.at(mapping.name);\n\t        this._names.add(name);\n\t        name = this._names.indexOf(name);\n\t\n\t        // The mappings coming from the consumer for the section have\n\t        // generated positions relative to the start of the section, so we\n\t        // need to offset them to be relative to the start of the concatenated\n\t        // generated file.\n\t        var adjustedMapping = {\n\t          source: source,\n\t          generatedLine: mapping.generatedLine +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          generatedColumn: mapping.generatedColumn +\n\t            (section.generatedOffset.generatedLine === mapping.generatedLine\n\t            ? section.generatedOffset.generatedColumn - 1\n\t            : 0),\n\t          originalLine: mapping.originalLine,\n\t          originalColumn: mapping.originalColumn,\n\t          name: name\n\t        };\n\t\n\t        this.__generatedMappings.push(adjustedMapping);\n\t        if (typeof adjustedMapping.originalLine === 'number') {\n\t          this.__originalMappings.push(adjustedMapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t  };\n\t\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t  // This function terminates when one of the following is true:\n\t  //\n\t  //   1. We find the exact element we are looking for.\n\t  //\n\t  //   2. We did not find the exact element, but we can return the index of\n\t  //      the next-closest element.\n\t  //\n\t  //   3. We did not find the exact element, and there is no next-closest\n\t  //      element than the one we are searching for, so we return -1.\n\t  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t  if (cmp === 0) {\n\t    // Found the element we are looking for.\n\t    return mid;\n\t  }\n\t  else if (cmp > 0) {\n\t    // Our needle is greater than aHaystack[mid].\n\t    if (aHigh - mid > 1) {\n\t      // The element is in the upper half.\n\t      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // The exact needle element was not found in this haystack. Determine if\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return aHigh < aHaystack.length ? aHigh : -1;\n\t    } else {\n\t      return mid;\n\t    }\n\t  }\n\t  else {\n\t    // Our needle is less than aHaystack[mid].\n\t    if (mid - aLow > 1) {\n\t      // The element is in the lower half.\n\t      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return mid;\n\t    } else {\n\t      return aLow < 0 ? -1 : aLow;\n\t    }\n\t  }\n\t}\n\t\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t *     array and returns -1, 0, or 1 depending on whether the needle is less\n\t *     than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t  if (aHaystack.length === 0) {\n\t    return -1;\n\t  }\n\t\n\t  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t  if (index < 0) {\n\t    return -1;\n\t  }\n\t\n\t  // We have found either the exact element, or the next-closest element than\n\t  // the one we are searching for. However, there may be more than one such\n\t  // element. Make sure we always return the smallest of these.\n\t  while (index - 1 >= 0) {\n\t    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t      break;\n\t    }\n\t    --index;\n\t  }\n\t\n\t  return index;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\t\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t *        The array.\n\t * @param {Number} x\n\t *        The index of the first item.\n\t * @param {Number} y\n\t *        The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t  var temp = ary[x];\n\t  ary[x] = ary[y];\n\t  ary[y] = temp;\n\t}\n\t\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t *        The lower bound on the range.\n\t * @param {Number} high\n\t *        The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t  return Math.round(low + (Math.random() * (high - low)));\n\t}\n\t\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t * @param {Number} p\n\t *        Start index of the array\n\t * @param {Number} r\n\t *        End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t  // If our lower bound is less than our upper bound, we (1) partition the\n\t  // array into two pieces and (2) recurse on each half. If it is not, this is\n\t  // the empty array and our base case.\n\t\n\t  if (p < r) {\n\t    // (1) Partitioning.\n\t    //\n\t    // The partitioning chooses a pivot between `p` and `r` and moves all\n\t    // elements that are less than or equal to the pivot to the before it, and\n\t    // all the elements that are greater than it after it. The effect is that\n\t    // once partition is done, the pivot is in the exact place it will be when\n\t    // the array is put in sorted order, and it will not need to be moved\n\t    // again. This runs in O(n) time.\n\t\n\t    // Always choose a random pivot so that an input array which is reverse\n\t    // sorted does not cause O(n^2) running time.\n\t    var pivotIndex = randomIntInRange(p, r);\n\t    var i = p - 1;\n\t\n\t    swap(ary, pivotIndex, r);\n\t    var pivot = ary[r];\n\t\n\t    // Immediately after `j` is incremented in this loop, the following hold\n\t    // true:\n\t    //\n\t    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t    //\n\t    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t    for (var j = p; j < r; j++) {\n\t      if (comparator(ary[j], pivot) <= 0) {\n\t        i += 1;\n\t        swap(ary, i, j);\n\t      }\n\t    }\n\t\n\t    swap(ary, i + 1, j);\n\t    var q = i + 1;\n\t\n\t    // (2) Recurse on each half.\n\t\n\t    doQuickSort(ary, comparator, p, q - 1);\n\t    doQuickSort(ary, comparator, q + 1, r);\n\t  }\n\t}\n\t\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t  doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\tvar util = __webpack_require__(4);\n\t\n\t// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n\t// operating systems these days (capturing the result).\n\tvar REGEX_NEWLINE = /(\\r?\\n)/;\n\t\n\t// Newline character code for charCodeAt() comparisons\n\tvar NEWLINE_CODE = 10;\n\t\n\t// Private symbol for identifying `SourceNode`s when multiple versions of\n\t// the source-map library are loaded. This MUST NOT CHANGE across\n\t// versions!\n\tvar isSourceNode = \"$$$isSourceNode$$$\";\n\t\n\t/**\n\t * SourceNodes provide a way to abstract over interpolating/concatenating\n\t * snippets of generated JavaScript source code while maintaining the line and\n\t * column information associated with the original source code.\n\t *\n\t * @param aLine The original line number.\n\t * @param aColumn The original column number.\n\t * @param aSource The original source's filename.\n\t * @param aChunks Optional. An array of strings which are snippets of\n\t *        generated JS, or other SourceNodes.\n\t * @param aName The original identifier.\n\t */\n\tfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n\t  this.children = [];\n\t  this.sourceContents = {};\n\t  this.line = aLine == null ? null : aLine;\n\t  this.column = aColumn == null ? null : aColumn;\n\t  this.source = aSource == null ? null : aSource;\n\t  this.name = aName == null ? null : aName;\n\t  this[isSourceNode] = true;\n\t  if (aChunks != null) this.add(aChunks);\n\t}\n\t\n\t/**\n\t * Creates a SourceNode from generated code and a SourceMapConsumer.\n\t *\n\t * @param aGeneratedCode The generated code\n\t * @param aSourceMapConsumer The SourceMap for the generated code\n\t * @param aRelativePath Optional. The path that relative sources in the\n\t *        SourceMapConsumer should be relative to.\n\t */\n\tSourceNode.fromStringWithSourceMap =\n\t  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n\t    // The SourceNode we want to fill with the generated code\n\t    // and the SourceMap\n\t    var node = new SourceNode();\n\t\n\t    // All even indices of this array are one line of the generated code,\n\t    // while all odd indices are the newlines between two adjacent lines\n\t    // (since `REGEX_NEWLINE` captures its match).\n\t    // Processed fragments are accessed by calling `shiftNextLine`.\n\t    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n\t    var remainingLinesIndex = 0;\n\t    var shiftNextLine = function() {\n\t      var lineContents = getNextLine();\n\t      // The last line of a file might not have a newline.\n\t      var newLine = getNextLine() || \"\";\n\t      return lineContents + newLine;\n\t\n\t      function getNextLine() {\n\t        return remainingLinesIndex < remainingLines.length ?\n\t            remainingLines[remainingLinesIndex++] : undefined;\n\t      }\n\t    };\n\t\n\t    // We need to remember the position of \"remainingLines\"\n\t    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\t\n\t    // The generate SourceNodes we need a code range.\n\t    // To extract it current and last mapping is used.\n\t    // Here we store the last mapping.\n\t    var lastMapping = null;\n\t\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      if (lastMapping !== null) {\n\t        // We add the code from \"lastMapping\" to \"mapping\":\n\t        // First check if there is a new line in between.\n\t        if (lastGeneratedLine < mapping.generatedLine) {\n\t          // Associate first line with \"lastMapping\"\n\t          addMappingWithCode(lastMapping, shiftNextLine());\n\t          lastGeneratedLine++;\n\t          lastGeneratedColumn = 0;\n\t          // The remaining code is added without mapping\n\t        } else {\n\t          // There is no new line in between.\n\t          // Associate the code between \"lastGeneratedColumn\" and\n\t          // \"mapping.generatedColumn\" with \"lastMapping\"\n\t          var nextLine = remainingLines[remainingLinesIndex];\n\t          var code = nextLine.substr(0, mapping.generatedColumn -\n\t                                        lastGeneratedColumn);\n\t          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n\t                                              lastGeneratedColumn);\n\t          lastGeneratedColumn = mapping.generatedColumn;\n\t          addMappingWithCode(lastMapping, code);\n\t          // No more remaining code, continue\n\t          lastMapping = mapping;\n\t          return;\n\t        }\n\t      }\n\t      // We add the generated code until the first mapping\n\t      // to the SourceNode without any mapping.\n\t      // Each line is added as separate string.\n\t      while (lastGeneratedLine < mapping.generatedLine) {\n\t        node.add(shiftNextLine());\n\t        lastGeneratedLine++;\n\t      }\n\t      if (lastGeneratedColumn < mapping.generatedColumn) {\n\t        var nextLine = remainingLines[remainingLinesIndex];\n\t        node.add(nextLine.substr(0, mapping.generatedColumn));\n\t        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n\t        lastGeneratedColumn = mapping.generatedColumn;\n\t      }\n\t      lastMapping = mapping;\n\t    }, this);\n\t    // We have processed all mappings.\n\t    if (remainingLinesIndex < remainingLines.length) {\n\t      if (lastMapping) {\n\t        // Associate the remaining code in the current line with \"lastMapping\"\n\t        addMappingWithCode(lastMapping, shiftNextLine());\n\t      }\n\t      // and add the remaining lines without any mapping\n\t      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n\t    }\n\t\n\t    // Copy sourcesContent into SourceNode\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aRelativePath != null) {\n\t          sourceFile = util.join(aRelativePath, sourceFile);\n\t        }\n\t        node.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t\n\t    return node;\n\t\n\t    function addMappingWithCode(mapping, code) {\n\t      if (mapping === null || mapping.source === undefined) {\n\t        node.add(code);\n\t      } else {\n\t        var source = aRelativePath\n\t          ? util.join(aRelativePath, mapping.source)\n\t          : mapping.source;\n\t        node.add(new SourceNode(mapping.originalLine,\n\t                                mapping.originalColumn,\n\t                                source,\n\t                                code,\n\t                                mapping.name));\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Add a chunk of generated JS to this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.add = function SourceNode_add(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    aChunk.forEach(function (chunk) {\n\t      this.add(chunk);\n\t    }, this);\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    if (aChunk) {\n\t      this.children.push(aChunk);\n\t    }\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Add a chunk of generated JS to the beginning of this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    for (var i = aChunk.length-1; i >= 0; i--) {\n\t      this.prepend(aChunk[i]);\n\t    }\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    this.children.unshift(aChunk);\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Walk over the tree of JS snippets in this node and its children. The\n\t * walking function is called once for each snippet of JS and is passed that\n\t * snippet and the its original associated source's line/column location.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n\t  var chunk;\n\t  for (var i = 0, len = this.children.length; i < len; i++) {\n\t    chunk = this.children[i];\n\t    if (chunk[isSourceNode]) {\n\t      chunk.walk(aFn);\n\t    }\n\t    else {\n\t      if (chunk !== '') {\n\t        aFn(chunk, { source: this.source,\n\t                     line: this.line,\n\t                     column: this.column,\n\t                     name: this.name });\n\t      }\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n\t * each of `this.children`.\n\t *\n\t * @param aSep The separator.\n\t */\n\tSourceNode.prototype.join = function SourceNode_join(aSep) {\n\t  var newChildren;\n\t  var i;\n\t  var len = this.children.length;\n\t  if (len > 0) {\n\t    newChildren = [];\n\t    for (i = 0; i < len-1; i++) {\n\t      newChildren.push(this.children[i]);\n\t      newChildren.push(aSep);\n\t    }\n\t    newChildren.push(this.children[i]);\n\t    this.children = newChildren;\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Call String.prototype.replace on the very right-most source snippet. Useful\n\t * for trimming whitespace from the end of a source node, etc.\n\t *\n\t * @param aPattern The pattern to replace.\n\t * @param aReplacement The thing to replace the pattern with.\n\t */\n\tSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n\t  var lastChild = this.children[this.children.length - 1];\n\t  if (lastChild[isSourceNode]) {\n\t    lastChild.replaceRight(aPattern, aReplacement);\n\t  }\n\t  else if (typeof lastChild === 'string') {\n\t    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n\t  }\n\t  else {\n\t    this.children.push(''.replace(aPattern, aReplacement));\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Set the source content for a source file. This will be added to the SourceMapGenerator\n\t * in the sourcesContent field.\n\t *\n\t * @param aSourceFile The filename of the source file\n\t * @param aSourceContent The content of the source file\n\t */\n\tSourceNode.prototype.setSourceContent =\n\t  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n\t    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n\t  };\n\t\n\t/**\n\t * Walk over the tree of SourceNodes. The walking function is called for each\n\t * source file content and is passed the filename and source content.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walkSourceContents =\n\t  function SourceNode_walkSourceContents(aFn) {\n\t    for (var i = 0, len = this.children.length; i < len; i++) {\n\t      if (this.children[i][isSourceNode]) {\n\t        this.children[i].walkSourceContents(aFn);\n\t      }\n\t    }\n\t\n\t    var sources = Object.keys(this.sourceContents);\n\t    for (var i = 0, len = sources.length; i < len; i++) {\n\t      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n\t    }\n\t  };\n\t\n\t/**\n\t * Return the string representation of this source node. Walks over the tree\n\t * and concatenates all the various snippets together to one string.\n\t */\n\tSourceNode.prototype.toString = function SourceNode_toString() {\n\t  var str = \"\";\n\t  this.walk(function (chunk) {\n\t    str += chunk;\n\t  });\n\t  return str;\n\t};\n\t\n\t/**\n\t * Returns the string representation of this source node along with a source\n\t * map.\n\t */\n\tSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n\t  var generated = {\n\t    code: \"\",\n\t    line: 1,\n\t    column: 0\n\t  };\n\t  var map = new SourceMapGenerator(aArgs);\n\t  var sourceMappingActive = false;\n\t  var lastOriginalSource = null;\n\t  var lastOriginalLine = null;\n\t  var lastOriginalColumn = null;\n\t  var lastOriginalName = null;\n\t  this.walk(function (chunk, original) {\n\t    generated.code += chunk;\n\t    if (original.source !== null\n\t        && original.line !== null\n\t        && original.column !== null) {\n\t      if(lastOriginalSource !== original.source\n\t         || lastOriginalLine !== original.line\n\t         || lastOriginalColumn !== original.column\n\t         || lastOriginalName !== original.name) {\n\t        map.addMapping({\n\t          source: original.source,\n\t          original: {\n\t            line: original.line,\n\t            column: original.column\n\t          },\n\t          generated: {\n\t            line: generated.line,\n\t            column: generated.column\n\t          },\n\t          name: original.name\n\t        });\n\t      }\n\t      lastOriginalSource = original.source;\n\t      lastOriginalLine = original.line;\n\t      lastOriginalColumn = original.column;\n\t      lastOriginalName = original.name;\n\t      sourceMappingActive = true;\n\t    } else if (sourceMappingActive) {\n\t      map.addMapping({\n\t        generated: {\n\t          line: generated.line,\n\t          column: generated.column\n\t        }\n\t      });\n\t      lastOriginalSource = null;\n\t      sourceMappingActive = false;\n\t    }\n\t    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n\t      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n\t        generated.line++;\n\t        generated.column = 0;\n\t        // Mappings end at eol\n\t        if (idx + 1 === length) {\n\t          lastOriginalSource = null;\n\t          sourceMappingActive = false;\n\t        } else if (sourceMappingActive) {\n\t          map.addMapping({\n\t            source: original.source,\n\t            original: {\n\t              line: original.line,\n\t              column: original.column\n\t            },\n\t            generated: {\n\t              line: generated.line,\n\t              column: generated.column\n\t            },\n\t            name: original.name\n\t          });\n\t        }\n\t      } else {\n\t        generated.column++;\n\t      }\n\t    }\n\t  });\n\t  this.walkSourceContents(function (sourceFile, sourceContent) {\n\t    map.setSourceContent(sourceFile, sourceContent);\n\t  });\n\t\n\t  return { code: generated.code, map: map };\n\t};\n\t\n\texports.SourceNode = SourceNode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// source-map.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 42c329f865e32e011afb","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source-map.js\n// module id = 0\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n *   - file: The filename of the generated source.\n *   - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n  if (!aArgs) {\n    aArgs = {};\n  }\n  this._file = util.getArg(aArgs, 'file', null);\n  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n  this._mappings = new MappingList();\n  this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n    var sourceRoot = aSourceMapConsumer.sourceRoot;\n    var generator = new SourceMapGenerator({\n      file: aSourceMapConsumer.file,\n      sourceRoot: sourceRoot\n    });\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      var newMapping = {\n        generated: {\n          line: mapping.generatedLine,\n          column: mapping.generatedColumn\n        }\n      };\n\n      if (mapping.source != null) {\n        newMapping.source = mapping.source;\n        if (sourceRoot != null) {\n          newMapping.source = util.relative(sourceRoot, newMapping.source);\n        }\n\n        newMapping.original = {\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        };\n\n        if (mapping.name != null) {\n          newMapping.name = mapping.name;\n        }\n      }\n\n      generator.addMapping(newMapping);\n    });\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        generator.setSourceContent(sourceFile, content);\n      }\n    });\n    return generator;\n  };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n *   - generated: An object with the generated line and column positions.\n *   - original: An object with the original line and column positions.\n *   - source: The original source file (relative to the sourceRoot).\n *   - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n  function SourceMapGenerator_addMapping(aArgs) {\n    var generated = util.getArg(aArgs, 'generated');\n    var original = util.getArg(aArgs, 'original', null);\n    var source = util.getArg(aArgs, 'source', null);\n    var name = util.getArg(aArgs, 'name', null);\n\n    if (!this._skipValidation) {\n      this._validateMapping(generated, original, source, name);\n    }\n\n    if (source != null) {\n      source = String(source);\n      if (!this._sources.has(source)) {\n        this._sources.add(source);\n      }\n    }\n\n    if (name != null) {\n      name = String(name);\n      if (!this._names.has(name)) {\n        this._names.add(name);\n      }\n    }\n\n    this._mappings.add({\n      generatedLine: generated.line,\n      generatedColumn: generated.column,\n      originalLine: original != null && original.line,\n      originalColumn: original != null && original.column,\n      source: source,\n      name: name\n    });\n  };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n    var source = aSourceFile;\n    if (this._sourceRoot != null) {\n      source = util.relative(this._sourceRoot, source);\n    }\n\n    if (aSourceContent != null) {\n      // Add the source content to the _sourcesContents map.\n      // Create a new _sourcesContents map if the property is null.\n      if (!this._sourcesContents) {\n        this._sourcesContents = Object.create(null);\n      }\n      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n    } else if (this._sourcesContents) {\n      // Remove the source file from the _sourcesContents map.\n      // If the _sourcesContents map is empty, set the property to null.\n      delete this._sourcesContents[util.toSetString(source)];\n      if (Object.keys(this._sourcesContents).length === 0) {\n        this._sourcesContents = null;\n      }\n    }\n  };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n *        If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n *        to be applied. If relative, it is relative to the SourceMapConsumer.\n *        This parameter is needed when the two source maps aren't in the same\n *        directory, and the source map to be applied contains relative source\n *        paths. If so, those relative source paths need to be rewritten\n *        relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n    var sourceFile = aSourceFile;\n    // If aSourceFile is omitted, we will use the file property of the SourceMap\n    if (aSourceFile == null) {\n      if (aSourceMapConsumer.file == null) {\n        throw new Error(\n          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n          'or the source map\\'s \"file\" property. Both were omitted.'\n        );\n      }\n      sourceFile = aSourceMapConsumer.file;\n    }\n    var sourceRoot = this._sourceRoot;\n    // Make \"sourceFile\" relative if an absolute Url is passed.\n    if (sourceRoot != null) {\n      sourceFile = util.relative(sourceRoot, sourceFile);\n    }\n    // Applying the SourceMap can add and remove items from the sources and\n    // the names array.\n    var newSources = new ArraySet();\n    var newNames = new ArraySet();\n\n    // Find mappings for the \"sourceFile\"\n    this._mappings.unsortedForEach(function (mapping) {\n      if (mapping.source === sourceFile && mapping.originalLine != null) {\n        // Check if it can be mapped by the source map, then update the mapping.\n        var original = aSourceMapConsumer.originalPositionFor({\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        });\n        if (original.source != null) {\n          // Copy mapping\n          mapping.source = original.source;\n          if (aSourceMapPath != null) {\n            mapping.source = util.join(aSourceMapPath, mapping.source)\n          }\n          if (sourceRoot != null) {\n            mapping.source = util.relative(sourceRoot, mapping.source);\n          }\n          mapping.originalLine = original.line;\n          mapping.originalColumn = original.column;\n          if (original.name != null) {\n            mapping.name = original.name;\n          }\n        }\n      }\n\n      var source = mapping.source;\n      if (source != null && !newSources.has(source)) {\n        newSources.add(source);\n      }\n\n      var name = mapping.name;\n      if (name != null && !newNames.has(name)) {\n        newNames.add(name);\n      }\n\n    }, this);\n    this._sources = newSources;\n    this._names = newNames;\n\n    // Copy sourcesContents of applied map.\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aSourceMapPath != null) {\n          sourceFile = util.join(aSourceMapPath, sourceFile);\n        }\n        if (sourceRoot != null) {\n          sourceFile = util.relative(sourceRoot, sourceFile);\n        }\n        this.setSourceContent(sourceFile, content);\n      }\n    }, this);\n  };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n *   1. Just the generated position.\n *   2. The Generated position, original position, and original source.\n *   3. Generated and original position, original source, as well as a name\n *      token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n                                              aName) {\n    // When aOriginal is truthy but has empty values for .line and .column,\n    // it is most likely a programmer error. In this case we throw a very\n    // specific error message to try to guide them the right way.\n    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n        throw new Error(\n            'original.line and original.column are not numbers -- you probably meant to omit ' +\n            'the original mapping entirely and only map the generated position. If so, pass ' +\n            'null for the original mapping instead of an object with empty or null values.'\n        );\n    }\n\n    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n        && aGenerated.line > 0 && aGenerated.column >= 0\n        && !aOriginal && !aSource && !aName) {\n      // Case 1.\n      return;\n    }\n    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n             && aGenerated.line > 0 && aGenerated.column >= 0\n             && aOriginal.line > 0 && aOriginal.column >= 0\n             && aSource) {\n      // Cases 2 and 3.\n      return;\n    }\n    else {\n      throw new Error('Invalid mapping: ' + JSON.stringify({\n        generated: aGenerated,\n        source: aSource,\n        original: aOriginal,\n        name: aName\n      }));\n    }\n  };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n  function SourceMapGenerator_serializeMappings() {\n    var previousGeneratedColumn = 0;\n    var previousGeneratedLine = 1;\n    var previousOriginalColumn = 0;\n    var previousOriginalLine = 0;\n    var previousName = 0;\n    var previousSource = 0;\n    var result = '';\n    var next;\n    var mapping;\n    var nameIdx;\n    var sourceIdx;\n\n    var mappings = this._mappings.toArray();\n    for (var i = 0, len = mappings.length; i < len; i++) {\n      mapping = mappings[i];\n      next = ''\n\n      if (mapping.generatedLine !== previousGeneratedLine) {\n        previousGeneratedColumn = 0;\n        while (mapping.generatedLine !== previousGeneratedLine) {\n          next += ';';\n          previousGeneratedLine++;\n        }\n      }\n      else {\n        if (i > 0) {\n          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n            continue;\n          }\n          next += ',';\n        }\n      }\n\n      next += base64VLQ.encode(mapping.generatedColumn\n                                 - previousGeneratedColumn);\n      previousGeneratedColumn = mapping.generatedColumn;\n\n      if (mapping.source != null) {\n        sourceIdx = this._sources.indexOf(mapping.source);\n        next += base64VLQ.encode(sourceIdx - previousSource);\n        previousSource = sourceIdx;\n\n        // lines are stored 0-based in SourceMap spec version 3\n        next += base64VLQ.encode(mapping.originalLine - 1\n                                   - previousOriginalLine);\n        previousOriginalLine = mapping.originalLine - 1;\n\n        next += base64VLQ.encode(mapping.originalColumn\n                                   - previousOriginalColumn);\n        previousOriginalColumn = mapping.originalColumn;\n\n        if (mapping.name != null) {\n          nameIdx = this._names.indexOf(mapping.name);\n          next += base64VLQ.encode(nameIdx - previousName);\n          previousName = nameIdx;\n        }\n      }\n\n      result += next;\n    }\n\n    return result;\n  };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n    return aSources.map(function (source) {\n      if (!this._sourcesContents) {\n        return null;\n      }\n      if (aSourceRoot != null) {\n        source = util.relative(aSourceRoot, source);\n      }\n      var key = util.toSetString(source);\n      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n        ? this._sourcesContents[key]\n        : null;\n    }, this);\n  };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n  function SourceMapGenerator_toJSON() {\n    var map = {\n      version: this._version,\n      sources: this._sources.toArray(),\n      names: this._names.toArray(),\n      mappings: this._serializeMappings()\n    };\n    if (this._file != null) {\n      map.file = this._file;\n    }\n    if (this._sourceRoot != null) {\n      map.sourceRoot = this._sourceRoot;\n    }\n    if (this._sourcesContents) {\n      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n    }\n\n    return map;\n  };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n  function SourceMapGenerator_toString() {\n    return JSON.stringify(this.toJSON());\n  };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-generator.js\n// module id = 1\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n *  * Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above\n *    copyright notice, this list of conditions and the following\n *    disclaimer in the documentation and/or other materials provided\n *    with the distribution.\n *  * Neither the name of Google Inc. nor the names of its\n *    contributors may be used to endorse or promote products derived\n *    from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n//   Continuation\n//   |    Sign\n//   |    |\n//   V    V\n//   101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n  return aValue < 0\n    ? ((-aValue) << 1) + 1\n    : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n  var isNegative = (aValue & 1) === 1;\n  var shifted = aValue >> 1;\n  return isNegative\n    ? -shifted\n    : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n  var encoded = \"\";\n  var digit;\n\n  var vlq = toVLQSigned(aValue);\n\n  do {\n    digit = vlq & VLQ_BASE_MASK;\n    vlq >>>= VLQ_BASE_SHIFT;\n    if (vlq > 0) {\n      // There are still more digits in this value, so we must make sure the\n      // continuation bit is marked.\n      digit |= VLQ_CONTINUATION_BIT;\n    }\n    encoded += base64.encode(digit);\n  } while (vlq > 0);\n\n  return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n  var strLen = aStr.length;\n  var result = 0;\n  var shift = 0;\n  var continuation, digit;\n\n  do {\n    if (aIndex >= strLen) {\n      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n    }\n\n    digit = base64.decode(aStr.charCodeAt(aIndex++));\n    if (digit === -1) {\n      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n    }\n\n    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n    digit &= VLQ_BASE_MASK;\n    result = result + (digit << shift);\n    shift += VLQ_BASE_SHIFT;\n  } while (continuation);\n\n  aOutParam.value = fromVLQSigned(result);\n  aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64-vlq.js\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n  if (0 <= number && number < intToCharMap.length) {\n    return intToCharMap[number];\n  }\n  throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n  var bigA = 65;     // 'A'\n  var bigZ = 90;     // 'Z'\n\n  var littleA = 97;  // 'a'\n  var littleZ = 122; // 'z'\n\n  var zero = 48;     // '0'\n  var nine = 57;     // '9'\n\n  var plus = 43;     // '+'\n  var slash = 47;    // '/'\n\n  var littleOffset = 26;\n  var numberOffset = 52;\n\n  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n  if (bigA <= charCode && charCode <= bigZ) {\n    return (charCode - bigA);\n  }\n\n  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n  if (littleA <= charCode && charCode <= littleZ) {\n    return (charCode - littleA + littleOffset);\n  }\n\n  // 52 - 61: 0123456789\n  if (zero <= charCode && charCode <= nine) {\n    return (charCode - zero + numberOffset);\n  }\n\n  // 62: +\n  if (charCode == plus) {\n    return 62;\n  }\n\n  // 63: /\n  if (charCode == slash) {\n    return 63;\n  }\n\n  // Invalid base64 digit.\n  return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64.js\n// module id = 3\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n  if (aName in aArgs) {\n    return aArgs[aName];\n  } else if (arguments.length === 3) {\n    return aDefaultValue;\n  } else {\n    throw new Error('\"' + aName + '\" is a required argument.');\n  }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n  var match = aUrl.match(urlRegexp);\n  if (!match) {\n    return null;\n  }\n  return {\n    scheme: match[1],\n    auth: match[2],\n    host: match[3],\n    port: match[4],\n    path: match[5]\n  };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n  var url = '';\n  if (aParsedUrl.scheme) {\n    url += aParsedUrl.scheme + ':';\n  }\n  url += '//';\n  if (aParsedUrl.auth) {\n    url += aParsedUrl.auth + '@';\n  }\n  if (aParsedUrl.host) {\n    url += aParsedUrl.host;\n  }\n  if (aParsedUrl.port) {\n    url += \":\" + aParsedUrl.port\n  }\n  if (aParsedUrl.path) {\n    url += aParsedUrl.path;\n  }\n  return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n  var path = aPath;\n  var url = urlParse(aPath);\n  if (url) {\n    if (!url.path) {\n      return aPath;\n    }\n    path = url.path;\n  }\n  var isAbsolute = exports.isAbsolute(path);\n\n  var parts = path.split(/\\/+/);\n  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n    part = parts[i];\n    if (part === '.') {\n      parts.splice(i, 1);\n    } else if (part === '..') {\n      up++;\n    } else if (up > 0) {\n      if (part === '') {\n        // The first part is blank if the path is absolute. Trying to go\n        // above the root is a no-op. Therefore we can remove all '..' parts\n        // directly after the root.\n        parts.splice(i + 1, up);\n        up = 0;\n      } else {\n        parts.splice(i, 2);\n        up--;\n      }\n    }\n  }\n  path = parts.join('/');\n\n  if (path === '') {\n    path = isAbsolute ? '/' : '.';\n  }\n\n  if (url) {\n    url.path = path;\n    return urlGenerate(url);\n  }\n  return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n *   first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n *   is updated with the result and aRoot is returned. Otherwise the result\n *   is returned.\n *   - If aPath is absolute, the result is aPath.\n *   - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n  if (aPath === \"\") {\n    aPath = \".\";\n  }\n  var aPathUrl = urlParse(aPath);\n  var aRootUrl = urlParse(aRoot);\n  if (aRootUrl) {\n    aRoot = aRootUrl.path || '/';\n  }\n\n  // `join(foo, '//www.example.org')`\n  if (aPathUrl && !aPathUrl.scheme) {\n    if (aRootUrl) {\n      aPathUrl.scheme = aRootUrl.scheme;\n    }\n    return urlGenerate(aPathUrl);\n  }\n\n  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n    return aPath;\n  }\n\n  // `join('http://', 'www.example.com')`\n  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n    aRootUrl.host = aPath;\n    return urlGenerate(aRootUrl);\n  }\n\n  var joined = aPath.charAt(0) === '/'\n    ? aPath\n    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n  if (aRootUrl) {\n    aRootUrl.path = joined;\n    return urlGenerate(aRootUrl);\n  }\n  return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n\n  aRoot = aRoot.replace(/\\/$/, '');\n\n  // It is possible for the path to be above the root. In this case, simply\n  // checking whether the root is a prefix of the path won't work. Instead, we\n  // need to remove components from the root one by one, until either we find\n  // a prefix that fits, or we run out of components to remove.\n  var level = 0;\n  while (aPath.indexOf(aRoot + '/') !== 0) {\n    var index = aRoot.lastIndexOf(\"/\");\n    if (index < 0) {\n      return aPath;\n    }\n\n    // If the only part of the root that is left is the scheme (i.e. http://,\n    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n    // have exhausted all components, so the path is not relative to the root.\n    aRoot = aRoot.slice(0, index);\n    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n      return aPath;\n    }\n\n    ++level;\n  }\n\n  // Make sure we add a \"../\" for each component we removed from the root.\n  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n  var obj = Object.create(null);\n  return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n  return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return '$' + aStr;\n  }\n\n  return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return aStr.slice(1);\n  }\n\n  return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n  if (!s) {\n    return false;\n  }\n\n  var length = s.length;\n\n  if (length < 9 /* \"__proto__\".length */) {\n    return false;\n  }\n\n  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n    return false;\n  }\n\n  for (var i = length - 10; i >= 0; i--) {\n    if (s.charCodeAt(i) !== 36 /* '$' */) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n  var cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0 || onlyCompareOriginal) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0 || onlyCompareGenerated) {\n    return cmp;\n  }\n\n  cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n  if (aStr1 === aStr2) {\n    return 0;\n  }\n\n  if (aStr1 > aStr2) {\n    return 1;\n  }\n\n  return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/util.js\n// module id = 4\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n  this._array = [];\n  this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n  var set = new ArraySet();\n  for (var i = 0, len = aArray.length; i < len; i++) {\n    set.add(aArray[i], aAllowDuplicates);\n  }\n  return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n  var idx = this._array.length;\n  if (!isDuplicate || aAllowDuplicates) {\n    this._array.push(aStr);\n  }\n  if (!isDuplicate) {\n    if (hasNativeMap) {\n      this._set.set(aStr, idx);\n    } else {\n      this._set[sStr] = idx;\n    }\n  }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n  if (hasNativeMap) {\n    return this._set.has(aStr);\n  } else {\n    var sStr = util.toSetString(aStr);\n    return has.call(this._set, sStr);\n  }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n  if (hasNativeMap) {\n    var idx = this._set.get(aStr);\n    if (idx >= 0) {\n        return idx;\n    }\n  } else {\n    var sStr = util.toSetString(aStr);\n    if (has.call(this._set, sStr)) {\n      return this._set[sStr];\n    }\n  }\n\n  throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n  if (aIdx >= 0 && aIdx < this._array.length) {\n    return this._array[aIdx];\n  }\n  throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n  return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/array-set.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n  // Optimized for most common case\n  var lineA = mappingA.generatedLine;\n  var lineB = mappingB.generatedLine;\n  var columnA = mappingA.generatedColumn;\n  var columnB = mappingB.generatedColumn;\n  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n  this._array = [];\n  this._sorted = true;\n  // Serves as infimum\n  this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n  function MappingList_forEach(aCallback, aThisArg) {\n    this._array.forEach(aCallback, aThisArg);\n  };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n  if (generatedPositionAfter(this._last, aMapping)) {\n    this._last = aMapping;\n    this._array.push(aMapping);\n  } else {\n    this._sorted = false;\n    this._array.push(aMapping);\n  }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n  if (!this._sorted) {\n    this._array.sort(util.compareByGeneratedPositionsInflated);\n    this._sorted = true;\n  }\n  return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/mapping-list.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  return sourceMap.sections != null\n    ? new IndexedSourceMapConsumer(sourceMap)\n    : new BasicSourceMapConsumer(sourceMap);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n//     {\n//       generatedLine: The line number in the generated code,\n//       generatedColumn: The column number in the generated code,\n//       source: The path to the original source file that generated this\n//               chunk of code,\n//       originalLine: The line number in the original source that\n//                     corresponds to this chunk of generated code,\n//       originalColumn: The column number in the original source that\n//                       corresponds to this chunk of generated code,\n//       name: The name of the original symbol which generated this chunk of\n//             code.\n//     }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n  get: function () {\n    if (!this.__generatedMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__generatedMappings;\n  }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n  get: function () {\n    if (!this.__originalMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__originalMappings;\n  }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n    var c = aStr.charAt(index);\n    return c === \";\" || c === \",\";\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    throw new Error(\"Subclasses must implement _parseMappings\");\n  };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n *        The function that is called with each mapping.\n * @param Object aContext\n *        Optional. If specified, this object will be the value of `this` every\n *        time that `aCallback` is called.\n * @param aOrder\n *        Either `SourceMapConsumer.GENERATED_ORDER` or\n *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n *        iterate over the mappings sorted by the generated file's line/column\n *        order or the original's source/line/column order, respectively. Defaults to\n *        `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n    var context = aContext || null;\n    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n    var mappings;\n    switch (order) {\n    case SourceMapConsumer.GENERATED_ORDER:\n      mappings = this._generatedMappings;\n      break;\n    case SourceMapConsumer.ORIGINAL_ORDER:\n      mappings = this._originalMappings;\n      break;\n    default:\n      throw new Error(\"Unknown order of iteration.\");\n    }\n\n    var sourceRoot = this.sourceRoot;\n    mappings.map(function (mapping) {\n      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n      if (source != null && sourceRoot != null) {\n        source = util.join(sourceRoot, source);\n      }\n      return {\n        source: source,\n        generatedLine: mapping.generatedLine,\n        generatedColumn: mapping.generatedColumn,\n        originalLine: mapping.originalLine,\n        originalColumn: mapping.originalColumn,\n        name: mapping.name === null ? null : this._names.at(mapping.name)\n      };\n    }, this).forEach(aCallback, context);\n  };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: Optional. the column number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n    var line = util.getArg(aArgs, 'line');\n\n    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n    // returns the index of the closest mapping less than the needle. By\n    // setting needle.originalColumn to 0, we thus find the last mapping for\n    // the given line, provided such a mapping exists.\n    var needle = {\n      source: util.getArg(aArgs, 'source'),\n      originalLine: line,\n      originalColumn: util.getArg(aArgs, 'column', 0)\n    };\n\n    if (this.sourceRoot != null) {\n      needle.source = util.relative(this.sourceRoot, needle.source);\n    }\n    if (!this._sources.has(needle.source)) {\n      return [];\n    }\n    needle.source = this._sources.indexOf(needle.source);\n\n    var mappings = [];\n\n    var index = this._findMapping(needle,\n                                  this._originalMappings,\n                                  \"originalLine\",\n                                  \"originalColumn\",\n                                  util.compareByOriginalPositions,\n                                  binarySearch.LEAST_UPPER_BOUND);\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (aArgs.column === undefined) {\n        var originalLine = mapping.originalLine;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we found. Since\n        // mappings are sorted, this is guaranteed to find all mappings for\n        // the line we found.\n        while (mapping && mapping.originalLine === originalLine) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      } else {\n        var originalColumn = mapping.originalColumn;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we were searching for.\n        // Since mappings are sorted, this is guaranteed to find all mappings for\n        // the line we are searching for.\n        while (mapping &&\n               mapping.originalLine === line &&\n               mapping.originalColumn == originalColumn) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      }\n    }\n\n    return mappings;\n  };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The only parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - sources: An array of URLs to the original source files.\n *   - names: An array of identifiers which can be referrenced by individual mappings.\n *   - sourceRoot: Optional. The URL root from which all sources are relative.\n *   - sourcesContent: Optional. An array of contents of the original source files.\n *   - mappings: A string of base64 VLQs which contain the actual mappings.\n *   - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n *     {\n *       version : 3,\n *       file: \"out.js\",\n *       sourceRoot : \"\",\n *       sources: [\"foo.js\", \"bar.js\"],\n *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n *       mappings: \"AA,AB;;ABCDE;\"\n *     }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sources = util.getArg(sourceMap, 'sources');\n  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n  // requires the array) to play nice here.\n  var names = util.getArg(sourceMap, 'names', []);\n  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n  var mappings = util.getArg(sourceMap, 'mappings');\n  var file = util.getArg(sourceMap, 'file', null);\n\n  // Once again, Sass deviates from the spec and supplies the version as a\n  // string rather than a number, so we use loose equality checking here.\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  sources = sources\n    .map(String)\n    // Some source maps produce relative source paths like \"./foo.js\" instead of\n    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n    // See bugzil.la/1090768.\n    .map(util.normalize)\n    // Always ensure that absolute sources are internally stored relative to\n    // the source root, if the source root is absolute. Not doing this would\n    // be particularly problematic when the source root is a prefix of the\n    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n    .map(function (source) {\n      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n        ? util.relative(sourceRoot, source)\n        : source;\n    });\n\n  // Pass `true` below to allow duplicate names and sources. While source maps\n  // are intended to be compressed and deduplicated, the TypeScript compiler\n  // sometimes generates source maps with duplicates in them. See Github issue\n  // #72 and bugzil.la/889492.\n  this._names = ArraySet.fromArray(names.map(String), true);\n  this._sources = ArraySet.fromArray(sources, true);\n\n  this.sourceRoot = sourceRoot;\n  this.sourcesContent = sourcesContent;\n  this._mappings = mappings;\n  this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n *        The source map that will be consumed.\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n    smc.sourceRoot = aSourceMap._sourceRoot;\n    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n                                                            smc.sourceRoot);\n    smc.file = aSourceMap._file;\n\n    // Because we are modifying the entries (by converting string sources and\n    // names to indices into the sources and names ArraySets), we have to make\n    // a copy of the entry or else bad things happen. Shared mutable state\n    // strikes again! See github issue #191.\n\n    var generatedMappings = aSourceMap._mappings.toArray().slice();\n    var destGeneratedMappings = smc.__generatedMappings = [];\n    var destOriginalMappings = smc.__originalMappings = [];\n\n    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n      var srcMapping = generatedMappings[i];\n      var destMapping = new Mapping;\n      destMapping.generatedLine = srcMapping.generatedLine;\n      destMapping.generatedColumn = srcMapping.generatedColumn;\n\n      if (srcMapping.source) {\n        destMapping.source = sources.indexOf(srcMapping.source);\n        destMapping.originalLine = srcMapping.originalLine;\n        destMapping.originalColumn = srcMapping.originalColumn;\n\n        if (srcMapping.name) {\n          destMapping.name = names.indexOf(srcMapping.name);\n        }\n\n        destOriginalMappings.push(destMapping);\n      }\n\n      destGeneratedMappings.push(destMapping);\n    }\n\n    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n    return smc;\n  };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    return this._sources.toArray().map(function (s) {\n      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n    }, this);\n  }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n  this.generatedLine = 0;\n  this.generatedColumn = 0;\n  this.source = null;\n  this.originalLine = null;\n  this.originalColumn = null;\n  this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    var generatedLine = 1;\n    var previousGeneratedColumn = 0;\n    var previousOriginalLine = 0;\n    var previousOriginalColumn = 0;\n    var previousSource = 0;\n    var previousName = 0;\n    var length = aStr.length;\n    var index = 0;\n    var cachedSegments = {};\n    var temp = {};\n    var originalMappings = [];\n    var generatedMappings = [];\n    var mapping, str, segment, end, value;\n\n    while (index < length) {\n      if (aStr.charAt(index) === ';') {\n        generatedLine++;\n        index++;\n        previousGeneratedColumn = 0;\n      }\n      else if (aStr.charAt(index) === ',') {\n        index++;\n      }\n      else {\n        mapping = new Mapping();\n        mapping.generatedLine = generatedLine;\n\n        // Because each offset is encoded relative to the previous one,\n        // many segments often have the same encoding. We can exploit this\n        // fact by caching the parsed variable length fields of each segment,\n        // allowing us to avoid a second parse if we encounter the same\n        // segment again.\n        for (end = index; end < length; end++) {\n          if (this._charIsMappingSeparator(aStr, end)) {\n            break;\n          }\n        }\n        str = aStr.slice(index, end);\n\n        segment = cachedSegments[str];\n        if (segment) {\n          index += str.length;\n        } else {\n          segment = [];\n          while (index < end) {\n            base64VLQ.decode(aStr, index, temp);\n            value = temp.value;\n            index = temp.rest;\n            segment.push(value);\n          }\n\n          if (segment.length === 2) {\n            throw new Error('Found a source, but no line and column');\n          }\n\n          if (segment.length === 3) {\n            throw new Error('Found a source and line, but no column');\n          }\n\n          cachedSegments[str] = segment;\n        }\n\n        // Generated column.\n        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n        previousGeneratedColumn = mapping.generatedColumn;\n\n        if (segment.length > 1) {\n          // Original source.\n          mapping.source = previousSource + segment[1];\n          previousSource += segment[1];\n\n          // Original line.\n          mapping.originalLine = previousOriginalLine + segment[2];\n          previousOriginalLine = mapping.originalLine;\n          // Lines are stored 0-based\n          mapping.originalLine += 1;\n\n          // Original column.\n          mapping.originalColumn = previousOriginalColumn + segment[3];\n          previousOriginalColumn = mapping.originalColumn;\n\n          if (segment.length > 4) {\n            // Original name.\n            mapping.name = previousName + segment[4];\n            previousName += segment[4];\n          }\n        }\n\n        generatedMappings.push(mapping);\n        if (typeof mapping.originalLine === 'number') {\n          originalMappings.push(mapping);\n        }\n      }\n    }\n\n    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n    this.__generatedMappings = generatedMappings;\n\n    quickSort(originalMappings, util.compareByOriginalPositions);\n    this.__originalMappings = originalMappings;\n  };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n                                         aColumnName, aComparator, aBias) {\n    // To return the position we are searching for, we must first find the\n    // mapping for the given position and then return the opposite position it\n    // points to. Because the mappings are sorted, we can use binary search to\n    // find the best mapping.\n\n    if (aNeedle[aLineName] <= 0) {\n      throw new TypeError('Line must be greater than or equal to 1, got '\n                          + aNeedle[aLineName]);\n    }\n    if (aNeedle[aColumnName] < 0) {\n      throw new TypeError('Column must be greater than or equal to 0, got '\n                          + aNeedle[aColumnName]);\n    }\n\n    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n  };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n  function SourceMapConsumer_computeColumnSpans() {\n    for (var index = 0; index < this._generatedMappings.length; ++index) {\n      var mapping = this._generatedMappings[index];\n\n      // Mappings do not contain a field for the last generated columnt. We\n      // can come up with an optimistic estimate, however, by assuming that\n      // mappings are contiguous (i.e. given two consecutive mappings, the\n      // first mapping ends where the second one starts).\n      if (index + 1 < this._generatedMappings.length) {\n        var nextMapping = this._generatedMappings[index + 1];\n\n        if (mapping.generatedLine === nextMapping.generatedLine) {\n          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n          continue;\n        }\n      }\n\n      // The last mapping for each line spans the entire line.\n      mapping.lastGeneratedColumn = Infinity;\n    }\n  };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n  function SourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._generatedMappings,\n      \"generatedLine\",\n      \"generatedColumn\",\n      util.compareByGeneratedPositionsDeflated,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._generatedMappings[index];\n\n      if (mapping.generatedLine === needle.generatedLine) {\n        var source = util.getArg(mapping, 'source', null);\n        if (source !== null) {\n          source = this._sources.at(source);\n          if (this.sourceRoot != null) {\n            source = util.join(this.sourceRoot, source);\n          }\n        }\n        var name = util.getArg(mapping, 'name', null);\n        if (name !== null) {\n          name = this._names.at(name);\n        }\n        return {\n          source: source,\n          line: util.getArg(mapping, 'originalLine', null),\n          column: util.getArg(mapping, 'originalColumn', null),\n          name: name\n        };\n      }\n    }\n\n    return {\n      source: null,\n      line: null,\n      column: null,\n      name: null\n    };\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n    if (!this.sourcesContent) {\n      return false;\n    }\n    return this.sourcesContent.length >= this._sources.size() &&\n      !this.sourcesContent.some(function (sc) { return sc == null; });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    if (!this.sourcesContent) {\n      return null;\n    }\n\n    if (this.sourceRoot != null) {\n      aSource = util.relative(this.sourceRoot, aSource);\n    }\n\n    if (this._sources.has(aSource)) {\n      return this.sourcesContent[this._sources.indexOf(aSource)];\n    }\n\n    var url;\n    if (this.sourceRoot != null\n        && (url = util.urlParse(this.sourceRoot))) {\n      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n      // many users. We can help them out when they expect file:// URIs to\n      // behave like it would if they were running a local HTTP server. See\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n      if (url.scheme == \"file\"\n          && this._sources.has(fileUriAbsPath)) {\n        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n      }\n\n      if ((!url.path || url.path == \"/\")\n          && this._sources.has(\"/\" + aSource)) {\n        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n      }\n    }\n\n    // This function is used recursively from\n    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n    // don't want to throw if we can't find the source - we just want to\n    // return null, so we provide a flag to exit gracefully.\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n  function SourceMapConsumer_generatedPositionFor(aArgs) {\n    var source = util.getArg(aArgs, 'source');\n    if (this.sourceRoot != null) {\n      source = util.relative(this.sourceRoot, source);\n    }\n    if (!this._sources.has(source)) {\n      return {\n        line: null,\n        column: null,\n        lastColumn: null\n      };\n    }\n    source = this._sources.indexOf(source);\n\n    var needle = {\n      source: source,\n      originalLine: util.getArg(aArgs, 'line'),\n      originalColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._originalMappings,\n      \"originalLine\",\n      \"originalColumn\",\n      util.compareByOriginalPositions,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (mapping.source === needle.source) {\n        return {\n          line: util.getArg(mapping, 'generatedLine', null),\n          column: util.getArg(mapping, 'generatedColumn', null),\n          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n        };\n      }\n    }\n\n    return {\n      line: null,\n      column: null,\n      lastColumn: null\n    };\n  };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The only parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - file: Optional. The generated file this source map is associated with.\n *   - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n *   - offset: The offset into the original specified at which this section\n *       begins to apply, defined as an object with a \"line\" and \"column\"\n *       field.\n *   - map: A source map definition. This source map could also be indexed,\n *       but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n *  {\n *    version : 3,\n *    file: \"app.js\",\n *    sections: [{\n *      offset: {line:100, column:10},\n *      map: {\n *        version : 3,\n *        file: \"section.js\",\n *        sources: [\"foo.js\", \"bar.js\"],\n *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n *        mappings: \"AAAA,E;;ABCDE;\"\n *      }\n *    }],\n *  }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sections = util.getArg(sourceMap, 'sections');\n\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n\n  var lastOffset = {\n    line: -1,\n    column: 0\n  };\n  this._sections = sections.map(function (s) {\n    if (s.url) {\n      // The url field will require support for asynchronicity.\n      // See https://github.com/mozilla/source-map/issues/16\n      throw new Error('Support for url field in sections not implemented.');\n    }\n    var offset = util.getArg(s, 'offset');\n    var offsetLine = util.getArg(offset, 'line');\n    var offsetColumn = util.getArg(offset, 'column');\n\n    if (offsetLine < lastOffset.line ||\n        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n      throw new Error('Section offsets must be ordered and non-overlapping.');\n    }\n    lastOffset = offset;\n\n    return {\n      generatedOffset: {\n        // The offset fields are 0-based, but we use 1-based indices when\n        // encoding/decoding from VLQ.\n        generatedLine: offsetLine + 1,\n        generatedColumn: offsetColumn + 1\n      },\n      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n    }\n  });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    var sources = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n        sources.push(this._sections[i].consumer.sources[j]);\n      }\n    }\n    return sources;\n  }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    // Find the section containing the generated position we're trying to map\n    // to an original position.\n    var sectionIndex = binarySearch.search(needle, this._sections,\n      function(needle, section) {\n        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n        if (cmp) {\n          return cmp;\n        }\n\n        return (needle.generatedColumn -\n                section.generatedOffset.generatedColumn);\n      });\n    var section = this._sections[sectionIndex];\n\n    if (!section) {\n      return {\n        source: null,\n        line: null,\n        column: null,\n        name: null\n      };\n    }\n\n    return section.consumer.originalPositionFor({\n      line: needle.generatedLine -\n        (section.generatedOffset.generatedLine - 1),\n      column: needle.generatedColumn -\n        (section.generatedOffset.generatedLine === needle.generatedLine\n         ? section.generatedOffset.generatedColumn - 1\n         : 0),\n      bias: aArgs.bias\n    });\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n    return this._sections.every(function (s) {\n      return s.consumer.hasContentsOfAllSources();\n    });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      var content = section.consumer.sourceContentFor(aSource, true);\n      if (content) {\n        return content;\n      }\n    }\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      // Only consider this section if the requested source is in the list of\n      // sources of the consumer.\n      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n        continue;\n      }\n      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n      if (generatedPosition) {\n        var ret = {\n          line: generatedPosition.line +\n            (section.generatedOffset.generatedLine - 1),\n          column: generatedPosition.column +\n            (section.generatedOffset.generatedLine === generatedPosition.line\n             ? section.generatedOffset.generatedColumn - 1\n             : 0)\n        };\n        return ret;\n      }\n    }\n\n    return {\n      line: null,\n      column: null\n    };\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    this.__generatedMappings = [];\n    this.__originalMappings = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n      var sectionMappings = section.consumer._generatedMappings;\n      for (var j = 0; j < sectionMappings.length; j++) {\n        var mapping = sectionMappings[j];\n\n        var source = section.consumer._sources.at(mapping.source);\n        if (section.consumer.sourceRoot !== null) {\n          source = util.join(section.consumer.sourceRoot, source);\n        }\n        this._sources.add(source);\n        source = this._sources.indexOf(source);\n\n        var name = section.consumer._names.at(mapping.name);\n        this._names.add(name);\n        name = this._names.indexOf(name);\n\n        // The mappings coming from the consumer for the section have\n        // generated positions relative to the start of the section, so we\n        // need to offset them to be relative to the start of the concatenated\n        // generated file.\n        var adjustedMapping = {\n          source: source,\n          generatedLine: mapping.generatedLine +\n            (section.generatedOffset.generatedLine - 1),\n          generatedColumn: mapping.generatedColumn +\n            (section.generatedOffset.generatedLine === mapping.generatedLine\n            ? section.generatedOffset.generatedColumn - 1\n            : 0),\n          originalLine: mapping.originalLine,\n          originalColumn: mapping.originalColumn,\n          name: name\n        };\n\n        this.__generatedMappings.push(adjustedMapping);\n        if (typeof adjustedMapping.originalLine === 'number') {\n          this.__originalMappings.push(adjustedMapping);\n        }\n      }\n    }\n\n    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n  };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-consumer.js\n// module id = 7\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n  // This function terminates when one of the following is true:\n  //\n  //   1. We find the exact element we are looking for.\n  //\n  //   2. We did not find the exact element, but we can return the index of\n  //      the next-closest element.\n  //\n  //   3. We did not find the exact element, and there is no next-closest\n  //      element than the one we are searching for, so we return -1.\n  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n  if (cmp === 0) {\n    // Found the element we are looking for.\n    return mid;\n  }\n  else if (cmp > 0) {\n    // Our needle is greater than aHaystack[mid].\n    if (aHigh - mid > 1) {\n      // The element is in the upper half.\n      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // The exact needle element was not found in this haystack. Determine if\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return aHigh < aHaystack.length ? aHigh : -1;\n    } else {\n      return mid;\n    }\n  }\n  else {\n    // Our needle is less than aHaystack[mid].\n    if (mid - aLow > 1) {\n      // The element is in the lower half.\n      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return mid;\n    } else {\n      return aLow < 0 ? -1 : aLow;\n    }\n  }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n *     array and returns -1, 0, or 1 depending on whether the needle is less\n *     than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n  if (aHaystack.length === 0) {\n    return -1;\n  }\n\n  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n  if (index < 0) {\n    return -1;\n  }\n\n  // We have found either the exact element, or the next-closest element than\n  // the one we are searching for. However, there may be more than one such\n  // element. Make sure we always return the smallest of these.\n  while (index - 1 >= 0) {\n    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n      break;\n    }\n    --index;\n  }\n\n  return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/binary-search.js\n// module id = 8\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n *        The array.\n * @param {Number} x\n *        The index of the first item.\n * @param {Number} y\n *        The index of the second item.\n */\nfunction swap(ary, x, y) {\n  var temp = ary[x];\n  ary[x] = ary[y];\n  ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n *        The lower bound on the range.\n * @param {Number} high\n *        The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n  return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n * @param {Number} p\n *        Start index of the array\n * @param {Number} r\n *        End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n  // If our lower bound is less than our upper bound, we (1) partition the\n  // array into two pieces and (2) recurse on each half. If it is not, this is\n  // the empty array and our base case.\n\n  if (p < r) {\n    // (1) Partitioning.\n    //\n    // The partitioning chooses a pivot between `p` and `r` and moves all\n    // elements that are less than or equal to the pivot to the before it, and\n    // all the elements that are greater than it after it. The effect is that\n    // once partition is done, the pivot is in the exact place it will be when\n    // the array is put in sorted order, and it will not need to be moved\n    // again. This runs in O(n) time.\n\n    // Always choose a random pivot so that an input array which is reverse\n    // sorted does not cause O(n^2) running time.\n    var pivotIndex = randomIntInRange(p, r);\n    var i = p - 1;\n\n    swap(ary, pivotIndex, r);\n    var pivot = ary[r];\n\n    // Immediately after `j` is incremented in this loop, the following hold\n    // true:\n    //\n    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n    //\n    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n    for (var j = p; j < r; j++) {\n      if (comparator(ary[j], pivot) <= 0) {\n        i += 1;\n        swap(ary, i, j);\n      }\n    }\n\n    swap(ary, i + 1, j);\n    var q = i + 1;\n\n    // (2) Recurse on each half.\n\n    doQuickSort(ary, comparator, p, q - 1);\n    doQuickSort(ary, comparator, q + 1, r);\n  }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n  doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/quick-sort.js\n// module id = 9\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n    // The SourceNode we want to fill with the generated code\n    // and the SourceMap\n    var node = new SourceNode();\n\n    // All even indices of this array are one line of the generated code,\n    // while all odd indices are the newlines between two adjacent lines\n    // (since `REGEX_NEWLINE` captures its match).\n    // Processed fragments are accessed by calling `shiftNextLine`.\n    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n    var remainingLinesIndex = 0;\n    var shiftNextLine = function() {\n      var lineContents = getNextLine();\n      // The last line of a file might not have a newline.\n      var newLine = getNextLine() || \"\";\n      return lineContents + newLine;\n\n      function getNextLine() {\n        return remainingLinesIndex < remainingLines.length ?\n            remainingLines[remainingLinesIndex++] : undefined;\n      }\n    };\n\n    // We need to remember the position of \"remainingLines\"\n    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n    // The generate SourceNodes we need a code range.\n    // To extract it current and last mapping is used.\n    // Here we store the last mapping.\n    var lastMapping = null;\n\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      if (lastMapping !== null) {\n        // We add the code from \"lastMapping\" to \"mapping\":\n        // First check if there is a new line in between.\n        if (lastGeneratedLine < mapping.generatedLine) {\n          // Associate first line with \"lastMapping\"\n          addMappingWithCode(lastMapping, shiftNextLine());\n          lastGeneratedLine++;\n          lastGeneratedColumn = 0;\n          // The remaining code is added without mapping\n        } else {\n          // There is no new line in between.\n          // Associate the code between \"lastGeneratedColumn\" and\n          // \"mapping.generatedColumn\" with \"lastMapping\"\n          var nextLine = remainingLines[remainingLinesIndex];\n          var code = nextLine.substr(0, mapping.generatedColumn -\n                                        lastGeneratedColumn);\n          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n                                              lastGeneratedColumn);\n          lastGeneratedColumn = mapping.generatedColumn;\n          addMappingWithCode(lastMapping, code);\n          // No more remaining code, continue\n          lastMapping = mapping;\n          return;\n        }\n      }\n      // We add the generated code until the first mapping\n      // to the SourceNode without any mapping.\n      // Each line is added as separate string.\n      while (lastGeneratedLine < mapping.generatedLine) {\n        node.add(shiftNextLine());\n        lastGeneratedLine++;\n      }\n      if (lastGeneratedColumn < mapping.generatedColumn) {\n        var nextLine = remainingLines[remainingLinesIndex];\n        node.add(nextLine.substr(0, mapping.generatedColumn));\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n      }\n      lastMapping = mapping;\n    }, this);\n    // We have processed all mappings.\n    if (remainingLinesIndex < remainingLines.length) {\n      if (lastMapping) {\n        // Associate the remaining code in the current line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n      }\n      // and add the remaining lines without any mapping\n      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n    }\n\n    // Copy sourcesContent into SourceNode\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aRelativePath != null) {\n          sourceFile = util.join(aRelativePath, sourceFile);\n        }\n        node.setSourceContent(sourceFile, content);\n      }\n    });\n\n    return node;\n\n    function addMappingWithCode(mapping, code) {\n      if (mapping === null || mapping.source === undefined) {\n        node.add(code);\n      } else {\n        var source = aRelativePath\n          ? util.join(aRelativePath, mapping.source)\n          : mapping.source;\n        node.add(new SourceNode(mapping.originalLine,\n                                mapping.originalColumn,\n                                source,\n                                code,\n                                mapping.name));\n      }\n    }\n  };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length-1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    }\n    else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n                     line: this.line,\n                     column: this.column,\n                     name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len-1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  }\n  else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  }\n  else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n  };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n  function SourceNode_walkSourceContents(aFn) {\n    for (var i = 0, len = this.children.length; i < len; i++) {\n      if (this.children[i][isSourceNode]) {\n        this.children[i].walkSourceContents(aFn);\n      }\n    }\n\n    var sources = Object.keys(this.sourceContents);\n    for (var i = 0, len = sources.length; i < len; i++) {\n      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n    }\n  };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null\n        && original.line !== null\n        && original.column !== null) {\n      if(lastOriginalSource !== original.source\n         || lastOriginalLine !== original.line\n         || lastOriginalColumn !== original.column\n         || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-node.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js-74-    if (deprecratedKey) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js:75:      console.trace(`Visitor defined for ${nodeType} but it has been renamed to ${deprecratedKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js-76-      aliases = [deprecratedKey];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js-115-    if (t.TYPES.indexOf(nodeType) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js:116:      throw new Error(`You gave us a visitor for the node type ${nodeType} but it's not a valid type`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js-117-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js-123-        if (visitorKey === "enter" || visitorKey === "exit") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js:124:          validateVisitorMethods(`${nodeType}.${visitorKey}`, visitors[visitorKey]);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js-125-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js:126:          throw new Error("You passed `traverse()` a visitor object with the property " + `${nodeType} that has the invalid property ${visitorKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js-127-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js-139-    if (typeof fn !== "function") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js:140:      throw new TypeError(`Non-function found defined in ${path} with type ${typeof fn}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/visitors.js-141-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/modification.js-172-      const type = Array.isArray(node) ? "array" : typeof node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/modification.js:173:      throw new Error(`Node list ${msg} with the index of ${i} and type of ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/modification.js-174-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-161-      let key = path.key;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js:162:      if (path.inList) key = `${path.listKey}[${key}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-163-      parts.unshift(key);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-170-    if (!debug.enabled) return;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js:171:    debug(`${this.getPathLocation()} ${this.type}: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-172-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-233-for (const type of t.TYPES) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js:234:  const typeKey = `is${type}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-235-  const fn = t[typeKey];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-240-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js:241:  NodePath.prototype[`assert${type}`] = function (opts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-242-    if (!fn(this.node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js:243:      throw new TypeError(`Expected node path of type ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-244-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-252-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js:253:  NodePath.prototype[`is${type}`] = function (opts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/index.js-254-    return virtualType.checkPath(this, opts);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/context.js-61-    if (ret) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/context.js:62:      throw new Error(`Unexpected return value from visitor method ${fn}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/context.js-63-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/conversion.js-323-  const op = isAssignment ? "set" : "get";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/conversion.js:324:  return getBinding(thisEnvFn, `superprop_${op}:${propName || ""}`, () => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/conversion.js-325-    const argsList = [];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/replacement.js-77-  try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/replacement.js:78:    replacement = `(${replacement})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/replacement.js-79-    replacement = (0, _parser.parse)(replacement);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/replacement.js-174-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/replacement.js:175:  this.debug(`Replace with ${node && node.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/replacement.js-176-  this.node = this.container[this.key] = node;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/inference/index.js-89-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/inference/index.js:90:      throw new Error(`Unknown base type ${baseName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/path/inference/index.js-91-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/index.js-56-    if (parent.type !== "Program" && parent.type !== "File") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/index.js:57:      throw new Error("You must pass a scope and parentPath unless traversing a Program/File. " + `Instead of that you tried to traverse a ${parent.type} node without ` + "passing scope and parentPath.");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/index.js-58-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/scope/index.js-368-    if (i > 1) id += i;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/scope/index.js:369:    return `_${id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/scope/index.js-370-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/scope/index.js-424-    if (duplicate) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/scope/index.js:425:      throw this.hub.buildError(id, `Duplicate declaration "${name}"`, TypeError);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/scope/index.js-426-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/scope/index.js-783-    const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/scope/index.js:784:    const dataKey = `declaration:${kind}:${blockHoist}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/traverse/lib/scope/index.js-785-    let declarPath = !unique && path.getData(dataKey);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/base.js-76-  if (!unescapedDoubleQuoteRE.test(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/base.js:77:    this.token(`"${value}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/base.js-78-  } else if (!unescapedSingleQuoteRE.test(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/base.js:79:    this.token(`'${value}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/base.js-80-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/base.js-85-function InterpreterDirective(node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/base.js:86:  this.token(`#!${node.value}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/base.js-87-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/types.js-133-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/types.js:134:    throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)} received).`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/types.js-135-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/types.js-164-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/types.js:165:    throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/types.js-166-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/types.js-184-function RegExpLiteral(node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/types.js:185:  this.word(`/${node.pattern}/${node.flags}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/generators/types.js-186-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/printer.js-268-    if (!printMethod) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/printer.js:269:      throw new ReferenceError(`unknown node of type ${JSON.stringify(node.type)} with constructor ${JSON.stringify(node && node.constructor.name)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/printer.js-270-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/printer.js-456-    if (!this.endsWith("[") && !this.endsWith("{")) this.space();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/printer.js:457:    let val = !isBlockComment && !this._noLineTerminator ? `//${comment.value}\n` : `/*${comment.value}*/`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/printer.js-458-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/printer.js-467-      const indentSize = Math.max(this._getIndent().length, this._buf.getCurrentColumn());
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/printer.js:468:      val = val.replace(/\n(?!$)/g, `\n${(0, _repeat.default)(" ", indentSize)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/printer.js-469-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/index.js-65-    if (format.compact) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/index.js:66:      console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/generator/lib/index.js-67-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/helper-function-name/lib/index.js-62-  if (t.isRegExpLiteral(id)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/helper-function-name/lib/index.js:63:    return `_${id.pattern}_${id.flags}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/helper-function-name/lib/index.js-64-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js-109-    const number = start + 1 + index;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js:110:    const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js:111:    const gutter = ` ${paddedNumber} | `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js-112-    const hasMarker = markerLines[number];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js-129-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js:130:      return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js-131-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js-134-  if (opts.message && !hasColumns) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js:135:    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/code-frame/lib/index.js-136-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-733-    const loc = this.getLocationForPosition(pos);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js:734:    const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-735-    return this._raise(Object.assign({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-4934-  if (x == null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js:4935:    throw new Error(`Unexpected ${x} value.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-4936-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-7311-  if (hasPlugin(plugins, "pipelineOperator") && !PIPELINE_PROPOSALS.includes(getPluginOption(plugins, "pipelineOperator", "proposal"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js:7312:    throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: " + PIPELINE_PROPOSALS.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-7313-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-7315-  if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js:7316:    throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-7317-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-8753-    if (typeof messageOrType !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js:8754:      messageOrType = `Unexpected token, expected "${messageOrType.label}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-8755-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-8763-        missingPlugin: [name]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js:8764:      }, `This experimental syntax requires enabling the parser plugin: '${name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-8765-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-8773-        missingPlugin: names
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js:8774:      }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-8775-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-9192-        if (checkClashes) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js:9193:          const key = `_${expr.name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-9194-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-10907-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js:10908:        throw new Error(`Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js-10909-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/lib/index.js.map:1:{"version":3,"file":"index.js","sources":["../src/tokenizer/types.js","../src/util/scopeflags.js","../src/util/whitespace.js","../src/util/location.js","../src/parser/base.js","../src/parser/comments.js","../src/parser/location.js","../src/plugins/estree.js","../src/tokenizer/context.js","../../babel-helper-validator-identifier/src/identifier.js","../../babel-helper-validator-identifier/src/keyword.js","../src/util/identifier.js","../src/plugins/flow.js","../src/plugins/jsx/xhtml.js","../src/plugins/jsx/index.js","../src/util/scope.js","../src/plugins/typescript/scope.js","../src/util/production-parameter.js","../src/plugins/typescript/index.js","../src/plugins/placeholders.js","../src/plugins/v8intrinsic.js","../src/plugin-utils.js","../src/options.js","../src/tokenizer/state.js","../src/tokenizer/index.js","../src/parser/util.js","../src/parser/node.js","../src/parser/lval.js","../src/parser/expression.js","../src/parser/statement.js","../src/util/class-scope.js","../src/parser/index.js","../src/index.js"],"sourcesContent":["// @flow\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n  keyword?: string,\n  beforeExpr?: boolean,\n  startsExpr?: boolean,\n  rightAssociative?: boolean,\n  isLoop?: boolean,\n  isAssign?: boolean,\n  prefix?: boolean,\n  postfix?: boolean,\n  binop?: ?number,\n};\n\nexport class TokenType {\n  label: string;\n  keyword: ?string;\n  beforeExpr: boolean;\n  startsExpr: boolean;\n  rightAssociative: boolean;\n  isLoop: boolean;\n  isAssign: boolean;\n  prefix: boolean;\n  postfix: boolean;\n  binop: ?number;\n  updateContext: ?(prevType: TokenType) => void;\n\n  constructor(label: string, conf: TokenOptions = {}) {\n    this.label = label;\n    this.keyword = conf.keyword;\n    this.beforeExpr = !!conf.beforeExpr;\n    this.startsExpr = !!conf.startsExpr;\n    this.rightAssociative = !!conf.rightAssociative;\n    this.isLoop = !!conf.isLoop;\n    this.isAssign = !!conf.isAssign;\n    this.prefix = !!conf.prefix;\n    this.postfix = !!conf.postfix;\n    this.binop = conf.binop != null ? conf.binop : null;\n    this.updateContext = null;\n  }\n}\n\nexport const keywords = new Map<string, TokenType>();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n  options.keyword = name;\n  const token = new TokenType(name, options);\n  keywords.set(name, token);\n  return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n  return new TokenType(name, { beforeExpr, binop });\n}\n\nexport const types: { [name: string]: TokenType } = {\n  num: new TokenType(\"num\", { startsExpr }),\n  bigint: new TokenType(\"bigint\", { startsExpr }),\n  regexp: new TokenType(\"regexp\", { startsExpr }),\n  string: new TokenType(\"string\", { startsExpr }),\n  name: new TokenType(\"name\", { startsExpr }),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", { beforeExpr, startsExpr }),\n  bracketHashL: new TokenType(\"#[\", { beforeExpr, startsExpr }),\n  bracketBarL: new TokenType(\"[|\", { beforeExpr, startsExpr }),\n  bracketR: new TokenType(\"]\"),\n  bracketBarR: new TokenType(\"|]\"),\n  braceL: new TokenType(\"{\", { beforeExpr, startsExpr }),\n  braceBarL: new TokenType(\"{|\", { beforeExpr, startsExpr }),\n  braceHashL: new TokenType(\"#{\", { beforeExpr, startsExpr }),\n  braceR: new TokenType(\"}\"),\n  braceBarR: new TokenType(\"|}\"),\n  parenL: new TokenType(\"(\", { beforeExpr, startsExpr }),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", { beforeExpr }),\n  semi: new TokenType(\";\", { beforeExpr }),\n  colon: new TokenType(\":\", { beforeExpr }),\n  doubleColon: new TokenType(\"::\", { beforeExpr }),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", { beforeExpr }),\n  questionDot: new TokenType(\"?.\"),\n  arrow: new TokenType(\"=>\", { beforeExpr }),\n  template: new TokenType(\"template\"),\n  ellipsis: new TokenType(\"...\", { beforeExpr }),\n  backQuote: new TokenType(\"`\", { startsExpr }),\n  dollarBraceL: new TokenType(\"${\", { beforeExpr, startsExpr }),\n  at: new TokenType(\"@\"),\n  hash: new TokenType(\"#\", { startsExpr }),\n\n  // Special hashbang token.\n  interpreterDirective: new TokenType(\"#!...\"),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", { beforeExpr, isAssign }),\n  assign: new TokenType(\"_=\", { beforeExpr, isAssign }),\n  incDec: new TokenType(\"++/--\", { prefix, postfix, startsExpr }),\n  bang: new TokenType(\"!\", { beforeExpr, prefix, startsExpr }),\n  tilde: new TokenType(\"~\", { beforeExpr, prefix, startsExpr }),\n  pipeline: createBinop(\"|>\", 0),\n  nullishCoalescing: createBinop(\"??\", 1),\n  logicalOR: createBinop(\"||\", 1),\n  logicalAND: createBinop(\"&&\", 2),\n  bitwiseOR: createBinop(\"|\", 3),\n  bitwiseXOR: createBinop(\"^\", 4),\n  bitwiseAND: createBinop(\"&\", 5),\n  equality: createBinop(\"==/!=/===/!==\", 6),\n  relational: createBinop(\"</>/<=/>=\", 7),\n  bitShift: createBinop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n  // startsExpr: required by v8intrinsic plugin\n  modulo: new TokenType(\"%\", { beforeExpr, binop: 10, startsExpr }),\n  star: createBinop(\"*\", 10),\n  slash: createBinop(\"/\", 10),\n  exponent: new TokenType(\"**\", {\n    beforeExpr,\n    binop: 11,\n    rightAssociative: true,\n  }),\n\n  // Keywords\n  // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n  // when new keywords are added\n  _break: createKeyword(\"break\"),\n  _case: createKeyword(\"case\", { beforeExpr }),\n  _catch: createKeyword(\"catch\"),\n  _continue: createKeyword(\"continue\"),\n  _debugger: createKeyword(\"debugger\"),\n  _default: createKeyword(\"default\", { beforeExpr }),\n  _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n  _else: createKeyword(\"else\", { beforeExpr }),\n  _finally: createKeyword(\"finally\"),\n  _for: createKeyword(\"for\", { isLoop }),\n  _function: createKeyword(\"function\", { startsExpr }),\n  _if: createKeyword(\"if\"),\n  _return: createKeyword(\"return\", { beforeExpr }),\n  _switch: createKeyword(\"switch\"),\n  _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n  _try: createKeyword(\"try\"),\n  _var: createKeyword(\"var\"),\n  _const: createKeyword(\"const\"),\n  _while: createKeyword(\"while\", { isLoop }),\n  _with: createKeyword(\"with\"),\n  _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n  _this: createKeyword(\"this\", { startsExpr }),\n  _super: createKeyword(\"super\", { startsExpr }),\n  _class: createKeyword(\"class\", { startsExpr }),\n  _extends: createKeyword(\"extends\", { beforeExpr }),\n  _export: createKeyword(\"export\"),\n  _import: createKeyword(\"import\", { startsExpr }),\n  _null: createKeyword(\"null\", { startsExpr }),\n  _true: createKeyword(\"true\", { startsExpr }),\n  _false: createKeyword(\"false\", { startsExpr }),\n  _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n  _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n  _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n  _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n  _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n};\n","// @flow\n\n// Each scope gets a bitset that may contain these flags\n// prettier-ignore\nexport const SCOPE_OTHER        = 0b00000000,\n             SCOPE_PROGRAM      = 0b00000001,\n             SCOPE_FUNCTION     = 0b00000010,\n             SCOPE_ARROW        = 0b00000100,\n             SCOPE_SIMPLE_CATCH = 0b00001000,\n             SCOPE_SUPER        = 0b00010000,\n             SCOPE_DIRECT_SUPER = 0b00100000,\n             SCOPE_CLASS        = 0b01000000,\n             SCOPE_TS_MODULE    = 0b10000000,\n             SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE;\n\nexport type ScopeFlags =\n  | typeof SCOPE_OTHER\n  | typeof SCOPE_PROGRAM\n  | typeof SCOPE_FUNCTION\n  | typeof SCOPE_VAR\n  | typeof SCOPE_ARROW\n  | typeof SCOPE_SIMPLE_CATCH\n  | typeof SCOPE_SUPER\n  | typeof SCOPE_DIRECT_SUPER\n  | typeof SCOPE_CLASS;\n\n// These flags are meant to be _only_ used inside the Scope class (or subclasses).\n// prettier-ignore\nexport const BIND_KIND_VALUE           = 0b00000_0000_01,\n             BIND_KIND_TYPE            = 0b00000_0000_10,\n             // Used in checkLVal and declareName to determine the type of a binding\n             BIND_SCOPE_VAR            = 0b00000_0001_00, // Var-style binding\n             BIND_SCOPE_LEXICAL        = 0b00000_0010_00, // Let- or const-style binding\n             BIND_SCOPE_FUNCTION       = 0b00000_0100_00, // Function declaration\n             BIND_SCOPE_OUTSIDE        = 0b00000_1000_00, // Special case for function names as\n                                                   // bound inside the function\n             // Misc flags\n             BIND_FLAGS_NONE           = 0b00001_0000_00,\n             BIND_FLAGS_CLASS          = 0b00010_0000_00,\n             BIND_FLAGS_TS_ENUM        = 0b00100_0000_00,\n             BIND_FLAGS_TS_CONST_ENUM  = 0b01000_0000_00,\n             BIND_FLAGS_TS_EXPORT_ONLY = 0b10000_0000_00;\n\n// These flags are meant to be _only_ used by Scope consumers\n// prettier-ignore\n/*                              =    is value?    |    is type?    |      scope          |    misc flags    */\nexport const BIND_CLASS         = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_CLASS  ,\n             BIND_LEXICAL       = BIND_KIND_VALUE | 0              | BIND_SCOPE_LEXICAL  | 0                 ,\n             BIND_VAR           = BIND_KIND_VALUE | 0              | BIND_SCOPE_VAR      | 0                 ,\n             BIND_FUNCTION      = BIND_KIND_VALUE | 0              | BIND_SCOPE_FUNCTION | 0                 ,\n             BIND_TS_INTERFACE  = 0               | BIND_KIND_TYPE | 0                   | BIND_FLAGS_CLASS  ,\n             BIND_TS_TYPE       = 0               | BIND_KIND_TYPE | 0                   | 0                 ,\n             BIND_TS_ENUM       = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_TS_ENUM,\n             BIND_TS_AMBIENT    = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY,\n             // These bindings don't introduce anything in the scope. They are used for assignments and\n             // function expressions IDs.\n             BIND_NONE          = 0               | 0              | 0                   | BIND_FLAGS_NONE   ,\n             BIND_OUTSIDE       = BIND_KIND_VALUE | 0              | 0                   | BIND_FLAGS_NONE   ,\n\n             BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM,\n             BIND_TS_NAMESPACE  = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY;\n\nexport type BindingTypes =\n  | typeof BIND_NONE\n  | typeof BIND_OUTSIDE\n  | typeof BIND_VAR\n  | typeof BIND_LEXICAL\n  | typeof BIND_CLASS\n  | typeof BIND_FUNCTION\n  | typeof BIND_TS_INTERFACE\n  | typeof BIND_TS_TYPE\n  | typeof BIND_TS_ENUM\n  | typeof BIND_TS_AMBIENT\n  | typeof BIND_TS_NAMESPACE;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_FLAG_STATIC = 0b1_00,\n             CLASS_ELEMENT_KIND_GETTER = 0b0_10,\n             CLASS_ELEMENT_KIND_SETTER = 0b0_01,\n             CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_STATIC_GETTER   = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_STATIC_SETTER   = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER,\n             CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER,\n             CLASS_ELEMENT_OTHER           = 0;\n\nexport type ClassElementTypes =\n  | typeof CLASS_ELEMENT_STATIC_GETTER\n  | typeof CLASS_ELEMENT_STATIC_SETTER\n  | typeof CLASS_ELEMENT_INSTANCE_GETTER\n  | typeof CLASS_ELEMENT_INSTANCE_SETTER\n  | typeof CLASS_ELEMENT_OTHER;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n  switch (code) {\n    case charCodes.lineFeed:\n    case charCodes.carriageReturn:\n    case charCodes.lineSeparator:\n    case charCodes.paragraphSeparator:\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n  switch (code) {\n    case 0x0009: // CHARACTER TABULATION\n    case 0x000b: // LINE TABULATION\n    case 0x000c: // FORM FEED\n    case charCodes.space:\n    case charCodes.nonBreakingSpace:\n    case charCodes.oghamSpaceMark:\n    case 0x2000: // EN QUAD\n    case 0x2001: // EM QUAD\n    case 0x2002: // EN SPACE\n    case 0x2003: // EM SPACE\n    case 0x2004: // THREE-PER-EM SPACE\n    case 0x2005: // FOUR-PER-EM SPACE\n    case 0x2006: // SIX-PER-EM SPACE\n    case 0x2007: // FIGURE SPACE\n    case 0x2008: // PUNCTUATION SPACE\n    case 0x2009: // THIN SPACE\n    case 0x200a: // HAIR SPACE\n    case 0x202f: // NARROW NO-BREAK SPACE\n    case 0x205f: // MEDIUM MATHEMATICAL SPACE\n    case 0x3000: // IDEOGRAPHIC SPACE\n    case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n      return true;\n\n    default:\n      return false;\n  }\n}\n","// @flow\n\nimport { lineBreakG } from \"./whitespace\";\n\nexport type Pos = {\n  start: number,\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  line: number;\n  column: number;\n\n  constructor(line: number, col: number) {\n    this.line = line;\n    this.column = col;\n  }\n}\n\nexport class SourceLocation {\n  start: Position;\n  end: Position;\n  filename: string;\n  identifierName: ?string;\n\n  constructor(start: Position, end?: Position) {\n    this.start = start;\n    // $FlowIgnore (may start as null, but initialized later)\n    this.end = end;\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input: string, offset: number): Position {\n  let line = 1;\n  let lineStart = 0;\n  let match;\n  lineBreakG.lastIndex = 0;\n  while ((match = lineBreakG.exec(input)) && match.index < offset) {\n    line++;\n    lineStart = lineBreakG.lastIndex;\n  }\n\n  return new Position(line, offset - lineStart);\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type State from \"../tokenizer/state\";\nimport type { PluginsMap } from \"./index\";\nimport type ScopeHandler from \"../util/scope\";\nimport type ClassScopeHandler from \"../util/class-scope\";\nimport type ProductionParameterHandler from \"../util/production-parameter\";\n\nexport default class BaseParser {\n  // Properties set by constructor in index.js\n  options: Options;\n  inModule: boolean;\n  scope: ScopeHandler<*>;\n  classScope: ClassScopeHandler;\n  prodParam: ProductionParameterHandler;\n  plugins: PluginsMap;\n  filename: ?string;\n  sawUnambiguousESM: boolean = false;\n  ambiguousScriptDifferentAst: boolean = false;\n\n  // Initialized by Tokenizer\n  state: State;\n  // input and length are not in state as they are constant and we do\n  // not want to ever copy them, which happens if state gets cloned\n  input: string;\n  length: number;\n\n  hasPlugin(name: string): boolean {\n    return this.plugins.has(name);\n  }\n\n  getPluginOption(plugin: string, name: string) {\n    // $FlowIssue\n    if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name];\n  }\n}\n","// @flow\n\n/**\n * Based on the comment attachment algorithm used in espree and estraverse.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n *   notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n *   notice, this list of conditions and the following disclaimer in the\n *   documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport BaseParser from \"./base\";\nimport type { Comment, Node } from \"../types\";\n\nfunction last<T>(stack: $ReadOnlyArray<T>): T {\n  return stack[stack.length - 1];\n}\n\nexport default class CommentsParser extends BaseParser {\n  addComment(comment: Comment): void {\n    if (this.filename) comment.loc.filename = this.filename;\n    this.state.trailingComments.push(comment);\n    this.state.leadingComments.push(comment);\n  }\n\n  adjustCommentsAfterTrailingComma(\n    node: Node,\n    elements: (Node | null)[],\n    // When the current node is followed by a token which hasn't a respective AST node, we\n    // need to take all the trailing comments to prevent them from being attached to an\n    // unrelated node. e.g. in\n    //     var { x } /* cmt */ = { y }\n    // we don't want /* cmt */ to be attached to { y }.\n    // On the other hand, in\n    //     fn(x) [new line] /* cmt */ [new line] y\n    // /* cmt */ is both a trailing comment of fn(x) and a leading comment of y\n    takeAllComments?: boolean,\n  ) {\n    if (this.state.leadingComments.length === 0) {\n      return;\n    }\n\n    let lastElement = null;\n    let i = elements.length;\n    while (lastElement === null && i > 0) {\n      lastElement = elements[--i];\n    }\n    if (lastElement === null) {\n      return;\n    }\n\n    for (let j = 0; j < this.state.leadingComments.length; j++) {\n      if (\n        this.state.leadingComments[j].end < this.state.commentPreviousNode.end\n      ) {\n        this.state.leadingComments.splice(j, 1);\n        j--;\n      }\n    }\n\n    const newTrailingComments = [];\n    for (let i = 0; i < this.state.leadingComments.length; i++) {\n      const leadingComment = this.state.leadingComments[i];\n      if (leadingComment.end < node.end) {\n        newTrailingComments.push(leadingComment);\n\n        // Perf: we don't need to splice if we are going to reset the array anyway\n        if (!takeAllComments) {\n          this.state.leadingComments.splice(i, 1);\n          i--;\n        }\n      } else {\n        if (node.trailingComments === undefined) {\n          node.trailingComments = [];\n        }\n        node.trailingComments.push(leadingComment);\n      }\n    }\n    if (takeAllComments) this.state.leadingComments = [];\n\n    if (newTrailingComments.length > 0) {\n      lastElement.trailingComments = newTrailingComments;\n    } else if (lastElement.trailingComments !== undefined) {\n      lastElement.trailingComments = [];\n    }\n  }\n\n  processComment(node: Node): void {\n    if (node.type === \"Program\" && node.body.length > 0) return;\n\n    const stack = this.state.commentStack;\n\n    let firstChild, lastChild, trailingComments, i, j;\n\n    if (this.state.trailingComments.length > 0) {\n      // If the first comment in trailingComments comes after the\n      // current node, then we're good - all comments in the array will\n      // come after the node and so it's safe to add them as official\n      // trailingComments.\n      if (this.state.trailingComments[0].start >= node.end) {\n        trailingComments = this.state.trailingComments;\n        this.state.trailingComments = [];\n      } else {\n        // Otherwise, if the first comment doesn't come after the\n        // current node, that means we have a mix of leading and trailing\n        // comments in the array and that leadingComments contains the\n        // same items as trailingComments. Reset trailingComments to\n        // zero items and we'll handle this by evaluating leadingComments\n        // later.\n        this.state.trailingComments.length = 0;\n      }\n    } else if (stack.length > 0) {\n      const lastInStack = last(stack);\n      if (\n        lastInStack.trailingComments &&\n        lastInStack.trailingComments[0].start >= node.end\n      ) {\n        trailingComments = lastInStack.trailingComments;\n        delete lastInStack.trailingComments;\n      }\n    }\n\n    // Eating the stack.\n    if (stack.length > 0 && last(stack).start >= node.start) {\n      firstChild = stack.pop();\n    }\n\n    while (stack.length > 0 && last(stack).start >= node.start) {\n      lastChild = stack.pop();\n    }\n\n    if (!lastChild && firstChild) lastChild = firstChild;\n\n    // Adjust comments that follow a trailing comma on the last element in a\n    // comma separated list of nodes to be the trailing comments on the last\n    // element\n    if (firstChild) {\n      switch (node.type) {\n        case \"ObjectExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties);\n          break;\n        case \"ObjectPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties, true);\n          break;\n        case \"CallExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.arguments);\n          break;\n        case \"ArrayExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements);\n          break;\n        case \"ArrayPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements, true);\n          break;\n      }\n    } else if (\n      this.state.commentPreviousNode &&\n      ((this.state.commentPreviousNode.type === \"ImportSpecifier\" &&\n        node.type !== \"ImportSpecifier\") ||\n        (this.state.commentPreviousNode.type === \"ExportSpecifier\" &&\n          node.type !== \"ExportSpecifier\"))\n    ) {\n      this.adjustCommentsAfterTrailingComma(node, [\n        this.state.commentPreviousNode,\n      ]);\n    }\n\n    if (lastChild) {\n      if (lastChild.leadingComments) {\n        if (\n          lastChild !== node &&\n          lastChild.leadingComments.length > 0 &&\n          last(lastChild.leadingComments).end <= node.start\n        ) {\n          node.leadingComments = lastChild.leadingComments;\n          delete lastChild.leadingComments;\n        } else {\n          // A leading comment for an anonymous class had been stolen by its first ClassMethod,\n          // so this takes back the leading comment.\n          // See also: https://github.com/eslint/espree/issues/158\n          for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\n            if (lastChild.leadingComments[i].end <= node.start) {\n              node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\n              break;\n            }\n          }\n        }\n      }\n    } else if (this.state.leadingComments.length > 0) {\n      if (last(this.state.leadingComments).end <= node.start) {\n        if (this.state.commentPreviousNode) {\n          for (j = 0; j < this.state.leadingComments.length; j++) {\n            if (\n              this.state.leadingComments[j].end <\n              this.state.commentPreviousNode.end\n            ) {\n              this.state.leadingComments.splice(j, 1);\n              j--;\n            }\n          }\n        }\n        if (this.state.leadingComments.length > 0) {\n          node.leadingComments = this.state.leadingComments;\n          this.state.leadingComments = [];\n        }\n      } else {\n        // https://github.com/eslint/espree/issues/2\n        //\n        // In special cases, such as return (without a value) and\n        // debugger, all comments will end up as leadingComments and\n        // will otherwise be eliminated. This step runs when the\n        // commentStack is empty and there are comments left\n        // in leadingComments.\n        //\n        // This loop figures out the stopping point between the actual\n        // leading and trailing comments by finding the location of the\n        // first comment that comes after the given node.\n        for (i = 0; i < this.state.leadingComments.length; i++) {\n          if (this.state.leadingComments[i].end > node.start) {\n            break;\n          }\n        }\n\n        // Split the array based on the location of the first comment\n        // that comes after the node. Keep in mind that this could\n        // result in an empty array, and if so, the array must be\n        // deleted.\n        const leadingComments = this.state.leadingComments.slice(0, i);\n\n        if (leadingComments.length) {\n          node.leadingComments = leadingComments;\n        }\n\n        // Similarly, trailing comments are attached later. The variable\n        // must be reset to null if there are no trailing comments.\n        trailingComments = this.state.leadingComments.slice(i);\n        if (trailingComments.length === 0) {\n          trailingComments = null;\n        }\n      }\n    }\n\n    this.state.commentPreviousNode = node;\n\n    if (trailingComments) {\n      if (\n        trailingComments.length &&\n        trailingComments[0].start >= node.start &&\n        last(trailingComments).end <= node.end\n      ) {\n        node.innerComments = trailingComments;\n      } else {\n        node.trailingComments = trailingComments;\n      }\n    }\n\n    stack.push(node);\n  }\n}\n","// @flow\n/* eslint sort-keys: \"error\" */\nimport { getLineInfo, type Position } from \"../util/location\";\nimport CommentsParser from \"./comments\";\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\ntype ErrorContext = {\n  pos: number,\n  loc: Position,\n  missingPlugin?: Array<string>,\n  code?: string,\n};\n\n// The Errors key follows https://cs.chromium.org/chromium/src/v8/src/common/message-template.h unless it does not exist\nexport const Errors = Object.freeze({\n  ArgumentsDisallowedInInitializer:\n    \"'arguments' is not allowed in class field initializer\",\n  AsyncFunctionInSingleStatementContext:\n    \"Async functions can only be declared at the top level or inside a block\",\n  AwaitBindingIdentifier:\n    \"Can not use 'await' as identifier inside an async function\",\n  AwaitExpressionFormalParameter:\n    \"await is not allowed in async function parameters\",\n  AwaitNotInAsyncFunction:\n    \"Can not use keyword 'await' outside an async function\",\n  BadGetterArity: \"getter must not have any formal parameters\",\n  BadSetterArity: \"setter must have exactly one formal parameter\",\n  BadSetterRestParameter:\n    \"setter function argument must not be a rest parameter\",\n  ConstructorClassField: \"Classes may not have a field named 'constructor'\",\n  ConstructorClassPrivateField:\n    \"Classes may not have a private field named '#constructor'\",\n  ConstructorIsAccessor: \"Class constructor may not be an accessor\",\n  ConstructorIsAsync: \"Constructor can't be an async function\",\n  ConstructorIsGenerator: \"Constructor can't be a generator\",\n  DeclarationMissingInitializer: \"%0 require an initialization value\",\n  DecoratorBeforeExport:\n    \"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax\",\n  DecoratorConstructor:\n    \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n  DecoratorExportClass:\n    \"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\",\n  DecoratorSemicolon: \"Decorators must not be followed by a semicolon\",\n  DeletePrivateField: \"Deleting a private field is not allowed\",\n  DestructureNamedImport:\n    \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n  DuplicateConstructor: \"Duplicate constructor in the same class\",\n  DuplicateDefaultExport: \"Only one default export allowed per module.\",\n  DuplicateExport:\n    \"`%0` has already been exported. Exported identifiers must be unique.\",\n  DuplicateProto: \"Redefinition of __proto__ property\",\n  DuplicateRegExpFlags: \"Duplicate regular expression flag\",\n  ElementAfterRest: \"Rest element must be last element\",\n  EscapedCharNotAnIdentifier: \"Invalid Unicode escape\",\n  ForInOfLoopInitializer:\n    \"%0 loop variable declaration may not have an initializer\",\n  GeneratorInSingleStatementContext:\n    \"Generators can only be declared at the top level or inside a block\",\n  IllegalBreakContinue: \"Unsyntactic %0\",\n  IllegalLanguageModeDirective:\n    \"Illegal 'use strict' directive in function with non-simple parameter list\",\n  IllegalReturn: \"'return' outside of function\",\n  ImportCallArgumentTrailingComma:\n    \"Trailing comma is disallowed inside import(...) arguments\",\n  ImportCallArity: \"import() requires exactly one argument\",\n  ImportCallArityLtOne: \"Dynamic imports require a parameter: import('a.js')\",\n  ImportCallNotNewExpression: \"Cannot use new with import(...)\",\n  ImportCallSpreadArgument: \"... is not allowed in import()\",\n  ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: \"module\"'`,\n  ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n  InvalidCodePoint: \"Code point out of bounds\",\n  InvalidDigit: \"Expected number in radix %0\",\n  InvalidEscapeSequence: \"Bad character escape sequence\",\n  InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template\",\n  InvalidEscapedReservedWord: \"Escape sequence in keyword %0\",\n  InvalidIdentifier: \"Invalid identifier %0\",\n  InvalidLhs: \"Invalid left-hand side in %0\",\n  InvalidLhsBinding: \"Binding invalid left-hand side in %0\",\n  InvalidNumber: \"Invalid number\",\n  InvalidOrUnexpectedToken: \"Unexpected character '%0'\",\n  InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern\",\n  InvalidPrivateFieldResolution: \"Private name #%0 is not defined\",\n  InvalidPropertyBindingPattern: \"Binding member expression\",\n  InvalidRestAssignmentPattern: \"Invalid rest operator's argument\",\n  LabelRedeclaration: \"Label '%0' is already declared\",\n  LetInLexicalBinding:\n    \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\",\n  MalformedRegExpFlags: \"Invalid regular expression flag\",\n  MissingClassName: \"A class name is required\",\n  MissingEqInAssignment:\n    \"Only '=' operator can be used for specifying default value.\",\n  MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX\",\n  MixingCoalesceWithLogical:\n    \"Nullish coalescing operator(??) requires parens when mixing with logical operators\",\n  ModuleExportUndefined: \"Export '%0' is not defined\",\n  MultipleDefaultsInSwitch: \"Multiple default clauses\",\n  NewlineAfterThrow: \"Illegal newline after throw\",\n  NoCatchOrFinally: \"Missing catch or finally clause\",\n  NumberIdentifier: \"Identifier directly after number\",\n  NumericSeparatorInEscapeSequence:\n    \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences\",\n  ObsoleteAwaitStar:\n    \"await* has been removed from the async functions proposal. Use Promise.all() instead.\",\n  OptionalChainingNoNew:\n    \"constructors in/after an Optional Chain are not allowed\",\n  OptionalChainingNoTemplate:\n    \"Tagged Template Literals are not allowed in optionalChain\",\n  ParamDupe: \"Argument name clash\",\n  PatternHasAccessor: \"Object pattern can't contain getter or setter\",\n  PatternHasMethod: \"Object pattern can't contain methods\",\n  PipelineBodyNoArrow:\n    'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized',\n  PipelineBodySequenceExpression:\n    \"Pipeline body may not be a comma-separated sequence expression\",\n  PipelineHeadSequenceExpression:\n    \"Pipeline head should not be a comma-separated sequence expression\",\n  PipelineTopicUnused:\n    \"Pipeline is in topic style but does not use topic reference\",\n  PrimaryTopicNotAllowed:\n    \"Topic reference was used in a lexical context without topic binding\",\n  PrimaryTopicRequiresSmartPipeline:\n    \"Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.\",\n  PrivateNameRedeclaration: \"Duplicate private name #%0\",\n  RecordExpressionBarIncorrectEndSyntaxType:\n    \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionBarIncorrectStartSyntaxType:\n    \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionHashIncorrectStartSyntaxType:\n    \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  RestTrailingComma: \"Unexpected trailing comma after rest element\",\n  SloppyFunction:\n    \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",\n  StaticPrototype: \"Classes may not have static property named prototype\",\n  StrictDelete: \"Deleting local variable in strict mode\",\n  StrictEvalArguments: \"Assigning to '%0' in strict mode\",\n  StrictEvalArgumentsBinding: \"Binding '%0' in strict mode\",\n  StrictFunction:\n    \"In strict mode code, functions can only be declared at top level or inside a block\",\n  StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode\",\n  StrictWith: \"'with' in strict mode\",\n  SuperNotAllowed:\n    \"super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n  SuperPrivateField: \"Private fields can't be accessed on super\",\n  TrailingDecorator: \"Decorators must be attached to a class element\",\n  TupleExpressionBarIncorrectEndSyntaxType:\n    \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionBarIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionHashIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder\",\n  UnexpectedAwaitAfterPipelineBody:\n    'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal',\n  UnexpectedDigitAfterHash: \"Unexpected digit after hash token\",\n  UnexpectedImportExport:\n    \"'import' and 'export' may only appear at the top level\",\n  UnexpectedKeyword: \"Unexpected keyword '%0'\",\n  UnexpectedLeadingDecorator:\n    \"Leading decorators must be attached to a class declaration\",\n  UnexpectedLexicalDeclaration:\n    \"Lexical declaration cannot appear in a single-statement context\",\n  UnexpectedNewTarget: \"new.target can only be used in functions\",\n  UnexpectedNumericSeparator:\n    \"A numeric separator is only allowed between two digits\",\n  UnexpectedPrivateField:\n    \"Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\\n or a property of member expression (i.e. this.#p).\",\n  UnexpectedReservedWord: \"Unexpected reserved word '%0'\",\n  UnexpectedSuper: \"super is only allowed in object methods and classes\",\n  UnexpectedToken: \"Unexpected token '%'\",\n  UnexpectedTokenUnaryExponentiation:\n    \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n  UnsupportedBind: \"Binding should be performed on object property.\",\n  UnsupportedDecoratorExport:\n    \"A decorated export must export a class declaration\",\n  UnsupportedDefaultExport:\n    \"Only expressions, functions or classes are allowed as the `default` export.\",\n  UnsupportedImport: \"import can only be used in import() or import.meta\",\n  UnsupportedMetaProperty: \"The only valid meta property for %0 is %0.%1\",\n  UnsupportedParameterDecorator:\n    \"Decorators cannot be used to decorate parameters\",\n  UnsupportedPropertyDecorator:\n    \"Decorators cannot be used to decorate object literal properties\",\n  UnsupportedSuper:\n    \"super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])\",\n  UnterminatedComment: \"Unterminated comment\",\n  UnterminatedRegExp: \"Unterminated regular expression\",\n  UnterminatedString: \"Unterminated string constant\",\n  UnterminatedTemplate: \"Unterminated template\",\n  VarRedeclaration: \"Identifier '%0' has already been declared\",\n  YieldBindingIdentifier:\n    \"Can not use 'yield' as identifier inside a generator\",\n  YieldInParameter: \"yield is not allowed in generator parameters\",\n  ZeroDigitNumericSeparator:\n    \"Numeric separator can not be used after leading 0\",\n});\n\nexport default class LocationParser extends CommentsParser {\n  // Forward-declaration: defined in tokenizer/index.js\n  /*::\n  +isLookahead: boolean;\n  */\n\n  getLocationForPosition(pos: number): Position {\n    let loc;\n    if (pos === this.state.start) loc = this.state.startLoc;\n    else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;\n    else if (pos === this.state.end) loc = this.state.endLoc;\n    else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;\n    else loc = getLineInfo(this.input, pos);\n\n    return loc;\n  }\n\n  raise(pos: number, errorTemplate: string, ...params: any): Error | empty {\n    return this.raiseWithData(pos, undefined, errorTemplate, ...params);\n  }\n\n  raiseWithData(\n    pos: number,\n    data?: {\n      missingPlugin?: Array<string>,\n      code?: string,\n    },\n    errorTemplate: string,\n    ...params: any\n  ): Error | empty {\n    const loc = this.getLocationForPosition(pos);\n    const message =\n      errorTemplate.replace(/%(\\d+)/g, (_, i: number) => params[i]) +\n      ` (${loc.line}:${loc.column})`;\n    return this._raise(Object.assign(({ loc, pos }: Object), data), message);\n  }\n\n  _raise(errorContext: ErrorContext, message: string): Error | empty {\n    // $FlowIgnore\n    const err: SyntaxError & ErrorContext = new SyntaxError(message);\n    Object.assign(err, errorContext);\n    if (this.options.errorRecovery) {\n      if (!this.isLookahead) this.state.errors.push(err);\n      return err;\n    } else {\n      throw err;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nfunction isSimpleProperty(node: N.Node): boolean {\n  return (\n    node != null &&\n    node.type === \"Property\" &&\n    node.kind === \"init\" &&\n    node.method === false\n  );\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    estreeParseRegExpLiteral({ pattern, flags }: N.RegExpLiteral): N.Node {\n      let regex = null;\n      try {\n        regex = new RegExp(pattern, flags);\n      } catch (e) {\n        // In environments that don't support these flags value will\n        // be null as the regex can't be represented natively.\n      }\n      const node = this.estreeParseLiteral(regex);\n      node.regex = { pattern, flags };\n\n      return node;\n    }\n\n    estreeParseBigIntLiteral(value: any): N.Node {\n      // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n      // $FlowIgnore\n      const bigInt = typeof BigInt !== \"undefined\" ? BigInt(value) : null;\n      const node = this.estreeParseLiteral(bigInt);\n      node.bigint = String(node.value || value);\n\n      return node;\n    }\n\n    estreeParseLiteral(value: any): N.Node {\n      return this.parseLiteral(value, \"Literal\");\n    }\n\n    directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n      const directiveLiteral = directive.value;\n\n      const stmt = this.startNodeAt(directive.start, directive.loc.start);\n      const expression = this.startNodeAt(\n        directiveLiteral.start,\n        directiveLiteral.loc.start,\n      );\n\n      expression.value = directiveLiteral.value;\n      expression.raw = directiveLiteral.extra.raw;\n\n      stmt.expression = this.finishNodeAt(\n        expression,\n        \"Literal\",\n        directiveLiteral.end,\n        directiveLiteral.loc.end,\n      );\n      stmt.directive = directiveLiteral.extra.raw.slice(1, -1);\n\n      return this.finishNodeAt(\n        stmt,\n        \"ExpressionStatement\",\n        directive.end,\n        directive.loc.end,\n      );\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    initFunction(\n      node: N.BodilessFunctionOrMethodBase,\n      isAsync: ?boolean,\n    ): void {\n      super.initFunction(node, isAsync);\n      node.expression = false;\n    }\n\n    checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n      if (isSimpleProperty(node)) {\n        this.checkDeclaration(((node: any): N.EstreeProperty).value);\n      } else {\n        super.checkDeclaration(node);\n      }\n    }\n\n    checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n      const prop = ((method: any): N.EstreeProperty | N.EstreeMethodDefinition);\n      const paramCount = prop.kind === \"get\" ? 0 : 1;\n      const start = prop.start;\n      if (prop.value.params.length !== paramCount) {\n        if (method.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      } else if (\n        prop.kind === \"set\" &&\n        prop.value.params[0].type === \"RestElement\"\n      ) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n      disallowLetBinding?: boolean,\n    ): void {\n      switch (expr.type) {\n        case \"ObjectPattern\":\n          expr.properties.forEach(prop => {\n            this.checkLVal(\n              prop.type === \"Property\" ? prop.value : prop,\n              bindingType,\n              checkClashes,\n              \"object destructuring pattern\",\n              disallowLetBinding,\n            );\n          });\n          break;\n        default:\n          super.checkLVal(\n            expr,\n            bindingType,\n            checkClashes,\n            contextDescription,\n            disallowLetBinding,\n          );\n      }\n    }\n\n    checkDuplicatedProto(\n      prop: N.ObjectMember | N.SpreadElement,\n      protoRef: { used: boolean },\n      refExpressionErrors: ?ExpressionErrors,\n    ): void {\n      if (\n        prop.type === \"SpreadElement\" ||\n        prop.computed ||\n        prop.method ||\n        // $FlowIgnore\n        prop.shorthand\n      ) {\n        return;\n      }\n\n      const key = prop.key;\n      // It is either an Identifier or a String/NumericLiteral\n      const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n      if (name === \"__proto__\" && prop.kind === \"init\") {\n        // Store the first redefinition's position\n        if (protoRef.used) {\n          if (refExpressionErrors && refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          } else {\n            this.raise(key.start, Errors.DuplicateProto);\n          }\n        }\n\n        protoRef.used = true;\n      }\n    }\n\n    isValidDirective(stmt: N.Statement): boolean {\n      return (\n        stmt.type === \"ExpressionStatement\" &&\n        stmt.expression.type === \"Literal\" &&\n        typeof stmt.expression.value === \"string\" &&\n        (!stmt.expression.extra || !stmt.expression.extra.parenthesized)\n      );\n    }\n\n    stmtToDirective(stmt: N.Statement): N.Directive {\n      const directive = super.stmtToDirective(stmt);\n      const value = stmt.expression.value;\n\n      // Reset value to the actual value as in estree mode we want\n      // the stmt to have the real value and not the raw value\n      directive.value.value = value;\n\n      return directive;\n    }\n\n    parseBlockBody(\n      node: N.BlockStatementLike,\n      allowDirectives: ?boolean,\n      topLevel: boolean,\n      end: TokenType,\n    ): void {\n      super.parseBlockBody(node, allowDirectives, topLevel, end);\n\n      const directiveStatements = node.directives.map(d =>\n        this.directiveToStmt(d),\n      );\n      node.body = directiveStatements.concat(node.body);\n      delete node.directives;\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      );\n      if (method.typeParameters) {\n        // $FlowIgnore\n        method.value.typeParameters = method.typeParameters;\n        delete method.typeParameters;\n      }\n      classBody.body.push(method);\n    }\n\n    parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      switch (this.state.type) {\n        case tt.num:\n        case tt.string:\n          return this.estreeParseLiteral(this.state.value);\n\n        case tt.regexp:\n          return this.estreeParseRegExpLiteral(this.state.value);\n\n        case tt.bigint:\n          return this.estreeParseBigIntLiteral(this.state.value);\n\n        case tt._null:\n          return this.estreeParseLiteral(null);\n\n        case tt._true:\n          return this.estreeParseLiteral(true);\n\n        case tt._false:\n          return this.estreeParseLiteral(false);\n\n        default:\n          return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    parseLiteral<T: N.Literal>(\n      value: any,\n      type: /*T[\"kind\"]*/ string,\n      startPos?: number,\n      startLoc?: Position,\n    ): T {\n      const node = super.parseLiteral(value, type, startPos, startLoc);\n      node.raw = node.extra.raw;\n      delete node.extra;\n\n      return node;\n    }\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpression: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      super.parseFunctionBody(node, allowExpression, isMethod);\n      node.expression = node.body.type !== \"BlockStatement\";\n    }\n\n    parseMethod<T: N.MethodLike>(\n      node: T,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowDirectSuper: boolean,\n      type: string,\n      inClassScope: boolean = false,\n    ): T {\n      let funcNode = this.startNode();\n      funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n      funcNode = super.parseMethod(\n        funcNode,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowDirectSuper,\n        type,\n        inClassScope,\n      );\n      funcNode.type = \"FunctionExpression\";\n      delete funcNode.kind;\n      // $FlowIgnore\n      node.value = funcNode;\n\n      type = type === \"ClassMethod\" ? \"MethodDefinition\" : type;\n      return this.finishNode(node, type);\n    }\n\n    parseObjectMethod(\n      prop: N.ObjectMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      containsEsc: boolean,\n    ): ?N.ObjectMethod {\n      const node: N.EstreeProperty = (super.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ): any);\n\n      if (node) {\n        node.type = \"Property\";\n        if (((node: any): N.ClassMethod).kind === \"method\") node.kind = \"init\";\n        node.shorthand = false;\n      }\n\n      return (node: any);\n    }\n\n    parseObjectProperty(\n      prop: N.ObjectProperty,\n      startPos: ?number,\n      startLoc: ?Position,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n    ): ?N.ObjectProperty {\n      const node: N.EstreeProperty = (super.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      ): any);\n\n      if (node) {\n        node.kind = \"init\";\n        node.type = \"Property\";\n      }\n\n      return (node: any);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (isSimpleProperty(node)) {\n        this.toAssignable(node.value);\n\n        return node;\n      }\n\n      return super.toAssignable(node);\n    }\n\n    toAssignableObjectExpressionProp(prop: N.Node, isLast: boolean) {\n      if (prop.kind === \"get\" || prop.kind === \"set\") {\n        throw this.raise(prop.key.start, Errors.PatternHasAccessor);\n      } else if (prop.method) {\n        throw this.raise(prop.key.start, Errors.PatternHasMethod);\n      } else {\n        super.toAssignableObjectExpressionProp(prop, isLast);\n      }\n    }\n\n    finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n      node: T,\n      optional: boolean,\n    ): N.Expression {\n      super.finishCallExpression(node, optional);\n\n      if (node.callee.type === \"Import\") {\n        ((node: N.Node): N.EstreeImportExpression).type = \"ImportExpression\";\n        ((node: N.Node): N.EstreeImportExpression).source = node.arguments[0];\n        delete node.arguments;\n        delete node.callee;\n      }\n\n      return node;\n    }\n\n    toReferencedListDeep(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): void {\n      // ImportExpressions do not have an arguments array.\n      if (!exprList) {\n        return;\n      }\n\n      super.toReferencedListDeep(exprList, isParenthesizedExpr);\n    }\n\n    parseExport(node: N.Node) {\n      super.parseExport(node);\n\n      switch (node.type) {\n        case \"ExportAllDeclaration\":\n          node.exported = null;\n          break;\n\n        case \"ExportNamedDeclaration\":\n          if (\n            node.specifiers.length === 1 &&\n            node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n          ) {\n            node.type = \"ExportAllDeclaration\";\n            node.exported = node.specifiers[0].exported;\n            delete node.specifiers;\n          }\n\n          break;\n      }\n\n      return node;\n    }\n  };\n","// @flow\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport { types as tt } from \"./types\";\nimport { lineBreak } from \"../util/whitespace\";\n\nexport class TokContext {\n  constructor(\n    token: string,\n    isExpr?: boolean,\n    preserveSpace?: boolean,\n    override?: ?Function, // Takes a Tokenizer as a this-parameter, and returns void.\n  ) {\n    this.token = token;\n    this.isExpr = !!isExpr;\n    this.preserveSpace = !!preserveSpace;\n    this.override = override;\n  }\n\n  token: string;\n  isExpr: boolean;\n  preserveSpace: boolean;\n  override: ?Function;\n}\n\nexport const types: {\n  [key: string]: TokContext,\n} = {\n  braceStatement: new TokContext(\"{\", false),\n  braceExpression: new TokContext(\"{\", true),\n  templateQuasi: new TokContext(\"${\", false),\n  parenStatement: new TokContext(\"(\", false),\n  parenExpression: new TokContext(\"(\", true),\n  template: new TokContext(\"`\", true, true, p => p.readTmplToken()),\n  functionExpression: new TokContext(\"function\", true),\n  functionStatement: new TokContext(\"function\", false),\n};\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.state.context.length === 1) {\n    this.state.exprAllowed = true;\n    return;\n  }\n\n  let out = this.state.context.pop();\n  if (out === types.braceStatement && this.curContext().token === \"function\") {\n    out = this.state.context.pop();\n  }\n\n  this.state.exprAllowed = !out.isExpr;\n};\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false;\n  if (prevType !== tt.dot) {\n    if (\n      (this.state.value === \"of\" && !this.state.exprAllowed) ||\n      (this.state.value === \"yield\" && this.prodParam.hasYield)\n    ) {\n      allowed = true;\n    }\n  }\n  this.state.exprAllowed = allowed;\n\n  if (this.state.isIterator) {\n    this.state.isIterator = false;\n  }\n};\n\ntt.braceL.updateContext = function(prevType) {\n  this.state.context.push(\n    this.braceIsBlock(prevType) ? types.braceStatement : types.braceExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.dollarBraceL.updateContext = function() {\n  this.state.context.push(types.templateQuasi);\n  this.state.exprAllowed = true;\n};\n\ntt.parenL.updateContext = function(prevType) {\n  const statementParens =\n    prevType === tt._if ||\n    prevType === tt._for ||\n    prevType === tt._with ||\n    prevType === tt._while;\n  this.state.context.push(\n    statementParens ? types.parenStatement : types.parenExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n};\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (\n    prevType.beforeExpr &&\n    prevType !== tt.semi &&\n    prevType !== tt._else &&\n    !(\n      prevType === tt._return &&\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) &&\n    !(\n      (prevType === tt.colon || prevType === tt.braceL) &&\n      this.curContext() === types.b_stat\n    )\n  ) {\n    this.state.context.push(types.functionExpression);\n  } else {\n    this.state.context.push(types.functionStatement);\n  }\n\n  this.state.exprAllowed = false;\n};\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.template) {\n    this.state.context.pop();\n  } else {\n    this.state.context.push(types.template);\n  }\n  this.state.exprAllowed = false;\n};\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nconst nonASCIIidentifierStart = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: $ReadOnlyArray<number>): boolean {\n  let pos = 0x10000;\n  for (let i = 0, length = set.length; i < length; i += 2) {\n    pos += set[i];\n    if (pos > code) return false;\n\n    pos += set[i + 1];\n    if (pos >= code) return true;\n  }\n  return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n  if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return (\n      code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n    );\n  }\n  return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n  if (code < charCodes.digit0) return code === charCodes.dollarSign;\n  if (code < charCodes.colon) return true;\n  if (code < charCodes.uppercaseA) return false;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n  }\n  return (\n    isInAstralSet(code, astralIdentifierStartCodes) ||\n    isInAstralSet(code, astralIdentifierCodes)\n  );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n  let isFirst = true;\n  for (const char of Array.from(name)) {\n    const cp = char.codePointAt(0);\n    if (isFirst) {\n      if (!isIdentifierStart(cp)) {\n        return false;\n      }\n      isFirst = false;\n    } else if (!isIdentifierChar(cp)) {\n      return false;\n    }\n  }\n  return true;\n}\n","// @flow\n\nconst reservedWords = {\n  keyword: [\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"continue\",\n    \"debugger\",\n    \"default\",\n    \"do\",\n    \"else\",\n    \"finally\",\n    \"for\",\n    \"function\",\n    \"if\",\n    \"return\",\n    \"switch\",\n    \"throw\",\n    \"try\",\n    \"var\",\n    \"const\",\n    \"while\",\n    \"with\",\n    \"new\",\n    \"this\",\n    \"super\",\n    \"class\",\n    \"extends\",\n    \"export\",\n    \"import\",\n    \"null\",\n    \"true\",\n    \"false\",\n    \"in\",\n    \"instanceof\",\n    \"typeof\",\n    \"void\",\n    \"delete\",\n  ],\n  strict: [\n    \"implements\",\n    \"interface\",\n    \"let\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"static\",\n    \"yield\",\n  ],\n  strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n  return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n  return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n  word: string,\n  inModule: boolean,\n): boolean {\n  return (\n    isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n  );\n}\n\nexport function isKeyword(word: string): boolean {\n  return keywords.has(word);\n}\n","/* eslint max-len: 0 */\n\n// @flow\n\nimport * as charCodes from \"charcodes\";\n\nexport {\n  isIdentifierStart,\n  isIdentifierChar,\n  isReservedWord,\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n  isStrictReservedWord,\n  isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(current: number, next: number): boolean {\n  return current === charCodes.atSign && next === charCodes.atSign;\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type Parser from \"../parser\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport * as N from \"../types\";\nimport type { Options } from \"../options\";\nimport type { Pos, Position } from \"../util/location\";\nimport type State from \"../tokenizer/state\";\nimport { types as tc } from \"../tokenizer/context\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../util/identifier\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_ARROW,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n} from \"../util/scopeflags\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport { Errors } from \"../parser/location\";\n\nconst reservedTypes = new Set([\n  \"_\",\n  \"any\",\n  \"bool\",\n  \"boolean\",\n  \"empty\",\n  \"extends\",\n  \"false\",\n  \"interface\",\n  \"mixed\",\n  \"null\",\n  \"number\",\n  \"static\",\n  \"string\",\n  \"true\",\n  \"typeof\",\n  \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = Object.freeze({\n  AmbiguousConditionalArrow:\n    \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n  AmbiguousDeclareModuleKind:\n    \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module\",\n  AssignReservedType: \"Cannot overwrite reserved type %0\",\n  DeclareClassElement:\n    \"The `declare` modifier can only appear on class fields.\",\n  DeclareClassFieldInitializer:\n    \"Initializers are not allowed in fields with the `declare` modifier.\",\n  DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement\",\n  EnumBooleanMemberNotInitialized:\n    \"Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.\",\n  EnumDuplicateMemberName:\n    \"Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.\",\n  EnumInconsistentMemberValues:\n    \"Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\",\n  EnumInvalidExplicitType:\n    \"Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidExplicitTypeUnknownSupplied:\n    \"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidMemberInitializerPrimaryType:\n    \"Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.\",\n  EnumInvalidMemberInitializerSymbolType:\n    \"Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.\",\n  EnumInvalidMemberInitializerUnknownType:\n    \"The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.\",\n  EnumInvalidMemberName:\n    \"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.\",\n  EnumNumberMemberNotInitialized:\n    \"Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.\",\n  EnumStringMemberInconsistentlyInitailized:\n    \"String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.\",\n  ImportTypeShorthandOnlyInPureImport:\n    \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\",\n  InexactInsideExact:\n    \"Explicit inexact syntax cannot appear inside an explicit exact object type\",\n  InexactInsideNonObject:\n    \"Explicit inexact syntax cannot appear in class or interface definitions\",\n  InexactVariance: \"Explicit inexact syntax cannot have variance\",\n  InvalidNonTypeImportInDeclareModule:\n    \"Imports within a `declare module` body must always be `import type` or `import typeof`\",\n  MissingTypeParamDefault:\n    \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n  NestedDeclareModule:\n    \"`declare module` cannot be used inside another `declare module`\",\n  NestedFlowComment: \"Cannot have a flow comment inside another flow comment\",\n  OptionalBindingPattern:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  SpreadVariance: \"Spread properties cannot have variance\",\n  TypeBeforeInitializer:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  TypeCastInPattern:\n    \"The type cast expression is expected to be wrapped with parenthesis\",\n  UnexpectedExplicitInexactInObject:\n    \"Explicit inexact syntax must appear at the end of an inexact object\",\n  UnexpectedReservedType: \"Unexpected reserved type %0\",\n  UnexpectedReservedUnderscore:\n    \"`_` is only allowed as a type argument to call or new\",\n  UnexpectedSpaceBetweenModuloChecks:\n    \"Spaces between `%` and `checks` are not allowed here.\",\n  UnexpectedSpreadType:\n    \"Spread operator cannot appear in class or interface definitions\",\n  UnexpectedSubtractionOperand:\n    'Unexpected token, expected \"number\" or \"bigint\"',\n  UnexpectedTokenAfterTypeParameter:\n    \"Expected an arrow function after this type parameter declaration\",\n  UnsupportedDeclareExportKind:\n    \"`declare export %0` is not supported. Use `%1` instead\",\n  UnsupportedStatementInDeclareModule:\n    \"Only declares and type imports are allowed inside declare module\",\n  UnterminatedFlowComment: \"Unterminated flow-comment\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n  return (\n    bodyElement.type === \"DeclareExportAllDeclaration\" ||\n    (bodyElement.type === \"DeclareExportDeclaration\" &&\n      (!bodyElement.declaration ||\n        (bodyElement.declaration.type !== \"TypeAlias\" &&\n          bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n  );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n  return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nfunction isMaybeDefaultImport(state: State): boolean {\n  return (\n    (state.type === tt.name || !!state.type.keyword) && state.value !== \"from\"\n  );\n}\n\nconst exportSuggestions = {\n  const: \"declare export var\",\n  let: \"declare export var\",\n  type: \"export type\",\n  interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition<T>(\n  list: T[],\n  test: (T, number, T[]) => ?boolean,\n): [T[], T[]] {\n  const list1 = [];\n  const list2 = [];\n  for (let i = 0; i < list.length; i++) {\n    (test(list[i], i, list) ? list1 : list2).push(list[i]);\n  }\n  return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\ntype EnumContext = {|\n  enumName: string,\n  explicitType: EnumExplicitType,\n  memberName: string,\n|};\ntype EnumMemberInit =\n  | {| type: \"number\", pos: number, value: N.Node |}\n  | {| type: \"string\", pos: number, value: N.Node |}\n  | {| type: \"boolean\", pos: number, value: N.Node |}\n  | {| type: \"invalid\", pos: number |}\n  | {| type: \"none\", pos: number |};\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // The value of the @flow/@noflow pragma. Initially undefined, transitions\n    // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n    // past the initial comment.\n    flowPragma: void | null | \"flow\" | \"noflow\";\n\n    constructor(options: ?Options, input: string) {\n      super(options, input);\n      this.flowPragma = undefined;\n    }\n\n    shouldParseTypes(): boolean {\n      return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n    }\n\n    shouldParseEnums(): boolean {\n      return !!this.getPluginOption(\"flow\", \"enums\");\n    }\n\n    finishToken(type: TokenType, val: any): void {\n      if (\n        type !== tt.string &&\n        type !== tt.semi &&\n        type !== tt.interpreterDirective\n      ) {\n        if (this.flowPragma === undefined) {\n          this.flowPragma = null;\n        }\n      }\n      return super.finishToken(type, val);\n    }\n\n    addComment(comment: N.Comment): void {\n      if (this.flowPragma === undefined) {\n        // Try to parse a flow pragma.\n        const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n        if (!matches) {\n          // do nothing\n        } else if (matches[1] === \"flow\") {\n          this.flowPragma = \"flow\";\n        } else if (matches[1] === \"noflow\") {\n          this.flowPragma = \"noflow\";\n        } else {\n          throw new Error(\"Unexpected flow pragma\");\n        }\n      }\n      return super.addComment(comment);\n    }\n\n    flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tok || tt.colon);\n\n      const type = this.flowParseType();\n      this.state.inType = oldInType;\n      return type;\n    }\n\n    flowParsePredicate(): N.FlowType {\n      const node = this.startNode();\n      const moduloLoc = this.state.startLoc;\n      const moduloPos = this.state.start;\n      this.expect(tt.modulo);\n      const checksLoc = this.state.startLoc;\n      this.expectContextual(\"checks\");\n      // Force '%' and 'checks' to be adjacent\n      if (\n        moduloLoc.line !== checksLoc.line ||\n        moduloLoc.column !== checksLoc.column - 1\n      ) {\n        this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks);\n      }\n      if (this.eat(tt.parenL)) {\n        node.value = this.parseExpression();\n        this.expect(tt.parenR);\n        return this.finishNode(node, \"DeclaredPredicate\");\n      } else {\n        return this.finishNode(node, \"InferredPredicate\");\n      }\n    }\n\n    flowParseTypeAndPredicateInitialiser(): [?N.FlowType, ?N.FlowPredicate] {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tt.colon);\n      let type = null;\n      let predicate = null;\n      if (this.match(tt.modulo)) {\n        this.state.inType = oldInType;\n        predicate = this.flowParsePredicate();\n      } else {\n        type = this.flowParseType();\n        this.state.inType = oldInType;\n        if (this.match(tt.modulo)) {\n          predicate = this.flowParsePredicate();\n        }\n      }\n      return [type, predicate];\n    }\n\n    flowParseDeclareClass(node: N.FlowDeclareClass): N.FlowDeclareClass {\n      this.next();\n      this.flowParseInterfaceish(node, /*isClass*/ true);\n      return this.finishNode(node, \"DeclareClass\");\n    }\n\n    flowParseDeclareFunction(\n      node: N.FlowDeclareFunction,\n    ): N.FlowDeclareFunction {\n      this.next();\n\n      const id = (node.id = this.parseIdentifier());\n\n      const typeNode = this.startNode();\n      const typeContainer = this.startNode();\n\n      if (this.isRelational(\"<\")) {\n        typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        typeNode.typeParameters = null;\n      }\n\n      this.expect(tt.parenL);\n      const tmp = this.flowParseFunctionTypeParams();\n      typeNode.params = tmp.params;\n      typeNode.rest = tmp.rest;\n      this.expect(tt.parenR);\n\n      [\n        // $FlowFixMe (destructuring not supported yet)\n        typeNode.returnType,\n        // $FlowFixMe (destructuring not supported yet)\n        node.predicate,\n      ] = this.flowParseTypeAndPredicateInitialiser();\n\n      typeContainer.typeAnnotation = this.finishNode(\n        typeNode,\n        \"FunctionTypeAnnotation\",\n      );\n\n      id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n      this.resetEndLocation(id);\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareFunction\");\n    }\n\n    flowParseDeclare(\n      node: N.FlowDeclare,\n      insideModule?: boolean,\n    ): N.FlowDeclare {\n      if (this.match(tt._class)) {\n        return this.flowParseDeclareClass(node);\n      } else if (this.match(tt._function)) {\n        return this.flowParseDeclareFunction(node);\n      } else if (this.match(tt._var)) {\n        return this.flowParseDeclareVariable(node);\n      } else if (this.eatContextual(\"module\")) {\n        if (this.match(tt.dot)) {\n          return this.flowParseDeclareModuleExports(node);\n        } else {\n          if (insideModule) {\n            this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule);\n          }\n          return this.flowParseDeclareModule(node);\n        }\n      } else if (this.isContextual(\"type\")) {\n        return this.flowParseDeclareTypeAlias(node);\n      } else if (this.isContextual(\"opaque\")) {\n        return this.flowParseDeclareOpaqueType(node);\n      } else if (this.isContextual(\"interface\")) {\n        return this.flowParseDeclareInterface(node);\n      } else if (this.match(tt._export)) {\n        return this.flowParseDeclareExportDeclaration(node, insideModule);\n      } else {\n        throw this.unexpected();\n      }\n    }\n\n    flowParseDeclareVariable(\n      node: N.FlowDeclareVariable,\n    ): N.FlowDeclareVariable {\n      this.next();\n      node.id = this.flowParseTypeAnnotatableIdentifier(\n        /*allowPrimitiveOverride*/ true,\n      );\n      this.scope.declareName(node.id.name, BIND_VAR, node.id.start);\n      this.semicolon();\n      return this.finishNode(node, \"DeclareVariable\");\n    }\n\n    flowParseDeclareModule(node: N.FlowDeclareModule): N.FlowDeclareModule {\n      this.scope.enter(SCOPE_OTHER);\n\n      if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        node.id = this.parseIdentifier();\n      }\n\n      const bodyNode = (node.body = this.startNode());\n      const body = (bodyNode.body = []);\n      this.expect(tt.braceL);\n      while (!this.match(tt.braceR)) {\n        let bodyNode = this.startNode();\n\n        if (this.match(tt._import)) {\n          this.next();\n          if (!this.isContextual(\"type\") && !this.match(tt._typeof)) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InvalidNonTypeImportInDeclareModule,\n            );\n          }\n          this.parseImport(bodyNode);\n        } else {\n          this.expectContextual(\n            \"declare\",\n            FlowErrors.UnsupportedStatementInDeclareModule,\n          );\n\n          bodyNode = this.flowParseDeclare(bodyNode, true);\n        }\n\n        body.push(bodyNode);\n      }\n\n      this.scope.exit();\n\n      this.expect(tt.braceR);\n\n      this.finishNode(bodyNode, \"BlockStatement\");\n\n      let kind = null;\n      let hasModuleExport = false;\n      body.forEach(bodyElement => {\n        if (isEsModuleType(bodyElement)) {\n          if (kind === \"CommonJS\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"ES\";\n        } else if (bodyElement.type === \"DeclareModuleExports\") {\n          if (hasModuleExport) {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.DuplicateDeclareModuleExports,\n            );\n          }\n          if (kind === \"ES\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"CommonJS\";\n          hasModuleExport = true;\n        }\n      });\n\n      node.kind = kind || \"CommonJS\";\n      return this.finishNode(node, \"DeclareModule\");\n    }\n\n    flowParseDeclareExportDeclaration(\n      node: N.FlowDeclareExportDeclaration,\n      insideModule: ?boolean,\n    ): N.FlowDeclareExportDeclaration {\n      this.expect(tt._export);\n\n      if (this.eat(tt._default)) {\n        if (this.match(tt._function) || this.match(tt._class)) {\n          // declare export default class ...\n          // declare export default function ...\n          node.declaration = this.flowParseDeclare(this.startNode());\n        } else {\n          // declare export default [type];\n          node.declaration = this.flowParseType();\n          this.semicolon();\n        }\n        node.default = true;\n\n        return this.finishNode(node, \"DeclareExportDeclaration\");\n      } else {\n        if (\n          this.match(tt._const) ||\n          this.isLet() ||\n          ((this.isContextual(\"type\") || this.isContextual(\"interface\")) &&\n            !insideModule)\n        ) {\n          const label = this.state.value;\n          const suggestion = exportSuggestions[label];\n          throw this.raise(\n            this.state.start,\n            FlowErrors.UnsupportedDeclareExportKind,\n            label,\n            suggestion,\n          );\n        }\n\n        if (\n          this.match(tt._var) || // declare export var ...\n          this.match(tt._function) || // declare export function ...\n          this.match(tt._class) || // declare export class ...\n          this.isContextual(\"opaque\") // declare export opaque ..\n        ) {\n          node.declaration = this.flowParseDeclare(this.startNode());\n          node.default = false;\n\n          return this.finishNode(node, \"DeclareExportDeclaration\");\n        } else if (\n          this.match(tt.star) || // declare export * from ''\n          this.match(tt.braceL) || // declare export {} ...\n          this.isContextual(\"interface\") || // declare export interface ...\n          this.isContextual(\"type\") || // declare export type ...\n          this.isContextual(\"opaque\") // declare export opaque type ...\n        ) {\n          node = this.parseExport(node);\n          if (node.type === \"ExportNamedDeclaration\") {\n            // flow does not support the ExportNamedDeclaration\n            // $FlowIgnore\n            node.type = \"ExportDeclaration\";\n            // $FlowFixMe\n            node.default = false;\n            delete node.exportKind;\n          }\n\n          // $FlowIgnore\n          node.type = \"Declare\" + node.type;\n\n          return node;\n        }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParseDeclareModuleExports(\n      node: N.FlowDeclareModuleExports,\n    ): N.FlowDeclareModuleExports {\n      this.next();\n      this.expectContextual(\"exports\");\n      node.typeAnnotation = this.flowParseTypeAnnotation();\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareModuleExports\");\n    }\n\n    flowParseDeclareTypeAlias(\n      node: N.FlowDeclareTypeAlias,\n    ): N.FlowDeclareTypeAlias {\n      this.next();\n      this.flowParseTypeAlias(node);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareTypeAlias\";\n      return node;\n    }\n\n    flowParseDeclareOpaqueType(\n      node: N.FlowDeclareOpaqueType,\n    ): N.FlowDeclareOpaqueType {\n      this.next();\n      this.flowParseOpaqueType(node, true);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareOpaqueType\";\n      return node;\n    }\n\n    flowParseDeclareInterface(\n      node: N.FlowDeclareInterface,\n    ): N.FlowDeclareInterface {\n      this.next();\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"DeclareInterface\");\n    }\n\n    // Interfaces\n\n    flowParseInterfaceish(\n      node: N.FlowDeclare,\n      isClass?: boolean = false,\n    ): void {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ !isClass,\n        /* declaration */ true,\n      );\n\n      this.scope.declareName(\n        node.id.name,\n        isClass ? BIND_FUNCTION : BIND_LEXICAL,\n        node.id.start,\n      );\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.extends = [];\n      node.implements = [];\n      node.mixins = [];\n\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (!isClass && this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"mixins\")) {\n        this.next();\n        do {\n          node.mixins.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        do {\n          node.implements.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: isClass,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: isClass,\n        allowInexact: false,\n      });\n    }\n\n    flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n      const node = this.startNode();\n\n      node.id = this.flowParseQualifiedTypeIdentifier();\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      } else {\n        node.typeParameters = null;\n      }\n\n      return this.finishNode(node, \"InterfaceExtends\");\n    }\n\n    flowParseInterface(node: N.FlowInterface): N.FlowInterface {\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"InterfaceDeclaration\");\n    }\n\n    checkNotUnderscore(word: string) {\n      if (word === \"_\") {\n        this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore);\n      }\n    }\n\n    checkReservedType(word: string, startLoc: number, declaration?: boolean) {\n      if (!reservedTypes.has(word)) return;\n\n      this.raise(\n        startLoc,\n        declaration\n          ? FlowErrors.AssignReservedType\n          : FlowErrors.UnexpectedReservedType,\n        word,\n      );\n    }\n\n    flowParseRestrictedIdentifier(\n      liberal?: boolean,\n      declaration?: boolean,\n    ): N.Identifier {\n      this.checkReservedType(this.state.value, this.state.start, declaration);\n      return this.parseIdentifier(liberal);\n    }\n\n    // Type aliases\n\n    flowParseTypeAlias(node: N.FlowTypeAlias): N.FlowTypeAlias {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ false,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.right = this.flowParseTypeInitialiser(tt.eq);\n      this.semicolon();\n\n      return this.finishNode(node, \"TypeAlias\");\n    }\n\n    flowParseOpaqueType(\n      node: N.FlowOpaqueType,\n      declare: boolean,\n    ): N.FlowOpaqueType {\n      this.expectContextual(\"type\");\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ true,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      // Parse the supertype\n      node.supertype = null;\n      if (this.match(tt.colon)) {\n        node.supertype = this.flowParseTypeInitialiser(tt.colon);\n      }\n\n      node.impltype = null;\n      if (!declare) {\n        node.impltype = this.flowParseTypeInitialiser(tt.eq);\n      }\n      this.semicolon();\n\n      return this.finishNode(node, \"OpaqueType\");\n    }\n\n    // Type annotations\n\n    flowParseTypeParameter(requireDefault?: boolean = false): N.TypeParameter {\n      const nodeStart = this.state.start;\n\n      const node = this.startNode();\n\n      const variance = this.flowParseVariance();\n\n      const ident = this.flowParseTypeAnnotatableIdentifier();\n      node.name = ident.name;\n      node.variance = variance;\n      node.bound = ident.typeAnnotation;\n\n      if (this.match(tt.eq)) {\n        this.eat(tt.eq);\n        node.default = this.flowParseType();\n      } else {\n        if (requireDefault) {\n          this.raise(nodeStart, FlowErrors.MissingTypeParamDefault);\n        }\n      }\n\n      return this.finishNode(node, \"TypeParameter\");\n    }\n\n    flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n      const oldInType = this.state.inType;\n      const node = this.startNode();\n      node.params = [];\n\n      this.state.inType = true;\n\n      // istanbul ignore else: this condition is already checked at all call sites\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      let defaultRequired = false;\n\n      do {\n        const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n        node.params.push(typeParameter);\n\n        if (typeParameter.default) {\n          defaultRequired = true;\n        }\n\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      } while (!this.isRelational(\">\"));\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterDeclaration\");\n    }\n\n    flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n      this.state.noAnonFunctionType = false;\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseType());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseTypeOrImplicitInstantiation());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseInterfaceType(): N.FlowInterfaceType {\n      const node = this.startNode();\n      this.expectContextual(\"interface\");\n\n      node.extends = [];\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: false,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: false,\n        allowInexact: false,\n      });\n\n      return this.finishNode(node, \"InterfaceTypeAnnotation\");\n    }\n\n    flowParseObjectPropertyKey(): N.Expression {\n      return this.match(tt.num) || this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(true);\n    }\n\n    flowParseObjectTypeIndexer(\n      node: N.FlowObjectTypeIndexer,\n      isStatic: boolean,\n      variance: ?N.FlowVariance,\n    ): N.FlowObjectTypeIndexer {\n      node.static = isStatic;\n\n      // Note: bracketL has already been consumed\n      if (this.lookahead().type === tt.colon) {\n        node.id = this.flowParseObjectPropertyKey();\n        node.key = this.flowParseTypeInitialiser();\n      } else {\n        node.id = null;\n        node.key = this.flowParseType();\n      }\n      this.expect(tt.bracketR);\n      node.value = this.flowParseTypeInitialiser();\n      node.variance = variance;\n\n      return this.finishNode(node, \"ObjectTypeIndexer\");\n    }\n\n    flowParseObjectTypeInternalSlot(\n      node: N.FlowObjectTypeInternalSlot,\n      isStatic: boolean,\n    ): N.FlowObjectTypeInternalSlot {\n      node.static = isStatic;\n      // Note: both bracketL have already been consumed\n      node.id = this.flowParseObjectPropertyKey();\n      this.expect(tt.bracketR);\n      this.expect(tt.bracketR);\n      if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n        node.method = true;\n        node.optional = false;\n        node.value = this.flowParseObjectTypeMethodish(\n          this.startNodeAt(node.start, node.loc.start),\n        );\n      } else {\n        node.method = false;\n        if (this.eat(tt.question)) {\n          node.optional = true;\n        }\n        node.value = this.flowParseTypeInitialiser();\n      }\n      return this.finishNode(node, \"ObjectTypeInternalSlot\");\n    }\n\n    flowParseObjectTypeMethodish(\n      node: N.FlowFunctionTypeAnnotation,\n    ): N.FlowFunctionTypeAnnotation {\n      node.params = [];\n      node.rest = null;\n      node.typeParameters = null;\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      this.expect(tt.parenL);\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        node.params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n\n      if (this.eat(tt.ellipsis)) {\n        node.rest = this.flowParseFunctionTypeParam();\n      }\n      this.expect(tt.parenR);\n      node.returnType = this.flowParseTypeInitialiser();\n\n      return this.finishNode(node, \"FunctionTypeAnnotation\");\n    }\n\n    flowParseObjectTypeCallProperty(\n      node: N.FlowObjectTypeCallProperty,\n      isStatic: boolean,\n    ): N.FlowObjectTypeCallProperty {\n      const valueNode = this.startNode();\n      node.static = isStatic;\n      node.value = this.flowParseObjectTypeMethodish(valueNode);\n      return this.finishNode(node, \"ObjectTypeCallProperty\");\n    }\n\n    flowParseObjectType({\n      allowStatic,\n      allowExact,\n      allowSpread,\n      allowProto,\n      allowInexact,\n    }: {\n      allowStatic: boolean,\n      allowExact: boolean,\n      allowSpread: boolean,\n      allowProto: boolean,\n      allowInexact: boolean,\n    }): N.FlowObjectTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n\n      const nodeStart = this.startNode();\n\n      nodeStart.callProperties = [];\n      nodeStart.properties = [];\n      nodeStart.indexers = [];\n      nodeStart.internalSlots = [];\n\n      let endDelim;\n      let exact;\n      let inexact = false;\n      if (allowExact && this.match(tt.braceBarL)) {\n        this.expect(tt.braceBarL);\n        endDelim = tt.braceBarR;\n        exact = true;\n      } else {\n        this.expect(tt.braceL);\n        endDelim = tt.braceR;\n        exact = false;\n      }\n\n      nodeStart.exact = exact;\n\n      while (!this.match(endDelim)) {\n        let isStatic = false;\n        let protoStart: ?number = null;\n        let inexactStart: ?number = null;\n        const node = this.startNode();\n\n        if (allowProto && this.isContextual(\"proto\")) {\n          const lookahead = this.lookahead();\n\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            protoStart = this.state.start;\n            allowStatic = false;\n          }\n        }\n\n        if (allowStatic && this.isContextual(\"static\")) {\n          const lookahead = this.lookahead();\n\n          // static is a valid identifier name\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            isStatic = true;\n          }\n        }\n\n        const variance = this.flowParseVariance();\n\n        if (this.eat(tt.bracketL)) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (this.eat(tt.bracketL)) {\n            if (variance) {\n              this.unexpected(variance.start);\n            }\n            nodeStart.internalSlots.push(\n              this.flowParseObjectTypeInternalSlot(node, isStatic),\n            );\n          } else {\n            nodeStart.indexers.push(\n              this.flowParseObjectTypeIndexer(node, isStatic, variance),\n            );\n          }\n        } else if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n          nodeStart.callProperties.push(\n            this.flowParseObjectTypeCallProperty(node, isStatic),\n          );\n        } else {\n          let kind = \"init\";\n\n          if (this.isContextual(\"get\") || this.isContextual(\"set\")) {\n            const lookahead = this.lookahead();\n            if (\n              lookahead.type === tt.name ||\n              lookahead.type === tt.string ||\n              lookahead.type === tt.num\n            ) {\n              kind = this.state.value;\n              this.next();\n            }\n          }\n\n          const propOrInexact = this.flowParseObjectTypeProperty(\n            node,\n            isStatic,\n            protoStart,\n            variance,\n            kind,\n            allowSpread,\n            allowInexact ?? !exact,\n          );\n\n          if (propOrInexact === null) {\n            inexact = true;\n            inexactStart = this.state.lastTokStart;\n          } else {\n            nodeStart.properties.push(propOrInexact);\n          }\n        }\n\n        this.flowObjectTypeSemicolon();\n\n        if (\n          inexactStart &&\n          !this.match(tt.braceR) &&\n          !this.match(tt.braceBarR)\n        ) {\n          this.raise(\n            inexactStart,\n            FlowErrors.UnexpectedExplicitInexactInObject,\n          );\n        }\n      }\n\n      this.expect(endDelim);\n\n      /* The inexact flag should only be added on ObjectTypeAnnotations that\n       * are not the body of an interface, declare interface, or declare class.\n       * Since spreads are only allowed in objec types, checking that is\n       * sufficient here.\n       */\n      if (allowSpread) {\n        nodeStart.inexact = inexact;\n      }\n\n      const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n      this.state.inType = oldInType;\n\n      return out;\n    }\n\n    flowParseObjectTypeProperty(\n      node: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n      isStatic: boolean,\n      protoStart: ?number,\n      variance: ?N.FlowVariance,\n      kind: string,\n      allowSpread: boolean,\n      allowInexact: boolean,\n    ): (N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty) | null {\n      if (this.eat(tt.ellipsis)) {\n        const isInexactToken =\n          this.match(tt.comma) ||\n          this.match(tt.semi) ||\n          this.match(tt.braceR) ||\n          this.match(tt.braceBarR);\n\n        if (isInexactToken) {\n          if (!allowSpread) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InexactInsideNonObject,\n            );\n          } else if (!allowInexact) {\n            this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact);\n          }\n          if (variance) {\n            this.raise(variance.start, FlowErrors.InexactVariance);\n          }\n\n          return null;\n        }\n\n        if (!allowSpread) {\n          this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType);\n        }\n        if (protoStart != null) {\n          this.unexpected(protoStart);\n        }\n        if (variance) {\n          this.raise(variance.start, FlowErrors.SpreadVariance);\n        }\n\n        node.argument = this.flowParseType();\n        return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n      } else {\n        node.key = this.flowParseObjectPropertyKey();\n        node.static = isStatic;\n        node.proto = protoStart != null;\n        node.kind = kind;\n\n        let optional = false;\n        if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n          // This is a method property\n          node.method = true;\n\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n\n          node.value = this.flowParseObjectTypeMethodish(\n            this.startNodeAt(node.start, node.loc.start),\n          );\n          if (kind === \"get\" || kind === \"set\") {\n            this.flowCheckGetterSetterParams(node);\n          }\n        } else {\n          if (kind !== \"init\") this.unexpected();\n\n          node.method = false;\n\n          if (this.eat(tt.question)) {\n            optional = true;\n          }\n          node.value = this.flowParseTypeInitialiser();\n          node.variance = variance;\n        }\n\n        node.optional = optional;\n\n        return this.finishNode(node, \"ObjectTypeProperty\");\n      }\n    }\n\n    // This is similar to checkGetterSetterParams, but as\n    // @babel/parser uses non estree properties we cannot reuse it here\n    flowCheckGetterSetterParams(\n      property: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n    ): void {\n      const paramCount = property.kind === \"get\" ? 0 : 1;\n      const start = property.start;\n      const length =\n        property.value.params.length + (property.value.rest ? 1 : 0);\n      if (length !== paramCount) {\n        if (property.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      }\n\n      if (property.kind === \"set\" && property.value.rest) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    flowObjectTypeSemicolon(): void {\n      if (\n        !this.eat(tt.semi) &&\n        !this.eat(tt.comma) &&\n        !this.match(tt.braceR) &&\n        !this.match(tt.braceBarR)\n      ) {\n        this.unexpected();\n      }\n    }\n\n    flowParseQualifiedTypeIdentifier(\n      startPos?: number,\n      startLoc?: Position,\n      id?: N.Identifier,\n    ): N.FlowQualifiedTypeIdentifier {\n      startPos = startPos || this.state.start;\n      startLoc = startLoc || this.state.startLoc;\n      let node = id || this.flowParseRestrictedIdentifier(true);\n\n      while (this.eat(tt.dot)) {\n        const node2 = this.startNodeAt(startPos, startLoc);\n        node2.qualification = node;\n        node2.id = this.flowParseRestrictedIdentifier(true);\n        node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n      }\n\n      return node;\n    }\n\n    flowParseGenericType(\n      startPos: number,\n      startLoc: Position,\n      id: N.Identifier,\n    ): N.FlowGenericTypeAnnotation {\n      const node = this.startNodeAt(startPos, startLoc);\n\n      node.typeParameters = null;\n      node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      }\n\n      return this.finishNode(node, \"GenericTypeAnnotation\");\n    }\n\n    flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n      const node = this.startNode();\n      this.expect(tt._typeof);\n      node.argument = this.flowParsePrimaryType();\n      return this.finishNode(node, \"TypeofTypeAnnotation\");\n    }\n\n    flowParseTupleType(): N.FlowTupleTypeAnnotation {\n      const node = this.startNode();\n      node.types = [];\n      this.expect(tt.bracketL);\n      // We allow trailing commas\n      while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n        node.types.push(this.flowParseType());\n        if (this.match(tt.bracketR)) break;\n        this.expect(tt.comma);\n      }\n      this.expect(tt.bracketR);\n      return this.finishNode(node, \"TupleTypeAnnotation\");\n    }\n\n    flowParseFunctionTypeParam(): N.FlowFunctionTypeParam {\n      let name = null;\n      let optional = false;\n      let typeAnnotation = null;\n      const node = this.startNode();\n      const lh = this.lookahead();\n      if (lh.type === tt.colon || lh.type === tt.question) {\n        name = this.parseIdentifier();\n        if (this.eat(tt.question)) {\n          optional = true;\n        }\n        typeAnnotation = this.flowParseTypeInitialiser();\n      } else {\n        typeAnnotation = this.flowParseType();\n      }\n      node.name = name;\n      node.optional = optional;\n      node.typeAnnotation = typeAnnotation;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    reinterpretTypeAsFunctionTypeParam(\n      type: N.FlowType,\n    ): N.FlowFunctionTypeParam {\n      const node = this.startNodeAt(type.start, type.loc.start);\n      node.name = null;\n      node.optional = false;\n      node.typeAnnotation = type;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    flowParseFunctionTypeParams(\n      params: N.FlowFunctionTypeParam[] = [],\n    ): { params: N.FlowFunctionTypeParam[], rest: ?N.FlowFunctionTypeParam } {\n      let rest: ?N.FlowFunctionTypeParam = null;\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n      if (this.eat(tt.ellipsis)) {\n        rest = this.flowParseFunctionTypeParam();\n      }\n      return { params, rest };\n    }\n\n    flowIdentToTypeAnnotation(\n      startPos: number,\n      startLoc: Position,\n      node: N.FlowTypeAnnotation,\n      id: N.Identifier,\n    ): N.FlowTypeAnnotation {\n      switch (id.name) {\n        case \"any\":\n          return this.finishNode(node, \"AnyTypeAnnotation\");\n\n        case \"bool\":\n        case \"boolean\":\n          return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n        case \"mixed\":\n          return this.finishNode(node, \"MixedTypeAnnotation\");\n\n        case \"empty\":\n          return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n        case \"number\":\n          return this.finishNode(node, \"NumberTypeAnnotation\");\n\n        case \"string\":\n          return this.finishNode(node, \"StringTypeAnnotation\");\n\n        case \"symbol\":\n          return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n        default:\n          this.checkNotUnderscore(id.name);\n          return this.flowParseGenericType(startPos, startLoc, id);\n      }\n    }\n\n    // The parsing of types roughly parallels the parsing of expressions, and\n    // primary types are kind of like primary expressions...they're the\n    // primitives with which other types are constructed.\n    flowParsePrimaryType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const node = this.startNode();\n      let tmp;\n      let type;\n      let isGroupedType = false;\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n      switch (this.state.type) {\n        case tt.name:\n          if (this.isContextual(\"interface\")) {\n            return this.flowParseInterfaceType();\n          }\n\n          return this.flowIdentToTypeAnnotation(\n            startPos,\n            startLoc,\n            node,\n            this.parseIdentifier(),\n          );\n\n        case tt.braceL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: false,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: true,\n          });\n\n        case tt.braceBarL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: true,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: false,\n          });\n\n        case tt.bracketL:\n          this.state.noAnonFunctionType = false;\n          type = this.flowParseTupleType();\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n          return type;\n\n        case tt.relational:\n          if (this.state.value === \"<\") {\n            node.typeParameters = this.flowParseTypeParameterDeclaration();\n            this.expect(tt.parenL);\n            tmp = this.flowParseFunctionTypeParams();\n            node.params = tmp.params;\n            node.rest = tmp.rest;\n            this.expect(tt.parenR);\n\n            this.expect(tt.arrow);\n\n            node.returnType = this.flowParseType();\n\n            return this.finishNode(node, \"FunctionTypeAnnotation\");\n          }\n          break;\n\n        case tt.parenL:\n          this.next();\n\n          // Check to see if this is actually a grouped type\n          if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n            if (this.match(tt.name)) {\n              const token = this.lookahead().type;\n              isGroupedType = token !== tt.question && token !== tt.colon;\n            } else {\n              isGroupedType = true;\n            }\n          }\n\n          if (isGroupedType) {\n            this.state.noAnonFunctionType = false;\n            type = this.flowParseType();\n            this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n            // A `,` or a `) =>` means this is an anonymous function type\n            if (\n              this.state.noAnonFunctionType ||\n              !(\n                this.match(tt.comma) ||\n                (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n              )\n            ) {\n              this.expect(tt.parenR);\n              return type;\n            } else {\n              // Eat a comma if there is one\n              this.eat(tt.comma);\n            }\n          }\n\n          if (type) {\n            tmp = this.flowParseFunctionTypeParams([\n              this.reinterpretTypeAsFunctionTypeParam(type),\n            ]);\n          } else {\n            tmp = this.flowParseFunctionTypeParams();\n          }\n\n          node.params = tmp.params;\n          node.rest = tmp.rest;\n\n          this.expect(tt.parenR);\n\n          this.expect(tt.arrow);\n\n          node.returnType = this.flowParseType();\n\n          node.typeParameters = null;\n\n          return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n        case tt.string:\n          return this.parseLiteral(\n            this.state.value,\n            \"StringLiteralTypeAnnotation\",\n          );\n\n        case tt._true:\n        case tt._false:\n          node.value = this.match(tt._true);\n          this.next();\n          return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            this.next();\n            if (this.match(tt.num)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"NumberLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            if (this.match(tt.bigint)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"BigIntLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            throw this.raise(\n              this.state.start,\n              FlowErrors.UnexpectedSubtractionOperand,\n            );\n          }\n\n          throw this.unexpected();\n        case tt.num:\n          return this.parseLiteral(\n            this.state.value,\n            \"NumberLiteralTypeAnnotation\",\n          );\n\n        case tt.bigint:\n          return this.parseLiteral(\n            this.state.value,\n            \"BigIntLiteralTypeAnnotation\",\n          );\n\n        case tt._void:\n          this.next();\n          return this.finishNode(node, \"VoidTypeAnnotation\");\n\n        case tt._null:\n          this.next();\n          return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n        case tt._this:\n          this.next();\n          return this.finishNode(node, \"ThisTypeAnnotation\");\n\n        case tt.star:\n          this.next();\n          return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n        default:\n          if (this.state.type.keyword === \"typeof\") {\n            return this.flowParseTypeofType();\n          } else if (this.state.type.keyword) {\n            const label = this.state.type.label;\n            this.next();\n            return super.createIdentifier(node, label);\n          }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParsePostfixType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start,\n        startLoc = this.state.startLoc;\n      let type = this.flowParsePrimaryType();\n      while (this.match(tt.bracketL) && !this.canInsertSemicolon()) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.elementType = type;\n        this.expect(tt.bracketL);\n        this.expect(tt.bracketR);\n        type = this.finishNode(node, \"ArrayTypeAnnotation\");\n      }\n      return type;\n    }\n\n    flowParsePrefixType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      if (this.eat(tt.question)) {\n        node.typeAnnotation = this.flowParsePrefixType();\n        return this.finishNode(node, \"NullableTypeAnnotation\");\n      } else {\n        return this.flowParsePostfixType();\n      }\n    }\n\n    flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n      const param = this.flowParsePrefixType();\n      if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n        // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n        const node = this.startNodeAt(param.start, param.loc.start);\n        node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n        node.rest = null;\n        node.returnType = this.flowParseType();\n        node.typeParameters = null;\n        return this.finishNode(node, \"FunctionTypeAnnotation\");\n      }\n      return param;\n    }\n\n    flowParseIntersectionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseAND);\n      const type = this.flowParseAnonFunctionWithoutParens();\n      node.types = [type];\n      while (this.eat(tt.bitwiseAND)) {\n        node.types.push(this.flowParseAnonFunctionWithoutParens());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"IntersectionTypeAnnotation\");\n    }\n\n    flowParseUnionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseOR);\n      const type = this.flowParseIntersectionType();\n      node.types = [type];\n      while (this.eat(tt.bitwiseOR)) {\n        node.types.push(this.flowParseIntersectionType());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"UnionTypeAnnotation\");\n    }\n\n    flowParseType(): N.FlowTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      const type = this.flowParseUnionType();\n      this.state.inType = oldInType;\n      // Ensure that a brace after a function generic type annotation is a\n      // statement, except in arrow functions (noAnonFunctionType)\n      this.state.exprAllowed =\n        this.state.exprAllowed || this.state.noAnonFunctionType;\n      return type;\n    }\n\n    flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n      if (this.state.type === tt.name && this.state.value === \"_\") {\n        const startPos = this.state.start;\n        const startLoc = this.state.startLoc;\n        const node = this.parseIdentifier();\n        return this.flowParseGenericType(startPos, startLoc, node);\n      } else {\n        return this.flowParseType();\n      }\n    }\n\n    flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      node.typeAnnotation = this.flowParseTypeInitialiser();\n      return this.finishNode(node, \"TypeAnnotation\");\n    }\n\n    flowParseTypeAnnotatableIdentifier(\n      allowPrimitiveOverride?: boolean,\n    ): N.Identifier {\n      const ident = allowPrimitiveOverride\n        ? this.parseIdentifier()\n        : this.flowParseRestrictedIdentifier();\n      if (this.match(tt.colon)) {\n        ident.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(ident);\n      }\n      return ident;\n    }\n\n    typeCastToParameter(node: N.Node): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    flowParseVariance(): ?N.FlowVariance {\n      let variance = null;\n      if (this.match(tt.plusMin)) {\n        variance = this.startNode();\n        if (this.state.value === \"+\") {\n          variance.kind = \"plus\";\n        } else {\n          variance.kind = \"minus\";\n        }\n        this.next();\n        this.finishNode(variance, \"Variance\");\n      }\n      return variance;\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpressionBody: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      if (allowExpressionBody) {\n        return this.forwardNoArrowParamsConversionAt(node, () =>\n          super.parseFunctionBody(node, true, isMethod),\n        );\n      }\n\n      return super.parseFunctionBody(node, false, isMethod);\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        const typeNode = this.startNode();\n\n        [\n          // $FlowFixMe (destructuring not supported yet)\n          typeNode.typeAnnotation,\n          // $FlowFixMe (destructuring not supported yet)\n          node.predicate,\n        ] = this.flowParseTypeAndPredicateInitialiser();\n\n        node.returnType = typeNode.typeAnnotation\n          ? this.finishNode(typeNode, \"TypeAnnotation\")\n          : null;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    // interfaces and enums\n    parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n      // strict mode handling of `interface` since it's a reserved word\n      if (\n        this.state.strict &&\n        this.match(tt.name) &&\n        this.state.value === \"interface\"\n      ) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseInterface(node);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      } else {\n        const stmt = super.parseStatement(context, topLevel);\n        // We will parse a flow pragma in any comment before the first statement.\n        if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n          this.flowPragma = null;\n        }\n        return stmt;\n      }\n    }\n\n    // declares, interfaces and type aliases\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.ExpressionStatement {\n      if (expr.type === \"Identifier\") {\n        if (expr.name === \"declare\") {\n          if (\n            this.match(tt._class) ||\n            this.match(tt.name) ||\n            this.match(tt._function) ||\n            this.match(tt._var) ||\n            this.match(tt._export)\n          ) {\n            return this.flowParseDeclare(node);\n          }\n        } else if (this.match(tt.name)) {\n          if (expr.name === \"interface\") {\n            return this.flowParseInterface(node);\n          } else if (expr.name === \"type\") {\n            return this.flowParseTypeAlias(node);\n          } else if (expr.name === \"opaque\") {\n            return this.flowParseOpaqueType(node, false);\n          }\n        }\n      }\n\n      return super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    shouldParseExportDeclaration(): boolean {\n      return (\n        this.isContextual(\"type\") ||\n        this.isContextual(\"interface\") ||\n        this.isContextual(\"opaque\") ||\n        (this.shouldParseEnums() && this.isContextual(\"enum\")) ||\n        super.shouldParseExportDeclaration()\n      );\n    }\n\n    isExportDefaultSpecifier(): boolean {\n      if (\n        this.match(tt.name) &&\n        (this.state.value === \"type\" ||\n          this.state.value === \"interface\" ||\n          this.state.value === \"opaque\" ||\n          (this.shouldParseEnums() && this.state.value === \"enum\"))\n      ) {\n        return false;\n      }\n\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      }\n      return super.parseExportDefaultExpression();\n    }\n\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      if (!this.match(tt.question)) return expr;\n\n      // only use the expensive \"tryParse\" method if there is a question mark\n      // and if we come from inside parens\n      if (refNeedsArrowPos) {\n        const result = this.tryParse(() =>\n          super.parseConditional(expr, noIn, startPos, startLoc),\n        );\n\n        if (!result.node) {\n          // $FlowIgnore\n          refNeedsArrowPos.start = result.error.pos || this.state.start;\n          return expr;\n        }\n\n        if (result.error) this.state = result.failState;\n        return result.node;\n      }\n\n      this.expect(tt.question);\n      const state = this.state.clone();\n      const originalNoArrowAt = this.state.noArrowAt;\n      const node = this.startNodeAt(startPos, startLoc);\n      let { consequent, failed } = this.tryParseConditionalConsequent();\n      let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n      if (failed || invalid.length > 0) {\n        const noArrowAt = [...originalNoArrowAt];\n\n        if (invalid.length > 0) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt;\n\n          for (let i = 0; i < invalid.length; i++) {\n            noArrowAt.push(invalid[i].start);\n          }\n\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n          [valid, invalid] = this.getArrowLikeExpressions(consequent);\n        }\n\n        if (failed && valid.length > 1) {\n          // if there are two or more possible correct ways of parsing, throw an\n          // error.\n          // e.g.   Source: a ? (b): c => (d): e => f\n          //      Result 1: a ? b : (c => ((d): e => f))\n          //      Result 2: a ? ((b): c => d) : (e => f)\n          this.raise(state.start, FlowErrors.AmbiguousConditionalArrow);\n        }\n\n        if (failed && valid.length === 1) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt.concat(valid[0].start);\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n        }\n      }\n\n      this.getArrowLikeExpressions(consequent, true);\n\n      this.state.noArrowAt = originalNoArrowAt;\n      this.expect(tt.colon);\n\n      node.test = expr;\n      node.consequent = consequent;\n      node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n        this.parseMaybeAssign(noIn, undefined, undefined, undefined),\n      );\n\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n\n    tryParseConditionalConsequent(): {\n      consequent: N.Expression,\n      failed: boolean,\n    } {\n      this.state.noArrowParamsConversionAt.push(this.state.start);\n\n      const consequent = this.parseMaybeAssign();\n      const failed = !this.match(tt.colon);\n\n      this.state.noArrowParamsConversionAt.pop();\n\n      return { consequent, failed };\n    }\n\n    // Given an expression, walks through out its arrow functions whose body is\n    // an expression and through out conditional expressions. It returns every\n    // function which has been parsed with a return type but could have been\n    // parenthesized expressions.\n    // These functions are separated into two arrays: one containing the ones\n    // whose parameters can be converted to assignable lists, one containing the\n    // others.\n    getArrowLikeExpressions(\n      node: N.Expression,\n      disallowInvalid?: boolean,\n    ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n      const stack = [node];\n      const arrows: N.ArrowFunctionExpression[] = [];\n\n      while (stack.length !== 0) {\n        const node = stack.pop();\n        if (node.type === \"ArrowFunctionExpression\") {\n          if (node.typeParameters || !node.returnType) {\n            // This is an arrow expression without ambiguity, so check its parameters\n            this.finishArrowValidation(node);\n          } else {\n            arrows.push(node);\n          }\n          stack.push(node.body);\n        } else if (node.type === \"ConditionalExpression\") {\n          stack.push(node.consequent);\n          stack.push(node.alternate);\n        }\n      }\n\n      if (disallowInvalid) {\n        arrows.forEach(node => this.finishArrowValidation(node));\n        return [arrows, []];\n      }\n\n      return partition(arrows, node =>\n        node.params.every(param => this.isAssignable(param, true)),\n      );\n    }\n\n    finishArrowValidation(node: N.ArrowFunctionExpression) {\n      this.toAssignableList(\n        // node.params is Expression[] instead of $ReadOnlyArray<Pattern> because it\n        // has not been converted yet.\n        ((node.params: any): N.Expression[]),\n        node.extra?.trailingComma,\n      );\n      // Enter scope, as checkParams defines bindings\n      this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n      // Use super's method to force the parameters to be checked\n      super.checkParams(node, false, true);\n      this.scope.exit();\n    }\n\n    forwardNoArrowParamsConversionAt<T>(node: N.Node, parse: () => T): T {\n      let result: T;\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        this.state.noArrowParamsConversionAt.push(this.state.start);\n        result = parse();\n        this.state.noArrowParamsConversionAt.pop();\n      } else {\n        result = parse();\n      }\n\n      return result;\n    }\n\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode = this.startNodeAt(startPos, startLoc);\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    assertModuleNodeAllowed(node: N.Node) {\n      if (\n        (node.type === \"ImportDeclaration\" &&\n          (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n        (node.type === \"ExportNamedDeclaration\" &&\n          node.exportKind === \"type\") ||\n        (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n      ) {\n        // Allow Flowtype imports and exports in all conditions because\n        // Flow itself does not care about 'sourceType'.\n        return;\n      }\n\n      super.assertModuleNodeAllowed(node);\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      const decl = super.parseExport(node);\n      if (\n        decl.type === \"ExportNamedDeclaration\" ||\n        decl.type === \"ExportAllDeclaration\"\n      ) {\n        decl.exportKind = decl.exportKind || \"value\";\n      }\n      return decl;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      if (this.isContextual(\"type\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n\n        if (this.match(tt.braceL)) {\n          // export type { foo, bar };\n          node.specifiers = this.parseExportSpecifiers();\n          this.parseExportFrom(node);\n          return null;\n        } else {\n          // export type Foo = Bar;\n          return this.flowParseTypeAlias(declarationNode);\n        }\n      } else if (this.isContextual(\"opaque\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n        // export opaque type Foo = Bar;\n        return this.flowParseOpaqueType(declarationNode, false);\n      } else if (this.isContextual(\"interface\")) {\n        node.exportKind = \"type\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseInterface(declarationNode);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        node.exportKind = \"value\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(declarationNode);\n      } else {\n        return super.parseExportDeclaration(node);\n      }\n    }\n\n    eatExportStar(node: N.Node): boolean {\n      if (super.eatExportStar(...arguments)) return true;\n\n      if (this.isContextual(\"type\") && this.lookahead().type === tt.star) {\n        node.exportKind = \"type\";\n        this.next();\n        this.next();\n        return true;\n      }\n\n      return false;\n    }\n\n    maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n      const pos = this.state.start;\n      const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n      if (hasNamespace && node.exportKind === \"type\") {\n        this.unexpected(pos);\n      }\n      return hasNamespace;\n    }\n\n    parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) {\n      super.parseClassId(node, isStatement, optionalId);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      const pos = this.state.start;\n      if (this.isContextual(\"declare\")) {\n        if (this.parseClassMemberFromModifier(classBody, member)) {\n          // 'declare' is a class element name\n          return;\n        }\n\n        member.declare = true;\n      }\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n      if (member.declare) {\n        if (\n          member.type !== \"ClassProperty\" &&\n          member.type !== \"ClassPrivateProperty\"\n        ) {\n          this.raise(pos, FlowErrors.DeclareClassElement);\n        } else if (member.value) {\n          this.raise(\n            member.value.start,\n            FlowErrors.DeclareClassFieldInitializer,\n          );\n        }\n      }\n    }\n\n    // ensure that inside flow types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n        return this.finishOp(tt.braceBarL, 2);\n      } else if (\n        this.state.inType &&\n        (code === charCodes.greaterThan || code === charCodes.lessThan)\n      ) {\n        return this.finishOp(tt.relational, 1);\n      } else if (isIteratorStart(code, next)) {\n        this.state.isIterator = true;\n        return super.readWord();\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    isAssignable(node: N.Node, isBinding?: boolean): boolean {\n      switch (node.type) {\n        case \"Identifier\":\n        case \"ObjectPattern\":\n        case \"ArrayPattern\":\n        case \"AssignmentPattern\":\n          return true;\n\n        case \"ObjectExpression\": {\n          const last = node.properties.length - 1;\n          return node.properties.every((prop, i) => {\n            return (\n              prop.type !== \"ObjectMethod\" &&\n              (i === last || prop.type === \"SpreadElement\") &&\n              this.isAssignable(prop)\n            );\n          });\n        }\n\n        case \"ObjectProperty\":\n          return this.isAssignable(node.value);\n\n        case \"SpreadElement\":\n          return this.isAssignable(node.argument);\n\n        case \"ArrayExpression\":\n          return node.elements.every(element => this.isAssignable(element));\n\n        case \"AssignmentExpression\":\n          return node.operator === \"=\";\n\n        case \"ParenthesizedExpression\":\n        case \"TypeCastExpression\":\n          return this.isAssignable(node.expression);\n\n        case \"MemberExpression\":\n        case \"OptionalMemberExpression\":\n          return !isBinding;\n\n        default:\n          return false;\n      }\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (node.type === \"TypeCastExpression\") {\n        return super.toAssignable(this.typeCastToParameter(node));\n      } else {\n        return super.toAssignable(node);\n      }\n    }\n\n    // turn type casts that we found in function parameter head into type annotated params\n    toAssignableList(\n      exprList: N.Expression[],\n      trailingCommaPos?: ?number,\n    ): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TypeCastExpression\") {\n          exprList[i] = this.typeCastToParameter(expr);\n        }\n      }\n      return super.toAssignableList(exprList, trailingCommaPos);\n    }\n\n    // this is a list of nodes, from something like a call expression, we need to filter the\n    // type casts that we've found that are illegal in this context\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (\n          expr &&\n          expr.type === \"TypeCastExpression\" &&\n          (!expr.extra || !expr.extra.parenthesized) &&\n          (exprList.length > 1 || !isParenthesizedExpr)\n        ) {\n          this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern);\n        }\n      }\n\n      return exprList;\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      if (expr.type !== \"TypeCastExpression\") {\n        return super.checkLVal(\n          expr,\n          bindingType,\n          checkClashes,\n          contextDescription,\n        );\n      }\n    }\n\n    // parse class property type annotations\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassPrivateProperty(node);\n    }\n\n    // determine whether or not we're currently in the position where a class method would appear\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    // determine whether or not we're currently in the position where a class property would appear\n    isClassProperty(): boolean {\n      return this.match(tt.colon) || super.isClassProperty();\n    }\n\n    isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n      return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n    }\n\n    // parse type parameters for class methods\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    // parse a the super class type parameters and implements\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n      }\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        const implemented: N.FlowClassImplements[] = (node.implements = []);\n        do {\n          const node = this.startNode();\n          node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n          if (this.isRelational(\"<\")) {\n            node.typeParameters = this.flowParseTypeParameterInstantiation();\n          } else {\n            node.typeParameters = null;\n          }\n          implemented.push(this.finishNode(node, \"ClassImplements\"));\n        } while (this.eat(tt.comma));\n      }\n    }\n\n    parsePropertyName(\n      node: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n      isPrivateNameAllowed: boolean,\n    ): N.Identifier {\n      const variance = this.flowParseVariance();\n      const key = super.parsePropertyName(node, isPrivateNameAllowed);\n      // $FlowIgnore (\"variance\" not defined on TsNamedTypeElementBase)\n      node.variance = variance;\n      return key;\n    }\n\n    // parse type parameters for object method shorthand\n    parseObjPropValue(\n      prop: N.ObjectMember,\n      startPos: ?number,\n      startLoc: ?Position,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n      containsEsc: boolean,\n    ): void {\n      if ((prop: $FlowFixMe).variance) {\n        this.unexpected((prop: $FlowFixMe).variance.start);\n      }\n      delete (prop: $FlowFixMe).variance;\n\n      let typeParameters;\n\n      // method shorthand\n      if (this.isRelational(\"<\")) {\n        typeParameters = this.flowParseTypeParameterDeclaration();\n        if (!this.match(tt.parenL)) this.unexpected();\n      }\n\n      super.parseObjPropValue(\n        prop,\n        startPos,\n        startLoc,\n        isGenerator,\n        isAsync,\n        isPattern,\n        refExpressionErrors,\n        containsEsc,\n      );\n\n      // add typeParameters if we found them\n      if (typeParameters) {\n        (prop.value || prop).typeParameters = typeParameters;\n      }\n    }\n\n    parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, FlowErrors.OptionalBindingPattern);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      if (this.match(tt.colon)) {\n        param.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      this.resetEndLocation(param);\n      return param;\n    }\n\n    parseMaybeDefault(\n      startPos?: ?number,\n      startLoc?: ?Position,\n      left?: ?N.Pattern,\n    ): N.Pattern {\n      const node = super.parseMaybeDefault(startPos, startLoc, left);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer);\n      }\n\n      return node;\n    }\n\n    shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n      if (!hasTypeImportKind(node)) {\n        return super.shouldParseDefaultImport(node);\n      }\n\n      return isMaybeDefaultImport(this.state);\n    }\n\n    parseImportSpecifierLocal(\n      node: N.ImportDeclaration,\n      specifier: N.Node,\n      type: string,\n      contextDescription: string,\n    ): void {\n      specifier.local = hasTypeImportKind(node)\n        ? this.flowParseRestrictedIdentifier(\n            /* liberal */ true,\n            /* declaration */ true,\n          )\n        : this.parseIdentifier();\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        contextDescription,\n      );\n      node.specifiers.push(this.finishNode(specifier, type));\n    }\n\n    // parse typeof and type imports\n    maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n      node.importKind = \"value\";\n\n      let kind = null;\n      if (this.match(tt._typeof)) {\n        kind = \"typeof\";\n      } else if (this.isContextual(\"type\")) {\n        kind = \"type\";\n      }\n      if (kind) {\n        const lh = this.lookahead();\n\n        // import type * is not allowed\n        if (kind === \"type\" && lh.type === tt.star) {\n          this.unexpected(lh.start);\n        }\n\n        if (\n          isMaybeDefaultImport(lh) ||\n          lh.type === tt.braceL ||\n          lh.type === tt.star\n        ) {\n          this.next();\n          node.importKind = kind;\n        }\n      }\n\n      return super.maybeParseDefaultImportSpecifier(node);\n    }\n\n    // parse import-type/typeof shorthand\n    parseImportSpecifier(node: N.ImportDeclaration): void {\n      const specifier = this.startNode();\n      const firstIdentLoc = this.state.start;\n      const firstIdent = this.parseIdentifier(true);\n\n      let specifierTypeKind = null;\n      if (firstIdent.name === \"type\") {\n        specifierTypeKind = \"type\";\n      } else if (firstIdent.name === \"typeof\") {\n        specifierTypeKind = \"typeof\";\n      }\n\n      let isBinding = false;\n      if (this.isContextual(\"as\") && !this.isLookaheadContextual(\"as\")) {\n        const as_ident = this.parseIdentifier(true);\n        if (\n          specifierTypeKind !== null &&\n          !this.match(tt.name) &&\n          !this.state.type.keyword\n        ) {\n          // `import {type as ,` or `import {type as }`\n          specifier.imported = as_ident;\n          specifier.importKind = specifierTypeKind;\n          specifier.local = as_ident.__clone();\n        } else {\n          // `import {type as foo`\n          specifier.imported = firstIdent;\n          specifier.importKind = null;\n          specifier.local = this.parseIdentifier();\n        }\n      } else if (\n        specifierTypeKind !== null &&\n        (this.match(tt.name) || this.state.type.keyword)\n      ) {\n        // `import {type foo`\n        specifier.imported = this.parseIdentifier(true);\n        specifier.importKind = specifierTypeKind;\n        if (this.eatContextual(\"as\")) {\n          specifier.local = this.parseIdentifier();\n        } else {\n          isBinding = true;\n          specifier.local = specifier.imported.__clone();\n        }\n      } else {\n        isBinding = true;\n        specifier.imported = firstIdent;\n        specifier.importKind = null;\n        specifier.local = specifier.imported.__clone();\n      }\n\n      const nodeIsTypeImport = hasTypeImportKind(node);\n      const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n      if (nodeIsTypeImport && specifierIsTypeImport) {\n        this.raise(\n          firstIdentLoc,\n          FlowErrors.ImportTypeShorthandOnlyInPureImport,\n        );\n      }\n\n      if (nodeIsTypeImport || specifierIsTypeImport) {\n        this.checkReservedType(\n          specifier.local.name,\n          specifier.local.start,\n          /* declaration */ true,\n        );\n      }\n\n      if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) {\n        this.checkReservedWord(\n          specifier.local.name,\n          specifier.start,\n          true,\n          true,\n        );\n      }\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        \"import specifier\",\n      );\n      node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n    }\n\n    // parse function type parameters - function foo<T>() {}\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      // $FlowFixMe\n      const kind = node.kind;\n      if (kind !== \"get\" && kind !== \"set\" && this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // parse flow type annotations on variable declarator heads - let foo: string = bar\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (this.match(tt.colon)) {\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n        this.state.noAnonFunctionType = true;\n        node.returnType = this.flowParseTypeAnnotation();\n        this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      }\n\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    // todo description\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    // We need to support type parameter declarations for arrow functions. This\n    // is tricky. There are three situations we need to handle\n    //\n    // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n    //    fails, we'll try an arrow function. If that fails, we'll throw the JSX\n    //    error.\n    // 2. This is an arrow function. We'll parse the type parameter declaration,\n    //    parse the rest, make sure the rest is an arrow function, and go from\n    //    there\n    // 3. This is neither. Just call the super method\n    parseMaybeAssign(\n      noIn?: ?boolean,\n      refExpressionErrors?: ?ExpressionErrors,\n      afterLeftParse?: Function,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      let state = null;\n\n      let jsx;\n\n      if (\n        this.hasPlugin(\"jsx\") &&\n        (this.match(tt.jsxTagStart) || this.isRelational(\"<\"))\n      ) {\n        state = this.state.clone();\n\n        jsx = this.tryParse(\n          () =>\n            super.parseMaybeAssign(\n              noIn,\n              refExpressionErrors,\n              afterLeftParse,\n              refNeedsArrowPos,\n            ),\n          state,\n        );\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === tc.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === tc.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if ((jsx && jsx.error) || this.isRelational(\"<\")) {\n        state = state || this.state.clone();\n\n        let typeParameters;\n\n        const arrow = this.tryParse(() => {\n          typeParameters = this.flowParseTypeParameterDeclaration();\n\n          const arrowExpression = this.forwardNoArrowParamsConversionAt(\n            typeParameters,\n            () =>\n              super.parseMaybeAssign(\n                noIn,\n                refExpressionErrors,\n                afterLeftParse,\n                refNeedsArrowPos,\n              ),\n          );\n          arrowExpression.typeParameters = typeParameters;\n          this.resetStartLocationFromNode(arrowExpression, typeParameters);\n\n          return arrowExpression;\n        }, state);\n\n        const arrowExpression: ?N.ArrowFunctionExpression =\n          arrow.node && arrow.node.type === \"ArrowFunctionExpression\"\n            ? arrow.node\n            : null;\n\n        if (!arrow.error && arrowExpression) return arrowExpression;\n\n        // If we are here, both JSX and Flow parsing attemps failed.\n        // Give the precedence to the JSX error, except if JSX had an\n        // unrecoverable error while Flow didn't.\n        // If the error is recoverable, we can only re-report it if there is\n        // a node we can return.\n\n        if (jsx && jsx.node) {\n          /*:: invariant(jsx.failState) */\n          this.state = jsx.failState;\n          return jsx.node;\n        }\n\n        if (arrowExpression) {\n          /*:: invariant(arrow.failState) */\n          this.state = arrow.failState;\n          return arrowExpression;\n        }\n\n        if (jsx && jsx.thrown) throw jsx.error;\n        if (arrow.thrown) throw arrow.error;\n\n        /*:: invariant(typeParameters) */\n        throw this.raise(\n          typeParameters.start,\n          FlowErrors.UnexpectedTokenAfterTypeParameter,\n        );\n      }\n\n      return super.parseMaybeAssign(\n        noIn,\n        refExpressionErrors,\n        afterLeftParse,\n        refNeedsArrowPos,\n      );\n    }\n\n    // handle return types for arrow functions\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const result = this.tryParse(() => {\n          const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n          this.state.noAnonFunctionType = true;\n\n          const typeNode = this.startNode();\n\n          [\n            // $FlowFixMe (destructuring not supported yet)\n            typeNode.typeAnnotation,\n            // $FlowFixMe (destructuring not supported yet)\n            node.predicate,\n          ] = this.flowParseTypeAndPredicateInitialiser();\n\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n          if (this.canInsertSemicolon()) this.unexpected();\n          if (!this.match(tt.arrow)) this.unexpected();\n\n          return typeNode;\n        });\n\n        if (result.thrown) return null;\n        /*:: invariant(result.node) */\n\n        if (result.error) this.state = result.failState;\n\n        // assign after it is clear it is an arrow\n        node.returnType = result.node.typeAnnotation\n          ? this.finishNode(result.node, \"TypeAnnotation\")\n          : null;\n      }\n\n      return super.parseArrow(node);\n    }\n\n    shouldParseArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    setArrowFunctionParameters(\n      node: N.ArrowFunctionExpression,\n      params: N.Expression[],\n    ): void {\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        node.params = params;\n      } else {\n        super.setArrowFunctionParameters(node, params);\n      }\n    }\n\n    checkParams(\n      node: N.Function,\n      allowDuplicates: boolean,\n      isArrowFunction: ?boolean,\n    ): void {\n      if (\n        isArrowFunction &&\n        this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n      ) {\n        return;\n      }\n\n      return super.checkParams(...arguments);\n    }\n\n    parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n      return super.parseParenAndDistinguishExpression(\n        canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n      );\n    }\n\n    parseSubscripts(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls?: ?boolean,\n    ): N.Expression {\n      if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.state.noArrowAt.indexOf(startPos) !== -1\n      ) {\n        this.next();\n\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        base = this.finishNode(node, \"CallExpression\");\n      } else if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.isRelational(\"<\")\n      ) {\n        const state = this.state.clone();\n        const arrow = this.tryParse(\n          abort =>\n            this.parseAsyncArrowWithTypeParameters(startPos, startLoc) ||\n            abort(),\n          state,\n        );\n\n        if (!arrow.error && !arrow.aborted) return arrow.node;\n\n        const result = this.tryParse(\n          () => super.parseSubscripts(base, startPos, startLoc, noCalls),\n          state,\n        );\n\n        if (result.node && !result.error) return result.node;\n\n        if (arrow.node) {\n          this.state = arrow.failState;\n          return arrow.node;\n        }\n\n        if (result.node) {\n          this.state = result.failState;\n          return result.node;\n        }\n\n        throw arrow.error || result.error;\n      }\n\n      return super.parseSubscripts(base, startPos, startLoc, noCalls);\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      subscriptState: N.ParseSubscriptState,\n    ): N.Expression {\n      if (this.match(tt.questionDot) && this.isLookaheadRelational(\"<\")) {\n        subscriptState.optionalChainMember = true;\n        if (noCalls) {\n          subscriptState.stop = true;\n          return base;\n        }\n        this.next();\n        const node: N.OptionalCallExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.callee = base;\n        node.typeArguments = this.flowParseTypeParameterInstantiation();\n        this.expect(tt.parenL);\n        // $FlowFixMe\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        node.optional = true;\n        return this.finishCallExpression(node, /* optional */ true);\n      } else if (\n        !noCalls &&\n        this.shouldParseTypes() &&\n        this.isRelational(\"<\")\n      ) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n\n        const result = this.tryParse(() => {\n          node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n          this.expect(tt.parenL);\n          node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n          if (subscriptState.optionalChainMember) node.optional = false;\n          return this.finishCallExpression(\n            node,\n            subscriptState.optionalChainMember,\n          );\n        });\n\n        if (result.node) {\n          if (result.error) this.state = result.failState;\n          return result.node;\n        }\n      }\n\n      return super.parseSubscript(\n        base,\n        startPos,\n        startLoc,\n        noCalls,\n        subscriptState,\n      );\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      let targs = null;\n      if (this.shouldParseTypes() && this.isRelational(\"<\")) {\n        targs = this.tryParse(() =>\n          this.flowParseTypeParameterInstantiationCallOrNew(),\n        ).node;\n      }\n      node.typeArguments = targs;\n\n      super.parseNewArguments(node);\n    }\n\n    parseAsyncArrowWithTypeParameters(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      const node = this.startNodeAt(startPos, startLoc);\n      this.parseFunctionParams(node);\n      if (!this.parseArrow(node)) return;\n      return this.parseArrowExpression(\n        node,\n        /* params */ undefined,\n        /* isAsync */ true,\n      );\n    }\n\n    readToken_mult_modulo(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.asterisk &&\n        next === charCodes.slash &&\n        this.state.hasFlowComment\n      ) {\n        this.state.hasFlowComment = false;\n        this.state.pos += 2;\n        this.nextToken();\n        return;\n      }\n\n      super.readToken_mult_modulo(code);\n    }\n\n    readToken_pipe_amp(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.verticalBar &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        // '|}'\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      super.readToken_pipe_amp(code);\n    }\n\n    parseTopLevel(file: N.File, program: N.Program): N.File {\n      const fileNode = super.parseTopLevel(file, program);\n      if (this.state.hasFlowComment) {\n        this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment);\n      }\n      return fileNode;\n    }\n\n    skipBlockComment(): void {\n      if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n        if (this.state.hasFlowComment) {\n          this.unexpected(null, FlowErrors.NestedFlowComment);\n        }\n        this.hasFlowCommentCompletion();\n        this.state.pos += this.skipFlowComment();\n        this.state.hasFlowComment = true;\n        return;\n      }\n\n      if (this.state.hasFlowComment) {\n        const end = this.input.indexOf(\"*-/\", (this.state.pos += 2));\n        if (end === -1) {\n          throw this.raise(this.state.pos - 2, Errors.UnterminatedComment);\n        }\n        this.state.pos = end + 3;\n        return;\n      }\n\n      super.skipBlockComment();\n    }\n\n    skipFlowComment(): number | boolean {\n      const { pos } = this.state;\n      let shiftToFirstNonWhiteSpace = 2;\n      while (\n        [charCodes.space, charCodes.tab].includes(\n          this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n        )\n      ) {\n        shiftToFirstNonWhiteSpace++;\n      }\n\n      const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n      const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n      if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n        return shiftToFirstNonWhiteSpace + 2; // check for /*::\n      }\n      if (\n        this.input.slice(\n          shiftToFirstNonWhiteSpace + pos,\n          shiftToFirstNonWhiteSpace + pos + 12,\n        ) === \"flow-include\"\n      ) {\n        return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n      }\n      if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n        return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n      }\n      return false;\n    }\n\n    hasFlowCommentCompletion(): void {\n      const end = this.input.indexOf(\"*/\", this.state.pos);\n      if (end === -1) {\n        throw this.raise(this.state.pos, Errors.UnterminatedComment);\n      }\n    }\n\n    // Flow enum parsing\n\n    flowEnumErrorBooleanMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumBooleanMemberNotInitialized,\n        memberName,\n        enumName,\n      );\n    }\n\n    flowEnumErrorInvalidMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      const suggestion = memberName[0].toUpperCase() + memberName.slice(1);\n      this.raise(\n        pos,\n        FlowErrors.EnumInvalidMemberName,\n        memberName,\n        suggestion,\n        enumName,\n      );\n    }\n\n    flowEnumErrorDuplicateMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName);\n    }\n\n    flowEnumErrorInconsistentMemberValues(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName);\n    }\n\n    flowEnumErrorInvalidExplicitType(\n      pos: number,\n      {\n        enumName,\n        suppliedType,\n      }: { enumName: string, suppliedType: null | string },\n    ) {\n      return this.raise(\n        pos,\n        suppliedType === null\n          ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied\n          : FlowErrors.EnumInvalidExplicitType,\n        enumName,\n        suppliedType,\n      );\n    }\n\n    flowEnumErrorInvalidMemberInitializer(\n      pos: number,\n      { enumName, explicitType, memberName }: EnumContext,\n    ) {\n      let message = null;\n      switch (explicitType) {\n        case \"boolean\":\n        case \"number\":\n        case \"string\":\n          message = FlowErrors.EnumInvalidMemberInitializerPrimaryType;\n          break;\n        case \"symbol\":\n          message = FlowErrors.EnumInvalidMemberInitializerSymbolType;\n          break;\n        default:\n          // null\n          message = FlowErrors.EnumInvalidMemberInitializerUnknownType;\n      }\n      return this.raise(pos, message, enumName, memberName, explicitType);\n    }\n\n    flowEnumErrorNumberMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumNumberMemberNotInitialized,\n        enumName,\n        memberName,\n      );\n    }\n\n    flowEnumErrorStringMemberInconsistentlyInitailized(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumStringMemberInconsistentlyInitailized,\n        enumName,\n      );\n    }\n\n    flowEnumMemberInit(): EnumMemberInit {\n      const startPos = this.state.start;\n      const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n      switch (this.state.type) {\n        case tt.num: {\n          const literal = this.parseLiteral(this.state.value, \"NumericLiteral\");\n          if (endOfInit()) {\n            return { type: \"number\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt.string: {\n          const literal = this.parseLiteral(this.state.value, \"StringLiteral\");\n          if (endOfInit()) {\n            return { type: \"string\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt._true:\n        case tt._false: {\n          const literal = this.parseBooleanLiteral();\n          if (endOfInit()) {\n            return {\n              type: \"boolean\",\n              pos: literal.start,\n              value: literal,\n            };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        default:\n          return { type: \"invalid\", pos: startPos };\n      }\n    }\n\n    flowEnumMemberRaw(): { id: N.Node, init: EnumMemberInit } {\n      const pos = this.state.start;\n      const id = this.parseIdentifier(true);\n      const init = this.eat(tt.eq)\n        ? this.flowEnumMemberInit()\n        : { type: \"none\", pos };\n      return { id, init };\n    }\n\n    flowEnumCheckExplicitTypeMismatch(\n      pos: number,\n      context: EnumContext,\n      expectedType: EnumExplicitType,\n    ): void {\n      const { explicitType } = context;\n      if (explicitType === null) {\n        return;\n      }\n      if (explicitType !== expectedType) {\n        this.flowEnumErrorInvalidMemberInitializer(pos, context);\n      }\n    }\n\n    flowEnumMembers({\n      enumName,\n      explicitType,\n    }: {\n      enumName: string,\n      explicitType: EnumExplicitType,\n    }): {|\n      booleanMembers: Array<N.Node>,\n      numberMembers: Array<N.Node>,\n      stringMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n    |} {\n      const seenNames = new Set();\n      const members = {\n        booleanMembers: [],\n        numberMembers: [],\n        stringMembers: [],\n        defaultedMembers: [],\n      };\n      while (!this.match(tt.braceR)) {\n        const memberNode = this.startNode();\n        const { id, init } = this.flowEnumMemberRaw();\n        const memberName = id.name;\n        if (memberName === \"\") {\n          continue;\n        }\n        if (/^[a-z]/.test(memberName)) {\n          this.flowEnumErrorInvalidMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        if (seenNames.has(memberName)) {\n          this.flowEnumErrorDuplicateMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        seenNames.add(memberName);\n        const context = { enumName, explicitType, memberName };\n        memberNode.id = id;\n        switch (init.type) {\n          case \"boolean\": {\n            this.flowEnumCheckExplicitTypeMismatch(\n              init.pos,\n              context,\n              \"boolean\",\n            );\n            memberNode.init = init.value;\n            members.booleanMembers.push(\n              this.finishNode(memberNode, \"EnumBooleanMember\"),\n            );\n            break;\n          }\n          case \"number\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"number\");\n            memberNode.init = init.value;\n            members.numberMembers.push(\n              this.finishNode(memberNode, \"EnumNumberMember\"),\n            );\n            break;\n          }\n          case \"string\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"string\");\n            memberNode.init = init.value;\n            members.stringMembers.push(\n              this.finishNode(memberNode, \"EnumStringMember\"),\n            );\n            break;\n          }\n          case \"invalid\": {\n            throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context);\n          }\n          case \"none\": {\n            switch (explicitType) {\n              case \"boolean\":\n                this.flowEnumErrorBooleanMemberNotInitialized(\n                  init.pos,\n                  context,\n                );\n                break;\n              case \"number\":\n                this.flowEnumErrorNumberMemberNotInitialized(init.pos, context);\n                break;\n              default:\n                members.defaultedMembers.push(\n                  this.finishNode(memberNode, \"EnumDefaultedMember\"),\n                );\n            }\n          }\n        }\n\n        if (!this.match(tt.braceR)) {\n          this.expect(tt.comma);\n        }\n      }\n      return members;\n    }\n\n    flowEnumStringMembers(\n      initializedMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n      { enumName }: { enumName: string },\n    ): Array<N.Node> {\n      if (initializedMembers.length === 0) {\n        return defaultedMembers;\n      } else if (defaultedMembers.length === 0) {\n        return initializedMembers;\n      } else if (defaultedMembers.length > initializedMembers.length) {\n        for (const member of initializedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return defaultedMembers;\n      } else {\n        for (const member of defaultedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return initializedMembers;\n      }\n    }\n\n    flowEnumParseExplicitType({\n      enumName,\n    }: {\n      enumName: string,\n    }): EnumExplicitType {\n      if (this.eatContextual(\"of\")) {\n        if (!this.match(tt.name)) {\n          throw this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: null,\n          });\n        }\n\n        const { value } = this.state;\n        this.next();\n\n        if (\n          value !== \"boolean\" &&\n          value !== \"number\" &&\n          value !== \"string\" &&\n          value !== \"symbol\"\n        ) {\n          this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: value,\n          });\n        }\n\n        return value;\n      }\n      return null;\n    }\n\n    flowEnumBody(node: N.Node, { enumName, nameLoc }): N.Node {\n      const explicitType = this.flowEnumParseExplicitType({ enumName });\n      this.expect(tt.braceL);\n      const members = this.flowEnumMembers({ enumName, explicitType });\n\n      switch (explicitType) {\n        case \"boolean\":\n          node.explicitType = true;\n          node.members = members.booleanMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumBooleanBody\");\n        case \"number\":\n          node.explicitType = true;\n          node.members = members.numberMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumNumberBody\");\n        case \"string\":\n          node.explicitType = true;\n          node.members = this.flowEnumStringMembers(\n            members.stringMembers,\n            members.defaultedMembers,\n            { enumName },\n          );\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumStringBody\");\n        case \"symbol\":\n          node.members = members.defaultedMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumSymbolBody\");\n        default: {\n          // `explicitType` is `null`\n          const empty = () => {\n            node.members = [];\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          };\n          node.explicitType = false;\n\n          const boolsLen = members.booleanMembers.length;\n          const numsLen = members.numberMembers.length;\n          const strsLen = members.stringMembers.length;\n          const defaultedLen = members.defaultedMembers.length;\n\n          if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n            return empty();\n          } else if (!boolsLen && !numsLen) {\n            node.members = this.flowEnumStringMembers(\n              members.stringMembers,\n              members.defaultedMembers,\n              { enumName },\n            );\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorBooleanMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.booleanMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumBooleanBody\");\n          } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorNumberMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.numberMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumNumberBody\");\n          } else {\n            this.flowEnumErrorInconsistentMemberValues(nameLoc, { enumName });\n            return empty();\n          }\n        }\n      }\n    }\n\n    flowParseEnumDeclaration(node: N.Node): N.Node {\n      const id = this.parseIdentifier();\n      node.id = id;\n      node.body = this.flowEnumBody(this.startNode(), {\n        enumName: id.name,\n        nameLoc: id.start,\n      });\n      return this.finishNode(node, \"EnumDeclaration\");\n    }\n  };\n","// @flow\n\nconst entities: { [name: string]: string } = {\n  quot: \"\\u0022\",\n  amp: \"&\",\n  apos: \"\\u0027\",\n  lt: \"<\",\n  gt: \">\",\n  nbsp: \"\\u00A0\",\n  iexcl: \"\\u00A1\",\n  cent: \"\\u00A2\",\n  pound: \"\\u00A3\",\n  curren: \"\\u00A4\",\n  yen: \"\\u00A5\",\n  brvbar: \"\\u00A6\",\n  sect: \"\\u00A7\",\n  uml: \"\\u00A8\",\n  copy: \"\\u00A9\",\n  ordf: \"\\u00AA\",\n  laquo: \"\\u00AB\",\n  not: \"\\u00AC\",\n  shy: \"\\u00AD\",\n  reg: \"\\u00AE\",\n  macr: \"\\u00AF\",\n  deg: \"\\u00B0\",\n  plusmn: \"\\u00B1\",\n  sup2: \"\\u00B2\",\n  sup3: \"\\u00B3\",\n  acute: \"\\u00B4\",\n  micro: \"\\u00B5\",\n  para: \"\\u00B6\",\n  middot: \"\\u00B7\",\n  cedil: \"\\u00B8\",\n  sup1: \"\\u00B9\",\n  ordm: \"\\u00BA\",\n  raquo: \"\\u00BB\",\n  frac14: \"\\u00BC\",\n  frac12: \"\\u00BD\",\n  frac34: \"\\u00BE\",\n  iquest: \"\\u00BF\",\n  Agrave: \"\\u00C0\",\n  Aacute: \"\\u00C1\",\n  Acirc: \"\\u00C2\",\n  Atilde: \"\\u00C3\",\n  Auml: \"\\u00C4\",\n  Aring: \"\\u00C5\",\n  AElig: \"\\u00C6\",\n  Ccedil: \"\\u00C7\",\n  Egrave: \"\\u00C8\",\n  Eacute: \"\\u00C9\",\n  Ecirc: \"\\u00CA\",\n  Euml: \"\\u00CB\",\n  Igrave: \"\\u00CC\",\n  Iacute: \"\\u00CD\",\n  Icirc: \"\\u00CE\",\n  Iuml: \"\\u00CF\",\n  ETH: \"\\u00D0\",\n  Ntilde: \"\\u00D1\",\n  Ograve: \"\\u00D2\",\n  Oacute: \"\\u00D3\",\n  Ocirc: \"\\u00D4\",\n  Otilde: \"\\u00D5\",\n  Ouml: \"\\u00D6\",\n  times: \"\\u00D7\",\n  Oslash: \"\\u00D8\",\n  Ugrave: \"\\u00D9\",\n  Uacute: \"\\u00DA\",\n  Ucirc: \"\\u00DB\",\n  Uuml: \"\\u00DC\",\n  Yacute: \"\\u00DD\",\n  THORN: \"\\u00DE\",\n  szlig: \"\\u00DF\",\n  agrave: \"\\u00E0\",\n  aacute: \"\\u00E1\",\n  acirc: \"\\u00E2\",\n  atilde: \"\\u00E3\",\n  auml: \"\\u00E4\",\n  aring: \"\\u00E5\",\n  aelig: \"\\u00E6\",\n  ccedil: \"\\u00E7\",\n  egrave: \"\\u00E8\",\n  eacute: \"\\u00E9\",\n  ecirc: \"\\u00EA\",\n  euml: \"\\u00EB\",\n  igrave: \"\\u00EC\",\n  iacute: \"\\u00ED\",\n  icirc: \"\\u00EE\",\n  iuml: \"\\u00EF\",\n  eth: \"\\u00F0\",\n  ntilde: \"\\u00F1\",\n  ograve: \"\\u00F2\",\n  oacute: \"\\u00F3\",\n  ocirc: \"\\u00F4\",\n  otilde: \"\\u00F5\",\n  ouml: \"\\u00F6\",\n  divide: \"\\u00F7\",\n  oslash: \"\\u00F8\",\n  ugrave: \"\\u00F9\",\n  uacute: \"\\u00FA\",\n  ucirc: \"\\u00FB\",\n  uuml: \"\\u00FC\",\n  yacute: \"\\u00FD\",\n  thorn: \"\\u00FE\",\n  yuml: \"\\u00FF\",\n  OElig: \"\\u0152\",\n  oelig: \"\\u0153\",\n  Scaron: \"\\u0160\",\n  scaron: \"\\u0161\",\n  Yuml: \"\\u0178\",\n  fnof: \"\\u0192\",\n  circ: \"\\u02C6\",\n  tilde: \"\\u02DC\",\n  Alpha: \"\\u0391\",\n  Beta: \"\\u0392\",\n  Gamma: \"\\u0393\",\n  Delta: \"\\u0394\",\n  Epsilon: \"\\u0395\",\n  Zeta: \"\\u0396\",\n  Eta: \"\\u0397\",\n  Theta: \"\\u0398\",\n  Iota: \"\\u0399\",\n  Kappa: \"\\u039A\",\n  Lambda: \"\\u039B\",\n  Mu: \"\\u039C\",\n  Nu: \"\\u039D\",\n  Xi: \"\\u039E\",\n  Omicron: \"\\u039F\",\n  Pi: \"\\u03A0\",\n  Rho: \"\\u03A1\",\n  Sigma: \"\\u03A3\",\n  Tau: \"\\u03A4\",\n  Upsilon: \"\\u03A5\",\n  Phi: \"\\u03A6\",\n  Chi: \"\\u03A7\",\n  Psi: \"\\u03A8\",\n  Omega: \"\\u03A9\",\n  alpha: \"\\u03B1\",\n  beta: \"\\u03B2\",\n  gamma: \"\\u03B3\",\n  delta: \"\\u03B4\",\n  epsilon: \"\\u03B5\",\n  zeta: \"\\u03B6\",\n  eta: \"\\u03B7\",\n  theta: \"\\u03B8\",\n  iota: \"\\u03B9\",\n  kappa: \"\\u03BA\",\n  lambda: \"\\u03BB\",\n  mu: \"\\u03BC\",\n  nu: \"\\u03BD\",\n  xi: \"\\u03BE\",\n  omicron: \"\\u03BF\",\n  pi: \"\\u03C0\",\n  rho: \"\\u03C1\",\n  sigmaf: \"\\u03C2\",\n  sigma: \"\\u03C3\",\n  tau: \"\\u03C4\",\n  upsilon: \"\\u03C5\",\n  phi: \"\\u03C6\",\n  chi: \"\\u03C7\",\n  psi: \"\\u03C8\",\n  omega: \"\\u03C9\",\n  thetasym: \"\\u03D1\",\n  upsih: \"\\u03D2\",\n  piv: \"\\u03D6\",\n  ensp: \"\\u2002\",\n  emsp: \"\\u2003\",\n  thinsp: \"\\u2009\",\n  zwnj: \"\\u200C\",\n  zwj: \"\\u200D\",\n  lrm: \"\\u200E\",\n  rlm: \"\\u200F\",\n  ndash: \"\\u2013\",\n  mdash: \"\\u2014\",\n  lsquo: \"\\u2018\",\n  rsquo: \"\\u2019\",\n  sbquo: \"\\u201A\",\n  ldquo: \"\\u201C\",\n  rdquo: \"\\u201D\",\n  bdquo: \"\\u201E\",\n  dagger: \"\\u2020\",\n  Dagger: \"\\u2021\",\n  bull: \"\\u2022\",\n  hellip: \"\\u2026\",\n  permil: \"\\u2030\",\n  prime: \"\\u2032\",\n  Prime: \"\\u2033\",\n  lsaquo: \"\\u2039\",\n  rsaquo: \"\\u203A\",\n  oline: \"\\u203E\",\n  frasl: \"\\u2044\",\n  euro: \"\\u20AC\",\n  image: \"\\u2111\",\n  weierp: \"\\u2118\",\n  real: \"\\u211C\",\n  trade: \"\\u2122\",\n  alefsym: \"\\u2135\",\n  larr: \"\\u2190\",\n  uarr: \"\\u2191\",\n  rarr: \"\\u2192\",\n  darr: \"\\u2193\",\n  harr: \"\\u2194\",\n  crarr: \"\\u21B5\",\n  lArr: \"\\u21D0\",\n  uArr: \"\\u21D1\",\n  rArr: \"\\u21D2\",\n  dArr: \"\\u21D3\",\n  hArr: \"\\u21D4\",\n  forall: \"\\u2200\",\n  part: \"\\u2202\",\n  exist: \"\\u2203\",\n  empty: \"\\u2205\",\n  nabla: \"\\u2207\",\n  isin: \"\\u2208\",\n  notin: \"\\u2209\",\n  ni: \"\\u220B\",\n  prod: \"\\u220F\",\n  sum: \"\\u2211\",\n  minus: \"\\u2212\",\n  lowast: \"\\u2217\",\n  radic: \"\\u221A\",\n  prop: \"\\u221D\",\n  infin: \"\\u221E\",\n  ang: \"\\u2220\",\n  and: \"\\u2227\",\n  or: \"\\u2228\",\n  cap: \"\\u2229\",\n  cup: \"\\u222A\",\n  int: \"\\u222B\",\n  there4: \"\\u2234\",\n  sim: \"\\u223C\",\n  cong: \"\\u2245\",\n  asymp: \"\\u2248\",\n  ne: \"\\u2260\",\n  equiv: \"\\u2261\",\n  le: \"\\u2264\",\n  ge: \"\\u2265\",\n  sub: \"\\u2282\",\n  sup: \"\\u2283\",\n  nsub: \"\\u2284\",\n  sube: \"\\u2286\",\n  supe: \"\\u2287\",\n  oplus: \"\\u2295\",\n  otimes: \"\\u2297\",\n  perp: \"\\u22A5\",\n  sdot: \"\\u22C5\",\n  lceil: \"\\u2308\",\n  rceil: \"\\u2309\",\n  lfloor: \"\\u230A\",\n  rfloor: \"\\u230B\",\n  lang: \"\\u2329\",\n  rang: \"\\u232A\",\n  loz: \"\\u25CA\",\n  spades: \"\\u2660\",\n  clubs: \"\\u2663\",\n  hearts: \"\\u2665\",\n  diams: \"\\u2666\",\n};\nexport default entities;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml\";\nimport type Parser from \"../../parser\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { TokenType, types as tt } from \"../../tokenizer/types\";\nimport { TokContext, types as tc } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier\";\nimport type { Position } from \"../../util/location\";\nimport { isNewLine } from \"../../util/whitespace\";\nimport { Errors } from \"../../parser/location\";\n\nconst HEX_NUMBER = /^[\\da-fA-F]+$/;\nconst DECIMAL_NUMBER = /^\\d+$/;\n\nconst JsxErrors = Object.freeze({\n  AttributeIsEmpty:\n    \"JSX attributes must only be assigned a non-empty expression\",\n  MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>\",\n  MissingClosingTagElement: \"Expected corresponding JSX closing tag for <%0>\",\n  UnsupportedJsxValue:\n    \"JSX value should be either an expression or a quoted JSX text\",\n  UnterminatedJsxContent: \"Unterminated JSX contents\",\n  UnwrappedAdjacentJSXElements:\n    \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\",\n});\n\n// Be aware that this file is always executed and not only when the plugin is enabled.\n// Therefore this contexts and tokens do always exist.\ntc.j_oTag = new TokContext(\"<tag\", false);\ntc.j_cTag = new TokContext(\"</tag\", false);\ntc.j_expr = new TokContext(\"<tag>...</tag>\", true, true);\n\ntt.jsxName = new TokenType(\"jsxName\");\ntt.jsxText = new TokenType(\"jsxText\", { beforeExpr: true });\ntt.jsxTagStart = new TokenType(\"jsxTagStart\", { startsExpr: true });\ntt.jsxTagEnd = new TokenType(\"jsxTagEnd\");\n\ntt.jsxTagStart.updateContext = function() {\n  this.state.context.push(tc.j_expr); // treat as beginning of JSX expression\n  this.state.context.push(tc.j_oTag); // start opening tag context\n  this.state.exprAllowed = false;\n};\n\ntt.jsxTagEnd.updateContext = function(prevType) {\n  const out = this.state.context.pop();\n  if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n    this.state.context.pop();\n    this.state.exprAllowed = this.curContext() === tc.j_expr;\n  } else {\n    this.state.exprAllowed = true;\n  }\n};\n\nfunction isFragment(object: ?N.JSXElement): boolean {\n  return object\n    ? object.type === \"JSXOpeningFragment\" ||\n        object.type === \"JSXClosingFragment\"\n    : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n  object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n  if (object.type === \"JSXIdentifier\") {\n    return object.name;\n  }\n\n  if (object.type === \"JSXNamespacedName\") {\n    return object.namespace.name + \":\" + object.name.name;\n  }\n\n  if (object.type === \"JSXMemberExpression\") {\n    return (\n      getQualifiedJSXName(object.object) +\n      \".\" +\n      getQualifiedJSXName(object.property)\n    );\n  }\n\n  // istanbul ignore next\n  throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // Reads inline JSX contents token.\n\n    jsxReadToken(): void {\n      let out = \"\";\n      let chunkStart = this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n\n        switch (ch) {\n          case charCodes.lessThan:\n          case charCodes.leftCurlyBrace:\n            if (this.state.pos === this.state.start) {\n              if (ch === charCodes.lessThan && this.state.exprAllowed) {\n                ++this.state.pos;\n                return this.finishToken(tt.jsxTagStart);\n              }\n              return super.getTokenFromCode(ch);\n            }\n            out += this.input.slice(chunkStart, this.state.pos);\n            return this.finishToken(tt.jsxText, out);\n\n          case charCodes.ampersand:\n            out += this.input.slice(chunkStart, this.state.pos);\n            out += this.jsxReadEntity();\n            chunkStart = this.state.pos;\n            break;\n\n          default:\n            if (isNewLine(ch)) {\n              out += this.input.slice(chunkStart, this.state.pos);\n              out += this.jsxReadNewLine(true);\n              chunkStart = this.state.pos;\n            } else {\n              ++this.state.pos;\n            }\n        }\n      }\n    }\n\n    jsxReadNewLine(normalizeCRLF: boolean): string {\n      const ch = this.input.charCodeAt(this.state.pos);\n      let out;\n      ++this.state.pos;\n      if (\n        ch === charCodes.carriageReturn &&\n        this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n      ) {\n        ++this.state.pos;\n        out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n      } else {\n        out = String.fromCharCode(ch);\n      }\n      ++this.state.curLine;\n      this.state.lineStart = this.state.pos;\n\n      return out;\n    }\n\n    jsxReadString(quote: number): void {\n      let out = \"\";\n      let chunkStart = ++this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, Errors.UnterminatedString);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n        if (ch === quote) break;\n        if (ch === charCodes.ampersand) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadEntity();\n          chunkStart = this.state.pos;\n        } else if (isNewLine(ch)) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadNewLine(false);\n          chunkStart = this.state.pos;\n        } else {\n          ++this.state.pos;\n        }\n      }\n      out += this.input.slice(chunkStart, this.state.pos++);\n      return this.finishToken(tt.string, out);\n    }\n\n    jsxReadEntity(): string {\n      let str = \"\";\n      let count = 0;\n      let entity;\n      let ch = this.input[this.state.pos];\n\n      const startPos = ++this.state.pos;\n      while (this.state.pos < this.length && count++ < 10) {\n        ch = this.input[this.state.pos++];\n        if (ch === \";\") {\n          if (str[0] === \"#\") {\n            if (str[1] === \"x\") {\n              str = str.substr(2);\n              if (HEX_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 16));\n              }\n            } else {\n              str = str.substr(1);\n              if (DECIMAL_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 10));\n              }\n            }\n          } else {\n            entity = XHTMLEntities[str];\n          }\n          break;\n        }\n        str += ch;\n      }\n      if (!entity) {\n        this.state.pos = startPos;\n        return \"&\";\n      }\n      return entity;\n    }\n\n    // Read a JSX identifier (valid tag or attribute name).\n    //\n    // Optimized version since JSX identifiers can\"t contain\n    // escape characters and so can be read as single slice.\n    // Also assumes that first character was already checked\n    // by isIdentifierStart in readToken.\n\n    jsxReadWord(): void {\n      let ch;\n      const start = this.state.pos;\n      do {\n        ch = this.input.charCodeAt(++this.state.pos);\n      } while (isIdentifierChar(ch) || ch === charCodes.dash);\n      return this.finishToken(\n        tt.jsxName,\n        this.input.slice(start, this.state.pos),\n      );\n    }\n\n    // Parse next token as JSX identifier\n\n    jsxParseIdentifier(): N.JSXIdentifier {\n      const node = this.startNode();\n      if (this.match(tt.jsxName)) {\n        node.name = this.state.value;\n      } else if (this.state.type.keyword) {\n        node.name = this.state.type.keyword;\n      } else {\n        this.unexpected();\n      }\n      this.next();\n      return this.finishNode(node, \"JSXIdentifier\");\n    }\n\n    // Parse namespaced identifier.\n\n    jsxParseNamespacedName(): N.JSXNamespacedName {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const name = this.jsxParseIdentifier();\n      if (!this.eat(tt.colon)) return name;\n\n      const node = this.startNodeAt(startPos, startLoc);\n      node.namespace = name;\n      node.name = this.jsxParseIdentifier();\n      return this.finishNode(node, \"JSXNamespacedName\");\n    }\n\n    // Parses element name in any form - namespaced, member\n    // or single identifier.\n\n    jsxParseElementName():\n      | N.JSXIdentifier\n      | N.JSXNamespacedName\n      | N.JSXMemberExpression {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let node = this.jsxParseNamespacedName();\n      if (node.type === \"JSXNamespacedName\") {\n        return node;\n      }\n      while (this.eat(tt.dot)) {\n        const newNode = this.startNodeAt(startPos, startLoc);\n        newNode.object = node;\n        newNode.property = this.jsxParseIdentifier();\n        node = this.finishNode(newNode, \"JSXMemberExpression\");\n      }\n      return node;\n    }\n\n    // Parses any type of JSX attribute value.\n\n    jsxParseAttributeValue(): N.Expression {\n      let node;\n      switch (this.state.type) {\n        case tt.braceL:\n          node = this.startNode();\n          this.next();\n          node = this.jsxParseExpressionContainer(node);\n          if (node.expression.type === \"JSXEmptyExpression\") {\n            this.raise(node.start, JsxErrors.AttributeIsEmpty);\n          }\n          return node;\n\n        case tt.jsxTagStart:\n        case tt.string:\n          return this.parseExprAtom();\n\n        default:\n          throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue);\n      }\n    }\n\n    // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n    // and so it should start at the end of last read token (left brace) and finish\n    // at the beginning of the next one (right brace).\n\n    jsxParseEmptyExpression(): N.JSXEmptyExpression {\n      const node = this.startNodeAt(\n        this.state.lastTokEnd,\n        this.state.lastTokEndLoc,\n      );\n      return this.finishNodeAt(\n        node,\n        \"JSXEmptyExpression\",\n        this.state.start,\n        this.state.startLoc,\n      );\n    }\n\n    // Parse JSX spread child\n\n    jsxParseSpreadChild(node: N.JSXSpreadChild): N.JSXSpreadChild {\n      this.next(); // ellipsis\n      node.expression = this.parseExpression();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"JSXSpreadChild\");\n    }\n\n    // Parses JSX expression enclosed into curly brackets.\n\n    jsxParseExpressionContainer(\n      node: N.JSXExpressionContainer,\n    ): N.JSXExpressionContainer {\n      if (this.match(tt.braceR)) {\n        node.expression = this.jsxParseEmptyExpression();\n      } else {\n        node.expression = this.parseExpression();\n      }\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"JSXExpressionContainer\");\n    }\n\n    // Parses following JSX attribute name-value pair.\n\n    jsxParseAttribute(): N.JSXAttribute {\n      const node = this.startNode();\n      if (this.eat(tt.braceL)) {\n        this.expect(tt.ellipsis);\n        node.argument = this.parseMaybeAssign();\n        this.expect(tt.braceR);\n        return this.finishNode(node, \"JSXSpreadAttribute\");\n      }\n      node.name = this.jsxParseNamespacedName();\n      node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n      return this.finishNode(node, \"JSXAttribute\");\n    }\n\n    // Parses JSX opening tag starting after \"<\".\n\n    jsxParseOpeningElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXOpeningElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXOpeningFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      return this.jsxParseOpeningElementAfterName(node);\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      const attributes: N.JSXAttribute[] = [];\n      while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n        attributes.push(this.jsxParseAttribute());\n      }\n      node.attributes = attributes;\n      node.selfClosing = this.eat(tt.slash);\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXOpeningElement\");\n    }\n\n    // Parses JSX closing tag starting after \"</\".\n\n    jsxParseClosingElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXClosingElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXClosingFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXClosingElement\");\n    }\n\n    // Parses entire JSX element, including it\"s opening tag\n    // (starting after \"<\"), attributes, contents and closing tag.\n\n    jsxParseElementAt(startPos: number, startLoc: Position): N.JSXElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      const children = [];\n      const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\n      let closingElement = null;\n\n      if (!openingElement.selfClosing) {\n        contents: for (;;) {\n          switch (this.state.type) {\n            case tt.jsxTagStart:\n              startPos = this.state.start;\n              startLoc = this.state.startLoc;\n              this.next();\n              if (this.eat(tt.slash)) {\n                closingElement = this.jsxParseClosingElementAt(\n                  startPos,\n                  startLoc,\n                );\n                break contents;\n              }\n              children.push(this.jsxParseElementAt(startPos, startLoc));\n              break;\n\n            case tt.jsxText:\n              children.push(this.parseExprAtom());\n              break;\n\n            case tt.braceL: {\n              const node = this.startNode();\n              this.next();\n              if (this.match(tt.ellipsis)) {\n                children.push(this.jsxParseSpreadChild(node));\n              } else {\n                children.push(this.jsxParseExpressionContainer(node));\n              }\n\n              break;\n            }\n            // istanbul ignore next - should never happen\n            default:\n              throw this.unexpected();\n          }\n        }\n\n        if (isFragment(openingElement) && !isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagFragment,\n          );\n        } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagElement,\n            getQualifiedJSXName(openingElement.name),\n          );\n        } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n          if (\n            // $FlowIgnore\n            getQualifiedJSXName(closingElement.name) !==\n            getQualifiedJSXName(openingElement.name)\n          ) {\n            this.raise(\n              // $FlowIgnore\n              closingElement.start,\n              JsxErrors.MissingClosingTagElement,\n              getQualifiedJSXName(openingElement.name),\n            );\n          }\n        }\n      }\n\n      if (isFragment(openingElement)) {\n        node.openingFragment = openingElement;\n        node.closingFragment = closingElement;\n      } else {\n        node.openingElement = openingElement;\n        node.closingElement = closingElement;\n      }\n      node.children = children;\n      if (this.isRelational(\"<\")) {\n        throw this.raise(\n          this.state.start,\n          JsxErrors.UnwrappedAdjacentJSXElements,\n        );\n      }\n\n      return isFragment(openingElement)\n        ? this.finishNode(node, \"JSXFragment\")\n        : this.finishNode(node, \"JSXElement\");\n    }\n\n    // Parses entire JSX element from current position.\n\n    jsxParseElement(): N.JSXElement {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      this.next();\n      return this.jsxParseElementAt(startPos, startLoc);\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseExprAtom(refExpressionErrors: ?ExpressionErrors): N.Expression {\n      if (this.match(tt.jsxText)) {\n        return this.parseLiteral(this.state.value, \"JSXText\");\n      } else if (this.match(tt.jsxTagStart)) {\n        return this.jsxParseElement();\n      } else if (\n        this.isRelational(\"<\") &&\n        this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n      ) {\n        // In case we encounter an lt token here it will always be the start of\n        // jsx as the lt sign is not allowed in places that expect an expression\n        this.finishToken(tt.jsxTagStart);\n        return this.jsxParseElement();\n      } else {\n        return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    getTokenFromCode(code: number): void {\n      if (this.state.inPropertyName) return super.getTokenFromCode(code);\n\n      const context = this.curContext();\n\n      if (context === tc.j_expr) {\n        return this.jsxReadToken();\n      }\n\n      if (context === tc.j_oTag || context === tc.j_cTag) {\n        if (isIdentifierStart(code)) {\n          return this.jsxReadWord();\n        }\n\n        if (code === charCodes.greaterThan) {\n          ++this.state.pos;\n          return this.finishToken(tt.jsxTagEnd);\n        }\n\n        if (\n          (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n          context === tc.j_oTag\n        ) {\n          return this.jsxReadString(code);\n        }\n      }\n\n      if (\n        code === charCodes.lessThan &&\n        this.state.exprAllowed &&\n        this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n      ) {\n        ++this.state.pos;\n        return this.finishToken(tt.jsxTagStart);\n      }\n\n      return super.getTokenFromCode(code);\n    }\n\n    updateContext(prevType: TokenType): void {\n      if (this.match(tt.braceL)) {\n        const curContext = this.curContext();\n        if (curContext === tc.j_oTag) {\n          this.state.context.push(tc.braceExpression);\n        } else if (curContext === tc.j_expr) {\n          this.state.context.push(tc.templateQuasi);\n        } else {\n          super.updateContext(prevType);\n        }\n        this.state.exprAllowed = true;\n      } else if (this.match(tt.slash) && prevType === tt.jsxTagStart) {\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\n        this.state.context.push(tc.j_cTag); // reconsider as closing tag context\n        this.state.exprAllowed = false;\n      } else {\n        return super.updateContext(prevType);\n      }\n    }\n  };\n","// @flow\nimport {\n  SCOPE_ARROW,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n  SCOPE_VAR,\n  SCOPE_CLASS,\n  BIND_SCOPE_FUNCTION,\n  BIND_SCOPE_VAR,\n  BIND_SCOPE_LEXICAL,\n  BIND_KIND_VALUE,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"./scopeflags\";\nimport * as N from \"../types\";\nimport { Errors } from \"../parser/location\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n  flags: ScopeFlags;\n  // A list of var-declared names in the current lexical scope\n  var: string[] = [];\n  // A list of lexically-declared names in the current lexical scope\n  lexical: string[] = [];\n  // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n  functions: string[] = [];\n\n  constructor(flags: ScopeFlags) {\n    this.flags = flags;\n  }\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler<IScope: Scope = Scope> {\n  scopeStack: Array<IScope> = [];\n  raise: raiseFunction;\n  inModule: boolean;\n  undefinedExports: Map<string, number> = new Map();\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction, inModule: boolean) {\n    this.raise = raise;\n    this.inModule = inModule;\n  }\n\n  get inFunction() {\n    return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get allowSuper() {\n    return (this.currentThisScope().flags & SCOPE_SUPER) > 0;\n  }\n  get allowDirectSuper() {\n    return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;\n  }\n  get inClass() {\n    return (this.currentThisScope().flags & SCOPE_CLASS) > 0;\n  }\n  get inNonArrowFunction() {\n    return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get treatFunctionsAsVar() {\n    return this.treatFunctionsAsVarInScope(this.currentScope());\n  }\n\n  createScope(flags: ScopeFlags): Scope {\n    return new Scope(flags);\n  }\n  // This method will be overwritten by subclasses\n  /*:: +createScope: (flags: ScopeFlags) => IScope; */\n\n  enter(flags: ScopeFlags) {\n    this.scopeStack.push(this.createScope(flags));\n  }\n\n  exit() {\n    this.scopeStack.pop();\n  }\n\n  // The spec says:\n  // > At the top level of a function, or script, function declarations are\n  // > treated like var declarations rather than like lexical declarations.\n  treatFunctionsAsVarInScope(scope: IScope): boolean {\n    return !!(\n      scope.flags & SCOPE_FUNCTION ||\n      (!this.inModule && scope.flags & SCOPE_PROGRAM)\n    );\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    let scope = this.currentScope();\n    if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) {\n      this.checkRedeclarationInScope(scope, name, bindingType, pos);\n\n      if (bindingType & BIND_SCOPE_FUNCTION) {\n        scope.functions.push(name);\n      } else {\n        scope.lexical.push(name);\n      }\n\n      if (bindingType & BIND_SCOPE_LEXICAL) {\n        this.maybeExportDefined(scope, name);\n      }\n    } else if (bindingType & BIND_SCOPE_VAR) {\n      for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n        scope = this.scopeStack[i];\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        scope.var.push(name);\n        this.maybeExportDefined(scope, name);\n\n        if (scope.flags & SCOPE_VAR) break;\n      }\n    }\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  maybeExportDefined(scope: IScope, name: string) {\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  checkRedeclarationInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n    pos: number,\n  ) {\n    if (this.isRedeclaredInScope(scope, name, bindingType)) {\n      this.raise(pos, Errors.VarRedeclaration, name);\n    }\n  }\n\n  isRedeclaredInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (!(bindingType & BIND_KIND_VALUE)) return false;\n\n    if (bindingType & BIND_SCOPE_LEXICAL) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        scope.functions.indexOf(name) > -1 ||\n        scope.var.indexOf(name) > -1\n      );\n    }\n\n    if (bindingType & BIND_SCOPE_FUNCTION) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        (!this.treatFunctionsAsVarInScope(scope) &&\n          scope.var.indexOf(name) > -1)\n      );\n    }\n\n    return (\n      (scope.lexical.indexOf(name) > -1 &&\n        !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name)) ||\n      (!this.treatFunctionsAsVarInScope(scope) &&\n        scope.functions.indexOf(name) > -1)\n    );\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1 &&\n      // In strict mode, scope.functions will always be empty.\n      // Modules are strict by default, but the `scriptMode` option\n      // can overwrite this behavior.\n      this.scopeStack[0].functions.indexOf(id.name) === -1\n    ) {\n      this.undefinedExports.set(id.name, id.start);\n    }\n  }\n\n  currentScope(): IScope {\n    return this.scopeStack[this.scopeStack.length - 1];\n  }\n\n  // $FlowIgnore\n  currentVarScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (scope.flags & SCOPE_VAR) {\n        return scope;\n      }\n    }\n  }\n\n  // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n  // $FlowIgnore\n  currentThisScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (\n        (scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) &&\n        !(scope.flags & SCOPE_ARROW)\n      ) {\n        return scope;\n      }\n    }\n  }\n}\n","// @flow\n\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n  BIND_KIND_TYPE,\n  BIND_FLAGS_TS_ENUM,\n  BIND_FLAGS_TS_CONST_ENUM,\n  BIND_FLAGS_TS_EXPORT_ONLY,\n  BIND_KIND_VALUE,\n  BIND_FLAGS_CLASS,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"../../util/scopeflags\";\nimport * as N from \"../../types\";\n\nclass TypeScriptScope extends Scope {\n  types: string[] = [];\n\n  // enums (which are also in .types)\n  enums: string[] = [];\n\n  // const enums (which are also in .enums and .types)\n  constEnums: string[] = [];\n\n  // classes (which are also in .lexical) and interface (which are also in .types)\n  classes: string[] = [];\n\n  // namespaces and ambient functions (or classes) are too difficult to track,\n  // especially without type analysis.\n  // We need to track them anyway, to avoid \"X is not defined\" errors\n  // when exporting them.\n  exportOnlyBindings: string[] = [];\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler<TypeScriptScope> {\n  createScope(flags: ScopeFlags): TypeScriptScope {\n    return new TypeScriptScope(flags);\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    const scope = this.currentScope();\n    if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) {\n      this.maybeExportDefined(scope, name);\n      scope.exportOnlyBindings.push(name);\n      return;\n    }\n\n    super.declareName(...arguments);\n\n    if (bindingType & BIND_KIND_TYPE) {\n      if (!(bindingType & BIND_KIND_VALUE)) {\n        // \"Value\" bindings have already been registered by the superclass.\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        this.maybeExportDefined(scope, name);\n      }\n      scope.types.push(name);\n    }\n    if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name);\n    if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name);\n    if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name);\n  }\n\n  isRedeclaredInScope(\n    scope: TypeScriptScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (scope.enums.indexOf(name) > -1) {\n      if (bindingType & BIND_FLAGS_TS_ENUM) {\n        // Enums can be merged with other enums if they are both\n        //  const or both non-const.\n        const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM);\n        const wasConst = scope.constEnums.indexOf(name) > -1;\n        return isConst !== wasConst;\n      }\n      return true;\n    }\n    if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) {\n      if (scope.lexical.indexOf(name) > -1) {\n        // Classes can be merged with interfaces\n        return !!(bindingType & BIND_KIND_VALUE);\n      } else {\n        // Interface can be merged with other classes or interfaces\n        return false;\n      }\n    }\n    if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) {\n      return true;\n    }\n\n    return super.isRedeclaredInScope(...arguments);\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].types.indexOf(id.name) === -1 &&\n      this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1\n    ) {\n      super.checkLocalExport(id);\n    }\n  }\n}\n","// @flow\nexport const PARAM = 0b000, // Initial Parameter flags\n  PARAM_YIELD = 0b001, // track [Yield] production parameter\n  PARAM_AWAIT = 0b010, // track [Await] production parameter\n  PARAM_RETURN = 0b100; // track [Return] production parameter\n\n// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above. Note that the [In] parameter is\n// tracked in `noIn` argument of `parseExpression`.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n//   async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n//     ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport type ParamKind = typeof PARAM | typeof PARAM_AWAIT | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n  stacks: Array<ParamKind> = [];\n  enter(flags: ParamKind) {\n    this.stacks.push(flags);\n  }\n\n  exit() {\n    this.stacks.pop();\n  }\n\n  currentFlags(): ParamKind {\n    return this.stacks[this.stacks.length - 1];\n  }\n\n  get hasAwait(): boolean {\n    return (this.currentFlags() & PARAM_AWAIT) > 0;\n  }\n\n  get hasYield(): boolean {\n    return (this.currentFlags() & PARAM_YIELD) > 0;\n  }\n\n  get hasReturn(): boolean {\n    return (this.currentFlags() & PARAM_RETURN) > 0;\n  }\n}\n\nexport function functionFlags(\n  isAsync: boolean,\n  isGenerator: boolean,\n): ParamKind {\n  return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type { TokenType } from \"../../tokenizer/types\";\nimport type State from \"../../tokenizer/state\";\nimport { types as tt } from \"../../tokenizer/types\";\nimport { types as ct } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport type { Pos, Position } from \"../../util/location\";\nimport type Parser from \"../../parser\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  SCOPE_TS_MODULE,\n  SCOPE_OTHER,\n  BIND_TS_ENUM,\n  BIND_TS_CONST_ENUM,\n  BIND_TS_TYPE,\n  BIND_TS_INTERFACE,\n  BIND_TS_AMBIENT,\n  BIND_TS_NAMESPACE,\n  BIND_CLASS,\n  BIND_LEXICAL,\n} from \"../../util/scopeflags\";\nimport TypeScriptScopeHandler from \"./scope\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { PARAM } from \"../../util/production-parameter\";\nimport { Errors } from \"../../parser/location\";\n\ntype TsModifier =\n  | \"readonly\"\n  | \"abstract\"\n  | \"declare\"\n  | \"static\"\n  | \"public\"\n  | \"private\"\n  | \"protected\";\n\nfunction nonNull<T>(x: ?T): T {\n  if (x == null) {\n    // $FlowIgnore\n    throw new Error(`Unexpected ${x} value.`);\n  }\n  return x;\n}\n\nfunction assert(x: boolean): void {\n  if (!x) {\n    throw new Error(\"Assert fail\");\n  }\n}\n\ntype ParsingContext =\n  | \"EnumMembers\"\n  | \"HeritageClauseElement\"\n  | \"TupleElementTypes\"\n  | \"TypeMembers\"\n  | \"TypeParametersOrArguments\";\n\nconst TSErrors = Object.freeze({\n  ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier\",\n  ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier\",\n  DeclareClassFieldHasInitializer:\n    \"'declare' class fields cannot have an initializer\",\n  DuplicateModifier: \"Duplicate modifier: '%0'\",\n  EmptyHeritageClauseType: \"'%0' list cannot be empty.\",\n  IndexSignatureHasAbstract:\n    \"Index signatures cannot have the 'abstract' modifier\",\n  IndexSignatureHasAccessibility:\n    \"Index signatures cannot have an accessibility modifier ('%0')\",\n  IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier\",\n  OptionalTypeBeforeRequired:\n    \"A required element cannot follow an optional element.\",\n  PatternIsOptional:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  PrivateElementHasAbstract:\n    \"Private elements cannot have the 'abstract' modifier.\",\n  PrivateElementHasAccessibility:\n    \"Private elements cannot have an accessibility modifier ('%0')\",\n  TemplateTypeHasSubstitution:\n    \"Template literal types cannot have any substitution\",\n  TypeAnnotationAfterAssign:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  UnexpectedReadonly:\n    \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n  UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n  UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n  UnsupportedImportTypeArgument:\n    \"Argument in a type import must be a string literal\",\n  UnsupportedParameterPropertyKind:\n    \"A parameter property may not be declared using a binding pattern.\",\n  UnsupportedSignatureParameterKind:\n    \"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0\",\n});\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\nfunction keywordTypeFromName(\n  value: string,\n): N.TsKeywordTypeType | typeof undefined {\n  switch (value) {\n    case \"any\":\n      return \"TSAnyKeyword\";\n    case \"boolean\":\n      return \"TSBooleanKeyword\";\n    case \"bigint\":\n      return \"TSBigIntKeyword\";\n    case \"never\":\n      return \"TSNeverKeyword\";\n    case \"number\":\n      return \"TSNumberKeyword\";\n    case \"object\":\n      return \"TSObjectKeyword\";\n    case \"string\":\n      return \"TSStringKeyword\";\n    case \"symbol\":\n      return \"TSSymbolKeyword\";\n    case \"undefined\":\n      return \"TSUndefinedKeyword\";\n    case \"unknown\":\n      return \"TSUnknownKeyword\";\n    default:\n      return undefined;\n  }\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    getScopeHandler(): Class<TypeScriptScopeHandler> {\n      return TypeScriptScopeHandler;\n    }\n\n    tsIsIdentifier(): boolean {\n      // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n      // See https://github.com/Microsoft/TypeScript/issues/15008\n      return this.match(tt.name);\n    }\n\n    tsNextTokenCanFollowModifier() {\n      // Note: TypeScript's implementation is much more complicated because\n      // more things are considered modifiers there.\n      // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n      // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n      this.next();\n      return (\n        !this.hasPrecedingLineBreak() &&\n        !this.match(tt.parenL) &&\n        !this.match(tt.parenR) &&\n        !this.match(tt.colon) &&\n        !this.match(tt.eq) &&\n        !this.match(tt.question) &&\n        !this.match(tt.bang)\n      );\n    }\n\n    /** Parses a modifier matching one the given modifier names. */\n    tsParseModifier<T: TsModifier>(allowedModifiers: T[]): ?T {\n      if (!this.match(tt.name)) {\n        return undefined;\n      }\n\n      const modifier = this.state.value;\n      if (\n        allowedModifiers.indexOf(modifier) !== -1 &&\n        this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))\n      ) {\n        return modifier;\n      }\n      return undefined;\n    }\n\n    /** Parses a list of modifiers, in any order.\n     *  If you need a specific order, you must call this function multiple times:\n     *    this.tsParseModifiers(node, [\"public\"]);\n     *    this.tsParseModifiers(node, [\"abstract\", \"readonly\"]);\n     */\n    tsParseModifiers<T: TsModifier>(\n      modified: { [key: TsModifier]: ?true },\n      allowedModifiers: T[],\n    ): void {\n      for (;;) {\n        const startPos = this.state.start;\n        const modifier: ?T = this.tsParseModifier(allowedModifiers);\n\n        if (!modifier) break;\n\n        if (Object.hasOwnProperty.call(modified, modifier)) {\n          this.raise(startPos, TSErrors.DuplicateModifier, modifier);\n        }\n        modified[modifier] = true;\n      }\n    }\n\n    tsIsListTerminator(kind: ParsingContext): boolean {\n      switch (kind) {\n        case \"EnumMembers\":\n        case \"TypeMembers\":\n          return this.match(tt.braceR);\n        case \"HeritageClauseElement\":\n          return this.match(tt.braceL);\n        case \"TupleElementTypes\":\n          return this.match(tt.bracketR);\n        case \"TypeParametersOrArguments\":\n          return this.isRelational(\">\");\n      }\n\n      throw new Error(\"Unreachable\");\n    }\n\n    tsParseList<T: N.Node>(kind: ParsingContext, parseElement: () => T): T[] {\n      const result: T[] = [];\n      while (!this.tsIsListTerminator(kind)) {\n        // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n        result.push(parseElement());\n      }\n      return result;\n    }\n\n    tsParseDelimitedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n    ): T[] {\n      return nonNull(\n        this.tsParseDelimitedListWorker(\n          kind,\n          parseElement,\n          /* expectSuccess */ true,\n        ),\n      );\n    }\n\n    /**\n     * If !expectSuccess, returns undefined instead of failing to parse.\n     * If expectSuccess, parseElement should always return a defined value.\n     */\n    tsParseDelimitedListWorker<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => ?T,\n      expectSuccess: boolean,\n    ): ?(T[]) {\n      const result = [];\n\n      for (;;) {\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        const element = parseElement();\n        if (element == null) {\n          return undefined;\n        }\n        result.push(element);\n\n        if (this.eat(tt.comma)) {\n          continue;\n        }\n\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        if (expectSuccess) {\n          // This will fail with an error about a missing comma\n          this.expect(tt.comma);\n        }\n        return undefined;\n      }\n\n      return result;\n    }\n\n    tsParseBracketedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n      bracket: boolean,\n      skipFirstToken: boolean,\n    ): T[] {\n      if (!skipFirstToken) {\n        if (bracket) {\n          this.expect(tt.bracketL);\n        } else {\n          this.expectRelational(\"<\");\n        }\n      }\n\n      const result = this.tsParseDelimitedList(kind, parseElement);\n\n      if (bracket) {\n        this.expect(tt.bracketR);\n      } else {\n        this.expectRelational(\">\");\n      }\n\n      return result;\n    }\n\n    tsParseImportType(): N.TsImportType {\n      const node: N.TsImportType = this.startNode();\n      this.expect(tt._import);\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument);\n      }\n\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.argument = this.parseExprAtom();\n      this.expect(tt.parenR);\n\n      if (this.eat(tt.dot)) {\n        node.qualifier = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSImportType\");\n    }\n\n    tsParseEntityName(allowReservedWords: boolean): N.TsEntityName {\n      let entity: N.TsEntityName = this.parseIdentifier();\n      while (this.eat(tt.dot)) {\n        const node: N.TsQualifiedName = this.startNodeAtNode(entity);\n        node.left = entity;\n        node.right = this.parseIdentifier(allowReservedWords);\n        entity = this.finishNode(node, \"TSQualifiedName\");\n      }\n      return entity;\n    }\n\n    tsParseTypeReference(): N.TsTypeReference {\n      const node: N.TsTypeReference = this.startNode();\n      node.typeName = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (!this.hasPrecedingLineBreak() && this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSTypeReference\");\n    }\n\n    tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n      this.next();\n      const node: N.TsTypePredicate = this.startNodeAtNode(lhs);\n      node.parameterName = lhs;\n      node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n      return this.finishNode(node, \"TSTypePredicate\");\n    }\n\n    tsParseThisTypeNode(): N.TsThisType {\n      const node: N.TsThisType = this.startNode();\n      this.next();\n      return this.finishNode(node, \"TSThisType\");\n    }\n\n    tsParseTypeQuery(): N.TsTypeQuery {\n      const node: N.TsTypeQuery = this.startNode();\n      this.expect(tt._typeof);\n      if (this.match(tt._import)) {\n        node.exprName = this.tsParseImportType();\n      } else {\n        node.exprName = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      return this.finishNode(node, \"TSTypeQuery\");\n    }\n\n    tsParseTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsEatThenParseType(tt._extends);\n      node.default = this.tsEatThenParseType(tt.eq);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {\n      if (this.isRelational(\"<\")) {\n        return this.tsParseTypeParameters();\n      }\n    }\n\n    tsParseTypeParameters() {\n      const node: N.TsTypeParameterDeclaration = this.startNode();\n\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      node.params = this.tsParseBracketedList(\n        \"TypeParametersOrArguments\",\n        this.tsParseTypeParameter.bind(this),\n        /* bracket */ false,\n        /* skipFirstToken */ true,\n      );\n      return this.finishNode(node, \"TSTypeParameterDeclaration\");\n    }\n\n    tsTryNextParseConstantContext(): ?N.TsTypeReference {\n      if (this.lookahead().type === tt._const) {\n        this.next();\n        return this.tsParseTypeReference();\n      }\n      return null;\n    }\n\n    // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n    // but here it's always false, because this is only used for types.\n    tsFillSignature(\n      returnToken: TokenType,\n      signature: N.TsSignatureDeclaration,\n    ): void {\n      // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n      const returnTokenRequired = returnToken === tt.arrow;\n      signature.typeParameters = this.tsTryParseTypeParameters();\n      this.expect(tt.parenL);\n      signature.parameters = this.tsParseBindingListForSignature();\n      if (returnTokenRequired) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      } else if (this.match(returnToken)) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      }\n    }\n\n    tsParseBindingListForSignature(): $ReadOnlyArray<\n      N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern,\n    > {\n      return this.parseBindingList(tt.parenR, charCodes.rightParenthesis).map(\n        pattern => {\n          if (\n            pattern.type !== \"Identifier\" &&\n            pattern.type !== \"RestElement\" &&\n            pattern.type !== \"ObjectPattern\" &&\n            pattern.type !== \"ArrayPattern\"\n          ) {\n            this.raise(\n              pattern.start,\n              TSErrors.UnsupportedSignatureParameterKind,\n              pattern.type,\n            );\n          }\n          return (pattern: any);\n        },\n      );\n    }\n\n    tsParseTypeMemberSemicolon(): void {\n      if (!this.eat(tt.comma)) {\n        this.semicolon();\n      }\n    }\n\n    tsParseSignatureMember(\n      kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n      node: N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration,\n    ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n      this.tsFillSignature(tt.colon, node);\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, kind);\n    }\n\n    tsIsUnambiguouslyIndexSignature() {\n      this.next(); // Skip '{'\n      return this.eat(tt.name) && this.match(tt.colon);\n    }\n\n    tsTryParseIndexSignature(node: N.Node): ?N.TsIndexSignature {\n      if (\n        !(\n          this.match(tt.bracketL) &&\n          this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n        )\n      ) {\n        return undefined;\n      }\n\n      this.expect(tt.bracketL);\n      const id = this.parseIdentifier();\n      id.typeAnnotation = this.tsParseTypeAnnotation();\n      this.resetEndLocation(id); // set end position to end of type\n\n      this.expect(tt.bracketR);\n      node.parameters = [id];\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, \"TSIndexSignature\");\n    }\n\n    tsParsePropertyOrMethodSignature(\n      node: N.TsPropertySignature | N.TsMethodSignature,\n      readonly: boolean,\n    ): N.TsPropertySignature | N.TsMethodSignature {\n      if (this.eat(tt.question)) node.optional = true;\n      const nodeAny: any = node;\n\n      if (!readonly && (this.match(tt.parenL) || this.isRelational(\"<\"))) {\n        const method: N.TsMethodSignature = nodeAny;\n        this.tsFillSignature(tt.colon, method);\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(method, \"TSMethodSignature\");\n      } else {\n        const property: N.TsPropertySignature = nodeAny;\n        if (readonly) property.readonly = true;\n        const type = this.tsTryParseTypeAnnotation();\n        if (type) property.typeAnnotation = type;\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(property, \"TSPropertySignature\");\n      }\n    }\n\n    tsParseTypeMember(): N.TsTypeElement {\n      const node: any = this.startNode();\n\n      if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n        return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n      }\n\n      if (this.match(tt._new)) {\n        const id: N.Identifier = this.startNode();\n        this.next();\n        if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          return this.tsParseSignatureMember(\n            \"TSConstructSignatureDeclaration\",\n            node,\n          );\n        } else {\n          node.key = this.createIdentifier(id, \"new\");\n          return this.tsParsePropertyOrMethodSignature(node, false);\n        }\n      }\n\n      const readonly = !!this.tsParseModifier([\"readonly\"]);\n\n      const idx = this.tsTryParseIndexSignature(node);\n      if (idx) {\n        if (readonly) node.readonly = true;\n        return idx;\n      }\n\n      this.parsePropertyName(node, /* isPrivateNameAllowed */ false);\n      return this.tsParsePropertyOrMethodSignature(node, readonly);\n    }\n\n    tsParseTypeLiteral(): N.TsTypeLiteral {\n      const node: N.TsTypeLiteral = this.startNode();\n      node.members = this.tsParseObjectTypeMembers();\n      return this.finishNode(node, \"TSTypeLiteral\");\n    }\n\n    tsParseObjectTypeMembers(): $ReadOnlyArray<N.TsTypeElement> {\n      this.expect(tt.braceL);\n      const members = this.tsParseList(\n        \"TypeMembers\",\n        this.tsParseTypeMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return members;\n    }\n\n    tsIsStartOfMappedType(): boolean {\n      this.next();\n      if (this.eat(tt.plusMin)) {\n        return this.isContextual(\"readonly\");\n      }\n      if (this.isContextual(\"readonly\")) {\n        this.next();\n      }\n      if (!this.match(tt.bracketL)) {\n        return false;\n      }\n      this.next();\n      if (!this.tsIsIdentifier()) {\n        return false;\n      }\n      this.next();\n      return this.match(tt._in);\n    }\n\n    tsParseMappedTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsExpectThenParseType(tt._in);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsParseMappedType(): N.TsMappedType {\n      const node: N.TsMappedType = this.startNode();\n\n      this.expect(tt.braceL);\n\n      if (this.match(tt.plusMin)) {\n        node.readonly = this.state.value;\n        this.next();\n        this.expectContextual(\"readonly\");\n      } else if (this.eatContextual(\"readonly\")) {\n        node.readonly = true;\n      }\n\n      this.expect(tt.bracketL);\n      node.typeParameter = this.tsParseMappedTypeParameter();\n      this.expect(tt.bracketR);\n\n      if (this.match(tt.plusMin)) {\n        node.optional = this.state.value;\n        this.next();\n        this.expect(tt.question);\n      } else if (this.eat(tt.question)) {\n        node.optional = true;\n      }\n\n      node.typeAnnotation = this.tsTryParseType();\n      this.semicolon();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"TSMappedType\");\n    }\n\n    tsParseTupleType(): N.TsTupleType {\n      const node: N.TsTupleType = this.startNode();\n      node.elementTypes = this.tsParseBracketedList(\n        \"TupleElementTypes\",\n        this.tsParseTupleElementType.bind(this),\n        /* bracket */ true,\n        /* skipFirstToken */ false,\n      );\n\n      // Validate the elementTypes to ensure:\n      //   No mandatory elements may follow optional elements\n      //   If there's a rest element, it must be at the end of the tuple\n      let seenOptionalElement = false;\n      node.elementTypes.forEach(elementNode => {\n        if (elementNode.type === \"TSOptionalType\") {\n          seenOptionalElement = true;\n        } else if (seenOptionalElement && elementNode.type !== \"TSRestType\") {\n          this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired);\n        }\n      });\n\n      return this.finishNode(node, \"TSTupleType\");\n    }\n\n    tsParseTupleElementType(): N.TsType {\n      // parses `...TsType[]`\n      if (this.match(tt.ellipsis)) {\n        const restNode: N.TsRestType = this.startNode();\n        this.next(); // skips ellipsis\n        restNode.typeAnnotation = this.tsParseType();\n        if (\n          this.match(tt.comma) &&\n          this.lookaheadCharCode() !== charCodes.rightSquareBracket\n        ) {\n          this.raiseRestNotLast(this.state.start);\n        }\n        return this.finishNode(restNode, \"TSRestType\");\n      }\n\n      const type = this.tsParseType();\n      // parses `TsType?`\n      if (this.eat(tt.question)) {\n        const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type);\n        optionalTypeNode.typeAnnotation = type;\n        return this.finishNode(optionalTypeNode, \"TSOptionalType\");\n      }\n      return type;\n    }\n\n    tsParseParenthesizedType(): N.TsParenthesizedType {\n      const node = this.startNode();\n      this.expect(tt.parenL);\n      node.typeAnnotation = this.tsParseType();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSParenthesizedType\");\n    }\n\n    tsParseFunctionOrConstructorType(\n      type: \"TSFunctionType\" | \"TSConstructorType\",\n    ): N.TsFunctionOrConstructorType {\n      const node: N.TsFunctionOrConstructorType = this.startNode();\n      if (type === \"TSConstructorType\") {\n        this.expect(tt._new);\n      }\n      this.tsFillSignature(tt.arrow, node);\n      return this.finishNode(node, type);\n    }\n\n    tsParseLiteralTypeNode(): N.TsLiteralType {\n      const node: N.TsLiteralType = this.startNode();\n      node.literal = (() => {\n        switch (this.state.type) {\n          case tt.num:\n          case tt.string:\n          case tt._true:\n          case tt._false:\n            // For compatibility to estree we cannot call parseLiteral directly here\n            return this.parseExprAtom();\n          default:\n            throw this.unexpected();\n        }\n      })();\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseTemplateLiteralType(): N.TsType {\n      const node: N.TsLiteralType = this.startNode();\n      const templateNode = this.parseTemplate(false);\n      if (templateNode.expressions.length > 0) {\n        this.raise(\n          templateNode.expressions[0].start,\n          TSErrors.TemplateTypeHasSubstitution,\n        );\n      }\n      node.literal = templateNode;\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n      const thisKeyword = this.tsParseThisTypeNode();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        return this.tsParseThisTypePredicate(thisKeyword);\n      } else {\n        return thisKeyword;\n      }\n    }\n\n    tsParseNonArrayType(): N.TsType {\n      switch (this.state.type) {\n        case tt.name:\n        case tt._void:\n        case tt._null: {\n          const type = this.match(tt._void)\n            ? \"TSVoidKeyword\"\n            : this.match(tt._null)\n            ? \"TSNullKeyword\"\n            : keywordTypeFromName(this.state.value);\n          if (\n            type !== undefined &&\n            this.lookaheadCharCode() !== charCodes.dot\n          ) {\n            const node: N.TsKeywordType = this.startNode();\n            this.next();\n            return this.finishNode(node, type);\n          }\n          return this.tsParseTypeReference();\n        }\n        case tt.string:\n        case tt.num:\n        case tt._true:\n        case tt._false:\n          return this.tsParseLiteralTypeNode();\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            const node: N.TsLiteralType = this.startNode();\n            if (this.lookahead().type !== tt.num) {\n              throw this.unexpected();\n            }\n            node.literal = this.parseMaybeUnary();\n            return this.finishNode(node, \"TSLiteralType\");\n          }\n          break;\n        case tt._this:\n          return this.tsParseThisTypeOrThisTypePredicate();\n        case tt._typeof:\n          return this.tsParseTypeQuery();\n        case tt._import:\n          return this.tsParseImportType();\n        case tt.braceL:\n          return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n            ? this.tsParseMappedType()\n            : this.tsParseTypeLiteral();\n        case tt.bracketL:\n          return this.tsParseTupleType();\n        case tt.parenL:\n          return this.tsParseParenthesizedType();\n        case tt.backQuote:\n          return this.tsParseTemplateLiteralType();\n      }\n\n      throw this.unexpected();\n    }\n\n    tsParseArrayTypeOrHigher(): N.TsType {\n      let type = this.tsParseNonArrayType();\n      while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n        if (this.match(tt.bracketR)) {\n          const node: N.TsArrayType = this.startNodeAtNode(type);\n          node.elementType = type;\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSArrayType\");\n        } else {\n          const node: N.TsIndexedAccessType = this.startNodeAtNode(type);\n          node.objectType = type;\n          node.indexType = this.tsParseType();\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSIndexedAccessType\");\n        }\n      }\n      return type;\n    }\n\n    tsParseTypeOperator(\n      operator: \"keyof\" | \"unique\" | \"readonly\",\n    ): N.TsTypeOperator {\n      const node: N.TsTypeOperator = this.startNode();\n      this.expectContextual(operator);\n      node.operator = operator;\n      node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n      if (operator === \"readonly\") {\n        this.tsCheckTypeAnnotationForReadOnly(node);\n      }\n\n      return this.finishNode(node, \"TSTypeOperator\");\n    }\n\n    tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n      switch (node.typeAnnotation.type) {\n        case \"TSTupleType\":\n        case \"TSArrayType\":\n          return;\n        default:\n          this.raise(node.start, TSErrors.UnexpectedReadonly);\n      }\n    }\n\n    tsParseInferType(): N.TsInferType {\n      const node = this.startNode();\n      this.expectContextual(\"infer\");\n      const typeParameter = this.startNode();\n      typeParameter.name = this.parseIdentifierName(typeParameter.start);\n      node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n      return this.finishNode(node, \"TSInferType\");\n    }\n\n    tsParseTypeOperatorOrHigher(): N.TsType {\n      const operator = [\"keyof\", \"unique\", \"readonly\"].find(kw =>\n        this.isContextual(kw),\n      );\n      return operator\n        ? this.tsParseTypeOperator(operator)\n        : this.isContextual(\"infer\")\n        ? this.tsParseInferType()\n        : this.tsParseArrayTypeOrHigher();\n    }\n\n    tsParseUnionOrIntersectionType(\n      kind: \"TSUnionType\" | \"TSIntersectionType\",\n      parseConstituentType: () => N.TsType,\n      operator: TokenType,\n    ): N.TsType {\n      this.eat(operator);\n      let type = parseConstituentType();\n      if (this.match(operator)) {\n        const types = [type];\n        while (this.eat(operator)) {\n          types.push(parseConstituentType());\n        }\n        const node: N.TsUnionType | N.TsIntersectionType = this.startNodeAtNode(\n          type,\n        );\n        node.types = types;\n        type = this.finishNode(node, kind);\n      }\n      return type;\n    }\n\n    tsParseIntersectionTypeOrHigher(): N.TsType {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSIntersectionType\",\n        this.tsParseTypeOperatorOrHigher.bind(this),\n        tt.bitwiseAND,\n      );\n    }\n\n    tsParseUnionTypeOrHigher() {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSUnionType\",\n        this.tsParseIntersectionTypeOrHigher.bind(this),\n        tt.bitwiseOR,\n      );\n    }\n\n    tsIsStartOfFunctionType() {\n      if (this.isRelational(\"<\")) {\n        return true;\n      }\n      return (\n        this.match(tt.parenL) &&\n        this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n      );\n    }\n\n    tsSkipParameterStart(): boolean {\n      if (this.match(tt.name) || this.match(tt._this)) {\n        this.next();\n        return true;\n      }\n\n      if (this.match(tt.braceL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.braceL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.braceR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      if (this.match(tt.bracketL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.bracketL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.bracketR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      return false;\n    }\n\n    tsIsUnambiguouslyStartOfFunctionType(): boolean {\n      this.next();\n      if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n        // ( )\n        // ( ...\n        return true;\n      }\n      if (this.tsSkipParameterStart()) {\n        if (\n          this.match(tt.colon) ||\n          this.match(tt.comma) ||\n          this.match(tt.question) ||\n          this.match(tt.eq)\n        ) {\n          // ( xxx :\n          // ( xxx ,\n          // ( xxx ?\n          // ( xxx =\n          return true;\n        }\n        if (this.match(tt.parenR)) {\n          this.next();\n          if (this.match(tt.arrow)) {\n            // ( xxx ) =>\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n\n    tsParseTypeOrTypePredicateAnnotation(\n      returnToken: TokenType,\n    ): N.TsTypeAnnotation {\n      return this.tsInType(() => {\n        const t: N.TsTypeAnnotation = this.startNode();\n        this.expect(returnToken);\n\n        const asserts = this.tsTryParse(\n          this.tsParseTypePredicateAsserts.bind(this),\n        );\n\n        if (asserts && this.match(tt._this)) {\n          // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n          // : asserts this is type\n          let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n          // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n          // : asserts this\n          if (thisTypePredicate.type === \"TSThisType\") {\n            const node: N.TsTypePredicate = this.startNodeAtNode(t);\n            node.parameterName = (thisTypePredicate: N.TsThisType);\n            node.asserts = true;\n            thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n          } else {\n            (thisTypePredicate: N.TsTypePredicate).asserts = true;\n          }\n          t.typeAnnotation = thisTypePredicate;\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        const typePredicateVariable =\n          this.tsIsIdentifier() &&\n          this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n        if (!typePredicateVariable) {\n          if (!asserts) {\n            // : type\n            return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n          }\n\n          const node: N.TsTypePredicate = this.startNodeAtNode(t);\n          // : asserts foo\n          node.parameterName = this.parseIdentifier();\n          node.asserts = asserts;\n          t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        // : asserts foo is type\n        const type = this.tsParseTypeAnnotation(/* eatColon */ false);\n        const node = this.startNodeAtNode(t);\n        node.parameterName = typePredicateVariable;\n        node.typeAnnotation = type;\n        node.asserts = asserts;\n        t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n        return this.finishNode(t, \"TSTypeAnnotation\");\n      });\n    }\n\n    tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon)\n        ? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)\n        : undefined;\n    }\n\n    tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;\n    }\n\n    tsTryParseType(): ?N.TsType {\n      return this.tsEatThenParseType(tt.colon);\n    }\n\n    tsParseTypePredicatePrefix(): ?N.Identifier {\n      const id = this.parseIdentifier();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        this.next();\n        return id;\n      }\n    }\n\n    tsParseTypePredicateAsserts(): boolean {\n      if (\n        !this.match(tt.name) ||\n        this.state.value !== \"asserts\" ||\n        this.hasPrecedingLineBreak()\n      ) {\n        return false;\n      }\n      const containsEsc = this.state.containsEsc;\n      this.next();\n      if (!this.match(tt.name) && !this.match(tt._this)) {\n        return false;\n      }\n\n      if (containsEsc) {\n        this.raise(\n          this.state.lastTokStart,\n          Errors.InvalidEscapedReservedWord,\n          \"asserts\",\n        );\n      }\n\n      return true;\n    }\n\n    tsParseTypeAnnotation(\n      eatColon = true,\n      t: N.TsTypeAnnotation = this.startNode(),\n    ): N.TsTypeAnnotation {\n      this.tsInType(() => {\n        if (eatColon) this.expect(tt.colon);\n        t.typeAnnotation = this.tsParseType();\n      });\n      return this.finishNode(t, \"TSTypeAnnotation\");\n    }\n\n    /** Be sure to be in a type context before calling this, using `tsInType`. */\n    tsParseType(): N.TsType {\n      // Need to set `state.inType` so that we don't parse JSX in a type context.\n      assert(this.state.inType);\n      const type = this.tsParseNonConditionalType();\n      if (this.hasPrecedingLineBreak() || !this.eat(tt._extends)) {\n        return type;\n      }\n      const node: N.TsConditionalType = this.startNodeAtNode(type);\n      node.checkType = type;\n      node.extendsType = this.tsParseNonConditionalType();\n      this.expect(tt.question);\n      node.trueType = this.tsParseType();\n      this.expect(tt.colon);\n      node.falseType = this.tsParseType();\n      return this.finishNode(node, \"TSConditionalType\");\n    }\n\n    tsParseNonConditionalType(): N.TsType {\n      if (this.tsIsStartOfFunctionType()) {\n        return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n      }\n      if (this.match(tt._new)) {\n        // As in `new () => Date`\n        return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n      }\n      return this.tsParseUnionTypeOrHigher();\n    }\n\n    tsParseTypeAssertion(): N.TsTypeAssertion {\n      const node: N.TsTypeAssertion = this.startNode();\n      const _const = this.tsTryNextParseConstantContext();\n      node.typeAnnotation = _const || this.tsNextThenParseType();\n      this.expectRelational(\">\");\n      node.expression = this.parseMaybeUnary();\n      return this.finishNode(node, \"TSTypeAssertion\");\n    }\n\n    tsParseHeritageClause(\n      descriptor: string,\n    ): $ReadOnlyArray<N.TsExpressionWithTypeArguments> {\n      const originalStart = this.state.start;\n\n      const delimitedList = this.tsParseDelimitedList(\n        \"HeritageClauseElement\",\n        this.tsParseExpressionWithTypeArguments.bind(this),\n      );\n\n      if (!delimitedList.length) {\n        this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor);\n      }\n\n      return delimitedList;\n    }\n\n    tsParseExpressionWithTypeArguments(): N.TsExpressionWithTypeArguments {\n      const node: N.TsExpressionWithTypeArguments = this.startNode();\n      // Note: TS uses parseLeftHandSideExpressionOrHigher,\n      // then has grammar errors later if it's not an EntityName.\n      node.expression = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n\n      return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n    }\n\n    tsParseInterfaceDeclaration(\n      node: N.TsInterfaceDeclaration,\n    ): N.TsInterfaceDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_TS_INTERFACE,\n        undefined,\n        \"typescript interface declaration\",\n      );\n      node.typeParameters = this.tsTryParseTypeParameters();\n      if (this.eat(tt._extends)) {\n        node.extends = this.tsParseHeritageClause(\"extends\");\n      }\n      const body: N.TSInterfaceBody = this.startNode();\n      body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n      node.body = this.finishNode(body, \"TSInterfaceBody\");\n      return this.finishNode(node, \"TSInterfaceDeclaration\");\n    }\n\n    tsParseTypeAliasDeclaration(\n      node: N.TsTypeAliasDeclaration,\n    ): N.TsTypeAliasDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(node.id, BIND_TS_TYPE, undefined, \"typescript type alias\");\n\n      node.typeParameters = this.tsTryParseTypeParameters();\n      node.typeAnnotation = this.tsExpectThenParseType(tt.eq);\n      this.semicolon();\n      return this.finishNode(node, \"TSTypeAliasDeclaration\");\n    }\n\n    tsInNoContext<T>(cb: () => T): T {\n      const oldContext = this.state.context;\n      this.state.context = [oldContext[0]];\n      try {\n        return cb();\n      } finally {\n        this.state.context = oldContext;\n      }\n    }\n\n    /**\n     * Runs `cb` in a type context.\n     * This should be called one token *before* the first type token,\n     * so that the call to `next()` is run in type context.\n     */\n    tsInType<T>(cb: () => T): T {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      try {\n        return cb();\n      } finally {\n        this.state.inType = oldInType;\n      }\n    }\n\n    tsEatThenParseType(token: TokenType): N.TsType | typeof undefined {\n      return !this.match(token) ? undefined : this.tsNextThenParseType();\n    }\n\n    tsExpectThenParseType(token: TokenType): N.TsType {\n      return this.tsDoThenParseType(() => this.expect(token));\n    }\n\n    tsNextThenParseType(): N.TsType {\n      return this.tsDoThenParseType(() => this.next());\n    }\n\n    tsDoThenParseType(cb: () => void): N.TsType {\n      return this.tsInType(() => {\n        cb();\n        return this.tsParseType();\n      });\n    }\n\n    tsParseEnumMember(): N.TsEnumMember {\n      const node: N.TsEnumMember = this.startNode();\n      // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n      node.id = this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(/* liberal */ true);\n      if (this.eat(tt.eq)) {\n        node.initializer = this.parseMaybeAssign();\n      }\n      return this.finishNode(node, \"TSEnumMember\");\n    }\n\n    tsParseEnumDeclaration(\n      node: N.TsEnumDeclaration,\n      isConst: boolean,\n    ): N.TsEnumDeclaration {\n      if (isConst) node.const = true;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM,\n        undefined,\n        \"typescript enum declaration\",\n      );\n\n      this.expect(tt.braceL);\n      node.members = this.tsParseDelimitedList(\n        \"EnumMembers\",\n        this.tsParseEnumMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"TSEnumDeclaration\");\n    }\n\n    tsParseModuleBlock(): N.TsModuleBlock {\n      const node: N.TsModuleBlock = this.startNode();\n      this.scope.enter(SCOPE_OTHER);\n\n      this.expect(tt.braceL);\n      // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n      this.parseBlockOrModuleBlockBody(\n        (node.body = []),\n        /* directives */ undefined,\n        /* topLevel */ true,\n        /* end */ tt.braceR,\n      );\n      this.scope.exit();\n      return this.finishNode(node, \"TSModuleBlock\");\n    }\n\n    tsParseModuleOrNamespaceDeclaration(\n      node: N.TsModuleDeclaration,\n      nested?: boolean = false,\n    ): N.TsModuleDeclaration {\n      node.id = this.parseIdentifier();\n\n      if (!nested) {\n        this.checkLVal(\n          node.id,\n          BIND_TS_NAMESPACE,\n          null,\n          \"module or namespace declaration\",\n        );\n      }\n\n      if (this.eat(tt.dot)) {\n        const inner = this.startNode();\n        this.tsParseModuleOrNamespaceDeclaration(inner, true);\n        node.body = inner;\n      } else {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      }\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseAmbientExternalModuleDeclaration(\n      node: N.TsModuleDeclaration,\n    ): N.TsModuleDeclaration {\n      if (this.isContextual(\"global\")) {\n        node.global = true;\n        node.id = this.parseIdentifier();\n      } else if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        this.unexpected();\n      }\n      if (this.match(tt.braceL)) {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      } else {\n        this.semicolon();\n      }\n\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseImportEqualsDeclaration(\n      node: N.TsImportEqualsDeclaration,\n      isExport?: boolean,\n    ): N.TsImportEqualsDeclaration {\n      node.isExport = isExport || false;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_LEXICAL,\n        undefined,\n        \"import equals declaration\",\n      );\n      this.expect(tt.eq);\n      node.moduleReference = this.tsParseModuleReference();\n      this.semicolon();\n      return this.finishNode(node, \"TSImportEqualsDeclaration\");\n    }\n\n    tsIsExternalModuleReference(): boolean {\n      return (\n        this.isContextual(\"require\") &&\n        this.lookaheadCharCode() === charCodes.leftParenthesis\n      );\n    }\n\n    tsParseModuleReference(): N.TsModuleReference {\n      return this.tsIsExternalModuleReference()\n        ? this.tsParseExternalModuleReference()\n        : this.tsParseEntityName(/* allowReservedWords */ false);\n    }\n\n    tsParseExternalModuleReference(): N.TsExternalModuleReference {\n      const node: N.TsExternalModuleReference = this.startNode();\n      this.expectContextual(\"require\");\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        throw this.unexpected();\n      }\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.expression = this.parseExprAtom();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSExternalModuleReference\");\n    }\n\n    // Utilities\n\n    tsLookAhead<T>(f: () => T): T {\n      const state = this.state.clone();\n      const res = f();\n      this.state = state;\n      return res;\n    }\n\n    tsTryParseAndCatch<T: ?N.NodeBase>(f: () => T): ?T {\n      const result = this.tryParse(abort => f() || abort());\n\n      if (result.aborted || !result.node) return undefined;\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    tsTryParse<T>(f: () => ?T): ?T {\n      const state = this.state.clone();\n      const result = f();\n      if (result !== undefined && result !== false) {\n        return result;\n      } else {\n        this.state = state;\n        return undefined;\n      }\n    }\n\n    tsTryParseDeclare(nany: any): ?N.Declaration {\n      if (this.isLineTerminator()) {\n        return;\n      }\n      let starttype = this.state.type;\n      let kind;\n\n      if (this.isContextual(\"let\")) {\n        starttype = tt._var;\n        kind = \"let\";\n      }\n\n      switch (starttype) {\n        case tt._function:\n          return this.parseFunctionStatement(\n            nany,\n            /* async */ false,\n            /* declarationPosition */ true,\n          );\n        case tt._class:\n          // While this is also set by tsParseExpressionStatement, we need to set it\n          // before parsing the class declaration to now how to register it in the scope.\n          nany.declare = true;\n          return this.parseClass(\n            nany,\n            /* isStatement */ true,\n            /* optionalId */ false,\n          );\n        case tt._const:\n          if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n            // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n            this.expect(tt._const);\n            this.expectContextual(\"enum\");\n            return this.tsParseEnumDeclaration(nany, /* isConst */ true);\n          }\n        // falls through\n        case tt._var:\n          kind = kind || this.state.value;\n          return this.parseVarStatement(nany, kind);\n        case tt.name: {\n          const value = this.state.value;\n          if (value === \"global\") {\n            return this.tsParseAmbientExternalModuleDeclaration(nany);\n          } else {\n            return this.tsParseDeclaration(nany, value, /* next */ true);\n          }\n        }\n      }\n    }\n\n    // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n    tsTryParseExportDeclaration(): ?N.Declaration {\n      return this.tsParseDeclaration(\n        this.startNode(),\n        this.state.value,\n        /* next */ true,\n      );\n    }\n\n    tsParseExpressionStatement(node: any, expr: N.Identifier): ?N.Declaration {\n      switch (expr.name) {\n        case \"declare\": {\n          const declaration = this.tsTryParseDeclare(node);\n          if (declaration) {\n            declaration.declare = true;\n            return declaration;\n          }\n          break;\n        }\n        case \"global\":\n          // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n          // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n          if (this.match(tt.braceL)) {\n            this.scope.enter(SCOPE_TS_MODULE);\n            this.prodParam.enter(PARAM);\n            const mod: N.TsModuleDeclaration = node;\n            mod.global = true;\n            mod.id = expr;\n            mod.body = this.tsParseModuleBlock();\n            this.scope.exit();\n            this.prodParam.exit();\n            return this.finishNode(mod, \"TSModuleDeclaration\");\n          }\n          break;\n\n        default:\n          return this.tsParseDeclaration(node, expr.name, /* next */ false);\n      }\n    }\n\n    // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n    tsParseDeclaration(\n      node: any,\n      value: string,\n      next: boolean,\n    ): ?N.Declaration {\n      switch (value) {\n        case \"abstract\":\n          if (this.tsCheckLineTerminatorAndMatch(tt._class, next)) {\n            const cls: N.ClassDeclaration = node;\n            cls.abstract = true;\n            if (next) {\n              this.next();\n              if (!this.match(tt._class)) {\n                this.unexpected(null, tt._class);\n              }\n            }\n            return this.parseClass(\n              cls,\n              /* isStatement */ true,\n              /* optionalId */ false,\n            );\n          }\n          break;\n\n        case \"enum\":\n          if (next || this.match(tt.name)) {\n            if (next) this.next();\n            return this.tsParseEnumDeclaration(node, /* isConst */ false);\n          }\n          break;\n\n        case \"interface\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseInterfaceDeclaration(node);\n          }\n          break;\n\n        case \"module\":\n          if (next) this.next();\n          if (this.match(tt.string)) {\n            return this.tsParseAmbientExternalModuleDeclaration(node);\n          } else if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"namespace\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"type\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseTypeAliasDeclaration(node);\n          }\n          break;\n      }\n    }\n\n    tsCheckLineTerminatorAndMatch(tokenType: TokenType, next: boolean) {\n      return (next || this.match(tokenType)) && !this.isLineTerminator();\n    }\n\n    tsTryParseGenericAsyncArrowFunction(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      if (!this.isRelational(\"<\")) {\n        return undefined;\n      }\n\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      const res: ?N.ArrowFunctionExpression = this.tsTryParseAndCatch(() => {\n        const node: N.ArrowFunctionExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.typeParameters = this.tsParseTypeParameters();\n        // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n        super.parseFunctionParams(node);\n        node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n        this.expect(tt.arrow);\n        return node;\n      });\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n\n      if (!res) {\n        return undefined;\n      }\n\n      return this.parseArrowExpression(\n        res,\n        /* params are already set */ null,\n        /* async */ true,\n      );\n    }\n\n    tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n      const node = this.startNode();\n      node.params = this.tsInType(() =>\n        // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n        this.tsInNoContext(() => {\n          this.expectRelational(\"<\");\n          return this.tsParseDelimitedList(\n            \"TypeParametersOrArguments\",\n            this.tsParseType.bind(this),\n          );\n        }),\n      );\n      // This reads the next token after the `>` too, so do this in the enclosing context.\n      // But be sure not to parse a regex in the jsx expression `<C<number> />`, so set exprAllowed = false\n      this.state.exprAllowed = false;\n      this.expectRelational(\">\");\n      return this.finishNode(node, \"TSTypeParameterInstantiation\");\n    }\n\n    tsIsDeclarationStart(): boolean {\n      if (this.match(tt.name)) {\n        switch (this.state.value) {\n          case \"abstract\":\n          case \"declare\":\n          case \"enum\":\n          case \"interface\":\n          case \"module\":\n          case \"namespace\":\n          case \"type\":\n            return true;\n        }\n      }\n\n      return false;\n    }\n\n    // ======================================================\n    // OVERRIDES\n    // ======================================================\n\n    isExportDefaultSpecifier(): boolean {\n      if (this.tsIsDeclarationStart()) return false;\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseAssignableListItem(\n      allowModifiers: ?boolean,\n      decorators: N.Decorator[],\n    ): N.Pattern | N.TSParameterProperty {\n      // Store original location/position to include modifiers in range\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      let accessibility: ?N.Accessibility;\n      let readonly = false;\n      if (allowModifiers) {\n        accessibility = this.parseAccessModifier();\n        readonly = !!this.tsParseModifier([\"readonly\"]);\n      }\n\n      const left = this.parseMaybeDefault();\n      this.parseAssignableListItemTypes(left);\n      const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n      if (accessibility || readonly) {\n        const pp: N.TSParameterProperty = this.startNodeAt(startPos, startLoc);\n        if (decorators.length) {\n          pp.decorators = decorators;\n        }\n        if (accessibility) pp.accessibility = accessibility;\n        if (readonly) pp.readonly = readonly;\n        if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n          this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind);\n        }\n        pp.parameter = ((elt: any): N.Identifier | N.AssignmentPattern);\n        return this.finishNode(pp, \"TSParameterProperty\");\n      }\n\n      if (decorators.length) {\n        left.decorators = decorators;\n      }\n\n      return elt;\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n      }\n\n      const bodilessType =\n        type === \"FunctionDeclaration\"\n          ? \"TSDeclareFunction\"\n          : type === \"ClassMethod\"\n          ? \"TSDeclareMethod\"\n          : undefined;\n      if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n        this.finishNode(node, bodilessType);\n        return;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    registerFunctionStatementId(node: N.Function): void {\n      if (!node.body && node.id) {\n        // Function ids are validated after parsing their body.\n        // For bodyless function, we need to do it here.\n        this.checkLVal(node.id, BIND_TS_AMBIENT, null, \"function name\");\n      } else {\n        super.registerFunctionStatementId(...arguments);\n      }\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      state: N.ParseSubscriptState,\n    ): N.Expression {\n      if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n        this.state.exprAllowed = false;\n        this.next();\n\n        const nonNullExpression: N.TsNonNullExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        nonNullExpression.expression = base;\n        return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n      }\n\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // There are number of things we are going to \"maybe\" parse, like type arguments on\n        // tagged template expressions. If any of them fail, walk it back and continue.\n        const result = this.tsTryParseAndCatch(() => {\n          if (!noCalls && this.atPossibleAsyncArrow(base)) {\n            // Almost certainly this is a generic async function `async <T>() => ...\n            // But it might be a call with a type argument `async<T>();`\n            const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(\n              startPos,\n              startLoc,\n            );\n            if (asyncArrowFn) {\n              return asyncArrowFn;\n            }\n          }\n\n          const node: N.CallExpression = this.startNodeAt(startPos, startLoc);\n          node.callee = base;\n\n          const typeArguments = this.tsParseTypeArguments();\n\n          if (typeArguments) {\n            if (!noCalls && this.eat(tt.parenL)) {\n              // possibleAsync always false here, because we would have handled it above.\n              // $FlowIgnore (won't be any undefined arguments)\n              node.arguments = this.parseCallExpressionArguments(\n                tt.parenR,\n                /* possibleAsync */ false,\n              );\n              node.typeParameters = typeArguments;\n              return this.finishCallExpression(node, state.optionalChainMember);\n            } else if (this.match(tt.backQuote)) {\n              return this.parseTaggedTemplateExpression(\n                startPos,\n                startLoc,\n                base,\n                state,\n                typeArguments,\n              );\n            }\n          }\n\n          this.unexpected();\n        });\n\n        if (result) return result;\n      }\n\n      return super.parseSubscript(base, startPos, startLoc, noCalls, state);\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // 99% certain this is `new C<T>();`. But may be `new C < T;`, which is also legal.\n        const typeParameters = this.tsTryParseAndCatch(() => {\n          const args = this.tsParseTypeArguments();\n          if (!this.match(tt.parenL)) this.unexpected();\n          return args;\n        });\n        if (typeParameters) {\n          node.typeParameters = typeParameters;\n        }\n      }\n\n      super.parseNewArguments(node);\n    }\n\n    parseExprOp(\n      left: N.Expression,\n      leftStartPos: number,\n      leftStartLoc: Position,\n      minPrec: number,\n      noIn: ?boolean,\n    ) {\n      if (\n        nonNull(tt._in.binop) > minPrec &&\n        !this.hasPrecedingLineBreak() &&\n        this.isContextual(\"as\")\n      ) {\n        const node: N.TsAsExpression = this.startNodeAt(\n          leftStartPos,\n          leftStartLoc,\n        );\n        node.expression = left;\n        const _const = this.tsTryNextParseConstantContext();\n        if (_const) {\n          node.typeAnnotation = _const;\n        } else {\n          node.typeAnnotation = this.tsNextThenParseType();\n        }\n        this.finishNode(node, \"TSAsExpression\");\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n\n      return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn);\n    }\n\n    checkReservedWord(\n      word: string, // eslint-disable-line no-unused-vars\n      startLoc: number, // eslint-disable-line no-unused-vars\n      checkKeywords: boolean, // eslint-disable-line no-unused-vars\n      // eslint-disable-next-line no-unused-vars\n      isBinding: boolean,\n    ): void {\n      // Don't bother checking for TypeScript code.\n      // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n      // And we have a type checker anyway, so don't bother having the parser do it.\n    }\n\n    /*\n    Don't bother doing this check in TypeScript code because:\n    1. We may have a nested export statement with the same name:\n      export const x = 0;\n      export namespace N {\n        export const x = 1;\n      }\n    2. We have a type checker to warn us about this sort of thing.\n    */\n    checkDuplicateExports() {}\n\n    parseImport(node: N.Node): N.AnyImport {\n      if (this.match(tt.name) || this.match(tt.star) || this.match(tt.braceL)) {\n        const ahead = this.lookahead();\n\n        if (this.match(tt.name) && ahead.type === tt.eq) {\n          return this.tsParseImportEqualsDeclaration(node);\n        }\n\n        if (\n          this.isContextual(\"type\") &&\n          // import type, { a } from \"b\";\n          ahead.type !== tt.comma &&\n          // import type from \"a\";\n          !(ahead.type === tt.name && ahead.value === \"from\")\n        ) {\n          node.importKind = \"type\";\n          this.next();\n        } else {\n          node.importKind = \"value\";\n        }\n      }\n\n      const importNode = super.parseImport(node);\n      /*:: invariant(importNode.type !== \"TSImportEqualsDeclaration\") */\n\n      // `import type` can only be used on imports with named imports or with a\n      // default import - but not both\n      if (\n        importNode.importKind === \"type\" &&\n        importNode.specifiers.length > 1 &&\n        importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n      ) {\n        this.raise(\n          importNode.start,\n          \"A type-only import can specify a default import or named bindings, but not both.\",\n        );\n      }\n\n      return importNode;\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      if (this.match(tt._import)) {\n        // `export import A = B;`\n        this.expect(tt._import);\n        return this.tsParseImportEqualsDeclaration(node, /* isExport */ true);\n      } else if (this.eat(tt.eq)) {\n        // `export = x;`\n        const assign: N.TsExportAssignment = node;\n        assign.expression = this.parseExpression();\n        this.semicolon();\n        return this.finishNode(assign, \"TSExportAssignment\");\n      } else if (this.eatContextual(\"as\")) {\n        // `export as namespace A;`\n        const decl: N.TsNamespaceExportDeclaration = node;\n        // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n        this.expectContextual(\"namespace\");\n        decl.id = this.parseIdentifier();\n        this.semicolon();\n        return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n      } else {\n        if (this.isContextual(\"type\") && this.lookahead().type === tt.braceL) {\n          this.next();\n          node.exportKind = \"type\";\n        } else {\n          node.exportKind = \"value\";\n        }\n\n        return super.parseExport(node);\n      }\n    }\n\n    isAbstractClass(): boolean {\n      return (\n        this.isContextual(\"abstract\") && this.lookahead().type === tt._class\n      );\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.isAbstractClass()) {\n        const cls = this.startNode();\n        this.next(); // Skip \"abstract\"\n        this.parseClass(cls, true, true);\n        cls.abstract = true;\n        return cls;\n      }\n\n      // export default interface allowed in:\n      // https://github.com/Microsoft/TypeScript/pull/16040\n      if (this.state.value === \"interface\") {\n        const result = this.tsParseDeclaration(\n          this.startNode(),\n          this.state.value,\n          true,\n        );\n\n        if (result) return result;\n      }\n\n      return super.parseExportDefaultExpression();\n    }\n\n    parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n      if (this.state.type === tt._const) {\n        const ahead = this.lookahead();\n        if (ahead.type === tt.name && ahead.value === \"enum\") {\n          const node: N.TsEnumDeclaration = this.startNode();\n          this.expect(tt._const);\n          this.expectContextual(\"enum\");\n          return this.tsParseEnumDeclaration(node, /* isConst */ true);\n        }\n      }\n      return super.parseStatementContent(context, topLevel);\n    }\n\n    parseAccessModifier(): ?N.Accessibility {\n      return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"declare\"]);\n      const accessibility = this.parseAccessModifier();\n      if (accessibility) member.accessibility = accessibility;\n      this.tsParseModifiers(member, [\"declare\"]);\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n    }\n\n    parseClassMemberWithIsStatic(\n      classBody: N.ClassBody,\n      member: N.ClassMember | N.TsIndexSignature,\n      state: { hadConstructor: boolean },\n      isStatic: boolean,\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"abstract\", \"readonly\", \"declare\"]);\n\n      const idx = this.tsTryParseIndexSignature(member);\n      if (idx) {\n        classBody.body.push(idx);\n\n        if ((member: any).abstract) {\n          this.raise(member.start, TSErrors.IndexSignatureHasAbstract);\n        }\n        if (isStatic) {\n          this.raise(member.start, TSErrors.IndexSignatureHasStatic);\n        }\n        if ((member: any).accessibility) {\n          this.raise(\n            member.start,\n            TSErrors.IndexSignatureHasAccessibility,\n            (member: any).accessibility,\n          );\n        }\n\n        return;\n      }\n\n      /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n      super.parseClassMemberWithIsStatic(\n        classBody,\n        member,\n        state,\n        isStatic,\n        constructorAllowsSuper,\n      );\n    }\n\n    parsePostMemberNameModifiers(\n      methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      const optional = this.eat(tt.question);\n      if (optional) methodOrProp.optional = true;\n\n      if ((methodOrProp: any).readonly && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly);\n      }\n\n      if ((methodOrProp: any).declare && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare);\n      }\n    }\n\n    // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n    // is that e.g. `type()` is valid JS, so we must try parsing that first.\n    // If it's really a type, we will parse `type` as the statement, and can correct it here\n    // by parsing the rest.\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.Statement {\n      const decl =\n        expr.type === \"Identifier\"\n          ? this.tsParseExpressionStatement(node, expr)\n          : undefined;\n      return decl || super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n    shouldParseExportDeclaration(): boolean {\n      if (this.tsIsDeclarationStart()) return true;\n      return super.shouldParseExportDeclaration();\n    }\n\n    // An apparent conditional expression could actually be an optional parameter in an arrow function.\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      // only do the expensive clone if there is a question mark\n      // and if we come from inside parens\n      if (!refNeedsArrowPos || !this.match(tt.question)) {\n        return super.parseConditional(\n          expr,\n          noIn,\n          startPos,\n          startLoc,\n          refNeedsArrowPos,\n        );\n      }\n\n      const result = this.tryParse(() =>\n        super.parseConditional(expr, noIn, startPos, startLoc),\n      );\n\n      if (!result.node) {\n        // $FlowIgnore\n        refNeedsArrowPos.start = result.error.pos || this.state.start;\n        return expr;\n      }\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    // Note: These \"type casts\" are *not* valid TS expressions.\n    // But we parse them here and change them when completing the arrow function.\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      // Store original location/position\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      // \"export declare\" is equivalent to just \"export\".\n      const isDeclare = this.eatContextual(\"declare\");\n\n      let declaration: ?N.Declaration;\n\n      if (this.match(tt.name)) {\n        declaration = this.tsTryParseExportDeclaration();\n      }\n      if (!declaration) {\n        declaration = super.parseExportDeclaration(node);\n      }\n      if (\n        declaration &&\n        (declaration.type === \"TSInterfaceDeclaration\" ||\n          declaration.type === \"TSTypeAliasDeclaration\" ||\n          isDeclare)\n      ) {\n        node.exportKind = \"type\";\n      }\n\n      if (declaration && isDeclare) {\n        // Reset location to include `declare` in range\n        this.resetStartLocation(declaration, startPos, startLoc);\n\n        declaration.declare = true;\n      }\n\n      return declaration;\n    }\n\n    parseClassId(\n      node: N.Class,\n      isStatement: boolean,\n      optionalId: ?boolean,\n    ): void {\n      if ((!isStatement || optionalId) && this.isContextual(\"implements\")) {\n        return;\n      }\n\n      super.parseClassId(\n        node,\n        isStatement,\n        optionalId,\n        (node: any).declare ? BIND_TS_AMBIENT : BIND_CLASS,\n      );\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n    }\n\n    parseClassPropertyAnnotation(\n      node: N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      if (!node.optional && this.eat(tt.bang)) {\n        node.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n    }\n\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      this.parseClassPropertyAnnotation(node);\n\n      if (node.declare && this.match(tt.equal)) {\n        this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer);\n      }\n\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      // $FlowIgnore\n      if (node.abstract) {\n        this.raise(node.start, TSErrors.PrivateElementHasAbstract);\n      }\n\n      // $FlowIgnore\n      if (node.accessibility) {\n        this.raise(\n          node.start,\n          TSErrors.PrivateElementHasAccessibility,\n          node.accessibility,\n        );\n      }\n\n      this.parseClassPropertyAnnotation(node);\n      return super.parseClassPrivateProperty(node);\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.tsParseTypeArguments();\n      }\n      if (this.eatContextual(\"implements\")) {\n        node.implements = this.tsParseHeritageClause(\"implements\");\n      }\n    }\n\n    parseObjPropValue(prop: N.ObjectMember, ...args): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) prop.typeParameters = typeParameters;\n\n      super.parseObjPropValue(prop, ...args);\n    }\n\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // `let x: number;`\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (decl.id.type === \"Identifier\" && this.eat(tt.bang)) {\n        decl.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) {\n        decl.id.typeAnnotation = type;\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeAnnotation();\n      }\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    parseMaybeAssign(...args): N.Expression {\n      // Note: When the JSX plugin is on, type assertions (`<T> x`) aren't valid syntax.\n\n      let state: ?State;\n      let jsx;\n      let typeCast;\n\n      if (this.match(tt.jsxTagStart)) {\n        // Prefer to parse JSX if possible. But may be an arrow fn.\n        state = this.state.clone();\n\n        jsx = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === ct.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === ct.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if (!(jsx && jsx.error) && !this.isRelational(\"<\")) {\n        return super.parseMaybeAssign(...args);\n      }\n\n      // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n      let typeParameters: N.TsTypeParameterDeclaration;\n      state = state || this.state.clone();\n\n      const arrow = this.tryParse(abort => {\n        // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n        typeParameters = this.tsParseTypeParameters();\n        const expr = super.parseMaybeAssign(...args);\n\n        if (\n          expr.type !== \"ArrowFunctionExpression\" ||\n          (expr.extra && expr.extra.parenthesized)\n        ) {\n          abort();\n        }\n\n        // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n        if (typeParameters && typeParameters.params.length !== 0) {\n          this.resetStartLocationFromNode(expr, typeParameters);\n        }\n        expr.typeParameters = typeParameters;\n        return expr;\n      }, state);\n\n      if (!arrow.error && !arrow.aborted) return arrow.node;\n\n      if (!jsx) {\n        // Try parsing a type cast instead of an arrow function.\n        // This will never happen outside of JSX.\n        // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n        assert(!this.hasPlugin(\"jsx\"));\n\n        // This will start with a type assertion (via parseMaybeUnary).\n        // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n        typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!typeCast.aborted) */\n        if (!typeCast.error) return typeCast.node;\n      }\n\n      if (jsx && jsx.node) {\n        /*:: invariant(jsx.failState) */\n        this.state = jsx.failState;\n        return jsx.node;\n      }\n\n      if (arrow.node) {\n        /*:: invariant(arrow.failState) */\n        this.state = arrow.failState;\n        return arrow.node;\n      }\n\n      if (typeCast && typeCast.node) {\n        /*:: invariant(typeCast.failState) */\n        this.state = typeCast.failState;\n        return typeCast.node;\n      }\n\n      if (jsx && jsx.thrown) throw jsx.error;\n      if (arrow.thrown) throw arrow.error;\n      if (typeCast && typeCast.thrown) throw typeCast.error;\n\n      throw (jsx && jsx.error) || arrow.error || (typeCast && typeCast.error);\n    }\n\n    // Handle type assertions\n    parseMaybeUnary(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      if (!this.hasPlugin(\"jsx\") && this.isRelational(\"<\")) {\n        return this.tsParseTypeAssertion();\n      } else {\n        return super.parseMaybeUnary(refExpressionErrors);\n      }\n    }\n\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        // This is different from how the TS parser does it.\n        // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n        const result = this.tryParse(abort => {\n          const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n            tt.colon,\n          );\n          if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n          return returnType;\n        });\n\n        if (result.aborted) return;\n\n        if (!result.thrown) {\n          if (result.error) this.state = result.failState;\n          node.returnType = result.node;\n        }\n      }\n\n      return super.parseArrow(node);\n    }\n\n    // Allow type annotations inside of a parameter list.\n    parseAssignableListItemTypes(param: N.Pattern) {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, TSErrors.PatternIsOptional);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) param.typeAnnotation = type;\n      this.resetEndLocation(param);\n\n      return param;\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      switch (node.type) {\n        case \"TSTypeCastExpression\":\n          return super.toAssignable(this.typeCastToParameter(node));\n        case \"TSParameterProperty\":\n          return super.toAssignable(node);\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          node.expression = this.toAssignable(node.expression);\n          return node;\n        default:\n          return super.toAssignable(node);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      switch (expr.type) {\n        case \"TSTypeCastExpression\":\n          // Allow \"typecasts\" to appear on the left of assignment expressions,\n          // because it may be in an arrow function.\n          // e.g. `const f = (foo: number = 0) => foo;`\n          return;\n        case \"TSParameterProperty\":\n          this.checkLVal(\n            expr.parameter,\n            bindingType,\n            checkClashes,\n            \"parameter property\",\n          );\n          return;\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          this.checkLVal(\n            expr.expression,\n            bindingType,\n            checkClashes,\n            contextDescription,\n          );\n          return;\n        default:\n          super.checkLVal(expr, bindingType, checkClashes, contextDescription);\n          return;\n      }\n    }\n\n    parseBindingAtom(): N.Pattern {\n      switch (this.state.type) {\n        case tt._this:\n          // \"this\" may be the name of a parameter, so allow it.\n          return this.parseIdentifier(/* liberal */ true);\n        default:\n          return super.parseBindingAtom();\n      }\n    }\n\n    parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsParseTypeArguments();\n\n        if (this.match(tt.parenL)) {\n          const call = super.parseMaybeDecoratorArguments(expr);\n          call.typeParameters = typeArguments;\n          return call;\n        }\n\n        this.unexpected(this.state.start, tt.parenL);\n      }\n\n      return super.parseMaybeDecoratorArguments(expr);\n    }\n\n    // === === === === === === === === === === === === === === === ===\n    // Note: All below methods are duplicates of something in flow.js.\n    // Not sure what the best way to combine these is.\n    // === === === === === === === === === === === === === === === ===\n\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    isClassProperty(): boolean {\n      return (\n        this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n      );\n    }\n\n    parseMaybeDefault(...args): N.Pattern {\n      const node = super.parseMaybeDefault(...args);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(\n          node.typeAnnotation.start,\n          TSErrors.TypeAnnotationAfterAssign,\n        );\n      }\n\n      return node;\n    }\n\n    // ensure that inside types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      if (this.state.inType && (code === 62 || code === 60)) {\n        return this.finishOp(tt.relational, 1);\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    toAssignableList(exprList: N.Expression[]): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (!expr) continue;\n        switch (expr.type) {\n          case \"TSTypeCastExpression\":\n            exprList[i] = this.typeCastToParameter(expr);\n            break;\n          case \"TSAsExpression\":\n          case \"TSTypeAssertion\":\n            if (!this.state.maybeInArrowParameters) {\n              exprList[i] = this.typeCastToParameter(expr);\n            } else {\n              this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter);\n            }\n            break;\n        }\n      }\n      return super.toAssignableList(...arguments);\n    }\n\n    typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isInParens?: boolean, // eslint-disable-line no-unused-vars\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TSTypeCastExpression\") {\n          this.raise(expr.start, TSErrors.UnexpectedTypeAnnotation);\n        }\n      }\n\n      return exprList;\n    }\n\n    shouldParseArrow() {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    canHaveLeadingDecorator() {\n      // Avoid unnecessary lookahead in checking for abstract class unless needed!\n      return super.canHaveLeadingDecorator() || this.isAbstractClass();\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsTryParseAndCatch(() =>\n          this.tsParseTypeArguments(),\n        );\n        if (typeArguments) node.typeParameters = typeArguments;\n      }\n      return super.jsxParseOpeningElementAfterName(node);\n    }\n\n    getGetterSetterExpectedParamCount(\n      method: N.ObjectMethod | N.ClassMethod,\n    ): number {\n      const baseCount = super.getGetterSetterExpectedParamCount(method);\n      const firstParam = method.params[0];\n      const hasContextParam =\n        firstParam &&\n        firstParam.type === \"Identifier\" &&\n        firstParam.name === \"this\";\n\n      return hasContextParam ? baseCount + 1 : baseCount;\n    }\n  };\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport * as N from \"../types\";\n\ntt.placeholder = new TokenType(\"%%\", { startsExpr: true });\n\nexport type PlaceholderTypes =\n  | \"Identifier\"\n  | \"StringLiteral\"\n  | \"Expression\"\n  | \"Statement\"\n  | \"Declaration\"\n  | \"BlockStatement\"\n  | \"ClassBody\"\n  | \"Pattern\";\n\n// $PropertyType doesn't support enums. Use a fake \"switch\" (GetPlaceholderNode)\n//type MaybePlaceholder<T: PlaceholderTypes> = $PropertyType<N, T> | N.Placeholder<T>;\n\ntype _Switch<Value, Cases, Index> = $Call<\n  (\n    $ElementType<$ElementType<Cases, Index>, 0>,\n  ) => $ElementType<$ElementType<Cases, Index>, 1>,\n  Value,\n>;\ntype $Switch<Value, Cases> = _Switch<Value, Cases, *>;\n\ntype NodeOf<T: PlaceholderTypes> = $Switch<\n  T,\n  [\n    [\"Identifier\", N.Identifier],\n    [\"StringLiteral\", N.StringLiteral],\n    [\"Expression\", N.Expression],\n    [\"Statement\", N.Statement],\n    [\"Declaration\", N.Declaration],\n    [\"BlockStatement\", N.BlockStatement],\n    [\"ClassBody\", N.ClassBody],\n    [\"Pattern\", N.Pattern],\n  ],\n>;\n\n// Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T: PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parsePlaceholder<T: PlaceholderTypes>(\n      expectedNode: T,\n    ): /*?N.Placeholder<T>*/ ?MaybePlaceholder<T> {\n      if (this.match(tt.placeholder)) {\n        const node = this.startNode();\n        this.next();\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n\n        // We can't use this.parseIdentifier because\n        // we don't want nested placeholders.\n        node.name = super.parseIdentifier(/* liberal */ true);\n\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n        this.expect(tt.placeholder);\n        return this.finishPlaceholder(node, expectedNode);\n      }\n    }\n\n    finishPlaceholder<T: PlaceholderTypes>(\n      node: N.Node,\n      expectedNode: T,\n    ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n      const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n      node.expectedNode = expectedNode;\n\n      return isFinished ? node : this.finishNode(node, \"Placeholder\");\n    }\n\n    /* ============================================================ *\n     * tokenizer/index.js                                           *\n     * ============================================================ */\n\n    getTokenFromCode(code: number) {\n      if (\n        code === charCodes.percentSign &&\n        this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n      ) {\n        return this.finishOp(tt.placeholder, 2);\n      }\n\n      return super.getTokenFromCode(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): MaybePlaceholder<\"Expression\"> {\n      return (\n        this.parsePlaceholder(\"Expression\") || super.parseExprAtom(...arguments)\n      );\n    }\n\n    parseIdentifier(): MaybePlaceholder<\"Identifier\"> {\n      // NOTE: This function only handles identifiers outside of\n      // expressions and binding patterns, since they are already\n      // handled by the parseExprAtom and parseBindingAtom functions.\n      // This is needed, for example, to parse \"class %%NAME%% {}\".\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseIdentifier(...arguments)\n      );\n    }\n\n    checkReservedWord(word: string): void {\n      // Sometimes we call #checkReservedWord(node.name), expecting\n      // that node is an Identifier. If it is a Placeholder, name\n      // will be undefined.\n      if (word !== undefined) super.checkReservedWord(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/lval.js                                               *\n     * ============================================================ */\n\n    parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n      return (\n        this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom(...arguments)\n      );\n    }\n\n    checkLVal(expr: N.Expression): void {\n      if (expr.type !== \"Placeholder\") super.checkLVal(...arguments);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (\n        node &&\n        node.type === \"Placeholder\" &&\n        node.expectedNode === \"Expression\"\n      ) {\n        node.expectedNode = \"Pattern\";\n        return node;\n      }\n      return super.toAssignable(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/statement.js                                          *\n     * ============================================================ */\n\n    verifyBreakContinue(node: N.BreakStatement | N.ContinueStatement) {\n      if (node.label && node.label.type === \"Placeholder\") return;\n      super.verifyBreakContinue(...arguments);\n    }\n\n    parseExpressionStatement(\n      node: MaybePlaceholder<\"Statement\">,\n      expr: N.Expression,\n    ): MaybePlaceholder<\"Statement\"> {\n      if (\n        expr.type !== \"Placeholder\" ||\n        (expr.extra && expr.extra.parenthesized)\n      ) {\n        return super.parseExpressionStatement(...arguments);\n      }\n\n      if (this.match(tt.colon)) {\n        const stmt: N.LabeledStatement = node;\n        stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n        this.next();\n        stmt.body = this.parseStatement(\"label\");\n        return this.finishNode(stmt, \"LabeledStatement\");\n      }\n\n      this.semicolon();\n\n      node.name = expr.name;\n      return this.finishPlaceholder(node, \"Statement\");\n    }\n\n    parseBlock(): MaybePlaceholder<\"BlockStatement\"> {\n      return (\n        this.parsePlaceholder(\"BlockStatement\") ||\n        super.parseBlock(...arguments)\n      );\n    }\n\n    parseFunctionId(): ?MaybePlaceholder<\"Identifier\"> {\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseFunctionId(...arguments)\n      );\n    }\n\n    parseClass<T: N.Class>(\n      node: T,\n      isStatement: /* T === ClassDeclaration */ boolean,\n      optionalId?: boolean,\n    ): T {\n      const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n      this.next();\n      this.takeDecorators(node);\n\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (placeholder) {\n        if (\n          this.match(tt._extends) ||\n          this.match(tt.placeholder) ||\n          this.match(tt.braceL)\n        ) {\n          node.id = placeholder;\n        } else if (optionalId || !isStatement) {\n          node.id = null;\n          node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n          return this.finishNode(node, type);\n        } else {\n          this.unexpected(null, \"A class name is required\");\n        }\n      } else {\n        this.parseClassId(node, isStatement, optionalId);\n      }\n\n      this.parseClassSuper(node);\n      node.body =\n        this.parsePlaceholder(\"ClassBody\") ||\n        this.parseClassBody(!!node.superClass);\n      return this.finishNode(node, type);\n    }\n\n    parseExport(node: N.Node): N.Node {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseExport(...arguments);\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // export %%DECL%%;\n        node.specifiers = [];\n        node.source = null;\n        node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n        return this.finishNode(node, \"ExportNamedDeclaration\");\n      }\n\n      // export %%NAME%% from \"foo\";\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = placeholder;\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n      return super.parseExport(node);\n    }\n\n    maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n      if (node.specifiers && node.specifiers.length > 0) {\n        // \"export %%NAME%%\" has already been parsed by #parseExport.\n        return true;\n      }\n      return super.maybeParseExportDefaultSpecifier(...arguments);\n    }\n\n    checkExport(node: N.ExportNamedDeclaration): void {\n      const { specifiers } = node;\n      if (specifiers && specifiers.length) {\n        node.specifiers = specifiers.filter(\n          node => node.exported.type === \"Placeholder\",\n        );\n      }\n      super.checkExport(node);\n      node.specifiers = specifiers;\n    }\n\n    parseImport(\n      node: N.Node,\n    ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseImport(...arguments);\n\n      node.specifiers = [];\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // import %%STRING%%;\n        node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n        this.semicolon();\n        return this.finishNode(node, \"ImportDeclaration\");\n      }\n\n      // import %%DEFAULT%% ...\n      const specifier = this.startNodeAtNode(placeholder);\n      specifier.local = placeholder;\n      this.finishNode(specifier, \"ImportDefaultSpecifier\");\n      node.specifiers.push(specifier);\n\n      if (this.eat(tt.comma)) {\n        // import %%DEFAULT%%, * as ...\n        const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n        // import %%DEFAULT%%, { ...\n        if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n      }\n\n      this.expectContextual(\"from\");\n      node.source = this.parseImportSource();\n      this.semicolon();\n      return this.finishNode(node, \"ImportDeclaration\");\n    }\n\n    parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n      // import ... from %%STRING%%;\n\n      return (\n        this.parsePlaceholder(\"StringLiteral\") ||\n        super.parseImportSource(...arguments)\n      );\n    }\n  };\n","import type Parser from \"../parser\";\nimport { types as tt } from \"../tokenizer/types\";\nimport * as N from \"../types\";\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parseV8Intrinsic(): N.Expression {\n      if (this.match(tt.modulo)) {\n        const v8IntrinsicStart = this.state.start;\n        // let the `loc` of Identifier starts from `%`\n        const node = this.startNode();\n        this.eat(tt.modulo);\n        if (this.match(tt.name)) {\n          const name = this.parseIdentifierName(this.state.start);\n          const identifier = this.createIdentifier(node, name);\n          identifier.type = \"V8IntrinsicIdentifier\";\n          if (this.match(tt.parenL)) {\n            return identifier;\n          }\n        }\n        this.unexpected(v8IntrinsicStart);\n      }\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): N.Expression {\n      return this.parseV8Intrinsic() || super.parseExprAtom(...arguments);\n    }\n  };\n","// @flow\n\nimport type Parser from \"./parser\";\n\nexport type Plugin = string | [string, Object];\n\nexport type PluginList = $ReadOnlyArray<Plugin>;\n\nexport type MixinPlugin = (superClass: Class<Parser>) => Class<Parser>;\n\nexport function hasPlugin(plugins: PluginList, name: string): boolean {\n  return plugins.some(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n}\n\nexport function getPluginOption(\n  plugins: PluginList,\n  name: string,\n  option: string,\n) {\n  const plugin = plugins.find(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n\n  if (plugin && Array.isArray(plugin)) {\n    return plugin[1][option];\n  }\n\n  return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"smart\", \"fsharp\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n  if (hasPlugin(plugins, \"decorators\")) {\n    if (hasPlugin(plugins, \"decorators-legacy\")) {\n      throw new Error(\n        \"Cannot use the decorators and decorators-legacy plugin together\",\n      );\n    }\n\n    const decoratorsBeforeExport = getPluginOption(\n      plugins,\n      \"decorators\",\n      \"decoratorsBeforeExport\",\n    );\n    if (decoratorsBeforeExport == null) {\n      throw new Error(\n        \"The 'decorators' plugin requires a 'decoratorsBeforeExport' option,\" +\n          \" whose value must be a boolean. If you are migrating from\" +\n          \" Babylon/Babel 6 or want to use the old decorators proposal, you\" +\n          \" should use the 'decorators-legacy' plugin instead of 'decorators'.\",\n      );\n    } else if (typeof decoratorsBeforeExport !== \"boolean\") {\n      throw new Error(\"'decoratorsBeforeExport' must be a boolean.\");\n    }\n  }\n\n  if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n    throw new Error(\"Cannot combine flow and typescript plugins.\");\n  }\n\n  if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n    throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n  }\n\n  if (\n    hasPlugin(plugins, \"pipelineOperator\") &&\n    !PIPELINE_PROPOSALS.includes(\n      getPluginOption(plugins, \"pipelineOperator\", \"proposal\"),\n    )\n  ) {\n    throw new Error(\n      \"'pipelineOperator' requires 'proposal' option whose value should be one of: \" +\n        PIPELINE_PROPOSALS.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n\n  if (\n    hasPlugin(plugins, \"recordAndTuple\") &&\n    !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n      getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n    )\n  ) {\n    throw new Error(\n      \"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \" +\n        RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree\";\nimport flow from \"./plugins/flow\";\nimport jsx from \"./plugins/jsx\";\nimport typescript from \"./plugins/typescript\";\nimport placeholders from \"./plugins/placeholders\";\nimport v8intrinsic from \"./plugins/v8intrinsic\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins: { [name: string]: MixinPlugin } = {\n  estree,\n  jsx,\n  flow,\n  typescript,\n  v8intrinsic,\n  placeholders,\n};\n\nexport const mixinPluginNames: $ReadOnlyArray<string> = Object.keys(\n  mixinPlugins,\n);\n","// @flow\n\nimport type { PluginList } from \"./plugin-utils\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n  sourceType: SourceType,\n  sourceFilename?: string,\n  startLine: number,\n  allowAwaitOutsideFunction: boolean,\n  allowReturnOutsideFunction: boolean,\n  allowImportExportEverywhere: boolean,\n  allowSuperOutsideMethod: boolean,\n  allowUndeclaredExports: boolean,\n  plugins: PluginList,\n  strictMode: ?boolean,\n  ranges: boolean,\n  tokens: boolean,\n  createParenthesizedExpressions: boolean,\n  errorRecovery: boolean,\n};\n\nexport const defaultOptions: Options = {\n  // Source type (\"script\" or \"module\") for different semantics\n  sourceType: \"script\",\n  // Source filename.\n  sourceFilename: undefined,\n  // Line from which to start counting source. Useful for\n  // integration with other tools.\n  startLine: 1,\n  // When enabled, await at the top level is not considered an\n  // error.\n  allowAwaitOutsideFunction: false,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // TODO\n  allowSuperOutsideMethod: false,\n  // When enabled, export statements can reference undeclared variables.\n  allowUndeclaredExports: false,\n  // An array of plugins to enable\n  plugins: [],\n  // TODO\n  strictMode: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // Adds all parsed tokens to a `tokens` property on the `File` node\n  tokens: false,\n  // Whether to create ParenthesizedExpression AST nodes (if false\n  // the parser sets extra.parenthesized on the expression nodes instead).\n  createParenthesizedExpressions: false,\n  // When enabled, errors are attached to the AST instead of being directly thrown.\n  // Some errors will still throw, because @babel/parser can't always recover.\n  errorRecovery: false,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts: ?Options): Options {\n  const options: any = {};\n  for (const key of Object.keys(defaultOptions)) {\n    options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key];\n  }\n  return options;\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport { Position } from \"../util/location\";\n\nimport { types as ct, type TokContext } from \"./context\";\nimport { types as tt, type TokenType } from \"./types\";\n\ntype TopicContextState = {\n  // When a topic binding has been currently established,\n  // then this is 1. Otherwise, it is 0. This is forwards compatible\n  // with a future plugin for multiple lexical topics.\n  maxNumOfResolvableTopics: number,\n\n  // When a topic binding has been currently established, and if that binding\n  // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n  // `null`. This is forwards compatible with a future plugin for multiple\n  // lexical topics.\n  maxTopicIndex: null | 0,\n};\n\nexport default class State {\n  strict: boolean;\n  curLine: number;\n\n  // And, if locations are used, the {line, column} object\n  // corresponding to those offsets\n  startLoc: Position;\n  endLoc: Position;\n\n  init(options: Options): void {\n    this.strict =\n      options.strictMode === false ? false : options.sourceType === \"module\";\n\n    this.curLine = options.startLine;\n    this.startLoc = this.endLoc = this.curPosition();\n  }\n\n  errors: SyntaxError[] = [];\n\n  // Used to signify the start of a potential arrow function\n  potentialArrowAt: number = -1;\n\n  // Used to signify the start of an expression which looks like a\n  // typed arrow function, but it isn't\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowAt: number[] = [];\n\n  // Used to signify the start of an expression whose params, if it looks like\n  // an arrow function, shouldn't be converted to assignable nodes.\n  // This is used to defer the validation of typed arrow functions inside\n  // conditional expressions.\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowParamsConversionAt: number[] = [];\n\n  // Flags to track\n  inParameters: boolean = false;\n  maybeInArrowParameters: boolean = false;\n  // This flag is used to track async arrow head across function declarations.\n  // e.g. async (foo = function (await) {}) => {}\n  // When parsing `await` in this expression, `maybeInAsyncArrowHead` is true\n  // but `maybeInArrowParameters` is false\n  maybeInAsyncArrowHead: boolean = false;\n  inPipeline: boolean = false;\n  inType: boolean = false;\n  noAnonFunctionType: boolean = false;\n  inPropertyName: boolean = false;\n  hasFlowComment: boolean = false;\n  isIterator: boolean = false;\n\n  // For the smartPipelines plugin:\n  topicContext: TopicContextState = {\n    maxNumOfResolvableTopics: 0,\n    maxTopicIndex: null,\n  };\n\n  // For the F# plugin\n  soloAwait: boolean = false;\n  inFSharpPipelineDirectBody: boolean = false;\n\n  // Labels in scope.\n  labels: Array<{\n    kind: ?(\"loop\" | \"switch\"),\n    name?: ?string,\n    statementStart?: number,\n  }> = [];\n\n  // Leading decorators. Last element of the stack represents the decorators in current context.\n  // Supports nesting of decorators, e.g. @foo(@bar class inner {}) class outer {}\n  // where @foo belongs to the outer class and @bar to the inner\n  decoratorStack: Array<Array<N.Decorator>> = [[]];\n\n  // Positions to delayed-check that yield/await does not exist in default parameters.\n  yieldPos: number = -1;\n  awaitPos: number = -1;\n\n  // Comment store.\n  comments: Array<N.Comment> = [];\n\n  // Comment attachment store\n  trailingComments: Array<N.Comment> = [];\n  leadingComments: Array<N.Comment> = [];\n  commentStack: Array<{\n    start: number,\n    leadingComments: ?Array<N.Comment>,\n    trailingComments: ?Array<N.Comment>,\n    type: string,\n  }> = [];\n  // $FlowIgnore this is initialized when the parser starts.\n  commentPreviousNode: N.Node = null;\n\n  // The current position of the tokenizer in the input.\n  pos: number = 0;\n  lineStart: number = 0;\n\n  // Properties of the current token:\n  // Its type\n  type: TokenType = tt.eof;\n\n  // For tokens that include more information than their type, the value\n  value: any = null;\n\n  // Its start and end offset\n  start: number = 0;\n  end: number = 0;\n\n  // Position information for the previous token\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokEndLoc: Position = null;\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokStartLoc: Position = null;\n  lastTokStart: number = 0;\n  lastTokEnd: number = 0;\n\n  // The context stack is used to superficially track syntactic\n  // context to predict whether a regular expression is allowed in a\n  // given position.\n  context: Array<TokContext> = [ct.braceStatement];\n  exprAllowed: boolean = true;\n\n  // Used to signal to callers of `readWord1` whether the word\n  // contained any escape sequences. This is needed because words with\n  // escape sequences must not be interpreted as keywords.\n  containsEsc: boolean = false;\n\n  // This property is used to throw an error for\n  // an octal literal in a directive that occurs prior\n  // to a \"use strict\" directive.\n  octalPositions: number[] = [];\n\n  // Names of exports store. `default` is stored as a name for both\n  // `export default foo;` and `export { foo as default };`.\n  exportedIdentifiers: Array<string> = [];\n\n  // Tokens length in token store\n  tokensLength: number = 0;\n\n  curPosition(): Position {\n    return new Position(this.curLine, this.pos - this.lineStart);\n  }\n\n  clone(skipArrays?: boolean): State {\n    const state = new State();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // $FlowIgnore\n      let val = this[key];\n\n      if (!skipArrays && Array.isArray(val)) {\n        val = val.slice();\n      }\n\n      // $FlowIgnore\n      state[key] = val;\n    }\n\n    return state;\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier\";\nimport { types as tt, keywords as keywordTypes, type TokenType } from \"./types\";\nimport { type TokContext, types as ct } from \"./context\";\nimport LocationParser, { Errors } from \"../parser/location\";\nimport { SourceLocation } from \"../util/location\";\nimport {\n  lineBreak,\n  lineBreakG,\n  isNewLine,\n  isWhitespace,\n  skipWhiteSpace,\n} from \"../util/whitespace\";\nimport State from \"./state\";\n\nconst VALID_REGEX_FLAGS = new Set([\"g\", \"m\", \"s\", \"i\", \"y\", \"u\"]);\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\n\nconst forbiddenNumericSeparatorSiblings = {\n  decBinOct: [\n    charCodes.dot,\n    charCodes.uppercaseB,\n    charCodes.uppercaseE,\n    charCodes.uppercaseO,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseB,\n    charCodes.lowercaseE,\n    charCodes.lowercaseO,\n  ],\n  hex: [\n    charCodes.dot,\n    charCodes.uppercaseX,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseX,\n  ],\n};\n\nconst allowedNumericSeparatorSiblings = {};\nallowedNumericSeparatorSiblings.bin = [\n  // 0 - 1\n  charCodes.digit0,\n  charCodes.digit1,\n];\nallowedNumericSeparatorSiblings.oct = [\n  // 0 - 7\n  ...allowedNumericSeparatorSiblings.bin,\n\n  charCodes.digit2,\n  charCodes.digit3,\n  charCodes.digit4,\n  charCodes.digit5,\n  charCodes.digit6,\n  charCodes.digit7,\n];\nallowedNumericSeparatorSiblings.dec = [\n  // 0 - 9\n  ...allowedNumericSeparatorSiblings.oct,\n\n  charCodes.digit8,\n  charCodes.digit9,\n];\n\nallowedNumericSeparatorSiblings.hex = [\n  // 0 - 9, A - F, a - f,\n  ...allowedNumericSeparatorSiblings.dec,\n\n  charCodes.uppercaseA,\n  charCodes.uppercaseB,\n  charCodes.uppercaseC,\n  charCodes.uppercaseD,\n  charCodes.uppercaseE,\n  charCodes.uppercaseF,\n\n  charCodes.lowercaseA,\n  charCodes.lowercaseB,\n  charCodes.lowercaseC,\n  charCodes.lowercaseD,\n  charCodes.lowercaseE,\n  charCodes.lowercaseF,\n];\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(state: State) {\n    this.type = state.type;\n    this.value = state.value;\n    this.start = state.start;\n    this.end = state.end;\n    this.loc = new SourceLocation(state.startLoc, state.endLoc);\n  }\n\n  type: TokenType;\n  value: any;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default class Tokenizer extends LocationParser {\n  // Forward-declarations\n  // parser/util.js\n  /*::\n  +unexpected: (pos?: ?number, messageOrType?: string | TokenType) => empty;\n  */\n\n  isLookahead: boolean;\n\n  // Token store.\n  tokens: Array<Token | N.Comment> = [];\n\n  constructor(options: Options, input: string) {\n    super();\n    this.state = new State();\n    this.state.init(options);\n    this.input = input;\n    this.length = input.length;\n    this.isLookahead = false;\n  }\n\n  pushToken(token: Token | N.Comment) {\n    // Pop out invalid tokens trapped by try-catch parsing.\n    // Those parsing branches are mainly created by typescript and flow plugins.\n    this.tokens.length = this.state.tokensLength;\n    this.tokens.push(token);\n    ++this.state.tokensLength;\n  }\n\n  // Move to the next token\n\n  next(): void {\n    if (!this.isLookahead) {\n      this.checkKeywordEscapes();\n      if (this.options.tokens) {\n        this.pushToken(new Token(this.state));\n      }\n    }\n\n    this.state.lastTokEnd = this.state.end;\n    this.state.lastTokStart = this.state.start;\n    this.state.lastTokEndLoc = this.state.endLoc;\n    this.state.lastTokStartLoc = this.state.startLoc;\n    this.nextToken();\n  }\n\n  // TODO\n\n  eat(type: TokenType): boolean {\n    if (this.match(type)) {\n      this.next();\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  // TODO\n\n  match(type: TokenType): boolean {\n    return this.state.type === type;\n  }\n\n  // TODO\n\n  lookahead(): State {\n    const old = this.state;\n    this.state = old.clone(true);\n\n    this.isLookahead = true;\n    this.next();\n    this.isLookahead = false;\n\n    const curr = this.state;\n    this.state = old;\n    return curr;\n  }\n\n  nextTokenStart(): number {\n    const thisTokEnd = this.state.pos;\n    skipWhiteSpace.lastIndex = thisTokEnd;\n    const skip = skipWhiteSpace.exec(this.input);\n    // $FlowIgnore: The skipWhiteSpace ensures to match any string\n    return thisTokEnd + skip[0].length;\n  }\n\n  lookaheadCharCode(): number {\n    return this.input.charCodeAt(this.nextTokenStart());\n  }\n\n  // Toggle strict mode. Re-reads the next number or string to please\n  // pedantic tests (`\"use strict\"; 010;` should fail).\n\n  setStrict(strict: boolean): void {\n    this.state.strict = strict;\n    if (!this.match(tt.num) && !this.match(tt.string)) return;\n    this.state.pos = this.state.start;\n    while (this.state.pos < this.state.lineStart) {\n      this.state.lineStart =\n        this.input.lastIndexOf(\"\\n\", this.state.lineStart - 2) + 1;\n      --this.state.curLine;\n    }\n    this.nextToken();\n  }\n\n  curContext(): TokContext {\n    return this.state.context[this.state.context.length - 1];\n  }\n\n  // Read a single token, updating the parser object's token-related\n  // properties.\n\n  nextToken(): void {\n    const curContext = this.curContext();\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\n\n    this.state.octalPositions = [];\n    this.state.start = this.state.pos;\n    this.state.startLoc = this.state.curPosition();\n    if (this.state.pos >= this.length) {\n      this.finishToken(tt.eof);\n      return;\n    }\n\n    const override = curContext?.override;\n    if (override) {\n      override(this);\n    } else {\n      this.getTokenFromCode(this.input.codePointAt(this.state.pos));\n    }\n  }\n\n  pushComment(\n    block: boolean,\n    text: string,\n    start: number,\n    end: number,\n    startLoc: Position,\n    endLoc: Position,\n  ): void {\n    const comment = {\n      type: block ? \"CommentBlock\" : \"CommentLine\",\n      value: text,\n      start: start,\n      end: end,\n      loc: new SourceLocation(startLoc, endLoc),\n    };\n\n    if (this.options.tokens) this.pushToken(comment);\n    this.state.comments.push(comment);\n    this.addComment(comment);\n  }\n\n  skipBlockComment(): void {\n    const startLoc = this.state.curPosition();\n    const start = this.state.pos;\n    const end = this.input.indexOf(\"*/\", this.state.pos + 2);\n    if (end === -1) throw this.raise(start, Errors.UnterminatedComment);\n\n    this.state.pos = end + 2;\n    lineBreakG.lastIndex = start;\n    let match;\n    while (\n      (match = lineBreakG.exec(this.input)) &&\n      match.index < this.state.pos\n    ) {\n      ++this.state.curLine;\n      this.state.lineStart = match.index + match[0].length;\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      true,\n      this.input.slice(start + 2, end),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  skipLineComment(startSkip: number): void {\n    const start = this.state.pos;\n    const startLoc = this.state.curPosition();\n    let ch = this.input.charCodeAt((this.state.pos += startSkip));\n    if (this.state.pos < this.length) {\n      while (!isNewLine(ch) && ++this.state.pos < this.length) {\n        ch = this.input.charCodeAt(this.state.pos);\n      }\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      false,\n      this.input.slice(start + startSkip, this.state.pos),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  // Called at the start of the parse and after every token. Skips\n  // whitespace and comments, and.\n\n  skipSpace(): void {\n    loop: while (this.state.pos < this.length) {\n      const ch = this.input.charCodeAt(this.state.pos);\n      switch (ch) {\n        case charCodes.space:\n        case charCodes.nonBreakingSpace:\n        case charCodes.tab:\n          ++this.state.pos;\n          break;\n        case charCodes.carriageReturn:\n          if (\n            this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n          ) {\n            ++this.state.pos;\n          }\n        // fall through\n        case charCodes.lineFeed:\n        case charCodes.lineSeparator:\n        case charCodes.paragraphSeparator:\n          ++this.state.pos;\n          ++this.state.curLine;\n          this.state.lineStart = this.state.pos;\n          break;\n\n        case charCodes.slash:\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\n            case charCodes.asterisk:\n              this.skipBlockComment();\n              break;\n\n            case charCodes.slash:\n              this.skipLineComment(2);\n              break;\n\n            default:\n              break loop;\n          }\n          break;\n\n        default:\n          if (isWhitespace(ch)) {\n            ++this.state.pos;\n          } else {\n            break loop;\n          }\n      }\n    }\n  }\n\n  // Called at the end of every token. Sets `end`, `val`, and\n  // maintains `context` and `exprAllowed`, and skips the space after\n  // the token, so that the next one's `start` will point at the\n  // right position.\n\n  finishToken(type: TokenType, val: any): void {\n    this.state.end = this.state.pos;\n    this.state.endLoc = this.state.curPosition();\n    const prevType = this.state.type;\n    this.state.type = type;\n    this.state.value = val;\n\n    if (!this.isLookahead) this.updateContext(prevType);\n  }\n\n  // ### Token reading\n\n  // This is the function that is called to fetch the next token. It\n  // is somewhat obscure, because it works in character codes rather\n  // than characters, and because operator parsing has been inlined\n  // into it.\n  //\n  // All in the name of speed.\n\n  // number sign is \"#\"\n  readToken_numberSign(): void {\n    if (this.state.pos === 0 && this.readToken_interpreter()) {\n      return;\n    }\n\n    const nextPos = this.state.pos + 1;\n    const next = this.input.charCodeAt(nextPos);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      throw this.raise(this.state.pos, Errors.UnexpectedDigitAfterHash);\n    }\n\n    if (\n      this.hasPlugin(\"recordAndTuple\") &&\n      (next === charCodes.leftCurlyBrace ||\n        next === charCodes.leftSquareBracket)\n    ) {\n      if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"hash\") {\n        throw this.raise(\n          this.state.pos,\n          next === charCodes.leftCurlyBrace\n            ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n            : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n        );\n      }\n\n      if (next === charCodes.leftCurlyBrace) {\n        // #{\n        this.finishToken(tt.braceHashL);\n      } else {\n        // #[\n        this.finishToken(tt.bracketHashL);\n      }\n      this.state.pos += 2;\n    } else if (\n      this.hasPlugin(\"classPrivateProperties\") ||\n      this.hasPlugin(\"classPrivateMethods\") ||\n      this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\"\n    ) {\n      this.finishOp(tt.hash, 1);\n    } else {\n      throw this.raise(this.state.pos, Errors.InvalidOrUnexpectedToken, \"#\");\n    }\n  }\n\n  readToken_dot(): void {\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      this.readNumber(true);\n      return;\n    }\n\n    if (\n      next === charCodes.dot &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n    ) {\n      this.state.pos += 3;\n      this.finishToken(tt.ellipsis);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.dot);\n    }\n  }\n\n  readToken_slash(): void {\n    // '/'\n    if (this.state.exprAllowed && !this.state.inType) {\n      ++this.state.pos;\n      this.readRegexp();\n      return;\n    }\n\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.slash, 1);\n    }\n  }\n\n  readToken_interpreter(): boolean {\n    if (this.state.pos !== 0 || this.length < 2) return false;\n\n    let ch = this.input.charCodeAt(this.state.pos + 1);\n    if (ch !== charCodes.exclamationMark) return false;\n\n    const start = this.state.pos;\n    this.state.pos += 1;\n\n    while (!isNewLine(ch) && ++this.state.pos < this.length) {\n      ch = this.input.charCodeAt(this.state.pos);\n    }\n\n    const value = this.input.slice(start + 2, this.state.pos);\n\n    this.finishToken(tt.interpreterDirective, value);\n\n    return true;\n  }\n\n  readToken_mult_modulo(code: number): void {\n    // '%*'\n    let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n    let width = 1;\n    let next = this.input.charCodeAt(this.state.pos + 1);\n    const exprAllowed = this.state.exprAllowed;\n\n    // Exponentiation operator **\n    if (code === charCodes.asterisk && next === charCodes.asterisk) {\n      width++;\n      next = this.input.charCodeAt(this.state.pos + 2);\n      type = tt.exponent;\n    }\n\n    if (next === charCodes.equalsTo && !exprAllowed) {\n      width++;\n      type = tt.assign;\n    }\n\n    this.finishOp(type, width);\n  }\n\n  readToken_pipe_amp(code: number): void {\n    // '||' '&&' '||=' '&&='\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, 3);\n      } else {\n        this.finishOp(\n          code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n          2,\n        );\n      }\n      return;\n    }\n\n    if (code === charCodes.verticalBar) {\n      // '|>'\n      if (next === charCodes.greaterThan) {\n        this.finishOp(tt.pipeline, 2);\n        return;\n      }\n      // '|}'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.RecordExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      // '|]'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightSquareBracket\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.TupleExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.bracketBarR, 2);\n        return;\n      }\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n      return;\n    }\n\n    this.finishOp(\n      code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n      1,\n    );\n  }\n\n  readToken_caret(): void {\n    // '^'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.bitwiseXOR, 1);\n    }\n  }\n\n  readToken_plus_min(code: number): void {\n    // '+-'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (\n        next === charCodes.dash &&\n        !this.inModule &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan &&\n        (this.state.lastTokEnd === 0 ||\n          lineBreak.test(\n            this.input.slice(this.state.lastTokEnd, this.state.pos),\n          ))\n      ) {\n        // A `-->` line comment\n        this.skipLineComment(3);\n        this.skipSpace();\n        this.nextToken();\n        return;\n      }\n      this.finishOp(tt.incDec, 2);\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.plusMin, 1);\n    }\n  }\n\n  readToken_lt_gt(code: number): void {\n    // '<>'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    let size = 1;\n\n    if (next === code) {\n      size =\n        code === charCodes.greaterThan &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan\n          ? 3\n          : 2;\n      if (this.input.charCodeAt(this.state.pos + size) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, size + 1);\n        return;\n      }\n      this.finishOp(tt.bitShift, size);\n      return;\n    }\n\n    if (\n      next === charCodes.exclamationMark &&\n      code === charCodes.lessThan &&\n      !this.inModule &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dash &&\n      this.input.charCodeAt(this.state.pos + 3) === charCodes.dash\n    ) {\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\n      this.skipLineComment(4);\n      this.skipSpace();\n      this.nextToken();\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      // <= | >=\n      size = 2;\n    }\n\n    this.finishOp(tt.relational, size);\n  }\n\n  readToken_eq_excl(code: number): void {\n    // '=!'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(\n        tt.equality,\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo\n          ? 3\n          : 2,\n      );\n      return;\n    }\n    if (code === charCodes.equalsTo && next === charCodes.greaterThan) {\n      // '=>'\n      this.state.pos += 2;\n      this.finishToken(tt.arrow);\n      return;\n    }\n    this.finishOp(code === charCodes.equalsTo ? tt.eq : tt.bang, 1);\n  }\n\n  readToken_question(): void {\n    // '?'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    const next2 = this.input.charCodeAt(this.state.pos + 2);\n    if (next === charCodes.questionMark && !this.state.inType) {\n      if (next2 === charCodes.equalsTo) {\n        // '??='\n        this.finishOp(tt.assign, 3);\n      } else {\n        // '??'\n        this.finishOp(tt.nullishCoalescing, 2);\n      }\n    } else if (\n      next === charCodes.dot &&\n      !(next2 >= charCodes.digit0 && next2 <= charCodes.digit9)\n    ) {\n      // '.' not followed by a number\n      this.state.pos += 2;\n      this.finishToken(tt.questionDot);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.question);\n    }\n  }\n\n  getTokenFromCode(code: number): void {\n    switch (code) {\n      // The interpretation of a dot depends on whether it is followed\n      // by a digit or another two dots.\n\n      case charCodes.dot:\n        this.readToken_dot();\n        return;\n\n      // Punctuation tokens.\n      case charCodes.leftParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenL);\n        return;\n      case charCodes.rightParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenR);\n        return;\n      case charCodes.semicolon:\n        ++this.state.pos;\n        this.finishToken(tt.semi);\n        return;\n      case charCodes.comma:\n        ++this.state.pos;\n        this.finishToken(tt.comma);\n        return;\n      case charCodes.leftSquareBracket:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.TupleExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // [|\n          this.finishToken(tt.bracketBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.bracketL);\n        }\n        return;\n      case charCodes.rightSquareBracket:\n        ++this.state.pos;\n        this.finishToken(tt.bracketR);\n        return;\n      case charCodes.leftCurlyBrace:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.RecordExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // {|\n          this.finishToken(tt.braceBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.braceL);\n        }\n        return;\n      case charCodes.rightCurlyBrace:\n        ++this.state.pos;\n        this.finishToken(tt.braceR);\n        return;\n\n      case charCodes.colon:\n        if (\n          this.hasPlugin(\"functionBind\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.colon\n        ) {\n          this.finishOp(tt.doubleColon, 2);\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.colon);\n        }\n        return;\n\n      case charCodes.questionMark:\n        this.readToken_question();\n        return;\n\n      case charCodes.graveAccent:\n        ++this.state.pos;\n        this.finishToken(tt.backQuote);\n        return;\n\n      case charCodes.digit0: {\n        const next = this.input.charCodeAt(this.state.pos + 1);\n        // '0x', '0X' - hex number\n        if (next === charCodes.lowercaseX || next === charCodes.uppercaseX) {\n          this.readRadixNumber(16);\n          return;\n        }\n        // '0o', '0O' - octal number\n        if (next === charCodes.lowercaseO || next === charCodes.uppercaseO) {\n          this.readRadixNumber(8);\n          return;\n        }\n        // '0b', '0B' - binary number\n        if (next === charCodes.lowercaseB || next === charCodes.uppercaseB) {\n          this.readRadixNumber(2);\n          return;\n        }\n      }\n      // Anything else beginning with a digit is an integer, octal\n      // number, or float. (fall through)\n      case charCodes.digit1:\n      case charCodes.digit2:\n      case charCodes.digit3:\n      case charCodes.digit4:\n      case charCodes.digit5:\n      case charCodes.digit6:\n      case charCodes.digit7:\n      case charCodes.digit8:\n      case charCodes.digit9:\n        this.readNumber(false);\n        return;\n\n      // Quotes produce strings.\n      case charCodes.quotationMark:\n      case charCodes.apostrophe:\n        this.readString(code);\n        return;\n\n      // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is\n      // often referred to. `finishOp` simply skips the amount of\n      // characters it is given as second argument, and returns a token\n      // of the type given by its first argument.\n\n      case charCodes.slash:\n        this.readToken_slash();\n        return;\n\n      case charCodes.percentSign:\n      case charCodes.asterisk:\n        this.readToken_mult_modulo(code);\n        return;\n\n      case charCodes.verticalBar:\n      case charCodes.ampersand:\n        this.readToken_pipe_amp(code);\n        return;\n\n      case charCodes.caret:\n        this.readToken_caret();\n        return;\n\n      case charCodes.plusSign:\n      case charCodes.dash:\n        this.readToken_plus_min(code);\n        return;\n\n      case charCodes.lessThan:\n      case charCodes.greaterThan:\n        this.readToken_lt_gt(code);\n        return;\n\n      case charCodes.equalsTo:\n      case charCodes.exclamationMark:\n        this.readToken_eq_excl(code);\n        return;\n\n      case charCodes.tilde:\n        this.finishOp(tt.tilde, 1);\n        return;\n\n      case charCodes.atSign:\n        ++this.state.pos;\n        this.finishToken(tt.at);\n        return;\n\n      case charCodes.numberSign:\n        this.readToken_numberSign();\n        return;\n\n      case charCodes.backslash:\n        this.readWord();\n        return;\n\n      default:\n        if (isIdentifierStart(code)) {\n          this.readWord();\n          return;\n        }\n    }\n\n    throw this.raise(\n      this.state.pos,\n      Errors.InvalidOrUnexpectedToken,\n      String.fromCodePoint(code),\n    );\n  }\n\n  finishOp(type: TokenType, size: number): void {\n    const str = this.input.slice(this.state.pos, this.state.pos + size);\n    this.state.pos += size;\n    this.finishToken(type, str);\n  }\n\n  readRegexp(): void {\n    const start = this.state.pos;\n    let escaped, inClass;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      const ch = this.input.charAt(this.state.pos);\n      if (lineBreak.test(ch)) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      if (escaped) {\n        escaped = false;\n      } else {\n        if (ch === \"[\") {\n          inClass = true;\n        } else if (ch === \"]\" && inClass) {\n          inClass = false;\n        } else if (ch === \"/\" && !inClass) {\n          break;\n        }\n        escaped = ch === \"\\\\\";\n      }\n      ++this.state.pos;\n    }\n    const content = this.input.slice(start, this.state.pos);\n    ++this.state.pos;\n\n    let mods = \"\";\n\n    while (this.state.pos < this.length) {\n      const char = this.input[this.state.pos];\n      const charCode = this.input.codePointAt(this.state.pos);\n\n      if (VALID_REGEX_FLAGS.has(char)) {\n        if (mods.indexOf(char) > -1) {\n          this.raise(this.state.pos + 1, Errors.DuplicateRegExpFlags);\n        }\n      } else if (\n        isIdentifierChar(charCode) ||\n        charCode === charCodes.backslash\n      ) {\n        this.raise(this.state.pos + 1, Errors.MalformedRegExpFlags);\n      } else {\n        break;\n      }\n\n      ++this.state.pos;\n      mods += char;\n    }\n\n    this.finishToken(tt.regexp, {\n      pattern: content,\n      flags: mods,\n    });\n  }\n\n  // Read an integer in the given radix. Return null if zero digits\n  // were read, the integer value otherwise. When `len` is given, this\n  // will return `null` unless the integer has exactly `len` digits.\n  // When `forceLen` is `true`, it means that we already know that in case\n  // of a malformed number we have to skip `len` characters anyway, instead\n  // of bailing out early. For example, in \"\\u{123Z}\" we want to read up to }\n  // anyway, while in \"\\u00Z\" we will stop at Z instead of consuming four\n  // characters (and thus the closing quote).\n\n  readInt(\n    radix: number,\n    len?: number,\n    forceLen?: boolean,\n    allowNumSeparator: boolean = true,\n  ): number | null {\n    const start = this.state.pos;\n    const forbiddenSiblings =\n      radix === 16\n        ? forbiddenNumericSeparatorSiblings.hex\n        : forbiddenNumericSeparatorSiblings.decBinOct;\n    const allowedSiblings =\n      radix === 16\n        ? allowedNumericSeparatorSiblings.hex\n        : radix === 10\n        ? allowedNumericSeparatorSiblings.dec\n        : radix === 8\n        ? allowedNumericSeparatorSiblings.oct\n        : allowedNumericSeparatorSiblings.bin;\n\n    let invalid = false;\n    let total = 0;\n\n    for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n      const code = this.input.charCodeAt(this.state.pos);\n      let val;\n\n      if (this.hasPlugin(\"numericSeparator\")) {\n        if (code === charCodes.underscore) {\n          const prev = this.input.charCodeAt(this.state.pos - 1);\n          const next = this.input.charCodeAt(this.state.pos + 1);\n          if (allowedSiblings.indexOf(next) === -1) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          } else if (\n            forbiddenSiblings.indexOf(prev) > -1 ||\n            forbiddenSiblings.indexOf(next) > -1 ||\n            Number.isNaN(next)\n          ) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          }\n\n          if (!allowNumSeparator) {\n            this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence);\n          }\n\n          // Ignore this _ character\n          ++this.state.pos;\n          continue;\n        }\n      }\n\n      if (code >= charCodes.lowercaseA) {\n        val = code - charCodes.lowercaseA + charCodes.lineFeed;\n      } else if (code >= charCodes.uppercaseA) {\n        val = code - charCodes.uppercaseA + charCodes.lineFeed;\n      } else if (charCodes.isDigit(code)) {\n        val = code - charCodes.digit0; // 0-9\n      } else {\n        val = Infinity;\n      }\n      if (val >= radix) {\n        // If we are in \"errorRecovery\" mode and we found a digit which is too big,\n        // don't break the loop.\n\n        if (this.options.errorRecovery && val <= 9) {\n          val = 0;\n          this.raise(this.state.start + i + 2, Errors.InvalidDigit, radix);\n        } else if (forceLen) {\n          val = 0;\n          invalid = true;\n        } else {\n          break;\n        }\n      }\n      ++this.state.pos;\n      total = total * radix + val;\n    }\n    if (\n      this.state.pos === start ||\n      (len != null && this.state.pos - start !== len) ||\n      invalid\n    ) {\n      return null;\n    }\n\n    return total;\n  }\n\n  readRadixNumber(radix: number): void {\n    const start = this.state.pos;\n    let isBigInt = false;\n\n    this.state.pos += 2; // 0x\n    const val = this.readInt(radix);\n    if (val == null) {\n      this.raise(this.state.start + 2, Errors.InvalidDigit, radix);\n    }\n\n    if (this.input.charCodeAt(this.state.pos) === charCodes.lowercaseN) {\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    if (isBigInt) {\n      const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    this.finishToken(tt.num, val);\n  }\n\n  // Read an integer, octal integer, or floating-point number.\n\n  readNumber(startsWithDot: boolean): void {\n    const start = this.state.pos;\n    let isFloat = false;\n    let isBigInt = false;\n    let isNonOctalDecimalInt = false;\n\n    if (!startsWithDot && this.readInt(10) === null) {\n      this.raise(start, Errors.InvalidNumber);\n    }\n    let octal =\n      this.state.pos - start >= 2 &&\n      this.input.charCodeAt(start) === charCodes.digit0;\n    if (octal) {\n      if (this.state.strict) {\n        this.raise(start, Errors.StrictOctalLiteral);\n      }\n      if (/[89]/.test(this.input.slice(start, this.state.pos))) {\n        octal = false;\n        isNonOctalDecimalInt = true;\n      }\n    }\n\n    let next = this.input.charCodeAt(this.state.pos);\n    if (next === charCodes.dot && !octal) {\n      ++this.state.pos;\n      this.readInt(10);\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    if (\n      (next === charCodes.uppercaseE || next === charCodes.lowercaseE) &&\n      !octal\n    ) {\n      next = this.input.charCodeAt(++this.state.pos);\n      if (next === charCodes.plusSign || next === charCodes.dash) {\n        ++this.state.pos;\n      }\n      if (this.readInt(10) === null) this.raise(start, \"Invalid number\");\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    // disallow numeric separators in non octal decimals and legacy octal likes\n    if (this.hasPlugin(\"numericSeparator\") && (octal || isNonOctalDecimalInt)) {\n      const underscorePos = this.input\n        .slice(start, this.state.pos)\n        .indexOf(\"_\");\n      if (underscorePos > 0) {\n        this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator);\n      }\n    }\n\n    if (next === charCodes.lowercaseN) {\n      // disallow floats, legacy octal syntax and non octal decimals\n      // new style octal (\"0o\") is handled in this.readRadixNumber\n      if (isFloat || octal || isNonOctalDecimalInt) {\n        this.raise(start, \"Invalid BigIntLiteral\");\n      }\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    // remove \"_\" for numeric literal separator, and \"n\" for BigInts\n    const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n\n    if (isBigInt) {\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    const val = octal ? parseInt(str, 8) : parseFloat(str);\n    this.finishToken(tt.num, val);\n  }\n\n  // Read a string value, interpreting backslash-escapes.\n\n  readCodePoint(throwOnInvalid: boolean): number | null {\n    const ch = this.input.charCodeAt(this.state.pos);\n    let code;\n\n    if (ch === charCodes.leftCurlyBrace) {\n      const codePos = ++this.state.pos;\n      code = this.readHexChar(\n        this.input.indexOf(\"}\", this.state.pos) - this.state.pos,\n        true,\n        throwOnInvalid,\n      );\n      ++this.state.pos;\n      if (code !== null && code > 0x10ffff) {\n        if (throwOnInvalid) {\n          this.raise(codePos, Errors.InvalidCodePoint);\n        } else {\n          return null;\n        }\n      }\n    } else {\n      code = this.readHexChar(4, false, throwOnInvalid);\n    }\n    return code;\n  }\n\n  readString(quote: number): void {\n    let out = \"\",\n      chunkStart = ++this.state.pos;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (ch === quote) break;\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        // $FlowFixMe\n        out += this.readEscapedChar(false);\n        chunkStart = this.state.pos;\n      } else if (\n        ch === charCodes.lineSeparator ||\n        ch === charCodes.paragraphSeparator\n      ) {\n        ++this.state.pos;\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      } else {\n        ++this.state.pos;\n      }\n    }\n    out += this.input.slice(chunkStart, this.state.pos++);\n    this.finishToken(tt.string, out);\n  }\n\n  // Reads template string tokens.\n\n  readTmplToken(): void {\n    let out = \"\",\n      chunkStart = this.state.pos,\n      containsInvalid = false;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedTemplate);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (\n        ch === charCodes.graveAccent ||\n        (ch === charCodes.dollarSign &&\n          this.input.charCodeAt(this.state.pos + 1) ===\n            charCodes.leftCurlyBrace)\n      ) {\n        if (this.state.pos === this.state.start && this.match(tt.template)) {\n          if (ch === charCodes.dollarSign) {\n            this.state.pos += 2;\n            this.finishToken(tt.dollarBraceL);\n            return;\n          } else {\n            ++this.state.pos;\n            this.finishToken(tt.backQuote);\n            return;\n          }\n        }\n        out += this.input.slice(chunkStart, this.state.pos);\n        this.finishToken(tt.template, containsInvalid ? null : out);\n        return;\n      }\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        const escaped = this.readEscapedChar(true);\n        if (escaped === null) {\n          containsInvalid = true;\n        } else {\n          out += escaped;\n        }\n        chunkStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        ++this.state.pos;\n        switch (ch) {\n          case charCodes.carriageReturn:\n            if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n              ++this.state.pos;\n            }\n          // fall through\n          case charCodes.lineFeed:\n            out += \"\\n\";\n            break;\n          default:\n            out += String.fromCharCode(ch);\n            break;\n        }\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n        chunkStart = this.state.pos;\n      } else {\n        ++this.state.pos;\n      }\n    }\n  }\n\n  // Used to read escaped characters\n\n  readEscapedChar(inTemplate: boolean): string | null {\n    const throwOnInvalid = !inTemplate;\n    const ch = this.input.charCodeAt(++this.state.pos);\n    ++this.state.pos;\n    switch (ch) {\n      case charCodes.lowercaseN:\n        return \"\\n\";\n      case charCodes.lowercaseR:\n        return \"\\r\";\n      case charCodes.lowercaseX: {\n        const code = this.readHexChar(2, false, throwOnInvalid);\n        return code === null ? null : String.fromCharCode(code);\n      }\n      case charCodes.lowercaseU: {\n        const code = this.readCodePoint(throwOnInvalid);\n        return code === null ? null : String.fromCodePoint(code);\n      }\n      case charCodes.lowercaseT:\n        return \"\\t\";\n      case charCodes.lowercaseB:\n        return \"\\b\";\n      case charCodes.lowercaseV:\n        return \"\\u000b\";\n      case charCodes.lowercaseF:\n        return \"\\f\";\n      case charCodes.carriageReturn:\n        if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n          ++this.state.pos;\n        }\n      // fall through\n      case charCodes.lineFeed:\n        this.state.lineStart = this.state.pos;\n        ++this.state.curLine;\n      // fall through\n      case charCodes.lineSeparator:\n      case charCodes.paragraphSeparator:\n        return \"\";\n      case charCodes.digit8:\n      case charCodes.digit9:\n        if (inTemplate) {\n          return null;\n        }\n      // fall through\n      default:\n        if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n          const codePos = this.state.pos - 1;\n          // $FlowFixMe\n          let octalStr = this.input\n            .substr(this.state.pos - 1, 3)\n            .match(/^[0-7]+/)[0];\n          let octal = parseInt(octalStr, 8);\n          if (octal > 255) {\n            octalStr = octalStr.slice(0, -1);\n            octal = parseInt(octalStr, 8);\n          }\n          this.state.pos += octalStr.length - 1;\n          const next = this.input.charCodeAt(this.state.pos);\n          if (\n            octalStr !== \"0\" ||\n            next === charCodes.digit8 ||\n            next === charCodes.digit9\n          ) {\n            if (inTemplate) {\n              return null;\n            } else if (this.state.strict) {\n              this.raise(codePos, Errors.StrictOctalLiteral);\n            } else {\n              // This property is used to throw an error for\n              // an octal literal in a directive that occurs prior\n              // to a \"use strict\" directive.\n              this.state.octalPositions.push(codePos);\n            }\n          }\n\n          return String.fromCharCode(octal);\n        }\n\n        return String.fromCharCode(ch);\n    }\n  }\n\n  // Used to read character escape sequences ('\\x', '\\u').\n\n  readHexChar(\n    len: number,\n    forceLen: boolean,\n    throwOnInvalid: boolean,\n  ): number | null {\n    const codePos = this.state.pos;\n    const n = this.readInt(16, len, forceLen, false);\n    if (n === null) {\n      if (throwOnInvalid) {\n        this.raise(codePos, Errors.InvalidEscapeSequence);\n      } else {\n        this.state.pos = codePos - 1;\n      }\n    }\n    return n;\n  }\n\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\n  // to whether the word contained a '\\u' escape.\n  //\n  // Incrementally adds only escaped chars, adding other chunks as-is\n  // as a micro-optimization.\n\n  readWord1(): string {\n    let word = \"\";\n    this.state.containsEsc = false;\n    const start = this.state.pos;\n    let chunkStart = this.state.pos;\n\n    while (this.state.pos < this.length) {\n      const ch = this.input.codePointAt(this.state.pos);\n      if (isIdentifierChar(ch)) {\n        this.state.pos += ch <= 0xffff ? 1 : 2;\n      } else if (this.state.isIterator && ch === charCodes.atSign) {\n        ++this.state.pos;\n      } else if (ch === charCodes.backslash) {\n        this.state.containsEsc = true;\n\n        word += this.input.slice(chunkStart, this.state.pos);\n        const escStart = this.state.pos;\n        const identifierCheck =\n          this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n\n        if (this.input.charCodeAt(++this.state.pos) !== charCodes.lowercaseU) {\n          this.raise(this.state.pos, Errors.MissingUnicodeEscape);\n          continue;\n        }\n\n        ++this.state.pos;\n        const esc = this.readCodePoint(true);\n        if (esc !== null) {\n          if (!identifierCheck(esc)) {\n            this.raise(escStart, Errors.EscapedCharNotAnIdentifier);\n          }\n\n          word += String.fromCodePoint(esc);\n        }\n        chunkStart = this.state.pos;\n      } else {\n        break;\n      }\n    }\n    return word + this.input.slice(chunkStart, this.state.pos);\n  }\n\n  isIterator(word: string): boolean {\n    return word === \"@@iterator\" || word === \"@@asyncIterator\";\n  }\n\n  // Read an identifier or keyword token. Will check for reserved\n  // words when necessary.\n\n  readWord(): void {\n    const word = this.readWord1();\n    const type = keywordTypes.get(word) || tt.name;\n\n    // Allow @@iterator and @@asyncIterator as a identifier only inside type\n    if (\n      this.state.isIterator &&\n      (!this.isIterator(word) || !this.state.inType)\n    ) {\n      this.raise(this.state.pos, Errors.InvalidIdentifier, word);\n    }\n\n    this.finishToken(type, word);\n  }\n\n  checkKeywordEscapes(): void {\n    const kw = this.state.type.keyword;\n    if (kw && this.state.containsEsc) {\n      this.raise(this.state.start, Errors.InvalidEscapedReservedWord, kw);\n    }\n  }\n\n  braceIsBlock(prevType: TokenType): boolean {\n    const parent = this.curContext();\n    if (parent === ct.functionExpression || parent === ct.functionStatement) {\n      return true;\n    }\n    if (\n      prevType === tt.colon &&\n      (parent === ct.braceStatement || parent === ct.braceExpression)\n    ) {\n      return !parent.isExpr;\n    }\n\n    // The check for `tt.name && exprAllowed` detects whether we are\n    // after a `yield` or `of` construct. See the `updateContext` for\n    // `tt.name`.\n    if (\n      prevType === tt._return ||\n      (prevType === tt.name && this.state.exprAllowed)\n    ) {\n      return lineBreak.test(\n        this.input.slice(this.state.lastTokEnd, this.state.start),\n      );\n    }\n\n    if (\n      prevType === tt._else ||\n      prevType === tt.semi ||\n      prevType === tt.eof ||\n      prevType === tt.parenR ||\n      prevType === tt.arrow\n    ) {\n      return true;\n    }\n\n    if (prevType === tt.braceL) {\n      return parent === ct.braceStatement;\n    }\n\n    if (\n      prevType === tt._var ||\n      prevType === tt._const ||\n      prevType === tt.name\n    ) {\n      return false;\n    }\n\n    if (prevType === tt.relational) {\n      // `class C<T> { ... }`\n      return true;\n    }\n\n    return !this.state.exprAllowed;\n  }\n\n  updateContext(prevType: TokenType): void {\n    const type = this.state.type;\n    let update;\n\n    if (type.keyword && (prevType === tt.dot || prevType === tt.questionDot)) {\n      this.state.exprAllowed = false;\n    } else if ((update = type.updateContext)) {\n      update.call(this, prevType);\n    } else {\n      this.state.exprAllowed = type.beforeExpr;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport Tokenizer from \"../tokenizer\";\nimport State from \"../tokenizer/state\";\nimport type { Node } from \"../types\";\nimport { lineBreak } from \"../util/whitespace\";\nimport { isIdentifierChar } from \"../util/identifier\";\nimport * as charCodes from \"charcodes\";\nimport { Errors } from \"./location\";\n\ntype TryParse<Node, Error, Thrown, Aborted, FailState> = {\n  node: Node,\n  error: Error,\n  thrown: Thrown,\n  aborted: Aborted,\n  failState: FailState,\n};\n\n// ## Parser utilities\n\nexport default class UtilParser extends Tokenizer {\n  // TODO\n\n  addExtra(node: Node, key: string, val: any): void {\n    if (!node) return;\n\n    const extra = (node.extra = node.extra || {});\n    extra[key] = val;\n  }\n\n  // TODO\n\n  isRelational(op: \"<\" | \">\"): boolean {\n    return this.match(tt.relational) && this.state.value === op;\n  }\n\n  isLookaheadRelational(op: \"<\" | \">\"): boolean {\n    const next = this.nextTokenStart();\n    if (this.input.charAt(next) === op) {\n      if (next + 1 === this.input.length) {\n        return true;\n      }\n      const afterNext = this.input.charCodeAt(next + 1);\n      return afterNext !== op.charCodeAt(0) && afterNext !== charCodes.equalsTo;\n    }\n    return false;\n  }\n\n  // TODO\n\n  expectRelational(op: \"<\" | \">\"): void {\n    if (this.isRelational(op)) {\n      this.next();\n    } else {\n      this.unexpected(null, tt.relational);\n    }\n  }\n\n  // Tests whether parsed token is a contextual keyword.\n\n  isContextual(name: string): boolean {\n    return (\n      this.match(tt.name) &&\n      this.state.value === name &&\n      !this.state.containsEsc\n    );\n  }\n\n  isUnparsedContextual(nameStart: number, name: string): boolean {\n    const nameEnd = nameStart + name.length;\n    return (\n      this.input.slice(nameStart, nameEnd) === name &&\n      (nameEnd === this.input.length ||\n        !isIdentifierChar(this.input.charCodeAt(nameEnd)))\n    );\n  }\n\n  isLookaheadContextual(name: string): boolean {\n    const next = this.nextTokenStart();\n    return this.isUnparsedContextual(next, name);\n  }\n\n  // Consumes contextual keyword if possible.\n\n  eatContextual(name: string): boolean {\n    return this.isContextual(name) && this.eat(tt.name);\n  }\n\n  // Asserts that following token is given contextual keyword.\n\n  expectContextual(name: string, message?: string): void {\n    if (!this.eatContextual(name)) this.unexpected(null, message);\n  }\n\n  // Test whether a semicolon can be inserted at the current position.\n\n  canInsertSemicolon(): boolean {\n    return (\n      this.match(tt.eof) ||\n      this.match(tt.braceR) ||\n      this.hasPrecedingLineBreak()\n    );\n  }\n\n  hasPrecedingLineBreak(): boolean {\n    return lineBreak.test(\n      this.input.slice(this.state.lastTokEnd, this.state.start),\n    );\n  }\n\n  // TODO\n\n  isLineTerminator(): boolean {\n    return this.eat(tt.semi) || this.canInsertSemicolon();\n  }\n\n  // Consume a semicolon, or, failing that, see if we are allowed to\n  // pretend that there is a semicolon at this position.\n\n  semicolon(): void {\n    if (!this.isLineTerminator()) this.unexpected(null, tt.semi);\n  }\n\n  // Expect a token of a given type. If found, consume it, otherwise,\n  // raise an unexpected token error at given pos.\n\n  expect(type: TokenType, pos?: ?number): void {\n    this.eat(type) || this.unexpected(pos, type);\n  }\n\n  // Throws if the current token and the prev one are separated by a space.\n  assertNoSpace(message: string = \"Unexpected space.\"): void {\n    if (this.state.start > this.state.lastTokEnd) {\n      this.raise(this.state.lastTokEnd, message);\n    }\n  }\n\n  // Raise an unexpected token error. Can take the expected token type\n  // instead of a message string.\n\n  unexpected(\n    pos: ?number,\n    messageOrType: string | TokenType = \"Unexpected token\",\n  ): empty {\n    if (typeof messageOrType !== \"string\") {\n      messageOrType = `Unexpected token, expected \"${messageOrType.label}\"`;\n    }\n    throw this.raise(pos != null ? pos : this.state.start, messageOrType);\n  }\n\n  expectPlugin(name: string, pos?: ?number): true {\n    if (!this.hasPlugin(name)) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: [name] },\n        `This experimental syntax requires enabling the parser plugin: '${name}'`,\n      );\n    }\n\n    return true;\n  }\n\n  expectOnePlugin(names: Array<string>, pos?: ?number): void {\n    if (!names.some(n => this.hasPlugin(n))) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: names },\n        `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(\n          \", \",\n        )}'`,\n      );\n    }\n  }\n\n  checkYieldAwaitInDefaultParams() {\n    if (\n      this.state.yieldPos !== -1 &&\n      (this.state.awaitPos === -1 || this.state.yieldPos < this.state.awaitPos)\n    ) {\n      this.raise(\n        this.state.yieldPos,\n        \"Yield cannot be used as name inside a generator function\",\n      );\n    }\n    if (this.state.awaitPos !== -1) {\n      this.raise(\n        this.state.awaitPos,\n        \"Await cannot be used as name inside an async function\",\n      );\n    }\n  }\n\n  // tryParse will clone parser state.\n  // It is expensive and should be used with cautions\n  tryParse<T: Node | $ReadOnlyArray<Node>>(\n    fn: (abort: (node?: T) => empty) => T,\n    oldState: State = this.state.clone(),\n  ):\n    | TryParse<T, null, false, false, null>\n    | TryParse<T | null, SyntaxError, boolean, false, State>\n    | TryParse<T | null, null, false, true, State> {\n    const abortSignal: { node: T | null } = { node: null };\n    try {\n      const node = fn((node = null) => {\n        abortSignal.node = node;\n        throw abortSignal;\n      });\n      if (this.state.errors.length > oldState.errors.length) {\n        const failState = this.state;\n        this.state = oldState;\n        return {\n          node,\n          error: (failState.errors[oldState.errors.length]: SyntaxError),\n          thrown: false,\n          aborted: false,\n          failState,\n        };\n      }\n\n      return {\n        node,\n        error: null,\n        thrown: false,\n        aborted: false,\n        failState: null,\n      };\n    } catch (error) {\n      const failState = this.state;\n      this.state = oldState;\n      if (error instanceof SyntaxError) {\n        return { node: null, error, thrown: true, aborted: false, failState };\n      }\n      if (error === abortSignal) {\n        return {\n          node: abortSignal.node,\n          error: null,\n          thrown: false,\n          aborted: true,\n          failState,\n        };\n      }\n\n      throw error;\n    }\n  }\n\n  checkExpressionErrors(\n    refExpressionErrors: ?ExpressionErrors,\n    andThrow: boolean,\n  ) {\n    if (!refExpressionErrors) return false;\n    const { shorthandAssign, doubleProto } = refExpressionErrors;\n    if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0;\n    if (shorthandAssign >= 0) {\n      this.unexpected(shorthandAssign);\n    }\n    if (doubleProto >= 0) {\n      this.raise(doubleProto, Errors.DuplicateProto);\n    }\n  }\n}\n\n/**\n * The ExpressionErrors is a context struct used to track\n * - **shorthandAssign**: track initializer `=` position when parsing ambiguous\n *   patterns. When we are sure the parsed pattern is a RHS, which means it is\n *   not a pattern, we will throw on this position on invalid assign syntax,\n *   otherwise it will be reset to -1\n * - **doubleProto**: track the duplicate `__proto__` key position when parsing\n *   ambiguous object patterns. When we are sure the parsed pattern is a RHS,\n *   which means it is an object literal, we will throw on this position for\n *   __proto__ redefinition, otherwise it will be reset to -1\n */\nexport class ExpressionErrors {\n  shorthandAssign = -1;\n  doubleProto = -1;\n}\n","// @flow\n\nimport type Parser from \"./index\";\nimport UtilParser from \"./util\";\nimport { SourceLocation, type Position } from \"../util/location\";\nimport type { Comment, Node as NodeType, NodeBase } from \"../types\";\n\n// Start an AST node, attaching a start offset.\n\nclass Node implements NodeBase {\n  constructor(parser: Parser, pos: number, loc: Position) {\n    this.type = \"\";\n    this.start = pos;\n    this.end = 0;\n    this.loc = new SourceLocation(loc);\n    if (parser && parser.options.ranges) this.range = [pos, 0];\n    if (parser && parser.filename) this.loc.filename = parser.filename;\n  }\n\n  type: string;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n  range: [number, number];\n  leadingComments: Array<Comment>;\n  trailingComments: Array<Comment>;\n  innerComments: Array<Comment>;\n  extra: { [key: string]: any };\n\n  __clone(): this {\n    // $FlowIgnore\n    const newNode: any = new Node();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // Do not clone comments that are already attached to the node\n      if (\n        key !== \"leadingComments\" &&\n        key !== \"trailingComments\" &&\n        key !== \"innerComments\"\n      ) {\n        // $FlowIgnore\n        newNode[key] = this[key];\n      }\n    }\n\n    return newNode;\n  }\n}\n\nexport class NodeUtils extends UtilParser {\n  startNode<T: NodeType>(): T {\n    // $FlowIgnore\n    return new Node(this, this.state.start, this.state.startLoc);\n  }\n\n  startNodeAt<T: NodeType>(pos: number, loc: Position): T {\n    // $FlowIgnore\n    return new Node(this, pos, loc);\n  }\n\n  /** Start a new node with a previous node's location. */\n  startNodeAtNode<T: NodeType>(type: NodeType): T {\n    return this.startNodeAt(type.start, type.loc.start);\n  }\n\n  // Finish an AST node, adding `type` and `end` properties.\n\n  finishNode<T: NodeType>(node: T, type: string): T {\n    return this.finishNodeAt(\n      node,\n      type,\n      this.state.lastTokEnd,\n      this.state.lastTokEndLoc,\n    );\n  }\n\n  // Finish node at given position\n\n  finishNodeAt<T: NodeType>(\n    node: T,\n    type: string,\n    pos: number,\n    loc: Position,\n  ): T {\n    if (process.env.NODE_ENV !== \"production\" && node.end > 0) {\n      throw new Error(\n        \"Do not call finishNode*() twice on the same node.\" +\n          \" Instead use resetEndLocation() or change type directly.\",\n      );\n    }\n    node.type = type;\n    node.end = pos;\n    node.loc.end = loc;\n    if (this.options.ranges) node.range[1] = pos;\n    this.processComment(node);\n    return node;\n  }\n\n  resetStartLocation(node: NodeBase, start: number, startLoc: Position): void {\n    node.start = start;\n    node.loc.start = startLoc;\n    if (this.options.ranges) node.range[0] = start;\n  }\n\n  resetEndLocation(\n    node: NodeBase,\n    end?: number = this.state.lastTokEnd,\n    endLoc?: Position = this.state.lastTokEndLoc,\n  ): void {\n    node.end = end;\n    node.loc.end = endLoc;\n    if (this.options.ranges) node.range[1] = end;\n  }\n\n  /**\n   * Reset the start location of node to the start location of locationNode\n   */\n  resetStartLocationFromNode(node: NodeBase, locationNode: NodeBase): void {\n    this.resetStartLocation(node, locationNode.start, locationNode.loc.start);\n  }\n}\n","// @flow\n\nimport * as charCodes from \"charcodes\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport type {\n  TSParameterProperty,\n  Decorator,\n  Expression,\n  Node,\n  Pattern,\n  RestElement,\n  SpreadElement,\n  /*:: Identifier, */\n  /*:: ObjectExpression, */\n  /*:: ObjectPattern, */\n} from \"../types\";\nimport type { Pos, Position } from \"../util/location\";\nimport {\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport { NodeUtils } from \"./node\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { Errors } from \"./location\";\n\nconst unwrapParenthesizedExpression = (node: Node) => {\n  return node.type === \"ParenthesizedExpression\"\n    ? unwrapParenthesizedExpression(node.expression)\n    : node;\n};\n\nexport default class LValParser extends NodeUtils {\n  // Forward-declaration: defined in expression.js\n  /*::\n  +parseIdentifier: (liberal?: boolean) => Identifier;\n  +parseMaybeAssign: (\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ) => Expression;\n  +parseObj: <T: ObjectPattern | ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ) => T;\n  */\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseDecorator: () => Decorator;\n  */\n\n  // Convert existing expression atom to assignable pattern\n  // if possible.\n  // NOTE: There is a corresponding \"isAssignable\" method in flow.js.\n  // When this one is updated, please check if also that one needs to be updated.\n\n  toAssignable(node: Node): Node {\n    let parenthesized = undefined;\n    if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n      parenthesized = unwrapParenthesizedExpression(node);\n      if (\n        parenthesized.type !== \"Identifier\" &&\n        parenthesized.type !== \"MemberExpression\"\n      ) {\n        this.raise(node.start, Errors.InvalidParenthesizedAssignment);\n      }\n    }\n\n    switch (node.type) {\n      case \"Identifier\":\n      case \"ObjectPattern\":\n      case \"ArrayPattern\":\n      case \"AssignmentPattern\":\n        break;\n\n      case \"ObjectExpression\":\n        node.type = \"ObjectPattern\";\n        for (\n          let i = 0, length = node.properties.length, last = length - 1;\n          i < length;\n          i++\n        ) {\n          const prop = node.properties[i];\n          const isLast = i === last;\n          this.toAssignableObjectExpressionProp(prop, isLast);\n\n          if (\n            isLast &&\n            prop.type === \"RestElement\" &&\n            node.extra?.trailingComma\n          ) {\n            this.raiseRestNotLast(node.extra.trailingComma);\n          }\n        }\n        break;\n\n      case \"ObjectProperty\":\n        this.toAssignable(node.value);\n        break;\n\n      case \"SpreadElement\": {\n        this.checkToRestConversion(node);\n\n        node.type = \"RestElement\";\n        const arg = node.argument;\n        this.toAssignable(arg);\n        break;\n      }\n\n      case \"ArrayExpression\":\n        node.type = \"ArrayPattern\";\n        this.toAssignableList(node.elements, node.extra?.trailingComma);\n        break;\n\n      case \"AssignmentExpression\":\n        if (node.operator !== \"=\") {\n          this.raise(node.left.end, Errors.MissingEqInAssignment);\n        }\n\n        node.type = \"AssignmentPattern\";\n        delete node.operator;\n        this.toAssignable(node.left);\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.toAssignable(((parenthesized: any): Expression));\n        break;\n\n      default:\n      // We don't know how to deal with this node. It will\n      // be reported by a later call to checkLVal\n    }\n    return node;\n  }\n\n  toAssignableObjectExpressionProp(prop: Node, isLast: boolean) {\n    if (prop.type === \"ObjectMethod\") {\n      const error =\n        prop.kind === \"get\" || prop.kind === \"set\"\n          ? Errors.PatternHasAccessor\n          : Errors.PatternHasMethod;\n\n      this.raise(prop.key.start, error);\n    } else if (prop.type === \"SpreadElement\" && !isLast) {\n      this.raiseRestNotLast(prop.start);\n    } else {\n      this.toAssignable(prop);\n    }\n  }\n\n  // Convert list of expression atoms to binding list.\n\n  toAssignableList(\n    exprList: Expression[],\n    trailingCommaPos?: ?number,\n  ): $ReadOnlyArray<Pattern> {\n    let end = exprList.length;\n    if (end) {\n      const last = exprList[end - 1];\n      if (last && last.type === \"RestElement\") {\n        --end;\n      } else if (last && last.type === \"SpreadElement\") {\n        last.type = \"RestElement\";\n        const arg = last.argument;\n        this.toAssignable(arg);\n        if (\n          arg.type !== \"Identifier\" &&\n          arg.type !== \"MemberExpression\" &&\n          arg.type !== \"ArrayPattern\" &&\n          arg.type !== \"ObjectPattern\"\n        ) {\n          this.unexpected(arg.start);\n        }\n\n        if (trailingCommaPos) {\n          this.raiseTrailingCommaAfterRest(trailingCommaPos);\n        }\n\n        --end;\n      }\n    }\n    for (let i = 0; i < end; i++) {\n      const elt = exprList[i];\n      if (elt) {\n        this.toAssignable(elt);\n        if (elt.type === \"RestElement\") {\n          this.raiseRestNotLast(elt.start);\n        }\n      }\n    }\n    return exprList;\n  }\n\n  // Convert list of expression atoms to a list of\n\n  toReferencedList(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean, // eslint-disable-line no-unused-vars\n  ): $ReadOnlyArray<?Expression> {\n    return exprList;\n  }\n\n  toReferencedListDeep(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean,\n  ): void {\n    this.toReferencedList(exprList, isParenthesizedExpr);\n\n    for (const expr of exprList) {\n      if (expr && expr.type === \"ArrayExpression\") {\n        this.toReferencedListDeep(expr.elements);\n      }\n    }\n  }\n\n  // Parses spread element.\n\n  parseSpread(\n    refExpressionErrors: ?ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): SpreadElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseMaybeAssign(\n      false,\n      refExpressionErrors,\n      undefined,\n      refNeedsArrowPos,\n    );\n    return this.finishNode(node, \"SpreadElement\");\n  }\n\n  parseRestBinding(): RestElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseBindingAtom();\n    return this.finishNode(node, \"RestElement\");\n  }\n\n  // Parses lvalue (assignable) atom.\n  parseBindingAtom(): Pattern {\n    switch (this.state.type) {\n      case tt.bracketL: {\n        const node = this.startNode();\n        this.next();\n        node.elements = this.parseBindingList(\n          tt.bracketR,\n          charCodes.rightSquareBracket,\n          true,\n        );\n        return this.finishNode(node, \"ArrayPattern\");\n      }\n\n      case tt.braceL:\n        return this.parseObj(tt.braceR, true);\n    }\n\n    return this.parseIdentifier();\n  }\n\n  parseBindingList(\n    close: TokenType,\n    closeCharCode: $Values<typeof charCodes>,\n    allowEmpty?: boolean,\n    allowModifiers?: boolean,\n  ): $ReadOnlyArray<Pattern | TSParameterProperty> {\n    const elts: Array<Pattern | TSParameterProperty> = [];\n    let first = true;\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n      }\n      if (allowEmpty && this.match(tt.comma)) {\n        // $FlowFixMe This method returns `$ReadOnlyArray<?Pattern>` if `allowEmpty` is set.\n        elts.push(null);\n      } else if (this.eat(close)) {\n        break;\n      } else if (this.match(tt.ellipsis)) {\n        elts.push(this.parseAssignableListItemTypes(this.parseRestBinding()));\n        this.checkCommaAfterRest(closeCharCode);\n        this.expect(close);\n        break;\n      } else {\n        const decorators = [];\n        if (this.match(tt.at) && this.hasPlugin(\"decorators\")) {\n          this.raise(this.state.start, Errors.UnsupportedParameterDecorator);\n        }\n        while (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n        }\n        elts.push(this.parseAssignableListItem(allowModifiers, decorators));\n      }\n    }\n    return elts;\n  }\n\n  parseAssignableListItem(\n    allowModifiers: ?boolean,\n    decorators: Decorator[],\n  ): Pattern | TSParameterProperty {\n    const left = this.parseMaybeDefault();\n    this.parseAssignableListItemTypes(left);\n    const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n    if (decorators.length) {\n      left.decorators = decorators;\n    }\n    return elt;\n  }\n\n  parseAssignableListItemTypes(param: Pattern): Pattern {\n    return param;\n  }\n\n  // Parses assignment pattern around given atom if possible.\n\n  parseMaybeDefault(\n    startPos?: ?number,\n    startLoc?: ?Position,\n    left?: ?Pattern,\n  ): Pattern {\n    startLoc = startLoc || this.state.startLoc;\n    startPos = startPos || this.state.start;\n    left = left || this.parseBindingAtom();\n    if (!this.eat(tt.eq)) return left;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    node.left = left;\n    node.right = this.parseMaybeAssign();\n    return this.finishNode(node, \"AssignmentPattern\");\n  }\n\n  // Verify that a node is an lval — something that can be assigned\n  // to.\n\n  checkLVal(\n    expr: Expression,\n    bindingType: BindingTypes = BIND_NONE,\n    checkClashes: ?{ [key: string]: boolean },\n    contextDescription: string,\n    disallowLetBinding?: boolean,\n    strictModeChanged?: boolean = false,\n  ): void {\n    switch (expr.type) {\n      case \"Identifier\":\n        if (\n          this.state.strict &&\n          // \"Global\" reserved words have already been checked by parseIdentifier,\n          // unless they have been found in the id or parameters of a strict-mode\n          // function in a sloppy context.\n          (strictModeChanged\n            ? isStrictBindReservedWord(expr.name, this.inModule)\n            : isStrictBindOnlyReservedWord(expr.name))\n        ) {\n          this.raise(\n            expr.start,\n            bindingType === BIND_NONE\n              ? Errors.StrictEvalArguments\n              : Errors.StrictEvalArgumentsBinding,\n            expr.name,\n          );\n        }\n\n        if (checkClashes) {\n          // we need to prefix this with an underscore for the cases where we have a key of\n          // `__proto__`. there's a bug in old V8 where the following wouldn't work:\n          //\n          //   > var obj = Object.create(null);\n          //   undefined\n          //   > obj.__proto__\n          //   null\n          //   > obj.__proto__ = true;\n          //   true\n          //   > obj.__proto__\n          //   null\n          const key = `_${expr.name}`;\n\n          if (checkClashes[key]) {\n            this.raise(expr.start, Errors.ParamDupe);\n          } else {\n            checkClashes[key] = true;\n          }\n        }\n        if (disallowLetBinding && expr.name === \"let\") {\n          this.raise(expr.start, Errors.LetInLexicalBinding);\n        }\n        if (!(bindingType & BIND_NONE)) {\n          this.scope.declareName(expr.name, bindingType, expr.start);\n        }\n        break;\n\n      case \"MemberExpression\":\n        if (bindingType !== BIND_NONE) {\n          this.raise(expr.start, Errors.InvalidPropertyBindingPattern);\n        }\n        break;\n\n      case \"ObjectPattern\":\n        for (let prop of expr.properties) {\n          if (prop.type === \"ObjectProperty\") prop = prop.value;\n          // If we find here an ObjectMethod, it's because this was originally\n          // an ObjectExpression which has then been converted.\n          // toAssignable already reported this error with a nicer message.\n          else if (prop.type === \"ObjectMethod\") continue;\n\n          this.checkLVal(\n            prop,\n            bindingType,\n            checkClashes,\n            \"object destructuring pattern\",\n            disallowLetBinding,\n          );\n        }\n        break;\n\n      case \"ArrayPattern\":\n        for (const elem of expr.elements) {\n          if (elem) {\n            this.checkLVal(\n              elem,\n              bindingType,\n              checkClashes,\n              \"array destructuring pattern\",\n              disallowLetBinding,\n            );\n          }\n        }\n        break;\n\n      case \"AssignmentPattern\":\n        this.checkLVal(\n          expr.left,\n          bindingType,\n          checkClashes,\n          \"assignment pattern\",\n        );\n        break;\n\n      case \"RestElement\":\n        this.checkLVal(\n          expr.argument,\n          bindingType,\n          checkClashes,\n          \"rest element\",\n        );\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.checkLVal(\n          expr.expression,\n          bindingType,\n          checkClashes,\n          \"parenthesized expression\",\n        );\n        break;\n\n      default: {\n        this.raise(\n          expr.start,\n          bindingType === BIND_NONE\n            ? Errors.InvalidLhs\n            : Errors.InvalidLhsBinding,\n          contextDescription,\n        );\n      }\n    }\n  }\n\n  checkToRestConversion(node: SpreadElement): void {\n    if (\n      node.argument.type !== \"Identifier\" &&\n      node.argument.type !== \"MemberExpression\"\n    ) {\n      this.raise(node.argument.start, Errors.InvalidRestAssignmentPattern);\n    }\n  }\n\n  checkCommaAfterRest(close: $Values<typeof charCodes>): void {\n    if (this.match(tt.comma)) {\n      if (this.lookaheadCharCode() === close) {\n        this.raiseTrailingCommaAfterRest(this.state.start);\n      } else {\n        this.raiseRestNotLast(this.state.start);\n      }\n    }\n  }\n\n  raiseRestNotLast(pos: number) {\n    throw this.raise(pos, Errors.ElementAfterRest);\n  }\n\n  raiseTrailingCommaAfterRest(pos: number) {\n    this.raise(pos, Errors.RestTrailingComma);\n  }\n}\n","// @flow\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport { types as ct } from \"../tokenizer/context\";\nimport * as N from \"../types\";\nimport LValParser from \"./lval\";\nimport {\n  isKeyword,\n  isReservedWord,\n  isStrictReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport type { Pos, Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_OUTSIDE,\n  BIND_VAR,\n  SCOPE_ARROW,\n  SCOPE_CLASS,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport {\n  PARAM_AWAIT,\n  PARAM_RETURN,\n  PARAM,\n  functionFlags,\n} from \"../util/production-parameter\";\nimport { Errors } from \"./location\";\n\nexport default class ExpressionParser extends LValParser {\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseBlock: (\n    allowDirectives?: boolean,\n    createNewLexicalScope?: boolean,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ) => N.BlockStatement;\n  +parseClass: (\n    node: N.Class,\n    isStatement: boolean,\n    optionalId?: boolean,\n  ) => N.Class;\n  +parseDecorators: (allowExport?: boolean) => void;\n  +parseFunction: <T: N.NormalFunction>(\n    node: T,\n    statement?: number,\n    allowExpressionBody?: boolean,\n    isAsync?: boolean,\n  ) => T;\n  +parseFunctionParams: (node: N.Function, allowModifiers?: boolean) => void;\n  +takeDecorators: (node: N.HasDecorators) => void;\n  */\n\n  // Check if property __proto__ has been used more than once.\n  // If the expression is a destructuring assignment, then __proto__ may appear\n  // multiple times. Otherwise, __proto__ is a duplicated key.\n\n  checkDuplicatedProto(\n    prop: N.ObjectMember | N.SpreadElement,\n    protoRef: { used: boolean },\n    refExpressionErrors: ?ExpressionErrors,\n  ): void {\n    if (\n      prop.type === \"SpreadElement\" ||\n      prop.computed ||\n      prop.kind ||\n      // $FlowIgnore\n      prop.shorthand\n    ) {\n      return;\n    }\n\n    const key = prop.key;\n    // It is either an Identifier or a String/NumericLiteral\n    const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n    if (name === \"__proto__\") {\n      if (protoRef.used) {\n        if (refExpressionErrors) {\n          // Store the first redefinition's position, otherwise ignore because\n          // we are parsing ambiguous pattern\n          if (refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          }\n        } else {\n          this.raise(key.start, Errors.DuplicateProto);\n        }\n      }\n\n      protoRef.used = true;\n    }\n  }\n\n  // Convenience method to parse an Expression only\n  getExpression(): N.Expression {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    this.nextToken();\n    const expr = this.parseExpression();\n    if (!this.match(tt.eof)) {\n      this.unexpected();\n    }\n    expr.comments = this.state.comments;\n    expr.errors = this.state.errors;\n    return expr;\n  }\n\n  // ### Expression parsing\n\n  // These nest, from the most general expression type at the top to\n  // 'atomic', nondivisible expression types at the bottom. Most of\n  // the functions will simply let the function (s) below them parse,\n  // and, *if* the syntactic construct they handle is present, wrap\n  // the AST node that the inner parser gave them in another node.\n\n  // Parse a full expression.\n  // - `noIn`\n  //   is used to forbid the `in` operator (in for loops initialization expressions)\n  //   When `noIn` is true, the production parameter [In] is not present.\n  //   Whenever [?In] appears in the right-hand sides of a production, we pass\n  //   `noIn` to the subroutine calls.\n\n  // - `refExpressionErrors `\n  //   provides reference for storing '=' operator inside shorthand\n  //   property assignment in contexts where both object expression\n  //   and object pattern might appear (so it's possible to raise\n  //   delayed syntax error at correct position).\n\n  parseExpression(\n    noIn?: boolean,\n    refExpressionErrors?: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const expr = this.parseMaybeAssign(noIn, refExpressionErrors);\n    if (this.match(tt.comma)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.expressions = [expr];\n      while (this.eat(tt.comma)) {\n        node.expressions.push(this.parseMaybeAssign(noIn, refExpressionErrors));\n      }\n      this.toReferencedList(node.expressions);\n      return this.finishNode(node, \"SequenceExpression\");\n    }\n    return expr;\n  }\n\n  // Parse an assignment expression. This includes applications of\n  // operators like `+=`.\n\n  parseMaybeAssign(\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    if (this.isContextual(\"yield\")) {\n      if (this.prodParam.hasYield) {\n        let left = this.parseYield(noIn);\n        if (afterLeftParse) {\n          left = afterLeftParse.call(this, left, startPos, startLoc);\n        }\n        return left;\n      } else {\n        // The tokenizer will assume an expression is allowed after\n        // `yield`, but this isn't that kind of yield\n        this.state.exprAllowed = false;\n      }\n    }\n\n    let ownExpressionErrors;\n    if (refExpressionErrors) {\n      ownExpressionErrors = false;\n    } else {\n      refExpressionErrors = new ExpressionErrors();\n      ownExpressionErrors = true;\n    }\n\n    if (this.match(tt.parenL) || this.match(tt.name)) {\n      this.state.potentialArrowAt = this.state.start;\n    }\n\n    let left = this.parseMaybeConditional(\n      noIn,\n      refExpressionErrors,\n      refNeedsArrowPos,\n    );\n    if (afterLeftParse) {\n      left = afterLeftParse.call(this, left, startPos, startLoc);\n    }\n    if (this.state.type.isAssign) {\n      const node = this.startNodeAt(startPos, startLoc);\n      const operator = this.state.value;\n      node.operator = operator;\n\n      if (operator === \"??=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (operator === \"||=\" || operator === \"&&=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (this.match(tt.eq)) {\n        node.left = this.toAssignable(left);\n        refExpressionErrors.doubleProto = -1; // reset because double __proto__ is valid in assignment expression\n      } else {\n        node.left = left;\n      }\n\n      if (refExpressionErrors.shorthandAssign >= node.left.start) {\n        refExpressionErrors.shorthandAssign = -1; // reset because shorthand default was used correctly\n      }\n\n      this.checkLVal(left, undefined, undefined, \"assignment expression\");\n\n      this.next();\n      node.right = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"AssignmentExpression\");\n    } else if (ownExpressionErrors) {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n\n    return left;\n  }\n\n  // Parse a ternary conditional (`?:`) operator.\n\n  parseMaybeConditional(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprOps(noIn, refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n\n    return this.parseConditional(\n      expr,\n      noIn,\n      startPos,\n      startLoc,\n      refNeedsArrowPos,\n    );\n  }\n\n  parseConditional(\n    expr: N.Expression,\n    noIn: ?boolean,\n    startPos: number,\n    startLoc: Position,\n    // FIXME: Disabling this for now since can't seem to get it to play nicely\n    // eslint-disable-next-line no-unused-vars\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    if (this.eat(tt.question)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.test = expr;\n      node.consequent = this.parseMaybeAssign();\n      this.expect(tt.colon);\n      node.alternate = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n    return expr;\n  }\n\n  // Start the precedence parser.\n\n  parseExprOps(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseMaybeUnary(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) {\n      return expr;\n    }\n\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\n  }\n\n  // Parse binary operators with the operator precedence parsing\n  // algorithm. `left` is the left-hand side of the operator.\n  // `minPrec` provides context that allows the function to stop and\n  // defer further parser to one of its callers when it encounters an\n  // operator that has a lower precedence than the set it is parsing.\n\n  parseExprOp(\n    left: N.Expression,\n    leftStartPos: number,\n    leftStartLoc: Position,\n    minPrec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    let prec = this.state.type.binop;\n    if (prec != null && (!noIn || !this.match(tt._in))) {\n      if (prec > minPrec) {\n        const operator = this.state.value;\n        if (operator === \"|>\" && this.state.inFSharpPipelineDirectBody) {\n          return left;\n        }\n        const node = this.startNodeAt(leftStartPos, leftStartLoc);\n        node.left = left;\n        node.operator = operator;\n        if (\n          operator === \"**\" &&\n          left.type === \"UnaryExpression\" &&\n          (this.options.createParenthesizedExpressions ||\n            !(left.extra && left.extra.parenthesized))\n        ) {\n          this.raise(\n            left.argument.start,\n            Errors.UnexpectedTokenUnaryExponentiation,\n          );\n        }\n\n        const op = this.state.type;\n        const logical = op === tt.logicalOR || op === tt.logicalAND;\n        const coalesce = op === tt.nullishCoalescing;\n\n        if (op === tt.pipeline) {\n          this.expectPlugin(\"pipelineOperator\");\n          this.state.inPipeline = true;\n          this.checkPipelineAtInfixOperator(left, leftStartPos);\n        } else if (coalesce) {\n          // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n          // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n          prec = ((tt.logicalAND: any): { binop: number }).binop;\n        }\n\n        this.next();\n\n        if (\n          op === tt.pipeline &&\n          this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"minimal\"\n        ) {\n          if (\n            this.match(tt.name) &&\n            this.state.value === \"await\" &&\n            this.prodParam.hasAwait\n          ) {\n            throw this.raise(\n              this.state.start,\n              Errors.UnexpectedAwaitAfterPipelineBody,\n            );\n          }\n        }\n\n        node.right = this.parseExprOpRightExpr(op, prec, noIn);\n        this.finishNode(\n          node,\n          logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\",\n        );\n        /* this check is for all ?? operators\n         * a ?? b && c for this example\n         * when op is coalesce and nextOp is logical (&&), throw at the pos of nextOp that it can not be mixed.\n         * Symmetrically it also throws when op is logical and nextOp is coalesce\n         */\n        const nextOp = this.state.type;\n        if (\n          (coalesce && (nextOp === tt.logicalOR || nextOp === tt.logicalAND)) ||\n          (logical && nextOp === tt.nullishCoalescing)\n        ) {\n          throw this.raise(this.state.start, Errors.MixingCoalesceWithLogical);\n        }\n\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n    }\n    return left;\n  }\n\n  // Helper function for `parseExprOp`. Parse the right-hand side of binary-\n  // operator expressions, then apply any operator-specific functions.\n\n  parseExprOpRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    switch (op) {\n      case tt.pipeline:\n        switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n          case \"smart\":\n            return this.withTopicPermittingContext(() => {\n              return this.parseSmartPipelineBody(\n                this.parseExprOpBaseRightExpr(op, prec, noIn),\n                startPos,\n                startLoc,\n              );\n            });\n          case \"fsharp\":\n            return this.withSoloAwaitPermittingContext(() => {\n              return this.parseFSharpPipelineBody(prec, noIn);\n            });\n        }\n      // falls through\n\n      default:\n        return this.parseExprOpBaseRightExpr(op, prec, noIn);\n    }\n  }\n\n  // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of\n  // binary-operator expressions without applying any operator-specific functions.\n\n  parseExprOpBaseRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    return this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      op.rightAssociative ? prec - 1 : prec,\n      noIn,\n    );\n  }\n\n  // Parse unary operators, both prefix and postfix.\n\n  parseMaybeUnary(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    if (this.isContextual(\"await\") && this.isAwaitAllowed()) {\n      return this.parseAwait();\n    } else if (this.state.type.prefix) {\n      const node = this.startNode();\n      const update = this.match(tt.incDec);\n      node.operator = this.state.value;\n      node.prefix = true;\n\n      if (node.operator === \"throw\") {\n        this.expectPlugin(\"throwExpressions\");\n      }\n      this.next();\n\n      node.argument = this.parseMaybeUnary();\n\n      this.checkExpressionErrors(refExpressionErrors, true);\n\n      if (update) {\n        this.checkLVal(node.argument, undefined, undefined, \"prefix operation\");\n      } else if (this.state.strict && node.operator === \"delete\") {\n        const arg = node.argument;\n\n        if (arg.type === \"Identifier\") {\n          this.raise(node.start, Errors.StrictDelete);\n        } else if (\n          arg.type === \"MemberExpression\" &&\n          arg.property.type === \"PrivateName\"\n        ) {\n          this.raise(node.start, Errors.DeletePrivateField);\n        }\n      }\n\n      return this.finishNode(\n        node,\n        update ? \"UpdateExpression\" : \"UnaryExpression\",\n      );\n    }\n\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    let expr = this.parseExprSubscripts(refExpressionErrors);\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n    while (this.state.type.postfix && !this.canInsertSemicolon()) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.operator = this.state.value;\n      node.prefix = false;\n      node.argument = expr;\n      this.checkLVal(expr, undefined, undefined, \"postfix operation\");\n      this.next();\n      expr = this.finishNode(node, \"UpdateExpression\");\n    }\n    return expr;\n  }\n\n  // Parse call, dot, and `[]`-subscript expressions.\n\n  parseExprSubscripts(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprAtom(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n\n    return this.parseSubscripts(expr, startPos, startLoc);\n  }\n\n  parseSubscripts(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls?: ?boolean,\n  ): N.Expression {\n    const state = {\n      optionalChainMember: false,\n      maybeAsyncArrow: this.atPossibleAsyncArrow(base),\n      stop: false,\n    };\n    do {\n      const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n      if (state.maybeAsyncArrow) {\n        this.state.maybeInAsyncArrowHead = true;\n      }\n      base = this.parseSubscript(base, startPos, startLoc, noCalls, state);\n\n      // After parsing a subscript, this isn't \"async\" for sure.\n      state.maybeAsyncArrow = false;\n      this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n    } while (!state.stop);\n    return base;\n  }\n\n  /**\n   * @param state Set 'state.stop = true' to indicate that we should stop parsing subscripts.\n   *   state.optionalChainMember to indicate that the member is currently in OptionalChain\n   */\n  parseSubscript(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls: ?boolean,\n    state: N.ParseSubscriptState,\n  ): N.Expression {\n    if (!noCalls && this.eat(tt.doubleColon)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.callee = this.parseNoCallExpr();\n      state.stop = true;\n      return this.parseSubscripts(\n        this.finishNode(node, \"BindExpression\"),\n        startPos,\n        startLoc,\n        noCalls,\n      );\n    }\n    let optional = false;\n    if (this.match(tt.questionDot)) {\n      state.optionalChainMember = optional = true;\n      if (noCalls && this.lookaheadCharCode() === charCodes.leftParenthesis) {\n        state.stop = true;\n        return base;\n      }\n      this.next();\n    }\n    const computed = this.eat(tt.bracketL);\n    if (\n      (optional && !this.match(tt.parenL) && !this.match(tt.backQuote)) ||\n      computed ||\n      this.eat(tt.dot)\n    ) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.property = computed\n        ? this.parseExpression()\n        : optional\n        ? this.parseIdentifier(true)\n        : this.parseMaybePrivateName(true);\n      node.computed = computed;\n\n      if (node.property.type === \"PrivateName\") {\n        if (node.object.type === \"Super\") {\n          this.raise(startPos, Errors.SuperPrivateField);\n        }\n        this.classScope.usePrivateName(\n          node.property.id.name,\n          node.property.start,\n        );\n      }\n\n      if (computed) {\n        this.expect(tt.bracketR);\n      }\n\n      if (state.optionalChainMember) {\n        node.optional = optional;\n        return this.finishNode(node, \"OptionalMemberExpression\");\n      } else {\n        return this.finishNode(node, \"MemberExpression\");\n      }\n    } else if (!noCalls && this.match(tt.parenL)) {\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      this.next();\n\n      let node = this.startNodeAt(startPos, startLoc);\n      node.callee = base;\n\n      if (optional) {\n        node.optional = true;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      } else {\n        node.arguments = this.parseCallExpressionArguments(\n          tt.parenR,\n          state.maybeAsyncArrow,\n          base.type === \"Import\",\n          base.type !== \"Super\",\n          node,\n        );\n      }\n      this.finishCallExpression(node, state.optionalChainMember);\n\n      if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n        state.stop = true;\n\n        node = this.parseAsyncArrowFromCallExpression(\n          this.startNodeAt(startPos, startLoc),\n          node,\n        );\n        this.checkYieldAwaitInDefaultParams();\n        this.state.yieldPos = oldYieldPos;\n        this.state.awaitPos = oldAwaitPos;\n      } else {\n        this.toReferencedListDeep(node.arguments);\n\n        // We keep the old value if it isn't null, for cases like\n        //   (x = async(yield)) => {}\n        //\n        // Hi developer of the future :) If you are implementing generator\n        // arrow functions, please read the note below about \"await\" and\n        // verify if the same logic is needed for yield.\n        if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n\n        // Await is trickier than yield. When parsing a possible arrow function\n        // (e.g. something starting with `async(`) we don't know if its possible\n        // parameters will actually be inside an async arrow function or if it is\n        // a normal call expression.\n        // If it ended up being a call expression, if we are in a context where\n        // await expression are disallowed (and thus \"await\" is an identifier)\n        // we must be careful not to leak this.state.awaitPos to an even outer\n        // context, where \"await\" could not be an identifier.\n        // For example, this code is valid because \"await\" isn't directly inside\n        // an async function:\n        //\n        //     async function a() {\n        //       function b(param = async (await)) {\n        //       }\n        //     }\n        //\n        if (\n          (!this.isAwaitAllowed() && !oldMaybeInArrowParameters) ||\n          oldAwaitPos !== -1\n        ) {\n          this.state.awaitPos = oldAwaitPos;\n        }\n      }\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n      return node;\n    } else if (this.match(tt.backQuote)) {\n      return this.parseTaggedTemplateExpression(\n        startPos,\n        startLoc,\n        base,\n        state,\n      );\n    } else {\n      state.stop = true;\n      return base;\n    }\n  }\n\n  parseTaggedTemplateExpression(\n    startPos: number,\n    startLoc: Position,\n    base: N.Expression,\n    state: N.ParseSubscriptState,\n    typeArguments?: ?N.TsTypeParameterInstantiation,\n  ): N.TaggedTemplateExpression {\n    const node: N.TaggedTemplateExpression = this.startNodeAt(\n      startPos,\n      startLoc,\n    );\n    node.tag = base;\n    node.quasi = this.parseTemplate(true);\n    if (typeArguments) node.typeParameters = typeArguments;\n    if (state.optionalChainMember) {\n      this.raise(startPos, Errors.OptionalChainingNoTemplate);\n    }\n    return this.finishNode(node, \"TaggedTemplateExpression\");\n  }\n\n  atPossibleAsyncArrow(base: N.Expression): boolean {\n    return (\n      base.type === \"Identifier\" &&\n      base.name === \"async\" &&\n      this.state.lastTokEnd === base.end &&\n      !this.canInsertSemicolon() &&\n      // check there are no escape sequences, such as \\u{61}sync\n      base.end - base.start === 5 &&\n      base.start === this.state.potentialArrowAt\n    );\n  }\n\n  finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n    node: T,\n    optional: boolean,\n  ): N.Expression {\n    if (node.callee.type === \"Import\") {\n      if (node.arguments.length !== 1) {\n        this.raise(node.start, Errors.ImportCallArity);\n      } else {\n        const importArg = node.arguments[0];\n        if (importArg && importArg.type === \"SpreadElement\") {\n          this.raise(importArg.start, Errors.ImportCallSpreadArgument);\n        }\n      }\n    }\n    return this.finishNode(\n      node,\n      optional ? \"OptionalCallExpression\" : \"CallExpression\",\n    );\n  }\n\n  parseCallExpressionArguments(\n    close: TokenType,\n    possibleAsyncArrow: boolean,\n    dynamicImport?: boolean,\n    allowPlaceholder?: boolean,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let innerParenStart;\n    let first = true;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (dynamicImport) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.ImportCallArgumentTrailingComma,\n            );\n          }\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      // we need to make sure that if this is an async arrow functions,\n      // that we don't allow inner parens inside the params\n      if (this.match(tt.parenL) && !innerParenStart) {\n        innerParenStart = this.state.start;\n      }\n\n      elts.push(\n        this.parseExprListItem(\n          false,\n          possibleAsyncArrow ? new ExpressionErrors() : undefined,\n          possibleAsyncArrow ? { start: 0 } : undefined,\n          allowPlaceholder,\n        ),\n      );\n    }\n\n    // we found an async arrow function so let's not allow any inner parens\n    if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\n      this.unexpected();\n    }\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return elts;\n  }\n\n  shouldParseAsyncArrow(): boolean {\n    return this.match(tt.arrow) && !this.canInsertSemicolon();\n  }\n\n  parseAsyncArrowFromCallExpression(\n    node: N.ArrowFunctionExpression,\n    call: N.CallExpression,\n  ): N.ArrowFunctionExpression {\n    this.expect(tt.arrow);\n    this.parseArrowExpression(\n      node,\n      call.arguments,\n      true,\n      call.extra?.trailingComma,\n    );\n    return node;\n  }\n\n  // Parse a no-call expression (like argument of `new` or `::` operators).\n\n  parseNoCallExpr(): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n  }\n\n  // Parse an atomic expression — either a single token that is an\n  // expression, an expression started by a keyword like `function` or\n  // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n  // or `{}`.\n\n  parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n    // If a division operator appears in an expression position, the\n    // tokenizer got confused, and we force it to read a regexp instead.\n    if (this.state.type === tt.slash) this.readRegexp();\n\n    const canBeArrow = this.state.potentialArrowAt === this.state.start;\n    let node;\n\n    switch (this.state.type) {\n      case tt._super:\n        node = this.startNode();\n        this.next();\n        if (\n          this.match(tt.parenL) &&\n          !this.scope.allowDirectSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.SuperNotAllowed);\n        } else if (\n          !this.scope.allowSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.UnexpectedSuper);\n        }\n\n        if (\n          !this.match(tt.parenL) &&\n          !this.match(tt.bracketL) &&\n          !this.match(tt.dot)\n        ) {\n          this.raise(node.start, Errors.UnsupportedSuper);\n        }\n\n        return this.finishNode(node, \"Super\");\n\n      case tt._import:\n        node = this.startNode();\n        this.next();\n\n        if (this.match(tt.dot)) {\n          return this.parseImportMetaProperty(node);\n        }\n\n        if (!this.match(tt.parenL)) {\n          this.raise(this.state.lastTokStart, Errors.UnsupportedImport);\n        }\n        return this.finishNode(node, \"Import\");\n      case tt._this:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"ThisExpression\");\n\n      case tt.name: {\n        node = this.startNode();\n        const containsEsc = this.state.containsEsc;\n        const id = this.parseIdentifier();\n\n        if (\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt._function) &&\n          !this.canInsertSemicolon()\n        ) {\n          const last = this.state.context.length - 1;\n          if (this.state.context[last] !== ct.functionStatement) {\n            // Since \"async\" is an identifier and normally identifiers\n            // can't be followed by expression, the tokenizer assumes\n            // that \"function\" starts a statement.\n            // Fixing it in the tokenizer would mean tracking not only the\n            // previous token (\"async\"), but also the one before to know\n            // its beforeExpr value.\n            // It's easier and more efficient to adjust the context here.\n            throw new Error(\"Internal error\");\n          }\n          this.state.context[last] = ct.functionExpression;\n\n          this.next();\n          return this.parseFunction(node, undefined, true);\n        } else if (\n          canBeArrow &&\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt.name) &&\n          !this.canInsertSemicolon()\n        ) {\n          const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n          const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n          const oldYieldPos = this.state.yieldPos;\n          const oldAwaitPos = this.state.awaitPos;\n          this.state.maybeInArrowParameters = true;\n          this.state.maybeInAsyncArrowHead = true;\n          this.state.yieldPos = -1;\n          this.state.awaitPos = -1;\n          const params = [this.parseIdentifier()];\n          this.expect(tt.arrow);\n          this.checkYieldAwaitInDefaultParams();\n          this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n          this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n          this.state.yieldPos = oldYieldPos;\n          this.state.awaitPos = oldAwaitPos;\n          // let foo = async bar => {};\n          this.parseArrowExpression(node, params, true);\n          return node;\n        }\n\n        if (canBeArrow && this.match(tt.arrow) && !this.canInsertSemicolon()) {\n          this.next();\n          this.parseArrowExpression(node, [id], false);\n          return node;\n        }\n\n        return id;\n      }\n\n      case tt._do: {\n        this.expectPlugin(\"doExpressions\");\n        const node = this.startNode();\n        this.next();\n        const oldLabels = this.state.labels;\n        this.state.labels = [];\n        node.body = this.parseBlock();\n        this.state.labels = oldLabels;\n        return this.finishNode(node, \"DoExpression\");\n      }\n\n      case tt.regexp: {\n        const value = this.state.value;\n        node = this.parseLiteral(value.value, \"RegExpLiteral\");\n        node.pattern = value.pattern;\n        node.flags = value.flags;\n        return node;\n      }\n\n      case tt.num:\n        return this.parseLiteral(this.state.value, \"NumericLiteral\");\n\n      case tt.bigint:\n        return this.parseLiteral(this.state.value, \"BigIntLiteral\");\n\n      case tt.string:\n        return this.parseLiteral(this.state.value, \"StringLiteral\");\n\n      case tt._null:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"NullLiteral\");\n\n      case tt._true:\n      case tt._false:\n        return this.parseBooleanLiteral();\n\n      case tt.parenL:\n        return this.parseParenAndDistinguishExpression(canBeArrow);\n\n      case tt.bracketBarL:\n      case tt.bracketHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          close,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"TupleExpression\");\n      }\n      case tt.bracketL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          tt.bracketR,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        if (!this.state.maybeInArrowParameters) {\n          // This could be an array pattern:\n          //   ([a: string, b: string]) => {}\n          // In this case, we don't have to call toReferencedList. We will\n          // call it, if needed, when we are sure that it is a parenthesized\n          // expression by calling toReferencedListDeep.\n          this.toReferencedList(node.elements);\n        }\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"ArrayExpression\");\n      }\n      case tt.braceBarL:\n      case tt.braceHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(close, false, true, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt.braceL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(tt.braceR, false, false, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt._function:\n        return this.parseFunctionExpression();\n\n      case tt.at:\n        this.parseDecorators();\n      // fall through\n      case tt._class:\n        node = this.startNode();\n        this.takeDecorators(node);\n        return this.parseClass(node, false);\n\n      case tt._new:\n        return this.parseNew();\n\n      case tt.backQuote:\n        return this.parseTemplate(false);\n\n      case tt.doubleColon: {\n        node = this.startNode();\n        this.next();\n        node.object = null;\n        const callee = (node.callee = this.parseNoCallExpr());\n        if (callee.type === \"MemberExpression\") {\n          return this.finishNode(node, \"BindExpression\");\n        } else {\n          throw this.raise(callee.start, Errors.UnsupportedBind);\n        }\n      }\n\n      case tt.hash: {\n        if (this.state.inPipeline) {\n          node = this.startNode();\n\n          if (\n            this.getPluginOption(\"pipelineOperator\", \"proposal\") !== \"smart\"\n          ) {\n            this.raise(node.start, Errors.PrimaryTopicRequiresSmartPipeline);\n          }\n\n          this.next();\n\n          if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) {\n            this.raise(node.start, Errors.PrimaryTopicNotAllowed);\n          }\n\n          this.registerTopicReference();\n          return this.finishNode(node, \"PipelinePrimaryTopicReference\");\n        }\n      }\n      // fall through\n      default:\n        throw this.unexpected();\n    }\n  }\n\n  parseBooleanLiteral(): N.BooleanLiteral {\n    const node = this.startNode();\n    node.value = this.match(tt._true);\n    this.next();\n    return this.finishNode(node, \"BooleanLiteral\");\n  }\n\n  parseMaybePrivateName(\n    isPrivateNameAllowed: boolean,\n  ): N.PrivateName | N.Identifier {\n    const isPrivate = this.match(tt.hash);\n\n    if (isPrivate) {\n      this.expectOnePlugin([\"classPrivateProperties\", \"classPrivateMethods\"]);\n      if (!isPrivateNameAllowed) {\n        this.raise(this.state.pos, Errors.UnexpectedPrivateField);\n      }\n      const node = this.startNode();\n      this.next();\n      this.assertNoSpace(\"Unexpected space between # and identifier\");\n      node.id = this.parseIdentifier(true);\n      return this.finishNode(node, \"PrivateName\");\n    } else {\n      return this.parseIdentifier(true);\n    }\n  }\n\n  parseFunctionExpression(): N.FunctionExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    // We do not do parseIdentifier here because when parseFunctionExpression\n    // is called we already know that the current token is a \"name\" with the value \"function\"\n    // This will improve perf a tiny little bit as we do not do validation but more importantly\n    // here is that parseIdentifier will remove an item from the expression stack\n    // if \"function\" or \"class\" is parsed as identifier (in objects e.g.), which should not happen here.\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"function\");\n\n    if (this.prodParam.hasYield && this.eat(tt.dot)) {\n      return this.parseMetaProperty(node, meta, \"sent\");\n    }\n    return this.parseFunction(node);\n  }\n\n  parseMetaProperty(\n    node: N.MetaProperty,\n    meta: N.Identifier,\n    propertyName: string,\n  ): N.MetaProperty {\n    node.meta = meta;\n\n    if (meta.name === \"function\" && propertyName === \"sent\") {\n      if (this.isContextual(propertyName)) {\n        this.expectPlugin(\"functionSent\");\n      } else if (!this.hasPlugin(\"functionSent\")) {\n        // The code wasn't `function.sent` but just `function.`, so a simple error is less confusing.\n        this.unexpected();\n      }\n    }\n\n    const containsEsc = this.state.containsEsc;\n\n    node.property = this.parseIdentifier(true);\n\n    if (node.property.name !== propertyName || containsEsc) {\n      this.raise(\n        node.property.start,\n        Errors.UnsupportedMetaProperty,\n        meta.name,\n        propertyName,\n      );\n    }\n\n    return this.finishNode(node, \"MetaProperty\");\n  }\n\n  parseImportMetaProperty(node: N.MetaProperty): N.MetaProperty {\n    const id = this.createIdentifier(this.startNodeAtNode(node), \"import\");\n    this.expect(tt.dot);\n\n    if (this.isContextual(\"meta\")) {\n      this.expectPlugin(\"importMeta\");\n\n      if (!this.inModule) {\n        this.raiseWithData(\n          id.start,\n          { code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\" },\n          Errors.ImportMetaOutsideModule,\n        );\n      }\n      this.sawUnambiguousESM = true;\n    } else if (!this.hasPlugin(\"importMeta\")) {\n      this.raise(id.start, Errors.ImportCallArityLtOne);\n    }\n\n    return this.parseMetaProperty(node, id, \"meta\");\n  }\n\n  parseLiteral<T: N.Literal>(\n    value: any,\n    type: /*T[\"kind\"]*/ string,\n    startPos?: number,\n    startLoc?: Position,\n  ): T {\n    startPos = startPos || this.state.start;\n    startLoc = startLoc || this.state.startLoc;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    this.addExtra(node, \"rawValue\", value);\n    this.addExtra(node, \"raw\", this.input.slice(startPos, this.state.end));\n    node.value = value;\n    this.next();\n    return this.finishNode(node, type);\n  }\n\n  parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    let val;\n    this.expect(tt.parenL);\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.maybeInArrowParameters = true;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    const innerStartPos = this.state.start;\n    const innerStartLoc = this.state.startLoc;\n    const exprList = [];\n    const refExpressionErrors = new ExpressionErrors();\n    const refNeedsArrowPos = { start: 0 };\n    let first = true;\n    let spreadStart;\n    let optionalCommaStart;\n\n    while (!this.match(tt.parenR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma, refNeedsArrowPos.start || null);\n        if (this.match(tt.parenR)) {\n          optionalCommaStart = this.state.start;\n          break;\n        }\n      }\n\n      if (this.match(tt.ellipsis)) {\n        const spreadNodeStartPos = this.state.start;\n        const spreadNodeStartLoc = this.state.startLoc;\n        spreadStart = this.state.start;\n        exprList.push(\n          this.parseParenItem(\n            this.parseRestBinding(),\n            spreadNodeStartPos,\n            spreadNodeStartLoc,\n          ),\n        );\n\n        this.checkCommaAfterRest(charCodes.rightParenthesis);\n\n        break;\n      } else {\n        exprList.push(\n          this.parseMaybeAssign(\n            false,\n            refExpressionErrors,\n            this.parseParenItem,\n            refNeedsArrowPos,\n          ),\n        );\n      }\n    }\n\n    const innerEndPos = this.state.start;\n    const innerEndLoc = this.state.startLoc;\n    this.expect(tt.parenR);\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    let arrowNode = this.startNodeAt(startPos, startLoc);\n    if (\n      canBeArrow &&\n      this.shouldParseArrow() &&\n      (arrowNode = this.parseArrow(arrowNode))\n    ) {\n      if (!this.isAwaitAllowed() && !this.state.maybeInAsyncArrowHead) {\n        this.state.awaitPos = oldAwaitPos;\n      }\n      this.checkYieldAwaitInDefaultParams();\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n      for (const param of exprList) {\n        if (param.extra && param.extra.parenthesized) {\n          this.unexpected(param.extra.parenStart);\n        }\n      }\n\n      this.parseArrowExpression(arrowNode, exprList, false);\n      return arrowNode;\n    }\n\n    // We keep the old value if it isn't null, for cases like\n    //   (x = (yield)) => {}\n    if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n    if (oldAwaitPos !== -1) this.state.awaitPos = oldAwaitPos;\n\n    if (!exprList.length) {\n      this.unexpected(this.state.lastTokStart);\n    }\n    if (optionalCommaStart) this.unexpected(optionalCommaStart);\n    if (spreadStart) this.unexpected(spreadStart);\n    this.checkExpressionErrors(refExpressionErrors, true);\n    if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start);\n\n    this.toReferencedListDeep(exprList, /* isParenthesizedExpr */ true);\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc);\n      val.expressions = exprList;\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n    } else {\n      val = exprList[0];\n    }\n\n    if (!this.options.createParenthesizedExpressions) {\n      this.addExtra(val, \"parenthesized\", true);\n      this.addExtra(val, \"parenStart\", startPos);\n      return val;\n    }\n\n    const parenExpression = this.startNodeAt(startPos, startLoc);\n    parenExpression.expression = val;\n    this.finishNode(parenExpression, \"ParenthesizedExpression\");\n    return parenExpression;\n  }\n\n  shouldParseArrow(): boolean {\n    return !this.canInsertSemicolon();\n  }\n\n  parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n    if (this.eat(tt.arrow)) {\n      return node;\n    }\n  }\n\n  parseParenItem(\n    node: N.Expression,\n    startPos: number, // eslint-disable-line no-unused-vars\n    startLoc: Position, // eslint-disable-line no-unused-vars\n  ): N.Expression {\n    return node;\n  }\n\n  // New's precedence is slightly tricky. It must allow its argument to\n  // be a `[]` or dot subscript expression, but not a call — at least,\n  // not without wrapping it in parentheses. Thus, it uses the noCalls\n  // argument to parseSubscripts to prevent it from consuming the\n  // argument list.\n\n  parseNew(): N.NewExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"new\");\n\n    if (this.eat(tt.dot)) {\n      const metaProp = this.parseMetaProperty(node, meta, \"target\");\n\n      if (!this.scope.inNonArrowFunction && !this.scope.inClass) {\n        let error = Errors.UnexpectedNewTarget;\n\n        if (this.hasPlugin(\"classProperties\")) {\n          error += \" or class properties\";\n        }\n\n        this.raise(metaProp.start, error);\n      }\n\n      return metaProp;\n    }\n\n    node.callee = this.parseNoCallExpr();\n\n    if (node.callee.type === \"Import\") {\n      this.raise(node.callee.start, Errors.ImportCallNotNewExpression);\n    } else if (\n      node.callee.type === \"OptionalMemberExpression\" ||\n      node.callee.type === \"OptionalCallExpression\"\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.OptionalChainingNoNew);\n    } else if (this.eat(tt.questionDot)) {\n      this.raise(this.state.start, Errors.OptionalChainingNoNew);\n    }\n\n    this.parseNewArguments(node);\n    return this.finishNode(node, \"NewExpression\");\n  }\n\n  parseNewArguments(node: N.NewExpression): void {\n    if (this.eat(tt.parenL)) {\n      const args = this.parseExprList(tt.parenR);\n      this.toReferencedList(args);\n      // $FlowFixMe (parseExprList should be all non-null in this case)\n      node.arguments = args;\n    } else {\n      node.arguments = [];\n    }\n  }\n\n  // Parse template expression.\n\n  parseTemplateElement(isTagged: boolean): N.TemplateElement {\n    const elem = this.startNode();\n    if (this.state.value === null) {\n      if (!isTagged) {\n        this.raise(this.state.start + 1, Errors.InvalidEscapeSequenceTemplate);\n      }\n    }\n    elem.value = {\n      raw: this.input\n        .slice(this.state.start, this.state.end)\n        .replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.state.value,\n    };\n    this.next();\n    elem.tail = this.match(tt.backQuote);\n    return this.finishNode(elem, \"TemplateElement\");\n  }\n\n  parseTemplate(isTagged: boolean): N.TemplateLiteral {\n    const node = this.startNode();\n    this.next();\n    node.expressions = [];\n    let curElt = this.parseTemplateElement(isTagged);\n    node.quasis = [curElt];\n    while (!curElt.tail) {\n      this.expect(tt.dollarBraceL);\n      node.expressions.push(this.parseExpression());\n      this.expect(tt.braceR);\n      node.quasis.push((curElt = this.parseTemplateElement(isTagged)));\n    }\n    this.next();\n    return this.finishNode(node, \"TemplateLiteral\");\n  }\n\n  // Parse an object literal, binding pattern, or record.\n\n  parseObj<T: N.ObjectPattern | N.ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): T {\n    const propHash: any = Object.create(null);\n    let first = true;\n    const node = this.startNode();\n\n    node.properties = [];\n    this.next();\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          this.addExtra(node, \"trailingComma\", this.state.lastTokStart);\n          this.next();\n          break;\n        }\n      }\n\n      const prop = this.parseObjectMember(isPattern, refExpressionErrors);\n      if (!isPattern) {\n        // $FlowIgnore RestElement will never be returned if !isPattern\n        this.checkDuplicatedProto(prop, propHash, refExpressionErrors);\n      }\n\n      // $FlowIgnore\n      if (prop.shorthand) {\n        this.addExtra(prop, \"shorthand\", true);\n      }\n\n      node.properties.push(prop);\n    }\n\n    let type = \"ObjectExpression\";\n    if (isPattern) {\n      type = \"ObjectPattern\";\n    } else if (isRecord) {\n      type = \"RecordExpression\";\n    }\n    return this.finishNode(node, type);\n  }\n\n  isAsyncProp(prop: N.ObjectProperty): boolean {\n    return (\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      prop.key.name === \"async\" &&\n      (this.match(tt.name) ||\n        this.match(tt.num) ||\n        this.match(tt.string) ||\n        this.match(tt.bracketL) ||\n        this.state.type.keyword ||\n        this.match(tt.star)) &&\n      !this.hasPrecedingLineBreak()\n    );\n  }\n\n  parseObjectMember(\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): N.ObjectMember | N.SpreadElement | N.RestElement {\n    let decorators = [];\n    if (this.match(tt.at)) {\n      if (this.hasPlugin(\"decorators\")) {\n        this.raise(this.state.start, Errors.UnsupportedPropertyDecorator);\n      }\n\n      // we needn't check if decorators (stage 0) plugin is enabled since it's checked by\n      // the call to this.parseDecorator\n      while (this.match(tt.at)) {\n        decorators.push(this.parseDecorator());\n      }\n    }\n\n    const prop = this.startNode();\n    let isGenerator = false;\n    let isAsync = false;\n    let startPos;\n    let startLoc;\n\n    if (this.match(tt.ellipsis)) {\n      if (decorators.length) this.unexpected();\n      if (isPattern) {\n        this.next();\n        // Don't use parseRestBinding() as we only allow Identifier here.\n        prop.argument = this.parseIdentifier();\n        this.checkCommaAfterRest(charCodes.rightCurlyBrace);\n        return this.finishNode(prop, \"RestElement\");\n      }\n\n      return this.parseSpread();\n    }\n\n    if (decorators.length) {\n      prop.decorators = decorators;\n      decorators = [];\n    }\n\n    prop.method = false;\n\n    if (isPattern || refExpressionErrors) {\n      startPos = this.state.start;\n      startLoc = this.state.startLoc;\n    }\n\n    if (!isPattern) {\n      isGenerator = this.eat(tt.star);\n    }\n\n    const containsEsc = this.state.containsEsc;\n    this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n\n    if (!isPattern && !containsEsc && !isGenerator && this.isAsyncProp(prop)) {\n      isAsync = true;\n      isGenerator = this.eat(tt.star);\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n    } else {\n      isAsync = false;\n    }\n\n    this.parseObjPropValue(\n      prop,\n      startPos,\n      startLoc,\n      isGenerator,\n      isAsync,\n      isPattern,\n      refExpressionErrors,\n      containsEsc,\n    );\n\n    return prop;\n  }\n\n  isGetterOrSetterMethod(prop: N.ObjectMethod, isPattern: boolean): boolean {\n    return (\n      !isPattern &&\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n      (this.match(tt.string) || // get \"string\"() {}\n      this.match(tt.num) || // get 1() {}\n      this.match(tt.bracketL) || // get [\"string\"]() {}\n      this.match(tt.name) || // get foo() {}\n        !!this.state.type.keyword) // get debugger() {}\n    );\n  }\n\n  getGetterSetterExpectedParamCount(\n    method: N.ObjectMethod | N.ClassMethod,\n  ): number {\n    return method.kind === \"get\" ? 0 : 1;\n  }\n\n  // get methods aren't allowed to have any parameters\n  // set methods must have exactly 1 parameter which is not a rest parameter\n  checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n    const paramCount = this.getGetterSetterExpectedParamCount(method);\n    const start = method.start;\n    if (method.params.length !== paramCount) {\n      if (method.kind === \"get\") {\n        this.raise(start, Errors.BadGetterArity);\n      } else {\n        this.raise(start, Errors.BadSetterArity);\n      }\n    }\n\n    if (\n      method.kind === \"set\" &&\n      method.params[method.params.length - 1].type === \"RestElement\"\n    ) {\n      this.raise(start, Errors.BadSetterRestParameter);\n    }\n  }\n\n  parseObjectMethod(\n    prop: N.ObjectMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    containsEsc: boolean,\n  ): ?N.ObjectMethod {\n    if (isAsync || isGenerator || this.match(tt.parenL)) {\n      if (isPattern) this.unexpected();\n      prop.kind = \"method\";\n      prop.method = true;\n      return this.parseMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n    }\n\n    if (!containsEsc && this.isGetterOrSetterMethod(prop, isPattern)) {\n      if (isGenerator || isAsync) this.unexpected();\n      prop.kind = prop.key.name;\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n      this.parseMethod(\n        prop,\n        /* isGenerator */ false,\n        /* isAsync */ false,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n      this.checkGetterSetterParams(prop);\n      return prop;\n    }\n  }\n\n  parseObjectProperty(\n    prop: N.ObjectProperty,\n    startPos: ?number,\n    startLoc: ?Position,\n    isPattern: boolean,\n    refExpressionErrors: ?ExpressionErrors,\n  ): ?N.ObjectProperty {\n    prop.shorthand = false;\n\n    if (this.eat(tt.colon)) {\n      prop.value = isPattern\n        ? this.parseMaybeDefault(this.state.start, this.state.startLoc)\n        : this.parseMaybeAssign(false, refExpressionErrors);\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n\n    if (!prop.computed && prop.key.type === \"Identifier\") {\n      this.checkReservedWord(prop.key.name, prop.key.start, true, true);\n\n      if (isPattern) {\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else if (this.match(tt.eq) && refExpressionErrors) {\n        if (refExpressionErrors.shorthandAssign === -1) {\n          refExpressionErrors.shorthandAssign = this.state.start;\n        }\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else {\n        prop.value = prop.key.__clone();\n      }\n      prop.shorthand = true;\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n  }\n\n  parseObjPropValue(\n    prop: any,\n    startPos: ?number,\n    startLoc: ?Position,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    containsEsc: boolean,\n  ): void {\n    const node =\n      this.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ) ||\n      this.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      );\n\n    if (!node) this.unexpected();\n\n    // $FlowFixMe\n    return node;\n  }\n\n  parsePropertyName(\n    prop: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n    isPrivateNameAllowed: boolean,\n  ): N.Expression | N.Identifier {\n    if (this.eat(tt.bracketL)) {\n      (prop: $FlowSubtype<N.ObjectOrClassMember>).computed = true;\n      prop.key = this.parseMaybeAssign();\n      this.expect(tt.bracketR);\n    } else {\n      const oldInPropertyName = this.state.inPropertyName;\n      this.state.inPropertyName = true;\n      // We check if it's valid for it to be a private name when we push it.\n      (prop: $FlowFixMe).key =\n        this.match(tt.num) || this.match(tt.string) || this.match(tt.bigint)\n          ? this.parseExprAtom()\n          : this.parseMaybePrivateName(isPrivateNameAllowed);\n\n      if (prop.key.type !== \"PrivateName\") {\n        // ClassPrivateProperty is never computed, so we don't assign in that case.\n        prop.computed = false;\n      }\n\n      this.state.inPropertyName = oldInPropertyName;\n    }\n\n    return prop.key;\n  }\n\n  // Initialize empty function node.\n\n  initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: ?boolean): void {\n    node.id = null;\n    node.generator = false;\n    node.async = !!isAsync;\n  }\n\n  // Parse object or class method.\n\n  parseMethod<T: N.MethodLike>(\n    node: T,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowDirectSuper: boolean,\n    type: string,\n    inClassScope: boolean = false,\n  ): T {\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n\n    this.initFunction(node, isAsync);\n    node.generator = !!isGenerator;\n    const allowModifiers = isConstructor; // For TypeScript parameter properties\n    this.scope.enter(\n      SCOPE_FUNCTION |\n        SCOPE_SUPER |\n        (inClassScope ? SCOPE_CLASS : 0) |\n        (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0),\n    );\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n    this.parseFunctionParams((node: any), allowModifiers);\n    this.parseFunctionBodyAndFinish(node, type, true);\n    this.prodParam.exit();\n    this.scope.exit();\n\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  // Parse arrow function expression.\n  // If the parameters are provided, they will be converted to an\n  // assignable list.\n  parseArrowExpression(\n    node: N.ArrowFunctionExpression,\n    params: ?(N.Expression[]),\n    isAsync: boolean,\n    trailingCommaPos: ?number,\n  ): N.ArrowFunctionExpression {\n    this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n    this.prodParam.enter(functionFlags(isAsync, false));\n    this.initFunction(node, isAsync);\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n\n    if (params) {\n      this.state.maybeInArrowParameters = true;\n      this.setArrowFunctionParameters(node, params, trailingCommaPos);\n    }\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.parseFunctionBody(node, true);\n\n    this.prodParam.exit();\n    this.scope.exit();\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return this.finishNode(node, \"ArrowFunctionExpression\");\n  }\n\n  setArrowFunctionParameters(\n    node: N.ArrowFunctionExpression,\n    params: N.Expression[],\n    trailingCommaPos: ?number,\n  ): void {\n    node.params = this.toAssignableList(params, trailingCommaPos);\n  }\n\n  parseFunctionBodyAndFinish(\n    node: N.BodilessFunctionOrMethodBase,\n    type: string,\n    isMethod?: boolean = false,\n  ): void {\n    // $FlowIgnore (node is not bodiless if we get here)\n    this.parseFunctionBody(node, false, isMethod);\n    this.finishNode(node, type);\n  }\n\n  // Parse function body and check parameters.\n  parseFunctionBody(\n    node: N.Function,\n    allowExpression: ?boolean,\n    isMethod?: boolean = false,\n  ): void {\n    const isExpression = allowExpression && !this.match(tt.braceL);\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = false;\n\n    if (isExpression) {\n      node.body = this.parseMaybeAssign();\n      this.checkParams(node, false, allowExpression, false);\n    } else {\n      const oldStrict = this.state.strict;\n      // Start a new scope with regard to labels\n      // flag (restore them to their old value afterwards).\n      const oldLabels = this.state.labels;\n      this.state.labels = [];\n\n      // FunctionBody[Yield, Await]:\n      //   StatementList[?Yield, ?Await, +Return] opt\n      this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN);\n      node.body = this.parseBlock(\n        true,\n        false,\n        // Strict mode function checks after we parse the statements in the function body.\n        (hasStrictModeDirective: boolean) => {\n          const nonSimple = !this.isSimpleParamList(node.params);\n\n          if (hasStrictModeDirective && nonSimple) {\n            // This logic is here to align the error location with the ESTree plugin.\n            const errorPos =\n              // $FlowIgnore\n              (node.kind === \"method\" || node.kind === \"constructor\") &&\n              // $FlowIgnore\n              !!node.key\n                ? node.key.end\n                : node.start;\n            this.raise(errorPos, Errors.IllegalLanguageModeDirective);\n          }\n\n          const strictModeChanged = !oldStrict && this.state.strict;\n\n          // Add the params to varDeclaredNames to ensure that an error is thrown\n          // if a let/const declaration in the function clashes with one of the params.\n          this.checkParams(\n            node,\n            !this.state.strict && !allowExpression && !isMethod && !nonSimple,\n            allowExpression,\n            strictModeChanged,\n          );\n\n          // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n          if (this.state.strict && node.id) {\n            this.checkLVal(\n              node.id,\n              BIND_OUTSIDE,\n              undefined,\n              \"function name\",\n              undefined,\n              strictModeChanged,\n            );\n          }\n        },\n      );\n      this.prodParam.exit();\n      this.state.labels = oldLabels;\n    }\n\n    this.state.inParameters = oldInParameters;\n  }\n\n  isSimpleParamList(\n    params: $ReadOnlyArray<N.Pattern | N.TSParameterProperty>,\n  ): boolean {\n    for (let i = 0, len = params.length; i < len; i++) {\n      if (params[i].type !== \"Identifier\") return false;\n    }\n    return true;\n  }\n\n  checkParams(\n    node: N.Function,\n    allowDuplicates: boolean,\n    // eslint-disable-next-line no-unused-vars\n    isArrowFunction: ?boolean,\n    strictModeChanged?: boolean = true,\n  ): void {\n    // $FlowIssue\n    const nameHash: {} = Object.create(null);\n    for (let i = 0; i < node.params.length; i++) {\n      this.checkLVal(\n        node.params[i],\n        BIND_VAR,\n        allowDuplicates ? null : nameHash,\n        \"function parameter list\",\n        undefined,\n        strictModeChanged,\n      );\n    }\n  }\n\n  // Parses a comma-separated list of expressions, and returns them as\n  // an array. `close` is the token type that ends the list, and\n  // `allowEmpty` can be turned on to allow subsequent commas with\n  // nothing in between them to be parsed as `null` (which is needed\n  // for array literals).\n\n  parseExprList(\n    close: TokenType,\n    allowEmpty?: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let first = true;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n    }\n    return elts;\n  }\n\n  parseExprListItem(\n    allowEmpty: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    refNeedsArrowPos: ?Pos,\n    allowPlaceholder: ?boolean,\n  ): ?N.Expression {\n    let elt;\n    if (allowEmpty && this.match(tt.comma)) {\n      elt = null;\n    } else if (this.match(tt.ellipsis)) {\n      const spreadNodeStartPos = this.state.start;\n      const spreadNodeStartLoc = this.state.startLoc;\n      elt = this.parseParenItem(\n        this.parseSpread(refExpressionErrors, refNeedsArrowPos),\n        spreadNodeStartPos,\n        spreadNodeStartLoc,\n      );\n    } else if (this.match(tt.question)) {\n      this.expectPlugin(\"partialApplication\");\n      if (!allowPlaceholder) {\n        this.raise(this.state.start, Errors.UnexpectedArgumentPlaceholder);\n      }\n      const node = this.startNode();\n      this.next();\n      elt = this.finishNode(node, \"ArgumentPlaceholder\");\n    } else {\n      elt = this.parseMaybeAssign(\n        false,\n        refExpressionErrors,\n        this.parseParenItem,\n        refNeedsArrowPos,\n      );\n    }\n    return elt;\n  }\n\n  // Parse the next token as an identifier. If `liberal` is true (used\n  // when parsing properties), it will also convert keywords into\n  // identifiers.\n  // This shouldn't be used to parse the keywords of meta properties, since they\n  // are not identifiers and cannot contain escape sequences.\n\n  parseIdentifier(liberal?: boolean): N.Identifier {\n    const node = this.startNode();\n    const name = this.parseIdentifierName(node.start, liberal);\n\n    return this.createIdentifier(node, name);\n  }\n\n  createIdentifier(node: N.Identifier, name: string): N.Identifier {\n    node.name = name;\n    node.loc.identifierName = name;\n\n    return this.finishNode(node, \"Identifier\");\n  }\n\n  parseIdentifierName(pos: number, liberal?: boolean): string {\n    let name: string;\n\n    if (this.match(tt.name)) {\n      name = this.state.value;\n    } else if (this.state.type.keyword) {\n      name = this.state.type.keyword;\n\n      // `class` and `function` keywords push new context into this.context.\n      // But there is no chance to pop the context if the keyword is consumed\n      // as an identifier such as a property name.\n      // If the previous token is a dot, this does not apply because the\n      // context-managing code already ignored the keyword\n      if (\n        (name === \"class\" || name === \"function\") &&\n        (this.state.lastTokEnd !== this.state.lastTokStart + 1 ||\n          this.input.charCodeAt(this.state.lastTokStart) !== charCodes.dot)\n      ) {\n        this.state.context.pop();\n      }\n    } else {\n      throw this.unexpected();\n    }\n\n    if (liberal) {\n      // If the current token is not used as a keyword, set its type to \"tt.name\".\n      // This will prevent this.next() from throwing about unexpected escapes.\n      this.state.type = tt.name;\n    } else {\n      this.checkReservedWord(\n        name,\n        this.state.start,\n        !!this.state.type.keyword,\n        false,\n      );\n    }\n\n    this.next();\n\n    return name;\n  }\n\n  checkReservedWord(\n    word: string,\n    startLoc: number,\n    checkKeywords: boolean,\n    isBinding: boolean,\n  ): void {\n    if (this.prodParam.hasYield && word === \"yield\") {\n      this.raise(startLoc, Errors.YieldBindingIdentifier);\n      return;\n    }\n\n    if (word === \"await\") {\n      if (this.prodParam.hasAwait) {\n        this.raise(startLoc, Errors.AwaitBindingIdentifier);\n        return;\n      }\n      if (\n        this.state.awaitPos === -1 &&\n        (this.state.maybeInAsyncArrowHead || this.isAwaitAllowed())\n      ) {\n        this.state.awaitPos = this.state.start;\n      }\n    }\n\n    if (\n      this.scope.inClass &&\n      !this.scope.inNonArrowFunction &&\n      word === \"arguments\"\n    ) {\n      this.raise(startLoc, Errors.ArgumentsDisallowedInInitializer);\n      return;\n    }\n    if (checkKeywords && isKeyword(word)) {\n      this.raise(startLoc, Errors.UnexpectedKeyword, word);\n      return;\n    }\n\n    const reservedTest = !this.state.strict\n      ? isReservedWord\n      : isBinding\n      ? isStrictBindReservedWord\n      : isStrictReservedWord;\n\n    if (reservedTest(word, this.inModule)) {\n      if (!this.prodParam.hasAwait && word === \"await\") {\n        this.raise(startLoc, Errors.AwaitNotInAsyncFunction);\n      } else {\n        this.raise(startLoc, Errors.UnexpectedReservedWord, word);\n      }\n    }\n  }\n\n  isAwaitAllowed(): boolean {\n    if (this.scope.inFunction) return this.prodParam.hasAwait;\n    if (this.options.allowAwaitOutsideFunction) return true;\n    if (this.hasPlugin(\"topLevelAwait\")) {\n      return this.inModule && this.prodParam.hasAwait;\n    }\n    return false;\n  }\n\n  // Parses await expression inside async function.\n\n  parseAwait(): N.AwaitExpression {\n    const node = this.startNode();\n\n    this.next();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.AwaitExpressionFormalParameter);\n    } else if (this.state.awaitPos === -1) {\n      this.state.awaitPos = node.start;\n    }\n    if (this.eat(tt.star)) {\n      this.raise(node.start, Errors.ObsoleteAwaitStar);\n    }\n\n    if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n      if (\n        this.hasPrecedingLineBreak() ||\n        // All the following expressions are ambiguous:\n        //   await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``\n        this.match(tt.plusMin) ||\n        this.match(tt.parenL) ||\n        this.match(tt.bracketL) ||\n        this.match(tt.backQuote) ||\n        // Sometimes the tokenizer generates tt.slash for regexps, and this is\n        // handler by parseExprAtom\n        this.match(tt.regexp) ||\n        this.match(tt.slash) ||\n        // This code could be parsed both as a modulo operator or as an intrinsic:\n        //   await %x(0)\n        (this.hasPlugin(\"v8intrinsic\") && this.match(tt.modulo))\n      ) {\n        this.ambiguousScriptDifferentAst = true;\n      } else {\n        this.sawUnambiguousESM = true;\n      }\n    }\n\n    if (!this.state.soloAwait) {\n      node.argument = this.parseMaybeUnary();\n    }\n\n    return this.finishNode(node, \"AwaitExpression\");\n  }\n\n  // Parses yield expression inside generator.\n\n  parseYield(noIn?: ?boolean): N.YieldExpression {\n    const node = this.startNode();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.YieldInParameter);\n    } else if (this.state.yieldPos === -1) {\n      this.state.yieldPos = node.start;\n    }\n\n    this.next();\n    if (\n      this.match(tt.semi) ||\n      (!this.match(tt.star) && !this.state.type.startsExpr) ||\n      this.hasPrecedingLineBreak()\n    ) {\n      node.delegate = false;\n      node.argument = null;\n    } else {\n      node.delegate = this.eat(tt.star);\n      node.argument = this.parseMaybeAssign(noIn);\n    }\n    return this.finishNode(node, \"YieldExpression\");\n  }\n\n  // Validates a pipeline (for any of the pipeline Babylon plugins) at the point\n  // of the infix operator `|>`.\n\n  checkPipelineAtInfixOperator(left: N.Expression, leftStartPos: number) {\n    if (this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\") {\n      if (left.type === \"SequenceExpression\") {\n        // Ensure that the pipeline head is not a comma-delimited\n        // sequence expression.\n        this.raise(leftStartPos, Errors.PipelineHeadSequenceExpression);\n      }\n    }\n  }\n\n  parseSmartPipelineBody(\n    childExpression: N.Expression,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const pipelineStyle = this.checkSmartPipelineBodyStyle(childExpression);\n\n    this.checkSmartPipelineBodyEarlyErrors(\n      childExpression,\n      pipelineStyle,\n      startPos,\n    );\n\n    return this.parseSmartPipelineBodyInStyle(\n      childExpression,\n      pipelineStyle,\n      startPos,\n      startLoc,\n    );\n  }\n\n  checkSmartPipelineBodyEarlyErrors(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n  ): void {\n    if (this.match(tt.arrow)) {\n      // If the following token is invalidly `=>`, then throw a human-friendly error\n      // instead of something like 'Unexpected token, expected \";\"'.\n      throw this.raise(this.state.start, Errors.PipelineBodyNoArrow);\n    } else if (\n      pipelineStyle === \"PipelineTopicExpression\" &&\n      childExpression.type === \"SequenceExpression\"\n    ) {\n      this.raise(startPos, Errors.PipelineBodySequenceExpression);\n    }\n  }\n\n  parseSmartPipelineBodyInStyle(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const bodyNode = this.startNodeAt(startPos, startLoc);\n    switch (pipelineStyle) {\n      case \"PipelineBareFunction\":\n        bodyNode.callee = childExpression;\n        break;\n      case \"PipelineBareConstructor\":\n        bodyNode.callee = childExpression.callee;\n        break;\n      case \"PipelineBareAwaitedFunction\":\n        bodyNode.callee = childExpression.argument;\n        break;\n      case \"PipelineTopicExpression\":\n        if (!this.topicReferenceWasUsedInCurrentTopicContext()) {\n          this.raise(startPos, Errors.PipelineTopicUnused);\n        }\n        bodyNode.expression = childExpression;\n        break;\n      default:\n        throw new Error(\n          `Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`,\n        );\n    }\n    return this.finishNode(bodyNode, pipelineStyle);\n  }\n\n  checkSmartPipelineBodyStyle(expression: N.Expression): N.PipelineStyle {\n    switch (expression.type) {\n      default:\n        return this.isSimpleReference(expression)\n          ? \"PipelineBareFunction\"\n          : \"PipelineTopicExpression\";\n    }\n  }\n\n  isSimpleReference(expression: N.Expression): boolean {\n    switch (expression.type) {\n      case \"MemberExpression\":\n        return (\n          !expression.computed && this.isSimpleReference(expression.object)\n        );\n      case \"Identifier\":\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  // Enable topic references from outer contexts within smart pipeline bodies.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicPermittingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Enable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 1,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  // Disable topic references from outer contexts within syntax constructs\n  // such as the bodies of iteration statements.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicForbiddingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Disable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 0,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  withSoloAwaitPermittingContext<T>(callback: () => T): T {\n    const outerContextSoloAwaitState = this.state.soloAwait;\n    this.state.soloAwait = true;\n\n    try {\n      return callback();\n    } finally {\n      this.state.soloAwait = outerContextSoloAwaitState;\n    }\n  }\n\n  // Register the use of a primary topic reference (`#`) within the current\n  // topic context.\n  registerTopicReference(): void {\n    this.state.topicContext.maxTopicIndex = 0;\n  }\n\n  primaryTopicReferenceIsAllowedInCurrentTopicContext(): boolean {\n    return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n  }\n\n  topicReferenceWasUsedInCurrentTopicContext(): boolean {\n    return (\n      this.state.topicContext.maxTopicIndex != null &&\n      this.state.topicContext.maxTopicIndex >= 0\n    );\n  }\n\n  parseFSharpPipelineBody(prec: number, noIn: ?boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    this.state.potentialArrowAt = this.state.start;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = true;\n\n    const ret = this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      prec,\n      noIn,\n    );\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return ret;\n  }\n}\n","// @flow\n\nimport * as N from \"../types\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport ExpressionParser from \"./expression\";\nimport { Errors } from \"./location\";\nimport {\n  isIdentifierChar,\n  isIdentifierStart,\n  keywordRelationalOperator,\n} from \"../util/identifier\";\nimport { lineBreak } from \"../util/whitespace\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_CLASS,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_CLASS,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  CLASS_ELEMENT_OTHER,\n  CLASS_ELEMENT_INSTANCE_GETTER,\n  CLASS_ELEMENT_INSTANCE_SETTER,\n  CLASS_ELEMENT_STATIC_GETTER,\n  CLASS_ELEMENT_STATIC_SETTER,\n  type BindingTypes,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { PARAM, functionFlags } from \"../util/production-parameter\";\n\nconst loopLabel = { kind: \"loop\" },\n  switchLabel = { kind: \"switch\" };\n\nconst FUNC_NO_FLAGS = 0b000,\n  FUNC_STATEMENT = 0b001,\n  FUNC_HANGING_STATEMENT = 0b010,\n  FUNC_NULLABLE_ID = 0b100;\n\nexport default class StatementParser extends ExpressionParser {\n  // ### Statement parsing\n\n  // Parse a program. Initializes the parser, reads any number of\n  // statements, and wraps them in a Program node.  Optionally takes a\n  // `program` argument.  If present, the statements will be appended\n  // to its body instead of creating a new node.\n\n  parseTopLevel(file: N.File, program: N.Program): N.File {\n    program.sourceType = this.options.sourceType;\n\n    program.interpreter = this.parseInterpreterDirective();\n\n    this.parseBlockBody(program, true, true, tt.eof);\n\n    if (\n      this.inModule &&\n      !this.options.allowUndeclaredExports &&\n      this.scope.undefinedExports.size > 0\n    ) {\n      for (const [name] of Array.from(this.scope.undefinedExports)) {\n        const pos = this.scope.undefinedExports.get(name);\n        // $FlowIssue\n        this.raise(pos, Errors.ModuleExportUndefined, name);\n      }\n    }\n\n    file.program = this.finishNode(program, \"Program\");\n    file.comments = this.state.comments;\n\n    if (this.options.tokens) file.tokens = this.tokens;\n\n    return this.finishNode(file, \"File\");\n  }\n\n  // TODO\n\n  stmtToDirective(stmt: N.Statement): N.Directive {\n    const expr = stmt.expression;\n\n    const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\n    const directive = this.startNodeAt(stmt.start, stmt.loc.start);\n\n    const raw = this.input.slice(expr.start, expr.end);\n    const val = (directiveLiteral.value = raw.slice(1, -1)); // remove quotes\n\n    this.addExtra(directiveLiteral, \"raw\", raw);\n    this.addExtra(directiveLiteral, \"rawValue\", val);\n\n    directive.value = this.finishNodeAt(\n      directiveLiteral,\n      \"DirectiveLiteral\",\n      expr.end,\n      expr.loc.end,\n    );\n\n    return this.finishNodeAt(directive, \"Directive\", stmt.end, stmt.loc.end);\n  }\n\n  parseInterpreterDirective(): N.InterpreterDirective | null {\n    if (!this.match(tt.interpreterDirective)) {\n      return null;\n    }\n\n    const node = this.startNode();\n    node.value = this.state.value;\n    this.next();\n    return this.finishNode(node, \"InterpreterDirective\");\n  }\n\n  isLet(context: ?string): boolean {\n    if (!this.isContextual(\"let\")) {\n      return false;\n    }\n    const next = this.nextTokenStart();\n    const nextCh = this.input.charCodeAt(next);\n    // For ambiguous cases, determine if a LexicalDeclaration (or only a\n    // Statement) is allowed here. If context is not empty then only a Statement\n    // is allowed. However, `let [` is an explicit negative lookahead for\n    // ExpressionStatement, so special-case it first.\n    if (nextCh === charCodes.leftSquareBracket) return true;\n    if (context) return false;\n\n    if (nextCh === charCodes.leftCurlyBrace) return true;\n\n    if (isIdentifierStart(nextCh)) {\n      let pos = next + 1;\n      while (isIdentifierChar(this.input.charCodeAt(pos))) {\n        ++pos;\n      }\n      const ident = this.input.slice(next, pos);\n      if (!keywordRelationalOperator.test(ident)) return true;\n    }\n    return false;\n  }\n\n  // Parse a single statement.\n  //\n  // If expecting a statement and finding a slash operator, parse a\n  // regular expression literal. This is to handle cases like\n  // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n  // does not help.\n\n  parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n    if (this.match(tt.at)) {\n      this.parseDecorators(true);\n    }\n    return this.parseStatementContent(context, topLevel);\n  }\n\n  parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n    let starttype = this.state.type;\n    const node = this.startNode();\n    let kind;\n\n    if (this.isLet(context)) {\n      starttype = tt._var;\n      kind = \"let\";\n    }\n\n    // Most types of statements are recognized by the keyword they\n    // start with. Many are trivial to parse, some require a bit of\n    // complexity.\n\n    switch (starttype) {\n      case tt._break:\n      case tt._continue:\n        // $FlowFixMe\n        return this.parseBreakContinueStatement(node, starttype.keyword);\n      case tt._debugger:\n        return this.parseDebuggerStatement(node);\n      case tt._do:\n        return this.parseDoStatement(node);\n      case tt._for:\n        return this.parseForStatement(node);\n      case tt._function:\n        if (this.lookaheadCharCode() === charCodes.dot) break;\n        if (context) {\n          if (this.state.strict) {\n            this.raise(this.state.start, Errors.StrictFunction);\n          } else if (context !== \"if\" && context !== \"label\") {\n            this.raise(this.state.start, Errors.SloppyFunction);\n          }\n        }\n        return this.parseFunctionStatement(node, false, !context);\n\n      case tt._class:\n        if (context) this.unexpected();\n        return this.parseClass(node, true);\n\n      case tt._if:\n        return this.parseIfStatement(node);\n      case tt._return:\n        return this.parseReturnStatement(node);\n      case tt._switch:\n        return this.parseSwitchStatement(node);\n      case tt._throw:\n        return this.parseThrowStatement(node);\n      case tt._try:\n        return this.parseTryStatement(node);\n\n      case tt._const:\n      case tt._var:\n        kind = kind || this.state.value;\n        if (context && kind !== \"var\") {\n          this.raise(this.state.start, Errors.UnexpectedLexicalDeclaration);\n        }\n        return this.parseVarStatement(node, kind);\n\n      case tt._while:\n        return this.parseWhileStatement(node);\n      case tt._with:\n        return this.parseWithStatement(node);\n      case tt.braceL:\n        return this.parseBlock();\n      case tt.semi:\n        return this.parseEmptyStatement(node);\n      case tt._export:\n      case tt._import: {\n        const nextTokenCharCode = this.lookaheadCharCode();\n        if (\n          nextTokenCharCode === charCodes.leftParenthesis ||\n          nextTokenCharCode === charCodes.dot\n        ) {\n          break;\n        }\n\n        if (!this.options.allowImportExportEverywhere && !topLevel) {\n          this.raise(this.state.start, Errors.UnexpectedImportExport);\n        }\n\n        this.next();\n\n        let result;\n        if (starttype === tt._import) {\n          result = this.parseImport(node);\n\n          if (\n            result.type === \"ImportDeclaration\" &&\n            (!result.importKind || result.importKind === \"value\")\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        } else {\n          result = this.parseExport(node);\n\n          if (\n            (result.type === \"ExportNamedDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            (result.type === \"ExportAllDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            result.type === \"ExportDefaultDeclaration\"\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        }\n\n        this.assertModuleNodeAllowed(node);\n\n        return result;\n      }\n\n      default: {\n        if (this.isAsyncFunction()) {\n          if (context) {\n            this.raise(\n              this.state.start,\n              Errors.AsyncFunctionInSingleStatementContext,\n            );\n          }\n          this.next();\n          return this.parseFunctionStatement(node, true, !context);\n        }\n      }\n    }\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n    const maybeName = this.state.value;\n    const expr = this.parseExpression();\n\n    if (\n      starttype === tt.name &&\n      expr.type === \"Identifier\" &&\n      this.eat(tt.colon)\n    ) {\n      return this.parseLabeledStatement(node, maybeName, expr, context);\n    } else {\n      return this.parseExpressionStatement(node, expr);\n    }\n  }\n\n  assertModuleNodeAllowed(node: N.Node): void {\n    if (!this.options.allowImportExportEverywhere && !this.inModule) {\n      this.raiseWithData(\n        node.start,\n        {\n          code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\",\n        },\n        Errors.ImportOutsideModule,\n      );\n    }\n  }\n\n  takeDecorators(node: N.HasDecorators): void {\n    const decorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (decorators.length) {\n      node.decorators = decorators;\n      this.resetStartLocationFromNode(node, decorators[0]);\n      this.state.decoratorStack[this.state.decoratorStack.length - 1] = [];\n    }\n  }\n\n  canHaveLeadingDecorator(): boolean {\n    return this.match(tt._class);\n  }\n\n  parseDecorators(allowExport?: boolean): void {\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    while (this.match(tt.at)) {\n      const decorator = this.parseDecorator();\n      currentContextDecorators.push(decorator);\n    }\n\n    if (this.match(tt._export)) {\n      if (!allowExport) {\n        this.unexpected();\n      }\n\n      if (\n        this.hasPlugin(\"decorators\") &&\n        !this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorExportClass);\n      }\n    } else if (!this.canHaveLeadingDecorator()) {\n      throw this.raise(this.state.start, Errors.UnexpectedLeadingDecorator);\n    }\n  }\n\n  parseDecorator(): N.Decorator {\n    this.expectOnePlugin([\"decorators-legacy\", \"decorators\"]);\n\n    const node = this.startNode();\n    this.next();\n\n    if (this.hasPlugin(\"decorators\")) {\n      // Every time a decorator class expression is evaluated, a new empty array is pushed onto the stack\n      // So that the decorators of any nested class expressions will be dealt with separately\n      this.state.decoratorStack.push([]);\n\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let expr: N.Expression;\n\n      if (this.eat(tt.parenL)) {\n        expr = this.parseExpression();\n        this.expect(tt.parenR);\n      } else {\n        expr = this.parseIdentifier(false);\n\n        while (this.eat(tt.dot)) {\n          const node = this.startNodeAt(startPos, startLoc);\n          node.object = expr;\n          node.property = this.parseIdentifier(true);\n          node.computed = false;\n          expr = this.finishNode(node, \"MemberExpression\");\n        }\n      }\n\n      node.expression = this.parseMaybeDecoratorArguments(expr);\n      this.state.decoratorStack.pop();\n    } else {\n      node.expression = this.parseExprSubscripts();\n    }\n    return this.finishNode(node, \"Decorator\");\n  }\n\n  parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n    if (this.eat(tt.parenL)) {\n      const node = this.startNodeAtNode(expr);\n      node.callee = expr;\n      node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      this.toReferencedList(node.arguments);\n      return this.finishNode(node, \"CallExpression\");\n    }\n\n    return expr;\n  }\n\n  parseBreakContinueStatement(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ): N.BreakStatement | N.ContinueStatement {\n    const isBreak = keyword === \"break\";\n    this.next();\n\n    if (this.isLineTerminator()) {\n      node.label = null;\n    } else {\n      node.label = this.parseIdentifier();\n      this.semicolon();\n    }\n\n    this.verifyBreakContinue(node, keyword);\n\n    return this.finishNode(\n      node,\n      isBreak ? \"BreakStatement\" : \"ContinueStatement\",\n    );\n  }\n\n  verifyBreakContinue(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ) {\n    const isBreak = keyword === \"break\";\n    let i;\n    for (i = 0; i < this.state.labels.length; ++i) {\n      const lab = this.state.labels[i];\n      if (node.label == null || lab.name === node.label.name) {\n        if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break;\n        if (node.label && isBreak) break;\n      }\n    }\n    if (i === this.state.labels.length) {\n      this.raise(node.start, Errors.IllegalBreakContinue, keyword);\n    }\n  }\n\n  parseDebuggerStatement(node: N.DebuggerStatement): N.DebuggerStatement {\n    this.next();\n    this.semicolon();\n    return this.finishNode(node, \"DebuggerStatement\");\n  }\n\n  parseHeaderExpression(): N.Expression {\n    this.expect(tt.parenL);\n    const val = this.parseExpression();\n    this.expect(tt.parenR);\n    return val;\n  }\n\n  parseDoStatement(node: N.DoWhileStatement): N.DoWhileStatement {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body's body.\n        this.parseStatement(\"do\"),\n      );\n\n    this.state.labels.pop();\n\n    this.expect(tt._while);\n    node.test = this.parseHeaderExpression();\n    this.eat(tt.semi);\n    return this.finishNode(node, \"DoWhileStatement\");\n  }\n\n  // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n  // loop is non-trivial. Basically, we have to parse the init `var`\n  // statement or expression, disallowing the `in` operator (see\n  // the second parameter to `parseExpression`), and then check\n  // whether the next token is `in` or `of`. When there is no init\n  // part (semicolon immediately after the opening parenthesis), it\n  // is a regular `for` loop.\n\n  parseForStatement(node: N.Node): N.ForLike {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    let awaitAt = -1;\n    if (this.isAwaitAllowed() && this.eatContextual(\"await\")) {\n      awaitAt = this.state.lastTokStart;\n    }\n    this.scope.enter(SCOPE_OTHER);\n    this.expect(tt.parenL);\n\n    if (this.match(tt.semi)) {\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, null);\n    }\n\n    const isLet = this.isLet();\n    if (this.match(tt._var) || this.match(tt._const) || isLet) {\n      const init = this.startNode();\n      const kind = isLet ? \"let\" : this.state.value;\n      this.next();\n      this.parseVar(init, true, kind);\n      this.finishNode(init, \"VariableDeclaration\");\n\n      if (\n        (this.match(tt._in) || this.isContextual(\"of\")) &&\n        init.declarations.length === 1\n      ) {\n        return this.parseForIn(node, init, awaitAt);\n      }\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, init);\n    }\n\n    const refExpressionErrors = new ExpressionErrors();\n    const init = this.parseExpression(true, refExpressionErrors);\n    if (this.match(tt._in) || this.isContextual(\"of\")) {\n      this.toAssignable(init);\n      const description = this.isContextual(\"of\")\n        ? \"for-of statement\"\n        : \"for-in statement\";\n      this.checkLVal(init, undefined, undefined, description);\n      return this.parseForIn(node, init, awaitAt);\n    } else {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n    if (awaitAt > -1) {\n      this.unexpected(awaitAt);\n    }\n    return this.parseFor(node, init);\n  }\n\n  parseFunctionStatement(\n    node: N.FunctionDeclaration,\n    isAsync?: boolean,\n    declarationPosition?: boolean,\n  ): N.FunctionDeclaration {\n    this.next();\n    return this.parseFunction(\n      node,\n      FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT),\n      isAsync,\n    );\n  }\n\n  parseIfStatement(node: N.IfStatement): N.IfStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    node.consequent = this.parseStatement(\"if\");\n    node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null;\n    return this.finishNode(node, \"IfStatement\");\n  }\n\n  parseReturnStatement(node: N.ReturnStatement): N.ReturnStatement {\n    if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n      this.raise(this.state.start, Errors.IllegalReturn);\n    }\n\n    this.next();\n\n    // In `return` (and `break`/`continue`), the keywords with\n    // optional arguments, we eagerly look for a semicolon or the\n    // possibility to insert one.\n\n    if (this.isLineTerminator()) {\n      node.argument = null;\n    } else {\n      node.argument = this.parseExpression();\n      this.semicolon();\n    }\n\n    return this.finishNode(node, \"ReturnStatement\");\n  }\n\n  parseSwitchStatement(node: N.SwitchStatement): N.SwitchStatement {\n    this.next();\n    node.discriminant = this.parseHeaderExpression();\n    const cases = (node.cases = []);\n    this.expect(tt.braceL);\n    this.state.labels.push(switchLabel);\n    this.scope.enter(SCOPE_OTHER);\n\n    // Statements under must be grouped (by label) in SwitchCase\n    // nodes. `cur` is used to keep the node that we are currently\n    // adding statements to.\n\n    let cur;\n    for (let sawDefault; !this.match(tt.braceR); ) {\n      if (this.match(tt._case) || this.match(tt._default)) {\n        const isCase = this.match(tt._case);\n        if (cur) this.finishNode(cur, \"SwitchCase\");\n        cases.push((cur = this.startNode()));\n        cur.consequent = [];\n        this.next();\n        if (isCase) {\n          cur.test = this.parseExpression();\n        } else {\n          if (sawDefault) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.MultipleDefaultsInSwitch,\n            );\n          }\n          sawDefault = true;\n          cur.test = null;\n        }\n        this.expect(tt.colon);\n      } else {\n        if (cur) {\n          cur.consequent.push(this.parseStatement(null));\n        } else {\n          this.unexpected();\n        }\n      }\n    }\n    this.scope.exit();\n    if (cur) this.finishNode(cur, \"SwitchCase\");\n    this.next(); // Closing brace\n    this.state.labels.pop();\n    return this.finishNode(node, \"SwitchStatement\");\n  }\n\n  parseThrowStatement(node: N.ThrowStatement): N.ThrowStatement {\n    this.next();\n    if (\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.NewlineAfterThrow);\n    }\n    node.argument = this.parseExpression();\n    this.semicolon();\n    return this.finishNode(node, \"ThrowStatement\");\n  }\n\n  parseTryStatement(node: N.TryStatement): N.TryStatement {\n    this.next();\n\n    node.block = this.parseBlock();\n    node.handler = null;\n\n    if (this.match(tt._catch)) {\n      const clause = this.startNode();\n      this.next();\n      if (this.match(tt.parenL)) {\n        this.expect(tt.parenL);\n        clause.param = this.parseBindingAtom();\n        const simple = clause.param.type === \"Identifier\";\n        this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0);\n        this.checkLVal(clause.param, BIND_LEXICAL, null, \"catch clause\");\n        this.expect(tt.parenR);\n      } else {\n        clause.param = null;\n        this.scope.enter(SCOPE_OTHER);\n      }\n\n      clause.body =\n        // For the smartPipelines plugin: Disable topic references from outer\n        // contexts within the function body. They are permitted in function\n        // default-parameter expressions, which are part of the outer context,\n        // outside of the function body.\n        this.withTopicForbiddingContext(() =>\n          // Parse the catch clause's body.\n          this.parseBlock(false, false),\n        );\n      this.scope.exit();\n\n      node.handler = this.finishNode(clause, \"CatchClause\");\n    }\n\n    node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null;\n\n    if (!node.handler && !node.finalizer) {\n      this.raise(node.start, Errors.NoCatchOrFinally);\n    }\n\n    return this.finishNode(node, \"TryStatement\");\n  }\n\n  parseVarStatement(\n    node: N.VariableDeclaration,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    this.next();\n    this.parseVar(node, false, kind);\n    this.semicolon();\n    return this.finishNode(node, \"VariableDeclaration\");\n  }\n\n  parseWhileStatement(node: N.WhileStatement): N.WhileStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"while\"),\n      );\n\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"WhileStatement\");\n  }\n\n  parseWithStatement(node: N.WithStatement): N.WithStatement {\n    if (this.state.strict) {\n      this.raise(this.state.start, Errors.StrictWith);\n    }\n    this.next();\n    node.object = this.parseHeaderExpression();\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the function body.\n      // They are permitted in function default-parameter expressions, which are\n      // part of the outer context, outside of the function body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the statement body.\n        this.parseStatement(\"with\"),\n      );\n\n    return this.finishNode(node, \"WithStatement\");\n  }\n\n  parseEmptyStatement(node: N.EmptyStatement): N.EmptyStatement {\n    this.next();\n    return this.finishNode(node, \"EmptyStatement\");\n  }\n\n  parseLabeledStatement(\n    node: N.LabeledStatement,\n    maybeName: string,\n    expr: N.Identifier,\n    context: ?string,\n  ): N.LabeledStatement {\n    for (const label of this.state.labels) {\n      if (label.name === maybeName) {\n        this.raise(expr.start, Errors.LabelRedeclaration, maybeName);\n      }\n    }\n\n    const kind = this.state.type.isLoop\n      ? \"loop\"\n      : this.match(tt._switch)\n      ? \"switch\"\n      : null;\n    for (let i = this.state.labels.length - 1; i >= 0; i--) {\n      const label = this.state.labels[i];\n      if (label.statementStart === node.start) {\n        label.statementStart = this.state.start;\n        label.kind = kind;\n      } else {\n        break;\n      }\n    }\n\n    this.state.labels.push({\n      name: maybeName,\n      kind: kind,\n      statementStart: this.state.start,\n    });\n    node.body = this.parseStatement(\n      context\n        ? context.indexOf(\"label\") === -1\n          ? context + \"label\"\n          : context\n        : \"label\",\n    );\n\n    this.state.labels.pop();\n    node.label = expr;\n    return this.finishNode(node, \"LabeledStatement\");\n  }\n\n  parseExpressionStatement(\n    node: N.ExpressionStatement,\n    expr: N.Expression,\n  ): N.Statement {\n    node.expression = expr;\n    this.semicolon();\n    return this.finishNode(node, \"ExpressionStatement\");\n  }\n\n  // Parse a semicolon-enclosed block of statements, handling `\"use\n  // strict\"` declarations when `allowStrict` is true (used for\n  // function bodies).\n\n  parseBlock(\n    allowDirectives?: boolean = false,\n    createNewLexicalScope?: boolean = true,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): N.BlockStatement {\n    const node = this.startNode();\n    this.expect(tt.braceL);\n    if (createNewLexicalScope) {\n      this.scope.enter(SCOPE_OTHER);\n    }\n    this.parseBlockBody(\n      node,\n      allowDirectives,\n      false,\n      tt.braceR,\n      afterBlockParse,\n    );\n    if (createNewLexicalScope) {\n      this.scope.exit();\n    }\n    return this.finishNode(node, \"BlockStatement\");\n  }\n\n  isValidDirective(stmt: N.Statement): boolean {\n    return (\n      stmt.type === \"ExpressionStatement\" &&\n      stmt.expression.type === \"StringLiteral\" &&\n      !stmt.expression.extra.parenthesized\n    );\n  }\n\n  parseBlockBody(\n    node: N.BlockStatementLike,\n    allowDirectives: ?boolean,\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const body = (node.body = []);\n    const directives = (node.directives = []);\n    this.parseBlockOrModuleBlockBody(\n      body,\n      allowDirectives ? directives : undefined,\n      topLevel,\n      end,\n      afterBlockParse,\n    );\n  }\n\n  // Undefined directives means that directives are not allowed.\n  parseBlockOrModuleBlockBody(\n    body: N.Statement[],\n    directives: ?(N.Directive[]),\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const octalPositions = [];\n    const oldStrict = this.state.strict;\n    let hasStrictModeDirective = false;\n    let parsedNonDirective = false;\n\n    while (!this.match(end)) {\n      // Track octal literals that occur before a \"use strict\" directive.\n      if (!parsedNonDirective && this.state.octalPositions.length) {\n        octalPositions.push(...this.state.octalPositions);\n      }\n\n      const stmt = this.parseStatement(null, topLevel);\n\n      if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {\n        const directive = this.stmtToDirective(stmt);\n        directives.push(directive);\n\n        if (!hasStrictModeDirective && directive.value.value === \"use strict\") {\n          hasStrictModeDirective = true;\n          this.setStrict(true);\n        }\n\n        continue;\n      }\n\n      parsedNonDirective = true;\n      body.push(stmt);\n    }\n\n    // Throw an error for any octal literals found before a\n    // \"use strict\" directive. Strict mode will be set at parse\n    // time for any literals that occur after the directive.\n    if (this.state.strict && octalPositions.length) {\n      for (const pos of octalPositions) {\n        this.raise(pos, Errors.StrictOctalLiteral);\n      }\n    }\n\n    if (afterBlockParse) {\n      afterBlockParse.call(this, hasStrictModeDirective);\n    }\n\n    if (!oldStrict) {\n      this.setStrict(false);\n    }\n\n    this.next();\n  }\n\n  // Parse a regular `for` loop. The disambiguation code in\n  // `parseStatement` will already have parsed the init statement or\n  // expression.\n\n  parseFor(\n    node: N.ForStatement,\n    init: ?(N.VariableDeclaration | N.Expression),\n  ): N.ForStatement {\n    node.init = init;\n    this.expect(tt.semi);\n    node.test = this.match(tt.semi) ? null : this.parseExpression();\n    this.expect(tt.semi);\n    node.update = this.match(tt.parenR) ? null : this.parseExpression();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"ForStatement\");\n  }\n\n  // Parse a `for`/`in` and `for`/`of` loop, which are almost\n  // same from parser's perspective.\n\n  parseForIn(\n    node: N.ForInOf,\n    init: N.VariableDeclaration | N.AssignmentPattern,\n    awaitAt: number,\n  ): N.ForInOf {\n    const isForIn = this.match(tt._in);\n    this.next();\n\n    if (isForIn) {\n      if (awaitAt > -1) this.unexpected(awaitAt);\n    } else {\n      node.await = awaitAt > -1;\n    }\n\n    if (\n      init.type === \"VariableDeclaration\" &&\n      init.declarations[0].init != null &&\n      (!isForIn ||\n        this.state.strict ||\n        init.kind !== \"var\" ||\n        init.declarations[0].id.type !== \"Identifier\")\n    ) {\n      this.raise(\n        init.start,\n        Errors.ForInOfLoopInitializer,\n        isForIn ? \"for-in\" : \"for-of\",\n      );\n    } else if (init.type === \"AssignmentPattern\") {\n      this.raise(init.start, Errors.InvalidLhs, \"for-loop\");\n    }\n\n    node.left = init;\n    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n  }\n\n  // Parse a list of variable declarations.\n\n  parseVar(\n    node: N.VariableDeclaration,\n    isFor: boolean,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    const declarations = (node.declarations = []);\n    const isTypescript = this.hasPlugin(\"typescript\");\n    node.kind = kind;\n    for (;;) {\n      const decl = this.startNode();\n      this.parseVarId(decl, kind);\n      if (this.eat(tt.eq)) {\n        decl.init = this.parseMaybeAssign(isFor);\n      } else {\n        if (\n          kind === \"const\" &&\n          !(this.match(tt._in) || this.isContextual(\"of\"))\n        ) {\n          // `const` with no initializer is allowed in TypeScript.\n          // It could be a declaration like `const x: number;`.\n          if (!isTypescript) {\n            this.unexpected();\n          }\n        } else if (\n          decl.id.type !== \"Identifier\" &&\n          !(isFor && (this.match(tt._in) || this.isContextual(\"of\")))\n        ) {\n          this.raise(\n            this.state.lastTokEnd,\n            Errors.DeclarationMissingInitializer,\n            \"Complex binding patterns\",\n          );\n        }\n        decl.init = null;\n      }\n      declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n      if (!this.eat(tt.comma)) break;\n    }\n    return node;\n  }\n\n  parseVarId(decl: N.VariableDeclarator, kind: \"var\" | \"let\" | \"const\"): void {\n    decl.id = this.parseBindingAtom();\n    this.checkLVal(\n      decl.id,\n      kind === \"var\" ? BIND_VAR : BIND_LEXICAL,\n      undefined,\n      \"variable declaration\",\n      kind !== \"var\",\n    );\n  }\n\n  // Parse a function declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseFunction<T: N.NormalFunction>(\n    node: T,\n    statement?: number = FUNC_NO_FLAGS,\n    isAsync?: boolean = false,\n  ): T {\n    const isStatement = statement & FUNC_STATEMENT;\n    const isHangingStatement = statement & FUNC_HANGING_STATEMENT;\n    const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID);\n\n    this.initFunction(node, isAsync);\n\n    if (this.match(tt.star) && isHangingStatement) {\n      this.raise(this.state.start, Errors.GeneratorInSingleStatementContext);\n    }\n    node.generator = this.eat(tt.star);\n\n    if (isStatement) {\n      node.id = this.parseFunctionId(requireId);\n    }\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.scope.enter(SCOPE_FUNCTION);\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n\n    if (!isStatement) {\n      node.id = this.parseFunctionId();\n    }\n\n    this.parseFunctionParams(node);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the function body. They are permitted in test\n    // expressions, outside of the function body.\n    this.withTopicForbiddingContext(() => {\n      // Parse the function body.\n      this.parseFunctionBodyAndFinish(\n        node,\n        isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\",\n      );\n    });\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    if (isStatement && !isHangingStatement) {\n      // We need to register this _after_ parsing the function body\n      // because of TypeScript body-less function declarations,\n      // which shouldn't be added to the scope.\n      this.registerFunctionStatementId(node);\n    }\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  parseFunctionId(requireId?: boolean): ?N.Identifier {\n    return requireId || this.match(tt.name) ? this.parseIdentifier() : null;\n  }\n\n  parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = true;\n\n    this.expect(tt.parenL);\n    node.params = this.parseBindingList(\n      tt.parenR,\n      charCodes.rightParenthesis,\n      /* allowEmpty */ false,\n      allowModifiers,\n    );\n\n    this.state.inParameters = oldInParameters;\n    this.checkYieldAwaitInDefaultParams();\n  }\n\n  registerFunctionStatementId(node: N.Function): void {\n    if (!node.id) return;\n\n    // If it is a regular function declaration in sloppy mode, then it is\n    // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n    // mode depends on properties of the current scope (see\n    // treatFunctionsAsVar).\n    this.scope.declareName(\n      node.id.name,\n      this.state.strict || node.generator || node.async\n        ? this.scope.treatFunctionsAsVar\n          ? BIND_VAR\n          : BIND_LEXICAL\n        : BIND_FUNCTION,\n      node.id.start,\n    );\n  }\n\n  // Parse a class declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseClass<T: N.Class>(\n    node: T,\n    isStatement: /* T === ClassDeclaration */ boolean,\n    optionalId?: boolean,\n  ): T {\n    this.next();\n    this.takeDecorators(node);\n\n    // A class definition is always strict mode code.\n    const oldStrict = this.state.strict;\n    this.state.strict = true;\n\n    this.parseClassId(node, isStatement, optionalId);\n    this.parseClassSuper(node);\n    node.body = this.parseClassBody(!!node.superClass, oldStrict);\n\n    this.state.strict = oldStrict;\n\n    return this.finishNode(\n      node,\n      isStatement ? \"ClassDeclaration\" : \"ClassExpression\",\n    );\n  }\n\n  isClassProperty(): boolean {\n    return this.match(tt.eq) || this.match(tt.semi) || this.match(tt.braceR);\n  }\n\n  isClassMethod(): boolean {\n    return this.match(tt.parenL);\n  }\n\n  isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n    return (\n      !method.computed &&\n      !method.static &&\n      (method.key.name === \"constructor\" || // Identifier\n        method.key.value === \"constructor\") // String literal\n    );\n  }\n\n  parseClassBody(\n    constructorAllowsSuper: boolean,\n    oldStrict?: boolean,\n  ): N.ClassBody {\n    this.classScope.enter();\n\n    const state = { hadConstructor: false };\n    let decorators: N.Decorator[] = [];\n    const classBody: N.ClassBody = this.startNode();\n    classBody.body = [];\n\n    this.expect(tt.braceL);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the class body. They are permitted in test expressions,\n    // outside of the class body.\n    this.withTopicForbiddingContext(() => {\n      while (!this.match(tt.braceR)) {\n        if (this.eat(tt.semi)) {\n          if (decorators.length > 0) {\n            throw this.raise(this.state.lastTokEnd, Errors.DecoratorSemicolon);\n          }\n          continue;\n        }\n\n        if (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n          continue;\n        }\n\n        const member = this.startNode();\n\n        // steal the decorators if there are any\n        if (decorators.length) {\n          member.decorators = decorators;\n          this.resetStartLocationFromNode(member, decorators[0]);\n          decorators = [];\n        }\n\n        this.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n        if (\n          member.kind === \"constructor\" &&\n          member.decorators &&\n          member.decorators.length > 0\n        ) {\n          this.raise(member.start, Errors.DecoratorConstructor);\n        }\n      }\n    });\n\n    if (!oldStrict) {\n      this.state.strict = false;\n    }\n\n    this.next();\n\n    if (decorators.length) {\n      throw this.raise(this.state.start, Errors.TrailingDecorator);\n    }\n\n    this.classScope.exit();\n\n    return this.finishNode(classBody, \"ClassBody\");\n  }\n\n  // returns true if the current identifier is a method/field name,\n  // false if it is a modifier\n  parseClassMemberFromModifier(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n  ): boolean {\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseIdentifier(true); // eats the modifier\n\n    if (this.isClassMethod()) {\n      const method: N.ClassMethod = (member: any);\n\n      // a method named like the modifier\n      method.kind = \"method\";\n      method.computed = false;\n      method.key = key;\n      method.static = false;\n      this.pushClassMethod(\n        classBody,\n        method,\n        false,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n      return true;\n    } else if (this.isClassProperty()) {\n      const prop: N.ClassProperty = (member: any);\n\n      // a property named like the modifier\n      prop.computed = false;\n      prop.key = key;\n      prop.static = false;\n      classBody.body.push(this.parseClassProperty(prop));\n      return true;\n    } else if (containsEsc) {\n      throw this.unexpected();\n    }\n\n    return false;\n  }\n\n  parseClassMember(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    constructorAllowsSuper: boolean,\n  ): void {\n    const isStatic = this.isContextual(\"static\");\n\n    if (isStatic && this.parseClassMemberFromModifier(classBody, member)) {\n      // a class element named 'static'\n      return;\n    }\n\n    this.parseClassMemberWithIsStatic(\n      classBody,\n      member,\n      state,\n      isStatic,\n      constructorAllowsSuper,\n    );\n  }\n\n  parseClassMemberWithIsStatic(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    isStatic: boolean,\n    constructorAllowsSuper: boolean,\n  ) {\n    const publicMethod: $FlowSubtype<N.ClassMethod> = member;\n    const privateMethod: $FlowSubtype<N.ClassPrivateMethod> = member;\n    const publicProp: $FlowSubtype<N.ClassMethod> = member;\n    const privateProp: $FlowSubtype<N.ClassPrivateMethod> = member;\n\n    const method: typeof publicMethod | typeof privateMethod = publicMethod;\n    const publicMember: typeof publicMethod | typeof publicProp = publicMethod;\n\n    member.static = isStatic;\n\n    if (this.eat(tt.star)) {\n      // a generator\n      method.kind = \"method\";\n      this.parseClassPropertyName(method);\n\n      if (method.key.type === \"PrivateName\") {\n        // Private generator method\n        this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n        return;\n      }\n\n      if (this.isNonstaticConstructor(publicMethod)) {\n        this.raise(publicMethod.key.start, Errors.ConstructorIsGenerator);\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        true,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n\n      return;\n    }\n\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseClassPropertyName(member);\n    const isPrivate = key.type === \"PrivateName\";\n    // Check the key is not a computed expression or string literal.\n    const isSimple = key.type === \"Identifier\";\n    const maybeQuestionTokenStart = this.state.start;\n\n    this.parsePostMemberNameModifiers(publicMember);\n\n    if (this.isClassMethod()) {\n      method.kind = \"method\";\n\n      if (isPrivate) {\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n        return;\n      }\n\n      // a normal method\n      const isConstructor = this.isNonstaticConstructor(publicMethod);\n      let allowsDirectSuper = false;\n      if (isConstructor) {\n        publicMethod.kind = \"constructor\";\n\n        // TypeScript allows multiple overloaded constructor declarations.\n        if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n          this.raise(key.start, Errors.DuplicateConstructor);\n        }\n        state.hadConstructor = true;\n        allowsDirectSuper = constructorAllowsSuper;\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        false,\n        false,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    } else if (this.isClassProperty()) {\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else if (\n      isSimple &&\n      key.name === \"async\" &&\n      !containsEsc &&\n      !this.isLineTerminator()\n    ) {\n      // an async method\n      const isGenerator = this.eat(tt.star);\n\n      if (publicMember.optional) {\n        this.unexpected(maybeQuestionTokenStart);\n      }\n\n      method.kind = \"method\";\n      // The so-called parsed name would have been \"async\": get the real name.\n      this.parseClassPropertyName(method);\n      this.parsePostMemberNameModifiers(publicMember);\n\n      if (method.key.type === \"PrivateName\") {\n        // private async method\n        this.pushClassPrivateMethod(\n          classBody,\n          privateMethod,\n          isGenerator,\n          true,\n        );\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAsync);\n        }\n\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          isGenerator,\n          true,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n    } else if (\n      isSimple &&\n      (key.name === \"get\" || key.name === \"set\") &&\n      !containsEsc &&\n      !(this.match(tt.star) && this.isLineTerminator())\n    ) {\n      // `get\\n*` is an uninitialized property named 'get' followed by a generator.\n      // a getter or setter\n      method.kind = key.name;\n      // The so-called parsed name would have been \"get/set\": get the real name.\n      this.parseClassPropertyName(publicMethod);\n\n      if (method.key.type === \"PrivateName\") {\n        // private getter/setter\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAccessor);\n        }\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          false,\n          false,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n\n      this.checkGetterSetterParams(publicMethod);\n    } else if (this.isLineTerminator()) {\n      // an uninitialized class property (due to ASI, since we don't otherwise recognize the next token)\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else {\n      this.unexpected();\n    }\n  }\n\n  parseClassPropertyName(member: N.ClassMember): N.Expression | N.Identifier {\n    const key = this.parsePropertyName(member, /* isPrivateNameAllowed */ true);\n\n    if (\n      !member.computed &&\n      member.static &&\n      ((key: $FlowSubtype<N.Identifier>).name === \"prototype\" ||\n        (key: $FlowSubtype<N.StringLiteral>).value === \"prototype\")\n    ) {\n      this.raise(key.start, Errors.StaticPrototype);\n    }\n\n    if (key.type === \"PrivateName\" && key.id.name === \"constructor\") {\n      this.raise(key.start, Errors.ConstructorClassPrivateField);\n    }\n\n    return key;\n  }\n\n  pushClassProperty(classBody: N.ClassBody, prop: N.ClassProperty) {\n    if (\n      !prop.computed &&\n      (prop.key.name === \"constructor\" || prop.key.value === \"constructor\")\n    ) {\n      // Non-computed field, which is either an identifier named \"constructor\"\n      // or a string literal named \"constructor\"\n      this.raise(prop.key.start, Errors.ConstructorClassField);\n    }\n\n    classBody.body.push(this.parseClassProperty(prop));\n  }\n\n  pushClassPrivateProperty(\n    classBody: N.ClassBody,\n    prop: N.ClassPrivateProperty,\n  ) {\n    this.expectPlugin(\"classPrivateProperties\", prop.key.start);\n\n    const node = this.parseClassPrivateProperty(prop);\n    classBody.body.push(node);\n\n    this.classScope.declarePrivateName(\n      node.key.id.name,\n      CLASS_ELEMENT_OTHER,\n      node.key.start,\n    );\n  }\n\n  pushClassMethod(\n    classBody: N.ClassBody,\n    method: N.ClassMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowsDirectSuper: boolean,\n  ): void {\n    classBody.body.push(\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      ),\n    );\n  }\n\n  pushClassPrivateMethod(\n    classBody: N.ClassBody,\n    method: N.ClassPrivateMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n  ): void {\n    this.expectPlugin(\"classPrivateMethods\", method.key.start);\n\n    const node = this.parseMethod(\n      method,\n      isGenerator,\n      isAsync,\n      /* isConstructor */ false,\n      false,\n      \"ClassPrivateMethod\",\n      true,\n    );\n    classBody.body.push(node);\n\n    const kind =\n      node.kind === \"get\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_GETTER\n          : CLASS_ELEMENT_INSTANCE_GETTER\n        : node.kind === \"set\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_SETTER\n          : CLASS_ELEMENT_INSTANCE_SETTER\n        : CLASS_ELEMENT_OTHER;\n    this.classScope.declarePrivateName(node.key.id.name, kind, node.key.start);\n  }\n\n  // Overridden in typescript.js\n  parsePostMemberNameModifiers(\n    // eslint-disable-next-line no-unused-vars\n    methodOrProp: N.ClassMethod | N.ClassProperty,\n  ): void {}\n\n  // Overridden in typescript.js\n  parseAccessModifier(): ?N.Accessibility {\n    return undefined;\n  }\n\n  parseClassPrivateProperty(\n    node: N.ClassPrivateProperty,\n  ): N.ClassPrivateProperty {\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    node.value = this.eat(tt.eq) ? this.parseMaybeAssign() : null;\n    this.semicolon();\n    this.prodParam.exit();\n\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassPrivateProperty\");\n  }\n\n  parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n    if (!node.typeAnnotation) {\n      this.expectPlugin(\"classProperties\");\n    }\n\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    if (this.match(tt.eq)) {\n      this.expectPlugin(\"classProperties\");\n      this.next();\n      node.value = this.parseMaybeAssign();\n    } else {\n      node.value = null;\n    }\n    this.semicolon();\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassProperty\");\n  }\n\n  parseClassId(\n    node: N.Class,\n    isStatement: boolean,\n    optionalId: ?boolean,\n    bindingType: BindingTypes = BIND_CLASS,\n  ): void {\n    if (this.match(tt.name)) {\n      node.id = this.parseIdentifier();\n      if (isStatement) {\n        this.checkLVal(node.id, bindingType, undefined, \"class name\");\n      }\n    } else {\n      if (optionalId || !isStatement) {\n        node.id = null;\n      } else {\n        this.unexpected(null, Errors.MissingClassName);\n      }\n    }\n  }\n\n  parseClassSuper(node: N.Class): void {\n    node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null;\n  }\n\n  // Parses module export declaration.\n\n  parseExport(node: N.Node): N.AnyExport {\n    const hasDefault = this.maybeParseExportDefaultSpecifier(node);\n    const parseAfterDefault = !hasDefault || this.eat(tt.comma);\n    const hasStar = parseAfterDefault && this.eatExportStar(node);\n    const hasNamespace =\n      hasStar && this.maybeParseExportNamespaceSpecifier(node);\n    const parseAfterNamespace =\n      parseAfterDefault && (!hasNamespace || this.eat(tt.comma));\n    const isFromRequired = hasDefault || hasStar;\n\n    if (hasStar && !hasNamespace) {\n      if (hasDefault) this.unexpected();\n      this.parseExportFrom(node, true);\n\n      return this.finishNode(node, \"ExportAllDeclaration\");\n    }\n\n    const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n\n    if (\n      (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) ||\n      (hasNamespace && parseAfterNamespace && !hasSpecifiers)\n    ) {\n      throw this.unexpected(null, tt.braceL);\n    }\n\n    let hasDeclaration;\n    if (isFromRequired || hasSpecifiers) {\n      hasDeclaration = false;\n      this.parseExportFrom(node, isFromRequired);\n    } else {\n      hasDeclaration = this.maybeParseExportDeclaration(node);\n    }\n\n    if (isFromRequired || hasSpecifiers || hasDeclaration) {\n      this.checkExport(node, true, false, !!node.source);\n      return this.finishNode(node, \"ExportNamedDeclaration\");\n    }\n\n    if (this.eat(tt._default)) {\n      // export default ...\n      node.declaration = this.parseExportDefaultExpression();\n      this.checkExport(node, true, true);\n\n      return this.finishNode(node, \"ExportDefaultDeclaration\");\n    }\n\n    throw this.unexpected(null, tt.braceL);\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  eatExportStar(node: N.Node): boolean {\n    return this.eat(tt.star);\n  }\n\n  maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n    if (this.isExportDefaultSpecifier()) {\n      // export defaultObj ...\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n    if (this.isContextual(\"as\")) {\n      if (!node.specifiers) node.specifiers = [];\n\n      const specifier = this.startNodeAt(\n        this.state.lastTokStart,\n        this.state.lastTokStartLoc,\n      );\n\n      this.next();\n\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers.push(\n        this.finishNode(specifier, \"ExportNamespaceSpecifier\"),\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamedSpecifiers(node: N.Node): boolean {\n    if (this.match(tt.braceL)) {\n      if (!node.specifiers) node.specifiers = [];\n      node.specifiers.push(...this.parseExportSpecifiers());\n\n      node.source = null;\n      node.declaration = null;\n\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportDeclaration(node: N.Node): boolean {\n    if (this.shouldParseExportDeclaration()) {\n      if (this.isContextual(\"async\")) {\n        const next = this.nextTokenStart();\n\n        // export async;\n        if (!this.isUnparsedContextual(next, \"function\")) {\n          this.unexpected(next, tt._function);\n        }\n      }\n\n      node.specifiers = [];\n      node.source = null;\n      node.declaration = this.parseExportDeclaration(node);\n\n      return true;\n    }\n    return false;\n  }\n\n  isAsyncFunction(): boolean {\n    if (!this.isContextual(\"async\")) return false;\n    const next = this.nextTokenStart();\n    return (\n      !lineBreak.test(this.input.slice(this.state.pos, next)) &&\n      this.isUnparsedContextual(next, \"function\")\n    );\n  }\n\n  parseExportDefaultExpression(): N.Expression | N.Declaration {\n    const expr = this.startNode();\n\n    const isAsync = this.isAsyncFunction();\n\n    if (this.match(tt._function) || isAsync) {\n      this.next();\n      if (isAsync) {\n        this.next();\n      }\n\n      return this.parseFunction(\n        expr,\n        FUNC_STATEMENT | FUNC_NULLABLE_ID,\n        isAsync,\n      );\n    } else if (this.match(tt._class)) {\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt.at)) {\n      if (\n        this.hasPlugin(\"decorators\") &&\n        this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorBeforeExport);\n      }\n      this.parseDecorators(false);\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt._const) || this.match(tt._var) || this.isLet()) {\n      throw this.raise(this.state.start, Errors.UnsupportedDefaultExport);\n    } else {\n      const res = this.parseMaybeAssign();\n      this.semicolon();\n      return res;\n    }\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n    return this.parseStatement(null);\n  }\n\n  isExportDefaultSpecifier(): boolean {\n    if (this.match(tt.name)) {\n      return this.state.value !== \"async\" && this.state.value !== \"let\";\n    }\n\n    if (!this.match(tt._default)) {\n      return false;\n    }\n\n    const next = this.nextTokenStart();\n    return (\n      this.input.charCodeAt(next) === charCodes.comma ||\n      this.isUnparsedContextual(next, \"from\")\n    );\n  }\n\n  parseExportFrom(node: N.ExportNamedDeclaration, expect?: boolean): void {\n    if (this.eatContextual(\"from\")) {\n      node.source = this.parseImportSource();\n      this.checkExport(node);\n    } else {\n      if (expect) {\n        this.unexpected();\n      } else {\n        node.source = null;\n      }\n    }\n\n    this.semicolon();\n  }\n\n  shouldParseExportDeclaration(): boolean {\n    if (this.match(tt.at)) {\n      this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n      if (this.hasPlugin(\"decorators\")) {\n        if (this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")) {\n          this.unexpected(this.state.start, Errors.DecoratorBeforeExport);\n        } else {\n          return true;\n        }\n      }\n    }\n\n    return (\n      this.state.type.keyword === \"var\" ||\n      this.state.type.keyword === \"const\" ||\n      this.state.type.keyword === \"function\" ||\n      this.state.type.keyword === \"class\" ||\n      this.isLet() ||\n      this.isAsyncFunction()\n    );\n  }\n\n  checkExport(\n    node: N.ExportNamedDeclaration,\n    checkNames?: boolean,\n    isDefault?: boolean,\n    isFrom?: boolean,\n  ): void {\n    if (checkNames) {\n      // Check for duplicate exports\n      if (isDefault) {\n        // Default exports\n        this.checkDuplicateExports(node, \"default\");\n      } else if (node.specifiers && node.specifiers.length) {\n        // Named exports\n        for (const specifier of node.specifiers) {\n          this.checkDuplicateExports(specifier, specifier.exported.name);\n          // $FlowIgnore\n          if (!isFrom && specifier.local) {\n            // check for keywords used as local names\n            this.checkReservedWord(\n              specifier.local.name,\n              specifier.local.start,\n              true,\n              false,\n            );\n            // check if export is defined\n            // $FlowIgnore\n            this.scope.checkLocalExport(specifier.local);\n          }\n        }\n      } else if (node.declaration) {\n        // Exported declarations\n        if (\n          node.declaration.type === \"FunctionDeclaration\" ||\n          node.declaration.type === \"ClassDeclaration\"\n        ) {\n          const id = node.declaration.id;\n          if (!id) throw new Error(\"Assertion failure\");\n\n          this.checkDuplicateExports(node, id.name);\n        } else if (node.declaration.type === \"VariableDeclaration\") {\n          for (const declaration of node.declaration.declarations) {\n            this.checkDeclaration(declaration.id);\n          }\n        }\n      }\n    }\n\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (currentContextDecorators.length) {\n      const isClass =\n        node.declaration &&\n        (node.declaration.type === \"ClassDeclaration\" ||\n          node.declaration.type === \"ClassExpression\");\n      if (!node.declaration || !isClass) {\n        throw this.raise(node.start, Errors.UnsupportedDecoratorExport);\n      }\n      this.takeDecorators(node.declaration);\n    }\n  }\n\n  checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n    if (node.type === \"Identifier\") {\n      this.checkDuplicateExports(node, node.name);\n    } else if (node.type === \"ObjectPattern\") {\n      for (const prop of node.properties) {\n        this.checkDeclaration(prop);\n      }\n    } else if (node.type === \"ArrayPattern\") {\n      for (const elem of node.elements) {\n        if (elem) {\n          this.checkDeclaration(elem);\n        }\n      }\n    } else if (node.type === \"ObjectProperty\") {\n      this.checkDeclaration(node.value);\n    } else if (node.type === \"RestElement\") {\n      this.checkDeclaration(node.argument);\n    } else if (node.type === \"AssignmentPattern\") {\n      this.checkDeclaration(node.left);\n    }\n  }\n\n  checkDuplicateExports(\n    node:\n      | N.Identifier\n      | N.ExportNamedDeclaration\n      | N.ExportSpecifier\n      | N.ExportDefaultSpecifier,\n    name: string,\n  ): void {\n    if (this.state.exportedIdentifiers.indexOf(name) > -1) {\n      this.raise(\n        node.start,\n        name === \"default\"\n          ? Errors.DuplicateDefaultExport\n          : Errors.DuplicateExport,\n        name,\n      );\n    }\n    this.state.exportedIdentifiers.push(name);\n  }\n\n  // Parses a comma-separated list of module exports.\n\n  parseExportSpecifiers(): Array<N.ExportSpecifier> {\n    const nodes = [];\n    let first = true;\n\n    // export { x, y as z } [from '...']\n    this.expect(tt.braceL);\n\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      const node = this.startNode();\n      node.local = this.parseIdentifier(true);\n      node.exported = this.eatContextual(\"as\")\n        ? this.parseIdentifier(true)\n        : node.local.__clone();\n      nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n    }\n\n    return nodes;\n  }\n\n  // Parses import declaration.\n\n  parseImport(node: N.Node): N.AnyImport {\n    // import '...'\n    node.specifiers = [];\n    if (!this.match(tt.string)) {\n      const hasDefault = this.maybeParseDefaultImportSpecifier(node);\n      const parseNext = !hasDefault || this.eat(tt.comma);\n      const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n      if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n      this.expectContextual(\"from\");\n    }\n    node.source = this.parseImportSource();\n    this.semicolon();\n    return this.finishNode(node, \"ImportDeclaration\");\n  }\n\n  parseImportSource(): N.StringLiteral {\n    if (!this.match(tt.string)) this.unexpected();\n    return this.parseExprAtom();\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n    return this.match(tt.name);\n  }\n\n  parseImportSpecifierLocal(\n    node: N.ImportDeclaration,\n    specifier: N.Node,\n    type: string,\n    contextDescription: string,\n  ): void {\n    specifier.local = this.parseIdentifier();\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      contextDescription,\n    );\n    node.specifiers.push(this.finishNode(specifier, type));\n  }\n\n  maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.shouldParseDefaultImport(node)) {\n      // import defaultObj, { x, y as z } from '...'\n      this.parseImportSpecifierLocal(\n        node,\n        this.startNode(),\n        \"ImportDefaultSpecifier\",\n        \"default import specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseStarImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.match(tt.star)) {\n      const specifier = this.startNode();\n      this.next();\n      this.expectContextual(\"as\");\n\n      this.parseImportSpecifierLocal(\n        node,\n        specifier,\n        \"ImportNamespaceSpecifier\",\n        \"import namespace specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  parseNamedImportSpecifiers(node: N.ImportDeclaration) {\n    let first = true;\n    this.expect(tt.braceL);\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        // Detect an attempt to deep destructure\n        if (this.eat(tt.colon)) {\n          throw this.raise(this.state.start, Errors.DestructureNamedImport);\n        }\n\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      this.parseImportSpecifier(node);\n    }\n  }\n\n  parseImportSpecifier(node: N.ImportDeclaration): void {\n    const specifier = this.startNode();\n    specifier.imported = this.parseIdentifier(true);\n    if (this.eatContextual(\"as\")) {\n      specifier.local = this.parseIdentifier();\n    } else {\n      this.checkReservedWord(\n        specifier.imported.name,\n        specifier.start,\n        true,\n        true,\n      );\n      specifier.local = specifier.imported.__clone();\n    }\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      \"import specifier\",\n    );\n    node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n  }\n}\n","// @flow\n\nimport {\n  CLASS_ELEMENT_KIND_ACCESSOR,\n  CLASS_ELEMENT_FLAG_STATIC,\n  type ClassElementTypes,\n} from \"./scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nexport class ClassScope {\n  // A list of private named declared in the current class\n  privateNames: Set<string> = new Set();\n\n  // A list of private getters of setters without their counterpart\n  loneAccessors: Map<string, ClassElementTypes> = new Map();\n\n  // A list of private names used before being defined, mapping to\n  // their position.\n  undefinedPrivateNames: Map<string, number> = new Map();\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\nexport default class ClassScopeHandler {\n  stack: Array<ClassScope> = [];\n  raise: raiseFunction;\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction) {\n    this.raise = raise;\n  }\n\n  current(): ClassScope {\n    return this.stack[this.stack.length - 1];\n  }\n\n  enter() {\n    this.stack.push(new ClassScope());\n  }\n\n  exit() {\n    const oldClassScope = this.stack.pop();\n\n    // Migrate the usage of not yet defined private names to the outer\n    // class scope, or raise an error if we reached the top-level scope.\n\n    const current = this.current();\n\n    // Array.from is needed because this is compiled to an array-like for loop\n    for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) {\n      if (current) {\n        if (!current.undefinedPrivateNames.has(name)) {\n          current.undefinedPrivateNames.set(name, pos);\n        }\n      } else {\n        this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n      }\n    }\n  }\n\n  declarePrivateName(\n    name: string,\n    elementType: ClassElementTypes,\n    pos: number,\n  ) {\n    const classScope = this.current();\n    let redefined = classScope.privateNames.has(name);\n\n    if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) {\n      const accessor = redefined && classScope.loneAccessors.get(name);\n      if (accessor) {\n        const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC;\n        const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC;\n\n        const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR;\n        const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR;\n\n        // The private name can be duplicated only if it is used by\n        // two accessors with different kind (get and set), and if\n        // they have the same placement (static or not).\n        redefined = oldKind === newKind || oldStatic !== newStatic;\n\n        if (!redefined) classScope.loneAccessors.delete(name);\n      } else if (!redefined) {\n        classScope.loneAccessors.set(name, elementType);\n      }\n    }\n\n    if (redefined) {\n      this.raise(pos, Errors.PrivateNameRedeclaration, name);\n    }\n\n    classScope.privateNames.add(name);\n    classScope.undefinedPrivateNames.delete(name);\n  }\n\n  usePrivateName(name: string, pos: number) {\n    let classScope;\n    for (classScope of this.stack) {\n      if (classScope.privateNames.has(name)) return;\n    }\n\n    if (classScope) {\n      classScope.undefinedPrivateNames.set(name, pos);\n    } else {\n      // top-level\n      this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n    }\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type { File /*::, JSXOpeningElement */ } from \"../types\";\nimport type { PluginList } from \"../plugin-utils\";\nimport { getOptions } from \"../options\";\nimport StatementParser from \"./statement\";\nimport { SCOPE_PROGRAM } from \"../util/scopeflags\";\nimport ScopeHandler from \"../util/scope\";\nimport ClassScopeHandler from \"../util/class-scope\";\nimport ProductionParameterHandler, {\n  PARAM_AWAIT,\n  PARAM,\n} from \"../util/production-parameter\";\n\nexport type PluginsMap = Map<string, { [string]: any }>;\n\nexport default class Parser extends StatementParser {\n  // Forward-declaration so typescript plugin can override jsx plugin\n  /*::\n  +jsxParseOpeningElementAfterName: (\n    node: JSXOpeningElement,\n  ) => JSXOpeningElement;\n  */\n\n  constructor(options: ?Options, input: string) {\n    options = getOptions(options);\n    super(options, input);\n\n    const ScopeHandler = this.getScopeHandler();\n\n    this.options = options;\n    this.inModule = this.options.sourceType === \"module\";\n    this.scope = new ScopeHandler(this.raise.bind(this), this.inModule);\n    this.prodParam = new ProductionParameterHandler();\n    this.classScope = new ClassScopeHandler(this.raise.bind(this));\n    this.plugins = pluginsMap(this.options.plugins);\n    this.filename = options.sourceFilename;\n  }\n\n  // This can be overwritten, for example, by the TypeScript plugin.\n  getScopeHandler(): Class<ScopeHandler<*>> {\n    return ScopeHandler;\n  }\n\n  parse(): File {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    const file = this.startNode();\n    const program = this.startNode();\n    this.nextToken();\n    file.errors = null;\n    this.parseTopLevel(file, program);\n    file.errors = this.state.errors;\n    return file;\n  }\n}\n\nfunction pluginsMap(plugins: PluginList): PluginsMap {\n  const pluginMap: PluginsMap = new Map();\n  for (const plugin of plugins) {\n    const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];\n    if (!pluginMap.has(name)) pluginMap.set(name, options || {});\n  }\n  return pluginMap;\n}\n","// @flow\n\nimport { type Options } from \"./options\";\nimport {\n  hasPlugin,\n  validatePlugins,\n  mixinPluginNames,\n  mixinPlugins,\n  type PluginList,\n} from \"./plugin-utils\";\nimport Parser from \"./parser\";\n\nimport { types as tokTypes } from \"./tokenizer/types\";\nimport \"./tokenizer/context\";\n\nimport type { Expression, File } from \"./types\";\n\nexport function parse(input: string, options?: Options): File {\n  if (options && options.sourceType === \"unambiguous\") {\n    options = {\n      ...options,\n    };\n    try {\n      options.sourceType = \"module\";\n      const parser = getParser(options, input);\n      const ast = parser.parse();\n\n      if (parser.sawUnambiguousESM) {\n        return ast;\n      }\n\n      if (parser.ambiguousScriptDifferentAst) {\n        // Top level await introduces code which can be both a valid script and\n        // a valid module, but which produces different ASTs:\n        //    await\n        //    0\n        // can be parsed either as an AwaitExpression, or as two ExpressionStatements.\n        try {\n          options.sourceType = \"script\";\n          return getParser(options, input).parse();\n        } catch {}\n      } else {\n        // This is both a valid module and a valid script, but\n        // we parse it as a script by default\n        ast.program.sourceType = \"script\";\n      }\n\n      return ast;\n    } catch (moduleError) {\n      try {\n        options.sourceType = \"script\";\n        return getParser(options, input).parse();\n      } catch {}\n\n      throw moduleError;\n    }\n  } else {\n    return getParser(options, input).parse();\n  }\n}\n\nexport function parseExpression(input: string, options?: Options): Expression {\n  const parser = getParser(options, input);\n  if (parser.options.strictMode) {\n    parser.state.strict = true;\n  }\n  return parser.getExpression();\n}\n\nexport { tokTypes };\n\nfunction getParser(options: ?Options, input: string): Parser {\n  let cls = Parser;\n  if (options && options.plugins) {\n    validatePlugins(options.plugins);\n    cls = getParserClass(options.plugins);\n  }\n\n  return new cls(options, input);\n}\n\nconst parserClassCache: { [key: string]: Class<Parser> } = {};\n\n/** Get a Parser class with plugins applied. */\nfunction getParserClass(pluginsFromOptions: PluginList): Class<Parser> {\n  const pluginList = mixinPluginNames.filter(name =>\n    hasPlugin(pluginsFromOptions, name),\n  );\n\n  const key = pluginList.join(\"/\");\n  let cls = parserClassCache[key];\n  if (!cls) {\n    cls = Parser;\n    for (const plugin of pluginList) {\n      cls = mixinPlugins[plugin](cls);\n    }\n    parserClassCache[key] = cls;\n  }\n  return cls;\n}\n"],"names":["beforeExpr","startsExpr","isLoop","isAssign","prefix","postfix","TokenType","constructor","label","conf","keyword","rightAssociative","binop","updateContext","keywords","Map","createKeyword","name","options","token","set","createBinop","types","num","bigint","regexp","string","eof","bracketL","bracketHashL","bracketBarL","bracketR","bracketBarR","braceL","braceBarL","braceHashL","braceR","braceBarR","parenL","parenR","comma","semi","colon","doubleColon","dot","question","questionDot","arrow","template","ellipsis","backQuote","dollarBraceL","at","hash","interpreterDirective","eq","assign","incDec","bang","tilde","pipeline","nullishCoalescing","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","star","slash","exponent","_break","_case","_catch","_continue","_debugger","_default","_do","_else","_finally","_for","_function","_if","_return","_switch","_throw","_try","_var","_const","_while","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_in","_instanceof","_typeof","_void","_delete","SCOPE_OTHER","SCOPE_PROGRAM","SCOPE_FUNCTION","SCOPE_ARROW","SCOPE_SIMPLE_CATCH","SCOPE_SUPER","SCOPE_DIRECT_SUPER","SCOPE_CLASS","SCOPE_TS_MODULE","SCOPE_VAR","BIND_KIND_VALUE","BIND_KIND_TYPE","BIND_SCOPE_VAR","BIND_SCOPE_LEXICAL","BIND_SCOPE_FUNCTION","BIND_SCOPE_OUTSIDE","BIND_FLAGS_NONE","BIND_FLAGS_CLASS","BIND_FLAGS_TS_ENUM","BIND_FLAGS_TS_CONST_ENUM","BIND_FLAGS_TS_EXPORT_ONLY","BIND_CLASS","BIND_LEXICAL","BIND_VAR","BIND_FUNCTION","BIND_TS_INTERFACE","BIND_TS_TYPE","BIND_TS_ENUM","BIND_TS_AMBIENT","BIND_NONE","BIND_OUTSIDE","BIND_TS_CONST_ENUM","BIND_TS_NAMESPACE","CLASS_ELEMENT_FLAG_STATIC","CLASS_ELEMENT_KIND_GETTER","CLASS_ELEMENT_KIND_SETTER","CLASS_ELEMENT_KIND_ACCESSOR","CLASS_ELEMENT_STATIC_GETTER","CLASS_ELEMENT_STATIC_SETTER","CLASS_ELEMENT_INSTANCE_GETTER","CLASS_ELEMENT_INSTANCE_SETTER","CLASS_ELEMENT_OTHER","lineBreak","lineBreakG","RegExp","source","isNewLine","code","skipWhiteSpace","isWhitespace","Position","line","col","column","SourceLocation","start","end","getLineInfo","input","offset","lineStart","match","lastIndex","exec","index","BaseParser","sawUnambiguousESM","ambiguousScriptDifferentAst","hasPlugin","plugins","has","getPluginOption","plugin","get","last","stack","length","CommentsParser","addComment","comment","filename","loc","state","trailingComments","push","leadingComments","adjustCommentsAfterTrailingComma","node","elements","takeAllComments","lastElement","i","j","commentPreviousNode","splice","newTrailingComments","leadingComment","undefined","processComment","type","body","commentStack","firstChild","lastChild","lastInStack","pop","properties","arguments","slice","innerComments","Errors","Object","freeze","ArgumentsDisallowedInInitializer","AsyncFunctionInSingleStatementContext","AwaitBindingIdentifier","AwaitExpressionFormalParameter","AwaitNotInAsyncFunction","BadGetterArity","BadSetterArity","BadSetterRestParameter","ConstructorClassField","ConstructorClassPrivateField","ConstructorIsAccessor","ConstructorIsAsync","ConstructorIsGenerator","DeclarationMissingInitializer","DecoratorBeforeExport","DecoratorConstructor","DecoratorExportClass","DecoratorSemicolon","DeletePrivateField","DestructureNamedImport","DuplicateConstructor","DuplicateDefaultExport","DuplicateExport","DuplicateProto","DuplicateRegExpFlags","ElementAfterRest","EscapedCharNotAnIdentifier","ForInOfLoopInitializer","GeneratorInSingleStatementContext","IllegalBreakContinue","IllegalLanguageModeDirective","IllegalReturn","ImportCallArgumentTrailingComma","ImportCallArity","ImportCallArityLtOne","ImportCallNotNewExpression","ImportCallSpreadArgument","ImportMetaOutsideModule","ImportOutsideModule","InvalidCodePoint","InvalidDigit","InvalidEscapeSequence","InvalidEscapeSequenceTemplate","InvalidEscapedReservedWord","InvalidIdentifier","InvalidLhs","InvalidLhsBinding","InvalidNumber","InvalidOrUnexpectedToken","InvalidParenthesizedAssignment","InvalidPrivateFieldResolution","InvalidPropertyBindingPattern","InvalidRestAssignmentPattern","LabelRedeclaration","LetInLexicalBinding","MalformedRegExpFlags","MissingClassName","MissingEqInAssignment","MissingUnicodeEscape","MixingCoalesceWithLogical","ModuleExportUndefined","MultipleDefaultsInSwitch","NewlineAfterThrow","NoCatchOrFinally","NumberIdentifier","NumericSeparatorInEscapeSequence","ObsoleteAwaitStar","OptionalChainingNoNew","OptionalChainingNoTemplate","ParamDupe","PatternHasAccessor","PatternHasMethod","PipelineBodyNoArrow","PipelineBodySequenceExpression","PipelineHeadSequenceExpression","PipelineTopicUnused","PrimaryTopicNotAllowed","PrimaryTopicRequiresSmartPipeline","PrivateNameRedeclaration","RecordExpressionBarIncorrectEndSyntaxType","RecordExpressionBarIncorrectStartSyntaxType","RecordExpressionHashIncorrectStartSyntaxType","RestTrailingComma","SloppyFunction","StaticPrototype","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","StrictOctalLiteral","StrictWith","SuperNotAllowed","SuperPrivateField","TrailingDecorator","TupleExpressionBarIncorrectEndSyntaxType","TupleExpressionBarIncorrectStartSyntaxType","TupleExpressionHashIncorrectStartSyntaxType","UnexpectedArgumentPlaceholder","UnexpectedAwaitAfterPipelineBody","UnexpectedDigitAfterHash","UnexpectedImportExport","UnexpectedKeyword","UnexpectedLeadingDecorator","UnexpectedLexicalDeclaration","UnexpectedNewTarget","UnexpectedNumericSeparator","UnexpectedPrivateField","UnexpectedReservedWord","UnexpectedSuper","UnexpectedToken","UnexpectedTokenUnaryExponentiation","UnsupportedBind","UnsupportedDecoratorExport","UnsupportedDefaultExport","UnsupportedImport","UnsupportedMetaProperty","UnsupportedParameterDecorator","UnsupportedPropertyDecorator","UnsupportedSuper","UnterminatedComment","UnterminatedRegExp","UnterminatedString","UnterminatedTemplate","VarRedeclaration","YieldBindingIdentifier","YieldInParameter","ZeroDigitNumericSeparator","LocationParser","getLocationForPosition","pos","startLoc","lastTokStart","lastTokStartLoc","endLoc","lastTokEnd","lastTokEndLoc","raise","errorTemplate","params","raiseWithData","data","message","replace","_","_raise","errorContext","err","SyntaxError","errorRecovery","isLookahead","errors","isSimpleProperty","kind","method","superClass","estreeParseRegExpLiteral","pattern","flags","regex","e","estreeParseLiteral","estreeParseBigIntLiteral","value","bigInt","BigInt","String","parseLiteral","directiveToStmt","directive","directiveLiteral","stmt","startNodeAt","expression","raw","extra","finishNodeAt","initFunction","isAsync","checkDeclaration","checkGetterSetterParams","prop","paramCount","checkLVal","expr","bindingType","checkClashes","contextDescription","disallowLetBinding","forEach","checkDuplicatedProto","protoRef","refExpressionErrors","computed","shorthand","key","used","doubleProto","isValidDirective","parenthesized","stmtToDirective","parseBlockBody","allowDirectives","topLevel","directiveStatements","directives","map","d","concat","pushClassMethod","classBody","isGenerator","isConstructor","allowsDirectSuper","parseMethod","typeParameters","parseExprAtom","tt","startPos","parseFunctionBody","allowExpression","isMethod","allowDirectSuper","inClassScope","funcNode","startNode","finishNode","parseObjectMethod","isPattern","containsEsc","parseObjectProperty","toAssignable","toAssignableObjectExpressionProp","isLast","finishCallExpression","optional","callee","toReferencedListDeep","exprList","isParenthesizedExpr","parseExport","exported","specifiers","TokContext","isExpr","preserveSpace","override","braceStatement","braceExpression","templateQuasi","parenStatement","parenExpression","p","readTmplToken","functionExpression","functionStatement","context","exprAllowed","out","curContext","prevType","allowed","prodParam","hasYield","isIterator","braceIsBlock","statementParens","test","b_stat","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","isIdentifierStart","fromCharCode","isIdentifierChar","reservedWords","strict","strictBind","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","keywordRelationalOperator","isIteratorStart","current","next","reservedTypes","FlowErrors","AmbiguousConditionalArrow","AmbiguousDeclareModuleKind","AssignReservedType","DeclareClassElement","DeclareClassFieldInitializer","DuplicateDeclareModuleExports","EnumBooleanMemberNotInitialized","EnumDuplicateMemberName","EnumInconsistentMemberValues","EnumInvalidExplicitType","EnumInvalidExplicitTypeUnknownSupplied","EnumInvalidMemberInitializerPrimaryType","EnumInvalidMemberInitializerSymbolType","EnumInvalidMemberInitializerUnknownType","EnumInvalidMemberName","EnumNumberMemberNotInitialized","EnumStringMemberInconsistentlyInitailized","ImportTypeShorthandOnlyInPureImport","InexactInsideExact","InexactInsideNonObject","InexactVariance","InvalidNonTypeImportInDeclareModule","MissingTypeParamDefault","NestedDeclareModule","NestedFlowComment","OptionalBindingPattern","SpreadVariance","TypeBeforeInitializer","TypeCastInPattern","UnexpectedExplicitInexactInObject","UnexpectedReservedType","UnexpectedReservedUnderscore","UnexpectedSpaceBetweenModuloChecks","UnexpectedSpreadType","UnexpectedSubtractionOperand","UnexpectedTokenAfterTypeParameter","UnsupportedDeclareExportKind","UnsupportedStatementInDeclareModule","UnterminatedFlowComment","isEsModuleType","bodyElement","declaration","hasTypeImportKind","importKind","isMaybeDefaultImport","exportSuggestions","const","let","interface","partition","list","list1","list2","FLOW_PRAGMA_REGEX","flowPragma","shouldParseTypes","shouldParseEnums","finishToken","val","matches","Error","flowParseTypeInitialiser","tok","oldInType","inType","expect","flowParseType","flowParsePredicate","moduloLoc","moduloPos","checksLoc","expectContextual","eat","parseExpression","flowParseTypeAndPredicateInitialiser","predicate","flowParseDeclareClass","flowParseInterfaceish","flowParseDeclareFunction","id","parseIdentifier","typeNode","typeContainer","isRelational","flowParseTypeParameterDeclaration","tmp","flowParseFunctionTypeParams","rest","returnType","typeAnnotation","resetEndLocation","semicolon","flowParseDeclare","insideModule","flowParseDeclareVariable","eatContextual","flowParseDeclareModuleExports","flowParseDeclareModule","isContextual","flowParseDeclareTypeAlias","flowParseDeclareOpaqueType","flowParseDeclareInterface","flowParseDeclareExportDeclaration","unexpected","flowParseTypeAnnotatableIdentifier","scope","declareName","enter","bodyNode","parseImport","exit","hasModuleExport","default","isLet","suggestion","exportKind","flowParseTypeAnnotation","flowParseTypeAlias","flowParseOpaqueType","isClass","flowParseRestrictedIdentifier","extends","implements","mixins","flowParseInterfaceExtends","flowParseObjectType","allowStatic","allowExact","allowSpread","allowProto","allowInexact","flowParseQualifiedTypeIdentifier","flowParseTypeParameterInstantiation","flowParseInterface","checkNotUnderscore","checkReservedType","liberal","right","declare","supertype","impltype","flowParseTypeParameter","requireDefault","nodeStart","variance","flowParseVariance","ident","bound","jsxTagStart","defaultRequired","typeParameter","expectRelational","oldNoAnonFunctionType","noAnonFunctionType","flowParseTypeParameterInstantiationCallOrNew","flowParseTypeOrImplicitInstantiation","flowParseInterfaceType","flowParseObjectPropertyKey","flowParseObjectTypeIndexer","isStatic","static","lookahead","flowParseObjectTypeInternalSlot","flowParseObjectTypeMethodish","flowParseFunctionTypeParam","flowParseObjectTypeCallProperty","valueNode","callProperties","indexers","internalSlots","endDelim","exact","inexact","protoStart","inexactStart","propOrInexact","flowParseObjectTypeProperty","flowObjectTypeSemicolon","isInexactToken","argument","proto","flowCheckGetterSetterParams","property","node2","qualification","flowParseGenericType","flowParseTypeofType","flowParsePrimaryType","flowParseTupleType","lh","reinterpretTypeAsFunctionTypeParam","flowIdentToTypeAnnotation","isGroupedType","createIdentifier","flowParsePostfixType","canInsertSemicolon","elementType","flowParsePrefixType","flowParseAnonFunctionWithoutParens","param","flowParseIntersectionType","flowParseUnionType","allowPrimitiveOverride","typeCastToParameter","allowExpressionBody","forwardNoArrowParamsConversionAt","parseFunctionBodyAndFinish","parseStatement","flowParseEnumDeclaration","parseExpressionStatement","shouldParseExportDeclaration","isExportDefaultSpecifier","parseExportDefaultExpression","parseConditional","noIn","refNeedsArrowPos","result","tryParse","error","failState","clone","originalNoArrowAt","noArrowAt","consequent","failed","tryParseConditionalConsequent","valid","invalid","getArrowLikeExpressions","alternate","parseMaybeAssign","noArrowParamsConversionAt","disallowInvalid","arrows","finishArrowValidation","every","isAssignable","toAssignableList","trailingComma","checkParams","parse","indexOf","parseParenItem","typeCastNode","assertModuleNodeAllowed","decl","parseExportDeclaration","declarationNode","parseExportSpecifiers","parseExportFrom","eatExportStar","maybeParseExportNamespaceSpecifier","hasNamespace","parseClassId","isStatement","optionalId","parseClassMember","member","constructorAllowsSuper","parseClassMemberFromModifier","getTokenFromCode","charCodeAt","finishOp","readWord","isBinding","element","operator","trailingCommaPos","toReferencedList","parseClassProperty","parseClassPrivateProperty","isClassMethod","isClassProperty","isNonstaticConstructor","pushClassPrivateMethod","parseClassSuper","superTypeParameters","implemented","parsePropertyName","isPrivateNameAllowed","parseObjPropValue","parseAssignableListItemTypes","parseMaybeDefault","left","shouldParseDefaultImport","parseImportSpecifierLocal","specifier","local","maybeParseDefaultImportSpecifier","parseImportSpecifier","firstIdentLoc","firstIdent","specifierTypeKind","isLookaheadContextual","as_ident","imported","__clone","nodeIsTypeImport","specifierIsTypeImport","checkReservedWord","parseFunctionParams","allowModifiers","parseVarId","parseAsyncArrowFromCallExpression","call","shouldParseAsyncArrow","afterLeftParse","jsx","tc","j_oTag","j_expr","arrowExpression","resetStartLocationFromNode","thrown","parseArrow","shouldParseArrow","setArrowFunctionParameters","allowDuplicates","isArrowFunction","parseParenAndDistinguishExpression","canBeArrow","parseSubscripts","base","noCalls","parseCallExpressionArguments","abort","parseAsyncArrowWithTypeParameters","aborted","parseSubscript","subscriptState","isLookaheadRelational","optionalChainMember","stop","typeArguments","parseNewArguments","targs","parseArrowExpression","readToken_mult_modulo","hasFlowComment","nextToken","readToken_pipe_amp","parseTopLevel","file","program","fileNode","skipBlockComment","skipFlowComment","hasFlowCommentCompletion","shiftToFirstNonWhiteSpace","includes","ch2","ch3","flowEnumErrorBooleanMemberNotInitialized","enumName","memberName","flowEnumErrorInvalidMemberName","toUpperCase","flowEnumErrorDuplicateMemberName","flowEnumErrorInconsistentMemberValues","flowEnumErrorInvalidExplicitType","suppliedType","flowEnumErrorInvalidMemberInitializer","explicitType","flowEnumErrorNumberMemberNotInitialized","flowEnumErrorStringMemberInconsistentlyInitailized","flowEnumMemberInit","endOfInit","literal","parseBooleanLiteral","flowEnumMemberRaw","init","flowEnumCheckExplicitTypeMismatch","expectedType","flowEnumMembers","seenNames","members","booleanMembers","numberMembers","stringMembers","defaultedMembers","memberNode","add","flowEnumStringMembers","initializedMembers","flowEnumParseExplicitType","flowEnumBody","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","entities","quot","amp","apos","lt","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","HEX_NUMBER","DECIMAL_NUMBER","JsxErrors","AttributeIsEmpty","MissingClosingTagFragment","MissingClosingTagElement","UnsupportedJsxValue","UnterminatedJsxContent","UnwrappedAdjacentJSXElements","j_cTag","jsxName","jsxText","jsxTagEnd","isFragment","object","getQualifiedJSXName","namespace","jsxReadToken","chunkStart","ch","jsxReadEntity","jsxReadNewLine","normalizeCRLF","curLine","jsxReadString","quote","str","count","entity","substr","fromCodePoint","parseInt","XHTMLEntities","jsxReadWord","jsxParseIdentifier","jsxParseNamespacedName","jsxParseElementName","newNode","jsxParseAttributeValue","jsxParseExpressionContainer","jsxParseEmptyExpression","jsxParseSpreadChild","jsxParseAttribute","jsxParseOpeningElementAt","jsxParseOpeningElementAfterName","attributes","selfClosing","jsxParseClosingElementAt","jsxParseElementAt","children","openingElement","closingElement","contents","openingFragment","closingFragment","jsxParseElement","inPropertyName","Scope","var","lexical","functions","ScopeHandler","scopeStack","undefinedExports","undefinedPrivateNames","inFunction","currentVarScope","allowSuper","currentThisScope","inClass","inNonArrowFunction","treatFunctionsAsVar","treatFunctionsAsVarInScope","currentScope","createScope","checkRedeclarationInScope","maybeExportDefined","delete","isRedeclaredInScope","checkLocalExport","TypeScriptScope","enums","constEnums","classes","exportOnlyBindings","TypeScriptScopeHandler","isConst","wasConst","PARAM","PARAM_YIELD","PARAM_AWAIT","PARAM_RETURN","ProductionParameterHandler","stacks","currentFlags","hasAwait","hasReturn","functionFlags","nonNull","x","assert","TSErrors","ClassMethodHasDeclare","ClassMethodHasReadonly","DeclareClassFieldHasInitializer","DuplicateModifier","EmptyHeritageClauseType","IndexSignatureHasAbstract","IndexSignatureHasAccessibility","IndexSignatureHasStatic","OptionalTypeBeforeRequired","PatternIsOptional","PrivateElementHasAbstract","PrivateElementHasAccessibility","TemplateTypeHasSubstitution","TypeAnnotationAfterAssign","UnexpectedReadonly","UnexpectedTypeAnnotation","UnexpectedTypeCastInParameter","UnsupportedImportTypeArgument","UnsupportedParameterPropertyKind","UnsupportedSignatureParameterKind","keywordTypeFromName","getScopeHandler","tsIsIdentifier","tsNextTokenCanFollowModifier","hasPrecedingLineBreak","tsParseModifier","allowedModifiers","modifier","tsTryParse","bind","tsParseModifiers","modified","hasOwnProperty","tsIsListTerminator","tsParseList","parseElement","tsParseDelimitedList","tsParseDelimitedListWorker","expectSuccess","tsParseBracketedList","bracket","skipFirstToken","tsParseImportType","qualifier","tsParseEntityName","tsParseTypeArguments","allowReservedWords","startNodeAtNode","tsParseTypeReference","typeName","tsParseThisTypePredicate","lhs","parameterName","tsParseTypeAnnotation","tsParseThisTypeNode","tsParseTypeQuery","exprName","tsParseTypeParameter","parseIdentifierName","constraint","tsEatThenParseType","tsTryParseTypeParameters","tsParseTypeParameters","tsTryNextParseConstantContext","tsFillSignature","returnToken","signature","returnTokenRequired","parameters","tsParseBindingListForSignature","tsParseTypeOrTypePredicateAnnotation","parseBindingList","tsParseTypeMemberSemicolon","tsParseSignatureMember","tsIsUnambiguouslyIndexSignature","tsTryParseIndexSignature","tsLookAhead","tsTryParseTypeAnnotation","tsParsePropertyOrMethodSignature","readonly","nodeAny","tsParseTypeMember","idx","tsParseTypeLiteral","tsParseObjectTypeMembers","tsIsStartOfMappedType","tsParseMappedTypeParameter","tsExpectThenParseType","tsParseMappedType","tsTryParseType","tsParseTupleType","elementTypes","tsParseTupleElementType","seenOptionalElement","elementNode","restNode","tsParseType","lookaheadCharCode","raiseRestNotLast","optionalTypeNode","tsParseParenthesizedType","tsParseFunctionOrConstructorType","tsParseLiteralTypeNode","tsParseTemplateLiteralType","templateNode","parseTemplate","expressions","tsParseThisTypeOrThisTypePredicate","thisKeyword","tsParseNonArrayType","parseMaybeUnary","tsParseArrayTypeOrHigher","objectType","indexType","tsParseTypeOperator","tsParseTypeOperatorOrHigher","tsCheckTypeAnnotationForReadOnly","tsParseInferType","find","kw","tsParseUnionOrIntersectionType","parseConstituentType","tsParseIntersectionTypeOrHigher","tsParseUnionTypeOrHigher","tsIsStartOfFunctionType","tsIsUnambiguouslyStartOfFunctionType","tsSkipParameterStart","braceStackCounter","tsInType","t","asserts","tsParseTypePredicateAsserts","thisTypePredicate","typePredicateVariable","tsParseTypePredicatePrefix","tsTryParseTypeOrTypePredicateAnnotation","eatColon","tsParseNonConditionalType","checkType","extendsType","trueType","falseType","tsParseTypeAssertion","tsNextThenParseType","tsParseHeritageClause","descriptor","originalStart","delimitedList","tsParseExpressionWithTypeArguments","tsParseInterfaceDeclaration","tsParseTypeAliasDeclaration","tsInNoContext","cb","oldContext","tsDoThenParseType","tsParseEnumMember","initializer","tsParseEnumDeclaration","tsParseModuleBlock","parseBlockOrModuleBlockBody","tsParseModuleOrNamespaceDeclaration","nested","inner","tsParseAmbientExternalModuleDeclaration","global","tsParseImportEqualsDeclaration","isExport","moduleReference","tsParseModuleReference","tsIsExternalModuleReference","tsParseExternalModuleReference","f","res","tsTryParseAndCatch","tsTryParseDeclare","nany","isLineTerminator","starttype","parseFunctionStatement","parseClass","parseVarStatement","tsParseDeclaration","tsTryParseExportDeclaration","tsParseExpressionStatement","mod","tsCheckLineTerminatorAndMatch","cls","abstract","tokenType","tsTryParseGenericAsyncArrowFunction","oldMaybeInArrowParameters","maybeInArrowParameters","oldYieldPos","yieldPos","oldAwaitPos","awaitPos","tsIsDeclarationStart","parseAssignableListItem","decorators","accessibility","parseAccessModifier","elt","pp","parameter","bodilessType","registerFunctionStatementId","nonNullExpression","atPossibleAsyncArrow","asyncArrowFn","parseTaggedTemplateExpression","args","parseExprOp","leftStartPos","leftStartLoc","minPrec","checkKeywords","checkDuplicateExports","ahead","importNode","isAbstractClass","parseStatementContent","parseClassMemberWithIsStatic","parsePostMemberNameModifiers","methodOrProp","isDeclare","resetStartLocation","parseClassPropertyAnnotation","definite","equal","typeCast","ct","parseBindingAtom","parseMaybeDecoratorArguments","isInParens","canHaveLeadingDecorator","getGetterSetterExpectedParamCount","baseCount","firstParam","hasContextParam","placeholder","parsePlaceholder","expectedNode","assertNoSpace","finishPlaceholder","isFinished","verifyBreakContinue","parseBlock","parseFunctionId","takeDecorators","parseClassBody","expectPlugin","maybeParseExportDefaultSpecifier","checkExport","filter","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","parseImportSource","parseV8Intrinsic","v8IntrinsicStart","identifier","some","Array","isArray","option","PIPELINE_PROPOSALS","RECORD_AND_TUPLE_SYNTAX_TYPES","validatePlugins","decoratorsBeforeExport","join","mixinPlugins","estree","flow","typescript","v8intrinsic","placeholders","mixinPluginNames","keys","defaultOptions","sourceType","sourceFilename","startLine","allowAwaitOutsideFunction","allowReturnOutsideFunction","allowImportExportEverywhere","allowSuperOutsideMethod","allowUndeclaredExports","strictMode","ranges","tokens","createParenthesizedExpressions","getOptions","opts","State","potentialArrowAt","inParameters","maybeInAsyncArrowHead","inPipeline","topicContext","maxNumOfResolvableTopics","maxTopicIndex","soloAwait","inFSharpPipelineDirectBody","labels","decoratorStack","comments","octalPositions","exportedIdentifiers","tokensLength","curPosition","skipArrays","isDigit","VALID_REGEX_FLAGS","forbiddenNumericSeparatorSiblings","decBinOct","hex","allowedNumericSeparatorSiblings","bin","oct","dec","Token","Tokenizer","pushToken","checkKeywordEscapes","old","curr","nextTokenStart","thisTokEnd","skip","setStrict","lastIndexOf","skipSpace","codePointAt","pushComment","block","text","skipLineComment","startSkip","loop","readToken_numberSign","readToken_interpreter","nextPos","readToken_dot","readNumber","readToken_slash","readRegexp","width","readToken_caret","readToken_plus_min","readToken_lt_gt","size","readToken_eq_excl","readToken_question","next2","readRadixNumber","readString","escaped","charAt","content","mods","char","charCode","readInt","radix","len","forceLen","allowNumSeparator","forbiddenSiblings","allowedSiblings","total","Infinity","prev","Number","isNaN","isBigInt","startsWithDot","isFloat","isNonOctalDecimalInt","octal","underscorePos","parseFloat","readCodePoint","throwOnInvalid","codePos","readHexChar","readEscapedChar","containsInvalid","inTemplate","octalStr","n","readWord1","escStart","identifierCheck","esc","keywordTypes","parent","update","UtilParser","addExtra","op","afterNext","isUnparsedContextual","nameStart","nameEnd","messageOrType","missingPlugin","expectOnePlugin","names","checkYieldAwaitInDefaultParams","fn","oldState","abortSignal","checkExpressionErrors","andThrow","shorthandAssign","ExpressionErrors","Node","parser","range","NodeUtils","locationNode","unwrapParenthesizedExpression","LValParser","checkToRestConversion","arg","raiseTrailingCommaAfterRest","parseSpread","parseRestBinding","parseObj","close","closeCharCode","allowEmpty","elts","first","checkCommaAfterRest","parseDecorator","strictModeChanged","elem","ExpressionParser","getExpression","paramFlags","parseYield","ownExpressionErrors","parseMaybeConditional","parseExprOps","prec","logical","coalesce","checkPipelineAtInfixOperator","parseExprOpRightExpr","nextOp","withTopicPermittingContext","parseSmartPipelineBody","parseExprOpBaseRightExpr","withSoloAwaitPermittingContext","parseFSharpPipelineBody","isAwaitAllowed","parseAwait","parseExprSubscripts","maybeAsyncArrow","oldMaybeInAsyncArrowHead","parseNoCallExpr","parseMaybePrivateName","classScope","usePrivateName","tag","quasi","importArg","possibleAsyncArrow","dynamicImport","allowPlaceholder","nodeForExtra","innerParenStart","oldInFSharpPipelineDirectBody","parseExprListItem","parseImportMetaProperty","parseFunction","oldLabels","parseExprList","ret","parseFunctionExpression","parseDecorators","parseNew","primaryTopicReferenceIsAllowedInCurrentTopicContext","registerTopicReference","isPrivate","meta","parseMetaProperty","propertyName","innerStartPos","innerStartLoc","spreadStart","optionalCommaStart","spreadNodeStartPos","spreadNodeStartLoc","innerEndPos","innerEndLoc","arrowNode","parenStart","metaProp","parseTemplateElement","isTagged","cooked","tail","curElt","quasis","isRecord","propHash","create","parseObjectMember","isAsyncProp","isGetterOrSetterMethod","oldInPropertyName","generator","async","isExpression","oldInParameters","oldStrict","hasStrictModeDirective","nonSimple","isSimpleParamList","errorPos","nameHash","identifierName","reservedTest","delegate","childExpression","pipelineStyle","checkSmartPipelineBodyStyle","checkSmartPipelineBodyEarlyErrors","parseSmartPipelineBodyInStyle","topicReferenceWasUsedInCurrentTopicContext","isSimpleReference","callback","outerContextTopicState","withTopicForbiddingContext","outerContextSoloAwaitState","loopLabel","switchLabel","FUNC_NO_FLAGS","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","FUNC_NULLABLE_ID","StatementParser","interpreter","parseInterpreterDirective","from","nextCh","parseBreakContinueStatement","parseDebuggerStatement","parseDoStatement","parseForStatement","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseWhileStatement","parseWithStatement","parseEmptyStatement","nextTokenCharCode","isAsyncFunction","maybeName","parseLabeledStatement","allowExport","currentContextDecorators","decorator","isBreak","lab","parseHeaderExpression","awaitAt","parseFor","parseVar","declarations","parseForIn","description","declarationPosition","discriminant","cases","cur","sawDefault","isCase","handler","clause","simple","finalizer","statementStart","createNewLexicalScope","afterBlockParse","parsedNonDirective","isForIn","await","isFor","isTypescript","statement","isHangingStatement","requireId","hadConstructor","publicMethod","privateMethod","publicProp","privateProp","publicMember","parseClassPropertyName","isSimple","maybeQuestionTokenStart","pushClassPrivateProperty","pushClassProperty","declarePrivateName","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","maybeParseExportNamedSpecifiers","hasDeclaration","maybeParseExportDeclaration","checkNames","isDefault","isFrom","nodes","parseNext","ClassScope","privateNames","loneAccessors","ClassScopeHandler","oldClassScope","redefined","accessor","oldStatic","newStatic","oldKind","newKind","Parser","pluginsMap","pluginMap","getParser","ast","moduleError","getParserClass","parserClassCache","pluginsFromOptions","pluginList"],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/CHANGELOG.md-565-```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/CHANGELOG.md:566:import(`./section-modules/${link.dataset.entryModule}.js`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/parser/CHANGELOG.md-567-.then(module => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/builder.js-41-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/builder.js:42:    throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/builder.js-43-  }, {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/builder.js-58-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/builder.js:59:      throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/builder.js-60-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/builder.js-78-    } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/builder.js:79:      err.stack += `\n    =============\n${rootStack}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/builder.js-80-      throw err;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/literal.js-72-  for (let i = 1; i < tpl.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/literal.js:73:    const value = `${prefix}${i - 1}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/literal.js-74-    names.push(value);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/formatters.js-9-  return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/formatters.js:10:    code: str => `/* @babel/template */;\n${str}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/formatters.js-11-    validate: () => {},
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/formatters.js-40-const expression = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/formatters.js:41:  code: str => `(\n${str}\n)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/formatters.js-42-  validate: ({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/populate.js-28-      if (!metadata.placeholderNames.has(key)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/populate.js:29:        throw new Error(`Unknown substitution "${key}" given`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/populate.js-30-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/populate.js-37-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/populate.js:38:      e.message = `@babel/template placeholder "${placeholder.name}": ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/template/lib/populate.js-39-      throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toIdentifier.js-20-  if (!(0, _isValidIdentifier.default)(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toIdentifier.js:21:    name = `_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toIdentifier.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toExpression.js-25-  if (!(0, _generated.isExpression)(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toExpression.js:26:    throw new Error(`cannot turn ${node.type} to an expression`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toExpression.js-27-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toKeyAlias.js-29-  if (node.computed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toKeyAlias.js:30:    alias = `[${alias}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toKeyAlias.js-31-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toKeyAlias.js-33-  if (node.static) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toKeyAlias.js:34:    alias = `static:${alias}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toKeyAlias.js-35-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toStatement.js-37-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toStatement.js:38:      throw new Error(`cannot turn ${node.type} to a statement`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/converters/toStatement.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-100-    for (let i = 0; i < val.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js:101:      const subkey = `${key}[${i}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-102-      const v = val[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-114-    if (values.indexOf(val) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js:115:      throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-116-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-131-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js:132:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js:148:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-149-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-159-    if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js:160:      throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-161-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-185-    if (errors.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js:186:      throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-187-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-219-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js:220:    throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-221-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-266-    if (validTypeOpts.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js:267:      throw new Error(`Unknown type option "${k}" on ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-293-      if (validFieldKeys.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js:294:        throw new Error(`Unknown field key "${k}" on ${type}.${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/utils.js-295-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/es2015.js-440-        if (node.quasis.length !== val.length + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/es2015.js:441:          throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/es2015.js-442-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-347-        if (!(0, _isValidIdentifier.default)(val, false)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js:348:          throw new TypeError(`"${val}" is not a valid identifier name`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-349-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-385-    if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name)) && node.name !== "this") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js:386:      throw new TypeError(`"${node.name}" is not a valid identifier`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-387-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-463-        if (invalid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js:464:          throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-465-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-654-    if (parent[listKey].length > index + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js:655:      throw new TypeError(`RestElement must be last element of ${listKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-656-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-802-    if (node.declarations.length !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js:803:      throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/definitions/core.js-804-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/asserts/assertNode.js-14-    const type = node && node.type || JSON.stringify(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/asserts/assertNode.js:15:    throw new TypeError(`Not a valid node of type "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/asserts/assertNode.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/asserts/generated/index.js-297-  if (!(0, _is.default)(type, node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/asserts/generated/index.js:298:    throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/asserts/generated/index.js-299-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/comments/addComments.js-9-  if (!comments || !node) return node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/comments/addComments.js:10:  const key = `${type}Comments`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/comments/addComments.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/builders/builder.js-20-  if (countArgs > keys.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/builders/builder.js:21:    throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/builders/builder.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/clone/cloneNode.js-47-  } else if (!has(_definitions.NODE_FIELDS, type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/clone/cloneNode.js:48:    throw new Error(`Unknown node type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/lib/clone/cloneNode.js-49-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js-16-writeFile(buildersFile, format(generateBuilders(), buildersFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js:17:console.log(`  ${chalk.green("✔")} Generated builders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js-18-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js-20-writeFile(validatorsFile, format(generateValidators(), validatorsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js:21:console.log(`  ${chalk.green("✔")} Generated validators`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js-22-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js-24-writeFile(assertsFile, format(generateAsserts(), assertsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js:25:console.log(`  ${chalk.green("✔")} Generated asserts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js-28-writeFile(constantsFile, format(generateConstants(), constantsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generateTypeHelpers.js:29:console.log(`  ${chalk.green("✔")} Generated constants`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/docs.js-86-        if (customTypes[key] && customTypes[key][field]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/docs.js:87:          fieldDescription.push(`: ${customTypes[key][field]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/docs.js-88-        } else if (validator) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateBuilders.js-21-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateBuilders.js:22:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateBuilders.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateBuilders.js-37-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateBuilders.js:38:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateBuilders.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateAsserts.js-20-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateAsserts.js:21:      \`Expected type "\${type}" with option \${JSON.stringify((opts: any))}, \` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateAsserts.js:22:        \`but instead got "\${node.type}".\`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateAsserts.js-23-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateConstants.js-12-  Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateConstants.js:13:    output += `export const ${type.toUpperCase()}_TYPES = FLIPPED_ALIAS_KEYS["${type}"];\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateConstants.js-14-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-109-      )}): ${NODE_PREFIX}${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:110:      `declare export { _${functionName} as ${functionName} }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-111-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-115-for (let i = 0; i < t.TYPES.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:116:  let decl = `declare function is${t.TYPES[i]}(node: ?Object, opts?: ?Object): boolean`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-117-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-118-  if (t.NODE_FIELDS[t.TYPES[i]]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:119:    decl += ` %checks (node instanceof ${NODE_PREFIX}${t.TYPES[i]})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-120-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-127-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:128:  `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-129-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:130:  `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-131-  // this smells like "internal API"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-132-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:133:  `declare function buildChildren(node: { children: Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment | ${NODE_PREFIX}JSXEmptyExpression> }): Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-134-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-154-  // converters/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:155:  `declare function ensureBlock(node: ${NODE_PREFIX}, key: string): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-156-  `declare function toBindingIdentifierName(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-157-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:158:  `declare function toBlock(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Expression, parent?: ${NODE_PREFIX}Function | null): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-159-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:160:  `declare function toComputedKey(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}Expression | ${NODE_PREFIX}Identifier): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-161-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:162:  `declare function toExpression(node: ${NODE_PREFIX}ExpressionStatement | ${NODE_PREFIX}Expression | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-163-  `declare function toIdentifier(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-164-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:165:  `declare function toKeyAlias(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-166-  // toSequenceExpression relies on types that aren't declared in flow
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-167-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:168:  `declare function toStatement(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function | ${NODE_PREFIX}AssignmentExpression, ignore?: boolean): ${NODE_PREFIX}Statement | void`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:169:  `declare function valueToNode(value: any): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-172-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:173:  `declare function removeTypeDuplicates(types: Array<${NODE_PREFIX}FlowType>): Array<${NODE_PREFIX}FlowType>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-174-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:175:  `declare function appendToMemberExpression(member: ${NODE_PREFIX}MemberExpression, append: ${NODE_PREFIX}, computed?: boolean): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-176-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:177:  `declare function inherits<T: Node>(child: T, parent: ${NODE_PREFIX} | null | void): T`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-178-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:179:  `declare function prependToMemberExpression(member: ${NODE_PREFIX}MemberExpression, prepend: ${NODE_PREFIX}Expression): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-180-  `declare function removeProperties<T>(n: T, opts: ?{}): void;`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-184-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:185:  `declare function getBindingIdentifiers(node: ${NODE_PREFIX}, duplicates: boolean, outerOnly?: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-186-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:187:  `declare function getOuterBindingIdentifiers(node: Node, duplicates: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-188-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-235-  code += `type ${NODE_PREFIX}${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js:236:    .map(type => `${NODE_PREFIX}${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/flow.js-237-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateValidators.js-7-  return (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateValidators.js:8:    leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateValidators.js-9-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateValidators.js-72-    const newType = definitions.DEPRECATED_KEYS[type];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateValidators.js:73:    const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/generateValidators.js-74-    output += addIsHelper(type, null, deprecated);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-97-    if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:98:      struct.push(`${fieldName}: ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-99-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:100:      struct.push(`"${fieldName}": ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-101-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-110-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:111:      `export function ${toFunctionName(type)}(${args.join(", ")}): ${type};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-112-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-115-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:116:      `declare function _${functionName}(${args.join(", ")}): ${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:117:      `export { _${functionName} as ${functionName}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-118-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-124-    t.NODE_FIELDS[typeName] || t.FLIPPED_ALIAS_KEYS[typeName]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:125:      ? `node is ${typeName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-126-      : "boolean";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-128-  lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:129:    `export function is${typeName}(node: object | null | undefined, opts?: object | null): ${result};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-130-    // TypeScript 3.7: https://github.com/microsoft/TypeScript/pull/32695 will allow assert declarations
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-311-  code += `/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:312: * @deprecated Use \`${t.DEPRECATED_KEYS[type]}\`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-313- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-320-  code += `export type ${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:321:    .map(type => `${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-322-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-327-for (const type in t.FLIPPED_ALIAS_KEYS) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js:328:  code += `  ${type}: ${type};\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/generators/typescript.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/utils/stringifyValidator.js-6-  if (validator.each) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/utils/stringifyValidator.js:7:    return `Array<${stringifyValidator(validator.each, nodePrefix)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/@babel/types/scripts/utils/stringifyValidator.js-8-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/text/index.js-101-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/text/index.js:102:            return `${range[0]}-${range[1]}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/text/index.js-103-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html-spa/src/routing.js-18-    ];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html-spa/src/routing.js:19:    const newUrl = `#${params.join('/')}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html-spa/src/routing.js-20-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html-spa/src/summaryTableLine.js-11-                    <div
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html-spa/src/summaryTableLine.js:12:                        className={`bar__data ${classForPercent} ${classForPercent}--dark`}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html-spa/src/summaryTableLine.js-13-                        style={{ width: pct + '%' }}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html-spa/src/summaryTableLine.js-58-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html-spa/src/summaryTableLine.js:59:        return <a href={`./${prefix}${file}.html`}>{file}</a>;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html-spa/src/summaryTableLine.js-60-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/assets/vendor/prettify.js:1:window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-48-        const countLabel = (c, label, plural) =>
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js:49:            c === 0 ? [] : `${c} ${label}${c === 1 ? '' : plural}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-50-        const skips = [].concat(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-116-    const lineLink = num =>
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js:117:        `<a name='L${num}'></a><a href='#L${num}'>${num}</a>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-118-    const lineCount = line =>
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js:119:        `<span class="cline-any cline-${line.covered}">${line.hits}</span>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-120-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-169-        return [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js:170:            `<div class="${cls.join(' ')}" style="width: ${pct}%"></div>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js:171:            `<div class="cover-empty" style="width: ${100 - pct}%"></div>`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-172-        ].join('');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-177-        const result = [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js:178:            `<td data-value="${info.pct}" class="pct ${reportClass}">${info.pct}%</td>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js:179:            `<td data-value="${info.total}" class="abs ${reportClass}">${info.covered}/${info.total}</td>`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-180-        ];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-182-            result.unshift(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js:183:                `<td data-value="${info.pct}" class="pic ${reportClass}">`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js:184:                `<div class="chart">${percentGraph(info.pct)}</div>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma-coverage/node_modules/istanbul-reports/lib/html/index.js-185-                `</td>`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/media-typer/index.js-29- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/media-typer/index.js:30:var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/media-typer/index.js-31-var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/resolve-from/index.js-7-	if (typeof fromDir !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/resolve-from/index.js:8:		throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDir}\``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/resolve-from/index.js-9-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/resolve-from/index.js-11-	if (typeof moduleId !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/resolve-from/index.js:12:		throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/resolve-from/index.js-13-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/README.md-225-ws.on('message', function incoming(data) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/README.md:226:  console.log(`Roundtrip time: ${Date.now() - data} ms`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/README.md-227-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js-205-      if (!this._fragmented) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js:206:        this.error(new Error(`invalid opcode: ${this._opcode}`), 1002);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js-207-        return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js-212-      if (this._fragmented) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js:213:        this.error(new Error(`invalid opcode: ${this._opcode}`), 1002);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js-214-        return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js-233-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js:234:      this.error(new Error(`invalid opcode: ${this._opcode}`), 1002);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js-235-      return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js-413-        if (!ErrorCodes.isValidErrorCode(code)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js:414:          this.error(new Error(`invalid status code: ${code}`), 1002);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Receiver.js-415-          return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-69-      } else if (code === 0x3b/* ';' */ || code === 0x2c/* ',' */) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js:70:        if (start === -1) throw new Error(`unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-71-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-82-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js:83:        throw new Error(`unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-84-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-90-      } else if (code === 0x3b || code === 0x2c) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js:91:        if (start === -1) throw new Error(`unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-92-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-105-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js:106:        throw new Error(`unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-107-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-115-        if (tokenChars[code] !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js:116:          throw new Error(`unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-117-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-129-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js:130:          throw new Error(`unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-131-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-138-      } else if (code === 0x3b || code === 0x2c) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js:139:        if (start === -1) throw new Error(`unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-140-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-156-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js:157:        throw new Error(`unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-158-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-196-        if (!Array.isArray(p)) p = [p];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js:197:        return p.map((v) => v === true ? k : `${k}=${v}`).join('; ');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/Extensions.js-198-      })).join('; ');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-255-        if (value.length > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js:256:          throw new Error(`Multiple extension parameters for ${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-257-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-264-            if (value !== true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js:265:              throw new Error(`invalid extension parameter value for ${key} (${value})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-266-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-277-              ) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js:278:                throw new Error(`invalid extension parameter value for ${key} (${value})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-279-              }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-281-            if (!this._isServer && value === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js:282:              throw new Error(`Missing extension parameter value for ${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-283-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-286-          default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js:287:            throw new Error(`Not defined extension parameter (${key})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-288-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-339-    if (!this._inflate) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js:340:      const key = `${endpoint}_max_window_bits`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-341-      const windowBits = typeof this.params[key] !== 'number'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-374-      if (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js:375:        (fin && this.params[`${endpoint}_no_context_takeover`]) ||
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-376-        this._inflate[kPendingClose]
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-406-    if (!this._deflate) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js:407:      const key = `${endpoint}_max_window_bits`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-408-      const windowBits = typeof this.params[key] !== 'number'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-441-      if (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js:442:        (fin && this.params[`${endpoint}_no_context_takeover`]) ||
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/PerMessageDeflate.js-443-        this._deflate[kPendingClose]
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js-406-['open', 'error', 'close', 'message'].forEach((method) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js:407:  Object.defineProperty(WebSocket.prototype, `on${method}`, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js-408-    /**
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js-523-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js:524:      `unsupported protocol version: ${options.protocolVersion} ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js:525:      `(supported versions: ${protocolVersions.join(', ')})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js-526-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js-592-    if (serverUrl.path.charAt(0) !== '/') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js:593:      requestOptions.path = `/${serverUrl.path}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js-594-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js-652-      this._req.abort();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js:653:      this.finalize(new Error(`unexpected server response (${res.statusCode})`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocket.js-654-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-201-      const info = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js:202:        origin: req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-203-        secure: !!(req.connection.authorized || req.connection.encrypted),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-255-      'Connection: Upgrade',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js:256:      `Sec-WebSocket-Accept: ${key}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-257-    ];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-258-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js:259:    if (protocol) headers.push(`Sec-WebSocket-Protocol: ${protocol}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-260-    if (extensions[PerMessageDeflate.extensionName]) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-264-      });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js:265:      headers.push(`Sec-WebSocket-Extensions: ${value}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-266-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-314-    socket.write(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js:315:      `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r\n` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-316-      'Connection: close\r\n' +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-317-      'Content-type: text/html\r\n' +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js:318:      `Content-Length: ${Buffer.byteLength(message)}\r\n` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ws/lib/WebSocketServer.js-319-      '\r\n' +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimend/node_modules/es-to-primitive/Makefile-8-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimend/node_modules/es-to-primitive/Makefile:9:# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimend/node_modules/es-to-primitive/Makefile-10-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimend/node_modules/es-to-primitive/Makefile-50-	@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimend/node_modules/es-to-primitive/Makefile:51:	 new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimend/node_modules/es-to-primitive/Makefile-52-	 if printf "$$new_ver" | command grep -q '^[0-9]'; then \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimend/node_modules/es-to-primitive/Makefile-55-	 else \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimend/node_modules/es-to-primitive/Makefile:56:	   new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimend/node_modules/es-to-primitive/Makefile-57-	 fi; \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/v8-compile-cache/README.md-30-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/v8-compile-cache/README.md:31:The caches are stored in `$TMP/v8-compile-cache/V8_VERSION`, where there are `.BLOB` and `.MAP` files corresponding to the entry module that required `v8-compile-cache`. The cache is _entry module specific_ because it is faster to load the entire code cache into memory at once, than it is to read it from disk on a file-by-file basis.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/v8-compile-cache/README.md-32-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/source/templates.js-46-		} else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/source/templates.js:47:			throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/source/templates.js-48-		}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/source/templates.js-89-		if (!(styleName in current)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/source/templates.js:90:			throw new Error(`Unknown Chalk style: ${styleName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/source/templates.js-91-		}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/source/templates.js-128-	if (styles.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/source/templates.js:129:		const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/source/templates.js-130-		throw new Error(errMsg);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/readme.md-232-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/readme.md:233:All interpolated values (`` chalk`${foo}` ``) are converted to strings via the `.toString()` method. All curly braces (`{` and `}`) in interpolated value strings are escaped.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/chalk/readme.md-234-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/readme.md-19-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/readme.md:20:console.log(`${style.green.open}Hello world!${style.green.close}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/readme.md-21-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js-4-	const code = fn(...args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js:5:	return `\u001B[${code + offset}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js-6-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js-9-	const code = fn(...args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js:10:	return `\u001B[${38 + offset};5;${code}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js-11-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js-14-	const rgb = fn(...args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js:15:	return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js-16-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js-125-			styles[styleName] = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js:126:				open: `\u001B[${style[0]}m`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js:127:				close: `\u001B[${style[1]}m`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/inquirer/node_modules/ansi-styles/index.js-128-			};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/debug/src/node.js-168-		const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/debug/src/node.js:169:		const prefix = `  ${colorCode};1m${name} \u001B[0m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/debug/src/node.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-51-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js:52:      throw new Error(`Unsupported product ${product}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-53-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-60-    if (revisionInfo.local) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js:61:      logPolitely(`${supportedProducts[product]} is already in ${revisionInfo.folderPath}; skipping download.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-62-      return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-81-    function onSuccess(localRevisions) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js:82:      logPolitely(`${supportedProducts[product]} (${revisionInfo.revision}) downloaded to ${revisionInfo.folderPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-83-      localRevisions = localRevisions.filter(revision => revision !== revisionInfo.revision);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-91-    function onError(error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js:92:      console.error(`ERROR: Failed to set up ${supportedProducts[product]} r${revision}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-93-      console.error(error);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-101-        const ProgressBar = require('progress');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js:102:        progressBar = new ProgressBar(`Downloading ${supportedProducts[product]} r${revision} - ${toMegabytes(totalBytes)} [:bar] :percent :etas `, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-103-          complete: '=',
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-121-    const mb = bytes / 1024 / 1024;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js:122:    return `${Math.round(mb * 10) / 10} Mb`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-123-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-128-      let data = '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js:129:      logPolitely(`Requesting latest Firefox Nightly version from ${host}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-130-      https.get(host + '/', r => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-131-        if (r.statusCode >= 400)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js:132:          return reject(new Error(`Got status code ${r.statusCode}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/install.js-133-        r.on('data', chunk => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/README.md-220-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/README.md:221:    await page.evaluate(() => console.log(`url is ${location.href}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/README.md-222-    ```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Input.js-65-        const definition = USKeyboardLayout_1.keyDefinitions[keyString];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Input.js:66:        helper_1.assert(definition, `Unknown key: "${keyString}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Input.js-67-        if (definition.key)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/FrameManager.js-84-                ensureNewDocumentNavigation = !!response.loaderId;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/FrameManager.js:85:                return response.errorText ? new Error(`${response.errorText} at ${url}`) : null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/FrameManager.js-86-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/FrameManager.js-181-        await this._client.send('Page.addScriptToEvaluateOnNewDocument', {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/FrameManager.js:182:            source: `//# sourceURL=${ExecutionContext_1.EVALUATION_SCRIPT_URL}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/FrameManager.js-183-            worldName: name,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/helper.js-38-            const functionName = callframe.functionName || '<anonymous>';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/helper.js:39:            message += `\n    at ${functionName} (${location})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/helper.js-40-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/helper.js-148-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/helper.js:149:    return `(${fun})(${args.map(serializeArgument).join(',')})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/helper.js-150-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/helper.js-152-    let reject;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/helper.js:153:    const timeoutError = new Errors_1.TimeoutError(`waiting for ${taskName} failed: timeout ${timeout}ms exceeded`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/helper.js-154-    const timeoutPromise = new Promise((resolve, x) => reject = x);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-105-        for (const callback of this._callbacks.values())
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js:106:            callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-107-        this._callbacks.clear();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-136-        if (!this._connection)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js:137:            return Promise.reject(new Error(`Protocol error (${method}): Session closed. Most likely the ${this._targetType} has been closed.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-138-        const id = this._connection._rawSend({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-166-        if (!this._connection)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js:167:            throw new Error(`Session already detached. Most likely the ${this._targetType} has been closed.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-168-        await this._connection.send('Target.detachFromTarget', { sessionId: this._sessionId });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-171-        for (const callback of this._callbacks.values())
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js:172:            callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-173-        this._callbacks.clear();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-185-function createProtocolError(error, method, object) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js:186:    let message = `Protocol error (${method}): ${object.error.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-187-    if ('data' in object.error)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js:188:        message += ` ${object.error.data}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Connection.js-189-    return rewriteError(error, message);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/NetworkManager.js-57-            const value = extraHTTPHeaders[key];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/NetworkManager.js:58:            helper_1.assert(helper_1.helper.isString(value), `Expected value of header "${key}" to be String, but "${typeof value}" is found.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/NetworkManager.js-59-            this._extraHTTPHeaders[key.toLowerCase()] = value;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-68-        if (this._detached)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js:69:            throw new Error(`Execution Context is not available in detached frame "${this._frame.url()}" (are you trying to evaluate?)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-70-        return this._contextPromise;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-170-            catch (error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js:171:                throw new Error(`Loading script from ${url} failed`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-172-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-217-            catch (error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js:218:                throw new Error(`Loading style from ${url} failed`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-219-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-309-        const polling = waitForVisible || waitForHidden ? 'raf' : 'mutation';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js:310:        const title = `${isXPath ? 'XPath' : 'selector'} "${selectorOrXPath}"${waitForHidden ? ' to be hidden' : ''}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-311-        const { updatedSelector, queryHandler } = QueryHandler_1.getQueryHandlerAndSelector(selectorOrXPath, (element, selector) => document.querySelector(selector));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-358-            if (helper_1.helper.isString(predicateBody))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js:359:                return `return (${predicateBody});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-360-            if (predicateQueryHandlerBody) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-366-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js:367:            return `return (${predicateBody})(...args);`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-368-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-382-        if (timeout) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js:383:            const timeoutError = new Errors_1.TimeoutError(`waiting for ${title} failed: timeout ${timeout}ms exceeded`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/DOMWorld.js-384-            this._timeoutTimer = setTimeout(() => this.terminate(timeoutError), timeout);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-155-        if (longitude < -180 || longitude > 180)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js:156:            throw new Error(`Invalid longitude "${longitude}": precondition -180 <= LONGITUDE <= 180 failed.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-157-        if (latitude < -90 || latitude > 90)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js:158:            throw new Error(`Invalid latitude "${latitude}": precondition -90 <= LATITUDE <= 90 failed.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-159-        if (accuracy < 0)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js:160:            throw new Error(`Invalid accuracy "${accuracy}": precondition 0 <= ACCURACY failed.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-161-        await this._client.send('Emulation.setGeolocationOverride', { longitude, latitude, accuracy });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-268-                item.url = pageURL;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js:269:            helper_1.assert(item.url !== 'about:blank', `Blank page can not have cookie "${item.name}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js:270:            helper_1.assert(!String.prototype.startsWith.call(item.url || '', 'data:'), `Data URL page can not have cookie "${item.name}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-271-            return item;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-284-        if (this._pageBindings.has(name))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js:285:            throw new Error(`Failed to add page binding with name ${name}: window['${name}'] already exists!`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-286-        this._pageBindings.set(name, puppeteerFunction);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-533-            if (error.message.includes('Invalid timezone'))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js:534:                throw new Error(`Invalid timezone ID: ${timezoneId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Page.js-535-            throw error;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-96-        this._product = (options.product || 'chrome').toLowerCase();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:97:        helper_1.assert(this._product === 'chrome' || this._product === 'firefox', `Unknown product: "${options.product}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-98-        this._downloadsFolder = options.path || path.join(projectRoot, browserConfig[this._product].destination);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-173-        const folderPath = this._getFolderPath(revision);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:174:        helper_1.assert(await existsAsync(folderPath), `Failed to remove: revision ${revision} is not downloaded`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-175-        await new Promise(fulfill => removeRecursive(folderPath, fulfill));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-233-function downloadFile(url, destinationPath, progressCallback) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:234:    debugFetcher(`Downloading binary from ${url}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-235-    let fulfill, reject;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-240-        if (response.statusCode !== 200) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:241:            const error = new Error(`Download failed: server returned code ${response.statusCode}. URL: ${url}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-242-            // consume response data to free up memory
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-262-function install(archivePath, folderPath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:263:    debugFetcher(`Installing ${archivePath} to ${folderPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-264-    if (archivePath.endsWith('.zip'))
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-270-    else
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:271:        throw new Error(`Unsupported archive format: ${archivePath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-272-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-341-    function mountAndCopy(fulfill, reject) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:342:        const mountCommand = `hdiutil attach -nobrowse -noautoopen "${dmgPath}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-343-        childProcess.exec(mountCommand, (err, stdout) => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-347-            if (!volumes)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:348:                return reject(new Error(`Could not find volume path in ${stdout}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-349-            mountPath = volumes[0];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-352-                if (!appName)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:353:                    return reject(new Error(`Cannot find app in ${mountPath}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-354-                const copyPath = path.join(mountPath, appName);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:355:                debugFetcher(`Copying ${copyPath} to ${folderPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:356:                childProcess.exec(`cp -R "${copyPath}" "${folderPath}"`, err => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-357-                    if (err)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-367-            return;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:368:        const unmountCommand = `hdiutil detach "${mountPath}" -quiet`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:369:        debugFetcher(`Unmounting ${mountPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-370-        childProcess.exec(unmountCommand, err => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-371-            if (err)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js:372:                console.error(`Error unmounting dmg: ${err}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/BrowserFetcher.js-373-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/JSHandle.js-248-                if (error.code === 'ENOENT')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/JSHandle.js:249:                    throw new Error(`${filePath} does not exist or is not readable`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/JSHandle.js-250-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/JSHandle.js-370-        if (!elementHandle)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/JSHandle.js:371:            throw new Error(`Error: failed to find element matching selector "${selector}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/JSHandle.js-372-        const result = await elementHandle.evaluate(pageFunction, ...args);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/ExecutionContext.js-37-    async _evaluateInternal(returnByValue, pageFunction, ...args) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/ExecutionContext.js:38:        const suffix = `//# sourceURL=${exports.EVALUATION_SCRIPT_URL}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/ExecutionContext.js-39-        if (helper_1.helper.isString(pageFunction)) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/ExecutionContext.js-54-        if (typeof pageFunction !== 'function')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/ExecutionContext.js:55:            throw new Error(`Expected to get |string| or |function| as the first argument, but got "${pageFunction}" instead.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/ExecutionContext.js-56-        let functionText = pageFunction.toString();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/ExecutionContext.js-101-            if (typeof arg === 'bigint') // eslint-disable-line valid-typeof
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/ExecutionContext.js:102:                return { unserializableValue: `${arg.toString()}n` };
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/ExecutionContext.js-103-            if (Object.is(arg, -0))
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/protocol.d.ts-12282-            /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/protocol.d.ts:12283:             * Script source (empty in case of Wasm bytecode).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/protocol.d.ts-12284-             */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/protocol.d.ts-12286-            /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/protocol.d.ts:12287:             * Wasm bytecode.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/protocol.d.ts-12288-             */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/protocol.d.ts-12295-            /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/protocol.d.ts:12296:             * Id of the Wasm script to get source for.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/protocol.d.ts-12297-             */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/QueryHandler.js-20-    if (_customQueryHandlers.get(name))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/QueryHandler.js:21:        throw new Error(`A custom query handler named "${name}" already exists`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/QueryHandler.js-22-    const isValidName = /^[a-zA-Z]+$/.test(name);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/QueryHandler.js-51-    if (!queryHandler)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/QueryHandler.js:52:        throw new Error(`Query set to use "${name}", but no query handler of that name was found`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/QueryHandler.js-53-    return {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-58-        helper_1.assert(!this.proc, 'This process has previously been started.');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:59:        debugLauncher(`Calling ${this._executablePath} ${this._processArguments.join(' ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-60-        this.proc = childProcess.spawn(this._executablePath, this._processArguments, {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-115-                if (process.platform === 'win32')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:116:                    childProcess.execSync(`taskkill /pid ${this.proc.pid} /T /F`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-117-                else
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-171-            temporaryUserDataDir = await mkdtempAsync(profilePath);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:172:            chromeArguments.push(`--user-data-dir=${temporaryUserDataDir}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-173-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-226-        if (userDataDir)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:227:            chromeArguments.push(`--user-data-dir=${userDataDir}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-228-        if (devtools)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-425-            // interfere with tests
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:426:            'datareporting.healthreport.about.reportUrl': `http://${server}/dummy/abouthealthreport/`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:427:            'datareporting.healthreport.documentServerURI': `http://${server}/dummy/healthreport/`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-428-            'datareporting.healthreport.logging.consoleEnabled': false,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-462-            // Make sure opening about:addons will not hit the network
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:463:            'extensions.webservice.discoverURL': `http://${server}/dummy/discoveryURL`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-464-            // Allow the application to have focus even it runs in the background
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-504-            // Ensure blocklist updates do not hit the network
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:505:            'services.settings.server': `http://${server}/dummy/blocklist/`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-506-            // Do not automatically fill sign-in forms with known usernames and
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-518-            // We want to collect telemetry, but we don't want to send in the results
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:519:            'toolkit.telemetry.server': `https://${server}/dummy/telemetry/`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-520-            // Prevent starting into safe mode after application crashes
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-524-        for (const [key, value] of Object.entries(defaultPreferences))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:525:            userJS.push(`user_pref(${JSON.stringify(key)}, ${JSON.stringify(value)});`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-526-        await writeFileAsync(path.join(profilePath, 'user.js'), userJS.join('\n'));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-556-            cleanup();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:557:            reject(new Errors_1.TimeoutError(`Timed out after ${timeout} ms while trying to connect to the browser! Only Chrome at revision r${preferredRevision} is guaranteed to work.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-558-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-594-    return promise.catch(error => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:595:        error.message = `Failed to fetch browser webSocket url from ${endpointURL}: ` + error.message;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-596-        throw error;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-617-    const revisionInfo = browserFetcher.revisionInfo(launcher._preferredRevision);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js:618:    const missingText = !revisionInfo.local ? `Could not find browser revision ${launcher._preferredRevision}. Run "npm install" or "yarn install" to download a browser binary.` : null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/lib/Launcher.js-619-    return { executablePath: revisionInfo.executablePath, missingText };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/README.md-263-  ws.on('message', function message(msg) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/README.md:264:    console.log(`Received message ${msg} from user ${client}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/README.md-265-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/README.md-346-ws.on('message', function incoming(data) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/README.md:347:  console.log(`Roundtrip time: ${Date.now() - data} ms`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/README.md-348-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-385-['open', 'error', 'close', 'message'].forEach((method) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js:386:  Object.defineProperty(WebSocket.prototype, `on${method}`, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-387-    /**
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-465-    throw new RangeError(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js:466:      `Unsupported protocol version: ${opts.protocolVersion} ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js:467:        `(supported versions: ${protocolVersions.join(', ')})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-468-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-483-  if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js:484:    throw new Error(`Invalid URL: ${websocket.url}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-485-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-530-  if (parsedUrl.username || parsedUrl.password) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js:531:    opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-532-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-581-        req,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js:582:        `Unexpected server response: ${res.statusCode}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-583-      );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-729-    const err = new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js:730:      `WebSocket is not open: readyState ${websocket.readyState} ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js:731:        `(${readyStates[websocket.readyState]})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket.js-732-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-225-        origin:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js:226:          req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-227-        secure: !!(req.connection.authorized || req.connection.encrypted),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-280-      'Connection: Upgrade',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js:281:      `Sec-WebSocket-Accept: ${digest}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-282-    ];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-299-      if (protocol) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js:300:        headers.push(`Sec-WebSocket-Protocol: ${protocol}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-301-        ws.protocol = protocol;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-309-      });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js:310:      headers.push(`Sec-WebSocket-Extensions: ${value}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-311-      ws._extensions = extensions;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-392-    socket.write(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js:393:      `HTTP/1.1 ${code} ${STATUS_CODES[code]}\r\n` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-394-        Object.keys(headers)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js:395:          .map((h) => `${h}: ${headers[h]}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/websocket-server.js-396-          .join('\r\n') +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-72-        if (start === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js:73:          throw new SyntaxError(`Unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-74-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-86-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js:87:        throw new SyntaxError(`Unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-88-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-95-        if (start === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js:96:          throw new SyntaxError(`Unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-97-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-111-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js:112:        throw new SyntaxError(`Unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-113-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-121-        if (tokenChars[code] !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js:122:          throw new SyntaxError(`Unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-123-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-135-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js:136:          throw new SyntaxError(`Unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-137-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-145-        if (start === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js:146:          throw new SyntaxError(`Unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-147-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-164-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js:165:        throw new SyntaxError(`Unexpected character at index ${i}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-166-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-211-                return values
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js:212:                  .map((v) => (v === true ? k : `${k}=${v}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/extension.js-213-                  .join('; ');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-198-        this._loop = false;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js:199:        return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-200-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-217-          RangeError,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js:218:          `invalid payload length ${this._payloadLength}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-219-          true,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-224-      this._loop = false;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js:225:      return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-226-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-462-        if (!isValidStatusCode(code)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js:463:          return error(RangeError, `invalid status code ${code}`, true, 1002);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-464-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-499-  const err = new ErrorCtor(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js:500:    prefix ? `Invalid WebSocket frame: ${message}` : message
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/receiver.js-501-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-246-        if (value.length > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:247:          throw new Error(`Parameter "${key}" must have only a single value`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-248-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-256-              throw new TypeError(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:257:                `Invalid value for parameter "${key}": ${value}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-258-              );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-262-            throw new TypeError(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:263:              `Invalid value for parameter "${key}": ${value}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-264-            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-269-            throw new TypeError(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:270:              `Invalid value for parameter "${key}": ${value}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-271-            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-279-            throw new TypeError(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:280:              `Invalid value for parameter "${key}": ${value}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-281-            );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-283-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:284:          throw new Error(`Unknown parameter "${key}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-285-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-339-    if (!this._inflate) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:340:      const key = `${endpoint}_max_window_bits`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-341-      const windowBits =
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-376-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:377:      if (fin && this.params[`${endpoint}_no_context_takeover`]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-378-        this._inflate.close();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-400-    if (!this._deflate) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:401:      const key = `${endpoint}_max_window_bits`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-402-      const windowBits =
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-448-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js:449:      if (fin && this.params[`${endpoint}_no_context_takeover`]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/puppeteer/node_modules/ws/lib/permessage-deflate.js-450-        this._deflate.close();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js-180-            case 'application/x-www-form-urlencoded':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js:181:                return Object.keys(body).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(body[key])}`).join('&');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/observable/dom/AjaxObservable.js-182-            case 'application/json':
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js-23-    else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js:24:        const value = isObject(result) ? 'an invalid object' : `'${result}'`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js:25:        const msg = `You provided ${value} where a stream was expected.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/util/subscribeTo.js-26-            + ' You can provide an Observable, Promise, Array, or Iterable.';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js-5-            `${errors.length} errors occurred during unsubscription:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js:6:${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n  ')}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js-7-        this.name = 'UnsubscriptionError';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts-68-            const customError = { code: 6666, reason: "Custom evil reason" }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts:69:            console.log(`code: ${customError.code}, reason: ${customError.reason}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/observable/dom/WebSocketSubject.d.ts-70-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/observable/dom/fetch.d.ts-29- *      // Server is returning a status requiring the client to try something else.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/observable/dom/fetch.d.ts:30: *      return of({ error: true, message: `Error ${response.status}` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/observable/dom/fetch.d.ts-31- *    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/refCount.d.ts-29- * const refCountInterval = interval(400).pipe(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/refCount.d.ts:30: *   tap((num) => console.log(`refCount ${num}`)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/refCount.d.ts-31- *   publish(),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/refCount.d.ts-35- * const publishedInterval = interval(400).pipe(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/refCount.d.ts:36: *   tap((num) => console.log(`publish ${num}`)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/refCount.d.ts-37- *   publish()
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/throttleTime.d.ts-56- * doubleClick.subscribe((throttleValue: Event) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/throttleTime.d.ts:57: *   console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/throttleTime.d.ts-58- * });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/retry.d.ts-32- *   next: val => console.log(val),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/retry.d.ts:33: *   error: val => console.log(`${val}: Retried 2 times then quit!`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/internal/operators/retry.d.ts-34- * });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts-292-      case 'application/x-www-form-urlencoded':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts:293:        return Object.keys(body).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(body[key])}`).join('&');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/observable/dom/AjaxObservable.ts-294-      case 'application/json':
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts-70-            const customError = { code: 6666, reason: "Custom evil reason" }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts:71:            console.log(`code: ${customError.code}, reason: ${customError.reason}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/observable/dom/WebSocketSubject.ts-72-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/observable/dom/fetch.ts-31- *      // Server is returning a status requiring the client to try something else.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/observable/dom/fetch.ts:32: *      return of({ error: true, message: `Error ${response.status}` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/observable/dom/fetch.ts-33- *    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/groupBy.ts-78- *     mergeMap(group$ =>
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/groupBy.ts:79: *       group$.pipe(reduce((acc, cur) => [...acc, cur], [`${group$.key}`]))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/groupBy.ts-80- *     ),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/throttleTime.ts-62- * doubleClick.subscribe((throttleValue: Event) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/throttleTime.ts:63: *   console.log(`Double-clicked! Timestamp: ${throttleValue.timeStamp}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/throttleTime.ts-64- * });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/refCount.ts-35- * const refCountInterval = interval(400).pipe(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/refCount.ts:36: *   tap((num) => console.log(`refCount ${num}`)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/refCount.ts-37- *   publish(),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/refCount.ts-41- * const publishedInterval = interval(400).pipe(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/refCount.ts:42: *   tap((num) => console.log(`publish ${num}`)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/refCount.ts-43- *   publish()
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/retry.ts-37- *   next: val => console.log(val),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/retry.ts:38: *   error: val => console.log(`${val}: Retried 2 times then quit!`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/operators/retry.ts-39- * });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/util/subscribeTo.ts-23-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/util/subscribeTo.ts:24:    const value = isObject(result) ? 'an invalid object' : `'${result}'`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/util/subscribeTo.ts:25:    const msg = `You provided ${value} where a stream was expected.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/util/subscribeTo.ts-26-      + ' You can provide an Observable, Promise, Array, or Iterable.';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts-13-      `${errors.length} errors occurred during unsubscription:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts:14:${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n  ')}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/src/internal/util/UnsubscriptionError.ts-15-    this.name = 'UnsubscriptionError';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rxjs/bundles/rxjs.umd.js.map:1:{"version":3,"file":"umd.js","sources":["../tslib/tslib.es6.js","../dist/esm5_for_rollup/internal/util/isFunction.js","../dist/esm5_for_rollup/internal/config.js","../dist/esm5_for_rollup/internal/util/hostReportError.js","../dist/esm5_for_rollup/internal/Observer.js","../dist/esm5_for_rollup/internal/util/isArray.js","../dist/esm5_for_rollup/internal/util/isObject.js","../dist/esm5_for_rollup/internal/util/UnsubscriptionError.js","../dist/esm5_for_rollup/internal/Subscription.js","../dist/esm5_for_rollup/internal/symbol/rxSubscriber.js","../dist/esm5_for_rollup/internal/Subscriber.js","../dist/esm5_for_rollup/internal/util/canReportError.js","../dist/esm5_for_rollup/internal/util/toSubscriber.js","../dist/esm5_for_rollup/internal/symbol/observable.js","../dist/esm5_for_rollup/internal/util/identity.js","../dist/esm5_for_rollup/internal/util/pipe.js","../dist/esm5_for_rollup/internal/Observable.js","../dist/esm5_for_rollup/internal/util/ObjectUnsubscribedError.js","../dist/esm5_for_rollup/internal/SubjectSubscription.js","../dist/esm5_for_rollup/internal/Subject.js","../dist/esm5_for_rollup/internal/operators/refCount.js","../dist/esm5_for_rollup/internal/observable/ConnectableObservable.js","../dist/esm5_for_rollup/internal/operators/groupBy.js","../dist/esm5_for_rollup/internal/BehaviorSubject.js","../dist/esm5_for_rollup/internal/scheduler/Action.js","../dist/esm5_for_rollup/internal/scheduler/AsyncAction.js","../dist/esm5_for_rollup/internal/scheduler/QueueAction.js","../dist/esm5_for_rollup/internal/Scheduler.js","../dist/esm5_for_rollup/internal/scheduler/AsyncScheduler.js","../dist/esm5_for_rollup/internal/scheduler/QueueScheduler.js","../dist/esm5_for_rollup/internal/scheduler/queue.js","../dist/esm5_for_rollup/internal/observable/empty.js","../dist/esm5_for_rollup/internal/util/isScheduler.js","../dist/esm5_for_rollup/internal/util/subscribeToArray.js","../dist/esm5_for_rollup/internal/scheduled/scheduleArray.js","../dist/esm5_for_rollup/internal/observable/fromArray.js","../dist/esm5_for_rollup/internal/observable/of.js","../dist/esm5_for_rollup/internal/observable/throwError.js","../dist/esm5_for_rollup/internal/Notification.js","../dist/esm5_for_rollup/internal/operators/observeOn.js","../dist/esm5_for_rollup/internal/ReplaySubject.js","../dist/esm5_for_rollup/internal/AsyncSubject.js","../dist/esm5_for_rollup/internal/util/Immediate.js","../dist/esm5_for_rollup/internal/scheduler/AsapAction.js","../dist/esm5_for_rollup/internal/scheduler/AsapScheduler.js","../dist/esm5_for_rollup/internal/scheduler/asap.js","../dist/esm5_for_rollup/internal/scheduler/async.js","../dist/esm5_for_rollup/internal/scheduler/AnimationFrameAction.js","../dist/esm5_for_rollup/internal/scheduler/AnimationFrameScheduler.js","../dist/esm5_for_rollup/internal/scheduler/animationFrame.js","../dist/esm5_for_rollup/internal/scheduler/VirtualTimeScheduler.js","../dist/esm5_for_rollup/internal/util/noop.js","../dist/esm5_for_rollup/internal/util/isObservable.js","../dist/esm5_for_rollup/internal/util/ArgumentOutOfRangeError.js","../dist/esm5_for_rollup/internal/util/EmptyError.js","../dist/esm5_for_rollup/internal/util/TimeoutError.js","../dist/esm5_for_rollup/internal/operators/map.js","../dist/esm5_for_rollup/internal/observable/bindCallback.js","../dist/esm5_for_rollup/internal/observable/bindNodeCallback.js","../dist/esm5_for_rollup/internal/OuterSubscriber.js","../dist/esm5_for_rollup/internal/InnerSubscriber.js","../dist/esm5_for_rollup/internal/util/subscribeToPromise.js","../dist/esm5_for_rollup/internal/symbol/iterator.js","../dist/esm5_for_rollup/internal/util/subscribeToIterable.js","../dist/esm5_for_rollup/internal/util/subscribeToObservable.js","../dist/esm5_for_rollup/internal/util/isArrayLike.js","../dist/esm5_for_rollup/internal/util/isPromise.js","../dist/esm5_for_rollup/internal/util/subscribeTo.js","../dist/esm5_for_rollup/internal/util/subscribeToResult.js","../dist/esm5_for_rollup/internal/observable/combineLatest.js","../dist/esm5_for_rollup/internal/scheduled/scheduleObservable.js","../dist/esm5_for_rollup/internal/scheduled/schedulePromise.js","../dist/esm5_for_rollup/internal/scheduled/scheduleIterable.js","../dist/esm5_for_rollup/internal/util/isInteropObservable.js","../dist/esm5_for_rollup/internal/util/isIterable.js","../dist/esm5_for_rollup/internal/scheduled/scheduled.js","../dist/esm5_for_rollup/internal/observable/from.js","../dist/esm5_for_rollup/internal/operators/mergeMap.js","../dist/esm5_for_rollup/internal/operators/mergeAll.js","../dist/esm5_for_rollup/internal/operators/concatAll.js","../dist/esm5_for_rollup/internal/observable/concat.js","../dist/esm5_for_rollup/internal/observable/defer.js","../dist/esm5_for_rollup/internal/observable/forkJoin.js","../dist/esm5_for_rollup/internal/observable/fromEvent.js","../dist/esm5_for_rollup/internal/observable/fromEventPattern.js","../dist/esm5_for_rollup/internal/observable/generate.js","../dist/esm5_for_rollup/internal/observable/iif.js","../dist/esm5_for_rollup/internal/util/isNumeric.js","../dist/esm5_for_rollup/internal/observable/interval.js","../dist/esm5_for_rollup/internal/observable/merge.js","../dist/esm5_for_rollup/internal/observable/never.js","../dist/esm5_for_rollup/internal/observable/onErrorResumeNext.js","../dist/esm5_for_rollup/internal/observable/pairs.js","../dist/esm5_for_rollup/internal/util/not.js","../dist/esm5_for_rollup/internal/operators/filter.js","../dist/esm5_for_rollup/internal/observable/partition.js","../dist/esm5_for_rollup/internal/observable/race.js","../dist/esm5_for_rollup/internal/observable/range.js","../dist/esm5_for_rollup/internal/observable/timer.js","../dist/esm5_for_rollup/internal/observable/using.js","../dist/esm5_for_rollup/internal/observable/zip.js","../dist/esm5_for_rollup/internal/operators/audit.js","../dist/esm5_for_rollup/internal/operators/auditTime.js","../dist/esm5_for_rollup/internal/operators/buffer.js","../dist/esm5_for_rollup/internal/operators/bufferCount.js","../dist/esm5_for_rollup/internal/operators/bufferTime.js","../dist/esm5_for_rollup/internal/operators/bufferToggle.js","../dist/esm5_for_rollup/internal/operators/bufferWhen.js","../dist/esm5_for_rollup/internal/operators/catchError.js","../dist/esm5_for_rollup/internal/operators/combineAll.js","../dist/esm5_for_rollup/internal/operators/combineLatest.js","../dist/esm5_for_rollup/internal/operators/concat.js","../dist/esm5_for_rollup/internal/operators/concatMap.js","../dist/esm5_for_rollup/internal/operators/concatMapTo.js","../dist/esm5_for_rollup/internal/operators/count.js","../dist/esm5_for_rollup/internal/operators/debounce.js","../dist/esm5_for_rollup/internal/operators/debounceTime.js","../dist/esm5_for_rollup/internal/operators/defaultIfEmpty.js","../dist/esm5_for_rollup/internal/util/isDate.js","../dist/esm5_for_rollup/internal/operators/delay.js","../dist/esm5_for_rollup/internal/operators/delayWhen.js","../dist/esm5_for_rollup/internal/operators/dematerialize.js","../dist/esm5_for_rollup/internal/operators/distinct.js","../dist/esm5_for_rollup/internal/operators/distinctUntilChanged.js","../dist/esm5_for_rollup/internal/operators/distinctUntilKeyChanged.js","../dist/esm5_for_rollup/internal/operators/throwIfEmpty.js","../dist/esm5_for_rollup/internal/operators/take.js","../dist/esm5_for_rollup/internal/operators/elementAt.js","../dist/esm5_for_rollup/internal/operators/endWith.js","../dist/esm5_for_rollup/internal/operators/every.js","../dist/esm5_for_rollup/internal/operators/exhaust.js","../dist/esm5_for_rollup/internal/operators/exhaustMap.js","../dist/esm5_for_rollup/internal/operators/expand.js","../dist/esm5_for_rollup/internal/operators/finalize.js","../dist/esm5_for_rollup/internal/operators/find.js","../dist/esm5_for_rollup/internal/operators/findIndex.js","../dist/esm5_for_rollup/internal/operators/first.js","../dist/esm5_for_rollup/internal/operators/ignoreElements.js","../dist/esm5_for_rollup/internal/operators/isEmpty.js","../dist/esm5_for_rollup/internal/operators/takeLast.js","../dist/esm5_for_rollup/internal/operators/last.js","../dist/esm5_for_rollup/internal/operators/mapTo.js","../dist/esm5_for_rollup/internal/operators/materialize.js","../dist/esm5_for_rollup/internal/operators/scan.js","../dist/esm5_for_rollup/internal/operators/reduce.js","../dist/esm5_for_rollup/internal/operators/max.js","../dist/esm5_for_rollup/internal/operators/merge.js","../dist/esm5_for_rollup/internal/operators/mergeMapTo.js","../dist/esm5_for_rollup/internal/operators/mergeScan.js","../dist/esm5_for_rollup/internal/operators/min.js","../dist/esm5_for_rollup/internal/operators/multicast.js","../dist/esm5_for_rollup/internal/operators/onErrorResumeNext.js","../dist/esm5_for_rollup/internal/operators/pairwise.js","../dist/esm5_for_rollup/internal/operators/partition.js","../dist/esm5_for_rollup/internal/operators/pluck.js","../dist/esm5_for_rollup/internal/operators/publish.js","../dist/esm5_for_rollup/internal/operators/publishBehavior.js","../dist/esm5_for_rollup/internal/operators/publishLast.js","../dist/esm5_for_rollup/internal/operators/publishReplay.js","../dist/esm5_for_rollup/internal/operators/race.js","../dist/esm5_for_rollup/internal/operators/repeat.js","../dist/esm5_for_rollup/internal/operators/repeatWhen.js","../dist/esm5_for_rollup/internal/operators/retry.js","../dist/esm5_for_rollup/internal/operators/retryWhen.js","../dist/esm5_for_rollup/internal/operators/sample.js","../dist/esm5_for_rollup/internal/operators/sampleTime.js","../dist/esm5_for_rollup/internal/operators/sequenceEqual.js","../dist/esm5_for_rollup/internal/operators/share.js","../dist/esm5_for_rollup/internal/operators/shareReplay.js","../dist/esm5_for_rollup/internal/operators/single.js","../dist/esm5_for_rollup/internal/operators/skip.js","../dist/esm5_for_rollup/internal/operators/skipLast.js","../dist/esm5_for_rollup/internal/operators/skipUntil.js","../dist/esm5_for_rollup/internal/operators/skipWhile.js","../dist/esm5_for_rollup/internal/operators/startWith.js","../dist/esm5_for_rollup/internal/observable/SubscribeOnObservable.js","../dist/esm5_for_rollup/internal/operators/subscribeOn.js","../dist/esm5_for_rollup/internal/operators/switchMap.js","../dist/esm5_for_rollup/internal/operators/switchAll.js","../dist/esm5_for_rollup/internal/operators/switchMapTo.js","../dist/esm5_for_rollup/internal/operators/takeUntil.js","../dist/esm5_for_rollup/internal/operators/takeWhile.js","../dist/esm5_for_rollup/internal/operators/tap.js","../dist/esm5_for_rollup/internal/operators/throttle.js","../dist/esm5_for_rollup/internal/operators/throttleTime.js","../dist/esm5_for_rollup/internal/operators/timeInterval.js","../dist/esm5_for_rollup/internal/operators/timeoutWith.js","../dist/esm5_for_rollup/internal/operators/timeout.js","../dist/esm5_for_rollup/internal/operators/timestamp.js","../dist/esm5_for_rollup/internal/operators/toArray.js","../dist/esm5_for_rollup/internal/operators/window.js","../dist/esm5_for_rollup/internal/operators/windowCount.js","../dist/esm5_for_rollup/internal/operators/windowTime.js","../dist/esm5_for_rollup/internal/operators/windowToggle.js","../dist/esm5_for_rollup/internal/operators/windowWhen.js","../dist/esm5_for_rollup/internal/operators/withLatestFrom.js","../dist/esm5_for_rollup/internal/operators/zip.js","../dist/esm5_for_rollup/internal/operators/zipAll.js","../dist/esm5_for_rollup/internal/testing/SubscriptionLog.js","../dist/esm5_for_rollup/internal/testing/SubscriptionLoggable.js","../dist/esm5_for_rollup/internal/util/applyMixins.js","../dist/esm5_for_rollup/internal/testing/ColdObservable.js","../dist/esm5_for_rollup/internal/testing/HotObservable.js","../dist/esm5_for_rollup/internal/testing/TestScheduler.js","../dist/esm5_for_rollup/internal/util/root.js","../dist/esm5_for_rollup/internal/observable/dom/AjaxObservable.js","../dist/esm5_for_rollup/internal/observable/dom/ajax.js","../dist/esm5_for_rollup/internal/observable/dom/WebSocketSubject.js","../dist/esm5_for_rollup/internal/observable/dom/webSocket.js","../dist/esm5_for_rollup/internal/observable/dom/fetch.js","../dist/esm5_for_rollup/internal/umd.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n        s = arguments[i];\r\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n    }\r\n    return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export function isFunction(x) {\n    return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","var _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n    Promise: undefined,\n    set useDeprecatedSynchronousErrorHandling(value) {\n        if (value) {\n            var error = new Error();\n            console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n        }\n        else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n            console.log('RxJS: Back to a better error behavior. Thank you. <3');\n        }\n        _enable_super_gross_mode_that_will_cause_bad_things = value;\n    },\n    get useDeprecatedSynchronousErrorHandling() {\n        return _enable_super_gross_mode_that_will_cause_bad_things;\n    },\n};\n//# sourceMappingURL=config.js.map","export function hostReportError(err) {\n    setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n    closed: true,\n    next: function (value) { },\n    error: function (err) {\n        if (config.useDeprecatedSynchronousErrorHandling) {\n            throw err;\n        }\n        else {\n            hostReportError(err);\n        }\n    },\n    complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","export var isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map","export function isObject(x) {\n    return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","var UnsubscriptionErrorImpl = (function () {\n    function UnsubscriptionErrorImpl(errors) {\n        Error.call(this);\n        this.message = errors ?\n            errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n  ') : '';\n        this.name = 'UnsubscriptionError';\n        this.errors = errors;\n        return this;\n    }\n    UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n    return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = (function () {\n    function Subscription(unsubscribe) {\n        this.closed = false;\n        this._parentOrParents = null;\n        this._subscriptions = null;\n        if (unsubscribe) {\n            this._unsubscribe = unsubscribe;\n        }\n    }\n    Subscription.prototype.unsubscribe = function () {\n        var errors;\n        if (this.closed) {\n            return;\n        }\n        var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n        this.closed = true;\n        this._parentOrParents = null;\n        this._subscriptions = null;\n        if (_parentOrParents instanceof Subscription) {\n            _parentOrParents.remove(this);\n        }\n        else if (_parentOrParents !== null) {\n            for (var index = 0; index < _parentOrParents.length; ++index) {\n                var parent_1 = _parentOrParents[index];\n                parent_1.remove(this);\n            }\n        }\n        if (isFunction(_unsubscribe)) {\n            try {\n                _unsubscribe.call(this);\n            }\n            catch (e) {\n                errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n            }\n        }\n        if (isArray(_subscriptions)) {\n            var index = -1;\n            var len = _subscriptions.length;\n            while (++index < len) {\n                var sub = _subscriptions[index];\n                if (isObject(sub)) {\n                    try {\n                        sub.unsubscribe();\n                    }\n                    catch (e) {\n                        errors = errors || [];\n                        if (e instanceof UnsubscriptionError) {\n                            errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n                        }\n                        else {\n                            errors.push(e);\n                        }\n                    }\n                }\n            }\n        }\n        if (errors) {\n            throw new UnsubscriptionError(errors);\n        }\n    };\n    Subscription.prototype.add = function (teardown) {\n        var subscription = teardown;\n        if (!teardown) {\n            return Subscription.EMPTY;\n        }\n        switch (typeof teardown) {\n            case 'function':\n                subscription = new Subscription(teardown);\n            case 'object':\n                if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n                    return subscription;\n                }\n                else if (this.closed) {\n                    subscription.unsubscribe();\n                    return subscription;\n                }\n                else if (!(subscription instanceof Subscription)) {\n                    var tmp = subscription;\n                    subscription = new Subscription();\n                    subscription._subscriptions = [tmp];\n                }\n                break;\n            default: {\n                throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n            }\n        }\n        var _parentOrParents = subscription._parentOrParents;\n        if (_parentOrParents === null) {\n            subscription._parentOrParents = this;\n        }\n        else if (_parentOrParents instanceof Subscription) {\n            if (_parentOrParents === this) {\n                return subscription;\n            }\n            subscription._parentOrParents = [_parentOrParents, this];\n        }\n        else if (_parentOrParents.indexOf(this) === -1) {\n            _parentOrParents.push(this);\n        }\n        else {\n            return subscription;\n        }\n        var subscriptions = this._subscriptions;\n        if (subscriptions === null) {\n            this._subscriptions = [subscription];\n        }\n        else {\n            subscriptions.push(subscription);\n        }\n        return subscription;\n    };\n    Subscription.prototype.remove = function (subscription) {\n        var subscriptions = this._subscriptions;\n        if (subscriptions) {\n            var subscriptionIndex = subscriptions.indexOf(subscription);\n            if (subscriptionIndex !== -1) {\n                subscriptions.splice(subscriptionIndex, 1);\n            }\n        }\n    };\n    Subscription.EMPTY = (function (empty) {\n        empty.closed = true;\n        return empty;\n    }(new Subscription()));\n    return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n    return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","export var rxSubscriber = (function () {\n    return typeof Symbol === 'function'\n        ? Symbol('rxSubscriber')\n        : '@@rxSubscriber_' + Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = (function (_super) {\n    tslib_1.__extends(Subscriber, _super);\n    function Subscriber(destinationOrNext, error, complete) {\n        var _this = _super.call(this) || this;\n        _this.syncErrorValue = null;\n        _this.syncErrorThrown = false;\n        _this.syncErrorThrowable = false;\n        _this.isStopped = false;\n        switch (arguments.length) {\n            case 0:\n                _this.destination = emptyObserver;\n                break;\n            case 1:\n                if (!destinationOrNext) {\n                    _this.destination = emptyObserver;\n                    break;\n                }\n                if (typeof destinationOrNext === 'object') {\n                    if (destinationOrNext instanceof Subscriber) {\n                        _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n                        _this.destination = destinationOrNext;\n                        destinationOrNext.add(_this);\n                    }\n                    else {\n                        _this.syncErrorThrowable = true;\n                        _this.destination = new SafeSubscriber(_this, destinationOrNext);\n                    }\n                    break;\n                }\n            default:\n                _this.syncErrorThrowable = true;\n                _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n                break;\n        }\n        return _this;\n    }\n    Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n    Subscriber.create = function (next, error, complete) {\n        var subscriber = new Subscriber(next, error, complete);\n        subscriber.syncErrorThrowable = false;\n        return subscriber;\n    };\n    Subscriber.prototype.next = function (value) {\n        if (!this.isStopped) {\n            this._next(value);\n        }\n    };\n    Subscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            this.isStopped = true;\n            this._error(err);\n        }\n    };\n    Subscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            this.isStopped = true;\n            this._complete();\n        }\n    };\n    Subscriber.prototype.unsubscribe = function () {\n        if (this.closed) {\n            return;\n        }\n        this.isStopped = true;\n        _super.prototype.unsubscribe.call(this);\n    };\n    Subscriber.prototype._next = function (value) {\n        this.destination.next(value);\n    };\n    Subscriber.prototype._error = function (err) {\n        this.destination.error(err);\n        this.unsubscribe();\n    };\n    Subscriber.prototype._complete = function () {\n        this.destination.complete();\n        this.unsubscribe();\n    };\n    Subscriber.prototype._unsubscribeAndRecycle = function () {\n        var _parentOrParents = this._parentOrParents;\n        this._parentOrParents = null;\n        this.unsubscribe();\n        this.closed = false;\n        this.isStopped = false;\n        this._parentOrParents = _parentOrParents;\n        return this;\n    };\n    return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n    tslib_1.__extends(SafeSubscriber, _super);\n    function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n        var _this = _super.call(this) || this;\n        _this._parentSubscriber = _parentSubscriber;\n        var next;\n        var context = _this;\n        if (isFunction(observerOrNext)) {\n            next = observerOrNext;\n        }\n        else if (observerOrNext) {\n            next = observerOrNext.next;\n            error = observerOrNext.error;\n            complete = observerOrNext.complete;\n            if (observerOrNext !== emptyObserver) {\n                context = Object.create(observerOrNext);\n                if (isFunction(context.unsubscribe)) {\n                    _this.add(context.unsubscribe.bind(context));\n                }\n                context.unsubscribe = _this.unsubscribe.bind(_this);\n            }\n        }\n        _this._context = context;\n        _this._next = next;\n        _this._error = error;\n        _this._complete = complete;\n        return _this;\n    }\n    SafeSubscriber.prototype.next = function (value) {\n        if (!this.isStopped && this._next) {\n            var _parentSubscriber = this._parentSubscriber;\n            if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n                this.__tryOrUnsub(this._next, value);\n            }\n            else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var _parentSubscriber = this._parentSubscriber;\n            var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n            if (this._error) {\n                if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n                    this.__tryOrUnsub(this._error, err);\n                    this.unsubscribe();\n                }\n                else {\n                    this.__tryOrSetError(_parentSubscriber, this._error, err);\n                    this.unsubscribe();\n                }\n            }\n            else if (!_parentSubscriber.syncErrorThrowable) {\n                this.unsubscribe();\n                if (useDeprecatedSynchronousErrorHandling) {\n                    throw err;\n                }\n                hostReportError(err);\n            }\n            else {\n                if (useDeprecatedSynchronousErrorHandling) {\n                    _parentSubscriber.syncErrorValue = err;\n                    _parentSubscriber.syncErrorThrown = true;\n                }\n                else {\n                    hostReportError(err);\n                }\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.complete = function () {\n        var _this = this;\n        if (!this.isStopped) {\n            var _parentSubscriber = this._parentSubscriber;\n            if (this._complete) {\n                var wrappedComplete = function () { return _this._complete.call(_this._context); };\n                if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n                    this.__tryOrUnsub(wrappedComplete);\n                    this.unsubscribe();\n                }\n                else {\n                    this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n                    this.unsubscribe();\n                }\n            }\n            else {\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n        try {\n            fn.call(this._context, value);\n        }\n        catch (err) {\n            this.unsubscribe();\n            if (config.useDeprecatedSynchronousErrorHandling) {\n                throw err;\n            }\n            else {\n                hostReportError(err);\n            }\n        }\n    };\n    SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n        if (!config.useDeprecatedSynchronousErrorHandling) {\n            throw new Error('bad call');\n        }\n        try {\n            fn.call(this._context, value);\n        }\n        catch (err) {\n            if (config.useDeprecatedSynchronousErrorHandling) {\n                parent.syncErrorValue = err;\n                parent.syncErrorThrown = true;\n                return true;\n            }\n            else {\n                hostReportError(err);\n                return true;\n            }\n        }\n        return false;\n    };\n    SafeSubscriber.prototype._unsubscribe = function () {\n        var _parentSubscriber = this._parentSubscriber;\n        this._context = null;\n        this._parentSubscriber = null;\n        _parentSubscriber.unsubscribe();\n    };\n    return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n    while (observer) {\n        var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n        if (closed_1 || isStopped) {\n            return false;\n        }\n        else if (destination && destination instanceof Subscriber) {\n            observer = destination;\n        }\n        else {\n            observer = null;\n        }\n    }\n    return true;\n}\n//# sourceMappingURL=canReportError.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n    if (nextOrObserver) {\n        if (nextOrObserver instanceof Subscriber) {\n            return nextOrObserver;\n        }\n        if (nextOrObserver[rxSubscriberSymbol]) {\n            return nextOrObserver[rxSubscriberSymbol]();\n        }\n    }\n    if (!nextOrObserver && !error && !complete) {\n        return new Subscriber(emptyObserver);\n    }\n    return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","export var observable = (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n    return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n    var fns = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        fns[_i] = arguments[_i];\n    }\n    return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n    if (fns.length === 0) {\n        return identity;\n    }\n    if (fns.length === 1) {\n        return fns[0];\n    }\n    return function piped(input) {\n        return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n    };\n}\n//# sourceMappingURL=pipe.js.map","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = (function () {\n    function Observable(subscribe) {\n        this._isScalar = false;\n        if (subscribe) {\n            this._subscribe = subscribe;\n        }\n    }\n    Observable.prototype.lift = function (operator) {\n        var observable = new Observable();\n        observable.source = this;\n        observable.operator = operator;\n        return observable;\n    };\n    Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n        var operator = this.operator;\n        var sink = toSubscriber(observerOrNext, error, complete);\n        if (operator) {\n            sink.add(operator.call(sink, this.source));\n        }\n        else {\n            sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n                this._subscribe(sink) :\n                this._trySubscribe(sink));\n        }\n        if (config.useDeprecatedSynchronousErrorHandling) {\n            if (sink.syncErrorThrowable) {\n                sink.syncErrorThrowable = false;\n                if (sink.syncErrorThrown) {\n                    throw sink.syncErrorValue;\n                }\n            }\n        }\n        return sink;\n    };\n    Observable.prototype._trySubscribe = function (sink) {\n        try {\n            return this._subscribe(sink);\n        }\n        catch (err) {\n            if (config.useDeprecatedSynchronousErrorHandling) {\n                sink.syncErrorThrown = true;\n                sink.syncErrorValue = err;\n            }\n            if (canReportError(sink)) {\n                sink.error(err);\n            }\n            else {\n                console.warn(err);\n            }\n        }\n    };\n    Observable.prototype.forEach = function (next, promiseCtor) {\n        var _this = this;\n        promiseCtor = getPromiseCtor(promiseCtor);\n        return new promiseCtor(function (resolve, reject) {\n            var subscription;\n            subscription = _this.subscribe(function (value) {\n                try {\n                    next(value);\n                }\n                catch (err) {\n                    reject(err);\n                    if (subscription) {\n                        subscription.unsubscribe();\n                    }\n                }\n            }, reject, resolve);\n        });\n    };\n    Observable.prototype._subscribe = function (subscriber) {\n        var source = this.source;\n        return source && source.subscribe(subscriber);\n    };\n    Observable.prototype[Symbol_observable] = function () {\n        return this;\n    };\n    Observable.prototype.pipe = function () {\n        var operations = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            operations[_i] = arguments[_i];\n        }\n        if (operations.length === 0) {\n            return this;\n        }\n        return pipeFromArray(operations)(this);\n    };\n    Observable.prototype.toPromise = function (promiseCtor) {\n        var _this = this;\n        promiseCtor = getPromiseCtor(promiseCtor);\n        return new promiseCtor(function (resolve, reject) {\n            var value;\n            _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n        });\n    };\n    Observable.create = function (subscribe) {\n        return new Observable(subscribe);\n    };\n    return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n    if (!promiseCtor) {\n        promiseCtor = config.Promise || Promise;\n    }\n    if (!promiseCtor) {\n        throw new Error('no Promise impl found');\n    }\n    return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map","var ObjectUnsubscribedErrorImpl = (function () {\n    function ObjectUnsubscribedErrorImpl() {\n        Error.call(this);\n        this.message = 'object unsubscribed';\n        this.name = 'ObjectUnsubscribedError';\n        return this;\n    }\n    ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n    return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = (function (_super) {\n    tslib_1.__extends(SubjectSubscription, _super);\n    function SubjectSubscription(subject, subscriber) {\n        var _this = _super.call(this) || this;\n        _this.subject = subject;\n        _this.subscriber = subscriber;\n        _this.closed = false;\n        return _this;\n    }\n    SubjectSubscription.prototype.unsubscribe = function () {\n        if (this.closed) {\n            return;\n        }\n        this.closed = true;\n        var subject = this.subject;\n        var observers = subject.observers;\n        this.subject = null;\n        if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n            return;\n        }\n        var subscriberIndex = observers.indexOf(this.subscriber);\n        if (subscriberIndex !== -1) {\n            observers.splice(subscriberIndex, 1);\n        }\n    };\n    return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = (function (_super) {\n    tslib_1.__extends(SubjectSubscriber, _super);\n    function SubjectSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        return _this;\n    }\n    return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = (function (_super) {\n    tslib_1.__extends(Subject, _super);\n    function Subject() {\n        var _this = _super.call(this) || this;\n        _this.observers = [];\n        _this.closed = false;\n        _this.isStopped = false;\n        _this.hasError = false;\n        _this.thrownError = null;\n        return _this;\n    }\n    Subject.prototype[rxSubscriberSymbol] = function () {\n        return new SubjectSubscriber(this);\n    };\n    Subject.prototype.lift = function (operator) {\n        var subject = new AnonymousSubject(this, this);\n        subject.operator = operator;\n        return subject;\n    };\n    Subject.prototype.next = function (value) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        if (!this.isStopped) {\n            var observers = this.observers;\n            var len = observers.length;\n            var copy = observers.slice();\n            for (var i = 0; i < len; i++) {\n                copy[i].next(value);\n            }\n        }\n    };\n    Subject.prototype.error = function (err) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        this.hasError = true;\n        this.thrownError = err;\n        this.isStopped = true;\n        var observers = this.observers;\n        var len = observers.length;\n        var copy = observers.slice();\n        for (var i = 0; i < len; i++) {\n            copy[i].error(err);\n        }\n        this.observers.length = 0;\n    };\n    Subject.prototype.complete = function () {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        this.isStopped = true;\n        var observers = this.observers;\n        var len = observers.length;\n        var copy = observers.slice();\n        for (var i = 0; i < len; i++) {\n            copy[i].complete();\n        }\n        this.observers.length = 0;\n    };\n    Subject.prototype.unsubscribe = function () {\n        this.isStopped = true;\n        this.closed = true;\n        this.observers = null;\n    };\n    Subject.prototype._trySubscribe = function (subscriber) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else {\n            return _super.prototype._trySubscribe.call(this, subscriber);\n        }\n    };\n    Subject.prototype._subscribe = function (subscriber) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else if (this.hasError) {\n            subscriber.error(this.thrownError);\n            return Subscription.EMPTY;\n        }\n        else if (this.isStopped) {\n            subscriber.complete();\n            return Subscription.EMPTY;\n        }\n        else {\n            this.observers.push(subscriber);\n            return new SubjectSubscription(this, subscriber);\n        }\n    };\n    Subject.prototype.asObservable = function () {\n        var observable = new Observable();\n        observable.source = this;\n        return observable;\n    };\n    Subject.create = function (destination, source) {\n        return new AnonymousSubject(destination, source);\n    };\n    return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n    tslib_1.__extends(AnonymousSubject, _super);\n    function AnonymousSubject(destination, source) {\n        var _this = _super.call(this) || this;\n        _this.destination = destination;\n        _this.source = source;\n        return _this;\n    }\n    AnonymousSubject.prototype.next = function (value) {\n        var destination = this.destination;\n        if (destination && destination.next) {\n            destination.next(value);\n        }\n    };\n    AnonymousSubject.prototype.error = function (err) {\n        var destination = this.destination;\n        if (destination && destination.error) {\n            this.destination.error(err);\n        }\n    };\n    AnonymousSubject.prototype.complete = function () {\n        var destination = this.destination;\n        if (destination && destination.complete) {\n            this.destination.complete();\n        }\n    };\n    AnonymousSubject.prototype._subscribe = function (subscriber) {\n        var source = this.source;\n        if (source) {\n            return this.source.subscribe(subscriber);\n        }\n        else {\n            return Subscription.EMPTY;\n        }\n    };\n    return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n    return function refCountOperatorFunction(source) {\n        return source.lift(new RefCountOperator(source));\n    };\n}\nvar RefCountOperator = (function () {\n    function RefCountOperator(connectable) {\n        this.connectable = connectable;\n    }\n    RefCountOperator.prototype.call = function (subscriber, source) {\n        var connectable = this.connectable;\n        connectable._refCount++;\n        var refCounter = new RefCountSubscriber(subscriber, connectable);\n        var subscription = source.subscribe(refCounter);\n        if (!refCounter.closed) {\n            refCounter.connection = connectable.connect();\n        }\n        return subscription;\n    };\n    return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n    tslib_1.__extends(RefCountSubscriber, _super);\n    function RefCountSubscriber(destination, connectable) {\n        var _this = _super.call(this, destination) || this;\n        _this.connectable = connectable;\n        return _this;\n    }\n    RefCountSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (!connectable) {\n            this.connection = null;\n            return;\n        }\n        this.connectable = null;\n        var refCount = connectable._refCount;\n        if (refCount <= 0) {\n            this.connection = null;\n            return;\n        }\n        connectable._refCount = refCount - 1;\n        if (refCount > 1) {\n            this.connection = null;\n            return;\n        }\n        var connection = this.connection;\n        var sharedConnection = connectable._connection;\n        this.connection = null;\n        if (sharedConnection && (!connection || sharedConnection === connection)) {\n            sharedConnection.unsubscribe();\n        }\n    };\n    return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map","import * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = (function (_super) {\n    tslib_1.__extends(ConnectableObservable, _super);\n    function ConnectableObservable(source, subjectFactory) {\n        var _this = _super.call(this) || this;\n        _this.source = source;\n        _this.subjectFactory = subjectFactory;\n        _this._refCount = 0;\n        _this._isComplete = false;\n        return _this;\n    }\n    ConnectableObservable.prototype._subscribe = function (subscriber) {\n        return this.getSubject().subscribe(subscriber);\n    };\n    ConnectableObservable.prototype.getSubject = function () {\n        var subject = this._subject;\n        if (!subject || subject.isStopped) {\n            this._subject = this.subjectFactory();\n        }\n        return this._subject;\n    };\n    ConnectableObservable.prototype.connect = function () {\n        var connection = this._connection;\n        if (!connection) {\n            this._isComplete = false;\n            connection = this._connection = new Subscription();\n            connection.add(this.source\n                .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n            if (connection.closed) {\n                this._connection = null;\n                connection = Subscription.EMPTY;\n            }\n        }\n        return connection;\n    };\n    ConnectableObservable.prototype.refCount = function () {\n        return higherOrderRefCount()(this);\n    };\n    return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = (function () {\n    var connectableProto = ConnectableObservable.prototype;\n    return {\n        operator: { value: null },\n        _refCount: { value: 0, writable: true },\n        _subject: { value: null, writable: true },\n        _connection: { value: null, writable: true },\n        _subscribe: { value: connectableProto._subscribe },\n        _isComplete: { value: connectableProto._isComplete, writable: true },\n        getSubject: { value: connectableProto.getSubject },\n        connect: { value: connectableProto.connect },\n        refCount: { value: connectableProto.refCount }\n    };\n})();\nvar ConnectableSubscriber = (function (_super) {\n    tslib_1.__extends(ConnectableSubscriber, _super);\n    function ConnectableSubscriber(destination, connectable) {\n        var _this = _super.call(this, destination) || this;\n        _this.connectable = connectable;\n        return _this;\n    }\n    ConnectableSubscriber.prototype._error = function (err) {\n        this._unsubscribe();\n        _super.prototype._error.call(this, err);\n    };\n    ConnectableSubscriber.prototype._complete = function () {\n        this.connectable._isComplete = true;\n        this._unsubscribe();\n        _super.prototype._complete.call(this);\n    };\n    ConnectableSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (connectable) {\n            this.connectable = null;\n            var connection = connectable._connection;\n            connectable._refCount = 0;\n            connectable._subject = null;\n            connectable._connection = null;\n            if (connection) {\n                connection.unsubscribe();\n            }\n        }\n    };\n    return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = (function () {\n    function RefCountOperator(connectable) {\n        this.connectable = connectable;\n    }\n    RefCountOperator.prototype.call = function (subscriber, source) {\n        var connectable = this.connectable;\n        connectable._refCount++;\n        var refCounter = new RefCountSubscriber(subscriber, connectable);\n        var subscription = source.subscribe(refCounter);\n        if (!refCounter.closed) {\n            refCounter.connection = connectable.connect();\n        }\n        return subscription;\n    };\n    return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n    tslib_1.__extends(RefCountSubscriber, _super);\n    function RefCountSubscriber(destination, connectable) {\n        var _this = _super.call(this, destination) || this;\n        _this.connectable = connectable;\n        return _this;\n    }\n    RefCountSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (!connectable) {\n            this.connection = null;\n            return;\n        }\n        this.connectable = null;\n        var refCount = connectable._refCount;\n        if (refCount <= 0) {\n            this.connection = null;\n            return;\n        }\n        connectable._refCount = refCount - 1;\n        if (refCount > 1) {\n            this.connection = null;\n            return;\n        }\n        var connection = this.connection;\n        var sharedConnection = connectable._connection;\n        this.connection = null;\n        if (sharedConnection && (!connection || sharedConnection === connection)) {\n            sharedConnection.unsubscribe();\n        }\n    };\n    return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nexport function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n    return function (source) {\n        return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n    };\n}\nvar GroupByOperator = (function () {\n    function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n        this.keySelector = keySelector;\n        this.elementSelector = elementSelector;\n        this.durationSelector = durationSelector;\n        this.subjectSelector = subjectSelector;\n    }\n    GroupByOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n    };\n    return GroupByOperator;\n}());\nvar GroupBySubscriber = (function (_super) {\n    tslib_1.__extends(GroupBySubscriber, _super);\n    function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.keySelector = keySelector;\n        _this.elementSelector = elementSelector;\n        _this.durationSelector = durationSelector;\n        _this.subjectSelector = subjectSelector;\n        _this.groups = null;\n        _this.attemptedToUnsubscribe = false;\n        _this.count = 0;\n        return _this;\n    }\n    GroupBySubscriber.prototype._next = function (value) {\n        var key;\n        try {\n            key = this.keySelector(value);\n        }\n        catch (err) {\n            this.error(err);\n            return;\n        }\n        this._group(value, key);\n    };\n    GroupBySubscriber.prototype._group = function (value, key) {\n        var groups = this.groups;\n        if (!groups) {\n            groups = this.groups = new Map();\n        }\n        var group = groups.get(key);\n        var element;\n        if (this.elementSelector) {\n            try {\n                element = this.elementSelector(value);\n            }\n            catch (err) {\n                this.error(err);\n            }\n        }\n        else {\n            element = value;\n        }\n        if (!group) {\n            group = (this.subjectSelector ? this.subjectSelector() : new Subject());\n            groups.set(key, group);\n            var groupedObservable = new GroupedObservable(key, group, this);\n            this.destination.next(groupedObservable);\n            if (this.durationSelector) {\n                var duration = void 0;\n                try {\n                    duration = this.durationSelector(new GroupedObservable(key, group));\n                }\n                catch (err) {\n                    this.error(err);\n                    return;\n                }\n                this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n            }\n        }\n        if (!group.closed) {\n            group.next(element);\n        }\n    };\n    GroupBySubscriber.prototype._error = function (err) {\n        var groups = this.groups;\n        if (groups) {\n            groups.forEach(function (group, key) {\n                group.error(err);\n            });\n            groups.clear();\n        }\n        this.destination.error(err);\n    };\n    GroupBySubscriber.prototype._complete = function () {\n        var groups = this.groups;\n        if (groups) {\n            groups.forEach(function (group, key) {\n                group.complete();\n            });\n            groups.clear();\n        }\n        this.destination.complete();\n    };\n    GroupBySubscriber.prototype.removeGroup = function (key) {\n        this.groups.delete(key);\n    };\n    GroupBySubscriber.prototype.unsubscribe = function () {\n        if (!this.closed) {\n            this.attemptedToUnsubscribe = true;\n            if (this.count === 0) {\n                _super.prototype.unsubscribe.call(this);\n            }\n        }\n    };\n    return GroupBySubscriber;\n}(Subscriber));\nvar GroupDurationSubscriber = (function (_super) {\n    tslib_1.__extends(GroupDurationSubscriber, _super);\n    function GroupDurationSubscriber(key, group, parent) {\n        var _this = _super.call(this, group) || this;\n        _this.key = key;\n        _this.group = group;\n        _this.parent = parent;\n        return _this;\n    }\n    GroupDurationSubscriber.prototype._next = function (value) {\n        this.complete();\n    };\n    GroupDurationSubscriber.prototype._unsubscribe = function () {\n        var _a = this, parent = _a.parent, key = _a.key;\n        this.key = this.parent = null;\n        if (parent) {\n            parent.removeGroup(key);\n        }\n    };\n    return GroupDurationSubscriber;\n}(Subscriber));\nvar GroupedObservable = (function (_super) {\n    tslib_1.__extends(GroupedObservable, _super);\n    function GroupedObservable(key, groupSubject, refCountSubscription) {\n        var _this = _super.call(this) || this;\n        _this.key = key;\n        _this.groupSubject = groupSubject;\n        _this.refCountSubscription = refCountSubscription;\n        return _this;\n    }\n    GroupedObservable.prototype._subscribe = function (subscriber) {\n        var subscription = new Subscription();\n        var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n        if (refCountSubscription && !refCountSubscription.closed) {\n            subscription.add(new InnerRefCountSubscription(refCountSubscription));\n        }\n        subscription.add(groupSubject.subscribe(subscriber));\n        return subscription;\n    };\n    return GroupedObservable;\n}(Observable));\nexport { GroupedObservable };\nvar InnerRefCountSubscription = (function (_super) {\n    tslib_1.__extends(InnerRefCountSubscription, _super);\n    function InnerRefCountSubscription(parent) {\n        var _this = _super.call(this) || this;\n        _this.parent = parent;\n        parent.count++;\n        return _this;\n    }\n    InnerRefCountSubscription.prototype.unsubscribe = function () {\n        var parent = this.parent;\n        if (!parent.closed && !this.closed) {\n            _super.prototype.unsubscribe.call(this);\n            parent.count -= 1;\n            if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n                parent.unsubscribe();\n            }\n        }\n    };\n    return InnerRefCountSubscription;\n}(Subscription));\n//# sourceMappingURL=groupBy.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = (function (_super) {\n    tslib_1.__extends(BehaviorSubject, _super);\n    function BehaviorSubject(_value) {\n        var _this = _super.call(this) || this;\n        _this._value = _value;\n        return _this;\n    }\n    Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n        get: function () {\n            return this.getValue();\n        },\n        enumerable: true,\n        configurable: true\n    });\n    BehaviorSubject.prototype._subscribe = function (subscriber) {\n        var subscription = _super.prototype._subscribe.call(this, subscriber);\n        if (subscription && !subscription.closed) {\n            subscriber.next(this._value);\n        }\n        return subscription;\n    };\n    BehaviorSubject.prototype.getValue = function () {\n        if (this.hasError) {\n            throw this.thrownError;\n        }\n        else if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else {\n            return this._value;\n        }\n    };\n    BehaviorSubject.prototype.next = function (value) {\n        _super.prototype.next.call(this, this._value = value);\n    };\n    return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n    tslib_1.__extends(Action, _super);\n    function Action(scheduler, work) {\n        return _super.call(this) || this;\n    }\n    Action.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        return this;\n    };\n    return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = (function (_super) {\n    tslib_1.__extends(AsyncAction, _super);\n    function AsyncAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        _this.pending = false;\n        return _this;\n    }\n    AsyncAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (this.closed) {\n            return this;\n        }\n        this.state = state;\n        var id = this.id;\n        var scheduler = this.scheduler;\n        if (id != null) {\n            this.id = this.recycleAsyncId(scheduler, id, delay);\n        }\n        this.pending = true;\n        this.delay = delay;\n        this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n        return this;\n    };\n    AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        return setInterval(scheduler.flush.bind(scheduler, this), delay);\n    };\n    AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (delay !== null && this.delay === delay && this.pending === false) {\n            return id;\n        }\n        clearInterval(id);\n        return undefined;\n    };\n    AsyncAction.prototype.execute = function (state, delay) {\n        if (this.closed) {\n            return new Error('executing a cancelled action');\n        }\n        this.pending = false;\n        var error = this._execute(state, delay);\n        if (error) {\n            return error;\n        }\n        else if (this.pending === false && this.id != null) {\n            this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n        }\n    };\n    AsyncAction.prototype._execute = function (state, delay) {\n        var errored = false;\n        var errorValue = undefined;\n        try {\n            this.work(state);\n        }\n        catch (e) {\n            errored = true;\n            errorValue = !!e && e || new Error(e);\n        }\n        if (errored) {\n            this.unsubscribe();\n            return errorValue;\n        }\n    };\n    AsyncAction.prototype._unsubscribe = function () {\n        var id = this.id;\n        var scheduler = this.scheduler;\n        var actions = scheduler.actions;\n        var index = actions.indexOf(this);\n        this.work = null;\n        this.state = null;\n        this.pending = false;\n        this.scheduler = null;\n        if (index !== -1) {\n            actions.splice(index, 1);\n        }\n        if (id != null) {\n            this.id = this.recycleAsyncId(scheduler, id, null);\n        }\n        this.delay = null;\n    };\n    return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n    tslib_1.__extends(QueueAction, _super);\n    function QueueAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        return _this;\n    }\n    QueueAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (delay > 0) {\n            return _super.prototype.schedule.call(this, state, delay);\n        }\n        this.delay = delay;\n        this.state = state;\n        this.scheduler.flush(this);\n        return this;\n    };\n    QueueAction.prototype.execute = function (state, delay) {\n        return (delay > 0 || this.closed) ?\n            _super.prototype.execute.call(this, state, delay) :\n            this._execute(state, delay);\n    };\n    QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        return scheduler.flush(this);\n    };\n    return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","var Scheduler = (function () {\n    function Scheduler(SchedulerAction, now) {\n        if (now === void 0) { now = Scheduler.now; }\n        this.SchedulerAction = SchedulerAction;\n        this.now = now;\n    }\n    Scheduler.prototype.schedule = function (work, delay, state) {\n        if (delay === void 0) { delay = 0; }\n        return new this.SchedulerAction(this, work).schedule(state, delay);\n    };\n    Scheduler.now = function () { return Date.now(); };\n    return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n    tslib_1.__extends(AsyncScheduler, _super);\n    function AsyncScheduler(SchedulerAction, now) {\n        if (now === void 0) { now = Scheduler.now; }\n        var _this = _super.call(this, SchedulerAction, function () {\n            if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n                return AsyncScheduler.delegate.now();\n            }\n            else {\n                return now();\n            }\n        }) || this;\n        _this.actions = [];\n        _this.active = false;\n        _this.scheduled = undefined;\n        return _this;\n    }\n    AsyncScheduler.prototype.schedule = function (work, delay, state) {\n        if (delay === void 0) { delay = 0; }\n        if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n            return AsyncScheduler.delegate.schedule(work, delay, state);\n        }\n        else {\n            return _super.prototype.schedule.call(this, work, delay, state);\n        }\n    };\n    AsyncScheduler.prototype.flush = function (action) {\n        var actions = this.actions;\n        if (this.active) {\n            actions.push(action);\n            return;\n        }\n        var error;\n        this.active = true;\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (action = actions.shift());\n        this.active = false;\n        if (error) {\n            while (action = actions.shift()) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n    tslib_1.__extends(QueueScheduler, _super);\n    function QueueScheduler() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n    return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n    return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","export function isScheduler(value) {\n    return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","export var subscribeToArray = function (array) { return function (subscriber) {\n    for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n        subscriber.next(array[i]);\n    }\n    subscriber.complete();\n}; };\n//# sourceMappingURL=subscribeToArray.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n    return new Observable(function (subscriber) {\n        var sub = new Subscription();\n        var i = 0;\n        sub.add(scheduler.schedule(function () {\n            if (i === input.length) {\n                subscriber.complete();\n                return;\n            }\n            subscriber.next(input[i++]);\n            if (!subscriber.closed) {\n                sub.add(this.schedule());\n            }\n        }));\n        return sub;\n    });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n    if (!scheduler) {\n        return new Observable(subscribeToArray(input));\n    }\n    else {\n        return scheduleArray(input, scheduler);\n    }\n}\n//# sourceMappingURL=fromArray.js.map","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    var scheduler = args[args.length - 1];\n    if (isScheduler(scheduler)) {\n        args.pop();\n        return scheduleArray(args, scheduler);\n    }\n    else {\n        return fromArray(args);\n    }\n}\n//# sourceMappingURL=of.js.map","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n    if (!scheduler) {\n        return new Observable(function (subscriber) { return subscriber.error(error); });\n    }\n    else {\n        return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n    }\n}\nfunction dispatch(_a) {\n    var error = _a.error, subscriber = _a.subscriber;\n    subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n    NotificationKind[\"NEXT\"] = \"N\";\n    NotificationKind[\"ERROR\"] = \"E\";\n    NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = (function () {\n    function Notification(kind, value, error) {\n        this.kind = kind;\n        this.value = value;\n        this.error = error;\n        this.hasValue = kind === 'N';\n    }\n    Notification.prototype.observe = function (observer) {\n        switch (this.kind) {\n            case 'N':\n                return observer.next && observer.next(this.value);\n            case 'E':\n                return observer.error && observer.error(this.error);\n            case 'C':\n                return observer.complete && observer.complete();\n        }\n    };\n    Notification.prototype.do = function (next, error, complete) {\n        var kind = this.kind;\n        switch (kind) {\n            case 'N':\n                return next && next(this.value);\n            case 'E':\n                return error && error(this.error);\n            case 'C':\n                return complete && complete();\n        }\n    };\n    Notification.prototype.accept = function (nextOrObserver, error, complete) {\n        if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n            return this.observe(nextOrObserver);\n        }\n        else {\n            return this.do(nextOrObserver, error, complete);\n        }\n    };\n    Notification.prototype.toObservable = function () {\n        var kind = this.kind;\n        switch (kind) {\n            case 'N':\n                return of(this.value);\n            case 'E':\n                return throwError(this.error);\n            case 'C':\n                return empty();\n        }\n        throw new Error('unexpected notification kind value');\n    };\n    Notification.createNext = function (value) {\n        if (typeof value !== 'undefined') {\n            return new Notification('N', value);\n        }\n        return Notification.undefinedValueNotification;\n    };\n    Notification.createError = function (err) {\n        return new Notification('E', undefined, err);\n    };\n    Notification.createComplete = function () {\n        return Notification.completeNotification;\n    };\n    Notification.completeNotification = new Notification('C');\n    Notification.undefinedValueNotification = new Notification('N', undefined);\n    return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n    if (delay === void 0) { delay = 0; }\n    return function observeOnOperatorFunction(source) {\n        return source.lift(new ObserveOnOperator(scheduler, delay));\n    };\n}\nvar ObserveOnOperator = (function () {\n    function ObserveOnOperator(scheduler, delay) {\n        if (delay === void 0) { delay = 0; }\n        this.scheduler = scheduler;\n        this.delay = delay;\n    }\n    ObserveOnOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n    };\n    return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = (function (_super) {\n    tslib_1.__extends(ObserveOnSubscriber, _super);\n    function ObserveOnSubscriber(destination, scheduler, delay) {\n        if (delay === void 0) { delay = 0; }\n        var _this = _super.call(this, destination) || this;\n        _this.scheduler = scheduler;\n        _this.delay = delay;\n        return _this;\n    }\n    ObserveOnSubscriber.dispatch = function (arg) {\n        var notification = arg.notification, destination = arg.destination;\n        notification.observe(destination);\n        this.unsubscribe();\n    };\n    ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n        var destination = this.destination;\n        destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n    };\n    ObserveOnSubscriber.prototype._next = function (value) {\n        this.scheduleMessage(Notification.createNext(value));\n    };\n    ObserveOnSubscriber.prototype._error = function (err) {\n        this.scheduleMessage(Notification.createError(err));\n        this.unsubscribe();\n    };\n    ObserveOnSubscriber.prototype._complete = function () {\n        this.scheduleMessage(Notification.createComplete());\n        this.unsubscribe();\n    };\n    return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = (function () {\n    function ObserveOnMessage(notification, destination) {\n        this.notification = notification;\n        this.destination = destination;\n    }\n    return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = (function (_super) {\n    tslib_1.__extends(ReplaySubject, _super);\n    function ReplaySubject(bufferSize, windowTime, scheduler) {\n        if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n        if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n        var _this = _super.call(this) || this;\n        _this.scheduler = scheduler;\n        _this._events = [];\n        _this._infiniteTimeWindow = false;\n        _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n        _this._windowTime = windowTime < 1 ? 1 : windowTime;\n        if (windowTime === Number.POSITIVE_INFINITY) {\n            _this._infiniteTimeWindow = true;\n            _this.next = _this.nextInfiniteTimeWindow;\n        }\n        else {\n            _this.next = _this.nextTimeWindow;\n        }\n        return _this;\n    }\n    ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n        var _events = this._events;\n        _events.push(value);\n        if (_events.length > this._bufferSize) {\n            _events.shift();\n        }\n        _super.prototype.next.call(this, value);\n    };\n    ReplaySubject.prototype.nextTimeWindow = function (value) {\n        this._events.push(new ReplayEvent(this._getNow(), value));\n        this._trimBufferThenGetEvents();\n        _super.prototype.next.call(this, value);\n    };\n    ReplaySubject.prototype._subscribe = function (subscriber) {\n        var _infiniteTimeWindow = this._infiniteTimeWindow;\n        var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n        var scheduler = this.scheduler;\n        var len = _events.length;\n        var subscription;\n        if (this.closed) {\n            throw new ObjectUnsubscribedError();\n        }\n        else if (this.isStopped || this.hasError) {\n            subscription = Subscription.EMPTY;\n        }\n        else {\n            this.observers.push(subscriber);\n            subscription = new SubjectSubscription(this, subscriber);\n        }\n        if (scheduler) {\n            subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n        }\n        if (_infiniteTimeWindow) {\n            for (var i = 0; i < len && !subscriber.closed; i++) {\n                subscriber.next(_events[i]);\n            }\n        }\n        else {\n            for (var i = 0; i < len && !subscriber.closed; i++) {\n                subscriber.next(_events[i].value);\n            }\n        }\n        if (this.hasError) {\n            subscriber.error(this.thrownError);\n        }\n        else if (this.isStopped) {\n            subscriber.complete();\n        }\n        return subscription;\n    };\n    ReplaySubject.prototype._getNow = function () {\n        return (this.scheduler || queue).now();\n    };\n    ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n        var now = this._getNow();\n        var _bufferSize = this._bufferSize;\n        var _windowTime = this._windowTime;\n        var _events = this._events;\n        var eventsCount = _events.length;\n        var spliceCount = 0;\n        while (spliceCount < eventsCount) {\n            if ((now - _events[spliceCount].time) < _windowTime) {\n                break;\n            }\n            spliceCount++;\n        }\n        if (eventsCount > _bufferSize) {\n            spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n        }\n        if (spliceCount > 0) {\n            _events.splice(0, spliceCount);\n        }\n        return _events;\n    };\n    return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = (function () {\n    function ReplayEvent(time, value) {\n        this.time = time;\n        this.value = value;\n    }\n    return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { Subscription } from './Subscription';\nvar AsyncSubject = (function (_super) {\n    tslib_1.__extends(AsyncSubject, _super);\n    function AsyncSubject() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.value = null;\n        _this.hasNext = false;\n        _this.hasCompleted = false;\n        return _this;\n    }\n    AsyncSubject.prototype._subscribe = function (subscriber) {\n        if (this.hasError) {\n            subscriber.error(this.thrownError);\n            return Subscription.EMPTY;\n        }\n        else if (this.hasCompleted && this.hasNext) {\n            subscriber.next(this.value);\n            subscriber.complete();\n            return Subscription.EMPTY;\n        }\n        return _super.prototype._subscribe.call(this, subscriber);\n    };\n    AsyncSubject.prototype.next = function (value) {\n        if (!this.hasCompleted) {\n            this.value = value;\n            this.hasNext = true;\n        }\n    };\n    AsyncSubject.prototype.error = function (error) {\n        if (!this.hasCompleted) {\n            _super.prototype.error.call(this, error);\n        }\n    };\n    AsyncSubject.prototype.complete = function () {\n        this.hasCompleted = true;\n        if (this.hasNext) {\n            _super.prototype.next.call(this, this.value);\n        }\n        _super.prototype.complete.call(this);\n    };\n    return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map","var nextHandle = 1;\nvar RESOLVED = (function () { return Promise.resolve(); })();\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n    if (handle in activeHandles) {\n        delete activeHandles[handle];\n        return true;\n    }\n    return false;\n}\nexport var Immediate = {\n    setImmediate: function (cb) {\n        var handle = nextHandle++;\n        activeHandles[handle] = true;\n        RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); });\n        return handle;\n    },\n    clearImmediate: function (handle) {\n        findAndClearHandle(handle);\n    },\n};\nexport var TestTools = {\n    pending: function () {\n        return Object.keys(activeHandles).length;\n    }\n};\n//# sourceMappingURL=Immediate.js.map","import * as tslib_1 from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nvar AsapAction = (function (_super) {\n    tslib_1.__extends(AsapAction, _super);\n    function AsapAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        return _this;\n    }\n    AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (delay !== null && delay > 0) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        scheduler.actions.push(this);\n        return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n    };\n    AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n        }\n        if (scheduler.actions.length === 0) {\n            Immediate.clearImmediate(id);\n            scheduler.scheduled = undefined;\n        }\n        return undefined;\n    };\n    return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n    tslib_1.__extends(AsapScheduler, _super);\n    function AsapScheduler() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    AsapScheduler.prototype.flush = function (action) {\n        this.active = true;\n        this.scheduled = undefined;\n        var actions = this.actions;\n        var error;\n        var index = -1;\n        var count = actions.length;\n        action = action || actions.shift();\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (++index < count && (action = actions.shift()));\n        this.active = false;\n        if (error) {\n            while (++index < count && (action = actions.shift())) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asap = new AsapScheduler(AsapAction);\n//# sourceMappingURL=asap.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = (function (_super) {\n    tslib_1.__extends(AnimationFrameAction, _super);\n    function AnimationFrameAction(scheduler, work) {\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        return _this;\n    }\n    AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (delay !== null && delay > 0) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        scheduler.actions.push(this);\n        return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n    };\n    AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n        }\n        if (scheduler.actions.length === 0) {\n            cancelAnimationFrame(id);\n            scheduler.scheduled = undefined;\n        }\n        return undefined;\n    };\n    return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n    tslib_1.__extends(AnimationFrameScheduler, _super);\n    function AnimationFrameScheduler() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    AnimationFrameScheduler.prototype.flush = function (action) {\n        this.active = true;\n        this.scheduled = undefined;\n        var actions = this.actions;\n        var error;\n        var index = -1;\n        var count = actions.length;\n        action = action || actions.shift();\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (++index < count && (action = actions.shift()));\n        this.active = false;\n        if (error) {\n            while (++index < count && (action = actions.shift())) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n    tslib_1.__extends(VirtualTimeScheduler, _super);\n    function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n        if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n        if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n        var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n        _this.maxFrames = maxFrames;\n        _this.frame = 0;\n        _this.index = -1;\n        return _this;\n    }\n    VirtualTimeScheduler.prototype.flush = function () {\n        var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n        var error, action;\n        while ((action = actions[0]) && action.delay <= maxFrames) {\n            actions.shift();\n            this.frame = action.delay;\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        }\n        if (error) {\n            while (action = actions.shift()) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    VirtualTimeScheduler.frameTimeFactor = 10;\n    return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n    tslib_1.__extends(VirtualAction, _super);\n    function VirtualAction(scheduler, work, index) {\n        if (index === void 0) { index = scheduler.index += 1; }\n        var _this = _super.call(this, scheduler, work) || this;\n        _this.scheduler = scheduler;\n        _this.work = work;\n        _this.index = index;\n        _this.active = true;\n        _this.index = scheduler.index = index;\n        return _this;\n    }\n    VirtualAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (!this.id) {\n            return _super.prototype.schedule.call(this, state, delay);\n        }\n        this.active = false;\n        var action = new VirtualAction(this.scheduler, this.work);\n        this.add(action);\n        return action.schedule(state, delay);\n    };\n    VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        this.delay = scheduler.frame + delay;\n        var actions = scheduler.actions;\n        actions.push(this);\n        actions.sort(VirtualAction.sortActions);\n        return true;\n    };\n    VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        return undefined;\n    };\n    VirtualAction.prototype._execute = function (state, delay) {\n        if (this.active === true) {\n            return _super.prototype._execute.call(this, state, delay);\n        }\n    };\n    VirtualAction.sortActions = function (a, b) {\n        if (a.delay === b.delay) {\n            if (a.index === b.index) {\n                return 0;\n            }\n            else if (a.index > b.index) {\n                return 1;\n            }\n            else {\n                return -1;\n            }\n        }\n        else if (a.delay > b.delay) {\n            return 1;\n        }\n        else {\n            return -1;\n        }\n    };\n    return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { Observable } from '../Observable';\nexport function isObservable(obj) {\n    return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map","var ArgumentOutOfRangeErrorImpl = (function () {\n    function ArgumentOutOfRangeErrorImpl() {\n        Error.call(this);\n        this.message = 'argument out of range';\n        this.name = 'ArgumentOutOfRangeError';\n        return this;\n    }\n    ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n    return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","var EmptyErrorImpl = (function () {\n    function EmptyErrorImpl() {\n        Error.call(this);\n        this.message = 'no elements in sequence';\n        this.name = 'EmptyError';\n        return this;\n    }\n    EmptyErrorImpl.prototype = Object.create(Error.prototype);\n    return EmptyErrorImpl;\n})();\nexport var EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map","var TimeoutErrorImpl = (function () {\n    function TimeoutErrorImpl() {\n        Error.call(this);\n        this.message = 'Timeout has occurred';\n        this.name = 'TimeoutError';\n        return this;\n    }\n    TimeoutErrorImpl.prototype = Object.create(Error.prototype);\n    return TimeoutErrorImpl;\n})();\nexport var TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n    return function mapOperation(source) {\n        if (typeof project !== 'function') {\n            throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n        }\n        return source.lift(new MapOperator(project, thisArg));\n    };\n}\nvar MapOperator = (function () {\n    function MapOperator(project, thisArg) {\n        this.project = project;\n        this.thisArg = thisArg;\n    }\n    MapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n    };\n    return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = (function (_super) {\n    tslib_1.__extends(MapSubscriber, _super);\n    function MapSubscriber(destination, project, thisArg) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.count = 0;\n        _this.thisArg = thisArg || _this;\n        return _this;\n    }\n    MapSubscriber.prototype._next = function (value) {\n        var result;\n        try {\n            result = this.project.call(this.thisArg, value, this.count++);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n    if (resultSelector) {\n        if (isScheduler(resultSelector)) {\n            scheduler = resultSelector;\n        }\n        else {\n            return function () {\n                var args = [];\n                for (var _i = 0; _i < arguments.length; _i++) {\n                    args[_i] = arguments[_i];\n                }\n                return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n            };\n        }\n    }\n    return function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        var context = this;\n        var subject;\n        var params = {\n            context: context,\n            subject: subject,\n            callbackFunc: callbackFunc,\n            scheduler: scheduler,\n        };\n        return new Observable(function (subscriber) {\n            if (!scheduler) {\n                if (!subject) {\n                    subject = new AsyncSubject();\n                    var handler = function () {\n                        var innerArgs = [];\n                        for (var _i = 0; _i < arguments.length; _i++) {\n                            innerArgs[_i] = arguments[_i];\n                        }\n                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n                        subject.complete();\n                    };\n                    try {\n                        callbackFunc.apply(context, args.concat([handler]));\n                    }\n                    catch (err) {\n                        if (canReportError(subject)) {\n                            subject.error(err);\n                        }\n                        else {\n                            console.warn(err);\n                        }\n                    }\n                }\n                return subject.subscribe(subscriber);\n            }\n            else {\n                var state = {\n                    args: args, subscriber: subscriber, params: params,\n                };\n                return scheduler.schedule(dispatch, 0, state);\n            }\n        });\n    };\n}\nfunction dispatch(state) {\n    var _this = this;\n    var self = this;\n    var args = state.args, subscriber = state.subscriber, params = state.params;\n    var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n    var subject = params.subject;\n    if (!subject) {\n        subject = params.subject = new AsyncSubject();\n        var handler = function () {\n            var innerArgs = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                innerArgs[_i] = arguments[_i];\n            }\n            var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n            _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n        };\n        try {\n            callbackFunc.apply(context, args.concat([handler]));\n        }\n        catch (err) {\n            subject.error(err);\n        }\n    }\n    this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n    var value = state.value, subject = state.subject;\n    subject.next(value);\n    subject.complete();\n}\nfunction dispatchError(state) {\n    var err = state.err, subject = state.subject;\n    subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nexport function bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n    if (resultSelector) {\n        if (isScheduler(resultSelector)) {\n            scheduler = resultSelector;\n        }\n        else {\n            return function () {\n                var args = [];\n                for (var _i = 0; _i < arguments.length; _i++) {\n                    args[_i] = arguments[_i];\n                }\n                return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n            };\n        }\n    }\n    return function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        var params = {\n            subject: undefined,\n            args: args,\n            callbackFunc: callbackFunc,\n            scheduler: scheduler,\n            context: this,\n        };\n        return new Observable(function (subscriber) {\n            var context = params.context;\n            var subject = params.subject;\n            if (!scheduler) {\n                if (!subject) {\n                    subject = params.subject = new AsyncSubject();\n                    var handler = function () {\n                        var innerArgs = [];\n                        for (var _i = 0; _i < arguments.length; _i++) {\n                            innerArgs[_i] = arguments[_i];\n                        }\n                        var err = innerArgs.shift();\n                        if (err) {\n                            subject.error(err);\n                            return;\n                        }\n                        subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n                        subject.complete();\n                    };\n                    try {\n                        callbackFunc.apply(context, args.concat([handler]));\n                    }\n                    catch (err) {\n                        if (canReportError(subject)) {\n                            subject.error(err);\n                        }\n                        else {\n                            console.warn(err);\n                        }\n                    }\n                }\n                return subject.subscribe(subscriber);\n            }\n            else {\n                return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n            }\n        });\n    };\n}\nfunction dispatch(state) {\n    var _this = this;\n    var params = state.params, subscriber = state.subscriber, context = state.context;\n    var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n    var subject = params.subject;\n    if (!subject) {\n        subject = params.subject = new AsyncSubject();\n        var handler = function () {\n            var innerArgs = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                innerArgs[_i] = arguments[_i];\n            }\n            var err = innerArgs.shift();\n            if (err) {\n                _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n            }\n            else {\n                var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n                _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n            }\n        };\n        try {\n            callbackFunc.apply(context, args.concat([handler]));\n        }\n        catch (err) {\n            this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n        }\n    }\n    this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n    var value = arg.value, subject = arg.subject;\n    subject.next(value);\n    subject.complete();\n}\nfunction dispatchError(arg) {\n    var err = arg.err, subject = arg.subject;\n    subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = (function (_super) {\n    tslib_1.__extends(OuterSubscriber, _super);\n    function OuterSubscriber() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n        this.destination.error(error);\n    };\n    OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.destination.complete();\n    };\n    return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = (function (_super) {\n    tslib_1.__extends(InnerSubscriber, _super);\n    function InnerSubscriber(parent, outerValue, outerIndex) {\n        var _this = _super.call(this) || this;\n        _this.parent = parent;\n        _this.outerValue = outerValue;\n        _this.outerIndex = outerIndex;\n        _this.index = 0;\n        return _this;\n    }\n    InnerSubscriber.prototype._next = function (value) {\n        this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n    };\n    InnerSubscriber.prototype._error = function (error) {\n        this.parent.notifyError(error, this);\n        this.unsubscribe();\n    };\n    InnerSubscriber.prototype._complete = function () {\n        this.parent.notifyComplete(this);\n        this.unsubscribe();\n    };\n    return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map","import { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) { return function (subscriber) {\n    promise.then(function (value) {\n        if (!subscriber.closed) {\n            subscriber.next(value);\n            subscriber.complete();\n        }\n    }, function (err) { return subscriber.error(err); })\n        .then(null, hostReportError);\n    return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map","export function getSymbolIterator() {\n    if (typeof Symbol !== 'function' || !Symbol.iterator) {\n        return '@@iterator';\n    }\n    return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) { return function (subscriber) {\n    var iterator = iterable[Symbol_iterator]();\n    do {\n        var item = iterator.next();\n        if (item.done) {\n            subscriber.complete();\n            break;\n        }\n        subscriber.next(item.value);\n        if (subscriber.closed) {\n            break;\n        }\n    } while (true);\n    if (typeof iterator.return === 'function') {\n        subscriber.add(function () {\n            if (iterator.return) {\n                iterator.return();\n            }\n        });\n    }\n    return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) { return function (subscriber) {\n    var obs = obj[Symbol_observable]();\n    if (typeof obs.subscribe !== 'function') {\n        throw new TypeError('Provided object does not correctly implement Symbol.observable');\n    }\n    else {\n        return obs.subscribe(subscriber);\n    }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n    return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n    if (!!result && typeof result[Symbol_observable] === 'function') {\n        return subscribeToObservable(result);\n    }\n    else if (isArrayLike(result)) {\n        return subscribeToArray(result);\n    }\n    else if (isPromise(result)) {\n        return subscribeToPromise(result);\n    }\n    else if (!!result && typeof result[Symbol_iterator] === 'function') {\n        return subscribeToIterable(result);\n    }\n    else {\n        var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n        var msg = \"You provided \" + value + \" where a stream was expected.\"\n            + ' You can provide an Observable, Promise, Array, or Iterable.';\n        throw new TypeError(msg);\n    }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n    if (innerSubscriber === void 0) { innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }\n    if (innerSubscriber.closed) {\n        return undefined;\n    }\n    if (result instanceof Observable) {\n        return result.subscribe(innerSubscriber);\n    }\n    return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    var resultSelector = null;\n    var scheduler = null;\n    if (isScheduler(observables[observables.length - 1])) {\n        scheduler = observables.pop();\n    }\n    if (typeof observables[observables.length - 1] === 'function') {\n        resultSelector = observables.pop();\n    }\n    if (observables.length === 1 && isArray(observables[0])) {\n        observables = observables[0];\n    }\n    return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n    function CombineLatestOperator(resultSelector) {\n        this.resultSelector = resultSelector;\n    }\n    CombineLatestOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n    };\n    return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = (function (_super) {\n    tslib_1.__extends(CombineLatestSubscriber, _super);\n    function CombineLatestSubscriber(destination, resultSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.resultSelector = resultSelector;\n        _this.active = 0;\n        _this.values = [];\n        _this.observables = [];\n        return _this;\n    }\n    CombineLatestSubscriber.prototype._next = function (observable) {\n        this.values.push(NONE);\n        this.observables.push(observable);\n    };\n    CombineLatestSubscriber.prototype._complete = function () {\n        var observables = this.observables;\n        var len = observables.length;\n        if (len === 0) {\n            this.destination.complete();\n        }\n        else {\n            this.active = len;\n            this.toRespond = len;\n            for (var i = 0; i < len; i++) {\n                var observable = observables[i];\n                this.add(subscribeToResult(this, observable, observable, i));\n            }\n        }\n    };\n    CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n        if ((this.active -= 1) === 0) {\n            this.destination.complete();\n        }\n    };\n    CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var values = this.values;\n        var oldVal = values[outerIndex];\n        var toRespond = !this.toRespond\n            ? 0\n            : oldVal === NONE ? --this.toRespond : this.toRespond;\n        values[outerIndex] = innerValue;\n        if (toRespond === 0) {\n            if (this.resultSelector) {\n                this._tryResultSelector(values);\n            }\n            else {\n                this.destination.next(values.slice());\n            }\n        }\n    };\n    CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n        var result;\n        try {\n            result = this.resultSelector.apply(this, values);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n    return new Observable(function (subscriber) {\n        var sub = new Subscription();\n        sub.add(scheduler.schedule(function () {\n            var observable = input[Symbol_observable]();\n            sub.add(observable.subscribe({\n                next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n                error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n                complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n            }));\n        }));\n        return sub;\n    });\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n    return new Observable(function (subscriber) {\n        var sub = new Subscription();\n        sub.add(scheduler.schedule(function () { return input.then(function (value) {\n            sub.add(scheduler.schedule(function () {\n                subscriber.next(value);\n                sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n            }));\n        }, function (err) {\n            sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n        }); }));\n        return sub;\n    });\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n    if (!input) {\n        throw new Error('Iterable cannot be null');\n    }\n    return new Observable(function (subscriber) {\n        var sub = new Subscription();\n        var iterator;\n        sub.add(function () {\n            if (iterator && typeof iterator.return === 'function') {\n                iterator.return();\n            }\n        });\n        sub.add(scheduler.schedule(function () {\n            iterator = input[Symbol_iterator]();\n            sub.add(scheduler.schedule(function () {\n                if (subscriber.closed) {\n                    return;\n                }\n                var value;\n                var done;\n                try {\n                    var result = iterator.next();\n                    value = result.value;\n                    done = result.done;\n                }\n                catch (err) {\n                    subscriber.error(err);\n                    return;\n                }\n                if (done) {\n                    subscriber.complete();\n                }\n                else {\n                    subscriber.next(value);\n                    this.schedule();\n                }\n            }));\n        }));\n        return sub;\n    });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n    return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n    return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n    if (input != null) {\n        if (isInteropObservable(input)) {\n            return scheduleObservable(input, scheduler);\n        }\n        else if (isPromise(input)) {\n            return schedulePromise(input, scheduler);\n        }\n        else if (isArrayLike(input)) {\n            return scheduleArray(input, scheduler);\n        }\n        else if (isIterable(input) || typeof input === 'string') {\n            return scheduleIterable(input, scheduler);\n        }\n    }\n    throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n    if (!scheduler) {\n        if (input instanceof Observable) {\n            return input;\n        }\n        return new Observable(subscribeTo(input));\n    }\n    else {\n        return scheduled(input, scheduler);\n    }\n}\n//# sourceMappingURL=from.js.map","import * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    if (typeof resultSelector === 'function') {\n        return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n    }\n    else if (typeof resultSelector === 'number') {\n        concurrent = resultSelector;\n    }\n    return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n    function MergeMapOperator(project, concurrent) {\n        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n        this.project = project;\n        this.concurrent = concurrent;\n    }\n    MergeMapOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n    };\n    return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = (function (_super) {\n    tslib_1.__extends(MergeMapSubscriber, _super);\n    function MergeMapSubscriber(destination, project, concurrent) {\n        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.concurrent = concurrent;\n        _this.hasCompleted = false;\n        _this.buffer = [];\n        _this.active = 0;\n        _this.index = 0;\n        return _this;\n    }\n    MergeMapSubscriber.prototype._next = function (value) {\n        if (this.active < this.concurrent) {\n            this._tryNext(value);\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    MergeMapSubscriber.prototype._tryNext = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.active++;\n        this._innerSub(result, value, index);\n    };\n    MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n        var innerSubscriber = new InnerSubscriber(this, value, index);\n        var destination = this.destination;\n        destination.add(innerSubscriber);\n        var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);\n        if (innerSubscription !== innerSubscriber) {\n            destination.add(innerSubscription);\n        }\n    };\n    MergeMapSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0 && this.buffer.length === 0) {\n            this.destination.complete();\n        }\n        this.unsubscribe();\n    };\n    MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        this.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        else if (this.active === 0 && this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n    return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n    return new Observable(function (subscriber) {\n        var input;\n        try {\n            input = observableFactory();\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        var source = input ? from(input) : empty();\n        return source.subscribe(subscriber);\n    });\n}\n//# sourceMappingURL=defer.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin() {\n    var sources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        sources[_i] = arguments[_i];\n    }\n    if (sources.length === 1) {\n        var first_1 = sources[0];\n        if (isArray(first_1)) {\n            return forkJoinInternal(first_1, null);\n        }\n        if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n            var keys = Object.keys(first_1);\n            return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys);\n        }\n    }\n    if (typeof sources[sources.length - 1] === 'function') {\n        var resultSelector_1 = sources.pop();\n        sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n        return forkJoinInternal(sources, null).pipe(map(function (args) { return resultSelector_1.apply(void 0, args); }));\n    }\n    return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n    return new Observable(function (subscriber) {\n        var len = sources.length;\n        if (len === 0) {\n            subscriber.complete();\n            return;\n        }\n        var values = new Array(len);\n        var completed = 0;\n        var emitted = 0;\n        var _loop_1 = function (i) {\n            var source = from(sources[i]);\n            var hasValue = false;\n            subscriber.add(source.subscribe({\n                next: function (value) {\n                    if (!hasValue) {\n                        hasValue = true;\n                        emitted++;\n                    }\n                    values[i] = value;\n                },\n                error: function (err) { return subscriber.error(err); },\n                complete: function () {\n                    completed++;\n                    if (completed === len || !hasValue) {\n                        if (emitted === len) {\n                            subscriber.next(keys ?\n                                keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) :\n                                values);\n                        }\n                        subscriber.complete();\n                    }\n                }\n            }));\n        };\n        for (var i = 0; i < len; i++) {\n            _loop_1(i);\n        }\n    });\n}\n//# sourceMappingURL=forkJoin.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = (function () { return Object.prototype.toString; })();\nexport function fromEvent(target, eventName, options, resultSelector) {\n    if (isFunction(options)) {\n        resultSelector = options;\n        options = undefined;\n    }\n    if (resultSelector) {\n        return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n    }\n    return new Observable(function (subscriber) {\n        function handler(e) {\n            if (arguments.length > 1) {\n                subscriber.next(Array.prototype.slice.call(arguments));\n            }\n            else {\n                subscriber.next(e);\n            }\n        }\n        setupSubscription(target, eventName, handler, subscriber, options);\n    });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n    var unsubscribe;\n    if (isEventTarget(sourceObj)) {\n        var source_1 = sourceObj;\n        sourceObj.addEventListener(eventName, handler, options);\n        unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n    }\n    else if (isJQueryStyleEventEmitter(sourceObj)) {\n        var source_2 = sourceObj;\n        sourceObj.on(eventName, handler);\n        unsubscribe = function () { return source_2.off(eventName, handler); };\n    }\n    else if (isNodeStyleEventEmitter(sourceObj)) {\n        var source_3 = sourceObj;\n        sourceObj.addListener(eventName, handler);\n        unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n    }\n    else if (sourceObj && sourceObj.length) {\n        for (var i = 0, len = sourceObj.length; i < len; i++) {\n            setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n        }\n    }\n    else {\n        throw new TypeError('Invalid event target');\n    }\n    subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n    return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n    return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n    return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n    if (resultSelector) {\n        return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n    }\n    return new Observable(function (subscriber) {\n        var handler = function () {\n            var e = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                e[_i] = arguments[_i];\n            }\n            return subscriber.next(e.length === 1 ? e[0] : e);\n        };\n        var retValue;\n        try {\n            retValue = addHandler(handler);\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        if (!isFunction(removeHandler)) {\n            return undefined;\n        }\n        return function () { return removeHandler(handler, retValue); };\n    });\n}\n//# sourceMappingURL=fromEventPattern.js.map","import { Observable } from '../Observable';\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n    var resultSelector;\n    var initialState;\n    if (arguments.length == 1) {\n        var options = initialStateOrOptions;\n        initialState = options.initialState;\n        condition = options.condition;\n        iterate = options.iterate;\n        resultSelector = options.resultSelector || identity;\n        scheduler = options.scheduler;\n    }\n    else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n        initialState = initialStateOrOptions;\n        resultSelector = identity;\n        scheduler = resultSelectorOrObservable;\n    }\n    else {\n        initialState = initialStateOrOptions;\n        resultSelector = resultSelectorOrObservable;\n    }\n    return new Observable(function (subscriber) {\n        var state = initialState;\n        if (scheduler) {\n            return scheduler.schedule(dispatch, 0, {\n                subscriber: subscriber,\n                iterate: iterate,\n                condition: condition,\n                resultSelector: resultSelector,\n                state: state\n            });\n        }\n        do {\n            if (condition) {\n                var conditionResult = void 0;\n                try {\n                    conditionResult = condition(state);\n                }\n                catch (err) {\n                    subscriber.error(err);\n                    return undefined;\n                }\n                if (!conditionResult) {\n                    subscriber.complete();\n                    break;\n                }\n            }\n            var value = void 0;\n            try {\n                value = resultSelector(state);\n            }\n            catch (err) {\n                subscriber.error(err);\n                return undefined;\n            }\n            subscriber.next(value);\n            if (subscriber.closed) {\n                break;\n            }\n            try {\n                state = iterate(state);\n            }\n            catch (err) {\n                subscriber.error(err);\n                return undefined;\n            }\n        } while (true);\n        return undefined;\n    });\n}\nfunction dispatch(state) {\n    var subscriber = state.subscriber, condition = state.condition;\n    if (subscriber.closed) {\n        return undefined;\n    }\n    if (state.needIterate) {\n        try {\n            state.state = state.iterate(state.state);\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n    }\n    else {\n        state.needIterate = true;\n    }\n    if (condition) {\n        var conditionResult = void 0;\n        try {\n            conditionResult = condition(state.state);\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        if (!conditionResult) {\n            subscriber.complete();\n            return undefined;\n        }\n        if (subscriber.closed) {\n            return undefined;\n        }\n    }\n    var value;\n    try {\n        value = state.resultSelector(state.state);\n    }\n    catch (err) {\n        subscriber.error(err);\n        return undefined;\n    }\n    if (subscriber.closed) {\n        return undefined;\n    }\n    subscriber.next(value);\n    if (subscriber.closed) {\n        return undefined;\n    }\n    return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map","import { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n    if (trueResult === void 0) { trueResult = EMPTY; }\n    if (falseResult === void 0) { falseResult = EMPTY; }\n    return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map","import { isArray } from './isArray';\nexport function isNumeric(val) {\n    return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period, scheduler) {\n    if (period === void 0) { period = 0; }\n    if (scheduler === void 0) { scheduler = async; }\n    if (!isNumeric(period) || period < 0) {\n        period = 0;\n    }\n    if (!scheduler || typeof scheduler.schedule !== 'function') {\n        scheduler = async;\n    }\n    return new Observable(function (subscriber) {\n        subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n        return subscriber;\n    });\n}\nfunction dispatch(state) {\n    var subscriber = state.subscriber, counter = state.counter, period = state.period;\n    subscriber.next(counter);\n    this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    var concurrent = Number.POSITIVE_INFINITY;\n    var scheduler = null;\n    var last = observables[observables.length - 1];\n    if (isScheduler(last)) {\n        scheduler = observables.pop();\n        if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n            concurrent = observables.pop();\n        }\n    }\n    else if (typeof last === 'number') {\n        concurrent = observables.pop();\n    }\n    if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n        return observables[0];\n    }\n    return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n    return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nexport function onErrorResumeNext() {\n    var sources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        sources[_i] = arguments[_i];\n    }\n    if (sources.length === 0) {\n        return EMPTY;\n    }\n    var first = sources[0], remainder = sources.slice(1);\n    if (sources.length === 1 && isArray(first)) {\n        return onErrorResumeNext.apply(void 0, first);\n    }\n    return new Observable(function (subscriber) {\n        var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n        return from(first).subscribe({\n            next: function (value) { subscriber.next(value); },\n            error: subNext,\n            complete: subNext,\n        });\n    });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function pairs(obj, scheduler) {\n    if (!scheduler) {\n        return new Observable(function (subscriber) {\n            var keys = Object.keys(obj);\n            for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n                var key = keys[i];\n                if (obj.hasOwnProperty(key)) {\n                    subscriber.next([key, obj[key]]);\n                }\n            }\n            subscriber.complete();\n        });\n    }\n    else {\n        return new Observable(function (subscriber) {\n            var keys = Object.keys(obj);\n            var subscription = new Subscription();\n            subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n            return subscription;\n        });\n    }\n}\nexport function dispatch(state) {\n    var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n    if (!subscriber.closed) {\n        if (index < keys.length) {\n            var key = keys[index];\n            subscriber.next([key, obj[key]]);\n            subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n        }\n        else {\n            subscriber.complete();\n        }\n    }\n}\n//# sourceMappingURL=pairs.js.map","export function not(pred, thisArg) {\n    function notPred() {\n        return !(notPred.pred.apply(notPred.thisArg, arguments));\n    }\n    notPred.pred = pred;\n    notPred.thisArg = thisArg;\n    return notPred;\n}\n//# sourceMappingURL=not.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n    return function filterOperatorFunction(source) {\n        return source.lift(new FilterOperator(predicate, thisArg));\n    };\n}\nvar FilterOperator = (function () {\n    function FilterOperator(predicate, thisArg) {\n        this.predicate = predicate;\n        this.thisArg = thisArg;\n    }\n    FilterOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n    };\n    return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n    tslib_1.__extends(FilterSubscriber, _super);\n    function FilterSubscriber(destination, predicate, thisArg) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.thisArg = thisArg;\n        _this.count = 0;\n        return _this;\n    }\n    FilterSubscriber.prototype._next = function (value) {\n        var result;\n        try {\n            result = this.predicate.call(this.thisArg, value, this.count++);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            this.destination.next(value);\n        }\n    };\n    return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map","import { not } from '../util/not';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { filter } from '../operators/filter';\nimport { Observable } from '../Observable';\nexport function partition(source, predicate, thisArg) {\n    return [\n        filter(predicate, thisArg)(new Observable(subscribeTo(source))),\n        filter(not(predicate, thisArg))(new Observable(subscribeTo(source)))\n    ];\n}\n//# sourceMappingURL=partition.js.map","import * as tslib_1 from \"tslib\";\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    if (observables.length === 1) {\n        if (isArray(observables[0])) {\n            observables = observables[0];\n        }\n        else {\n            return observables[0];\n        }\n    }\n    return fromArray(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = (function () {\n    function RaceOperator() {\n    }\n    RaceOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RaceSubscriber(subscriber));\n    };\n    return RaceOperator;\n}());\nexport { RaceOperator };\nvar RaceSubscriber = (function (_super) {\n    tslib_1.__extends(RaceSubscriber, _super);\n    function RaceSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasFirst = false;\n        _this.observables = [];\n        _this.subscriptions = [];\n        return _this;\n    }\n    RaceSubscriber.prototype._next = function (observable) {\n        this.observables.push(observable);\n    };\n    RaceSubscriber.prototype._complete = function () {\n        var observables = this.observables;\n        var len = observables.length;\n        if (len === 0) {\n            this.destination.complete();\n        }\n        else {\n            for (var i = 0; i < len && !this.hasFirst; i++) {\n                var observable = observables[i];\n                var subscription = subscribeToResult(this, observable, observable, i);\n                if (this.subscriptions) {\n                    this.subscriptions.push(subscription);\n                }\n                this.add(subscription);\n            }\n            this.observables = null;\n        }\n    };\n    RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (!this.hasFirst) {\n            this.hasFirst = true;\n            for (var i = 0; i < this.subscriptions.length; i++) {\n                if (i !== outerIndex) {\n                    var subscription = this.subscriptions[i];\n                    subscription.unsubscribe();\n                    this.remove(subscription);\n                }\n            }\n            this.subscriptions = null;\n        }\n        this.destination.next(innerValue);\n    };\n    return RaceSubscriber;\n}(OuterSubscriber));\nexport { RaceSubscriber };\n//# sourceMappingURL=race.js.map","import { Observable } from '../Observable';\nexport function range(start, count, scheduler) {\n    if (start === void 0) { start = 0; }\n    return new Observable(function (subscriber) {\n        if (count === undefined) {\n            count = start;\n            start = 0;\n        }\n        var index = 0;\n        var current = start;\n        if (scheduler) {\n            return scheduler.schedule(dispatch, 0, {\n                index: index, count: count, start: start, subscriber: subscriber\n            });\n        }\n        else {\n            do {\n                if (index++ >= count) {\n                    subscriber.complete();\n                    break;\n                }\n                subscriber.next(current++);\n                if (subscriber.closed) {\n                    break;\n                }\n            } while (true);\n        }\n        return undefined;\n    });\n}\nexport function dispatch(state) {\n    var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n    if (index >= count) {\n        subscriber.complete();\n        return;\n    }\n    subscriber.next(start);\n    if (subscriber.closed) {\n        return;\n    }\n    state.index = index + 1;\n    state.start = start + 1;\n    this.schedule(state);\n}\n//# sourceMappingURL=range.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime, periodOrScheduler, scheduler) {\n    if (dueTime === void 0) { dueTime = 0; }\n    var period = -1;\n    if (isNumeric(periodOrScheduler)) {\n        period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n    }\n    else if (isScheduler(periodOrScheduler)) {\n        scheduler = periodOrScheduler;\n    }\n    if (!isScheduler(scheduler)) {\n        scheduler = async;\n    }\n    return new Observable(function (subscriber) {\n        var due = isNumeric(dueTime)\n            ? dueTime\n            : (+dueTime - scheduler.now());\n        return scheduler.schedule(dispatch, due, {\n            index: 0, period: period, subscriber: subscriber\n        });\n    });\n}\nfunction dispatch(state) {\n    var index = state.index, period = state.period, subscriber = state.subscriber;\n    subscriber.next(index);\n    if (subscriber.closed) {\n        return;\n    }\n    else if (period === -1) {\n        return subscriber.complete();\n    }\n    state.index = index + 1;\n    this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function using(resourceFactory, observableFactory) {\n    return new Observable(function (subscriber) {\n        var resource;\n        try {\n            resource = resourceFactory();\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        var result;\n        try {\n            result = observableFactory(resource);\n        }\n        catch (err) {\n            subscriber.error(err);\n            return undefined;\n        }\n        var source = result ? from(result) : EMPTY;\n        var subscription = source.subscribe(subscriber);\n        return function () {\n            subscription.unsubscribe();\n            if (resource) {\n                resource.unsubscribe();\n            }\n        };\n    });\n}\n//# sourceMappingURL=using.js.map","import * as tslib_1 from \"tslib\";\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nexport function zip() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    var resultSelector = observables[observables.length - 1];\n    if (typeof resultSelector === 'function') {\n        observables.pop();\n    }\n    return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = (function () {\n    function ZipOperator(resultSelector) {\n        this.resultSelector = resultSelector;\n    }\n    ZipOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n    };\n    return ZipOperator;\n}());\nexport { ZipOperator };\nvar ZipSubscriber = (function (_super) {\n    tslib_1.__extends(ZipSubscriber, _super);\n    function ZipSubscriber(destination, resultSelector, values) {\n        if (values === void 0) { values = Object.create(null); }\n        var _this = _super.call(this, destination) || this;\n        _this.iterators = [];\n        _this.active = 0;\n        _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;\n        _this.values = values;\n        return _this;\n    }\n    ZipSubscriber.prototype._next = function (value) {\n        var iterators = this.iterators;\n        if (isArray(value)) {\n            iterators.push(new StaticArrayIterator(value));\n        }\n        else if (typeof value[Symbol_iterator] === 'function') {\n            iterators.push(new StaticIterator(value[Symbol_iterator]()));\n        }\n        else {\n            iterators.push(new ZipBufferIterator(this.destination, this, value));\n        }\n    };\n    ZipSubscriber.prototype._complete = function () {\n        var iterators = this.iterators;\n        var len = iterators.length;\n        this.unsubscribe();\n        if (len === 0) {\n            this.destination.complete();\n            return;\n        }\n        this.active = len;\n        for (var i = 0; i < len; i++) {\n            var iterator = iterators[i];\n            if (iterator.stillUnsubscribed) {\n                var destination = this.destination;\n                destination.add(iterator.subscribe(iterator, i));\n            }\n            else {\n                this.active--;\n            }\n        }\n    };\n    ZipSubscriber.prototype.notifyInactive = function () {\n        this.active--;\n        if (this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    ZipSubscriber.prototype.checkIterators = function () {\n        var iterators = this.iterators;\n        var len = iterators.length;\n        var destination = this.destination;\n        for (var i = 0; i < len; i++) {\n            var iterator = iterators[i];\n            if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n                return;\n            }\n        }\n        var shouldComplete = false;\n        var args = [];\n        for (var i = 0; i < len; i++) {\n            var iterator = iterators[i];\n            var result = iterator.next();\n            if (iterator.hasCompleted()) {\n                shouldComplete = true;\n            }\n            if (result.done) {\n                destination.complete();\n                return;\n            }\n            args.push(result.value);\n        }\n        if (this.resultSelector) {\n            this._tryresultSelector(args);\n        }\n        else {\n            destination.next(args);\n        }\n        if (shouldComplete) {\n            destination.complete();\n        }\n    };\n    ZipSubscriber.prototype._tryresultSelector = function (args) {\n        var result;\n        try {\n            result = this.resultSelector.apply(this, args);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return ZipSubscriber;\n}(Subscriber));\nexport { ZipSubscriber };\nvar StaticIterator = (function () {\n    function StaticIterator(iterator) {\n        this.iterator = iterator;\n        this.nextResult = iterator.next();\n    }\n    StaticIterator.prototype.hasValue = function () {\n        return true;\n    };\n    StaticIterator.prototype.next = function () {\n        var result = this.nextResult;\n        this.nextResult = this.iterator.next();\n        return result;\n    };\n    StaticIterator.prototype.hasCompleted = function () {\n        var nextResult = this.nextResult;\n        return nextResult && nextResult.done;\n    };\n    return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n    function StaticArrayIterator(array) {\n        this.array = array;\n        this.index = 0;\n        this.length = 0;\n        this.length = array.length;\n    }\n    StaticArrayIterator.prototype[Symbol_iterator] = function () {\n        return this;\n    };\n    StaticArrayIterator.prototype.next = function (value) {\n        var i = this.index++;\n        var array = this.array;\n        return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n    };\n    StaticArrayIterator.prototype.hasValue = function () {\n        return this.array.length > this.index;\n    };\n    StaticArrayIterator.prototype.hasCompleted = function () {\n        return this.array.length === this.index;\n    };\n    return StaticArrayIterator;\n}());\nvar ZipBufferIterator = (function (_super) {\n    tslib_1.__extends(ZipBufferIterator, _super);\n    function ZipBufferIterator(destination, parent, observable) {\n        var _this = _super.call(this, destination) || this;\n        _this.parent = parent;\n        _this.observable = observable;\n        _this.stillUnsubscribed = true;\n        _this.buffer = [];\n        _this.isComplete = false;\n        return _this;\n    }\n    ZipBufferIterator.prototype[Symbol_iterator] = function () {\n        return this;\n    };\n    ZipBufferIterator.prototype.next = function () {\n        var buffer = this.buffer;\n        if (buffer.length === 0 && this.isComplete) {\n            return { value: null, done: true };\n        }\n        else {\n            return { value: buffer.shift(), done: false };\n        }\n    };\n    ZipBufferIterator.prototype.hasValue = function () {\n        return this.buffer.length > 0;\n    };\n    ZipBufferIterator.prototype.hasCompleted = function () {\n        return this.buffer.length === 0 && this.isComplete;\n    };\n    ZipBufferIterator.prototype.notifyComplete = function () {\n        if (this.buffer.length > 0) {\n            this.isComplete = true;\n            this.parent.notifyInactive();\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.buffer.push(innerValue);\n        this.parent.checkIterators();\n    };\n    ZipBufferIterator.prototype.subscribe = function (value, index) {\n        return subscribeToResult(this, this.observable, this, index);\n    };\n    return ZipBufferIterator;\n}(OuterSubscriber));\n//# sourceMappingURL=zip.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function audit(durationSelector) {\n    return function auditOperatorFunction(source) {\n        return source.lift(new AuditOperator(durationSelector));\n    };\n}\nvar AuditOperator = (function () {\n    function AuditOperator(durationSelector) {\n        this.durationSelector = durationSelector;\n    }\n    AuditOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n    };\n    return AuditOperator;\n}());\nvar AuditSubscriber = (function (_super) {\n    tslib_1.__extends(AuditSubscriber, _super);\n    function AuditSubscriber(destination, durationSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.durationSelector = durationSelector;\n        _this.hasValue = false;\n        return _this;\n    }\n    AuditSubscriber.prototype._next = function (value) {\n        this.value = value;\n        this.hasValue = true;\n        if (!this.throttled) {\n            var duration = void 0;\n            try {\n                var durationSelector = this.durationSelector;\n                duration = durationSelector(value);\n            }\n            catch (err) {\n                return this.destination.error(err);\n            }\n            var innerSubscription = subscribeToResult(this, duration);\n            if (!innerSubscription || innerSubscription.closed) {\n                this.clearThrottle();\n            }\n            else {\n                this.add(this.throttled = innerSubscription);\n            }\n        }\n    };\n    AuditSubscriber.prototype.clearThrottle = function () {\n        var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n        if (throttled) {\n            this.remove(throttled);\n            this.throttled = null;\n            throttled.unsubscribe();\n        }\n        if (hasValue) {\n            this.value = null;\n            this.hasValue = false;\n            this.destination.next(value);\n        }\n    };\n    AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n        this.clearThrottle();\n    };\n    AuditSubscriber.prototype.notifyComplete = function () {\n        this.clearThrottle();\n    };\n    return AuditSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=audit.js.map","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function buffer(closingNotifier) {\n    return function bufferOperatorFunction(source) {\n        return source.lift(new BufferOperator(closingNotifier));\n    };\n}\nvar BufferOperator = (function () {\n    function BufferOperator(closingNotifier) {\n        this.closingNotifier = closingNotifier;\n    }\n    BufferOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n    };\n    return BufferOperator;\n}());\nvar BufferSubscriber = (function (_super) {\n    tslib_1.__extends(BufferSubscriber, _super);\n    function BufferSubscriber(destination, closingNotifier) {\n        var _this = _super.call(this, destination) || this;\n        _this.buffer = [];\n        _this.add(subscribeToResult(_this, closingNotifier));\n        return _this;\n    }\n    BufferSubscriber.prototype._next = function (value) {\n        this.buffer.push(value);\n    };\n    BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var buffer = this.buffer;\n        this.buffer = [];\n        this.destination.next(buffer);\n    };\n    return BufferSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=buffer.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n    if (startBufferEvery === void 0) { startBufferEvery = null; }\n    return function bufferCountOperatorFunction(source) {\n        return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n    };\n}\nvar BufferCountOperator = (function () {\n    function BufferCountOperator(bufferSize, startBufferEvery) {\n        this.bufferSize = bufferSize;\n        this.startBufferEvery = startBufferEvery;\n        if (!startBufferEvery || bufferSize === startBufferEvery) {\n            this.subscriberClass = BufferCountSubscriber;\n        }\n        else {\n            this.subscriberClass = BufferSkipCountSubscriber;\n        }\n    }\n    BufferCountOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n    };\n    return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n    tslib_1.__extends(BufferCountSubscriber, _super);\n    function BufferCountSubscriber(destination, bufferSize) {\n        var _this = _super.call(this, destination) || this;\n        _this.bufferSize = bufferSize;\n        _this.buffer = [];\n        return _this;\n    }\n    BufferCountSubscriber.prototype._next = function (value) {\n        var buffer = this.buffer;\n        buffer.push(value);\n        if (buffer.length == this.bufferSize) {\n            this.destination.next(buffer);\n            this.buffer = [];\n        }\n    };\n    BufferCountSubscriber.prototype._complete = function () {\n        var buffer = this.buffer;\n        if (buffer.length > 0) {\n            this.destination.next(buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = (function (_super) {\n    tslib_1.__extends(BufferSkipCountSubscriber, _super);\n    function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n        var _this = _super.call(this, destination) || this;\n        _this.bufferSize = bufferSize;\n        _this.startBufferEvery = startBufferEvery;\n        _this.buffers = [];\n        _this.count = 0;\n        return _this;\n    }\n    BufferSkipCountSubscriber.prototype._next = function (value) {\n        var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n        this.count++;\n        if (count % startBufferEvery === 0) {\n            buffers.push([]);\n        }\n        for (var i = buffers.length; i--;) {\n            var buffer = buffers[i];\n            buffer.push(value);\n            if (buffer.length === bufferSize) {\n                buffers.splice(i, 1);\n                this.destination.next(buffer);\n            }\n        }\n    };\n    BufferSkipCountSubscriber.prototype._complete = function () {\n        var _a = this, buffers = _a.buffers, destination = _a.destination;\n        while (buffers.length > 0) {\n            var buffer = buffers.shift();\n            if (buffer.length > 0) {\n                destination.next(buffer);\n            }\n        }\n        _super.prototype._complete.call(this);\n    };\n    return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n    var length = arguments.length;\n    var scheduler = async;\n    if (isScheduler(arguments[arguments.length - 1])) {\n        scheduler = arguments[arguments.length - 1];\n        length--;\n    }\n    var bufferCreationInterval = null;\n    if (length >= 2) {\n        bufferCreationInterval = arguments[1];\n    }\n    var maxBufferSize = Number.POSITIVE_INFINITY;\n    if (length >= 3) {\n        maxBufferSize = arguments[2];\n    }\n    return function bufferTimeOperatorFunction(source) {\n        return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n    };\n}\nvar BufferTimeOperator = (function () {\n    function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n        this.bufferTimeSpan = bufferTimeSpan;\n        this.bufferCreationInterval = bufferCreationInterval;\n        this.maxBufferSize = maxBufferSize;\n        this.scheduler = scheduler;\n    }\n    BufferTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n    };\n    return BufferTimeOperator;\n}());\nvar Context = (function () {\n    function Context() {\n        this.buffer = [];\n    }\n    return Context;\n}());\nvar BufferTimeSubscriber = (function (_super) {\n    tslib_1.__extends(BufferTimeSubscriber, _super);\n    function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.bufferTimeSpan = bufferTimeSpan;\n        _this.bufferCreationInterval = bufferCreationInterval;\n        _this.maxBufferSize = maxBufferSize;\n        _this.scheduler = scheduler;\n        _this.contexts = [];\n        var context = _this.openContext();\n        _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n        if (_this.timespanOnly) {\n            var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n            _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n        }\n        else {\n            var closeState = { subscriber: _this, context: context };\n            var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n            _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n            _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n        }\n        return _this;\n    }\n    BufferTimeSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        var len = contexts.length;\n        var filledBufferContext;\n        for (var i = 0; i < len; i++) {\n            var context_1 = contexts[i];\n            var buffer = context_1.buffer;\n            buffer.push(value);\n            if (buffer.length == this.maxBufferSize) {\n                filledBufferContext = context_1;\n            }\n        }\n        if (filledBufferContext) {\n            this.onBufferFull(filledBufferContext);\n        }\n    };\n    BufferTimeSubscriber.prototype._error = function (err) {\n        this.contexts.length = 0;\n        _super.prototype._error.call(this, err);\n    };\n    BufferTimeSubscriber.prototype._complete = function () {\n        var _a = this, contexts = _a.contexts, destination = _a.destination;\n        while (contexts.length > 0) {\n            var context_2 = contexts.shift();\n            destination.next(context_2.buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    BufferTimeSubscriber.prototype._unsubscribe = function () {\n        this.contexts = null;\n    };\n    BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n        this.closeContext(context);\n        var closeAction = context.closeAction;\n        closeAction.unsubscribe();\n        this.remove(closeAction);\n        if (!this.closed && this.timespanOnly) {\n            context = this.openContext();\n            var bufferTimeSpan = this.bufferTimeSpan;\n            var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n            this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n        }\n    };\n    BufferTimeSubscriber.prototype.openContext = function () {\n        var context = new Context();\n        this.contexts.push(context);\n        return context;\n    };\n    BufferTimeSubscriber.prototype.closeContext = function (context) {\n        this.destination.next(context.buffer);\n        var contexts = this.contexts;\n        var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n        if (spliceIndex >= 0) {\n            contexts.splice(contexts.indexOf(context), 1);\n        }\n    };\n    return BufferTimeSubscriber;\n}(Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n    var subscriber = state.subscriber;\n    var prevContext = state.context;\n    if (prevContext) {\n        subscriber.closeContext(prevContext);\n    }\n    if (!subscriber.closed) {\n        state.context = subscriber.openContext();\n        state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n    }\n}\nfunction dispatchBufferCreation(state) {\n    var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n    var context = subscriber.openContext();\n    var action = this;\n    if (!subscriber.closed) {\n        subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n        action.schedule(state, bufferCreationInterval);\n    }\n}\nfunction dispatchBufferClose(arg) {\n    var subscriber = arg.subscriber, context = arg.context;\n    subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nexport function bufferToggle(openings, closingSelector) {\n    return function bufferToggleOperatorFunction(source) {\n        return source.lift(new BufferToggleOperator(openings, closingSelector));\n    };\n}\nvar BufferToggleOperator = (function () {\n    function BufferToggleOperator(openings, closingSelector) {\n        this.openings = openings;\n        this.closingSelector = closingSelector;\n    }\n    BufferToggleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n    };\n    return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = (function (_super) {\n    tslib_1.__extends(BufferToggleSubscriber, _super);\n    function BufferToggleSubscriber(destination, openings, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.openings = openings;\n        _this.closingSelector = closingSelector;\n        _this.contexts = [];\n        _this.add(subscribeToResult(_this, openings));\n        return _this;\n    }\n    BufferToggleSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        var len = contexts.length;\n        for (var i = 0; i < len; i++) {\n            contexts[i].buffer.push(value);\n        }\n    };\n    BufferToggleSubscriber.prototype._error = function (err) {\n        var contexts = this.contexts;\n        while (contexts.length > 0) {\n            var context_1 = contexts.shift();\n            context_1.subscription.unsubscribe();\n            context_1.buffer = null;\n            context_1.subscription = null;\n        }\n        this.contexts = null;\n        _super.prototype._error.call(this, err);\n    };\n    BufferToggleSubscriber.prototype._complete = function () {\n        var contexts = this.contexts;\n        while (contexts.length > 0) {\n            var context_2 = contexts.shift();\n            this.destination.next(context_2.buffer);\n            context_2.subscription.unsubscribe();\n            context_2.buffer = null;\n            context_2.subscription = null;\n        }\n        this.contexts = null;\n        _super.prototype._complete.call(this);\n    };\n    BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n    };\n    BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.closeBuffer(innerSub.context);\n    };\n    BufferToggleSubscriber.prototype.openBuffer = function (value) {\n        try {\n            var closingSelector = this.closingSelector;\n            var closingNotifier = closingSelector.call(this, value);\n            if (closingNotifier) {\n                this.trySubscribe(closingNotifier);\n            }\n        }\n        catch (err) {\n            this._error(err);\n        }\n    };\n    BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n        var contexts = this.contexts;\n        if (contexts && context) {\n            var buffer = context.buffer, subscription = context.subscription;\n            this.destination.next(buffer);\n            contexts.splice(contexts.indexOf(context), 1);\n            this.remove(subscription);\n            subscription.unsubscribe();\n        }\n    };\n    BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n        var contexts = this.contexts;\n        var buffer = [];\n        var subscription = new Subscription();\n        var context = { buffer: buffer, subscription: subscription };\n        contexts.push(context);\n        var innerSubscription = subscribeToResult(this, closingNotifier, context);\n        if (!innerSubscription || innerSubscription.closed) {\n            this.closeBuffer(context);\n        }\n        else {\n            innerSubscription.context = context;\n            this.add(innerSubscription);\n            subscription.add(innerSubscription);\n        }\n    };\n    return BufferToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function bufferWhen(closingSelector) {\n    return function (source) {\n        return source.lift(new BufferWhenOperator(closingSelector));\n    };\n}\nvar BufferWhenOperator = (function () {\n    function BufferWhenOperator(closingSelector) {\n        this.closingSelector = closingSelector;\n    }\n    BufferWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n    };\n    return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = (function (_super) {\n    tslib_1.__extends(BufferWhenSubscriber, _super);\n    function BufferWhenSubscriber(destination, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.closingSelector = closingSelector;\n        _this.subscribing = false;\n        _this.openBuffer();\n        return _this;\n    }\n    BufferWhenSubscriber.prototype._next = function (value) {\n        this.buffer.push(value);\n    };\n    BufferWhenSubscriber.prototype._complete = function () {\n        var buffer = this.buffer;\n        if (buffer) {\n            this.destination.next(buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    BufferWhenSubscriber.prototype._unsubscribe = function () {\n        this.buffer = null;\n        this.subscribing = false;\n    };\n    BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openBuffer();\n    };\n    BufferWhenSubscriber.prototype.notifyComplete = function () {\n        if (this.subscribing) {\n            this.complete();\n        }\n        else {\n            this.openBuffer();\n        }\n    };\n    BufferWhenSubscriber.prototype.openBuffer = function () {\n        var closingSubscription = this.closingSubscription;\n        if (closingSubscription) {\n            this.remove(closingSubscription);\n            closingSubscription.unsubscribe();\n        }\n        var buffer = this.buffer;\n        if (this.buffer) {\n            this.destination.next(buffer);\n        }\n        this.buffer = [];\n        var closingNotifier;\n        try {\n            var closingSelector = this.closingSelector;\n            closingNotifier = closingSelector();\n        }\n        catch (err) {\n            return this.error(err);\n        }\n        closingSubscription = new Subscription();\n        this.closingSubscription = closingSubscription;\n        this.add(closingSubscription);\n        this.subscribing = true;\n        closingSubscription.add(subscribeToResult(this, closingNotifier));\n        this.subscribing = false;\n    };\n    return BufferWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n    return function catchErrorOperatorFunction(source) {\n        var operator = new CatchOperator(selector);\n        var caught = source.lift(operator);\n        return (operator.caught = caught);\n    };\n}\nvar CatchOperator = (function () {\n    function CatchOperator(selector) {\n        this.selector = selector;\n    }\n    CatchOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n    };\n    return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n    tslib_1.__extends(CatchSubscriber, _super);\n    function CatchSubscriber(destination, selector, caught) {\n        var _this = _super.call(this, destination) || this;\n        _this.selector = selector;\n        _this.caught = caught;\n        return _this;\n    }\n    CatchSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var result = void 0;\n            try {\n                result = this.selector(err, this.caught);\n            }\n            catch (err2) {\n                _super.prototype.error.call(this, err2);\n                return;\n            }\n            this._unsubscribeAndRecycle();\n            var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n            this.add(innerSubscriber);\n            var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n            if (innerSubscription !== innerSubscriber) {\n                this.add(innerSubscription);\n            }\n        }\n    };\n    return CatchSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=catchError.js.map","import { CombineLatestOperator } from '../observable/combineLatest';\nexport function combineAll(project) {\n    return function (source) { return source.lift(new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineAll.js.map","import { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nvar none = {};\nexport function combineLatest() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    var project = null;\n    if (typeof observables[observables.length - 1] === 'function') {\n        project = observables.pop();\n    }\n    if (observables.length === 1 && isArray(observables[0])) {\n        observables = observables[0].slice();\n    }\n    return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineLatest.js.map","import { concat as concatStatic } from '../observable/concat';\nexport function concat() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=concat.js.map","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n    return mergeMap(project, resultSelector, 1);\n}\n//# sourceMappingURL=concatMap.js.map","import { concatMap } from './concatMap';\nexport function concatMapTo(innerObservable, resultSelector) {\n    return concatMap(function () { return innerObservable; }, resultSelector);\n}\n//# sourceMappingURL=concatMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function count(predicate) {\n    return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = (function () {\n    function CountOperator(predicate, source) {\n        this.predicate = predicate;\n        this.source = source;\n    }\n    CountOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n    };\n    return CountOperator;\n}());\nvar CountSubscriber = (function (_super) {\n    tslib_1.__extends(CountSubscriber, _super);\n    function CountSubscriber(destination, predicate, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.source = source;\n        _this.count = 0;\n        _this.index = 0;\n        return _this;\n    }\n    CountSubscriber.prototype._next = function (value) {\n        if (this.predicate) {\n            this._tryPredicate(value);\n        }\n        else {\n            this.count++;\n        }\n    };\n    CountSubscriber.prototype._tryPredicate = function (value) {\n        var result;\n        try {\n            result = this.predicate(value, this.index++, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            this.count++;\n        }\n    };\n    CountSubscriber.prototype._complete = function () {\n        this.destination.next(this.count);\n        this.destination.complete();\n    };\n    return CountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=count.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function debounce(durationSelector) {\n    return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = (function () {\n    function DebounceOperator(durationSelector) {\n        this.durationSelector = durationSelector;\n    }\n    DebounceOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n    };\n    return DebounceOperator;\n}());\nvar DebounceSubscriber = (function (_super) {\n    tslib_1.__extends(DebounceSubscriber, _super);\n    function DebounceSubscriber(destination, durationSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.durationSelector = durationSelector;\n        _this.hasValue = false;\n        _this.durationSubscription = null;\n        return _this;\n    }\n    DebounceSubscriber.prototype._next = function (value) {\n        try {\n            var result = this.durationSelector.call(this, value);\n            if (result) {\n                this._tryNext(value, result);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    DebounceSubscriber.prototype._complete = function () {\n        this.emitValue();\n        this.destination.complete();\n    };\n    DebounceSubscriber.prototype._tryNext = function (value, duration) {\n        var subscription = this.durationSubscription;\n        this.value = value;\n        this.hasValue = true;\n        if (subscription) {\n            subscription.unsubscribe();\n            this.remove(subscription);\n        }\n        subscription = subscribeToResult(this, duration);\n        if (subscription && !subscription.closed) {\n            this.add(this.durationSubscription = subscription);\n        }\n    };\n    DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.emitValue();\n    };\n    DebounceSubscriber.prototype.notifyComplete = function () {\n        this.emitValue();\n    };\n    DebounceSubscriber.prototype.emitValue = function () {\n        if (this.hasValue) {\n            var value = this.value;\n            var subscription = this.durationSubscription;\n            if (subscription) {\n                this.durationSubscription = null;\n                subscription.unsubscribe();\n                this.remove(subscription);\n            }\n            this.value = null;\n            this.hasValue = false;\n            _super.prototype._next.call(this, value);\n        }\n    };\n    return DebounceSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=debounce.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n    function DebounceTimeOperator(dueTime, scheduler) {\n        this.dueTime = dueTime;\n        this.scheduler = scheduler;\n    }\n    DebounceTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n    };\n    return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n    tslib_1.__extends(DebounceTimeSubscriber, _super);\n    function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.dueTime = dueTime;\n        _this.scheduler = scheduler;\n        _this.debouncedSubscription = null;\n        _this.lastValue = null;\n        _this.hasValue = false;\n        return _this;\n    }\n    DebounceTimeSubscriber.prototype._next = function (value) {\n        this.clearDebounce();\n        this.lastValue = value;\n        this.hasValue = true;\n        this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n    };\n    DebounceTimeSubscriber.prototype._complete = function () {\n        this.debouncedNext();\n        this.destination.complete();\n    };\n    DebounceTimeSubscriber.prototype.debouncedNext = function () {\n        this.clearDebounce();\n        if (this.hasValue) {\n            var lastValue = this.lastValue;\n            this.lastValue = null;\n            this.hasValue = false;\n            this.destination.next(lastValue);\n        }\n    };\n    DebounceTimeSubscriber.prototype.clearDebounce = function () {\n        var debouncedSubscription = this.debouncedSubscription;\n        if (debouncedSubscription !== null) {\n            this.remove(debouncedSubscription);\n            debouncedSubscription.unsubscribe();\n            this.debouncedSubscription = null;\n        }\n    };\n    return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n    subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue) {\n    if (defaultValue === void 0) { defaultValue = null; }\n    return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = (function () {\n    function DefaultIfEmptyOperator(defaultValue) {\n        this.defaultValue = defaultValue;\n    }\n    DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n    };\n    return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n    tslib_1.__extends(DefaultIfEmptySubscriber, _super);\n    function DefaultIfEmptySubscriber(destination, defaultValue) {\n        var _this = _super.call(this, destination) || this;\n        _this.defaultValue = defaultValue;\n        _this.isEmpty = true;\n        return _this;\n    }\n    DefaultIfEmptySubscriber.prototype._next = function (value) {\n        this.isEmpty = false;\n        this.destination.next(value);\n    };\n    DefaultIfEmptySubscriber.prototype._complete = function () {\n        if (this.isEmpty) {\n            this.destination.next(this.defaultValue);\n        }\n        this.destination.complete();\n    };\n    return DefaultIfEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map","export function isDate(value) {\n    return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    var absoluteDelay = isDate(delay);\n    var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n    return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n    function DelayOperator(delay, scheduler) {\n        this.delay = delay;\n        this.scheduler = scheduler;\n    }\n    DelayOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n    };\n    return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n    tslib_1.__extends(DelaySubscriber, _super);\n    function DelaySubscriber(destination, delay, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.delay = delay;\n        _this.scheduler = scheduler;\n        _this.queue = [];\n        _this.active = false;\n        _this.errored = false;\n        return _this;\n    }\n    DelaySubscriber.dispatch = function (state) {\n        var source = state.source;\n        var queue = source.queue;\n        var scheduler = state.scheduler;\n        var destination = state.destination;\n        while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n            queue.shift().notification.observe(destination);\n        }\n        if (queue.length > 0) {\n            var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n            this.schedule(state, delay_1);\n        }\n        else {\n            this.unsubscribe();\n            source.active = false;\n        }\n    };\n    DelaySubscriber.prototype._schedule = function (scheduler) {\n        this.active = true;\n        var destination = this.destination;\n        destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n            source: this, destination: this.destination, scheduler: scheduler\n        }));\n    };\n    DelaySubscriber.prototype.scheduleNotification = function (notification) {\n        if (this.errored === true) {\n            return;\n        }\n        var scheduler = this.scheduler;\n        var message = new DelayMessage(scheduler.now() + this.delay, notification);\n        this.queue.push(message);\n        if (this.active === false) {\n            this._schedule(scheduler);\n        }\n    };\n    DelaySubscriber.prototype._next = function (value) {\n        this.scheduleNotification(Notification.createNext(value));\n    };\n    DelaySubscriber.prototype._error = function (err) {\n        this.errored = true;\n        this.queue = [];\n        this.destination.error(err);\n        this.unsubscribe();\n    };\n    DelaySubscriber.prototype._complete = function () {\n        this.scheduleNotification(Notification.createComplete());\n        this.unsubscribe();\n    };\n    return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = (function () {\n    function DelayMessage(time, notification) {\n        this.time = time;\n        this.notification = notification;\n    }\n    return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n    if (subscriptionDelay) {\n        return function (source) {\n            return new SubscriptionDelayObservable(source, subscriptionDelay)\n                .lift(new DelayWhenOperator(delayDurationSelector));\n        };\n    }\n    return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = (function () {\n    function DelayWhenOperator(delayDurationSelector) {\n        this.delayDurationSelector = delayDurationSelector;\n    }\n    DelayWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n    };\n    return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = (function (_super) {\n    tslib_1.__extends(DelayWhenSubscriber, _super);\n    function DelayWhenSubscriber(destination, delayDurationSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.delayDurationSelector = delayDurationSelector;\n        _this.completed = false;\n        _this.delayNotifierSubscriptions = [];\n        _this.index = 0;\n        return _this;\n    }\n    DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(outerValue);\n        this.removeSubscription(innerSub);\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n        var value = this.removeSubscription(innerSub);\n        if (value) {\n            this.destination.next(value);\n        }\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype._next = function (value) {\n        var index = this.index++;\n        try {\n            var delayNotifier = this.delayDurationSelector(value, index);\n            if (delayNotifier) {\n                this.tryDelay(delayNotifier, value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    DelayWhenSubscriber.prototype._complete = function () {\n        this.completed = true;\n        this.tryComplete();\n        this.unsubscribe();\n    };\n    DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n        subscription.unsubscribe();\n        var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n        if (subscriptionIdx !== -1) {\n            this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n        }\n        return subscription.outerValue;\n    };\n    DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n        var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n        if (notifierSubscription && !notifierSubscription.closed) {\n            var destination = this.destination;\n            destination.add(notifierSubscription);\n            this.delayNotifierSubscriptions.push(notifierSubscription);\n        }\n    };\n    DelayWhenSubscriber.prototype.tryComplete = function () {\n        if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n            this.destination.complete();\n        }\n    };\n    return DelayWhenSubscriber;\n}(OuterSubscriber));\nvar SubscriptionDelayObservable = (function (_super) {\n    tslib_1.__extends(SubscriptionDelayObservable, _super);\n    function SubscriptionDelayObservable(source, subscriptionDelay) {\n        var _this = _super.call(this) || this;\n        _this.source = source;\n        _this.subscriptionDelay = subscriptionDelay;\n        return _this;\n    }\n    SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n        this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n    };\n    return SubscriptionDelayObservable;\n}(Observable));\nvar SubscriptionDelaySubscriber = (function (_super) {\n    tslib_1.__extends(SubscriptionDelaySubscriber, _super);\n    function SubscriptionDelaySubscriber(parent, source) {\n        var _this = _super.call(this) || this;\n        _this.parent = parent;\n        _this.source = source;\n        _this.sourceSubscribed = false;\n        return _this;\n    }\n    SubscriptionDelaySubscriber.prototype._next = function (unused) {\n        this.subscribeToSource();\n    };\n    SubscriptionDelaySubscriber.prototype._error = function (err) {\n        this.unsubscribe();\n        this.parent.error(err);\n    };\n    SubscriptionDelaySubscriber.prototype._complete = function () {\n        this.unsubscribe();\n        this.subscribeToSource();\n    };\n    SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n        if (!this.sourceSubscribed) {\n            this.sourceSubscribed = true;\n            this.unsubscribe();\n            this.source.subscribe(this.parent);\n        }\n    };\n    return SubscriptionDelaySubscriber;\n}(Subscriber));\n//# sourceMappingURL=delayWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n    return function dematerializeOperatorFunction(source) {\n        return source.lift(new DeMaterializeOperator());\n    };\n}\nvar DeMaterializeOperator = (function () {\n    function DeMaterializeOperator() {\n    }\n    DeMaterializeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DeMaterializeSubscriber(subscriber));\n    };\n    return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = (function (_super) {\n    tslib_1.__extends(DeMaterializeSubscriber, _super);\n    function DeMaterializeSubscriber(destination) {\n        return _super.call(this, destination) || this;\n    }\n    DeMaterializeSubscriber.prototype._next = function (value) {\n        value.observe(this.destination);\n    };\n    return DeMaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=dematerialize.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function distinct(keySelector, flushes) {\n    return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = (function () {\n    function DistinctOperator(keySelector, flushes) {\n        this.keySelector = keySelector;\n        this.flushes = flushes;\n    }\n    DistinctOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n    };\n    return DistinctOperator;\n}());\nvar DistinctSubscriber = (function (_super) {\n    tslib_1.__extends(DistinctSubscriber, _super);\n    function DistinctSubscriber(destination, keySelector, flushes) {\n        var _this = _super.call(this, destination) || this;\n        _this.keySelector = keySelector;\n        _this.values = new Set();\n        if (flushes) {\n            _this.add(subscribeToResult(_this, flushes));\n        }\n        return _this;\n    }\n    DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.values.clear();\n    };\n    DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    DistinctSubscriber.prototype._next = function (value) {\n        if (this.keySelector) {\n            this._useKeySelector(value);\n        }\n        else {\n            this._finalizeNext(value, value);\n        }\n    };\n    DistinctSubscriber.prototype._useKeySelector = function (value) {\n        var key;\n        var destination = this.destination;\n        try {\n            key = this.keySelector(value);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        this._finalizeNext(key, value);\n    };\n    DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n        var values = this.values;\n        if (!values.has(key)) {\n            values.add(key);\n            this.destination.next(value);\n        }\n    };\n    return DistinctSubscriber;\n}(OuterSubscriber));\nexport { DistinctSubscriber };\n//# sourceMappingURL=distinct.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n    return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n    function DistinctUntilChangedOperator(compare, keySelector) {\n        this.compare = compare;\n        this.keySelector = keySelector;\n    }\n    DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n    };\n    return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n    tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n    function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.keySelector = keySelector;\n        _this.hasKey = false;\n        if (typeof compare === 'function') {\n            _this.compare = compare;\n        }\n        return _this;\n    }\n    DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n        return x === y;\n    };\n    DistinctUntilChangedSubscriber.prototype._next = function (value) {\n        var key;\n        try {\n            var keySelector = this.keySelector;\n            key = keySelector ? keySelector(value) : value;\n        }\n        catch (err) {\n            return this.destination.error(err);\n        }\n        var result = false;\n        if (this.hasKey) {\n            try {\n                var compare = this.compare;\n                result = compare(this.key, key);\n            }\n            catch (err) {\n                return this.destination.error(err);\n            }\n        }\n        else {\n            this.hasKey = true;\n        }\n        if (!result) {\n            this.key = key;\n            this.destination.next(value);\n        }\n    };\n    return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n    return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","import * as tslib_1 from \"tslib\";\nimport { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory) {\n    if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n    return function (source) {\n        return source.lift(new ThrowIfEmptyOperator(errorFactory));\n    };\n}\nvar ThrowIfEmptyOperator = (function () {\n    function ThrowIfEmptyOperator(errorFactory) {\n        this.errorFactory = errorFactory;\n    }\n    ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n    };\n    return ThrowIfEmptyOperator;\n}());\nvar ThrowIfEmptySubscriber = (function (_super) {\n    tslib_1.__extends(ThrowIfEmptySubscriber, _super);\n    function ThrowIfEmptySubscriber(destination, errorFactory) {\n        var _this = _super.call(this, destination) || this;\n        _this.errorFactory = errorFactory;\n        _this.hasValue = false;\n        return _this;\n    }\n    ThrowIfEmptySubscriber.prototype._next = function (value) {\n        this.hasValue = true;\n        this.destination.next(value);\n    };\n    ThrowIfEmptySubscriber.prototype._complete = function () {\n        if (!this.hasValue) {\n            var err = void 0;\n            try {\n                err = this.errorFactory();\n            }\n            catch (e) {\n                err = e;\n            }\n            this.destination.error(err);\n        }\n        else {\n            return this.destination.complete();\n        }\n    };\n    return ThrowIfEmptySubscriber;\n}(Subscriber));\nfunction defaultErrorFactory() {\n    return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n    return function (source) {\n        if (count === 0) {\n            return empty();\n        }\n        else {\n            return source.lift(new TakeOperator(count));\n        }\n    };\n}\nvar TakeOperator = (function () {\n    function TakeOperator(total) {\n        this.total = total;\n        if (this.total < 0) {\n            throw new ArgumentOutOfRangeError;\n        }\n    }\n    TakeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeSubscriber(subscriber, this.total));\n    };\n    return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n    tslib_1.__extends(TakeSubscriber, _super);\n    function TakeSubscriber(destination, total) {\n        var _this = _super.call(this, destination) || this;\n        _this.total = total;\n        _this.count = 0;\n        return _this;\n    }\n    TakeSubscriber.prototype._next = function (value) {\n        var total = this.total;\n        var count = ++this.count;\n        if (count <= total) {\n            this.destination.next(value);\n            if (count === total) {\n                this.destination.complete();\n                this.unsubscribe();\n            }\n        }\n    };\n    return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map","import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n    if (index < 0) {\n        throw new ArgumentOutOfRangeError();\n    }\n    var hasDefaultValue = arguments.length >= 2;\n    return function (source) { return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue\n        ? defaultIfEmpty(defaultValue)\n        : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); })); };\n}\n//# sourceMappingURL=elementAt.js.map","import { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nexport function endWith() {\n    var array = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        array[_i] = arguments[_i];\n    }\n    return function (source) { return concat(source, of.apply(void 0, array)); };\n}\n//# sourceMappingURL=endWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function every(predicate, thisArg) {\n    return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = (function () {\n    function EveryOperator(predicate, thisArg, source) {\n        this.predicate = predicate;\n        this.thisArg = thisArg;\n        this.source = source;\n    }\n    EveryOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n    };\n    return EveryOperator;\n}());\nvar EverySubscriber = (function (_super) {\n    tslib_1.__extends(EverySubscriber, _super);\n    function EverySubscriber(destination, predicate, thisArg, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.thisArg = thisArg;\n        _this.source = source;\n        _this.index = 0;\n        _this.thisArg = thisArg || _this;\n        return _this;\n    }\n    EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n        this.destination.next(everyValueMatch);\n        this.destination.complete();\n    };\n    EverySubscriber.prototype._next = function (value) {\n        var result = false;\n        try {\n            result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (!result) {\n            this.notifyComplete(false);\n        }\n    };\n    EverySubscriber.prototype._complete = function () {\n        this.notifyComplete(true);\n    };\n    return EverySubscriber;\n}(Subscriber));\n//# sourceMappingURL=every.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function exhaust() {\n    return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = (function () {\n    function SwitchFirstOperator() {\n    }\n    SwitchFirstOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SwitchFirstSubscriber(subscriber));\n    };\n    return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = (function (_super) {\n    tslib_1.__extends(SwitchFirstSubscriber, _super);\n    function SwitchFirstSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasCompleted = false;\n        _this.hasSubscription = false;\n        return _this;\n    }\n    SwitchFirstSubscriber.prototype._next = function (value) {\n        if (!this.hasSubscription) {\n            this.hasSubscription = true;\n            this.add(subscribeToResult(this, value));\n        }\n    };\n    SwitchFirstSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (!this.hasSubscription) {\n            this.destination.complete();\n        }\n    };\n    SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.remove(innerSub);\n        this.hasSubscription = false;\n        if (this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return SwitchFirstSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaust.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function exhaustMap(project, resultSelector) {\n    if (resultSelector) {\n        return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n    }\n    return function (source) {\n        return source.lift(new ExhaustMapOperator(project));\n    };\n}\nvar ExhaustMapOperator = (function () {\n    function ExhaustMapOperator(project) {\n        this.project = project;\n    }\n    ExhaustMapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n    };\n    return ExhaustMapOperator;\n}());\nvar ExhaustMapSubscriber = (function (_super) {\n    tslib_1.__extends(ExhaustMapSubscriber, _super);\n    function ExhaustMapSubscriber(destination, project) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.hasSubscription = false;\n        _this.hasCompleted = false;\n        _this.index = 0;\n        return _this;\n    }\n    ExhaustMapSubscriber.prototype._next = function (value) {\n        if (!this.hasSubscription) {\n            this.tryNext(value);\n        }\n    };\n    ExhaustMapSubscriber.prototype.tryNext = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.hasSubscription = true;\n        this._innerSub(result, value, index);\n    };\n    ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n        var innerSubscriber = new InnerSubscriber(this, value, index);\n        var destination = this.destination;\n        destination.add(innerSubscriber);\n        var innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n        if (innerSubscription !== innerSubscriber) {\n            destination.add(innerSubscription);\n        }\n    };\n    ExhaustMapSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (!this.hasSubscription) {\n            this.destination.complete();\n        }\n        this.unsubscribe();\n    };\n    ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    ExhaustMapSubscriber.prototype.notifyError = function (err) {\n        this.destination.error(err);\n    };\n    ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        var destination = this.destination;\n        destination.remove(innerSub);\n        this.hasSubscription = false;\n        if (this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return ExhaustMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaustMap.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function expand(project, concurrent, scheduler) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    if (scheduler === void 0) { scheduler = undefined; }\n    concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n    return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = (function () {\n    function ExpandOperator(project, concurrent, scheduler) {\n        this.project = project;\n        this.concurrent = concurrent;\n        this.scheduler = scheduler;\n    }\n    ExpandOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n    };\n    return ExpandOperator;\n}());\nexport { ExpandOperator };\nvar ExpandSubscriber = (function (_super) {\n    tslib_1.__extends(ExpandSubscriber, _super);\n    function ExpandSubscriber(destination, project, concurrent, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.concurrent = concurrent;\n        _this.scheduler = scheduler;\n        _this.index = 0;\n        _this.active = 0;\n        _this.hasCompleted = false;\n        if (concurrent < Number.POSITIVE_INFINITY) {\n            _this.buffer = [];\n        }\n        return _this;\n    }\n    ExpandSubscriber.dispatch = function (arg) {\n        var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n        subscriber.subscribeToProjection(result, value, index);\n    };\n    ExpandSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        if (destination.closed) {\n            this._complete();\n            return;\n        }\n        var index = this.index++;\n        if (this.active < this.concurrent) {\n            destination.next(value);\n            try {\n                var project = this.project;\n                var result = project(value, index);\n                if (!this.scheduler) {\n                    this.subscribeToProjection(result, value, index);\n                }\n                else {\n                    var state = { subscriber: this, result: result, value: value, index: index };\n                    var destination_1 = this.destination;\n                    destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n                }\n            }\n            catch (e) {\n                destination.error(e);\n            }\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n        this.active++;\n        var destination = this.destination;\n        destination.add(subscribeToResult(this, result, value, index));\n    };\n    ExpandSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.hasCompleted && this.active === 0) {\n            this.destination.complete();\n        }\n        this.unsubscribe();\n    };\n    ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this._next(innerValue);\n    };\n    ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        var destination = this.destination;\n        destination.remove(innerSub);\n        this.active--;\n        if (buffer && buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        if (this.hasCompleted && this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    return ExpandSubscriber;\n}(OuterSubscriber));\nexport { ExpandSubscriber };\n//# sourceMappingURL=expand.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n    return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n    function FinallyOperator(callback) {\n        this.callback = callback;\n    }\n    FinallyOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n    };\n    return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n    tslib_1.__extends(FinallySubscriber, _super);\n    function FinallySubscriber(destination, callback) {\n        var _this = _super.call(this, destination) || this;\n        _this.add(new Subscription(callback));\n        return _this;\n    }\n    return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function find(predicate, thisArg) {\n    if (typeof predicate !== 'function') {\n        throw new TypeError('predicate is not a function');\n    }\n    return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = (function () {\n    function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n        this.predicate = predicate;\n        this.source = source;\n        this.yieldIndex = yieldIndex;\n        this.thisArg = thisArg;\n    }\n    FindValueOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n    };\n    return FindValueOperator;\n}());\nexport { FindValueOperator };\nvar FindValueSubscriber = (function (_super) {\n    tslib_1.__extends(FindValueSubscriber, _super);\n    function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.source = source;\n        _this.yieldIndex = yieldIndex;\n        _this.thisArg = thisArg;\n        _this.index = 0;\n        return _this;\n    }\n    FindValueSubscriber.prototype.notifyComplete = function (value) {\n        var destination = this.destination;\n        destination.next(value);\n        destination.complete();\n        this.unsubscribe();\n    };\n    FindValueSubscriber.prototype._next = function (value) {\n        var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n        var index = this.index++;\n        try {\n            var result = predicate.call(thisArg || this, value, index, this.source);\n            if (result) {\n                this.notifyComplete(this.yieldIndex ? index : value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    FindValueSubscriber.prototype._complete = function () {\n        this.notifyComplete(this.yieldIndex ? -1 : undefined);\n    };\n    return FindValueSubscriber;\n}(Subscriber));\nexport { FindValueSubscriber };\n//# sourceMappingURL=find.js.map","import { FindValueOperator } from '../operators/find';\nexport function findIndex(predicate, thisArg) {\n    return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n    var hasDefaultValue = arguments.length >= 2;\n    return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=first.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function ignoreElements() {\n    return function ignoreElementsOperatorFunction(source) {\n        return source.lift(new IgnoreElementsOperator());\n    };\n}\nvar IgnoreElementsOperator = (function () {\n    function IgnoreElementsOperator() {\n    }\n    IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n    };\n    return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = (function (_super) {\n    tslib_1.__extends(IgnoreElementsSubscriber, _super);\n    function IgnoreElementsSubscriber() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    IgnoreElementsSubscriber.prototype._next = function (unused) {\n    };\n    return IgnoreElementsSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ignoreElements.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function isEmpty() {\n    return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = (function () {\n    function IsEmptyOperator() {\n    }\n    IsEmptyOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new IsEmptySubscriber(observer));\n    };\n    return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = (function (_super) {\n    tslib_1.__extends(IsEmptySubscriber, _super);\n    function IsEmptySubscriber(destination) {\n        return _super.call(this, destination) || this;\n    }\n    IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n        var destination = this.destination;\n        destination.next(isEmpty);\n        destination.complete();\n    };\n    IsEmptySubscriber.prototype._next = function (value) {\n        this.notifyComplete(false);\n    };\n    IsEmptySubscriber.prototype._complete = function () {\n        this.notifyComplete(true);\n    };\n    return IsEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=isEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n    return function takeLastOperatorFunction(source) {\n        if (count === 0) {\n            return empty();\n        }\n        else {\n            return source.lift(new TakeLastOperator(count));\n        }\n    };\n}\nvar TakeLastOperator = (function () {\n    function TakeLastOperator(total) {\n        this.total = total;\n        if (this.total < 0) {\n            throw new ArgumentOutOfRangeError;\n        }\n    }\n    TakeLastOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n    };\n    return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n    tslib_1.__extends(TakeLastSubscriber, _super);\n    function TakeLastSubscriber(destination, total) {\n        var _this = _super.call(this, destination) || this;\n        _this.total = total;\n        _this.ring = new Array();\n        _this.count = 0;\n        return _this;\n    }\n    TakeLastSubscriber.prototype._next = function (value) {\n        var ring = this.ring;\n        var total = this.total;\n        var count = this.count++;\n        if (ring.length < total) {\n            ring.push(value);\n        }\n        else {\n            var index = count % total;\n            ring[index] = value;\n        }\n    };\n    TakeLastSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        var count = this.count;\n        if (count > 0) {\n            var total = this.count >= this.total ? this.total : this.count;\n            var ring = this.ring;\n            for (var i = 0; i < total; i++) {\n                var idx = (count++) % total;\n                destination.next(ring[idx]);\n            }\n        }\n        destination.complete();\n    };\n    return TakeLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeLast.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n    var hasDefaultValue = arguments.length >= 2;\n    return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=last.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n    return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n    function MapToOperator(value) {\n        this.value = value;\n    }\n    MapToOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MapToSubscriber(subscriber, this.value));\n    };\n    return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n    tslib_1.__extends(MapToSubscriber, _super);\n    function MapToSubscriber(destination, value) {\n        var _this = _super.call(this, destination) || this;\n        _this.value = value;\n        return _this;\n    }\n    MapToSubscriber.prototype._next = function (x) {\n        this.destination.next(this.value);\n    };\n    return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n    return function materializeOperatorFunction(source) {\n        return source.lift(new MaterializeOperator());\n    };\n}\nvar MaterializeOperator = (function () {\n    function MaterializeOperator() {\n    }\n    MaterializeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MaterializeSubscriber(subscriber));\n    };\n    return MaterializeOperator;\n}());\nvar MaterializeSubscriber = (function (_super) {\n    tslib_1.__extends(MaterializeSubscriber, _super);\n    function MaterializeSubscriber(destination) {\n        return _super.call(this, destination) || this;\n    }\n    MaterializeSubscriber.prototype._next = function (value) {\n        this.destination.next(Notification.createNext(value));\n    };\n    MaterializeSubscriber.prototype._error = function (err) {\n        var destination = this.destination;\n        destination.next(Notification.createError(err));\n        destination.complete();\n    };\n    MaterializeSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        destination.next(Notification.createComplete());\n        destination.complete();\n    };\n    return MaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=materialize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n    var hasSeed = false;\n    if (arguments.length >= 2) {\n        hasSeed = true;\n    }\n    return function scanOperatorFunction(source) {\n        return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n    };\n}\nvar ScanOperator = (function () {\n    function ScanOperator(accumulator, seed, hasSeed) {\n        if (hasSeed === void 0) { hasSeed = false; }\n        this.accumulator = accumulator;\n        this.seed = seed;\n        this.hasSeed = hasSeed;\n    }\n    ScanOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n    };\n    return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n    tslib_1.__extends(ScanSubscriber, _super);\n    function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n        var _this = _super.call(this, destination) || this;\n        _this.accumulator = accumulator;\n        _this._seed = _seed;\n        _this.hasSeed = hasSeed;\n        _this.index = 0;\n        return _this;\n    }\n    Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n        get: function () {\n            return this._seed;\n        },\n        set: function (value) {\n            this.hasSeed = true;\n            this._seed = value;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    ScanSubscriber.prototype._next = function (value) {\n        if (!this.hasSeed) {\n            this.seed = value;\n            this.destination.next(value);\n        }\n        else {\n            return this._tryNext(value);\n        }\n    };\n    ScanSubscriber.prototype._tryNext = function (value) {\n        var index = this.index++;\n        var result;\n        try {\n            result = this.accumulator(this.seed, value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n        this.seed = result;\n        this.destination.next(result);\n    };\n    return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map","import { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n    if (arguments.length >= 2) {\n        return function reduceOperatorFunctionWithSeed(source) {\n            return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n        };\n    }\n    return function reduceOperatorFunction(source) {\n        return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source);\n    };\n}\n//# sourceMappingURL=reduce.js.map","import { reduce } from './reduce';\nexport function max(comparer) {\n    var max = (typeof comparer === 'function')\n        ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n        : function (x, y) { return x > y ? x : y; };\n    return reduce(max);\n}\n//# sourceMappingURL=max.js.map","import { merge as mergeStatic } from '../observable/merge';\nexport function merge() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=merge.js.map","import { mergeMap } from './mergeMap';\nexport function mergeMapTo(innerObservable, resultSelector, concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    if (typeof resultSelector === 'function') {\n        return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);\n    }\n    if (typeof resultSelector === 'number') {\n        concurrent = resultSelector;\n    }\n    return mergeMap(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nexport function mergeScan(accumulator, seed, concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = (function () {\n    function MergeScanOperator(accumulator, seed, concurrent) {\n        this.accumulator = accumulator;\n        this.seed = seed;\n        this.concurrent = concurrent;\n    }\n    MergeScanOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n    };\n    return MergeScanOperator;\n}());\nexport { MergeScanOperator };\nvar MergeScanSubscriber = (function (_super) {\n    tslib_1.__extends(MergeScanSubscriber, _super);\n    function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n        var _this = _super.call(this, destination) || this;\n        _this.accumulator = accumulator;\n        _this.acc = acc;\n        _this.concurrent = concurrent;\n        _this.hasValue = false;\n        _this.hasCompleted = false;\n        _this.buffer = [];\n        _this.active = 0;\n        _this.index = 0;\n        return _this;\n    }\n    MergeScanSubscriber.prototype._next = function (value) {\n        if (this.active < this.concurrent) {\n            var index = this.index++;\n            var destination = this.destination;\n            var ish = void 0;\n            try {\n                var accumulator = this.accumulator;\n                ish = accumulator(this.acc, value, index);\n            }\n            catch (e) {\n                return destination.error(e);\n            }\n            this.active++;\n            this._innerSub(ish, value, index);\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n        var innerSubscriber = new InnerSubscriber(this, value, index);\n        var destination = this.destination;\n        destination.add(innerSubscriber);\n        var innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);\n        if (innerSubscription !== innerSubscriber) {\n            destination.add(innerSubscription);\n        }\n    };\n    MergeScanSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0 && this.buffer.length === 0) {\n            if (this.hasValue === false) {\n                this.destination.next(this.acc);\n            }\n            this.destination.complete();\n        }\n        this.unsubscribe();\n    };\n    MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var destination = this.destination;\n        this.acc = innerValue;\n        this.hasValue = true;\n        destination.next(innerValue);\n    };\n    MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        var destination = this.destination;\n        destination.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        else if (this.active === 0 && this.hasCompleted) {\n            if (this.hasValue === false) {\n                this.destination.next(this.acc);\n            }\n            this.destination.complete();\n        }\n    };\n    return MergeScanSubscriber;\n}(OuterSubscriber));\nexport { MergeScanSubscriber };\n//# sourceMappingURL=mergeScan.js.map","import { reduce } from './reduce';\nexport function min(comparer) {\n    var min = (typeof comparer === 'function')\n        ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n        : function (x, y) { return x < y ? x : y; };\n    return reduce(min);\n}\n//# sourceMappingURL=min.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n    return function multicastOperatorFunction(source) {\n        var subjectFactory;\n        if (typeof subjectOrSubjectFactory === 'function') {\n            subjectFactory = subjectOrSubjectFactory;\n        }\n        else {\n            subjectFactory = function subjectFactory() {\n                return subjectOrSubjectFactory;\n            };\n        }\n        if (typeof selector === 'function') {\n            return source.lift(new MulticastOperator(subjectFactory, selector));\n        }\n        var connectable = Object.create(source, connectableObservableDescriptor);\n        connectable.source = source;\n        connectable.subjectFactory = subjectFactory;\n        return connectable;\n    };\n}\nvar MulticastOperator = (function () {\n    function MulticastOperator(subjectFactory, selector) {\n        this.subjectFactory = subjectFactory;\n        this.selector = selector;\n    }\n    MulticastOperator.prototype.call = function (subscriber, source) {\n        var selector = this.selector;\n        var subject = this.subjectFactory();\n        var subscription = selector(subject).subscribe(subscriber);\n        subscription.add(source.subscribe(subject));\n        return subscription;\n    };\n    return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map","import * as tslib_1 from \"tslib\";\nimport { from } from '../observable/from';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function onErrorResumeNext() {\n    var nextSources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        nextSources[_i] = arguments[_i];\n    }\n    if (nextSources.length === 1 && isArray(nextSources[0])) {\n        nextSources = nextSources[0];\n    }\n    return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nexport function onErrorResumeNextStatic() {\n    var nextSources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        nextSources[_i] = arguments[_i];\n    }\n    var source = null;\n    if (nextSources.length === 1 && isArray(nextSources[0])) {\n        nextSources = nextSources[0];\n    }\n    source = nextSources.shift();\n    return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = (function () {\n    function OnErrorResumeNextOperator(nextSources) {\n        this.nextSources = nextSources;\n    }\n    OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n    };\n    return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n    tslib_1.__extends(OnErrorResumeNextSubscriber, _super);\n    function OnErrorResumeNextSubscriber(destination, nextSources) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.nextSources = nextSources;\n        return _this;\n    }\n    OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype._error = function (err) {\n        this.subscribeToNextSource();\n        this.unsubscribe();\n    };\n    OnErrorResumeNextSubscriber.prototype._complete = function () {\n        this.subscribeToNextSource();\n        this.unsubscribe();\n    };\n    OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n        var next = this.nextSources.shift();\n        if (!!next) {\n            var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n            var destination = this.destination;\n            destination.add(innerSubscriber);\n            var innerSubscription = subscribeToResult(this, next, undefined, undefined, innerSubscriber);\n            if (innerSubscription !== innerSubscriber) {\n                destination.add(innerSubscription);\n            }\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    return OnErrorResumeNextSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=onErrorResumeNext.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function pairwise() {\n    return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = (function () {\n    function PairwiseOperator() {\n    }\n    PairwiseOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new PairwiseSubscriber(subscriber));\n    };\n    return PairwiseOperator;\n}());\nvar PairwiseSubscriber = (function (_super) {\n    tslib_1.__extends(PairwiseSubscriber, _super);\n    function PairwiseSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasPrev = false;\n        return _this;\n    }\n    PairwiseSubscriber.prototype._next = function (value) {\n        var pair;\n        if (this.hasPrev) {\n            pair = [this.prev, value];\n        }\n        else {\n            this.hasPrev = true;\n        }\n        this.prev = value;\n        if (pair) {\n            this.destination.next(pair);\n        }\n    };\n    return PairwiseSubscriber;\n}(Subscriber));\n//# sourceMappingURL=pairwise.js.map","import { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n    return function (source) { return [\n        filter(predicate, thisArg)(source),\n        filter(not(predicate, thisArg))(source)\n    ]; };\n}\n//# sourceMappingURL=partition.js.map","import { map } from './map';\nexport function pluck() {\n    var properties = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        properties[_i] = arguments[_i];\n    }\n    var length = properties.length;\n    if (length === 0) {\n        throw new Error('list of properties cannot be empty.');\n    }\n    return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n    var mapper = function (x) {\n        var currentProp = x;\n        for (var i = 0; i < length; i++) {\n            var p = currentProp[props[i]];\n            if (typeof p !== 'undefined') {\n                currentProp = p;\n            }\n            else {\n                return undefined;\n            }\n        }\n        return currentProp;\n    };\n    return mapper;\n}\n//# sourceMappingURL=pluck.js.map","import { Subject } from '../Subject';\nimport { multicast } from './multicast';\nexport function publish(selector) {\n    return selector ?\n        multicast(function () { return new Subject(); }, selector) :\n        multicast(new Subject());\n}\n//# sourceMappingURL=publish.js.map","import { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nexport function publishBehavior(value) {\n    return function (source) { return multicast(new BehaviorSubject(value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map","import { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nexport function publishLast() {\n    return function (source) { return multicast(new AsyncSubject())(source); };\n}\n//# sourceMappingURL=publishLast.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nexport function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n    if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n        scheduler = selectorOrScheduler;\n    }\n    var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n    var subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n    return function (source) { return multicast(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map","import { isArray } from '../util/isArray';\nimport { race as raceStatic } from '../observable/race';\nexport function race() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return function raceOperatorFunction(source) {\n        if (observables.length === 1 && isArray(observables[0])) {\n            observables = observables[0];\n        }\n        return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));\n    };\n}\n//# sourceMappingURL=race.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { empty } from '../observable/empty';\nexport function repeat(count) {\n    if (count === void 0) { count = -1; }\n    return function (source) {\n        if (count === 0) {\n            return empty();\n        }\n        else if (count < 0) {\n            return source.lift(new RepeatOperator(-1, source));\n        }\n        else {\n            return source.lift(new RepeatOperator(count - 1, source));\n        }\n    };\n}\nvar RepeatOperator = (function () {\n    function RepeatOperator(count, source) {\n        this.count = count;\n        this.source = source;\n    }\n    RepeatOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n    };\n    return RepeatOperator;\n}());\nvar RepeatSubscriber = (function (_super) {\n    tslib_1.__extends(RepeatSubscriber, _super);\n    function RepeatSubscriber(destination, count, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.count = count;\n        _this.source = source;\n        return _this;\n    }\n    RepeatSubscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            var _a = this, source = _a.source, count = _a.count;\n            if (count === 0) {\n                return _super.prototype.complete.call(this);\n            }\n            else if (count > -1) {\n                this.count = count - 1;\n            }\n            source.subscribe(this._unsubscribeAndRecycle());\n        }\n    };\n    return RepeatSubscriber;\n}(Subscriber));\n//# sourceMappingURL=repeat.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function repeatWhen(notifier) {\n    return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = (function () {\n    function RepeatWhenOperator(notifier) {\n        this.notifier = notifier;\n    }\n    RepeatWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n    };\n    return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = (function (_super) {\n    tslib_1.__extends(RepeatWhenSubscriber, _super);\n    function RepeatWhenSubscriber(destination, notifier, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.notifier = notifier;\n        _this.source = source;\n        _this.sourceIsBeingSubscribedTo = true;\n        return _this;\n    }\n    RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.sourceIsBeingSubscribedTo = true;\n        this.source.subscribe(this);\n    };\n    RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n        if (this.sourceIsBeingSubscribedTo === false) {\n            return _super.prototype.complete.call(this);\n        }\n    };\n    RepeatWhenSubscriber.prototype.complete = function () {\n        this.sourceIsBeingSubscribedTo = false;\n        if (!this.isStopped) {\n            if (!this.retries) {\n                this.subscribeToRetries();\n            }\n            if (!this.retriesSubscription || this.retriesSubscription.closed) {\n                return _super.prototype.complete.call(this);\n            }\n            this._unsubscribeAndRecycle();\n            this.notifications.next();\n        }\n    };\n    RepeatWhenSubscriber.prototype._unsubscribe = function () {\n        var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n        if (notifications) {\n            notifications.unsubscribe();\n            this.notifications = null;\n        }\n        if (retriesSubscription) {\n            retriesSubscription.unsubscribe();\n            this.retriesSubscription = null;\n        }\n        this.retries = null;\n    };\n    RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n        var _unsubscribe = this._unsubscribe;\n        this._unsubscribe = null;\n        _super.prototype._unsubscribeAndRecycle.call(this);\n        this._unsubscribe = _unsubscribe;\n        return this;\n    };\n    RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n        this.notifications = new Subject();\n        var retries;\n        try {\n            var notifier = this.notifier;\n            retries = notifier(this.notifications);\n        }\n        catch (e) {\n            return _super.prototype.complete.call(this);\n        }\n        this.retries = retries;\n        this.retriesSubscription = subscribeToResult(this, retries);\n    };\n    return RepeatWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=repeatWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function retry(count) {\n    if (count === void 0) { count = -1; }\n    return function (source) { return source.lift(new RetryOperator(count, source)); };\n}\nvar RetryOperator = (function () {\n    function RetryOperator(count, source) {\n        this.count = count;\n        this.source = source;\n    }\n    RetryOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n    };\n    return RetryOperator;\n}());\nvar RetrySubscriber = (function (_super) {\n    tslib_1.__extends(RetrySubscriber, _super);\n    function RetrySubscriber(destination, count, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.count = count;\n        _this.source = source;\n        return _this;\n    }\n    RetrySubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var _a = this, source = _a.source, count = _a.count;\n            if (count === 0) {\n                return _super.prototype.error.call(this, err);\n            }\n            else if (count > -1) {\n                this.count = count - 1;\n            }\n            source.subscribe(this._unsubscribeAndRecycle());\n        }\n    };\n    return RetrySubscriber;\n}(Subscriber));\n//# sourceMappingURL=retry.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function retryWhen(notifier) {\n    return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = (function () {\n    function RetryWhenOperator(notifier, source) {\n        this.notifier = notifier;\n        this.source = source;\n    }\n    RetryWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n    };\n    return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = (function (_super) {\n    tslib_1.__extends(RetryWhenSubscriber, _super);\n    function RetryWhenSubscriber(destination, notifier, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.notifier = notifier;\n        _this.source = source;\n        return _this;\n    }\n    RetryWhenSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var errors = this.errors;\n            var retries = this.retries;\n            var retriesSubscription = this.retriesSubscription;\n            if (!retries) {\n                errors = new Subject();\n                try {\n                    var notifier = this.notifier;\n                    retries = notifier(errors);\n                }\n                catch (e) {\n                    return _super.prototype.error.call(this, e);\n                }\n                retriesSubscription = subscribeToResult(this, retries);\n            }\n            else {\n                this.errors = null;\n                this.retriesSubscription = null;\n            }\n            this._unsubscribeAndRecycle();\n            this.errors = errors;\n            this.retries = retries;\n            this.retriesSubscription = retriesSubscription;\n            errors.next(err);\n        }\n    };\n    RetryWhenSubscriber.prototype._unsubscribe = function () {\n        var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n        if (errors) {\n            errors.unsubscribe();\n            this.errors = null;\n        }\n        if (retriesSubscription) {\n            retriesSubscription.unsubscribe();\n            this.retriesSubscription = null;\n        }\n        this.retries = null;\n    };\n    RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var _unsubscribe = this._unsubscribe;\n        this._unsubscribe = null;\n        this._unsubscribeAndRecycle();\n        this._unsubscribe = _unsubscribe;\n        this.source.subscribe(this);\n    };\n    return RetryWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=retryWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n    return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n    function SampleOperator(notifier) {\n        this.notifier = notifier;\n    }\n    SampleOperator.prototype.call = function (subscriber, source) {\n        var sampleSubscriber = new SampleSubscriber(subscriber);\n        var subscription = source.subscribe(sampleSubscriber);\n        subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n        return subscription;\n    };\n    return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n    tslib_1.__extends(SampleSubscriber, _super);\n    function SampleSubscriber() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.hasValue = false;\n        return _this;\n    }\n    SampleSubscriber.prototype._next = function (value) {\n        this.value = value;\n        this.hasValue = true;\n    };\n    SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.emitValue();\n    };\n    SampleSubscriber.prototype.notifyComplete = function () {\n        this.emitValue();\n    };\n    SampleSubscriber.prototype.emitValue = function () {\n        if (this.hasValue) {\n            this.hasValue = false;\n            this.destination.next(this.value);\n        }\n    };\n    return SampleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=sample.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function sampleTime(period, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = (function () {\n    function SampleTimeOperator(period, scheduler) {\n        this.period = period;\n        this.scheduler = scheduler;\n    }\n    SampleTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n    };\n    return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = (function (_super) {\n    tslib_1.__extends(SampleTimeSubscriber, _super);\n    function SampleTimeSubscriber(destination, period, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.period = period;\n        _this.scheduler = scheduler;\n        _this.hasValue = false;\n        _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n        return _this;\n    }\n    SampleTimeSubscriber.prototype._next = function (value) {\n        this.lastValue = value;\n        this.hasValue = true;\n    };\n    SampleTimeSubscriber.prototype.notifyNext = function () {\n        if (this.hasValue) {\n            this.hasValue = false;\n            this.destination.next(this.lastValue);\n        }\n    };\n    return SampleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNotification(state) {\n    var subscriber = state.subscriber, period = state.period;\n    subscriber.notifyNext();\n    this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function sequenceEqual(compareTo, comparator) {\n    return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); };\n}\nvar SequenceEqualOperator = (function () {\n    function SequenceEqualOperator(compareTo, comparator) {\n        this.compareTo = compareTo;\n        this.comparator = comparator;\n    }\n    SequenceEqualOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n    };\n    return SequenceEqualOperator;\n}());\nexport { SequenceEqualOperator };\nvar SequenceEqualSubscriber = (function (_super) {\n    tslib_1.__extends(SequenceEqualSubscriber, _super);\n    function SequenceEqualSubscriber(destination, compareTo, comparator) {\n        var _this = _super.call(this, destination) || this;\n        _this.compareTo = compareTo;\n        _this.comparator = comparator;\n        _this._a = [];\n        _this._b = [];\n        _this._oneComplete = false;\n        _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n        return _this;\n    }\n    SequenceEqualSubscriber.prototype._next = function (value) {\n        if (this._oneComplete && this._b.length === 0) {\n            this.emit(false);\n        }\n        else {\n            this._a.push(value);\n            this.checkValues();\n        }\n    };\n    SequenceEqualSubscriber.prototype._complete = function () {\n        if (this._oneComplete) {\n            this.emit(this._a.length === 0 && this._b.length === 0);\n        }\n        else {\n            this._oneComplete = true;\n        }\n        this.unsubscribe();\n    };\n    SequenceEqualSubscriber.prototype.checkValues = function () {\n        var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator;\n        while (_a.length > 0 && _b.length > 0) {\n            var a = _a.shift();\n            var b = _b.shift();\n            var areEqual = false;\n            try {\n                areEqual = comparator ? comparator(a, b) : a === b;\n            }\n            catch (e) {\n                this.destination.error(e);\n            }\n            if (!areEqual) {\n                this.emit(false);\n            }\n        }\n    };\n    SequenceEqualSubscriber.prototype.emit = function (value) {\n        var destination = this.destination;\n        destination.next(value);\n        destination.complete();\n    };\n    SequenceEqualSubscriber.prototype.nextB = function (value) {\n        if (this._oneComplete && this._a.length === 0) {\n            this.emit(false);\n        }\n        else {\n            this._b.push(value);\n            this.checkValues();\n        }\n    };\n    SequenceEqualSubscriber.prototype.completeB = function () {\n        if (this._oneComplete) {\n            this.emit(this._a.length === 0 && this._b.length === 0);\n        }\n        else {\n            this._oneComplete = true;\n        }\n    };\n    return SequenceEqualSubscriber;\n}(Subscriber));\nexport { SequenceEqualSubscriber };\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n    tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);\n    function SequenceEqualCompareToSubscriber(destination, parent) {\n        var _this = _super.call(this, destination) || this;\n        _this.parent = parent;\n        return _this;\n    }\n    SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n        this.parent.nextB(value);\n    };\n    SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n        this.parent.error(err);\n        this.unsubscribe();\n    };\n    SequenceEqualCompareToSubscriber.prototype._complete = function () {\n        this.parent.completeB();\n        this.unsubscribe();\n    };\n    return SequenceEqualCompareToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=sequenceEqual.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n    return new Subject();\n}\nexport function share() {\n    return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n    var config;\n    if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n        config = configOrBufferSize;\n    }\n    else {\n        config = {\n            bufferSize: configOrBufferSize,\n            windowTime: windowTime,\n            refCount: false,\n            scheduler: scheduler\n        };\n    }\n    return function (source) { return source.lift(shareReplayOperator(config)); };\n}\nfunction shareReplayOperator(_a) {\n    var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler;\n    var subject;\n    var refCount = 0;\n    var subscription;\n    var hasError = false;\n    var isComplete = false;\n    return function shareReplayOperation(source) {\n        refCount++;\n        if (!subject || hasError) {\n            hasError = false;\n            subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n            subscription = source.subscribe({\n                next: function (value) { subject.next(value); },\n                error: function (err) {\n                    hasError = true;\n                    subject.error(err);\n                },\n                complete: function () {\n                    isComplete = true;\n                    subscription = undefined;\n                    subject.complete();\n                },\n            });\n        }\n        var innerSub = subject.subscribe(this);\n        this.add(function () {\n            refCount--;\n            innerSub.unsubscribe();\n            if (subscription && !isComplete && useRefCount && refCount === 0) {\n                subscription.unsubscribe();\n                subscription = undefined;\n                subject = undefined;\n            }\n        });\n    };\n}\n//# sourceMappingURL=shareReplay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nexport function single(predicate) {\n    return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = (function () {\n    function SingleOperator(predicate, source) {\n        this.predicate = predicate;\n        this.source = source;\n    }\n    SingleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n    };\n    return SingleOperator;\n}());\nvar SingleSubscriber = (function (_super) {\n    tslib_1.__extends(SingleSubscriber, _super);\n    function SingleSubscriber(destination, predicate, source) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.source = source;\n        _this.seenValue = false;\n        _this.index = 0;\n        return _this;\n    }\n    SingleSubscriber.prototype.applySingleValue = function (value) {\n        if (this.seenValue) {\n            this.destination.error('Sequence contains more than one element');\n        }\n        else {\n            this.seenValue = true;\n            this.singleValue = value;\n        }\n    };\n    SingleSubscriber.prototype._next = function (value) {\n        var index = this.index++;\n        if (this.predicate) {\n            this.tryNext(value, index);\n        }\n        else {\n            this.applySingleValue(value);\n        }\n    };\n    SingleSubscriber.prototype.tryNext = function (value, index) {\n        try {\n            if (this.predicate(value, index, this.source)) {\n                this.applySingleValue(value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    SingleSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        if (this.index > 0) {\n            destination.next(this.seenValue ? this.singleValue : undefined);\n            destination.complete();\n        }\n        else {\n            destination.error(new EmptyError);\n        }\n    };\n    return SingleSubscriber;\n}(Subscriber));\n//# sourceMappingURL=single.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n    return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n    function SkipOperator(total) {\n        this.total = total;\n    }\n    SkipOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SkipSubscriber(subscriber, this.total));\n    };\n    return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n    tslib_1.__extends(SkipSubscriber, _super);\n    function SkipSubscriber(destination, total) {\n        var _this = _super.call(this, destination) || this;\n        _this.total = total;\n        _this.count = 0;\n        return _this;\n    }\n    SkipSubscriber.prototype._next = function (x) {\n        if (++this.count > this.total) {\n            this.destination.next(x);\n        }\n    };\n    return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nexport function skipLast(count) {\n    return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = (function () {\n    function SkipLastOperator(_skipCount) {\n        this._skipCount = _skipCount;\n        if (this._skipCount < 0) {\n            throw new ArgumentOutOfRangeError;\n        }\n    }\n    SkipLastOperator.prototype.call = function (subscriber, source) {\n        if (this._skipCount === 0) {\n            return source.subscribe(new Subscriber(subscriber));\n        }\n        else {\n            return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n        }\n    };\n    return SkipLastOperator;\n}());\nvar SkipLastSubscriber = (function (_super) {\n    tslib_1.__extends(SkipLastSubscriber, _super);\n    function SkipLastSubscriber(destination, _skipCount) {\n        var _this = _super.call(this, destination) || this;\n        _this._skipCount = _skipCount;\n        _this._count = 0;\n        _this._ring = new Array(_skipCount);\n        return _this;\n    }\n    SkipLastSubscriber.prototype._next = function (value) {\n        var skipCount = this._skipCount;\n        var count = this._count++;\n        if (count < skipCount) {\n            this._ring[count] = value;\n        }\n        else {\n            var currentIndex = count % skipCount;\n            var ring = this._ring;\n            var oldValue = ring[currentIndex];\n            ring[currentIndex] = value;\n            this.destination.next(oldValue);\n        }\n    };\n    return SkipLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipLast.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function skipUntil(notifier) {\n    return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = (function () {\n    function SkipUntilOperator(notifier) {\n        this.notifier = notifier;\n    }\n    SkipUntilOperator.prototype.call = function (destination, source) {\n        return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n    };\n    return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = (function (_super) {\n    tslib_1.__extends(SkipUntilSubscriber, _super);\n    function SkipUntilSubscriber(destination, notifier) {\n        var _this = _super.call(this, destination) || this;\n        _this.hasValue = false;\n        var innerSubscriber = new InnerSubscriber(_this, undefined, undefined);\n        _this.add(innerSubscriber);\n        _this.innerSubscription = innerSubscriber;\n        var innerSubscription = subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);\n        if (innerSubscription !== innerSubscriber) {\n            _this.add(innerSubscription);\n            _this.innerSubscription = innerSubscription;\n        }\n        return _this;\n    }\n    SkipUntilSubscriber.prototype._next = function (value) {\n        if (this.hasValue) {\n            _super.prototype._next.call(this, value);\n        }\n    };\n    SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.hasValue = true;\n        if (this.innerSubscription) {\n            this.innerSubscription.unsubscribe();\n        }\n    };\n    SkipUntilSubscriber.prototype.notifyComplete = function () {\n    };\n    return SkipUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=skipUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n    return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = (function () {\n    function SkipWhileOperator(predicate) {\n        this.predicate = predicate;\n    }\n    SkipWhileOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n    };\n    return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = (function (_super) {\n    tslib_1.__extends(SkipWhileSubscriber, _super);\n    function SkipWhileSubscriber(destination, predicate) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.skipping = true;\n        _this.index = 0;\n        return _this;\n    }\n    SkipWhileSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        if (this.skipping) {\n            this.tryCallPredicate(value);\n        }\n        if (!this.skipping) {\n            destination.next(value);\n        }\n    };\n    SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n        try {\n            var result = this.predicate(value, this.index++);\n            this.skipping = Boolean(result);\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    return SkipWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipWhile.js.map","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n    var array = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        array[_i] = arguments[_i];\n    }\n    var scheduler = array[array.length - 1];\n    if (isScheduler(scheduler)) {\n        array.pop();\n        return function (source) { return concat(array, source, scheduler); };\n    }\n    else {\n        return function (source) { return concat(array, source); };\n    }\n}\n//# sourceMappingURL=startWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\nvar SubscribeOnObservable = (function (_super) {\n    tslib_1.__extends(SubscribeOnObservable, _super);\n    function SubscribeOnObservable(source, delayTime, scheduler) {\n        if (delayTime === void 0) { delayTime = 0; }\n        if (scheduler === void 0) { scheduler = asap; }\n        var _this = _super.call(this) || this;\n        _this.source = source;\n        _this.delayTime = delayTime;\n        _this.scheduler = scheduler;\n        if (!isNumeric(delayTime) || delayTime < 0) {\n            _this.delayTime = 0;\n        }\n        if (!scheduler || typeof scheduler.schedule !== 'function') {\n            _this.scheduler = asap;\n        }\n        return _this;\n    }\n    SubscribeOnObservable.create = function (source, delay, scheduler) {\n        if (delay === void 0) { delay = 0; }\n        if (scheduler === void 0) { scheduler = asap; }\n        return new SubscribeOnObservable(source, delay, scheduler);\n    };\n    SubscribeOnObservable.dispatch = function (arg) {\n        var source = arg.source, subscriber = arg.subscriber;\n        return this.add(source.subscribe(subscriber));\n    };\n    SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n        var delay = this.delayTime;\n        var source = this.source;\n        var scheduler = this.scheduler;\n        return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n            source: source, subscriber: subscriber\n        });\n    };\n    return SubscribeOnObservable;\n}(Observable));\nexport { SubscribeOnObservable };\n//# sourceMappingURL=SubscribeOnObservable.js.map","import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nexport function subscribeOn(scheduler, delay) {\n    if (delay === void 0) { delay = 0; }\n    return function subscribeOnOperatorFunction(source) {\n        return source.lift(new SubscribeOnOperator(scheduler, delay));\n    };\n}\nvar SubscribeOnOperator = (function () {\n    function SubscribeOnOperator(scheduler, delay) {\n        this.scheduler = scheduler;\n        this.delay = delay;\n    }\n    SubscribeOnOperator.prototype.call = function (subscriber, source) {\n        return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n    };\n    return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n    if (typeof resultSelector === 'function') {\n        return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n    }\n    return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n    function SwitchMapOperator(project) {\n        this.project = project;\n    }\n    SwitchMapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n    };\n    return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n    tslib_1.__extends(SwitchMapSubscriber, _super);\n    function SwitchMapSubscriber(destination, project) {\n        var _this = _super.call(this, destination) || this;\n        _this.project = project;\n        _this.index = 0;\n        return _this;\n    }\n    SwitchMapSubscriber.prototype._next = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (error) {\n            this.destination.error(error);\n            return;\n        }\n        this._innerSub(result, value, index);\n    };\n    SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n        var innerSubscription = this.innerSubscription;\n        if (innerSubscription) {\n            innerSubscription.unsubscribe();\n        }\n        var innerSubscriber = new InnerSubscriber(this, value, index);\n        var destination = this.destination;\n        destination.add(innerSubscriber);\n        this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n        if (this.innerSubscription !== innerSubscriber) {\n            destination.add(this.innerSubscription);\n        }\n    };\n    SwitchMapSubscriber.prototype._complete = function () {\n        var innerSubscription = this.innerSubscription;\n        if (!innerSubscription || innerSubscription.closed) {\n            _super.prototype._complete.call(this);\n        }\n        this.unsubscribe();\n    };\n    SwitchMapSubscriber.prototype._unsubscribe = function () {\n        this.innerSubscription = null;\n    };\n    SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        var destination = this.destination;\n        destination.remove(innerSub);\n        this.innerSubscription = null;\n        if (this.isStopped) {\n            _super.prototype._complete.call(this);\n        }\n    };\n    SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map","import { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n    return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n    return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n    return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = (function () {\n    function TakeUntilOperator(notifier) {\n        this.notifier = notifier;\n    }\n    TakeUntilOperator.prototype.call = function (subscriber, source) {\n        var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n        var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n        if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n            takeUntilSubscriber.add(notifierSubscription);\n            return source.subscribe(takeUntilSubscriber);\n        }\n        return takeUntilSubscriber;\n    };\n    return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = (function (_super) {\n    tslib_1.__extends(TakeUntilSubscriber, _super);\n    function TakeUntilSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.seenValue = false;\n        return _this;\n    }\n    TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.seenValue = true;\n        this.complete();\n    };\n    TakeUntilSubscriber.prototype.notifyComplete = function () {\n    };\n    return TakeUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive) {\n    if (inclusive === void 0) { inclusive = false; }\n    return function (source) {\n        return source.lift(new TakeWhileOperator(predicate, inclusive));\n    };\n}\nvar TakeWhileOperator = (function () {\n    function TakeWhileOperator(predicate, inclusive) {\n        this.predicate = predicate;\n        this.inclusive = inclusive;\n    }\n    TakeWhileOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n    };\n    return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = (function (_super) {\n    tslib_1.__extends(TakeWhileSubscriber, _super);\n    function TakeWhileSubscriber(destination, predicate, inclusive) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.inclusive = inclusive;\n        _this.index = 0;\n        return _this;\n    }\n    TakeWhileSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        var result;\n        try {\n            result = this.predicate(value, this.index++);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        this.nextOrComplete(value, result);\n    };\n    TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n        var destination = this.destination;\n        if (Boolean(predicateResult)) {\n            destination.next(value);\n        }\n        else {\n            if (this.inclusive) {\n                destination.next(value);\n            }\n            destination.complete();\n        }\n    };\n    return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n    return function tapOperatorFunction(source) {\n        return source.lift(new DoOperator(nextOrObserver, error, complete));\n    };\n}\nvar DoOperator = (function () {\n    function DoOperator(nextOrObserver, error, complete) {\n        this.nextOrObserver = nextOrObserver;\n        this.error = error;\n        this.complete = complete;\n    }\n    DoOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n    };\n    return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n    tslib_1.__extends(TapSubscriber, _super);\n    function TapSubscriber(destination, observerOrNext, error, complete) {\n        var _this = _super.call(this, destination) || this;\n        _this._tapNext = noop;\n        _this._tapError = noop;\n        _this._tapComplete = noop;\n        _this._tapError = error || noop;\n        _this._tapComplete = complete || noop;\n        if (isFunction(observerOrNext)) {\n            _this._context = _this;\n            _this._tapNext = observerOrNext;\n        }\n        else if (observerOrNext) {\n            _this._context = observerOrNext;\n            _this._tapNext = observerOrNext.next || noop;\n            _this._tapError = observerOrNext.error || noop;\n            _this._tapComplete = observerOrNext.complete || noop;\n        }\n        return _this;\n    }\n    TapSubscriber.prototype._next = function (value) {\n        try {\n            this._tapNext.call(this._context, value);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(value);\n    };\n    TapSubscriber.prototype._error = function (err) {\n        try {\n            this._tapError.call(this._context, err);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.error(err);\n    };\n    TapSubscriber.prototype._complete = function () {\n        try {\n            this._tapComplete.call(this._context);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        return this.destination.complete();\n    };\n    return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n    leading: true,\n    trailing: false\n};\nexport function throttle(durationSelector, config) {\n    if (config === void 0) { config = defaultThrottleConfig; }\n    return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n    function ThrottleOperator(durationSelector, leading, trailing) {\n        this.durationSelector = durationSelector;\n        this.leading = leading;\n        this.trailing = trailing;\n    }\n    ThrottleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n    };\n    return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n    tslib_1.__extends(ThrottleSubscriber, _super);\n    function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.durationSelector = durationSelector;\n        _this._leading = _leading;\n        _this._trailing = _trailing;\n        _this._hasValue = false;\n        return _this;\n    }\n    ThrottleSubscriber.prototype._next = function (value) {\n        this._hasValue = true;\n        this._sendValue = value;\n        if (!this._throttled) {\n            if (this._leading) {\n                this.send();\n            }\n            else {\n                this.throttle(value);\n            }\n        }\n    };\n    ThrottleSubscriber.prototype.send = function () {\n        var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n        if (_hasValue) {\n            this.destination.next(_sendValue);\n            this.throttle(_sendValue);\n        }\n        this._hasValue = false;\n        this._sendValue = null;\n    };\n    ThrottleSubscriber.prototype.throttle = function (value) {\n        var duration = this.tryDurationSelector(value);\n        if (!!duration) {\n            this.add(this._throttled = subscribeToResult(this, duration));\n        }\n    };\n    ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n        try {\n            return this.durationSelector(value);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return null;\n        }\n    };\n    ThrottleSubscriber.prototype.throttlingDone = function () {\n        var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n        if (_throttled) {\n            _throttled.unsubscribe();\n        }\n        this._throttled = null;\n        if (_trailing) {\n            this.send();\n        }\n    };\n    ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.throttlingDone();\n    };\n    ThrottleSubscriber.prototype.notifyComplete = function () {\n        this.throttlingDone();\n    };\n    return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler, config) {\n    if (scheduler === void 0) { scheduler = async; }\n    if (config === void 0) { config = defaultThrottleConfig; }\n    return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };\n}\nvar ThrottleTimeOperator = (function () {\n    function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n        this.duration = duration;\n        this.scheduler = scheduler;\n        this.leading = leading;\n        this.trailing = trailing;\n    }\n    ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n    };\n    return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = (function (_super) {\n    tslib_1.__extends(ThrottleTimeSubscriber, _super);\n    function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n        var _this = _super.call(this, destination) || this;\n        _this.duration = duration;\n        _this.scheduler = scheduler;\n        _this.leading = leading;\n        _this.trailing = trailing;\n        _this._hasTrailingValue = false;\n        _this._trailingValue = null;\n        return _this;\n    }\n    ThrottleTimeSubscriber.prototype._next = function (value) {\n        if (this.throttled) {\n            if (this.trailing) {\n                this._trailingValue = value;\n                this._hasTrailingValue = true;\n            }\n        }\n        else {\n            this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n            if (this.leading) {\n                this.destination.next(value);\n            }\n            else if (this.trailing) {\n                this._trailingValue = value;\n                this._hasTrailingValue = true;\n            }\n        }\n    };\n    ThrottleTimeSubscriber.prototype._complete = function () {\n        if (this._hasTrailingValue) {\n            this.destination.next(this._trailingValue);\n            this.destination.complete();\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n        var throttled = this.throttled;\n        if (throttled) {\n            if (this.trailing && this._hasTrailingValue) {\n                this.destination.next(this._trailingValue);\n                this._trailingValue = null;\n                this._hasTrailingValue = false;\n            }\n            throttled.unsubscribe();\n            this.remove(throttled);\n            this.throttled = null;\n        }\n    };\n    return ThrottleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(arg) {\n    var subscriber = arg.subscriber;\n    subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map","import { async } from '../scheduler/async';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\nexport function timeInterval(scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return function (source) { return defer(function () {\n        return source.pipe(scan(function (_a, value) {\n            var current = _a.current;\n            return ({ value: value, current: scheduler.now(), last: current });\n        }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {\n            var current = _a.current, last = _a.last, value = _a.value;\n            return new TimeInterval(value, current - last);\n        }));\n    }); };\n}\nvar TimeInterval = (function () {\n    function TimeInterval(value, interval) {\n        this.value = value;\n        this.interval = interval;\n    }\n    return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function timeoutWith(due, withObservable, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return function (source) {\n        var absoluteTimeout = isDate(due);\n        var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n        return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n    };\n}\nvar TimeoutWithOperator = (function () {\n    function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n        this.waitFor = waitFor;\n        this.absoluteTimeout = absoluteTimeout;\n        this.withObservable = withObservable;\n        this.scheduler = scheduler;\n    }\n    TimeoutWithOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n    };\n    return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = (function (_super) {\n    tslib_1.__extends(TimeoutWithSubscriber, _super);\n    function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.absoluteTimeout = absoluteTimeout;\n        _this.waitFor = waitFor;\n        _this.withObservable = withObservable;\n        _this.scheduler = scheduler;\n        _this.action = null;\n        _this.scheduleTimeout();\n        return _this;\n    }\n    TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n        var withObservable = subscriber.withObservable;\n        subscriber._unsubscribeAndRecycle();\n        subscriber.add(subscribeToResult(subscriber, withObservable));\n    };\n    TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n        var action = this.action;\n        if (action) {\n            this.action = action.schedule(this, this.waitFor);\n        }\n        else {\n            this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n        }\n    };\n    TimeoutWithSubscriber.prototype._next = function (value) {\n        if (!this.absoluteTimeout) {\n            this.scheduleTimeout();\n        }\n        _super.prototype._next.call(this, value);\n    };\n    TimeoutWithSubscriber.prototype._unsubscribe = function () {\n        this.action = null;\n        this.scheduler = null;\n        this.withObservable = null;\n    };\n    return TimeoutWithSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=timeoutWith.js.map","import { async } from '../scheduler/async';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\nexport function timeout(due, scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map","import { async } from '../scheduler/async';\nimport { map } from './map';\nexport function timestamp(scheduler) {\n    if (scheduler === void 0) { scheduler = async; }\n    return map(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = (function () {\n    function Timestamp(value, timestamp) {\n        this.value = value;\n        this.timestamp = timestamp;\n    }\n    return Timestamp;\n}());\nexport { Timestamp };\n//# sourceMappingURL=timestamp.js.map","import { reduce } from './reduce';\nfunction toArrayReducer(arr, item, index) {\n    if (index === 0) {\n        return [item];\n    }\n    arr.push(item);\n    return arr;\n}\nexport function toArray() {\n    return reduce(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function window(windowBoundaries) {\n    return function windowOperatorFunction(source) {\n        return source.lift(new WindowOperator(windowBoundaries));\n    };\n}\nvar WindowOperator = (function () {\n    function WindowOperator(windowBoundaries) {\n        this.windowBoundaries = windowBoundaries;\n    }\n    WindowOperator.prototype.call = function (subscriber, source) {\n        var windowSubscriber = new WindowSubscriber(subscriber);\n        var sourceSubscription = source.subscribe(windowSubscriber);\n        if (!sourceSubscription.closed) {\n            windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));\n        }\n        return sourceSubscription;\n    };\n    return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n    tslib_1.__extends(WindowSubscriber, _super);\n    function WindowSubscriber(destination) {\n        var _this = _super.call(this, destination) || this;\n        _this.window = new Subject();\n        destination.next(_this.window);\n        return _this;\n    }\n    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openWindow();\n    };\n    WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n        this._complete();\n    };\n    WindowSubscriber.prototype._next = function (value) {\n        this.window.next(value);\n    };\n    WindowSubscriber.prototype._error = function (err) {\n        this.window.error(err);\n        this.destination.error(err);\n    };\n    WindowSubscriber.prototype._complete = function () {\n        this.window.complete();\n        this.destination.complete();\n    };\n    WindowSubscriber.prototype._unsubscribe = function () {\n        this.window = null;\n    };\n    WindowSubscriber.prototype.openWindow = function () {\n        var prevWindow = this.window;\n        if (prevWindow) {\n            prevWindow.complete();\n        }\n        var destination = this.destination;\n        var newWindow = this.window = new Subject();\n        destination.next(newWindow);\n    };\n    return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=window.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\nexport function windowCount(windowSize, startWindowEvery) {\n    if (startWindowEvery === void 0) { startWindowEvery = 0; }\n    return function windowCountOperatorFunction(source) {\n        return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n    };\n}\nvar WindowCountOperator = (function () {\n    function WindowCountOperator(windowSize, startWindowEvery) {\n        this.windowSize = windowSize;\n        this.startWindowEvery = startWindowEvery;\n    }\n    WindowCountOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n    };\n    return WindowCountOperator;\n}());\nvar WindowCountSubscriber = (function (_super) {\n    tslib_1.__extends(WindowCountSubscriber, _super);\n    function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.windowSize = windowSize;\n        _this.startWindowEvery = startWindowEvery;\n        _this.windows = [new Subject()];\n        _this.count = 0;\n        destination.next(_this.windows[0]);\n        return _this;\n    }\n    WindowCountSubscriber.prototype._next = function (value) {\n        var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n        var destination = this.destination;\n        var windowSize = this.windowSize;\n        var windows = this.windows;\n        var len = windows.length;\n        for (var i = 0; i < len && !this.closed; i++) {\n            windows[i].next(value);\n        }\n        var c = this.count - windowSize + 1;\n        if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n            windows.shift().complete();\n        }\n        if (++this.count % startWindowEvery === 0 && !this.closed) {\n            var window_1 = new Subject();\n            windows.push(window_1);\n            destination.next(window_1);\n        }\n    };\n    WindowCountSubscriber.prototype._error = function (err) {\n        var windows = this.windows;\n        if (windows) {\n            while (windows.length > 0 && !this.closed) {\n                windows.shift().error(err);\n            }\n        }\n        this.destination.error(err);\n    };\n    WindowCountSubscriber.prototype._complete = function () {\n        var windows = this.windows;\n        if (windows) {\n            while (windows.length > 0 && !this.closed) {\n                windows.shift().complete();\n            }\n        }\n        this.destination.complete();\n    };\n    WindowCountSubscriber.prototype._unsubscribe = function () {\n        this.count = 0;\n        this.windows = null;\n    };\n    return WindowCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=windowCount.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function windowTime(windowTimeSpan) {\n    var scheduler = async;\n    var windowCreationInterval = null;\n    var maxWindowSize = Number.POSITIVE_INFINITY;\n    if (isScheduler(arguments[3])) {\n        scheduler = arguments[3];\n    }\n    if (isScheduler(arguments[2])) {\n        scheduler = arguments[2];\n    }\n    else if (isNumeric(arguments[2])) {\n        maxWindowSize = arguments[2];\n    }\n    if (isScheduler(arguments[1])) {\n        scheduler = arguments[1];\n    }\n    else if (isNumeric(arguments[1])) {\n        windowCreationInterval = arguments[1];\n    }\n    return function windowTimeOperatorFunction(source) {\n        return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n    };\n}\nvar WindowTimeOperator = (function () {\n    function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n        this.windowTimeSpan = windowTimeSpan;\n        this.windowCreationInterval = windowCreationInterval;\n        this.maxWindowSize = maxWindowSize;\n        this.scheduler = scheduler;\n    }\n    WindowTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n    };\n    return WindowTimeOperator;\n}());\nvar CountedSubject = (function (_super) {\n    tslib_1.__extends(CountedSubject, _super);\n    function CountedSubject() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this._numberOfNextedValues = 0;\n        return _this;\n    }\n    CountedSubject.prototype.next = function (value) {\n        this._numberOfNextedValues++;\n        _super.prototype.next.call(this, value);\n    };\n    Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n        get: function () {\n            return this._numberOfNextedValues;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    return CountedSubject;\n}(Subject));\nvar WindowTimeSubscriber = (function (_super) {\n    tslib_1.__extends(WindowTimeSubscriber, _super);\n    function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.windowTimeSpan = windowTimeSpan;\n        _this.windowCreationInterval = windowCreationInterval;\n        _this.maxWindowSize = maxWindowSize;\n        _this.scheduler = scheduler;\n        _this.windows = [];\n        var window = _this.openWindow();\n        if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n            var closeState = { subscriber: _this, window: window, context: null };\n            var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n            _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n            _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n        }\n        else {\n            var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n            _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n        }\n        return _this;\n    }\n    WindowTimeSubscriber.prototype._next = function (value) {\n        var windows = this.windows;\n        var len = windows.length;\n        for (var i = 0; i < len; i++) {\n            var window_1 = windows[i];\n            if (!window_1.closed) {\n                window_1.next(value);\n                if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n                    this.closeWindow(window_1);\n                }\n            }\n        }\n    };\n    WindowTimeSubscriber.prototype._error = function (err) {\n        var windows = this.windows;\n        while (windows.length > 0) {\n            windows.shift().error(err);\n        }\n        this.destination.error(err);\n    };\n    WindowTimeSubscriber.prototype._complete = function () {\n        var windows = this.windows;\n        while (windows.length > 0) {\n            var window_2 = windows.shift();\n            if (!window_2.closed) {\n                window_2.complete();\n            }\n        }\n        this.destination.complete();\n    };\n    WindowTimeSubscriber.prototype.openWindow = function () {\n        var window = new CountedSubject();\n        this.windows.push(window);\n        var destination = this.destination;\n        destination.next(window);\n        return window;\n    };\n    WindowTimeSubscriber.prototype.closeWindow = function (window) {\n        window.complete();\n        var windows = this.windows;\n        windows.splice(windows.indexOf(window), 1);\n    };\n    return WindowTimeSubscriber;\n}(Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n    var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n    if (window) {\n        subscriber.closeWindow(window);\n    }\n    state.window = subscriber.openWindow();\n    this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n    var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n    var window = subscriber.openWindow();\n    var action = this;\n    var context = { action: action, subscription: null };\n    var timeSpanState = { subscriber: subscriber, window: window, context: context };\n    context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n    action.add(context.subscription);\n    action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n    var subscriber = state.subscriber, window = state.window, context = state.context;\n    if (context && context.action && context.subscription) {\n        context.action.remove(context.subscription);\n    }\n    subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n    return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = (function () {\n    function WindowToggleOperator(openings, closingSelector) {\n        this.openings = openings;\n        this.closingSelector = closingSelector;\n    }\n    WindowToggleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n    };\n    return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = (function (_super) {\n    tslib_1.__extends(WindowToggleSubscriber, _super);\n    function WindowToggleSubscriber(destination, openings, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.openings = openings;\n        _this.closingSelector = closingSelector;\n        _this.contexts = [];\n        _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n        return _this;\n    }\n    WindowToggleSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        if (contexts) {\n            var len = contexts.length;\n            for (var i = 0; i < len; i++) {\n                contexts[i].window.next(value);\n            }\n        }\n    };\n    WindowToggleSubscriber.prototype._error = function (err) {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context_1 = contexts[index];\n                context_1.window.error(err);\n                context_1.subscription.unsubscribe();\n            }\n        }\n        _super.prototype._error.call(this, err);\n    };\n    WindowToggleSubscriber.prototype._complete = function () {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context_2 = contexts[index];\n                context_2.window.complete();\n                context_2.subscription.unsubscribe();\n            }\n        }\n        _super.prototype._complete.call(this);\n    };\n    WindowToggleSubscriber.prototype._unsubscribe = function () {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context_3 = contexts[index];\n                context_3.window.unsubscribe();\n                context_3.subscription.unsubscribe();\n            }\n        }\n    };\n    WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (outerValue === this.openings) {\n            var closingNotifier = void 0;\n            try {\n                var closingSelector = this.closingSelector;\n                closingNotifier = closingSelector(innerValue);\n            }\n            catch (e) {\n                return this.error(e);\n            }\n            var window_1 = new Subject();\n            var subscription = new Subscription();\n            var context_4 = { window: window_1, subscription: subscription };\n            this.contexts.push(context_4);\n            var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n            if (innerSubscription.closed) {\n                this.closeWindow(this.contexts.length - 1);\n            }\n            else {\n                innerSubscription.context = context_4;\n                subscription.add(innerSubscription);\n            }\n            this.destination.next(window_1);\n        }\n        else {\n            this.closeWindow(this.contexts.indexOf(outerValue));\n        }\n    };\n    WindowToggleSubscriber.prototype.notifyError = function (err) {\n        this.error(err);\n    };\n    WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n        if (inner !== this.openSubscription) {\n            this.closeWindow(this.contexts.indexOf(inner.context));\n        }\n    };\n    WindowToggleSubscriber.prototype.closeWindow = function (index) {\n        if (index === -1) {\n            return;\n        }\n        var contexts = this.contexts;\n        var context = contexts[index];\n        var window = context.window, subscription = context.subscription;\n        contexts.splice(index, 1);\n        window.complete();\n        subscription.unsubscribe();\n    };\n    return WindowToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n    return function windowWhenOperatorFunction(source) {\n        return source.lift(new WindowOperator(closingSelector));\n    };\n}\nvar WindowOperator = (function () {\n    function WindowOperator(closingSelector) {\n        this.closingSelector = closingSelector;\n    }\n    WindowOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n    };\n    return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n    tslib_1.__extends(WindowSubscriber, _super);\n    function WindowSubscriber(destination, closingSelector) {\n        var _this = _super.call(this, destination) || this;\n        _this.destination = destination;\n        _this.closingSelector = closingSelector;\n        _this.openWindow();\n        return _this;\n    }\n    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openWindow(innerSub);\n    };\n    WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.openWindow(innerSub);\n    };\n    WindowSubscriber.prototype._next = function (value) {\n        this.window.next(value);\n    };\n    WindowSubscriber.prototype._error = function (err) {\n        this.window.error(err);\n        this.destination.error(err);\n        this.unsubscribeClosingNotification();\n    };\n    WindowSubscriber.prototype._complete = function () {\n        this.window.complete();\n        this.destination.complete();\n        this.unsubscribeClosingNotification();\n    };\n    WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n        if (this.closingNotification) {\n            this.closingNotification.unsubscribe();\n        }\n    };\n    WindowSubscriber.prototype.openWindow = function (innerSub) {\n        if (innerSub === void 0) { innerSub = null; }\n        if (innerSub) {\n            this.remove(innerSub);\n            innerSub.unsubscribe();\n        }\n        var prevWindow = this.window;\n        if (prevWindow) {\n            prevWindow.complete();\n        }\n        var window = this.window = new Subject();\n        this.destination.next(window);\n        var closingNotifier;\n        try {\n            var closingSelector = this.closingSelector;\n            closingNotifier = closingSelector();\n        }\n        catch (e) {\n            this.destination.error(e);\n            this.window.error(e);\n            return;\n        }\n        this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n    };\n    return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    return function (source) {\n        var project;\n        if (typeof args[args.length - 1] === 'function') {\n            project = args.pop();\n        }\n        var observables = args;\n        return source.lift(new WithLatestFromOperator(observables, project));\n    };\n}\nvar WithLatestFromOperator = (function () {\n    function WithLatestFromOperator(observables, project) {\n        this.observables = observables;\n        this.project = project;\n    }\n    WithLatestFromOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n    };\n    return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n    tslib_1.__extends(WithLatestFromSubscriber, _super);\n    function WithLatestFromSubscriber(destination, observables, project) {\n        var _this = _super.call(this, destination) || this;\n        _this.observables = observables;\n        _this.project = project;\n        _this.toRespond = [];\n        var len = observables.length;\n        _this.values = new Array(len);\n        for (var i = 0; i < len; i++) {\n            _this.toRespond.push(i);\n        }\n        for (var i = 0; i < len; i++) {\n            var observable = observables[i];\n            _this.add(subscribeToResult(_this, observable, observable, i));\n        }\n        return _this;\n    }\n    WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.values[outerIndex] = innerValue;\n        var toRespond = this.toRespond;\n        if (toRespond.length > 0) {\n            var found = toRespond.indexOf(outerIndex);\n            if (found !== -1) {\n                toRespond.splice(found, 1);\n            }\n        }\n    };\n    WithLatestFromSubscriber.prototype.notifyComplete = function () {\n    };\n    WithLatestFromSubscriber.prototype._next = function (value) {\n        if (this.toRespond.length === 0) {\n            var args = [value].concat(this.values);\n            if (this.project) {\n                this._tryProject(args);\n            }\n            else {\n                this.destination.next(args);\n            }\n        }\n    };\n    WithLatestFromSubscriber.prototype._tryProject = function (args) {\n        var result;\n        try {\n            result = this.project.apply(this, args);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map","import { zip as zipStatic } from '../observable/zip';\nexport function zip() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i] = arguments[_i];\n    }\n    return function zipOperatorFunction(source) {\n        return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n    };\n}\n//# sourceMappingURL=zip.js.map","import { ZipOperator } from '../observable/zip';\nexport function zipAll(project) {\n    return function (source) { return source.lift(new ZipOperator(project)); };\n}\n//# sourceMappingURL=zipAll.js.map","var SubscriptionLog = (function () {\n    function SubscriptionLog(subscribedFrame, unsubscribedFrame) {\n        if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; }\n        this.subscribedFrame = subscribedFrame;\n        this.unsubscribedFrame = unsubscribedFrame;\n    }\n    return SubscriptionLog;\n}());\nexport { SubscriptionLog };\n//# sourceMappingURL=SubscriptionLog.js.map","import { SubscriptionLog } from './SubscriptionLog';\nvar SubscriptionLoggable = (function () {\n    function SubscriptionLoggable() {\n        this.subscriptions = [];\n    }\n    SubscriptionLoggable.prototype.logSubscribedFrame = function () {\n        this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));\n        return this.subscriptions.length - 1;\n    };\n    SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {\n        var subscriptionLogs = this.subscriptions;\n        var oldSubscriptionLog = subscriptionLogs[index];\n        subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());\n    };\n    return SubscriptionLoggable;\n}());\nexport { SubscriptionLoggable };\n//# sourceMappingURL=SubscriptionLoggable.js.map","export function applyMixins(derivedCtor, baseCtors) {\n    for (var i = 0, len = baseCtors.length; i < len; i++) {\n        var baseCtor = baseCtors[i];\n        var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);\n        for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {\n            var name_1 = propertyKeys[j];\n            derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];\n        }\n    }\n}\n//# sourceMappingURL=applyMixins.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar ColdObservable = (function (_super) {\n    tslib_1.__extends(ColdObservable, _super);\n    function ColdObservable(messages, scheduler) {\n        var _this = _super.call(this, function (subscriber) {\n            var observable = this;\n            var index = observable.logSubscribedFrame();\n            var subscription = new Subscription();\n            subscription.add(new Subscription(function () {\n                observable.logUnsubscribedFrame(index);\n            }));\n            observable.scheduleMessages(subscriber);\n            return subscription;\n        }) || this;\n        _this.messages = messages;\n        _this.subscriptions = [];\n        _this.scheduler = scheduler;\n        return _this;\n    }\n    ColdObservable.prototype.scheduleMessages = function (subscriber) {\n        var messagesLength = this.messages.length;\n        for (var i = 0; i < messagesLength; i++) {\n            var message = this.messages[i];\n            subscriber.add(this.scheduler.schedule(function (_a) {\n                var message = _a.message, subscriber = _a.subscriber;\n                message.notification.observe(subscriber);\n            }, message.frame, { message: message, subscriber: subscriber }));\n        }\n    };\n    return ColdObservable;\n}(Observable));\nexport { ColdObservable };\napplyMixins(ColdObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=ColdObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar HotObservable = (function (_super) {\n    tslib_1.__extends(HotObservable, _super);\n    function HotObservable(messages, scheduler) {\n        var _this = _super.call(this) || this;\n        _this.messages = messages;\n        _this.subscriptions = [];\n        _this.scheduler = scheduler;\n        return _this;\n    }\n    HotObservable.prototype._subscribe = function (subscriber) {\n        var subject = this;\n        var index = subject.logSubscribedFrame();\n        var subscription = new Subscription();\n        subscription.add(new Subscription(function () {\n            subject.logUnsubscribedFrame(index);\n        }));\n        subscription.add(_super.prototype._subscribe.call(this, subscriber));\n        return subscription;\n    };\n    HotObservable.prototype.setup = function () {\n        var subject = this;\n        var messagesLength = subject.messages.length;\n        for (var i = 0; i < messagesLength; i++) {\n            (function () {\n                var message = subject.messages[i];\n                subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);\n            })();\n        }\n    };\n    return HotObservable;\n}(Subject));\nexport { HotObservable };\napplyMixins(HotObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=HotObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Notification } from '../Notification';\nimport { ColdObservable } from './ColdObservable';\nimport { HotObservable } from './HotObservable';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler';\nimport { AsyncScheduler } from '../scheduler/AsyncScheduler';\nvar defaultMaxFrame = 750;\nvar TestScheduler = (function (_super) {\n    tslib_1.__extends(TestScheduler, _super);\n    function TestScheduler(assertDeepEqual) {\n        var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this;\n        _this.assertDeepEqual = assertDeepEqual;\n        _this.hotObservables = [];\n        _this.coldObservables = [];\n        _this.flushTests = [];\n        _this.runMode = false;\n        return _this;\n    }\n    TestScheduler.prototype.createTime = function (marbles) {\n        var indexOf = marbles.indexOf('|');\n        if (indexOf === -1) {\n            throw new Error('marble diagram for time should have a completion marker \"|\"');\n        }\n        return indexOf * TestScheduler.frameTimeFactor;\n    };\n    TestScheduler.prototype.createColdObservable = function (marbles, values, error) {\n        if (marbles.indexOf('^') !== -1) {\n            throw new Error('cold observable cannot have subscription offset \"^\"');\n        }\n        if (marbles.indexOf('!') !== -1) {\n            throw new Error('cold observable cannot have unsubscription marker \"!\"');\n        }\n        var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n        var cold = new ColdObservable(messages, this);\n        this.coldObservables.push(cold);\n        return cold;\n    };\n    TestScheduler.prototype.createHotObservable = function (marbles, values, error) {\n        if (marbles.indexOf('!') !== -1) {\n            throw new Error('hot observable cannot have unsubscription marker \"!\"');\n        }\n        var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n        var subject = new HotObservable(messages, this);\n        this.hotObservables.push(subject);\n        return subject;\n    };\n    TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {\n        var _this = this;\n        var messages = [];\n        observable.subscribe(function (value) {\n            messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) });\n        }, function (err) {\n            messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) });\n        }, function () {\n            messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() });\n        });\n        return messages;\n    };\n    TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {\n        var _this = this;\n        if (subscriptionMarbles === void 0) { subscriptionMarbles = null; }\n        var actual = [];\n        var flushTest = { actual: actual, ready: false };\n        var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);\n        var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?\n            0 : subscriptionParsed.subscribedFrame;\n        var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;\n        var subscription;\n        this.schedule(function () {\n            subscription = observable.subscribe(function (x) {\n                var value = x;\n                if (x instanceof Observable) {\n                    value = _this.materializeInnerObservable(value, _this.frame);\n                }\n                actual.push({ frame: _this.frame, notification: Notification.createNext(value) });\n            }, function (err) {\n                actual.push({ frame: _this.frame, notification: Notification.createError(err) });\n            }, function () {\n                actual.push({ frame: _this.frame, notification: Notification.createComplete() });\n            });\n        }, subscriptionFrame);\n        if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n            this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);\n        }\n        this.flushTests.push(flushTest);\n        var runMode = this.runMode;\n        return {\n            toBe: function (marbles, values, errorValue) {\n                flushTest.ready = true;\n                flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);\n            }\n        };\n    };\n    TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {\n        var flushTest = { actual: actualSubscriptionLogs, ready: false };\n        this.flushTests.push(flushTest);\n        var runMode = this.runMode;\n        return {\n            toBe: function (marbles) {\n                var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;\n                flushTest.ready = true;\n                flushTest.expected = marblesArray.map(function (marbles) {\n                    return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode);\n                });\n            }\n        };\n    };\n    TestScheduler.prototype.flush = function () {\n        var _this = this;\n        var hotObservables = this.hotObservables;\n        while (hotObservables.length > 0) {\n            hotObservables.shift().setup();\n        }\n        _super.prototype.flush.call(this);\n        this.flushTests = this.flushTests.filter(function (test) {\n            if (test.ready) {\n                _this.assertDeepEqual(test.actual, test.expected);\n                return false;\n            }\n            return true;\n        });\n    };\n    TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {\n        var _this = this;\n        if (runMode === void 0) { runMode = false; }\n        if (typeof marbles !== 'string') {\n            return new SubscriptionLog(Number.POSITIVE_INFINITY);\n        }\n        var len = marbles.length;\n        var groupStart = -1;\n        var subscriptionFrame = Number.POSITIVE_INFINITY;\n        var unsubscriptionFrame = Number.POSITIVE_INFINITY;\n        var frame = 0;\n        var _loop_1 = function (i) {\n            var nextFrame = frame;\n            var advanceFrameBy = function (count) {\n                nextFrame += count * _this.frameTimeFactor;\n            };\n            var c = marbles[i];\n            switch (c) {\n                case ' ':\n                    if (!runMode) {\n                        advanceFrameBy(1);\n                    }\n                    break;\n                case '-':\n                    advanceFrameBy(1);\n                    break;\n                case '(':\n                    groupStart = frame;\n                    advanceFrameBy(1);\n                    break;\n                case ')':\n                    groupStart = -1;\n                    advanceFrameBy(1);\n                    break;\n                case '^':\n                    if (subscriptionFrame !== Number.POSITIVE_INFINITY) {\n                        throw new Error('found a second subscription point \\'^\\' in a ' +\n                            'subscription marble diagram. There can only be one.');\n                    }\n                    subscriptionFrame = groupStart > -1 ? groupStart : frame;\n                    advanceFrameBy(1);\n                    break;\n                case '!':\n                    if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n                        throw new Error('found a second subscription point \\'^\\' in a ' +\n                            'subscription marble diagram. There can only be one.');\n                    }\n                    unsubscriptionFrame = groupStart > -1 ? groupStart : frame;\n                    break;\n                default:\n                    if (runMode && c.match(/^[0-9]$/)) {\n                        if (i === 0 || marbles[i - 1] === ' ') {\n                            var buffer = marbles.slice(i);\n                            var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n                            if (match) {\n                                i += match[0].length - 1;\n                                var duration = parseFloat(match[1]);\n                                var unit = match[2];\n                                var durationInMs = void 0;\n                                switch (unit) {\n                                    case 'ms':\n                                        durationInMs = duration;\n                                        break;\n                                    case 's':\n                                        durationInMs = duration * 1000;\n                                        break;\n                                    case 'm':\n                                        durationInMs = duration * 1000 * 60;\n                                        break;\n                                    default:\n                                        break;\n                                }\n                                advanceFrameBy(durationInMs / this_1.frameTimeFactor);\n                                break;\n                            }\n                        }\n                    }\n                    throw new Error('there can only be \\'^\\' and \\'!\\' markers in a ' +\n                        'subscription marble diagram. Found instead \\'' + c + '\\'.');\n            }\n            frame = nextFrame;\n            out_i_1 = i;\n        };\n        var this_1 = this, out_i_1;\n        for (var i = 0; i < len; i++) {\n            _loop_1(i);\n            i = out_i_1;\n        }\n        if (unsubscriptionFrame < 0) {\n            return new SubscriptionLog(subscriptionFrame);\n        }\n        else {\n            return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);\n        }\n    };\n    TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {\n        var _this = this;\n        if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }\n        if (runMode === void 0) { runMode = false; }\n        if (marbles.indexOf('!') !== -1) {\n            throw new Error('conventional marble diagrams cannot have the ' +\n                'unsubscription marker \"!\"');\n        }\n        var len = marbles.length;\n        var testMessages = [];\n        var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');\n        var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);\n        var getValue = typeof values !== 'object' ?\n            function (x) { return x; } :\n            function (x) {\n                if (materializeInnerObservables && values[x] instanceof ColdObservable) {\n                    return values[x].messages;\n                }\n                return values[x];\n            };\n        var groupStart = -1;\n        var _loop_2 = function (i) {\n            var nextFrame = frame;\n            var advanceFrameBy = function (count) {\n                nextFrame += count * _this.frameTimeFactor;\n            };\n            var notification = void 0;\n            var c = marbles[i];\n            switch (c) {\n                case ' ':\n                    if (!runMode) {\n                        advanceFrameBy(1);\n                    }\n                    break;\n                case '-':\n                    advanceFrameBy(1);\n                    break;\n                case '(':\n                    groupStart = frame;\n                    advanceFrameBy(1);\n                    break;\n                case ')':\n                    groupStart = -1;\n                    advanceFrameBy(1);\n                    break;\n                case '|':\n                    notification = Notification.createComplete();\n                    advanceFrameBy(1);\n                    break;\n                case '^':\n                    advanceFrameBy(1);\n                    break;\n                case '#':\n                    notification = Notification.createError(errorValue || 'error');\n                    advanceFrameBy(1);\n                    break;\n                default:\n                    if (runMode && c.match(/^[0-9]$/)) {\n                        if (i === 0 || marbles[i - 1] === ' ') {\n                            var buffer = marbles.slice(i);\n                            var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n                            if (match) {\n                                i += match[0].length - 1;\n                                var duration = parseFloat(match[1]);\n                                var unit = match[2];\n                                var durationInMs = void 0;\n                                switch (unit) {\n                                    case 'ms':\n                                        durationInMs = duration;\n                                        break;\n                                    case 's':\n                                        durationInMs = duration * 1000;\n                                        break;\n                                    case 'm':\n                                        durationInMs = duration * 1000 * 60;\n                                        break;\n                                    default:\n                                        break;\n                                }\n                                advanceFrameBy(durationInMs / this_2.frameTimeFactor);\n                                break;\n                            }\n                        }\n                    }\n                    notification = Notification.createNext(getValue(c));\n                    advanceFrameBy(1);\n                    break;\n            }\n            if (notification) {\n                testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });\n            }\n            frame = nextFrame;\n            out_i_2 = i;\n        };\n        var this_2 = this, out_i_2;\n        for (var i = 0; i < len; i++) {\n            _loop_2(i);\n            i = out_i_2;\n        }\n        return testMessages;\n    };\n    TestScheduler.prototype.run = function (callback) {\n        var prevFrameTimeFactor = TestScheduler.frameTimeFactor;\n        var prevMaxFrames = this.maxFrames;\n        TestScheduler.frameTimeFactor = 1;\n        this.maxFrames = Number.POSITIVE_INFINITY;\n        this.runMode = true;\n        AsyncScheduler.delegate = this;\n        var helpers = {\n            cold: this.createColdObservable.bind(this),\n            hot: this.createHotObservable.bind(this),\n            flush: this.flush.bind(this),\n            expectObservable: this.expectObservable.bind(this),\n            expectSubscriptions: this.expectSubscriptions.bind(this),\n        };\n        try {\n            var ret = callback(helpers);\n            this.flush();\n            return ret;\n        }\n        finally {\n            TestScheduler.frameTimeFactor = prevFrameTimeFactor;\n            this.maxFrames = prevMaxFrames;\n            this.runMode = false;\n            AsyncScheduler.delegate = undefined;\n        }\n    };\n    return TestScheduler;\n}(VirtualTimeScheduler));\nexport { TestScheduler };\n//# sourceMappingURL=TestScheduler.js.map","var __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n    self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n    if (!_root) {\n        throw new Error('RxJS could not find any global context (window, self, global)');\n    }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map","import * as tslib_1 from \"tslib\";\nimport { root } from '../../util/root';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n    if (root.XMLHttpRequest) {\n        return new root.XMLHttpRequest();\n    }\n    else if (!!root.XDomainRequest) {\n        return new root.XDomainRequest();\n    }\n    else {\n        throw new Error('CORS is not supported by your browser');\n    }\n}\nfunction getXMLHttpRequest() {\n    if (root.XMLHttpRequest) {\n        return new root.XMLHttpRequest();\n    }\n    else {\n        var progId = void 0;\n        try {\n            var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n            for (var i = 0; i < 3; i++) {\n                try {\n                    progId = progIds[i];\n                    if (new root.ActiveXObject(progId)) {\n                        break;\n                    }\n                }\n                catch (e) {\n                }\n            }\n            return new root.ActiveXObject(progId);\n        }\n        catch (e) {\n            throw new Error('XMLHttpRequest is not supported by your browser');\n        }\n    }\n}\nexport function ajaxGet(url, headers) {\n    if (headers === void 0) { headers = null; }\n    return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n    return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n    return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n    return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n    return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n    return mapResponse(new AjaxObservable({\n        method: 'GET',\n        url: url,\n        responseType: 'json',\n        headers: headers\n    }));\n}\nvar AjaxObservable = (function (_super) {\n    tslib_1.__extends(AjaxObservable, _super);\n    function AjaxObservable(urlOrRequest) {\n        var _this = _super.call(this) || this;\n        var request = {\n            async: true,\n            createXHR: function () {\n                return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n            },\n            crossDomain: true,\n            withCredentials: false,\n            headers: {},\n            method: 'GET',\n            responseType: 'json',\n            timeout: 0\n        };\n        if (typeof urlOrRequest === 'string') {\n            request.url = urlOrRequest;\n        }\n        else {\n            for (var prop in urlOrRequest) {\n                if (urlOrRequest.hasOwnProperty(prop)) {\n                    request[prop] = urlOrRequest[prop];\n                }\n            }\n        }\n        _this.request = request;\n        return _this;\n    }\n    AjaxObservable.prototype._subscribe = function (subscriber) {\n        return new AjaxSubscriber(subscriber, this.request);\n    };\n    AjaxObservable.create = (function () {\n        var create = function (urlOrRequest) {\n            return new AjaxObservable(urlOrRequest);\n        };\n        create.get = ajaxGet;\n        create.post = ajaxPost;\n        create.delete = ajaxDelete;\n        create.put = ajaxPut;\n        create.patch = ajaxPatch;\n        create.getJSON = ajaxGetJSON;\n        return create;\n    })();\n    return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = (function (_super) {\n    tslib_1.__extends(AjaxSubscriber, _super);\n    function AjaxSubscriber(destination, request) {\n        var _this = _super.call(this, destination) || this;\n        _this.request = request;\n        _this.done = false;\n        var headers = request.headers = request.headers || {};\n        if (!request.crossDomain && !_this.getHeader(headers, 'X-Requested-With')) {\n            headers['X-Requested-With'] = 'XMLHttpRequest';\n        }\n        var contentTypeHeader = _this.getHeader(headers, 'Content-Type');\n        if (!contentTypeHeader && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n            headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n        }\n        request.body = _this.serializeBody(request.body, _this.getHeader(request.headers, 'Content-Type'));\n        _this.send();\n        return _this;\n    }\n    AjaxSubscriber.prototype.next = function (e) {\n        this.done = true;\n        var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n        var result;\n        try {\n            result = new AjaxResponse(e, xhr, request);\n        }\n        catch (err) {\n            return destination.error(err);\n        }\n        destination.next(result);\n    };\n    AjaxSubscriber.prototype.send = function () {\n        var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n        try {\n            var xhr = this.xhr = request.createXHR();\n            this.setupEvents(xhr, request);\n            if (user) {\n                xhr.open(method, url, async, user, password);\n            }\n            else {\n                xhr.open(method, url, async);\n            }\n            if (async) {\n                xhr.timeout = request.timeout;\n                xhr.responseType = request.responseType;\n            }\n            if ('withCredentials' in xhr) {\n                xhr.withCredentials = !!request.withCredentials;\n            }\n            this.setHeaders(xhr, headers);\n            if (body) {\n                xhr.send(body);\n            }\n            else {\n                xhr.send();\n            }\n        }\n        catch (err) {\n            this.error(err);\n        }\n    };\n    AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n        if (!body || typeof body === 'string') {\n            return body;\n        }\n        else if (root.FormData && body instanceof root.FormData) {\n            return body;\n        }\n        if (contentType) {\n            var splitIndex = contentType.indexOf(';');\n            if (splitIndex !== -1) {\n                contentType = contentType.substring(0, splitIndex);\n            }\n        }\n        switch (contentType) {\n            case 'application/x-www-form-urlencoded':\n                return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n            case 'application/json':\n                return JSON.stringify(body);\n            default:\n                return body;\n        }\n    };\n    AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n        for (var key in headers) {\n            if (headers.hasOwnProperty(key)) {\n                xhr.setRequestHeader(key, headers[key]);\n            }\n        }\n    };\n    AjaxSubscriber.prototype.getHeader = function (headers, headerName) {\n        for (var key in headers) {\n            if (key.toLowerCase() === headerName.toLowerCase()) {\n                return headers[key];\n            }\n        }\n        return undefined;\n    };\n    AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n        var progressSubscriber = request.progressSubscriber;\n        function xhrTimeout(e) {\n            var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n            if (progressSubscriber) {\n                progressSubscriber.error(e);\n            }\n            var error;\n            try {\n                error = new AjaxTimeoutError(this, request);\n            }\n            catch (err) {\n                error = err;\n            }\n            subscriber.error(error);\n        }\n        xhr.ontimeout = xhrTimeout;\n        xhrTimeout.request = request;\n        xhrTimeout.subscriber = this;\n        xhrTimeout.progressSubscriber = progressSubscriber;\n        if (xhr.upload && 'withCredentials' in xhr) {\n            if (progressSubscriber) {\n                var xhrProgress_1;\n                xhrProgress_1 = function (e) {\n                    var progressSubscriber = xhrProgress_1.progressSubscriber;\n                    progressSubscriber.next(e);\n                };\n                if (root.XDomainRequest) {\n                    xhr.onprogress = xhrProgress_1;\n                }\n                else {\n                    xhr.upload.onprogress = xhrProgress_1;\n                }\n                xhrProgress_1.progressSubscriber = progressSubscriber;\n            }\n            var xhrError_1;\n            xhrError_1 = function (e) {\n                var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n                if (progressSubscriber) {\n                    progressSubscriber.error(e);\n                }\n                var error;\n                try {\n                    error = new AjaxError('ajax error', this, request);\n                }\n                catch (err) {\n                    error = err;\n                }\n                subscriber.error(error);\n            };\n            xhr.onerror = xhrError_1;\n            xhrError_1.request = request;\n            xhrError_1.subscriber = this;\n            xhrError_1.progressSubscriber = progressSubscriber;\n        }\n        function xhrReadyStateChange(e) {\n            return;\n        }\n        xhr.onreadystatechange = xhrReadyStateChange;\n        xhrReadyStateChange.subscriber = this;\n        xhrReadyStateChange.progressSubscriber = progressSubscriber;\n        xhrReadyStateChange.request = request;\n        function xhrLoad(e) {\n            var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n            if (this.readyState === 4) {\n                var status_1 = this.status === 1223 ? 204 : this.status;\n                var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n                if (status_1 === 0) {\n                    status_1 = response ? 200 : 0;\n                }\n                if (status_1 < 400) {\n                    if (progressSubscriber) {\n                        progressSubscriber.complete();\n                    }\n                    subscriber.next(e);\n                    subscriber.complete();\n                }\n                else {\n                    if (progressSubscriber) {\n                        progressSubscriber.error(e);\n                    }\n                    var error = void 0;\n                    try {\n                        error = new AjaxError('ajax error ' + status_1, this, request);\n                    }\n                    catch (err) {\n                        error = err;\n                    }\n                    subscriber.error(error);\n                }\n            }\n        }\n        xhr.onload = xhrLoad;\n        xhrLoad.subscriber = this;\n        xhrLoad.progressSubscriber = progressSubscriber;\n        xhrLoad.request = request;\n    };\n    AjaxSubscriber.prototype.unsubscribe = function () {\n        var _a = this, done = _a.done, xhr = _a.xhr;\n        if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n            xhr.abort();\n        }\n        _super.prototype.unsubscribe.call(this);\n    };\n    return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = (function () {\n    function AjaxResponse(originalEvent, xhr, request) {\n        this.originalEvent = originalEvent;\n        this.xhr = xhr;\n        this.request = request;\n        this.status = xhr.status;\n        this.responseType = xhr.responseType || request.responseType;\n        this.response = parseXhrResponse(this.responseType, xhr);\n    }\n    return AjaxResponse;\n}());\nexport { AjaxResponse };\nvar AjaxErrorImpl = (function () {\n    function AjaxErrorImpl(message, xhr, request) {\n        Error.call(this);\n        this.message = message;\n        this.name = 'AjaxError';\n        this.xhr = xhr;\n        this.request = request;\n        this.status = xhr.status;\n        this.responseType = xhr.responseType || request.responseType;\n        this.response = parseXhrResponse(this.responseType, xhr);\n        return this;\n    }\n    AjaxErrorImpl.prototype = Object.create(Error.prototype);\n    return AjaxErrorImpl;\n})();\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n    if ('response' in xhr) {\n        return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n    }\n    else {\n        return JSON.parse(xhr.responseText || 'null');\n    }\n}\nfunction parseXhrResponse(responseType, xhr) {\n    switch (responseType) {\n        case 'json':\n            return parseJson(xhr);\n        case 'xml':\n            return xhr.responseXML;\n        case 'text':\n        default:\n            return ('response' in xhr) ? xhr.response : xhr.responseText;\n    }\n}\nfunction AjaxTimeoutErrorImpl(xhr, request) {\n    AjaxError.call(this, 'ajax timeout', xhr, request);\n    this.name = 'AjaxTimeoutError';\n    return this;\n}\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map","import { AjaxObservable } from './AjaxObservable';\nexport var ajax = (function () { return AjaxObservable.create; })();\n//# sourceMappingURL=ajax.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject, AnonymousSubject } from '../../Subject';\nimport { Subscriber } from '../../Subscriber';\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { ReplaySubject } from '../../ReplaySubject';\nvar DEFAULT_WEBSOCKET_CONFIG = {\n    url: '',\n    deserializer: function (e) { return JSON.parse(e.data); },\n    serializer: function (value) { return JSON.stringify(value); },\n};\nvar WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';\nvar WebSocketSubject = (function (_super) {\n    tslib_1.__extends(WebSocketSubject, _super);\n    function WebSocketSubject(urlConfigOrSource, destination) {\n        var _this = _super.call(this) || this;\n        if (urlConfigOrSource instanceof Observable) {\n            _this.destination = destination;\n            _this.source = urlConfigOrSource;\n        }\n        else {\n            var config = _this._config = tslib_1.__assign({}, DEFAULT_WEBSOCKET_CONFIG);\n            _this._output = new Subject();\n            if (typeof urlConfigOrSource === 'string') {\n                config.url = urlConfigOrSource;\n            }\n            else {\n                for (var key in urlConfigOrSource) {\n                    if (urlConfigOrSource.hasOwnProperty(key)) {\n                        config[key] = urlConfigOrSource[key];\n                    }\n                }\n            }\n            if (!config.WebSocketCtor && WebSocket) {\n                config.WebSocketCtor = WebSocket;\n            }\n            else if (!config.WebSocketCtor) {\n                throw new Error('no WebSocket constructor can be found');\n            }\n            _this.destination = new ReplaySubject();\n        }\n        return _this;\n    }\n    WebSocketSubject.prototype.lift = function (operator) {\n        var sock = new WebSocketSubject(this._config, this.destination);\n        sock.operator = operator;\n        sock.source = this;\n        return sock;\n    };\n    WebSocketSubject.prototype._resetState = function () {\n        this._socket = null;\n        if (!this.source) {\n            this.destination = new ReplaySubject();\n        }\n        this._output = new Subject();\n    };\n    WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {\n        var self = this;\n        return new Observable(function (observer) {\n            try {\n                self.next(subMsg());\n            }\n            catch (err) {\n                observer.error(err);\n            }\n            var subscription = self.subscribe(function (x) {\n                try {\n                    if (messageFilter(x)) {\n                        observer.next(x);\n                    }\n                }\n                catch (err) {\n                    observer.error(err);\n                }\n            }, function (err) { return observer.error(err); }, function () { return observer.complete(); });\n            return function () {\n                try {\n                    self.next(unsubMsg());\n                }\n                catch (err) {\n                    observer.error(err);\n                }\n                subscription.unsubscribe();\n            };\n        });\n    };\n    WebSocketSubject.prototype._connectSocket = function () {\n        var _this = this;\n        var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;\n        var observer = this._output;\n        var socket = null;\n        try {\n            socket = protocol ?\n                new WebSocketCtor(url, protocol) :\n                new WebSocketCtor(url);\n            this._socket = socket;\n            if (binaryType) {\n                this._socket.binaryType = binaryType;\n            }\n        }\n        catch (e) {\n            observer.error(e);\n            return;\n        }\n        var subscription = new Subscription(function () {\n            _this._socket = null;\n            if (socket && socket.readyState === 1) {\n                socket.close();\n            }\n        });\n        socket.onopen = function (e) {\n            var _socket = _this._socket;\n            if (!_socket) {\n                socket.close();\n                _this._resetState();\n                return;\n            }\n            var openObserver = _this._config.openObserver;\n            if (openObserver) {\n                openObserver.next(e);\n            }\n            var queue = _this.destination;\n            _this.destination = Subscriber.create(function (x) {\n                if (socket.readyState === 1) {\n                    try {\n                        var serializer = _this._config.serializer;\n                        socket.send(serializer(x));\n                    }\n                    catch (e) {\n                        _this.destination.error(e);\n                    }\n                }\n            }, function (e) {\n                var closingObserver = _this._config.closingObserver;\n                if (closingObserver) {\n                    closingObserver.next(undefined);\n                }\n                if (e && e.code) {\n                    socket.close(e.code, e.reason);\n                }\n                else {\n                    observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));\n                }\n                _this._resetState();\n            }, function () {\n                var closingObserver = _this._config.closingObserver;\n                if (closingObserver) {\n                    closingObserver.next(undefined);\n                }\n                socket.close();\n                _this._resetState();\n            });\n            if (queue && queue instanceof ReplaySubject) {\n                subscription.add(queue.subscribe(_this.destination));\n            }\n        };\n        socket.onerror = function (e) {\n            _this._resetState();\n            observer.error(e);\n        };\n        socket.onclose = function (e) {\n            _this._resetState();\n            var closeObserver = _this._config.closeObserver;\n            if (closeObserver) {\n                closeObserver.next(e);\n            }\n            if (e.wasClean) {\n                observer.complete();\n            }\n            else {\n                observer.error(e);\n            }\n        };\n        socket.onmessage = function (e) {\n            try {\n                var deserializer = _this._config.deserializer;\n                observer.next(deserializer(e));\n            }\n            catch (err) {\n                observer.error(err);\n            }\n        };\n    };\n    WebSocketSubject.prototype._subscribe = function (subscriber) {\n        var _this = this;\n        var source = this.source;\n        if (source) {\n            return source.subscribe(subscriber);\n        }\n        if (!this._socket) {\n            this._connectSocket();\n        }\n        this._output.subscribe(subscriber);\n        subscriber.add(function () {\n            var _socket = _this._socket;\n            if (_this._output.observers.length === 0) {\n                if (_socket && _socket.readyState === 1) {\n                    _socket.close();\n                }\n                _this._resetState();\n            }\n        });\n        return subscriber;\n    };\n    WebSocketSubject.prototype.unsubscribe = function () {\n        var _socket = this._socket;\n        if (_socket && _socket.readyState === 1) {\n            _socket.close();\n        }\n        this._resetState();\n        _super.prototype.unsubscribe.call(this);\n    };\n    return WebSocketSubject;\n}(AnonymousSubject));\nexport { WebSocketSubject };\n//# sourceMappingURL=WebSocketSubject.js.map","import { WebSocketSubject } from './WebSocketSubject';\nexport function webSocket(urlConfigOrSource) {\n    return new WebSocketSubject(urlConfigOrSource);\n}\n//# sourceMappingURL=webSocket.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nexport function fromFetch(input, init) {\n    return new Observable(function (subscriber) {\n        var controller = new AbortController();\n        var signal = controller.signal;\n        var abortable = true;\n        var unsubscribed = false;\n        var subscription = new Subscription();\n        subscription.add(function () {\n            unsubscribed = true;\n            if (abortable) {\n                controller.abort();\n            }\n        });\n        var perSubscriberInit;\n        if (init) {\n            if (init.signal) {\n                if (init.signal.aborted) {\n                    controller.abort();\n                }\n                else {\n                    var outerSignal_1 = init.signal;\n                    var outerSignalHandler_1 = function () {\n                        if (!signal.aborted) {\n                            controller.abort();\n                        }\n                    };\n                    outerSignal_1.addEventListener('abort', outerSignalHandler_1);\n                    subscription.add(function () { return outerSignal_1.removeEventListener('abort', outerSignalHandler_1); });\n                }\n            }\n            perSubscriberInit = tslib_1.__assign({}, init, { signal: signal });\n        }\n        else {\n            perSubscriberInit = { signal: signal };\n        }\n        fetch(input, perSubscriberInit).then(function (response) {\n            abortable = false;\n            subscriber.next(response);\n            subscriber.complete();\n        }).catch(function (err) {\n            abortable = false;\n            if (!unsubscribed) {\n                subscriber.error(err);\n            }\n        });\n        return subscription;\n    });\n}\n//# sourceMappingURL=fetch.js.map","export * from '../index';\nimport * as _operators from '../operators/index';\nexport var operators = _operators;\nimport * as _testing from '../testing/index';\nexport var testing = _testing;\nimport * as _ajax from '../ajax/index';\nexport var ajax = _ajax;\nimport * as _webSocket from '../webSocket/index';\nexport var webSocket = _webSocket;\nimport * as _fetch from '../fetch/index';\nexport var fetch = _fetch;\n//# sourceMappingURL=umd.js.map"],"names":["tslib_1.__extends","emptyObserver","rxSubscriberSymbol","observable","Symbol_observable","higherOrderRefCount","RefCountSubscriber","refCount","empty","NotificationKind","dispatch","dispatchError","dispatchNext","iterator","Symbol_iterator","combineLatest","concat","concatStatic","merge","mergeStatic","onErrorResumeNext","partition","race","raceStatic","window","WindowOperator","WindowSubscriber","zip","zipStatic","root","tslib_1.__assign","ajax","webSocket","fetch"],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-14-  function requirePlugin (name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js:15:    log.debug(`Loading plugin ${name}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-16-    try {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-19-      if (e.code === 'MODULE_NOT_FOUND' && e.message.includes(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js:20:        log.error(`Cannot find plugin "${name}".\n  Did you forget to install it?\n  npm install ${name} --save-dev`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-21-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js:22:        log.error(`Error during loading "${name}" plugin:\n  ${e.message}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-23-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-34-      const pluginDirectory = path.normalize(path.join(__dirname, '/../..'))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js:35:      const regexp = new RegExp(`^${plugin.replace('*', '.*')}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-36-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js:37:      log.debug(`Loading ${plugin} from ${pluginDirectory}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-38-      fs.readdirSync(pluginDirectory)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-39-        .filter((pluginName) => !IGNORED_PACKAGES.includes(pluginName) && regexp.test(pluginName))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js:40:        .forEach((pluginName) => requirePlugin(`${pluginDirectory}/${pluginName}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-41-    } else if (helper.isObject(plugin)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js:42:      log.debug(`Loading inlined plugin (defining ${Object.keys(plugin).join(', ')}).`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-43-      modules.push(plugin)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-44-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js:45:      log.error(`Invalid plugin ${plugin}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/plugin.js-46-      emitter.emit('load_error', 'plug_in', plugin)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/stopper.js-24-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/stopper.js:25:      log.error(`Server returned status code: ${response.statusCode}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/stopper.js-26-      done(1)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/stopper.js-31-    if (e.code === 'ECONNREFUSED') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/stopper.js:32:      log.error(`There is no server listening on port ${config.port}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/stopper.js-33-      done(1, e.code)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/base.js-36-    set: (toState) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/base.js:37:      log.debug(`${this._state} -> ${toState}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/base.js-38-      this._state = toState
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/base.js-90-        killingPromise = null
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/base.js:91:        log.debug(`Restarting ${this.name}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/base.js-92-        this.start(previousUrl)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/capture_timeout.js-19-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/capture_timeout.js:20:      log.warn(`${this.name} have not captured in ${captureTimeout} ms, killing.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/capture_timeout.js-21-      this.error = 'timeout'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/retry.js-11-    if (this._retryLimit > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/retry.js:12:      log.info(`Trying to start ${this.name} again (${retryLimit - this._retryLimit + 1}/${retryLimit}).`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/retry.js-13-      this.restart()
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/retry.js-15-    } else if (this._retryLimit === 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/retry.js:16:      log.error(`${this.name} failed ${retryLimit} times (${this.error}). Giving up.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/retry.js-17-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/retry.js:18:      log.debug(`${this.name} failed (${this.error}). Not restarting.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/retry.js-19-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-14-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:15:  this._tempDir = tempDir.getPath(`/karma-${this.id.toString()}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-16-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-47-      cmd = cmd.substring(1, cmd.length - 1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:48:      log.warn(`The path should not be quoted.\n  Normalized the path to ${cmd}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-49-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-63-    if (!cmd) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:64:      log.error(`No binary for ${self.name} browser on your platform.\n  Please, set "${self.ENV_CMD}" env variable.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-65-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-88-        self._retryLimit = -1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:89:        errorOutput = `Can not find the binary ${cmd}\n\tPlease set env variable ${self.ENV_CMD}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-90-      } else if (err.code === 'EACCES') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-91-        self._retryLimit = -1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:92:        errorOutput = `Permission denied accessing the binary ${cmd}\n\tMaybe it's a directory?`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-93-      } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-103-  this._onProcessExit = function (code, signal, errorOutput) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:104:    log.debug(`Process ${self.name} exited with code ${code} and signal ${signal}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-105-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-108-    if (self.state === self.STATE_BEING_CAPTURED) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:109:      log.error(`Cannot start ${self.name}\n\t${errorOutput}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-110-      error = 'cannot start'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-113-    if (self.state === self.STATE_CAPTURED) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:114:      log.error(`${self.name} crashed.\n\t${errorOutput}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-115-      error = 'crashed'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-118-    if (error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:119:      log.error(`${self.name} stdout: ${streamedOutputs.stdout}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:120:      log.error(`${self.name} stderr: ${streamedOutputs.stderr}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-121-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:148:    log.warn(`${self.name} was not killed in ${killTimeout} ms, sending SIGKILL.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-149-    self._process.kill('SIGKILL')
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-157-    self._killTimer = timer.setTimeout(function () {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js:158:      log.warn(`${self.name} was not killed by SIGKILL in ${killTimeout} ms, continuing.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launchers/process.js-159-      self._onProcessExit(-1, null, '')
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/temp_dir.js-15-  create (path) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/temp_dir.js:16:    log.debug(`Creating temp dir at ${path}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/temp_dir.js-17-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/temp_dir.js-20-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/temp_dir.js:21:      log.warn(`Failed to create a temp dir at ${path}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/temp_dir.js-22-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/temp_dir.js-27-  remove (path, done) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/temp_dir.js:28:    log.debug(`Cleaning temp dir ${path}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/temp_dir.js-29-    rimraf(path, done)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/web-server.js-96-  server.on('upgrade', function (req, socket, head) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/web-server.js:97:    log.debug(`upgrade ${req.url}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/web-server.js-98-    proxyMiddlewareInstance.upgrade(req, socket, head)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-101-    this.on('load_error', (type, name) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:102:      this.log.debug(`Registered a load error of type ${type} with name ${name}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-103-      this.loadErrors.push([type, name])
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-133-    } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:134:      this.dieOnError(`Server start failed on port ${config.port}: ${err}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-135-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-169-    webServer.on('error', (err) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:170:      this.dieOnError(`Webserver fail ${err}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-171-    })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-179-      webServer.listen(this._boundServer, () => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:180:        this.log.info(`Karma v${constant.VERSION} server started at ${config.protocol}//${config.listenAddress}:${config.port}${config.urlRoot}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-181-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-188-        if (this.loadErrors.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:189:          this.dieOnError(new Error(`Found ${this.loadErrors.length} load error${this.loadErrors.length === 1 ? '' : 's'}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-190-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-213-      const configPath = config.browserConsoleLogOptions.path
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:214:      this.log.info(`Writing browser console to file: ${configPath}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-215-      const browserLogFile = fs.openSync(configPath, 'w+')
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-225-        const logString = configFormat.replace(/%[mtTb]/g, (m) => logMap[m])
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:226:        this.log.debug(`Writing browser console line: ${logString}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-227-        fs.writeSync(browserLogFile, logString + '\n')
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-231-    socketServer.sockets.on('connection', (socket) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:232:      this.log.debug(`A browser has connected on socket ${socket.id}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-233-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-288-      if (completedBrowser.lastResult.disconnected && completedBrowser.disconnectsCount <= config.browserDisconnectTolerance) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:289:        this.log.info(`Restarting ${completedBrowser.name} (${completedBrowser.disconnectsCount} of ${config.browserDisconnectTolerance} attempts)`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-290-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-394-    processWrapper.on('unhandledRejection', (error) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:395:      this.log.error(`UnhandledRejection: ${error.message || String(error)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-396-      reportError(error)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-399-    processWrapper.on('uncaughtException', (error) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:400:      this.log.error(`UncaughtException:: ${error.message || String(error)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-401-      reportError(error)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-408-    this.log.info('Run "karma stop" to stop the server.')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js:409:    this.log.debug(`Writing config to tmp-file ${tmpFile.name}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/server.js-410-    config.detached = false
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/helper.js-13-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/helper.js:14:  return `${ua.browser.name} ${ua.browser.version || '0.0.0'} (${ua.os.name} ${ua.os.version || '0.0.0'})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/helper.js-15-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-75-            if (this._findExcluded(path)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:76:              log.debug(`Excluded file "${path}"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-77-              return false
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-87-        if (nocache) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:88:          log.debug(`Not preprocessing "${pattern}" due to nocache`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-89-        } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-95-        if (_.isEmpty(mg.found)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:96:          log.warn(`Pattern "${pattern}" does not match any file.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-97-        } else if (_.isEmpty(files)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:98:          log.warn(`All files matched by "${pattern}" were excluded or matched by prior matchers.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-99-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-173-    if (excluded) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:174:      log.debug(`Add file "${path}" ignored. Excluded by "${excluded}".`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-175-      return this.files
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-179-    if (!pattern) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:180:      log.debug(`Add file "${path}" ignored. Does not match any pattern.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-181-      return this.files
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-184-    if (this._exists(path)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:185:      log.debug(`Add file "${path}" ignored. Already in the list.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-186-      return this.files
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-195-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:196:    log.info(`Added file "${path}".`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-197-    this._emitModified()
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-205-    if (!file) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:206:      log.debug(`Changed file "${path}" ignored. Does not match any file in the list.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-207-      return this.files
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-213-      await this._preprocess(file)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:214:      log.info(`Changed file "${path}".`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-215-      this._emitModified(force)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-225-      helper.arrayRemove(this._getFilesByPattern(pattern.pattern), file)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:226:      log.info(`Removed file "${path}".`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-227-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-229-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js:230:      log.debug(`Removed file "${path}" ignored. Does not match any file in the list.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/file-list.js-231-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-35-  init () {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:36:    this.log.info(`Connected on socket ${this.socket.id} with id ${this.id}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-37-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-43-  setState (toState) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:44:    this.log.debug(`${this.state} -> ${toState}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-45-    this.state = toState
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-100-    if (this.activeSockets.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:101:      this.log.debug(`Disconnected ${disconnectedSocket.id}, still have ${this.getActiveSocketsIds()}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-102-      return
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-105-    if (this.isConnected()) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:106:      this.disconnect(`Client disconnected from CONNECTED state (${reason})`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-107-    } else if ([CONFIGURING, EXECUTING].includes(this.state)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:108:      this.log.debug(`Disconnected during run, waiting ${this.disconnectDelay}ms for reconnecting.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-109-      this.setState(EXECUTING_DISCONNECTED)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-113-        this.lastResult.disconnected = true
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:114:        this.disconnect(`reconnect failed before timeout of ${this.disconnectDelay}ms (${reason})`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-115-        this.emitter.emit('browser_complete', this)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-124-      this.log.debug(`Lost socket connection, but browser continued to execute. Reconnected ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:125:        `on socket ${newSocket.id}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-126-      this.setState(EXECUTING)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-127-    } else if ([CONNECTED, CONFIGURING, EXECUTING].includes(this.state)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:128:      this.log.debug(`Rebinding to new socket ${newSocket.id} (already have ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:129:        `${this.getActiveSocketsIds()})`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-130-    } else if (this.state === DISCONNECTED) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:131:      this.log.info(`Disconnected browser returned on socket ${newSocket.id} with id ${this.id}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-132-      this.setState(CONNECTED)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-175-  disconnect (reason) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:176:    this.log.warn(`Disconnected (${this.disconnectsCount} times)${reason || ''}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-177-    this.setState(DISCONNECTED)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-178-    this.disconnectsCount++
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:179:    this.emitter.emit('browser_error', this, `Disconnected${reason || ''}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-180-    this.collection.remove(this)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-189-        this.lastResult.disconnected = true
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js:190:        this.disconnect(`, because no message in ${this.noActivityTimeout} ms.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/browser.js-191-        this.emitter.emit('browser_complete', this)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/cli.js-18-  if (argv.version) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/cli.js:19:    console.log(`Karma version: ${constant.VERSION}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/cli.js-20-    process.exit(0)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/cli.js-26-    if (name !== '_' && name !== '$0') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/cli.js:27:      assert(!name.includes('_'), `Bad argument: ${name} did you mean ${name.replace('_', '-')}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/cli.js-28-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/cli.js-61-    if (!helper.isFunction(options.formatError)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/cli.js:62:      console.error(`Format error must be a function, got: ${typeof options.formatError}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/cli.js-63-      process.exit(1)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/utils/path-utils.js-6-  formatPathMapping (path, line, column) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/utils/path-utils.js:7:    return path + (line ? `:${line}` : '') + (column ? `:${column}` : '')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/utils/path-utils.js-8-  },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/utils/net-utils.js-15-          } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/utils/net-utils.js:16:            reject(new Error(`Failed to bind ${port}: ` + (err.stack || err)))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/utils/net-utils.js-17-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/source_files.js-28-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/source_files.js:29:    log.debug(`Requesting ${request.url}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/source_files.js:30:    log.debug(`Fetching ${requestedFilePath}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/source_files.js-31-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/source_files.js-39-        const matchedEncoding = Object.keys(file.encodings).find(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/source_files.js:40:          (encoding) => new RegExp(`(^|.*, ?)${encoding}(,|$)`).test(acceptEncodingHeader)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/source_files.js-41-        )
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js-26-          const { start, end } = range[0]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js:27:          response.setHeader('Content-Range', `bytes ${start}-${end}/${responseData.length}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js-28-          response.setHeader('Accept-Ranges', 'bytes')
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js-51-        if (regex.test(filepath)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js:52:          log.debug(`setting header: ${header.name} for: ${filepath}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js-53-          response.setHeader(header.name, header.value)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js-58-    if (content && !doNotCache) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js:59:      log.debug(`serving (cached): ${filepath}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js-60-      response.setHeader('Content-Type', mime.getType(filepath, 'text/plain'))
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js-85-function serve404 (response, path) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js:86:  log.warn(`404: ${path}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/common.js-87-  response.writeHead(404)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/runner.js-27-    if (!capturedBrowsers.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/runner.js:28:      const url = `${protocol}//${hostname}:${port}${urlRoot}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/runner.js:29:      return response.end(`No captured browser, open ${url}\n`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/runner.js-30-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/runner.js-43-      }).catch((error) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/runner.js:44:        const errorMessage = `Error during refresh file list. ${error.stack || error}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/runner.js-45-        executor.scheduleError(errorMessage)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-18-    if (proxyPath.endsWith('/') && !proxyUrl.endsWith('/')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js:19:      log.warn(`proxy "${proxyUrl}" normalized to "${proxyUrl}/"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-20-      proxyUrl += '/'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-24-    if (!proxyPath.endsWith('/') && proxyUrl.endsWith('/')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js:25:      log.warn(`proxy "${proxyPath}" normalized to "${proxyPath}/"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-26-      proxyPath += '/'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-60-      if (err.code === 'ECONNRESET' && req.socket.destroyed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js:61:        log.debug(`failed to proxy ${req.url} (browser hung up the socket)`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-62-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js:63:        log.warn(`failed to proxy ${req.url} (${err.message})`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-64-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-88-    if (proxyRecord) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js:89:      log.debug(`proxying request - ${request.url} to ${proxyRecord.host}:${proxyRecord.port}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-90-      request.url = request.url.replace(proxyRecord.path, proxyRecord.baseUrl)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-99-    if (request.url.startsWith(urlRoot)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js:100:      log.debug(`NOT upgrading proxyWebSocketRequest ${request.url}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-101-      return
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-105-    if (proxyRecord) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js:106:      log.debug(`upgrade proxyWebSocketRequest ${request.url} to ${proxyRecord.host}:${proxyRecord.port}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/proxy.js-107-      request.url = request.url.replace(proxyRecord.path, proxyRecord.baseUrl)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-51-  if (query['x-ua-compatible']) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:52:    return `\n<meta http-equiv="X-UA-Compatible" content="${query['x-ua-compatible']}"/>`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-53-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-143-        if (isRequestingContextFile && customContextFile) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:144:          log.debug(`Serving customContextFile ${customContextFile}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-145-          fileServer = serveFile
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-147-        } else if (isRequestingDebugFile && customDebugFile) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:148:          log.debug(`Serving customDebugFile ${customDebugFile}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-149-          fileServer = serveFile
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-151-        } else if (isRequestingClientContextFile && customClientContextFile) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:152:          log.debug(`Serving customClientContextFile ${customClientContextFile}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-153-          fileServer = serveFile
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-155-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:156:          log.debug(`Serving static request ${requestUrl}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-157-          fileServer = serveStaticFile
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-169-            if (helper.isDefined(fileType) && !FILE_TYPES.includes(fileType)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:170:              log.warn(`Invalid file type (${fileType}), defaulting to js.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-171-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-181-            if (fileType === 'css') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:182:              scriptTags.push(`<link type="text/css" href="${filePath}" rel="stylesheet">`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-183-            } else if (fileType === 'dom') {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-185-            } else if (fileType === 'html') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:186:              scriptTags.push(`<link href="${filePath}" rel="import">`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-187-            } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-189-              const crossOriginAttribute = includeCrossOriginAttribute ? 'crossorigin="anonymous"' : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:190:              scriptTags.push(`<script type="${scriptType}" src="${filePath}" ${crossOriginAttribute}></script>`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-191-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-212-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js:213:            return `  '${filePath}': '${file.sha}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/middleware/karma.js-214-          }) : []
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-86-      } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js:87:        if (e.message.includes(`No provider for "launcher:${name}"`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js:88:          log.error(`Cannot load browser "${name}": it is not registered! Perhaps you are missing some plugin?`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-89-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js:90:          log.error(`Cannot load browser "${name}"!\n  ` + e.stack)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-91-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-97-      this.jobs.add((args, done) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js:98:        log.info(`Starting browser ${browser.displayName || browser.name}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-99-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-107-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js:108:        browser.start(`${protocol}//${hostname}:${port}${urlRoot}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-109-      }, [])
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-116-  launch (names, concurrency) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js:117:    log.info(`Launching browsers ${names.join(', ')} with concurrency ${concurrency === Infinity ? 'unlimited' : concurrency}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-118-    this.jobs = new Jobs({ maxConcurrency: concurrency })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-183-      browser.markCaptured()
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js:184:      log.debug(`${browser.name} (id ${browser.id}) captured in ${(Date.now() - this._lastStartTime) / 1000} secs`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/launcher.js-185-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/watcher.js-23-        watcher.add(path)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/watcher.js:24:        log.debug(`Watching "${path}"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/watcher.js-25-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-38-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js:39:  log.debug(`Missing plugin "${pkgName}". Installing...`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-40-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-44-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js:45:  exec(`npm install ${pkgName} --save-dev`, options, function (err, stdout, stderr) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-46-    // Put the logs into the queue and print them after answering current question.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-49-      if (!err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js:50:        log.debug(`${pkgName} successfully installed.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-51-      } else if (/is not in the npm registry/.test(stderr)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js:52:        log.warn(`Failed to install "${pkgName}". It is not in the NPM registry!\n  Please install it manually.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-53-      } else if (/Error: EACCES/.test(stderr)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js:54:        log.warn(`Failed to install "${pkgName}". No permissions to write in ${options.cwd}!\n  Please install it manually.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-55-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js:56:        log.warn(`Failed to install "${pkgName}"\n  Please install it manually.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-57-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-232-      formatter.writeRequirejsConfigFile(testMainFilePath)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js:233:      console.log(colorScheme.success(`RequireJS bootstrap file generated at "${testMainFilePath}".`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-234-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-236-    formatter.writeConfigFile(configFilePath, processedAnswers)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js:237:    console.log(colorScheme.success(`Config file generated at "${configFilePath}".`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init.js-238-  })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporters/base.js-39-    const totalExecuted = results.success + results.failed
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporters/base.js:40:    let msg = `${browser}: Executed ${totalExecuted} of ${results.total}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporters/base.js-41-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporters/base.js-46-    if (results.skipped) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporters/base.js:47:      msg += ` (skipped ${results.skipped})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporters/base.js-48-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporters/base.js-58-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporters/base.js:59:      msg += ` (${helper.formatTimeInterval(results.totalTime)} / ${helper.formatTimeInterval(results.netTime)})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporters/base.js-60-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/completion.js-38-  if (word.startsWith('-')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/completion.js:39:    return word.startsWith('--no-') ? `--${word.substr(5)}` : `--no-${word.substr(2)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/completion.js-40-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-51-    let msg = input.replace(URL_REGEXP, function (_, prefix, path, __, ___, line, ____, column) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:52:      const normalizedPath = prefix === 'base/' ? `${basePath}/${path}` : path
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-53-      const file = lastServedFiles.find((file) => file.path === normalizedPath)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-69-          const oneBasedOriginalColumn = original.column == null ? original.column : original.column + 1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:70:          return `${PathUtils.formatPathMapping(resolve(path, original.source), original.line, oneBasedOriginalColumn)} <- ${PathUtils.formatPathMapping(path, line, column)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-71-        } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:72:          log.warn(`SourceMap position not found for trace: ${input}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-73-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-93-      [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:94:        require(`./reporters/${name}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:95:        require(`./reporters/${name}_color`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-96-      ].forEach((Reporter) => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-107-    try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:108:      log.debug(`Trying to load reporter: ${name}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-109-      reporters.push(injector.createChild([locals], ['reporter:' + name]).get('reporter:' + name))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-110-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:111:      if (e.message.includes(`No provider for "reporter:${name}"`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:112:        log.error(`Can not load reporter "${name}", it is not registered!\n  Perhaps you are missing some plugin?`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-113-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:114:        log.error(`Can not load "${name}"!\n ${e.stack}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-115-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-122-      try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js:123:        log.debug(`Trying to load color-version of reporter: ${name} (${colorName})`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/reporter.js-124-        reporters.push(injector.createChild([locals], ['reporter:' + colorName]).get('reporter:' + name))
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/executor.js-21-    if (this.capturedBrowsers.length === 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/executor.js:22:      log.warn(`No captured browser, open ${this.config.protocol}//${this.config.hostname}:${this.config.port}${this.config.urlRoot}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/executor.js-23-      return false
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/executor.js-25-      log.debug('All browsers are ready, executing')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/executor.js:26:      log.debug(`Captured ${this.capturedBrowsers.length} browsers`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/executor.js-27-      this.executionScheduled = false
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-66-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:67:    log.warn(`Invalid pattern ${pattern}!\n\tExpected string or object with "pattern" property.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-68-    return new Pattern(null, false, false, false, false)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-73-  if (!url.startsWith('/')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:74:    url = `/${url}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-75-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-87-  if (normalizedUrlRoot !== urlRoot) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:88:    log.warn(`urlRoot normalized to "${normalizedUrlRoot}"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-89-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-97-  if (normalizedProxyPath !== proxyPath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:98:    log.warn(`proxyPath normalized to "${normalizedProxyPath}"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-99-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-152-    if (proxy.protocol.match(/https?:/) === null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:153:      log.warn(`"${proxy.protocol}" is not a supported upstream proxy protocol, defaulting to "http:"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-154-      proxy.protocol = 'http:'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-160-  if (config.protocol.match(/https?:/) === null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:161:    log.warn(`"${config.protocol}" is not a supported protocol, defaulting to "http:"`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-162-    config.protocol = 'http:'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-165-  if (config.proxies && config.proxies.hasOwnProperty(config.urlRoot)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:166:    log.warn(`"${config.urlRoot}" is proxied, you should probably change urlRoot to avoid conflicts`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-167-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-234-  types.forEach(function (type) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:235:    const definitions = config[`custom${helper.ucFirst(type)}s`] || {}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-236-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-240-      if (!helper.isObject(definition)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:241:        return log.warn(`Can not define ${type} ${name}. Definition has to be an object.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-242-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-244-      if (!helper.isString(definition.base)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:245:        return log.warn(`Can not define ${type} ${name}. Missing base ${type}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-246-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-406-  if (config.hostname === null && config.listenAddress !== null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:407:    log.warn(`ListenAddress was set to ${config.listenAddress} but hostname was left as the default: ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:408:      `${defaultHostname}. If your browsers fail to connect, consider changing the hostname option.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-409-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-420-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js:421:  log.debug(configFilePath ? `Loading config ${configFilePath}` : 'No config file specified.')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/config.js-422-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js-6-function quote (value) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js:7:  return `'${value}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js-8-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js-22-    .concat(includedFiles.map(quote))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js:23:    .concat(onlyServedFiles.map((file) => `{ pattern: ${quote(file)}, included: false }`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js-24-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js-29-  const lines = Object.keys(preprocessors)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js:30:    .map((pattern) => `${quote(pattern)}: [${formatLine(preprocessors[pattern])}]`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js-31-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js-35-function getConfigPath (file) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js:36:  return path.join(__dirname, `/../../${file}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/init/formatters.js-37-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js-85-      if (!p) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js:86:        log.error(`Failed to instantiate preprocessor ${name}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js-87-        emitter.emit('load_error', 'preprocessor', name)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js-89-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js:90:      if (e.message.includes(`No provider for "preprocessor:${name}"`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js:91:        log.error(`Can not load "${name}", it is not registered!\n  Perhaps you are missing some plugin?`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js-92-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js:93:        log.error(`Can not load "${name}"!\n  ` + e.stack)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js-94-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js-128-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js:129:          log.warn(`Ignored preprocessing ${file.originalPath} because ${name} has handleBinaryFiles=false.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/lib/preprocessor.js-130-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/yargs.js-69-    self.$0 = process.env._.replace(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/yargs.js:70:      `${path.dirname(process.execPath)}/`, ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/yargs.js-71-    )
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/yargs.js-1192-        // e.g., loading in a list of commands from an API.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/yargs.js:1193:        const completionArgs = args.slice(args.indexOf(`--${completion.completionKey}`) + 1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/yargs.js-1194-        completion.getCompletion(completionArgs, (completions) => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/README.md-77-  }, (argv) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/README.md:78:    if (argv.verbose) console.info(`start server on :${argv.port}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/README.md-79-    serve(argv.port)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/apply-extends.js-10-  if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/apply-extends.js:11:    throw new YError(`Circular extended configurations: '${cfgPath}'.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/apply-extends.js-12-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-183-        usages.forEach((usage) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:184:          ui.div(`${usage[0].replace(/\$0/g, base$0)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-185-          if (usage[1]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:186:            ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] })
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-187-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-193-        if (demandedCommands._) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:194:          u = `${base$0} <${__('command')}>\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-195-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:196:          u = `${base$0} [${__('command')}]\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-197-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:198:        ui.div(`${u}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-199-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-207-      const context = yargs.getContext()
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:208:      const parentCommands = context.commands.length ? `${context.commands.join(' ')} ` : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-209-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-214-      commands.forEach((command) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:215:        const commandString = `${base$0} ${parentCommands}${command[0].replace(/^\$0 ?/, '')}` // drop $0 from default commands.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-216-        ui.span(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-219-            padding: [0, 2, 0, 2],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:220:            width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-221-          },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-224-        const hints = []
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:225:        if (command[2]) hints.push(`[${__('default')}]`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-226-        if (command[3] && command[3].length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:227:          hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-228-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-297-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:298:        if (~options.boolean.indexOf(key)) type = `[${__('boolean')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:299:        if (~options.count.indexOf(key)) type = `[${__('count')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:300:        if (~options.string.indexOf(key)) type = `[${__('string')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:301:        if (~options.normalize.indexOf(key)) type = `[${__('string')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:302:        if (~options.array.indexOf(key)) type = `[${__('array')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:303:        if (~options.number.indexOf(key)) type = `[${__('number')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-304-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-307-            typeof deprecatedOptions[key] === 'string'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:308:              ? `[${__('deprecated: %s', deprecatedOptions[key])}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:309:              : `[${__('deprecated')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-310-          ) : null,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-311-          type,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:312:          (key in demandedOptions) ? `[${__('required')}]` : null,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-313-          options.choices && options.choices[key] ? `[${__('choices:')} ${
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-364-      const e = epilogs.map(epilog => epilog.replace(/\$0/g, base$0)).join('\n')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:365:      ui.div(`${e}\n`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-366-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-384-      width = Math.max(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:385:        stringWidth(modifier ? `${modifier} ${v[0]}` : v[0]),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-386-        width
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-485-  function defaultString (value, defaultDescription) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:486:    let string = `[${__('default:')} `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-487-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-494-        case 'string':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:495:          string += `"${value}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-496-          break
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-504-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js:505:    return `${string}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/usage.js-506-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/validation.js-95-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/validation.js:96:      const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/validation.js-97-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/validation.js-301-        if (key && !value) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/validation.js:302:          implyFail.push(` ${origKey} -> ${origValue}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/validation.js-303-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/validation.js-307-    if (implyFail.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/validation.js:308:      let msg = `${__('Implications failed:')}\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/validation.js-309-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/command.js-118-    const mod = require('which-module')(obj)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/command.js:119:    if (!mod) throw new Error(`No command name given for module: ${inspect(obj)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/command.js-120-    return commandFromFilename(mod.filename)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/command.js-287-    pc.push(c)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/command.js:288:    return `$0 ${pc.join(' ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/command.js-289-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/command.js-361-        if (options.configuration['unknown-options-as-args']) options.key[key] = true
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/command.js:362:        unparsed.push(`--${key}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/command.js-363-        unparsed.push(value)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-83-        let keyAndAliases = [key].concat(aliases[key] || [])
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js:84:        if (negable) keyAndAliases = keyAndAliases.concat(keyAndAliases.map(key => `no-${key}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-85-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-86-        function completeOptionKey (key) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js:87:          const notInArgs = keyAndAliases.every(val => args.indexOf(`--${val}`) === -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-88-          if (notInArgs) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-95-              const desc = descs[key] || ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js:96:              completions.push(dashes + `${key.replace(/:/g, '\\:')}:${desc.replace('__yargsString__:', '')}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-97-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-101-        completeOptionKey(key)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js:102:        if (negable && !!options.default[key]) completeOptionKey(`no-${key}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-103-      })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-115-    // add ./to applications not yet installed as bin.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js:116:    if ($0.match(/\.js$/)) $0 = `./${$0}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/completion.js-117-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js-19-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js:20:      parsed = command.parseCommand(`cmd ${expected}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js-21-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js-27-    if (length < parsed.demanded.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js:28:      throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js-29-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js-32-    if (length > totalCommands) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js:33:      throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js-34-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js-66-function argumentTypeError (observedType, allowedTypes, position, optional) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js:67:  throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs/lib/argsert.js-68-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/readme.md-19-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/readme.md:20:console.log(`${style.green.open}Hello world!${style.green.close}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/readme.md-21-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js-4-	const code = fn(...args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js:5:	return `\u001B[${code + offset}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js-6-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js-9-	const code = fn(...args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js:10:	return `\u001B[${38 + offset};5;${code}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js-11-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js-14-	const rgb = fn(...args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js:15:	return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js-16-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js-125-			styles[styleName] = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js:126:				open: `\u001B[${style[0]}m`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js:127:				close: `\u001B[${style[1]}m`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/ansi-styles/index.js-128-			};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/locate-path/index.js-19-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/locate-path/index.js:20:	throw new Error(`Invalid type specified: ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/locate-path/index.js-21-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs-parser/index.js-886-        !checkAllAliases(key, flags.counts) &&
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs-parser/index.js:887:        `${key}` in defaults) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/yargs-parser/index.js-888-      return defaults[key]
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/wrap-ansi/index.js-12-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/wrap-ansi/index.js:13:const wrapAnsi = code => `${ESCAPES.values().next().value}[${code}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/karma/node_modules/wrap-ansi/index.js-14-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/compile.js-41-      if (range.length !== 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/compile.js:42:        return args.length > 1 && range.length > 1 ? `(${range})` : range;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/compile.js-43-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/parse.js-38-  if (input.length > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/parse.js:39:    throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/parse.js-40-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/expand.js-14-  if (!queue.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/expand.js:15:    return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/expand.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/expand.js-24-      for (let ele of stash) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/expand.js:25:        if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/braces/lib/expand.js-26-        result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/type-check/README.md-134-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/type-check/README.md:135:* __Identifier__ = `[\$\w]+` - a group of any lower or upper case letters, numbers, underscores, or dollar signs - eg. `String`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/type-check/README.md-136-* __Type__ = an `Identifier`, an `Identifier` followed by a `Structure`, just a `Structure`, or a wildcard `*` - eg. `String`, `Object{x: Number}`, `{x: Number}`, `Array{0: String, 1: Boolean, length: Number}`, `*`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/README.md-296-  expandRange(a, b) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/README.md:297:    return `(${fill(a, b, { toRegex: true })})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/README.md-298-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/README.md-458-* `[:print:]` - Print characters, equivalent to `[\\x20-\\x7E ]`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/README.md:459:* `[:punct:]` - Punctuation and symbols, equivalent to `[\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~]`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/README.md-460-* `[:space:]` - Extended space characters, equivalent to `[ \\t\\r\\n\\v\\f]`.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/picomatch.js-263-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/picomatch.js:264:  let source = `${prepend}(?:${output})${append}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/picomatch.js-265-  if (state && state.negated === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/picomatch.js:266:    source = `^(?!${source}).*$`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/picomatch.js-267-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-27-  args.sort();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:28:  let value = `[${args.join('-')}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-29-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-62-const syntaxError = (type, char) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:63:  return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-64-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-83-  if (len > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:84:    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-85-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-112-  const globstar = (opts) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:113:    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-114-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-120-  if (opts.capture) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:121:    star = `(${star})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-122-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-502-      // when the user specifies nothing, try to match both
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:503:      prev.value = `(${capture}${escaped}|${prev.value})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-504-      state.output += prev.value;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-809-        prev.type = 'globstar';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:810:        prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-811-        prev.value += value;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-822-        prev.value += value;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:823:        prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-824-        state.output = prev.output;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-902-  if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:903:    push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-904-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-932-  if (len > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:933:    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-934-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-957-  if (opts.capture) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:958:    star = `(${star})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-959-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-961-  const globstar = (opts) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:962:    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-963-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-967-      case '*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:968:        return `${nodot}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-969-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-970-      case '.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:971:        return `${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-972-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-973-      case '*.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:974:        return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-975-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-976-      case '*/*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:977:        return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-978-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-982-      case '**/*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:983:        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-984-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-985-      case '**/*.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:986:        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-987-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-988-      case '**/.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:989:        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-990-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-1004-  if (output && opts.strictSlashes !== true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js:1005:    output += `${SLASH_LITERAL}?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/parse.js-1006-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js-4-const WIN_SLASH = '\\\\/';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:5:const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js-6-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js-16-const QMARK = '[^/]';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:17:const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:18:const START_ANCHOR = `(?:^|${SLASH_LITERAL})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:19:const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:20:const NO_DOT = `(?!${DOT_LITERAL})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:21:const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:22:const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:23:const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:24:const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:25:const STAR = `${QMARK}*?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js-51-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:52:  SLASH_LITERAL: `[${WIN_SLASH}]`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js-53-  QMARK: WIN_NO_SLASH,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:54:  STAR: `${WIN_NO_SLASH}*?`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:55:  DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:56:  NO_DOT: `(?!${DOT_LITERAL})`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:57:  NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:58:  NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:59:  NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:60:  QMARK_NO_DOT: `[^.${WIN_SLASH}]`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:61:  START_ANCHOR: `(?:^|[${WIN_SLASH}])`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:62:  END_ANCHOR: `(?:[${WIN_SLASH}]|$)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js-63-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js-163-    return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js:164:      '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/picomatch/lib/constants.js-165-      '?': { type: 'qmark', open: '(?:', close: ')?' },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rimraf/bin.js-10-  if (!ok) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rimraf/bin.js:11:    console.error(`refusing to remove ${arg}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rimraf/bin.js-12-    console.error('Set --no-preserve-root to allow this')
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimstart/node_modules/es-to-primitive/Makefile-8-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimstart/node_modules/es-to-primitive/Makefile:9:# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimstart/node_modules/es-to-primitive/Makefile-10-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimstart/node_modules/es-to-primitive/Makefile-50-	@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimstart/node_modules/es-to-primitive/Makefile:51:	 new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimstart/node_modules/es-to-primitive/Makefile-52-	 if printf "$$new_ver" | command grep -q '^[0-9]'; then \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimstart/node_modules/es-to-primitive/Makefile-55-	 else \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimstart/node_modules/es-to-primitive/Makefile:56:	   new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/string.prototype.trimstart/node_modules/es-to-primitive/Makefile-57-	 fi; \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1014-// function invalidParseState () {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js:1015://     return new Error(`JSON5: invalid parse state '${parseState}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1016-// }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1019-// function invalidLexState (state) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js:1020://     return new Error(`JSON5: invalid lex state '${state}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1021-// }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1024-    if (c === undefined) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js:1025:        return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1026-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1027-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js:1028:    return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1029-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1031-function invalidEOF () {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js:1032:    return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1033-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1037-//     if (token.type === 'eof') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js:1038://         return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1039-//     }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1041-//     const c = String.fromCodePoint(token.value.codePointAt(0))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js:1042://     return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1043-// }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1046-    column -= 5
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js:1047:    return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1048-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1050-function separatorChar (c) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js:1051:    console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/lib/parse.js-1052-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.min.mjs:1:var Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ID_Start=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ID_Continue=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,unicode={Space_Separator:Space_Separator,ID_Start:ID_Start,ID_Continue:ID_Continue},util={isSpaceSeparator:u=>"string"==typeof u&&unicode.Space_Separator.test(u),isIdStartChar:u=>"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||unicode.ID_Start.test(u)),isIdContinueChar:u=>"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||"$"===u||"_"===u||"‌"===u||"‍"===u||unicode.ID_Continue.test(u)),isDigit:u=>"string"==typeof u&&/[0-9]/.test(u),isHexDigit:u=>"string"==typeof u&&/[0-9A-Fa-f]/.test(u)};let source,parseState,stack,pos,line,column,token,key,root;var parse=function(u,D){source=String(u),parseState="start",stack=[],pos=0,line=1,column=0,token=void 0,key=void 0,root=void 0;do{token=lex(),parseStates[parseState]()}while("eof"!==token.type);return"function"==typeof D?internalize({"":root},"",D):root};function internalize(u,D,e){const r=u[D];if(null!=r&&"object"==typeof r)for(const u in r){const D=internalize(r,u,e);void 0===D?delete r[u]:r[u]=D}return e.call(u,D,r)}let lexState,buffer,doubleQuote,sign,c;function lex(){for(lexState="default",buffer="",doubleQuote=!1,sign=1;;){c=peek();const u=lexStates[lexState]();if(u)return u}}function peek(){if(source[pos])return String.fromCodePoint(source.codePointAt(pos))}function read(){const u=peek();return"\n"===u?(line++,column=0):u?column+=u.length:column++,u&&(pos+=u.length),u}const lexStates={default(){switch(c){case"\t":case"\v":case"\f":case" ":case" ":case"\ufeff":case"\n":case"\r":case"\u2028":case"\u2029":return void read();case"/":return read(),void(lexState="comment");case void 0:return read(),newToken("eof")}if(!util.isSpaceSeparator(c))return lexStates[parseState]();read()},comment(){switch(c){case"*":return read(),void(lexState="multiLineComment");case"/":return read(),void(lexState="singleLineComment")}throw invalidChar(read())},multiLineComment(){switch(c){case"*":return read(),void(lexState="multiLineCommentAsterisk");case void 0:throw invalidChar(read())}read()},multiLineCommentAsterisk(){switch(c){case"*":return void read();case"/":return read(),void(lexState="default");case void 0:throw invalidChar(read())}read(),lexState="multiLineComment"},singleLineComment(){switch(c){case"\n":case"\r":case"\u2028":case"\u2029":return read(),void(lexState="default");case void 0:return read(),newToken("eof")}read()},value(){switch(c){case"{":case"[":return newToken("punctuator",read());case"n":return read(),literal("ull"),newToken("null",null);case"t":return read(),literal("rue"),newToken("boolean",!0);case"f":return read(),literal("alse"),newToken("boolean",!1);case"-":case"+":return"-"===read()&&(sign=-1),void(lexState="sign");case".":return buffer=read(),void(lexState="decimalPointLeading");case"0":return buffer=read(),void(lexState="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return buffer=read(),void(lexState="decimalInteger");case"I":return read(),literal("nfinity"),newToken("numeric",1/0);case"N":return read(),literal("aN"),newToken("numeric",NaN);case'"':case"'":return doubleQuote='"'===read(),buffer="",void(lexState="string")}throw invalidChar(read())},identifierNameStartEscape(){if("u"!==c)throw invalidChar(read());read();const u=unicodeEscape();switch(u){case"$":case"_":break;default:if(!util.isIdStartChar(u))throw invalidIdentifier()}buffer+=u,lexState="identifierName"},identifierName(){switch(c){case"$":case"_":case"‌":case"‍":return void(buffer+=read());case"\\":return read(),void(lexState="identifierNameEscape")}if(!util.isIdContinueChar(c))return newToken("identifier",buffer);buffer+=read()},identifierNameEscape(){if("u"!==c)throw invalidChar(read());read();const u=unicodeEscape();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!util.isIdContinueChar(u))throw invalidIdentifier()}buffer+=u,lexState="identifierName"},sign(){switch(c){case".":return buffer=read(),void(lexState="decimalPointLeading");case"0":return buffer=read(),void(lexState="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return buffer=read(),void(lexState="decimalInteger");case"I":return read(),literal("nfinity"),newToken("numeric",sign*(1/0));case"N":return read(),literal("aN"),newToken("numeric",NaN)}throw invalidChar(read())},zero(){switch(c){case".":return buffer+=read(),void(lexState="decimalPoint");case"e":case"E":return buffer+=read(),void(lexState="decimalExponent");case"x":case"X":return buffer+=read(),void(lexState="hexadecimal")}return newToken("numeric",0*sign)},decimalInteger(){switch(c){case".":return buffer+=read(),void(lexState="decimalPoint");case"e":case"E":return buffer+=read(),void(lexState="decimalExponent")}if(!util.isDigit(c))return newToken("numeric",sign*Number(buffer));buffer+=read()},decimalPointLeading(){if(util.isDigit(c))return buffer+=read(),void(lexState="decimalFraction");throw invalidChar(read())},decimalPoint(){switch(c){case"e":case"E":return buffer+=read(),void(lexState="decimalExponent")}return util.isDigit(c)?(buffer+=read(),void(lexState="decimalFraction")):newToken("numeric",sign*Number(buffer))},decimalFraction(){switch(c){case"e":case"E":return buffer+=read(),void(lexState="decimalExponent")}if(!util.isDigit(c))return newToken("numeric",sign*Number(buffer));buffer+=read()},decimalExponent(){switch(c){case"+":case"-":return buffer+=read(),void(lexState="decimalExponentSign")}if(util.isDigit(c))return buffer+=read(),void(lexState="decimalExponentInteger");throw invalidChar(read())},decimalExponentSign(){if(util.isDigit(c))return buffer+=read(),void(lexState="decimalExponentInteger");throw invalidChar(read())},decimalExponentInteger(){if(!util.isDigit(c))return newToken("numeric",sign*Number(buffer));buffer+=read()},hexadecimal(){if(util.isHexDigit(c))return buffer+=read(),void(lexState="hexadecimalInteger");throw invalidChar(read())},hexadecimalInteger(){if(!util.isHexDigit(c))return newToken("numeric",sign*Number(buffer));buffer+=read()},string(){switch(c){case"\\":return read(),void(buffer+=escape());case'"':return doubleQuote?(read(),newToken("string",buffer)):void(buffer+=read());case"'":return doubleQuote?void(buffer+=read()):(read(),newToken("string",buffer));case"\n":case"\r":throw invalidChar(read());case"\u2028":case"\u2029":separatorChar(c);break;case void 0:throw invalidChar(read())}buffer+=read()},start(){switch(c){case"{":case"[":return newToken("punctuator",read())}lexState="value"},beforePropertyName(){switch(c){case"$":case"_":return buffer=read(),void(lexState="identifierName");case"\\":return read(),void(lexState="identifierNameStartEscape");case"}":return newToken("punctuator",read());case'"':case"'":return doubleQuote='"'===read(),void(lexState="string")}if(util.isIdStartChar(c))return buffer+=read(),void(lexState="identifierName");throw invalidChar(read())},afterPropertyName(){if(":"===c)return newToken("punctuator",read());throw invalidChar(read())},beforePropertyValue(){lexState="value"},afterPropertyValue(){switch(c){case",":case"}":return newToken("punctuator",read())}throw invalidChar(read())},beforeArrayValue(){if("]"===c)return newToken("punctuator",read());lexState="value"},afterArrayValue(){switch(c){case",":case"]":return newToken("punctuator",read())}throw invalidChar(read())},end(){throw invalidChar(read())}};function newToken(u,D){return{type:u,value:D,line:line,column:column}}function literal(u){for(const D of u){if(peek()!==D)throw invalidChar(read());read()}}function escape(){switch(peek()){case"b":return read(),"\b";case"f":return read(),"\f";case"n":return read(),"\n";case"r":return read(),"\r";case"t":return read(),"\t";case"v":return read(),"\v";case"0":if(read(),util.isDigit(peek()))throw invalidChar(read());return"\0";case"x":return read(),hexEscape();case"u":return read(),unicodeEscape();case"\n":case"\u2028":case"\u2029":return read(),"";case"\r":return read(),"\n"===peek()&&read(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case void 0:throw invalidChar(read())}return read()}function hexEscape(){let u="",D=peek();if(!util.isHexDigit(D))throw invalidChar(read());if(u+=read(),D=peek(),!util.isHexDigit(D))throw invalidChar(read());return u+=read(),String.fromCodePoint(parseInt(u,16))}function unicodeEscape(){let u="",D=4;for(;D-- >0;){const D=peek();if(!util.isHexDigit(D))throw invalidChar(read());u+=read()}return String.fromCodePoint(parseInt(u,16))}const parseStates={start(){if("eof"===token.type)throw invalidEOF();push()},beforePropertyName(){switch(token.type){case"identifier":case"string":return key=token.value,void(parseState="afterPropertyName");case"punctuator":return void pop();case"eof":throw invalidEOF()}},afterPropertyName(){if("eof"===token.type)throw invalidEOF();parseState="beforePropertyValue"},beforePropertyValue(){if("eof"===token.type)throw invalidEOF();push()},beforeArrayValue(){if("eof"===token.type)throw invalidEOF();"punctuator"!==token.type||"]"!==token.value?push():pop()},afterPropertyValue(){if("eof"===token.type)throw invalidEOF();switch(token.value){case",":return void(parseState="beforePropertyName");case"}":pop()}},afterArrayValue(){if("eof"===token.type)throw invalidEOF();switch(token.value){case",":return void(parseState="beforeArrayValue");case"]":pop()}},end(){}};function push(){let u;switch(token.type){case"punctuator":switch(token.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=token.value}if(void 0===root)root=u;else{const D=stack[stack.length-1];Array.isArray(D)?D.push(u):D[key]=u}if(null!==u&&"object"==typeof u)stack.push(u),parseState=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{const u=stack[stack.length-1];parseState=null==u?"end":Array.isArray(u)?"afterArrayValue":"afterPropertyValue"}}function pop(){stack.pop();const u=stack[stack.length-1];parseState=null==u?"end":Array.isArray(u)?"afterArrayValue":"afterPropertyValue"}function invalidChar(u){return syntaxError(void 0===u?`JSON5: invalid end of input at ${line}:${column}`:`JSON5: invalid character '${formatChar(u)}' at ${line}:${column}`)}function invalidEOF(){return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)}function invalidIdentifier(){return syntaxError(`JSON5: invalid identifier character at ${line}:${column-=5}`)}function separatorChar(u){console.warn(`JSON5: '${formatChar(u)}' in strings is not valid ECMAScript; consider escaping`)}function formatChar(u){const D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u])return D[u];if(u<" "){const D=u.charCodeAt(0).toString(16);return"\\x"+("00"+D).substring(D.length)}return u}function syntaxError(u){const D=new SyntaxError(u);return D.lineNumber=line,D.columnNumber=column,D}var stringify=function(u,D,e){const r=[];let t,F,C,a="",A="";if(null==D||"object"!=typeof D||Array.isArray(D)||(e=D.space,C=D.quote,D=D.replacer),"function"==typeof D)F=D;else if(Array.isArray(D)){t=[];for(const u of D){let D;"string"==typeof u?D=u:("number"==typeof u||u instanceof String||u instanceof Number)&&(D=String(u)),void 0!==D&&t.indexOf(D)<0&&t.push(D)}}return e instanceof Number?e=Number(e):e instanceof String&&(e=String(e)),"number"==typeof e?e>0&&(e=Math.min(10,Math.floor(e)),A="          ".substr(0,e)):"string"==typeof e&&(A=e.substr(0,10)),E("",{"":u});function E(u,D){let e=D[u];switch(null!=e&&("function"==typeof e.toJSON5?e=e.toJSON5(u):"function"==typeof e.toJSON&&(e=e.toJSON(u))),F&&(e=F.call(D,u,e)),e instanceof Number?e=Number(e):e instanceof String?e=String(e):e instanceof Boolean&&(e=e.valueOf()),e){case null:return"null";case!0:return"true";case!1:return"false"}return"string"==typeof e?n(e):"number"==typeof e?String(e):"object"==typeof e?Array.isArray(e)?function(u){if(r.indexOf(u)>=0)throw TypeError("Converting circular structure to JSON5");r.push(u);let D=a;a+=A;let e,t=[];for(let D=0;D<u.length;D++){const e=E(String(D),u);t.push(void 0!==e?e:"null")}if(0===t.length)e="[]";else if(""===A){let u=t.join(",");e="["+u+"]"}else{let u=",\n"+a,r=t.join(u);e="[\n"+a+r+",\n"+D+"]"}return r.pop(),a=D,e}(e):function(u){if(r.indexOf(u)>=0)throw TypeError("Converting circular structure to JSON5");r.push(u);let D=a;a+=A;let e,F=t||Object.keys(u),C=[];for(const D of F){const e=E(D,u);if(void 0!==e){let u=i(D)+":";""!==A&&(u+=" "),u+=e,C.push(u)}}if(0===C.length)e="{}";else{let u;if(""===A)u=C.join(","),e="{"+u+"}";else{let r=",\n"+a;u=C.join(r),e="{\n"+a+u+",\n"+D+"}"}}return r.pop(),a=D,e}(e):void 0}function n(u){const D={"'":.1,'"':.2},e={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};let r="";for(let t=0;t<u.length;t++){const F=u[t];switch(F){case"'":case'"':D[F]++,r+=F;continue;case"\0":if(util.isDigit(u[t+1])){r+="\\x00";continue}}if(e[F])r+=e[F];else if(F<" "){let u=F.charCodeAt(0).toString(16);r+="\\x"+("00"+u).substring(u.length)}else r+=F}const t=C||Object.keys(D).reduce((u,e)=>D[u]<D[e]?u:e);return t+(r=r.replace(new RegExp(t,"g"),e[t]))+t}function i(u){if(0===u.length)return n(u);const D=String.fromCodePoint(u.codePointAt(0));if(!util.isIdStartChar(D))return n(u);for(let e=D.length;e<u.length;e++)if(!util.isIdContinueChar(String.fromCodePoint(u.codePointAt(e))))return n(u);return u}};const JSON5={parse:parse,stringify:stringify};var lib=JSON5;export default lib;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js-1360-	// function invalidParseState () {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js:1361:	//     return new Error(`JSON5: invalid parse state '${parseState}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js-1362-	// }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js-1365-	// function invalidLexState (state) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js:1366:	//     return new Error(`JSON5: invalid lex state '${state}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js-1367-	// }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js-1383-	//     if (token.type === 'eof') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js:1384:	//         return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js-1385-	//     }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js-1387-	//     const c = String.fromCodePoint(token.value.codePointAt(0))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js:1388:	//     return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.js-1389-	// }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1057-// function invalidParseState () {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs:1058://     return new Error(`JSON5: invalid parse state '${parseState}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1059-// }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1062-// function invalidLexState (state) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs:1063://     return new Error(`JSON5: invalid lex state '${state}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1064-// }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1067-    if (c === undefined) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs:1068:        return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1069-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1070-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs:1071:    return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1072-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1074-function invalidEOF () {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs:1075:    return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1076-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1080-//     if (token.type === 'eof') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs:1081://         return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1082-//     }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1084-//     const c = String.fromCodePoint(token.value.codePointAt(0))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs:1085://     return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1086-// }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1089-    column -= 5;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs:1090:    return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1091-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1093-function separatorChar (c) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs:1094:    console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json5/dist/index.mjs-1095-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/readme.md-247-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/readme.md:248:Although written in vanilla js (which means it doesn't depends on jQuery), this library will automatically detect if jQuery/Zepto is present and create `$.ua` object based on browser's user-agent (although in case you need, `window.UAParser` constructor is still present). To get/set user-agent you can use: `$.ua.get()` / `$.ua.set(uastring)`. 
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/readme.md-249-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/readme.md-294-* Write a unit test to showcase your feature
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/readme.md:295:* Run the test suites to make sure the changes you made didn't break anything `$ npm run test`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/readme.md-296-* Commit and push to your own repository
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/dist/ua-parser.min.js-8- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/dist/ua-parser.min.js:9:(function(window,undefined){"use strict";var LIBVERSION="0.7.21",EMPTY="",UNKNOWN="?",FUNC_TYPE="function",UNDEF_TYPE="undefined",OBJ_TYPE="object",STR_TYPE="string",MAJOR="major",MODEL="model",NAME="name",TYPE="type",VENDOR="vendor",VERSION="version",ARCHITECTURE="architecture",CONSOLE="console",MOBILE="mobile",TABLET="tablet",SMARTTV="smarttv",WEARABLE="wearable",EMBEDDED="embedded";var util={extend:function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},has:function(str1,str2){if(typeof str1==="string"){return str2.toLowerCase().indexOf(str1.toLowerCase())!==-1}else{return false}},lowerize:function(str){return str.toLowerCase()},major:function(version){return typeof version===STR_TYPE?version.replace(/[^\d\.]/g,"").split(".")[0]:undefined},trim:function(str){return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}};var mapper={rgx:function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length==2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length==3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length==4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},str:function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(util.has(map[i][j],str)){return i===UNKNOWN?undefined:i}}}else if(util.has(map[i],str)){return i===UNKNOWN?undefined:i}}return str}};var maps={browser:{oldsafari:{version:{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}}},device:{amazon:{model:{"Fire Phone":["SD","KF"]}},sprint:{model:{"Evo Shift 4G":"7373KT"},vendor:{HTC:"APA",Sprint:"Sprint"}}},os:{windows:{version:{ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2000:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"}}}};var regexes={browser:[[/(opera\smini)\/([\w\.-]+)/i,/(opera\s[mobiletab]+).+version\/([\w\.-]+)/i,/(opera).+version\/([\w\.]+)/i,/(opera)[\/\s]+([\w\.]+)/i],[NAME,VERSION],[/(opios)[\/\s]+([\w\.]+)/i],[[NAME,"Opera Mini"],VERSION],[/\s(opr)\/([\w\.]+)/i],[[NAME,"Opera"],VERSION],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i,/(avant\s|iemobile|slim)(?:browser)?[\/\s]?([\w\.]*)/i,/(bidubrowser|baidubrowser)[\/\s]?([\w\.]+)/i,/(?:ms|\()(ie)\s([\w\.]+)/i,/(rekonq)\/([\w\.]*)/i,/(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\/([\w\.-]+)/i],[NAME,VERSION],[/(konqueror)\/([\w\.]+)/i],[[NAME,"Konqueror"],VERSION],[/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i],[[NAME,"IE"],VERSION],[/(edge|edgios|edga|edg)\/((\d+)?[\w\.]+)/i],[[NAME,"Edge"],VERSION],[/(yabrowser)\/([\w\.]+)/i],[[NAME,"Yandex"],VERSION],[/(Avast)\/([\w\.]+)/i],[[NAME,"Avast Secure Browser"],VERSION],[/(AVG)\/([\w\.]+)/i],[[NAME,"AVG Secure Browser"],VERSION],[/(puffin)\/([\w\.]+)/i],[[NAME,"Puffin"],VERSION],[/(focus)\/([\w\.]+)/i],[[NAME,"Firefox Focus"],VERSION],[/(opt)\/([\w\.]+)/i],[[NAME,"Opera Touch"],VERSION],[/((?:[\s\/])uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i],[[NAME,"UCBrowser"],VERSION],[/(comodo_dragon)\/([\w\.]+)/i],[[NAME,/_/g," "],VERSION],[/(windowswechat qbcore)\/([\w\.]+)/i],[[NAME,"WeChat(Win) Desktop"],VERSION],[/(micromessenger)\/([\w\.]+)/i],[[NAME,"WeChat"],VERSION],[/(brave)\/([\w\.]+)/i],[[NAME,"Brave"],VERSION],[/(qqbrowserlite)\/([\w\.]+)/i],[NAME,VERSION],[/(QQ)\/([\d\.]+)/i],[NAME,VERSION],[/m?(qqbrowser)[\/\s]?([\w\.]+)/i],[NAME,VERSION],[/(baiduboxapp)[\/\s]?([\w\.]+)/i],[NAME,VERSION],[/(2345Explorer)[\/\s]?([\w\.]+)/i],[NAME,VERSION],[/(MetaSr)[\/\s]?([\w\.]+)/i],[NAME],[/(LBBROWSER)/i],[NAME],[/xiaomi\/miuibrowser\/([\w\.]+)/i],[VERSION,[NAME,"MIUI Browser"]],[/;fbav\/([\w\.]+);/i],[VERSION,[NAME,"Facebook"]],[/safari\s(line)\/([\w\.]+)/i,/android.+(line)\/([\w\.]+)\/iab/i],[NAME,VERSION],[/headlesschrome(?:\/([\w\.]+)|\s)/i],[VERSION,[NAME,"Chrome Headless"]],[/\swv\).+(chrome)\/([\w\.]+)/i],[[NAME,/(.+)/,"$1 WebView"],VERSION],[/((?:oculus|samsung)browser)\/([\w\.]+)/i],[[NAME,/(.+(?:g|us))(.+)/,"$1 $2"],VERSION],[/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)*/i],[VERSION,[NAME,"Android Browser"]],[/(sailfishbrowser)\/([\w\.]+)/i],[[NAME,"Sailfish Browser"],VERSION],[/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i],[NAME,VERSION],[/(dolfin)\/([\w\.]+)/i],[[NAME,"Dolphin"],VERSION],[/(qihu|qhbrowser|qihoobrowser|360browser)/i],[[NAME,"360 Browser"]],[/((?:android.+)crmo|crios)\/([\w\.]+)/i],[[NAME,"Chrome"],VERSION],[/(coast)\/([\w\.]+)/i],[[NAME,"Opera Coast"],VERSION],[/fxios\/([\w\.-]+)/i],[VERSION,[NAME,"Firefox"]],[/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i],[VERSION,[NAME,"Mobile Safari"]],[/version\/([\w\.]+).+?(mobile\s?safari|safari)/i],[VERSION,NAME],[/webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i],[[NAME,"GSA"],VERSION],[/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i],[NAME,[VERSION,mapper.str,maps.browser.oldsafari.version]],[/(webkit|khtml)\/([\w\.]+)/i],[NAME,VERSION],[/(navigator|netscape)\/([\w\.-]+)/i],[[NAME,"Netscape"],VERSION],[/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i,/(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)$/i,/(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i,/(links)\s\(([\w\.]+)/i,/(gobrowser)\/?([\w\.]*)/i,/(ice\s?browser)\/v?([\w\._]+)/i,/(mosaic)[\/\s]([\w\.]+)/i],[NAME,VERSION]],cpu:[[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i],[[ARCHITECTURE,"amd64"]],[/(ia32(?=;))/i],[[ARCHITECTURE,util.lowerize]],[/((?:i[346]|x)86)[;\)]/i],[[ARCHITECTURE,"ia32"]],[/windows\s(ce|mobile);\sppc;/i],[[ARCHITECTURE,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i],[[ARCHITECTURE,/ower/,"",util.lowerize]],[/(sun4\w)[;\)]/i],[[ARCHITECTURE,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+[;l]))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i],[[ARCHITECTURE,util.lowerize]]],device:[[/\((ipad|playbook);[\w\s\),;-]+(rim|apple)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/applecoremedia\/[\w\.]+ \((ipad)/],[MODEL,[VENDOR,"Apple"],[TYPE,TABLET]],[/(apple\s{0,1}tv)/i],[[MODEL,"Apple TV"],[VENDOR,"Apple"],[TYPE,SMARTTV]],[/(archos)\s(gamepad2?)/i,/(hp).+(touchpad)/i,/(hp).+(tablet)/i,/(kindle)\/([\w\.]+)/i,/\s(nook)[\w\s]+build\/(\w+)/i,/(dell)\s(strea[kpr\s\d]*[\dko])/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(kf[A-z]+)\sbuild\/.+silk\//i],[MODEL,[VENDOR,"Amazon"],[TYPE,TABLET]],[/(sd|kf)[0349hijorstuw]+\sbuild\/.+silk\//i],[[MODEL,mapper.str,maps.device.amazon.model],[VENDOR,"Amazon"],[TYPE,MOBILE]],[/android.+aft([bms])\sbuild/i],[MODEL,[VENDOR,"Amazon"],[TYPE,SMARTTV]],[/\((ip[honed|\s\w*]+);.+(apple)/i],[MODEL,VENDOR,[TYPE,MOBILE]],[/\((ip[honed|\s\w*]+);/i],[MODEL,[VENDOR,"Apple"],[TYPE,MOBILE]],[/(blackberry)[\s-]?(\w+)/i,/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i,/(hp)\s([\w\s]+\w)/i,/(asus)-?(\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/\(bb10;\s(\w+)/i],[MODEL,[VENDOR,"BlackBerry"],[TYPE,MOBILE]],[/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7|padfone|p00c)/i],[MODEL,[VENDOR,"Asus"],[TYPE,TABLET]],[/(sony)\s(tablet\s[ps])\sbuild\//i,/(sony)?(?:sgp.+)\sbuild\//i],[[VENDOR,"Sony"],[MODEL,"Xperia Tablet"],[TYPE,TABLET]],[/android.+\s([c-g]\d{4}|so[-l]\w+)(?=\sbuild\/|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[MODEL,[VENDOR,"Sony"],[TYPE,MOBILE]],[/\s(ouya)\s/i,/(nintendo)\s([wids3u]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/android.+;\s(shield)\sbuild/i],[MODEL,[VENDOR,"Nvidia"],[TYPE,CONSOLE]],[/(playstation\s[34portablevi]+)/i],[MODEL,[VENDOR,"Sony"],[TYPE,CONSOLE]],[/(sprint\s(\w+))/i],[[VENDOR,mapper.str,maps.device.sprint.vendor],[MODEL,mapper.str,maps.device.sprint.model],[TYPE,MOBILE]],[/(htc)[;_\s-]+([\w\s]+(?=\)|\sbuild)|\w+)/i,/(zte)-(\w*)/i,/(alcatel|geeksphone|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i],[VENDOR,[MODEL,/_/g," "],[TYPE,MOBILE]],[/(nexus\s9)/i],[MODEL,[VENDOR,"HTC"],[TYPE,TABLET]],[/d\/huawei([\w\s-]+)[;\)]/i,/(nexus\s6p|vog-l29|ane-lx1|eml-l29)/i],[MODEL,[VENDOR,"Huawei"],[TYPE,MOBILE]],[/android.+(bah2?-a?[lw]\d{2})/i],[MODEL,[VENDOR,"Huawei"],[TYPE,TABLET]],[/(microsoft);\s(lumia[\s\w]+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/[\s\(;](xbox(?:\sone)?)[\s\);]/i],[MODEL,[VENDOR,"Microsoft"],[TYPE,CONSOLE]],[/(kin\.[onetw]{3})/i],[[MODEL,/\./g," "],[VENDOR,"Microsoft"],[TYPE,MOBILE]],[/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)[\w\s]+build\//i,/mot[\s-]?(\w*)/i,/(XT\d{3,4}) build\//i,/(nexus\s6)/i],[MODEL,[VENDOR,"Motorola"],[TYPE,MOBILE]],[/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i],[MODEL,[VENDOR,"Motorola"],[TYPE,TABLET]],[/hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i],[[VENDOR,util.trim],[MODEL,util.trim],[TYPE,SMARTTV]],[/hbbtv.+maple;(\d+)/i],[[MODEL,/^/,"SmartTV"],[VENDOR,"Samsung"],[TYPE,SMARTTV]],[/\(dtv[\);].+(aquos)/i],[MODEL,[VENDOR,"Sharp"],[TYPE,SMARTTV]],[/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n\d+|sgh-t8[56]9|nexus 10))/i,/((SM-T\w+))/i],[[VENDOR,"Samsung"],MODEL,[TYPE,TABLET]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV],MODEL],[/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-\w[\w\d]+))/i,/(sam[sung]*)[\s-]*(\w+-?[\w-]*)/i,/sec-((sgh\w+))/i],[[VENDOR,"Samsung"],MODEL,[TYPE,MOBILE]],[/sie-(\w*)/i],[MODEL,[VENDOR,"Siemens"],[TYPE,MOBILE]],[/(maemo|nokia).*(n900|lumia\s\d+)/i,/(nokia)[\s_-]?([\w-]*)/i],[[VENDOR,"Nokia"],MODEL,[TYPE,MOBILE]],[/android[x\d\.\s;]+\s([ab][1-7]\-?[0178a]\d\d?)/i],[MODEL,[VENDOR,"Acer"],[TYPE,TABLET]],[/android.+([vl]k\-?\d{3})\s+build/i],[MODEL,[VENDOR,"LG"],[TYPE,TABLET]],[/android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i],[[VENDOR,"LG"],MODEL,[TYPE,TABLET]],[/(lg) netcast\.tv/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/(nexus\s[45])/i,/lg[e;\s\/-]+(\w*)/i,/android.+lg(\-?[\d\w]+)\s+build/i],[MODEL,[VENDOR,"LG"],[TYPE,MOBILE]],[/(lenovo)\s?(s(?:5000|6000)(?:[\w-]+)|tab(?:[\s\w]+))/i],[VENDOR,MODEL,[TYPE,TABLET]],[/android.+(ideatab[a-z0-9\-\s]+)/i],[MODEL,[VENDOR,"Lenovo"],[TYPE,TABLET]],[/(lenovo)[_\s-]?([\w-]+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/linux;.+((jolla));/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/((pebble))app\/[\d\.]+\s/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/android.+;\s(oppo)\s?([\w\s]+)\sbuild/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/crkey/i],[[MODEL,"Chromecast"],[VENDOR,"Google"],[TYPE,SMARTTV]],[/android.+;\s(glass)\s\d/i],[MODEL,[VENDOR,"Google"],[TYPE,WEARABLE]],[/android.+;\s(pixel c)[\s)]/i],[MODEL,[VENDOR,"Google"],[TYPE,TABLET]],[/android.+;\s(pixel( [23])?( xl)?)[\s)]/i],[MODEL,[VENDOR,"Google"],[TYPE,MOBILE]],[/android.+;\s(\w+)\s+build\/hm\1/i,/android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i,/android.+(mi[\s\-_]*(?:a\d|one|one[\s_]plus|note lte)?[\s_]*(?:\d?\w?)[\s_]*(?:plus)?)\s+build/i,/android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+))\s+build/i],[[MODEL,/_/g," "],[VENDOR,"Xiaomi"],[TYPE,MOBILE]],[/android.+(mi[\s\-_]*(?:pad)(?:[\s_]*[\w\s]+))\s+build/i],[[MODEL,/_/g," "],[VENDOR,"Xiaomi"],[TYPE,TABLET]],[/android.+;\s(m[1-5]\snote)\sbuild/i],[MODEL,[VENDOR,"Meizu"],[TYPE,MOBILE]],[/(mz)-([\w-]{2,})/i],[[VENDOR,"Meizu"],MODEL,[TYPE,MOBILE]],[/android.+a000(1)\s+build/i,/android.+oneplus\s(a\d{4})[\s)]/i],[MODEL,[VENDOR,"OnePlus"],[TYPE,MOBILE]],[/android.+[;\/]\s*(RCT[\d\w]+)\s+build/i],[MODEL,[VENDOR,"RCA"],[TYPE,TABLET]],[/android.+[;\/\s]+(Venue[\d\s]{2,7})\s+build/i],[MODEL,[VENDOR,"Dell"],[TYPE,TABLET]],[/android.+[;\/]\s*(Q[T|M][\d\w]+)\s+build/i],[MODEL,[VENDOR,"Verizon"],[TYPE,TABLET]],[/android.+[;\/]\s+(Barnes[&\s]+Noble\s+|BN[RT])(V?.*)\s+build/i],[[VENDOR,"Barnes & Noble"],MODEL,[TYPE,TABLET]],[/android.+[;\/]\s+(TM\d{3}.*\b)\s+build/i],[MODEL,[VENDOR,"NuVision"],[TYPE,TABLET]],[/android.+;\s(k88)\sbuild/i],[MODEL,[VENDOR,"ZTE"],[TYPE,TABLET]],[/android.+[;\/]\s*(gen\d{3})\s+build.*49h/i],[MODEL,[VENDOR,"Swiss"],[TYPE,MOBILE]],[/android.+[;\/]\s*(zur\d{3})\s+build/i],[MODEL,[VENDOR,"Swiss"],[TYPE,TABLET]],[/android.+[;\/]\s*((Zeki)?TB.*\b)\s+build/i],[MODEL,[VENDOR,"Zeki"],[TYPE,TABLET]],[/(android).+[;\/]\s+([YR]\d{2})\s+build/i,/android.+[;\/]\s+(Dragon[\-\s]+Touch\s+|DT)(\w{5})\sbuild/i],[[VENDOR,"Dragon Touch"],MODEL,[TYPE,TABLET]],[/android.+[;\/]\s*(NS-?\w{0,9})\sbuild/i],[MODEL,[VENDOR,"Insignia"],[TYPE,TABLET]],[/android.+[;\/]\s*((NX|Next)-?\w{0,9})\s+build/i],[MODEL,[VENDOR,"NextBook"],[TYPE,TABLET]],[/android.+[;\/]\s*(Xtreme\_)?(V(1[045]|2[015]|30|40|60|7[05]|90))\s+build/i],[[VENDOR,"Voice"],MODEL,[TYPE,MOBILE]],[/android.+[;\/]\s*(LVTEL\-)?(V1[12])\s+build/i],[[VENDOR,"LvTel"],MODEL,[TYPE,MOBILE]],[/android.+;\s(PH-1)\s/i],[MODEL,[VENDOR,"Essential"],[TYPE,MOBILE]],[/android.+[;\/]\s*(V(100MD|700NA|7011|917G).*\b)\s+build/i],[MODEL,[VENDOR,"Envizen"],[TYPE,TABLET]],[/android.+[;\/]\s*(Le[\s\-]+Pan)[\s\-]+(\w{1,9})\s+build/i],[VENDOR,MODEL,[TYPE,TABLET]],[/android.+[;\/]\s*(Trio[\s\-]*.*)\s+build/i],[MODEL,[VENDOR,"MachSpeed"],[TYPE,TABLET]],[/android.+[;\/]\s*(Trinity)[\-\s]*(T\d{3})\s+build/i],[VENDOR,MODEL,[TYPE,TABLET]],[/android.+[;\/]\s*TU_(1491)\s+build/i],[MODEL,[VENDOR,"Rotor"],[TYPE,TABLET]],[/android.+(KS(.+))\s+build/i],[MODEL,[VENDOR,"Amazon"],[TYPE,TABLET]],[/android.+(Gigaset)[\s\-]+(Q\w{1,9})\s+build/i],[VENDOR,MODEL,[TYPE,TABLET]],[/\s(tablet|tab)[;\/]/i,/\s(mobile)(?:[;\/]|\ssafari)/i],[[TYPE,util.lowerize],VENDOR,MODEL],[/[\s\/\(](smart-?tv)[;\)]/i],[[TYPE,SMARTTV]],[/(android[\w\.\s\-]{0,9});.+build/i],[MODEL,[VENDOR,"Generic"]]],engine:[[/windows.+\sedge\/([\w\.]+)/i],[VERSION,[NAME,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[VERSION,[NAME,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i,/(icab)[\/\s]([23]\.[\d\.]+)/i],[NAME,VERSION],[/rv\:([\w\.]{1,9}).+(gecko)/i],[VERSION,NAME]],os:[[/microsoft\s(windows)\s(vista|xp)/i],[NAME,VERSION],[/(windows)\snt\s6\.2;\s(arm)/i,/(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i,/(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i],[NAME,[VERSION,mapper.str,maps.os.windows.version]],[/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i],[[NAME,"Windows"],[VERSION,mapper.str,maps.os.windows.version]],[/\((bb)(10);/i],[[NAME,"BlackBerry"],VERSION],[/(blackberry)\w*\/?([\w\.]*)/i,/(tizen|kaios)[\/\s]([\w\.]+)/i,/(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|sailfish|contiki)[\/\s-]?([\w\.]*)/i],[NAME,VERSION],[/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i],[[NAME,"Symbian"],VERSION],[/\((series40);/i],[NAME],[/mozilla.+\(mobile;.+gecko.+firefox/i],[[NAME,"Firefox OS"],VERSION],[/(nintendo|playstation)\s([wids34portablevu]+)/i,/(mint)[\/\s\(]?(\w*)/i,/(mageia|vectorlinux)[;\s]/i,/(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]*)/i,/(hurd|linux)\s?([\w\.]*)/i,/(gnu)\s?([\w\.]*)/i],[NAME,VERSION],[/(cros)\s[\w]+\s([\w\.]+\w)/i],[[NAME,"Chromium OS"],VERSION],[/(sunos)\s?([\w\.\d]*)/i],[[NAME,"Solaris"],VERSION],[/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]*)/i],[NAME,VERSION],[/(haiku)\s(\w+)/i],[NAME,VERSION],[/cfnetwork\/.+darwin/i,/ip[honead]{2,4}(?:.*os\s([\w]+)\slike\smac|;\sopera)/i],[[VERSION,/_/g,"."],[NAME,"iOS"]],[/(mac\sos\sx)\s?([\w\s\.]*)/i,/(macintosh|mac(?=_powerpc)\s)/i],[[NAME,"Mac OS"],[VERSION,/_/g,"."]],[/((?:open)?solaris)[\/\s-]?([\w\.]*)/i,/(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i,/(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms|fuchsia)/i,/(unix)\s?([\w\.]*)/i],[NAME,VERSION]]};var UAParser=function(uastring,extensions){if(typeof uastring==="object"){extensions=uastring;uastring=undefined}if(!(this instanceof UAParser)){return new UAParser(uastring,extensions).getResult()}var ua=uastring||(window&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:EMPTY);var rgxmap=extensions?util.extend(regexes,extensions):regexes;this.getBrowser=function(){var browser={name:undefined,version:undefined};mapper.rgx.call(browser,ua,rgxmap.browser);browser.major=util.major(browser.version);return browser};this.getCPU=function(){var cpu={architecture:undefined};mapper.rgx.call(cpu,ua,rgxmap.cpu);return cpu};this.getDevice=function(){var device={vendor:undefined,model:undefined,type:undefined};mapper.rgx.call(device,ua,rgxmap.device);return device};this.getEngine=function(){var engine={name:undefined,version:undefined};mapper.rgx.call(engine,ua,rgxmap.engine);return engine};this.getOS=function(){var os={name:undefined,version:undefined};mapper.rgx.call(os,ua,rgxmap.os);return os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return ua};this.setUA=function(uastring){ua=uastring;return this};return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER={NAME:NAME,MAJOR:MAJOR,VERSION:VERSION};UAParser.CPU={ARCHITECTURE:ARCHITECTURE};UAParser.DEVICE={MODEL:MODEL,VENDOR:VENDOR,TYPE:TYPE,CONSOLE:CONSOLE,MOBILE:MOBILE,SMARTTV:SMARTTV,TABLET:TABLET,WEARABLE:WEARABLE,EMBEDDED:EMBEDDED};UAParser.ENGINE={NAME:NAME,VERSION:VERSION};UAParser.OS={NAME:NAME,VERSION:VERSION};if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define==="function"&&define.amd){define(function(){return UAParser})}else if(window){window.UAParser=UAParser}}var $=window&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(uastring){parser.setUA(uastring);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window==="object"?window:this);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/dist/ua-parser.pack.js-8- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ua-parser-js/dist/ua-parser.pack.js:9:!function(i,s){"use strict";var e="0.7.21",o="",r="?",a="function",n="undefined",d="object",t="string",w="major",l="model",u="name",c="type",b="vendor",m="version",p="architecture",g="console",f="mobile",h="tablet",v="smarttv",x="wearable",k="embedded",y={extend:function(i,s){var e={};for(var o in i)s[o]&&s[o].length%2===0?e[o]=s[o].concat(i[o]):e[o]=i[o];return e},has:function(i,s){return"string"==typeof i&&s.toLowerCase().indexOf(i.toLowerCase())!==-1},lowerize:function(i){return i.toLowerCase()},major:function(i){return typeof i===t?i.replace(/[^\d\.]/g,"").split(".")[0]:s},trim:function(i){return i.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},T={rgx:function(i,e){for(var o,r,n,t,w,l,u=0;u<e.length&&!w;){var c=e[u],b=e[u+1];for(o=r=0;o<c.length&&!w;)if(w=c[o++].exec(i))for(n=0;n<b.length;n++)l=w[++r],t=b[n],typeof t===d&&t.length>0?2==t.length?typeof t[1]==a?this[t[0]]=t[1].call(this,l):this[t[0]]=t[1]:3==t.length?typeof t[1]!==a||t[1].exec&&t[1].test?this[t[0]]=l?l.replace(t[1],t[2]):s:this[t[0]]=l?t[1].call(this,l,t[2]):s:4==t.length&&(this[t[0]]=l?t[3].call(this,l.replace(t[1],t[2])):s):this[t]=l?l:s;u+=2}},str:function(i,e){for(var o in e)if(typeof e[o]===d&&e[o].length>0){for(var a=0;a<e[o].length;a++)if(y.has(e[o][a],i))return o===r?s:o}else if(y.has(e[o],i))return o===r?s:o;return i}},A={browser:{oldsafari:{version:{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}}},device:{amazon:{model:{"Fire Phone":["SD","KF"]}},sprint:{model:{"Evo Shift 4G":"7373KT"},vendor:{HTC:"APA",Sprint:"Sprint"}}},os:{windows:{version:{ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2000:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"}}}},S={browser:[[/(opera\smini)\/([\w\.-]+)/i,/(opera\s[mobiletab]+).+version\/([\w\.-]+)/i,/(opera).+version\/([\w\.]+)/i,/(opera)[\/\s]+([\w\.]+)/i],[u,m],[/(opios)[\/\s]+([\w\.]+)/i],[[u,"Opera Mini"],m],[/\s(opr)\/([\w\.]+)/i],[[u,"Opera"],m],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i,/(avant\s|iemobile|slim)(?:browser)?[\/\s]?([\w\.]*)/i,/(bidubrowser|baidubrowser)[\/\s]?([\w\.]+)/i,/(?:ms|\()(ie)\s([\w\.]+)/i,/(rekonq)\/([\w\.]*)/i,/(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\/([\w\.-]+)/i],[u,m],[/(konqueror)\/([\w\.]+)/i],[[u,"Konqueror"],m],[/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i],[[u,"IE"],m],[/(edge|edgios|edga|edg)\/((\d+)?[\w\.]+)/i],[[u,"Edge"],m],[/(yabrowser)\/([\w\.]+)/i],[[u,"Yandex"],m],[/(Avast)\/([\w\.]+)/i],[[u,"Avast Secure Browser"],m],[/(AVG)\/([\w\.]+)/i],[[u,"AVG Secure Browser"],m],[/(puffin)\/([\w\.]+)/i],[[u,"Puffin"],m],[/(focus)\/([\w\.]+)/i],[[u,"Firefox Focus"],m],[/(opt)\/([\w\.]+)/i],[[u,"Opera Touch"],m],[/((?:[\s\/])uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i],[[u,"UCBrowser"],m],[/(comodo_dragon)\/([\w\.]+)/i],[[u,/_/g," "],m],[/(windowswechat qbcore)\/([\w\.]+)/i],[[u,"WeChat(Win) Desktop"],m],[/(micromessenger)\/([\w\.]+)/i],[[u,"WeChat"],m],[/(brave)\/([\w\.]+)/i],[[u,"Brave"],m],[/(qqbrowserlite)\/([\w\.]+)/i],[u,m],[/(QQ)\/([\d\.]+)/i],[u,m],[/m?(qqbrowser)[\/\s]?([\w\.]+)/i],[u,m],[/(baiduboxapp)[\/\s]?([\w\.]+)/i],[u,m],[/(2345Explorer)[\/\s]?([\w\.]+)/i],[u,m],[/(MetaSr)[\/\s]?([\w\.]+)/i],[u],[/(LBBROWSER)/i],[u],[/xiaomi\/miuibrowser\/([\w\.]+)/i],[m,[u,"MIUI Browser"]],[/;fbav\/([\w\.]+);/i],[m,[u,"Facebook"]],[/safari\s(line)\/([\w\.]+)/i,/android.+(line)\/([\w\.]+)\/iab/i],[u,m],[/headlesschrome(?:\/([\w\.]+)|\s)/i],[m,[u,"Chrome Headless"]],[/\swv\).+(chrome)\/([\w\.]+)/i],[[u,/(.+)/,"$1 WebView"],m],[/((?:oculus|samsung)browser)\/([\w\.]+)/i],[[u,/(.+(?:g|us))(.+)/,"$1 $2"],m],[/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)*/i],[m,[u,"Android Browser"]],[/(sailfishbrowser)\/([\w\.]+)/i],[[u,"Sailfish Browser"],m],[/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i],[u,m],[/(dolfin)\/([\w\.]+)/i],[[u,"Dolphin"],m],[/(qihu|qhbrowser|qihoobrowser|360browser)/i],[[u,"360 Browser"]],[/((?:android.+)crmo|crios)\/([\w\.]+)/i],[[u,"Chrome"],m],[/(coast)\/([\w\.]+)/i],[[u,"Opera Coast"],m],[/fxios\/([\w\.-]+)/i],[m,[u,"Firefox"]],[/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i],[m,[u,"Mobile Safari"]],[/version\/([\w\.]+).+?(mobile\s?safari|safari)/i],[m,u],[/webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i],[[u,"GSA"],m],[/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i],[u,[m,T.str,A.browser.oldsafari.version]],[/(webkit|khtml)\/([\w\.]+)/i],[u,m],[/(navigator|netscape)\/([\w\.-]+)/i],[[u,"Netscape"],m],[/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i,/(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)$/i,/(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i,/(links)\s\(([\w\.]+)/i,/(gobrowser)\/?([\w\.]*)/i,/(ice\s?browser)\/v?([\w\._]+)/i,/(mosaic)[\/\s]([\w\.]+)/i],[u,m]],cpu:[[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i],[[p,"amd64"]],[/(ia32(?=;))/i],[[p,y.lowerize]],[/((?:i[346]|x)86)[;\)]/i],[[p,"ia32"]],[/windows\s(ce|mobile);\sppc;/i],[[p,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i],[[p,/ower/,"",y.lowerize]],[/(sun4\w)[;\)]/i],[[p,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+[;l]))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i],[[p,y.lowerize]]],device:[[/\((ipad|playbook);[\w\s\),;-]+(rim|apple)/i],[l,b,[c,h]],[/applecoremedia\/[\w\.]+ \((ipad)/],[l,[b,"Apple"],[c,h]],[/(apple\s{0,1}tv)/i],[[l,"Apple TV"],[b,"Apple"],[c,v]],[/(archos)\s(gamepad2?)/i,/(hp).+(touchpad)/i,/(hp).+(tablet)/i,/(kindle)\/([\w\.]+)/i,/\s(nook)[\w\s]+build\/(\w+)/i,/(dell)\s(strea[kpr\s\d]*[\dko])/i],[b,l,[c,h]],[/(kf[A-z]+)\sbuild\/.+silk\//i],[l,[b,"Amazon"],[c,h]],[/(sd|kf)[0349hijorstuw]+\sbuild\/.+silk\//i],[[l,T.str,A.device.amazon.model],[b,"Amazon"],[c,f]],[/android.+aft([bms])\sbuild/i],[l,[b,"Amazon"],[c,v]],[/\((ip[honed|\s\w*]+);.+(apple)/i],[l,b,[c,f]],[/\((ip[honed|\s\w*]+);/i],[l,[b,"Apple"],[c,f]],[/(blackberry)[\s-]?(\w+)/i,/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i,/(hp)\s([\w\s]+\w)/i,/(asus)-?(\w+)/i],[b,l,[c,f]],[/\(bb10;\s(\w+)/i],[l,[b,"BlackBerry"],[c,f]],[/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7|padfone|p00c)/i],[l,[b,"Asus"],[c,h]],[/(sony)\s(tablet\s[ps])\sbuild\//i,/(sony)?(?:sgp.+)\sbuild\//i],[[b,"Sony"],[l,"Xperia Tablet"],[c,h]],[/android.+\s([c-g]\d{4}|so[-l]\w+)(?=\sbuild\/|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[l,[b,"Sony"],[c,f]],[/\s(ouya)\s/i,/(nintendo)\s([wids3u]+)/i],[b,l,[c,g]],[/android.+;\s(shield)\sbuild/i],[l,[b,"Nvidia"],[c,g]],[/(playstation\s[34portablevi]+)/i],[l,[b,"Sony"],[c,g]],[/(sprint\s(\w+))/i],[[b,T.str,A.device.sprint.vendor],[l,T.str,A.device.sprint.model],[c,f]],[/(htc)[;_\s-]+([\w\s]+(?=\)|\sbuild)|\w+)/i,/(zte)-(\w*)/i,/(alcatel|geeksphone|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i],[b,[l,/_/g," "],[c,f]],[/(nexus\s9)/i],[l,[b,"HTC"],[c,h]],[/d\/huawei([\w\s-]+)[;\)]/i,/(nexus\s6p|vog-l29|ane-lx1|eml-l29)/i],[l,[b,"Huawei"],[c,f]],[/android.+(bah2?-a?[lw]\d{2})/i],[l,[b,"Huawei"],[c,h]],[/(microsoft);\s(lumia[\s\w]+)/i],[b,l,[c,f]],[/[\s\(;](xbox(?:\sone)?)[\s\);]/i],[l,[b,"Microsoft"],[c,g]],[/(kin\.[onetw]{3})/i],[[l,/\./g," "],[b,"Microsoft"],[c,f]],[/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)[\w\s]+build\//i,/mot[\s-]?(\w*)/i,/(XT\d{3,4}) build\//i,/(nexus\s6)/i],[l,[b,"Motorola"],[c,f]],[/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i],[l,[b,"Motorola"],[c,h]],[/hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i],[[b,y.trim],[l,y.trim],[c,v]],[/hbbtv.+maple;(\d+)/i],[[l,/^/,"SmartTV"],[b,"Samsung"],[c,v]],[/\(dtv[\);].+(aquos)/i],[l,[b,"Sharp"],[c,v]],[/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n\d+|sgh-t8[56]9|nexus 10))/i,/((SM-T\w+))/i],[[b,"Samsung"],l,[c,h]],[/smart-tv.+(samsung)/i],[b,[c,v],l],[/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-\w[\w\d]+))/i,/(sam[sung]*)[\s-]*(\w+-?[\w-]*)/i,/sec-((sgh\w+))/i],[[b,"Samsung"],l,[c,f]],[/sie-(\w*)/i],[l,[b,"Siemens"],[c,f]],[/(maemo|nokia).*(n900|lumia\s\d+)/i,/(nokia)[\s_-]?([\w-]*)/i],[[b,"Nokia"],l,[c,f]],[/android[x\d\.\s;]+\s([ab][1-7]\-?[0178a]\d\d?)/i],[l,[b,"Acer"],[c,h]],[/android.+([vl]k\-?\d{3})\s+build/i],[l,[b,"LG"],[c,h]],[/android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i],[[b,"LG"],l,[c,h]],[/(lg) netcast\.tv/i],[b,l,[c,v]],[/(nexus\s[45])/i,/lg[e;\s\/-]+(\w*)/i,/android.+lg(\-?[\d\w]+)\s+build/i],[l,[b,"LG"],[c,f]],[/(lenovo)\s?(s(?:5000|6000)(?:[\w-]+)|tab(?:[\s\w]+))/i],[b,l,[c,h]],[/android.+(ideatab[a-z0-9\-\s]+)/i],[l,[b,"Lenovo"],[c,h]],[/(lenovo)[_\s-]?([\w-]+)/i],[b,l,[c,f]],[/linux;.+((jolla));/i],[b,l,[c,f]],[/((pebble))app\/[\d\.]+\s/i],[b,l,[c,x]],[/android.+;\s(oppo)\s?([\w\s]+)\sbuild/i],[b,l,[c,f]],[/crkey/i],[[l,"Chromecast"],[b,"Google"],[c,v]],[/android.+;\s(glass)\s\d/i],[l,[b,"Google"],[c,x]],[/android.+;\s(pixel c)[\s)]/i],[l,[b,"Google"],[c,h]],[/android.+;\s(pixel( [23])?( xl)?)[\s)]/i],[l,[b,"Google"],[c,f]],[/android.+;\s(\w+)\s+build\/hm\1/i,/android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i,/android.+(mi[\s\-_]*(?:a\d|one|one[\s_]plus|note lte)?[\s_]*(?:\d?\w?)[\s_]*(?:plus)?)\s+build/i,/android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+))\s+build/i],[[l,/_/g," "],[b,"Xiaomi"],[c,f]],[/android.+(mi[\s\-_]*(?:pad)(?:[\s_]*[\w\s]+))\s+build/i],[[l,/_/g," "],[b,"Xiaomi"],[c,h]],[/android.+;\s(m[1-5]\snote)\sbuild/i],[l,[b,"Meizu"],[c,f]],[/(mz)-([\w-]{2,})/i],[[b,"Meizu"],l,[c,f]],[/android.+a000(1)\s+build/i,/android.+oneplus\s(a\d{4})[\s)]/i],[l,[b,"OnePlus"],[c,f]],[/android.+[;\/]\s*(RCT[\d\w]+)\s+build/i],[l,[b,"RCA"],[c,h]],[/android.+[;\/\s]+(Venue[\d\s]{2,7})\s+build/i],[l,[b,"Dell"],[c,h]],[/android.+[;\/]\s*(Q[T|M][\d\w]+)\s+build/i],[l,[b,"Verizon"],[c,h]],[/android.+[;\/]\s+(Barnes[&\s]+Noble\s+|BN[RT])(V?.*)\s+build/i],[[b,"Barnes & Noble"],l,[c,h]],[/android.+[;\/]\s+(TM\d{3}.*\b)\s+build/i],[l,[b,"NuVision"],[c,h]],[/android.+;\s(k88)\sbuild/i],[l,[b,"ZTE"],[c,h]],[/android.+[;\/]\s*(gen\d{3})\s+build.*49h/i],[l,[b,"Swiss"],[c,f]],[/android.+[;\/]\s*(zur\d{3})\s+build/i],[l,[b,"Swiss"],[c,h]],[/android.+[;\/]\s*((Zeki)?TB.*\b)\s+build/i],[l,[b,"Zeki"],[c,h]],[/(android).+[;\/]\s+([YR]\d{2})\s+build/i,/android.+[;\/]\s+(Dragon[\-\s]+Touch\s+|DT)(\w{5})\sbuild/i],[[b,"Dragon Touch"],l,[c,h]],[/android.+[;\/]\s*(NS-?\w{0,9})\sbuild/i],[l,[b,"Insignia"],[c,h]],[/android.+[;\/]\s*((NX|Next)-?\w{0,9})\s+build/i],[l,[b,"NextBook"],[c,h]],[/android.+[;\/]\s*(Xtreme\_)?(V(1[045]|2[015]|30|40|60|7[05]|90))\s+build/i],[[b,"Voice"],l,[c,f]],[/android.+[;\/]\s*(LVTEL\-)?(V1[12])\s+build/i],[[b,"LvTel"],l,[c,f]],[/android.+;\s(PH-1)\s/i],[l,[b,"Essential"],[c,f]],[/android.+[;\/]\s*(V(100MD|700NA|7011|917G).*\b)\s+build/i],[l,[b,"Envizen"],[c,h]],[/android.+[;\/]\s*(Le[\s\-]+Pan)[\s\-]+(\w{1,9})\s+build/i],[b,l,[c,h]],[/android.+[;\/]\s*(Trio[\s\-]*.*)\s+build/i],[l,[b,"MachSpeed"],[c,h]],[/android.+[;\/]\s*(Trinity)[\-\s]*(T\d{3})\s+build/i],[b,l,[c,h]],[/android.+[;\/]\s*TU_(1491)\s+build/i],[l,[b,"Rotor"],[c,h]],[/android.+(KS(.+))\s+build/i],[l,[b,"Amazon"],[c,h]],[/android.+(Gigaset)[\s\-]+(Q\w{1,9})\s+build/i],[b,l,[c,h]],[/\s(tablet|tab)[;\/]/i,/\s(mobile)(?:[;\/]|\ssafari)/i],[[c,y.lowerize],b,l],[/[\s\/\(](smart-?tv)[;\)]/i],[[c,v]],[/(android[\w\.\s\-]{0,9});.+build/i],[l,[b,"Generic"]]],engine:[[/windows.+\sedge\/([\w\.]+)/i],[m,[u,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[m,[u,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i,/(icab)[\/\s]([23]\.[\d\.]+)/i],[u,m],[/rv\:([\w\.]{1,9}).+(gecko)/i],[m,u]],os:[[/microsoft\s(windows)\s(vista|xp)/i],[u,m],[/(windows)\snt\s6\.2;\s(arm)/i,/(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i,/(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i],[u,[m,T.str,A.os.windows.version]],[/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i],[[u,"Windows"],[m,T.str,A.os.windows.version]],[/\((bb)(10);/i],[[u,"BlackBerry"],m],[/(blackberry)\w*\/?([\w\.]*)/i,/(tizen|kaios)[\/\s]([\w\.]+)/i,/(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|sailfish|contiki)[\/\s-]?([\w\.]*)/i],[u,m],[/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i],[[u,"Symbian"],m],[/\((series40);/i],[u],[/mozilla.+\(mobile;.+gecko.+firefox/i],[[u,"Firefox OS"],m],[/(nintendo|playstation)\s([wids34portablevu]+)/i,/(mint)[\/\s\(]?(\w*)/i,/(mageia|vectorlinux)[;\s]/i,/(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]*)/i,/(hurd|linux)\s?([\w\.]*)/i,/(gnu)\s?([\w\.]*)/i],[u,m],[/(cros)\s[\w]+\s([\w\.]+\w)/i],[[u,"Chromium OS"],m],[/(sunos)\s?([\w\.\d]*)/i],[[u,"Solaris"],m],[/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]*)/i],[u,m],[/(haiku)\s(\w+)/i],[u,m],[/cfnetwork\/.+darwin/i,/ip[honead]{2,4}(?:.*os\s([\w]+)\slike\smac|;\sopera)/i],[[m,/_/g,"."],[u,"iOS"]],[/(mac\sos\sx)\s?([\w\s\.]*)/i,/(macintosh|mac(?=_powerpc)\s)/i],[[u,"Mac OS"],[m,/_/g,"."]],[/((?:open)?solaris)[\/\s-]?([\w\.]*)/i,/(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i,/(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms|fuchsia)/i,/(unix)\s?([\w\.]*)/i],[u,m]]},E=function(e,r){if("object"==typeof e&&(r=e,e=s),!(this instanceof E))return new E(e,r).getResult();var a=e||(i&&i.navigator&&i.navigator.userAgent?i.navigator.userAgent:o),n=r?y.extend(S,r):S;return this.getBrowser=function(){var i={name:s,version:s};return T.rgx.call(i,a,n.browser),i.major=y.major(i.version),i},this.getCPU=function(){var i={architecture:s};return T.rgx.call(i,a,n.cpu),i},this.getDevice=function(){var i={vendor:s,model:s,type:s};return T.rgx.call(i,a,n.device),i},this.getEngine=function(){var i={name:s,version:s};return T.rgx.call(i,a,n.engine),i},this.getOS=function(){var i={name:s,version:s};return T.rgx.call(i,a,n.os),i},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return a},this.setUA=function(i){return a=i,this},this};E.VERSION=e,E.BROWSER={NAME:u,MAJOR:w,VERSION:m},E.CPU={ARCHITECTURE:p},E.DEVICE={MODEL:l,VENDOR:b,TYPE:c,CONSOLE:g,MOBILE:f,SMARTTV:v,TABLET:h,WEARABLE:x,EMBEDDED:k},E.ENGINE={NAME:u,VERSION:m},E.OS={NAME:u,VERSION:m},typeof exports!==n?(typeof module!==n&&module.exports&&(exports=module.exports=E),exports.UAParser=E):"function"==typeof define&&define.amd?define(function(){return E}):i&&(i.UAParser=E);var N=i&&(i.jQuery||i.Zepto);if(N&&!N.ua){var z=new E;N.ua=z.getResult(),N.ua.get=function(){return z.getUA()},N.ua.set=function(i){z.setUA(i);var s=z.getResult();for(var e in s)N.ua[e]=s[e]}}}("object"==typeof window?window:this);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/README.md-470-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/README.md:471:Note that `${project}/code` matches the `code` provided at `folders[0].path`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/README.md-472-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/docs/rules/no-dynamic-require.md-13-require('../' + name);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/docs/rules/no-dynamic-require.md:14:require(`../${name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/docs/rules/no-dynamic-require.md-15-require(name());
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/docsUrl.js-16-function docsUrl(ruleName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/docsUrl.js:17:  let commitish = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : `v${_package2.default.version}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/docsUrl.js-18-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/docsUrl.js:19:  return `${repoUrl}/blob/${commitish}/docs/rules/${ruleName}.md`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/docsUrl.js-20-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js-22-      if (kind === 'var' || kind === 'let') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js:23:        context.report(node, `Exporting mutable '${kind}' binding, use 'const' instead.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js-24-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js-51-    const commentStyleRegex = /^( \w+: ("[^"]*"|\d+|false|true),?)+ $/;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js:52:    const chunkSubstrFormat = ` webpackChunkName: "${webpackChunknameFormat}",? `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js-53-    const chunkSubstrRegex = new RegExp(chunkSubstrFormat);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js-93-            // just like webpack itself does
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js:94:            _vm2.default.runInNewContext(`(function(){return {${comment.value}}})()`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js-95-          } catch (error) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js-105-              node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js:106:              message: `dynamic imports require a leading comment in the form /*${chunkSubstrFormat}*/`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js-107-            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js-118-            node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js:119:            message: `dynamic imports require a leading comment in the form /*${chunkSubstrFormat}*/`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js-120-          });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js-65-            // Replace the ImportNamespaceSpecifier with a list of ImportSpecifiers
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js:66:            const namedImportSpecifiers = importNames.map(importName => importName === importLocalNames[importName] ? importName : `${importName} as ${importLocalNames[importName]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js:67:            fixes.push(fixer.replaceText(node, `{ ${namedImportSpecifiers.join(', ')} }`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js-68-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js-132-      localName = name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js:133:    } else if (!nameConflicts[name].has(`${namespaceName}_${name}`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js:134:      localName = `${namespaceName}_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js-135-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js-136-      for (let i = 1; i < Infinity; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js:137:        if (!nameConflicts[name].has(`${namespaceName}_${name}_${i}`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js:138:          localName = `${namespaceName}_${name}_${i}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-namespace.js-139-          break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/export.js-73-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/export.js:74:      const key = isType ? `${tsTypePrefix}${name}` : name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/export.js-75-      let nodes = named.get(key);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/export.js-139-        if (!any) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/export.js:140:          context.report(node.source, `No named exports found in module '${node.source.value}'.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/export.js-141-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/export.js-163-              } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/export.js:164:                context.report(node, `Multiple exports of name '${name.replace(tsTypePrefix, '')}'.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/export.js-165-              }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/extensions.js-163-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/extensions.js:164:      if (!extension || !importPath.endsWith(`.${extension}`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/extensions.js-165-        const extensionRequired = isUseOfExtensionRequired(extension, isPackage);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/extensions.js-169-            node: source,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/extensions.js:170:            message: `Missing file extension ${extension ? `"${extension}" ` : ''}for "${importPathWithQueryString}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/extensions.js-171-          });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/extensions.js-176-            node: source,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/extensions.js:177:            message: `Unexpected use of file extension "${extension}" for "${importPathWithQueryString}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/extensions.js-178-          });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/named.js-60-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/named.js:61:            context.report(im[key], `${im[key].name} not found via ${deepPath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/named.js-62-          } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js-45-      if (resolvedPath === undefined) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js:46:        context.report(source, `Unable to resolve path to module '${source.value}'.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js-47-      } else if (shouldCheckCase) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js-49-        if (!(0, _resolve.fileExistsWithCaseSync)(resolvedPath, cacheSettings)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js:50:          context.report(source, `Casing of ${source.value} does not match the underlying filesystem.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js-51-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js-52-    function makeMessage(last, namepath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js:53:      return `'${last.name}' not found in` + (namepath.length > 1 ? ' deeply ' : ' ') + `imported namespace '${namepath.join('.')}'.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js-54-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js-78-                if (!imports.size) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js:79:                  context.report(specifier, `No exported names found in module '${declaration.source.value}'.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js-80-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js-111-        if (!imports.size) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js:112:          context.report(namespace, `No exported names found in module '${declaration.source.value}'.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js-113-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js-122-        if (dereference.parent.type === 'AssignmentExpression' && dereference.parent.left === dereference) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js:123:          context.report(dereference.parent, `Assignment to member of namespace '${dereference.object.name}'.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/namespace.js-124-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js-74-        return carry.concat(extensions.map(extension => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js:75:          return (/\*\*|\*\./.test(pattern) ? pattern : `${pattern}/**/*${extension}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js-76-          );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js-561-        if (exportStatement.whereUsed.size < 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js:562:          context.report(node, `exported declaration '${value}' not used within other modules`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js-563-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js-564-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js:565:        context.report(node, `exported declaration '${value}' not used within other modules`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js-566-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-default-export.js-18-      let local = _ref.local;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-default-export.js:19:      return `Do not alias \`${local.name}\` as \`default\`. Just export ` + `\`${local.name}\` itself instead.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-default-export.js-20-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js-90-            node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js:91:            message: `Caution: \`${objectName}\` also has a named export ` + `\`${propName}\`. Check if you meant to write ` + `\`import {${propName}} from '${fileImport.sourcePath}'\` ` + 'instead.'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js-92-          });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js-23-  if (dependencies.size > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js:24:    context.report(lastNode, `Maximum number of dependencies (${max}) exceeded.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js-25-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-amd.js-37-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-amd.js:38:        context.report(node, `Expected imports instead of AMD ${node.callee.name}().`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-amd.js-39-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js-38-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js:39:  return (/^((\.\.)|(\.))($|\/)/.test(stripped) ? stripped : `./${stripped}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js-40-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js-84-          // Note: Using messageIds is not possible due to the support for ESLint 2 and 3
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js:85:          message: `Useless path segments for "${importPath}", should be "${proposedPath}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js-86-          fix: fixer => proposedPath && fixer.replaceText(source, JSON.stringify(proposedPath))
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js-103-      const fileExtensions = (0, _ignore.getFileExtensions)(context.settings);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js:104:      const regexUnnecessaryIndex = new RegExp(`.*\\/index(\\${Array.from(fileExtensions).join('|\\')})?$`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js-105-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js-112-          for (let fileExtension of fileExtensions) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js:113:            if ((0, _resolve2.default)(`${parentDirectory}${fileExtension}`, context)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js:114:              return reportWithProposedPath(`${parentDirectory}/`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js-115-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js-55-          node: sourceNode,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js:56:          message: 'Relative imports from parent directories are not allowed. ' + `Please either pass what you're importing through at runtime ` + `(dependency injection), move \`${(0, _path.basename)(myPath)}\` to same ` + `directory as \`${depPath}\` or consider making \`${depPath}\` a package.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js-57-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js-80-      const justSteps = steps.join('/');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js:81:      if (reachingAllowed(justSteps) || reachingAllowed(`/${justSteps}`)) return false;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js-82-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js-97-          node,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js:98:          message: `Reaching to "${importPath}" is not allowed.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js-99-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js-14-  if (name.indexOf('!') !== -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js:15:    context.report(node, `Unexpected '!' in '${name}'. ` + 'Do not use import syntax to configure webpack loaders.');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-named-default.js-24-              node: im.local,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-named-default.js:25:              message: `Use default import syntax to import '${im.local.name}'.` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-named-default.js-26-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/default.js-36-          node: defaultSpecifier,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/default.js:37:          message: `No default export found in imported module "${node.source.value}".`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/default.js-38-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-cycle.js-90-        if (detectCycle(next)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-cycle.js:91:          const message = next.route.length > 0 ? `Dependency cycle via ${routeString(next.route)}` : 'Dependency cycle detected.';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-cycle.js-92-          context.report(importer, message);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-cycle.js-102-function routeString(route) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-cycle.js:103:  return route.map(s => `${s.value}:${s.loc.start.line}`).join('=>');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-cycle.js-104-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js-112-function missingErrorMessage(packageName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js:113:  return `'${packageName}' should be listed in the project's dependencies. ` + `Run 'npm i -S ${packageName}' to add it`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js-114-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js-116-function devDepErrorMessage(packageName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js:117:  return `'${packageName}' should be listed in the project's dependencies, not devDependencies.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js-118-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js-120-function optDepErrorMessage(packageName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js:121:  return `'${packageName}' should be listed in the project's dependencies, ` + `not optionalDependencies.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js-122-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-26-    if (nodes.length > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js:27:      const message = `'${module}' imported multiple times.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-28-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-130-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js:131:      return [needsComma && !specifier.isEmpty ? `${result},${specifier.text}` : `${result}${specifier.text}`, specifier.isEmpty ? needsComma : true];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-132-    }, ['', !firstHasTrailingComma && !firstIsEmpty]),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-141-      // `import './foo'` → `import def, {...} from './foo'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js:142:      fixes.push(fixer.insertTextAfter(firstToken, ` ${defaultImportName}, {${specifiersText}} from`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-143-    } else if (shouldAddDefault && openBrace == null && !shouldAddSpecifiers) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-144-      // `import './foo'` → `import def from './foo'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js:145:      fixes.push(fixer.insertTextAfter(firstToken, ` ${defaultImportName} from`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-146-    } else if (shouldAddDefault && openBrace != null && closeBrace != null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-147-      // `import {...} from './foo'` → `import def, {...} from './foo'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js:148:      fixes.push(fixer.insertTextAfter(firstToken, ` ${defaultImportName},`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-149-      if (shouldAddSpecifiers) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-155-        // `import './foo'` → `import {...} from './foo'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js:156:        fixes.push(fixer.insertTextAfter(firstToken, ` {${specifiersText}} from`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-157-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-158-        // `import def from './foo'` → `import def, {...} from './foo'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js:159:        fixes.push(fixer.insertTextAfter(first.specifiers[0], `, {${specifiersText}}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js-160-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/ExportMap.js-212-      node: declaration.source,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/ExportMap.js:213:      message: `Parse errors in imported module '${declaration.source.value}': ` + `${this.errors.map(e => `${e.message} (${e.lineNumber}:${e.column})`).join(', ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/ExportMap.js-214-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/core/importType.js-35-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/core/importType.js:36:    return `${scope}/${pkg}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/lib/core/importType.js-37-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/pify/readme.md-81-Type: `array` of (`string`|`regex`)  
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/pify/readme.md:82:Default: `[/.+Sync$/]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/pify/readme.md-83-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js-1-var a = require.resolve('buffer/').replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js:2:var b = require('resolve').sync('buffer/', { preserveSymlinks: true }).replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js:3:var c = require('resolve').sync('buffer/', { preserveSymlinks: false }).replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js-4-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/path-type/index.js-6-	if (typeof fp !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/path-type/index.js:7:		return Promise.reject(new TypeError(`Expected a string, got ${typeof fp}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/path-type/index.js-8-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/path-type/index.js-14-	if (typeof fp !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/path-type/index.js:15:		throw new TypeError(`Expected a string, got ${typeof fp}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-plugin-import/node_modules/path-type/index.js-16-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readdirp/README.md-17-  const {path} = entry;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readdirp/README.md:18:  console.log(`${JSON.stringify({path})}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readdirp/README.md-19-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readdirp/README.md-25-    const {path, stats: {size}} = entry;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readdirp/README.md:26:    console.log(`${JSON.stringify({path, size})}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readdirp/README.md-27-  })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readdirp/index.js-294-  } else if (type && !ALL_TYPES.includes(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readdirp/index.js:295:    throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/readdirp/index.js-296-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js-9-if (process.platform !== 'darwin') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js:10:  throw new Error(`Module 'fsevents' is not compatible with platform '${process.platform}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js-11-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js-17-  if (typeof path !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js:18:    throw new TypeError(`fsevents argument 1 must be a string and not a ${typeof path}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js-19-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js-20-  if (typeof handler !== 'function') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js:21:    throw new TypeError(`fsevents argument 2 must be a function and not a ${typeof handler}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js-24-  let instance = Native.start(path, handler);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js:25:  if (!instance) throw new Error(`could not watch: ${path}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fsevents/fsevents.js-26-  return () => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@istanbuljs/schema/README.md-15-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@istanbuljs/schema/README.md:16:console.log(`Default exclude list:\n\t* ${nyc.exclude.join('\n\t* ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@istanbuljs/schema/README.md-17-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/README.md-91-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/README.md:92:const regex = new RegExp(`^${source}$`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/README.md-93-console.log(regex.test('14')); //=> false
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/README.md-142-const source = toRegexRange('-0010', '0010');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/README.md:143:const regex = new RegExp(`^${source}$`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/README.md-144-console.log(regex.test('-10')); //=> true
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/README.md-155-const source = toRegexRange('-0010', '0010', { relaxZeros: false });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/README.md:156:const regex = new RegExp(`^${source}$`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/README.md-157-console.log(regex.test('-10')); //=> false
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-45-    if (opts.capture) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js:46:      return `(${result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-47-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-50-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js:51:    return `(?:${result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-52-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-78-  if (opts.capture === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js:79:    state.result = `(${state.result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-80-  } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js:81:    state.result = `(?:${state.result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-82-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-242-  if (stop || start > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js:243:    return `{${start + (stop ? ',' + stop : '')}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-244-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-248-function toCharacterClass(a, b, options) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js:249:  return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-250-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-271-    default: {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js:272:      return relax ? `0{0,${diff}}` : `0{${diff}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/to-regex-range/index.js-273-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/license-checker/node_modules/nopt/CHANGELOG.md-34-  Use `osenv.home()` to find a user's home directory instead of assuming it's
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/license-checker/node_modules/nopt/CHANGELOG.md:35:  always `$HOME`. ([@othiym23](https://github.com/othiym23))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/license-checker/node_modules/nopt/CHANGELOG.md-36-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-56-```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md:57:console.log(c.yellow(`foo ${c.red.bold('red')} bar ${c.cyan('cyan')} baz`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-58-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-67-const { bold, red } = require('ansi-styles');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md:68:console.log(bold(`foo ${red.dim('bar')} baz`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-69-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-70-const colorette = require('colorette');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md:71:console.log(colorette.bold(`foo ${colorette.red(colorette.dim('bar'))} baz`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-72-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-73-const kleur = require('kleur');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md:74:console.log(kleur.bold(`foo ${kleur.red.dim('bar')} baz`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-75-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-76-const chalk = require('chalk');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md:77:console.log(chalk.bold(`foo ${chalk.red.dim('bar')} baz`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/README.md-78-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/index.js-9-const ansi = style => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/index.js:10:  style.open = `\u001b[${style.codes[0]}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/index.js:11:  style.close = `\u001b[${style.codes[1]}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/index.js:12:  style.regex = new RegExp(`\\u001b\\[${style.codes[1]}m`, 'g');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/index.js-13-  return style;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/index.js-21-  // this issue is also present in Windows terminals
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/index.js:22:  return nl ? str.replace(/\r?\n/g, `${close}$&${open}`) : str;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-colors/index.js-23-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.values/node_modules/es-to-primitive/Makefile-8-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.values/node_modules/es-to-primitive/Makefile:9:# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.values/node_modules/es-to-primitive/Makefile-10-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.values/node_modules/es-to-primitive/Makefile-50-	@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.values/node_modules/es-to-primitive/Makefile:51:	 new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.values/node_modules/es-to-primitive/Makefile-52-	 if printf "$$new_ver" | command grep -q '^[0-9]'; then \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.values/node_modules/es-to-primitive/Makefile-55-	 else \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.values/node_modules/es-to-primitive/Makefile:56:	   new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.values/node_modules/es-to-primitive/Makefile-57-	 fi; \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-date-object/Makefile-8-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-date-object/Makefile:9:# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-date-object/Makefile-10-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-date-object/Makefile-50-	@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-date-object/Makefile:51:	 new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-date-object/Makefile-52-	 if printf "$$new_ver" | command grep -q '^[0-9]'; then \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-date-object/Makefile-55-	 else \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-date-object/Makefile:56:	   new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-date-object/Makefile-57-	 fi; \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-44-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:45:/** Defines `$eval` and `$$eval` for Page, Frame and ElementHandle. */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-46-export interface Evalable {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-50-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:51:   * If `pageFunction` returns a Promise, then `$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-52-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-65-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:66:   * If `pageFunction` returns a Promise, then `$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-67-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-82-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:83:   * If `pageFunction` returns a Promise, then `$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-84-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-101-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:102:   * If `pageFunction` returns a Promise, then `$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-103-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-122-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:123:   * If `pageFunction` returns a Promise, then `$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-124-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-139-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:140:   * If `pageFunction` returns a Promise, then `$$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-141-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-154-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:155:   * If `pageFunction` returns a Promise, then `$$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-156-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-171-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:172:   * If `pageFunction` returns a Promise, then `$$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-173-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-190-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:191:   * If `pageFunction` returns a Promise, then `$$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-192-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-211-   *
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:212:   * If `pageFunction` returns a Promise, then `$$eval` would wait for the promise to resolve and return its value.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-213-   *
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-2147-  /**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts:2148:   * A browser url to connect to, in format `http://${host}:${port}`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/puppeteer/index.d.ts-2149-   * Use interchangeably with browserWSEndpoint to let Puppeteer fetch it from metadata endpoint.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/node/v8.d.ts-57-     * saved. If not specified, a file name with the pattern
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/node/v8.d.ts:58:     * `'Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot'` will be
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@types/node/v8.d.ts-59-     * generated, where `{pid}` will be the PID of the Node.js process,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.dev.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 8fed4521a5c75bdca9f5","webpack:///./lib/index.js","webpack:///./lib/url.js","webpack:///./~/parseuri/index.js","webpack:///./~/debug/src/browser.js","webpack:///./~/process/browser.js","webpack:///./~/debug/src/debug.js","webpack:///./~/ms/index.js","webpack:///./~/socket.io-parser/index.js","webpack:///./~/component-emitter/index.js","webpack:///./~/socket.io-parser/binary.js","webpack:///./~/isarray/index.js","webpack:///./~/socket.io-parser/is-buffer.js","webpack:///./lib/manager.js","webpack:///./~/engine.io-client/lib/index.js","webpack:///./~/engine.io-client/lib/socket.js","webpack:///./~/engine.io-client/lib/transports/index.js","webpack:///./~/engine.io-client/lib/xmlhttprequest.js","webpack:///./~/has-cors/index.js","webpack:///./~/engine.io-client/lib/transports/polling-xhr.js","webpack:///./~/engine.io-client/lib/transports/polling.js","webpack:///./~/engine.io-client/lib/transport.js","webpack:///./~/engine.io-parser/lib/browser.js","webpack:///./~/engine.io-parser/lib/keys.js","webpack:///./~/has-binary2/index.js","webpack:///./~/arraybuffer.slice/index.js","webpack:///./~/after/index.js","webpack:///./~/engine.io-parser/lib/utf8.js","webpack:///(webpack)/buildin/module.js","webpack:///./~/base64-arraybuffer/lib/base64-arraybuffer.js","webpack:///./~/blob/index.js","webpack:///./~/parseqs/index.js","webpack:///./~/component-inherit/index.js","webpack:///./~/yeast/index.js","webpack:///./~/engine.io-client/lib/transports/polling-jsonp.js","webpack:///./~/engine.io-client/lib/transports/websocket.js","webpack:///ws (ignored)","webpack:///./~/indexof/index.js","webpack:///./lib/socket.js","webpack:///./~/to-array/index.js","webpack:///./lib/on.js","webpack:///./~/component-bind/index.js","webpack:///./~/backo2/index.js"],"names":["url","require","parser","Manager","debug","module","exports","lookup","cache","managers","uri","opts","undefined","parsed","source","id","path","sameNamespace","nsps","newConnection","forceNew","multiplex","io","query","socket","protocol","connect","Socket","parseuri","loc","obj","global","location","host","charAt","test","port","ipv6","indexOf","href","eio","Emitter","on","bind","Backoff","has","Object","prototype","hasOwnProperty","subs","reconnection","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","min","max","jitter","timeout","readyState","connecting","lastPing","encoding","packetBuffer","_parser","encoder","Encoder","decoder","Decoder","autoConnect","open","emitAll","emit","apply","arguments","nsp","call","updateSocketIds","generateId","engine","v","length","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","maybeReconnectOnOpen","reconnecting","attempts","reconnect","fn","self","skipReconnect","openSub","onopen","errorSub","data","cleanup","err","Error","timer","setTimeout","destroy","close","push","clearTimeout","onping","Date","onpong","ondata","add","ondecoded","packet","onerror","onConnecting","index","splice","type","encode","encodedPackets","i","write","options","processPacketQueue","pack","shift","subsLength","sub","disconnect","reset","onclose","reason","delay","duration","onreconnect","attempt","toArray","parseqs","hasBin","events","connect_error","connect_timeout","error","reconnect_attempt","reconnect_failed","reconnect_error","ping","pong","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","flags","subEvents","send","args","unshift","ev","binary","BINARY_EVENT","EVENT","compress","pop","CONNECT","onpacket","rootNamespaceError","ERROR","onconnect","onevent","ACK","onack","BINARY_ACK","DISCONNECT","ondisconnect","ack","sent","emitBuffered","removeListener"],"mappings":"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AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;;;;;;;AClMA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAqC;;AAErC;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;;ACtLtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAc;AACd;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,cAAa,SAAS;AACtB,6BAA4B;AAC5B;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,cAAa,8BAA8B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA,0CAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AChOA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,OAAO;AAClB,aAAY,MAAM;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtJA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA0B;AAC1B,uBAAsB;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,sFAAqF;AACrF;;AAEA;AACA;AACA;AACA;AACA,MAAK,OAAO;AACZ;AACA;AACA;AACA,uCAAsC;AACtC;AACA;AACA,MAAK;AACL;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,oBAAoB;AAChC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,qBAAqB;AAChC,aAAY,cAAc;AAC1B;AACA;AACA;;AAEA;AACA;AACA,4DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/ZA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,aAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA2C,SAAS;AACpD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;;;;;;AClKA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAoC;AACpC,WAAU;AACV;;AAEA;AACA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA,IAAG;AACH;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA,kCAAiC;AACjC;AACA;;AAEA;AACA;;AAEA;AACA,8BAA6B;AAC7B,IAAG;AACH,oBAAmB,iBAAiB;AACpC;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;;AAEA;AAC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KJ,YAAL,GAAoB,KAApB;AACAI,gBAAKF,SAAL;AACAE,gBAAKzB,OAAL,CAAa,iBAAb,EAAgCgC,IAAIF,IAApC;AACD,UALD,MAKO;AACLnG,iBAAM,mBAAN;AACA8F,gBAAK2C,WAAL;AACD;AACF,QAVD;AAWD,MArBW,EAqBTF,KArBS,CAAZ;;AAuBA,UAAK1F,IAAL,CAAU8D,IAAV,CAAe;AACbF,gBAAS,mBAAY;AACnBG,sBAAaL,KAAb;AACD;AAHY,MAAf;AAKD;AACF,EA5CD;;AA8CA;;;;;;AAMAxG,SAAQ4C,SAAR,CAAkB8F,WAAlB,GAAgC,YAAY;AAC1C,OAAIC,UAAU,KAAKtF,OAAL,CAAauC,QAA3B;AACA,QAAKD,YAAL,GAAoB,KAApB;AACA,QAAKtC,OAAL,CAAagF,KAAb;AACA,QAAKzD,eAAL;AACA,QAAKN,OAAL,CAAa,WAAb,EAA0BqE,OAA1B;AACD,EAND,C;;;;;;;ACrjBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA2F;;AAE3F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mCAAkC;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA,+CAA8C,WAAW;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA6C,OAAO;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;;AAEA;AACA;AACA,uCAAsC,OAAO;AAC7C;AACA;AACA;AACA;;;;;;;;ACtuBA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;;;;;;;ACpDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG,YAAY;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,YAAY;;AAEf;AACA;AACA;AACA,MAAK,YAAY;AACjB;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA,2BAA0B,iDAAiD;AAC3E;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,4DAA2D;AAC3D;AACA,QAAO;AACP;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3ZA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iCAAgC,iBAAiB;AACjD;AACA,EAAC;;AAED;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;ACpPA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,UAAU;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AC5JA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,YAAW;;AAEX;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA,+BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+DAA8D,gBAAgB;AAC9E;;AAEA;;AAEA;;AAEA;AACA,gCAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAiB,yBAAyB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAc;AACd,MAAK;AACL,eAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;;AAEA;AACA;AACA,+BAA8B,gBAAgB;AAC9C,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA,aAAY,oBAAoB,oCAAoC;AACpE;;AAEA;;AAEA;AACA;AACA;;AAEA,WAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA,kBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAkC,OAAO;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,aAAY,YAAY;AACxB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,oDAAmD;AACnD,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,cAAc;AACrC;AACA;AACA;AACA;;AAEA,sBAAqB;AACrB;AACA,QAAO,OAAO;AACd;AACA;;AAEA;AACA,sBAAqB,mBAAmB;AACxC;AACA;AACA;;AAEA;AACA,sBAAqB,iBAAiB;AACtC;AACA;AACA,MAAK;;AAEL;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAqB,mBAAmB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAmB,EAAE;AACrB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,wBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;;;;;;;;AC5lBA;AACA;AACA;AACA,aAAY,MAAM;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA0B,sCAAsC;;AAEhE,mBAAkB,gBAAgB;AAClC,iBAAgB,cAAc;AAC9B,qBAAoB,aAAa;;AAEjC;AACA;AACA;;AAEA;AACA;AACA,8BAA6B,SAAS;AACtC;AACA;AACA;AACA;;;;;;;AC5BA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;;;;;;mCC3BA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA,MAAK;AACL,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAsC;AACtC;AACA;AACA;AACA,uCAAsC;AACtC;AACA;AACA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAEA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF,oBAAmB;AACnB;AACA,IAAG,OAAO;AACV;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,OAAO;AACT;AACA;;AAEA,EAAC;;;;;;;;AC9PD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;;AAEA,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;;;;;AClED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAoC;AACpC;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;;;;;;;;AC/FD;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,cAAa,gBAAgB;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAM,YAAY;;AAElB;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAmB;;AAEnB;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;;;;;;;ACtOA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS,OAAO;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AA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EAAJ,CAAO6H,EAAP,EAAWtE,EAAX;AACA,UAAO;AACLY,cAAS,mBAAY;AACnB/E,WAAI6J,cAAJ,CAAmBpB,EAAnB,EAAuBtE,EAAvB;AACD;AAHI,IAAP;AAKD,E;;;;;;ACvBD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,gBAAgB;AAC3B,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA","file":"socket.io.dev.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"io\"] = factory();\n\telse\n\t\troot[\"io\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 8fed4521a5c75bdca9f5","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n *   `io('http://localhost/a');`\n *   `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n  if (typeof uri === 'object') {\n    opts = uri;\n    uri = undefined;\n  }\n\n  opts = opts || {};\n\n  var parsed = url(uri);\n  var source = parsed.source;\n  var id = parsed.id;\n  var path = parsed.path;\n  var sameNamespace = cache[id] && path in cache[id].nsps;\n  var newConnection = opts.forceNew || opts['force new connection'] ||\n                      false === opts.multiplex || sameNamespace;\n\n  var io;\n\n  if (newConnection) {\n    debug('ignoring socket cache for %s', source);\n    io = Manager(source, opts);\n  } else {\n    if (!cache[id]) {\n      debug('new io instance for %s', source);\n      cache[id] = Manager(source, opts);\n    }\n    io = cache[id];\n  }\n  if (parsed.query && !opts.query) {\n    opts.query = parsed.query;\n  }\n  return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n\n\n\n// WEBPACK FOOTER //\n// ./lib/index.js","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n *                 Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n  var obj = uri;\n\n  // default to window.location\n  loc = loc || global.location;\n  if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n  // relative path support\n  if ('string' === typeof uri) {\n    if ('/' === uri.charAt(0)) {\n      if ('/' === uri.charAt(1)) {\n        uri = loc.protocol + uri;\n      } else {\n        uri = loc.host + uri;\n      }\n    }\n\n    if (!/^(https?|wss?):\\/\\//.test(uri)) {\n      debug('protocol-less url %s', uri);\n      if ('undefined' !== typeof loc) {\n        uri = loc.protocol + '//' + uri;\n      } else {\n        uri = 'https://' + uri;\n      }\n    }\n\n    // parse\n    debug('parse %s', uri);\n    obj = parseuri(uri);\n  }\n\n  // make sure we treat `localhost:80` and `localhost` equally\n  if (!obj.port) {\n    if (/^(http|ws)$/.test(obj.protocol)) {\n      obj.port = '80';\n    } else if (/^(http|ws)s$/.test(obj.protocol)) {\n      obj.port = '443';\n    }\n  }\n\n  obj.path = obj.path || '/';\n\n  var ipv6 = obj.host.indexOf(':') !== -1;\n  var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n  // define unique id\n  obj.id = obj.protocol + '://' + host + ':' + obj.port;\n  // define href\n  obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n  return obj;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/url.js","/**\r\n * Parses an URI\r\n *\r\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n * @api private\r\n */\r\n\r\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\r\nvar parts = [\r\n    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n];\r\n\r\nmodule.exports = function parseuri(str) {\r\n    var src = str,\r\n        b = str.indexOf('['),\r\n        e = str.indexOf(']');\r\n\r\n    if (b != -1 && e != -1) {\r\n        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n    }\r\n\r\n    var m = re.exec(str || ''),\r\n        uri = {},\r\n        i = 14;\r\n\r\n    while (i--) {\r\n        uri[parts[i]] = m[i] || '';\r\n    }\r\n\r\n    if (b != -1 && e != -1) {\r\n        uri.source = src;\r\n        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n        uri.ipv6uri = true;\r\n    }\r\n\r\n    return uri;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/parseuri/index.js\n// module id = 2\n// module chunks = 0","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n               && 'undefined' != typeof chrome.storage\n                  ? chrome.storage.local\n                  : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n  '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n  '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n  '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n  '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n  '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n  '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n  '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n  '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n  '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n  '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n  '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n  // NB: In an Electron preload script, document will be defined but not fully\n  // initialized. Since we know we're in Chrome, we'll just detect this case\n  // explicitly\n  if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n    return true;\n  }\n\n  // Internet Explorer and Edge do not support colors.\n  if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n    return false;\n  }\n\n  // is webkit? http://stackoverflow.com/a/16459606/376773\n  // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n  return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n    // is firebug? http://stackoverflow.com/a/398120/376773\n    (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n    // is firefox >= v31?\n    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n    // double check webkit in userAgent just in case we are in a worker\n    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n  try {\n    return JSON.stringify(v);\n  } catch (err) {\n    return '[UnexpectedJSONParseError]: ' + err.message;\n  }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n  var useColors = this.useColors;\n\n  args[0] = (useColors ? '%c' : '')\n    + this.namespace\n    + (useColors ? ' %c' : ' ')\n    + args[0]\n    + (useColors ? '%c ' : ' ')\n    + '+' + exports.humanize(this.diff);\n\n  if (!useColors) return;\n\n  var c = 'color: ' + this.color;\n  args.splice(1, 0, c, 'color: inherit')\n\n  // the final \"%c\" is somewhat tricky, because there could be other\n  // arguments passed either before or after the %c, so we need to\n  // figure out the correct index to insert the CSS into\n  var index = 0;\n  var lastC = 0;\n  args[0].replace(/%[a-zA-Z%]/g, function(match) {\n    if ('%%' === match) return;\n    index++;\n    if ('%c' === match) {\n      // we only are interested in the *last* %c\n      // (the user may have provided their own)\n      lastC = index;\n    }\n  });\n\n  args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n  // this hackery is required for IE8/9, where\n  // the `console.log` function doesn't have 'apply'\n  return 'object' === typeof console\n    && console.log\n    && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n  try {\n    if (null == namespaces) {\n      exports.storage.removeItem('debug');\n    } else {\n      exports.storage.debug = namespaces;\n    }\n  } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n  var r;\n  try {\n    r = exports.storage.debug;\n  } catch(e) {}\n\n  // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n  if (!r && typeof process !== 'undefined' && 'env' in process) {\n    r = process.env.DEBUG;\n  }\n\n  return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n  try {\n    return window.localStorage;\n  } catch (e) {}\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/debug/src/browser.js\n// module id = 3\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 4\n// module chunks = 0","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n  var hash = 0, i;\n\n  for (i in namespace) {\n    hash  = ((hash << 5) - hash) + namespace.charCodeAt(i);\n    hash |= 0; // Convert to 32bit integer\n  }\n\n  return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n  var prevTime;\n\n  function debug() {\n    // disabled?\n    if (!debug.enabled) return;\n\n    var self = debug;\n\n    // set `diff` timestamp\n    var curr = +new Date();\n    var ms = curr - (prevTime || curr);\n    self.diff = ms;\n    self.prev = prevTime;\n    self.curr = curr;\n    prevTime = curr;\n\n    // turn the `arguments` into a proper Array\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n\n    args[0] = exports.coerce(args[0]);\n\n    if ('string' !== typeof args[0]) {\n      // anything else let's inspect with %O\n      args.unshift('%O');\n    }\n\n    // apply any `formatters` transformations\n    var index = 0;\n    args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n      // if we encounter an escaped % then don't increase the array index\n      if (match === '%%') return match;\n      index++;\n      var formatter = exports.formatters[format];\n      if ('function' === typeof formatter) {\n        var val = args[index];\n        match = formatter.call(self, val);\n\n        // now we need to remove `args[index]` since it's inlined in the `format`\n        args.splice(index, 1);\n        index--;\n      }\n      return match;\n    });\n\n    // apply env-specific formatting (colors, etc.)\n    exports.formatArgs.call(self, args);\n\n    var logFn = debug.log || exports.log || console.log.bind(console);\n    logFn.apply(self, args);\n  }\n\n  debug.namespace = namespace;\n  debug.enabled = exports.enabled(namespace);\n  debug.useColors = exports.useColors();\n  debug.color = selectColor(namespace);\n  debug.destroy = destroy;\n\n  // env-specific initialization logic for debug instances\n  if ('function' === typeof exports.init) {\n    exports.init(debug);\n  }\n\n  exports.instances.push(debug);\n\n  return debug;\n}\n\nfunction destroy () {\n  var index = exports.instances.indexOf(this);\n  if (index !== -1) {\n    exports.instances.splice(index, 1);\n    return true;\n  } else {\n    return false;\n  }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n  exports.save(namespaces);\n\n  exports.names = [];\n  exports.skips = [];\n\n  var i;\n  var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n  var len = split.length;\n\n  for (i = 0; i < len; i++) {\n    if (!split[i]) continue; // ignore empty strings\n    namespaces = split[i].replace(/\\*/g, '.*?');\n    if (namespaces[0] === '-') {\n      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n    } else {\n      exports.names.push(new RegExp('^' + namespaces + '$'));\n    }\n  }\n\n  for (i = 0; i < exports.instances.length; i++) {\n    var instance = exports.instances[i];\n    instance.enabled = exports.enabled(instance.namespace);\n  }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n  exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n  if (name[name.length - 1] === '*') {\n    return true;\n  }\n  var i, len;\n  for (i = 0, len = exports.skips.length; i < len; i++) {\n    if (exports.skips[i].test(name)) {\n      return false;\n    }\n  }\n  for (i = 0, len = exports.names.length; i < len; i++) {\n    if (exports.names[i].test(name)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n  if (val instanceof Error) return val.stack || val.message;\n  return val;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/debug/src/debug.js\n// module id = 5\n// module chunks = 0","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n  options = options || {};\n  var type = typeof val;\n  if (type === 'string' && val.length > 0) {\n    return parse(val);\n  } else if (type === 'number' && isNaN(val) === false) {\n    return options.long ? fmtLong(val) : fmtShort(val);\n  }\n  throw new Error(\n    'val is not a non-empty string or a valid number. val=' +\n      JSON.stringify(val)\n  );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = String(str);\n  if (str.length > 100) {\n    return;\n  }\n  var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n    str\n  );\n  if (!match) {\n    return;\n  }\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n    default:\n      return undefined;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n  if (ms >= d) {\n    return Math.round(ms / d) + 'd';\n  }\n  if (ms >= h) {\n    return Math.round(ms / h) + 'h';\n  }\n  if (ms >= m) {\n    return Math.round(ms / m) + 'm';\n  }\n  if (ms >= s) {\n    return Math.round(ms / s) + 's';\n  }\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n  return plural(ms, d, 'day') ||\n    plural(ms, h, 'hour') ||\n    plural(ms, m, 'minute') ||\n    plural(ms, s, 'second') ||\n    ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n  if (ms < n) {\n    return;\n  }\n  if (ms < n * 1.5) {\n    return Math.floor(ms / n) + ' ' + name;\n  }\n  return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ms/index.js\n// module id = 6\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar binary = require('./binary');\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n  'CONNECT',\n  'DISCONNECT',\n  'EVENT',\n  'ACK',\n  'ERROR',\n  'BINARY_EVENT',\n  'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\nvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n  debug('encoding packet %j', obj);\n\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    encodeAsBinary(obj, callback);\n  } else {\n    var encoding = encodeAsString(obj);\n    callback([encoding]);\n  }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n  // first is type\n  var str = '' + obj.type;\n\n  // attachments if we have them\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    str += obj.attachments + '-';\n  }\n\n  // if we have a namespace other than `/`\n  // we append it followed by a comma `,`\n  if (obj.nsp && '/' !== obj.nsp) {\n    str += obj.nsp + ',';\n  }\n\n  // immediately followed by the id\n  if (null != obj.id) {\n    str += obj.id;\n  }\n\n  // json data\n  if (null != obj.data) {\n    var payload = tryStringify(obj.data);\n    if (payload !== false) {\n      str += payload;\n    } else {\n      return ERROR_PACKET;\n    }\n  }\n\n  debug('encoded %j as %s', obj, str);\n  return str;\n}\n\nfunction tryStringify(str) {\n  try {\n    return JSON.stringify(str);\n  } catch(e){\n    return false;\n  }\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n  function writeEncoding(bloblessData) {\n    var deconstruction = binary.deconstructPacket(bloblessData);\n    var pack = encodeAsString(deconstruction.packet);\n    var buffers = deconstruction.buffers;\n\n    buffers.unshift(pack); // add packet info to beginning of data list\n    callback(buffers); // write all the buffers\n  }\n\n  binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n  this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an ecoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n  var packet;\n  if (typeof obj === 'string') {\n    packet = decodeString(obj);\n    if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n      this.reconstructor = new BinaryReconstructor(packet);\n\n      // no attachments, labeled binary but no binary data to follow\n      if (this.reconstructor.reconPack.attachments === 0) {\n        this.emit('decoded', packet);\n      }\n    } else { // non-binary full packet\n      this.emit('decoded', packet);\n    }\n  }\n  else if (isBuf(obj) || obj.base64) { // raw binary data\n    if (!this.reconstructor) {\n      throw new Error('got binary data when not reconstructing a packet');\n    } else {\n      packet = this.reconstructor.takeBinaryData(obj);\n      if (packet) { // received final buffer\n        this.reconstructor = null;\n        this.emit('decoded', packet);\n      }\n    }\n  }\n  else {\n    throw new Error('Unknown type: ' + obj);\n  }\n};\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n  var i = 0;\n  // look up type\n  var p = {\n    type: Number(str.charAt(0))\n  };\n\n  if (null == exports.types[p.type]) {\n    return error('unknown packet type ' + p.type);\n  }\n\n  // look up attachments if type binary\n  if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n    var buf = '';\n    while (str.charAt(++i) !== '-') {\n      buf += str.charAt(i);\n      if (i == str.length) break;\n    }\n    if (buf != Number(buf) || str.charAt(i) !== '-') {\n      throw new Error('Illegal attachments');\n    }\n    p.attachments = Number(buf);\n  }\n\n  // look up namespace (if any)\n  if ('/' === str.charAt(i + 1)) {\n    p.nsp = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (',' === c) break;\n      p.nsp += c;\n      if (i === str.length) break;\n    }\n  } else {\n    p.nsp = '/';\n  }\n\n  // look up id\n  var next = str.charAt(i + 1);\n  if ('' !== next && Number(next) == next) {\n    p.id = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (null == c || Number(c) != c) {\n        --i;\n        break;\n      }\n      p.id += str.charAt(i);\n      if (i === str.length) break;\n    }\n    p.id = Number(p.id);\n  }\n\n  // look up json data\n  if (str.charAt(++i)) {\n    var payload = tryParse(str.substr(i));\n    var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));\n    if (isPayloadValid) {\n      p.data = payload;\n    } else {\n      return error('invalid payload');\n    }\n  }\n\n  debug('decoded %s as %j', str, p);\n  return p;\n}\n\nfunction tryParse(str) {\n  try {\n    return JSON.parse(str);\n  } catch(e){\n    return false;\n  }\n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n  if (this.reconstructor) {\n    this.reconstructor.finishedReconstruction();\n  }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n  this.reconPack = packet;\n  this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n *   a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n  this.buffers.push(binData);\n  if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n    var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n    this.finishedReconstruction();\n    return packet;\n  }\n  return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n  this.reconPack = null;\n  this.buffers = [];\n};\n\nfunction error(msg) {\n  return {\n    type: exports.ERROR,\n    data: 'parser error: ' + msg\n  };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/index.js\n// module id = 7\n// module chunks = 0","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n  module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n  if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n  for (var key in Emitter.prototype) {\r\n    obj[key] = Emitter.prototype[key];\r\n  }\r\n  return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n    .push(fn);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n  function on() {\r\n    this.off(event, on);\r\n    fn.apply(this, arguments);\r\n  }\r\n\r\n  on.fn = fn;\r\n  this.on(event, on);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n\r\n  // all\r\n  if (0 == arguments.length) {\r\n    this._callbacks = {};\r\n    return this;\r\n  }\r\n\r\n  // specific event\r\n  var callbacks = this._callbacks['$' + event];\r\n  if (!callbacks) return this;\r\n\r\n  // remove all handlers\r\n  if (1 == arguments.length) {\r\n    delete this._callbacks['$' + event];\r\n    return this;\r\n  }\r\n\r\n  // remove specific handler\r\n  var cb;\r\n  for (var i = 0; i < callbacks.length; i++) {\r\n    cb = callbacks[i];\r\n    if (cb === fn || cb.fn === fn) {\r\n      callbacks.splice(i, 1);\r\n      break;\r\n    }\r\n  }\r\n  return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  var args = [].slice.call(arguments, 1)\r\n    , callbacks = this._callbacks['$' + event];\r\n\r\n  if (callbacks) {\r\n    callbacks = callbacks.slice(0);\r\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n      callbacks[i].apply(this, args);\r\n    }\r\n  }\r\n\r\n  return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n  return !! this.listeners(event).length;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-emitter/index.js\n// module id = 8\n// module chunks = 0","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n  var buffers = [];\n  var packetData = packet.data;\n  var pack = packet;\n  pack.data = _deconstructPacket(packetData, buffers);\n  pack.attachments = buffers.length; // number of binary 'attachments'\n  return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (isBuf(data)) {\n    var placeholder = { _placeholder: true, num: buffers.length };\n    buffers.push(data);\n    return placeholder;\n  } else if (isArray(data)) {\n    var newData = new Array(data.length);\n    for (var i = 0; i < data.length; i++) {\n      newData[i] = _deconstructPacket(data[i], buffers);\n    }\n    return newData;\n  } else if (typeof data === 'object' && !(data instanceof Date)) {\n    var newData = {};\n    for (var key in data) {\n      newData[key] = _deconstructPacket(data[key], buffers);\n    }\n    return newData;\n  }\n  return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n  packet.data = _reconstructPacket(packet.data, buffers);\n  packet.attachments = undefined; // no longer useful\n  return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (data && data._placeholder) {\n    return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n  } else if (isArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      data[i] = _reconstructPacket(data[i], buffers);\n    }\n  } else if (typeof data === 'object') {\n    for (var key in data) {\n      data[key] = _reconstructPacket(data[key], buffers);\n    }\n  }\n\n  return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n  function _removeBlobs(obj, curKey, containingObject) {\n    if (!obj) return obj;\n\n    // convert any blob\n    if ((withNativeBlob && obj instanceof Blob) ||\n        (withNativeFile && obj instanceof File)) {\n      pendingBlobs++;\n\n      // async filereader\n      var fileReader = new FileReader();\n      fileReader.onload = function() { // this.result == arraybuffer\n        if (containingObject) {\n          containingObject[curKey] = this.result;\n        }\n        else {\n          bloblessData = this.result;\n        }\n\n        // if nothing pending its callback time\n        if(! --pendingBlobs) {\n          callback(bloblessData);\n        }\n      };\n\n      fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n    } else if (isArray(obj)) { // handle array\n      for (var i = 0; i < obj.length; i++) {\n        _removeBlobs(obj[i], i, obj);\n      }\n    } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n      for (var key in obj) {\n        _removeBlobs(obj[key], key, obj);\n      }\n    }\n  }\n\n  var pendingBlobs = 0;\n  var bloblessData = data;\n  _removeBlobs(bloblessData);\n  if (!pendingBlobs) {\n    callback(bloblessData);\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/binary.js\n// module id = 9\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/isarray/index.js\n// module id = 10\n// module chunks = 0","\nmodule.exports = isBuf;\n\nvar withNativeBuffer = typeof global.Buffer === 'function' && typeof global.Buffer.isBuffer === 'function';\nvar withNativeArrayBuffer = typeof global.ArrayBuffer === 'function';\n\nvar isView = (function () {\n  if (withNativeArrayBuffer && typeof global.ArrayBuffer.isView === 'function') {\n    return global.ArrayBuffer.isView;\n  } else {\n    return function (obj) { return obj.buffer instanceof global.ArrayBuffer; };\n  }\n})();\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n  return (withNativeBuffer && global.Buffer.isBuffer(obj)) ||\n          (withNativeArrayBuffer && (obj instanceof global.ArrayBuffer || isView(obj)));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/is-buffer.js\n// module id = 11\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n  if (!(this instanceof Manager)) return new Manager(uri, opts);\n  if (uri && ('object' === typeof uri)) {\n    opts = uri;\n    uri = undefined;\n  }\n  opts = opts || {};\n\n  opts.path = opts.path || '/socket.io';\n  this.nsps = {};\n  this.subs = [];\n  this.opts = opts;\n  this.reconnection(opts.reconnection !== false);\n  this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n  this.reconnectionDelay(opts.reconnectionDelay || 1000);\n  this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n  this.randomizationFactor(opts.randomizationFactor || 0.5);\n  this.backoff = new Backoff({\n    min: this.reconnectionDelay(),\n    max: this.reconnectionDelayMax(),\n    jitter: this.randomizationFactor()\n  });\n  this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n  this.readyState = 'closed';\n  this.uri = uri;\n  this.connecting = [];\n  this.lastPing = null;\n  this.encoding = false;\n  this.packetBuffer = [];\n  var _parser = opts.parser || parser;\n  this.encoder = new _parser.Encoder();\n  this.decoder = new _parser.Decoder();\n  this.autoConnect = opts.autoConnect !== false;\n  if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n  this.emit.apply(this, arguments);\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n    }\n  }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].id = this.generateId(nsp);\n    }\n  }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n  return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n  if (!arguments.length) return this._reconnection;\n  this._reconnection = !!v;\n  return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n  if (!arguments.length) return this._reconnectionAttempts;\n  this._reconnectionAttempts = v;\n  return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n  if (!arguments.length) return this._reconnectionDelay;\n  this._reconnectionDelay = v;\n  this.backoff && this.backoff.setMin(v);\n  return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n  if (!arguments.length) return this._randomizationFactor;\n  this._randomizationFactor = v;\n  this.backoff && this.backoff.setJitter(v);\n  return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n  if (!arguments.length) return this._reconnectionDelayMax;\n  this._reconnectionDelayMax = v;\n  this.backoff && this.backoff.setMax(v);\n  return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n  if (!arguments.length) return this._timeout;\n  this._timeout = v;\n  return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n  // Only try to reconnect if it's the first time we're connecting\n  if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n    // keeps reconnection from firing twice for the same reconnection loop\n    this.reconnect();\n  }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n  debug('readyState %s', this.readyState);\n  if (~this.readyState.indexOf('open')) return this;\n\n  debug('opening %s', this.uri);\n  this.engine = eio(this.uri, this.opts);\n  var socket = this.engine;\n  var self = this;\n  this.readyState = 'opening';\n  this.skipReconnect = false;\n\n  // emit `open`\n  var openSub = on(socket, 'open', function () {\n    self.onopen();\n    fn && fn();\n  });\n\n  // emit `connect_error`\n  var errorSub = on(socket, 'error', function (data) {\n    debug('connect_error');\n    self.cleanup();\n    self.readyState = 'closed';\n    self.emitAll('connect_error', data);\n    if (fn) {\n      var err = new Error('Connection error');\n      err.data = data;\n      fn(err);\n    } else {\n      // Only do this if there is no fn to handle the error\n      self.maybeReconnectOnOpen();\n    }\n  });\n\n  // emit `connect_timeout`\n  if (false !== this._timeout) {\n    var timeout = this._timeout;\n    debug('connect attempt will timeout after %d', timeout);\n\n    // set timer\n    var timer = setTimeout(function () {\n      debug('connect attempt timed out after %d', timeout);\n      openSub.destroy();\n      socket.close();\n      socket.emit('error', 'timeout');\n      self.emitAll('connect_timeout', timeout);\n    }, timeout);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n\n  this.subs.push(openSub);\n  this.subs.push(errorSub);\n\n  return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n  debug('open');\n\n  // clear old subs\n  this.cleanup();\n\n  // mark as open\n  this.readyState = 'open';\n  this.emit('open');\n\n  // add new subs\n  var socket = this.engine;\n  this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n  this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n  this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n  this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n  this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n  this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n  this.lastPing = new Date();\n  this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n  this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n  this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n  debug('error', err);\n  this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n  var socket = this.nsps[nsp];\n  if (!socket) {\n    socket = new Socket(this, nsp, opts);\n    this.nsps[nsp] = socket;\n    var self = this;\n    socket.on('connecting', onConnecting);\n    socket.on('connect', function () {\n      socket.id = self.generateId(nsp);\n    });\n\n    if (this.autoConnect) {\n      // manually call here since connecting event is fired before listening\n      onConnecting();\n    }\n  }\n\n  function onConnecting () {\n    if (!~indexOf(self.connecting, socket)) {\n      self.connecting.push(socket);\n    }\n  }\n\n  return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n  var index = indexOf(this.connecting, socket);\n  if (~index) this.connecting.splice(index, 1);\n  if (this.connecting.length) return;\n\n  this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n  debug('writing packet %j', packet);\n  var self = this;\n  if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n  if (!self.encoding) {\n    // encode, then write to engine with result\n    self.encoding = true;\n    this.encoder.encode(packet, function (encodedPackets) {\n      for (var i = 0; i < encodedPackets.length; i++) {\n        self.engine.write(encodedPackets[i], packet.options);\n      }\n      self.encoding = false;\n      self.processPacketQueue();\n    });\n  } else { // add packet to the queue\n    self.packetBuffer.push(packet);\n  }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n  if (this.packetBuffer.length > 0 && !this.encoding) {\n    var pack = this.packetBuffer.shift();\n    this.packet(pack);\n  }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n  debug('cleanup');\n\n  var subsLength = this.subs.length;\n  for (var i = 0; i < subsLength; i++) {\n    var sub = this.subs.shift();\n    sub.destroy();\n  }\n\n  this.packetBuffer = [];\n  this.encoding = false;\n  this.lastPing = null;\n\n  this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n  debug('disconnect');\n  this.skipReconnect = true;\n  this.reconnecting = false;\n  if ('opening' === this.readyState) {\n    // `onclose` will not fire because\n    // an open event never happened\n    this.cleanup();\n  }\n  this.backoff.reset();\n  this.readyState = 'closed';\n  if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n  debug('onclose');\n\n  this.cleanup();\n  this.backoff.reset();\n  this.readyState = 'closed';\n  this.emit('close', reason);\n\n  if (this._reconnection && !this.skipReconnect) {\n    this.reconnect();\n  }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n  if (this.reconnecting || this.skipReconnect) return this;\n\n  var self = this;\n\n  if (this.backoff.attempts >= this._reconnectionAttempts) {\n    debug('reconnect failed');\n    this.backoff.reset();\n    this.emitAll('reconnect_failed');\n    this.reconnecting = false;\n  } else {\n    var delay = this.backoff.duration();\n    debug('will wait %dms before reconnect attempt', delay);\n\n    this.reconnecting = true;\n    var timer = setTimeout(function () {\n      if (self.skipReconnect) return;\n\n      debug('attempting reconnect');\n      self.emitAll('reconnect_attempt', self.backoff.attempts);\n      self.emitAll('reconnecting', self.backoff.attempts);\n\n      // check again for the case socket closed in above events\n      if (self.skipReconnect) return;\n\n      self.open(function (err) {\n        if (err) {\n          debug('reconnect attempt error');\n          self.reconnecting = false;\n          self.reconnect();\n          self.emitAll('reconnect_error', err.data);\n        } else {\n          debug('reconnect success');\n          self.onreconnect();\n        }\n      });\n    }, delay);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n  var attempt = this.backoff.attempts;\n  this.reconnecting = false;\n  this.backoff.reset();\n  this.updateSocketIds();\n  this.emitAll('reconnect', attempt);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/manager.js","\nmodule.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/index.js\n// module id = 13\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n  if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n  opts = opts || {};\n\n  if (uri && 'object' === typeof uri) {\n    opts = uri;\n    uri = null;\n  }\n\n  if (uri) {\n    uri = parseuri(uri);\n    opts.hostname = uri.host;\n    opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n    opts.port = uri.port;\n    if (uri.query) opts.query = uri.query;\n  } else if (opts.host) {\n    opts.hostname = parseuri(opts.host).host;\n  }\n\n  this.secure = null != opts.secure ? opts.secure\n    : (global.location && 'https:' === location.protocol);\n\n  if (opts.hostname && !opts.port) {\n    // if no port is specified manually, use the protocol default\n    opts.port = this.secure ? '443' : '80';\n  }\n\n  this.agent = opts.agent || false;\n  this.hostname = opts.hostname ||\n    (global.location ? location.hostname : 'localhost');\n  this.port = opts.port || (global.location && location.port\n      ? location.port\n      : (this.secure ? 443 : 80));\n  this.query = opts.query || {};\n  if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n  this.upgrade = false !== opts.upgrade;\n  this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n  this.forceJSONP = !!opts.forceJSONP;\n  this.jsonp = false !== opts.jsonp;\n  this.forceBase64 = !!opts.forceBase64;\n  this.enablesXDR = !!opts.enablesXDR;\n  this.timestampParam = opts.timestampParam || 't';\n  this.timestampRequests = opts.timestampRequests;\n  this.transports = opts.transports || ['polling', 'websocket'];\n  this.transportOptions = opts.transportOptions || {};\n  this.readyState = '';\n  this.writeBuffer = [];\n  this.prevBufferLen = 0;\n  this.policyPort = opts.policyPort || 843;\n  this.rememberUpgrade = opts.rememberUpgrade || false;\n  this.binaryType = null;\n  this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n  this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n  if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n  if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n    this.perMessageDeflate.threshold = 1024;\n  }\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx || null;\n  this.key = opts.key || null;\n  this.passphrase = opts.passphrase || null;\n  this.cert = opts.cert || null;\n  this.ca = opts.ca || null;\n  this.ciphers = opts.ciphers || null;\n  this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n  this.forceNode = !!opts.forceNode;\n\n  // other options for Node.js client\n  var freeGlobal = typeof global === 'object' && global;\n  if (freeGlobal.global === freeGlobal) {\n    if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n      this.extraHeaders = opts.extraHeaders;\n    }\n\n    if (opts.localAddress) {\n      this.localAddress = opts.localAddress;\n    }\n  }\n\n  // set on handshake\n  this.id = null;\n  this.upgrades = null;\n  this.pingInterval = null;\n  this.pingTimeout = null;\n\n  // set on heartbeat\n  this.pingIntervalTimer = null;\n  this.pingTimeoutTimer = null;\n\n  this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n  debug('creating transport \"%s\"', name);\n  var query = clone(this.query);\n\n  // append engine.io protocol identifier\n  query.EIO = parser.protocol;\n\n  // transport name\n  query.transport = name;\n\n  // per-transport options\n  var options = this.transportOptions[name] || {};\n\n  // session id if we already have one\n  if (this.id) query.sid = this.id;\n\n  var transport = new transports[name]({\n    query: query,\n    socket: this,\n    agent: options.agent || this.agent,\n    hostname: options.hostname || this.hostname,\n    port: options.port || this.port,\n    secure: options.secure || this.secure,\n    path: options.path || this.path,\n    forceJSONP: options.forceJSONP || this.forceJSONP,\n    jsonp: options.jsonp || this.jsonp,\n    forceBase64: options.forceBase64 || this.forceBase64,\n    enablesXDR: options.enablesXDR || this.enablesXDR,\n    timestampRequests: options.timestampRequests || this.timestampRequests,\n    timestampParam: options.timestampParam || this.timestampParam,\n    policyPort: options.policyPort || this.policyPort,\n    pfx: options.pfx || this.pfx,\n    key: options.key || this.key,\n    passphrase: options.passphrase || this.passphrase,\n    cert: options.cert || this.cert,\n    ca: options.ca || this.ca,\n    ciphers: options.ciphers || this.ciphers,\n    rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n    perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n    extraHeaders: options.extraHeaders || this.extraHeaders,\n    forceNode: options.forceNode || this.forceNode,\n    localAddress: options.localAddress || this.localAddress,\n    requestTimeout: options.requestTimeout || this.requestTimeout,\n    protocols: options.protocols || void (0)\n  });\n\n  return transport;\n};\n\nfunction clone (obj) {\n  var o = {};\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      o[i] = obj[i];\n    }\n  }\n  return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n  var transport;\n  if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n    transport = 'websocket';\n  } else if (0 === this.transports.length) {\n    // Emit error on next tick so it can be listened to\n    var self = this;\n    setTimeout(function () {\n      self.emit('error', 'No transports available');\n    }, 0);\n    return;\n  } else {\n    transport = this.transports[0];\n  }\n  this.readyState = 'opening';\n\n  // Retry with the next transport if the transport is disabled (jsonp: false)\n  try {\n    transport = this.createTransport(transport);\n  } catch (e) {\n    this.transports.shift();\n    this.open();\n    return;\n  }\n\n  transport.open();\n  this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n  debug('setting transport %s', transport.name);\n  var self = this;\n\n  if (this.transport) {\n    debug('clearing existing transport %s', this.transport.name);\n    this.transport.removeAllListeners();\n  }\n\n  // set up transport\n  this.transport = transport;\n\n  // set up transport listeners\n  transport\n  .on('drain', function () {\n    self.onDrain();\n  })\n  .on('packet', function (packet) {\n    self.onPacket(packet);\n  })\n  .on('error', function (e) {\n    self.onError(e);\n  })\n  .on('close', function () {\n    self.onClose('transport close');\n  });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n  debug('probing transport \"%s\"', name);\n  var transport = this.createTransport(name, { probe: 1 });\n  var failed = false;\n  var self = this;\n\n  Socket.priorWebsocketSuccess = false;\n\n  function onTransportOpen () {\n    if (self.onlyBinaryUpgrades) {\n      var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n      failed = failed || upgradeLosesBinary;\n    }\n    if (failed) return;\n\n    debug('probe transport \"%s\" opened', name);\n    transport.send([{ type: 'ping', data: 'probe' }]);\n    transport.once('packet', function (msg) {\n      if (failed) return;\n      if ('pong' === msg.type && 'probe' === msg.data) {\n        debug('probe transport \"%s\" pong', name);\n        self.upgrading = true;\n        self.emit('upgrading', transport);\n        if (!transport) return;\n        Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n        debug('pausing current transport \"%s\"', self.transport.name);\n        self.transport.pause(function () {\n          if (failed) return;\n          if ('closed' === self.readyState) return;\n          debug('changing transport and sending upgrade packet');\n\n          cleanup();\n\n          self.setTransport(transport);\n          transport.send([{ type: 'upgrade' }]);\n          self.emit('upgrade', transport);\n          transport = null;\n          self.upgrading = false;\n          self.flush();\n        });\n      } else {\n        debug('probe transport \"%s\" failed', name);\n        var err = new Error('probe error');\n        err.transport = transport.name;\n        self.emit('upgradeError', err);\n      }\n    });\n  }\n\n  function freezeTransport () {\n    if (failed) return;\n\n    // Any callback called by transport should be ignored since now\n    failed = true;\n\n    cleanup();\n\n    transport.close();\n    transport = null;\n  }\n\n  // Handle any error that happens while probing\n  function onerror (err) {\n    var error = new Error('probe error: ' + err);\n    error.transport = transport.name;\n\n    freezeTransport();\n\n    debug('probe transport \"%s\" failed because of error: %s', name, err);\n\n    self.emit('upgradeError', error);\n  }\n\n  function onTransportClose () {\n    onerror('transport closed');\n  }\n\n  // When the socket is closed while we're probing\n  function onclose () {\n    onerror('socket closed');\n  }\n\n  // When the socket is upgraded while we're probing\n  function onupgrade (to) {\n    if (transport && to.name !== transport.name) {\n      debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n      freezeTransport();\n    }\n  }\n\n  // Remove all listeners on the transport and on self\n  function cleanup () {\n    transport.removeListener('open', onTransportOpen);\n    transport.removeListener('error', onerror);\n    transport.removeListener('close', onTransportClose);\n    self.removeListener('close', onclose);\n    self.removeListener('upgrading', onupgrade);\n  }\n\n  transport.once('open', onTransportOpen);\n  transport.once('error', onerror);\n  transport.once('close', onTransportClose);\n\n  this.once('close', onclose);\n  this.once('upgrading', onupgrade);\n\n  transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n  debug('socket open');\n  this.readyState = 'open';\n  Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n  this.emit('open');\n  this.flush();\n\n  // we check for `readyState` in case an `open`\n  // listener already closed the socket\n  if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n    debug('starting upgrade probes');\n    for (var i = 0, l = this.upgrades.length; i < l; i++) {\n      this.probe(this.upgrades[i]);\n    }\n  }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n  if ('opening' === this.readyState || 'open' === this.readyState ||\n      'closing' === this.readyState) {\n    debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\n    this.emit('packet', packet);\n\n    // Socket is live - any packet counts\n    this.emit('heartbeat');\n\n    switch (packet.type) {\n      case 'open':\n        this.onHandshake(JSON.parse(packet.data));\n        break;\n\n      case 'pong':\n        this.setPing();\n        this.emit('pong');\n        break;\n\n      case 'error':\n        var err = new Error('server error');\n        err.code = packet.data;\n        this.onError(err);\n        break;\n\n      case 'message':\n        this.emit('data', packet.data);\n        this.emit('message', packet.data);\n        break;\n    }\n  } else {\n    debug('packet received with socket readyState \"%s\"', this.readyState);\n  }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n  this.emit('handshake', data);\n  this.id = data.sid;\n  this.transport.query.sid = data.sid;\n  this.upgrades = this.filterUpgrades(data.upgrades);\n  this.pingInterval = data.pingInterval;\n  this.pingTimeout = data.pingTimeout;\n  this.onOpen();\n  // In case open handler closes socket\n  if ('closed' === this.readyState) return;\n  this.setPing();\n\n  // Prolong liveness of socket on heartbeat\n  this.removeListener('heartbeat', this.onHeartbeat);\n  this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n  clearTimeout(this.pingTimeoutTimer);\n  var self = this;\n  self.pingTimeoutTimer = setTimeout(function () {\n    if ('closed' === self.readyState) return;\n    self.onClose('ping timeout');\n  }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n  var self = this;\n  clearTimeout(self.pingIntervalTimer);\n  self.pingIntervalTimer = setTimeout(function () {\n    debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n    self.ping();\n    self.onHeartbeat(self.pingTimeout);\n  }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n  var self = this;\n  this.sendPacket('ping', function () {\n    self.emit('ping');\n  });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n  this.writeBuffer.splice(0, this.prevBufferLen);\n\n  // setting prevBufferLen = 0 is very important\n  // for example, when upgrading, upgrade packet is sent over,\n  // and a nonzero prevBufferLen could cause problems on `drain`\n  this.prevBufferLen = 0;\n\n  if (0 === this.writeBuffer.length) {\n    this.emit('drain');\n  } else {\n    this.flush();\n  }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n  if ('closed' !== this.readyState && this.transport.writable &&\n    !this.upgrading && this.writeBuffer.length) {\n    debug('flushing %d packets in socket', this.writeBuffer.length);\n    this.transport.send(this.writeBuffer);\n    // keep track of current length of writeBuffer\n    // splice writeBuffer and callbackBuffer on `drain`\n    this.prevBufferLen = this.writeBuffer.length;\n    this.emit('flush');\n  }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n  this.sendPacket('message', msg, options, fn);\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n  if ('function' === typeof data) {\n    fn = data;\n    data = undefined;\n  }\n\n  if ('function' === typeof options) {\n    fn = options;\n    options = null;\n  }\n\n  if ('closing' === this.readyState || 'closed' === this.readyState) {\n    return;\n  }\n\n  options = options || {};\n  options.compress = false !== options.compress;\n\n  var packet = {\n    type: type,\n    data: data,\n    options: options\n  };\n  this.emit('packetCreate', packet);\n  this.writeBuffer.push(packet);\n  if (fn) this.once('flush', fn);\n  this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.readyState = 'closing';\n\n    var self = this;\n\n    if (this.writeBuffer.length) {\n      this.once('drain', function () {\n        if (this.upgrading) {\n          waitForUpgrade();\n        } else {\n          close();\n        }\n      });\n    } else if (this.upgrading) {\n      waitForUpgrade();\n    } else {\n      close();\n    }\n  }\n\n  function close () {\n    self.onClose('forced close');\n    debug('socket closing - telling transport to close');\n    self.transport.close();\n  }\n\n  function cleanupAndClose () {\n    self.removeListener('upgrade', cleanupAndClose);\n    self.removeListener('upgradeError', cleanupAndClose);\n    close();\n  }\n\n  function waitForUpgrade () {\n    // wait for upgrade to finish since we can't send packets while pausing a transport\n    self.once('upgrade', cleanupAndClose);\n    self.once('upgradeError', cleanupAndClose);\n  }\n\n  return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n  debug('socket error %j', err);\n  Socket.priorWebsocketSuccess = false;\n  this.emit('error', err);\n  this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n  if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n    debug('socket close with reason: \"%s\"', reason);\n    var self = this;\n\n    // clear timers\n    clearTimeout(this.pingIntervalTimer);\n    clearTimeout(this.pingTimeoutTimer);\n\n    // stop event from firing again for transport\n    this.transport.removeAllListeners('close');\n\n    // ensure transport won't stay open\n    this.transport.close();\n\n    // ignore further transport communication\n    this.transport.removeAllListeners();\n\n    // set ready state\n    this.readyState = 'closed';\n\n    // clear session id\n    this.id = null;\n\n    // emit close event\n    this.emit('close', reason, desc);\n\n    // clean buffers after, so users can still\n    // grab the buffers on `close` event\n    self.writeBuffer = [];\n    self.prevBufferLen = 0;\n  }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n  var filteredUpgrades = [];\n  for (var i = 0, j = upgrades.length; i < j; i++) {\n    if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n  }\n  return filteredUpgrades;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/socket.js\n// module id = 14\n// module chunks = 0","/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n  var xhr;\n  var xd = false;\n  var xs = false;\n  var jsonp = false !== opts.jsonp;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    xd = opts.hostname !== location.hostname || port !== opts.port;\n    xs = opts.secure !== isSSL;\n  }\n\n  opts.xdomain = xd;\n  opts.xscheme = xs;\n  xhr = new XMLHttpRequest(opts);\n\n  if ('open' in xhr && !opts.forceJSONP) {\n    return new XHR(opts);\n  } else {\n    if (!jsonp) throw new Error('JSONP disabled');\n    return new JSONP(opts);\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/index.js\n// module id = 15\n// module chunks = 0","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\n\nmodule.exports = function (opts) {\n  var xdomain = opts.xdomain;\n\n  // scheme must be same when usign XDomainRequest\n  // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n  var xscheme = opts.xscheme;\n\n  // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n  // https://github.com/Automattic/engine.io-client/pull/217\n  var enablesXDR = opts.enablesXDR;\n\n  // XMLHttpRequest can be disabled on IE\n  try {\n    if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n      return new XMLHttpRequest();\n    }\n  } catch (e) { }\n\n  // Use XDomainRequest for IE8 if enablesXDR is true\n  // because loading bar keeps flashing when using jsonp-polling\n  // https://github.com/yujiosaka/socke.io-ie8-loading-example\n  try {\n    if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n      return new XDomainRequest();\n    }\n  } catch (e) { }\n\n  if (!xdomain) {\n    try {\n      return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n    } catch (e) { }\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/xmlhttprequest.js\n// module id = 16\n// module chunks = 0","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n *   - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n  module.exports = typeof XMLHttpRequest !== 'undefined' &&\n    'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n  // if XMLHttp support is disabled in IE then it will throw\n  // when trying to create\n  module.exports = false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/has-cors/index.js\n// module id = 17\n// module chunks = 0","/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n  Polling.call(this, opts);\n  this.requestTimeout = opts.requestTimeout;\n  this.extraHeaders = opts.extraHeaders;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    this.xd = opts.hostname !== global.location.hostname ||\n      port !== opts.port;\n    this.xs = opts.secure !== isSSL;\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n  opts = opts || {};\n  opts.uri = this.uri();\n  opts.xd = this.xd;\n  opts.xs = this.xs;\n  opts.agent = this.agent || false;\n  opts.supportsBinary = this.supportsBinary;\n  opts.enablesXDR = this.enablesXDR;\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  opts.requestTimeout = this.requestTimeout;\n\n  // other options for Node.js client\n  opts.extraHeaders = this.extraHeaders;\n\n  return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n  var isBinary = typeof data !== 'string' && data !== undefined;\n  var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n  var self = this;\n  req.on('success', fn);\n  req.on('error', function (err) {\n    self.onError('xhr post error', err);\n  });\n  this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n  debug('xhr poll');\n  var req = this.request();\n  var self = this;\n  req.on('data', function (data) {\n    self.onData(data);\n  });\n  req.on('error', function (err) {\n    self.onError('xhr poll error', err);\n  });\n  this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n  this.method = opts.method || 'GET';\n  this.uri = opts.uri;\n  this.xd = !!opts.xd;\n  this.xs = !!opts.xs;\n  this.async = false !== opts.async;\n  this.data = undefined !== opts.data ? opts.data : null;\n  this.agent = opts.agent;\n  this.isBinary = opts.isBinary;\n  this.supportsBinary = opts.supportsBinary;\n  this.enablesXDR = opts.enablesXDR;\n  this.requestTimeout = opts.requestTimeout;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n\n  this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n  var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n\n  var xhr = this.xhr = new XMLHttpRequest(opts);\n  var self = this;\n\n  try {\n    debug('xhr open %s: %s', this.method, this.uri);\n    xhr.open(this.method, this.uri, this.async);\n    try {\n      if (this.extraHeaders) {\n        xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n        for (var i in this.extraHeaders) {\n          if (this.extraHeaders.hasOwnProperty(i)) {\n            xhr.setRequestHeader(i, this.extraHeaders[i]);\n          }\n        }\n      }\n    } catch (e) {}\n\n    if ('POST' === this.method) {\n      try {\n        if (this.isBinary) {\n          xhr.setRequestHeader('Content-type', 'application/octet-stream');\n        } else {\n          xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n        }\n      } catch (e) {}\n    }\n\n    try {\n      xhr.setRequestHeader('Accept', '*/*');\n    } catch (e) {}\n\n    // ie6 check\n    if ('withCredentials' in xhr) {\n      xhr.withCredentials = true;\n    }\n\n    if (this.requestTimeout) {\n      xhr.timeout = this.requestTimeout;\n    }\n\n    if (this.hasXDR()) {\n      xhr.onload = function () {\n        self.onLoad();\n      };\n      xhr.onerror = function () {\n        self.onError(xhr.responseText);\n      };\n    } else {\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState === 2) {\n          try {\n            var contentType = xhr.getResponseHeader('Content-Type');\n            if (self.supportsBinary && contentType === 'application/octet-stream') {\n              xhr.responseType = 'arraybuffer';\n            }\n          } catch (e) {}\n        }\n        if (4 !== xhr.readyState) return;\n        if (200 === xhr.status || 1223 === xhr.status) {\n          self.onLoad();\n        } else {\n          // make sure the `error` event handler that's user-set\n          // does not throw in the same tick and gets caught here\n          setTimeout(function () {\n            self.onError(xhr.status);\n          }, 0);\n        }\n      };\n    }\n\n    debug('xhr data %s', this.data);\n    xhr.send(this.data);\n  } catch (e) {\n    // Need to defer since .create() is called directly fhrom the constructor\n    // and thus the 'error' event can only be only bound *after* this exception\n    // occurs.  Therefore, also, we cannot throw here at all.\n    setTimeout(function () {\n      self.onError(e);\n    }, 0);\n    return;\n  }\n\n  if (global.document) {\n    this.index = Request.requestsCount++;\n    Request.requests[this.index] = this;\n  }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n  this.emit('success');\n  this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n  this.emit('data', data);\n  this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n  this.emit('error', err);\n  this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n  if ('undefined' === typeof this.xhr || null === this.xhr) {\n    return;\n  }\n  // xmlhttprequest\n  if (this.hasXDR()) {\n    this.xhr.onload = this.xhr.onerror = empty;\n  } else {\n    this.xhr.onreadystatechange = empty;\n  }\n\n  if (fromError) {\n    try {\n      this.xhr.abort();\n    } catch (e) {}\n  }\n\n  if (global.document) {\n    delete Request.requests[this.index];\n  }\n\n  this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n  var data;\n  try {\n    var contentType;\n    try {\n      contentType = this.xhr.getResponseHeader('Content-Type');\n    } catch (e) {}\n    if (contentType === 'application/octet-stream') {\n      data = this.xhr.response || this.xhr.responseText;\n    } else {\n      data = this.xhr.responseText;\n    }\n  } catch (e) {\n    this.onError(e);\n  }\n  if (null != data) {\n    this.onData(data);\n  }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n  return 'undefined' !== typeof global.XDomainRequest && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n  this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (global.document) {\n  if (global.attachEvent) {\n    global.attachEvent('onunload', unloadHandler);\n  } else if (global.addEventListener) {\n    global.addEventListener('beforeunload', unloadHandler, false);\n  }\n}\n\nfunction unloadHandler () {\n  for (var i in Request.requests) {\n    if (Request.requests.hasOwnProperty(i)) {\n      Request.requests[i].abort();\n    }\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling-xhr.js\n// module id = 18\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n  var XMLHttpRequest = require('xmlhttprequest-ssl');\n  var xhr = new XMLHttpRequest({ xdomain: false });\n  return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (!hasXHR2 || forceBase64) {\n    this.supportsBinary = false;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n  this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n  var self = this;\n\n  this.readyState = 'pausing';\n\n  function pause () {\n    debug('paused');\n    self.readyState = 'paused';\n    onPause();\n  }\n\n  if (this.polling || !this.writable) {\n    var total = 0;\n\n    if (this.polling) {\n      debug('we are currently polling - waiting to pause');\n      total++;\n      this.once('pollComplete', function () {\n        debug('pre-pause polling complete');\n        --total || pause();\n      });\n    }\n\n    if (!this.writable) {\n      debug('we are currently writing - waiting to pause');\n      total++;\n      this.once('drain', function () {\n        debug('pre-pause writing complete');\n        --total || pause();\n      });\n    }\n  } else {\n    pause();\n  }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n  debug('polling');\n  this.polling = true;\n  this.doPoll();\n  this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n  var self = this;\n  debug('polling got data %s', data);\n  var callback = function (packet, index, total) {\n    // if its the first message we consider the transport open\n    if ('opening' === self.readyState) {\n      self.onOpen();\n    }\n\n    // if its a close packet, we close the ongoing requests\n    if ('close' === packet.type) {\n      self.onClose();\n      return false;\n    }\n\n    // otherwise bypass onData and handle the message\n    self.onPacket(packet);\n  };\n\n  // decode payload\n  parser.decodePayload(data, this.socket.binaryType, callback);\n\n  // if an event did not trigger closing\n  if ('closed' !== this.readyState) {\n    // if we got data we're not polling\n    this.polling = false;\n    this.emit('pollComplete');\n\n    if ('open' === this.readyState) {\n      this.poll();\n    } else {\n      debug('ignoring poll - transport state \"%s\"', this.readyState);\n    }\n  }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n  var self = this;\n\n  function close () {\n    debug('writing close packet');\n    self.write([{ type: 'close' }]);\n  }\n\n  if ('open' === this.readyState) {\n    debug('transport open - closing');\n    close();\n  } else {\n    // in case we're trying to close while\n    // handshaking is in progress (GH-164)\n    debug('transport not open - deferring close');\n    this.once('open', close);\n  }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n  var callbackfn = function () {\n    self.writable = true;\n    self.emit('drain');\n  };\n\n  parser.encodePayload(packets, this.supportsBinary, function (data) {\n    self.doWrite(data, callbackfn);\n  });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'https' : 'http';\n  var port = '';\n\n  // cache busting is forced\n  if (false !== this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  if (!this.supportsBinary && !query.sid) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // avoid port if default for schema\n  if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n     ('http' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling.js\n// module id = 19\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n  this.path = opts.path;\n  this.hostname = opts.hostname;\n  this.port = opts.port;\n  this.secure = opts.secure;\n  this.query = opts.query;\n  this.timestampParam = opts.timestampParam;\n  this.timestampRequests = opts.timestampRequests;\n  this.readyState = '';\n  this.agent = opts.agent || false;\n  this.socket = opts.socket;\n  this.enablesXDR = opts.enablesXDR;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n  this.forceNode = opts.forceNode;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n  this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n  var err = new Error(msg);\n  err.type = 'TransportError';\n  err.description = desc;\n  this.emit('error', err);\n  return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n  if ('closed' === this.readyState || '' === this.readyState) {\n    this.readyState = 'opening';\n    this.doOpen();\n  }\n\n  return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.doClose();\n    this.onClose();\n  }\n\n  return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n  if ('open' === this.readyState) {\n    this.write(packets);\n  } else {\n    throw new Error('Transport not open');\n  }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n  this.readyState = 'open';\n  this.writable = true;\n  this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n  var packet = parser.decodePacket(data, this.socket.binaryType);\n  this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n  this.readyState = 'closed';\n  this.emit('close');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transport.js\n// module id = 20\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (global && global.ArrayBuffer) {\n  base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n    open:     0    // non-ws\n  , close:    1    // non-ws\n  , ping:     2\n  , pong:     3\n  , message:  4\n  , upgrade:  5\n  , noop:     6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n *     <packet type id> [ <data> ]\n *\n * Example:\n *\n *     5hello world\n *     3\n *     4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = false;\n  }\n\n  if (typeof utf8encode === 'function') {\n    callback = utf8encode;\n    utf8encode = null;\n  }\n\n  var data = (packet.data === undefined)\n    ? undefined\n    : packet.data.buffer || packet.data;\n\n  if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n    return encodeArrayBuffer(packet, supportsBinary, callback);\n  } else if (Blob && data instanceof global.Blob) {\n    return encodeBlob(packet, supportsBinary, callback);\n  }\n\n  // might be an object with { base64: true, data: dataAsBase64String }\n  if (data && data.base64) {\n    return encodeBase64Object(packet, callback);\n  }\n\n  // Sending data as a utf-8 string\n  var encoded = packets[packet.type];\n\n  // data fragment is optional\n  if (undefined !== packet.data) {\n    encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n  }\n\n  return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n  // packet data is an object { base64: true, data: dataAsBase64String }\n  var message = 'b' + exports.packets[packet.type] + packet.data.data;\n  return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var data = packet.data;\n  var contentArray = new Uint8Array(data);\n  var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n  resultBuffer[0] = packets[packet.type];\n  for (var i = 0; i < contentArray.length; i++) {\n    resultBuffer[i+1] = contentArray[i];\n  }\n\n  return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var fr = new FileReader();\n  fr.onload = function() {\n    packet.data = fr.result;\n    exports.encodePacket(packet, supportsBinary, true, callback);\n  };\n  return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  if (dontSendBlobs) {\n    return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n  }\n\n  var length = new Uint8Array(1);\n  length[0] = packets[packet.type];\n  var blob = new Blob([length.buffer, packet.data]);\n\n  return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n  var message = 'b' + exports.packets[packet.type];\n  if (Blob && packet.data instanceof global.Blob) {\n    var fr = new FileReader();\n    fr.onload = function() {\n      var b64 = fr.result.split(',')[1];\n      callback(message + b64);\n    };\n    return fr.readAsDataURL(packet.data);\n  }\n\n  var b64data;\n  try {\n    b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n  } catch (e) {\n    // iPhone Safari doesn't let you apply with typed arrays\n    var typed = new Uint8Array(packet.data);\n    var basic = new Array(typed.length);\n    for (var i = 0; i < typed.length; i++) {\n      basic[i] = typed[i];\n    }\n    b64data = String.fromCharCode.apply(null, basic);\n  }\n  message += global.btoa(b64data);\n  return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n  if (data === undefined) {\n    return err;\n  }\n  // String data\n  if (typeof data === 'string') {\n    if (data.charAt(0) === 'b') {\n      return exports.decodeBase64Packet(data.substr(1), binaryType);\n    }\n\n    if (utf8decode) {\n      data = tryDecode(data);\n      if (data === false) {\n        return err;\n      }\n    }\n    var type = data.charAt(0);\n\n    if (Number(type) != type || !packetslist[type]) {\n      return err;\n    }\n\n    if (data.length > 1) {\n      return { type: packetslist[type], data: data.substring(1) };\n    } else {\n      return { type: packetslist[type] };\n    }\n  }\n\n  var asArray = new Uint8Array(data);\n  var type = asArray[0];\n  var rest = sliceBuffer(data, 1);\n  if (Blob && binaryType === 'blob') {\n    rest = new Blob([rest]);\n  }\n  return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n  try {\n    data = utf8.decode(data, { strict: false });\n  } catch (e) {\n    return false;\n  }\n  return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n  var type = packetslist[msg.charAt(0)];\n  if (!base64encoder) {\n    return { type: type, data: { base64: true, data: msg.substr(1) } };\n  }\n\n  var data = base64encoder.decode(msg.substr(1));\n\n  if (binaryType === 'blob' && Blob) {\n    data = new Blob([data]);\n  }\n\n  return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n *     <length>:data\n *\n * Example:\n *\n *     11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = null;\n  }\n\n  var isBinary = hasBinary(packets);\n\n  if (supportsBinary && isBinary) {\n    if (Blob && !dontSendBlobs) {\n      return exports.encodePayloadAsBlob(packets, callback);\n    }\n\n    return exports.encodePayloadAsArrayBuffer(packets, callback);\n  }\n\n  if (!packets.length) {\n    return callback('0:');\n  }\n\n  function setLengthHeader(message) {\n    return message.length + ':' + message;\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n      doneCallback(null, setLengthHeader(message));\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(results.join(''));\n  });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n  var result = new Array(ary.length);\n  var next = after(ary.length, done);\n\n  var eachWithIndex = function(i, el, cb) {\n    each(el, function(error, msg) {\n      result[i] = msg;\n      cb(error, result);\n    });\n  };\n\n  for (var i = 0; i < ary.length; i++) {\n    eachWithIndex(i, ary[i], next);\n  }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n  if (typeof data !== 'string') {\n    return exports.decodePayloadAsBinary(data, binaryType, callback);\n  }\n\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var packet;\n  if (data === '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n  var length = '', n, msg;\n\n  for (var i = 0, l = data.length; i < l; i++) {\n    var chr = data.charAt(i);\n\n    if (chr !== ':') {\n      length += chr;\n      continue;\n    }\n\n    if (length === '' || (length != (n = Number(length)))) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    msg = data.substr(i + 1, n);\n\n    if (length != msg.length) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    if (msg.length) {\n      packet = exports.decodePacket(msg, binaryType, false);\n\n      if (err.type === packet.type && err.data === packet.data) {\n        // parser error in individual packet - ignoring payload\n        return callback(err, 0, 1);\n      }\n\n      var ret = callback(packet, i + n, l);\n      if (false === ret) return;\n    }\n\n    // advance cursor\n    i += n;\n    length = '';\n  }\n\n  if (length !== '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n * 255><data>\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n  if (!packets.length) {\n    return callback(new ArrayBuffer(0));\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(data) {\n      return doneCallback(null, data);\n    });\n  }\n\n  map(packets, encodeOne, function(err, encodedPackets) {\n    var totalLength = encodedPackets.reduce(function(acc, p) {\n      var len;\n      if (typeof p === 'string'){\n        len = p.length;\n      } else {\n        len = p.byteLength;\n      }\n      return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n    }, 0);\n\n    var resultArray = new Uint8Array(totalLength);\n\n    var bufferIndex = 0;\n    encodedPackets.forEach(function(p) {\n      var isString = typeof p === 'string';\n      var ab = p;\n      if (isString) {\n        var view = new Uint8Array(p.length);\n        for (var i = 0; i < p.length; i++) {\n          view[i] = p.charCodeAt(i);\n        }\n        ab = view.buffer;\n      }\n\n      if (isString) { // not true binary\n        resultArray[bufferIndex++] = 0;\n      } else { // true binary\n        resultArray[bufferIndex++] = 1;\n      }\n\n      var lenStr = ab.byteLength.toString();\n      for (var i = 0; i < lenStr.length; i++) {\n        resultArray[bufferIndex++] = parseInt(lenStr[i]);\n      }\n      resultArray[bufferIndex++] = 255;\n\n      var view = new Uint8Array(ab);\n      for (var i = 0; i < view.length; i++) {\n        resultArray[bufferIndex++] = view[i];\n      }\n    });\n\n    return callback(resultArray.buffer);\n  });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(encoded) {\n      var binaryIdentifier = new Uint8Array(1);\n      binaryIdentifier[0] = 1;\n      if (typeof encoded === 'string') {\n        var view = new Uint8Array(encoded.length);\n        for (var i = 0; i < encoded.length; i++) {\n          view[i] = encoded.charCodeAt(i);\n        }\n        encoded = view.buffer;\n        binaryIdentifier[0] = 0;\n      }\n\n      var len = (encoded instanceof ArrayBuffer)\n        ? encoded.byteLength\n        : encoded.size;\n\n      var lenStr = len.toString();\n      var lengthAry = new Uint8Array(lenStr.length + 1);\n      for (var i = 0; i < lenStr.length; i++) {\n        lengthAry[i] = parseInt(lenStr[i]);\n      }\n      lengthAry[lenStr.length] = 255;\n\n      if (Blob) {\n        var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n        doneCallback(null, blob);\n      }\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(new Blob(results));\n  });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var bufferTail = data;\n  var buffers = [];\n\n  while (bufferTail.byteLength > 0) {\n    var tailArray = new Uint8Array(bufferTail);\n    var isString = tailArray[0] === 0;\n    var msgLength = '';\n\n    for (var i = 1; ; i++) {\n      if (tailArray[i] === 255) break;\n\n      // 310 = char length of Number.MAX_VALUE\n      if (msgLength.length > 310) {\n        return callback(err, 0, 1);\n      }\n\n      msgLength += tailArray[i];\n    }\n\n    bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n    msgLength = parseInt(msgLength);\n\n    var msg = sliceBuffer(bufferTail, 0, msgLength);\n    if (isString) {\n      try {\n        msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n      } catch (e) {\n        // iPhone Safari doesn't let you apply to typed arrays\n        var typed = new Uint8Array(msg);\n        msg = '';\n        for (var i = 0; i < typed.length; i++) {\n          msg += String.fromCharCode(typed[i]);\n        }\n      }\n    }\n\n    buffers.push(msg);\n    bufferTail = sliceBuffer(bufferTail, msgLength);\n  }\n\n  var total = buffers.length;\n  buffers.forEach(function(buffer, i) {\n    callback(exports.decodePacket(buffer, binaryType, true), i, total);\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/browser.js\n// module id = 21\n// module chunks = 0","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n  var arr = [];\n  var has = Object.prototype.hasOwnProperty;\n\n  for (var i in obj) {\n    if (has.call(obj, i)) {\n      arr.push(i);\n    }\n  }\n  return arr;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/keys.js\n// module id = 22\n// module chunks = 0","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n  if (!obj || typeof obj !== 'object') {\n    return false;\n  }\n\n  if (isArray(obj)) {\n    for (var i = 0, l = obj.length; i < l; i++) {\n      if (hasBinary(obj[i])) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  if ((typeof global.Buffer === 'function' && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) ||\n     (typeof global.ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n     (withNativeBlob && obj instanceof Blob) ||\n     (withNativeFile && obj instanceof File)\n    ) {\n    return true;\n  }\n\n  // see: https://github.com/Automattic/has-binary/pull/4\n  if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n    return hasBinary(obj.toJSON(), true);\n  }\n\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/has-binary2/index.js\n// module id = 23\n// module chunks = 0","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n  var bytes = arraybuffer.byteLength;\n  start = start || 0;\n  end = end || bytes;\n\n  if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n  if (start < 0) { start += bytes; }\n  if (end < 0) { end += bytes; }\n  if (end > bytes) { end = bytes; }\n\n  if (start >= bytes || start >= end || bytes === 0) {\n    return new ArrayBuffer(0);\n  }\n\n  var abv = new Uint8Array(arraybuffer);\n  var result = new Uint8Array(end - start);\n  for (var i = start, ii = 0; i < end; i++, ii++) {\n    result[ii] = abv[i];\n  }\n  return result.buffer;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/arraybuffer.slice/index.js\n// module id = 24\n// module chunks = 0","module.exports = after\n\nfunction after(count, callback, err_cb) {\n    var bail = false\n    err_cb = err_cb || noop\n    proxy.count = count\n\n    return (count === 0) ? callback() : proxy\n\n    function proxy(err, result) {\n        if (proxy.count <= 0) {\n            throw new Error('after called too many times')\n        }\n        --proxy.count\n\n        // after first error, rest are passed to err_cb\n        if (err) {\n            bail = true\n            callback(err)\n            // future error callbacks will go to error handler\n            callback = err_cb\n        } else if (proxy.count === 0 && !bail) {\n            callback(null, result)\n        }\n    }\n}\n\nfunction noop() {}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/after/index.js\n// module id = 25\n// module chunks = 0","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint, strict) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tif (strict) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t\t' is not a scalar value'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint, strict) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\t\tcodePoint = 0xFFFD;\n\t\t\t}\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol(strict) {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.1.2',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/utf8.js\n// module id = 26\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 27\n// module chunks = 0","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n  \"use strict\";\n\n  var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n  // Use a lookup table to find the index.\n  var lookup = new Uint8Array(256);\n  for (var i = 0; i < chars.length; i++) {\n    lookup[chars.charCodeAt(i)] = i;\n  }\n\n  exports.encode = function(arraybuffer) {\n    var bytes = new Uint8Array(arraybuffer),\n    i, len = bytes.length, base64 = \"\";\n\n    for (i = 0; i < len; i+=3) {\n      base64 += chars[bytes[i] >> 2];\n      base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n      base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n      base64 += chars[bytes[i + 2] & 63];\n    }\n\n    if ((len % 3) === 2) {\n      base64 = base64.substring(0, base64.length - 1) + \"=\";\n    } else if (len % 3 === 1) {\n      base64 = base64.substring(0, base64.length - 2) + \"==\";\n    }\n\n    return base64;\n  };\n\n  exports.decode =  function(base64) {\n    var bufferLength = base64.length * 0.75,\n    len = base64.length, i, p = 0,\n    encoded1, encoded2, encoded3, encoded4;\n\n    if (base64[base64.length - 1] === \"=\") {\n      bufferLength--;\n      if (base64[base64.length - 2] === \"=\") {\n        bufferLength--;\n      }\n    }\n\n    var arraybuffer = new ArrayBuffer(bufferLength),\n    bytes = new Uint8Array(arraybuffer);\n\n    for (i = 0; i < len; i+=4) {\n      encoded1 = lookup[base64.charCodeAt(i)];\n      encoded2 = lookup[base64.charCodeAt(i+1)];\n      encoded3 = lookup[base64.charCodeAt(i+2)];\n      encoded4 = lookup[base64.charCodeAt(i+3)];\n\n      bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n      bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n      bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n\n    return arraybuffer;\n  };\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/base64-arraybuffer/lib/base64-arraybuffer.js\n// module id = 28\n// module chunks = 0","/**\n * Create a blob builder even when vendor prefixes exist\n */\n\nvar BlobBuilder = global.BlobBuilder\n  || global.WebKitBlobBuilder\n  || global.MSBlobBuilder\n  || global.MozBlobBuilder;\n\n/**\n * Check if Blob constructor is supported\n */\n\nvar blobSupported = (function() {\n  try {\n    var a = new Blob(['hi']);\n    return a.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if Blob constructor supports ArrayBufferViews\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\n */\n\nvar blobSupportsArrayBufferView = blobSupported && (function() {\n  try {\n    var b = new Blob([new Uint8Array([1,2])]);\n    return b.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if BlobBuilder is supported\n */\n\nvar blobBuilderSupported = BlobBuilder\n  && BlobBuilder.prototype.append\n  && BlobBuilder.prototype.getBlob;\n\n/**\n * Helper function that maps ArrayBufferViews to ArrayBuffers\n * Used by BlobBuilder constructor and old browsers that didn't\n * support it in the Blob constructor.\n */\n\nfunction mapArrayBufferViews(ary) {\n  for (var i = 0; i < ary.length; i++) {\n    var chunk = ary[i];\n    if (chunk.buffer instanceof ArrayBuffer) {\n      var buf = chunk.buffer;\n\n      // if this is a subarray, make a copy so we only\n      // include the subarray region from the underlying buffer\n      if (chunk.byteLength !== buf.byteLength) {\n        var copy = new Uint8Array(chunk.byteLength);\n        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n        buf = copy.buffer;\n      }\n\n      ary[i] = buf;\n    }\n  }\n}\n\nfunction BlobBuilderConstructor(ary, options) {\n  options = options || {};\n\n  var bb = new BlobBuilder();\n  mapArrayBufferViews(ary);\n\n  for (var i = 0; i < ary.length; i++) {\n    bb.append(ary[i]);\n  }\n\n  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n};\n\nfunction BlobConstructor(ary, options) {\n  mapArrayBufferViews(ary);\n  return new Blob(ary, options || {});\n};\n\nmodule.exports = (function() {\n  if (blobSupported) {\n    return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n  } else if (blobBuilderSupported) {\n    return BlobBuilderConstructor;\n  } else {\n    return undefined;\n  }\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/blob/index.js\n// module id = 29\n// module chunks = 0","/**\r\n * Compiles a querystring\r\n * Returns string representation of the object\r\n *\r\n * @param {Object}\r\n * @api private\r\n */\r\n\r\nexports.encode = function (obj) {\r\n  var str = '';\r\n\r\n  for (var i in obj) {\r\n    if (obj.hasOwnProperty(i)) {\r\n      if (str.length) str += '&';\r\n      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n    }\r\n  }\r\n\r\n  return str;\r\n};\r\n\r\n/**\r\n * Parses a simple querystring into an object\r\n *\r\n * @param {String} qs\r\n * @api private\r\n */\r\n\r\nexports.decode = function(qs){\r\n  var qry = {};\r\n  var pairs = qs.split('&');\r\n  for (var i = 0, l = pairs.length; i < l; i++) {\r\n    var pair = pairs[i].split('=');\r\n    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n  }\r\n  return qry;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/parseqs/index.js\n// module id = 30\n// module chunks = 0","\nmodule.exports = function(a, b){\n  var fn = function(){};\n  fn.prototype = b.prototype;\n  a.prototype = new fn;\n  a.prototype.constructor = a;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-inherit/index.js\n// module id = 31\n// module chunks = 0","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n  , length = 64\n  , map = {}\n  , seed = 0\n  , i = 0\n  , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n  var encoded = '';\n\n  do {\n    encoded = alphabet[num % length] + encoded;\n    num = Math.floor(num / length);\n  } while (num > 0);\n\n  return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n  var decoded = 0;\n\n  for (i = 0; i < str.length; i++) {\n    decoded = decoded * length + map[str.charAt(i)];\n  }\n\n  return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n  var now = encode(+new Date());\n\n  if (now !== prev) return seed = 0, prev = now;\n  return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/yeast/index.js\n// module id = 32\n// module chunks = 0","\n/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n  Polling.call(this, opts);\n\n  this.query = this.query || {};\n\n  // define global callbacks array if not present\n  // we do this here (lazily) to avoid unneeded global pollution\n  if (!callbacks) {\n    // we need to consider multiple engines in the same page\n    if (!global.___eio) global.___eio = [];\n    callbacks = global.___eio;\n  }\n\n  // callback identifier\n  this.index = callbacks.length;\n\n  // add callback to jsonp global\n  var self = this;\n  callbacks.push(function (msg) {\n    self.onData(msg);\n  });\n\n  // append to query string\n  this.query.j = this.index;\n\n  // prevent spurious errors from being emitted when the window is unloaded\n  if (global.document && global.addEventListener) {\n    global.addEventListener('beforeunload', function () {\n      if (self.script) self.script.onerror = empty;\n    }, false);\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  if (this.form) {\n    this.form.parentNode.removeChild(this.form);\n    this.form = null;\n    this.iframe = null;\n  }\n\n  Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n  var self = this;\n  var script = document.createElement('script');\n\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  script.async = true;\n  script.src = this.uri();\n  script.onerror = function (e) {\n    self.onError('jsonp poll error', e);\n  };\n\n  var insertAt = document.getElementsByTagName('script')[0];\n  if (insertAt) {\n    insertAt.parentNode.insertBefore(script, insertAt);\n  } else {\n    (document.head || document.body).appendChild(script);\n  }\n  this.script = script;\n\n  var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n  if (isUAgecko) {\n    setTimeout(function () {\n      var iframe = document.createElement('iframe');\n      document.body.appendChild(iframe);\n      document.body.removeChild(iframe);\n    }, 100);\n  }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n  var self = this;\n\n  if (!this.form) {\n    var form = document.createElement('form');\n    var area = document.createElement('textarea');\n    var id = this.iframeId = 'eio_iframe_' + this.index;\n    var iframe;\n\n    form.className = 'socketio';\n    form.style.position = 'absolute';\n    form.style.top = '-1000px';\n    form.style.left = '-1000px';\n    form.target = id;\n    form.method = 'POST';\n    form.setAttribute('accept-charset', 'utf-8');\n    area.name = 'd';\n    form.appendChild(area);\n    document.body.appendChild(form);\n\n    this.form = form;\n    this.area = area;\n  }\n\n  this.form.action = this.uri();\n\n  function complete () {\n    initIframe();\n    fn();\n  }\n\n  function initIframe () {\n    if (self.iframe) {\n      try {\n        self.form.removeChild(self.iframe);\n      } catch (e) {\n        self.onError('jsonp polling iframe removal error', e);\n      }\n    }\n\n    try {\n      // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n      var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n      iframe = document.createElement(html);\n    } catch (e) {\n      iframe = document.createElement('iframe');\n      iframe.name = self.iframeId;\n      iframe.src = 'javascript:0';\n    }\n\n    iframe.id = self.iframeId;\n\n    self.form.appendChild(iframe);\n    self.iframe = iframe;\n  }\n\n  initIframe();\n\n  // escape \\n to prevent it from being converted into \\r\\n by some UAs\n  // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n  data = data.replace(rEscapedNewline, '\\\\\\n');\n  this.area.value = data.replace(rNewline, '\\\\n');\n\n  try {\n    this.form.submit();\n  } catch (e) {}\n\n  if (this.iframe.attachEvent) {\n    this.iframe.onreadystatechange = function () {\n      if (self.iframe.readyState === 'complete') {\n        complete();\n      }\n    };\n  } else {\n    this.iframe.onload = complete;\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling-jsonp.js\n// module id = 33\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parser = require('engine.io-parser');\nvar parseqs = require('parseqs');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:websocket');\nvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\nvar NodeWebSocket;\nif (typeof window === 'undefined') {\n  try {\n    NodeWebSocket = require('ws');\n  } catch (e) { }\n}\n\n/**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */\n\nvar WebSocket = BrowserWebSocket;\nif (!WebSocket && typeof window === 'undefined') {\n  WebSocket = NodeWebSocket;\n}\n\n/**\n * Module exports.\n */\n\nmodule.exports = WS;\n\n/**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n\nfunction WS (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (forceBase64) {\n    this.supportsBinary = false;\n  }\n  this.perMessageDeflate = opts.perMessageDeflate;\n  this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n  this.protocols = opts.protocols;\n  if (!this.usingBrowserWebSocket) {\n    WebSocket = NodeWebSocket;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(WS, Transport);\n\n/**\n * Transport name.\n *\n * @api public\n */\n\nWS.prototype.name = 'websocket';\n\n/*\n * WebSockets support binary\n */\n\nWS.prototype.supportsBinary = true;\n\n/**\n * Opens socket.\n *\n * @api private\n */\n\nWS.prototype.doOpen = function () {\n  if (!this.check()) {\n    // let probe timeout\n    return;\n  }\n\n  var uri = this.uri();\n  var protocols = this.protocols;\n  var opts = {\n    agent: this.agent,\n    perMessageDeflate: this.perMessageDeflate\n  };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  if (this.extraHeaders) {\n    opts.headers = this.extraHeaders;\n  }\n  if (this.localAddress) {\n    opts.localAddress = this.localAddress;\n  }\n\n  try {\n    this.ws = this.usingBrowserWebSocket ? (protocols ? new WebSocket(uri, protocols) : new WebSocket(uri)) : new WebSocket(uri, protocols, opts);\n  } catch (err) {\n    return this.emit('error', err);\n  }\n\n  if (this.ws.binaryType === undefined) {\n    this.supportsBinary = false;\n  }\n\n  if (this.ws.supports && this.ws.supports.binary) {\n    this.supportsBinary = true;\n    this.ws.binaryType = 'nodebuffer';\n  } else {\n    this.ws.binaryType = 'arraybuffer';\n  }\n\n  this.addEventListeners();\n};\n\n/**\n * Adds event listeners to the socket\n *\n * @api private\n */\n\nWS.prototype.addEventListeners = function () {\n  var self = this;\n\n  this.ws.onopen = function () {\n    self.onOpen();\n  };\n  this.ws.onclose = function () {\n    self.onClose();\n  };\n  this.ws.onmessage = function (ev) {\n    self.onData(ev.data);\n  };\n  this.ws.onerror = function (e) {\n    self.onError('websocket error', e);\n  };\n};\n\n/**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n\nWS.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n\n  // encodePacket efficient as it uses WS framing\n  // no need for encodePayload\n  var total = packets.length;\n  for (var i = 0, l = total; i < l; i++) {\n    (function (packet) {\n      parser.encodePacket(packet, self.supportsBinary, function (data) {\n        if (!self.usingBrowserWebSocket) {\n          // always create a new object (GH-437)\n          var opts = {};\n          if (packet.options) {\n            opts.compress = packet.options.compress;\n          }\n\n          if (self.perMessageDeflate) {\n            var len = 'string' === typeof data ? global.Buffer.byteLength(data) : data.length;\n            if (len < self.perMessageDeflate.threshold) {\n              opts.compress = false;\n            }\n          }\n        }\n\n        // Sometimes the websocket has already been closed but the browser didn't\n        // have a chance of informing us about it yet, in that case send will\n        // throw an error\n        try {\n          if (self.usingBrowserWebSocket) {\n            // TypeError is thrown when passing the second argument on Safari\n            self.ws.send(data);\n          } else {\n            self.ws.send(data, opts);\n          }\n        } catch (e) {\n          debug('websocket closed before onclose event');\n        }\n\n        --total || done();\n      });\n    })(packets[i]);\n  }\n\n  function done () {\n    self.emit('flush');\n\n    // fake drain\n    // defer to next tick to allow Socket to clear writeBuffer\n    setTimeout(function () {\n      self.writable = true;\n      self.emit('drain');\n    }, 0);\n  }\n};\n\n/**\n * Called upon close\n *\n * @api private\n */\n\nWS.prototype.onClose = function () {\n  Transport.prototype.onClose.call(this);\n};\n\n/**\n * Closes socket.\n *\n * @api private\n */\n\nWS.prototype.doClose = function () {\n  if (typeof this.ws !== 'undefined') {\n    this.ws.close();\n  }\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nWS.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'wss' : 'ws';\n  var port = '';\n\n  // avoid port if default for schema\n  if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n    ('ws' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // append timestamp to URI\n  if (this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  // communicate binary support capabilities\n  if (!this.supportsBinary) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n/**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n\nWS.prototype.check = function () {\n  return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/websocket.js\n// module id = 34\n// module chunks = 0","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ws (ignored)\n// module id = 35\n// module chunks = 0","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n  if (indexOf) return arr.indexOf(obj);\n  for (var i = 0; i < arr.length; ++i) {\n    if (arr[i] === obj) return i;\n  }\n  return -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/indexof/index.js\n// module id = 36\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\nvar hasBin = require('has-binary2');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n  connect: 1,\n  connect_error: 1,\n  connect_timeout: 1,\n  connecting: 1,\n  disconnect: 1,\n  error: 1,\n  reconnect: 1,\n  reconnect_attempt: 1,\n  reconnect_failed: 1,\n  reconnect_error: 1,\n  reconnecting: 1,\n  ping: 1,\n  pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n  this.io = io;\n  this.nsp = nsp;\n  this.json = this; // compat\n  this.ids = 0;\n  this.acks = {};\n  this.receiveBuffer = [];\n  this.sendBuffer = [];\n  this.connected = false;\n  this.disconnected = true;\n  this.flags = {};\n  if (opts && opts.query) {\n    this.query = opts.query;\n  }\n  if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n  if (this.subs) return;\n\n  var io = this.io;\n  this.subs = [\n    on(io, 'open', bind(this, 'onopen')),\n    on(io, 'packet', bind(this, 'onpacket')),\n    on(io, 'close', bind(this, 'onclose'))\n  ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n  if (this.connected) return this;\n\n  this.subEvents();\n  this.io.open(); // ensure open\n  if ('open' === this.io.readyState) this.onopen();\n  this.emit('connecting');\n  return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n  var args = toArray(arguments);\n  args.unshift('message');\n  this.emit.apply(this, args);\n  return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n  if (events.hasOwnProperty(ev)) {\n    emit.apply(this, arguments);\n    return this;\n  }\n\n  var args = toArray(arguments);\n  var packet = {\n    type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n    data: args\n  };\n\n  packet.options = {};\n  packet.options.compress = !this.flags || false !== this.flags.compress;\n\n  // event ack callback\n  if ('function' === typeof args[args.length - 1]) {\n    debug('emitting packet with ack id %d', this.ids);\n    this.acks[this.ids] = args.pop();\n    packet.id = this.ids++;\n  }\n\n  if (this.connected) {\n    this.packet(packet);\n  } else {\n    this.sendBuffer.push(packet);\n  }\n\n  this.flags = {};\n\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n  packet.nsp = this.nsp;\n  this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n  debug('transport is open - connecting');\n\n  // write connect packet if necessary\n  if ('/' !== this.nsp) {\n    if (this.query) {\n      var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n      debug('sending connect packet with query %s', query);\n      this.packet({type: parser.CONNECT, query: query});\n    } else {\n      this.packet({type: parser.CONNECT});\n    }\n  }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n  debug('close (%s)', reason);\n  this.connected = false;\n  this.disconnected = true;\n  delete this.id;\n  this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n  var sameNamespace = packet.nsp === this.nsp;\n  var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\n  if (!sameNamespace && !rootNamespaceError) return;\n\n  switch (packet.type) {\n    case parser.CONNECT:\n      this.onconnect();\n      break;\n\n    case parser.EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.BINARY_EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.ACK:\n      this.onack(packet);\n      break;\n\n    case parser.BINARY_ACK:\n      this.onack(packet);\n      break;\n\n    case parser.DISCONNECT:\n      this.ondisconnect();\n      break;\n\n    case parser.ERROR:\n      this.emit('error', packet.data);\n      break;\n  }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n  var args = packet.data || [];\n  debug('emitting event %j', args);\n\n  if (null != packet.id) {\n    debug('attaching ack callback to event');\n    args.push(this.ack(packet.id));\n  }\n\n  if (this.connected) {\n    emit.apply(this, args);\n  } else {\n    this.receiveBuffer.push(args);\n  }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n  var self = this;\n  var sent = false;\n  return function () {\n    // prevent double callbacks\n    if (sent) return;\n    sent = true;\n    var args = toArray(arguments);\n    debug('sending ack %j', args);\n\n    self.packet({\n      type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n      id: id,\n      data: args\n    });\n  };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n  var ack = this.acks[packet.id];\n  if ('function' === typeof ack) {\n    debug('calling ack %s with %j', packet.id, packet.data);\n    ack.apply(this, packet.data);\n    delete this.acks[packet.id];\n  } else {\n    debug('bad ack %s', packet.id);\n  }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n  this.connected = true;\n  this.disconnected = false;\n  this.emit('connect');\n  this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n  var i;\n  for (i = 0; i < this.receiveBuffer.length; i++) {\n    emit.apply(this, this.receiveBuffer[i]);\n  }\n  this.receiveBuffer = [];\n\n  for (i = 0; i < this.sendBuffer.length; i++) {\n    this.packet(this.sendBuffer[i]);\n  }\n  this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n  debug('server disconnect (%s)', this.nsp);\n  this.destroy();\n  this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n  if (this.subs) {\n    // clean subscriptions to avoid reconnections\n    for (var i = 0; i < this.subs.length; i++) {\n      this.subs[i].destroy();\n    }\n    this.subs = null;\n  }\n\n  this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n  if (this.connected) {\n    debug('performing disconnect (%s)', this.nsp);\n    this.packet({ type: parser.DISCONNECT });\n  }\n\n  // remove socket from pool\n  this.destroy();\n\n  if (this.connected) {\n    // fire events\n    this.onclose('io client disconnect');\n  }\n  return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n  this.flags.compress = compress;\n  return this;\n};\n\n/**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.binary = function (binary) {\n  this.flags.binary = binary;\n  return this;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/socket.js","module.exports = toArray\n\nfunction toArray(list, index) {\n    var array = []\n\n    index = index || 0\n\n    for (var i = index || 0; i < list.length; i++) {\n        array[i - index] = list[i]\n    }\n\n    return array\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/to-array/index.js\n// module id = 38\n// module chunks = 0","\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n  obj.on(ev, fn);\n  return {\n    destroy: function () {\n      obj.removeListener(ev, fn);\n    }\n  };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/on.js","/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(obj, fn){\n  if ('string' == typeof fn) fn = obj[fn];\n  if ('function' != typeof fn) throw new Error('bind() requires a function');\n  var args = slice.call(arguments, 2);\n  return function(){\n    return fn.apply(obj, args.concat(slice.call(arguments)));\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-bind/index.js\n// module id = 40\n// module chunks = 0","\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n  opts = opts || {};\n  this.ms = opts.min || 100;\n  this.max = opts.max || 10000;\n  this.factor = opts.factor || 2;\n  this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n  this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n  var ms = this.ms * Math.pow(this.factor, this.attempts++);\n  if (this.jitter) {\n    var rand =  Math.random();\n    var deviation = Math.floor(rand * this.jitter * ms);\n    ms = (Math.floor(rand * 10) & 1) == 0  ? ms - deviation : ms + deviation;\n  }\n  return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n  this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n  this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n  this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n  this.jitter = jitter;\n};\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/backo2/index.js\n// module id = 41\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.slim.dev.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1b7c5bb79f2994f147b5","webpack:///./lib/index.js","webpack:///./lib/url.js","webpack:///./~/parseuri/index.js","webpack:///./support/noop.js","webpack:///./~/socket.io-parser/index.js","webpack:///./~/component-emitter/index.js","webpack:///./~/socket.io-parser/binary.js","webpack:///./~/isarray/index.js","webpack:///./~/socket.io-parser/is-buffer.js","webpack:///./lib/manager.js","webpack:///./~/engine.io-client/lib/index.js","webpack:///./~/engine.io-client/lib/socket.js","webpack:///./~/engine.io-client/lib/transports/index.js","webpack:///./~/engine.io-client/lib/xmlhttprequest.js","webpack:///./~/has-cors/index.js","webpack:///./~/engine.io-client/lib/transports/polling-xhr.js","webpack:///./~/engine.io-client/lib/transports/polling.js","webpack:///./~/engine.io-client/lib/transport.js","webpack:///./~/engine.io-parser/lib/browser.js","webpack:///./~/engine.io-parser/lib/keys.js","webpack:///./~/has-binary2/index.js","webpack:///./~/arraybuffer.slice/index.js","webpack:///./~/after/index.js","webpack:///./~/engine.io-parser/lib/utf8.js","webpack:///(webpack)/buildin/module.js","webpack:///./~/base64-arraybuffer/lib/base64-arraybuffer.js","webpack:///./~/blob/index.js","webpack:///./~/parseqs/index.js","webpack:///./~/component-inherit/index.js","webpack:///./~/yeast/index.js","webpack:///./~/engine.io-client/lib/transports/polling-jsonp.js","webpack:///./~/engine.io-client/lib/transports/websocket.js","webpack:///ws (ignored)","webpack:///./~/indexof/index.js","webpack:///./lib/socket.js","webpack:///./~/to-array/index.js","webpack:///./lib/on.js","webpack:///./~/component-bind/index.js","webpack:///./~/backo2/index.js"],"names":["url","require","parser","Manager","debug","module","exports","lookup","cache","managers","uri","opts","undefined","parsed","source","id","path","sameNamespace","nsps","newConnection","forceNew","multiplex","io","query","socket","protocol","connect","Socket","parseuri","loc","obj","global","location","host","charAt","test","port","ipv6","indexOf","href","eio","Emitter","on","bind","Backoff","has","Object","prototype","hasOwnProperty","subs","reconnection","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","min","max","jitter","timeout","readyState","connecting","lastPing","encoding","packetBuffer","_parser","encoder","Encoder","decoder","Decoder","autoConnect","open","emitAll","emit","apply","arguments","nsp","call","updateSocketIds","generateId","engine","v","length","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","maybeReconnectOnOpen","reconnecting","attempts","reconnect","fn","self","skipReconnect","openSub","onopen","errorSub","data","cleanup","err","Error","timer","setTimeout","destroy","close","push","clearTimeout","onping","Date","onpong","ondata","add","ondecoded","packet","onerror","onConnecting","index","splice","type","encode","encodedPackets","i","write","options","processPacketQueue","pack","shift","subsLength","sub","disconnect","reset","onclose","reason","delay","duration","onreconnect","attempt","toArray","parseqs","hasBin","events","connect_error","connect_timeout","error","reconnect_attempt","reconnect_failed","reconnect_error","ping","pong","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","flags","subEvents","send","args","unshift","ev","binary","BINARY_EVENT","EVENT","compress","pop","CONNECT","onpacket","rootNamespaceError","ERROR","onconnect","onevent","ACK","onack","BINARY_ACK","DISCONNECT","ondisconnect","ack","sent","emitBuffered","removeListener"],"mappings":"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ACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA0B;AAC1B,uBAAsB;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,sFAAqF;AACrF;;AAEA;AACA;AACA;AACA;AACA,MAAK,OAAO;AACZ;AACA;AACA;AACA,uCAAsC;AACtC;AACA;AACA,MAAK;AACL;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,oBAAoB;AAChC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,qBAAqB;AAChC,aAAY,cAAc;AAC1B;AACA;AACA;;AAEA;AACA;AACA,4DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/ZA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,aAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA2C,SAAS;AACpD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;;;;;;AClKA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAoC;AACpC,WAAU;AACV;;AAEA;AACA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA,IAAG;AACH;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA,kCAAiC;AACjC;AACA;;AAEA;AACA;;AAEA;AACA,8BAA6B;AAC7B,IAAG;AACH,oBAAmB,iBAAiB;AACpC;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yCAAwC;AACxC,MAAK,yBAAyB;AAC9B,sBAAqB,gBAAgB;AACrC;AACA;AACA,MAAK,mDAAmD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5IA,kBAAiB;;AAEjB;AACA;A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AAW,cAAc;AACzB,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA2F;;AAE3F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mCAAkC;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;;AAEA,+CAA8C,WAAW;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,sBAAqB,8BAA8B;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;;AAEA;AACA,4BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;;AAEP;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8CAA6C,OAAO;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;;AAEA;AACA;AACA,uCAAsC,OAAO;AAC7C;AACA;AACA;AACA;;;;;;;;ACtuBA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;;;;;;;ACpDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG,YAAY;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,YAAY;;AAEf;AACA;AACA;AACA,MAAK,YAAY;AACjB;AACA;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;;;;;;AChBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA,2BAA0B,iDAAiD;AAC3E;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,4DAA2D;AAC3D;AACA,QAAO;AACP;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;;AAGA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3ZA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iCAAgC,iBAAiB;AACjD;AACA,EAAC;;AAED;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,QAAO;AACP;;AAEA;;AAEA;AACA;;AAEA;AACA,QAAO;AACP;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,gBAAgB;AACjC;;AAEA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;ACpPA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,UAAU;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AC5JA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,YAAW;;AAEX;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA,+BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+DAA8D,gBAAgB;AAC9E;;AAEA;;AAEA;;AAEA;AACA,gCAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAiB,yBAAyB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAc;AACd,MAAK;AACL,eAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV;;AAEA;AACA;AACA,+BAA8B,gBAAgB;AAC9C,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA,aAAY,oBAAoB,oCAAoC;AACpE;;AAEA;;AAEA;AACA;AACA;;AAEA,WAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA,kBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAkC,OAAO;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,aAAY,YAAY;AACxB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,oDAAmD;AACnD,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,cAAc;AACrC;AACA;AACA;AACA;;AAEA,sBAAqB;AACrB;AACA,QAAO,OAAO;AACd;AACA;;AAEA;AACA,sBAAqB,mBAAmB;AACxC;AACA;AACA;;AAEA;AACA,sBAAqB,iBAAiB;AACtC;AACA;AACA,MAAK;;AAEL;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAqB,mBAAmB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAmB,EAAE;AACrB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,wBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;;;;;;;;AC5lBA;AACA;AACA;AACA,aAAY,MAAM;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClBA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA0B,sCAAsC;;AAEhE,mBAAkB,gBAAgB;AAClC,iBAAgB,cAAc;AAC9B,qBAAoB,aAAa;;AAEjC;AACA;AACA;;AAEA;AACA;AACA,8BAA6B,SAAS;AACtC;AACA;AACA;AACA;;;;;;;AC5BA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;;;;;;;mCC3BA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA,MAAK;AACL,6BAA4B;AAC5B;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAsC;AACtC;AACA;AACA;AACA,uCAAsC;AACtC;AACA;AACA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAEA;AACA;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF,oBAAmB;AACnB;AACA,IAAG,OAAO;AACV;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,OAAO;AACT;AACA;;AAEA,EAAC;;;;;;;;AC9PD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;;AAEA,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;;;;;;AClED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,gBAAgB;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAoC;AACpC;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;;;;;;;;AC/FD;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACNA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,cAAa,gBAAgB;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAM,YAAY;;AAElB;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAmB;;AAEnB;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;;;;;;;ACtOA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,YAAY;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS,OAAO;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;;AAET;;AAEA;AACA,QAAO;AACP,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;;;;;;;;AC7RA,gB;;;;;;;ACCA;;AAEA;AACA;AA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AAsBtE,EAAtB,EAA0B;AACxBnE,OAAIY,EAAJ,CAAO6H,EAAP,EAAWtE,EAAX;AACA,UAAO;AACLY,cAAS,mBAAY;AACnB/E,WAAI6J,cAAJ,CAAmBpB,EAAnB,EAAuBtE,EAAvB;AACD;AAHI,IAAP;AAKD,E;;;;;;ACvBD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,gBAAgB;AAC3B,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrBA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA","file":"socket.io.slim.dev.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"io\"] = factory();\n\telse\n\t\troot[\"io\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1b7c5bb79f2994f147b5","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n *   `io('http://localhost/a');`\n *   `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n  if (typeof uri === 'object') {\n    opts = uri;\n    uri = undefined;\n  }\n\n  opts = opts || {};\n\n  var parsed = url(uri);\n  var source = parsed.source;\n  var id = parsed.id;\n  var path = parsed.path;\n  var sameNamespace = cache[id] && path in cache[id].nsps;\n  var newConnection = opts.forceNew || opts['force new connection'] ||\n                      false === opts.multiplex || sameNamespace;\n\n  var io;\n\n  if (newConnection) {\n\n    io = Manager(source, opts);\n  } else {\n    if (!cache[id]) {\n\n      cache[id] = Manager(source, opts);\n    }\n    io = cache[id];\n  }\n  if (parsed.query && !opts.query) {\n    opts.query = parsed.query;\n  }\n  return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n\n\n\n// WEBPACK FOOTER //\n// ./lib/index.js","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n *                 Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n  var obj = uri;\n\n  // default to window.location\n  loc = loc || global.location;\n  if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n  // relative path support\n  if ('string' === typeof uri) {\n    if ('/' === uri.charAt(0)) {\n      if ('/' === uri.charAt(1)) {\n        uri = loc.protocol + uri;\n      } else {\n        uri = loc.host + uri;\n      }\n    }\n\n    if (!/^(https?|wss?):\\/\\//.test(uri)) {\n\n      if ('undefined' !== typeof loc) {\n        uri = loc.protocol + '//' + uri;\n      } else {\n        uri = 'https://' + uri;\n      }\n    }\n\n    // parse\n\n    obj = parseuri(uri);\n  }\n\n  // make sure we treat `localhost:80` and `localhost` equally\n  if (!obj.port) {\n    if (/^(http|ws)$/.test(obj.protocol)) {\n      obj.port = '80';\n    } else if (/^(http|ws)s$/.test(obj.protocol)) {\n      obj.port = '443';\n    }\n  }\n\n  obj.path = obj.path || '/';\n\n  var ipv6 = obj.host.indexOf(':') !== -1;\n  var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n  // define unique id\n  obj.id = obj.protocol + '://' + host + ':' + obj.port;\n  // define href\n  obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n  return obj;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/url.js","/**\r\n * Parses an URI\r\n *\r\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n * @api private\r\n */\r\n\r\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\r\nvar parts = [\r\n    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n];\r\n\r\nmodule.exports = function parseuri(str) {\r\n    var src = str,\r\n        b = str.indexOf('['),\r\n        e = str.indexOf(']');\r\n\r\n    if (b != -1 && e != -1) {\r\n        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n    }\r\n\r\n    var m = re.exec(str || ''),\r\n        uri = {},\r\n        i = 14;\r\n\r\n    while (i--) {\r\n        uri[parts[i]] = m[i] || '';\r\n    }\r\n\r\n    if (b != -1 && e != -1) {\r\n        uri.source = src;\r\n        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n        uri.ipv6uri = true;\r\n    }\r\n\r\n    return uri;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/parseuri/index.js\n// module id = 2\n// module chunks = 0","\nmodule.exports = function () { return function () {}; };\n\n\n\n// WEBPACK FOOTER //\n// ./support/noop.js","\n/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar binary = require('./binary');\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n  'CONNECT',\n  'DISCONNECT',\n  'EVENT',\n  'ACK',\n  'ERROR',\n  'BINARY_EVENT',\n  'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\nvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n\n\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    encodeAsBinary(obj, callback);\n  } else {\n    var encoding = encodeAsString(obj);\n    callback([encoding]);\n  }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n  // first is type\n  var str = '' + obj.type;\n\n  // attachments if we have them\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    str += obj.attachments + '-';\n  }\n\n  // if we have a namespace other than `/`\n  // we append it followed by a comma `,`\n  if (obj.nsp && '/' !== obj.nsp) {\n    str += obj.nsp + ',';\n  }\n\n  // immediately followed by the id\n  if (null != obj.id) {\n    str += obj.id;\n  }\n\n  // json data\n  if (null != obj.data) {\n    var payload = tryStringify(obj.data);\n    if (payload !== false) {\n      str += payload;\n    } else {\n      return ERROR_PACKET;\n    }\n  }\n\n\n  return str;\n}\n\nfunction tryStringify(str) {\n  try {\n    return JSON.stringify(str);\n  } catch(e){\n    return false;\n  }\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n  function writeEncoding(bloblessData) {\n    var deconstruction = binary.deconstructPacket(bloblessData);\n    var pack = encodeAsString(deconstruction.packet);\n    var buffers = deconstruction.buffers;\n\n    buffers.unshift(pack); // add packet info to beginning of data list\n    callback(buffers); // write all the buffers\n  }\n\n  binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n  this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an ecoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n  var packet;\n  if (typeof obj === 'string') {\n    packet = decodeString(obj);\n    if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n      this.reconstructor = new BinaryReconstructor(packet);\n\n      // no attachments, labeled binary but no binary data to follow\n      if (this.reconstructor.reconPack.attachments === 0) {\n        this.emit('decoded', packet);\n      }\n    } else { // non-binary full packet\n      this.emit('decoded', packet);\n    }\n  }\n  else if (isBuf(obj) || obj.base64) { // raw binary data\n    if (!this.reconstructor) {\n      throw new Error('got binary data when not reconstructing a packet');\n    } else {\n      packet = this.reconstructor.takeBinaryData(obj);\n      if (packet) { // received final buffer\n        this.reconstructor = null;\n        this.emit('decoded', packet);\n      }\n    }\n  }\n  else {\n    throw new Error('Unknown type: ' + obj);\n  }\n};\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n  var i = 0;\n  // look up type\n  var p = {\n    type: Number(str.charAt(0))\n  };\n\n  if (null == exports.types[p.type]) {\n    return error('unknown packet type ' + p.type);\n  }\n\n  // look up attachments if type binary\n  if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n    var buf = '';\n    while (str.charAt(++i) !== '-') {\n      buf += str.charAt(i);\n      if (i == str.length) break;\n    }\n    if (buf != Number(buf) || str.charAt(i) !== '-') {\n      throw new Error('Illegal attachments');\n    }\n    p.attachments = Number(buf);\n  }\n\n  // look up namespace (if any)\n  if ('/' === str.charAt(i + 1)) {\n    p.nsp = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (',' === c) break;\n      p.nsp += c;\n      if (i === str.length) break;\n    }\n  } else {\n    p.nsp = '/';\n  }\n\n  // look up id\n  var next = str.charAt(i + 1);\n  if ('' !== next && Number(next) == next) {\n    p.id = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (null == c || Number(c) != c) {\n        --i;\n        break;\n      }\n      p.id += str.charAt(i);\n      if (i === str.length) break;\n    }\n    p.id = Number(p.id);\n  }\n\n  // look up json data\n  if (str.charAt(++i)) {\n    var payload = tryParse(str.substr(i));\n    var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));\n    if (isPayloadValid) {\n      p.data = payload;\n    } else {\n      return error('invalid payload');\n    }\n  }\n\n\n  return p;\n}\n\nfunction tryParse(str) {\n  try {\n    return JSON.parse(str);\n  } catch(e){\n    return false;\n  }\n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n  if (this.reconstructor) {\n    this.reconstructor.finishedReconstruction();\n  }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n  this.reconPack = packet;\n  this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n *   a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n  this.buffers.push(binData);\n  if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n    var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n    this.finishedReconstruction();\n    return packet;\n  }\n  return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n  this.reconPack = null;\n  this.buffers = [];\n};\n\nfunction error(msg) {\n  return {\n    type: exports.ERROR,\n    data: 'parser error: ' + msg\n  };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/index.js\n// module id = 4\n// module chunks = 0","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n  module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n  if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n  for (var key in Emitter.prototype) {\r\n    obj[key] = Emitter.prototype[key];\r\n  }\r\n  return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n    .push(fn);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n  function on() {\r\n    this.off(event, on);\r\n    fn.apply(this, arguments);\r\n  }\r\n\r\n  on.fn = fn;\r\n  this.on(event, on);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n\r\n  // all\r\n  if (0 == arguments.length) {\r\n    this._callbacks = {};\r\n    return this;\r\n  }\r\n\r\n  // specific event\r\n  var callbacks = this._callbacks['$' + event];\r\n  if (!callbacks) return this;\r\n\r\n  // remove all handlers\r\n  if (1 == arguments.length) {\r\n    delete this._callbacks['$' + event];\r\n    return this;\r\n  }\r\n\r\n  // remove specific handler\r\n  var cb;\r\n  for (var i = 0; i < callbacks.length; i++) {\r\n    cb = callbacks[i];\r\n    if (cb === fn || cb.fn === fn) {\r\n      callbacks.splice(i, 1);\r\n      break;\r\n    }\r\n  }\r\n  return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  var args = [].slice.call(arguments, 1)\r\n    , callbacks = this._callbacks['$' + event];\r\n\r\n  if (callbacks) {\r\n    callbacks = callbacks.slice(0);\r\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n      callbacks[i].apply(this, args);\r\n    }\r\n  }\r\n\r\n  return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n  return !! this.listeners(event).length;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-emitter/index.js\n// module id = 5\n// module chunks = 0","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n  var buffers = [];\n  var packetData = packet.data;\n  var pack = packet;\n  pack.data = _deconstructPacket(packetData, buffers);\n  pack.attachments = buffers.length; // number of binary 'attachments'\n  return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (isBuf(data)) {\n    var placeholder = { _placeholder: true, num: buffers.length };\n    buffers.push(data);\n    return placeholder;\n  } else if (isArray(data)) {\n    var newData = new Array(data.length);\n    for (var i = 0; i < data.length; i++) {\n      newData[i] = _deconstructPacket(data[i], buffers);\n    }\n    return newData;\n  } else if (typeof data === 'object' && !(data instanceof Date)) {\n    var newData = {};\n    for (var key in data) {\n      newData[key] = _deconstructPacket(data[key], buffers);\n    }\n    return newData;\n  }\n  return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n  packet.data = _reconstructPacket(packet.data, buffers);\n  packet.attachments = undefined; // no longer useful\n  return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (data && data._placeholder) {\n    return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n  } else if (isArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      data[i] = _reconstructPacket(data[i], buffers);\n    }\n  } else if (typeof data === 'object') {\n    for (var key in data) {\n      data[key] = _reconstructPacket(data[key], buffers);\n    }\n  }\n\n  return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n  function _removeBlobs(obj, curKey, containingObject) {\n    if (!obj) return obj;\n\n    // convert any blob\n    if ((withNativeBlob && obj instanceof Blob) ||\n        (withNativeFile && obj instanceof File)) {\n      pendingBlobs++;\n\n      // async filereader\n      var fileReader = new FileReader();\n      fileReader.onload = function() { // this.result == arraybuffer\n        if (containingObject) {\n          containingObject[curKey] = this.result;\n        }\n        else {\n          bloblessData = this.result;\n        }\n\n        // if nothing pending its callback time\n        if(! --pendingBlobs) {\n          callback(bloblessData);\n        }\n      };\n\n      fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n    } else if (isArray(obj)) { // handle array\n      for (var i = 0; i < obj.length; i++) {\n        _removeBlobs(obj[i], i, obj);\n      }\n    } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n      for (var key in obj) {\n        _removeBlobs(obj[key], key, obj);\n      }\n    }\n  }\n\n  var pendingBlobs = 0;\n  var bloblessData = data;\n  _removeBlobs(bloblessData);\n  if (!pendingBlobs) {\n    callback(bloblessData);\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/binary.js\n// module id = 6\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/isarray/index.js\n// module id = 7\n// module chunks = 0","\nmodule.exports = isBuf;\n\nvar withNativeBuffer = typeof global.Buffer === 'function' && typeof global.Buffer.isBuffer === 'function';\nvar withNativeArrayBuffer = typeof global.ArrayBuffer === 'function';\n\nvar isView = (function () {\n  if (withNativeArrayBuffer && typeof global.ArrayBuffer.isView === 'function') {\n    return global.ArrayBuffer.isView;\n  } else {\n    return function (obj) { return obj.buffer instanceof global.ArrayBuffer; };\n  }\n})();\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n  return (withNativeBuffer && global.Buffer.isBuffer(obj)) ||\n          (withNativeArrayBuffer && (obj instanceof global.ArrayBuffer || isView(obj)));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/is-buffer.js\n// module id = 8\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n  if (!(this instanceof Manager)) return new Manager(uri, opts);\n  if (uri && ('object' === typeof uri)) {\n    opts = uri;\n    uri = undefined;\n  }\n  opts = opts || {};\n\n  opts.path = opts.path || '/socket.io';\n  this.nsps = {};\n  this.subs = [];\n  this.opts = opts;\n  this.reconnection(opts.reconnection !== false);\n  this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n  this.reconnectionDelay(opts.reconnectionDelay || 1000);\n  this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n  this.randomizationFactor(opts.randomizationFactor || 0.5);\n  this.backoff = new Backoff({\n    min: this.reconnectionDelay(),\n    max: this.reconnectionDelayMax(),\n    jitter: this.randomizationFactor()\n  });\n  this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n  this.readyState = 'closed';\n  this.uri = uri;\n  this.connecting = [];\n  this.lastPing = null;\n  this.encoding = false;\n  this.packetBuffer = [];\n  var _parser = opts.parser || parser;\n  this.encoder = new _parser.Encoder();\n  this.decoder = new _parser.Decoder();\n  this.autoConnect = opts.autoConnect !== false;\n  if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n  this.emit.apply(this, arguments);\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n    }\n  }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].id = this.generateId(nsp);\n    }\n  }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n  return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n  if (!arguments.length) return this._reconnection;\n  this._reconnection = !!v;\n  return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n  if (!arguments.length) return this._reconnectionAttempts;\n  this._reconnectionAttempts = v;\n  return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n  if (!arguments.length) return this._reconnectionDelay;\n  this._reconnectionDelay = v;\n  this.backoff && this.backoff.setMin(v);\n  return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n  if (!arguments.length) return this._randomizationFactor;\n  this._randomizationFactor = v;\n  this.backoff && this.backoff.setJitter(v);\n  return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n  if (!arguments.length) return this._reconnectionDelayMax;\n  this._reconnectionDelayMax = v;\n  this.backoff && this.backoff.setMax(v);\n  return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n  if (!arguments.length) return this._timeout;\n  this._timeout = v;\n  return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n  // Only try to reconnect if it's the first time we're connecting\n  if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n    // keeps reconnection from firing twice for the same reconnection loop\n    this.reconnect();\n  }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n\n  if (~this.readyState.indexOf('open')) return this;\n\n\n  this.engine = eio(this.uri, this.opts);\n  var socket = this.engine;\n  var self = this;\n  this.readyState = 'opening';\n  this.skipReconnect = false;\n\n  // emit `open`\n  var openSub = on(socket, 'open', function () {\n    self.onopen();\n    fn && fn();\n  });\n\n  // emit `connect_error`\n  var errorSub = on(socket, 'error', function (data) {\n\n    self.cleanup();\n    self.readyState = 'closed';\n    self.emitAll('connect_error', data);\n    if (fn) {\n      var err = new Error('Connection error');\n      err.data = data;\n      fn(err);\n    } else {\n      // Only do this if there is no fn to handle the error\n      self.maybeReconnectOnOpen();\n    }\n  });\n\n  // emit `connect_timeout`\n  if (false !== this._timeout) {\n    var timeout = this._timeout;\n\n\n    // set timer\n    var timer = setTimeout(function () {\n\n      openSub.destroy();\n      socket.close();\n      socket.emit('error', 'timeout');\n      self.emitAll('connect_timeout', timeout);\n    }, timeout);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n\n  this.subs.push(openSub);\n  this.subs.push(errorSub);\n\n  return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n\n\n  // clear old subs\n  this.cleanup();\n\n  // mark as open\n  this.readyState = 'open';\n  this.emit('open');\n\n  // add new subs\n  var socket = this.engine;\n  this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n  this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n  this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n  this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n  this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n  this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n  this.lastPing = new Date();\n  this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n  this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n  this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n\n  this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n  var socket = this.nsps[nsp];\n  if (!socket) {\n    socket = new Socket(this, nsp, opts);\n    this.nsps[nsp] = socket;\n    var self = this;\n    socket.on('connecting', onConnecting);\n    socket.on('connect', function () {\n      socket.id = self.generateId(nsp);\n    });\n\n    if (this.autoConnect) {\n      // manually call here since connecting event is fired before listening\n      onConnecting();\n    }\n  }\n\n  function onConnecting () {\n    if (!~indexOf(self.connecting, socket)) {\n      self.connecting.push(socket);\n    }\n  }\n\n  return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n  var index = indexOf(this.connecting, socket);\n  if (~index) this.connecting.splice(index, 1);\n  if (this.connecting.length) return;\n\n  this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n\n  var self = this;\n  if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n  if (!self.encoding) {\n    // encode, then write to engine with result\n    self.encoding = true;\n    this.encoder.encode(packet, function (encodedPackets) {\n      for (var i = 0; i < encodedPackets.length; i++) {\n        self.engine.write(encodedPackets[i], packet.options);\n      }\n      self.encoding = false;\n      self.processPacketQueue();\n    });\n  } else { // add packet to the queue\n    self.packetBuffer.push(packet);\n  }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n  if (this.packetBuffer.length > 0 && !this.encoding) {\n    var pack = this.packetBuffer.shift();\n    this.packet(pack);\n  }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n\n\n  var subsLength = this.subs.length;\n  for (var i = 0; i < subsLength; i++) {\n    var sub = this.subs.shift();\n    sub.destroy();\n  }\n\n  this.packetBuffer = [];\n  this.encoding = false;\n  this.lastPing = null;\n\n  this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n\n  this.skipReconnect = true;\n  this.reconnecting = false;\n  if ('opening' === this.readyState) {\n    // `onclose` will not fire because\n    // an open event never happened\n    this.cleanup();\n  }\n  this.backoff.reset();\n  this.readyState = 'closed';\n  if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n\n\n  this.cleanup();\n  this.backoff.reset();\n  this.readyState = 'closed';\n  this.emit('close', reason);\n\n  if (this._reconnection && !this.skipReconnect) {\n    this.reconnect();\n  }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n  if (this.reconnecting || this.skipReconnect) return this;\n\n  var self = this;\n\n  if (this.backoff.attempts >= this._reconnectionAttempts) {\n\n    this.backoff.reset();\n    this.emitAll('reconnect_failed');\n    this.reconnecting = false;\n  } else {\n    var delay = this.backoff.duration();\n\n\n    this.reconnecting = true;\n    var timer = setTimeout(function () {\n      if (self.skipReconnect) return;\n\n\n      self.emitAll('reconnect_attempt', self.backoff.attempts);\n      self.emitAll('reconnecting', self.backoff.attempts);\n\n      // check again for the case socket closed in above events\n      if (self.skipReconnect) return;\n\n      self.open(function (err) {\n        if (err) {\n\n          self.reconnecting = false;\n          self.reconnect();\n          self.emitAll('reconnect_error', err.data);\n        } else {\n\n          self.onreconnect();\n        }\n      });\n    }, delay);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n  var attempt = this.backoff.attempts;\n  this.reconnecting = false;\n  this.backoff.reset();\n  this.updateSocketIds();\n  this.emitAll('reconnect', attempt);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/manager.js","\nmodule.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/index.js\n// module id = 10\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n  if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n  opts = opts || {};\n\n  if (uri && 'object' === typeof uri) {\n    opts = uri;\n    uri = null;\n  }\n\n  if (uri) {\n    uri = parseuri(uri);\n    opts.hostname = uri.host;\n    opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n    opts.port = uri.port;\n    if (uri.query) opts.query = uri.query;\n  } else if (opts.host) {\n    opts.hostname = parseuri(opts.host).host;\n  }\n\n  this.secure = null != opts.secure ? opts.secure\n    : (global.location && 'https:' === location.protocol);\n\n  if (opts.hostname && !opts.port) {\n    // if no port is specified manually, use the protocol default\n    opts.port = this.secure ? '443' : '80';\n  }\n\n  this.agent = opts.agent || false;\n  this.hostname = opts.hostname ||\n    (global.location ? location.hostname : 'localhost');\n  this.port = opts.port || (global.location && location.port\n      ? location.port\n      : (this.secure ? 443 : 80));\n  this.query = opts.query || {};\n  if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n  this.upgrade = false !== opts.upgrade;\n  this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n  this.forceJSONP = !!opts.forceJSONP;\n  this.jsonp = false !== opts.jsonp;\n  this.forceBase64 = !!opts.forceBase64;\n  this.enablesXDR = !!opts.enablesXDR;\n  this.timestampParam = opts.timestampParam || 't';\n  this.timestampRequests = opts.timestampRequests;\n  this.transports = opts.transports || ['polling', 'websocket'];\n  this.transportOptions = opts.transportOptions || {};\n  this.readyState = '';\n  this.writeBuffer = [];\n  this.prevBufferLen = 0;\n  this.policyPort = opts.policyPort || 843;\n  this.rememberUpgrade = opts.rememberUpgrade || false;\n  this.binaryType = null;\n  this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n  this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n  if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n  if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n    this.perMessageDeflate.threshold = 1024;\n  }\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx || null;\n  this.key = opts.key || null;\n  this.passphrase = opts.passphrase || null;\n  this.cert = opts.cert || null;\n  this.ca = opts.ca || null;\n  this.ciphers = opts.ciphers || null;\n  this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n  this.forceNode = !!opts.forceNode;\n\n  // other options for Node.js client\n  var freeGlobal = typeof global === 'object' && global;\n  if (freeGlobal.global === freeGlobal) {\n    if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n      this.extraHeaders = opts.extraHeaders;\n    }\n\n    if (opts.localAddress) {\n      this.localAddress = opts.localAddress;\n    }\n  }\n\n  // set on handshake\n  this.id = null;\n  this.upgrades = null;\n  this.pingInterval = null;\n  this.pingTimeout = null;\n\n  // set on heartbeat\n  this.pingIntervalTimer = null;\n  this.pingTimeoutTimer = null;\n\n  this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n\n  var query = clone(this.query);\n\n  // append engine.io protocol identifier\n  query.EIO = parser.protocol;\n\n  // transport name\n  query.transport = name;\n\n  // per-transport options\n  var options = this.transportOptions[name] || {};\n\n  // session id if we already have one\n  if (this.id) query.sid = this.id;\n\n  var transport = new transports[name]({\n    query: query,\n    socket: this,\n    agent: options.agent || this.agent,\n    hostname: options.hostname || this.hostname,\n    port: options.port || this.port,\n    secure: options.secure || this.secure,\n    path: options.path || this.path,\n    forceJSONP: options.forceJSONP || this.forceJSONP,\n    jsonp: options.jsonp || this.jsonp,\n    forceBase64: options.forceBase64 || this.forceBase64,\n    enablesXDR: options.enablesXDR || this.enablesXDR,\n    timestampRequests: options.timestampRequests || this.timestampRequests,\n    timestampParam: options.timestampParam || this.timestampParam,\n    policyPort: options.policyPort || this.policyPort,\n    pfx: options.pfx || this.pfx,\n    key: options.key || this.key,\n    passphrase: options.passphrase || this.passphrase,\n    cert: options.cert || this.cert,\n    ca: options.ca || this.ca,\n    ciphers: options.ciphers || this.ciphers,\n    rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n    perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n    extraHeaders: options.extraHeaders || this.extraHeaders,\n    forceNode: options.forceNode || this.forceNode,\n    localAddress: options.localAddress || this.localAddress,\n    requestTimeout: options.requestTimeout || this.requestTimeout,\n    protocols: options.protocols || void (0)\n  });\n\n  return transport;\n};\n\nfunction clone (obj) {\n  var o = {};\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      o[i] = obj[i];\n    }\n  }\n  return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n  var transport;\n  if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n    transport = 'websocket';\n  } else if (0 === this.transports.length) {\n    // Emit error on next tick so it can be listened to\n    var self = this;\n    setTimeout(function () {\n      self.emit('error', 'No transports available');\n    }, 0);\n    return;\n  } else {\n    transport = this.transports[0];\n  }\n  this.readyState = 'opening';\n\n  // Retry with the next transport if the transport is disabled (jsonp: false)\n  try {\n    transport = this.createTransport(transport);\n  } catch (e) {\n    this.transports.shift();\n    this.open();\n    return;\n  }\n\n  transport.open();\n  this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n\n  var self = this;\n\n  if (this.transport) {\n\n    this.transport.removeAllListeners();\n  }\n\n  // set up transport\n  this.transport = transport;\n\n  // set up transport listeners\n  transport\n  .on('drain', function () {\n    self.onDrain();\n  })\n  .on('packet', function (packet) {\n    self.onPacket(packet);\n  })\n  .on('error', function (e) {\n    self.onError(e);\n  })\n  .on('close', function () {\n    self.onClose('transport close');\n  });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n\n  var transport = this.createTransport(name, { probe: 1 });\n  var failed = false;\n  var self = this;\n\n  Socket.priorWebsocketSuccess = false;\n\n  function onTransportOpen () {\n    if (self.onlyBinaryUpgrades) {\n      var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n      failed = failed || upgradeLosesBinary;\n    }\n    if (failed) return;\n\n\n    transport.send([{ type: 'ping', data: 'probe' }]);\n    transport.once('packet', function (msg) {\n      if (failed) return;\n      if ('pong' === msg.type && 'probe' === msg.data) {\n\n        self.upgrading = true;\n        self.emit('upgrading', transport);\n        if (!transport) return;\n        Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n\n        self.transport.pause(function () {\n          if (failed) return;\n          if ('closed' === self.readyState) return;\n\n\n          cleanup();\n\n          self.setTransport(transport);\n          transport.send([{ type: 'upgrade' }]);\n          self.emit('upgrade', transport);\n          transport = null;\n          self.upgrading = false;\n          self.flush();\n        });\n      } else {\n\n        var err = new Error('probe error');\n        err.transport = transport.name;\n        self.emit('upgradeError', err);\n      }\n    });\n  }\n\n  function freezeTransport () {\n    if (failed) return;\n\n    // Any callback called by transport should be ignored since now\n    failed = true;\n\n    cleanup();\n\n    transport.close();\n    transport = null;\n  }\n\n  // Handle any error that happens while probing\n  function onerror (err) {\n    var error = new Error('probe error: ' + err);\n    error.transport = transport.name;\n\n    freezeTransport();\n\n\n\n    self.emit('upgradeError', error);\n  }\n\n  function onTransportClose () {\n    onerror('transport closed');\n  }\n\n  // When the socket is closed while we're probing\n  function onclose () {\n    onerror('socket closed');\n  }\n\n  // When the socket is upgraded while we're probing\n  function onupgrade (to) {\n    if (transport && to.name !== transport.name) {\n\n      freezeTransport();\n    }\n  }\n\n  // Remove all listeners on the transport and on self\n  function cleanup () {\n    transport.removeListener('open', onTransportOpen);\n    transport.removeListener('error', onerror);\n    transport.removeListener('close', onTransportClose);\n    self.removeListener('close', onclose);\n    self.removeListener('upgrading', onupgrade);\n  }\n\n  transport.once('open', onTransportOpen);\n  transport.once('error', onerror);\n  transport.once('close', onTransportClose);\n\n  this.once('close', onclose);\n  this.once('upgrading', onupgrade);\n\n  transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n\n  this.readyState = 'open';\n  Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n  this.emit('open');\n  this.flush();\n\n  // we check for `readyState` in case an `open`\n  // listener already closed the socket\n  if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n\n    for (var i = 0, l = this.upgrades.length; i < l; i++) {\n      this.probe(this.upgrades[i]);\n    }\n  }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n  if ('opening' === this.readyState || 'open' === this.readyState ||\n      'closing' === this.readyState) {\n\n\n    this.emit('packet', packet);\n\n    // Socket is live - any packet counts\n    this.emit('heartbeat');\n\n    switch (packet.type) {\n      case 'open':\n        this.onHandshake(JSON.parse(packet.data));\n        break;\n\n      case 'pong':\n        this.setPing();\n        this.emit('pong');\n        break;\n\n      case 'error':\n        var err = new Error('server error');\n        err.code = packet.data;\n        this.onError(err);\n        break;\n\n      case 'message':\n        this.emit('data', packet.data);\n        this.emit('message', packet.data);\n        break;\n    }\n  } else {\n\n  }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n  this.emit('handshake', data);\n  this.id = data.sid;\n  this.transport.query.sid = data.sid;\n  this.upgrades = this.filterUpgrades(data.upgrades);\n  this.pingInterval = data.pingInterval;\n  this.pingTimeout = data.pingTimeout;\n  this.onOpen();\n  // In case open handler closes socket\n  if ('closed' === this.readyState) return;\n  this.setPing();\n\n  // Prolong liveness of socket on heartbeat\n  this.removeListener('heartbeat', this.onHeartbeat);\n  this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n  clearTimeout(this.pingTimeoutTimer);\n  var self = this;\n  self.pingTimeoutTimer = setTimeout(function () {\n    if ('closed' === self.readyState) return;\n    self.onClose('ping timeout');\n  }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n  var self = this;\n  clearTimeout(self.pingIntervalTimer);\n  self.pingIntervalTimer = setTimeout(function () {\n\n    self.ping();\n    self.onHeartbeat(self.pingTimeout);\n  }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n  var self = this;\n  this.sendPacket('ping', function () {\n    self.emit('ping');\n  });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n  this.writeBuffer.splice(0, this.prevBufferLen);\n\n  // setting prevBufferLen = 0 is very important\n  // for example, when upgrading, upgrade packet is sent over,\n  // and a nonzero prevBufferLen could cause problems on `drain`\n  this.prevBufferLen = 0;\n\n  if (0 === this.writeBuffer.length) {\n    this.emit('drain');\n  } else {\n    this.flush();\n  }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n  if ('closed' !== this.readyState && this.transport.writable &&\n    !this.upgrading && this.writeBuffer.length) {\n\n    this.transport.send(this.writeBuffer);\n    // keep track of current length of writeBuffer\n    // splice writeBuffer and callbackBuffer on `drain`\n    this.prevBufferLen = this.writeBuffer.length;\n    this.emit('flush');\n  }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n  this.sendPacket('message', msg, options, fn);\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n  if ('function' === typeof data) {\n    fn = data;\n    data = undefined;\n  }\n\n  if ('function' === typeof options) {\n    fn = options;\n    options = null;\n  }\n\n  if ('closing' === this.readyState || 'closed' === this.readyState) {\n    return;\n  }\n\n  options = options || {};\n  options.compress = false !== options.compress;\n\n  var packet = {\n    type: type,\n    data: data,\n    options: options\n  };\n  this.emit('packetCreate', packet);\n  this.writeBuffer.push(packet);\n  if (fn) this.once('flush', fn);\n  this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.readyState = 'closing';\n\n    var self = this;\n\n    if (this.writeBuffer.length) {\n      this.once('drain', function () {\n        if (this.upgrading) {\n          waitForUpgrade();\n        } else {\n          close();\n        }\n      });\n    } else if (this.upgrading) {\n      waitForUpgrade();\n    } else {\n      close();\n    }\n  }\n\n  function close () {\n    self.onClose('forced close');\n\n    self.transport.close();\n  }\n\n  function cleanupAndClose () {\n    self.removeListener('upgrade', cleanupAndClose);\n    self.removeListener('upgradeError', cleanupAndClose);\n    close();\n  }\n\n  function waitForUpgrade () {\n    // wait for upgrade to finish since we can't send packets while pausing a transport\n    self.once('upgrade', cleanupAndClose);\n    self.once('upgradeError', cleanupAndClose);\n  }\n\n  return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n\n  Socket.priorWebsocketSuccess = false;\n  this.emit('error', err);\n  this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n  if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n\n    var self = this;\n\n    // clear timers\n    clearTimeout(this.pingIntervalTimer);\n    clearTimeout(this.pingTimeoutTimer);\n\n    // stop event from firing again for transport\n    this.transport.removeAllListeners('close');\n\n    // ensure transport won't stay open\n    this.transport.close();\n\n    // ignore further transport communication\n    this.transport.removeAllListeners();\n\n    // set ready state\n    this.readyState = 'closed';\n\n    // clear session id\n    this.id = null;\n\n    // emit close event\n    this.emit('close', reason, desc);\n\n    // clean buffers after, so users can still\n    // grab the buffers on `close` event\n    self.writeBuffer = [];\n    self.prevBufferLen = 0;\n  }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n  var filteredUpgrades = [];\n  for (var i = 0, j = upgrades.length; i < j; i++) {\n    if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n  }\n  return filteredUpgrades;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/socket.js\n// module id = 11\n// module chunks = 0","/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n  var xhr;\n  var xd = false;\n  var xs = false;\n  var jsonp = false !== opts.jsonp;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    xd = opts.hostname !== location.hostname || port !== opts.port;\n    xs = opts.secure !== isSSL;\n  }\n\n  opts.xdomain = xd;\n  opts.xscheme = xs;\n  xhr = new XMLHttpRequest(opts);\n\n  if ('open' in xhr && !opts.forceJSONP) {\n    return new XHR(opts);\n  } else {\n    if (!jsonp) throw new Error('JSONP disabled');\n    return new JSONP(opts);\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/index.js\n// module id = 12\n// module chunks = 0","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\n\nmodule.exports = function (opts) {\n  var xdomain = opts.xdomain;\n\n  // scheme must be same when usign XDomainRequest\n  // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n  var xscheme = opts.xscheme;\n\n  // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n  // https://github.com/Automattic/engine.io-client/pull/217\n  var enablesXDR = opts.enablesXDR;\n\n  // XMLHttpRequest can be disabled on IE\n  try {\n    if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n      return new XMLHttpRequest();\n    }\n  } catch (e) { }\n\n  // Use XDomainRequest for IE8 if enablesXDR is true\n  // because loading bar keeps flashing when using jsonp-polling\n  // https://github.com/yujiosaka/socke.io-ie8-loading-example\n  try {\n    if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n      return new XDomainRequest();\n    }\n  } catch (e) { }\n\n  if (!xdomain) {\n    try {\n      return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n    } catch (e) { }\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/xmlhttprequest.js\n// module id = 13\n// module chunks = 0","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n *   - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n  module.exports = typeof XMLHttpRequest !== 'undefined' &&\n    'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n  // if XMLHttp support is disabled in IE then it will throw\n  // when trying to create\n  module.exports = false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/has-cors/index.js\n// module id = 14\n// module chunks = 0","/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n  Polling.call(this, opts);\n  this.requestTimeout = opts.requestTimeout;\n  this.extraHeaders = opts.extraHeaders;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    this.xd = opts.hostname !== global.location.hostname ||\n      port !== opts.port;\n    this.xs = opts.secure !== isSSL;\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n  opts = opts || {};\n  opts.uri = this.uri();\n  opts.xd = this.xd;\n  opts.xs = this.xs;\n  opts.agent = this.agent || false;\n  opts.supportsBinary = this.supportsBinary;\n  opts.enablesXDR = this.enablesXDR;\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  opts.requestTimeout = this.requestTimeout;\n\n  // other options for Node.js client\n  opts.extraHeaders = this.extraHeaders;\n\n  return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n  var isBinary = typeof data !== 'string' && data !== undefined;\n  var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n  var self = this;\n  req.on('success', fn);\n  req.on('error', function (err) {\n    self.onError('xhr post error', err);\n  });\n  this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n\n  var req = this.request();\n  var self = this;\n  req.on('data', function (data) {\n    self.onData(data);\n  });\n  req.on('error', function (err) {\n    self.onError('xhr poll error', err);\n  });\n  this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n  this.method = opts.method || 'GET';\n  this.uri = opts.uri;\n  this.xd = !!opts.xd;\n  this.xs = !!opts.xs;\n  this.async = false !== opts.async;\n  this.data = undefined !== opts.data ? opts.data : null;\n  this.agent = opts.agent;\n  this.isBinary = opts.isBinary;\n  this.supportsBinary = opts.supportsBinary;\n  this.enablesXDR = opts.enablesXDR;\n  this.requestTimeout = opts.requestTimeout;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n\n  this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n  var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n\n  var xhr = this.xhr = new XMLHttpRequest(opts);\n  var self = this;\n\n  try {\n\n    xhr.open(this.method, this.uri, this.async);\n    try {\n      if (this.extraHeaders) {\n        xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n        for (var i in this.extraHeaders) {\n          if (this.extraHeaders.hasOwnProperty(i)) {\n            xhr.setRequestHeader(i, this.extraHeaders[i]);\n          }\n        }\n      }\n    } catch (e) {}\n\n    if ('POST' === this.method) {\n      try {\n        if (this.isBinary) {\n          xhr.setRequestHeader('Content-type', 'application/octet-stream');\n        } else {\n          xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n        }\n      } catch (e) {}\n    }\n\n    try {\n      xhr.setRequestHeader('Accept', '*/*');\n    } catch (e) {}\n\n    // ie6 check\n    if ('withCredentials' in xhr) {\n      xhr.withCredentials = true;\n    }\n\n    if (this.requestTimeout) {\n      xhr.timeout = this.requestTimeout;\n    }\n\n    if (this.hasXDR()) {\n      xhr.onload = function () {\n        self.onLoad();\n      };\n      xhr.onerror = function () {\n        self.onError(xhr.responseText);\n      };\n    } else {\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState === 2) {\n          try {\n            var contentType = xhr.getResponseHeader('Content-Type');\n            if (self.supportsBinary && contentType === 'application/octet-stream') {\n              xhr.responseType = 'arraybuffer';\n            }\n          } catch (e) {}\n        }\n        if (4 !== xhr.readyState) return;\n        if (200 === xhr.status || 1223 === xhr.status) {\n          self.onLoad();\n        } else {\n          // make sure the `error` event handler that's user-set\n          // does not throw in the same tick and gets caught here\n          setTimeout(function () {\n            self.onError(xhr.status);\n          }, 0);\n        }\n      };\n    }\n\n\n    xhr.send(this.data);\n  } catch (e) {\n    // Need to defer since .create() is called directly fhrom the constructor\n    // and thus the 'error' event can only be only bound *after* this exception\n    // occurs.  Therefore, also, we cannot throw here at all.\n    setTimeout(function () {\n      self.onError(e);\n    }, 0);\n    return;\n  }\n\n  if (global.document) {\n    this.index = Request.requestsCount++;\n    Request.requests[this.index] = this;\n  }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n  this.emit('success');\n  this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n  this.emit('data', data);\n  this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n  this.emit('error', err);\n  this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n  if ('undefined' === typeof this.xhr || null === this.xhr) {\n    return;\n  }\n  // xmlhttprequest\n  if (this.hasXDR()) {\n    this.xhr.onload = this.xhr.onerror = empty;\n  } else {\n    this.xhr.onreadystatechange = empty;\n  }\n\n  if (fromError) {\n    try {\n      this.xhr.abort();\n    } catch (e) {}\n  }\n\n  if (global.document) {\n    delete Request.requests[this.index];\n  }\n\n  this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n  var data;\n  try {\n    var contentType;\n    try {\n      contentType = this.xhr.getResponseHeader('Content-Type');\n    } catch (e) {}\n    if (contentType === 'application/octet-stream') {\n      data = this.xhr.response || this.xhr.responseText;\n    } else {\n      data = this.xhr.responseText;\n    }\n  } catch (e) {\n    this.onError(e);\n  }\n  if (null != data) {\n    this.onData(data);\n  }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n  return 'undefined' !== typeof global.XDomainRequest && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n  this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (global.document) {\n  if (global.attachEvent) {\n    global.attachEvent('onunload', unloadHandler);\n  } else if (global.addEventListener) {\n    global.addEventListener('beforeunload', unloadHandler, false);\n  }\n}\n\nfunction unloadHandler () {\n  for (var i in Request.requests) {\n    if (Request.requests.hasOwnProperty(i)) {\n      Request.requests[i].abort();\n    }\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling-xhr.js\n// module id = 15\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n  var XMLHttpRequest = require('xmlhttprequest-ssl');\n  var xhr = new XMLHttpRequest({ xdomain: false });\n  return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (!hasXHR2 || forceBase64) {\n    this.supportsBinary = false;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n  this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n  var self = this;\n\n  this.readyState = 'pausing';\n\n  function pause () {\n\n    self.readyState = 'paused';\n    onPause();\n  }\n\n  if (this.polling || !this.writable) {\n    var total = 0;\n\n    if (this.polling) {\n\n      total++;\n      this.once('pollComplete', function () {\n\n        --total || pause();\n      });\n    }\n\n    if (!this.writable) {\n\n      total++;\n      this.once('drain', function () {\n\n        --total || pause();\n      });\n    }\n  } else {\n    pause();\n  }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n\n  this.polling = true;\n  this.doPoll();\n  this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n  var self = this;\n\n  var callback = function (packet, index, total) {\n    // if its the first message we consider the transport open\n    if ('opening' === self.readyState) {\n      self.onOpen();\n    }\n\n    // if its a close packet, we close the ongoing requests\n    if ('close' === packet.type) {\n      self.onClose();\n      return false;\n    }\n\n    // otherwise bypass onData and handle the message\n    self.onPacket(packet);\n  };\n\n  // decode payload\n  parser.decodePayload(data, this.socket.binaryType, callback);\n\n  // if an event did not trigger closing\n  if ('closed' !== this.readyState) {\n    // if we got data we're not polling\n    this.polling = false;\n    this.emit('pollComplete');\n\n    if ('open' === this.readyState) {\n      this.poll();\n    } else {\n\n    }\n  }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n  var self = this;\n\n  function close () {\n\n    self.write([{ type: 'close' }]);\n  }\n\n  if ('open' === this.readyState) {\n\n    close();\n  } else {\n    // in case we're trying to close while\n    // handshaking is in progress (GH-164)\n\n    this.once('open', close);\n  }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n  var callbackfn = function () {\n    self.writable = true;\n    self.emit('drain');\n  };\n\n  parser.encodePayload(packets, this.supportsBinary, function (data) {\n    self.doWrite(data, callbackfn);\n  });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'https' : 'http';\n  var port = '';\n\n  // cache busting is forced\n  if (false !== this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  if (!this.supportsBinary && !query.sid) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // avoid port if default for schema\n  if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n     ('http' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling.js\n// module id = 16\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n  this.path = opts.path;\n  this.hostname = opts.hostname;\n  this.port = opts.port;\n  this.secure = opts.secure;\n  this.query = opts.query;\n  this.timestampParam = opts.timestampParam;\n  this.timestampRequests = opts.timestampRequests;\n  this.readyState = '';\n  this.agent = opts.agent || false;\n  this.socket = opts.socket;\n  this.enablesXDR = opts.enablesXDR;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n  this.forceNode = opts.forceNode;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n  this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n  var err = new Error(msg);\n  err.type = 'TransportError';\n  err.description = desc;\n  this.emit('error', err);\n  return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n  if ('closed' === this.readyState || '' === this.readyState) {\n    this.readyState = 'opening';\n    this.doOpen();\n  }\n\n  return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.doClose();\n    this.onClose();\n  }\n\n  return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n  if ('open' === this.readyState) {\n    this.write(packets);\n  } else {\n    throw new Error('Transport not open');\n  }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n  this.readyState = 'open';\n  this.writable = true;\n  this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n  var packet = parser.decodePacket(data, this.socket.binaryType);\n  this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n  this.readyState = 'closed';\n  this.emit('close');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transport.js\n// module id = 17\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (global && global.ArrayBuffer) {\n  base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n    open:     0    // non-ws\n  , close:    1    // non-ws\n  , ping:     2\n  , pong:     3\n  , message:  4\n  , upgrade:  5\n  , noop:     6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n *     <packet type id> [ <data> ]\n *\n * Example:\n *\n *     5hello world\n *     3\n *     4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = false;\n  }\n\n  if (typeof utf8encode === 'function') {\n    callback = utf8encode;\n    utf8encode = null;\n  }\n\n  var data = (packet.data === undefined)\n    ? undefined\n    : packet.data.buffer || packet.data;\n\n  if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n    return encodeArrayBuffer(packet, supportsBinary, callback);\n  } else if (Blob && data instanceof global.Blob) {\n    return encodeBlob(packet, supportsBinary, callback);\n  }\n\n  // might be an object with { base64: true, data: dataAsBase64String }\n  if (data && data.base64) {\n    return encodeBase64Object(packet, callback);\n  }\n\n  // Sending data as a utf-8 string\n  var encoded = packets[packet.type];\n\n  // data fragment is optional\n  if (undefined !== packet.data) {\n    encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n  }\n\n  return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n  // packet data is an object { base64: true, data: dataAsBase64String }\n  var message = 'b' + exports.packets[packet.type] + packet.data.data;\n  return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var data = packet.data;\n  var contentArray = new Uint8Array(data);\n  var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n  resultBuffer[0] = packets[packet.type];\n  for (var i = 0; i < contentArray.length; i++) {\n    resultBuffer[i+1] = contentArray[i];\n  }\n\n  return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var fr = new FileReader();\n  fr.onload = function() {\n    packet.data = fr.result;\n    exports.encodePacket(packet, supportsBinary, true, callback);\n  };\n  return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  if (dontSendBlobs) {\n    return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n  }\n\n  var length = new Uint8Array(1);\n  length[0] = packets[packet.type];\n  var blob = new Blob([length.buffer, packet.data]);\n\n  return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n  var message = 'b' + exports.packets[packet.type];\n  if (Blob && packet.data instanceof global.Blob) {\n    var fr = new FileReader();\n    fr.onload = function() {\n      var b64 = fr.result.split(',')[1];\n      callback(message + b64);\n    };\n    return fr.readAsDataURL(packet.data);\n  }\n\n  var b64data;\n  try {\n    b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n  } catch (e) {\n    // iPhone Safari doesn't let you apply with typed arrays\n    var typed = new Uint8Array(packet.data);\n    var basic = new Array(typed.length);\n    for (var i = 0; i < typed.length; i++) {\n      basic[i] = typed[i];\n    }\n    b64data = String.fromCharCode.apply(null, basic);\n  }\n  message += global.btoa(b64data);\n  return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n  if (data === undefined) {\n    return err;\n  }\n  // String data\n  if (typeof data === 'string') {\n    if (data.charAt(0) === 'b') {\n      return exports.decodeBase64Packet(data.substr(1), binaryType);\n    }\n\n    if (utf8decode) {\n      data = tryDecode(data);\n      if (data === false) {\n        return err;\n      }\n    }\n    var type = data.charAt(0);\n\n    if (Number(type) != type || !packetslist[type]) {\n      return err;\n    }\n\n    if (data.length > 1) {\n      return { type: packetslist[type], data: data.substring(1) };\n    } else {\n      return { type: packetslist[type] };\n    }\n  }\n\n  var asArray = new Uint8Array(data);\n  var type = asArray[0];\n  var rest = sliceBuffer(data, 1);\n  if (Blob && binaryType === 'blob') {\n    rest = new Blob([rest]);\n  }\n  return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n  try {\n    data = utf8.decode(data, { strict: false });\n  } catch (e) {\n    return false;\n  }\n  return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n  var type = packetslist[msg.charAt(0)];\n  if (!base64encoder) {\n    return { type: type, data: { base64: true, data: msg.substr(1) } };\n  }\n\n  var data = base64encoder.decode(msg.substr(1));\n\n  if (binaryType === 'blob' && Blob) {\n    data = new Blob([data]);\n  }\n\n  return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n *     <length>:data\n *\n * Example:\n *\n *     11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = null;\n  }\n\n  var isBinary = hasBinary(packets);\n\n  if (supportsBinary && isBinary) {\n    if (Blob && !dontSendBlobs) {\n      return exports.encodePayloadAsBlob(packets, callback);\n    }\n\n    return exports.encodePayloadAsArrayBuffer(packets, callback);\n  }\n\n  if (!packets.length) {\n    return callback('0:');\n  }\n\n  function setLengthHeader(message) {\n    return message.length + ':' + message;\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n      doneCallback(null, setLengthHeader(message));\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(results.join(''));\n  });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n  var result = new Array(ary.length);\n  var next = after(ary.length, done);\n\n  var eachWithIndex = function(i, el, cb) {\n    each(el, function(error, msg) {\n      result[i] = msg;\n      cb(error, result);\n    });\n  };\n\n  for (var i = 0; i < ary.length; i++) {\n    eachWithIndex(i, ary[i], next);\n  }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n  if (typeof data !== 'string') {\n    return exports.decodePayloadAsBinary(data, binaryType, callback);\n  }\n\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var packet;\n  if (data === '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n  var length = '', n, msg;\n\n  for (var i = 0, l = data.length; i < l; i++) {\n    var chr = data.charAt(i);\n\n    if (chr !== ':') {\n      length += chr;\n      continue;\n    }\n\n    if (length === '' || (length != (n = Number(length)))) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    msg = data.substr(i + 1, n);\n\n    if (length != msg.length) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    if (msg.length) {\n      packet = exports.decodePacket(msg, binaryType, false);\n\n      if (err.type === packet.type && err.data === packet.data) {\n        // parser error in individual packet - ignoring payload\n        return callback(err, 0, 1);\n      }\n\n      var ret = callback(packet, i + n, l);\n      if (false === ret) return;\n    }\n\n    // advance cursor\n    i += n;\n    length = '';\n  }\n\n  if (length !== '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n * 255><data>\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n  if (!packets.length) {\n    return callback(new ArrayBuffer(0));\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(data) {\n      return doneCallback(null, data);\n    });\n  }\n\n  map(packets, encodeOne, function(err, encodedPackets) {\n    var totalLength = encodedPackets.reduce(function(acc, p) {\n      var len;\n      if (typeof p === 'string'){\n        len = p.length;\n      } else {\n        len = p.byteLength;\n      }\n      return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n    }, 0);\n\n    var resultArray = new Uint8Array(totalLength);\n\n    var bufferIndex = 0;\n    encodedPackets.forEach(function(p) {\n      var isString = typeof p === 'string';\n      var ab = p;\n      if (isString) {\n        var view = new Uint8Array(p.length);\n        for (var i = 0; i < p.length; i++) {\n          view[i] = p.charCodeAt(i);\n        }\n        ab = view.buffer;\n      }\n\n      if (isString) { // not true binary\n        resultArray[bufferIndex++] = 0;\n      } else { // true binary\n        resultArray[bufferIndex++] = 1;\n      }\n\n      var lenStr = ab.byteLength.toString();\n      for (var i = 0; i < lenStr.length; i++) {\n        resultArray[bufferIndex++] = parseInt(lenStr[i]);\n      }\n      resultArray[bufferIndex++] = 255;\n\n      var view = new Uint8Array(ab);\n      for (var i = 0; i < view.length; i++) {\n        resultArray[bufferIndex++] = view[i];\n      }\n    });\n\n    return callback(resultArray.buffer);\n  });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(encoded) {\n      var binaryIdentifier = new Uint8Array(1);\n      binaryIdentifier[0] = 1;\n      if (typeof encoded === 'string') {\n        var view = new Uint8Array(encoded.length);\n        for (var i = 0; i < encoded.length; i++) {\n          view[i] = encoded.charCodeAt(i);\n        }\n        encoded = view.buffer;\n        binaryIdentifier[0] = 0;\n      }\n\n      var len = (encoded instanceof ArrayBuffer)\n        ? encoded.byteLength\n        : encoded.size;\n\n      var lenStr = len.toString();\n      var lengthAry = new Uint8Array(lenStr.length + 1);\n      for (var i = 0; i < lenStr.length; i++) {\n        lengthAry[i] = parseInt(lenStr[i]);\n      }\n      lengthAry[lenStr.length] = 255;\n\n      if (Blob) {\n        var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n        doneCallback(null, blob);\n      }\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(new Blob(results));\n  });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var bufferTail = data;\n  var buffers = [];\n\n  while (bufferTail.byteLength > 0) {\n    var tailArray = new Uint8Array(bufferTail);\n    var isString = tailArray[0] === 0;\n    var msgLength = '';\n\n    for (var i = 1; ; i++) {\n      if (tailArray[i] === 255) break;\n\n      // 310 = char length of Number.MAX_VALUE\n      if (msgLength.length > 310) {\n        return callback(err, 0, 1);\n      }\n\n      msgLength += tailArray[i];\n    }\n\n    bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n    msgLength = parseInt(msgLength);\n\n    var msg = sliceBuffer(bufferTail, 0, msgLength);\n    if (isString) {\n      try {\n        msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n      } catch (e) {\n        // iPhone Safari doesn't let you apply to typed arrays\n        var typed = new Uint8Array(msg);\n        msg = '';\n        for (var i = 0; i < typed.length; i++) {\n          msg += String.fromCharCode(typed[i]);\n        }\n      }\n    }\n\n    buffers.push(msg);\n    bufferTail = sliceBuffer(bufferTail, msgLength);\n  }\n\n  var total = buffers.length;\n  buffers.forEach(function(buffer, i) {\n    callback(exports.decodePacket(buffer, binaryType, true), i, total);\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/browser.js\n// module id = 18\n// module chunks = 0","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n  var arr = [];\n  var has = Object.prototype.hasOwnProperty;\n\n  for (var i in obj) {\n    if (has.call(obj, i)) {\n      arr.push(i);\n    }\n  }\n  return arr;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/keys.js\n// module id = 19\n// module chunks = 0","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n  if (!obj || typeof obj !== 'object') {\n    return false;\n  }\n\n  if (isArray(obj)) {\n    for (var i = 0, l = obj.length; i < l; i++) {\n      if (hasBinary(obj[i])) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  if ((typeof global.Buffer === 'function' && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) ||\n     (typeof global.ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n     (withNativeBlob && obj instanceof Blob) ||\n     (withNativeFile && obj instanceof File)\n    ) {\n    return true;\n  }\n\n  // see: https://github.com/Automattic/has-binary/pull/4\n  if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n    return hasBinary(obj.toJSON(), true);\n  }\n\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/has-binary2/index.js\n// module id = 20\n// module chunks = 0","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n  var bytes = arraybuffer.byteLength;\n  start = start || 0;\n  end = end || bytes;\n\n  if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n  if (start < 0) { start += bytes; }\n  if (end < 0) { end += bytes; }\n  if (end > bytes) { end = bytes; }\n\n  if (start >= bytes || start >= end || bytes === 0) {\n    return new ArrayBuffer(0);\n  }\n\n  var abv = new Uint8Array(arraybuffer);\n  var result = new Uint8Array(end - start);\n  for (var i = start, ii = 0; i < end; i++, ii++) {\n    result[ii] = abv[i];\n  }\n  return result.buffer;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/arraybuffer.slice/index.js\n// module id = 21\n// module chunks = 0","module.exports = after\n\nfunction after(count, callback, err_cb) {\n    var bail = false\n    err_cb = err_cb || noop\n    proxy.count = count\n\n    return (count === 0) ? callback() : proxy\n\n    function proxy(err, result) {\n        if (proxy.count <= 0) {\n            throw new Error('after called too many times')\n        }\n        --proxy.count\n\n        // after first error, rest are passed to err_cb\n        if (err) {\n            bail = true\n            callback(err)\n            // future error callbacks will go to error handler\n            callback = err_cb\n        } else if (proxy.count === 0 && !bail) {\n            callback(null, result)\n        }\n    }\n}\n\nfunction noop() {}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/after/index.js\n// module id = 22\n// module chunks = 0","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint, strict) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tif (strict) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t\t' is not a scalar value'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint, strict) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\t\tcodePoint = 0xFFFD;\n\t\t\t}\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol(strict) {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.1.2',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/utf8.js\n// module id = 23\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 24\n// module chunks = 0","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n  \"use strict\";\n\n  var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n  // Use a lookup table to find the index.\n  var lookup = new Uint8Array(256);\n  for (var i = 0; i < chars.length; i++) {\n    lookup[chars.charCodeAt(i)] = i;\n  }\n\n  exports.encode = function(arraybuffer) {\n    var bytes = new Uint8Array(arraybuffer),\n    i, len = bytes.length, base64 = \"\";\n\n    for (i = 0; i < len; i+=3) {\n      base64 += chars[bytes[i] >> 2];\n      base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n      base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n      base64 += chars[bytes[i + 2] & 63];\n    }\n\n    if ((len % 3) === 2) {\n      base64 = base64.substring(0, base64.length - 1) + \"=\";\n    } else if (len % 3 === 1) {\n      base64 = base64.substring(0, base64.length - 2) + \"==\";\n    }\n\n    return base64;\n  };\n\n  exports.decode =  function(base64) {\n    var bufferLength = base64.length * 0.75,\n    len = base64.length, i, p = 0,\n    encoded1, encoded2, encoded3, encoded4;\n\n    if (base64[base64.length - 1] === \"=\") {\n      bufferLength--;\n      if (base64[base64.length - 2] === \"=\") {\n        bufferLength--;\n      }\n    }\n\n    var arraybuffer = new ArrayBuffer(bufferLength),\n    bytes = new Uint8Array(arraybuffer);\n\n    for (i = 0; i < len; i+=4) {\n      encoded1 = lookup[base64.charCodeAt(i)];\n      encoded2 = lookup[base64.charCodeAt(i+1)];\n      encoded3 = lookup[base64.charCodeAt(i+2)];\n      encoded4 = lookup[base64.charCodeAt(i+3)];\n\n      bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n      bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n      bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n\n    return arraybuffer;\n  };\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/base64-arraybuffer/lib/base64-arraybuffer.js\n// module id = 25\n// module chunks = 0","/**\n * Create a blob builder even when vendor prefixes exist\n */\n\nvar BlobBuilder = global.BlobBuilder\n  || global.WebKitBlobBuilder\n  || global.MSBlobBuilder\n  || global.MozBlobBuilder;\n\n/**\n * Check if Blob constructor is supported\n */\n\nvar blobSupported = (function() {\n  try {\n    var a = new Blob(['hi']);\n    return a.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if Blob constructor supports ArrayBufferViews\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\n */\n\nvar blobSupportsArrayBufferView = blobSupported && (function() {\n  try {\n    var b = new Blob([new Uint8Array([1,2])]);\n    return b.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if BlobBuilder is supported\n */\n\nvar blobBuilderSupported = BlobBuilder\n  && BlobBuilder.prototype.append\n  && BlobBuilder.prototype.getBlob;\n\n/**\n * Helper function that maps ArrayBufferViews to ArrayBuffers\n * Used by BlobBuilder constructor and old browsers that didn't\n * support it in the Blob constructor.\n */\n\nfunction mapArrayBufferViews(ary) {\n  for (var i = 0; i < ary.length; i++) {\n    var chunk = ary[i];\n    if (chunk.buffer instanceof ArrayBuffer) {\n      var buf = chunk.buffer;\n\n      // if this is a subarray, make a copy so we only\n      // include the subarray region from the underlying buffer\n      if (chunk.byteLength !== buf.byteLength) {\n        var copy = new Uint8Array(chunk.byteLength);\n        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n        buf = copy.buffer;\n      }\n\n      ary[i] = buf;\n    }\n  }\n}\n\nfunction BlobBuilderConstructor(ary, options) {\n  options = options || {};\n\n  var bb = new BlobBuilder();\n  mapArrayBufferViews(ary);\n\n  for (var i = 0; i < ary.length; i++) {\n    bb.append(ary[i]);\n  }\n\n  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n};\n\nfunction BlobConstructor(ary, options) {\n  mapArrayBufferViews(ary);\n  return new Blob(ary, options || {});\n};\n\nmodule.exports = (function() {\n  if (blobSupported) {\n    return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n  } else if (blobBuilderSupported) {\n    return BlobBuilderConstructor;\n  } else {\n    return undefined;\n  }\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/blob/index.js\n// module id = 26\n// module chunks = 0","/**\r\n * Compiles a querystring\r\n * Returns string representation of the object\r\n *\r\n * @param {Object}\r\n * @api private\r\n */\r\n\r\nexports.encode = function (obj) {\r\n  var str = '';\r\n\r\n  for (var i in obj) {\r\n    if (obj.hasOwnProperty(i)) {\r\n      if (str.length) str += '&';\r\n      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n    }\r\n  }\r\n\r\n  return str;\r\n};\r\n\r\n/**\r\n * Parses a simple querystring into an object\r\n *\r\n * @param {String} qs\r\n * @api private\r\n */\r\n\r\nexports.decode = function(qs){\r\n  var qry = {};\r\n  var pairs = qs.split('&');\r\n  for (var i = 0, l = pairs.length; i < l; i++) {\r\n    var pair = pairs[i].split('=');\r\n    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n  }\r\n  return qry;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/parseqs/index.js\n// module id = 27\n// module chunks = 0","\nmodule.exports = function(a, b){\n  var fn = function(){};\n  fn.prototype = b.prototype;\n  a.prototype = new fn;\n  a.prototype.constructor = a;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-inherit/index.js\n// module id = 28\n// module chunks = 0","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n  , length = 64\n  , map = {}\n  , seed = 0\n  , i = 0\n  , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n  var encoded = '';\n\n  do {\n    encoded = alphabet[num % length] + encoded;\n    num = Math.floor(num / length);\n  } while (num > 0);\n\n  return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n  var decoded = 0;\n\n  for (i = 0; i < str.length; i++) {\n    decoded = decoded * length + map[str.charAt(i)];\n  }\n\n  return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n  var now = encode(+new Date());\n\n  if (now !== prev) return seed = 0, prev = now;\n  return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/yeast/index.js\n// module id = 29\n// module chunks = 0","\n/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n  Polling.call(this, opts);\n\n  this.query = this.query || {};\n\n  // define global callbacks array if not present\n  // we do this here (lazily) to avoid unneeded global pollution\n  if (!callbacks) {\n    // we need to consider multiple engines in the same page\n    if (!global.___eio) global.___eio = [];\n    callbacks = global.___eio;\n  }\n\n  // callback identifier\n  this.index = callbacks.length;\n\n  // add callback to jsonp global\n  var self = this;\n  callbacks.push(function (msg) {\n    self.onData(msg);\n  });\n\n  // append to query string\n  this.query.j = this.index;\n\n  // prevent spurious errors from being emitted when the window is unloaded\n  if (global.document && global.addEventListener) {\n    global.addEventListener('beforeunload', function () {\n      if (self.script) self.script.onerror = empty;\n    }, false);\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  if (this.form) {\n    this.form.parentNode.removeChild(this.form);\n    this.form = null;\n    this.iframe = null;\n  }\n\n  Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n  var self = this;\n  var script = document.createElement('script');\n\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  script.async = true;\n  script.src = this.uri();\n  script.onerror = function (e) {\n    self.onError('jsonp poll error', e);\n  };\n\n  var insertAt = document.getElementsByTagName('script')[0];\n  if (insertAt) {\n    insertAt.parentNode.insertBefore(script, insertAt);\n  } else {\n    (document.head || document.body).appendChild(script);\n  }\n  this.script = script;\n\n  var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n  if (isUAgecko) {\n    setTimeout(function () {\n      var iframe = document.createElement('iframe');\n      document.body.appendChild(iframe);\n      document.body.removeChild(iframe);\n    }, 100);\n  }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n  var self = this;\n\n  if (!this.form) {\n    var form = document.createElement('form');\n    var area = document.createElement('textarea');\n    var id = this.iframeId = 'eio_iframe_' + this.index;\n    var iframe;\n\n    form.className = 'socketio';\n    form.style.position = 'absolute';\n    form.style.top = '-1000px';\n    form.style.left = '-1000px';\n    form.target = id;\n    form.method = 'POST';\n    form.setAttribute('accept-charset', 'utf-8');\n    area.name = 'd';\n    form.appendChild(area);\n    document.body.appendChild(form);\n\n    this.form = form;\n    this.area = area;\n  }\n\n  this.form.action = this.uri();\n\n  function complete () {\n    initIframe();\n    fn();\n  }\n\n  function initIframe () {\n    if (self.iframe) {\n      try {\n        self.form.removeChild(self.iframe);\n      } catch (e) {\n        self.onError('jsonp polling iframe removal error', e);\n      }\n    }\n\n    try {\n      // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n      var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n      iframe = document.createElement(html);\n    } catch (e) {\n      iframe = document.createElement('iframe');\n      iframe.name = self.iframeId;\n      iframe.src = 'javascript:0';\n    }\n\n    iframe.id = self.iframeId;\n\n    self.form.appendChild(iframe);\n    self.iframe = iframe;\n  }\n\n  initIframe();\n\n  // escape \\n to prevent it from being converted into \\r\\n by some UAs\n  // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n  data = data.replace(rEscapedNewline, '\\\\\\n');\n  this.area.value = data.replace(rNewline, '\\\\n');\n\n  try {\n    this.form.submit();\n  } catch (e) {}\n\n  if (this.iframe.attachEvent) {\n    this.iframe.onreadystatechange = function () {\n      if (self.iframe.readyState === 'complete') {\n        complete();\n      }\n    };\n  } else {\n    this.iframe.onload = complete;\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling-jsonp.js\n// module id = 30\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parser = require('engine.io-parser');\nvar parseqs = require('parseqs');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:websocket');\nvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\nvar NodeWebSocket;\nif (typeof window === 'undefined') {\n  try {\n    NodeWebSocket = require('ws');\n  } catch (e) { }\n}\n\n/**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */\n\nvar WebSocket = BrowserWebSocket;\nif (!WebSocket && typeof window === 'undefined') {\n  WebSocket = NodeWebSocket;\n}\n\n/**\n * Module exports.\n */\n\nmodule.exports = WS;\n\n/**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n\nfunction WS (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (forceBase64) {\n    this.supportsBinary = false;\n  }\n  this.perMessageDeflate = opts.perMessageDeflate;\n  this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n  this.protocols = opts.protocols;\n  if (!this.usingBrowserWebSocket) {\n    WebSocket = NodeWebSocket;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(WS, Transport);\n\n/**\n * Transport name.\n *\n * @api public\n */\n\nWS.prototype.name = 'websocket';\n\n/*\n * WebSockets support binary\n */\n\nWS.prototype.supportsBinary = true;\n\n/**\n * Opens socket.\n *\n * @api private\n */\n\nWS.prototype.doOpen = function () {\n  if (!this.check()) {\n    // let probe timeout\n    return;\n  }\n\n  var uri = this.uri();\n  var protocols = this.protocols;\n  var opts = {\n    agent: this.agent,\n    perMessageDeflate: this.perMessageDeflate\n  };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  if (this.extraHeaders) {\n    opts.headers = this.extraHeaders;\n  }\n  if (this.localAddress) {\n    opts.localAddress = this.localAddress;\n  }\n\n  try {\n    this.ws = this.usingBrowserWebSocket ? (protocols ? new WebSocket(uri, protocols) : new WebSocket(uri)) : new WebSocket(uri, protocols, opts);\n  } catch (err) {\n    return this.emit('error', err);\n  }\n\n  if (this.ws.binaryType === undefined) {\n    this.supportsBinary = false;\n  }\n\n  if (this.ws.supports && this.ws.supports.binary) {\n    this.supportsBinary = true;\n    this.ws.binaryType = 'nodebuffer';\n  } else {\n    this.ws.binaryType = 'arraybuffer';\n  }\n\n  this.addEventListeners();\n};\n\n/**\n * Adds event listeners to the socket\n *\n * @api private\n */\n\nWS.prototype.addEventListeners = function () {\n  var self = this;\n\n  this.ws.onopen = function () {\n    self.onOpen();\n  };\n  this.ws.onclose = function () {\n    self.onClose();\n  };\n  this.ws.onmessage = function (ev) {\n    self.onData(ev.data);\n  };\n  this.ws.onerror = function (e) {\n    self.onError('websocket error', e);\n  };\n};\n\n/**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n\nWS.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n\n  // encodePacket efficient as it uses WS framing\n  // no need for encodePayload\n  var total = packets.length;\n  for (var i = 0, l = total; i < l; i++) {\n    (function (packet) {\n      parser.encodePacket(packet, self.supportsBinary, function (data) {\n        if (!self.usingBrowserWebSocket) {\n          // always create a new object (GH-437)\n          var opts = {};\n          if (packet.options) {\n            opts.compress = packet.options.compress;\n          }\n\n          if (self.perMessageDeflate) {\n            var len = 'string' === typeof data ? global.Buffer.byteLength(data) : data.length;\n            if (len < self.perMessageDeflate.threshold) {\n              opts.compress = false;\n            }\n          }\n        }\n\n        // Sometimes the websocket has already been closed but the browser didn't\n        // have a chance of informing us about it yet, in that case send will\n        // throw an error\n        try {\n          if (self.usingBrowserWebSocket) {\n            // TypeError is thrown when passing the second argument on Safari\n            self.ws.send(data);\n          } else {\n            self.ws.send(data, opts);\n          }\n        } catch (e) {\n\n        }\n\n        --total || done();\n      });\n    })(packets[i]);\n  }\n\n  function done () {\n    self.emit('flush');\n\n    // fake drain\n    // defer to next tick to allow Socket to clear writeBuffer\n    setTimeout(function () {\n      self.writable = true;\n      self.emit('drain');\n    }, 0);\n  }\n};\n\n/**\n * Called upon close\n *\n * @api private\n */\n\nWS.prototype.onClose = function () {\n  Transport.prototype.onClose.call(this);\n};\n\n/**\n * Closes socket.\n *\n * @api private\n */\n\nWS.prototype.doClose = function () {\n  if (typeof this.ws !== 'undefined') {\n    this.ws.close();\n  }\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nWS.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'wss' : 'ws';\n  var port = '';\n\n  // avoid port if default for schema\n  if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n    ('ws' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // append timestamp to URI\n  if (this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  // communicate binary support capabilities\n  if (!this.supportsBinary) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n/**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n\nWS.prototype.check = function () {\n  return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/websocket.js\n// module id = 31\n// module chunks = 0","/* (ignored) */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ws (ignored)\n// module id = 32\n// module chunks = 0","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n  if (indexOf) return arr.indexOf(obj);\n  for (var i = 0; i < arr.length; ++i) {\n    if (arr[i] === obj) return i;\n  }\n  return -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/indexof/index.js\n// module id = 33\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\nvar hasBin = require('has-binary2');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n  connect: 1,\n  connect_error: 1,\n  connect_timeout: 1,\n  connecting: 1,\n  disconnect: 1,\n  error: 1,\n  reconnect: 1,\n  reconnect_attempt: 1,\n  reconnect_failed: 1,\n  reconnect_error: 1,\n  reconnecting: 1,\n  ping: 1,\n  pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n  this.io = io;\n  this.nsp = nsp;\n  this.json = this; // compat\n  this.ids = 0;\n  this.acks = {};\n  this.receiveBuffer = [];\n  this.sendBuffer = [];\n  this.connected = false;\n  this.disconnected = true;\n  this.flags = {};\n  if (opts && opts.query) {\n    this.query = opts.query;\n  }\n  if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n  if (this.subs) return;\n\n  var io = this.io;\n  this.subs = [\n    on(io, 'open', bind(this, 'onopen')),\n    on(io, 'packet', bind(this, 'onpacket')),\n    on(io, 'close', bind(this, 'onclose'))\n  ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n  if (this.connected) return this;\n\n  this.subEvents();\n  this.io.open(); // ensure open\n  if ('open' === this.io.readyState) this.onopen();\n  this.emit('connecting');\n  return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n  var args = toArray(arguments);\n  args.unshift('message');\n  this.emit.apply(this, args);\n  return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n  if (events.hasOwnProperty(ev)) {\n    emit.apply(this, arguments);\n    return this;\n  }\n\n  var args = toArray(arguments);\n  var packet = {\n    type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n    data: args\n  };\n\n  packet.options = {};\n  packet.options.compress = !this.flags || false !== this.flags.compress;\n\n  // event ack callback\n  if ('function' === typeof args[args.length - 1]) {\n\n    this.acks[this.ids] = args.pop();\n    packet.id = this.ids++;\n  }\n\n  if (this.connected) {\n    this.packet(packet);\n  } else {\n    this.sendBuffer.push(packet);\n  }\n\n  this.flags = {};\n\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n  packet.nsp = this.nsp;\n  this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n\n\n  // write connect packet if necessary\n  if ('/' !== this.nsp) {\n    if (this.query) {\n      var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n\n      this.packet({type: parser.CONNECT, query: query});\n    } else {\n      this.packet({type: parser.CONNECT});\n    }\n  }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n\n  this.connected = false;\n  this.disconnected = true;\n  delete this.id;\n  this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n  var sameNamespace = packet.nsp === this.nsp;\n  var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\n  if (!sameNamespace && !rootNamespaceError) return;\n\n  switch (packet.type) {\n    case parser.CONNECT:\n      this.onconnect();\n      break;\n\n    case parser.EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.BINARY_EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.ACK:\n      this.onack(packet);\n      break;\n\n    case parser.BINARY_ACK:\n      this.onack(packet);\n      break;\n\n    case parser.DISCONNECT:\n      this.ondisconnect();\n      break;\n\n    case parser.ERROR:\n      this.emit('error', packet.data);\n      break;\n  }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n  var args = packet.data || [];\n\n\n  if (null != packet.id) {\n\n    args.push(this.ack(packet.id));\n  }\n\n  if (this.connected) {\n    emit.apply(this, args);\n  } else {\n    this.receiveBuffer.push(args);\n  }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n  var self = this;\n  var sent = false;\n  return function () {\n    // prevent double callbacks\n    if (sent) return;\n    sent = true;\n    var args = toArray(arguments);\n\n\n    self.packet({\n      type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n      id: id,\n      data: args\n    });\n  };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n  var ack = this.acks[packet.id];\n  if ('function' === typeof ack) {\n\n    ack.apply(this, packet.data);\n    delete this.acks[packet.id];\n  } else {\n\n  }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n  this.connected = true;\n  this.disconnected = false;\n  this.emit('connect');\n  this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n  var i;\n  for (i = 0; i < this.receiveBuffer.length; i++) {\n    emit.apply(this, this.receiveBuffer[i]);\n  }\n  this.receiveBuffer = [];\n\n  for (i = 0; i < this.sendBuffer.length; i++) {\n    this.packet(this.sendBuffer[i]);\n  }\n  this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n\n  this.destroy();\n  this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n  if (this.subs) {\n    // clean subscriptions to avoid reconnections\n    for (var i = 0; i < this.subs.length; i++) {\n      this.subs[i].destroy();\n    }\n    this.subs = null;\n  }\n\n  this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n  if (this.connected) {\n\n    this.packet({ type: parser.DISCONNECT });\n  }\n\n  // remove socket from pool\n  this.destroy();\n\n  if (this.connected) {\n    // fire events\n    this.onclose('io client disconnect');\n  }\n  return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n  this.flags.compress = compress;\n  return this;\n};\n\n/**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.binary = function (binary) {\n  this.flags.binary = binary;\n  return this;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/socket.js","module.exports = toArray\n\nfunction toArray(list, index) {\n    var array = []\n\n    index = index || 0\n\n    for (var i = index || 0; i < list.length; i++) {\n        array[i - index] = list[i]\n    }\n\n    return array\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/to-array/index.js\n// module id = 35\n// module chunks = 0","\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n  obj.on(ev, fn);\n  return {\n    destroy: function () {\n      obj.removeListener(ev, fn);\n    }\n  };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/on.js","/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(obj, fn){\n  if ('string' == typeof fn) fn = obj[fn];\n  if ('function' != typeof fn) throw new Error('bind() requires a function');\n  var args = slice.call(arguments, 2);\n  return function(){\n    return fn.apply(obj, args.concat(slice.call(arguments)));\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-bind/index.js\n// module id = 37\n// module chunks = 0","\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n  opts = opts || {};\n  this.ms = opts.min || 100;\n  this.max = opts.max || 10000;\n  this.factor = opts.factor || 2;\n  this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n  this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n  var ms = this.ms * Math.pow(this.factor, this.attempts++);\n  if (this.jitter) {\n    var rand =  Math.random();\n    var deviation = Math.floor(rand * this.jitter * ms);\n    ms = (Math.floor(rand * 10) & 1) == 0  ? ms - deviation : ms + deviation;\n  }\n  return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n  this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n  this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n  this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n  this.jitter = jitter;\n};\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/backo2/index.js\n// module id = 38\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.js-5- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.js:6:!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.io=e():t.io=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t,e){"object"===("undefined"==typeof t?"undefined":o(t))&&(e=t,t=void 0),e=e||{};var n,r=i(t),s=r.source,p=r.id,h=r.path,f=u[p]&&h in u[p].nsps,l=e.forceNew||e["force new connection"]||!1===e.multiplex||f;return l?(c("ignoring socket cache for %s",s),n=a(s,e)):(u[p]||(c("new io instance for %s",s),u[p]=a(s,e)),n=u[p]),r.query&&!e.query&&(e.query=r.query),n.socket(r.path,e)}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(1),s=n(7),a=n(12),c=n(3)("socket.io-client");t.exports=e=r;var u=e.managers={};e.protocol=s.protocol,e.connect=r,e.Manager=n(12),e.Socket=n(37)},function(t,e,n){(function(e){"use strict";function r(t,n){var r=t;n=n||e.location,null==t&&(t=n.protocol+"//"+n.host),"string"==typeof t&&("/"===t.charAt(0)&&(t="/"===t.charAt(1)?n.protocol+t:n.host+t),/^(https?|wss?):\/\//.test(t)||(i("protocol-less url %s",t),t="undefined"!=typeof n?n.protocol+"//"+t:"https://"+t),i("parse %s",t),r=o(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";var s=r.host.indexOf(":")!==-1,a=s?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+a+":"+r.port,r.href=r.protocol+"://"+a+(n&&n.port===r.port?"":":"+r.port),r}var o=n(2),i=n(3)("socket.io-client:url");t.exports=r}).call(e,function(){return this}())},function(t,e){var n=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,r=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];t.exports=function(t){var e=t,o=t.indexOf("["),i=t.indexOf("]");o!=-1&&i!=-1&&(t=t.substring(0,o)+t.substring(o,i).replace(/:/g,";")+t.substring(i,t.length));for(var s=n.exec(t||""),a={},c=14;c--;)a[r[c]]=s[c]||"";return o!=-1&&i!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a}},function(t,e,n){(function(r){function o(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function i(t){var n=this.useColors;if(t[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+t[0]+(n?"%c ":" ")+"+"+e.humanize(this.diff),n){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var o=0,i=0;t[0].replace(/%[a-zA-Z%]/g,function(t){"%%"!==t&&(o++,"%c"===t&&(i=o))}),t.splice(i,0,r)}}function s(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(t){try{null==t?e.storage.removeItem("debug"):e.storage.debug=t}catch(n){}}function c(){var t;try{t=e.storage.debug}catch(n){}return!t&&"undefined"!=typeof r&&"env"in r&&(t=r.env.DEBUG),t}function u(){try{return window.localStorage}catch(t){}}e=t.exports=n(5),e.log=s,e.formatArgs=i,e.save=a,e.load=c,e.useColors=o,e.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:u(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},e.enable(c())}).call(e,n(4))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(t){if(p===setTimeout)return setTimeout(t,0);if((p===n||!p)&&setTimeout)return p=setTimeout,setTimeout(t,0);try{return p(t,0)}catch(e){try{return p.call(null,t,0)}catch(e){return p.call(this,t,0)}}}function i(t){if(h===clearTimeout)return clearTimeout(t);if((h===r||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(t);try{return h(t)}catch(e){try{return h.call(null,t)}catch(e){return h.call(this,t)}}}function s(){y&&l&&(y=!1,l.length?d=l.concat(d):m=-1,d.length&&a())}function a(){if(!y){var t=o(s);y=!0;for(var e=d.length;e;){for(l=d,d=[];++m<e;)l&&l[m].run();m=-1,e=d.length}l=null,y=!1,i(t)}}function c(t,e){this.fun=t,this.array=e}function u(){}var p,h,f=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:n}catch(t){p=n}try{h="function"==typeof clearTimeout?clearTimeout:r}catch(t){h=r}}();var l,d=[],y=!1,m=-1;f.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];d.push(new c(t,e)),1!==d.length||y||o(a)},c.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=u,f.addListener=u,f.once=u,f.off=u,f.removeListener=u,f.removeAllListeners=u,f.emit=u,f.prependListener=u,f.prependOnceListener=u,f.listeners=function(t){return[]},f.binding=function(t){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(t){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},function(t,e,n){function r(t){var n,r=0;for(n in t)r=(r<<5)-r+t.charCodeAt(n),r|=0;return e.colors[Math.abs(r)%e.colors.length]}function o(t){function n(){if(n.enabled){var t=n,r=+new Date,i=r-(o||r);t.diff=i,t.prev=o,t.curr=r,o=r;for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];s[0]=e.coerce(s[0]),"string"!=typeof s[0]&&s.unshift("%O");var c=0;s[0]=s[0].replace(/%([a-zA-Z%])/g,function(n,r){if("%%"===n)return n;c++;var o=e.formatters[r];if("function"==typeof o){var i=s[c];n=o.call(t,i),s.splice(c,1),c--}return n}),e.formatArgs.call(t,s);var u=n.log||e.log||console.log.bind(console);u.apply(t,s)}}var o;return n.namespace=t,n.enabled=e.enabled(t),n.useColors=e.useColors(),n.color=r(t),n.destroy=i,"function"==typeof e.init&&e.init(n),e.instances.push(n),n}function i(){var t=e.instances.indexOf(this);return t!==-1&&(e.instances.splice(t,1),!0)}function s(t){e.save(t),e.names=[],e.skips=[];var n,r=("string"==typeof t?t:"").split(/[\s,]+/),o=r.length;for(n=0;n<o;n++)r[n]&&(t=r[n].replace(/\*/g,".*?"),"-"===t[0]?e.skips.push(new RegExp("^"+t.substr(1)+"$")):e.names.push(new RegExp("^"+t+"$")));for(n=0;n<e.instances.length;n++){var i=e.instances[n];i.enabled=e.enabled(i.namespace)}}function a(){e.enable("")}function c(t){if("*"===t[t.length-1])return!0;var n,r;for(n=0,r=e.skips.length;n<r;n++)if(e.skips[n].test(t))return!1;for(n=0,r=e.names.length;n<r;n++)if(e.names[n].test(t))return!0;return!1}function u(t){return t instanceof Error?t.stack||t.message:t}e=t.exports=o.debug=o["default"]=o,e.coerce=u,e.disable=a,e.enable=s,e.enabled=c,e.humanize=n(6),e.instances=[],e.names=[],e.skips=[],e.formatters={}},function(t,e){function n(t){if(t=String(t),!(t.length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*p;case"days":case"day":case"d":return n*u;case"hours":case"hour":case"hrs":case"hr":case"h":return n*c;case"minutes":case"minute":case"mins":case"min":case"m":return n*a;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function r(t){return t>=u?Math.round(t/u)+"d":t>=c?Math.round(t/c)+"h":t>=a?Math.round(t/a)+"m":t>=s?Math.round(t/s)+"s":t+"ms"}function o(t){return i(t,u,"day")||i(t,c,"hour")||i(t,a,"minute")||i(t,s,"second")||t+" ms"}function i(t,e,n){if(!(t<e))return t<1.5*e?Math.floor(t/e)+" "+n:Math.ceil(t/e)+" "+n+"s"}var s=1e3,a=60*s,c=60*a,u=24*c,p=365.25*u;t.exports=function(t,e){e=e||{};var i=typeof t;if("string"===i&&t.length>0)return n(t);if("number"===i&&isNaN(t)===!1)return e["long"]?o(t):r(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},function(t,e,n){function r(){}function o(t){var n=""+t.type;if(e.BINARY_EVENT!==t.type&&e.BINARY_ACK!==t.type||(n+=t.attachments+"-"),t.nsp&&"/"!==t.nsp&&(n+=t.nsp+","),null!=t.id&&(n+=t.id),null!=t.data){var r=i(t.data);if(r===!1)return g;n+=r}return f("encoded %j as %s",t,n),n}function i(t){try{return JSON.stringify(t)}catch(e){return!1}}function s(t,e){function n(t){var n=d.deconstructPacket(t),r=o(n.packet),i=n.buffers;i.unshift(r),e(i)}d.removeBlobs(t,n)}function a(){this.reconstructor=null}function c(t){var n=0,r={type:Number(t.charAt(0))};if(null==e.types[r.type])return h("unknown packet type "+r.type);if(e.BINARY_EVENT===r.type||e.BINARY_ACK===r.type){for(var o="";"-"!==t.charAt(++n)&&(o+=t.charAt(n),n!=t.length););if(o!=Number(o)||"-"!==t.charAt(n))throw new Error("Illegal attachments");r.attachments=Number(o)}if("/"===t.charAt(n+1))for(r.nsp="";++n;){var i=t.charAt(n);if(","===i)break;if(r.nsp+=i,n===t.length)break}else r.nsp="/";var s=t.charAt(n+1);if(""!==s&&Number(s)==s){for(r.id="";++n;){var i=t.charAt(n);if(null==i||Number(i)!=i){--n;break}if(r.id+=t.charAt(n),n===t.length)break}r.id=Number(r.id)}if(t.charAt(++n)){var a=u(t.substr(n)),c=a!==!1&&(r.type===e.ERROR||y(a));if(!c)return h("invalid payload");r.data=a}return f("decoded %s as %j",t,r),r}function u(t){try{return JSON.parse(t)}catch(e){return!1}}function p(t){this.reconPack=t,this.buffers=[]}function h(t){return{type:e.ERROR,data:"parser error: "+t}}var f=n(3)("socket.io-parser"),l=n(8),d=n(9),y=n(10),m=n(11);e.protocol=4,e.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],e.CONNECT=0,e.DISCONNECT=1,e.EVENT=2,e.ACK=3,e.ERROR=4,e.BINARY_EVENT=5,e.BINARY_ACK=6,e.Encoder=r,e.Decoder=a;var g=e.ERROR+'"encode error"';r.prototype.encode=function(t,n){if(f("encoding packet %j",t),e.BINARY_EVENT===t.type||e.BINARY_ACK===t.type)s(t,n);else{var r=o(t);n([r])}},l(a.prototype),a.prototype.add=function(t){var n;if("string"==typeof t)n=c(t),e.BINARY_EVENT===n.type||e.BINARY_ACK===n.type?(this.reconstructor=new p(n),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",n)):this.emit("decoded",n);else{if(!m(t)&&!t.base64)throw new Error("Unknown type: "+t);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,this.emit("decoded",n))}},a.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},p.prototype.takeBinaryData=function(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){var e=d.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null},p.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(t,e,n){function r(t){if(t)return o(t)}function o(t){for(var e in r.prototype)t[e]=r.prototype[e];return t}t.exports=r,r.prototype.on=r.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},r.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks["$"+t];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var r,o=0;o<n.length;o++)if(r=n[o],r===e||r.fn===e){n.splice(o,1);break}return this},r.prototype.emit=function(t){this._callbacks=this._callbacks||{};var e=[].slice.call(arguments,1),n=this._callbacks["$"+t];if(n){n=n.slice(0);for(var r=0,o=n.length;r<o;++r)n[r].apply(this,e)}return this},r.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks["$"+t]||[]},r.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,n){(function(t){function r(t,e){if(!t)return t;if(s(t)){var n={_placeholder:!0,num:e.length};return e.push(t),n}if(i(t)){for(var o=new Array(t.length),a=0;a<t.length;a++)o[a]=r(t[a],e);return o}if("object"==typeof t&&!(t instanceof Date)){var o={};for(var c in t)o[c]=r(t[c],e);return o}return t}function o(t,e){if(!t)return t;if(t&&t._placeholder)return e[t.num];if(i(t))for(var n=0;n<t.length;n++)t[n]=o(t[n],e);else if("object"==typeof t)for(var r in t)t[r]=o(t[r],e);return t}var i=n(10),s=n(11),a=Object.prototype.toString,c="function"==typeof t.Blob||"[object BlobConstructor]"===a.call(t.Blob),u="function"==typeof t.File||"[object FileConstructor]"===a.call(t.File);e.deconstructPacket=function(t){var e=[],n=t.data,o=t;return o.data=r(n,e),o.attachments=e.length,{packet:o,buffers:e}},e.reconstructPacket=function(t,e){return t.data=o(t.data,e),t.attachments=void 0,t},e.removeBlobs=function(t,e){function n(t,a,p){if(!t)return t;if(c&&t instanceof Blob||u&&t instanceof File){r++;var h=new FileReader;h.onload=function(){p?p[a]=this.result:o=this.result,--r||e(o)},h.readAsArrayBuffer(t)}else if(i(t))for(var f=0;f<t.length;f++)n(t[f],f,t);else if("object"==typeof t&&!s(t))for(var l in t)n(t[l],l,t)}var r=0,o=t;n(o),r||e(o)}}).call(e,function(){return this}())},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},function(t,e){(function(e){function n(t){return r&&e.Buffer.isBuffer(t)||o&&(t instanceof e.ArrayBuffer||i(t))}t.exports=n;var r="function"==typeof e.Buffer&&"function"==typeof e.Buffer.isBuffer,o="function"==typeof e.ArrayBuffer,i=function(){return o&&"function"==typeof e.ArrayBuffer.isView?e.ArrayBuffer.isView:function(t){return t.buffer instanceof e.ArrayBuffer}}()}).call(e,function(){return this}())},function(t,e,n){"use strict";function r(t,e){if(!(this instanceof r))return new r(t,e);t&&"object"===("undefined"==typeof t?"undefined":o(t))&&(e=t,t=void 0),e=e||{},e.path=e.path||"/socket.io",this.nsps={},this.subs=[],this.opts=e,this.reconnection(e.reconnection!==!1),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor(e.randomizationFactor||.5),this.backoff=new l({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==e.timeout?2e4:e.timeout),this.readyState="closed",this.uri=t,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[];var n=e.parser||c;this.encoder=new n.Encoder,this.decoder=new n.Decoder,this.autoConnect=e.autoConnect!==!1,this.autoConnect&&this.open()}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(13),s=n(37),a=n(8),c=n(7),u=n(39),p=n(40),h=n(3)("socket.io-client:manager"),f=n(36),l=n(41),d=Object.prototype.hasOwnProperty;t.exports=r,r.prototype.emitAll=function(){this.emit.apply(this,arguments);for(var t in this.nsps)d.call(this.nsps,t)&&this.nsps[t].emit.apply(this.nsps[t],arguments)},r.prototype.updateSocketIds=function(){for(var t in this.nsps)d.call(this.nsps,t)&&(this.nsps[t].id=this.generateId(t))},r.prototype.generateId=function(t){return("/"===t?"":t+"#")+this.engine.id},a(r.prototype),r.prototype.reconnection=function(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection},r.prototype.reconnectionAttempts=function(t){return arguments.length?(this._reconnectionAttempts=t,this):this._reconnectionAttempts},r.prototype.reconnectionDelay=function(t){return arguments.length?(this._reconnectionDelay=t,this.backoff&&this.backoff.setMin(t),this):this._reconnectionDelay},r.prototype.randomizationFactor=function(t){return arguments.length?(this._randomizationFactor=t,this.backoff&&this.backoff.setJitter(t),this):this._randomizationFactor},r.prototype.reconnectionDelayMax=function(t){return arguments.length?(this._reconnectionDelayMax=t,this.backoff&&this.backoff.setMax(t),this):this._reconnectionDelayMax},r.prototype.timeout=function(t){return arguments.length?(this._timeout=t,this):this._timeout},r.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},r.prototype.open=r.prototype.connect=function(t,e){if(h("readyState %s",this.readyState),~this.readyState.indexOf("open"))return this;h("opening %s",this.uri),this.engine=i(this.uri,this.opts);var n=this.engine,r=this;this.readyState="opening",this.skipReconnect=!1;var o=u(n,"open",function(){r.onopen(),t&&t()}),s=u(n,"error",function(e){if(h("connect_error"),r.cleanup(),r.readyState="closed",r.emitAll("connect_error",e),t){var n=new Error("Connection error");n.data=e,t(n)}else r.maybeReconnectOnOpen()});if(!1!==this._timeout){var a=this._timeout;h("connect attempt will timeout after %d",a);var c=setTimeout(function(){h("connect attempt timed out after %d",a),o.destroy(),n.close(),n.emit("error","timeout"),r.emitAll("connect_timeout",a)},a);this.subs.push({destroy:function(){clearTimeout(c)}})}return this.subs.push(o),this.subs.push(s),this},r.prototype.onopen=function(){h("open"),this.cleanup(),this.readyState="open",this.emit("open");var t=this.engine;this.subs.push(u(t,"data",p(this,"ondata"))),this.subs.push(u(t,"ping",p(this,"onping"))),this.subs.push(u(t,"pong",p(this,"onpong"))),this.subs.push(u(t,"error",p(this,"onerror"))),this.subs.push(u(t,"close",p(this,"onclose"))),this.subs.push(u(this.decoder,"decoded",p(this,"ondecoded")))},r.prototype.onping=function(){this.lastPing=new Date,this.emitAll("ping")},r.prototype.onpong=function(){this.emitAll("pong",new Date-this.lastPing)},r.prototype.ondata=function(t){this.decoder.add(t)},r.prototype.ondecoded=function(t){this.emit("packet",t)},r.prototype.onerror=function(t){h("error",t),this.emitAll("error",t)},r.prototype.socket=function(t,e){function n(){~f(o.connecting,r)||o.connecting.push(r)}var r=this.nsps[t];if(!r){r=new s(this,t,e),this.nsps[t]=r;var o=this;r.on("connecting",n),r.on("connect",function(){r.id=o.generateId(t)}),this.autoConnect&&n()}return r},r.prototype.destroy=function(t){var e=f(this.connecting,t);~e&&this.connecting.splice(e,1),this.connecting.length||this.close()},r.prototype.packet=function(t){h("writing packet %j",t);var e=this;t.query&&0===t.type&&(t.nsp+="?"+t.query),e.encoding?e.packetBuffer.push(t):(e.encoding=!0,this.encoder.encode(t,function(n){for(var r=0;r<n.length;r++)e.engine.write(n[r],t.options);e.encoding=!1,e.processPacketQueue()}))},r.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var t=this.packetBuffer.shift();this.packet(t)}},r.prototype.cleanup=function(){h("cleanup");for(var t=this.subs.length,e=0;e<t;e++){var n=this.subs.shift();n.destroy()}this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},r.prototype.close=r.prototype.disconnect=function(){h("disconnect"),this.skipReconnect=!0,this.reconnecting=!1,"opening"===this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},r.prototype.onclose=function(t){h("onclose"),this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",t),this._reconnection&&!this.skipReconnect&&this.reconnect()},r.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var t=this;if(this.backoff.attempts>=this._reconnectionAttempts)h("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var e=this.backoff.duration();h("will wait %dms before reconnect attempt",e),this.reconnecting=!0;var n=setTimeout(function(){t.skipReconnect||(h("attempting reconnect"),t.emitAll("reconnect_attempt",t.backoff.attempts),t.emitAll("reconnecting",t.backoff.attempts),t.skipReconnect||t.open(function(e){e?(h("reconnect attempt error"),t.reconnecting=!1,t.reconnect(),t.emitAll("reconnect_error",e.data)):(h("reconnect success"),t.onreconnect())}))},e);this.subs.push({destroy:function(){clearTimeout(n)}})}},r.prototype.onreconnect=function(){var t=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",t)}},function(t,e,n){t.exports=n(14),t.exports.parser=n(21)},function(t,e,n){(function(e){function r(t,n){if(!(this instanceof r))return new r(t,n);n=n||{},t&&"object"==typeof t&&(n=t,t=null),t?(t=p(t),n.hostname=t.host,n.secure="https"===t.protocol||"wss"===t.protocol,n.port=t.port,t.query&&(n.query=t.query)):n.host&&(n.hostname=p(n.host).host),this.secure=null!=n.secure?n.secure:e.location&&"https:"===location.protocol,n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.agent=n.agent||!1,this.hostname=n.hostname||(e.location?location.hostname:"localhost"),this.port=n.port||(e.location&&location.port?location.port:this.secure?443:80),this.query=n.query||{},"string"==typeof this.query&&(this.query=h.decode(this.query)),this.upgrade=!1!==n.upgrade,this.path=(n.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!n.forceJSONP,this.jsonp=!1!==n.jsonp,this.forceBase64=!!n.forceBase64,this.enablesXDR=!!n.enablesXDR,this.timestampParam=n.timestampParam||"t",this.timestampRequests=n.timestampRequests,this.transports=n.transports||["polling","websocket"],this.transportOptions=n.transportOptions||{},this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=n.policyPort||843,this.rememberUpgrade=n.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=n.onlyBinaryUpgrades,this.perMessageDeflate=!1!==n.perMessageDeflate&&(n.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=n.pfx||null,this.key=n.key||null,this.passphrase=n.passphrase||null,this.cert=n.cert||null,this.ca=n.ca||null,this.ciphers=n.ciphers||null,this.rejectUnauthorized=void 0===n.rejectUnauthorized||n.rejectUnauthorized,this.forceNode=!!n.forceNode;var o="object"==typeof e&&e;o.global===o&&(n.extraHeaders&&Object.keys(n.extraHeaders).length>0&&(this.extraHeaders=n.extraHeaders),n.localAddress&&(this.localAddress=n.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}function o(t){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}var i=n(15),s=n(8),a=n(3)("engine.io-client:socket"),c=n(36),u=n(21),p=n(2),h=n(30);t.exports=r,r.priorWebsocketSuccess=!1,s(r.prototype),r.protocol=u.protocol,r.Socket=r,r.Transport=n(20),r.transports=n(15),r.parser=n(21),r.prototype.createTransport=function(t){a('creating transport "%s"',t);var e=o(this.query);e.EIO=u.protocol,e.transport=t;var n=this.transportOptions[t]||{};this.id&&(e.sid=this.id);var r=new i[t]({query:e,socket:this,agent:n.agent||this.agent,hostname:n.hostname||this.hostname,port:n.port||this.port,secure:n.secure||this.secure,path:n.path||this.path,forceJSONP:n.forceJSONP||this.forceJSONP,jsonp:n.jsonp||this.jsonp,forceBase64:n.forceBase64||this.forceBase64,enablesXDR:n.enablesXDR||this.enablesXDR,timestampRequests:n.timestampRequests||this.timestampRequests,timestampParam:n.timestampParam||this.timestampParam,policyPort:n.policyPort||this.policyPort,pfx:n.pfx||this.pfx,key:n.key||this.key,passphrase:n.passphrase||this.passphrase,cert:n.cert||this.cert,ca:n.ca||this.ca,ciphers:n.ciphers||this.ciphers,rejectUnauthorized:n.rejectUnauthorized||this.rejectUnauthorized,perMessageDeflate:n.perMessageDeflate||this.perMessageDeflate,extraHeaders:n.extraHeaders||this.extraHeaders,forceNode:n.forceNode||this.forceNode,localAddress:n.localAddress||this.localAddress,requestTimeout:n.requestTimeout||this.requestTimeout,protocols:n.protocols||void 0});return r},r.prototype.open=function(){var t;if(this.rememberUpgrade&&r.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)t="websocket";else{if(0===this.transports.length){var e=this;return void setTimeout(function(){e.emit("error","No transports available")},0)}t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(n){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)},r.prototype.setTransport=function(t){a("setting transport %s",t.name);var e=this;this.transport&&(a("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=t,t.on("drain",function(){e.onDrain()}).on("packet",function(t){e.onPacket(t)}).on("error",function(t){e.onError(t)}).on("close",function(){e.onClose("transport close")})},r.prototype.probe=function(t){function e(){if(f.onlyBinaryUpgrades){var e=!this.supportsBinary&&f.transport.supportsBinary;h=h||e}h||(a('probe transport "%s" opened',t),p.send([{type:"ping",data:"probe"}]),p.once("packet",function(e){if(!h)if("pong"===e.type&&"probe"===e.data){if(a('probe transport "%s" pong',t),f.upgrading=!0,f.emit("upgrading",p),!p)return;r.priorWebsocketSuccess="websocket"===p.name,a('pausing current transport "%s"',f.transport.name),f.transport.pause(function(){h||"closed"!==f.readyState&&(a("changing transport and sending upgrade packet"),u(),f.setTransport(p),p.send([{type:"upgrade"}]),f.emit("upgrade",p),p=null,f.upgrading=!1,f.flush())})}else{a('probe transport "%s" failed',t);var n=new Error("probe error");n.transport=p.name,f.emit("upgradeError",n)}}))}function n(){h||(h=!0,u(),p.close(),p=null)}function o(e){var r=new Error("probe error: "+e);r.transport=p.name,n(),a('probe transport "%s" failed because of error: %s',t,e),f.emit("upgradeError",r)}function i(){o("transport closed")}function s(){o("socket closed")}function c(t){p&&t.name!==p.name&&(a('"%s" works - aborting "%s"',t.name,p.name),n())}function u(){p.removeListener("open",e),p.removeListener("error",o),p.removeListener("close",i),f.removeListener("close",s),f.removeListener("upgrading",c)}a('probing transport "%s"',t);var p=this.createTransport(t,{probe:1}),h=!1,f=this;r.priorWebsocketSuccess=!1,p.once("open",e),p.once("error",o),p.once("close",i),this.once("close",s),this.once("upgrading",c),p.open()},r.prototype.onOpen=function(){if(a("socket open"),this.readyState="open",r.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause){a("starting upgrade probes");for(var t=0,e=this.upgrades.length;t<e;t++)this.probe(this.upgrades[t])}},r.prototype.onPacket=function(t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(a('socket receive: type "%s", data "%s"',t.type,t.data),this.emit("packet",t),this.emit("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"pong":this.setPing(),this.emit("pong");break;case"error":var e=new Error("server error");e.code=t.data,this.onError(e);break;case"message":this.emit("data",t.data),this.emit("message",t.data)}else a('packet received with socket readyState "%s"',this.readyState)},r.prototype.onHandshake=function(t){this.emit("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this.upgrades=this.filterUpgrades(t.upgrades),this.pingInterval=t.pingInterval,this.pingTimeout=t.pingTimeout,this.onOpen(),"closed"!==this.readyState&&(this.setPing(),this.removeListener("heartbeat",this.onHeartbeat),this.on("heartbeat",this.onHeartbeat))},r.prototype.onHeartbeat=function(t){clearTimeout(this.pingTimeoutTimer);var e=this;e.pingTimeoutTimer=setTimeout(function(){"closed"!==e.readyState&&e.onClose("ping timeout")},t||e.pingInterval+e.pingTimeout)},r.prototype.setPing=function(){var t=this;clearTimeout(t.pingIntervalTimer),t.pingIntervalTimer=setTimeout(function(){a("writing ping packet - expecting pong within %sms",t.pingTimeout),t.ping(),t.onHeartbeat(t.pingTimeout)},t.pingInterval)},r.prototype.ping=function(){var t=this;this.sendPacket("ping",function(){t.emit("ping")})},r.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()},r.prototype.flush=function(){"closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(a("flushing %d packets in socket",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))},r.prototype.write=r.prototype.send=function(t,e,n){return this.sendPacket("message",t,e,n),this},r.prototype.sendPacket=function(t,e,n,r){if("function"==typeof e&&(r=e,e=void 0),"function"==typeof n&&(r=n,n=null),"closing"!==this.readyState&&"closed"!==this.readyState){n=n||{},n.compress=!1!==n.compress;var o={type:t,data:e,options:n};this.emit("packetCreate",o),this.writeBuffer.push(o),r&&this.once("flush",r),this.flush()}},r.prototype.close=function(){function t(){r.onClose("forced close"),a("socket closing - telling transport to close"),r.transport.close()}function e(){r.removeListener("upgrade",e),r.removeListener("upgradeError",e),t()}function n(){r.once("upgrade",e),r.once("upgradeError",e)}if("opening"===this.readyState||"open"===this.readyState){this.readyState="closing";var r=this;this.writeBuffer.length?this.once("drain",function(){this.upgrading?n():t()}):this.upgrading?n():t()}return this},r.prototype.onError=function(t){a("socket error %j",t),r.priorWebsocketSuccess=!1,this.emit("error",t),this.onClose("transport error",t)},r.prototype.onClose=function(t,e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){a('socket close with reason: "%s"',t);var n=this;clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),this.readyState="closed",this.id=null,this.emit("close",t,e),n.writeBuffer=[],n.prevBufferLen=0}},r.prototype.filterUpgrades=function(t){for(var e=[],n=0,r=t.length;n<r;n++)~c(this.transports,t[n])&&e.push(t[n]);return e}}).call(e,function(){return this}())},function(t,e,n){(function(t){function r(e){var n,r=!1,a=!1,c=!1!==e.jsonp;if(t.location){var u="https:"===location.protocol,p=location.port;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.js-7-p||(p=u?443:80),r=e.hostname!==location.hostname||p!==e.port,a=e.secure!==u}if(e.xdomain=r,e.xscheme=a,n=new o(e),"open"in n&&!e.forceJSONP)return new i(e);if(!c)throw new Error("JSONP disabled");return new s(e)}var o=n(16),i=n(18),s=n(33),a=n(34);e.polling=r,e.websocket=a}).call(e,function(){return this}())},function(t,e,n){(function(e){var r=n(17);t.exports=function(t){var n=t.xdomain,o=t.xscheme,i=t.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!n||r))return new XMLHttpRequest}catch(s){}try{if("undefined"!=typeof XDomainRequest&&!o&&i)return new XDomainRequest}catch(s){}if(!n)try{return new(e[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(s){}}}).call(e,function(){return this}())},function(t,e){try{t.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(n){t.exports=!1}},function(t,e,n){(function(e){function r(){}function o(t){if(c.call(this,t),this.requestTimeout=t.requestTimeout,this.extraHeaders=t.extraHeaders,e.location){var n="https:"===location.protocol,r=location.port;r||(r=n?443:80),this.xd=t.hostname!==e.location.hostname||r!==t.port,this.xs=t.secure!==n}}function i(t){this.method=t.method||"GET",this.uri=t.uri,this.xd=!!t.xd,this.xs=!!t.xs,this.async=!1!==t.async,this.data=void 0!==t.data?t.data:null,this.agent=t.agent,this.isBinary=t.isBinary,this.supportsBinary=t.supportsBinary,this.enablesXDR=t.enablesXDR,this.requestTimeout=t.requestTimeout,this.pfx=t.pfx,this.key=t.key,this.passphrase=t.passphrase,this.cert=t.cert,this.ca=t.ca,this.ciphers=t.ciphers,this.rejectUnauthorized=t.rejectUnauthorized,this.extraHeaders=t.extraHeaders,this.create()}function s(){for(var t in i.requests)i.requests.hasOwnProperty(t)&&i.requests[t].abort()}var a=n(16),c=n(19),u=n(8),p=n(31),h=n(3)("engine.io-client:polling-xhr");t.exports=o,t.exports.Request=i,p(o,c),o.prototype.supportsBinary=!0,o.prototype.request=function(t){return t=t||{},t.uri=this.uri(),t.xd=this.xd,t.xs=this.xs,t.agent=this.agent||!1,t.supportsBinary=this.supportsBinary,t.enablesXDR=this.enablesXDR,t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized,t.requestTimeout=this.requestTimeout,t.extraHeaders=this.extraHeaders,new i(t)},o.prototype.doWrite=function(t,e){var n="string"!=typeof t&&void 0!==t,r=this.request({method:"POST",data:t,isBinary:n}),o=this;r.on("success",e),r.on("error",function(t){o.onError("xhr post error",t)}),this.sendXhr=r},o.prototype.doPoll=function(){h("xhr poll");var t=this.request(),e=this;t.on("data",function(t){e.onData(t)}),t.on("error",function(t){e.onError("xhr poll error",t)}),this.pollXhr=t},u(i.prototype),i.prototype.create=function(){var t={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized;var n=this.xhr=new a(t),r=this;try{h("xhr open %s: %s",this.method,this.uri),n.open(this.method,this.uri,this.async);try{if(this.extraHeaders){n.setDisableHeaderCheck&&n.setDisableHeaderCheck(!0);for(var o in this.extraHeaders)this.extraHeaders.hasOwnProperty(o)&&n.setRequestHeader(o,this.extraHeaders[o])}}catch(s){}if("POST"===this.method)try{this.isBinary?n.setRequestHeader("Content-type","application/octet-stream"):n.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(s){}try{n.setRequestHeader("Accept","*/*")}catch(s){}"withCredentials"in n&&(n.withCredentials=!0),this.requestTimeout&&(n.timeout=this.requestTimeout),this.hasXDR()?(n.onload=function(){r.onLoad()},n.onerror=function(){r.onError(n.responseText)}):n.onreadystatechange=function(){if(2===n.readyState)try{var t=n.getResponseHeader("Content-Type");r.supportsBinary&&"application/octet-stream"===t&&(n.responseType="arraybuffer")}catch(e){}4===n.readyState&&(200===n.status||1223===n.status?r.onLoad():setTimeout(function(){r.onError(n.status)},0))},h("xhr data %s",this.data),n.send(this.data)}catch(s){return void setTimeout(function(){r.onError(s)},0)}e.document&&(this.index=i.requestsCount++,i.requests[this.index]=this)},i.prototype.onSuccess=function(){this.emit("success"),this.cleanup()},i.prototype.onData=function(t){this.emit("data",t),this.onSuccess()},i.prototype.onError=function(t){this.emit("error",t),this.cleanup(!0)},i.prototype.cleanup=function(t){if("undefined"!=typeof this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=r:this.xhr.onreadystatechange=r,t)try{this.xhr.abort()}catch(n){}e.document&&delete i.requests[this.index],this.xhr=null}},i.prototype.onLoad=function(){var t;try{var e;try{e=this.xhr.getResponseHeader("Content-Type")}catch(n){}t="application/octet-stream"===e?this.xhr.response||this.xhr.responseText:this.xhr.responseText}catch(n){this.onError(n)}null!=t&&this.onData(t)},i.prototype.hasXDR=function(){return"undefined"!=typeof e.XDomainRequest&&!this.xs&&this.enablesXDR},i.prototype.abort=function(){this.cleanup()},i.requestsCount=0,i.requests={},e.document&&(e.attachEvent?e.attachEvent("onunload",s):e.addEventListener&&e.addEventListener("beforeunload",s,!1))}).call(e,function(){return this}())},function(t,e,n){function r(t){var e=t&&t.forceBase64;p&&!e||(this.supportsBinary=!1),o.call(this,t)}var o=n(20),i=n(30),s=n(21),a=n(31),c=n(32),u=n(3)("engine.io-client:polling");t.exports=r;var p=function(){var t=n(16),e=new t({xdomain:!1});return null!=e.responseType}();a(r,o),r.prototype.name="polling",r.prototype.doOpen=function(){this.poll()},r.prototype.pause=function(t){function e(){u("paused"),n.readyState="paused",t()}var n=this;if(this.readyState="pausing",this.polling||!this.writable){var r=0;this.polling&&(u("we are currently polling - waiting to pause"),r++,this.once("pollComplete",function(){u("pre-pause polling complete"),--r||e()})),this.writable||(u("we are currently writing - waiting to pause"),r++,this.once("drain",function(){u("pre-pause writing complete"),--r||e()}))}else e()},r.prototype.poll=function(){u("polling"),this.polling=!0,this.doPoll(),this.emit("poll")},r.prototype.onData=function(t){var e=this;u("polling got data %s",t);var n=function(t,n,r){return"opening"===e.readyState&&e.onOpen(),"close"===t.type?(e.onClose(),!1):void e.onPacket(t)};s.decodePayload(t,this.socket.binaryType,n),"closed"!==this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"===this.readyState?this.poll():u('ignoring poll - transport state "%s"',this.readyState))},r.prototype.doClose=function(){function t(){u("writing close packet"),e.write([{type:"close"}])}var e=this;"open"===this.readyState?(u("transport open - closing"),t()):(u("transport not open - deferring close"),this.once("open",t))},r.prototype.write=function(t){var e=this;this.writable=!1;var n=function(){e.writable=!0,e.emit("drain")};s.encodePayload(t,this.supportsBinary,function(t){e.doWrite(t,n)})},r.prototype.uri=function(){var t=this.query||{},e=this.secure?"https":"http",n="";!1!==this.timestampRequests&&(t[this.timestampParam]=c()),this.supportsBinary||t.sid||(t.b64=1),t=i.encode(t),this.port&&("https"===e&&443!==Number(this.port)||"http"===e&&80!==Number(this.port))&&(n=":"+this.port),t.length&&(t="?"+t);var r=this.hostname.indexOf(":")!==-1;return e+"://"+(r?"["+this.hostname+"]":this.hostname)+n+this.path+t}},function(t,e,n){function r(t){this.path=t.path,this.hostname=t.hostname,this.port=t.port,this.secure=t.secure,this.query=t.query,this.timestampParam=t.timestampParam,this.timestampRequests=t.timestampRequests,this.readyState="",this.agent=t.agent||!1,this.socket=t.socket,this.enablesXDR=t.enablesXDR,this.pfx=t.pfx,this.key=t.key,this.passphrase=t.passphrase,this.cert=t.cert,this.ca=t.ca,this.ciphers=t.ciphers,this.rejectUnauthorized=t.rejectUnauthorized,this.forceNode=t.forceNode,this.extraHeaders=t.extraHeaders,this.localAddress=t.localAddress}var o=n(21),i=n(8);t.exports=r,i(r.prototype),r.prototype.onError=function(t,e){var n=new Error(t);return n.type="TransportError",n.description=e,this.emit("error",n),this},r.prototype.open=function(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this},r.prototype.close=function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this},r.prototype.send=function(t){if("open"!==this.readyState)throw new Error("Transport not open");this.write(t)},r.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},r.prototype.onData=function(t){var e=o.decodePacket(t,this.socket.binaryType);this.onPacket(e)},r.prototype.onPacket=function(t){this.emit("packet",t)},r.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},function(t,e,n){(function(t){function r(t,n){var r="b"+e.packets[t.type]+t.data.data;return n(r)}function o(t,n,r){if(!n)return e.encodeBase64Packet(t,r);var o=t.data,i=new Uint8Array(o),s=new Uint8Array(1+o.byteLength);s[0]=v[t.type];for(var a=0;a<i.length;a++)s[a+1]=i[a];return r(s.buffer)}function i(t,n,r){if(!n)return e.encodeBase64Packet(t,r);var o=new FileReader;return o.onload=function(){t.data=o.result,e.encodePacket(t,n,!0,r)},o.readAsArrayBuffer(t.data)}function s(t,n,r){if(!n)return e.encodeBase64Packet(t,r);if(g)return i(t,n,r);var o=new Uint8Array(1);o[0]=v[t.type];var s=new k([o.buffer,t.data]);return r(s)}function a(t){try{t=d.decode(t,{strict:!1})}catch(e){return!1}return t}function c(t,e,n){for(var r=new Array(t.length),o=l(t.length,n),i=function(t,n,o){e(n,function(e,n){r[t]=n,o(e,r)})},s=0;s<t.length;s++)i(s,t[s],o)}var u,p=n(22),h=n(23),f=n(24),l=n(25),d=n(26);t&&t.ArrayBuffer&&(u=n(28));var y="undefined"!=typeof navigator&&/Android/i.test(navigator.userAgent),m="undefined"!=typeof navigator&&/PhantomJS/i.test(navigator.userAgent),g=y||m;e.protocol=3;var v=e.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},b=p(v),w={type:"error",data:"parser error"},k=n(29);e.encodePacket=function(e,n,i,a){"function"==typeof n&&(a=n,n=!1),"function"==typeof i&&(a=i,i=null);var c=void 0===e.data?void 0:e.data.buffer||e.data;if(t.ArrayBuffer&&c instanceof ArrayBuffer)return o(e,n,a);if(k&&c instanceof t.Blob)return s(e,n,a);if(c&&c.base64)return r(e,a);var u=v[e.type];return void 0!==e.data&&(u+=i?d.encode(String(e.data),{strict:!1}):String(e.data)),a(""+u)},e.encodeBase64Packet=function(n,r){var o="b"+e.packets[n.type];if(k&&n.data instanceof t.Blob){var i=new FileReader;return i.onload=function(){var t=i.result.split(",")[1];r(o+t)},i.readAsDataURL(n.data)}var s;try{s=String.fromCharCode.apply(null,new Uint8Array(n.data))}catch(a){for(var c=new Uint8Array(n.data),u=new Array(c.length),p=0;p<c.length;p++)u[p]=c[p];s=String.fromCharCode.apply(null,u)}return o+=t.btoa(s),r(o)},e.decodePacket=function(t,n,r){if(void 0===t)return w;if("string"==typeof t){if("b"===t.charAt(0))return e.decodeBase64Packet(t.substr(1),n);if(r&&(t=a(t),t===!1))return w;var o=t.charAt(0);return Number(o)==o&&b[o]?t.length>1?{type:b[o],data:t.substring(1)}:{type:b[o]}:w}var i=new Uint8Array(t),o=i[0],s=f(t,1);return k&&"blob"===n&&(s=new k([s])),{type:b[o],data:s}},e.decodeBase64Packet=function(t,e){var n=b[t.charAt(0)];if(!u)return{type:n,data:{base64:!0,data:t.substr(1)}};var r=u.decode(t.substr(1));return"blob"===e&&k&&(r=new k([r])),{type:n,data:r}},e.encodePayload=function(t,n,r){function o(t){return t.length+":"+t}function i(t,r){e.encodePacket(t,!!s&&n,!1,function(t){r(null,o(t))})}"function"==typeof n&&(r=n,n=null);var s=h(t);return n&&s?k&&!g?e.encodePayloadAsBlob(t,r):e.encodePayloadAsArrayBuffer(t,r):t.length?void c(t,i,function(t,e){return r(e.join(""))}):r("0:")},e.decodePayload=function(t,n,r){if("string"!=typeof t)return e.decodePayloadAsBinary(t,n,r);"function"==typeof n&&(r=n,n=null);var o;if(""===t)return r(w,0,1);for(var i,s,a="",c=0,u=t.length;c<u;c++){var p=t.charAt(c);if(":"===p){if(""===a||a!=(i=Number(a)))return r(w,0,1);if(s=t.substr(c+1,i),a!=s.length)return r(w,0,1);if(s.length){if(o=e.decodePacket(s,n,!1),w.type===o.type&&w.data===o.data)return r(w,0,1);var h=r(o,c+i,u);if(!1===h)return}c+=i,a=""}else a+=p}return""!==a?r(w,0,1):void 0},e.encodePayloadAsArrayBuffer=function(t,n){function r(t,n){e.encodePacket(t,!0,!0,function(t){return n(null,t)})}return t.length?void c(t,r,function(t,e){var r=e.reduce(function(t,e){var n;return n="string"==typeof e?e.length:e.byteLength,t+n.toString().length+n+2},0),o=new Uint8Array(r),i=0;return e.forEach(function(t){var e="string"==typeof t,n=t;if(e){for(var r=new Uint8Array(t.length),s=0;s<t.length;s++)r[s]=t.charCodeAt(s);n=r.buffer}e?o[i++]=0:o[i++]=1;for(var a=n.byteLength.toString(),s=0;s<a.length;s++)o[i++]=parseInt(a[s]);o[i++]=255;for(var r=new Uint8Array(n),s=0;s<r.length;s++)o[i++]=r[s]}),n(o.buffer)}):n(new ArrayBuffer(0))},e.encodePayloadAsBlob=function(t,n){function r(t,n){e.encodePacket(t,!0,!0,function(t){var e=new Uint8Array(1);if(e[0]=1,"string"==typeof t){for(var r=new Uint8Array(t.length),o=0;o<t.length;o++)r[o]=t.charCodeAt(o);t=r.buffer,e[0]=0}for(var i=t instanceof ArrayBuffer?t.byteLength:t.size,s=i.toString(),a=new Uint8Array(s.length+1),o=0;o<s.length;o++)a[o]=parseInt(s[o]);if(a[s.length]=255,k){var c=new k([e.buffer,a.buffer,t]);n(null,c)}})}c(t,r,function(t,e){return n(new k(e))})},e.decodePayloadAsBinary=function(t,n,r){"function"==typeof n&&(r=n,n=null);for(var o=t,i=[];o.byteLength>0;){for(var s=new Uint8Array(o),a=0===s[0],c="",u=1;255!==s[u];u++){if(c.length>310)return r(w,0,1);c+=s[u]}o=f(o,2+c.length),c=parseInt(c);var p=f(o,0,c);if(a)try{p=String.fromCharCode.apply(null,new Uint8Array(p))}catch(h){var l=new Uint8Array(p);p="";for(var u=0;u<l.length;u++)p+=String.fromCharCode(l[u])}i.push(p),o=f(o,c)}var d=i.length;i.forEach(function(t,o){r(e.decodePacket(t,n,!0),o,d)})}}).call(e,function(){return this}())},function(t,e){t.exports=Object.keys||function(t){var e=[],n=Object.prototype.hasOwnProperty;for(var r in t)n.call(t,r)&&e.push(r);return e}},function(t,e,n){(function(e){function r(t){if(!t||"object"!=typeof t)return!1;if(o(t)){for(var n=0,i=t.length;n<i;n++)if(r(t[n]))return!0;return!1}if("function"==typeof e.Buffer&&e.Buffer.isBuffer&&e.Buffer.isBuffer(t)||"function"==typeof e.ArrayBuffer&&t instanceof ArrayBuffer||s&&t instanceof Blob||a&&t instanceof File)return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return r(t.toJSON(),!0);for(var c in t)if(Object.prototype.hasOwnProperty.call(t,c)&&r(t[c]))return!0;return!1}var o=n(10),i=Object.prototype.toString,s="function"==typeof e.Blob||"[object BlobConstructor]"===i.call(e.Blob),a="function"==typeof e.File||"[object FileConstructor]"===i.call(e.File);t.exports=r}).call(e,function(){return this}())},function(t,e){t.exports=function(t,e,n){var r=t.byteLength;if(e=e||0,n=n||r,t.slice)return t.slice(e,n);if(e<0&&(e+=r),n<0&&(n+=r),n>r&&(n=r),e>=r||e>=n||0===r)return new ArrayBuffer(0);for(var o=new Uint8Array(t),i=new Uint8Array(n-e),s=e,a=0;s<n;s++,a++)i[a]=o[s];return i.buffer}},function(t,e){function n(t,e,n){function o(t,r){if(o.count<=0)throw new Error("after called too many times");--o.count,t?(i=!0,e(t),e=n):0!==o.count||i||e(null,r)}var i=!1;return n=n||r,o.count=t,0===t?e():o}function r(){}t.exports=n},function(t,e,n){var r;(function(t,o){!function(i){function s(t){for(var e,n,r=[],o=0,i=t.length;o<i;)e=t.charCodeAt(o++),e>=55296&&e<=56319&&o<i?(n=t.charCodeAt(o++),56320==(64512&n)?r.push(((1023&e)<<10)+(1023&n)+65536):(r.push(e),o--)):r.push(e);return r}function a(t){for(var e,n=t.length,r=-1,o="";++r<n;)e=t[r],e>65535&&(e-=65536,o+=w(e>>>10&1023|55296),e=56320|1023&e),o+=w(e);return o}function c(t,e){if(t>=55296&&t<=57343){if(e)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value");return!1}return!0}function u(t,e){return w(t>>e&63|128)}function p(t,e){if(0==(4294967168&t))return w(t);var n="";return 0==(4294965248&t)?n=w(t>>6&31|192):0==(4294901760&t)?(c(t,e)||(t=65533),n=w(t>>12&15|224),n+=u(t,6)):0==(4292870144&t)&&(n=w(t>>18&7|240),n+=u(t,12),n+=u(t,6)),n+=w(63&t|128)}function h(t,e){e=e||{};for(var n,r=!1!==e.strict,o=s(t),i=o.length,a=-1,c="";++a<i;)n=o[a],c+=p(n,r);return c}function f(){if(b>=v)throw Error("Invalid byte index");var t=255&g[b];if(b++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function l(t){var e,n,r,o,i;if(b>v)throw Error("Invalid byte index");if(b==v)return!1;if(e=255&g[b],b++,0==(128&e))return e;if(192==(224&e)){if(n=f(),i=(31&e)<<6|n,i>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&e)){if(n=f(),r=f(),i=(15&e)<<12|n<<6|r,i>=2048)return c(i,t)?i:65533;throw Error("Invalid continuation byte")}if(240==(248&e)&&(n=f(),r=f(),o=f(),i=(7&e)<<18|n<<12|r<<6|o,i>=65536&&i<=1114111))return i;throw Error("Invalid UTF-8 detected")}function d(t,e){e=e||{};var n=!1!==e.strict;g=s(t),v=g.length,b=0;for(var r,o=[];(r=l(n))!==!1;)o.push(r);return a(o)}var y="object"==typeof e&&e,m=("object"==typeof t&&t&&t.exports==y&&t,"object"==typeof o&&o);m.global!==m&&m.window!==m||(i=m);var g,v,b,w=String.fromCharCode,k={version:"2.1.2",encode:h,decode:d};r=function(){return k}.call(e,n,e,t),!(void 0!==r&&(t.exports=r))}(this)}).call(e,n(27)(t),function(){return this}())},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){!function(){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new Uint8Array(256),r=0;r<t.length;r++)n[t.charCodeAt(r)]=r;e.encode=function(e){var n,r=new Uint8Array(e),o=r.length,i="";for(n=0;n<o;n+=3)i+=t[r[n]>>2],i+=t[(3&r[n])<<4|r[n+1]>>4],i+=t[(15&r[n+1])<<2|r[n+2]>>6],i+=t[63&r[n+2]];return o%3===2?i=i.substring(0,i.length-1)+"=":o%3===1&&(i=i.substring(0,i.length-2)+"=="),i},e.decode=function(t){var e,r,o,i,s,a=.75*t.length,c=t.length,u=0;"="===t[t.length-1]&&(a--,"="===t[t.length-2]&&a--);var p=new ArrayBuffer(a),h=new Uint8Array(p);for(e=0;e<c;e+=4)r=n[t.charCodeAt(e)],o=n[t.charCodeAt(e+1)],i=n[t.charCodeAt(e+2)],s=n[t.charCodeAt(e+3)],h[u++]=r<<2|o>>4,h[u++]=(15&o)<<4|i>>2,h[u++]=(3&i)<<6|63&s;return p}}()},function(t,e){(function(e){function n(t){for(var e=0;e<t.length;e++){var n=t[e];if(n.buffer instanceof ArrayBuffer){var r=n.buffer;if(n.byteLength!==r.byteLength){var o=new Uint8Array(n.byteLength);o.set(new Uint8Array(r,n.byteOffset,n.byteLength)),r=o.buffer}t[e]=r}}}function r(t,e){e=e||{};var r=new i;n(t);for(var o=0;o<t.length;o++)r.append(t[o]);return e.type?r.getBlob(e.type):r.getBlob()}function o(t,e){return n(t),new Blob(t,e||{})}var i=e.BlobBuilder||e.WebKitBlobBuilder||e.MSBlobBuilder||e.MozBlobBuilder,s=function(){try{var t=new Blob(["hi"]);return 2===t.size}catch(e){return!1}}(),a=s&&function(){try{var t=new Blob([new Uint8Array([1,2])]);return 2===t.size}catch(e){return!1}}(),c=i&&i.prototype.append&&i.prototype.getBlob;t.exports=function(){return s?a?e.Blob:o:c?r:void 0}()}).call(e,function(){return this}())},function(t,e){e.encode=function(t){var e="";for(var n in t)t.hasOwnProperty(n)&&(e.length&&(e+="&"),e+=encodeURIComponent(n)+"="+encodeURIComponent(t[n]));return e},e.decode=function(t){for(var e={},n=t.split("&"),r=0,o=n.length;r<o;r++){var i=n[r].split("=");e[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return e}},function(t,e){t.exports=function(t,e){var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}},function(t,e){"use strict";function n(t){var e="";do e=s[t%a]+e,t=Math.floor(t/a);while(t>0);return e}function r(t){var e=0;for(p=0;p<t.length;p++)e=e*a+c[t.charAt(p)];return e}function o(){var t=n(+new Date);return t!==i?(u=0,i=t):t+"."+n(u++)}for(var i,s="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),a=64,c={},u=0,p=0;p<a;p++)c[s[p]]=p;o.encode=n,o.decode=r,t.exports=o},function(t,e,n){(function(e){function r(){}function o(t){i.call(this,t),this.query=this.query||{},a||(e.___eio||(e.___eio=[]),a=e.___eio),this.index=a.length;var n=this;a.push(function(t){n.onData(t)}),this.query.j=this.index,e.document&&e.addEventListener&&e.addEventListener("beforeunload",function(){n.script&&(n.script.onerror=r)},!1)}var i=n(19),s=n(31);t.exports=o;var a,c=/\n/g,u=/\\n/g;s(o,i),o.prototype.supportsBinary=!1,o.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),i.prototype.doClose.call(this)},o.prototype.doPoll=function(){var t=this,e=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),e.async=!0,e.src=this.uri(),e.onerror=function(e){t.onError("jsonp poll error",e)};var n=document.getElementsByTagName("script")[0];n?n.parentNode.insertBefore(e,n):(document.head||document.body).appendChild(e),this.script=e;var r="undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent);r&&setTimeout(function(){var t=document.createElement("iframe");document.body.appendChild(t),document.body.removeChild(t)},100)},o.prototype.doWrite=function(t,e){function n(){r(),e()}function r(){if(o.iframe)try{o.form.removeChild(o.iframe)}catch(t){o.onError("jsonp polling iframe removal error",t)}try{var e='<iframe src="javascript:0" name="'+o.iframeId+'">';i=document.createElement(e)}catch(t){i=document.createElement("iframe"),i.name=o.iframeId,i.src="javascript:0"}i.id=o.iframeId,o.form.appendChild(i),o.iframe=i}var o=this;if(!this.form){var i,s=document.createElement("form"),a=document.createElement("textarea"),p=this.iframeId="eio_iframe_"+this.index;s.className="socketio",s.style.position="absolute",s.style.top="-1000px",s.style.left="-1000px",s.target=p,s.method="POST",s.setAttribute("accept-charset","utf-8"),a.name="d",s.appendChild(a),document.body.appendChild(s),this.form=s,this.area=a}this.form.action=this.uri(),r(),t=t.replace(u,"\\\n"),this.area.value=t.replace(c,"\\n");try{this.form.submit()}catch(h){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===o.iframe.readyState&&n()}:this.iframe.onload=n}}).call(e,function(){return this}())},function(t,e,n){(function(e){function r(t){var e=t&&t.forceBase64;e&&(this.supportsBinary=!1),this.perMessageDeflate=t.perMessageDeflate,this.usingBrowserWebSocket=h&&!t.forceNode,this.protocols=t.protocols,this.usingBrowserWebSocket||(l=o),i.call(this,t)}var o,i=n(20),s=n(21),a=n(30),c=n(31),u=n(32),p=n(3)("engine.io-client:websocket"),h=e.WebSocket||e.MozWebSocket;if("undefined"==typeof window)try{o=n(35)}catch(f){}var l=h;l||"undefined"!=typeof window||(l=o),t.exports=r,c(r,i),r.prototype.name="websocket",r.prototype.supportsBinary=!0,r.prototype.doOpen=function(){if(this.check()){var t=this.uri(),e=this.protocols,n={agent:this.agent,perMessageDeflate:this.perMessageDeflate};n.pfx=this.pfx,n.key=this.key,n.passphrase=this.passphrase,n.cert=this.cert,n.ca=this.ca,n.ciphers=this.ciphers,n.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(n.headers=this.extraHeaders),this.localAddress&&(n.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?e?new l(t,e):new l(t):new l(t,e,n)}catch(r){return this.emit("error",r)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="nodebuffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},r.prototype.addEventListeners=function(){var t=this;this.ws.onopen=function(){t.onOpen()},this.ws.onclose=function(){t.onClose()},this.ws.onmessage=function(e){t.onData(e.data)},this.ws.onerror=function(e){t.onError("websocket error",e)}},r.prototype.write=function(t){function n(){r.emit("flush"),setTimeout(function(){r.writable=!0,r.emit("drain")},0)}var r=this;this.writable=!1;for(var o=t.length,i=0,a=o;i<a;i++)!function(t){s.encodePacket(t,r.supportsBinary,function(i){if(!r.usingBrowserWebSocket){var s={};if(t.options&&(s.compress=t.options.compress),r.perMessageDeflate){var a="string"==typeof i?e.Buffer.byteLength(i):i.length;a<r.perMessageDeflate.threshold&&(s.compress=!1)}}try{r.usingBrowserWebSocket?r.ws.send(i):r.ws.send(i,s)}catch(c){p("websocket closed before onclose event")}--o||n()})}(t[i])},r.prototype.onClose=function(){i.prototype.onClose.call(this)},r.prototype.doClose=function(){"undefined"!=typeof this.ws&&this.ws.close()},r.prototype.uri=function(){var t=this.query||{},e=this.secure?"wss":"ws",n="";this.port&&("wss"===e&&443!==Number(this.port)||"ws"===e&&80!==Number(this.port))&&(n=":"+this.port),this.timestampRequests&&(t[this.timestampParam]=u()),this.supportsBinary||(t.b64=1),t=a.encode(t),t.length&&(t="?"+t);var r=this.hostname.indexOf(":")!==-1;return e+"://"+(r?"["+this.hostname+"]":this.hostname)+n+this.path+t},r.prototype.check=function(){return!(!l||"__initialize"in l&&this.name===r.prototype.name)}}).call(e,function(){return this}())},function(t,e){},function(t,e){var n=[].indexOf;t.exports=function(t,e){if(n)return t.indexOf(e);for(var r=0;r<t.length;++r)if(t[r]===e)return r;return-1}},function(t,e,n){"use strict";function r(t,e,n){this.io=t,this.nsp=e,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,this.flags={},n&&n.query&&(this.query=n.query),this.io.autoConnect&&this.open()}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=n(7),s=n(8),a=n(38),c=n(39),u=n(40),p=n(3)("socket.io-client:socket"),h=n(30),f=n(23);t.exports=e=r;var l={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},d=s.prototype.emit;s(r.prototype),r.prototype.subEvents=function(){if(!this.subs){var t=this.io;this.subs=[c(t,"open",u(this,"onopen")),c(t,"packet",u(this,"onpacket")),c(t,"close",u(this,"onclose"))]}},r.prototype.open=r.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),"open"===this.io.readyState&&this.onopen(),this.emit("connecting"),this)},r.prototype.send=function(){var t=a(arguments);return t.unshift("message"),this.emit.apply(this,t),this},r.prototype.emit=function(t){if(l.hasOwnProperty(t))return d.apply(this,arguments),this;var e=a(arguments),n={type:(void 0!==this.flags.binary?this.flags.binary:f(e))?i.BINARY_EVENT:i.EVENT,data:e};return n.options={},n.options.compress=!this.flags||!1!==this.flags.compress,"function"==typeof e[e.length-1]&&(p("emitting packet with ack id %d",this.ids),this.acks[this.ids]=e.pop(),n.id=this.ids++),this.connected?this.packet(n):this.sendBuffer.push(n),this.flags={},this},r.prototype.packet=function(t){t.nsp=this.nsp,this.io.packet(t)},r.prototype.onopen=function(){if(p("transport is open - connecting"),"/"!==this.nsp)if(this.query){var t="object"===o(this.query)?h.encode(this.query):this.query;p("sending connect packet with query %s",t),this.packet({type:i.CONNECT,query:t})}else this.packet({type:i.CONNECT})},r.prototype.onclose=function(t){p("close (%s)",t),this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",t)},r.prototype.onpacket=function(t){var e=t.nsp===this.nsp,n=t.type===i.ERROR&&"/"===t.nsp;if(e||n)switch(t.type){case i.CONNECT:this.onconnect();break;case i.EVENT:this.onevent(t);break;case i.BINARY_EVENT:this.onevent(t);break;case i.ACK:this.onack(t);break;case i.BINARY_ACK:this.onack(t);break;case i.DISCONNECT:this.ondisconnect();break;case i.ERROR:this.emit("error",t.data)}},r.prototype.onevent=function(t){var e=t.data||[];p("emitting event %j",e),null!=t.id&&(p("attaching ack callback to event"),e.push(this.ack(t.id))),this.connected?d.apply(this,e):this.receiveBuffer.push(e)},r.prototype.ack=function(t){var e=this,n=!1;return function(){if(!n){n=!0;var r=a(arguments);p("sending ack %j",r),e.packet({type:f(r)?i.BINARY_ACK:i.ACK,id:t,data:r})}}},r.prototype.onack=function(t){var e=this.acks[t.id];"function"==typeof e?(p("calling ack %s with %j",t.id,t.data),e.apply(this,t.data),delete this.acks[t.id]):p("bad ack %s",t.id)},r.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},r.prototype.emitBuffered=function(){var t;for(t=0;t<this.receiveBuffer.length;t++)d.apply(this,this.receiveBuffer[t]);for(this.receiveBuffer=[],t=0;t<this.sendBuffer.length;t++)this.packet(this.sendBuffer[t]);this.sendBuffer=[]},r.prototype.ondisconnect=function(){p("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")},r.prototype.destroy=function(){if(this.subs){for(var t=0;t<this.subs.length;t++)this.subs[t].destroy();this.subs=null}this.io.destroy(this)},r.prototype.close=r.prototype.disconnect=function(){return this.connected&&(p("performing disconnect (%s)",this.nsp),this.packet({type:i.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},r.prototype.compress=function(t){return this.flags.compress=t,this},r.prototype.binary=function(t){return this.flags.binary=t,this}},function(t,e){function n(t,e){var n=[];e=e||0;for(var r=e||0;r<t.length;r++)n[r-e]=t[r];return n}t.exports=n},function(t,e){"use strict";function n(t,e,n){return t.on(e,n),{destroy:function(){t.removeListener(e,n)}}}t.exports=n},function(t,e){var n=[].slice;t.exports=function(t,e){if("string"==typeof e&&(e=t[e]),"function"!=typeof e)throw new Error("bind() requires a function");var r=n.call(arguments,2);return function(){return e.apply(t,r.concat(n.call(arguments)))}}},function(t,e){function n(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=n,n.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-n:t+n}return 0|Math.min(t,this.max)},n.prototype.reset=function(){this.attempts=0},n.prototype.setMin=function(t){this.ms=t},n.prototype.setMax=function(t){this.max=t},n.prototype.setJitter=function(t){this.jitter=t}}])});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///socket.io.js","webpack:///webpack/bootstrap 3dcdaa84a447b9ebdc0b","webpack:///./lib/index.js","webpack:///./lib/url.js","webpack:///./~/parseuri/index.js","webpack:///./~/debug/src/browser.js","webpack:///./~/process/browser.js","webpack:///./~/debug/src/debug.js","webpack:///./~/ms/index.js","webpack:///./~/socket.io-parser/index.js","webpack:///./~/component-emitter/index.js","webpack:///./~/socket.io-parser/binary.js","webpack:///./~/isarray/index.js","webpack:///./~/socket.io-parser/is-buffer.js","webpack:///./lib/manager.js","webpack:///./~/engine.io-client/lib/index.js","webpack:///./~/engine.io-client/lib/socket.js","webpack:///./~/engine.io-client/lib/transports/index.js","webpack:///./~/engine.io-client/lib/xmlhttprequest.js","webpack:///./~/has-cors/index.js","webpack:///./~/engine.io-client/lib/transports/polling-xhr.js","webpack:///./~/engine.io-client/lib/transports/polling.js","webpack:///./~/engine.io-client/lib/transport.js","webpack:///./~/engine.io-parser/lib/browser.js","webpack:///./~/engine.io-parser/lib/keys.js","webpack:///./~/has-binary2/index.js","webpack:///./~/arraybuffer.slice/index.js","webpack:///./~/after/index.js","webpack:///./~/engine.io-parser/lib/utf8.js","webpack:///(webpack)/buildin/module.js","webpack:///./~/base64-arraybuffer/lib/base64-arraybuffer.js","webpack:///./~/blob/index.js","webpack:///./~/parseqs/index.js","webpack:///./~/component-inherit/index.js","webpack:///./~/yeast/index.js","webpack:///./~/engine.io-client/lib/transports/polling-jsonp.js","webpack:///./~/engine.io-client/lib/transports/websocket.js","webpack:///./~/indexof/index.js","webpack:///./lib/socket.js","webpack:///./~/to-array/index.js","webpack:///./lib/on.js","webpack:///./~/component-bind/index.js","webpack:///./~/backo2/index.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","lookup","uri","opts","_typeof","undefined","io","parsed","url","source","path","sameNamespace","cache","nsps","newConnection","forceNew","multiplex","debug","Manager","query","socket","Symbol","iterator","obj","constructor","prototype","parser","managers","protocol","connect","Socket","global","loc","location","host","charAt","test","parseuri","port","ipv6","indexOf","href","re","parts","str","src","b","e","substring","replace","length","exec","i","authority","ipv6uri","process","useColors","window","type","navigator","userAgent","toLowerCase","match","document","documentElement","style","WebkitAppearance","console","firebug","exception","table","parseInt","RegExp","$1","formatArgs","args","namespace","humanize","diff","color","splice","index","lastC","log","Function","apply","arguments","save","namespaces","storage","removeItem","load","r","env","DEBUG","localstorage","localStorage","chrome","local","colors","formatters","j","v","JSON","stringify","err","message","enable","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","len","run","Item","array","noop","nextTick","Array","push","title","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","selectColor","hash","charCodeAt","Math","abs","createDebug","enabled","self","curr","Date","ms","prevTime","prev","coerce","unshift","format","formatter","val","logFn","bind","destroy","init","instances","names","skips","split","substr","instance","disable","stack","parse","String","n","parseFloat","y","d","h","s","fmtShort","round","fmtLong","plural","floor","ceil","options","isNaN","Encoder","encodeAsString","BINARY_EVENT","BINARY_ACK","attachments","nsp","data","payload","tryStringify","ERROR_PACKET","encodeAsBinary","callback","writeEncoding","bloblessData","deconstruction","binary","deconstructPacket","pack","packet","buffers","removeBlobs","Decoder","reconstructor","decodeString","Number","types","error","buf","next","tryParse","isPayloadValid","ERROR","isArray","BinaryReconstructor","reconPack","msg","Emitter","isBuf","CONNECT","DISCONNECT","EVENT","ACK","encode","encoding","add","base64","takeBinaryData","finishedReconstruction","binData","reconstructPacket","mixin","key","addEventListener","event","fn","_callbacks","removeEventListener","callbacks","cb","slice","hasListeners","_deconstructPacket","placeholder","_placeholder","num","newData","_reconstructPacket","toString","Object","withNativeBlob","Blob","withNativeFile","File","packetData","_removeBlobs","curKey","containingObject","pendingBlobs","fileReader","FileReader","onload","result","readAsArrayBuffer","arr","withNativeBuffer","Buffer","isBuffer","withNativeArrayBuffer","ArrayBuffer","isView","buffer","subs","reconnection","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","Backoff","min","max","jitter","readyState","connecting","lastPing","packetBuffer","_parser","encoder","decoder","autoConnect","open","eio","has","hasOwnProperty","emitAll","updateSocketIds","generateId","engine","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","maybeReconnectOnOpen","reconnecting","attempts","reconnect","skipReconnect","openSub","onopen","errorSub","cleanup","timer","close","onping","onpong","ondata","ondecoded","onerror","onConnecting","encodedPackets","write","processPacketQueue","shift","subsLength","sub","disconnect","reset","onclose","reason","delay","duration","onreconnect","attempt","hostname","secure","agent","parseqs","decode","upgrade","forceJSONP","jsonp","forceBase64","enablesXDR","timestampParam","timestampRequests","transports","transportOptions","writeBuffer","prevBufferLen","policyPort","rememberUpgrade","binaryType","onlyBinaryUpgrades","perMessageDeflate","threshold","pfx","passphrase","cert","ca","ciphers","rejectUnauthorized","forceNode","freeGlobal","extraHeaders","keys","localAddress","upgrades","pingInterval","pingTimeout","pingIntervalTimer","pingTimeoutTimer","clone","o","priorWebsocketSuccess","Transport","createTransport","EIO","transport","sid","requestTimeout","protocols","setTransport","onDrain","onPacket","onError","onClose","probe","onTransportOpen","upgradeLosesBinary","supportsBinary","failed","send","upgrading","pause","flush","freezeTransport","onTransportClose","onupgrade","to","onOpen","l","onHandshake","setPing","code","filterUpgrades","onHeartbeat","ping","sendPacket","writable","compress","cleanupAndClose","waitForUpgrade","desc","filteredUpgrades","polling","xhr","xd","xs","isSSL","xdomain","xscheme","XMLHttpRequest","XHR","JSONP","websocket","hasCORS","XDomainRequest","join","empty","Polling","Request","method","async","isBinary","create","unloadHandler","requests","abort","inherit","request","doWrite","req","sendXhr","doPoll","onData","pollXhr","setDisableHeaderCheck","setRequestHeader","withCredentials","hasXDR","onLoad","responseText","onreadystatechange","contentType","getResponseHeader","responseType","status","requestsCount","onSuccess","fromError","response","attachEvent","hasXHR2","yeast","doOpen","poll","onPause","total","decodePayload","doClose","packets","callbackfn","encodePayload","schema","b64","description","decodePacket","encodeBase64Object","encodeArrayBuffer","encodeBase64Packet","contentArray","Uint8Array","resultBuffer","byteLength","encodeBlobAsArrayBuffer","fr","encodePacket","encodeBlob","dontSendBlobs","blob","tryDecode","utf8","strict","map","ary","each","done","after","eachWithIndex","el","base64encoder","hasBinary","sliceBuffer","isAndroid","isPhantomJS","pong","packetslist","utf8encode","encoded","readAsDataURL","b64data","fromCharCode","typed","basic","btoa","utf8decode","decodeBase64Packet","asArray","rest","setLengthHeader","encodeOne","doneCallback","encodePayloadAsBlob","encodePayloadAsArrayBuffer","results","decodePayloadAsBinary","chr","ret","totalLength","reduce","acc","resultArray","bufferIndex","forEach","isString","ab","view","lenStr","binaryIdentifier","size","lengthAry","bufferTail","tailArray","msgLength","toJSON","arraybuffer","start","end","bytes","abv","ii","count","err_cb","proxy","bail","__WEBPACK_AMD_DEFINE_RESULT__","ucs2decode","string","value","extra","output","counter","ucs2encode","stringFromCharCode","checkScalarValue","codePoint","toUpperCase","createByte","encodeCodePoint","symbol","codePoints","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","byteArray","decodeSymbol","byte1","byte2","byte3","byte4","tmp","freeExports","webpackPolyfill","deprecate","paths","children","chars","encoded1","encoded2","encoded3","encoded4","bufferLength","mapArrayBufferViews","chunk","copy","set","byteOffset","BlobBuilderConstructor","bb","BlobBuilder","append","getBlob","BlobConstructor","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","a","blobSupportsArrayBufferView","blobBuilderSupported","encodeURIComponent","qs","qry","pairs","pair","decodeURIComponent","alphabet","decoded","now","seed","JSONPPolling","___eio","script","rNewline","rEscapedNewline","parentNode","removeChild","form","iframe","createElement","insertAt","getElementsByTagName","insertBefore","head","body","appendChild","isUAgecko","complete","initIframe","html","iframeId","area","className","position","top","left","target","setAttribute","action","submit","WS","usingBrowserWebSocket","BrowserWebSocket","WebSocket","NodeWebSocket","MozWebSocket","check","headers","ws","supports","addEventListeners","onmessage","ev","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","flags","toArray","hasBin","events","connect_error","connect_timeout","reconnect_attempt","reconnect_failed","reconnect_error","subEvents","pop","onpacket","rootNamespaceError","onconnect","onevent","onack","ondisconnect","ack","sent","emitBuffered","list","factor","pow","rand","random","deviation"],"mappings":"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","file":"socket.io.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"io\"] = factory();\n\telse\n\t\troot[\"io\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"io\"] = factory();\n\telse\n\t\troot[\"io\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar url = __webpack_require__(1);\n\tvar parser = __webpack_require__(7);\n\tvar Manager = __webpack_require__(12);\n\tvar debug = __webpack_require__(3)('socket.io-client');\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = exports = lookup;\n\t\n\t/**\n\t * Managers cache.\n\t */\n\t\n\tvar cache = exports.managers = {};\n\t\n\t/**\n\t * Looks up an existing `Manager` for multiplexing.\n\t * If the user summons:\n\t *\n\t *   `io('http://localhost/a');`\n\t *   `io('http://localhost/b');`\n\t *\n\t * We reuse the existing instance based on same scheme/port/host,\n\t * and we initialize sockets for each namespace.\n\t *\n\t * @api public\n\t */\n\t\n\tfunction lookup(uri, opts) {\n\t  if ((typeof uri === 'undefined' ? 'undefined' : _typeof(uri)) === 'object') {\n\t    opts = uri;\n\t    uri = undefined;\n\t  }\n\t\n\t  opts = opts || {};\n\t\n\t  var parsed = url(uri);\n\t  var source = parsed.source;\n\t  var id = parsed.id;\n\t  var path = parsed.path;\n\t  var sameNamespace = cache[id] && path in cache[id].nsps;\n\t  var newConnection = opts.forceNew || opts['force new connection'] || false === opts.multiplex || sameNamespace;\n\t\n\t  var io;\n\t\n\t  if (newConnection) {\n\t    debug('ignoring socket cache for %s', source);\n\t    io = Manager(source, opts);\n\t  } else {\n\t    if (!cache[id]) {\n\t      debug('new io instance for %s', source);\n\t      cache[id] = Manager(source, opts);\n\t    }\n\t    io = cache[id];\n\t  }\n\t  if (parsed.query && !opts.query) {\n\t    opts.query = parsed.query;\n\t  }\n\t  return io.socket(parsed.path, opts);\n\t}\n\t\n\t/**\n\t * Protocol version.\n\t *\n\t * @api public\n\t */\n\t\n\texports.protocol = parser.protocol;\n\t\n\t/**\n\t * `connect`.\n\t *\n\t * @param {String} uri\n\t * @api public\n\t */\n\t\n\texports.connect = lookup;\n\t\n\t/**\n\t * Expose constructors for standalone build.\n\t *\n\t * @api public\n\t */\n\t\n\texports.Manager = __webpack_require__(12);\n\texports.Socket = __webpack_require__(37);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar parseuri = __webpack_require__(2);\n\tvar debug = __webpack_require__(3)('socket.io-client:url');\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = url;\n\t\n\t/**\n\t * URL parser.\n\t *\n\t * @param {String} url\n\t * @param {Object} An object meant to mimic window.location.\n\t *                 Defaults to window.location.\n\t * @api public\n\t */\n\t\n\tfunction url(uri, loc) {\n\t  var obj = uri;\n\t\n\t  // default to window.location\n\t  loc = loc || global.location;\n\t  if (null == uri) uri = loc.protocol + '//' + loc.host;\n\t\n\t  // relative path support\n\t  if ('string' === typeof uri) {\n\t    if ('/' === uri.charAt(0)) {\n\t      if ('/' === uri.charAt(1)) {\n\t        uri = loc.protocol + uri;\n\t      } else {\n\t        uri = loc.host + uri;\n\t      }\n\t    }\n\t\n\t    if (!/^(https?|wss?):\\/\\//.test(uri)) {\n\t      debug('protocol-less url %s', uri);\n\t      if ('undefined' !== typeof loc) {\n\t        uri = loc.protocol + '//' + uri;\n\t      } else {\n\t        uri = 'https://' + uri;\n\t      }\n\t    }\n\t\n\t    // parse\n\t    debug('parse %s', uri);\n\t    obj = parseuri(uri);\n\t  }\n\t\n\t  // make sure we treat `localhost:80` and `localhost` equally\n\t  if (!obj.port) {\n\t    if (/^(http|ws)$/.test(obj.protocol)) {\n\t      obj.port = '80';\n\t    } else if (/^(http|ws)s$/.test(obj.protocol)) {\n\t      obj.port = '443';\n\t    }\n\t  }\n\t\n\t  obj.path = obj.path || '/';\n\t\n\t  var ipv6 = obj.host.indexOf(':') !== -1;\n\t  var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\t\n\t  // define unique id\n\t  obj.id = obj.protocol + '://' + host + ':' + obj.port;\n\t  // define href\n\t  obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : ':' + obj.port);\n\t\n\t  return obj;\n\t}\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/**\r\n\t * Parses an URI\r\n\t *\r\n\t * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n\t * @api private\r\n\t */\r\n\t\r\n\tvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\t\r\n\tvar parts = [\r\n\t    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n\t];\r\n\t\r\n\tmodule.exports = function parseuri(str) {\r\n\t    var src = str,\r\n\t        b = str.indexOf('['),\r\n\t        e = str.indexOf(']');\r\n\t\r\n\t    if (b != -1 && e != -1) {\r\n\t        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n\t    }\r\n\t\r\n\t    var m = re.exec(str || ''),\r\n\t        uri = {},\r\n\t        i = 14;\r\n\t\r\n\t    while (i--) {\r\n\t        uri[parts[i]] = m[i] || '';\r\n\t    }\r\n\t\r\n\t    if (b != -1 && e != -1) {\r\n\t        uri.source = src;\r\n\t        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n\t        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n\t        uri.ipv6uri = true;\r\n\t    }\r\n\t\r\n\t    return uri;\r\n\t};\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * This is the web browser implementation of `debug()`.\n\t *\n\t * Expose `debug()` as the module.\n\t */\n\t\n\texports = module.exports = __webpack_require__(5);\n\texports.log = log;\n\texports.formatArgs = formatArgs;\n\texports.save = save;\n\texports.load = load;\n\texports.useColors = useColors;\n\texports.storage = 'undefined' != typeof chrome\n\t               && 'undefined' != typeof chrome.storage\n\t                  ? chrome.storage.local\n\t                  : localstorage();\n\t\n\t/**\n\t * Colors.\n\t */\n\t\n\texports.colors = [\n\t  '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n\t  '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n\t  '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n\t  '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n\t  '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n\t  '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n\t  '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n\t  '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n\t  '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n\t  '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n\t  '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n\t];\n\t\n\t/**\n\t * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n\t * and the Firebug extension (any Firefox version) are known\n\t * to support \"%c\" CSS customizations.\n\t *\n\t * TODO: add a `localStorage` variable to explicitly enable/disable colors\n\t */\n\t\n\tfunction useColors() {\n\t  // NB: In an Electron preload script, document will be defined but not fully\n\t  // initialized. Since we know we're in Chrome, we'll just detect this case\n\t  // explicitly\n\t  if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n\t    return true;\n\t  }\n\t\n\t  // Internet Explorer and Edge do not support colors.\n\t  if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t    return false;\n\t  }\n\t\n\t  // is webkit? http://stackoverflow.com/a/16459606/376773\n\t  // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t  return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t    // is firebug? http://stackoverflow.com/a/398120/376773\n\t    (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t    // is firefox >= v31?\n\t    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t    // double check webkit in userAgent just in case we are in a worker\n\t    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n\t}\n\t\n\t/**\n\t * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n\t */\n\t\n\texports.formatters.j = function(v) {\n\t  try {\n\t    return JSON.stringify(v);\n\t  } catch (err) {\n\t    return '[UnexpectedJSONParseError]: ' + err.message;\n\t  }\n\t};\n\t\n\t\n\t/**\n\t * Colorize log arguments if enabled.\n\t *\n\t * @api public\n\t */\n\t\n\tfunction formatArgs(args) {\n\t  var useColors = this.useColors;\n\t\n\t  args[0] = (useColors ? '%c' : '')\n\t    + this.namespace\n\t    + (useColors ? ' %c' : ' ')\n\t    + args[0]\n\t    + (useColors ? '%c ' : ' ')\n\t    + '+' + exports.humanize(this.diff);\n\t\n\t  if (!useColors) return;\n\t\n\t  var c = 'color: ' + this.color;\n\t  args.splice(1, 0, c, 'color: inherit')\n\t\n\t  // the final \"%c\" is somewhat tricky, because there could be other\n\t  // arguments passed either before or after the %c, so we need to\n\t  // figure out the correct index to insert the CSS into\n\t  var index = 0;\n\t  var lastC = 0;\n\t  args[0].replace(/%[a-zA-Z%]/g, function(match) {\n\t    if ('%%' === match) return;\n\t    index++;\n\t    if ('%c' === match) {\n\t      // we only are interested in the *last* %c\n\t      // (the user may have provided their own)\n\t      lastC = index;\n\t    }\n\t  });\n\t\n\t  args.splice(lastC, 0, c);\n\t}\n\t\n\t/**\n\t * Invokes `console.log()` when available.\n\t * No-op when `console.log` is not a \"function\".\n\t *\n\t * @api public\n\t */\n\t\n\tfunction log() {\n\t  // this hackery is required for IE8/9, where\n\t  // the `console.log` function doesn't have 'apply'\n\t  return 'object' === typeof console\n\t    && console.log\n\t    && Function.prototype.apply.call(console.log, console, arguments);\n\t}\n\t\n\t/**\n\t * Save `namespaces`.\n\t *\n\t * @param {String} namespaces\n\t * @api private\n\t */\n\t\n\tfunction save(namespaces) {\n\t  try {\n\t    if (null == namespaces) {\n\t      exports.storage.removeItem('debug');\n\t    } else {\n\t      exports.storage.debug = namespaces;\n\t    }\n\t  } catch(e) {}\n\t}\n\t\n\t/**\n\t * Load `namespaces`.\n\t *\n\t * @return {String} returns the previously persisted debug modes\n\t * @api private\n\t */\n\t\n\tfunction load() {\n\t  var r;\n\t  try {\n\t    r = exports.storage.debug;\n\t  } catch(e) {}\n\t\n\t  // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\t  if (!r && typeof process !== 'undefined' && 'env' in process) {\n\t    r = process.env.DEBUG;\n\t  }\n\t\n\t  return r;\n\t}\n\t\n\t/**\n\t * Enable namespaces listed in `localStorage.debug` initially.\n\t */\n\t\n\texports.enable(load());\n\t\n\t/**\n\t * Localstorage attempts to return the localstorage.\n\t *\n\t * This is necessary because safari throws\n\t * when a user disables cookies/localstorage\n\t * and you attempt to access it.\n\t *\n\t * @return {LocalStorage}\n\t * @api private\n\t */\n\t\n\tfunction localstorage() {\n\t  try {\n\t    return window.localStorage;\n\t  } catch (e) {}\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t// shim for using process in browser\n\tvar process = module.exports = {};\n\t\n\t// cached from whatever global is present so that test runners that stub it\n\t// don't break things.  But we need to wrap it in a try catch in case it is\n\t// wrapped in strict mode code which doesn't define any globals.  It's inside a\n\t// function because try/catches deoptimize in certain engines.\n\t\n\tvar cachedSetTimeout;\n\tvar cachedClearTimeout;\n\t\n\tfunction defaultSetTimout() {\n\t    throw new Error('setTimeout has not been defined');\n\t}\n\tfunction defaultClearTimeout () {\n\t    throw new Error('clearTimeout has not been defined');\n\t}\n\t(function () {\n\t    try {\n\t        if (typeof setTimeout === 'function') {\n\t            cachedSetTimeout = setTimeout;\n\t        } else {\n\t            cachedSetTimeout = defaultSetTimout;\n\t        }\n\t    } catch (e) {\n\t        cachedSetTimeout = defaultSetTimout;\n\t    }\n\t    try {\n\t        if (typeof clearTimeout === 'function') {\n\t            cachedClearTimeout = clearTimeout;\n\t        } else {\n\t            cachedClearTimeout = defaultClearTimeout;\n\t        }\n\t    } catch (e) {\n\t        cachedClearTimeout = defaultClearTimeout;\n\t    }\n\t} ())\n\tfunction runTimeout(fun) {\n\t    if (cachedSetTimeout === setTimeout) {\n\t        //normal enviroments in sane situations\n\t        return setTimeout(fun, 0);\n\t    }\n\t    // if setTimeout wasn't available but was latter defined\n\t    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n\t        cachedSetTimeout = setTimeout;\n\t        return setTimeout(fun, 0);\n\t    }\n\t    try {\n\t        // when when somebody has screwed with setTimeout but no I.E. maddness\n\t        return cachedSetTimeout(fun, 0);\n\t    } catch(e){\n\t        try {\n\t            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t            return cachedSetTimeout.call(null, fun, 0);\n\t        } catch(e){\n\t            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n\t            return cachedSetTimeout.call(this, fun, 0);\n\t        }\n\t    }\n\t\n\t\n\t}\n\tfunction runClearTimeout(marker) {\n\t    if (cachedClearTimeout === clearTimeout) {\n\t        //normal enviroments in sane situations\n\t        return clearTimeout(marker);\n\t    }\n\t    // if clearTimeout wasn't available but was latter defined\n\t    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n\t        cachedClearTimeout = clearTimeout;\n\t        return clearTimeout(marker);\n\t    }\n\t    try {\n\t        // when when somebody has screwed with setTimeout but no I.E. maddness\n\t        return cachedClearTimeout(marker);\n\t    } catch (e){\n\t        try {\n\t            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n\t            return cachedClearTimeout.call(null, marker);\n\t        } catch (e){\n\t            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n\t            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n\t            return cachedClearTimeout.call(this, marker);\n\t        }\n\t    }\n\t\n\t\n\t\n\t}\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t    if (!draining || !currentQueue) {\n\t        return;\n\t    }\n\t    draining = false;\n\t    if (currentQueue.length) {\n\t        queue = currentQueue.concat(queue);\n\t    } else {\n\t        queueIndex = -1;\n\t    }\n\t    if (queue.length) {\n\t        drainQueue();\n\t    }\n\t}\n\t\n\tfunction drainQueue() {\n\t    if (draining) {\n\t        return;\n\t    }\n\t    var timeout = runTimeout(cleanUpNextTick);\n\t    draining = true;\n\t\n\t    var len = queue.length;\n\t    while(len) {\n\t        currentQueue = queue;\n\t        queue = [];\n\t        while (++queueIndex < len) {\n\t            if (currentQueue) {\n\t                currentQueue[queueIndex].run();\n\t            }\n\t        }\n\t        queueIndex = -1;\n\t        len = queue.length;\n\t    }\n\t    currentQueue = null;\n\t    draining = false;\n\t    runClearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t    var args = new Array(arguments.length - 1);\n\t    if (arguments.length > 1) {\n\t        for (var i = 1; i < arguments.length; i++) {\n\t            args[i - 1] = arguments[i];\n\t        }\n\t    }\n\t    queue.push(new Item(fun, args));\n\t    if (queue.length === 1 && !draining) {\n\t        runTimeout(drainQueue);\n\t    }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t    this.fun = fun;\n\t    this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t    this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\tprocess.prependListener = noop;\n\tprocess.prependOnceListener = noop;\n\t\n\tprocess.listeners = function (name) { return [] }\n\t\n\tprocess.binding = function (name) {\n\t    throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t    throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\n\t/**\n\t * This is the common logic for both the Node.js and web browser\n\t * implementations of `debug()`.\n\t *\n\t * Expose `debug()` as the module.\n\t */\n\t\n\texports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\n\texports.coerce = coerce;\n\texports.disable = disable;\n\texports.enable = enable;\n\texports.enabled = enabled;\n\texports.humanize = __webpack_require__(6);\n\t\n\t/**\n\t * Active `debug` instances.\n\t */\n\texports.instances = [];\n\t\n\t/**\n\t * The currently active debug mode names, and names to skip.\n\t */\n\t\n\texports.names = [];\n\texports.skips = [];\n\t\n\t/**\n\t * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t *\n\t * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t */\n\t\n\texports.formatters = {};\n\t\n\t/**\n\t * Select a color.\n\t * @param {String} namespace\n\t * @return {Number}\n\t * @api private\n\t */\n\t\n\tfunction selectColor(namespace) {\n\t  var hash = 0, i;\n\t\n\t  for (i in namespace) {\n\t    hash  = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t    hash |= 0; // Convert to 32bit integer\n\t  }\n\t\n\t  return exports.colors[Math.abs(hash) % exports.colors.length];\n\t}\n\t\n\t/**\n\t * Create a debugger with the given `namespace`.\n\t *\n\t * @param {String} namespace\n\t * @return {Function}\n\t * @api public\n\t */\n\t\n\tfunction createDebug(namespace) {\n\t\n\t  var prevTime;\n\t\n\t  function debug() {\n\t    // disabled?\n\t    if (!debug.enabled) return;\n\t\n\t    var self = debug;\n\t\n\t    // set `diff` timestamp\n\t    var curr = +new Date();\n\t    var ms = curr - (prevTime || curr);\n\t    self.diff = ms;\n\t    self.prev = prevTime;\n\t    self.curr = curr;\n\t    prevTime = curr;\n\t\n\t    // turn the `arguments` into a proper Array\n\t    var args = new Array(arguments.length);\n\t    for (var i = 0; i < args.length; i++) {\n\t      args[i] = arguments[i];\n\t    }\n\t\n\t    args[0] = exports.coerce(args[0]);\n\t\n\t    if ('string' !== typeof args[0]) {\n\t      // anything else let's inspect with %O\n\t      args.unshift('%O');\n\t    }\n\t\n\t    // apply any `formatters` transformations\n\t    var index = 0;\n\t    args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n\t      // if we encounter an escaped % then don't increase the array index\n\t      if (match === '%%') return match;\n\t      index++;\n\t      var formatter = exports.formatters[format];\n\t      if ('function' === typeof formatter) {\n\t        var val = args[index];\n\t        match = formatter.call(self, val);\n\t\n\t        // now we need to remove `args[index]` since it's inlined in the `format`\n\t        args.splice(index, 1);\n\t        index--;\n\t      }\n\t      return match;\n\t    });\n\t\n\t    // apply env-specific formatting (colors, etc.)\n\t    exports.formatArgs.call(self, args);\n\t\n\t    var logFn = debug.log || exports.log || console.log.bind(console);\n\t    logFn.apply(self, args);\n\t  }\n\t\n\t  debug.namespace = namespace;\n\t  debug.enabled = exports.enabled(namespace);\n\t  debug.useColors = exports.useColors();\n\t  debug.color = selectColor(namespace);\n\t  debug.destroy = destroy;\n\t\n\t  // env-specific initialization logic for debug instances\n\t  if ('function' === typeof exports.init) {\n\t    exports.init(debug);\n\t  }\n\t\n\t  exports.instances.push(debug);\n\t\n\t  return debug;\n\t}\n\t\n\tfunction destroy () {\n\t  var index = exports.instances.indexOf(this);\n\t  if (index !== -1) {\n\t    exports.instances.splice(index, 1);\n\t    return true;\n\t  } else {\n\t    return false;\n\t  }\n\t}\n\t\n\t/**\n\t * Enables a debug mode by namespaces. This can include modes\n\t * separated by a colon and wildcards.\n\t *\n\t * @param {String} namespaces\n\t * @api public\n\t */\n\t\n\tfunction enable(namespaces) {\n\t  exports.save(namespaces);\n\t\n\t  exports.names = [];\n\t  exports.skips = [];\n\t\n\t  var i;\n\t  var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t  var len = split.length;\n\t\n\t  for (i = 0; i < len; i++) {\n\t    if (!split[i]) continue; // ignore empty strings\n\t    namespaces = split[i].replace(/\\*/g, '.*?');\n\t    if (namespaces[0] === '-') {\n\t      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n\t    } else {\n\t      exports.names.push(new RegExp('^' + namespaces + '$'));\n\t    }\n\t  }\n\t\n\t  for (i = 0; i < exports.instances.length; i++) {\n\t    var instance = exports.instances[i];\n\t    instance.enabled = exports.enabled(instance.namespace);\n\t  }\n\t}\n\t\n\t/**\n\t * Disable debug output.\n\t *\n\t * @api public\n\t */\n\t\n\tfunction disable() {\n\t  exports.enable('');\n\t}\n\t\n\t/**\n\t * Returns true if the given mode name is enabled, false otherwise.\n\t *\n\t * @param {String} name\n\t * @return {Boolean}\n\t * @api public\n\t */\n\t\n\tfunction enabled(name) {\n\t  if (name[name.length - 1] === '*') {\n\t    return true;\n\t  }\n\t  var i, len;\n\t  for (i = 0, len = exports.skips.length; i < len; i++) {\n\t    if (exports.skips[i].test(name)) {\n\t      return false;\n\t    }\n\t  }\n\t  for (i = 0, len = exports.names.length; i < len; i++) {\n\t    if (exports.names[i].test(name)) {\n\t      return true;\n\t    }\n\t  }\n\t  return false;\n\t}\n\t\n\t/**\n\t * Coerce `val`.\n\t *\n\t * @param {Mixed} val\n\t * @return {Mixed}\n\t * @api private\n\t */\n\t\n\tfunction coerce(val) {\n\t  if (val instanceof Error) return val.stack || val.message;\n\t  return val;\n\t}\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Helpers.\n\t */\n\t\n\tvar s = 1000;\n\tvar m = s * 60;\n\tvar h = m * 60;\n\tvar d = h * 24;\n\tvar y = d * 365.25;\n\t\n\t/**\n\t * Parse or format the given `val`.\n\t *\n\t * Options:\n\t *\n\t *  - `long` verbose formatting [false]\n\t *\n\t * @param {String|Number} val\n\t * @param {Object} [options]\n\t * @throws {Error} throw an error if val is not a non-empty string or a number\n\t * @return {String|Number}\n\t * @api public\n\t */\n\t\n\tmodule.exports = function(val, options) {\n\t  options = options || {};\n\t  var type = typeof val;\n\t  if (type === 'string' && val.length > 0) {\n\t    return parse(val);\n\t  } else if (type === 'number' && isNaN(val) === false) {\n\t    return options.long ? fmtLong(val) : fmtShort(val);\n\t  }\n\t  throw new Error(\n\t    'val is not a non-empty string or a valid number. val=' +\n\t      JSON.stringify(val)\n\t  );\n\t};\n\t\n\t/**\n\t * Parse the given `str` and return milliseconds.\n\t *\n\t * @param {String} str\n\t * @return {Number}\n\t * @api private\n\t */\n\t\n\tfunction parse(str) {\n\t  str = String(str);\n\t  if (str.length > 100) {\n\t    return;\n\t  }\n\t  var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n\t    str\n\t  );\n\t  if (!match) {\n\t    return;\n\t  }\n\t  var n = parseFloat(match[1]);\n\t  var type = (match[2] || 'ms').toLowerCase();\n\t  switch (type) {\n\t    case 'years':\n\t    case 'year':\n\t    case 'yrs':\n\t    case 'yr':\n\t    case 'y':\n\t      return n * y;\n\t    case 'days':\n\t    case 'day':\n\t    case 'd':\n\t      return n * d;\n\t    case 'hours':\n\t    case 'hour':\n\t    case 'hrs':\n\t    case 'hr':\n\t    case 'h':\n\t      return n * h;\n\t    case 'minutes':\n\t    case 'minute':\n\t    case 'mins':\n\t    case 'min':\n\t    case 'm':\n\t      return n * m;\n\t    case 'seconds':\n\t    case 'second':\n\t    case 'secs':\n\t    case 'sec':\n\t    case 's':\n\t      return n * s;\n\t    case 'milliseconds':\n\t    case 'millisecond':\n\t    case 'msecs':\n\t    case 'msec':\n\t    case 'ms':\n\t      return n;\n\t    default:\n\t      return undefined;\n\t  }\n\t}\n\t\n\t/**\n\t * Short format for `ms`.\n\t *\n\t * @param {Number} ms\n\t * @return {String}\n\t * @api private\n\t */\n\t\n\tfunction fmtShort(ms) {\n\t  if (ms >= d) {\n\t    return Math.round(ms / d) + 'd';\n\t  }\n\t  if (ms >= h) {\n\t    return Math.round(ms / h) + 'h';\n\t  }\n\t  if (ms >= m) {\n\t    return Math.round(ms / m) + 'm';\n\t  }\n\t  if (ms >= s) {\n\t    return Math.round(ms / s) + 's';\n\t  }\n\t  return ms + 'ms';\n\t}\n\t\n\t/**\n\t * Long format for `ms`.\n\t *\n\t * @param {Number} ms\n\t * @return {String}\n\t * @api private\n\t */\n\t\n\tfunction fmtLong(ms) {\n\t  return plural(ms, d, 'day') ||\n\t    plural(ms, h, 'hour') ||\n\t    plural(ms, m, 'minute') ||\n\t    plural(ms, s, 'second') ||\n\t    ms + ' ms';\n\t}\n\t\n\t/**\n\t * Pluralization helper.\n\t */\n\t\n\tfunction plural(ms, n, name) {\n\t  if (ms < n) {\n\t    return;\n\t  }\n\t  if (ms < n * 1.5) {\n\t    return Math.floor(ms / n) + ' ' + name;\n\t  }\n\t  return Math.ceil(ms / n) + ' ' + name + 's';\n\t}\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar debug = __webpack_require__(3)('socket.io-parser');\n\tvar Emitter = __webpack_require__(8);\n\tvar binary = __webpack_require__(9);\n\tvar isArray = __webpack_require__(10);\n\tvar isBuf = __webpack_require__(11);\n\t\n\t/**\n\t * Protocol version.\n\t *\n\t * @api public\n\t */\n\t\n\texports.protocol = 4;\n\t\n\t/**\n\t * Packet types.\n\t *\n\t * @api public\n\t */\n\t\n\texports.types = [\n\t  'CONNECT',\n\t  'DISCONNECT',\n\t  'EVENT',\n\t  'ACK',\n\t  'ERROR',\n\t  'BINARY_EVENT',\n\t  'BINARY_ACK'\n\t];\n\t\n\t/**\n\t * Packet type `connect`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.CONNECT = 0;\n\t\n\t/**\n\t * Packet type `disconnect`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.DISCONNECT = 1;\n\t\n\t/**\n\t * Packet type `event`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.EVENT = 2;\n\t\n\t/**\n\t * Packet type `ack`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.ACK = 3;\n\t\n\t/**\n\t * Packet type `error`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.ERROR = 4;\n\t\n\t/**\n\t * Packet type 'binary event'\n\t *\n\t * @api public\n\t */\n\t\n\texports.BINARY_EVENT = 5;\n\t\n\t/**\n\t * Packet type `binary ack`. For acks with binary arguments.\n\t *\n\t * @api public\n\t */\n\t\n\texports.BINARY_ACK = 6;\n\t\n\t/**\n\t * Encoder constructor.\n\t *\n\t * @api public\n\t */\n\t\n\texports.Encoder = Encoder;\n\t\n\t/**\n\t * Decoder constructor.\n\t *\n\t * @api public\n\t */\n\t\n\texports.Decoder = Decoder;\n\t\n\t/**\n\t * A socket.io Encoder instance\n\t *\n\t * @api public\n\t */\n\t\n\tfunction Encoder() {}\n\t\n\tvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\t\n\t/**\n\t * Encode a packet as a single string if non-binary, or as a\n\t * buffer sequence, depending on packet type.\n\t *\n\t * @param {Object} obj - packet object\n\t * @param {Function} callback - function to handle encodings (likely engine.write)\n\t * @return Calls callback with Array of encodings\n\t * @api public\n\t */\n\t\n\tEncoder.prototype.encode = function(obj, callback){\n\t  debug('encoding packet %j', obj);\n\t\n\t  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n\t    encodeAsBinary(obj, callback);\n\t  } else {\n\t    var encoding = encodeAsString(obj);\n\t    callback([encoding]);\n\t  }\n\t};\n\t\n\t/**\n\t * Encode packet as string.\n\t *\n\t * @param {Object} packet\n\t * @return {String} encoded\n\t * @api private\n\t */\n\t\n\tfunction encodeAsString(obj) {\n\t\n\t  // first is type\n\t  var str = '' + obj.type;\n\t\n\t  // attachments if we have them\n\t  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n\t    str += obj.attachments + '-';\n\t  }\n\t\n\t  // if we have a namespace other than `/`\n\t  // we append it followed by a comma `,`\n\t  if (obj.nsp && '/' !== obj.nsp) {\n\t    str += obj.nsp + ',';\n\t  }\n\t\n\t  // immediately followed by the id\n\t  if (null != obj.id) {\n\t    str += obj.id;\n\t  }\n\t\n\t  // json data\n\t  if (null != obj.data) {\n\t    var payload = tryStringify(obj.data);\n\t    if (payload !== false) {\n\t      str += payload;\n\t    } else {\n\t      return ERROR_PACKET;\n\t    }\n\t  }\n\t\n\t  debug('encoded %j as %s', obj, str);\n\t  return str;\n\t}\n\t\n\tfunction tryStringify(str) {\n\t  try {\n\t    return JSON.stringify(str);\n\t  } catch(e){\n\t    return false;\n\t  }\n\t}\n\t\n\t/**\n\t * Encode packet as 'buffer sequence' by removing blobs, and\n\t * deconstructing packet into object with placeholders and\n\t * a list of buffers.\n\t *\n\t * @param {Object} packet\n\t * @return {Buffer} encoded\n\t * @api private\n\t */\n\t\n\tfunction encodeAsBinary(obj, callback) {\n\t\n\t  function writeEncoding(bloblessData) {\n\t    var deconstruction = binary.deconstructPacket(bloblessData);\n\t    var pack = encodeAsString(deconstruction.packet);\n\t    var buffers = deconstruction.buffers;\n\t\n\t    buffers.unshift(pack); // add packet info to beginning of data list\n\t    callback(buffers); // write all the buffers\n\t  }\n\t\n\t  binary.removeBlobs(obj, writeEncoding);\n\t}\n\t\n\t/**\n\t * A socket.io Decoder instance\n\t *\n\t * @return {Object} decoder\n\t * @api public\n\t */\n\t\n\tfunction Decoder() {\n\t  this.reconstructor = null;\n\t}\n\t\n\t/**\n\t * Mix in `Emitter` with Decoder.\n\t */\n\t\n\tEmitter(Decoder.prototype);\n\t\n\t/**\n\t * Decodes an ecoded packet string into packet JSON.\n\t *\n\t * @param {String} obj - encoded packet\n\t * @return {Object} packet\n\t * @api public\n\t */\n\t\n\tDecoder.prototype.add = function(obj) {\n\t  var packet;\n\t  if (typeof obj === 'string') {\n\t    packet = decodeString(obj);\n\t    if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n\t      this.reconstructor = new BinaryReconstructor(packet);\n\t\n\t      // no attachments, labeled binary but no binary data to follow\n\t      if (this.reconstructor.reconPack.attachments === 0) {\n\t        this.emit('decoded', packet);\n\t      }\n\t    } else { // non-binary full packet\n\t      this.emit('decoded', packet);\n\t    }\n\t  }\n\t  else if (isBuf(obj) || obj.base64) { // raw binary data\n\t    if (!this.reconstructor) {\n\t      throw new Error('got binary data when not reconstructing a packet');\n\t    } else {\n\t      packet = this.reconstructor.takeBinaryData(obj);\n\t      if (packet) { // received final buffer\n\t        this.reconstructor = null;\n\t        this.emit('decoded', packet);\n\t      }\n\t    }\n\t  }\n\t  else {\n\t    throw new Error('Unknown type: ' + obj);\n\t  }\n\t};\n\t\n\t/**\n\t * Decode a packet String (JSON data)\n\t *\n\t * @param {String} str\n\t * @return {Object} packet\n\t * @api private\n\t */\n\t\n\tfunction decodeString(str) {\n\t  var i = 0;\n\t  // look up type\n\t  var p = {\n\t    type: Number(str.charAt(0))\n\t  };\n\t\n\t  if (null == exports.types[p.type]) {\n\t    return error('unknown packet type ' + p.type);\n\t  }\n\t\n\t  // look up attachments if type binary\n\t  if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n\t    var buf = '';\n\t    while (str.charAt(++i) !== '-') {\n\t      buf += str.charAt(i);\n\t      if (i == str.length) break;\n\t    }\n\t    if (buf != Number(buf) || str.charAt(i) !== '-') {\n\t      throw new Error('Illegal attachments');\n\t    }\n\t    p.attachments = Number(buf);\n\t  }\n\t\n\t  // look up namespace (if any)\n\t  if ('/' === str.charAt(i + 1)) {\n\t    p.nsp = '';\n\t    while (++i) {\n\t      var c = str.charAt(i);\n\t      if (',' === c) break;\n\t      p.nsp += c;\n\t      if (i === str.length) break;\n\t    }\n\t  } else {\n\t    p.nsp = '/';\n\t  }\n\t\n\t  // look up id\n\t  var next = str.charAt(i + 1);\n\t  if ('' !== next && Number(next) == next) {\n\t    p.id = '';\n\t    while (++i) {\n\t      var c = str.charAt(i);\n\t      if (null == c || Number(c) != c) {\n\t        --i;\n\t        break;\n\t      }\n\t      p.id += str.charAt(i);\n\t      if (i === str.length) break;\n\t    }\n\t    p.id = Number(p.id);\n\t  }\n\t\n\t  // look up json data\n\t  if (str.charAt(++i)) {\n\t    var payload = tryParse(str.substr(i));\n\t    var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));\n\t    if (isPayloadValid) {\n\t      p.data = payload;\n\t    } else {\n\t      return error('invalid payload');\n\t    }\n\t  }\n\t\n\t  debug('decoded %s as %j', str, p);\n\t  return p;\n\t}\n\t\n\tfunction tryParse(str) {\n\t  try {\n\t    return JSON.parse(str);\n\t  } catch(e){\n\t    return false;\n\t  }\n\t}\n\t\n\t/**\n\t * Deallocates a parser's resources\n\t *\n\t * @api public\n\t */\n\t\n\tDecoder.prototype.destroy = function() {\n\t  if (this.reconstructor) {\n\t    this.reconstructor.finishedReconstruction();\n\t  }\n\t};\n\t\n\t/**\n\t * A manager of a binary event's 'buffer sequence'. Should\n\t * be constructed whenever a packet of type BINARY_EVENT is\n\t * decoded.\n\t *\n\t * @param {Object} packet\n\t * @return {BinaryReconstructor} initialized reconstructor\n\t * @api private\n\t */\n\t\n\tfunction BinaryReconstructor(packet) {\n\t  this.reconPack = packet;\n\t  this.buffers = [];\n\t}\n\t\n\t/**\n\t * Method to be called when binary data received from connection\n\t * after a BINARY_EVENT packet.\n\t *\n\t * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n\t * @return {null | Object} returns null if more binary data is expected or\n\t *   a reconstructed packet object if all buffers have been received.\n\t * @api private\n\t */\n\t\n\tBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n\t  this.buffers.push(binData);\n\t  if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n\t    var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n\t    this.finishedReconstruction();\n\t    return packet;\n\t  }\n\t  return null;\n\t};\n\t\n\t/**\n\t * Cleans up binary packet reconstruction variables.\n\t *\n\t * @api private\n\t */\n\t\n\tBinaryReconstructor.prototype.finishedReconstruction = function() {\n\t  this.reconPack = null;\n\t  this.buffers = [];\n\t};\n\t\n\tfunction error(msg) {\n\t  return {\n\t    type: exports.ERROR,\n\t    data: 'parser error: ' + msg\n\t  };\n\t}\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\r\n\t/**\r\n\t * Expose `Emitter`.\r\n\t */\r\n\t\r\n\tif (true) {\r\n\t  module.exports = Emitter;\r\n\t}\r\n\t\r\n\t/**\r\n\t * Initialize a new `Emitter`.\r\n\t *\r\n\t * @api public\r\n\t */\r\n\t\r\n\tfunction Emitter(obj) {\r\n\t  if (obj) return mixin(obj);\r\n\t};\r\n\t\r\n\t/**\r\n\t * Mixin the emitter properties.\r\n\t *\r\n\t * @param {Object} obj\r\n\t * @return {Object}\r\n\t * @api private\r\n\t */\r\n\t\r\n\tfunction mixin(obj) {\r\n\t  for (var key in Emitter.prototype) {\r\n\t    obj[key] = Emitter.prototype[key];\r\n\t  }\r\n\t  return obj;\r\n\t}\r\n\t\r\n\t/**\r\n\t * Listen on the given `event` with `fn`.\r\n\t *\r\n\t * @param {String} event\r\n\t * @param {Function} fn\r\n\t * @return {Emitter}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.on =\r\n\tEmitter.prototype.addEventListener = function(event, fn){\r\n\t  this._callbacks = this._callbacks || {};\r\n\t  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n\t    .push(fn);\r\n\t  return this;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Adds an `event` listener that will be invoked a single\r\n\t * time then automatically removed.\r\n\t *\r\n\t * @param {String} event\r\n\t * @param {Function} fn\r\n\t * @return {Emitter}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.once = function(event, fn){\r\n\t  function on() {\r\n\t    this.off(event, on);\r\n\t    fn.apply(this, arguments);\r\n\t  }\r\n\t\r\n\t  on.fn = fn;\r\n\t  this.on(event, on);\r\n\t  return this;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Remove the given callback for `event` or all\r\n\t * registered callbacks.\r\n\t *\r\n\t * @param {String} event\r\n\t * @param {Function} fn\r\n\t * @return {Emitter}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.off =\r\n\tEmitter.prototype.removeListener =\r\n\tEmitter.prototype.removeAllListeners =\r\n\tEmitter.prototype.removeEventListener = function(event, fn){\r\n\t  this._callbacks = this._callbacks || {};\r\n\t\r\n\t  // all\r\n\t  if (0 == arguments.length) {\r\n\t    this._callbacks = {};\r\n\t    return this;\r\n\t  }\r\n\t\r\n\t  // specific event\r\n\t  var callbacks = this._callbacks['$' + event];\r\n\t  if (!callbacks) return this;\r\n\t\r\n\t  // remove all handlers\r\n\t  if (1 == arguments.length) {\r\n\t    delete this._callbacks['$' + event];\r\n\t    return this;\r\n\t  }\r\n\t\r\n\t  // remove specific handler\r\n\t  var cb;\r\n\t  for (var i = 0; i < callbacks.length; i++) {\r\n\t    cb = callbacks[i];\r\n\t    if (cb === fn || cb.fn === fn) {\r\n\t      callbacks.splice(i, 1);\r\n\t      break;\r\n\t    }\r\n\t  }\r\n\t  return this;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Emit `event` with the given args.\r\n\t *\r\n\t * @param {String} event\r\n\t * @param {Mixed} ...\r\n\t * @return {Emitter}\r\n\t */\r\n\t\r\n\tEmitter.prototype.emit = function(event){\r\n\t  this._callbacks = this._callbacks || {};\r\n\t  var args = [].slice.call(arguments, 1)\r\n\t    , callbacks = this._callbacks['$' + event];\r\n\t\r\n\t  if (callbacks) {\r\n\t    callbacks = callbacks.slice(0);\r\n\t    for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n\t      callbacks[i].apply(this, args);\r\n\t    }\r\n\t  }\r\n\t\r\n\t  return this;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Return array of callbacks for `event`.\r\n\t *\r\n\t * @param {String} event\r\n\t * @return {Array}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.listeners = function(event){\r\n\t  this._callbacks = this._callbacks || {};\r\n\t  return this._callbacks['$' + event] || [];\r\n\t};\r\n\t\r\n\t/**\r\n\t * Check if this emitter has `event` handlers.\r\n\t *\r\n\t * @param {String} event\r\n\t * @return {Boolean}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.hasListeners = function(event){\r\n\t  return !! this.listeners(event).length;\r\n\t};\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/*global Blob,File*/\n\t\n\t/**\n\t * Module requirements\n\t */\n\t\n\tvar isArray = __webpack_require__(10);\n\tvar isBuf = __webpack_require__(11);\n\tvar toString = Object.prototype.toString;\n\tvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\n\tvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\t\n\t/**\n\t * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n\t * Anything with blobs or files should be fed through removeBlobs before coming\n\t * here.\n\t *\n\t * @param {Object} packet - socket.io event packet\n\t * @return {Object} with deconstructed packet and list of buffers\n\t * @api public\n\t */\n\t\n\texports.deconstructPacket = function(packet) {\n\t  var buffers = [];\n\t  var packetData = packet.data;\n\t  var pack = packet;\n\t  pack.data = _deconstructPacket(packetData, buffers);\n\t  pack.attachments = buffers.length; // number of binary 'attachments'\n\t  return {packet: pack, buffers: buffers};\n\t};\n\t\n\tfunction _deconstructPacket(data, buffers) {\n\t  if (!data) return data;\n\t\n\t  if (isBuf(data)) {\n\t    var placeholder = { _placeholder: true, num: buffers.length };\n\t    buffers.push(data);\n\t    return placeholder;\n\t  } else if (isArray(data)) {\n\t    var newData = new Array(data.length);\n\t    for (var i = 0; i < data.length; i++) {\n\t      newData[i] = _deconstructPacket(data[i], buffers);\n\t    }\n\t    return newData;\n\t  } else if (typeof data === 'object' && !(data instanceof Date)) {\n\t    var newData = {};\n\t    for (var key in data) {\n\t      newData[key] = _deconstructPacket(data[key], buffers);\n\t    }\n\t    return newData;\n\t  }\n\t  return data;\n\t}\n\t\n\t/**\n\t * Reconstructs a binary packet from its placeholder packet and buffers\n\t *\n\t * @param {Object} packet - event packet with placeholders\n\t * @param {Array} buffers - binary buffers to put in placeholder positions\n\t * @return {Object} reconstructed packet\n\t * @api public\n\t */\n\t\n\texports.reconstructPacket = function(packet, buffers) {\n\t  packet.data = _reconstructPacket(packet.data, buffers);\n\t  packet.attachments = undefined; // no longer useful\n\t  return packet;\n\t};\n\t\n\tfunction _reconstructPacket(data, buffers) {\n\t  if (!data) return data;\n\t\n\t  if (data && data._placeholder) {\n\t    return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n\t  } else if (isArray(data)) {\n\t    for (var i = 0; i < data.length; i++) {\n\t      data[i] = _reconstructPacket(data[i], buffers);\n\t    }\n\t  } else if (typeof data === 'object') {\n\t    for (var key in data) {\n\t      data[key] = _reconstructPacket(data[key], buffers);\n\t    }\n\t  }\n\t\n\t  return data;\n\t}\n\t\n\t/**\n\t * Asynchronously removes Blobs or Files from data via\n\t * FileReader's readAsArrayBuffer method. Used before encoding\n\t * data as msgpack. Calls callback with the blobless data.\n\t *\n\t * @param {Object} data\n\t * @param {Function} callback\n\t * @api private\n\t */\n\t\n\texports.removeBlobs = function(data, callback) {\n\t  function _removeBlobs(obj, curKey, containingObject) {\n\t    if (!obj) return obj;\n\t\n\t    // convert any blob\n\t    if ((withNativeBlob && obj instanceof Blob) ||\n\t        (withNativeFile && obj instanceof File)) {\n\t      pendingBlobs++;\n\t\n\t      // async filereader\n\t      var fileReader = new FileReader();\n\t      fileReader.onload = function() { // this.result == arraybuffer\n\t        if (containingObject) {\n\t          containingObject[curKey] = this.result;\n\t        }\n\t        else {\n\t          bloblessData = this.result;\n\t        }\n\t\n\t        // if nothing pending its callback time\n\t        if(! --pendingBlobs) {\n\t          callback(bloblessData);\n\t        }\n\t      };\n\t\n\t      fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n\t    } else if (isArray(obj)) { // handle array\n\t      for (var i = 0; i < obj.length; i++) {\n\t        _removeBlobs(obj[i], i, obj);\n\t      }\n\t    } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n\t      for (var key in obj) {\n\t        _removeBlobs(obj[key], key, obj);\n\t      }\n\t    }\n\t  }\n\t\n\t  var pendingBlobs = 0;\n\t  var bloblessData = data;\n\t  _removeBlobs(bloblessData);\n\t  if (!pendingBlobs) {\n\t    callback(bloblessData);\n\t  }\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = Array.isArray || function (arr) {\n\t  return toString.call(arr) == '[object Array]';\n\t};\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {\n\tmodule.exports = isBuf;\n\t\n\tvar withNativeBuffer = typeof global.Buffer === 'function' && typeof global.Buffer.isBuffer === 'function';\n\tvar withNativeArrayBuffer = typeof global.ArrayBuffer === 'function';\n\t\n\tvar isView = (function () {\n\t  if (withNativeArrayBuffer && typeof global.ArrayBuffer.isView === 'function') {\n\t    return global.ArrayBuffer.isView;\n\t  } else {\n\t    return function (obj) { return obj.buffer instanceof global.ArrayBuffer; };\n\t  }\n\t})();\n\t\n\t/**\n\t * Returns true if obj is a buffer or an arraybuffer.\n\t *\n\t * @api private\n\t */\n\t\n\tfunction isBuf(obj) {\n\t  return (withNativeBuffer && global.Buffer.isBuffer(obj)) ||\n\t          (withNativeArrayBuffer && (obj instanceof global.ArrayBuffer || isView(obj)));\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar eio = __webpack_require__(13);\n\tvar Socket = __webpack_require__(37);\n\tvar Emitter = __webpack_require__(8);\n\tvar parser = __webpack_require__(7);\n\tvar on = __webpack_require__(39);\n\tvar bind = __webpack_require__(40);\n\tvar debug = __webpack_require__(3)('socket.io-client:manager');\n\tvar indexOf = __webpack_require__(36);\n\tvar Backoff = __webpack_require__(41);\n\t\n\t/**\n\t * IE6+ hasOwnProperty\n\t */\n\t\n\tvar has = Object.prototype.hasOwnProperty;\n\t\n\t/**\n\t * Module exports\n\t */\n\t\n\tmodule.exports = Manager;\n\t\n\t/**\n\t * `Manager` constructor.\n\t *\n\t * @param {String} engine instance or engine uri/opts\n\t * @param {Object} options\n\t * @api public\n\t */\n\t\n\tfunction Manager(uri, opts) {\n\t  if (!(this instanceof Manager)) return new Manager(uri, opts);\n\t  if (uri && 'object' === (typeof uri === 'undefined' ? 'undefined' : _typeof(uri))) {\n\t    opts = uri;\n\t    uri = undefined;\n\t  }\n\t  opts = opts || {};\n\t\n\t  opts.path = opts.path || '/socket.io';\n\t  this.nsps = {};\n\t  this.subs = [];\n\t  this.opts = opts;\n\t  this.reconnection(opts.reconnection !== false);\n\t  this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n\t  this.reconnectionDelay(opts.reconnectionDelay || 1000);\n\t  this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n\t  this.randomizationFactor(opts.randomizationFactor || 0.5);\n\t  this.backoff = new Backoff({\n\t    min: this.reconnectionDelay(),\n\t    max: this.reconnectionDelayMax(),\n\t    jitter: this.randomizationFactor()\n\t  });\n\t  this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n\t  this.readyState = 'closed';\n\t  this.uri = uri;\n\t  this.connecting = [];\n\t  this.lastPing = null;\n\t  this.encoding = false;\n\t  this.packetBuffer = [];\n\t  var _parser = opts.parser || parser;\n\t  this.encoder = new _parser.Encoder();\n\t  this.decoder = new _parser.Decoder();\n\t  this.autoConnect = opts.autoConnect !== false;\n\t  if (this.autoConnect) this.open();\n\t}\n\t\n\t/**\n\t * Propagate given event to sockets and emit on `this`\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.emitAll = function () {\n\t  this.emit.apply(this, arguments);\n\t  for (var nsp in this.nsps) {\n\t    if (has.call(this.nsps, nsp)) {\n\t      this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Update `socket.id` of all sockets\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.updateSocketIds = function () {\n\t  for (var nsp in this.nsps) {\n\t    if (has.call(this.nsps, nsp)) {\n\t      this.nsps[nsp].id = this.generateId(nsp);\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * generate `socket.id` for the given `nsp`\n\t *\n\t * @param {String} nsp\n\t * @return {String}\n\t * @api private\n\t */\n\t\n\tManager.prototype.generateId = function (nsp) {\n\t  return (nsp === '/' ? '' : nsp + '#') + this.engine.id;\n\t};\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Manager.prototype);\n\t\n\t/**\n\t * Sets the `reconnection` config.\n\t *\n\t * @param {Boolean} true/false if it should automatically reconnect\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.reconnection = function (v) {\n\t  if (!arguments.length) return this._reconnection;\n\t  this._reconnection = !!v;\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the reconnection attempts config.\n\t *\n\t * @param {Number} max reconnection attempts before giving up\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.reconnectionAttempts = function (v) {\n\t  if (!arguments.length) return this._reconnectionAttempts;\n\t  this._reconnectionAttempts = v;\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the delay between reconnections.\n\t *\n\t * @param {Number} delay\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.reconnectionDelay = function (v) {\n\t  if (!arguments.length) return this._reconnectionDelay;\n\t  this._reconnectionDelay = v;\n\t  this.backoff && this.backoff.setMin(v);\n\t  return this;\n\t};\n\t\n\tManager.prototype.randomizationFactor = function (v) {\n\t  if (!arguments.length) return this._randomizationFactor;\n\t  this._randomizationFactor = v;\n\t  this.backoff && this.backoff.setJitter(v);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the maximum delay between reconnections.\n\t *\n\t * @param {Number} delay\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.reconnectionDelayMax = function (v) {\n\t  if (!arguments.length) return this._reconnectionDelayMax;\n\t  this._reconnectionDelayMax = v;\n\t  this.backoff && this.backoff.setMax(v);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the connection timeout. `false` to disable\n\t *\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.timeout = function (v) {\n\t  if (!arguments.length) return this._timeout;\n\t  this._timeout = v;\n\t  return this;\n\t};\n\t\n\t/**\n\t * Starts trying to reconnect if reconnection is enabled and we have not\n\t * started reconnecting yet\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.maybeReconnectOnOpen = function () {\n\t  // Only try to reconnect if it's the first time we're connecting\n\t  if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n\t    // keeps reconnection from firing twice for the same reconnection loop\n\t    this.reconnect();\n\t  }\n\t};\n\t\n\t/**\n\t * Sets the current transport `socket`.\n\t *\n\t * @param {Function} optional, callback\n\t * @return {Manager} self\n\t * @api public\n\t */\n\t\n\tManager.prototype.open = Manager.prototype.connect = function (fn, opts) {\n\t  debug('readyState %s', this.readyState);\n\t  if (~this.readyState.indexOf('open')) return this;\n\t\n\t  debug('opening %s', this.uri);\n\t  this.engine = eio(this.uri, this.opts);\n\t  var socket = this.engine;\n\t  var self = this;\n\t  this.readyState = 'opening';\n\t  this.skipReconnect = false;\n\t\n\t  // emit `open`\n\t  var openSub = on(socket, 'open', function () {\n\t    self.onopen();\n\t    fn && fn();\n\t  });\n\t\n\t  // emit `connect_error`\n\t  var errorSub = on(socket, 'error', function (data) {\n\t    debug('connect_error');\n\t    self.cleanup();\n\t    self.readyState = 'closed';\n\t    self.emitAll('connect_error', data);\n\t    if (fn) {\n\t      var err = new Error('Connection error');\n\t      err.data = data;\n\t      fn(err);\n\t    } else {\n\t      // Only do this if there is no fn to handle the error\n\t      self.maybeReconnectOnOpen();\n\t    }\n\t  });\n\t\n\t  // emit `connect_timeout`\n\t  if (false !== this._timeout) {\n\t    var timeout = this._timeout;\n\t    debug('connect attempt will timeout after %d', timeout);\n\t\n\t    // set timer\n\t    var timer = setTimeout(function () {\n\t      debug('connect attempt timed out after %d', timeout);\n\t      openSub.destroy();\n\t      socket.close();\n\t      socket.emit('error', 'timeout');\n\t      self.emitAll('connect_timeout', timeout);\n\t    }, timeout);\n\t\n\t    this.subs.push({\n\t      destroy: function destroy() {\n\t        clearTimeout(timer);\n\t      }\n\t    });\n\t  }\n\t\n\t  this.subs.push(openSub);\n\t  this.subs.push(errorSub);\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Called upon transport open.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onopen = function () {\n\t  debug('open');\n\t\n\t  // clear old subs\n\t  this.cleanup();\n\t\n\t  // mark as open\n\t  this.readyState = 'open';\n\t  this.emit('open');\n\t\n\t  // add new subs\n\t  var socket = this.engine;\n\t  this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n\t  this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n\t  this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n\t  this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n\t  this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n\t  this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n\t};\n\t\n\t/**\n\t * Called upon a ping.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onping = function () {\n\t  this.lastPing = new Date();\n\t  this.emitAll('ping');\n\t};\n\t\n\t/**\n\t * Called upon a packet.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onpong = function () {\n\t  this.emitAll('pong', new Date() - this.lastPing);\n\t};\n\t\n\t/**\n\t * Called with data.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.ondata = function (data) {\n\t  this.decoder.add(data);\n\t};\n\t\n\t/**\n\t * Called when parser fully decodes a packet.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.ondecoded = function (packet) {\n\t  this.emit('packet', packet);\n\t};\n\t\n\t/**\n\t * Called upon socket error.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onerror = function (err) {\n\t  debug('error', err);\n\t  this.emitAll('error', err);\n\t};\n\t\n\t/**\n\t * Creates a new socket for the given `nsp`.\n\t *\n\t * @return {Socket}\n\t * @api public\n\t */\n\t\n\tManager.prototype.socket = function (nsp, opts) {\n\t  var socket = this.nsps[nsp];\n\t  if (!socket) {\n\t    socket = new Socket(this, nsp, opts);\n\t    this.nsps[nsp] = socket;\n\t    var self = this;\n\t    socket.on('connecting', onConnecting);\n\t    socket.on('connect', function () {\n\t      socket.id = self.generateId(nsp);\n\t    });\n\t\n\t    if (this.autoConnect) {\n\t      // manually call here since connecting event is fired before listening\n\t      onConnecting();\n\t    }\n\t  }\n\t\n\t  function onConnecting() {\n\t    if (!~indexOf(self.connecting, socket)) {\n\t      self.connecting.push(socket);\n\t    }\n\t  }\n\t\n\t  return socket;\n\t};\n\t\n\t/**\n\t * Called upon a socket close.\n\t *\n\t * @param {Socket} socket\n\t */\n\t\n\tManager.prototype.destroy = function (socket) {\n\t  var index = indexOf(this.connecting, socket);\n\t  if (~index) this.connecting.splice(index, 1);\n\t  if (this.connecting.length) return;\n\t\n\t  this.close();\n\t};\n\t\n\t/**\n\t * Writes a packet.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tManager.prototype.packet = function (packet) {\n\t  debug('writing packet %j', packet);\n\t  var self = this;\n\t  if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\t\n\t  if (!self.encoding) {\n\t    // encode, then write to engine with result\n\t    self.encoding = true;\n\t    this.encoder.encode(packet, function (encodedPackets) {\n\t      for (var i = 0; i < encodedPackets.length; i++) {\n\t        self.engine.write(encodedPackets[i], packet.options);\n\t      }\n\t      self.encoding = false;\n\t      self.processPacketQueue();\n\t    });\n\t  } else {\n\t    // add packet to the queue\n\t    self.packetBuffer.push(packet);\n\t  }\n\t};\n\t\n\t/**\n\t * If packet buffer is non-empty, begins encoding the\n\t * next packet in line.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.processPacketQueue = function () {\n\t  if (this.packetBuffer.length > 0 && !this.encoding) {\n\t    var pack = this.packetBuffer.shift();\n\t    this.packet(pack);\n\t  }\n\t};\n\t\n\t/**\n\t * Clean up transport subscriptions and packet buffer.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.cleanup = function () {\n\t  debug('cleanup');\n\t\n\t  var subsLength = this.subs.length;\n\t  for (var i = 0; i < subsLength; i++) {\n\t    var sub = this.subs.shift();\n\t    sub.destroy();\n\t  }\n\t\n\t  this.packetBuffer = [];\n\t  this.encoding = false;\n\t  this.lastPing = null;\n\t\n\t  this.decoder.destroy();\n\t};\n\t\n\t/**\n\t * Close the current socket.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.close = Manager.prototype.disconnect = function () {\n\t  debug('disconnect');\n\t  this.skipReconnect = true;\n\t  this.reconnecting = false;\n\t  if ('opening' === this.readyState) {\n\t    // `onclose` will not fire because\n\t    // an open event never happened\n\t    this.cleanup();\n\t  }\n\t  this.backoff.reset();\n\t  this.readyState = 'closed';\n\t  if (this.engine) this.engine.close();\n\t};\n\t\n\t/**\n\t * Called upon engine close.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onclose = function (reason) {\n\t  debug('onclose');\n\t\n\t  this.cleanup();\n\t  this.backoff.reset();\n\t  this.readyState = 'closed';\n\t  this.emit('close', reason);\n\t\n\t  if (this._reconnection && !this.skipReconnect) {\n\t    this.reconnect();\n\t  }\n\t};\n\t\n\t/**\n\t * Attempt a reconnection.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.reconnect = function () {\n\t  if (this.reconnecting || this.skipReconnect) return this;\n\t\n\t  var self = this;\n\t\n\t  if (this.backoff.attempts >= this._reconnectionAttempts) {\n\t    debug('reconnect failed');\n\t    this.backoff.reset();\n\t    this.emitAll('reconnect_failed');\n\t    this.reconnecting = false;\n\t  } else {\n\t    var delay = this.backoff.duration();\n\t    debug('will wait %dms before reconnect attempt', delay);\n\t\n\t    this.reconnecting = true;\n\t    var timer = setTimeout(function () {\n\t      if (self.skipReconnect) return;\n\t\n\t      debug('attempting reconnect');\n\t      self.emitAll('reconnect_attempt', self.backoff.attempts);\n\t      self.emitAll('reconnecting', self.backoff.attempts);\n\t\n\t      // check again for the case socket closed in above events\n\t      if (self.skipReconnect) return;\n\t\n\t      self.open(function (err) {\n\t        if (err) {\n\t          debug('reconnect attempt error');\n\t          self.reconnecting = false;\n\t          self.reconnect();\n\t          self.emitAll('reconnect_error', err.data);\n\t        } else {\n\t          debug('reconnect success');\n\t          self.onreconnect();\n\t        }\n\t      });\n\t    }, delay);\n\t\n\t    this.subs.push({\n\t      destroy: function destroy() {\n\t        clearTimeout(timer);\n\t      }\n\t    });\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon successful reconnect.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onreconnect = function () {\n\t  var attempt = this.backoff.attempts;\n\t  this.reconnecting = false;\n\t  this.backoff.reset();\n\t  this.updateSocketIds();\n\t  this.emitAll('reconnect', attempt);\n\t};\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\n\tmodule.exports = __webpack_require__(14);\n\t\n\t/**\n\t * Exports parser\n\t *\n\t * @api public\n\t *\n\t */\n\tmodule.exports.parser = __webpack_require__(21);\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module dependencies.\n\t */\n\t\n\tvar transports = __webpack_require__(15);\n\tvar Emitter = __webpack_require__(8);\n\tvar debug = __webpack_require__(3)('engine.io-client:socket');\n\tvar index = __webpack_require__(36);\n\tvar parser = __webpack_require__(21);\n\tvar parseuri = __webpack_require__(2);\n\tvar parseqs = __webpack_require__(30);\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = Socket;\n\t\n\t/**\n\t * Socket constructor.\n\t *\n\t * @param {String|Object} uri or options\n\t * @param {Object} options\n\t * @api public\n\t */\n\t\n\tfunction Socket (uri, opts) {\n\t  if (!(this instanceof Socket)) return new Socket(uri, opts);\n\t\n\t  opts = opts || {};\n\t\n\t  if (uri && 'object' === typeof uri) {\n\t    opts = uri;\n\t    uri = null;\n\t  }\n\t\n\t  if (uri) {\n\t    uri = parseuri(uri);\n\t    opts.hostname = uri.host;\n\t    opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n\t    opts.port = uri.port;\n\t    if (uri.query) opts.query = uri.query;\n\t  } else if (opts.host) {\n\t    opts.hostname = parseuri(opts.host).host;\n\t  }\n\t\n\t  this.secure = null != opts.secure ? opts.secure\n\t    : (global.location && 'https:' === location.protocol);\n\t\n\t  if (opts.hostname && !opts.port) {\n\t    // if no port is specified manually, use the protocol default\n\t    opts.port = this.secure ? '443' : '80';\n\t  }\n\t\n\t  this.agent = opts.agent || false;\n\t  this.hostname = opts.hostname ||\n\t    (global.location ? location.hostname : 'localhost');\n\t  this.port = opts.port || (global.location && location.port\n\t      ? location.port\n\t      : (this.secure ? 443 : 80));\n\t  this.query = opts.query || {};\n\t  if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n\t  this.upgrade = false !== opts.upgrade;\n\t  this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n\t  this.forceJSONP = !!opts.forceJSONP;\n\t  this.jsonp = false !== opts.jsonp;\n\t  this.forceBase64 = !!opts.forceBase64;\n\t  this.enablesXDR = !!opts.enablesXDR;\n\t  this.timestampParam = opts.timestampParam || 't';\n\t  this.timestampRequests = opts.timestampRequests;\n\t  this.transports = opts.transports || ['polling', 'websocket'];\n\t  this.transportOptions = opts.transportOptions || {};\n\t  this.readyState = '';\n\t  this.writeBuffer = [];\n\t  this.prevBufferLen = 0;\n\t  this.policyPort = opts.policyPort || 843;\n\t  this.rememberUpgrade = opts.rememberUpgrade || false;\n\t  this.binaryType = null;\n\t  this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n\t  this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\t\n\t  if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n\t  if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n\t    this.perMessageDeflate.threshold = 1024;\n\t  }\n\t\n\t  // SSL options for Node.js client\n\t  this.pfx = opts.pfx || null;\n\t  this.key = opts.key || null;\n\t  this.passphrase = opts.passphrase || null;\n\t  this.cert = opts.cert || null;\n\t  this.ca = opts.ca || null;\n\t  this.ciphers = opts.ciphers || null;\n\t  this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n\t  this.forceNode = !!opts.forceNode;\n\t\n\t  // other options for Node.js client\n\t  var freeGlobal = typeof global === 'object' && global;\n\t  if (freeGlobal.global === freeGlobal) {\n\t    if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n\t      this.extraHeaders = opts.extraHeaders;\n\t    }\n\t\n\t    if (opts.localAddress) {\n\t      this.localAddress = opts.localAddress;\n\t    }\n\t  }\n\t\n\t  // set on handshake\n\t  this.id = null;\n\t  this.upgrades = null;\n\t  this.pingInterval = null;\n\t  this.pingTimeout = null;\n\t\n\t  // set on heartbeat\n\t  this.pingIntervalTimer = null;\n\t  this.pingTimeoutTimer = null;\n\t\n\t  this.open();\n\t}\n\t\n\tSocket.priorWebsocketSuccess = false;\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Socket.prototype);\n\t\n\t/**\n\t * Protocol version.\n\t *\n\t * @api public\n\t */\n\t\n\tSocket.protocol = parser.protocol; // this is an int\n\t\n\t/**\n\t * Expose deps for legacy compatibility\n\t * and standalone browser access.\n\t */\n\t\n\tSocket.Socket = Socket;\n\tSocket.Transport = __webpack_require__(20);\n\tSocket.transports = __webpack_require__(15);\n\tSocket.parser = __webpack_require__(21);\n\t\n\t/**\n\t * Creates transport of the given type.\n\t *\n\t * @param {String} transport name\n\t * @return {Transport}\n\t * @api private\n\t */\n\t\n\tSocket.prototype.createTransport = function (name) {\n\t  debug('creating transport \"%s\"', name);\n\t  var query = clone(this.query);\n\t\n\t  // append engine.io protocol identifier\n\t  query.EIO = parser.protocol;\n\t\n\t  // transport name\n\t  query.transport = name;\n\t\n\t  // per-transport options\n\t  var options = this.transportOptions[name] || {};\n\t\n\t  // session id if we already have one\n\t  if (this.id) query.sid = this.id;\n\t\n\t  var transport = new transports[name]({\n\t    query: query,\n\t    socket: this,\n\t    agent: options.agent || this.agent,\n\t    hostname: options.hostname || this.hostname,\n\t    port: options.port || this.port,\n\t    secure: options.secure || this.secure,\n\t    path: options.path || this.path,\n\t    forceJSONP: options.forceJSONP || this.forceJSONP,\n\t    jsonp: options.jsonp || this.jsonp,\n\t    forceBase64: options.forceBase64 || this.forceBase64,\n\t    enablesXDR: options.enablesXDR || this.enablesXDR,\n\t    timestampRequests: options.timestampRequests || this.timestampRequests,\n\t    timestampParam: options.timestampParam || this.timestampParam,\n\t    policyPort: options.policyPort || this.policyPort,\n\t    pfx: options.pfx || this.pfx,\n\t    key: options.key || this.key,\n\t    passphrase: options.passphrase || this.passphrase,\n\t    cert: options.cert || this.cert,\n\t    ca: options.ca || this.ca,\n\t    ciphers: options.ciphers || this.ciphers,\n\t    rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n\t    perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n\t    extraHeaders: options.extraHeaders || this.extraHeaders,\n\t    forceNode: options.forceNode || this.forceNode,\n\t    localAddress: options.localAddress || this.localAddress,\n\t    requestTimeout: options.requestTimeout || this.requestTimeout,\n\t    protocols: options.protocols || void (0)\n\t  });\n\t\n\t  return transport;\n\t};\n\t\n\tfunction clone (obj) {\n\t  var o = {};\n\t  for (var i in obj) {\n\t    if (obj.hasOwnProperty(i)) {\n\t      o[i] = obj[i];\n\t    }\n\t  }\n\t  return o;\n\t}\n\t\n\t/**\n\t * Initializes transport to use and starts probe.\n\t *\n\t * @api private\n\t */\n\tSocket.prototype.open = function () {\n\t  var transport;\n\t  if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n\t    transport = 'websocket';\n\t  } else if (0 === this.transports.length) {\n\t    // Emit error on next tick so it can be listened to\n\t    var self = this;\n\t    setTimeout(function () {\n\t      self.emit('error', 'No transports available');\n\t    }, 0);\n\t    return;\n\t  } else {\n\t    transport = this.transports[0];\n\t  }\n\t  this.readyState = 'opening';\n\t\n\t  // Retry with the next transport if the transport is disabled (jsonp: false)\n\t  try {\n\t    transport = this.createTransport(transport);\n\t  } catch (e) {\n\t    this.transports.shift();\n\t    this.open();\n\t    return;\n\t  }\n\t\n\t  transport.open();\n\t  this.setTransport(transport);\n\t};\n\t\n\t/**\n\t * Sets the current transport. Disables the existing one (if any).\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.setTransport = function (transport) {\n\t  debug('setting transport %s', transport.name);\n\t  var self = this;\n\t\n\t  if (this.transport) {\n\t    debug('clearing existing transport %s', this.transport.name);\n\t    this.transport.removeAllListeners();\n\t  }\n\t\n\t  // set up transport\n\t  this.transport = transport;\n\t\n\t  // set up transport listeners\n\t  transport\n\t  .on('drain', function () {\n\t    self.onDrain();\n\t  })\n\t  .on('packet', function (packet) {\n\t    self.onPacket(packet);\n\t  })\n\t  .on('error', function (e) {\n\t    self.onError(e);\n\t  })\n\t  .on('close', function () {\n\t    self.onClose('transport close');\n\t  });\n\t};\n\t\n\t/**\n\t * Probes a transport.\n\t *\n\t * @param {String} transport name\n\t * @api private\n\t */\n\t\n\tSocket.prototype.probe = function (name) {\n\t  debug('probing transport \"%s\"', name);\n\t  var transport = this.createTransport(name, { probe: 1 });\n\t  var failed = false;\n\t  var self = this;\n\t\n\t  Socket.priorWebsocketSuccess = false;\n\t\n\t  function onTransportOpen () {\n\t    if (self.onlyBinaryUpgrades) {\n\t      var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n\t      failed = failed || upgradeLosesBinary;\n\t    }\n\t    if (failed) return;\n\t\n\t    debug('probe transport \"%s\" opened', name);\n\t    transport.send([{ type: 'ping', data: 'probe' }]);\n\t    transport.once('packet', function (msg) {\n\t      if (failed) return;\n\t      if ('pong' === msg.type && 'probe' === msg.data) {\n\t        debug('probe transport \"%s\" pong', name);\n\t        self.upgrading = true;\n\t        self.emit('upgrading', transport);\n\t        if (!transport) return;\n\t        Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\t\n\t        debug('pausing current transport \"%s\"', self.transport.name);\n\t        self.transport.pause(function () {\n\t          if (failed) return;\n\t          if ('closed' === self.readyState) return;\n\t          debug('changing transport and sending upgrade packet');\n\t\n\t          cleanup();\n\t\n\t          self.setTransport(transport);\n\t          transport.send([{ type: 'upgrade' }]);\n\t          self.emit('upgrade', transport);\n\t          transport = null;\n\t          self.upgrading = false;\n\t          self.flush();\n\t        });\n\t      } else {\n\t        debug('probe transport \"%s\" failed', name);\n\t        var err = new Error('probe error');\n\t        err.transport = transport.name;\n\t        self.emit('upgradeError', err);\n\t      }\n\t    });\n\t  }\n\t\n\t  function freezeTransport () {\n\t    if (failed) return;\n\t\n\t    // Any callback called by transport should be ignored since now\n\t    failed = true;\n\t\n\t    cleanup();\n\t\n\t    transport.close();\n\t    transport = null;\n\t  }\n\t\n\t  // Handle any error that happens while probing\n\t  function onerror (err) {\n\t    var error = new Error('probe error: ' + err);\n\t    error.transport = transport.name;\n\t\n\t    freezeTransport();\n\t\n\t    debug('probe transport \"%s\" failed because of error: %s', name, err);\n\t\n\t    self.emit('upgradeError', error);\n\t  }\n\t\n\t  function onTransportClose () {\n\t    onerror('transport closed');\n\t  }\n\t\n\t  // When the socket is closed while we're probing\n\t  function onclose () {\n\t    onerror('socket closed');\n\t  }\n\t\n\t  // When the socket is upgraded while we're probing\n\t  function onupgrade (to) {\n\t    if (transport && to.name !== transport.name) {\n\t      debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n\t      freezeTransport();\n\t    }\n\t  }\n\t\n\t  // Remove all listeners on the transport and on self\n\t  function cleanup () {\n\t    transport.removeListener('open', onTransportOpen);\n\t    transport.removeListener('error', onerror);\n\t    transport.removeListener('close', onTransportClose);\n\t    self.removeListener('close', onclose);\n\t    self.removeListener('upgrading', onupgrade);\n\t  }\n\t\n\t  transport.once('open', onTransportOpen);\n\t  transport.once('error', onerror);\n\t  transport.once('close', onTransportClose);\n\t\n\t  this.once('close', onclose);\n\t  this.once('upgrading', onupgrade);\n\t\n\t  transport.open();\n\t};\n\t\n\t/**\n\t * Called when connection is deemed open.\n\t *\n\t * @api public\n\t */\n\t\n\tSocket.prototype.onOpen = function () {\n\t  debug('socket open');\n\t  this.readyState = 'open';\n\t  Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n\t  this.emit('open');\n\t  this.flush();\n\t\n\t  // we check for `readyState` in case an `open`\n\t  // listener already closed the socket\n\t  if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n\t    debug('starting upgrade probes');\n\t    for (var i = 0, l = this.upgrades.length; i < l; i++) {\n\t      this.probe(this.upgrades[i]);\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Handles a packet.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onPacket = function (packet) {\n\t  if ('opening' === this.readyState || 'open' === this.readyState ||\n\t      'closing' === this.readyState) {\n\t    debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\t\n\t    this.emit('packet', packet);\n\t\n\t    // Socket is live - any packet counts\n\t    this.emit('heartbeat');\n\t\n\t    switch (packet.type) {\n\t      case 'open':\n\t        this.onHandshake(JSON.parse(packet.data));\n\t        break;\n\t\n\t      case 'pong':\n\t        this.setPing();\n\t        this.emit('pong');\n\t        break;\n\t\n\t      case 'error':\n\t        var err = new Error('server error');\n\t        err.code = packet.data;\n\t        this.onError(err);\n\t        break;\n\t\n\t      case 'message':\n\t        this.emit('data', packet.data);\n\t        this.emit('message', packet.data);\n\t        break;\n\t    }\n\t  } else {\n\t    debug('packet received with socket readyState \"%s\"', this.readyState);\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon handshake completion.\n\t *\n\t * @param {Object} handshake obj\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onHandshake = function (data) {\n\t  this.emit('handshake', data);\n\t  this.id = data.sid;\n\t  this.transport.query.sid = data.sid;\n\t  this.upgrades = this.filterUpgrades(data.upgrades);\n\t  this.pingInterval = data.pingInterval;\n\t  this.pingTimeout = data.pingTimeout;\n\t  this.onOpen();\n\t  // In case open handler closes socket\n\t  if ('closed' === this.readyState) return;\n\t  this.setPing();\n\t\n\t  // Prolong liveness of socket on heartbeat\n\t  this.removeListener('heartbeat', this.onHeartbeat);\n\t  this.on('heartbeat', this.onHeartbeat);\n\t};\n\t\n\t/**\n\t * Resets ping timeout.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onHeartbeat = function (timeout) {\n\t  clearTimeout(this.pingTimeoutTimer);\n\t  var self = this;\n\t  self.pingTimeoutTimer = setTimeout(function () {\n\t    if ('closed' === self.readyState) return;\n\t    self.onClose('ping timeout');\n\t  }, timeout || (self.pingInterval + self.pingTimeout));\n\t};\n\t\n\t/**\n\t * Pings server every `this.pingInterval` and expects response\n\t * within `this.pingTimeout` or closes connection.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.setPing = function () {\n\t  var self = this;\n\t  clearTimeout(self.pingIntervalTimer);\n\t  self.pingIntervalTimer = setTimeout(function () {\n\t    debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n\t    self.ping();\n\t    self.onHeartbeat(self.pingTimeout);\n\t  }, self.pingInterval);\n\t};\n\t\n\t/**\n\t* Sends a ping packet.\n\t*\n\t* @api private\n\t*/\n\t\n\tSocket.prototype.ping = function () {\n\t  var self = this;\n\t  this.sendPacket('ping', function () {\n\t    self.emit('ping');\n\t  });\n\t};\n\t\n\t/**\n\t * Called on `drain` event\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onDrain = function () {\n\t  this.writeBuffer.splice(0, this.prevBufferLen);\n\t\n\t  // setting prevBufferLen = 0 is very important\n\t  // for example, when upgrading, upgrade packet is sent over,\n\t  // and a nonzero prevBufferLen could cause problems on `drain`\n\t  this.prevBufferLen = 0;\n\t\n\t  if (0 === this.writeBuffer.length) {\n\t    this.emit('drain');\n\t  } else {\n\t    this.flush();\n\t  }\n\t};\n\t\n\t/**\n\t * Flush write buffers.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.flush = function () {\n\t  if ('closed' !== this.readyState && this.transport.writable &&\n\t    !this.upgrading && this.writeBuffer.length) {\n\t    debug('flushing %d packets in socket', this.writeBuffer.length);\n\t    this.transport.send(this.writeBuffer);\n\t    // keep track of current length of writeBuffer\n\t    // splice writeBuffer and callbackBuffer on `drain`\n\t    this.prevBufferLen = this.writeBuffer.length;\n\t    this.emit('flush');\n\t  }\n\t};\n\t\n\t/**\n\t * Sends a message.\n\t *\n\t * @param {String} message.\n\t * @param {Function} callback function.\n\t * @param {Object} options.\n\t * @return {Socket} for chaining.\n\t * @api public\n\t */\n\t\n\tSocket.prototype.write =\n\tSocket.prototype.send = function (msg, options, fn) {\n\t  this.sendPacket('message', msg, options, fn);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sends a packet.\n\t *\n\t * @param {String} packet type.\n\t * @param {String} data.\n\t * @param {Object} options.\n\t * @param {Function} callback function.\n\t * @api private\n\t */\n\t\n\tSocket.prototype.sendPacket = function (type, data, options, fn) {\n\t  if ('function' === typeof data) {\n\t    fn = data;\n\t    data = undefined;\n\t  }\n\t\n\t  if ('function' === typeof options) {\n\t    fn = options;\n\t    options = null;\n\t  }\n\t\n\t  if ('closing' === this.readyState || 'closed' === this.readyState) {\n\t    return;\n\t  }\n\t\n\t  options = options || {};\n\t  options.compress = false !== options.compress;\n\t\n\t  var packet = {\n\t    type: type,\n\t    data: data,\n\t    options: options\n\t  };\n\t  this.emit('packetCreate', packet);\n\t  this.writeBuffer.push(packet);\n\t  if (fn) this.once('flush', fn);\n\t  this.flush();\n\t};\n\t\n\t/**\n\t * Closes the connection.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.close = function () {\n\t  if ('opening' === this.readyState || 'open' === this.readyState) {\n\t    this.readyState = 'closing';\n\t\n\t    var self = this;\n\t\n\t    if (this.writeBuffer.length) {\n\t      this.once('drain', function () {\n\t        if (this.upgrading) {\n\t          waitForUpgrade();\n\t        } else {\n\t          close();\n\t        }\n\t      });\n\t    } else if (this.upgrading) {\n\t      waitForUpgrade();\n\t    } else {\n\t      close();\n\t    }\n\t  }\n\t\n\t  function close () {\n\t    self.onClose('forced close');\n\t    debug('socket closing - telling transport to close');\n\t    self.transport.close();\n\t  }\n\t\n\t  function cleanupAndClose () {\n\t    self.removeListener('upgrade', cleanupAndClose);\n\t    self.removeListener('upgradeError', cleanupAndClose);\n\t    close();\n\t  }\n\t\n\t  function waitForUpgrade () {\n\t    // wait for upgrade to finish since we can't send packets while pausing a transport\n\t    self.once('upgrade', cleanupAndClose);\n\t    self.once('upgradeError', cleanupAndClose);\n\t  }\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Called upon transport error\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onError = function (err) {\n\t  debug('socket error %j', err);\n\t  Socket.priorWebsocketSuccess = false;\n\t  this.emit('error', err);\n\t  this.onClose('transport error', err);\n\t};\n\t\n\t/**\n\t * Called upon transport close.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onClose = function (reason, desc) {\n\t  if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n\t    debug('socket close with reason: \"%s\"', reason);\n\t    var self = this;\n\t\n\t    // clear timers\n\t    clearTimeout(this.pingIntervalTimer);\n\t    clearTimeout(this.pingTimeoutTimer);\n\t\n\t    // stop event from firing again for transport\n\t    this.transport.removeAllListeners('close');\n\t\n\t    // ensure transport won't stay open\n\t    this.transport.close();\n\t\n\t    // ignore further transport communication\n\t    this.transport.removeAllListeners();\n\t\n\t    // set ready state\n\t    this.readyState = 'closed';\n\t\n\t    // clear session id\n\t    this.id = null;\n\t\n\t    // emit close event\n\t    this.emit('close', reason, desc);\n\t\n\t    // clean buffers after, so users can still\n\t    // grab the buffers on `close` event\n\t    self.writeBuffer = [];\n\t    self.prevBufferLen = 0;\n\t  }\n\t};\n\t\n\t/**\n\t * Filters upgrades, returning only those matching client transports.\n\t *\n\t * @param {Array} server upgrades\n\t * @api private\n\t *\n\t */\n\t\n\tSocket.prototype.filterUpgrades = function (upgrades) {\n\t  var filteredUpgrades = [];\n\t  for (var i = 0, j = upgrades.length; i < j; i++) {\n\t    if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n\t  }\n\t  return filteredUpgrades;\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module dependencies\n\t */\n\t\n\tvar XMLHttpRequest = __webpack_require__(16);\n\tvar XHR = __webpack_require__(18);\n\tvar JSONP = __webpack_require__(33);\n\tvar websocket = __webpack_require__(34);\n\t\n\t/**\n\t * Export transports.\n\t */\n\t\n\texports.polling = polling;\n\texports.websocket = websocket;\n\t\n\t/**\n\t * Polling transport polymorphic constructor.\n\t * Decides on xhr vs jsonp based on feature detection.\n\t *\n\t * @api private\n\t */\n\t\n\tfunction polling (opts) {\n\t  var xhr;\n\t  var xd = false;\n\t  var xs = false;\n\t  var jsonp = false !== opts.jsonp;\n\t\n\t  if (global.location) {\n\t    var isSSL = 'https:' === location.protocol;\n\t    var port = location.port;\n\t\n\t    // some user agents have empty `location.port`\n\t    if (!port) {\n\t      port = isSSL ? 443 : 80;\n\t    }\n\t\n\t    xd = opts.hostname !== location.hostname || port !== opts.port;\n\t    xs = opts.secure !== isSSL;\n\t  }\n\t\n\t  opts.xdomain = xd;\n\t  opts.xscheme = xs;\n\t  xhr = new XMLHttpRequest(opts);\n\t\n\t  if ('open' in xhr && !opts.forceJSONP) {\n\t    return new XHR(opts);\n\t  } else {\n\t    if (!jsonp) throw new Error('JSONP disabled');\n\t    return new JSONP(opts);\n\t  }\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {// browser shim for xmlhttprequest module\n\t\n\tvar hasCORS = __webpack_require__(17);\n\t\n\tmodule.exports = function (opts) {\n\t  var xdomain = opts.xdomain;\n\t\n\t  // scheme must be same when usign XDomainRequest\n\t  // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n\t  var xscheme = opts.xscheme;\n\t\n\t  // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n\t  // https://github.com/Automattic/engine.io-client/pull/217\n\t  var enablesXDR = opts.enablesXDR;\n\t\n\t  // XMLHttpRequest can be disabled on IE\n\t  try {\n\t    if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n\t      return new XMLHttpRequest();\n\t    }\n\t  } catch (e) { }\n\t\n\t  // Use XDomainRequest for IE8 if enablesXDR is true\n\t  // because loading bar keeps flashing when using jsonp-polling\n\t  // https://github.com/yujiosaka/socke.io-ie8-loading-example\n\t  try {\n\t    if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n\t      return new XDomainRequest();\n\t    }\n\t  } catch (e) { }\n\t\n\t  if (!xdomain) {\n\t    try {\n\t      return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n\t    } catch (e) { }\n\t  }\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\n\t\n\t/**\n\t * Module exports.\n\t *\n\t * Logic borrowed from Modernizr:\n\t *\n\t *   - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n\t */\n\t\n\ttry {\n\t  module.exports = typeof XMLHttpRequest !== 'undefined' &&\n\t    'withCredentials' in new XMLHttpRequest();\n\t} catch (err) {\n\t  // if XMLHttp support is disabled in IE then it will throw\n\t  // when trying to create\n\t  module.exports = false;\n\t}\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module requirements.\n\t */\n\t\n\tvar XMLHttpRequest = __webpack_require__(16);\n\tvar Polling = __webpack_require__(19);\n\tvar Emitter = __webpack_require__(8);\n\tvar inherit = __webpack_require__(31);\n\tvar debug = __webpack_require__(3)('engine.io-client:polling-xhr');\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = XHR;\n\tmodule.exports.Request = Request;\n\t\n\t/**\n\t * Empty function\n\t */\n\t\n\tfunction empty () {}\n\t\n\t/**\n\t * XHR Polling constructor.\n\t *\n\t * @param {Object} opts\n\t * @api public\n\t */\n\t\n\tfunction XHR (opts) {\n\t  Polling.call(this, opts);\n\t  this.requestTimeout = opts.requestTimeout;\n\t  this.extraHeaders = opts.extraHeaders;\n\t\n\t  if (global.location) {\n\t    var isSSL = 'https:' === location.protocol;\n\t    var port = location.port;\n\t\n\t    // some user agents have empty `location.port`\n\t    if (!port) {\n\t      port = isSSL ? 443 : 80;\n\t    }\n\t\n\t    this.xd = opts.hostname !== global.location.hostname ||\n\t      port !== opts.port;\n\t    this.xs = opts.secure !== isSSL;\n\t  }\n\t}\n\t\n\t/**\n\t * Inherits from Polling.\n\t */\n\t\n\tinherit(XHR, Polling);\n\t\n\t/**\n\t * XHR supports binary\n\t */\n\t\n\tXHR.prototype.supportsBinary = true;\n\t\n\t/**\n\t * Creates a request.\n\t *\n\t * @param {String} method\n\t * @api private\n\t */\n\t\n\tXHR.prototype.request = function (opts) {\n\t  opts = opts || {};\n\t  opts.uri = this.uri();\n\t  opts.xd = this.xd;\n\t  opts.xs = this.xs;\n\t  opts.agent = this.agent || false;\n\t  opts.supportsBinary = this.supportsBinary;\n\t  opts.enablesXDR = this.enablesXDR;\n\t\n\t  // SSL options for Node.js client\n\t  opts.pfx = this.pfx;\n\t  opts.key = this.key;\n\t  opts.passphrase = this.passphrase;\n\t  opts.cert = this.cert;\n\t  opts.ca = this.ca;\n\t  opts.ciphers = this.ciphers;\n\t  opts.rejectUnauthorized = this.rejectUnauthorized;\n\t  opts.requestTimeout = this.requestTimeout;\n\t\n\t  // other options for Node.js client\n\t  opts.extraHeaders = this.extraHeaders;\n\t\n\t  return new Request(opts);\n\t};\n\t\n\t/**\n\t * Sends data.\n\t *\n\t * @param {String} data to send.\n\t * @param {Function} called upon flush.\n\t * @api private\n\t */\n\t\n\tXHR.prototype.doWrite = function (data, fn) {\n\t  var isBinary = typeof data !== 'string' && data !== undefined;\n\t  var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n\t  var self = this;\n\t  req.on('success', fn);\n\t  req.on('error', function (err) {\n\t    self.onError('xhr post error', err);\n\t  });\n\t  this.sendXhr = req;\n\t};\n\t\n\t/**\n\t * Starts a poll cycle.\n\t *\n\t * @api private\n\t */\n\t\n\tXHR.prototype.doPoll = function () {\n\t  debug('xhr poll');\n\t  var req = this.request();\n\t  var self = this;\n\t  req.on('data', function (data) {\n\t    self.onData(data);\n\t  });\n\t  req.on('error', function (err) {\n\t    self.onError('xhr poll error', err);\n\t  });\n\t  this.pollXhr = req;\n\t};\n\t\n\t/**\n\t * Request constructor\n\t *\n\t * @param {Object} options\n\t * @api public\n\t */\n\t\n\tfunction Request (opts) {\n\t  this.method = opts.method || 'GET';\n\t  this.uri = opts.uri;\n\t  this.xd = !!opts.xd;\n\t  this.xs = !!opts.xs;\n\t  this.async = false !== opts.async;\n\t  this.data = undefined !== opts.data ? opts.data : null;\n\t  this.agent = opts.agent;\n\t  this.isBinary = opts.isBinary;\n\t  this.supportsBinary = opts.supportsBinary;\n\t  this.enablesXDR = opts.enablesXDR;\n\t  this.requestTimeout = opts.requestTimeout;\n\t\n\t  // SSL options for Node.js client\n\t  this.pfx = opts.pfx;\n\t  this.key = opts.key;\n\t  this.passphrase = opts.passphrase;\n\t  this.cert = opts.cert;\n\t  this.ca = opts.ca;\n\t  this.ciphers = opts.ciphers;\n\t  this.rejectUnauthorized = opts.rejectUnauthorized;\n\t\n\t  // other options for Node.js client\n\t  this.extraHeaders = opts.extraHeaders;\n\t\n\t  this.create();\n\t}\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Request.prototype);\n\t\n\t/**\n\t * Creates the XHR object and sends the request.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.create = function () {\n\t  var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\t\n\t  // SSL options for Node.js client\n\t  opts.pfx = this.pfx;\n\t  opts.key = this.key;\n\t  opts.passphrase = this.passphrase;\n\t  opts.cert = this.cert;\n\t  opts.ca = this.ca;\n\t  opts.ciphers = this.ciphers;\n\t  opts.rejectUnauthorized = this.rejectUnauthorized;\n\t\n\t  var xhr = this.xhr = new XMLHttpRequest(opts);\n\t  var self = this;\n\t\n\t  try {\n\t    debug('xhr open %s: %s', this.method, this.uri);\n\t    xhr.open(this.method, this.uri, this.async);\n\t    try {\n\t      if (this.extraHeaders) {\n\t        xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n\t        for (var i in this.extraHeaders) {\n\t          if (this.extraHeaders.hasOwnProperty(i)) {\n\t            xhr.setRequestHeader(i, this.extraHeaders[i]);\n\t          }\n\t        }\n\t      }\n\t    } catch (e) {}\n\t\n\t    if ('POST' === this.method) {\n\t      try {\n\t        if (this.isBinary) {\n\t          xhr.setRequestHeader('Content-type', 'application/octet-stream');\n\t        } else {\n\t          xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n\t        }\n\t      } catch (e) {}\n\t    }\n\t\n\t    try {\n\t      xhr.setRequestHeader('Accept', '*/*');\n\t    } catch (e) {}\n\t\n\t    // ie6 check\n\t    if ('withCredentials' in xhr) {\n\t      xhr.withCredentials = true;\n\t    }\n\t\n\t    if (this.requestTimeout) {\n\t      xhr.timeout = this.requestTimeout;\n\t    }\n\t\n\t    if (this.hasXDR()) {\n\t      xhr.onload = function () {\n\t        self.onLoad();\n\t      };\n\t      xhr.onerror = function () {\n\t        self.onError(xhr.responseText);\n\t      };\n\t    } else {\n\t      xhr.onreadystatechange = function () {\n\t        if (xhr.readyState === 2) {\n\t          try {\n\t            var contentType = xhr.getResponseHeader('Content-Type');\n\t            if (self.supportsBinary && contentType === 'application/octet-stream') {\n\t              xhr.responseType = 'arraybuffer';\n\t            }\n\t          } catch (e) {}\n\t        }\n\t        if (4 !== xhr.readyState) return;\n\t        if (200 === xhr.status || 1223 === xhr.status) {\n\t          self.onLoad();\n\t        } else {\n\t          // make sure the `error` event handler that's user-set\n\t          // does not throw in the same tick and gets caught here\n\t          setTimeout(function () {\n\t            self.onError(xhr.status);\n\t          }, 0);\n\t        }\n\t      };\n\t    }\n\t\n\t    debug('xhr data %s', this.data);\n\t    xhr.send(this.data);\n\t  } catch (e) {\n\t    // Need to defer since .create() is called directly fhrom the constructor\n\t    // and thus the 'error' event can only be only bound *after* this exception\n\t    // occurs.  Therefore, also, we cannot throw here at all.\n\t    setTimeout(function () {\n\t      self.onError(e);\n\t    }, 0);\n\t    return;\n\t  }\n\t\n\t  if (global.document) {\n\t    this.index = Request.requestsCount++;\n\t    Request.requests[this.index] = this;\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon successful response.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.onSuccess = function () {\n\t  this.emit('success');\n\t  this.cleanup();\n\t};\n\t\n\t/**\n\t * Called if we have data.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.onData = function (data) {\n\t  this.emit('data', data);\n\t  this.onSuccess();\n\t};\n\t\n\t/**\n\t * Called upon error.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.onError = function (err) {\n\t  this.emit('error', err);\n\t  this.cleanup(true);\n\t};\n\t\n\t/**\n\t * Cleans up house.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.cleanup = function (fromError) {\n\t  if ('undefined' === typeof this.xhr || null === this.xhr) {\n\t    return;\n\t  }\n\t  // xmlhttprequest\n\t  if (this.hasXDR()) {\n\t    this.xhr.onload = this.xhr.onerror = empty;\n\t  } else {\n\t    this.xhr.onreadystatechange = empty;\n\t  }\n\t\n\t  if (fromError) {\n\t    try {\n\t      this.xhr.abort();\n\t    } catch (e) {}\n\t  }\n\t\n\t  if (global.document) {\n\t    delete Request.requests[this.index];\n\t  }\n\t\n\t  this.xhr = null;\n\t};\n\t\n\t/**\n\t * Called upon load.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.onLoad = function () {\n\t  var data;\n\t  try {\n\t    var contentType;\n\t    try {\n\t      contentType = this.xhr.getResponseHeader('Content-Type');\n\t    } catch (e) {}\n\t    if (contentType === 'application/octet-stream') {\n\t      data = this.xhr.response || this.xhr.responseText;\n\t    } else {\n\t      data = this.xhr.responseText;\n\t    }\n\t  } catch (e) {\n\t    this.onError(e);\n\t  }\n\t  if (null != data) {\n\t    this.onData(data);\n\t  }\n\t};\n\t\n\t/**\n\t * Check if it has XDomainRequest.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.hasXDR = function () {\n\t  return 'undefined' !== typeof global.XDomainRequest && !this.xs && this.enablesXDR;\n\t};\n\t\n\t/**\n\t * Aborts the request.\n\t *\n\t * @api public\n\t */\n\t\n\tRequest.prototype.abort = function () {\n\t  this.cleanup();\n\t};\n\t\n\t/**\n\t * Aborts pending requests when unloading the window. This is needed to prevent\n\t * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n\t * emitted.\n\t */\n\t\n\tRequest.requestsCount = 0;\n\tRequest.requests = {};\n\t\n\tif (global.document) {\n\t  if (global.attachEvent) {\n\t    global.attachEvent('onunload', unloadHandler);\n\t  } else if (global.addEventListener) {\n\t    global.addEventListener('beforeunload', unloadHandler, false);\n\t  }\n\t}\n\t\n\tfunction unloadHandler () {\n\t  for (var i in Request.requests) {\n\t    if (Request.requests.hasOwnProperty(i)) {\n\t      Request.requests[i].abort();\n\t    }\n\t  }\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar Transport = __webpack_require__(20);\n\tvar parseqs = __webpack_require__(30);\n\tvar parser = __webpack_require__(21);\n\tvar inherit = __webpack_require__(31);\n\tvar yeast = __webpack_require__(32);\n\tvar debug = __webpack_require__(3)('engine.io-client:polling');\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = Polling;\n\t\n\t/**\n\t * Is XHR2 supported?\n\t */\n\t\n\tvar hasXHR2 = (function () {\n\t  var XMLHttpRequest = __webpack_require__(16);\n\t  var xhr = new XMLHttpRequest({ xdomain: false });\n\t  return null != xhr.responseType;\n\t})();\n\t\n\t/**\n\t * Polling interface.\n\t *\n\t * @param {Object} opts\n\t * @api private\n\t */\n\t\n\tfunction Polling (opts) {\n\t  var forceBase64 = (opts && opts.forceBase64);\n\t  if (!hasXHR2 || forceBase64) {\n\t    this.supportsBinary = false;\n\t  }\n\t  Transport.call(this, opts);\n\t}\n\t\n\t/**\n\t * Inherits from Transport.\n\t */\n\t\n\tinherit(Polling, Transport);\n\t\n\t/**\n\t * Transport name.\n\t */\n\t\n\tPolling.prototype.name = 'polling';\n\t\n\t/**\n\t * Opens the socket (triggers polling). We write a PING message to determine\n\t * when the transport is open.\n\t *\n\t * @api private\n\t */\n\t\n\tPolling.prototype.doOpen = function () {\n\t  this.poll();\n\t};\n\t\n\t/**\n\t * Pauses polling.\n\t *\n\t * @param {Function} callback upon buffers are flushed and transport is paused\n\t * @api private\n\t */\n\t\n\tPolling.prototype.pause = function (onPause) {\n\t  var self = this;\n\t\n\t  this.readyState = 'pausing';\n\t\n\t  function pause () {\n\t    debug('paused');\n\t    self.readyState = 'paused';\n\t    onPause();\n\t  }\n\t\n\t  if (this.polling || !this.writable) {\n\t    var total = 0;\n\t\n\t    if (this.polling) {\n\t      debug('we are currently polling - waiting to pause');\n\t      total++;\n\t      this.once('pollComplete', function () {\n\t        debug('pre-pause polling complete');\n\t        --total || pause();\n\t      });\n\t    }\n\t\n\t    if (!this.writable) {\n\t      debug('we are currently writing - waiting to pause');\n\t      total++;\n\t      this.once('drain', function () {\n\t        debug('pre-pause writing complete');\n\t        --total || pause();\n\t      });\n\t    }\n\t  } else {\n\t    pause();\n\t  }\n\t};\n\t\n\t/**\n\t * Starts polling cycle.\n\t *\n\t * @api public\n\t */\n\t\n\tPolling.prototype.poll = function () {\n\t  debug('polling');\n\t  this.polling = true;\n\t  this.doPoll();\n\t  this.emit('poll');\n\t};\n\t\n\t/**\n\t * Overloads onData to detect payloads.\n\t *\n\t * @api private\n\t */\n\t\n\tPolling.prototype.onData = function (data) {\n\t  var self = this;\n\t  debug('polling got data %s', data);\n\t  var callback = function (packet, index, total) {\n\t    // if its the first message we consider the transport open\n\t    if ('opening' === self.readyState) {\n\t      self.onOpen();\n\t    }\n\t\n\t    // if its a close packet, we close the ongoing requests\n\t    if ('close' === packet.type) {\n\t      self.onClose();\n\t      return false;\n\t    }\n\t\n\t    // otherwise bypass onData and handle the message\n\t    self.onPacket(packet);\n\t  };\n\t\n\t  // decode payload\n\t  parser.decodePayload(data, this.socket.binaryType, callback);\n\t\n\t  // if an event did not trigger closing\n\t  if ('closed' !== this.readyState) {\n\t    // if we got data we're not polling\n\t    this.polling = false;\n\t    this.emit('pollComplete');\n\t\n\t    if ('open' === this.readyState) {\n\t      this.poll();\n\t    } else {\n\t      debug('ignoring poll - transport state \"%s\"', this.readyState);\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * For polling, send a close packet.\n\t *\n\t * @api private\n\t */\n\t\n\tPolling.prototype.doClose = function () {\n\t  var self = this;\n\t\n\t  function close () {\n\t    debug('writing close packet');\n\t    self.write([{ type: 'close' }]);\n\t  }\n\t\n\t  if ('open' === this.readyState) {\n\t    debug('transport open - closing');\n\t    close();\n\t  } else {\n\t    // in case we're trying to close while\n\t    // handshaking is in progress (GH-164)\n\t    debug('transport not open - deferring close');\n\t    this.once('open', close);\n\t  }\n\t};\n\t\n\t/**\n\t * Writes a packets payload.\n\t *\n\t * @param {Array} data packets\n\t * @param {Function} drain callback\n\t * @api private\n\t */\n\t\n\tPolling.prototype.write = function (packets) {\n\t  var self = this;\n\t  this.writable = false;\n\t  var callbackfn = function () {\n\t    self.writable = true;\n\t    self.emit('drain');\n\t  };\n\t\n\t  parser.encodePayload(packets, this.supportsBinary, function (data) {\n\t    self.doWrite(data, callbackfn);\n\t  });\n\t};\n\t\n\t/**\n\t * Generates uri for connection.\n\t *\n\t * @api private\n\t */\n\t\n\tPolling.prototype.uri = function () {\n\t  var query = this.query || {};\n\t  var schema = this.secure ? 'https' : 'http';\n\t  var port = '';\n\t\n\t  // cache busting is forced\n\t  if (false !== this.timestampRequests) {\n\t    query[this.timestampParam] = yeast();\n\t  }\n\t\n\t  if (!this.supportsBinary && !query.sid) {\n\t    query.b64 = 1;\n\t  }\n\t\n\t  query = parseqs.encode(query);\n\t\n\t  // avoid port if default for schema\n\t  if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n\t     ('http' === schema && Number(this.port) !== 80))) {\n\t    port = ':' + this.port;\n\t  }\n\t\n\t  // prepend ? to query\n\t  if (query.length) {\n\t    query = '?' + query;\n\t  }\n\t\n\t  var ipv6 = this.hostname.indexOf(':') !== -1;\n\t  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n\t};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar parser = __webpack_require__(21);\n\tvar Emitter = __webpack_require__(8);\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = Transport;\n\t\n\t/**\n\t * Transport abstract constructor.\n\t *\n\t * @param {Object} options.\n\t * @api private\n\t */\n\t\n\tfunction Transport (opts) {\n\t  this.path = opts.path;\n\t  this.hostname = opts.hostname;\n\t  this.port = opts.port;\n\t  this.secure = opts.secure;\n\t  this.query = opts.query;\n\t  this.timestampParam = opts.timestampParam;\n\t  this.timestampRequests = opts.timestampRequests;\n\t  this.readyState = '';\n\t  this.agent = opts.agent || false;\n\t  this.socket = opts.socket;\n\t  this.enablesXDR = opts.enablesXDR;\n\t\n\t  // SSL options for Node.js client\n\t  this.pfx = opts.pfx;\n\t  this.key = opts.key;\n\t  this.passphrase = opts.passphrase;\n\t  this.cert = opts.cert;\n\t  this.ca = opts.ca;\n\t  this.ciphers = opts.ciphers;\n\t  this.rejectUnauthorized = opts.rejectUnauthorized;\n\t  this.forceNode = opts.forceNode;\n\t\n\t  // other options for Node.js client\n\t  this.extraHeaders = opts.extraHeaders;\n\t  this.localAddress = opts.localAddress;\n\t}\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Transport.prototype);\n\t\n\t/**\n\t * Emits an error.\n\t *\n\t * @param {String} str\n\t * @return {Transport} for chaining\n\t * @api public\n\t */\n\t\n\tTransport.prototype.onError = function (msg, desc) {\n\t  var err = new Error(msg);\n\t  err.type = 'TransportError';\n\t  err.description = desc;\n\t  this.emit('error', err);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Opens the transport.\n\t *\n\t * @api public\n\t */\n\t\n\tTransport.prototype.open = function () {\n\t  if ('closed' === this.readyState || '' === this.readyState) {\n\t    this.readyState = 'opening';\n\t    this.doOpen();\n\t  }\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Closes the transport.\n\t *\n\t * @api private\n\t */\n\t\n\tTransport.prototype.close = function () {\n\t  if ('opening' === this.readyState || 'open' === this.readyState) {\n\t    this.doClose();\n\t    this.onClose();\n\t  }\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sends multiple packets.\n\t *\n\t * @param {Array} packets\n\t * @api private\n\t */\n\t\n\tTransport.prototype.send = function (packets) {\n\t  if ('open' === this.readyState) {\n\t    this.write(packets);\n\t  } else {\n\t    throw new Error('Transport not open');\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon open\n\t *\n\t * @api private\n\t */\n\t\n\tTransport.prototype.onOpen = function () {\n\t  this.readyState = 'open';\n\t  this.writable = true;\n\t  this.emit('open');\n\t};\n\t\n\t/**\n\t * Called with data.\n\t *\n\t * @param {String} data\n\t * @api private\n\t */\n\t\n\tTransport.prototype.onData = function (data) {\n\t  var packet = parser.decodePacket(data, this.socket.binaryType);\n\t  this.onPacket(packet);\n\t};\n\t\n\t/**\n\t * Called with a decoded packet.\n\t */\n\t\n\tTransport.prototype.onPacket = function (packet) {\n\t  this.emit('packet', packet);\n\t};\n\t\n\t/**\n\t * Called upon close.\n\t *\n\t * @api private\n\t */\n\t\n\tTransport.prototype.onClose = function () {\n\t  this.readyState = 'closed';\n\t  this.emit('close');\n\t};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module dependencies.\n\t */\n\t\n\tvar keys = __webpack_require__(22);\n\tvar hasBinary = __webpack_require__(23);\n\tvar sliceBuffer = __webpack_require__(24);\n\tvar after = __webpack_require__(25);\n\tvar utf8 = __webpack_require__(26);\n\t\n\tvar base64encoder;\n\tif (global && global.ArrayBuffer) {\n\t  base64encoder = __webpack_require__(28);\n\t}\n\t\n\t/**\n\t * Check if we are running an android browser. That requires us to use\n\t * ArrayBuffer with polling transports...\n\t *\n\t * http://ghinda.net/jpeg-blob-ajax-android/\n\t */\n\t\n\tvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\t\n\t/**\n\t * Check if we are running in PhantomJS.\n\t * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n\t * https://github.com/ariya/phantomjs/issues/11395\n\t * @type boolean\n\t */\n\tvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\t\n\t/**\n\t * When true, avoids using Blobs to encode payloads.\n\t * @type boolean\n\t */\n\tvar dontSendBlobs = isAndroid || isPhantomJS;\n\t\n\t/**\n\t * Current protocol version.\n\t */\n\t\n\texports.protocol = 3;\n\t\n\t/**\n\t * Packet types.\n\t */\n\t\n\tvar packets = exports.packets = {\n\t    open:     0    // non-ws\n\t  , close:    1    // non-ws\n\t  , ping:     2\n\t  , pong:     3\n\t  , message:  4\n\t  , upgrade:  5\n\t  , noop:     6\n\t};\n\t\n\tvar packetslist = keys(packets);\n\t\n\t/**\n\t * Premade error packet.\n\t */\n\t\n\tvar err = { type: 'error', data: 'parser error' };\n\t\n\t/**\n\t * Create a blob api even for blob builder when vendor prefixes exist\n\t */\n\t\n\tvar Blob = __webpack_require__(29);\n\t\n\t/**\n\t * Encodes a packet.\n\t *\n\t *     <packet type id> [ <data> ]\n\t *\n\t * Example:\n\t *\n\t *     5hello world\n\t *     3\n\t *     4\n\t *\n\t * Binary is encoded in an identical principle\n\t *\n\t * @api private\n\t */\n\t\n\texports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n\t  if (typeof supportsBinary === 'function') {\n\t    callback = supportsBinary;\n\t    supportsBinary = false;\n\t  }\n\t\n\t  if (typeof utf8encode === 'function') {\n\t    callback = utf8encode;\n\t    utf8encode = null;\n\t  }\n\t\n\t  var data = (packet.data === undefined)\n\t    ? undefined\n\t    : packet.data.buffer || packet.data;\n\t\n\t  if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n\t    return encodeArrayBuffer(packet, supportsBinary, callback);\n\t  } else if (Blob && data instanceof global.Blob) {\n\t    return encodeBlob(packet, supportsBinary, callback);\n\t  }\n\t\n\t  // might be an object with { base64: true, data: dataAsBase64String }\n\t  if (data && data.base64) {\n\t    return encodeBase64Object(packet, callback);\n\t  }\n\t\n\t  // Sending data as a utf-8 string\n\t  var encoded = packets[packet.type];\n\t\n\t  // data fragment is optional\n\t  if (undefined !== packet.data) {\n\t    encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n\t  }\n\t\n\t  return callback('' + encoded);\n\t\n\t};\n\t\n\tfunction encodeBase64Object(packet, callback) {\n\t  // packet data is an object { base64: true, data: dataAsBase64String }\n\t  var message = 'b' + exports.packets[packet.type] + packet.data.data;\n\t  return callback(message);\n\t}\n\t\n\t/**\n\t * Encode packet helpers for binary types\n\t */\n\t\n\tfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n\t  if (!supportsBinary) {\n\t    return exports.encodeBase64Packet(packet, callback);\n\t  }\n\t\n\t  var data = packet.data;\n\t  var contentArray = new Uint8Array(data);\n\t  var resultBuffer = new Uint8Array(1 + data.byteLength);\n\t\n\t  resultBuffer[0] = packets[packet.type];\n\t  for (var i = 0; i < contentArray.length; i++) {\n\t    resultBuffer[i+1] = contentArray[i];\n\t  }\n\t\n\t  return callback(resultBuffer.buffer);\n\t}\n\t\n\tfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n\t  if (!supportsBinary) {\n\t    return exports.encodeBase64Packet(packet, callback);\n\t  }\n\t\n\t  var fr = new FileReader();\n\t  fr.onload = function() {\n\t    packet.data = fr.result;\n\t    exports.encodePacket(packet, supportsBinary, true, callback);\n\t  };\n\t  return fr.readAsArrayBuffer(packet.data);\n\t}\n\t\n\tfunction encodeBlob(packet, supportsBinary, callback) {\n\t  if (!supportsBinary) {\n\t    return exports.encodeBase64Packet(packet, callback);\n\t  }\n\t\n\t  if (dontSendBlobs) {\n\t    return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n\t  }\n\t\n\t  var length = new Uint8Array(1);\n\t  length[0] = packets[packet.type];\n\t  var blob = new Blob([length.buffer, packet.data]);\n\t\n\t  return callback(blob);\n\t}\n\t\n\t/**\n\t * Encodes a packet with binary data in a base64 string\n\t *\n\t * @param {Object} packet, has `type` and `data`\n\t * @return {String} base64 encoded message\n\t */\n\t\n\texports.encodeBase64Packet = function(packet, callback) {\n\t  var message = 'b' + exports.packets[packet.type];\n\t  if (Blob && packet.data instanceof global.Blob) {\n\t    var fr = new FileReader();\n\t    fr.onload = function() {\n\t      var b64 = fr.result.split(',')[1];\n\t      callback(message + b64);\n\t    };\n\t    return fr.readAsDataURL(packet.data);\n\t  }\n\t\n\t  var b64data;\n\t  try {\n\t    b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n\t  } catch (e) {\n\t    // iPhone Safari doesn't let you apply with typed arrays\n\t    var typed = new Uint8Array(packet.data);\n\t    var basic = new Array(typed.length);\n\t    for (var i = 0; i < typed.length; i++) {\n\t      basic[i] = typed[i];\n\t    }\n\t    b64data = String.fromCharCode.apply(null, basic);\n\t  }\n\t  message += global.btoa(b64data);\n\t  return callback(message);\n\t};\n\t\n\t/**\n\t * Decodes a packet. Changes format to Blob if requested.\n\t *\n\t * @return {Object} with `type` and `data` (if any)\n\t * @api private\n\t */\n\t\n\texports.decodePacket = function (data, binaryType, utf8decode) {\n\t  if (data === undefined) {\n\t    return err;\n\t  }\n\t  // String data\n\t  if (typeof data === 'string') {\n\t    if (data.charAt(0) === 'b') {\n\t      return exports.decodeBase64Packet(data.substr(1), binaryType);\n\t    }\n\t\n\t    if (utf8decode) {\n\t      data = tryDecode(data);\n\t      if (data === false) {\n\t        return err;\n\t      }\n\t    }\n\t    var type = data.charAt(0);\n\t\n\t    if (Number(type) != type || !packetslist[type]) {\n\t      return err;\n\t    }\n\t\n\t    if (data.length > 1) {\n\t      return { type: packetslist[type], data: data.substring(1) };\n\t    } else {\n\t      return { type: packetslist[type] };\n\t    }\n\t  }\n\t\n\t  var asArray = new Uint8Array(data);\n\t  var type = asArray[0];\n\t  var rest = sliceBuffer(data, 1);\n\t  if (Blob && binaryType === 'blob') {\n\t    rest = new Blob([rest]);\n\t  }\n\t  return { type: packetslist[type], data: rest };\n\t};\n\t\n\tfunction tryDecode(data) {\n\t  try {\n\t    data = utf8.decode(data, { strict: false });\n\t  } catch (e) {\n\t    return false;\n\t  }\n\t  return data;\n\t}\n\t\n\t/**\n\t * Decodes a packet encoded in a base64 string\n\t *\n\t * @param {String} base64 encoded message\n\t * @return {Object} with `type` and `data` (if any)\n\t */\n\t\n\texports.decodeBase64Packet = function(msg, binaryType) {\n\t  var type = packetslist[msg.charAt(0)];\n\t  if (!base64encoder) {\n\t    return { type: type, data: { base64: true, data: msg.substr(1) } };\n\t  }\n\t\n\t  var data = base64encoder.decode(msg.substr(1));\n\t\n\t  if (binaryType === 'blob' && Blob) {\n\t    data = new Blob([data]);\n\t  }\n\t\n\t  return { type: type, data: data };\n\t};\n\t\n\t/**\n\t * Encodes multiple messages (payload).\n\t *\n\t *     <length>:data\n\t *\n\t * Example:\n\t *\n\t *     11:hello world2:hi\n\t *\n\t * If any contents are binary, they will be encoded as base64 strings. Base64\n\t * encoded strings are marked with a b before the length specifier\n\t *\n\t * @param {Array} packets\n\t * @api private\n\t */\n\t\n\texports.encodePayload = function (packets, supportsBinary, callback) {\n\t  if (typeof supportsBinary === 'function') {\n\t    callback = supportsBinary;\n\t    supportsBinary = null;\n\t  }\n\t\n\t  var isBinary = hasBinary(packets);\n\t\n\t  if (supportsBinary && isBinary) {\n\t    if (Blob && !dontSendBlobs) {\n\t      return exports.encodePayloadAsBlob(packets, callback);\n\t    }\n\t\n\t    return exports.encodePayloadAsArrayBuffer(packets, callback);\n\t  }\n\t\n\t  if (!packets.length) {\n\t    return callback('0:');\n\t  }\n\t\n\t  function setLengthHeader(message) {\n\t    return message.length + ':' + message;\n\t  }\n\t\n\t  function encodeOne(packet, doneCallback) {\n\t    exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n\t      doneCallback(null, setLengthHeader(message));\n\t    });\n\t  }\n\t\n\t  map(packets, encodeOne, function(err, results) {\n\t    return callback(results.join(''));\n\t  });\n\t};\n\t\n\t/**\n\t * Async array map using after\n\t */\n\t\n\tfunction map(ary, each, done) {\n\t  var result = new Array(ary.length);\n\t  var next = after(ary.length, done);\n\t\n\t  var eachWithIndex = function(i, el, cb) {\n\t    each(el, function(error, msg) {\n\t      result[i] = msg;\n\t      cb(error, result);\n\t    });\n\t  };\n\t\n\t  for (var i = 0; i < ary.length; i++) {\n\t    eachWithIndex(i, ary[i], next);\n\t  }\n\t}\n\t\n\t/*\n\t * Decodes data when a payload is maybe expected. Possible binary contents are\n\t * decoded from their base64 representation\n\t *\n\t * @param {String} data, callback method\n\t * @api public\n\t */\n\t\n\texports.decodePayload = function (data, binaryType, callback) {\n\t  if (typeof data !== 'string') {\n\t    return exports.decodePayloadAsBinary(data, binaryType, callback);\n\t  }\n\t\n\t  if (typeof binaryType === 'function') {\n\t    callback = binaryType;\n\t    binaryType = null;\n\t  }\n\t\n\t  var packet;\n\t  if (data === '') {\n\t    // parser error - ignoring payload\n\t    return callback(err, 0, 1);\n\t  }\n\t\n\t  var length = '', n, msg;\n\t\n\t  for (var i = 0, l = data.length; i < l; i++) {\n\t    var chr = data.charAt(i);\n\t\n\t    if (chr !== ':') {\n\t      length += chr;\n\t      continue;\n\t    }\n\t\n\t    if (length === '' || (length != (n = Number(length)))) {\n\t      // parser error - ignoring payload\n\t      return callback(err, 0, 1);\n\t    }\n\t\n\t    msg = data.substr(i + 1, n);\n\t\n\t    if (length != msg.length) {\n\t      // parser error - ignoring payload\n\t      return callback(err, 0, 1);\n\t    }\n\t\n\t    if (msg.length) {\n\t      packet = exports.decodePacket(msg, binaryType, false);\n\t\n\t      if (err.type === packet.type && err.data === packet.data) {\n\t        // parser error in individual packet - ignoring payload\n\t        return callback(err, 0, 1);\n\t      }\n\t\n\t      var ret = callback(packet, i + n, l);\n\t      if (false === ret) return;\n\t    }\n\t\n\t    // advance cursor\n\t    i += n;\n\t    length = '';\n\t  }\n\t\n\t  if (length !== '') {\n\t    // parser error - ignoring payload\n\t    return callback(err, 0, 1);\n\t  }\n\t\n\t};\n\t\n\t/**\n\t * Encodes multiple messages (payload) as binary.\n\t *\n\t * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n\t * 255><data>\n\t *\n\t * Example:\n\t * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n\t *\n\t * @param {Array} packets\n\t * @return {ArrayBuffer} encoded payload\n\t * @api private\n\t */\n\t\n\texports.encodePayloadAsArrayBuffer = function(packets, callback) {\n\t  if (!packets.length) {\n\t    return callback(new ArrayBuffer(0));\n\t  }\n\t\n\t  function encodeOne(packet, doneCallback) {\n\t    exports.encodePacket(packet, true, true, function(data) {\n\t      return doneCallback(null, data);\n\t    });\n\t  }\n\t\n\t  map(packets, encodeOne, function(err, encodedPackets) {\n\t    var totalLength = encodedPackets.reduce(function(acc, p) {\n\t      var len;\n\t      if (typeof p === 'string'){\n\t        len = p.length;\n\t      } else {\n\t        len = p.byteLength;\n\t      }\n\t      return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n\t    }, 0);\n\t\n\t    var resultArray = new Uint8Array(totalLength);\n\t\n\t    var bufferIndex = 0;\n\t    encodedPackets.forEach(function(p) {\n\t      var isString = typeof p === 'string';\n\t      var ab = p;\n\t      if (isString) {\n\t        var view = new Uint8Array(p.length);\n\t        for (var i = 0; i < p.length; i++) {\n\t          view[i] = p.charCodeAt(i);\n\t        }\n\t        ab = view.buffer;\n\t      }\n\t\n\t      if (isString) { // not true binary\n\t        resultArray[bufferIndex++] = 0;\n\t      } else { // true binary\n\t        resultArray[bufferIndex++] = 1;\n\t      }\n\t\n\t      var lenStr = ab.byteLength.toString();\n\t      for (var i = 0; i < lenStr.length; i++) {\n\t        resultArray[bufferIndex++] = parseInt(lenStr[i]);\n\t      }\n\t      resultArray[bufferIndex++] = 255;\n\t\n\t      var view = new Uint8Array(ab);\n\t      for (var i = 0; i < view.length; i++) {\n\t        resultArray[bufferIndex++] = view[i];\n\t      }\n\t    });\n\t\n\t    return callback(resultArray.buffer);\n\t  });\n\t};\n\t\n\t/**\n\t * Encode as Blob\n\t */\n\t\n\texports.encodePayloadAsBlob = function(packets, callback) {\n\t  function encodeOne(packet, doneCallback) {\n\t    exports.encodePacket(packet, true, true, function(encoded) {\n\t      var binaryIdentifier = new Uint8Array(1);\n\t      binaryIdentifier[0] = 1;\n\t      if (typeof encoded === 'string') {\n\t        var view = new Uint8Array(encoded.length);\n\t        for (var i = 0; i < encoded.length; i++) {\n\t          view[i] = encoded.charCodeAt(i);\n\t        }\n\t        encoded = view.buffer;\n\t        binaryIdentifier[0] = 0;\n\t      }\n\t\n\t      var len = (encoded instanceof ArrayBuffer)\n\t        ? encoded.byteLength\n\t        : encoded.size;\n\t\n\t      var lenStr = len.toString();\n\t      var lengthAry = new Uint8Array(lenStr.length + 1);\n\t      for (var i = 0; i < lenStr.length; i++) {\n\t        lengthAry[i] = parseInt(lenStr[i]);\n\t      }\n\t      lengthAry[lenStr.length] = 255;\n\t\n\t      if (Blob) {\n\t        var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n\t        doneCallback(null, blob);\n\t      }\n\t    });\n\t  }\n\t\n\t  map(packets, encodeOne, function(err, results) {\n\t    return callback(new Blob(results));\n\t  });\n\t};\n\t\n\t/*\n\t * Decodes data when a payload is maybe expected. Strings are decoded by\n\t * interpreting each byte as a key code for entries marked to start with 0. See\n\t * description of encodePayloadAsBinary\n\t *\n\t * @param {ArrayBuffer} data, callback method\n\t * @api public\n\t */\n\t\n\texports.decodePayloadAsBinary = function (data, binaryType, callback) {\n\t  if (typeof binaryType === 'function') {\n\t    callback = binaryType;\n\t    binaryType = null;\n\t  }\n\t\n\t  var bufferTail = data;\n\t  var buffers = [];\n\t\n\t  while (bufferTail.byteLength > 0) {\n\t    var tailArray = new Uint8Array(bufferTail);\n\t    var isString = tailArray[0] === 0;\n\t    var msgLength = '';\n\t\n\t    for (var i = 1; ; i++) {\n\t      if (tailArray[i] === 255) break;\n\t\n\t      // 310 = char length of Number.MAX_VALUE\n\t      if (msgLength.length > 310) {\n\t        return callback(err, 0, 1);\n\t      }\n\t\n\t      msgLength += tailArray[i];\n\t    }\n\t\n\t    bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n\t    msgLength = parseInt(msgLength);\n\t\n\t    var msg = sliceBuffer(bufferTail, 0, msgLength);\n\t    if (isString) {\n\t      try {\n\t        msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n\t      } catch (e) {\n\t        // iPhone Safari doesn't let you apply to typed arrays\n\t        var typed = new Uint8Array(msg);\n\t        msg = '';\n\t        for (var i = 0; i < typed.length; i++) {\n\t          msg += String.fromCharCode(typed[i]);\n\t        }\n\t      }\n\t    }\n\t\n\t    buffers.push(msg);\n\t    bufferTail = sliceBuffer(bufferTail, msgLength);\n\t  }\n\t\n\t  var total = buffers.length;\n\t  buffers.forEach(function(buffer, i) {\n\t    callback(exports.decodePacket(buffer, binaryType, true), i, total);\n\t  });\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\n\t\n\t/**\n\t * Gets the keys for an object.\n\t *\n\t * @return {Array} keys\n\t * @api private\n\t */\n\t\n\tmodule.exports = Object.keys || function keys (obj){\n\t  var arr = [];\n\t  var has = Object.prototype.hasOwnProperty;\n\t\n\t  for (var i in obj) {\n\t    if (has.call(obj, i)) {\n\t      arr.push(i);\n\t    }\n\t  }\n\t  return arr;\n\t};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/* global Blob File */\n\t\n\t/*\n\t * Module requirements.\n\t */\n\t\n\tvar isArray = __webpack_require__(10);\n\t\n\tvar toString = Object.prototype.toString;\n\tvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\n\tvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = hasBinary;\n\t\n\t/**\n\t * Checks for binary data.\n\t *\n\t * Supports Buffer, ArrayBuffer, Blob and File.\n\t *\n\t * @param {Object} anything\n\t * @api public\n\t */\n\t\n\tfunction hasBinary (obj) {\n\t  if (!obj || typeof obj !== 'object') {\n\t    return false;\n\t  }\n\t\n\t  if (isArray(obj)) {\n\t    for (var i = 0, l = obj.length; i < l; i++) {\n\t      if (hasBinary(obj[i])) {\n\t        return true;\n\t      }\n\t    }\n\t    return false;\n\t  }\n\t\n\t  if ((typeof global.Buffer === 'function' && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) ||\n\t     (typeof global.ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n\t     (withNativeBlob && obj instanceof Blob) ||\n\t     (withNativeFile && obj instanceof File)\n\t    ) {\n\t    return true;\n\t  }\n\t\n\t  // see: https://github.com/Automattic/has-binary/pull/4\n\t  if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n\t    return hasBinary(obj.toJSON(), true);\n\t  }\n\t\n\t  for (var key in obj) {\n\t    if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n\t      return true;\n\t    }\n\t  }\n\t\n\t  return false;\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * An abstraction for slicing an arraybuffer even when\n\t * ArrayBuffer.prototype.slice is not supported\n\t *\n\t * @api public\n\t */\n\t\n\tmodule.exports = function(arraybuffer, start, end) {\n\t  var bytes = arraybuffer.byteLength;\n\t  start = start || 0;\n\t  end = end || bytes;\n\t\n\t  if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\t\n\t  if (start < 0) { start += bytes; }\n\t  if (end < 0) { end += bytes; }\n\t  if (end > bytes) { end = bytes; }\n\t\n\t  if (start >= bytes || start >= end || bytes === 0) {\n\t    return new ArrayBuffer(0);\n\t  }\n\t\n\t  var abv = new Uint8Array(arraybuffer);\n\t  var result = new Uint8Array(end - start);\n\t  for (var i = start, ii = 0; i < end; i++, ii++) {\n\t    result[ii] = abv[i];\n\t  }\n\t  return result.buffer;\n\t};\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = after\n\t\n\tfunction after(count, callback, err_cb) {\n\t    var bail = false\n\t    err_cb = err_cb || noop\n\t    proxy.count = count\n\t\n\t    return (count === 0) ? callback() : proxy\n\t\n\t    function proxy(err, result) {\n\t        if (proxy.count <= 0) {\n\t            throw new Error('after called too many times')\n\t        }\n\t        --proxy.count\n\t\n\t        // after first error, rest are passed to err_cb\n\t        if (err) {\n\t            bail = true\n\t            callback(err)\n\t            // future error callbacks will go to error handler\n\t            callback = err_cb\n\t        } else if (proxy.count === 0 && !bail) {\n\t            callback(null, result)\n\t        }\n\t    }\n\t}\n\t\n\tfunction noop() {}\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module, global) {/*! https://mths.be/utf8js v2.1.2 by @mathias */\n\t;(function(root) {\n\t\n\t\t// Detect free variables `exports`\n\t\tvar freeExports = typeof exports == 'object' && exports;\n\t\n\t\t// Detect free variable `module`\n\t\tvar freeModule = typeof module == 'object' && module &&\n\t\t\tmodule.exports == freeExports && module;\n\t\n\t\t// Detect free variable `global`, from Node.js or Browserified code,\n\t\t// and use it as `root`\n\t\tvar freeGlobal = typeof global == 'object' && global;\n\t\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\t\troot = freeGlobal;\n\t\t}\n\t\n\t\t/*--------------------------------------------------------------------------*/\n\t\n\t\tvar stringFromCharCode = String.fromCharCode;\n\t\n\t\t// Taken from https://mths.be/punycode\n\t\tfunction ucs2decode(string) {\n\t\t\tvar output = [];\n\t\t\tvar counter = 0;\n\t\t\tvar length = string.length;\n\t\t\tvar value;\n\t\t\tvar extra;\n\t\t\twhile (counter < length) {\n\t\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\t\toutput.push(value);\n\t\t\t\t\t\tcounter--;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\toutput.push(value);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\t\n\t\t// Taken from https://mths.be/punycode\n\t\tfunction ucs2encode(array) {\n\t\t\tvar length = array.length;\n\t\t\tvar index = -1;\n\t\t\tvar value;\n\t\t\tvar output = '';\n\t\t\twhile (++index < length) {\n\t\t\t\tvalue = array[index];\n\t\t\t\tif (value > 0xFFFF) {\n\t\t\t\t\tvalue -= 0x10000;\n\t\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t\t}\n\t\t\t\toutput += stringFromCharCode(value);\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\t\n\t\tfunction checkScalarValue(codePoint, strict) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\t\tif (strict) {\n\t\t\t\t\tthrow Error(\n\t\t\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t\t\t' is not a scalar value'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\t/*--------------------------------------------------------------------------*/\n\t\n\t\tfunction createByte(codePoint, shift) {\n\t\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t\t}\n\t\n\t\tfunction encodeCodePoint(codePoint, strict) {\n\t\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\t\treturn stringFromCharCode(codePoint);\n\t\t\t}\n\t\t\tvar symbol = '';\n\t\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t\t}\n\t\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\t\t\tcodePoint = 0xFFFD;\n\t\t\t\t}\n\t\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\t\tsymbol += createByte(codePoint, 6);\n\t\t\t}\n\t\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\t\tsymbol += createByte(codePoint, 6);\n\t\t\t}\n\t\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\t\treturn symbol;\n\t\t}\n\t\n\t\tfunction utf8encode(string, opts) {\n\t\t\topts = opts || {};\n\t\t\tvar strict = false !== opts.strict;\n\t\n\t\t\tvar codePoints = ucs2decode(string);\n\t\t\tvar length = codePoints.length;\n\t\t\tvar index = -1;\n\t\t\tvar codePoint;\n\t\t\tvar byteString = '';\n\t\t\twhile (++index < length) {\n\t\t\t\tcodePoint = codePoints[index];\n\t\t\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t\t\t}\n\t\t\treturn byteString;\n\t\t}\n\t\n\t\t/*--------------------------------------------------------------------------*/\n\t\n\t\tfunction readContinuationByte() {\n\t\t\tif (byteIndex >= byteCount) {\n\t\t\t\tthrow Error('Invalid byte index');\n\t\t\t}\n\t\n\t\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\t\tbyteIndex++;\n\t\n\t\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\t\treturn continuationByte & 0x3F;\n\t\t\t}\n\t\n\t\t\t// If we end up here, it’s not a continuation byte\n\t\t\tthrow Error('Invalid continuation byte');\n\t\t}\n\t\n\t\tfunction decodeSymbol(strict) {\n\t\t\tvar byte1;\n\t\t\tvar byte2;\n\t\t\tvar byte3;\n\t\t\tvar byte4;\n\t\t\tvar codePoint;\n\t\n\t\t\tif (byteIndex > byteCount) {\n\t\t\t\tthrow Error('Invalid byte index');\n\t\t\t}\n\t\n\t\t\tif (byteIndex == byteCount) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Read first byte\n\t\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\t\tbyteIndex++;\n\t\n\t\t\t// 1-byte sequence (no continuation bytes)\n\t\t\tif ((byte1 & 0x80) == 0) {\n\t\t\t\treturn byte1;\n\t\t\t}\n\t\n\t\t\t// 2-byte sequence\n\t\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\t\tbyte2 = readContinuationByte();\n\t\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\t\tif (codePoint >= 0x80) {\n\t\t\t\t\treturn codePoint;\n\t\t\t\t} else {\n\t\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\t\tbyte2 = readContinuationByte();\n\t\t\t\tbyte3 = readContinuationByte();\n\t\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t\t\t} else {\n\t\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// 4-byte sequence\n\t\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\t\tbyte2 = readContinuationByte();\n\t\t\t\tbyte3 = readContinuationByte();\n\t\t\t\tbyte4 = readContinuationByte();\n\t\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\t\treturn codePoint;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tthrow Error('Invalid UTF-8 detected');\n\t\t}\n\t\n\t\tvar byteArray;\n\t\tvar byteCount;\n\t\tvar byteIndex;\n\t\tfunction utf8decode(byteString, opts) {\n\t\t\topts = opts || {};\n\t\t\tvar strict = false !== opts.strict;\n\t\n\t\t\tbyteArray = ucs2decode(byteString);\n\t\t\tbyteCount = byteArray.length;\n\t\t\tbyteIndex = 0;\n\t\t\tvar codePoints = [];\n\t\t\tvar tmp;\n\t\t\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\t\t\tcodePoints.push(tmp);\n\t\t\t}\n\t\t\treturn ucs2encode(codePoints);\n\t\t}\n\t\n\t\t/*--------------------------------------------------------------------------*/\n\t\n\t\tvar utf8 = {\n\t\t\t'version': '2.1.2',\n\t\t\t'encode': utf8encode,\n\t\t\t'decode': utf8decode\n\t\t};\n\t\n\t\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t\t// like the following:\n\t\tif (\n\t\t\ttrue\n\t\t) {\n\t\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n\t\t\t\treturn utf8;\n\t\t\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\t\tfreeModule.exports = utf8;\n\t\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\t\tvar object = {};\n\t\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\t\tfor (var key in utf8) {\n\t\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else { // in Rhino or a web browser\n\t\t\troot.utf8 = utf8;\n\t\t}\n\t\n\t}(this));\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(27)(module), (function() { return this; }())))\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(module) {\r\n\t\tif(!module.webpackPolyfill) {\r\n\t\t\tmodule.deprecate = function() {};\r\n\t\t\tmodule.paths = [];\r\n\t\t\t// module.parent = undefined by default\r\n\t\t\tmodule.children = [];\r\n\t\t\tmodule.webpackPolyfill = 1;\r\n\t\t}\r\n\t\treturn module;\r\n\t}\r\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\n\t/*\n\t * base64-arraybuffer\n\t * https://github.com/niklasvh/base64-arraybuffer\n\t *\n\t * Copyright (c) 2012 Niklas von Hertzen\n\t * Licensed under the MIT license.\n\t */\n\t(function(){\n\t  \"use strict\";\n\t\n\t  var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\t\n\t  // Use a lookup table to find the index.\n\t  var lookup = new Uint8Array(256);\n\t  for (var i = 0; i < chars.length; i++) {\n\t    lookup[chars.charCodeAt(i)] = i;\n\t  }\n\t\n\t  exports.encode = function(arraybuffer) {\n\t    var bytes = new Uint8Array(arraybuffer),\n\t    i, len = bytes.length, base64 = \"\";\n\t\n\t    for (i = 0; i < len; i+=3) {\n\t      base64 += chars[bytes[i] >> 2];\n\t      base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n\t      base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n\t      base64 += chars[bytes[i + 2] & 63];\n\t    }\n\t\n\t    if ((len % 3) === 2) {\n\t      base64 = base64.substring(0, base64.length - 1) + \"=\";\n\t    } else if (len % 3 === 1) {\n\t      base64 = base64.substring(0, base64.length - 2) + \"==\";\n\t    }\n\t\n\t    return base64;\n\t  };\n\t\n\t  exports.decode =  function(base64) {\n\t    var bufferLength = base64.length * 0.75,\n\t    len = base64.length, i, p = 0,\n\t    encoded1, encoded2, encoded3, encoded4;\n\t\n\t    if (base64[base64.length - 1] === \"=\") {\n\t      bufferLength--;\n\t      if (base64[base64.length - 2] === \"=\") {\n\t        bufferLength--;\n\t      }\n\t    }\n\t\n\t    var arraybuffer = new ArrayBuffer(bufferLength),\n\t    bytes = new Uint8Array(arraybuffer);\n\t\n\t    for (i = 0; i < len; i+=4) {\n\t      encoded1 = lookup[base64.charCodeAt(i)];\n\t      encoded2 = lookup[base64.charCodeAt(i+1)];\n\t      encoded3 = lookup[base64.charCodeAt(i+2)];\n\t      encoded4 = lookup[base64.charCodeAt(i+3)];\n\t\n\t      bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n\t      bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n\t      bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n\t    }\n\t\n\t    return arraybuffer;\n\t  };\n\t})();\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Create a blob builder even when vendor prefixes exist\n\t */\n\t\n\tvar BlobBuilder = global.BlobBuilder\n\t  || global.WebKitBlobBuilder\n\t  || global.MSBlobBuilder\n\t  || global.MozBlobBuilder;\n\t\n\t/**\n\t * Check if Blob constructor is supported\n\t */\n\t\n\tvar blobSupported = (function() {\n\t  try {\n\t    var a = new Blob(['hi']);\n\t    return a.size === 2;\n\t  } catch(e) {\n\t    return false;\n\t  }\n\t})();\n\t\n\t/**\n\t * Check if Blob constructor supports ArrayBufferViews\n\t * Fails in Safari 6, so we need to map to ArrayBuffers there.\n\t */\n\t\n\tvar blobSupportsArrayBufferView = blobSupported && (function() {\n\t  try {\n\t    var b = new Blob([new Uint8Array([1,2])]);\n\t    return b.size === 2;\n\t  } catch(e) {\n\t    return false;\n\t  }\n\t})();\n\t\n\t/**\n\t * Check if BlobBuilder is supported\n\t */\n\t\n\tvar blobBuilderSupported = BlobBuilder\n\t  && BlobBuilder.prototype.append\n\t  && BlobBuilder.prototype.getBlob;\n\t\n\t/**\n\t * Helper function that maps ArrayBufferViews to ArrayBuffers\n\t * Used by BlobBuilder constructor and old browsers that didn't\n\t * support it in the Blob constructor.\n\t */\n\t\n\tfunction mapArrayBufferViews(ary) {\n\t  for (var i = 0; i < ary.length; i++) {\n\t    var chunk = ary[i];\n\t    if (chunk.buffer instanceof ArrayBuffer) {\n\t      var buf = chunk.buffer;\n\t\n\t      // if this is a subarray, make a copy so we only\n\t      // include the subarray region from the underlying buffer\n\t      if (chunk.byteLength !== buf.byteLength) {\n\t        var copy = new Uint8Array(chunk.byteLength);\n\t        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n\t        buf = copy.buffer;\n\t      }\n\t\n\t      ary[i] = buf;\n\t    }\n\t  }\n\t}\n\t\n\tfunction BlobBuilderConstructor(ary, options) {\n\t  options = options || {};\n\t\n\t  var bb = new BlobBuilder();\n\t  mapArrayBufferViews(ary);\n\t\n\t  for (var i = 0; i < ary.length; i++) {\n\t    bb.append(ary[i]);\n\t  }\n\t\n\t  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n\t};\n\t\n\tfunction BlobConstructor(ary, options) {\n\t  mapArrayBufferViews(ary);\n\t  return new Blob(ary, options || {});\n\t};\n\t\n\tmodule.exports = (function() {\n\t  if (blobSupported) {\n\t    return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n\t  } else if (blobBuilderSupported) {\n\t    return BlobBuilderConstructor;\n\t  } else {\n\t    return undefined;\n\t  }\n\t})();\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports) {\n\n\t/**\r\n\t * Compiles a querystring\r\n\t * Returns string representation of the object\r\n\t *\r\n\t * @param {Object}\r\n\t * @api private\r\n\t */\r\n\t\r\n\texports.encode = function (obj) {\r\n\t  var str = '';\r\n\t\r\n\t  for (var i in obj) {\r\n\t    if (obj.hasOwnProperty(i)) {\r\n\t      if (str.length) str += '&';\r\n\t      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n\t    }\r\n\t  }\r\n\t\r\n\t  return str;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Parses a simple querystring into an object\r\n\t *\r\n\t * @param {String} qs\r\n\t * @api private\r\n\t */\r\n\t\r\n\texports.decode = function(qs){\r\n\t  var qry = {};\r\n\t  var pairs = qs.split('&');\r\n\t  for (var i = 0, l = pairs.length; i < l; i++) {\r\n\t    var pair = pairs[i].split('=');\r\n\t    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n\t  }\r\n\t  return qry;\r\n\t};\r\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports) {\n\n\t\n\tmodule.exports = function(a, b){\n\t  var fn = function(){};\n\t  fn.prototype = b.prototype;\n\t  a.prototype = new fn;\n\t  a.prototype.constructor = a;\n\t};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n\t  , length = 64\n\t  , map = {}\n\t  , seed = 0\n\t  , i = 0\n\t  , prev;\n\t\n\t/**\n\t * Return a string representing the specified number.\n\t *\n\t * @param {Number} num The number to convert.\n\t * @returns {String} The string representation of the number.\n\t * @api public\n\t */\n\tfunction encode(num) {\n\t  var encoded = '';\n\t\n\t  do {\n\t    encoded = alphabet[num % length] + encoded;\n\t    num = Math.floor(num / length);\n\t  } while (num > 0);\n\t\n\t  return encoded;\n\t}\n\t\n\t/**\n\t * Return the integer value specified by the given string.\n\t *\n\t * @param {String} str The string to convert.\n\t * @returns {Number} The integer value represented by the string.\n\t * @api public\n\t */\n\tfunction decode(str) {\n\t  var decoded = 0;\n\t\n\t  for (i = 0; i < str.length; i++) {\n\t    decoded = decoded * length + map[str.charAt(i)];\n\t  }\n\t\n\t  return decoded;\n\t}\n\t\n\t/**\n\t * Yeast: A tiny growing id generator.\n\t *\n\t * @returns {String} A unique id.\n\t * @api public\n\t */\n\tfunction yeast() {\n\t  var now = encode(+new Date());\n\t\n\t  if (now !== prev) return seed = 0, prev = now;\n\t  return now +'.'+ encode(seed++);\n\t}\n\t\n\t//\n\t// Map each character to its index.\n\t//\n\tfor (; i < length; i++) map[alphabet[i]] = i;\n\t\n\t//\n\t// Expose the `yeast`, `encode` and `decode` functions.\n\t//\n\tyeast.encode = encode;\n\tyeast.decode = decode;\n\tmodule.exports = yeast;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {\n\t/**\n\t * Module requirements.\n\t */\n\t\n\tvar Polling = __webpack_require__(19);\n\tvar inherit = __webpack_require__(31);\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = JSONPPolling;\n\t\n\t/**\n\t * Cached regular expressions.\n\t */\n\t\n\tvar rNewline = /\\n/g;\n\tvar rEscapedNewline = /\\\\n/g;\n\t\n\t/**\n\t * Global JSONP callbacks.\n\t */\n\t\n\tvar callbacks;\n\t\n\t/**\n\t * Noop.\n\t */\n\t\n\tfunction empty () { }\n\t\n\t/**\n\t * JSONP Polling constructor.\n\t *\n\t * @param {Object} opts.\n\t * @api public\n\t */\n\t\n\tfunction JSONPPolling (opts) {\n\t  Polling.call(this, opts);\n\t\n\t  this.query = this.query || {};\n\t\n\t  // define global callbacks array if not present\n\t  // we do this here (lazily) to avoid unneeded global pollution\n\t  if (!callbacks) {\n\t    // we need to consider multiple engines in the same page\n\t    if (!global.___eio) global.___eio = [];\n\t    callbacks = global.___eio;\n\t  }\n\t\n\t  // callback identifier\n\t  this.index = callbacks.length;\n\t\n\t  // add callback to jsonp global\n\t  var self = this;\n\t  callbacks.push(function (msg) {\n\t    self.onData(msg);\n\t  });\n\t\n\t  // append to query string\n\t  this.query.j = this.index;\n\t\n\t  // prevent spurious errors from being emitted when the window is unloaded\n\t  if (global.document && global.addEventListener) {\n\t    global.addEventListener('beforeunload', function () {\n\t      if (self.script) self.script.onerror = empty;\n\t    }, false);\n\t  }\n\t}\n\t\n\t/**\n\t * Inherits from Polling.\n\t */\n\t\n\tinherit(JSONPPolling, Polling);\n\t\n\t/*\n\t * JSONP only supports binary as base64 encoded strings\n\t */\n\t\n\tJSONPPolling.prototype.supportsBinary = false;\n\t\n\t/**\n\t * Closes the socket.\n\t *\n\t * @api private\n\t */\n\t\n\tJSONPPolling.prototype.doClose = function () {\n\t  if (this.script) {\n\t    this.script.parentNode.removeChild(this.script);\n\t    this.script = null;\n\t  }\n\t\n\t  if (this.form) {\n\t    this.form.parentNode.removeChild(this.form);\n\t    this.form = null;\n\t    this.iframe = null;\n\t  }\n\t\n\t  Polling.prototype.doClose.call(this);\n\t};\n\t\n\t/**\n\t * Starts a poll cycle.\n\t *\n\t * @api private\n\t */\n\t\n\tJSONPPolling.prototype.doPoll = function () {\n\t  var self = this;\n\t  var script = document.createElement('script');\n\t\n\t  if (this.script) {\n\t    this.script.parentNode.removeChild(this.script);\n\t    this.script = null;\n\t  }\n\t\n\t  script.async = true;\n\t  script.src = this.uri();\n\t  script.onerror = function (e) {\n\t    self.onError('jsonp poll error', e);\n\t  };\n\t\n\t  var insertAt = document.getElementsByTagName('script')[0];\n\t  if (insertAt) {\n\t    insertAt.parentNode.insertBefore(script, insertAt);\n\t  } else {\n\t    (document.head || document.body).appendChild(script);\n\t  }\n\t  this.script = script;\n\t\n\t  var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\t\n\t  if (isUAgecko) {\n\t    setTimeout(function () {\n\t      var iframe = document.createElement('iframe');\n\t      document.body.appendChild(iframe);\n\t      document.body.removeChild(iframe);\n\t    }, 100);\n\t  }\n\t};\n\t\n\t/**\n\t * Writes with a hidden iframe.\n\t *\n\t * @param {String} data to send\n\t * @param {Function} called upon flush.\n\t * @api private\n\t */\n\t\n\tJSONPPolling.prototype.doWrite = function (data, fn) {\n\t  var self = this;\n\t\n\t  if (!this.form) {\n\t    var form = document.createElement('form');\n\t    var area = document.createElement('textarea');\n\t    var id = this.iframeId = 'eio_iframe_' + this.index;\n\t    var iframe;\n\t\n\t    form.className = 'socketio';\n\t    form.style.position = 'absolute';\n\t    form.style.top = '-1000px';\n\t    form.style.left = '-1000px';\n\t    form.target = id;\n\t    form.method = 'POST';\n\t    form.setAttribute('accept-charset', 'utf-8');\n\t    area.name = 'd';\n\t    form.appendChild(area);\n\t    document.body.appendChild(form);\n\t\n\t    this.form = form;\n\t    this.area = area;\n\t  }\n\t\n\t  this.form.action = this.uri();\n\t\n\t  function complete () {\n\t    initIframe();\n\t    fn();\n\t  }\n\t\n\t  function initIframe () {\n\t    if (self.iframe) {\n\t      try {\n\t        self.form.removeChild(self.iframe);\n\t      } catch (e) {\n\t        self.onError('jsonp polling iframe removal error', e);\n\t      }\n\t    }\n\t\n\t    try {\n\t      // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n\t      var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n\t      iframe = document.createElement(html);\n\t    } catch (e) {\n\t      iframe = document.createElement('iframe');\n\t      iframe.name = self.iframeId;\n\t      iframe.src = 'javascript:0';\n\t    }\n\t\n\t    iframe.id = self.iframeId;\n\t\n\t    self.form.appendChild(iframe);\n\t    self.iframe = iframe;\n\t  }\n\t\n\t  initIframe();\n\t\n\t  // escape \\n to prevent it from being converted into \\r\\n by some UAs\n\t  // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n\t  data = data.replace(rEscapedNewline, '\\\\\\n');\n\t  this.area.value = data.replace(rNewline, '\\\\n');\n\t\n\t  try {\n\t    this.form.submit();\n\t  } catch (e) {}\n\t\n\t  if (this.iframe.attachEvent) {\n\t    this.iframe.onreadystatechange = function () {\n\t      if (self.iframe.readyState === 'complete') {\n\t        complete();\n\t      }\n\t    };\n\t  } else {\n\t    this.iframe.onload = complete;\n\t  }\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module dependencies.\n\t */\n\t\n\tvar Transport = __webpack_require__(20);\n\tvar parser = __webpack_require__(21);\n\tvar parseqs = __webpack_require__(30);\n\tvar inherit = __webpack_require__(31);\n\tvar yeast = __webpack_require__(32);\n\tvar debug = __webpack_require__(3)('engine.io-client:websocket');\n\tvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\n\tvar NodeWebSocket;\n\tif (typeof window === 'undefined') {\n\t  try {\n\t    NodeWebSocket = __webpack_require__(35);\n\t  } catch (e) { }\n\t}\n\t\n\t/**\n\t * Get either the `WebSocket` or `MozWebSocket` globals\n\t * in the browser or try to resolve WebSocket-compatible\n\t * interface exposed by `ws` for Node-like environment.\n\t */\n\t\n\tvar WebSocket = BrowserWebSocket;\n\tif (!WebSocket && typeof window === 'undefined') {\n\t  WebSocket = NodeWebSocket;\n\t}\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = WS;\n\t\n\t/**\n\t * WebSocket transport constructor.\n\t *\n\t * @api {Object} connection options\n\t * @api public\n\t */\n\t\n\tfunction WS (opts) {\n\t  var forceBase64 = (opts && opts.forceBase64);\n\t  if (forceBase64) {\n\t    this.supportsBinary = false;\n\t  }\n\t  this.perMessageDeflate = opts.perMessageDeflate;\n\t  this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n\t  this.protocols = opts.protocols;\n\t  if (!this.usingBrowserWebSocket) {\n\t    WebSocket = NodeWebSocket;\n\t  }\n\t  Transport.call(this, opts);\n\t}\n\t\n\t/**\n\t * Inherits from Transport.\n\t */\n\t\n\tinherit(WS, Transport);\n\t\n\t/**\n\t * Transport name.\n\t *\n\t * @api public\n\t */\n\t\n\tWS.prototype.name = 'websocket';\n\t\n\t/*\n\t * WebSockets support binary\n\t */\n\t\n\tWS.prototype.supportsBinary = true;\n\t\n\t/**\n\t * Opens socket.\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.doOpen = function () {\n\t  if (!this.check()) {\n\t    // let probe timeout\n\t    return;\n\t  }\n\t\n\t  var uri = this.uri();\n\t  var protocols = this.protocols;\n\t  var opts = {\n\t    agent: this.agent,\n\t    perMessageDeflate: this.perMessageDeflate\n\t  };\n\t\n\t  // SSL options for Node.js client\n\t  opts.pfx = this.pfx;\n\t  opts.key = this.key;\n\t  opts.passphrase = this.passphrase;\n\t  opts.cert = this.cert;\n\t  opts.ca = this.ca;\n\t  opts.ciphers = this.ciphers;\n\t  opts.rejectUnauthorized = this.rejectUnauthorized;\n\t  if (this.extraHeaders) {\n\t    opts.headers = this.extraHeaders;\n\t  }\n\t  if (this.localAddress) {\n\t    opts.localAddress = this.localAddress;\n\t  }\n\t\n\t  try {\n\t    this.ws = this.usingBrowserWebSocket ? (protocols ? new WebSocket(uri, protocols) : new WebSocket(uri)) : new WebSocket(uri, protocols, opts);\n\t  } catch (err) {\n\t    return this.emit('error', err);\n\t  }\n\t\n\t  if (this.ws.binaryType === undefined) {\n\t    this.supportsBinary = false;\n\t  }\n\t\n\t  if (this.ws.supports && this.ws.supports.binary) {\n\t    this.supportsBinary = true;\n\t    this.ws.binaryType = 'nodebuffer';\n\t  } else {\n\t    this.ws.binaryType = 'arraybuffer';\n\t  }\n\t\n\t  this.addEventListeners();\n\t};\n\t\n\t/**\n\t * Adds event listeners to the socket\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.addEventListeners = function () {\n\t  var self = this;\n\t\n\t  this.ws.onopen = function () {\n\t    self.onOpen();\n\t  };\n\t  this.ws.onclose = function () {\n\t    self.onClose();\n\t  };\n\t  this.ws.onmessage = function (ev) {\n\t    self.onData(ev.data);\n\t  };\n\t  this.ws.onerror = function (e) {\n\t    self.onError('websocket error', e);\n\t  };\n\t};\n\t\n\t/**\n\t * Writes data to socket.\n\t *\n\t * @param {Array} array of packets.\n\t * @api private\n\t */\n\t\n\tWS.prototype.write = function (packets) {\n\t  var self = this;\n\t  this.writable = false;\n\t\n\t  // encodePacket efficient as it uses WS framing\n\t  // no need for encodePayload\n\t  var total = packets.length;\n\t  for (var i = 0, l = total; i < l; i++) {\n\t    (function (packet) {\n\t      parser.encodePacket(packet, self.supportsBinary, function (data) {\n\t        if (!self.usingBrowserWebSocket) {\n\t          // always create a new object (GH-437)\n\t          var opts = {};\n\t          if (packet.options) {\n\t            opts.compress = packet.options.compress;\n\t          }\n\t\n\t          if (self.perMessageDeflate) {\n\t            var len = 'string' === typeof data ? global.Buffer.byteLength(data) : data.length;\n\t            if (len < self.perMessageDeflate.threshold) {\n\t              opts.compress = false;\n\t            }\n\t          }\n\t        }\n\t\n\t        // Sometimes the websocket has already been closed but the browser didn't\n\t        // have a chance of informing us about it yet, in that case send will\n\t        // throw an error\n\t        try {\n\t          if (self.usingBrowserWebSocket) {\n\t            // TypeError is thrown when passing the second argument on Safari\n\t            self.ws.send(data);\n\t          } else {\n\t            self.ws.send(data, opts);\n\t          }\n\t        } catch (e) {\n\t          debug('websocket closed before onclose event');\n\t        }\n\t\n\t        --total || done();\n\t      });\n\t    })(packets[i]);\n\t  }\n\t\n\t  function done () {\n\t    self.emit('flush');\n\t\n\t    // fake drain\n\t    // defer to next tick to allow Socket to clear writeBuffer\n\t    setTimeout(function () {\n\t      self.writable = true;\n\t      self.emit('drain');\n\t    }, 0);\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon close\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.onClose = function () {\n\t  Transport.prototype.onClose.call(this);\n\t};\n\t\n\t/**\n\t * Closes socket.\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.doClose = function () {\n\t  if (typeof this.ws !== 'undefined') {\n\t    this.ws.close();\n\t  }\n\t};\n\t\n\t/**\n\t * Generates uri for connection.\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.uri = function () {\n\t  var query = this.query || {};\n\t  var schema = this.secure ? 'wss' : 'ws';\n\t  var port = '';\n\t\n\t  // avoid port if default for schema\n\t  if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n\t    ('ws' === schema && Number(this.port) !== 80))) {\n\t    port = ':' + this.port;\n\t  }\n\t\n\t  // append timestamp to URI\n\t  if (this.timestampRequests) {\n\t    query[this.timestampParam] = yeast();\n\t  }\n\t\n\t  // communicate binary support capabilities\n\t  if (!this.supportsBinary) {\n\t    query.b64 = 1;\n\t  }\n\t\n\t  query = parseqs.encode(query);\n\t\n\t  // prepend ? to query\n\t  if (query.length) {\n\t    query = '?' + query;\n\t  }\n\t\n\t  var ipv6 = this.hostname.indexOf(':') !== -1;\n\t  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n\t};\n\t\n\t/**\n\t * Feature detection for WebSocket.\n\t *\n\t * @return {Boolean} whether this transport is available.\n\t * @api public\n\t */\n\t\n\tWS.prototype.check = function () {\n\t  return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports) {\n\n\t/* (ignored) */\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\n\t\n\tvar indexOf = [].indexOf;\n\t\n\tmodule.exports = function(arr, obj){\n\t  if (indexOf) return arr.indexOf(obj);\n\t  for (var i = 0; i < arr.length; ++i) {\n\t    if (arr[i] === obj) return i;\n\t  }\n\t  return -1;\n\t};\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar parser = __webpack_require__(7);\n\tvar Emitter = __webpack_require__(8);\n\tvar toArray = __webpack_require__(38);\n\tvar on = __webpack_require__(39);\n\tvar bind = __webpack_require__(40);\n\tvar debug = __webpack_require__(3)('socket.io-client:socket');\n\tvar parseqs = __webpack_require__(30);\n\tvar hasBin = __webpack_require__(23);\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = exports = Socket;\n\t\n\t/**\n\t * Internal events (blacklisted).\n\t * These events can't be emitted by the user.\n\t *\n\t * @api private\n\t */\n\t\n\tvar events = {\n\t  connect: 1,\n\t  connect_error: 1,\n\t  connect_timeout: 1,\n\t  connecting: 1,\n\t  disconnect: 1,\n\t  error: 1,\n\t  reconnect: 1,\n\t  reconnect_attempt: 1,\n\t  reconnect_failed: 1,\n\t  reconnect_error: 1,\n\t  reconnecting: 1,\n\t  ping: 1,\n\t  pong: 1\n\t};\n\t\n\t/**\n\t * Shortcut to `Emitter#emit`.\n\t */\n\t\n\tvar emit = Emitter.prototype.emit;\n\t\n\t/**\n\t * `Socket` constructor.\n\t *\n\t * @api public\n\t */\n\t\n\tfunction Socket(io, nsp, opts) {\n\t  this.io = io;\n\t  this.nsp = nsp;\n\t  this.json = this; // compat\n\t  this.ids = 0;\n\t  this.acks = {};\n\t  this.receiveBuffer = [];\n\t  this.sendBuffer = [];\n\t  this.connected = false;\n\t  this.disconnected = true;\n\t  this.flags = {};\n\t  if (opts && opts.query) {\n\t    this.query = opts.query;\n\t  }\n\t  if (this.io.autoConnect) this.open();\n\t}\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Socket.prototype);\n\t\n\t/**\n\t * Subscribe to open, close and packet events\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.subEvents = function () {\n\t  if (this.subs) return;\n\t\n\t  var io = this.io;\n\t  this.subs = [on(io, 'open', bind(this, 'onopen')), on(io, 'packet', bind(this, 'onpacket')), on(io, 'close', bind(this, 'onclose'))];\n\t};\n\t\n\t/**\n\t * \"Opens\" the socket.\n\t *\n\t * @api public\n\t */\n\t\n\tSocket.prototype.open = Socket.prototype.connect = function () {\n\t  if (this.connected) return this;\n\t\n\t  this.subEvents();\n\t  this.io.open(); // ensure open\n\t  if ('open' === this.io.readyState) this.onopen();\n\t  this.emit('connecting');\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sends a `message` event.\n\t *\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.send = function () {\n\t  var args = toArray(arguments);\n\t  args.unshift('message');\n\t  this.emit.apply(this, args);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Override `emit`.\n\t * If the event is in `events`, it's emitted normally.\n\t *\n\t * @param {String} event name\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.emit = function (ev) {\n\t  if (events.hasOwnProperty(ev)) {\n\t    emit.apply(this, arguments);\n\t    return this;\n\t  }\n\t\n\t  var args = toArray(arguments);\n\t  var packet = {\n\t    type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n\t    data: args\n\t  };\n\t\n\t  packet.options = {};\n\t  packet.options.compress = !this.flags || false !== this.flags.compress;\n\t\n\t  // event ack callback\n\t  if ('function' === typeof args[args.length - 1]) {\n\t    debug('emitting packet with ack id %d', this.ids);\n\t    this.acks[this.ids] = args.pop();\n\t    packet.id = this.ids++;\n\t  }\n\t\n\t  if (this.connected) {\n\t    this.packet(packet);\n\t  } else {\n\t    this.sendBuffer.push(packet);\n\t  }\n\t\n\t  this.flags = {};\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sends a packet.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tSocket.prototype.packet = function (packet) {\n\t  packet.nsp = this.nsp;\n\t  this.io.packet(packet);\n\t};\n\t\n\t/**\n\t * Called upon engine `open`.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onopen = function () {\n\t  debug('transport is open - connecting');\n\t\n\t  // write connect packet if necessary\n\t  if ('/' !== this.nsp) {\n\t    if (this.query) {\n\t      var query = _typeof(this.query) === 'object' ? parseqs.encode(this.query) : this.query;\n\t      debug('sending connect packet with query %s', query);\n\t      this.packet({ type: parser.CONNECT, query: query });\n\t    } else {\n\t      this.packet({ type: parser.CONNECT });\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon engine `close`.\n\t *\n\t * @param {String} reason\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onclose = function (reason) {\n\t  debug('close (%s)', reason);\n\t  this.connected = false;\n\t  this.disconnected = true;\n\t  delete this.id;\n\t  this.emit('disconnect', reason);\n\t};\n\t\n\t/**\n\t * Called with socket packet.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onpacket = function (packet) {\n\t  var sameNamespace = packet.nsp === this.nsp;\n\t  var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\t\n\t  if (!sameNamespace && !rootNamespaceError) return;\n\t\n\t  switch (packet.type) {\n\t    case parser.CONNECT:\n\t      this.onconnect();\n\t      break;\n\t\n\t    case parser.EVENT:\n\t      this.onevent(packet);\n\t      break;\n\t\n\t    case parser.BINARY_EVENT:\n\t      this.onevent(packet);\n\t      break;\n\t\n\t    case parser.ACK:\n\t      this.onack(packet);\n\t      break;\n\t\n\t    case parser.BINARY_ACK:\n\t      this.onack(packet);\n\t      break;\n\t\n\t    case parser.DISCONNECT:\n\t      this.ondisconnect();\n\t      break;\n\t\n\t    case parser.ERROR:\n\t      this.emit('error', packet.data);\n\t      break;\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon a server event.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onevent = function (packet) {\n\t  var args = packet.data || [];\n\t  debug('emitting event %j', args);\n\t\n\t  if (null != packet.id) {\n\t    debug('attaching ack callback to event');\n\t    args.push(this.ack(packet.id));\n\t  }\n\t\n\t  if (this.connected) {\n\t    emit.apply(this, args);\n\t  } else {\n\t    this.receiveBuffer.push(args);\n\t  }\n\t};\n\t\n\t/**\n\t * Produces an ack callback to emit with an event.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.ack = function (id) {\n\t  var self = this;\n\t  var sent = false;\n\t  return function () {\n\t    // prevent double callbacks\n\t    if (sent) return;\n\t    sent = true;\n\t    var args = toArray(arguments);\n\t    debug('sending ack %j', args);\n\t\n\t    self.packet({\n\t      type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n\t      id: id,\n\t      data: args\n\t    });\n\t  };\n\t};\n\t\n\t/**\n\t * Called upon a server acknowlegement.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onack = function (packet) {\n\t  var ack = this.acks[packet.id];\n\t  if ('function' === typeof ack) {\n\t    debug('calling ack %s with %j', packet.id, packet.data);\n\t    ack.apply(this, packet.data);\n\t    delete this.acks[packet.id];\n\t  } else {\n\t    debug('bad ack %s', packet.id);\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon server connect.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onconnect = function () {\n\t  this.connected = true;\n\t  this.disconnected = false;\n\t  this.emit('connect');\n\t  this.emitBuffered();\n\t};\n\t\n\t/**\n\t * Emit buffered events (received and emitted).\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.emitBuffered = function () {\n\t  var i;\n\t  for (i = 0; i < this.receiveBuffer.length; i++) {\n\t    emit.apply(this, this.receiveBuffer[i]);\n\t  }\n\t  this.receiveBuffer = [];\n\t\n\t  for (i = 0; i < this.sendBuffer.length; i++) {\n\t    this.packet(this.sendBuffer[i]);\n\t  }\n\t  this.sendBuffer = [];\n\t};\n\t\n\t/**\n\t * Called upon server disconnect.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.ondisconnect = function () {\n\t  debug('server disconnect (%s)', this.nsp);\n\t  this.destroy();\n\t  this.onclose('io server disconnect');\n\t};\n\t\n\t/**\n\t * Called upon forced client/server side disconnections,\n\t * this method ensures the manager stops tracking us and\n\t * that reconnections don't get triggered for this.\n\t *\n\t * @api private.\n\t */\n\t\n\tSocket.prototype.destroy = function () {\n\t  if (this.subs) {\n\t    // clean subscriptions to avoid reconnections\n\t    for (var i = 0; i < this.subs.length; i++) {\n\t      this.subs[i].destroy();\n\t    }\n\t    this.subs = null;\n\t  }\n\t\n\t  this.io.destroy(this);\n\t};\n\t\n\t/**\n\t * Disconnects the socket manually.\n\t *\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.close = Socket.prototype.disconnect = function () {\n\t  if (this.connected) {\n\t    debug('performing disconnect (%s)', this.nsp);\n\t    this.packet({ type: parser.DISCONNECT });\n\t  }\n\t\n\t  // remove socket from pool\n\t  this.destroy();\n\t\n\t  if (this.connected) {\n\t    // fire events\n\t    this.onclose('io client disconnect');\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the compress flag.\n\t *\n\t * @param {Boolean} if `true`, compresses the sending data\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.compress = function (compress) {\n\t  this.flags.compress = compress;\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the binary flag\n\t *\n\t * @param {Boolean} whether the emitted data contains binary\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.binary = function (binary) {\n\t  this.flags.binary = binary;\n\t  return this;\n\t};\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = toArray\n\t\n\tfunction toArray(list, index) {\n\t    var array = []\n\t\n\t    index = index || 0\n\t\n\t    for (var i = index || 0; i < list.length; i++) {\n\t        array[i - index] = list[i]\n\t    }\n\t\n\t    return array\n\t}\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = on;\n\t\n\t/**\n\t * Helper for subscriptions.\n\t *\n\t * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n\t * @param {String} event name\n\t * @param {Function} callback\n\t * @api public\n\t */\n\t\n\tfunction on(obj, ev, fn) {\n\t  obj.on(ev, fn);\n\t  return {\n\t    destroy: function destroy() {\n\t      obj.removeListener(ev, fn);\n\t    }\n\t  };\n\t}\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Slice reference.\n\t */\n\t\n\tvar slice = [].slice;\n\t\n\t/**\n\t * Bind `obj` to `fn`.\n\t *\n\t * @param {Object} obj\n\t * @param {Function|String} fn or string\n\t * @return {Function}\n\t * @api public\n\t */\n\t\n\tmodule.exports = function(obj, fn){\n\t  if ('string' == typeof fn) fn = obj[fn];\n\t  if ('function' != typeof fn) throw new Error('bind() requires a function');\n\t  var args = slice.call(arguments, 2);\n\t  return function(){\n\t    return fn.apply(obj, args.concat(slice.call(arguments)));\n\t  }\n\t};\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports) {\n\n\t\n\t/**\n\t * Expose `Backoff`.\n\t */\n\t\n\tmodule.exports = Backoff;\n\t\n\t/**\n\t * Initialize backoff timer with `opts`.\n\t *\n\t * - `min` initial timeout in milliseconds [100]\n\t * - `max` max timeout [10000]\n\t * - `jitter` [0]\n\t * - `factor` [2]\n\t *\n\t * @param {Object} opts\n\t * @api public\n\t */\n\t\n\tfunction Backoff(opts) {\n\t  opts = opts || {};\n\t  this.ms = opts.min || 100;\n\t  this.max = opts.max || 10000;\n\t  this.factor = opts.factor || 2;\n\t  this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n\t  this.attempts = 0;\n\t}\n\t\n\t/**\n\t * Return the backoff duration.\n\t *\n\t * @return {Number}\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.duration = function(){\n\t  var ms = this.ms * Math.pow(this.factor, this.attempts++);\n\t  if (this.jitter) {\n\t    var rand =  Math.random();\n\t    var deviation = Math.floor(rand * this.jitter * ms);\n\t    ms = (Math.floor(rand * 10) & 1) == 0  ? ms - deviation : ms + deviation;\n\t  }\n\t  return Math.min(ms, this.max) | 0;\n\t};\n\t\n\t/**\n\t * Reset the number of attempts.\n\t *\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.reset = function(){\n\t  this.attempts = 0;\n\t};\n\t\n\t/**\n\t * Set the minimum duration\n\t *\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.setMin = function(min){\n\t  this.ms = min;\n\t};\n\t\n\t/**\n\t * Set the maximum duration\n\t *\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.setMax = function(max){\n\t  this.max = max;\n\t};\n\t\n\t/**\n\t * Set the jitter\n\t *\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.setJitter = function(jitter){\n\t  this.jitter = jitter;\n\t};\n\t\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// socket.io.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 3dcdaa84a447b9ebdc0b","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n *   `io('http://localhost/a');`\n *   `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n  if (typeof uri === 'object') {\n    opts = uri;\n    uri = undefined;\n  }\n\n  opts = opts || {};\n\n  var parsed = url(uri);\n  var source = parsed.source;\n  var id = parsed.id;\n  var path = parsed.path;\n  var sameNamespace = cache[id] && path in cache[id].nsps;\n  var newConnection = opts.forceNew || opts['force new connection'] ||\n                      false === opts.multiplex || sameNamespace;\n\n  var io;\n\n  if (newConnection) {\n    debug('ignoring socket cache for %s', source);\n    io = Manager(source, opts);\n  } else {\n    if (!cache[id]) {\n      debug('new io instance for %s', source);\n      cache[id] = Manager(source, opts);\n    }\n    io = cache[id];\n  }\n  if (parsed.query && !opts.query) {\n    opts.query = parsed.query;\n  }\n  return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n\n\n\n// WEBPACK FOOTER //\n// ./lib/index.js","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n *                 Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n  var obj = uri;\n\n  // default to window.location\n  loc = loc || global.location;\n  if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n  // relative path support\n  if ('string' === typeof uri) {\n    if ('/' === uri.charAt(0)) {\n      if ('/' === uri.charAt(1)) {\n        uri = loc.protocol + uri;\n      } else {\n        uri = loc.host + uri;\n      }\n    }\n\n    if (!/^(https?|wss?):\\/\\//.test(uri)) {\n      debug('protocol-less url %s', uri);\n      if ('undefined' !== typeof loc) {\n        uri = loc.protocol + '//' + uri;\n      } else {\n        uri = 'https://' + uri;\n      }\n    }\n\n    // parse\n    debug('parse %s', uri);\n    obj = parseuri(uri);\n  }\n\n  // make sure we treat `localhost:80` and `localhost` equally\n  if (!obj.port) {\n    if (/^(http|ws)$/.test(obj.protocol)) {\n      obj.port = '80';\n    } else if (/^(http|ws)s$/.test(obj.protocol)) {\n      obj.port = '443';\n    }\n  }\n\n  obj.path = obj.path || '/';\n\n  var ipv6 = obj.host.indexOf(':') !== -1;\n  var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n  // define unique id\n  obj.id = obj.protocol + '://' + host + ':' + obj.port;\n  // define href\n  obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n  return obj;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/url.js","/**\r\n * Parses an URI\r\n *\r\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n * @api private\r\n */\r\n\r\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\r\nvar parts = [\r\n    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n];\r\n\r\nmodule.exports = function parseuri(str) {\r\n    var src = str,\r\n        b = str.indexOf('['),\r\n        e = str.indexOf(']');\r\n\r\n    if (b != -1 && e != -1) {\r\n        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n    }\r\n\r\n    var m = re.exec(str || ''),\r\n        uri = {},\r\n        i = 14;\r\n\r\n    while (i--) {\r\n        uri[parts[i]] = m[i] || '';\r\n    }\r\n\r\n    if (b != -1 && e != -1) {\r\n        uri.source = src;\r\n        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n        uri.ipv6uri = true;\r\n    }\r\n\r\n    return uri;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/parseuri/index.js\n// module id = 2\n// module chunks = 0","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n               && 'undefined' != typeof chrome.storage\n                  ? chrome.storage.local\n                  : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n  '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n  '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n  '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n  '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n  '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n  '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n  '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n  '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n  '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n  '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n  '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n  // NB: In an Electron preload script, document will be defined but not fully\n  // initialized. Since we know we're in Chrome, we'll just detect this case\n  // explicitly\n  if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n    return true;\n  }\n\n  // Internet Explorer and Edge do not support colors.\n  if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n    return false;\n  }\n\n  // is webkit? http://stackoverflow.com/a/16459606/376773\n  // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n  return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n    // is firebug? http://stackoverflow.com/a/398120/376773\n    (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n    // is firefox >= v31?\n    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n    // double check webkit in userAgent just in case we are in a worker\n    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n  try {\n    return JSON.stringify(v);\n  } catch (err) {\n    return '[UnexpectedJSONParseError]: ' + err.message;\n  }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n  var useColors = this.useColors;\n\n  args[0] = (useColors ? '%c' : '')\n    + this.namespace\n    + (useColors ? ' %c' : ' ')\n    + args[0]\n    + (useColors ? '%c ' : ' ')\n    + '+' + exports.humanize(this.diff);\n\n  if (!useColors) return;\n\n  var c = 'color: ' + this.color;\n  args.splice(1, 0, c, 'color: inherit')\n\n  // the final \"%c\" is somewhat tricky, because there could be other\n  // arguments passed either before or after the %c, so we need to\n  // figure out the correct index to insert the CSS into\n  var index = 0;\n  var lastC = 0;\n  args[0].replace(/%[a-zA-Z%]/g, function(match) {\n    if ('%%' === match) return;\n    index++;\n    if ('%c' === match) {\n      // we only are interested in the *last* %c\n      // (the user may have provided their own)\n      lastC = index;\n    }\n  });\n\n  args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n  // this hackery is required for IE8/9, where\n  // the `console.log` function doesn't have 'apply'\n  return 'object' === typeof console\n    && console.log\n    && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n  try {\n    if (null == namespaces) {\n      exports.storage.removeItem('debug');\n    } else {\n      exports.storage.debug = namespaces;\n    }\n  } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n  var r;\n  try {\n    r = exports.storage.debug;\n  } catch(e) {}\n\n  // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n  if (!r && typeof process !== 'undefined' && 'env' in process) {\n    r = process.env.DEBUG;\n  }\n\n  return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n  try {\n    return window.localStorage;\n  } catch (e) {}\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/debug/src/browser.js\n// module id = 3\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 4\n// module chunks = 0","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n  var hash = 0, i;\n\n  for (i in namespace) {\n    hash  = ((hash << 5) - hash) + namespace.charCodeAt(i);\n    hash |= 0; // Convert to 32bit integer\n  }\n\n  return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n  var prevTime;\n\n  function debug() {\n    // disabled?\n    if (!debug.enabled) return;\n\n    var self = debug;\n\n    // set `diff` timestamp\n    var curr = +new Date();\n    var ms = curr - (prevTime || curr);\n    self.diff = ms;\n    self.prev = prevTime;\n    self.curr = curr;\n    prevTime = curr;\n\n    // turn the `arguments` into a proper Array\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n\n    args[0] = exports.coerce(args[0]);\n\n    if ('string' !== typeof args[0]) {\n      // anything else let's inspect with %O\n      args.unshift('%O');\n    }\n\n    // apply any `formatters` transformations\n    var index = 0;\n    args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n      // if we encounter an escaped % then don't increase the array index\n      if (match === '%%') return match;\n      index++;\n      var formatter = exports.formatters[format];\n      if ('function' === typeof formatter) {\n        var val = args[index];\n        match = formatter.call(self, val);\n\n        // now we need to remove `args[index]` since it's inlined in the `format`\n        args.splice(index, 1);\n        index--;\n      }\n      return match;\n    });\n\n    // apply env-specific formatting (colors, etc.)\n    exports.formatArgs.call(self, args);\n\n    var logFn = debug.log || exports.log || console.log.bind(console);\n    logFn.apply(self, args);\n  }\n\n  debug.namespace = namespace;\n  debug.enabled = exports.enabled(namespace);\n  debug.useColors = exports.useColors();\n  debug.color = selectColor(namespace);\n  debug.destroy = destroy;\n\n  // env-specific initialization logic for debug instances\n  if ('function' === typeof exports.init) {\n    exports.init(debug);\n  }\n\n  exports.instances.push(debug);\n\n  return debug;\n}\n\nfunction destroy () {\n  var index = exports.instances.indexOf(this);\n  if (index !== -1) {\n    exports.instances.splice(index, 1);\n    return true;\n  } else {\n    return false;\n  }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n  exports.save(namespaces);\n\n  exports.names = [];\n  exports.skips = [];\n\n  var i;\n  var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n  var len = split.length;\n\n  for (i = 0; i < len; i++) {\n    if (!split[i]) continue; // ignore empty strings\n    namespaces = split[i].replace(/\\*/g, '.*?');\n    if (namespaces[0] === '-') {\n      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n    } else {\n      exports.names.push(new RegExp('^' + namespaces + '$'));\n    }\n  }\n\n  for (i = 0; i < exports.instances.length; i++) {\n    var instance = exports.instances[i];\n    instance.enabled = exports.enabled(instance.namespace);\n  }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n  exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n  if (name[name.length - 1] === '*') {\n    return true;\n  }\n  var i, len;\n  for (i = 0, len = exports.skips.length; i < len; i++) {\n    if (exports.skips[i].test(name)) {\n      return false;\n    }\n  }\n  for (i = 0, len = exports.names.length; i < len; i++) {\n    if (exports.names[i].test(name)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n  if (val instanceof Error) return val.stack || val.message;\n  return val;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/debug/src/debug.js\n// module id = 5\n// module chunks = 0","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n  options = options || {};\n  var type = typeof val;\n  if (type === 'string' && val.length > 0) {\n    return parse(val);\n  } else if (type === 'number' && isNaN(val) === false) {\n    return options.long ? fmtLong(val) : fmtShort(val);\n  }\n  throw new Error(\n    'val is not a non-empty string or a valid number. val=' +\n      JSON.stringify(val)\n  );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = String(str);\n  if (str.length > 100) {\n    return;\n  }\n  var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n    str\n  );\n  if (!match) {\n    return;\n  }\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n    default:\n      return undefined;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n  if (ms >= d) {\n    return Math.round(ms / d) + 'd';\n  }\n  if (ms >= h) {\n    return Math.round(ms / h) + 'h';\n  }\n  if (ms >= m) {\n    return Math.round(ms / m) + 'm';\n  }\n  if (ms >= s) {\n    return Math.round(ms / s) + 's';\n  }\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n  return plural(ms, d, 'day') ||\n    plural(ms, h, 'hour') ||\n    plural(ms, m, 'minute') ||\n    plural(ms, s, 'second') ||\n    ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n  if (ms < n) {\n    return;\n  }\n  if (ms < n * 1.5) {\n    return Math.floor(ms / n) + ' ' + name;\n  }\n  return Math.ceil(ms / n) + ' ' + name + 's';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ms/index.js\n// module id = 6\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar binary = require('./binary');\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n  'CONNECT',\n  'DISCONNECT',\n  'EVENT',\n  'ACK',\n  'ERROR',\n  'BINARY_EVENT',\n  'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\nvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n  debug('encoding packet %j', obj);\n\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    encodeAsBinary(obj, callback);\n  } else {\n    var encoding = encodeAsString(obj);\n    callback([encoding]);\n  }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n  // first is type\n  var str = '' + obj.type;\n\n  // attachments if we have them\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    str += obj.attachments + '-';\n  }\n\n  // if we have a namespace other than `/`\n  // we append it followed by a comma `,`\n  if (obj.nsp && '/' !== obj.nsp) {\n    str += obj.nsp + ',';\n  }\n\n  // immediately followed by the id\n  if (null != obj.id) {\n    str += obj.id;\n  }\n\n  // json data\n  if (null != obj.data) {\n    var payload = tryStringify(obj.data);\n    if (payload !== false) {\n      str += payload;\n    } else {\n      return ERROR_PACKET;\n    }\n  }\n\n  debug('encoded %j as %s', obj, str);\n  return str;\n}\n\nfunction tryStringify(str) {\n  try {\n    return JSON.stringify(str);\n  } catch(e){\n    return false;\n  }\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n  function writeEncoding(bloblessData) {\n    var deconstruction = binary.deconstructPacket(bloblessData);\n    var pack = encodeAsString(deconstruction.packet);\n    var buffers = deconstruction.buffers;\n\n    buffers.unshift(pack); // add packet info to beginning of data list\n    callback(buffers); // write all the buffers\n  }\n\n  binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n  this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an ecoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n  var packet;\n  if (typeof obj === 'string') {\n    packet = decodeString(obj);\n    if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n      this.reconstructor = new BinaryReconstructor(packet);\n\n      // no attachments, labeled binary but no binary data to follow\n      if (this.reconstructor.reconPack.attachments === 0) {\n        this.emit('decoded', packet);\n      }\n    } else { // non-binary full packet\n      this.emit('decoded', packet);\n    }\n  }\n  else if (isBuf(obj) || obj.base64) { // raw binary data\n    if (!this.reconstructor) {\n      throw new Error('got binary data when not reconstructing a packet');\n    } else {\n      packet = this.reconstructor.takeBinaryData(obj);\n      if (packet) { // received final buffer\n        this.reconstructor = null;\n        this.emit('decoded', packet);\n      }\n    }\n  }\n  else {\n    throw new Error('Unknown type: ' + obj);\n  }\n};\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n  var i = 0;\n  // look up type\n  var p = {\n    type: Number(str.charAt(0))\n  };\n\n  if (null == exports.types[p.type]) {\n    return error('unknown packet type ' + p.type);\n  }\n\n  // look up attachments if type binary\n  if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n    var buf = '';\n    while (str.charAt(++i) !== '-') {\n      buf += str.charAt(i);\n      if (i == str.length) break;\n    }\n    if (buf != Number(buf) || str.charAt(i) !== '-') {\n      throw new Error('Illegal attachments');\n    }\n    p.attachments = Number(buf);\n  }\n\n  // look up namespace (if any)\n  if ('/' === str.charAt(i + 1)) {\n    p.nsp = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (',' === c) break;\n      p.nsp += c;\n      if (i === str.length) break;\n    }\n  } else {\n    p.nsp = '/';\n  }\n\n  // look up id\n  var next = str.charAt(i + 1);\n  if ('' !== next && Number(next) == next) {\n    p.id = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (null == c || Number(c) != c) {\n        --i;\n        break;\n      }\n      p.id += str.charAt(i);\n      if (i === str.length) break;\n    }\n    p.id = Number(p.id);\n  }\n\n  // look up json data\n  if (str.charAt(++i)) {\n    var payload = tryParse(str.substr(i));\n    var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));\n    if (isPayloadValid) {\n      p.data = payload;\n    } else {\n      return error('invalid payload');\n    }\n  }\n\n  debug('decoded %s as %j', str, p);\n  return p;\n}\n\nfunction tryParse(str) {\n  try {\n    return JSON.parse(str);\n  } catch(e){\n    return false;\n  }\n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n  if (this.reconstructor) {\n    this.reconstructor.finishedReconstruction();\n  }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n  this.reconPack = packet;\n  this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n *   a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n  this.buffers.push(binData);\n  if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n    var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n    this.finishedReconstruction();\n    return packet;\n  }\n  return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n  this.reconPack = null;\n  this.buffers = [];\n};\n\nfunction error(msg) {\n  return {\n    type: exports.ERROR,\n    data: 'parser error: ' + msg\n  };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/index.js\n// module id = 7\n// module chunks = 0","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n  module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n  if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n  for (var key in Emitter.prototype) {\r\n    obj[key] = Emitter.prototype[key];\r\n  }\r\n  return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n    .push(fn);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n  function on() {\r\n    this.off(event, on);\r\n    fn.apply(this, arguments);\r\n  }\r\n\r\n  on.fn = fn;\r\n  this.on(event, on);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n\r\n  // all\r\n  if (0 == arguments.length) {\r\n    this._callbacks = {};\r\n    return this;\r\n  }\r\n\r\n  // specific event\r\n  var callbacks = this._callbacks['$' + event];\r\n  if (!callbacks) return this;\r\n\r\n  // remove all handlers\r\n  if (1 == arguments.length) {\r\n    delete this._callbacks['$' + event];\r\n    return this;\r\n  }\r\n\r\n  // remove specific handler\r\n  var cb;\r\n  for (var i = 0; i < callbacks.length; i++) {\r\n    cb = callbacks[i];\r\n    if (cb === fn || cb.fn === fn) {\r\n      callbacks.splice(i, 1);\r\n      break;\r\n    }\r\n  }\r\n  return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  var args = [].slice.call(arguments, 1)\r\n    , callbacks = this._callbacks['$' + event];\r\n\r\n  if (callbacks) {\r\n    callbacks = callbacks.slice(0);\r\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n      callbacks[i].apply(this, args);\r\n    }\r\n  }\r\n\r\n  return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n  return !! this.listeners(event).length;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-emitter/index.js\n// module id = 8\n// module chunks = 0","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n  var buffers = [];\n  var packetData = packet.data;\n  var pack = packet;\n  pack.data = _deconstructPacket(packetData, buffers);\n  pack.attachments = buffers.length; // number of binary 'attachments'\n  return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (isBuf(data)) {\n    var placeholder = { _placeholder: true, num: buffers.length };\n    buffers.push(data);\n    return placeholder;\n  } else if (isArray(data)) {\n    var newData = new Array(data.length);\n    for (var i = 0; i < data.length; i++) {\n      newData[i] = _deconstructPacket(data[i], buffers);\n    }\n    return newData;\n  } else if (typeof data === 'object' && !(data instanceof Date)) {\n    var newData = {};\n    for (var key in data) {\n      newData[key] = _deconstructPacket(data[key], buffers);\n    }\n    return newData;\n  }\n  return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n  packet.data = _reconstructPacket(packet.data, buffers);\n  packet.attachments = undefined; // no longer useful\n  return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (data && data._placeholder) {\n    return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n  } else if (isArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      data[i] = _reconstructPacket(data[i], buffers);\n    }\n  } else if (typeof data === 'object') {\n    for (var key in data) {\n      data[key] = _reconstructPacket(data[key], buffers);\n    }\n  }\n\n  return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n  function _removeBlobs(obj, curKey, containingObject) {\n    if (!obj) return obj;\n\n    // convert any blob\n    if ((withNativeBlob && obj instanceof Blob) ||\n        (withNativeFile && obj instanceof File)) {\n      pendingBlobs++;\n\n      // async filereader\n      var fileReader = new FileReader();\n      fileReader.onload = function() { // this.result == arraybuffer\n        if (containingObject) {\n          containingObject[curKey] = this.result;\n        }\n        else {\n          bloblessData = this.result;\n        }\n\n        // if nothing pending its callback time\n        if(! --pendingBlobs) {\n          callback(bloblessData);\n        }\n      };\n\n      fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n    } else if (isArray(obj)) { // handle array\n      for (var i = 0; i < obj.length; i++) {\n        _removeBlobs(obj[i], i, obj);\n      }\n    } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n      for (var key in obj) {\n        _removeBlobs(obj[key], key, obj);\n      }\n    }\n  }\n\n  var pendingBlobs = 0;\n  var bloblessData = data;\n  _removeBlobs(bloblessData);\n  if (!pendingBlobs) {\n    callback(bloblessData);\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/binary.js\n// module id = 9\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/isarray/index.js\n// module id = 10\n// module chunks = 0","\nmodule.exports = isBuf;\n\nvar withNativeBuffer = typeof global.Buffer === 'function' && typeof global.Buffer.isBuffer === 'function';\nvar withNativeArrayBuffer = typeof global.ArrayBuffer === 'function';\n\nvar isView = (function () {\n  if (withNativeArrayBuffer && typeof global.ArrayBuffer.isView === 'function') {\n    return global.ArrayBuffer.isView;\n  } else {\n    return function (obj) { return obj.buffer instanceof global.ArrayBuffer; };\n  }\n})();\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n  return (withNativeBuffer && global.Buffer.isBuffer(obj)) ||\n          (withNativeArrayBuffer && (obj instanceof global.ArrayBuffer || isView(obj)));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/is-buffer.js\n// module id = 11\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n  if (!(this instanceof Manager)) return new Manager(uri, opts);\n  if (uri && ('object' === typeof uri)) {\n    opts = uri;\n    uri = undefined;\n  }\n  opts = opts || {};\n\n  opts.path = opts.path || '/socket.io';\n  this.nsps = {};\n  this.subs = [];\n  this.opts = opts;\n  this.reconnection(opts.reconnection !== false);\n  this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n  this.reconnectionDelay(opts.reconnectionDelay || 1000);\n  this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n  this.randomizationFactor(opts.randomizationFactor || 0.5);\n  this.backoff = new Backoff({\n    min: this.reconnectionDelay(),\n    max: this.reconnectionDelayMax(),\n    jitter: this.randomizationFactor()\n  });\n  this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n  this.readyState = 'closed';\n  this.uri = uri;\n  this.connecting = [];\n  this.lastPing = null;\n  this.encoding = false;\n  this.packetBuffer = [];\n  var _parser = opts.parser || parser;\n  this.encoder = new _parser.Encoder();\n  this.decoder = new _parser.Decoder();\n  this.autoConnect = opts.autoConnect !== false;\n  if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n  this.emit.apply(this, arguments);\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n    }\n  }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].id = this.generateId(nsp);\n    }\n  }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n  return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n  if (!arguments.length) return this._reconnection;\n  this._reconnection = !!v;\n  return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n  if (!arguments.length) return this._reconnectionAttempts;\n  this._reconnectionAttempts = v;\n  return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n  if (!arguments.length) return this._reconnectionDelay;\n  this._reconnectionDelay = v;\n  this.backoff && this.backoff.setMin(v);\n  return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n  if (!arguments.length) return this._randomizationFactor;\n  this._randomizationFactor = v;\n  this.backoff && this.backoff.setJitter(v);\n  return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n  if (!arguments.length) return this._reconnectionDelayMax;\n  this._reconnectionDelayMax = v;\n  this.backoff && this.backoff.setMax(v);\n  return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n  if (!arguments.length) return this._timeout;\n  this._timeout = v;\n  return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n  // Only try to reconnect if it's the first time we're connecting\n  if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n    // keeps reconnection from firing twice for the same reconnection loop\n    this.reconnect();\n  }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n  debug('readyState %s', this.readyState);\n  if (~this.readyState.indexOf('open')) return this;\n\n  debug('opening %s', this.uri);\n  this.engine = eio(this.uri, this.opts);\n  var socket = this.engine;\n  var self = this;\n  this.readyState = 'opening';\n  this.skipReconnect = false;\n\n  // emit `open`\n  var openSub = on(socket, 'open', function () {\n    self.onopen();\n    fn && fn();\n  });\n\n  // emit `connect_error`\n  var errorSub = on(socket, 'error', function (data) {\n    debug('connect_error');\n    self.cleanup();\n    self.readyState = 'closed';\n    self.emitAll('connect_error', data);\n    if (fn) {\n      var err = new Error('Connection error');\n      err.data = data;\n      fn(err);\n    } else {\n      // Only do this if there is no fn to handle the error\n      self.maybeReconnectOnOpen();\n    }\n  });\n\n  // emit `connect_timeout`\n  if (false !== this._timeout) {\n    var timeout = this._timeout;\n    debug('connect attempt will timeout after %d', timeout);\n\n    // set timer\n    var timer = setTimeout(function () {\n      debug('connect attempt timed out after %d', timeout);\n      openSub.destroy();\n      socket.close();\n      socket.emit('error', 'timeout');\n      self.emitAll('connect_timeout', timeout);\n    }, timeout);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n\n  this.subs.push(openSub);\n  this.subs.push(errorSub);\n\n  return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n  debug('open');\n\n  // clear old subs\n  this.cleanup();\n\n  // mark as open\n  this.readyState = 'open';\n  this.emit('open');\n\n  // add new subs\n  var socket = this.engine;\n  this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n  this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n  this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n  this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n  this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n  this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n  this.lastPing = new Date();\n  this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n  this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n  this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n  debug('error', err);\n  this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n  var socket = this.nsps[nsp];\n  if (!socket) {\n    socket = new Socket(this, nsp, opts);\n    this.nsps[nsp] = socket;\n    var self = this;\n    socket.on('connecting', onConnecting);\n    socket.on('connect', function () {\n      socket.id = self.generateId(nsp);\n    });\n\n    if (this.autoConnect) {\n      // manually call here since connecting event is fired before listening\n      onConnecting();\n    }\n  }\n\n  function onConnecting () {\n    if (!~indexOf(self.connecting, socket)) {\n      self.connecting.push(socket);\n    }\n  }\n\n  return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n  var index = indexOf(this.connecting, socket);\n  if (~index) this.connecting.splice(index, 1);\n  if (this.connecting.length) return;\n\n  this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n  debug('writing packet %j', packet);\n  var self = this;\n  if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n  if (!self.encoding) {\n    // encode, then write to engine with result\n    self.encoding = true;\n    this.encoder.encode(packet, function (encodedPackets) {\n      for (var i = 0; i < encodedPackets.length; i++) {\n        self.engine.write(encodedPackets[i], packet.options);\n      }\n      self.encoding = false;\n      self.processPacketQueue();\n    });\n  } else { // add packet to the queue\n    self.packetBuffer.push(packet);\n  }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n  if (this.packetBuffer.length > 0 && !this.encoding) {\n    var pack = this.packetBuffer.shift();\n    this.packet(pack);\n  }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n  debug('cleanup');\n\n  var subsLength = this.subs.length;\n  for (var i = 0; i < subsLength; i++) {\n    var sub = this.subs.shift();\n    sub.destroy();\n  }\n\n  this.packetBuffer = [];\n  this.encoding = false;\n  this.lastPing = null;\n\n  this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n  debug('disconnect');\n  this.skipReconnect = true;\n  this.reconnecting = false;\n  if ('opening' === this.readyState) {\n    // `onclose` will not fire because\n    // an open event never happened\n    this.cleanup();\n  }\n  this.backoff.reset();\n  this.readyState = 'closed';\n  if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n  debug('onclose');\n\n  this.cleanup();\n  this.backoff.reset();\n  this.readyState = 'closed';\n  this.emit('close', reason);\n\n  if (this._reconnection && !this.skipReconnect) {\n    this.reconnect();\n  }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n  if (this.reconnecting || this.skipReconnect) return this;\n\n  var self = this;\n\n  if (this.backoff.attempts >= this._reconnectionAttempts) {\n    debug('reconnect failed');\n    this.backoff.reset();\n    this.emitAll('reconnect_failed');\n    this.reconnecting = false;\n  } else {\n    var delay = this.backoff.duration();\n    debug('will wait %dms before reconnect attempt', delay);\n\n    this.reconnecting = true;\n    var timer = setTimeout(function () {\n      if (self.skipReconnect) return;\n\n      debug('attempting reconnect');\n      self.emitAll('reconnect_attempt', self.backoff.attempts);\n      self.emitAll('reconnecting', self.backoff.attempts);\n\n      // check again for the case socket closed in above events\n      if (self.skipReconnect) return;\n\n      self.open(function (err) {\n        if (err) {\n          debug('reconnect attempt error');\n          self.reconnecting = false;\n          self.reconnect();\n          self.emitAll('reconnect_error', err.data);\n        } else {\n          debug('reconnect success');\n          self.onreconnect();\n        }\n      });\n    }, delay);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n  var attempt = this.backoff.attempts;\n  this.reconnecting = false;\n  this.backoff.reset();\n  this.updateSocketIds();\n  this.emitAll('reconnect', attempt);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/manager.js","\nmodule.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/index.js\n// module id = 13\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n  if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n  opts = opts || {};\n\n  if (uri && 'object' === typeof uri) {\n    opts = uri;\n    uri = null;\n  }\n\n  if (uri) {\n    uri = parseuri(uri);\n    opts.hostname = uri.host;\n    opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n    opts.port = uri.port;\n    if (uri.query) opts.query = uri.query;\n  } else if (opts.host) {\n    opts.hostname = parseuri(opts.host).host;\n  }\n\n  this.secure = null != opts.secure ? opts.secure\n    : (global.location && 'https:' === location.protocol);\n\n  if (opts.hostname && !opts.port) {\n    // if no port is specified manually, use the protocol default\n    opts.port = this.secure ? '443' : '80';\n  }\n\n  this.agent = opts.agent || false;\n  this.hostname = opts.hostname ||\n    (global.location ? location.hostname : 'localhost');\n  this.port = opts.port || (global.location && location.port\n      ? location.port\n      : (this.secure ? 443 : 80));\n  this.query = opts.query || {};\n  if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n  this.upgrade = false !== opts.upgrade;\n  this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n  this.forceJSONP = !!opts.forceJSONP;\n  this.jsonp = false !== opts.jsonp;\n  this.forceBase64 = !!opts.forceBase64;\n  this.enablesXDR = !!opts.enablesXDR;\n  this.timestampParam = opts.timestampParam || 't';\n  this.timestampRequests = opts.timestampRequests;\n  this.transports = opts.transports || ['polling', 'websocket'];\n  this.transportOptions = opts.transportOptions || {};\n  this.readyState = '';\n  this.writeBuffer = [];\n  this.prevBufferLen = 0;\n  this.policyPort = opts.policyPort || 843;\n  this.rememberUpgrade = opts.rememberUpgrade || false;\n  this.binaryType = null;\n  this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n  this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n  if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n  if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n    this.perMessageDeflate.threshold = 1024;\n  }\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx || null;\n  this.key = opts.key || null;\n  this.passphrase = opts.passphrase || null;\n  this.cert = opts.cert || null;\n  this.ca = opts.ca || null;\n  this.ciphers = opts.ciphers || null;\n  this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n  this.forceNode = !!opts.forceNode;\n\n  // other options for Node.js client\n  var freeGlobal = typeof global === 'object' && global;\n  if (freeGlobal.global === freeGlobal) {\n    if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n      this.extraHeaders = opts.extraHeaders;\n    }\n\n    if (opts.localAddress) {\n      this.localAddress = opts.localAddress;\n    }\n  }\n\n  // set on handshake\n  this.id = null;\n  this.upgrades = null;\n  this.pingInterval = null;\n  this.pingTimeout = null;\n\n  // set on heartbeat\n  this.pingIntervalTimer = null;\n  this.pingTimeoutTimer = null;\n\n  this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n  debug('creating transport \"%s\"', name);\n  var query = clone(this.query);\n\n  // append engine.io protocol identifier\n  query.EIO = parser.protocol;\n\n  // transport name\n  query.transport = name;\n\n  // per-transport options\n  var options = this.transportOptions[name] || {};\n\n  // session id if we already have one\n  if (this.id) query.sid = this.id;\n\n  var transport = new transports[name]({\n    query: query,\n    socket: this,\n    agent: options.agent || this.agent,\n    hostname: options.hostname || this.hostname,\n    port: options.port || this.port,\n    secure: options.secure || this.secure,\n    path: options.path || this.path,\n    forceJSONP: options.forceJSONP || this.forceJSONP,\n    jsonp: options.jsonp || this.jsonp,\n    forceBase64: options.forceBase64 || this.forceBase64,\n    enablesXDR: options.enablesXDR || this.enablesXDR,\n    timestampRequests: options.timestampRequests || this.timestampRequests,\n    timestampParam: options.timestampParam || this.timestampParam,\n    policyPort: options.policyPort || this.policyPort,\n    pfx: options.pfx || this.pfx,\n    key: options.key || this.key,\n    passphrase: options.passphrase || this.passphrase,\n    cert: options.cert || this.cert,\n    ca: options.ca || this.ca,\n    ciphers: options.ciphers || this.ciphers,\n    rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n    perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n    extraHeaders: options.extraHeaders || this.extraHeaders,\n    forceNode: options.forceNode || this.forceNode,\n    localAddress: options.localAddress || this.localAddress,\n    requestTimeout: options.requestTimeout || this.requestTimeout,\n    protocols: options.protocols || void (0)\n  });\n\n  return transport;\n};\n\nfunction clone (obj) {\n  var o = {};\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      o[i] = obj[i];\n    }\n  }\n  return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n  var transport;\n  if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n    transport = 'websocket';\n  } else if (0 === this.transports.length) {\n    // Emit error on next tick so it can be listened to\n    var self = this;\n    setTimeout(function () {\n      self.emit('error', 'No transports available');\n    }, 0);\n    return;\n  } else {\n    transport = this.transports[0];\n  }\n  this.readyState = 'opening';\n\n  // Retry with the next transport if the transport is disabled (jsonp: false)\n  try {\n    transport = this.createTransport(transport);\n  } catch (e) {\n    this.transports.shift();\n    this.open();\n    return;\n  }\n\n  transport.open();\n  this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n  debug('setting transport %s', transport.name);\n  var self = this;\n\n  if (this.transport) {\n    debug('clearing existing transport %s', this.transport.name);\n    this.transport.removeAllListeners();\n  }\n\n  // set up transport\n  this.transport = transport;\n\n  // set up transport listeners\n  transport\n  .on('drain', function () {\n    self.onDrain();\n  })\n  .on('packet', function (packet) {\n    self.onPacket(packet);\n  })\n  .on('error', function (e) {\n    self.onError(e);\n  })\n  .on('close', function () {\n    self.onClose('transport close');\n  });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n  debug('probing transport \"%s\"', name);\n  var transport = this.createTransport(name, { probe: 1 });\n  var failed = false;\n  var self = this;\n\n  Socket.priorWebsocketSuccess = false;\n\n  function onTransportOpen () {\n    if (self.onlyBinaryUpgrades) {\n      var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n      failed = failed || upgradeLosesBinary;\n    }\n    if (failed) return;\n\n    debug('probe transport \"%s\" opened', name);\n    transport.send([{ type: 'ping', data: 'probe' }]);\n    transport.once('packet', function (msg) {\n      if (failed) return;\n      if ('pong' === msg.type && 'probe' === msg.data) {\n        debug('probe transport \"%s\" pong', name);\n        self.upgrading = true;\n        self.emit('upgrading', transport);\n        if (!transport) return;\n        Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n        debug('pausing current transport \"%s\"', self.transport.name);\n        self.transport.pause(function () {\n          if (failed) return;\n          if ('closed' === self.readyState) return;\n          debug('changing transport and sending upgrade packet');\n\n          cleanup();\n\n          self.setTransport(transport);\n          transport.send([{ type: 'upgrade' }]);\n          self.emit('upgrade', transport);\n          transport = null;\n          self.upgrading = false;\n          self.flush();\n        });\n      } else {\n        debug('probe transport \"%s\" failed', name);\n        var err = new Error('probe error');\n        err.transport = transport.name;\n        self.emit('upgradeError', err);\n      }\n    });\n  }\n\n  function freezeTransport () {\n    if (failed) return;\n\n    // Any callback called by transport should be ignored since now\n    failed = true;\n\n    cleanup();\n\n    transport.close();\n    transport = null;\n  }\n\n  // Handle any error that happens while probing\n  function onerror (err) {\n    var error = new Error('probe error: ' + err);\n    error.transport = transport.name;\n\n    freezeTransport();\n\n    debug('probe transport \"%s\" failed because of error: %s', name, err);\n\n    self.emit('upgradeError', error);\n  }\n\n  function onTransportClose () {\n    onerror('transport closed');\n  }\n\n  // When the socket is closed while we're probing\n  function onclose () {\n    onerror('socket closed');\n  }\n\n  // When the socket is upgraded while we're probing\n  function onupgrade (to) {\n    if (transport && to.name !== transport.name) {\n      debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n      freezeTransport();\n    }\n  }\n\n  // Remove all listeners on the transport and on self\n  function cleanup () {\n    transport.removeListener('open', onTransportOpen);\n    transport.removeListener('error', onerror);\n    transport.removeListener('close', onTransportClose);\n    self.removeListener('close', onclose);\n    self.removeListener('upgrading', onupgrade);\n  }\n\n  transport.once('open', onTransportOpen);\n  transport.once('error', onerror);\n  transport.once('close', onTransportClose);\n\n  this.once('close', onclose);\n  this.once('upgrading', onupgrade);\n\n  transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n  debug('socket open');\n  this.readyState = 'open';\n  Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n  this.emit('open');\n  this.flush();\n\n  // we check for `readyState` in case an `open`\n  // listener already closed the socket\n  if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n    debug('starting upgrade probes');\n    for (var i = 0, l = this.upgrades.length; i < l; i++) {\n      this.probe(this.upgrades[i]);\n    }\n  }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n  if ('opening' === this.readyState || 'open' === this.readyState ||\n      'closing' === this.readyState) {\n    debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\n    this.emit('packet', packet);\n\n    // Socket is live - any packet counts\n    this.emit('heartbeat');\n\n    switch (packet.type) {\n      case 'open':\n        this.onHandshake(JSON.parse(packet.data));\n        break;\n\n      case 'pong':\n        this.setPing();\n        this.emit('pong');\n        break;\n\n      case 'error':\n        var err = new Error('server error');\n        err.code = packet.data;\n        this.onError(err);\n        break;\n\n      case 'message':\n        this.emit('data', packet.data);\n        this.emit('message', packet.data);\n        break;\n    }\n  } else {\n    debug('packet received with socket readyState \"%s\"', this.readyState);\n  }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n  this.emit('handshake', data);\n  this.id = data.sid;\n  this.transport.query.sid = data.sid;\n  this.upgrades = this.filterUpgrades(data.upgrades);\n  this.pingInterval = data.pingInterval;\n  this.pingTimeout = data.pingTimeout;\n  this.onOpen();\n  // In case open handler closes socket\n  if ('closed' === this.readyState) return;\n  this.setPing();\n\n  // Prolong liveness of socket on heartbeat\n  this.removeListener('heartbeat', this.onHeartbeat);\n  this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n  clearTimeout(this.pingTimeoutTimer);\n  var self = this;\n  self.pingTimeoutTimer = setTimeout(function () {\n    if ('closed' === self.readyState) return;\n    self.onClose('ping timeout');\n  }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n  var self = this;\n  clearTimeout(self.pingIntervalTimer);\n  self.pingIntervalTimer = setTimeout(function () {\n    debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n    self.ping();\n    self.onHeartbeat(self.pingTimeout);\n  }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n  var self = this;\n  this.sendPacket('ping', function () {\n    self.emit('ping');\n  });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n  this.writeBuffer.splice(0, this.prevBufferLen);\n\n  // setting prevBufferLen = 0 is very important\n  // for example, when upgrading, upgrade packet is sent over,\n  // and a nonzero prevBufferLen could cause problems on `drain`\n  this.prevBufferLen = 0;\n\n  if (0 === this.writeBuffer.length) {\n    this.emit('drain');\n  } else {\n    this.flush();\n  }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n  if ('closed' !== this.readyState && this.transport.writable &&\n    !this.upgrading && this.writeBuffer.length) {\n    debug('flushing %d packets in socket', this.writeBuffer.length);\n    this.transport.send(this.writeBuffer);\n    // keep track of current length of writeBuffer\n    // splice writeBuffer and callbackBuffer on `drain`\n    this.prevBufferLen = this.writeBuffer.length;\n    this.emit('flush');\n  }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n  this.sendPacket('message', msg, options, fn);\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n  if ('function' === typeof data) {\n    fn = data;\n    data = undefined;\n  }\n\n  if ('function' === typeof options) {\n    fn = options;\n    options = null;\n  }\n\n  if ('closing' === this.readyState || 'closed' === this.readyState) {\n    return;\n  }\n\n  options = options || {};\n  options.compress = false !== options.compress;\n\n  var packet = {\n    type: type,\n    data: data,\n    options: options\n  };\n  this.emit('packetCreate', packet);\n  this.writeBuffer.push(packet);\n  if (fn) this.once('flush', fn);\n  this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.readyState = 'closing';\n\n    var self = this;\n\n    if (this.writeBuffer.length) {\n      this.once('drain', function () {\n        if (this.upgrading) {\n          waitForUpgrade();\n        } else {\n          close();\n        }\n      });\n    } else if (this.upgrading) {\n      waitForUpgrade();\n    } else {\n      close();\n    }\n  }\n\n  function close () {\n    self.onClose('forced close');\n    debug('socket closing - telling transport to close');\n    self.transport.close();\n  }\n\n  function cleanupAndClose () {\n    self.removeListener('upgrade', cleanupAndClose);\n    self.removeListener('upgradeError', cleanupAndClose);\n    close();\n  }\n\n  function waitForUpgrade () {\n    // wait for upgrade to finish since we can't send packets while pausing a transport\n    self.once('upgrade', cleanupAndClose);\n    self.once('upgradeError', cleanupAndClose);\n  }\n\n  return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n  debug('socket error %j', err);\n  Socket.priorWebsocketSuccess = false;\n  this.emit('error', err);\n  this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n  if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n    debug('socket close with reason: \"%s\"', reason);\n    var self = this;\n\n    // clear timers\n    clearTimeout(this.pingIntervalTimer);\n    clearTimeout(this.pingTimeoutTimer);\n\n    // stop event from firing again for transport\n    this.transport.removeAllListeners('close');\n\n    // ensure transport won't stay open\n    this.transport.close();\n\n    // ignore further transport communication\n    this.transport.removeAllListeners();\n\n    // set ready state\n    this.readyState = 'closed';\n\n    // clear session id\n    this.id = null;\n\n    // emit close event\n    this.emit('close', reason, desc);\n\n    // clean buffers after, so users can still\n    // grab the buffers on `close` event\n    self.writeBuffer = [];\n    self.prevBufferLen = 0;\n  }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n  var filteredUpgrades = [];\n  for (var i = 0, j = upgrades.length; i < j; i++) {\n    if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n  }\n  return filteredUpgrades;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/socket.js\n// module id = 14\n// module chunks = 0","/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n  var xhr;\n  var xd = false;\n  var xs = false;\n  var jsonp = false !== opts.jsonp;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    xd = opts.hostname !== location.hostname || port !== opts.port;\n    xs = opts.secure !== isSSL;\n  }\n\n  opts.xdomain = xd;\n  opts.xscheme = xs;\n  xhr = new XMLHttpRequest(opts);\n\n  if ('open' in xhr && !opts.forceJSONP) {\n    return new XHR(opts);\n  } else {\n    if (!jsonp) throw new Error('JSONP disabled');\n    return new JSONP(opts);\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/index.js\n// module id = 15\n// module chunks = 0","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\n\nmodule.exports = function (opts) {\n  var xdomain = opts.xdomain;\n\n  // scheme must be same when usign XDomainRequest\n  // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n  var xscheme = opts.xscheme;\n\n  // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n  // https://github.com/Automattic/engine.io-client/pull/217\n  var enablesXDR = opts.enablesXDR;\n\n  // XMLHttpRequest can be disabled on IE\n  try {\n    if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n      return new XMLHttpRequest();\n    }\n  } catch (e) { }\n\n  // Use XDomainRequest for IE8 if enablesXDR is true\n  // because loading bar keeps flashing when using jsonp-polling\n  // https://github.com/yujiosaka/socke.io-ie8-loading-example\n  try {\n    if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n      return new XDomainRequest();\n    }\n  } catch (e) { }\n\n  if (!xdomain) {\n    try {\n      return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n    } catch (e) { }\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/xmlhttprequest.js\n// module id = 16\n// module chunks = 0","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n *   - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n  module.exports = typeof XMLHttpRequest !== 'undefined' &&\n    'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n  // if XMLHttp support is disabled in IE then it will throw\n  // when trying to create\n  module.exports = false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/has-cors/index.js\n// module id = 17\n// module chunks = 0","/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n  Polling.call(this, opts);\n  this.requestTimeout = opts.requestTimeout;\n  this.extraHeaders = opts.extraHeaders;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    this.xd = opts.hostname !== global.location.hostname ||\n      port !== opts.port;\n    this.xs = opts.secure !== isSSL;\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n  opts = opts || {};\n  opts.uri = this.uri();\n  opts.xd = this.xd;\n  opts.xs = this.xs;\n  opts.agent = this.agent || false;\n  opts.supportsBinary = this.supportsBinary;\n  opts.enablesXDR = this.enablesXDR;\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  opts.requestTimeout = this.requestTimeout;\n\n  // other options for Node.js client\n  opts.extraHeaders = this.extraHeaders;\n\n  return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n  var isBinary = typeof data !== 'string' && data !== undefined;\n  var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n  var self = this;\n  req.on('success', fn);\n  req.on('error', function (err) {\n    self.onError('xhr post error', err);\n  });\n  this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n  debug('xhr poll');\n  var req = this.request();\n  var self = this;\n  req.on('data', function (data) {\n    self.onData(data);\n  });\n  req.on('error', function (err) {\n    self.onError('xhr poll error', err);\n  });\n  this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n  this.method = opts.method || 'GET';\n  this.uri = opts.uri;\n  this.xd = !!opts.xd;\n  this.xs = !!opts.xs;\n  this.async = false !== opts.async;\n  this.data = undefined !== opts.data ? opts.data : null;\n  this.agent = opts.agent;\n  this.isBinary = opts.isBinary;\n  this.supportsBinary = opts.supportsBinary;\n  this.enablesXDR = opts.enablesXDR;\n  this.requestTimeout = opts.requestTimeout;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n\n  this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n  var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n\n  var xhr = this.xhr = new XMLHttpRequest(opts);\n  var self = this;\n\n  try {\n    debug('xhr open %s: %s', this.method, this.uri);\n    xhr.open(this.method, this.uri, this.async);\n    try {\n      if (this.extraHeaders) {\n        xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n        for (var i in this.extraHeaders) {\n          if (this.extraHeaders.hasOwnProperty(i)) {\n            xhr.setRequestHeader(i, this.extraHeaders[i]);\n          }\n        }\n      }\n    } catch (e) {}\n\n    if ('POST' === this.method) {\n      try {\n        if (this.isBinary) {\n          xhr.setRequestHeader('Content-type', 'application/octet-stream');\n        } else {\n          xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n        }\n      } catch (e) {}\n    }\n\n    try {\n      xhr.setRequestHeader('Accept', '*/*');\n    } catch (e) {}\n\n    // ie6 check\n    if ('withCredentials' in xhr) {\n      xhr.withCredentials = true;\n    }\n\n    if (this.requestTimeout) {\n      xhr.timeout = this.requestTimeout;\n    }\n\n    if (this.hasXDR()) {\n      xhr.onload = function () {\n        self.onLoad();\n      };\n      xhr.onerror = function () {\n        self.onError(xhr.responseText);\n      };\n    } else {\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState === 2) {\n          try {\n            var contentType = xhr.getResponseHeader('Content-Type');\n            if (self.supportsBinary && contentType === 'application/octet-stream') {\n              xhr.responseType = 'arraybuffer';\n            }\n          } catch (e) {}\n        }\n        if (4 !== xhr.readyState) return;\n        if (200 === xhr.status || 1223 === xhr.status) {\n          self.onLoad();\n        } else {\n          // make sure the `error` event handler that's user-set\n          // does not throw in the same tick and gets caught here\n          setTimeout(function () {\n            self.onError(xhr.status);\n          }, 0);\n        }\n      };\n    }\n\n    debug('xhr data %s', this.data);\n    xhr.send(this.data);\n  } catch (e) {\n    // Need to defer since .create() is called directly fhrom the constructor\n    // and thus the 'error' event can only be only bound *after* this exception\n    // occurs.  Therefore, also, we cannot throw here at all.\n    setTimeout(function () {\n      self.onError(e);\n    }, 0);\n    return;\n  }\n\n  if (global.document) {\n    this.index = Request.requestsCount++;\n    Request.requests[this.index] = this;\n  }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n  this.emit('success');\n  this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n  this.emit('data', data);\n  this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n  this.emit('error', err);\n  this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n  if ('undefined' === typeof this.xhr || null === this.xhr) {\n    return;\n  }\n  // xmlhttprequest\n  if (this.hasXDR()) {\n    this.xhr.onload = this.xhr.onerror = empty;\n  } else {\n    this.xhr.onreadystatechange = empty;\n  }\n\n  if (fromError) {\n    try {\n      this.xhr.abort();\n    } catch (e) {}\n  }\n\n  if (global.document) {\n    delete Request.requests[this.index];\n  }\n\n  this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n  var data;\n  try {\n    var contentType;\n    try {\n      contentType = this.xhr.getResponseHeader('Content-Type');\n    } catch (e) {}\n    if (contentType === 'application/octet-stream') {\n      data = this.xhr.response || this.xhr.responseText;\n    } else {\n      data = this.xhr.responseText;\n    }\n  } catch (e) {\n    this.onError(e);\n  }\n  if (null != data) {\n    this.onData(data);\n  }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n  return 'undefined' !== typeof global.XDomainRequest && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n  this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (global.document) {\n  if (global.attachEvent) {\n    global.attachEvent('onunload', unloadHandler);\n  } else if (global.addEventListener) {\n    global.addEventListener('beforeunload', unloadHandler, false);\n  }\n}\n\nfunction unloadHandler () {\n  for (var i in Request.requests) {\n    if (Request.requests.hasOwnProperty(i)) {\n      Request.requests[i].abort();\n    }\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling-xhr.js\n// module id = 18\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n  var XMLHttpRequest = require('xmlhttprequest-ssl');\n  var xhr = new XMLHttpRequest({ xdomain: false });\n  return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (!hasXHR2 || forceBase64) {\n    this.supportsBinary = false;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n  this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n  var self = this;\n\n  this.readyState = 'pausing';\n\n  function pause () {\n    debug('paused');\n    self.readyState = 'paused';\n    onPause();\n  }\n\n  if (this.polling || !this.writable) {\n    var total = 0;\n\n    if (this.polling) {\n      debug('we are currently polling - waiting to pause');\n      total++;\n      this.once('pollComplete', function () {\n        debug('pre-pause polling complete');\n        --total || pause();\n      });\n    }\n\n    if (!this.writable) {\n      debug('we are currently writing - waiting to pause');\n      total++;\n      this.once('drain', function () {\n        debug('pre-pause writing complete');\n        --total || pause();\n      });\n    }\n  } else {\n    pause();\n  }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n  debug('polling');\n  this.polling = true;\n  this.doPoll();\n  this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n  var self = this;\n  debug('polling got data %s', data);\n  var callback = function (packet, index, total) {\n    // if its the first message we consider the transport open\n    if ('opening' === self.readyState) {\n      self.onOpen();\n    }\n\n    // if its a close packet, we close the ongoing requests\n    if ('close' === packet.type) {\n      self.onClose();\n      return false;\n    }\n\n    // otherwise bypass onData and handle the message\n    self.onPacket(packet);\n  };\n\n  // decode payload\n  parser.decodePayload(data, this.socket.binaryType, callback);\n\n  // if an event did not trigger closing\n  if ('closed' !== this.readyState) {\n    // if we got data we're not polling\n    this.polling = false;\n    this.emit('pollComplete');\n\n    if ('open' === this.readyState) {\n      this.poll();\n    } else {\n      debug('ignoring poll - transport state \"%s\"', this.readyState);\n    }\n  }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n  var self = this;\n\n  function close () {\n    debug('writing close packet');\n    self.write([{ type: 'close' }]);\n  }\n\n  if ('open' === this.readyState) {\n    debug('transport open - closing');\n    close();\n  } else {\n    // in case we're trying to close while\n    // handshaking is in progress (GH-164)\n    debug('transport not open - deferring close');\n    this.once('open', close);\n  }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n  var callbackfn = function () {\n    self.writable = true;\n    self.emit('drain');\n  };\n\n  parser.encodePayload(packets, this.supportsBinary, function (data) {\n    self.doWrite(data, callbackfn);\n  });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'https' : 'http';\n  var port = '';\n\n  // cache busting is forced\n  if (false !== this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  if (!this.supportsBinary && !query.sid) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // avoid port if default for schema\n  if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n     ('http' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling.js\n// module id = 19\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n  this.path = opts.path;\n  this.hostname = opts.hostname;\n  this.port = opts.port;\n  this.secure = opts.secure;\n  this.query = opts.query;\n  this.timestampParam = opts.timestampParam;\n  this.timestampRequests = opts.timestampRequests;\n  this.readyState = '';\n  this.agent = opts.agent || false;\n  this.socket = opts.socket;\n  this.enablesXDR = opts.enablesXDR;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n  this.forceNode = opts.forceNode;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n  this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n  var err = new Error(msg);\n  err.type = 'TransportError';\n  err.description = desc;\n  this.emit('error', err);\n  return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n  if ('closed' === this.readyState || '' === this.readyState) {\n    this.readyState = 'opening';\n    this.doOpen();\n  }\n\n  return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.doClose();\n    this.onClose();\n  }\n\n  return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n  if ('open' === this.readyState) {\n    this.write(packets);\n  } else {\n    throw new Error('Transport not open');\n  }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n  this.readyState = 'open';\n  this.writable = true;\n  this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n  var packet = parser.decodePacket(data, this.socket.binaryType);\n  this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n  this.readyState = 'closed';\n  this.emit('close');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transport.js\n// module id = 20\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (global && global.ArrayBuffer) {\n  base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n    open:     0    // non-ws\n  , close:    1    // non-ws\n  , ping:     2\n  , pong:     3\n  , message:  4\n  , upgrade:  5\n  , noop:     6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n *     <packet type id> [ <data> ]\n *\n * Example:\n *\n *     5hello world\n *     3\n *     4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = false;\n  }\n\n  if (typeof utf8encode === 'function') {\n    callback = utf8encode;\n    utf8encode = null;\n  }\n\n  var data = (packet.data === undefined)\n    ? undefined\n    : packet.data.buffer || packet.data;\n\n  if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n    return encodeArrayBuffer(packet, supportsBinary, callback);\n  } else if (Blob && data instanceof global.Blob) {\n    return encodeBlob(packet, supportsBinary, callback);\n  }\n\n  // might be an object with { base64: true, data: dataAsBase64String }\n  if (data && data.base64) {\n    return encodeBase64Object(packet, callback);\n  }\n\n  // Sending data as a utf-8 string\n  var encoded = packets[packet.type];\n\n  // data fragment is optional\n  if (undefined !== packet.data) {\n    encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n  }\n\n  return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n  // packet data is an object { base64: true, data: dataAsBase64String }\n  var message = 'b' + exports.packets[packet.type] + packet.data.data;\n  return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var data = packet.data;\n  var contentArray = new Uint8Array(data);\n  var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n  resultBuffer[0] = packets[packet.type];\n  for (var i = 0; i < contentArray.length; i++) {\n    resultBuffer[i+1] = contentArray[i];\n  }\n\n  return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var fr = new FileReader();\n  fr.onload = function() {\n    packet.data = fr.result;\n    exports.encodePacket(packet, supportsBinary, true, callback);\n  };\n  return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  if (dontSendBlobs) {\n    return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n  }\n\n  var length = new Uint8Array(1);\n  length[0] = packets[packet.type];\n  var blob = new Blob([length.buffer, packet.data]);\n\n  return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n  var message = 'b' + exports.packets[packet.type];\n  if (Blob && packet.data instanceof global.Blob) {\n    var fr = new FileReader();\n    fr.onload = function() {\n      var b64 = fr.result.split(',')[1];\n      callback(message + b64);\n    };\n    return fr.readAsDataURL(packet.data);\n  }\n\n  var b64data;\n  try {\n    b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n  } catch (e) {\n    // iPhone Safari doesn't let you apply with typed arrays\n    var typed = new Uint8Array(packet.data);\n    var basic = new Array(typed.length);\n    for (var i = 0; i < typed.length; i++) {\n      basic[i] = typed[i];\n    }\n    b64data = String.fromCharCode.apply(null, basic);\n  }\n  message += global.btoa(b64data);\n  return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n  if (data === undefined) {\n    return err;\n  }\n  // String data\n  if (typeof data === 'string') {\n    if (data.charAt(0) === 'b') {\n      return exports.decodeBase64Packet(data.substr(1), binaryType);\n    }\n\n    if (utf8decode) {\n      data = tryDecode(data);\n      if (data === false) {\n        return err;\n      }\n    }\n    var type = data.charAt(0);\n\n    if (Number(type) != type || !packetslist[type]) {\n      return err;\n    }\n\n    if (data.length > 1) {\n      return { type: packetslist[type], data: data.substring(1) };\n    } else {\n      return { type: packetslist[type] };\n    }\n  }\n\n  var asArray = new Uint8Array(data);\n  var type = asArray[0];\n  var rest = sliceBuffer(data, 1);\n  if (Blob && binaryType === 'blob') {\n    rest = new Blob([rest]);\n  }\n  return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n  try {\n    data = utf8.decode(data, { strict: false });\n  } catch (e) {\n    return false;\n  }\n  return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n  var type = packetslist[msg.charAt(0)];\n  if (!base64encoder) {\n    return { type: type, data: { base64: true, data: msg.substr(1) } };\n  }\n\n  var data = base64encoder.decode(msg.substr(1));\n\n  if (binaryType === 'blob' && Blob) {\n    data = new Blob([data]);\n  }\n\n  return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n *     <length>:data\n *\n * Example:\n *\n *     11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = null;\n  }\n\n  var isBinary = hasBinary(packets);\n\n  if (supportsBinary && isBinary) {\n    if (Blob && !dontSendBlobs) {\n      return exports.encodePayloadAsBlob(packets, callback);\n    }\n\n    return exports.encodePayloadAsArrayBuffer(packets, callback);\n  }\n\n  if (!packets.length) {\n    return callback('0:');\n  }\n\n  function setLengthHeader(message) {\n    return message.length + ':' + message;\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n      doneCallback(null, setLengthHeader(message));\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(results.join(''));\n  });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n  var result = new Array(ary.length);\n  var next = after(ary.length, done);\n\n  var eachWithIndex = function(i, el, cb) {\n    each(el, function(error, msg) {\n      result[i] = msg;\n      cb(error, result);\n    });\n  };\n\n  for (var i = 0; i < ary.length; i++) {\n    eachWithIndex(i, ary[i], next);\n  }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n  if (typeof data !== 'string') {\n    return exports.decodePayloadAsBinary(data, binaryType, callback);\n  }\n\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var packet;\n  if (data === '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n  var length = '', n, msg;\n\n  for (var i = 0, l = data.length; i < l; i++) {\n    var chr = data.charAt(i);\n\n    if (chr !== ':') {\n      length += chr;\n      continue;\n    }\n\n    if (length === '' || (length != (n = Number(length)))) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    msg = data.substr(i + 1, n);\n\n    if (length != msg.length) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    if (msg.length) {\n      packet = exports.decodePacket(msg, binaryType, false);\n\n      if (err.type === packet.type && err.data === packet.data) {\n        // parser error in individual packet - ignoring payload\n        return callback(err, 0, 1);\n      }\n\n      var ret = callback(packet, i + n, l);\n      if (false === ret) return;\n    }\n\n    // advance cursor\n    i += n;\n    length = '';\n  }\n\n  if (length !== '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n * 255><data>\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n  if (!packets.length) {\n    return callback(new ArrayBuffer(0));\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(data) {\n      return doneCallback(null, data);\n    });\n  }\n\n  map(packets, encodeOne, function(err, encodedPackets) {\n    var totalLength = encodedPackets.reduce(function(acc, p) {\n      var len;\n      if (typeof p === 'string'){\n        len = p.length;\n      } else {\n        len = p.byteLength;\n      }\n      return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n    }, 0);\n\n    var resultArray = new Uint8Array(totalLength);\n\n    var bufferIndex = 0;\n    encodedPackets.forEach(function(p) {\n      var isString = typeof p === 'string';\n      var ab = p;\n      if (isString) {\n        var view = new Uint8Array(p.length);\n        for (var i = 0; i < p.length; i++) {\n          view[i] = p.charCodeAt(i);\n        }\n        ab = view.buffer;\n      }\n\n      if (isString) { // not true binary\n        resultArray[bufferIndex++] = 0;\n      } else { // true binary\n        resultArray[bufferIndex++] = 1;\n      }\n\n      var lenStr = ab.byteLength.toString();\n      for (var i = 0; i < lenStr.length; i++) {\n        resultArray[bufferIndex++] = parseInt(lenStr[i]);\n      }\n      resultArray[bufferIndex++] = 255;\n\n      var view = new Uint8Array(ab);\n      for (var i = 0; i < view.length; i++) {\n        resultArray[bufferIndex++] = view[i];\n      }\n    });\n\n    return callback(resultArray.buffer);\n  });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(encoded) {\n      var binaryIdentifier = new Uint8Array(1);\n      binaryIdentifier[0] = 1;\n      if (typeof encoded === 'string') {\n        var view = new Uint8Array(encoded.length);\n        for (var i = 0; i < encoded.length; i++) {\n          view[i] = encoded.charCodeAt(i);\n        }\n        encoded = view.buffer;\n        binaryIdentifier[0] = 0;\n      }\n\n      var len = (encoded instanceof ArrayBuffer)\n        ? encoded.byteLength\n        : encoded.size;\n\n      var lenStr = len.toString();\n      var lengthAry = new Uint8Array(lenStr.length + 1);\n      for (var i = 0; i < lenStr.length; i++) {\n        lengthAry[i] = parseInt(lenStr[i]);\n      }\n      lengthAry[lenStr.length] = 255;\n\n      if (Blob) {\n        var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n        doneCallback(null, blob);\n      }\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(new Blob(results));\n  });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var bufferTail = data;\n  var buffers = [];\n\n  while (bufferTail.byteLength > 0) {\n    var tailArray = new Uint8Array(bufferTail);\n    var isString = tailArray[0] === 0;\n    var msgLength = '';\n\n    for (var i = 1; ; i++) {\n      if (tailArray[i] === 255) break;\n\n      // 310 = char length of Number.MAX_VALUE\n      if (msgLength.length > 310) {\n        return callback(err, 0, 1);\n      }\n\n      msgLength += tailArray[i];\n    }\n\n    bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n    msgLength = parseInt(msgLength);\n\n    var msg = sliceBuffer(bufferTail, 0, msgLength);\n    if (isString) {\n      try {\n        msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n      } catch (e) {\n        // iPhone Safari doesn't let you apply to typed arrays\n        var typed = new Uint8Array(msg);\n        msg = '';\n        for (var i = 0; i < typed.length; i++) {\n          msg += String.fromCharCode(typed[i]);\n        }\n      }\n    }\n\n    buffers.push(msg);\n    bufferTail = sliceBuffer(bufferTail, msgLength);\n  }\n\n  var total = buffers.length;\n  buffers.forEach(function(buffer, i) {\n    callback(exports.decodePacket(buffer, binaryType, true), i, total);\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/browser.js\n// module id = 21\n// module chunks = 0","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n  var arr = [];\n  var has = Object.prototype.hasOwnProperty;\n\n  for (var i in obj) {\n    if (has.call(obj, i)) {\n      arr.push(i);\n    }\n  }\n  return arr;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/keys.js\n// module id = 22\n// module chunks = 0","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n  if (!obj || typeof obj !== 'object') {\n    return false;\n  }\n\n  if (isArray(obj)) {\n    for (var i = 0, l = obj.length; i < l; i++) {\n      if (hasBinary(obj[i])) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  if ((typeof global.Buffer === 'function' && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) ||\n     (typeof global.ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n     (withNativeBlob && obj instanceof Blob) ||\n     (withNativeFile && obj instanceof File)\n    ) {\n    return true;\n  }\n\n  // see: https://github.com/Automattic/has-binary/pull/4\n  if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n    return hasBinary(obj.toJSON(), true);\n  }\n\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/has-binary2/index.js\n// module id = 23\n// module chunks = 0","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n  var bytes = arraybuffer.byteLength;\n  start = start || 0;\n  end = end || bytes;\n\n  if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n  if (start < 0) { start += bytes; }\n  if (end < 0) { end += bytes; }\n  if (end > bytes) { end = bytes; }\n\n  if (start >= bytes || start >= end || bytes === 0) {\n    return new ArrayBuffer(0);\n  }\n\n  var abv = new Uint8Array(arraybuffer);\n  var result = new Uint8Array(end - start);\n  for (var i = start, ii = 0; i < end; i++, ii++) {\n    result[ii] = abv[i];\n  }\n  return result.buffer;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/arraybuffer.slice/index.js\n// module id = 24\n// module chunks = 0","module.exports = after\n\nfunction after(count, callback, err_cb) {\n    var bail = false\n    err_cb = err_cb || noop\n    proxy.count = count\n\n    return (count === 0) ? callback() : proxy\n\n    function proxy(err, result) {\n        if (proxy.count <= 0) {\n            throw new Error('after called too many times')\n        }\n        --proxy.count\n\n        // after first error, rest are passed to err_cb\n        if (err) {\n            bail = true\n            callback(err)\n            // future error callbacks will go to error handler\n            callback = err_cb\n        } else if (proxy.count === 0 && !bail) {\n            callback(null, result)\n        }\n    }\n}\n\nfunction noop() {}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/after/index.js\n// module id = 25\n// module chunks = 0","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint, strict) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tif (strict) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t\t' is not a scalar value'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint, strict) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\t\tcodePoint = 0xFFFD;\n\t\t\t}\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol(strict) {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.1.2',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/utf8.js\n// module id = 26\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 27\n// module chunks = 0","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n  \"use strict\";\n\n  var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n  // Use a lookup table to find the index.\n  var lookup = new Uint8Array(256);\n  for (var i = 0; i < chars.length; i++) {\n    lookup[chars.charCodeAt(i)] = i;\n  }\n\n  exports.encode = function(arraybuffer) {\n    var bytes = new Uint8Array(arraybuffer),\n    i, len = bytes.length, base64 = \"\";\n\n    for (i = 0; i < len; i+=3) {\n      base64 += chars[bytes[i] >> 2];\n      base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n      base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n      base64 += chars[bytes[i + 2] & 63];\n    }\n\n    if ((len % 3) === 2) {\n      base64 = base64.substring(0, base64.length - 1) + \"=\";\n    } else if (len % 3 === 1) {\n      base64 = base64.substring(0, base64.length - 2) + \"==\";\n    }\n\n    return base64;\n  };\n\n  exports.decode =  function(base64) {\n    var bufferLength = base64.length * 0.75,\n    len = base64.length, i, p = 0,\n    encoded1, encoded2, encoded3, encoded4;\n\n    if (base64[base64.length - 1] === \"=\") {\n      bufferLength--;\n      if (base64[base64.length - 2] === \"=\") {\n        bufferLength--;\n      }\n    }\n\n    var arraybuffer = new ArrayBuffer(bufferLength),\n    bytes = new Uint8Array(arraybuffer);\n\n    for (i = 0; i < len; i+=4) {\n      encoded1 = lookup[base64.charCodeAt(i)];\n      encoded2 = lookup[base64.charCodeAt(i+1)];\n      encoded3 = lookup[base64.charCodeAt(i+2)];\n      encoded4 = lookup[base64.charCodeAt(i+3)];\n\n      bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n      bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n      bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n\n    return arraybuffer;\n  };\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/base64-arraybuffer/lib/base64-arraybuffer.js\n// module id = 28\n// module chunks = 0","/**\n * Create a blob builder even when vendor prefixes exist\n */\n\nvar BlobBuilder = global.BlobBuilder\n  || global.WebKitBlobBuilder\n  || global.MSBlobBuilder\n  || global.MozBlobBuilder;\n\n/**\n * Check if Blob constructor is supported\n */\n\nvar blobSupported = (function() {\n  try {\n    var a = new Blob(['hi']);\n    return a.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if Blob constructor supports ArrayBufferViews\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\n */\n\nvar blobSupportsArrayBufferView = blobSupported && (function() {\n  try {\n    var b = new Blob([new Uint8Array([1,2])]);\n    return b.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if BlobBuilder is supported\n */\n\nvar blobBuilderSupported = BlobBuilder\n  && BlobBuilder.prototype.append\n  && BlobBuilder.prototype.getBlob;\n\n/**\n * Helper function that maps ArrayBufferViews to ArrayBuffers\n * Used by BlobBuilder constructor and old browsers that didn't\n * support it in the Blob constructor.\n */\n\nfunction mapArrayBufferViews(ary) {\n  for (var i = 0; i < ary.length; i++) {\n    var chunk = ary[i];\n    if (chunk.buffer instanceof ArrayBuffer) {\n      var buf = chunk.buffer;\n\n      // if this is a subarray, make a copy so we only\n      // include the subarray region from the underlying buffer\n      if (chunk.byteLength !== buf.byteLength) {\n        var copy = new Uint8Array(chunk.byteLength);\n        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n        buf = copy.buffer;\n      }\n\n      ary[i] = buf;\n    }\n  }\n}\n\nfunction BlobBuilderConstructor(ary, options) {\n  options = options || {};\n\n  var bb = new BlobBuilder();\n  mapArrayBufferViews(ary);\n\n  for (var i = 0; i < ary.length; i++) {\n    bb.append(ary[i]);\n  }\n\n  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n};\n\nfunction BlobConstructor(ary, options) {\n  mapArrayBufferViews(ary);\n  return new Blob(ary, options || {});\n};\n\nmodule.exports = (function() {\n  if (blobSupported) {\n    return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n  } else if (blobBuilderSupported) {\n    return BlobBuilderConstructor;\n  } else {\n    return undefined;\n  }\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/blob/index.js\n// module id = 29\n// module chunks = 0","/**\r\n * Compiles a querystring\r\n * Returns string representation of the object\r\n *\r\n * @param {Object}\r\n * @api private\r\n */\r\n\r\nexports.encode = function (obj) {\r\n  var str = '';\r\n\r\n  for (var i in obj) {\r\n    if (obj.hasOwnProperty(i)) {\r\n      if (str.length) str += '&';\r\n      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n    }\r\n  }\r\n\r\n  return str;\r\n};\r\n\r\n/**\r\n * Parses a simple querystring into an object\r\n *\r\n * @param {String} qs\r\n * @api private\r\n */\r\n\r\nexports.decode = function(qs){\r\n  var qry = {};\r\n  var pairs = qs.split('&');\r\n  for (var i = 0, l = pairs.length; i < l; i++) {\r\n    var pair = pairs[i].split('=');\r\n    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n  }\r\n  return qry;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/parseqs/index.js\n// module id = 30\n// module chunks = 0","\nmodule.exports = function(a, b){\n  var fn = function(){};\n  fn.prototype = b.prototype;\n  a.prototype = new fn;\n  a.prototype.constructor = a;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-inherit/index.js\n// module id = 31\n// module chunks = 0","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n  , length = 64\n  , map = {}\n  , seed = 0\n  , i = 0\n  , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n  var encoded = '';\n\n  do {\n    encoded = alphabet[num % length] + encoded;\n    num = Math.floor(num / length);\n  } while (num > 0);\n\n  return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n  var decoded = 0;\n\n  for (i = 0; i < str.length; i++) {\n    decoded = decoded * length + map[str.charAt(i)];\n  }\n\n  return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n  var now = encode(+new Date());\n\n  if (now !== prev) return seed = 0, prev = now;\n  return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/yeast/index.js\n// module id = 32\n// module chunks = 0","\n/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n  Polling.call(this, opts);\n\n  this.query = this.query || {};\n\n  // define global callbacks array if not present\n  // we do this here (lazily) to avoid unneeded global pollution\n  if (!callbacks) {\n    // we need to consider multiple engines in the same page\n    if (!global.___eio) global.___eio = [];\n    callbacks = global.___eio;\n  }\n\n  // callback identifier\n  this.index = callbacks.length;\n\n  // add callback to jsonp global\n  var self = this;\n  callbacks.push(function (msg) {\n    self.onData(msg);\n  });\n\n  // append to query string\n  this.query.j = this.index;\n\n  // prevent spurious errors from being emitted when the window is unloaded\n  if (global.document && global.addEventListener) {\n    global.addEventListener('beforeunload', function () {\n      if (self.script) self.script.onerror = empty;\n    }, false);\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  if (this.form) {\n    this.form.parentNode.removeChild(this.form);\n    this.form = null;\n    this.iframe = null;\n  }\n\n  Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n  var self = this;\n  var script = document.createElement('script');\n\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  script.async = true;\n  script.src = this.uri();\n  script.onerror = function (e) {\n    self.onError('jsonp poll error', e);\n  };\n\n  var insertAt = document.getElementsByTagName('script')[0];\n  if (insertAt) {\n    insertAt.parentNode.insertBefore(script, insertAt);\n  } else {\n    (document.head || document.body).appendChild(script);\n  }\n  this.script = script;\n\n  var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n  if (isUAgecko) {\n    setTimeout(function () {\n      var iframe = document.createElement('iframe');\n      document.body.appendChild(iframe);\n      document.body.removeChild(iframe);\n    }, 100);\n  }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n  var self = this;\n\n  if (!this.form) {\n    var form = document.createElement('form');\n    var area = document.createElement('textarea');\n    var id = this.iframeId = 'eio_iframe_' + this.index;\n    var iframe;\n\n    form.className = 'socketio';\n    form.style.position = 'absolute';\n    form.style.top = '-1000px';\n    form.style.left = '-1000px';\n    form.target = id;\n    form.method = 'POST';\n    form.setAttribute('accept-charset', 'utf-8');\n    area.name = 'd';\n    form.appendChild(area);\n    document.body.appendChild(form);\n\n    this.form = form;\n    this.area = area;\n  }\n\n  this.form.action = this.uri();\n\n  function complete () {\n    initIframe();\n    fn();\n  }\n\n  function initIframe () {\n    if (self.iframe) {\n      try {\n        self.form.removeChild(self.iframe);\n      } catch (e) {\n        self.onError('jsonp polling iframe removal error', e);\n      }\n    }\n\n    try {\n      // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n      var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n      iframe = document.createElement(html);\n    } catch (e) {\n      iframe = document.createElement('iframe');\n      iframe.name = self.iframeId;\n      iframe.src = 'javascript:0';\n    }\n\n    iframe.id = self.iframeId;\n\n    self.form.appendChild(iframe);\n    self.iframe = iframe;\n  }\n\n  initIframe();\n\n  // escape \\n to prevent it from being converted into \\r\\n by some UAs\n  // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n  data = data.replace(rEscapedNewline, '\\\\\\n');\n  this.area.value = data.replace(rNewline, '\\\\n');\n\n  try {\n    this.form.submit();\n  } catch (e) {}\n\n  if (this.iframe.attachEvent) {\n    this.iframe.onreadystatechange = function () {\n      if (self.iframe.readyState === 'complete') {\n        complete();\n      }\n    };\n  } else {\n    this.iframe.onload = complete;\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling-jsonp.js\n// module id = 33\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parser = require('engine.io-parser');\nvar parseqs = require('parseqs');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:websocket');\nvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\nvar NodeWebSocket;\nif (typeof window === 'undefined') {\n  try {\n    NodeWebSocket = require('ws');\n  } catch (e) { }\n}\n\n/**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */\n\nvar WebSocket = BrowserWebSocket;\nif (!WebSocket && typeof window === 'undefined') {\n  WebSocket = NodeWebSocket;\n}\n\n/**\n * Module exports.\n */\n\nmodule.exports = WS;\n\n/**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n\nfunction WS (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (forceBase64) {\n    this.supportsBinary = false;\n  }\n  this.perMessageDeflate = opts.perMessageDeflate;\n  this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n  this.protocols = opts.protocols;\n  if (!this.usingBrowserWebSocket) {\n    WebSocket = NodeWebSocket;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(WS, Transport);\n\n/**\n * Transport name.\n *\n * @api public\n */\n\nWS.prototype.name = 'websocket';\n\n/*\n * WebSockets support binary\n */\n\nWS.prototype.supportsBinary = true;\n\n/**\n * Opens socket.\n *\n * @api private\n */\n\nWS.prototype.doOpen = function () {\n  if (!this.check()) {\n    // let probe timeout\n    return;\n  }\n\n  var uri = this.uri();\n  var protocols = this.protocols;\n  var opts = {\n    agent: this.agent,\n    perMessageDeflate: this.perMessageDeflate\n  };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  if (this.extraHeaders) {\n    opts.headers = this.extraHeaders;\n  }\n  if (this.localAddress) {\n    opts.localAddress = this.localAddress;\n  }\n\n  try {\n    this.ws = this.usingBrowserWebSocket ? (protocols ? new WebSocket(uri, protocols) : new WebSocket(uri)) : new WebSocket(uri, protocols, opts);\n  } catch (err) {\n    return this.emit('error', err);\n  }\n\n  if (this.ws.binaryType === undefined) {\n    this.supportsBinary = false;\n  }\n\n  if (this.ws.supports && this.ws.supports.binary) {\n    this.supportsBinary = true;\n    this.ws.binaryType = 'nodebuffer';\n  } else {\n    this.ws.binaryType = 'arraybuffer';\n  }\n\n  this.addEventListeners();\n};\n\n/**\n * Adds event listeners to the socket\n *\n * @api private\n */\n\nWS.prototype.addEventListeners = function () {\n  var self = this;\n\n  this.ws.onopen = function () {\n    self.onOpen();\n  };\n  this.ws.onclose = function () {\n    self.onClose();\n  };\n  this.ws.onmessage = function (ev) {\n    self.onData(ev.data);\n  };\n  this.ws.onerror = function (e) {\n    self.onError('websocket error', e);\n  };\n};\n\n/**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n\nWS.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n\n  // encodePacket efficient as it uses WS framing\n  // no need for encodePayload\n  var total = packets.length;\n  for (var i = 0, l = total; i < l; i++) {\n    (function (packet) {\n      parser.encodePacket(packet, self.supportsBinary, function (data) {\n        if (!self.usingBrowserWebSocket) {\n          // always create a new object (GH-437)\n          var opts = {};\n          if (packet.options) {\n            opts.compress = packet.options.compress;\n          }\n\n          if (self.perMessageDeflate) {\n            var len = 'string' === typeof data ? global.Buffer.byteLength(data) : data.length;\n            if (len < self.perMessageDeflate.threshold) {\n              opts.compress = false;\n            }\n          }\n        }\n\n        // Sometimes the websocket has already been closed but the browser didn't\n        // have a chance of informing us about it yet, in that case send will\n        // throw an error\n        try {\n          if (self.usingBrowserWebSocket) {\n            // TypeError is thrown when passing the second argument on Safari\n            self.ws.send(data);\n          } else {\n            self.ws.send(data, opts);\n          }\n        } catch (e) {\n          debug('websocket closed before onclose event');\n        }\n\n        --total || done();\n      });\n    })(packets[i]);\n  }\n\n  function done () {\n    self.emit('flush');\n\n    // fake drain\n    // defer to next tick to allow Socket to clear writeBuffer\n    setTimeout(function () {\n      self.writable = true;\n      self.emit('drain');\n    }, 0);\n  }\n};\n\n/**\n * Called upon close\n *\n * @api private\n */\n\nWS.prototype.onClose = function () {\n  Transport.prototype.onClose.call(this);\n};\n\n/**\n * Closes socket.\n *\n * @api private\n */\n\nWS.prototype.doClose = function () {\n  if (typeof this.ws !== 'undefined') {\n    this.ws.close();\n  }\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nWS.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'wss' : 'ws';\n  var port = '';\n\n  // avoid port if default for schema\n  if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n    ('ws' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // append timestamp to URI\n  if (this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  // communicate binary support capabilities\n  if (!this.supportsBinary) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n/**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n\nWS.prototype.check = function () {\n  return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/websocket.js\n// module id = 34\n// module chunks = 0","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n  if (indexOf) return arr.indexOf(obj);\n  for (var i = 0; i < arr.length; ++i) {\n    if (arr[i] === obj) return i;\n  }\n  return -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/indexof/index.js\n// module id = 36\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\nvar hasBin = require('has-binary2');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n  connect: 1,\n  connect_error: 1,\n  connect_timeout: 1,\n  connecting: 1,\n  disconnect: 1,\n  error: 1,\n  reconnect: 1,\n  reconnect_attempt: 1,\n  reconnect_failed: 1,\n  reconnect_error: 1,\n  reconnecting: 1,\n  ping: 1,\n  pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n  this.io = io;\n  this.nsp = nsp;\n  this.json = this; // compat\n  this.ids = 0;\n  this.acks = {};\n  this.receiveBuffer = [];\n  this.sendBuffer = [];\n  this.connected = false;\n  this.disconnected = true;\n  this.flags = {};\n  if (opts && opts.query) {\n    this.query = opts.query;\n  }\n  if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n  if (this.subs) return;\n\n  var io = this.io;\n  this.subs = [\n    on(io, 'open', bind(this, 'onopen')),\n    on(io, 'packet', bind(this, 'onpacket')),\n    on(io, 'close', bind(this, 'onclose'))\n  ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n  if (this.connected) return this;\n\n  this.subEvents();\n  this.io.open(); // ensure open\n  if ('open' === this.io.readyState) this.onopen();\n  this.emit('connecting');\n  return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n  var args = toArray(arguments);\n  args.unshift('message');\n  this.emit.apply(this, args);\n  return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n  if (events.hasOwnProperty(ev)) {\n    emit.apply(this, arguments);\n    return this;\n  }\n\n  var args = toArray(arguments);\n  var packet = {\n    type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n    data: args\n  };\n\n  packet.options = {};\n  packet.options.compress = !this.flags || false !== this.flags.compress;\n\n  // event ack callback\n  if ('function' === typeof args[args.length - 1]) {\n    debug('emitting packet with ack id %d', this.ids);\n    this.acks[this.ids] = args.pop();\n    packet.id = this.ids++;\n  }\n\n  if (this.connected) {\n    this.packet(packet);\n  } else {\n    this.sendBuffer.push(packet);\n  }\n\n  this.flags = {};\n\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n  packet.nsp = this.nsp;\n  this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n  debug('transport is open - connecting');\n\n  // write connect packet if necessary\n  if ('/' !== this.nsp) {\n    if (this.query) {\n      var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n      debug('sending connect packet with query %s', query);\n      this.packet({type: parser.CONNECT, query: query});\n    } else {\n      this.packet({type: parser.CONNECT});\n    }\n  }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n  debug('close (%s)', reason);\n  this.connected = false;\n  this.disconnected = true;\n  delete this.id;\n  this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n  var sameNamespace = packet.nsp === this.nsp;\n  var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\n  if (!sameNamespace && !rootNamespaceError) return;\n\n  switch (packet.type) {\n    case parser.CONNECT:\n      this.onconnect();\n      break;\n\n    case parser.EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.BINARY_EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.ACK:\n      this.onack(packet);\n      break;\n\n    case parser.BINARY_ACK:\n      this.onack(packet);\n      break;\n\n    case parser.DISCONNECT:\n      this.ondisconnect();\n      break;\n\n    case parser.ERROR:\n      this.emit('error', packet.data);\n      break;\n  }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n  var args = packet.data || [];\n  debug('emitting event %j', args);\n\n  if (null != packet.id) {\n    debug('attaching ack callback to event');\n    args.push(this.ack(packet.id));\n  }\n\n  if (this.connected) {\n    emit.apply(this, args);\n  } else {\n    this.receiveBuffer.push(args);\n  }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n  var self = this;\n  var sent = false;\n  return function () {\n    // prevent double callbacks\n    if (sent) return;\n    sent = true;\n    var args = toArray(arguments);\n    debug('sending ack %j', args);\n\n    self.packet({\n      type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n      id: id,\n      data: args\n    });\n  };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n  var ack = this.acks[packet.id];\n  if ('function' === typeof ack) {\n    debug('calling ack %s with %j', packet.id, packet.data);\n    ack.apply(this, packet.data);\n    delete this.acks[packet.id];\n  } else {\n    debug('bad ack %s', packet.id);\n  }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n  this.connected = true;\n  this.disconnected = false;\n  this.emit('connect');\n  this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n  var i;\n  for (i = 0; i < this.receiveBuffer.length; i++) {\n    emit.apply(this, this.receiveBuffer[i]);\n  }\n  this.receiveBuffer = [];\n\n  for (i = 0; i < this.sendBuffer.length; i++) {\n    this.packet(this.sendBuffer[i]);\n  }\n  this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n  debug('server disconnect (%s)', this.nsp);\n  this.destroy();\n  this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n  if (this.subs) {\n    // clean subscriptions to avoid reconnections\n    for (var i = 0; i < this.subs.length; i++) {\n      this.subs[i].destroy();\n    }\n    this.subs = null;\n  }\n\n  this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n  if (this.connected) {\n    debug('performing disconnect (%s)', this.nsp);\n    this.packet({ type: parser.DISCONNECT });\n  }\n\n  // remove socket from pool\n  this.destroy();\n\n  if (this.connected) {\n    // fire events\n    this.onclose('io client disconnect');\n  }\n  return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n  this.flags.compress = compress;\n  return this;\n};\n\n/**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.binary = function (binary) {\n  this.flags.binary = binary;\n  return this;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/socket.js","module.exports = toArray\n\nfunction toArray(list, index) {\n    var array = []\n\n    index = index || 0\n\n    for (var i = index || 0; i < list.length; i++) {\n        array[i - index] = list[i]\n    }\n\n    return array\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/to-array/index.js\n// module id = 38\n// module chunks = 0","\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n  obj.on(ev, fn);\n  return {\n    destroy: function () {\n      obj.removeListener(ev, fn);\n    }\n  };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/on.js","/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(obj, fn){\n  if ('string' == typeof fn) fn = obj[fn];\n  if ('function' != typeof fn) throw new Error('bind() requires a function');\n  var args = slice.call(arguments, 2);\n  return function(){\n    return fn.apply(obj, args.concat(slice.call(arguments)));\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-bind/index.js\n// module id = 40\n// module chunks = 0","\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n  opts = opts || {};\n  this.ms = opts.min || 100;\n  this.max = opts.max || 10000;\n  this.factor = opts.factor || 2;\n  this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n  this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n  var ms = this.ms * Math.pow(this.factor, this.attempts++);\n  if (this.jitter) {\n    var rand =  Math.random();\n    var deviation = Math.floor(rand * this.jitter * ms);\n    ms = (Math.floor(rand * 10) & 1) == 0  ? ms - deviation : ms + deviation;\n  }\n  return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n  this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n  this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n  this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n  this.jitter = jitter;\n};\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/backo2/index.js\n// module id = 41\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.slim.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///socket.io.slim.js","webpack:///webpack/bootstrap 82d2f1547c0a2d88046d","webpack:///./lib/index.js","webpack:///./lib/url.js","webpack:///./~/parseuri/index.js","webpack:///./support/noop.js","webpack:///./~/socket.io-parser/index.js","webpack:///./~/component-emitter/index.js","webpack:///./~/socket.io-parser/binary.js","webpack:///./~/isarray/index.js","webpack:///./~/socket.io-parser/is-buffer.js","webpack:///./lib/manager.js","webpack:///./~/engine.io-client/lib/index.js","webpack:///./~/engine.io-client/lib/socket.js","webpack:///./~/engine.io-client/lib/transports/index.js","webpack:///./~/engine.io-client/lib/xmlhttprequest.js","webpack:///./~/has-cors/index.js","webpack:///./~/engine.io-client/lib/transports/polling-xhr.js","webpack:///./~/engine.io-client/lib/transports/polling.js","webpack:///./~/engine.io-client/lib/transport.js","webpack:///./~/engine.io-parser/lib/browser.js","webpack:///./~/engine.io-parser/lib/keys.js","webpack:///./~/has-binary2/index.js","webpack:///./~/arraybuffer.slice/index.js","webpack:///./~/after/index.js","webpack:///./~/engine.io-parser/lib/utf8.js","webpack:///(webpack)/buildin/module.js","webpack:///./~/base64-arraybuffer/lib/base64-arraybuffer.js","webpack:///./~/blob/index.js","webpack:///./~/parseqs/index.js","webpack:///./~/component-inherit/index.js","webpack:///./~/yeast/index.js","webpack:///./~/engine.io-client/lib/transports/polling-jsonp.js","webpack:///./~/engine.io-client/lib/transports/websocket.js","webpack:///./~/indexof/index.js","webpack:///./lib/socket.js","webpack:///./~/to-array/index.js","webpack:///./lib/on.js","webpack:///./~/component-bind/index.js","webpack:///./~/backo2/index.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","lookup","uri","opts","_typeof","undefined","io","parsed","url","source","path","sameNamespace","cache","nsps","newConnection","forceNew","multiplex","Manager","query","socket","Symbol","iterator","obj","constructor","prototype","parser","managers","protocol","connect","Socket","global","loc","location","host","charAt","test","parseuri","port","ipv6","indexOf","href","re","parts","str","src","b","e","substring","replace","length","exec","i","authority","ipv6uri","Encoder","encodeAsString","type","BINARY_EVENT","BINARY_ACK","attachments","nsp","data","payload","tryStringify","ERROR_PACKET","JSON","stringify","encodeAsBinary","callback","writeEncoding","bloblessData","deconstruction","binary","deconstructPacket","pack","packet","buffers","unshift","removeBlobs","Decoder","reconstructor","decodeString","Number","types","error","buf","Error","next","tryParse","substr","isPayloadValid","ERROR","isArray","parse","BinaryReconstructor","reconPack","msg","Emitter","isBuf","CONNECT","DISCONNECT","EVENT","ACK","encode","encoding","add","emit","base64","takeBinaryData","destroy","finishedReconstruction","binData","push","reconstructPacket","mixin","key","on","addEventListener","event","fn","_callbacks","once","off","apply","arguments","removeListener","removeAllListeners","removeEventListener","callbacks","cb","splice","args","slice","len","listeners","hasListeners","_deconstructPacket","placeholder","_placeholder","num","newData","Array","Date","_reconstructPacket","toString","Object","withNativeBlob","Blob","withNativeFile","File","packetData","_removeBlobs","curKey","containingObject","pendingBlobs","fileReader","FileReader","onload","result","readAsArrayBuffer","arr","withNativeBuffer","Buffer","isBuffer","withNativeArrayBuffer","ArrayBuffer","isView","buffer","subs","reconnection","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","Backoff","min","max","jitter","timeout","readyState","connecting","lastPing","packetBuffer","_parser","encoder","decoder","autoConnect","open","eio","bind","has","hasOwnProperty","emitAll","updateSocketIds","generateId","engine","v","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","maybeReconnectOnOpen","reconnecting","attempts","reconnect","self","skipReconnect","openSub","onopen","errorSub","cleanup","err","timer","setTimeout","close","clearTimeout","onping","onpong","ondata","ondecoded","onerror","onConnecting","index","encodedPackets","write","options","processPacketQueue","shift","subsLength","sub","disconnect","reset","onclose","reason","delay","duration","onreconnect","attempt","hostname","secure","agent","parseqs","decode","upgrade","forceJSONP","jsonp","forceBase64","enablesXDR","timestampParam","timestampRequests","transports","transportOptions","writeBuffer","prevBufferLen","policyPort","rememberUpgrade","binaryType","onlyBinaryUpgrades","perMessageDeflate","threshold","pfx","passphrase","cert","ca","ciphers","rejectUnauthorized","forceNode","freeGlobal","extraHeaders","keys","localAddress","upgrades","pingInterval","pingTimeout","pingIntervalTimer","pingTimeoutTimer","clone","o","priorWebsocketSuccess","Transport","createTransport","name","EIO","transport","sid","requestTimeout","protocols","setTransport","onDrain","onPacket","onError","onClose","probe","onTransportOpen","upgradeLosesBinary","supportsBinary","failed","send","upgrading","pause","flush","freezeTransport","onTransportClose","onupgrade","to","onOpen","l","onHandshake","setPing","code","filterUpgrades","onHeartbeat","ping","sendPacket","writable","compress","cleanupAndClose","waitForUpgrade","desc","filteredUpgrades","j","polling","xhr","xd","xs","isSSL","xdomain","xscheme","XMLHttpRequest","XHR","JSONP","websocket","hasCORS","XDomainRequest","concat","join","empty","Polling","Request","method","async","isBinary","create","unloadHandler","requests","abort","inherit","request","doWrite","req","sendXhr","doPoll","onData","pollXhr","setDisableHeaderCheck","setRequestHeader","withCredentials","hasXDR","onLoad","responseText","onreadystatechange","contentType","getResponseHeader","responseType","status","document","requestsCount","onSuccess","fromError","response","attachEvent","hasXHR2","yeast","doOpen","poll","onPause","total","decodePayload","doClose","packets","callbackfn","encodePayload","schema","b64","description","decodePacket","encodeBase64Object","message","encodeArrayBuffer","encodeBase64Packet","contentArray","Uint8Array","resultBuffer","byteLength","encodeBlobAsArrayBuffer","fr","encodePacket","encodeBlob","dontSendBlobs","blob","tryDecode","utf8","strict","map","ary","each","done","after","eachWithIndex","el","base64encoder","hasBinary","sliceBuffer","isAndroid","navigator","userAgent","isPhantomJS","pong","noop","packetslist","utf8encode","encoded","String","split","readAsDataURL","b64data","fromCharCode","typed","basic","btoa","utf8decode","decodeBase64Packet","asArray","rest","setLengthHeader","encodeOne","doneCallback","encodePayloadAsBlob","encodePayloadAsArrayBuffer","results","decodePayloadAsBinary","n","chr","ret","totalLength","reduce","acc","resultArray","bufferIndex","forEach","isString","ab","view","charCodeAt","lenStr","parseInt","binaryIdentifier","size","lengthAry","bufferTail","tailArray","msgLength","toJSON","arraybuffer","start","end","bytes","abv","ii","count","err_cb","proxy","bail","__WEBPACK_AMD_DEFINE_RESULT__","ucs2decode","string","value","extra","output","counter","ucs2encode","array","stringFromCharCode","checkScalarValue","codePoint","toUpperCase","createByte","encodeCodePoint","symbol","codePoints","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","byteArray","decodeSymbol","byte1","byte2","byte3","byte4","tmp","freeExports","window","version","webpackPolyfill","deprecate","paths","children","chars","encoded1","encoded2","encoded3","encoded4","bufferLength","mapArrayBufferViews","chunk","copy","set","byteOffset","BlobBuilderConstructor","bb","BlobBuilder","append","getBlob","BlobConstructor","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","a","blobSupportsArrayBufferView","blobBuilderSupported","encodeURIComponent","qs","qry","pairs","pair","decodeURIComponent","alphabet","Math","floor","decoded","now","prev","seed","JSONPPolling","___eio","script","rNewline","rEscapedNewline","parentNode","removeChild","form","iframe","createElement","insertAt","getElementsByTagName","insertBefore","head","body","appendChild","isUAgecko","complete","initIframe","html","iframeId","area","className","style","position","top","left","target","setAttribute","action","submit","WS","usingBrowserWebSocket","BrowserWebSocket","WebSocket","NodeWebSocket","MozWebSocket","check","headers","ws","supports","addEventListeners","onmessage","ev","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","flags","toArray","hasBin","events","connect_error","connect_timeout","reconnect_attempt","reconnect_failed","reconnect_error","subEvents","pop","onpacket","rootNamespaceError","onconnect","onevent","onack","ondisconnect","ack","sent","emitBuffered","list","ms","factor","pow","rand","random","deviation"],"mappings":"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","file":"socket.io.slim.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"io\"] = factory();\n\telse\n\t\troot[\"io\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"io\"] = factory();\n\telse\n\t\troot[\"io\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar url = __webpack_require__(1);\n\tvar parser = __webpack_require__(4);\n\tvar Manager = __webpack_require__(9);\n\tvar debug = __webpack_require__(3)('socket.io-client');\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = exports = lookup;\n\t\n\t/**\n\t * Managers cache.\n\t */\n\t\n\tvar cache = exports.managers = {};\n\t\n\t/**\n\t * Looks up an existing `Manager` for multiplexing.\n\t * If the user summons:\n\t *\n\t *   `io('http://localhost/a');`\n\t *   `io('http://localhost/b');`\n\t *\n\t * We reuse the existing instance based on same scheme/port/host,\n\t * and we initialize sockets for each namespace.\n\t *\n\t * @api public\n\t */\n\t\n\tfunction lookup(uri, opts) {\n\t  if ((typeof uri === 'undefined' ? 'undefined' : _typeof(uri)) === 'object') {\n\t    opts = uri;\n\t    uri = undefined;\n\t  }\n\t\n\t  opts = opts || {};\n\t\n\t  var parsed = url(uri);\n\t  var source = parsed.source;\n\t  var id = parsed.id;\n\t  var path = parsed.path;\n\t  var sameNamespace = cache[id] && path in cache[id].nsps;\n\t  var newConnection = opts.forceNew || opts['force new connection'] || false === opts.multiplex || sameNamespace;\n\t\n\t  var io;\n\t\n\t  if (newConnection) {\n\t\n\t    io = Manager(source, opts);\n\t  } else {\n\t    if (!cache[id]) {\n\t\n\t      cache[id] = Manager(source, opts);\n\t    }\n\t    io = cache[id];\n\t  }\n\t  if (parsed.query && !opts.query) {\n\t    opts.query = parsed.query;\n\t  }\n\t  return io.socket(parsed.path, opts);\n\t}\n\t\n\t/**\n\t * Protocol version.\n\t *\n\t * @api public\n\t */\n\t\n\texports.protocol = parser.protocol;\n\t\n\t/**\n\t * `connect`.\n\t *\n\t * @param {String} uri\n\t * @api public\n\t */\n\t\n\texports.connect = lookup;\n\t\n\t/**\n\t * Expose constructors for standalone build.\n\t *\n\t * @api public\n\t */\n\t\n\texports.Manager = __webpack_require__(9);\n\texports.Socket = __webpack_require__(34);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar parseuri = __webpack_require__(2);\n\tvar debug = __webpack_require__(3)('socket.io-client:url');\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = url;\n\t\n\t/**\n\t * URL parser.\n\t *\n\t * @param {String} url\n\t * @param {Object} An object meant to mimic window.location.\n\t *                 Defaults to window.location.\n\t * @api public\n\t */\n\t\n\tfunction url(uri, loc) {\n\t  var obj = uri;\n\t\n\t  // default to window.location\n\t  loc = loc || global.location;\n\t  if (null == uri) uri = loc.protocol + '//' + loc.host;\n\t\n\t  // relative path support\n\t  if ('string' === typeof uri) {\n\t    if ('/' === uri.charAt(0)) {\n\t      if ('/' === uri.charAt(1)) {\n\t        uri = loc.protocol + uri;\n\t      } else {\n\t        uri = loc.host + uri;\n\t      }\n\t    }\n\t\n\t    if (!/^(https?|wss?):\\/\\//.test(uri)) {\n\t\n\t      if ('undefined' !== typeof loc) {\n\t        uri = loc.protocol + '//' + uri;\n\t      } else {\n\t        uri = 'https://' + uri;\n\t      }\n\t    }\n\t\n\t    // parse\n\t\n\t    obj = parseuri(uri);\n\t  }\n\t\n\t  // make sure we treat `localhost:80` and `localhost` equally\n\t  if (!obj.port) {\n\t    if (/^(http|ws)$/.test(obj.protocol)) {\n\t      obj.port = '80';\n\t    } else if (/^(http|ws)s$/.test(obj.protocol)) {\n\t      obj.port = '443';\n\t    }\n\t  }\n\t\n\t  obj.path = obj.path || '/';\n\t\n\t  var ipv6 = obj.host.indexOf(':') !== -1;\n\t  var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\t\n\t  // define unique id\n\t  obj.id = obj.protocol + '://' + host + ':' + obj.port;\n\t  // define href\n\t  obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : ':' + obj.port);\n\t\n\t  return obj;\n\t}\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/**\r\n\t * Parses an URI\r\n\t *\r\n\t * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n\t * @api private\r\n\t */\r\n\t\r\n\tvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\t\r\n\tvar parts = [\r\n\t    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n\t];\r\n\t\r\n\tmodule.exports = function parseuri(str) {\r\n\t    var src = str,\r\n\t        b = str.indexOf('['),\r\n\t        e = str.indexOf(']');\r\n\t\r\n\t    if (b != -1 && e != -1) {\r\n\t        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n\t    }\r\n\t\r\n\t    var m = re.exec(str || ''),\r\n\t        uri = {},\r\n\t        i = 14;\r\n\t\r\n\t    while (i--) {\r\n\t        uri[parts[i]] = m[i] || '';\r\n\t    }\r\n\t\r\n\t    if (b != -1 && e != -1) {\r\n\t        uri.source = src;\r\n\t        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n\t        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n\t        uri.ipv6uri = true;\r\n\t    }\r\n\t\r\n\t    return uri;\r\n\t};\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = function () {\n\t  return function () {};\n\t};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar debug = __webpack_require__(3)('socket.io-parser');\n\tvar Emitter = __webpack_require__(5);\n\tvar binary = __webpack_require__(6);\n\tvar isArray = __webpack_require__(7);\n\tvar isBuf = __webpack_require__(8);\n\t\n\t/**\n\t * Protocol version.\n\t *\n\t * @api public\n\t */\n\t\n\texports.protocol = 4;\n\t\n\t/**\n\t * Packet types.\n\t *\n\t * @api public\n\t */\n\t\n\texports.types = [\n\t  'CONNECT',\n\t  'DISCONNECT',\n\t  'EVENT',\n\t  'ACK',\n\t  'ERROR',\n\t  'BINARY_EVENT',\n\t  'BINARY_ACK'\n\t];\n\t\n\t/**\n\t * Packet type `connect`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.CONNECT = 0;\n\t\n\t/**\n\t * Packet type `disconnect`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.DISCONNECT = 1;\n\t\n\t/**\n\t * Packet type `event`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.EVENT = 2;\n\t\n\t/**\n\t * Packet type `ack`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.ACK = 3;\n\t\n\t/**\n\t * Packet type `error`.\n\t *\n\t * @api public\n\t */\n\t\n\texports.ERROR = 4;\n\t\n\t/**\n\t * Packet type 'binary event'\n\t *\n\t * @api public\n\t */\n\t\n\texports.BINARY_EVENT = 5;\n\t\n\t/**\n\t * Packet type `binary ack`. For acks with binary arguments.\n\t *\n\t * @api public\n\t */\n\t\n\texports.BINARY_ACK = 6;\n\t\n\t/**\n\t * Encoder constructor.\n\t *\n\t * @api public\n\t */\n\t\n\texports.Encoder = Encoder;\n\t\n\t/**\n\t * Decoder constructor.\n\t *\n\t * @api public\n\t */\n\t\n\texports.Decoder = Decoder;\n\t\n\t/**\n\t * A socket.io Encoder instance\n\t *\n\t * @api public\n\t */\n\t\n\tfunction Encoder() {}\n\t\n\tvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\t\n\t/**\n\t * Encode a packet as a single string if non-binary, or as a\n\t * buffer sequence, depending on packet type.\n\t *\n\t * @param {Object} obj - packet object\n\t * @param {Function} callback - function to handle encodings (likely engine.write)\n\t * @return Calls callback with Array of encodings\n\t * @api public\n\t */\n\t\n\tEncoder.prototype.encode = function(obj, callback){\n\t\n\t\n\t  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n\t    encodeAsBinary(obj, callback);\n\t  } else {\n\t    var encoding = encodeAsString(obj);\n\t    callback([encoding]);\n\t  }\n\t};\n\t\n\t/**\n\t * Encode packet as string.\n\t *\n\t * @param {Object} packet\n\t * @return {String} encoded\n\t * @api private\n\t */\n\t\n\tfunction encodeAsString(obj) {\n\t\n\t  // first is type\n\t  var str = '' + obj.type;\n\t\n\t  // attachments if we have them\n\t  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n\t    str += obj.attachments + '-';\n\t  }\n\t\n\t  // if we have a namespace other than `/`\n\t  // we append it followed by a comma `,`\n\t  if (obj.nsp && '/' !== obj.nsp) {\n\t    str += obj.nsp + ',';\n\t  }\n\t\n\t  // immediately followed by the id\n\t  if (null != obj.id) {\n\t    str += obj.id;\n\t  }\n\t\n\t  // json data\n\t  if (null != obj.data) {\n\t    var payload = tryStringify(obj.data);\n\t    if (payload !== false) {\n\t      str += payload;\n\t    } else {\n\t      return ERROR_PACKET;\n\t    }\n\t  }\n\t\n\t\n\t  return str;\n\t}\n\t\n\tfunction tryStringify(str) {\n\t  try {\n\t    return JSON.stringify(str);\n\t  } catch(e){\n\t    return false;\n\t  }\n\t}\n\t\n\t/**\n\t * Encode packet as 'buffer sequence' by removing blobs, and\n\t * deconstructing packet into object with placeholders and\n\t * a list of buffers.\n\t *\n\t * @param {Object} packet\n\t * @return {Buffer} encoded\n\t * @api private\n\t */\n\t\n\tfunction encodeAsBinary(obj, callback) {\n\t\n\t  function writeEncoding(bloblessData) {\n\t    var deconstruction = binary.deconstructPacket(bloblessData);\n\t    var pack = encodeAsString(deconstruction.packet);\n\t    var buffers = deconstruction.buffers;\n\t\n\t    buffers.unshift(pack); // add packet info to beginning of data list\n\t    callback(buffers); // write all the buffers\n\t  }\n\t\n\t  binary.removeBlobs(obj, writeEncoding);\n\t}\n\t\n\t/**\n\t * A socket.io Decoder instance\n\t *\n\t * @return {Object} decoder\n\t * @api public\n\t */\n\t\n\tfunction Decoder() {\n\t  this.reconstructor = null;\n\t}\n\t\n\t/**\n\t * Mix in `Emitter` with Decoder.\n\t */\n\t\n\tEmitter(Decoder.prototype);\n\t\n\t/**\n\t * Decodes an ecoded packet string into packet JSON.\n\t *\n\t * @param {String} obj - encoded packet\n\t * @return {Object} packet\n\t * @api public\n\t */\n\t\n\tDecoder.prototype.add = function(obj) {\n\t  var packet;\n\t  if (typeof obj === 'string') {\n\t    packet = decodeString(obj);\n\t    if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n\t      this.reconstructor = new BinaryReconstructor(packet);\n\t\n\t      // no attachments, labeled binary but no binary data to follow\n\t      if (this.reconstructor.reconPack.attachments === 0) {\n\t        this.emit('decoded', packet);\n\t      }\n\t    } else { // non-binary full packet\n\t      this.emit('decoded', packet);\n\t    }\n\t  }\n\t  else if (isBuf(obj) || obj.base64) { // raw binary data\n\t    if (!this.reconstructor) {\n\t      throw new Error('got binary data when not reconstructing a packet');\n\t    } else {\n\t      packet = this.reconstructor.takeBinaryData(obj);\n\t      if (packet) { // received final buffer\n\t        this.reconstructor = null;\n\t        this.emit('decoded', packet);\n\t      }\n\t    }\n\t  }\n\t  else {\n\t    throw new Error('Unknown type: ' + obj);\n\t  }\n\t};\n\t\n\t/**\n\t * Decode a packet String (JSON data)\n\t *\n\t * @param {String} str\n\t * @return {Object} packet\n\t * @api private\n\t */\n\t\n\tfunction decodeString(str) {\n\t  var i = 0;\n\t  // look up type\n\t  var p = {\n\t    type: Number(str.charAt(0))\n\t  };\n\t\n\t  if (null == exports.types[p.type]) {\n\t    return error('unknown packet type ' + p.type);\n\t  }\n\t\n\t  // look up attachments if type binary\n\t  if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n\t    var buf = '';\n\t    while (str.charAt(++i) !== '-') {\n\t      buf += str.charAt(i);\n\t      if (i == str.length) break;\n\t    }\n\t    if (buf != Number(buf) || str.charAt(i) !== '-') {\n\t      throw new Error('Illegal attachments');\n\t    }\n\t    p.attachments = Number(buf);\n\t  }\n\t\n\t  // look up namespace (if any)\n\t  if ('/' === str.charAt(i + 1)) {\n\t    p.nsp = '';\n\t    while (++i) {\n\t      var c = str.charAt(i);\n\t      if (',' === c) break;\n\t      p.nsp += c;\n\t      if (i === str.length) break;\n\t    }\n\t  } else {\n\t    p.nsp = '/';\n\t  }\n\t\n\t  // look up id\n\t  var next = str.charAt(i + 1);\n\t  if ('' !== next && Number(next) == next) {\n\t    p.id = '';\n\t    while (++i) {\n\t      var c = str.charAt(i);\n\t      if (null == c || Number(c) != c) {\n\t        --i;\n\t        break;\n\t      }\n\t      p.id += str.charAt(i);\n\t      if (i === str.length) break;\n\t    }\n\t    p.id = Number(p.id);\n\t  }\n\t\n\t  // look up json data\n\t  if (str.charAt(++i)) {\n\t    var payload = tryParse(str.substr(i));\n\t    var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));\n\t    if (isPayloadValid) {\n\t      p.data = payload;\n\t    } else {\n\t      return error('invalid payload');\n\t    }\n\t  }\n\t\n\t\n\t  return p;\n\t}\n\t\n\tfunction tryParse(str) {\n\t  try {\n\t    return JSON.parse(str);\n\t  } catch(e){\n\t    return false;\n\t  }\n\t}\n\t\n\t/**\n\t * Deallocates a parser's resources\n\t *\n\t * @api public\n\t */\n\t\n\tDecoder.prototype.destroy = function() {\n\t  if (this.reconstructor) {\n\t    this.reconstructor.finishedReconstruction();\n\t  }\n\t};\n\t\n\t/**\n\t * A manager of a binary event's 'buffer sequence'. Should\n\t * be constructed whenever a packet of type BINARY_EVENT is\n\t * decoded.\n\t *\n\t * @param {Object} packet\n\t * @return {BinaryReconstructor} initialized reconstructor\n\t * @api private\n\t */\n\t\n\tfunction BinaryReconstructor(packet) {\n\t  this.reconPack = packet;\n\t  this.buffers = [];\n\t}\n\t\n\t/**\n\t * Method to be called when binary data received from connection\n\t * after a BINARY_EVENT packet.\n\t *\n\t * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n\t * @return {null | Object} returns null if more binary data is expected or\n\t *   a reconstructed packet object if all buffers have been received.\n\t * @api private\n\t */\n\t\n\tBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n\t  this.buffers.push(binData);\n\t  if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n\t    var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n\t    this.finishedReconstruction();\n\t    return packet;\n\t  }\n\t  return null;\n\t};\n\t\n\t/**\n\t * Cleans up binary packet reconstruction variables.\n\t *\n\t * @api private\n\t */\n\t\n\tBinaryReconstructor.prototype.finishedReconstruction = function() {\n\t  this.reconPack = null;\n\t  this.buffers = [];\n\t};\n\t\n\tfunction error(msg) {\n\t  return {\n\t    type: exports.ERROR,\n\t    data: 'parser error: ' + msg\n\t  };\n\t}\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\r\n\t/**\r\n\t * Expose `Emitter`.\r\n\t */\r\n\t\r\n\tif (true) {\r\n\t  module.exports = Emitter;\r\n\t}\r\n\t\r\n\t/**\r\n\t * Initialize a new `Emitter`.\r\n\t *\r\n\t * @api public\r\n\t */\r\n\t\r\n\tfunction Emitter(obj) {\r\n\t  if (obj) return mixin(obj);\r\n\t};\r\n\t\r\n\t/**\r\n\t * Mixin the emitter properties.\r\n\t *\r\n\t * @param {Object} obj\r\n\t * @return {Object}\r\n\t * @api private\r\n\t */\r\n\t\r\n\tfunction mixin(obj) {\r\n\t  for (var key in Emitter.prototype) {\r\n\t    obj[key] = Emitter.prototype[key];\r\n\t  }\r\n\t  return obj;\r\n\t}\r\n\t\r\n\t/**\r\n\t * Listen on the given `event` with `fn`.\r\n\t *\r\n\t * @param {String} event\r\n\t * @param {Function} fn\r\n\t * @return {Emitter}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.on =\r\n\tEmitter.prototype.addEventListener = function(event, fn){\r\n\t  this._callbacks = this._callbacks || {};\r\n\t  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n\t    .push(fn);\r\n\t  return this;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Adds an `event` listener that will be invoked a single\r\n\t * time then automatically removed.\r\n\t *\r\n\t * @param {String} event\r\n\t * @param {Function} fn\r\n\t * @return {Emitter}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.once = function(event, fn){\r\n\t  function on() {\r\n\t    this.off(event, on);\r\n\t    fn.apply(this, arguments);\r\n\t  }\r\n\t\r\n\t  on.fn = fn;\r\n\t  this.on(event, on);\r\n\t  return this;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Remove the given callback for `event` or all\r\n\t * registered callbacks.\r\n\t *\r\n\t * @param {String} event\r\n\t * @param {Function} fn\r\n\t * @return {Emitter}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.off =\r\n\tEmitter.prototype.removeListener =\r\n\tEmitter.prototype.removeAllListeners =\r\n\tEmitter.prototype.removeEventListener = function(event, fn){\r\n\t  this._callbacks = this._callbacks || {};\r\n\t\r\n\t  // all\r\n\t  if (0 == arguments.length) {\r\n\t    this._callbacks = {};\r\n\t    return this;\r\n\t  }\r\n\t\r\n\t  // specific event\r\n\t  var callbacks = this._callbacks['$' + event];\r\n\t  if (!callbacks) return this;\r\n\t\r\n\t  // remove all handlers\r\n\t  if (1 == arguments.length) {\r\n\t    delete this._callbacks['$' + event];\r\n\t    return this;\r\n\t  }\r\n\t\r\n\t  // remove specific handler\r\n\t  var cb;\r\n\t  for (var i = 0; i < callbacks.length; i++) {\r\n\t    cb = callbacks[i];\r\n\t    if (cb === fn || cb.fn === fn) {\r\n\t      callbacks.splice(i, 1);\r\n\t      break;\r\n\t    }\r\n\t  }\r\n\t  return this;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Emit `event` with the given args.\r\n\t *\r\n\t * @param {String} event\r\n\t * @param {Mixed} ...\r\n\t * @return {Emitter}\r\n\t */\r\n\t\r\n\tEmitter.prototype.emit = function(event){\r\n\t  this._callbacks = this._callbacks || {};\r\n\t  var args = [].slice.call(arguments, 1)\r\n\t    , callbacks = this._callbacks['$' + event];\r\n\t\r\n\t  if (callbacks) {\r\n\t    callbacks = callbacks.slice(0);\r\n\t    for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n\t      callbacks[i].apply(this, args);\r\n\t    }\r\n\t  }\r\n\t\r\n\t  return this;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Return array of callbacks for `event`.\r\n\t *\r\n\t * @param {String} event\r\n\t * @return {Array}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.listeners = function(event){\r\n\t  this._callbacks = this._callbacks || {};\r\n\t  return this._callbacks['$' + event] || [];\r\n\t};\r\n\t\r\n\t/**\r\n\t * Check if this emitter has `event` handlers.\r\n\t *\r\n\t * @param {String} event\r\n\t * @return {Boolean}\r\n\t * @api public\r\n\t */\r\n\t\r\n\tEmitter.prototype.hasListeners = function(event){\r\n\t  return !! this.listeners(event).length;\r\n\t};\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/*global Blob,File*/\n\t\n\t/**\n\t * Module requirements\n\t */\n\t\n\tvar isArray = __webpack_require__(7);\n\tvar isBuf = __webpack_require__(8);\n\tvar toString = Object.prototype.toString;\n\tvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\n\tvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\t\n\t/**\n\t * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n\t * Anything with blobs or files should be fed through removeBlobs before coming\n\t * here.\n\t *\n\t * @param {Object} packet - socket.io event packet\n\t * @return {Object} with deconstructed packet and list of buffers\n\t * @api public\n\t */\n\t\n\texports.deconstructPacket = function(packet) {\n\t  var buffers = [];\n\t  var packetData = packet.data;\n\t  var pack = packet;\n\t  pack.data = _deconstructPacket(packetData, buffers);\n\t  pack.attachments = buffers.length; // number of binary 'attachments'\n\t  return {packet: pack, buffers: buffers};\n\t};\n\t\n\tfunction _deconstructPacket(data, buffers) {\n\t  if (!data) return data;\n\t\n\t  if (isBuf(data)) {\n\t    var placeholder = { _placeholder: true, num: buffers.length };\n\t    buffers.push(data);\n\t    return placeholder;\n\t  } else if (isArray(data)) {\n\t    var newData = new Array(data.length);\n\t    for (var i = 0; i < data.length; i++) {\n\t      newData[i] = _deconstructPacket(data[i], buffers);\n\t    }\n\t    return newData;\n\t  } else if (typeof data === 'object' && !(data instanceof Date)) {\n\t    var newData = {};\n\t    for (var key in data) {\n\t      newData[key] = _deconstructPacket(data[key], buffers);\n\t    }\n\t    return newData;\n\t  }\n\t  return data;\n\t}\n\t\n\t/**\n\t * Reconstructs a binary packet from its placeholder packet and buffers\n\t *\n\t * @param {Object} packet - event packet with placeholders\n\t * @param {Array} buffers - binary buffers to put in placeholder positions\n\t * @return {Object} reconstructed packet\n\t * @api public\n\t */\n\t\n\texports.reconstructPacket = function(packet, buffers) {\n\t  packet.data = _reconstructPacket(packet.data, buffers);\n\t  packet.attachments = undefined; // no longer useful\n\t  return packet;\n\t};\n\t\n\tfunction _reconstructPacket(data, buffers) {\n\t  if (!data) return data;\n\t\n\t  if (data && data._placeholder) {\n\t    return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n\t  } else if (isArray(data)) {\n\t    for (var i = 0; i < data.length; i++) {\n\t      data[i] = _reconstructPacket(data[i], buffers);\n\t    }\n\t  } else if (typeof data === 'object') {\n\t    for (var key in data) {\n\t      data[key] = _reconstructPacket(data[key], buffers);\n\t    }\n\t  }\n\t\n\t  return data;\n\t}\n\t\n\t/**\n\t * Asynchronously removes Blobs or Files from data via\n\t * FileReader's readAsArrayBuffer method. Used before encoding\n\t * data as msgpack. Calls callback with the blobless data.\n\t *\n\t * @param {Object} data\n\t * @param {Function} callback\n\t * @api private\n\t */\n\t\n\texports.removeBlobs = function(data, callback) {\n\t  function _removeBlobs(obj, curKey, containingObject) {\n\t    if (!obj) return obj;\n\t\n\t    // convert any blob\n\t    if ((withNativeBlob && obj instanceof Blob) ||\n\t        (withNativeFile && obj instanceof File)) {\n\t      pendingBlobs++;\n\t\n\t      // async filereader\n\t      var fileReader = new FileReader();\n\t      fileReader.onload = function() { // this.result == arraybuffer\n\t        if (containingObject) {\n\t          containingObject[curKey] = this.result;\n\t        }\n\t        else {\n\t          bloblessData = this.result;\n\t        }\n\t\n\t        // if nothing pending its callback time\n\t        if(! --pendingBlobs) {\n\t          callback(bloblessData);\n\t        }\n\t      };\n\t\n\t      fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n\t    } else if (isArray(obj)) { // handle array\n\t      for (var i = 0; i < obj.length; i++) {\n\t        _removeBlobs(obj[i], i, obj);\n\t      }\n\t    } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n\t      for (var key in obj) {\n\t        _removeBlobs(obj[key], key, obj);\n\t      }\n\t    }\n\t  }\n\t\n\t  var pendingBlobs = 0;\n\t  var bloblessData = data;\n\t  _removeBlobs(bloblessData);\n\t  if (!pendingBlobs) {\n\t    callback(bloblessData);\n\t  }\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\tvar toString = {}.toString;\n\t\n\tmodule.exports = Array.isArray || function (arr) {\n\t  return toString.call(arr) == '[object Array]';\n\t};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {\n\tmodule.exports = isBuf;\n\t\n\tvar withNativeBuffer = typeof global.Buffer === 'function' && typeof global.Buffer.isBuffer === 'function';\n\tvar withNativeArrayBuffer = typeof global.ArrayBuffer === 'function';\n\t\n\tvar isView = (function () {\n\t  if (withNativeArrayBuffer && typeof global.ArrayBuffer.isView === 'function') {\n\t    return global.ArrayBuffer.isView;\n\t  } else {\n\t    return function (obj) { return obj.buffer instanceof global.ArrayBuffer; };\n\t  }\n\t})();\n\t\n\t/**\n\t * Returns true if obj is a buffer or an arraybuffer.\n\t *\n\t * @api private\n\t */\n\t\n\tfunction isBuf(obj) {\n\t  return (withNativeBuffer && global.Buffer.isBuffer(obj)) ||\n\t          (withNativeArrayBuffer && (obj instanceof global.ArrayBuffer || isView(obj)));\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar eio = __webpack_require__(10);\n\tvar Socket = __webpack_require__(34);\n\tvar Emitter = __webpack_require__(5);\n\tvar parser = __webpack_require__(4);\n\tvar on = __webpack_require__(36);\n\tvar bind = __webpack_require__(37);\n\tvar debug = __webpack_require__(3)('socket.io-client:manager');\n\tvar indexOf = __webpack_require__(33);\n\tvar Backoff = __webpack_require__(38);\n\t\n\t/**\n\t * IE6+ hasOwnProperty\n\t */\n\t\n\tvar has = Object.prototype.hasOwnProperty;\n\t\n\t/**\n\t * Module exports\n\t */\n\t\n\tmodule.exports = Manager;\n\t\n\t/**\n\t * `Manager` constructor.\n\t *\n\t * @param {String} engine instance or engine uri/opts\n\t * @param {Object} options\n\t * @api public\n\t */\n\t\n\tfunction Manager(uri, opts) {\n\t  if (!(this instanceof Manager)) return new Manager(uri, opts);\n\t  if (uri && 'object' === (typeof uri === 'undefined' ? 'undefined' : _typeof(uri))) {\n\t    opts = uri;\n\t    uri = undefined;\n\t  }\n\t  opts = opts || {};\n\t\n\t  opts.path = opts.path || '/socket.io';\n\t  this.nsps = {};\n\t  this.subs = [];\n\t  this.opts = opts;\n\t  this.reconnection(opts.reconnection !== false);\n\t  this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n\t  this.reconnectionDelay(opts.reconnectionDelay || 1000);\n\t  this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n\t  this.randomizationFactor(opts.randomizationFactor || 0.5);\n\t  this.backoff = new Backoff({\n\t    min: this.reconnectionDelay(),\n\t    max: this.reconnectionDelayMax(),\n\t    jitter: this.randomizationFactor()\n\t  });\n\t  this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n\t  this.readyState = 'closed';\n\t  this.uri = uri;\n\t  this.connecting = [];\n\t  this.lastPing = null;\n\t  this.encoding = false;\n\t  this.packetBuffer = [];\n\t  var _parser = opts.parser || parser;\n\t  this.encoder = new _parser.Encoder();\n\t  this.decoder = new _parser.Decoder();\n\t  this.autoConnect = opts.autoConnect !== false;\n\t  if (this.autoConnect) this.open();\n\t}\n\t\n\t/**\n\t * Propagate given event to sockets and emit on `this`\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.emitAll = function () {\n\t  this.emit.apply(this, arguments);\n\t  for (var nsp in this.nsps) {\n\t    if (has.call(this.nsps, nsp)) {\n\t      this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Update `socket.id` of all sockets\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.updateSocketIds = function () {\n\t  for (var nsp in this.nsps) {\n\t    if (has.call(this.nsps, nsp)) {\n\t      this.nsps[nsp].id = this.generateId(nsp);\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * generate `socket.id` for the given `nsp`\n\t *\n\t * @param {String} nsp\n\t * @return {String}\n\t * @api private\n\t */\n\t\n\tManager.prototype.generateId = function (nsp) {\n\t  return (nsp === '/' ? '' : nsp + '#') + this.engine.id;\n\t};\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Manager.prototype);\n\t\n\t/**\n\t * Sets the `reconnection` config.\n\t *\n\t * @param {Boolean} true/false if it should automatically reconnect\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.reconnection = function (v) {\n\t  if (!arguments.length) return this._reconnection;\n\t  this._reconnection = !!v;\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the reconnection attempts config.\n\t *\n\t * @param {Number} max reconnection attempts before giving up\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.reconnectionAttempts = function (v) {\n\t  if (!arguments.length) return this._reconnectionAttempts;\n\t  this._reconnectionAttempts = v;\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the delay between reconnections.\n\t *\n\t * @param {Number} delay\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.reconnectionDelay = function (v) {\n\t  if (!arguments.length) return this._reconnectionDelay;\n\t  this._reconnectionDelay = v;\n\t  this.backoff && this.backoff.setMin(v);\n\t  return this;\n\t};\n\t\n\tManager.prototype.randomizationFactor = function (v) {\n\t  if (!arguments.length) return this._randomizationFactor;\n\t  this._randomizationFactor = v;\n\t  this.backoff && this.backoff.setJitter(v);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the maximum delay between reconnections.\n\t *\n\t * @param {Number} delay\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.reconnectionDelayMax = function (v) {\n\t  if (!arguments.length) return this._reconnectionDelayMax;\n\t  this._reconnectionDelayMax = v;\n\t  this.backoff && this.backoff.setMax(v);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the connection timeout. `false` to disable\n\t *\n\t * @return {Manager} self or value\n\t * @api public\n\t */\n\t\n\tManager.prototype.timeout = function (v) {\n\t  if (!arguments.length) return this._timeout;\n\t  this._timeout = v;\n\t  return this;\n\t};\n\t\n\t/**\n\t * Starts trying to reconnect if reconnection is enabled and we have not\n\t * started reconnecting yet\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.maybeReconnectOnOpen = function () {\n\t  // Only try to reconnect if it's the first time we're connecting\n\t  if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n\t    // keeps reconnection from firing twice for the same reconnection loop\n\t    this.reconnect();\n\t  }\n\t};\n\t\n\t/**\n\t * Sets the current transport `socket`.\n\t *\n\t * @param {Function} optional, callback\n\t * @return {Manager} self\n\t * @api public\n\t */\n\t\n\tManager.prototype.open = Manager.prototype.connect = function (fn, opts) {\n\t\n\t  if (~this.readyState.indexOf('open')) return this;\n\t\n\t  this.engine = eio(this.uri, this.opts);\n\t  var socket = this.engine;\n\t  var self = this;\n\t  this.readyState = 'opening';\n\t  this.skipReconnect = false;\n\t\n\t  // emit `open`\n\t  var openSub = on(socket, 'open', function () {\n\t    self.onopen();\n\t    fn && fn();\n\t  });\n\t\n\t  // emit `connect_error`\n\t  var errorSub = on(socket, 'error', function (data) {\n\t\n\t    self.cleanup();\n\t    self.readyState = 'closed';\n\t    self.emitAll('connect_error', data);\n\t    if (fn) {\n\t      var err = new Error('Connection error');\n\t      err.data = data;\n\t      fn(err);\n\t    } else {\n\t      // Only do this if there is no fn to handle the error\n\t      self.maybeReconnectOnOpen();\n\t    }\n\t  });\n\t\n\t  // emit `connect_timeout`\n\t  if (false !== this._timeout) {\n\t    var timeout = this._timeout;\n\t\n\t    // set timer\n\t    var timer = setTimeout(function () {\n\t\n\t      openSub.destroy();\n\t      socket.close();\n\t      socket.emit('error', 'timeout');\n\t      self.emitAll('connect_timeout', timeout);\n\t    }, timeout);\n\t\n\t    this.subs.push({\n\t      destroy: function destroy() {\n\t        clearTimeout(timer);\n\t      }\n\t    });\n\t  }\n\t\n\t  this.subs.push(openSub);\n\t  this.subs.push(errorSub);\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Called upon transport open.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onopen = function () {\n\t\n\t  // clear old subs\n\t  this.cleanup();\n\t\n\t  // mark as open\n\t  this.readyState = 'open';\n\t  this.emit('open');\n\t\n\t  // add new subs\n\t  var socket = this.engine;\n\t  this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n\t  this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n\t  this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n\t  this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n\t  this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n\t  this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n\t};\n\t\n\t/**\n\t * Called upon a ping.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onping = function () {\n\t  this.lastPing = new Date();\n\t  this.emitAll('ping');\n\t};\n\t\n\t/**\n\t * Called upon a packet.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onpong = function () {\n\t  this.emitAll('pong', new Date() - this.lastPing);\n\t};\n\t\n\t/**\n\t * Called with data.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.ondata = function (data) {\n\t  this.decoder.add(data);\n\t};\n\t\n\t/**\n\t * Called when parser fully decodes a packet.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.ondecoded = function (packet) {\n\t  this.emit('packet', packet);\n\t};\n\t\n\t/**\n\t * Called upon socket error.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onerror = function (err) {\n\t\n\t  this.emitAll('error', err);\n\t};\n\t\n\t/**\n\t * Creates a new socket for the given `nsp`.\n\t *\n\t * @return {Socket}\n\t * @api public\n\t */\n\t\n\tManager.prototype.socket = function (nsp, opts) {\n\t  var socket = this.nsps[nsp];\n\t  if (!socket) {\n\t    socket = new Socket(this, nsp, opts);\n\t    this.nsps[nsp] = socket;\n\t    var self = this;\n\t    socket.on('connecting', onConnecting);\n\t    socket.on('connect', function () {\n\t      socket.id = self.generateId(nsp);\n\t    });\n\t\n\t    if (this.autoConnect) {\n\t      // manually call here since connecting event is fired before listening\n\t      onConnecting();\n\t    }\n\t  }\n\t\n\t  function onConnecting() {\n\t    if (!~indexOf(self.connecting, socket)) {\n\t      self.connecting.push(socket);\n\t    }\n\t  }\n\t\n\t  return socket;\n\t};\n\t\n\t/**\n\t * Called upon a socket close.\n\t *\n\t * @param {Socket} socket\n\t */\n\t\n\tManager.prototype.destroy = function (socket) {\n\t  var index = indexOf(this.connecting, socket);\n\t  if (~index) this.connecting.splice(index, 1);\n\t  if (this.connecting.length) return;\n\t\n\t  this.close();\n\t};\n\t\n\t/**\n\t * Writes a packet.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tManager.prototype.packet = function (packet) {\n\t\n\t  var self = this;\n\t  if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\t\n\t  if (!self.encoding) {\n\t    // encode, then write to engine with result\n\t    self.encoding = true;\n\t    this.encoder.encode(packet, function (encodedPackets) {\n\t      for (var i = 0; i < encodedPackets.length; i++) {\n\t        self.engine.write(encodedPackets[i], packet.options);\n\t      }\n\t      self.encoding = false;\n\t      self.processPacketQueue();\n\t    });\n\t  } else {\n\t    // add packet to the queue\n\t    self.packetBuffer.push(packet);\n\t  }\n\t};\n\t\n\t/**\n\t * If packet buffer is non-empty, begins encoding the\n\t * next packet in line.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.processPacketQueue = function () {\n\t  if (this.packetBuffer.length > 0 && !this.encoding) {\n\t    var pack = this.packetBuffer.shift();\n\t    this.packet(pack);\n\t  }\n\t};\n\t\n\t/**\n\t * Clean up transport subscriptions and packet buffer.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.cleanup = function () {\n\t\n\t  var subsLength = this.subs.length;\n\t  for (var i = 0; i < subsLength; i++) {\n\t    var sub = this.subs.shift();\n\t    sub.destroy();\n\t  }\n\t\n\t  this.packetBuffer = [];\n\t  this.encoding = false;\n\t  this.lastPing = null;\n\t\n\t  this.decoder.destroy();\n\t};\n\t\n\t/**\n\t * Close the current socket.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.close = Manager.prototype.disconnect = function () {\n\t\n\t  this.skipReconnect = true;\n\t  this.reconnecting = false;\n\t  if ('opening' === this.readyState) {\n\t    // `onclose` will not fire because\n\t    // an open event never happened\n\t    this.cleanup();\n\t  }\n\t  this.backoff.reset();\n\t  this.readyState = 'closed';\n\t  if (this.engine) this.engine.close();\n\t};\n\t\n\t/**\n\t * Called upon engine close.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onclose = function (reason) {\n\t\n\t  this.cleanup();\n\t  this.backoff.reset();\n\t  this.readyState = 'closed';\n\t  this.emit('close', reason);\n\t\n\t  if (this._reconnection && !this.skipReconnect) {\n\t    this.reconnect();\n\t  }\n\t};\n\t\n\t/**\n\t * Attempt a reconnection.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.reconnect = function () {\n\t  if (this.reconnecting || this.skipReconnect) return this;\n\t\n\t  var self = this;\n\t\n\t  if (this.backoff.attempts >= this._reconnectionAttempts) {\n\t\n\t    this.backoff.reset();\n\t    this.emitAll('reconnect_failed');\n\t    this.reconnecting = false;\n\t  } else {\n\t    var delay = this.backoff.duration();\n\t\n\t    this.reconnecting = true;\n\t    var timer = setTimeout(function () {\n\t      if (self.skipReconnect) return;\n\t\n\t      self.emitAll('reconnect_attempt', self.backoff.attempts);\n\t      self.emitAll('reconnecting', self.backoff.attempts);\n\t\n\t      // check again for the case socket closed in above events\n\t      if (self.skipReconnect) return;\n\t\n\t      self.open(function (err) {\n\t        if (err) {\n\t\n\t          self.reconnecting = false;\n\t          self.reconnect();\n\t          self.emitAll('reconnect_error', err.data);\n\t        } else {\n\t\n\t          self.onreconnect();\n\t        }\n\t      });\n\t    }, delay);\n\t\n\t    this.subs.push({\n\t      destroy: function destroy() {\n\t        clearTimeout(timer);\n\t      }\n\t    });\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon successful reconnect.\n\t *\n\t * @api private\n\t */\n\t\n\tManager.prototype.onreconnect = function () {\n\t  var attempt = this.backoff.attempts;\n\t  this.reconnecting = false;\n\t  this.backoff.reset();\n\t  this.updateSocketIds();\n\t  this.emitAll('reconnect', attempt);\n\t};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\n\tmodule.exports = __webpack_require__(11);\n\t\n\t/**\n\t * Exports parser\n\t *\n\t * @api public\n\t *\n\t */\n\tmodule.exports.parser = __webpack_require__(18);\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module dependencies.\n\t */\n\t\n\tvar transports = __webpack_require__(12);\n\tvar Emitter = __webpack_require__(5);\n\tvar debug = __webpack_require__(3)('engine.io-client:socket');\n\tvar index = __webpack_require__(33);\n\tvar parser = __webpack_require__(18);\n\tvar parseuri = __webpack_require__(2);\n\tvar parseqs = __webpack_require__(27);\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = Socket;\n\t\n\t/**\n\t * Socket constructor.\n\t *\n\t * @param {String|Object} uri or options\n\t * @param {Object} options\n\t * @api public\n\t */\n\t\n\tfunction Socket (uri, opts) {\n\t  if (!(this instanceof Socket)) return new Socket(uri, opts);\n\t\n\t  opts = opts || {};\n\t\n\t  if (uri && 'object' === typeof uri) {\n\t    opts = uri;\n\t    uri = null;\n\t  }\n\t\n\t  if (uri) {\n\t    uri = parseuri(uri);\n\t    opts.hostname = uri.host;\n\t    opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n\t    opts.port = uri.port;\n\t    if (uri.query) opts.query = uri.query;\n\t  } else if (opts.host) {\n\t    opts.hostname = parseuri(opts.host).host;\n\t  }\n\t\n\t  this.secure = null != opts.secure ? opts.secure\n\t    : (global.location && 'https:' === location.protocol);\n\t\n\t  if (opts.hostname && !opts.port) {\n\t    // if no port is specified manually, use the protocol default\n\t    opts.port = this.secure ? '443' : '80';\n\t  }\n\t\n\t  this.agent = opts.agent || false;\n\t  this.hostname = opts.hostname ||\n\t    (global.location ? location.hostname : 'localhost');\n\t  this.port = opts.port || (global.location && location.port\n\t      ? location.port\n\t      : (this.secure ? 443 : 80));\n\t  this.query = opts.query || {};\n\t  if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n\t  this.upgrade = false !== opts.upgrade;\n\t  this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n\t  this.forceJSONP = !!opts.forceJSONP;\n\t  this.jsonp = false !== opts.jsonp;\n\t  this.forceBase64 = !!opts.forceBase64;\n\t  this.enablesXDR = !!opts.enablesXDR;\n\t  this.timestampParam = opts.timestampParam || 't';\n\t  this.timestampRequests = opts.timestampRequests;\n\t  this.transports = opts.transports || ['polling', 'websocket'];\n\t  this.transportOptions = opts.transportOptions || {};\n\t  this.readyState = '';\n\t  this.writeBuffer = [];\n\t  this.prevBufferLen = 0;\n\t  this.policyPort = opts.policyPort || 843;\n\t  this.rememberUpgrade = opts.rememberUpgrade || false;\n\t  this.binaryType = null;\n\t  this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n\t  this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\t\n\t  if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n\t  if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n\t    this.perMessageDeflate.threshold = 1024;\n\t  }\n\t\n\t  // SSL options for Node.js client\n\t  this.pfx = opts.pfx || null;\n\t  this.key = opts.key || null;\n\t  this.passphrase = opts.passphrase || null;\n\t  this.cert = opts.cert || null;\n\t  this.ca = opts.ca || null;\n\t  this.ciphers = opts.ciphers || null;\n\t  this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n\t  this.forceNode = !!opts.forceNode;\n\t\n\t  // other options for Node.js client\n\t  var freeGlobal = typeof global === 'object' && global;\n\t  if (freeGlobal.global === freeGlobal) {\n\t    if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n\t      this.extraHeaders = opts.extraHeaders;\n\t    }\n\t\n\t    if (opts.localAddress) {\n\t      this.localAddress = opts.localAddress;\n\t    }\n\t  }\n\t\n\t  // set on handshake\n\t  this.id = null;\n\t  this.upgrades = null;\n\t  this.pingInterval = null;\n\t  this.pingTimeout = null;\n\t\n\t  // set on heartbeat\n\t  this.pingIntervalTimer = null;\n\t  this.pingTimeoutTimer = null;\n\t\n\t  this.open();\n\t}\n\t\n\tSocket.priorWebsocketSuccess = false;\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Socket.prototype);\n\t\n\t/**\n\t * Protocol version.\n\t *\n\t * @api public\n\t */\n\t\n\tSocket.protocol = parser.protocol; // this is an int\n\t\n\t/**\n\t * Expose deps for legacy compatibility\n\t * and standalone browser access.\n\t */\n\t\n\tSocket.Socket = Socket;\n\tSocket.Transport = __webpack_require__(17);\n\tSocket.transports = __webpack_require__(12);\n\tSocket.parser = __webpack_require__(18);\n\t\n\t/**\n\t * Creates transport of the given type.\n\t *\n\t * @param {String} transport name\n\t * @return {Transport}\n\t * @api private\n\t */\n\t\n\tSocket.prototype.createTransport = function (name) {\n\t\n\t  var query = clone(this.query);\n\t\n\t  // append engine.io protocol identifier\n\t  query.EIO = parser.protocol;\n\t\n\t  // transport name\n\t  query.transport = name;\n\t\n\t  // per-transport options\n\t  var options = this.transportOptions[name] || {};\n\t\n\t  // session id if we already have one\n\t  if (this.id) query.sid = this.id;\n\t\n\t  var transport = new transports[name]({\n\t    query: query,\n\t    socket: this,\n\t    agent: options.agent || this.agent,\n\t    hostname: options.hostname || this.hostname,\n\t    port: options.port || this.port,\n\t    secure: options.secure || this.secure,\n\t    path: options.path || this.path,\n\t    forceJSONP: options.forceJSONP || this.forceJSONP,\n\t    jsonp: options.jsonp || this.jsonp,\n\t    forceBase64: options.forceBase64 || this.forceBase64,\n\t    enablesXDR: options.enablesXDR || this.enablesXDR,\n\t    timestampRequests: options.timestampRequests || this.timestampRequests,\n\t    timestampParam: options.timestampParam || this.timestampParam,\n\t    policyPort: options.policyPort || this.policyPort,\n\t    pfx: options.pfx || this.pfx,\n\t    key: options.key || this.key,\n\t    passphrase: options.passphrase || this.passphrase,\n\t    cert: options.cert || this.cert,\n\t    ca: options.ca || this.ca,\n\t    ciphers: options.ciphers || this.ciphers,\n\t    rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n\t    perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n\t    extraHeaders: options.extraHeaders || this.extraHeaders,\n\t    forceNode: options.forceNode || this.forceNode,\n\t    localAddress: options.localAddress || this.localAddress,\n\t    requestTimeout: options.requestTimeout || this.requestTimeout,\n\t    protocols: options.protocols || void (0)\n\t  });\n\t\n\t  return transport;\n\t};\n\t\n\tfunction clone (obj) {\n\t  var o = {};\n\t  for (var i in obj) {\n\t    if (obj.hasOwnProperty(i)) {\n\t      o[i] = obj[i];\n\t    }\n\t  }\n\t  return o;\n\t}\n\t\n\t/**\n\t * Initializes transport to use and starts probe.\n\t *\n\t * @api private\n\t */\n\tSocket.prototype.open = function () {\n\t  var transport;\n\t  if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n\t    transport = 'websocket';\n\t  } else if (0 === this.transports.length) {\n\t    // Emit error on next tick so it can be listened to\n\t    var self = this;\n\t    setTimeout(function () {\n\t      self.emit('error', 'No transports available');\n\t    }, 0);\n\t    return;\n\t  } else {\n\t    transport = this.transports[0];\n\t  }\n\t  this.readyState = 'opening';\n\t\n\t  // Retry with the next transport if the transport is disabled (jsonp: false)\n\t  try {\n\t    transport = this.createTransport(transport);\n\t  } catch (e) {\n\t    this.transports.shift();\n\t    this.open();\n\t    return;\n\t  }\n\t\n\t  transport.open();\n\t  this.setTransport(transport);\n\t};\n\t\n\t/**\n\t * Sets the current transport. Disables the existing one (if any).\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.setTransport = function (transport) {\n\t\n\t  var self = this;\n\t\n\t  if (this.transport) {\n\t\n\t    this.transport.removeAllListeners();\n\t  }\n\t\n\t  // set up transport\n\t  this.transport = transport;\n\t\n\t  // set up transport listeners\n\t  transport\n\t  .on('drain', function () {\n\t    self.onDrain();\n\t  })\n\t  .on('packet', function (packet) {\n\t    self.onPacket(packet);\n\t  })\n\t  .on('error', function (e) {\n\t    self.onError(e);\n\t  })\n\t  .on('close', function () {\n\t    self.onClose('transport close');\n\t  });\n\t};\n\t\n\t/**\n\t * Probes a transport.\n\t *\n\t * @param {String} transport name\n\t * @api private\n\t */\n\t\n\tSocket.prototype.probe = function (name) {\n\t\n\t  var transport = this.createTransport(name, { probe: 1 });\n\t  var failed = false;\n\t  var self = this;\n\t\n\t  Socket.priorWebsocketSuccess = false;\n\t\n\t  function onTransportOpen () {\n\t    if (self.onlyBinaryUpgrades) {\n\t      var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n\t      failed = failed || upgradeLosesBinary;\n\t    }\n\t    if (failed) return;\n\t\n\t\n\t    transport.send([{ type: 'ping', data: 'probe' }]);\n\t    transport.once('packet', function (msg) {\n\t      if (failed) return;\n\t      if ('pong' === msg.type && 'probe' === msg.data) {\n\t\n\t        self.upgrading = true;\n\t        self.emit('upgrading', transport);\n\t        if (!transport) return;\n\t        Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\t\n\t\n\t        self.transport.pause(function () {\n\t          if (failed) return;\n\t          if ('closed' === self.readyState) return;\n\t\n\t\n\t          cleanup();\n\t\n\t          self.setTransport(transport);\n\t          transport.send([{ type: 'upgrade' }]);\n\t          self.emit('upgrade', transport);\n\t          transport = null;\n\t          self.upgrading = false;\n\t          self.flush();\n\t        });\n\t      } else {\n\t\n\t        var err = new Error('probe error');\n\t        err.transport = transport.name;\n\t        self.emit('upgradeError', err);\n\t      }\n\t    });\n\t  }\n\t\n\t  function freezeTransport () {\n\t    if (failed) return;\n\t\n\t    // Any callback called by transport should be ignored since now\n\t    failed = true;\n\t\n\t    cleanup();\n\t\n\t    transport.close();\n\t    transport = null;\n\t  }\n\t\n\t  // Handle any error that happens while probing\n\t  function onerror (err) {\n\t    var error = new Error('probe error: ' + err);\n\t    error.transport = transport.name;\n\t\n\t    freezeTransport();\n\t\n\t\n\t\n\t    self.emit('upgradeError', error);\n\t  }\n\t\n\t  function onTransportClose () {\n\t    onerror('transport closed');\n\t  }\n\t\n\t  // When the socket is closed while we're probing\n\t  function onclose () {\n\t    onerror('socket closed');\n\t  }\n\t\n\t  // When the socket is upgraded while we're probing\n\t  function onupgrade (to) {\n\t    if (transport && to.name !== transport.name) {\n\t\n\t      freezeTransport();\n\t    }\n\t  }\n\t\n\t  // Remove all listeners on the transport and on self\n\t  function cleanup () {\n\t    transport.removeListener('open', onTransportOpen);\n\t    transport.removeListener('error', onerror);\n\t    transport.removeListener('close', onTransportClose);\n\t    self.removeListener('close', onclose);\n\t    self.removeListener('upgrading', onupgrade);\n\t  }\n\t\n\t  transport.once('open', onTransportOpen);\n\t  transport.once('error', onerror);\n\t  transport.once('close', onTransportClose);\n\t\n\t  this.once('close', onclose);\n\t  this.once('upgrading', onupgrade);\n\t\n\t  transport.open();\n\t};\n\t\n\t/**\n\t * Called when connection is deemed open.\n\t *\n\t * @api public\n\t */\n\t\n\tSocket.prototype.onOpen = function () {\n\t\n\t  this.readyState = 'open';\n\t  Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n\t  this.emit('open');\n\t  this.flush();\n\t\n\t  // we check for `readyState` in case an `open`\n\t  // listener already closed the socket\n\t  if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n\t\n\t    for (var i = 0, l = this.upgrades.length; i < l; i++) {\n\t      this.probe(this.upgrades[i]);\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Handles a packet.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onPacket = function (packet) {\n\t  if ('opening' === this.readyState || 'open' === this.readyState ||\n\t      'closing' === this.readyState) {\n\t\n\t\n\t    this.emit('packet', packet);\n\t\n\t    // Socket is live - any packet counts\n\t    this.emit('heartbeat');\n\t\n\t    switch (packet.type) {\n\t      case 'open':\n\t        this.onHandshake(JSON.parse(packet.data));\n\t        break;\n\t\n\t      case 'pong':\n\t        this.setPing();\n\t        this.emit('pong');\n\t        break;\n\t\n\t      case 'error':\n\t        var err = new Error('server error');\n\t        err.code = packet.data;\n\t        this.onError(err);\n\t        break;\n\t\n\t      case 'message':\n\t        this.emit('data', packet.data);\n\t        this.emit('message', packet.data);\n\t        break;\n\t    }\n\t  } else {\n\t\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon handshake completion.\n\t *\n\t * @param {Object} handshake obj\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onHandshake = function (data) {\n\t  this.emit('handshake', data);\n\t  this.id = data.sid;\n\t  this.transport.query.sid = data.sid;\n\t  this.upgrades = this.filterUpgrades(data.upgrades);\n\t  this.pingInterval = data.pingInterval;\n\t  this.pingTimeout = data.pingTimeout;\n\t  this.onOpen();\n\t  // In case open handler closes socket\n\t  if ('closed' === this.readyState) return;\n\t  this.setPing();\n\t\n\t  // Prolong liveness of socket on heartbeat\n\t  this.removeListener('heartbeat', this.onHeartbeat);\n\t  this.on('heartbeat', this.onHeartbeat);\n\t};\n\t\n\t/**\n\t * Resets ping timeout.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onHeartbeat = function (timeout) {\n\t  clearTimeout(this.pingTimeoutTimer);\n\t  var self = this;\n\t  self.pingTimeoutTimer = setTimeout(function () {\n\t    if ('closed' === self.readyState) return;\n\t    self.onClose('ping timeout');\n\t  }, timeout || (self.pingInterval + self.pingTimeout));\n\t};\n\t\n\t/**\n\t * Pings server every `this.pingInterval` and expects response\n\t * within `this.pingTimeout` or closes connection.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.setPing = function () {\n\t  var self = this;\n\t  clearTimeout(self.pingIntervalTimer);\n\t  self.pingIntervalTimer = setTimeout(function () {\n\t\n\t    self.ping();\n\t    self.onHeartbeat(self.pingTimeout);\n\t  }, self.pingInterval);\n\t};\n\t\n\t/**\n\t* Sends a ping packet.\n\t*\n\t* @api private\n\t*/\n\t\n\tSocket.prototype.ping = function () {\n\t  var self = this;\n\t  this.sendPacket('ping', function () {\n\t    self.emit('ping');\n\t  });\n\t};\n\t\n\t/**\n\t * Called on `drain` event\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onDrain = function () {\n\t  this.writeBuffer.splice(0, this.prevBufferLen);\n\t\n\t  // setting prevBufferLen = 0 is very important\n\t  // for example, when upgrading, upgrade packet is sent over,\n\t  // and a nonzero prevBufferLen could cause problems on `drain`\n\t  this.prevBufferLen = 0;\n\t\n\t  if (0 === this.writeBuffer.length) {\n\t    this.emit('drain');\n\t  } else {\n\t    this.flush();\n\t  }\n\t};\n\t\n\t/**\n\t * Flush write buffers.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.flush = function () {\n\t  if ('closed' !== this.readyState && this.transport.writable &&\n\t    !this.upgrading && this.writeBuffer.length) {\n\t\n\t    this.transport.send(this.writeBuffer);\n\t    // keep track of current length of writeBuffer\n\t    // splice writeBuffer and callbackBuffer on `drain`\n\t    this.prevBufferLen = this.writeBuffer.length;\n\t    this.emit('flush');\n\t  }\n\t};\n\t\n\t/**\n\t * Sends a message.\n\t *\n\t * @param {String} message.\n\t * @param {Function} callback function.\n\t * @param {Object} options.\n\t * @return {Socket} for chaining.\n\t * @api public\n\t */\n\t\n\tSocket.prototype.write =\n\tSocket.prototype.send = function (msg, options, fn) {\n\t  this.sendPacket('message', msg, options, fn);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sends a packet.\n\t *\n\t * @param {String} packet type.\n\t * @param {String} data.\n\t * @param {Object} options.\n\t * @param {Function} callback function.\n\t * @api private\n\t */\n\t\n\tSocket.prototype.sendPacket = function (type, data, options, fn) {\n\t  if ('function' === typeof data) {\n\t    fn = data;\n\t    data = undefined;\n\t  }\n\t\n\t  if ('function' === typeof options) {\n\t    fn = options;\n\t    options = null;\n\t  }\n\t\n\t  if ('closing' === this.readyState || 'closed' === this.readyState) {\n\t    return;\n\t  }\n\t\n\t  options = options || {};\n\t  options.compress = false !== options.compress;\n\t\n\t  var packet = {\n\t    type: type,\n\t    data: data,\n\t    options: options\n\t  };\n\t  this.emit('packetCreate', packet);\n\t  this.writeBuffer.push(packet);\n\t  if (fn) this.once('flush', fn);\n\t  this.flush();\n\t};\n\t\n\t/**\n\t * Closes the connection.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.close = function () {\n\t  if ('opening' === this.readyState || 'open' === this.readyState) {\n\t    this.readyState = 'closing';\n\t\n\t    var self = this;\n\t\n\t    if (this.writeBuffer.length) {\n\t      this.once('drain', function () {\n\t        if (this.upgrading) {\n\t          waitForUpgrade();\n\t        } else {\n\t          close();\n\t        }\n\t      });\n\t    } else if (this.upgrading) {\n\t      waitForUpgrade();\n\t    } else {\n\t      close();\n\t    }\n\t  }\n\t\n\t  function close () {\n\t    self.onClose('forced close');\n\t\n\t    self.transport.close();\n\t  }\n\t\n\t  function cleanupAndClose () {\n\t    self.removeListener('upgrade', cleanupAndClose);\n\t    self.removeListener('upgradeError', cleanupAndClose);\n\t    close();\n\t  }\n\t\n\t  function waitForUpgrade () {\n\t    // wait for upgrade to finish since we can't send packets while pausing a transport\n\t    self.once('upgrade', cleanupAndClose);\n\t    self.once('upgradeError', cleanupAndClose);\n\t  }\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Called upon transport error\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onError = function (err) {\n\t\n\t  Socket.priorWebsocketSuccess = false;\n\t  this.emit('error', err);\n\t  this.onClose('transport error', err);\n\t};\n\t\n\t/**\n\t * Called upon transport close.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onClose = function (reason, desc) {\n\t  if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n\t\n\t    var self = this;\n\t\n\t    // clear timers\n\t    clearTimeout(this.pingIntervalTimer);\n\t    clearTimeout(this.pingTimeoutTimer);\n\t\n\t    // stop event from firing again for transport\n\t    this.transport.removeAllListeners('close');\n\t\n\t    // ensure transport won't stay open\n\t    this.transport.close();\n\t\n\t    // ignore further transport communication\n\t    this.transport.removeAllListeners();\n\t\n\t    // set ready state\n\t    this.readyState = 'closed';\n\t\n\t    // clear session id\n\t    this.id = null;\n\t\n\t    // emit close event\n\t    this.emit('close', reason, desc);\n\t\n\t    // clean buffers after, so users can still\n\t    // grab the buffers on `close` event\n\t    self.writeBuffer = [];\n\t    self.prevBufferLen = 0;\n\t  }\n\t};\n\t\n\t/**\n\t * Filters upgrades, returning only those matching client transports.\n\t *\n\t * @param {Array} server upgrades\n\t * @api private\n\t *\n\t */\n\t\n\tSocket.prototype.filterUpgrades = function (upgrades) {\n\t  var filteredUpgrades = [];\n\t  for (var i = 0, j = upgrades.length; i < j; i++) {\n\t    if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n\t  }\n\t  return filteredUpgrades;\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module dependencies\n\t */\n\t\n\tvar XMLHttpRequest = __webpack_require__(13);\n\tvar XHR = __webpack_require__(15);\n\tvar JSONP = __webpack_require__(30);\n\tvar websocket = __webpack_require__(31);\n\t\n\t/**\n\t * Export transports.\n\t */\n\t\n\texports.polling = polling;\n\texports.websocket = websocket;\n\t\n\t/**\n\t * Polling transport polymorphic constructor.\n\t * Decides on xhr vs jsonp based on feature detection.\n\t *\n\t * @api private\n\t */\n\t\n\tfunction polling (opts) {\n\t  var xhr;\n\t  var xd = false;\n\t  var xs = false;\n\t  var jsonp = false !== opts.jsonp;\n\t\n\t  if (global.location) {\n\t    var isSSL = 'https:' === location.protocol;\n\t    var port = location.port;\n\t\n\t    // some user agents have empty `location.port`\n\t    if (!port) {\n\t      port = isSSL ? 443 : 80;\n\t    }\n\t\n\t    xd = opts.hostname !== location.hostname || port !== opts.port;\n\t    xs = opts.secure !== isSSL;\n\t  }\n\t\n\t  opts.xdomain = xd;\n\t  opts.xscheme = xs;\n\t  xhr = new XMLHttpRequest(opts);\n\t\n\t  if ('open' in xhr && !opts.forceJSONP) {\n\t    return new XHR(opts);\n\t  } else {\n\t    if (!jsonp) throw new Error('JSONP disabled');\n\t    return new JSONP(opts);\n\t  }\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {// browser shim for xmlhttprequest module\n\t\n\tvar hasCORS = __webpack_require__(14);\n\t\n\tmodule.exports = function (opts) {\n\t  var xdomain = opts.xdomain;\n\t\n\t  // scheme must be same when usign XDomainRequest\n\t  // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n\t  var xscheme = opts.xscheme;\n\t\n\t  // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n\t  // https://github.com/Automattic/engine.io-client/pull/217\n\t  var enablesXDR = opts.enablesXDR;\n\t\n\t  // XMLHttpRequest can be disabled on IE\n\t  try {\n\t    if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n\t      return new XMLHttpRequest();\n\t    }\n\t  } catch (e) { }\n\t\n\t  // Use XDomainRequest for IE8 if enablesXDR is true\n\t  // because loading bar keeps flashing when using jsonp-polling\n\t  // https://github.com/yujiosaka/socke.io-ie8-loading-example\n\t  try {\n\t    if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n\t      return new XDomainRequest();\n\t    }\n\t  } catch (e) { }\n\t\n\t  if (!xdomain) {\n\t    try {\n\t      return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n\t    } catch (e) { }\n\t  }\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n\t\n\t/**\n\t * Module exports.\n\t *\n\t * Logic borrowed from Modernizr:\n\t *\n\t *   - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n\t */\n\t\n\ttry {\n\t  module.exports = typeof XMLHttpRequest !== 'undefined' &&\n\t    'withCredentials' in new XMLHttpRequest();\n\t} catch (err) {\n\t  // if XMLHttp support is disabled in IE then it will throw\n\t  // when trying to create\n\t  module.exports = false;\n\t}\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module requirements.\n\t */\n\t\n\tvar XMLHttpRequest = __webpack_require__(13);\n\tvar Polling = __webpack_require__(16);\n\tvar Emitter = __webpack_require__(5);\n\tvar inherit = __webpack_require__(28);\n\tvar debug = __webpack_require__(3)('engine.io-client:polling-xhr');\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = XHR;\n\tmodule.exports.Request = Request;\n\t\n\t/**\n\t * Empty function\n\t */\n\t\n\tfunction empty () {}\n\t\n\t/**\n\t * XHR Polling constructor.\n\t *\n\t * @param {Object} opts\n\t * @api public\n\t */\n\t\n\tfunction XHR (opts) {\n\t  Polling.call(this, opts);\n\t  this.requestTimeout = opts.requestTimeout;\n\t  this.extraHeaders = opts.extraHeaders;\n\t\n\t  if (global.location) {\n\t    var isSSL = 'https:' === location.protocol;\n\t    var port = location.port;\n\t\n\t    // some user agents have empty `location.port`\n\t    if (!port) {\n\t      port = isSSL ? 443 : 80;\n\t    }\n\t\n\t    this.xd = opts.hostname !== global.location.hostname ||\n\t      port !== opts.port;\n\t    this.xs = opts.secure !== isSSL;\n\t  }\n\t}\n\t\n\t/**\n\t * Inherits from Polling.\n\t */\n\t\n\tinherit(XHR, Polling);\n\t\n\t/**\n\t * XHR supports binary\n\t */\n\t\n\tXHR.prototype.supportsBinary = true;\n\t\n\t/**\n\t * Creates a request.\n\t *\n\t * @param {String} method\n\t * @api private\n\t */\n\t\n\tXHR.prototype.request = function (opts) {\n\t  opts = opts || {};\n\t  opts.uri = this.uri();\n\t  opts.xd = this.xd;\n\t  opts.xs = this.xs;\n\t  opts.agent = this.agent || false;\n\t  opts.supportsBinary = this.supportsBinary;\n\t  opts.enablesXDR = this.enablesXDR;\n\t\n\t  // SSL options for Node.js client\n\t  opts.pfx = this.pfx;\n\t  opts.key = this.key;\n\t  opts.passphrase = this.passphrase;\n\t  opts.cert = this.cert;\n\t  opts.ca = this.ca;\n\t  opts.ciphers = this.ciphers;\n\t  opts.rejectUnauthorized = this.rejectUnauthorized;\n\t  opts.requestTimeout = this.requestTimeout;\n\t\n\t  // other options for Node.js client\n\t  opts.extraHeaders = this.extraHeaders;\n\t\n\t  return new Request(opts);\n\t};\n\t\n\t/**\n\t * Sends data.\n\t *\n\t * @param {String} data to send.\n\t * @param {Function} called upon flush.\n\t * @api private\n\t */\n\t\n\tXHR.prototype.doWrite = function (data, fn) {\n\t  var isBinary = typeof data !== 'string' && data !== undefined;\n\t  var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n\t  var self = this;\n\t  req.on('success', fn);\n\t  req.on('error', function (err) {\n\t    self.onError('xhr post error', err);\n\t  });\n\t  this.sendXhr = req;\n\t};\n\t\n\t/**\n\t * Starts a poll cycle.\n\t *\n\t * @api private\n\t */\n\t\n\tXHR.prototype.doPoll = function () {\n\t\n\t  var req = this.request();\n\t  var self = this;\n\t  req.on('data', function (data) {\n\t    self.onData(data);\n\t  });\n\t  req.on('error', function (err) {\n\t    self.onError('xhr poll error', err);\n\t  });\n\t  this.pollXhr = req;\n\t};\n\t\n\t/**\n\t * Request constructor\n\t *\n\t * @param {Object} options\n\t * @api public\n\t */\n\t\n\tfunction Request (opts) {\n\t  this.method = opts.method || 'GET';\n\t  this.uri = opts.uri;\n\t  this.xd = !!opts.xd;\n\t  this.xs = !!opts.xs;\n\t  this.async = false !== opts.async;\n\t  this.data = undefined !== opts.data ? opts.data : null;\n\t  this.agent = opts.agent;\n\t  this.isBinary = opts.isBinary;\n\t  this.supportsBinary = opts.supportsBinary;\n\t  this.enablesXDR = opts.enablesXDR;\n\t  this.requestTimeout = opts.requestTimeout;\n\t\n\t  // SSL options for Node.js client\n\t  this.pfx = opts.pfx;\n\t  this.key = opts.key;\n\t  this.passphrase = opts.passphrase;\n\t  this.cert = opts.cert;\n\t  this.ca = opts.ca;\n\t  this.ciphers = opts.ciphers;\n\t  this.rejectUnauthorized = opts.rejectUnauthorized;\n\t\n\t  // other options for Node.js client\n\t  this.extraHeaders = opts.extraHeaders;\n\t\n\t  this.create();\n\t}\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Request.prototype);\n\t\n\t/**\n\t * Creates the XHR object and sends the request.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.create = function () {\n\t  var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\t\n\t  // SSL options for Node.js client\n\t  opts.pfx = this.pfx;\n\t  opts.key = this.key;\n\t  opts.passphrase = this.passphrase;\n\t  opts.cert = this.cert;\n\t  opts.ca = this.ca;\n\t  opts.ciphers = this.ciphers;\n\t  opts.rejectUnauthorized = this.rejectUnauthorized;\n\t\n\t  var xhr = this.xhr = new XMLHttpRequest(opts);\n\t  var self = this;\n\t\n\t  try {\n\t\n\t    xhr.open(this.method, this.uri, this.async);\n\t    try {\n\t      if (this.extraHeaders) {\n\t        xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n\t        for (var i in this.extraHeaders) {\n\t          if (this.extraHeaders.hasOwnProperty(i)) {\n\t            xhr.setRequestHeader(i, this.extraHeaders[i]);\n\t          }\n\t        }\n\t      }\n\t    } catch (e) {}\n\t\n\t    if ('POST' === this.method) {\n\t      try {\n\t        if (this.isBinary) {\n\t          xhr.setRequestHeader('Content-type', 'application/octet-stream');\n\t        } else {\n\t          xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n\t        }\n\t      } catch (e) {}\n\t    }\n\t\n\t    try {\n\t      xhr.setRequestHeader('Accept', '*/*');\n\t    } catch (e) {}\n\t\n\t    // ie6 check\n\t    if ('withCredentials' in xhr) {\n\t      xhr.withCredentials = true;\n\t    }\n\t\n\t    if (this.requestTimeout) {\n\t      xhr.timeout = this.requestTimeout;\n\t    }\n\t\n\t    if (this.hasXDR()) {\n\t      xhr.onload = function () {\n\t        self.onLoad();\n\t      };\n\t      xhr.onerror = function () {\n\t        self.onError(xhr.responseText);\n\t      };\n\t    } else {\n\t      xhr.onreadystatechange = function () {\n\t        if (xhr.readyState === 2) {\n\t          try {\n\t            var contentType = xhr.getResponseHeader('Content-Type');\n\t            if (self.supportsBinary && contentType === 'application/octet-stream') {\n\t              xhr.responseType = 'arraybuffer';\n\t            }\n\t          } catch (e) {}\n\t        }\n\t        if (4 !== xhr.readyState) return;\n\t        if (200 === xhr.status || 1223 === xhr.status) {\n\t          self.onLoad();\n\t        } else {\n\t          // make sure the `error` event handler that's user-set\n\t          // does not throw in the same tick and gets caught here\n\t          setTimeout(function () {\n\t            self.onError(xhr.status);\n\t          }, 0);\n\t        }\n\t      };\n\t    }\n\t\n\t\n\t    xhr.send(this.data);\n\t  } catch (e) {\n\t    // Need to defer since .create() is called directly fhrom the constructor\n\t    // and thus the 'error' event can only be only bound *after* this exception\n\t    // occurs.  Therefore, also, we cannot throw here at all.\n\t    setTimeout(function () {\n\t      self.onError(e);\n\t    }, 0);\n\t    return;\n\t  }\n\t\n\t  if (global.document) {\n\t    this.index = Request.requestsCount++;\n\t    Request.requests[this.index] = this;\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon successful response.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.onSuccess = function () {\n\t  this.emit('success');\n\t  this.cleanup();\n\t};\n\t\n\t/**\n\t * Called if we have data.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.onData = function (data) {\n\t  this.emit('data', data);\n\t  this.onSuccess();\n\t};\n\t\n\t/**\n\t * Called upon error.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.onError = function (err) {\n\t  this.emit('error', err);\n\t  this.cleanup(true);\n\t};\n\t\n\t/**\n\t * Cleans up house.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.cleanup = function (fromError) {\n\t  if ('undefined' === typeof this.xhr || null === this.xhr) {\n\t    return;\n\t  }\n\t  // xmlhttprequest\n\t  if (this.hasXDR()) {\n\t    this.xhr.onload = this.xhr.onerror = empty;\n\t  } else {\n\t    this.xhr.onreadystatechange = empty;\n\t  }\n\t\n\t  if (fromError) {\n\t    try {\n\t      this.xhr.abort();\n\t    } catch (e) {}\n\t  }\n\t\n\t  if (global.document) {\n\t    delete Request.requests[this.index];\n\t  }\n\t\n\t  this.xhr = null;\n\t};\n\t\n\t/**\n\t * Called upon load.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.onLoad = function () {\n\t  var data;\n\t  try {\n\t    var contentType;\n\t    try {\n\t      contentType = this.xhr.getResponseHeader('Content-Type');\n\t    } catch (e) {}\n\t    if (contentType === 'application/octet-stream') {\n\t      data = this.xhr.response || this.xhr.responseText;\n\t    } else {\n\t      data = this.xhr.responseText;\n\t    }\n\t  } catch (e) {\n\t    this.onError(e);\n\t  }\n\t  if (null != data) {\n\t    this.onData(data);\n\t  }\n\t};\n\t\n\t/**\n\t * Check if it has XDomainRequest.\n\t *\n\t * @api private\n\t */\n\t\n\tRequest.prototype.hasXDR = function () {\n\t  return 'undefined' !== typeof global.XDomainRequest && !this.xs && this.enablesXDR;\n\t};\n\t\n\t/**\n\t * Aborts the request.\n\t *\n\t * @api public\n\t */\n\t\n\tRequest.prototype.abort = function () {\n\t  this.cleanup();\n\t};\n\t\n\t/**\n\t * Aborts pending requests when unloading the window. This is needed to prevent\n\t * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n\t * emitted.\n\t */\n\t\n\tRequest.requestsCount = 0;\n\tRequest.requests = {};\n\t\n\tif (global.document) {\n\t  if (global.attachEvent) {\n\t    global.attachEvent('onunload', unloadHandler);\n\t  } else if (global.addEventListener) {\n\t    global.addEventListener('beforeunload', unloadHandler, false);\n\t  }\n\t}\n\t\n\tfunction unloadHandler () {\n\t  for (var i in Request.requests) {\n\t    if (Request.requests.hasOwnProperty(i)) {\n\t      Request.requests[i].abort();\n\t    }\n\t  }\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar Transport = __webpack_require__(17);\n\tvar parseqs = __webpack_require__(27);\n\tvar parser = __webpack_require__(18);\n\tvar inherit = __webpack_require__(28);\n\tvar yeast = __webpack_require__(29);\n\tvar debug = __webpack_require__(3)('engine.io-client:polling');\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = Polling;\n\t\n\t/**\n\t * Is XHR2 supported?\n\t */\n\t\n\tvar hasXHR2 = (function () {\n\t  var XMLHttpRequest = __webpack_require__(13);\n\t  var xhr = new XMLHttpRequest({ xdomain: false });\n\t  return null != xhr.responseType;\n\t})();\n\t\n\t/**\n\t * Polling interface.\n\t *\n\t * @param {Object} opts\n\t * @api private\n\t */\n\t\n\tfunction Polling (opts) {\n\t  var forceBase64 = (opts && opts.forceBase64);\n\t  if (!hasXHR2 || forceBase64) {\n\t    this.supportsBinary = false;\n\t  }\n\t  Transport.call(this, opts);\n\t}\n\t\n\t/**\n\t * Inherits from Transport.\n\t */\n\t\n\tinherit(Polling, Transport);\n\t\n\t/**\n\t * Transport name.\n\t */\n\t\n\tPolling.prototype.name = 'polling';\n\t\n\t/**\n\t * Opens the socket (triggers polling). We write a PING message to determine\n\t * when the transport is open.\n\t *\n\t * @api private\n\t */\n\t\n\tPolling.prototype.doOpen = function () {\n\t  this.poll();\n\t};\n\t\n\t/**\n\t * Pauses polling.\n\t *\n\t * @param {Function} callback upon buffers are flushed and transport is paused\n\t * @api private\n\t */\n\t\n\tPolling.prototype.pause = function (onPause) {\n\t  var self = this;\n\t\n\t  this.readyState = 'pausing';\n\t\n\t  function pause () {\n\t\n\t    self.readyState = 'paused';\n\t    onPause();\n\t  }\n\t\n\t  if (this.polling || !this.writable) {\n\t    var total = 0;\n\t\n\t    if (this.polling) {\n\t\n\t      total++;\n\t      this.once('pollComplete', function () {\n\t\n\t        --total || pause();\n\t      });\n\t    }\n\t\n\t    if (!this.writable) {\n\t\n\t      total++;\n\t      this.once('drain', function () {\n\t\n\t        --total || pause();\n\t      });\n\t    }\n\t  } else {\n\t    pause();\n\t  }\n\t};\n\t\n\t/**\n\t * Starts polling cycle.\n\t *\n\t * @api public\n\t */\n\t\n\tPolling.prototype.poll = function () {\n\t\n\t  this.polling = true;\n\t  this.doPoll();\n\t  this.emit('poll');\n\t};\n\t\n\t/**\n\t * Overloads onData to detect payloads.\n\t *\n\t * @api private\n\t */\n\t\n\tPolling.prototype.onData = function (data) {\n\t  var self = this;\n\t\n\t  var callback = function (packet, index, total) {\n\t    // if its the first message we consider the transport open\n\t    if ('opening' === self.readyState) {\n\t      self.onOpen();\n\t    }\n\t\n\t    // if its a close packet, we close the ongoing requests\n\t    if ('close' === packet.type) {\n\t      self.onClose();\n\t      return false;\n\t    }\n\t\n\t    // otherwise bypass onData and handle the message\n\t    self.onPacket(packet);\n\t  };\n\t\n\t  // decode payload\n\t  parser.decodePayload(data, this.socket.binaryType, callback);\n\t\n\t  // if an event did not trigger closing\n\t  if ('closed' !== this.readyState) {\n\t    // if we got data we're not polling\n\t    this.polling = false;\n\t    this.emit('pollComplete');\n\t\n\t    if ('open' === this.readyState) {\n\t      this.poll();\n\t    } else {\n\t\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * For polling, send a close packet.\n\t *\n\t * @api private\n\t */\n\t\n\tPolling.prototype.doClose = function () {\n\t  var self = this;\n\t\n\t  function close () {\n\t\n\t    self.write([{ type: 'close' }]);\n\t  }\n\t\n\t  if ('open' === this.readyState) {\n\t\n\t    close();\n\t  } else {\n\t    // in case we're trying to close while\n\t    // handshaking is in progress (GH-164)\n\t\n\t    this.once('open', close);\n\t  }\n\t};\n\t\n\t/**\n\t * Writes a packets payload.\n\t *\n\t * @param {Array} data packets\n\t * @param {Function} drain callback\n\t * @api private\n\t */\n\t\n\tPolling.prototype.write = function (packets) {\n\t  var self = this;\n\t  this.writable = false;\n\t  var callbackfn = function () {\n\t    self.writable = true;\n\t    self.emit('drain');\n\t  };\n\t\n\t  parser.encodePayload(packets, this.supportsBinary, function (data) {\n\t    self.doWrite(data, callbackfn);\n\t  });\n\t};\n\t\n\t/**\n\t * Generates uri for connection.\n\t *\n\t * @api private\n\t */\n\t\n\tPolling.prototype.uri = function () {\n\t  var query = this.query || {};\n\t  var schema = this.secure ? 'https' : 'http';\n\t  var port = '';\n\t\n\t  // cache busting is forced\n\t  if (false !== this.timestampRequests) {\n\t    query[this.timestampParam] = yeast();\n\t  }\n\t\n\t  if (!this.supportsBinary && !query.sid) {\n\t    query.b64 = 1;\n\t  }\n\t\n\t  query = parseqs.encode(query);\n\t\n\t  // avoid port if default for schema\n\t  if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n\t     ('http' === schema && Number(this.port) !== 80))) {\n\t    port = ':' + this.port;\n\t  }\n\t\n\t  // prepend ? to query\n\t  if (query.length) {\n\t    query = '?' + query;\n\t  }\n\t\n\t  var ipv6 = this.hostname.indexOf(':') !== -1;\n\t  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n\t};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar parser = __webpack_require__(18);\n\tvar Emitter = __webpack_require__(5);\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = Transport;\n\t\n\t/**\n\t * Transport abstract constructor.\n\t *\n\t * @param {Object} options.\n\t * @api private\n\t */\n\t\n\tfunction Transport (opts) {\n\t  this.path = opts.path;\n\t  this.hostname = opts.hostname;\n\t  this.port = opts.port;\n\t  this.secure = opts.secure;\n\t  this.query = opts.query;\n\t  this.timestampParam = opts.timestampParam;\n\t  this.timestampRequests = opts.timestampRequests;\n\t  this.readyState = '';\n\t  this.agent = opts.agent || false;\n\t  this.socket = opts.socket;\n\t  this.enablesXDR = opts.enablesXDR;\n\t\n\t  // SSL options for Node.js client\n\t  this.pfx = opts.pfx;\n\t  this.key = opts.key;\n\t  this.passphrase = opts.passphrase;\n\t  this.cert = opts.cert;\n\t  this.ca = opts.ca;\n\t  this.ciphers = opts.ciphers;\n\t  this.rejectUnauthorized = opts.rejectUnauthorized;\n\t  this.forceNode = opts.forceNode;\n\t\n\t  // other options for Node.js client\n\t  this.extraHeaders = opts.extraHeaders;\n\t  this.localAddress = opts.localAddress;\n\t}\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Transport.prototype);\n\t\n\t/**\n\t * Emits an error.\n\t *\n\t * @param {String} str\n\t * @return {Transport} for chaining\n\t * @api public\n\t */\n\t\n\tTransport.prototype.onError = function (msg, desc) {\n\t  var err = new Error(msg);\n\t  err.type = 'TransportError';\n\t  err.description = desc;\n\t  this.emit('error', err);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Opens the transport.\n\t *\n\t * @api public\n\t */\n\t\n\tTransport.prototype.open = function () {\n\t  if ('closed' === this.readyState || '' === this.readyState) {\n\t    this.readyState = 'opening';\n\t    this.doOpen();\n\t  }\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Closes the transport.\n\t *\n\t * @api private\n\t */\n\t\n\tTransport.prototype.close = function () {\n\t  if ('opening' === this.readyState || 'open' === this.readyState) {\n\t    this.doClose();\n\t    this.onClose();\n\t  }\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sends multiple packets.\n\t *\n\t * @param {Array} packets\n\t * @api private\n\t */\n\t\n\tTransport.prototype.send = function (packets) {\n\t  if ('open' === this.readyState) {\n\t    this.write(packets);\n\t  } else {\n\t    throw new Error('Transport not open');\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon open\n\t *\n\t * @api private\n\t */\n\t\n\tTransport.prototype.onOpen = function () {\n\t  this.readyState = 'open';\n\t  this.writable = true;\n\t  this.emit('open');\n\t};\n\t\n\t/**\n\t * Called with data.\n\t *\n\t * @param {String} data\n\t * @api private\n\t */\n\t\n\tTransport.prototype.onData = function (data) {\n\t  var packet = parser.decodePacket(data, this.socket.binaryType);\n\t  this.onPacket(packet);\n\t};\n\t\n\t/**\n\t * Called with a decoded packet.\n\t */\n\t\n\tTransport.prototype.onPacket = function (packet) {\n\t  this.emit('packet', packet);\n\t};\n\t\n\t/**\n\t * Called upon close.\n\t *\n\t * @api private\n\t */\n\t\n\tTransport.prototype.onClose = function () {\n\t  this.readyState = 'closed';\n\t  this.emit('close');\n\t};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module dependencies.\n\t */\n\t\n\tvar keys = __webpack_require__(19);\n\tvar hasBinary = __webpack_require__(20);\n\tvar sliceBuffer = __webpack_require__(21);\n\tvar after = __webpack_require__(22);\n\tvar utf8 = __webpack_require__(23);\n\t\n\tvar base64encoder;\n\tif (global && global.ArrayBuffer) {\n\t  base64encoder = __webpack_require__(25);\n\t}\n\t\n\t/**\n\t * Check if we are running an android browser. That requires us to use\n\t * ArrayBuffer with polling transports...\n\t *\n\t * http://ghinda.net/jpeg-blob-ajax-android/\n\t */\n\t\n\tvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\t\n\t/**\n\t * Check if we are running in PhantomJS.\n\t * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n\t * https://github.com/ariya/phantomjs/issues/11395\n\t * @type boolean\n\t */\n\tvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\t\n\t/**\n\t * When true, avoids using Blobs to encode payloads.\n\t * @type boolean\n\t */\n\tvar dontSendBlobs = isAndroid || isPhantomJS;\n\t\n\t/**\n\t * Current protocol version.\n\t */\n\t\n\texports.protocol = 3;\n\t\n\t/**\n\t * Packet types.\n\t */\n\t\n\tvar packets = exports.packets = {\n\t    open:     0    // non-ws\n\t  , close:    1    // non-ws\n\t  , ping:     2\n\t  , pong:     3\n\t  , message:  4\n\t  , upgrade:  5\n\t  , noop:     6\n\t};\n\t\n\tvar packetslist = keys(packets);\n\t\n\t/**\n\t * Premade error packet.\n\t */\n\t\n\tvar err = { type: 'error', data: 'parser error' };\n\t\n\t/**\n\t * Create a blob api even for blob builder when vendor prefixes exist\n\t */\n\t\n\tvar Blob = __webpack_require__(26);\n\t\n\t/**\n\t * Encodes a packet.\n\t *\n\t *     <packet type id> [ <data> ]\n\t *\n\t * Example:\n\t *\n\t *     5hello world\n\t *     3\n\t *     4\n\t *\n\t * Binary is encoded in an identical principle\n\t *\n\t * @api private\n\t */\n\t\n\texports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n\t  if (typeof supportsBinary === 'function') {\n\t    callback = supportsBinary;\n\t    supportsBinary = false;\n\t  }\n\t\n\t  if (typeof utf8encode === 'function') {\n\t    callback = utf8encode;\n\t    utf8encode = null;\n\t  }\n\t\n\t  var data = (packet.data === undefined)\n\t    ? undefined\n\t    : packet.data.buffer || packet.data;\n\t\n\t  if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n\t    return encodeArrayBuffer(packet, supportsBinary, callback);\n\t  } else if (Blob && data instanceof global.Blob) {\n\t    return encodeBlob(packet, supportsBinary, callback);\n\t  }\n\t\n\t  // might be an object with { base64: true, data: dataAsBase64String }\n\t  if (data && data.base64) {\n\t    return encodeBase64Object(packet, callback);\n\t  }\n\t\n\t  // Sending data as a utf-8 string\n\t  var encoded = packets[packet.type];\n\t\n\t  // data fragment is optional\n\t  if (undefined !== packet.data) {\n\t    encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n\t  }\n\t\n\t  return callback('' + encoded);\n\t\n\t};\n\t\n\tfunction encodeBase64Object(packet, callback) {\n\t  // packet data is an object { base64: true, data: dataAsBase64String }\n\t  var message = 'b' + exports.packets[packet.type] + packet.data.data;\n\t  return callback(message);\n\t}\n\t\n\t/**\n\t * Encode packet helpers for binary types\n\t */\n\t\n\tfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n\t  if (!supportsBinary) {\n\t    return exports.encodeBase64Packet(packet, callback);\n\t  }\n\t\n\t  var data = packet.data;\n\t  var contentArray = new Uint8Array(data);\n\t  var resultBuffer = new Uint8Array(1 + data.byteLength);\n\t\n\t  resultBuffer[0] = packets[packet.type];\n\t  for (var i = 0; i < contentArray.length; i++) {\n\t    resultBuffer[i+1] = contentArray[i];\n\t  }\n\t\n\t  return callback(resultBuffer.buffer);\n\t}\n\t\n\tfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n\t  if (!supportsBinary) {\n\t    return exports.encodeBase64Packet(packet, callback);\n\t  }\n\t\n\t  var fr = new FileReader();\n\t  fr.onload = function() {\n\t    packet.data = fr.result;\n\t    exports.encodePacket(packet, supportsBinary, true, callback);\n\t  };\n\t  return fr.readAsArrayBuffer(packet.data);\n\t}\n\t\n\tfunction encodeBlob(packet, supportsBinary, callback) {\n\t  if (!supportsBinary) {\n\t    return exports.encodeBase64Packet(packet, callback);\n\t  }\n\t\n\t  if (dontSendBlobs) {\n\t    return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n\t  }\n\t\n\t  var length = new Uint8Array(1);\n\t  length[0] = packets[packet.type];\n\t  var blob = new Blob([length.buffer, packet.data]);\n\t\n\t  return callback(blob);\n\t}\n\t\n\t/**\n\t * Encodes a packet with binary data in a base64 string\n\t *\n\t * @param {Object} packet, has `type` and `data`\n\t * @return {String} base64 encoded message\n\t */\n\t\n\texports.encodeBase64Packet = function(packet, callback) {\n\t  var message = 'b' + exports.packets[packet.type];\n\t  if (Blob && packet.data instanceof global.Blob) {\n\t    var fr = new FileReader();\n\t    fr.onload = function() {\n\t      var b64 = fr.result.split(',')[1];\n\t      callback(message + b64);\n\t    };\n\t    return fr.readAsDataURL(packet.data);\n\t  }\n\t\n\t  var b64data;\n\t  try {\n\t    b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n\t  } catch (e) {\n\t    // iPhone Safari doesn't let you apply with typed arrays\n\t    var typed = new Uint8Array(packet.data);\n\t    var basic = new Array(typed.length);\n\t    for (var i = 0; i < typed.length; i++) {\n\t      basic[i] = typed[i];\n\t    }\n\t    b64data = String.fromCharCode.apply(null, basic);\n\t  }\n\t  message += global.btoa(b64data);\n\t  return callback(message);\n\t};\n\t\n\t/**\n\t * Decodes a packet. Changes format to Blob if requested.\n\t *\n\t * @return {Object} with `type` and `data` (if any)\n\t * @api private\n\t */\n\t\n\texports.decodePacket = function (data, binaryType, utf8decode) {\n\t  if (data === undefined) {\n\t    return err;\n\t  }\n\t  // String data\n\t  if (typeof data === 'string') {\n\t    if (data.charAt(0) === 'b') {\n\t      return exports.decodeBase64Packet(data.substr(1), binaryType);\n\t    }\n\t\n\t    if (utf8decode) {\n\t      data = tryDecode(data);\n\t      if (data === false) {\n\t        return err;\n\t      }\n\t    }\n\t    var type = data.charAt(0);\n\t\n\t    if (Number(type) != type || !packetslist[type]) {\n\t      return err;\n\t    }\n\t\n\t    if (data.length > 1) {\n\t      return { type: packetslist[type], data: data.substring(1) };\n\t    } else {\n\t      return { type: packetslist[type] };\n\t    }\n\t  }\n\t\n\t  var asArray = new Uint8Array(data);\n\t  var type = asArray[0];\n\t  var rest = sliceBuffer(data, 1);\n\t  if (Blob && binaryType === 'blob') {\n\t    rest = new Blob([rest]);\n\t  }\n\t  return { type: packetslist[type], data: rest };\n\t};\n\t\n\tfunction tryDecode(data) {\n\t  try {\n\t    data = utf8.decode(data, { strict: false });\n\t  } catch (e) {\n\t    return false;\n\t  }\n\t  return data;\n\t}\n\t\n\t/**\n\t * Decodes a packet encoded in a base64 string\n\t *\n\t * @param {String} base64 encoded message\n\t * @return {Object} with `type` and `data` (if any)\n\t */\n\t\n\texports.decodeBase64Packet = function(msg, binaryType) {\n\t  var type = packetslist[msg.charAt(0)];\n\t  if (!base64encoder) {\n\t    return { type: type, data: { base64: true, data: msg.substr(1) } };\n\t  }\n\t\n\t  var data = base64encoder.decode(msg.substr(1));\n\t\n\t  if (binaryType === 'blob' && Blob) {\n\t    data = new Blob([data]);\n\t  }\n\t\n\t  return { type: type, data: data };\n\t};\n\t\n\t/**\n\t * Encodes multiple messages (payload).\n\t *\n\t *     <length>:data\n\t *\n\t * Example:\n\t *\n\t *     11:hello world2:hi\n\t *\n\t * If any contents are binary, they will be encoded as base64 strings. Base64\n\t * encoded strings are marked with a b before the length specifier\n\t *\n\t * @param {Array} packets\n\t * @api private\n\t */\n\t\n\texports.encodePayload = function (packets, supportsBinary, callback) {\n\t  if (typeof supportsBinary === 'function') {\n\t    callback = supportsBinary;\n\t    supportsBinary = null;\n\t  }\n\t\n\t  var isBinary = hasBinary(packets);\n\t\n\t  if (supportsBinary && isBinary) {\n\t    if (Blob && !dontSendBlobs) {\n\t      return exports.encodePayloadAsBlob(packets, callback);\n\t    }\n\t\n\t    return exports.encodePayloadAsArrayBuffer(packets, callback);\n\t  }\n\t\n\t  if (!packets.length) {\n\t    return callback('0:');\n\t  }\n\t\n\t  function setLengthHeader(message) {\n\t    return message.length + ':' + message;\n\t  }\n\t\n\t  function encodeOne(packet, doneCallback) {\n\t    exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n\t      doneCallback(null, setLengthHeader(message));\n\t    });\n\t  }\n\t\n\t  map(packets, encodeOne, function(err, results) {\n\t    return callback(results.join(''));\n\t  });\n\t};\n\t\n\t/**\n\t * Async array map using after\n\t */\n\t\n\tfunction map(ary, each, done) {\n\t  var result = new Array(ary.length);\n\t  var next = after(ary.length, done);\n\t\n\t  var eachWithIndex = function(i, el, cb) {\n\t    each(el, function(error, msg) {\n\t      result[i] = msg;\n\t      cb(error, result);\n\t    });\n\t  };\n\t\n\t  for (var i = 0; i < ary.length; i++) {\n\t    eachWithIndex(i, ary[i], next);\n\t  }\n\t}\n\t\n\t/*\n\t * Decodes data when a payload is maybe expected. Possible binary contents are\n\t * decoded from their base64 representation\n\t *\n\t * @param {String} data, callback method\n\t * @api public\n\t */\n\t\n\texports.decodePayload = function (data, binaryType, callback) {\n\t  if (typeof data !== 'string') {\n\t    return exports.decodePayloadAsBinary(data, binaryType, callback);\n\t  }\n\t\n\t  if (typeof binaryType === 'function') {\n\t    callback = binaryType;\n\t    binaryType = null;\n\t  }\n\t\n\t  var packet;\n\t  if (data === '') {\n\t    // parser error - ignoring payload\n\t    return callback(err, 0, 1);\n\t  }\n\t\n\t  var length = '', n, msg;\n\t\n\t  for (var i = 0, l = data.length; i < l; i++) {\n\t    var chr = data.charAt(i);\n\t\n\t    if (chr !== ':') {\n\t      length += chr;\n\t      continue;\n\t    }\n\t\n\t    if (length === '' || (length != (n = Number(length)))) {\n\t      // parser error - ignoring payload\n\t      return callback(err, 0, 1);\n\t    }\n\t\n\t    msg = data.substr(i + 1, n);\n\t\n\t    if (length != msg.length) {\n\t      // parser error - ignoring payload\n\t      return callback(err, 0, 1);\n\t    }\n\t\n\t    if (msg.length) {\n\t      packet = exports.decodePacket(msg, binaryType, false);\n\t\n\t      if (err.type === packet.type && err.data === packet.data) {\n\t        // parser error in individual packet - ignoring payload\n\t        return callback(err, 0, 1);\n\t      }\n\t\n\t      var ret = callback(packet, i + n, l);\n\t      if (false === ret) return;\n\t    }\n\t\n\t    // advance cursor\n\t    i += n;\n\t    length = '';\n\t  }\n\t\n\t  if (length !== '') {\n\t    // parser error - ignoring payload\n\t    return callback(err, 0, 1);\n\t  }\n\t\n\t};\n\t\n\t/**\n\t * Encodes multiple messages (payload) as binary.\n\t *\n\t * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n\t * 255><data>\n\t *\n\t * Example:\n\t * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n\t *\n\t * @param {Array} packets\n\t * @return {ArrayBuffer} encoded payload\n\t * @api private\n\t */\n\t\n\texports.encodePayloadAsArrayBuffer = function(packets, callback) {\n\t  if (!packets.length) {\n\t    return callback(new ArrayBuffer(0));\n\t  }\n\t\n\t  function encodeOne(packet, doneCallback) {\n\t    exports.encodePacket(packet, true, true, function(data) {\n\t      return doneCallback(null, data);\n\t    });\n\t  }\n\t\n\t  map(packets, encodeOne, function(err, encodedPackets) {\n\t    var totalLength = encodedPackets.reduce(function(acc, p) {\n\t      var len;\n\t      if (typeof p === 'string'){\n\t        len = p.length;\n\t      } else {\n\t        len = p.byteLength;\n\t      }\n\t      return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n\t    }, 0);\n\t\n\t    var resultArray = new Uint8Array(totalLength);\n\t\n\t    var bufferIndex = 0;\n\t    encodedPackets.forEach(function(p) {\n\t      var isString = typeof p === 'string';\n\t      var ab = p;\n\t      if (isString) {\n\t        var view = new Uint8Array(p.length);\n\t        for (var i = 0; i < p.length; i++) {\n\t          view[i] = p.charCodeAt(i);\n\t        }\n\t        ab = view.buffer;\n\t      }\n\t\n\t      if (isString) { // not true binary\n\t        resultArray[bufferIndex++] = 0;\n\t      } else { // true binary\n\t        resultArray[bufferIndex++] = 1;\n\t      }\n\t\n\t      var lenStr = ab.byteLength.toString();\n\t      for (var i = 0; i < lenStr.length; i++) {\n\t        resultArray[bufferIndex++] = parseInt(lenStr[i]);\n\t      }\n\t      resultArray[bufferIndex++] = 255;\n\t\n\t      var view = new Uint8Array(ab);\n\t      for (var i = 0; i < view.length; i++) {\n\t        resultArray[bufferIndex++] = view[i];\n\t      }\n\t    });\n\t\n\t    return callback(resultArray.buffer);\n\t  });\n\t};\n\t\n\t/**\n\t * Encode as Blob\n\t */\n\t\n\texports.encodePayloadAsBlob = function(packets, callback) {\n\t  function encodeOne(packet, doneCallback) {\n\t    exports.encodePacket(packet, true, true, function(encoded) {\n\t      var binaryIdentifier = new Uint8Array(1);\n\t      binaryIdentifier[0] = 1;\n\t      if (typeof encoded === 'string') {\n\t        var view = new Uint8Array(encoded.length);\n\t        for (var i = 0; i < encoded.length; i++) {\n\t          view[i] = encoded.charCodeAt(i);\n\t        }\n\t        encoded = view.buffer;\n\t        binaryIdentifier[0] = 0;\n\t      }\n\t\n\t      var len = (encoded instanceof ArrayBuffer)\n\t        ? encoded.byteLength\n\t        : encoded.size;\n\t\n\t      var lenStr = len.toString();\n\t      var lengthAry = new Uint8Array(lenStr.length + 1);\n\t      for (var i = 0; i < lenStr.length; i++) {\n\t        lengthAry[i] = parseInt(lenStr[i]);\n\t      }\n\t      lengthAry[lenStr.length] = 255;\n\t\n\t      if (Blob) {\n\t        var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n\t        doneCallback(null, blob);\n\t      }\n\t    });\n\t  }\n\t\n\t  map(packets, encodeOne, function(err, results) {\n\t    return callback(new Blob(results));\n\t  });\n\t};\n\t\n\t/*\n\t * Decodes data when a payload is maybe expected. Strings are decoded by\n\t * interpreting each byte as a key code for entries marked to start with 0. See\n\t * description of encodePayloadAsBinary\n\t *\n\t * @param {ArrayBuffer} data, callback method\n\t * @api public\n\t */\n\t\n\texports.decodePayloadAsBinary = function (data, binaryType, callback) {\n\t  if (typeof binaryType === 'function') {\n\t    callback = binaryType;\n\t    binaryType = null;\n\t  }\n\t\n\t  var bufferTail = data;\n\t  var buffers = [];\n\t\n\t  while (bufferTail.byteLength > 0) {\n\t    var tailArray = new Uint8Array(bufferTail);\n\t    var isString = tailArray[0] === 0;\n\t    var msgLength = '';\n\t\n\t    for (var i = 1; ; i++) {\n\t      if (tailArray[i] === 255) break;\n\t\n\t      // 310 = char length of Number.MAX_VALUE\n\t      if (msgLength.length > 310) {\n\t        return callback(err, 0, 1);\n\t      }\n\t\n\t      msgLength += tailArray[i];\n\t    }\n\t\n\t    bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n\t    msgLength = parseInt(msgLength);\n\t\n\t    var msg = sliceBuffer(bufferTail, 0, msgLength);\n\t    if (isString) {\n\t      try {\n\t        msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n\t      } catch (e) {\n\t        // iPhone Safari doesn't let you apply to typed arrays\n\t        var typed = new Uint8Array(msg);\n\t        msg = '';\n\t        for (var i = 0; i < typed.length; i++) {\n\t          msg += String.fromCharCode(typed[i]);\n\t        }\n\t      }\n\t    }\n\t\n\t    buffers.push(msg);\n\t    bufferTail = sliceBuffer(bufferTail, msgLength);\n\t  }\n\t\n\t  var total = buffers.length;\n\t  buffers.forEach(function(buffer, i) {\n\t    callback(exports.decodePacket(buffer, binaryType, true), i, total);\n\t  });\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\n\t\n\t/**\n\t * Gets the keys for an object.\n\t *\n\t * @return {Array} keys\n\t * @api private\n\t */\n\t\n\tmodule.exports = Object.keys || function keys (obj){\n\t  var arr = [];\n\t  var has = Object.prototype.hasOwnProperty;\n\t\n\t  for (var i in obj) {\n\t    if (has.call(obj, i)) {\n\t      arr.push(i);\n\t    }\n\t  }\n\t  return arr;\n\t};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/* global Blob File */\n\t\n\t/*\n\t * Module requirements.\n\t */\n\t\n\tvar isArray = __webpack_require__(7);\n\t\n\tvar toString = Object.prototype.toString;\n\tvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\n\tvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = hasBinary;\n\t\n\t/**\n\t * Checks for binary data.\n\t *\n\t * Supports Buffer, ArrayBuffer, Blob and File.\n\t *\n\t * @param {Object} anything\n\t * @api public\n\t */\n\t\n\tfunction hasBinary (obj) {\n\t  if (!obj || typeof obj !== 'object') {\n\t    return false;\n\t  }\n\t\n\t  if (isArray(obj)) {\n\t    for (var i = 0, l = obj.length; i < l; i++) {\n\t      if (hasBinary(obj[i])) {\n\t        return true;\n\t      }\n\t    }\n\t    return false;\n\t  }\n\t\n\t  if ((typeof global.Buffer === 'function' && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) ||\n\t     (typeof global.ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n\t     (withNativeBlob && obj instanceof Blob) ||\n\t     (withNativeFile && obj instanceof File)\n\t    ) {\n\t    return true;\n\t  }\n\t\n\t  // see: https://github.com/Automattic/has-binary/pull/4\n\t  if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n\t    return hasBinary(obj.toJSON(), true);\n\t  }\n\t\n\t  for (var key in obj) {\n\t    if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n\t      return true;\n\t    }\n\t  }\n\t\n\t  return false;\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * An abstraction for slicing an arraybuffer even when\n\t * ArrayBuffer.prototype.slice is not supported\n\t *\n\t * @api public\n\t */\n\t\n\tmodule.exports = function(arraybuffer, start, end) {\n\t  var bytes = arraybuffer.byteLength;\n\t  start = start || 0;\n\t  end = end || bytes;\n\t\n\t  if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\t\n\t  if (start < 0) { start += bytes; }\n\t  if (end < 0) { end += bytes; }\n\t  if (end > bytes) { end = bytes; }\n\t\n\t  if (start >= bytes || start >= end || bytes === 0) {\n\t    return new ArrayBuffer(0);\n\t  }\n\t\n\t  var abv = new Uint8Array(arraybuffer);\n\t  var result = new Uint8Array(end - start);\n\t  for (var i = start, ii = 0; i < end; i++, ii++) {\n\t    result[ii] = abv[i];\n\t  }\n\t  return result.buffer;\n\t};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = after\n\t\n\tfunction after(count, callback, err_cb) {\n\t    var bail = false\n\t    err_cb = err_cb || noop\n\t    proxy.count = count\n\t\n\t    return (count === 0) ? callback() : proxy\n\t\n\t    function proxy(err, result) {\n\t        if (proxy.count <= 0) {\n\t            throw new Error('after called too many times')\n\t        }\n\t        --proxy.count\n\t\n\t        // after first error, rest are passed to err_cb\n\t        if (err) {\n\t            bail = true\n\t            callback(err)\n\t            // future error callbacks will go to error handler\n\t            callback = err_cb\n\t        } else if (proxy.count === 0 && !bail) {\n\t            callback(null, result)\n\t        }\n\t    }\n\t}\n\t\n\tfunction noop() {}\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module, global) {/*! https://mths.be/utf8js v2.1.2 by @mathias */\n\t;(function(root) {\n\t\n\t\t// Detect free variables `exports`\n\t\tvar freeExports = typeof exports == 'object' && exports;\n\t\n\t\t// Detect free variable `module`\n\t\tvar freeModule = typeof module == 'object' && module &&\n\t\t\tmodule.exports == freeExports && module;\n\t\n\t\t// Detect free variable `global`, from Node.js or Browserified code,\n\t\t// and use it as `root`\n\t\tvar freeGlobal = typeof global == 'object' && global;\n\t\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\t\troot = freeGlobal;\n\t\t}\n\t\n\t\t/*--------------------------------------------------------------------------*/\n\t\n\t\tvar stringFromCharCode = String.fromCharCode;\n\t\n\t\t// Taken from https://mths.be/punycode\n\t\tfunction ucs2decode(string) {\n\t\t\tvar output = [];\n\t\t\tvar counter = 0;\n\t\t\tvar length = string.length;\n\t\t\tvar value;\n\t\t\tvar extra;\n\t\t\twhile (counter < length) {\n\t\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\t\toutput.push(value);\n\t\t\t\t\t\tcounter--;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\toutput.push(value);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\t\n\t\t// Taken from https://mths.be/punycode\n\t\tfunction ucs2encode(array) {\n\t\t\tvar length = array.length;\n\t\t\tvar index = -1;\n\t\t\tvar value;\n\t\t\tvar output = '';\n\t\t\twhile (++index < length) {\n\t\t\t\tvalue = array[index];\n\t\t\t\tif (value > 0xFFFF) {\n\t\t\t\t\tvalue -= 0x10000;\n\t\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t\t}\n\t\t\t\toutput += stringFromCharCode(value);\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\t\n\t\tfunction checkScalarValue(codePoint, strict) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\t\tif (strict) {\n\t\t\t\t\tthrow Error(\n\t\t\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t\t\t' is not a scalar value'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\t/*--------------------------------------------------------------------------*/\n\t\n\t\tfunction createByte(codePoint, shift) {\n\t\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t\t}\n\t\n\t\tfunction encodeCodePoint(codePoint, strict) {\n\t\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\t\treturn stringFromCharCode(codePoint);\n\t\t\t}\n\t\t\tvar symbol = '';\n\t\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t\t}\n\t\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\t\t\tcodePoint = 0xFFFD;\n\t\t\t\t}\n\t\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\t\tsymbol += createByte(codePoint, 6);\n\t\t\t}\n\t\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\t\tsymbol += createByte(codePoint, 6);\n\t\t\t}\n\t\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\t\treturn symbol;\n\t\t}\n\t\n\t\tfunction utf8encode(string, opts) {\n\t\t\topts = opts || {};\n\t\t\tvar strict = false !== opts.strict;\n\t\n\t\t\tvar codePoints = ucs2decode(string);\n\t\t\tvar length = codePoints.length;\n\t\t\tvar index = -1;\n\t\t\tvar codePoint;\n\t\t\tvar byteString = '';\n\t\t\twhile (++index < length) {\n\t\t\t\tcodePoint = codePoints[index];\n\t\t\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t\t\t}\n\t\t\treturn byteString;\n\t\t}\n\t\n\t\t/*--------------------------------------------------------------------------*/\n\t\n\t\tfunction readContinuationByte() {\n\t\t\tif (byteIndex >= byteCount) {\n\t\t\t\tthrow Error('Invalid byte index');\n\t\t\t}\n\t\n\t\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\t\tbyteIndex++;\n\t\n\t\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\t\treturn continuationByte & 0x3F;\n\t\t\t}\n\t\n\t\t\t// If we end up here, it’s not a continuation byte\n\t\t\tthrow Error('Invalid continuation byte');\n\t\t}\n\t\n\t\tfunction decodeSymbol(strict) {\n\t\t\tvar byte1;\n\t\t\tvar byte2;\n\t\t\tvar byte3;\n\t\t\tvar byte4;\n\t\t\tvar codePoint;\n\t\n\t\t\tif (byteIndex > byteCount) {\n\t\t\t\tthrow Error('Invalid byte index');\n\t\t\t}\n\t\n\t\t\tif (byteIndex == byteCount) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Read first byte\n\t\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\t\tbyteIndex++;\n\t\n\t\t\t// 1-byte sequence (no continuation bytes)\n\t\t\tif ((byte1 & 0x80) == 0) {\n\t\t\t\treturn byte1;\n\t\t\t}\n\t\n\t\t\t// 2-byte sequence\n\t\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\t\tbyte2 = readContinuationByte();\n\t\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\t\tif (codePoint >= 0x80) {\n\t\t\t\t\treturn codePoint;\n\t\t\t\t} else {\n\t\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\t\tbyte2 = readContinuationByte();\n\t\t\t\tbyte3 = readContinuationByte();\n\t\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t\t\t} else {\n\t\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\t// 4-byte sequence\n\t\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\t\tbyte2 = readContinuationByte();\n\t\t\t\tbyte3 = readContinuationByte();\n\t\t\t\tbyte4 = readContinuationByte();\n\t\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\t\treturn codePoint;\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tthrow Error('Invalid UTF-8 detected');\n\t\t}\n\t\n\t\tvar byteArray;\n\t\tvar byteCount;\n\t\tvar byteIndex;\n\t\tfunction utf8decode(byteString, opts) {\n\t\t\topts = opts || {};\n\t\t\tvar strict = false !== opts.strict;\n\t\n\t\t\tbyteArray = ucs2decode(byteString);\n\t\t\tbyteCount = byteArray.length;\n\t\t\tbyteIndex = 0;\n\t\t\tvar codePoints = [];\n\t\t\tvar tmp;\n\t\t\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\t\t\tcodePoints.push(tmp);\n\t\t\t}\n\t\t\treturn ucs2encode(codePoints);\n\t\t}\n\t\n\t\t/*--------------------------------------------------------------------------*/\n\t\n\t\tvar utf8 = {\n\t\t\t'version': '2.1.2',\n\t\t\t'encode': utf8encode,\n\t\t\t'decode': utf8decode\n\t\t};\n\t\n\t\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t\t// like the following:\n\t\tif (\n\t\t\ttrue\n\t\t) {\n\t\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n\t\t\t\treturn utf8;\n\t\t\t}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\t\tfreeModule.exports = utf8;\n\t\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\t\tvar object = {};\n\t\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\t\tfor (var key in utf8) {\n\t\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else { // in Rhino or a web browser\n\t\t\troot.utf8 = utf8;\n\t\t}\n\t\n\t}(this));\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(24)(module), (function() { return this; }())))\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(module) {\r\n\t\tif(!module.webpackPolyfill) {\r\n\t\t\tmodule.deprecate = function() {};\r\n\t\t\tmodule.paths = [];\r\n\t\t\t// module.parent = undefined by default\r\n\t\t\tmodule.children = [];\r\n\t\t\tmodule.webpackPolyfill = 1;\r\n\t\t}\r\n\t\treturn module;\r\n\t}\r\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\t/*\n\t * base64-arraybuffer\n\t * https://github.com/niklasvh/base64-arraybuffer\n\t *\n\t * Copyright (c) 2012 Niklas von Hertzen\n\t * Licensed under the MIT license.\n\t */\n\t(function(){\n\t  \"use strict\";\n\t\n\t  var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\t\n\t  // Use a lookup table to find the index.\n\t  var lookup = new Uint8Array(256);\n\t  for (var i = 0; i < chars.length; i++) {\n\t    lookup[chars.charCodeAt(i)] = i;\n\t  }\n\t\n\t  exports.encode = function(arraybuffer) {\n\t    var bytes = new Uint8Array(arraybuffer),\n\t    i, len = bytes.length, base64 = \"\";\n\t\n\t    for (i = 0; i < len; i+=3) {\n\t      base64 += chars[bytes[i] >> 2];\n\t      base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n\t      base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n\t      base64 += chars[bytes[i + 2] & 63];\n\t    }\n\t\n\t    if ((len % 3) === 2) {\n\t      base64 = base64.substring(0, base64.length - 1) + \"=\";\n\t    } else if (len % 3 === 1) {\n\t      base64 = base64.substring(0, base64.length - 2) + \"==\";\n\t    }\n\t\n\t    return base64;\n\t  };\n\t\n\t  exports.decode =  function(base64) {\n\t    var bufferLength = base64.length * 0.75,\n\t    len = base64.length, i, p = 0,\n\t    encoded1, encoded2, encoded3, encoded4;\n\t\n\t    if (base64[base64.length - 1] === \"=\") {\n\t      bufferLength--;\n\t      if (base64[base64.length - 2] === \"=\") {\n\t        bufferLength--;\n\t      }\n\t    }\n\t\n\t    var arraybuffer = new ArrayBuffer(bufferLength),\n\t    bytes = new Uint8Array(arraybuffer);\n\t\n\t    for (i = 0; i < len; i+=4) {\n\t      encoded1 = lookup[base64.charCodeAt(i)];\n\t      encoded2 = lookup[base64.charCodeAt(i+1)];\n\t      encoded3 = lookup[base64.charCodeAt(i+2)];\n\t      encoded4 = lookup[base64.charCodeAt(i+3)];\n\t\n\t      bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n\t      bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n\t      bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n\t    }\n\t\n\t    return arraybuffer;\n\t  };\n\t})();\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Create a blob builder even when vendor prefixes exist\n\t */\n\t\n\tvar BlobBuilder = global.BlobBuilder\n\t  || global.WebKitBlobBuilder\n\t  || global.MSBlobBuilder\n\t  || global.MozBlobBuilder;\n\t\n\t/**\n\t * Check if Blob constructor is supported\n\t */\n\t\n\tvar blobSupported = (function() {\n\t  try {\n\t    var a = new Blob(['hi']);\n\t    return a.size === 2;\n\t  } catch(e) {\n\t    return false;\n\t  }\n\t})();\n\t\n\t/**\n\t * Check if Blob constructor supports ArrayBufferViews\n\t * Fails in Safari 6, so we need to map to ArrayBuffers there.\n\t */\n\t\n\tvar blobSupportsArrayBufferView = blobSupported && (function() {\n\t  try {\n\t    var b = new Blob([new Uint8Array([1,2])]);\n\t    return b.size === 2;\n\t  } catch(e) {\n\t    return false;\n\t  }\n\t})();\n\t\n\t/**\n\t * Check if BlobBuilder is supported\n\t */\n\t\n\tvar blobBuilderSupported = BlobBuilder\n\t  && BlobBuilder.prototype.append\n\t  && BlobBuilder.prototype.getBlob;\n\t\n\t/**\n\t * Helper function that maps ArrayBufferViews to ArrayBuffers\n\t * Used by BlobBuilder constructor and old browsers that didn't\n\t * support it in the Blob constructor.\n\t */\n\t\n\tfunction mapArrayBufferViews(ary) {\n\t  for (var i = 0; i < ary.length; i++) {\n\t    var chunk = ary[i];\n\t    if (chunk.buffer instanceof ArrayBuffer) {\n\t      var buf = chunk.buffer;\n\t\n\t      // if this is a subarray, make a copy so we only\n\t      // include the subarray region from the underlying buffer\n\t      if (chunk.byteLength !== buf.byteLength) {\n\t        var copy = new Uint8Array(chunk.byteLength);\n\t        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n\t        buf = copy.buffer;\n\t      }\n\t\n\t      ary[i] = buf;\n\t    }\n\t  }\n\t}\n\t\n\tfunction BlobBuilderConstructor(ary, options) {\n\t  options = options || {};\n\t\n\t  var bb = new BlobBuilder();\n\t  mapArrayBufferViews(ary);\n\t\n\t  for (var i = 0; i < ary.length; i++) {\n\t    bb.append(ary[i]);\n\t  }\n\t\n\t  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n\t};\n\t\n\tfunction BlobConstructor(ary, options) {\n\t  mapArrayBufferViews(ary);\n\t  return new Blob(ary, options || {});\n\t};\n\t\n\tmodule.exports = (function() {\n\t  if (blobSupported) {\n\t    return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n\t  } else if (blobBuilderSupported) {\n\t    return BlobBuilderConstructor;\n\t  } else {\n\t    return undefined;\n\t  }\n\t})();\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\n\t/**\r\n\t * Compiles a querystring\r\n\t * Returns string representation of the object\r\n\t *\r\n\t * @param {Object}\r\n\t * @api private\r\n\t */\r\n\t\r\n\texports.encode = function (obj) {\r\n\t  var str = '';\r\n\t\r\n\t  for (var i in obj) {\r\n\t    if (obj.hasOwnProperty(i)) {\r\n\t      if (str.length) str += '&';\r\n\t      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n\t    }\r\n\t  }\r\n\t\r\n\t  return str;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Parses a simple querystring into an object\r\n\t *\r\n\t * @param {String} qs\r\n\t * @api private\r\n\t */\r\n\t\r\n\texports.decode = function(qs){\r\n\t  var qry = {};\r\n\t  var pairs = qs.split('&');\r\n\t  for (var i = 0, l = pairs.length; i < l; i++) {\r\n\t    var pair = pairs[i].split('=');\r\n\t    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n\t  }\r\n\t  return qry;\r\n\t};\r\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\n\t\n\tmodule.exports = function(a, b){\n\t  var fn = function(){};\n\t  fn.prototype = b.prototype;\n\t  a.prototype = new fn;\n\t  a.prototype.constructor = a;\n\t};\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n\t  , length = 64\n\t  , map = {}\n\t  , seed = 0\n\t  , i = 0\n\t  , prev;\n\t\n\t/**\n\t * Return a string representing the specified number.\n\t *\n\t * @param {Number} num The number to convert.\n\t * @returns {String} The string representation of the number.\n\t * @api public\n\t */\n\tfunction encode(num) {\n\t  var encoded = '';\n\t\n\t  do {\n\t    encoded = alphabet[num % length] + encoded;\n\t    num = Math.floor(num / length);\n\t  } while (num > 0);\n\t\n\t  return encoded;\n\t}\n\t\n\t/**\n\t * Return the integer value specified by the given string.\n\t *\n\t * @param {String} str The string to convert.\n\t * @returns {Number} The integer value represented by the string.\n\t * @api public\n\t */\n\tfunction decode(str) {\n\t  var decoded = 0;\n\t\n\t  for (i = 0; i < str.length; i++) {\n\t    decoded = decoded * length + map[str.charAt(i)];\n\t  }\n\t\n\t  return decoded;\n\t}\n\t\n\t/**\n\t * Yeast: A tiny growing id generator.\n\t *\n\t * @returns {String} A unique id.\n\t * @api public\n\t */\n\tfunction yeast() {\n\t  var now = encode(+new Date());\n\t\n\t  if (now !== prev) return seed = 0, prev = now;\n\t  return now +'.'+ encode(seed++);\n\t}\n\t\n\t//\n\t// Map each character to its index.\n\t//\n\tfor (; i < length; i++) map[alphabet[i]] = i;\n\t\n\t//\n\t// Expose the `yeast`, `encode` and `decode` functions.\n\t//\n\tyeast.encode = encode;\n\tyeast.decode = decode;\n\tmodule.exports = yeast;\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {\n\t/**\n\t * Module requirements.\n\t */\n\t\n\tvar Polling = __webpack_require__(16);\n\tvar inherit = __webpack_require__(28);\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = JSONPPolling;\n\t\n\t/**\n\t * Cached regular expressions.\n\t */\n\t\n\tvar rNewline = /\\n/g;\n\tvar rEscapedNewline = /\\\\n/g;\n\t\n\t/**\n\t * Global JSONP callbacks.\n\t */\n\t\n\tvar callbacks;\n\t\n\t/**\n\t * Noop.\n\t */\n\t\n\tfunction empty () { }\n\t\n\t/**\n\t * JSONP Polling constructor.\n\t *\n\t * @param {Object} opts.\n\t * @api public\n\t */\n\t\n\tfunction JSONPPolling (opts) {\n\t  Polling.call(this, opts);\n\t\n\t  this.query = this.query || {};\n\t\n\t  // define global callbacks array if not present\n\t  // we do this here (lazily) to avoid unneeded global pollution\n\t  if (!callbacks) {\n\t    // we need to consider multiple engines in the same page\n\t    if (!global.___eio) global.___eio = [];\n\t    callbacks = global.___eio;\n\t  }\n\t\n\t  // callback identifier\n\t  this.index = callbacks.length;\n\t\n\t  // add callback to jsonp global\n\t  var self = this;\n\t  callbacks.push(function (msg) {\n\t    self.onData(msg);\n\t  });\n\t\n\t  // append to query string\n\t  this.query.j = this.index;\n\t\n\t  // prevent spurious errors from being emitted when the window is unloaded\n\t  if (global.document && global.addEventListener) {\n\t    global.addEventListener('beforeunload', function () {\n\t      if (self.script) self.script.onerror = empty;\n\t    }, false);\n\t  }\n\t}\n\t\n\t/**\n\t * Inherits from Polling.\n\t */\n\t\n\tinherit(JSONPPolling, Polling);\n\t\n\t/*\n\t * JSONP only supports binary as base64 encoded strings\n\t */\n\t\n\tJSONPPolling.prototype.supportsBinary = false;\n\t\n\t/**\n\t * Closes the socket.\n\t *\n\t * @api private\n\t */\n\t\n\tJSONPPolling.prototype.doClose = function () {\n\t  if (this.script) {\n\t    this.script.parentNode.removeChild(this.script);\n\t    this.script = null;\n\t  }\n\t\n\t  if (this.form) {\n\t    this.form.parentNode.removeChild(this.form);\n\t    this.form = null;\n\t    this.iframe = null;\n\t  }\n\t\n\t  Polling.prototype.doClose.call(this);\n\t};\n\t\n\t/**\n\t * Starts a poll cycle.\n\t *\n\t * @api private\n\t */\n\t\n\tJSONPPolling.prototype.doPoll = function () {\n\t  var self = this;\n\t  var script = document.createElement('script');\n\t\n\t  if (this.script) {\n\t    this.script.parentNode.removeChild(this.script);\n\t    this.script = null;\n\t  }\n\t\n\t  script.async = true;\n\t  script.src = this.uri();\n\t  script.onerror = function (e) {\n\t    self.onError('jsonp poll error', e);\n\t  };\n\t\n\t  var insertAt = document.getElementsByTagName('script')[0];\n\t  if (insertAt) {\n\t    insertAt.parentNode.insertBefore(script, insertAt);\n\t  } else {\n\t    (document.head || document.body).appendChild(script);\n\t  }\n\t  this.script = script;\n\t\n\t  var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\t\n\t  if (isUAgecko) {\n\t    setTimeout(function () {\n\t      var iframe = document.createElement('iframe');\n\t      document.body.appendChild(iframe);\n\t      document.body.removeChild(iframe);\n\t    }, 100);\n\t  }\n\t};\n\t\n\t/**\n\t * Writes with a hidden iframe.\n\t *\n\t * @param {String} data to send\n\t * @param {Function} called upon flush.\n\t * @api private\n\t */\n\t\n\tJSONPPolling.prototype.doWrite = function (data, fn) {\n\t  var self = this;\n\t\n\t  if (!this.form) {\n\t    var form = document.createElement('form');\n\t    var area = document.createElement('textarea');\n\t    var id = this.iframeId = 'eio_iframe_' + this.index;\n\t    var iframe;\n\t\n\t    form.className = 'socketio';\n\t    form.style.position = 'absolute';\n\t    form.style.top = '-1000px';\n\t    form.style.left = '-1000px';\n\t    form.target = id;\n\t    form.method = 'POST';\n\t    form.setAttribute('accept-charset', 'utf-8');\n\t    area.name = 'd';\n\t    form.appendChild(area);\n\t    document.body.appendChild(form);\n\t\n\t    this.form = form;\n\t    this.area = area;\n\t  }\n\t\n\t  this.form.action = this.uri();\n\t\n\t  function complete () {\n\t    initIframe();\n\t    fn();\n\t  }\n\t\n\t  function initIframe () {\n\t    if (self.iframe) {\n\t      try {\n\t        self.form.removeChild(self.iframe);\n\t      } catch (e) {\n\t        self.onError('jsonp polling iframe removal error', e);\n\t      }\n\t    }\n\t\n\t    try {\n\t      // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n\t      var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n\t      iframe = document.createElement(html);\n\t    } catch (e) {\n\t      iframe = document.createElement('iframe');\n\t      iframe.name = self.iframeId;\n\t      iframe.src = 'javascript:0';\n\t    }\n\t\n\t    iframe.id = self.iframeId;\n\t\n\t    self.form.appendChild(iframe);\n\t    self.iframe = iframe;\n\t  }\n\t\n\t  initIframe();\n\t\n\t  // escape \\n to prevent it from being converted into \\r\\n by some UAs\n\t  // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n\t  data = data.replace(rEscapedNewline, '\\\\\\n');\n\t  this.area.value = data.replace(rNewline, '\\\\n');\n\t\n\t  try {\n\t    this.form.submit();\n\t  } catch (e) {}\n\t\n\t  if (this.iframe.attachEvent) {\n\t    this.iframe.onreadystatechange = function () {\n\t      if (self.iframe.readyState === 'complete') {\n\t        complete();\n\t      }\n\t    };\n\t  } else {\n\t    this.iframe.onload = complete;\n\t  }\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Module dependencies.\n\t */\n\t\n\tvar Transport = __webpack_require__(17);\n\tvar parser = __webpack_require__(18);\n\tvar parseqs = __webpack_require__(27);\n\tvar inherit = __webpack_require__(28);\n\tvar yeast = __webpack_require__(29);\n\tvar debug = __webpack_require__(3)('engine.io-client:websocket');\n\tvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\n\tvar NodeWebSocket;\n\tif (typeof window === 'undefined') {\n\t  try {\n\t    NodeWebSocket = __webpack_require__(32);\n\t  } catch (e) { }\n\t}\n\t\n\t/**\n\t * Get either the `WebSocket` or `MozWebSocket` globals\n\t * in the browser or try to resolve WebSocket-compatible\n\t * interface exposed by `ws` for Node-like environment.\n\t */\n\t\n\tvar WebSocket = BrowserWebSocket;\n\tif (!WebSocket && typeof window === 'undefined') {\n\t  WebSocket = NodeWebSocket;\n\t}\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = WS;\n\t\n\t/**\n\t * WebSocket transport constructor.\n\t *\n\t * @api {Object} connection options\n\t * @api public\n\t */\n\t\n\tfunction WS (opts) {\n\t  var forceBase64 = (opts && opts.forceBase64);\n\t  if (forceBase64) {\n\t    this.supportsBinary = false;\n\t  }\n\t  this.perMessageDeflate = opts.perMessageDeflate;\n\t  this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n\t  this.protocols = opts.protocols;\n\t  if (!this.usingBrowserWebSocket) {\n\t    WebSocket = NodeWebSocket;\n\t  }\n\t  Transport.call(this, opts);\n\t}\n\t\n\t/**\n\t * Inherits from Transport.\n\t */\n\t\n\tinherit(WS, Transport);\n\t\n\t/**\n\t * Transport name.\n\t *\n\t * @api public\n\t */\n\t\n\tWS.prototype.name = 'websocket';\n\t\n\t/*\n\t * WebSockets support binary\n\t */\n\t\n\tWS.prototype.supportsBinary = true;\n\t\n\t/**\n\t * Opens socket.\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.doOpen = function () {\n\t  if (!this.check()) {\n\t    // let probe timeout\n\t    return;\n\t  }\n\t\n\t  var uri = this.uri();\n\t  var protocols = this.protocols;\n\t  var opts = {\n\t    agent: this.agent,\n\t    perMessageDeflate: this.perMessageDeflate\n\t  };\n\t\n\t  // SSL options for Node.js client\n\t  opts.pfx = this.pfx;\n\t  opts.key = this.key;\n\t  opts.passphrase = this.passphrase;\n\t  opts.cert = this.cert;\n\t  opts.ca = this.ca;\n\t  opts.ciphers = this.ciphers;\n\t  opts.rejectUnauthorized = this.rejectUnauthorized;\n\t  if (this.extraHeaders) {\n\t    opts.headers = this.extraHeaders;\n\t  }\n\t  if (this.localAddress) {\n\t    opts.localAddress = this.localAddress;\n\t  }\n\t\n\t  try {\n\t    this.ws = this.usingBrowserWebSocket ? (protocols ? new WebSocket(uri, protocols) : new WebSocket(uri)) : new WebSocket(uri, protocols, opts);\n\t  } catch (err) {\n\t    return this.emit('error', err);\n\t  }\n\t\n\t  if (this.ws.binaryType === undefined) {\n\t    this.supportsBinary = false;\n\t  }\n\t\n\t  if (this.ws.supports && this.ws.supports.binary) {\n\t    this.supportsBinary = true;\n\t    this.ws.binaryType = 'nodebuffer';\n\t  } else {\n\t    this.ws.binaryType = 'arraybuffer';\n\t  }\n\t\n\t  this.addEventListeners();\n\t};\n\t\n\t/**\n\t * Adds event listeners to the socket\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.addEventListeners = function () {\n\t  var self = this;\n\t\n\t  this.ws.onopen = function () {\n\t    self.onOpen();\n\t  };\n\t  this.ws.onclose = function () {\n\t    self.onClose();\n\t  };\n\t  this.ws.onmessage = function (ev) {\n\t    self.onData(ev.data);\n\t  };\n\t  this.ws.onerror = function (e) {\n\t    self.onError('websocket error', e);\n\t  };\n\t};\n\t\n\t/**\n\t * Writes data to socket.\n\t *\n\t * @param {Array} array of packets.\n\t * @api private\n\t */\n\t\n\tWS.prototype.write = function (packets) {\n\t  var self = this;\n\t  this.writable = false;\n\t\n\t  // encodePacket efficient as it uses WS framing\n\t  // no need for encodePayload\n\t  var total = packets.length;\n\t  for (var i = 0, l = total; i < l; i++) {\n\t    (function (packet) {\n\t      parser.encodePacket(packet, self.supportsBinary, function (data) {\n\t        if (!self.usingBrowserWebSocket) {\n\t          // always create a new object (GH-437)\n\t          var opts = {};\n\t          if (packet.options) {\n\t            opts.compress = packet.options.compress;\n\t          }\n\t\n\t          if (self.perMessageDeflate) {\n\t            var len = 'string' === typeof data ? global.Buffer.byteLength(data) : data.length;\n\t            if (len < self.perMessageDeflate.threshold) {\n\t              opts.compress = false;\n\t            }\n\t          }\n\t        }\n\t\n\t        // Sometimes the websocket has already been closed but the browser didn't\n\t        // have a chance of informing us about it yet, in that case send will\n\t        // throw an error\n\t        try {\n\t          if (self.usingBrowserWebSocket) {\n\t            // TypeError is thrown when passing the second argument on Safari\n\t            self.ws.send(data);\n\t          } else {\n\t            self.ws.send(data, opts);\n\t          }\n\t        } catch (e) {\n\t\n\t        }\n\t\n\t        --total || done();\n\t      });\n\t    })(packets[i]);\n\t  }\n\t\n\t  function done () {\n\t    self.emit('flush');\n\t\n\t    // fake drain\n\t    // defer to next tick to allow Socket to clear writeBuffer\n\t    setTimeout(function () {\n\t      self.writable = true;\n\t      self.emit('drain');\n\t    }, 0);\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon close\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.onClose = function () {\n\t  Transport.prototype.onClose.call(this);\n\t};\n\t\n\t/**\n\t * Closes socket.\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.doClose = function () {\n\t  if (typeof this.ws !== 'undefined') {\n\t    this.ws.close();\n\t  }\n\t};\n\t\n\t/**\n\t * Generates uri for connection.\n\t *\n\t * @api private\n\t */\n\t\n\tWS.prototype.uri = function () {\n\t  var query = this.query || {};\n\t  var schema = this.secure ? 'wss' : 'ws';\n\t  var port = '';\n\t\n\t  // avoid port if default for schema\n\t  if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n\t    ('ws' === schema && Number(this.port) !== 80))) {\n\t    port = ':' + this.port;\n\t  }\n\t\n\t  // append timestamp to URI\n\t  if (this.timestampRequests) {\n\t    query[this.timestampParam] = yeast();\n\t  }\n\t\n\t  // communicate binary support capabilities\n\t  if (!this.supportsBinary) {\n\t    query.b64 = 1;\n\t  }\n\t\n\t  query = parseqs.encode(query);\n\t\n\t  // prepend ? to query\n\t  if (query.length) {\n\t    query = '?' + query;\n\t  }\n\t\n\t  var ipv6 = this.hostname.indexOf(':') !== -1;\n\t  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n\t};\n\t\n\t/**\n\t * Feature detection for WebSocket.\n\t *\n\t * @return {Boolean} whether this transport is available.\n\t * @api public\n\t */\n\t\n\tWS.prototype.check = function () {\n\t  return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\n\t/* (ignored) */\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\n\t\n\tvar indexOf = [].indexOf;\n\t\n\tmodule.exports = function(arr, obj){\n\t  if (indexOf) return arr.indexOf(obj);\n\t  for (var i = 0; i < arr.length; ++i) {\n\t    if (arr[i] === obj) return i;\n\t  }\n\t  return -1;\n\t};\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\t/**\n\t * Module dependencies.\n\t */\n\t\n\tvar parser = __webpack_require__(4);\n\tvar Emitter = __webpack_require__(5);\n\tvar toArray = __webpack_require__(35);\n\tvar on = __webpack_require__(36);\n\tvar bind = __webpack_require__(37);\n\tvar debug = __webpack_require__(3)('socket.io-client:socket');\n\tvar parseqs = __webpack_require__(27);\n\tvar hasBin = __webpack_require__(20);\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = exports = Socket;\n\t\n\t/**\n\t * Internal events (blacklisted).\n\t * These events can't be emitted by the user.\n\t *\n\t * @api private\n\t */\n\t\n\tvar events = {\n\t  connect: 1,\n\t  connect_error: 1,\n\t  connect_timeout: 1,\n\t  connecting: 1,\n\t  disconnect: 1,\n\t  error: 1,\n\t  reconnect: 1,\n\t  reconnect_attempt: 1,\n\t  reconnect_failed: 1,\n\t  reconnect_error: 1,\n\t  reconnecting: 1,\n\t  ping: 1,\n\t  pong: 1\n\t};\n\t\n\t/**\n\t * Shortcut to `Emitter#emit`.\n\t */\n\t\n\tvar emit = Emitter.prototype.emit;\n\t\n\t/**\n\t * `Socket` constructor.\n\t *\n\t * @api public\n\t */\n\t\n\tfunction Socket(io, nsp, opts) {\n\t  this.io = io;\n\t  this.nsp = nsp;\n\t  this.json = this; // compat\n\t  this.ids = 0;\n\t  this.acks = {};\n\t  this.receiveBuffer = [];\n\t  this.sendBuffer = [];\n\t  this.connected = false;\n\t  this.disconnected = true;\n\t  this.flags = {};\n\t  if (opts && opts.query) {\n\t    this.query = opts.query;\n\t  }\n\t  if (this.io.autoConnect) this.open();\n\t}\n\t\n\t/**\n\t * Mix in `Emitter`.\n\t */\n\t\n\tEmitter(Socket.prototype);\n\t\n\t/**\n\t * Subscribe to open, close and packet events\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.subEvents = function () {\n\t  if (this.subs) return;\n\t\n\t  var io = this.io;\n\t  this.subs = [on(io, 'open', bind(this, 'onopen')), on(io, 'packet', bind(this, 'onpacket')), on(io, 'close', bind(this, 'onclose'))];\n\t};\n\t\n\t/**\n\t * \"Opens\" the socket.\n\t *\n\t * @api public\n\t */\n\t\n\tSocket.prototype.open = Socket.prototype.connect = function () {\n\t  if (this.connected) return this;\n\t\n\t  this.subEvents();\n\t  this.io.open(); // ensure open\n\t  if ('open' === this.io.readyState) this.onopen();\n\t  this.emit('connecting');\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sends a `message` event.\n\t *\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.send = function () {\n\t  var args = toArray(arguments);\n\t  args.unshift('message');\n\t  this.emit.apply(this, args);\n\t  return this;\n\t};\n\t\n\t/**\n\t * Override `emit`.\n\t * If the event is in `events`, it's emitted normally.\n\t *\n\t * @param {String} event name\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.emit = function (ev) {\n\t  if (events.hasOwnProperty(ev)) {\n\t    emit.apply(this, arguments);\n\t    return this;\n\t  }\n\t\n\t  var args = toArray(arguments);\n\t  var packet = {\n\t    type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n\t    data: args\n\t  };\n\t\n\t  packet.options = {};\n\t  packet.options.compress = !this.flags || false !== this.flags.compress;\n\t\n\t  // event ack callback\n\t  if ('function' === typeof args[args.length - 1]) {\n\t\n\t    this.acks[this.ids] = args.pop();\n\t    packet.id = this.ids++;\n\t  }\n\t\n\t  if (this.connected) {\n\t    this.packet(packet);\n\t  } else {\n\t    this.sendBuffer.push(packet);\n\t  }\n\t\n\t  this.flags = {};\n\t\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sends a packet.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tSocket.prototype.packet = function (packet) {\n\t  packet.nsp = this.nsp;\n\t  this.io.packet(packet);\n\t};\n\t\n\t/**\n\t * Called upon engine `open`.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onopen = function () {\n\t\n\t  // write connect packet if necessary\n\t  if ('/' !== this.nsp) {\n\t    if (this.query) {\n\t      var query = _typeof(this.query) === 'object' ? parseqs.encode(this.query) : this.query;\n\t\n\t      this.packet({ type: parser.CONNECT, query: query });\n\t    } else {\n\t      this.packet({ type: parser.CONNECT });\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon engine `close`.\n\t *\n\t * @param {String} reason\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onclose = function (reason) {\n\t\n\t  this.connected = false;\n\t  this.disconnected = true;\n\t  delete this.id;\n\t  this.emit('disconnect', reason);\n\t};\n\t\n\t/**\n\t * Called with socket packet.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onpacket = function (packet) {\n\t  var sameNamespace = packet.nsp === this.nsp;\n\t  var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\t\n\t  if (!sameNamespace && !rootNamespaceError) return;\n\t\n\t  switch (packet.type) {\n\t    case parser.CONNECT:\n\t      this.onconnect();\n\t      break;\n\t\n\t    case parser.EVENT:\n\t      this.onevent(packet);\n\t      break;\n\t\n\t    case parser.BINARY_EVENT:\n\t      this.onevent(packet);\n\t      break;\n\t\n\t    case parser.ACK:\n\t      this.onack(packet);\n\t      break;\n\t\n\t    case parser.BINARY_ACK:\n\t      this.onack(packet);\n\t      break;\n\t\n\t    case parser.DISCONNECT:\n\t      this.ondisconnect();\n\t      break;\n\t\n\t    case parser.ERROR:\n\t      this.emit('error', packet.data);\n\t      break;\n\t  }\n\t};\n\t\n\t/**\n\t * Called upon a server event.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onevent = function (packet) {\n\t  var args = packet.data || [];\n\t\n\t  if (null != packet.id) {\n\t\n\t    args.push(this.ack(packet.id));\n\t  }\n\t\n\t  if (this.connected) {\n\t    emit.apply(this, args);\n\t  } else {\n\t    this.receiveBuffer.push(args);\n\t  }\n\t};\n\t\n\t/**\n\t * Produces an ack callback to emit with an event.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.ack = function (id) {\n\t  var self = this;\n\t  var sent = false;\n\t  return function () {\n\t    // prevent double callbacks\n\t    if (sent) return;\n\t    sent = true;\n\t    var args = toArray(arguments);\n\t\n\t    self.packet({\n\t      type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n\t      id: id,\n\t      data: args\n\t    });\n\t  };\n\t};\n\t\n\t/**\n\t * Called upon a server acknowlegement.\n\t *\n\t * @param {Object} packet\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onack = function (packet) {\n\t  var ack = this.acks[packet.id];\n\t  if ('function' === typeof ack) {\n\t\n\t    ack.apply(this, packet.data);\n\t    delete this.acks[packet.id];\n\t  } else {}\n\t};\n\t\n\t/**\n\t * Called upon server connect.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.onconnect = function () {\n\t  this.connected = true;\n\t  this.disconnected = false;\n\t  this.emit('connect');\n\t  this.emitBuffered();\n\t};\n\t\n\t/**\n\t * Emit buffered events (received and emitted).\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.emitBuffered = function () {\n\t  var i;\n\t  for (i = 0; i < this.receiveBuffer.length; i++) {\n\t    emit.apply(this, this.receiveBuffer[i]);\n\t  }\n\t  this.receiveBuffer = [];\n\t\n\t  for (i = 0; i < this.sendBuffer.length; i++) {\n\t    this.packet(this.sendBuffer[i]);\n\t  }\n\t  this.sendBuffer = [];\n\t};\n\t\n\t/**\n\t * Called upon server disconnect.\n\t *\n\t * @api private\n\t */\n\t\n\tSocket.prototype.ondisconnect = function () {\n\t\n\t  this.destroy();\n\t  this.onclose('io server disconnect');\n\t};\n\t\n\t/**\n\t * Called upon forced client/server side disconnections,\n\t * this method ensures the manager stops tracking us and\n\t * that reconnections don't get triggered for this.\n\t *\n\t * @api private.\n\t */\n\t\n\tSocket.prototype.destroy = function () {\n\t  if (this.subs) {\n\t    // clean subscriptions to avoid reconnections\n\t    for (var i = 0; i < this.subs.length; i++) {\n\t      this.subs[i].destroy();\n\t    }\n\t    this.subs = null;\n\t  }\n\t\n\t  this.io.destroy(this);\n\t};\n\t\n\t/**\n\t * Disconnects the socket manually.\n\t *\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.close = Socket.prototype.disconnect = function () {\n\t  if (this.connected) {\n\t\n\t    this.packet({ type: parser.DISCONNECT });\n\t  }\n\t\n\t  // remove socket from pool\n\t  this.destroy();\n\t\n\t  if (this.connected) {\n\t    // fire events\n\t    this.onclose('io client disconnect');\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the compress flag.\n\t *\n\t * @param {Boolean} if `true`, compresses the sending data\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.compress = function (compress) {\n\t  this.flags.compress = compress;\n\t  return this;\n\t};\n\t\n\t/**\n\t * Sets the binary flag\n\t *\n\t * @param {Boolean} whether the emitted data contains binary\n\t * @return {Socket} self\n\t * @api public\n\t */\n\t\n\tSocket.prototype.binary = function (binary) {\n\t  this.flags.binary = binary;\n\t  return this;\n\t};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = toArray\n\t\n\tfunction toArray(list, index) {\n\t    var array = []\n\t\n\t    index = index || 0\n\t\n\t    for (var i = index || 0; i < list.length; i++) {\n\t        array[i - index] = list[i]\n\t    }\n\t\n\t    return array\n\t}\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * Module exports.\n\t */\n\t\n\tmodule.exports = on;\n\t\n\t/**\n\t * Helper for subscriptions.\n\t *\n\t * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n\t * @param {String} event name\n\t * @param {Function} callback\n\t * @api public\n\t */\n\t\n\tfunction on(obj, ev, fn) {\n\t  obj.on(ev, fn);\n\t  return {\n\t    destroy: function destroy() {\n\t      obj.removeListener(ev, fn);\n\t    }\n\t  };\n\t}\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Slice reference.\n\t */\n\t\n\tvar slice = [].slice;\n\t\n\t/**\n\t * Bind `obj` to `fn`.\n\t *\n\t * @param {Object} obj\n\t * @param {Function|String} fn or string\n\t * @return {Function}\n\t * @api public\n\t */\n\t\n\tmodule.exports = function(obj, fn){\n\t  if ('string' == typeof fn) fn = obj[fn];\n\t  if ('function' != typeof fn) throw new Error('bind() requires a function');\n\t  var args = slice.call(arguments, 2);\n\t  return function(){\n\t    return fn.apply(obj, args.concat(slice.call(arguments)));\n\t  }\n\t};\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\n\t\n\t/**\n\t * Expose `Backoff`.\n\t */\n\t\n\tmodule.exports = Backoff;\n\t\n\t/**\n\t * Initialize backoff timer with `opts`.\n\t *\n\t * - `min` initial timeout in milliseconds [100]\n\t * - `max` max timeout [10000]\n\t * - `jitter` [0]\n\t * - `factor` [2]\n\t *\n\t * @param {Object} opts\n\t * @api public\n\t */\n\t\n\tfunction Backoff(opts) {\n\t  opts = opts || {};\n\t  this.ms = opts.min || 100;\n\t  this.max = opts.max || 10000;\n\t  this.factor = opts.factor || 2;\n\t  this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n\t  this.attempts = 0;\n\t}\n\t\n\t/**\n\t * Return the backoff duration.\n\t *\n\t * @return {Number}\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.duration = function(){\n\t  var ms = this.ms * Math.pow(this.factor, this.attempts++);\n\t  if (this.jitter) {\n\t    var rand =  Math.random();\n\t    var deviation = Math.floor(rand * this.jitter * ms);\n\t    ms = (Math.floor(rand * 10) & 1) == 0  ? ms - deviation : ms + deviation;\n\t  }\n\t  return Math.min(ms, this.max) | 0;\n\t};\n\t\n\t/**\n\t * Reset the number of attempts.\n\t *\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.reset = function(){\n\t  this.attempts = 0;\n\t};\n\t\n\t/**\n\t * Set the minimum duration\n\t *\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.setMin = function(min){\n\t  this.ms = min;\n\t};\n\t\n\t/**\n\t * Set the maximum duration\n\t *\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.setMax = function(max){\n\t  this.max = max;\n\t};\n\t\n\t/**\n\t * Set the jitter\n\t *\n\t * @api public\n\t */\n\t\n\tBackoff.prototype.setJitter = function(jitter){\n\t  this.jitter = jitter;\n\t};\n\t\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// socket.io.slim.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 82d2f1547c0a2d88046d","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n *   `io('http://localhost/a');`\n *   `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n  if (typeof uri === 'object') {\n    opts = uri;\n    uri = undefined;\n  }\n\n  opts = opts || {};\n\n  var parsed = url(uri);\n  var source = parsed.source;\n  var id = parsed.id;\n  var path = parsed.path;\n  var sameNamespace = cache[id] && path in cache[id].nsps;\n  var newConnection = opts.forceNew || opts['force new connection'] ||\n                      false === opts.multiplex || sameNamespace;\n\n  var io;\n\n  if (newConnection) {\n\n    io = Manager(source, opts);\n  } else {\n    if (!cache[id]) {\n\n      cache[id] = Manager(source, opts);\n    }\n    io = cache[id];\n  }\n  if (parsed.query && !opts.query) {\n    opts.query = parsed.query;\n  }\n  return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n\n\n\n// WEBPACK FOOTER //\n// ./lib/index.js","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n *                 Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n  var obj = uri;\n\n  // default to window.location\n  loc = loc || global.location;\n  if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n  // relative path support\n  if ('string' === typeof uri) {\n    if ('/' === uri.charAt(0)) {\n      if ('/' === uri.charAt(1)) {\n        uri = loc.protocol + uri;\n      } else {\n        uri = loc.host + uri;\n      }\n    }\n\n    if (!/^(https?|wss?):\\/\\//.test(uri)) {\n\n      if ('undefined' !== typeof loc) {\n        uri = loc.protocol + '//' + uri;\n      } else {\n        uri = 'https://' + uri;\n      }\n    }\n\n    // parse\n\n    obj = parseuri(uri);\n  }\n\n  // make sure we treat `localhost:80` and `localhost` equally\n  if (!obj.port) {\n    if (/^(http|ws)$/.test(obj.protocol)) {\n      obj.port = '80';\n    } else if (/^(http|ws)s$/.test(obj.protocol)) {\n      obj.port = '443';\n    }\n  }\n\n  obj.path = obj.path || '/';\n\n  var ipv6 = obj.host.indexOf(':') !== -1;\n  var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n  // define unique id\n  obj.id = obj.protocol + '://' + host + ':' + obj.port;\n  // define href\n  obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n  return obj;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/url.js","/**\r\n * Parses an URI\r\n *\r\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\r\n * @api private\r\n */\r\n\r\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\r\n\r\nvar parts = [\r\n    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\r\n];\r\n\r\nmodule.exports = function parseuri(str) {\r\n    var src = str,\r\n        b = str.indexOf('['),\r\n        e = str.indexOf(']');\r\n\r\n    if (b != -1 && e != -1) {\r\n        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\r\n    }\r\n\r\n    var m = re.exec(str || ''),\r\n        uri = {},\r\n        i = 14;\r\n\r\n    while (i--) {\r\n        uri[parts[i]] = m[i] || '';\r\n    }\r\n\r\n    if (b != -1 && e != -1) {\r\n        uri.source = src;\r\n        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\r\n        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\r\n        uri.ipv6uri = true;\r\n    }\r\n\r\n    return uri;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/parseuri/index.js\n// module id = 2\n// module chunks = 0","\nmodule.exports = function () { return function () {}; };\n\n\n\n// WEBPACK FOOTER //\n// ./support/noop.js","\n/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar binary = require('./binary');\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n  'CONNECT',\n  'DISCONNECT',\n  'EVENT',\n  'ACK',\n  'ERROR',\n  'BINARY_EVENT',\n  'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\nvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n\n\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    encodeAsBinary(obj, callback);\n  } else {\n    var encoding = encodeAsString(obj);\n    callback([encoding]);\n  }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n  // first is type\n  var str = '' + obj.type;\n\n  // attachments if we have them\n  if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n    str += obj.attachments + '-';\n  }\n\n  // if we have a namespace other than `/`\n  // we append it followed by a comma `,`\n  if (obj.nsp && '/' !== obj.nsp) {\n    str += obj.nsp + ',';\n  }\n\n  // immediately followed by the id\n  if (null != obj.id) {\n    str += obj.id;\n  }\n\n  // json data\n  if (null != obj.data) {\n    var payload = tryStringify(obj.data);\n    if (payload !== false) {\n      str += payload;\n    } else {\n      return ERROR_PACKET;\n    }\n  }\n\n\n  return str;\n}\n\nfunction tryStringify(str) {\n  try {\n    return JSON.stringify(str);\n  } catch(e){\n    return false;\n  }\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n  function writeEncoding(bloblessData) {\n    var deconstruction = binary.deconstructPacket(bloblessData);\n    var pack = encodeAsString(deconstruction.packet);\n    var buffers = deconstruction.buffers;\n\n    buffers.unshift(pack); // add packet info to beginning of data list\n    callback(buffers); // write all the buffers\n  }\n\n  binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n  this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an ecoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n  var packet;\n  if (typeof obj === 'string') {\n    packet = decodeString(obj);\n    if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n      this.reconstructor = new BinaryReconstructor(packet);\n\n      // no attachments, labeled binary but no binary data to follow\n      if (this.reconstructor.reconPack.attachments === 0) {\n        this.emit('decoded', packet);\n      }\n    } else { // non-binary full packet\n      this.emit('decoded', packet);\n    }\n  }\n  else if (isBuf(obj) || obj.base64) { // raw binary data\n    if (!this.reconstructor) {\n      throw new Error('got binary data when not reconstructing a packet');\n    } else {\n      packet = this.reconstructor.takeBinaryData(obj);\n      if (packet) { // received final buffer\n        this.reconstructor = null;\n        this.emit('decoded', packet);\n      }\n    }\n  }\n  else {\n    throw new Error('Unknown type: ' + obj);\n  }\n};\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n  var i = 0;\n  // look up type\n  var p = {\n    type: Number(str.charAt(0))\n  };\n\n  if (null == exports.types[p.type]) {\n    return error('unknown packet type ' + p.type);\n  }\n\n  // look up attachments if type binary\n  if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n    var buf = '';\n    while (str.charAt(++i) !== '-') {\n      buf += str.charAt(i);\n      if (i == str.length) break;\n    }\n    if (buf != Number(buf) || str.charAt(i) !== '-') {\n      throw new Error('Illegal attachments');\n    }\n    p.attachments = Number(buf);\n  }\n\n  // look up namespace (if any)\n  if ('/' === str.charAt(i + 1)) {\n    p.nsp = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (',' === c) break;\n      p.nsp += c;\n      if (i === str.length) break;\n    }\n  } else {\n    p.nsp = '/';\n  }\n\n  // look up id\n  var next = str.charAt(i + 1);\n  if ('' !== next && Number(next) == next) {\n    p.id = '';\n    while (++i) {\n      var c = str.charAt(i);\n      if (null == c || Number(c) != c) {\n        --i;\n        break;\n      }\n      p.id += str.charAt(i);\n      if (i === str.length) break;\n    }\n    p.id = Number(p.id);\n  }\n\n  // look up json data\n  if (str.charAt(++i)) {\n    var payload = tryParse(str.substr(i));\n    var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));\n    if (isPayloadValid) {\n      p.data = payload;\n    } else {\n      return error('invalid payload');\n    }\n  }\n\n\n  return p;\n}\n\nfunction tryParse(str) {\n  try {\n    return JSON.parse(str);\n  } catch(e){\n    return false;\n  }\n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n  if (this.reconstructor) {\n    this.reconstructor.finishedReconstruction();\n  }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n  this.reconPack = packet;\n  this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n *   a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n  this.buffers.push(binData);\n  if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n    var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n    this.finishedReconstruction();\n    return packet;\n  }\n  return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n  this.reconPack = null;\n  this.buffers = [];\n};\n\nfunction error(msg) {\n  return {\n    type: exports.ERROR,\n    data: 'parser error: ' + msg\n  };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/index.js\n// module id = 4\n// module chunks = 0","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n  module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n  if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n  for (var key in Emitter.prototype) {\r\n    obj[key] = Emitter.prototype[key];\r\n  }\r\n  return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n    .push(fn);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n  function on() {\r\n    this.off(event, on);\r\n    fn.apply(this, arguments);\r\n  }\r\n\r\n  on.fn = fn;\r\n  this.on(event, on);\r\n  return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n  this._callbacks = this._callbacks || {};\r\n\r\n  // all\r\n  if (0 == arguments.length) {\r\n    this._callbacks = {};\r\n    return this;\r\n  }\r\n\r\n  // specific event\r\n  var callbacks = this._callbacks['$' + event];\r\n  if (!callbacks) return this;\r\n\r\n  // remove all handlers\r\n  if (1 == arguments.length) {\r\n    delete this._callbacks['$' + event];\r\n    return this;\r\n  }\r\n\r\n  // remove specific handler\r\n  var cb;\r\n  for (var i = 0; i < callbacks.length; i++) {\r\n    cb = callbacks[i];\r\n    if (cb === fn || cb.fn === fn) {\r\n      callbacks.splice(i, 1);\r\n      break;\r\n    }\r\n  }\r\n  return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  var args = [].slice.call(arguments, 1)\r\n    , callbacks = this._callbacks['$' + event];\r\n\r\n  if (callbacks) {\r\n    callbacks = callbacks.slice(0);\r\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n      callbacks[i].apply(this, args);\r\n    }\r\n  }\r\n\r\n  return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n  this._callbacks = this._callbacks || {};\r\n  return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n  return !! this.listeners(event).length;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-emitter/index.js\n// module id = 5\n// module chunks = 0","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n  var buffers = [];\n  var packetData = packet.data;\n  var pack = packet;\n  pack.data = _deconstructPacket(packetData, buffers);\n  pack.attachments = buffers.length; // number of binary 'attachments'\n  return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (isBuf(data)) {\n    var placeholder = { _placeholder: true, num: buffers.length };\n    buffers.push(data);\n    return placeholder;\n  } else if (isArray(data)) {\n    var newData = new Array(data.length);\n    for (var i = 0; i < data.length; i++) {\n      newData[i] = _deconstructPacket(data[i], buffers);\n    }\n    return newData;\n  } else if (typeof data === 'object' && !(data instanceof Date)) {\n    var newData = {};\n    for (var key in data) {\n      newData[key] = _deconstructPacket(data[key], buffers);\n    }\n    return newData;\n  }\n  return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n  packet.data = _reconstructPacket(packet.data, buffers);\n  packet.attachments = undefined; // no longer useful\n  return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n  if (!data) return data;\n\n  if (data && data._placeholder) {\n    return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n  } else if (isArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      data[i] = _reconstructPacket(data[i], buffers);\n    }\n  } else if (typeof data === 'object') {\n    for (var key in data) {\n      data[key] = _reconstructPacket(data[key], buffers);\n    }\n  }\n\n  return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n  function _removeBlobs(obj, curKey, containingObject) {\n    if (!obj) return obj;\n\n    // convert any blob\n    if ((withNativeBlob && obj instanceof Blob) ||\n        (withNativeFile && obj instanceof File)) {\n      pendingBlobs++;\n\n      // async filereader\n      var fileReader = new FileReader();\n      fileReader.onload = function() { // this.result == arraybuffer\n        if (containingObject) {\n          containingObject[curKey] = this.result;\n        }\n        else {\n          bloblessData = this.result;\n        }\n\n        // if nothing pending its callback time\n        if(! --pendingBlobs) {\n          callback(bloblessData);\n        }\n      };\n\n      fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n    } else if (isArray(obj)) { // handle array\n      for (var i = 0; i < obj.length; i++) {\n        _removeBlobs(obj[i], i, obj);\n      }\n    } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n      for (var key in obj) {\n        _removeBlobs(obj[key], key, obj);\n      }\n    }\n  }\n\n  var pendingBlobs = 0;\n  var bloblessData = data;\n  _removeBlobs(bloblessData);\n  if (!pendingBlobs) {\n    callback(bloblessData);\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/binary.js\n// module id = 6\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/isarray/index.js\n// module id = 7\n// module chunks = 0","\nmodule.exports = isBuf;\n\nvar withNativeBuffer = typeof global.Buffer === 'function' && typeof global.Buffer.isBuffer === 'function';\nvar withNativeArrayBuffer = typeof global.ArrayBuffer === 'function';\n\nvar isView = (function () {\n  if (withNativeArrayBuffer && typeof global.ArrayBuffer.isView === 'function') {\n    return global.ArrayBuffer.isView;\n  } else {\n    return function (obj) { return obj.buffer instanceof global.ArrayBuffer; };\n  }\n})();\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n  return (withNativeBuffer && global.Buffer.isBuffer(obj)) ||\n          (withNativeArrayBuffer && (obj instanceof global.ArrayBuffer || isView(obj)));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/socket.io-parser/is-buffer.js\n// module id = 8\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n  if (!(this instanceof Manager)) return new Manager(uri, opts);\n  if (uri && ('object' === typeof uri)) {\n    opts = uri;\n    uri = undefined;\n  }\n  opts = opts || {};\n\n  opts.path = opts.path || '/socket.io';\n  this.nsps = {};\n  this.subs = [];\n  this.opts = opts;\n  this.reconnection(opts.reconnection !== false);\n  this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n  this.reconnectionDelay(opts.reconnectionDelay || 1000);\n  this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n  this.randomizationFactor(opts.randomizationFactor || 0.5);\n  this.backoff = new Backoff({\n    min: this.reconnectionDelay(),\n    max: this.reconnectionDelayMax(),\n    jitter: this.randomizationFactor()\n  });\n  this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n  this.readyState = 'closed';\n  this.uri = uri;\n  this.connecting = [];\n  this.lastPing = null;\n  this.encoding = false;\n  this.packetBuffer = [];\n  var _parser = opts.parser || parser;\n  this.encoder = new _parser.Encoder();\n  this.decoder = new _parser.Decoder();\n  this.autoConnect = opts.autoConnect !== false;\n  if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n  this.emit.apply(this, arguments);\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n    }\n  }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n  for (var nsp in this.nsps) {\n    if (has.call(this.nsps, nsp)) {\n      this.nsps[nsp].id = this.generateId(nsp);\n    }\n  }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n  return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n  if (!arguments.length) return this._reconnection;\n  this._reconnection = !!v;\n  return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n  if (!arguments.length) return this._reconnectionAttempts;\n  this._reconnectionAttempts = v;\n  return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n  if (!arguments.length) return this._reconnectionDelay;\n  this._reconnectionDelay = v;\n  this.backoff && this.backoff.setMin(v);\n  return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n  if (!arguments.length) return this._randomizationFactor;\n  this._randomizationFactor = v;\n  this.backoff && this.backoff.setJitter(v);\n  return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n  if (!arguments.length) return this._reconnectionDelayMax;\n  this._reconnectionDelayMax = v;\n  this.backoff && this.backoff.setMax(v);\n  return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n  if (!arguments.length) return this._timeout;\n  this._timeout = v;\n  return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n  // Only try to reconnect if it's the first time we're connecting\n  if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n    // keeps reconnection from firing twice for the same reconnection loop\n    this.reconnect();\n  }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n\n  if (~this.readyState.indexOf('open')) return this;\n\n\n  this.engine = eio(this.uri, this.opts);\n  var socket = this.engine;\n  var self = this;\n  this.readyState = 'opening';\n  this.skipReconnect = false;\n\n  // emit `open`\n  var openSub = on(socket, 'open', function () {\n    self.onopen();\n    fn && fn();\n  });\n\n  // emit `connect_error`\n  var errorSub = on(socket, 'error', function (data) {\n\n    self.cleanup();\n    self.readyState = 'closed';\n    self.emitAll('connect_error', data);\n    if (fn) {\n      var err = new Error('Connection error');\n      err.data = data;\n      fn(err);\n    } else {\n      // Only do this if there is no fn to handle the error\n      self.maybeReconnectOnOpen();\n    }\n  });\n\n  // emit `connect_timeout`\n  if (false !== this._timeout) {\n    var timeout = this._timeout;\n\n\n    // set timer\n    var timer = setTimeout(function () {\n\n      openSub.destroy();\n      socket.close();\n      socket.emit('error', 'timeout');\n      self.emitAll('connect_timeout', timeout);\n    }, timeout);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n\n  this.subs.push(openSub);\n  this.subs.push(errorSub);\n\n  return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n\n\n  // clear old subs\n  this.cleanup();\n\n  // mark as open\n  this.readyState = 'open';\n  this.emit('open');\n\n  // add new subs\n  var socket = this.engine;\n  this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n  this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n  this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n  this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n  this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n  this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n  this.lastPing = new Date();\n  this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n  this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n  this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n\n  this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n  var socket = this.nsps[nsp];\n  if (!socket) {\n    socket = new Socket(this, nsp, opts);\n    this.nsps[nsp] = socket;\n    var self = this;\n    socket.on('connecting', onConnecting);\n    socket.on('connect', function () {\n      socket.id = self.generateId(nsp);\n    });\n\n    if (this.autoConnect) {\n      // manually call here since connecting event is fired before listening\n      onConnecting();\n    }\n  }\n\n  function onConnecting () {\n    if (!~indexOf(self.connecting, socket)) {\n      self.connecting.push(socket);\n    }\n  }\n\n  return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n  var index = indexOf(this.connecting, socket);\n  if (~index) this.connecting.splice(index, 1);\n  if (this.connecting.length) return;\n\n  this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n\n  var self = this;\n  if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n  if (!self.encoding) {\n    // encode, then write to engine with result\n    self.encoding = true;\n    this.encoder.encode(packet, function (encodedPackets) {\n      for (var i = 0; i < encodedPackets.length; i++) {\n        self.engine.write(encodedPackets[i], packet.options);\n      }\n      self.encoding = false;\n      self.processPacketQueue();\n    });\n  } else { // add packet to the queue\n    self.packetBuffer.push(packet);\n  }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n  if (this.packetBuffer.length > 0 && !this.encoding) {\n    var pack = this.packetBuffer.shift();\n    this.packet(pack);\n  }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n\n\n  var subsLength = this.subs.length;\n  for (var i = 0; i < subsLength; i++) {\n    var sub = this.subs.shift();\n    sub.destroy();\n  }\n\n  this.packetBuffer = [];\n  this.encoding = false;\n  this.lastPing = null;\n\n  this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n\n  this.skipReconnect = true;\n  this.reconnecting = false;\n  if ('opening' === this.readyState) {\n    // `onclose` will not fire because\n    // an open event never happened\n    this.cleanup();\n  }\n  this.backoff.reset();\n  this.readyState = 'closed';\n  if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n\n\n  this.cleanup();\n  this.backoff.reset();\n  this.readyState = 'closed';\n  this.emit('close', reason);\n\n  if (this._reconnection && !this.skipReconnect) {\n    this.reconnect();\n  }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n  if (this.reconnecting || this.skipReconnect) return this;\n\n  var self = this;\n\n  if (this.backoff.attempts >= this._reconnectionAttempts) {\n\n    this.backoff.reset();\n    this.emitAll('reconnect_failed');\n    this.reconnecting = false;\n  } else {\n    var delay = this.backoff.duration();\n\n\n    this.reconnecting = true;\n    var timer = setTimeout(function () {\n      if (self.skipReconnect) return;\n\n\n      self.emitAll('reconnect_attempt', self.backoff.attempts);\n      self.emitAll('reconnecting', self.backoff.attempts);\n\n      // check again for the case socket closed in above events\n      if (self.skipReconnect) return;\n\n      self.open(function (err) {\n        if (err) {\n\n          self.reconnecting = false;\n          self.reconnect();\n          self.emitAll('reconnect_error', err.data);\n        } else {\n\n          self.onreconnect();\n        }\n      });\n    }, delay);\n\n    this.subs.push({\n      destroy: function () {\n        clearTimeout(timer);\n      }\n    });\n  }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n  var attempt = this.backoff.attempts;\n  this.reconnecting = false;\n  this.backoff.reset();\n  this.updateSocketIds();\n  this.emitAll('reconnect', attempt);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/manager.js","\nmodule.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/index.js\n// module id = 10\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n  if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n  opts = opts || {};\n\n  if (uri && 'object' === typeof uri) {\n    opts = uri;\n    uri = null;\n  }\n\n  if (uri) {\n    uri = parseuri(uri);\n    opts.hostname = uri.host;\n    opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n    opts.port = uri.port;\n    if (uri.query) opts.query = uri.query;\n  } else if (opts.host) {\n    opts.hostname = parseuri(opts.host).host;\n  }\n\n  this.secure = null != opts.secure ? opts.secure\n    : (global.location && 'https:' === location.protocol);\n\n  if (opts.hostname && !opts.port) {\n    // if no port is specified manually, use the protocol default\n    opts.port = this.secure ? '443' : '80';\n  }\n\n  this.agent = opts.agent || false;\n  this.hostname = opts.hostname ||\n    (global.location ? location.hostname : 'localhost');\n  this.port = opts.port || (global.location && location.port\n      ? location.port\n      : (this.secure ? 443 : 80));\n  this.query = opts.query || {};\n  if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n  this.upgrade = false !== opts.upgrade;\n  this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n  this.forceJSONP = !!opts.forceJSONP;\n  this.jsonp = false !== opts.jsonp;\n  this.forceBase64 = !!opts.forceBase64;\n  this.enablesXDR = !!opts.enablesXDR;\n  this.timestampParam = opts.timestampParam || 't';\n  this.timestampRequests = opts.timestampRequests;\n  this.transports = opts.transports || ['polling', 'websocket'];\n  this.transportOptions = opts.transportOptions || {};\n  this.readyState = '';\n  this.writeBuffer = [];\n  this.prevBufferLen = 0;\n  this.policyPort = opts.policyPort || 843;\n  this.rememberUpgrade = opts.rememberUpgrade || false;\n  this.binaryType = null;\n  this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n  this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n  if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n  if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n    this.perMessageDeflate.threshold = 1024;\n  }\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx || null;\n  this.key = opts.key || null;\n  this.passphrase = opts.passphrase || null;\n  this.cert = opts.cert || null;\n  this.ca = opts.ca || null;\n  this.ciphers = opts.ciphers || null;\n  this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n  this.forceNode = !!opts.forceNode;\n\n  // other options for Node.js client\n  var freeGlobal = typeof global === 'object' && global;\n  if (freeGlobal.global === freeGlobal) {\n    if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n      this.extraHeaders = opts.extraHeaders;\n    }\n\n    if (opts.localAddress) {\n      this.localAddress = opts.localAddress;\n    }\n  }\n\n  // set on handshake\n  this.id = null;\n  this.upgrades = null;\n  this.pingInterval = null;\n  this.pingTimeout = null;\n\n  // set on heartbeat\n  this.pingIntervalTimer = null;\n  this.pingTimeoutTimer = null;\n\n  this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n\n  var query = clone(this.query);\n\n  // append engine.io protocol identifier\n  query.EIO = parser.protocol;\n\n  // transport name\n  query.transport = name;\n\n  // per-transport options\n  var options = this.transportOptions[name] || {};\n\n  // session id if we already have one\n  if (this.id) query.sid = this.id;\n\n  var transport = new transports[name]({\n    query: query,\n    socket: this,\n    agent: options.agent || this.agent,\n    hostname: options.hostname || this.hostname,\n    port: options.port || this.port,\n    secure: options.secure || this.secure,\n    path: options.path || this.path,\n    forceJSONP: options.forceJSONP || this.forceJSONP,\n    jsonp: options.jsonp || this.jsonp,\n    forceBase64: options.forceBase64 || this.forceBase64,\n    enablesXDR: options.enablesXDR || this.enablesXDR,\n    timestampRequests: options.timestampRequests || this.timestampRequests,\n    timestampParam: options.timestampParam || this.timestampParam,\n    policyPort: options.policyPort || this.policyPort,\n    pfx: options.pfx || this.pfx,\n    key: options.key || this.key,\n    passphrase: options.passphrase || this.passphrase,\n    cert: options.cert || this.cert,\n    ca: options.ca || this.ca,\n    ciphers: options.ciphers || this.ciphers,\n    rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n    perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n    extraHeaders: options.extraHeaders || this.extraHeaders,\n    forceNode: options.forceNode || this.forceNode,\n    localAddress: options.localAddress || this.localAddress,\n    requestTimeout: options.requestTimeout || this.requestTimeout,\n    protocols: options.protocols || void (0)\n  });\n\n  return transport;\n};\n\nfunction clone (obj) {\n  var o = {};\n  for (var i in obj) {\n    if (obj.hasOwnProperty(i)) {\n      o[i] = obj[i];\n    }\n  }\n  return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n  var transport;\n  if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n    transport = 'websocket';\n  } else if (0 === this.transports.length) {\n    // Emit error on next tick so it can be listened to\n    var self = this;\n    setTimeout(function () {\n      self.emit('error', 'No transports available');\n    }, 0);\n    return;\n  } else {\n    transport = this.transports[0];\n  }\n  this.readyState = 'opening';\n\n  // Retry with the next transport if the transport is disabled (jsonp: false)\n  try {\n    transport = this.createTransport(transport);\n  } catch (e) {\n    this.transports.shift();\n    this.open();\n    return;\n  }\n\n  transport.open();\n  this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n\n  var self = this;\n\n  if (this.transport) {\n\n    this.transport.removeAllListeners();\n  }\n\n  // set up transport\n  this.transport = transport;\n\n  // set up transport listeners\n  transport\n  .on('drain', function () {\n    self.onDrain();\n  })\n  .on('packet', function (packet) {\n    self.onPacket(packet);\n  })\n  .on('error', function (e) {\n    self.onError(e);\n  })\n  .on('close', function () {\n    self.onClose('transport close');\n  });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n\n  var transport = this.createTransport(name, { probe: 1 });\n  var failed = false;\n  var self = this;\n\n  Socket.priorWebsocketSuccess = false;\n\n  function onTransportOpen () {\n    if (self.onlyBinaryUpgrades) {\n      var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n      failed = failed || upgradeLosesBinary;\n    }\n    if (failed) return;\n\n\n    transport.send([{ type: 'ping', data: 'probe' }]);\n    transport.once('packet', function (msg) {\n      if (failed) return;\n      if ('pong' === msg.type && 'probe' === msg.data) {\n\n        self.upgrading = true;\n        self.emit('upgrading', transport);\n        if (!transport) return;\n        Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n\n        self.transport.pause(function () {\n          if (failed) return;\n          if ('closed' === self.readyState) return;\n\n\n          cleanup();\n\n          self.setTransport(transport);\n          transport.send([{ type: 'upgrade' }]);\n          self.emit('upgrade', transport);\n          transport = null;\n          self.upgrading = false;\n          self.flush();\n        });\n      } else {\n\n        var err = new Error('probe error');\n        err.transport = transport.name;\n        self.emit('upgradeError', err);\n      }\n    });\n  }\n\n  function freezeTransport () {\n    if (failed) return;\n\n    // Any callback called by transport should be ignored since now\n    failed = true;\n\n    cleanup();\n\n    transport.close();\n    transport = null;\n  }\n\n  // Handle any error that happens while probing\n  function onerror (err) {\n    var error = new Error('probe error: ' + err);\n    error.transport = transport.name;\n\n    freezeTransport();\n\n\n\n    self.emit('upgradeError', error);\n  }\n\n  function onTransportClose () {\n    onerror('transport closed');\n  }\n\n  // When the socket is closed while we're probing\n  function onclose () {\n    onerror('socket closed');\n  }\n\n  // When the socket is upgraded while we're probing\n  function onupgrade (to) {\n    if (transport && to.name !== transport.name) {\n\n      freezeTransport();\n    }\n  }\n\n  // Remove all listeners on the transport and on self\n  function cleanup () {\n    transport.removeListener('open', onTransportOpen);\n    transport.removeListener('error', onerror);\n    transport.removeListener('close', onTransportClose);\n    self.removeListener('close', onclose);\n    self.removeListener('upgrading', onupgrade);\n  }\n\n  transport.once('open', onTransportOpen);\n  transport.once('error', onerror);\n  transport.once('close', onTransportClose);\n\n  this.once('close', onclose);\n  this.once('upgrading', onupgrade);\n\n  transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n\n  this.readyState = 'open';\n  Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n  this.emit('open');\n  this.flush();\n\n  // we check for `readyState` in case an `open`\n  // listener already closed the socket\n  if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n\n    for (var i = 0, l = this.upgrades.length; i < l; i++) {\n      this.probe(this.upgrades[i]);\n    }\n  }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n  if ('opening' === this.readyState || 'open' === this.readyState ||\n      'closing' === this.readyState) {\n\n\n    this.emit('packet', packet);\n\n    // Socket is live - any packet counts\n    this.emit('heartbeat');\n\n    switch (packet.type) {\n      case 'open':\n        this.onHandshake(JSON.parse(packet.data));\n        break;\n\n      case 'pong':\n        this.setPing();\n        this.emit('pong');\n        break;\n\n      case 'error':\n        var err = new Error('server error');\n        err.code = packet.data;\n        this.onError(err);\n        break;\n\n      case 'message':\n        this.emit('data', packet.data);\n        this.emit('message', packet.data);\n        break;\n    }\n  } else {\n\n  }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n  this.emit('handshake', data);\n  this.id = data.sid;\n  this.transport.query.sid = data.sid;\n  this.upgrades = this.filterUpgrades(data.upgrades);\n  this.pingInterval = data.pingInterval;\n  this.pingTimeout = data.pingTimeout;\n  this.onOpen();\n  // In case open handler closes socket\n  if ('closed' === this.readyState) return;\n  this.setPing();\n\n  // Prolong liveness of socket on heartbeat\n  this.removeListener('heartbeat', this.onHeartbeat);\n  this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n  clearTimeout(this.pingTimeoutTimer);\n  var self = this;\n  self.pingTimeoutTimer = setTimeout(function () {\n    if ('closed' === self.readyState) return;\n    self.onClose('ping timeout');\n  }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n  var self = this;\n  clearTimeout(self.pingIntervalTimer);\n  self.pingIntervalTimer = setTimeout(function () {\n\n    self.ping();\n    self.onHeartbeat(self.pingTimeout);\n  }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n  var self = this;\n  this.sendPacket('ping', function () {\n    self.emit('ping');\n  });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n  this.writeBuffer.splice(0, this.prevBufferLen);\n\n  // setting prevBufferLen = 0 is very important\n  // for example, when upgrading, upgrade packet is sent over,\n  // and a nonzero prevBufferLen could cause problems on `drain`\n  this.prevBufferLen = 0;\n\n  if (0 === this.writeBuffer.length) {\n    this.emit('drain');\n  } else {\n    this.flush();\n  }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n  if ('closed' !== this.readyState && this.transport.writable &&\n    !this.upgrading && this.writeBuffer.length) {\n\n    this.transport.send(this.writeBuffer);\n    // keep track of current length of writeBuffer\n    // splice writeBuffer and callbackBuffer on `drain`\n    this.prevBufferLen = this.writeBuffer.length;\n    this.emit('flush');\n  }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n  this.sendPacket('message', msg, options, fn);\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n  if ('function' === typeof data) {\n    fn = data;\n    data = undefined;\n  }\n\n  if ('function' === typeof options) {\n    fn = options;\n    options = null;\n  }\n\n  if ('closing' === this.readyState || 'closed' === this.readyState) {\n    return;\n  }\n\n  options = options || {};\n  options.compress = false !== options.compress;\n\n  var packet = {\n    type: type,\n    data: data,\n    options: options\n  };\n  this.emit('packetCreate', packet);\n  this.writeBuffer.push(packet);\n  if (fn) this.once('flush', fn);\n  this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.readyState = 'closing';\n\n    var self = this;\n\n    if (this.writeBuffer.length) {\n      this.once('drain', function () {\n        if (this.upgrading) {\n          waitForUpgrade();\n        } else {\n          close();\n        }\n      });\n    } else if (this.upgrading) {\n      waitForUpgrade();\n    } else {\n      close();\n    }\n  }\n\n  function close () {\n    self.onClose('forced close');\n\n    self.transport.close();\n  }\n\n  function cleanupAndClose () {\n    self.removeListener('upgrade', cleanupAndClose);\n    self.removeListener('upgradeError', cleanupAndClose);\n    close();\n  }\n\n  function waitForUpgrade () {\n    // wait for upgrade to finish since we can't send packets while pausing a transport\n    self.once('upgrade', cleanupAndClose);\n    self.once('upgradeError', cleanupAndClose);\n  }\n\n  return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n\n  Socket.priorWebsocketSuccess = false;\n  this.emit('error', err);\n  this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n  if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n\n    var self = this;\n\n    // clear timers\n    clearTimeout(this.pingIntervalTimer);\n    clearTimeout(this.pingTimeoutTimer);\n\n    // stop event from firing again for transport\n    this.transport.removeAllListeners('close');\n\n    // ensure transport won't stay open\n    this.transport.close();\n\n    // ignore further transport communication\n    this.transport.removeAllListeners();\n\n    // set ready state\n    this.readyState = 'closed';\n\n    // clear session id\n    this.id = null;\n\n    // emit close event\n    this.emit('close', reason, desc);\n\n    // clean buffers after, so users can still\n    // grab the buffers on `close` event\n    self.writeBuffer = [];\n    self.prevBufferLen = 0;\n  }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n  var filteredUpgrades = [];\n  for (var i = 0, j = upgrades.length; i < j; i++) {\n    if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n  }\n  return filteredUpgrades;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/socket.js\n// module id = 11\n// module chunks = 0","/**\n * Module dependencies\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n  var xhr;\n  var xd = false;\n  var xs = false;\n  var jsonp = false !== opts.jsonp;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    xd = opts.hostname !== location.hostname || port !== opts.port;\n    xs = opts.secure !== isSSL;\n  }\n\n  opts.xdomain = xd;\n  opts.xscheme = xs;\n  xhr = new XMLHttpRequest(opts);\n\n  if ('open' in xhr && !opts.forceJSONP) {\n    return new XHR(opts);\n  } else {\n    if (!jsonp) throw new Error('JSONP disabled');\n    return new JSONP(opts);\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/index.js\n// module id = 12\n// module chunks = 0","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\n\nmodule.exports = function (opts) {\n  var xdomain = opts.xdomain;\n\n  // scheme must be same when usign XDomainRequest\n  // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n  var xscheme = opts.xscheme;\n\n  // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n  // https://github.com/Automattic/engine.io-client/pull/217\n  var enablesXDR = opts.enablesXDR;\n\n  // XMLHttpRequest can be disabled on IE\n  try {\n    if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n      return new XMLHttpRequest();\n    }\n  } catch (e) { }\n\n  // Use XDomainRequest for IE8 if enablesXDR is true\n  // because loading bar keeps flashing when using jsonp-polling\n  // https://github.com/yujiosaka/socke.io-ie8-loading-example\n  try {\n    if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n      return new XDomainRequest();\n    }\n  } catch (e) { }\n\n  if (!xdomain) {\n    try {\n      return new global[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n    } catch (e) { }\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/xmlhttprequest.js\n// module id = 13\n// module chunks = 0","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n *   - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n  module.exports = typeof XMLHttpRequest !== 'undefined' &&\n    'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n  // if XMLHttp support is disabled in IE then it will throw\n  // when trying to create\n  module.exports = false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/has-cors/index.js\n// module id = 14\n// module chunks = 0","/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n  Polling.call(this, opts);\n  this.requestTimeout = opts.requestTimeout;\n  this.extraHeaders = opts.extraHeaders;\n\n  if (global.location) {\n    var isSSL = 'https:' === location.protocol;\n    var port = location.port;\n\n    // some user agents have empty `location.port`\n    if (!port) {\n      port = isSSL ? 443 : 80;\n    }\n\n    this.xd = opts.hostname !== global.location.hostname ||\n      port !== opts.port;\n    this.xs = opts.secure !== isSSL;\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n  opts = opts || {};\n  opts.uri = this.uri();\n  opts.xd = this.xd;\n  opts.xs = this.xs;\n  opts.agent = this.agent || false;\n  opts.supportsBinary = this.supportsBinary;\n  opts.enablesXDR = this.enablesXDR;\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  opts.requestTimeout = this.requestTimeout;\n\n  // other options for Node.js client\n  opts.extraHeaders = this.extraHeaders;\n\n  return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n  var isBinary = typeof data !== 'string' && data !== undefined;\n  var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n  var self = this;\n  req.on('success', fn);\n  req.on('error', function (err) {\n    self.onError('xhr post error', err);\n  });\n  this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n\n  var req = this.request();\n  var self = this;\n  req.on('data', function (data) {\n    self.onData(data);\n  });\n  req.on('error', function (err) {\n    self.onError('xhr poll error', err);\n  });\n  this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n  this.method = opts.method || 'GET';\n  this.uri = opts.uri;\n  this.xd = !!opts.xd;\n  this.xs = !!opts.xs;\n  this.async = false !== opts.async;\n  this.data = undefined !== opts.data ? opts.data : null;\n  this.agent = opts.agent;\n  this.isBinary = opts.isBinary;\n  this.supportsBinary = opts.supportsBinary;\n  this.enablesXDR = opts.enablesXDR;\n  this.requestTimeout = opts.requestTimeout;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n\n  this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n  var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n\n  var xhr = this.xhr = new XMLHttpRequest(opts);\n  var self = this;\n\n  try {\n\n    xhr.open(this.method, this.uri, this.async);\n    try {\n      if (this.extraHeaders) {\n        xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n        for (var i in this.extraHeaders) {\n          if (this.extraHeaders.hasOwnProperty(i)) {\n            xhr.setRequestHeader(i, this.extraHeaders[i]);\n          }\n        }\n      }\n    } catch (e) {}\n\n    if ('POST' === this.method) {\n      try {\n        if (this.isBinary) {\n          xhr.setRequestHeader('Content-type', 'application/octet-stream');\n        } else {\n          xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n        }\n      } catch (e) {}\n    }\n\n    try {\n      xhr.setRequestHeader('Accept', '*/*');\n    } catch (e) {}\n\n    // ie6 check\n    if ('withCredentials' in xhr) {\n      xhr.withCredentials = true;\n    }\n\n    if (this.requestTimeout) {\n      xhr.timeout = this.requestTimeout;\n    }\n\n    if (this.hasXDR()) {\n      xhr.onload = function () {\n        self.onLoad();\n      };\n      xhr.onerror = function () {\n        self.onError(xhr.responseText);\n      };\n    } else {\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState === 2) {\n          try {\n            var contentType = xhr.getResponseHeader('Content-Type');\n            if (self.supportsBinary && contentType === 'application/octet-stream') {\n              xhr.responseType = 'arraybuffer';\n            }\n          } catch (e) {}\n        }\n        if (4 !== xhr.readyState) return;\n        if (200 === xhr.status || 1223 === xhr.status) {\n          self.onLoad();\n        } else {\n          // make sure the `error` event handler that's user-set\n          // does not throw in the same tick and gets caught here\n          setTimeout(function () {\n            self.onError(xhr.status);\n          }, 0);\n        }\n      };\n    }\n\n\n    xhr.send(this.data);\n  } catch (e) {\n    // Need to defer since .create() is called directly fhrom the constructor\n    // and thus the 'error' event can only be only bound *after* this exception\n    // occurs.  Therefore, also, we cannot throw here at all.\n    setTimeout(function () {\n      self.onError(e);\n    }, 0);\n    return;\n  }\n\n  if (global.document) {\n    this.index = Request.requestsCount++;\n    Request.requests[this.index] = this;\n  }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n  this.emit('success');\n  this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n  this.emit('data', data);\n  this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n  this.emit('error', err);\n  this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n  if ('undefined' === typeof this.xhr || null === this.xhr) {\n    return;\n  }\n  // xmlhttprequest\n  if (this.hasXDR()) {\n    this.xhr.onload = this.xhr.onerror = empty;\n  } else {\n    this.xhr.onreadystatechange = empty;\n  }\n\n  if (fromError) {\n    try {\n      this.xhr.abort();\n    } catch (e) {}\n  }\n\n  if (global.document) {\n    delete Request.requests[this.index];\n  }\n\n  this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n  var data;\n  try {\n    var contentType;\n    try {\n      contentType = this.xhr.getResponseHeader('Content-Type');\n    } catch (e) {}\n    if (contentType === 'application/octet-stream') {\n      data = this.xhr.response || this.xhr.responseText;\n    } else {\n      data = this.xhr.responseText;\n    }\n  } catch (e) {\n    this.onError(e);\n  }\n  if (null != data) {\n    this.onData(data);\n  }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n  return 'undefined' !== typeof global.XDomainRequest && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n  this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (global.document) {\n  if (global.attachEvent) {\n    global.attachEvent('onunload', unloadHandler);\n  } else if (global.addEventListener) {\n    global.addEventListener('beforeunload', unloadHandler, false);\n  }\n}\n\nfunction unloadHandler () {\n  for (var i in Request.requests) {\n    if (Request.requests.hasOwnProperty(i)) {\n      Request.requests[i].abort();\n    }\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling-xhr.js\n// module id = 15\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n  var XMLHttpRequest = require('xmlhttprequest-ssl');\n  var xhr = new XMLHttpRequest({ xdomain: false });\n  return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (!hasXHR2 || forceBase64) {\n    this.supportsBinary = false;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n  this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n  var self = this;\n\n  this.readyState = 'pausing';\n\n  function pause () {\n\n    self.readyState = 'paused';\n    onPause();\n  }\n\n  if (this.polling || !this.writable) {\n    var total = 0;\n\n    if (this.polling) {\n\n      total++;\n      this.once('pollComplete', function () {\n\n        --total || pause();\n      });\n    }\n\n    if (!this.writable) {\n\n      total++;\n      this.once('drain', function () {\n\n        --total || pause();\n      });\n    }\n  } else {\n    pause();\n  }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n\n  this.polling = true;\n  this.doPoll();\n  this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n  var self = this;\n\n  var callback = function (packet, index, total) {\n    // if its the first message we consider the transport open\n    if ('opening' === self.readyState) {\n      self.onOpen();\n    }\n\n    // if its a close packet, we close the ongoing requests\n    if ('close' === packet.type) {\n      self.onClose();\n      return false;\n    }\n\n    // otherwise bypass onData and handle the message\n    self.onPacket(packet);\n  };\n\n  // decode payload\n  parser.decodePayload(data, this.socket.binaryType, callback);\n\n  // if an event did not trigger closing\n  if ('closed' !== this.readyState) {\n    // if we got data we're not polling\n    this.polling = false;\n    this.emit('pollComplete');\n\n    if ('open' === this.readyState) {\n      this.poll();\n    } else {\n\n    }\n  }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n  var self = this;\n\n  function close () {\n\n    self.write([{ type: 'close' }]);\n  }\n\n  if ('open' === this.readyState) {\n\n    close();\n  } else {\n    // in case we're trying to close while\n    // handshaking is in progress (GH-164)\n\n    this.once('open', close);\n  }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n  var callbackfn = function () {\n    self.writable = true;\n    self.emit('drain');\n  };\n\n  parser.encodePayload(packets, this.supportsBinary, function (data) {\n    self.doWrite(data, callbackfn);\n  });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'https' : 'http';\n  var port = '';\n\n  // cache busting is forced\n  if (false !== this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  if (!this.supportsBinary && !query.sid) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // avoid port if default for schema\n  if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n     ('http' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling.js\n// module id = 16\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n  this.path = opts.path;\n  this.hostname = opts.hostname;\n  this.port = opts.port;\n  this.secure = opts.secure;\n  this.query = opts.query;\n  this.timestampParam = opts.timestampParam;\n  this.timestampRequests = opts.timestampRequests;\n  this.readyState = '';\n  this.agent = opts.agent || false;\n  this.socket = opts.socket;\n  this.enablesXDR = opts.enablesXDR;\n\n  // SSL options for Node.js client\n  this.pfx = opts.pfx;\n  this.key = opts.key;\n  this.passphrase = opts.passphrase;\n  this.cert = opts.cert;\n  this.ca = opts.ca;\n  this.ciphers = opts.ciphers;\n  this.rejectUnauthorized = opts.rejectUnauthorized;\n  this.forceNode = opts.forceNode;\n\n  // other options for Node.js client\n  this.extraHeaders = opts.extraHeaders;\n  this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n  var err = new Error(msg);\n  err.type = 'TransportError';\n  err.description = desc;\n  this.emit('error', err);\n  return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n  if ('closed' === this.readyState || '' === this.readyState) {\n    this.readyState = 'opening';\n    this.doOpen();\n  }\n\n  return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n  if ('opening' === this.readyState || 'open' === this.readyState) {\n    this.doClose();\n    this.onClose();\n  }\n\n  return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n  if ('open' === this.readyState) {\n    this.write(packets);\n  } else {\n    throw new Error('Transport not open');\n  }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n  this.readyState = 'open';\n  this.writable = true;\n  this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n  var packet = parser.decodePacket(data, this.socket.binaryType);\n  this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n  this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n  this.readyState = 'closed';\n  this.emit('close');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transport.js\n// module id = 17\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (global && global.ArrayBuffer) {\n  base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n    open:     0    // non-ws\n  , close:    1    // non-ws\n  , ping:     2\n  , pong:     3\n  , message:  4\n  , upgrade:  5\n  , noop:     6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n *     <packet type id> [ <data> ]\n *\n * Example:\n *\n *     5hello world\n *     3\n *     4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = false;\n  }\n\n  if (typeof utf8encode === 'function') {\n    callback = utf8encode;\n    utf8encode = null;\n  }\n\n  var data = (packet.data === undefined)\n    ? undefined\n    : packet.data.buffer || packet.data;\n\n  if (global.ArrayBuffer && data instanceof ArrayBuffer) {\n    return encodeArrayBuffer(packet, supportsBinary, callback);\n  } else if (Blob && data instanceof global.Blob) {\n    return encodeBlob(packet, supportsBinary, callback);\n  }\n\n  // might be an object with { base64: true, data: dataAsBase64String }\n  if (data && data.base64) {\n    return encodeBase64Object(packet, callback);\n  }\n\n  // Sending data as a utf-8 string\n  var encoded = packets[packet.type];\n\n  // data fragment is optional\n  if (undefined !== packet.data) {\n    encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n  }\n\n  return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n  // packet data is an object { base64: true, data: dataAsBase64String }\n  var message = 'b' + exports.packets[packet.type] + packet.data.data;\n  return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var data = packet.data;\n  var contentArray = new Uint8Array(data);\n  var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n  resultBuffer[0] = packets[packet.type];\n  for (var i = 0; i < contentArray.length; i++) {\n    resultBuffer[i+1] = contentArray[i];\n  }\n\n  return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  var fr = new FileReader();\n  fr.onload = function() {\n    packet.data = fr.result;\n    exports.encodePacket(packet, supportsBinary, true, callback);\n  };\n  return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n  if (!supportsBinary) {\n    return exports.encodeBase64Packet(packet, callback);\n  }\n\n  if (dontSendBlobs) {\n    return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n  }\n\n  var length = new Uint8Array(1);\n  length[0] = packets[packet.type];\n  var blob = new Blob([length.buffer, packet.data]);\n\n  return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n  var message = 'b' + exports.packets[packet.type];\n  if (Blob && packet.data instanceof global.Blob) {\n    var fr = new FileReader();\n    fr.onload = function() {\n      var b64 = fr.result.split(',')[1];\n      callback(message + b64);\n    };\n    return fr.readAsDataURL(packet.data);\n  }\n\n  var b64data;\n  try {\n    b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n  } catch (e) {\n    // iPhone Safari doesn't let you apply with typed arrays\n    var typed = new Uint8Array(packet.data);\n    var basic = new Array(typed.length);\n    for (var i = 0; i < typed.length; i++) {\n      basic[i] = typed[i];\n    }\n    b64data = String.fromCharCode.apply(null, basic);\n  }\n  message += global.btoa(b64data);\n  return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n  if (data === undefined) {\n    return err;\n  }\n  // String data\n  if (typeof data === 'string') {\n    if (data.charAt(0) === 'b') {\n      return exports.decodeBase64Packet(data.substr(1), binaryType);\n    }\n\n    if (utf8decode) {\n      data = tryDecode(data);\n      if (data === false) {\n        return err;\n      }\n    }\n    var type = data.charAt(0);\n\n    if (Number(type) != type || !packetslist[type]) {\n      return err;\n    }\n\n    if (data.length > 1) {\n      return { type: packetslist[type], data: data.substring(1) };\n    } else {\n      return { type: packetslist[type] };\n    }\n  }\n\n  var asArray = new Uint8Array(data);\n  var type = asArray[0];\n  var rest = sliceBuffer(data, 1);\n  if (Blob && binaryType === 'blob') {\n    rest = new Blob([rest]);\n  }\n  return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n  try {\n    data = utf8.decode(data, { strict: false });\n  } catch (e) {\n    return false;\n  }\n  return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n  var type = packetslist[msg.charAt(0)];\n  if (!base64encoder) {\n    return { type: type, data: { base64: true, data: msg.substr(1) } };\n  }\n\n  var data = base64encoder.decode(msg.substr(1));\n\n  if (binaryType === 'blob' && Blob) {\n    data = new Blob([data]);\n  }\n\n  return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n *     <length>:data\n *\n * Example:\n *\n *     11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n  if (typeof supportsBinary === 'function') {\n    callback = supportsBinary;\n    supportsBinary = null;\n  }\n\n  var isBinary = hasBinary(packets);\n\n  if (supportsBinary && isBinary) {\n    if (Blob && !dontSendBlobs) {\n      return exports.encodePayloadAsBlob(packets, callback);\n    }\n\n    return exports.encodePayloadAsArrayBuffer(packets, callback);\n  }\n\n  if (!packets.length) {\n    return callback('0:');\n  }\n\n  function setLengthHeader(message) {\n    return message.length + ':' + message;\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n      doneCallback(null, setLengthHeader(message));\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(results.join(''));\n  });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n  var result = new Array(ary.length);\n  var next = after(ary.length, done);\n\n  var eachWithIndex = function(i, el, cb) {\n    each(el, function(error, msg) {\n      result[i] = msg;\n      cb(error, result);\n    });\n  };\n\n  for (var i = 0; i < ary.length; i++) {\n    eachWithIndex(i, ary[i], next);\n  }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n  if (typeof data !== 'string') {\n    return exports.decodePayloadAsBinary(data, binaryType, callback);\n  }\n\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var packet;\n  if (data === '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n  var length = '', n, msg;\n\n  for (var i = 0, l = data.length; i < l; i++) {\n    var chr = data.charAt(i);\n\n    if (chr !== ':') {\n      length += chr;\n      continue;\n    }\n\n    if (length === '' || (length != (n = Number(length)))) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    msg = data.substr(i + 1, n);\n\n    if (length != msg.length) {\n      // parser error - ignoring payload\n      return callback(err, 0, 1);\n    }\n\n    if (msg.length) {\n      packet = exports.decodePacket(msg, binaryType, false);\n\n      if (err.type === packet.type && err.data === packet.data) {\n        // parser error in individual packet - ignoring payload\n        return callback(err, 0, 1);\n      }\n\n      var ret = callback(packet, i + n, l);\n      if (false === ret) return;\n    }\n\n    // advance cursor\n    i += n;\n    length = '';\n  }\n\n  if (length !== '') {\n    // parser error - ignoring payload\n    return callback(err, 0, 1);\n  }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number\n * 255><data>\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n  if (!packets.length) {\n    return callback(new ArrayBuffer(0));\n  }\n\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(data) {\n      return doneCallback(null, data);\n    });\n  }\n\n  map(packets, encodeOne, function(err, encodedPackets) {\n    var totalLength = encodedPackets.reduce(function(acc, p) {\n      var len;\n      if (typeof p === 'string'){\n        len = p.length;\n      } else {\n        len = p.byteLength;\n      }\n      return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n    }, 0);\n\n    var resultArray = new Uint8Array(totalLength);\n\n    var bufferIndex = 0;\n    encodedPackets.forEach(function(p) {\n      var isString = typeof p === 'string';\n      var ab = p;\n      if (isString) {\n        var view = new Uint8Array(p.length);\n        for (var i = 0; i < p.length; i++) {\n          view[i] = p.charCodeAt(i);\n        }\n        ab = view.buffer;\n      }\n\n      if (isString) { // not true binary\n        resultArray[bufferIndex++] = 0;\n      } else { // true binary\n        resultArray[bufferIndex++] = 1;\n      }\n\n      var lenStr = ab.byteLength.toString();\n      for (var i = 0; i < lenStr.length; i++) {\n        resultArray[bufferIndex++] = parseInt(lenStr[i]);\n      }\n      resultArray[bufferIndex++] = 255;\n\n      var view = new Uint8Array(ab);\n      for (var i = 0; i < view.length; i++) {\n        resultArray[bufferIndex++] = view[i];\n      }\n    });\n\n    return callback(resultArray.buffer);\n  });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n  function encodeOne(packet, doneCallback) {\n    exports.encodePacket(packet, true, true, function(encoded) {\n      var binaryIdentifier = new Uint8Array(1);\n      binaryIdentifier[0] = 1;\n      if (typeof encoded === 'string') {\n        var view = new Uint8Array(encoded.length);\n        for (var i = 0; i < encoded.length; i++) {\n          view[i] = encoded.charCodeAt(i);\n        }\n        encoded = view.buffer;\n        binaryIdentifier[0] = 0;\n      }\n\n      var len = (encoded instanceof ArrayBuffer)\n        ? encoded.byteLength\n        : encoded.size;\n\n      var lenStr = len.toString();\n      var lengthAry = new Uint8Array(lenStr.length + 1);\n      for (var i = 0; i < lenStr.length; i++) {\n        lengthAry[i] = parseInt(lenStr[i]);\n      }\n      lengthAry[lenStr.length] = 255;\n\n      if (Blob) {\n        var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n        doneCallback(null, blob);\n      }\n    });\n  }\n\n  map(packets, encodeOne, function(err, results) {\n    return callback(new Blob(results));\n  });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n  if (typeof binaryType === 'function') {\n    callback = binaryType;\n    binaryType = null;\n  }\n\n  var bufferTail = data;\n  var buffers = [];\n\n  while (bufferTail.byteLength > 0) {\n    var tailArray = new Uint8Array(bufferTail);\n    var isString = tailArray[0] === 0;\n    var msgLength = '';\n\n    for (var i = 1; ; i++) {\n      if (tailArray[i] === 255) break;\n\n      // 310 = char length of Number.MAX_VALUE\n      if (msgLength.length > 310) {\n        return callback(err, 0, 1);\n      }\n\n      msgLength += tailArray[i];\n    }\n\n    bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n    msgLength = parseInt(msgLength);\n\n    var msg = sliceBuffer(bufferTail, 0, msgLength);\n    if (isString) {\n      try {\n        msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n      } catch (e) {\n        // iPhone Safari doesn't let you apply to typed arrays\n        var typed = new Uint8Array(msg);\n        msg = '';\n        for (var i = 0; i < typed.length; i++) {\n          msg += String.fromCharCode(typed[i]);\n        }\n      }\n    }\n\n    buffers.push(msg);\n    bufferTail = sliceBuffer(bufferTail, msgLength);\n  }\n\n  var total = buffers.length;\n  buffers.forEach(function(buffer, i) {\n    callback(exports.decodePacket(buffer, binaryType, true), i, total);\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/browser.js\n// module id = 18\n// module chunks = 0","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n  var arr = [];\n  var has = Object.prototype.hasOwnProperty;\n\n  for (var i in obj) {\n    if (has.call(obj, i)) {\n      arr.push(i);\n    }\n  }\n  return arr;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/keys.js\n// module id = 19\n// module chunks = 0","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof global.Blob === 'function' || toString.call(global.Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof global.File === 'function' || toString.call(global.File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n  if (!obj || typeof obj !== 'object') {\n    return false;\n  }\n\n  if (isArray(obj)) {\n    for (var i = 0, l = obj.length; i < l; i++) {\n      if (hasBinary(obj[i])) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  if ((typeof global.Buffer === 'function' && global.Buffer.isBuffer && global.Buffer.isBuffer(obj)) ||\n     (typeof global.ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n     (withNativeBlob && obj instanceof Blob) ||\n     (withNativeFile && obj instanceof File)\n    ) {\n    return true;\n  }\n\n  // see: https://github.com/Automattic/has-binary/pull/4\n  if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n    return hasBinary(obj.toJSON(), true);\n  }\n\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/has-binary2/index.js\n// module id = 20\n// module chunks = 0","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n  var bytes = arraybuffer.byteLength;\n  start = start || 0;\n  end = end || bytes;\n\n  if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n  if (start < 0) { start += bytes; }\n  if (end < 0) { end += bytes; }\n  if (end > bytes) { end = bytes; }\n\n  if (start >= bytes || start >= end || bytes === 0) {\n    return new ArrayBuffer(0);\n  }\n\n  var abv = new Uint8Array(arraybuffer);\n  var result = new Uint8Array(end - start);\n  for (var i = start, ii = 0; i < end; i++, ii++) {\n    result[ii] = abv[i];\n  }\n  return result.buffer;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/arraybuffer.slice/index.js\n// module id = 21\n// module chunks = 0","module.exports = after\n\nfunction after(count, callback, err_cb) {\n    var bail = false\n    err_cb = err_cb || noop\n    proxy.count = count\n\n    return (count === 0) ? callback() : proxy\n\n    function proxy(err, result) {\n        if (proxy.count <= 0) {\n            throw new Error('after called too many times')\n        }\n        --proxy.count\n\n        // after first error, rest are passed to err_cb\n        if (err) {\n            bail = true\n            callback(err)\n            // future error callbacks will go to error handler\n            callback = err_cb\n        } else if (proxy.count === 0 && !bail) {\n            callback(null, result)\n        }\n    }\n}\n\nfunction noop() {}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/after/index.js\n// module id = 22\n// module chunks = 0","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint, strict) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tif (strict) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t\t' is not a scalar value'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint, strict) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\t\tcodePoint = 0xFFFD;\n\t\t\t}\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol(strict) {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString, opts) {\n\t\topts = opts || {};\n\t\tvar strict = false !== opts.strict;\n\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.1.2',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-parser/lib/utf8.js\n// module id = 23\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 24\n// module chunks = 0","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(){\n  \"use strict\";\n\n  var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n  // Use a lookup table to find the index.\n  var lookup = new Uint8Array(256);\n  for (var i = 0; i < chars.length; i++) {\n    lookup[chars.charCodeAt(i)] = i;\n  }\n\n  exports.encode = function(arraybuffer) {\n    var bytes = new Uint8Array(arraybuffer),\n    i, len = bytes.length, base64 = \"\";\n\n    for (i = 0; i < len; i+=3) {\n      base64 += chars[bytes[i] >> 2];\n      base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n      base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n      base64 += chars[bytes[i + 2] & 63];\n    }\n\n    if ((len % 3) === 2) {\n      base64 = base64.substring(0, base64.length - 1) + \"=\";\n    } else if (len % 3 === 1) {\n      base64 = base64.substring(0, base64.length - 2) + \"==\";\n    }\n\n    return base64;\n  };\n\n  exports.decode =  function(base64) {\n    var bufferLength = base64.length * 0.75,\n    len = base64.length, i, p = 0,\n    encoded1, encoded2, encoded3, encoded4;\n\n    if (base64[base64.length - 1] === \"=\") {\n      bufferLength--;\n      if (base64[base64.length - 2] === \"=\") {\n        bufferLength--;\n      }\n    }\n\n    var arraybuffer = new ArrayBuffer(bufferLength),\n    bytes = new Uint8Array(arraybuffer);\n\n    for (i = 0; i < len; i+=4) {\n      encoded1 = lookup[base64.charCodeAt(i)];\n      encoded2 = lookup[base64.charCodeAt(i+1)];\n      encoded3 = lookup[base64.charCodeAt(i+2)];\n      encoded4 = lookup[base64.charCodeAt(i+3)];\n\n      bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n      bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n      bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n\n    return arraybuffer;\n  };\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/base64-arraybuffer/lib/base64-arraybuffer.js\n// module id = 25\n// module chunks = 0","/**\n * Create a blob builder even when vendor prefixes exist\n */\n\nvar BlobBuilder = global.BlobBuilder\n  || global.WebKitBlobBuilder\n  || global.MSBlobBuilder\n  || global.MozBlobBuilder;\n\n/**\n * Check if Blob constructor is supported\n */\n\nvar blobSupported = (function() {\n  try {\n    var a = new Blob(['hi']);\n    return a.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if Blob constructor supports ArrayBufferViews\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\n */\n\nvar blobSupportsArrayBufferView = blobSupported && (function() {\n  try {\n    var b = new Blob([new Uint8Array([1,2])]);\n    return b.size === 2;\n  } catch(e) {\n    return false;\n  }\n})();\n\n/**\n * Check if BlobBuilder is supported\n */\n\nvar blobBuilderSupported = BlobBuilder\n  && BlobBuilder.prototype.append\n  && BlobBuilder.prototype.getBlob;\n\n/**\n * Helper function that maps ArrayBufferViews to ArrayBuffers\n * Used by BlobBuilder constructor and old browsers that didn't\n * support it in the Blob constructor.\n */\n\nfunction mapArrayBufferViews(ary) {\n  for (var i = 0; i < ary.length; i++) {\n    var chunk = ary[i];\n    if (chunk.buffer instanceof ArrayBuffer) {\n      var buf = chunk.buffer;\n\n      // if this is a subarray, make a copy so we only\n      // include the subarray region from the underlying buffer\n      if (chunk.byteLength !== buf.byteLength) {\n        var copy = new Uint8Array(chunk.byteLength);\n        copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n        buf = copy.buffer;\n      }\n\n      ary[i] = buf;\n    }\n  }\n}\n\nfunction BlobBuilderConstructor(ary, options) {\n  options = options || {};\n\n  var bb = new BlobBuilder();\n  mapArrayBufferViews(ary);\n\n  for (var i = 0; i < ary.length; i++) {\n    bb.append(ary[i]);\n  }\n\n  return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n};\n\nfunction BlobConstructor(ary, options) {\n  mapArrayBufferViews(ary);\n  return new Blob(ary, options || {});\n};\n\nmodule.exports = (function() {\n  if (blobSupported) {\n    return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n  } else if (blobBuilderSupported) {\n    return BlobBuilderConstructor;\n  } else {\n    return undefined;\n  }\n})();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/blob/index.js\n// module id = 26\n// module chunks = 0","/**\r\n * Compiles a querystring\r\n * Returns string representation of the object\r\n *\r\n * @param {Object}\r\n * @api private\r\n */\r\n\r\nexports.encode = function (obj) {\r\n  var str = '';\r\n\r\n  for (var i in obj) {\r\n    if (obj.hasOwnProperty(i)) {\r\n      if (str.length) str += '&';\r\n      str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\r\n    }\r\n  }\r\n\r\n  return str;\r\n};\r\n\r\n/**\r\n * Parses a simple querystring into an object\r\n *\r\n * @param {String} qs\r\n * @api private\r\n */\r\n\r\nexports.decode = function(qs){\r\n  var qry = {};\r\n  var pairs = qs.split('&');\r\n  for (var i = 0, l = pairs.length; i < l; i++) {\r\n    var pair = pairs[i].split('=');\r\n    qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\r\n  }\r\n  return qry;\r\n};\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/parseqs/index.js\n// module id = 27\n// module chunks = 0","\nmodule.exports = function(a, b){\n  var fn = function(){};\n  fn.prototype = b.prototype;\n  a.prototype = new fn;\n  a.prototype.constructor = a;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-inherit/index.js\n// module id = 28\n// module chunks = 0","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n  , length = 64\n  , map = {}\n  , seed = 0\n  , i = 0\n  , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n  var encoded = '';\n\n  do {\n    encoded = alphabet[num % length] + encoded;\n    num = Math.floor(num / length);\n  } while (num > 0);\n\n  return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n  var decoded = 0;\n\n  for (i = 0; i < str.length; i++) {\n    decoded = decoded * length + map[str.charAt(i)];\n  }\n\n  return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n  var now = encode(+new Date());\n\n  if (now !== prev) return seed = 0, prev = now;\n  return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/yeast/index.js\n// module id = 29\n// module chunks = 0","\n/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n  Polling.call(this, opts);\n\n  this.query = this.query || {};\n\n  // define global callbacks array if not present\n  // we do this here (lazily) to avoid unneeded global pollution\n  if (!callbacks) {\n    // we need to consider multiple engines in the same page\n    if (!global.___eio) global.___eio = [];\n    callbacks = global.___eio;\n  }\n\n  // callback identifier\n  this.index = callbacks.length;\n\n  // add callback to jsonp global\n  var self = this;\n  callbacks.push(function (msg) {\n    self.onData(msg);\n  });\n\n  // append to query string\n  this.query.j = this.index;\n\n  // prevent spurious errors from being emitted when the window is unloaded\n  if (global.document && global.addEventListener) {\n    global.addEventListener('beforeunload', function () {\n      if (self.script) self.script.onerror = empty;\n    }, false);\n  }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  if (this.form) {\n    this.form.parentNode.removeChild(this.form);\n    this.form = null;\n    this.iframe = null;\n  }\n\n  Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n  var self = this;\n  var script = document.createElement('script');\n\n  if (this.script) {\n    this.script.parentNode.removeChild(this.script);\n    this.script = null;\n  }\n\n  script.async = true;\n  script.src = this.uri();\n  script.onerror = function (e) {\n    self.onError('jsonp poll error', e);\n  };\n\n  var insertAt = document.getElementsByTagName('script')[0];\n  if (insertAt) {\n    insertAt.parentNode.insertBefore(script, insertAt);\n  } else {\n    (document.head || document.body).appendChild(script);\n  }\n  this.script = script;\n\n  var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n  if (isUAgecko) {\n    setTimeout(function () {\n      var iframe = document.createElement('iframe');\n      document.body.appendChild(iframe);\n      document.body.removeChild(iframe);\n    }, 100);\n  }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n  var self = this;\n\n  if (!this.form) {\n    var form = document.createElement('form');\n    var area = document.createElement('textarea');\n    var id = this.iframeId = 'eio_iframe_' + this.index;\n    var iframe;\n\n    form.className = 'socketio';\n    form.style.position = 'absolute';\n    form.style.top = '-1000px';\n    form.style.left = '-1000px';\n    form.target = id;\n    form.method = 'POST';\n    form.setAttribute('accept-charset', 'utf-8');\n    area.name = 'd';\n    form.appendChild(area);\n    document.body.appendChild(form);\n\n    this.form = form;\n    this.area = area;\n  }\n\n  this.form.action = this.uri();\n\n  function complete () {\n    initIframe();\n    fn();\n  }\n\n  function initIframe () {\n    if (self.iframe) {\n      try {\n        self.form.removeChild(self.iframe);\n      } catch (e) {\n        self.onError('jsonp polling iframe removal error', e);\n      }\n    }\n\n    try {\n      // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n      var html = '<iframe src=\"javascript:0\" name=\"' + self.iframeId + '\">';\n      iframe = document.createElement(html);\n    } catch (e) {\n      iframe = document.createElement('iframe');\n      iframe.name = self.iframeId;\n      iframe.src = 'javascript:0';\n    }\n\n    iframe.id = self.iframeId;\n\n    self.form.appendChild(iframe);\n    self.iframe = iframe;\n  }\n\n  initIframe();\n\n  // escape \\n to prevent it from being converted into \\r\\n by some UAs\n  // double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side\n  data = data.replace(rEscapedNewline, '\\\\\\n');\n  this.area.value = data.replace(rNewline, '\\\\n');\n\n  try {\n    this.form.submit();\n  } catch (e) {}\n\n  if (this.iframe.attachEvent) {\n    this.iframe.onreadystatechange = function () {\n      if (self.iframe.readyState === 'complete') {\n        complete();\n      }\n    };\n  } else {\n    this.iframe.onload = complete;\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/polling-jsonp.js\n// module id = 30\n// module chunks = 0","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parser = require('engine.io-parser');\nvar parseqs = require('parseqs');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:websocket');\nvar BrowserWebSocket = global.WebSocket || global.MozWebSocket;\nvar NodeWebSocket;\nif (typeof window === 'undefined') {\n  try {\n    NodeWebSocket = require('ws');\n  } catch (e) { }\n}\n\n/**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */\n\nvar WebSocket = BrowserWebSocket;\nif (!WebSocket && typeof window === 'undefined') {\n  WebSocket = NodeWebSocket;\n}\n\n/**\n * Module exports.\n */\n\nmodule.exports = WS;\n\n/**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n\nfunction WS (opts) {\n  var forceBase64 = (opts && opts.forceBase64);\n  if (forceBase64) {\n    this.supportsBinary = false;\n  }\n  this.perMessageDeflate = opts.perMessageDeflate;\n  this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n  this.protocols = opts.protocols;\n  if (!this.usingBrowserWebSocket) {\n    WebSocket = NodeWebSocket;\n  }\n  Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(WS, Transport);\n\n/**\n * Transport name.\n *\n * @api public\n */\n\nWS.prototype.name = 'websocket';\n\n/*\n * WebSockets support binary\n */\n\nWS.prototype.supportsBinary = true;\n\n/**\n * Opens socket.\n *\n * @api private\n */\n\nWS.prototype.doOpen = function () {\n  if (!this.check()) {\n    // let probe timeout\n    return;\n  }\n\n  var uri = this.uri();\n  var protocols = this.protocols;\n  var opts = {\n    agent: this.agent,\n    perMessageDeflate: this.perMessageDeflate\n  };\n\n  // SSL options for Node.js client\n  opts.pfx = this.pfx;\n  opts.key = this.key;\n  opts.passphrase = this.passphrase;\n  opts.cert = this.cert;\n  opts.ca = this.ca;\n  opts.ciphers = this.ciphers;\n  opts.rejectUnauthorized = this.rejectUnauthorized;\n  if (this.extraHeaders) {\n    opts.headers = this.extraHeaders;\n  }\n  if (this.localAddress) {\n    opts.localAddress = this.localAddress;\n  }\n\n  try {\n    this.ws = this.usingBrowserWebSocket ? (protocols ? new WebSocket(uri, protocols) : new WebSocket(uri)) : new WebSocket(uri, protocols, opts);\n  } catch (err) {\n    return this.emit('error', err);\n  }\n\n  if (this.ws.binaryType === undefined) {\n    this.supportsBinary = false;\n  }\n\n  if (this.ws.supports && this.ws.supports.binary) {\n    this.supportsBinary = true;\n    this.ws.binaryType = 'nodebuffer';\n  } else {\n    this.ws.binaryType = 'arraybuffer';\n  }\n\n  this.addEventListeners();\n};\n\n/**\n * Adds event listeners to the socket\n *\n * @api private\n */\n\nWS.prototype.addEventListeners = function () {\n  var self = this;\n\n  this.ws.onopen = function () {\n    self.onOpen();\n  };\n  this.ws.onclose = function () {\n    self.onClose();\n  };\n  this.ws.onmessage = function (ev) {\n    self.onData(ev.data);\n  };\n  this.ws.onerror = function (e) {\n    self.onError('websocket error', e);\n  };\n};\n\n/**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n\nWS.prototype.write = function (packets) {\n  var self = this;\n  this.writable = false;\n\n  // encodePacket efficient as it uses WS framing\n  // no need for encodePayload\n  var total = packets.length;\n  for (var i = 0, l = total; i < l; i++) {\n    (function (packet) {\n      parser.encodePacket(packet, self.supportsBinary, function (data) {\n        if (!self.usingBrowserWebSocket) {\n          // always create a new object (GH-437)\n          var opts = {};\n          if (packet.options) {\n            opts.compress = packet.options.compress;\n          }\n\n          if (self.perMessageDeflate) {\n            var len = 'string' === typeof data ? global.Buffer.byteLength(data) : data.length;\n            if (len < self.perMessageDeflate.threshold) {\n              opts.compress = false;\n            }\n          }\n        }\n\n        // Sometimes the websocket has already been closed but the browser didn't\n        // have a chance of informing us about it yet, in that case send will\n        // throw an error\n        try {\n          if (self.usingBrowserWebSocket) {\n            // TypeError is thrown when passing the second argument on Safari\n            self.ws.send(data);\n          } else {\n            self.ws.send(data, opts);\n          }\n        } catch (e) {\n\n        }\n\n        --total || done();\n      });\n    })(packets[i]);\n  }\n\n  function done () {\n    self.emit('flush');\n\n    // fake drain\n    // defer to next tick to allow Socket to clear writeBuffer\n    setTimeout(function () {\n      self.writable = true;\n      self.emit('drain');\n    }, 0);\n  }\n};\n\n/**\n * Called upon close\n *\n * @api private\n */\n\nWS.prototype.onClose = function () {\n  Transport.prototype.onClose.call(this);\n};\n\n/**\n * Closes socket.\n *\n * @api private\n */\n\nWS.prototype.doClose = function () {\n  if (typeof this.ws !== 'undefined') {\n    this.ws.close();\n  }\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nWS.prototype.uri = function () {\n  var query = this.query || {};\n  var schema = this.secure ? 'wss' : 'ws';\n  var port = '';\n\n  // avoid port if default for schema\n  if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n    ('ws' === schema && Number(this.port) !== 80))) {\n    port = ':' + this.port;\n  }\n\n  // append timestamp to URI\n  if (this.timestampRequests) {\n    query[this.timestampParam] = yeast();\n  }\n\n  // communicate binary support capabilities\n  if (!this.supportsBinary) {\n    query.b64 = 1;\n  }\n\n  query = parseqs.encode(query);\n\n  // prepend ? to query\n  if (query.length) {\n    query = '?' + query;\n  }\n\n  var ipv6 = this.hostname.indexOf(':') !== -1;\n  return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n/**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n\nWS.prototype.check = function () {\n  return !!WebSocket && !('__initialize' in WebSocket && this.name === WS.prototype.name);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/engine.io-client/lib/transports/websocket.js\n// module id = 31\n// module chunks = 0","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n  if (indexOf) return arr.indexOf(obj);\n  for (var i = 0; i < arr.length; ++i) {\n    if (arr[i] === obj) return i;\n  }\n  return -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/indexof/index.js\n// module id = 33\n// module chunks = 0","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\nvar hasBin = require('has-binary2');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n  connect: 1,\n  connect_error: 1,\n  connect_timeout: 1,\n  connecting: 1,\n  disconnect: 1,\n  error: 1,\n  reconnect: 1,\n  reconnect_attempt: 1,\n  reconnect_failed: 1,\n  reconnect_error: 1,\n  reconnecting: 1,\n  ping: 1,\n  pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n  this.io = io;\n  this.nsp = nsp;\n  this.json = this; // compat\n  this.ids = 0;\n  this.acks = {};\n  this.receiveBuffer = [];\n  this.sendBuffer = [];\n  this.connected = false;\n  this.disconnected = true;\n  this.flags = {};\n  if (opts && opts.query) {\n    this.query = opts.query;\n  }\n  if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n  if (this.subs) return;\n\n  var io = this.io;\n  this.subs = [\n    on(io, 'open', bind(this, 'onopen')),\n    on(io, 'packet', bind(this, 'onpacket')),\n    on(io, 'close', bind(this, 'onclose'))\n  ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n  if (this.connected) return this;\n\n  this.subEvents();\n  this.io.open(); // ensure open\n  if ('open' === this.io.readyState) this.onopen();\n  this.emit('connecting');\n  return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n  var args = toArray(arguments);\n  args.unshift('message');\n  this.emit.apply(this, args);\n  return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n  if (events.hasOwnProperty(ev)) {\n    emit.apply(this, arguments);\n    return this;\n  }\n\n  var args = toArray(arguments);\n  var packet = {\n    type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n    data: args\n  };\n\n  packet.options = {};\n  packet.options.compress = !this.flags || false !== this.flags.compress;\n\n  // event ack callback\n  if ('function' === typeof args[args.length - 1]) {\n\n    this.acks[this.ids] = args.pop();\n    packet.id = this.ids++;\n  }\n\n  if (this.connected) {\n    this.packet(packet);\n  } else {\n    this.sendBuffer.push(packet);\n  }\n\n  this.flags = {};\n\n  return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n  packet.nsp = this.nsp;\n  this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n\n\n  // write connect packet if necessary\n  if ('/' !== this.nsp) {\n    if (this.query) {\n      var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n\n      this.packet({type: parser.CONNECT, query: query});\n    } else {\n      this.packet({type: parser.CONNECT});\n    }\n  }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n\n  this.connected = false;\n  this.disconnected = true;\n  delete this.id;\n  this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n  var sameNamespace = packet.nsp === this.nsp;\n  var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\n  if (!sameNamespace && !rootNamespaceError) return;\n\n  switch (packet.type) {\n    case parser.CONNECT:\n      this.onconnect();\n      break;\n\n    case parser.EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.BINARY_EVENT:\n      this.onevent(packet);\n      break;\n\n    case parser.ACK:\n      this.onack(packet);\n      break;\n\n    case parser.BINARY_ACK:\n      this.onack(packet);\n      break;\n\n    case parser.DISCONNECT:\n      this.ondisconnect();\n      break;\n\n    case parser.ERROR:\n      this.emit('error', packet.data);\n      break;\n  }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n  var args = packet.data || [];\n\n\n  if (null != packet.id) {\n\n    args.push(this.ack(packet.id));\n  }\n\n  if (this.connected) {\n    emit.apply(this, args);\n  } else {\n    this.receiveBuffer.push(args);\n  }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n  var self = this;\n  var sent = false;\n  return function () {\n    // prevent double callbacks\n    if (sent) return;\n    sent = true;\n    var args = toArray(arguments);\n\n\n    self.packet({\n      type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n      id: id,\n      data: args\n    });\n  };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n  var ack = this.acks[packet.id];\n  if ('function' === typeof ack) {\n\n    ack.apply(this, packet.data);\n    delete this.acks[packet.id];\n  } else {\n\n  }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n  this.connected = true;\n  this.disconnected = false;\n  this.emit('connect');\n  this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n  var i;\n  for (i = 0; i < this.receiveBuffer.length; i++) {\n    emit.apply(this, this.receiveBuffer[i]);\n  }\n  this.receiveBuffer = [];\n\n  for (i = 0; i < this.sendBuffer.length; i++) {\n    this.packet(this.sendBuffer[i]);\n  }\n  this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n\n  this.destroy();\n  this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n  if (this.subs) {\n    // clean subscriptions to avoid reconnections\n    for (var i = 0; i < this.subs.length; i++) {\n      this.subs[i].destroy();\n    }\n    this.subs = null;\n  }\n\n  this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n  if (this.connected) {\n\n    this.packet({ type: parser.DISCONNECT });\n  }\n\n  // remove socket from pool\n  this.destroy();\n\n  if (this.connected) {\n    // fire events\n    this.onclose('io client disconnect');\n  }\n  return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n  this.flags.compress = compress;\n  return this;\n};\n\n/**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.binary = function (binary) {\n  this.flags.binary = binary;\n  return this;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./lib/socket.js","module.exports = toArray\n\nfunction toArray(list, index) {\n    var array = []\n\n    index = index || 0\n\n    for (var i = index || 0; i < list.length; i++) {\n        array[i - index] = list[i]\n    }\n\n    return array\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/to-array/index.js\n// module id = 35\n// module chunks = 0","\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n  obj.on(ev, fn);\n  return {\n    destroy: function () {\n      obj.removeListener(ev, fn);\n    }\n  };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./lib/on.js","/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Bind `obj` to `fn`.\n *\n * @param {Object} obj\n * @param {Function|String} fn or string\n * @return {Function}\n * @api public\n */\n\nmodule.exports = function(obj, fn){\n  if ('string' == typeof fn) fn = obj[fn];\n  if ('function' != typeof fn) throw new Error('bind() requires a function');\n  var args = slice.call(arguments, 2);\n  return function(){\n    return fn.apply(obj, args.concat(slice.call(arguments)));\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/component-bind/index.js\n// module id = 37\n// module chunks = 0","\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n  opts = opts || {};\n  this.ms = opts.min || 100;\n  this.max = opts.max || 10000;\n  this.factor = opts.factor || 2;\n  this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n  this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n  var ms = this.ms * Math.pow(this.factor, this.attempts++);\n  if (this.jitter) {\n    var rand =  Math.random();\n    var deviation = Math.floor(rand * this.jitter * ms);\n    ms = (Math.floor(rand * 10) & 1) == 0  ? ms - deviation : ms + deviation;\n  }\n  return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n  this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n  this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n  this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n  this.jitter = jitter;\n};\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/backo2/index.js\n// module id = 38\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.slim.js-5- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.slim.js:6:!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.io=e():t.io=e()}(this,function(){return function(t){function e(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return t[n].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){"use strict";function n(t,e){"object"===("undefined"==typeof t?"undefined":o(t))&&(e=t,t=void 0),e=e||{};var r,n=i(t),s=n.source,h=n.id,p=n.path,u=c[h]&&p in c[h].nsps,f=e.forceNew||e["force new connection"]||!1===e.multiplex||u;return f?r=a(s,e):(c[h]||(c[h]=a(s,e)),r=c[h]),n.query&&!e.query&&(e.query=n.query),r.socket(n.path,e)}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=r(1),s=r(4),a=r(9);r(3)("socket.io-client");t.exports=e=n;var c=e.managers={};e.protocol=s.protocol,e.connect=n,e.Manager=r(9),e.Socket=r(34)},function(t,e,r){(function(e){"use strict";function n(t,r){var n=t;r=r||e.location,null==t&&(t=r.protocol+"//"+r.host),"string"==typeof t&&("/"===t.charAt(0)&&(t="/"===t.charAt(1)?r.protocol+t:r.host+t),/^(https?|wss?):\/\//.test(t)||(t="undefined"!=typeof r?r.protocol+"//"+t:"https://"+t),n=o(t)),n.port||(/^(http|ws)$/.test(n.protocol)?n.port="80":/^(http|ws)s$/.test(n.protocol)&&(n.port="443")),n.path=n.path||"/";var i=n.host.indexOf(":")!==-1,s=i?"["+n.host+"]":n.host;return n.id=n.protocol+"://"+s+":"+n.port,n.href=n.protocol+"://"+s+(r&&r.port===n.port?"":":"+n.port),n}var o=r(2);r(3)("socket.io-client:url");t.exports=n}).call(e,function(){return this}())},function(t,e){var r=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,n=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];t.exports=function(t){var e=t,o=t.indexOf("["),i=t.indexOf("]");o!=-1&&i!=-1&&(t=t.substring(0,o)+t.substring(o,i).replace(/:/g,";")+t.substring(i,t.length));for(var s=r.exec(t||""),a={},c=14;c--;)a[n[c]]=s[c]||"";return o!=-1&&i!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a}},function(t,e){"use strict";t.exports=function(){return function(){}}},function(t,e,r){function n(){}function o(t){var r=""+t.type;if(e.BINARY_EVENT!==t.type&&e.BINARY_ACK!==t.type||(r+=t.attachments+"-"),t.nsp&&"/"!==t.nsp&&(r+=t.nsp+","),null!=t.id&&(r+=t.id),null!=t.data){var n=i(t.data);if(n===!1)return m;r+=n}return r}function i(t){try{return JSON.stringify(t)}catch(t){return!1}}function s(t,e){function r(t){var r=l.deconstructPacket(t),n=o(r.packet),i=r.buffers;i.unshift(n),e(i)}l.removeBlobs(t,r)}function a(){this.reconstructor=null}function c(t){var r=0,n={type:Number(t.charAt(0))};if(null==e.types[n.type])return u("unknown packet type "+n.type);if(e.BINARY_EVENT===n.type||e.BINARY_ACK===n.type){for(var o="";"-"!==t.charAt(++r)&&(o+=t.charAt(r),r!=t.length););if(o!=Number(o)||"-"!==t.charAt(r))throw new Error("Illegal attachments");n.attachments=Number(o)}if("/"===t.charAt(r+1))for(n.nsp="";++r;){var i=t.charAt(r);if(","===i)break;if(n.nsp+=i,r===t.length)break}else n.nsp="/";var s=t.charAt(r+1);if(""!==s&&Number(s)==s){for(n.id="";++r;){var i=t.charAt(r);if(null==i||Number(i)!=i){--r;break}if(n.id+=t.charAt(r),r===t.length)break}n.id=Number(n.id)}if(t.charAt(++r)){var a=h(t.substr(r)),c=a!==!1&&(n.type===e.ERROR||d(a));if(!c)return u("invalid payload");n.data=a}return n}function h(t){try{return JSON.parse(t)}catch(t){return!1}}function p(t){this.reconPack=t,this.buffers=[]}function u(t){return{type:e.ERROR,data:"parser error: "+t}}var f=(r(3)("socket.io-parser"),r(5)),l=r(6),d=r(7),y=r(8);e.protocol=4,e.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"],e.CONNECT=0,e.DISCONNECT=1,e.EVENT=2,e.ACK=3,e.ERROR=4,e.BINARY_EVENT=5,e.BINARY_ACK=6,e.Encoder=n,e.Decoder=a;var m=e.ERROR+'"encode error"';n.prototype.encode=function(t,r){if(e.BINARY_EVENT===t.type||e.BINARY_ACK===t.type)s(t,r);else{var n=o(t);r([n])}},f(a.prototype),a.prototype.add=function(t){var r;if("string"==typeof t)r=c(t),e.BINARY_EVENT===r.type||e.BINARY_ACK===r.type?(this.reconstructor=new p(r),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",r)):this.emit("decoded",r);else{if(!y(t)&&!t.base64)throw new Error("Unknown type: "+t);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");r=this.reconstructor.takeBinaryData(t),r&&(this.reconstructor=null,this.emit("decoded",r))}},a.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},p.prototype.takeBinaryData=function(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){var e=l.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null},p.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},function(t,e,r){function n(t){if(t)return o(t)}function o(t){for(var e in n.prototype)t[e]=n.prototype[e];return t}t.exports=n,n.prototype.on=n.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},n.prototype.once=function(t,e){function r(){this.off(t,r),e.apply(this,arguments)}return r.fn=e,this.on(t,r),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var r=this._callbacks["$"+t];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var n,o=0;o<r.length;o++)if(n=r[o],n===e||n.fn===e){r.splice(o,1);break}return this},n.prototype.emit=function(t){this._callbacks=this._callbacks||{};var e=[].slice.call(arguments,1),r=this._callbacks["$"+t];if(r){r=r.slice(0);for(var n=0,o=r.length;n<o;++n)r[n].apply(this,e)}return this},n.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks["$"+t]||[]},n.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,r){(function(t){function n(t,e){if(!t)return t;if(s(t)){var r={_placeholder:!0,num:e.length};return e.push(t),r}if(i(t)){for(var o=new Array(t.length),a=0;a<t.length;a++)o[a]=n(t[a],e);return o}if("object"==typeof t&&!(t instanceof Date)){var o={};for(var c in t)o[c]=n(t[c],e);return o}return t}function o(t,e){if(!t)return t;if(t&&t._placeholder)return e[t.num];if(i(t))for(var r=0;r<t.length;r++)t[r]=o(t[r],e);else if("object"==typeof t)for(var n in t)t[n]=o(t[n],e);return t}var i=r(7),s=r(8),a=Object.prototype.toString,c="function"==typeof t.Blob||"[object BlobConstructor]"===a.call(t.Blob),h="function"==typeof t.File||"[object FileConstructor]"===a.call(t.File);e.deconstructPacket=function(t){var e=[],r=t.data,o=t;return o.data=n(r,e),o.attachments=e.length,{packet:o,buffers:e}},e.reconstructPacket=function(t,e){return t.data=o(t.data,e),t.attachments=void 0,t},e.removeBlobs=function(t,e){function r(t,a,p){if(!t)return t;if(c&&t instanceof Blob||h&&t instanceof File){n++;var u=new FileReader;u.onload=function(){p?p[a]=this.result:o=this.result,--n||e(o)},u.readAsArrayBuffer(t)}else if(i(t))for(var f=0;f<t.length;f++)r(t[f],f,t);else if("object"==typeof t&&!s(t))for(var l in t)r(t[l],l,t)}var n=0,o=t;r(o),n||e(o)}}).call(e,function(){return this}())},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==r.call(t)}},function(t,e){(function(e){function r(t){return n&&e.Buffer.isBuffer(t)||o&&(t instanceof e.ArrayBuffer||i(t))}t.exports=r;var n="function"==typeof e.Buffer&&"function"==typeof e.Buffer.isBuffer,o="function"==typeof e.ArrayBuffer,i=function(){return o&&"function"==typeof e.ArrayBuffer.isView?e.ArrayBuffer.isView:function(t){return t.buffer instanceof e.ArrayBuffer}}()}).call(e,function(){return this}())},function(t,e,r){"use strict";function n(t,e){if(!(this instanceof n))return new n(t,e);t&&"object"===("undefined"==typeof t?"undefined":o(t))&&(e=t,t=void 0),e=e||{},e.path=e.path||"/socket.io",this.nsps={},this.subs=[],this.opts=e,this.reconnection(e.reconnection!==!1),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor(e.randomizationFactor||.5),this.backoff=new f({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==e.timeout?2e4:e.timeout),this.readyState="closed",this.uri=t,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[];var r=e.parser||c;this.encoder=new r.Encoder,this.decoder=new r.Decoder,this.autoConnect=e.autoConnect!==!1,this.autoConnect&&this.open()}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=r(10),s=r(34),a=r(5),c=r(4),h=r(36),p=r(37),u=(r(3)("socket.io-client:manager"),r(33)),f=r(38),l=Object.prototype.hasOwnProperty;t.exports=n,n.prototype.emitAll=function(){this.emit.apply(this,arguments);for(var t in this.nsps)l.call(this.nsps,t)&&this.nsps[t].emit.apply(this.nsps[t],arguments)},n.prototype.updateSocketIds=function(){for(var t in this.nsps)l.call(this.nsps,t)&&(this.nsps[t].id=this.generateId(t))},n.prototype.generateId=function(t){return("/"===t?"":t+"#")+this.engine.id},a(n.prototype),n.prototype.reconnection=function(t){return arguments.length?(this._reconnection=!!t,this):this._reconnection},n.prototype.reconnectionAttempts=function(t){return arguments.length?(this._reconnectionAttempts=t,this):this._reconnectionAttempts},n.prototype.reconnectionDelay=function(t){return arguments.length?(this._reconnectionDelay=t,this.backoff&&this.backoff.setMin(t),this):this._reconnectionDelay},n.prototype.randomizationFactor=function(t){return arguments.length?(this._randomizationFactor=t,this.backoff&&this.backoff.setJitter(t),this):this._randomizationFactor},n.prototype.reconnectionDelayMax=function(t){return arguments.length?(this._reconnectionDelayMax=t,this.backoff&&this.backoff.setMax(t),this):this._reconnectionDelayMax},n.prototype.timeout=function(t){return arguments.length?(this._timeout=t,this):this._timeout},n.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},n.prototype.open=n.prototype.connect=function(t,e){if(~this.readyState.indexOf("open"))return this;this.engine=i(this.uri,this.opts);var r=this.engine,n=this;this.readyState="opening",this.skipReconnect=!1;var o=h(r,"open",function(){n.onopen(),t&&t()}),s=h(r,"error",function(e){if(n.cleanup(),n.readyState="closed",n.emitAll("connect_error",e),t){var r=new Error("Connection error");r.data=e,t(r)}else n.maybeReconnectOnOpen()});if(!1!==this._timeout){var a=this._timeout,c=setTimeout(function(){o.destroy(),r.close(),r.emit("error","timeout"),n.emitAll("connect_timeout",a)},a);this.subs.push({destroy:function(){clearTimeout(c)}})}return this.subs.push(o),this.subs.push(s),this},n.prototype.onopen=function(){this.cleanup(),this.readyState="open",this.emit("open");var t=this.engine;this.subs.push(h(t,"data",p(this,"ondata"))),this.subs.push(h(t,"ping",p(this,"onping"))),this.subs.push(h(t,"pong",p(this,"onpong"))),this.subs.push(h(t,"error",p(this,"onerror"))),this.subs.push(h(t,"close",p(this,"onclose"))),this.subs.push(h(this.decoder,"decoded",p(this,"ondecoded")))},n.prototype.onping=function(){this.lastPing=new Date,this.emitAll("ping")},n.prototype.onpong=function(){this.emitAll("pong",new Date-this.lastPing)},n.prototype.ondata=function(t){this.decoder.add(t)},n.prototype.ondecoded=function(t){this.emit("packet",t)},n.prototype.onerror=function(t){this.emitAll("error",t)},n.prototype.socket=function(t,e){function r(){~u(o.connecting,n)||o.connecting.push(n)}var n=this.nsps[t];if(!n){n=new s(this,t,e),this.nsps[t]=n;var o=this;n.on("connecting",r),n.on("connect",function(){n.id=o.generateId(t)}),this.autoConnect&&r()}return n},n.prototype.destroy=function(t){var e=u(this.connecting,t);~e&&this.connecting.splice(e,1),this.connecting.length||this.close()},n.prototype.packet=function(t){var e=this;t.query&&0===t.type&&(t.nsp+="?"+t.query),e.encoding?e.packetBuffer.push(t):(e.encoding=!0,this.encoder.encode(t,function(r){for(var n=0;n<r.length;n++)e.engine.write(r[n],t.options);e.encoding=!1,e.processPacketQueue()}))},n.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var t=this.packetBuffer.shift();this.packet(t)}},n.prototype.cleanup=function(){for(var t=this.subs.length,e=0;e<t;e++){var r=this.subs.shift();r.destroy()}this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},n.prototype.close=n.prototype.disconnect=function(){this.skipReconnect=!0,this.reconnecting=!1,"opening"===this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},n.prototype.onclose=function(t){this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",t),this._reconnection&&!this.skipReconnect&&this.reconnect()},n.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var e=this.backoff.duration();this.reconnecting=!0;var r=setTimeout(function(){t.skipReconnect||(t.emitAll("reconnect_attempt",t.backoff.attempts),t.emitAll("reconnecting",t.backoff.attempts),t.skipReconnect||t.open(function(e){e?(t.reconnecting=!1,t.reconnect(),t.emitAll("reconnect_error",e.data)):t.onreconnect()}))},e);this.subs.push({destroy:function(){clearTimeout(r)}})}},n.prototype.onreconnect=function(){var t=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",t)}},function(t,e,r){t.exports=r(11),t.exports.parser=r(18)},function(t,e,r){(function(e){function n(t,r){if(!(this instanceof n))return new n(t,r);r=r||{},t&&"object"==typeof t&&(r=t,t=null),t?(t=h(t),r.hostname=t.host,r.secure="https"===t.protocol||"wss"===t.protocol,r.port=t.port,t.query&&(r.query=t.query)):r.host&&(r.hostname=h(r.host).host),this.secure=null!=r.secure?r.secure:e.location&&"https:"===location.protocol,r.hostname&&!r.port&&(r.port=this.secure?"443":"80"),this.agent=r.agent||!1,this.hostname=r.hostname||(e.location?location.hostname:"localhost"),this.port=r.port||(e.location&&location.port?location.port:this.secure?443:80),this.query=r.query||{},"string"==typeof this.query&&(this.query=p.decode(this.query)),this.upgrade=!1!==r.upgrade,this.path=(r.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!r.forceJSONP,this.jsonp=!1!==r.jsonp,this.forceBase64=!!r.forceBase64,this.enablesXDR=!!r.enablesXDR,this.timestampParam=r.timestampParam||"t",this.timestampRequests=r.timestampRequests,this.transports=r.transports||["polling","websocket"],this.transportOptions=r.transportOptions||{},this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.policyPort=r.policyPort||843,this.rememberUpgrade=r.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=r.onlyBinaryUpgrades,this.perMessageDeflate=!1!==r.perMessageDeflate&&(r.perMessageDeflate||{}),!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=r.pfx||null,this.key=r.key||null,this.passphrase=r.passphrase||null,this.cert=r.cert||null,this.ca=r.ca||null,this.ciphers=r.ciphers||null,this.rejectUnauthorized=void 0===r.rejectUnauthorized||r.rejectUnauthorized,this.forceNode=!!r.forceNode;var o="object"==typeof e&&e;o.global===o&&(r.extraHeaders&&Object.keys(r.extraHeaders).length>0&&(this.extraHeaders=r.extraHeaders),r.localAddress&&(this.localAddress=r.localAddress)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingIntervalTimer=null,this.pingTimeoutTimer=null,this.open()}function o(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}var i=r(12),s=r(5),a=(r(3)("engine.io-client:socket"),r(33)),c=r(18),h=r(2),p=r(27);t.exports=n,n.priorWebsocketSuccess=!1,s(n.prototype),n.protocol=c.protocol,n.Socket=n,n.Transport=r(17),n.transports=r(12),n.parser=r(18),n.prototype.createTransport=function(t){var e=o(this.query);e.EIO=c.protocol,e.transport=t;var r=this.transportOptions[t]||{};this.id&&(e.sid=this.id);var n=new i[t]({query:e,socket:this,agent:r.agent||this.agent,hostname:r.hostname||this.hostname,port:r.port||this.port,secure:r.secure||this.secure,path:r.path||this.path,forceJSONP:r.forceJSONP||this.forceJSONP,jsonp:r.jsonp||this.jsonp,forceBase64:r.forceBase64||this.forceBase64,enablesXDR:r.enablesXDR||this.enablesXDR,timestampRequests:r.timestampRequests||this.timestampRequests,timestampParam:r.timestampParam||this.timestampParam,policyPort:r.policyPort||this.policyPort,pfx:r.pfx||this.pfx,key:r.key||this.key,passphrase:r.passphrase||this.passphrase,cert:r.cert||this.cert,ca:r.ca||this.ca,ciphers:r.ciphers||this.ciphers,rejectUnauthorized:r.rejectUnauthorized||this.rejectUnauthorized,perMessageDeflate:r.perMessageDeflate||this.perMessageDeflate,extraHeaders:r.extraHeaders||this.extraHeaders,forceNode:r.forceNode||this.forceNode,localAddress:r.localAddress||this.localAddress,requestTimeout:r.requestTimeout||this.requestTimeout,protocols:r.protocols||void 0});return n},n.prototype.open=function(){var t;if(this.rememberUpgrade&&n.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1)t="websocket";else{if(0===this.transports.length){var e=this;return void setTimeout(function(){e.emit("error","No transports available")},0)}t=this.transports[0]}this.readyState="opening";try{t=this.createTransport(t)}catch(t){return this.transports.shift(),void this.open()}t.open(),this.setTransport(t)},n.prototype.setTransport=function(t){var e=this;this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",function(){e.onDrain()}).on("packet",function(t){e.onPacket(t)}).on("error",function(t){e.onError(t)}).on("close",function(){e.onClose("transport close")})},n.prototype.probe=function(t){function e(){if(u.onlyBinaryUpgrades){var t=!this.supportsBinary&&u.transport.supportsBinary;p=p||t}p||(h.send([{type:"ping",data:"probe"}]),h.once("packet",function(t){if(!p)if("pong"===t.type&&"probe"===t.data){if(u.upgrading=!0,u.emit("upgrading",h),!h)return;n.priorWebsocketSuccess="websocket"===h.name,u.transport.pause(function(){p||"closed"!==u.readyState&&(c(),u.setTransport(h),h.send([{type:"upgrade"}]),u.emit("upgrade",h),h=null,u.upgrading=!1,u.flush())})}else{var e=new Error("probe error");e.transport=h.name,u.emit("upgradeError",e)}}))}function r(){p||(p=!0,c(),h.close(),h=null)}function o(t){var e=new Error("probe error: "+t);e.transport=h.name,r(),u.emit("upgradeError",e)}function i(){o("transport closed")}function s(){o("socket closed")}function a(t){h&&t.name!==h.name&&r()}function c(){h.removeListener("open",e),h.removeListener("error",o),h.removeListener("close",i),u.removeListener("close",s),u.removeListener("upgrading",a)}var h=this.createTransport(t,{probe:1}),p=!1,u=this;n.priorWebsocketSuccess=!1,h.once("open",e),h.once("error",o),h.once("close",i),this.once("close",s),this.once("upgrading",a),h.open()},n.prototype.onOpen=function(){if(this.readyState="open",n.priorWebsocketSuccess="websocket"===this.transport.name,this.emit("open"),this.flush(),"open"===this.readyState&&this.upgrade&&this.transport.pause)for(var t=0,e=this.upgrades.length;t<e;t++)this.probe(this.upgrades[t])},n.prototype.onPacket=function(t){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emit("packet",t),this.emit("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"pong":this.setPing(),this.emit("pong");break;case"error":var e=new Error("server error");e.code=t.data,this.onError(e);break;case"message":this.emit("data",t.data),this.emit("message",t.data)}},n.prototype.onHandshake=function(t){this.emit("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this.upgrades=this.filterUpgrades(t.upgrades),this.pingInterval=t.pingInterval,this.pingTimeout=t.pingTimeout,this.onOpen(),"closed"!==this.readyState&&(this.setPing(),this.removeListener("heartbeat",this.onHeartbeat),this.on("heartbeat",this.onHeartbeat))},n.prototype.onHeartbeat=function(t){clearTimeout(this.pingTimeoutTimer);var e=this;e.pingTimeoutTimer=setTimeout(function(){"closed"!==e.readyState&&e.onClose("ping timeout")},t||e.pingInterval+e.pingTimeout)},n.prototype.setPing=function(){var t=this;clearTimeout(t.pingIntervalTimer),t.pingIntervalTimer=setTimeout(function(){t.ping(),t.onHeartbeat(t.pingTimeout)},t.pingInterval)},n.prototype.ping=function(){var t=this;this.sendPacket("ping",function(){t.emit("ping")})},n.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()},n.prototype.flush=function(){"closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))},n.prototype.write=n.prototype.send=function(t,e,r){return this.sendPacket("message",t,e,r),this},n.prototype.sendPacket=function(t,e,r,n){if("function"==typeof e&&(n=e,e=void 0),"function"==typeof r&&(n=r,r=null),"closing"!==this.readyState&&"closed"!==this.readyState){r=r||{},r.compress=!1!==r.compress;var o={type:t,data:e,options:r};this.emit("packetCreate",o),this.writeBuffer.push(o),n&&this.once("flush",n),this.flush()}},n.prototype.close=function(){function t(){n.onClose("forced close"),n.transport.close()}function e(){n.removeListener("upgrade",e),n.removeListener("upgradeError",e),t()}function r(){n.once("upgrade",e),n.once("upgradeError",e)}if("opening"===this.readyState||"open"===this.readyState){this.readyState="closing";var n=this;this.writeBuffer.length?this.once("drain",function(){this.upgrading?r():t()}):this.upgrading?r():t()}return this},n.prototype.onError=function(t){n.priorWebsocketSuccess=!1,this.emit("error",t),this.onClose("transport error",t)},n.prototype.onClose=function(t,e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){var r=this;clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),this.readyState="closed",this.id=null,this.emit("close",t,e),r.writeBuffer=[],r.prevBufferLen=0}},n.prototype.filterUpgrades=function(t){for(var e=[],r=0,n=t.length;r<n;r++)~a(this.transports,t[r])&&e.push(t[r]);return e}}).call(e,function(){return this}())},function(t,e,r){(function(t){function n(e){var r,n=!1,a=!1,c=!1!==e.jsonp;if(t.location){var h="https:"===location.protocol,p=location.port;p||(p=h?443:80),n=e.hostname!==location.hostname||p!==e.port,a=e.secure!==h}if(e.xdomain=n,e.xscheme=a,r=new o(e),"open"in r&&!e.forceJSONP)return new i(e);if(!c)throw new Error("JSONP disabled");return new s(e)}var o=r(13),i=r(15),s=r(30),a=r(31);e.polling=n,e.websocket=a}).call(e,function(){return this}())},function(t,e,r){(function(e){var n=r(14);t.exports=function(t){var r=t.xdomain,o=t.xscheme,i=t.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!r||n))return new XMLHttpRequest}catch(t){}try{if("undefined"!=typeof XDomainRequest&&!o&&i)return new XDomainRequest}catch(t){}if(!r)try{return new(e[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(t){}}}).call(e,function(){return this}())},function(t,e){try{t.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(e){t.exports=!1}},function(t,e,r){(function(e){function n(){}function o(t){if(c.call(this,t),this.requestTimeout=t.requestTimeout,this.extraHeaders=t.extraHeaders,e.location){var r="https:"===location.protocol,n=location.port;n||(n=r?443:80),this.xd=t.hostname!==e.location.hostname||n!==t.port,this.xs=t.secure!==r}}function i(t){this.method=t.method||"GET",this.uri=t.uri,this.xd=!!t.xd,this.xs=!!t.xs,this.async=!1!==t.async,this.data=void 0!==t.data?t.data:null,this.agent=t.agent,this.isBinary=t.isBinary,this.supportsBinary=t.supportsBinary,this.enablesXDR=t.enablesXDR,this.requestTimeout=t.requestTimeout,this.pfx=t.pfx,this.key=t.key,this.passphrase=t.passphrase,this.cert=t.cert,this.ca=t.ca,this.ciphers=t.ciphers,this.rejectUnauthorized=t.rejectUnauthorized,this.extraHeaders=t.extraHeaders,this.create()}function s(){for(var t in i.requests)i.requests.hasOwnProperty(t)&&i.requests[t].abort()}var a=r(13),c=r(16),h=r(5),p=r(28);r(3)("engine.io-client:polling-xhr");t.exports=o,t.exports.Request=i,p(o,c),o.prototype.supportsBinary=!0,o.prototype.request=function(t){return t=t||{},t.uri=this.uri(),t.xd=this.xd,t.xs=this.xs,t.agent=this.agent||!1,t.supportsBinary=this.supportsBinary,t.enablesXDR=this.enablesXDR,t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized,t.requestTimeout=this.requestTimeout,t.extraHeaders=this.extraHeaders,new i(t)},o.prototype.doWrite=function(t,e){var r="string"!=typeof t&&void 0!==t,n=this.request({method:"POST",data:t,isBinary:r}),o=this;n.on("success",e),n.on("error",function(t){o.onError("xhr post error",t)}),this.sendXhr=n},o.prototype.doPoll=function(){var t=this.request(),e=this;t.on("data",function(t){e.onData(t)}),t.on("error",function(t){e.onError("xhr poll error",t)}),this.pollXhr=t},h(i.prototype),i.prototype.create=function(){var t={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};t.pfx=this.pfx,t.key=this.key,t.passphrase=this.passphrase,t.cert=this.cert,t.ca=this.ca,t.ciphers=this.ciphers,t.rejectUnauthorized=this.rejectUnauthorized;var r=this.xhr=new a(t),n=this;try{r.open(this.method,this.uri,this.async);try{if(this.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(var o in this.extraHeaders)this.extraHeaders.hasOwnProperty(o)&&r.setRequestHeader(o,this.extraHeaders[o])}}catch(t){}if("POST"===this.method)try{this.isBinary?r.setRequestHeader("Content-type","application/octet-stream"):r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(t){}try{r.setRequestHeader("Accept","*/*")}catch(t){}"withCredentials"in r&&(r.withCredentials=!0),this.requestTimeout&&(r.timeout=this.requestTimeout),this.hasXDR()?(r.onload=function(){n.onLoad()},r.onerror=function(){n.onError(r.responseText)}):r.onreadystatechange=function(){if(2===r.readyState)try{var t=r.getResponseHeader("Content-Type");n.supportsBinary&&"application/octet-stream"===t&&(r.responseType="arraybuffer")}catch(t){}4===r.readyState&&(200===r.status||1223===r.status?n.onLoad():setTimeout(function(){n.onError(r.status)},0))},r.send(this.data)}catch(t){return void setTimeout(function(){n.onError(t)},0)}e.document&&(this.index=i.requestsCount++,i.requests[this.index]=this)},i.prototype.onSuccess=function(){this.emit("success"),this.cleanup()},i.prototype.onData=function(t){this.emit("data",t),this.onSuccess()},i.prototype.onError=function(t){this.emit("error",t),this.cleanup(!0)},i.prototype.cleanup=function(t){if("undefined"!=typeof this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=n:this.xhr.onreadystatechange=n,t)try{this.xhr.abort()}catch(t){}e.document&&delete i.requests[this.index],this.xhr=null}},i.prototype.onLoad=function(){var t;try{var e;try{e=this.xhr.getResponseHeader("Content-Type")}catch(t){}t="application/octet-stream"===e?this.xhr.response||this.xhr.responseText:this.xhr.responseText}catch(t){this.onError(t)}null!=t&&this.onData(t)},i.prototype.hasXDR=function(){return"undefined"!=typeof e.XDomainRequest&&!this.xs&&this.enablesXDR},i.prototype.abort=function(){this.cleanup()},i.requestsCount=0,i.requests={},e.document&&(e.attachEvent?e.attachEvent("onunload",s):e.addEventListener&&e.addEventListener("beforeunload",s,!1))}).call(e,function(){return this}())},function(t,e,r){function n(t){var e=t&&t.forceBase64;h&&!e||(this.supportsBinary=!1),o.call(this,t)}var o=r(17),i=r(27),s=r(18),a=r(28),c=r(29);r(3)("engine.io-client:polling");t.exports=n;var h=function(){var t=r(13),e=new t({xdomain:!1});return null!=e.responseType}();a(n,o),n.prototype.name="polling",n.prototype.doOpen=function(){this.poll()},n.prototype.pause=function(t){function e(){r.readyState="paused",t()}var r=this;if(this.readyState="pausing",this.polling||!this.writable){var n=0;this.polling&&(n++,this.once("pollComplete",function(){--n||e()})),this.writable||(n++,this.once("drain",function(){--n||e()}))}else e()},n.prototype.poll=function(){this.polling=!0,this.doPoll(),this.emit("poll")},n.prototype.onData=function(t){var e=this,r=function(t,r,n){return"opening"===e.readyState&&e.onOpen(),"close"===t.type?(e.onClose(),!1):void e.onPacket(t)};s.decodePayload(t,this.socket.binaryType,r),"closed"!==this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"===this.readyState&&this.poll())},n.prototype.doClose=function(){function t(){e.write([{type:"close"}])}var e=this;"open"===this.readyState?t():this.once("open",t)},n.prototype.write=function(t){var e=this;this.writable=!1;var r=function(){e.writable=!0,e.emit("drain")};s.encodePayload(t,this.supportsBinary,function(t){e.doWrite(t,r)})},n.prototype.uri=function(){var t=this.query||{},e=this.secure?"https":"http",r="";!1!==this.timestampRequests&&(t[this.timestampParam]=c()),this.supportsBinary||t.sid||(t.b64=1),t=i.encode(t),this.port&&("https"===e&&443!==Number(this.port)||"http"===e&&80!==Number(this.port))&&(r=":"+this.port),t.length&&(t="?"+t);var n=this.hostname.indexOf(":")!==-1;return e+"://"+(n?"["+this.hostname+"]":this.hostname)+r+this.path+t}},function(t,e,r){function n(t){this.path=t.path,this.hostname=t.hostname,this.port=t.port,this.secure=t.secure,this.query=t.query,this.timestampParam=t.timestampParam,this.timestampRequests=t.timestampRequests,this.readyState="",this.agent=t.agent||!1,this.socket=t.socket,this.enablesXDR=t.enablesXDR,this.pfx=t.pfx,this.key=t.key,this.passphrase=t.passphrase,this.cert=t.cert,this.ca=t.ca,this.ciphers=t.ciphers,this.rejectUnauthorized=t.rejectUnauthorized,this.forceNode=t.forceNode,this.extraHeaders=t.extraHeaders,this.localAddress=t.localAddress}var o=r(18),i=r(5);t.exports=n,i(n.prototype),n.prototype.onError=function(t,e){var r=new Error(t);return r.type="TransportError",r.description=e,this.emit("error",r),this},n.prototype.open=function(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this},n.prototype.close=function(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this},n.prototype.send=function(t){if("open"!==this.readyState)throw new Error("Transport not open");this.write(t)},n.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},n.prototype.onData=function(t){var e=o.decodePacket(t,this.socket.binaryType);this.onPacket(e)},n.prototype.onPacket=function(t){this.emit("packet",t)},n.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},function(t,e,r){(function(t){function n(t,r){var n="b"+e.packets[t.type]+t.data.data;return r(n)}function o(t,r,n){if(!r)return e.encodeBase64Packet(t,n);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/socket.io-client/dist/socket.io.slim.js-7-var o=t.data,i=new Uint8Array(o),s=new Uint8Array(1+o.byteLength);s[0]=v[t.type];for(var a=0;a<i.length;a++)s[a+1]=i[a];return n(s.buffer)}function i(t,r,n){if(!r)return e.encodeBase64Packet(t,n);var o=new FileReader;return o.onload=function(){t.data=o.result,e.encodePacket(t,r,!0,n)},o.readAsArrayBuffer(t.data)}function s(t,r,n){if(!r)return e.encodeBase64Packet(t,n);if(g)return i(t,r,n);var o=new Uint8Array(1);o[0]=v[t.type];var s=new w([o.buffer,t.data]);return n(s)}function a(t){try{t=d.decode(t,{strict:!1})}catch(t){return!1}return t}function c(t,e,r){for(var n=new Array(t.length),o=l(t.length,r),i=function(t,r,o){e(r,function(e,r){n[t]=r,o(e,n)})},s=0;s<t.length;s++)i(s,t[s],o)}var h,p=r(19),u=r(20),f=r(21),l=r(22),d=r(23);t&&t.ArrayBuffer&&(h=r(25));var y="undefined"!=typeof navigator&&/Android/i.test(navigator.userAgent),m="undefined"!=typeof navigator&&/PhantomJS/i.test(navigator.userAgent),g=y||m;e.protocol=3;var v=e.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},b=p(v),k={type:"error",data:"parser error"},w=r(26);e.encodePacket=function(e,r,i,a){"function"==typeof r&&(a=r,r=!1),"function"==typeof i&&(a=i,i=null);var c=void 0===e.data?void 0:e.data.buffer||e.data;if(t.ArrayBuffer&&c instanceof ArrayBuffer)return o(e,r,a);if(w&&c instanceof t.Blob)return s(e,r,a);if(c&&c.base64)return n(e,a);var h=v[e.type];return void 0!==e.data&&(h+=i?d.encode(String(e.data),{strict:!1}):String(e.data)),a(""+h)},e.encodeBase64Packet=function(r,n){var o="b"+e.packets[r.type];if(w&&r.data instanceof t.Blob){var i=new FileReader;return i.onload=function(){var t=i.result.split(",")[1];n(o+t)},i.readAsDataURL(r.data)}var s;try{s=String.fromCharCode.apply(null,new Uint8Array(r.data))}catch(t){for(var a=new Uint8Array(r.data),c=new Array(a.length),h=0;h<a.length;h++)c[h]=a[h];s=String.fromCharCode.apply(null,c)}return o+=t.btoa(s),n(o)},e.decodePacket=function(t,r,n){if(void 0===t)return k;if("string"==typeof t){if("b"===t.charAt(0))return e.decodeBase64Packet(t.substr(1),r);if(n&&(t=a(t),t===!1))return k;var o=t.charAt(0);return Number(o)==o&&b[o]?t.length>1?{type:b[o],data:t.substring(1)}:{type:b[o]}:k}var i=new Uint8Array(t),o=i[0],s=f(t,1);return w&&"blob"===r&&(s=new w([s])),{type:b[o],data:s}},e.decodeBase64Packet=function(t,e){var r=b[t.charAt(0)];if(!h)return{type:r,data:{base64:!0,data:t.substr(1)}};var n=h.decode(t.substr(1));return"blob"===e&&w&&(n=new w([n])),{type:r,data:n}},e.encodePayload=function(t,r,n){function o(t){return t.length+":"+t}function i(t,n){e.encodePacket(t,!!s&&r,!1,function(t){n(null,o(t))})}"function"==typeof r&&(n=r,r=null);var s=u(t);return r&&s?w&&!g?e.encodePayloadAsBlob(t,n):e.encodePayloadAsArrayBuffer(t,n):t.length?void c(t,i,function(t,e){return n(e.join(""))}):n("0:")},e.decodePayload=function(t,r,n){if("string"!=typeof t)return e.decodePayloadAsBinary(t,r,n);"function"==typeof r&&(n=r,r=null);var o;if(""===t)return n(k,0,1);for(var i,s,a="",c=0,h=t.length;c<h;c++){var p=t.charAt(c);if(":"===p){if(""===a||a!=(i=Number(a)))return n(k,0,1);if(s=t.substr(c+1,i),a!=s.length)return n(k,0,1);if(s.length){if(o=e.decodePacket(s,r,!1),k.type===o.type&&k.data===o.data)return n(k,0,1);var u=n(o,c+i,h);if(!1===u)return}c+=i,a=""}else a+=p}return""!==a?n(k,0,1):void 0},e.encodePayloadAsArrayBuffer=function(t,r){function n(t,r){e.encodePacket(t,!0,!0,function(t){return r(null,t)})}return t.length?void c(t,n,function(t,e){var n=e.reduce(function(t,e){var r;return r="string"==typeof e?e.length:e.byteLength,t+r.toString().length+r+2},0),o=new Uint8Array(n),i=0;return e.forEach(function(t){var e="string"==typeof t,r=t;if(e){for(var n=new Uint8Array(t.length),s=0;s<t.length;s++)n[s]=t.charCodeAt(s);r=n.buffer}e?o[i++]=0:o[i++]=1;for(var a=r.byteLength.toString(),s=0;s<a.length;s++)o[i++]=parseInt(a[s]);o[i++]=255;for(var n=new Uint8Array(r),s=0;s<n.length;s++)o[i++]=n[s]}),r(o.buffer)}):r(new ArrayBuffer(0))},e.encodePayloadAsBlob=function(t,r){function n(t,r){e.encodePacket(t,!0,!0,function(t){var e=new Uint8Array(1);if(e[0]=1,"string"==typeof t){for(var n=new Uint8Array(t.length),o=0;o<t.length;o++)n[o]=t.charCodeAt(o);t=n.buffer,e[0]=0}for(var i=t instanceof ArrayBuffer?t.byteLength:t.size,s=i.toString(),a=new Uint8Array(s.length+1),o=0;o<s.length;o++)a[o]=parseInt(s[o]);if(a[s.length]=255,w){var c=new w([e.buffer,a.buffer,t]);r(null,c)}})}c(t,n,function(t,e){return r(new w(e))})},e.decodePayloadAsBinary=function(t,r,n){"function"==typeof r&&(n=r,r=null);for(var o=t,i=[];o.byteLength>0;){for(var s=new Uint8Array(o),a=0===s[0],c="",h=1;255!==s[h];h++){if(c.length>310)return n(k,0,1);c+=s[h]}o=f(o,2+c.length),c=parseInt(c);var p=f(o,0,c);if(a)try{p=String.fromCharCode.apply(null,new Uint8Array(p))}catch(t){var u=new Uint8Array(p);p="";for(var h=0;h<u.length;h++)p+=String.fromCharCode(u[h])}i.push(p),o=f(o,c)}var l=i.length;i.forEach(function(t,o){n(e.decodePacket(t,r,!0),o,l)})}}).call(e,function(){return this}())},function(t,e){t.exports=Object.keys||function(t){var e=[],r=Object.prototype.hasOwnProperty;for(var n in t)r.call(t,n)&&e.push(n);return e}},function(t,e,r){(function(e){function n(t){if(!t||"object"!=typeof t)return!1;if(o(t)){for(var r=0,i=t.length;r<i;r++)if(n(t[r]))return!0;return!1}if("function"==typeof e.Buffer&&e.Buffer.isBuffer&&e.Buffer.isBuffer(t)||"function"==typeof e.ArrayBuffer&&t instanceof ArrayBuffer||s&&t instanceof Blob||a&&t instanceof File)return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return n(t.toJSON(),!0);for(var c in t)if(Object.prototype.hasOwnProperty.call(t,c)&&n(t[c]))return!0;return!1}var o=r(7),i=Object.prototype.toString,s="function"==typeof e.Blob||"[object BlobConstructor]"===i.call(e.Blob),a="function"==typeof e.File||"[object FileConstructor]"===i.call(e.File);t.exports=n}).call(e,function(){return this}())},function(t,e){t.exports=function(t,e,r){var n=t.byteLength;if(e=e||0,r=r||n,t.slice)return t.slice(e,r);if(e<0&&(e+=n),r<0&&(r+=n),r>n&&(r=n),e>=n||e>=r||0===n)return new ArrayBuffer(0);for(var o=new Uint8Array(t),i=new Uint8Array(r-e),s=e,a=0;s<r;s++,a++)i[a]=o[s];return i.buffer}},function(t,e){function r(t,e,r){function o(t,n){if(o.count<=0)throw new Error("after called too many times");--o.count,t?(i=!0,e(t),e=r):0!==o.count||i||e(null,n)}var i=!1;return r=r||n,o.count=t,0===t?e():o}function n(){}t.exports=r},function(t,e,r){var n;(function(t,o){!function(i){function s(t){for(var e,r,n=[],o=0,i=t.length;o<i;)e=t.charCodeAt(o++),e>=55296&&e<=56319&&o<i?(r=t.charCodeAt(o++),56320==(64512&r)?n.push(((1023&e)<<10)+(1023&r)+65536):(n.push(e),o--)):n.push(e);return n}function a(t){for(var e,r=t.length,n=-1,o="";++n<r;)e=t[n],e>65535&&(e-=65536,o+=k(e>>>10&1023|55296),e=56320|1023&e),o+=k(e);return o}function c(t,e){if(t>=55296&&t<=57343){if(e)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value");return!1}return!0}function h(t,e){return k(t>>e&63|128)}function p(t,e){if(0==(4294967168&t))return k(t);var r="";return 0==(4294965248&t)?r=k(t>>6&31|192):0==(4294901760&t)?(c(t,e)||(t=65533),r=k(t>>12&15|224),r+=h(t,6)):0==(4292870144&t)&&(r=k(t>>18&7|240),r+=h(t,12),r+=h(t,6)),r+=k(63&t|128)}function u(t,e){e=e||{};for(var r,n=!1!==e.strict,o=s(t),i=o.length,a=-1,c="";++a<i;)r=o[a],c+=p(r,n);return c}function f(){if(b>=v)throw Error("Invalid byte index");var t=255&g[b];if(b++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function l(t){var e,r,n,o,i;if(b>v)throw Error("Invalid byte index");if(b==v)return!1;if(e=255&g[b],b++,0==(128&e))return e;if(192==(224&e)){if(r=f(),i=(31&e)<<6|r,i>=128)return i;throw Error("Invalid continuation byte")}if(224==(240&e)){if(r=f(),n=f(),i=(15&e)<<12|r<<6|n,i>=2048)return c(i,t)?i:65533;throw Error("Invalid continuation byte")}if(240==(248&e)&&(r=f(),n=f(),o=f(),i=(7&e)<<18|r<<12|n<<6|o,i>=65536&&i<=1114111))return i;throw Error("Invalid UTF-8 detected")}function d(t,e){e=e||{};var r=!1!==e.strict;g=s(t),v=g.length,b=0;for(var n,o=[];(n=l(r))!==!1;)o.push(n);return a(o)}var y="object"==typeof e&&e,m=("object"==typeof t&&t&&t.exports==y&&t,"object"==typeof o&&o);m.global!==m&&m.window!==m||(i=m);var g,v,b,k=String.fromCharCode,w={version:"2.1.2",encode:u,decode:d};n=function(){return w}.call(e,r,e,t),!(void 0!==n&&(t.exports=n))}(this)}).call(e,r(24)(t),function(){return this}())},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){!function(){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=new Uint8Array(256),n=0;n<t.length;n++)r[t.charCodeAt(n)]=n;e.encode=function(e){var r,n=new Uint8Array(e),o=n.length,i="";for(r=0;r<o;r+=3)i+=t[n[r]>>2],i+=t[(3&n[r])<<4|n[r+1]>>4],i+=t[(15&n[r+1])<<2|n[r+2]>>6],i+=t[63&n[r+2]];return o%3===2?i=i.substring(0,i.length-1)+"=":o%3===1&&(i=i.substring(0,i.length-2)+"=="),i},e.decode=function(t){var e,n,o,i,s,a=.75*t.length,c=t.length,h=0;"="===t[t.length-1]&&(a--,"="===t[t.length-2]&&a--);var p=new ArrayBuffer(a),u=new Uint8Array(p);for(e=0;e<c;e+=4)n=r[t.charCodeAt(e)],o=r[t.charCodeAt(e+1)],i=r[t.charCodeAt(e+2)],s=r[t.charCodeAt(e+3)],u[h++]=n<<2|o>>4,u[h++]=(15&o)<<4|i>>2,u[h++]=(3&i)<<6|63&s;return p}}()},function(t,e){(function(e){function r(t){for(var e=0;e<t.length;e++){var r=t[e];if(r.buffer instanceof ArrayBuffer){var n=r.buffer;if(r.byteLength!==n.byteLength){var o=new Uint8Array(r.byteLength);o.set(new Uint8Array(n,r.byteOffset,r.byteLength)),n=o.buffer}t[e]=n}}}function n(t,e){e=e||{};var n=new i;r(t);for(var o=0;o<t.length;o++)n.append(t[o]);return e.type?n.getBlob(e.type):n.getBlob()}function o(t,e){return r(t),new Blob(t,e||{})}var i=e.BlobBuilder||e.WebKitBlobBuilder||e.MSBlobBuilder||e.MozBlobBuilder,s=function(){try{var t=new Blob(["hi"]);return 2===t.size}catch(t){return!1}}(),a=s&&function(){try{var t=new Blob([new Uint8Array([1,2])]);return 2===t.size}catch(t){return!1}}(),c=i&&i.prototype.append&&i.prototype.getBlob;t.exports=function(){return s?a?e.Blob:o:c?n:void 0}()}).call(e,function(){return this}())},function(t,e){e.encode=function(t){var e="";for(var r in t)t.hasOwnProperty(r)&&(e.length&&(e+="&"),e+=encodeURIComponent(r)+"="+encodeURIComponent(t[r]));return e},e.decode=function(t){for(var e={},r=t.split("&"),n=0,o=r.length;n<o;n++){var i=r[n].split("=");e[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return e}},function(t,e){t.exports=function(t,e){var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},function(t,e){"use strict";function r(t){var e="";do e=s[t%a]+e,t=Math.floor(t/a);while(t>0);return e}function n(t){var e=0;for(p=0;p<t.length;p++)e=e*a+c[t.charAt(p)];return e}function o(){var t=r(+new Date);return t!==i?(h=0,i=t):t+"."+r(h++)}for(var i,s="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),a=64,c={},h=0,p=0;p<a;p++)c[s[p]]=p;o.encode=r,o.decode=n,t.exports=o},function(t,e,r){(function(e){function n(){}function o(t){i.call(this,t),this.query=this.query||{},a||(e.___eio||(e.___eio=[]),a=e.___eio),this.index=a.length;var r=this;a.push(function(t){r.onData(t)}),this.query.j=this.index,e.document&&e.addEventListener&&e.addEventListener("beforeunload",function(){r.script&&(r.script.onerror=n)},!1)}var i=r(16),s=r(28);t.exports=o;var a,c=/\n/g,h=/\\n/g;s(o,i),o.prototype.supportsBinary=!1,o.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),i.prototype.doClose.call(this)},o.prototype.doPoll=function(){var t=this,e=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),e.async=!0,e.src=this.uri(),e.onerror=function(e){t.onError("jsonp poll error",e)};var r=document.getElementsByTagName("script")[0];r?r.parentNode.insertBefore(e,r):(document.head||document.body).appendChild(e),this.script=e;var n="undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent);n&&setTimeout(function(){var t=document.createElement("iframe");document.body.appendChild(t),document.body.removeChild(t)},100)},o.prototype.doWrite=function(t,e){function r(){n(),e()}function n(){if(o.iframe)try{o.form.removeChild(o.iframe)}catch(t){o.onError("jsonp polling iframe removal error",t)}try{var t='<iframe src="javascript:0" name="'+o.iframeId+'">';i=document.createElement(t)}catch(t){i=document.createElement("iframe"),i.name=o.iframeId,i.src="javascript:0"}i.id=o.iframeId,o.form.appendChild(i),o.iframe=i}var o=this;if(!this.form){var i,s=document.createElement("form"),a=document.createElement("textarea"),p=this.iframeId="eio_iframe_"+this.index;s.className="socketio",s.style.position="absolute",s.style.top="-1000px",s.style.left="-1000px",s.target=p,s.method="POST",s.setAttribute("accept-charset","utf-8"),a.name="d",s.appendChild(a),document.body.appendChild(s),this.form=s,this.area=a}this.form.action=this.uri(),n(),t=t.replace(h,"\\\n"),this.area.value=t.replace(c,"\\n");try{this.form.submit()}catch(t){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"===o.iframe.readyState&&r()}:this.iframe.onload=r}}).call(e,function(){return this}())},function(t,e,r){(function(e){function n(t){var e=t&&t.forceBase64;e&&(this.supportsBinary=!1),this.perMessageDeflate=t.perMessageDeflate,this.usingBrowserWebSocket=p&&!t.forceNode,this.protocols=t.protocols,this.usingBrowserWebSocket||(u=o),i.call(this,t)}var o,i=r(17),s=r(18),a=r(27),c=r(28),h=r(29),p=(r(3)("engine.io-client:websocket"),e.WebSocket||e.MozWebSocket);if("undefined"==typeof window)try{o=r(32)}catch(t){}var u=p;u||"undefined"!=typeof window||(u=o),t.exports=n,c(n,i),n.prototype.name="websocket",n.prototype.supportsBinary=!0,n.prototype.doOpen=function(){if(this.check()){var t=this.uri(),e=this.protocols,r={agent:this.agent,perMessageDeflate:this.perMessageDeflate};r.pfx=this.pfx,r.key=this.key,r.passphrase=this.passphrase,r.cert=this.cert,r.ca=this.ca,r.ciphers=this.ciphers,r.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(r.headers=this.extraHeaders),this.localAddress&&(r.localAddress=this.localAddress);try{this.ws=this.usingBrowserWebSocket?e?new u(t,e):new u(t):new u(t,e,r)}catch(t){return this.emit("error",t)}void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="nodebuffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},n.prototype.addEventListeners=function(){var t=this;this.ws.onopen=function(){t.onOpen()},this.ws.onclose=function(){t.onClose()},this.ws.onmessage=function(e){t.onData(e.data)},this.ws.onerror=function(e){t.onError("websocket error",e)}},n.prototype.write=function(t){function r(){n.emit("flush"),setTimeout(function(){n.writable=!0,n.emit("drain")},0)}var n=this;this.writable=!1;for(var o=t.length,i=0,a=o;i<a;i++)!function(t){s.encodePacket(t,n.supportsBinary,function(i){if(!n.usingBrowserWebSocket){var s={};if(t.options&&(s.compress=t.options.compress),n.perMessageDeflate){var a="string"==typeof i?e.Buffer.byteLength(i):i.length;a<n.perMessageDeflate.threshold&&(s.compress=!1)}}try{n.usingBrowserWebSocket?n.ws.send(i):n.ws.send(i,s)}catch(t){}--o||r()})}(t[i])},n.prototype.onClose=function(){i.prototype.onClose.call(this)},n.prototype.doClose=function(){"undefined"!=typeof this.ws&&this.ws.close()},n.prototype.uri=function(){var t=this.query||{},e=this.secure?"wss":"ws",r="";this.port&&("wss"===e&&443!==Number(this.port)||"ws"===e&&80!==Number(this.port))&&(r=":"+this.port),this.timestampRequests&&(t[this.timestampParam]=h()),this.supportsBinary||(t.b64=1),t=a.encode(t),t.length&&(t="?"+t);var n=this.hostname.indexOf(":")!==-1;return e+"://"+(n?"["+this.hostname+"]":this.hostname)+r+this.path+t},n.prototype.check=function(){return!(!u||"__initialize"in u&&this.name===n.prototype.name)}}).call(e,function(){return this}())},function(t,e){},function(t,e){var r=[].indexOf;t.exports=function(t,e){if(r)return t.indexOf(e);for(var n=0;n<t.length;++n)if(t[n]===e)return n;return-1}},function(t,e,r){"use strict";function n(t,e,r){this.io=t,this.nsp=e,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,this.flags={},r&&r.query&&(this.query=r.query),this.io.autoConnect&&this.open()}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=r(4),s=r(5),a=r(35),c=r(36),h=r(37),p=(r(3)("socket.io-client:socket"),r(27)),u=r(20);t.exports=e=n;var f={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},l=s.prototype.emit;s(n.prototype),n.prototype.subEvents=function(){if(!this.subs){var t=this.io;this.subs=[c(t,"open",h(this,"onopen")),c(t,"packet",h(this,"onpacket")),c(t,"close",h(this,"onclose"))]}},n.prototype.open=n.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),"open"===this.io.readyState&&this.onopen(),this.emit("connecting"),this)},n.prototype.send=function(){var t=a(arguments);return t.unshift("message"),this.emit.apply(this,t),this},n.prototype.emit=function(t){if(f.hasOwnProperty(t))return l.apply(this,arguments),this;var e=a(arguments),r={type:(void 0!==this.flags.binary?this.flags.binary:u(e))?i.BINARY_EVENT:i.EVENT,data:e};return r.options={},r.options.compress=!this.flags||!1!==this.flags.compress,"function"==typeof e[e.length-1]&&(this.acks[this.ids]=e.pop(),r.id=this.ids++),this.connected?this.packet(r):this.sendBuffer.push(r),this.flags={},this},n.prototype.packet=function(t){t.nsp=this.nsp,this.io.packet(t)},n.prototype.onopen=function(){if("/"!==this.nsp)if(this.query){var t="object"===o(this.query)?p.encode(this.query):this.query;this.packet({type:i.CONNECT,query:t})}else this.packet({type:i.CONNECT})},n.prototype.onclose=function(t){this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",t)},n.prototype.onpacket=function(t){var e=t.nsp===this.nsp,r=t.type===i.ERROR&&"/"===t.nsp;if(e||r)switch(t.type){case i.CONNECT:this.onconnect();break;case i.EVENT:this.onevent(t);break;case i.BINARY_EVENT:this.onevent(t);break;case i.ACK:this.onack(t);break;case i.BINARY_ACK:this.onack(t);break;case i.DISCONNECT:this.ondisconnect();break;case i.ERROR:this.emit("error",t.data)}},n.prototype.onevent=function(t){var e=t.data||[];null!=t.id&&e.push(this.ack(t.id)),this.connected?l.apply(this,e):this.receiveBuffer.push(e)},n.prototype.ack=function(t){var e=this,r=!1;return function(){if(!r){r=!0;var n=a(arguments);e.packet({type:u(n)?i.BINARY_ACK:i.ACK,id:t,data:n})}}},n.prototype.onack=function(t){var e=this.acks[t.id];"function"==typeof e&&(e.apply(this,t.data),delete this.acks[t.id])},n.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},n.prototype.emitBuffered=function(){var t;for(t=0;t<this.receiveBuffer.length;t++)l.apply(this,this.receiveBuffer[t]);for(this.receiveBuffer=[],t=0;t<this.sendBuffer.length;t++)this.packet(this.sendBuffer[t]);this.sendBuffer=[]},n.prototype.ondisconnect=function(){this.destroy(),this.onclose("io server disconnect")},n.prototype.destroy=function(){if(this.subs){for(var t=0;t<this.subs.length;t++)this.subs[t].destroy();this.subs=null}this.io.destroy(this)},n.prototype.close=n.prototype.disconnect=function(){return this.connected&&this.packet({type:i.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},n.prototype.compress=function(t){return this.flags.compress=t,this},n.prototype.binary=function(t){return this.flags.binary=t,this}},function(t,e){function r(t,e){var r=[];e=e||0;for(var n=e||0;n<t.length;n++)r[n-e]=t[n];return r}t.exports=r},function(t,e){"use strict";function r(t,e,r){return t.on(e,r),{destroy:function(){t.removeListener(e,r)}}}t.exports=r},function(t,e){var r=[].slice;t.exports=function(t,e){if("string"==typeof e&&(e=t[e]),"function"!=typeof e)throw new Error("bind() requires a function");var n=r.call(arguments,2);return function(){return e.apply(t,n.concat(r.call(arguments)))}}},function(t,e){function r(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}t.exports=r,r.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),r=Math.floor(e*this.jitter*t);t=0==(1&Math.floor(10*e))?t-r:t+r}return 0|Math.min(t,this.max)},r.prototype.reset=function(){this.attempts=0},r.prototype.setMin=function(t){this.ms=t},r.prototype.setMax=function(t){this.max=t},r.prototype.setJitter=function(t){this.jitter=t}}])});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-85-ansiEscapes.clearTerminal = process.platform === 'win32' ?
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js:86:	`${ansiEscapes.eraseScreen}${ESC}0f` :
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-87-	// 1. Erases the screen (Only done in case `2` is not supported)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-90-	// More info: https://www.real-world-systems.com/docs/ANSIcode.html
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js:91:	`${ansiEscapes.eraseScreen}${ESC}3J${ESC}H`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-92-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-112-ansiEscapes.image = (buffer, options = {}) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js:113:	let ret = `${OSC}1337;File=inline=1`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-114-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-115-	if (options.width) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js:116:		ret += `;width=${options.width}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-117-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-119-	if (options.height) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js:120:		ret += `;height=${options.height}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-121-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-130-ansiEscapes.iTerm = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js:131:	setCwd: (cwd = process.cwd()) => `${OSC}50;CurrentDir=${cwd}${BEL}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-132-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-133-	annotation: (message, options = {}) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js:134:		let ret = `${OSC}1337;`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/index.js-135-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/node_modules/type-fest/readme.md-572-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/node_modules/type-fest/readme.md:573:			console.log(`Created ${count + 1} instances of ${Constr.name} class`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-escapes/node_modules/type-fest/readme.md-574-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/extract-zip/index.js-61-          if (relativeDestDir.split(path.sep).includes('..')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/extract-zip/index.js:62:            throw new Error(`Out of bound path "${canonicalDestDir}" found while processing file ${entry.fileName}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/extract-zip/index.js-63-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-13490-                // If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js:13491:                // had to include a backslash: `not \${a} substitution`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-13492-                var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString :
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-23358-                case 14 /* NoSubstitutionTemplateLiteral */: // foo<T> `...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js:23359:                case 15 /* TemplateHead */: // foo<T> `...${100}...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-23360-                // these are the only tokens can legally follow a type argument
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-86076-            // If it does, it wraps the expression in parentheses. Otherwise, something like
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js:86077:            //    `abc${ 1 << 2 }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-86078-            // becomes
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-86098-            // literal, then emitting the empty head literal is not necessary.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js:86099:            //     `${ foo } and ${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-86100-            // can be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-86106-            // If the first template span has an empty literal, then the head must still be emitted.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js:86107:            //     `${ foo }${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-86108-            // must still be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-107564-             * This argument specifies the location of the NPM executable.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js:107565:             * typingsInstaller will run the command with `${npmLocation} install ...`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-107566-             */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-110984-            //  1) When template strings are nested across different lines:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js:110985:            //          `hello ${ `world
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-110986-            //          ` }`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-122410-            /* eslint-disable no-double-space */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js:122411:            // Example: f  `# abcd $#{#  1 + 1#  }# efghi ${ #"#hello"#  }  #  `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserverlibrary.js-122412-            //              ^       ^ ^       ^   ^          ^ ^      ^     ^
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-13340-                // If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js:13341:                // had to include a backslash: `not \${a} substitution`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-13342-                var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString :
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-23208-                case 14 /* NoSubstitutionTemplateLiteral */: // foo<T> `...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js:23209:                case 15 /* TemplateHead */: // foo<T> `...${100}...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-23210-                // these are the only tokens can legally follow a type argument
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-85926-            // If it does, it wraps the expression in parentheses. Otherwise, something like
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js:85927:            //    `abc${ 1 << 2 }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-85928-            // becomes
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-85948-            // literal, then emitting the empty head literal is not necessary.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js:85949:            //     `${ foo } and ${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-85950-            // can be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-85956-            // If the first template span has an empty literal, then the head must still be emitted.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js:85957:            //     `${ foo }${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-85958-            // must still be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-110461-            //  1) When template strings are nested across different lines:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js:110462:            //          `hello ${ `world
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-110463-            //          ` }`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-121887-            /* eslint-disable no-double-space */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js:121888:            // Example: f  `# abcd $#{#  1 + 1#  }# efghi ${ #"#hello"#  }  #  `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-121889-            //              ^       ^ ^       ^   ^          ^ ^      ^     ^
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-141102-             * This argument specifies the location of the NPM executable.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js:141103:             * typingsInstaller will run the command with `${npmLocation} install ...`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/tsserver.js-141104-             */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-13329-                // If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js:13330:                // had to include a backslash: `not \${a} substitution`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-13331-                var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString :
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-23197-                case 14 /* NoSubstitutionTemplateLiteral */: // foo<T> `...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js:23198:                case 15 /* TemplateHead */: // foo<T> `...${100}...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-23199-                // these are the only tokens can legally follow a type argument
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-85915-            // If it does, it wraps the expression in parentheses. Otherwise, something like
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js:85916:            //    `abc${ 1 << 2 }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-85917-            // becomes
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-85937-            // literal, then emitting the empty head literal is not necessary.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js:85938:            //     `${ foo } and ${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-85939-            // can be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-85945-            // If the first template span has an empty literal, then the head must still be emitted.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js:85946:            //     `${ foo }${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-85947-            // must still be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-107403-             * This argument specifies the location of the NPM executable.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js:107404:             * typingsInstaller will run the command with `${npmLocation} install ...`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typingsInstaller.js-107405-             */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-13490-                // If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js:13491:                // had to include a backslash: `not \${a} substitution`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-13492-                var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString :
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-23358-                case 14 /* NoSubstitutionTemplateLiteral */: // foo<T> `...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js:23359:                case 15 /* TemplateHead */: // foo<T> `...${100}...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-23360-                // these are the only tokens can legally follow a type argument
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-86076-            // If it does, it wraps the expression in parentheses. Otherwise, something like
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js:86077:            //    `abc${ 1 << 2 }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-86078-            // becomes
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-86098-            // literal, then emitting the empty head literal is not necessary.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js:86099:            //     `${ foo } and ${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-86100-            // can be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-86106-            // If the first template span has an empty literal, then the head must still be emitted.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js:86107:            //     `${ foo }${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-86108-            // must still be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-107564-             * This argument specifies the location of the NPM executable.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js:107565:             * typingsInstaller will run the command with `${npmLocation} install ...`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-107566-             */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-110984-            //  1) When template strings are nested across different lines:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js:110985:            //          `hello ${ `world
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-110986-            //          ` }`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-122410-            /* eslint-disable no-double-space */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js:122411:            // Example: f  `# abcd $#{#  1 + 1#  }# efghi ${ #"#hello"#  }  #  `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescriptServices.js-122412-            //              ^       ^ ^       ^   ^          ^ ^      ^     ^
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-13490-                // If a NoSubstitutionTemplateLiteral appears to have a substitution in it, the original text
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js:13491:                // had to include a backslash: `not \${a} substitution`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-13492-                var escapeText = neverAsciiEscape || (getEmitFlags(node) & 16777216 /* NoAsciiEscaping */) ? escapeString :
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-23358-                case 14 /* NoSubstitutionTemplateLiteral */: // foo<T> `...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js:23359:                case 15 /* TemplateHead */: // foo<T> `...${100}...`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-23360-                // these are the only tokens can legally follow a type argument
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-86076-            // If it does, it wraps the expression in parentheses. Otherwise, something like
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js:86077:            //    `abc${ 1 << 2 }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-86078-            // becomes
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-86098-            // literal, then emitting the empty head literal is not necessary.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js:86099:            //     `${ foo } and ${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-86100-            // can be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-86106-            // If the first template span has an empty literal, then the head must still be emitted.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js:86107:            //     `${ foo }${ bar }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-86108-            // must still be emitted as
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-107564-             * This argument specifies the location of the NPM executable.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js:107565:             * typingsInstaller will run the command with `${npmLocation} install ...`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-107566-             */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-110984-            //  1) When template strings are nested across different lines:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js:110985:            //          `hello ${ `world
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-110986-            //          ` }`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-122410-            /* eslint-disable no-double-space */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js:122411:            // Example: f  `# abcd $#{#  1 + 1#  }# efghi ${ #"#hello"#  }  #  `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/typescript/lib/typescript.js-122412-            //              ^       ^ ^       ^   ^          ^ ^      ^     ^
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/Makefile-8-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/Makefile:9:# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/Makefile-10-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/Makefile-50-	@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/Makefile:51:	 new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/Makefile-52-	 if printf "$$new_ver" | command grep -q '^[0-9]'; then \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/Makefile-55-	 else \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/Makefile:56:	   new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/object.getownpropertydescriptors/Makefile-57-	 fi; \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/source-map/dist/source-map.min.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///source-map.min.js","webpack:///webpack/bootstrap 0fd5815da764db5fb9fe","webpack:///./source-map.js","webpack:///./lib/source-map-generator.js","webpack:///./lib/base64-vlq.js","webpack:///./lib/base64.js","webpack:///./lib/util.js","webpack:///./lib/array-set.js","webpack:///./lib/mapping-list.js","webpack:///./lib/source-map-consumer.js","webpack:///./lib/binary-search.js","webpack:///./lib/quick-sort.js","webpack:///./lib/source-node.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","SourceMapGenerator","SourceMapConsumer","SourceNode","aArgs","_file","util","getArg","_sourceRoot","_skipValidation","_sources","ArraySet","_names","_mappings","MappingList","_sourcesContents","base64VLQ","prototype","_version","fromSourceMap","aSourceMapConsumer","sourceRoot","generator","file","eachMapping","mapping","newMapping","generated","line","generatedLine","column","generatedColumn","source","relative","original","originalLine","originalColumn","name","addMapping","sources","forEach","sourceFile","sourceRelative","has","add","content","sourceContentFor","setSourceContent","_validateMapping","String","aSourceFile","aSourceContent","Object","create","toSetString","keys","length","applySourceMap","aSourceMapPath","Error","newSources","newNames","unsortedForEach","originalPositionFor","join","aGenerated","aOriginal","aSource","aName","JSON","stringify","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedColumn","previousGeneratedLine","previousOriginalColumn","previousOriginalLine","previousName","previousSource","result","mappings","toArray","i","len","compareByGeneratedPositionsInflated","encode","indexOf","_generateSourcesContent","aSources","aSourceRoot","map","key","hasOwnProperty","toJSON","version","names","sourcesContent","toString","toVLQSigned","aValue","fromVLQSigned","isNegative","shifted","base64","VLQ_BASE_SHIFT","VLQ_BASE","VLQ_BASE_MASK","VLQ_CONTINUATION_BIT","digit","encoded","vlq","decode","aStr","aIndex","aOutParam","continuation","strLen","shift","charCodeAt","charAt","value","rest","intToCharMap","split","number","TypeError","charCode","bigA","bigZ","littleA","littleZ","zero","nine","plus","slash","littleOffset","numberOffset","aDefaultValue","arguments","urlParse","aUrl","match","urlRegexp","scheme","auth","host","port","path","urlGenerate","aParsedUrl","url","normalize","aPath","part","isAbsolute","parts","up","splice","aRoot","aPathUrl","aRootUrl","dataUrlRegexp","joined","replace","level","index","lastIndexOf","slice","Array","substr","identity","s","isProtoString","fromSetString","compareByOriginalPositions","mappingA","mappingB","onlyCompareOriginal","cmp","strcmp","compareByGeneratedPositionsDeflated","onlyCompareGenerated","aStr1","aStr2","parseSourceMapInput","str","parse","computeSourceURL","sourceURL","sourceMapURL","parsed","substring","test","supportsNullProto","obj","_array","_set","hasNativeMap","Map","fromArray","aArray","aAllowDuplicates","set","size","getOwnPropertyNames","sStr","isDuplicate","idx","push","get","at","aIdx","generatedPositionAfter","lineA","lineB","columnA","columnB","_sorted","_last","aCallback","aThisArg","aMapping","sort","aSourceMap","aSourceMapURL","sourceMap","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","_absoluteSources","_sourceMapURL","Mapping","lastOffset","_sections","offset","offsetLine","offsetColumn","generatedOffset","consumer","binarySearch","quickSort","__generatedMappings","defineProperty","configurable","enumerable","_parseMappings","__originalMappings","_charIsMappingSeparator","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","aContext","aOrder","context","order","_generatedMappings","_originalMappings","allGeneratedPositionsFor","needle","_findSourceIndex","_findMapping","undefined","lastColumn","relativeSource","smc","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","segment","end","cachedSegments","temp","originalMappings","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","search","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","some","sc","nullOnMissing","fileUriAbsPath","generatedPositionFor","constructor","j","sectionIndex","section","bias","every","generatedPosition","ret","sectionMappings","adjustedMapping","recursiveSearch","aLow","aHigh","aHaystack","aCompare","mid","Math","floor","swap","ary","x","y","randomIntInRange","low","high","round","random","doQuickSort","comparator","r","pivotIndex","pivot","q","aLine","aColumn","aChunks","children","sourceContents","isSourceNode","REGEX_NEWLINE","NEWLINE_CODE","fromStringWithSourceMap","aGeneratedCode","aRelativePath","addMappingWithCode","code","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lineContents","newLine","lastGeneratedLine","lastMapping","nextLine","aChunk","isArray","chunk","prepend","unshift","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent"],"mappings":"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","file":"source-map.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/*\n\t * Copyright 2009-2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE.txt or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\texports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\texports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;\n\texports.SourceNode = __webpack_require__(10).SourceNode;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar base64VLQ = __webpack_require__(2);\n\tvar util = __webpack_require__(4);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar MappingList = __webpack_require__(6).MappingList;\n\t\n\t/**\n\t * An instance of the SourceMapGenerator represents a source map which is\n\t * being built incrementally. You may pass an object with the following\n\t * properties:\n\t *\n\t *   - file: The filename of the generated source.\n\t *   - sourceRoot: A root for all relative URLs in this source map.\n\t */\n\tfunction SourceMapGenerator(aArgs) {\n\t  if (!aArgs) {\n\t    aArgs = {};\n\t  }\n\t  this._file = util.getArg(aArgs, 'file', null);\n\t  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n\t  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t  this._mappings = new MappingList();\n\t  this._sourcesContents = null;\n\t}\n\t\n\tSourceMapGenerator.prototype._version = 3;\n\t\n\t/**\n\t * Creates a new SourceMapGenerator based on a SourceMapConsumer\n\t *\n\t * @param aSourceMapConsumer The SourceMap.\n\t */\n\tSourceMapGenerator.fromSourceMap =\n\t  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n\t    var sourceRoot = aSourceMapConsumer.sourceRoot;\n\t    var generator = new SourceMapGenerator({\n\t      file: aSourceMapConsumer.file,\n\t      sourceRoot: sourceRoot\n\t    });\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      var newMapping = {\n\t        generated: {\n\t          line: mapping.generatedLine,\n\t          column: mapping.generatedColumn\n\t        }\n\t      };\n\t\n\t      if (mapping.source != null) {\n\t        newMapping.source = mapping.source;\n\t        if (sourceRoot != null) {\n\t          newMapping.source = util.relative(sourceRoot, newMapping.source);\n\t        }\n\t\n\t        newMapping.original = {\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        };\n\t\n\t        if (mapping.name != null) {\n\t          newMapping.name = mapping.name;\n\t        }\n\t      }\n\t\n\t      generator.addMapping(newMapping);\n\t    });\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var sourceRelative = sourceFile;\n\t      if (sourceRoot !== null) {\n\t        sourceRelative = util.relative(sourceRoot, sourceFile);\n\t      }\n\t\n\t      if (!generator._sources.has(sourceRelative)) {\n\t        generator._sources.add(sourceRelative);\n\t      }\n\t\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        generator.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t    return generator;\n\t  };\n\t\n\t/**\n\t * Add a single mapping from original source line and column to the generated\n\t * source's line and column for this source map being created. The mapping\n\t * object should have the following properties:\n\t *\n\t *   - generated: An object with the generated line and column positions.\n\t *   - original: An object with the original line and column positions.\n\t *   - source: The original source file (relative to the sourceRoot).\n\t *   - name: An optional original token name for this mapping.\n\t */\n\tSourceMapGenerator.prototype.addMapping =\n\t  function SourceMapGenerator_addMapping(aArgs) {\n\t    var generated = util.getArg(aArgs, 'generated');\n\t    var original = util.getArg(aArgs, 'original', null);\n\t    var source = util.getArg(aArgs, 'source', null);\n\t    var name = util.getArg(aArgs, 'name', null);\n\t\n\t    if (!this._skipValidation) {\n\t      this._validateMapping(generated, original, source, name);\n\t    }\n\t\n\t    if (source != null) {\n\t      source = String(source);\n\t      if (!this._sources.has(source)) {\n\t        this._sources.add(source);\n\t      }\n\t    }\n\t\n\t    if (name != null) {\n\t      name = String(name);\n\t      if (!this._names.has(name)) {\n\t        this._names.add(name);\n\t      }\n\t    }\n\t\n\t    this._mappings.add({\n\t      generatedLine: generated.line,\n\t      generatedColumn: generated.column,\n\t      originalLine: original != null && original.line,\n\t      originalColumn: original != null && original.column,\n\t      source: source,\n\t      name: name\n\t    });\n\t  };\n\t\n\t/**\n\t * Set the source content for a source file.\n\t */\n\tSourceMapGenerator.prototype.setSourceContent =\n\t  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n\t    var source = aSourceFile;\n\t    if (this._sourceRoot != null) {\n\t      source = util.relative(this._sourceRoot, source);\n\t    }\n\t\n\t    if (aSourceContent != null) {\n\t      // Add the source content to the _sourcesContents map.\n\t      // Create a new _sourcesContents map if the property is null.\n\t      if (!this._sourcesContents) {\n\t        this._sourcesContents = Object.create(null);\n\t      }\n\t      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n\t    } else if (this._sourcesContents) {\n\t      // Remove the source file from the _sourcesContents map.\n\t      // If the _sourcesContents map is empty, set the property to null.\n\t      delete this._sourcesContents[util.toSetString(source)];\n\t      if (Object.keys(this._sourcesContents).length === 0) {\n\t        this._sourcesContents = null;\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Applies the mappings of a sub-source-map for a specific source file to the\n\t * source map being generated. Each mapping to the supplied source file is\n\t * rewritten using the supplied source map. Note: The resolution for the\n\t * resulting mappings is the minimium of this map and the supplied map.\n\t *\n\t * @param aSourceMapConsumer The source map to be applied.\n\t * @param aSourceFile Optional. The filename of the source file.\n\t *        If omitted, SourceMapConsumer's file property will be used.\n\t * @param aSourceMapPath Optional. The dirname of the path to the source map\n\t *        to be applied. If relative, it is relative to the SourceMapConsumer.\n\t *        This parameter is needed when the two source maps aren't in the same\n\t *        directory, and the source map to be applied contains relative source\n\t *        paths. If so, those relative source paths need to be rewritten\n\t *        relative to the SourceMapGenerator.\n\t */\n\tSourceMapGenerator.prototype.applySourceMap =\n\t  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n\t    var sourceFile = aSourceFile;\n\t    // If aSourceFile is omitted, we will use the file property of the SourceMap\n\t    if (aSourceFile == null) {\n\t      if (aSourceMapConsumer.file == null) {\n\t        throw new Error(\n\t          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n\t          'or the source map\\'s \"file\" property. Both were omitted.'\n\t        );\n\t      }\n\t      sourceFile = aSourceMapConsumer.file;\n\t    }\n\t    var sourceRoot = this._sourceRoot;\n\t    // Make \"sourceFile\" relative if an absolute Url is passed.\n\t    if (sourceRoot != null) {\n\t      sourceFile = util.relative(sourceRoot, sourceFile);\n\t    }\n\t    // Applying the SourceMap can add and remove items from the sources and\n\t    // the names array.\n\t    var newSources = new ArraySet();\n\t    var newNames = new ArraySet();\n\t\n\t    // Find mappings for the \"sourceFile\"\n\t    this._mappings.unsortedForEach(function (mapping) {\n\t      if (mapping.source === sourceFile && mapping.originalLine != null) {\n\t        // Check if it can be mapped by the source map, then update the mapping.\n\t        var original = aSourceMapConsumer.originalPositionFor({\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        });\n\t        if (original.source != null) {\n\t          // Copy mapping\n\t          mapping.source = original.source;\n\t          if (aSourceMapPath != null) {\n\t            mapping.source = util.join(aSourceMapPath, mapping.source)\n\t          }\n\t          if (sourceRoot != null) {\n\t            mapping.source = util.relative(sourceRoot, mapping.source);\n\t          }\n\t          mapping.originalLine = original.line;\n\t          mapping.originalColumn = original.column;\n\t          if (original.name != null) {\n\t            mapping.name = original.name;\n\t          }\n\t        }\n\t      }\n\t\n\t      var source = mapping.source;\n\t      if (source != null && !newSources.has(source)) {\n\t        newSources.add(source);\n\t      }\n\t\n\t      var name = mapping.name;\n\t      if (name != null && !newNames.has(name)) {\n\t        newNames.add(name);\n\t      }\n\t\n\t    }, this);\n\t    this._sources = newSources;\n\t    this._names = newNames;\n\t\n\t    // Copy sourcesContents of applied map.\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aSourceMapPath != null) {\n\t          sourceFile = util.join(aSourceMapPath, sourceFile);\n\t        }\n\t        if (sourceRoot != null) {\n\t          sourceFile = util.relative(sourceRoot, sourceFile);\n\t        }\n\t        this.setSourceContent(sourceFile, content);\n\t      }\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * A mapping can have one of the three levels of data:\n\t *\n\t *   1. Just the generated position.\n\t *   2. The Generated position, original position, and original source.\n\t *   3. Generated and original position, original source, as well as a name\n\t *      token.\n\t *\n\t * To maintain consistency, we validate that any new mapping being added falls\n\t * in to one of these categories.\n\t */\n\tSourceMapGenerator.prototype._validateMapping =\n\t  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n\t                                              aName) {\n\t    // When aOriginal is truthy but has empty values for .line and .column,\n\t    // it is most likely a programmer error. In this case we throw a very\n\t    // specific error message to try to guide them the right way.\n\t    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n\t    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n\t        throw new Error(\n\t            'original.line and original.column are not numbers -- you probably meant to omit ' +\n\t            'the original mapping entirely and only map the generated position. If so, pass ' +\n\t            'null for the original mapping instead of an object with empty or null values.'\n\t        );\n\t    }\n\t\n\t    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t        && aGenerated.line > 0 && aGenerated.column >= 0\n\t        && !aOriginal && !aSource && !aName) {\n\t      // Case 1.\n\t      return;\n\t    }\n\t    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n\t             && aGenerated.line > 0 && aGenerated.column >= 0\n\t             && aOriginal.line > 0 && aOriginal.column >= 0\n\t             && aSource) {\n\t      // Cases 2 and 3.\n\t      return;\n\t    }\n\t    else {\n\t      throw new Error('Invalid mapping: ' + JSON.stringify({\n\t        generated: aGenerated,\n\t        source: aSource,\n\t        original: aOriginal,\n\t        name: aName\n\t      }));\n\t    }\n\t  };\n\t\n\t/**\n\t * Serialize the accumulated mappings in to the stream of base 64 VLQs\n\t * specified by the source map format.\n\t */\n\tSourceMapGenerator.prototype._serializeMappings =\n\t  function SourceMapGenerator_serializeMappings() {\n\t    var previousGeneratedColumn = 0;\n\t    var previousGeneratedLine = 1;\n\t    var previousOriginalColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousName = 0;\n\t    var previousSource = 0;\n\t    var result = '';\n\t    var next;\n\t    var mapping;\n\t    var nameIdx;\n\t    var sourceIdx;\n\t\n\t    var mappings = this._mappings.toArray();\n\t    for (var i = 0, len = mappings.length; i < len; i++) {\n\t      mapping = mappings[i];\n\t      next = ''\n\t\n\t      if (mapping.generatedLine !== previousGeneratedLine) {\n\t        previousGeneratedColumn = 0;\n\t        while (mapping.generatedLine !== previousGeneratedLine) {\n\t          next += ';';\n\t          previousGeneratedLine++;\n\t        }\n\t      }\n\t      else {\n\t        if (i > 0) {\n\t          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n\t            continue;\n\t          }\n\t          next += ',';\n\t        }\n\t      }\n\t\n\t      next += base64VLQ.encode(mapping.generatedColumn\n\t                                 - previousGeneratedColumn);\n\t      previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t      if (mapping.source != null) {\n\t        sourceIdx = this._sources.indexOf(mapping.source);\n\t        next += base64VLQ.encode(sourceIdx - previousSource);\n\t        previousSource = sourceIdx;\n\t\n\t        // lines are stored 0-based in SourceMap spec version 3\n\t        next += base64VLQ.encode(mapping.originalLine - 1\n\t                                   - previousOriginalLine);\n\t        previousOriginalLine = mapping.originalLine - 1;\n\t\n\t        next += base64VLQ.encode(mapping.originalColumn\n\t                                   - previousOriginalColumn);\n\t        previousOriginalColumn = mapping.originalColumn;\n\t\n\t        if (mapping.name != null) {\n\t          nameIdx = this._names.indexOf(mapping.name);\n\t          next += base64VLQ.encode(nameIdx - previousName);\n\t          previousName = nameIdx;\n\t        }\n\t      }\n\t\n\t      result += next;\n\t    }\n\t\n\t    return result;\n\t  };\n\t\n\tSourceMapGenerator.prototype._generateSourcesContent =\n\t  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n\t    return aSources.map(function (source) {\n\t      if (!this._sourcesContents) {\n\t        return null;\n\t      }\n\t      if (aSourceRoot != null) {\n\t        source = util.relative(aSourceRoot, source);\n\t      }\n\t      var key = util.toSetString(source);\n\t      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n\t        ? this._sourcesContents[key]\n\t        : null;\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * Externalize the source map.\n\t */\n\tSourceMapGenerator.prototype.toJSON =\n\t  function SourceMapGenerator_toJSON() {\n\t    var map = {\n\t      version: this._version,\n\t      sources: this._sources.toArray(),\n\t      names: this._names.toArray(),\n\t      mappings: this._serializeMappings()\n\t    };\n\t    if (this._file != null) {\n\t      map.file = this._file;\n\t    }\n\t    if (this._sourceRoot != null) {\n\t      map.sourceRoot = this._sourceRoot;\n\t    }\n\t    if (this._sourcesContents) {\n\t      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n\t    }\n\t\n\t    return map;\n\t  };\n\t\n\t/**\n\t * Render the source map being generated to a string.\n\t */\n\tSourceMapGenerator.prototype.toString =\n\t  function SourceMapGenerator_toString() {\n\t    return JSON.stringify(this.toJSON());\n\t  };\n\t\n\texports.SourceMapGenerator = SourceMapGenerator;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t *  * Redistributions of source code must retain the above copyright\n\t *    notice, this list of conditions and the following disclaimer.\n\t *  * Redistributions in binary form must reproduce the above\n\t *    copyright notice, this list of conditions and the following\n\t *    disclaimer in the documentation and/or other materials provided\n\t *    with the distribution.\n\t *  * Neither the name of Google Inc. nor the names of its\n\t *    contributors may be used to endorse or promote products derived\n\t *    from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\t\n\tvar base64 = __webpack_require__(3);\n\t\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t//   Continuation\n\t//   |    Sign\n\t//   |    |\n\t//   V    V\n\t//   101011\n\t\n\tvar VLQ_BASE_SHIFT = 5;\n\t\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\t\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\t\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\t\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t  return aValue < 0\n\t    ? ((-aValue) << 1) + 1\n\t    : (aValue << 1) + 0;\n\t}\n\t\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t  var isNegative = (aValue & 1) === 1;\n\t  var shifted = aValue >> 1;\n\t  return isNegative\n\t    ? -shifted\n\t    : shifted;\n\t}\n\t\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t  var encoded = \"\";\n\t  var digit;\n\t\n\t  var vlq = toVLQSigned(aValue);\n\t\n\t  do {\n\t    digit = vlq & VLQ_BASE_MASK;\n\t    vlq >>>= VLQ_BASE_SHIFT;\n\t    if (vlq > 0) {\n\t      // There are still more digits in this value, so we must make sure the\n\t      // continuation bit is marked.\n\t      digit |= VLQ_CONTINUATION_BIT;\n\t    }\n\t    encoded += base64.encode(digit);\n\t  } while (vlq > 0);\n\t\n\t  return encoded;\n\t};\n\t\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t  var strLen = aStr.length;\n\t  var result = 0;\n\t  var shift = 0;\n\t  var continuation, digit;\n\t\n\t  do {\n\t    if (aIndex >= strLen) {\n\t      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t    }\n\t\n\t    digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t    if (digit === -1) {\n\t      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t    }\n\t\n\t    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t    digit &= VLQ_BASE_MASK;\n\t    result = result + (digit << shift);\n\t    shift += VLQ_BASE_SHIFT;\n\t  } while (continuation);\n\t\n\t  aOutParam.value = fromVLQSigned(result);\n\t  aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\t\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t  if (0 <= number && number < intToCharMap.length) {\n\t    return intToCharMap[number];\n\t  }\n\t  throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\t\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t  var bigA = 65;     // 'A'\n\t  var bigZ = 90;     // 'Z'\n\t\n\t  var littleA = 97;  // 'a'\n\t  var littleZ = 122; // 'z'\n\t\n\t  var zero = 48;     // '0'\n\t  var nine = 57;     // '9'\n\t\n\t  var plus = 43;     // '+'\n\t  var slash = 47;    // '/'\n\t\n\t  var littleOffset = 26;\n\t  var numberOffset = 52;\n\t\n\t  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t  if (bigA <= charCode && charCode <= bigZ) {\n\t    return (charCode - bigA);\n\t  }\n\t\n\t  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t  if (littleA <= charCode && charCode <= littleZ) {\n\t    return (charCode - littleA + littleOffset);\n\t  }\n\t\n\t  // 52 - 61: 0123456789\n\t  if (zero <= charCode && charCode <= nine) {\n\t    return (charCode - zero + numberOffset);\n\t  }\n\t\n\t  // 62: +\n\t  if (charCode == plus) {\n\t    return 62;\n\t  }\n\t\n\t  // 63: /\n\t  if (charCode == slash) {\n\t    return 63;\n\t  }\n\t\n\t  // Invalid base64 digit.\n\t  return -1;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t  if (aName in aArgs) {\n\t    return aArgs[aName];\n\t  } else if (arguments.length === 3) {\n\t    return aDefaultValue;\n\t  } else {\n\t    throw new Error('\"' + aName + '\" is a required argument.');\n\t  }\n\t}\n\texports.getArg = getArg;\n\t\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\t\n\tfunction urlParse(aUrl) {\n\t  var match = aUrl.match(urlRegexp);\n\t  if (!match) {\n\t    return null;\n\t  }\n\t  return {\n\t    scheme: match[1],\n\t    auth: match[2],\n\t    host: match[3],\n\t    port: match[4],\n\t    path: match[5]\n\t  };\n\t}\n\texports.urlParse = urlParse;\n\t\n\tfunction urlGenerate(aParsedUrl) {\n\t  var url = '';\n\t  if (aParsedUrl.scheme) {\n\t    url += aParsedUrl.scheme + ':';\n\t  }\n\t  url += '//';\n\t  if (aParsedUrl.auth) {\n\t    url += aParsedUrl.auth + '@';\n\t  }\n\t  if (aParsedUrl.host) {\n\t    url += aParsedUrl.host;\n\t  }\n\t  if (aParsedUrl.port) {\n\t    url += \":\" + aParsedUrl.port\n\t  }\n\t  if (aParsedUrl.path) {\n\t    url += aParsedUrl.path;\n\t  }\n\t  return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\t\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t  var path = aPath;\n\t  var url = urlParse(aPath);\n\t  if (url) {\n\t    if (!url.path) {\n\t      return aPath;\n\t    }\n\t    path = url.path;\n\t  }\n\t  var isAbsolute = exports.isAbsolute(path);\n\t\n\t  var parts = path.split(/\\/+/);\n\t  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t    part = parts[i];\n\t    if (part === '.') {\n\t      parts.splice(i, 1);\n\t    } else if (part === '..') {\n\t      up++;\n\t    } else if (up > 0) {\n\t      if (part === '') {\n\t        // The first part is blank if the path is absolute. Trying to go\n\t        // above the root is a no-op. Therefore we can remove all '..' parts\n\t        // directly after the root.\n\t        parts.splice(i + 1, up);\n\t        up = 0;\n\t      } else {\n\t        parts.splice(i, 2);\n\t        up--;\n\t      }\n\t    }\n\t  }\n\t  path = parts.join('/');\n\t\n\t  if (path === '') {\n\t    path = isAbsolute ? '/' : '.';\n\t  }\n\t\n\t  if (url) {\n\t    url.path = path;\n\t    return urlGenerate(url);\n\t  }\n\t  return path;\n\t}\n\texports.normalize = normalize;\n\t\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t *   first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t *   is updated with the result and aRoot is returned. Otherwise the result\n\t *   is returned.\n\t *   - If aPath is absolute, the result is aPath.\n\t *   - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t  if (aPath === \"\") {\n\t    aPath = \".\";\n\t  }\n\t  var aPathUrl = urlParse(aPath);\n\t  var aRootUrl = urlParse(aRoot);\n\t  if (aRootUrl) {\n\t    aRoot = aRootUrl.path || '/';\n\t  }\n\t\n\t  // `join(foo, '//www.example.org')`\n\t  if (aPathUrl && !aPathUrl.scheme) {\n\t    if (aRootUrl) {\n\t      aPathUrl.scheme = aRootUrl.scheme;\n\t    }\n\t    return urlGenerate(aPathUrl);\n\t  }\n\t\n\t  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t    return aPath;\n\t  }\n\t\n\t  // `join('http://', 'www.example.com')`\n\t  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t    aRootUrl.host = aPath;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t\n\t  var joined = aPath.charAt(0) === '/'\n\t    ? aPath\n\t    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\t\n\t  if (aRootUrl) {\n\t    aRootUrl.path = joined;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t  return joined;\n\t}\n\texports.join = join;\n\t\n\texports.isAbsolute = function (aPath) {\n\t  return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n\t};\n\t\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t\n\t  aRoot = aRoot.replace(/\\/$/, '');\n\t\n\t  // It is possible for the path to be above the root. In this case, simply\n\t  // checking whether the root is a prefix of the path won't work. Instead, we\n\t  // need to remove components from the root one by one, until either we find\n\t  // a prefix that fits, or we run out of components to remove.\n\t  var level = 0;\n\t  while (aPath.indexOf(aRoot + '/') !== 0) {\n\t    var index = aRoot.lastIndexOf(\"/\");\n\t    if (index < 0) {\n\t      return aPath;\n\t    }\n\t\n\t    // If the only part of the root that is left is the scheme (i.e. http://,\n\t    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t    // have exhausted all components, so the path is not relative to the root.\n\t    aRoot = aRoot.slice(0, index);\n\t    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t      return aPath;\n\t    }\n\t\n\t    ++level;\n\t  }\n\t\n\t  // Make sure we add a \"../\" for each component we removed from the root.\n\t  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\t\n\tvar supportsNullProto = (function () {\n\t  var obj = Object.create(null);\n\t  return !('__proto__' in obj);\n\t}());\n\t\n\tfunction identity (s) {\n\t  return s;\n\t}\n\t\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return '$' + aStr;\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\t\n\tfunction fromSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return aStr.slice(1);\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\t\n\tfunction isProtoString(s) {\n\t  if (!s) {\n\t    return false;\n\t  }\n\t\n\t  var length = s.length;\n\t\n\t  if (length < 9 /* \"__proto__\".length */) {\n\t    return false;\n\t  }\n\t\n\t  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n\t    return false;\n\t  }\n\t\n\t  for (var i = length - 10; i >= 0; i--) {\n\t    if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t      return false;\n\t    }\n\t  }\n\t\n\t  return true;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t  var cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0 || onlyCompareOriginal) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\t\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0 || onlyCompareGenerated) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\t\n\tfunction strcmp(aStr1, aStr2) {\n\t  if (aStr1 === aStr2) {\n\t    return 0;\n\t  }\n\t\n\t  if (aStr1 === null) {\n\t    return 1; // aStr2 !== null\n\t  }\n\t\n\t  if (aStr2 === null) {\n\t    return -1; // aStr1 !== null\n\t  }\n\t\n\t  if (aStr1 > aStr2) {\n\t    return 1;\n\t  }\n\t\n\t  return -1;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\t\n\t/**\n\t * Strip any JSON XSSI avoidance prefix from the string (as documented\n\t * in the source maps specification), and then parse the string as\n\t * JSON.\n\t */\n\tfunction parseSourceMapInput(str) {\n\t  return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n\t}\n\texports.parseSourceMapInput = parseSourceMapInput;\n\t\n\t/**\n\t * Compute the URL of a source given the the source root, the source's\n\t * URL, and the source map's URL.\n\t */\n\tfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n\t  sourceURL = sourceURL || '';\n\t\n\t  if (sourceRoot) {\n\t    // This follows what Chrome does.\n\t    if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n\t      sourceRoot += '/';\n\t    }\n\t    // The spec says:\n\t    //   Line 4: An optional source root, useful for relocating source\n\t    //   files on a server or removing repeated values in the\n\t    //   “sources” entry.  This value is prepended to the individual\n\t    //   entries in the “source” field.\n\t    sourceURL = sourceRoot + sourceURL;\n\t  }\n\t\n\t  // Historically, SourceMapConsumer did not take the sourceMapURL as\n\t  // a parameter.  This mode is still somewhat supported, which is why\n\t  // this code block is conditional.  However, it's preferable to pass\n\t  // the source map URL to SourceMapConsumer, so that this function\n\t  // can implement the source URL resolution algorithm as outlined in\n\t  // the spec.  This block is basically the equivalent of:\n\t  //    new URL(sourceURL, sourceMapURL).toString()\n\t  // ... except it avoids using URL, which wasn't available in the\n\t  // older releases of node still supported by this library.\n\t  //\n\t  // The spec says:\n\t  //   If the sources are not absolute URLs after prepending of the\n\t  //   “sourceRoot”, the sources are resolved relative to the\n\t  //   SourceMap (like resolving script src in a html document).\n\t  if (sourceMapURL) {\n\t    var parsed = urlParse(sourceMapURL);\n\t    if (!parsed) {\n\t      throw new Error(\"sourceMapURL could not be parsed\");\n\t    }\n\t    if (parsed.path) {\n\t      // Strip the last path component, but keep the \"/\".\n\t      var index = parsed.path.lastIndexOf('/');\n\t      if (index >= 0) {\n\t        parsed.path = parsed.path.substring(0, index + 1);\n\t      }\n\t    }\n\t    sourceURL = join(urlGenerate(parsed), sourceURL);\n\t  }\n\t\n\t  return normalize(sourceURL);\n\t}\n\texports.computeSourceURL = computeSourceURL;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar hasNativeMap = typeof Map !== \"undefined\";\n\t\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t  this._array = [];\n\t  this._set = hasNativeMap ? new Map() : Object.create(null);\n\t}\n\t\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t  var set = new ArraySet();\n\t  for (var i = 0, len = aArray.length; i < len; i++) {\n\t    set.add(aArray[i], aAllowDuplicates);\n\t  }\n\t  return set;\n\t};\n\t\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n\t};\n\t\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n\t  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n\t  var idx = this._array.length;\n\t  if (!isDuplicate || aAllowDuplicates) {\n\t    this._array.push(aStr);\n\t  }\n\t  if (!isDuplicate) {\n\t    if (hasNativeMap) {\n\t      this._set.set(aStr, idx);\n\t    } else {\n\t      this._set[sStr] = idx;\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t  if (hasNativeMap) {\n\t    return this._set.has(aStr);\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    return has.call(this._set, sStr);\n\t  }\n\t};\n\t\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t  if (hasNativeMap) {\n\t    var idx = this._set.get(aStr);\n\t    if (idx >= 0) {\n\t        return idx;\n\t    }\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    if (has.call(this._set, sStr)) {\n\t      return this._set[sStr];\n\t    }\n\t  }\n\t\n\t  throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\t\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t  if (aIdx >= 0 && aIdx < this._array.length) {\n\t    return this._array[aIdx];\n\t  }\n\t  throw new Error('No element indexed by ' + aIdx);\n\t};\n\t\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t  return this._array.slice();\n\t};\n\t\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2014 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\t\n\t/**\n\t * Determine whether mappingB is after mappingA with respect to generated\n\t * position.\n\t */\n\tfunction generatedPositionAfter(mappingA, mappingB) {\n\t  // Optimized for most common case\n\t  var lineA = mappingA.generatedLine;\n\t  var lineB = mappingB.generatedLine;\n\t  var columnA = mappingA.generatedColumn;\n\t  var columnB = mappingB.generatedColumn;\n\t  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n\t         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n\t}\n\t\n\t/**\n\t * A data structure to provide a sorted view of accumulated mappings in a\n\t * performance conscious manner. It trades a neglibable overhead in general\n\t * case for a large speedup in case of mappings being added in order.\n\t */\n\tfunction MappingList() {\n\t  this._array = [];\n\t  this._sorted = true;\n\t  // Serves as infimum\n\t  this._last = {generatedLine: -1, generatedColumn: 0};\n\t}\n\t\n\t/**\n\t * Iterate through internal items. This method takes the same arguments that\n\t * `Array.prototype.forEach` takes.\n\t *\n\t * NOTE: The order of the mappings is NOT guaranteed.\n\t */\n\tMappingList.prototype.unsortedForEach =\n\t  function MappingList_forEach(aCallback, aThisArg) {\n\t    this._array.forEach(aCallback, aThisArg);\n\t  };\n\t\n\t/**\n\t * Add the given source mapping.\n\t *\n\t * @param Object aMapping\n\t */\n\tMappingList.prototype.add = function MappingList_add(aMapping) {\n\t  if (generatedPositionAfter(this._last, aMapping)) {\n\t    this._last = aMapping;\n\t    this._array.push(aMapping);\n\t  } else {\n\t    this._sorted = false;\n\t    this._array.push(aMapping);\n\t  }\n\t};\n\t\n\t/**\n\t * Returns the flat, sorted array of mappings. The mappings are sorted by\n\t * generated position.\n\t *\n\t * WARNING: This method returns internal data without copying, for\n\t * performance. The return value must NOT be mutated, and should be treated as\n\t * an immutable borrow. If you want to take ownership, you must make your own\n\t * copy.\n\t */\n\tMappingList.prototype.toArray = function MappingList_toArray() {\n\t  if (!this._sorted) {\n\t    this._array.sort(util.compareByGeneratedPositionsInflated);\n\t    this._sorted = true;\n\t  }\n\t  return this._array;\n\t};\n\t\n\texports.MappingList = MappingList;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar binarySearch = __webpack_require__(8);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar base64VLQ = __webpack_require__(2);\n\tvar quickSort = __webpack_require__(9).quickSort;\n\t\n\tfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = util.parseSourceMapInput(aSourceMap);\n\t  }\n\t\n\t  return sourceMap.sections != null\n\t    ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n\t    : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n\t}\n\t\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n\t  return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n\t}\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\t\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t//     {\n\t//       generatedLine: The line number in the generated code,\n\t//       generatedColumn: The column number in the generated code,\n\t//       source: The path to the original source file that generated this\n\t//               chunk of code,\n\t//       originalLine: The line number in the original source that\n\t//                     corresponds to this chunk of generated code,\n\t//       originalColumn: The column number in the original source that\n\t//                       corresponds to this chunk of generated code,\n\t//       name: The name of the original symbol which generated this chunk of\n\t//             code.\n\t//     }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\t\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t  configurable: true,\n\t  enumerable: true,\n\t  get: function () {\n\t    if (!this.__generatedMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__generatedMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t  configurable: true,\n\t  enumerable: true,\n\t  get: function () {\n\t    if (!this.__originalMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__originalMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t    var c = aStr.charAt(index);\n\t    return c === \";\" || c === \",\";\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    throw new Error(\"Subclasses must implement _parseMappings\");\n\t  };\n\t\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\t\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t *        The function that is called with each mapping.\n\t * @param Object aContext\n\t *        Optional. If specified, this object will be the value of `this` every\n\t *        time that `aCallback` is called.\n\t * @param aOrder\n\t *        Either `SourceMapConsumer.GENERATED_ORDER` or\n\t *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t *        iterate over the mappings sorted by the generated file's line/column\n\t *        order or the original's source/line/column order, respectively. Defaults to\n\t *        `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t    var context = aContext || null;\n\t    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\t\n\t    var mappings;\n\t    switch (order) {\n\t    case SourceMapConsumer.GENERATED_ORDER:\n\t      mappings = this._generatedMappings;\n\t      break;\n\t    case SourceMapConsumer.ORIGINAL_ORDER:\n\t      mappings = this._originalMappings;\n\t      break;\n\t    default:\n\t      throw new Error(\"Unknown order of iteration.\");\n\t    }\n\t\n\t    var sourceRoot = this.sourceRoot;\n\t    mappings.map(function (mapping) {\n\t      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t      source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n\t      return {\n\t        source: source,\n\t        generatedLine: mapping.generatedLine,\n\t        generatedColumn: mapping.generatedColumn,\n\t        originalLine: mapping.originalLine,\n\t        originalColumn: mapping.originalColumn,\n\t        name: mapping.name === null ? null : this._names.at(mapping.name)\n\t      };\n\t    }, this).forEach(aCallback, context);\n\t  };\n\t\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.  The line number is 1-based.\n\t *   - column: Optional. the column number in the original source.\n\t *    The column number is 0-based.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.  The\n\t *    line number is 1-based.\n\t *   - column: The column number in the generated source, or null.\n\t *    The column number is 0-based.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t    var line = util.getArg(aArgs, 'line');\n\t\n\t    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t    // returns the index of the closest mapping less than the needle. By\n\t    // setting needle.originalColumn to 0, we thus find the last mapping for\n\t    // the given line, provided such a mapping exists.\n\t    var needle = {\n\t      source: util.getArg(aArgs, 'source'),\n\t      originalLine: line,\n\t      originalColumn: util.getArg(aArgs, 'column', 0)\n\t    };\n\t\n\t    needle.source = this._findSourceIndex(needle.source);\n\t    if (needle.source < 0) {\n\t      return [];\n\t    }\n\t\n\t    var mappings = [];\n\t\n\t    var index = this._findMapping(needle,\n\t                                  this._originalMappings,\n\t                                  \"originalLine\",\n\t                                  \"originalColumn\",\n\t                                  util.compareByOriginalPositions,\n\t                                  binarySearch.LEAST_UPPER_BOUND);\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (aArgs.column === undefined) {\n\t        var originalLine = mapping.originalLine;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we found. Since\n\t        // mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we found.\n\t        while (mapping && mapping.originalLine === originalLine) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      } else {\n\t        var originalColumn = mapping.originalColumn;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we were searching for.\n\t        // Since mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we are searching for.\n\t        while (mapping &&\n\t               mapping.originalLine === line &&\n\t               mapping.originalColumn == originalColumn) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      }\n\t    }\n\t\n\t    return mappings;\n\t  };\n\t\n\texports.SourceMapConsumer = SourceMapConsumer;\n\t\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The first parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - sources: An array of URLs to the original source files.\n\t *   - names: An array of identifiers which can be referrenced by individual mappings.\n\t *   - sourceRoot: Optional. The URL root from which all sources are relative.\n\t *   - sourcesContent: Optional. An array of contents of the original source files.\n\t *   - mappings: A string of base64 VLQs which contain the actual mappings.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t *     {\n\t *       version : 3,\n\t *       file: \"out.js\",\n\t *       sourceRoot : \"\",\n\t *       sources: [\"foo.js\", \"bar.js\"],\n\t *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *       mappings: \"AA,AB;;ABCDE;\"\n\t *     }\n\t *\n\t * The second parameter, if given, is a string whose value is the URL\n\t * at which the source map was found.  This URL is used to compute the\n\t * sources array.\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = util.parseSourceMapInput(aSourceMap);\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sources = util.getArg(sourceMap, 'sources');\n\t  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t  // requires the array) to play nice here.\n\t  var names = util.getArg(sourceMap, 'names', []);\n\t  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t  var mappings = util.getArg(sourceMap, 'mappings');\n\t  var file = util.getArg(sourceMap, 'file', null);\n\t\n\t  // Once again, Sass deviates from the spec and supplies the version as a\n\t  // string rather than a number, so we use loose equality checking here.\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  if (sourceRoot) {\n\t    sourceRoot = util.normalize(sourceRoot);\n\t  }\n\t\n\t  sources = sources\n\t    .map(String)\n\t    // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n\t    // See bugzil.la/1090768.\n\t    .map(util.normalize)\n\t    // Always ensure that absolute sources are internally stored relative to\n\t    // the source root, if the source root is absolute. Not doing this would\n\t    // be particularly problematic when the source root is a prefix of the\n\t    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t    .map(function (source) {\n\t      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t        ? util.relative(sourceRoot, source)\n\t        : source;\n\t    });\n\t\n\t  // Pass `true` below to allow duplicate names and sources. While source maps\n\t  // are intended to be compressed and deduplicated, the TypeScript compiler\n\t  // sometimes generates source maps with duplicates in them. See Github issue\n\t  // #72 and bugzil.la/889492.\n\t  this._names = ArraySet.fromArray(names.map(String), true);\n\t  this._sources = ArraySet.fromArray(sources, true);\n\t\n\t  this._absoluteSources = this._sources.toArray().map(function (s) {\n\t    return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n\t  });\n\t\n\t  this.sourceRoot = sourceRoot;\n\t  this.sourcesContent = sourcesContent;\n\t  this._mappings = mappings;\n\t  this._sourceMapURL = aSourceMapURL;\n\t  this.file = file;\n\t}\n\t\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\t\n\t/**\n\t * Utility function to find the index of a source.  Returns -1 if not\n\t * found.\n\t */\n\tBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n\t  var relativeSource = aSource;\n\t  if (this.sourceRoot != null) {\n\t    relativeSource = util.relative(this.sourceRoot, relativeSource);\n\t  }\n\t\n\t  if (this._sources.has(relativeSource)) {\n\t    return this._sources.indexOf(relativeSource);\n\t  }\n\t\n\t  // Maybe aSource is an absolute URL as returned by |sources|.  In\n\t  // this case we can't simply undo the transform.\n\t  var i;\n\t  for (i = 0; i < this._absoluteSources.length; ++i) {\n\t    if (this._absoluteSources[i] == aSource) {\n\t      return i;\n\t    }\n\t  }\n\t\n\t  return -1;\n\t};\n\t\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t *        The source map that will be consumed.\n\t * @param String aSourceMapURL\n\t *        The URL at which the source map can be found (optional)\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t  function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n\t    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\t\n\t    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t    smc.sourceRoot = aSourceMap._sourceRoot;\n\t    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t                                                            smc.sourceRoot);\n\t    smc.file = aSourceMap._file;\n\t    smc._sourceMapURL = aSourceMapURL;\n\t    smc._absoluteSources = smc._sources.toArray().map(function (s) {\n\t      return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n\t    });\n\t\n\t    // Because we are modifying the entries (by converting string sources and\n\t    // names to indices into the sources and names ArraySets), we have to make\n\t    // a copy of the entry or else bad things happen. Shared mutable state\n\t    // strikes again! See github issue #191.\n\t\n\t    var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t    var destGeneratedMappings = smc.__generatedMappings = [];\n\t    var destOriginalMappings = smc.__originalMappings = [];\n\t\n\t    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t      var srcMapping = generatedMappings[i];\n\t      var destMapping = new Mapping;\n\t      destMapping.generatedLine = srcMapping.generatedLine;\n\t      destMapping.generatedColumn = srcMapping.generatedColumn;\n\t\n\t      if (srcMapping.source) {\n\t        destMapping.source = sources.indexOf(srcMapping.source);\n\t        destMapping.originalLine = srcMapping.originalLine;\n\t        destMapping.originalColumn = srcMapping.originalColumn;\n\t\n\t        if (srcMapping.name) {\n\t          destMapping.name = names.indexOf(srcMapping.name);\n\t        }\n\t\n\t        destOriginalMappings.push(destMapping);\n\t      }\n\t\n\t      destGeneratedMappings.push(destMapping);\n\t    }\n\t\n\t    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\t\n\t    return smc;\n\t  };\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    return this._absoluteSources.slice();\n\t  }\n\t});\n\t\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t  this.generatedLine = 0;\n\t  this.generatedColumn = 0;\n\t  this.source = null;\n\t  this.originalLine = null;\n\t  this.originalColumn = null;\n\t  this.name = null;\n\t}\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    var generatedLine = 1;\n\t    var previousGeneratedColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousOriginalColumn = 0;\n\t    var previousSource = 0;\n\t    var previousName = 0;\n\t    var length = aStr.length;\n\t    var index = 0;\n\t    var cachedSegments = {};\n\t    var temp = {};\n\t    var originalMappings = [];\n\t    var generatedMappings = [];\n\t    var mapping, str, segment, end, value;\n\t\n\t    while (index < length) {\n\t      if (aStr.charAt(index) === ';') {\n\t        generatedLine++;\n\t        index++;\n\t        previousGeneratedColumn = 0;\n\t      }\n\t      else if (aStr.charAt(index) === ',') {\n\t        index++;\n\t      }\n\t      else {\n\t        mapping = new Mapping();\n\t        mapping.generatedLine = generatedLine;\n\t\n\t        // Because each offset is encoded relative to the previous one,\n\t        // many segments often have the same encoding. We can exploit this\n\t        // fact by caching the parsed variable length fields of each segment,\n\t        // allowing us to avoid a second parse if we encounter the same\n\t        // segment again.\n\t        for (end = index; end < length; end++) {\n\t          if (this._charIsMappingSeparator(aStr, end)) {\n\t            break;\n\t          }\n\t        }\n\t        str = aStr.slice(index, end);\n\t\n\t        segment = cachedSegments[str];\n\t        if (segment) {\n\t          index += str.length;\n\t        } else {\n\t          segment = [];\n\t          while (index < end) {\n\t            base64VLQ.decode(aStr, index, temp);\n\t            value = temp.value;\n\t            index = temp.rest;\n\t            segment.push(value);\n\t          }\n\t\n\t          if (segment.length === 2) {\n\t            throw new Error('Found a source, but no line and column');\n\t          }\n\t\n\t          if (segment.length === 3) {\n\t            throw new Error('Found a source and line, but no column');\n\t          }\n\t\n\t          cachedSegments[str] = segment;\n\t        }\n\t\n\t        // Generated column.\n\t        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t        previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t        if (segment.length > 1) {\n\t          // Original source.\n\t          mapping.source = previousSource + segment[1];\n\t          previousSource += segment[1];\n\t\n\t          // Original line.\n\t          mapping.originalLine = previousOriginalLine + segment[2];\n\t          previousOriginalLine = mapping.originalLine;\n\t          // Lines are stored 0-based\n\t          mapping.originalLine += 1;\n\t\n\t          // Original column.\n\t          mapping.originalColumn = previousOriginalColumn + segment[3];\n\t          previousOriginalColumn = mapping.originalColumn;\n\t\n\t          if (segment.length > 4) {\n\t            // Original name.\n\t            mapping.name = previousName + segment[4];\n\t            previousName += segment[4];\n\t          }\n\t        }\n\t\n\t        generatedMappings.push(mapping);\n\t        if (typeof mapping.originalLine === 'number') {\n\t          originalMappings.push(mapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    this.__generatedMappings = generatedMappings;\n\t\n\t    quickSort(originalMappings, util.compareByOriginalPositions);\n\t    this.__originalMappings = originalMappings;\n\t  };\n\t\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t                                         aColumnName, aComparator, aBias) {\n\t    // To return the position we are searching for, we must first find the\n\t    // mapping for the given position and then return the opposite position it\n\t    // points to. Because the mappings are sorted, we can use binary search to\n\t    // find the best mapping.\n\t\n\t    if (aNeedle[aLineName] <= 0) {\n\t      throw new TypeError('Line must be greater than or equal to 1, got '\n\t                          + aNeedle[aLineName]);\n\t    }\n\t    if (aNeedle[aColumnName] < 0) {\n\t      throw new TypeError('Column must be greater than or equal to 0, got '\n\t                          + aNeedle[aColumnName]);\n\t    }\n\t\n\t    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t  };\n\t\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t  function SourceMapConsumer_computeColumnSpans() {\n\t    for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      // Mappings do not contain a field for the last generated columnt. We\n\t      // can come up with an optimistic estimate, however, by assuming that\n\t      // mappings are contiguous (i.e. given two consecutive mappings, the\n\t      // first mapping ends where the second one starts).\n\t      if (index + 1 < this._generatedMappings.length) {\n\t        var nextMapping = this._generatedMappings[index + 1];\n\t\n\t        if (mapping.generatedLine === nextMapping.generatedLine) {\n\t          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t          continue;\n\t        }\n\t      }\n\t\n\t      // The last mapping for each line spans the entire line.\n\t      mapping.lastGeneratedColumn = Infinity;\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.  The line number\n\t *     is 1-based.\n\t *   - column: The column number in the generated source.  The column\n\t *     number is 0-based.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.  The\n\t *     line number is 1-based.\n\t *   - column: The column number in the original source, or null.  The\n\t *     column number is 0-based.\n\t *   - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t  function SourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._generatedMappings,\n\t      \"generatedLine\",\n\t      \"generatedColumn\",\n\t      util.compareByGeneratedPositionsDeflated,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      if (mapping.generatedLine === needle.generatedLine) {\n\t        var source = util.getArg(mapping, 'source', null);\n\t        if (source !== null) {\n\t          source = this._sources.at(source);\n\t          source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n\t        }\n\t        var name = util.getArg(mapping, 'name', null);\n\t        if (name !== null) {\n\t          name = this._names.at(name);\n\t        }\n\t        return {\n\t          source: source,\n\t          line: util.getArg(mapping, 'originalLine', null),\n\t          column: util.getArg(mapping, 'originalColumn', null),\n\t          name: name\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      source: null,\n\t      line: null,\n\t      column: null,\n\t      name: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t    if (!this.sourcesContent) {\n\t      return false;\n\t    }\n\t    return this.sourcesContent.length >= this._sources.size() &&\n\t      !this.sourcesContent.some(function (sc) { return sc == null; });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    if (!this.sourcesContent) {\n\t      return null;\n\t    }\n\t\n\t    var index = this._findSourceIndex(aSource);\n\t    if (index >= 0) {\n\t      return this.sourcesContent[index];\n\t    }\n\t\n\t    var relativeSource = aSource;\n\t    if (this.sourceRoot != null) {\n\t      relativeSource = util.relative(this.sourceRoot, relativeSource);\n\t    }\n\t\n\t    var url;\n\t    if (this.sourceRoot != null\n\t        && (url = util.urlParse(this.sourceRoot))) {\n\t      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t      // many users. We can help them out when they expect file:// URIs to\n\t      // behave like it would if they were running a local HTTP server. See\n\t      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t      var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n\t      if (url.scheme == \"file\"\n\t          && this._sources.has(fileUriAbsPath)) {\n\t        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t      }\n\t\n\t      if ((!url.path || url.path == \"/\")\n\t          && this._sources.has(\"/\" + relativeSource)) {\n\t        return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n\t      }\n\t    }\n\t\n\t    // This function is used recursively from\n\t    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t    // don't want to throw if we can't find the source - we just want to\n\t    // return null, so we provide a flag to exit gracefully.\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.  The line number\n\t *     is 1-based.\n\t *   - column: The column number in the original source.  The column\n\t *     number is 0-based.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.  The\n\t *     line number is 1-based.\n\t *   - column: The column number in the generated source, or null.\n\t *     The column number is 0-based.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t  function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t    var source = util.getArg(aArgs, 'source');\n\t    source = this._findSourceIndex(source);\n\t    if (source < 0) {\n\t      return {\n\t        line: null,\n\t        column: null,\n\t        lastColumn: null\n\t      };\n\t    }\n\t\n\t    var needle = {\n\t      source: source,\n\t      originalLine: util.getArg(aArgs, 'line'),\n\t      originalColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._originalMappings,\n\t      \"originalLine\",\n\t      \"originalColumn\",\n\t      util.compareByOriginalPositions,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (mapping.source === needle.source) {\n\t        return {\n\t          line: util.getArg(mapping, 'generatedLine', null),\n\t          column: util.getArg(mapping, 'generatedColumn', null),\n\t          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null,\n\t      lastColumn: null\n\t    };\n\t  };\n\t\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\t\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The first parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *   - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t *   - offset: The offset into the original specified at which this section\n\t *       begins to apply, defined as an object with a \"line\" and \"column\"\n\t *       field.\n\t *   - map: A source map definition. This source map could also be indexed,\n\t *       but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t *  {\n\t *    version : 3,\n\t *    file: \"app.js\",\n\t *    sections: [{\n\t *      offset: {line:100, column:10},\n\t *      map: {\n\t *        version : 3,\n\t *        file: \"section.js\",\n\t *        sources: [\"foo.js\", \"bar.js\"],\n\t *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *        mappings: \"AAAA,E;;ABCDE;\"\n\t *      }\n\t *    }],\n\t *  }\n\t *\n\t * The second parameter, if given, is a string whose value is the URL\n\t * at which the source map was found.  This URL is used to compute the\n\t * sources array.\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = util.parseSourceMapInput(aSourceMap);\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sections = util.getArg(sourceMap, 'sections');\n\t\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t\n\t  var lastOffset = {\n\t    line: -1,\n\t    column: 0\n\t  };\n\t  this._sections = sections.map(function (s) {\n\t    if (s.url) {\n\t      // The url field will require support for asynchronicity.\n\t      // See https://github.com/mozilla/source-map/issues/16\n\t      throw new Error('Support for url field in sections not implemented.');\n\t    }\n\t    var offset = util.getArg(s, 'offset');\n\t    var offsetLine = util.getArg(offset, 'line');\n\t    var offsetColumn = util.getArg(offset, 'column');\n\t\n\t    if (offsetLine < lastOffset.line ||\n\t        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t      throw new Error('Section offsets must be ordered and non-overlapping.');\n\t    }\n\t    lastOffset = offset;\n\t\n\t    return {\n\t      generatedOffset: {\n\t        // The offset fields are 0-based, but we use 1-based indices when\n\t        // encoding/decoding from VLQ.\n\t        generatedLine: offsetLine + 1,\n\t        generatedColumn: offsetColumn + 1\n\t      },\n\t      consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n\t    }\n\t  });\n\t}\n\t\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    var sources = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t        sources.push(this._sections[i].consumer.sources[j]);\n\t      }\n\t    }\n\t    return sources;\n\t  }\n\t});\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.  The line number\n\t *     is 1-based.\n\t *   - column: The column number in the generated source.  The column\n\t *     number is 0-based.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.  The\n\t *     line number is 1-based.\n\t *   - column: The column number in the original source, or null.  The\n\t *     column number is 0-based.\n\t *   - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    // Find the section containing the generated position we're trying to map\n\t    // to an original position.\n\t    var sectionIndex = binarySearch.search(needle, this._sections,\n\t      function(needle, section) {\n\t        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t        if (cmp) {\n\t          return cmp;\n\t        }\n\t\n\t        return (needle.generatedColumn -\n\t                section.generatedOffset.generatedColumn);\n\t      });\n\t    var section = this._sections[sectionIndex];\n\t\n\t    if (!section) {\n\t      return {\n\t        source: null,\n\t        line: null,\n\t        column: null,\n\t        name: null\n\t      };\n\t    }\n\t\n\t    return section.consumer.originalPositionFor({\n\t      line: needle.generatedLine -\n\t        (section.generatedOffset.generatedLine - 1),\n\t      column: needle.generatedColumn -\n\t        (section.generatedOffset.generatedLine === needle.generatedLine\n\t         ? section.generatedOffset.generatedColumn - 1\n\t         : 0),\n\t      bias: aArgs.bias\n\t    });\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t    return this._sections.every(function (s) {\n\t      return s.consumer.hasContentsOfAllSources();\n\t    });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      var content = section.consumer.sourceContentFor(aSource, true);\n\t      if (content) {\n\t        return content;\n\t      }\n\t    }\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.  The line number\n\t *     is 1-based.\n\t *   - column: The column number in the original source.  The column\n\t *     number is 0-based.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.  The\n\t *     line number is 1-based. \n\t *   - column: The column number in the generated source, or null.\n\t *     The column number is 0-based.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      // Only consider this section if the requested source is in the list of\n\t      // sources of the consumer.\n\t      if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n\t        continue;\n\t      }\n\t      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t      if (generatedPosition) {\n\t        var ret = {\n\t          line: generatedPosition.line +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          column: generatedPosition.column +\n\t            (section.generatedOffset.generatedLine === generatedPosition.line\n\t             ? section.generatedOffset.generatedColumn - 1\n\t             : 0)\n\t        };\n\t        return ret;\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    this.__generatedMappings = [];\n\t    this.__originalMappings = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t      var sectionMappings = section.consumer._generatedMappings;\n\t      for (var j = 0; j < sectionMappings.length; j++) {\n\t        var mapping = sectionMappings[j];\n\t\n\t        var source = section.consumer._sources.at(mapping.source);\n\t        source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n\t        this._sources.add(source);\n\t        source = this._sources.indexOf(source);\n\t\n\t        var name = null;\n\t        if (mapping.name) {\n\t          name = section.consumer._names.at(mapping.name);\n\t          this._names.add(name);\n\t          name = this._names.indexOf(name);\n\t        }\n\t\n\t        // The mappings coming from the consumer for the section have\n\t        // generated positions relative to the start of the section, so we\n\t        // need to offset them to be relative to the start of the concatenated\n\t        // generated file.\n\t        var adjustedMapping = {\n\t          source: source,\n\t          generatedLine: mapping.generatedLine +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          generatedColumn: mapping.generatedColumn +\n\t            (section.generatedOffset.generatedLine === mapping.generatedLine\n\t            ? section.generatedOffset.generatedColumn - 1\n\t            : 0),\n\t          originalLine: mapping.originalLine,\n\t          originalColumn: mapping.originalColumn,\n\t          name: name\n\t        };\n\t\n\t        this.__generatedMappings.push(adjustedMapping);\n\t        if (typeof adjustedMapping.originalLine === 'number') {\n\t          this.__originalMappings.push(adjustedMapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t  };\n\t\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t  // This function terminates when one of the following is true:\n\t  //\n\t  //   1. We find the exact element we are looking for.\n\t  //\n\t  //   2. We did not find the exact element, but we can return the index of\n\t  //      the next-closest element.\n\t  //\n\t  //   3. We did not find the exact element, and there is no next-closest\n\t  //      element than the one we are searching for, so we return -1.\n\t  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t  if (cmp === 0) {\n\t    // Found the element we are looking for.\n\t    return mid;\n\t  }\n\t  else if (cmp > 0) {\n\t    // Our needle is greater than aHaystack[mid].\n\t    if (aHigh - mid > 1) {\n\t      // The element is in the upper half.\n\t      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // The exact needle element was not found in this haystack. Determine if\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return aHigh < aHaystack.length ? aHigh : -1;\n\t    } else {\n\t      return mid;\n\t    }\n\t  }\n\t  else {\n\t    // Our needle is less than aHaystack[mid].\n\t    if (mid - aLow > 1) {\n\t      // The element is in the lower half.\n\t      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return mid;\n\t    } else {\n\t      return aLow < 0 ? -1 : aLow;\n\t    }\n\t  }\n\t}\n\t\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t *     array and returns -1, 0, or 1 depending on whether the needle is less\n\t *     than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t  if (aHaystack.length === 0) {\n\t    return -1;\n\t  }\n\t\n\t  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t  if (index < 0) {\n\t    return -1;\n\t  }\n\t\n\t  // We have found either the exact element, or the next-closest element than\n\t  // the one we are searching for. However, there may be more than one such\n\t  // element. Make sure we always return the smallest of these.\n\t  while (index - 1 >= 0) {\n\t    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t      break;\n\t    }\n\t    --index;\n\t  }\n\t\n\t  return index;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\t\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t *        The array.\n\t * @param {Number} x\n\t *        The index of the first item.\n\t * @param {Number} y\n\t *        The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t  var temp = ary[x];\n\t  ary[x] = ary[y];\n\t  ary[y] = temp;\n\t}\n\t\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t *        The lower bound on the range.\n\t * @param {Number} high\n\t *        The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t  return Math.round(low + (Math.random() * (high - low)));\n\t}\n\t\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t * @param {Number} p\n\t *        Start index of the array\n\t * @param {Number} r\n\t *        End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t  // If our lower bound is less than our upper bound, we (1) partition the\n\t  // array into two pieces and (2) recurse on each half. If it is not, this is\n\t  // the empty array and our base case.\n\t\n\t  if (p < r) {\n\t    // (1) Partitioning.\n\t    //\n\t    // The partitioning chooses a pivot between `p` and `r` and moves all\n\t    // elements that are less than or equal to the pivot to the before it, and\n\t    // all the elements that are greater than it after it. The effect is that\n\t    // once partition is done, the pivot is in the exact place it will be when\n\t    // the array is put in sorted order, and it will not need to be moved\n\t    // again. This runs in O(n) time.\n\t\n\t    // Always choose a random pivot so that an input array which is reverse\n\t    // sorted does not cause O(n^2) running time.\n\t    var pivotIndex = randomIntInRange(p, r);\n\t    var i = p - 1;\n\t\n\t    swap(ary, pivotIndex, r);\n\t    var pivot = ary[r];\n\t\n\t    // Immediately after `j` is incremented in this loop, the following hold\n\t    // true:\n\t    //\n\t    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t    //\n\t    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t    for (var j = p; j < r; j++) {\n\t      if (comparator(ary[j], pivot) <= 0) {\n\t        i += 1;\n\t        swap(ary, i, j);\n\t      }\n\t    }\n\t\n\t    swap(ary, i + 1, j);\n\t    var q = i + 1;\n\t\n\t    // (2) Recurse on each half.\n\t\n\t    doQuickSort(ary, comparator, p, q - 1);\n\t    doQuickSort(ary, comparator, q + 1, r);\n\t  }\n\t}\n\t\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t  doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\tvar util = __webpack_require__(4);\n\t\n\t// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n\t// operating systems these days (capturing the result).\n\tvar REGEX_NEWLINE = /(\\r?\\n)/;\n\t\n\t// Newline character code for charCodeAt() comparisons\n\tvar NEWLINE_CODE = 10;\n\t\n\t// Private symbol for identifying `SourceNode`s when multiple versions of\n\t// the source-map library are loaded. This MUST NOT CHANGE across\n\t// versions!\n\tvar isSourceNode = \"$$$isSourceNode$$$\";\n\t\n\t/**\n\t * SourceNodes provide a way to abstract over interpolating/concatenating\n\t * snippets of generated JavaScript source code while maintaining the line and\n\t * column information associated with the original source code.\n\t *\n\t * @param aLine The original line number.\n\t * @param aColumn The original column number.\n\t * @param aSource The original source's filename.\n\t * @param aChunks Optional. An array of strings which are snippets of\n\t *        generated JS, or other SourceNodes.\n\t * @param aName The original identifier.\n\t */\n\tfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n\t  this.children = [];\n\t  this.sourceContents = {};\n\t  this.line = aLine == null ? null : aLine;\n\t  this.column = aColumn == null ? null : aColumn;\n\t  this.source = aSource == null ? null : aSource;\n\t  this.name = aName == null ? null : aName;\n\t  this[isSourceNode] = true;\n\t  if (aChunks != null) this.add(aChunks);\n\t}\n\t\n\t/**\n\t * Creates a SourceNode from generated code and a SourceMapConsumer.\n\t *\n\t * @param aGeneratedCode The generated code\n\t * @param aSourceMapConsumer The SourceMap for the generated code\n\t * @param aRelativePath Optional. The path that relative sources in the\n\t *        SourceMapConsumer should be relative to.\n\t */\n\tSourceNode.fromStringWithSourceMap =\n\t  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n\t    // The SourceNode we want to fill with the generated code\n\t    // and the SourceMap\n\t    var node = new SourceNode();\n\t\n\t    // All even indices of this array are one line of the generated code,\n\t    // while all odd indices are the newlines between two adjacent lines\n\t    // (since `REGEX_NEWLINE` captures its match).\n\t    // Processed fragments are accessed by calling `shiftNextLine`.\n\t    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n\t    var remainingLinesIndex = 0;\n\t    var shiftNextLine = function() {\n\t      var lineContents = getNextLine();\n\t      // The last line of a file might not have a newline.\n\t      var newLine = getNextLine() || \"\";\n\t      return lineContents + newLine;\n\t\n\t      function getNextLine() {\n\t        return remainingLinesIndex < remainingLines.length ?\n\t            remainingLines[remainingLinesIndex++] : undefined;\n\t      }\n\t    };\n\t\n\t    // We need to remember the position of \"remainingLines\"\n\t    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\t\n\t    // The generate SourceNodes we need a code range.\n\t    // To extract it current and last mapping is used.\n\t    // Here we store the last mapping.\n\t    var lastMapping = null;\n\t\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      if (lastMapping !== null) {\n\t        // We add the code from \"lastMapping\" to \"mapping\":\n\t        // First check if there is a new line in between.\n\t        if (lastGeneratedLine < mapping.generatedLine) {\n\t          // Associate first line with \"lastMapping\"\n\t          addMappingWithCode(lastMapping, shiftNextLine());\n\t          lastGeneratedLine++;\n\t          lastGeneratedColumn = 0;\n\t          // The remaining code is added without mapping\n\t        } else {\n\t          // There is no new line in between.\n\t          // Associate the code between \"lastGeneratedColumn\" and\n\t          // \"mapping.generatedColumn\" with \"lastMapping\"\n\t          var nextLine = remainingLines[remainingLinesIndex] || '';\n\t          var code = nextLine.substr(0, mapping.generatedColumn -\n\t                                        lastGeneratedColumn);\n\t          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n\t                                              lastGeneratedColumn);\n\t          lastGeneratedColumn = mapping.generatedColumn;\n\t          addMappingWithCode(lastMapping, code);\n\t          // No more remaining code, continue\n\t          lastMapping = mapping;\n\t          return;\n\t        }\n\t      }\n\t      // We add the generated code until the first mapping\n\t      // to the SourceNode without any mapping.\n\t      // Each line is added as separate string.\n\t      while (lastGeneratedLine < mapping.generatedLine) {\n\t        node.add(shiftNextLine());\n\t        lastGeneratedLine++;\n\t      }\n\t      if (lastGeneratedColumn < mapping.generatedColumn) {\n\t        var nextLine = remainingLines[remainingLinesIndex] || '';\n\t        node.add(nextLine.substr(0, mapping.generatedColumn));\n\t        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n\t        lastGeneratedColumn = mapping.generatedColumn;\n\t      }\n\t      lastMapping = mapping;\n\t    }, this);\n\t    // We have processed all mappings.\n\t    if (remainingLinesIndex < remainingLines.length) {\n\t      if (lastMapping) {\n\t        // Associate the remaining code in the current line with \"lastMapping\"\n\t        addMappingWithCode(lastMapping, shiftNextLine());\n\t      }\n\t      // and add the remaining lines without any mapping\n\t      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n\t    }\n\t\n\t    // Copy sourcesContent into SourceNode\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aRelativePath != null) {\n\t          sourceFile = util.join(aRelativePath, sourceFile);\n\t        }\n\t        node.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t\n\t    return node;\n\t\n\t    function addMappingWithCode(mapping, code) {\n\t      if (mapping === null || mapping.source === undefined) {\n\t        node.add(code);\n\t      } else {\n\t        var source = aRelativePath\n\t          ? util.join(aRelativePath, mapping.source)\n\t          : mapping.source;\n\t        node.add(new SourceNode(mapping.originalLine,\n\t                                mapping.originalColumn,\n\t                                source,\n\t                                code,\n\t                                mapping.name));\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Add a chunk of generated JS to this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.add = function SourceNode_add(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    aChunk.forEach(function (chunk) {\n\t      this.add(chunk);\n\t    }, this);\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    if (aChunk) {\n\t      this.children.push(aChunk);\n\t    }\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Add a chunk of generated JS to the beginning of this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    for (var i = aChunk.length-1; i >= 0; i--) {\n\t      this.prepend(aChunk[i]);\n\t    }\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    this.children.unshift(aChunk);\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Walk over the tree of JS snippets in this node and its children. The\n\t * walking function is called once for each snippet of JS and is passed that\n\t * snippet and the its original associated source's line/column location.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n\t  var chunk;\n\t  for (var i = 0, len = this.children.length; i < len; i++) {\n\t    chunk = this.children[i];\n\t    if (chunk[isSourceNode]) {\n\t      chunk.walk(aFn);\n\t    }\n\t    else {\n\t      if (chunk !== '') {\n\t        aFn(chunk, { source: this.source,\n\t                     line: this.line,\n\t                     column: this.column,\n\t                     name: this.name });\n\t      }\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n\t * each of `this.children`.\n\t *\n\t * @param aSep The separator.\n\t */\n\tSourceNode.prototype.join = function SourceNode_join(aSep) {\n\t  var newChildren;\n\t  var i;\n\t  var len = this.children.length;\n\t  if (len > 0) {\n\t    newChildren = [];\n\t    for (i = 0; i < len-1; i++) {\n\t      newChildren.push(this.children[i]);\n\t      newChildren.push(aSep);\n\t    }\n\t    newChildren.push(this.children[i]);\n\t    this.children = newChildren;\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Call String.prototype.replace on the very right-most source snippet. Useful\n\t * for trimming whitespace from the end of a source node, etc.\n\t *\n\t * @param aPattern The pattern to replace.\n\t * @param aReplacement The thing to replace the pattern with.\n\t */\n\tSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n\t  var lastChild = this.children[this.children.length - 1];\n\t  if (lastChild[isSourceNode]) {\n\t    lastChild.replaceRight(aPattern, aReplacement);\n\t  }\n\t  else if (typeof lastChild === 'string') {\n\t    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n\t  }\n\t  else {\n\t    this.children.push(''.replace(aPattern, aReplacement));\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Set the source content for a source file. This will be added to the SourceMapGenerator\n\t * in the sourcesContent field.\n\t *\n\t * @param aSourceFile The filename of the source file\n\t * @param aSourceContent The content of the source file\n\t */\n\tSourceNode.prototype.setSourceContent =\n\t  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n\t    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n\t  };\n\t\n\t/**\n\t * Walk over the tree of SourceNodes. The walking function is called for each\n\t * source file content and is passed the filename and source content.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walkSourceContents =\n\t  function SourceNode_walkSourceContents(aFn) {\n\t    for (var i = 0, len = this.children.length; i < len; i++) {\n\t      if (this.children[i][isSourceNode]) {\n\t        this.children[i].walkSourceContents(aFn);\n\t      }\n\t    }\n\t\n\t    var sources = Object.keys(this.sourceContents);\n\t    for (var i = 0, len = sources.length; i < len; i++) {\n\t      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n\t    }\n\t  };\n\t\n\t/**\n\t * Return the string representation of this source node. Walks over the tree\n\t * and concatenates all the various snippets together to one string.\n\t */\n\tSourceNode.prototype.toString = function SourceNode_toString() {\n\t  var str = \"\";\n\t  this.walk(function (chunk) {\n\t    str += chunk;\n\t  });\n\t  return str;\n\t};\n\t\n\t/**\n\t * Returns the string representation of this source node along with a source\n\t * map.\n\t */\n\tSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n\t  var generated = {\n\t    code: \"\",\n\t    line: 1,\n\t    column: 0\n\t  };\n\t  var map = new SourceMapGenerator(aArgs);\n\t  var sourceMappingActive = false;\n\t  var lastOriginalSource = null;\n\t  var lastOriginalLine = null;\n\t  var lastOriginalColumn = null;\n\t  var lastOriginalName = null;\n\t  this.walk(function (chunk, original) {\n\t    generated.code += chunk;\n\t    if (original.source !== null\n\t        && original.line !== null\n\t        && original.column !== null) {\n\t      if(lastOriginalSource !== original.source\n\t         || lastOriginalLine !== original.line\n\t         || lastOriginalColumn !== original.column\n\t         || lastOriginalName !== original.name) {\n\t        map.addMapping({\n\t          source: original.source,\n\t          original: {\n\t            line: original.line,\n\t            column: original.column\n\t          },\n\t          generated: {\n\t            line: generated.line,\n\t            column: generated.column\n\t          },\n\t          name: original.name\n\t        });\n\t      }\n\t      lastOriginalSource = original.source;\n\t      lastOriginalLine = original.line;\n\t      lastOriginalColumn = original.column;\n\t      lastOriginalName = original.name;\n\t      sourceMappingActive = true;\n\t    } else if (sourceMappingActive) {\n\t      map.addMapping({\n\t        generated: {\n\t          line: generated.line,\n\t          column: generated.column\n\t        }\n\t      });\n\t      lastOriginalSource = null;\n\t      sourceMappingActive = false;\n\t    }\n\t    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n\t      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n\t        generated.line++;\n\t        generated.column = 0;\n\t        // Mappings end at eol\n\t        if (idx + 1 === length) {\n\t          lastOriginalSource = null;\n\t          sourceMappingActive = false;\n\t        } else if (sourceMappingActive) {\n\t          map.addMapping({\n\t            source: original.source,\n\t            original: {\n\t              line: original.line,\n\t              column: original.column\n\t            },\n\t            generated: {\n\t              line: generated.line,\n\t              column: generated.column\n\t            },\n\t            name: original.name\n\t          });\n\t        }\n\t      } else {\n\t        generated.column++;\n\t      }\n\t    }\n\t  });\n\t  this.walkSourceContents(function (sourceFile, sourceContent) {\n\t    map.setSourceContent(sourceFile, sourceContent);\n\t  });\n\t\n\t  return { code: generated.code, map: map };\n\t};\n\t\n\texports.SourceNode = SourceNode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// source-map.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0fd5815da764db5fb9fe","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source-map.js\n// module id = 0\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n *   - file: The filename of the generated source.\n *   - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n  if (!aArgs) {\n    aArgs = {};\n  }\n  this._file = util.getArg(aArgs, 'file', null);\n  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n  this._mappings = new MappingList();\n  this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n    var sourceRoot = aSourceMapConsumer.sourceRoot;\n    var generator = new SourceMapGenerator({\n      file: aSourceMapConsumer.file,\n      sourceRoot: sourceRoot\n    });\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      var newMapping = {\n        generated: {\n          line: mapping.generatedLine,\n          column: mapping.generatedColumn\n        }\n      };\n\n      if (mapping.source != null) {\n        newMapping.source = mapping.source;\n        if (sourceRoot != null) {\n          newMapping.source = util.relative(sourceRoot, newMapping.source);\n        }\n\n        newMapping.original = {\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        };\n\n        if (mapping.name != null) {\n          newMapping.name = mapping.name;\n        }\n      }\n\n      generator.addMapping(newMapping);\n    });\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var sourceRelative = sourceFile;\n      if (sourceRoot !== null) {\n        sourceRelative = util.relative(sourceRoot, sourceFile);\n      }\n\n      if (!generator._sources.has(sourceRelative)) {\n        generator._sources.add(sourceRelative);\n      }\n\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        generator.setSourceContent(sourceFile, content);\n      }\n    });\n    return generator;\n  };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n *   - generated: An object with the generated line and column positions.\n *   - original: An object with the original line and column positions.\n *   - source: The original source file (relative to the sourceRoot).\n *   - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n  function SourceMapGenerator_addMapping(aArgs) {\n    var generated = util.getArg(aArgs, 'generated');\n    var original = util.getArg(aArgs, 'original', null);\n    var source = util.getArg(aArgs, 'source', null);\n    var name = util.getArg(aArgs, 'name', null);\n\n    if (!this._skipValidation) {\n      this._validateMapping(generated, original, source, name);\n    }\n\n    if (source != null) {\n      source = String(source);\n      if (!this._sources.has(source)) {\n        this._sources.add(source);\n      }\n    }\n\n    if (name != null) {\n      name = String(name);\n      if (!this._names.has(name)) {\n        this._names.add(name);\n      }\n    }\n\n    this._mappings.add({\n      generatedLine: generated.line,\n      generatedColumn: generated.column,\n      originalLine: original != null && original.line,\n      originalColumn: original != null && original.column,\n      source: source,\n      name: name\n    });\n  };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n    var source = aSourceFile;\n    if (this._sourceRoot != null) {\n      source = util.relative(this._sourceRoot, source);\n    }\n\n    if (aSourceContent != null) {\n      // Add the source content to the _sourcesContents map.\n      // Create a new _sourcesContents map if the property is null.\n      if (!this._sourcesContents) {\n        this._sourcesContents = Object.create(null);\n      }\n      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n    } else if (this._sourcesContents) {\n      // Remove the source file from the _sourcesContents map.\n      // If the _sourcesContents map is empty, set the property to null.\n      delete this._sourcesContents[util.toSetString(source)];\n      if (Object.keys(this._sourcesContents).length === 0) {\n        this._sourcesContents = null;\n      }\n    }\n  };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n *        If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n *        to be applied. If relative, it is relative to the SourceMapConsumer.\n *        This parameter is needed when the two source maps aren't in the same\n *        directory, and the source map to be applied contains relative source\n *        paths. If so, those relative source paths need to be rewritten\n *        relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n    var sourceFile = aSourceFile;\n    // If aSourceFile is omitted, we will use the file property of the SourceMap\n    if (aSourceFile == null) {\n      if (aSourceMapConsumer.file == null) {\n        throw new Error(\n          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n          'or the source map\\'s \"file\" property. Both were omitted.'\n        );\n      }\n      sourceFile = aSourceMapConsumer.file;\n    }\n    var sourceRoot = this._sourceRoot;\n    // Make \"sourceFile\" relative if an absolute Url is passed.\n    if (sourceRoot != null) {\n      sourceFile = util.relative(sourceRoot, sourceFile);\n    }\n    // Applying the SourceMap can add and remove items from the sources and\n    // the names array.\n    var newSources = new ArraySet();\n    var newNames = new ArraySet();\n\n    // Find mappings for the \"sourceFile\"\n    this._mappings.unsortedForEach(function (mapping) {\n      if (mapping.source === sourceFile && mapping.originalLine != null) {\n        // Check if it can be mapped by the source map, then update the mapping.\n        var original = aSourceMapConsumer.originalPositionFor({\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        });\n        if (original.source != null) {\n          // Copy mapping\n          mapping.source = original.source;\n          if (aSourceMapPath != null) {\n            mapping.source = util.join(aSourceMapPath, mapping.source)\n          }\n          if (sourceRoot != null) {\n            mapping.source = util.relative(sourceRoot, mapping.source);\n          }\n          mapping.originalLine = original.line;\n          mapping.originalColumn = original.column;\n          if (original.name != null) {\n            mapping.name = original.name;\n          }\n        }\n      }\n\n      var source = mapping.source;\n      if (source != null && !newSources.has(source)) {\n        newSources.add(source);\n      }\n\n      var name = mapping.name;\n      if (name != null && !newNames.has(name)) {\n        newNames.add(name);\n      }\n\n    }, this);\n    this._sources = newSources;\n    this._names = newNames;\n\n    // Copy sourcesContents of applied map.\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aSourceMapPath != null) {\n          sourceFile = util.join(aSourceMapPath, sourceFile);\n        }\n        if (sourceRoot != null) {\n          sourceFile = util.relative(sourceRoot, sourceFile);\n        }\n        this.setSourceContent(sourceFile, content);\n      }\n    }, this);\n  };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n *   1. Just the generated position.\n *   2. The Generated position, original position, and original source.\n *   3. Generated and original position, original source, as well as a name\n *      token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n                                              aName) {\n    // When aOriginal is truthy but has empty values for .line and .column,\n    // it is most likely a programmer error. In this case we throw a very\n    // specific error message to try to guide them the right way.\n    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n        throw new Error(\n            'original.line and original.column are not numbers -- you probably meant to omit ' +\n            'the original mapping entirely and only map the generated position. If so, pass ' +\n            'null for the original mapping instead of an object with empty or null values.'\n        );\n    }\n\n    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n        && aGenerated.line > 0 && aGenerated.column >= 0\n        && !aOriginal && !aSource && !aName) {\n      // Case 1.\n      return;\n    }\n    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n             && aGenerated.line > 0 && aGenerated.column >= 0\n             && aOriginal.line > 0 && aOriginal.column >= 0\n             && aSource) {\n      // Cases 2 and 3.\n      return;\n    }\n    else {\n      throw new Error('Invalid mapping: ' + JSON.stringify({\n        generated: aGenerated,\n        source: aSource,\n        original: aOriginal,\n        name: aName\n      }));\n    }\n  };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n  function SourceMapGenerator_serializeMappings() {\n    var previousGeneratedColumn = 0;\n    var previousGeneratedLine = 1;\n    var previousOriginalColumn = 0;\n    var previousOriginalLine = 0;\n    var previousName = 0;\n    var previousSource = 0;\n    var result = '';\n    var next;\n    var mapping;\n    var nameIdx;\n    var sourceIdx;\n\n    var mappings = this._mappings.toArray();\n    for (var i = 0, len = mappings.length; i < len; i++) {\n      mapping = mappings[i];\n      next = ''\n\n      if (mapping.generatedLine !== previousGeneratedLine) {\n        previousGeneratedColumn = 0;\n        while (mapping.generatedLine !== previousGeneratedLine) {\n          next += ';';\n          previousGeneratedLine++;\n        }\n      }\n      else {\n        if (i > 0) {\n          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n            continue;\n          }\n          next += ',';\n        }\n      }\n\n      next += base64VLQ.encode(mapping.generatedColumn\n                                 - previousGeneratedColumn);\n      previousGeneratedColumn = mapping.generatedColumn;\n\n      if (mapping.source != null) {\n        sourceIdx = this._sources.indexOf(mapping.source);\n        next += base64VLQ.encode(sourceIdx - previousSource);\n        previousSource = sourceIdx;\n\n        // lines are stored 0-based in SourceMap spec version 3\n        next += base64VLQ.encode(mapping.originalLine - 1\n                                   - previousOriginalLine);\n        previousOriginalLine = mapping.originalLine - 1;\n\n        next += base64VLQ.encode(mapping.originalColumn\n                                   - previousOriginalColumn);\n        previousOriginalColumn = mapping.originalColumn;\n\n        if (mapping.name != null) {\n          nameIdx = this._names.indexOf(mapping.name);\n          next += base64VLQ.encode(nameIdx - previousName);\n          previousName = nameIdx;\n        }\n      }\n\n      result += next;\n    }\n\n    return result;\n  };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n    return aSources.map(function (source) {\n      if (!this._sourcesContents) {\n        return null;\n      }\n      if (aSourceRoot != null) {\n        source = util.relative(aSourceRoot, source);\n      }\n      var key = util.toSetString(source);\n      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n        ? this._sourcesContents[key]\n        : null;\n    }, this);\n  };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n  function SourceMapGenerator_toJSON() {\n    var map = {\n      version: this._version,\n      sources: this._sources.toArray(),\n      names: this._names.toArray(),\n      mappings: this._serializeMappings()\n    };\n    if (this._file != null) {\n      map.file = this._file;\n    }\n    if (this._sourceRoot != null) {\n      map.sourceRoot = this._sourceRoot;\n    }\n    if (this._sourcesContents) {\n      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n    }\n\n    return map;\n  };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n  function SourceMapGenerator_toString() {\n    return JSON.stringify(this.toJSON());\n  };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-generator.js\n// module id = 1\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n *  * Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above\n *    copyright notice, this list of conditions and the following\n *    disclaimer in the documentation and/or other materials provided\n *    with the distribution.\n *  * Neither the name of Google Inc. nor the names of its\n *    contributors may be used to endorse or promote products derived\n *    from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n//   Continuation\n//   |    Sign\n//   |    |\n//   V    V\n//   101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n  return aValue < 0\n    ? ((-aValue) << 1) + 1\n    : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n  var isNegative = (aValue & 1) === 1;\n  var shifted = aValue >> 1;\n  return isNegative\n    ? -shifted\n    : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n  var encoded = \"\";\n  var digit;\n\n  var vlq = toVLQSigned(aValue);\n\n  do {\n    digit = vlq & VLQ_BASE_MASK;\n    vlq >>>= VLQ_BASE_SHIFT;\n    if (vlq > 0) {\n      // There are still more digits in this value, so we must make sure the\n      // continuation bit is marked.\n      digit |= VLQ_CONTINUATION_BIT;\n    }\n    encoded += base64.encode(digit);\n  } while (vlq > 0);\n\n  return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n  var strLen = aStr.length;\n  var result = 0;\n  var shift = 0;\n  var continuation, digit;\n\n  do {\n    if (aIndex >= strLen) {\n      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n    }\n\n    digit = base64.decode(aStr.charCodeAt(aIndex++));\n    if (digit === -1) {\n      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n    }\n\n    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n    digit &= VLQ_BASE_MASK;\n    result = result + (digit << shift);\n    shift += VLQ_BASE_SHIFT;\n  } while (continuation);\n\n  aOutParam.value = fromVLQSigned(result);\n  aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64-vlq.js\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n  if (0 <= number && number < intToCharMap.length) {\n    return intToCharMap[number];\n  }\n  throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n  var bigA = 65;     // 'A'\n  var bigZ = 90;     // 'Z'\n\n  var littleA = 97;  // 'a'\n  var littleZ = 122; // 'z'\n\n  var zero = 48;     // '0'\n  var nine = 57;     // '9'\n\n  var plus = 43;     // '+'\n  var slash = 47;    // '/'\n\n  var littleOffset = 26;\n  var numberOffset = 52;\n\n  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n  if (bigA <= charCode && charCode <= bigZ) {\n    return (charCode - bigA);\n  }\n\n  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n  if (littleA <= charCode && charCode <= littleZ) {\n    return (charCode - littleA + littleOffset);\n  }\n\n  // 52 - 61: 0123456789\n  if (zero <= charCode && charCode <= nine) {\n    return (charCode - zero + numberOffset);\n  }\n\n  // 62: +\n  if (charCode == plus) {\n    return 62;\n  }\n\n  // 63: /\n  if (charCode == slash) {\n    return 63;\n  }\n\n  // Invalid base64 digit.\n  return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64.js\n// module id = 3\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n  if (aName in aArgs) {\n    return aArgs[aName];\n  } else if (arguments.length === 3) {\n    return aDefaultValue;\n  } else {\n    throw new Error('\"' + aName + '\" is a required argument.');\n  }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n  var match = aUrl.match(urlRegexp);\n  if (!match) {\n    return null;\n  }\n  return {\n    scheme: match[1],\n    auth: match[2],\n    host: match[3],\n    port: match[4],\n    path: match[5]\n  };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n  var url = '';\n  if (aParsedUrl.scheme) {\n    url += aParsedUrl.scheme + ':';\n  }\n  url += '//';\n  if (aParsedUrl.auth) {\n    url += aParsedUrl.auth + '@';\n  }\n  if (aParsedUrl.host) {\n    url += aParsedUrl.host;\n  }\n  if (aParsedUrl.port) {\n    url += \":\" + aParsedUrl.port\n  }\n  if (aParsedUrl.path) {\n    url += aParsedUrl.path;\n  }\n  return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n  var path = aPath;\n  var url = urlParse(aPath);\n  if (url) {\n    if (!url.path) {\n      return aPath;\n    }\n    path = url.path;\n  }\n  var isAbsolute = exports.isAbsolute(path);\n\n  var parts = path.split(/\\/+/);\n  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n    part = parts[i];\n    if (part === '.') {\n      parts.splice(i, 1);\n    } else if (part === '..') {\n      up++;\n    } else if (up > 0) {\n      if (part === '') {\n        // The first part is blank if the path is absolute. Trying to go\n        // above the root is a no-op. Therefore we can remove all '..' parts\n        // directly after the root.\n        parts.splice(i + 1, up);\n        up = 0;\n      } else {\n        parts.splice(i, 2);\n        up--;\n      }\n    }\n  }\n  path = parts.join('/');\n\n  if (path === '') {\n    path = isAbsolute ? '/' : '.';\n  }\n\n  if (url) {\n    url.path = path;\n    return urlGenerate(url);\n  }\n  return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n *   first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n *   is updated with the result and aRoot is returned. Otherwise the result\n *   is returned.\n *   - If aPath is absolute, the result is aPath.\n *   - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n  if (aPath === \"\") {\n    aPath = \".\";\n  }\n  var aPathUrl = urlParse(aPath);\n  var aRootUrl = urlParse(aRoot);\n  if (aRootUrl) {\n    aRoot = aRootUrl.path || '/';\n  }\n\n  // `join(foo, '//www.example.org')`\n  if (aPathUrl && !aPathUrl.scheme) {\n    if (aRootUrl) {\n      aPathUrl.scheme = aRootUrl.scheme;\n    }\n    return urlGenerate(aPathUrl);\n  }\n\n  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n    return aPath;\n  }\n\n  // `join('http://', 'www.example.com')`\n  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n    aRootUrl.host = aPath;\n    return urlGenerate(aRootUrl);\n  }\n\n  var joined = aPath.charAt(0) === '/'\n    ? aPath\n    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n  if (aRootUrl) {\n    aRootUrl.path = joined;\n    return urlGenerate(aRootUrl);\n  }\n  return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n  return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n\n  aRoot = aRoot.replace(/\\/$/, '');\n\n  // It is possible for the path to be above the root. In this case, simply\n  // checking whether the root is a prefix of the path won't work. Instead, we\n  // need to remove components from the root one by one, until either we find\n  // a prefix that fits, or we run out of components to remove.\n  var level = 0;\n  while (aPath.indexOf(aRoot + '/') !== 0) {\n    var index = aRoot.lastIndexOf(\"/\");\n    if (index < 0) {\n      return aPath;\n    }\n\n    // If the only part of the root that is left is the scheme (i.e. http://,\n    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n    // have exhausted all components, so the path is not relative to the root.\n    aRoot = aRoot.slice(0, index);\n    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n      return aPath;\n    }\n\n    ++level;\n  }\n\n  // Make sure we add a \"../\" for each component we removed from the root.\n  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n  var obj = Object.create(null);\n  return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n  return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return '$' + aStr;\n  }\n\n  return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return aStr.slice(1);\n  }\n\n  return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n  if (!s) {\n    return false;\n  }\n\n  var length = s.length;\n\n  if (length < 9 /* \"__proto__\".length */) {\n    return false;\n  }\n\n  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n    return false;\n  }\n\n  for (var i = length - 10; i >= 0; i--) {\n    if (s.charCodeAt(i) !== 36 /* '$' */) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n  var cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0 || onlyCompareOriginal) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0 || onlyCompareGenerated) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n  if (aStr1 === aStr2) {\n    return 0;\n  }\n\n  if (aStr1 === null) {\n    return 1; // aStr2 !== null\n  }\n\n  if (aStr2 === null) {\n    return -1; // aStr1 !== null\n  }\n\n  if (aStr1 > aStr2) {\n    return 1;\n  }\n\n  return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n  return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n  sourceURL = sourceURL || '';\n\n  if (sourceRoot) {\n    // This follows what Chrome does.\n    if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n      sourceRoot += '/';\n    }\n    // The spec says:\n    //   Line 4: An optional source root, useful for relocating source\n    //   files on a server or removing repeated values in the\n    //   “sources” entry.  This value is prepended to the individual\n    //   entries in the “source” field.\n    sourceURL = sourceRoot + sourceURL;\n  }\n\n  // Historically, SourceMapConsumer did not take the sourceMapURL as\n  // a parameter.  This mode is still somewhat supported, which is why\n  // this code block is conditional.  However, it's preferable to pass\n  // the source map URL to SourceMapConsumer, so that this function\n  // can implement the source URL resolution algorithm as outlined in\n  // the spec.  This block is basically the equivalent of:\n  //    new URL(sourceURL, sourceMapURL).toString()\n  // ... except it avoids using URL, which wasn't available in the\n  // older releases of node still supported by this library.\n  //\n  // The spec says:\n  //   If the sources are not absolute URLs after prepending of the\n  //   “sourceRoot”, the sources are resolved relative to the\n  //   SourceMap (like resolving script src in a html document).\n  if (sourceMapURL) {\n    var parsed = urlParse(sourceMapURL);\n    if (!parsed) {\n      throw new Error(\"sourceMapURL could not be parsed\");\n    }\n    if (parsed.path) {\n      // Strip the last path component, but keep the \"/\".\n      var index = parsed.path.lastIndexOf('/');\n      if (index >= 0) {\n        parsed.path = parsed.path.substring(0, index + 1);\n      }\n    }\n    sourceURL = join(urlGenerate(parsed), sourceURL);\n  }\n\n  return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/util.js\n// module id = 4\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n  this._array = [];\n  this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n  var set = new ArraySet();\n  for (var i = 0, len = aArray.length; i < len; i++) {\n    set.add(aArray[i], aAllowDuplicates);\n  }\n  return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n  var idx = this._array.length;\n  if (!isDuplicate || aAllowDuplicates) {\n    this._array.push(aStr);\n  }\n  if (!isDuplicate) {\n    if (hasNativeMap) {\n      this._set.set(aStr, idx);\n    } else {\n      this._set[sStr] = idx;\n    }\n  }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n  if (hasNativeMap) {\n    return this._set.has(aStr);\n  } else {\n    var sStr = util.toSetString(aStr);\n    return has.call(this._set, sStr);\n  }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n  if (hasNativeMap) {\n    var idx = this._set.get(aStr);\n    if (idx >= 0) {\n        return idx;\n    }\n  } else {\n    var sStr = util.toSetString(aStr);\n    if (has.call(this._set, sStr)) {\n      return this._set[sStr];\n    }\n  }\n\n  throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n  if (aIdx >= 0 && aIdx < this._array.length) {\n    return this._array[aIdx];\n  }\n  throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n  return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/array-set.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n  // Optimized for most common case\n  var lineA = mappingA.generatedLine;\n  var lineB = mappingB.generatedLine;\n  var columnA = mappingA.generatedColumn;\n  var columnB = mappingB.generatedColumn;\n  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n  this._array = [];\n  this._sorted = true;\n  // Serves as infimum\n  this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n  function MappingList_forEach(aCallback, aThisArg) {\n    this._array.forEach(aCallback, aThisArg);\n  };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n  if (generatedPositionAfter(this._last, aMapping)) {\n    this._last = aMapping;\n    this._array.push(aMapping);\n  } else {\n    this._sorted = false;\n    this._array.push(aMapping);\n  }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n  if (!this._sorted) {\n    this._array.sort(util.compareByGeneratedPositionsInflated);\n    this._sorted = true;\n  }\n  return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/mapping-list.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = util.parseSourceMapInput(aSourceMap);\n  }\n\n  return sourceMap.sections != null\n    ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n    : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n  return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n//     {\n//       generatedLine: The line number in the generated code,\n//       generatedColumn: The column number in the generated code,\n//       source: The path to the original source file that generated this\n//               chunk of code,\n//       originalLine: The line number in the original source that\n//                     corresponds to this chunk of generated code,\n//       originalColumn: The column number in the original source that\n//                       corresponds to this chunk of generated code,\n//       name: The name of the original symbol which generated this chunk of\n//             code.\n//     }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n  configurable: true,\n  enumerable: true,\n  get: function () {\n    if (!this.__generatedMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__generatedMappings;\n  }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n  configurable: true,\n  enumerable: true,\n  get: function () {\n    if (!this.__originalMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__originalMappings;\n  }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n    var c = aStr.charAt(index);\n    return c === \";\" || c === \",\";\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    throw new Error(\"Subclasses must implement _parseMappings\");\n  };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n *        The function that is called with each mapping.\n * @param Object aContext\n *        Optional. If specified, this object will be the value of `this` every\n *        time that `aCallback` is called.\n * @param aOrder\n *        Either `SourceMapConsumer.GENERATED_ORDER` or\n *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n *        iterate over the mappings sorted by the generated file's line/column\n *        order or the original's source/line/column order, respectively. Defaults to\n *        `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n    var context = aContext || null;\n    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n    var mappings;\n    switch (order) {\n    case SourceMapConsumer.GENERATED_ORDER:\n      mappings = this._generatedMappings;\n      break;\n    case SourceMapConsumer.ORIGINAL_ORDER:\n      mappings = this._originalMappings;\n      break;\n    default:\n      throw new Error(\"Unknown order of iteration.\");\n    }\n\n    var sourceRoot = this.sourceRoot;\n    mappings.map(function (mapping) {\n      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n      source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n      return {\n        source: source,\n        generatedLine: mapping.generatedLine,\n        generatedColumn: mapping.generatedColumn,\n        originalLine: mapping.originalLine,\n        originalColumn: mapping.originalColumn,\n        name: mapping.name === null ? null : this._names.at(mapping.name)\n      };\n    }, this).forEach(aCallback, context);\n  };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.  The line number is 1-based.\n *   - column: Optional. the column number in the original source.\n *    The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n *   - line: The line number in the generated source, or null.  The\n *    line number is 1-based.\n *   - column: The column number in the generated source, or null.\n *    The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n    var line = util.getArg(aArgs, 'line');\n\n    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n    // returns the index of the closest mapping less than the needle. By\n    // setting needle.originalColumn to 0, we thus find the last mapping for\n    // the given line, provided such a mapping exists.\n    var needle = {\n      source: util.getArg(aArgs, 'source'),\n      originalLine: line,\n      originalColumn: util.getArg(aArgs, 'column', 0)\n    };\n\n    needle.source = this._findSourceIndex(needle.source);\n    if (needle.source < 0) {\n      return [];\n    }\n\n    var mappings = [];\n\n    var index = this._findMapping(needle,\n                                  this._originalMappings,\n                                  \"originalLine\",\n                                  \"originalColumn\",\n                                  util.compareByOriginalPositions,\n                                  binarySearch.LEAST_UPPER_BOUND);\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (aArgs.column === undefined) {\n        var originalLine = mapping.originalLine;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we found. Since\n        // mappings are sorted, this is guaranteed to find all mappings for\n        // the line we found.\n        while (mapping && mapping.originalLine === originalLine) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      } else {\n        var originalColumn = mapping.originalColumn;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we were searching for.\n        // Since mappings are sorted, this is guaranteed to find all mappings for\n        // the line we are searching for.\n        while (mapping &&\n               mapping.originalLine === line &&\n               mapping.originalColumn == originalColumn) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      }\n    }\n\n    return mappings;\n  };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - sources: An array of URLs to the original source files.\n *   - names: An array of identifiers which can be referrenced by individual mappings.\n *   - sourceRoot: Optional. The URL root from which all sources are relative.\n *   - sourcesContent: Optional. An array of contents of the original source files.\n *   - mappings: A string of base64 VLQs which contain the actual mappings.\n *   - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n *     {\n *       version : 3,\n *       file: \"out.js\",\n *       sourceRoot : \"\",\n *       sources: [\"foo.js\", \"bar.js\"],\n *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n *       mappings: \"AA,AB;;ABCDE;\"\n *     }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found.  This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = util.parseSourceMapInput(aSourceMap);\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sources = util.getArg(sourceMap, 'sources');\n  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n  // requires the array) to play nice here.\n  var names = util.getArg(sourceMap, 'names', []);\n  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n  var mappings = util.getArg(sourceMap, 'mappings');\n  var file = util.getArg(sourceMap, 'file', null);\n\n  // Once again, Sass deviates from the spec and supplies the version as a\n  // string rather than a number, so we use loose equality checking here.\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  if (sourceRoot) {\n    sourceRoot = util.normalize(sourceRoot);\n  }\n\n  sources = sources\n    .map(String)\n    // Some source maps produce relative source paths like \"./foo.js\" instead of\n    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n    // See bugzil.la/1090768.\n    .map(util.normalize)\n    // Always ensure that absolute sources are internally stored relative to\n    // the source root, if the source root is absolute. Not doing this would\n    // be particularly problematic when the source root is a prefix of the\n    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n    .map(function (source) {\n      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n        ? util.relative(sourceRoot, source)\n        : source;\n    });\n\n  // Pass `true` below to allow duplicate names and sources. While source maps\n  // are intended to be compressed and deduplicated, the TypeScript compiler\n  // sometimes generates source maps with duplicates in them. See Github issue\n  // #72 and bugzil.la/889492.\n  this._names = ArraySet.fromArray(names.map(String), true);\n  this._sources = ArraySet.fromArray(sources, true);\n\n  this._absoluteSources = this._sources.toArray().map(function (s) {\n    return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n  });\n\n  this.sourceRoot = sourceRoot;\n  this.sourcesContent = sourcesContent;\n  this._mappings = mappings;\n  this._sourceMapURL = aSourceMapURL;\n  this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source.  Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n  var relativeSource = aSource;\n  if (this.sourceRoot != null) {\n    relativeSource = util.relative(this.sourceRoot, relativeSource);\n  }\n\n  if (this._sources.has(relativeSource)) {\n    return this._sources.indexOf(relativeSource);\n  }\n\n  // Maybe aSource is an absolute URL as returned by |sources|.  In\n  // this case we can't simply undo the transform.\n  var i;\n  for (i = 0; i < this._absoluteSources.length; ++i) {\n    if (this._absoluteSources[i] == aSource) {\n      return i;\n    }\n  }\n\n  return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n *        The source map that will be consumed.\n * @param String aSourceMapURL\n *        The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n  function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n    smc.sourceRoot = aSourceMap._sourceRoot;\n    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n                                                            smc.sourceRoot);\n    smc.file = aSourceMap._file;\n    smc._sourceMapURL = aSourceMapURL;\n    smc._absoluteSources = smc._sources.toArray().map(function (s) {\n      return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n    });\n\n    // Because we are modifying the entries (by converting string sources and\n    // names to indices into the sources and names ArraySets), we have to make\n    // a copy of the entry or else bad things happen. Shared mutable state\n    // strikes again! See github issue #191.\n\n    var generatedMappings = aSourceMap._mappings.toArray().slice();\n    var destGeneratedMappings = smc.__generatedMappings = [];\n    var destOriginalMappings = smc.__originalMappings = [];\n\n    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n      var srcMapping = generatedMappings[i];\n      var destMapping = new Mapping;\n      destMapping.generatedLine = srcMapping.generatedLine;\n      destMapping.generatedColumn = srcMapping.generatedColumn;\n\n      if (srcMapping.source) {\n        destMapping.source = sources.indexOf(srcMapping.source);\n        destMapping.originalLine = srcMapping.originalLine;\n        destMapping.originalColumn = srcMapping.originalColumn;\n\n        if (srcMapping.name) {\n          destMapping.name = names.indexOf(srcMapping.name);\n        }\n\n        destOriginalMappings.push(destMapping);\n      }\n\n      destGeneratedMappings.push(destMapping);\n    }\n\n    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n    return smc;\n  };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    return this._absoluteSources.slice();\n  }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n  this.generatedLine = 0;\n  this.generatedColumn = 0;\n  this.source = null;\n  this.originalLine = null;\n  this.originalColumn = null;\n  this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    var generatedLine = 1;\n    var previousGeneratedColumn = 0;\n    var previousOriginalLine = 0;\n    var previousOriginalColumn = 0;\n    var previousSource = 0;\n    var previousName = 0;\n    var length = aStr.length;\n    var index = 0;\n    var cachedSegments = {};\n    var temp = {};\n    var originalMappings = [];\n    var generatedMappings = [];\n    var mapping, str, segment, end, value;\n\n    while (index < length) {\n      if (aStr.charAt(index) === ';') {\n        generatedLine++;\n        index++;\n        previousGeneratedColumn = 0;\n      }\n      else if (aStr.charAt(index) === ',') {\n        index++;\n      }\n      else {\n        mapping = new Mapping();\n        mapping.generatedLine = generatedLine;\n\n        // Because each offset is encoded relative to the previous one,\n        // many segments often have the same encoding. We can exploit this\n        // fact by caching the parsed variable length fields of each segment,\n        // allowing us to avoid a second parse if we encounter the same\n        // segment again.\n        for (end = index; end < length; end++) {\n          if (this._charIsMappingSeparator(aStr, end)) {\n            break;\n          }\n        }\n        str = aStr.slice(index, end);\n\n        segment = cachedSegments[str];\n        if (segment) {\n          index += str.length;\n        } else {\n          segment = [];\n          while (index < end) {\n            base64VLQ.decode(aStr, index, temp);\n            value = temp.value;\n            index = temp.rest;\n            segment.push(value);\n          }\n\n          if (segment.length === 2) {\n            throw new Error('Found a source, but no line and column');\n          }\n\n          if (segment.length === 3) {\n            throw new Error('Found a source and line, but no column');\n          }\n\n          cachedSegments[str] = segment;\n        }\n\n        // Generated column.\n        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n        previousGeneratedColumn = mapping.generatedColumn;\n\n        if (segment.length > 1) {\n          // Original source.\n          mapping.source = previousSource + segment[1];\n          previousSource += segment[1];\n\n          // Original line.\n          mapping.originalLine = previousOriginalLine + segment[2];\n          previousOriginalLine = mapping.originalLine;\n          // Lines are stored 0-based\n          mapping.originalLine += 1;\n\n          // Original column.\n          mapping.originalColumn = previousOriginalColumn + segment[3];\n          previousOriginalColumn = mapping.originalColumn;\n\n          if (segment.length > 4) {\n            // Original name.\n            mapping.name = previousName + segment[4];\n            previousName += segment[4];\n          }\n        }\n\n        generatedMappings.push(mapping);\n        if (typeof mapping.originalLine === 'number') {\n          originalMappings.push(mapping);\n        }\n      }\n    }\n\n    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n    this.__generatedMappings = generatedMappings;\n\n    quickSort(originalMappings, util.compareByOriginalPositions);\n    this.__originalMappings = originalMappings;\n  };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n                                         aColumnName, aComparator, aBias) {\n    // To return the position we are searching for, we must first find the\n    // mapping for the given position and then return the opposite position it\n    // points to. Because the mappings are sorted, we can use binary search to\n    // find the best mapping.\n\n    if (aNeedle[aLineName] <= 0) {\n      throw new TypeError('Line must be greater than or equal to 1, got '\n                          + aNeedle[aLineName]);\n    }\n    if (aNeedle[aColumnName] < 0) {\n      throw new TypeError('Column must be greater than or equal to 0, got '\n                          + aNeedle[aColumnName]);\n    }\n\n    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n  };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n  function SourceMapConsumer_computeColumnSpans() {\n    for (var index = 0; index < this._generatedMappings.length; ++index) {\n      var mapping = this._generatedMappings[index];\n\n      // Mappings do not contain a field for the last generated columnt. We\n      // can come up with an optimistic estimate, however, by assuming that\n      // mappings are contiguous (i.e. given two consecutive mappings, the\n      // first mapping ends where the second one starts).\n      if (index + 1 < this._generatedMappings.length) {\n        var nextMapping = this._generatedMappings[index + 1];\n\n        if (mapping.generatedLine === nextMapping.generatedLine) {\n          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n          continue;\n        }\n      }\n\n      // The last mapping for each line spans the entire line.\n      mapping.lastGeneratedColumn = Infinity;\n    }\n  };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.  The line number\n *     is 1-based.\n *   - column: The column number in the generated source.  The column\n *     number is 0-based.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.  The\n *     line number is 1-based.\n *   - column: The column number in the original source, or null.  The\n *     column number is 0-based.\n *   - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n  function SourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._generatedMappings,\n      \"generatedLine\",\n      \"generatedColumn\",\n      util.compareByGeneratedPositionsDeflated,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._generatedMappings[index];\n\n      if (mapping.generatedLine === needle.generatedLine) {\n        var source = util.getArg(mapping, 'source', null);\n        if (source !== null) {\n          source = this._sources.at(source);\n          source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n        }\n        var name = util.getArg(mapping, 'name', null);\n        if (name !== null) {\n          name = this._names.at(name);\n        }\n        return {\n          source: source,\n          line: util.getArg(mapping, 'originalLine', null),\n          column: util.getArg(mapping, 'originalColumn', null),\n          name: name\n        };\n      }\n    }\n\n    return {\n      source: null,\n      line: null,\n      column: null,\n      name: null\n    };\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n    if (!this.sourcesContent) {\n      return false;\n    }\n    return this.sourcesContent.length >= this._sources.size() &&\n      !this.sourcesContent.some(function (sc) { return sc == null; });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    if (!this.sourcesContent) {\n      return null;\n    }\n\n    var index = this._findSourceIndex(aSource);\n    if (index >= 0) {\n      return this.sourcesContent[index];\n    }\n\n    var relativeSource = aSource;\n    if (this.sourceRoot != null) {\n      relativeSource = util.relative(this.sourceRoot, relativeSource);\n    }\n\n    var url;\n    if (this.sourceRoot != null\n        && (url = util.urlParse(this.sourceRoot))) {\n      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n      // many users. We can help them out when they expect file:// URIs to\n      // behave like it would if they were running a local HTTP server. See\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n      var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n      if (url.scheme == \"file\"\n          && this._sources.has(fileUriAbsPath)) {\n        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n      }\n\n      if ((!url.path || url.path == \"/\")\n          && this._sources.has(\"/\" + relativeSource)) {\n        return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n      }\n    }\n\n    // This function is used recursively from\n    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n    // don't want to throw if we can't find the source - we just want to\n    // return null, so we provide a flag to exit gracefully.\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.  The line number\n *     is 1-based.\n *   - column: The column number in the original source.  The column\n *     number is 0-based.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.  The\n *     line number is 1-based.\n *   - column: The column number in the generated source, or null.\n *     The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n  function SourceMapConsumer_generatedPositionFor(aArgs) {\n    var source = util.getArg(aArgs, 'source');\n    source = this._findSourceIndex(source);\n    if (source < 0) {\n      return {\n        line: null,\n        column: null,\n        lastColumn: null\n      };\n    }\n\n    var needle = {\n      source: source,\n      originalLine: util.getArg(aArgs, 'line'),\n      originalColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._originalMappings,\n      \"originalLine\",\n      \"originalColumn\",\n      util.compareByOriginalPositions,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (mapping.source === needle.source) {\n        return {\n          line: util.getArg(mapping, 'generatedLine', null),\n          column: util.getArg(mapping, 'generatedColumn', null),\n          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n        };\n      }\n    }\n\n    return {\n      line: null,\n      column: null,\n      lastColumn: null\n    };\n  };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - file: Optional. The generated file this source map is associated with.\n *   - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n *   - offset: The offset into the original specified at which this section\n *       begins to apply, defined as an object with a \"line\" and \"column\"\n *       field.\n *   - map: A source map definition. This source map could also be indexed,\n *       but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n *  {\n *    version : 3,\n *    file: \"app.js\",\n *    sections: [{\n *      offset: {line:100, column:10},\n *      map: {\n *        version : 3,\n *        file: \"section.js\",\n *        sources: [\"foo.js\", \"bar.js\"],\n *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n *        mappings: \"AAAA,E;;ABCDE;\"\n *      }\n *    }],\n *  }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found.  This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = util.parseSourceMapInput(aSourceMap);\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sections = util.getArg(sourceMap, 'sections');\n\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n\n  var lastOffset = {\n    line: -1,\n    column: 0\n  };\n  this._sections = sections.map(function (s) {\n    if (s.url) {\n      // The url field will require support for asynchronicity.\n      // See https://github.com/mozilla/source-map/issues/16\n      throw new Error('Support for url field in sections not implemented.');\n    }\n    var offset = util.getArg(s, 'offset');\n    var offsetLine = util.getArg(offset, 'line');\n    var offsetColumn = util.getArg(offset, 'column');\n\n    if (offsetLine < lastOffset.line ||\n        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n      throw new Error('Section offsets must be ordered and non-overlapping.');\n    }\n    lastOffset = offset;\n\n    return {\n      generatedOffset: {\n        // The offset fields are 0-based, but we use 1-based indices when\n        // encoding/decoding from VLQ.\n        generatedLine: offsetLine + 1,\n        generatedColumn: offsetColumn + 1\n      },\n      consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n    }\n  });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    var sources = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n        sources.push(this._sections[i].consumer.sources[j]);\n      }\n    }\n    return sources;\n  }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.  The line number\n *     is 1-based.\n *   - column: The column number in the generated source.  The column\n *     number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.  The\n *     line number is 1-based.\n *   - column: The column number in the original source, or null.  The\n *     column number is 0-based.\n *   - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    // Find the section containing the generated position we're trying to map\n    // to an original position.\n    var sectionIndex = binarySearch.search(needle, this._sections,\n      function(needle, section) {\n        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n        if (cmp) {\n          return cmp;\n        }\n\n        return (needle.generatedColumn -\n                section.generatedOffset.generatedColumn);\n      });\n    var section = this._sections[sectionIndex];\n\n    if (!section) {\n      return {\n        source: null,\n        line: null,\n        column: null,\n        name: null\n      };\n    }\n\n    return section.consumer.originalPositionFor({\n      line: needle.generatedLine -\n        (section.generatedOffset.generatedLine - 1),\n      column: needle.generatedColumn -\n        (section.generatedOffset.generatedLine === needle.generatedLine\n         ? section.generatedOffset.generatedColumn - 1\n         : 0),\n      bias: aArgs.bias\n    });\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n    return this._sections.every(function (s) {\n      return s.consumer.hasContentsOfAllSources();\n    });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      var content = section.consumer.sourceContentFor(aSource, true);\n      if (content) {\n        return content;\n      }\n    }\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.  The line number\n *     is 1-based.\n *   - column: The column number in the original source.  The column\n *     number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.  The\n *     line number is 1-based. \n *   - column: The column number in the generated source, or null.\n *     The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      // Only consider this section if the requested source is in the list of\n      // sources of the consumer.\n      if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n        continue;\n      }\n      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n      if (generatedPosition) {\n        var ret = {\n          line: generatedPosition.line +\n            (section.generatedOffset.generatedLine - 1),\n          column: generatedPosition.column +\n            (section.generatedOffset.generatedLine === generatedPosition.line\n             ? section.generatedOffset.generatedColumn - 1\n             : 0)\n        };\n        return ret;\n      }\n    }\n\n    return {\n      line: null,\n      column: null\n    };\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    this.__generatedMappings = [];\n    this.__originalMappings = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n      var sectionMappings = section.consumer._generatedMappings;\n      for (var j = 0; j < sectionMappings.length; j++) {\n        var mapping = sectionMappings[j];\n\n        var source = section.consumer._sources.at(mapping.source);\n        source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n        this._sources.add(source);\n        source = this._sources.indexOf(source);\n\n        var name = null;\n        if (mapping.name) {\n          name = section.consumer._names.at(mapping.name);\n          this._names.add(name);\n          name = this._names.indexOf(name);\n        }\n\n        // The mappings coming from the consumer for the section have\n        // generated positions relative to the start of the section, so we\n        // need to offset them to be relative to the start of the concatenated\n        // generated file.\n        var adjustedMapping = {\n          source: source,\n          generatedLine: mapping.generatedLine +\n            (section.generatedOffset.generatedLine - 1),\n          generatedColumn: mapping.generatedColumn +\n            (section.generatedOffset.generatedLine === mapping.generatedLine\n            ? section.generatedOffset.generatedColumn - 1\n            : 0),\n          originalLine: mapping.originalLine,\n          originalColumn: mapping.originalColumn,\n          name: name\n        };\n\n        this.__generatedMappings.push(adjustedMapping);\n        if (typeof adjustedMapping.originalLine === 'number') {\n          this.__originalMappings.push(adjustedMapping);\n        }\n      }\n    }\n\n    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n  };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-consumer.js\n// module id = 7\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n  // This function terminates when one of the following is true:\n  //\n  //   1. We find the exact element we are looking for.\n  //\n  //   2. We did not find the exact element, but we can return the index of\n  //      the next-closest element.\n  //\n  //   3. We did not find the exact element, and there is no next-closest\n  //      element than the one we are searching for, so we return -1.\n  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n  if (cmp === 0) {\n    // Found the element we are looking for.\n    return mid;\n  }\n  else if (cmp > 0) {\n    // Our needle is greater than aHaystack[mid].\n    if (aHigh - mid > 1) {\n      // The element is in the upper half.\n      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // The exact needle element was not found in this haystack. Determine if\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return aHigh < aHaystack.length ? aHigh : -1;\n    } else {\n      return mid;\n    }\n  }\n  else {\n    // Our needle is less than aHaystack[mid].\n    if (mid - aLow > 1) {\n      // The element is in the lower half.\n      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return mid;\n    } else {\n      return aLow < 0 ? -1 : aLow;\n    }\n  }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n *     array and returns -1, 0, or 1 depending on whether the needle is less\n *     than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n  if (aHaystack.length === 0) {\n    return -1;\n  }\n\n  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n  if (index < 0) {\n    return -1;\n  }\n\n  // We have found either the exact element, or the next-closest element than\n  // the one we are searching for. However, there may be more than one such\n  // element. Make sure we always return the smallest of these.\n  while (index - 1 >= 0) {\n    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n      break;\n    }\n    --index;\n  }\n\n  return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/binary-search.js\n// module id = 8\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n *        The array.\n * @param {Number} x\n *        The index of the first item.\n * @param {Number} y\n *        The index of the second item.\n */\nfunction swap(ary, x, y) {\n  var temp = ary[x];\n  ary[x] = ary[y];\n  ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n *        The lower bound on the range.\n * @param {Number} high\n *        The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n  return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n * @param {Number} p\n *        Start index of the array\n * @param {Number} r\n *        End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n  // If our lower bound is less than our upper bound, we (1) partition the\n  // array into two pieces and (2) recurse on each half. If it is not, this is\n  // the empty array and our base case.\n\n  if (p < r) {\n    // (1) Partitioning.\n    //\n    // The partitioning chooses a pivot between `p` and `r` and moves all\n    // elements that are less than or equal to the pivot to the before it, and\n    // all the elements that are greater than it after it. The effect is that\n    // once partition is done, the pivot is in the exact place it will be when\n    // the array is put in sorted order, and it will not need to be moved\n    // again. This runs in O(n) time.\n\n    // Always choose a random pivot so that an input array which is reverse\n    // sorted does not cause O(n^2) running time.\n    var pivotIndex = randomIntInRange(p, r);\n    var i = p - 1;\n\n    swap(ary, pivotIndex, r);\n    var pivot = ary[r];\n\n    // Immediately after `j` is incremented in this loop, the following hold\n    // true:\n    //\n    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n    //\n    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n    for (var j = p; j < r; j++) {\n      if (comparator(ary[j], pivot) <= 0) {\n        i += 1;\n        swap(ary, i, j);\n      }\n    }\n\n    swap(ary, i + 1, j);\n    var q = i + 1;\n\n    // (2) Recurse on each half.\n\n    doQuickSort(ary, comparator, p, q - 1);\n    doQuickSort(ary, comparator, q + 1, r);\n  }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n  doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/quick-sort.js\n// module id = 9\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n    // The SourceNode we want to fill with the generated code\n    // and the SourceMap\n    var node = new SourceNode();\n\n    // All even indices of this array are one line of the generated code,\n    // while all odd indices are the newlines between two adjacent lines\n    // (since `REGEX_NEWLINE` captures its match).\n    // Processed fragments are accessed by calling `shiftNextLine`.\n    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n    var remainingLinesIndex = 0;\n    var shiftNextLine = function() {\n      var lineContents = getNextLine();\n      // The last line of a file might not have a newline.\n      var newLine = getNextLine() || \"\";\n      return lineContents + newLine;\n\n      function getNextLine() {\n        return remainingLinesIndex < remainingLines.length ?\n            remainingLines[remainingLinesIndex++] : undefined;\n      }\n    };\n\n    // We need to remember the position of \"remainingLines\"\n    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n    // The generate SourceNodes we need a code range.\n    // To extract it current and last mapping is used.\n    // Here we store the last mapping.\n    var lastMapping = null;\n\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      if (lastMapping !== null) {\n        // We add the code from \"lastMapping\" to \"mapping\":\n        // First check if there is a new line in between.\n        if (lastGeneratedLine < mapping.generatedLine) {\n          // Associate first line with \"lastMapping\"\n          addMappingWithCode(lastMapping, shiftNextLine());\n          lastGeneratedLine++;\n          lastGeneratedColumn = 0;\n          // The remaining code is added without mapping\n        } else {\n          // There is no new line in between.\n          // Associate the code between \"lastGeneratedColumn\" and\n          // \"mapping.generatedColumn\" with \"lastMapping\"\n          var nextLine = remainingLines[remainingLinesIndex] || '';\n          var code = nextLine.substr(0, mapping.generatedColumn -\n                                        lastGeneratedColumn);\n          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n                                              lastGeneratedColumn);\n          lastGeneratedColumn = mapping.generatedColumn;\n          addMappingWithCode(lastMapping, code);\n          // No more remaining code, continue\n          lastMapping = mapping;\n          return;\n        }\n      }\n      // We add the generated code until the first mapping\n      // to the SourceNode without any mapping.\n      // Each line is added as separate string.\n      while (lastGeneratedLine < mapping.generatedLine) {\n        node.add(shiftNextLine());\n        lastGeneratedLine++;\n      }\n      if (lastGeneratedColumn < mapping.generatedColumn) {\n        var nextLine = remainingLines[remainingLinesIndex] || '';\n        node.add(nextLine.substr(0, mapping.generatedColumn));\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n      }\n      lastMapping = mapping;\n    }, this);\n    // We have processed all mappings.\n    if (remainingLinesIndex < remainingLines.length) {\n      if (lastMapping) {\n        // Associate the remaining code in the current line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n      }\n      // and add the remaining lines without any mapping\n      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n    }\n\n    // Copy sourcesContent into SourceNode\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aRelativePath != null) {\n          sourceFile = util.join(aRelativePath, sourceFile);\n        }\n        node.setSourceContent(sourceFile, content);\n      }\n    });\n\n    return node;\n\n    function addMappingWithCode(mapping, code) {\n      if (mapping === null || mapping.source === undefined) {\n        node.add(code);\n      } else {\n        var source = aRelativePath\n          ? util.join(aRelativePath, mapping.source)\n          : mapping.source;\n        node.add(new SourceNode(mapping.originalLine,\n                                mapping.originalColumn,\n                                source,\n                                code,\n                                mapping.name));\n      }\n    }\n  };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length-1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    }\n    else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n                     line: this.line,\n                     column: this.column,\n                     name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len-1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  }\n  else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  }\n  else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n  };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n  function SourceNode_walkSourceContents(aFn) {\n    for (var i = 0, len = this.children.length; i < len; i++) {\n      if (this.children[i][isSourceNode]) {\n        this.children[i].walkSourceContents(aFn);\n      }\n    }\n\n    var sources = Object.keys(this.sourceContents);\n    for (var i = 0, len = sources.length; i < len; i++) {\n      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n    }\n  };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null\n        && original.line !== null\n        && original.column !== null) {\n      if(lastOriginalSource !== original.source\n         || lastOriginalLine !== original.line\n         || lastOriginalColumn !== original.column\n         || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-node.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/brace-expansion/README.md-85-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/brace-expansion/README.md:86:For compatibility reasons, the string `${` is not eligible for brace expansion.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/brace-expansion/README.md-87-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/ignore.js-48-    if (regex.test(path)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/ignore.js:49:      log(`ignoring ${path}, matched pattern /${ignoreStrings[i]}/`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/ignore.js-50-      return true
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js-181-  // Try to resolve package with conventional name
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js:182:  let resolver = tryRequire(`eslint-import-resolver-${name}`, sourceFile) ||
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js-183-    tryRequire(name, sourceFile) ||
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js-186-  if (!resolver) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js:187:    const err = new Error(`unable to load resolver "${name}".`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js-188-    err.name = ERROR_NAME
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js-191-  if (!isResolverValid(resolver)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js:192:    const err = new Error(`${name} with invalid interface loaded as resolver`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js-193-    err.name = ERROR_NAME
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js-232-      context.report({
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js:233:        message: `Resolve error: ${errMessage}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-module-utils/resolve.js-234-        loc: { line: 1, column: 0 },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/type.js-215-        return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/type.js:216:            displayName: `[${type.symbol ? type.symbol.name : type.escapedName.replace(/^__@|@\d+$/g, '')}]`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/type.js-217-            symbolName: type.escapedName,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/util.js-1072-    const text = sourceFile.text.slice(startPos, nodeStart);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/util.js:1073:    const newSourceFile = ts.createSourceFile('jsdoc.ts', `${text}var a;`, sourceFile.languageVersion);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/util.js-1074-    const result = getJsDoc(newSourceFile.statements[0], newSourceFile);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/util.js-1370-    return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/util.js:1371:        displayName: `[Symbol.${node.name.text}]`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/util.js-1372-        symbolName: ('__@' + node.name.text),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/usage.js-610-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/usage.js:611:        return next(node, this._scope.createOrReuseNamespaceScope(`"${node.name.text}"`, false, true, namespaceHasExportStatement(node)));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/tsutils/util/usage.js-612-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/js-yaml/dist/js-yaml.min.js:1:!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).jsyaml=e()}}(function(){return function o(a,s,c){function u(t,e){if(!s[t]){if(!a[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);var i=new Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}var r=s[t]={exports:{}};a[t][0].call(r.exports,function(e){return u(a[t][1][e]||e)},r,r.exports,o,a,s,c)}return s[t].exports}for(var l="function"==typeof require&&require,e=0;e<c.length;e++)u(c[e]);return u}({1:[function(e,t,n){"use strict";var i=e("./js-yaml/loader"),r=e("./js-yaml/dumper");function o(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}t.exports.Type=e("./js-yaml/type"),t.exports.Schema=e("./js-yaml/schema"),t.exports.FAILSAFE_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.JSON_SCHEMA=e("./js-yaml/schema/json"),t.exports.CORE_SCHEMA=e("./js-yaml/schema/core"),t.exports.DEFAULT_SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_FULL_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.load=i.load,t.exports.loadAll=i.loadAll,t.exports.safeLoad=i.safeLoad,t.exports.safeLoadAll=i.safeLoadAll,t.exports.dump=r.dump,t.exports.safeDump=r.safeDump,t.exports.YAMLException=e("./js-yaml/exception"),t.exports.MINIMAL_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.scan=o("scan"),t.exports.parse=o("parse"),t.exports.compose=o("compose"),t.exports.addConstructor=o("addConstructor")},{"./js-yaml/dumper":3,"./js-yaml/exception":4,"./js-yaml/loader":5,"./js-yaml/schema":7,"./js-yaml/schema/core":8,"./js-yaml/schema/default_full":9,"./js-yaml/schema/default_safe":10,"./js-yaml/schema/failsafe":11,"./js-yaml/schema/json":12,"./js-yaml/type":13}],2:[function(e,t,n){"use strict";function i(e){return null==e}t.exports.isNothing=i,t.exports.isObject=function(e){return"object"==typeof e&&null!==e},t.exports.toArray=function(e){return Array.isArray(e)?e:i(e)?[]:[e]},t.exports.repeat=function(e,t){var n,i="";for(n=0;n<t;n+=1)i+=e;return i},t.exports.isNegativeZero=function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},t.exports.extend=function(e,t){var n,i,r,o;if(t)for(n=0,i=(o=Object.keys(t)).length;n<i;n+=1)e[r=o[n]]=t[r];return e}},{}],3:[function(e,t,n){"use strict";var c=e("./common"),d=e("./exception"),i=e("./schema/default_full"),r=e("./schema/default_safe"),p=Object.prototype.toString,u=Object.prototype.hasOwnProperty,o=9,h=10,a=32,f=33,m=34,g=35,y=37,x=38,v=39,A=42,b=44,w=45,C=58,k=62,j=63,S=64,I=91,O=93,E=96,F=123,_=124,N=125,s={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},l=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function M(e){var t,n,i;if(t=e.toString(16).toUpperCase(),e<=255)n="x",i=2;else if(e<=65535)n="u",i=4;else{if(!(e<=4294967295))throw new d("code point within a string may not be greater than 0xFFFFFFFF");n="U",i=8}return"\\"+n+c.repeat("0",i-t.length)+t}function T(e){this.schema=e.schema||i,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=c.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var n,i,r,o,a,s,c;if(null===t)return{};for(n={},r=0,o=(i=Object.keys(t)).length;r<o;r+=1)a=i[r],s=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),(c=e.compiledTypeMap.fallback[a])&&u.call(c.styleAliases,s)&&(s=c.styleAliases[s]),n[a]=s;return n}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function L(e,t){for(var n,i=c.repeat(" ",t),r=0,o=-1,a="",s=e.length;r<s;)r=-1===(o=e.indexOf("\n",r))?(n=e.slice(r),s):(n=e.slice(r,o+1),o+1),n.length&&"\n"!==n&&(a+=i),a+=n;return a}function D(e,t){return"\n"+c.repeat(" ",e.indent*t)}function U(e){return e===a||e===o}function q(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function Y(e){return q(e)&&65279!==e&&e!==b&&e!==I&&e!==O&&e!==F&&e!==N&&e!==C&&e!==g}function R(e){return/^\n* /.test(e)}var B=1,P=2,W=3,K=4,$=5;function H(e,t,n,i,r){var o,a,s=!1,c=!1,u=-1!==i,l=-1,p=function(e){return q(e)&&65279!==e&&!U(e)&&e!==w&&e!==j&&e!==C&&e!==b&&e!==I&&e!==O&&e!==F&&e!==N&&e!==g&&e!==x&&e!==A&&e!==f&&e!==_&&e!==k&&e!==v&&e!==m&&e!==y&&e!==S&&e!==E}(e.charCodeAt(0))&&!U(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(!q(a=e.charCodeAt(o)))return $;p=p&&Y(a)}else{for(o=0;o<e.length;o++){if((a=e.charCodeAt(o))===h)s=!0,u&&(c=c||i<o-l-1&&" "!==e[l+1],l=o);else if(!q(a))return $;p=p&&Y(a)}c=c||u&&i<o-l-1&&" "!==e[l+1]}return s||c?9<n&&R(e)?$:c?K:W:p&&!r(e)?B:P}function G(i,r,o,a){i.dump=function(){if(0===r.length)return"''";if(!i.noCompatMode&&-1!==l.indexOf(r))return"'"+r+"'";var e=i.indent*Math.max(1,o),t=-1===i.lineWidth?-1:Math.max(Math.min(i.lineWidth,40),i.lineWidth-e),n=a||-1<i.flowLevel&&o>=i.flowLevel;switch(H(r,n,i.indent,t,function(e){return function(e,t){var n,i;for(n=0,i=e.implicitTypes.length;n<i;n+=1)if(e.implicitTypes[n].resolve(t))return!0;return!1}(i,e)})){case B:return r;case P:return"'"+r.replace(/'/g,"''")+"'";case W:return"|"+V(r,i.indent)+Z(L(r,e));case K:return">"+V(r,i.indent)+Z(L(function(t,n){var e,i,r=/(\n+)([^\n]*)/g,o=function(){var e=t.indexOf("\n");return e=-1!==e?e:t.length,r.lastIndex=e,z(t.slice(0,e),n)}(),a="\n"===t[0]||" "===t[0];for(;i=r.exec(t);){var s=i[1],c=i[2];e=" "===c[0],o+=s+(a||e||""===c?"":"\n")+z(c,n),a=e}return o}(r,t),e));case $:return'"'+function(e){for(var t,n,i,r="",o=0;o<e.length;o++)55296<=(t=e.charCodeAt(o))&&t<=56319&&56320<=(n=e.charCodeAt(o+1))&&n<=57343?(r+=M(1024*(t-55296)+n-56320+65536),o++):(i=s[t],r+=!i&&q(t)?e[o]:i||M(t));return r}(r)+'"';default:throw new d("impossible error: invalid scalar style")}}()}function V(e,t){var n=R(e)?String(t):"",i="\n"===e[e.length-1];return n+(i&&("\n"===e[e.length-2]||"\n"===e)?"+":i?"":"-")+"\n"}function Z(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function z(e,t){if(""===e||" "===e[0])return e;for(var n,i,r=/ [^ ]/g,o=0,a=0,s=0,c="";n=r.exec(e);)t<(s=n.index)-o&&(i=o<a?a:s,c+="\n"+e.slice(o,i),o=i+1),a=s;return c+="\n",e.length-o>t&&o<a?c+=e.slice(o,a)+"\n"+e.slice(a+1):c+=e.slice(o),c.slice(1)}function J(e,t,n){var i,r,o,a,s,c;for(o=0,a=(r=n?e.explicitTypes:e.implicitTypes).length;o<a;o+=1)if(((s=r[o]).instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=n?s.tag:"?",s.represent){if(c=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===p.call(s.represent))i=s.represent(t,c);else{if(!u.call(s.represent,c))throw new d("!<"+s.tag+'> tag resolver accepts not "'+c+'" style');i=s.represent[c](t,c)}e.dump=i}return!0}return!1}function Q(e,t,n,i,r,o){e.tag=null,e.dump=n,J(e,n,!1)||J(e,n,!0);var a=p.call(e.dump);i&&(i=e.flowLevel<0||e.flowLevel>t);var s,c,u="[object Object]"===a||"[object Array]"===a;if(u&&(c=-1!==(s=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||c||2!==e.indent&&0<t)&&(r=!1),c&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(u&&c&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)i&&0!==Object.keys(e.dump).length?(function(e,t,n,i){var r,o,a,s,c,u,l="",p=e.tag,f=Object.keys(n);if(!0===e.sortKeys)f.sort();else if("function"==typeof e.sortKeys)f.sort(e.sortKeys);else if(e.sortKeys)throw new d("sortKeys must be a boolean or a function");for(r=0,o=f.length;r<o;r+=1)u="",i&&0===r||(u+=D(e,t)),s=n[a=f[r]],Q(e,t+1,a,!0,!0,!0)&&((c=null!==e.tag&&"?"!==e.tag||e.dump&&1024<e.dump.length)&&(e.dump&&h===e.dump.charCodeAt(0)?u+="?":u+="? "),u+=e.dump,c&&(u+=D(e,t)),Q(e,t+1,s,!0,c)&&(e.dump&&h===e.dump.charCodeAt(0)?u+=":":u+=": ",l+=u+=e.dump));e.tag=p,e.dump=l||"{}"}(e,t,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(function(e,t,n){var i,r,o,a,s,c="",u=e.tag,l=Object.keys(n);for(i=0,r=l.length;i<r;i+=1)s=e.condenseFlow?'"':"",0!==i&&(s+=", "),a=n[o=l[i]],Q(e,t,o,!1,!1)&&(1024<e.dump.length&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Q(e,t,a,!1,!1)&&(c+=s+=e.dump));e.tag=u,e.dump="{"+c+"}"}(e,t,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a){var l=e.noArrayIndent&&0<t?t-1:t;i&&0!==e.dump.length?(function(e,t,n,i){var r,o,a="",s=e.tag;for(r=0,o=n.length;r<o;r+=1)Q(e,t+1,n[r],!0,!0)&&(i&&0===r||(a+=D(e,t)),e.dump&&h===e.dump.charCodeAt(0)?a+="-":a+="- ",a+=e.dump);e.tag=s,e.dump=a||"[]"}(e,l,e.dump,r),c&&(e.dump="&ref_"+s+e.dump)):(function(e,t,n){var i,r,o="",a=e.tag;for(i=0,r=n.length;i<r;i+=1)Q(e,t,n[i],!1,!1)&&(0!==i&&(o+=","+(e.condenseFlow?"":" ")),o+=e.dump);e.tag=a,e.dump="["+o+"]"}(e,l,e.dump),c&&(e.dump="&ref_"+s+" "+e.dump))}else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new d("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&G(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function X(e,t){var n,i,r=[],o=[];for(function e(t,n,i){var r,o,a;if(null!==t&&"object"==typeof t)if(-1!==(o=n.indexOf(t)))-1===i.indexOf(o)&&i.push(o);else if(n.push(t),Array.isArray(t))for(o=0,a=t.length;o<a;o+=1)e(t[o],n,i);else for(r=Object.keys(t),o=0,a=r.length;o<a;o+=1)e(t[r[o]],n,i)}(e,r,o),n=0,i=o.length;n<i;n+=1)t.duplicates.push(r[o[n]]);t.usedDuplicates=new Array(i)}function ee(e,t){var n=new T(t=t||{});return n.noRefs||X(e,n),Q(n,0,e,!0,!0)?n.dump+"\n":""}t.exports.dump=ee,t.exports.safeDump=function(e,t){return ee(e,c.extend({schema:r},t))}},{"./common":2,"./exception":4,"./schema/default_full":9,"./schema/default_safe":10}],4:[function(e,t,n){"use strict";function i(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}((i.prototype=Object.create(Error.prototype)).constructor=i).prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},t.exports=i},{}],5:[function(e,t,n){"use strict";var g=e("./common"),i=e("./exception"),r=e("./mark"),o=e("./schema/default_safe"),a=e("./schema/default_full"),y=Object.prototype.hasOwnProperty,x=1,v=2,A=3,b=4,w=1,C=2,k=3,c=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,s=/[\x85\u2028\u2029]/,u=/[,\[\]\{\}]/,l=/^(?:!|!!|![a-z\-]+!)$/i,p=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function f(e){return Object.prototype.toString.call(e)}function j(e){return 10===e||13===e}function S(e){return 9===e||32===e}function I(e){return 9===e||32===e||10===e||13===e}function O(e){return 44===e||91===e||93===e||123===e||125===e}function d(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}for(var E=new Array(256),F=new Array(256),h=0;h<256;h++)E[h]=d(h)?1:0,F[h]=d(h);function m(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||a,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function _(e,t){return new i(t,new r(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function N(e,t){throw _(e,t)}function M(e,t){e.onWarning&&e.onWarning.call(null,_(e,t))}var T={YAML:function(e,t,n){var i,r,o;null!==e.version&&N(e,"duplication of %YAML directive"),1!==n.length&&N(e,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&N(e,"ill-formed argument of the YAML directive"),r=parseInt(i[1],10),o=parseInt(i[2],10),1!==r&&N(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&M(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var i,r;2!==n.length&&N(e,"TAG directive accepts exactly two arguments"),i=n[0],r=n[1],l.test(i)||N(e,"ill-formed tag handle (first argument) of the TAG directive"),y.call(e.tagMap,i)&&N(e,'there is a previously declared suffix for "'+i+'" tag handle'),p.test(r)||N(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[i]=r}};function L(e,t,n,i){var r,o,a,s;if(t<n){if(s=e.input.slice(t,n),i)for(r=0,o=s.length;r<o;r+=1)9===(a=s.charCodeAt(r))||32<=a&&a<=1114111||N(e,"expected valid JSON character");else c.test(s)&&N(e,"the stream contains non-printable characters");e.result+=s}}function D(e,t,n,i){var r,o,a,s;for(g.isObject(n)||N(e,"cannot merge mappings; the provided source object is unacceptable"),a=0,s=(r=Object.keys(n)).length;a<s;a+=1)o=r[a],y.call(t,o)||(t[o]=n[o],i[o]=!0)}function U(e,t,n,i,r,o,a,s){var c,u;if(Array.isArray(r))for(c=0,u=(r=Array.prototype.slice.call(r)).length;c<u;c+=1)Array.isArray(r[c])&&N(e,"nested arrays are not supported inside keys"),"object"==typeof r&&"[object Object]"===f(r[c])&&(r[c]="[object Object]");if("object"==typeof r&&"[object Object]"===f(r)&&(r="[object Object]"),r=String(r),null===t&&(t={}),"tag:yaml.org,2002:merge"===i)if(Array.isArray(o))for(c=0,u=o.length;c<u;c+=1)D(e,t,o[c],n);else D(e,t,o,n);else e.json||y.call(n,r)||!y.call(t,r)||(e.line=a||e.line,e.position=s||e.position,N(e,"duplicated mapping key")),t[r]=o,delete n[r];return t}function q(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):N(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function Y(e,t,n){for(var i=0,r=e.input.charCodeAt(e.position);0!==r;){for(;S(r);)r=e.input.charCodeAt(++e.position);if(t&&35===r)for(;10!==(r=e.input.charCodeAt(++e.position))&&13!==r&&0!==r;);if(!j(r))break;for(q(e),r=e.input.charCodeAt(e.position),i++,e.lineIndent=0;32===r;)e.lineIndent++,r=e.input.charCodeAt(++e.position)}return-1!==n&&0!==i&&e.lineIndent<n&&M(e,"deficient indentation"),i}function R(e){var t,n=e.position;return!(45!==(t=e.input.charCodeAt(n))&&46!==t||t!==e.input.charCodeAt(n+1)||t!==e.input.charCodeAt(n+2)||(n+=3,0!==(t=e.input.charCodeAt(n))&&!I(t)))}function B(e,t){1===t?e.result+=" ":1<t&&(e.result+=g.repeat("\n",t-1))}function P(e,t){var n,i,r=e.tag,o=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);0!==i&&45===i&&I(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,Y(e,!0,-1)&&e.lineIndent<=t)a.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,$(e,t,A,!1,!0),a.push(e.result),Y(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)N(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!s&&(e.tag=r,e.anchor=o,e.kind="sequence",e.result=a,!0)}function W(e){var t,n,i,r,o=!1,a=!1;if(33!==(r=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&N(e,"duplication of a tag property"),60===(r=e.input.charCodeAt(++e.position))?(o=!0,r=e.input.charCodeAt(++e.position)):33===r?(a=!0,n="!!",r=e.input.charCodeAt(++e.position)):n="!",t=e.position,o){for(;0!==(r=e.input.charCodeAt(++e.position))&&62!==r;);e.position<e.length?(i=e.input.slice(t,e.position),r=e.input.charCodeAt(++e.position)):N(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==r&&!I(r);)33===r&&(a?N(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),l.test(n)||N(e,"named tag handle cannot contain such characters"),a=!0,t=e.position+1)),r=e.input.charCodeAt(++e.position);i=e.input.slice(t,e.position),u.test(i)&&N(e,"tag suffix cannot contain flow indicator characters")}return i&&!p.test(i)&&N(e,"tag name cannot contain such characters: "+i),o?e.tag=i:y.call(e.tagMap,n)?e.tag=e.tagMap[n]+i:"!"===n?e.tag="!"+i:"!!"===n?e.tag="tag:yaml.org,2002:"+i:N(e,'undeclared tag handle "'+n+'"'),!0}function K(e){var t,n;if(38!==(n=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&N(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!I(n)&&!O(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&N(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function $(e,t,n,i,r){var o,a,s,c,u,l,p,f,d=1,h=!1,m=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=a=s=b===n||A===n,i&&Y(e,!0,-1)&&(h=!0,e.lineIndent>t?d=1:e.lineIndent===t?d=0:e.lineIndent<t&&(d=-1)),1===d)for(;W(e)||K(e);)Y(e,!0,-1)?(h=!0,s=o,e.lineIndent>t?d=1:e.lineIndent===t?d=0:e.lineIndent<t&&(d=-1)):s=!1;if(s&&(s=h||r),1!==d&&b!==n||(p=x===n||v===n?t:t+1,f=e.position-e.lineStart,1===d?s&&(P(e,f)||function(e,t,n){var i,r,o,a,s,c=e.tag,u=e.anchor,l={},p={},f=null,d=null,h=null,m=!1,g=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=l),s=e.input.charCodeAt(e.position);0!==s;){if(i=e.input.charCodeAt(e.position+1),o=e.line,a=e.position,63!==s&&58!==s||!I(i)){if(!$(e,n,v,!1,!0))break;if(e.line===o){for(s=e.input.charCodeAt(e.position);S(s);)s=e.input.charCodeAt(++e.position);if(58===s)I(s=e.input.charCodeAt(++e.position))||N(e,"a whitespace character is expected after the key-value separator within a block mapping"),m&&(U(e,l,p,f,d,null),f=d=h=null),r=m=!(g=!0),f=e.tag,d=e.result;else{if(!g)return e.tag=c,e.anchor=u,!0;N(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!g)return e.tag=c,e.anchor=u,!0;N(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===s?(m&&(U(e,l,p,f,d,null),f=d=h=null),r=m=g=!0):m?r=!(m=!1):N(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,s=i;if((e.line===o||e.lineIndent>t)&&($(e,t,b,!0,r)&&(m?d=e.result:h=e.result),m||(U(e,l,p,f,d,h,o,a),f=d=h=null),Y(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)N(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return m&&U(e,l,p,f,d,null),g&&(e.tag=c,e.anchor=u,e.kind="mapping",e.result=l),g}(e,f,p))||function(e,t){var n,i,r,o,a,s,c,u,l,p,f=!0,d=e.tag,h=e.anchor,m={};if(91===(p=e.input.charCodeAt(e.position)))s=!(r=93),i=[];else{if(123!==p)return!1;r=125,s=!0,i={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=i),p=e.input.charCodeAt(++e.position);0!==p;){if(Y(e,!0,t),(p=e.input.charCodeAt(e.position))===r)return e.position++,e.tag=d,e.anchor=h,e.kind=s?"mapping":"sequence",e.result=i,!0;f||N(e,"missed comma between flow collection entries"),l=null,o=a=!1,63===p&&I(e.input.charCodeAt(e.position+1))&&(o=a=!0,e.position++,Y(e,!0,t)),n=e.line,$(e,t,x,!1,!0),u=e.tag,c=e.result,Y(e,!0,t),p=e.input.charCodeAt(e.position),!a&&e.line!==n||58!==p||(o=!0,p=e.input.charCodeAt(++e.position),Y(e,!0,t),$(e,t,x,!1,!0),l=e.result),s?U(e,i,m,u,c,l):o?i.push(U(e,null,m,u,c,l)):i.push(c),Y(e,!0,t),44===(p=e.input.charCodeAt(e.position))?(f=!0,p=e.input.charCodeAt(++e.position)):f=!1}N(e,"unexpected end of the stream within a flow collection")}(e,p)?m=!0:(a&&function(e,t){var n,i,r,o,a,s=w,c=!1,u=!1,l=t,p=0,f=!1;if(124===(o=e.input.charCodeAt(e.position)))i=!1;else{if(62!==o)return!1;i=!0}for(e.kind="scalar",e.result="";0!==o;)if(43===(o=e.input.charCodeAt(++e.position))||45===o)w===s?s=43===o?k:C:N(e,"repeat of a chomping mode identifier");else{if(!(0<=(r=48<=(a=o)&&a<=57?a-48:-1)))break;0==r?N(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?N(e,"repeat of an indentation width identifier"):(l=t+r-1,u=!0)}if(S(o)){for(;S(o=e.input.charCodeAt(++e.position)););if(35===o)for(;!j(o=e.input.charCodeAt(++e.position))&&0!==o;);}for(;0!==o;){for(q(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!u||e.lineIndent<l)&&32===o;)e.lineIndent++,o=e.input.charCodeAt(++e.position);if(!u&&e.lineIndent>l&&(l=e.lineIndent),j(o))p++;else{if(e.lineIndent<l){s===k?e.result+=g.repeat("\n",c?1+p:p):s===w&&c&&(e.result+="\n");break}for(i?S(o)?(f=!0,e.result+=g.repeat("\n",c?1+p:p)):f?(f=!1,e.result+=g.repeat("\n",p+1)):0===p?c&&(e.result+=" "):e.result+=g.repeat("\n",p):e.result+=g.repeat("\n",c?1+p:p),u=c=!0,p=0,n=e.position;!j(o)&&0!==o;)o=e.input.charCodeAt(++e.position);L(e,n,e.position,!1)}}return!0}(e,p)||function(e,t){var n,i,r;if(39!==(n=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,i=r=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(L(e,i,e.position,!0),39!==(n=e.input.charCodeAt(++e.position)))return!0;i=e.position,e.position++,r=e.position}else j(n)?(L(e,i,r,!0),B(e,Y(e,!1,t)),i=r=e.position):e.position===e.lineStart&&R(e)?N(e,"unexpected end of the document within a single quoted scalar"):(e.position++,r=e.position);N(e,"unexpected end of the stream within a single quoted scalar")}(e,p)||function(e,t){var n,i,r,o,a,s,c,u,l,p;if(34!==(s=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(s=e.input.charCodeAt(e.position));){if(34===s)return L(e,n,e.position,!0),e.position++,!0;if(92===s){if(L(e,n,e.position,!0),j(s=e.input.charCodeAt(++e.position)))Y(e,!1,t);else if(s<256&&E[s])e.result+=F[s],e.position++;else if(0<(a=120===(p=s)?2:117===p?4:85===p?8:0)){for(r=a,o=0;0<r;r--)s=e.input.charCodeAt(++e.position),l=void 0,0<=(a=48<=(u=s)&&u<=57?u-48:97<=(l=32|u)&&l<=102?l-97+10:-1)?o=(o<<4)+a:N(e,"expected hexadecimal character");e.result+=(c=o)<=65535?String.fromCharCode(c):String.fromCharCode(55296+(c-65536>>10),56320+(c-65536&1023)),e.position++}else N(e,"unknown escape sequence");n=i=e.position}else j(s)?(L(e,n,i,!0),B(e,Y(e,!1,t)),n=i=e.position):e.position===e.lineStart&&R(e)?N(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}N(e,"unexpected end of the stream within a double quoted scalar")}(e,p)?m=!0:!function(e){var t,n,i;if(42!==(i=e.input.charCodeAt(e.position)))return!1;for(i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!I(i)&&!O(i);)i=e.input.charCodeAt(++e.position);return e.position===t&&N(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||N(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],Y(e,!0,-1),!0}(e)?function(e,t,n){var i,r,o,a,s,c,u,l,p=e.kind,f=e.result;if(I(l=e.input.charCodeAt(e.position))||O(l)||35===l||38===l||42===l||33===l||124===l||62===l||39===l||34===l||37===l||64===l||96===l)return!1;if((63===l||45===l)&&(I(i=e.input.charCodeAt(e.position+1))||n&&O(i)))return!1;for(e.kind="scalar",e.result="",r=o=e.position,a=!1;0!==l;){if(58===l){if(I(i=e.input.charCodeAt(e.position+1))||n&&O(i))break}else if(35===l){if(I(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&R(e)||n&&O(l))break;if(j(l)){if(s=e.line,c=e.lineStart,u=e.lineIndent,Y(e,!1,-1),e.lineIndent>=t){a=!0,l=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=c,e.lineIndent=u;break}}a&&(L(e,r,o,!1),B(e,e.line-s),r=o=e.position,a=!1),S(l)||(o=e.position+1),l=e.input.charCodeAt(++e.position)}return L(e,r,o,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,p,x===n)&&(m=!0,null===e.tag&&(e.tag="?")):(m=!0,null===e.tag&&null===e.anchor||N(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===d&&(m=s&&P(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(c=0,u=e.implicitTypes.length;c<u;c+=1)if((l=e.implicitTypes[c]).resolve(e.result)){e.result=l.construct(e.result),e.tag=l.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else y.call(e.typeMap[e.kind||"fallback"],e.tag)?(l=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&l.kind!==e.kind&&N(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):N(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):N(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||m}function H(e){var t,n,i,r,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(r=e.input.charCodeAt(e.position))&&(Y(e,!0,-1),r=e.input.charCodeAt(e.position),!(0<e.lineIndent||37!==r));){for(a=!0,r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!I(r);)r=e.input.charCodeAt(++e.position);for(i=[],(n=e.input.slice(t,e.position)).length<1&&N(e,"directive name must not be less than one character in length");0!==r;){for(;S(r);)r=e.input.charCodeAt(++e.position);if(35===r){for(;0!==(r=e.input.charCodeAt(++e.position))&&!j(r););break}if(j(r))break;for(t=e.position;0!==r&&!I(r);)r=e.input.charCodeAt(++e.position);i.push(e.input.slice(t,e.position))}0!==r&&q(e),y.call(T,n)?T[n](e,n,i):M(e,'unknown document directive "'+n+'"')}Y(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,Y(e,!0,-1)):a&&N(e,"directives end mark is expected"),$(e,e.lineIndent-1,b,!1,!0),Y(e,!0,-1),e.checkLineBreaks&&s.test(e.input.slice(o,e.position))&&M(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&R(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,Y(e,!0,-1)):e.position<e.length-1&&N(e,"end of the stream or a document separator is expected")}function G(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new m(e,t);for(n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)H(n);return n.documents}function V(e,t,n){var i,r,o=G(e,n);if("function"!=typeof t)return o;for(i=0,r=o.length;i<r;i+=1)t(o[i])}function Z(e,t){var n=G(e,t);if(0!==n.length){if(1===n.length)return n[0];throw new i("expected a single document in the stream, but found more")}}t.exports.loadAll=V,t.exports.load=Z,t.exports.safeLoadAll=function(e,t,n){if("function"!=typeof t)return V(e,g.extend({schema:o},n));V(e,t,g.extend({schema:o},n))},t.exports.safeLoad=function(e,t){return Z(e,g.extend({schema:o},t))}},{"./common":2,"./exception":4,"./mark":6,"./schema/default_full":9,"./schema/default_safe":10}],6:[function(e,t,n){"use strict";var s=e("./common");function i(e,t,n,i,r){this.name=e,this.buffer=t,this.position=n,this.line=i,this.column=r}i.prototype.getSnippet=function(e,t){var n,i,r,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,n="",i=this.position;0<i&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(i-1));)if(i-=1,this.position-i>t/2-1){n=" ... ",i+=5;break}for(r="",o=this.position;o<this.buffer.length&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(o));)if((o+=1)-this.position>t/2-1){r=" ... ",o-=5;break}return a=this.buffer.slice(i,o),s.repeat(" ",e)+n+a+r+"\n"+s.repeat(" ",e+this.position-i+n.length)+"^"},i.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(n+=":\n"+t),n},t.exports=i},{"./common":2}],7:[function(e,t,n){"use strict";var i=e("./common"),r=e("./exception"),o=e("./type");function a(e,t,i){var r=[];return e.include.forEach(function(e){i=a(e,t,i)}),e[t].forEach(function(n){i.forEach(function(e,t){e.tag===n.tag&&e.kind===n.kind&&r.push(t)}),i.push(n)}),i.filter(function(e,t){return-1===r.indexOf(t)})}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new r("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=a(this,"implicit",[]),this.compiledExplicit=a(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function i(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(i);return n}(this.compiledImplicit,this.compiledExplicit)}s.DEFAULT=null,s.create=function(){var e,t;switch(arguments.length){case 1:e=s.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new r("Wrong number of arguments for Schema.create function")}if(e=i.toArray(e),t=i.toArray(t),!e.every(function(e){return e instanceof s}))throw new r("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(e){return e instanceof o}))throw new r("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new s({include:e,explicit:t})},t.exports=s},{"./common":2,"./exception":4,"./type":13}],8:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({include:[e("./json")]})},{"../schema":7,"./json":12}],9:[function(e,t,n){"use strict";var i=e("../schema");t.exports=i.DEFAULT=new i({include:[e("./default_safe")],explicit:[e("../type/js/undefined"),e("../type/js/regexp"),e("../type/js/function")]})},{"../schema":7,"../type/js/function":18,"../type/js/regexp":19,"../type/js/undefined":20,"./default_safe":10}],10:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({include:[e("./core")],implicit:[e("../type/timestamp"),e("../type/merge")],explicit:[e("../type/binary"),e("../type/omap"),e("../type/pairs"),e("../type/set")]})},{"../schema":7,"../type/binary":14,"../type/merge":22,"../type/omap":24,"../type/pairs":25,"../type/set":27,"../type/timestamp":29,"./core":8}],11:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({explicit:[e("../type/str"),e("../type/seq"),e("../type/map")]})},{"../schema":7,"../type/map":21,"../type/seq":26,"../type/str":28}],12:[function(e,t,n){"use strict";var i=e("../schema");t.exports=new i({include:[e("./failsafe")],implicit:[e("../type/null"),e("../type/bool"),e("../type/int"),e("../type/float")]})},{"../schema":7,"../type/bool":15,"../type/float":16,"../type/int":17,"../type/null":23,"./failsafe":11}],13:[function(e,t,n){"use strict";var i=e("./exception"),r=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],o=["scalar","sequence","mapping"];t.exports=function(t,e){if(e=e||{},Object.keys(e).forEach(function(e){if(-1===r.indexOf(e))throw new i('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(e){return e},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=function(e){var n={};return null!==e&&Object.keys(e).forEach(function(t){e[t].forEach(function(e){n[String(e)]=t})}),n}(e.styleAliases||null),-1===o.indexOf(this.kind))throw new i('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}},{"./exception":4}],14:[function(e,t,n){"use strict";var c;try{c=e("buffer").Buffer}catch(e){}var i=e("../type"),u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";t.exports=new i("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i=0,r=e.length,o=u;for(n=0;n<r;n++)if(!(64<(t=o.indexOf(e.charAt(n))))){if(t<0)return!1;i+=6}return i%8==0},construct:function(e){var t,n,i=e.replace(/[\r\n=]/g,""),r=i.length,o=u,a=0,s=[];for(t=0;t<r;t++)t%4==0&&t&&(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(i.charAt(t));return 0==(n=r%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18==n?(s.push(a>>10&255),s.push(a>>2&255)):12==n&&s.push(a>>4&255),c?c.from?c.from(s):new c(s):s},predicate:function(e){return c&&c.isBuffer(e)},represent:function(e){var t,n,i="",r=0,o=e.length,a=u;for(t=0;t<o;t++)t%3==0&&t&&(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]),r=(r<<8)+e[t];return 0==(n=o%3)?(i+=a[r>>18&63],i+=a[r>>12&63],i+=a[r>>6&63],i+=a[63&r]):2==n?(i+=a[r>>10&63],i+=a[r>>4&63],i+=a[r<<2&63],i+=a[64]):1==n&&(i+=a[r>>2&63],i+=a[r<<4&63],i+=a[64],i+=a[64]),i}})},{"../type":13}],15:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":13}],16:[function(e,t,n){"use strict";var i=e("../common"),r=e("../type"),o=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;t.exports=new r("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!o.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n,i,r;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,r=[],0<="+-".indexOf(t[0])&&(t=t.slice(1)),".inf"===t?1==n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:0<=t.indexOf(":")?(t.split(":").forEach(function(e){r.unshift(parseFloat(e,10))}),t=0,i=1,r.forEach(function(e){t+=e*i,i*=60}),n*t):n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||i.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(i.isNegativeZero(e))return"-0.0";return n=e.toString(10),a.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})},{"../common":2,"../type":13}],17:[function(e,t,n){"use strict";var i=e("../common"),r=e("../type");t.exports=new r("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,i,r,o=e.length,a=0,s=!1;if(!o)return!1;if("-"!==(t=e[a])&&"+"!==t||(t=e[++a]),"0"===t){if(a+1===o)return!0;if("b"===(t=e[++a])){for(a++;a<o;a++)if("_"!==(t=e[a])){if("0"!==t&&"1"!==t)return!1;s=!0}return s&&"_"!==t}if("x"===t){for(a++;a<o;a++)if("_"!==(t=e[a])){if(!(48<=(i=e.charCodeAt(a))&&i<=57||65<=i&&i<=70||97<=i&&i<=102))return!1;s=!0}return s&&"_"!==t}for(;a<o;a++)if("_"!==(t=e[a])){if(!(48<=(n=e.charCodeAt(a))&&n<=55))return!1;s=!0}return s&&"_"!==t}if("_"===t)return!1;for(;a<o;a++)if("_"!==(t=e[a])){if(":"===t)break;if(!(48<=(r=e.charCodeAt(a))&&r<=57))return!1;s=!0}return!(!s||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(a)))},construct:function(e){var t,n,i=e,r=1,o=[];return-1!==i.indexOf("_")&&(i=i.replace(/_/g,"")),"-"!==(t=i[0])&&"+"!==t||("-"===t&&(r=-1),t=(i=i.slice(1))[0]),"0"===i?0:"0"===t?"b"===i[1]?r*parseInt(i.slice(2),2):"x"===i[1]?r*parseInt(i,16):r*parseInt(i,8):-1!==i.indexOf(":")?(i.split(":").forEach(function(e){o.unshift(parseInt(e,10))}),i=0,n=1,o.forEach(function(e){i+=e*n,n*=60}),r*i):r*parseInt(i,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!i.isNegativeZero(e)},represent:{binary:function(e){return 0<=e?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return 0<=e?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return 0<=e?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},{"../common":2,"../type":13}],18:[function(e,t,n){"use strict";var o;try{o=e("esprima")}catch(e){"undefined"!=typeof window&&(o=window.esprima)}var i=e("../../type");t.exports=new i("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",n=o.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&("ArrowFunctionExpression"===n.body[0].expression.type||"FunctionExpression"===n.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,n="("+e+")",i=o.parse(n,{range:!0}),r=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"ArrowFunctionExpression"!==i.body[0].expression.type&&"FunctionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach(function(e){r.push(e.name)}),t=i.body[0].expression.body.range,"BlockStatement"===i.body[0].expression.body.type?new Function(r,n.slice(t[0]+1,t[1]-1)):new Function(r,"return "+n.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},{"../../type":13}],19:[function(e,t,n){"use strict";var i=e("../../type");t.exports=new i("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,n=/\/([gim]*)$/.exec(e),i="";if("/"===t[0]){if(n&&(i=n[1]),3<i.length)return!1;if("/"!==t[t.length-i.length-1])return!1}return!0},construct:function(e){var t=e,n=/\/([gim]*)$/.exec(e),i="";return"/"===t[0]&&(n&&(i=n[1]),t=t.slice(1,t.length-i.length-1)),new RegExp(t,i)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},{"../../type":13}],20:[function(e,t,n){"use strict";var i=e("../../type");t.exports=new i("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}})},{"../../type":13}],21:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},{"../type":13}],22:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},{"../type":13}],23:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},{"../type":13}],24:[function(e,t,n){"use strict";var i=e("../type"),c=Object.prototype.hasOwnProperty,u=Object.prototype.toString;t.exports=new i("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,i,r,o,a=[],s=e;for(t=0,n=s.length;t<n;t+=1){if(i=s[t],o=!1,"[object Object]"!==u.call(i))return!1;for(r in i)if(c.call(i,r)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==a.indexOf(r))return!1;a.push(r)}return!0},construct:function(e){return null!==e?e:[]}})},{"../type":13}],25:[function(e,t,n){"use strict";var i=e("../type"),s=Object.prototype.toString;t.exports=new i("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,i,r,o,a=e;for(o=new Array(a.length),t=0,n=a.length;t<n;t+=1){if(i=a[t],"[object Object]"!==s.call(i))return!1;if(1!==(r=Object.keys(i)).length)return!1;o[t]=[r[0],i[r[0]]]}return!0},construct:function(e){if(null===e)return[];var t,n,i,r,o,a=e;for(o=new Array(a.length),t=0,n=a.length;t<n;t+=1)i=a[t],r=Object.keys(i),o[t]=[r[0],i[r[0]]];return o}})},{"../type":13}],26:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},{"../type":13}],27:[function(e,t,n){"use strict";var i=e("../type"),r=Object.prototype.hasOwnProperty;t.exports=new i("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,n=e;for(t in n)if(r.call(n,t)&&null!==n[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})},{"../type":13}],28:[function(e,t,n){"use strict";var i=e("../type");t.exports=new i("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},{"../type":13}],29:[function(e,t,n){"use strict";var i=e("../type"),p=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),f=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");t.exports=new i("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==p.exec(e)||null!==f.exec(e))},construct:function(e){var t,n,i,r,o,a,s,c,u=0,l=null;if(null===(t=p.exec(e))&&(t=f.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],i=+t[2]-1,r=+t[3],!t[4])return new Date(Date.UTC(n,i,r));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(u=t[7].slice(0,3);u.length<3;)u+="0";u=+u}return t[9]&&(l=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(l=-l)),c=new Date(Date.UTC(n,i,r,o,a,s,u)),l&&c.setTime(c.getTime()-l),c},instanceOf:Date,represent:function(e){return e.toISOString()}})},{"../type":13}],"/":[function(e,t,n){"use strict";var i=e("./lib/js-yaml.js");t.exports=i},{"./lib/js-yaml.js":1}]},{},[])("/")});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/src/schemes/urn.ts-33-			const nss = matches[2];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/src/schemes/urn.ts:34:			const urnScheme = `${scheme}:${options.nid || nid}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/src/schemes/urn.ts-35-			const schemeHandler = SCHEMES[urnScheme];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/src/schemes/urn.ts-53-		const nid = urnComponents.nid;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/src/schemes/urn.ts:54:		const urnScheme = `${scheme}:${options.nid || nid}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/src/schemes/urn.ts-55-		const schemeHandler = SCHEMES[urnScheme];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/src/schemes/urn.ts-62-		const nss = urnComponents.nss;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/src/schemes/urn.ts:63:		uriComponents.path = `${nid || options.nid}:${nss}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/src/schemes/urn.ts-64-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/esnext/schemes/urn.js-19-            const nss = matches[2];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/esnext/schemes/urn.js:20:            const urnScheme = `${scheme}:${options.nid || nid}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/esnext/schemes/urn.js-21-            const schemeHandler = SCHEMES[urnScheme];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/esnext/schemes/urn.js-36-        const nid = urnComponents.nid;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/esnext/schemes/urn.js:37:        const urnScheme = `${scheme}:${options.nid || nid}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/esnext/schemes/urn.js-38-        const schemeHandler = SCHEMES[urnScheme];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/esnext/schemes/urn.js-43-        const nss = urnComponents.nss;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/esnext/schemes/urn.js:44:        uriComponents.path = `${nid || options.nid}:${nss}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/esnext/schemes/urn.js-45-        return uriComponents;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/es5/uri.all.min.js.map:1:{"version":3,"sources":["../../src/util.ts","../../src/regexps-uri.ts","../../node_modules/punycode/punycode.es6.js","../../src/uri.ts","../../src/schemes/mailto.ts","../../src/regexps-iri.ts","../../src/schemes/http.ts","../../src/schemes/https.ts","../../src/schemes/urn.ts","../../src/schemes/urn-uuid.ts","../../src/index.ts"],"names":["merge","sets","Array","_len","_key","arguments","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","setInterval","assign","target","source","key","buildExps","isIRI","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","UNRESERVED$$","RegExp","IPRIVATE$$","IPV6ADDRESS$","error","type","RangeError","errors","map","array","fn","result","mapDomain","string","parts","replace","regexSeparators","ucs2decode","output","counter","value","charCodeAt","extra","push","pctEncChar","chr","c","pctDecChars","newStr","i","il","parseInt","substr","String","fromCharCode","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_matches","_normalizeIPv6","IPV6ADDRESS","_matches2","zone","reverse","last","_address$toLowerCase$2","first","firstFields","lastFields","isLastFieldIPv4Address","test","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","index","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","URI_PARSE","NO_MATCH_IS_UNDEFINED","port","isNaN","indexOf","schemeHandler","SCHEMES","unicodeSupport","domainHost","punycode","toASCII","e","_recomposeAuthority","uriTokens","_","$1","$2","removeDotSegments","input","RDS1","RDS2","RDS3","im","RDS5","Error","s","serialize","toUnicode","authority","charAt","absolutePath","resolveComponents","base","relative","skipNormalization","tolerant","lastIndexOf","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","maxInt","regexPunycode","regexNonASCII","floor","Math","stringFromCharCode","ucs2encode","fromCodePoint","apply","toConsumableArray","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","baseMinusTMin","decode","inputLength","n","bias","basic","j","oldi","w","t","baseMinusT","out","splice","encode","_step","Symbol","iterator","_iteratorNormalCompletion","_iterator","next","done","currentValue","basicLength","handledCPCount","m","_step2","_iteratorNormalCompletion2","_iterator2","handledCPCountPlusOne","_step3","_iteratorNormalCompletion3","_iterator3","q","qMinusT","handler","http","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","mailto","urn"],"mappings":"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","file":"dist/es5/uri.all.min.js","sourcesContent":["export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),  //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),  //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",  //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",  //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),  //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp(                                                            subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), //                           6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp(                                                 \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), //                      \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp(                                 H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[               h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" +        H16$ + \"\\\\:\"          + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\"    h16 \":\"   ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\"                                + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\"              ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\"                                + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\"              h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"                                       ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"),  //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),  //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),  //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),  //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),  //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),  //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),  //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\")  //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t//  0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n *    1. Redistributions of source code must retain the above copyright notice, this list of\n *       conditions and the following disclaimer.\n *\n *    2. Redistributions in binary form must reproduce the above copyright notice, this list\n *       of conditions and the following disclaimer in the documentation and/or other materials\n *       provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else {  //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(components.port.toString(10));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\");  //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\");  //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options);  //normalize base components\n\t\trelative = parse(serialize(relative, options), options);  //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\";  //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$));  //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\";  //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$);  //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$));  //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\";  //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> =  {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (components.port === (String(components.scheme).toLowerCase() !== \"https\" ? 80 : 443) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n"]}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/uri-js/dist/es5/uri.all.js.map:1:{"version":3,"file":"uri.all.js","sources":["../../src/index.ts","../../src/schemes/urn-uuid.ts","../../src/schemes/urn.ts","../../src/schemes/mailto.ts","../../src/schemes/https.ts","../../src/schemes/http.ts","../../src/uri.ts","../../node_modules/punycode/punycode.es6.js","../../src/regexps-iri.ts","../../src/regexps-uri.ts","../../src/util.ts"],"sourcesContent":["import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\";  //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$));  //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\";  //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$);  //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$));  //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\";  //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> =  {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (components.port === (String(components.scheme).toLowerCase() !== \"https\" ? 80 : 443) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n *    1. Redistributions of source code must retain the above copyright notice, this list of\n *       conditions and the following disclaimer.\n *\n *    2. Redistributions in binary form must reproduce the above copyright notice, this list\n *       of conditions and the following disclaimer in the documentation and/or other materials\n *       provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else {  //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(components.port.toString(10));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\");  //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\");  //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options);  //normalize base components\n\t\trelative = parse(serialize(relative, options), options);  //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t//  0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),  //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),  //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",  //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",  //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),  //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp(                                                            subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), //                           6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp(                                                 \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), //                      \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp(                                 H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[               h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" +        H16$ + \"\\\\:\"          + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\"    h16 \":\"   ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\"                                + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\"              ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\"                                + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\"              h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"                                       ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"),  //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),  //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),  //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),  //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),  //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),  //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),  //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\")  //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}"],"names":["SCHEMES","uuid","scheme","urn","mailto","https","http","urnComponents","nss","uuidComponents","toLowerCase","options","error","tolerant","match","UUID","undefined","handler","uriComponents","path","nid","schemeHandler","serialize","urnScheme","parse","matches","components","URN_PARSE","query","fields","join","length","push","name","replace","PCT_ENCODED","decodeUnreserved","toUpperCase","NOT_HFNAME","pctEncChar","headers","NOT_HFVALUE","O","mailtoComponents","body","subject","to","x","localPart","domain","iri","e","punycode","toASCII","unescapeComponent","toUnicode","toAddr","slice","atIdx","NOT_LOCAL_PART","lastIndexOf","String","xl","toArray","addr","unicodeSupport","split","unknownHeaders","hfield","toAddrs","hfields","decStr","UNRESERVED","str","pctDecChars","RegExp","merge","UNRESERVED$$","SOME_DELIMS$$","ATEXT$$","VCHAR$$","PCT_ENCODED$","QTEXT$$","subexp","HEXDIG$$","isIRI","domainHost","port","host","toString","URI_PROTOCOL","IRI_PROTOCOL","ESCAPE","escapeComponent","uriA","uriB","typeOf","equal","uri","normalize","resolveComponents","baseURI","schemelessOptions","relativeURI","assign","resolve","target","fragment","relative","base","userinfo","removeDotSegments","charAt","skipNormalization","uriTokens","s","authority","absolutePath","reference","_recomposeAuthority","protocol","IPV6ADDRESS","test","output","Error","input","im","RDS5","pop","RDS3","RDS2","RDS1","$1","$2","_normalizeIPv6","_normalizeIPv4","_","uriString","isNaN","indexOf","parseInt","NO_MATCH_IS_UNDEFINED","URI_PARSE","newHost","zone","newFirst","newLast","longestZeroFields","index","b","a","allZeroFields","sort","acc","lastLongest","field","reduce","fieldCount","isLastFieldIPv4Address","firstFields","lastFields","lastFieldsStart","Array","IPV4ADDRESS","last","map","_stripLeadingZeros","first","address","reverse","NOT_FRAGMENT","NOT_QUERY","NOT_PATH","NOT_PATH_NOSCHEME","NOT_HOST","NOT_USERINFO","NOT_SCHEME","_normalizeComponentEncoding","newStr","substr","i","fromCharCode","c","c2","c3","il","chr","charCodeAt","encode","decode","ucs2encode","ucs2decode","regexNonASCII","string","mapDomain","regexPunycode","n","delta","handledCPCount","adapt","handledCPCountPlusOne","basicLength","stringFromCharCode","digitToBasic","q","floor","qMinusT","baseMinusT","t","k","bias","tMin","tMax","currentValue","maxInt","m","inputLength","delimiter","initialBias","initialN","fromCodePoint","splice","out","oldi","w","digit","basicToDigit","basic","j","baseMinusTMin","skew","numPoints","firstTime","damp","flag","codePoint","array","value","extra","counter","result","encoded","labels","fn","regexSeparators","parts","RangeError","errors","type","Math","buildExps","IPV6ADDRESS$","ZONEID$","IPV4ADDRESS$","RESERVED$$","SUB_DELIMS$$","IPRIVATE$$","ALPHA$$","DIGIT$$","AUTHORITY_REF$","USERINFO$","HOST$","PORT$","SAMEDOC_REF$","FRAGMENT$","ABSOLUTE_REF$","SCHEME$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","RELATIVE_REF$","PATH_NOSCHEME$","GENERIC_REF$","ABSOLUTE_URI$","HIER_PART$","URI_REFERENCE$","URI$","RELATIVE$","RELATIVE_PART$","AUTHORITY$","PCHAR$","PATH$","SEGMENT_NZ$","SEGMENT_NZ_NC$","SEGMENT$","IP_LITERAL$","REG_NAME$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","H16$","LS32$","DEC_OCTET_RELAXED$","DEC_OCTET$","UCSCHAR$$","GEN_DELIMS$$","SP$$","DQUOTE$$","CR$","obj","key","source","setInterval","call","prototype","o","Object","shift","sets"],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/readme.md-21-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/readme.md:22:console.log(`${style.green.open}Hello world!${style.green.close}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/readme.md-23-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js-5-	const code = fn.apply(colorConvert, arguments);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js:6:	return `\u001B[${code + offset}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js-7-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js-10-	const code = fn.apply(colorConvert, arguments);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js:11:	return `\u001B[${38 + offset};5;${code}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js-12-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js-15-	const rgb = fn.apply(colorConvert, arguments);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js:16:	return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js-17-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js-84-			styles[styleName] = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js:85:				open: `\u001B[${style[0]}m`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js:86:				close: `\u001B[${style[1]}m`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ansi-styles/index.js-87-			};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/lib/espree.js-231-            if (this.end > this.start) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/lib/espree.js:232:                message += ` ${this.input.slice(this.start, this.end)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/lib/espree.js-233-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/lib/options.js-31-    if (typeof ecmaVersion !== "number") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/lib/options.js:32:        throw new Error(`ecmaVersion must be a number. Received value of type ${typeof ecmaVersion} instead.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/lib/options.js-33-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/lib/token-translator.js-165-            };
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/lib/token-translator.js:166:            token.value = `/${value.pattern}/${value.flags}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/lib/token-translator.js-167-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/node_modules/acorn/dist/acorn.mjs.map:1:{"version":3,"file":"acorn.mjs","sources":["../src/identifier.js","../src/tokentype.js","../src/whitespace.js","../src/util.js","../src/locutil.js","../src/options.js","../src/scopeflags.js","../src/state.js","../src/parseutil.js","../src/statement.js","../src/lval.js","../src/expression.js","../src/location.js","../src/scope.js","../src/node.js","../src/tokencontext.js","../src/unicode-property-data.js","../src/regexp.js","../src/tokenize.js","../src/index.js"],"sourcesContent":["// Reserved word lists for various dialects of the language\n\nexport const reservedWords = {\n  3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n  5: \"class enum extends super const export import\",\n  6: \"enum\",\n  strict: \"implements interface let package private protected public static yield\",\n  strictBind: \"eval arguments\"\n}\n\n// And the keywords\n\nconst ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\"\n\nexport const keywords = {\n  5: ecma5AndLessKeywords,\n  6: ecma5AndLessKeywords + \" const class extends export import super\"\n}\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n// Generated by `bin/generate-identifier-regex.js`.\n\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7b9\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab65\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\"\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2-\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\"\n\nconst nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\")\nconst nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\")\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by bin/generate-identifier-regex.js\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541]\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239]\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n  let pos = 0x10000\n  for (let i = 0; i < set.length; i += 2) {\n    pos += set[i]\n    if (pos > code) return false\n    pos += set[i + 1]\n    if (pos >= code) return true\n  }\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code, astral) {\n  if (code < 65) return code === 36\n  if (code < 91) return true\n  if (code < 97) return code === 95\n  if (code < 123) return true\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n  if (astral === false) return false\n  return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code, astral) {\n  if (code < 48) return code === 36\n  if (code < 58) return true\n  if (code < 65) return false\n  if (code < 91) return true\n  if (code < 97) return code === 95\n  if (code < 123) return true\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code))\n  if (astral === false) return false\n  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n","// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nexport class TokenType {\n  constructor(label, conf = {}) {\n    this.label = label\n    this.keyword = conf.keyword\n    this.beforeExpr = !!conf.beforeExpr\n    this.startsExpr = !!conf.startsExpr\n    this.isLoop = !!conf.isLoop\n    this.isAssign = !!conf.isAssign\n    this.prefix = !!conf.prefix\n    this.postfix = !!conf.postfix\n    this.binop = conf.binop || null\n    this.updateContext = null\n  }\n}\n\nfunction binop(name, prec) {\n  return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nconst beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}\n\n// Map keyword names to token types.\n\nexport const keywords = {}\n\n// Succinct definitions of keyword token types\nfunction kw(name, options = {}) {\n  options.keyword = name\n  return keywords[name] = new TokenType(name, options)\n}\n\nexport const types = {\n  num: new TokenType(\"num\", startsExpr),\n  regexp: new TokenType(\"regexp\", startsExpr),\n  string: new TokenType(\"string\", startsExpr),\n  name: new TokenType(\"name\", startsExpr),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n  bracketR: new TokenType(\"]\"),\n  braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n  braceR: new TokenType(\"}\"),\n  parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", beforeExpr),\n  semi: new TokenType(\";\", beforeExpr),\n  colon: new TokenType(\":\", beforeExpr),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", beforeExpr),\n  arrow: new TokenType(\"=>\", beforeExpr),\n  template: new TokenType(\"template\"),\n  invalidTemplate: new TokenType(\"invalidTemplate\"),\n  ellipsis: new TokenType(\"...\", beforeExpr),\n  backQuote: new TokenType(\"`\", startsExpr),\n  dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n  assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n  incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n  prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  logicalOR: binop(\"||\", 1),\n  logicalAND: binop(\"&&\", 2),\n  bitwiseOR: binop(\"|\", 3),\n  bitwiseXOR: binop(\"^\", 4),\n  bitwiseAND: binop(\"&\", 5),\n  equality: binop(\"==/!=/===/!==\", 6),\n  relational: binop(\"</>/<=/>=\", 7),\n  bitShift: binop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n  modulo: binop(\"%\", 10),\n  star: binop(\"*\", 10),\n  slash: binop(\"/\", 10),\n  starstar: new TokenType(\"**\", {beforeExpr: true}),\n\n  // Keyword token types.\n  _break: kw(\"break\"),\n  _case: kw(\"case\", beforeExpr),\n  _catch: kw(\"catch\"),\n  _continue: kw(\"continue\"),\n  _debugger: kw(\"debugger\"),\n  _default: kw(\"default\", beforeExpr),\n  _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n  _else: kw(\"else\", beforeExpr),\n  _finally: kw(\"finally\"),\n  _for: kw(\"for\", {isLoop: true}),\n  _function: kw(\"function\", startsExpr),\n  _if: kw(\"if\"),\n  _return: kw(\"return\", beforeExpr),\n  _switch: kw(\"switch\"),\n  _throw: kw(\"throw\", beforeExpr),\n  _try: kw(\"try\"),\n  _var: kw(\"var\"),\n  _const: kw(\"const\"),\n  _while: kw(\"while\", {isLoop: true}),\n  _with: kw(\"with\"),\n  _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n  _this: kw(\"this\", startsExpr),\n  _super: kw(\"super\", startsExpr),\n  _class: kw(\"class\", startsExpr),\n  _extends: kw(\"extends\", beforeExpr),\n  _export: kw(\"export\"),\n  _import: kw(\"import\"),\n  _null: kw(\"null\", startsExpr),\n  _true: kw(\"true\", startsExpr),\n  _false: kw(\"false\", startsExpr),\n  _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n  _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n  _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n}\n","// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nexport const lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\")\n\nexport function isNewLine(code, ecma2019String) {\n  return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n}\n\nexport const nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g\n","const {hasOwnProperty, toString} = Object.prototype\n\n// Checks if an object has a property.\n\nexport function has(obj, propName) {\n  return hasOwnProperty.call(obj, propName)\n}\n\nexport const isArray = Array.isArray || ((obj) => (\n  toString.call(obj) === \"[object Array]\"\n))\n\nexport function wordsRegexp(words) {\n  return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n","import {lineBreakG} from \"./whitespace\"\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  constructor(line, col) {\n    this.line = line\n    this.column = col\n  }\n\n  offset(n) {\n    return new Position(this.line, this.column + n)\n  }\n}\n\nexport class SourceLocation {\n  constructor(p, start, end) {\n    this.start = start\n    this.end = end\n    if (p.sourceFile !== null) this.source = p.sourceFile\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input, offset) {\n  for (let line = 1, cur = 0;;) {\n    lineBreakG.lastIndex = cur\n    let match = lineBreakG.exec(input)\n    if (match && match.index < offset) {\n      ++line\n      cur = match.index + match[0].length\n    } else {\n      return new Position(line, offset - cur)\n    }\n  }\n}\n","import {has, isArray} from \"./util\"\nimport {SourceLocation} from \"./locutil\"\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport const defaultOptions = {\n  // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n  // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10\n  // (2019). This influences support for strict mode, the set of\n  // reserved words, and support for new syntax features. The default\n  // is 9.\n  ecmaVersion: 9,\n  // `sourceType` indicates the mode the code should be parsed in.\n  // Can be either `\"script\"` or `\"module\"`. This influences global\n  // strict mode and parsing of `import` and `export` declarations.\n  sourceType: \"script\",\n  // `onInsertedSemicolon` can be a callback that will be called\n  // when a semicolon is automatically inserted. It will be passed\n  // the position of the comma as an offset, and if `locations` is\n  // enabled, it is given the location as a `{line, column}` object\n  // as second argument.\n  onInsertedSemicolon: null,\n  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n  // trailing commas.\n  onTrailingComma: null,\n  // By default, reserved words are only enforced if ecmaVersion >= 5.\n  // Set `allowReserved` to a boolean value to explicitly turn this on\n  // an off. When this option has the value \"never\", reserved words\n  // and keywords can also not be used as property names.\n  allowReserved: null,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // When enabled, await identifiers are allowed to appear at the top-level scope,\n  // but they are still not allowed in non-async functions.\n  allowAwaitOutsideFunction: false,\n  // When enabled, hashbang directive in the beginning of file\n  // is allowed and treated as a line comment.\n  allowHashBang: false,\n  // When `locations` is on, `loc` properties holding objects with\n  // `start` and `end` properties in `{line, column}` form (with\n  // line being 1-based and column 0-based) will be attached to the\n  // nodes.\n  locations: false,\n  // A function can be passed as `onToken` option, which will\n  // cause Acorn to call that function with object in the same\n  // format as tokens returned from `tokenizer().getToken()`. Note\n  // that you are not allowed to call the parser from the\n  // callback—that will corrupt its internal state.\n  onToken: null,\n  // A function can be passed as `onComment` option, which will\n  // cause Acorn to call that function with `(block, text, start,\n  // end)` parameters whenever a comment is skipped. `block` is a\n  // boolean indicating whether this is a block (`/* */`) comment,\n  // `text` is the content of the comment, and `start` and `end` are\n  // character offsets that denote the start and end of the comment.\n  // When the `locations` option is on, two more parameters are\n  // passed, the full `{line, column}` locations of the start and\n  // end of the comments. Note that you are not allowed to call the\n  // parser from the callback—that will corrupt its internal state.\n  onComment: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // It is possible to parse multiple files into a single AST by\n  // passing the tree produced by parsing the first file as\n  // `program` option in subsequent parses. This will add the\n  // toplevel forms of the parsed file to the `Program` (top) node\n  // of an existing parse tree.\n  program: null,\n  // When `locations` is on, you can pass this to record the source\n  // file in every node's `loc` object.\n  sourceFile: null,\n  // This value, if given, is stored in every node, whether\n  // `locations` is on or off.\n  directSourceFile: null,\n  // When enabled, parenthesized expressions are represented by\n  // (non-standard) ParenthesizedExpression nodes\n  preserveParens: false\n}\n\n// Interpret and default an options object\n\nexport function getOptions(opts) {\n  let options = {}\n\n  for (let opt in defaultOptions)\n    options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]\n\n  if (options.ecmaVersion >= 2015)\n    options.ecmaVersion -= 2009\n\n  if (options.allowReserved == null)\n    options.allowReserved = options.ecmaVersion < 5\n\n  if (isArray(options.onToken)) {\n    let tokens = options.onToken\n    options.onToken = (token) => tokens.push(token)\n  }\n  if (isArray(options.onComment))\n    options.onComment = pushComment(options, options.onComment)\n\n  return options\n}\n\nfunction pushComment(options, array) {\n  return function(block, text, start, end, startLoc, endLoc) {\n    let comment = {\n      type: block ? \"Block\" : \"Line\",\n      value: text,\n      start: start,\n      end: end\n    }\n    if (options.locations)\n      comment.loc = new SourceLocation(this, startLoc, endLoc)\n    if (options.ranges)\n      comment.range = [start, end]\n    array.push(comment)\n  }\n}\n","// Each scope gets a bitset that may contain these flags\nexport const\n    SCOPE_TOP = 1,\n    SCOPE_FUNCTION = 2,\n    SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n    SCOPE_ASYNC = 4,\n    SCOPE_GENERATOR = 8,\n    SCOPE_ARROW = 16,\n    SCOPE_SIMPLE_CATCH = 32,\n    SCOPE_SUPER = 64,\n    SCOPE_DIRECT_SUPER = 128\n\nexport function functionFlags(async, generator) {\n  return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal and declareName to determine the type of a binding\nexport const\n    BIND_NONE = 0, // Not a binding\n    BIND_VAR = 1, // Var-style binding\n    BIND_LEXICAL = 2, // Let- or const-style binding\n    BIND_FUNCTION = 3, // Function declaration\n    BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n    BIND_OUTSIDE = 5 // Special case for function names as bound inside the function\n","import {reservedWords, keywords} from \"./identifier\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\nimport {getOptions} from \"./options\"\nimport {wordsRegexp} from \"./util\"\nimport {SCOPE_TOP, SCOPE_FUNCTION, SCOPE_ASYNC, SCOPE_GENERATOR, SCOPE_SUPER, SCOPE_DIRECT_SUPER} from \"./scopeflags\"\n\nexport class Parser {\n  constructor(options, input, startPos) {\n    this.options = options = getOptions(options)\n    this.sourceFile = options.sourceFile\n    this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5])\n    let reserved = \"\"\n    if (!options.allowReserved) {\n      for (let v = options.ecmaVersion;; v--)\n        if (reserved = reservedWords[v]) break\n      if (options.sourceType === \"module\") reserved += \" await\"\n    }\n    this.reservedWords = wordsRegexp(reserved)\n    let reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict\n    this.reservedWordsStrict = wordsRegexp(reservedStrict)\n    this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind)\n    this.input = String(input)\n\n    // Used to signal to callers of `readWord1` whether the word\n    // contained any escape sequences. This is needed because words with\n    // escape sequences must not be interpreted as keywords.\n    this.containsEsc = false\n\n    // Set up token state\n\n    // The current position of the tokenizer in the input.\n    if (startPos) {\n      this.pos = startPos\n      this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1\n      this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length\n    } else {\n      this.pos = this.lineStart = 0\n      this.curLine = 1\n    }\n\n    // Properties of the current token:\n    // Its type\n    this.type = tt.eof\n    // For tokens that include more information than their type, the value\n    this.value = null\n    // Its start and end offset\n    this.start = this.end = this.pos\n    // And, if locations are used, the {line, column} object\n    // corresponding to those offsets\n    this.startLoc = this.endLoc = this.curPosition()\n\n    // Position information for the previous token\n    this.lastTokEndLoc = this.lastTokStartLoc = null\n    this.lastTokStart = this.lastTokEnd = this.pos\n\n    // The context stack is used to superficially track syntactic\n    // context to predict whether a regular expression is allowed in a\n    // given position.\n    this.context = this.initialContext()\n    this.exprAllowed = true\n\n    // Figure out if it's a module code.\n    this.inModule = options.sourceType === \"module\"\n    this.strict = this.inModule || this.strictDirective(this.pos)\n\n    // Used to signify the start of a potential arrow function\n    this.potentialArrowAt = -1\n\n    // Positions to delayed-check that yield/await does not exist in default parameters.\n    this.yieldPos = this.awaitPos = this.awaitIdentPos = 0\n    // Labels in scope.\n    this.labels = []\n    // Thus-far undefined exports.\n    this.undefinedExports = {}\n\n    // If enabled, skip leading hashbang line.\n    if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n      this.skipLineComment(2)\n\n    // Scope tracking for duplicate variable names (see scope.js)\n    this.scopeStack = []\n    this.enterScope(SCOPE_TOP)\n\n    // For RegExp validation\n    this.regexpState = null\n  }\n\n  parse() {\n    let node = this.options.program || this.startNode()\n    this.nextToken()\n    return this.parseTopLevel(node)\n  }\n\n  get inFunction() { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }\n  get inGenerator() { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }\n  get inAsync() { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }\n  get allowSuper() { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 }\n  get allowDirectSuper() { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }\n  get treatFunctionsAsVar() { return this.treatFunctionsAsVarInScope(this.currentScope()) }\n\n  // Switch to a getter for 7.0.0.\n  inNonArrowFunction() { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 }\n\n  static extend(...plugins) {\n    let cls = this\n    for (let i = 0; i < plugins.length; i++) cls = plugins[i](cls)\n    return cls\n  }\n\n  static parse(input, options) {\n    return new this(options, input).parse()\n  }\n\n  static parseExpressionAt(input, pos, options) {\n    let parser = new this(options, input, pos)\n    parser.nextToken()\n    return parser.parseExpression()\n  }\n\n  static tokenizer(input, options) {\n    return new this(options, input)\n  }\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\n\nconst pp = Parser.prototype\n\n// ## Parser utilities\n\nconst literal = /^(?:'((?:\\\\.|[^'])*?)'|\"((?:\\\\.|[^\"])*?)\")/\npp.strictDirective = function(start) {\n  for (;;) {\n    // Try to find string literal.\n    skipWhiteSpace.lastIndex = start\n    start += skipWhiteSpace.exec(this.input)[0].length\n    let match = literal.exec(this.input.slice(start))\n    if (!match) return false\n    if ((match[1] || match[2]) === \"use strict\") return true\n    start += match[0].length\n\n    // Skip semicolon, if any.\n    skipWhiteSpace.lastIndex = start\n    start += skipWhiteSpace.exec(this.input)[0].length\n    if (this.input[start] === \";\")\n      start++\n  }\n}\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp.eat = function(type) {\n  if (this.type === type) {\n    this.next()\n    return true\n  } else {\n    return false\n  }\n}\n\n// Tests whether parsed token is a contextual keyword.\n\npp.isContextual = function(name) {\n  return this.type === tt.name && this.value === name && !this.containsEsc\n}\n\n// Consumes contextual keyword if possible.\n\npp.eatContextual = function(name) {\n  if (!this.isContextual(name)) return false\n  this.next()\n  return true\n}\n\n// Asserts that following token is given contextual keyword.\n\npp.expectContextual = function(name) {\n  if (!this.eatContextual(name)) this.unexpected()\n}\n\n// Test whether a semicolon can be inserted at the current position.\n\npp.canInsertSemicolon = function() {\n  return this.type === tt.eof ||\n    this.type === tt.braceR ||\n    lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\npp.insertSemicolon = function() {\n  if (this.canInsertSemicolon()) {\n    if (this.options.onInsertedSemicolon)\n      this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc)\n    return true\n  }\n}\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp.semicolon = function() {\n  if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected()\n}\n\npp.afterTrailingComma = function(tokType, notNext) {\n  if (this.type === tokType) {\n    if (this.options.onTrailingComma)\n      this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc)\n    if (!notNext)\n      this.next()\n    return true\n  }\n}\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp.expect = function(type) {\n  this.eat(type) || this.unexpected()\n}\n\n// Raise an unexpected token error.\n\npp.unexpected = function(pos) {\n  this.raise(pos != null ? pos : this.start, \"Unexpected token\")\n}\n\nexport function DestructuringErrors() {\n  this.shorthandAssign =\n  this.trailingComma =\n  this.parenthesizedAssign =\n  this.parenthesizedBind =\n  this.doubleProto =\n    -1\n}\n\npp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n  if (!refDestructuringErrors) return\n  if (refDestructuringErrors.trailingComma > -1)\n    this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\")\n  let parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind\n  if (parens > -1) this.raiseRecoverable(parens, \"Parenthesized pattern\")\n}\n\npp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n  if (!refDestructuringErrors) return false\n  let {shorthandAssign, doubleProto} = refDestructuringErrors\n  if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0\n  if (shorthandAssign >= 0)\n    this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\")\n  if (doubleProto >= 0)\n    this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\")\n}\n\npp.checkYieldAwaitInDefaultParams = function() {\n  if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n    this.raise(this.yieldPos, \"Yield expression cannot be a default value\")\n  if (this.awaitPos)\n    this.raise(this.awaitPos, \"Await expression cannot be a default value\")\n}\n\npp.isSimpleAssignTarget = function(expr) {\n  if (expr.type === \"ParenthesizedExpression\")\n    return this.isSimpleAssignTarget(expr.expression)\n  return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\nimport {isIdentifierStart, isIdentifierChar, keywordRelationalOperator} from \"./identifier\"\nimport {has} from \"./util\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {functionFlags, SCOPE_SIMPLE_CATCH, BIND_SIMPLE_CATCH, BIND_LEXICAL, BIND_VAR, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node.  Optionally takes a\n// `program` argument.  If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp.parseTopLevel = function(node) {\n  let exports = {}\n  if (!node.body) node.body = []\n  while (this.type !== tt.eof) {\n    let stmt = this.parseStatement(null, true, exports)\n    node.body.push(stmt)\n  }\n  if (this.inModule)\n    for (let name of Object.keys(this.undefinedExports))\n      this.raiseRecoverable(this.undefinedExports[name].start, `Export '${name}' is not defined`)\n  this.adaptDirectivePrologue(node.body)\n  this.next()\n  if (this.options.ecmaVersion >= 6) {\n    node.sourceType = this.options.sourceType\n  }\n  return this.finishNode(node, \"Program\")\n}\n\nconst loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"}\n\npp.isLet = function(context) {\n  if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) return false\n  skipWhiteSpace.lastIndex = this.pos\n  let skip = skipWhiteSpace.exec(this.input)\n  let next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next)\n  // For ambiguous cases, determine if a LexicalDeclaration (or only a\n  // Statement) is allowed here. If context is not empty then only a Statement\n  // is allowed. However, `let [` is an explicit negative lookahead for\n  // ExpressionStatement, so special-case it first.\n  if (nextCh === 91) return true // '['\n  if (context) return false\n\n  if (nextCh === 123) return true // '{'\n  if (isIdentifierStart(nextCh, true)) {\n    let pos = next + 1\n    while (isIdentifierChar(this.input.charCodeAt(pos), true)) ++pos\n    let ident = this.input.slice(next, pos)\n    if (!keywordRelationalOperator.test(ident)) return true\n  }\n  return false\n}\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp.isAsyncFunction = function() {\n  if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n    return false\n\n  skipWhiteSpace.lastIndex = this.pos\n  let skip = skipWhiteSpace.exec(this.input)\n  let next = this.pos + skip[0].length\n  return !lineBreak.test(this.input.slice(this.pos, next)) &&\n    this.input.slice(next, next + 8) === \"function\" &&\n    (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))\n}\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp.parseStatement = function(context, topLevel, exports) {\n  let starttype = this.type, node = this.startNode(), kind\n\n  if (this.isLet(context)) {\n    starttype = tt._var\n    kind = \"let\"\n  }\n\n  // Most types of statements are recognized by the keyword they\n  // start with. Many are trivial to parse, some require a bit of\n  // complexity.\n\n  switch (starttype) {\n  case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n  case tt._debugger: return this.parseDebuggerStatement(node)\n  case tt._do: return this.parseDoStatement(node)\n  case tt._for: return this.parseForStatement(node)\n  case tt._function:\n    // Function as sole body of either an if statement or a labeled statement\n    // works, but not when it is part of a labeled statement that is the sole\n    // body of an if statement.\n    if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) this.unexpected()\n    return this.parseFunctionStatement(node, false, !context)\n  case tt._class:\n    if (context) this.unexpected()\n    return this.parseClass(node, true)\n  case tt._if: return this.parseIfStatement(node)\n  case tt._return: return this.parseReturnStatement(node)\n  case tt._switch: return this.parseSwitchStatement(node)\n  case tt._throw: return this.parseThrowStatement(node)\n  case tt._try: return this.parseTryStatement(node)\n  case tt._const: case tt._var:\n    kind = kind || this.value\n    if (context && kind !== \"var\") this.unexpected()\n    return this.parseVarStatement(node, kind)\n  case tt._while: return this.parseWhileStatement(node)\n  case tt._with: return this.parseWithStatement(node)\n  case tt.braceL: return this.parseBlock(true, node)\n  case tt.semi: return this.parseEmptyStatement(node)\n  case tt._export:\n  case tt._import:\n    if (!this.options.allowImportExportEverywhere) {\n      if (!topLevel)\n        this.raise(this.start, \"'import' and 'export' may only appear at the top level\")\n      if (!this.inModule)\n        this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\")\n    }\n    return starttype === tt._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n  default:\n    if (this.isAsyncFunction()) {\n      if (context) this.unexpected()\n      this.next()\n      return this.parseFunctionStatement(node, true, !context)\n    }\n\n    let maybeName = this.value, expr = this.parseExpression()\n    if (starttype === tt.name && expr.type === \"Identifier\" && this.eat(tt.colon))\n      return this.parseLabeledStatement(node, maybeName, expr, context)\n    else return this.parseExpressionStatement(node, expr)\n  }\n}\n\npp.parseBreakContinueStatement = function(node, keyword) {\n  let isBreak = keyword === \"break\"\n  this.next()\n  if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null\n  else if (this.type !== tt.name) this.unexpected()\n  else {\n    node.label = this.parseIdent()\n    this.semicolon()\n  }\n\n  // Verify that there is an actual destination to break or\n  // continue to.\n  let i = 0\n  for (; i < this.labels.length; ++i) {\n    let lab = this.labels[i]\n    if (node.label == null || lab.name === node.label.name) {\n      if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break\n      if (node.label && isBreak) break\n    }\n  }\n  if (i === this.labels.length) this.raise(node.start, \"Unsyntactic \" + keyword)\n  return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n}\n\npp.parseDebuggerStatement = function(node) {\n  this.next()\n  this.semicolon()\n  return this.finishNode(node, \"DebuggerStatement\")\n}\n\npp.parseDoStatement = function(node) {\n  this.next()\n  this.labels.push(loopLabel)\n  node.body = this.parseStatement(\"do\")\n  this.labels.pop()\n  this.expect(tt._while)\n  node.test = this.parseParenExpression()\n  if (this.options.ecmaVersion >= 6)\n    this.eat(tt.semi)\n  else\n    this.semicolon()\n  return this.finishNode(node, \"DoWhileStatement\")\n}\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp.parseForStatement = function(node) {\n  this.next()\n  let awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual(\"await\")) ? this.lastTokStart : -1\n  this.labels.push(loopLabel)\n  this.enterScope(0)\n  this.expect(tt.parenL)\n  if (this.type === tt.semi) {\n    if (awaitAt > -1) this.unexpected(awaitAt)\n    return this.parseFor(node, null)\n  }\n  let isLet = this.isLet()\n  if (this.type === tt._var || this.type === tt._const || isLet) {\n    let init = this.startNode(), kind = isLet ? \"let\" : this.value\n    this.next()\n    this.parseVar(init, true, kind)\n    this.finishNode(init, \"VariableDeclaration\")\n    if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1 &&\n        !(kind !== \"var\" && init.declarations[0].init)) {\n      if (this.options.ecmaVersion >= 9) {\n        if (this.type === tt._in) {\n          if (awaitAt > -1) this.unexpected(awaitAt)\n        } else node.await = awaitAt > -1\n      }\n      return this.parseForIn(node, init)\n    }\n    if (awaitAt > -1) this.unexpected(awaitAt)\n    return this.parseFor(node, init)\n  }\n  let refDestructuringErrors = new DestructuringErrors\n  let init = this.parseExpression(true, refDestructuringErrors)\n  if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n    if (this.options.ecmaVersion >= 9) {\n      if (this.type === tt._in) {\n        if (awaitAt > -1) this.unexpected(awaitAt)\n      } else node.await = awaitAt > -1\n    }\n    this.toAssignable(init, false, refDestructuringErrors)\n    this.checkLVal(init)\n    return this.parseForIn(node, init)\n  } else {\n    this.checkExpressionErrors(refDestructuringErrors, true)\n  }\n  if (awaitAt > -1) this.unexpected(awaitAt)\n  return this.parseFor(node, init)\n}\n\npp.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n  this.next()\n  return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n}\n\npp.parseIfStatement = function(node) {\n  this.next()\n  node.test = this.parseParenExpression()\n  // allow function declarations in branches, but only in non-strict mode\n  node.consequent = this.parseStatement(\"if\")\n  node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null\n  return this.finishNode(node, \"IfStatement\")\n}\n\npp.parseReturnStatement = function(node) {\n  if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n    this.raise(this.start, \"'return' outside of function\")\n  this.next()\n\n  // In `return` (and `break`/`continue`), the keywords with\n  // optional arguments, we eagerly look for a semicolon or the\n  // possibility to insert one.\n\n  if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null\n  else { node.argument = this.parseExpression(); this.semicolon() }\n  return this.finishNode(node, \"ReturnStatement\")\n}\n\npp.parseSwitchStatement = function(node) {\n  this.next()\n  node.discriminant = this.parseParenExpression()\n  node.cases = []\n  this.expect(tt.braceL)\n  this.labels.push(switchLabel)\n  this.enterScope(0)\n\n  // Statements under must be grouped (by label) in SwitchCase\n  // nodes. `cur` is used to keep the node that we are currently\n  // adding statements to.\n\n  let cur\n  for (let sawDefault = false; this.type !== tt.braceR;) {\n    if (this.type === tt._case || this.type === tt._default) {\n      let isCase = this.type === tt._case\n      if (cur) this.finishNode(cur, \"SwitchCase\")\n      node.cases.push(cur = this.startNode())\n      cur.consequent = []\n      this.next()\n      if (isCase) {\n        cur.test = this.parseExpression()\n      } else {\n        if (sawDefault) this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\")\n        sawDefault = true\n        cur.test = null\n      }\n      this.expect(tt.colon)\n    } else {\n      if (!cur) this.unexpected()\n      cur.consequent.push(this.parseStatement(null))\n    }\n  }\n  this.exitScope()\n  if (cur) this.finishNode(cur, \"SwitchCase\")\n  this.next() // Closing brace\n  this.labels.pop()\n  return this.finishNode(node, \"SwitchStatement\")\n}\n\npp.parseThrowStatement = function(node) {\n  this.next()\n  if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n    this.raise(this.lastTokEnd, \"Illegal newline after throw\")\n  node.argument = this.parseExpression()\n  this.semicolon()\n  return this.finishNode(node, \"ThrowStatement\")\n}\n\n// Reused empty array added for node fields that are always empty.\n\nconst empty = []\n\npp.parseTryStatement = function(node) {\n  this.next()\n  node.block = this.parseBlock()\n  node.handler = null\n  if (this.type === tt._catch) {\n    let clause = this.startNode()\n    this.next()\n    if (this.eat(tt.parenL)) {\n      clause.param = this.parseBindingAtom()\n      let simple = clause.param.type === \"Identifier\"\n      this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0)\n      this.checkLVal(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL)\n      this.expect(tt.parenR)\n    } else {\n      if (this.options.ecmaVersion < 10) this.unexpected()\n      clause.param = null\n      this.enterScope(0)\n    }\n    clause.body = this.parseBlock(false)\n    this.exitScope()\n    node.handler = this.finishNode(clause, \"CatchClause\")\n  }\n  node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null\n  if (!node.handler && !node.finalizer)\n    this.raise(node.start, \"Missing catch or finally clause\")\n  return this.finishNode(node, \"TryStatement\")\n}\n\npp.parseVarStatement = function(node, kind) {\n  this.next()\n  this.parseVar(node, false, kind)\n  this.semicolon()\n  return this.finishNode(node, \"VariableDeclaration\")\n}\n\npp.parseWhileStatement = function(node) {\n  this.next()\n  node.test = this.parseParenExpression()\n  this.labels.push(loopLabel)\n  node.body = this.parseStatement(\"while\")\n  this.labels.pop()\n  return this.finishNode(node, \"WhileStatement\")\n}\n\npp.parseWithStatement = function(node) {\n  if (this.strict) this.raise(this.start, \"'with' in strict mode\")\n  this.next()\n  node.object = this.parseParenExpression()\n  node.body = this.parseStatement(\"with\")\n  return this.finishNode(node, \"WithStatement\")\n}\n\npp.parseEmptyStatement = function(node) {\n  this.next()\n  return this.finishNode(node, \"EmptyStatement\")\n}\n\npp.parseLabeledStatement = function(node, maybeName, expr, context) {\n  for (let label of this.labels)\n    if (label.name === maybeName)\n      this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\")\n  let kind = this.type.isLoop ? \"loop\" : this.type === tt._switch ? \"switch\" : null\n  for (let i = this.labels.length - 1; i >= 0; i--) {\n    let label = this.labels[i]\n    if (label.statementStart === node.start) {\n      // Update information about previous labels on this node\n      label.statementStart = this.start\n      label.kind = kind\n    } else break\n  }\n  this.labels.push({name: maybeName, kind, statementStart: this.start})\n  node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\")\n  this.labels.pop()\n  node.label = expr\n  return this.finishNode(node, \"LabeledStatement\")\n}\n\npp.parseExpressionStatement = function(node, expr) {\n  node.expression = expr\n  this.semicolon()\n  return this.finishNode(node, \"ExpressionStatement\")\n}\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp.parseBlock = function(createNewLexicalScope = true, node = this.startNode()) {\n  node.body = []\n  this.expect(tt.braceL)\n  if (createNewLexicalScope) this.enterScope(0)\n  while (!this.eat(tt.braceR)) {\n    let stmt = this.parseStatement(null)\n    node.body.push(stmt)\n  }\n  if (createNewLexicalScope) this.exitScope()\n  return this.finishNode(node, \"BlockStatement\")\n}\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp.parseFor = function(node, init) {\n  node.init = init\n  this.expect(tt.semi)\n  node.test = this.type === tt.semi ? null : this.parseExpression()\n  this.expect(tt.semi)\n  node.update = this.type === tt.parenR ? null : this.parseExpression()\n  this.expect(tt.parenR)\n  node.body = this.parseStatement(\"for\")\n  this.exitScope()\n  this.labels.pop()\n  return this.finishNode(node, \"ForStatement\")\n}\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp.parseForIn = function(node, init) {\n  let type = this.type === tt._in ? \"ForInStatement\" : \"ForOfStatement\"\n  this.next()\n  if (type === \"ForInStatement\") {\n    if (init.type === \"AssignmentPattern\" ||\n      (init.type === \"VariableDeclaration\" && init.declarations[0].init != null &&\n       (this.strict || init.declarations[0].id.type !== \"Identifier\")))\n      this.raise(init.start, \"Invalid assignment in for-in loop head\")\n  }\n  node.left = init\n  node.right = type === \"ForInStatement\" ? this.parseExpression() : this.parseMaybeAssign()\n  this.expect(tt.parenR)\n  node.body = this.parseStatement(\"for\")\n  this.exitScope()\n  this.labels.pop()\n  return this.finishNode(node, type)\n}\n\n// Parse a list of variable declarations.\n\npp.parseVar = function(node, isFor, kind) {\n  node.declarations = []\n  node.kind = kind\n  for (;;) {\n    let decl = this.startNode()\n    this.parseVarId(decl, kind)\n    if (this.eat(tt.eq)) {\n      decl.init = this.parseMaybeAssign(isFor)\n    } else if (kind === \"const\" && !(this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n      this.unexpected()\n    } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === tt._in || this.isContextual(\"of\")))) {\n      this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\")\n    } else {\n      decl.init = null\n    }\n    node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"))\n    if (!this.eat(tt.comma)) break\n  }\n  return node\n}\n\npp.parseVarId = function(decl, kind) {\n  if ((kind === \"const\" || kind === \"let\") && this.isContextual(\"let\")) {\n    this.raiseRecoverable(this.start, \"let is disallowed as a lexically bound name\")\n  }\n  decl.id = this.parseBindingAtom()\n  this.checkLVal(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false)\n}\n\nconst FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n    if (this.type === tt.star && (statement & FUNC_HANGING_STATEMENT))\n      this.unexpected()\n    node.generator = this.eat(tt.star)\n  }\n  if (this.options.ecmaVersion >= 8)\n    node.async = !!isAsync\n\n  if (statement & FUNC_STATEMENT) {\n    node.id = (statement & FUNC_NULLABLE_ID) && this.type !== tt.name ? null : this.parseIdent()\n    if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n      // If it is a regular function declaration in sloppy mode, then it is\n      // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n      // mode depends on properties of the current scope (see\n      // treatFunctionsAsVar).\n      this.checkLVal(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION)\n  }\n\n  let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n  this.enterScope(functionFlags(node.async, node.generator))\n\n  if (!(statement & FUNC_STATEMENT))\n    node.id = this.type === tt.name ? this.parseIdent() : null\n\n  this.parseFunctionParams(node)\n  this.parseFunctionBody(node, allowExpressionBody, false)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n}\n\npp.parseFunctionParams = function(node) {\n  this.expect(tt.parenL)\n  node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n  this.checkYieldAwaitInDefaultParams()\n}\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp.parseClass = function(node, isStatement) {\n  this.next()\n\n  // ecma-262 14.6 Class Definitions\n  // A class definition is always strict mode code.\n  const oldStrict = this.strict\n  this.strict = true\n\n  this.parseClassId(node, isStatement)\n  this.parseClassSuper(node)\n  let classBody = this.startNode()\n  let hadConstructor = false\n  classBody.body = []\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    const element = this.parseClassElement(node.superClass !== null)\n    if (element) {\n      classBody.body.push(element)\n      if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n        if (hadConstructor) this.raise(element.start, \"Duplicate constructor in the same class\")\n        hadConstructor = true\n      }\n    }\n  }\n  node.body = this.finishNode(classBody, \"ClassBody\")\n  this.strict = oldStrict\n  return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n}\n\npp.parseClassElement = function(constructorAllowsSuper) {\n  if (this.eat(tt.semi)) return null\n\n  let method = this.startNode()\n  const tryContextual = (k, noLineBreak = false) => {\n    const start = this.start, startLoc = this.startLoc\n    if (!this.eatContextual(k)) return false\n    if (this.type !== tt.parenL && (!noLineBreak || !this.canInsertSemicolon())) return true\n    if (method.key) this.unexpected()\n    method.computed = false\n    method.key = this.startNodeAt(start, startLoc)\n    method.key.name = k\n    this.finishNode(method.key, \"Identifier\")\n    return false\n  }\n\n  method.kind = \"method\"\n  method.static = tryContextual(\"static\")\n  let isGenerator = this.eat(tt.star)\n  let isAsync = false\n  if (!isGenerator) {\n    if (this.options.ecmaVersion >= 8 && tryContextual(\"async\", true)) {\n      isAsync = true\n      isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n    } else if (tryContextual(\"get\")) {\n      method.kind = \"get\"\n    } else if (tryContextual(\"set\")) {\n      method.kind = \"set\"\n    }\n  }\n  if (!method.key) this.parsePropertyName(method)\n  let {key} = method\n  let allowsDirectSuper = false\n  if (!method.computed && !method.static && (key.type === \"Identifier\" && key.name === \"constructor\" ||\n      key.type === \"Literal\" && key.value === \"constructor\")) {\n    if (method.kind !== \"method\") this.raise(key.start, \"Constructor can't have get/set modifier\")\n    if (isGenerator) this.raise(key.start, \"Constructor can't be a generator\")\n    if (isAsync) this.raise(key.start, \"Constructor can't be an async method\")\n    method.kind = \"constructor\"\n    allowsDirectSuper = constructorAllowsSuper\n  } else if (method.static && key.type === \"Identifier\" && key.name === \"prototype\") {\n    this.raise(key.start, \"Classes may not have a static property named prototype\")\n  }\n  this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper)\n  if (method.kind === \"get\" && method.value.params.length !== 0)\n    this.raiseRecoverable(method.value.start, \"getter should have no params\")\n  if (method.kind === \"set\" && method.value.params.length !== 1)\n    this.raiseRecoverable(method.value.start, \"setter should have exactly one param\")\n  if (method.kind === \"set\" && method.value.params[0].type === \"RestElement\")\n    this.raiseRecoverable(method.value.params[0].start, \"Setter cannot use rest params\")\n  return method\n}\n\npp.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n  method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper)\n  return this.finishNode(method, \"MethodDefinition\")\n}\n\npp.parseClassId = function(node, isStatement) {\n  if (this.type === tt.name) {\n    node.id = this.parseIdent()\n    if (isStatement)\n      this.checkLVal(node.id, BIND_LEXICAL, false)\n  } else {\n    if (isStatement === true)\n      this.unexpected()\n    node.id = null\n  }\n}\n\npp.parseClassSuper = function(node) {\n  node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null\n}\n\n// Parses module export declaration.\n\npp.parseExport = function(node, exports) {\n  this.next()\n  // export * from '...'\n  if (this.eat(tt.star)) {\n    this.expectContextual(\"from\")\n    if (this.type !== tt.string) this.unexpected()\n    node.source = this.parseExprAtom()\n    this.semicolon()\n    return this.finishNode(node, \"ExportAllDeclaration\")\n  }\n  if (this.eat(tt._default)) { // export default ...\n    this.checkExport(exports, \"default\", this.lastTokStart)\n    let isAsync\n    if (this.type === tt._function || (isAsync = this.isAsyncFunction())) {\n      let fNode = this.startNode()\n      this.next()\n      if (isAsync) this.next()\n      node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n    } else if (this.type === tt._class) {\n      let cNode = this.startNode()\n      node.declaration = this.parseClass(cNode, \"nullableID\")\n    } else {\n      node.declaration = this.parseMaybeAssign()\n      this.semicolon()\n    }\n    return this.finishNode(node, \"ExportDefaultDeclaration\")\n  }\n  // export var|const|let|function|class ...\n  if (this.shouldParseExportStatement()) {\n    node.declaration = this.parseStatement(null)\n    if (node.declaration.type === \"VariableDeclaration\")\n      this.checkVariableExport(exports, node.declaration.declarations)\n    else\n      this.checkExport(exports, node.declaration.id.name, node.declaration.id.start)\n    node.specifiers = []\n    node.source = null\n  } else { // export { x, y as z } [from '...']\n    node.declaration = null\n    node.specifiers = this.parseExportSpecifiers(exports)\n    if (this.eatContextual(\"from\")) {\n      if (this.type !== tt.string) this.unexpected()\n      node.source = this.parseExprAtom()\n    } else {\n      for (let spec of node.specifiers) {\n        // check for keywords used as local names\n        this.checkUnreserved(spec.local)\n        // check if export is defined\n        this.checkLocalExport(spec.local)\n      }\n\n      node.source = null\n    }\n    this.semicolon()\n  }\n  return this.finishNode(node, \"ExportNamedDeclaration\")\n}\n\npp.checkExport = function(exports, name, pos) {\n  if (!exports) return\n  if (has(exports, name))\n    this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\")\n  exports[name] = true\n}\n\npp.checkPatternExport = function(exports, pat) {\n  let type = pat.type\n  if (type === \"Identifier\")\n    this.checkExport(exports, pat.name, pat.start)\n  else if (type === \"ObjectPattern\")\n    for (let prop of pat.properties)\n      this.checkPatternExport(exports, prop)\n  else if (type === \"ArrayPattern\")\n    for (let elt of pat.elements) {\n      if (elt) this.checkPatternExport(exports, elt)\n    }\n  else if (type === \"Property\")\n    this.checkPatternExport(exports, pat.value)\n  else if (type === \"AssignmentPattern\")\n    this.checkPatternExport(exports, pat.left)\n  else if (type === \"RestElement\")\n    this.checkPatternExport(exports, pat.argument)\n  else if (type === \"ParenthesizedExpression\")\n    this.checkPatternExport(exports, pat.expression)\n}\n\npp.checkVariableExport = function(exports, decls) {\n  if (!exports) return\n  for (let decl of decls)\n    this.checkPatternExport(exports, decl.id)\n}\n\npp.shouldParseExportStatement = function() {\n  return this.type.keyword === \"var\" ||\n    this.type.keyword === \"const\" ||\n    this.type.keyword === \"class\" ||\n    this.type.keyword === \"function\" ||\n    this.isLet() ||\n    this.isAsyncFunction()\n}\n\n// Parses a comma-separated list of module exports.\n\npp.parseExportSpecifiers = function(exports) {\n  let nodes = [], first = true\n  // export { x, y as z } [from '...']\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    let node = this.startNode()\n    node.local = this.parseIdent(true)\n    node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local\n    this.checkExport(exports, node.exported.name, node.exported.start)\n    nodes.push(this.finishNode(node, \"ExportSpecifier\"))\n  }\n  return nodes\n}\n\n// Parses import declaration.\n\npp.parseImport = function(node) {\n  this.next()\n  // import '...'\n  if (this.type === tt.string) {\n    node.specifiers = empty\n    node.source = this.parseExprAtom()\n  } else {\n    node.specifiers = this.parseImportSpecifiers()\n    this.expectContextual(\"from\")\n    node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()\n  }\n  this.semicolon()\n  return this.finishNode(node, \"ImportDeclaration\")\n}\n\n// Parses a comma-separated list of module imports.\n\npp.parseImportSpecifiers = function() {\n  let nodes = [], first = true\n  if (this.type === tt.name) {\n    // import defaultObj, { x, y as z } from '...'\n    let node = this.startNode()\n    node.local = this.parseIdent()\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"))\n    if (!this.eat(tt.comma)) return nodes\n  }\n  if (this.type === tt.star) {\n    let node = this.startNode()\n    this.next()\n    this.expectContextual(\"as\")\n    node.local = this.parseIdent()\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportNamespaceSpecifier\"))\n    return nodes\n  }\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    let node = this.startNode()\n    node.imported = this.parseIdent(true)\n    if (this.eatContextual(\"as\")) {\n      node.local = this.parseIdent()\n    } else {\n      this.checkUnreserved(node.imported)\n      node.local = node.imported\n    }\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportSpecifier\"))\n  }\n  return nodes\n}\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp.adaptDirectivePrologue = function(statements) {\n  for (let i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n    statements[i].directive = statements[i].expression.raw.slice(1, -1)\n  }\n}\npp.isDirectiveCandidate = function(statement) {\n  return (\n    statement.type === \"ExpressionStatement\" &&\n    statement.expression.type === \"Literal\" &&\n    typeof statement.expression.value === \"string\" &&\n    // Reject parenthesized strings.\n    (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n  )\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {has} from \"./util\"\nimport {BIND_NONE, BIND_OUTSIDE} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp.toAssignable = function(node, isBinding, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 6 && node) {\n    switch (node.type) {\n    case \"Identifier\":\n      if (this.inAsync && node.name === \"await\")\n        this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\")\n      break\n\n    case \"ObjectPattern\":\n    case \"ArrayPattern\":\n    case \"RestElement\":\n      break\n\n    case \"ObjectExpression\":\n      node.type = \"ObjectPattern\"\n      if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n      for (let prop of node.properties) {\n        this.toAssignable(prop, isBinding)\n        // Early error:\n        //   AssignmentRestProperty[Yield, Await] :\n        //     `...` DestructuringAssignmentTarget[Yield, Await]\n        //\n        //   It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n        if (\n          prop.type === \"RestElement\" &&\n          (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n        ) {\n          this.raise(prop.argument.start, \"Unexpected token\")\n        }\n      }\n      break\n\n    case \"Property\":\n      // AssignmentProperty has type === \"Property\"\n      if (node.kind !== \"init\") this.raise(node.key.start, \"Object pattern can't contain getter or setter\")\n      this.toAssignable(node.value, isBinding)\n      break\n\n    case \"ArrayExpression\":\n      node.type = \"ArrayPattern\"\n      if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n      this.toAssignableList(node.elements, isBinding)\n      break\n\n    case \"SpreadElement\":\n      node.type = \"RestElement\"\n      this.toAssignable(node.argument, isBinding)\n      if (node.argument.type === \"AssignmentPattern\")\n        this.raise(node.argument.start, \"Rest elements cannot have a default value\")\n      break\n\n    case \"AssignmentExpression\":\n      if (node.operator !== \"=\") this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\")\n      node.type = \"AssignmentPattern\"\n      delete node.operator\n      this.toAssignable(node.left, isBinding)\n      // falls through to AssignmentPattern\n\n    case \"AssignmentPattern\":\n      break\n\n    case \"ParenthesizedExpression\":\n      this.toAssignable(node.expression, isBinding, refDestructuringErrors)\n      break\n\n    case \"MemberExpression\":\n      if (!isBinding) break\n\n    default:\n      this.raise(node.start, \"Assigning to rvalue\")\n    }\n  } else if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n  return node\n}\n\n// Convert list of expression atoms to binding list.\n\npp.toAssignableList = function(exprList, isBinding) {\n  let end = exprList.length\n  for (let i = 0; i < end; i++) {\n    let elt = exprList[i]\n    if (elt) this.toAssignable(elt, isBinding)\n  }\n  if (end) {\n    let last = exprList[end - 1]\n    if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n      this.unexpected(last.argument.start)\n  }\n  return exprList\n}\n\n// Parses spread element.\n\npp.parseSpread = function(refDestructuringErrors) {\n  let node = this.startNode()\n  this.next()\n  node.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n  return this.finishNode(node, \"SpreadElement\")\n}\n\npp.parseRestBinding = function() {\n  let node = this.startNode()\n  this.next()\n\n  // RestElement inside of a function parameter must be an identifier\n  if (this.options.ecmaVersion === 6 && this.type !== tt.name)\n    this.unexpected()\n\n  node.argument = this.parseBindingAtom()\n\n  return this.finishNode(node, \"RestElement\")\n}\n\n// Parses lvalue (assignable) atom.\n\npp.parseBindingAtom = function() {\n  if (this.options.ecmaVersion >= 6) {\n    switch (this.type) {\n    case tt.bracketL:\n      let node = this.startNode()\n      this.next()\n      node.elements = this.parseBindingList(tt.bracketR, true, true)\n      return this.finishNode(node, \"ArrayPattern\")\n\n    case tt.braceL:\n      return this.parseObj(true)\n    }\n  }\n  return this.parseIdent()\n}\n\npp.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n  let elts = [], first = true\n  while (!this.eat(close)) {\n    if (first) first = false\n    else this.expect(tt.comma)\n    if (allowEmpty && this.type === tt.comma) {\n      elts.push(null)\n    } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n      break\n    } else if (this.type === tt.ellipsis) {\n      let rest = this.parseRestBinding()\n      this.parseBindingListItem(rest)\n      elts.push(rest)\n      if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n      this.expect(close)\n      break\n    } else {\n      let elem = this.parseMaybeDefault(this.start, this.startLoc)\n      this.parseBindingListItem(elem)\n      elts.push(elem)\n    }\n  }\n  return elts\n}\n\npp.parseBindingListItem = function(param) {\n  return param\n}\n\n// Parses assignment pattern around given atom if possible.\n\npp.parseMaybeDefault = function(startPos, startLoc, left) {\n  left = left || this.parseBindingAtom()\n  if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left\n  let node = this.startNodeAt(startPos, startLoc)\n  node.left = left\n  node.right = this.parseMaybeAssign()\n  return this.finishNode(node, \"AssignmentPattern\")\n}\n\n// Verify that a node is an lval — something that can be assigned\n// to.\n// bindingType can be either:\n// 'var' indicating that the lval creates a 'var' binding\n// 'let' indicating that the lval creates a lexical ('let' or 'const') binding\n// 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references\n\npp.checkLVal = function(expr, bindingType = BIND_NONE, checkClashes) {\n  switch (expr.type) {\n  case \"Identifier\":\n    if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n      this.raiseRecoverable(expr.start, (bindingType ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\")\n    if (checkClashes) {\n      if (has(checkClashes, expr.name))\n        this.raiseRecoverable(expr.start, \"Argument name clash\")\n      checkClashes[expr.name] = true\n    }\n    if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) this.declareName(expr.name, bindingType, expr.start)\n    break\n\n  case \"MemberExpression\":\n    if (bindingType) this.raiseRecoverable(expr.start, \"Binding member expression\")\n    break\n\n  case \"ObjectPattern\":\n    for (let prop of expr.properties)\n      this.checkLVal(prop, bindingType, checkClashes)\n    break\n\n  case \"Property\":\n    // AssignmentProperty has type === \"Property\"\n    this.checkLVal(expr.value, bindingType, checkClashes)\n    break\n\n  case \"ArrayPattern\":\n    for (let elem of expr.elements) {\n      if (elem) this.checkLVal(elem, bindingType, checkClashes)\n    }\n    break\n\n  case \"AssignmentPattern\":\n    this.checkLVal(expr.left, bindingType, checkClashes)\n    break\n\n  case \"RestElement\":\n    this.checkLVal(expr.argument, bindingType, checkClashes)\n    break\n\n  case \"ParenthesizedExpression\":\n    this.checkLVal(expr.expression, bindingType, checkClashes)\n    break\n\n  default:\n    this.raise(expr.start, (bindingType ? \"Binding\" : \"Assigning to\") + \" rvalue\")\n  }\n}\n","// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {lineBreak} from \"./whitespace\"\nimport {functionFlags, SCOPE_ARROW, SCOPE_SUPER, SCOPE_DIRECT_SUPER, BIND_OUTSIDE, BIND_VAR} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n    return\n  if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n    return\n  let {key} = prop, name\n  switch (key.type) {\n  case \"Identifier\": name = key.name; break\n  case \"Literal\": name = String(key.value); break\n  default: return\n  }\n  let {kind} = prop\n  if (this.options.ecmaVersion >= 6) {\n    if (name === \"__proto__\" && kind === \"init\") {\n      if (propHash.proto) {\n        if (refDestructuringErrors && refDestructuringErrors.doubleProto < 0) refDestructuringErrors.doubleProto = key.start\n        // Backwards-compat kludge. Can be removed in version 6.0\n        else this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\")\n      }\n      propHash.proto = true\n    }\n    return\n  }\n  name = \"$\" + name\n  let other = propHash[name]\n  if (other) {\n    let redefinition\n    if (kind === \"init\") {\n      redefinition = this.strict && other.init || other.get || other.set\n    } else {\n      redefinition = other.init || other[kind]\n    }\n    if (redefinition)\n      this.raiseRecoverable(key.start, \"Redefinition of property\")\n  } else {\n    other = propHash[name] = {\n      init: false,\n      get: false,\n      set: false\n    }\n  }\n  other[kind] = true\n}\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp.parseExpression = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseMaybeAssign(noIn, refDestructuringErrors)\n  if (this.type === tt.comma) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.expressions = [expr]\n    while (this.eat(tt.comma)) node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors))\n    return this.finishNode(node, \"SequenceExpression\")\n  }\n  return expr\n}\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {\n  if (this.isContextual(\"yield\")) {\n    if (this.inGenerator) return this.parseYield(noIn)\n    // The tokenizer will assume an expression is allowed after\n    // `yield`, but this isn't that kind of yield\n    else this.exprAllowed = false\n  }\n\n  let ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldShorthandAssign = -1\n  if (refDestructuringErrors) {\n    oldParenAssign = refDestructuringErrors.parenthesizedAssign\n    oldTrailingComma = refDestructuringErrors.trailingComma\n    oldShorthandAssign = refDestructuringErrors.shorthandAssign\n    refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.shorthandAssign = -1\n  } else {\n    refDestructuringErrors = new DestructuringErrors\n    ownDestructuringErrors = true\n  }\n\n  let startPos = this.start, startLoc = this.startLoc\n  if (this.type === tt.parenL || this.type === tt.name)\n    this.potentialArrowAt = this.start\n  let left = this.parseMaybeConditional(noIn, refDestructuringErrors)\n  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc)\n  if (this.type.isAssign) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.operator = this.value\n    node.left = this.type === tt.eq ? this.toAssignable(left, false, refDestructuringErrors) : left\n    if (!ownDestructuringErrors) DestructuringErrors.call(refDestructuringErrors)\n    refDestructuringErrors.shorthandAssign = -1 // reset because shorthand default was used correctly\n    this.checkLVal(left)\n    this.next()\n    node.right = this.parseMaybeAssign(noIn)\n    return this.finishNode(node, \"AssignmentExpression\")\n  } else {\n    if (ownDestructuringErrors) this.checkExpressionErrors(refDestructuringErrors, true)\n  }\n  if (oldParenAssign > -1) refDestructuringErrors.parenthesizedAssign = oldParenAssign\n  if (oldTrailingComma > -1) refDestructuringErrors.trailingComma = oldTrailingComma\n  if (oldShorthandAssign > -1) refDestructuringErrors.shorthandAssign = oldShorthandAssign\n  return left\n}\n\n// Parse a ternary conditional (`?:`) operator.\n\npp.parseMaybeConditional = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseExprOps(noIn, refDestructuringErrors)\n  if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n  if (this.eat(tt.question)) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.test = expr\n    node.consequent = this.parseMaybeAssign()\n    this.expect(tt.colon)\n    node.alternate = this.parseMaybeAssign(noIn)\n    return this.finishNode(node, \"ConditionalExpression\")\n  }\n  return expr\n}\n\n// Start the precedence parser.\n\npp.parseExprOps = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseMaybeUnary(refDestructuringErrors, false)\n  if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n  return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)\n}\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {\n  let prec = this.type.binop\n  if (prec != null && (!noIn || this.type !== tt._in)) {\n    if (prec > minPrec) {\n      let logical = this.type === tt.logicalOR || this.type === tt.logicalAND\n      let op = this.value\n      this.next()\n      let startPos = this.start, startLoc = this.startLoc\n      let right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn)\n      let node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical)\n      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)\n    }\n  }\n  return left\n}\n\npp.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n  let node = this.startNodeAt(startPos, startLoc)\n  node.left = left\n  node.operator = op\n  node.right = right\n  return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n}\n\n// Parse unary operators, both prefix and postfix.\n\npp.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {\n  let startPos = this.start, startLoc = this.startLoc, expr\n  if (this.isContextual(\"await\") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {\n    expr = this.parseAwait()\n    sawUnary = true\n  } else if (this.type.prefix) {\n    let node = this.startNode(), update = this.type === tt.incDec\n    node.operator = this.value\n    node.prefix = true\n    this.next()\n    node.argument = this.parseMaybeUnary(null, true)\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    if (update) this.checkLVal(node.argument)\n    else if (this.strict && node.operator === \"delete\" &&\n             node.argument.type === \"Identifier\")\n      this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\")\n    else sawUnary = true\n    expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\")\n  } else {\n    expr = this.parseExprSubscripts(refDestructuringErrors)\n    if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n    while (this.type.postfix && !this.canInsertSemicolon()) {\n      let node = this.startNodeAt(startPos, startLoc)\n      node.operator = this.value\n      node.prefix = false\n      node.argument = expr\n      this.checkLVal(expr)\n      this.next()\n      expr = this.finishNode(node, \"UpdateExpression\")\n    }\n  }\n\n  if (!sawUnary && this.eat(tt.starstar))\n    return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false)\n  else\n    return expr\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp.parseExprSubscripts = function(refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseExprAtom(refDestructuringErrors)\n  let skipArrowSubscripts = expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\"\n  if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr\n  let result = this.parseSubscripts(expr, startPos, startLoc)\n  if (refDestructuringErrors && result.type === \"MemberExpression\") {\n    if (refDestructuringErrors.parenthesizedAssign >= result.start) refDestructuringErrors.parenthesizedAssign = -1\n    if (refDestructuringErrors.parenthesizedBind >= result.start) refDestructuringErrors.parenthesizedBind = -1\n  }\n  return result\n}\n\npp.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n  let maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n      this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === \"async\"\n  while (true) {\n    let element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow)\n    if (element === base || element.type === \"ArrowFunctionExpression\") return element\n    base = element\n  }\n}\n\npp.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow) {\n  let computed = this.eat(tt.bracketL)\n  if (computed || this.eat(tt.dot)) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.object = base\n    node.property = computed ? this.parseExpression() : this.parseIdent(true)\n    node.computed = !!computed\n    if (computed) this.expect(tt.bracketR)\n    base = this.finishNode(node, \"MemberExpression\")\n  } else if (!noCalls && this.eat(tt.parenL)) {\n    let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n    this.yieldPos = 0\n    this.awaitPos = 0\n    this.awaitIdentPos = 0\n    let exprList = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors)\n    if (maybeAsyncArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false)\n      this.checkYieldAwaitInDefaultParams()\n      if (this.awaitIdentPos > 0)\n        this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\")\n      this.yieldPos = oldYieldPos\n      this.awaitPos = oldAwaitPos\n      this.awaitIdentPos = oldAwaitIdentPos\n      return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n    }\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    this.yieldPos = oldYieldPos || this.yieldPos\n    this.awaitPos = oldAwaitPos || this.awaitPos\n    this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos\n    let node = this.startNodeAt(startPos, startLoc)\n    node.callee = base\n    node.arguments = exprList\n    base = this.finishNode(node, \"CallExpression\")\n  } else if (this.type === tt.backQuote) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.tag = base\n    node.quasi = this.parseTemplate({isTagged: true})\n    base = this.finishNode(node, \"TaggedTemplateExpression\")\n  }\n  return base\n}\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp.parseExprAtom = function(refDestructuringErrors) {\n  // If a division operator appears in an expression position, the\n  // tokenizer got confused, and we force it to read a regexp instead.\n  if (this.type === tt.slash) this.readRegexp()\n\n  let node, canBeArrow = this.potentialArrowAt === this.start\n  switch (this.type) {\n  case tt._super:\n    if (!this.allowSuper)\n      this.raise(this.start, \"'super' keyword outside a method\")\n    node = this.startNode()\n    this.next()\n    if (this.type === tt.parenL && !this.allowDirectSuper)\n      this.raise(node.start, \"super() call outside constructor of a subclass\")\n    // The `super` keyword can appear at below:\n    // SuperProperty:\n    //     super [ Expression ]\n    //     super . IdentifierName\n    // SuperCall:\n    //     super Arguments\n    if (this.type !== tt.dot && this.type !== tt.bracketL && this.type !== tt.parenL)\n      this.unexpected()\n    return this.finishNode(node, \"Super\")\n\n  case tt._this:\n    node = this.startNode()\n    this.next()\n    return this.finishNode(node, \"ThisExpression\")\n\n  case tt.name:\n    let startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc\n    let id = this.parseIdent(false)\n    if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(tt._function))\n      return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true)\n    if (canBeArrow && !this.canInsertSemicolon()) {\n      if (this.eat(tt.arrow))\n        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false)\n      if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === tt.name && !containsEsc) {\n        id = this.parseIdent(false)\n        if (this.canInsertSemicolon() || !this.eat(tt.arrow))\n          this.unexpected()\n        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n      }\n    }\n    return id\n\n  case tt.regexp:\n    let value = this.value\n    node = this.parseLiteral(value.value)\n    node.regex = {pattern: value.pattern, flags: value.flags}\n    return node\n\n  case tt.num: case tt.string:\n    return this.parseLiteral(this.value)\n\n  case tt._null: case tt._true: case tt._false:\n    node = this.startNode()\n    node.value = this.type === tt._null ? null : this.type === tt._true\n    node.raw = this.type.keyword\n    this.next()\n    return this.finishNode(node, \"Literal\")\n\n  case tt.parenL:\n    let start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow)\n    if (refDestructuringErrors) {\n      if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n        refDestructuringErrors.parenthesizedAssign = start\n      if (refDestructuringErrors.parenthesizedBind < 0)\n        refDestructuringErrors.parenthesizedBind = start\n    }\n    return expr\n\n  case tt.bracketL:\n    node = this.startNode()\n    this.next()\n    node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors)\n    return this.finishNode(node, \"ArrayExpression\")\n\n  case tt.braceL:\n    return this.parseObj(false, refDestructuringErrors)\n\n  case tt._function:\n    node = this.startNode()\n    this.next()\n    return this.parseFunction(node, 0)\n\n  case tt._class:\n    return this.parseClass(this.startNode(), false)\n\n  case tt._new:\n    return this.parseNew()\n\n  case tt.backQuote:\n    return this.parseTemplate()\n\n  default:\n    this.unexpected()\n  }\n}\n\npp.parseLiteral = function(value) {\n  let node = this.startNode()\n  node.value = value\n  node.raw = this.input.slice(this.start, this.end)\n  this.next()\n  return this.finishNode(node, \"Literal\")\n}\n\npp.parseParenExpression = function() {\n  this.expect(tt.parenL)\n  let val = this.parseExpression()\n  this.expect(tt.parenR)\n  return val\n}\n\npp.parseParenAndDistinguishExpression = function(canBeArrow) {\n  let startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8\n  if (this.options.ecmaVersion >= 6) {\n    this.next()\n\n    let innerStartPos = this.start, innerStartLoc = this.startLoc\n    let exprList = [], first = true, lastIsComma = false\n    let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart\n    this.yieldPos = 0\n    this.awaitPos = 0\n    // Do not save awaitIdentPos to allow checking awaits nested in parameters\n    while (this.type !== tt.parenR) {\n      first ? first = false : this.expect(tt.comma)\n      if (allowTrailingComma && this.afterTrailingComma(tt.parenR, true)) {\n        lastIsComma = true\n        break\n      } else if (this.type === tt.ellipsis) {\n        spreadStart = this.start\n        exprList.push(this.parseParenItem(this.parseRestBinding()))\n        if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n        break\n      } else {\n        exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem))\n      }\n    }\n    let innerEndPos = this.start, innerEndLoc = this.startLoc\n    this.expect(tt.parenR)\n\n    if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false)\n      this.checkYieldAwaitInDefaultParams()\n      this.yieldPos = oldYieldPos\n      this.awaitPos = oldAwaitPos\n      return this.parseParenArrowList(startPos, startLoc, exprList)\n    }\n\n    if (!exprList.length || lastIsComma) this.unexpected(this.lastTokStart)\n    if (spreadStart) this.unexpected(spreadStart)\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    this.yieldPos = oldYieldPos || this.yieldPos\n    this.awaitPos = oldAwaitPos || this.awaitPos\n\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc)\n      val.expressions = exprList\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc)\n    } else {\n      val = exprList[0]\n    }\n  } else {\n    val = this.parseParenExpression()\n  }\n\n  if (this.options.preserveParens) {\n    let par = this.startNodeAt(startPos, startLoc)\n    par.expression = val\n    return this.finishNode(par, \"ParenthesizedExpression\")\n  } else {\n    return val\n  }\n}\n\npp.parseParenItem = function(item) {\n  return item\n}\n\npp.parseParenArrowList = function(startPos, startLoc, exprList) {\n  return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n}\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nconst empty = []\n\npp.parseNew = function() {\n  let node = this.startNode()\n  let meta = this.parseIdent(true)\n  if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {\n    node.meta = meta\n    let containsEsc = this.containsEsc\n    node.property = this.parseIdent(true)\n    if (node.property.name !== \"target\" || containsEsc)\n      this.raiseRecoverable(node.property.start, \"The only valid meta property for new is new.target\")\n    if (!this.inNonArrowFunction())\n      this.raiseRecoverable(node.start, \"new.target can only be used in functions\")\n    return this.finishNode(node, \"MetaProperty\")\n  }\n  let startPos = this.start, startLoc = this.startLoc\n  node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true)\n  if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false)\n  else node.arguments = empty\n  return this.finishNode(node, \"NewExpression\")\n}\n\n// Parse template expression.\n\npp.parseTemplateElement = function({isTagged}) {\n  let elem = this.startNode()\n  if (this.type === tt.invalidTemplate) {\n    if (!isTagged) {\n      this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\")\n    }\n    elem.value = {\n      raw: this.value,\n      cooked: null\n    }\n  } else {\n    elem.value = {\n      raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.value\n    }\n  }\n  this.next()\n  elem.tail = this.type === tt.backQuote\n  return this.finishNode(elem, \"TemplateElement\")\n}\n\npp.parseTemplate = function({isTagged = false} = {}) {\n  let node = this.startNode()\n  this.next()\n  node.expressions = []\n  let curElt = this.parseTemplateElement({isTagged})\n  node.quasis = [curElt]\n  while (!curElt.tail) {\n    if (this.type === tt.eof) this.raise(this.pos, \"Unterminated template literal\")\n    this.expect(tt.dollarBraceL)\n    node.expressions.push(this.parseExpression())\n    this.expect(tt.braceR)\n    node.quasis.push(curElt = this.parseTemplateElement({isTagged}))\n  }\n  this.next()\n  return this.finishNode(node, \"TemplateLiteral\")\n}\n\npp.isAsyncProp = function(prop) {\n  return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n    (this.type === tt.name || this.type === tt.num || this.type === tt.string || this.type === tt.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === tt.star)) &&\n    !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\n// Parse an object literal or binding pattern.\n\npp.parseObj = function(isPattern, refDestructuringErrors) {\n  let node = this.startNode(), first = true, propHash = {}\n  node.properties = []\n  this.next()\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    const prop = this.parseProperty(isPattern, refDestructuringErrors)\n    if (!isPattern) this.checkPropClash(prop, propHash, refDestructuringErrors)\n    node.properties.push(prop)\n  }\n  return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n}\n\npp.parseProperty = function(isPattern, refDestructuringErrors) {\n  let prop = this.startNode(), isGenerator, isAsync, startPos, startLoc\n  if (this.options.ecmaVersion >= 9 && this.eat(tt.ellipsis)) {\n    if (isPattern) {\n      prop.argument = this.parseIdent(false)\n      if (this.type === tt.comma) {\n        this.raise(this.start, \"Comma is not permitted after the rest element\")\n      }\n      return this.finishNode(prop, \"RestElement\")\n    }\n    // To disallow parenthesized identifier via `this.toAssignable()`.\n    if (this.type === tt.parenL && refDestructuringErrors) {\n      if (refDestructuringErrors.parenthesizedAssign < 0) {\n        refDestructuringErrors.parenthesizedAssign = this.start\n      }\n      if (refDestructuringErrors.parenthesizedBind < 0) {\n        refDestructuringErrors.parenthesizedBind = this.start\n      }\n    }\n    // Parse argument.\n    prop.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n    // To disallow trailing comma via `this.toAssignable()`.\n    if (this.type === tt.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n      refDestructuringErrors.trailingComma = this.start\n    }\n    // Finish\n    return this.finishNode(prop, \"SpreadElement\")\n  }\n  if (this.options.ecmaVersion >= 6) {\n    prop.method = false\n    prop.shorthand = false\n    if (isPattern || refDestructuringErrors) {\n      startPos = this.start\n      startLoc = this.startLoc\n    }\n    if (!isPattern)\n      isGenerator = this.eat(tt.star)\n  }\n  let containsEsc = this.containsEsc\n  this.parsePropertyName(prop)\n  if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n    isAsync = true\n    isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n    this.parsePropertyName(prop, refDestructuringErrors)\n  } else {\n    isAsync = false\n  }\n  this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc)\n  return this.finishNode(prop, \"Property\")\n}\n\npp.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n  if ((isGenerator || isAsync) && this.type === tt.colon)\n    this.unexpected()\n\n  if (this.eat(tt.colon)) {\n    prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors)\n    prop.kind = \"init\"\n  } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) {\n    if (isPattern) this.unexpected()\n    prop.kind = \"init\"\n    prop.method = true\n    prop.value = this.parseMethod(isGenerator, isAsync)\n  } else if (!isPattern && !containsEsc &&\n             this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n             (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n             (this.type !== tt.comma && this.type !== tt.braceR)) {\n    if (isGenerator || isAsync) this.unexpected()\n    prop.kind = prop.key.name\n    this.parsePropertyName(prop)\n    prop.value = this.parseMethod(false)\n    let paramCount = prop.kind === \"get\" ? 0 : 1\n    if (prop.value.params.length !== paramCount) {\n      let start = prop.value.start\n      if (prop.kind === \"get\")\n        this.raiseRecoverable(start, \"getter should have no params\")\n      else\n        this.raiseRecoverable(start, \"setter should have exactly one param\")\n    } else {\n      if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n        this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\")\n    }\n  } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n    if (isGenerator || isAsync) this.unexpected()\n    this.checkUnreserved(prop.key)\n    if (prop.key.name === \"await\" && !this.awaitIdentPos)\n      this.awaitIdentPos = startPos\n    prop.kind = \"init\"\n    if (isPattern) {\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n    } else if (this.type === tt.eq && refDestructuringErrors) {\n      if (refDestructuringErrors.shorthandAssign < 0)\n        refDestructuringErrors.shorthandAssign = this.start\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n    } else {\n      prop.value = prop.key\n    }\n    prop.shorthand = true\n  } else this.unexpected()\n}\n\npp.parsePropertyName = function(prop) {\n  if (this.options.ecmaVersion >= 6) {\n    if (this.eat(tt.bracketL)) {\n      prop.computed = true\n      prop.key = this.parseMaybeAssign()\n      this.expect(tt.bracketR)\n      return prop.key\n    } else {\n      prop.computed = false\n    }\n  }\n  return prop.key = this.type === tt.num || this.type === tt.string ? this.parseExprAtom() : this.parseIdent(true)\n}\n\n// Initialize empty function node.\n\npp.initFunction = function(node) {\n  node.id = null\n  if (this.options.ecmaVersion >= 6) node.generator = node.expression = false\n  if (this.options.ecmaVersion >= 8) node.async = false\n}\n\n// Parse object or class method.\n\npp.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n  let node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 6)\n    node.generator = isGenerator\n  if (this.options.ecmaVersion >= 8)\n    node.async = !!isAsync\n\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n  this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0))\n\n  this.expect(tt.parenL)\n  node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n  this.checkYieldAwaitInDefaultParams()\n  this.parseFunctionBody(node, false, true)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, \"FunctionExpression\")\n}\n\n// Parse arrow function expression with given parameters.\n\npp.parseArrowExpression = function(node, params, isAsync) {\n  let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n  this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW)\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 8) node.async = !!isAsync\n\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n\n  node.params = this.toAssignableList(params, true)\n  this.parseFunctionBody(node, true, false)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, \"ArrowFunctionExpression\")\n}\n\n// Parse function body and check parameters.\n\npp.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n  let isExpression = isArrowFunction && this.type !== tt.braceL\n  let oldStrict = this.strict, useStrict = false\n\n  if (isExpression) {\n    node.body = this.parseMaybeAssign()\n    node.expression = true\n    this.checkParams(node, false)\n  } else {\n    let nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params)\n    if (!oldStrict || nonSimple) {\n      useStrict = this.strictDirective(this.end)\n      // If this is a strict mode function, verify that argument names\n      // are not repeated, and it does not try to bind the words `eval`\n      // or `arguments`.\n      if (useStrict && nonSimple)\n        this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\")\n    }\n    // Start a new scope with regard to labels and the `inFunction`\n    // flag (restore them to their old value afterwards).\n    let oldLabels = this.labels\n    this.labels = []\n    if (useStrict) this.strict = true\n\n    // Add the params to varDeclaredNames to ensure that an error is thrown\n    // if a let/const declaration in the function clashes with one of the params.\n    this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params))\n    node.body = this.parseBlock(false)\n    node.expression = false\n    this.adaptDirectivePrologue(node.body.body)\n    this.labels = oldLabels\n  }\n  this.exitScope()\n\n  // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n  if (this.strict && node.id) this.checkLVal(node.id, BIND_OUTSIDE)\n  this.strict = oldStrict\n}\n\npp.isSimpleParamList = function(params) {\n  for (let param of params)\n    if (param.type !== \"Identifier\") return false\n  return true\n}\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp.checkParams = function(node, allowDuplicates) {\n  let nameHash = {}\n  for (let param of node.params)\n    this.checkLVal(param, BIND_VAR, allowDuplicates ? null : nameHash)\n}\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n  let elts = [], first = true\n  while (!this.eat(close)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (allowTrailingComma && this.afterTrailingComma(close)) break\n    } else first = false\n\n    let elt\n    if (allowEmpty && this.type === tt.comma)\n      elt = null\n    else if (this.type === tt.ellipsis) {\n      elt = this.parseSpread(refDestructuringErrors)\n      if (refDestructuringErrors && this.type === tt.comma && refDestructuringErrors.trailingComma < 0)\n        refDestructuringErrors.trailingComma = this.start\n    } else {\n      elt = this.parseMaybeAssign(false, refDestructuringErrors)\n    }\n    elts.push(elt)\n  }\n  return elts\n}\n\npp.checkUnreserved = function({start, end, name}) {\n  if (this.inGenerator && name === \"yield\")\n    this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\")\n  if (this.inAsync && name === \"await\")\n    this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\")\n  if (this.keywords.test(name))\n    this.raise(start, `Unexpected keyword '${name}'`)\n  if (this.options.ecmaVersion < 6 &&\n    this.input.slice(start, end).indexOf(\"\\\\\") !== -1) return\n  const re = this.strict ? this.reservedWordsStrict : this.reservedWords\n  if (re.test(name)) {\n    if (!this.inAsync && name === \"await\")\n      this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\")\n    this.raiseRecoverable(start, `The keyword '${name}' is reserved`)\n  }\n}\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp.parseIdent = function(liberal, isBinding) {\n  let node = this.startNode()\n  if (liberal && this.options.allowReserved === \"never\") liberal = false\n  if (this.type === tt.name) {\n    node.name = this.value\n  } else if (this.type.keyword) {\n    node.name = this.type.keyword\n\n    // To fix https://github.com/acornjs/acorn/issues/575\n    // `class` and `function` keywords push new context into this.context.\n    // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n    // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n    if ((node.name === \"class\" || node.name === \"function\") &&\n        (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n      this.context.pop()\n    }\n  } else {\n    this.unexpected()\n  }\n  this.next()\n  this.finishNode(node, \"Identifier\")\n  if (!liberal) {\n    this.checkUnreserved(node)\n    if (node.name === \"await\" && !this.awaitIdentPos)\n      this.awaitIdentPos = node.start\n  }\n  return node\n}\n\n// Parses yield expression inside generator.\n\npp.parseYield = function(noIn) {\n  if (!this.yieldPos) this.yieldPos = this.start\n\n  let node = this.startNode()\n  this.next()\n  if (this.type === tt.semi || this.canInsertSemicolon() || (this.type !== tt.star && !this.type.startsExpr)) {\n    node.delegate = false\n    node.argument = null\n  } else {\n    node.delegate = this.eat(tt.star)\n    node.argument = this.parseMaybeAssign(noIn)\n  }\n  return this.finishNode(node, \"YieldExpression\")\n}\n\npp.parseAwait = function() {\n  if (!this.awaitPos) this.awaitPos = this.start\n\n  let node = this.startNode()\n  this.next()\n  node.argument = this.parseMaybeUnary(null, true)\n  return this.finishNode(node, \"AwaitExpression\")\n}\n","import {Parser} from \"./state\"\nimport {Position, getLineInfo} from \"./locutil\"\n\nconst pp = Parser.prototype\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp.raise = function(pos, message) {\n  let loc = getLineInfo(this.input, pos)\n  message += \" (\" + loc.line + \":\" + loc.column + \")\"\n  let err = new SyntaxError(message)\n  err.pos = pos; err.loc = loc; err.raisedAt = this.pos\n  throw err\n}\n\npp.raiseRecoverable = pp.raise\n\npp.curPosition = function() {\n  if (this.options.locations) {\n    return new Position(this.curLine, this.pos - this.lineStart)\n  }\n}\n","import {Parser} from \"./state\"\nimport {SCOPE_VAR, SCOPE_FUNCTION, SCOPE_TOP, SCOPE_ARROW, SCOPE_SIMPLE_CATCH, BIND_LEXICAL, BIND_SIMPLE_CATCH, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\nclass Scope {\n  constructor(flags) {\n    this.flags = flags\n    // A list of var-declared names in the current lexical scope\n    this.var = []\n    // A list of lexically-declared names in the current lexical scope\n    this.lexical = []\n    // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n    this.functions = []\n  }\n}\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp.enterScope = function(flags) {\n  this.scopeStack.push(new Scope(flags))\n}\n\npp.exitScope = function() {\n  this.scopeStack.pop()\n}\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp.treatFunctionsAsVarInScope = function(scope) {\n  return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n}\n\npp.declareName = function(name, bindingType, pos) {\n  let redeclared = false\n  if (bindingType === BIND_LEXICAL) {\n    const scope = this.currentScope()\n    redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n    scope.lexical.push(name)\n    if (this.inModule && (scope.flags & SCOPE_TOP))\n      delete this.undefinedExports[name]\n  } else if (bindingType === BIND_SIMPLE_CATCH) {\n    const scope = this.currentScope()\n    scope.lexical.push(name)\n  } else if (bindingType === BIND_FUNCTION) {\n    const scope = this.currentScope()\n    if (this.treatFunctionsAsVar)\n      redeclared = scope.lexical.indexOf(name) > -1\n    else\n      redeclared = scope.lexical.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n    scope.functions.push(name)\n  } else {\n    for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n      const scope = this.scopeStack[i]\n      if (scope.lexical.indexOf(name) > -1 && !((scope.flags & SCOPE_SIMPLE_CATCH) && scope.lexical[0] === name) ||\n          !this.treatFunctionsAsVarInScope(scope) && scope.functions.indexOf(name) > -1) {\n        redeclared = true\n        break\n      }\n      scope.var.push(name)\n      if (this.inModule && (scope.flags & SCOPE_TOP))\n        delete this.undefinedExports[name]\n      if (scope.flags & SCOPE_VAR) break\n    }\n  }\n  if (redeclared) this.raiseRecoverable(pos, `Identifier '${name}' has already been declared`)\n}\n\npp.checkLocalExport = function(id) {\n  // scope.functions must be empty as Module code is always strict.\n  if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1) {\n    this.undefinedExports[id.name] = id\n  }\n}\n\npp.currentScope = function() {\n  return this.scopeStack[this.scopeStack.length - 1]\n}\n\npp.currentVarScope = function() {\n  for (let i = this.scopeStack.length - 1;; i--) {\n    let scope = this.scopeStack[i]\n    if (scope.flags & SCOPE_VAR) return scope\n  }\n}\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp.currentThisScope = function() {\n  for (let i = this.scopeStack.length - 1;; i--) {\n    let scope = this.scopeStack[i]\n    if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) return scope\n  }\n}\n","import {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\n\nexport class Node {\n  constructor(parser, pos, loc) {\n    this.type = \"\"\n    this.start = pos\n    this.end = 0\n    if (parser.options.locations)\n      this.loc = new SourceLocation(parser, loc)\n    if (parser.options.directSourceFile)\n      this.sourceFile = parser.options.directSourceFile\n    if (parser.options.ranges)\n      this.range = [pos, 0]\n  }\n}\n\n// Start an AST node, attaching a start offset.\n\nconst pp = Parser.prototype\n\npp.startNode = function() {\n  return new Node(this, this.start, this.startLoc)\n}\n\npp.startNodeAt = function(pos, loc) {\n  return new Node(this, pos, loc)\n}\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n  node.type = type\n  node.end = pos\n  if (this.options.locations)\n    node.loc.end = loc\n  if (this.options.ranges)\n    node.range[1] = pos\n  return node\n}\n\npp.finishNode = function(node, type) {\n  return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n}\n\n// Finish node at given position\n\npp.finishNodeAt = function(node, type, pos, loc) {\n  return finishNodeAt.call(this, node, type, pos, loc)\n}\n","// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport {Parser} from \"./state\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\n\nexport class TokContext {\n  constructor(token, isExpr, preserveSpace, override, generator) {\n    this.token = token\n    this.isExpr = !!isExpr\n    this.preserveSpace = !!preserveSpace\n    this.override = override\n    this.generator = !!generator\n  }\n}\n\nexport const types = {\n  b_stat: new TokContext(\"{\", false),\n  b_expr: new TokContext(\"{\", true),\n  b_tmpl: new TokContext(\"${\", false),\n  p_stat: new TokContext(\"(\", false),\n  p_expr: new TokContext(\"(\", true),\n  q_tmpl: new TokContext(\"`\", true, true, p => p.tryReadTemplateToken()),\n  f_stat: new TokContext(\"function\", false),\n  f_expr: new TokContext(\"function\", true),\n  f_expr_gen: new TokContext(\"function\", true, false, null, true),\n  f_gen: new TokContext(\"function\", false, false, null, true)\n}\n\nconst pp = Parser.prototype\n\npp.initialContext = function() {\n  return [types.b_stat]\n}\n\npp.braceIsBlock = function(prevType) {\n  let parent = this.curContext()\n  if (parent === types.f_expr || parent === types.f_stat)\n    return true\n  if (prevType === tt.colon && (parent === types.b_stat || parent === types.b_expr))\n    return !parent.isExpr\n\n  // The check for `tt.name && exprAllowed` detects whether we are\n  // after a `yield` or `of` construct. See the `updateContext` for\n  // `tt.name`.\n  if (prevType === tt._return || prevType === tt.name && this.exprAllowed)\n    return lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n  if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR || prevType === tt.arrow)\n    return true\n  if (prevType === tt.braceL)\n    return parent === types.b_stat\n  if (prevType === tt._var || prevType === tt._const || prevType === tt.name)\n    return false\n  return !this.exprAllowed\n}\n\npp.inGeneratorContext = function() {\n  for (let i = this.context.length - 1; i >= 1; i--) {\n    let context = this.context[i]\n    if (context.token === \"function\")\n      return context.generator\n  }\n  return false\n}\n\npp.updateContext = function(prevType) {\n  let update, type = this.type\n  if (type.keyword && prevType === tt.dot)\n    this.exprAllowed = false\n  else if (update = type.updateContext)\n    update.call(this, prevType)\n  else\n    this.exprAllowed = type.beforeExpr\n}\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.context.length === 1) {\n    this.exprAllowed = true\n    return\n  }\n  let out = this.context.pop()\n  if (out === types.b_stat && this.curContext().token === \"function\") {\n    out = this.context.pop()\n  }\n  this.exprAllowed = !out.isExpr\n}\n\ntt.braceL.updateContext = function(prevType) {\n  this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr)\n  this.exprAllowed = true\n}\n\ntt.dollarBraceL.updateContext = function() {\n  this.context.push(types.b_tmpl)\n  this.exprAllowed = true\n}\n\ntt.parenL.updateContext = function(prevType) {\n  let statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while\n  this.context.push(statementParens ? types.p_stat : types.p_expr)\n  this.exprAllowed = true\n}\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n}\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (prevType.beforeExpr && prevType !== tt.semi && prevType !== tt._else &&\n      !(prevType === tt._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n      !((prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat))\n    this.context.push(types.f_expr)\n  else\n    this.context.push(types.f_stat)\n  this.exprAllowed = false\n}\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.q_tmpl)\n    this.context.pop()\n  else\n    this.context.push(types.q_tmpl)\n  this.exprAllowed = false\n}\n\ntt.star.updateContext = function(prevType) {\n  if (prevType === tt._function) {\n    let index = this.context.length - 1\n    if (this.context[index] === types.f_expr)\n      this.context[index] = types.f_expr_gen\n    else\n      this.context[index] = types.f_gen\n  }\n  this.exprAllowed = true\n}\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false\n  if (this.options.ecmaVersion >= 6 && prevType !== tt.dot) {\n    if (this.value === \"of\" && !this.exprAllowed ||\n        this.value === \"yield\" && this.inGeneratorContext())\n      allowed = true\n  }\n  this.exprAllowed = allowed\n}\n","import {wordsRegexp} from \"./util.js\"\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nconst ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\"\nconst unicodeBinaryProperties = {\n  9: ecma9BinaryProperties,\n  10: ecma9BinaryProperties + \" Extended_Pictographic\"\n}\n\n// #table-unicode-general-category-values\nconst unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\"\n\n// #table-unicode-script-values\nconst ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\"\nconst unicodeScriptValues = {\n  9: ecma9ScriptValues,\n  10: ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\"\n}\n\nconst data = {}\nfunction buildUnicodeData(ecmaVersion) {\n  let d = data[ecmaVersion] = {\n    binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n    nonBinary: {\n      General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n      Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n    }\n  }\n  d.nonBinary.Script_Extensions = d.nonBinary.Script\n\n  d.nonBinary.gc = d.nonBinary.General_Category\n  d.nonBinary.sc = d.nonBinary.Script\n  d.nonBinary.scx = d.nonBinary.Script_Extensions\n}\nbuildUnicodeData(9)\nbuildUnicodeData(10)\n\nexport default data\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier.js\"\nimport {Parser} from \"./state.js\"\nimport UNICODE_PROPERTY_VALUES from \"./unicode-property-data.js\"\nimport {has} from \"./util.js\"\n\nconst pp = Parser.prototype\n\nexport class RegExpValidationState {\n  constructor(parser) {\n    this.parser = parser\n    this.validFlags = `gim${parser.options.ecmaVersion >= 6 ? \"uy\" : \"\"}${parser.options.ecmaVersion >= 9 ? \"s\" : \"\"}`\n    this.unicodeProperties = UNICODE_PROPERTY_VALUES[parser.options.ecmaVersion >= 10 ? 10 : parser.options.ecmaVersion]\n    this.source = \"\"\n    this.flags = \"\"\n    this.start = 0\n    this.switchU = false\n    this.switchN = false\n    this.pos = 0\n    this.lastIntValue = 0\n    this.lastStringValue = \"\"\n    this.lastAssertionIsQuantifiable = false\n    this.numCapturingParens = 0\n    this.maxBackReference = 0\n    this.groupNames = []\n    this.backReferenceNames = []\n  }\n\n  reset(start, pattern, flags) {\n    const unicode = flags.indexOf(\"u\") !== -1\n    this.start = start | 0\n    this.source = pattern + \"\"\n    this.flags = flags\n    this.switchU = unicode && this.parser.options.ecmaVersion >= 6\n    this.switchN = unicode && this.parser.options.ecmaVersion >= 9\n  }\n\n  raise(message) {\n    this.parser.raiseRecoverable(this.start, `Invalid regular expression: /${this.source}/: ${message}`)\n  }\n\n  // If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n  // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\n  at(i) {\n    const s = this.source\n    const l = s.length\n    if (i >= l) {\n      return -1\n    }\n    const c = s.charCodeAt(i)\n    if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n      return c\n    }\n    return (c << 10) + s.charCodeAt(i + 1) - 0x35FDC00\n  }\n\n  nextIndex(i) {\n    const s = this.source\n    const l = s.length\n    if (i >= l) {\n      return l\n    }\n    const c = s.charCodeAt(i)\n    if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n      return i + 1\n    }\n    return i + 2\n  }\n\n  current() {\n    return this.at(this.pos)\n  }\n\n  lookahead() {\n    return this.at(this.nextIndex(this.pos))\n  }\n\n  advance() {\n    this.pos = this.nextIndex(this.pos)\n  }\n\n  eat(ch) {\n    if (this.current() === ch) {\n      this.advance()\n      return true\n    }\n    return false\n  }\n}\n\nfunction codePointToString(ch) {\n  if (ch <= 0xFFFF) return String.fromCharCode(ch)\n  ch -= 0x10000\n  return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n}\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpFlags = function(state) {\n  const validFlags = state.validFlags\n  const flags = state.flags\n\n  for (let i = 0; i < flags.length; i++) {\n    const flag = flags.charAt(i)\n    if (validFlags.indexOf(flag) === -1) {\n      this.raise(state.start, \"Invalid regular expression flag\")\n    }\n    if (flags.indexOf(flag, i + 1) > -1) {\n      this.raise(state.start, \"Duplicate regular expression flag\")\n    }\n  }\n}\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpPattern = function(state) {\n  this.regexp_pattern(state)\n\n  // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n  // parsing contains a |GroupName|, reparse with the goal symbol\n  // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n  // exception if _P_ did not conform to the grammar, if any elements of _P_\n  // were not matched by the parse, or if any Early Error conditions exist.\n  if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n    state.switchN = true\n    this.regexp_pattern(state)\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp.regexp_pattern = function(state) {\n  state.pos = 0\n  state.lastIntValue = 0\n  state.lastStringValue = \"\"\n  state.lastAssertionIsQuantifiable = false\n  state.numCapturingParens = 0\n  state.maxBackReference = 0\n  state.groupNames.length = 0\n  state.backReferenceNames.length = 0\n\n  this.regexp_disjunction(state)\n\n  if (state.pos !== state.source.length) {\n    // Make the same messages as V8.\n    if (state.eat(0x29 /* ) */)) {\n      state.raise(\"Unmatched ')'\")\n    }\n    if (state.eat(0x5D /* [ */) || state.eat(0x7D /* } */)) {\n      state.raise(\"Lone quantifier brackets\")\n    }\n  }\n  if (state.maxBackReference > state.numCapturingParens) {\n    state.raise(\"Invalid escape\")\n  }\n  for (const name of state.backReferenceNames) {\n    if (state.groupNames.indexOf(name) === -1) {\n      state.raise(\"Invalid named capture referenced\")\n    }\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp.regexp_disjunction = function(state) {\n  this.regexp_alternative(state)\n  while (state.eat(0x7C /* | */)) {\n    this.regexp_alternative(state)\n  }\n\n  // Make the same message as V8.\n  if (this.regexp_eatQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\")\n  }\n  if (state.eat(0x7B /* { */)) {\n    state.raise(\"Lone quantifier brackets\")\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp.regexp_alternative = function(state) {\n  while (state.pos < state.source.length && this.regexp_eatTerm(state))\n    ;\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp.regexp_eatTerm = function(state) {\n  if (this.regexp_eatAssertion(state)) {\n    // Handle `QuantifiableAssertion Quantifier` alternative.\n    // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n    // is a QuantifiableAssertion.\n    if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n      // Make the same message as V8.\n      if (state.switchU) {\n        state.raise(\"Invalid quantifier\")\n      }\n    }\n    return true\n  }\n\n  if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n    this.regexp_eatQuantifier(state)\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp.regexp_eatAssertion = function(state) {\n  const start = state.pos\n  state.lastAssertionIsQuantifiable = false\n\n  // ^, $\n  if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n    return true\n  }\n\n  // \\b \\B\n  if (state.eat(0x5C /* \\ */)) {\n    if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n      return true\n    }\n    state.pos = start\n  }\n\n  // Lookahead / Lookbehind\n  if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n    let lookbehind = false\n    if (this.options.ecmaVersion >= 9) {\n      lookbehind = state.eat(0x3C /* < */)\n    }\n    if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n      this.regexp_disjunction(state)\n      if (!state.eat(0x29 /* ) */)) {\n        state.raise(\"Unterminated group\")\n      }\n      state.lastAssertionIsQuantifiable = !lookbehind\n      return true\n    }\n  }\n\n  state.pos = start\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp.regexp_eatQuantifier = function(state, noError = false) {\n  if (this.regexp_eatQuantifierPrefix(state, noError)) {\n    state.eat(0x3F /* ? */)\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp.regexp_eatQuantifierPrefix = function(state, noError) {\n  return (\n    state.eat(0x2A /* * */) ||\n    state.eat(0x2B /* + */) ||\n    state.eat(0x3F /* ? */) ||\n    this.regexp_eatBracedQuantifier(state, noError)\n  )\n}\npp.regexp_eatBracedQuantifier = function(state, noError) {\n  const start = state.pos\n  if (state.eat(0x7B /* { */)) {\n    let min = 0, max = -1\n    if (this.regexp_eatDecimalDigits(state)) {\n      min = state.lastIntValue\n      if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n        max = state.lastIntValue\n      }\n      if (state.eat(0x7D /* } */)) {\n        // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n        if (max !== -1 && max < min && !noError) {\n          state.raise(\"numbers out of order in {} quantifier\")\n        }\n        return true\n      }\n    }\n    if (state.switchU && !noError) {\n      state.raise(\"Incomplete quantifier\")\n    }\n    state.pos = start\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp.regexp_eatAtom = function(state) {\n  return (\n    this.regexp_eatPatternCharacters(state) ||\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state)\n  )\n}\npp.regexp_eatReverseSolidusAtomEscape = function(state) {\n  const start = state.pos\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatAtomEscape(state)) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatUncapturingGroup = function(state) {\n  const start = state.pos\n  if (state.eat(0x28 /* ( */)) {\n    if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n      this.regexp_disjunction(state)\n      if (state.eat(0x29 /* ) */)) {\n        return true\n      }\n      state.raise(\"Unterminated group\")\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatCapturingGroup = function(state) {\n  if (state.eat(0x28 /* ( */)) {\n    if (this.options.ecmaVersion >= 9) {\n      this.regexp_groupSpecifier(state)\n    } else if (state.current() === 0x3F /* ? */) {\n      state.raise(\"Invalid group\")\n    }\n    this.regexp_disjunction(state)\n    if (state.eat(0x29 /* ) */)) {\n      state.numCapturingParens += 1\n      return true\n    }\n    state.raise(\"Unterminated group\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp.regexp_eatExtendedAtom = function(state) {\n  return (\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state) ||\n    this.regexp_eatInvalidBracedQuantifier(state) ||\n    this.regexp_eatExtendedPatternCharacter(state)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp.regexp_eatInvalidBracedQuantifier = function(state) {\n  if (this.regexp_eatBracedQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp.regexp_eatSyntaxCharacter = function(state) {\n  const ch = state.current()\n  if (isSyntaxCharacter(ch)) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n  return false\n}\nfunction isSyntaxCharacter(ch) {\n  return (\n    ch === 0x24 /* $ */ ||\n    ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n    ch === 0x2E /* . */ ||\n    ch === 0x3F /* ? */ ||\n    ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n    ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp.regexp_eatPatternCharacters = function(state) {\n  const start = state.pos\n  let ch = 0\n  while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n    state.advance()\n  }\n  return state.pos !== start\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp.regexp_eatExtendedPatternCharacter = function(state) {\n  const ch = state.current()\n  if (\n    ch !== -1 &&\n    ch !== 0x24 /* $ */ &&\n    !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n    ch !== 0x2E /* . */ &&\n    ch !== 0x3F /* ? */ &&\n    ch !== 0x5B /* [ */ &&\n    ch !== 0x5E /* ^ */ &&\n    ch !== 0x7C /* | */\n  ) {\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// GroupSpecifier[U] ::\n//   [empty]\n//   `?` GroupName[?U]\npp.regexp_groupSpecifier = function(state) {\n  if (state.eat(0x3F /* ? */)) {\n    if (this.regexp_eatGroupName(state)) {\n      if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n        state.raise(\"Duplicate capture group name\")\n      }\n      state.groupNames.push(state.lastStringValue)\n      return\n    }\n    state.raise(\"Invalid group\")\n  }\n}\n\n// GroupName[U] ::\n//   `<` RegExpIdentifierName[?U] `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatGroupName = function(state) {\n  state.lastStringValue = \"\"\n  if (state.eat(0x3C /* < */)) {\n    if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n      return true\n    }\n    state.raise(\"Invalid capture group name\")\n  }\n  return false\n}\n\n// RegExpIdentifierName[U] ::\n//   RegExpIdentifierStart[?U]\n//   RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatRegExpIdentifierName = function(state) {\n  state.lastStringValue = \"\"\n  if (this.regexp_eatRegExpIdentifierStart(state)) {\n    state.lastStringValue += codePointToString(state.lastIntValue)\n    while (this.regexp_eatRegExpIdentifierPart(state)) {\n      state.lastStringValue += codePointToString(state.lastIntValue)\n    }\n    return true\n  }\n  return false\n}\n\n// RegExpIdentifierStart[U] ::\n//   UnicodeIDStart\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[?U]\npp.regexp_eatRegExpIdentifierStart = function(state) {\n  const start = state.pos\n  let ch = state.current()\n  state.advance()\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n    ch = state.lastIntValue\n  }\n  if (isRegExpIdentifierStart(ch)) {\n    state.lastIntValue = ch\n    return true\n  }\n\n  state.pos = start\n  return false\n}\nfunction isRegExpIdentifierStart(ch) {\n  return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart[U] ::\n//   UnicodeIDContinue\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[?U]\n//   <ZWNJ>\n//   <ZWJ>\npp.regexp_eatRegExpIdentifierPart = function(state) {\n  const start = state.pos\n  let ch = state.current()\n  state.advance()\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n    ch = state.lastIntValue\n  }\n  if (isRegExpIdentifierPart(ch)) {\n    state.lastIntValue = ch\n    return true\n  }\n\n  state.pos = start\n  return false\n}\nfunction isRegExpIdentifierPart(ch) {\n  return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp.regexp_eatAtomEscape = function(state) {\n  if (\n    this.regexp_eatBackReference(state) ||\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state) ||\n    (state.switchN && this.regexp_eatKGroupName(state))\n  ) {\n    return true\n  }\n  if (state.switchU) {\n    // Make the same message as V8.\n    if (state.current() === 0x63 /* c */) {\n      state.raise(\"Invalid unicode escape\")\n    }\n    state.raise(\"Invalid escape\")\n  }\n  return false\n}\npp.regexp_eatBackReference = function(state) {\n  const start = state.pos\n  if (this.regexp_eatDecimalEscape(state)) {\n    const n = state.lastIntValue\n    if (state.switchU) {\n      // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n      if (n > state.maxBackReference) {\n        state.maxBackReference = n\n      }\n      return true\n    }\n    if (n <= state.numCapturingParens) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatKGroupName = function(state) {\n  if (state.eat(0x6B /* k */)) {\n    if (this.regexp_eatGroupName(state)) {\n      state.backReferenceNames.push(state.lastStringValue)\n      return true\n    }\n    state.raise(\"Invalid named reference\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp.regexp_eatCharacterEscape = function(state) {\n  return (\n    this.regexp_eatControlEscape(state) ||\n    this.regexp_eatCControlLetter(state) ||\n    this.regexp_eatZero(state) ||\n    this.regexp_eatHexEscapeSequence(state) ||\n    this.regexp_eatRegExpUnicodeEscapeSequence(state) ||\n    (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n    this.regexp_eatIdentityEscape(state)\n  )\n}\npp.regexp_eatCControlLetter = function(state) {\n  const start = state.pos\n  if (state.eat(0x63 /* c */)) {\n    if (this.regexp_eatControlLetter(state)) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatZero = function(state) {\n  if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n    state.lastIntValue = 0\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp.regexp_eatControlEscape = function(state) {\n  const ch = state.current()\n  if (ch === 0x74 /* t */) {\n    state.lastIntValue = 0x09 /* \\t */\n    state.advance()\n    return true\n  }\n  if (ch === 0x6E /* n */) {\n    state.lastIntValue = 0x0A /* \\n */\n    state.advance()\n    return true\n  }\n  if (ch === 0x76 /* v */) {\n    state.lastIntValue = 0x0B /* \\v */\n    state.advance()\n    return true\n  }\n  if (ch === 0x66 /* f */) {\n    state.lastIntValue = 0x0C /* \\f */\n    state.advance()\n    return true\n  }\n  if (ch === 0x72 /* r */) {\n    state.lastIntValue = 0x0D /* \\r */\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp.regexp_eatControlLetter = function(state) {\n  const ch = state.current()\n  if (isControlLetter(ch)) {\n    state.lastIntValue = ch % 0x20\n    state.advance()\n    return true\n  }\n  return false\n}\nfunction isControlLetter(ch) {\n  return (\n    (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp.regexp_eatRegExpUnicodeEscapeSequence = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x75 /* u */)) {\n    if (this.regexp_eatFixedHexDigits(state, 4)) {\n      const lead = state.lastIntValue\n      if (state.switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n        const leadSurrogateEnd = state.pos\n        if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n          const trail = state.lastIntValue\n          if (trail >= 0xDC00 && trail <= 0xDFFF) {\n            state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000\n            return true\n          }\n        }\n        state.pos = leadSurrogateEnd\n        state.lastIntValue = lead\n      }\n      return true\n    }\n    if (\n      state.switchU &&\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatHexDigits(state) &&\n      state.eat(0x7D /* } */) &&\n      isValidUnicode(state.lastIntValue)\n    ) {\n      return true\n    }\n    if (state.switchU) {\n      state.raise(\"Invalid unicode escape\")\n    }\n    state.pos = start\n  }\n\n  return false\n}\nfunction isValidUnicode(ch) {\n  return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp.regexp_eatIdentityEscape = function(state) {\n  if (state.switchU) {\n    if (this.regexp_eatSyntaxCharacter(state)) {\n      return true\n    }\n    if (state.eat(0x2F /* / */)) {\n      state.lastIntValue = 0x2F /* / */\n      return true\n    }\n    return false\n  }\n\n  const ch = state.current()\n  if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp.regexp_eatDecimalEscape = function(state) {\n  state.lastIntValue = 0\n  let ch = state.current()\n  if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n    do {\n      state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n      state.advance()\n    } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp.regexp_eatCharacterClassEscape = function(state) {\n  const ch = state.current()\n\n  if (isCharacterClassEscape(ch)) {\n    state.lastIntValue = -1\n    state.advance()\n    return true\n  }\n\n  if (\n    state.switchU &&\n    this.options.ecmaVersion >= 9 &&\n    (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n  ) {\n    state.lastIntValue = -1\n    state.advance()\n    if (\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatUnicodePropertyValueExpression(state) &&\n      state.eat(0x7D /* } */)\n    ) {\n      return true\n    }\n    state.raise(\"Invalid property name\")\n  }\n\n  return false\n}\nfunction isCharacterClassEscape(ch) {\n  return (\n    ch === 0x64 /* d */ ||\n    ch === 0x44 /* D */ ||\n    ch === 0x73 /* s */ ||\n    ch === 0x53 /* S */ ||\n    ch === 0x77 /* w */ ||\n    ch === 0x57 /* W */\n  )\n}\n\n// UnicodePropertyValueExpression ::\n//   UnicodePropertyName `=` UnicodePropertyValue\n//   LoneUnicodePropertyNameOrValue\npp.regexp_eatUnicodePropertyValueExpression = function(state) {\n  const start = state.pos\n\n  // UnicodePropertyName `=` UnicodePropertyValue\n  if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n    const name = state.lastStringValue\n    if (this.regexp_eatUnicodePropertyValue(state)) {\n      const value = state.lastStringValue\n      this.regexp_validateUnicodePropertyNameAndValue(state, name, value)\n      return true\n    }\n  }\n  state.pos = start\n\n  // LoneUnicodePropertyNameOrValue\n  if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n    const nameOrValue = state.lastStringValue\n    this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n    return true\n  }\n  return false\n}\npp.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n  if (!has(state.unicodeProperties.nonBinary, name))\n    state.raise(\"Invalid property name\")\n  if (!state.unicodeProperties.nonBinary[name].test(value))\n    state.raise(\"Invalid property value\")\n}\npp.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n  if (!state.unicodeProperties.binary.test(nameOrValue))\n    state.raise(\"Invalid property name\")\n}\n\n// UnicodePropertyName ::\n//   UnicodePropertyNameCharacters\npp.regexp_eatUnicodePropertyName = function(state) {\n  let ch = 0\n  state.lastStringValue = \"\"\n  while (isUnicodePropertyNameCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch)\n    state.advance()\n  }\n  return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyNameCharacter(ch) {\n  return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n//   UnicodePropertyValueCharacters\npp.regexp_eatUnicodePropertyValue = function(state) {\n  let ch = 0\n  state.lastStringValue = \"\"\n  while (isUnicodePropertyValueCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch)\n    state.advance()\n  }\n  return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyValueCharacter(ch) {\n  return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n//   UnicodePropertyValueCharacters\npp.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n  return this.regexp_eatUnicodePropertyValue(state)\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp.regexp_eatCharacterClass = function(state) {\n  if (state.eat(0x5B /* [ */)) {\n    state.eat(0x5E /* ^ */)\n    this.regexp_classRanges(state)\n    if (state.eat(0x5D /* [ */)) {\n      return true\n    }\n    // Unreachable since it threw \"unterminated regular expression\" error before.\n    state.raise(\"Unterminated character class\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp.regexp_classRanges = function(state) {\n  while (this.regexp_eatClassAtom(state)) {\n    const left = state.lastIntValue\n    if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n      const right = state.lastIntValue\n      if (state.switchU && (left === -1 || right === -1)) {\n        state.raise(\"Invalid character class\")\n      }\n      if (left !== -1 && right !== -1 && left > right) {\n        state.raise(\"Range out of order in character class\")\n      }\n    }\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp.regexp_eatClassAtom = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatClassEscape(state)) {\n      return true\n    }\n    if (state.switchU) {\n      // Make the same message as V8.\n      const ch = state.current()\n      if (ch === 0x63 /* c */ || isOctalDigit(ch)) {\n        state.raise(\"Invalid class escape\")\n      }\n      state.raise(\"Invalid escape\")\n    }\n    state.pos = start\n  }\n\n  const ch = state.current()\n  if (ch !== 0x5D /* [ */) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp.regexp_eatClassEscape = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x62 /* b */)) {\n    state.lastIntValue = 0x08 /* <BS> */\n    return true\n  }\n\n  if (state.switchU && state.eat(0x2D /* - */)) {\n    state.lastIntValue = 0x2D /* - */\n    return true\n  }\n\n  if (!state.switchU && state.eat(0x63 /* c */)) {\n    if (this.regexp_eatClassControlLetter(state)) {\n      return true\n    }\n    state.pos = start\n  }\n\n  return (\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp.regexp_eatClassControlLetter = function(state) {\n  const ch = state.current()\n  if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n    state.lastIntValue = ch % 0x20\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatHexEscapeSequence = function(state) {\n  const start = state.pos\n  if (state.eat(0x78 /* x */)) {\n    if (this.regexp_eatFixedHexDigits(state, 2)) {\n      return true\n    }\n    if (state.switchU) {\n      state.raise(\"Invalid escape\")\n    }\n    state.pos = start\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp.regexp_eatDecimalDigits = function(state) {\n  const start = state.pos\n  let ch = 0\n  state.lastIntValue = 0\n  while (isDecimalDigit(ch = state.current())) {\n    state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n    state.advance()\n  }\n  return state.pos !== start\n}\nfunction isDecimalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp.regexp_eatHexDigits = function(state) {\n  const start = state.pos\n  let ch = 0\n  state.lastIntValue = 0\n  while (isHexDigit(ch = state.current())) {\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n    state.advance()\n  }\n  return state.pos !== start\n}\nfunction isHexDigit(ch) {\n  return (\n    (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n    (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n  )\n}\nfunction hexToInt(ch) {\n  if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n    return 10 + (ch - 0x41 /* A */)\n  }\n  if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n    return 10 + (ch - 0x61 /* a */)\n  }\n  return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp.regexp_eatLegacyOctalEscapeSequence = function(state) {\n  if (this.regexp_eatOctalDigit(state)) {\n    const n1 = state.lastIntValue\n    if (this.regexp_eatOctalDigit(state)) {\n      const n2 = state.lastIntValue\n      if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n        state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue\n      } else {\n        state.lastIntValue = n1 * 8 + n2\n      }\n    } else {\n      state.lastIntValue = n1\n    }\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp.regexp_eatOctalDigit = function(state) {\n  const ch = state.current()\n  if (isOctalDigit(ch)) {\n    state.lastIntValue = ch - 0x30 /* 0 */\n    state.advance()\n    return true\n  }\n  state.lastIntValue = 0\n  return false\n}\nfunction isOctalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatFixedHexDigits = function(state, length) {\n  const start = state.pos\n  state.lastIntValue = 0\n  for (let i = 0; i < length; ++i) {\n    const ch = state.current()\n    if (!isHexDigit(ch)) {\n      state.pos = start\n      return false\n    }\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n    state.advance()\n  }\n  return true\n}\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier\"\nimport {types as tt, keywords as keywordTypes} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\nimport {RegExpValidationState} from \"./regexp\"\nimport {lineBreak, lineBreakG, isNewLine, nonASCIIwhitespace} from \"./whitespace\"\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(p) {\n    this.type = p.type\n    this.value = p.value\n    this.start = p.start\n    this.end = p.end\n    if (p.options.locations)\n      this.loc = new SourceLocation(p, p.startLoc, p.endLoc)\n    if (p.options.ranges)\n      this.range = [p.start, p.end]\n  }\n}\n\n// ## Tokenizer\n\nconst pp = Parser.prototype\n\n// Move to the next token\n\npp.next = function() {\n  if (this.options.onToken)\n    this.options.onToken(new Token(this))\n\n  this.lastTokEnd = this.end\n  this.lastTokStart = this.start\n  this.lastTokEndLoc = this.endLoc\n  this.lastTokStartLoc = this.startLoc\n  this.nextToken()\n}\n\npp.getToken = function() {\n  this.next()\n  return new Token(this)\n}\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n  pp[Symbol.iterator] = function() {\n    return {\n      next: () => {\n        let token = this.getToken()\n        return {\n          done: token.type === tt.eof,\n          value: token\n        }\n      }\n    }\n  }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\npp.curContext = function() {\n  return this.context[this.context.length - 1]\n}\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n  let curContext = this.curContext()\n  if (!curContext || !curContext.preserveSpace) this.skipSpace()\n\n  this.start = this.pos\n  if (this.options.locations) this.startLoc = this.curPosition()\n  if (this.pos >= this.input.length) return this.finishToken(tt.eof)\n\n  if (curContext.override) return curContext.override(this)\n  else this.readToken(this.fullCharCodeAtPos())\n}\n\npp.readToken = function(code) {\n  // Identifier or keyword. '\\uXXXX' sequences are allowed in\n  // identifiers, so '\\' also dispatches to that.\n  if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n    return this.readWord()\n\n  return this.getTokenFromCode(code)\n}\n\npp.fullCharCodeAtPos = function() {\n  let code = this.input.charCodeAt(this.pos)\n  if (code <= 0xd7ff || code >= 0xe000) return code\n  let next = this.input.charCodeAt(this.pos + 1)\n  return (code << 10) + next - 0x35fdc00\n}\n\npp.skipBlockComment = function() {\n  let startLoc = this.options.onComment && this.curPosition()\n  let start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2)\n  if (end === -1) this.raise(this.pos - 2, \"Unterminated comment\")\n  this.pos = end + 2\n  if (this.options.locations) {\n    lineBreakG.lastIndex = start\n    let match\n    while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n      ++this.curLine\n      this.lineStart = match.index + match[0].length\n    }\n  }\n  if (this.options.onComment)\n    this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n                           startLoc, this.curPosition())\n}\n\npp.skipLineComment = function(startSkip) {\n  let start = this.pos\n  let startLoc = this.options.onComment && this.curPosition()\n  let ch = this.input.charCodeAt(this.pos += startSkip)\n  while (this.pos < this.input.length && !isNewLine(ch)) {\n    ch = this.input.charCodeAt(++this.pos)\n  }\n  if (this.options.onComment)\n    this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n                           startLoc, this.curPosition())\n}\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n  loop: while (this.pos < this.input.length) {\n    let ch = this.input.charCodeAt(this.pos)\n    switch (ch) {\n    case 32: case 160: // ' '\n      ++this.pos\n      break\n    case 13:\n      if (this.input.charCodeAt(this.pos + 1) === 10) {\n        ++this.pos\n      }\n    case 10: case 8232: case 8233:\n      ++this.pos\n      if (this.options.locations) {\n        ++this.curLine\n        this.lineStart = this.pos\n      }\n      break\n    case 47: // '/'\n      switch (this.input.charCodeAt(this.pos + 1)) {\n      case 42: // '*'\n        this.skipBlockComment()\n        break\n      case 47:\n        this.skipLineComment(2)\n        break\n      default:\n        break loop\n      }\n      break\n    default:\n      if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n        ++this.pos\n      } else {\n        break loop\n      }\n    }\n  }\n}\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n  this.end = this.pos\n  if (this.options.locations) this.endLoc = this.curPosition()\n  let prevType = this.type\n  this.type = type\n  this.value = val\n\n  this.updateContext(prevType)\n}\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next >= 48 && next <= 57) return this.readNumber(true)\n  let next2 = this.input.charCodeAt(this.pos + 2)\n  if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n    this.pos += 3\n    return this.finishToken(tt.ellipsis)\n  } else {\n    ++this.pos\n    return this.finishToken(tt.dot)\n  }\n}\n\npp.readToken_slash = function() { // '/'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.slash, 1)\n}\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n  let next = this.input.charCodeAt(this.pos + 1)\n  let size = 1\n  let tokentype = code === 42 ? tt.star : tt.modulo\n\n  // exponentiation operator ** and **=\n  if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n    ++size\n    tokentype = tt.starstar\n    next = this.input.charCodeAt(this.pos + 2)\n  }\n\n  if (next === 61) return this.finishOp(tt.assign, size + 1)\n  return this.finishOp(tokentype, size)\n}\n\npp.readToken_pipe_amp = function(code) { // '|&'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === code) return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2)\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1)\n}\n\npp.readToken_caret = function() { // '^'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.bitwiseXOR, 1)\n}\n\npp.readToken_plus_min = function(code) { // '+-'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === code) {\n    if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n        (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n      // A `-->` line comment\n      this.skipLineComment(3)\n      this.skipSpace()\n      return this.nextToken()\n    }\n    return this.finishOp(tt.incDec, 2)\n  }\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n  let next = this.input.charCodeAt(this.pos + 1)\n  let size = 1\n  if (next === code) {\n    size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n    if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n    return this.finishOp(tt.bitShift, size)\n  }\n  if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n      this.input.charCodeAt(this.pos + 3) === 45) {\n    // `<!--`, an XML-style comment that should be interpreted as a line comment\n    this.skipLineComment(4)\n    this.skipSpace()\n    return this.nextToken()\n  }\n  if (next === 61) size = 2\n  return this.finishOp(tt.relational, size)\n}\n\npp.readToken_eq_excl = function(code) { // '=!'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === 61) return this.finishOp(tt.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2)\n  if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n    this.pos += 2\n    return this.finishToken(tt.arrow)\n  }\n  return this.finishOp(code === 61 ? tt.eq : tt.prefix, 1)\n}\n\npp.getTokenFromCode = function(code) {\n  switch (code) {\n  // The interpretation of a dot depends on whether it is followed\n  // by a digit or another two dots.\n  case 46: // '.'\n    return this.readToken_dot()\n\n  // Punctuation tokens.\n  case 40: ++this.pos; return this.finishToken(tt.parenL)\n  case 41: ++this.pos; return this.finishToken(tt.parenR)\n  case 59: ++this.pos; return this.finishToken(tt.semi)\n  case 44: ++this.pos; return this.finishToken(tt.comma)\n  case 91: ++this.pos; return this.finishToken(tt.bracketL)\n  case 93: ++this.pos; return this.finishToken(tt.bracketR)\n  case 123: ++this.pos; return this.finishToken(tt.braceL)\n  case 125: ++this.pos; return this.finishToken(tt.braceR)\n  case 58: ++this.pos; return this.finishToken(tt.colon)\n  case 63: ++this.pos; return this.finishToken(tt.question)\n\n  case 96: // '`'\n    if (this.options.ecmaVersion < 6) break\n    ++this.pos\n    return this.finishToken(tt.backQuote)\n\n  case 48: // '0'\n    let next = this.input.charCodeAt(this.pos + 1)\n    if (next === 120 || next === 88) return this.readRadixNumber(16) // '0x', '0X' - hex number\n    if (this.options.ecmaVersion >= 6) {\n      if (next === 111 || next === 79) return this.readRadixNumber(8) // '0o', '0O' - octal number\n      if (next === 98 || next === 66) return this.readRadixNumber(2) // '0b', '0B' - binary number\n    }\n\n  // Anything else beginning with a digit is an integer, octal\n  // number, or float.\n  case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n    return this.readNumber(false)\n\n  // Quotes produce strings.\n  case 34: case 39: // '\"', \"'\"\n    return this.readString(code)\n\n  // Operators are parsed inline in tiny state machines. '=' (61) is\n  // often referred to. `finishOp` simply skips the amount of\n  // characters it is given as second argument, and returns a token\n  // of the type given by its first argument.\n\n  case 47: // '/'\n    return this.readToken_slash()\n\n  case 37: case 42: // '%*'\n    return this.readToken_mult_modulo_exp(code)\n\n  case 124: case 38: // '|&'\n    return this.readToken_pipe_amp(code)\n\n  case 94: // '^'\n    return this.readToken_caret()\n\n  case 43: case 45: // '+-'\n    return this.readToken_plus_min(code)\n\n  case 60: case 62: // '<>'\n    return this.readToken_lt_gt(code)\n\n  case 61: case 33: // '=!'\n    return this.readToken_eq_excl(code)\n\n  case 126: // '~'\n    return this.finishOp(tt.prefix, 1)\n  }\n\n  this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\")\n}\n\npp.finishOp = function(type, size) {\n  let str = this.input.slice(this.pos, this.pos + size)\n  this.pos += size\n  return this.finishToken(type, str)\n}\n\npp.readRegexp = function() {\n  let escaped, inClass, start = this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(start, \"Unterminated regular expression\")\n    let ch = this.input.charAt(this.pos)\n    if (lineBreak.test(ch)) this.raise(start, \"Unterminated regular expression\")\n    if (!escaped) {\n      if (ch === \"[\") inClass = true\n      else if (ch === \"]\" && inClass) inClass = false\n      else if (ch === \"/\" && !inClass) break\n      escaped = ch === \"\\\\\"\n    } else escaped = false\n    ++this.pos\n  }\n  let pattern = this.input.slice(start, this.pos)\n  ++this.pos\n  let flagsStart = this.pos\n  let flags = this.readWord1()\n  if (this.containsEsc) this.unexpected(flagsStart)\n\n  // Validate pattern\n  const state = this.regexpState || (this.regexpState = new RegExpValidationState(this))\n  state.reset(start, pattern, flags)\n  this.validateRegExpFlags(state)\n  this.validateRegExpPattern(state)\n\n  // Create Literal#value property value.\n  let value = null\n  try {\n    value = new RegExp(pattern, flags)\n  } catch (e) {\n    // ESTree requires null if it failed to instantiate RegExp object.\n    // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n  }\n\n  return this.finishToken(tt.regexp, {pattern, flags, value})\n}\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp.readInt = function(radix, len) {\n  let start = this.pos, total = 0\n  for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n    let code = this.input.charCodeAt(this.pos), val\n    if (code >= 97) val = code - 97 + 10 // a\n    else if (code >= 65) val = code - 65 + 10 // A\n    else if (code >= 48 && code <= 57) val = code - 48 // 0-9\n    else val = Infinity\n    if (val >= radix) break\n    ++this.pos\n    total = total * radix + val\n  }\n  if (this.pos === start || len != null && this.pos - start !== len) return null\n\n  return total\n}\n\npp.readRadixNumber = function(radix) {\n  this.pos += 2 // 0x\n  let val = this.readInt(radix)\n  if (val == null) this.raise(this.start + 2, \"Expected number in radix \" + radix)\n  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\")\n  return this.finishToken(tt.num, val)\n}\n\n// Read an integer, octal integer, or floating-point number.\n\npp.readNumber = function(startsWithDot) {\n  let start = this.pos\n  if (!startsWithDot && this.readInt(10) === null) this.raise(start, \"Invalid number\")\n  let octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48\n  if (octal && this.strict) this.raise(start, \"Invalid number\")\n  if (octal && /[89]/.test(this.input.slice(start, this.pos))) octal = false\n  let next = this.input.charCodeAt(this.pos)\n  if (next === 46 && !octal) { // '.'\n    ++this.pos\n    this.readInt(10)\n    next = this.input.charCodeAt(this.pos)\n  }\n  if ((next === 69 || next === 101) && !octal) { // 'eE'\n    next = this.input.charCodeAt(++this.pos)\n    if (next === 43 || next === 45) ++this.pos // '+-'\n    if (this.readInt(10) === null) this.raise(start, \"Invalid number\")\n  }\n  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\")\n\n  let str = this.input.slice(start, this.pos)\n  let val = octal ? parseInt(str, 8) : parseFloat(str)\n  return this.finishToken(tt.num, val)\n}\n\n// Read a string value, interpreting backslash-escapes.\n\npp.readCodePoint = function() {\n  let ch = this.input.charCodeAt(this.pos), code\n\n  if (ch === 123) { // '{'\n    if (this.options.ecmaVersion < 6) this.unexpected()\n    let codePos = ++this.pos\n    code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos)\n    ++this.pos\n    if (code > 0x10FFFF) this.invalidStringToken(codePos, \"Code point out of bounds\")\n  } else {\n    code = this.readHexChar(4)\n  }\n  return code\n}\n\nfunction codePointToString(code) {\n  // UTF-16 Decoding\n  if (code <= 0xFFFF) return String.fromCharCode(code)\n  code -= 0x10000\n  return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\npp.readString = function(quote) {\n  let out = \"\", chunkStart = ++this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(this.start, \"Unterminated string constant\")\n    let ch = this.input.charCodeAt(this.pos)\n    if (ch === quote) break\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos)\n      out += this.readEscapedChar(false)\n      chunkStart = this.pos\n    } else {\n      if (isNewLine(ch, this.options.ecmaVersion >= 10)) this.raise(this.start, \"Unterminated string constant\")\n      ++this.pos\n    }\n  }\n  out += this.input.slice(chunkStart, this.pos++)\n  return this.finishToken(tt.string, out)\n}\n\n// Reads template string tokens.\n\nconst INVALID_TEMPLATE_ESCAPE_ERROR = {}\n\npp.tryReadTemplateToken = function() {\n  this.inTemplateElement = true\n  try {\n    this.readTmplToken()\n  } catch (err) {\n    if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n      this.readInvalidTemplateToken()\n    } else {\n      throw err\n    }\n  }\n\n  this.inTemplateElement = false\n}\n\npp.invalidStringToken = function(position, message) {\n  if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n    throw INVALID_TEMPLATE_ESCAPE_ERROR\n  } else {\n    this.raise(position, message)\n  }\n}\n\npp.readTmplToken = function() {\n  let out = \"\", chunkStart = this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(this.start, \"Unterminated template\")\n    let ch = this.input.charCodeAt(this.pos)\n    if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n      if (this.pos === this.start && (this.type === tt.template || this.type === tt.invalidTemplate)) {\n        if (ch === 36) {\n          this.pos += 2\n          return this.finishToken(tt.dollarBraceL)\n        } else {\n          ++this.pos\n          return this.finishToken(tt.backQuote)\n        }\n      }\n      out += this.input.slice(chunkStart, this.pos)\n      return this.finishToken(tt.template, out)\n    }\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos)\n      out += this.readEscapedChar(true)\n      chunkStart = this.pos\n    } else if (isNewLine(ch)) {\n      out += this.input.slice(chunkStart, this.pos)\n      ++this.pos\n      switch (ch) {\n      case 13:\n        if (this.input.charCodeAt(this.pos) === 10) ++this.pos\n      case 10:\n        out += \"\\n\"\n        break\n      default:\n        out += String.fromCharCode(ch)\n        break\n      }\n      if (this.options.locations) {\n        ++this.curLine\n        this.lineStart = this.pos\n      }\n      chunkStart = this.pos\n    } else {\n      ++this.pos\n    }\n  }\n}\n\n// Reads a template token to search for the end, without validating any escape sequences\npp.readInvalidTemplateToken = function() {\n  for (; this.pos < this.input.length; this.pos++) {\n    switch (this.input[this.pos]) {\n    case \"\\\\\":\n      ++this.pos\n      break\n\n    case \"$\":\n      if (this.input[this.pos + 1] !== \"{\") {\n        break\n      }\n    // falls through\n\n    case \"`\":\n      return this.finishToken(tt.invalidTemplate, this.input.slice(this.start, this.pos))\n\n    // no default\n    }\n  }\n  this.raise(this.start, \"Unterminated template\")\n}\n\n// Used to read escaped characters\n\npp.readEscapedChar = function(inTemplate) {\n  let ch = this.input.charCodeAt(++this.pos)\n  ++this.pos\n  switch (ch) {\n  case 110: return \"\\n\" // 'n' -> '\\n'\n  case 114: return \"\\r\" // 'r' -> '\\r'\n  case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n  case 117: return codePointToString(this.readCodePoint()) // 'u'\n  case 116: return \"\\t\" // 't' -> '\\t'\n  case 98: return \"\\b\" // 'b' -> '\\b'\n  case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n  case 102: return \"\\f\" // 'f' -> '\\f'\n  case 13: if (this.input.charCodeAt(this.pos) === 10) ++this.pos // '\\r\\n'\n  case 10: // ' \\n'\n    if (this.options.locations) { this.lineStart = this.pos; ++this.curLine }\n    return \"\"\n  default:\n    if (ch >= 48 && ch <= 55) {\n      let octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]\n      let octal = parseInt(octalStr, 8)\n      if (octal > 255) {\n        octalStr = octalStr.slice(0, -1)\n        octal = parseInt(octalStr, 8)\n      }\n      this.pos += octalStr.length - 1\n      ch = this.input.charCodeAt(this.pos)\n      if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n        this.invalidStringToken(\n          this.pos - 1 - octalStr.length,\n          inTemplate\n            ? \"Octal literal in template string\"\n            : \"Octal literal in strict mode\"\n        )\n      }\n      return String.fromCharCode(octal)\n    }\n    if (isNewLine(ch)) {\n      // Unicode new line characters after \\ get removed from output in both\n      // template literals and strings\n      return \"\"\n    }\n    return String.fromCharCode(ch)\n  }\n}\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp.readHexChar = function(len) {\n  let codePos = this.pos\n  let n = this.readInt(16, len)\n  if (n === null) this.invalidStringToken(codePos, \"Bad character escape sequence\")\n  return n\n}\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp.readWord1 = function() {\n  this.containsEsc = false\n  let word = \"\", first = true, chunkStart = this.pos\n  let astral = this.options.ecmaVersion >= 6\n  while (this.pos < this.input.length) {\n    let ch = this.fullCharCodeAtPos()\n    if (isIdentifierChar(ch, astral)) {\n      this.pos += ch <= 0xffff ? 1 : 2\n    } else if (ch === 92) { // \"\\\"\n      this.containsEsc = true\n      word += this.input.slice(chunkStart, this.pos)\n      let escStart = this.pos\n      if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n        this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\")\n      ++this.pos\n      let esc = this.readCodePoint()\n      if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n        this.invalidStringToken(escStart, \"Invalid Unicode escape\")\n      word += codePointToString(esc)\n      chunkStart = this.pos\n    } else {\n      break\n    }\n    first = false\n  }\n  return word + this.input.slice(chunkStart, this.pos)\n}\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp.readWord = function() {\n  let word = this.readWord1()\n  let type = tt.name\n  if (this.keywords.test(word)) {\n    if (this.containsEsc) this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + word)\n    type = keywordTypes[word]\n  }\n  return this.finishToken(type, word)\n}\n","// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n//\n// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and\n// various contributors and released under an MIT license.\n//\n// Git repositories for Acorn are available at\n//\n//     http://marijnhaverbeke.nl/git/acorn\n//     https://github.com/acornjs/acorn.git\n//\n// Please use the [github bug tracker][ghbt] to report issues.\n//\n// [ghbt]: https://github.com/acornjs/acorn/issues\n//\n// [walk]: util/walk.js\n\nimport {Parser} from \"./state\"\nimport \"./parseutil\"\nimport \"./statement\"\nimport \"./lval\"\nimport \"./expression\"\nimport \"./location\"\nimport \"./scope\"\n\nexport {Parser} from \"./state\"\nexport {defaultOptions} from \"./options\"\nexport {Position, SourceLocation, getLineInfo} from \"./locutil\"\nexport {Node} from \"./node\"\nexport {TokenType, types as tokTypes, keywords as keywordTypes} from \"./tokentype\"\nexport {TokContext, types as tokContexts} from \"./tokencontext\"\nexport {isIdentifierChar, isIdentifierStart} from \"./identifier\"\nexport {Token} from \"./tokenize\"\nexport {isNewLine, lineBreak, lineBreakG, nonASCIIwhitespace} from \"./whitespace\"\n\nexport const version = \"6.1.1\"\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and\n// returns an abstract syntax tree as specified by [Mozilla parser\n// API][api].\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\nexport function parse(input, options) {\n  return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nexport function parseExpressionAt(input, pos, options) {\n  return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nexport function tokenizer(input, options) {\n  return Parser.tokenizer(input, options)\n}\n"],"names":["const","let","keywords","tt","this","pp","init","label","node","empty","scope","types","UNICODE_PROPERTY_VALUES","codePointToString","ch","keywordTypes"],"mappings":"AAAA;;AAEA,AAAOA,IAAM,aAAa,GAAG;EAC3B,CAAC,EAAE,qNAAqN;EACxN,CAAC,EAAE,8CAA8C;EACjD,CAAC,EAAE,MAAM;EACT,MAAM,EAAE,wEAAwE;EAChF,UAAU,EAAE,gBAAgB;EAC7B;;;;AAIDA,IAAM,oBAAoB,GAAG,8KAA6K;;AAE1M,AAAOA,IAAM,QAAQ,GAAG;EACtB,CAAC,EAAE,oBAAoB;EACvB,CAAC,EAAE,oBAAoB,GAAG,0CAA0C;EACrE;;AAED,AAAOA,IAAM,yBAAyB,GAAG,kBAAiB;;;;;;;;;;AAU1DC,IAAI,4BAA4B,GAAG,4tIAA2tI;AAC9vIA,IAAI,uBAAuB,GAAG,sjFAAqjF;;AAEnlFD,IAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,GAAG,EAAC;AACpFA,IAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,uBAAuB,GAAG,GAAG,EAAC;;AAEzG,4BAA4B,GAAG,uBAAuB,GAAG,KAAI;;;;;;;;;AAS7DA,IAAM,0BAA0B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;;;AAGvqCA,IAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CA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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/espree/node_modules/acorn/dist/acorn.js.map:1:{"version":3,"file":"acorn.js","sources":["../src/identifier.js","../src/tokentype.js","../src/whitespace.js","../src/util.js","../src/locutil.js","../src/options.js","../src/scopeflags.js","../src/state.js","../src/parseutil.js","../src/statement.js","../src/lval.js","../src/expression.js","../src/location.js","../src/scope.js","../src/node.js","../src/tokencontext.js","../src/unicode-property-data.js","../src/regexp.js","../src/tokenize.js","../src/index.js"],"sourcesContent":["// Reserved word lists for various dialects of the language\n\nexport const reservedWords = {\n  3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n  5: \"class enum extends super const export import\",\n  6: \"enum\",\n  strict: \"implements interface let package private protected public static yield\",\n  strictBind: \"eval arguments\"\n}\n\n// And the keywords\n\nconst ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\"\n\nexport const keywords = {\n  5: ecma5AndLessKeywords,\n  6: ecma5AndLessKeywords + \" const class extends export import super\"\n}\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n// Generated by `bin/generate-identifier-regex.js`.\n\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7b9\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab65\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\"\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2-\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\"\n\nconst nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\")\nconst nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\")\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by bin/generate-identifier-regex.js\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541]\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239]\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n  let pos = 0x10000\n  for (let i = 0; i < set.length; i += 2) {\n    pos += set[i]\n    if (pos > code) return false\n    pos += set[i + 1]\n    if (pos >= code) return true\n  }\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code, astral) {\n  if (code < 65) return code === 36\n  if (code < 91) return true\n  if (code < 97) return code === 95\n  if (code < 123) return true\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n  if (astral === false) return false\n  return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code, astral) {\n  if (code < 48) return code === 36\n  if (code < 58) return true\n  if (code < 65) return false\n  if (code < 91) return true\n  if (code < 97) return code === 95\n  if (code < 123) return true\n  if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code))\n  if (astral === false) return false\n  return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n","// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nexport class TokenType {\n  constructor(label, conf = {}) {\n    this.label = label\n    this.keyword = conf.keyword\n    this.beforeExpr = !!conf.beforeExpr\n    this.startsExpr = !!conf.startsExpr\n    this.isLoop = !!conf.isLoop\n    this.isAssign = !!conf.isAssign\n    this.prefix = !!conf.prefix\n    this.postfix = !!conf.postfix\n    this.binop = conf.binop || null\n    this.updateContext = null\n  }\n}\n\nfunction binop(name, prec) {\n  return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nconst beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}\n\n// Map keyword names to token types.\n\nexport const keywords = {}\n\n// Succinct definitions of keyword token types\nfunction kw(name, options = {}) {\n  options.keyword = name\n  return keywords[name] = new TokenType(name, options)\n}\n\nexport const types = {\n  num: new TokenType(\"num\", startsExpr),\n  regexp: new TokenType(\"regexp\", startsExpr),\n  string: new TokenType(\"string\", startsExpr),\n  name: new TokenType(\"name\", startsExpr),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n  bracketR: new TokenType(\"]\"),\n  braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n  braceR: new TokenType(\"}\"),\n  parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", beforeExpr),\n  semi: new TokenType(\";\", beforeExpr),\n  colon: new TokenType(\":\", beforeExpr),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", beforeExpr),\n  arrow: new TokenType(\"=>\", beforeExpr),\n  template: new TokenType(\"template\"),\n  invalidTemplate: new TokenType(\"invalidTemplate\"),\n  ellipsis: new TokenType(\"...\", beforeExpr),\n  backQuote: new TokenType(\"`\", startsExpr),\n  dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n  assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n  incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n  prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  logicalOR: binop(\"||\", 1),\n  logicalAND: binop(\"&&\", 2),\n  bitwiseOR: binop(\"|\", 3),\n  bitwiseXOR: binop(\"^\", 4),\n  bitwiseAND: binop(\"&\", 5),\n  equality: binop(\"==/!=/===/!==\", 6),\n  relational: binop(\"</>/<=/>=\", 7),\n  bitShift: binop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n  modulo: binop(\"%\", 10),\n  star: binop(\"*\", 10),\n  slash: binop(\"/\", 10),\n  starstar: new TokenType(\"**\", {beforeExpr: true}),\n\n  // Keyword token types.\n  _break: kw(\"break\"),\n  _case: kw(\"case\", beforeExpr),\n  _catch: kw(\"catch\"),\n  _continue: kw(\"continue\"),\n  _debugger: kw(\"debugger\"),\n  _default: kw(\"default\", beforeExpr),\n  _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n  _else: kw(\"else\", beforeExpr),\n  _finally: kw(\"finally\"),\n  _for: kw(\"for\", {isLoop: true}),\n  _function: kw(\"function\", startsExpr),\n  _if: kw(\"if\"),\n  _return: kw(\"return\", beforeExpr),\n  _switch: kw(\"switch\"),\n  _throw: kw(\"throw\", beforeExpr),\n  _try: kw(\"try\"),\n  _var: kw(\"var\"),\n  _const: kw(\"const\"),\n  _while: kw(\"while\", {isLoop: true}),\n  _with: kw(\"with\"),\n  _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n  _this: kw(\"this\", startsExpr),\n  _super: kw(\"super\", startsExpr),\n  _class: kw(\"class\", startsExpr),\n  _extends: kw(\"extends\", beforeExpr),\n  _export: kw(\"export\"),\n  _import: kw(\"import\"),\n  _null: kw(\"null\", startsExpr),\n  _true: kw(\"true\", startsExpr),\n  _false: kw(\"false\", startsExpr),\n  _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n  _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n  _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n  _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n}\n","// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nexport const lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\")\n\nexport function isNewLine(code, ecma2019String) {\n  return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n}\n\nexport const nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g\n","const {hasOwnProperty, toString} = Object.prototype\n\n// Checks if an object has a property.\n\nexport function has(obj, propName) {\n  return hasOwnProperty.call(obj, propName)\n}\n\nexport const isArray = Array.isArray || ((obj) => (\n  toString.call(obj) === \"[object Array]\"\n))\n\nexport function wordsRegexp(words) {\n  return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n","import {lineBreakG} from \"./whitespace\"\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  constructor(line, col) {\n    this.line = line\n    this.column = col\n  }\n\n  offset(n) {\n    return new Position(this.line, this.column + n)\n  }\n}\n\nexport class SourceLocation {\n  constructor(p, start, end) {\n    this.start = start\n    this.end = end\n    if (p.sourceFile !== null) this.source = p.sourceFile\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input, offset) {\n  for (let line = 1, cur = 0;;) {\n    lineBreakG.lastIndex = cur\n    let match = lineBreakG.exec(input)\n    if (match && match.index < offset) {\n      ++line\n      cur = match.index + match[0].length\n    } else {\n      return new Position(line, offset - cur)\n    }\n  }\n}\n","import {has, isArray} from \"./util\"\nimport {SourceLocation} from \"./locutil\"\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport const defaultOptions = {\n  // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n  // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10\n  // (2019). This influences support for strict mode, the set of\n  // reserved words, and support for new syntax features. The default\n  // is 9.\n  ecmaVersion: 9,\n  // `sourceType` indicates the mode the code should be parsed in.\n  // Can be either `\"script\"` or `\"module\"`. This influences global\n  // strict mode and parsing of `import` and `export` declarations.\n  sourceType: \"script\",\n  // `onInsertedSemicolon` can be a callback that will be called\n  // when a semicolon is automatically inserted. It will be passed\n  // the position of the comma as an offset, and if `locations` is\n  // enabled, it is given the location as a `{line, column}` object\n  // as second argument.\n  onInsertedSemicolon: null,\n  // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n  // trailing commas.\n  onTrailingComma: null,\n  // By default, reserved words are only enforced if ecmaVersion >= 5.\n  // Set `allowReserved` to a boolean value to explicitly turn this on\n  // an off. When this option has the value \"never\", reserved words\n  // and keywords can also not be used as property names.\n  allowReserved: null,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // When enabled, await identifiers are allowed to appear at the top-level scope,\n  // but they are still not allowed in non-async functions.\n  allowAwaitOutsideFunction: false,\n  // When enabled, hashbang directive in the beginning of file\n  // is allowed and treated as a line comment.\n  allowHashBang: false,\n  // When `locations` is on, `loc` properties holding objects with\n  // `start` and `end` properties in `{line, column}` form (with\n  // line being 1-based and column 0-based) will be attached to the\n  // nodes.\n  locations: false,\n  // A function can be passed as `onToken` option, which will\n  // cause Acorn to call that function with object in the same\n  // format as tokens returned from `tokenizer().getToken()`. Note\n  // that you are not allowed to call the parser from the\n  // callback—that will corrupt its internal state.\n  onToken: null,\n  // A function can be passed as `onComment` option, which will\n  // cause Acorn to call that function with `(block, text, start,\n  // end)` parameters whenever a comment is skipped. `block` is a\n  // boolean indicating whether this is a block (`/* */`) comment,\n  // `text` is the content of the comment, and `start` and `end` are\n  // character offsets that denote the start and end of the comment.\n  // When the `locations` option is on, two more parameters are\n  // passed, the full `{line, column}` locations of the start and\n  // end of the comments. Note that you are not allowed to call the\n  // parser from the callback—that will corrupt its internal state.\n  onComment: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // It is possible to parse multiple files into a single AST by\n  // passing the tree produced by parsing the first file as\n  // `program` option in subsequent parses. This will add the\n  // toplevel forms of the parsed file to the `Program` (top) node\n  // of an existing parse tree.\n  program: null,\n  // When `locations` is on, you can pass this to record the source\n  // file in every node's `loc` object.\n  sourceFile: null,\n  // This value, if given, is stored in every node, whether\n  // `locations` is on or off.\n  directSourceFile: null,\n  // When enabled, parenthesized expressions are represented by\n  // (non-standard) ParenthesizedExpression nodes\n  preserveParens: false\n}\n\n// Interpret and default an options object\n\nexport function getOptions(opts) {\n  let options = {}\n\n  for (let opt in defaultOptions)\n    options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]\n\n  if (options.ecmaVersion >= 2015)\n    options.ecmaVersion -= 2009\n\n  if (options.allowReserved == null)\n    options.allowReserved = options.ecmaVersion < 5\n\n  if (isArray(options.onToken)) {\n    let tokens = options.onToken\n    options.onToken = (token) => tokens.push(token)\n  }\n  if (isArray(options.onComment))\n    options.onComment = pushComment(options, options.onComment)\n\n  return options\n}\n\nfunction pushComment(options, array) {\n  return function(block, text, start, end, startLoc, endLoc) {\n    let comment = {\n      type: block ? \"Block\" : \"Line\",\n      value: text,\n      start: start,\n      end: end\n    }\n    if (options.locations)\n      comment.loc = new SourceLocation(this, startLoc, endLoc)\n    if (options.ranges)\n      comment.range = [start, end]\n    array.push(comment)\n  }\n}\n","// Each scope gets a bitset that may contain these flags\nexport const\n    SCOPE_TOP = 1,\n    SCOPE_FUNCTION = 2,\n    SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n    SCOPE_ASYNC = 4,\n    SCOPE_GENERATOR = 8,\n    SCOPE_ARROW = 16,\n    SCOPE_SIMPLE_CATCH = 32,\n    SCOPE_SUPER = 64,\n    SCOPE_DIRECT_SUPER = 128\n\nexport function functionFlags(async, generator) {\n  return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal and declareName to determine the type of a binding\nexport const\n    BIND_NONE = 0, // Not a binding\n    BIND_VAR = 1, // Var-style binding\n    BIND_LEXICAL = 2, // Let- or const-style binding\n    BIND_FUNCTION = 3, // Function declaration\n    BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n    BIND_OUTSIDE = 5 // Special case for function names as bound inside the function\n","import {reservedWords, keywords} from \"./identifier\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\nimport {getOptions} from \"./options\"\nimport {wordsRegexp} from \"./util\"\nimport {SCOPE_TOP, SCOPE_FUNCTION, SCOPE_ASYNC, SCOPE_GENERATOR, SCOPE_SUPER, SCOPE_DIRECT_SUPER} from \"./scopeflags\"\n\nexport class Parser {\n  constructor(options, input, startPos) {\n    this.options = options = getOptions(options)\n    this.sourceFile = options.sourceFile\n    this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5])\n    let reserved = \"\"\n    if (!options.allowReserved) {\n      for (let v = options.ecmaVersion;; v--)\n        if (reserved = reservedWords[v]) break\n      if (options.sourceType === \"module\") reserved += \" await\"\n    }\n    this.reservedWords = wordsRegexp(reserved)\n    let reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict\n    this.reservedWordsStrict = wordsRegexp(reservedStrict)\n    this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind)\n    this.input = String(input)\n\n    // Used to signal to callers of `readWord1` whether the word\n    // contained any escape sequences. This is needed because words with\n    // escape sequences must not be interpreted as keywords.\n    this.containsEsc = false\n\n    // Set up token state\n\n    // The current position of the tokenizer in the input.\n    if (startPos) {\n      this.pos = startPos\n      this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1\n      this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length\n    } else {\n      this.pos = this.lineStart = 0\n      this.curLine = 1\n    }\n\n    // Properties of the current token:\n    // Its type\n    this.type = tt.eof\n    // For tokens that include more information than their type, the value\n    this.value = null\n    // Its start and end offset\n    this.start = this.end = this.pos\n    // And, if locations are used, the {line, column} object\n    // corresponding to those offsets\n    this.startLoc = this.endLoc = this.curPosition()\n\n    // Position information for the previous token\n    this.lastTokEndLoc = this.lastTokStartLoc = null\n    this.lastTokStart = this.lastTokEnd = this.pos\n\n    // The context stack is used to superficially track syntactic\n    // context to predict whether a regular expression is allowed in a\n    // given position.\n    this.context = this.initialContext()\n    this.exprAllowed = true\n\n    // Figure out if it's a module code.\n    this.inModule = options.sourceType === \"module\"\n    this.strict = this.inModule || this.strictDirective(this.pos)\n\n    // Used to signify the start of a potential arrow function\n    this.potentialArrowAt = -1\n\n    // Positions to delayed-check that yield/await does not exist in default parameters.\n    this.yieldPos = this.awaitPos = this.awaitIdentPos = 0\n    // Labels in scope.\n    this.labels = []\n    // Thus-far undefined exports.\n    this.undefinedExports = {}\n\n    // If enabled, skip leading hashbang line.\n    if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n      this.skipLineComment(2)\n\n    // Scope tracking for duplicate variable names (see scope.js)\n    this.scopeStack = []\n    this.enterScope(SCOPE_TOP)\n\n    // For RegExp validation\n    this.regexpState = null\n  }\n\n  parse() {\n    let node = this.options.program || this.startNode()\n    this.nextToken()\n    return this.parseTopLevel(node)\n  }\n\n  get inFunction() { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }\n  get inGenerator() { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }\n  get inAsync() { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }\n  get allowSuper() { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 }\n  get allowDirectSuper() { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }\n  get treatFunctionsAsVar() { return this.treatFunctionsAsVarInScope(this.currentScope()) }\n\n  // Switch to a getter for 7.0.0.\n  inNonArrowFunction() { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 }\n\n  static extend(...plugins) {\n    let cls = this\n    for (let i = 0; i < plugins.length; i++) cls = plugins[i](cls)\n    return cls\n  }\n\n  static parse(input, options) {\n    return new this(options, input).parse()\n  }\n\n  static parseExpressionAt(input, pos, options) {\n    let parser = new this(options, input, pos)\n    parser.nextToken()\n    return parser.parseExpression()\n  }\n\n  static tokenizer(input, options) {\n    return new this(options, input)\n  }\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\n\nconst pp = Parser.prototype\n\n// ## Parser utilities\n\nconst literal = /^(?:'((?:\\\\.|[^'])*?)'|\"((?:\\\\.|[^\"])*?)\")/\npp.strictDirective = function(start) {\n  for (;;) {\n    // Try to find string literal.\n    skipWhiteSpace.lastIndex = start\n    start += skipWhiteSpace.exec(this.input)[0].length\n    let match = literal.exec(this.input.slice(start))\n    if (!match) return false\n    if ((match[1] || match[2]) === \"use strict\") return true\n    start += match[0].length\n\n    // Skip semicolon, if any.\n    skipWhiteSpace.lastIndex = start\n    start += skipWhiteSpace.exec(this.input)[0].length\n    if (this.input[start] === \";\")\n      start++\n  }\n}\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp.eat = function(type) {\n  if (this.type === type) {\n    this.next()\n    return true\n  } else {\n    return false\n  }\n}\n\n// Tests whether parsed token is a contextual keyword.\n\npp.isContextual = function(name) {\n  return this.type === tt.name && this.value === name && !this.containsEsc\n}\n\n// Consumes contextual keyword if possible.\n\npp.eatContextual = function(name) {\n  if (!this.isContextual(name)) return false\n  this.next()\n  return true\n}\n\n// Asserts that following token is given contextual keyword.\n\npp.expectContextual = function(name) {\n  if (!this.eatContextual(name)) this.unexpected()\n}\n\n// Test whether a semicolon can be inserted at the current position.\n\npp.canInsertSemicolon = function() {\n  return this.type === tt.eof ||\n    this.type === tt.braceR ||\n    lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\npp.insertSemicolon = function() {\n  if (this.canInsertSemicolon()) {\n    if (this.options.onInsertedSemicolon)\n      this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc)\n    return true\n  }\n}\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp.semicolon = function() {\n  if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected()\n}\n\npp.afterTrailingComma = function(tokType, notNext) {\n  if (this.type === tokType) {\n    if (this.options.onTrailingComma)\n      this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc)\n    if (!notNext)\n      this.next()\n    return true\n  }\n}\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp.expect = function(type) {\n  this.eat(type) || this.unexpected()\n}\n\n// Raise an unexpected token error.\n\npp.unexpected = function(pos) {\n  this.raise(pos != null ? pos : this.start, \"Unexpected token\")\n}\n\nexport function DestructuringErrors() {\n  this.shorthandAssign =\n  this.trailingComma =\n  this.parenthesizedAssign =\n  this.parenthesizedBind =\n  this.doubleProto =\n    -1\n}\n\npp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n  if (!refDestructuringErrors) return\n  if (refDestructuringErrors.trailingComma > -1)\n    this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\")\n  let parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind\n  if (parens > -1) this.raiseRecoverable(parens, \"Parenthesized pattern\")\n}\n\npp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n  if (!refDestructuringErrors) return false\n  let {shorthandAssign, doubleProto} = refDestructuringErrors\n  if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0\n  if (shorthandAssign >= 0)\n    this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\")\n  if (doubleProto >= 0)\n    this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\")\n}\n\npp.checkYieldAwaitInDefaultParams = function() {\n  if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n    this.raise(this.yieldPos, \"Yield expression cannot be a default value\")\n  if (this.awaitPos)\n    this.raise(this.awaitPos, \"Await expression cannot be a default value\")\n}\n\npp.isSimpleAssignTarget = function(expr) {\n  if (expr.type === \"ParenthesizedExpression\")\n    return this.isSimpleAssignTarget(expr.expression)\n  return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\nimport {isIdentifierStart, isIdentifierChar, keywordRelationalOperator} from \"./identifier\"\nimport {has} from \"./util\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {functionFlags, SCOPE_SIMPLE_CATCH, BIND_SIMPLE_CATCH, BIND_LEXICAL, BIND_VAR, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node.  Optionally takes a\n// `program` argument.  If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp.parseTopLevel = function(node) {\n  let exports = {}\n  if (!node.body) node.body = []\n  while (this.type !== tt.eof) {\n    let stmt = this.parseStatement(null, true, exports)\n    node.body.push(stmt)\n  }\n  if (this.inModule)\n    for (let name of Object.keys(this.undefinedExports))\n      this.raiseRecoverable(this.undefinedExports[name].start, `Export '${name}' is not defined`)\n  this.adaptDirectivePrologue(node.body)\n  this.next()\n  if (this.options.ecmaVersion >= 6) {\n    node.sourceType = this.options.sourceType\n  }\n  return this.finishNode(node, \"Program\")\n}\n\nconst loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"}\n\npp.isLet = function(context) {\n  if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) return false\n  skipWhiteSpace.lastIndex = this.pos\n  let skip = skipWhiteSpace.exec(this.input)\n  let next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next)\n  // For ambiguous cases, determine if a LexicalDeclaration (or only a\n  // Statement) is allowed here. If context is not empty then only a Statement\n  // is allowed. However, `let [` is an explicit negative lookahead for\n  // ExpressionStatement, so special-case it first.\n  if (nextCh === 91) return true // '['\n  if (context) return false\n\n  if (nextCh === 123) return true // '{'\n  if (isIdentifierStart(nextCh, true)) {\n    let pos = next + 1\n    while (isIdentifierChar(this.input.charCodeAt(pos), true)) ++pos\n    let ident = this.input.slice(next, pos)\n    if (!keywordRelationalOperator.test(ident)) return true\n  }\n  return false\n}\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp.isAsyncFunction = function() {\n  if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n    return false\n\n  skipWhiteSpace.lastIndex = this.pos\n  let skip = skipWhiteSpace.exec(this.input)\n  let next = this.pos + skip[0].length\n  return !lineBreak.test(this.input.slice(this.pos, next)) &&\n    this.input.slice(next, next + 8) === \"function\" &&\n    (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))\n}\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp.parseStatement = function(context, topLevel, exports) {\n  let starttype = this.type, node = this.startNode(), kind\n\n  if (this.isLet(context)) {\n    starttype = tt._var\n    kind = \"let\"\n  }\n\n  // Most types of statements are recognized by the keyword they\n  // start with. Many are trivial to parse, some require a bit of\n  // complexity.\n\n  switch (starttype) {\n  case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n  case tt._debugger: return this.parseDebuggerStatement(node)\n  case tt._do: return this.parseDoStatement(node)\n  case tt._for: return this.parseForStatement(node)\n  case tt._function:\n    // Function as sole body of either an if statement or a labeled statement\n    // works, but not when it is part of a labeled statement that is the sole\n    // body of an if statement.\n    if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) this.unexpected()\n    return this.parseFunctionStatement(node, false, !context)\n  case tt._class:\n    if (context) this.unexpected()\n    return this.parseClass(node, true)\n  case tt._if: return this.parseIfStatement(node)\n  case tt._return: return this.parseReturnStatement(node)\n  case tt._switch: return this.parseSwitchStatement(node)\n  case tt._throw: return this.parseThrowStatement(node)\n  case tt._try: return this.parseTryStatement(node)\n  case tt._const: case tt._var:\n    kind = kind || this.value\n    if (context && kind !== \"var\") this.unexpected()\n    return this.parseVarStatement(node, kind)\n  case tt._while: return this.parseWhileStatement(node)\n  case tt._with: return this.parseWithStatement(node)\n  case tt.braceL: return this.parseBlock(true, node)\n  case tt.semi: return this.parseEmptyStatement(node)\n  case tt._export:\n  case tt._import:\n    if (!this.options.allowImportExportEverywhere) {\n      if (!topLevel)\n        this.raise(this.start, \"'import' and 'export' may only appear at the top level\")\n      if (!this.inModule)\n        this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\")\n    }\n    return starttype === tt._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n  default:\n    if (this.isAsyncFunction()) {\n      if (context) this.unexpected()\n      this.next()\n      return this.parseFunctionStatement(node, true, !context)\n    }\n\n    let maybeName = this.value, expr = this.parseExpression()\n    if (starttype === tt.name && expr.type === \"Identifier\" && this.eat(tt.colon))\n      return this.parseLabeledStatement(node, maybeName, expr, context)\n    else return this.parseExpressionStatement(node, expr)\n  }\n}\n\npp.parseBreakContinueStatement = function(node, keyword) {\n  let isBreak = keyword === \"break\"\n  this.next()\n  if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null\n  else if (this.type !== tt.name) this.unexpected()\n  else {\n    node.label = this.parseIdent()\n    this.semicolon()\n  }\n\n  // Verify that there is an actual destination to break or\n  // continue to.\n  let i = 0\n  for (; i < this.labels.length; ++i) {\n    let lab = this.labels[i]\n    if (node.label == null || lab.name === node.label.name) {\n      if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break\n      if (node.label && isBreak) break\n    }\n  }\n  if (i === this.labels.length) this.raise(node.start, \"Unsyntactic \" + keyword)\n  return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n}\n\npp.parseDebuggerStatement = function(node) {\n  this.next()\n  this.semicolon()\n  return this.finishNode(node, \"DebuggerStatement\")\n}\n\npp.parseDoStatement = function(node) {\n  this.next()\n  this.labels.push(loopLabel)\n  node.body = this.parseStatement(\"do\")\n  this.labels.pop()\n  this.expect(tt._while)\n  node.test = this.parseParenExpression()\n  if (this.options.ecmaVersion >= 6)\n    this.eat(tt.semi)\n  else\n    this.semicolon()\n  return this.finishNode(node, \"DoWhileStatement\")\n}\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp.parseForStatement = function(node) {\n  this.next()\n  let awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual(\"await\")) ? this.lastTokStart : -1\n  this.labels.push(loopLabel)\n  this.enterScope(0)\n  this.expect(tt.parenL)\n  if (this.type === tt.semi) {\n    if (awaitAt > -1) this.unexpected(awaitAt)\n    return this.parseFor(node, null)\n  }\n  let isLet = this.isLet()\n  if (this.type === tt._var || this.type === tt._const || isLet) {\n    let init = this.startNode(), kind = isLet ? \"let\" : this.value\n    this.next()\n    this.parseVar(init, true, kind)\n    this.finishNode(init, \"VariableDeclaration\")\n    if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1 &&\n        !(kind !== \"var\" && init.declarations[0].init)) {\n      if (this.options.ecmaVersion >= 9) {\n        if (this.type === tt._in) {\n          if (awaitAt > -1) this.unexpected(awaitAt)\n        } else node.await = awaitAt > -1\n      }\n      return this.parseForIn(node, init)\n    }\n    if (awaitAt > -1) this.unexpected(awaitAt)\n    return this.parseFor(node, init)\n  }\n  let refDestructuringErrors = new DestructuringErrors\n  let init = this.parseExpression(true, refDestructuringErrors)\n  if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n    if (this.options.ecmaVersion >= 9) {\n      if (this.type === tt._in) {\n        if (awaitAt > -1) this.unexpected(awaitAt)\n      } else node.await = awaitAt > -1\n    }\n    this.toAssignable(init, false, refDestructuringErrors)\n    this.checkLVal(init)\n    return this.parseForIn(node, init)\n  } else {\n    this.checkExpressionErrors(refDestructuringErrors, true)\n  }\n  if (awaitAt > -1) this.unexpected(awaitAt)\n  return this.parseFor(node, init)\n}\n\npp.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n  this.next()\n  return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n}\n\npp.parseIfStatement = function(node) {\n  this.next()\n  node.test = this.parseParenExpression()\n  // allow function declarations in branches, but only in non-strict mode\n  node.consequent = this.parseStatement(\"if\")\n  node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null\n  return this.finishNode(node, \"IfStatement\")\n}\n\npp.parseReturnStatement = function(node) {\n  if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n    this.raise(this.start, \"'return' outside of function\")\n  this.next()\n\n  // In `return` (and `break`/`continue`), the keywords with\n  // optional arguments, we eagerly look for a semicolon or the\n  // possibility to insert one.\n\n  if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null\n  else { node.argument = this.parseExpression(); this.semicolon() }\n  return this.finishNode(node, \"ReturnStatement\")\n}\n\npp.parseSwitchStatement = function(node) {\n  this.next()\n  node.discriminant = this.parseParenExpression()\n  node.cases = []\n  this.expect(tt.braceL)\n  this.labels.push(switchLabel)\n  this.enterScope(0)\n\n  // Statements under must be grouped (by label) in SwitchCase\n  // nodes. `cur` is used to keep the node that we are currently\n  // adding statements to.\n\n  let cur\n  for (let sawDefault = false; this.type !== tt.braceR;) {\n    if (this.type === tt._case || this.type === tt._default) {\n      let isCase = this.type === tt._case\n      if (cur) this.finishNode(cur, \"SwitchCase\")\n      node.cases.push(cur = this.startNode())\n      cur.consequent = []\n      this.next()\n      if (isCase) {\n        cur.test = this.parseExpression()\n      } else {\n        if (sawDefault) this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\")\n        sawDefault = true\n        cur.test = null\n      }\n      this.expect(tt.colon)\n    } else {\n      if (!cur) this.unexpected()\n      cur.consequent.push(this.parseStatement(null))\n    }\n  }\n  this.exitScope()\n  if (cur) this.finishNode(cur, \"SwitchCase\")\n  this.next() // Closing brace\n  this.labels.pop()\n  return this.finishNode(node, \"SwitchStatement\")\n}\n\npp.parseThrowStatement = function(node) {\n  this.next()\n  if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n    this.raise(this.lastTokEnd, \"Illegal newline after throw\")\n  node.argument = this.parseExpression()\n  this.semicolon()\n  return this.finishNode(node, \"ThrowStatement\")\n}\n\n// Reused empty array added for node fields that are always empty.\n\nconst empty = []\n\npp.parseTryStatement = function(node) {\n  this.next()\n  node.block = this.parseBlock()\n  node.handler = null\n  if (this.type === tt._catch) {\n    let clause = this.startNode()\n    this.next()\n    if (this.eat(tt.parenL)) {\n      clause.param = this.parseBindingAtom()\n      let simple = clause.param.type === \"Identifier\"\n      this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0)\n      this.checkLVal(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL)\n      this.expect(tt.parenR)\n    } else {\n      if (this.options.ecmaVersion < 10) this.unexpected()\n      clause.param = null\n      this.enterScope(0)\n    }\n    clause.body = this.parseBlock(false)\n    this.exitScope()\n    node.handler = this.finishNode(clause, \"CatchClause\")\n  }\n  node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null\n  if (!node.handler && !node.finalizer)\n    this.raise(node.start, \"Missing catch or finally clause\")\n  return this.finishNode(node, \"TryStatement\")\n}\n\npp.parseVarStatement = function(node, kind) {\n  this.next()\n  this.parseVar(node, false, kind)\n  this.semicolon()\n  return this.finishNode(node, \"VariableDeclaration\")\n}\n\npp.parseWhileStatement = function(node) {\n  this.next()\n  node.test = this.parseParenExpression()\n  this.labels.push(loopLabel)\n  node.body = this.parseStatement(\"while\")\n  this.labels.pop()\n  return this.finishNode(node, \"WhileStatement\")\n}\n\npp.parseWithStatement = function(node) {\n  if (this.strict) this.raise(this.start, \"'with' in strict mode\")\n  this.next()\n  node.object = this.parseParenExpression()\n  node.body = this.parseStatement(\"with\")\n  return this.finishNode(node, \"WithStatement\")\n}\n\npp.parseEmptyStatement = function(node) {\n  this.next()\n  return this.finishNode(node, \"EmptyStatement\")\n}\n\npp.parseLabeledStatement = function(node, maybeName, expr, context) {\n  for (let label of this.labels)\n    if (label.name === maybeName)\n      this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\")\n  let kind = this.type.isLoop ? \"loop\" : this.type === tt._switch ? \"switch\" : null\n  for (let i = this.labels.length - 1; i >= 0; i--) {\n    let label = this.labels[i]\n    if (label.statementStart === node.start) {\n      // Update information about previous labels on this node\n      label.statementStart = this.start\n      label.kind = kind\n    } else break\n  }\n  this.labels.push({name: maybeName, kind, statementStart: this.start})\n  node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\")\n  this.labels.pop()\n  node.label = expr\n  return this.finishNode(node, \"LabeledStatement\")\n}\n\npp.parseExpressionStatement = function(node, expr) {\n  node.expression = expr\n  this.semicolon()\n  return this.finishNode(node, \"ExpressionStatement\")\n}\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp.parseBlock = function(createNewLexicalScope = true, node = this.startNode()) {\n  node.body = []\n  this.expect(tt.braceL)\n  if (createNewLexicalScope) this.enterScope(0)\n  while (!this.eat(tt.braceR)) {\n    let stmt = this.parseStatement(null)\n    node.body.push(stmt)\n  }\n  if (createNewLexicalScope) this.exitScope()\n  return this.finishNode(node, \"BlockStatement\")\n}\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp.parseFor = function(node, init) {\n  node.init = init\n  this.expect(tt.semi)\n  node.test = this.type === tt.semi ? null : this.parseExpression()\n  this.expect(tt.semi)\n  node.update = this.type === tt.parenR ? null : this.parseExpression()\n  this.expect(tt.parenR)\n  node.body = this.parseStatement(\"for\")\n  this.exitScope()\n  this.labels.pop()\n  return this.finishNode(node, \"ForStatement\")\n}\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp.parseForIn = function(node, init) {\n  let type = this.type === tt._in ? \"ForInStatement\" : \"ForOfStatement\"\n  this.next()\n  if (type === \"ForInStatement\") {\n    if (init.type === \"AssignmentPattern\" ||\n      (init.type === \"VariableDeclaration\" && init.declarations[0].init != null &&\n       (this.strict || init.declarations[0].id.type !== \"Identifier\")))\n      this.raise(init.start, \"Invalid assignment in for-in loop head\")\n  }\n  node.left = init\n  node.right = type === \"ForInStatement\" ? this.parseExpression() : this.parseMaybeAssign()\n  this.expect(tt.parenR)\n  node.body = this.parseStatement(\"for\")\n  this.exitScope()\n  this.labels.pop()\n  return this.finishNode(node, type)\n}\n\n// Parse a list of variable declarations.\n\npp.parseVar = function(node, isFor, kind) {\n  node.declarations = []\n  node.kind = kind\n  for (;;) {\n    let decl = this.startNode()\n    this.parseVarId(decl, kind)\n    if (this.eat(tt.eq)) {\n      decl.init = this.parseMaybeAssign(isFor)\n    } else if (kind === \"const\" && !(this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n      this.unexpected()\n    } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === tt._in || this.isContextual(\"of\")))) {\n      this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\")\n    } else {\n      decl.init = null\n    }\n    node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"))\n    if (!this.eat(tt.comma)) break\n  }\n  return node\n}\n\npp.parseVarId = function(decl, kind) {\n  if ((kind === \"const\" || kind === \"let\") && this.isContextual(\"let\")) {\n    this.raiseRecoverable(this.start, \"let is disallowed as a lexically bound name\")\n  }\n  decl.id = this.parseBindingAtom()\n  this.checkLVal(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false)\n}\n\nconst FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n    if (this.type === tt.star && (statement & FUNC_HANGING_STATEMENT))\n      this.unexpected()\n    node.generator = this.eat(tt.star)\n  }\n  if (this.options.ecmaVersion >= 8)\n    node.async = !!isAsync\n\n  if (statement & FUNC_STATEMENT) {\n    node.id = (statement & FUNC_NULLABLE_ID) && this.type !== tt.name ? null : this.parseIdent()\n    if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n      // If it is a regular function declaration in sloppy mode, then it is\n      // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n      // mode depends on properties of the current scope (see\n      // treatFunctionsAsVar).\n      this.checkLVal(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION)\n  }\n\n  let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n  this.enterScope(functionFlags(node.async, node.generator))\n\n  if (!(statement & FUNC_STATEMENT))\n    node.id = this.type === tt.name ? this.parseIdent() : null\n\n  this.parseFunctionParams(node)\n  this.parseFunctionBody(node, allowExpressionBody, false)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n}\n\npp.parseFunctionParams = function(node) {\n  this.expect(tt.parenL)\n  node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n  this.checkYieldAwaitInDefaultParams()\n}\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp.parseClass = function(node, isStatement) {\n  this.next()\n\n  // ecma-262 14.6 Class Definitions\n  // A class definition is always strict mode code.\n  const oldStrict = this.strict\n  this.strict = true\n\n  this.parseClassId(node, isStatement)\n  this.parseClassSuper(node)\n  let classBody = this.startNode()\n  let hadConstructor = false\n  classBody.body = []\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    const element = this.parseClassElement(node.superClass !== null)\n    if (element) {\n      classBody.body.push(element)\n      if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n        if (hadConstructor) this.raise(element.start, \"Duplicate constructor in the same class\")\n        hadConstructor = true\n      }\n    }\n  }\n  node.body = this.finishNode(classBody, \"ClassBody\")\n  this.strict = oldStrict\n  return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n}\n\npp.parseClassElement = function(constructorAllowsSuper) {\n  if (this.eat(tt.semi)) return null\n\n  let method = this.startNode()\n  const tryContextual = (k, noLineBreak = false) => {\n    const start = this.start, startLoc = this.startLoc\n    if (!this.eatContextual(k)) return false\n    if (this.type !== tt.parenL && (!noLineBreak || !this.canInsertSemicolon())) return true\n    if (method.key) this.unexpected()\n    method.computed = false\n    method.key = this.startNodeAt(start, startLoc)\n    method.key.name = k\n    this.finishNode(method.key, \"Identifier\")\n    return false\n  }\n\n  method.kind = \"method\"\n  method.static = tryContextual(\"static\")\n  let isGenerator = this.eat(tt.star)\n  let isAsync = false\n  if (!isGenerator) {\n    if (this.options.ecmaVersion >= 8 && tryContextual(\"async\", true)) {\n      isAsync = true\n      isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n    } else if (tryContextual(\"get\")) {\n      method.kind = \"get\"\n    } else if (tryContextual(\"set\")) {\n      method.kind = \"set\"\n    }\n  }\n  if (!method.key) this.parsePropertyName(method)\n  let {key} = method\n  let allowsDirectSuper = false\n  if (!method.computed && !method.static && (key.type === \"Identifier\" && key.name === \"constructor\" ||\n      key.type === \"Literal\" && key.value === \"constructor\")) {\n    if (method.kind !== \"method\") this.raise(key.start, \"Constructor can't have get/set modifier\")\n    if (isGenerator) this.raise(key.start, \"Constructor can't be a generator\")\n    if (isAsync) this.raise(key.start, \"Constructor can't be an async method\")\n    method.kind = \"constructor\"\n    allowsDirectSuper = constructorAllowsSuper\n  } else if (method.static && key.type === \"Identifier\" && key.name === \"prototype\") {\n    this.raise(key.start, \"Classes may not have a static property named prototype\")\n  }\n  this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper)\n  if (method.kind === \"get\" && method.value.params.length !== 0)\n    this.raiseRecoverable(method.value.start, \"getter should have no params\")\n  if (method.kind === \"set\" && method.value.params.length !== 1)\n    this.raiseRecoverable(method.value.start, \"setter should have exactly one param\")\n  if (method.kind === \"set\" && method.value.params[0].type === \"RestElement\")\n    this.raiseRecoverable(method.value.params[0].start, \"Setter cannot use rest params\")\n  return method\n}\n\npp.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n  method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper)\n  return this.finishNode(method, \"MethodDefinition\")\n}\n\npp.parseClassId = function(node, isStatement) {\n  if (this.type === tt.name) {\n    node.id = this.parseIdent()\n    if (isStatement)\n      this.checkLVal(node.id, BIND_LEXICAL, false)\n  } else {\n    if (isStatement === true)\n      this.unexpected()\n    node.id = null\n  }\n}\n\npp.parseClassSuper = function(node) {\n  node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null\n}\n\n// Parses module export declaration.\n\npp.parseExport = function(node, exports) {\n  this.next()\n  // export * from '...'\n  if (this.eat(tt.star)) {\n    this.expectContextual(\"from\")\n    if (this.type !== tt.string) this.unexpected()\n    node.source = this.parseExprAtom()\n    this.semicolon()\n    return this.finishNode(node, \"ExportAllDeclaration\")\n  }\n  if (this.eat(tt._default)) { // export default ...\n    this.checkExport(exports, \"default\", this.lastTokStart)\n    let isAsync\n    if (this.type === tt._function || (isAsync = this.isAsyncFunction())) {\n      let fNode = this.startNode()\n      this.next()\n      if (isAsync) this.next()\n      node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n    } else if (this.type === tt._class) {\n      let cNode = this.startNode()\n      node.declaration = this.parseClass(cNode, \"nullableID\")\n    } else {\n      node.declaration = this.parseMaybeAssign()\n      this.semicolon()\n    }\n    return this.finishNode(node, \"ExportDefaultDeclaration\")\n  }\n  // export var|const|let|function|class ...\n  if (this.shouldParseExportStatement()) {\n    node.declaration = this.parseStatement(null)\n    if (node.declaration.type === \"VariableDeclaration\")\n      this.checkVariableExport(exports, node.declaration.declarations)\n    else\n      this.checkExport(exports, node.declaration.id.name, node.declaration.id.start)\n    node.specifiers = []\n    node.source = null\n  } else { // export { x, y as z } [from '...']\n    node.declaration = null\n    node.specifiers = this.parseExportSpecifiers(exports)\n    if (this.eatContextual(\"from\")) {\n      if (this.type !== tt.string) this.unexpected()\n      node.source = this.parseExprAtom()\n    } else {\n      for (let spec of node.specifiers) {\n        // check for keywords used as local names\n        this.checkUnreserved(spec.local)\n        // check if export is defined\n        this.checkLocalExport(spec.local)\n      }\n\n      node.source = null\n    }\n    this.semicolon()\n  }\n  return this.finishNode(node, \"ExportNamedDeclaration\")\n}\n\npp.checkExport = function(exports, name, pos) {\n  if (!exports) return\n  if (has(exports, name))\n    this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\")\n  exports[name] = true\n}\n\npp.checkPatternExport = function(exports, pat) {\n  let type = pat.type\n  if (type === \"Identifier\")\n    this.checkExport(exports, pat.name, pat.start)\n  else if (type === \"ObjectPattern\")\n    for (let prop of pat.properties)\n      this.checkPatternExport(exports, prop)\n  else if (type === \"ArrayPattern\")\n    for (let elt of pat.elements) {\n      if (elt) this.checkPatternExport(exports, elt)\n    }\n  else if (type === \"Property\")\n    this.checkPatternExport(exports, pat.value)\n  else if (type === \"AssignmentPattern\")\n    this.checkPatternExport(exports, pat.left)\n  else if (type === \"RestElement\")\n    this.checkPatternExport(exports, pat.argument)\n  else if (type === \"ParenthesizedExpression\")\n    this.checkPatternExport(exports, pat.expression)\n}\n\npp.checkVariableExport = function(exports, decls) {\n  if (!exports) return\n  for (let decl of decls)\n    this.checkPatternExport(exports, decl.id)\n}\n\npp.shouldParseExportStatement = function() {\n  return this.type.keyword === \"var\" ||\n    this.type.keyword === \"const\" ||\n    this.type.keyword === \"class\" ||\n    this.type.keyword === \"function\" ||\n    this.isLet() ||\n    this.isAsyncFunction()\n}\n\n// Parses a comma-separated list of module exports.\n\npp.parseExportSpecifiers = function(exports) {\n  let nodes = [], first = true\n  // export { x, y as z } [from '...']\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    let node = this.startNode()\n    node.local = this.parseIdent(true)\n    node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local\n    this.checkExport(exports, node.exported.name, node.exported.start)\n    nodes.push(this.finishNode(node, \"ExportSpecifier\"))\n  }\n  return nodes\n}\n\n// Parses import declaration.\n\npp.parseImport = function(node) {\n  this.next()\n  // import '...'\n  if (this.type === tt.string) {\n    node.specifiers = empty\n    node.source = this.parseExprAtom()\n  } else {\n    node.specifiers = this.parseImportSpecifiers()\n    this.expectContextual(\"from\")\n    node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()\n  }\n  this.semicolon()\n  return this.finishNode(node, \"ImportDeclaration\")\n}\n\n// Parses a comma-separated list of module imports.\n\npp.parseImportSpecifiers = function() {\n  let nodes = [], first = true\n  if (this.type === tt.name) {\n    // import defaultObj, { x, y as z } from '...'\n    let node = this.startNode()\n    node.local = this.parseIdent()\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"))\n    if (!this.eat(tt.comma)) return nodes\n  }\n  if (this.type === tt.star) {\n    let node = this.startNode()\n    this.next()\n    this.expectContextual(\"as\")\n    node.local = this.parseIdent()\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportNamespaceSpecifier\"))\n    return nodes\n  }\n  this.expect(tt.braceL)\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    let node = this.startNode()\n    node.imported = this.parseIdent(true)\n    if (this.eatContextual(\"as\")) {\n      node.local = this.parseIdent()\n    } else {\n      this.checkUnreserved(node.imported)\n      node.local = node.imported\n    }\n    this.checkLVal(node.local, BIND_LEXICAL)\n    nodes.push(this.finishNode(node, \"ImportSpecifier\"))\n  }\n  return nodes\n}\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp.adaptDirectivePrologue = function(statements) {\n  for (let i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n    statements[i].directive = statements[i].expression.raw.slice(1, -1)\n  }\n}\npp.isDirectiveCandidate = function(statement) {\n  return (\n    statement.type === \"ExpressionStatement\" &&\n    statement.expression.type === \"Literal\" &&\n    typeof statement.expression.value === \"string\" &&\n    // Reject parenthesized strings.\n    (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n  )\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {has} from \"./util\"\nimport {BIND_NONE, BIND_OUTSIDE} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp.toAssignable = function(node, isBinding, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 6 && node) {\n    switch (node.type) {\n    case \"Identifier\":\n      if (this.inAsync && node.name === \"await\")\n        this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\")\n      break\n\n    case \"ObjectPattern\":\n    case \"ArrayPattern\":\n    case \"RestElement\":\n      break\n\n    case \"ObjectExpression\":\n      node.type = \"ObjectPattern\"\n      if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n      for (let prop of node.properties) {\n        this.toAssignable(prop, isBinding)\n        // Early error:\n        //   AssignmentRestProperty[Yield, Await] :\n        //     `...` DestructuringAssignmentTarget[Yield, Await]\n        //\n        //   It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n        if (\n          prop.type === \"RestElement\" &&\n          (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n        ) {\n          this.raise(prop.argument.start, \"Unexpected token\")\n        }\n      }\n      break\n\n    case \"Property\":\n      // AssignmentProperty has type === \"Property\"\n      if (node.kind !== \"init\") this.raise(node.key.start, \"Object pattern can't contain getter or setter\")\n      this.toAssignable(node.value, isBinding)\n      break\n\n    case \"ArrayExpression\":\n      node.type = \"ArrayPattern\"\n      if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n      this.toAssignableList(node.elements, isBinding)\n      break\n\n    case \"SpreadElement\":\n      node.type = \"RestElement\"\n      this.toAssignable(node.argument, isBinding)\n      if (node.argument.type === \"AssignmentPattern\")\n        this.raise(node.argument.start, \"Rest elements cannot have a default value\")\n      break\n\n    case \"AssignmentExpression\":\n      if (node.operator !== \"=\") this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\")\n      node.type = \"AssignmentPattern\"\n      delete node.operator\n      this.toAssignable(node.left, isBinding)\n      // falls through to AssignmentPattern\n\n    case \"AssignmentPattern\":\n      break\n\n    case \"ParenthesizedExpression\":\n      this.toAssignable(node.expression, isBinding, refDestructuringErrors)\n      break\n\n    case \"MemberExpression\":\n      if (!isBinding) break\n\n    default:\n      this.raise(node.start, \"Assigning to rvalue\")\n    }\n  } else if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n  return node\n}\n\n// Convert list of expression atoms to binding list.\n\npp.toAssignableList = function(exprList, isBinding) {\n  let end = exprList.length\n  for (let i = 0; i < end; i++) {\n    let elt = exprList[i]\n    if (elt) this.toAssignable(elt, isBinding)\n  }\n  if (end) {\n    let last = exprList[end - 1]\n    if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n      this.unexpected(last.argument.start)\n  }\n  return exprList\n}\n\n// Parses spread element.\n\npp.parseSpread = function(refDestructuringErrors) {\n  let node = this.startNode()\n  this.next()\n  node.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n  return this.finishNode(node, \"SpreadElement\")\n}\n\npp.parseRestBinding = function() {\n  let node = this.startNode()\n  this.next()\n\n  // RestElement inside of a function parameter must be an identifier\n  if (this.options.ecmaVersion === 6 && this.type !== tt.name)\n    this.unexpected()\n\n  node.argument = this.parseBindingAtom()\n\n  return this.finishNode(node, \"RestElement\")\n}\n\n// Parses lvalue (assignable) atom.\n\npp.parseBindingAtom = function() {\n  if (this.options.ecmaVersion >= 6) {\n    switch (this.type) {\n    case tt.bracketL:\n      let node = this.startNode()\n      this.next()\n      node.elements = this.parseBindingList(tt.bracketR, true, true)\n      return this.finishNode(node, \"ArrayPattern\")\n\n    case tt.braceL:\n      return this.parseObj(true)\n    }\n  }\n  return this.parseIdent()\n}\n\npp.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n  let elts = [], first = true\n  while (!this.eat(close)) {\n    if (first) first = false\n    else this.expect(tt.comma)\n    if (allowEmpty && this.type === tt.comma) {\n      elts.push(null)\n    } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n      break\n    } else if (this.type === tt.ellipsis) {\n      let rest = this.parseRestBinding()\n      this.parseBindingListItem(rest)\n      elts.push(rest)\n      if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n      this.expect(close)\n      break\n    } else {\n      let elem = this.parseMaybeDefault(this.start, this.startLoc)\n      this.parseBindingListItem(elem)\n      elts.push(elem)\n    }\n  }\n  return elts\n}\n\npp.parseBindingListItem = function(param) {\n  return param\n}\n\n// Parses assignment pattern around given atom if possible.\n\npp.parseMaybeDefault = function(startPos, startLoc, left) {\n  left = left || this.parseBindingAtom()\n  if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left\n  let node = this.startNodeAt(startPos, startLoc)\n  node.left = left\n  node.right = this.parseMaybeAssign()\n  return this.finishNode(node, \"AssignmentPattern\")\n}\n\n// Verify that a node is an lval — something that can be assigned\n// to.\n// bindingType can be either:\n// 'var' indicating that the lval creates a 'var' binding\n// 'let' indicating that the lval creates a lexical ('let' or 'const') binding\n// 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references\n\npp.checkLVal = function(expr, bindingType = BIND_NONE, checkClashes) {\n  switch (expr.type) {\n  case \"Identifier\":\n    if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n      this.raiseRecoverable(expr.start, (bindingType ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\")\n    if (checkClashes) {\n      if (has(checkClashes, expr.name))\n        this.raiseRecoverable(expr.start, \"Argument name clash\")\n      checkClashes[expr.name] = true\n    }\n    if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) this.declareName(expr.name, bindingType, expr.start)\n    break\n\n  case \"MemberExpression\":\n    if (bindingType) this.raiseRecoverable(expr.start, \"Binding member expression\")\n    break\n\n  case \"ObjectPattern\":\n    for (let prop of expr.properties)\n      this.checkLVal(prop, bindingType, checkClashes)\n    break\n\n  case \"Property\":\n    // AssignmentProperty has type === \"Property\"\n    this.checkLVal(expr.value, bindingType, checkClashes)\n    break\n\n  case \"ArrayPattern\":\n    for (let elem of expr.elements) {\n      if (elem) this.checkLVal(elem, bindingType, checkClashes)\n    }\n    break\n\n  case \"AssignmentPattern\":\n    this.checkLVal(expr.left, bindingType, checkClashes)\n    break\n\n  case \"RestElement\":\n    this.checkLVal(expr.argument, bindingType, checkClashes)\n    break\n\n  case \"ParenthesizedExpression\":\n    this.checkLVal(expr.expression, bindingType, checkClashes)\n    break\n\n  default:\n    this.raise(expr.start, (bindingType ? \"Binding\" : \"Assigning to\") + \" rvalue\")\n  }\n}\n","// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {lineBreak} from \"./whitespace\"\nimport {functionFlags, SCOPE_ARROW, SCOPE_SUPER, SCOPE_DIRECT_SUPER, BIND_OUTSIDE, BIND_VAR} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n  if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n    return\n  if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n    return\n  let {key} = prop, name\n  switch (key.type) {\n  case \"Identifier\": name = key.name; break\n  case \"Literal\": name = String(key.value); break\n  default: return\n  }\n  let {kind} = prop\n  if (this.options.ecmaVersion >= 6) {\n    if (name === \"__proto__\" && kind === \"init\") {\n      if (propHash.proto) {\n        if (refDestructuringErrors && refDestructuringErrors.doubleProto < 0) refDestructuringErrors.doubleProto = key.start\n        // Backwards-compat kludge. Can be removed in version 6.0\n        else this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\")\n      }\n      propHash.proto = true\n    }\n    return\n  }\n  name = \"$\" + name\n  let other = propHash[name]\n  if (other) {\n    let redefinition\n    if (kind === \"init\") {\n      redefinition = this.strict && other.init || other.get || other.set\n    } else {\n      redefinition = other.init || other[kind]\n    }\n    if (redefinition)\n      this.raiseRecoverable(key.start, \"Redefinition of property\")\n  } else {\n    other = propHash[name] = {\n      init: false,\n      get: false,\n      set: false\n    }\n  }\n  other[kind] = true\n}\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp.parseExpression = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseMaybeAssign(noIn, refDestructuringErrors)\n  if (this.type === tt.comma) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.expressions = [expr]\n    while (this.eat(tt.comma)) node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors))\n    return this.finishNode(node, \"SequenceExpression\")\n  }\n  return expr\n}\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {\n  if (this.isContextual(\"yield\")) {\n    if (this.inGenerator) return this.parseYield(noIn)\n    // The tokenizer will assume an expression is allowed after\n    // `yield`, but this isn't that kind of yield\n    else this.exprAllowed = false\n  }\n\n  let ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldShorthandAssign = -1\n  if (refDestructuringErrors) {\n    oldParenAssign = refDestructuringErrors.parenthesizedAssign\n    oldTrailingComma = refDestructuringErrors.trailingComma\n    oldShorthandAssign = refDestructuringErrors.shorthandAssign\n    refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.shorthandAssign = -1\n  } else {\n    refDestructuringErrors = new DestructuringErrors\n    ownDestructuringErrors = true\n  }\n\n  let startPos = this.start, startLoc = this.startLoc\n  if (this.type === tt.parenL || this.type === tt.name)\n    this.potentialArrowAt = this.start\n  let left = this.parseMaybeConditional(noIn, refDestructuringErrors)\n  if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc)\n  if (this.type.isAssign) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.operator = this.value\n    node.left = this.type === tt.eq ? this.toAssignable(left, false, refDestructuringErrors) : left\n    if (!ownDestructuringErrors) DestructuringErrors.call(refDestructuringErrors)\n    refDestructuringErrors.shorthandAssign = -1 // reset because shorthand default was used correctly\n    this.checkLVal(left)\n    this.next()\n    node.right = this.parseMaybeAssign(noIn)\n    return this.finishNode(node, \"AssignmentExpression\")\n  } else {\n    if (ownDestructuringErrors) this.checkExpressionErrors(refDestructuringErrors, true)\n  }\n  if (oldParenAssign > -1) refDestructuringErrors.parenthesizedAssign = oldParenAssign\n  if (oldTrailingComma > -1) refDestructuringErrors.trailingComma = oldTrailingComma\n  if (oldShorthandAssign > -1) refDestructuringErrors.shorthandAssign = oldShorthandAssign\n  return left\n}\n\n// Parse a ternary conditional (`?:`) operator.\n\npp.parseMaybeConditional = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseExprOps(noIn, refDestructuringErrors)\n  if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n  if (this.eat(tt.question)) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.test = expr\n    node.consequent = this.parseMaybeAssign()\n    this.expect(tt.colon)\n    node.alternate = this.parseMaybeAssign(noIn)\n    return this.finishNode(node, \"ConditionalExpression\")\n  }\n  return expr\n}\n\n// Start the precedence parser.\n\npp.parseExprOps = function(noIn, refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseMaybeUnary(refDestructuringErrors, false)\n  if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n  return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)\n}\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {\n  let prec = this.type.binop\n  if (prec != null && (!noIn || this.type !== tt._in)) {\n    if (prec > minPrec) {\n      let logical = this.type === tt.logicalOR || this.type === tt.logicalAND\n      let op = this.value\n      this.next()\n      let startPos = this.start, startLoc = this.startLoc\n      let right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn)\n      let node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical)\n      return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)\n    }\n  }\n  return left\n}\n\npp.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n  let node = this.startNodeAt(startPos, startLoc)\n  node.left = left\n  node.operator = op\n  node.right = right\n  return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n}\n\n// Parse unary operators, both prefix and postfix.\n\npp.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {\n  let startPos = this.start, startLoc = this.startLoc, expr\n  if (this.isContextual(\"await\") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {\n    expr = this.parseAwait()\n    sawUnary = true\n  } else if (this.type.prefix) {\n    let node = this.startNode(), update = this.type === tt.incDec\n    node.operator = this.value\n    node.prefix = true\n    this.next()\n    node.argument = this.parseMaybeUnary(null, true)\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    if (update) this.checkLVal(node.argument)\n    else if (this.strict && node.operator === \"delete\" &&\n             node.argument.type === \"Identifier\")\n      this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\")\n    else sawUnary = true\n    expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\")\n  } else {\n    expr = this.parseExprSubscripts(refDestructuringErrors)\n    if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n    while (this.type.postfix && !this.canInsertSemicolon()) {\n      let node = this.startNodeAt(startPos, startLoc)\n      node.operator = this.value\n      node.prefix = false\n      node.argument = expr\n      this.checkLVal(expr)\n      this.next()\n      expr = this.finishNode(node, \"UpdateExpression\")\n    }\n  }\n\n  if (!sawUnary && this.eat(tt.starstar))\n    return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false)\n  else\n    return expr\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp.parseExprSubscripts = function(refDestructuringErrors) {\n  let startPos = this.start, startLoc = this.startLoc\n  let expr = this.parseExprAtom(refDestructuringErrors)\n  let skipArrowSubscripts = expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\"\n  if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr\n  let result = this.parseSubscripts(expr, startPos, startLoc)\n  if (refDestructuringErrors && result.type === \"MemberExpression\") {\n    if (refDestructuringErrors.parenthesizedAssign >= result.start) refDestructuringErrors.parenthesizedAssign = -1\n    if (refDestructuringErrors.parenthesizedBind >= result.start) refDestructuringErrors.parenthesizedBind = -1\n  }\n  return result\n}\n\npp.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n  let maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n      this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === \"async\"\n  while (true) {\n    let element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow)\n    if (element === base || element.type === \"ArrowFunctionExpression\") return element\n    base = element\n  }\n}\n\npp.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow) {\n  let computed = this.eat(tt.bracketL)\n  if (computed || this.eat(tt.dot)) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.object = base\n    node.property = computed ? this.parseExpression() : this.parseIdent(true)\n    node.computed = !!computed\n    if (computed) this.expect(tt.bracketR)\n    base = this.finishNode(node, \"MemberExpression\")\n  } else if (!noCalls && this.eat(tt.parenL)) {\n    let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n    this.yieldPos = 0\n    this.awaitPos = 0\n    this.awaitIdentPos = 0\n    let exprList = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors)\n    if (maybeAsyncArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false)\n      this.checkYieldAwaitInDefaultParams()\n      if (this.awaitIdentPos > 0)\n        this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\")\n      this.yieldPos = oldYieldPos\n      this.awaitPos = oldAwaitPos\n      this.awaitIdentPos = oldAwaitIdentPos\n      return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n    }\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    this.yieldPos = oldYieldPos || this.yieldPos\n    this.awaitPos = oldAwaitPos || this.awaitPos\n    this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos\n    let node = this.startNodeAt(startPos, startLoc)\n    node.callee = base\n    node.arguments = exprList\n    base = this.finishNode(node, \"CallExpression\")\n  } else if (this.type === tt.backQuote) {\n    let node = this.startNodeAt(startPos, startLoc)\n    node.tag = base\n    node.quasi = this.parseTemplate({isTagged: true})\n    base = this.finishNode(node, \"TaggedTemplateExpression\")\n  }\n  return base\n}\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp.parseExprAtom = function(refDestructuringErrors) {\n  // If a division operator appears in an expression position, the\n  // tokenizer got confused, and we force it to read a regexp instead.\n  if (this.type === tt.slash) this.readRegexp()\n\n  let node, canBeArrow = this.potentialArrowAt === this.start\n  switch (this.type) {\n  case tt._super:\n    if (!this.allowSuper)\n      this.raise(this.start, \"'super' keyword outside a method\")\n    node = this.startNode()\n    this.next()\n    if (this.type === tt.parenL && !this.allowDirectSuper)\n      this.raise(node.start, \"super() call outside constructor of a subclass\")\n    // The `super` keyword can appear at below:\n    // SuperProperty:\n    //     super [ Expression ]\n    //     super . IdentifierName\n    // SuperCall:\n    //     super Arguments\n    if (this.type !== tt.dot && this.type !== tt.bracketL && this.type !== tt.parenL)\n      this.unexpected()\n    return this.finishNode(node, \"Super\")\n\n  case tt._this:\n    node = this.startNode()\n    this.next()\n    return this.finishNode(node, \"ThisExpression\")\n\n  case tt.name:\n    let startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc\n    let id = this.parseIdent(false)\n    if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(tt._function))\n      return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true)\n    if (canBeArrow && !this.canInsertSemicolon()) {\n      if (this.eat(tt.arrow))\n        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false)\n      if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === tt.name && !containsEsc) {\n        id = this.parseIdent(false)\n        if (this.canInsertSemicolon() || !this.eat(tt.arrow))\n          this.unexpected()\n        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n      }\n    }\n    return id\n\n  case tt.regexp:\n    let value = this.value\n    node = this.parseLiteral(value.value)\n    node.regex = {pattern: value.pattern, flags: value.flags}\n    return node\n\n  case tt.num: case tt.string:\n    return this.parseLiteral(this.value)\n\n  case tt._null: case tt._true: case tt._false:\n    node = this.startNode()\n    node.value = this.type === tt._null ? null : this.type === tt._true\n    node.raw = this.type.keyword\n    this.next()\n    return this.finishNode(node, \"Literal\")\n\n  case tt.parenL:\n    let start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow)\n    if (refDestructuringErrors) {\n      if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n        refDestructuringErrors.parenthesizedAssign = start\n      if (refDestructuringErrors.parenthesizedBind < 0)\n        refDestructuringErrors.parenthesizedBind = start\n    }\n    return expr\n\n  case tt.bracketL:\n    node = this.startNode()\n    this.next()\n    node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors)\n    return this.finishNode(node, \"ArrayExpression\")\n\n  case tt.braceL:\n    return this.parseObj(false, refDestructuringErrors)\n\n  case tt._function:\n    node = this.startNode()\n    this.next()\n    return this.parseFunction(node, 0)\n\n  case tt._class:\n    return this.parseClass(this.startNode(), false)\n\n  case tt._new:\n    return this.parseNew()\n\n  case tt.backQuote:\n    return this.parseTemplate()\n\n  default:\n    this.unexpected()\n  }\n}\n\npp.parseLiteral = function(value) {\n  let node = this.startNode()\n  node.value = value\n  node.raw = this.input.slice(this.start, this.end)\n  this.next()\n  return this.finishNode(node, \"Literal\")\n}\n\npp.parseParenExpression = function() {\n  this.expect(tt.parenL)\n  let val = this.parseExpression()\n  this.expect(tt.parenR)\n  return val\n}\n\npp.parseParenAndDistinguishExpression = function(canBeArrow) {\n  let startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8\n  if (this.options.ecmaVersion >= 6) {\n    this.next()\n\n    let innerStartPos = this.start, innerStartLoc = this.startLoc\n    let exprList = [], first = true, lastIsComma = false\n    let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart\n    this.yieldPos = 0\n    this.awaitPos = 0\n    // Do not save awaitIdentPos to allow checking awaits nested in parameters\n    while (this.type !== tt.parenR) {\n      first ? first = false : this.expect(tt.comma)\n      if (allowTrailingComma && this.afterTrailingComma(tt.parenR, true)) {\n        lastIsComma = true\n        break\n      } else if (this.type === tt.ellipsis) {\n        spreadStart = this.start\n        exprList.push(this.parseParenItem(this.parseRestBinding()))\n        if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n        break\n      } else {\n        exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem))\n      }\n    }\n    let innerEndPos = this.start, innerEndLoc = this.startLoc\n    this.expect(tt.parenR)\n\n    if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n      this.checkPatternErrors(refDestructuringErrors, false)\n      this.checkYieldAwaitInDefaultParams()\n      this.yieldPos = oldYieldPos\n      this.awaitPos = oldAwaitPos\n      return this.parseParenArrowList(startPos, startLoc, exprList)\n    }\n\n    if (!exprList.length || lastIsComma) this.unexpected(this.lastTokStart)\n    if (spreadStart) this.unexpected(spreadStart)\n    this.checkExpressionErrors(refDestructuringErrors, true)\n    this.yieldPos = oldYieldPos || this.yieldPos\n    this.awaitPos = oldAwaitPos || this.awaitPos\n\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc)\n      val.expressions = exprList\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc)\n    } else {\n      val = exprList[0]\n    }\n  } else {\n    val = this.parseParenExpression()\n  }\n\n  if (this.options.preserveParens) {\n    let par = this.startNodeAt(startPos, startLoc)\n    par.expression = val\n    return this.finishNode(par, \"ParenthesizedExpression\")\n  } else {\n    return val\n  }\n}\n\npp.parseParenItem = function(item) {\n  return item\n}\n\npp.parseParenArrowList = function(startPos, startLoc, exprList) {\n  return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n}\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nconst empty = []\n\npp.parseNew = function() {\n  let node = this.startNode()\n  let meta = this.parseIdent(true)\n  if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {\n    node.meta = meta\n    let containsEsc = this.containsEsc\n    node.property = this.parseIdent(true)\n    if (node.property.name !== \"target\" || containsEsc)\n      this.raiseRecoverable(node.property.start, \"The only valid meta property for new is new.target\")\n    if (!this.inNonArrowFunction())\n      this.raiseRecoverable(node.start, \"new.target can only be used in functions\")\n    return this.finishNode(node, \"MetaProperty\")\n  }\n  let startPos = this.start, startLoc = this.startLoc\n  node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true)\n  if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false)\n  else node.arguments = empty\n  return this.finishNode(node, \"NewExpression\")\n}\n\n// Parse template expression.\n\npp.parseTemplateElement = function({isTagged}) {\n  let elem = this.startNode()\n  if (this.type === tt.invalidTemplate) {\n    if (!isTagged) {\n      this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\")\n    }\n    elem.value = {\n      raw: this.value,\n      cooked: null\n    }\n  } else {\n    elem.value = {\n      raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.value\n    }\n  }\n  this.next()\n  elem.tail = this.type === tt.backQuote\n  return this.finishNode(elem, \"TemplateElement\")\n}\n\npp.parseTemplate = function({isTagged = false} = {}) {\n  let node = this.startNode()\n  this.next()\n  node.expressions = []\n  let curElt = this.parseTemplateElement({isTagged})\n  node.quasis = [curElt]\n  while (!curElt.tail) {\n    if (this.type === tt.eof) this.raise(this.pos, \"Unterminated template literal\")\n    this.expect(tt.dollarBraceL)\n    node.expressions.push(this.parseExpression())\n    this.expect(tt.braceR)\n    node.quasis.push(curElt = this.parseTemplateElement({isTagged}))\n  }\n  this.next()\n  return this.finishNode(node, \"TemplateLiteral\")\n}\n\npp.isAsyncProp = function(prop) {\n  return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n    (this.type === tt.name || this.type === tt.num || this.type === tt.string || this.type === tt.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === tt.star)) &&\n    !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\n// Parse an object literal or binding pattern.\n\npp.parseObj = function(isPattern, refDestructuringErrors) {\n  let node = this.startNode(), first = true, propHash = {}\n  node.properties = []\n  this.next()\n  while (!this.eat(tt.braceR)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (this.afterTrailingComma(tt.braceR)) break\n    } else first = false\n\n    const prop = this.parseProperty(isPattern, refDestructuringErrors)\n    if (!isPattern) this.checkPropClash(prop, propHash, refDestructuringErrors)\n    node.properties.push(prop)\n  }\n  return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n}\n\npp.parseProperty = function(isPattern, refDestructuringErrors) {\n  let prop = this.startNode(), isGenerator, isAsync, startPos, startLoc\n  if (this.options.ecmaVersion >= 9 && this.eat(tt.ellipsis)) {\n    if (isPattern) {\n      prop.argument = this.parseIdent(false)\n      if (this.type === tt.comma) {\n        this.raise(this.start, \"Comma is not permitted after the rest element\")\n      }\n      return this.finishNode(prop, \"RestElement\")\n    }\n    // To disallow parenthesized identifier via `this.toAssignable()`.\n    if (this.type === tt.parenL && refDestructuringErrors) {\n      if (refDestructuringErrors.parenthesizedAssign < 0) {\n        refDestructuringErrors.parenthesizedAssign = this.start\n      }\n      if (refDestructuringErrors.parenthesizedBind < 0) {\n        refDestructuringErrors.parenthesizedBind = this.start\n      }\n    }\n    // Parse argument.\n    prop.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n    // To disallow trailing comma via `this.toAssignable()`.\n    if (this.type === tt.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n      refDestructuringErrors.trailingComma = this.start\n    }\n    // Finish\n    return this.finishNode(prop, \"SpreadElement\")\n  }\n  if (this.options.ecmaVersion >= 6) {\n    prop.method = false\n    prop.shorthand = false\n    if (isPattern || refDestructuringErrors) {\n      startPos = this.start\n      startLoc = this.startLoc\n    }\n    if (!isPattern)\n      isGenerator = this.eat(tt.star)\n  }\n  let containsEsc = this.containsEsc\n  this.parsePropertyName(prop)\n  if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n    isAsync = true\n    isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n    this.parsePropertyName(prop, refDestructuringErrors)\n  } else {\n    isAsync = false\n  }\n  this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc)\n  return this.finishNode(prop, \"Property\")\n}\n\npp.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n  if ((isGenerator || isAsync) && this.type === tt.colon)\n    this.unexpected()\n\n  if (this.eat(tt.colon)) {\n    prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors)\n    prop.kind = \"init\"\n  } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) {\n    if (isPattern) this.unexpected()\n    prop.kind = \"init\"\n    prop.method = true\n    prop.value = this.parseMethod(isGenerator, isAsync)\n  } else if (!isPattern && !containsEsc &&\n             this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n             (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n             (this.type !== tt.comma && this.type !== tt.braceR)) {\n    if (isGenerator || isAsync) this.unexpected()\n    prop.kind = prop.key.name\n    this.parsePropertyName(prop)\n    prop.value = this.parseMethod(false)\n    let paramCount = prop.kind === \"get\" ? 0 : 1\n    if (prop.value.params.length !== paramCount) {\n      let start = prop.value.start\n      if (prop.kind === \"get\")\n        this.raiseRecoverable(start, \"getter should have no params\")\n      else\n        this.raiseRecoverable(start, \"setter should have exactly one param\")\n    } else {\n      if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n        this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\")\n    }\n  } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n    if (isGenerator || isAsync) this.unexpected()\n    this.checkUnreserved(prop.key)\n    if (prop.key.name === \"await\" && !this.awaitIdentPos)\n      this.awaitIdentPos = startPos\n    prop.kind = \"init\"\n    if (isPattern) {\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n    } else if (this.type === tt.eq && refDestructuringErrors) {\n      if (refDestructuringErrors.shorthandAssign < 0)\n        refDestructuringErrors.shorthandAssign = this.start\n      prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n    } else {\n      prop.value = prop.key\n    }\n    prop.shorthand = true\n  } else this.unexpected()\n}\n\npp.parsePropertyName = function(prop) {\n  if (this.options.ecmaVersion >= 6) {\n    if (this.eat(tt.bracketL)) {\n      prop.computed = true\n      prop.key = this.parseMaybeAssign()\n      this.expect(tt.bracketR)\n      return prop.key\n    } else {\n      prop.computed = false\n    }\n  }\n  return prop.key = this.type === tt.num || this.type === tt.string ? this.parseExprAtom() : this.parseIdent(true)\n}\n\n// Initialize empty function node.\n\npp.initFunction = function(node) {\n  node.id = null\n  if (this.options.ecmaVersion >= 6) node.generator = node.expression = false\n  if (this.options.ecmaVersion >= 8) node.async = false\n}\n\n// Parse object or class method.\n\npp.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n  let node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 6)\n    node.generator = isGenerator\n  if (this.options.ecmaVersion >= 8)\n    node.async = !!isAsync\n\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n  this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0))\n\n  this.expect(tt.parenL)\n  node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n  this.checkYieldAwaitInDefaultParams()\n  this.parseFunctionBody(node, false, true)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, \"FunctionExpression\")\n}\n\n// Parse arrow function expression with given parameters.\n\npp.parseArrowExpression = function(node, params, isAsync) {\n  let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n  this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW)\n  this.initFunction(node)\n  if (this.options.ecmaVersion >= 8) node.async = !!isAsync\n\n  this.yieldPos = 0\n  this.awaitPos = 0\n  this.awaitIdentPos = 0\n\n  node.params = this.toAssignableList(params, true)\n  this.parseFunctionBody(node, true, false)\n\n  this.yieldPos = oldYieldPos\n  this.awaitPos = oldAwaitPos\n  this.awaitIdentPos = oldAwaitIdentPos\n  return this.finishNode(node, \"ArrowFunctionExpression\")\n}\n\n// Parse function body and check parameters.\n\npp.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n  let isExpression = isArrowFunction && this.type !== tt.braceL\n  let oldStrict = this.strict, useStrict = false\n\n  if (isExpression) {\n    node.body = this.parseMaybeAssign()\n    node.expression = true\n    this.checkParams(node, false)\n  } else {\n    let nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params)\n    if (!oldStrict || nonSimple) {\n      useStrict = this.strictDirective(this.end)\n      // If this is a strict mode function, verify that argument names\n      // are not repeated, and it does not try to bind the words `eval`\n      // or `arguments`.\n      if (useStrict && nonSimple)\n        this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\")\n    }\n    // Start a new scope with regard to labels and the `inFunction`\n    // flag (restore them to their old value afterwards).\n    let oldLabels = this.labels\n    this.labels = []\n    if (useStrict) this.strict = true\n\n    // Add the params to varDeclaredNames to ensure that an error is thrown\n    // if a let/const declaration in the function clashes with one of the params.\n    this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params))\n    node.body = this.parseBlock(false)\n    node.expression = false\n    this.adaptDirectivePrologue(node.body.body)\n    this.labels = oldLabels\n  }\n  this.exitScope()\n\n  // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n  if (this.strict && node.id) this.checkLVal(node.id, BIND_OUTSIDE)\n  this.strict = oldStrict\n}\n\npp.isSimpleParamList = function(params) {\n  for (let param of params)\n    if (param.type !== \"Identifier\") return false\n  return true\n}\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp.checkParams = function(node, allowDuplicates) {\n  let nameHash = {}\n  for (let param of node.params)\n    this.checkLVal(param, BIND_VAR, allowDuplicates ? null : nameHash)\n}\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n  let elts = [], first = true\n  while (!this.eat(close)) {\n    if (!first) {\n      this.expect(tt.comma)\n      if (allowTrailingComma && this.afterTrailingComma(close)) break\n    } else first = false\n\n    let elt\n    if (allowEmpty && this.type === tt.comma)\n      elt = null\n    else if (this.type === tt.ellipsis) {\n      elt = this.parseSpread(refDestructuringErrors)\n      if (refDestructuringErrors && this.type === tt.comma && refDestructuringErrors.trailingComma < 0)\n        refDestructuringErrors.trailingComma = this.start\n    } else {\n      elt = this.parseMaybeAssign(false, refDestructuringErrors)\n    }\n    elts.push(elt)\n  }\n  return elts\n}\n\npp.checkUnreserved = function({start, end, name}) {\n  if (this.inGenerator && name === \"yield\")\n    this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\")\n  if (this.inAsync && name === \"await\")\n    this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\")\n  if (this.keywords.test(name))\n    this.raise(start, `Unexpected keyword '${name}'`)\n  if (this.options.ecmaVersion < 6 &&\n    this.input.slice(start, end).indexOf(\"\\\\\") !== -1) return\n  const re = this.strict ? this.reservedWordsStrict : this.reservedWords\n  if (re.test(name)) {\n    if (!this.inAsync && name === \"await\")\n      this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\")\n    this.raiseRecoverable(start, `The keyword '${name}' is reserved`)\n  }\n}\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp.parseIdent = function(liberal, isBinding) {\n  let node = this.startNode()\n  if (liberal && this.options.allowReserved === \"never\") liberal = false\n  if (this.type === tt.name) {\n    node.name = this.value\n  } else if (this.type.keyword) {\n    node.name = this.type.keyword\n\n    // To fix https://github.com/acornjs/acorn/issues/575\n    // `class` and `function` keywords push new context into this.context.\n    // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n    // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n    if ((node.name === \"class\" || node.name === \"function\") &&\n        (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n      this.context.pop()\n    }\n  } else {\n    this.unexpected()\n  }\n  this.next()\n  this.finishNode(node, \"Identifier\")\n  if (!liberal) {\n    this.checkUnreserved(node)\n    if (node.name === \"await\" && !this.awaitIdentPos)\n      this.awaitIdentPos = node.start\n  }\n  return node\n}\n\n// Parses yield expression inside generator.\n\npp.parseYield = function(noIn) {\n  if (!this.yieldPos) this.yieldPos = this.start\n\n  let node = this.startNode()\n  this.next()\n  if (this.type === tt.semi || this.canInsertSemicolon() || (this.type !== tt.star && !this.type.startsExpr)) {\n    node.delegate = false\n    node.argument = null\n  } else {\n    node.delegate = this.eat(tt.star)\n    node.argument = this.parseMaybeAssign(noIn)\n  }\n  return this.finishNode(node, \"YieldExpression\")\n}\n\npp.parseAwait = function() {\n  if (!this.awaitPos) this.awaitPos = this.start\n\n  let node = this.startNode()\n  this.next()\n  node.argument = this.parseMaybeUnary(null, true)\n  return this.finishNode(node, \"AwaitExpression\")\n}\n","import {Parser} from \"./state\"\nimport {Position, getLineInfo} from \"./locutil\"\n\nconst pp = Parser.prototype\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp.raise = function(pos, message) {\n  let loc = getLineInfo(this.input, pos)\n  message += \" (\" + loc.line + \":\" + loc.column + \")\"\n  let err = new SyntaxError(message)\n  err.pos = pos; err.loc = loc; err.raisedAt = this.pos\n  throw err\n}\n\npp.raiseRecoverable = pp.raise\n\npp.curPosition = function() {\n  if (this.options.locations) {\n    return new Position(this.curLine, this.pos - this.lineStart)\n  }\n}\n","import {Parser} from \"./state\"\nimport {SCOPE_VAR, SCOPE_FUNCTION, SCOPE_TOP, SCOPE_ARROW, SCOPE_SIMPLE_CATCH, BIND_LEXICAL, BIND_SIMPLE_CATCH, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\nclass Scope {\n  constructor(flags) {\n    this.flags = flags\n    // A list of var-declared names in the current lexical scope\n    this.var = []\n    // A list of lexically-declared names in the current lexical scope\n    this.lexical = []\n    // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n    this.functions = []\n  }\n}\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp.enterScope = function(flags) {\n  this.scopeStack.push(new Scope(flags))\n}\n\npp.exitScope = function() {\n  this.scopeStack.pop()\n}\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp.treatFunctionsAsVarInScope = function(scope) {\n  return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n}\n\npp.declareName = function(name, bindingType, pos) {\n  let redeclared = false\n  if (bindingType === BIND_LEXICAL) {\n    const scope = this.currentScope()\n    redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n    scope.lexical.push(name)\n    if (this.inModule && (scope.flags & SCOPE_TOP))\n      delete this.undefinedExports[name]\n  } else if (bindingType === BIND_SIMPLE_CATCH) {\n    const scope = this.currentScope()\n    scope.lexical.push(name)\n  } else if (bindingType === BIND_FUNCTION) {\n    const scope = this.currentScope()\n    if (this.treatFunctionsAsVar)\n      redeclared = scope.lexical.indexOf(name) > -1\n    else\n      redeclared = scope.lexical.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n    scope.functions.push(name)\n  } else {\n    for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n      const scope = this.scopeStack[i]\n      if (scope.lexical.indexOf(name) > -1 && !((scope.flags & SCOPE_SIMPLE_CATCH) && scope.lexical[0] === name) ||\n          !this.treatFunctionsAsVarInScope(scope) && scope.functions.indexOf(name) > -1) {\n        redeclared = true\n        break\n      }\n      scope.var.push(name)\n      if (this.inModule && (scope.flags & SCOPE_TOP))\n        delete this.undefinedExports[name]\n      if (scope.flags & SCOPE_VAR) break\n    }\n  }\n  if (redeclared) this.raiseRecoverable(pos, `Identifier '${name}' has already been declared`)\n}\n\npp.checkLocalExport = function(id) {\n  // scope.functions must be empty as Module code is always strict.\n  if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1) {\n    this.undefinedExports[id.name] = id\n  }\n}\n\npp.currentScope = function() {\n  return this.scopeStack[this.scopeStack.length - 1]\n}\n\npp.currentVarScope = function() {\n  for (let i = this.scopeStack.length - 1;; i--) {\n    let scope = this.scopeStack[i]\n    if (scope.flags & SCOPE_VAR) return scope\n  }\n}\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp.currentThisScope = function() {\n  for (let i = this.scopeStack.length - 1;; i--) {\n    let scope = this.scopeStack[i]\n    if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) return scope\n  }\n}\n","import {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\n\nexport class Node {\n  constructor(parser, pos, loc) {\n    this.type = \"\"\n    this.start = pos\n    this.end = 0\n    if (parser.options.locations)\n      this.loc = new SourceLocation(parser, loc)\n    if (parser.options.directSourceFile)\n      this.sourceFile = parser.options.directSourceFile\n    if (parser.options.ranges)\n      this.range = [pos, 0]\n  }\n}\n\n// Start an AST node, attaching a start offset.\n\nconst pp = Parser.prototype\n\npp.startNode = function() {\n  return new Node(this, this.start, this.startLoc)\n}\n\npp.startNodeAt = function(pos, loc) {\n  return new Node(this, pos, loc)\n}\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n  node.type = type\n  node.end = pos\n  if (this.options.locations)\n    node.loc.end = loc\n  if (this.options.ranges)\n    node.range[1] = pos\n  return node\n}\n\npp.finishNode = function(node, type) {\n  return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n}\n\n// Finish node at given position\n\npp.finishNodeAt = function(node, type, pos, loc) {\n  return finishNodeAt.call(this, node, type, pos, loc)\n}\n","// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport {Parser} from \"./state\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\n\nexport class TokContext {\n  constructor(token, isExpr, preserveSpace, override, generator) {\n    this.token = token\n    this.isExpr = !!isExpr\n    this.preserveSpace = !!preserveSpace\n    this.override = override\n    this.generator = !!generator\n  }\n}\n\nexport const types = {\n  b_stat: new TokContext(\"{\", false),\n  b_expr: new TokContext(\"{\", true),\n  b_tmpl: new TokContext(\"${\", false),\n  p_stat: new TokContext(\"(\", false),\n  p_expr: new TokContext(\"(\", true),\n  q_tmpl: new TokContext(\"`\", true, true, p => p.tryReadTemplateToken()),\n  f_stat: new TokContext(\"function\", false),\n  f_expr: new TokContext(\"function\", true),\n  f_expr_gen: new TokContext(\"function\", true, false, null, true),\n  f_gen: new TokContext(\"function\", false, false, null, true)\n}\n\nconst pp = Parser.prototype\n\npp.initialContext = function() {\n  return [types.b_stat]\n}\n\npp.braceIsBlock = function(prevType) {\n  let parent = this.curContext()\n  if (parent === types.f_expr || parent === types.f_stat)\n    return true\n  if (prevType === tt.colon && (parent === types.b_stat || parent === types.b_expr))\n    return !parent.isExpr\n\n  // The check for `tt.name && exprAllowed` detects whether we are\n  // after a `yield` or `of` construct. See the `updateContext` for\n  // `tt.name`.\n  if (prevType === tt._return || prevType === tt.name && this.exprAllowed)\n    return lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n  if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR || prevType === tt.arrow)\n    return true\n  if (prevType === tt.braceL)\n    return parent === types.b_stat\n  if (prevType === tt._var || prevType === tt._const || prevType === tt.name)\n    return false\n  return !this.exprAllowed\n}\n\npp.inGeneratorContext = function() {\n  for (let i = this.context.length - 1; i >= 1; i--) {\n    let context = this.context[i]\n    if (context.token === \"function\")\n      return context.generator\n  }\n  return false\n}\n\npp.updateContext = function(prevType) {\n  let update, type = this.type\n  if (type.keyword && prevType === tt.dot)\n    this.exprAllowed = false\n  else if (update = type.updateContext)\n    update.call(this, prevType)\n  else\n    this.exprAllowed = type.beforeExpr\n}\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.context.length === 1) {\n    this.exprAllowed = true\n    return\n  }\n  let out = this.context.pop()\n  if (out === types.b_stat && this.curContext().token === \"function\") {\n    out = this.context.pop()\n  }\n  this.exprAllowed = !out.isExpr\n}\n\ntt.braceL.updateContext = function(prevType) {\n  this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr)\n  this.exprAllowed = true\n}\n\ntt.dollarBraceL.updateContext = function() {\n  this.context.push(types.b_tmpl)\n  this.exprAllowed = true\n}\n\ntt.parenL.updateContext = function(prevType) {\n  let statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while\n  this.context.push(statementParens ? types.p_stat : types.p_expr)\n  this.exprAllowed = true\n}\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n}\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (prevType.beforeExpr && prevType !== tt.semi && prevType !== tt._else &&\n      !(prevType === tt._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n      !((prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat))\n    this.context.push(types.f_expr)\n  else\n    this.context.push(types.f_stat)\n  this.exprAllowed = false\n}\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.q_tmpl)\n    this.context.pop()\n  else\n    this.context.push(types.q_tmpl)\n  this.exprAllowed = false\n}\n\ntt.star.updateContext = function(prevType) {\n  if (prevType === tt._function) {\n    let index = this.context.length - 1\n    if (this.context[index] === types.f_expr)\n      this.context[index] = types.f_expr_gen\n    else\n      this.context[index] = types.f_gen\n  }\n  this.exprAllowed = true\n}\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false\n  if (this.options.ecmaVersion >= 6 && prevType !== tt.dot) {\n    if (this.value === \"of\" && !this.exprAllowed ||\n        this.value === \"yield\" && this.inGeneratorContext())\n      allowed = true\n  }\n  this.exprAllowed = allowed\n}\n","import {wordsRegexp} from \"./util.js\"\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nconst ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\"\nconst unicodeBinaryProperties = {\n  9: ecma9BinaryProperties,\n  10: ecma9BinaryProperties + \" Extended_Pictographic\"\n}\n\n// #table-unicode-general-category-values\nconst unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\"\n\n// #table-unicode-script-values\nconst ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\"\nconst unicodeScriptValues = {\n  9: ecma9ScriptValues,\n  10: ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\"\n}\n\nconst data = {}\nfunction buildUnicodeData(ecmaVersion) {\n  let d = data[ecmaVersion] = {\n    binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n    nonBinary: {\n      General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n      Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n    }\n  }\n  d.nonBinary.Script_Extensions = d.nonBinary.Script\n\n  d.nonBinary.gc = d.nonBinary.General_Category\n  d.nonBinary.sc = d.nonBinary.Script\n  d.nonBinary.scx = d.nonBinary.Script_Extensions\n}\nbuildUnicodeData(9)\nbuildUnicodeData(10)\n\nexport default data\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier.js\"\nimport {Parser} from \"./state.js\"\nimport UNICODE_PROPERTY_VALUES from \"./unicode-property-data.js\"\nimport {has} from \"./util.js\"\n\nconst pp = Parser.prototype\n\nexport class RegExpValidationState {\n  constructor(parser) {\n    this.parser = parser\n    this.validFlags = `gim${parser.options.ecmaVersion >= 6 ? \"uy\" : \"\"}${parser.options.ecmaVersion >= 9 ? \"s\" : \"\"}`\n    this.unicodeProperties = UNICODE_PROPERTY_VALUES[parser.options.ecmaVersion >= 10 ? 10 : parser.options.ecmaVersion]\n    this.source = \"\"\n    this.flags = \"\"\n    this.start = 0\n    this.switchU = false\n    this.switchN = false\n    this.pos = 0\n    this.lastIntValue = 0\n    this.lastStringValue = \"\"\n    this.lastAssertionIsQuantifiable = false\n    this.numCapturingParens = 0\n    this.maxBackReference = 0\n    this.groupNames = []\n    this.backReferenceNames = []\n  }\n\n  reset(start, pattern, flags) {\n    const unicode = flags.indexOf(\"u\") !== -1\n    this.start = start | 0\n    this.source = pattern + \"\"\n    this.flags = flags\n    this.switchU = unicode && this.parser.options.ecmaVersion >= 6\n    this.switchN = unicode && this.parser.options.ecmaVersion >= 9\n  }\n\n  raise(message) {\n    this.parser.raiseRecoverable(this.start, `Invalid regular expression: /${this.source}/: ${message}`)\n  }\n\n  // If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n  // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\n  at(i) {\n    const s = this.source\n    const l = s.length\n    if (i >= l) {\n      return -1\n    }\n    const c = s.charCodeAt(i)\n    if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n      return c\n    }\n    return (c << 10) + s.charCodeAt(i + 1) - 0x35FDC00\n  }\n\n  nextIndex(i) {\n    const s = this.source\n    const l = s.length\n    if (i >= l) {\n      return l\n    }\n    const c = s.charCodeAt(i)\n    if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n      return i + 1\n    }\n    return i + 2\n  }\n\n  current() {\n    return this.at(this.pos)\n  }\n\n  lookahead() {\n    return this.at(this.nextIndex(this.pos))\n  }\n\n  advance() {\n    this.pos = this.nextIndex(this.pos)\n  }\n\n  eat(ch) {\n    if (this.current() === ch) {\n      this.advance()\n      return true\n    }\n    return false\n  }\n}\n\nfunction codePointToString(ch) {\n  if (ch <= 0xFFFF) return String.fromCharCode(ch)\n  ch -= 0x10000\n  return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n}\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpFlags = function(state) {\n  const validFlags = state.validFlags\n  const flags = state.flags\n\n  for (let i = 0; i < flags.length; i++) {\n    const flag = flags.charAt(i)\n    if (validFlags.indexOf(flag) === -1) {\n      this.raise(state.start, \"Invalid regular expression flag\")\n    }\n    if (flags.indexOf(flag, i + 1) > -1) {\n      this.raise(state.start, \"Duplicate regular expression flag\")\n    }\n  }\n}\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpPattern = function(state) {\n  this.regexp_pattern(state)\n\n  // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n  // parsing contains a |GroupName|, reparse with the goal symbol\n  // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n  // exception if _P_ did not conform to the grammar, if any elements of _P_\n  // were not matched by the parse, or if any Early Error conditions exist.\n  if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n    state.switchN = true\n    this.regexp_pattern(state)\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp.regexp_pattern = function(state) {\n  state.pos = 0\n  state.lastIntValue = 0\n  state.lastStringValue = \"\"\n  state.lastAssertionIsQuantifiable = false\n  state.numCapturingParens = 0\n  state.maxBackReference = 0\n  state.groupNames.length = 0\n  state.backReferenceNames.length = 0\n\n  this.regexp_disjunction(state)\n\n  if (state.pos !== state.source.length) {\n    // Make the same messages as V8.\n    if (state.eat(0x29 /* ) */)) {\n      state.raise(\"Unmatched ')'\")\n    }\n    if (state.eat(0x5D /* [ */) || state.eat(0x7D /* } */)) {\n      state.raise(\"Lone quantifier brackets\")\n    }\n  }\n  if (state.maxBackReference > state.numCapturingParens) {\n    state.raise(\"Invalid escape\")\n  }\n  for (const name of state.backReferenceNames) {\n    if (state.groupNames.indexOf(name) === -1) {\n      state.raise(\"Invalid named capture referenced\")\n    }\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp.regexp_disjunction = function(state) {\n  this.regexp_alternative(state)\n  while (state.eat(0x7C /* | */)) {\n    this.regexp_alternative(state)\n  }\n\n  // Make the same message as V8.\n  if (this.regexp_eatQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\")\n  }\n  if (state.eat(0x7B /* { */)) {\n    state.raise(\"Lone quantifier brackets\")\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp.regexp_alternative = function(state) {\n  while (state.pos < state.source.length && this.regexp_eatTerm(state))\n    ;\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp.regexp_eatTerm = function(state) {\n  if (this.regexp_eatAssertion(state)) {\n    // Handle `QuantifiableAssertion Quantifier` alternative.\n    // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n    // is a QuantifiableAssertion.\n    if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n      // Make the same message as V8.\n      if (state.switchU) {\n        state.raise(\"Invalid quantifier\")\n      }\n    }\n    return true\n  }\n\n  if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n    this.regexp_eatQuantifier(state)\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp.regexp_eatAssertion = function(state) {\n  const start = state.pos\n  state.lastAssertionIsQuantifiable = false\n\n  // ^, $\n  if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n    return true\n  }\n\n  // \\b \\B\n  if (state.eat(0x5C /* \\ */)) {\n    if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n      return true\n    }\n    state.pos = start\n  }\n\n  // Lookahead / Lookbehind\n  if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n    let lookbehind = false\n    if (this.options.ecmaVersion >= 9) {\n      lookbehind = state.eat(0x3C /* < */)\n    }\n    if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n      this.regexp_disjunction(state)\n      if (!state.eat(0x29 /* ) */)) {\n        state.raise(\"Unterminated group\")\n      }\n      state.lastAssertionIsQuantifiable = !lookbehind\n      return true\n    }\n  }\n\n  state.pos = start\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp.regexp_eatQuantifier = function(state, noError = false) {\n  if (this.regexp_eatQuantifierPrefix(state, noError)) {\n    state.eat(0x3F /* ? */)\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp.regexp_eatQuantifierPrefix = function(state, noError) {\n  return (\n    state.eat(0x2A /* * */) ||\n    state.eat(0x2B /* + */) ||\n    state.eat(0x3F /* ? */) ||\n    this.regexp_eatBracedQuantifier(state, noError)\n  )\n}\npp.regexp_eatBracedQuantifier = function(state, noError) {\n  const start = state.pos\n  if (state.eat(0x7B /* { */)) {\n    let min = 0, max = -1\n    if (this.regexp_eatDecimalDigits(state)) {\n      min = state.lastIntValue\n      if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n        max = state.lastIntValue\n      }\n      if (state.eat(0x7D /* } */)) {\n        // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n        if (max !== -1 && max < min && !noError) {\n          state.raise(\"numbers out of order in {} quantifier\")\n        }\n        return true\n      }\n    }\n    if (state.switchU && !noError) {\n      state.raise(\"Incomplete quantifier\")\n    }\n    state.pos = start\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp.regexp_eatAtom = function(state) {\n  return (\n    this.regexp_eatPatternCharacters(state) ||\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state)\n  )\n}\npp.regexp_eatReverseSolidusAtomEscape = function(state) {\n  const start = state.pos\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatAtomEscape(state)) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatUncapturingGroup = function(state) {\n  const start = state.pos\n  if (state.eat(0x28 /* ( */)) {\n    if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n      this.regexp_disjunction(state)\n      if (state.eat(0x29 /* ) */)) {\n        return true\n      }\n      state.raise(\"Unterminated group\")\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatCapturingGroup = function(state) {\n  if (state.eat(0x28 /* ( */)) {\n    if (this.options.ecmaVersion >= 9) {\n      this.regexp_groupSpecifier(state)\n    } else if (state.current() === 0x3F /* ? */) {\n      state.raise(\"Invalid group\")\n    }\n    this.regexp_disjunction(state)\n    if (state.eat(0x29 /* ) */)) {\n      state.numCapturingParens += 1\n      return true\n    }\n    state.raise(\"Unterminated group\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp.regexp_eatExtendedAtom = function(state) {\n  return (\n    state.eat(0x2E /* . */) ||\n    this.regexp_eatReverseSolidusAtomEscape(state) ||\n    this.regexp_eatCharacterClass(state) ||\n    this.regexp_eatUncapturingGroup(state) ||\n    this.regexp_eatCapturingGroup(state) ||\n    this.regexp_eatInvalidBracedQuantifier(state) ||\n    this.regexp_eatExtendedPatternCharacter(state)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp.regexp_eatInvalidBracedQuantifier = function(state) {\n  if (this.regexp_eatBracedQuantifier(state, true)) {\n    state.raise(\"Nothing to repeat\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp.regexp_eatSyntaxCharacter = function(state) {\n  const ch = state.current()\n  if (isSyntaxCharacter(ch)) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n  return false\n}\nfunction isSyntaxCharacter(ch) {\n  return (\n    ch === 0x24 /* $ */ ||\n    ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n    ch === 0x2E /* . */ ||\n    ch === 0x3F /* ? */ ||\n    ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n    ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp.regexp_eatPatternCharacters = function(state) {\n  const start = state.pos\n  let ch = 0\n  while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n    state.advance()\n  }\n  return state.pos !== start\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp.regexp_eatExtendedPatternCharacter = function(state) {\n  const ch = state.current()\n  if (\n    ch !== -1 &&\n    ch !== 0x24 /* $ */ &&\n    !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n    ch !== 0x2E /* . */ &&\n    ch !== 0x3F /* ? */ &&\n    ch !== 0x5B /* [ */ &&\n    ch !== 0x5E /* ^ */ &&\n    ch !== 0x7C /* | */\n  ) {\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// GroupSpecifier[U] ::\n//   [empty]\n//   `?` GroupName[?U]\npp.regexp_groupSpecifier = function(state) {\n  if (state.eat(0x3F /* ? */)) {\n    if (this.regexp_eatGroupName(state)) {\n      if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n        state.raise(\"Duplicate capture group name\")\n      }\n      state.groupNames.push(state.lastStringValue)\n      return\n    }\n    state.raise(\"Invalid group\")\n  }\n}\n\n// GroupName[U] ::\n//   `<` RegExpIdentifierName[?U] `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatGroupName = function(state) {\n  state.lastStringValue = \"\"\n  if (state.eat(0x3C /* < */)) {\n    if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n      return true\n    }\n    state.raise(\"Invalid capture group name\")\n  }\n  return false\n}\n\n// RegExpIdentifierName[U] ::\n//   RegExpIdentifierStart[?U]\n//   RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatRegExpIdentifierName = function(state) {\n  state.lastStringValue = \"\"\n  if (this.regexp_eatRegExpIdentifierStart(state)) {\n    state.lastStringValue += codePointToString(state.lastIntValue)\n    while (this.regexp_eatRegExpIdentifierPart(state)) {\n      state.lastStringValue += codePointToString(state.lastIntValue)\n    }\n    return true\n  }\n  return false\n}\n\n// RegExpIdentifierStart[U] ::\n//   UnicodeIDStart\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[?U]\npp.regexp_eatRegExpIdentifierStart = function(state) {\n  const start = state.pos\n  let ch = state.current()\n  state.advance()\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n    ch = state.lastIntValue\n  }\n  if (isRegExpIdentifierStart(ch)) {\n    state.lastIntValue = ch\n    return true\n  }\n\n  state.pos = start\n  return false\n}\nfunction isRegExpIdentifierStart(ch) {\n  return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart[U] ::\n//   UnicodeIDContinue\n//   `$`\n//   `_`\n//   `\\` RegExpUnicodeEscapeSequence[?U]\n//   <ZWNJ>\n//   <ZWJ>\npp.regexp_eatRegExpIdentifierPart = function(state) {\n  const start = state.pos\n  let ch = state.current()\n  state.advance()\n\n  if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n    ch = state.lastIntValue\n  }\n  if (isRegExpIdentifierPart(ch)) {\n    state.lastIntValue = ch\n    return true\n  }\n\n  state.pos = start\n  return false\n}\nfunction isRegExpIdentifierPart(ch) {\n  return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp.regexp_eatAtomEscape = function(state) {\n  if (\n    this.regexp_eatBackReference(state) ||\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state) ||\n    (state.switchN && this.regexp_eatKGroupName(state))\n  ) {\n    return true\n  }\n  if (state.switchU) {\n    // Make the same message as V8.\n    if (state.current() === 0x63 /* c */) {\n      state.raise(\"Invalid unicode escape\")\n    }\n    state.raise(\"Invalid escape\")\n  }\n  return false\n}\npp.regexp_eatBackReference = function(state) {\n  const start = state.pos\n  if (this.regexp_eatDecimalEscape(state)) {\n    const n = state.lastIntValue\n    if (state.switchU) {\n      // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n      if (n > state.maxBackReference) {\n        state.maxBackReference = n\n      }\n      return true\n    }\n    if (n <= state.numCapturingParens) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatKGroupName = function(state) {\n  if (state.eat(0x6B /* k */)) {\n    if (this.regexp_eatGroupName(state)) {\n      state.backReferenceNames.push(state.lastStringValue)\n      return true\n    }\n    state.raise(\"Invalid named reference\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp.regexp_eatCharacterEscape = function(state) {\n  return (\n    this.regexp_eatControlEscape(state) ||\n    this.regexp_eatCControlLetter(state) ||\n    this.regexp_eatZero(state) ||\n    this.regexp_eatHexEscapeSequence(state) ||\n    this.regexp_eatRegExpUnicodeEscapeSequence(state) ||\n    (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n    this.regexp_eatIdentityEscape(state)\n  )\n}\npp.regexp_eatCControlLetter = function(state) {\n  const start = state.pos\n  if (state.eat(0x63 /* c */)) {\n    if (this.regexp_eatControlLetter(state)) {\n      return true\n    }\n    state.pos = start\n  }\n  return false\n}\npp.regexp_eatZero = function(state) {\n  if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n    state.lastIntValue = 0\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp.regexp_eatControlEscape = function(state) {\n  const ch = state.current()\n  if (ch === 0x74 /* t */) {\n    state.lastIntValue = 0x09 /* \\t */\n    state.advance()\n    return true\n  }\n  if (ch === 0x6E /* n */) {\n    state.lastIntValue = 0x0A /* \\n */\n    state.advance()\n    return true\n  }\n  if (ch === 0x76 /* v */) {\n    state.lastIntValue = 0x0B /* \\v */\n    state.advance()\n    return true\n  }\n  if (ch === 0x66 /* f */) {\n    state.lastIntValue = 0x0C /* \\f */\n    state.advance()\n    return true\n  }\n  if (ch === 0x72 /* r */) {\n    state.lastIntValue = 0x0D /* \\r */\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp.regexp_eatControlLetter = function(state) {\n  const ch = state.current()\n  if (isControlLetter(ch)) {\n    state.lastIntValue = ch % 0x20\n    state.advance()\n    return true\n  }\n  return false\n}\nfunction isControlLetter(ch) {\n  return (\n    (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp.regexp_eatRegExpUnicodeEscapeSequence = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x75 /* u */)) {\n    if (this.regexp_eatFixedHexDigits(state, 4)) {\n      const lead = state.lastIntValue\n      if (state.switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n        const leadSurrogateEnd = state.pos\n        if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n          const trail = state.lastIntValue\n          if (trail >= 0xDC00 && trail <= 0xDFFF) {\n            state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000\n            return true\n          }\n        }\n        state.pos = leadSurrogateEnd\n        state.lastIntValue = lead\n      }\n      return true\n    }\n    if (\n      state.switchU &&\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatHexDigits(state) &&\n      state.eat(0x7D /* } */) &&\n      isValidUnicode(state.lastIntValue)\n    ) {\n      return true\n    }\n    if (state.switchU) {\n      state.raise(\"Invalid unicode escape\")\n    }\n    state.pos = start\n  }\n\n  return false\n}\nfunction isValidUnicode(ch) {\n  return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp.regexp_eatIdentityEscape = function(state) {\n  if (state.switchU) {\n    if (this.regexp_eatSyntaxCharacter(state)) {\n      return true\n    }\n    if (state.eat(0x2F /* / */)) {\n      state.lastIntValue = 0x2F /* / */\n      return true\n    }\n    return false\n  }\n\n  const ch = state.current()\n  if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp.regexp_eatDecimalEscape = function(state) {\n  state.lastIntValue = 0\n  let ch = state.current()\n  if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n    do {\n      state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n      state.advance()\n    } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp.regexp_eatCharacterClassEscape = function(state) {\n  const ch = state.current()\n\n  if (isCharacterClassEscape(ch)) {\n    state.lastIntValue = -1\n    state.advance()\n    return true\n  }\n\n  if (\n    state.switchU &&\n    this.options.ecmaVersion >= 9 &&\n    (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n  ) {\n    state.lastIntValue = -1\n    state.advance()\n    if (\n      state.eat(0x7B /* { */) &&\n      this.regexp_eatUnicodePropertyValueExpression(state) &&\n      state.eat(0x7D /* } */)\n    ) {\n      return true\n    }\n    state.raise(\"Invalid property name\")\n  }\n\n  return false\n}\nfunction isCharacterClassEscape(ch) {\n  return (\n    ch === 0x64 /* d */ ||\n    ch === 0x44 /* D */ ||\n    ch === 0x73 /* s */ ||\n    ch === 0x53 /* S */ ||\n    ch === 0x77 /* w */ ||\n    ch === 0x57 /* W */\n  )\n}\n\n// UnicodePropertyValueExpression ::\n//   UnicodePropertyName `=` UnicodePropertyValue\n//   LoneUnicodePropertyNameOrValue\npp.regexp_eatUnicodePropertyValueExpression = function(state) {\n  const start = state.pos\n\n  // UnicodePropertyName `=` UnicodePropertyValue\n  if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n    const name = state.lastStringValue\n    if (this.regexp_eatUnicodePropertyValue(state)) {\n      const value = state.lastStringValue\n      this.regexp_validateUnicodePropertyNameAndValue(state, name, value)\n      return true\n    }\n  }\n  state.pos = start\n\n  // LoneUnicodePropertyNameOrValue\n  if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n    const nameOrValue = state.lastStringValue\n    this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n    return true\n  }\n  return false\n}\npp.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n  if (!has(state.unicodeProperties.nonBinary, name))\n    state.raise(\"Invalid property name\")\n  if (!state.unicodeProperties.nonBinary[name].test(value))\n    state.raise(\"Invalid property value\")\n}\npp.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n  if (!state.unicodeProperties.binary.test(nameOrValue))\n    state.raise(\"Invalid property name\")\n}\n\n// UnicodePropertyName ::\n//   UnicodePropertyNameCharacters\npp.regexp_eatUnicodePropertyName = function(state) {\n  let ch = 0\n  state.lastStringValue = \"\"\n  while (isUnicodePropertyNameCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch)\n    state.advance()\n  }\n  return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyNameCharacter(ch) {\n  return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n//   UnicodePropertyValueCharacters\npp.regexp_eatUnicodePropertyValue = function(state) {\n  let ch = 0\n  state.lastStringValue = \"\"\n  while (isUnicodePropertyValueCharacter(ch = state.current())) {\n    state.lastStringValue += codePointToString(ch)\n    state.advance()\n  }\n  return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyValueCharacter(ch) {\n  return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n//   UnicodePropertyValueCharacters\npp.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n  return this.regexp_eatUnicodePropertyValue(state)\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp.regexp_eatCharacterClass = function(state) {\n  if (state.eat(0x5B /* [ */)) {\n    state.eat(0x5E /* ^ */)\n    this.regexp_classRanges(state)\n    if (state.eat(0x5D /* [ */)) {\n      return true\n    }\n    // Unreachable since it threw \"unterminated regular expression\" error before.\n    state.raise(\"Unterminated character class\")\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp.regexp_classRanges = function(state) {\n  while (this.regexp_eatClassAtom(state)) {\n    const left = state.lastIntValue\n    if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n      const right = state.lastIntValue\n      if (state.switchU && (left === -1 || right === -1)) {\n        state.raise(\"Invalid character class\")\n      }\n      if (left !== -1 && right !== -1 && left > right) {\n        state.raise(\"Range out of order in character class\")\n      }\n    }\n  }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp.regexp_eatClassAtom = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x5C /* \\ */)) {\n    if (this.regexp_eatClassEscape(state)) {\n      return true\n    }\n    if (state.switchU) {\n      // Make the same message as V8.\n      const ch = state.current()\n      if (ch === 0x63 /* c */ || isOctalDigit(ch)) {\n        state.raise(\"Invalid class escape\")\n      }\n      state.raise(\"Invalid escape\")\n    }\n    state.pos = start\n  }\n\n  const ch = state.current()\n  if (ch !== 0x5D /* [ */) {\n    state.lastIntValue = ch\n    state.advance()\n    return true\n  }\n\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp.regexp_eatClassEscape = function(state) {\n  const start = state.pos\n\n  if (state.eat(0x62 /* b */)) {\n    state.lastIntValue = 0x08 /* <BS> */\n    return true\n  }\n\n  if (state.switchU && state.eat(0x2D /* - */)) {\n    state.lastIntValue = 0x2D /* - */\n    return true\n  }\n\n  if (!state.switchU && state.eat(0x63 /* c */)) {\n    if (this.regexp_eatClassControlLetter(state)) {\n      return true\n    }\n    state.pos = start\n  }\n\n  return (\n    this.regexp_eatCharacterClassEscape(state) ||\n    this.regexp_eatCharacterEscape(state)\n  )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp.regexp_eatClassControlLetter = function(state) {\n  const ch = state.current()\n  if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n    state.lastIntValue = ch % 0x20\n    state.advance()\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatHexEscapeSequence = function(state) {\n  const start = state.pos\n  if (state.eat(0x78 /* x */)) {\n    if (this.regexp_eatFixedHexDigits(state, 2)) {\n      return true\n    }\n    if (state.switchU) {\n      state.raise(\"Invalid escape\")\n    }\n    state.pos = start\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp.regexp_eatDecimalDigits = function(state) {\n  const start = state.pos\n  let ch = 0\n  state.lastIntValue = 0\n  while (isDecimalDigit(ch = state.current())) {\n    state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n    state.advance()\n  }\n  return state.pos !== start\n}\nfunction isDecimalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp.regexp_eatHexDigits = function(state) {\n  const start = state.pos\n  let ch = 0\n  state.lastIntValue = 0\n  while (isHexDigit(ch = state.current())) {\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n    state.advance()\n  }\n  return state.pos !== start\n}\nfunction isHexDigit(ch) {\n  return (\n    (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n    (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n    (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n  )\n}\nfunction hexToInt(ch) {\n  if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n    return 10 + (ch - 0x41 /* A */)\n  }\n  if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n    return 10 + (ch - 0x61 /* a */)\n  }\n  return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp.regexp_eatLegacyOctalEscapeSequence = function(state) {\n  if (this.regexp_eatOctalDigit(state)) {\n    const n1 = state.lastIntValue\n    if (this.regexp_eatOctalDigit(state)) {\n      const n2 = state.lastIntValue\n      if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n        state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue\n      } else {\n        state.lastIntValue = n1 * 8 + n2\n      }\n    } else {\n      state.lastIntValue = n1\n    }\n    return true\n  }\n  return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp.regexp_eatOctalDigit = function(state) {\n  const ch = state.current()\n  if (isOctalDigit(ch)) {\n    state.lastIntValue = ch - 0x30 /* 0 */\n    state.advance()\n    return true\n  }\n  state.lastIntValue = 0\n  return false\n}\nfunction isOctalDigit(ch) {\n  return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatFixedHexDigits = function(state, length) {\n  const start = state.pos\n  state.lastIntValue = 0\n  for (let i = 0; i < length; ++i) {\n    const ch = state.current()\n    if (!isHexDigit(ch)) {\n      state.pos = start\n      return false\n    }\n    state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n    state.advance()\n  }\n  return true\n}\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier\"\nimport {types as tt, keywords as keywordTypes} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\nimport {RegExpValidationState} from \"./regexp\"\nimport {lineBreak, lineBreakG, isNewLine, nonASCIIwhitespace} from \"./whitespace\"\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(p) {\n    this.type = p.type\n    this.value = p.value\n    this.start = p.start\n    this.end = p.end\n    if (p.options.locations)\n      this.loc = new SourceLocation(p, p.startLoc, p.endLoc)\n    if (p.options.ranges)\n      this.range = [p.start, p.end]\n  }\n}\n\n// ## Tokenizer\n\nconst pp = Parser.prototype\n\n// Move to the next token\n\npp.next = function() {\n  if (this.options.onToken)\n    this.options.onToken(new Token(this))\n\n  this.lastTokEnd = this.end\n  this.lastTokStart = this.start\n  this.lastTokEndLoc = this.endLoc\n  this.lastTokStartLoc = this.startLoc\n  this.nextToken()\n}\n\npp.getToken = function() {\n  this.next()\n  return new Token(this)\n}\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n  pp[Symbol.iterator] = function() {\n    return {\n      next: () => {\n        let token = this.getToken()\n        return {\n          done: token.type === tt.eof,\n          value: token\n        }\n      }\n    }\n  }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\npp.curContext = function() {\n  return this.context[this.context.length - 1]\n}\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n  let curContext = this.curContext()\n  if (!curContext || !curContext.preserveSpace) this.skipSpace()\n\n  this.start = this.pos\n  if (this.options.locations) this.startLoc = this.curPosition()\n  if (this.pos >= this.input.length) return this.finishToken(tt.eof)\n\n  if (curContext.override) return curContext.override(this)\n  else this.readToken(this.fullCharCodeAtPos())\n}\n\npp.readToken = function(code) {\n  // Identifier or keyword. '\\uXXXX' sequences are allowed in\n  // identifiers, so '\\' also dispatches to that.\n  if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n    return this.readWord()\n\n  return this.getTokenFromCode(code)\n}\n\npp.fullCharCodeAtPos = function() {\n  let code = this.input.charCodeAt(this.pos)\n  if (code <= 0xd7ff || code >= 0xe000) return code\n  let next = this.input.charCodeAt(this.pos + 1)\n  return (code << 10) + next - 0x35fdc00\n}\n\npp.skipBlockComment = function() {\n  let startLoc = this.options.onComment && this.curPosition()\n  let start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2)\n  if (end === -1) this.raise(this.pos - 2, \"Unterminated comment\")\n  this.pos = end + 2\n  if (this.options.locations) {\n    lineBreakG.lastIndex = start\n    let match\n    while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n      ++this.curLine\n      this.lineStart = match.index + match[0].length\n    }\n  }\n  if (this.options.onComment)\n    this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n                           startLoc, this.curPosition())\n}\n\npp.skipLineComment = function(startSkip) {\n  let start = this.pos\n  let startLoc = this.options.onComment && this.curPosition()\n  let ch = this.input.charCodeAt(this.pos += startSkip)\n  while (this.pos < this.input.length && !isNewLine(ch)) {\n    ch = this.input.charCodeAt(++this.pos)\n  }\n  if (this.options.onComment)\n    this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n                           startLoc, this.curPosition())\n}\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n  loop: while (this.pos < this.input.length) {\n    let ch = this.input.charCodeAt(this.pos)\n    switch (ch) {\n    case 32: case 160: // ' '\n      ++this.pos\n      break\n    case 13:\n      if (this.input.charCodeAt(this.pos + 1) === 10) {\n        ++this.pos\n      }\n    case 10: case 8232: case 8233:\n      ++this.pos\n      if (this.options.locations) {\n        ++this.curLine\n        this.lineStart = this.pos\n      }\n      break\n    case 47: // '/'\n      switch (this.input.charCodeAt(this.pos + 1)) {\n      case 42: // '*'\n        this.skipBlockComment()\n        break\n      case 47:\n        this.skipLineComment(2)\n        break\n      default:\n        break loop\n      }\n      break\n    default:\n      if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n        ++this.pos\n      } else {\n        break loop\n      }\n    }\n  }\n}\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n  this.end = this.pos\n  if (this.options.locations) this.endLoc = this.curPosition()\n  let prevType = this.type\n  this.type = type\n  this.value = val\n\n  this.updateContext(prevType)\n}\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next >= 48 && next <= 57) return this.readNumber(true)\n  let next2 = this.input.charCodeAt(this.pos + 2)\n  if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n    this.pos += 3\n    return this.finishToken(tt.ellipsis)\n  } else {\n    ++this.pos\n    return this.finishToken(tt.dot)\n  }\n}\n\npp.readToken_slash = function() { // '/'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.slash, 1)\n}\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n  let next = this.input.charCodeAt(this.pos + 1)\n  let size = 1\n  let tokentype = code === 42 ? tt.star : tt.modulo\n\n  // exponentiation operator ** and **=\n  if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n    ++size\n    tokentype = tt.starstar\n    next = this.input.charCodeAt(this.pos + 2)\n  }\n\n  if (next === 61) return this.finishOp(tt.assign, size + 1)\n  return this.finishOp(tokentype, size)\n}\n\npp.readToken_pipe_amp = function(code) { // '|&'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === code) return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2)\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1)\n}\n\npp.readToken_caret = function() { // '^'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.bitwiseXOR, 1)\n}\n\npp.readToken_plus_min = function(code) { // '+-'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === code) {\n    if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n        (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n      // A `-->` line comment\n      this.skipLineComment(3)\n      this.skipSpace()\n      return this.nextToken()\n    }\n    return this.finishOp(tt.incDec, 2)\n  }\n  if (next === 61) return this.finishOp(tt.assign, 2)\n  return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n  let next = this.input.charCodeAt(this.pos + 1)\n  let size = 1\n  if (next === code) {\n    size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n    if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n    return this.finishOp(tt.bitShift, size)\n  }\n  if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n      this.input.charCodeAt(this.pos + 3) === 45) {\n    // `<!--`, an XML-style comment that should be interpreted as a line comment\n    this.skipLineComment(4)\n    this.skipSpace()\n    return this.nextToken()\n  }\n  if (next === 61) size = 2\n  return this.finishOp(tt.relational, size)\n}\n\npp.readToken_eq_excl = function(code) { // '=!'\n  let next = this.input.charCodeAt(this.pos + 1)\n  if (next === 61) return this.finishOp(tt.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2)\n  if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n    this.pos += 2\n    return this.finishToken(tt.arrow)\n  }\n  return this.finishOp(code === 61 ? tt.eq : tt.prefix, 1)\n}\n\npp.getTokenFromCode = function(code) {\n  switch (code) {\n  // The interpretation of a dot depends on whether it is followed\n  // by a digit or another two dots.\n  case 46: // '.'\n    return this.readToken_dot()\n\n  // Punctuation tokens.\n  case 40: ++this.pos; return this.finishToken(tt.parenL)\n  case 41: ++this.pos; return this.finishToken(tt.parenR)\n  case 59: ++this.pos; return this.finishToken(tt.semi)\n  case 44: ++this.pos; return this.finishToken(tt.comma)\n  case 91: ++this.pos; return this.finishToken(tt.bracketL)\n  case 93: ++this.pos; return this.finishToken(tt.bracketR)\n  case 123: ++this.pos; return this.finishToken(tt.braceL)\n  case 125: ++this.pos; return this.finishToken(tt.braceR)\n  case 58: ++this.pos; return this.finishToken(tt.colon)\n  case 63: ++this.pos; return this.finishToken(tt.question)\n\n  case 96: // '`'\n    if (this.options.ecmaVersion < 6) break\n    ++this.pos\n    return this.finishToken(tt.backQuote)\n\n  case 48: // '0'\n    let next = this.input.charCodeAt(this.pos + 1)\n    if (next === 120 || next === 88) return this.readRadixNumber(16) // '0x', '0X' - hex number\n    if (this.options.ecmaVersion >= 6) {\n      if (next === 111 || next === 79) return this.readRadixNumber(8) // '0o', '0O' - octal number\n      if (next === 98 || next === 66) return this.readRadixNumber(2) // '0b', '0B' - binary number\n    }\n\n  // Anything else beginning with a digit is an integer, octal\n  // number, or float.\n  case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n    return this.readNumber(false)\n\n  // Quotes produce strings.\n  case 34: case 39: // '\"', \"'\"\n    return this.readString(code)\n\n  // Operators are parsed inline in tiny state machines. '=' (61) is\n  // often referred to. `finishOp` simply skips the amount of\n  // characters it is given as second argument, and returns a token\n  // of the type given by its first argument.\n\n  case 47: // '/'\n    return this.readToken_slash()\n\n  case 37: case 42: // '%*'\n    return this.readToken_mult_modulo_exp(code)\n\n  case 124: case 38: // '|&'\n    return this.readToken_pipe_amp(code)\n\n  case 94: // '^'\n    return this.readToken_caret()\n\n  case 43: case 45: // '+-'\n    return this.readToken_plus_min(code)\n\n  case 60: case 62: // '<>'\n    return this.readToken_lt_gt(code)\n\n  case 61: case 33: // '=!'\n    return this.readToken_eq_excl(code)\n\n  case 126: // '~'\n    return this.finishOp(tt.prefix, 1)\n  }\n\n  this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\")\n}\n\npp.finishOp = function(type, size) {\n  let str = this.input.slice(this.pos, this.pos + size)\n  this.pos += size\n  return this.finishToken(type, str)\n}\n\npp.readRegexp = function() {\n  let escaped, inClass, start = this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(start, \"Unterminated regular expression\")\n    let ch = this.input.charAt(this.pos)\n    if (lineBreak.test(ch)) this.raise(start, \"Unterminated regular expression\")\n    if (!escaped) {\n      if (ch === \"[\") inClass = true\n      else if (ch === \"]\" && inClass) inClass = false\n      else if (ch === \"/\" && !inClass) break\n      escaped = ch === \"\\\\\"\n    } else escaped = false\n    ++this.pos\n  }\n  let pattern = this.input.slice(start, this.pos)\n  ++this.pos\n  let flagsStart = this.pos\n  let flags = this.readWord1()\n  if (this.containsEsc) this.unexpected(flagsStart)\n\n  // Validate pattern\n  const state = this.regexpState || (this.regexpState = new RegExpValidationState(this))\n  state.reset(start, pattern, flags)\n  this.validateRegExpFlags(state)\n  this.validateRegExpPattern(state)\n\n  // Create Literal#value property value.\n  let value = null\n  try {\n    value = new RegExp(pattern, flags)\n  } catch (e) {\n    // ESTree requires null if it failed to instantiate RegExp object.\n    // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n  }\n\n  return this.finishToken(tt.regexp, {pattern, flags, value})\n}\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp.readInt = function(radix, len) {\n  let start = this.pos, total = 0\n  for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n    let code = this.input.charCodeAt(this.pos), val\n    if (code >= 97) val = code - 97 + 10 // a\n    else if (code >= 65) val = code - 65 + 10 // A\n    else if (code >= 48 && code <= 57) val = code - 48 // 0-9\n    else val = Infinity\n    if (val >= radix) break\n    ++this.pos\n    total = total * radix + val\n  }\n  if (this.pos === start || len != null && this.pos - start !== len) return null\n\n  return total\n}\n\npp.readRadixNumber = function(radix) {\n  this.pos += 2 // 0x\n  let val = this.readInt(radix)\n  if (val == null) this.raise(this.start + 2, \"Expected number in radix \" + radix)\n  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\")\n  return this.finishToken(tt.num, val)\n}\n\n// Read an integer, octal integer, or floating-point number.\n\npp.readNumber = function(startsWithDot) {\n  let start = this.pos\n  if (!startsWithDot && this.readInt(10) === null) this.raise(start, \"Invalid number\")\n  let octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48\n  if (octal && this.strict) this.raise(start, \"Invalid number\")\n  if (octal && /[89]/.test(this.input.slice(start, this.pos))) octal = false\n  let next = this.input.charCodeAt(this.pos)\n  if (next === 46 && !octal) { // '.'\n    ++this.pos\n    this.readInt(10)\n    next = this.input.charCodeAt(this.pos)\n  }\n  if ((next === 69 || next === 101) && !octal) { // 'eE'\n    next = this.input.charCodeAt(++this.pos)\n    if (next === 43 || next === 45) ++this.pos // '+-'\n    if (this.readInt(10) === null) this.raise(start, \"Invalid number\")\n  }\n  if (isIdentifierStart(this.fullCharCodeAtPos())) this.raise(this.pos, \"Identifier directly after number\")\n\n  let str = this.input.slice(start, this.pos)\n  let val = octal ? parseInt(str, 8) : parseFloat(str)\n  return this.finishToken(tt.num, val)\n}\n\n// Read a string value, interpreting backslash-escapes.\n\npp.readCodePoint = function() {\n  let ch = this.input.charCodeAt(this.pos), code\n\n  if (ch === 123) { // '{'\n    if (this.options.ecmaVersion < 6) this.unexpected()\n    let codePos = ++this.pos\n    code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos)\n    ++this.pos\n    if (code > 0x10FFFF) this.invalidStringToken(codePos, \"Code point out of bounds\")\n  } else {\n    code = this.readHexChar(4)\n  }\n  return code\n}\n\nfunction codePointToString(code) {\n  // UTF-16 Decoding\n  if (code <= 0xFFFF) return String.fromCharCode(code)\n  code -= 0x10000\n  return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\npp.readString = function(quote) {\n  let out = \"\", chunkStart = ++this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(this.start, \"Unterminated string constant\")\n    let ch = this.input.charCodeAt(this.pos)\n    if (ch === quote) break\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos)\n      out += this.readEscapedChar(false)\n      chunkStart = this.pos\n    } else {\n      if (isNewLine(ch, this.options.ecmaVersion >= 10)) this.raise(this.start, \"Unterminated string constant\")\n      ++this.pos\n    }\n  }\n  out += this.input.slice(chunkStart, this.pos++)\n  return this.finishToken(tt.string, out)\n}\n\n// Reads template string tokens.\n\nconst INVALID_TEMPLATE_ESCAPE_ERROR = {}\n\npp.tryReadTemplateToken = function() {\n  this.inTemplateElement = true\n  try {\n    this.readTmplToken()\n  } catch (err) {\n    if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n      this.readInvalidTemplateToken()\n    } else {\n      throw err\n    }\n  }\n\n  this.inTemplateElement = false\n}\n\npp.invalidStringToken = function(position, message) {\n  if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n    throw INVALID_TEMPLATE_ESCAPE_ERROR\n  } else {\n    this.raise(position, message)\n  }\n}\n\npp.readTmplToken = function() {\n  let out = \"\", chunkStart = this.pos\n  for (;;) {\n    if (this.pos >= this.input.length) this.raise(this.start, \"Unterminated template\")\n    let ch = this.input.charCodeAt(this.pos)\n    if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n      if (this.pos === this.start && (this.type === tt.template || this.type === tt.invalidTemplate)) {\n        if (ch === 36) {\n          this.pos += 2\n          return this.finishToken(tt.dollarBraceL)\n        } else {\n          ++this.pos\n          return this.finishToken(tt.backQuote)\n        }\n      }\n      out += this.input.slice(chunkStart, this.pos)\n      return this.finishToken(tt.template, out)\n    }\n    if (ch === 92) { // '\\'\n      out += this.input.slice(chunkStart, this.pos)\n      out += this.readEscapedChar(true)\n      chunkStart = this.pos\n    } else if (isNewLine(ch)) {\n      out += this.input.slice(chunkStart, this.pos)\n      ++this.pos\n      switch (ch) {\n      case 13:\n        if (this.input.charCodeAt(this.pos) === 10) ++this.pos\n      case 10:\n        out += \"\\n\"\n        break\n      default:\n        out += String.fromCharCode(ch)\n        break\n      }\n      if (this.options.locations) {\n        ++this.curLine\n        this.lineStart = this.pos\n      }\n      chunkStart = this.pos\n    } else {\n      ++this.pos\n    }\n  }\n}\n\n// Reads a template token to search for the end, without validating any escape sequences\npp.readInvalidTemplateToken = function() {\n  for (; this.pos < this.input.length; this.pos++) {\n    switch (this.input[this.pos]) {\n    case \"\\\\\":\n      ++this.pos\n      break\n\n    case \"$\":\n      if (this.input[this.pos + 1] !== \"{\") {\n        break\n      }\n    // falls through\n\n    case \"`\":\n      return this.finishToken(tt.invalidTemplate, this.input.slice(this.start, this.pos))\n\n    // no default\n    }\n  }\n  this.raise(this.start, \"Unterminated template\")\n}\n\n// Used to read escaped characters\n\npp.readEscapedChar = function(inTemplate) {\n  let ch = this.input.charCodeAt(++this.pos)\n  ++this.pos\n  switch (ch) {\n  case 110: return \"\\n\" // 'n' -> '\\n'\n  case 114: return \"\\r\" // 'r' -> '\\r'\n  case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n  case 117: return codePointToString(this.readCodePoint()) // 'u'\n  case 116: return \"\\t\" // 't' -> '\\t'\n  case 98: return \"\\b\" // 'b' -> '\\b'\n  case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n  case 102: return \"\\f\" // 'f' -> '\\f'\n  case 13: if (this.input.charCodeAt(this.pos) === 10) ++this.pos // '\\r\\n'\n  case 10: // ' \\n'\n    if (this.options.locations) { this.lineStart = this.pos; ++this.curLine }\n    return \"\"\n  default:\n    if (ch >= 48 && ch <= 55) {\n      let octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0]\n      let octal = parseInt(octalStr, 8)\n      if (octal > 255) {\n        octalStr = octalStr.slice(0, -1)\n        octal = parseInt(octalStr, 8)\n      }\n      this.pos += octalStr.length - 1\n      ch = this.input.charCodeAt(this.pos)\n      if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n        this.invalidStringToken(\n          this.pos - 1 - octalStr.length,\n          inTemplate\n            ? \"Octal literal in template string\"\n            : \"Octal literal in strict mode\"\n        )\n      }\n      return String.fromCharCode(octal)\n    }\n    if (isNewLine(ch)) {\n      // Unicode new line characters after \\ get removed from output in both\n      // template literals and strings\n      return \"\"\n    }\n    return String.fromCharCode(ch)\n  }\n}\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp.readHexChar = function(len) {\n  let codePos = this.pos\n  let n = this.readInt(16, len)\n  if (n === null) this.invalidStringToken(codePos, \"Bad character escape sequence\")\n  return n\n}\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp.readWord1 = function() {\n  this.containsEsc = false\n  let word = \"\", first = true, chunkStart = this.pos\n  let astral = this.options.ecmaVersion >= 6\n  while (this.pos < this.input.length) {\n    let ch = this.fullCharCodeAtPos()\n    if (isIdentifierChar(ch, astral)) {\n      this.pos += ch <= 0xffff ? 1 : 2\n    } else if (ch === 92) { // \"\\\"\n      this.containsEsc = true\n      word += this.input.slice(chunkStart, this.pos)\n      let escStart = this.pos\n      if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n        this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\")\n      ++this.pos\n      let esc = this.readCodePoint()\n      if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n        this.invalidStringToken(escStart, \"Invalid Unicode escape\")\n      word += codePointToString(esc)\n      chunkStart = this.pos\n    } else {\n      break\n    }\n    first = false\n  }\n  return word + this.input.slice(chunkStart, this.pos)\n}\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp.readWord = function() {\n  let word = this.readWord1()\n  let type = tt.name\n  if (this.keywords.test(word)) {\n    if (this.containsEsc) this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + word)\n    type = keywordTypes[word]\n  }\n  return this.finishToken(type, word)\n}\n","// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n//\n// Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and\n// various contributors and released under an MIT license.\n//\n// Git repositories for Acorn are available at\n//\n//     http://marijnhaverbeke.nl/git/acorn\n//     https://github.com/acornjs/acorn.git\n//\n// Please use the [github bug tracker][ghbt] to report issues.\n//\n// [ghbt]: https://github.com/acornjs/acorn/issues\n//\n// [walk]: util/walk.js\n\nimport {Parser} from \"./state\"\nimport \"./parseutil\"\nimport \"./statement\"\nimport \"./lval\"\nimport \"./expression\"\nimport \"./location\"\nimport \"./scope\"\n\nexport {Parser} from \"./state\"\nexport {defaultOptions} from \"./options\"\nexport {Position, SourceLocation, getLineInfo} from \"./locutil\"\nexport {Node} from \"./node\"\nexport {TokenType, types as tokTypes, keywords as keywordTypes} from \"./tokentype\"\nexport {TokContext, types as tokContexts} from \"./tokencontext\"\nexport {isIdentifierChar, isIdentifierStart} from \"./identifier\"\nexport {Token} from \"./tokenize\"\nexport {isNewLine, lineBreak, lineBreakG, nonASCIIwhitespace} from \"./whitespace\"\n\nexport const version = \"6.1.1\"\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and\n// returns an abstract syntax tree as specified by [Mozilla parser\n// API][api].\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\nexport function parse(input, options) {\n  return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nexport function parseExpressionAt(input, pos, options) {\n  return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nexport function tokenizer(input, options) {\n  return Parser.tokenizer(input, options)\n}\n"],"names":["const","let","keywords","tt","this","pp","init","label","node","empty","scope","types","UNICODE_PROPERTY_VALUES","codePointToString","ch","keywordTypes"],"mappings":";;;;;;AAAA;;AAEA,AAAOA,IAAM,aAAa,GAAG;EAC3B,CAAC,EAAE,qNAAqN;EACxN,CAAC,EAAE,8CAA8C;EACjD,CAAC,EAAE,MAAM;EACT,MAAM,EAAE,wEAAwE;EAChF,UAAU,EAAE,gBAAgB;EAC7B;;;;AAIDA,IAAM,oBAAoB,GAAG,8KAA6K;;AAE1M,AAAOA,IAAM,QAAQ,GAAG;EACtB,CAAC,EAAE,oBAAoB;EACvB,CAAC,EAAE,oBAAoB,GAAG,0CAA0C;EACrE;;AAED,AAAOA,IAAM,yBAAyB,GAAG,kBAAiB;;;;;;;;;;AAU1DC,IAAI,4BAA4B,GAAG,4tIAA2tI;AAC9vIA,IAAI,uBAAuB,GAAG,sjFAAqjF;;AAEnlFD,IAAM,uBAAuB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,GAAG,EAAC;AACpFA,IAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,4BAA4B,GAAG,uBAAuB,GAAG,GAAG,EAAC;;AAEzG,4BAA4B,GAAG,uBAAuB,GAAG,KAAI;;;;;;;;;AAS7DA,IAAM,0BAA0B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAC;;;AAGvqCA,IAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,C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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-parse-better-errors/README.md-7-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-parse-better-errors/README.md:8:`$ npm install --save json-parse-better-errors`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-parse-better-errors/README.md-9-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-parse-better-errors/index.js-33-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-parse-better-errors/index.js:34:      e.message += ` while parsing '${txt.slice(0, context * 2)}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-parse-better-errors/index.js-35-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/astral-regex/index.js-3-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/astral-regex/index.js:4:module.exports = opts => opts && opts.exact ? new RegExp(`^${regex}$`) : new RegExp(regex, 'g');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/async/dist/async.min.js:1:!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.async=n.async||{})}(this,function(n){"use strict";function t(n,t){t|=0;for(var e=Math.max(n.length-t,0),r=Array(e),u=0;u<e;u++)r[u]=n[t+u];return r}function e(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function r(n){setTimeout(n,0)}function u(n){return function(e){var r=t(arguments,1);n(function(){e.apply(null,r)})}}function i(n){return ct(function(t,r){var u;try{u=n.apply(this,t)}catch(n){return r(n)}e(u)&&"function"==typeof u.then?u.then(function(n){o(r,null,n)},function(n){o(r,n.message?n:new Error(n))}):r(null,u)})}function o(n,t,e){try{n(t,e)}catch(n){lt(c,n)}}function c(n){throw n}function f(n){return st&&"AsyncFunction"===n[Symbol.toStringTag]}function a(n){return f(n)?i(n):n}function l(n){return function(e){var r=t(arguments,1),u=ct(function(t,r){var u=this;return n(e,function(n,e){a(n).apply(u,t.concat(e))},r)});return r.length?u.apply(this,r):u}}function s(n){var t=mt.call(n,bt),e=n[bt];try{n[bt]=void 0;var r=!0}catch(n){}var u=gt.call(n);return r&&(t?n[bt]=e:delete n[bt]),u}function p(n){return St.call(n)}function h(n){return null==n?void 0===n?Lt:kt:Ot&&Ot in Object(n)?s(n):p(n)}function y(n){if(!e(n))return!1;var t=h(n);return t==xt||t==Et||t==wt||t==At}function v(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=Tt}function d(n){return null!=n&&v(n.length)&&!y(n)}function m(){}function g(n){return function(){if(null!==n){var t=n;n=null,t.apply(this,arguments)}}}function b(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}function j(n){return null!=n&&"object"==typeof n}function S(n){return j(n)&&h(n)==_t}function k(){return!1}function L(n,t){var e=typeof n;return t=null==t?Nt:t,!!t&&("number"==e||"symbol"!=e&&Qt.test(n))&&n>-1&&n%1==0&&n<t}function O(n){return j(n)&&v(n.length)&&!!me[h(n)]}function w(n){return function(t){return n(t)}}function x(n,t){var e=Pt(n),r=!e&&zt(n),u=!e&&!r&&Wt(n),i=!e&&!r&&!u&&Oe(n),o=e||r||u||i,c=o?b(n.length,String):[],f=c.length;for(var a in n)!t&&!xe.call(n,a)||o&&("length"==a||u&&("offset"==a||"parent"==a)||i&&("buffer"==a||"byteLength"==a||"byteOffset"==a)||L(a,f))||c.push(a);return c}function E(n){var t=n&&n.constructor,e="function"==typeof t&&t.prototype||Ee;return n===e}function A(n,t){return function(e){return n(t(e))}}function T(n){if(!E(n))return Ae(n);var t=[];for(var e in Object(n))Be.call(n,e)&&"constructor"!=e&&t.push(e);return t}function B(n){return d(n)?x(n):T(n)}function F(n){var t=-1,e=n.length;return function(){return++t<e?{value:n[t],key:t}:null}}function I(n){var t=-1;return function(){var e=n.next();return e.done?null:(t++,{value:e.value,key:t})}}function _(n){var t=B(n),e=-1,r=t.length;return function(){var u=t[++e];return e<r?{value:n[u],key:u}:null}}function M(n){if(d(n))return F(n);var t=It(n);return t?I(t):_(n)}function U(n){return function(){if(null===n)throw new Error("Callback was already called.");var t=n;n=null,t.apply(this,arguments)}}function q(n){return function(t,e,r){function u(n,t){if(f-=1,n)c=!0,r(n);else{if(t===Bt||c&&f<=0)return c=!0,r(null);a||i()}}function i(){for(a=!0;f<n&&!c;){var t=o();if(null===t)return c=!0,void(f<=0&&r(null));f+=1,e(t.value,t.key,U(u))}a=!1}if(r=g(r||m),n<=0||!t)return r(null);var o=M(t),c=!1,f=0,a=!1;i()}}function z(n,t,e,r){q(t)(n,a(e),r)}function P(n,t){return function(e,r,u){return n(e,t,r,u)}}function V(n,t,e){function r(n,t){n?e(n):++i!==o&&t!==Bt||e(null)}e=g(e||m);var u=0,i=0,o=n.length;for(0===o&&e(null);u<o;u++)t(n[u],u,U(r))}function D(n){return function(t,e,r){return n(Ie,t,a(e),r)}}function R(n,t,e,r){r=r||m,t=t||[];var u=[],i=0,o=a(e);n(t,function(n,t,e){var r=i++;o(n,function(n,t){u[r]=t,e(n)})},function(n){r(n,u)})}function C(n){return function(t,e,r,u){return n(q(e),t,a(r),u)}}function $(n,t){for(var e=-1,r=null==n?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}function W(n){return function(t,e,r){for(var u=-1,i=Object(t),o=r(t),c=o.length;c--;){var f=o[n?c:++u];if(e(i[f],f,i)===!1)break}return t}}function N(n,t){return n&&Pe(n,t,B)}function Q(n,t,e,r){for(var u=n.length,i=e+(r?1:-1);r?i--:++i<u;)if(t(n[i],i,n))return i;return-1}function G(n){return n!==n}function H(n,t,e){for(var r=e-1,u=n.length;++r<u;)if(n[r]===t)return r;return-1}function J(n,t,e){return t===t?H(n,t,e):Q(n,G,e)}function K(n,t){for(var e=-1,r=null==n?0:n.length,u=Array(r);++e<r;)u[e]=t(n[e],e,n);return u}function X(n){return"symbol"==typeof n||j(n)&&h(n)==De}function Y(n){if("string"==typeof n)return n;if(Pt(n))return K(n,Y)+"";if(X(n))return $e?$e.call(n):"";var t=n+"";return"0"==t&&1/n==-Re?"-0":t}function Z(n,t,e){var r=-1,u=n.length;t<0&&(t=-t>u?0:u+t),e=e>u?u:e,e<0&&(e+=u),u=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(u);++r<u;)i[r]=n[r+t];return i}function nn(n,t,e){var r=n.length;return e=void 0===e?r:e,!t&&e>=r?n:Z(n,t,e)}function tn(n,t){for(var e=n.length;e--&&J(t,n[e],0)>-1;);return e}function en(n,t){for(var e=-1,r=n.length;++e<r&&J(t,n[e],0)>-1;);return e}function rn(n){return n.split("")}function un(n){return Xe.test(n)}function on(n){return n.match(mr)||[]}function cn(n){return un(n)?on(n):rn(n)}function fn(n){return null==n?"":Y(n)}function an(n,t,e){if(n=fn(n),n&&(e||void 0===t))return n.replace(gr,"");if(!n||!(t=Y(t)))return n;var r=cn(n),u=cn(t),i=en(r,u),o=tn(r,u)+1;return nn(r,i,o).join("")}function ln(n){return n=n.toString().replace(kr,""),n=n.match(br)[2].replace(" ",""),n=n?n.split(jr):[],n=n.map(function(n){return an(n.replace(Sr,""))})}function sn(n,t){var e={};N(n,function(n,t){function r(t,e){var r=K(u,function(n){return t[n]});r.push(e),a(n).apply(null,r)}var u,i=f(n),o=!i&&1===n.length||i&&0===n.length;if(Pt(n))u=n.slice(0,-1),n=n[n.length-1],e[t]=u.concat(u.length>0?r:n);else if(o)e[t]=n;else{if(u=ln(n),0===n.length&&!i&&0===u.length)throw new Error("autoInject task functions require explicit parameters.");i||u.pop(),e[t]=u.concat(r)}}),Ve(e,t)}function pn(){this.head=this.tail=null,this.length=0}function hn(n,t){n.length=1,n.head=n.tail=t}function yn(n,t,e){function r(n,t,e){if(null!=e&&"function"!=typeof e)throw new Error("task callback must be a function");if(s.started=!0,Pt(n)||(n=[n]),0===n.length&&s.idle())return lt(function(){s.drain()});for(var r=0,u=n.length;r<u;r++){var i={data:n[r],callback:e||m};t?s._tasks.unshift(i):s._tasks.push(i)}f||(f=!0,lt(function(){f=!1,s.process()}))}function u(n){return function(t){o-=1;for(var e=0,r=n.length;e<r;e++){var u=n[e],i=J(c,u,0);0===i?c.shift():i>0&&c.splice(i,1),u.callback.apply(u,arguments),null!=t&&s.error(t,u.data)}o<=s.concurrency-s.buffer&&s.unsaturated(),s.idle()&&s.drain(),s.process()}}if(null==t)t=1;else if(0===t)throw new Error("Concurrency must not be zero");var i=a(n),o=0,c=[],f=!1,l=!1,s={_tasks:new pn,concurrency:t,payload:e,saturated:m,unsaturated:m,buffer:t/4,empty:m,drain:m,error:m,started:!1,paused:!1,push:function(n,t){r(n,!1,t)},kill:function(){s.drain=m,s._tasks.empty()},unshift:function(n,t){r(n,!0,t)},remove:function(n){s._tasks.remove(n)},process:function(){if(!l){for(l=!0;!s.paused&&o<s.concurrency&&s._tasks.length;){var n=[],t=[],e=s._tasks.length;s.payload&&(e=Math.min(e,s.payload));for(var r=0;r<e;r++){var f=s._tasks.shift();n.push(f),c.push(f),t.push(f.data)}o+=1,0===s._tasks.length&&s.empty(),o===s.concurrency&&s.saturated();var a=U(u(n));i(t,a)}l=!1}},length:function(){return s._tasks.length},running:function(){return o},workersList:function(){return c},idle:function(){return s._tasks.length+o===0},pause:function(){s.paused=!0},resume:function(){s.paused!==!1&&(s.paused=!1,lt(s.process))}};return s}function vn(n,t){return yn(n,1,t)}function dn(n,t,e,r){r=g(r||m);var u=a(e);Or(n,function(n,e,r){u(t,n,function(n,e){t=e,r(n)})},function(n){r(n,t)})}function mn(){var n=K(arguments,a);return function(){var e=t(arguments),r=this,u=e[e.length-1];"function"==typeof u?e.pop():u=m,dn(n,e,function(n,e,u){e.apply(r,n.concat(function(n){var e=t(arguments,1);u(n,e)}))},function(n,t){u.apply(r,[n].concat(t))})}}function gn(n){return n}function bn(n,t){return function(e,r,u,i){i=i||m;var o,c=!1;e(r,function(e,r,i){u(e,function(r,u){r?i(r):n(u)&&!o?(c=!0,o=t(!0,e),i(null,Bt)):i()})},function(n){n?i(n):i(null,c?o:t(!1))})}}function jn(n,t){return t}function Sn(n){return function(e){var r=t(arguments,1);r.push(function(e){var r=t(arguments,1);"object"==typeof console&&(e?console.error&&console.error(e):console[n]&&$(r,function(t){console[n](t)}))}),a(e).apply(null,r)}}function kn(n,e,r){function u(n){if(n)return r(n);var e=t(arguments,1);e.push(i),c.apply(this,e)}function i(n,t){return n?r(n):t?void o(u):r(null)}r=U(r||m);var o=a(n),c=a(e);i(null,!0)}function Ln(n,e,r){r=U(r||m);var u=a(n),i=function(n){if(n)return r(n);var o=t(arguments,1);return e.apply(this,o)?u(i):void r.apply(null,[null].concat(o))};u(i)}function On(n,t,e){Ln(n,function(){return!t.apply(this,arguments)},e)}function wn(n,t,e){function r(n){return n?e(n):void o(u)}function u(n,t){return n?e(n):t?void i(r):e(null)}e=U(e||m);var i=a(t),o=a(n);o(u)}function xn(n){return function(t,e,r){return n(t,r)}}function En(n,t,e){Ie(n,xn(a(t)),e)}function An(n,t,e,r){q(t)(n,xn(a(e)),r)}function Tn(n){return f(n)?n:ct(function(t,e){var r=!0;t.push(function(){var n=arguments;r?lt(function(){e.apply(null,n)}):e.apply(null,n)}),n.apply(this,t),r=!1})}function Bn(n){return!n}function Fn(n){return function(t){return null==t?void 0:t[n]}}function In(n,t,e,r){var u=new Array(t.length);n(t,function(n,t,r){e(n,function(n,e){u[t]=!!e,r(n)})},function(n){if(n)return r(n);for(var e=[],i=0;i<t.length;i++)u[i]&&e.push(t[i]);r(null,e)})}function _n(n,t,e,r){var u=[];n(t,function(n,t,r){e(n,function(e,i){e?r(e):(i&&u.push({index:t,value:n}),r())})},function(n){n?r(n):r(null,K(u.sort(function(n,t){return n.index-t.index}),Fn("value")))})}function Mn(n,t,e,r){var u=d(t)?In:_n;u(n,t,a(e),r||m)}function Un(n,t){function e(n){return n?r(n):void u(e)}var r=U(t||m),u=a(Tn(n));e()}function qn(n,t,e,r){r=g(r||m);var u={},i=a(e);z(n,t,function(n,t,e){i(n,t,function(n,r){return n?e(n):(u[t]=r,void e())})},function(n){r(n,u)})}function zn(n,t){return t in n}function Pn(n,e){var r=Object.create(null),u=Object.create(null);e=e||gn;var i=a(n),o=ct(function(n,o){var c=e.apply(null,n);zn(r,c)?lt(function(){o.apply(null,r[c])}):zn(u,c)?u[c].push(o):(u[c]=[o],i.apply(null,n.concat(function(){var n=t(arguments);r[c]=n;var e=u[c];delete u[c];for(var i=0,o=e.length;i<o;i++)e[i].apply(null,n)})))});return o.memo=r,o.unmemoized=n,o}function Vn(n,e,r){r=r||m;var u=d(e)?[]:{};n(e,function(n,e,r){a(n)(function(n,i){arguments.length>2&&(i=t(arguments,1)),u[e]=i,r(n)})},function(n){r(n,u)})}function Dn(n,t){Vn(Ie,n,t)}function Rn(n,t,e){Vn(q(t),n,e)}function Cn(n,t){if(t=g(t||m),!Pt(n))return t(new TypeError("First argument to race must be an array of functions"));if(!n.length)return t();for(var e=0,r=n.length;e<r;e++)a(n[e])(t)}function $n(n,e,r,u){var i=t(n).reverse();dn(i,e,r,u)}function Wn(n){var e=a(n);return ct(function(n,r){return n.push(function(n,e){if(n)r(null,{error:n});else{var u;u=arguments.length<=2?e:t(arguments,1),r(null,{value:u})}}),e.apply(this,n)})}function Nn(n){var t;return Pt(n)?t=K(n,Wn):(t={},N(n,function(n,e){t[e]=Wn.call(this,n)})),t}function Qn(n,t,e,r){Mn(n,t,function(n,t){e(n,function(n,e){t(n,!e)})},r)}function Gn(n){return function(){return n}}function Hn(n,t,e){function r(n,t){if("object"==typeof t)n.times=+t.times||i,n.intervalFunc="function"==typeof t.interval?t.interval:Gn(+t.interval||o),n.errorFilter=t.errorFilter;else{if("number"!=typeof t&&"string"!=typeof t)throw new Error("Invalid arguments for async.retry");n.times=+t||i}}function u(){f(function(n){n&&l++<c.times&&("function"!=typeof c.errorFilter||c.errorFilter(n))?setTimeout(u,c.intervalFunc(l)):e.apply(null,arguments)})}var i=5,o=0,c={times:i,intervalFunc:Gn(o)};if(arguments.length<3&&"function"==typeof n?(e=t||m,t=n):(r(c,n),e=e||m),"function"!=typeof t)throw new Error("Invalid arguments for async.retry");var f=a(t),l=1;u()}function Jn(n,t){Vn(Or,n,t)}function Kn(n,t,e){function r(n,t){var e=n.criteria,r=t.criteria;return e<r?-1:e>r?1:0}var u=a(t);_e(n,function(n,t){u(n,function(e,r){return e?t(e):void t(null,{value:n,criteria:r})})},function(n,t){return n?e(n):void e(null,K(t.sort(r),Fn("value")))})}function Xn(n,t,e){var r=a(n);return ct(function(u,i){function o(){var t=n.name||"anonymous",r=new Error('Callback function "'+t+'" timed out.');r.code="ETIMEDOUT",e&&(r.info=e),f=!0,i(r)}var c,f=!1;u.push(function(){f||(i.apply(null,arguments),clearTimeout(c))}),c=setTimeout(o,t),r.apply(null,u)})}function Yn(n,t,e,r){for(var u=-1,i=iu(uu((t-n)/(e||1)),0),o=Array(i);i--;)o[r?i:++u]=n,n+=e;return o}function Zn(n,t,e,r){var u=a(e);Ue(Yn(0,n,1),t,u,r)}function nt(n,t,e,r){arguments.length<=3&&(r=e,e=t,t=Pt(n)?[]:{}),r=g(r||m);var u=a(e);Ie(n,function(n,e,r){u(t,n,e,r)},function(n){r(n,t)})}function tt(n,e){var r,u=null;e=e||m,Ur(n,function(n,e){a(n)(function(n,i){r=arguments.length>2?t(arguments,1):i,u=n,e(!n)})},function(){e(u,r)})}function et(n){return function(){return(n.unmemoized||n).apply(null,arguments)}}function rt(n,e,r){r=U(r||m);var u=a(e);if(!n())return r(null);var i=function(e){if(e)return r(e);if(n())return u(i);var o=t(arguments,1);r.apply(null,[null].concat(o))};u(i)}function ut(n,t,e){rt(function(){return!n.apply(this,arguments)},t,e)}var it,ot=function(n){var e=t(arguments,1);return function(){var r=t(arguments);return n.apply(null,e.concat(r))}},ct=function(n){return function(){var e=t(arguments),r=e.pop();n.call(this,e,r)}},ft="function"==typeof setImmediate&&setImmediate,at="object"==typeof process&&"function"==typeof process.nextTick;it=ft?setImmediate:at?process.nextTick:r;var lt=u(it),st="function"==typeof Symbol,pt="object"==typeof global&&global&&global.Object===Object&&global,ht="object"==typeof self&&self&&self.Object===Object&&self,yt=pt||ht||Function("return this")(),vt=yt.Symbol,dt=Object.prototype,mt=dt.hasOwnProperty,gt=dt.toString,bt=vt?vt.toStringTag:void 0,jt=Object.prototype,St=jt.toString,kt="[object Null]",Lt="[object Undefined]",Ot=vt?vt.toStringTag:void 0,wt="[object AsyncFunction]",xt="[object Function]",Et="[object GeneratorFunction]",At="[object Proxy]",Tt=9007199254740991,Bt={},Ft="function"==typeof Symbol&&Symbol.iterator,It=function(n){return Ft&&n[Ft]&&n[Ft]()},_t="[object Arguments]",Mt=Object.prototype,Ut=Mt.hasOwnProperty,qt=Mt.propertyIsEnumerable,zt=S(function(){return arguments}())?S:function(n){return j(n)&&Ut.call(n,"callee")&&!qt.call(n,"callee")},Pt=Array.isArray,Vt="object"==typeof n&&n&&!n.nodeType&&n,Dt=Vt&&"object"==typeof module&&module&&!module.nodeType&&module,Rt=Dt&&Dt.exports===Vt,Ct=Rt?yt.Buffer:void 0,$t=Ct?Ct.isBuffer:void 0,Wt=$t||k,Nt=9007199254740991,Qt=/^(?:0|[1-9]\d*)$/,Gt="[object Arguments]",Ht="[object Array]",Jt="[object Boolean]",Kt="[object Date]",Xt="[object Error]",Yt="[object Function]",Zt="[object Map]",ne="[object Number]",te="[object Object]",ee="[object RegExp]",re="[object Set]",ue="[object String]",ie="[object WeakMap]",oe="[object ArrayBuffer]",ce="[object DataView]",fe="[object Float32Array]",ae="[object Float64Array]",le="[object Int8Array]",se="[object Int16Array]",pe="[object Int32Array]",he="[object Uint8Array]",ye="[object Uint8ClampedArray]",ve="[object Uint16Array]",de="[object Uint32Array]",me={};me[fe]=me[ae]=me[le]=me[se]=me[pe]=me[he]=me[ye]=me[ve]=me[de]=!0,me[Gt]=me[Ht]=me[oe]=me[Jt]=me[ce]=me[Kt]=me[Xt]=me[Yt]=me[Zt]=me[ne]=me[te]=me[ee]=me[re]=me[ue]=me[ie]=!1;var ge="object"==typeof n&&n&&!n.nodeType&&n,be=ge&&"object"==typeof module&&module&&!module.nodeType&&module,je=be&&be.exports===ge,Se=je&&pt.process,ke=function(){try{var n=be&&be.require&&be.require("util").types;return n?n:Se&&Se.binding&&Se.binding("util")}catch(n){}}(),Le=ke&&ke.isTypedArray,Oe=Le?w(Le):O,we=Object.prototype,xe=we.hasOwnProperty,Ee=Object.prototype,Ae=A(Object.keys,Object),Te=Object.prototype,Be=Te.hasOwnProperty,Fe=P(z,1/0),Ie=function(n,t,e){var r=d(n)?V:Fe;r(n,a(t),e)},_e=D(R),Me=l(_e),Ue=C(R),qe=P(Ue,1),ze=l(qe),Pe=W(),Ve=function(n,e,r){function u(n,t){j.push(function(){f(n,t)})}function i(){if(0===j.length&&0===v)return r(null,y);for(;j.length&&v<e;){var n=j.shift();n()}}function o(n,t){var e=b[n];e||(e=b[n]=[]),e.push(t)}function c(n){var t=b[n]||[];$(t,function(n){n()}),i()}function f(n,e){if(!d){var u=U(function(e,u){if(v--,arguments.length>2&&(u=t(arguments,1)),e){var i={};N(y,function(n,t){i[t]=n}),i[n]=u,d=!0,b=Object.create(null),r(e,i)}else y[n]=u,c(n)});v++;var i=a(e[e.length-1]);e.length>1?i(y,u):i(u)}}function l(){for(var n,t=0;S.length;)n=S.pop(),t++,$(s(n),function(n){0===--k[n]&&S.push(n)});if(t!==h)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}function s(t){var e=[];return N(n,function(n,r){Pt(n)&&J(n,t,0)>=0&&e.push(r)}),e}"function"==typeof e&&(r=e,e=null),r=g(r||m);var p=B(n),h=p.length;if(!h)return r(null);e||(e=h);var y={},v=0,d=!1,b=Object.create(null),j=[],S=[],k={};N(n,function(t,e){if(!Pt(t))return u(e,[t]),void S.push(e);var r=t.slice(0,t.length-1),i=r.length;return 0===i?(u(e,t),void S.push(e)):(k[e]=i,void $(r,function(c){if(!n[c])throw new Error("async.auto task `"+e+"` has a non-existent dependency `"+c+"` in "+r.join(", "));o(c,function(){i--,0===i&&u(e,t)})}))}),l(),i()},De="[object Symbol]",Re=1/0,Ce=vt?vt.prototype:void 0,$e=Ce?Ce.toString:void 0,We="\\ud800-\\udfff",Ne="\\u0300-\\u036f",Qe="\\ufe20-\\ufe2f",Ge="\\u20d0-\\u20ff",He=Ne+Qe+Ge,Je="\\ufe0e\\ufe0f",Ke="\\u200d",Xe=RegExp("["+Ke+We+He+Je+"]"),Ye="\\ud800-\\udfff",Ze="\\u0300-\\u036f",nr="\\ufe20-\\ufe2f",tr="\\u20d0-\\u20ff",er=Ze+nr+tr,rr="\\ufe0e\\ufe0f",ur="["+Ye+"]",ir="["+er+"]",or="\\ud83c[\\udffb-\\udfff]",cr="(?:"+ir+"|"+or+")",fr="[^"+Ye+"]",ar="(?:\\ud83c[\\udde6-\\uddff]){2}",lr="[\\ud800-\\udbff][\\udc00-\\udfff]",sr="\\u200d",pr=cr+"?",hr="["+rr+"]?",yr="(?:"+sr+"(?:"+[fr,ar,lr].join("|")+")"+hr+pr+")*",vr=hr+pr+yr,dr="(?:"+[fr+ir+"?",ir,ar,lr,ur].join("|")+")",mr=RegExp(or+"(?="+or+")|"+dr+vr,"g"),gr=/^\s+|\s+$/g,br=/^(?:async\s+)?(function)?\s*[^\(]*\(\s*([^\)]*)\)/m,jr=/,/,Sr=/(=.+)?(\s*)$/,kr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm;pn.prototype.removeLink=function(n){return n.prev?n.prev.next=n.next:this.head=n.next,n.next?n.next.prev=n.prev:this.tail=n.prev,n.prev=n.next=null,this.length-=1,n},pn.prototype.empty=function(){for(;this.head;)this.shift();return this},pn.prototype.insertAfter=function(n,t){t.prev=n,t.next=n.next,n.next?n.next.prev=t:this.tail=t,n.next=t,this.length+=1},pn.prototype.insertBefore=function(n,t){t.prev=n.prev,t.next=n,n.prev?n.prev.next=t:this.head=t,n.prev=t,this.length+=1},pn.prototype.unshift=function(n){this.head?this.insertBefore(this.head,n):hn(this,n)},pn.prototype.push=function(n){this.tail?this.insertAfter(this.tail,n):hn(this,n)},pn.prototype.shift=function(){return this.head&&this.removeLink(this.head)},pn.prototype.pop=function(){return this.tail&&this.removeLink(this.tail)},pn.prototype.toArray=function(){for(var n=Array(this.length),t=this.head,e=0;e<this.length;e++)n[e]=t.data,t=t.next;return n},pn.prototype.remove=function(n){for(var t=this.head;t;){var e=t.next;n(t)&&this.removeLink(t),t=e}return this};var Lr,Or=P(z,1),wr=function(){return mn.apply(null,t(arguments).reverse())},xr=Array.prototype.concat,Er=function(n,e,r,u){u=u||m;var i=a(r);Ue(n,e,function(n,e){i(n,function(n){return n?e(n):e(null,t(arguments,1))})},function(n,t){for(var e=[],r=0;r<t.length;r++)t[r]&&(e=xr.apply(e,t[r]));return u(n,e)})},Ar=P(Er,1/0),Tr=P(Er,1),Br=function(){var n=t(arguments),e=[null].concat(n);return function(){var n=arguments[arguments.length-1];return n.apply(this,e)}},Fr=D(bn(gn,jn)),Ir=C(bn(gn,jn)),_r=P(Ir,1),Mr=Sn("dir"),Ur=P(An,1),qr=D(bn(Bn,Bn)),zr=C(bn(Bn,Bn)),Pr=P(zr,1),Vr=D(Mn),Dr=C(Mn),Rr=P(Dr,1),Cr=function(n,t,e,r){r=r||m;var u=a(e);Ue(n,t,function(n,t){u(n,function(e,r){return e?t(e):t(null,{key:r,val:n})})},function(n,t){for(var e={},u=Object.prototype.hasOwnProperty,i=0;i<t.length;i++)if(t[i]){var o=t[i].key,c=t[i].val;u.call(e,o)?e[o].push(c):e[o]=[c]}return r(n,e)})},$r=P(Cr,1/0),Wr=P(Cr,1),Nr=Sn("log"),Qr=P(qn,1/0),Gr=P(qn,1);Lr=at?process.nextTick:ft?setImmediate:r;var Hr=u(Lr),Jr=function(n,t){var e=a(n);return yn(function(n,t){e(n[0],t)},t,1)},Kr=function(n,t){var e=Jr(n,t);return e.push=function(n,t,r){if(null==r&&(r=m),"function"!=typeof r)throw new Error("task callback must be a function");if(e.started=!0,Pt(n)||(n=[n]),0===n.length)return lt(function(){e.drain()});t=t||0;for(var u=e._tasks.head;u&&t>=u.priority;)u=u.next;for(var i=0,o=n.length;i<o;i++){var c={data:n[i],priority:t,callback:r};u?e._tasks.insertBefore(u,c):e._tasks.push(c)}lt(e.process)},delete e.unshift,e},Xr=D(Qn),Yr=C(Qn),Zr=P(Yr,1),nu=function(n,t){t||(t=n,n=null);var e=a(t);return ct(function(t,r){function u(n){e.apply(null,t.concat(n))}n?Hn(n,u,r):Hn(u,r)})},tu=D(bn(Boolean,gn)),eu=C(bn(Boolean,gn)),ru=P(eu,1),uu=Math.ceil,iu=Math.max,ou=P(Zn,1/0),cu=P(Zn,1),fu=function(n,e){function r(t){var e=a(n[i++]);t.push(U(u)),e.apply(null,t)}function u(u){return u||i===n.length?e.apply(null,arguments):void r(t(arguments,1))}if(e=g(e||m),!Pt(n))return e(new Error("First argument to waterfall must be an array of functions"));if(!n.length)return e();var i=0;r([])},au={apply:ot,applyEach:Me,applyEachSeries:ze,asyncify:i,auto:Ve,autoInject:sn,cargo:vn,compose:wr,concat:Ar,concatLimit:Er,concatSeries:Tr,constant:Br,detect:Fr,detectLimit:Ir,detectSeries:_r,dir:Mr,doDuring:kn,doUntil:On,doWhilst:Ln,during:wn,each:En,eachLimit:An,eachOf:Ie,eachOfLimit:z,eachOfSeries:Or,eachSeries:Ur,ensureAsync:Tn,every:qr,everyLimit:zr,everySeries:Pr,filter:Vr,filterLimit:Dr,filterSeries:Rr,forever:Un,groupBy:$r,groupByLimit:Cr,groupBySeries:Wr,log:Nr,map:_e,mapLimit:Ue,mapSeries:qe,mapValues:Qr,mapValuesLimit:qn,mapValuesSeries:Gr,memoize:Pn,nextTick:Hr,parallel:Dn,parallelLimit:Rn,priorityQueue:Kr,queue:Jr,race:Cn,reduce:dn,reduceRight:$n,reflect:Wn,reflectAll:Nn,reject:Xr,rejectLimit:Yr,rejectSeries:Zr,retry:Hn,retryable:nu,seq:mn,series:Jn,setImmediate:lt,some:tu,someLimit:eu,someSeries:ru,sortBy:Kn,timeout:Xn,times:ou,timesLimit:Zn,timesSeries:cu,transform:nt,tryEach:tt,unmemoize:et,until:ut,waterfall:fu,whilst:rt,all:qr,allLimit:zr,allSeries:Pr,any:tu,anyLimit:eu,anySeries:ru,find:Fr,findLimit:Ir,findSeries:_r,forEach:En,forEachSeries:Ur,forEachLimit:An,forEachOf:Ie,forEachOfSeries:Or,forEachOfLimit:z,inject:dn,foldl:dn,foldr:$n,select:Vr,selectLimit:Dr,selectSeries:Rr,wrapSync:i};n.default=au,n.apply=ot,n.applyEach=Me,n.applyEachSeries=ze,n.asyncify=i,n.auto=Ve,n.autoInject=sn,n.cargo=vn,n.compose=wr,n.concat=Ar,n.concatLimit=Er,n.concatSeries=Tr,n.constant=Br,n.detect=Fr,n.detectLimit=Ir,n.detectSeries=_r,n.dir=Mr,n.doDuring=kn,n.doUntil=On,n.doWhilst=Ln,n.during=wn,n.each=En,n.eachLimit=An,n.eachOf=Ie,n.eachOfLimit=z,n.eachOfSeries=Or,n.eachSeries=Ur,n.ensureAsync=Tn,n.every=qr,n.everyLimit=zr,n.everySeries=Pr,n.filter=Vr,n.filterLimit=Dr,n.filterSeries=Rr,n.forever=Un,n.groupBy=$r,n.groupByLimit=Cr,n.groupBySeries=Wr,n.log=Nr,n.map=_e,n.mapLimit=Ue,n.mapSeries=qe,n.mapValues=Qr,n.mapValuesLimit=qn,n.mapValuesSeries=Gr,n.memoize=Pn,n.nextTick=Hr,n.parallel=Dn,n.parallelLimit=Rn,n.priorityQueue=Kr,n.queue=Jr,n.race=Cn,n.reduce=dn,n.reduceRight=$n,n.reflect=Wn,n.reflectAll=Nn,n.reject=Xr,n.rejectLimit=Yr,n.rejectSeries=Zr,n.retry=Hn,n.retryable=nu,n.seq=mn,n.series=Jn,n.setImmediate=lt,n.some=tu,n.someLimit=eu,n.someSeries=ru,n.sortBy=Kn,n.timeout=Xn,n.times=ou,n.timesLimit=Zn,n.timesSeries=cu,n.transform=nt,n.tryEach=tt,n.unmemoize=et,n.until=ut,n.waterfall=fu,n.whilst=rt,n.all=qr,n.allLimit=zr,n.allSeries=Pr,n.any=tu,n.anyLimit=eu,n.anySeries=ru,n.find=Fr,n.findLimit=Ir,n.findSeries=_r,n.forEach=En,n.forEachSeries=Ur,n.forEachLimit=An,n.forEachOf=Ie,n.forEachOfSeries=Or,n.forEachOfLimit=z,n.inject=dn,n.foldl=dn,n.foldr=$n,n.select=Vr,n.selectLimit=Dr,n.selectSeries=Rr,n.wrapSync=i,Object.defineProperty(n,"__esModule",{value:!0})});
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/async/dist/async.min.js-2-//# sourceMappingURL=async.min.map
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js-107-  return [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:108:    [schema[keyword], `/${keyword}`, schema, '', keyword, schema, undefined],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:109:    [schema[keyword].properties[`foo_${keyword}`], `/${keyword}/properties/foo_${keyword}`, schema, `/${keyword}`, 'properties', schema[keyword], `foo_${keyword}`],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:110:    [schema[keyword].properties[`bar_${keyword}`], `/${keyword}/properties/bar_${keyword}`, schema, `/${keyword}`, 'properties', schema[keyword], `bar_${keyword}`],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:111:    [schema[keyword].anyOf[0], `/${keyword}/anyOf/0`, schema, `/${keyword}`, 'anyOf', schema[keyword], 0],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:112:    [schema[keyword].anyOf[1], `/${keyword}/anyOf/1`, schema, `/${keyword}`, 'anyOf', schema[keyword], 1]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js-113-  ];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js-118-  return [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:119:    [schema[keyword][i], `/${keyword}/${i}`, schema, '', keyword, schema, i],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:120:    [schema[keyword][i].properties[`foo_${keyword}_${i}`], `/${keyword}/${i}/properties/foo_${keyword}_${i}`, schema, `/${keyword}/${i}`, 'properties', schema[keyword][i], `foo_${keyword}_${i}`],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:121:    [schema[keyword][i].properties[`bar_${keyword}_${i}`], `/${keyword}/${i}/properties/bar_${keyword}_${i}`, schema, `/${keyword}/${i}`, 'properties', schema[keyword][i], `bar_${keyword}_${i}`],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:122:    [schema[keyword][i].anyOf[0], `/${keyword}/${i}/anyOf/0`, schema, `/${keyword}/${i}`, 'anyOf', schema[keyword][i], 0],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js:123:    [schema[keyword][i].anyOf[1], `/${keyword}/${i}/anyOf/1`, schema, `/${keyword}/${i}`, 'anyOf', schema[keyword][i], 1]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/spec/fixtures/schema.js-124-  ];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/README.md-47-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/README.md:48:Callback function `cb` is called for each schema object (not including draft-06 boolean schemas), including the root schema, in pre-order traversal. Schema references ($ref) are not resolved, they are passed as is.  Alternatively, you can pass a `{pre, post}` object as `cb`, and then `pre` will be called before traversing child elements, and `post` will be called after all child elements have been traversed.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/json-schema-traverse/README.md-49-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-81-[/[\\^$.|*+(){]/g, function (match) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js:82:  return `\\${match}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-83-}], [
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-86-/\[([^\]/]*)($|\])/g, function (match, p1, p2) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js:87:  return p2 === ']' ? `[${sanitizeRange(p1)}]` : `\\${match}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-88-}], [
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-177-function (match, p1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js:178:  return `${p1}[^\\/]*`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-179-}],
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-189-  // 'abc/*' does not match 'abc/'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js:190:  ? `${p1}[^/]+`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-191-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-195-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js:196:  return `${prefix}(?=$|\\/$)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-197-}], [
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-226-function (match) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js:227:  return `${match}(?=$|\\/)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-228-}]], DEFAULT_REPLACER_SUFFIX);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-240-[/(?:[^*])$/, function (match) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js:241:  return `${match}(?=$|\\/$)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/legacy.js-242-}]], DEFAULT_REPLACER_SUFFIX);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-81-    /[\\^$.|*+(){]/g,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js:82:    match => `\\${match}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-83-  ],
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-89-    (match, p1, p2) => p2 === ']'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js:90:      ? `[${sanitizeRange(p1)}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js:91:      : `\\${match}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-92-  ],
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-186-    // '*.js' doesn't match 'abc'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js:187:    (match, p1) => `${p1}[^\\/]*`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-188-  ],
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-200-        // 'abc/*' does not match 'abc/'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js:201:        ? `${p1}[^/]+`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-202-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-206-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js:207:      return `${prefix}(?=$|\\/$)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-208-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-241-    // 'js' will match 'a.js' and 'a.js/'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js:242:    match => `${match}(?=$|\\/)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-243-  ],
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-260-    /(?:[^*])$/,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js:261:    match => `${match}(?=$|\\/$)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ignore/index.js-262-  ],
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-import-resolver-node/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js-1-var a = require.resolve('buffer/').replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-import-resolver-node/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js:2:var b = require('resolve').sync('buffer/', { preserveSymlinks: true }).replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-import-resolver-node/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js:3:var c = require('resolve').sync('buffer/', { preserveSymlinks: false }).replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-import-resolver-node/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js-4-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/mocha.js-13409-	var regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/mocha.js:13410:	var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/mocha.js-13411-	var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/mocha.js-13644-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/mocha.js:13645:			// If we’re still here, `if ($7)` is implied; it’s an ambiguous
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/mocha.js-13646-			// ampersand for sure. https://mths.be/notes/ambiguous-ampersands
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/mocha.js-13662-		return string.replace(regexEscape, function($0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/mocha.js:13663:			// Note: there is no need to check `has(escapeMap, $0)` here.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/mocha.js-13664-			return escapeMap[$0];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/growl.js-67-  if (stats.failures) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/growl.js:68:    _message = `${stats.failures} of ${stats.tests} tests failed`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/growl.js:69:    message = `${symbol.cross} ${_message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/growl.js-70-    title = 'Failed';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/growl.js-71-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/growl.js:72:    _message = `${stats.passes} tests passed in ${stats.duration}ms`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/growl.js:73:    message = `${symbol.tick} ${_message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/growl.js-74-    title = 'Passed';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/cli.js-50-      yargs.showHelp();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/cli.js:51:      console.error(`\n${symbols.error} ${ansi.red('ERROR:')} ${msg}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/cli.js-52-      process.exit(1);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/one-and-dones.js-33-        `    ${align.left(key, maxKeyLength + 1)}${
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/one-and-dones.js:34:          description ? `- ${description}` : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/one-and-dones.js-35-        }`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js-82-    let modpath = mod;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js:83:    if (fs.existsSync(mod, {cwd}) || fs.existsSync(`${mod}.js`, {cwd})) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js-84-      modpath = path.resolve(mod);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js:85:      debug(`resolved ${mod} to ${modpath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js-86-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js-87-    require(modpath);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js:88:    debug(`loaded require "${mod}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js-89-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js-159-  if (Array.isArray(opts[key])) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js:160:    throw new TypeError(`"--${key} <${key}>" can only be specified once`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js-161-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js-162-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js:163:  const unknownError = () => new Error(`Unknown "${key}": ${opts[key]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run-helpers.js-164-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/watch-run.js-32-  if (!watchFiles) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/watch-run.js:33:    watchFiles = fileCollectParams.extension.map(ext => `**/*.${ext}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/watch-run.js-34-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-133-  if (result.error) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js:134:    console.error(ansi.red(`Error: ${result.error.message}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-135-    process.exit(1);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-186-    mochaOpts = fs.readFileSync(filepath, 'utf8');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js:187:    debug(`read ${filepath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-188-  } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-189-    if (args.opts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js:190:      throw new Error(`Unable to read ${filepath}: ${err}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-191-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-192-    // ignore otherwise.  we tried
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js:193:    debug(`No mocha.opts found at ${filepath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-194-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-203-    result = parse(parseMochaOpts(mochaOpts));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js:204:    debug(`${filepath} parsed succesfully`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-205-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-249-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js:250:        debug(`no config found in ${filepath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-251-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-253-      if (args.package) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js:254:        throw new Error(`Unable to read/parse ${filepath}: ${err}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-255-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js:256:      debug(`failed to read default package.json at ${filepath}; ignoring`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/options.js-257-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-45-    try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js:46:      debug(`parsers: load using cwd-relative path: "${cwdFilepath}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-47-      return require(cwdFilepath);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-49-      if (isModuleNotFoundError(err)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js:50:        debug(`parsers: retry load as module-relative path: "${filepath}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-51-        return require(filepath);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-72-  let config = {};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js:73:  debug(`loadConfig: "${filepath}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-74-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-84-  } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js:85:    throw new Error(`failed to parse config "${filepath}": ${err}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-86-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-98-  if (filepath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js:99:    debug(`findConfig: found "${filepath}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/config.js-100-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js-195-              throw createInvalidArgumentValueError(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js:196:                `invalid reporter option '${opt}'`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js-197-                '--reporter-option',
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js-307-  } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js:308:    console.error('\n' + (err.stack || `Error: ${err.message || err}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/run.js-309-    process.exit(1);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/collect-files.js-72-      unmatched.length === 1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/collect-files.js:73:        ? `Error: No test files found: ${JSON.stringify(unmatched[0].pattern)}` // stringify to print escaped characters raw
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/collect-files.js-74-        : 'Error: No test files found';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/collect-files.js-79-    unmatched.forEach(warning => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/collect-files.js:80:      console.warn(ansi.yellow(`Warning: ${warning.message}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/lib/cli/collect-files.js-81-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md-88-watcher
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md:89:  .on('add', path => log(`File ${path} has been added`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md:90:  .on('change', path => log(`File ${path} has been changed`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md:91:  .on('unlink', path => log(`File ${path} has been removed`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md-92-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md-94-watcher
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md:95:  .on('addDir', path => log(`Directory ${path} has been added`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md:96:  .on('unlinkDir', path => log(`Directory ${path} has been removed`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md:97:  .on('error', error => log(`Watcher error: ${error}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md-98-  .on('ready', () => log('Initial scan complete. Ready for changes'))
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md-105-watcher.on('change', (path, stats) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md:106:  if (stats) console.log(`File ${path} changed size to ${stats.size}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/README.md-107-});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/constants.js-33-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/constants.js:34:exports.DOT_SLASH = `.${sep}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/lib/constants.js-35-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js-93-  if (!paths.every(p => typeof p === STRING_TYPE)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js:94:    throw new TypeError(`Non-string provided as watch path: ${paths}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js-95-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js-501-  ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js:502:    this[`_${key}`].clear();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/chokidar/index.js-503-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/emoji-regex/README.md-34-  const emoji = match[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/emoji-regex/README.md:35:  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/emoji-regex/README.md-36-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/diff/dist/diff.min.js-268-// are consumed.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/diff/dist/diff.min.js:269:function c(a){var b=/^(---|\+\+\+)\s+(.*)$/.exec(f[i]);if(b){var c="---"===b[1]?"old":"new",d=b[2].split("\t",2),e=d[0].replace(/\\\\/g,"\\");/^".*"$/.test(e)&&(e=e.substr(1,e.length-2)),a[c+"FileName"]=e,a[c+"Header"]=(d[1]||"").trim(),i++}}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/diff/dist/diff.min.js-270-// Parses a hunk
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/yargs.js-61-    self.$0 = process.env._.replace(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/yargs.js:62:      `${path.dirname(process.execPath)}/`, ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/yargs.js-63-    )
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/yargs.js-1122-        // e.g., loading in a list of commands from an API.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/yargs.js:1123:        const completionArgs = args.slice(args.indexOf(`--${completion.completionKey}`) + 1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/yargs.js-1124-        completion.getCompletion(completionArgs, (completions) => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/README.md-76-  }, (argv) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/README.md:77:    if (argv.verbose) console.info(`start server on :${argv.port}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/README.md-78-    serve(argv.port)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/apply-extends.js-10-  if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/apply-extends.js:11:    throw new YError(`Circular extended configurations: '${cfgPath}'.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/apply-extends.js-12-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-181-        usages.forEach((usage) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:182:          ui.div(`${usage[0].replace(/\$0/g, base$0)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-183-          if (usage[1]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:184:            ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] })
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-185-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-191-        if (demandedCommands._) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:192:          u = `${base$0} <${__('command')}>\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-193-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:194:          u = `${base$0} [${__('command')}]\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-195-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:196:        ui.div(`${u}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-197-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-205-      const context = yargs.getContext()
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:206:      const parentCommands = context.commands.length ? `${context.commands.join(' ')} ` : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-207-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-212-      commands.forEach((command) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:213:        const commandString = `${base$0} ${parentCommands}${command[0].replace(/^\$0 ?/, '')}` // drop $0 from default commands.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-214-        ui.span(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-217-            padding: [0, 2, 0, 2],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:218:            width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-219-          },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-222-        const hints = []
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:223:        if (command[2]) hints.push(`[${__('default:').slice(0, -1)}]`) // TODO hacking around i18n here
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-224-        if (command[3] && command[3].length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:225:          hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-226-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-287-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:288:        if (~options.boolean.indexOf(key)) type = `[${__('boolean')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:289:        if (~options.count.indexOf(key)) type = `[${__('count')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:290:        if (~options.string.indexOf(key)) type = `[${__('string')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:291:        if (~options.normalize.indexOf(key)) type = `[${__('string')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:292:        if (~options.array.indexOf(key)) type = `[${__('array')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:293:        if (~options.number.indexOf(key)) type = `[${__('number')}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-294-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-296-          type,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:297:          (key in demandedOptions) ? `[${__('required')}]` : null,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-298-          options.choices && options.choices[key] ? `[${__('choices:')} ${
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-349-      const e = epilog.replace(/\$0/g, base$0)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:350:      ui.div(`${e}\n`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-351-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-369-      width = Math.max(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:370:        stringWidth(modifier ? `${modifier} ${v[0]}` : v[0]),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-371-        width
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-457-  function defaultString (value, defaultDescription) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:458:    let string = `[${__('default:')} `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-459-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-466-        case 'string':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:467:          string += `"${value}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-468-          break
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-476-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js:477:    return `${string}]`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/usage.js-478-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/validation.js-77-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/validation.js:78:      const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/validation.js-79-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/validation.js-249-        if (key && !value) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/validation.js:250:          implyFail.push(` ${origKey} -> ${origValue}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/validation.js-251-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/validation.js-255-    if (implyFail.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/validation.js:256:      let msg = `${__('Implications failed:')}\n`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/validation.js-257-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/decamelize.js-28-  return text
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/decamelize.js:29:    .replace(/([a-z\d])([A-Z])/g, `$1${separator}$2`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/decamelize.js:30:    .replace(/([A-Z]+)([A-Z][a-z\d]+)/g, `$1${separator}$2`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/decamelize.js-31-    .toLowerCase()
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/command.js-118-    const mod = require('which-module')(obj)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/command.js:119:    if (!mod) throw new Error(`No command name given for module: ${inspect(obj)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/command.js-120-    return commandFromFilename(mod.filename)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/command.js-269-    pc.push(c)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/command.js:270:    return `$0 ${pc.join(' ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/command.js-271-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/command.js-342-      positionalMap[key].map((value) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/command.js:343:        unparsed.push(`--${key}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/command.js-344-        unparsed.push(value)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js-76-        const keyAndAliases = [key].concat(aliases[key] || [])
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js:77:        const notInArgs = keyAndAliases.every(val => args.indexOf(`--${val}`) === -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js-78-        if (notInArgs) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js-79-          if (!zshShell) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js:80:            completions.push(`--${key}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js-81-          } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js-82-            const desc = descs[key] || ''
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js:83:            completions.push(`--${key.replace(/:/g, '\\:')}:${desc.replace('__yargsString__:', '')}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js-84-          }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js-98-    // add ./to applications not yet installed as bin.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js:99:    if ($0.match(/\.js$/)) $0 = `./${$0}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/completion.js-100-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js-19-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js:20:      parsed = command.parseCommand(`cmd ${expected}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js-21-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js-27-    if (length < parsed.demanded.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js:28:      throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js-29-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js-32-    if (length > totalCommands) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js:33:      throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js-34-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js-66-function argumentTypeError (observedType, allowedTypes, position, optional) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js:67:  throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/node_modules/yargs/lib/argsert.js-68-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha-36-  if (impliesNoTimeouts(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha:37:    debug(`option "${value}" disabled timeouts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha-38-    mochaArgs.timeout = 0;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha-110-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha:111:  debug(`exec ${process.execPath} w/ args:`, args);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/mocha/bin/mocha-112-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-6-const arg = 'foo';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md:7:const msg1 = `arg = ${arg}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md:8:const msg2 = `arg = ${arg || 'default'}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-9-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-14-const arg1 = [1, 2];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md:15:const msg1 = `arg1 = ${arg1}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-16-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-17-const arg2 = { name: 'Foo' };
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md:18:const msg2 = `arg2 = ${arg2 || null}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-19-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-47-const arg = 123;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md:48:const msg1 = `arg = ${arg}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md:49:const msg2 = `arg = ${arg || 'zero'}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-50-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-57-const arg = true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md:58:const msg1 = `arg = ${arg}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md:59:const msg2 = `arg = ${arg || 'not truthy'}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-60-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-67-const arg = condition ? 'ok' : null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md:68:const msg1 = `arg = ${arg}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-template-expressions.md-69-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md-28-const err = new Error();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md:29:throw `${err}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md-30-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md-13-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md:14:Examples of **correct** code with a configuration of `'^T[A-Z][a-zA-Z]+$'`:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md-15-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md-25-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md:26:Examples of **incorrect** code with a configuration of `'^T[A-Z][a-zA-Z]+$'`:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md-27-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-652-            if (!source.startsWith("/")) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js:653:                source = `/${source}/${uFlag ? "u" : ""}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-654-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js:655:            source = `: ${source}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-656-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js:657:        super(`Invalid regular expression${source}: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-658-        this.index = index;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-725-            const c = String.fromCodePoint(this.currentCodePoint);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js:726:            this.raise(`Unexpected character '${c}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-727-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-740-            if (existingFlags.has(flag)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js:741:                this.raise(`Duplicated flag '${source[i]}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-742-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-762-            else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js:763:                this.raise(`Invalid flag '${source[i]}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-764-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-963-                const kind = inClass ? "character class" : "regular expression";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js:964:                this.raise(`Unterminated ${kind}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-965-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-1004-            const c = String.fromCodePoint(cp);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js:1005:            this.raise(`Unexpected character '${c}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-1006-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-2250-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js:2251:                throw new Error(`Unknown type: ${node.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.js-2252-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-648-            if (!source.startsWith("/")) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs:649:                source = `/${source}/${uFlag ? "u" : ""}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-650-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs:651:            source = `: ${source}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-652-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs:653:        super(`Invalid regular expression${source}: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-654-        this.index = index;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-721-            const c = String.fromCodePoint(this.currentCodePoint);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs:722:            this.raise(`Unexpected character '${c}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-723-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-736-            if (existingFlags.has(flag)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs:737:                this.raise(`Duplicated flag '${source[i]}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-738-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-758-            else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs:759:                this.raise(`Invalid flag '${source[i]}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-760-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-959-                const kind = inClass ? "character class" : "regular expression";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs:960:                this.raise(`Unterminated ${kind}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-961-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-1000-            const c = String.fromCodePoint(cp);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs:1001:            this.raise(`Unexpected character '${c}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-1002-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-2246-            default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs:2247:                throw new Error(`Unknown type: ${node.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/node_modules/regexpp/index.mjs-2248-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js-62-                            messageId: 'noEmptyWithSuper',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js:63:                            fix: fixer => fixer.replaceText(node, `type ${sourceCode.getText(node.id)} = ${sourceCode.getText(extend[0])}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js-64-                        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js-217-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js:218:            yield fixer.replaceTextRange([propertyRange[0], node.right.range[0]], `${isOptional ? '?.' : '.'}${kind}sWith(`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js-219-            yield fixer.replaceTextRange([node.right.range[1], node.range[1]], ')');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js-234-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js:235:            yield fixer.replaceTextRange(getPropertyRange(calleeNode), `${isOptional ? '?.' : '.'}${kind}sWith`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js-236-            yield fixer.removeRange([callNode.range[1], node.range[1]]);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js-347-                        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js:348:                        yield fixer.replaceTextRange(getPropertyRange(node), `${node.optional ? '?.' : '.'}${isStartsWith ? 'start' : 'end'}sWith`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js-349-                        yield fixer.replaceText(callNode.arguments[0], JSON.stringify(text));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js-78-                        fullNumberNode = node.parent;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js:79:                        raw = `${node.parent.operator}${node.raw}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js-80-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js-68-            const text = sourceCode.getText().slice(start, call.range[1]);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js:69:            let suggestion = `${text.slice(0, colonPos)} =>${text.slice(colonPos + 1)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js-70-            if (shouldWrapSuggestion(parent.parent)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js:71:                suggestion = `(${suggestion})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js-72-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js-78-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js:79:                return `type ${parent.id.name} = ${suggestion}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js-80-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js-38-                ? 'These overloads'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js:39:                : `This overload and the one on line ${otherLine}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js:40:            return `${overloads} can be combined into one signature`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js-41-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js-14-    ['public', 'protected', 'private'].forEach(accessibility => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js:15:        all.push(`${accessibility}-${type}`); // e.g. `public-field`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js-16-        if (type !== 'constructor') {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js-18-            ['static', 'instance', 'abstract'].forEach(scope => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js:19:                if (!all.includes(`${scope}-${type}`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js:20:                    all.push(`${scope}-${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js-21-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js:22:                all.push(`${accessibility}-${scope}-${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js-23-            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js-257-                    // Constructors have no scope
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js:258:                    memberTypes.push(`${accessibility}-${scope}-${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js:259:                    memberTypes.push(`${scope}-${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js-260-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js:261:                memberTypes.push(`${accessibility}-${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js-262-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js-47-                        const preambleLength = node.callee.range[1] - node.range[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js:48:                        return fixer.replaceText(node, `[${fullText.slice(preambleLength + 1, -1)}]`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js-49-                    },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js-78-                                    const typeIdentifier = sourceCode.getText(heritage);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js:79:                                    fixes.push(fixer.insertTextAfter(node.body, ` & ${typeIdentifier}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js-80-                                });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js-191-                        else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js:192:                            toFix.push(fixer.insertTextBefore(node, `${startText ? ' ' : ''}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js-193-                        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js:194:                        toFix.push(fixer.insertTextBefore(node, `${isReadonly ? 'Readonly' : ''}Array<`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js-195-                        if (node.elementType.type === experimental_utils_1.AST_NODE_TYPES.TSParenthesizedType) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js-233-                        fix(fixer) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js:234:                            return fixer.replaceText(node, `${readonlyPrefix}any[]`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js-235-                        },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js-252-                        return [
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js:253:                            fixer.replaceTextRange([node.range[0], type.range[0]], `${readonlyPrefix}${parens ? '(' : ''}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js-254-                            fixer.replaceTextRange([type.range[1], node.range[1]], parens ? ')[]' : '[]'),
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-124-                            const needsDot = diff.startsWith('(') || diff.startsWith('[');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js:125:                            optionallyChainedCode += `?${needsDot ? '.' : ''}${diff}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-126-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-133-                        // case like foo && foo.bar !== someValue
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js:134:                        optionallyChainedCode += ` ${previous.right.operator} ${sourceCode.getText(previous.right.right)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-135-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-162-                const argumentsText = sourceCode.text.substring(openingParenToken.range[0], closingParenToken.range[1]);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js:163:                return `${calleeText}${argumentsText}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-164-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-193-                default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js:194:                    throw new Error(`Unexpected member object type: ${node.object.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-195-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-213-                    default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js:214:                        throw new Error(`Unexpected member property type: ${node.object.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-215-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js:216:                return `${objectText}${node.optional ? '?.' : ''}[${propertyText}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-217-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-225-                    default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js:226:                        throw new Error(`Unexpected member property type: ${node.object.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-227-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js:228:                return `${objectText}${node.optional ? '?.' : '.'}${propertyText}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js-229-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js-157-            },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js:158:            [`${functionScopeBoundaries}:exit`](node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js-159-                if (isConstructor(node)) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js-32-                typeof member.property.value === 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js:33:                return createPropertyReplacement(member.property, `.${member.property.value}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-dynamic-delete.js-34-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js-148-                default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js:149:                    throw new Error(`Unknown node with kind ${parent.kind}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js-150-                // TODO - should we just handle this gracefully?
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js-87-                if (previousToken.value === '+' || previousToken.value === '-') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js:88:                    type = `${previousToken.value}?:`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js-89-                    punctuatorTokenStart = previousToken;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js-95-                    check = accessorCheck;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js:96:                    nodeType = `${methodDefinition.kind} property accessor`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js-97-                    break;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js-21-    if (typeof bannedType === 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js:22:        return ` ${bannedType}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js-23-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js-24-    if (bannedType.message) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js:25:        return ` ${bannedType.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js-26-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js-361-        function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js:362:            const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? '' : 's'}`; // e.g. "2 tabs"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js:363:            const foundSpacesWord = `space${actualSpaces === 1 ? '' : 's'}`; // e.g. "space"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js:364:            const foundTabsWord = `tab${actualTabs === 1 ? '' : 's'}`; // e.g. "tabs"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js-365-            let foundStatement;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js-373-                        ? actualSpaces
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js:374:                        : `${actualSpaces} ${foundSpacesWord}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js-375-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js-377-                foundStatement =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js:378:                    indentType === 'tab' ? actualTabs : `${actualTabs} ${foundTabsWord}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js-379-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js-492-            // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js:493:            throw new Error(`Unexpected pattern type ${pattern.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js-494-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js-533-        var _a, _b;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js:534:        const originalName = node.type === experimental_utils_1.AST_NODE_TYPES.Identifier ? node.name : `${node.value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js-535-        // return will break the loop and stop checking configs
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js-7-    MissingParent: 'Expected node to have a parent.',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js:8:    MissingToken: (token, thing) => `Expected to find a ${token} for the ${thing}.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js-9-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js-21-    if (value === null || value === undefined) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js:22:        throw new Error(`Non-null Assertion Failed: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/nullThrows.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js-56-    if (member.key.type === experimental_utils_1.AST_NODE_TYPES.Literal) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js:57:        return `${member.key.value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js-58-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js-5-const version = require('../../package.json').version;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js:6:exports.createRule = experimental_utils_1.ESLintUtils.RuleCreator(name => `https://github.com/typescript-eslint/typescript-eslint/blob/v${version}/packages/eslint-plugin/docs/rules/${name}.md`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js-7-//# sourceMappingURL=createRule.js.map
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-27-            '"parserOptions.project" has been set for @typescript-eslint/parser.',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js:28:            `The file does not match your project config: ${path_1.default.relative(extra.tsconfigRootDir || process.cwd(), extra.filePath)}.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-29-        ];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-33-            if (!extraExtension.startsWith('.')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js:34:                errorLines.push(`Found unexpected extension "${extraExtension}" specified with the "extraFileExtensions" option. Did you mean ".${extraExtension}"?`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-35-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-36-            if (DEFAULT_EXTRA_FILE_EXTENSIONS.includes(extraExtension)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js:37:                errorLines.push(`You unnecessarily included the extension "${extraExtension}" with the "extraFileExtensions" option. This extension is already handled by the parser by default.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-38-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-41-        if (!DEFAULT_EXTRA_FILE_EXTENSIONS.includes(fileExtension)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js:42:            const nonStandardExt = `The extension for the file (${fileExtension}) is non-standard`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-43-            if (extraFileExtensions.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-44-                if (!extraFileExtensions.includes(fileExtension)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js:45:                    errorLines.push(`${nonStandardExt}. It should be added to your existing "parserOptions.extraFileExtensions".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-46-                    hasMatchedAnError = true;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-49-            else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js:50:                errorLines.push(`${nonStandardExt}. You should add "parserOptions.extraFileExtensions" to your config.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js-51-                hasMatchedAnError = true;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/convert.js-269-    deeplyCopy(node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/convert.js:270:        const customType = `TS${SyntaxKind[node.kind]}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/convert.js-271-        /**
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/convert.js-275-        if (this.options.errorOnUnknownASTType && !ts_estree_1.AST_NODE_TYPES[customType]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/convert.js:276:            throw new Error(`Unknown AST_NODE_TYPE: "${customType}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/convert.js-277-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/convert.js-1719-                return this.createNode(node, {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/convert.js:1720:                    type: ts_estree_1.AST_NODE_TYPES[`TS${SyntaxKind[node.kind]}`],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/convert.js-1721-                });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js-41-        /* istanbul ignore next */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js:42:        console.warn(`Warning From TSC: "${e.message}`); // eslint-disable-line no-console
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/semantic-or-syntactic-errors.js-43-        /* istanbul ignore next */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/parser.js-236-                'You may find that it works just fine, or you may not.',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/parser.js:237:                `SUPPORTED TYPESCRIPT VERSIONS: ${SUPPORTED_TYPESCRIPT_VERSIONS}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/parser.js:238:                `YOUR TYPESCRIPT VERSION: ${ACTIVE_TYPESCRIPT_VERSION}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/typescript-estree/dist/parser.js-239-                'Please only submit bug reports when using the officially supported version.',
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/parser/dist/parser.js-61-                        // eslint-disable-next-line @typescript-eslint/no-explicit-any
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/parser/dist/parser.js:62:                        node.type = `TSEmptyBody${node.type}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@typescript-eslint/parser/dist/parser.js-63-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-239-- `title` and `description`: information about the data represented by that schema
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:240:- `$comment` (NEW in draft-07): information for developers. With option `$comment` Ajv logs or passes the comment string to the user-supplied function. See [Options](#options).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-241-- `default`: a default value of the data instance, see [Assigning defaults](#assigning-defaults).
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-286-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:287:You can structure your validation logic across multiple schema files and have schemas reference each other using `$ref` keyword.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-288-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-327-__Please note__:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:328:- `$ref` is resolved as the uri-reference using schema $id as the base URI (see the example).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-329-- References can be recursive (and mutually recursive) to implement the schemas for different data structures (such as linked lists, trees, graphs, etc.).
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-338-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:339:With `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema-org/json-schema-spec/issues/51) for more information about how it works.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-340-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:341:`$data` reference is supported in the keywords: const, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-342-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-385-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:386:`$data` reference is resolved safely - it won't throw even if some property is undefined. If `$data` resolves to `undefined` the validation succeeds (with the exclusion of `const` keyword). If `$data` resolves to incorrect type (e.g. not "number" for maximum keyword) the validation fails.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-387-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-390-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:391:With the package [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) you can use the keywords `$merge` and `$patch` that allow extending JSON Schemas with patches using formats [JSON Merge Patch (RFC 7396)](https://tools.ietf.org/html/rfc7396) and [JSON Patch (RFC 6902)](https://tools.ietf.org/html/rfc6902).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-392-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:393:To add keywords `$merge` and `$patch` to Ajv instance use this code:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-394-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-400-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:401:Using `$merge`:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-402-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-417-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:418:Using `$patch`:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-419-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-447-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:448:The properties `source` and `with` in the keywords `$merge` and `$patch` can use absolute or relative `$ref` to point to other schemas previously added to the Ajv instance or to the fragments of the current schema.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-449-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-534-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:535:If your schema uses asynchronous formats/keywords or refers to some schema that contains them it should have `"$async": true` keyword so that Ajv can compile it correctly. If asynchronous format/keyword or reference to asynchronous schema is used in the schema without `$async` keyword Ajv will throw an exception during schema compilation.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-536-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:537:__Please note__: all asynchronous subschemas that are referenced from the current or other schemas should have `"$async": true` keyword as well, otherwise the schema compilation will fail.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-538-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-542-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:543:The compiled validation function has `$async: true` property (if the schema is asynchronous), so you can differentiate these functions if you are using both synchronous and asynchronous schemas.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-544-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-944-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:945:If the schema is asynchronous (has `$async` keyword on the top level) this method returns a Promise. See [Asynchronous validation](#asynchronous-validation).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-946-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-982-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:983:If schema doesn't have `$schema` property, it is validated against draft 6 meta-schema (option `meta` should not be false).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-984-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:985:If schema has `$schema` property, then the schema with this id (that should be previously added) is used to validate passed schema.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-986-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1141-- _verbose_: include the reference to the part of the schema (`schema` and `parentSchema`) and validated data in errors (false by default).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1142:- _$comment_ (NEW in Ajv version 6.0): log or pass the value of `$comment` keyword to a function. Option values:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1143-  - `false` (default): ignore $comment keyword.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1168-- _schemaId_: this option defines which keywords are used as schema URI. Option value:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1169:  - `"$id"` (default) - only use `$id` keyword as schema URI (as specified in JSON Schema draft-06/07), ignore `id` keyword (if it is present a warning will be logged).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1170:  - `"id"` - only use `id` keyword as schema URI (as specified in JSON Schema draft-04), ignore `$id` keyword (if it is present a warning will be logged).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1171:  - `"auto"` - use both `$id` and `id` keywords as schema URI. If both are present (in the same schema object) and different the exception will be thrown during schema compilation.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1172-- _missingRefs_: handling of missing referenced schemas. Option values:
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1175-  - `"fail"` - to log error and successfully compile schema but fail validation if this rule is checked.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1176:- _extendRefs_: validation of other keywords when `$ref` is present in the schema. Option values:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1177:  - `"ignore"` (default) - when `$ref` is used other keywords are ignored (as per [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3) standard). A warning will be logged during the schema compilation.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1178:  - `"fail"` (recommended) - if other validation keywords are used together with `$ref` the exception will be thrown when the schema is compiled. This option is recommended to make sure schema has no keywords that are ignored, which can be confusing.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1179:  - `true` - validate all keywords in the schemas with `$ref` (the default behaviour in versions before 5.0.0).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1180-- _loadSchema_: asynchronous function that will be used to load remote schemas when `compileAsync` [method](#api-compileAsync) is used and some reference is missing (option `missingRefs` should NOT be 'fail' or 'ignore'). This function should accept remote schema uri as a parameter and return a Promise that resolves to a schema. See example in [Asynchronous compilation](#asynchronous-schema-compilation).
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1222-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1223:- _meta_: add [meta-schema](http://json-schema.org/documentation.html) so it can be used by other schemas (true by default). If an object is passed, it will be used as the default meta-schema for schemas that have no `$schema` keyword. This default meta-schema MUST have `$schema` keyword.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1224:- _validateSchema_: validate added/compiled schemas against meta-schema (true by default). `$schema` property in the schema can be http://json-schema.org/draft-07/schema or absent (draft-07 meta-schema will be used) or can be a reference to the schema previously added with `addMetaSchema` method. Option values:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1225-  - `true` (default) -  if the validation fails, throw the exception.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1227-  - `false` - skip schema validation.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1228:- _addUsedSchema_: by default methods `compile` and `validate` add schemas to the instance if they have `$id` (or `id`) property that doesn't start with "#". If `$id` is present and it is not unique the exception will be thrown. Set this option to `false` to skip adding schemas to the instance and the `$id` uniqueness check when these methods are used. This option does not affect `addSchema` method.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1229-- _inlineRefs_: Affects compilation of referenced schemas. Option values:
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1293-- `enum` - property `allowedValues` pointing to the array of values (the schema of the keyword).
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md:1294:- `$ref` - property `ref` with the referenced schema URI.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/README.md-1295-- `oneOf` - property `passingSchemas` (array of indices of passing schemas, null if no schema passes).
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/lib/compile/formats.js-71-  url: URL,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/lib/compile/formats.js:72:  email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/lib/compile/formats.js-73-  hostname: HOSTNAME,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/dist/ajv.bundle.js-228-  url: URL,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/dist/ajv.bundle.js:229:  email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/dist/ajv.bundle.js-230-  hostname: HOSTNAME,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/dist/ajv.min.js-1-/* ajv 6.12.0: Another JSON Schema Validator */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/dist/ajv.min.js:2:!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Ajv=e()}}(function(){return function o(i,n,l){function c(r,e){if(!n[r]){if(!i[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(u)return u(r,!0);var a=new Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}var s=n[r]={exports:{}};i[r][0].call(s.exports,function(e){return c(i[r][1][e]||e)},s,s.exports,o,i,n,l)}return n[r].exports}for(var u="function"==typeof require&&require,e=0;e<l.length;e++)c(l[e]);return c}({1:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],2:[function(e,r,t){"use strict";var s=e("./error_classes").MissingRef;r.exports=function t(r,i,a){var n=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof i&&(a=i,i=void 0);var e=l(r).then(function(){var e=n._addSchema(r,void 0,i);return e.validate||c(e)});a&&e.then(function(e){a(null,e)},a);return e;function l(e){var r=e.$schema;return r&&!n.getSchema(r)?t.call(n,{$ref:r},!0):Promise.resolve()}function c(o){try{return n._compile(o)}catch(e){if(e instanceof s)return r(e);throw e}function r(e){var r=e.missingSchema;if(s(r))throw new Error("Schema "+r+" is loaded but "+e.missingRef+" cannot be resolved");var t=n._loadingSchemas[r];return t||(t=n._loadingSchemas[r]=n._opts.loadSchema(r)).then(a,a),t.then(function(e){if(!s(r))return l(e).then(function(){s(r)||n.addSchema(e,r,void 0,i)})}).then(function(){return c(o)});function a(){delete n._loadingSchemas[r]}function s(e){return n._refs[e]||n._schemas[e]}}}}},{"./error_classes":3}],3:[function(e,r,t){"use strict";var a=e("./resolve");function s(e,r,t){this.message=t||s.message(e,r),this.missingRef=a.url(e,r),this.missingSchema=a.normalizeId(a.fullPath(this.missingRef))}function o(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e}r.exports={Validation:o(function(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}),MissingRef:o(s)},s.message=function(e,r){return"can't resolve reference "+r+" from id "+e}},{"./resolve":6}],4:[function(e,r,t){"use strict";var a=e("./util"),o=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31],n=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,s=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,l=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,f=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,p=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function m(e){return a.copy(m[e="full"==e?"full":"fast"])}function v(e){var r=e.match(o);if(!r)return!1;var t,a=+r[2],s=+r[3];return 1<=a&&a<=12&&1<=s&&s<=(2!=a||((t=+r[1])%4!=0||t%100==0&&t%400!=0)?i[a]:29)}function y(e,r){var t=e.match(n);if(!t)return!1;var a=t[1],s=t[2],o=t[3];return(a<=23&&s<=59&&o<=59||23==a&&59==s&&60==o)&&(!r||t[5])}(r.exports=m).fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:s,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p},m.full={date:v,time:y,"date-time":function(e){var r=e.split(g);return 2==r.length&&v(r[0])&&y(r[1],!0)},uri:function(e){return P.test(e)&&l.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:s,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p};var g=/t|\s/i;var P=/\/|:/;var E=/[^\\]\\Z/;function w(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},{"./util":10}],5:[function(e,r,t){"use strict";var j=e("./resolve"),O=e("./util"),I=e("./error_classes"),A=e("fast-json-stable-stringify"),C=e("../dotjs/validate"),k=O.ucs2length,L=e("fast-deep-equal"),z=I.Validation;function T(e,r,t){var a=s.call(this,e,r,t);return 0<=a?{index:a,compiling:!0}:{index:a=this._compilations.length,compiling:!(this._compilations[a]={schema:e,root:r,baseId:t})}}function q(e,r,t){var a=s.call(this,e,r,t);0<=a&&this._compilations.splice(a,1)}function s(e,r,t){for(var a=0;a<this._compilations.length;a++){var s=this._compilations[a];if(s.schema==e&&s.root==r&&s.baseId==t)return a}return-1}function N(e,r){return"var pattern"+e+" = new RegExp("+O.toQuotedString(r[e])+");"}function Q(e){return"var default"+e+" = defaults["+e+"];"}function U(e,r){return void 0===r[e]?"":"var refVal"+e+" = refVal["+e+"];"}function V(e){return"var customRule"+e+" = customRules["+e+"];"}function H(e,r){if(!e.length)return"";for(var t="",a=0;a<e.length;a++)t+=r(a,e);return t}r.exports=function c(e,u,h,r){var f=this,p=this._opts,d=[void 0],m={},v=[],t={},y=[],a={},g=[];u=u||{schema:e,refVal:d,refs:m};var s=T.call(this,e,u,r);var o=this._compilations[s.index];if(s.compiling)return o.callValidate=l;var P=this._formats;var E=this.RULES;try{var i=w(e,u,h,r);o.validate=i;var n=o.callValidate;return n&&(n.schema=i.schema,n.errors=null,n.refs=i.refs,n.refVal=i.refVal,n.root=i.root,n.$async=i.$async,p.sourceCode&&(n.source=i.source)),i}finally{q.call(this,e,u,r)}function l(){var e=o.validate,r=e.apply(this,arguments);return l.errors=e.errors,r}function w(e,r,t,a){var s=!r||r&&r.schema==e;if(r.schema!=u.schema)return c.call(f,e,r,t,a);var o,i=!0===e.$async,n=C({isTop:!0,schema:e,isRoot:s,baseId:a,root:r,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:I.MissingRef,RULES:E,validate:C,util:O,resolve:j,resolveRef:b,usePattern:$,useDefault:R,useCustomRule:D,opts:p,formats:P,logger:f.logger,self:f});n=H(d,U)+H(v,N)+H(y,Q)+H(g,V)+n,p.processCode&&(n=p.processCode(n));try{var l=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",n);o=l(f,E,P,u,d,y,g,L,k,z),d[0]=o}catch(e){throw f.logger.error("Error compiling schema, function code:",n),e}return o.schema=e,o.errors=null,o.refs=m,o.refVal=d,o.root=s?o:r,i&&(o.$async=!0),!0===p.sourceCode&&(o.source={code:n,patterns:v,defaults:y}),o}function b(e,r,t){r=j.url(e,r);var a,s,o=m[r];if(void 0!==o)return x(a=d[o],s="refVal["+o+"]");if(!t&&u.refs){var i=u.refs[r];if(void 0!==i)return s=S(r,a=u.refVal[i]),x(a,s)}s=S(r);var n=j.call(f,w,u,r);if(void 0===n){var l=h&&h[r];l&&(n=j.inlineRef(l,p.inlineRefs)?l:c.call(f,l,u,h,e))}if(void 0!==n)return F(r,n),x(n,s);_(r)}function S(e,r){var t=d.length;return d[t]=r,"refVal"+(m[e]=t)}function _(e){delete m[e]}function F(e,r){var t=m[e];d[t]=r}function x(e,r){return"object"==typeof e||"boolean"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&!!e.$async}}function $(e){var r=t[e];return void 0===r&&(r=t[e]=v.length,v[r]=e),"pattern"+r}function R(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return O.toQuotedString(e);case"object":if(null===e)return"null";var r=A(e),t=a[r];return void 0===t&&(t=a[r]=y.length,y[t]=e),"default"+t}}function D(e,r,t,a){if(!1!==f._opts.validateSchema){var s=e.definition.dependencies;if(s&&!s.every(function(e){return Object.prototype.hasOwnProperty.call(t,e)}))throw new Error("parent schema must have all required keywords: "+s.join(","));var o=e.definition.validateSchema;if(o){var i=o(r);if(!i){var n="keyword schema is invalid: "+f.errorsText(o.errors);if("log"!=f._opts.validateSchema)throw new Error(n);f.logger.error(n)}}}var l,c=e.definition.compile,u=e.definition.inline,h=e.definition.macro;if(c)l=c.call(f,r,t,a);else if(h)l=h.call(f,r,t,a),!1!==p.validateSchema&&f.validateSchema(l,!0);else if(u)l=u.call(f,a,e.keyword,r,t);else if(!(l=e.definition.validate))return;if(void 0===l)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var d=g.length;return{code:"customRule"+d,validate:g[d]=l}}}},{"../dotjs/validate":38,"./error_classes":3,"./resolve":6,"./util":10,"fast-deep-equal":42,"fast-json-stable-stringify":43}],6:[function(e,r,t){"use strict";var m=e("uri-js"),v=e("fast-deep-equal"),y=e("./util"),l=e("./schema_obj"),a=e("json-schema-traverse");function c(e,r,t){var a=this._refs[t];if("string"==typeof a){if(!this._refs[a])return c.call(this,e,r,a);a=this._refs[a]}if((a=a||this._schemas[t])instanceof l)return d(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a);var s,o,i,n=u.call(this,r,t);return n&&(s=n.schema,r=n.root,i=n.baseId),s instanceof l?o=s.validate||e.call(this,s.schema,r,void 0,i):void 0!==s&&(o=d(s,this._opts.inlineRefs)?s:e.call(this,s,r,void 0,i)),o}function u(e,r){var t=m.parse(r),a=f(t),s=g(this._getId(e.schema));if(0===Object.keys(e.schema).length||a!==s){var o=P(a),i=this._refs[o];if("string"==typeof i)return function(e,r,t){var a=u.call(this,e,r);if(a){var s=a.schema,o=a.baseId;e=a.root;var i=this._getId(s);return i&&(o=p(o,i)),n.call(this,t,o,s,e)}}.call(this,e,i,t);if(i instanceof l)i.validate||this._compile(i),e=i;else{if(!((i=this._schemas[o])instanceof l))return;if(i.validate||this._compile(i),o==P(r))return{schema:i,root:e,baseId:s};e=i}if(!e.schema)return;s=g(this._getId(e.schema))}return n.call(this,t,s,e.schema,e)}(r.exports=c).normalizeId=P,c.fullPath=g,c.url=p,c.ids=function(e){var r=P(this._getId(e)),h={"":r},d={"":g(r,!1)},f={},p=this;return a(e,{allKeys:!0},function(e,r,t,a,s,o,i){if(""!==r){var n=p._getId(e),l=h[a],c=d[a]+"/"+s;if(void 0!==i&&(c+="/"+("number"==typeof i?i:y.escapeFragment(i))),"string"==typeof n){n=l=P(l?m.resolve(l,n):n);var u=p._refs[n];if("string"==typeof u&&(u=p._refs[u]),u&&u.schema){if(!v(e,u.schema))throw new Error('id "'+n+'" resolves to more than one schema')}else if(n!=P(c))if("#"==n[0]){if(f[n]&&!v(e,f[n]))throw new Error('id "'+n+'" resolves to more than one schema');f[n]=e}else p._refs[n]=c}h[r]=l,d[r]=c}}),f},c.inlineRef=d,c.schema=u;var h=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function n(e,r,t,a){if(e.fragment=e.fragment||"","/"==e.fragment.slice(0,1)){for(var s=e.fragment.split("/"),o=1;o<s.length;o++){var i=s[o];if(i){if(void 0===(t=t[i=y.unescapeFragment(i)]))break;var n;if(!h[i]&&((n=this._getId(t))&&(r=p(r,n)),t.$ref)){var l=p(r,t.$ref),c=u.call(this,a,l);c&&(t=c.schema,a=c.root,r=c.baseId)}}}return void 0!==t&&t!==a.schema?{schema:t,root:a,baseId:r}:void 0}}var i=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]);function d(e,r){return!1!==r&&(void 0===r||!0===r?function e(r){var t;if(Array.isArray(r)){for(var a=0;a<r.length;a++)if("object"==typeof(t=r[a])&&!e(t))return!1}else for(var s in r){if("$ref"==s)return!1;if("object"==typeof(t=r[s])&&!e(t))return!1}return!0}(e):r?function e(r){var t,a=0;if(Array.isArray(r)){for(var s=0;s<r.length;s++)if("object"==typeof(t=r[s])&&(a+=e(t)),a==1/0)return 1/0}else for(var o in r){if("$ref"==o)return 1/0;if(i[o])a++;else if("object"==typeof(t=r[o])&&(a+=e(t)+1),a==1/0)return 1/0}return a}(e)<=r:void 0)}function g(e,r){return!1!==r&&(e=P(e)),f(m.parse(e))}function f(e){return m.serialize(e).split("#")[0]+"#"}var s=/#\/?$/;function P(e){return e?e.replace(s,""):""}function p(e,r){return r=P(r),m.resolve(e,r)}},{"./schema_obj":8,"./util":10,"fast-deep-equal":42,"json-schema-traverse":44,"uri-js":45}],7:[function(e,r,t){"use strict";var o=e("../dotjs"),i=e("./util").toHash;r.exports=function(){var a=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],s=["type","$comment"];return a.all=i(s),a.types=i(["number","integer","string","array","object","boolean","null"]),a.forEach(function(e){e.rules=e.rules.map(function(e){var r;if("object"==typeof e){var t=Object.keys(e)[0];r=e[t],e=t,r.forEach(function(e){s.push(e),a.all[e]=!0})}return s.push(e),a.all[e]={keyword:e,code:o[e],implements:r}}),a.all.$comment={keyword:"$comment",code:o.$comment},e.type&&(a.types[e.type]=e)}),a.keywords=i(s.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),a.custom={},a}},{"../dotjs":27,"./util":10}],8:[function(e,r,t){"use strict";var a=e("./util");r.exports=function(e){a.copy(e,this)}},{"./util":10}],9:[function(e,r,t){"use strict";r.exports=function(e){for(var r,t=0,a=e.length,s=0;s<a;)t++,55296<=(r=e.charCodeAt(s++))&&r<=56319&&s<a&&56320==(64512&(r=e.charCodeAt(s)))&&s++;return t}},{}],10:[function(e,r,t){"use strict";function o(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" && ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1)"+s+r+a+r+")";default:return"typeof "+r+a+'"'+e+'"'}}r.exports={copy:function(e,r){for(var t in r=r||{},e)r[t]=e[t];return r},checkDataType:o,checkDataTypes:function(e,r){switch(e.length){case 1:return o(e[0],r,!0);default:var t="",a=n(e);for(var s in a.array&&a.object&&(t=a.null?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete a.null,delete a.array,delete a.object),a.number&&delete a.integer,a)t+=(t?" && ":"")+o(s,r,!0);return t}},coerceToTypes:function(e,r){if(Array.isArray(r)){for(var t=[],a=0;a<r.length;a++){var s=r[a];i[s]?t[t.length]=s:"array"===e&&"array"===s&&(t[t.length]=s)}if(t.length)return t}else{if(i[r])return[r];if("array"===e&&"array"===r)return["array"]}},toHash:n,getProperty:h,escapeQuotes:l,equal:e("fast-deep-equal"),ucs2length:e("./ucs2length"),varOccurences:function(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0},varReplace:function(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")},cleanUpCode:function(e){return e.replace(c,"").replace(u,"").replace(d,"if (!($1))")},finalCleanUpCode:function(e,r){var t=e.match(f);t&&2==t.length&&(e=r?e.replace(m,"").replace(g,P):e.replace(p,"").replace(v,y));return(t=e.match(E))&&3===t.length?e.replace(w,""):e},schemaHasRules:function(e,r){if("boolean"==typeof e)return!e;for(var t in e)if(r[t])return!0},schemaHasRulesExcept:function(e,r,t){if("boolean"==typeof e)return!e&&"not"!=t;for(var a in e)if(a!=t&&r[a])return!0},schemaUnknownRules:function(e,r){if("boolean"==typeof e)return;for(var t in e)if(!r[t])return t},toQuotedString:b,getPathExpr:function(e,r,t,a){return F(e,t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'")},getPath:function(e,r,t){var a=b(t?"/"+x(r):h(r));return F(e,a)},getData:function(e,r,t){var a,s,o,i;if(""===e)return"rootData";if("/"==e[0]){if(!S.test(e))throw new Error("Invalid JSON-pointer: "+e);s=e,o="rootData"}else{if(!(i=e.match(_)))throw new Error("Invalid JSON-pointer: "+e);if(a=+i[1],"#"==(s=i[2])){if(r<=a)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(r<a)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(o="data"+(r-a||""),!s)return o}for(var n=o,l=s.split("/"),c=0;c<l.length;c++){var u=l[c];u&&(o+=h($(u)),n+=" && "+o)}return n},unescapeFragment:function(e){return $(decodeURIComponent(e))},unescapeJsonPointer:$,escapeFragment:function(e){return encodeURIComponent(x(e))},escapeJsonPointer:x};var i=n(["string","number","integer","boolean","null"]);function n(e){for(var r={},t=0;t<e.length;t++)r[e[t]]=!0;return r}var a=/^[a-z$_][a-z$_0-9]*$/i,s=/'|\\/g;function h(e){return"number"==typeof e?"["+e+"]":a.test(e)?"."+e:"['"+l(e)+"']"}function l(e){return e.replace(s,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}var c=/else\s*{\s*}/g,u=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,d=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g;var f=/[^v.]errors/g,p=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,m=/var errors = 0;|var vErrors = null;/g,v="return errors === 0;",y="validate.errors = null; return true;",g=/if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/,P="return data;",E=/[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g,w=/if \(rootData === undefined\) rootData = data;/;function b(e){return"'"+l(e)+"'"}var S=/^\/(?:[^~]|~0|~1)*$/,_=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function F(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function x(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function $(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}},{"./ucs2length":9,"fast-deep-equal":42}],11:[function(e,r,t){"use strict";var l=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];r.exports=function(e,r){for(var t=0;t<r.length;t++){e=JSON.parse(JSON.stringify(e));var a,s=r[t].split("/"),o=e;for(a=1;a<s.length;a++)o=o[s[a]];for(a=0;a<l.length;a++){var i=l[a],n=o[i];n&&(o[i]={anyOf:[n,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"}]})}}return e}},{}],12:[function(e,r,t){"use strict";var a=e("./refs/json-schema-draft-07.json");r.exports={$id:"https://github.com/epoberezkin/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:a.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:a.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},{"./refs/json-schema-draft-07.json":41}],13:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i;var d="maximum"==r,f=d?"exclusiveMaximum":"exclusiveMinimum",p=e.schema[f],m=e.opts.$data&&p&&p.$data,v=d?"<":">",y=d?">":"<",g=void 0;if(m){var P=e.util.getData(p.$data,o,e.dataPathArr),E="exclusive"+s,w="exclType"+s,b="exclIsNumber"+s,S="' + "+(x="op"+s)+" + '";a+=" var schemaExcl"+s+" = "+P+"; ";var _;g=f;(_=_||[]).push(a+=" var "+E+"; var "+w+" = typeof "+(P="schemaExcl"+s)+"; if ("+w+" != 'boolean' && "+w+" != 'undefined' && "+w+" != 'number') { "),a="",!1!==e.createErrors?(a+=" { keyword: '"+(g||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: '"+f+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var F=a;a=_.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+F+"]); ":" validate.errors = ["+F+"]; return false; ":" var err = "+F+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),a+=" "+w+" == 'number' ? ( ("+E+" = "+t+" === undefined || "+P+" "+v+"= "+t+") ? "+u+" "+y+"= "+P+" : "+u+" "+y+" "+t+" ) : ( ("+E+" = "+P+" === true) ? "+u+" "+y+"= "+t+" : "+u+" "+y+" "+t+" ) || "+u+" !== "+u+") { var op"+s+" = "+E+" ? '"+v+"' : '"+v+"='; ",void 0===i&&(l=e.errSchemaPath+"/"+(g=f),t=P,h=m)}else{S=v;if((b="number"==typeof p)&&h){var x="'"+S+"'";a+=" if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),a+=" ( "+t+" === undefined || "+p+" "+v+"= "+t+" ? "+u+" "+y+"= "+p+" : "+u+" "+y+" "+t+" ) || "+u+" !== "+u+") { "}else{b&&void 0===i?(E=!0,l=e.errSchemaPath+"/"+(g=f),t=p,y+="="):(b&&(t=Math[d?"min":"max"](p,i)),p===(!b||t)?(E=!0,l=e.errSchemaPath+"/"+(g=f),y+="="):(E=!1,S+="="));x="'"+S+"'";a+=" if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),a+=" "+u+" "+y+" "+t+" || "+u+" !== "+u+") { "}}g=g||r,(_=_||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: '"+(g||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+x+", limit: "+t+", exclusive: "+E+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be "+S+" ",a+=h?"' + "+t:t+"'"),e.opts.verbose&&(a+=" , schema:  ",a+=h?"validate.schema"+n:""+i,a+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";F=a;return a=_.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+F+"]); ":" validate.errors = ["+F+"]; return false; ":" var err = "+F+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,a+="if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var d=r,f=f||[];f.push(a+=" "+u+".length "+("maxItems"==r?">":"<")+" "+t+") { "),a="",!1!==e.createErrors?(a+=" { keyword: '"+(d||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+t+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have ",a+="maxItems"==r?"more":"fewer",a+=" than ",a+=h?"' + "+t+" + '":""+i,a+=" items' "),e.opts.verbose&&(a+=" , schema:  ",a+=h?"validate.schema"+n:""+i,a+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,a+="if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),a+=!1===e.opts.unicode?" "+u+".length ":" ucs2length("+u+") ";var d=r,f=f||[];f.push(a+=" "+("maxLength"==r?">":"<")+" "+t+") { "),a="",!1!==e.createErrors?(a+=" { keyword: '"+(d||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+t+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be ",a+="maxLength"==r?"longer":"shorter",a+=" than ",a+=h?"' + "+t+" + '":""+i,a+=" characters' "),e.opts.verbose&&(a+=" , schema:  ",a+=h?"validate.schema"+n:""+i,a+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,a+="if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var d=r,f=f||[];f.push(a+=" Object.keys("+u+").length "+("maxProperties"==r?">":"<")+" "+t+") { "),a="",!1!==e.createErrors?(a+=" { keyword: '"+(d||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+t+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have ",a+="maxProperties"==r?"more":"fewer",a+=" than ",a+=h?"' + "+t+" + '":""+i,a+=" properties' "),e.opts.verbose&&(a+=" , schema:  ",a+=h?"validate.schema"+n:""+i,a+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.schema[r],s=e.schemaPath+e.util.getProperty(r),o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,n=e.util.copy(e),l="";n.level++;var c="valid"+n.level,u=n.baseId,h=!0,d=a;if(d)for(var f,p=-1,m=d.length-1;p<m;)f=d[p+=1],(e.opts.strictKeywords?"object"==typeof f&&0<Object.keys(f).length:e.util.schemaHasRules(f,e.RULES.all))&&(h=!1,n.schema=f,n.schemaPath=s+"["+p+"]",n.errSchemaPath=o+"/"+p,t+="  "+e.validate(n)+" ",n.baseId=u,i&&(t+=" if ("+c+") { ",l+="}"));return i&&(t+=h?" if (true) { ":" "+l.slice(0,-1)+" "),t=e.util.cleanUpCode(t)}},{}],18:[function(e,r,t){"use strict";r.exports=function(r,e){var t=" ",a=r.level,s=r.dataLevel,o=r.schema[e],i=r.schemaPath+r.util.getProperty(e),n=r.errSchemaPath+"/"+e,l=!r.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=r.util.copy(r),f="";d.level++;var p="valid"+d.level;if(o.every(function(e){return r.opts.strictKeywords?"object"==typeof e&&0<Object.keys(e).length:r.util.schemaHasRules(e,r.RULES.all)})){var m=d.baseId;t+=" var "+h+" = errors; var "+u+" = false;  ";var v=r.compositeRule;r.compositeRule=d.compositeRule=!0;var y=o;if(y)for(var g,P=-1,E=y.length-1;P<E;)g=y[P+=1],d.schema=g,d.schemaPath=i+"["+P+"]",d.errSchemaPath=n+"/"+P,t+="  "+r.validate(d)+" ",d.baseId=m,t+=" "+u+" = "+u+" || "+p+"; if (!"+u+") { ",f+="}";r.compositeRule=d.compositeRule=v,t+=" "+f+" if (!"+u+") {   var err =   ",!1!==r.createErrors?(t+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(n)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should match some schema in anyOf' "),r.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&l&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" } else {  errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",r.opts.allErrors&&(t+=" } "),t=r.util.cleanUpCode(t)}else l&&(t+=" if (true) { ");return t}},{}],19:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.errSchemaPath+"/"+r,s=e.util.toQuotedString(e.schema[r]);return!0===e.opts.$comment?t+=" console.log("+s+");":"function"==typeof e.opts.$comment&&(t+=" self._opts.$comment("+s+", "+e.util.toQuotedString(a)+", validate.root.schema);"),t}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h=e.opts.$data&&o&&o.$data;h&&(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; "),h||(t+=" var schema"+a+" = validate.schema"+i+";");var d=d||[];d.push(t+="var "+u+" = equal("+c+", schema"+a+"); if (!"+u+") {   "),t="",!1!==e.createErrors?(t+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { allowedValue: schema"+a+" } ",!1!==e.opts.messages&&(t+=" , message: 'should be equal to constant' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var f=t;return t=d.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",l&&(t+=" else { "),t}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e);d.level++;var f="valid"+d.level,p="i"+a,m=d.dataLevel=e.dataLevel+1,v="data"+m,y=e.baseId,g=e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length:e.util.schemaHasRules(o,e.RULES.all);if(t+="var "+h+" = errors;var "+u+";",g){var P=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=o,d.schemaPath=i,d.errSchemaPath=n,t+=" var "+f+" = false; for (var "+p+" = 0; "+p+" < "+c+".length; "+p+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers,!0);var E=c+"["+p+"]";d.dataPathArr[m]=p;var w=e.validate(d);d.baseId=y,e.util.varOccurences(w,v)<2?t+=" "+e.util.varReplace(w,v,E)+" ":t+=" var "+v+" = "+E+"; "+w+" ",t+=" if ("+f+") break; }  ",e.compositeRule=d.compositeRule=P,t+="  if (!"+f+") {"}else t+=" if ("+c+".length == 0) {";var b=b||[];b.push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: {} ",!1!==e.opts.messages&&(t+=" , message: 'should contain a valid item' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var S=t;return t=b.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ",g&&(t+="  errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } "),e.opts.allErrors&&(t+=" } "),t=e.util.cleanUpCode(t)}},{}],22:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d="valid"+o,f="errs__"+o,p=e.opts.$data&&n&&n.$data;a=p?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ","schema"+o):n;var m,v,y,g,P,E=this,w="definition"+o,b=E.definition,S="";if(p&&b.$data){var _=b.validateSchema;s+=" var "+w+" = RULES.custom['"+r+"'].definition; var "+(P="keywordValidate"+o)+" = "+w+".validate;"}else{if(!(g=e.useCustomRule(E,n,e.schema,e)))return;a="validate.schema"+l,P=g.code,m=b.compile,v=b.inline,y=b.macro}var F=P+".errors",x="i"+o,$="ruleErr"+o,R=b.async;if(R&&!e.async)throw new Error("async keyword in sync schema");if(v||y||(s+=F+" = null;"),s+="var "+f+" = errors;var "+d+";",p&&b.$data&&(S+="}",s+=" if ("+a+" === undefined) { "+d+" = true; } else { ",_&&(S+="}",s+=" "+d+" = "+w+".validateSchema("+a+"); if ("+d+") { ")),v)s+=b.statements?" "+g.validate+" ":" "+d+" = "+g.validate+"; ";else if(y){var D=e.util.copy(e);S="";D.level++;var j="valid"+D.level;D.schema=g.validate,D.schemaPath="";var O=e.compositeRule;e.compositeRule=D.compositeRule=!0;var I=e.validate(D).replace(/validate\.schema/g,P);e.compositeRule=D.compositeRule=O,s+=" "+I}else{(L=L||[]).push(s),s="",s+="  "+P+".call( ",s+=e.opts.passContext?"this":"self",s+=m||!1===b.schema?" , "+h+" ":" , "+a+" , "+h+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);var A=i?"data"+(i-1||""):"parentData",C=i?e.dataPathArr[i]:"parentDataProperty",k=s+=" , "+A+" , "+C+" , rootData )  ";s=L.pop(),!1===b.errors?(s+=" "+d+" = ",R&&(s+="await "),s+=k+"; "):s+=R?" var "+(F="customErrors"+o)+" = null; try { "+d+" = await "+k+"; } catch (e) { "+d+" = false; if (e instanceof ValidationError) "+F+" = e.errors; else throw e; } ":" "+F+" = null; "+d+" = "+k+"; "}if(b.modifying&&(s+=" if ("+A+") "+h+" = "+A+"["+C+"];"),s+=""+S,b.valid)u&&(s+=" if (true) { ");else{var L;s+=" if ( ",void 0===b.valid?(s+=" !",s+=y?""+j:d):s+=" "+!b.valid+" ",t=E.keyword,(L=L||[]).push(s+=") { "),(L=L||[]).push(s=""),s="",!1!==e.createErrors?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+E.keyword+"' } ",!1!==e.opts.messages&&(s+=" , message: 'should pass \""+E.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var z=s;s=L.pop();var T=s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+z+"]); ":" validate.errors = ["+z+"]; return false; ":" var err = "+z+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";s=L.pop(),v?b.errors?"full"!=b.errors&&(s+="  for (var "+x+"="+f+"; "+x+"<errors; "+x+"++) { var "+$+" = vErrors["+x+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+h+"; "),s+=" } "):!1===b.errors?s+=" "+T+" ":(s+=" if ("+f+" == errors) { "+T+" } else {  for (var "+x+"="+f+"; "+x+"<errors; "+x+"++) { var "+$+" = vErrors["+x+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+h+"; "),s+=" } } "):y?(s+="   var err =   ",!1!==e.createErrors?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+E.keyword+"' } ",!1!==e.opts.messages&&(s+=" , message: 'should pass \""+E.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ",s+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(s+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; ")):!1===b.errors?s+=" "+T+" ":(s+=" if (Array.isArray("+F+")) { if (vErrors === null) vErrors = "+F+"; else vErrors = vErrors.concat("+F+"); errors = vErrors.length;  for (var "+x+"="+f+"; "+x+"<errors; "+x+"++) { var "+$+" = vErrors["+x+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+";  "+$+'.schemaPath = "'+c+'";  ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+h+"; "),s+=" } } else { "+T+" } "),s+=" } ",u&&(s+=" else { ")}return s}},{}],23:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e),d="";h.level++;var f="valid"+h.level,p={},m={},v=e.opts.ownProperties;for(E in o){var y=o[E],g=Array.isArray(y)?m:p;g[E]=y}t+="var "+u+" = errors;";var P=e.errorPath;for(var E in t+="var missing"+a+";",m)if((g=m[E]).length){if(t+=" if ( "+c+e.util.getProperty(E)+" !== undefined ",v&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(E)+"') "),l){t+=" && ( ";var w=g;if(w)for(var b=-1,S=w.length-1;b<S;){D=w[b+=1],b&&(t+=" || "),t+=" ( ( "+(A=c+(I=e.util.getProperty(D)))+" === undefined ",v&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(D)+"') "),t+=") && (missing"+a+" = "+e.util.toQuotedString(e.opts.jsonPointers?D:I)+") ) "}t+=")) {  ";var _="missing"+a,F="' + "+_+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(P,_,!0):P+" + "+_);var x=x||[];x.push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { property: '"+e.util.escapeQuotes(E)+"', missingProperty: '"+F+"', depsCount: "+g.length+", deps: '"+e.util.escapeQuotes(1==g.length?g[0]:g.join(", "))+"' } ",!1!==e.opts.messages&&(t+=" , message: 'should have ",t+=1==g.length?"property "+e.util.escapeQuotes(g[0]):"properties "+e.util.escapeQuotes(g.join(", ")),t+=" when property "+e.util.escapeQuotes(E)+" is present' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var $=t;t=x.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{t+=" ) { ";var R=g;if(R)for(var D,j=-1,O=R.length-1;j<O;){D=R[j+=1];var I=e.util.getProperty(D),A=(F=e.util.escapeQuotes(D),c+I);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(P,D,e.opts.jsonPointers)),t+=" if ( "+A+" === undefined ",v&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(D)+"') "),t+=") {  var err =   ",!1!==e.createErrors?(t+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { property: '"+e.util.escapeQuotes(E)+"', missingProperty: '"+F+"', depsCount: "+g.length+", deps: '"+e.util.escapeQuotes(1==g.length?g[0]:g.join(", "))+"' } ",!1!==e.opts.messages&&(t+=" , message: 'should have ",t+=1==g.length?"property "+e.util.escapeQuotes(g[0]):"properties "+e.util.escapeQuotes(g.join(", ")),t+=" when property "+e.util.escapeQuotes(E)+" is present' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}t+=" }   ",l&&(d+="}",t+=" else { ")}e.errorPath=P;var C=h.baseId;for(var E in p){y=p[E];(e.opts.strictKeywords?"object"==typeof y&&0<Object.keys(y).length:e.util.schemaHasRules(y,e.RULES.all))&&(t+=" "+f+" = true; if ( "+c+e.util.getProperty(E)+" !== undefined ",v&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(E)+"') "),t+=") { ",h.schema=y,h.schemaPath=i+e.util.getProperty(E),h.errSchemaPath=n+"/"+e.util.escapeFragment(E),t+="  "+e.validate(h)+" ",h.baseId=C,t+=" }  ",l&&(t+=" if ("+f+") { ",d+="}"))}return l&&(t+="   "+d+" if ("+u+" == errors) {"),t=e.util.cleanUpCode(t)}},{}],24:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h=e.opts.$data&&o&&o.$data;h&&(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ");var d="i"+a,f="schema"+a;h||(t+=" var "+f+" = validate.schema"+i+";"),t+="var "+u+";",h&&(t+=" if (schema"+a+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+a+")) "+u+" = false; else {"),t+=u+" = false;for (var "+d+"=0; "+d+"<"+f+".length; "+d+"++) if (equal("+c+", "+f+"["+d+"])) { "+u+" = true; break; }",h&&(t+="  }  ");var p=p||[];p.push(t+=" if (!"+u+") {   "),t="",!1!==e.createErrors?(t+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { allowedValues: schema"+a+" } ",!1!==e.opts.messages&&(t+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var m=t;return t=p.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",l&&(t+=" else { "),t}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||"");if(!1===e.opts.format)return c&&(a+=" if (true) { "),a;var h,d=e.opts.$data&&i&&i.$data;h=d?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i;var f=e.opts.unknownFormats,p=Array.isArray(f);if(d){a+=" var "+(m="format"+s)+" = formats["+h+"]; var "+(v="isObject"+s)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+s)+" = "+v+" && "+m+".type || 'string'; if ("+v+") { ",e.async&&(a+=" var async"+s+" = "+m+".async; "),a+=" "+m+" = "+m+".validate; } if (  ",d&&(a+=" ("+h+" !== undefined && typeof "+h+" != 'string') || "),a+=" (","ignore"!=f&&(a+=" ("+h+" && !"+m+" ",p&&(a+=" && self._opts.unknownFormats.indexOf("+h+") == -1 "),a+=") || "),a+=" ("+m+" && "+y+" == '"+t+"' && !(typeof "+m+" == 'function' ? ",a+=e.async?" (async"+s+" ? await "+m+"("+u+") : "+m+"("+u+")) ":" "+m+"("+u+") ",a+=" : "+m+".test("+u+"))))) {"}else{var m;if(!(m=e.formats[i])){if("ignore"==f)return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(a+=" if (true) { "),a;if(p&&0<=f.indexOf(i))return c&&(a+=" if (true) { "),a;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var v,y=(v="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(v){var g=!0===m.async;m=m.validate}if(y!=t)return c&&(a+=" if (true) { "),a;if(g){if(!e.async)throw new Error("async format in sync schema");a+=" if (!(await "+(P="formats"+e.util.getProperty(i)+".validate")+"("+u+"))) { "}else{a+=" if (! ";var P="formats"+e.util.getProperty(i);v&&(P+=".validate"),a+="function"==typeof m?" "+P+"("+u+") ":" "+P+".test("+u+") ",a+=") { "}}var E=E||[];E.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format:  ",a+=d?""+h:""+e.util.toQuotedString(i),a+="  } ",!1!==e.opts.messages&&(a+=" , message: 'should match format \"",a+=d?"' + "+h+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema:  ",a+=d?"validate.schema"+n:""+e.util.toQuotedString(i),a+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var w=a;return a=E.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e);d.level++;var f="valid"+d.level,p=e.schema.then,m=e.schema.else,v=void 0!==p&&(e.opts.strictKeywords?"object"==typeof p&&0<Object.keys(p).length:e.util.schemaHasRules(p,e.RULES.all)),y=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&0<Object.keys(m).length:e.util.schemaHasRules(m,e.RULES.all)),g=d.baseId;if(v||y){var P;d.createErrors=!1,d.schema=o,d.schemaPath=i,d.errSchemaPath=n,t+=" var "+h+" = errors; var "+u+" = true;  ";var E=e.compositeRule;e.compositeRule=d.compositeRule=!0,t+="  "+e.validate(d)+" ",d.baseId=g,d.createErrors=!0,t+="  errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; }  ",e.compositeRule=d.compositeRule=E,v?(t+=" if ("+f+") {  ",d.schema=e.schema.then,d.schemaPath=e.schemaPath+".then",d.errSchemaPath=e.errSchemaPath+"/then",t+="  "+e.validate(d)+" ",d.baseId=g,t+=" "+u+" = "+f+"; ",v&&y?t+=" var "+(P="ifClause"+a)+" = 'then'; ":P="'then'",t+=" } ",y&&(t+=" else { ")):t+=" if (!"+f+") { ",y&&(d.schema=e.schema.else,d.schemaPath=e.schemaPath+".else",d.errSchemaPath=e.errSchemaPath+"/else",t+="  "+e.validate(d)+" ",d.baseId=g,t+=" "+u+" = "+f+"; ",v&&y?t+=" var "+(P="ifClause"+a)+" = 'else'; ":P="'else'",t+=" } "),t+=" if (!"+u+") {   var err =   ",!1!==e.createErrors?(t+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { failingKeyword: "+P+" } ",!1!==e.opts.messages&&(t+=" , message: 'should match \"' + "+P+" + '\" schema' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(t+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" }   ",l&&(t+=" else { "),t=e.util.cleanUpCode(t)}else l&&(t+=" if (true) { ");return t}},{}],27:[function(e,r,t){"use strict";r.exports={$ref:e("./ref"),allOf:e("./allOf"),anyOf:e("./anyOf"),$comment:e("./comment"),const:e("./const"),contains:e("./contains"),dependencies:e("./dependencies"),enum:e("./enum"),format:e("./format"),if:e("./if"),items:e("./items"),maximum:e("./_limit"),minimum:e("./_limit"),maxItems:e("./_limitItems"),minItems:e("./_limitItems"),maxLength:e("./_limitLength"),minLength:e("./_limitLength"),maxProperties:e("./_limitProperties"),minProperties:e("./_limitProperties"),multipleOf:e("./multipleOf"),not:e("./not"),oneOf:e("./oneOf"),pattern:e("./pattern"),properties:e("./properties"),propertyNames:e("./propertyNames"),required:e("./required"),uniqueItems:e("./uniqueItems"),validate:e("./validate")}},{"./_limit":13,"./_limitItems":14,"./_limitLength":15,"./_limitProperties":16,"./allOf":17,"./anyOf":18,"./comment":19,"./const":20,"./contains":21,"./dependencies":23,"./enum":24,"./format":25,"./if":26,"./items":28,"./multipleOf":29,"./not":30,"./oneOf":31,"./pattern":32,"./properties":33,"./propertyNames":34,"./ref":35,"./required":36,"./uniqueItems":37,"./validate":38}],28:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e),f="";d.level++;var p="valid"+d.level,m="i"+a,v=d.dataLevel=e.dataLevel+1,y="data"+v,g=e.baseId;if(t+="var "+h+" = errors;var "+u+";",Array.isArray(o)){var P=e.schema.additionalItems;if(!1===P){t+=" "+u+" = "+c+".length <= "+o.length+"; ";var E=n;n=e.errSchemaPath+"/additionalItems";var w=w||[];w.push(t+="  if (!"+u+") {   "),t="",!1!==e.createErrors?(t+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { limit: "+o.length+" } ",!1!==e.opts.messages&&(t+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var b=t;t=w.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+b+"]); ":" validate.errors = ["+b+"]; return false; ":" var err = "+b+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",n=E,l&&(f+="}",t+=" else { ")}var S=o;if(S)for(var _,F=-1,x=S.length-1;F<x;)if(_=S[F+=1],e.opts.strictKeywords?"object"==typeof _&&0<Object.keys(_).length:e.util.schemaHasRules(_,e.RULES.all)){t+=" "+p+" = true; if ("+c+".length > "+F+") { ";var $=c+"["+F+"]";d.schema=_,d.schemaPath=i+"["+F+"]",d.errSchemaPath=n+"/"+F,d.errorPath=e.util.getPathExpr(e.errorPath,F,e.opts.jsonPointers,!0),d.dataPathArr[v]=F;var R=e.validate(d);d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,$)+" ":t+=" var "+y+" = "+$+"; "+R+" ",t+=" }  ",l&&(t+=" if ("+p+") { ",f+="}")}if("object"==typeof P&&(e.opts.strictKeywords?"object"==typeof P&&0<Object.keys(P).length:e.util.schemaHasRules(P,e.RULES.all))){d.schema=P,d.schemaPath=e.schemaPath+".additionalItems",d.errSchemaPath=e.errSchemaPath+"/additionalItems",t+=" "+p+" = true; if ("+c+".length > "+o.length+") {  for (var "+m+" = "+o.length+"; "+m+" < "+c+".length; "+m+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);$=c+"["+m+"]";d.dataPathArr[v]=m;R=e.validate(d);d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,$)+" ":t+=" var "+y+" = "+$+"; "+R+" ",l&&(t+=" if (!"+p+") break; "),t+=" } }  ",l&&(t+=" if ("+p+") { ",f+="}")}}else if(e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=i,d.errSchemaPath=n,t+="  for (var "+m+" = 0; "+m+" < "+c+".length; "+m+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);$=c+"["+m+"]";d.dataPathArr[v]=m;R=e.validate(d);d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,$)+" ":t+=" var "+y+" = "+$+"; "+R+" ",l&&(t+=" if (!"+p+") break; "),t+=" }"}return l&&(t+=" "+f+" if ("+h+" == errors) {"),t=e.util.cleanUpCode(t)}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,a+="var division"+s+";if (",h&&(a+=" "+t+" !== undefined && ( typeof "+t+" != 'number' || "),a+=" (division"+s+" = "+u+" / "+t+", ",a+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+s+") - division"+s+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+s+" !== parseInt(division"+s+") ",a+=" ) ",h&&(a+="  )  ");var d=d||[];d.push(a+=" ) {   "),a="",!1!==e.createErrors?(a+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { multipleOf: "+t+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be multiple of ",a+=h?"' + "+t:t+"'"),e.opts.verbose&&(a+=" , schema:  ",a+=h?"validate.schema"+n:""+i,a+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var f=a;return a=d.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e);h.level++;var d="valid"+h.level;if(e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o,h.schemaPath=i,h.errSchemaPath=n,t+=" var "+u+" = errors;  ";var f,p=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.createErrors=!1,h.opts.allErrors&&(f=h.opts.allErrors,h.opts.allErrors=!1),t+=" "+e.validate(h)+" ",h.createErrors=!0,f&&(h.opts.allErrors=f),e.compositeRule=h.compositeRule=p;var m=m||[];m.push(t+=" if ("+d+") {   "),t="",!1!==e.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: {} ",!1!==e.opts.messages&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var v=t;t=m.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else {  errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(t+=" } ")}else t+="  var err =   ",!1!==e.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: {} ",!1!==e.opts.messages&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l&&(t+=" if (false) { ");return t}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e),f="";d.level++;var p="valid"+d.level,m=d.baseId,v="prevValid"+a,y="passingSchemas"+a;t+="var "+h+" = errors , "+v+" = false , "+u+" = false , "+y+" = null; ";var g=e.compositeRule;e.compositeRule=d.compositeRule=!0;var P=o;if(P)for(var E,w=-1,b=P.length-1;w<b;)E=P[w+=1],(e.opts.strictKeywords?"object"==typeof E&&0<Object.keys(E).length:e.util.schemaHasRules(E,e.RULES.all))?(d.schema=E,d.schemaPath=i+"["+w+"]",d.errSchemaPath=n+"/"+w,t+="  "+e.validate(d)+" ",d.baseId=m):t+=" var "+p+" = true; ",w&&(t+=" if ("+p+" && "+v+") { "+u+" = false; "+y+" = ["+y+", "+w+"]; } else { ",f+="}"),t+=" if ("+p+") { "+u+" = "+v+" = true; "+y+" = "+w+"; }";return e.compositeRule=d.compositeRule=g,t+=f+"if (!"+u+") {   var err =   ",!1!==e.createErrors?(t+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { passingSchemas: "+y+" } ",!1!==e.opts.messages&&(t+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(t+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+="} else {  errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; }",e.opts.allErrors&&(t+=" } "),t}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i;var d=h?"(new RegExp("+t+"))":e.usePattern(i);a+="if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'string') || ");var f=f||[];f.push(a+=" !"+d+".test("+u+") ) {   "),a="",!1!==e.createErrors?(a+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { pattern:  ",a+=h?""+t:""+e.util.toQuotedString(i),a+="  } ",!1!==e.opts.messages&&(a+=" , message: 'should match pattern \"",a+=h?"' + "+t+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema:  ",a+=h?"validate.schema"+n:""+e.util.toQuotedString(i),a+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],33:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e),d="";h.level++;var f="valid"+h.level,p="key"+a,m="idx"+a,v=h.dataLevel=e.dataLevel+1,y="data"+v,g="dataProperties"+a,P=Object.keys(o||{}),E=e.schema.patternProperties||{},w=Object.keys(E),b=e.schema.additionalProperties,S=P.length||w.length,_=!1===b,F="object"==typeof b&&Object.keys(b).length,x=e.opts.removeAdditional,$=_||F||x,R=e.opts.ownProperties,D=e.baseId,j=e.schema.required;if(j&&(!e.opts.$data||!j.$data)&&j.length<e.opts.loopRequired)var O=e.util.toHash(j);if(t+="var "+u+" = errors;var "+f+" = true;",R&&(t+=" var "+g+" = undefined;"),$){if(t+=R?" "+g+" = "+g+" || Object.keys("+c+"); for (var "+m+"=0; "+m+"<"+g+".length; "+m+"++) { var "+p+" = "+g+"["+m+"]; ":" for (var "+p+" in "+c+") { ",S){if(t+=" var isAdditional"+a+" = !(false ",P.length)if(8<P.length)t+=" || validate.schema"+i+".hasOwnProperty("+p+") ";else{var I=P;if(I)for(var A=-1,C=I.length-1;A<C;)B=I[A+=1],t+=" || "+p+" == "+e.util.toQuotedString(B)+" "}if(w.length){var k=w;if(k)for(var L=-1,z=k.length-1;L<z;)ae=k[L+=1],t+=" || "+e.usePattern(ae)+".test("+p+") "}t+=" ); if (isAdditional"+a+") { "}if("all"==x)t+=" delete "+c+"["+p+"]; ";else{var T=e.errorPath,q="' + "+p+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers)),_)if(x)t+=" delete "+c+"["+p+"]; ";else{var N=n;n=e.errSchemaPath+"/additionalProperties",(ee=ee||[]).push(t+=" "+f+" = false; "),t="",!1!==e.createErrors?(t+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { additionalProperty: '"+q+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is an invalid additional property":"should NOT have additional properties",t+="' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var Q=t;t=ee.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+Q+"]); ":" validate.errors = ["+Q+"]; return false; ":" var err = "+Q+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n=N,l&&(t+=" break; ")}else if(F)if("failing"==x){t+=" var "+u+" = errors;  ";var U=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.schema=b,h.schemaPath=e.schemaPath+".additionalProperties",h.errSchemaPath=e.errSchemaPath+"/additionalProperties",h.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers);var V=c+"["+p+"]";h.dataPathArr[v]=p;var H=e.validate(h);h.baseId=D,e.util.varOccurences(H,y)<2?t+=" "+e.util.varReplace(H,y,V)+" ":t+=" var "+y+" = "+V+"; "+H+" ",t+=" if (!"+f+") { errors = "+u+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+c+"["+p+"]; }  ",e.compositeRule=h.compositeRule=U}else{h.schema=b,h.schemaPath=e.schemaPath+".additionalProperties",h.errSchemaPath=e.errSchemaPath+"/additionalProperties",h.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers);V=c+"["+p+"]";h.dataPathArr[v]=p;H=e.validate(h);h.baseId=D,e.util.varOccurences(H,y)<2?t+=" "+e.util.varReplace(H,y,V)+" ":t+=" var "+y+" = "+V+"; "+H+" ",l&&(t+=" if (!"+f+") break; ")}e.errorPath=T}S&&(t+=" } "),t+=" }  ",l&&(t+=" if ("+f+") { ",d+="}")}var K=e.opts.useDefaults&&!e.compositeRule;if(P.length){var M=P;if(M)for(var B,J=-1,Z=M.length-1;J<Z;){var G=o[B=M[J+=1]];if(e.opts.strictKeywords?"object"==typeof G&&0<Object.keys(G).length:e.util.schemaHasRules(G,e.RULES.all)){var Y=e.util.getProperty(B),W=(V=c+Y,K&&void 0!==G.default);h.schema=G,h.schemaPath=i+Y,h.errSchemaPath=n+"/"+e.util.escapeFragment(B),h.errorPath=e.util.getPath(e.errorPath,B,e.opts.jsonPointers),h.dataPathArr[v]=e.util.toQuotedString(B);H=e.validate(h);if(h.baseId=D,e.util.varOccurences(H,y)<2){H=e.util.varReplace(H,y,V);var X=V}else{X=y;t+=" var "+y+" = "+V+"; "}if(W)t+=" "+H+" ";else{if(O&&O[B]){t+=" if ( "+X+" === undefined ",R&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(B)+"') "),t+=") { "+f+" = false; ";T=e.errorPath,N=n;var ee,re=e.util.escapeQuotes(B);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(T,B,e.opts.jsonPointers)),n=e.errSchemaPath+"/required",(ee=ee||[]).push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+re+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+re+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";Q=t;t=ee.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+Q+"]); ":" validate.errors = ["+Q+"]; return false; ":" var err = "+Q+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n=N,e.errorPath=T,t+=" } else { "}else l?(t+=" if ( "+X+" === undefined ",R&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(B)+"') "),t+=") { "+f+" = true; } else { "):(t+=" if ("+X+" !== undefined ",R&&(t+=" &&   Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(B)+"') "),t+=" ) { ");t+=" "+H+" } "}}l&&(t+=" if ("+f+") { ",d+="}")}}if(w.length){var te=w;if(te)for(var ae,se=-1,oe=te.length-1;se<oe;){G=E[ae=te[se+=1]];if(e.opts.strictKeywords?"object"==typeof G&&0<Object.keys(G).length:e.util.schemaHasRules(G,e.RULES.all)){h.schema=G,h.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(ae),h.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(ae),t+=R?" "+g+" = "+g+" || Object.keys("+c+"); for (var "+m+"=0; "+m+"<"+g+".length; "+m+"++) { var "+p+" = "+g+"["+m+"]; ":" for (var "+p+" in "+c+") { ",t+=" if ("+e.usePattern(ae)+".test("+p+")) { ",h.errorPath=e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers);V=c+"["+p+"]";h.dataPathArr[v]=p;H=e.validate(h);h.baseId=D,e.util.varOccurences(H,y)<2?t+=" "+e.util.varReplace(H,y,V)+" ":t+=" var "+y+" = "+V+"; "+H+" ",l&&(t+=" if (!"+f+") break; "),t+=" } ",l&&(t+=" else "+f+" = true; "),t+=" }  ",l&&(t+=" if ("+f+") { ",d+="}")}}}return l&&(t+=" "+d+" if ("+u+" == errors) {"),t=e.util.cleanUpCode(t)}},{}],34:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e);h.level++;var d="valid"+h.level;if(t+="var "+u+" = errors;",e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o,h.schemaPath=i,h.errSchemaPath=n;var f="key"+a,p="idx"+a,m="i"+a,v="' + "+f+" + '",y="data"+(h.dataLevel=e.dataLevel+1),g="dataProperties"+a,P=e.opts.ownProperties,E=e.baseId;P&&(t+=" var "+g+" = undefined; "),t+=P?" "+g+" = "+g+" || Object.keys("+c+"); for (var "+p+"=0; "+p+"<"+g+".length; "+p+"++) { var "+f+" = "+g+"["+p+"]; ":" for (var "+f+" in "+c+") { ",t+=" var startErrs"+a+" = errors; ";var w=f,b=e.compositeRule;e.compositeRule=h.compositeRule=!0;var S=e.validate(h);h.baseId=E,e.util.varOccurences(S,y)<2?t+=" "+e.util.varReplace(S,y,w)+" ":t+=" var "+y+" = "+w+"; "+S+" ",e.compositeRule=h.compositeRule=b,t+=" if (!"+d+") { for (var "+m+"=startErrs"+a+"; "+m+"<errors; "+m+"++) { vErrors["+m+"].propertyName = "+f+"; }   var err =   ",!1!==e.createErrors?(t+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { propertyName: '"+v+"' } ",!1!==e.opts.messages&&(t+=" , message: 'property name \\'"+v+"\\' is invalid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(t+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),l&&(t+=" break; "),t+=" } }"}return l&&(t+="  if ("+u+" == errors) {"),t=e.util.cleanUpCode(t)}},{}],35:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.dataLevel,i=e.schema[r],n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(o||""),u="valid"+e.level;if("#"==i||"#/"==i)a=e.isRoot?(t=e.async,"validate"):(t=!0===e.root.schema.$async,"root.refVal[0]");else{var h=e.resolveRef(e.baseId,i,e.isRoot);if(void 0===h){var d=e.MissingRefError.message(e.baseId,i);if("fail"==e.opts.missingRefs){e.logger.error(d),(v=v||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { ref: '"+e.util.escapeQuotes(i)+"' } ",!1!==e.opts.messages&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(i)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(i)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var f=s;s=v.pop(),s+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l&&(s+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,i,d);e.logger.warn(d),l&&(s+=" if (true) { ")}}else if(h.inline){var p=e.util.copy(e);p.level++;var m="valid"+p.level;p.schema=h.schema,p.schemaPath="",p.errSchemaPath=i,s+=" "+e.validate(p).replace(/validate\.schema/g,h.code)+" ",l&&(s+=" if ("+m+") { ")}else t=!0===h.$async||e.async&&!1!==h.$async,a=h.code}if(a){var v;(v=v||[]).push(s),s="",s+=e.opts.passContext?" "+a+".call(this, ":" "+a+"( ",s+=" "+c+", (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);var y=s+=" , "+(o?"data"+(o-1||""):"parentData")+" , "+(o?e.dataPathArr[o]:"parentDataProperty")+", rootData)  ";if(s=v.pop(),t){if(!e.async)throw new Error("async schema referenced by sync schema");l&&(s+=" var "+u+"; "),s+=" try { await "+y+"; ",l&&(s+=" "+u+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",l&&(s+=" "+u+" = false; "),s+=" } ",l&&(s+=" if ("+u+") { ")}else s+=" if (!"+y+") { if (vErrors === null) vErrors = "+a+".errors; else vErrors = vErrors.concat("+a+".errors); errors = vErrors.length; } ",l&&(s+=" else { ")}return s}},{}],36:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h=e.opts.$data&&o&&o.$data;h&&(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ");var d="schema"+a;if(!h)if(o.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var f=[],p=o;if(p)for(var m,v=-1,y=p.length-1;v<y;){m=p[v+=1];var g=e.schema.properties[m];g&&(e.opts.strictKeywords?"object"==typeof g&&0<Object.keys(g).length:e.util.schemaHasRules(g,e.RULES.all))||(f[f.length]=m)}}else f=o;if(h||f.length){var P=e.errorPath,E=h||e.opts.loopRequired<=f.length,w=e.opts.ownProperties;if(l)if(t+=" var missing"+a+"; ",E){h||(t+=" var "+d+" = validate.schema"+i+"; ");var b="' + "+(R="schema"+a+"["+(F="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(P,R,e.opts.jsonPointers)),t+=" var "+u+" = true; ",h&&(t+=" if (schema"+a+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+a+")) "+u+" = false; else {"),t+=" for (var "+F+" = 0; "+F+" < "+d+".length; "+F+"++) { "+u+" = "+c+"["+d+"["+F+"]] !== undefined ",w&&(t+=" &&   Object.prototype.hasOwnProperty.call("+c+", "+d+"["+F+"]) "),t+="; if (!"+u+") break; } ",h&&(t+="  }  "),($=$||[]).push(t+="  if (!"+u+") {   "),t="",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var S=t;t=$.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else{t+=" if ( ";var _=f;if(_)for(var F=-1,x=_.length-1;F<x;){j=_[F+=1],F&&(t+=" || "),t+=" ( ( "+(C=c+(A=e.util.getProperty(j)))+" === undefined ",w&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(j)+"') "),t+=") && (missing"+a+" = "+e.util.toQuotedString(e.opts.jsonPointers?j:A)+") ) "}t+=") {  ";var $;b="' + "+(R="missing"+a)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(P,R,!0):P+" + "+R),($=$||[]).push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";S=t;t=$.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else if(E){h||(t+=" var "+d+" = validate.schema"+i+"; ");var R;b="' + "+(R="schema"+a+"["+(F="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(P,R,e.opts.jsonPointers)),h&&(t+=" if ("+d+" && !Array.isArray("+d+")) {  var err =   ",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+d+" !== undefined) { "),t+=" for (var "+F+" = 0; "+F+" < "+d+".length; "+F+"++) { if ("+c+"["+d+"["+F+"]] === undefined ",w&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", "+d+"["+F+"]) "),t+=") {  var err =   ",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",h&&(t+="  }  ")}else{var D=f;if(D)for(var j,O=-1,I=D.length-1;O<I;){j=D[O+=1];var A=e.util.getProperty(j),C=(b=e.util.escapeQuotes(j),c+A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(P,j,e.opts.jsonPointers)),t+=" if ( "+C+" === undefined ",w&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(j)+"') "),t+=") {  var err =   ",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+=";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=P}else l&&(t+=" if (true) {");return t}},{}],37:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;if(t=d?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,(i||d)&&!1!==e.opts.uniqueItems){d&&(a+=" var "+h+"; if ("+t+" === false || "+t+" === undefined) "+h+" = true; else if (typeof "+t+" != 'boolean') "+h+" = false; else { "),a+=" var i = "+u+".length , "+h+" = true , j; if (i > 1) { ";var f=e.schema.items&&e.schema.items.type,p=Array.isArray(f);if(!f||"object"==f||"array"==f||p&&(0<=f.indexOf("object")||0<=f.indexOf("array")))a+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+h+" = false; break outer; } } } ";else a+=" var itemIndices = {}, item; for (;i--;) { var item = "+u+"[i]; ",a+=" if ("+e.util["checkDataType"+(p?"s":"")](f,"item",!0)+") continue; ",p&&(a+=" if (typeof item == 'string') item = '\"' + item; "),a+=" if (typeof itemIndices[item] == 'number') { "+h+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";a+=" } ",d&&(a+="  }  ");var m=m||[];m.push(a+=" if (!"+h+") {   "),a="",!1!==e.createErrors?(a+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(a+=" , schema:  ",a+=d?"validate.schema"+n:""+i,a+="         , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var v=a;a=m.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { ")}else c&&(a+=" if (true) { ");return a}},{}],38:[function(e,r,t){"use strict";r.exports=function(a,e){var r="",t=!0===a.schema.$async,s=a.util.schemaHasRulesExcept(a.schema,a.RULES.all,"$ref"),o=a.self._getId(a.schema);if(a.opts.strictKeywords){var i=a.util.schemaUnknownRules(a.schema,a.RULES.keywords);if(i){var n="unknown keyword: "+i;if("log"!==a.opts.strictKeywords)throw new Error(n);a.logger.warn(n)}}if(a.isTop&&(r+=" var validate = ",t&&(a.async=!0,r+="async "),r+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(a.opts.sourceCode||a.opts.processCode)&&(r+=" /*# sourceURL="+o+" */ ")),"boolean"==typeof a.schema||!s&&!a.schema.$ref){var l=a.level,c=a.dataLevel,u=a.schema[e="false schema"],h=a.schemaPath+a.util.getProperty(e),d=a.errSchemaPath+"/"+e,f=!a.opts.allErrors,p="data"+(c||""),m="valid"+l;if(!1===a.schema){a.isTop?f=!0:r+=" var "+m+" = false; ",(Z=Z||[]).push(r),r="",!1!==a.createErrors?(r+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: {} ",!1!==a.opts.messages&&(r+=" , message: 'boolean schema is false' "),a.opts.verbose&&(r+=" , schema: false , parentSchema: validate.schema"+a.schemaPath+" , data: "+p+" "),r+=" } "):r+=" {} ";var v=r;r=Z.pop(),r+=!a.compositeRule&&f?a.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else r+=a.isTop?t?" return data; ":" validate.errors = null; return true; ":" var "+m+" = true; ";return a.isTop&&(r+=" }; return validate; "),r}if(a.isTop){var y=a.isTop;l=a.level=0,c=a.dataLevel=0,p="data";if(a.rootId=a.resolve.fullPath(a.self._getId(a.root.schema)),a.baseId=a.baseId||a.rootId,delete a.isTop,a.dataPathArr=[void 0],void 0!==a.schema.default&&a.opts.useDefaults&&a.opts.strictDefaults){var g="default is ignored in the schema root";if("log"!==a.opts.strictDefaults)throw new Error(g);a.logger.warn(g)}r+=" var vErrors = null; ",r+=" var errors = 0;     ",r+=" if (rootData === undefined) rootData = data; "}else{l=a.level,p="data"+((c=a.dataLevel)||"");if(o&&(a.baseId=a.resolve.url(a.baseId,o)),t&&!a.async)throw new Error("async schema in sync schema");r+=" var errs_"+l+" = errors;"}m="valid"+l,f=!a.opts.allErrors;var P="",E="",w=a.schema.type,b=Array.isArray(w);if(w&&a.opts.nullable&&!0===a.schema.nullable&&(b?-1==w.indexOf("null")&&(w=w.concat("null")):"null"!=w&&(w=[w,"null"],b=!0)),b&&1==w.length&&(w=w[0],b=!1),a.schema.$ref&&s){if("fail"==a.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+a.errSchemaPath+'" (see option extendRefs)');!0!==a.opts.extendRefs&&(s=!1,a.logger.warn('$ref: keywords ignored in schema at path "'+a.errSchemaPath+'"'))}if(a.schema.$comment&&a.opts.$comment&&(r+=" "+a.RULES.all.$comment.code(a,"$comment")),w){if(a.opts.coerceTypes)var S=a.util.coerceToTypes(a.opts.coerceTypes,w);var _=a.RULES.types[w];if(S||b||!0===_||_&&!G(_)){h=a.schemaPath+".type",d=a.errSchemaPath+"/type",h=a.schemaPath+".type",d=a.errSchemaPath+"/type";if(r+=" if ("+a.util[b?"checkDataTypes":"checkDataType"](w,p,!0)+") { ",S){var F="dataType"+l,x="coerced"+l;r+=" var "+F+" = typeof "+p+"; ","array"==a.opts.coerceTypes&&(r+=" if ("+F+" == 'object' && Array.isArray("+p+")) "+F+" = 'array'; "),r+=" var "+x+" = undefined; ";var $="",R=S;if(R)for(var D,j=-1,O=R.length-1;j<O;)D=R[j+=1],j&&(r+=" if ("+x+" === undefined) { ",$+="}"),"array"==a.opts.coerceTypes&&"array"!=D&&(r+=" if ("+F+" == 'array' && "+p+".length == 1) { "+x+" = "+p+" = "+p+"[0]; "+F+" = typeof "+p+";  } "),"string"==D?r+=" if ("+F+" == 'number' || "+F+" == 'boolean') "+x+" = '' + "+p+"; else if ("+p+" === null) "+x+" = ''; ":"number"==D||"integer"==D?(r+=" if ("+F+" == 'boolean' || "+p+" === null || ("+F+" == 'string' && "+p+" && "+p+" == +"+p+" ","integer"==D&&(r+=" && !("+p+" % 1)"),r+=")) "+x+" = +"+p+"; "):"boolean"==D?r+=" if ("+p+" === 'false' || "+p+" === 0 || "+p+" === null) "+x+" = false; else if ("+p+" === 'true' || "+p+" === 1) "+x+" = true; ":"null"==D?r+=" if ("+p+" === '' || "+p+" === 0 || "+p+" === false) "+x+" = null; ":"array"==a.opts.coerceTypes&&"array"==D&&(r+=" if ("+F+" == 'string' || "+F+" == 'number' || "+F+" == 'boolean' || "+p+" == null) "+x+" = ["+p+"]; ");(Z=Z||[]).push(r+=" "+$+" if ("+x+" === undefined) {   "),r="",!1!==a.createErrors?(r+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: { type: '",r+=b?""+w.join(","):""+w,r+="' } ",!1!==a.opts.messages&&(r+=" , message: 'should be ",r+=b?""+w.join(","):""+w,r+="' "),a.opts.verbose&&(r+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+p+" "),r+=" } "):r+=" {} ";v=r;r=Z.pop(),r+=!a.compositeRule&&f?a.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else {  ";var I=c?"data"+(c-1||""):"parentData";r+=" "+p+" = "+x+"; ",c||(r+="if ("+I+" !== undefined)"),r+=" "+I+"["+(c?a.dataPathArr[c]:"parentDataProperty")+"] = "+x+"; } "}else{(Z=Z||[]).push(r),r="",!1!==a.createErrors?(r+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: { type: '",r+=b?""+w.join(","):""+w,r+="' } ",!1!==a.opts.messages&&(r+=" , message: 'should be ",r+=b?""+w.join(","):""+w,r+="' "),a.opts.verbose&&(r+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+p+" "),r+=" } "):r+=" {} ";v=r;r=Z.pop(),r+=!a.compositeRule&&f?a.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}r+=" } "}}if(a.schema.$ref&&!s)r+=" "+a.RULES.all.$ref.code(a,"$ref")+" ",f&&(r+=" } if (errors === ",r+=y?"0":"errs_"+l,r+=") { ",E+="}");else{var A=a.RULES;if(A)for(var C=-1,k=A.length-1;C<k;)if(G(_=A[C+=1])){if(_.type&&(r+=" if ("+a.util.checkDataType(_.type,p)+") { "),a.opts.useDefaults)if("object"==_.type&&a.schema.properties){u=a.schema.properties;var L=Object.keys(u);if(L)for(var z,T=-1,q=L.length-1;T<q;){if(void 0!==(U=u[z=L[T+=1]]).default){var N=p+a.util.getProperty(z);if(a.compositeRule){if(a.opts.strictDefaults){g="default is ignored for: "+N;if("log"!==a.opts.strictDefaults)throw new Error(g);a.logger.warn(g)}}else r+=" if ("+N+" === undefined ","empty"==a.opts.useDefaults&&(r+=" || "+N+" === null || "+N+" === '' "),r+=" ) "+N+" = ",r+="shared"==a.opts.useDefaults?" "+a.useDefault(U.default)+" ":" "+JSON.stringify(U.default)+" ",r+="; "}}}else if("array"==_.type&&Array.isArray(a.schema.items)){var Q=a.schema.items;if(Q){j=-1;for(var U,V=Q.length-1;j<V;)if(void 0!==(U=Q[j+=1]).default){N=p+"["+j+"]";if(a.compositeRule){if(a.opts.strictDefaults){g="default is ignored for: "+N;if("log"!==a.opts.strictDefaults)throw new Error(g);a.logger.warn(g)}}else r+=" if ("+N+" === undefined ","empty"==a.opts.useDefaults&&(r+=" || "+N+" === null || "+N+" === '' "),r+=" ) "+N+" = ",r+="shared"==a.opts.useDefaults?" "+a.useDefault(U.default)+" ":" "+JSON.stringify(U.default)+" ",r+="; "}}}var H=_.rules;if(H)for(var K,M=-1,B=H.length-1;M<B;)if(Y(K=H[M+=1])){var J=K.code(a,K.keyword,_.type);J&&(r+=" "+J+" ",f&&(P+="}"))}if(f&&(r+=" "+P+" ",P=""),_.type&&(r+=" } ",w&&w===_.type&&!S)){var Z;h=a.schemaPath+".type",d=a.errSchemaPath+"/type";(Z=Z||[]).push(r+=" else { "),r="",!1!==a.createErrors?(r+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: { type: '",r+=b?""+w.join(","):""+w,r+="' } ",!1!==a.opts.messages&&(r+=" , message: 'should be ",r+=b?""+w.join(","):""+w,r+="' "),a.opts.verbose&&(r+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+p+" "),r+=" } "):r+=" {} ";v=r;r=Z.pop(),r+=!a.compositeRule&&f?a.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+";  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } "}f&&(r+=" if (errors === ",r+=y?"0":"errs_"+l,r+=") { ",E+="}")}}function G(e){for(var r=e.rules,t=0;t<r.length;t++)if(Y(r[t]))return 1}function Y(e){return void 0!==a.schema[e.keyword]||e.implements&&function(e){for(var r=e.implements,t=0;t<r.length;t++)if(void 0!==a.schema[r[t]])return!0}(e)}return f&&(r+=" "+E+" "),y?(t?(r+=" if (errors === 0) return data;           ",r+=" else throw new ValidationError(vErrors); "):(r+=" validate.errors = vErrors; ",r+=" return errors === 0;       "),r+=" }; return validate;"):r+=" var "+m+" = errors === errs_"+l+";",r=a.util.cleanUpCode(r),y&&(r=a.util.finalCleanUpCode(r,t)),r}},{}],39:[function(e,r,t){"use strict";var i=/^[a-z_$][a-z0-9_$-]*$/i,l=e("./dotjs/custom"),s=e("./definition_schema");r.exports={add:function(e,r){var n=this.RULES;if(n.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!i.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){this.validateKeyword(r,!0);var t=r.type;if(Array.isArray(t))for(var a=0;a<t.length;a++)o(e,t[a],r);else o(e,t,r);var s=r.metaSchema;s&&(r.$data&&this._opts.$data&&(s={anyOf:[s,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"}]}),r.validateSchema=this.compile(s,!0))}function o(e,r,t){for(var a,s=0;s<n.length;s++){var o=n[s];if(o.type==r){a=o;break}}a||n.push(a={type:r,rules:[]});var i={keyword:e,definition:t,custom:!0,code:l,implements:t.implements};a.rules.push(i),n.custom[e]=i}return n.keywords[e]=n.all[e]=!0,this},get:function(e){var r=this.RULES.custom[e];return r?r.definition:this.RULES.keywords[e]||!1},remove:function(e){var r=this.RULES;delete r.keywords[e],delete r.all[e],delete r.custom[e];for(var t=0;t<r.length;t++)for(var a=r[t].rules,s=0;s<a.length;s++)if(a[s].keyword==e){a.splice(s,1);break}return this},validate:function e(r,t){e.errors=null;var a=this._validateKeyword=this._validateKeyword||this.compile(s,!0);if(a(r))return!0;e.errors=a.errors;{if(t)throw new Error("custom keyword definition is invalid: "+this.errorsText(a.errors));return!1}}}},{"./definition_schema":12,"./dotjs/custom":22}],40:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},{}],41:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}},{}],42:[function(e,r,t){"use strict";r.exports=function e(r,t){if(r===t)return!0;if(r&&t&&"object"==typeof r&&"object"==typeof t){if(r.constructor!==t.constructor)return!1;var a,s,o;if(Array.isArray(r)){if((a=r.length)!=t.length)return!1;for(s=a;0!=s--;)if(!e(r[s],t[s]))return!1;return!0}if(r.constructor===RegExp)return r.source===t.source&&r.flags===t.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===t.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===t.toString();if((a=(o=Object.keys(r)).length)!==Object.keys(t).length)return!1;for(s=a;0!=s--;)if(!Object.prototype.hasOwnProperty.call(t,o[s]))return!1;for(s=a;0!=s--;){var i=o[s];if(!e(r[i],t[i]))return!1}return!0}return r!=r&&t!=t}},{}],43:[function(e,r,t){"use strict";r.exports=function(e,r){"function"==typeof(r=r||{})&&(r={cmp:r});var a,l="boolean"==typeof r.cycles&&r.cycles,c=r.cmp&&(a=r.cmp,function(t){return function(e,r){return a({key:e,value:t[e]},{key:r,value:t[r]})}}),u=[];return function e(r){if(r&&r.toJSON&&"function"==typeof r.toJSON&&(r=r.toJSON()),void 0!==r){if("number"==typeof r)return isFinite(r)?""+r:"null";if("object"!=typeof r)return JSON.stringify(r);var t,a;if(Array.isArray(r)){for(a="[",t=0;t<r.length;t++)t&&(a+=","),a+=e(r[t])||"null";return a+"]"}if(null===r)return"null";if(-1!==u.indexOf(r)){if(l)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var s=u.push(r)-1,o=Object.keys(r).sort(c&&c(r));for(a="",t=0;t<o.length;t++){var i=o[t],n=e(r[i]);n&&(a&&(a+=","),a+=JSON.stringify(i)+":"+n)}return u.splice(s,1),"{"+a+"}"}}(e)}},{}],44:[function(e,r,t){"use strict";var m=r.exports=function(e,r,t){"function"==typeof r&&(t=r,r={}),function e(r,t,a,s,o,i,n,l,c,u){if(s&&"object"==typeof s&&!Array.isArray(s)){for(var h in t(s,o,i,n,l,c,u),s){var d=s[h];if(Array.isArray(d)){if(h in m.arrayKeywords)for(var f=0;f<d.length;f++)e(r,t,a,d[f],o+"/"+h+"/"+f,i,o,h,s,f)}else if(h in m.propsKeywords){if(d&&"object"==typeof d)for(var p in d)e(r,t,a,d[p],o+"/"+h+"/"+p.replace(/~/g,"~0").replace(/\//g,"~1"),i,o,h,s,p)}else(h in m.keywords||r.allKeys&&!(h in m.skipKeywords))&&e(r,t,a,d,o+"/"+h,i,o,h,s)}a(s,o,i,n,l,c,u)}}(r,"function"==typeof(t=r.cb||t)?t:t.pre||function(){},t.post||function(){},e,"",e)};m.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},m.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},m.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},m.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},{}],45:[function(e,r,t){var a;a=this,function(e){"use strict";function J(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];if(1<r.length){r[0]=r[0].slice(0,-1);for(var a=r.length-1,s=1;s<a;++s)r[s]=r[s].slice(1,-1);return r[a]=r[a].slice(1),r.join("")}return r[0]}function Z(e){return"(?:"+e+")"}function a(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function p(e){return e.toUpperCase()}function r(e){var r="[A-Za-z]",t="[0-9]",a=J(t,"[A-Fa-f]"),s=Z(Z("%[EFef]"+a+"%"+a+a+"%"+a+a)+"|"+Z("%[89A-Fa-f]"+a+"%"+a+a)+"|"+Z("%"+a+a)),o="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",i=J("[\\:\\/\\?\\#\\[\\]\\@]",o),n=e?"[\\uE000-\\uF8FF]":"[]",l=J(r,t,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),c=Z(r+J(r,t,"[\\+\\-\\.]")+"*"),u=Z(Z(s+"|"+J(l,o,"[\\:]"))+"*"),h=(Z("(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9][0-9])|(?:[1-9][0-9])|"+t),Z("(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9][0-9])|(?:0?[1-9][0-9])|0?0?"+t)),d=Z(h+"\\."+h+"\\."+h+"\\."+h),f=Z(a+"{1,4}"),p=Z(Z(f+"\\:"+f)+"|"+d),m=Z(Z(f+"\\:")+"{6}"+p),v=Z("\\:\\:"+Z(f+"\\:")+"{5}"+p),y=Z(Z(f)+"?\\:\\:"+Z(f+"\\:")+"{4}"+p),g=Z(Z(Z(f+"\\:")+"{0,1}"+f)+"?\\:\\:"+Z(f+"\\:")+"{3}"+p),P=Z(Z(Z(f+"\\:")+"{0,2}"+f)+"?\\:\\:"+Z(f+"\\:")+"{2}"+p),E=Z(Z(Z(f+"\\:")+"{0,3}"+f)+"?\\:\\:"+f+"\\:"+p),w=Z(Z(Z(f+"\\:")+"{0,4}"+f)+"?\\:\\:"+p),b=Z(Z(Z(f+"\\:")+"{0,5}"+f)+"?\\:\\:"+f),S=Z(Z(Z(f+"\\:")+"{0,6}"+f)+"?\\:\\:"),_=Z([m,v,y,g,P,E,w,b,S].join("|")),F=Z(Z(l+"|"+s)+"+"),x=(Z(_+"\\%25"+F),Z(_+Z("\\%25|\\%(?!"+a+"{2})")+F)),$=Z("[vV]"+a+"+\\."+J(l,o,"[\\:]")+"+"),R=Z("\\["+Z(x+"|"+_+"|"+$)+"\\]"),D=Z(Z(s+"|"+J(l,o))+"*"),j=Z(R+"|"+d+"(?!"+D+")|"+D),O=Z(t+"*"),I=Z(Z(u+"@")+"?"+j+Z("\\:"+O)+"?"),A=Z(s+"|"+J(l,o,"[\\:\\@]")),C=Z(A+"*"),k=Z(A+"+"),L=Z(Z(s+"|"+J(l,o,"[\\@]"))+"+"),z=Z(Z("\\/"+C)+"*"),T=Z("\\/"+Z(k+z)+"?"),q=Z(L+z),N=Z(k+z),Q="(?!"+A+")",U=(Z(z+"|"+T+"|"+q+"|"+N+"|"+Q),Z(Z(A+"|"+J("[\\/\\?]",n))+"*")),V=Z(Z(A+"|[\\/\\?]")+"*"),H=Z(Z("\\/\\/"+I+z)+"|"+T+"|"+N+"|"+Q),K=Z(c+"\\:"+H+Z("\\?"+U)+"?"+Z("\\#"+V)+"?"),M=Z(Z("\\/\\/"+I+z)+"|"+T+"|"+q+"|"+Q),B=Z(M+Z("\\?"+U)+"?"+Z("\\#"+V)+"?");Z(K+"|"+B),Z(c+"\\:"+H+Z("\\?"+U)+"?"),Z(Z("\\/\\/("+Z("("+u+")@")+"?("+j+")"+Z("\\:("+O+")")+"?)")+"?("+z+"|"+T+"|"+N+"|"+Q+")"),Z("\\?("+U+")"),Z("\\#("+V+")"),Z(Z("\\/\\/("+Z("("+u+")@")+"?("+j+")"+Z("\\:("+O+")")+"?)")+"?("+z+"|"+T+"|"+q+"|"+Q+")"),Z("\\?("+U+")"),Z("\\#("+V+")"),Z(Z("\\/\\/("+Z("("+u+")@")+"?("+j+")"+Z("\\:("+O+")")+"?)")+"?("+z+"|"+T+"|"+N+"|"+Q+")"),Z("\\?("+U+")"),Z("\\#("+V+")"),Z("("+u+")@"),Z("\\:("+O+")");return{NOT_SCHEME:new RegExp(J("[^]",r,t,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(J("[^\\%\\:]",l,o),"g"),NOT_HOST:new RegExp(J("[^\\%\\[\\]\\:]",l,o),"g"),NOT_PATH:new RegExp(J("[^\\%\\/\\:\\@]",l,o),"g"),NOT_PATH_NOSCHEME:new RegExp(J("[^\\%\\/\\@]",l,o),"g"),NOT_QUERY:new RegExp(J("[^\\%]",l,o,"[\\:\\@\\/\\?]",n),"g"),NOT_FRAGMENT:new RegExp(J("[^\\%]",l,o,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(J("[^]",l,o),"g"),UNRESERVED:new RegExp(l,"g"),OTHER_CHARS:new RegExp(J("[^\\%]",l,i),"g"),PCT_ENCODED:new RegExp(s,"g"),IPV4ADDRESS:new RegExp("^("+d+")$"),IPV6ADDRESS:new RegExp("^\\[?("+_+")"+Z(Z("\\%25|\\%(?!"+a+"{2})")+"("+F+")")+"?\\]?$")}}var u=r(!1),h=r(!0),w=function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,r){var t=[],a=!0,s=!1,o=void 0;try{for(var i,n=e[Symbol.iterator]();!(a=(i=n.next()).done)&&(t.push(i.value),!r||t.length!==r);a=!0);}catch(e){s=!0,o=e}finally{try{!a&&n.return&&n.return()}finally{if(s)throw o}}return t}(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")},A=2147483647,t=/^xn--/,s=/[^\0-\x7E]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,i={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},C=Math.floor,k=String.fromCharCode;function L(e){throw new RangeError(i[e])}function n(e,r){var t=e.split("@"),a="";return 1<t.length&&(a=t[0]+"@",e=t[1]),a+function(e,r){for(var t=[],a=e.length;a--;)t[a]=r(e[a]);return t}((e=e.replace(o,".")).split("."),r).join(".")}function z(e){for(var r=[],t=0,a=e.length;t<a;){var s=e.charCodeAt(t++);if(55296<=s&&s<=56319&&t<a){var o=e.charCodeAt(t++);56320==(64512&o)?r.push(((1023&s)<<10)+(1023&o)+65536):(r.push(s),t--)}else r.push(s)}return r}function T(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function q(e,r,t){var a=0;for(e=t?C(e/700):e>>1,e+=C(e/r);455<e;a+=36)e=C(e/35);return C(a+36*e/(e+38))}function l(e){var r,t=[],a=e.length,s=0,o=128,i=72,n=e.lastIndexOf("-");n<0&&(n=0);for(var l=0;l<n;++l)128<=e.charCodeAt(l)&&L("not-basic"),t.push(e.charCodeAt(l));for(var c=0<n?n+1:0;c<a;){for(var u=s,h=1,d=36;;d+=36){a<=c&&L("invalid-input");var f=(r=e.charCodeAt(c++))-48<10?r-22:r-65<26?r-65:r-97<26?r-97:36;(36<=f||f>C((A-s)/h))&&L("overflow"),s+=f*h;var p=d<=i?1:i+26<=d?26:d-i;if(f<p)break;var m=36-p;h>C(A/m)&&L("overflow"),h*=m}var v=t.length+1;i=q(s-u,v,0==u),C(s/v)>A-o&&L("overflow"),o+=C(s/v),s%=v,t.splice(s++,0,o)}return String.fromCodePoint.apply(String,t)}function c(e){var r=[],t=(e=z(e)).length,a=128,s=0,o=72,i=!0,n=!1,l=void 0;try{for(var c,u=e[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var h=c.value;h<128&&r.push(k(h))}}catch(e){n=!0,l=e}finally{try{!i&&u.return&&u.return()}finally{if(n)throw l}}var d=r.length,f=d;for(d&&r.push("-");f<t;){var p=A,m=!0,v=!1,y=void 0;try{for(var g,P=e[Symbol.iterator]();!(m=(g=P.next()).done);m=!0){var E=g.value;a<=E&&E<p&&(p=E)}}catch(e){v=!0,y=e}finally{try{!m&&P.return&&P.return()}finally{if(v)throw y}}var w=f+1;p-a>C((A-s)/w)&&L("overflow"),s+=(p-a)*w,a=p;var b=!0,S=!1,_=void 0;try{for(var F,x=e[Symbol.iterator]();!(b=(F=x.next()).done);b=!0){var $=F.value;if($<a&&++s>A&&L("overflow"),$==a){for(var R=s,D=36;;D+=36){var j=D<=o?1:o+26<=D?26:D-o;if(R<j)break;var O=R-j,I=36-j;r.push(k(T(j+O%I,0))),R=C(O/I)}r.push(k(T(R,0))),o=q(s,w,f==d),s=0,++f}}}catch(e){S=!0,_=e}finally{try{!b&&x.return&&x.return()}finally{if(S)throw _}}++s,++a}return r.join("")}var v={version:"2.1.0",ucs2:{decode:z,encode:function(e){return String.fromCodePoint.apply(String,function(e){if(Array.isArray(e)){for(var r=0,t=Array(e.length);r<e.length;r++)t[r]=e[r];return t}return Array.from(e)}(e))}},decode:l,encode:c,toASCII:function(e){return n(e,function(e){return s.test(e)?"xn--"+c(e):e})},toUnicode:function(e){return n(e,function(e){return t.test(e)?l(e.slice(4).toLowerCase()):e})}},d={};function m(e){var r=e.charCodeAt(0);return r<16?"%0"+r.toString(16).toUpperCase():r<128?"%"+r.toString(16).toUpperCase():r<2048?"%"+(r>>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function f(e){for(var r="",t=0,a=e.length;t<a;){var s=parseInt(e.substr(t+1,2),16);if(s<128)r+=String.fromCharCode(s),t+=3;else if(194<=s&&s<224){if(6<=a-t){var o=parseInt(e.substr(t+4,2),16);r+=String.fromCharCode((31&s)<<6|63&o)}else r+=e.substr(t,6);t+=6}else if(224<=s){if(9<=a-t){var i=parseInt(e.substr(t+4,2),16),n=parseInt(e.substr(t+7,2),16);r+=String.fromCharCode((15&s)<<12|(63&i)<<6|63&n)}else r+=e.substr(t,9);t+=9}else r+=e.substr(t,3),t+=3}return r}function y(e,t){function r(e){var r=f(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,m).replace(t.PCT_ENCODED,p)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,m).replace(t.PCT_ENCODED,p)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,m).replace(t.PCT_ENCODED,p)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,m).replace(t.PCT_ENCODED,p)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,m).replace(t.PCT_ENCODED,p)),e}function b(e){return e.replace(/^0*(.*)/,"$1")||"0"}function S(e,r){var t=e.match(r.IPV4ADDRESS)||[],a=w(t,2)[1];return a?a.split(".").map(b).join("."):e}function g(e,r){var t=e.match(r.IPV6ADDRESS)||[],a=w(t,3),s=a[1],o=a[2];if(s){for(var i=s.toLowerCase().split("::").reverse(),n=w(i,2),l=n[0],c=n[1],u=c?c.split(":").map(b):[],h=l.split(":").map(b),d=r.IPV4ADDRESS.test(h[h.length-1]),f=d?7:8,p=h.length-f,m=Array(f),v=0;v<f;++v)m[v]=u[v]||h[p+v]||"";d&&(m[f-1]=S(m[f-1],r));var y=m.reduce(function(e,r,t){if(!r||"0"===r){var a=e[e.length-1];a&&a.index+a.length===t?a.length++:e.push({index:t,length:1})}return e},[]).sort(function(e,r){return r.length-e.length})[0],g=void 0;if(y&&1<y.length){var P=m.slice(0,y.index),E=m.slice(y.index+y.length);g=P.join(":")+"::"+E.join(":")}else g=m.join(":");return o&&(g+="%"+o),g}return e}var P=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,E=void 0==="".match(/(){0}/)[1];function _(e){var r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},t={},a=!1!==r.iri?h:u;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);var s=e.match(P);if(s){E?(t.scheme=s[1],t.userinfo=s[3],t.host=s[4],t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=s[7],t.fragment=s[8],isNaN(t.port)&&(t.port=s[5])):(t.scheme=s[1]||void 0,t.userinfo=-1!==e.indexOf("@")?s[3]:void 0,t.host=-1!==e.indexOf("//")?s[4]:void 0,t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=-1!==e.indexOf("?")?s[7]:void 0,t.fragment=-1!==e.indexOf("#")?s[8]:void 0,isNaN(t.port)&&(t.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:void 0)),t.host&&(t.host=g(S(t.host,a),a)),t.reference=void 0!==t.scheme||void 0!==t.userinfo||void 0!==t.host||void 0!==t.port||t.path||void 0!==t.query?void 0===t.scheme?"relative":void 0===t.fragment?"absolute":"uri":"same-document",r.reference&&"suffix"!==r.reference&&r.reference!==t.reference&&(t.error=t.error||"URI is not a "+r.reference+" reference.");var o=d[(r.scheme||t.scheme||"").toLowerCase()];if(r.unicodeSupport||o&&o.unicodeSupport)y(t,a);else{if(t.host&&(r.domainHost||o&&o.domainHost))try{t.host=v.toASCII(t.host.replace(a.PCT_ENCODED,f).toLowerCase())}catch(e){t.error=t.error||"Host's domain name can not be converted to ASCII via punycode: "+e}y(t,u)}o&&o.parse&&o.parse(t,r)}else t.error=t.error||"URI can not be parsed.";return t}var F=/^\.\.?\//,x=/^\/\.(\/|$)/,$=/^\/\.\.(\/|$)/,R=/^\/?(?:.|\n)*?(?=\/|$)/;function D(e){for(var r=[];e.length;)if(e.match(F))e=e.replace(F,"");else if(e.match(x))e=e.replace(x,"/");else if(e.match($))e=e.replace($,"/"),r.pop();else if("."===e||".."===e)e="";else{var t=e.match(R);if(!t)throw new Error("Unexpected dot segment condition");var a=t[0];e=e.slice(a.length),r.push(a)}return r.join("")}function j(r){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=t.iri?h:u,a=[],s=d[(t.scheme||r.scheme||"").toLowerCase()];if(s&&s.serialize&&s.serialize(r,t),r.host&&!e.IPV6ADDRESS.test(r.host)&&(t.domainHost||s&&s.domainHost))try{r.host=t.iri?v.toUnicode(r.host):v.toASCII(r.host.replace(e.PCT_ENCODED,f).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+e}y(r,e),"suffix"!==t.reference&&r.scheme&&(a.push(r.scheme),a.push(":"));var o,i,n,l=(i=!1!==t.iri?h:u,n=[],void 0!==(o=r).userinfo&&(n.push(o.userinfo),n.push("@")),void 0!==o.host&&n.push(g(S(String(o.host),i),i).replace(i.IPV6ADDRESS,function(e,r,t){return"["+r+(t?"%25"+t:"")+"]"})),"number"==typeof o.port&&(n.push(":"),n.push(o.port.toString(10))),n.length?n.join(""):void 0);if(void 0!==l&&("suffix"!==t.reference&&a.push("//"),a.push(l),r.path&&"/"!==r.path.charAt(0)&&a.push("/")),void 0!==r.path){var c=r.path;t.absolutePath||s&&s.absolutePath||(c=D(c)),void 0===l&&(c=c.replace(/^\/\//,"/%2F")),a.push(c)}return void 0!==r.query&&(a.push("?"),a.push(r.query)),void 0!==r.fragment&&(a.push("#"),a.push(r.fragment)),a.join("")}function O(e,r){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},a={};return arguments[3]||(e=_(j(e,t),t),r=_(j(r,t),t)),!(t=t||{}).tolerant&&r.scheme?(a.scheme=r.scheme,a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=D(r.path||""),a.query=r.query):(void 0!==r.userinfo||void 0!==r.host||void 0!==r.port?(a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=D(r.path||""),a.query=r.query):(r.path?("/"===r.path.charAt(0)?a.path=D(r.path):(a.path=void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?e.path.slice(0,e.path.lastIndexOf("/")+1)+r.path:r.path:"/"+r.path,a.path=D(a.path)),a.query=r.query):(a.path=e.path,a.query=void 0!==r.query?r.query:e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=r.fragment,a}function I(e,r){return e&&e.toString().replace(r&&r.iri?h.PCT_ENCODED:u.PCT_ENCODED,f)}var N={scheme:"http",domainHost:!0,parse:function(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e){return e.port!==("https"!==String(e.scheme).toLowerCase()?80:443)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},Q={scheme:"https",domainHost:N.domainHost,parse:N.parse,serialize:N.serialize},U={},V="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",H="[0-9A-Fa-f]",K=(Z(Z("%[EFef]"+H+"%"+H+H+"%"+H+H)+"|"+Z("%[89A-Fa-f]"+H+"%"+H+H)+"|"+Z("%"+H+H)),J("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]')),M=new RegExp(V,"g"),B=new RegExp("(?:(?:%[EFef][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f])|(?:%[89A-Fa-f][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f])|(?:%[0-9A-Fa-f][0-9A-Fa-f]))","g"),G=new RegExp(J("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',K),"g"),Y=new RegExp(J("[^]",V,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),W=Y;function X(e){var r=f(e);return r.match(M)?r:e}var ee={scheme:"mailto",parse:function(e,r){var t=e,a=t.to=t.path?t.path.split(","):[];if(t.path=void 0,t.query){for(var s=!1,o={},i=t.query.split("&"),n=0,l=i.length;n<l;++n){var c=i[n].split("=");switch(c[0]){case"to":for(var u=c[1].split(","),h=0,d=u.length;h<d;++h)a.push(u[h]);break;case"subject":t.subject=I(c[1],r);break;case"body":t.body=I(c[1],r);break;default:s=!0,o[I(c[0],r)]=I(c[1],r)}}s&&(t.headers=o)}t.query=void 0;for(var f=0,p=a.length;f<p;++f){var m=a[f].split("@");if(m[0]=I(m[0]),r.unicodeSupport)m[1]=I(m[1],r).toLowerCase();else try{m[1]=v.toASCII(I(m[1],r).toLowerCase())}catch(e){t.error=t.error||"Email address's domain name can not be converted to ASCII via punycode: "+e}a[f]=m.join("@")}return t},serialize:function(e,r){var t,a=e,s=null!=(t=e.to)?t instanceof Array?t:"number"!=typeof t.length||t.split||t.setInterval||t.call?[t]:Array.prototype.slice.call(t):[];if(s){for(var o=0,i=s.length;o<i;++o){var n=String(s[o]),l=n.lastIndexOf("@"),c=n.slice(0,l).replace(B,X).replace(B,p).replace(G,m),u=n.slice(l+1);try{u=r.iri?v.toUnicode(u):v.toASCII(I(u,r).toLowerCase())}catch(e){a.error=a.error||"Email address's domain name can not be converted to "+(r.iri?"Unicode":"ASCII")+" via punycode: "+e}s[o]=c+"@"+u}a.path=s.join(",")}var h=e.headers=e.headers||{};e.subject&&(h.subject=e.subject),e.body&&(h.body=e.body);var d=[];for(var f in h)h[f]!==U[f]&&d.push(f.replace(B,X).replace(B,p).replace(Y,m)+"="+h[f].replace(B,X).replace(B,p).replace(W,m));return d.length&&(a.query=d.join("&")),a}},re=/^([^\:]+)\:(.*)/,te={scheme:"urn",parse:function(e,r){var t=e.path&&e.path.match(re),a=e;if(t){var s=r.scheme||a.scheme||"urn",o=t[1].toLowerCase(),i=t[2],n=d[s+":"+(r.nid||o)];a.nid=o,a.nss=i,a.path=void 0,n&&(a=n.parse(a,r))}else a.error=a.error||"URN can not be parsed.";return a},serialize:function(e,r){var t=e.nid,a=d[(r.scheme||e.scheme||"urn")+":"+(r.nid||t)];a&&(e=a.serialize(e,r));var s=e;return s.path=(t||r.nid)+":"+e.nss,s}},ae=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,se={scheme:"urn:uuid",parse:function(e,r){var t=e;return t.uuid=t.nss,t.nss=void 0,r.tolerant||t.uuid&&t.uuid.match(ae)||(t.error=t.error||"UUID is not valid."),t},serialize:function(e){var r=e;return r.nss=(e.uuid||"").toLowerCase(),r}};d[N.scheme]=N,d[Q.scheme]=Q,d[ee.scheme]=ee,d[te.scheme]=te,d[se.scheme]=se,e.SCHEMES=d,e.pctEncChar=m,e.pctDecChars=f,e.parse=_,e.removeDotSegments=D,e.serialize=j,e.resolveComponents=O,e.resolve=function(e,r,t){var a=function(e,r){var t=e;if(r)for(var a in r)t[a]=r[a];return t}({scheme:"null"},t);return j(O(_(e,a),_(r,a),a,!0),a)},e.normalize=function(e,r){return"string"==typeof e?e=j(_(e,r),r):"object"===a(e)&&(e=_(j(e,r),r)),e},e.equal=function(e,r,t){return"string"==typeof e?e=j(_(e,t),t):"object"===a(e)&&(e=j(e,t)),"string"==typeof r?r=j(_(r,t),t):"object"===a(r)&&(r=j(r,t)),e===r},e.escapeComponent=function(e,r){return e&&e.toString().replace(r&&r.iri?h.ESCAPE:u.ESCAPE,m)},e.unescapeComponent=I,Object.defineProperty(e,"__esModule",{value:!0})}("object"==typeof t&&void 0!==r?t:a.URI=a.URI||{})},{}],ajv:[function(a,e,r){"use strict";var n=a("./compile"),d=a("./compile/resolve"),t=a("./cache"),f=a("./compile/schema_obj"),s=a("fast-json-stable-stringify"),o=a("./compile/formats"),i=a("./compile/rules"),l=a("./data"),c=a("./compile/util");(e.exports=y).prototype.validate=function(e,r){var t;if("string"==typeof e){if(!(t=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var a=this._addSchema(e);t=a.validate||this._compile(a)}var s=t(r);!0!==t.$async&&(this.errors=t.errors);return s},y.prototype.compile=function(e,r){var t=this._addSchema(e,void 0,r);return t.validate||this._compile(t)},y.prototype.addSchema=function(e,r,t,a){if(Array.isArray(e)){for(var s=0;s<e.length;s++)this.addSchema(e[s],void 0,t,a);return this}var o=this._getId(e);if(void 0!==o&&"string"!=typeof o)throw new Error("schema id must be string");return S(this,r=d.normalizeId(r||o)),this._schemas[r]=this._addSchema(e,t,a,!0),this},y.prototype.addMetaSchema=function(e,r,t){return this.addSchema(e,r,t,!0),this},y.prototype.validateSchema=function(e,r){var t=e.$schema;if(void 0!==t&&"string"!=typeof t)throw new Error("$schema must be a string");if(!(t=t||this._opts.defaultMeta||function(e){var r=e._opts.meta;return e._opts.defaultMeta="object"==typeof r?e._getId(r)||r:e.getSchema(p)?p:void 0,e._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),!(this.errors=null);var a=this.validate(t,e);if(!a&&r){var s="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(s);this.logger.error(s)}return a},y.prototype.getSchema=function(e){var r=g(this,e);switch(typeof r){case"object":return r.validate||this._compile(r);case"string":return this.getSchema(r);case"undefined":return function(e,r){var t=d.schema.call(e,{schema:{}},r);if(t){var a=t.schema,s=t.root,o=t.baseId,i=n.call(e,a,s,void 0,o);return e._fragments[r]=new f({ref:r,fragment:!0,schema:a,root:s,baseId:o,validate:i}),i}}(this,e)}},y.prototype.removeSchema=function(e){if(e instanceof RegExp)return P(this,this._schemas,e),P(this,this._refs,e),this;switch(typeof e){case"undefined":return P(this,this._schemas),P(this,this._refs),this._cache.clear(),this;case"string":var r=g(this,e);return r&&this._cache.del(r.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":var t=this._opts.serialize,a=t?t(e):e;this._cache.del(a);var s=this._getId(e);s&&(s=d.normalizeId(s),delete this._schemas[s],delete this._refs[s])}return this},y.prototype.addFormat=function(e,r){"string"==typeof r&&(r=new RegExp(r));return this._formats[e]=r,this},y.prototype.errorsText=function(e,r){if(!(e=e||this.errors))return"No errors";for(var t=void 0===(r=r||{}).separator?", ":r.separator,a=void 0===r.dataVar?"data":r.dataVar,s="",o=0;o<e.length;o++){var i=e[o];i&&(s+=a+i.dataPath+" "+i.message+t)}return s.slice(0,-t.length)},y.prototype._addSchema=function(e,r,t,a){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var s=this._opts.serialize,o=s?s(e):e,i=this._cache.get(o);if(i)return i;a=a||!1!==this._opts.addUsedSchema;var n=d.normalizeId(this._getId(e));n&&a&&S(this,n);var l,c=!1!==this._opts.validateSchema&&!r;c&&!(l=n&&n==d.normalizeId(e.$schema))&&this.validateSchema(e,!0);var u=d.ids.call(this,e),h=new f({id:n,schema:e,localRefs:u,cacheKey:o,meta:t});"#"!=n[0]&&a&&(this._refs[n]=h);this._cache.put(o,h),c&&l&&this.validateSchema(e,!0);return h},y.prototype._compile=function(t,e){if(t.compiling)return(t.validate=s).schema=t.schema,s.errors=null,s.root=e||s,!0===t.schema.$async&&(s.$async=!0),s;var r,a;t.compiling=!0,t.meta&&(r=this._opts,this._opts=this._metaOpts);try{a=n.call(this,t.schema,e,t.localRefs)}catch(e){throw delete t.validate,e}finally{t.compiling=!1,t.meta&&(this._opts=r)}return t.validate=a,t.refs=a.refs,t.refVal=a.refVal,t.root=a.root,a;function s(){var e=t.validate,r=e.apply(this,arguments);return s.errors=e.errors,r}},y.prototype.compileAsync=a("./compile/async");var u=a("./keyword");y.prototype.addKeyword=u.add,y.prototype.getKeyword=u.get,y.prototype.removeKeyword=u.remove,y.prototype.validateKeyword=u.validate;var h=a("./compile/error_classes");y.ValidationError=h.Validation,y.MissingRefError=h.MissingRef,y.$dataMetaSchema=l;var p="http://json-schema.org/draft-07/schema",m=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],v=["/properties"];function y(e){if(!(this instanceof y))return new y(e);e=this._opts=c.copy(e)||{},function(e){var r=e._opts.logger;if(!1===r)e.logger={log:_,warn:_,error:_};else{if(void 0===r&&(r=console),!("object"==typeof r&&r.log&&r.warn&&r.error))throw new Error("logger must implement log, warn and error methods");e.logger=r}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=o(e.format),this._cache=e.cache||new t,this._loadingSchemas={},this._compilations=[],this.RULES=i(),this._getId=function(e){switch(e.schemaId){case"auto":return b;case"id":return E;default:return w}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=s),this._metaOpts=function(e){for(var r=c.copy(e._opts),t=0;t<m.length;t++)delete r[m[t]];return r}(this),e.formats&&function(e){for(var r in e._opts.formats){e.addFormat(r,e._opts.formats[r])}}(this),e.keywords&&function(e){for(var r in e._opts.keywords){e.addKeyword(r,e._opts.keywords[r])}}(this),function(e){var r;e._opts.$data&&(r=a("./refs/data.json"),e.addMetaSchema(r,r.$id,!0));if(!1===e._opts.meta)return;var t=a("./refs/json-schema-draft-07.json");e._opts.$data&&(t=l(t,v));e.addMetaSchema(t,p,!0),e._refs["http://json-schema.org/schema"]=p}(this),"object"==typeof e.meta&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),function(e){var r=e._opts.schemas;if(!r)return;if(Array.isArray(r))e.addSchema(r);else for(var t in r)e.addSchema(r[t],t)}(this)}function g(e,r){return r=d.normalizeId(r),e._schemas[r]||e._refs[r]||e._fragments[r]}function P(e,r,t){for(var a in r){var s=r[a];s.meta||t&&!t.test(a)||(e._cache.del(s.cacheKey),delete r[a])}}function E(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function w(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function b(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function S(e,r){if(e._schemas[r]||e._refs[r])throw new Error('schema with key or id "'+r+'" already exists')}function _(){}},{"./cache":1,"./compile":5,"./compile/async":2,"./compile/error_classes":3,"./compile/formats":4,"./compile/resolve":6,"./compile/rules":7,"./compile/schema_obj":8,"./compile/util":10,"./data":11,"./keyword":39,"./refs/data.json":40,"./refs/json-schema-draft-07.json":41,"fast-json-stable-stringify":43}]},{},[])("ajv")});
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/ajv/dist/ajv.min.js-3-//# sourceMappingURL=ajv.min.js.map
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-89-  } else if (opts.errorOnExist) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js:90:    return cb(new Error(`'${dest}' already exists`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-91-  } else return cb()
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-126-  if (destStat && !destStat.isDirectory()) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js:127:    return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-128-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-189-        if (isSrcSubdir(resolvedSrc, resolvedDest)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js:190:          return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-191-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-196-        if (destStat.isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js:197:          return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-198-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-239-    if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js:240:      return cb(new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy/copy.js-241-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/move-sync/index.js-18-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/move-sync/index.js:19:  if (isSrcSubdir(src, dest)) throw new Error(`Cannot move '${src}' into itself '${dest}'.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/move-sync/index.js-20-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/move/index.js-27-    if (st.isDirectory() && isSrcSubdir(src, dest)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/move/index.js:28:      return cb(new Error(`Cannot move '${src}' to a subdirectory of itself, '${dest}'.`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/move/index.js-29-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-59-  } else if (opts.errorOnExist) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js:60:    throw new Error(`'${dest}' already exists`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-61-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-98-  if (destStat && !destStat.isDirectory()) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js:99:    throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-100-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-144-    if (isSrcSubdir(resolvedSrc, resolvedDest)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js:145:      throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-146-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-151-    if (fs.statSync(dest).isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js:152:      throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-153-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-187-  if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js:188:    throw new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/fs-extra/lib/copy-sync/copy-sync.js-189-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-parser/index.js-787-        !checkAllAliases(key, flags.counts) &&
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-parser/index.js:788:        `${key}` in defaults) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/yargs-parser/index.js-789-      return defaults[key]
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/wrap-ansi/index.js-12-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/wrap-ansi/index.js:13:const wrapAnsi = code => `${ESCAPES.values().next().value}[${code}m`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/wrap-ansi/index.js-14-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/emoji-regex/README.md-34-  const emoji = match[0];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/emoji-regex/README.md:35:  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/wrap-ansi/node_modules/emoji-regex/README.md-36-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/convert.js-7-tape('convert from BufferList to BufferListStream', (t) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/convert.js:8:  const data = Buffer.from(`TEST-${Date.now()}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/convert.js-9-  const bl = new BufferList(data)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/convert.js-15-tape('convert from BufferListStream to BufferList', (t) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/convert.js:16:  const data = Buffer.from(`TEST-${Date.now()}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/convert.js-17-  const bls = new BufferListStream(data)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-287-    let index = twoByteString.indexOf('\u0391', 0, 'ucs2')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:288:    t.equal(2, index, `Alpha - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-289-    index = twoByteString.indexOf('\u03a3', 0, 'ucs2')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:290:    t.equal(4, index, `First Sigma - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-291-    index = twoByteString.indexOf('\u03a3', 6, 'ucs2')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:292:    t.equal(6, index, `Second Sigma - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-293-    index = twoByteString.indexOf('\u0395', 0, 'ucs2')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:294:    t.equal(8, index, `Epsilon - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-295-    index = twoByteString.indexOf('\u0392', 0, 'ucs2')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:296:    t.equal(-1, index, `Not beta - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-297-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-299-    index = twoByteString.indexOf('\u039a\u0391', 0, 'ucs2')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:300:    t.equal(0, index, `Lambda Alpha - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-301-    index = twoByteString.indexOf('\u0391\u03a3', 0, 'ucs2')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:302:    t.equal(2, index, `Alpha Sigma - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-303-    index = twoByteString.indexOf('\u03a3\u03a3', 0, 'ucs2')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:304:    t.equal(4, index, `Sigma Sigma - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-305-    index = twoByteString.indexOf('\u03a3\u0395', 0, 'ucs2')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:306:    t.equal(6, index, `Sigma Epsilon - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-307-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-330-    t.equal((i + 15) & ~0xf, index,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:331:      `Long ABACABA...-string at index ${i}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-332-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-334-  let index = longBufferString.indexOf('AJABACA')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:335:  t.equal(510, index, `Long AJABACA, First J - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-336-  index = longBufferString.indexOf('AJABACA', 511)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:337:  t.equal(1534, index, `Long AJABACA, Second J - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-338-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-340-  index = longBufferString.indexOf(pattern)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:341:  t.equal(511, index, `Long JABACABA..., First J - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-342-  index = longBufferString.indexOf(pattern, 512)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-343-  t.equal(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:344:    1535, index, `Long JABACABA..., Second J - at index ${index}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-345-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-432-  ].forEach((val) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js:433:    t.throws(() => b.indexOf(val), TypeError, `"${JSON.stringify(val)}" should throw`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/bl/test/indexOf.js-434-  })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/es-to-primitive/Makefile-8-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/es-to-primitive/Makefile:9:# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/es-to-primitive/Makefile-10-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/es-to-primitive/Makefile-50-	@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/es-to-primitive/Makefile:51:	 new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/es-to-primitive/Makefile-52-	 if printf "$$new_ver" | command grep -q '^[0-9]'; then \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/es-to-primitive/Makefile-55-	 else \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/es-to-primitive/Makefile:56:	   new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/es-to-primitive/Makefile-57-	 fi; \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toIdentifier.js-20-  if (!(0, _isValidIdentifier.default)(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toIdentifier.js:21:    name = `_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toIdentifier.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toExpression.js-25-  if (!(0, _generated.isExpression)(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toExpression.js:26:    throw new Error(`cannot turn ${node.type} to an expression`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toExpression.js-27-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toKeyAlias.js-29-  if (node.computed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toKeyAlias.js:30:    alias = `[${alias}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toKeyAlias.js-31-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toKeyAlias.js-33-  if (node.static) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toKeyAlias.js:34:    alias = `static:${alias}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toKeyAlias.js-35-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toStatement.js-37-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toStatement.js:38:      throw new Error(`cannot turn ${node.type} to a statement`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/converters/toStatement.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-100-    for (let i = 0; i < val.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js:101:      const subkey = `${key}[${i}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-102-      const v = val[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-114-    if (values.indexOf(val) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js:115:      throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-116-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-131-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js:132:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js:148:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-149-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-159-    if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js:160:      throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-161-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-185-    if (errors.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js:186:      throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-187-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-219-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js:220:    throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-221-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-266-    if (validTypeOpts.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js:267:      throw new Error(`Unknown type option "${k}" on ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-293-      if (validFieldKeys.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js:294:        throw new Error(`Unknown field key "${k}" on ${type}.${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/utils.js-295-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/es2015.js-440-        if (node.quasis.length !== val.length + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/es2015.js:441:          throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/es2015.js-442-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-347-        if (!(0, _isValidIdentifier.default)(val, false)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js:348:          throw new TypeError(`"${val}" is not a valid identifier name`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-349-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-385-    if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name)) && node.name !== "this") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js:386:      throw new TypeError(`"${node.name}" is not a valid identifier`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-387-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-463-        if (invalid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js:464:          throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-465-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-654-    if (parent[listKey].length > index + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js:655:      throw new TypeError(`RestElement must be last element of ${listKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-656-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-802-    if (node.declarations.length !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js:803:      throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/definitions/core.js-804-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/asserts/assertNode.js-14-    const type = node && node.type || JSON.stringify(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/asserts/assertNode.js:15:    throw new TypeError(`Not a valid node of type "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/asserts/assertNode.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/asserts/generated/index.js-297-  if (!(0, _is.default)(type, node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/asserts/generated/index.js:298:    throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/asserts/generated/index.js-299-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/comments/addComments.js-9-  if (!comments || !node) return node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/comments/addComments.js:10:  const key = `${type}Comments`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/comments/addComments.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/builders/builder.js-20-  if (countArgs > keys.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/builders/builder.js:21:    throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/builders/builder.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/clone/cloneNode.js-47-  } else if (!has(_definitions.NODE_FIELDS, type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/clone/cloneNode.js:48:    throw new Error(`Unknown node type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/lib/clone/cloneNode.js-49-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js-16-writeFile(buildersFile, format(generateBuilders(), buildersFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js:17:console.log(`  ${chalk.green("✔")} Generated builders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js-18-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js-20-writeFile(validatorsFile, format(generateValidators(), validatorsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js:21:console.log(`  ${chalk.green("✔")} Generated validators`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js-22-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js-24-writeFile(assertsFile, format(generateAsserts(), assertsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js:25:console.log(`  ${chalk.green("✔")} Generated asserts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js-28-writeFile(constantsFile, format(generateConstants(), constantsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generateTypeHelpers.js:29:console.log(`  ${chalk.green("✔")} Generated constants`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/docs.js-86-        if (customTypes[key] && customTypes[key][field]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/docs.js:87:          fieldDescription.push(`: ${customTypes[key][field]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/docs.js-88-        } else if (validator) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateBuilders.js-21-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateBuilders.js:22:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateBuilders.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateBuilders.js-37-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateBuilders.js:38:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateBuilders.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateAsserts.js-20-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateAsserts.js:21:      \`Expected type "\${type}" with option \${JSON.stringify((opts: any))}, \` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateAsserts.js:22:        \`but instead got "\${node.type}".\`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateAsserts.js-23-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateConstants.js-12-  Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateConstants.js:13:    output += `export const ${type.toUpperCase()}_TYPES = FLIPPED_ALIAS_KEYS["${type}"];\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateConstants.js-14-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-109-      )}): ${NODE_PREFIX}${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:110:      `declare export { _${functionName} as ${functionName} }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-111-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-115-for (let i = 0; i < t.TYPES.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:116:  let decl = `declare function is${t.TYPES[i]}(node: ?Object, opts?: ?Object): boolean`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-117-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-118-  if (t.NODE_FIELDS[t.TYPES[i]]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:119:    decl += ` %checks (node instanceof ${NODE_PREFIX}${t.TYPES[i]})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-120-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-127-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:128:  `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-129-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:130:  `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-131-  // this smells like "internal API"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-132-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:133:  `declare function buildChildren(node: { children: Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment | ${NODE_PREFIX}JSXEmptyExpression> }): Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-134-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-154-  // converters/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:155:  `declare function ensureBlock(node: ${NODE_PREFIX}, key: string): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-156-  `declare function toBindingIdentifierName(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-157-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:158:  `declare function toBlock(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Expression, parent?: ${NODE_PREFIX}Function | null): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-159-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:160:  `declare function toComputedKey(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}Expression | ${NODE_PREFIX}Identifier): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-161-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:162:  `declare function toExpression(node: ${NODE_PREFIX}ExpressionStatement | ${NODE_PREFIX}Expression | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-163-  `declare function toIdentifier(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-164-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:165:  `declare function toKeyAlias(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-166-  // toSequenceExpression relies on types that aren't declared in flow
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-167-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:168:  `declare function toStatement(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function | ${NODE_PREFIX}AssignmentExpression, ignore?: boolean): ${NODE_PREFIX}Statement | void`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:169:  `declare function valueToNode(value: any): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-172-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:173:  `declare function removeTypeDuplicates(types: Array<${NODE_PREFIX}FlowType>): Array<${NODE_PREFIX}FlowType>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-174-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:175:  `declare function appendToMemberExpression(member: ${NODE_PREFIX}MemberExpression, append: ${NODE_PREFIX}, computed?: boolean): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-176-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:177:  `declare function inherits<T: Node>(child: T, parent: ${NODE_PREFIX} | null | void): T`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-178-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:179:  `declare function prependToMemberExpression(member: ${NODE_PREFIX}MemberExpression, prepend: ${NODE_PREFIX}Expression): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-180-  `declare function removeProperties<T>(n: T, opts: ?{}): void;`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-184-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:185:  `declare function getBindingIdentifiers(node: ${NODE_PREFIX}, duplicates: boolean, outerOnly?: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-186-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:187:  `declare function getOuterBindingIdentifiers(node: Node, duplicates: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-188-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-235-  code += `type ${NODE_PREFIX}${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js:236:    .map(type => `${NODE_PREFIX}${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/flow.js-237-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateValidators.js-7-  return (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateValidators.js:8:    leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateValidators.js-9-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateValidators.js-72-    const newType = definitions.DEPRECATED_KEYS[type];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateValidators.js:73:    const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/generateValidators.js-74-    output += addIsHelper(type, null, deprecated);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-97-    if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:98:      struct.push(`${fieldName}: ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-99-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:100:      struct.push(`"${fieldName}": ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-101-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-110-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:111:      `export function ${toFunctionName(type)}(${args.join(", ")}): ${type};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-112-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-115-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:116:      `declare function _${functionName}(${args.join(", ")}): ${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:117:      `export { _${functionName} as ${functionName}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-118-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-124-    t.NODE_FIELDS[typeName] || t.FLIPPED_ALIAS_KEYS[typeName]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:125:      ? `node is ${typeName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-126-      : "boolean";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-128-  lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:129:    `export function is${typeName}(node: object | null | undefined, opts?: object | null): ${result};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-130-    // TypeScript 3.7: https://github.com/microsoft/TypeScript/pull/32695 will allow assert declarations
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-311-  code += `/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:312: * @deprecated Use \`${t.DEPRECATED_KEYS[type]}\`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-313- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-320-  code += `export type ${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:321:    .map(type => `${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-322-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-327-for (const type in t.FLIPPED_ALIAS_KEYS) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js:328:  code += `  ${type}: ${type};\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/generators/typescript.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/utils/stringifyValidator.js-6-  if (validator.each) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/utils/stringifyValidator.js:7:    return `Array<${stringifyValidator(validator.each, nodePrefix)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types/scripts/utils/stringifyValidator.js-8-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js-115-    const number = start + 1 + index;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js:116:    const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js:117:    const gutter = ` ${paddedNumber} | `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js-118-    const hasMarker = markerLines[number];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js-135-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js:136:      return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js-137-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js-140-  if (opts.message && !hasColumns) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js:141:    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/code-frame/lib/index.js-142-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toIdentifier.js-20-  if (!(0, _isValidIdentifier.default)(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toIdentifier.js:21:    name = `_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toIdentifier.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toExpression.js-25-  if (!(0, _generated.isExpression)(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toExpression.js:26:    throw new Error(`cannot turn ${node.type} to an expression`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toExpression.js-27-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toKeyAlias.js-29-  if (node.computed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toKeyAlias.js:30:    alias = `[${alias}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toKeyAlias.js-31-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toKeyAlias.js-33-  if (node.static) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toKeyAlias.js:34:    alias = `static:${alias}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toKeyAlias.js-35-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toStatement.js-37-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toStatement.js:38:      throw new Error(`cannot turn ${node.type} to a statement`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/converters/toStatement.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-100-    for (let i = 0; i < val.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js:101:      const subkey = `${key}[${i}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-102-      const v = val[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-114-    if (values.indexOf(val) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js:115:      throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-116-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-131-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js:132:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js:148:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-149-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-159-    if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js:160:      throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-161-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-185-    if (errors.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js:186:      throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-187-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-219-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js:220:    throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-221-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-266-    if (validTypeOpts.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js:267:      throw new Error(`Unknown type option "${k}" on ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-293-      if (validFieldKeys.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js:294:        throw new Error(`Unknown field key "${k}" on ${type}.${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/utils.js-295-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/es2015.js-440-        if (node.quasis.length !== val.length + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/es2015.js:441:          throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/es2015.js-442-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-347-        if (!(0, _isValidIdentifier.default)(val, false)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js:348:          throw new TypeError(`"${val}" is not a valid identifier name`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-349-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-385-    if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name)) && node.name !== "this") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js:386:      throw new TypeError(`"${node.name}" is not a valid identifier`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-387-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-463-        if (invalid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js:464:          throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-465-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-654-    if (parent[listKey].length > index + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js:655:      throw new TypeError(`RestElement must be last element of ${listKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-656-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-802-    if (node.declarations.length !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js:803:      throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/definitions/core.js-804-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/asserts/assertNode.js-14-    const type = node && node.type || JSON.stringify(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/asserts/assertNode.js:15:    throw new TypeError(`Not a valid node of type "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/asserts/assertNode.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/asserts/generated/index.js-297-  if (!(0, _is.default)(type, node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/asserts/generated/index.js:298:    throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/asserts/generated/index.js-299-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/comments/addComments.js-9-  if (!comments || !node) return node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/comments/addComments.js:10:  const key = `${type}Comments`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/comments/addComments.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/builders/builder.js-20-  if (countArgs > keys.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/builders/builder.js:21:    throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/builders/builder.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/clone/cloneNode.js-47-  } else if (!has(_definitions.NODE_FIELDS, type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/clone/cloneNode.js:48:    throw new Error(`Unknown node type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/lib/clone/cloneNode.js-49-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js-16-writeFile(buildersFile, format(generateBuilders(), buildersFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js:17:console.log(`  ${chalk.green("✔")} Generated builders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js-18-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js-20-writeFile(validatorsFile, format(generateValidators(), validatorsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js:21:console.log(`  ${chalk.green("✔")} Generated validators`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js-22-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js-24-writeFile(assertsFile, format(generateAsserts(), assertsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js:25:console.log(`  ${chalk.green("✔")} Generated asserts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js-28-writeFile(constantsFile, format(generateConstants(), constantsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generateTypeHelpers.js:29:console.log(`  ${chalk.green("✔")} Generated constants`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/docs.js-86-        if (customTypes[key] && customTypes[key][field]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/docs.js:87:          fieldDescription.push(`: ${customTypes[key][field]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/docs.js-88-        } else if (validator) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateBuilders.js-21-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateBuilders.js:22:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateBuilders.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateBuilders.js-37-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateBuilders.js:38:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateBuilders.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateAsserts.js-20-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateAsserts.js:21:      \`Expected type "\${type}" with option \${JSON.stringify((opts: any))}, \` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateAsserts.js:22:        \`but instead got "\${node.type}".\`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateAsserts.js-23-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateConstants.js-12-  Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateConstants.js:13:    output += `export const ${type.toUpperCase()}_TYPES = FLIPPED_ALIAS_KEYS["${type}"];\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateConstants.js-14-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-109-      )}): ${NODE_PREFIX}${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:110:      `declare export { _${functionName} as ${functionName} }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-111-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-115-for (let i = 0; i < t.TYPES.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:116:  let decl = `declare function is${t.TYPES[i]}(node: ?Object, opts?: ?Object): boolean`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-117-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-118-  if (t.NODE_FIELDS[t.TYPES[i]]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:119:    decl += ` %checks (node instanceof ${NODE_PREFIX}${t.TYPES[i]})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-120-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-127-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:128:  `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-129-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:130:  `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-131-  // this smells like "internal API"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-132-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:133:  `declare function buildChildren(node: { children: Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment | ${NODE_PREFIX}JSXEmptyExpression> }): Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-134-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-154-  // converters/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:155:  `declare function ensureBlock(node: ${NODE_PREFIX}, key: string): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-156-  `declare function toBindingIdentifierName(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-157-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:158:  `declare function toBlock(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Expression, parent?: ${NODE_PREFIX}Function | null): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-159-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:160:  `declare function toComputedKey(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}Expression | ${NODE_PREFIX}Identifier): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-161-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:162:  `declare function toExpression(node: ${NODE_PREFIX}ExpressionStatement | ${NODE_PREFIX}Expression | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-163-  `declare function toIdentifier(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-164-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:165:  `declare function toKeyAlias(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-166-  // toSequenceExpression relies on types that aren't declared in flow
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-167-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:168:  `declare function toStatement(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function | ${NODE_PREFIX}AssignmentExpression, ignore?: boolean): ${NODE_PREFIX}Statement | void`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:169:  `declare function valueToNode(value: any): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-172-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:173:  `declare function removeTypeDuplicates(types: Array<${NODE_PREFIX}FlowType>): Array<${NODE_PREFIX}FlowType>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-174-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:175:  `declare function appendToMemberExpression(member: ${NODE_PREFIX}MemberExpression, append: ${NODE_PREFIX}, computed?: boolean): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-176-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:177:  `declare function inherits<T: Node>(child: T, parent: ${NODE_PREFIX} | null | void): T`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-178-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:179:  `declare function prependToMemberExpression(member: ${NODE_PREFIX}MemberExpression, prepend: ${NODE_PREFIX}Expression): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-180-  `declare function removeProperties<T>(n: T, opts: ?{}): void;`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-184-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:185:  `declare function getBindingIdentifiers(node: ${NODE_PREFIX}, duplicates: boolean, outerOnly?: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-186-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:187:  `declare function getOuterBindingIdentifiers(node: Node, duplicates: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-188-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-235-  code += `type ${NODE_PREFIX}${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js:236:    .map(type => `${NODE_PREFIX}${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/flow.js-237-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateValidators.js-7-  return (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateValidators.js:8:    leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateValidators.js-9-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateValidators.js-72-    const newType = definitions.DEPRECATED_KEYS[type];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateValidators.js:73:    const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/generateValidators.js-74-    output += addIsHelper(type, null, deprecated);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-97-    if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:98:      struct.push(`${fieldName}: ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-99-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:100:      struct.push(`"${fieldName}": ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-101-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-110-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:111:      `export function ${toFunctionName(type)}(${args.join(", ")}): ${type};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-112-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-115-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:116:      `declare function _${functionName}(${args.join(", ")}): ${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:117:      `export { _${functionName} as ${functionName}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-118-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-124-    t.NODE_FIELDS[typeName] || t.FLIPPED_ALIAS_KEYS[typeName]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:125:      ? `node is ${typeName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-126-      : "boolean";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-128-  lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:129:    `export function is${typeName}(node: object | null | undefined, opts?: object | null): ${result};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-130-    // TypeScript 3.7: https://github.com/microsoft/TypeScript/pull/32695 will allow assert declarations
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-311-  code += `/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:312: * @deprecated Use \`${t.DEPRECATED_KEYS[type]}\`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-313- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-320-  code += `export type ${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:321:    .map(type => `${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-322-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-327-for (const type in t.FLIPPED_ALIAS_KEYS) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js:328:  code += `  ${type}: ${type};\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/generators/typescript.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/utils/stringifyValidator.js-6-  if (validator.each) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/utils/stringifyValidator.js:7:    return `Array<${stringifyValidator(validator.each, nodePrefix)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types/scripts/utils/stringifyValidator.js-8-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/is-module.js-13-  if (sourceType !== "module" && sourceType !== "script") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/is-module.js:14:    throw path.buildCodeFrameError(`Unknown sourceType "${sourceType}", cannot transform.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/is-module.js-15-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/import-injector.js-118-    } else if (importedType !== "commonjs") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/import-injector.js:119:      throw new Error(`Unexpected interopType "${importedType}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/import-injector.js-120-    } else if (importedInterop === "babel") {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/import-injector.js-122-        name = name !== "default" ? name : importedSource;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/import-injector.js:123:        const es6Default = `${importedSource}$es6Default`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/import-injector.js-124-        builder.import();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/import-injector.js-234-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/import-injector.js:235:      throw new Error(`Unknown importedInterop "${importedInterop}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/lib/import-injector.js-236-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toIdentifier.js-20-  if (!(0, _isValidIdentifier.default)(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toIdentifier.js:21:    name = `_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toIdentifier.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toExpression.js-25-  if (!(0, _generated.isExpression)(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toExpression.js:26:    throw new Error(`cannot turn ${node.type} to an expression`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toExpression.js-27-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toKeyAlias.js-29-  if (node.computed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toKeyAlias.js:30:    alias = `[${alias}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toKeyAlias.js-31-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toKeyAlias.js-33-  if (node.static) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toKeyAlias.js:34:    alias = `static:${alias}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toKeyAlias.js-35-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toStatement.js-37-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toStatement.js:38:      throw new Error(`cannot turn ${node.type} to a statement`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/converters/toStatement.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-100-    for (let i = 0; i < val.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js:101:      const subkey = `${key}[${i}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-102-      const v = val[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-114-    if (values.indexOf(val) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js:115:      throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-116-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-131-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js:132:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js:148:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-149-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-159-    if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js:160:      throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-161-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-185-    if (errors.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js:186:      throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-187-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-219-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js:220:    throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-221-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-266-    if (validTypeOpts.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js:267:      throw new Error(`Unknown type option "${k}" on ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-293-      if (validFieldKeys.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js:294:        throw new Error(`Unknown field key "${k}" on ${type}.${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/utils.js-295-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/es2015.js-440-        if (node.quasis.length !== val.length + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/es2015.js:441:          throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/es2015.js-442-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-347-        if (!(0, _isValidIdentifier.default)(val, false)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js:348:          throw new TypeError(`"${val}" is not a valid identifier name`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-349-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-385-    if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name)) && node.name !== "this") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js:386:      throw new TypeError(`"${node.name}" is not a valid identifier`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-387-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-463-        if (invalid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js:464:          throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-465-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-654-    if (parent[listKey].length > index + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js:655:      throw new TypeError(`RestElement must be last element of ${listKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-656-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-802-    if (node.declarations.length !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js:803:      throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/definitions/core.js-804-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/asserts/assertNode.js-14-    const type = node && node.type || JSON.stringify(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/asserts/assertNode.js:15:    throw new TypeError(`Not a valid node of type "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/asserts/assertNode.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/asserts/generated/index.js-297-  if (!(0, _is.default)(type, node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/asserts/generated/index.js:298:    throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/asserts/generated/index.js-299-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/comments/addComments.js-9-  if (!comments || !node) return node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/comments/addComments.js:10:  const key = `${type}Comments`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/comments/addComments.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/builders/builder.js-20-  if (countArgs > keys.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/builders/builder.js:21:    throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/builders/builder.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/clone/cloneNode.js-47-  } else if (!has(_definitions.NODE_FIELDS, type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/clone/cloneNode.js:48:    throw new Error(`Unknown node type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/lib/clone/cloneNode.js-49-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js-16-writeFile(buildersFile, format(generateBuilders(), buildersFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js:17:console.log(`  ${chalk.green("✔")} Generated builders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js-18-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js-20-writeFile(validatorsFile, format(generateValidators(), validatorsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js:21:console.log(`  ${chalk.green("✔")} Generated validators`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js-22-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js-24-writeFile(assertsFile, format(generateAsserts(), assertsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js:25:console.log(`  ${chalk.green("✔")} Generated asserts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js-28-writeFile(constantsFile, format(generateConstants(), constantsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generateTypeHelpers.js:29:console.log(`  ${chalk.green("✔")} Generated constants`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/docs.js-86-        if (customTypes[key] && customTypes[key][field]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/docs.js:87:          fieldDescription.push(`: ${customTypes[key][field]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/docs.js-88-        } else if (validator) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateBuilders.js-21-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateBuilders.js:22:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateBuilders.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateBuilders.js-37-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateBuilders.js:38:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateBuilders.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateAsserts.js-20-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateAsserts.js:21:      \`Expected type "\${type}" with option \${JSON.stringify((opts: any))}, \` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateAsserts.js:22:        \`but instead got "\${node.type}".\`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateAsserts.js-23-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateConstants.js-12-  Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateConstants.js:13:    output += `export const ${type.toUpperCase()}_TYPES = FLIPPED_ALIAS_KEYS["${type}"];\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateConstants.js-14-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-109-      )}): ${NODE_PREFIX}${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:110:      `declare export { _${functionName} as ${functionName} }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-111-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-115-for (let i = 0; i < t.TYPES.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:116:  let decl = `declare function is${t.TYPES[i]}(node: ?Object, opts?: ?Object): boolean`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-117-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-118-  if (t.NODE_FIELDS[t.TYPES[i]]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:119:    decl += ` %checks (node instanceof ${NODE_PREFIX}${t.TYPES[i]})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-120-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-127-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:128:  `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-129-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:130:  `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-131-  // this smells like "internal API"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-132-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:133:  `declare function buildChildren(node: { children: Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment | ${NODE_PREFIX}JSXEmptyExpression> }): Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-134-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-154-  // converters/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:155:  `declare function ensureBlock(node: ${NODE_PREFIX}, key: string): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-156-  `declare function toBindingIdentifierName(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-157-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:158:  `declare function toBlock(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Expression, parent?: ${NODE_PREFIX}Function | null): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-159-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:160:  `declare function toComputedKey(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}Expression | ${NODE_PREFIX}Identifier): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-161-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:162:  `declare function toExpression(node: ${NODE_PREFIX}ExpressionStatement | ${NODE_PREFIX}Expression | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-163-  `declare function toIdentifier(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-164-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:165:  `declare function toKeyAlias(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-166-  // toSequenceExpression relies on types that aren't declared in flow
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-167-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:168:  `declare function toStatement(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function | ${NODE_PREFIX}AssignmentExpression, ignore?: boolean): ${NODE_PREFIX}Statement | void`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:169:  `declare function valueToNode(value: any): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-172-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:173:  `declare function removeTypeDuplicates(types: Array<${NODE_PREFIX}FlowType>): Array<${NODE_PREFIX}FlowType>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-174-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:175:  `declare function appendToMemberExpression(member: ${NODE_PREFIX}MemberExpression, append: ${NODE_PREFIX}, computed?: boolean): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-176-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:177:  `declare function inherits<T: Node>(child: T, parent: ${NODE_PREFIX} | null | void): T`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-178-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:179:  `declare function prependToMemberExpression(member: ${NODE_PREFIX}MemberExpression, prepend: ${NODE_PREFIX}Expression): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-180-  `declare function removeProperties<T>(n: T, opts: ?{}): void;`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-184-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:185:  `declare function getBindingIdentifiers(node: ${NODE_PREFIX}, duplicates: boolean, outerOnly?: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-186-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:187:  `declare function getOuterBindingIdentifiers(node: Node, duplicates: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-188-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-235-  code += `type ${NODE_PREFIX}${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js:236:    .map(type => `${NODE_PREFIX}${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/flow.js-237-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateValidators.js-7-  return (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateValidators.js:8:    leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateValidators.js-9-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateValidators.js-72-    const newType = definitions.DEPRECATED_KEYS[type];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateValidators.js:73:    const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/generateValidators.js-74-    output += addIsHelper(type, null, deprecated);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-97-    if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:98:      struct.push(`${fieldName}: ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-99-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:100:      struct.push(`"${fieldName}": ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-101-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-110-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:111:      `export function ${toFunctionName(type)}(${args.join(", ")}): ${type};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-112-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-115-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:116:      `declare function _${functionName}(${args.join(", ")}): ${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:117:      `export { _${functionName} as ${functionName}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-118-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-124-    t.NODE_FIELDS[typeName] || t.FLIPPED_ALIAS_KEYS[typeName]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:125:      ? `node is ${typeName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-126-      : "boolean";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-128-  lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:129:    `export function is${typeName}(node: object | null | undefined, opts?: object | null): ${result};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-130-    // TypeScript 3.7: https://github.com/microsoft/TypeScript/pull/32695 will allow assert declarations
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-311-  code += `/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:312: * @deprecated Use \`${t.DEPRECATED_KEYS[type]}\`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-313- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-320-  code += `export type ${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:321:    .map(type => `${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-322-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-327-for (const type in t.FLIPPED_ALIAS_KEYS) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js:328:  code += `  ${type}: ${type};\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/generators/typescript.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/utils/stringifyValidator.js-6-  if (validator.each) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/utils/stringifyValidator.js:7:    return `Array<${stringifyValidator(validator.each, nodePrefix)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-imports/node_modules/@babel/types/scripts/utils/stringifyValidator.js-8-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js-264-      if (kind === undefined) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js:265:        throw idPath.buildCodeFrameError(`Exporting local "${localName}", which is not declared.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js-266-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/lib/index.js-137-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/lib/index.js:138:    throw new Error(`Unknown interop: ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/lib/index.js-139-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js-109-    const number = start + 1 + index;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js:110:    const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js:111:    const gutter = ` ${paddedNumber} | `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js-112-    const hasMarker = markerLines[number];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js-129-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js:130:      return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js-131-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js-134-  if (opts.message && !hasColumns) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js:135:    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/code-frame/lib/index.js-136-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-733-    const loc = this.getLocationForPosition(pos);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js:734:    const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-735-    return this._raise(Object.assign({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-4934-  if (x == null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js:4935:    throw new Error(`Unexpected ${x} value.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-4936-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-7311-  if (hasPlugin(plugins, "pipelineOperator") && !PIPELINE_PROPOSALS.includes(getPluginOption(plugins, "pipelineOperator", "proposal"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js:7312:    throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: " + PIPELINE_PROPOSALS.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-7313-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-7315-  if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js:7316:    throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-7317-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-8753-    if (typeof messageOrType !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js:8754:      messageOrType = `Unexpected token, expected "${messageOrType.label}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-8755-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-8763-        missingPlugin: [name]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js:8764:      }, `This experimental syntax requires enabling the parser plugin: '${name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-8765-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-8773-        missingPlugin: names
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js:8774:      }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-8775-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-9192-        if (checkClashes) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js:9193:          const key = `_${expr.name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-9194-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-10907-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js:10908:        throw new Error(`Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js-10909-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/lib/index.js.map:1:{"version":3,"file":"index.js","sources":["../src/tokenizer/types.js","../src/util/scopeflags.js","../src/util/whitespace.js","../src/util/location.js","../src/parser/base.js","../src/parser/comments.js","../src/parser/location.js","../src/plugins/estree.js","../src/tokenizer/context.js","../../babel-helper-validator-identifier/src/identifier.js","../../babel-helper-validator-identifier/src/keyword.js","../src/util/identifier.js","../src/plugins/flow.js","../src/plugins/jsx/xhtml.js","../src/plugins/jsx/index.js","../src/util/scope.js","../src/plugins/typescript/scope.js","../src/util/production-parameter.js","../src/plugins/typescript/index.js","../src/plugins/placeholders.js","../src/plugins/v8intrinsic.js","../src/plugin-utils.js","../src/options.js","../src/tokenizer/state.js","../src/tokenizer/index.js","../src/parser/util.js","../src/parser/node.js","../src/parser/lval.js","../src/parser/expression.js","../src/parser/statement.js","../src/util/class-scope.js","../src/parser/index.js","../src/index.js"],"sourcesContent":["// @flow\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n  keyword?: string,\n  beforeExpr?: boolean,\n  startsExpr?: boolean,\n  rightAssociative?: boolean,\n  isLoop?: boolean,\n  isAssign?: boolean,\n  prefix?: boolean,\n  postfix?: boolean,\n  binop?: ?number,\n};\n\nexport class TokenType {\n  label: string;\n  keyword: ?string;\n  beforeExpr: boolean;\n  startsExpr: boolean;\n  rightAssociative: boolean;\n  isLoop: boolean;\n  isAssign: boolean;\n  prefix: boolean;\n  postfix: boolean;\n  binop: ?number;\n  updateContext: ?(prevType: TokenType) => void;\n\n  constructor(label: string, conf: TokenOptions = {}) {\n    this.label = label;\n    this.keyword = conf.keyword;\n    this.beforeExpr = !!conf.beforeExpr;\n    this.startsExpr = !!conf.startsExpr;\n    this.rightAssociative = !!conf.rightAssociative;\n    this.isLoop = !!conf.isLoop;\n    this.isAssign = !!conf.isAssign;\n    this.prefix = !!conf.prefix;\n    this.postfix = !!conf.postfix;\n    this.binop = conf.binop != null ? conf.binop : null;\n    this.updateContext = null;\n  }\n}\n\nexport const keywords = new Map<string, TokenType>();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n  options.keyword = name;\n  const token = new TokenType(name, options);\n  keywords.set(name, token);\n  return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n  return new TokenType(name, { beforeExpr, binop });\n}\n\nexport const types: { [name: string]: TokenType } = {\n  num: new TokenType(\"num\", { startsExpr }),\n  bigint: new TokenType(\"bigint\", { startsExpr }),\n  regexp: new TokenType(\"regexp\", { startsExpr }),\n  string: new TokenType(\"string\", { startsExpr }),\n  name: new TokenType(\"name\", { startsExpr }),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", { beforeExpr, startsExpr }),\n  bracketHashL: new TokenType(\"#[\", { beforeExpr, startsExpr }),\n  bracketBarL: new TokenType(\"[|\", { beforeExpr, startsExpr }),\n  bracketR: new TokenType(\"]\"),\n  bracketBarR: new TokenType(\"|]\"),\n  braceL: new TokenType(\"{\", { beforeExpr, startsExpr }),\n  braceBarL: new TokenType(\"{|\", { beforeExpr, startsExpr }),\n  braceHashL: new TokenType(\"#{\", { beforeExpr, startsExpr }),\n  braceR: new TokenType(\"}\"),\n  braceBarR: new TokenType(\"|}\"),\n  parenL: new TokenType(\"(\", { beforeExpr, startsExpr }),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", { beforeExpr }),\n  semi: new TokenType(\";\", { beforeExpr }),\n  colon: new TokenType(\":\", { beforeExpr }),\n  doubleColon: new TokenType(\"::\", { beforeExpr }),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", { beforeExpr }),\n  questionDot: new TokenType(\"?.\"),\n  arrow: new TokenType(\"=>\", { beforeExpr }),\n  template: new TokenType(\"template\"),\n  ellipsis: new TokenType(\"...\", { beforeExpr }),\n  backQuote: new TokenType(\"`\", { startsExpr }),\n  dollarBraceL: new TokenType(\"${\", { beforeExpr, startsExpr }),\n  at: new TokenType(\"@\"),\n  hash: new TokenType(\"#\", { startsExpr }),\n\n  // Special hashbang token.\n  interpreterDirective: new TokenType(\"#!...\"),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", { beforeExpr, isAssign }),\n  assign: new TokenType(\"_=\", { beforeExpr, isAssign }),\n  incDec: new TokenType(\"++/--\", { prefix, postfix, startsExpr }),\n  bang: new TokenType(\"!\", { beforeExpr, prefix, startsExpr }),\n  tilde: new TokenType(\"~\", { beforeExpr, prefix, startsExpr }),\n  pipeline: createBinop(\"|>\", 0),\n  nullishCoalescing: createBinop(\"??\", 1),\n  logicalOR: createBinop(\"||\", 1),\n  logicalAND: createBinop(\"&&\", 2),\n  bitwiseOR: createBinop(\"|\", 3),\n  bitwiseXOR: createBinop(\"^\", 4),\n  bitwiseAND: createBinop(\"&\", 5),\n  equality: createBinop(\"==/!=/===/!==\", 6),\n  relational: createBinop(\"</>/<=/>=\", 7),\n  bitShift: createBinop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n  // startsExpr: required by v8intrinsic plugin\n  modulo: new TokenType(\"%\", { beforeExpr, binop: 10, startsExpr }),\n  star: createBinop(\"*\", 10),\n  slash: createBinop(\"/\", 10),\n  exponent: new TokenType(\"**\", {\n    beforeExpr,\n    binop: 11,\n    rightAssociative: true,\n  }),\n\n  // Keywords\n  // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n  // when new keywords are added\n  _break: createKeyword(\"break\"),\n  _case: createKeyword(\"case\", { beforeExpr }),\n  _catch: createKeyword(\"catch\"),\n  _continue: createKeyword(\"continue\"),\n  _debugger: createKeyword(\"debugger\"),\n  _default: createKeyword(\"default\", { beforeExpr }),\n  _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n  _else: createKeyword(\"else\", { beforeExpr }),\n  _finally: createKeyword(\"finally\"),\n  _for: createKeyword(\"for\", { isLoop }),\n  _function: createKeyword(\"function\", { startsExpr }),\n  _if: createKeyword(\"if\"),\n  _return: createKeyword(\"return\", { beforeExpr }),\n  _switch: createKeyword(\"switch\"),\n  _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n  _try: createKeyword(\"try\"),\n  _var: createKeyword(\"var\"),\n  _const: createKeyword(\"const\"),\n  _while: createKeyword(\"while\", { isLoop }),\n  _with: createKeyword(\"with\"),\n  _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n  _this: createKeyword(\"this\", { startsExpr }),\n  _super: createKeyword(\"super\", { startsExpr }),\n  _class: createKeyword(\"class\", { startsExpr }),\n  _extends: createKeyword(\"extends\", { beforeExpr }),\n  _export: createKeyword(\"export\"),\n  _import: createKeyword(\"import\", { startsExpr }),\n  _null: createKeyword(\"null\", { startsExpr }),\n  _true: createKeyword(\"true\", { startsExpr }),\n  _false: createKeyword(\"false\", { startsExpr }),\n  _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n  _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n  _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n  _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n  _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n};\n","// @flow\n\n// Each scope gets a bitset that may contain these flags\n// prettier-ignore\nexport const SCOPE_OTHER        = 0b00000000,\n             SCOPE_PROGRAM      = 0b00000001,\n             SCOPE_FUNCTION     = 0b00000010,\n             SCOPE_ARROW        = 0b00000100,\n             SCOPE_SIMPLE_CATCH = 0b00001000,\n             SCOPE_SUPER        = 0b00010000,\n             SCOPE_DIRECT_SUPER = 0b00100000,\n             SCOPE_CLASS        = 0b01000000,\n             SCOPE_TS_MODULE    = 0b10000000,\n             SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE;\n\nexport type ScopeFlags =\n  | typeof SCOPE_OTHER\n  | typeof SCOPE_PROGRAM\n  | typeof SCOPE_FUNCTION\n  | typeof SCOPE_VAR\n  | typeof SCOPE_ARROW\n  | typeof SCOPE_SIMPLE_CATCH\n  | typeof SCOPE_SUPER\n  | typeof SCOPE_DIRECT_SUPER\n  | typeof SCOPE_CLASS;\n\n// These flags are meant to be _only_ used inside the Scope class (or subclasses).\n// prettier-ignore\nexport const BIND_KIND_VALUE           = 0b00000_0000_01,\n             BIND_KIND_TYPE            = 0b00000_0000_10,\n             // Used in checkLVal and declareName to determine the type of a binding\n             BIND_SCOPE_VAR            = 0b00000_0001_00, // Var-style binding\n             BIND_SCOPE_LEXICAL        = 0b00000_0010_00, // Let- or const-style binding\n             BIND_SCOPE_FUNCTION       = 0b00000_0100_00, // Function declaration\n             BIND_SCOPE_OUTSIDE        = 0b00000_1000_00, // Special case for function names as\n                                                   // bound inside the function\n             // Misc flags\n             BIND_FLAGS_NONE           = 0b00001_0000_00,\n             BIND_FLAGS_CLASS          = 0b00010_0000_00,\n             BIND_FLAGS_TS_ENUM        = 0b00100_0000_00,\n             BIND_FLAGS_TS_CONST_ENUM  = 0b01000_0000_00,\n             BIND_FLAGS_TS_EXPORT_ONLY = 0b10000_0000_00;\n\n// These flags are meant to be _only_ used by Scope consumers\n// prettier-ignore\n/*                              =    is value?    |    is type?    |      scope          |    misc flags    */\nexport const BIND_CLASS         = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_CLASS  ,\n             BIND_LEXICAL       = BIND_KIND_VALUE | 0              | BIND_SCOPE_LEXICAL  | 0                 ,\n             BIND_VAR           = BIND_KIND_VALUE | 0              | BIND_SCOPE_VAR      | 0                 ,\n             BIND_FUNCTION      = BIND_KIND_VALUE | 0              | BIND_SCOPE_FUNCTION | 0                 ,\n             BIND_TS_INTERFACE  = 0               | BIND_KIND_TYPE | 0                   | BIND_FLAGS_CLASS  ,\n             BIND_TS_TYPE       = 0               | BIND_KIND_TYPE | 0                   | 0                 ,\n             BIND_TS_ENUM       = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_TS_ENUM,\n             BIND_TS_AMBIENT    = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY,\n             // These bindings don't introduce anything in the scope. They are used for assignments and\n             // function expressions IDs.\n             BIND_NONE          = 0               | 0              | 0                   | BIND_FLAGS_NONE   ,\n             BIND_OUTSIDE       = BIND_KIND_VALUE | 0              | 0                   | BIND_FLAGS_NONE   ,\n\n             BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM,\n             BIND_TS_NAMESPACE  = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY;\n\nexport type BindingTypes =\n  | typeof BIND_NONE\n  | typeof BIND_OUTSIDE\n  | typeof BIND_VAR\n  | typeof BIND_LEXICAL\n  | typeof BIND_CLASS\n  | typeof BIND_FUNCTION\n  | typeof BIND_TS_INTERFACE\n  | typeof BIND_TS_TYPE\n  | typeof BIND_TS_ENUM\n  | typeof BIND_TS_AMBIENT\n  | typeof BIND_TS_NAMESPACE;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_FLAG_STATIC = 0b1_00,\n             CLASS_ELEMENT_KIND_GETTER = 0b0_10,\n             CLASS_ELEMENT_KIND_SETTER = 0b0_01,\n             CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_STATIC_GETTER   = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_STATIC_SETTER   = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER,\n             CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER,\n             CLASS_ELEMENT_OTHER           = 0;\n\nexport type ClassElementTypes =\n  | typeof CLASS_ELEMENT_STATIC_GETTER\n  | typeof CLASS_ELEMENT_STATIC_SETTER\n  | typeof CLASS_ELEMENT_INSTANCE_GETTER\n  | typeof CLASS_ELEMENT_INSTANCE_SETTER\n  | typeof CLASS_ELEMENT_OTHER;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n  switch (code) {\n    case charCodes.lineFeed:\n    case charCodes.carriageReturn:\n    case charCodes.lineSeparator:\n    case charCodes.paragraphSeparator:\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n  switch (code) {\n    case 0x0009: // CHARACTER TABULATION\n    case 0x000b: // LINE TABULATION\n    case 0x000c: // FORM FEED\n    case charCodes.space:\n    case charCodes.nonBreakingSpace:\n    case charCodes.oghamSpaceMark:\n    case 0x2000: // EN QUAD\n    case 0x2001: // EM QUAD\n    case 0x2002: // EN SPACE\n    case 0x2003: // EM SPACE\n    case 0x2004: // THREE-PER-EM SPACE\n    case 0x2005: // FOUR-PER-EM SPACE\n    case 0x2006: // SIX-PER-EM SPACE\n    case 0x2007: // FIGURE SPACE\n    case 0x2008: // PUNCTUATION SPACE\n    case 0x2009: // THIN SPACE\n    case 0x200a: // HAIR SPACE\n    case 0x202f: // NARROW NO-BREAK SPACE\n    case 0x205f: // MEDIUM MATHEMATICAL SPACE\n    case 0x3000: // IDEOGRAPHIC SPACE\n    case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n      return true;\n\n    default:\n      return false;\n  }\n}\n","// @flow\n\nimport { lineBreakG } from \"./whitespace\";\n\nexport type Pos = {\n  start: number,\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  line: number;\n  column: number;\n\n  constructor(line: number, col: number) {\n    this.line = line;\n    this.column = col;\n  }\n}\n\nexport class SourceLocation {\n  start: Position;\n  end: Position;\n  filename: string;\n  identifierName: ?string;\n\n  constructor(start: Position, end?: Position) {\n    this.start = start;\n    // $FlowIgnore (may start as null, but initialized later)\n    this.end = end;\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input: string, offset: number): Position {\n  let line = 1;\n  let lineStart = 0;\n  let match;\n  lineBreakG.lastIndex = 0;\n  while ((match = lineBreakG.exec(input)) && match.index < offset) {\n    line++;\n    lineStart = lineBreakG.lastIndex;\n  }\n\n  return new Position(line, offset - lineStart);\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type State from \"../tokenizer/state\";\nimport type { PluginsMap } from \"./index\";\nimport type ScopeHandler from \"../util/scope\";\nimport type ClassScopeHandler from \"../util/class-scope\";\nimport type ProductionParameterHandler from \"../util/production-parameter\";\n\nexport default class BaseParser {\n  // Properties set by constructor in index.js\n  options: Options;\n  inModule: boolean;\n  scope: ScopeHandler<*>;\n  classScope: ClassScopeHandler;\n  prodParam: ProductionParameterHandler;\n  plugins: PluginsMap;\n  filename: ?string;\n  sawUnambiguousESM: boolean = false;\n  ambiguousScriptDifferentAst: boolean = false;\n\n  // Initialized by Tokenizer\n  state: State;\n  // input and length are not in state as they are constant and we do\n  // not want to ever copy them, which happens if state gets cloned\n  input: string;\n  length: number;\n\n  hasPlugin(name: string): boolean {\n    return this.plugins.has(name);\n  }\n\n  getPluginOption(plugin: string, name: string) {\n    // $FlowIssue\n    if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name];\n  }\n}\n","// @flow\n\n/**\n * Based on the comment attachment algorithm used in espree and estraverse.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n *   notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n *   notice, this list of conditions and the following disclaimer in the\n *   documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport BaseParser from \"./base\";\nimport type { Comment, Node } from \"../types\";\n\nfunction last<T>(stack: $ReadOnlyArray<T>): T {\n  return stack[stack.length - 1];\n}\n\nexport default class CommentsParser extends BaseParser {\n  addComment(comment: Comment): void {\n    if (this.filename) comment.loc.filename = this.filename;\n    this.state.trailingComments.push(comment);\n    this.state.leadingComments.push(comment);\n  }\n\n  adjustCommentsAfterTrailingComma(\n    node: Node,\n    elements: (Node | null)[],\n    // When the current node is followed by a token which hasn't a respective AST node, we\n    // need to take all the trailing comments to prevent them from being attached to an\n    // unrelated node. e.g. in\n    //     var { x } /* cmt */ = { y }\n    // we don't want /* cmt */ to be attached to { y }.\n    // On the other hand, in\n    //     fn(x) [new line] /* cmt */ [new line] y\n    // /* cmt */ is both a trailing comment of fn(x) and a leading comment of y\n    takeAllComments?: boolean,\n  ) {\n    if (this.state.leadingComments.length === 0) {\n      return;\n    }\n\n    let lastElement = null;\n    let i = elements.length;\n    while (lastElement === null && i > 0) {\n      lastElement = elements[--i];\n    }\n    if (lastElement === null) {\n      return;\n    }\n\n    for (let j = 0; j < this.state.leadingComments.length; j++) {\n      if (\n        this.state.leadingComments[j].end < this.state.commentPreviousNode.end\n      ) {\n        this.state.leadingComments.splice(j, 1);\n        j--;\n      }\n    }\n\n    const newTrailingComments = [];\n    for (let i = 0; i < this.state.leadingComments.length; i++) {\n      const leadingComment = this.state.leadingComments[i];\n      if (leadingComment.end < node.end) {\n        newTrailingComments.push(leadingComment);\n\n        // Perf: we don't need to splice if we are going to reset the array anyway\n        if (!takeAllComments) {\n          this.state.leadingComments.splice(i, 1);\n          i--;\n        }\n      } else {\n        if (node.trailingComments === undefined) {\n          node.trailingComments = [];\n        }\n        node.trailingComments.push(leadingComment);\n      }\n    }\n    if (takeAllComments) this.state.leadingComments = [];\n\n    if (newTrailingComments.length > 0) {\n      lastElement.trailingComments = newTrailingComments;\n    } else if (lastElement.trailingComments !== undefined) {\n      lastElement.trailingComments = [];\n    }\n  }\n\n  processComment(node: Node): void {\n    if (node.type === \"Program\" && node.body.length > 0) return;\n\n    const stack = this.state.commentStack;\n\n    let firstChild, lastChild, trailingComments, i, j;\n\n    if (this.state.trailingComments.length > 0) {\n      // If the first comment in trailingComments comes after the\n      // current node, then we're good - all comments in the array will\n      // come after the node and so it's safe to add them as official\n      // trailingComments.\n      if (this.state.trailingComments[0].start >= node.end) {\n        trailingComments = this.state.trailingComments;\n        this.state.trailingComments = [];\n      } else {\n        // Otherwise, if the first comment doesn't come after the\n        // current node, that means we have a mix of leading and trailing\n        // comments in the array and that leadingComments contains the\n        // same items as trailingComments. Reset trailingComments to\n        // zero items and we'll handle this by evaluating leadingComments\n        // later.\n        this.state.trailingComments.length = 0;\n      }\n    } else if (stack.length > 0) {\n      const lastInStack = last(stack);\n      if (\n        lastInStack.trailingComments &&\n        lastInStack.trailingComments[0].start >= node.end\n      ) {\n        trailingComments = lastInStack.trailingComments;\n        delete lastInStack.trailingComments;\n      }\n    }\n\n    // Eating the stack.\n    if (stack.length > 0 && last(stack).start >= node.start) {\n      firstChild = stack.pop();\n    }\n\n    while (stack.length > 0 && last(stack).start >= node.start) {\n      lastChild = stack.pop();\n    }\n\n    if (!lastChild && firstChild) lastChild = firstChild;\n\n    // Adjust comments that follow a trailing comma on the last element in a\n    // comma separated list of nodes to be the trailing comments on the last\n    // element\n    if (firstChild) {\n      switch (node.type) {\n        case \"ObjectExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties);\n          break;\n        case \"ObjectPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties, true);\n          break;\n        case \"CallExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.arguments);\n          break;\n        case \"ArrayExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements);\n          break;\n        case \"ArrayPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements, true);\n          break;\n      }\n    } else if (\n      this.state.commentPreviousNode &&\n      ((this.state.commentPreviousNode.type === \"ImportSpecifier\" &&\n        node.type !== \"ImportSpecifier\") ||\n        (this.state.commentPreviousNode.type === \"ExportSpecifier\" &&\n          node.type !== \"ExportSpecifier\"))\n    ) {\n      this.adjustCommentsAfterTrailingComma(node, [\n        this.state.commentPreviousNode,\n      ]);\n    }\n\n    if (lastChild) {\n      if (lastChild.leadingComments) {\n        if (\n          lastChild !== node &&\n          lastChild.leadingComments.length > 0 &&\n          last(lastChild.leadingComments).end <= node.start\n        ) {\n          node.leadingComments = lastChild.leadingComments;\n          delete lastChild.leadingComments;\n        } else {\n          // A leading comment for an anonymous class had been stolen by its first ClassMethod,\n          // so this takes back the leading comment.\n          // See also: https://github.com/eslint/espree/issues/158\n          for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\n            if (lastChild.leadingComments[i].end <= node.start) {\n              node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\n              break;\n            }\n          }\n        }\n      }\n    } else if (this.state.leadingComments.length > 0) {\n      if (last(this.state.leadingComments).end <= node.start) {\n        if (this.state.commentPreviousNode) {\n          for (j = 0; j < this.state.leadingComments.length; j++) {\n            if (\n              this.state.leadingComments[j].end <\n              this.state.commentPreviousNode.end\n            ) {\n              this.state.leadingComments.splice(j, 1);\n              j--;\n            }\n          }\n        }\n        if (this.state.leadingComments.length > 0) {\n          node.leadingComments = this.state.leadingComments;\n          this.state.leadingComments = [];\n        }\n      } else {\n        // https://github.com/eslint/espree/issues/2\n        //\n        // In special cases, such as return (without a value) and\n        // debugger, all comments will end up as leadingComments and\n        // will otherwise be eliminated. This step runs when the\n        // commentStack is empty and there are comments left\n        // in leadingComments.\n        //\n        // This loop figures out the stopping point between the actual\n        // leading and trailing comments by finding the location of the\n        // first comment that comes after the given node.\n        for (i = 0; i < this.state.leadingComments.length; i++) {\n          if (this.state.leadingComments[i].end > node.start) {\n            break;\n          }\n        }\n\n        // Split the array based on the location of the first comment\n        // that comes after the node. Keep in mind that this could\n        // result in an empty array, and if so, the array must be\n        // deleted.\n        const leadingComments = this.state.leadingComments.slice(0, i);\n\n        if (leadingComments.length) {\n          node.leadingComments = leadingComments;\n        }\n\n        // Similarly, trailing comments are attached later. The variable\n        // must be reset to null if there are no trailing comments.\n        trailingComments = this.state.leadingComments.slice(i);\n        if (trailingComments.length === 0) {\n          trailingComments = null;\n        }\n      }\n    }\n\n    this.state.commentPreviousNode = node;\n\n    if (trailingComments) {\n      if (\n        trailingComments.length &&\n        trailingComments[0].start >= node.start &&\n        last(trailingComments).end <= node.end\n      ) {\n        node.innerComments = trailingComments;\n      } else {\n        node.trailingComments = trailingComments;\n      }\n    }\n\n    stack.push(node);\n  }\n}\n","// @flow\n/* eslint sort-keys: \"error\" */\nimport { getLineInfo, type Position } from \"../util/location\";\nimport CommentsParser from \"./comments\";\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\ntype ErrorContext = {\n  pos: number,\n  loc: Position,\n  missingPlugin?: Array<string>,\n  code?: string,\n};\n\n// The Errors key follows https://cs.chromium.org/chromium/src/v8/src/common/message-template.h unless it does not exist\nexport const Errors = Object.freeze({\n  ArgumentsDisallowedInInitializer:\n    \"'arguments' is not allowed in class field initializer\",\n  AsyncFunctionInSingleStatementContext:\n    \"Async functions can only be declared at the top level or inside a block\",\n  AwaitBindingIdentifier:\n    \"Can not use 'await' as identifier inside an async function\",\n  AwaitExpressionFormalParameter:\n    \"await is not allowed in async function parameters\",\n  AwaitNotInAsyncFunction:\n    \"Can not use keyword 'await' outside an async function\",\n  BadGetterArity: \"getter must not have any formal parameters\",\n  BadSetterArity: \"setter must have exactly one formal parameter\",\n  BadSetterRestParameter:\n    \"setter function argument must not be a rest parameter\",\n  ConstructorClassField: \"Classes may not have a field named 'constructor'\",\n  ConstructorClassPrivateField:\n    \"Classes may not have a private field named '#constructor'\",\n  ConstructorIsAccessor: \"Class constructor may not be an accessor\",\n  ConstructorIsAsync: \"Constructor can't be an async function\",\n  ConstructorIsGenerator: \"Constructor can't be a generator\",\n  DeclarationMissingInitializer: \"%0 require an initialization value\",\n  DecoratorBeforeExport:\n    \"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax\",\n  DecoratorConstructor:\n    \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n  DecoratorExportClass:\n    \"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\",\n  DecoratorSemicolon: \"Decorators must not be followed by a semicolon\",\n  DeletePrivateField: \"Deleting a private field is not allowed\",\n  DestructureNamedImport:\n    \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n  DuplicateConstructor: \"Duplicate constructor in the same class\",\n  DuplicateDefaultExport: \"Only one default export allowed per module.\",\n  DuplicateExport:\n    \"`%0` has already been exported. Exported identifiers must be unique.\",\n  DuplicateProto: \"Redefinition of __proto__ property\",\n  DuplicateRegExpFlags: \"Duplicate regular expression flag\",\n  ElementAfterRest: \"Rest element must be last element\",\n  EscapedCharNotAnIdentifier: \"Invalid Unicode escape\",\n  ForInOfLoopInitializer:\n    \"%0 loop variable declaration may not have an initializer\",\n  GeneratorInSingleStatementContext:\n    \"Generators can only be declared at the top level or inside a block\",\n  IllegalBreakContinue: \"Unsyntactic %0\",\n  IllegalLanguageModeDirective:\n    \"Illegal 'use strict' directive in function with non-simple parameter list\",\n  IllegalReturn: \"'return' outside of function\",\n  ImportCallArgumentTrailingComma:\n    \"Trailing comma is disallowed inside import(...) arguments\",\n  ImportCallArity: \"import() requires exactly one argument\",\n  ImportCallArityLtOne: \"Dynamic imports require a parameter: import('a.js')\",\n  ImportCallNotNewExpression: \"Cannot use new with import(...)\",\n  ImportCallSpreadArgument: \"... is not allowed in import()\",\n  ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: \"module\"'`,\n  ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n  InvalidCodePoint: \"Code point out of bounds\",\n  InvalidDigit: \"Expected number in radix %0\",\n  InvalidEscapeSequence: \"Bad character escape sequence\",\n  InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template\",\n  InvalidEscapedReservedWord: \"Escape sequence in keyword %0\",\n  InvalidIdentifier: \"Invalid identifier %0\",\n  InvalidLhs: \"Invalid left-hand side in %0\",\n  InvalidLhsBinding: \"Binding invalid left-hand side in %0\",\n  InvalidNumber: \"Invalid number\",\n  InvalidOrUnexpectedToken: \"Unexpected character '%0'\",\n  InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern\",\n  InvalidPrivateFieldResolution: \"Private name #%0 is not defined\",\n  InvalidPropertyBindingPattern: \"Binding member expression\",\n  InvalidRestAssignmentPattern: \"Invalid rest operator's argument\",\n  LabelRedeclaration: \"Label '%0' is already declared\",\n  LetInLexicalBinding:\n    \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\",\n  MalformedRegExpFlags: \"Invalid regular expression flag\",\n  MissingClassName: \"A class name is required\",\n  MissingEqInAssignment:\n    \"Only '=' operator can be used for specifying default value.\",\n  MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX\",\n  MixingCoalesceWithLogical:\n    \"Nullish coalescing operator(??) requires parens when mixing with logical operators\",\n  ModuleExportUndefined: \"Export '%0' is not defined\",\n  MultipleDefaultsInSwitch: \"Multiple default clauses\",\n  NewlineAfterThrow: \"Illegal newline after throw\",\n  NoCatchOrFinally: \"Missing catch or finally clause\",\n  NumberIdentifier: \"Identifier directly after number\",\n  NumericSeparatorInEscapeSequence:\n    \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences\",\n  ObsoleteAwaitStar:\n    \"await* has been removed from the async functions proposal. Use Promise.all() instead.\",\n  OptionalChainingNoNew:\n    \"constructors in/after an Optional Chain are not allowed\",\n  OptionalChainingNoTemplate:\n    \"Tagged Template Literals are not allowed in optionalChain\",\n  ParamDupe: \"Argument name clash\",\n  PatternHasAccessor: \"Object pattern can't contain getter or setter\",\n  PatternHasMethod: \"Object pattern can't contain methods\",\n  PipelineBodyNoArrow:\n    'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized',\n  PipelineBodySequenceExpression:\n    \"Pipeline body may not be a comma-separated sequence expression\",\n  PipelineHeadSequenceExpression:\n    \"Pipeline head should not be a comma-separated sequence expression\",\n  PipelineTopicUnused:\n    \"Pipeline is in topic style but does not use topic reference\",\n  PrimaryTopicNotAllowed:\n    \"Topic reference was used in a lexical context without topic binding\",\n  PrimaryTopicRequiresSmartPipeline:\n    \"Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.\",\n  PrivateNameRedeclaration: \"Duplicate private name #%0\",\n  RecordExpressionBarIncorrectEndSyntaxType:\n    \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionBarIncorrectStartSyntaxType:\n    \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionHashIncorrectStartSyntaxType:\n    \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  RestTrailingComma: \"Unexpected trailing comma after rest element\",\n  SloppyFunction:\n    \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",\n  StaticPrototype: \"Classes may not have static property named prototype\",\n  StrictDelete: \"Deleting local variable in strict mode\",\n  StrictEvalArguments: \"Assigning to '%0' in strict mode\",\n  StrictEvalArgumentsBinding: \"Binding '%0' in strict mode\",\n  StrictFunction:\n    \"In strict mode code, functions can only be declared at top level or inside a block\",\n  StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode\",\n  StrictWith: \"'with' in strict mode\",\n  SuperNotAllowed:\n    \"super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n  SuperPrivateField: \"Private fields can't be accessed on super\",\n  TrailingDecorator: \"Decorators must be attached to a class element\",\n  TupleExpressionBarIncorrectEndSyntaxType:\n    \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionBarIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionHashIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder\",\n  UnexpectedAwaitAfterPipelineBody:\n    'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal',\n  UnexpectedDigitAfterHash: \"Unexpected digit after hash token\",\n  UnexpectedImportExport:\n    \"'import' and 'export' may only appear at the top level\",\n  UnexpectedKeyword: \"Unexpected keyword '%0'\",\n  UnexpectedLeadingDecorator:\n    \"Leading decorators must be attached to a class declaration\",\n  UnexpectedLexicalDeclaration:\n    \"Lexical declaration cannot appear in a single-statement context\",\n  UnexpectedNewTarget: \"new.target can only be used in functions\",\n  UnexpectedNumericSeparator:\n    \"A numeric separator is only allowed between two digits\",\n  UnexpectedPrivateField:\n    \"Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\\n or a property of member expression (i.e. this.#p).\",\n  UnexpectedReservedWord: \"Unexpected reserved word '%0'\",\n  UnexpectedSuper: \"super is only allowed in object methods and classes\",\n  UnexpectedToken: \"Unexpected token '%'\",\n  UnexpectedTokenUnaryExponentiation:\n    \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n  UnsupportedBind: \"Binding should be performed on object property.\",\n  UnsupportedDecoratorExport:\n    \"A decorated export must export a class declaration\",\n  UnsupportedDefaultExport:\n    \"Only expressions, functions or classes are allowed as the `default` export.\",\n  UnsupportedImport: \"import can only be used in import() or import.meta\",\n  UnsupportedMetaProperty: \"The only valid meta property for %0 is %0.%1\",\n  UnsupportedParameterDecorator:\n    \"Decorators cannot be used to decorate parameters\",\n  UnsupportedPropertyDecorator:\n    \"Decorators cannot be used to decorate object literal properties\",\n  UnsupportedSuper:\n    \"super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])\",\n  UnterminatedComment: \"Unterminated comment\",\n  UnterminatedRegExp: \"Unterminated regular expression\",\n  UnterminatedString: \"Unterminated string constant\",\n  UnterminatedTemplate: \"Unterminated template\",\n  VarRedeclaration: \"Identifier '%0' has already been declared\",\n  YieldBindingIdentifier:\n    \"Can not use 'yield' as identifier inside a generator\",\n  YieldInParameter: \"yield is not allowed in generator parameters\",\n  ZeroDigitNumericSeparator:\n    \"Numeric separator can not be used after leading 0\",\n});\n\nexport default class LocationParser extends CommentsParser {\n  // Forward-declaration: defined in tokenizer/index.js\n  /*::\n  +isLookahead: boolean;\n  */\n\n  getLocationForPosition(pos: number): Position {\n    let loc;\n    if (pos === this.state.start) loc = this.state.startLoc;\n    else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;\n    else if (pos === this.state.end) loc = this.state.endLoc;\n    else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;\n    else loc = getLineInfo(this.input, pos);\n\n    return loc;\n  }\n\n  raise(pos: number, errorTemplate: string, ...params: any): Error | empty {\n    return this.raiseWithData(pos, undefined, errorTemplate, ...params);\n  }\n\n  raiseWithData(\n    pos: number,\n    data?: {\n      missingPlugin?: Array<string>,\n      code?: string,\n    },\n    errorTemplate: string,\n    ...params: any\n  ): Error | empty {\n    const loc = this.getLocationForPosition(pos);\n    const message =\n      errorTemplate.replace(/%(\\d+)/g, (_, i: number) => params[i]) +\n      ` (${loc.line}:${loc.column})`;\n    return this._raise(Object.assign(({ loc, pos }: Object), data), message);\n  }\n\n  _raise(errorContext: ErrorContext, message: string): Error | empty {\n    // $FlowIgnore\n    const err: SyntaxError & ErrorContext = new SyntaxError(message);\n    Object.assign(err, errorContext);\n    if (this.options.errorRecovery) {\n      if (!this.isLookahead) this.state.errors.push(err);\n      return err;\n    } else {\n      throw err;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nfunction isSimpleProperty(node: N.Node): boolean {\n  return (\n    node != null &&\n    node.type === \"Property\" &&\n    node.kind === \"init\" &&\n    node.method === false\n  );\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    estreeParseRegExpLiteral({ pattern, flags }: N.RegExpLiteral): N.Node {\n      let regex = null;\n      try {\n        regex = new RegExp(pattern, flags);\n      } catch (e) {\n        // In environments that don't support these flags value will\n        // be null as the regex can't be represented natively.\n      }\n      const node = this.estreeParseLiteral(regex);\n      node.regex = { pattern, flags };\n\n      return node;\n    }\n\n    estreeParseBigIntLiteral(value: any): N.Node {\n      // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n      // $FlowIgnore\n      const bigInt = typeof BigInt !== \"undefined\" ? BigInt(value) : null;\n      const node = this.estreeParseLiteral(bigInt);\n      node.bigint = String(node.value || value);\n\n      return node;\n    }\n\n    estreeParseLiteral(value: any): N.Node {\n      return this.parseLiteral(value, \"Literal\");\n    }\n\n    directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n      const directiveLiteral = directive.value;\n\n      const stmt = this.startNodeAt(directive.start, directive.loc.start);\n      const expression = this.startNodeAt(\n        directiveLiteral.start,\n        directiveLiteral.loc.start,\n      );\n\n      expression.value = directiveLiteral.value;\n      expression.raw = directiveLiteral.extra.raw;\n\n      stmt.expression = this.finishNodeAt(\n        expression,\n        \"Literal\",\n        directiveLiteral.end,\n        directiveLiteral.loc.end,\n      );\n      stmt.directive = directiveLiteral.extra.raw.slice(1, -1);\n\n      return this.finishNodeAt(\n        stmt,\n        \"ExpressionStatement\",\n        directive.end,\n        directive.loc.end,\n      );\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    initFunction(\n      node: N.BodilessFunctionOrMethodBase,\n      isAsync: ?boolean,\n    ): void {\n      super.initFunction(node, isAsync);\n      node.expression = false;\n    }\n\n    checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n      if (isSimpleProperty(node)) {\n        this.checkDeclaration(((node: any): N.EstreeProperty).value);\n      } else {\n        super.checkDeclaration(node);\n      }\n    }\n\n    checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n      const prop = ((method: any): N.EstreeProperty | N.EstreeMethodDefinition);\n      const paramCount = prop.kind === \"get\" ? 0 : 1;\n      const start = prop.start;\n      if (prop.value.params.length !== paramCount) {\n        if (method.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      } else if (\n        prop.kind === \"set\" &&\n        prop.value.params[0].type === \"RestElement\"\n      ) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n      disallowLetBinding?: boolean,\n    ): void {\n      switch (expr.type) {\n        case \"ObjectPattern\":\n          expr.properties.forEach(prop => {\n            this.checkLVal(\n              prop.type === \"Property\" ? prop.value : prop,\n              bindingType,\n              checkClashes,\n              \"object destructuring pattern\",\n              disallowLetBinding,\n            );\n          });\n          break;\n        default:\n          super.checkLVal(\n            expr,\n            bindingType,\n            checkClashes,\n            contextDescription,\n            disallowLetBinding,\n          );\n      }\n    }\n\n    checkDuplicatedProto(\n      prop: N.ObjectMember | N.SpreadElement,\n      protoRef: { used: boolean },\n      refExpressionErrors: ?ExpressionErrors,\n    ): void {\n      if (\n        prop.type === \"SpreadElement\" ||\n        prop.computed ||\n        prop.method ||\n        // $FlowIgnore\n        prop.shorthand\n      ) {\n        return;\n      }\n\n      const key = prop.key;\n      // It is either an Identifier or a String/NumericLiteral\n      const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n      if (name === \"__proto__\" && prop.kind === \"init\") {\n        // Store the first redefinition's position\n        if (protoRef.used) {\n          if (refExpressionErrors && refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          } else {\n            this.raise(key.start, Errors.DuplicateProto);\n          }\n        }\n\n        protoRef.used = true;\n      }\n    }\n\n    isValidDirective(stmt: N.Statement): boolean {\n      return (\n        stmt.type === \"ExpressionStatement\" &&\n        stmt.expression.type === \"Literal\" &&\n        typeof stmt.expression.value === \"string\" &&\n        (!stmt.expression.extra || !stmt.expression.extra.parenthesized)\n      );\n    }\n\n    stmtToDirective(stmt: N.Statement): N.Directive {\n      const directive = super.stmtToDirective(stmt);\n      const value = stmt.expression.value;\n\n      // Reset value to the actual value as in estree mode we want\n      // the stmt to have the real value and not the raw value\n      directive.value.value = value;\n\n      return directive;\n    }\n\n    parseBlockBody(\n      node: N.BlockStatementLike,\n      allowDirectives: ?boolean,\n      topLevel: boolean,\n      end: TokenType,\n    ): void {\n      super.parseBlockBody(node, allowDirectives, topLevel, end);\n\n      const directiveStatements = node.directives.map(d =>\n        this.directiveToStmt(d),\n      );\n      node.body = directiveStatements.concat(node.body);\n      delete node.directives;\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      );\n      if (method.typeParameters) {\n        // $FlowIgnore\n        method.value.typeParameters = method.typeParameters;\n        delete method.typeParameters;\n      }\n      classBody.body.push(method);\n    }\n\n    parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      switch (this.state.type) {\n        case tt.num:\n        case tt.string:\n          return this.estreeParseLiteral(this.state.value);\n\n        case tt.regexp:\n          return this.estreeParseRegExpLiteral(this.state.value);\n\n        case tt.bigint:\n          return this.estreeParseBigIntLiteral(this.state.value);\n\n        case tt._null:\n          return this.estreeParseLiteral(null);\n\n        case tt._true:\n          return this.estreeParseLiteral(true);\n\n        case tt._false:\n          return this.estreeParseLiteral(false);\n\n        default:\n          return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    parseLiteral<T: N.Literal>(\n      value: any,\n      type: /*T[\"kind\"]*/ string,\n      startPos?: number,\n      startLoc?: Position,\n    ): T {\n      const node = super.parseLiteral(value, type, startPos, startLoc);\n      node.raw = node.extra.raw;\n      delete node.extra;\n\n      return node;\n    }\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpression: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      super.parseFunctionBody(node, allowExpression, isMethod);\n      node.expression = node.body.type !== \"BlockStatement\";\n    }\n\n    parseMethod<T: N.MethodLike>(\n      node: T,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowDirectSuper: boolean,\n      type: string,\n      inClassScope: boolean = false,\n    ): T {\n      let funcNode = this.startNode();\n      funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n      funcNode = super.parseMethod(\n        funcNode,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowDirectSuper,\n        type,\n        inClassScope,\n      );\n      funcNode.type = \"FunctionExpression\";\n      delete funcNode.kind;\n      // $FlowIgnore\n      node.value = funcNode;\n\n      type = type === \"ClassMethod\" ? \"MethodDefinition\" : type;\n      return this.finishNode(node, type);\n    }\n\n    parseObjectMethod(\n      prop: N.ObjectMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      containsEsc: boolean,\n    ): ?N.ObjectMethod {\n      const node: N.EstreeProperty = (super.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ): any);\n\n      if (node) {\n        node.type = \"Property\";\n        if (((node: any): N.ClassMethod).kind === \"method\") node.kind = \"init\";\n        node.shorthand = false;\n      }\n\n      return (node: any);\n    }\n\n    parseObjectProperty(\n      prop: N.ObjectProperty,\n      startPos: ?number,\n      startLoc: ?Position,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n    ): ?N.ObjectProperty {\n      const node: N.EstreeProperty = (super.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      ): any);\n\n      if (node) {\n        node.kind = \"init\";\n        node.type = \"Property\";\n      }\n\n      return (node: any);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (isSimpleProperty(node)) {\n        this.toAssignable(node.value);\n\n        return node;\n      }\n\n      return super.toAssignable(node);\n    }\n\n    toAssignableObjectExpressionProp(prop: N.Node, isLast: boolean) {\n      if (prop.kind === \"get\" || prop.kind === \"set\") {\n        throw this.raise(prop.key.start, Errors.PatternHasAccessor);\n      } else if (prop.method) {\n        throw this.raise(prop.key.start, Errors.PatternHasMethod);\n      } else {\n        super.toAssignableObjectExpressionProp(prop, isLast);\n      }\n    }\n\n    finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n      node: T,\n      optional: boolean,\n    ): N.Expression {\n      super.finishCallExpression(node, optional);\n\n      if (node.callee.type === \"Import\") {\n        ((node: N.Node): N.EstreeImportExpression).type = \"ImportExpression\";\n        ((node: N.Node): N.EstreeImportExpression).source = node.arguments[0];\n        delete node.arguments;\n        delete node.callee;\n      }\n\n      return node;\n    }\n\n    toReferencedListDeep(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): void {\n      // ImportExpressions do not have an arguments array.\n      if (!exprList) {\n        return;\n      }\n\n      super.toReferencedListDeep(exprList, isParenthesizedExpr);\n    }\n\n    parseExport(node: N.Node) {\n      super.parseExport(node);\n\n      switch (node.type) {\n        case \"ExportAllDeclaration\":\n          node.exported = null;\n          break;\n\n        case \"ExportNamedDeclaration\":\n          if (\n            node.specifiers.length === 1 &&\n            node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n          ) {\n            node.type = \"ExportAllDeclaration\";\n            node.exported = node.specifiers[0].exported;\n            delete node.specifiers;\n          }\n\n          break;\n      }\n\n      return node;\n    }\n  };\n","// @flow\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport { types as tt } from \"./types\";\nimport { lineBreak } from \"../util/whitespace\";\n\nexport class TokContext {\n  constructor(\n    token: string,\n    isExpr?: boolean,\n    preserveSpace?: boolean,\n    override?: ?Function, // Takes a Tokenizer as a this-parameter, and returns void.\n  ) {\n    this.token = token;\n    this.isExpr = !!isExpr;\n    this.preserveSpace = !!preserveSpace;\n    this.override = override;\n  }\n\n  token: string;\n  isExpr: boolean;\n  preserveSpace: boolean;\n  override: ?Function;\n}\n\nexport const types: {\n  [key: string]: TokContext,\n} = {\n  braceStatement: new TokContext(\"{\", false),\n  braceExpression: new TokContext(\"{\", true),\n  templateQuasi: new TokContext(\"${\", false),\n  parenStatement: new TokContext(\"(\", false),\n  parenExpression: new TokContext(\"(\", true),\n  template: new TokContext(\"`\", true, true, p => p.readTmplToken()),\n  functionExpression: new TokContext(\"function\", true),\n  functionStatement: new TokContext(\"function\", false),\n};\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.state.context.length === 1) {\n    this.state.exprAllowed = true;\n    return;\n  }\n\n  let out = this.state.context.pop();\n  if (out === types.braceStatement && this.curContext().token === \"function\") {\n    out = this.state.context.pop();\n  }\n\n  this.state.exprAllowed = !out.isExpr;\n};\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false;\n  if (prevType !== tt.dot) {\n    if (\n      (this.state.value === \"of\" && !this.state.exprAllowed) ||\n      (this.state.value === \"yield\" && this.prodParam.hasYield)\n    ) {\n      allowed = true;\n    }\n  }\n  this.state.exprAllowed = allowed;\n\n  if (this.state.isIterator) {\n    this.state.isIterator = false;\n  }\n};\n\ntt.braceL.updateContext = function(prevType) {\n  this.state.context.push(\n    this.braceIsBlock(prevType) ? types.braceStatement : types.braceExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.dollarBraceL.updateContext = function() {\n  this.state.context.push(types.templateQuasi);\n  this.state.exprAllowed = true;\n};\n\ntt.parenL.updateContext = function(prevType) {\n  const statementParens =\n    prevType === tt._if ||\n    prevType === tt._for ||\n    prevType === tt._with ||\n    prevType === tt._while;\n  this.state.context.push(\n    statementParens ? types.parenStatement : types.parenExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n};\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (\n    prevType.beforeExpr &&\n    prevType !== tt.semi &&\n    prevType !== tt._else &&\n    !(\n      prevType === tt._return &&\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) &&\n    !(\n      (prevType === tt.colon || prevType === tt.braceL) &&\n      this.curContext() === types.b_stat\n    )\n  ) {\n    this.state.context.push(types.functionExpression);\n  } else {\n    this.state.context.push(types.functionStatement);\n  }\n\n  this.state.exprAllowed = false;\n};\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.template) {\n    this.state.context.pop();\n  } else {\n    this.state.context.push(types.template);\n  }\n  this.state.exprAllowed = false;\n};\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nconst nonASCIIidentifierStart = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: $ReadOnlyArray<number>): boolean {\n  let pos = 0x10000;\n  for (let i = 0, length = set.length; i < length; i += 2) {\n    pos += set[i];\n    if (pos > code) return false;\n\n    pos += set[i + 1];\n    if (pos >= code) return true;\n  }\n  return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n  if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return (\n      code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n    );\n  }\n  return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n  if (code < charCodes.digit0) return code === charCodes.dollarSign;\n  if (code < charCodes.colon) return true;\n  if (code < charCodes.uppercaseA) return false;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n  }\n  return (\n    isInAstralSet(code, astralIdentifierStartCodes) ||\n    isInAstralSet(code, astralIdentifierCodes)\n  );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n  let isFirst = true;\n  for (const char of Array.from(name)) {\n    const cp = char.codePointAt(0);\n    if (isFirst) {\n      if (!isIdentifierStart(cp)) {\n        return false;\n      }\n      isFirst = false;\n    } else if (!isIdentifierChar(cp)) {\n      return false;\n    }\n  }\n  return true;\n}\n","// @flow\n\nconst reservedWords = {\n  keyword: [\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"continue\",\n    \"debugger\",\n    \"default\",\n    \"do\",\n    \"else\",\n    \"finally\",\n    \"for\",\n    \"function\",\n    \"if\",\n    \"return\",\n    \"switch\",\n    \"throw\",\n    \"try\",\n    \"var\",\n    \"const\",\n    \"while\",\n    \"with\",\n    \"new\",\n    \"this\",\n    \"super\",\n    \"class\",\n    \"extends\",\n    \"export\",\n    \"import\",\n    \"null\",\n    \"true\",\n    \"false\",\n    \"in\",\n    \"instanceof\",\n    \"typeof\",\n    \"void\",\n    \"delete\",\n  ],\n  strict: [\n    \"implements\",\n    \"interface\",\n    \"let\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"static\",\n    \"yield\",\n  ],\n  strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n  return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n  return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n  word: string,\n  inModule: boolean,\n): boolean {\n  return (\n    isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n  );\n}\n\nexport function isKeyword(word: string): boolean {\n  return keywords.has(word);\n}\n","/* eslint max-len: 0 */\n\n// @flow\n\nimport * as charCodes from \"charcodes\";\n\nexport {\n  isIdentifierStart,\n  isIdentifierChar,\n  isReservedWord,\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n  isStrictReservedWord,\n  isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(current: number, next: number): boolean {\n  return current === charCodes.atSign && next === charCodes.atSign;\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type Parser from \"../parser\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport * as N from \"../types\";\nimport type { Options } from \"../options\";\nimport type { Pos, Position } from \"../util/location\";\nimport type State from \"../tokenizer/state\";\nimport { types as tc } from \"../tokenizer/context\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../util/identifier\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_ARROW,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n} from \"../util/scopeflags\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport { Errors } from \"../parser/location\";\n\nconst reservedTypes = new Set([\n  \"_\",\n  \"any\",\n  \"bool\",\n  \"boolean\",\n  \"empty\",\n  \"extends\",\n  \"false\",\n  \"interface\",\n  \"mixed\",\n  \"null\",\n  \"number\",\n  \"static\",\n  \"string\",\n  \"true\",\n  \"typeof\",\n  \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = Object.freeze({\n  AmbiguousConditionalArrow:\n    \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n  AmbiguousDeclareModuleKind:\n    \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module\",\n  AssignReservedType: \"Cannot overwrite reserved type %0\",\n  DeclareClassElement:\n    \"The `declare` modifier can only appear on class fields.\",\n  DeclareClassFieldInitializer:\n    \"Initializers are not allowed in fields with the `declare` modifier.\",\n  DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement\",\n  EnumBooleanMemberNotInitialized:\n    \"Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.\",\n  EnumDuplicateMemberName:\n    \"Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.\",\n  EnumInconsistentMemberValues:\n    \"Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\",\n  EnumInvalidExplicitType:\n    \"Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidExplicitTypeUnknownSupplied:\n    \"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidMemberInitializerPrimaryType:\n    \"Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.\",\n  EnumInvalidMemberInitializerSymbolType:\n    \"Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.\",\n  EnumInvalidMemberInitializerUnknownType:\n    \"The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.\",\n  EnumInvalidMemberName:\n    \"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.\",\n  EnumNumberMemberNotInitialized:\n    \"Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.\",\n  EnumStringMemberInconsistentlyInitailized:\n    \"String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.\",\n  ImportTypeShorthandOnlyInPureImport:\n    \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\",\n  InexactInsideExact:\n    \"Explicit inexact syntax cannot appear inside an explicit exact object type\",\n  InexactInsideNonObject:\n    \"Explicit inexact syntax cannot appear in class or interface definitions\",\n  InexactVariance: \"Explicit inexact syntax cannot have variance\",\n  InvalidNonTypeImportInDeclareModule:\n    \"Imports within a `declare module` body must always be `import type` or `import typeof`\",\n  MissingTypeParamDefault:\n    \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n  NestedDeclareModule:\n    \"`declare module` cannot be used inside another `declare module`\",\n  NestedFlowComment: \"Cannot have a flow comment inside another flow comment\",\n  OptionalBindingPattern:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  SpreadVariance: \"Spread properties cannot have variance\",\n  TypeBeforeInitializer:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  TypeCastInPattern:\n    \"The type cast expression is expected to be wrapped with parenthesis\",\n  UnexpectedExplicitInexactInObject:\n    \"Explicit inexact syntax must appear at the end of an inexact object\",\n  UnexpectedReservedType: \"Unexpected reserved type %0\",\n  UnexpectedReservedUnderscore:\n    \"`_` is only allowed as a type argument to call or new\",\n  UnexpectedSpaceBetweenModuloChecks:\n    \"Spaces between `%` and `checks` are not allowed here.\",\n  UnexpectedSpreadType:\n    \"Spread operator cannot appear in class or interface definitions\",\n  UnexpectedSubtractionOperand:\n    'Unexpected token, expected \"number\" or \"bigint\"',\n  UnexpectedTokenAfterTypeParameter:\n    \"Expected an arrow function after this type parameter declaration\",\n  UnsupportedDeclareExportKind:\n    \"`declare export %0` is not supported. Use `%1` instead\",\n  UnsupportedStatementInDeclareModule:\n    \"Only declares and type imports are allowed inside declare module\",\n  UnterminatedFlowComment: \"Unterminated flow-comment\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n  return (\n    bodyElement.type === \"DeclareExportAllDeclaration\" ||\n    (bodyElement.type === \"DeclareExportDeclaration\" &&\n      (!bodyElement.declaration ||\n        (bodyElement.declaration.type !== \"TypeAlias\" &&\n          bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n  );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n  return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nfunction isMaybeDefaultImport(state: State): boolean {\n  return (\n    (state.type === tt.name || !!state.type.keyword) && state.value !== \"from\"\n  );\n}\n\nconst exportSuggestions = {\n  const: \"declare export var\",\n  let: \"declare export var\",\n  type: \"export type\",\n  interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition<T>(\n  list: T[],\n  test: (T, number, T[]) => ?boolean,\n): [T[], T[]] {\n  const list1 = [];\n  const list2 = [];\n  for (let i = 0; i < list.length; i++) {\n    (test(list[i], i, list) ? list1 : list2).push(list[i]);\n  }\n  return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\ntype EnumContext = {|\n  enumName: string,\n  explicitType: EnumExplicitType,\n  memberName: string,\n|};\ntype EnumMemberInit =\n  | {| type: \"number\", pos: number, value: N.Node |}\n  | {| type: \"string\", pos: number, value: N.Node |}\n  | {| type: \"boolean\", pos: number, value: N.Node |}\n  | {| type: \"invalid\", pos: number |}\n  | {| type: \"none\", pos: number |};\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // The value of the @flow/@noflow pragma. Initially undefined, transitions\n    // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n    // past the initial comment.\n    flowPragma: void | null | \"flow\" | \"noflow\";\n\n    constructor(options: ?Options, input: string) {\n      super(options, input);\n      this.flowPragma = undefined;\n    }\n\n    shouldParseTypes(): boolean {\n      return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n    }\n\n    shouldParseEnums(): boolean {\n      return !!this.getPluginOption(\"flow\", \"enums\");\n    }\n\n    finishToken(type: TokenType, val: any): void {\n      if (\n        type !== tt.string &&\n        type !== tt.semi &&\n        type !== tt.interpreterDirective\n      ) {\n        if (this.flowPragma === undefined) {\n          this.flowPragma = null;\n        }\n      }\n      return super.finishToken(type, val);\n    }\n\n    addComment(comment: N.Comment): void {\n      if (this.flowPragma === undefined) {\n        // Try to parse a flow pragma.\n        const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n        if (!matches) {\n          // do nothing\n        } else if (matches[1] === \"flow\") {\n          this.flowPragma = \"flow\";\n        } else if (matches[1] === \"noflow\") {\n          this.flowPragma = \"noflow\";\n        } else {\n          throw new Error(\"Unexpected flow pragma\");\n        }\n      }\n      return super.addComment(comment);\n    }\n\n    flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tok || tt.colon);\n\n      const type = this.flowParseType();\n      this.state.inType = oldInType;\n      return type;\n    }\n\n    flowParsePredicate(): N.FlowType {\n      const node = this.startNode();\n      const moduloLoc = this.state.startLoc;\n      const moduloPos = this.state.start;\n      this.expect(tt.modulo);\n      const checksLoc = this.state.startLoc;\n      this.expectContextual(\"checks\");\n      // Force '%' and 'checks' to be adjacent\n      if (\n        moduloLoc.line !== checksLoc.line ||\n        moduloLoc.column !== checksLoc.column - 1\n      ) {\n        this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks);\n      }\n      if (this.eat(tt.parenL)) {\n        node.value = this.parseExpression();\n        this.expect(tt.parenR);\n        return this.finishNode(node, \"DeclaredPredicate\");\n      } else {\n        return this.finishNode(node, \"InferredPredicate\");\n      }\n    }\n\n    flowParseTypeAndPredicateInitialiser(): [?N.FlowType, ?N.FlowPredicate] {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tt.colon);\n      let type = null;\n      let predicate = null;\n      if (this.match(tt.modulo)) {\n        this.state.inType = oldInType;\n        predicate = this.flowParsePredicate();\n      } else {\n        type = this.flowParseType();\n        this.state.inType = oldInType;\n        if (this.match(tt.modulo)) {\n          predicate = this.flowParsePredicate();\n        }\n      }\n      return [type, predicate];\n    }\n\n    flowParseDeclareClass(node: N.FlowDeclareClass): N.FlowDeclareClass {\n      this.next();\n      this.flowParseInterfaceish(node, /*isClass*/ true);\n      return this.finishNode(node, \"DeclareClass\");\n    }\n\n    flowParseDeclareFunction(\n      node: N.FlowDeclareFunction,\n    ): N.FlowDeclareFunction {\n      this.next();\n\n      const id = (node.id = this.parseIdentifier());\n\n      const typeNode = this.startNode();\n      const typeContainer = this.startNode();\n\n      if (this.isRelational(\"<\")) {\n        typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        typeNode.typeParameters = null;\n      }\n\n      this.expect(tt.parenL);\n      const tmp = this.flowParseFunctionTypeParams();\n      typeNode.params = tmp.params;\n      typeNode.rest = tmp.rest;\n      this.expect(tt.parenR);\n\n      [\n        // $FlowFixMe (destructuring not supported yet)\n        typeNode.returnType,\n        // $FlowFixMe (destructuring not supported yet)\n        node.predicate,\n      ] = this.flowParseTypeAndPredicateInitialiser();\n\n      typeContainer.typeAnnotation = this.finishNode(\n        typeNode,\n        \"FunctionTypeAnnotation\",\n      );\n\n      id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n      this.resetEndLocation(id);\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareFunction\");\n    }\n\n    flowParseDeclare(\n      node: N.FlowDeclare,\n      insideModule?: boolean,\n    ): N.FlowDeclare {\n      if (this.match(tt._class)) {\n        return this.flowParseDeclareClass(node);\n      } else if (this.match(tt._function)) {\n        return this.flowParseDeclareFunction(node);\n      } else if (this.match(tt._var)) {\n        return this.flowParseDeclareVariable(node);\n      } else if (this.eatContextual(\"module\")) {\n        if (this.match(tt.dot)) {\n          return this.flowParseDeclareModuleExports(node);\n        } else {\n          if (insideModule) {\n            this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule);\n          }\n          return this.flowParseDeclareModule(node);\n        }\n      } else if (this.isContextual(\"type\")) {\n        return this.flowParseDeclareTypeAlias(node);\n      } else if (this.isContextual(\"opaque\")) {\n        return this.flowParseDeclareOpaqueType(node);\n      } else if (this.isContextual(\"interface\")) {\n        return this.flowParseDeclareInterface(node);\n      } else if (this.match(tt._export)) {\n        return this.flowParseDeclareExportDeclaration(node, insideModule);\n      } else {\n        throw this.unexpected();\n      }\n    }\n\n    flowParseDeclareVariable(\n      node: N.FlowDeclareVariable,\n    ): N.FlowDeclareVariable {\n      this.next();\n      node.id = this.flowParseTypeAnnotatableIdentifier(\n        /*allowPrimitiveOverride*/ true,\n      );\n      this.scope.declareName(node.id.name, BIND_VAR, node.id.start);\n      this.semicolon();\n      return this.finishNode(node, \"DeclareVariable\");\n    }\n\n    flowParseDeclareModule(node: N.FlowDeclareModule): N.FlowDeclareModule {\n      this.scope.enter(SCOPE_OTHER);\n\n      if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        node.id = this.parseIdentifier();\n      }\n\n      const bodyNode = (node.body = this.startNode());\n      const body = (bodyNode.body = []);\n      this.expect(tt.braceL);\n      while (!this.match(tt.braceR)) {\n        let bodyNode = this.startNode();\n\n        if (this.match(tt._import)) {\n          this.next();\n          if (!this.isContextual(\"type\") && !this.match(tt._typeof)) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InvalidNonTypeImportInDeclareModule,\n            );\n          }\n          this.parseImport(bodyNode);\n        } else {\n          this.expectContextual(\n            \"declare\",\n            FlowErrors.UnsupportedStatementInDeclareModule,\n          );\n\n          bodyNode = this.flowParseDeclare(bodyNode, true);\n        }\n\n        body.push(bodyNode);\n      }\n\n      this.scope.exit();\n\n      this.expect(tt.braceR);\n\n      this.finishNode(bodyNode, \"BlockStatement\");\n\n      let kind = null;\n      let hasModuleExport = false;\n      body.forEach(bodyElement => {\n        if (isEsModuleType(bodyElement)) {\n          if (kind === \"CommonJS\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"ES\";\n        } else if (bodyElement.type === \"DeclareModuleExports\") {\n          if (hasModuleExport) {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.DuplicateDeclareModuleExports,\n            );\n          }\n          if (kind === \"ES\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"CommonJS\";\n          hasModuleExport = true;\n        }\n      });\n\n      node.kind = kind || \"CommonJS\";\n      return this.finishNode(node, \"DeclareModule\");\n    }\n\n    flowParseDeclareExportDeclaration(\n      node: N.FlowDeclareExportDeclaration,\n      insideModule: ?boolean,\n    ): N.FlowDeclareExportDeclaration {\n      this.expect(tt._export);\n\n      if (this.eat(tt._default)) {\n        if (this.match(tt._function) || this.match(tt._class)) {\n          // declare export default class ...\n          // declare export default function ...\n          node.declaration = this.flowParseDeclare(this.startNode());\n        } else {\n          // declare export default [type];\n          node.declaration = this.flowParseType();\n          this.semicolon();\n        }\n        node.default = true;\n\n        return this.finishNode(node, \"DeclareExportDeclaration\");\n      } else {\n        if (\n          this.match(tt._const) ||\n          this.isLet() ||\n          ((this.isContextual(\"type\") || this.isContextual(\"interface\")) &&\n            !insideModule)\n        ) {\n          const label = this.state.value;\n          const suggestion = exportSuggestions[label];\n          throw this.raise(\n            this.state.start,\n            FlowErrors.UnsupportedDeclareExportKind,\n            label,\n            suggestion,\n          );\n        }\n\n        if (\n          this.match(tt._var) || // declare export var ...\n          this.match(tt._function) || // declare export function ...\n          this.match(tt._class) || // declare export class ...\n          this.isContextual(\"opaque\") // declare export opaque ..\n        ) {\n          node.declaration = this.flowParseDeclare(this.startNode());\n          node.default = false;\n\n          return this.finishNode(node, \"DeclareExportDeclaration\");\n        } else if (\n          this.match(tt.star) || // declare export * from ''\n          this.match(tt.braceL) || // declare export {} ...\n          this.isContextual(\"interface\") || // declare export interface ...\n          this.isContextual(\"type\") || // declare export type ...\n          this.isContextual(\"opaque\") // declare export opaque type ...\n        ) {\n          node = this.parseExport(node);\n          if (node.type === \"ExportNamedDeclaration\") {\n            // flow does not support the ExportNamedDeclaration\n            // $FlowIgnore\n            node.type = \"ExportDeclaration\";\n            // $FlowFixMe\n            node.default = false;\n            delete node.exportKind;\n          }\n\n          // $FlowIgnore\n          node.type = \"Declare\" + node.type;\n\n          return node;\n        }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParseDeclareModuleExports(\n      node: N.FlowDeclareModuleExports,\n    ): N.FlowDeclareModuleExports {\n      this.next();\n      this.expectContextual(\"exports\");\n      node.typeAnnotation = this.flowParseTypeAnnotation();\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareModuleExports\");\n    }\n\n    flowParseDeclareTypeAlias(\n      node: N.FlowDeclareTypeAlias,\n    ): N.FlowDeclareTypeAlias {\n      this.next();\n      this.flowParseTypeAlias(node);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareTypeAlias\";\n      return node;\n    }\n\n    flowParseDeclareOpaqueType(\n      node: N.FlowDeclareOpaqueType,\n    ): N.FlowDeclareOpaqueType {\n      this.next();\n      this.flowParseOpaqueType(node, true);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareOpaqueType\";\n      return node;\n    }\n\n    flowParseDeclareInterface(\n      node: N.FlowDeclareInterface,\n    ): N.FlowDeclareInterface {\n      this.next();\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"DeclareInterface\");\n    }\n\n    // Interfaces\n\n    flowParseInterfaceish(\n      node: N.FlowDeclare,\n      isClass?: boolean = false,\n    ): void {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ !isClass,\n        /* declaration */ true,\n      );\n\n      this.scope.declareName(\n        node.id.name,\n        isClass ? BIND_FUNCTION : BIND_LEXICAL,\n        node.id.start,\n      );\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.extends = [];\n      node.implements = [];\n      node.mixins = [];\n\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (!isClass && this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"mixins\")) {\n        this.next();\n        do {\n          node.mixins.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        do {\n          node.implements.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: isClass,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: isClass,\n        allowInexact: false,\n      });\n    }\n\n    flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n      const node = this.startNode();\n\n      node.id = this.flowParseQualifiedTypeIdentifier();\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      } else {\n        node.typeParameters = null;\n      }\n\n      return this.finishNode(node, \"InterfaceExtends\");\n    }\n\n    flowParseInterface(node: N.FlowInterface): N.FlowInterface {\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"InterfaceDeclaration\");\n    }\n\n    checkNotUnderscore(word: string) {\n      if (word === \"_\") {\n        this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore);\n      }\n    }\n\n    checkReservedType(word: string, startLoc: number, declaration?: boolean) {\n      if (!reservedTypes.has(word)) return;\n\n      this.raise(\n        startLoc,\n        declaration\n          ? FlowErrors.AssignReservedType\n          : FlowErrors.UnexpectedReservedType,\n        word,\n      );\n    }\n\n    flowParseRestrictedIdentifier(\n      liberal?: boolean,\n      declaration?: boolean,\n    ): N.Identifier {\n      this.checkReservedType(this.state.value, this.state.start, declaration);\n      return this.parseIdentifier(liberal);\n    }\n\n    // Type aliases\n\n    flowParseTypeAlias(node: N.FlowTypeAlias): N.FlowTypeAlias {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ false,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.right = this.flowParseTypeInitialiser(tt.eq);\n      this.semicolon();\n\n      return this.finishNode(node, \"TypeAlias\");\n    }\n\n    flowParseOpaqueType(\n      node: N.FlowOpaqueType,\n      declare: boolean,\n    ): N.FlowOpaqueType {\n      this.expectContextual(\"type\");\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ true,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      // Parse the supertype\n      node.supertype = null;\n      if (this.match(tt.colon)) {\n        node.supertype = this.flowParseTypeInitialiser(tt.colon);\n      }\n\n      node.impltype = null;\n      if (!declare) {\n        node.impltype = this.flowParseTypeInitialiser(tt.eq);\n      }\n      this.semicolon();\n\n      return this.finishNode(node, \"OpaqueType\");\n    }\n\n    // Type annotations\n\n    flowParseTypeParameter(requireDefault?: boolean = false): N.TypeParameter {\n      const nodeStart = this.state.start;\n\n      const node = this.startNode();\n\n      const variance = this.flowParseVariance();\n\n      const ident = this.flowParseTypeAnnotatableIdentifier();\n      node.name = ident.name;\n      node.variance = variance;\n      node.bound = ident.typeAnnotation;\n\n      if (this.match(tt.eq)) {\n        this.eat(tt.eq);\n        node.default = this.flowParseType();\n      } else {\n        if (requireDefault) {\n          this.raise(nodeStart, FlowErrors.MissingTypeParamDefault);\n        }\n      }\n\n      return this.finishNode(node, \"TypeParameter\");\n    }\n\n    flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n      const oldInType = this.state.inType;\n      const node = this.startNode();\n      node.params = [];\n\n      this.state.inType = true;\n\n      // istanbul ignore else: this condition is already checked at all call sites\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      let defaultRequired = false;\n\n      do {\n        const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n        node.params.push(typeParameter);\n\n        if (typeParameter.default) {\n          defaultRequired = true;\n        }\n\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      } while (!this.isRelational(\">\"));\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterDeclaration\");\n    }\n\n    flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n      this.state.noAnonFunctionType = false;\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseType());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseTypeOrImplicitInstantiation());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseInterfaceType(): N.FlowInterfaceType {\n      const node = this.startNode();\n      this.expectContextual(\"interface\");\n\n      node.extends = [];\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: false,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: false,\n        allowInexact: false,\n      });\n\n      return this.finishNode(node, \"InterfaceTypeAnnotation\");\n    }\n\n    flowParseObjectPropertyKey(): N.Expression {\n      return this.match(tt.num) || this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(true);\n    }\n\n    flowParseObjectTypeIndexer(\n      node: N.FlowObjectTypeIndexer,\n      isStatic: boolean,\n      variance: ?N.FlowVariance,\n    ): N.FlowObjectTypeIndexer {\n      node.static = isStatic;\n\n      // Note: bracketL has already been consumed\n      if (this.lookahead().type === tt.colon) {\n        node.id = this.flowParseObjectPropertyKey();\n        node.key = this.flowParseTypeInitialiser();\n      } else {\n        node.id = null;\n        node.key = this.flowParseType();\n      }\n      this.expect(tt.bracketR);\n      node.value = this.flowParseTypeInitialiser();\n      node.variance = variance;\n\n      return this.finishNode(node, \"ObjectTypeIndexer\");\n    }\n\n    flowParseObjectTypeInternalSlot(\n      node: N.FlowObjectTypeInternalSlot,\n      isStatic: boolean,\n    ): N.FlowObjectTypeInternalSlot {\n      node.static = isStatic;\n      // Note: both bracketL have already been consumed\n      node.id = this.flowParseObjectPropertyKey();\n      this.expect(tt.bracketR);\n      this.expect(tt.bracketR);\n      if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n        node.method = true;\n        node.optional = false;\n        node.value = this.flowParseObjectTypeMethodish(\n          this.startNodeAt(node.start, node.loc.start),\n        );\n      } else {\n        node.method = false;\n        if (this.eat(tt.question)) {\n          node.optional = true;\n        }\n        node.value = this.flowParseTypeInitialiser();\n      }\n      return this.finishNode(node, \"ObjectTypeInternalSlot\");\n    }\n\n    flowParseObjectTypeMethodish(\n      node: N.FlowFunctionTypeAnnotation,\n    ): N.FlowFunctionTypeAnnotation {\n      node.params = [];\n      node.rest = null;\n      node.typeParameters = null;\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      this.expect(tt.parenL);\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        node.params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n\n      if (this.eat(tt.ellipsis)) {\n        node.rest = this.flowParseFunctionTypeParam();\n      }\n      this.expect(tt.parenR);\n      node.returnType = this.flowParseTypeInitialiser();\n\n      return this.finishNode(node, \"FunctionTypeAnnotation\");\n    }\n\n    flowParseObjectTypeCallProperty(\n      node: N.FlowObjectTypeCallProperty,\n      isStatic: boolean,\n    ): N.FlowObjectTypeCallProperty {\n      const valueNode = this.startNode();\n      node.static = isStatic;\n      node.value = this.flowParseObjectTypeMethodish(valueNode);\n      return this.finishNode(node, \"ObjectTypeCallProperty\");\n    }\n\n    flowParseObjectType({\n      allowStatic,\n      allowExact,\n      allowSpread,\n      allowProto,\n      allowInexact,\n    }: {\n      allowStatic: boolean,\n      allowExact: boolean,\n      allowSpread: boolean,\n      allowProto: boolean,\n      allowInexact: boolean,\n    }): N.FlowObjectTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n\n      const nodeStart = this.startNode();\n\n      nodeStart.callProperties = [];\n      nodeStart.properties = [];\n      nodeStart.indexers = [];\n      nodeStart.internalSlots = [];\n\n      let endDelim;\n      let exact;\n      let inexact = false;\n      if (allowExact && this.match(tt.braceBarL)) {\n        this.expect(tt.braceBarL);\n        endDelim = tt.braceBarR;\n        exact = true;\n      } else {\n        this.expect(tt.braceL);\n        endDelim = tt.braceR;\n        exact = false;\n      }\n\n      nodeStart.exact = exact;\n\n      while (!this.match(endDelim)) {\n        let isStatic = false;\n        let protoStart: ?number = null;\n        let inexactStart: ?number = null;\n        const node = this.startNode();\n\n        if (allowProto && this.isContextual(\"proto\")) {\n          const lookahead = this.lookahead();\n\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            protoStart = this.state.start;\n            allowStatic = false;\n          }\n        }\n\n        if (allowStatic && this.isContextual(\"static\")) {\n          const lookahead = this.lookahead();\n\n          // static is a valid identifier name\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            isStatic = true;\n          }\n        }\n\n        const variance = this.flowParseVariance();\n\n        if (this.eat(tt.bracketL)) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (this.eat(tt.bracketL)) {\n            if (variance) {\n              this.unexpected(variance.start);\n            }\n            nodeStart.internalSlots.push(\n              this.flowParseObjectTypeInternalSlot(node, isStatic),\n            );\n          } else {\n            nodeStart.indexers.push(\n              this.flowParseObjectTypeIndexer(node, isStatic, variance),\n            );\n          }\n        } else if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n          nodeStart.callProperties.push(\n            this.flowParseObjectTypeCallProperty(node, isStatic),\n          );\n        } else {\n          let kind = \"init\";\n\n          if (this.isContextual(\"get\") || this.isContextual(\"set\")) {\n            const lookahead = this.lookahead();\n            if (\n              lookahead.type === tt.name ||\n              lookahead.type === tt.string ||\n              lookahead.type === tt.num\n            ) {\n              kind = this.state.value;\n              this.next();\n            }\n          }\n\n          const propOrInexact = this.flowParseObjectTypeProperty(\n            node,\n            isStatic,\n            protoStart,\n            variance,\n            kind,\n            allowSpread,\n            allowInexact ?? !exact,\n          );\n\n          if (propOrInexact === null) {\n            inexact = true;\n            inexactStart = this.state.lastTokStart;\n          } else {\n            nodeStart.properties.push(propOrInexact);\n          }\n        }\n\n        this.flowObjectTypeSemicolon();\n\n        if (\n          inexactStart &&\n          !this.match(tt.braceR) &&\n          !this.match(tt.braceBarR)\n        ) {\n          this.raise(\n            inexactStart,\n            FlowErrors.UnexpectedExplicitInexactInObject,\n          );\n        }\n      }\n\n      this.expect(endDelim);\n\n      /* The inexact flag should only be added on ObjectTypeAnnotations that\n       * are not the body of an interface, declare interface, or declare class.\n       * Since spreads are only allowed in objec types, checking that is\n       * sufficient here.\n       */\n      if (allowSpread) {\n        nodeStart.inexact = inexact;\n      }\n\n      const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n      this.state.inType = oldInType;\n\n      return out;\n    }\n\n    flowParseObjectTypeProperty(\n      node: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n      isStatic: boolean,\n      protoStart: ?number,\n      variance: ?N.FlowVariance,\n      kind: string,\n      allowSpread: boolean,\n      allowInexact: boolean,\n    ): (N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty) | null {\n      if (this.eat(tt.ellipsis)) {\n        const isInexactToken =\n          this.match(tt.comma) ||\n          this.match(tt.semi) ||\n          this.match(tt.braceR) ||\n          this.match(tt.braceBarR);\n\n        if (isInexactToken) {\n          if (!allowSpread) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InexactInsideNonObject,\n            );\n          } else if (!allowInexact) {\n            this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact);\n          }\n          if (variance) {\n            this.raise(variance.start, FlowErrors.InexactVariance);\n          }\n\n          return null;\n        }\n\n        if (!allowSpread) {\n          this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType);\n        }\n        if (protoStart != null) {\n          this.unexpected(protoStart);\n        }\n        if (variance) {\n          this.raise(variance.start, FlowErrors.SpreadVariance);\n        }\n\n        node.argument = this.flowParseType();\n        return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n      } else {\n        node.key = this.flowParseObjectPropertyKey();\n        node.static = isStatic;\n        node.proto = protoStart != null;\n        node.kind = kind;\n\n        let optional = false;\n        if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n          // This is a method property\n          node.method = true;\n\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n\n          node.value = this.flowParseObjectTypeMethodish(\n            this.startNodeAt(node.start, node.loc.start),\n          );\n          if (kind === \"get\" || kind === \"set\") {\n            this.flowCheckGetterSetterParams(node);\n          }\n        } else {\n          if (kind !== \"init\") this.unexpected();\n\n          node.method = false;\n\n          if (this.eat(tt.question)) {\n            optional = true;\n          }\n          node.value = this.flowParseTypeInitialiser();\n          node.variance = variance;\n        }\n\n        node.optional = optional;\n\n        return this.finishNode(node, \"ObjectTypeProperty\");\n      }\n    }\n\n    // This is similar to checkGetterSetterParams, but as\n    // @babel/parser uses non estree properties we cannot reuse it here\n    flowCheckGetterSetterParams(\n      property: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n    ): void {\n      const paramCount = property.kind === \"get\" ? 0 : 1;\n      const start = property.start;\n      const length =\n        property.value.params.length + (property.value.rest ? 1 : 0);\n      if (length !== paramCount) {\n        if (property.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      }\n\n      if (property.kind === \"set\" && property.value.rest) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    flowObjectTypeSemicolon(): void {\n      if (\n        !this.eat(tt.semi) &&\n        !this.eat(tt.comma) &&\n        !this.match(tt.braceR) &&\n        !this.match(tt.braceBarR)\n      ) {\n        this.unexpected();\n      }\n    }\n\n    flowParseQualifiedTypeIdentifier(\n      startPos?: number,\n      startLoc?: Position,\n      id?: N.Identifier,\n    ): N.FlowQualifiedTypeIdentifier {\n      startPos = startPos || this.state.start;\n      startLoc = startLoc || this.state.startLoc;\n      let node = id || this.flowParseRestrictedIdentifier(true);\n\n      while (this.eat(tt.dot)) {\n        const node2 = this.startNodeAt(startPos, startLoc);\n        node2.qualification = node;\n        node2.id = this.flowParseRestrictedIdentifier(true);\n        node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n      }\n\n      return node;\n    }\n\n    flowParseGenericType(\n      startPos: number,\n      startLoc: Position,\n      id: N.Identifier,\n    ): N.FlowGenericTypeAnnotation {\n      const node = this.startNodeAt(startPos, startLoc);\n\n      node.typeParameters = null;\n      node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      }\n\n      return this.finishNode(node, \"GenericTypeAnnotation\");\n    }\n\n    flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n      const node = this.startNode();\n      this.expect(tt._typeof);\n      node.argument = this.flowParsePrimaryType();\n      return this.finishNode(node, \"TypeofTypeAnnotation\");\n    }\n\n    flowParseTupleType(): N.FlowTupleTypeAnnotation {\n      const node = this.startNode();\n      node.types = [];\n      this.expect(tt.bracketL);\n      // We allow trailing commas\n      while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n        node.types.push(this.flowParseType());\n        if (this.match(tt.bracketR)) break;\n        this.expect(tt.comma);\n      }\n      this.expect(tt.bracketR);\n      return this.finishNode(node, \"TupleTypeAnnotation\");\n    }\n\n    flowParseFunctionTypeParam(): N.FlowFunctionTypeParam {\n      let name = null;\n      let optional = false;\n      let typeAnnotation = null;\n      const node = this.startNode();\n      const lh = this.lookahead();\n      if (lh.type === tt.colon || lh.type === tt.question) {\n        name = this.parseIdentifier();\n        if (this.eat(tt.question)) {\n          optional = true;\n        }\n        typeAnnotation = this.flowParseTypeInitialiser();\n      } else {\n        typeAnnotation = this.flowParseType();\n      }\n      node.name = name;\n      node.optional = optional;\n      node.typeAnnotation = typeAnnotation;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    reinterpretTypeAsFunctionTypeParam(\n      type: N.FlowType,\n    ): N.FlowFunctionTypeParam {\n      const node = this.startNodeAt(type.start, type.loc.start);\n      node.name = null;\n      node.optional = false;\n      node.typeAnnotation = type;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    flowParseFunctionTypeParams(\n      params: N.FlowFunctionTypeParam[] = [],\n    ): { params: N.FlowFunctionTypeParam[], rest: ?N.FlowFunctionTypeParam } {\n      let rest: ?N.FlowFunctionTypeParam = null;\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n      if (this.eat(tt.ellipsis)) {\n        rest = this.flowParseFunctionTypeParam();\n      }\n      return { params, rest };\n    }\n\n    flowIdentToTypeAnnotation(\n      startPos: number,\n      startLoc: Position,\n      node: N.FlowTypeAnnotation,\n      id: N.Identifier,\n    ): N.FlowTypeAnnotation {\n      switch (id.name) {\n        case \"any\":\n          return this.finishNode(node, \"AnyTypeAnnotation\");\n\n        case \"bool\":\n        case \"boolean\":\n          return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n        case \"mixed\":\n          return this.finishNode(node, \"MixedTypeAnnotation\");\n\n        case \"empty\":\n          return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n        case \"number\":\n          return this.finishNode(node, \"NumberTypeAnnotation\");\n\n        case \"string\":\n          return this.finishNode(node, \"StringTypeAnnotation\");\n\n        case \"symbol\":\n          return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n        default:\n          this.checkNotUnderscore(id.name);\n          return this.flowParseGenericType(startPos, startLoc, id);\n      }\n    }\n\n    // The parsing of types roughly parallels the parsing of expressions, and\n    // primary types are kind of like primary expressions...they're the\n    // primitives with which other types are constructed.\n    flowParsePrimaryType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const node = this.startNode();\n      let tmp;\n      let type;\n      let isGroupedType = false;\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n      switch (this.state.type) {\n        case tt.name:\n          if (this.isContextual(\"interface\")) {\n            return this.flowParseInterfaceType();\n          }\n\n          return this.flowIdentToTypeAnnotation(\n            startPos,\n            startLoc,\n            node,\n            this.parseIdentifier(),\n          );\n\n        case tt.braceL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: false,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: true,\n          });\n\n        case tt.braceBarL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: true,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: false,\n          });\n\n        case tt.bracketL:\n          this.state.noAnonFunctionType = false;\n          type = this.flowParseTupleType();\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n          return type;\n\n        case tt.relational:\n          if (this.state.value === \"<\") {\n            node.typeParameters = this.flowParseTypeParameterDeclaration();\n            this.expect(tt.parenL);\n            tmp = this.flowParseFunctionTypeParams();\n            node.params = tmp.params;\n            node.rest = tmp.rest;\n            this.expect(tt.parenR);\n\n            this.expect(tt.arrow);\n\n            node.returnType = this.flowParseType();\n\n            return this.finishNode(node, \"FunctionTypeAnnotation\");\n          }\n          break;\n\n        case tt.parenL:\n          this.next();\n\n          // Check to see if this is actually a grouped type\n          if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n            if (this.match(tt.name)) {\n              const token = this.lookahead().type;\n              isGroupedType = token !== tt.question && token !== tt.colon;\n            } else {\n              isGroupedType = true;\n            }\n          }\n\n          if (isGroupedType) {\n            this.state.noAnonFunctionType = false;\n            type = this.flowParseType();\n            this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n            // A `,` or a `) =>` means this is an anonymous function type\n            if (\n              this.state.noAnonFunctionType ||\n              !(\n                this.match(tt.comma) ||\n                (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n              )\n            ) {\n              this.expect(tt.parenR);\n              return type;\n            } else {\n              // Eat a comma if there is one\n              this.eat(tt.comma);\n            }\n          }\n\n          if (type) {\n            tmp = this.flowParseFunctionTypeParams([\n              this.reinterpretTypeAsFunctionTypeParam(type),\n            ]);\n          } else {\n            tmp = this.flowParseFunctionTypeParams();\n          }\n\n          node.params = tmp.params;\n          node.rest = tmp.rest;\n\n          this.expect(tt.parenR);\n\n          this.expect(tt.arrow);\n\n          node.returnType = this.flowParseType();\n\n          node.typeParameters = null;\n\n          return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n        case tt.string:\n          return this.parseLiteral(\n            this.state.value,\n            \"StringLiteralTypeAnnotation\",\n          );\n\n        case tt._true:\n        case tt._false:\n          node.value = this.match(tt._true);\n          this.next();\n          return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            this.next();\n            if (this.match(tt.num)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"NumberLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            if (this.match(tt.bigint)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"BigIntLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            throw this.raise(\n              this.state.start,\n              FlowErrors.UnexpectedSubtractionOperand,\n            );\n          }\n\n          throw this.unexpected();\n        case tt.num:\n          return this.parseLiteral(\n            this.state.value,\n            \"NumberLiteralTypeAnnotation\",\n          );\n\n        case tt.bigint:\n          return this.parseLiteral(\n            this.state.value,\n            \"BigIntLiteralTypeAnnotation\",\n          );\n\n        case tt._void:\n          this.next();\n          return this.finishNode(node, \"VoidTypeAnnotation\");\n\n        case tt._null:\n          this.next();\n          return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n        case tt._this:\n          this.next();\n          return this.finishNode(node, \"ThisTypeAnnotation\");\n\n        case tt.star:\n          this.next();\n          return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n        default:\n          if (this.state.type.keyword === \"typeof\") {\n            return this.flowParseTypeofType();\n          } else if (this.state.type.keyword) {\n            const label = this.state.type.label;\n            this.next();\n            return super.createIdentifier(node, label);\n          }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParsePostfixType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start,\n        startLoc = this.state.startLoc;\n      let type = this.flowParsePrimaryType();\n      while (this.match(tt.bracketL) && !this.canInsertSemicolon()) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.elementType = type;\n        this.expect(tt.bracketL);\n        this.expect(tt.bracketR);\n        type = this.finishNode(node, \"ArrayTypeAnnotation\");\n      }\n      return type;\n    }\n\n    flowParsePrefixType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      if (this.eat(tt.question)) {\n        node.typeAnnotation = this.flowParsePrefixType();\n        return this.finishNode(node, \"NullableTypeAnnotation\");\n      } else {\n        return this.flowParsePostfixType();\n      }\n    }\n\n    flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n      const param = this.flowParsePrefixType();\n      if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n        // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n        const node = this.startNodeAt(param.start, param.loc.start);\n        node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n        node.rest = null;\n        node.returnType = this.flowParseType();\n        node.typeParameters = null;\n        return this.finishNode(node, \"FunctionTypeAnnotation\");\n      }\n      return param;\n    }\n\n    flowParseIntersectionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseAND);\n      const type = this.flowParseAnonFunctionWithoutParens();\n      node.types = [type];\n      while (this.eat(tt.bitwiseAND)) {\n        node.types.push(this.flowParseAnonFunctionWithoutParens());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"IntersectionTypeAnnotation\");\n    }\n\n    flowParseUnionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseOR);\n      const type = this.flowParseIntersectionType();\n      node.types = [type];\n      while (this.eat(tt.bitwiseOR)) {\n        node.types.push(this.flowParseIntersectionType());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"UnionTypeAnnotation\");\n    }\n\n    flowParseType(): N.FlowTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      const type = this.flowParseUnionType();\n      this.state.inType = oldInType;\n      // Ensure that a brace after a function generic type annotation is a\n      // statement, except in arrow functions (noAnonFunctionType)\n      this.state.exprAllowed =\n        this.state.exprAllowed || this.state.noAnonFunctionType;\n      return type;\n    }\n\n    flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n      if (this.state.type === tt.name && this.state.value === \"_\") {\n        const startPos = this.state.start;\n        const startLoc = this.state.startLoc;\n        const node = this.parseIdentifier();\n        return this.flowParseGenericType(startPos, startLoc, node);\n      } else {\n        return this.flowParseType();\n      }\n    }\n\n    flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      node.typeAnnotation = this.flowParseTypeInitialiser();\n      return this.finishNode(node, \"TypeAnnotation\");\n    }\n\n    flowParseTypeAnnotatableIdentifier(\n      allowPrimitiveOverride?: boolean,\n    ): N.Identifier {\n      const ident = allowPrimitiveOverride\n        ? this.parseIdentifier()\n        : this.flowParseRestrictedIdentifier();\n      if (this.match(tt.colon)) {\n        ident.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(ident);\n      }\n      return ident;\n    }\n\n    typeCastToParameter(node: N.Node): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    flowParseVariance(): ?N.FlowVariance {\n      let variance = null;\n      if (this.match(tt.plusMin)) {\n        variance = this.startNode();\n        if (this.state.value === \"+\") {\n          variance.kind = \"plus\";\n        } else {\n          variance.kind = \"minus\";\n        }\n        this.next();\n        this.finishNode(variance, \"Variance\");\n      }\n      return variance;\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpressionBody: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      if (allowExpressionBody) {\n        return this.forwardNoArrowParamsConversionAt(node, () =>\n          super.parseFunctionBody(node, true, isMethod),\n        );\n      }\n\n      return super.parseFunctionBody(node, false, isMethod);\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        const typeNode = this.startNode();\n\n        [\n          // $FlowFixMe (destructuring not supported yet)\n          typeNode.typeAnnotation,\n          // $FlowFixMe (destructuring not supported yet)\n          node.predicate,\n        ] = this.flowParseTypeAndPredicateInitialiser();\n\n        node.returnType = typeNode.typeAnnotation\n          ? this.finishNode(typeNode, \"TypeAnnotation\")\n          : null;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    // interfaces and enums\n    parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n      // strict mode handling of `interface` since it's a reserved word\n      if (\n        this.state.strict &&\n        this.match(tt.name) &&\n        this.state.value === \"interface\"\n      ) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseInterface(node);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      } else {\n        const stmt = super.parseStatement(context, topLevel);\n        // We will parse a flow pragma in any comment before the first statement.\n        if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n          this.flowPragma = null;\n        }\n        return stmt;\n      }\n    }\n\n    // declares, interfaces and type aliases\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.ExpressionStatement {\n      if (expr.type === \"Identifier\") {\n        if (expr.name === \"declare\") {\n          if (\n            this.match(tt._class) ||\n            this.match(tt.name) ||\n            this.match(tt._function) ||\n            this.match(tt._var) ||\n            this.match(tt._export)\n          ) {\n            return this.flowParseDeclare(node);\n          }\n        } else if (this.match(tt.name)) {\n          if (expr.name === \"interface\") {\n            return this.flowParseInterface(node);\n          } else if (expr.name === \"type\") {\n            return this.flowParseTypeAlias(node);\n          } else if (expr.name === \"opaque\") {\n            return this.flowParseOpaqueType(node, false);\n          }\n        }\n      }\n\n      return super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    shouldParseExportDeclaration(): boolean {\n      return (\n        this.isContextual(\"type\") ||\n        this.isContextual(\"interface\") ||\n        this.isContextual(\"opaque\") ||\n        (this.shouldParseEnums() && this.isContextual(\"enum\")) ||\n        super.shouldParseExportDeclaration()\n      );\n    }\n\n    isExportDefaultSpecifier(): boolean {\n      if (\n        this.match(tt.name) &&\n        (this.state.value === \"type\" ||\n          this.state.value === \"interface\" ||\n          this.state.value === \"opaque\" ||\n          (this.shouldParseEnums() && this.state.value === \"enum\"))\n      ) {\n        return false;\n      }\n\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      }\n      return super.parseExportDefaultExpression();\n    }\n\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      if (!this.match(tt.question)) return expr;\n\n      // only use the expensive \"tryParse\" method if there is a question mark\n      // and if we come from inside parens\n      if (refNeedsArrowPos) {\n        const result = this.tryParse(() =>\n          super.parseConditional(expr, noIn, startPos, startLoc),\n        );\n\n        if (!result.node) {\n          // $FlowIgnore\n          refNeedsArrowPos.start = result.error.pos || this.state.start;\n          return expr;\n        }\n\n        if (result.error) this.state = result.failState;\n        return result.node;\n      }\n\n      this.expect(tt.question);\n      const state = this.state.clone();\n      const originalNoArrowAt = this.state.noArrowAt;\n      const node = this.startNodeAt(startPos, startLoc);\n      let { consequent, failed } = this.tryParseConditionalConsequent();\n      let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n      if (failed || invalid.length > 0) {\n        const noArrowAt = [...originalNoArrowAt];\n\n        if (invalid.length > 0) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt;\n\n          for (let i = 0; i < invalid.length; i++) {\n            noArrowAt.push(invalid[i].start);\n          }\n\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n          [valid, invalid] = this.getArrowLikeExpressions(consequent);\n        }\n\n        if (failed && valid.length > 1) {\n          // if there are two or more possible correct ways of parsing, throw an\n          // error.\n          // e.g.   Source: a ? (b): c => (d): e => f\n          //      Result 1: a ? b : (c => ((d): e => f))\n          //      Result 2: a ? ((b): c => d) : (e => f)\n          this.raise(state.start, FlowErrors.AmbiguousConditionalArrow);\n        }\n\n        if (failed && valid.length === 1) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt.concat(valid[0].start);\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n        }\n      }\n\n      this.getArrowLikeExpressions(consequent, true);\n\n      this.state.noArrowAt = originalNoArrowAt;\n      this.expect(tt.colon);\n\n      node.test = expr;\n      node.consequent = consequent;\n      node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n        this.parseMaybeAssign(noIn, undefined, undefined, undefined),\n      );\n\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n\n    tryParseConditionalConsequent(): {\n      consequent: N.Expression,\n      failed: boolean,\n    } {\n      this.state.noArrowParamsConversionAt.push(this.state.start);\n\n      const consequent = this.parseMaybeAssign();\n      const failed = !this.match(tt.colon);\n\n      this.state.noArrowParamsConversionAt.pop();\n\n      return { consequent, failed };\n    }\n\n    // Given an expression, walks through out its arrow functions whose body is\n    // an expression and through out conditional expressions. It returns every\n    // function which has been parsed with a return type but could have been\n    // parenthesized expressions.\n    // These functions are separated into two arrays: one containing the ones\n    // whose parameters can be converted to assignable lists, one containing the\n    // others.\n    getArrowLikeExpressions(\n      node: N.Expression,\n      disallowInvalid?: boolean,\n    ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n      const stack = [node];\n      const arrows: N.ArrowFunctionExpression[] = [];\n\n      while (stack.length !== 0) {\n        const node = stack.pop();\n        if (node.type === \"ArrowFunctionExpression\") {\n          if (node.typeParameters || !node.returnType) {\n            // This is an arrow expression without ambiguity, so check its parameters\n            this.finishArrowValidation(node);\n          } else {\n            arrows.push(node);\n          }\n          stack.push(node.body);\n        } else if (node.type === \"ConditionalExpression\") {\n          stack.push(node.consequent);\n          stack.push(node.alternate);\n        }\n      }\n\n      if (disallowInvalid) {\n        arrows.forEach(node => this.finishArrowValidation(node));\n        return [arrows, []];\n      }\n\n      return partition(arrows, node =>\n        node.params.every(param => this.isAssignable(param, true)),\n      );\n    }\n\n    finishArrowValidation(node: N.ArrowFunctionExpression) {\n      this.toAssignableList(\n        // node.params is Expression[] instead of $ReadOnlyArray<Pattern> because it\n        // has not been converted yet.\n        ((node.params: any): N.Expression[]),\n        node.extra?.trailingComma,\n      );\n      // Enter scope, as checkParams defines bindings\n      this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n      // Use super's method to force the parameters to be checked\n      super.checkParams(node, false, true);\n      this.scope.exit();\n    }\n\n    forwardNoArrowParamsConversionAt<T>(node: N.Node, parse: () => T): T {\n      let result: T;\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        this.state.noArrowParamsConversionAt.push(this.state.start);\n        result = parse();\n        this.state.noArrowParamsConversionAt.pop();\n      } else {\n        result = parse();\n      }\n\n      return result;\n    }\n\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode = this.startNodeAt(startPos, startLoc);\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    assertModuleNodeAllowed(node: N.Node) {\n      if (\n        (node.type === \"ImportDeclaration\" &&\n          (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n        (node.type === \"ExportNamedDeclaration\" &&\n          node.exportKind === \"type\") ||\n        (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n      ) {\n        // Allow Flowtype imports and exports in all conditions because\n        // Flow itself does not care about 'sourceType'.\n        return;\n      }\n\n      super.assertModuleNodeAllowed(node);\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      const decl = super.parseExport(node);\n      if (\n        decl.type === \"ExportNamedDeclaration\" ||\n        decl.type === \"ExportAllDeclaration\"\n      ) {\n        decl.exportKind = decl.exportKind || \"value\";\n      }\n      return decl;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      if (this.isContextual(\"type\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n\n        if (this.match(tt.braceL)) {\n          // export type { foo, bar };\n          node.specifiers = this.parseExportSpecifiers();\n          this.parseExportFrom(node);\n          return null;\n        } else {\n          // export type Foo = Bar;\n          return this.flowParseTypeAlias(declarationNode);\n        }\n      } else if (this.isContextual(\"opaque\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n        // export opaque type Foo = Bar;\n        return this.flowParseOpaqueType(declarationNode, false);\n      } else if (this.isContextual(\"interface\")) {\n        node.exportKind = \"type\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseInterface(declarationNode);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        node.exportKind = \"value\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(declarationNode);\n      } else {\n        return super.parseExportDeclaration(node);\n      }\n    }\n\n    eatExportStar(node: N.Node): boolean {\n      if (super.eatExportStar(...arguments)) return true;\n\n      if (this.isContextual(\"type\") && this.lookahead().type === tt.star) {\n        node.exportKind = \"type\";\n        this.next();\n        this.next();\n        return true;\n      }\n\n      return false;\n    }\n\n    maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n      const pos = this.state.start;\n      const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n      if (hasNamespace && node.exportKind === \"type\") {\n        this.unexpected(pos);\n      }\n      return hasNamespace;\n    }\n\n    parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) {\n      super.parseClassId(node, isStatement, optionalId);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      const pos = this.state.start;\n      if (this.isContextual(\"declare\")) {\n        if (this.parseClassMemberFromModifier(classBody, member)) {\n          // 'declare' is a class element name\n          return;\n        }\n\n        member.declare = true;\n      }\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n      if (member.declare) {\n        if (\n          member.type !== \"ClassProperty\" &&\n          member.type !== \"ClassPrivateProperty\"\n        ) {\n          this.raise(pos, FlowErrors.DeclareClassElement);\n        } else if (member.value) {\n          this.raise(\n            member.value.start,\n            FlowErrors.DeclareClassFieldInitializer,\n          );\n        }\n      }\n    }\n\n    // ensure that inside flow types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n        return this.finishOp(tt.braceBarL, 2);\n      } else if (\n        this.state.inType &&\n        (code === charCodes.greaterThan || code === charCodes.lessThan)\n      ) {\n        return this.finishOp(tt.relational, 1);\n      } else if (isIteratorStart(code, next)) {\n        this.state.isIterator = true;\n        return super.readWord();\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    isAssignable(node: N.Node, isBinding?: boolean): boolean {\n      switch (node.type) {\n        case \"Identifier\":\n        case \"ObjectPattern\":\n        case \"ArrayPattern\":\n        case \"AssignmentPattern\":\n          return true;\n\n        case \"ObjectExpression\": {\n          const last = node.properties.length - 1;\n          return node.properties.every((prop, i) => {\n            return (\n              prop.type !== \"ObjectMethod\" &&\n              (i === last || prop.type === \"SpreadElement\") &&\n              this.isAssignable(prop)\n            );\n          });\n        }\n\n        case \"ObjectProperty\":\n          return this.isAssignable(node.value);\n\n        case \"SpreadElement\":\n          return this.isAssignable(node.argument);\n\n        case \"ArrayExpression\":\n          return node.elements.every(element => this.isAssignable(element));\n\n        case \"AssignmentExpression\":\n          return node.operator === \"=\";\n\n        case \"ParenthesizedExpression\":\n        case \"TypeCastExpression\":\n          return this.isAssignable(node.expression);\n\n        case \"MemberExpression\":\n        case \"OptionalMemberExpression\":\n          return !isBinding;\n\n        default:\n          return false;\n      }\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (node.type === \"TypeCastExpression\") {\n        return super.toAssignable(this.typeCastToParameter(node));\n      } else {\n        return super.toAssignable(node);\n      }\n    }\n\n    // turn type casts that we found in function parameter head into type annotated params\n    toAssignableList(\n      exprList: N.Expression[],\n      trailingCommaPos?: ?number,\n    ): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TypeCastExpression\") {\n          exprList[i] = this.typeCastToParameter(expr);\n        }\n      }\n      return super.toAssignableList(exprList, trailingCommaPos);\n    }\n\n    // this is a list of nodes, from something like a call expression, we need to filter the\n    // type casts that we've found that are illegal in this context\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (\n          expr &&\n          expr.type === \"TypeCastExpression\" &&\n          (!expr.extra || !expr.extra.parenthesized) &&\n          (exprList.length > 1 || !isParenthesizedExpr)\n        ) {\n          this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern);\n        }\n      }\n\n      return exprList;\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      if (expr.type !== \"TypeCastExpression\") {\n        return super.checkLVal(\n          expr,\n          bindingType,\n          checkClashes,\n          contextDescription,\n        );\n      }\n    }\n\n    // parse class property type annotations\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassPrivateProperty(node);\n    }\n\n    // determine whether or not we're currently in the position where a class method would appear\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    // determine whether or not we're currently in the position where a class property would appear\n    isClassProperty(): boolean {\n      return this.match(tt.colon) || super.isClassProperty();\n    }\n\n    isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n      return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n    }\n\n    // parse type parameters for class methods\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    // parse a the super class type parameters and implements\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n      }\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        const implemented: N.FlowClassImplements[] = (node.implements = []);\n        do {\n          const node = this.startNode();\n          node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n          if (this.isRelational(\"<\")) {\n            node.typeParameters = this.flowParseTypeParameterInstantiation();\n          } else {\n            node.typeParameters = null;\n          }\n          implemented.push(this.finishNode(node, \"ClassImplements\"));\n        } while (this.eat(tt.comma));\n      }\n    }\n\n    parsePropertyName(\n      node: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n      isPrivateNameAllowed: boolean,\n    ): N.Identifier {\n      const variance = this.flowParseVariance();\n      const key = super.parsePropertyName(node, isPrivateNameAllowed);\n      // $FlowIgnore (\"variance\" not defined on TsNamedTypeElementBase)\n      node.variance = variance;\n      return key;\n    }\n\n    // parse type parameters for object method shorthand\n    parseObjPropValue(\n      prop: N.ObjectMember,\n      startPos: ?number,\n      startLoc: ?Position,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n      containsEsc: boolean,\n    ): void {\n      if ((prop: $FlowFixMe).variance) {\n        this.unexpected((prop: $FlowFixMe).variance.start);\n      }\n      delete (prop: $FlowFixMe).variance;\n\n      let typeParameters;\n\n      // method shorthand\n      if (this.isRelational(\"<\")) {\n        typeParameters = this.flowParseTypeParameterDeclaration();\n        if (!this.match(tt.parenL)) this.unexpected();\n      }\n\n      super.parseObjPropValue(\n        prop,\n        startPos,\n        startLoc,\n        isGenerator,\n        isAsync,\n        isPattern,\n        refExpressionErrors,\n        containsEsc,\n      );\n\n      // add typeParameters if we found them\n      if (typeParameters) {\n        (prop.value || prop).typeParameters = typeParameters;\n      }\n    }\n\n    parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, FlowErrors.OptionalBindingPattern);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      if (this.match(tt.colon)) {\n        param.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      this.resetEndLocation(param);\n      return param;\n    }\n\n    parseMaybeDefault(\n      startPos?: ?number,\n      startLoc?: ?Position,\n      left?: ?N.Pattern,\n    ): N.Pattern {\n      const node = super.parseMaybeDefault(startPos, startLoc, left);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer);\n      }\n\n      return node;\n    }\n\n    shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n      if (!hasTypeImportKind(node)) {\n        return super.shouldParseDefaultImport(node);\n      }\n\n      return isMaybeDefaultImport(this.state);\n    }\n\n    parseImportSpecifierLocal(\n      node: N.ImportDeclaration,\n      specifier: N.Node,\n      type: string,\n      contextDescription: string,\n    ): void {\n      specifier.local = hasTypeImportKind(node)\n        ? this.flowParseRestrictedIdentifier(\n            /* liberal */ true,\n            /* declaration */ true,\n          )\n        : this.parseIdentifier();\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        contextDescription,\n      );\n      node.specifiers.push(this.finishNode(specifier, type));\n    }\n\n    // parse typeof and type imports\n    maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n      node.importKind = \"value\";\n\n      let kind = null;\n      if (this.match(tt._typeof)) {\n        kind = \"typeof\";\n      } else if (this.isContextual(\"type\")) {\n        kind = \"type\";\n      }\n      if (kind) {\n        const lh = this.lookahead();\n\n        // import type * is not allowed\n        if (kind === \"type\" && lh.type === tt.star) {\n          this.unexpected(lh.start);\n        }\n\n        if (\n          isMaybeDefaultImport(lh) ||\n          lh.type === tt.braceL ||\n          lh.type === tt.star\n        ) {\n          this.next();\n          node.importKind = kind;\n        }\n      }\n\n      return super.maybeParseDefaultImportSpecifier(node);\n    }\n\n    // parse import-type/typeof shorthand\n    parseImportSpecifier(node: N.ImportDeclaration): void {\n      const specifier = this.startNode();\n      const firstIdentLoc = this.state.start;\n      const firstIdent = this.parseIdentifier(true);\n\n      let specifierTypeKind = null;\n      if (firstIdent.name === \"type\") {\n        specifierTypeKind = \"type\";\n      } else if (firstIdent.name === \"typeof\") {\n        specifierTypeKind = \"typeof\";\n      }\n\n      let isBinding = false;\n      if (this.isContextual(\"as\") && !this.isLookaheadContextual(\"as\")) {\n        const as_ident = this.parseIdentifier(true);\n        if (\n          specifierTypeKind !== null &&\n          !this.match(tt.name) &&\n          !this.state.type.keyword\n        ) {\n          // `import {type as ,` or `import {type as }`\n          specifier.imported = as_ident;\n          specifier.importKind = specifierTypeKind;\n          specifier.local = as_ident.__clone();\n        } else {\n          // `import {type as foo`\n          specifier.imported = firstIdent;\n          specifier.importKind = null;\n          specifier.local = this.parseIdentifier();\n        }\n      } else if (\n        specifierTypeKind !== null &&\n        (this.match(tt.name) || this.state.type.keyword)\n      ) {\n        // `import {type foo`\n        specifier.imported = this.parseIdentifier(true);\n        specifier.importKind = specifierTypeKind;\n        if (this.eatContextual(\"as\")) {\n          specifier.local = this.parseIdentifier();\n        } else {\n          isBinding = true;\n          specifier.local = specifier.imported.__clone();\n        }\n      } else {\n        isBinding = true;\n        specifier.imported = firstIdent;\n        specifier.importKind = null;\n        specifier.local = specifier.imported.__clone();\n      }\n\n      const nodeIsTypeImport = hasTypeImportKind(node);\n      const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n      if (nodeIsTypeImport && specifierIsTypeImport) {\n        this.raise(\n          firstIdentLoc,\n          FlowErrors.ImportTypeShorthandOnlyInPureImport,\n        );\n      }\n\n      if (nodeIsTypeImport || specifierIsTypeImport) {\n        this.checkReservedType(\n          specifier.local.name,\n          specifier.local.start,\n          /* declaration */ true,\n        );\n      }\n\n      if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) {\n        this.checkReservedWord(\n          specifier.local.name,\n          specifier.start,\n          true,\n          true,\n        );\n      }\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        \"import specifier\",\n      );\n      node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n    }\n\n    // parse function type parameters - function foo<T>() {}\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      // $FlowFixMe\n      const kind = node.kind;\n      if (kind !== \"get\" && kind !== \"set\" && this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // parse flow type annotations on variable declarator heads - let foo: string = bar\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (this.match(tt.colon)) {\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n        this.state.noAnonFunctionType = true;\n        node.returnType = this.flowParseTypeAnnotation();\n        this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      }\n\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    // todo description\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    // We need to support type parameter declarations for arrow functions. This\n    // is tricky. There are three situations we need to handle\n    //\n    // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n    //    fails, we'll try an arrow function. If that fails, we'll throw the JSX\n    //    error.\n    // 2. This is an arrow function. We'll parse the type parameter declaration,\n    //    parse the rest, make sure the rest is an arrow function, and go from\n    //    there\n    // 3. This is neither. Just call the super method\n    parseMaybeAssign(\n      noIn?: ?boolean,\n      refExpressionErrors?: ?ExpressionErrors,\n      afterLeftParse?: Function,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      let state = null;\n\n      let jsx;\n\n      if (\n        this.hasPlugin(\"jsx\") &&\n        (this.match(tt.jsxTagStart) || this.isRelational(\"<\"))\n      ) {\n        state = this.state.clone();\n\n        jsx = this.tryParse(\n          () =>\n            super.parseMaybeAssign(\n              noIn,\n              refExpressionErrors,\n              afterLeftParse,\n              refNeedsArrowPos,\n            ),\n          state,\n        );\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === tc.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === tc.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if ((jsx && jsx.error) || this.isRelational(\"<\")) {\n        state = state || this.state.clone();\n\n        let typeParameters;\n\n        const arrow = this.tryParse(() => {\n          typeParameters = this.flowParseTypeParameterDeclaration();\n\n          const arrowExpression = this.forwardNoArrowParamsConversionAt(\n            typeParameters,\n            () =>\n              super.parseMaybeAssign(\n                noIn,\n                refExpressionErrors,\n                afterLeftParse,\n                refNeedsArrowPos,\n              ),\n          );\n          arrowExpression.typeParameters = typeParameters;\n          this.resetStartLocationFromNode(arrowExpression, typeParameters);\n\n          return arrowExpression;\n        }, state);\n\n        const arrowExpression: ?N.ArrowFunctionExpression =\n          arrow.node && arrow.node.type === \"ArrowFunctionExpression\"\n            ? arrow.node\n            : null;\n\n        if (!arrow.error && arrowExpression) return arrowExpression;\n\n        // If we are here, both JSX and Flow parsing attemps failed.\n        // Give the precedence to the JSX error, except if JSX had an\n        // unrecoverable error while Flow didn't.\n        // If the error is recoverable, we can only re-report it if there is\n        // a node we can return.\n\n        if (jsx && jsx.node) {\n          /*:: invariant(jsx.failState) */\n          this.state = jsx.failState;\n          return jsx.node;\n        }\n\n        if (arrowExpression) {\n          /*:: invariant(arrow.failState) */\n          this.state = arrow.failState;\n          return arrowExpression;\n        }\n\n        if (jsx && jsx.thrown) throw jsx.error;\n        if (arrow.thrown) throw arrow.error;\n\n        /*:: invariant(typeParameters) */\n        throw this.raise(\n          typeParameters.start,\n          FlowErrors.UnexpectedTokenAfterTypeParameter,\n        );\n      }\n\n      return super.parseMaybeAssign(\n        noIn,\n        refExpressionErrors,\n        afterLeftParse,\n        refNeedsArrowPos,\n      );\n    }\n\n    // handle return types for arrow functions\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const result = this.tryParse(() => {\n          const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n          this.state.noAnonFunctionType = true;\n\n          const typeNode = this.startNode();\n\n          [\n            // $FlowFixMe (destructuring not supported yet)\n            typeNode.typeAnnotation,\n            // $FlowFixMe (destructuring not supported yet)\n            node.predicate,\n          ] = this.flowParseTypeAndPredicateInitialiser();\n\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n          if (this.canInsertSemicolon()) this.unexpected();\n          if (!this.match(tt.arrow)) this.unexpected();\n\n          return typeNode;\n        });\n\n        if (result.thrown) return null;\n        /*:: invariant(result.node) */\n\n        if (result.error) this.state = result.failState;\n\n        // assign after it is clear it is an arrow\n        node.returnType = result.node.typeAnnotation\n          ? this.finishNode(result.node, \"TypeAnnotation\")\n          : null;\n      }\n\n      return super.parseArrow(node);\n    }\n\n    shouldParseArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    setArrowFunctionParameters(\n      node: N.ArrowFunctionExpression,\n      params: N.Expression[],\n    ): void {\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        node.params = params;\n      } else {\n        super.setArrowFunctionParameters(node, params);\n      }\n    }\n\n    checkParams(\n      node: N.Function,\n      allowDuplicates: boolean,\n      isArrowFunction: ?boolean,\n    ): void {\n      if (\n        isArrowFunction &&\n        this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n      ) {\n        return;\n      }\n\n      return super.checkParams(...arguments);\n    }\n\n    parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n      return super.parseParenAndDistinguishExpression(\n        canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n      );\n    }\n\n    parseSubscripts(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls?: ?boolean,\n    ): N.Expression {\n      if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.state.noArrowAt.indexOf(startPos) !== -1\n      ) {\n        this.next();\n\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        base = this.finishNode(node, \"CallExpression\");\n      } else if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.isRelational(\"<\")\n      ) {\n        const state = this.state.clone();\n        const arrow = this.tryParse(\n          abort =>\n            this.parseAsyncArrowWithTypeParameters(startPos, startLoc) ||\n            abort(),\n          state,\n        );\n\n        if (!arrow.error && !arrow.aborted) return arrow.node;\n\n        const result = this.tryParse(\n          () => super.parseSubscripts(base, startPos, startLoc, noCalls),\n          state,\n        );\n\n        if (result.node && !result.error) return result.node;\n\n        if (arrow.node) {\n          this.state = arrow.failState;\n          return arrow.node;\n        }\n\n        if (result.node) {\n          this.state = result.failState;\n          return result.node;\n        }\n\n        throw arrow.error || result.error;\n      }\n\n      return super.parseSubscripts(base, startPos, startLoc, noCalls);\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      subscriptState: N.ParseSubscriptState,\n    ): N.Expression {\n      if (this.match(tt.questionDot) && this.isLookaheadRelational(\"<\")) {\n        subscriptState.optionalChainMember = true;\n        if (noCalls) {\n          subscriptState.stop = true;\n          return base;\n        }\n        this.next();\n        const node: N.OptionalCallExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.callee = base;\n        node.typeArguments = this.flowParseTypeParameterInstantiation();\n        this.expect(tt.parenL);\n        // $FlowFixMe\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        node.optional = true;\n        return this.finishCallExpression(node, /* optional */ true);\n      } else if (\n        !noCalls &&\n        this.shouldParseTypes() &&\n        this.isRelational(\"<\")\n      ) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n\n        const result = this.tryParse(() => {\n          node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n          this.expect(tt.parenL);\n          node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n          if (subscriptState.optionalChainMember) node.optional = false;\n          return this.finishCallExpression(\n            node,\n            subscriptState.optionalChainMember,\n          );\n        });\n\n        if (result.node) {\n          if (result.error) this.state = result.failState;\n          return result.node;\n        }\n      }\n\n      return super.parseSubscript(\n        base,\n        startPos,\n        startLoc,\n        noCalls,\n        subscriptState,\n      );\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      let targs = null;\n      if (this.shouldParseTypes() && this.isRelational(\"<\")) {\n        targs = this.tryParse(() =>\n          this.flowParseTypeParameterInstantiationCallOrNew(),\n        ).node;\n      }\n      node.typeArguments = targs;\n\n      super.parseNewArguments(node);\n    }\n\n    parseAsyncArrowWithTypeParameters(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      const node = this.startNodeAt(startPos, startLoc);\n      this.parseFunctionParams(node);\n      if (!this.parseArrow(node)) return;\n      return this.parseArrowExpression(\n        node,\n        /* params */ undefined,\n        /* isAsync */ true,\n      );\n    }\n\n    readToken_mult_modulo(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.asterisk &&\n        next === charCodes.slash &&\n        this.state.hasFlowComment\n      ) {\n        this.state.hasFlowComment = false;\n        this.state.pos += 2;\n        this.nextToken();\n        return;\n      }\n\n      super.readToken_mult_modulo(code);\n    }\n\n    readToken_pipe_amp(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.verticalBar &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        // '|}'\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      super.readToken_pipe_amp(code);\n    }\n\n    parseTopLevel(file: N.File, program: N.Program): N.File {\n      const fileNode = super.parseTopLevel(file, program);\n      if (this.state.hasFlowComment) {\n        this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment);\n      }\n      return fileNode;\n    }\n\n    skipBlockComment(): void {\n      if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n        if (this.state.hasFlowComment) {\n          this.unexpected(null, FlowErrors.NestedFlowComment);\n        }\n        this.hasFlowCommentCompletion();\n        this.state.pos += this.skipFlowComment();\n        this.state.hasFlowComment = true;\n        return;\n      }\n\n      if (this.state.hasFlowComment) {\n        const end = this.input.indexOf(\"*-/\", (this.state.pos += 2));\n        if (end === -1) {\n          throw this.raise(this.state.pos - 2, Errors.UnterminatedComment);\n        }\n        this.state.pos = end + 3;\n        return;\n      }\n\n      super.skipBlockComment();\n    }\n\n    skipFlowComment(): number | boolean {\n      const { pos } = this.state;\n      let shiftToFirstNonWhiteSpace = 2;\n      while (\n        [charCodes.space, charCodes.tab].includes(\n          this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n        )\n      ) {\n        shiftToFirstNonWhiteSpace++;\n      }\n\n      const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n      const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n      if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n        return shiftToFirstNonWhiteSpace + 2; // check for /*::\n      }\n      if (\n        this.input.slice(\n          shiftToFirstNonWhiteSpace + pos,\n          shiftToFirstNonWhiteSpace + pos + 12,\n        ) === \"flow-include\"\n      ) {\n        return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n      }\n      if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n        return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n      }\n      return false;\n    }\n\n    hasFlowCommentCompletion(): void {\n      const end = this.input.indexOf(\"*/\", this.state.pos);\n      if (end === -1) {\n        throw this.raise(this.state.pos, Errors.UnterminatedComment);\n      }\n    }\n\n    // Flow enum parsing\n\n    flowEnumErrorBooleanMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumBooleanMemberNotInitialized,\n        memberName,\n        enumName,\n      );\n    }\n\n    flowEnumErrorInvalidMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      const suggestion = memberName[0].toUpperCase() + memberName.slice(1);\n      this.raise(\n        pos,\n        FlowErrors.EnumInvalidMemberName,\n        memberName,\n        suggestion,\n        enumName,\n      );\n    }\n\n    flowEnumErrorDuplicateMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName);\n    }\n\n    flowEnumErrorInconsistentMemberValues(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName);\n    }\n\n    flowEnumErrorInvalidExplicitType(\n      pos: number,\n      {\n        enumName,\n        suppliedType,\n      }: { enumName: string, suppliedType: null | string },\n    ) {\n      return this.raise(\n        pos,\n        suppliedType === null\n          ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied\n          : FlowErrors.EnumInvalidExplicitType,\n        enumName,\n        suppliedType,\n      );\n    }\n\n    flowEnumErrorInvalidMemberInitializer(\n      pos: number,\n      { enumName, explicitType, memberName }: EnumContext,\n    ) {\n      let message = null;\n      switch (explicitType) {\n        case \"boolean\":\n        case \"number\":\n        case \"string\":\n          message = FlowErrors.EnumInvalidMemberInitializerPrimaryType;\n          break;\n        case \"symbol\":\n          message = FlowErrors.EnumInvalidMemberInitializerSymbolType;\n          break;\n        default:\n          // null\n          message = FlowErrors.EnumInvalidMemberInitializerUnknownType;\n      }\n      return this.raise(pos, message, enumName, memberName, explicitType);\n    }\n\n    flowEnumErrorNumberMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumNumberMemberNotInitialized,\n        enumName,\n        memberName,\n      );\n    }\n\n    flowEnumErrorStringMemberInconsistentlyInitailized(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumStringMemberInconsistentlyInitailized,\n        enumName,\n      );\n    }\n\n    flowEnumMemberInit(): EnumMemberInit {\n      const startPos = this.state.start;\n      const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n      switch (this.state.type) {\n        case tt.num: {\n          const literal = this.parseLiteral(this.state.value, \"NumericLiteral\");\n          if (endOfInit()) {\n            return { type: \"number\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt.string: {\n          const literal = this.parseLiteral(this.state.value, \"StringLiteral\");\n          if (endOfInit()) {\n            return { type: \"string\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt._true:\n        case tt._false: {\n          const literal = this.parseBooleanLiteral();\n          if (endOfInit()) {\n            return {\n              type: \"boolean\",\n              pos: literal.start,\n              value: literal,\n            };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        default:\n          return { type: \"invalid\", pos: startPos };\n      }\n    }\n\n    flowEnumMemberRaw(): { id: N.Node, init: EnumMemberInit } {\n      const pos = this.state.start;\n      const id = this.parseIdentifier(true);\n      const init = this.eat(tt.eq)\n        ? this.flowEnumMemberInit()\n        : { type: \"none\", pos };\n      return { id, init };\n    }\n\n    flowEnumCheckExplicitTypeMismatch(\n      pos: number,\n      context: EnumContext,\n      expectedType: EnumExplicitType,\n    ): void {\n      const { explicitType } = context;\n      if (explicitType === null) {\n        return;\n      }\n      if (explicitType !== expectedType) {\n        this.flowEnumErrorInvalidMemberInitializer(pos, context);\n      }\n    }\n\n    flowEnumMembers({\n      enumName,\n      explicitType,\n    }: {\n      enumName: string,\n      explicitType: EnumExplicitType,\n    }): {|\n      booleanMembers: Array<N.Node>,\n      numberMembers: Array<N.Node>,\n      stringMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n    |} {\n      const seenNames = new Set();\n      const members = {\n        booleanMembers: [],\n        numberMembers: [],\n        stringMembers: [],\n        defaultedMembers: [],\n      };\n      while (!this.match(tt.braceR)) {\n        const memberNode = this.startNode();\n        const { id, init } = this.flowEnumMemberRaw();\n        const memberName = id.name;\n        if (memberName === \"\") {\n          continue;\n        }\n        if (/^[a-z]/.test(memberName)) {\n          this.flowEnumErrorInvalidMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        if (seenNames.has(memberName)) {\n          this.flowEnumErrorDuplicateMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        seenNames.add(memberName);\n        const context = { enumName, explicitType, memberName };\n        memberNode.id = id;\n        switch (init.type) {\n          case \"boolean\": {\n            this.flowEnumCheckExplicitTypeMismatch(\n              init.pos,\n              context,\n              \"boolean\",\n            );\n            memberNode.init = init.value;\n            members.booleanMembers.push(\n              this.finishNode(memberNode, \"EnumBooleanMember\"),\n            );\n            break;\n          }\n          case \"number\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"number\");\n            memberNode.init = init.value;\n            members.numberMembers.push(\n              this.finishNode(memberNode, \"EnumNumberMember\"),\n            );\n            break;\n          }\n          case \"string\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"string\");\n            memberNode.init = init.value;\n            members.stringMembers.push(\n              this.finishNode(memberNode, \"EnumStringMember\"),\n            );\n            break;\n          }\n          case \"invalid\": {\n            throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context);\n          }\n          case \"none\": {\n            switch (explicitType) {\n              case \"boolean\":\n                this.flowEnumErrorBooleanMemberNotInitialized(\n                  init.pos,\n                  context,\n                );\n                break;\n              case \"number\":\n                this.flowEnumErrorNumberMemberNotInitialized(init.pos, context);\n                break;\n              default:\n                members.defaultedMembers.push(\n                  this.finishNode(memberNode, \"EnumDefaultedMember\"),\n                );\n            }\n          }\n        }\n\n        if (!this.match(tt.braceR)) {\n          this.expect(tt.comma);\n        }\n      }\n      return members;\n    }\n\n    flowEnumStringMembers(\n      initializedMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n      { enumName }: { enumName: string },\n    ): Array<N.Node> {\n      if (initializedMembers.length === 0) {\n        return defaultedMembers;\n      } else if (defaultedMembers.length === 0) {\n        return initializedMembers;\n      } else if (defaultedMembers.length > initializedMembers.length) {\n        for (const member of initializedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return defaultedMembers;\n      } else {\n        for (const member of defaultedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return initializedMembers;\n      }\n    }\n\n    flowEnumParseExplicitType({\n      enumName,\n    }: {\n      enumName: string,\n    }): EnumExplicitType {\n      if (this.eatContextual(\"of\")) {\n        if (!this.match(tt.name)) {\n          throw this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: null,\n          });\n        }\n\n        const { value } = this.state;\n        this.next();\n\n        if (\n          value !== \"boolean\" &&\n          value !== \"number\" &&\n          value !== \"string\" &&\n          value !== \"symbol\"\n        ) {\n          this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: value,\n          });\n        }\n\n        return value;\n      }\n      return null;\n    }\n\n    flowEnumBody(node: N.Node, { enumName, nameLoc }): N.Node {\n      const explicitType = this.flowEnumParseExplicitType({ enumName });\n      this.expect(tt.braceL);\n      const members = this.flowEnumMembers({ enumName, explicitType });\n\n      switch (explicitType) {\n        case \"boolean\":\n          node.explicitType = true;\n          node.members = members.booleanMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumBooleanBody\");\n        case \"number\":\n          node.explicitType = true;\n          node.members = members.numberMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumNumberBody\");\n        case \"string\":\n          node.explicitType = true;\n          node.members = this.flowEnumStringMembers(\n            members.stringMembers,\n            members.defaultedMembers,\n            { enumName },\n          );\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumStringBody\");\n        case \"symbol\":\n          node.members = members.defaultedMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumSymbolBody\");\n        default: {\n          // `explicitType` is `null`\n          const empty = () => {\n            node.members = [];\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          };\n          node.explicitType = false;\n\n          const boolsLen = members.booleanMembers.length;\n          const numsLen = members.numberMembers.length;\n          const strsLen = members.stringMembers.length;\n          const defaultedLen = members.defaultedMembers.length;\n\n          if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n            return empty();\n          } else if (!boolsLen && !numsLen) {\n            node.members = this.flowEnumStringMembers(\n              members.stringMembers,\n              members.defaultedMembers,\n              { enumName },\n            );\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorBooleanMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.booleanMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumBooleanBody\");\n          } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorNumberMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.numberMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumNumberBody\");\n          } else {\n            this.flowEnumErrorInconsistentMemberValues(nameLoc, { enumName });\n            return empty();\n          }\n        }\n      }\n    }\n\n    flowParseEnumDeclaration(node: N.Node): N.Node {\n      const id = this.parseIdentifier();\n      node.id = id;\n      node.body = this.flowEnumBody(this.startNode(), {\n        enumName: id.name,\n        nameLoc: id.start,\n      });\n      return this.finishNode(node, \"EnumDeclaration\");\n    }\n  };\n","// @flow\n\nconst entities: { [name: string]: string } = {\n  quot: \"\\u0022\",\n  amp: \"&\",\n  apos: \"\\u0027\",\n  lt: \"<\",\n  gt: \">\",\n  nbsp: \"\\u00A0\",\n  iexcl: \"\\u00A1\",\n  cent: \"\\u00A2\",\n  pound: \"\\u00A3\",\n  curren: \"\\u00A4\",\n  yen: \"\\u00A5\",\n  brvbar: \"\\u00A6\",\n  sect: \"\\u00A7\",\n  uml: \"\\u00A8\",\n  copy: \"\\u00A9\",\n  ordf: \"\\u00AA\",\n  laquo: \"\\u00AB\",\n  not: \"\\u00AC\",\n  shy: \"\\u00AD\",\n  reg: \"\\u00AE\",\n  macr: \"\\u00AF\",\n  deg: \"\\u00B0\",\n  plusmn: \"\\u00B1\",\n  sup2: \"\\u00B2\",\n  sup3: \"\\u00B3\",\n  acute: \"\\u00B4\",\n  micro: \"\\u00B5\",\n  para: \"\\u00B6\",\n  middot: \"\\u00B7\",\n  cedil: \"\\u00B8\",\n  sup1: \"\\u00B9\",\n  ordm: \"\\u00BA\",\n  raquo: \"\\u00BB\",\n  frac14: \"\\u00BC\",\n  frac12: \"\\u00BD\",\n  frac34: \"\\u00BE\",\n  iquest: \"\\u00BF\",\n  Agrave: \"\\u00C0\",\n  Aacute: \"\\u00C1\",\n  Acirc: \"\\u00C2\",\n  Atilde: \"\\u00C3\",\n  Auml: \"\\u00C4\",\n  Aring: \"\\u00C5\",\n  AElig: \"\\u00C6\",\n  Ccedil: \"\\u00C7\",\n  Egrave: \"\\u00C8\",\n  Eacute: \"\\u00C9\",\n  Ecirc: \"\\u00CA\",\n  Euml: \"\\u00CB\",\n  Igrave: \"\\u00CC\",\n  Iacute: \"\\u00CD\",\n  Icirc: \"\\u00CE\",\n  Iuml: \"\\u00CF\",\n  ETH: \"\\u00D0\",\n  Ntilde: \"\\u00D1\",\n  Ograve: \"\\u00D2\",\n  Oacute: \"\\u00D3\",\n  Ocirc: \"\\u00D4\",\n  Otilde: \"\\u00D5\",\n  Ouml: \"\\u00D6\",\n  times: \"\\u00D7\",\n  Oslash: \"\\u00D8\",\n  Ugrave: \"\\u00D9\",\n  Uacute: \"\\u00DA\",\n  Ucirc: \"\\u00DB\",\n  Uuml: \"\\u00DC\",\n  Yacute: \"\\u00DD\",\n  THORN: \"\\u00DE\",\n  szlig: \"\\u00DF\",\n  agrave: \"\\u00E0\",\n  aacute: \"\\u00E1\",\n  acirc: \"\\u00E2\",\n  atilde: \"\\u00E3\",\n  auml: \"\\u00E4\",\n  aring: \"\\u00E5\",\n  aelig: \"\\u00E6\",\n  ccedil: \"\\u00E7\",\n  egrave: \"\\u00E8\",\n  eacute: \"\\u00E9\",\n  ecirc: \"\\u00EA\",\n  euml: \"\\u00EB\",\n  igrave: \"\\u00EC\",\n  iacute: \"\\u00ED\",\n  icirc: \"\\u00EE\",\n  iuml: \"\\u00EF\",\n  eth: \"\\u00F0\",\n  ntilde: \"\\u00F1\",\n  ograve: \"\\u00F2\",\n  oacute: \"\\u00F3\",\n  ocirc: \"\\u00F4\",\n  otilde: \"\\u00F5\",\n  ouml: \"\\u00F6\",\n  divide: \"\\u00F7\",\n  oslash: \"\\u00F8\",\n  ugrave: \"\\u00F9\",\n  uacute: \"\\u00FA\",\n  ucirc: \"\\u00FB\",\n  uuml: \"\\u00FC\",\n  yacute: \"\\u00FD\",\n  thorn: \"\\u00FE\",\n  yuml: \"\\u00FF\",\n  OElig: \"\\u0152\",\n  oelig: \"\\u0153\",\n  Scaron: \"\\u0160\",\n  scaron: \"\\u0161\",\n  Yuml: \"\\u0178\",\n  fnof: \"\\u0192\",\n  circ: \"\\u02C6\",\n  tilde: \"\\u02DC\",\n  Alpha: \"\\u0391\",\n  Beta: \"\\u0392\",\n  Gamma: \"\\u0393\",\n  Delta: \"\\u0394\",\n  Epsilon: \"\\u0395\",\n  Zeta: \"\\u0396\",\n  Eta: \"\\u0397\",\n  Theta: \"\\u0398\",\n  Iota: \"\\u0399\",\n  Kappa: \"\\u039A\",\n  Lambda: \"\\u039B\",\n  Mu: \"\\u039C\",\n  Nu: \"\\u039D\",\n  Xi: \"\\u039E\",\n  Omicron: \"\\u039F\",\n  Pi: \"\\u03A0\",\n  Rho: \"\\u03A1\",\n  Sigma: \"\\u03A3\",\n  Tau: \"\\u03A4\",\n  Upsilon: \"\\u03A5\",\n  Phi: \"\\u03A6\",\n  Chi: \"\\u03A7\",\n  Psi: \"\\u03A8\",\n  Omega: \"\\u03A9\",\n  alpha: \"\\u03B1\",\n  beta: \"\\u03B2\",\n  gamma: \"\\u03B3\",\n  delta: \"\\u03B4\",\n  epsilon: \"\\u03B5\",\n  zeta: \"\\u03B6\",\n  eta: \"\\u03B7\",\n  theta: \"\\u03B8\",\n  iota: \"\\u03B9\",\n  kappa: \"\\u03BA\",\n  lambda: \"\\u03BB\",\n  mu: \"\\u03BC\",\n  nu: \"\\u03BD\",\n  xi: \"\\u03BE\",\n  omicron: \"\\u03BF\",\n  pi: \"\\u03C0\",\n  rho: \"\\u03C1\",\n  sigmaf: \"\\u03C2\",\n  sigma: \"\\u03C3\",\n  tau: \"\\u03C4\",\n  upsilon: \"\\u03C5\",\n  phi: \"\\u03C6\",\n  chi: \"\\u03C7\",\n  psi: \"\\u03C8\",\n  omega: \"\\u03C9\",\n  thetasym: \"\\u03D1\",\n  upsih: \"\\u03D2\",\n  piv: \"\\u03D6\",\n  ensp: \"\\u2002\",\n  emsp: \"\\u2003\",\n  thinsp: \"\\u2009\",\n  zwnj: \"\\u200C\",\n  zwj: \"\\u200D\",\n  lrm: \"\\u200E\",\n  rlm: \"\\u200F\",\n  ndash: \"\\u2013\",\n  mdash: \"\\u2014\",\n  lsquo: \"\\u2018\",\n  rsquo: \"\\u2019\",\n  sbquo: \"\\u201A\",\n  ldquo: \"\\u201C\",\n  rdquo: \"\\u201D\",\n  bdquo: \"\\u201E\",\n  dagger: \"\\u2020\",\n  Dagger: \"\\u2021\",\n  bull: \"\\u2022\",\n  hellip: \"\\u2026\",\n  permil: \"\\u2030\",\n  prime: \"\\u2032\",\n  Prime: \"\\u2033\",\n  lsaquo: \"\\u2039\",\n  rsaquo: \"\\u203A\",\n  oline: \"\\u203E\",\n  frasl: \"\\u2044\",\n  euro: \"\\u20AC\",\n  image: \"\\u2111\",\n  weierp: \"\\u2118\",\n  real: \"\\u211C\",\n  trade: \"\\u2122\",\n  alefsym: \"\\u2135\",\n  larr: \"\\u2190\",\n  uarr: \"\\u2191\",\n  rarr: \"\\u2192\",\n  darr: \"\\u2193\",\n  harr: \"\\u2194\",\n  crarr: \"\\u21B5\",\n  lArr: \"\\u21D0\",\n  uArr: \"\\u21D1\",\n  rArr: \"\\u21D2\",\n  dArr: \"\\u21D3\",\n  hArr: \"\\u21D4\",\n  forall: \"\\u2200\",\n  part: \"\\u2202\",\n  exist: \"\\u2203\",\n  empty: \"\\u2205\",\n  nabla: \"\\u2207\",\n  isin: \"\\u2208\",\n  notin: \"\\u2209\",\n  ni: \"\\u220B\",\n  prod: \"\\u220F\",\n  sum: \"\\u2211\",\n  minus: \"\\u2212\",\n  lowast: \"\\u2217\",\n  radic: \"\\u221A\",\n  prop: \"\\u221D\",\n  infin: \"\\u221E\",\n  ang: \"\\u2220\",\n  and: \"\\u2227\",\n  or: \"\\u2228\",\n  cap: \"\\u2229\",\n  cup: \"\\u222A\",\n  int: \"\\u222B\",\n  there4: \"\\u2234\",\n  sim: \"\\u223C\",\n  cong: \"\\u2245\",\n  asymp: \"\\u2248\",\n  ne: \"\\u2260\",\n  equiv: \"\\u2261\",\n  le: \"\\u2264\",\n  ge: \"\\u2265\",\n  sub: \"\\u2282\",\n  sup: \"\\u2283\",\n  nsub: \"\\u2284\",\n  sube: \"\\u2286\",\n  supe: \"\\u2287\",\n  oplus: \"\\u2295\",\n  otimes: \"\\u2297\",\n  perp: \"\\u22A5\",\n  sdot: \"\\u22C5\",\n  lceil: \"\\u2308\",\n  rceil: \"\\u2309\",\n  lfloor: \"\\u230A\",\n  rfloor: \"\\u230B\",\n  lang: \"\\u2329\",\n  rang: \"\\u232A\",\n  loz: \"\\u25CA\",\n  spades: \"\\u2660\",\n  clubs: \"\\u2663\",\n  hearts: \"\\u2665\",\n  diams: \"\\u2666\",\n};\nexport default entities;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml\";\nimport type Parser from \"../../parser\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { TokenType, types as tt } from \"../../tokenizer/types\";\nimport { TokContext, types as tc } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier\";\nimport type { Position } from \"../../util/location\";\nimport { isNewLine } from \"../../util/whitespace\";\nimport { Errors } from \"../../parser/location\";\n\nconst HEX_NUMBER = /^[\\da-fA-F]+$/;\nconst DECIMAL_NUMBER = /^\\d+$/;\n\nconst JsxErrors = Object.freeze({\n  AttributeIsEmpty:\n    \"JSX attributes must only be assigned a non-empty expression\",\n  MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>\",\n  MissingClosingTagElement: \"Expected corresponding JSX closing tag for <%0>\",\n  UnsupportedJsxValue:\n    \"JSX value should be either an expression or a quoted JSX text\",\n  UnterminatedJsxContent: \"Unterminated JSX contents\",\n  UnwrappedAdjacentJSXElements:\n    \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\",\n});\n\n// Be aware that this file is always executed and not only when the plugin is enabled.\n// Therefore this contexts and tokens do always exist.\ntc.j_oTag = new TokContext(\"<tag\", false);\ntc.j_cTag = new TokContext(\"</tag\", false);\ntc.j_expr = new TokContext(\"<tag>...</tag>\", true, true);\n\ntt.jsxName = new TokenType(\"jsxName\");\ntt.jsxText = new TokenType(\"jsxText\", { beforeExpr: true });\ntt.jsxTagStart = new TokenType(\"jsxTagStart\", { startsExpr: true });\ntt.jsxTagEnd = new TokenType(\"jsxTagEnd\");\n\ntt.jsxTagStart.updateContext = function() {\n  this.state.context.push(tc.j_expr); // treat as beginning of JSX expression\n  this.state.context.push(tc.j_oTag); // start opening tag context\n  this.state.exprAllowed = false;\n};\n\ntt.jsxTagEnd.updateContext = function(prevType) {\n  const out = this.state.context.pop();\n  if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n    this.state.context.pop();\n    this.state.exprAllowed = this.curContext() === tc.j_expr;\n  } else {\n    this.state.exprAllowed = true;\n  }\n};\n\nfunction isFragment(object: ?N.JSXElement): boolean {\n  return object\n    ? object.type === \"JSXOpeningFragment\" ||\n        object.type === \"JSXClosingFragment\"\n    : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n  object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n  if (object.type === \"JSXIdentifier\") {\n    return object.name;\n  }\n\n  if (object.type === \"JSXNamespacedName\") {\n    return object.namespace.name + \":\" + object.name.name;\n  }\n\n  if (object.type === \"JSXMemberExpression\") {\n    return (\n      getQualifiedJSXName(object.object) +\n      \".\" +\n      getQualifiedJSXName(object.property)\n    );\n  }\n\n  // istanbul ignore next\n  throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // Reads inline JSX contents token.\n\n    jsxReadToken(): void {\n      let out = \"\";\n      let chunkStart = this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n\n        switch (ch) {\n          case charCodes.lessThan:\n          case charCodes.leftCurlyBrace:\n            if (this.state.pos === this.state.start) {\n              if (ch === charCodes.lessThan && this.state.exprAllowed) {\n                ++this.state.pos;\n                return this.finishToken(tt.jsxTagStart);\n              }\n              return super.getTokenFromCode(ch);\n            }\n            out += this.input.slice(chunkStart, this.state.pos);\n            return this.finishToken(tt.jsxText, out);\n\n          case charCodes.ampersand:\n            out += this.input.slice(chunkStart, this.state.pos);\n            out += this.jsxReadEntity();\n            chunkStart = this.state.pos;\n            break;\n\n          default:\n            if (isNewLine(ch)) {\n              out += this.input.slice(chunkStart, this.state.pos);\n              out += this.jsxReadNewLine(true);\n              chunkStart = this.state.pos;\n            } else {\n              ++this.state.pos;\n            }\n        }\n      }\n    }\n\n    jsxReadNewLine(normalizeCRLF: boolean): string {\n      const ch = this.input.charCodeAt(this.state.pos);\n      let out;\n      ++this.state.pos;\n      if (\n        ch === charCodes.carriageReturn &&\n        this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n      ) {\n        ++this.state.pos;\n        out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n      } else {\n        out = String.fromCharCode(ch);\n      }\n      ++this.state.curLine;\n      this.state.lineStart = this.state.pos;\n\n      return out;\n    }\n\n    jsxReadString(quote: number): void {\n      let out = \"\";\n      let chunkStart = ++this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, Errors.UnterminatedString);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n        if (ch === quote) break;\n        if (ch === charCodes.ampersand) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadEntity();\n          chunkStart = this.state.pos;\n        } else if (isNewLine(ch)) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadNewLine(false);\n          chunkStart = this.state.pos;\n        } else {\n          ++this.state.pos;\n        }\n      }\n      out += this.input.slice(chunkStart, this.state.pos++);\n      return this.finishToken(tt.string, out);\n    }\n\n    jsxReadEntity(): string {\n      let str = \"\";\n      let count = 0;\n      let entity;\n      let ch = this.input[this.state.pos];\n\n      const startPos = ++this.state.pos;\n      while (this.state.pos < this.length && count++ < 10) {\n        ch = this.input[this.state.pos++];\n        if (ch === \";\") {\n          if (str[0] === \"#\") {\n            if (str[1] === \"x\") {\n              str = str.substr(2);\n              if (HEX_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 16));\n              }\n            } else {\n              str = str.substr(1);\n              if (DECIMAL_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 10));\n              }\n            }\n          } else {\n            entity = XHTMLEntities[str];\n          }\n          break;\n        }\n        str += ch;\n      }\n      if (!entity) {\n        this.state.pos = startPos;\n        return \"&\";\n      }\n      return entity;\n    }\n\n    // Read a JSX identifier (valid tag or attribute name).\n    //\n    // Optimized version since JSX identifiers can\"t contain\n    // escape characters and so can be read as single slice.\n    // Also assumes that first character was already checked\n    // by isIdentifierStart in readToken.\n\n    jsxReadWord(): void {\n      let ch;\n      const start = this.state.pos;\n      do {\n        ch = this.input.charCodeAt(++this.state.pos);\n      } while (isIdentifierChar(ch) || ch === charCodes.dash);\n      return this.finishToken(\n        tt.jsxName,\n        this.input.slice(start, this.state.pos),\n      );\n    }\n\n    // Parse next token as JSX identifier\n\n    jsxParseIdentifier(): N.JSXIdentifier {\n      const node = this.startNode();\n      if (this.match(tt.jsxName)) {\n        node.name = this.state.value;\n      } else if (this.state.type.keyword) {\n        node.name = this.state.type.keyword;\n      } else {\n        this.unexpected();\n      }\n      this.next();\n      return this.finishNode(node, \"JSXIdentifier\");\n    }\n\n    // Parse namespaced identifier.\n\n    jsxParseNamespacedName(): N.JSXNamespacedName {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const name = this.jsxParseIdentifier();\n      if (!this.eat(tt.colon)) return name;\n\n      const node = this.startNodeAt(startPos, startLoc);\n      node.namespace = name;\n      node.name = this.jsxParseIdentifier();\n      return this.finishNode(node, \"JSXNamespacedName\");\n    }\n\n    // Parses element name in any form - namespaced, member\n    // or single identifier.\n\n    jsxParseElementName():\n      | N.JSXIdentifier\n      | N.JSXNamespacedName\n      | N.JSXMemberExpression {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let node = this.jsxParseNamespacedName();\n      if (node.type === \"JSXNamespacedName\") {\n        return node;\n      }\n      while (this.eat(tt.dot)) {\n        const newNode = this.startNodeAt(startPos, startLoc);\n        newNode.object = node;\n        newNode.property = this.jsxParseIdentifier();\n        node = this.finishNode(newNode, \"JSXMemberExpression\");\n      }\n      return node;\n    }\n\n    // Parses any type of JSX attribute value.\n\n    jsxParseAttributeValue(): N.Expression {\n      let node;\n      switch (this.state.type) {\n        case tt.braceL:\n          node = this.startNode();\n          this.next();\n          node = this.jsxParseExpressionContainer(node);\n          if (node.expression.type === \"JSXEmptyExpression\") {\n            this.raise(node.start, JsxErrors.AttributeIsEmpty);\n          }\n          return node;\n\n        case tt.jsxTagStart:\n        case tt.string:\n          return this.parseExprAtom();\n\n        default:\n          throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue);\n      }\n    }\n\n    // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n    // and so it should start at the end of last read token (left brace) and finish\n    // at the beginning of the next one (right brace).\n\n    jsxParseEmptyExpression(): N.JSXEmptyExpression {\n      const node = this.startNodeAt(\n        this.state.lastTokEnd,\n        this.state.lastTokEndLoc,\n      );\n      return this.finishNodeAt(\n        node,\n        \"JSXEmptyExpression\",\n        this.state.start,\n        this.state.startLoc,\n      );\n    }\n\n    // Parse JSX spread child\n\n    jsxParseSpreadChild(node: N.JSXSpreadChild): N.JSXSpreadChild {\n      this.next(); // ellipsis\n      node.expression = this.parseExpression();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"JSXSpreadChild\");\n    }\n\n    // Parses JSX expression enclosed into curly brackets.\n\n    jsxParseExpressionContainer(\n      node: N.JSXExpressionContainer,\n    ): N.JSXExpressionContainer {\n      if (this.match(tt.braceR)) {\n        node.expression = this.jsxParseEmptyExpression();\n      } else {\n        node.expression = this.parseExpression();\n      }\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"JSXExpressionContainer\");\n    }\n\n    // Parses following JSX attribute name-value pair.\n\n    jsxParseAttribute(): N.JSXAttribute {\n      const node = this.startNode();\n      if (this.eat(tt.braceL)) {\n        this.expect(tt.ellipsis);\n        node.argument = this.parseMaybeAssign();\n        this.expect(tt.braceR);\n        return this.finishNode(node, \"JSXSpreadAttribute\");\n      }\n      node.name = this.jsxParseNamespacedName();\n      node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n      return this.finishNode(node, \"JSXAttribute\");\n    }\n\n    // Parses JSX opening tag starting after \"<\".\n\n    jsxParseOpeningElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXOpeningElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXOpeningFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      return this.jsxParseOpeningElementAfterName(node);\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      const attributes: N.JSXAttribute[] = [];\n      while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n        attributes.push(this.jsxParseAttribute());\n      }\n      node.attributes = attributes;\n      node.selfClosing = this.eat(tt.slash);\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXOpeningElement\");\n    }\n\n    // Parses JSX closing tag starting after \"</\".\n\n    jsxParseClosingElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXClosingElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXClosingFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXClosingElement\");\n    }\n\n    // Parses entire JSX element, including it\"s opening tag\n    // (starting after \"<\"), attributes, contents and closing tag.\n\n    jsxParseElementAt(startPos: number, startLoc: Position): N.JSXElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      const children = [];\n      const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\n      let closingElement = null;\n\n      if (!openingElement.selfClosing) {\n        contents: for (;;) {\n          switch (this.state.type) {\n            case tt.jsxTagStart:\n              startPos = this.state.start;\n              startLoc = this.state.startLoc;\n              this.next();\n              if (this.eat(tt.slash)) {\n                closingElement = this.jsxParseClosingElementAt(\n                  startPos,\n                  startLoc,\n                );\n                break contents;\n              }\n              children.push(this.jsxParseElementAt(startPos, startLoc));\n              break;\n\n            case tt.jsxText:\n              children.push(this.parseExprAtom());\n              break;\n\n            case tt.braceL: {\n              const node = this.startNode();\n              this.next();\n              if (this.match(tt.ellipsis)) {\n                children.push(this.jsxParseSpreadChild(node));\n              } else {\n                children.push(this.jsxParseExpressionContainer(node));\n              }\n\n              break;\n            }\n            // istanbul ignore next - should never happen\n            default:\n              throw this.unexpected();\n          }\n        }\n\n        if (isFragment(openingElement) && !isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagFragment,\n          );\n        } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagElement,\n            getQualifiedJSXName(openingElement.name),\n          );\n        } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n          if (\n            // $FlowIgnore\n            getQualifiedJSXName(closingElement.name) !==\n            getQualifiedJSXName(openingElement.name)\n          ) {\n            this.raise(\n              // $FlowIgnore\n              closingElement.start,\n              JsxErrors.MissingClosingTagElement,\n              getQualifiedJSXName(openingElement.name),\n            );\n          }\n        }\n      }\n\n      if (isFragment(openingElement)) {\n        node.openingFragment = openingElement;\n        node.closingFragment = closingElement;\n      } else {\n        node.openingElement = openingElement;\n        node.closingElement = closingElement;\n      }\n      node.children = children;\n      if (this.isRelational(\"<\")) {\n        throw this.raise(\n          this.state.start,\n          JsxErrors.UnwrappedAdjacentJSXElements,\n        );\n      }\n\n      return isFragment(openingElement)\n        ? this.finishNode(node, \"JSXFragment\")\n        : this.finishNode(node, \"JSXElement\");\n    }\n\n    // Parses entire JSX element from current position.\n\n    jsxParseElement(): N.JSXElement {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      this.next();\n      return this.jsxParseElementAt(startPos, startLoc);\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseExprAtom(refExpressionErrors: ?ExpressionErrors): N.Expression {\n      if (this.match(tt.jsxText)) {\n        return this.parseLiteral(this.state.value, \"JSXText\");\n      } else if (this.match(tt.jsxTagStart)) {\n        return this.jsxParseElement();\n      } else if (\n        this.isRelational(\"<\") &&\n        this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n      ) {\n        // In case we encounter an lt token here it will always be the start of\n        // jsx as the lt sign is not allowed in places that expect an expression\n        this.finishToken(tt.jsxTagStart);\n        return this.jsxParseElement();\n      } else {\n        return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    getTokenFromCode(code: number): void {\n      if (this.state.inPropertyName) return super.getTokenFromCode(code);\n\n      const context = this.curContext();\n\n      if (context === tc.j_expr) {\n        return this.jsxReadToken();\n      }\n\n      if (context === tc.j_oTag || context === tc.j_cTag) {\n        if (isIdentifierStart(code)) {\n          return this.jsxReadWord();\n        }\n\n        if (code === charCodes.greaterThan) {\n          ++this.state.pos;\n          return this.finishToken(tt.jsxTagEnd);\n        }\n\n        if (\n          (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n          context === tc.j_oTag\n        ) {\n          return this.jsxReadString(code);\n        }\n      }\n\n      if (\n        code === charCodes.lessThan &&\n        this.state.exprAllowed &&\n        this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n      ) {\n        ++this.state.pos;\n        return this.finishToken(tt.jsxTagStart);\n      }\n\n      return super.getTokenFromCode(code);\n    }\n\n    updateContext(prevType: TokenType): void {\n      if (this.match(tt.braceL)) {\n        const curContext = this.curContext();\n        if (curContext === tc.j_oTag) {\n          this.state.context.push(tc.braceExpression);\n        } else if (curContext === tc.j_expr) {\n          this.state.context.push(tc.templateQuasi);\n        } else {\n          super.updateContext(prevType);\n        }\n        this.state.exprAllowed = true;\n      } else if (this.match(tt.slash) && prevType === tt.jsxTagStart) {\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\n        this.state.context.push(tc.j_cTag); // reconsider as closing tag context\n        this.state.exprAllowed = false;\n      } else {\n        return super.updateContext(prevType);\n      }\n    }\n  };\n","// @flow\nimport {\n  SCOPE_ARROW,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n  SCOPE_VAR,\n  SCOPE_CLASS,\n  BIND_SCOPE_FUNCTION,\n  BIND_SCOPE_VAR,\n  BIND_SCOPE_LEXICAL,\n  BIND_KIND_VALUE,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"./scopeflags\";\nimport * as N from \"../types\";\nimport { Errors } from \"../parser/location\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n  flags: ScopeFlags;\n  // A list of var-declared names in the current lexical scope\n  var: string[] = [];\n  // A list of lexically-declared names in the current lexical scope\n  lexical: string[] = [];\n  // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n  functions: string[] = [];\n\n  constructor(flags: ScopeFlags) {\n    this.flags = flags;\n  }\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler<IScope: Scope = Scope> {\n  scopeStack: Array<IScope> = [];\n  raise: raiseFunction;\n  inModule: boolean;\n  undefinedExports: Map<string, number> = new Map();\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction, inModule: boolean) {\n    this.raise = raise;\n    this.inModule = inModule;\n  }\n\n  get inFunction() {\n    return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get allowSuper() {\n    return (this.currentThisScope().flags & SCOPE_SUPER) > 0;\n  }\n  get allowDirectSuper() {\n    return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;\n  }\n  get inClass() {\n    return (this.currentThisScope().flags & SCOPE_CLASS) > 0;\n  }\n  get inNonArrowFunction() {\n    return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get treatFunctionsAsVar() {\n    return this.treatFunctionsAsVarInScope(this.currentScope());\n  }\n\n  createScope(flags: ScopeFlags): Scope {\n    return new Scope(flags);\n  }\n  // This method will be overwritten by subclasses\n  /*:: +createScope: (flags: ScopeFlags) => IScope; */\n\n  enter(flags: ScopeFlags) {\n    this.scopeStack.push(this.createScope(flags));\n  }\n\n  exit() {\n    this.scopeStack.pop();\n  }\n\n  // The spec says:\n  // > At the top level of a function, or script, function declarations are\n  // > treated like var declarations rather than like lexical declarations.\n  treatFunctionsAsVarInScope(scope: IScope): boolean {\n    return !!(\n      scope.flags & SCOPE_FUNCTION ||\n      (!this.inModule && scope.flags & SCOPE_PROGRAM)\n    );\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    let scope = this.currentScope();\n    if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) {\n      this.checkRedeclarationInScope(scope, name, bindingType, pos);\n\n      if (bindingType & BIND_SCOPE_FUNCTION) {\n        scope.functions.push(name);\n      } else {\n        scope.lexical.push(name);\n      }\n\n      if (bindingType & BIND_SCOPE_LEXICAL) {\n        this.maybeExportDefined(scope, name);\n      }\n    } else if (bindingType & BIND_SCOPE_VAR) {\n      for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n        scope = this.scopeStack[i];\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        scope.var.push(name);\n        this.maybeExportDefined(scope, name);\n\n        if (scope.flags & SCOPE_VAR) break;\n      }\n    }\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  maybeExportDefined(scope: IScope, name: string) {\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  checkRedeclarationInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n    pos: number,\n  ) {\n    if (this.isRedeclaredInScope(scope, name, bindingType)) {\n      this.raise(pos, Errors.VarRedeclaration, name);\n    }\n  }\n\n  isRedeclaredInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (!(bindingType & BIND_KIND_VALUE)) return false;\n\n    if (bindingType & BIND_SCOPE_LEXICAL) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        scope.functions.indexOf(name) > -1 ||\n        scope.var.indexOf(name) > -1\n      );\n    }\n\n    if (bindingType & BIND_SCOPE_FUNCTION) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        (!this.treatFunctionsAsVarInScope(scope) &&\n          scope.var.indexOf(name) > -1)\n      );\n    }\n\n    return (\n      (scope.lexical.indexOf(name) > -1 &&\n        !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name)) ||\n      (!this.treatFunctionsAsVarInScope(scope) &&\n        scope.functions.indexOf(name) > -1)\n    );\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1 &&\n      // In strict mode, scope.functions will always be empty.\n      // Modules are strict by default, but the `scriptMode` option\n      // can overwrite this behavior.\n      this.scopeStack[0].functions.indexOf(id.name) === -1\n    ) {\n      this.undefinedExports.set(id.name, id.start);\n    }\n  }\n\n  currentScope(): IScope {\n    return this.scopeStack[this.scopeStack.length - 1];\n  }\n\n  // $FlowIgnore\n  currentVarScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (scope.flags & SCOPE_VAR) {\n        return scope;\n      }\n    }\n  }\n\n  // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n  // $FlowIgnore\n  currentThisScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (\n        (scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) &&\n        !(scope.flags & SCOPE_ARROW)\n      ) {\n        return scope;\n      }\n    }\n  }\n}\n","// @flow\n\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n  BIND_KIND_TYPE,\n  BIND_FLAGS_TS_ENUM,\n  BIND_FLAGS_TS_CONST_ENUM,\n  BIND_FLAGS_TS_EXPORT_ONLY,\n  BIND_KIND_VALUE,\n  BIND_FLAGS_CLASS,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"../../util/scopeflags\";\nimport * as N from \"../../types\";\n\nclass TypeScriptScope extends Scope {\n  types: string[] = [];\n\n  // enums (which are also in .types)\n  enums: string[] = [];\n\n  // const enums (which are also in .enums and .types)\n  constEnums: string[] = [];\n\n  // classes (which are also in .lexical) and interface (which are also in .types)\n  classes: string[] = [];\n\n  // namespaces and ambient functions (or classes) are too difficult to track,\n  // especially without type analysis.\n  // We need to track them anyway, to avoid \"X is not defined\" errors\n  // when exporting them.\n  exportOnlyBindings: string[] = [];\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler<TypeScriptScope> {\n  createScope(flags: ScopeFlags): TypeScriptScope {\n    return new TypeScriptScope(flags);\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    const scope = this.currentScope();\n    if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) {\n      this.maybeExportDefined(scope, name);\n      scope.exportOnlyBindings.push(name);\n      return;\n    }\n\n    super.declareName(...arguments);\n\n    if (bindingType & BIND_KIND_TYPE) {\n      if (!(bindingType & BIND_KIND_VALUE)) {\n        // \"Value\" bindings have already been registered by the superclass.\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        this.maybeExportDefined(scope, name);\n      }\n      scope.types.push(name);\n    }\n    if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name);\n    if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name);\n    if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name);\n  }\n\n  isRedeclaredInScope(\n    scope: TypeScriptScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (scope.enums.indexOf(name) > -1) {\n      if (bindingType & BIND_FLAGS_TS_ENUM) {\n        // Enums can be merged with other enums if they are both\n        //  const or both non-const.\n        const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM);\n        const wasConst = scope.constEnums.indexOf(name) > -1;\n        return isConst !== wasConst;\n      }\n      return true;\n    }\n    if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) {\n      if (scope.lexical.indexOf(name) > -1) {\n        // Classes can be merged with interfaces\n        return !!(bindingType & BIND_KIND_VALUE);\n      } else {\n        // Interface can be merged with other classes or interfaces\n        return false;\n      }\n    }\n    if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) {\n      return true;\n    }\n\n    return super.isRedeclaredInScope(...arguments);\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].types.indexOf(id.name) === -1 &&\n      this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1\n    ) {\n      super.checkLocalExport(id);\n    }\n  }\n}\n","// @flow\nexport const PARAM = 0b000, // Initial Parameter flags\n  PARAM_YIELD = 0b001, // track [Yield] production parameter\n  PARAM_AWAIT = 0b010, // track [Await] production parameter\n  PARAM_RETURN = 0b100; // track [Return] production parameter\n\n// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above. Note that the [In] parameter is\n// tracked in `noIn` argument of `parseExpression`.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n//   async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n//     ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport type ParamKind = typeof PARAM | typeof PARAM_AWAIT | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n  stacks: Array<ParamKind> = [];\n  enter(flags: ParamKind) {\n    this.stacks.push(flags);\n  }\n\n  exit() {\n    this.stacks.pop();\n  }\n\n  currentFlags(): ParamKind {\n    return this.stacks[this.stacks.length - 1];\n  }\n\n  get hasAwait(): boolean {\n    return (this.currentFlags() & PARAM_AWAIT) > 0;\n  }\n\n  get hasYield(): boolean {\n    return (this.currentFlags() & PARAM_YIELD) > 0;\n  }\n\n  get hasReturn(): boolean {\n    return (this.currentFlags() & PARAM_RETURN) > 0;\n  }\n}\n\nexport function functionFlags(\n  isAsync: boolean,\n  isGenerator: boolean,\n): ParamKind {\n  return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type { TokenType } from \"../../tokenizer/types\";\nimport type State from \"../../tokenizer/state\";\nimport { types as tt } from \"../../tokenizer/types\";\nimport { types as ct } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport type { Pos, Position } from \"../../util/location\";\nimport type Parser from \"../../parser\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  SCOPE_TS_MODULE,\n  SCOPE_OTHER,\n  BIND_TS_ENUM,\n  BIND_TS_CONST_ENUM,\n  BIND_TS_TYPE,\n  BIND_TS_INTERFACE,\n  BIND_TS_AMBIENT,\n  BIND_TS_NAMESPACE,\n  BIND_CLASS,\n  BIND_LEXICAL,\n} from \"../../util/scopeflags\";\nimport TypeScriptScopeHandler from \"./scope\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { PARAM } from \"../../util/production-parameter\";\nimport { Errors } from \"../../parser/location\";\n\ntype TsModifier =\n  | \"readonly\"\n  | \"abstract\"\n  | \"declare\"\n  | \"static\"\n  | \"public\"\n  | \"private\"\n  | \"protected\";\n\nfunction nonNull<T>(x: ?T): T {\n  if (x == null) {\n    // $FlowIgnore\n    throw new Error(`Unexpected ${x} value.`);\n  }\n  return x;\n}\n\nfunction assert(x: boolean): void {\n  if (!x) {\n    throw new Error(\"Assert fail\");\n  }\n}\n\ntype ParsingContext =\n  | \"EnumMembers\"\n  | \"HeritageClauseElement\"\n  | \"TupleElementTypes\"\n  | \"TypeMembers\"\n  | \"TypeParametersOrArguments\";\n\nconst TSErrors = Object.freeze({\n  ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier\",\n  ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier\",\n  DeclareClassFieldHasInitializer:\n    \"'declare' class fields cannot have an initializer\",\n  DuplicateModifier: \"Duplicate modifier: '%0'\",\n  EmptyHeritageClauseType: \"'%0' list cannot be empty.\",\n  IndexSignatureHasAbstract:\n    \"Index signatures cannot have the 'abstract' modifier\",\n  IndexSignatureHasAccessibility:\n    \"Index signatures cannot have an accessibility modifier ('%0')\",\n  IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier\",\n  OptionalTypeBeforeRequired:\n    \"A required element cannot follow an optional element.\",\n  PatternIsOptional:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  PrivateElementHasAbstract:\n    \"Private elements cannot have the 'abstract' modifier.\",\n  PrivateElementHasAccessibility:\n    \"Private elements cannot have an accessibility modifier ('%0')\",\n  TemplateTypeHasSubstitution:\n    \"Template literal types cannot have any substitution\",\n  TypeAnnotationAfterAssign:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  UnexpectedReadonly:\n    \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n  UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n  UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n  UnsupportedImportTypeArgument:\n    \"Argument in a type import must be a string literal\",\n  UnsupportedParameterPropertyKind:\n    \"A parameter property may not be declared using a binding pattern.\",\n  UnsupportedSignatureParameterKind:\n    \"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0\",\n});\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\nfunction keywordTypeFromName(\n  value: string,\n): N.TsKeywordTypeType | typeof undefined {\n  switch (value) {\n    case \"any\":\n      return \"TSAnyKeyword\";\n    case \"boolean\":\n      return \"TSBooleanKeyword\";\n    case \"bigint\":\n      return \"TSBigIntKeyword\";\n    case \"never\":\n      return \"TSNeverKeyword\";\n    case \"number\":\n      return \"TSNumberKeyword\";\n    case \"object\":\n      return \"TSObjectKeyword\";\n    case \"string\":\n      return \"TSStringKeyword\";\n    case \"symbol\":\n      return \"TSSymbolKeyword\";\n    case \"undefined\":\n      return \"TSUndefinedKeyword\";\n    case \"unknown\":\n      return \"TSUnknownKeyword\";\n    default:\n      return undefined;\n  }\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    getScopeHandler(): Class<TypeScriptScopeHandler> {\n      return TypeScriptScopeHandler;\n    }\n\n    tsIsIdentifier(): boolean {\n      // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n      // See https://github.com/Microsoft/TypeScript/issues/15008\n      return this.match(tt.name);\n    }\n\n    tsNextTokenCanFollowModifier() {\n      // Note: TypeScript's implementation is much more complicated because\n      // more things are considered modifiers there.\n      // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n      // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n      this.next();\n      return (\n        !this.hasPrecedingLineBreak() &&\n        !this.match(tt.parenL) &&\n        !this.match(tt.parenR) &&\n        !this.match(tt.colon) &&\n        !this.match(tt.eq) &&\n        !this.match(tt.question) &&\n        !this.match(tt.bang)\n      );\n    }\n\n    /** Parses a modifier matching one the given modifier names. */\n    tsParseModifier<T: TsModifier>(allowedModifiers: T[]): ?T {\n      if (!this.match(tt.name)) {\n        return undefined;\n      }\n\n      const modifier = this.state.value;\n      if (\n        allowedModifiers.indexOf(modifier) !== -1 &&\n        this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))\n      ) {\n        return modifier;\n      }\n      return undefined;\n    }\n\n    /** Parses a list of modifiers, in any order.\n     *  If you need a specific order, you must call this function multiple times:\n     *    this.tsParseModifiers(node, [\"public\"]);\n     *    this.tsParseModifiers(node, [\"abstract\", \"readonly\"]);\n     */\n    tsParseModifiers<T: TsModifier>(\n      modified: { [key: TsModifier]: ?true },\n      allowedModifiers: T[],\n    ): void {\n      for (;;) {\n        const startPos = this.state.start;\n        const modifier: ?T = this.tsParseModifier(allowedModifiers);\n\n        if (!modifier) break;\n\n        if (Object.hasOwnProperty.call(modified, modifier)) {\n          this.raise(startPos, TSErrors.DuplicateModifier, modifier);\n        }\n        modified[modifier] = true;\n      }\n    }\n\n    tsIsListTerminator(kind: ParsingContext): boolean {\n      switch (kind) {\n        case \"EnumMembers\":\n        case \"TypeMembers\":\n          return this.match(tt.braceR);\n        case \"HeritageClauseElement\":\n          return this.match(tt.braceL);\n        case \"TupleElementTypes\":\n          return this.match(tt.bracketR);\n        case \"TypeParametersOrArguments\":\n          return this.isRelational(\">\");\n      }\n\n      throw new Error(\"Unreachable\");\n    }\n\n    tsParseList<T: N.Node>(kind: ParsingContext, parseElement: () => T): T[] {\n      const result: T[] = [];\n      while (!this.tsIsListTerminator(kind)) {\n        // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n        result.push(parseElement());\n      }\n      return result;\n    }\n\n    tsParseDelimitedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n    ): T[] {\n      return nonNull(\n        this.tsParseDelimitedListWorker(\n          kind,\n          parseElement,\n          /* expectSuccess */ true,\n        ),\n      );\n    }\n\n    /**\n     * If !expectSuccess, returns undefined instead of failing to parse.\n     * If expectSuccess, parseElement should always return a defined value.\n     */\n    tsParseDelimitedListWorker<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => ?T,\n      expectSuccess: boolean,\n    ): ?(T[]) {\n      const result = [];\n\n      for (;;) {\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        const element = parseElement();\n        if (element == null) {\n          return undefined;\n        }\n        result.push(element);\n\n        if (this.eat(tt.comma)) {\n          continue;\n        }\n\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        if (expectSuccess) {\n          // This will fail with an error about a missing comma\n          this.expect(tt.comma);\n        }\n        return undefined;\n      }\n\n      return result;\n    }\n\n    tsParseBracketedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n      bracket: boolean,\n      skipFirstToken: boolean,\n    ): T[] {\n      if (!skipFirstToken) {\n        if (bracket) {\n          this.expect(tt.bracketL);\n        } else {\n          this.expectRelational(\"<\");\n        }\n      }\n\n      const result = this.tsParseDelimitedList(kind, parseElement);\n\n      if (bracket) {\n        this.expect(tt.bracketR);\n      } else {\n        this.expectRelational(\">\");\n      }\n\n      return result;\n    }\n\n    tsParseImportType(): N.TsImportType {\n      const node: N.TsImportType = this.startNode();\n      this.expect(tt._import);\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument);\n      }\n\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.argument = this.parseExprAtom();\n      this.expect(tt.parenR);\n\n      if (this.eat(tt.dot)) {\n        node.qualifier = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSImportType\");\n    }\n\n    tsParseEntityName(allowReservedWords: boolean): N.TsEntityName {\n      let entity: N.TsEntityName = this.parseIdentifier();\n      while (this.eat(tt.dot)) {\n        const node: N.TsQualifiedName = this.startNodeAtNode(entity);\n        node.left = entity;\n        node.right = this.parseIdentifier(allowReservedWords);\n        entity = this.finishNode(node, \"TSQualifiedName\");\n      }\n      return entity;\n    }\n\n    tsParseTypeReference(): N.TsTypeReference {\n      const node: N.TsTypeReference = this.startNode();\n      node.typeName = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (!this.hasPrecedingLineBreak() && this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSTypeReference\");\n    }\n\n    tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n      this.next();\n      const node: N.TsTypePredicate = this.startNodeAtNode(lhs);\n      node.parameterName = lhs;\n      node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n      return this.finishNode(node, \"TSTypePredicate\");\n    }\n\n    tsParseThisTypeNode(): N.TsThisType {\n      const node: N.TsThisType = this.startNode();\n      this.next();\n      return this.finishNode(node, \"TSThisType\");\n    }\n\n    tsParseTypeQuery(): N.TsTypeQuery {\n      const node: N.TsTypeQuery = this.startNode();\n      this.expect(tt._typeof);\n      if (this.match(tt._import)) {\n        node.exprName = this.tsParseImportType();\n      } else {\n        node.exprName = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      return this.finishNode(node, \"TSTypeQuery\");\n    }\n\n    tsParseTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsEatThenParseType(tt._extends);\n      node.default = this.tsEatThenParseType(tt.eq);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {\n      if (this.isRelational(\"<\")) {\n        return this.tsParseTypeParameters();\n      }\n    }\n\n    tsParseTypeParameters() {\n      const node: N.TsTypeParameterDeclaration = this.startNode();\n\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      node.params = this.tsParseBracketedList(\n        \"TypeParametersOrArguments\",\n        this.tsParseTypeParameter.bind(this),\n        /* bracket */ false,\n        /* skipFirstToken */ true,\n      );\n      return this.finishNode(node, \"TSTypeParameterDeclaration\");\n    }\n\n    tsTryNextParseConstantContext(): ?N.TsTypeReference {\n      if (this.lookahead().type === tt._const) {\n        this.next();\n        return this.tsParseTypeReference();\n      }\n      return null;\n    }\n\n    // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n    // but here it's always false, because this is only used for types.\n    tsFillSignature(\n      returnToken: TokenType,\n      signature: N.TsSignatureDeclaration,\n    ): void {\n      // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n      const returnTokenRequired = returnToken === tt.arrow;\n      signature.typeParameters = this.tsTryParseTypeParameters();\n      this.expect(tt.parenL);\n      signature.parameters = this.tsParseBindingListForSignature();\n      if (returnTokenRequired) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      } else if (this.match(returnToken)) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      }\n    }\n\n    tsParseBindingListForSignature(): $ReadOnlyArray<\n      N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern,\n    > {\n      return this.parseBindingList(tt.parenR, charCodes.rightParenthesis).map(\n        pattern => {\n          if (\n            pattern.type !== \"Identifier\" &&\n            pattern.type !== \"RestElement\" &&\n            pattern.type !== \"ObjectPattern\" &&\n            pattern.type !== \"ArrayPattern\"\n          ) {\n            this.raise(\n              pattern.start,\n              TSErrors.UnsupportedSignatureParameterKind,\n              pattern.type,\n            );\n          }\n          return (pattern: any);\n        },\n      );\n    }\n\n    tsParseTypeMemberSemicolon(): void {\n      if (!this.eat(tt.comma)) {\n        this.semicolon();\n      }\n    }\n\n    tsParseSignatureMember(\n      kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n      node: N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration,\n    ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n      this.tsFillSignature(tt.colon, node);\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, kind);\n    }\n\n    tsIsUnambiguouslyIndexSignature() {\n      this.next(); // Skip '{'\n      return this.eat(tt.name) && this.match(tt.colon);\n    }\n\n    tsTryParseIndexSignature(node: N.Node): ?N.TsIndexSignature {\n      if (\n        !(\n          this.match(tt.bracketL) &&\n          this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n        )\n      ) {\n        return undefined;\n      }\n\n      this.expect(tt.bracketL);\n      const id = this.parseIdentifier();\n      id.typeAnnotation = this.tsParseTypeAnnotation();\n      this.resetEndLocation(id); // set end position to end of type\n\n      this.expect(tt.bracketR);\n      node.parameters = [id];\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, \"TSIndexSignature\");\n    }\n\n    tsParsePropertyOrMethodSignature(\n      node: N.TsPropertySignature | N.TsMethodSignature,\n      readonly: boolean,\n    ): N.TsPropertySignature | N.TsMethodSignature {\n      if (this.eat(tt.question)) node.optional = true;\n      const nodeAny: any = node;\n\n      if (!readonly && (this.match(tt.parenL) || this.isRelational(\"<\"))) {\n        const method: N.TsMethodSignature = nodeAny;\n        this.tsFillSignature(tt.colon, method);\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(method, \"TSMethodSignature\");\n      } else {\n        const property: N.TsPropertySignature = nodeAny;\n        if (readonly) property.readonly = true;\n        const type = this.tsTryParseTypeAnnotation();\n        if (type) property.typeAnnotation = type;\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(property, \"TSPropertySignature\");\n      }\n    }\n\n    tsParseTypeMember(): N.TsTypeElement {\n      const node: any = this.startNode();\n\n      if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n        return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n      }\n\n      if (this.match(tt._new)) {\n        const id: N.Identifier = this.startNode();\n        this.next();\n        if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          return this.tsParseSignatureMember(\n            \"TSConstructSignatureDeclaration\",\n            node,\n          );\n        } else {\n          node.key = this.createIdentifier(id, \"new\");\n          return this.tsParsePropertyOrMethodSignature(node, false);\n        }\n      }\n\n      const readonly = !!this.tsParseModifier([\"readonly\"]);\n\n      const idx = this.tsTryParseIndexSignature(node);\n      if (idx) {\n        if (readonly) node.readonly = true;\n        return idx;\n      }\n\n      this.parsePropertyName(node, /* isPrivateNameAllowed */ false);\n      return this.tsParsePropertyOrMethodSignature(node, readonly);\n    }\n\n    tsParseTypeLiteral(): N.TsTypeLiteral {\n      const node: N.TsTypeLiteral = this.startNode();\n      node.members = this.tsParseObjectTypeMembers();\n      return this.finishNode(node, \"TSTypeLiteral\");\n    }\n\n    tsParseObjectTypeMembers(): $ReadOnlyArray<N.TsTypeElement> {\n      this.expect(tt.braceL);\n      const members = this.tsParseList(\n        \"TypeMembers\",\n        this.tsParseTypeMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return members;\n    }\n\n    tsIsStartOfMappedType(): boolean {\n      this.next();\n      if (this.eat(tt.plusMin)) {\n        return this.isContextual(\"readonly\");\n      }\n      if (this.isContextual(\"readonly\")) {\n        this.next();\n      }\n      if (!this.match(tt.bracketL)) {\n        return false;\n      }\n      this.next();\n      if (!this.tsIsIdentifier()) {\n        return false;\n      }\n      this.next();\n      return this.match(tt._in);\n    }\n\n    tsParseMappedTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsExpectThenParseType(tt._in);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsParseMappedType(): N.TsMappedType {\n      const node: N.TsMappedType = this.startNode();\n\n      this.expect(tt.braceL);\n\n      if (this.match(tt.plusMin)) {\n        node.readonly = this.state.value;\n        this.next();\n        this.expectContextual(\"readonly\");\n      } else if (this.eatContextual(\"readonly\")) {\n        node.readonly = true;\n      }\n\n      this.expect(tt.bracketL);\n      node.typeParameter = this.tsParseMappedTypeParameter();\n      this.expect(tt.bracketR);\n\n      if (this.match(tt.plusMin)) {\n        node.optional = this.state.value;\n        this.next();\n        this.expect(tt.question);\n      } else if (this.eat(tt.question)) {\n        node.optional = true;\n      }\n\n      node.typeAnnotation = this.tsTryParseType();\n      this.semicolon();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"TSMappedType\");\n    }\n\n    tsParseTupleType(): N.TsTupleType {\n      const node: N.TsTupleType = this.startNode();\n      node.elementTypes = this.tsParseBracketedList(\n        \"TupleElementTypes\",\n        this.tsParseTupleElementType.bind(this),\n        /* bracket */ true,\n        /* skipFirstToken */ false,\n      );\n\n      // Validate the elementTypes to ensure:\n      //   No mandatory elements may follow optional elements\n      //   If there's a rest element, it must be at the end of the tuple\n      let seenOptionalElement = false;\n      node.elementTypes.forEach(elementNode => {\n        if (elementNode.type === \"TSOptionalType\") {\n          seenOptionalElement = true;\n        } else if (seenOptionalElement && elementNode.type !== \"TSRestType\") {\n          this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired);\n        }\n      });\n\n      return this.finishNode(node, \"TSTupleType\");\n    }\n\n    tsParseTupleElementType(): N.TsType {\n      // parses `...TsType[]`\n      if (this.match(tt.ellipsis)) {\n        const restNode: N.TsRestType = this.startNode();\n        this.next(); // skips ellipsis\n        restNode.typeAnnotation = this.tsParseType();\n        if (\n          this.match(tt.comma) &&\n          this.lookaheadCharCode() !== charCodes.rightSquareBracket\n        ) {\n          this.raiseRestNotLast(this.state.start);\n        }\n        return this.finishNode(restNode, \"TSRestType\");\n      }\n\n      const type = this.tsParseType();\n      // parses `TsType?`\n      if (this.eat(tt.question)) {\n        const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type);\n        optionalTypeNode.typeAnnotation = type;\n        return this.finishNode(optionalTypeNode, \"TSOptionalType\");\n      }\n      return type;\n    }\n\n    tsParseParenthesizedType(): N.TsParenthesizedType {\n      const node = this.startNode();\n      this.expect(tt.parenL);\n      node.typeAnnotation = this.tsParseType();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSParenthesizedType\");\n    }\n\n    tsParseFunctionOrConstructorType(\n      type: \"TSFunctionType\" | \"TSConstructorType\",\n    ): N.TsFunctionOrConstructorType {\n      const node: N.TsFunctionOrConstructorType = this.startNode();\n      if (type === \"TSConstructorType\") {\n        this.expect(tt._new);\n      }\n      this.tsFillSignature(tt.arrow, node);\n      return this.finishNode(node, type);\n    }\n\n    tsParseLiteralTypeNode(): N.TsLiteralType {\n      const node: N.TsLiteralType = this.startNode();\n      node.literal = (() => {\n        switch (this.state.type) {\n          case tt.num:\n          case tt.string:\n          case tt._true:\n          case tt._false:\n            // For compatibility to estree we cannot call parseLiteral directly here\n            return this.parseExprAtom();\n          default:\n            throw this.unexpected();\n        }\n      })();\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseTemplateLiteralType(): N.TsType {\n      const node: N.TsLiteralType = this.startNode();\n      const templateNode = this.parseTemplate(false);\n      if (templateNode.expressions.length > 0) {\n        this.raise(\n          templateNode.expressions[0].start,\n          TSErrors.TemplateTypeHasSubstitution,\n        );\n      }\n      node.literal = templateNode;\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n      const thisKeyword = this.tsParseThisTypeNode();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        return this.tsParseThisTypePredicate(thisKeyword);\n      } else {\n        return thisKeyword;\n      }\n    }\n\n    tsParseNonArrayType(): N.TsType {\n      switch (this.state.type) {\n        case tt.name:\n        case tt._void:\n        case tt._null: {\n          const type = this.match(tt._void)\n            ? \"TSVoidKeyword\"\n            : this.match(tt._null)\n            ? \"TSNullKeyword\"\n            : keywordTypeFromName(this.state.value);\n          if (\n            type !== undefined &&\n            this.lookaheadCharCode() !== charCodes.dot\n          ) {\n            const node: N.TsKeywordType = this.startNode();\n            this.next();\n            return this.finishNode(node, type);\n          }\n          return this.tsParseTypeReference();\n        }\n        case tt.string:\n        case tt.num:\n        case tt._true:\n        case tt._false:\n          return this.tsParseLiteralTypeNode();\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            const node: N.TsLiteralType = this.startNode();\n            if (this.lookahead().type !== tt.num) {\n              throw this.unexpected();\n            }\n            node.literal = this.parseMaybeUnary();\n            return this.finishNode(node, \"TSLiteralType\");\n          }\n          break;\n        case tt._this:\n          return this.tsParseThisTypeOrThisTypePredicate();\n        case tt._typeof:\n          return this.tsParseTypeQuery();\n        case tt._import:\n          return this.tsParseImportType();\n        case tt.braceL:\n          return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n            ? this.tsParseMappedType()\n            : this.tsParseTypeLiteral();\n        case tt.bracketL:\n          return this.tsParseTupleType();\n        case tt.parenL:\n          return this.tsParseParenthesizedType();\n        case tt.backQuote:\n          return this.tsParseTemplateLiteralType();\n      }\n\n      throw this.unexpected();\n    }\n\n    tsParseArrayTypeOrHigher(): N.TsType {\n      let type = this.tsParseNonArrayType();\n      while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n        if (this.match(tt.bracketR)) {\n          const node: N.TsArrayType = this.startNodeAtNode(type);\n          node.elementType = type;\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSArrayType\");\n        } else {\n          const node: N.TsIndexedAccessType = this.startNodeAtNode(type);\n          node.objectType = type;\n          node.indexType = this.tsParseType();\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSIndexedAccessType\");\n        }\n      }\n      return type;\n    }\n\n    tsParseTypeOperator(\n      operator: \"keyof\" | \"unique\" | \"readonly\",\n    ): N.TsTypeOperator {\n      const node: N.TsTypeOperator = this.startNode();\n      this.expectContextual(operator);\n      node.operator = operator;\n      node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n      if (operator === \"readonly\") {\n        this.tsCheckTypeAnnotationForReadOnly(node);\n      }\n\n      return this.finishNode(node, \"TSTypeOperator\");\n    }\n\n    tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n      switch (node.typeAnnotation.type) {\n        case \"TSTupleType\":\n        case \"TSArrayType\":\n          return;\n        default:\n          this.raise(node.start, TSErrors.UnexpectedReadonly);\n      }\n    }\n\n    tsParseInferType(): N.TsInferType {\n      const node = this.startNode();\n      this.expectContextual(\"infer\");\n      const typeParameter = this.startNode();\n      typeParameter.name = this.parseIdentifierName(typeParameter.start);\n      node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n      return this.finishNode(node, \"TSInferType\");\n    }\n\n    tsParseTypeOperatorOrHigher(): N.TsType {\n      const operator = [\"keyof\", \"unique\", \"readonly\"].find(kw =>\n        this.isContextual(kw),\n      );\n      return operator\n        ? this.tsParseTypeOperator(operator)\n        : this.isContextual(\"infer\")\n        ? this.tsParseInferType()\n        : this.tsParseArrayTypeOrHigher();\n    }\n\n    tsParseUnionOrIntersectionType(\n      kind: \"TSUnionType\" | \"TSIntersectionType\",\n      parseConstituentType: () => N.TsType,\n      operator: TokenType,\n    ): N.TsType {\n      this.eat(operator);\n      let type = parseConstituentType();\n      if (this.match(operator)) {\n        const types = [type];\n        while (this.eat(operator)) {\n          types.push(parseConstituentType());\n        }\n        const node: N.TsUnionType | N.TsIntersectionType = this.startNodeAtNode(\n          type,\n        );\n        node.types = types;\n        type = this.finishNode(node, kind);\n      }\n      return type;\n    }\n\n    tsParseIntersectionTypeOrHigher(): N.TsType {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSIntersectionType\",\n        this.tsParseTypeOperatorOrHigher.bind(this),\n        tt.bitwiseAND,\n      );\n    }\n\n    tsParseUnionTypeOrHigher() {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSUnionType\",\n        this.tsParseIntersectionTypeOrHigher.bind(this),\n        tt.bitwiseOR,\n      );\n    }\n\n    tsIsStartOfFunctionType() {\n      if (this.isRelational(\"<\")) {\n        return true;\n      }\n      return (\n        this.match(tt.parenL) &&\n        this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n      );\n    }\n\n    tsSkipParameterStart(): boolean {\n      if (this.match(tt.name) || this.match(tt._this)) {\n        this.next();\n        return true;\n      }\n\n      if (this.match(tt.braceL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.braceL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.braceR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      if (this.match(tt.bracketL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.bracketL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.bracketR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      return false;\n    }\n\n    tsIsUnambiguouslyStartOfFunctionType(): boolean {\n      this.next();\n      if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n        // ( )\n        // ( ...\n        return true;\n      }\n      if (this.tsSkipParameterStart()) {\n        if (\n          this.match(tt.colon) ||\n          this.match(tt.comma) ||\n          this.match(tt.question) ||\n          this.match(tt.eq)\n        ) {\n          // ( xxx :\n          // ( xxx ,\n          // ( xxx ?\n          // ( xxx =\n          return true;\n        }\n        if (this.match(tt.parenR)) {\n          this.next();\n          if (this.match(tt.arrow)) {\n            // ( xxx ) =>\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n\n    tsParseTypeOrTypePredicateAnnotation(\n      returnToken: TokenType,\n    ): N.TsTypeAnnotation {\n      return this.tsInType(() => {\n        const t: N.TsTypeAnnotation = this.startNode();\n        this.expect(returnToken);\n\n        const asserts = this.tsTryParse(\n          this.tsParseTypePredicateAsserts.bind(this),\n        );\n\n        if (asserts && this.match(tt._this)) {\n          // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n          // : asserts this is type\n          let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n          // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n          // : asserts this\n          if (thisTypePredicate.type === \"TSThisType\") {\n            const node: N.TsTypePredicate = this.startNodeAtNode(t);\n            node.parameterName = (thisTypePredicate: N.TsThisType);\n            node.asserts = true;\n            thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n          } else {\n            (thisTypePredicate: N.TsTypePredicate).asserts = true;\n          }\n          t.typeAnnotation = thisTypePredicate;\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        const typePredicateVariable =\n          this.tsIsIdentifier() &&\n          this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n        if (!typePredicateVariable) {\n          if (!asserts) {\n            // : type\n            return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n          }\n\n          const node: N.TsTypePredicate = this.startNodeAtNode(t);\n          // : asserts foo\n          node.parameterName = this.parseIdentifier();\n          node.asserts = asserts;\n          t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        // : asserts foo is type\n        const type = this.tsParseTypeAnnotation(/* eatColon */ false);\n        const node = this.startNodeAtNode(t);\n        node.parameterName = typePredicateVariable;\n        node.typeAnnotation = type;\n        node.asserts = asserts;\n        t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n        return this.finishNode(t, \"TSTypeAnnotation\");\n      });\n    }\n\n    tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon)\n        ? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)\n        : undefined;\n    }\n\n    tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;\n    }\n\n    tsTryParseType(): ?N.TsType {\n      return this.tsEatThenParseType(tt.colon);\n    }\n\n    tsParseTypePredicatePrefix(): ?N.Identifier {\n      const id = this.parseIdentifier();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        this.next();\n        return id;\n      }\n    }\n\n    tsParseTypePredicateAsserts(): boolean {\n      if (\n        !this.match(tt.name) ||\n        this.state.value !== \"asserts\" ||\n        this.hasPrecedingLineBreak()\n      ) {\n        return false;\n      }\n      const containsEsc = this.state.containsEsc;\n      this.next();\n      if (!this.match(tt.name) && !this.match(tt._this)) {\n        return false;\n      }\n\n      if (containsEsc) {\n        this.raise(\n          this.state.lastTokStart,\n          Errors.InvalidEscapedReservedWord,\n          \"asserts\",\n        );\n      }\n\n      return true;\n    }\n\n    tsParseTypeAnnotation(\n      eatColon = true,\n      t: N.TsTypeAnnotation = this.startNode(),\n    ): N.TsTypeAnnotation {\n      this.tsInType(() => {\n        if (eatColon) this.expect(tt.colon);\n        t.typeAnnotation = this.tsParseType();\n      });\n      return this.finishNode(t, \"TSTypeAnnotation\");\n    }\n\n    /** Be sure to be in a type context before calling this, using `tsInType`. */\n    tsParseType(): N.TsType {\n      // Need to set `state.inType` so that we don't parse JSX in a type context.\n      assert(this.state.inType);\n      const type = this.tsParseNonConditionalType();\n      if (this.hasPrecedingLineBreak() || !this.eat(tt._extends)) {\n        return type;\n      }\n      const node: N.TsConditionalType = this.startNodeAtNode(type);\n      node.checkType = type;\n      node.extendsType = this.tsParseNonConditionalType();\n      this.expect(tt.question);\n      node.trueType = this.tsParseType();\n      this.expect(tt.colon);\n      node.falseType = this.tsParseType();\n      return this.finishNode(node, \"TSConditionalType\");\n    }\n\n    tsParseNonConditionalType(): N.TsType {\n      if (this.tsIsStartOfFunctionType()) {\n        return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n      }\n      if (this.match(tt._new)) {\n        // As in `new () => Date`\n        return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n      }\n      return this.tsParseUnionTypeOrHigher();\n    }\n\n    tsParseTypeAssertion(): N.TsTypeAssertion {\n      const node: N.TsTypeAssertion = this.startNode();\n      const _const = this.tsTryNextParseConstantContext();\n      node.typeAnnotation = _const || this.tsNextThenParseType();\n      this.expectRelational(\">\");\n      node.expression = this.parseMaybeUnary();\n      return this.finishNode(node, \"TSTypeAssertion\");\n    }\n\n    tsParseHeritageClause(\n      descriptor: string,\n    ): $ReadOnlyArray<N.TsExpressionWithTypeArguments> {\n      const originalStart = this.state.start;\n\n      const delimitedList = this.tsParseDelimitedList(\n        \"HeritageClauseElement\",\n        this.tsParseExpressionWithTypeArguments.bind(this),\n      );\n\n      if (!delimitedList.length) {\n        this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor);\n      }\n\n      return delimitedList;\n    }\n\n    tsParseExpressionWithTypeArguments(): N.TsExpressionWithTypeArguments {\n      const node: N.TsExpressionWithTypeArguments = this.startNode();\n      // Note: TS uses parseLeftHandSideExpressionOrHigher,\n      // then has grammar errors later if it's not an EntityName.\n      node.expression = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n\n      return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n    }\n\n    tsParseInterfaceDeclaration(\n      node: N.TsInterfaceDeclaration,\n    ): N.TsInterfaceDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_TS_INTERFACE,\n        undefined,\n        \"typescript interface declaration\",\n      );\n      node.typeParameters = this.tsTryParseTypeParameters();\n      if (this.eat(tt._extends)) {\n        node.extends = this.tsParseHeritageClause(\"extends\");\n      }\n      const body: N.TSInterfaceBody = this.startNode();\n      body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n      node.body = this.finishNode(body, \"TSInterfaceBody\");\n      return this.finishNode(node, \"TSInterfaceDeclaration\");\n    }\n\n    tsParseTypeAliasDeclaration(\n      node: N.TsTypeAliasDeclaration,\n    ): N.TsTypeAliasDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(node.id, BIND_TS_TYPE, undefined, \"typescript type alias\");\n\n      node.typeParameters = this.tsTryParseTypeParameters();\n      node.typeAnnotation = this.tsExpectThenParseType(tt.eq);\n      this.semicolon();\n      return this.finishNode(node, \"TSTypeAliasDeclaration\");\n    }\n\n    tsInNoContext<T>(cb: () => T): T {\n      const oldContext = this.state.context;\n      this.state.context = [oldContext[0]];\n      try {\n        return cb();\n      } finally {\n        this.state.context = oldContext;\n      }\n    }\n\n    /**\n     * Runs `cb` in a type context.\n     * This should be called one token *before* the first type token,\n     * so that the call to `next()` is run in type context.\n     */\n    tsInType<T>(cb: () => T): T {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      try {\n        return cb();\n      } finally {\n        this.state.inType = oldInType;\n      }\n    }\n\n    tsEatThenParseType(token: TokenType): N.TsType | typeof undefined {\n      return !this.match(token) ? undefined : this.tsNextThenParseType();\n    }\n\n    tsExpectThenParseType(token: TokenType): N.TsType {\n      return this.tsDoThenParseType(() => this.expect(token));\n    }\n\n    tsNextThenParseType(): N.TsType {\n      return this.tsDoThenParseType(() => this.next());\n    }\n\n    tsDoThenParseType(cb: () => void): N.TsType {\n      return this.tsInType(() => {\n        cb();\n        return this.tsParseType();\n      });\n    }\n\n    tsParseEnumMember(): N.TsEnumMember {\n      const node: N.TsEnumMember = this.startNode();\n      // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n      node.id = this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(/* liberal */ true);\n      if (this.eat(tt.eq)) {\n        node.initializer = this.parseMaybeAssign();\n      }\n      return this.finishNode(node, \"TSEnumMember\");\n    }\n\n    tsParseEnumDeclaration(\n      node: N.TsEnumDeclaration,\n      isConst: boolean,\n    ): N.TsEnumDeclaration {\n      if (isConst) node.const = true;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM,\n        undefined,\n        \"typescript enum declaration\",\n      );\n\n      this.expect(tt.braceL);\n      node.members = this.tsParseDelimitedList(\n        \"EnumMembers\",\n        this.tsParseEnumMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"TSEnumDeclaration\");\n    }\n\n    tsParseModuleBlock(): N.TsModuleBlock {\n      const node: N.TsModuleBlock = this.startNode();\n      this.scope.enter(SCOPE_OTHER);\n\n      this.expect(tt.braceL);\n      // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n      this.parseBlockOrModuleBlockBody(\n        (node.body = []),\n        /* directives */ undefined,\n        /* topLevel */ true,\n        /* end */ tt.braceR,\n      );\n      this.scope.exit();\n      return this.finishNode(node, \"TSModuleBlock\");\n    }\n\n    tsParseModuleOrNamespaceDeclaration(\n      node: N.TsModuleDeclaration,\n      nested?: boolean = false,\n    ): N.TsModuleDeclaration {\n      node.id = this.parseIdentifier();\n\n      if (!nested) {\n        this.checkLVal(\n          node.id,\n          BIND_TS_NAMESPACE,\n          null,\n          \"module or namespace declaration\",\n        );\n      }\n\n      if (this.eat(tt.dot)) {\n        const inner = this.startNode();\n        this.tsParseModuleOrNamespaceDeclaration(inner, true);\n        node.body = inner;\n      } else {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      }\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseAmbientExternalModuleDeclaration(\n      node: N.TsModuleDeclaration,\n    ): N.TsModuleDeclaration {\n      if (this.isContextual(\"global\")) {\n        node.global = true;\n        node.id = this.parseIdentifier();\n      } else if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        this.unexpected();\n      }\n      if (this.match(tt.braceL)) {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      } else {\n        this.semicolon();\n      }\n\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseImportEqualsDeclaration(\n      node: N.TsImportEqualsDeclaration,\n      isExport?: boolean,\n    ): N.TsImportEqualsDeclaration {\n      node.isExport = isExport || false;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_LEXICAL,\n        undefined,\n        \"import equals declaration\",\n      );\n      this.expect(tt.eq);\n      node.moduleReference = this.tsParseModuleReference();\n      this.semicolon();\n      return this.finishNode(node, \"TSImportEqualsDeclaration\");\n    }\n\n    tsIsExternalModuleReference(): boolean {\n      return (\n        this.isContextual(\"require\") &&\n        this.lookaheadCharCode() === charCodes.leftParenthesis\n      );\n    }\n\n    tsParseModuleReference(): N.TsModuleReference {\n      return this.tsIsExternalModuleReference()\n        ? this.tsParseExternalModuleReference()\n        : this.tsParseEntityName(/* allowReservedWords */ false);\n    }\n\n    tsParseExternalModuleReference(): N.TsExternalModuleReference {\n      const node: N.TsExternalModuleReference = this.startNode();\n      this.expectContextual(\"require\");\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        throw this.unexpected();\n      }\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.expression = this.parseExprAtom();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSExternalModuleReference\");\n    }\n\n    // Utilities\n\n    tsLookAhead<T>(f: () => T): T {\n      const state = this.state.clone();\n      const res = f();\n      this.state = state;\n      return res;\n    }\n\n    tsTryParseAndCatch<T: ?N.NodeBase>(f: () => T): ?T {\n      const result = this.tryParse(abort => f() || abort());\n\n      if (result.aborted || !result.node) return undefined;\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    tsTryParse<T>(f: () => ?T): ?T {\n      const state = this.state.clone();\n      const result = f();\n      if (result !== undefined && result !== false) {\n        return result;\n      } else {\n        this.state = state;\n        return undefined;\n      }\n    }\n\n    tsTryParseDeclare(nany: any): ?N.Declaration {\n      if (this.isLineTerminator()) {\n        return;\n      }\n      let starttype = this.state.type;\n      let kind;\n\n      if (this.isContextual(\"let\")) {\n        starttype = tt._var;\n        kind = \"let\";\n      }\n\n      switch (starttype) {\n        case tt._function:\n          return this.parseFunctionStatement(\n            nany,\n            /* async */ false,\n            /* declarationPosition */ true,\n          );\n        case tt._class:\n          // While this is also set by tsParseExpressionStatement, we need to set it\n          // before parsing the class declaration to now how to register it in the scope.\n          nany.declare = true;\n          return this.parseClass(\n            nany,\n            /* isStatement */ true,\n            /* optionalId */ false,\n          );\n        case tt._const:\n          if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n            // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n            this.expect(tt._const);\n            this.expectContextual(\"enum\");\n            return this.tsParseEnumDeclaration(nany, /* isConst */ true);\n          }\n        // falls through\n        case tt._var:\n          kind = kind || this.state.value;\n          return this.parseVarStatement(nany, kind);\n        case tt.name: {\n          const value = this.state.value;\n          if (value === \"global\") {\n            return this.tsParseAmbientExternalModuleDeclaration(nany);\n          } else {\n            return this.tsParseDeclaration(nany, value, /* next */ true);\n          }\n        }\n      }\n    }\n\n    // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n    tsTryParseExportDeclaration(): ?N.Declaration {\n      return this.tsParseDeclaration(\n        this.startNode(),\n        this.state.value,\n        /* next */ true,\n      );\n    }\n\n    tsParseExpressionStatement(node: any, expr: N.Identifier): ?N.Declaration {\n      switch (expr.name) {\n        case \"declare\": {\n          const declaration = this.tsTryParseDeclare(node);\n          if (declaration) {\n            declaration.declare = true;\n            return declaration;\n          }\n          break;\n        }\n        case \"global\":\n          // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n          // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n          if (this.match(tt.braceL)) {\n            this.scope.enter(SCOPE_TS_MODULE);\n            this.prodParam.enter(PARAM);\n            const mod: N.TsModuleDeclaration = node;\n            mod.global = true;\n            mod.id = expr;\n            mod.body = this.tsParseModuleBlock();\n            this.scope.exit();\n            this.prodParam.exit();\n            return this.finishNode(mod, \"TSModuleDeclaration\");\n          }\n          break;\n\n        default:\n          return this.tsParseDeclaration(node, expr.name, /* next */ false);\n      }\n    }\n\n    // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n    tsParseDeclaration(\n      node: any,\n      value: string,\n      next: boolean,\n    ): ?N.Declaration {\n      switch (value) {\n        case \"abstract\":\n          if (this.tsCheckLineTerminatorAndMatch(tt._class, next)) {\n            const cls: N.ClassDeclaration = node;\n            cls.abstract = true;\n            if (next) {\n              this.next();\n              if (!this.match(tt._class)) {\n                this.unexpected(null, tt._class);\n              }\n            }\n            return this.parseClass(\n              cls,\n              /* isStatement */ true,\n              /* optionalId */ false,\n            );\n          }\n          break;\n\n        case \"enum\":\n          if (next || this.match(tt.name)) {\n            if (next) this.next();\n            return this.tsParseEnumDeclaration(node, /* isConst */ false);\n          }\n          break;\n\n        case \"interface\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseInterfaceDeclaration(node);\n          }\n          break;\n\n        case \"module\":\n          if (next) this.next();\n          if (this.match(tt.string)) {\n            return this.tsParseAmbientExternalModuleDeclaration(node);\n          } else if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"namespace\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"type\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseTypeAliasDeclaration(node);\n          }\n          break;\n      }\n    }\n\n    tsCheckLineTerminatorAndMatch(tokenType: TokenType, next: boolean) {\n      return (next || this.match(tokenType)) && !this.isLineTerminator();\n    }\n\n    tsTryParseGenericAsyncArrowFunction(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      if (!this.isRelational(\"<\")) {\n        return undefined;\n      }\n\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      const res: ?N.ArrowFunctionExpression = this.tsTryParseAndCatch(() => {\n        const node: N.ArrowFunctionExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.typeParameters = this.tsParseTypeParameters();\n        // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n        super.parseFunctionParams(node);\n        node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n        this.expect(tt.arrow);\n        return node;\n      });\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n\n      if (!res) {\n        return undefined;\n      }\n\n      return this.parseArrowExpression(\n        res,\n        /* params are already set */ null,\n        /* async */ true,\n      );\n    }\n\n    tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n      const node = this.startNode();\n      node.params = this.tsInType(() =>\n        // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n        this.tsInNoContext(() => {\n          this.expectRelational(\"<\");\n          return this.tsParseDelimitedList(\n            \"TypeParametersOrArguments\",\n            this.tsParseType.bind(this),\n          );\n        }),\n      );\n      // This reads the next token after the `>` too, so do this in the enclosing context.\n      // But be sure not to parse a regex in the jsx expression `<C<number> />`, so set exprAllowed = false\n      this.state.exprAllowed = false;\n      this.expectRelational(\">\");\n      return this.finishNode(node, \"TSTypeParameterInstantiation\");\n    }\n\n    tsIsDeclarationStart(): boolean {\n      if (this.match(tt.name)) {\n        switch (this.state.value) {\n          case \"abstract\":\n          case \"declare\":\n          case \"enum\":\n          case \"interface\":\n          case \"module\":\n          case \"namespace\":\n          case \"type\":\n            return true;\n        }\n      }\n\n      return false;\n    }\n\n    // ======================================================\n    // OVERRIDES\n    // ======================================================\n\n    isExportDefaultSpecifier(): boolean {\n      if (this.tsIsDeclarationStart()) return false;\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseAssignableListItem(\n      allowModifiers: ?boolean,\n      decorators: N.Decorator[],\n    ): N.Pattern | N.TSParameterProperty {\n      // Store original location/position to include modifiers in range\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      let accessibility: ?N.Accessibility;\n      let readonly = false;\n      if (allowModifiers) {\n        accessibility = this.parseAccessModifier();\n        readonly = !!this.tsParseModifier([\"readonly\"]);\n      }\n\n      const left = this.parseMaybeDefault();\n      this.parseAssignableListItemTypes(left);\n      const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n      if (accessibility || readonly) {\n        const pp: N.TSParameterProperty = this.startNodeAt(startPos, startLoc);\n        if (decorators.length) {\n          pp.decorators = decorators;\n        }\n        if (accessibility) pp.accessibility = accessibility;\n        if (readonly) pp.readonly = readonly;\n        if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n          this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind);\n        }\n        pp.parameter = ((elt: any): N.Identifier | N.AssignmentPattern);\n        return this.finishNode(pp, \"TSParameterProperty\");\n      }\n\n      if (decorators.length) {\n        left.decorators = decorators;\n      }\n\n      return elt;\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n      }\n\n      const bodilessType =\n        type === \"FunctionDeclaration\"\n          ? \"TSDeclareFunction\"\n          : type === \"ClassMethod\"\n          ? \"TSDeclareMethod\"\n          : undefined;\n      if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n        this.finishNode(node, bodilessType);\n        return;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    registerFunctionStatementId(node: N.Function): void {\n      if (!node.body && node.id) {\n        // Function ids are validated after parsing their body.\n        // For bodyless function, we need to do it here.\n        this.checkLVal(node.id, BIND_TS_AMBIENT, null, \"function name\");\n      } else {\n        super.registerFunctionStatementId(...arguments);\n      }\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      state: N.ParseSubscriptState,\n    ): N.Expression {\n      if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n        this.state.exprAllowed = false;\n        this.next();\n\n        const nonNullExpression: N.TsNonNullExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        nonNullExpression.expression = base;\n        return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n      }\n\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // There are number of things we are going to \"maybe\" parse, like type arguments on\n        // tagged template expressions. If any of them fail, walk it back and continue.\n        const result = this.tsTryParseAndCatch(() => {\n          if (!noCalls && this.atPossibleAsyncArrow(base)) {\n            // Almost certainly this is a generic async function `async <T>() => ...\n            // But it might be a call with a type argument `async<T>();`\n            const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(\n              startPos,\n              startLoc,\n            );\n            if (asyncArrowFn) {\n              return asyncArrowFn;\n            }\n          }\n\n          const node: N.CallExpression = this.startNodeAt(startPos, startLoc);\n          node.callee = base;\n\n          const typeArguments = this.tsParseTypeArguments();\n\n          if (typeArguments) {\n            if (!noCalls && this.eat(tt.parenL)) {\n              // possibleAsync always false here, because we would have handled it above.\n              // $FlowIgnore (won't be any undefined arguments)\n              node.arguments = this.parseCallExpressionArguments(\n                tt.parenR,\n                /* possibleAsync */ false,\n              );\n              node.typeParameters = typeArguments;\n              return this.finishCallExpression(node, state.optionalChainMember);\n            } else if (this.match(tt.backQuote)) {\n              return this.parseTaggedTemplateExpression(\n                startPos,\n                startLoc,\n                base,\n                state,\n                typeArguments,\n              );\n            }\n          }\n\n          this.unexpected();\n        });\n\n        if (result) return result;\n      }\n\n      return super.parseSubscript(base, startPos, startLoc, noCalls, state);\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // 99% certain this is `new C<T>();`. But may be `new C < T;`, which is also legal.\n        const typeParameters = this.tsTryParseAndCatch(() => {\n          const args = this.tsParseTypeArguments();\n          if (!this.match(tt.parenL)) this.unexpected();\n          return args;\n        });\n        if (typeParameters) {\n          node.typeParameters = typeParameters;\n        }\n      }\n\n      super.parseNewArguments(node);\n    }\n\n    parseExprOp(\n      left: N.Expression,\n      leftStartPos: number,\n      leftStartLoc: Position,\n      minPrec: number,\n      noIn: ?boolean,\n    ) {\n      if (\n        nonNull(tt._in.binop) > minPrec &&\n        !this.hasPrecedingLineBreak() &&\n        this.isContextual(\"as\")\n      ) {\n        const node: N.TsAsExpression = this.startNodeAt(\n          leftStartPos,\n          leftStartLoc,\n        );\n        node.expression = left;\n        const _const = this.tsTryNextParseConstantContext();\n        if (_const) {\n          node.typeAnnotation = _const;\n        } else {\n          node.typeAnnotation = this.tsNextThenParseType();\n        }\n        this.finishNode(node, \"TSAsExpression\");\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n\n      return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn);\n    }\n\n    checkReservedWord(\n      word: string, // eslint-disable-line no-unused-vars\n      startLoc: number, // eslint-disable-line no-unused-vars\n      checkKeywords: boolean, // eslint-disable-line no-unused-vars\n      // eslint-disable-next-line no-unused-vars\n      isBinding: boolean,\n    ): void {\n      // Don't bother checking for TypeScript code.\n      // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n      // And we have a type checker anyway, so don't bother having the parser do it.\n    }\n\n    /*\n    Don't bother doing this check in TypeScript code because:\n    1. We may have a nested export statement with the same name:\n      export const x = 0;\n      export namespace N {\n        export const x = 1;\n      }\n    2. We have a type checker to warn us about this sort of thing.\n    */\n    checkDuplicateExports() {}\n\n    parseImport(node: N.Node): N.AnyImport {\n      if (this.match(tt.name) || this.match(tt.star) || this.match(tt.braceL)) {\n        const ahead = this.lookahead();\n\n        if (this.match(tt.name) && ahead.type === tt.eq) {\n          return this.tsParseImportEqualsDeclaration(node);\n        }\n\n        if (\n          this.isContextual(\"type\") &&\n          // import type, { a } from \"b\";\n          ahead.type !== tt.comma &&\n          // import type from \"a\";\n          !(ahead.type === tt.name && ahead.value === \"from\")\n        ) {\n          node.importKind = \"type\";\n          this.next();\n        } else {\n          node.importKind = \"value\";\n        }\n      }\n\n      const importNode = super.parseImport(node);\n      /*:: invariant(importNode.type !== \"TSImportEqualsDeclaration\") */\n\n      // `import type` can only be used on imports with named imports or with a\n      // default import - but not both\n      if (\n        importNode.importKind === \"type\" &&\n        importNode.specifiers.length > 1 &&\n        importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n      ) {\n        this.raise(\n          importNode.start,\n          \"A type-only import can specify a default import or named bindings, but not both.\",\n        );\n      }\n\n      return importNode;\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      if (this.match(tt._import)) {\n        // `export import A = B;`\n        this.expect(tt._import);\n        return this.tsParseImportEqualsDeclaration(node, /* isExport */ true);\n      } else if (this.eat(tt.eq)) {\n        // `export = x;`\n        const assign: N.TsExportAssignment = node;\n        assign.expression = this.parseExpression();\n        this.semicolon();\n        return this.finishNode(assign, \"TSExportAssignment\");\n      } else if (this.eatContextual(\"as\")) {\n        // `export as namespace A;`\n        const decl: N.TsNamespaceExportDeclaration = node;\n        // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n        this.expectContextual(\"namespace\");\n        decl.id = this.parseIdentifier();\n        this.semicolon();\n        return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n      } else {\n        if (this.isContextual(\"type\") && this.lookahead().type === tt.braceL) {\n          this.next();\n          node.exportKind = \"type\";\n        } else {\n          node.exportKind = \"value\";\n        }\n\n        return super.parseExport(node);\n      }\n    }\n\n    isAbstractClass(): boolean {\n      return (\n        this.isContextual(\"abstract\") && this.lookahead().type === tt._class\n      );\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.isAbstractClass()) {\n        const cls = this.startNode();\n        this.next(); // Skip \"abstract\"\n        this.parseClass(cls, true, true);\n        cls.abstract = true;\n        return cls;\n      }\n\n      // export default interface allowed in:\n      // https://github.com/Microsoft/TypeScript/pull/16040\n      if (this.state.value === \"interface\") {\n        const result = this.tsParseDeclaration(\n          this.startNode(),\n          this.state.value,\n          true,\n        );\n\n        if (result) return result;\n      }\n\n      return super.parseExportDefaultExpression();\n    }\n\n    parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n      if (this.state.type === tt._const) {\n        const ahead = this.lookahead();\n        if (ahead.type === tt.name && ahead.value === \"enum\") {\n          const node: N.TsEnumDeclaration = this.startNode();\n          this.expect(tt._const);\n          this.expectContextual(\"enum\");\n          return this.tsParseEnumDeclaration(node, /* isConst */ true);\n        }\n      }\n      return super.parseStatementContent(context, topLevel);\n    }\n\n    parseAccessModifier(): ?N.Accessibility {\n      return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"declare\"]);\n      const accessibility = this.parseAccessModifier();\n      if (accessibility) member.accessibility = accessibility;\n      this.tsParseModifiers(member, [\"declare\"]);\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n    }\n\n    parseClassMemberWithIsStatic(\n      classBody: N.ClassBody,\n      member: N.ClassMember | N.TsIndexSignature,\n      state: { hadConstructor: boolean },\n      isStatic: boolean,\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"abstract\", \"readonly\", \"declare\"]);\n\n      const idx = this.tsTryParseIndexSignature(member);\n      if (idx) {\n        classBody.body.push(idx);\n\n        if ((member: any).abstract) {\n          this.raise(member.start, TSErrors.IndexSignatureHasAbstract);\n        }\n        if (isStatic) {\n          this.raise(member.start, TSErrors.IndexSignatureHasStatic);\n        }\n        if ((member: any).accessibility) {\n          this.raise(\n            member.start,\n            TSErrors.IndexSignatureHasAccessibility,\n            (member: any).accessibility,\n          );\n        }\n\n        return;\n      }\n\n      /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n      super.parseClassMemberWithIsStatic(\n        classBody,\n        member,\n        state,\n        isStatic,\n        constructorAllowsSuper,\n      );\n    }\n\n    parsePostMemberNameModifiers(\n      methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      const optional = this.eat(tt.question);\n      if (optional) methodOrProp.optional = true;\n\n      if ((methodOrProp: any).readonly && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly);\n      }\n\n      if ((methodOrProp: any).declare && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare);\n      }\n    }\n\n    // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n    // is that e.g. `type()` is valid JS, so we must try parsing that first.\n    // If it's really a type, we will parse `type` as the statement, and can correct it here\n    // by parsing the rest.\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.Statement {\n      const decl =\n        expr.type === \"Identifier\"\n          ? this.tsParseExpressionStatement(node, expr)\n          : undefined;\n      return decl || super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n    shouldParseExportDeclaration(): boolean {\n      if (this.tsIsDeclarationStart()) return true;\n      return super.shouldParseExportDeclaration();\n    }\n\n    // An apparent conditional expression could actually be an optional parameter in an arrow function.\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      // only do the expensive clone if there is a question mark\n      // and if we come from inside parens\n      if (!refNeedsArrowPos || !this.match(tt.question)) {\n        return super.parseConditional(\n          expr,\n          noIn,\n          startPos,\n          startLoc,\n          refNeedsArrowPos,\n        );\n      }\n\n      const result = this.tryParse(() =>\n        super.parseConditional(expr, noIn, startPos, startLoc),\n      );\n\n      if (!result.node) {\n        // $FlowIgnore\n        refNeedsArrowPos.start = result.error.pos || this.state.start;\n        return expr;\n      }\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    // Note: These \"type casts\" are *not* valid TS expressions.\n    // But we parse them here and change them when completing the arrow function.\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      // Store original location/position\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      // \"export declare\" is equivalent to just \"export\".\n      const isDeclare = this.eatContextual(\"declare\");\n\n      let declaration: ?N.Declaration;\n\n      if (this.match(tt.name)) {\n        declaration = this.tsTryParseExportDeclaration();\n      }\n      if (!declaration) {\n        declaration = super.parseExportDeclaration(node);\n      }\n      if (\n        declaration &&\n        (declaration.type === \"TSInterfaceDeclaration\" ||\n          declaration.type === \"TSTypeAliasDeclaration\" ||\n          isDeclare)\n      ) {\n        node.exportKind = \"type\";\n      }\n\n      if (declaration && isDeclare) {\n        // Reset location to include `declare` in range\n        this.resetStartLocation(declaration, startPos, startLoc);\n\n        declaration.declare = true;\n      }\n\n      return declaration;\n    }\n\n    parseClassId(\n      node: N.Class,\n      isStatement: boolean,\n      optionalId: ?boolean,\n    ): void {\n      if ((!isStatement || optionalId) && this.isContextual(\"implements\")) {\n        return;\n      }\n\n      super.parseClassId(\n        node,\n        isStatement,\n        optionalId,\n        (node: any).declare ? BIND_TS_AMBIENT : BIND_CLASS,\n      );\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n    }\n\n    parseClassPropertyAnnotation(\n      node: N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      if (!node.optional && this.eat(tt.bang)) {\n        node.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n    }\n\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      this.parseClassPropertyAnnotation(node);\n\n      if (node.declare && this.match(tt.equal)) {\n        this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer);\n      }\n\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      // $FlowIgnore\n      if (node.abstract) {\n        this.raise(node.start, TSErrors.PrivateElementHasAbstract);\n      }\n\n      // $FlowIgnore\n      if (node.accessibility) {\n        this.raise(\n          node.start,\n          TSErrors.PrivateElementHasAccessibility,\n          node.accessibility,\n        );\n      }\n\n      this.parseClassPropertyAnnotation(node);\n      return super.parseClassPrivateProperty(node);\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.tsParseTypeArguments();\n      }\n      if (this.eatContextual(\"implements\")) {\n        node.implements = this.tsParseHeritageClause(\"implements\");\n      }\n    }\n\n    parseObjPropValue(prop: N.ObjectMember, ...args): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) prop.typeParameters = typeParameters;\n\n      super.parseObjPropValue(prop, ...args);\n    }\n\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // `let x: number;`\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (decl.id.type === \"Identifier\" && this.eat(tt.bang)) {\n        decl.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) {\n        decl.id.typeAnnotation = type;\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeAnnotation();\n      }\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    parseMaybeAssign(...args): N.Expression {\n      // Note: When the JSX plugin is on, type assertions (`<T> x`) aren't valid syntax.\n\n      let state: ?State;\n      let jsx;\n      let typeCast;\n\n      if (this.match(tt.jsxTagStart)) {\n        // Prefer to parse JSX if possible. But may be an arrow fn.\n        state = this.state.clone();\n\n        jsx = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === ct.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === ct.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if (!(jsx && jsx.error) && !this.isRelational(\"<\")) {\n        return super.parseMaybeAssign(...args);\n      }\n\n      // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n      let typeParameters: N.TsTypeParameterDeclaration;\n      state = state || this.state.clone();\n\n      const arrow = this.tryParse(abort => {\n        // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n        typeParameters = this.tsParseTypeParameters();\n        const expr = super.parseMaybeAssign(...args);\n\n        if (\n          expr.type !== \"ArrowFunctionExpression\" ||\n          (expr.extra && expr.extra.parenthesized)\n        ) {\n          abort();\n        }\n\n        // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n        if (typeParameters && typeParameters.params.length !== 0) {\n          this.resetStartLocationFromNode(expr, typeParameters);\n        }\n        expr.typeParameters = typeParameters;\n        return expr;\n      }, state);\n\n      if (!arrow.error && !arrow.aborted) return arrow.node;\n\n      if (!jsx) {\n        // Try parsing a type cast instead of an arrow function.\n        // This will never happen outside of JSX.\n        // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n        assert(!this.hasPlugin(\"jsx\"));\n\n        // This will start with a type assertion (via parseMaybeUnary).\n        // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n        typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!typeCast.aborted) */\n        if (!typeCast.error) return typeCast.node;\n      }\n\n      if (jsx && jsx.node) {\n        /*:: invariant(jsx.failState) */\n        this.state = jsx.failState;\n        return jsx.node;\n      }\n\n      if (arrow.node) {\n        /*:: invariant(arrow.failState) */\n        this.state = arrow.failState;\n        return arrow.node;\n      }\n\n      if (typeCast && typeCast.node) {\n        /*:: invariant(typeCast.failState) */\n        this.state = typeCast.failState;\n        return typeCast.node;\n      }\n\n      if (jsx && jsx.thrown) throw jsx.error;\n      if (arrow.thrown) throw arrow.error;\n      if (typeCast && typeCast.thrown) throw typeCast.error;\n\n      throw (jsx && jsx.error) || arrow.error || (typeCast && typeCast.error);\n    }\n\n    // Handle type assertions\n    parseMaybeUnary(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      if (!this.hasPlugin(\"jsx\") && this.isRelational(\"<\")) {\n        return this.tsParseTypeAssertion();\n      } else {\n        return super.parseMaybeUnary(refExpressionErrors);\n      }\n    }\n\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        // This is different from how the TS parser does it.\n        // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n        const result = this.tryParse(abort => {\n          const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n            tt.colon,\n          );\n          if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n          return returnType;\n        });\n\n        if (result.aborted) return;\n\n        if (!result.thrown) {\n          if (result.error) this.state = result.failState;\n          node.returnType = result.node;\n        }\n      }\n\n      return super.parseArrow(node);\n    }\n\n    // Allow type annotations inside of a parameter list.\n    parseAssignableListItemTypes(param: N.Pattern) {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, TSErrors.PatternIsOptional);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) param.typeAnnotation = type;\n      this.resetEndLocation(param);\n\n      return param;\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      switch (node.type) {\n        case \"TSTypeCastExpression\":\n          return super.toAssignable(this.typeCastToParameter(node));\n        case \"TSParameterProperty\":\n          return super.toAssignable(node);\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          node.expression = this.toAssignable(node.expression);\n          return node;\n        default:\n          return super.toAssignable(node);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      switch (expr.type) {\n        case \"TSTypeCastExpression\":\n          // Allow \"typecasts\" to appear on the left of assignment expressions,\n          // because it may be in an arrow function.\n          // e.g. `const f = (foo: number = 0) => foo;`\n          return;\n        case \"TSParameterProperty\":\n          this.checkLVal(\n            expr.parameter,\n            bindingType,\n            checkClashes,\n            \"parameter property\",\n          );\n          return;\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          this.checkLVal(\n            expr.expression,\n            bindingType,\n            checkClashes,\n            contextDescription,\n          );\n          return;\n        default:\n          super.checkLVal(expr, bindingType, checkClashes, contextDescription);\n          return;\n      }\n    }\n\n    parseBindingAtom(): N.Pattern {\n      switch (this.state.type) {\n        case tt._this:\n          // \"this\" may be the name of a parameter, so allow it.\n          return this.parseIdentifier(/* liberal */ true);\n        default:\n          return super.parseBindingAtom();\n      }\n    }\n\n    parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsParseTypeArguments();\n\n        if (this.match(tt.parenL)) {\n          const call = super.parseMaybeDecoratorArguments(expr);\n          call.typeParameters = typeArguments;\n          return call;\n        }\n\n        this.unexpected(this.state.start, tt.parenL);\n      }\n\n      return super.parseMaybeDecoratorArguments(expr);\n    }\n\n    // === === === === === === === === === === === === === === === ===\n    // Note: All below methods are duplicates of something in flow.js.\n    // Not sure what the best way to combine these is.\n    // === === === === === === === === === === === === === === === ===\n\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    isClassProperty(): boolean {\n      return (\n        this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n      );\n    }\n\n    parseMaybeDefault(...args): N.Pattern {\n      const node = super.parseMaybeDefault(...args);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(\n          node.typeAnnotation.start,\n          TSErrors.TypeAnnotationAfterAssign,\n        );\n      }\n\n      return node;\n    }\n\n    // ensure that inside types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      if (this.state.inType && (code === 62 || code === 60)) {\n        return this.finishOp(tt.relational, 1);\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    toAssignableList(exprList: N.Expression[]): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (!expr) continue;\n        switch (expr.type) {\n          case \"TSTypeCastExpression\":\n            exprList[i] = this.typeCastToParameter(expr);\n            break;\n          case \"TSAsExpression\":\n          case \"TSTypeAssertion\":\n            if (!this.state.maybeInArrowParameters) {\n              exprList[i] = this.typeCastToParameter(expr);\n            } else {\n              this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter);\n            }\n            break;\n        }\n      }\n      return super.toAssignableList(...arguments);\n    }\n\n    typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isInParens?: boolean, // eslint-disable-line no-unused-vars\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TSTypeCastExpression\") {\n          this.raise(expr.start, TSErrors.UnexpectedTypeAnnotation);\n        }\n      }\n\n      return exprList;\n    }\n\n    shouldParseArrow() {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    canHaveLeadingDecorator() {\n      // Avoid unnecessary lookahead in checking for abstract class unless needed!\n      return super.canHaveLeadingDecorator() || this.isAbstractClass();\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsTryParseAndCatch(() =>\n          this.tsParseTypeArguments(),\n        );\n        if (typeArguments) node.typeParameters = typeArguments;\n      }\n      return super.jsxParseOpeningElementAfterName(node);\n    }\n\n    getGetterSetterExpectedParamCount(\n      method: N.ObjectMethod | N.ClassMethod,\n    ): number {\n      const baseCount = super.getGetterSetterExpectedParamCount(method);\n      const firstParam = method.params[0];\n      const hasContextParam =\n        firstParam &&\n        firstParam.type === \"Identifier\" &&\n        firstParam.name === \"this\";\n\n      return hasContextParam ? baseCount + 1 : baseCount;\n    }\n  };\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport * as N from \"../types\";\n\ntt.placeholder = new TokenType(\"%%\", { startsExpr: true });\n\nexport type PlaceholderTypes =\n  | \"Identifier\"\n  | \"StringLiteral\"\n  | \"Expression\"\n  | \"Statement\"\n  | \"Declaration\"\n  | \"BlockStatement\"\n  | \"ClassBody\"\n  | \"Pattern\";\n\n// $PropertyType doesn't support enums. Use a fake \"switch\" (GetPlaceholderNode)\n//type MaybePlaceholder<T: PlaceholderTypes> = $PropertyType<N, T> | N.Placeholder<T>;\n\ntype _Switch<Value, Cases, Index> = $Call<\n  (\n    $ElementType<$ElementType<Cases, Index>, 0>,\n  ) => $ElementType<$ElementType<Cases, Index>, 1>,\n  Value,\n>;\ntype $Switch<Value, Cases> = _Switch<Value, Cases, *>;\n\ntype NodeOf<T: PlaceholderTypes> = $Switch<\n  T,\n  [\n    [\"Identifier\", N.Identifier],\n    [\"StringLiteral\", N.StringLiteral],\n    [\"Expression\", N.Expression],\n    [\"Statement\", N.Statement],\n    [\"Declaration\", N.Declaration],\n    [\"BlockStatement\", N.BlockStatement],\n    [\"ClassBody\", N.ClassBody],\n    [\"Pattern\", N.Pattern],\n  ],\n>;\n\n// Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T: PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parsePlaceholder<T: PlaceholderTypes>(\n      expectedNode: T,\n    ): /*?N.Placeholder<T>*/ ?MaybePlaceholder<T> {\n      if (this.match(tt.placeholder)) {\n        const node = this.startNode();\n        this.next();\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n\n        // We can't use this.parseIdentifier because\n        // we don't want nested placeholders.\n        node.name = super.parseIdentifier(/* liberal */ true);\n\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n        this.expect(tt.placeholder);\n        return this.finishPlaceholder(node, expectedNode);\n      }\n    }\n\n    finishPlaceholder<T: PlaceholderTypes>(\n      node: N.Node,\n      expectedNode: T,\n    ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n      const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n      node.expectedNode = expectedNode;\n\n      return isFinished ? node : this.finishNode(node, \"Placeholder\");\n    }\n\n    /* ============================================================ *\n     * tokenizer/index.js                                           *\n     * ============================================================ */\n\n    getTokenFromCode(code: number) {\n      if (\n        code === charCodes.percentSign &&\n        this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n      ) {\n        return this.finishOp(tt.placeholder, 2);\n      }\n\n      return super.getTokenFromCode(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): MaybePlaceholder<\"Expression\"> {\n      return (\n        this.parsePlaceholder(\"Expression\") || super.parseExprAtom(...arguments)\n      );\n    }\n\n    parseIdentifier(): MaybePlaceholder<\"Identifier\"> {\n      // NOTE: This function only handles identifiers outside of\n      // expressions and binding patterns, since they are already\n      // handled by the parseExprAtom and parseBindingAtom functions.\n      // This is needed, for example, to parse \"class %%NAME%% {}\".\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseIdentifier(...arguments)\n      );\n    }\n\n    checkReservedWord(word: string): void {\n      // Sometimes we call #checkReservedWord(node.name), expecting\n      // that node is an Identifier. If it is a Placeholder, name\n      // will be undefined.\n      if (word !== undefined) super.checkReservedWord(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/lval.js                                               *\n     * ============================================================ */\n\n    parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n      return (\n        this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom(...arguments)\n      );\n    }\n\n    checkLVal(expr: N.Expression): void {\n      if (expr.type !== \"Placeholder\") super.checkLVal(...arguments);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (\n        node &&\n        node.type === \"Placeholder\" &&\n        node.expectedNode === \"Expression\"\n      ) {\n        node.expectedNode = \"Pattern\";\n        return node;\n      }\n      return super.toAssignable(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/statement.js                                          *\n     * ============================================================ */\n\n    verifyBreakContinue(node: N.BreakStatement | N.ContinueStatement) {\n      if (node.label && node.label.type === \"Placeholder\") return;\n      super.verifyBreakContinue(...arguments);\n    }\n\n    parseExpressionStatement(\n      node: MaybePlaceholder<\"Statement\">,\n      expr: N.Expression,\n    ): MaybePlaceholder<\"Statement\"> {\n      if (\n        expr.type !== \"Placeholder\" ||\n        (expr.extra && expr.extra.parenthesized)\n      ) {\n        return super.parseExpressionStatement(...arguments);\n      }\n\n      if (this.match(tt.colon)) {\n        const stmt: N.LabeledStatement = node;\n        stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n        this.next();\n        stmt.body = this.parseStatement(\"label\");\n        return this.finishNode(stmt, \"LabeledStatement\");\n      }\n\n      this.semicolon();\n\n      node.name = expr.name;\n      return this.finishPlaceholder(node, \"Statement\");\n    }\n\n    parseBlock(): MaybePlaceholder<\"BlockStatement\"> {\n      return (\n        this.parsePlaceholder(\"BlockStatement\") ||\n        super.parseBlock(...arguments)\n      );\n    }\n\n    parseFunctionId(): ?MaybePlaceholder<\"Identifier\"> {\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseFunctionId(...arguments)\n      );\n    }\n\n    parseClass<T: N.Class>(\n      node: T,\n      isStatement: /* T === ClassDeclaration */ boolean,\n      optionalId?: boolean,\n    ): T {\n      const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n      this.next();\n      this.takeDecorators(node);\n\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (placeholder) {\n        if (\n          this.match(tt._extends) ||\n          this.match(tt.placeholder) ||\n          this.match(tt.braceL)\n        ) {\n          node.id = placeholder;\n        } else if (optionalId || !isStatement) {\n          node.id = null;\n          node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n          return this.finishNode(node, type);\n        } else {\n          this.unexpected(null, \"A class name is required\");\n        }\n      } else {\n        this.parseClassId(node, isStatement, optionalId);\n      }\n\n      this.parseClassSuper(node);\n      node.body =\n        this.parsePlaceholder(\"ClassBody\") ||\n        this.parseClassBody(!!node.superClass);\n      return this.finishNode(node, type);\n    }\n\n    parseExport(node: N.Node): N.Node {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseExport(...arguments);\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // export %%DECL%%;\n        node.specifiers = [];\n        node.source = null;\n        node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n        return this.finishNode(node, \"ExportNamedDeclaration\");\n      }\n\n      // export %%NAME%% from \"foo\";\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = placeholder;\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n      return super.parseExport(node);\n    }\n\n    maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n      if (node.specifiers && node.specifiers.length > 0) {\n        // \"export %%NAME%%\" has already been parsed by #parseExport.\n        return true;\n      }\n      return super.maybeParseExportDefaultSpecifier(...arguments);\n    }\n\n    checkExport(node: N.ExportNamedDeclaration): void {\n      const { specifiers } = node;\n      if (specifiers && specifiers.length) {\n        node.specifiers = specifiers.filter(\n          node => node.exported.type === \"Placeholder\",\n        );\n      }\n      super.checkExport(node);\n      node.specifiers = specifiers;\n    }\n\n    parseImport(\n      node: N.Node,\n    ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseImport(...arguments);\n\n      node.specifiers = [];\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // import %%STRING%%;\n        node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n        this.semicolon();\n        return this.finishNode(node, \"ImportDeclaration\");\n      }\n\n      // import %%DEFAULT%% ...\n      const specifier = this.startNodeAtNode(placeholder);\n      specifier.local = placeholder;\n      this.finishNode(specifier, \"ImportDefaultSpecifier\");\n      node.specifiers.push(specifier);\n\n      if (this.eat(tt.comma)) {\n        // import %%DEFAULT%%, * as ...\n        const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n        // import %%DEFAULT%%, { ...\n        if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n      }\n\n      this.expectContextual(\"from\");\n      node.source = this.parseImportSource();\n      this.semicolon();\n      return this.finishNode(node, \"ImportDeclaration\");\n    }\n\n    parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n      // import ... from %%STRING%%;\n\n      return (\n        this.parsePlaceholder(\"StringLiteral\") ||\n        super.parseImportSource(...arguments)\n      );\n    }\n  };\n","import type Parser from \"../parser\";\nimport { types as tt } from \"../tokenizer/types\";\nimport * as N from \"../types\";\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parseV8Intrinsic(): N.Expression {\n      if (this.match(tt.modulo)) {\n        const v8IntrinsicStart = this.state.start;\n        // let the `loc` of Identifier starts from `%`\n        const node = this.startNode();\n        this.eat(tt.modulo);\n        if (this.match(tt.name)) {\n          const name = this.parseIdentifierName(this.state.start);\n          const identifier = this.createIdentifier(node, name);\n          identifier.type = \"V8IntrinsicIdentifier\";\n          if (this.match(tt.parenL)) {\n            return identifier;\n          }\n        }\n        this.unexpected(v8IntrinsicStart);\n      }\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): N.Expression {\n      return this.parseV8Intrinsic() || super.parseExprAtom(...arguments);\n    }\n  };\n","// @flow\n\nimport type Parser from \"./parser\";\n\nexport type Plugin = string | [string, Object];\n\nexport type PluginList = $ReadOnlyArray<Plugin>;\n\nexport type MixinPlugin = (superClass: Class<Parser>) => Class<Parser>;\n\nexport function hasPlugin(plugins: PluginList, name: string): boolean {\n  return plugins.some(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n}\n\nexport function getPluginOption(\n  plugins: PluginList,\n  name: string,\n  option: string,\n) {\n  const plugin = plugins.find(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n\n  if (plugin && Array.isArray(plugin)) {\n    return plugin[1][option];\n  }\n\n  return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"smart\", \"fsharp\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n  if (hasPlugin(plugins, \"decorators\")) {\n    if (hasPlugin(plugins, \"decorators-legacy\")) {\n      throw new Error(\n        \"Cannot use the decorators and decorators-legacy plugin together\",\n      );\n    }\n\n    const decoratorsBeforeExport = getPluginOption(\n      plugins,\n      \"decorators\",\n      \"decoratorsBeforeExport\",\n    );\n    if (decoratorsBeforeExport == null) {\n      throw new Error(\n        \"The 'decorators' plugin requires a 'decoratorsBeforeExport' option,\" +\n          \" whose value must be a boolean. If you are migrating from\" +\n          \" Babylon/Babel 6 or want to use the old decorators proposal, you\" +\n          \" should use the 'decorators-legacy' plugin instead of 'decorators'.\",\n      );\n    } else if (typeof decoratorsBeforeExport !== \"boolean\") {\n      throw new Error(\"'decoratorsBeforeExport' must be a boolean.\");\n    }\n  }\n\n  if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n    throw new Error(\"Cannot combine flow and typescript plugins.\");\n  }\n\n  if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n    throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n  }\n\n  if (\n    hasPlugin(plugins, \"pipelineOperator\") &&\n    !PIPELINE_PROPOSALS.includes(\n      getPluginOption(plugins, \"pipelineOperator\", \"proposal\"),\n    )\n  ) {\n    throw new Error(\n      \"'pipelineOperator' requires 'proposal' option whose value should be one of: \" +\n        PIPELINE_PROPOSALS.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n\n  if (\n    hasPlugin(plugins, \"recordAndTuple\") &&\n    !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n      getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n    )\n  ) {\n    throw new Error(\n      \"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \" +\n        RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree\";\nimport flow from \"./plugins/flow\";\nimport jsx from \"./plugins/jsx\";\nimport typescript from \"./plugins/typescript\";\nimport placeholders from \"./plugins/placeholders\";\nimport v8intrinsic from \"./plugins/v8intrinsic\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins: { [name: string]: MixinPlugin } = {\n  estree,\n  jsx,\n  flow,\n  typescript,\n  v8intrinsic,\n  placeholders,\n};\n\nexport const mixinPluginNames: $ReadOnlyArray<string> = Object.keys(\n  mixinPlugins,\n);\n","// @flow\n\nimport type { PluginList } from \"./plugin-utils\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n  sourceType: SourceType,\n  sourceFilename?: string,\n  startLine: number,\n  allowAwaitOutsideFunction: boolean,\n  allowReturnOutsideFunction: boolean,\n  allowImportExportEverywhere: boolean,\n  allowSuperOutsideMethod: boolean,\n  allowUndeclaredExports: boolean,\n  plugins: PluginList,\n  strictMode: ?boolean,\n  ranges: boolean,\n  tokens: boolean,\n  createParenthesizedExpressions: boolean,\n  errorRecovery: boolean,\n};\n\nexport const defaultOptions: Options = {\n  // Source type (\"script\" or \"module\") for different semantics\n  sourceType: \"script\",\n  // Source filename.\n  sourceFilename: undefined,\n  // Line from which to start counting source. Useful for\n  // integration with other tools.\n  startLine: 1,\n  // When enabled, await at the top level is not considered an\n  // error.\n  allowAwaitOutsideFunction: false,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // TODO\n  allowSuperOutsideMethod: false,\n  // When enabled, export statements can reference undeclared variables.\n  allowUndeclaredExports: false,\n  // An array of plugins to enable\n  plugins: [],\n  // TODO\n  strictMode: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // Adds all parsed tokens to a `tokens` property on the `File` node\n  tokens: false,\n  // Whether to create ParenthesizedExpression AST nodes (if false\n  // the parser sets extra.parenthesized on the expression nodes instead).\n  createParenthesizedExpressions: false,\n  // When enabled, errors are attached to the AST instead of being directly thrown.\n  // Some errors will still throw, because @babel/parser can't always recover.\n  errorRecovery: false,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts: ?Options): Options {\n  const options: any = {};\n  for (const key of Object.keys(defaultOptions)) {\n    options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key];\n  }\n  return options;\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport { Position } from \"../util/location\";\n\nimport { types as ct, type TokContext } from \"./context\";\nimport { types as tt, type TokenType } from \"./types\";\n\ntype TopicContextState = {\n  // When a topic binding has been currently established,\n  // then this is 1. Otherwise, it is 0. This is forwards compatible\n  // with a future plugin for multiple lexical topics.\n  maxNumOfResolvableTopics: number,\n\n  // When a topic binding has been currently established, and if that binding\n  // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n  // `null`. This is forwards compatible with a future plugin for multiple\n  // lexical topics.\n  maxTopicIndex: null | 0,\n};\n\nexport default class State {\n  strict: boolean;\n  curLine: number;\n\n  // And, if locations are used, the {line, column} object\n  // corresponding to those offsets\n  startLoc: Position;\n  endLoc: Position;\n\n  init(options: Options): void {\n    this.strict =\n      options.strictMode === false ? false : options.sourceType === \"module\";\n\n    this.curLine = options.startLine;\n    this.startLoc = this.endLoc = this.curPosition();\n  }\n\n  errors: SyntaxError[] = [];\n\n  // Used to signify the start of a potential arrow function\n  potentialArrowAt: number = -1;\n\n  // Used to signify the start of an expression which looks like a\n  // typed arrow function, but it isn't\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowAt: number[] = [];\n\n  // Used to signify the start of an expression whose params, if it looks like\n  // an arrow function, shouldn't be converted to assignable nodes.\n  // This is used to defer the validation of typed arrow functions inside\n  // conditional expressions.\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowParamsConversionAt: number[] = [];\n\n  // Flags to track\n  inParameters: boolean = false;\n  maybeInArrowParameters: boolean = false;\n  // This flag is used to track async arrow head across function declarations.\n  // e.g. async (foo = function (await) {}) => {}\n  // When parsing `await` in this expression, `maybeInAsyncArrowHead` is true\n  // but `maybeInArrowParameters` is false\n  maybeInAsyncArrowHead: boolean = false;\n  inPipeline: boolean = false;\n  inType: boolean = false;\n  noAnonFunctionType: boolean = false;\n  inPropertyName: boolean = false;\n  hasFlowComment: boolean = false;\n  isIterator: boolean = false;\n\n  // For the smartPipelines plugin:\n  topicContext: TopicContextState = {\n    maxNumOfResolvableTopics: 0,\n    maxTopicIndex: null,\n  };\n\n  // For the F# plugin\n  soloAwait: boolean = false;\n  inFSharpPipelineDirectBody: boolean = false;\n\n  // Labels in scope.\n  labels: Array<{\n    kind: ?(\"loop\" | \"switch\"),\n    name?: ?string,\n    statementStart?: number,\n  }> = [];\n\n  // Leading decorators. Last element of the stack represents the decorators in current context.\n  // Supports nesting of decorators, e.g. @foo(@bar class inner {}) class outer {}\n  // where @foo belongs to the outer class and @bar to the inner\n  decoratorStack: Array<Array<N.Decorator>> = [[]];\n\n  // Positions to delayed-check that yield/await does not exist in default parameters.\n  yieldPos: number = -1;\n  awaitPos: number = -1;\n\n  // Comment store.\n  comments: Array<N.Comment> = [];\n\n  // Comment attachment store\n  trailingComments: Array<N.Comment> = [];\n  leadingComments: Array<N.Comment> = [];\n  commentStack: Array<{\n    start: number,\n    leadingComments: ?Array<N.Comment>,\n    trailingComments: ?Array<N.Comment>,\n    type: string,\n  }> = [];\n  // $FlowIgnore this is initialized when the parser starts.\n  commentPreviousNode: N.Node = null;\n\n  // The current position of the tokenizer in the input.\n  pos: number = 0;\n  lineStart: number = 0;\n\n  // Properties of the current token:\n  // Its type\n  type: TokenType = tt.eof;\n\n  // For tokens that include more information than their type, the value\n  value: any = null;\n\n  // Its start and end offset\n  start: number = 0;\n  end: number = 0;\n\n  // Position information for the previous token\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokEndLoc: Position = null;\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokStartLoc: Position = null;\n  lastTokStart: number = 0;\n  lastTokEnd: number = 0;\n\n  // The context stack is used to superficially track syntactic\n  // context to predict whether a regular expression is allowed in a\n  // given position.\n  context: Array<TokContext> = [ct.braceStatement];\n  exprAllowed: boolean = true;\n\n  // Used to signal to callers of `readWord1` whether the word\n  // contained any escape sequences. This is needed because words with\n  // escape sequences must not be interpreted as keywords.\n  containsEsc: boolean = false;\n\n  // This property is used to throw an error for\n  // an octal literal in a directive that occurs prior\n  // to a \"use strict\" directive.\n  octalPositions: number[] = [];\n\n  // Names of exports store. `default` is stored as a name for both\n  // `export default foo;` and `export { foo as default };`.\n  exportedIdentifiers: Array<string> = [];\n\n  // Tokens length in token store\n  tokensLength: number = 0;\n\n  curPosition(): Position {\n    return new Position(this.curLine, this.pos - this.lineStart);\n  }\n\n  clone(skipArrays?: boolean): State {\n    const state = new State();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // $FlowIgnore\n      let val = this[key];\n\n      if (!skipArrays && Array.isArray(val)) {\n        val = val.slice();\n      }\n\n      // $FlowIgnore\n      state[key] = val;\n    }\n\n    return state;\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier\";\nimport { types as tt, keywords as keywordTypes, type TokenType } from \"./types\";\nimport { type TokContext, types as ct } from \"./context\";\nimport LocationParser, { Errors } from \"../parser/location\";\nimport { SourceLocation } from \"../util/location\";\nimport {\n  lineBreak,\n  lineBreakG,\n  isNewLine,\n  isWhitespace,\n  skipWhiteSpace,\n} from \"../util/whitespace\";\nimport State from \"./state\";\n\nconst VALID_REGEX_FLAGS = new Set([\"g\", \"m\", \"s\", \"i\", \"y\", \"u\"]);\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\n\nconst forbiddenNumericSeparatorSiblings = {\n  decBinOct: [\n    charCodes.dot,\n    charCodes.uppercaseB,\n    charCodes.uppercaseE,\n    charCodes.uppercaseO,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseB,\n    charCodes.lowercaseE,\n    charCodes.lowercaseO,\n  ],\n  hex: [\n    charCodes.dot,\n    charCodes.uppercaseX,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseX,\n  ],\n};\n\nconst allowedNumericSeparatorSiblings = {};\nallowedNumericSeparatorSiblings.bin = [\n  // 0 - 1\n  charCodes.digit0,\n  charCodes.digit1,\n];\nallowedNumericSeparatorSiblings.oct = [\n  // 0 - 7\n  ...allowedNumericSeparatorSiblings.bin,\n\n  charCodes.digit2,\n  charCodes.digit3,\n  charCodes.digit4,\n  charCodes.digit5,\n  charCodes.digit6,\n  charCodes.digit7,\n];\nallowedNumericSeparatorSiblings.dec = [\n  // 0 - 9\n  ...allowedNumericSeparatorSiblings.oct,\n\n  charCodes.digit8,\n  charCodes.digit9,\n];\n\nallowedNumericSeparatorSiblings.hex = [\n  // 0 - 9, A - F, a - f,\n  ...allowedNumericSeparatorSiblings.dec,\n\n  charCodes.uppercaseA,\n  charCodes.uppercaseB,\n  charCodes.uppercaseC,\n  charCodes.uppercaseD,\n  charCodes.uppercaseE,\n  charCodes.uppercaseF,\n\n  charCodes.lowercaseA,\n  charCodes.lowercaseB,\n  charCodes.lowercaseC,\n  charCodes.lowercaseD,\n  charCodes.lowercaseE,\n  charCodes.lowercaseF,\n];\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(state: State) {\n    this.type = state.type;\n    this.value = state.value;\n    this.start = state.start;\n    this.end = state.end;\n    this.loc = new SourceLocation(state.startLoc, state.endLoc);\n  }\n\n  type: TokenType;\n  value: any;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default class Tokenizer extends LocationParser {\n  // Forward-declarations\n  // parser/util.js\n  /*::\n  +unexpected: (pos?: ?number, messageOrType?: string | TokenType) => empty;\n  */\n\n  isLookahead: boolean;\n\n  // Token store.\n  tokens: Array<Token | N.Comment> = [];\n\n  constructor(options: Options, input: string) {\n    super();\n    this.state = new State();\n    this.state.init(options);\n    this.input = input;\n    this.length = input.length;\n    this.isLookahead = false;\n  }\n\n  pushToken(token: Token | N.Comment) {\n    // Pop out invalid tokens trapped by try-catch parsing.\n    // Those parsing branches are mainly created by typescript and flow plugins.\n    this.tokens.length = this.state.tokensLength;\n    this.tokens.push(token);\n    ++this.state.tokensLength;\n  }\n\n  // Move to the next token\n\n  next(): void {\n    if (!this.isLookahead) {\n      this.checkKeywordEscapes();\n      if (this.options.tokens) {\n        this.pushToken(new Token(this.state));\n      }\n    }\n\n    this.state.lastTokEnd = this.state.end;\n    this.state.lastTokStart = this.state.start;\n    this.state.lastTokEndLoc = this.state.endLoc;\n    this.state.lastTokStartLoc = this.state.startLoc;\n    this.nextToken();\n  }\n\n  // TODO\n\n  eat(type: TokenType): boolean {\n    if (this.match(type)) {\n      this.next();\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  // TODO\n\n  match(type: TokenType): boolean {\n    return this.state.type === type;\n  }\n\n  // TODO\n\n  lookahead(): State {\n    const old = this.state;\n    this.state = old.clone(true);\n\n    this.isLookahead = true;\n    this.next();\n    this.isLookahead = false;\n\n    const curr = this.state;\n    this.state = old;\n    return curr;\n  }\n\n  nextTokenStart(): number {\n    const thisTokEnd = this.state.pos;\n    skipWhiteSpace.lastIndex = thisTokEnd;\n    const skip = skipWhiteSpace.exec(this.input);\n    // $FlowIgnore: The skipWhiteSpace ensures to match any string\n    return thisTokEnd + skip[0].length;\n  }\n\n  lookaheadCharCode(): number {\n    return this.input.charCodeAt(this.nextTokenStart());\n  }\n\n  // Toggle strict mode. Re-reads the next number or string to please\n  // pedantic tests (`\"use strict\"; 010;` should fail).\n\n  setStrict(strict: boolean): void {\n    this.state.strict = strict;\n    if (!this.match(tt.num) && !this.match(tt.string)) return;\n    this.state.pos = this.state.start;\n    while (this.state.pos < this.state.lineStart) {\n      this.state.lineStart =\n        this.input.lastIndexOf(\"\\n\", this.state.lineStart - 2) + 1;\n      --this.state.curLine;\n    }\n    this.nextToken();\n  }\n\n  curContext(): TokContext {\n    return this.state.context[this.state.context.length - 1];\n  }\n\n  // Read a single token, updating the parser object's token-related\n  // properties.\n\n  nextToken(): void {\n    const curContext = this.curContext();\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\n\n    this.state.octalPositions = [];\n    this.state.start = this.state.pos;\n    this.state.startLoc = this.state.curPosition();\n    if (this.state.pos >= this.length) {\n      this.finishToken(tt.eof);\n      return;\n    }\n\n    const override = curContext?.override;\n    if (override) {\n      override(this);\n    } else {\n      this.getTokenFromCode(this.input.codePointAt(this.state.pos));\n    }\n  }\n\n  pushComment(\n    block: boolean,\n    text: string,\n    start: number,\n    end: number,\n    startLoc: Position,\n    endLoc: Position,\n  ): void {\n    const comment = {\n      type: block ? \"CommentBlock\" : \"CommentLine\",\n      value: text,\n      start: start,\n      end: end,\n      loc: new SourceLocation(startLoc, endLoc),\n    };\n\n    if (this.options.tokens) this.pushToken(comment);\n    this.state.comments.push(comment);\n    this.addComment(comment);\n  }\n\n  skipBlockComment(): void {\n    const startLoc = this.state.curPosition();\n    const start = this.state.pos;\n    const end = this.input.indexOf(\"*/\", this.state.pos + 2);\n    if (end === -1) throw this.raise(start, Errors.UnterminatedComment);\n\n    this.state.pos = end + 2;\n    lineBreakG.lastIndex = start;\n    let match;\n    while (\n      (match = lineBreakG.exec(this.input)) &&\n      match.index < this.state.pos\n    ) {\n      ++this.state.curLine;\n      this.state.lineStart = match.index + match[0].length;\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      true,\n      this.input.slice(start + 2, end),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  skipLineComment(startSkip: number): void {\n    const start = this.state.pos;\n    const startLoc = this.state.curPosition();\n    let ch = this.input.charCodeAt((this.state.pos += startSkip));\n    if (this.state.pos < this.length) {\n      while (!isNewLine(ch) && ++this.state.pos < this.length) {\n        ch = this.input.charCodeAt(this.state.pos);\n      }\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      false,\n      this.input.slice(start + startSkip, this.state.pos),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  // Called at the start of the parse and after every token. Skips\n  // whitespace and comments, and.\n\n  skipSpace(): void {\n    loop: while (this.state.pos < this.length) {\n      const ch = this.input.charCodeAt(this.state.pos);\n      switch (ch) {\n        case charCodes.space:\n        case charCodes.nonBreakingSpace:\n        case charCodes.tab:\n          ++this.state.pos;\n          break;\n        case charCodes.carriageReturn:\n          if (\n            this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n          ) {\n            ++this.state.pos;\n          }\n        // fall through\n        case charCodes.lineFeed:\n        case charCodes.lineSeparator:\n        case charCodes.paragraphSeparator:\n          ++this.state.pos;\n          ++this.state.curLine;\n          this.state.lineStart = this.state.pos;\n          break;\n\n        case charCodes.slash:\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\n            case charCodes.asterisk:\n              this.skipBlockComment();\n              break;\n\n            case charCodes.slash:\n              this.skipLineComment(2);\n              break;\n\n            default:\n              break loop;\n          }\n          break;\n\n        default:\n          if (isWhitespace(ch)) {\n            ++this.state.pos;\n          } else {\n            break loop;\n          }\n      }\n    }\n  }\n\n  // Called at the end of every token. Sets `end`, `val`, and\n  // maintains `context` and `exprAllowed`, and skips the space after\n  // the token, so that the next one's `start` will point at the\n  // right position.\n\n  finishToken(type: TokenType, val: any): void {\n    this.state.end = this.state.pos;\n    this.state.endLoc = this.state.curPosition();\n    const prevType = this.state.type;\n    this.state.type = type;\n    this.state.value = val;\n\n    if (!this.isLookahead) this.updateContext(prevType);\n  }\n\n  // ### Token reading\n\n  // This is the function that is called to fetch the next token. It\n  // is somewhat obscure, because it works in character codes rather\n  // than characters, and because operator parsing has been inlined\n  // into it.\n  //\n  // All in the name of speed.\n\n  // number sign is \"#\"\n  readToken_numberSign(): void {\n    if (this.state.pos === 0 && this.readToken_interpreter()) {\n      return;\n    }\n\n    const nextPos = this.state.pos + 1;\n    const next = this.input.charCodeAt(nextPos);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      throw this.raise(this.state.pos, Errors.UnexpectedDigitAfterHash);\n    }\n\n    if (\n      this.hasPlugin(\"recordAndTuple\") &&\n      (next === charCodes.leftCurlyBrace ||\n        next === charCodes.leftSquareBracket)\n    ) {\n      if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"hash\") {\n        throw this.raise(\n          this.state.pos,\n          next === charCodes.leftCurlyBrace\n            ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n            : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n        );\n      }\n\n      if (next === charCodes.leftCurlyBrace) {\n        // #{\n        this.finishToken(tt.braceHashL);\n      } else {\n        // #[\n        this.finishToken(tt.bracketHashL);\n      }\n      this.state.pos += 2;\n    } else if (\n      this.hasPlugin(\"classPrivateProperties\") ||\n      this.hasPlugin(\"classPrivateMethods\") ||\n      this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\"\n    ) {\n      this.finishOp(tt.hash, 1);\n    } else {\n      throw this.raise(this.state.pos, Errors.InvalidOrUnexpectedToken, \"#\");\n    }\n  }\n\n  readToken_dot(): void {\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      this.readNumber(true);\n      return;\n    }\n\n    if (\n      next === charCodes.dot &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n    ) {\n      this.state.pos += 3;\n      this.finishToken(tt.ellipsis);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.dot);\n    }\n  }\n\n  readToken_slash(): void {\n    // '/'\n    if (this.state.exprAllowed && !this.state.inType) {\n      ++this.state.pos;\n      this.readRegexp();\n      return;\n    }\n\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.slash, 1);\n    }\n  }\n\n  readToken_interpreter(): boolean {\n    if (this.state.pos !== 0 || this.length < 2) return false;\n\n    let ch = this.input.charCodeAt(this.state.pos + 1);\n    if (ch !== charCodes.exclamationMark) return false;\n\n    const start = this.state.pos;\n    this.state.pos += 1;\n\n    while (!isNewLine(ch) && ++this.state.pos < this.length) {\n      ch = this.input.charCodeAt(this.state.pos);\n    }\n\n    const value = this.input.slice(start + 2, this.state.pos);\n\n    this.finishToken(tt.interpreterDirective, value);\n\n    return true;\n  }\n\n  readToken_mult_modulo(code: number): void {\n    // '%*'\n    let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n    let width = 1;\n    let next = this.input.charCodeAt(this.state.pos + 1);\n    const exprAllowed = this.state.exprAllowed;\n\n    // Exponentiation operator **\n    if (code === charCodes.asterisk && next === charCodes.asterisk) {\n      width++;\n      next = this.input.charCodeAt(this.state.pos + 2);\n      type = tt.exponent;\n    }\n\n    if (next === charCodes.equalsTo && !exprAllowed) {\n      width++;\n      type = tt.assign;\n    }\n\n    this.finishOp(type, width);\n  }\n\n  readToken_pipe_amp(code: number): void {\n    // '||' '&&' '||=' '&&='\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, 3);\n      } else {\n        this.finishOp(\n          code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n          2,\n        );\n      }\n      return;\n    }\n\n    if (code === charCodes.verticalBar) {\n      // '|>'\n      if (next === charCodes.greaterThan) {\n        this.finishOp(tt.pipeline, 2);\n        return;\n      }\n      // '|}'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.RecordExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      // '|]'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightSquareBracket\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.TupleExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.bracketBarR, 2);\n        return;\n      }\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n      return;\n    }\n\n    this.finishOp(\n      code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n      1,\n    );\n  }\n\n  readToken_caret(): void {\n    // '^'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.bitwiseXOR, 1);\n    }\n  }\n\n  readToken_plus_min(code: number): void {\n    // '+-'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (\n        next === charCodes.dash &&\n        !this.inModule &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan &&\n        (this.state.lastTokEnd === 0 ||\n          lineBreak.test(\n            this.input.slice(this.state.lastTokEnd, this.state.pos),\n          ))\n      ) {\n        // A `-->` line comment\n        this.skipLineComment(3);\n        this.skipSpace();\n        this.nextToken();\n        return;\n      }\n      this.finishOp(tt.incDec, 2);\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.plusMin, 1);\n    }\n  }\n\n  readToken_lt_gt(code: number): void {\n    // '<>'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    let size = 1;\n\n    if (next === code) {\n      size =\n        code === charCodes.greaterThan &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan\n          ? 3\n          : 2;\n      if (this.input.charCodeAt(this.state.pos + size) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, size + 1);\n        return;\n      }\n      this.finishOp(tt.bitShift, size);\n      return;\n    }\n\n    if (\n      next === charCodes.exclamationMark &&\n      code === charCodes.lessThan &&\n      !this.inModule &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dash &&\n      this.input.charCodeAt(this.state.pos + 3) === charCodes.dash\n    ) {\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\n      this.skipLineComment(4);\n      this.skipSpace();\n      this.nextToken();\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      // <= | >=\n      size = 2;\n    }\n\n    this.finishOp(tt.relational, size);\n  }\n\n  readToken_eq_excl(code: number): void {\n    // '=!'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(\n        tt.equality,\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo\n          ? 3\n          : 2,\n      );\n      return;\n    }\n    if (code === charCodes.equalsTo && next === charCodes.greaterThan) {\n      // '=>'\n      this.state.pos += 2;\n      this.finishToken(tt.arrow);\n      return;\n    }\n    this.finishOp(code === charCodes.equalsTo ? tt.eq : tt.bang, 1);\n  }\n\n  readToken_question(): void {\n    // '?'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    const next2 = this.input.charCodeAt(this.state.pos + 2);\n    if (next === charCodes.questionMark && !this.state.inType) {\n      if (next2 === charCodes.equalsTo) {\n        // '??='\n        this.finishOp(tt.assign, 3);\n      } else {\n        // '??'\n        this.finishOp(tt.nullishCoalescing, 2);\n      }\n    } else if (\n      next === charCodes.dot &&\n      !(next2 >= charCodes.digit0 && next2 <= charCodes.digit9)\n    ) {\n      // '.' not followed by a number\n      this.state.pos += 2;\n      this.finishToken(tt.questionDot);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.question);\n    }\n  }\n\n  getTokenFromCode(code: number): void {\n    switch (code) {\n      // The interpretation of a dot depends on whether it is followed\n      // by a digit or another two dots.\n\n      case charCodes.dot:\n        this.readToken_dot();\n        return;\n\n      // Punctuation tokens.\n      case charCodes.leftParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenL);\n        return;\n      case charCodes.rightParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenR);\n        return;\n      case charCodes.semicolon:\n        ++this.state.pos;\n        this.finishToken(tt.semi);\n        return;\n      case charCodes.comma:\n        ++this.state.pos;\n        this.finishToken(tt.comma);\n        return;\n      case charCodes.leftSquareBracket:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.TupleExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // [|\n          this.finishToken(tt.bracketBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.bracketL);\n        }\n        return;\n      case charCodes.rightSquareBracket:\n        ++this.state.pos;\n        this.finishToken(tt.bracketR);\n        return;\n      case charCodes.leftCurlyBrace:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.RecordExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // {|\n          this.finishToken(tt.braceBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.braceL);\n        }\n        return;\n      case charCodes.rightCurlyBrace:\n        ++this.state.pos;\n        this.finishToken(tt.braceR);\n        return;\n\n      case charCodes.colon:\n        if (\n          this.hasPlugin(\"functionBind\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.colon\n        ) {\n          this.finishOp(tt.doubleColon, 2);\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.colon);\n        }\n        return;\n\n      case charCodes.questionMark:\n        this.readToken_question();\n        return;\n\n      case charCodes.graveAccent:\n        ++this.state.pos;\n        this.finishToken(tt.backQuote);\n        return;\n\n      case charCodes.digit0: {\n        const next = this.input.charCodeAt(this.state.pos + 1);\n        // '0x', '0X' - hex number\n        if (next === charCodes.lowercaseX || next === charCodes.uppercaseX) {\n          this.readRadixNumber(16);\n          return;\n        }\n        // '0o', '0O' - octal number\n        if (next === charCodes.lowercaseO || next === charCodes.uppercaseO) {\n          this.readRadixNumber(8);\n          return;\n        }\n        // '0b', '0B' - binary number\n        if (next === charCodes.lowercaseB || next === charCodes.uppercaseB) {\n          this.readRadixNumber(2);\n          return;\n        }\n      }\n      // Anything else beginning with a digit is an integer, octal\n      // number, or float. (fall through)\n      case charCodes.digit1:\n      case charCodes.digit2:\n      case charCodes.digit3:\n      case charCodes.digit4:\n      case charCodes.digit5:\n      case charCodes.digit6:\n      case charCodes.digit7:\n      case charCodes.digit8:\n      case charCodes.digit9:\n        this.readNumber(false);\n        return;\n\n      // Quotes produce strings.\n      case charCodes.quotationMark:\n      case charCodes.apostrophe:\n        this.readString(code);\n        return;\n\n      // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is\n      // often referred to. `finishOp` simply skips the amount of\n      // characters it is given as second argument, and returns a token\n      // of the type given by its first argument.\n\n      case charCodes.slash:\n        this.readToken_slash();\n        return;\n\n      case charCodes.percentSign:\n      case charCodes.asterisk:\n        this.readToken_mult_modulo(code);\n        return;\n\n      case charCodes.verticalBar:\n      case charCodes.ampersand:\n        this.readToken_pipe_amp(code);\n        return;\n\n      case charCodes.caret:\n        this.readToken_caret();\n        return;\n\n      case charCodes.plusSign:\n      case charCodes.dash:\n        this.readToken_plus_min(code);\n        return;\n\n      case charCodes.lessThan:\n      case charCodes.greaterThan:\n        this.readToken_lt_gt(code);\n        return;\n\n      case charCodes.equalsTo:\n      case charCodes.exclamationMark:\n        this.readToken_eq_excl(code);\n        return;\n\n      case charCodes.tilde:\n        this.finishOp(tt.tilde, 1);\n        return;\n\n      case charCodes.atSign:\n        ++this.state.pos;\n        this.finishToken(tt.at);\n        return;\n\n      case charCodes.numberSign:\n        this.readToken_numberSign();\n        return;\n\n      case charCodes.backslash:\n        this.readWord();\n        return;\n\n      default:\n        if (isIdentifierStart(code)) {\n          this.readWord();\n          return;\n        }\n    }\n\n    throw this.raise(\n      this.state.pos,\n      Errors.InvalidOrUnexpectedToken,\n      String.fromCodePoint(code),\n    );\n  }\n\n  finishOp(type: TokenType, size: number): void {\n    const str = this.input.slice(this.state.pos, this.state.pos + size);\n    this.state.pos += size;\n    this.finishToken(type, str);\n  }\n\n  readRegexp(): void {\n    const start = this.state.pos;\n    let escaped, inClass;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      const ch = this.input.charAt(this.state.pos);\n      if (lineBreak.test(ch)) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      if (escaped) {\n        escaped = false;\n      } else {\n        if (ch === \"[\") {\n          inClass = true;\n        } else if (ch === \"]\" && inClass) {\n          inClass = false;\n        } else if (ch === \"/\" && !inClass) {\n          break;\n        }\n        escaped = ch === \"\\\\\";\n      }\n      ++this.state.pos;\n    }\n    const content = this.input.slice(start, this.state.pos);\n    ++this.state.pos;\n\n    let mods = \"\";\n\n    while (this.state.pos < this.length) {\n      const char = this.input[this.state.pos];\n      const charCode = this.input.codePointAt(this.state.pos);\n\n      if (VALID_REGEX_FLAGS.has(char)) {\n        if (mods.indexOf(char) > -1) {\n          this.raise(this.state.pos + 1, Errors.DuplicateRegExpFlags);\n        }\n      } else if (\n        isIdentifierChar(charCode) ||\n        charCode === charCodes.backslash\n      ) {\n        this.raise(this.state.pos + 1, Errors.MalformedRegExpFlags);\n      } else {\n        break;\n      }\n\n      ++this.state.pos;\n      mods += char;\n    }\n\n    this.finishToken(tt.regexp, {\n      pattern: content,\n      flags: mods,\n    });\n  }\n\n  // Read an integer in the given radix. Return null if zero digits\n  // were read, the integer value otherwise. When `len` is given, this\n  // will return `null` unless the integer has exactly `len` digits.\n  // When `forceLen` is `true`, it means that we already know that in case\n  // of a malformed number we have to skip `len` characters anyway, instead\n  // of bailing out early. For example, in \"\\u{123Z}\" we want to read up to }\n  // anyway, while in \"\\u00Z\" we will stop at Z instead of consuming four\n  // characters (and thus the closing quote).\n\n  readInt(\n    radix: number,\n    len?: number,\n    forceLen?: boolean,\n    allowNumSeparator: boolean = true,\n  ): number | null {\n    const start = this.state.pos;\n    const forbiddenSiblings =\n      radix === 16\n        ? forbiddenNumericSeparatorSiblings.hex\n        : forbiddenNumericSeparatorSiblings.decBinOct;\n    const allowedSiblings =\n      radix === 16\n        ? allowedNumericSeparatorSiblings.hex\n        : radix === 10\n        ? allowedNumericSeparatorSiblings.dec\n        : radix === 8\n        ? allowedNumericSeparatorSiblings.oct\n        : allowedNumericSeparatorSiblings.bin;\n\n    let invalid = false;\n    let total = 0;\n\n    for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n      const code = this.input.charCodeAt(this.state.pos);\n      let val;\n\n      if (this.hasPlugin(\"numericSeparator\")) {\n        if (code === charCodes.underscore) {\n          const prev = this.input.charCodeAt(this.state.pos - 1);\n          const next = this.input.charCodeAt(this.state.pos + 1);\n          if (allowedSiblings.indexOf(next) === -1) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          } else if (\n            forbiddenSiblings.indexOf(prev) > -1 ||\n            forbiddenSiblings.indexOf(next) > -1 ||\n            Number.isNaN(next)\n          ) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          }\n\n          if (!allowNumSeparator) {\n            this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence);\n          }\n\n          // Ignore this _ character\n          ++this.state.pos;\n          continue;\n        }\n      }\n\n      if (code >= charCodes.lowercaseA) {\n        val = code - charCodes.lowercaseA + charCodes.lineFeed;\n      } else if (code >= charCodes.uppercaseA) {\n        val = code - charCodes.uppercaseA + charCodes.lineFeed;\n      } else if (charCodes.isDigit(code)) {\n        val = code - charCodes.digit0; // 0-9\n      } else {\n        val = Infinity;\n      }\n      if (val >= radix) {\n        // If we are in \"errorRecovery\" mode and we found a digit which is too big,\n        // don't break the loop.\n\n        if (this.options.errorRecovery && val <= 9) {\n          val = 0;\n          this.raise(this.state.start + i + 2, Errors.InvalidDigit, radix);\n        } else if (forceLen) {\n          val = 0;\n          invalid = true;\n        } else {\n          break;\n        }\n      }\n      ++this.state.pos;\n      total = total * radix + val;\n    }\n    if (\n      this.state.pos === start ||\n      (len != null && this.state.pos - start !== len) ||\n      invalid\n    ) {\n      return null;\n    }\n\n    return total;\n  }\n\n  readRadixNumber(radix: number): void {\n    const start = this.state.pos;\n    let isBigInt = false;\n\n    this.state.pos += 2; // 0x\n    const val = this.readInt(radix);\n    if (val == null) {\n      this.raise(this.state.start + 2, Errors.InvalidDigit, radix);\n    }\n\n    if (this.input.charCodeAt(this.state.pos) === charCodes.lowercaseN) {\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    if (isBigInt) {\n      const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    this.finishToken(tt.num, val);\n  }\n\n  // Read an integer, octal integer, or floating-point number.\n\n  readNumber(startsWithDot: boolean): void {\n    const start = this.state.pos;\n    let isFloat = false;\n    let isBigInt = false;\n    let isNonOctalDecimalInt = false;\n\n    if (!startsWithDot && this.readInt(10) === null) {\n      this.raise(start, Errors.InvalidNumber);\n    }\n    let octal =\n      this.state.pos - start >= 2 &&\n      this.input.charCodeAt(start) === charCodes.digit0;\n    if (octal) {\n      if (this.state.strict) {\n        this.raise(start, Errors.StrictOctalLiteral);\n      }\n      if (/[89]/.test(this.input.slice(start, this.state.pos))) {\n        octal = false;\n        isNonOctalDecimalInt = true;\n      }\n    }\n\n    let next = this.input.charCodeAt(this.state.pos);\n    if (next === charCodes.dot && !octal) {\n      ++this.state.pos;\n      this.readInt(10);\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    if (\n      (next === charCodes.uppercaseE || next === charCodes.lowercaseE) &&\n      !octal\n    ) {\n      next = this.input.charCodeAt(++this.state.pos);\n      if (next === charCodes.plusSign || next === charCodes.dash) {\n        ++this.state.pos;\n      }\n      if (this.readInt(10) === null) this.raise(start, \"Invalid number\");\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    // disallow numeric separators in non octal decimals and legacy octal likes\n    if (this.hasPlugin(\"numericSeparator\") && (octal || isNonOctalDecimalInt)) {\n      const underscorePos = this.input\n        .slice(start, this.state.pos)\n        .indexOf(\"_\");\n      if (underscorePos > 0) {\n        this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator);\n      }\n    }\n\n    if (next === charCodes.lowercaseN) {\n      // disallow floats, legacy octal syntax and non octal decimals\n      // new style octal (\"0o\") is handled in this.readRadixNumber\n      if (isFloat || octal || isNonOctalDecimalInt) {\n        this.raise(start, \"Invalid BigIntLiteral\");\n      }\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    // remove \"_\" for numeric literal separator, and \"n\" for BigInts\n    const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n\n    if (isBigInt) {\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    const val = octal ? parseInt(str, 8) : parseFloat(str);\n    this.finishToken(tt.num, val);\n  }\n\n  // Read a string value, interpreting backslash-escapes.\n\n  readCodePoint(throwOnInvalid: boolean): number | null {\n    const ch = this.input.charCodeAt(this.state.pos);\n    let code;\n\n    if (ch === charCodes.leftCurlyBrace) {\n      const codePos = ++this.state.pos;\n      code = this.readHexChar(\n        this.input.indexOf(\"}\", this.state.pos) - this.state.pos,\n        true,\n        throwOnInvalid,\n      );\n      ++this.state.pos;\n      if (code !== null && code > 0x10ffff) {\n        if (throwOnInvalid) {\n          this.raise(codePos, Errors.InvalidCodePoint);\n        } else {\n          return null;\n        }\n      }\n    } else {\n      code = this.readHexChar(4, false, throwOnInvalid);\n    }\n    return code;\n  }\n\n  readString(quote: number): void {\n    let out = \"\",\n      chunkStart = ++this.state.pos;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (ch === quote) break;\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        // $FlowFixMe\n        out += this.readEscapedChar(false);\n        chunkStart = this.state.pos;\n      } else if (\n        ch === charCodes.lineSeparator ||\n        ch === charCodes.paragraphSeparator\n      ) {\n        ++this.state.pos;\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      } else {\n        ++this.state.pos;\n      }\n    }\n    out += this.input.slice(chunkStart, this.state.pos++);\n    this.finishToken(tt.string, out);\n  }\n\n  // Reads template string tokens.\n\n  readTmplToken(): void {\n    let out = \"\",\n      chunkStart = this.state.pos,\n      containsInvalid = false;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedTemplate);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (\n        ch === charCodes.graveAccent ||\n        (ch === charCodes.dollarSign &&\n          this.input.charCodeAt(this.state.pos + 1) ===\n            charCodes.leftCurlyBrace)\n      ) {\n        if (this.state.pos === this.state.start && this.match(tt.template)) {\n          if (ch === charCodes.dollarSign) {\n            this.state.pos += 2;\n            this.finishToken(tt.dollarBraceL);\n            return;\n          } else {\n            ++this.state.pos;\n            this.finishToken(tt.backQuote);\n            return;\n          }\n        }\n        out += this.input.slice(chunkStart, this.state.pos);\n        this.finishToken(tt.template, containsInvalid ? null : out);\n        return;\n      }\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        const escaped = this.readEscapedChar(true);\n        if (escaped === null) {\n          containsInvalid = true;\n        } else {\n          out += escaped;\n        }\n        chunkStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        ++this.state.pos;\n        switch (ch) {\n          case charCodes.carriageReturn:\n            if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n              ++this.state.pos;\n            }\n          // fall through\n          case charCodes.lineFeed:\n            out += \"\\n\";\n            break;\n          default:\n            out += String.fromCharCode(ch);\n            break;\n        }\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n        chunkStart = this.state.pos;\n      } else {\n        ++this.state.pos;\n      }\n    }\n  }\n\n  // Used to read escaped characters\n\n  readEscapedChar(inTemplate: boolean): string | null {\n    const throwOnInvalid = !inTemplate;\n    const ch = this.input.charCodeAt(++this.state.pos);\n    ++this.state.pos;\n    switch (ch) {\n      case charCodes.lowercaseN:\n        return \"\\n\";\n      case charCodes.lowercaseR:\n        return \"\\r\";\n      case charCodes.lowercaseX: {\n        const code = this.readHexChar(2, false, throwOnInvalid);\n        return code === null ? null : String.fromCharCode(code);\n      }\n      case charCodes.lowercaseU: {\n        const code = this.readCodePoint(throwOnInvalid);\n        return code === null ? null : String.fromCodePoint(code);\n      }\n      case charCodes.lowercaseT:\n        return \"\\t\";\n      case charCodes.lowercaseB:\n        return \"\\b\";\n      case charCodes.lowercaseV:\n        return \"\\u000b\";\n      case charCodes.lowercaseF:\n        return \"\\f\";\n      case charCodes.carriageReturn:\n        if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n          ++this.state.pos;\n        }\n      // fall through\n      case charCodes.lineFeed:\n        this.state.lineStart = this.state.pos;\n        ++this.state.curLine;\n      // fall through\n      case charCodes.lineSeparator:\n      case charCodes.paragraphSeparator:\n        return \"\";\n      case charCodes.digit8:\n      case charCodes.digit9:\n        if (inTemplate) {\n          return null;\n        }\n      // fall through\n      default:\n        if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n          const codePos = this.state.pos - 1;\n          // $FlowFixMe\n          let octalStr = this.input\n            .substr(this.state.pos - 1, 3)\n            .match(/^[0-7]+/)[0];\n          let octal = parseInt(octalStr, 8);\n          if (octal > 255) {\n            octalStr = octalStr.slice(0, -1);\n            octal = parseInt(octalStr, 8);\n          }\n          this.state.pos += octalStr.length - 1;\n          const next = this.input.charCodeAt(this.state.pos);\n          if (\n            octalStr !== \"0\" ||\n            next === charCodes.digit8 ||\n            next === charCodes.digit9\n          ) {\n            if (inTemplate) {\n              return null;\n            } else if (this.state.strict) {\n              this.raise(codePos, Errors.StrictOctalLiteral);\n            } else {\n              // This property is used to throw an error for\n              // an octal literal in a directive that occurs prior\n              // to a \"use strict\" directive.\n              this.state.octalPositions.push(codePos);\n            }\n          }\n\n          return String.fromCharCode(octal);\n        }\n\n        return String.fromCharCode(ch);\n    }\n  }\n\n  // Used to read character escape sequences ('\\x', '\\u').\n\n  readHexChar(\n    len: number,\n    forceLen: boolean,\n    throwOnInvalid: boolean,\n  ): number | null {\n    const codePos = this.state.pos;\n    const n = this.readInt(16, len, forceLen, false);\n    if (n === null) {\n      if (throwOnInvalid) {\n        this.raise(codePos, Errors.InvalidEscapeSequence);\n      } else {\n        this.state.pos = codePos - 1;\n      }\n    }\n    return n;\n  }\n\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\n  // to whether the word contained a '\\u' escape.\n  //\n  // Incrementally adds only escaped chars, adding other chunks as-is\n  // as a micro-optimization.\n\n  readWord1(): string {\n    let word = \"\";\n    this.state.containsEsc = false;\n    const start = this.state.pos;\n    let chunkStart = this.state.pos;\n\n    while (this.state.pos < this.length) {\n      const ch = this.input.codePointAt(this.state.pos);\n      if (isIdentifierChar(ch)) {\n        this.state.pos += ch <= 0xffff ? 1 : 2;\n      } else if (this.state.isIterator && ch === charCodes.atSign) {\n        ++this.state.pos;\n      } else if (ch === charCodes.backslash) {\n        this.state.containsEsc = true;\n\n        word += this.input.slice(chunkStart, this.state.pos);\n        const escStart = this.state.pos;\n        const identifierCheck =\n          this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n\n        if (this.input.charCodeAt(++this.state.pos) !== charCodes.lowercaseU) {\n          this.raise(this.state.pos, Errors.MissingUnicodeEscape);\n          continue;\n        }\n\n        ++this.state.pos;\n        const esc = this.readCodePoint(true);\n        if (esc !== null) {\n          if (!identifierCheck(esc)) {\n            this.raise(escStart, Errors.EscapedCharNotAnIdentifier);\n          }\n\n          word += String.fromCodePoint(esc);\n        }\n        chunkStart = this.state.pos;\n      } else {\n        break;\n      }\n    }\n    return word + this.input.slice(chunkStart, this.state.pos);\n  }\n\n  isIterator(word: string): boolean {\n    return word === \"@@iterator\" || word === \"@@asyncIterator\";\n  }\n\n  // Read an identifier or keyword token. Will check for reserved\n  // words when necessary.\n\n  readWord(): void {\n    const word = this.readWord1();\n    const type = keywordTypes.get(word) || tt.name;\n\n    // Allow @@iterator and @@asyncIterator as a identifier only inside type\n    if (\n      this.state.isIterator &&\n      (!this.isIterator(word) || !this.state.inType)\n    ) {\n      this.raise(this.state.pos, Errors.InvalidIdentifier, word);\n    }\n\n    this.finishToken(type, word);\n  }\n\n  checkKeywordEscapes(): void {\n    const kw = this.state.type.keyword;\n    if (kw && this.state.containsEsc) {\n      this.raise(this.state.start, Errors.InvalidEscapedReservedWord, kw);\n    }\n  }\n\n  braceIsBlock(prevType: TokenType): boolean {\n    const parent = this.curContext();\n    if (parent === ct.functionExpression || parent === ct.functionStatement) {\n      return true;\n    }\n    if (\n      prevType === tt.colon &&\n      (parent === ct.braceStatement || parent === ct.braceExpression)\n    ) {\n      return !parent.isExpr;\n    }\n\n    // The check for `tt.name && exprAllowed` detects whether we are\n    // after a `yield` or `of` construct. See the `updateContext` for\n    // `tt.name`.\n    if (\n      prevType === tt._return ||\n      (prevType === tt.name && this.state.exprAllowed)\n    ) {\n      return lineBreak.test(\n        this.input.slice(this.state.lastTokEnd, this.state.start),\n      );\n    }\n\n    if (\n      prevType === tt._else ||\n      prevType === tt.semi ||\n      prevType === tt.eof ||\n      prevType === tt.parenR ||\n      prevType === tt.arrow\n    ) {\n      return true;\n    }\n\n    if (prevType === tt.braceL) {\n      return parent === ct.braceStatement;\n    }\n\n    if (\n      prevType === tt._var ||\n      prevType === tt._const ||\n      prevType === tt.name\n    ) {\n      return false;\n    }\n\n    if (prevType === tt.relational) {\n      // `class C<T> { ... }`\n      return true;\n    }\n\n    return !this.state.exprAllowed;\n  }\n\n  updateContext(prevType: TokenType): void {\n    const type = this.state.type;\n    let update;\n\n    if (type.keyword && (prevType === tt.dot || prevType === tt.questionDot)) {\n      this.state.exprAllowed = false;\n    } else if ((update = type.updateContext)) {\n      update.call(this, prevType);\n    } else {\n      this.state.exprAllowed = type.beforeExpr;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport Tokenizer from \"../tokenizer\";\nimport State from \"../tokenizer/state\";\nimport type { Node } from \"../types\";\nimport { lineBreak } from \"../util/whitespace\";\nimport { isIdentifierChar } from \"../util/identifier\";\nimport * as charCodes from \"charcodes\";\nimport { Errors } from \"./location\";\n\ntype TryParse<Node, Error, Thrown, Aborted, FailState> = {\n  node: Node,\n  error: Error,\n  thrown: Thrown,\n  aborted: Aborted,\n  failState: FailState,\n};\n\n// ## Parser utilities\n\nexport default class UtilParser extends Tokenizer {\n  // TODO\n\n  addExtra(node: Node, key: string, val: any): void {\n    if (!node) return;\n\n    const extra = (node.extra = node.extra || {});\n    extra[key] = val;\n  }\n\n  // TODO\n\n  isRelational(op: \"<\" | \">\"): boolean {\n    return this.match(tt.relational) && this.state.value === op;\n  }\n\n  isLookaheadRelational(op: \"<\" | \">\"): boolean {\n    const next = this.nextTokenStart();\n    if (this.input.charAt(next) === op) {\n      if (next + 1 === this.input.length) {\n        return true;\n      }\n      const afterNext = this.input.charCodeAt(next + 1);\n      return afterNext !== op.charCodeAt(0) && afterNext !== charCodes.equalsTo;\n    }\n    return false;\n  }\n\n  // TODO\n\n  expectRelational(op: \"<\" | \">\"): void {\n    if (this.isRelational(op)) {\n      this.next();\n    } else {\n      this.unexpected(null, tt.relational);\n    }\n  }\n\n  // Tests whether parsed token is a contextual keyword.\n\n  isContextual(name: string): boolean {\n    return (\n      this.match(tt.name) &&\n      this.state.value === name &&\n      !this.state.containsEsc\n    );\n  }\n\n  isUnparsedContextual(nameStart: number, name: string): boolean {\n    const nameEnd = nameStart + name.length;\n    return (\n      this.input.slice(nameStart, nameEnd) === name &&\n      (nameEnd === this.input.length ||\n        !isIdentifierChar(this.input.charCodeAt(nameEnd)))\n    );\n  }\n\n  isLookaheadContextual(name: string): boolean {\n    const next = this.nextTokenStart();\n    return this.isUnparsedContextual(next, name);\n  }\n\n  // Consumes contextual keyword if possible.\n\n  eatContextual(name: string): boolean {\n    return this.isContextual(name) && this.eat(tt.name);\n  }\n\n  // Asserts that following token is given contextual keyword.\n\n  expectContextual(name: string, message?: string): void {\n    if (!this.eatContextual(name)) this.unexpected(null, message);\n  }\n\n  // Test whether a semicolon can be inserted at the current position.\n\n  canInsertSemicolon(): boolean {\n    return (\n      this.match(tt.eof) ||\n      this.match(tt.braceR) ||\n      this.hasPrecedingLineBreak()\n    );\n  }\n\n  hasPrecedingLineBreak(): boolean {\n    return lineBreak.test(\n      this.input.slice(this.state.lastTokEnd, this.state.start),\n    );\n  }\n\n  // TODO\n\n  isLineTerminator(): boolean {\n    return this.eat(tt.semi) || this.canInsertSemicolon();\n  }\n\n  // Consume a semicolon, or, failing that, see if we are allowed to\n  // pretend that there is a semicolon at this position.\n\n  semicolon(): void {\n    if (!this.isLineTerminator()) this.unexpected(null, tt.semi);\n  }\n\n  // Expect a token of a given type. If found, consume it, otherwise,\n  // raise an unexpected token error at given pos.\n\n  expect(type: TokenType, pos?: ?number): void {\n    this.eat(type) || this.unexpected(pos, type);\n  }\n\n  // Throws if the current token and the prev one are separated by a space.\n  assertNoSpace(message: string = \"Unexpected space.\"): void {\n    if (this.state.start > this.state.lastTokEnd) {\n      this.raise(this.state.lastTokEnd, message);\n    }\n  }\n\n  // Raise an unexpected token error. Can take the expected token type\n  // instead of a message string.\n\n  unexpected(\n    pos: ?number,\n    messageOrType: string | TokenType = \"Unexpected token\",\n  ): empty {\n    if (typeof messageOrType !== \"string\") {\n      messageOrType = `Unexpected token, expected \"${messageOrType.label}\"`;\n    }\n    throw this.raise(pos != null ? pos : this.state.start, messageOrType);\n  }\n\n  expectPlugin(name: string, pos?: ?number): true {\n    if (!this.hasPlugin(name)) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: [name] },\n        `This experimental syntax requires enabling the parser plugin: '${name}'`,\n      );\n    }\n\n    return true;\n  }\n\n  expectOnePlugin(names: Array<string>, pos?: ?number): void {\n    if (!names.some(n => this.hasPlugin(n))) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: names },\n        `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(\n          \", \",\n        )}'`,\n      );\n    }\n  }\n\n  checkYieldAwaitInDefaultParams() {\n    if (\n      this.state.yieldPos !== -1 &&\n      (this.state.awaitPos === -1 || this.state.yieldPos < this.state.awaitPos)\n    ) {\n      this.raise(\n        this.state.yieldPos,\n        \"Yield cannot be used as name inside a generator function\",\n      );\n    }\n    if (this.state.awaitPos !== -1) {\n      this.raise(\n        this.state.awaitPos,\n        \"Await cannot be used as name inside an async function\",\n      );\n    }\n  }\n\n  // tryParse will clone parser state.\n  // It is expensive and should be used with cautions\n  tryParse<T: Node | $ReadOnlyArray<Node>>(\n    fn: (abort: (node?: T) => empty) => T,\n    oldState: State = this.state.clone(),\n  ):\n    | TryParse<T, null, false, false, null>\n    | TryParse<T | null, SyntaxError, boolean, false, State>\n    | TryParse<T | null, null, false, true, State> {\n    const abortSignal: { node: T | null } = { node: null };\n    try {\n      const node = fn((node = null) => {\n        abortSignal.node = node;\n        throw abortSignal;\n      });\n      if (this.state.errors.length > oldState.errors.length) {\n        const failState = this.state;\n        this.state = oldState;\n        return {\n          node,\n          error: (failState.errors[oldState.errors.length]: SyntaxError),\n          thrown: false,\n          aborted: false,\n          failState,\n        };\n      }\n\n      return {\n        node,\n        error: null,\n        thrown: false,\n        aborted: false,\n        failState: null,\n      };\n    } catch (error) {\n      const failState = this.state;\n      this.state = oldState;\n      if (error instanceof SyntaxError) {\n        return { node: null, error, thrown: true, aborted: false, failState };\n      }\n      if (error === abortSignal) {\n        return {\n          node: abortSignal.node,\n          error: null,\n          thrown: false,\n          aborted: true,\n          failState,\n        };\n      }\n\n      throw error;\n    }\n  }\n\n  checkExpressionErrors(\n    refExpressionErrors: ?ExpressionErrors,\n    andThrow: boolean,\n  ) {\n    if (!refExpressionErrors) return false;\n    const { shorthandAssign, doubleProto } = refExpressionErrors;\n    if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0;\n    if (shorthandAssign >= 0) {\n      this.unexpected(shorthandAssign);\n    }\n    if (doubleProto >= 0) {\n      this.raise(doubleProto, Errors.DuplicateProto);\n    }\n  }\n}\n\n/**\n * The ExpressionErrors is a context struct used to track\n * - **shorthandAssign**: track initializer `=` position when parsing ambiguous\n *   patterns. When we are sure the parsed pattern is a RHS, which means it is\n *   not a pattern, we will throw on this position on invalid assign syntax,\n *   otherwise it will be reset to -1\n * - **doubleProto**: track the duplicate `__proto__` key position when parsing\n *   ambiguous object patterns. When we are sure the parsed pattern is a RHS,\n *   which means it is an object literal, we will throw on this position for\n *   __proto__ redefinition, otherwise it will be reset to -1\n */\nexport class ExpressionErrors {\n  shorthandAssign = -1;\n  doubleProto = -1;\n}\n","// @flow\n\nimport type Parser from \"./index\";\nimport UtilParser from \"./util\";\nimport { SourceLocation, type Position } from \"../util/location\";\nimport type { Comment, Node as NodeType, NodeBase } from \"../types\";\n\n// Start an AST node, attaching a start offset.\n\nclass Node implements NodeBase {\n  constructor(parser: Parser, pos: number, loc: Position) {\n    this.type = \"\";\n    this.start = pos;\n    this.end = 0;\n    this.loc = new SourceLocation(loc);\n    if (parser && parser.options.ranges) this.range = [pos, 0];\n    if (parser && parser.filename) this.loc.filename = parser.filename;\n  }\n\n  type: string;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n  range: [number, number];\n  leadingComments: Array<Comment>;\n  trailingComments: Array<Comment>;\n  innerComments: Array<Comment>;\n  extra: { [key: string]: any };\n\n  __clone(): this {\n    // $FlowIgnore\n    const newNode: any = new Node();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // Do not clone comments that are already attached to the node\n      if (\n        key !== \"leadingComments\" &&\n        key !== \"trailingComments\" &&\n        key !== \"innerComments\"\n      ) {\n        // $FlowIgnore\n        newNode[key] = this[key];\n      }\n    }\n\n    return newNode;\n  }\n}\n\nexport class NodeUtils extends UtilParser {\n  startNode<T: NodeType>(): T {\n    // $FlowIgnore\n    return new Node(this, this.state.start, this.state.startLoc);\n  }\n\n  startNodeAt<T: NodeType>(pos: number, loc: Position): T {\n    // $FlowIgnore\n    return new Node(this, pos, loc);\n  }\n\n  /** Start a new node with a previous node's location. */\n  startNodeAtNode<T: NodeType>(type: NodeType): T {\n    return this.startNodeAt(type.start, type.loc.start);\n  }\n\n  // Finish an AST node, adding `type` and `end` properties.\n\n  finishNode<T: NodeType>(node: T, type: string): T {\n    return this.finishNodeAt(\n      node,\n      type,\n      this.state.lastTokEnd,\n      this.state.lastTokEndLoc,\n    );\n  }\n\n  // Finish node at given position\n\n  finishNodeAt<T: NodeType>(\n    node: T,\n    type: string,\n    pos: number,\n    loc: Position,\n  ): T {\n    if (process.env.NODE_ENV !== \"production\" && node.end > 0) {\n      throw new Error(\n        \"Do not call finishNode*() twice on the same node.\" +\n          \" Instead use resetEndLocation() or change type directly.\",\n      );\n    }\n    node.type = type;\n    node.end = pos;\n    node.loc.end = loc;\n    if (this.options.ranges) node.range[1] = pos;\n    this.processComment(node);\n    return node;\n  }\n\n  resetStartLocation(node: NodeBase, start: number, startLoc: Position): void {\n    node.start = start;\n    node.loc.start = startLoc;\n    if (this.options.ranges) node.range[0] = start;\n  }\n\n  resetEndLocation(\n    node: NodeBase,\n    end?: number = this.state.lastTokEnd,\n    endLoc?: Position = this.state.lastTokEndLoc,\n  ): void {\n    node.end = end;\n    node.loc.end = endLoc;\n    if (this.options.ranges) node.range[1] = end;\n  }\n\n  /**\n   * Reset the start location of node to the start location of locationNode\n   */\n  resetStartLocationFromNode(node: NodeBase, locationNode: NodeBase): void {\n    this.resetStartLocation(node, locationNode.start, locationNode.loc.start);\n  }\n}\n","// @flow\n\nimport * as charCodes from \"charcodes\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport type {\n  TSParameterProperty,\n  Decorator,\n  Expression,\n  Node,\n  Pattern,\n  RestElement,\n  SpreadElement,\n  /*:: Identifier, */\n  /*:: ObjectExpression, */\n  /*:: ObjectPattern, */\n} from \"../types\";\nimport type { Pos, Position } from \"../util/location\";\nimport {\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport { NodeUtils } from \"./node\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { Errors } from \"./location\";\n\nconst unwrapParenthesizedExpression = (node: Node) => {\n  return node.type === \"ParenthesizedExpression\"\n    ? unwrapParenthesizedExpression(node.expression)\n    : node;\n};\n\nexport default class LValParser extends NodeUtils {\n  // Forward-declaration: defined in expression.js\n  /*::\n  +parseIdentifier: (liberal?: boolean) => Identifier;\n  +parseMaybeAssign: (\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ) => Expression;\n  +parseObj: <T: ObjectPattern | ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ) => T;\n  */\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseDecorator: () => Decorator;\n  */\n\n  // Convert existing expression atom to assignable pattern\n  // if possible.\n  // NOTE: There is a corresponding \"isAssignable\" method in flow.js.\n  // When this one is updated, please check if also that one needs to be updated.\n\n  toAssignable(node: Node): Node {\n    let parenthesized = undefined;\n    if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n      parenthesized = unwrapParenthesizedExpression(node);\n      if (\n        parenthesized.type !== \"Identifier\" &&\n        parenthesized.type !== \"MemberExpression\"\n      ) {\n        this.raise(node.start, Errors.InvalidParenthesizedAssignment);\n      }\n    }\n\n    switch (node.type) {\n      case \"Identifier\":\n      case \"ObjectPattern\":\n      case \"ArrayPattern\":\n      case \"AssignmentPattern\":\n        break;\n\n      case \"ObjectExpression\":\n        node.type = \"ObjectPattern\";\n        for (\n          let i = 0, length = node.properties.length, last = length - 1;\n          i < length;\n          i++\n        ) {\n          const prop = node.properties[i];\n          const isLast = i === last;\n          this.toAssignableObjectExpressionProp(prop, isLast);\n\n          if (\n            isLast &&\n            prop.type === \"RestElement\" &&\n            node.extra?.trailingComma\n          ) {\n            this.raiseRestNotLast(node.extra.trailingComma);\n          }\n        }\n        break;\n\n      case \"ObjectProperty\":\n        this.toAssignable(node.value);\n        break;\n\n      case \"SpreadElement\": {\n        this.checkToRestConversion(node);\n\n        node.type = \"RestElement\";\n        const arg = node.argument;\n        this.toAssignable(arg);\n        break;\n      }\n\n      case \"ArrayExpression\":\n        node.type = \"ArrayPattern\";\n        this.toAssignableList(node.elements, node.extra?.trailingComma);\n        break;\n\n      case \"AssignmentExpression\":\n        if (node.operator !== \"=\") {\n          this.raise(node.left.end, Errors.MissingEqInAssignment);\n        }\n\n        node.type = \"AssignmentPattern\";\n        delete node.operator;\n        this.toAssignable(node.left);\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.toAssignable(((parenthesized: any): Expression));\n        break;\n\n      default:\n      // We don't know how to deal with this node. It will\n      // be reported by a later call to checkLVal\n    }\n    return node;\n  }\n\n  toAssignableObjectExpressionProp(prop: Node, isLast: boolean) {\n    if (prop.type === \"ObjectMethod\") {\n      const error =\n        prop.kind === \"get\" || prop.kind === \"set\"\n          ? Errors.PatternHasAccessor\n          : Errors.PatternHasMethod;\n\n      this.raise(prop.key.start, error);\n    } else if (prop.type === \"SpreadElement\" && !isLast) {\n      this.raiseRestNotLast(prop.start);\n    } else {\n      this.toAssignable(prop);\n    }\n  }\n\n  // Convert list of expression atoms to binding list.\n\n  toAssignableList(\n    exprList: Expression[],\n    trailingCommaPos?: ?number,\n  ): $ReadOnlyArray<Pattern> {\n    let end = exprList.length;\n    if (end) {\n      const last = exprList[end - 1];\n      if (last && last.type === \"RestElement\") {\n        --end;\n      } else if (last && last.type === \"SpreadElement\") {\n        last.type = \"RestElement\";\n        const arg = last.argument;\n        this.toAssignable(arg);\n        if (\n          arg.type !== \"Identifier\" &&\n          arg.type !== \"MemberExpression\" &&\n          arg.type !== \"ArrayPattern\" &&\n          arg.type !== \"ObjectPattern\"\n        ) {\n          this.unexpected(arg.start);\n        }\n\n        if (trailingCommaPos) {\n          this.raiseTrailingCommaAfterRest(trailingCommaPos);\n        }\n\n        --end;\n      }\n    }\n    for (let i = 0; i < end; i++) {\n      const elt = exprList[i];\n      if (elt) {\n        this.toAssignable(elt);\n        if (elt.type === \"RestElement\") {\n          this.raiseRestNotLast(elt.start);\n        }\n      }\n    }\n    return exprList;\n  }\n\n  // Convert list of expression atoms to a list of\n\n  toReferencedList(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean, // eslint-disable-line no-unused-vars\n  ): $ReadOnlyArray<?Expression> {\n    return exprList;\n  }\n\n  toReferencedListDeep(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean,\n  ): void {\n    this.toReferencedList(exprList, isParenthesizedExpr);\n\n    for (const expr of exprList) {\n      if (expr && expr.type === \"ArrayExpression\") {\n        this.toReferencedListDeep(expr.elements);\n      }\n    }\n  }\n\n  // Parses spread element.\n\n  parseSpread(\n    refExpressionErrors: ?ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): SpreadElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseMaybeAssign(\n      false,\n      refExpressionErrors,\n      undefined,\n      refNeedsArrowPos,\n    );\n    return this.finishNode(node, \"SpreadElement\");\n  }\n\n  parseRestBinding(): RestElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseBindingAtom();\n    return this.finishNode(node, \"RestElement\");\n  }\n\n  // Parses lvalue (assignable) atom.\n  parseBindingAtom(): Pattern {\n    switch (this.state.type) {\n      case tt.bracketL: {\n        const node = this.startNode();\n        this.next();\n        node.elements = this.parseBindingList(\n          tt.bracketR,\n          charCodes.rightSquareBracket,\n          true,\n        );\n        return this.finishNode(node, \"ArrayPattern\");\n      }\n\n      case tt.braceL:\n        return this.parseObj(tt.braceR, true);\n    }\n\n    return this.parseIdentifier();\n  }\n\n  parseBindingList(\n    close: TokenType,\n    closeCharCode: $Values<typeof charCodes>,\n    allowEmpty?: boolean,\n    allowModifiers?: boolean,\n  ): $ReadOnlyArray<Pattern | TSParameterProperty> {\n    const elts: Array<Pattern | TSParameterProperty> = [];\n    let first = true;\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n      }\n      if (allowEmpty && this.match(tt.comma)) {\n        // $FlowFixMe This method returns `$ReadOnlyArray<?Pattern>` if `allowEmpty` is set.\n        elts.push(null);\n      } else if (this.eat(close)) {\n        break;\n      } else if (this.match(tt.ellipsis)) {\n        elts.push(this.parseAssignableListItemTypes(this.parseRestBinding()));\n        this.checkCommaAfterRest(closeCharCode);\n        this.expect(close);\n        break;\n      } else {\n        const decorators = [];\n        if (this.match(tt.at) && this.hasPlugin(\"decorators\")) {\n          this.raise(this.state.start, Errors.UnsupportedParameterDecorator);\n        }\n        while (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n        }\n        elts.push(this.parseAssignableListItem(allowModifiers, decorators));\n      }\n    }\n    return elts;\n  }\n\n  parseAssignableListItem(\n    allowModifiers: ?boolean,\n    decorators: Decorator[],\n  ): Pattern | TSParameterProperty {\n    const left = this.parseMaybeDefault();\n    this.parseAssignableListItemTypes(left);\n    const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n    if (decorators.length) {\n      left.decorators = decorators;\n    }\n    return elt;\n  }\n\n  parseAssignableListItemTypes(param: Pattern): Pattern {\n    return param;\n  }\n\n  // Parses assignment pattern around given atom if possible.\n\n  parseMaybeDefault(\n    startPos?: ?number,\n    startLoc?: ?Position,\n    left?: ?Pattern,\n  ): Pattern {\n    startLoc = startLoc || this.state.startLoc;\n    startPos = startPos || this.state.start;\n    left = left || this.parseBindingAtom();\n    if (!this.eat(tt.eq)) return left;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    node.left = left;\n    node.right = this.parseMaybeAssign();\n    return this.finishNode(node, \"AssignmentPattern\");\n  }\n\n  // Verify that a node is an lval — something that can be assigned\n  // to.\n\n  checkLVal(\n    expr: Expression,\n    bindingType: BindingTypes = BIND_NONE,\n    checkClashes: ?{ [key: string]: boolean },\n    contextDescription: string,\n    disallowLetBinding?: boolean,\n    strictModeChanged?: boolean = false,\n  ): void {\n    switch (expr.type) {\n      case \"Identifier\":\n        if (\n          this.state.strict &&\n          // \"Global\" reserved words have already been checked by parseIdentifier,\n          // unless they have been found in the id or parameters of a strict-mode\n          // function in a sloppy context.\n          (strictModeChanged\n            ? isStrictBindReservedWord(expr.name, this.inModule)\n            : isStrictBindOnlyReservedWord(expr.name))\n        ) {\n          this.raise(\n            expr.start,\n            bindingType === BIND_NONE\n              ? Errors.StrictEvalArguments\n              : Errors.StrictEvalArgumentsBinding,\n            expr.name,\n          );\n        }\n\n        if (checkClashes) {\n          // we need to prefix this with an underscore for the cases where we have a key of\n          // `__proto__`. there's a bug in old V8 where the following wouldn't work:\n          //\n          //   > var obj = Object.create(null);\n          //   undefined\n          //   > obj.__proto__\n          //   null\n          //   > obj.__proto__ = true;\n          //   true\n          //   > obj.__proto__\n          //   null\n          const key = `_${expr.name}`;\n\n          if (checkClashes[key]) {\n            this.raise(expr.start, Errors.ParamDupe);\n          } else {\n            checkClashes[key] = true;\n          }\n        }\n        if (disallowLetBinding && expr.name === \"let\") {\n          this.raise(expr.start, Errors.LetInLexicalBinding);\n        }\n        if (!(bindingType & BIND_NONE)) {\n          this.scope.declareName(expr.name, bindingType, expr.start);\n        }\n        break;\n\n      case \"MemberExpression\":\n        if (bindingType !== BIND_NONE) {\n          this.raise(expr.start, Errors.InvalidPropertyBindingPattern);\n        }\n        break;\n\n      case \"ObjectPattern\":\n        for (let prop of expr.properties) {\n          if (prop.type === \"ObjectProperty\") prop = prop.value;\n          // If we find here an ObjectMethod, it's because this was originally\n          // an ObjectExpression which has then been converted.\n          // toAssignable already reported this error with a nicer message.\n          else if (prop.type === \"ObjectMethod\") continue;\n\n          this.checkLVal(\n            prop,\n            bindingType,\n            checkClashes,\n            \"object destructuring pattern\",\n            disallowLetBinding,\n          );\n        }\n        break;\n\n      case \"ArrayPattern\":\n        for (const elem of expr.elements) {\n          if (elem) {\n            this.checkLVal(\n              elem,\n              bindingType,\n              checkClashes,\n              \"array destructuring pattern\",\n              disallowLetBinding,\n            );\n          }\n        }\n        break;\n\n      case \"AssignmentPattern\":\n        this.checkLVal(\n          expr.left,\n          bindingType,\n          checkClashes,\n          \"assignment pattern\",\n        );\n        break;\n\n      case \"RestElement\":\n        this.checkLVal(\n          expr.argument,\n          bindingType,\n          checkClashes,\n          \"rest element\",\n        );\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.checkLVal(\n          expr.expression,\n          bindingType,\n          checkClashes,\n          \"parenthesized expression\",\n        );\n        break;\n\n      default: {\n        this.raise(\n          expr.start,\n          bindingType === BIND_NONE\n            ? Errors.InvalidLhs\n            : Errors.InvalidLhsBinding,\n          contextDescription,\n        );\n      }\n    }\n  }\n\n  checkToRestConversion(node: SpreadElement): void {\n    if (\n      node.argument.type !== \"Identifier\" &&\n      node.argument.type !== \"MemberExpression\"\n    ) {\n      this.raise(node.argument.start, Errors.InvalidRestAssignmentPattern);\n    }\n  }\n\n  checkCommaAfterRest(close: $Values<typeof charCodes>): void {\n    if (this.match(tt.comma)) {\n      if (this.lookaheadCharCode() === close) {\n        this.raiseTrailingCommaAfterRest(this.state.start);\n      } else {\n        this.raiseRestNotLast(this.state.start);\n      }\n    }\n  }\n\n  raiseRestNotLast(pos: number) {\n    throw this.raise(pos, Errors.ElementAfterRest);\n  }\n\n  raiseTrailingCommaAfterRest(pos: number) {\n    this.raise(pos, Errors.RestTrailingComma);\n  }\n}\n","// @flow\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport { types as ct } from \"../tokenizer/context\";\nimport * as N from \"../types\";\nimport LValParser from \"./lval\";\nimport {\n  isKeyword,\n  isReservedWord,\n  isStrictReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport type { Pos, Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_OUTSIDE,\n  BIND_VAR,\n  SCOPE_ARROW,\n  SCOPE_CLASS,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport {\n  PARAM_AWAIT,\n  PARAM_RETURN,\n  PARAM,\n  functionFlags,\n} from \"../util/production-parameter\";\nimport { Errors } from \"./location\";\n\nexport default class ExpressionParser extends LValParser {\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseBlock: (\n    allowDirectives?: boolean,\n    createNewLexicalScope?: boolean,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ) => N.BlockStatement;\n  +parseClass: (\n    node: N.Class,\n    isStatement: boolean,\n    optionalId?: boolean,\n  ) => N.Class;\n  +parseDecorators: (allowExport?: boolean) => void;\n  +parseFunction: <T: N.NormalFunction>(\n    node: T,\n    statement?: number,\n    allowExpressionBody?: boolean,\n    isAsync?: boolean,\n  ) => T;\n  +parseFunctionParams: (node: N.Function, allowModifiers?: boolean) => void;\n  +takeDecorators: (node: N.HasDecorators) => void;\n  */\n\n  // Check if property __proto__ has been used more than once.\n  // If the expression is a destructuring assignment, then __proto__ may appear\n  // multiple times. Otherwise, __proto__ is a duplicated key.\n\n  checkDuplicatedProto(\n    prop: N.ObjectMember | N.SpreadElement,\n    protoRef: { used: boolean },\n    refExpressionErrors: ?ExpressionErrors,\n  ): void {\n    if (\n      prop.type === \"SpreadElement\" ||\n      prop.computed ||\n      prop.kind ||\n      // $FlowIgnore\n      prop.shorthand\n    ) {\n      return;\n    }\n\n    const key = prop.key;\n    // It is either an Identifier or a String/NumericLiteral\n    const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n    if (name === \"__proto__\") {\n      if (protoRef.used) {\n        if (refExpressionErrors) {\n          // Store the first redefinition's position, otherwise ignore because\n          // we are parsing ambiguous pattern\n          if (refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          }\n        } else {\n          this.raise(key.start, Errors.DuplicateProto);\n        }\n      }\n\n      protoRef.used = true;\n    }\n  }\n\n  // Convenience method to parse an Expression only\n  getExpression(): N.Expression {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    this.nextToken();\n    const expr = this.parseExpression();\n    if (!this.match(tt.eof)) {\n      this.unexpected();\n    }\n    expr.comments = this.state.comments;\n    expr.errors = this.state.errors;\n    return expr;\n  }\n\n  // ### Expression parsing\n\n  // These nest, from the most general expression type at the top to\n  // 'atomic', nondivisible expression types at the bottom. Most of\n  // the functions will simply let the function (s) below them parse,\n  // and, *if* the syntactic construct they handle is present, wrap\n  // the AST node that the inner parser gave them in another node.\n\n  // Parse a full expression.\n  // - `noIn`\n  //   is used to forbid the `in` operator (in for loops initialization expressions)\n  //   When `noIn` is true, the production parameter [In] is not present.\n  //   Whenever [?In] appears in the right-hand sides of a production, we pass\n  //   `noIn` to the subroutine calls.\n\n  // - `refExpressionErrors `\n  //   provides reference for storing '=' operator inside shorthand\n  //   property assignment in contexts where both object expression\n  //   and object pattern might appear (so it's possible to raise\n  //   delayed syntax error at correct position).\n\n  parseExpression(\n    noIn?: boolean,\n    refExpressionErrors?: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const expr = this.parseMaybeAssign(noIn, refExpressionErrors);\n    if (this.match(tt.comma)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.expressions = [expr];\n      while (this.eat(tt.comma)) {\n        node.expressions.push(this.parseMaybeAssign(noIn, refExpressionErrors));\n      }\n      this.toReferencedList(node.expressions);\n      return this.finishNode(node, \"SequenceExpression\");\n    }\n    return expr;\n  }\n\n  // Parse an assignment expression. This includes applications of\n  // operators like `+=`.\n\n  parseMaybeAssign(\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    if (this.isContextual(\"yield\")) {\n      if (this.prodParam.hasYield) {\n        let left = this.parseYield(noIn);\n        if (afterLeftParse) {\n          left = afterLeftParse.call(this, left, startPos, startLoc);\n        }\n        return left;\n      } else {\n        // The tokenizer will assume an expression is allowed after\n        // `yield`, but this isn't that kind of yield\n        this.state.exprAllowed = false;\n      }\n    }\n\n    let ownExpressionErrors;\n    if (refExpressionErrors) {\n      ownExpressionErrors = false;\n    } else {\n      refExpressionErrors = new ExpressionErrors();\n      ownExpressionErrors = true;\n    }\n\n    if (this.match(tt.parenL) || this.match(tt.name)) {\n      this.state.potentialArrowAt = this.state.start;\n    }\n\n    let left = this.parseMaybeConditional(\n      noIn,\n      refExpressionErrors,\n      refNeedsArrowPos,\n    );\n    if (afterLeftParse) {\n      left = afterLeftParse.call(this, left, startPos, startLoc);\n    }\n    if (this.state.type.isAssign) {\n      const node = this.startNodeAt(startPos, startLoc);\n      const operator = this.state.value;\n      node.operator = operator;\n\n      if (operator === \"??=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (operator === \"||=\" || operator === \"&&=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (this.match(tt.eq)) {\n        node.left = this.toAssignable(left);\n        refExpressionErrors.doubleProto = -1; // reset because double __proto__ is valid in assignment expression\n      } else {\n        node.left = left;\n      }\n\n      if (refExpressionErrors.shorthandAssign >= node.left.start) {\n        refExpressionErrors.shorthandAssign = -1; // reset because shorthand default was used correctly\n      }\n\n      this.checkLVal(left, undefined, undefined, \"assignment expression\");\n\n      this.next();\n      node.right = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"AssignmentExpression\");\n    } else if (ownExpressionErrors) {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n\n    return left;\n  }\n\n  // Parse a ternary conditional (`?:`) operator.\n\n  parseMaybeConditional(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprOps(noIn, refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n\n    return this.parseConditional(\n      expr,\n      noIn,\n      startPos,\n      startLoc,\n      refNeedsArrowPos,\n    );\n  }\n\n  parseConditional(\n    expr: N.Expression,\n    noIn: ?boolean,\n    startPos: number,\n    startLoc: Position,\n    // FIXME: Disabling this for now since can't seem to get it to play nicely\n    // eslint-disable-next-line no-unused-vars\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    if (this.eat(tt.question)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.test = expr;\n      node.consequent = this.parseMaybeAssign();\n      this.expect(tt.colon);\n      node.alternate = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n    return expr;\n  }\n\n  // Start the precedence parser.\n\n  parseExprOps(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseMaybeUnary(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) {\n      return expr;\n    }\n\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\n  }\n\n  // Parse binary operators with the operator precedence parsing\n  // algorithm. `left` is the left-hand side of the operator.\n  // `minPrec` provides context that allows the function to stop and\n  // defer further parser to one of its callers when it encounters an\n  // operator that has a lower precedence than the set it is parsing.\n\n  parseExprOp(\n    left: N.Expression,\n    leftStartPos: number,\n    leftStartLoc: Position,\n    minPrec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    let prec = this.state.type.binop;\n    if (prec != null && (!noIn || !this.match(tt._in))) {\n      if (prec > minPrec) {\n        const operator = this.state.value;\n        if (operator === \"|>\" && this.state.inFSharpPipelineDirectBody) {\n          return left;\n        }\n        const node = this.startNodeAt(leftStartPos, leftStartLoc);\n        node.left = left;\n        node.operator = operator;\n        if (\n          operator === \"**\" &&\n          left.type === \"UnaryExpression\" &&\n          (this.options.createParenthesizedExpressions ||\n            !(left.extra && left.extra.parenthesized))\n        ) {\n          this.raise(\n            left.argument.start,\n            Errors.UnexpectedTokenUnaryExponentiation,\n          );\n        }\n\n        const op = this.state.type;\n        const logical = op === tt.logicalOR || op === tt.logicalAND;\n        const coalesce = op === tt.nullishCoalescing;\n\n        if (op === tt.pipeline) {\n          this.expectPlugin(\"pipelineOperator\");\n          this.state.inPipeline = true;\n          this.checkPipelineAtInfixOperator(left, leftStartPos);\n        } else if (coalesce) {\n          // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n          // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n          prec = ((tt.logicalAND: any): { binop: number }).binop;\n        }\n\n        this.next();\n\n        if (\n          op === tt.pipeline &&\n          this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"minimal\"\n        ) {\n          if (\n            this.match(tt.name) &&\n            this.state.value === \"await\" &&\n            this.prodParam.hasAwait\n          ) {\n            throw this.raise(\n              this.state.start,\n              Errors.UnexpectedAwaitAfterPipelineBody,\n            );\n          }\n        }\n\n        node.right = this.parseExprOpRightExpr(op, prec, noIn);\n        this.finishNode(\n          node,\n          logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\",\n        );\n        /* this check is for all ?? operators\n         * a ?? b && c for this example\n         * when op is coalesce and nextOp is logical (&&), throw at the pos of nextOp that it can not be mixed.\n         * Symmetrically it also throws when op is logical and nextOp is coalesce\n         */\n        const nextOp = this.state.type;\n        if (\n          (coalesce && (nextOp === tt.logicalOR || nextOp === tt.logicalAND)) ||\n          (logical && nextOp === tt.nullishCoalescing)\n        ) {\n          throw this.raise(this.state.start, Errors.MixingCoalesceWithLogical);\n        }\n\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n    }\n    return left;\n  }\n\n  // Helper function for `parseExprOp`. Parse the right-hand side of binary-\n  // operator expressions, then apply any operator-specific functions.\n\n  parseExprOpRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    switch (op) {\n      case tt.pipeline:\n        switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n          case \"smart\":\n            return this.withTopicPermittingContext(() => {\n              return this.parseSmartPipelineBody(\n                this.parseExprOpBaseRightExpr(op, prec, noIn),\n                startPos,\n                startLoc,\n              );\n            });\n          case \"fsharp\":\n            return this.withSoloAwaitPermittingContext(() => {\n              return this.parseFSharpPipelineBody(prec, noIn);\n            });\n        }\n      // falls through\n\n      default:\n        return this.parseExprOpBaseRightExpr(op, prec, noIn);\n    }\n  }\n\n  // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of\n  // binary-operator expressions without applying any operator-specific functions.\n\n  parseExprOpBaseRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    return this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      op.rightAssociative ? prec - 1 : prec,\n      noIn,\n    );\n  }\n\n  // Parse unary operators, both prefix and postfix.\n\n  parseMaybeUnary(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    if (this.isContextual(\"await\") && this.isAwaitAllowed()) {\n      return this.parseAwait();\n    } else if (this.state.type.prefix) {\n      const node = this.startNode();\n      const update = this.match(tt.incDec);\n      node.operator = this.state.value;\n      node.prefix = true;\n\n      if (node.operator === \"throw\") {\n        this.expectPlugin(\"throwExpressions\");\n      }\n      this.next();\n\n      node.argument = this.parseMaybeUnary();\n\n      this.checkExpressionErrors(refExpressionErrors, true);\n\n      if (update) {\n        this.checkLVal(node.argument, undefined, undefined, \"prefix operation\");\n      } else if (this.state.strict && node.operator === \"delete\") {\n        const arg = node.argument;\n\n        if (arg.type === \"Identifier\") {\n          this.raise(node.start, Errors.StrictDelete);\n        } else if (\n          arg.type === \"MemberExpression\" &&\n          arg.property.type === \"PrivateName\"\n        ) {\n          this.raise(node.start, Errors.DeletePrivateField);\n        }\n      }\n\n      return this.finishNode(\n        node,\n        update ? \"UpdateExpression\" : \"UnaryExpression\",\n      );\n    }\n\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    let expr = this.parseExprSubscripts(refExpressionErrors);\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n    while (this.state.type.postfix && !this.canInsertSemicolon()) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.operator = this.state.value;\n      node.prefix = false;\n      node.argument = expr;\n      this.checkLVal(expr, undefined, undefined, \"postfix operation\");\n      this.next();\n      expr = this.finishNode(node, \"UpdateExpression\");\n    }\n    return expr;\n  }\n\n  // Parse call, dot, and `[]`-subscript expressions.\n\n  parseExprSubscripts(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprAtom(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n\n    return this.parseSubscripts(expr, startPos, startLoc);\n  }\n\n  parseSubscripts(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls?: ?boolean,\n  ): N.Expression {\n    const state = {\n      optionalChainMember: false,\n      maybeAsyncArrow: this.atPossibleAsyncArrow(base),\n      stop: false,\n    };\n    do {\n      const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n      if (state.maybeAsyncArrow) {\n        this.state.maybeInAsyncArrowHead = true;\n      }\n      base = this.parseSubscript(base, startPos, startLoc, noCalls, state);\n\n      // After parsing a subscript, this isn't \"async\" for sure.\n      state.maybeAsyncArrow = false;\n      this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n    } while (!state.stop);\n    return base;\n  }\n\n  /**\n   * @param state Set 'state.stop = true' to indicate that we should stop parsing subscripts.\n   *   state.optionalChainMember to indicate that the member is currently in OptionalChain\n   */\n  parseSubscript(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls: ?boolean,\n    state: N.ParseSubscriptState,\n  ): N.Expression {\n    if (!noCalls && this.eat(tt.doubleColon)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.callee = this.parseNoCallExpr();\n      state.stop = true;\n      return this.parseSubscripts(\n        this.finishNode(node, \"BindExpression\"),\n        startPos,\n        startLoc,\n        noCalls,\n      );\n    }\n    let optional = false;\n    if (this.match(tt.questionDot)) {\n      state.optionalChainMember = optional = true;\n      if (noCalls && this.lookaheadCharCode() === charCodes.leftParenthesis) {\n        state.stop = true;\n        return base;\n      }\n      this.next();\n    }\n    const computed = this.eat(tt.bracketL);\n    if (\n      (optional && !this.match(tt.parenL) && !this.match(tt.backQuote)) ||\n      computed ||\n      this.eat(tt.dot)\n    ) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.property = computed\n        ? this.parseExpression()\n        : optional\n        ? this.parseIdentifier(true)\n        : this.parseMaybePrivateName(true);\n      node.computed = computed;\n\n      if (node.property.type === \"PrivateName\") {\n        if (node.object.type === \"Super\") {\n          this.raise(startPos, Errors.SuperPrivateField);\n        }\n        this.classScope.usePrivateName(\n          node.property.id.name,\n          node.property.start,\n        );\n      }\n\n      if (computed) {\n        this.expect(tt.bracketR);\n      }\n\n      if (state.optionalChainMember) {\n        node.optional = optional;\n        return this.finishNode(node, \"OptionalMemberExpression\");\n      } else {\n        return this.finishNode(node, \"MemberExpression\");\n      }\n    } else if (!noCalls && this.match(tt.parenL)) {\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      this.next();\n\n      let node = this.startNodeAt(startPos, startLoc);\n      node.callee = base;\n\n      if (optional) {\n        node.optional = true;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      } else {\n        node.arguments = this.parseCallExpressionArguments(\n          tt.parenR,\n          state.maybeAsyncArrow,\n          base.type === \"Import\",\n          base.type !== \"Super\",\n          node,\n        );\n      }\n      this.finishCallExpression(node, state.optionalChainMember);\n\n      if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n        state.stop = true;\n\n        node = this.parseAsyncArrowFromCallExpression(\n          this.startNodeAt(startPos, startLoc),\n          node,\n        );\n        this.checkYieldAwaitInDefaultParams();\n        this.state.yieldPos = oldYieldPos;\n        this.state.awaitPos = oldAwaitPos;\n      } else {\n        this.toReferencedListDeep(node.arguments);\n\n        // We keep the old value if it isn't null, for cases like\n        //   (x = async(yield)) => {}\n        //\n        // Hi developer of the future :) If you are implementing generator\n        // arrow functions, please read the note below about \"await\" and\n        // verify if the same logic is needed for yield.\n        if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n\n        // Await is trickier than yield. When parsing a possible arrow function\n        // (e.g. something starting with `async(`) we don't know if its possible\n        // parameters will actually be inside an async arrow function or if it is\n        // a normal call expression.\n        // If it ended up being a call expression, if we are in a context where\n        // await expression are disallowed (and thus \"await\" is an identifier)\n        // we must be careful not to leak this.state.awaitPos to an even outer\n        // context, where \"await\" could not be an identifier.\n        // For example, this code is valid because \"await\" isn't directly inside\n        // an async function:\n        //\n        //     async function a() {\n        //       function b(param = async (await)) {\n        //       }\n        //     }\n        //\n        if (\n          (!this.isAwaitAllowed() && !oldMaybeInArrowParameters) ||\n          oldAwaitPos !== -1\n        ) {\n          this.state.awaitPos = oldAwaitPos;\n        }\n      }\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n      return node;\n    } else if (this.match(tt.backQuote)) {\n      return this.parseTaggedTemplateExpression(\n        startPos,\n        startLoc,\n        base,\n        state,\n      );\n    } else {\n      state.stop = true;\n      return base;\n    }\n  }\n\n  parseTaggedTemplateExpression(\n    startPos: number,\n    startLoc: Position,\n    base: N.Expression,\n    state: N.ParseSubscriptState,\n    typeArguments?: ?N.TsTypeParameterInstantiation,\n  ): N.TaggedTemplateExpression {\n    const node: N.TaggedTemplateExpression = this.startNodeAt(\n      startPos,\n      startLoc,\n    );\n    node.tag = base;\n    node.quasi = this.parseTemplate(true);\n    if (typeArguments) node.typeParameters = typeArguments;\n    if (state.optionalChainMember) {\n      this.raise(startPos, Errors.OptionalChainingNoTemplate);\n    }\n    return this.finishNode(node, \"TaggedTemplateExpression\");\n  }\n\n  atPossibleAsyncArrow(base: N.Expression): boolean {\n    return (\n      base.type === \"Identifier\" &&\n      base.name === \"async\" &&\n      this.state.lastTokEnd === base.end &&\n      !this.canInsertSemicolon() &&\n      // check there are no escape sequences, such as \\u{61}sync\n      base.end - base.start === 5 &&\n      base.start === this.state.potentialArrowAt\n    );\n  }\n\n  finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n    node: T,\n    optional: boolean,\n  ): N.Expression {\n    if (node.callee.type === \"Import\") {\n      if (node.arguments.length !== 1) {\n        this.raise(node.start, Errors.ImportCallArity);\n      } else {\n        const importArg = node.arguments[0];\n        if (importArg && importArg.type === \"SpreadElement\") {\n          this.raise(importArg.start, Errors.ImportCallSpreadArgument);\n        }\n      }\n    }\n    return this.finishNode(\n      node,\n      optional ? \"OptionalCallExpression\" : \"CallExpression\",\n    );\n  }\n\n  parseCallExpressionArguments(\n    close: TokenType,\n    possibleAsyncArrow: boolean,\n    dynamicImport?: boolean,\n    allowPlaceholder?: boolean,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let innerParenStart;\n    let first = true;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (dynamicImport) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.ImportCallArgumentTrailingComma,\n            );\n          }\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      // we need to make sure that if this is an async arrow functions,\n      // that we don't allow inner parens inside the params\n      if (this.match(tt.parenL) && !innerParenStart) {\n        innerParenStart = this.state.start;\n      }\n\n      elts.push(\n        this.parseExprListItem(\n          false,\n          possibleAsyncArrow ? new ExpressionErrors() : undefined,\n          possibleAsyncArrow ? { start: 0 } : undefined,\n          allowPlaceholder,\n        ),\n      );\n    }\n\n    // we found an async arrow function so let's not allow any inner parens\n    if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\n      this.unexpected();\n    }\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return elts;\n  }\n\n  shouldParseAsyncArrow(): boolean {\n    return this.match(tt.arrow) && !this.canInsertSemicolon();\n  }\n\n  parseAsyncArrowFromCallExpression(\n    node: N.ArrowFunctionExpression,\n    call: N.CallExpression,\n  ): N.ArrowFunctionExpression {\n    this.expect(tt.arrow);\n    this.parseArrowExpression(\n      node,\n      call.arguments,\n      true,\n      call.extra?.trailingComma,\n    );\n    return node;\n  }\n\n  // Parse a no-call expression (like argument of `new` or `::` operators).\n\n  parseNoCallExpr(): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n  }\n\n  // Parse an atomic expression — either a single token that is an\n  // expression, an expression started by a keyword like `function` or\n  // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n  // or `{}`.\n\n  parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n    // If a division operator appears in an expression position, the\n    // tokenizer got confused, and we force it to read a regexp instead.\n    if (this.state.type === tt.slash) this.readRegexp();\n\n    const canBeArrow = this.state.potentialArrowAt === this.state.start;\n    let node;\n\n    switch (this.state.type) {\n      case tt._super:\n        node = this.startNode();\n        this.next();\n        if (\n          this.match(tt.parenL) &&\n          !this.scope.allowDirectSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.SuperNotAllowed);\n        } else if (\n          !this.scope.allowSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.UnexpectedSuper);\n        }\n\n        if (\n          !this.match(tt.parenL) &&\n          !this.match(tt.bracketL) &&\n          !this.match(tt.dot)\n        ) {\n          this.raise(node.start, Errors.UnsupportedSuper);\n        }\n\n        return this.finishNode(node, \"Super\");\n\n      case tt._import:\n        node = this.startNode();\n        this.next();\n\n        if (this.match(tt.dot)) {\n          return this.parseImportMetaProperty(node);\n        }\n\n        if (!this.match(tt.parenL)) {\n          this.raise(this.state.lastTokStart, Errors.UnsupportedImport);\n        }\n        return this.finishNode(node, \"Import\");\n      case tt._this:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"ThisExpression\");\n\n      case tt.name: {\n        node = this.startNode();\n        const containsEsc = this.state.containsEsc;\n        const id = this.parseIdentifier();\n\n        if (\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt._function) &&\n          !this.canInsertSemicolon()\n        ) {\n          const last = this.state.context.length - 1;\n          if (this.state.context[last] !== ct.functionStatement) {\n            // Since \"async\" is an identifier and normally identifiers\n            // can't be followed by expression, the tokenizer assumes\n            // that \"function\" starts a statement.\n            // Fixing it in the tokenizer would mean tracking not only the\n            // previous token (\"async\"), but also the one before to know\n            // its beforeExpr value.\n            // It's easier and more efficient to adjust the context here.\n            throw new Error(\"Internal error\");\n          }\n          this.state.context[last] = ct.functionExpression;\n\n          this.next();\n          return this.parseFunction(node, undefined, true);\n        } else if (\n          canBeArrow &&\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt.name) &&\n          !this.canInsertSemicolon()\n        ) {\n          const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n          const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n          const oldYieldPos = this.state.yieldPos;\n          const oldAwaitPos = this.state.awaitPos;\n          this.state.maybeInArrowParameters = true;\n          this.state.maybeInAsyncArrowHead = true;\n          this.state.yieldPos = -1;\n          this.state.awaitPos = -1;\n          const params = [this.parseIdentifier()];\n          this.expect(tt.arrow);\n          this.checkYieldAwaitInDefaultParams();\n          this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n          this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n          this.state.yieldPos = oldYieldPos;\n          this.state.awaitPos = oldAwaitPos;\n          // let foo = async bar => {};\n          this.parseArrowExpression(node, params, true);\n          return node;\n        }\n\n        if (canBeArrow && this.match(tt.arrow) && !this.canInsertSemicolon()) {\n          this.next();\n          this.parseArrowExpression(node, [id], false);\n          return node;\n        }\n\n        return id;\n      }\n\n      case tt._do: {\n        this.expectPlugin(\"doExpressions\");\n        const node = this.startNode();\n        this.next();\n        const oldLabels = this.state.labels;\n        this.state.labels = [];\n        node.body = this.parseBlock();\n        this.state.labels = oldLabels;\n        return this.finishNode(node, \"DoExpression\");\n      }\n\n      case tt.regexp: {\n        const value = this.state.value;\n        node = this.parseLiteral(value.value, \"RegExpLiteral\");\n        node.pattern = value.pattern;\n        node.flags = value.flags;\n        return node;\n      }\n\n      case tt.num:\n        return this.parseLiteral(this.state.value, \"NumericLiteral\");\n\n      case tt.bigint:\n        return this.parseLiteral(this.state.value, \"BigIntLiteral\");\n\n      case tt.string:\n        return this.parseLiteral(this.state.value, \"StringLiteral\");\n\n      case tt._null:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"NullLiteral\");\n\n      case tt._true:\n      case tt._false:\n        return this.parseBooleanLiteral();\n\n      case tt.parenL:\n        return this.parseParenAndDistinguishExpression(canBeArrow);\n\n      case tt.bracketBarL:\n      case tt.bracketHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          close,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"TupleExpression\");\n      }\n      case tt.bracketL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          tt.bracketR,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        if (!this.state.maybeInArrowParameters) {\n          // This could be an array pattern:\n          //   ([a: string, b: string]) => {}\n          // In this case, we don't have to call toReferencedList. We will\n          // call it, if needed, when we are sure that it is a parenthesized\n          // expression by calling toReferencedListDeep.\n          this.toReferencedList(node.elements);\n        }\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"ArrayExpression\");\n      }\n      case tt.braceBarL:\n      case tt.braceHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(close, false, true, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt.braceL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(tt.braceR, false, false, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt._function:\n        return this.parseFunctionExpression();\n\n      case tt.at:\n        this.parseDecorators();\n      // fall through\n      case tt._class:\n        node = this.startNode();\n        this.takeDecorators(node);\n        return this.parseClass(node, false);\n\n      case tt._new:\n        return this.parseNew();\n\n      case tt.backQuote:\n        return this.parseTemplate(false);\n\n      case tt.doubleColon: {\n        node = this.startNode();\n        this.next();\n        node.object = null;\n        const callee = (node.callee = this.parseNoCallExpr());\n        if (callee.type === \"MemberExpression\") {\n          return this.finishNode(node, \"BindExpression\");\n        } else {\n          throw this.raise(callee.start, Errors.UnsupportedBind);\n        }\n      }\n\n      case tt.hash: {\n        if (this.state.inPipeline) {\n          node = this.startNode();\n\n          if (\n            this.getPluginOption(\"pipelineOperator\", \"proposal\") !== \"smart\"\n          ) {\n            this.raise(node.start, Errors.PrimaryTopicRequiresSmartPipeline);\n          }\n\n          this.next();\n\n          if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) {\n            this.raise(node.start, Errors.PrimaryTopicNotAllowed);\n          }\n\n          this.registerTopicReference();\n          return this.finishNode(node, \"PipelinePrimaryTopicReference\");\n        }\n      }\n      // fall through\n      default:\n        throw this.unexpected();\n    }\n  }\n\n  parseBooleanLiteral(): N.BooleanLiteral {\n    const node = this.startNode();\n    node.value = this.match(tt._true);\n    this.next();\n    return this.finishNode(node, \"BooleanLiteral\");\n  }\n\n  parseMaybePrivateName(\n    isPrivateNameAllowed: boolean,\n  ): N.PrivateName | N.Identifier {\n    const isPrivate = this.match(tt.hash);\n\n    if (isPrivate) {\n      this.expectOnePlugin([\"classPrivateProperties\", \"classPrivateMethods\"]);\n      if (!isPrivateNameAllowed) {\n        this.raise(this.state.pos, Errors.UnexpectedPrivateField);\n      }\n      const node = this.startNode();\n      this.next();\n      this.assertNoSpace(\"Unexpected space between # and identifier\");\n      node.id = this.parseIdentifier(true);\n      return this.finishNode(node, \"PrivateName\");\n    } else {\n      return this.parseIdentifier(true);\n    }\n  }\n\n  parseFunctionExpression(): N.FunctionExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    // We do not do parseIdentifier here because when parseFunctionExpression\n    // is called we already know that the current token is a \"name\" with the value \"function\"\n    // This will improve perf a tiny little bit as we do not do validation but more importantly\n    // here is that parseIdentifier will remove an item from the expression stack\n    // if \"function\" or \"class\" is parsed as identifier (in objects e.g.), which should not happen here.\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"function\");\n\n    if (this.prodParam.hasYield && this.eat(tt.dot)) {\n      return this.parseMetaProperty(node, meta, \"sent\");\n    }\n    return this.parseFunction(node);\n  }\n\n  parseMetaProperty(\n    node: N.MetaProperty,\n    meta: N.Identifier,\n    propertyName: string,\n  ): N.MetaProperty {\n    node.meta = meta;\n\n    if (meta.name === \"function\" && propertyName === \"sent\") {\n      if (this.isContextual(propertyName)) {\n        this.expectPlugin(\"functionSent\");\n      } else if (!this.hasPlugin(\"functionSent\")) {\n        // The code wasn't `function.sent` but just `function.`, so a simple error is less confusing.\n        this.unexpected();\n      }\n    }\n\n    const containsEsc = this.state.containsEsc;\n\n    node.property = this.parseIdentifier(true);\n\n    if (node.property.name !== propertyName || containsEsc) {\n      this.raise(\n        node.property.start,\n        Errors.UnsupportedMetaProperty,\n        meta.name,\n        propertyName,\n      );\n    }\n\n    return this.finishNode(node, \"MetaProperty\");\n  }\n\n  parseImportMetaProperty(node: N.MetaProperty): N.MetaProperty {\n    const id = this.createIdentifier(this.startNodeAtNode(node), \"import\");\n    this.expect(tt.dot);\n\n    if (this.isContextual(\"meta\")) {\n      this.expectPlugin(\"importMeta\");\n\n      if (!this.inModule) {\n        this.raiseWithData(\n          id.start,\n          { code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\" },\n          Errors.ImportMetaOutsideModule,\n        );\n      }\n      this.sawUnambiguousESM = true;\n    } else if (!this.hasPlugin(\"importMeta\")) {\n      this.raise(id.start, Errors.ImportCallArityLtOne);\n    }\n\n    return this.parseMetaProperty(node, id, \"meta\");\n  }\n\n  parseLiteral<T: N.Literal>(\n    value: any,\n    type: /*T[\"kind\"]*/ string,\n    startPos?: number,\n    startLoc?: Position,\n  ): T {\n    startPos = startPos || this.state.start;\n    startLoc = startLoc || this.state.startLoc;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    this.addExtra(node, \"rawValue\", value);\n    this.addExtra(node, \"raw\", this.input.slice(startPos, this.state.end));\n    node.value = value;\n    this.next();\n    return this.finishNode(node, type);\n  }\n\n  parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    let val;\n    this.expect(tt.parenL);\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.maybeInArrowParameters = true;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    const innerStartPos = this.state.start;\n    const innerStartLoc = this.state.startLoc;\n    const exprList = [];\n    const refExpressionErrors = new ExpressionErrors();\n    const refNeedsArrowPos = { start: 0 };\n    let first = true;\n    let spreadStart;\n    let optionalCommaStart;\n\n    while (!this.match(tt.parenR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma, refNeedsArrowPos.start || null);\n        if (this.match(tt.parenR)) {\n          optionalCommaStart = this.state.start;\n          break;\n        }\n      }\n\n      if (this.match(tt.ellipsis)) {\n        const spreadNodeStartPos = this.state.start;\n        const spreadNodeStartLoc = this.state.startLoc;\n        spreadStart = this.state.start;\n        exprList.push(\n          this.parseParenItem(\n            this.parseRestBinding(),\n            spreadNodeStartPos,\n            spreadNodeStartLoc,\n          ),\n        );\n\n        this.checkCommaAfterRest(charCodes.rightParenthesis);\n\n        break;\n      } else {\n        exprList.push(\n          this.parseMaybeAssign(\n            false,\n            refExpressionErrors,\n            this.parseParenItem,\n            refNeedsArrowPos,\n          ),\n        );\n      }\n    }\n\n    const innerEndPos = this.state.start;\n    const innerEndLoc = this.state.startLoc;\n    this.expect(tt.parenR);\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    let arrowNode = this.startNodeAt(startPos, startLoc);\n    if (\n      canBeArrow &&\n      this.shouldParseArrow() &&\n      (arrowNode = this.parseArrow(arrowNode))\n    ) {\n      if (!this.isAwaitAllowed() && !this.state.maybeInAsyncArrowHead) {\n        this.state.awaitPos = oldAwaitPos;\n      }\n      this.checkYieldAwaitInDefaultParams();\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n      for (const param of exprList) {\n        if (param.extra && param.extra.parenthesized) {\n          this.unexpected(param.extra.parenStart);\n        }\n      }\n\n      this.parseArrowExpression(arrowNode, exprList, false);\n      return arrowNode;\n    }\n\n    // We keep the old value if it isn't null, for cases like\n    //   (x = (yield)) => {}\n    if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n    if (oldAwaitPos !== -1) this.state.awaitPos = oldAwaitPos;\n\n    if (!exprList.length) {\n      this.unexpected(this.state.lastTokStart);\n    }\n    if (optionalCommaStart) this.unexpected(optionalCommaStart);\n    if (spreadStart) this.unexpected(spreadStart);\n    this.checkExpressionErrors(refExpressionErrors, true);\n    if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start);\n\n    this.toReferencedListDeep(exprList, /* isParenthesizedExpr */ true);\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc);\n      val.expressions = exprList;\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n    } else {\n      val = exprList[0];\n    }\n\n    if (!this.options.createParenthesizedExpressions) {\n      this.addExtra(val, \"parenthesized\", true);\n      this.addExtra(val, \"parenStart\", startPos);\n      return val;\n    }\n\n    const parenExpression = this.startNodeAt(startPos, startLoc);\n    parenExpression.expression = val;\n    this.finishNode(parenExpression, \"ParenthesizedExpression\");\n    return parenExpression;\n  }\n\n  shouldParseArrow(): boolean {\n    return !this.canInsertSemicolon();\n  }\n\n  parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n    if (this.eat(tt.arrow)) {\n      return node;\n    }\n  }\n\n  parseParenItem(\n    node: N.Expression,\n    startPos: number, // eslint-disable-line no-unused-vars\n    startLoc: Position, // eslint-disable-line no-unused-vars\n  ): N.Expression {\n    return node;\n  }\n\n  // New's precedence is slightly tricky. It must allow its argument to\n  // be a `[]` or dot subscript expression, but not a call — at least,\n  // not without wrapping it in parentheses. Thus, it uses the noCalls\n  // argument to parseSubscripts to prevent it from consuming the\n  // argument list.\n\n  parseNew(): N.NewExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"new\");\n\n    if (this.eat(tt.dot)) {\n      const metaProp = this.parseMetaProperty(node, meta, \"target\");\n\n      if (!this.scope.inNonArrowFunction && !this.scope.inClass) {\n        let error = Errors.UnexpectedNewTarget;\n\n        if (this.hasPlugin(\"classProperties\")) {\n          error += \" or class properties\";\n        }\n\n        this.raise(metaProp.start, error);\n      }\n\n      return metaProp;\n    }\n\n    node.callee = this.parseNoCallExpr();\n\n    if (node.callee.type === \"Import\") {\n      this.raise(node.callee.start, Errors.ImportCallNotNewExpression);\n    } else if (\n      node.callee.type === \"OptionalMemberExpression\" ||\n      node.callee.type === \"OptionalCallExpression\"\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.OptionalChainingNoNew);\n    } else if (this.eat(tt.questionDot)) {\n      this.raise(this.state.start, Errors.OptionalChainingNoNew);\n    }\n\n    this.parseNewArguments(node);\n    return this.finishNode(node, \"NewExpression\");\n  }\n\n  parseNewArguments(node: N.NewExpression): void {\n    if (this.eat(tt.parenL)) {\n      const args = this.parseExprList(tt.parenR);\n      this.toReferencedList(args);\n      // $FlowFixMe (parseExprList should be all non-null in this case)\n      node.arguments = args;\n    } else {\n      node.arguments = [];\n    }\n  }\n\n  // Parse template expression.\n\n  parseTemplateElement(isTagged: boolean): N.TemplateElement {\n    const elem = this.startNode();\n    if (this.state.value === null) {\n      if (!isTagged) {\n        this.raise(this.state.start + 1, Errors.InvalidEscapeSequenceTemplate);\n      }\n    }\n    elem.value = {\n      raw: this.input\n        .slice(this.state.start, this.state.end)\n        .replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.state.value,\n    };\n    this.next();\n    elem.tail = this.match(tt.backQuote);\n    return this.finishNode(elem, \"TemplateElement\");\n  }\n\n  parseTemplate(isTagged: boolean): N.TemplateLiteral {\n    const node = this.startNode();\n    this.next();\n    node.expressions = [];\n    let curElt = this.parseTemplateElement(isTagged);\n    node.quasis = [curElt];\n    while (!curElt.tail) {\n      this.expect(tt.dollarBraceL);\n      node.expressions.push(this.parseExpression());\n      this.expect(tt.braceR);\n      node.quasis.push((curElt = this.parseTemplateElement(isTagged)));\n    }\n    this.next();\n    return this.finishNode(node, \"TemplateLiteral\");\n  }\n\n  // Parse an object literal, binding pattern, or record.\n\n  parseObj<T: N.ObjectPattern | N.ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): T {\n    const propHash: any = Object.create(null);\n    let first = true;\n    const node = this.startNode();\n\n    node.properties = [];\n    this.next();\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          this.addExtra(node, \"trailingComma\", this.state.lastTokStart);\n          this.next();\n          break;\n        }\n      }\n\n      const prop = this.parseObjectMember(isPattern, refExpressionErrors);\n      if (!isPattern) {\n        // $FlowIgnore RestElement will never be returned if !isPattern\n        this.checkDuplicatedProto(prop, propHash, refExpressionErrors);\n      }\n\n      // $FlowIgnore\n      if (prop.shorthand) {\n        this.addExtra(prop, \"shorthand\", true);\n      }\n\n      node.properties.push(prop);\n    }\n\n    let type = \"ObjectExpression\";\n    if (isPattern) {\n      type = \"ObjectPattern\";\n    } else if (isRecord) {\n      type = \"RecordExpression\";\n    }\n    return this.finishNode(node, type);\n  }\n\n  isAsyncProp(prop: N.ObjectProperty): boolean {\n    return (\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      prop.key.name === \"async\" &&\n      (this.match(tt.name) ||\n        this.match(tt.num) ||\n        this.match(tt.string) ||\n        this.match(tt.bracketL) ||\n        this.state.type.keyword ||\n        this.match(tt.star)) &&\n      !this.hasPrecedingLineBreak()\n    );\n  }\n\n  parseObjectMember(\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): N.ObjectMember | N.SpreadElement | N.RestElement {\n    let decorators = [];\n    if (this.match(tt.at)) {\n      if (this.hasPlugin(\"decorators\")) {\n        this.raise(this.state.start, Errors.UnsupportedPropertyDecorator);\n      }\n\n      // we needn't check if decorators (stage 0) plugin is enabled since it's checked by\n      // the call to this.parseDecorator\n      while (this.match(tt.at)) {\n        decorators.push(this.parseDecorator());\n      }\n    }\n\n    const prop = this.startNode();\n    let isGenerator = false;\n    let isAsync = false;\n    let startPos;\n    let startLoc;\n\n    if (this.match(tt.ellipsis)) {\n      if (decorators.length) this.unexpected();\n      if (isPattern) {\n        this.next();\n        // Don't use parseRestBinding() as we only allow Identifier here.\n        prop.argument = this.parseIdentifier();\n        this.checkCommaAfterRest(charCodes.rightCurlyBrace);\n        return this.finishNode(prop, \"RestElement\");\n      }\n\n      return this.parseSpread();\n    }\n\n    if (decorators.length) {\n      prop.decorators = decorators;\n      decorators = [];\n    }\n\n    prop.method = false;\n\n    if (isPattern || refExpressionErrors) {\n      startPos = this.state.start;\n      startLoc = this.state.startLoc;\n    }\n\n    if (!isPattern) {\n      isGenerator = this.eat(tt.star);\n    }\n\n    const containsEsc = this.state.containsEsc;\n    this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n\n    if (!isPattern && !containsEsc && !isGenerator && this.isAsyncProp(prop)) {\n      isAsync = true;\n      isGenerator = this.eat(tt.star);\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n    } else {\n      isAsync = false;\n    }\n\n    this.parseObjPropValue(\n      prop,\n      startPos,\n      startLoc,\n      isGenerator,\n      isAsync,\n      isPattern,\n      refExpressionErrors,\n      containsEsc,\n    );\n\n    return prop;\n  }\n\n  isGetterOrSetterMethod(prop: N.ObjectMethod, isPattern: boolean): boolean {\n    return (\n      !isPattern &&\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n      (this.match(tt.string) || // get \"string\"() {}\n      this.match(tt.num) || // get 1() {}\n      this.match(tt.bracketL) || // get [\"string\"]() {}\n      this.match(tt.name) || // get foo() {}\n        !!this.state.type.keyword) // get debugger() {}\n    );\n  }\n\n  getGetterSetterExpectedParamCount(\n    method: N.ObjectMethod | N.ClassMethod,\n  ): number {\n    return method.kind === \"get\" ? 0 : 1;\n  }\n\n  // get methods aren't allowed to have any parameters\n  // set methods must have exactly 1 parameter which is not a rest parameter\n  checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n    const paramCount = this.getGetterSetterExpectedParamCount(method);\n    const start = method.start;\n    if (method.params.length !== paramCount) {\n      if (method.kind === \"get\") {\n        this.raise(start, Errors.BadGetterArity);\n      } else {\n        this.raise(start, Errors.BadSetterArity);\n      }\n    }\n\n    if (\n      method.kind === \"set\" &&\n      method.params[method.params.length - 1].type === \"RestElement\"\n    ) {\n      this.raise(start, Errors.BadSetterRestParameter);\n    }\n  }\n\n  parseObjectMethod(\n    prop: N.ObjectMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    containsEsc: boolean,\n  ): ?N.ObjectMethod {\n    if (isAsync || isGenerator || this.match(tt.parenL)) {\n      if (isPattern) this.unexpected();\n      prop.kind = \"method\";\n      prop.method = true;\n      return this.parseMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n    }\n\n    if (!containsEsc && this.isGetterOrSetterMethod(prop, isPattern)) {\n      if (isGenerator || isAsync) this.unexpected();\n      prop.kind = prop.key.name;\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n      this.parseMethod(\n        prop,\n        /* isGenerator */ false,\n        /* isAsync */ false,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n      this.checkGetterSetterParams(prop);\n      return prop;\n    }\n  }\n\n  parseObjectProperty(\n    prop: N.ObjectProperty,\n    startPos: ?number,\n    startLoc: ?Position,\n    isPattern: boolean,\n    refExpressionErrors: ?ExpressionErrors,\n  ): ?N.ObjectProperty {\n    prop.shorthand = false;\n\n    if (this.eat(tt.colon)) {\n      prop.value = isPattern\n        ? this.parseMaybeDefault(this.state.start, this.state.startLoc)\n        : this.parseMaybeAssign(false, refExpressionErrors);\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n\n    if (!prop.computed && prop.key.type === \"Identifier\") {\n      this.checkReservedWord(prop.key.name, prop.key.start, true, true);\n\n      if (isPattern) {\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else if (this.match(tt.eq) && refExpressionErrors) {\n        if (refExpressionErrors.shorthandAssign === -1) {\n          refExpressionErrors.shorthandAssign = this.state.start;\n        }\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else {\n        prop.value = prop.key.__clone();\n      }\n      prop.shorthand = true;\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n  }\n\n  parseObjPropValue(\n    prop: any,\n    startPos: ?number,\n    startLoc: ?Position,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    containsEsc: boolean,\n  ): void {\n    const node =\n      this.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ) ||\n      this.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      );\n\n    if (!node) this.unexpected();\n\n    // $FlowFixMe\n    return node;\n  }\n\n  parsePropertyName(\n    prop: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n    isPrivateNameAllowed: boolean,\n  ): N.Expression | N.Identifier {\n    if (this.eat(tt.bracketL)) {\n      (prop: $FlowSubtype<N.ObjectOrClassMember>).computed = true;\n      prop.key = this.parseMaybeAssign();\n      this.expect(tt.bracketR);\n    } else {\n      const oldInPropertyName = this.state.inPropertyName;\n      this.state.inPropertyName = true;\n      // We check if it's valid for it to be a private name when we push it.\n      (prop: $FlowFixMe).key =\n        this.match(tt.num) || this.match(tt.string) || this.match(tt.bigint)\n          ? this.parseExprAtom()\n          : this.parseMaybePrivateName(isPrivateNameAllowed);\n\n      if (prop.key.type !== \"PrivateName\") {\n        // ClassPrivateProperty is never computed, so we don't assign in that case.\n        prop.computed = false;\n      }\n\n      this.state.inPropertyName = oldInPropertyName;\n    }\n\n    return prop.key;\n  }\n\n  // Initialize empty function node.\n\n  initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: ?boolean): void {\n    node.id = null;\n    node.generator = false;\n    node.async = !!isAsync;\n  }\n\n  // Parse object or class method.\n\n  parseMethod<T: N.MethodLike>(\n    node: T,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowDirectSuper: boolean,\n    type: string,\n    inClassScope: boolean = false,\n  ): T {\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n\n    this.initFunction(node, isAsync);\n    node.generator = !!isGenerator;\n    const allowModifiers = isConstructor; // For TypeScript parameter properties\n    this.scope.enter(\n      SCOPE_FUNCTION |\n        SCOPE_SUPER |\n        (inClassScope ? SCOPE_CLASS : 0) |\n        (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0),\n    );\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n    this.parseFunctionParams((node: any), allowModifiers);\n    this.parseFunctionBodyAndFinish(node, type, true);\n    this.prodParam.exit();\n    this.scope.exit();\n\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  // Parse arrow function expression.\n  // If the parameters are provided, they will be converted to an\n  // assignable list.\n  parseArrowExpression(\n    node: N.ArrowFunctionExpression,\n    params: ?(N.Expression[]),\n    isAsync: boolean,\n    trailingCommaPos: ?number,\n  ): N.ArrowFunctionExpression {\n    this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n    this.prodParam.enter(functionFlags(isAsync, false));\n    this.initFunction(node, isAsync);\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n\n    if (params) {\n      this.state.maybeInArrowParameters = true;\n      this.setArrowFunctionParameters(node, params, trailingCommaPos);\n    }\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.parseFunctionBody(node, true);\n\n    this.prodParam.exit();\n    this.scope.exit();\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return this.finishNode(node, \"ArrowFunctionExpression\");\n  }\n\n  setArrowFunctionParameters(\n    node: N.ArrowFunctionExpression,\n    params: N.Expression[],\n    trailingCommaPos: ?number,\n  ): void {\n    node.params = this.toAssignableList(params, trailingCommaPos);\n  }\n\n  parseFunctionBodyAndFinish(\n    node: N.BodilessFunctionOrMethodBase,\n    type: string,\n    isMethod?: boolean = false,\n  ): void {\n    // $FlowIgnore (node is not bodiless if we get here)\n    this.parseFunctionBody(node, false, isMethod);\n    this.finishNode(node, type);\n  }\n\n  // Parse function body and check parameters.\n  parseFunctionBody(\n    node: N.Function,\n    allowExpression: ?boolean,\n    isMethod?: boolean = false,\n  ): void {\n    const isExpression = allowExpression && !this.match(tt.braceL);\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = false;\n\n    if (isExpression) {\n      node.body = this.parseMaybeAssign();\n      this.checkParams(node, false, allowExpression, false);\n    } else {\n      const oldStrict = this.state.strict;\n      // Start a new scope with regard to labels\n      // flag (restore them to their old value afterwards).\n      const oldLabels = this.state.labels;\n      this.state.labels = [];\n\n      // FunctionBody[Yield, Await]:\n      //   StatementList[?Yield, ?Await, +Return] opt\n      this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN);\n      node.body = this.parseBlock(\n        true,\n        false,\n        // Strict mode function checks after we parse the statements in the function body.\n        (hasStrictModeDirective: boolean) => {\n          const nonSimple = !this.isSimpleParamList(node.params);\n\n          if (hasStrictModeDirective && nonSimple) {\n            // This logic is here to align the error location with the ESTree plugin.\n            const errorPos =\n              // $FlowIgnore\n              (node.kind === \"method\" || node.kind === \"constructor\") &&\n              // $FlowIgnore\n              !!node.key\n                ? node.key.end\n                : node.start;\n            this.raise(errorPos, Errors.IllegalLanguageModeDirective);\n          }\n\n          const strictModeChanged = !oldStrict && this.state.strict;\n\n          // Add the params to varDeclaredNames to ensure that an error is thrown\n          // if a let/const declaration in the function clashes with one of the params.\n          this.checkParams(\n            node,\n            !this.state.strict && !allowExpression && !isMethod && !nonSimple,\n            allowExpression,\n            strictModeChanged,\n          );\n\n          // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n          if (this.state.strict && node.id) {\n            this.checkLVal(\n              node.id,\n              BIND_OUTSIDE,\n              undefined,\n              \"function name\",\n              undefined,\n              strictModeChanged,\n            );\n          }\n        },\n      );\n      this.prodParam.exit();\n      this.state.labels = oldLabels;\n    }\n\n    this.state.inParameters = oldInParameters;\n  }\n\n  isSimpleParamList(\n    params: $ReadOnlyArray<N.Pattern | N.TSParameterProperty>,\n  ): boolean {\n    for (let i = 0, len = params.length; i < len; i++) {\n      if (params[i].type !== \"Identifier\") return false;\n    }\n    return true;\n  }\n\n  checkParams(\n    node: N.Function,\n    allowDuplicates: boolean,\n    // eslint-disable-next-line no-unused-vars\n    isArrowFunction: ?boolean,\n    strictModeChanged?: boolean = true,\n  ): void {\n    // $FlowIssue\n    const nameHash: {} = Object.create(null);\n    for (let i = 0; i < node.params.length; i++) {\n      this.checkLVal(\n        node.params[i],\n        BIND_VAR,\n        allowDuplicates ? null : nameHash,\n        \"function parameter list\",\n        undefined,\n        strictModeChanged,\n      );\n    }\n  }\n\n  // Parses a comma-separated list of expressions, and returns them as\n  // an array. `close` is the token type that ends the list, and\n  // `allowEmpty` can be turned on to allow subsequent commas with\n  // nothing in between them to be parsed as `null` (which is needed\n  // for array literals).\n\n  parseExprList(\n    close: TokenType,\n    allowEmpty?: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let first = true;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n    }\n    return elts;\n  }\n\n  parseExprListItem(\n    allowEmpty: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    refNeedsArrowPos: ?Pos,\n    allowPlaceholder: ?boolean,\n  ): ?N.Expression {\n    let elt;\n    if (allowEmpty && this.match(tt.comma)) {\n      elt = null;\n    } else if (this.match(tt.ellipsis)) {\n      const spreadNodeStartPos = this.state.start;\n      const spreadNodeStartLoc = this.state.startLoc;\n      elt = this.parseParenItem(\n        this.parseSpread(refExpressionErrors, refNeedsArrowPos),\n        spreadNodeStartPos,\n        spreadNodeStartLoc,\n      );\n    } else if (this.match(tt.question)) {\n      this.expectPlugin(\"partialApplication\");\n      if (!allowPlaceholder) {\n        this.raise(this.state.start, Errors.UnexpectedArgumentPlaceholder);\n      }\n      const node = this.startNode();\n      this.next();\n      elt = this.finishNode(node, \"ArgumentPlaceholder\");\n    } else {\n      elt = this.parseMaybeAssign(\n        false,\n        refExpressionErrors,\n        this.parseParenItem,\n        refNeedsArrowPos,\n      );\n    }\n    return elt;\n  }\n\n  // Parse the next token as an identifier. If `liberal` is true (used\n  // when parsing properties), it will also convert keywords into\n  // identifiers.\n  // This shouldn't be used to parse the keywords of meta properties, since they\n  // are not identifiers and cannot contain escape sequences.\n\n  parseIdentifier(liberal?: boolean): N.Identifier {\n    const node = this.startNode();\n    const name = this.parseIdentifierName(node.start, liberal);\n\n    return this.createIdentifier(node, name);\n  }\n\n  createIdentifier(node: N.Identifier, name: string): N.Identifier {\n    node.name = name;\n    node.loc.identifierName = name;\n\n    return this.finishNode(node, \"Identifier\");\n  }\n\n  parseIdentifierName(pos: number, liberal?: boolean): string {\n    let name: string;\n\n    if (this.match(tt.name)) {\n      name = this.state.value;\n    } else if (this.state.type.keyword) {\n      name = this.state.type.keyword;\n\n      // `class` and `function` keywords push new context into this.context.\n      // But there is no chance to pop the context if the keyword is consumed\n      // as an identifier such as a property name.\n      // If the previous token is a dot, this does not apply because the\n      // context-managing code already ignored the keyword\n      if (\n        (name === \"class\" || name === \"function\") &&\n        (this.state.lastTokEnd !== this.state.lastTokStart + 1 ||\n          this.input.charCodeAt(this.state.lastTokStart) !== charCodes.dot)\n      ) {\n        this.state.context.pop();\n      }\n    } else {\n      throw this.unexpected();\n    }\n\n    if (liberal) {\n      // If the current token is not used as a keyword, set its type to \"tt.name\".\n      // This will prevent this.next() from throwing about unexpected escapes.\n      this.state.type = tt.name;\n    } else {\n      this.checkReservedWord(\n        name,\n        this.state.start,\n        !!this.state.type.keyword,\n        false,\n      );\n    }\n\n    this.next();\n\n    return name;\n  }\n\n  checkReservedWord(\n    word: string,\n    startLoc: number,\n    checkKeywords: boolean,\n    isBinding: boolean,\n  ): void {\n    if (this.prodParam.hasYield && word === \"yield\") {\n      this.raise(startLoc, Errors.YieldBindingIdentifier);\n      return;\n    }\n\n    if (word === \"await\") {\n      if (this.prodParam.hasAwait) {\n        this.raise(startLoc, Errors.AwaitBindingIdentifier);\n        return;\n      }\n      if (\n        this.state.awaitPos === -1 &&\n        (this.state.maybeInAsyncArrowHead || this.isAwaitAllowed())\n      ) {\n        this.state.awaitPos = this.state.start;\n      }\n    }\n\n    if (\n      this.scope.inClass &&\n      !this.scope.inNonArrowFunction &&\n      word === \"arguments\"\n    ) {\n      this.raise(startLoc, Errors.ArgumentsDisallowedInInitializer);\n      return;\n    }\n    if (checkKeywords && isKeyword(word)) {\n      this.raise(startLoc, Errors.UnexpectedKeyword, word);\n      return;\n    }\n\n    const reservedTest = !this.state.strict\n      ? isReservedWord\n      : isBinding\n      ? isStrictBindReservedWord\n      : isStrictReservedWord;\n\n    if (reservedTest(word, this.inModule)) {\n      if (!this.prodParam.hasAwait && word === \"await\") {\n        this.raise(startLoc, Errors.AwaitNotInAsyncFunction);\n      } else {\n        this.raise(startLoc, Errors.UnexpectedReservedWord, word);\n      }\n    }\n  }\n\n  isAwaitAllowed(): boolean {\n    if (this.scope.inFunction) return this.prodParam.hasAwait;\n    if (this.options.allowAwaitOutsideFunction) return true;\n    if (this.hasPlugin(\"topLevelAwait\")) {\n      return this.inModule && this.prodParam.hasAwait;\n    }\n    return false;\n  }\n\n  // Parses await expression inside async function.\n\n  parseAwait(): N.AwaitExpression {\n    const node = this.startNode();\n\n    this.next();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.AwaitExpressionFormalParameter);\n    } else if (this.state.awaitPos === -1) {\n      this.state.awaitPos = node.start;\n    }\n    if (this.eat(tt.star)) {\n      this.raise(node.start, Errors.ObsoleteAwaitStar);\n    }\n\n    if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n      if (\n        this.hasPrecedingLineBreak() ||\n        // All the following expressions are ambiguous:\n        //   await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``\n        this.match(tt.plusMin) ||\n        this.match(tt.parenL) ||\n        this.match(tt.bracketL) ||\n        this.match(tt.backQuote) ||\n        // Sometimes the tokenizer generates tt.slash for regexps, and this is\n        // handler by parseExprAtom\n        this.match(tt.regexp) ||\n        this.match(tt.slash) ||\n        // This code could be parsed both as a modulo operator or as an intrinsic:\n        //   await %x(0)\n        (this.hasPlugin(\"v8intrinsic\") && this.match(tt.modulo))\n      ) {\n        this.ambiguousScriptDifferentAst = true;\n      } else {\n        this.sawUnambiguousESM = true;\n      }\n    }\n\n    if (!this.state.soloAwait) {\n      node.argument = this.parseMaybeUnary();\n    }\n\n    return this.finishNode(node, \"AwaitExpression\");\n  }\n\n  // Parses yield expression inside generator.\n\n  parseYield(noIn?: ?boolean): N.YieldExpression {\n    const node = this.startNode();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.YieldInParameter);\n    } else if (this.state.yieldPos === -1) {\n      this.state.yieldPos = node.start;\n    }\n\n    this.next();\n    if (\n      this.match(tt.semi) ||\n      (!this.match(tt.star) && !this.state.type.startsExpr) ||\n      this.hasPrecedingLineBreak()\n    ) {\n      node.delegate = false;\n      node.argument = null;\n    } else {\n      node.delegate = this.eat(tt.star);\n      node.argument = this.parseMaybeAssign(noIn);\n    }\n    return this.finishNode(node, \"YieldExpression\");\n  }\n\n  // Validates a pipeline (for any of the pipeline Babylon plugins) at the point\n  // of the infix operator `|>`.\n\n  checkPipelineAtInfixOperator(left: N.Expression, leftStartPos: number) {\n    if (this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\") {\n      if (left.type === \"SequenceExpression\") {\n        // Ensure that the pipeline head is not a comma-delimited\n        // sequence expression.\n        this.raise(leftStartPos, Errors.PipelineHeadSequenceExpression);\n      }\n    }\n  }\n\n  parseSmartPipelineBody(\n    childExpression: N.Expression,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const pipelineStyle = this.checkSmartPipelineBodyStyle(childExpression);\n\n    this.checkSmartPipelineBodyEarlyErrors(\n      childExpression,\n      pipelineStyle,\n      startPos,\n    );\n\n    return this.parseSmartPipelineBodyInStyle(\n      childExpression,\n      pipelineStyle,\n      startPos,\n      startLoc,\n    );\n  }\n\n  checkSmartPipelineBodyEarlyErrors(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n  ): void {\n    if (this.match(tt.arrow)) {\n      // If the following token is invalidly `=>`, then throw a human-friendly error\n      // instead of something like 'Unexpected token, expected \";\"'.\n      throw this.raise(this.state.start, Errors.PipelineBodyNoArrow);\n    } else if (\n      pipelineStyle === \"PipelineTopicExpression\" &&\n      childExpression.type === \"SequenceExpression\"\n    ) {\n      this.raise(startPos, Errors.PipelineBodySequenceExpression);\n    }\n  }\n\n  parseSmartPipelineBodyInStyle(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const bodyNode = this.startNodeAt(startPos, startLoc);\n    switch (pipelineStyle) {\n      case \"PipelineBareFunction\":\n        bodyNode.callee = childExpression;\n        break;\n      case \"PipelineBareConstructor\":\n        bodyNode.callee = childExpression.callee;\n        break;\n      case \"PipelineBareAwaitedFunction\":\n        bodyNode.callee = childExpression.argument;\n        break;\n      case \"PipelineTopicExpression\":\n        if (!this.topicReferenceWasUsedInCurrentTopicContext()) {\n          this.raise(startPos, Errors.PipelineTopicUnused);\n        }\n        bodyNode.expression = childExpression;\n        break;\n      default:\n        throw new Error(\n          `Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`,\n        );\n    }\n    return this.finishNode(bodyNode, pipelineStyle);\n  }\n\n  checkSmartPipelineBodyStyle(expression: N.Expression): N.PipelineStyle {\n    switch (expression.type) {\n      default:\n        return this.isSimpleReference(expression)\n          ? \"PipelineBareFunction\"\n          : \"PipelineTopicExpression\";\n    }\n  }\n\n  isSimpleReference(expression: N.Expression): boolean {\n    switch (expression.type) {\n      case \"MemberExpression\":\n        return (\n          !expression.computed && this.isSimpleReference(expression.object)\n        );\n      case \"Identifier\":\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  // Enable topic references from outer contexts within smart pipeline bodies.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicPermittingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Enable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 1,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  // Disable topic references from outer contexts within syntax constructs\n  // such as the bodies of iteration statements.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicForbiddingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Disable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 0,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  withSoloAwaitPermittingContext<T>(callback: () => T): T {\n    const outerContextSoloAwaitState = this.state.soloAwait;\n    this.state.soloAwait = true;\n\n    try {\n      return callback();\n    } finally {\n      this.state.soloAwait = outerContextSoloAwaitState;\n    }\n  }\n\n  // Register the use of a primary topic reference (`#`) within the current\n  // topic context.\n  registerTopicReference(): void {\n    this.state.topicContext.maxTopicIndex = 0;\n  }\n\n  primaryTopicReferenceIsAllowedInCurrentTopicContext(): boolean {\n    return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n  }\n\n  topicReferenceWasUsedInCurrentTopicContext(): boolean {\n    return (\n      this.state.topicContext.maxTopicIndex != null &&\n      this.state.topicContext.maxTopicIndex >= 0\n    );\n  }\n\n  parseFSharpPipelineBody(prec: number, noIn: ?boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    this.state.potentialArrowAt = this.state.start;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = true;\n\n    const ret = this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      prec,\n      noIn,\n    );\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return ret;\n  }\n}\n","// @flow\n\nimport * as N from \"../types\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport ExpressionParser from \"./expression\";\nimport { Errors } from \"./location\";\nimport {\n  isIdentifierChar,\n  isIdentifierStart,\n  keywordRelationalOperator,\n} from \"../util/identifier\";\nimport { lineBreak } from \"../util/whitespace\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_CLASS,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_CLASS,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  CLASS_ELEMENT_OTHER,\n  CLASS_ELEMENT_INSTANCE_GETTER,\n  CLASS_ELEMENT_INSTANCE_SETTER,\n  CLASS_ELEMENT_STATIC_GETTER,\n  CLASS_ELEMENT_STATIC_SETTER,\n  type BindingTypes,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { PARAM, functionFlags } from \"../util/production-parameter\";\n\nconst loopLabel = { kind: \"loop\" },\n  switchLabel = { kind: \"switch\" };\n\nconst FUNC_NO_FLAGS = 0b000,\n  FUNC_STATEMENT = 0b001,\n  FUNC_HANGING_STATEMENT = 0b010,\n  FUNC_NULLABLE_ID = 0b100;\n\nexport default class StatementParser extends ExpressionParser {\n  // ### Statement parsing\n\n  // Parse a program. Initializes the parser, reads any number of\n  // statements, and wraps them in a Program node.  Optionally takes a\n  // `program` argument.  If present, the statements will be appended\n  // to its body instead of creating a new node.\n\n  parseTopLevel(file: N.File, program: N.Program): N.File {\n    program.sourceType = this.options.sourceType;\n\n    program.interpreter = this.parseInterpreterDirective();\n\n    this.parseBlockBody(program, true, true, tt.eof);\n\n    if (\n      this.inModule &&\n      !this.options.allowUndeclaredExports &&\n      this.scope.undefinedExports.size > 0\n    ) {\n      for (const [name] of Array.from(this.scope.undefinedExports)) {\n        const pos = this.scope.undefinedExports.get(name);\n        // $FlowIssue\n        this.raise(pos, Errors.ModuleExportUndefined, name);\n      }\n    }\n\n    file.program = this.finishNode(program, \"Program\");\n    file.comments = this.state.comments;\n\n    if (this.options.tokens) file.tokens = this.tokens;\n\n    return this.finishNode(file, \"File\");\n  }\n\n  // TODO\n\n  stmtToDirective(stmt: N.Statement): N.Directive {\n    const expr = stmt.expression;\n\n    const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\n    const directive = this.startNodeAt(stmt.start, stmt.loc.start);\n\n    const raw = this.input.slice(expr.start, expr.end);\n    const val = (directiveLiteral.value = raw.slice(1, -1)); // remove quotes\n\n    this.addExtra(directiveLiteral, \"raw\", raw);\n    this.addExtra(directiveLiteral, \"rawValue\", val);\n\n    directive.value = this.finishNodeAt(\n      directiveLiteral,\n      \"DirectiveLiteral\",\n      expr.end,\n      expr.loc.end,\n    );\n\n    return this.finishNodeAt(directive, \"Directive\", stmt.end, stmt.loc.end);\n  }\n\n  parseInterpreterDirective(): N.InterpreterDirective | null {\n    if (!this.match(tt.interpreterDirective)) {\n      return null;\n    }\n\n    const node = this.startNode();\n    node.value = this.state.value;\n    this.next();\n    return this.finishNode(node, \"InterpreterDirective\");\n  }\n\n  isLet(context: ?string): boolean {\n    if (!this.isContextual(\"let\")) {\n      return false;\n    }\n    const next = this.nextTokenStart();\n    const nextCh = this.input.charCodeAt(next);\n    // For ambiguous cases, determine if a LexicalDeclaration (or only a\n    // Statement) is allowed here. If context is not empty then only a Statement\n    // is allowed. However, `let [` is an explicit negative lookahead for\n    // ExpressionStatement, so special-case it first.\n    if (nextCh === charCodes.leftSquareBracket) return true;\n    if (context) return false;\n\n    if (nextCh === charCodes.leftCurlyBrace) return true;\n\n    if (isIdentifierStart(nextCh)) {\n      let pos = next + 1;\n      while (isIdentifierChar(this.input.charCodeAt(pos))) {\n        ++pos;\n      }\n      const ident = this.input.slice(next, pos);\n      if (!keywordRelationalOperator.test(ident)) return true;\n    }\n    return false;\n  }\n\n  // Parse a single statement.\n  //\n  // If expecting a statement and finding a slash operator, parse a\n  // regular expression literal. This is to handle cases like\n  // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n  // does not help.\n\n  parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n    if (this.match(tt.at)) {\n      this.parseDecorators(true);\n    }\n    return this.parseStatementContent(context, topLevel);\n  }\n\n  parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n    let starttype = this.state.type;\n    const node = this.startNode();\n    let kind;\n\n    if (this.isLet(context)) {\n      starttype = tt._var;\n      kind = \"let\";\n    }\n\n    // Most types of statements are recognized by the keyword they\n    // start with. Many are trivial to parse, some require a bit of\n    // complexity.\n\n    switch (starttype) {\n      case tt._break:\n      case tt._continue:\n        // $FlowFixMe\n        return this.parseBreakContinueStatement(node, starttype.keyword);\n      case tt._debugger:\n        return this.parseDebuggerStatement(node);\n      case tt._do:\n        return this.parseDoStatement(node);\n      case tt._for:\n        return this.parseForStatement(node);\n      case tt._function:\n        if (this.lookaheadCharCode() === charCodes.dot) break;\n        if (context) {\n          if (this.state.strict) {\n            this.raise(this.state.start, Errors.StrictFunction);\n          } else if (context !== \"if\" && context !== \"label\") {\n            this.raise(this.state.start, Errors.SloppyFunction);\n          }\n        }\n        return this.parseFunctionStatement(node, false, !context);\n\n      case tt._class:\n        if (context) this.unexpected();\n        return this.parseClass(node, true);\n\n      case tt._if:\n        return this.parseIfStatement(node);\n      case tt._return:\n        return this.parseReturnStatement(node);\n      case tt._switch:\n        return this.parseSwitchStatement(node);\n      case tt._throw:\n        return this.parseThrowStatement(node);\n      case tt._try:\n        return this.parseTryStatement(node);\n\n      case tt._const:\n      case tt._var:\n        kind = kind || this.state.value;\n        if (context && kind !== \"var\") {\n          this.raise(this.state.start, Errors.UnexpectedLexicalDeclaration);\n        }\n        return this.parseVarStatement(node, kind);\n\n      case tt._while:\n        return this.parseWhileStatement(node);\n      case tt._with:\n        return this.parseWithStatement(node);\n      case tt.braceL:\n        return this.parseBlock();\n      case tt.semi:\n        return this.parseEmptyStatement(node);\n      case tt._export:\n      case tt._import: {\n        const nextTokenCharCode = this.lookaheadCharCode();\n        if (\n          nextTokenCharCode === charCodes.leftParenthesis ||\n          nextTokenCharCode === charCodes.dot\n        ) {\n          break;\n        }\n\n        if (!this.options.allowImportExportEverywhere && !topLevel) {\n          this.raise(this.state.start, Errors.UnexpectedImportExport);\n        }\n\n        this.next();\n\n        let result;\n        if (starttype === tt._import) {\n          result = this.parseImport(node);\n\n          if (\n            result.type === \"ImportDeclaration\" &&\n            (!result.importKind || result.importKind === \"value\")\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        } else {\n          result = this.parseExport(node);\n\n          if (\n            (result.type === \"ExportNamedDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            (result.type === \"ExportAllDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            result.type === \"ExportDefaultDeclaration\"\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        }\n\n        this.assertModuleNodeAllowed(node);\n\n        return result;\n      }\n\n      default: {\n        if (this.isAsyncFunction()) {\n          if (context) {\n            this.raise(\n              this.state.start,\n              Errors.AsyncFunctionInSingleStatementContext,\n            );\n          }\n          this.next();\n          return this.parseFunctionStatement(node, true, !context);\n        }\n      }\n    }\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n    const maybeName = this.state.value;\n    const expr = this.parseExpression();\n\n    if (\n      starttype === tt.name &&\n      expr.type === \"Identifier\" &&\n      this.eat(tt.colon)\n    ) {\n      return this.parseLabeledStatement(node, maybeName, expr, context);\n    } else {\n      return this.parseExpressionStatement(node, expr);\n    }\n  }\n\n  assertModuleNodeAllowed(node: N.Node): void {\n    if (!this.options.allowImportExportEverywhere && !this.inModule) {\n      this.raiseWithData(\n        node.start,\n        {\n          code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\",\n        },\n        Errors.ImportOutsideModule,\n      );\n    }\n  }\n\n  takeDecorators(node: N.HasDecorators): void {\n    const decorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (decorators.length) {\n      node.decorators = decorators;\n      this.resetStartLocationFromNode(node, decorators[0]);\n      this.state.decoratorStack[this.state.decoratorStack.length - 1] = [];\n    }\n  }\n\n  canHaveLeadingDecorator(): boolean {\n    return this.match(tt._class);\n  }\n\n  parseDecorators(allowExport?: boolean): void {\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    while (this.match(tt.at)) {\n      const decorator = this.parseDecorator();\n      currentContextDecorators.push(decorator);\n    }\n\n    if (this.match(tt._export)) {\n      if (!allowExport) {\n        this.unexpected();\n      }\n\n      if (\n        this.hasPlugin(\"decorators\") &&\n        !this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorExportClass);\n      }\n    } else if (!this.canHaveLeadingDecorator()) {\n      throw this.raise(this.state.start, Errors.UnexpectedLeadingDecorator);\n    }\n  }\n\n  parseDecorator(): N.Decorator {\n    this.expectOnePlugin([\"decorators-legacy\", \"decorators\"]);\n\n    const node = this.startNode();\n    this.next();\n\n    if (this.hasPlugin(\"decorators\")) {\n      // Every time a decorator class expression is evaluated, a new empty array is pushed onto the stack\n      // So that the decorators of any nested class expressions will be dealt with separately\n      this.state.decoratorStack.push([]);\n\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let expr: N.Expression;\n\n      if (this.eat(tt.parenL)) {\n        expr = this.parseExpression();\n        this.expect(tt.parenR);\n      } else {\n        expr = this.parseIdentifier(false);\n\n        while (this.eat(tt.dot)) {\n          const node = this.startNodeAt(startPos, startLoc);\n          node.object = expr;\n          node.property = this.parseIdentifier(true);\n          node.computed = false;\n          expr = this.finishNode(node, \"MemberExpression\");\n        }\n      }\n\n      node.expression = this.parseMaybeDecoratorArguments(expr);\n      this.state.decoratorStack.pop();\n    } else {\n      node.expression = this.parseExprSubscripts();\n    }\n    return this.finishNode(node, \"Decorator\");\n  }\n\n  parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n    if (this.eat(tt.parenL)) {\n      const node = this.startNodeAtNode(expr);\n      node.callee = expr;\n      node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      this.toReferencedList(node.arguments);\n      return this.finishNode(node, \"CallExpression\");\n    }\n\n    return expr;\n  }\n\n  parseBreakContinueStatement(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ): N.BreakStatement | N.ContinueStatement {\n    const isBreak = keyword === \"break\";\n    this.next();\n\n    if (this.isLineTerminator()) {\n      node.label = null;\n    } else {\n      node.label = this.parseIdentifier();\n      this.semicolon();\n    }\n\n    this.verifyBreakContinue(node, keyword);\n\n    return this.finishNode(\n      node,\n      isBreak ? \"BreakStatement\" : \"ContinueStatement\",\n    );\n  }\n\n  verifyBreakContinue(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ) {\n    const isBreak = keyword === \"break\";\n    let i;\n    for (i = 0; i < this.state.labels.length; ++i) {\n      const lab = this.state.labels[i];\n      if (node.label == null || lab.name === node.label.name) {\n        if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break;\n        if (node.label && isBreak) break;\n      }\n    }\n    if (i === this.state.labels.length) {\n      this.raise(node.start, Errors.IllegalBreakContinue, keyword);\n    }\n  }\n\n  parseDebuggerStatement(node: N.DebuggerStatement): N.DebuggerStatement {\n    this.next();\n    this.semicolon();\n    return this.finishNode(node, \"DebuggerStatement\");\n  }\n\n  parseHeaderExpression(): N.Expression {\n    this.expect(tt.parenL);\n    const val = this.parseExpression();\n    this.expect(tt.parenR);\n    return val;\n  }\n\n  parseDoStatement(node: N.DoWhileStatement): N.DoWhileStatement {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body's body.\n        this.parseStatement(\"do\"),\n      );\n\n    this.state.labels.pop();\n\n    this.expect(tt._while);\n    node.test = this.parseHeaderExpression();\n    this.eat(tt.semi);\n    return this.finishNode(node, \"DoWhileStatement\");\n  }\n\n  // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n  // loop is non-trivial. Basically, we have to parse the init `var`\n  // statement or expression, disallowing the `in` operator (see\n  // the second parameter to `parseExpression`), and then check\n  // whether the next token is `in` or `of`. When there is no init\n  // part (semicolon immediately after the opening parenthesis), it\n  // is a regular `for` loop.\n\n  parseForStatement(node: N.Node): N.ForLike {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    let awaitAt = -1;\n    if (this.isAwaitAllowed() && this.eatContextual(\"await\")) {\n      awaitAt = this.state.lastTokStart;\n    }\n    this.scope.enter(SCOPE_OTHER);\n    this.expect(tt.parenL);\n\n    if (this.match(tt.semi)) {\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, null);\n    }\n\n    const isLet = this.isLet();\n    if (this.match(tt._var) || this.match(tt._const) || isLet) {\n      const init = this.startNode();\n      const kind = isLet ? \"let\" : this.state.value;\n      this.next();\n      this.parseVar(init, true, kind);\n      this.finishNode(init, \"VariableDeclaration\");\n\n      if (\n        (this.match(tt._in) || this.isContextual(\"of\")) &&\n        init.declarations.length === 1\n      ) {\n        return this.parseForIn(node, init, awaitAt);\n      }\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, init);\n    }\n\n    const refExpressionErrors = new ExpressionErrors();\n    const init = this.parseExpression(true, refExpressionErrors);\n    if (this.match(tt._in) || this.isContextual(\"of\")) {\n      this.toAssignable(init);\n      const description = this.isContextual(\"of\")\n        ? \"for-of statement\"\n        : \"for-in statement\";\n      this.checkLVal(init, undefined, undefined, description);\n      return this.parseForIn(node, init, awaitAt);\n    } else {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n    if (awaitAt > -1) {\n      this.unexpected(awaitAt);\n    }\n    return this.parseFor(node, init);\n  }\n\n  parseFunctionStatement(\n    node: N.FunctionDeclaration,\n    isAsync?: boolean,\n    declarationPosition?: boolean,\n  ): N.FunctionDeclaration {\n    this.next();\n    return this.parseFunction(\n      node,\n      FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT),\n      isAsync,\n    );\n  }\n\n  parseIfStatement(node: N.IfStatement): N.IfStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    node.consequent = this.parseStatement(\"if\");\n    node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null;\n    return this.finishNode(node, \"IfStatement\");\n  }\n\n  parseReturnStatement(node: N.ReturnStatement): N.ReturnStatement {\n    if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n      this.raise(this.state.start, Errors.IllegalReturn);\n    }\n\n    this.next();\n\n    // In `return` (and `break`/`continue`), the keywords with\n    // optional arguments, we eagerly look for a semicolon or the\n    // possibility to insert one.\n\n    if (this.isLineTerminator()) {\n      node.argument = null;\n    } else {\n      node.argument = this.parseExpression();\n      this.semicolon();\n    }\n\n    return this.finishNode(node, \"ReturnStatement\");\n  }\n\n  parseSwitchStatement(node: N.SwitchStatement): N.SwitchStatement {\n    this.next();\n    node.discriminant = this.parseHeaderExpression();\n    const cases = (node.cases = []);\n    this.expect(tt.braceL);\n    this.state.labels.push(switchLabel);\n    this.scope.enter(SCOPE_OTHER);\n\n    // Statements under must be grouped (by label) in SwitchCase\n    // nodes. `cur` is used to keep the node that we are currently\n    // adding statements to.\n\n    let cur;\n    for (let sawDefault; !this.match(tt.braceR); ) {\n      if (this.match(tt._case) || this.match(tt._default)) {\n        const isCase = this.match(tt._case);\n        if (cur) this.finishNode(cur, \"SwitchCase\");\n        cases.push((cur = this.startNode()));\n        cur.consequent = [];\n        this.next();\n        if (isCase) {\n          cur.test = this.parseExpression();\n        } else {\n          if (sawDefault) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.MultipleDefaultsInSwitch,\n            );\n          }\n          sawDefault = true;\n          cur.test = null;\n        }\n        this.expect(tt.colon);\n      } else {\n        if (cur) {\n          cur.consequent.push(this.parseStatement(null));\n        } else {\n          this.unexpected();\n        }\n      }\n    }\n    this.scope.exit();\n    if (cur) this.finishNode(cur, \"SwitchCase\");\n    this.next(); // Closing brace\n    this.state.labels.pop();\n    return this.finishNode(node, \"SwitchStatement\");\n  }\n\n  parseThrowStatement(node: N.ThrowStatement): N.ThrowStatement {\n    this.next();\n    if (\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.NewlineAfterThrow);\n    }\n    node.argument = this.parseExpression();\n    this.semicolon();\n    return this.finishNode(node, \"ThrowStatement\");\n  }\n\n  parseTryStatement(node: N.TryStatement): N.TryStatement {\n    this.next();\n\n    node.block = this.parseBlock();\n    node.handler = null;\n\n    if (this.match(tt._catch)) {\n      const clause = this.startNode();\n      this.next();\n      if (this.match(tt.parenL)) {\n        this.expect(tt.parenL);\n        clause.param = this.parseBindingAtom();\n        const simple = clause.param.type === \"Identifier\";\n        this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0);\n        this.checkLVal(clause.param, BIND_LEXICAL, null, \"catch clause\");\n        this.expect(tt.parenR);\n      } else {\n        clause.param = null;\n        this.scope.enter(SCOPE_OTHER);\n      }\n\n      clause.body =\n        // For the smartPipelines plugin: Disable topic references from outer\n        // contexts within the function body. They are permitted in function\n        // default-parameter expressions, which are part of the outer context,\n        // outside of the function body.\n        this.withTopicForbiddingContext(() =>\n          // Parse the catch clause's body.\n          this.parseBlock(false, false),\n        );\n      this.scope.exit();\n\n      node.handler = this.finishNode(clause, \"CatchClause\");\n    }\n\n    node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null;\n\n    if (!node.handler && !node.finalizer) {\n      this.raise(node.start, Errors.NoCatchOrFinally);\n    }\n\n    return this.finishNode(node, \"TryStatement\");\n  }\n\n  parseVarStatement(\n    node: N.VariableDeclaration,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    this.next();\n    this.parseVar(node, false, kind);\n    this.semicolon();\n    return this.finishNode(node, \"VariableDeclaration\");\n  }\n\n  parseWhileStatement(node: N.WhileStatement): N.WhileStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"while\"),\n      );\n\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"WhileStatement\");\n  }\n\n  parseWithStatement(node: N.WithStatement): N.WithStatement {\n    if (this.state.strict) {\n      this.raise(this.state.start, Errors.StrictWith);\n    }\n    this.next();\n    node.object = this.parseHeaderExpression();\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the function body.\n      // They are permitted in function default-parameter expressions, which are\n      // part of the outer context, outside of the function body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the statement body.\n        this.parseStatement(\"with\"),\n      );\n\n    return this.finishNode(node, \"WithStatement\");\n  }\n\n  parseEmptyStatement(node: N.EmptyStatement): N.EmptyStatement {\n    this.next();\n    return this.finishNode(node, \"EmptyStatement\");\n  }\n\n  parseLabeledStatement(\n    node: N.LabeledStatement,\n    maybeName: string,\n    expr: N.Identifier,\n    context: ?string,\n  ): N.LabeledStatement {\n    for (const label of this.state.labels) {\n      if (label.name === maybeName) {\n        this.raise(expr.start, Errors.LabelRedeclaration, maybeName);\n      }\n    }\n\n    const kind = this.state.type.isLoop\n      ? \"loop\"\n      : this.match(tt._switch)\n      ? \"switch\"\n      : null;\n    for (let i = this.state.labels.length - 1; i >= 0; i--) {\n      const label = this.state.labels[i];\n      if (label.statementStart === node.start) {\n        label.statementStart = this.state.start;\n        label.kind = kind;\n      } else {\n        break;\n      }\n    }\n\n    this.state.labels.push({\n      name: maybeName,\n      kind: kind,\n      statementStart: this.state.start,\n    });\n    node.body = this.parseStatement(\n      context\n        ? context.indexOf(\"label\") === -1\n          ? context + \"label\"\n          : context\n        : \"label\",\n    );\n\n    this.state.labels.pop();\n    node.label = expr;\n    return this.finishNode(node, \"LabeledStatement\");\n  }\n\n  parseExpressionStatement(\n    node: N.ExpressionStatement,\n    expr: N.Expression,\n  ): N.Statement {\n    node.expression = expr;\n    this.semicolon();\n    return this.finishNode(node, \"ExpressionStatement\");\n  }\n\n  // Parse a semicolon-enclosed block of statements, handling `\"use\n  // strict\"` declarations when `allowStrict` is true (used for\n  // function bodies).\n\n  parseBlock(\n    allowDirectives?: boolean = false,\n    createNewLexicalScope?: boolean = true,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): N.BlockStatement {\n    const node = this.startNode();\n    this.expect(tt.braceL);\n    if (createNewLexicalScope) {\n      this.scope.enter(SCOPE_OTHER);\n    }\n    this.parseBlockBody(\n      node,\n      allowDirectives,\n      false,\n      tt.braceR,\n      afterBlockParse,\n    );\n    if (createNewLexicalScope) {\n      this.scope.exit();\n    }\n    return this.finishNode(node, \"BlockStatement\");\n  }\n\n  isValidDirective(stmt: N.Statement): boolean {\n    return (\n      stmt.type === \"ExpressionStatement\" &&\n      stmt.expression.type === \"StringLiteral\" &&\n      !stmt.expression.extra.parenthesized\n    );\n  }\n\n  parseBlockBody(\n    node: N.BlockStatementLike,\n    allowDirectives: ?boolean,\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const body = (node.body = []);\n    const directives = (node.directives = []);\n    this.parseBlockOrModuleBlockBody(\n      body,\n      allowDirectives ? directives : undefined,\n      topLevel,\n      end,\n      afterBlockParse,\n    );\n  }\n\n  // Undefined directives means that directives are not allowed.\n  parseBlockOrModuleBlockBody(\n    body: N.Statement[],\n    directives: ?(N.Directive[]),\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const octalPositions = [];\n    const oldStrict = this.state.strict;\n    let hasStrictModeDirective = false;\n    let parsedNonDirective = false;\n\n    while (!this.match(end)) {\n      // Track octal literals that occur before a \"use strict\" directive.\n      if (!parsedNonDirective && this.state.octalPositions.length) {\n        octalPositions.push(...this.state.octalPositions);\n      }\n\n      const stmt = this.parseStatement(null, topLevel);\n\n      if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {\n        const directive = this.stmtToDirective(stmt);\n        directives.push(directive);\n\n        if (!hasStrictModeDirective && directive.value.value === \"use strict\") {\n          hasStrictModeDirective = true;\n          this.setStrict(true);\n        }\n\n        continue;\n      }\n\n      parsedNonDirective = true;\n      body.push(stmt);\n    }\n\n    // Throw an error for any octal literals found before a\n    // \"use strict\" directive. Strict mode will be set at parse\n    // time for any literals that occur after the directive.\n    if (this.state.strict && octalPositions.length) {\n      for (const pos of octalPositions) {\n        this.raise(pos, Errors.StrictOctalLiteral);\n      }\n    }\n\n    if (afterBlockParse) {\n      afterBlockParse.call(this, hasStrictModeDirective);\n    }\n\n    if (!oldStrict) {\n      this.setStrict(false);\n    }\n\n    this.next();\n  }\n\n  // Parse a regular `for` loop. The disambiguation code in\n  // `parseStatement` will already have parsed the init statement or\n  // expression.\n\n  parseFor(\n    node: N.ForStatement,\n    init: ?(N.VariableDeclaration | N.Expression),\n  ): N.ForStatement {\n    node.init = init;\n    this.expect(tt.semi);\n    node.test = this.match(tt.semi) ? null : this.parseExpression();\n    this.expect(tt.semi);\n    node.update = this.match(tt.parenR) ? null : this.parseExpression();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"ForStatement\");\n  }\n\n  // Parse a `for`/`in` and `for`/`of` loop, which are almost\n  // same from parser's perspective.\n\n  parseForIn(\n    node: N.ForInOf,\n    init: N.VariableDeclaration | N.AssignmentPattern,\n    awaitAt: number,\n  ): N.ForInOf {\n    const isForIn = this.match(tt._in);\n    this.next();\n\n    if (isForIn) {\n      if (awaitAt > -1) this.unexpected(awaitAt);\n    } else {\n      node.await = awaitAt > -1;\n    }\n\n    if (\n      init.type === \"VariableDeclaration\" &&\n      init.declarations[0].init != null &&\n      (!isForIn ||\n        this.state.strict ||\n        init.kind !== \"var\" ||\n        init.declarations[0].id.type !== \"Identifier\")\n    ) {\n      this.raise(\n        init.start,\n        Errors.ForInOfLoopInitializer,\n        isForIn ? \"for-in\" : \"for-of\",\n      );\n    } else if (init.type === \"AssignmentPattern\") {\n      this.raise(init.start, Errors.InvalidLhs, \"for-loop\");\n    }\n\n    node.left = init;\n    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n  }\n\n  // Parse a list of variable declarations.\n\n  parseVar(\n    node: N.VariableDeclaration,\n    isFor: boolean,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    const declarations = (node.declarations = []);\n    const isTypescript = this.hasPlugin(\"typescript\");\n    node.kind = kind;\n    for (;;) {\n      const decl = this.startNode();\n      this.parseVarId(decl, kind);\n      if (this.eat(tt.eq)) {\n        decl.init = this.parseMaybeAssign(isFor);\n      } else {\n        if (\n          kind === \"const\" &&\n          !(this.match(tt._in) || this.isContextual(\"of\"))\n        ) {\n          // `const` with no initializer is allowed in TypeScript.\n          // It could be a declaration like `const x: number;`.\n          if (!isTypescript) {\n            this.unexpected();\n          }\n        } else if (\n          decl.id.type !== \"Identifier\" &&\n          !(isFor && (this.match(tt._in) || this.isContextual(\"of\")))\n        ) {\n          this.raise(\n            this.state.lastTokEnd,\n            Errors.DeclarationMissingInitializer,\n            \"Complex binding patterns\",\n          );\n        }\n        decl.init = null;\n      }\n      declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n      if (!this.eat(tt.comma)) break;\n    }\n    return node;\n  }\n\n  parseVarId(decl: N.VariableDeclarator, kind: \"var\" | \"let\" | \"const\"): void {\n    decl.id = this.parseBindingAtom();\n    this.checkLVal(\n      decl.id,\n      kind === \"var\" ? BIND_VAR : BIND_LEXICAL,\n      undefined,\n      \"variable declaration\",\n      kind !== \"var\",\n    );\n  }\n\n  // Parse a function declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseFunction<T: N.NormalFunction>(\n    node: T,\n    statement?: number = FUNC_NO_FLAGS,\n    isAsync?: boolean = false,\n  ): T {\n    const isStatement = statement & FUNC_STATEMENT;\n    const isHangingStatement = statement & FUNC_HANGING_STATEMENT;\n    const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID);\n\n    this.initFunction(node, isAsync);\n\n    if (this.match(tt.star) && isHangingStatement) {\n      this.raise(this.state.start, Errors.GeneratorInSingleStatementContext);\n    }\n    node.generator = this.eat(tt.star);\n\n    if (isStatement) {\n      node.id = this.parseFunctionId(requireId);\n    }\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.scope.enter(SCOPE_FUNCTION);\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n\n    if (!isStatement) {\n      node.id = this.parseFunctionId();\n    }\n\n    this.parseFunctionParams(node);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the function body. They are permitted in test\n    // expressions, outside of the function body.\n    this.withTopicForbiddingContext(() => {\n      // Parse the function body.\n      this.parseFunctionBodyAndFinish(\n        node,\n        isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\",\n      );\n    });\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    if (isStatement && !isHangingStatement) {\n      // We need to register this _after_ parsing the function body\n      // because of TypeScript body-less function declarations,\n      // which shouldn't be added to the scope.\n      this.registerFunctionStatementId(node);\n    }\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  parseFunctionId(requireId?: boolean): ?N.Identifier {\n    return requireId || this.match(tt.name) ? this.parseIdentifier() : null;\n  }\n\n  parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = true;\n\n    this.expect(tt.parenL);\n    node.params = this.parseBindingList(\n      tt.parenR,\n      charCodes.rightParenthesis,\n      /* allowEmpty */ false,\n      allowModifiers,\n    );\n\n    this.state.inParameters = oldInParameters;\n    this.checkYieldAwaitInDefaultParams();\n  }\n\n  registerFunctionStatementId(node: N.Function): void {\n    if (!node.id) return;\n\n    // If it is a regular function declaration in sloppy mode, then it is\n    // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n    // mode depends on properties of the current scope (see\n    // treatFunctionsAsVar).\n    this.scope.declareName(\n      node.id.name,\n      this.state.strict || node.generator || node.async\n        ? this.scope.treatFunctionsAsVar\n          ? BIND_VAR\n          : BIND_LEXICAL\n        : BIND_FUNCTION,\n      node.id.start,\n    );\n  }\n\n  // Parse a class declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseClass<T: N.Class>(\n    node: T,\n    isStatement: /* T === ClassDeclaration */ boolean,\n    optionalId?: boolean,\n  ): T {\n    this.next();\n    this.takeDecorators(node);\n\n    // A class definition is always strict mode code.\n    const oldStrict = this.state.strict;\n    this.state.strict = true;\n\n    this.parseClassId(node, isStatement, optionalId);\n    this.parseClassSuper(node);\n    node.body = this.parseClassBody(!!node.superClass, oldStrict);\n\n    this.state.strict = oldStrict;\n\n    return this.finishNode(\n      node,\n      isStatement ? \"ClassDeclaration\" : \"ClassExpression\",\n    );\n  }\n\n  isClassProperty(): boolean {\n    return this.match(tt.eq) || this.match(tt.semi) || this.match(tt.braceR);\n  }\n\n  isClassMethod(): boolean {\n    return this.match(tt.parenL);\n  }\n\n  isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n    return (\n      !method.computed &&\n      !method.static &&\n      (method.key.name === \"constructor\" || // Identifier\n        method.key.value === \"constructor\") // String literal\n    );\n  }\n\n  parseClassBody(\n    constructorAllowsSuper: boolean,\n    oldStrict?: boolean,\n  ): N.ClassBody {\n    this.classScope.enter();\n\n    const state = { hadConstructor: false };\n    let decorators: N.Decorator[] = [];\n    const classBody: N.ClassBody = this.startNode();\n    classBody.body = [];\n\n    this.expect(tt.braceL);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the class body. They are permitted in test expressions,\n    // outside of the class body.\n    this.withTopicForbiddingContext(() => {\n      while (!this.match(tt.braceR)) {\n        if (this.eat(tt.semi)) {\n          if (decorators.length > 0) {\n            throw this.raise(this.state.lastTokEnd, Errors.DecoratorSemicolon);\n          }\n          continue;\n        }\n\n        if (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n          continue;\n        }\n\n        const member = this.startNode();\n\n        // steal the decorators if there are any\n        if (decorators.length) {\n          member.decorators = decorators;\n          this.resetStartLocationFromNode(member, decorators[0]);\n          decorators = [];\n        }\n\n        this.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n        if (\n          member.kind === \"constructor\" &&\n          member.decorators &&\n          member.decorators.length > 0\n        ) {\n          this.raise(member.start, Errors.DecoratorConstructor);\n        }\n      }\n    });\n\n    if (!oldStrict) {\n      this.state.strict = false;\n    }\n\n    this.next();\n\n    if (decorators.length) {\n      throw this.raise(this.state.start, Errors.TrailingDecorator);\n    }\n\n    this.classScope.exit();\n\n    return this.finishNode(classBody, \"ClassBody\");\n  }\n\n  // returns true if the current identifier is a method/field name,\n  // false if it is a modifier\n  parseClassMemberFromModifier(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n  ): boolean {\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseIdentifier(true); // eats the modifier\n\n    if (this.isClassMethod()) {\n      const method: N.ClassMethod = (member: any);\n\n      // a method named like the modifier\n      method.kind = \"method\";\n      method.computed = false;\n      method.key = key;\n      method.static = false;\n      this.pushClassMethod(\n        classBody,\n        method,\n        false,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n      return true;\n    } else if (this.isClassProperty()) {\n      const prop: N.ClassProperty = (member: any);\n\n      // a property named like the modifier\n      prop.computed = false;\n      prop.key = key;\n      prop.static = false;\n      classBody.body.push(this.parseClassProperty(prop));\n      return true;\n    } else if (containsEsc) {\n      throw this.unexpected();\n    }\n\n    return false;\n  }\n\n  parseClassMember(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    constructorAllowsSuper: boolean,\n  ): void {\n    const isStatic = this.isContextual(\"static\");\n\n    if (isStatic && this.parseClassMemberFromModifier(classBody, member)) {\n      // a class element named 'static'\n      return;\n    }\n\n    this.parseClassMemberWithIsStatic(\n      classBody,\n      member,\n      state,\n      isStatic,\n      constructorAllowsSuper,\n    );\n  }\n\n  parseClassMemberWithIsStatic(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    isStatic: boolean,\n    constructorAllowsSuper: boolean,\n  ) {\n    const publicMethod: $FlowSubtype<N.ClassMethod> = member;\n    const privateMethod: $FlowSubtype<N.ClassPrivateMethod> = member;\n    const publicProp: $FlowSubtype<N.ClassMethod> = member;\n    const privateProp: $FlowSubtype<N.ClassPrivateMethod> = member;\n\n    const method: typeof publicMethod | typeof privateMethod = publicMethod;\n    const publicMember: typeof publicMethod | typeof publicProp = publicMethod;\n\n    member.static = isStatic;\n\n    if (this.eat(tt.star)) {\n      // a generator\n      method.kind = \"method\";\n      this.parseClassPropertyName(method);\n\n      if (method.key.type === \"PrivateName\") {\n        // Private generator method\n        this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n        return;\n      }\n\n      if (this.isNonstaticConstructor(publicMethod)) {\n        this.raise(publicMethod.key.start, Errors.ConstructorIsGenerator);\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        true,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n\n      return;\n    }\n\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseClassPropertyName(member);\n    const isPrivate = key.type === \"PrivateName\";\n    // Check the key is not a computed expression or string literal.\n    const isSimple = key.type === \"Identifier\";\n    const maybeQuestionTokenStart = this.state.start;\n\n    this.parsePostMemberNameModifiers(publicMember);\n\n    if (this.isClassMethod()) {\n      method.kind = \"method\";\n\n      if (isPrivate) {\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n        return;\n      }\n\n      // a normal method\n      const isConstructor = this.isNonstaticConstructor(publicMethod);\n      let allowsDirectSuper = false;\n      if (isConstructor) {\n        publicMethod.kind = \"constructor\";\n\n        // TypeScript allows multiple overloaded constructor declarations.\n        if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n          this.raise(key.start, Errors.DuplicateConstructor);\n        }\n        state.hadConstructor = true;\n        allowsDirectSuper = constructorAllowsSuper;\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        false,\n        false,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    } else if (this.isClassProperty()) {\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else if (\n      isSimple &&\n      key.name === \"async\" &&\n      !containsEsc &&\n      !this.isLineTerminator()\n    ) {\n      // an async method\n      const isGenerator = this.eat(tt.star);\n\n      if (publicMember.optional) {\n        this.unexpected(maybeQuestionTokenStart);\n      }\n\n      method.kind = \"method\";\n      // The so-called parsed name would have been \"async\": get the real name.\n      this.parseClassPropertyName(method);\n      this.parsePostMemberNameModifiers(publicMember);\n\n      if (method.key.type === \"PrivateName\") {\n        // private async method\n        this.pushClassPrivateMethod(\n          classBody,\n          privateMethod,\n          isGenerator,\n          true,\n        );\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAsync);\n        }\n\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          isGenerator,\n          true,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n    } else if (\n      isSimple &&\n      (key.name === \"get\" || key.name === \"set\") &&\n      !containsEsc &&\n      !(this.match(tt.star) && this.isLineTerminator())\n    ) {\n      // `get\\n*` is an uninitialized property named 'get' followed by a generator.\n      // a getter or setter\n      method.kind = key.name;\n      // The so-called parsed name would have been \"get/set\": get the real name.\n      this.parseClassPropertyName(publicMethod);\n\n      if (method.key.type === \"PrivateName\") {\n        // private getter/setter\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAccessor);\n        }\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          false,\n          false,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n\n      this.checkGetterSetterParams(publicMethod);\n    } else if (this.isLineTerminator()) {\n      // an uninitialized class property (due to ASI, since we don't otherwise recognize the next token)\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else {\n      this.unexpected();\n    }\n  }\n\n  parseClassPropertyName(member: N.ClassMember): N.Expression | N.Identifier {\n    const key = this.parsePropertyName(member, /* isPrivateNameAllowed */ true);\n\n    if (\n      !member.computed &&\n      member.static &&\n      ((key: $FlowSubtype<N.Identifier>).name === \"prototype\" ||\n        (key: $FlowSubtype<N.StringLiteral>).value === \"prototype\")\n    ) {\n      this.raise(key.start, Errors.StaticPrototype);\n    }\n\n    if (key.type === \"PrivateName\" && key.id.name === \"constructor\") {\n      this.raise(key.start, Errors.ConstructorClassPrivateField);\n    }\n\n    return key;\n  }\n\n  pushClassProperty(classBody: N.ClassBody, prop: N.ClassProperty) {\n    if (\n      !prop.computed &&\n      (prop.key.name === \"constructor\" || prop.key.value === \"constructor\")\n    ) {\n      // Non-computed field, which is either an identifier named \"constructor\"\n      // or a string literal named \"constructor\"\n      this.raise(prop.key.start, Errors.ConstructorClassField);\n    }\n\n    classBody.body.push(this.parseClassProperty(prop));\n  }\n\n  pushClassPrivateProperty(\n    classBody: N.ClassBody,\n    prop: N.ClassPrivateProperty,\n  ) {\n    this.expectPlugin(\"classPrivateProperties\", prop.key.start);\n\n    const node = this.parseClassPrivateProperty(prop);\n    classBody.body.push(node);\n\n    this.classScope.declarePrivateName(\n      node.key.id.name,\n      CLASS_ELEMENT_OTHER,\n      node.key.start,\n    );\n  }\n\n  pushClassMethod(\n    classBody: N.ClassBody,\n    method: N.ClassMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowsDirectSuper: boolean,\n  ): void {\n    classBody.body.push(\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      ),\n    );\n  }\n\n  pushClassPrivateMethod(\n    classBody: N.ClassBody,\n    method: N.ClassPrivateMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n  ): void {\n    this.expectPlugin(\"classPrivateMethods\", method.key.start);\n\n    const node = this.parseMethod(\n      method,\n      isGenerator,\n      isAsync,\n      /* isConstructor */ false,\n      false,\n      \"ClassPrivateMethod\",\n      true,\n    );\n    classBody.body.push(node);\n\n    const kind =\n      node.kind === \"get\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_GETTER\n          : CLASS_ELEMENT_INSTANCE_GETTER\n        : node.kind === \"set\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_SETTER\n          : CLASS_ELEMENT_INSTANCE_SETTER\n        : CLASS_ELEMENT_OTHER;\n    this.classScope.declarePrivateName(node.key.id.name, kind, node.key.start);\n  }\n\n  // Overridden in typescript.js\n  parsePostMemberNameModifiers(\n    // eslint-disable-next-line no-unused-vars\n    methodOrProp: N.ClassMethod | N.ClassProperty,\n  ): void {}\n\n  // Overridden in typescript.js\n  parseAccessModifier(): ?N.Accessibility {\n    return undefined;\n  }\n\n  parseClassPrivateProperty(\n    node: N.ClassPrivateProperty,\n  ): N.ClassPrivateProperty {\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    node.value = this.eat(tt.eq) ? this.parseMaybeAssign() : null;\n    this.semicolon();\n    this.prodParam.exit();\n\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassPrivateProperty\");\n  }\n\n  parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n    if (!node.typeAnnotation) {\n      this.expectPlugin(\"classProperties\");\n    }\n\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    if (this.match(tt.eq)) {\n      this.expectPlugin(\"classProperties\");\n      this.next();\n      node.value = this.parseMaybeAssign();\n    } else {\n      node.value = null;\n    }\n    this.semicolon();\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassProperty\");\n  }\n\n  parseClassId(\n    node: N.Class,\n    isStatement: boolean,\n    optionalId: ?boolean,\n    bindingType: BindingTypes = BIND_CLASS,\n  ): void {\n    if (this.match(tt.name)) {\n      node.id = this.parseIdentifier();\n      if (isStatement) {\n        this.checkLVal(node.id, bindingType, undefined, \"class name\");\n      }\n    } else {\n      if (optionalId || !isStatement) {\n        node.id = null;\n      } else {\n        this.unexpected(null, Errors.MissingClassName);\n      }\n    }\n  }\n\n  parseClassSuper(node: N.Class): void {\n    node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null;\n  }\n\n  // Parses module export declaration.\n\n  parseExport(node: N.Node): N.AnyExport {\n    const hasDefault = this.maybeParseExportDefaultSpecifier(node);\n    const parseAfterDefault = !hasDefault || this.eat(tt.comma);\n    const hasStar = parseAfterDefault && this.eatExportStar(node);\n    const hasNamespace =\n      hasStar && this.maybeParseExportNamespaceSpecifier(node);\n    const parseAfterNamespace =\n      parseAfterDefault && (!hasNamespace || this.eat(tt.comma));\n    const isFromRequired = hasDefault || hasStar;\n\n    if (hasStar && !hasNamespace) {\n      if (hasDefault) this.unexpected();\n      this.parseExportFrom(node, true);\n\n      return this.finishNode(node, \"ExportAllDeclaration\");\n    }\n\n    const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n\n    if (\n      (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) ||\n      (hasNamespace && parseAfterNamespace && !hasSpecifiers)\n    ) {\n      throw this.unexpected(null, tt.braceL);\n    }\n\n    let hasDeclaration;\n    if (isFromRequired || hasSpecifiers) {\n      hasDeclaration = false;\n      this.parseExportFrom(node, isFromRequired);\n    } else {\n      hasDeclaration = this.maybeParseExportDeclaration(node);\n    }\n\n    if (isFromRequired || hasSpecifiers || hasDeclaration) {\n      this.checkExport(node, true, false, !!node.source);\n      return this.finishNode(node, \"ExportNamedDeclaration\");\n    }\n\n    if (this.eat(tt._default)) {\n      // export default ...\n      node.declaration = this.parseExportDefaultExpression();\n      this.checkExport(node, true, true);\n\n      return this.finishNode(node, \"ExportDefaultDeclaration\");\n    }\n\n    throw this.unexpected(null, tt.braceL);\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  eatExportStar(node: N.Node): boolean {\n    return this.eat(tt.star);\n  }\n\n  maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n    if (this.isExportDefaultSpecifier()) {\n      // export defaultObj ...\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n    if (this.isContextual(\"as\")) {\n      if (!node.specifiers) node.specifiers = [];\n\n      const specifier = this.startNodeAt(\n        this.state.lastTokStart,\n        this.state.lastTokStartLoc,\n      );\n\n      this.next();\n\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers.push(\n        this.finishNode(specifier, \"ExportNamespaceSpecifier\"),\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamedSpecifiers(node: N.Node): boolean {\n    if (this.match(tt.braceL)) {\n      if (!node.specifiers) node.specifiers = [];\n      node.specifiers.push(...this.parseExportSpecifiers());\n\n      node.source = null;\n      node.declaration = null;\n\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportDeclaration(node: N.Node): boolean {\n    if (this.shouldParseExportDeclaration()) {\n      if (this.isContextual(\"async\")) {\n        const next = this.nextTokenStart();\n\n        // export async;\n        if (!this.isUnparsedContextual(next, \"function\")) {\n          this.unexpected(next, tt._function);\n        }\n      }\n\n      node.specifiers = [];\n      node.source = null;\n      node.declaration = this.parseExportDeclaration(node);\n\n      return true;\n    }\n    return false;\n  }\n\n  isAsyncFunction(): boolean {\n    if (!this.isContextual(\"async\")) return false;\n    const next = this.nextTokenStart();\n    return (\n      !lineBreak.test(this.input.slice(this.state.pos, next)) &&\n      this.isUnparsedContextual(next, \"function\")\n    );\n  }\n\n  parseExportDefaultExpression(): N.Expression | N.Declaration {\n    const expr = this.startNode();\n\n    const isAsync = this.isAsyncFunction();\n\n    if (this.match(tt._function) || isAsync) {\n      this.next();\n      if (isAsync) {\n        this.next();\n      }\n\n      return this.parseFunction(\n        expr,\n        FUNC_STATEMENT | FUNC_NULLABLE_ID,\n        isAsync,\n      );\n    } else if (this.match(tt._class)) {\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt.at)) {\n      if (\n        this.hasPlugin(\"decorators\") &&\n        this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorBeforeExport);\n      }\n      this.parseDecorators(false);\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt._const) || this.match(tt._var) || this.isLet()) {\n      throw this.raise(this.state.start, Errors.UnsupportedDefaultExport);\n    } else {\n      const res = this.parseMaybeAssign();\n      this.semicolon();\n      return res;\n    }\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n    return this.parseStatement(null);\n  }\n\n  isExportDefaultSpecifier(): boolean {\n    if (this.match(tt.name)) {\n      return this.state.value !== \"async\" && this.state.value !== \"let\";\n    }\n\n    if (!this.match(tt._default)) {\n      return false;\n    }\n\n    const next = this.nextTokenStart();\n    return (\n      this.input.charCodeAt(next) === charCodes.comma ||\n      this.isUnparsedContextual(next, \"from\")\n    );\n  }\n\n  parseExportFrom(node: N.ExportNamedDeclaration, expect?: boolean): void {\n    if (this.eatContextual(\"from\")) {\n      node.source = this.parseImportSource();\n      this.checkExport(node);\n    } else {\n      if (expect) {\n        this.unexpected();\n      } else {\n        node.source = null;\n      }\n    }\n\n    this.semicolon();\n  }\n\n  shouldParseExportDeclaration(): boolean {\n    if (this.match(tt.at)) {\n      this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n      if (this.hasPlugin(\"decorators\")) {\n        if (this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")) {\n          this.unexpected(this.state.start, Errors.DecoratorBeforeExport);\n        } else {\n          return true;\n        }\n      }\n    }\n\n    return (\n      this.state.type.keyword === \"var\" ||\n      this.state.type.keyword === \"const\" ||\n      this.state.type.keyword === \"function\" ||\n      this.state.type.keyword === \"class\" ||\n      this.isLet() ||\n      this.isAsyncFunction()\n    );\n  }\n\n  checkExport(\n    node: N.ExportNamedDeclaration,\n    checkNames?: boolean,\n    isDefault?: boolean,\n    isFrom?: boolean,\n  ): void {\n    if (checkNames) {\n      // Check for duplicate exports\n      if (isDefault) {\n        // Default exports\n        this.checkDuplicateExports(node, \"default\");\n      } else if (node.specifiers && node.specifiers.length) {\n        // Named exports\n        for (const specifier of node.specifiers) {\n          this.checkDuplicateExports(specifier, specifier.exported.name);\n          // $FlowIgnore\n          if (!isFrom && specifier.local) {\n            // check for keywords used as local names\n            this.checkReservedWord(\n              specifier.local.name,\n              specifier.local.start,\n              true,\n              false,\n            );\n            // check if export is defined\n            // $FlowIgnore\n            this.scope.checkLocalExport(specifier.local);\n          }\n        }\n      } else if (node.declaration) {\n        // Exported declarations\n        if (\n          node.declaration.type === \"FunctionDeclaration\" ||\n          node.declaration.type === \"ClassDeclaration\"\n        ) {\n          const id = node.declaration.id;\n          if (!id) throw new Error(\"Assertion failure\");\n\n          this.checkDuplicateExports(node, id.name);\n        } else if (node.declaration.type === \"VariableDeclaration\") {\n          for (const declaration of node.declaration.declarations) {\n            this.checkDeclaration(declaration.id);\n          }\n        }\n      }\n    }\n\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (currentContextDecorators.length) {\n      const isClass =\n        node.declaration &&\n        (node.declaration.type === \"ClassDeclaration\" ||\n          node.declaration.type === \"ClassExpression\");\n      if (!node.declaration || !isClass) {\n        throw this.raise(node.start, Errors.UnsupportedDecoratorExport);\n      }\n      this.takeDecorators(node.declaration);\n    }\n  }\n\n  checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n    if (node.type === \"Identifier\") {\n      this.checkDuplicateExports(node, node.name);\n    } else if (node.type === \"ObjectPattern\") {\n      for (const prop of node.properties) {\n        this.checkDeclaration(prop);\n      }\n    } else if (node.type === \"ArrayPattern\") {\n      for (const elem of node.elements) {\n        if (elem) {\n          this.checkDeclaration(elem);\n        }\n      }\n    } else if (node.type === \"ObjectProperty\") {\n      this.checkDeclaration(node.value);\n    } else if (node.type === \"RestElement\") {\n      this.checkDeclaration(node.argument);\n    } else if (node.type === \"AssignmentPattern\") {\n      this.checkDeclaration(node.left);\n    }\n  }\n\n  checkDuplicateExports(\n    node:\n      | N.Identifier\n      | N.ExportNamedDeclaration\n      | N.ExportSpecifier\n      | N.ExportDefaultSpecifier,\n    name: string,\n  ): void {\n    if (this.state.exportedIdentifiers.indexOf(name) > -1) {\n      this.raise(\n        node.start,\n        name === \"default\"\n          ? Errors.DuplicateDefaultExport\n          : Errors.DuplicateExport,\n        name,\n      );\n    }\n    this.state.exportedIdentifiers.push(name);\n  }\n\n  // Parses a comma-separated list of module exports.\n\n  parseExportSpecifiers(): Array<N.ExportSpecifier> {\n    const nodes = [];\n    let first = true;\n\n    // export { x, y as z } [from '...']\n    this.expect(tt.braceL);\n\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      const node = this.startNode();\n      node.local = this.parseIdentifier(true);\n      node.exported = this.eatContextual(\"as\")\n        ? this.parseIdentifier(true)\n        : node.local.__clone();\n      nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n    }\n\n    return nodes;\n  }\n\n  // Parses import declaration.\n\n  parseImport(node: N.Node): N.AnyImport {\n    // import '...'\n    node.specifiers = [];\n    if (!this.match(tt.string)) {\n      const hasDefault = this.maybeParseDefaultImportSpecifier(node);\n      const parseNext = !hasDefault || this.eat(tt.comma);\n      const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n      if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n      this.expectContextual(\"from\");\n    }\n    node.source = this.parseImportSource();\n    this.semicolon();\n    return this.finishNode(node, \"ImportDeclaration\");\n  }\n\n  parseImportSource(): N.StringLiteral {\n    if (!this.match(tt.string)) this.unexpected();\n    return this.parseExprAtom();\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n    return this.match(tt.name);\n  }\n\n  parseImportSpecifierLocal(\n    node: N.ImportDeclaration,\n    specifier: N.Node,\n    type: string,\n    contextDescription: string,\n  ): void {\n    specifier.local = this.parseIdentifier();\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      contextDescription,\n    );\n    node.specifiers.push(this.finishNode(specifier, type));\n  }\n\n  maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.shouldParseDefaultImport(node)) {\n      // import defaultObj, { x, y as z } from '...'\n      this.parseImportSpecifierLocal(\n        node,\n        this.startNode(),\n        \"ImportDefaultSpecifier\",\n        \"default import specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseStarImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.match(tt.star)) {\n      const specifier = this.startNode();\n      this.next();\n      this.expectContextual(\"as\");\n\n      this.parseImportSpecifierLocal(\n        node,\n        specifier,\n        \"ImportNamespaceSpecifier\",\n        \"import namespace specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  parseNamedImportSpecifiers(node: N.ImportDeclaration) {\n    let first = true;\n    this.expect(tt.braceL);\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        // Detect an attempt to deep destructure\n        if (this.eat(tt.colon)) {\n          throw this.raise(this.state.start, Errors.DestructureNamedImport);\n        }\n\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      this.parseImportSpecifier(node);\n    }\n  }\n\n  parseImportSpecifier(node: N.ImportDeclaration): void {\n    const specifier = this.startNode();\n    specifier.imported = this.parseIdentifier(true);\n    if (this.eatContextual(\"as\")) {\n      specifier.local = this.parseIdentifier();\n    } else {\n      this.checkReservedWord(\n        specifier.imported.name,\n        specifier.start,\n        true,\n        true,\n      );\n      specifier.local = specifier.imported.__clone();\n    }\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      \"import specifier\",\n    );\n    node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n  }\n}\n","// @flow\n\nimport {\n  CLASS_ELEMENT_KIND_ACCESSOR,\n  CLASS_ELEMENT_FLAG_STATIC,\n  type ClassElementTypes,\n} from \"./scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nexport class ClassScope {\n  // A list of private named declared in the current class\n  privateNames: Set<string> = new Set();\n\n  // A list of private getters of setters without their counterpart\n  loneAccessors: Map<string, ClassElementTypes> = new Map();\n\n  // A list of private names used before being defined, mapping to\n  // their position.\n  undefinedPrivateNames: Map<string, number> = new Map();\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\nexport default class ClassScopeHandler {\n  stack: Array<ClassScope> = [];\n  raise: raiseFunction;\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction) {\n    this.raise = raise;\n  }\n\n  current(): ClassScope {\n    return this.stack[this.stack.length - 1];\n  }\n\n  enter() {\n    this.stack.push(new ClassScope());\n  }\n\n  exit() {\n    const oldClassScope = this.stack.pop();\n\n    // Migrate the usage of not yet defined private names to the outer\n    // class scope, or raise an error if we reached the top-level scope.\n\n    const current = this.current();\n\n    // Array.from is needed because this is compiled to an array-like for loop\n    for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) {\n      if (current) {\n        if (!current.undefinedPrivateNames.has(name)) {\n          current.undefinedPrivateNames.set(name, pos);\n        }\n      } else {\n        this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n      }\n    }\n  }\n\n  declarePrivateName(\n    name: string,\n    elementType: ClassElementTypes,\n    pos: number,\n  ) {\n    const classScope = this.current();\n    let redefined = classScope.privateNames.has(name);\n\n    if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) {\n      const accessor = redefined && classScope.loneAccessors.get(name);\n      if (accessor) {\n        const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC;\n        const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC;\n\n        const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR;\n        const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR;\n\n        // The private name can be duplicated only if it is used by\n        // two accessors with different kind (get and set), and if\n        // they have the same placement (static or not).\n        redefined = oldKind === newKind || oldStatic !== newStatic;\n\n        if (!redefined) classScope.loneAccessors.delete(name);\n      } else if (!redefined) {\n        classScope.loneAccessors.set(name, elementType);\n      }\n    }\n\n    if (redefined) {\n      this.raise(pos, Errors.PrivateNameRedeclaration, name);\n    }\n\n    classScope.privateNames.add(name);\n    classScope.undefinedPrivateNames.delete(name);\n  }\n\n  usePrivateName(name: string, pos: number) {\n    let classScope;\n    for (classScope of this.stack) {\n      if (classScope.privateNames.has(name)) return;\n    }\n\n    if (classScope) {\n      classScope.undefinedPrivateNames.set(name, pos);\n    } else {\n      // top-level\n      this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n    }\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type { File /*::, JSXOpeningElement */ } from \"../types\";\nimport type { PluginList } from \"../plugin-utils\";\nimport { getOptions } from \"../options\";\nimport StatementParser from \"./statement\";\nimport { SCOPE_PROGRAM } from \"../util/scopeflags\";\nimport ScopeHandler from \"../util/scope\";\nimport ClassScopeHandler from \"../util/class-scope\";\nimport ProductionParameterHandler, {\n  PARAM_AWAIT,\n  PARAM,\n} from \"../util/production-parameter\";\n\nexport type PluginsMap = Map<string, { [string]: any }>;\n\nexport default class Parser extends StatementParser {\n  // Forward-declaration so typescript plugin can override jsx plugin\n  /*::\n  +jsxParseOpeningElementAfterName: (\n    node: JSXOpeningElement,\n  ) => JSXOpeningElement;\n  */\n\n  constructor(options: ?Options, input: string) {\n    options = getOptions(options);\n    super(options, input);\n\n    const ScopeHandler = this.getScopeHandler();\n\n    this.options = options;\n    this.inModule = this.options.sourceType === \"module\";\n    this.scope = new ScopeHandler(this.raise.bind(this), this.inModule);\n    this.prodParam = new ProductionParameterHandler();\n    this.classScope = new ClassScopeHandler(this.raise.bind(this));\n    this.plugins = pluginsMap(this.options.plugins);\n    this.filename = options.sourceFilename;\n  }\n\n  // This can be overwritten, for example, by the TypeScript plugin.\n  getScopeHandler(): Class<ScopeHandler<*>> {\n    return ScopeHandler;\n  }\n\n  parse(): File {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    const file = this.startNode();\n    const program = this.startNode();\n    this.nextToken();\n    file.errors = null;\n    this.parseTopLevel(file, program);\n    file.errors = this.state.errors;\n    return file;\n  }\n}\n\nfunction pluginsMap(plugins: PluginList): PluginsMap {\n  const pluginMap: PluginsMap = new Map();\n  for (const plugin of plugins) {\n    const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];\n    if (!pluginMap.has(name)) pluginMap.set(name, options || {});\n  }\n  return pluginMap;\n}\n","// @flow\n\nimport { type Options } from \"./options\";\nimport {\n  hasPlugin,\n  validatePlugins,\n  mixinPluginNames,\n  mixinPlugins,\n  type PluginList,\n} from \"./plugin-utils\";\nimport Parser from \"./parser\";\n\nimport { types as tokTypes } from \"./tokenizer/types\";\nimport \"./tokenizer/context\";\n\nimport type { Expression, File } from \"./types\";\n\nexport function parse(input: string, options?: Options): File {\n  if (options && options.sourceType === \"unambiguous\") {\n    options = {\n      ...options,\n    };\n    try {\n      options.sourceType = \"module\";\n      const parser = getParser(options, input);\n      const ast = parser.parse();\n\n      if (parser.sawUnambiguousESM) {\n        return ast;\n      }\n\n      if (parser.ambiguousScriptDifferentAst) {\n        // Top level await introduces code which can be both a valid script and\n        // a valid module, but which produces different ASTs:\n        //    await\n        //    0\n        // can be parsed either as an AwaitExpression, or as two ExpressionStatements.\n        try {\n          options.sourceType = \"script\";\n          return getParser(options, input).parse();\n        } catch {}\n      } else {\n        // This is both a valid module and a valid script, but\n        // we parse it as a script by default\n        ast.program.sourceType = \"script\";\n      }\n\n      return ast;\n    } catch (moduleError) {\n      try {\n        options.sourceType = \"script\";\n        return getParser(options, input).parse();\n      } catch {}\n\n      throw moduleError;\n    }\n  } else {\n    return getParser(options, input).parse();\n  }\n}\n\nexport function parseExpression(input: string, options?: Options): Expression {\n  const parser = getParser(options, input);\n  if (parser.options.strictMode) {\n    parser.state.strict = true;\n  }\n  return parser.getExpression();\n}\n\nexport { tokTypes };\n\nfunction getParser(options: ?Options, input: string): Parser {\n  let cls = Parser;\n  if (options && options.plugins) {\n    validatePlugins(options.plugins);\n    cls = getParserClass(options.plugins);\n  }\n\n  return new cls(options, input);\n}\n\nconst parserClassCache: { [key: string]: Class<Parser> } = {};\n\n/** Get a Parser class with plugins applied. */\nfunction getParserClass(pluginsFromOptions: PluginList): Class<Parser> {\n  const pluginList = mixinPluginNames.filter(name =>\n    hasPlugin(pluginsFromOptions, name),\n  );\n\n  const key = pluginList.join(\"/\");\n  let cls = parserClassCache[key];\n  if (!cls) {\n    cls = Parser;\n    for (const plugin of pluginList) {\n      cls = mixinPlugins[plugin](cls);\n    }\n    parserClassCache[key] = cls;\n  }\n  return cls;\n}\n"],"names":["beforeExpr","startsExpr","isLoop","isAssign","prefix","postfix","TokenType","constructor","label","conf","keyword","rightAssociative","binop","updateContext","keywords","Map","createKeyword","name","options","token","set","createBinop","types","num","bigint","regexp","string","eof","bracketL","bracketHashL","bracketBarL","bracketR","bracketBarR","braceL","braceBarL","braceHashL","braceR","braceBarR","parenL","parenR","comma","semi","colon","doubleColon","dot","question","questionDot","arrow","template","ellipsis","backQuote","dollarBraceL","at","hash","interpreterDirective","eq","assign","incDec","bang","tilde","pipeline","nullishCoalescing","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","star","slash","exponent","_break","_case","_catch","_continue","_debugger","_default","_do","_else","_finally","_for","_function","_if","_return","_switch","_throw","_try","_var","_const","_while","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_in","_instanceof","_typeof","_void","_delete","SCOPE_OTHER","SCOPE_PROGRAM","SCOPE_FUNCTION","SCOPE_ARROW","SCOPE_SIMPLE_CATCH","SCOPE_SUPER","SCOPE_DIRECT_SUPER","SCOPE_CLASS","SCOPE_TS_MODULE","SCOPE_VAR","BIND_KIND_VALUE","BIND_KIND_TYPE","BIND_SCOPE_VAR","BIND_SCOPE_LEXICAL","BIND_SCOPE_FUNCTION","BIND_SCOPE_OUTSIDE","BIND_FLAGS_NONE","BIND_FLAGS_CLASS","BIND_FLAGS_TS_ENUM","BIND_FLAGS_TS_CONST_ENUM","BIND_FLAGS_TS_EXPORT_ONLY","BIND_CLASS","BIND_LEXICAL","BIND_VAR","BIND_FUNCTION","BIND_TS_INTERFACE","BIND_TS_TYPE","BIND_TS_ENUM","BIND_TS_AMBIENT","BIND_NONE","BIND_OUTSIDE","BIND_TS_CONST_ENUM","BIND_TS_NAMESPACE","CLASS_ELEMENT_FLAG_STATIC","CLASS_ELEMENT_KIND_GETTER","CLASS_ELEMENT_KIND_SETTER","CLASS_ELEMENT_KIND_ACCESSOR","CLASS_ELEMENT_STATIC_GETTER","CLASS_ELEMENT_STATIC_SETTER","CLASS_ELEMENT_INSTANCE_GETTER","CLASS_ELEMENT_INSTANCE_SETTER","CLASS_ELEMENT_OTHER","lineBreak","lineBreakG","RegExp","source","isNewLine","code","skipWhiteSpace","isWhitespace","Position","line","col","column","SourceLocation","start","end","getLineInfo","input","offset","lineStart","match","lastIndex","exec","index","BaseParser","sawUnambiguousESM","ambiguousScriptDifferentAst","hasPlugin","plugins","has","getPluginOption","plugin","get","last","stack","length","CommentsParser","addComment","comment","filename","loc","state","trailingComments","push","leadingComments","adjustCommentsAfterTrailingComma","node","elements","takeAllComments","lastElement","i","j","commentPreviousNode","splice","newTrailingComments","leadingComment","undefined","processComment","type","body","commentStack","firstChild","lastChild","lastInStack","pop","properties","arguments","slice","innerComments","Errors","Object","freeze","ArgumentsDisallowedInInitializer","AsyncFunctionInSingleStatementContext","AwaitBindingIdentifier","AwaitExpressionFormalParameter","AwaitNotInAsyncFunction","BadGetterArity","BadSetterArity","BadSetterRestParameter","ConstructorClassField","ConstructorClassPrivateField","ConstructorIsAccessor","ConstructorIsAsync","ConstructorIsGenerator","DeclarationMissingInitializer","DecoratorBeforeExport","DecoratorConstructor","DecoratorExportClass","DecoratorSemicolon","DeletePrivateField","DestructureNamedImport","DuplicateConstructor","DuplicateDefaultExport","DuplicateExport","DuplicateProto","DuplicateRegExpFlags","ElementAfterRest","EscapedCharNotAnIdentifier","ForInOfLoopInitializer","GeneratorInSingleStatementContext","IllegalBreakContinue","IllegalLanguageModeDirective","IllegalReturn","ImportCallArgumentTrailingComma","ImportCallArity","ImportCallArityLtOne","ImportCallNotNewExpression","ImportCallSpreadArgument","ImportMetaOutsideModule","ImportOutsideModule","InvalidCodePoint","InvalidDigit","InvalidEscapeSequence","InvalidEscapeSequenceTemplate","InvalidEscapedReservedWord","InvalidIdentifier","InvalidLhs","InvalidLhsBinding","InvalidNumber","InvalidOrUnexpectedToken","InvalidParenthesizedAssignment","InvalidPrivateFieldResolution","InvalidPropertyBindingPattern","InvalidRestAssignmentPattern","LabelRedeclaration","LetInLexicalBinding","MalformedRegExpFlags","MissingClassName","MissingEqInAssignment","MissingUnicodeEscape","MixingCoalesceWithLogical","ModuleExportUndefined","MultipleDefaultsInSwitch","NewlineAfterThrow","NoCatchOrFinally","NumberIdentifier","NumericSeparatorInEscapeSequence","ObsoleteAwaitStar","OptionalChainingNoNew","OptionalChainingNoTemplate","ParamDupe","PatternHasAccessor","PatternHasMethod","PipelineBodyNoArrow","PipelineBodySequenceExpression","PipelineHeadSequenceExpression","PipelineTopicUnused","PrimaryTopicNotAllowed","PrimaryTopicRequiresSmartPipeline","PrivateNameRedeclaration","RecordExpressionBarIncorrectEndSyntaxType","RecordExpressionBarIncorrectStartSyntaxType","RecordExpressionHashIncorrectStartSyntaxType","RestTrailingComma","SloppyFunction","StaticPrototype","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","StrictOctalLiteral","StrictWith","SuperNotAllowed","SuperPrivateField","TrailingDecorator","TupleExpressionBarIncorrectEndSyntaxType","TupleExpressionBarIncorrectStartSyntaxType","TupleExpressionHashIncorrectStartSyntaxType","UnexpectedArgumentPlaceholder","UnexpectedAwaitAfterPipelineBody","UnexpectedDigitAfterHash","UnexpectedImportExport","UnexpectedKeyword","UnexpectedLeadingDecorator","UnexpectedLexicalDeclaration","UnexpectedNewTarget","UnexpectedNumericSeparator","UnexpectedPrivateField","UnexpectedReservedWord","UnexpectedSuper","UnexpectedToken","UnexpectedTokenUnaryExponentiation","UnsupportedBind","UnsupportedDecoratorExport","UnsupportedDefaultExport","UnsupportedImport","UnsupportedMetaProperty","UnsupportedParameterDecorator","UnsupportedPropertyDecorator","UnsupportedSuper","UnterminatedComment","UnterminatedRegExp","UnterminatedString","UnterminatedTemplate","VarRedeclaration","YieldBindingIdentifier","YieldInParameter","ZeroDigitNumericSeparator","LocationParser","getLocationForPosition","pos","startLoc","lastTokStart","lastTokStartLoc","endLoc","lastTokEnd","lastTokEndLoc","raise","errorTemplate","params","raiseWithData","data","message","replace","_","_raise","errorContext","err","SyntaxError","errorRecovery","isLookahead","errors","isSimpleProperty","kind","method","superClass","estreeParseRegExpLiteral","pattern","flags","regex","e","estreeParseLiteral","estreeParseBigIntLiteral","value","bigInt","BigInt","String","parseLiteral","directiveToStmt","directive","directiveLiteral","stmt","startNodeAt","expression","raw","extra","finishNodeAt","initFunction","isAsync","checkDeclaration","checkGetterSetterParams","prop","paramCount","checkLVal","expr","bindingType","checkClashes","contextDescription","disallowLetBinding","forEach","checkDuplicatedProto","protoRef","refExpressionErrors","computed","shorthand","key","used","doubleProto","isValidDirective","parenthesized","stmtToDirective","parseBlockBody","allowDirectives","topLevel","directiveStatements","directives","map","d","concat","pushClassMethod","classBody","isGenerator","isConstructor","allowsDirectSuper","parseMethod","typeParameters","parseExprAtom","tt","startPos","parseFunctionBody","allowExpression","isMethod","allowDirectSuper","inClassScope","funcNode","startNode","finishNode","parseObjectMethod","isPattern","containsEsc","parseObjectProperty","toAssignable","toAssignableObjectExpressionProp","isLast","finishCallExpression","optional","callee","toReferencedListDeep","exprList","isParenthesizedExpr","parseExport","exported","specifiers","TokContext","isExpr","preserveSpace","override","braceStatement","braceExpression","templateQuasi","parenStatement","parenExpression","p","readTmplToken","functionExpression","functionStatement","context","exprAllowed","out","curContext","prevType","allowed","prodParam","hasYield","isIterator","braceIsBlock","statementParens","test","b_stat","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","isIdentifierStart","fromCharCode","isIdentifierChar","reservedWords","strict","strictBind","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","keywordRelationalOperator","isIteratorStart","current","next","reservedTypes","FlowErrors","AmbiguousConditionalArrow","AmbiguousDeclareModuleKind","AssignReservedType","DeclareClassElement","DeclareClassFieldInitializer","DuplicateDeclareModuleExports","EnumBooleanMemberNotInitialized","EnumDuplicateMemberName","EnumInconsistentMemberValues","EnumInvalidExplicitType","EnumInvalidExplicitTypeUnknownSupplied","EnumInvalidMemberInitializerPrimaryType","EnumInvalidMemberInitializerSymbolType","EnumInvalidMemberInitializerUnknownType","EnumInvalidMemberName","EnumNumberMemberNotInitialized","EnumStringMemberInconsistentlyInitailized","ImportTypeShorthandOnlyInPureImport","InexactInsideExact","InexactInsideNonObject","InexactVariance","InvalidNonTypeImportInDeclareModule","MissingTypeParamDefault","NestedDeclareModule","NestedFlowComment","OptionalBindingPattern","SpreadVariance","TypeBeforeInitializer","TypeCastInPattern","UnexpectedExplicitInexactInObject","UnexpectedReservedType","UnexpectedReservedUnderscore","UnexpectedSpaceBetweenModuloChecks","UnexpectedSpreadType","UnexpectedSubtractionOperand","UnexpectedTokenAfterTypeParameter","UnsupportedDeclareExportKind","UnsupportedStatementInDeclareModule","UnterminatedFlowComment","isEsModuleType","bodyElement","declaration","hasTypeImportKind","importKind","isMaybeDefaultImport","exportSuggestions","const","let","interface","partition","list","list1","list2","FLOW_PRAGMA_REGEX","flowPragma","shouldParseTypes","shouldParseEnums","finishToken","val","matches","Error","flowParseTypeInitialiser","tok","oldInType","inType","expect","flowParseType","flowParsePredicate","moduloLoc","moduloPos","checksLoc","expectContextual","eat","parseExpression","flowParseTypeAndPredicateInitialiser","predicate","flowParseDeclareClass","flowParseInterfaceish","flowParseDeclareFunction","id","parseIdentifier","typeNode","typeContainer","isRelational","flowParseTypeParameterDeclaration","tmp","flowParseFunctionTypeParams","rest","returnType","typeAnnotation","resetEndLocation","semicolon","flowParseDeclare","insideModule","flowParseDeclareVariable","eatContextual","flowParseDeclareModuleExports","flowParseDeclareModule","isContextual","flowParseDeclareTypeAlias","flowParseDeclareOpaqueType","flowParseDeclareInterface","flowParseDeclareExportDeclaration","unexpected","flowParseTypeAnnotatableIdentifier","scope","declareName","enter","bodyNode","parseImport","exit","hasModuleExport","default","isLet","suggestion","exportKind","flowParseTypeAnnotation","flowParseTypeAlias","flowParseOpaqueType","isClass","flowParseRestrictedIdentifier","extends","implements","mixins","flowParseInterfaceExtends","flowParseObjectType","allowStatic","allowExact","allowSpread","allowProto","allowInexact","flowParseQualifiedTypeIdentifier","flowParseTypeParameterInstantiation","flowParseInterface","checkNotUnderscore","checkReservedType","liberal","right","declare","supertype","impltype","flowParseTypeParameter","requireDefault","nodeStart","variance","flowParseVariance","ident","bound","jsxTagStart","defaultRequired","typeParameter","expectRelational","oldNoAnonFunctionType","noAnonFunctionType","flowParseTypeParameterInstantiationCallOrNew","flowParseTypeOrImplicitInstantiation","flowParseInterfaceType","flowParseObjectPropertyKey","flowParseObjectTypeIndexer","isStatic","static","lookahead","flowParseObjectTypeInternalSlot","flowParseObjectTypeMethodish","flowParseFunctionTypeParam","flowParseObjectTypeCallProperty","valueNode","callProperties","indexers","internalSlots","endDelim","exact","inexact","protoStart","inexactStart","propOrInexact","flowParseObjectTypeProperty","flowObjectTypeSemicolon","isInexactToken","argument","proto","flowCheckGetterSetterParams","property","node2","qualification","flowParseGenericType","flowParseTypeofType","flowParsePrimaryType","flowParseTupleType","lh","reinterpretTypeAsFunctionTypeParam","flowIdentToTypeAnnotation","isGroupedType","createIdentifier","flowParsePostfixType","canInsertSemicolon","elementType","flowParsePrefixType","flowParseAnonFunctionWithoutParens","param","flowParseIntersectionType","flowParseUnionType","allowPrimitiveOverride","typeCastToParameter","allowExpressionBody","forwardNoArrowParamsConversionAt","parseFunctionBodyAndFinish","parseStatement","flowParseEnumDeclaration","parseExpressionStatement","shouldParseExportDeclaration","isExportDefaultSpecifier","parseExportDefaultExpression","parseConditional","noIn","refNeedsArrowPos","result","tryParse","error","failState","clone","originalNoArrowAt","noArrowAt","consequent","failed","tryParseConditionalConsequent","valid","invalid","getArrowLikeExpressions","alternate","parseMaybeAssign","noArrowParamsConversionAt","disallowInvalid","arrows","finishArrowValidation","every","isAssignable","toAssignableList","trailingComma","checkParams","parse","indexOf","parseParenItem","typeCastNode","assertModuleNodeAllowed","decl","parseExportDeclaration","declarationNode","parseExportSpecifiers","parseExportFrom","eatExportStar","maybeParseExportNamespaceSpecifier","hasNamespace","parseClassId","isStatement","optionalId","parseClassMember","member","constructorAllowsSuper","parseClassMemberFromModifier","getTokenFromCode","charCodeAt","finishOp","readWord","isBinding","element","operator","trailingCommaPos","toReferencedList","parseClassProperty","parseClassPrivateProperty","isClassMethod","isClassProperty","isNonstaticConstructor","pushClassPrivateMethod","parseClassSuper","superTypeParameters","implemented","parsePropertyName","isPrivateNameAllowed","parseObjPropValue","parseAssignableListItemTypes","parseMaybeDefault","left","shouldParseDefaultImport","parseImportSpecifierLocal","specifier","local","maybeParseDefaultImportSpecifier","parseImportSpecifier","firstIdentLoc","firstIdent","specifierTypeKind","isLookaheadContextual","as_ident","imported","__clone","nodeIsTypeImport","specifierIsTypeImport","checkReservedWord","parseFunctionParams","allowModifiers","parseVarId","parseAsyncArrowFromCallExpression","call","shouldParseAsyncArrow","afterLeftParse","jsx","tc","j_oTag","j_expr","arrowExpression","resetStartLocationFromNode","thrown","parseArrow","shouldParseArrow","setArrowFunctionParameters","allowDuplicates","isArrowFunction","parseParenAndDistinguishExpression","canBeArrow","parseSubscripts","base","noCalls","parseCallExpressionArguments","abort","parseAsyncArrowWithTypeParameters","aborted","parseSubscript","subscriptState","isLookaheadRelational","optionalChainMember","stop","typeArguments","parseNewArguments","targs","parseArrowExpression","readToken_mult_modulo","hasFlowComment","nextToken","readToken_pipe_amp","parseTopLevel","file","program","fileNode","skipBlockComment","skipFlowComment","hasFlowCommentCompletion","shiftToFirstNonWhiteSpace","includes","ch2","ch3","flowEnumErrorBooleanMemberNotInitialized","enumName","memberName","flowEnumErrorInvalidMemberName","toUpperCase","flowEnumErrorDuplicateMemberName","flowEnumErrorInconsistentMemberValues","flowEnumErrorInvalidExplicitType","suppliedType","flowEnumErrorInvalidMemberInitializer","explicitType","flowEnumErrorNumberMemberNotInitialized","flowEnumErrorStringMemberInconsistentlyInitailized","flowEnumMemberInit","endOfInit","literal","parseBooleanLiteral","flowEnumMemberRaw","init","flowEnumCheckExplicitTypeMismatch","expectedType","flowEnumMembers","seenNames","members","booleanMembers","numberMembers","stringMembers","defaultedMembers","memberNode","add","flowEnumStringMembers","initializedMembers","flowEnumParseExplicitType","flowEnumBody","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","entities","quot","amp","apos","lt","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","HEX_NUMBER","DECIMAL_NUMBER","JsxErrors","AttributeIsEmpty","MissingClosingTagFragment","MissingClosingTagElement","UnsupportedJsxValue","UnterminatedJsxContent","UnwrappedAdjacentJSXElements","j_cTag","jsxName","jsxText","jsxTagEnd","isFragment","object","getQualifiedJSXName","namespace","jsxReadToken","chunkStart","ch","jsxReadEntity","jsxReadNewLine","normalizeCRLF","curLine","jsxReadString","quote","str","count","entity","substr","fromCodePoint","parseInt","XHTMLEntities","jsxReadWord","jsxParseIdentifier","jsxParseNamespacedName","jsxParseElementName","newNode","jsxParseAttributeValue","jsxParseExpressionContainer","jsxParseEmptyExpression","jsxParseSpreadChild","jsxParseAttribute","jsxParseOpeningElementAt","jsxParseOpeningElementAfterName","attributes","selfClosing","jsxParseClosingElementAt","jsxParseElementAt","children","openingElement","closingElement","contents","openingFragment","closingFragment","jsxParseElement","inPropertyName","Scope","var","lexical","functions","ScopeHandler","scopeStack","undefinedExports","undefinedPrivateNames","inFunction","currentVarScope","allowSuper","currentThisScope","inClass","inNonArrowFunction","treatFunctionsAsVar","treatFunctionsAsVarInScope","currentScope","createScope","checkRedeclarationInScope","maybeExportDefined","delete","isRedeclaredInScope","checkLocalExport","TypeScriptScope","enums","constEnums","classes","exportOnlyBindings","TypeScriptScopeHandler","isConst","wasConst","PARAM","PARAM_YIELD","PARAM_AWAIT","PARAM_RETURN","ProductionParameterHandler","stacks","currentFlags","hasAwait","hasReturn","functionFlags","nonNull","x","assert","TSErrors","ClassMethodHasDeclare","ClassMethodHasReadonly","DeclareClassFieldHasInitializer","DuplicateModifier","EmptyHeritageClauseType","IndexSignatureHasAbstract","IndexSignatureHasAccessibility","IndexSignatureHasStatic","OptionalTypeBeforeRequired","PatternIsOptional","PrivateElementHasAbstract","PrivateElementHasAccessibility","TemplateTypeHasSubstitution","TypeAnnotationAfterAssign","UnexpectedReadonly","UnexpectedTypeAnnotation","UnexpectedTypeCastInParameter","UnsupportedImportTypeArgument","UnsupportedParameterPropertyKind","UnsupportedSignatureParameterKind","keywordTypeFromName","getScopeHandler","tsIsIdentifier","tsNextTokenCanFollowModifier","hasPrecedingLineBreak","tsParseModifier","allowedModifiers","modifier","tsTryParse","bind","tsParseModifiers","modified","hasOwnProperty","tsIsListTerminator","tsParseList","parseElement","tsParseDelimitedList","tsParseDelimitedListWorker","expectSuccess","tsParseBracketedList","bracket","skipFirstToken","tsParseImportType","qualifier","tsParseEntityName","tsParseTypeArguments","allowReservedWords","startNodeAtNode","tsParseTypeReference","typeName","tsParseThisTypePredicate","lhs","parameterName","tsParseTypeAnnotation","tsParseThisTypeNode","tsParseTypeQuery","exprName","tsParseTypeParameter","parseIdentifierName","constraint","tsEatThenParseType","tsTryParseTypeParameters","tsParseTypeParameters","tsTryNextParseConstantContext","tsFillSignature","returnToken","signature","returnTokenRequired","parameters","tsParseBindingListForSignature","tsParseTypeOrTypePredicateAnnotation","parseBindingList","tsParseTypeMemberSemicolon","tsParseSignatureMember","tsIsUnambiguouslyIndexSignature","tsTryParseIndexSignature","tsLookAhead","tsTryParseTypeAnnotation","tsParsePropertyOrMethodSignature","readonly","nodeAny","tsParseTypeMember","idx","tsParseTypeLiteral","tsParseObjectTypeMembers","tsIsStartOfMappedType","tsParseMappedTypeParameter","tsExpectThenParseType","tsParseMappedType","tsTryParseType","tsParseTupleType","elementTypes","tsParseTupleElementType","seenOptionalElement","elementNode","restNode","tsParseType","lookaheadCharCode","raiseRestNotLast","optionalTypeNode","tsParseParenthesizedType","tsParseFunctionOrConstructorType","tsParseLiteralTypeNode","tsParseTemplateLiteralType","templateNode","parseTemplate","expressions","tsParseThisTypeOrThisTypePredicate","thisKeyword","tsParseNonArrayType","parseMaybeUnary","tsParseArrayTypeOrHigher","objectType","indexType","tsParseTypeOperator","tsParseTypeOperatorOrHigher","tsCheckTypeAnnotationForReadOnly","tsParseInferType","find","kw","tsParseUnionOrIntersectionType","parseConstituentType","tsParseIntersectionTypeOrHigher","tsParseUnionTypeOrHigher","tsIsStartOfFunctionType","tsIsUnambiguouslyStartOfFunctionType","tsSkipParameterStart","braceStackCounter","tsInType","t","asserts","tsParseTypePredicateAsserts","thisTypePredicate","typePredicateVariable","tsParseTypePredicatePrefix","tsTryParseTypeOrTypePredicateAnnotation","eatColon","tsParseNonConditionalType","checkType","extendsType","trueType","falseType","tsParseTypeAssertion","tsNextThenParseType","tsParseHeritageClause","descriptor","originalStart","delimitedList","tsParseExpressionWithTypeArguments","tsParseInterfaceDeclaration","tsParseTypeAliasDeclaration","tsInNoContext","cb","oldContext","tsDoThenParseType","tsParseEnumMember","initializer","tsParseEnumDeclaration","tsParseModuleBlock","parseBlockOrModuleBlockBody","tsParseModuleOrNamespaceDeclaration","nested","inner","tsParseAmbientExternalModuleDeclaration","global","tsParseImportEqualsDeclaration","isExport","moduleReference","tsParseModuleReference","tsIsExternalModuleReference","tsParseExternalModuleReference","f","res","tsTryParseAndCatch","tsTryParseDeclare","nany","isLineTerminator","starttype","parseFunctionStatement","parseClass","parseVarStatement","tsParseDeclaration","tsTryParseExportDeclaration","tsParseExpressionStatement","mod","tsCheckLineTerminatorAndMatch","cls","abstract","tokenType","tsTryParseGenericAsyncArrowFunction","oldMaybeInArrowParameters","maybeInArrowParameters","oldYieldPos","yieldPos","oldAwaitPos","awaitPos","tsIsDeclarationStart","parseAssignableListItem","decorators","accessibility","parseAccessModifier","elt","pp","parameter","bodilessType","registerFunctionStatementId","nonNullExpression","atPossibleAsyncArrow","asyncArrowFn","parseTaggedTemplateExpression","args","parseExprOp","leftStartPos","leftStartLoc","minPrec","checkKeywords","checkDuplicateExports","ahead","importNode","isAbstractClass","parseStatementContent","parseClassMemberWithIsStatic","parsePostMemberNameModifiers","methodOrProp","isDeclare","resetStartLocation","parseClassPropertyAnnotation","definite","equal","typeCast","ct","parseBindingAtom","parseMaybeDecoratorArguments","isInParens","canHaveLeadingDecorator","getGetterSetterExpectedParamCount","baseCount","firstParam","hasContextParam","placeholder","parsePlaceholder","expectedNode","assertNoSpace","finishPlaceholder","isFinished","verifyBreakContinue","parseBlock","parseFunctionId","takeDecorators","parseClassBody","expectPlugin","maybeParseExportDefaultSpecifier","checkExport","filter","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","parseImportSource","parseV8Intrinsic","v8IntrinsicStart","identifier","some","Array","isArray","option","PIPELINE_PROPOSALS","RECORD_AND_TUPLE_SYNTAX_TYPES","validatePlugins","decoratorsBeforeExport","join","mixinPlugins","estree","flow","typescript","v8intrinsic","placeholders","mixinPluginNames","keys","defaultOptions","sourceType","sourceFilename","startLine","allowAwaitOutsideFunction","allowReturnOutsideFunction","allowImportExportEverywhere","allowSuperOutsideMethod","allowUndeclaredExports","strictMode","ranges","tokens","createParenthesizedExpressions","getOptions","opts","State","potentialArrowAt","inParameters","maybeInAsyncArrowHead","inPipeline","topicContext","maxNumOfResolvableTopics","maxTopicIndex","soloAwait","inFSharpPipelineDirectBody","labels","decoratorStack","comments","octalPositions","exportedIdentifiers","tokensLength","curPosition","skipArrays","isDigit","VALID_REGEX_FLAGS","forbiddenNumericSeparatorSiblings","decBinOct","hex","allowedNumericSeparatorSiblings","bin","oct","dec","Token","Tokenizer","pushToken","checkKeywordEscapes","old","curr","nextTokenStart","thisTokEnd","skip","setStrict","lastIndexOf","skipSpace","codePointAt","pushComment","block","text","skipLineComment","startSkip","loop","readToken_numberSign","readToken_interpreter","nextPos","readToken_dot","readNumber","readToken_slash","readRegexp","width","readToken_caret","readToken_plus_min","readToken_lt_gt","size","readToken_eq_excl","readToken_question","next2","readRadixNumber","readString","escaped","charAt","content","mods","char","charCode","readInt","radix","len","forceLen","allowNumSeparator","forbiddenSiblings","allowedSiblings","total","Infinity","prev","Number","isNaN","isBigInt","startsWithDot","isFloat","isNonOctalDecimalInt","octal","underscorePos","parseFloat","readCodePoint","throwOnInvalid","codePos","readHexChar","readEscapedChar","containsInvalid","inTemplate","octalStr","n","readWord1","escStart","identifierCheck","esc","keywordTypes","parent","update","UtilParser","addExtra","op","afterNext","isUnparsedContextual","nameStart","nameEnd","messageOrType","missingPlugin","expectOnePlugin","names","checkYieldAwaitInDefaultParams","fn","oldState","abortSignal","checkExpressionErrors","andThrow","shorthandAssign","ExpressionErrors","Node","parser","range","NodeUtils","locationNode","unwrapParenthesizedExpression","LValParser","checkToRestConversion","arg","raiseTrailingCommaAfterRest","parseSpread","parseRestBinding","parseObj","close","closeCharCode","allowEmpty","elts","first","checkCommaAfterRest","parseDecorator","strictModeChanged","elem","ExpressionParser","getExpression","paramFlags","parseYield","ownExpressionErrors","parseMaybeConditional","parseExprOps","prec","logical","coalesce","checkPipelineAtInfixOperator","parseExprOpRightExpr","nextOp","withTopicPermittingContext","parseSmartPipelineBody","parseExprOpBaseRightExpr","withSoloAwaitPermittingContext","parseFSharpPipelineBody","isAwaitAllowed","parseAwait","parseExprSubscripts","maybeAsyncArrow","oldMaybeInAsyncArrowHead","parseNoCallExpr","parseMaybePrivateName","classScope","usePrivateName","tag","quasi","importArg","possibleAsyncArrow","dynamicImport","allowPlaceholder","nodeForExtra","innerParenStart","oldInFSharpPipelineDirectBody","parseExprListItem","parseImportMetaProperty","parseFunction","oldLabels","parseExprList","ret","parseFunctionExpression","parseDecorators","parseNew","primaryTopicReferenceIsAllowedInCurrentTopicContext","registerTopicReference","isPrivate","meta","parseMetaProperty","propertyName","innerStartPos","innerStartLoc","spreadStart","optionalCommaStart","spreadNodeStartPos","spreadNodeStartLoc","innerEndPos","innerEndLoc","arrowNode","parenStart","metaProp","parseTemplateElement","isTagged","cooked","tail","curElt","quasis","isRecord","propHash","create","parseObjectMember","isAsyncProp","isGetterOrSetterMethod","oldInPropertyName","generator","async","isExpression","oldInParameters","oldStrict","hasStrictModeDirective","nonSimple","isSimpleParamList","errorPos","nameHash","identifierName","reservedTest","delegate","childExpression","pipelineStyle","checkSmartPipelineBodyStyle","checkSmartPipelineBodyEarlyErrors","parseSmartPipelineBodyInStyle","topicReferenceWasUsedInCurrentTopicContext","isSimpleReference","callback","outerContextTopicState","withTopicForbiddingContext","outerContextSoloAwaitState","loopLabel","switchLabel","FUNC_NO_FLAGS","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","FUNC_NULLABLE_ID","StatementParser","interpreter","parseInterpreterDirective","from","nextCh","parseBreakContinueStatement","parseDebuggerStatement","parseDoStatement","parseForStatement","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseWhileStatement","parseWithStatement","parseEmptyStatement","nextTokenCharCode","isAsyncFunction","maybeName","parseLabeledStatement","allowExport","currentContextDecorators","decorator","isBreak","lab","parseHeaderExpression","awaitAt","parseFor","parseVar","declarations","parseForIn","description","declarationPosition","discriminant","cases","cur","sawDefault","isCase","handler","clause","simple","finalizer","statementStart","createNewLexicalScope","afterBlockParse","parsedNonDirective","isForIn","await","isFor","isTypescript","statement","isHangingStatement","requireId","hadConstructor","publicMethod","privateMethod","publicProp","privateProp","publicMember","parseClassPropertyName","isSimple","maybeQuestionTokenStart","pushClassPrivateProperty","pushClassProperty","declarePrivateName","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","maybeParseExportNamedSpecifiers","hasDeclaration","maybeParseExportDeclaration","checkNames","isDefault","isFrom","nodes","parseNext","ClassScope","privateNames","loneAccessors","ClassScopeHandler","oldClassScope","redefined","accessor","oldStatic","newStatic","oldKind","newKind","Parser","pluginsMap","pluginMap","getParser","ast","moduleError","getParserClass","parserClassCache","pluginsFromOptions","pluginList"],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/CHANGELOG.md-565-```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/CHANGELOG.md:566:import(`./section-modules/${link.dataset.entryModule}.js`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/parser/CHANGELOG.md-567-.then(module => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/builder.js-41-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/builder.js:42:    throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/builder.js-43-  }, {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/builder.js-58-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/builder.js:59:      throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/builder.js-60-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/builder.js-78-    } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/builder.js:79:      err.stack += `\n    =============\n${rootStack}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/builder.js-80-      throw err;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/literal.js-72-  for (let i = 1; i < tpl.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/literal.js:73:    const value = `${prefix}${i - 1}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/literal.js-74-    names.push(value);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/formatters.js-9-  return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/formatters.js:10:    code: str => `/* @babel/template */;\n${str}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/formatters.js-11-    validate: () => {},
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/formatters.js-40-const expression = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/formatters.js:41:  code: str => `(\n${str}\n)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/formatters.js-42-  validate: ({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/populate.js-28-      if (!metadata.placeholderNames.has(key)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/populate.js:29:        throw new Error(`Unknown substitution "${key}" given`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/populate.js-30-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/populate.js-37-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/populate.js:38:      e.message = `@babel/template placeholder "${placeholder.name}": ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/template/lib/populate.js-39-      throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toIdentifier.js-20-  if (!(0, _isValidIdentifier.default)(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toIdentifier.js:21:    name = `_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toIdentifier.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toExpression.js-25-  if (!(0, _generated.isExpression)(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toExpression.js:26:    throw new Error(`cannot turn ${node.type} to an expression`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toExpression.js-27-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toKeyAlias.js-29-  if (node.computed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toKeyAlias.js:30:    alias = `[${alias}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toKeyAlias.js-31-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toKeyAlias.js-33-  if (node.static) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toKeyAlias.js:34:    alias = `static:${alias}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toKeyAlias.js-35-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toStatement.js-37-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toStatement.js:38:      throw new Error(`cannot turn ${node.type} to a statement`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/converters/toStatement.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-100-    for (let i = 0; i < val.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js:101:      const subkey = `${key}[${i}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-102-      const v = val[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-114-    if (values.indexOf(val) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js:115:      throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-116-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-131-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js:132:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js:148:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-149-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-159-    if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js:160:      throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-161-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-185-    if (errors.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js:186:      throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-187-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-219-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js:220:    throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-221-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-266-    if (validTypeOpts.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js:267:      throw new Error(`Unknown type option "${k}" on ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-293-      if (validFieldKeys.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js:294:        throw new Error(`Unknown field key "${k}" on ${type}.${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/utils.js-295-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/es2015.js-440-        if (node.quasis.length !== val.length + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/es2015.js:441:          throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/es2015.js-442-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-347-        if (!(0, _isValidIdentifier.default)(val, false)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js:348:          throw new TypeError(`"${val}" is not a valid identifier name`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-349-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-385-    if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name)) && node.name !== "this") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js:386:      throw new TypeError(`"${node.name}" is not a valid identifier`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-387-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-463-        if (invalid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js:464:          throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-465-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-654-    if (parent[listKey].length > index + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js:655:      throw new TypeError(`RestElement must be last element of ${listKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-656-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-802-    if (node.declarations.length !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js:803:      throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/definitions/core.js-804-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/asserts/assertNode.js-14-    const type = node && node.type || JSON.stringify(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/asserts/assertNode.js:15:    throw new TypeError(`Not a valid node of type "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/asserts/assertNode.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/asserts/generated/index.js-297-  if (!(0, _is.default)(type, node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/asserts/generated/index.js:298:    throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/asserts/generated/index.js-299-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/comments/addComments.js-9-  if (!comments || !node) return node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/comments/addComments.js:10:  const key = `${type}Comments`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/comments/addComments.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/builders/builder.js-20-  if (countArgs > keys.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/builders/builder.js:21:    throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/builders/builder.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/clone/cloneNode.js-47-  } else if (!has(_definitions.NODE_FIELDS, type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/clone/cloneNode.js:48:    throw new Error(`Unknown node type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/lib/clone/cloneNode.js-49-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js-16-writeFile(buildersFile, format(generateBuilders(), buildersFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js:17:console.log(`  ${chalk.green("✔")} Generated builders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js-18-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js-20-writeFile(validatorsFile, format(generateValidators(), validatorsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js:21:console.log(`  ${chalk.green("✔")} Generated validators`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js-22-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js-24-writeFile(assertsFile, format(generateAsserts(), assertsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js:25:console.log(`  ${chalk.green("✔")} Generated asserts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js-28-writeFile(constantsFile, format(generateConstants(), constantsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generateTypeHelpers.js:29:console.log(`  ${chalk.green("✔")} Generated constants`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/docs.js-86-        if (customTypes[key] && customTypes[key][field]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/docs.js:87:          fieldDescription.push(`: ${customTypes[key][field]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/docs.js-88-        } else if (validator) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateBuilders.js-21-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateBuilders.js:22:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateBuilders.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateBuilders.js-37-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateBuilders.js:38:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateBuilders.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateAsserts.js-20-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateAsserts.js:21:      \`Expected type "\${type}" with option \${JSON.stringify((opts: any))}, \` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateAsserts.js:22:        \`but instead got "\${node.type}".\`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateAsserts.js-23-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateConstants.js-12-  Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateConstants.js:13:    output += `export const ${type.toUpperCase()}_TYPES = FLIPPED_ALIAS_KEYS["${type}"];\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateConstants.js-14-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-109-      )}): ${NODE_PREFIX}${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:110:      `declare export { _${functionName} as ${functionName} }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-111-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-115-for (let i = 0; i < t.TYPES.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:116:  let decl = `declare function is${t.TYPES[i]}(node: ?Object, opts?: ?Object): boolean`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-117-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-118-  if (t.NODE_FIELDS[t.TYPES[i]]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:119:    decl += ` %checks (node instanceof ${NODE_PREFIX}${t.TYPES[i]})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-120-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-127-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:128:  `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-129-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:130:  `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-131-  // this smells like "internal API"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-132-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:133:  `declare function buildChildren(node: { children: Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment | ${NODE_PREFIX}JSXEmptyExpression> }): Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-134-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-154-  // converters/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:155:  `declare function ensureBlock(node: ${NODE_PREFIX}, key: string): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-156-  `declare function toBindingIdentifierName(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-157-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:158:  `declare function toBlock(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Expression, parent?: ${NODE_PREFIX}Function | null): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-159-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:160:  `declare function toComputedKey(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}Expression | ${NODE_PREFIX}Identifier): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-161-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:162:  `declare function toExpression(node: ${NODE_PREFIX}ExpressionStatement | ${NODE_PREFIX}Expression | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-163-  `declare function toIdentifier(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-164-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:165:  `declare function toKeyAlias(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-166-  // toSequenceExpression relies on types that aren't declared in flow
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-167-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:168:  `declare function toStatement(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function | ${NODE_PREFIX}AssignmentExpression, ignore?: boolean): ${NODE_PREFIX}Statement | void`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:169:  `declare function valueToNode(value: any): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-172-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:173:  `declare function removeTypeDuplicates(types: Array<${NODE_PREFIX}FlowType>): Array<${NODE_PREFIX}FlowType>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-174-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:175:  `declare function appendToMemberExpression(member: ${NODE_PREFIX}MemberExpression, append: ${NODE_PREFIX}, computed?: boolean): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-176-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:177:  `declare function inherits<T: Node>(child: T, parent: ${NODE_PREFIX} | null | void): T`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-178-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:179:  `declare function prependToMemberExpression(member: ${NODE_PREFIX}MemberExpression, prepend: ${NODE_PREFIX}Expression): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-180-  `declare function removeProperties<T>(n: T, opts: ?{}): void;`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-184-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:185:  `declare function getBindingIdentifiers(node: ${NODE_PREFIX}, duplicates: boolean, outerOnly?: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-186-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:187:  `declare function getOuterBindingIdentifiers(node: Node, duplicates: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-188-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-235-  code += `type ${NODE_PREFIX}${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js:236:    .map(type => `${NODE_PREFIX}${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/flow.js-237-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateValidators.js-7-  return (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateValidators.js:8:    leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateValidators.js-9-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateValidators.js-72-    const newType = definitions.DEPRECATED_KEYS[type];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateValidators.js:73:    const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/generateValidators.js-74-    output += addIsHelper(type, null, deprecated);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-97-    if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:98:      struct.push(`${fieldName}: ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-99-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:100:      struct.push(`"${fieldName}": ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-101-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-110-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:111:      `export function ${toFunctionName(type)}(${args.join(", ")}): ${type};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-112-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-115-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:116:      `declare function _${functionName}(${args.join(", ")}): ${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:117:      `export { _${functionName} as ${functionName}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-118-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-124-    t.NODE_FIELDS[typeName] || t.FLIPPED_ALIAS_KEYS[typeName]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:125:      ? `node is ${typeName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-126-      : "boolean";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-128-  lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:129:    `export function is${typeName}(node: object | null | undefined, opts?: object | null): ${result};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-130-    // TypeScript 3.7: https://github.com/microsoft/TypeScript/pull/32695 will allow assert declarations
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-311-  code += `/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:312: * @deprecated Use \`${t.DEPRECATED_KEYS[type]}\`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-313- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-320-  code += `export type ${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:321:    .map(type => `${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-322-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-327-for (const type in t.FLIPPED_ALIAS_KEYS) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js:328:  code += `  ${type}: ${type};\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/generators/typescript.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/utils/stringifyValidator.js-6-  if (validator.each) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/utils/stringifyValidator.js:7:    return `Array<${stringifyValidator(validator.each, nodePrefix)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-module-transforms/node_modules/@babel/types/scripts/utils/stringifyValidator.js-8-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/source-map/dist/source-map.min.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///source-map.min.js","webpack:///webpack/bootstrap 42c329f865e32e011afb","webpack:///./source-map.js","webpack:///./lib/source-map-generator.js","webpack:///./lib/base64-vlq.js","webpack:///./lib/base64.js","webpack:///./lib/util.js","webpack:///./lib/array-set.js","webpack:///./lib/mapping-list.js","webpack:///./lib/source-map-consumer.js","webpack:///./lib/binary-search.js","webpack:///./lib/quick-sort.js","webpack:///./lib/source-node.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","SourceMapGenerator","SourceMapConsumer","SourceNode","aArgs","_file","util","getArg","_sourceRoot","_skipValidation","_sources","ArraySet","_names","_mappings","MappingList","_sourcesContents","base64VLQ","prototype","_version","fromSourceMap","aSourceMapConsumer","sourceRoot","generator","file","eachMapping","mapping","newMapping","generated","line","generatedLine","column","generatedColumn","source","relative","original","originalLine","originalColumn","name","addMapping","sources","forEach","sourceFile","content","sourceContentFor","setSourceContent","_validateMapping","String","has","add","aSourceFile","aSourceContent","Object","create","toSetString","keys","length","applySourceMap","aSourceMapPath","Error","newSources","newNames","unsortedForEach","originalPositionFor","join","aGenerated","aOriginal","aSource","aName","JSON","stringify","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedColumn","previousGeneratedLine","previousOriginalColumn","previousOriginalLine","previousName","previousSource","result","mappings","toArray","i","len","compareByGeneratedPositionsInflated","encode","indexOf","_generateSourcesContent","aSources","aSourceRoot","map","key","hasOwnProperty","toJSON","version","names","sourcesContent","toString","toVLQSigned","aValue","fromVLQSigned","isNegative","shifted","base64","VLQ_BASE_SHIFT","VLQ_BASE","VLQ_BASE_MASK","VLQ_CONTINUATION_BIT","digit","encoded","vlq","decode","aStr","aIndex","aOutParam","continuation","strLen","shift","charCodeAt","charAt","value","rest","intToCharMap","split","number","TypeError","charCode","bigA","bigZ","littleA","littleZ","zero","nine","plus","slash","littleOffset","numberOffset","aDefaultValue","arguments","urlParse","aUrl","match","urlRegexp","scheme","auth","host","port","path","urlGenerate","aParsedUrl","url","normalize","aPath","part","isAbsolute","parts","up","splice","aRoot","aPathUrl","aRootUrl","dataUrlRegexp","joined","replace","level","index","lastIndexOf","slice","Array","substr","identity","s","isProtoString","fromSetString","compareByOriginalPositions","mappingA","mappingB","onlyCompareOriginal","cmp","compareByGeneratedPositionsDeflated","onlyCompareGenerated","strcmp","aStr1","aStr2","supportsNullProto","obj","_array","_set","hasNativeMap","Map","fromArray","aArray","aAllowDuplicates","set","size","getOwnPropertyNames","sStr","isDuplicate","idx","push","get","at","aIdx","generatedPositionAfter","lineA","lineB","columnA","columnB","_sorted","_last","aCallback","aThisArg","aMapping","sort","aSourceMap","sourceMap","parse","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","Mapping","lastOffset","_sections","offset","offsetLine","offsetColumn","generatedOffset","consumer","binarySearch","quickSort","__generatedMappings","defineProperty","_parseMappings","__originalMappings","_charIsMappingSeparator","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","aContext","aOrder","context","order","_generatedMappings","_originalMappings","allGeneratedPositionsFor","needle","_findMapping","undefined","lastColumn","smc","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","str","segment","end","cachedSegments","temp","originalMappings","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","search","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","some","sc","nullOnMissing","fileUriAbsPath","generatedPositionFor","constructor","j","sectionIndex","section","bias","every","generatedPosition","ret","sectionMappings","adjustedMapping","recursiveSearch","aLow","aHigh","aHaystack","aCompare","mid","Math","floor","swap","ary","x","y","randomIntInRange","low","high","round","random","doQuickSort","comparator","r","pivotIndex","pivot","q","aLine","aColumn","aChunks","children","sourceContents","isSourceNode","REGEX_NEWLINE","NEWLINE_CODE","fromStringWithSourceMap","aGeneratedCode","aRelativePath","addMappingWithCode","code","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lineContents","newLine","lastGeneratedLine","lastMapping","nextLine","aChunk","isArray","chunk","prepend","unshift","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent"],"mappings":"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","file":"source-map.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/*\n\t * Copyright 2009-2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE.txt or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\texports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\texports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;\n\texports.SourceNode = __webpack_require__(10).SourceNode;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar base64VLQ = __webpack_require__(2);\n\tvar util = __webpack_require__(4);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar MappingList = __webpack_require__(6).MappingList;\n\t\n\t/**\n\t * An instance of the SourceMapGenerator represents a source map which is\n\t * being built incrementally. You may pass an object with the following\n\t * properties:\n\t *\n\t *   - file: The filename of the generated source.\n\t *   - sourceRoot: A root for all relative URLs in this source map.\n\t */\n\tfunction SourceMapGenerator(aArgs) {\n\t  if (!aArgs) {\n\t    aArgs = {};\n\t  }\n\t  this._file = util.getArg(aArgs, 'file', null);\n\t  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n\t  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t  this._mappings = new MappingList();\n\t  this._sourcesContents = null;\n\t}\n\t\n\tSourceMapGenerator.prototype._version = 3;\n\t\n\t/**\n\t * Creates a new SourceMapGenerator based on a SourceMapConsumer\n\t *\n\t * @param aSourceMapConsumer The SourceMap.\n\t */\n\tSourceMapGenerator.fromSourceMap =\n\t  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n\t    var sourceRoot = aSourceMapConsumer.sourceRoot;\n\t    var generator = new SourceMapGenerator({\n\t      file: aSourceMapConsumer.file,\n\t      sourceRoot: sourceRoot\n\t    });\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      var newMapping = {\n\t        generated: {\n\t          line: mapping.generatedLine,\n\t          column: mapping.generatedColumn\n\t        }\n\t      };\n\t\n\t      if (mapping.source != null) {\n\t        newMapping.source = mapping.source;\n\t        if (sourceRoot != null) {\n\t          newMapping.source = util.relative(sourceRoot, newMapping.source);\n\t        }\n\t\n\t        newMapping.original = {\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        };\n\t\n\t        if (mapping.name != null) {\n\t          newMapping.name = mapping.name;\n\t        }\n\t      }\n\t\n\t      generator.addMapping(newMapping);\n\t    });\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        generator.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t    return generator;\n\t  };\n\t\n\t/**\n\t * Add a single mapping from original source line and column to the generated\n\t * source's line and column for this source map being created. The mapping\n\t * object should have the following properties:\n\t *\n\t *   - generated: An object with the generated line and column positions.\n\t *   - original: An object with the original line and column positions.\n\t *   - source: The original source file (relative to the sourceRoot).\n\t *   - name: An optional original token name for this mapping.\n\t */\n\tSourceMapGenerator.prototype.addMapping =\n\t  function SourceMapGenerator_addMapping(aArgs) {\n\t    var generated = util.getArg(aArgs, 'generated');\n\t    var original = util.getArg(aArgs, 'original', null);\n\t    var source = util.getArg(aArgs, 'source', null);\n\t    var name = util.getArg(aArgs, 'name', null);\n\t\n\t    if (!this._skipValidation) {\n\t      this._validateMapping(generated, original, source, name);\n\t    }\n\t\n\t    if (source != null) {\n\t      source = String(source);\n\t      if (!this._sources.has(source)) {\n\t        this._sources.add(source);\n\t      }\n\t    }\n\t\n\t    if (name != null) {\n\t      name = String(name);\n\t      if (!this._names.has(name)) {\n\t        this._names.add(name);\n\t      }\n\t    }\n\t\n\t    this._mappings.add({\n\t      generatedLine: generated.line,\n\t      generatedColumn: generated.column,\n\t      originalLine: original != null && original.line,\n\t      originalColumn: original != null && original.column,\n\t      source: source,\n\t      name: name\n\t    });\n\t  };\n\t\n\t/**\n\t * Set the source content for a source file.\n\t */\n\tSourceMapGenerator.prototype.setSourceContent =\n\t  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n\t    var source = aSourceFile;\n\t    if (this._sourceRoot != null) {\n\t      source = util.relative(this._sourceRoot, source);\n\t    }\n\t\n\t    if (aSourceContent != null) {\n\t      // Add the source content to the _sourcesContents map.\n\t      // Create a new _sourcesContents map if the property is null.\n\t      if (!this._sourcesContents) {\n\t        this._sourcesContents = Object.create(null);\n\t      }\n\t      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n\t    } else if (this._sourcesContents) {\n\t      // Remove the source file from the _sourcesContents map.\n\t      // If the _sourcesContents map is empty, set the property to null.\n\t      delete this._sourcesContents[util.toSetString(source)];\n\t      if (Object.keys(this._sourcesContents).length === 0) {\n\t        this._sourcesContents = null;\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Applies the mappings of a sub-source-map for a specific source file to the\n\t * source map being generated. Each mapping to the supplied source file is\n\t * rewritten using the supplied source map. Note: The resolution for the\n\t * resulting mappings is the minimium of this map and the supplied map.\n\t *\n\t * @param aSourceMapConsumer The source map to be applied.\n\t * @param aSourceFile Optional. The filename of the source file.\n\t *        If omitted, SourceMapConsumer's file property will be used.\n\t * @param aSourceMapPath Optional. The dirname of the path to the source map\n\t *        to be applied. If relative, it is relative to the SourceMapConsumer.\n\t *        This parameter is needed when the two source maps aren't in the same\n\t *        directory, and the source map to be applied contains relative source\n\t *        paths. If so, those relative source paths need to be rewritten\n\t *        relative to the SourceMapGenerator.\n\t */\n\tSourceMapGenerator.prototype.applySourceMap =\n\t  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n\t    var sourceFile = aSourceFile;\n\t    // If aSourceFile is omitted, we will use the file property of the SourceMap\n\t    if (aSourceFile == null) {\n\t      if (aSourceMapConsumer.file == null) {\n\t        throw new Error(\n\t          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n\t          'or the source map\\'s \"file\" property. Both were omitted.'\n\t        );\n\t      }\n\t      sourceFile = aSourceMapConsumer.file;\n\t    }\n\t    var sourceRoot = this._sourceRoot;\n\t    // Make \"sourceFile\" relative if an absolute Url is passed.\n\t    if (sourceRoot != null) {\n\t      sourceFile = util.relative(sourceRoot, sourceFile);\n\t    }\n\t    // Applying the SourceMap can add and remove items from the sources and\n\t    // the names array.\n\t    var newSources = new ArraySet();\n\t    var newNames = new ArraySet();\n\t\n\t    // Find mappings for the \"sourceFile\"\n\t    this._mappings.unsortedForEach(function (mapping) {\n\t      if (mapping.source === sourceFile && mapping.originalLine != null) {\n\t        // Check if it can be mapped by the source map, then update the mapping.\n\t        var original = aSourceMapConsumer.originalPositionFor({\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        });\n\t        if (original.source != null) {\n\t          // Copy mapping\n\t          mapping.source = original.source;\n\t          if (aSourceMapPath != null) {\n\t            mapping.source = util.join(aSourceMapPath, mapping.source)\n\t          }\n\t          if (sourceRoot != null) {\n\t            mapping.source = util.relative(sourceRoot, mapping.source);\n\t          }\n\t          mapping.originalLine = original.line;\n\t          mapping.originalColumn = original.column;\n\t          if (original.name != null) {\n\t            mapping.name = original.name;\n\t          }\n\t        }\n\t      }\n\t\n\t      var source = mapping.source;\n\t      if (source != null && !newSources.has(source)) {\n\t        newSources.add(source);\n\t      }\n\t\n\t      var name = mapping.name;\n\t      if (name != null && !newNames.has(name)) {\n\t        newNames.add(name);\n\t      }\n\t\n\t    }, this);\n\t    this._sources = newSources;\n\t    this._names = newNames;\n\t\n\t    // Copy sourcesContents of applied map.\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aSourceMapPath != null) {\n\t          sourceFile = util.join(aSourceMapPath, sourceFile);\n\t        }\n\t        if (sourceRoot != null) {\n\t          sourceFile = util.relative(sourceRoot, sourceFile);\n\t        }\n\t        this.setSourceContent(sourceFile, content);\n\t      }\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * A mapping can have one of the three levels of data:\n\t *\n\t *   1. Just the generated position.\n\t *   2. The Generated position, original position, and original source.\n\t *   3. Generated and original position, original source, as well as a name\n\t *      token.\n\t *\n\t * To maintain consistency, we validate that any new mapping being added falls\n\t * in to one of these categories.\n\t */\n\tSourceMapGenerator.prototype._validateMapping =\n\t  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n\t                                              aName) {\n\t    // When aOriginal is truthy but has empty values for .line and .column,\n\t    // it is most likely a programmer error. In this case we throw a very\n\t    // specific error message to try to guide them the right way.\n\t    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n\t    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n\t        throw new Error(\n\t            'original.line and original.column are not numbers -- you probably meant to omit ' +\n\t            'the original mapping entirely and only map the generated position. If so, pass ' +\n\t            'null for the original mapping instead of an object with empty or null values.'\n\t        );\n\t    }\n\t\n\t    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t        && aGenerated.line > 0 && aGenerated.column >= 0\n\t        && !aOriginal && !aSource && !aName) {\n\t      // Case 1.\n\t      return;\n\t    }\n\t    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n\t             && aGenerated.line > 0 && aGenerated.column >= 0\n\t             && aOriginal.line > 0 && aOriginal.column >= 0\n\t             && aSource) {\n\t      // Cases 2 and 3.\n\t      return;\n\t    }\n\t    else {\n\t      throw new Error('Invalid mapping: ' + JSON.stringify({\n\t        generated: aGenerated,\n\t        source: aSource,\n\t        original: aOriginal,\n\t        name: aName\n\t      }));\n\t    }\n\t  };\n\t\n\t/**\n\t * Serialize the accumulated mappings in to the stream of base 64 VLQs\n\t * specified by the source map format.\n\t */\n\tSourceMapGenerator.prototype._serializeMappings =\n\t  function SourceMapGenerator_serializeMappings() {\n\t    var previousGeneratedColumn = 0;\n\t    var previousGeneratedLine = 1;\n\t    var previousOriginalColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousName = 0;\n\t    var previousSource = 0;\n\t    var result = '';\n\t    var next;\n\t    var mapping;\n\t    var nameIdx;\n\t    var sourceIdx;\n\t\n\t    var mappings = this._mappings.toArray();\n\t    for (var i = 0, len = mappings.length; i < len; i++) {\n\t      mapping = mappings[i];\n\t      next = ''\n\t\n\t      if (mapping.generatedLine !== previousGeneratedLine) {\n\t        previousGeneratedColumn = 0;\n\t        while (mapping.generatedLine !== previousGeneratedLine) {\n\t          next += ';';\n\t          previousGeneratedLine++;\n\t        }\n\t      }\n\t      else {\n\t        if (i > 0) {\n\t          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n\t            continue;\n\t          }\n\t          next += ',';\n\t        }\n\t      }\n\t\n\t      next += base64VLQ.encode(mapping.generatedColumn\n\t                                 - previousGeneratedColumn);\n\t      previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t      if (mapping.source != null) {\n\t        sourceIdx = this._sources.indexOf(mapping.source);\n\t        next += base64VLQ.encode(sourceIdx - previousSource);\n\t        previousSource = sourceIdx;\n\t\n\t        // lines are stored 0-based in SourceMap spec version 3\n\t        next += base64VLQ.encode(mapping.originalLine - 1\n\t                                   - previousOriginalLine);\n\t        previousOriginalLine = mapping.originalLine - 1;\n\t\n\t        next += base64VLQ.encode(mapping.originalColumn\n\t                                   - previousOriginalColumn);\n\t        previousOriginalColumn = mapping.originalColumn;\n\t\n\t        if (mapping.name != null) {\n\t          nameIdx = this._names.indexOf(mapping.name);\n\t          next += base64VLQ.encode(nameIdx - previousName);\n\t          previousName = nameIdx;\n\t        }\n\t      }\n\t\n\t      result += next;\n\t    }\n\t\n\t    return result;\n\t  };\n\t\n\tSourceMapGenerator.prototype._generateSourcesContent =\n\t  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n\t    return aSources.map(function (source) {\n\t      if (!this._sourcesContents) {\n\t        return null;\n\t      }\n\t      if (aSourceRoot != null) {\n\t        source = util.relative(aSourceRoot, source);\n\t      }\n\t      var key = util.toSetString(source);\n\t      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n\t        ? this._sourcesContents[key]\n\t        : null;\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * Externalize the source map.\n\t */\n\tSourceMapGenerator.prototype.toJSON =\n\t  function SourceMapGenerator_toJSON() {\n\t    var map = {\n\t      version: this._version,\n\t      sources: this._sources.toArray(),\n\t      names: this._names.toArray(),\n\t      mappings: this._serializeMappings()\n\t    };\n\t    if (this._file != null) {\n\t      map.file = this._file;\n\t    }\n\t    if (this._sourceRoot != null) {\n\t      map.sourceRoot = this._sourceRoot;\n\t    }\n\t    if (this._sourcesContents) {\n\t      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n\t    }\n\t\n\t    return map;\n\t  };\n\t\n\t/**\n\t * Render the source map being generated to a string.\n\t */\n\tSourceMapGenerator.prototype.toString =\n\t  function SourceMapGenerator_toString() {\n\t    return JSON.stringify(this.toJSON());\n\t  };\n\t\n\texports.SourceMapGenerator = SourceMapGenerator;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t *  * Redistributions of source code must retain the above copyright\n\t *    notice, this list of conditions and the following disclaimer.\n\t *  * Redistributions in binary form must reproduce the above\n\t *    copyright notice, this list of conditions and the following\n\t *    disclaimer in the documentation and/or other materials provided\n\t *    with the distribution.\n\t *  * Neither the name of Google Inc. nor the names of its\n\t *    contributors may be used to endorse or promote products derived\n\t *    from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\t\n\tvar base64 = __webpack_require__(3);\n\t\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t//   Continuation\n\t//   |    Sign\n\t//   |    |\n\t//   V    V\n\t//   101011\n\t\n\tvar VLQ_BASE_SHIFT = 5;\n\t\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\t\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\t\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\t\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t  return aValue < 0\n\t    ? ((-aValue) << 1) + 1\n\t    : (aValue << 1) + 0;\n\t}\n\t\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t  var isNegative = (aValue & 1) === 1;\n\t  var shifted = aValue >> 1;\n\t  return isNegative\n\t    ? -shifted\n\t    : shifted;\n\t}\n\t\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t  var encoded = \"\";\n\t  var digit;\n\t\n\t  var vlq = toVLQSigned(aValue);\n\t\n\t  do {\n\t    digit = vlq & VLQ_BASE_MASK;\n\t    vlq >>>= VLQ_BASE_SHIFT;\n\t    if (vlq > 0) {\n\t      // There are still more digits in this value, so we must make sure the\n\t      // continuation bit is marked.\n\t      digit |= VLQ_CONTINUATION_BIT;\n\t    }\n\t    encoded += base64.encode(digit);\n\t  } while (vlq > 0);\n\t\n\t  return encoded;\n\t};\n\t\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t  var strLen = aStr.length;\n\t  var result = 0;\n\t  var shift = 0;\n\t  var continuation, digit;\n\t\n\t  do {\n\t    if (aIndex >= strLen) {\n\t      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t    }\n\t\n\t    digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t    if (digit === -1) {\n\t      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t    }\n\t\n\t    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t    digit &= VLQ_BASE_MASK;\n\t    result = result + (digit << shift);\n\t    shift += VLQ_BASE_SHIFT;\n\t  } while (continuation);\n\t\n\t  aOutParam.value = fromVLQSigned(result);\n\t  aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\t\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t  if (0 <= number && number < intToCharMap.length) {\n\t    return intToCharMap[number];\n\t  }\n\t  throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\t\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t  var bigA = 65;     // 'A'\n\t  var bigZ = 90;     // 'Z'\n\t\n\t  var littleA = 97;  // 'a'\n\t  var littleZ = 122; // 'z'\n\t\n\t  var zero = 48;     // '0'\n\t  var nine = 57;     // '9'\n\t\n\t  var plus = 43;     // '+'\n\t  var slash = 47;    // '/'\n\t\n\t  var littleOffset = 26;\n\t  var numberOffset = 52;\n\t\n\t  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t  if (bigA <= charCode && charCode <= bigZ) {\n\t    return (charCode - bigA);\n\t  }\n\t\n\t  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t  if (littleA <= charCode && charCode <= littleZ) {\n\t    return (charCode - littleA + littleOffset);\n\t  }\n\t\n\t  // 52 - 61: 0123456789\n\t  if (zero <= charCode && charCode <= nine) {\n\t    return (charCode - zero + numberOffset);\n\t  }\n\t\n\t  // 62: +\n\t  if (charCode == plus) {\n\t    return 62;\n\t  }\n\t\n\t  // 63: /\n\t  if (charCode == slash) {\n\t    return 63;\n\t  }\n\t\n\t  // Invalid base64 digit.\n\t  return -1;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t  if (aName in aArgs) {\n\t    return aArgs[aName];\n\t  } else if (arguments.length === 3) {\n\t    return aDefaultValue;\n\t  } else {\n\t    throw new Error('\"' + aName + '\" is a required argument.');\n\t  }\n\t}\n\texports.getArg = getArg;\n\t\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\t\n\tfunction urlParse(aUrl) {\n\t  var match = aUrl.match(urlRegexp);\n\t  if (!match) {\n\t    return null;\n\t  }\n\t  return {\n\t    scheme: match[1],\n\t    auth: match[2],\n\t    host: match[3],\n\t    port: match[4],\n\t    path: match[5]\n\t  };\n\t}\n\texports.urlParse = urlParse;\n\t\n\tfunction urlGenerate(aParsedUrl) {\n\t  var url = '';\n\t  if (aParsedUrl.scheme) {\n\t    url += aParsedUrl.scheme + ':';\n\t  }\n\t  url += '//';\n\t  if (aParsedUrl.auth) {\n\t    url += aParsedUrl.auth + '@';\n\t  }\n\t  if (aParsedUrl.host) {\n\t    url += aParsedUrl.host;\n\t  }\n\t  if (aParsedUrl.port) {\n\t    url += \":\" + aParsedUrl.port\n\t  }\n\t  if (aParsedUrl.path) {\n\t    url += aParsedUrl.path;\n\t  }\n\t  return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\t\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t  var path = aPath;\n\t  var url = urlParse(aPath);\n\t  if (url) {\n\t    if (!url.path) {\n\t      return aPath;\n\t    }\n\t    path = url.path;\n\t  }\n\t  var isAbsolute = exports.isAbsolute(path);\n\t\n\t  var parts = path.split(/\\/+/);\n\t  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t    part = parts[i];\n\t    if (part === '.') {\n\t      parts.splice(i, 1);\n\t    } else if (part === '..') {\n\t      up++;\n\t    } else if (up > 0) {\n\t      if (part === '') {\n\t        // The first part is blank if the path is absolute. Trying to go\n\t        // above the root is a no-op. Therefore we can remove all '..' parts\n\t        // directly after the root.\n\t        parts.splice(i + 1, up);\n\t        up = 0;\n\t      } else {\n\t        parts.splice(i, 2);\n\t        up--;\n\t      }\n\t    }\n\t  }\n\t  path = parts.join('/');\n\t\n\t  if (path === '') {\n\t    path = isAbsolute ? '/' : '.';\n\t  }\n\t\n\t  if (url) {\n\t    url.path = path;\n\t    return urlGenerate(url);\n\t  }\n\t  return path;\n\t}\n\texports.normalize = normalize;\n\t\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t *   first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t *   is updated with the result and aRoot is returned. Otherwise the result\n\t *   is returned.\n\t *   - If aPath is absolute, the result is aPath.\n\t *   - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t  if (aPath === \"\") {\n\t    aPath = \".\";\n\t  }\n\t  var aPathUrl = urlParse(aPath);\n\t  var aRootUrl = urlParse(aRoot);\n\t  if (aRootUrl) {\n\t    aRoot = aRootUrl.path || '/';\n\t  }\n\t\n\t  // `join(foo, '//www.example.org')`\n\t  if (aPathUrl && !aPathUrl.scheme) {\n\t    if (aRootUrl) {\n\t      aPathUrl.scheme = aRootUrl.scheme;\n\t    }\n\t    return urlGenerate(aPathUrl);\n\t  }\n\t\n\t  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t    return aPath;\n\t  }\n\t\n\t  // `join('http://', 'www.example.com')`\n\t  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t    aRootUrl.host = aPath;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t\n\t  var joined = aPath.charAt(0) === '/'\n\t    ? aPath\n\t    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\t\n\t  if (aRootUrl) {\n\t    aRootUrl.path = joined;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t  return joined;\n\t}\n\texports.join = join;\n\t\n\texports.isAbsolute = function (aPath) {\n\t  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\t\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t\n\t  aRoot = aRoot.replace(/\\/$/, '');\n\t\n\t  // It is possible for the path to be above the root. In this case, simply\n\t  // checking whether the root is a prefix of the path won't work. Instead, we\n\t  // need to remove components from the root one by one, until either we find\n\t  // a prefix that fits, or we run out of components to remove.\n\t  var level = 0;\n\t  while (aPath.indexOf(aRoot + '/') !== 0) {\n\t    var index = aRoot.lastIndexOf(\"/\");\n\t    if (index < 0) {\n\t      return aPath;\n\t    }\n\t\n\t    // If the only part of the root that is left is the scheme (i.e. http://,\n\t    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t    // have exhausted all components, so the path is not relative to the root.\n\t    aRoot = aRoot.slice(0, index);\n\t    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t      return aPath;\n\t    }\n\t\n\t    ++level;\n\t  }\n\t\n\t  // Make sure we add a \"../\" for each component we removed from the root.\n\t  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\t\n\tvar supportsNullProto = (function () {\n\t  var obj = Object.create(null);\n\t  return !('__proto__' in obj);\n\t}());\n\t\n\tfunction identity (s) {\n\t  return s;\n\t}\n\t\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return '$' + aStr;\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\t\n\tfunction fromSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return aStr.slice(1);\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\t\n\tfunction isProtoString(s) {\n\t  if (!s) {\n\t    return false;\n\t  }\n\t\n\t  var length = s.length;\n\t\n\t  if (length < 9 /* \"__proto__\".length */) {\n\t    return false;\n\t  }\n\t\n\t  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n\t    return false;\n\t  }\n\t\n\t  for (var i = length - 10; i >= 0; i--) {\n\t    if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t      return false;\n\t    }\n\t  }\n\t\n\t  return true;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t  var cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0 || onlyCompareOriginal) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\t\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0 || onlyCompareGenerated) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\t\n\tfunction strcmp(aStr1, aStr2) {\n\t  if (aStr1 === aStr2) {\n\t    return 0;\n\t  }\n\t\n\t  if (aStr1 > aStr2) {\n\t    return 1;\n\t  }\n\t\n\t  return -1;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar hasNativeMap = typeof Map !== \"undefined\";\n\t\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t  this._array = [];\n\t  this._set = hasNativeMap ? new Map() : Object.create(null);\n\t}\n\t\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t  var set = new ArraySet();\n\t  for (var i = 0, len = aArray.length; i < len; i++) {\n\t    set.add(aArray[i], aAllowDuplicates);\n\t  }\n\t  return set;\n\t};\n\t\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n\t};\n\t\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n\t  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n\t  var idx = this._array.length;\n\t  if (!isDuplicate || aAllowDuplicates) {\n\t    this._array.push(aStr);\n\t  }\n\t  if (!isDuplicate) {\n\t    if (hasNativeMap) {\n\t      this._set.set(aStr, idx);\n\t    } else {\n\t      this._set[sStr] = idx;\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t  if (hasNativeMap) {\n\t    return this._set.has(aStr);\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    return has.call(this._set, sStr);\n\t  }\n\t};\n\t\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t  if (hasNativeMap) {\n\t    var idx = this._set.get(aStr);\n\t    if (idx >= 0) {\n\t        return idx;\n\t    }\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    if (has.call(this._set, sStr)) {\n\t      return this._set[sStr];\n\t    }\n\t  }\n\t\n\t  throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\t\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t  if (aIdx >= 0 && aIdx < this._array.length) {\n\t    return this._array[aIdx];\n\t  }\n\t  throw new Error('No element indexed by ' + aIdx);\n\t};\n\t\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t  return this._array.slice();\n\t};\n\t\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2014 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\t\n\t/**\n\t * Determine whether mappingB is after mappingA with respect to generated\n\t * position.\n\t */\n\tfunction generatedPositionAfter(mappingA, mappingB) {\n\t  // Optimized for most common case\n\t  var lineA = mappingA.generatedLine;\n\t  var lineB = mappingB.generatedLine;\n\t  var columnA = mappingA.generatedColumn;\n\t  var columnB = mappingB.generatedColumn;\n\t  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n\t         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n\t}\n\t\n\t/**\n\t * A data structure to provide a sorted view of accumulated mappings in a\n\t * performance conscious manner. It trades a neglibable overhead in general\n\t * case for a large speedup in case of mappings being added in order.\n\t */\n\tfunction MappingList() {\n\t  this._array = [];\n\t  this._sorted = true;\n\t  // Serves as infimum\n\t  this._last = {generatedLine: -1, generatedColumn: 0};\n\t}\n\t\n\t/**\n\t * Iterate through internal items. This method takes the same arguments that\n\t * `Array.prototype.forEach` takes.\n\t *\n\t * NOTE: The order of the mappings is NOT guaranteed.\n\t */\n\tMappingList.prototype.unsortedForEach =\n\t  function MappingList_forEach(aCallback, aThisArg) {\n\t    this._array.forEach(aCallback, aThisArg);\n\t  };\n\t\n\t/**\n\t * Add the given source mapping.\n\t *\n\t * @param Object aMapping\n\t */\n\tMappingList.prototype.add = function MappingList_add(aMapping) {\n\t  if (generatedPositionAfter(this._last, aMapping)) {\n\t    this._last = aMapping;\n\t    this._array.push(aMapping);\n\t  } else {\n\t    this._sorted = false;\n\t    this._array.push(aMapping);\n\t  }\n\t};\n\t\n\t/**\n\t * Returns the flat, sorted array of mappings. The mappings are sorted by\n\t * generated position.\n\t *\n\t * WARNING: This method returns internal data without copying, for\n\t * performance. The return value must NOT be mutated, and should be treated as\n\t * an immutable borrow. If you want to take ownership, you must make your own\n\t * copy.\n\t */\n\tMappingList.prototype.toArray = function MappingList_toArray() {\n\t  if (!this._sorted) {\n\t    this._array.sort(util.compareByGeneratedPositionsInflated);\n\t    this._sorted = true;\n\t  }\n\t  return this._array;\n\t};\n\t\n\texports.MappingList = MappingList;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar binarySearch = __webpack_require__(8);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar base64VLQ = __webpack_require__(2);\n\tvar quickSort = __webpack_require__(9).quickSort;\n\t\n\tfunction SourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  return sourceMap.sections != null\n\t    ? new IndexedSourceMapConsumer(sourceMap)\n\t    : new BasicSourceMapConsumer(sourceMap);\n\t}\n\t\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\t\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t//     {\n\t//       generatedLine: The line number in the generated code,\n\t//       generatedColumn: The column number in the generated code,\n\t//       source: The path to the original source file that generated this\n\t//               chunk of code,\n\t//       originalLine: The line number in the original source that\n\t//                     corresponds to this chunk of generated code,\n\t//       originalColumn: The column number in the original source that\n\t//                       corresponds to this chunk of generated code,\n\t//       name: The name of the original symbol which generated this chunk of\n\t//             code.\n\t//     }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\t\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t  get: function () {\n\t    if (!this.__generatedMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__generatedMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t  get: function () {\n\t    if (!this.__originalMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__originalMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t    var c = aStr.charAt(index);\n\t    return c === \";\" || c === \",\";\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    throw new Error(\"Subclasses must implement _parseMappings\");\n\t  };\n\t\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\t\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t *        The function that is called with each mapping.\n\t * @param Object aContext\n\t *        Optional. If specified, this object will be the value of `this` every\n\t *        time that `aCallback` is called.\n\t * @param aOrder\n\t *        Either `SourceMapConsumer.GENERATED_ORDER` or\n\t *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t *        iterate over the mappings sorted by the generated file's line/column\n\t *        order or the original's source/line/column order, respectively. Defaults to\n\t *        `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t    var context = aContext || null;\n\t    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\t\n\t    var mappings;\n\t    switch (order) {\n\t    case SourceMapConsumer.GENERATED_ORDER:\n\t      mappings = this._generatedMappings;\n\t      break;\n\t    case SourceMapConsumer.ORIGINAL_ORDER:\n\t      mappings = this._originalMappings;\n\t      break;\n\t    default:\n\t      throw new Error(\"Unknown order of iteration.\");\n\t    }\n\t\n\t    var sourceRoot = this.sourceRoot;\n\t    mappings.map(function (mapping) {\n\t      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t      if (source != null && sourceRoot != null) {\n\t        source = util.join(sourceRoot, source);\n\t      }\n\t      return {\n\t        source: source,\n\t        generatedLine: mapping.generatedLine,\n\t        generatedColumn: mapping.generatedColumn,\n\t        originalLine: mapping.originalLine,\n\t        originalColumn: mapping.originalColumn,\n\t        name: mapping.name === null ? null : this._names.at(mapping.name)\n\t      };\n\t    }, this).forEach(aCallback, context);\n\t  };\n\t\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t    var line = util.getArg(aArgs, 'line');\n\t\n\t    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t    // returns the index of the closest mapping less than the needle. By\n\t    // setting needle.originalColumn to 0, we thus find the last mapping for\n\t    // the given line, provided such a mapping exists.\n\t    var needle = {\n\t      source: util.getArg(aArgs, 'source'),\n\t      originalLine: line,\n\t      originalColumn: util.getArg(aArgs, 'column', 0)\n\t    };\n\t\n\t    if (this.sourceRoot != null) {\n\t      needle.source = util.relative(this.sourceRoot, needle.source);\n\t    }\n\t    if (!this._sources.has(needle.source)) {\n\t      return [];\n\t    }\n\t    needle.source = this._sources.indexOf(needle.source);\n\t\n\t    var mappings = [];\n\t\n\t    var index = this._findMapping(needle,\n\t                                  this._originalMappings,\n\t                                  \"originalLine\",\n\t                                  \"originalColumn\",\n\t                                  util.compareByOriginalPositions,\n\t                                  binarySearch.LEAST_UPPER_BOUND);\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (aArgs.column === undefined) {\n\t        var originalLine = mapping.originalLine;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we found. Since\n\t        // mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we found.\n\t        while (mapping && mapping.originalLine === originalLine) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      } else {\n\t        var originalColumn = mapping.originalColumn;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we were searching for.\n\t        // Since mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we are searching for.\n\t        while (mapping &&\n\t               mapping.originalLine === line &&\n\t               mapping.originalColumn == originalColumn) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      }\n\t    }\n\t\n\t    return mappings;\n\t  };\n\t\n\texports.SourceMapConsumer = SourceMapConsumer;\n\t\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - sources: An array of URLs to the original source files.\n\t *   - names: An array of identifiers which can be referrenced by individual mappings.\n\t *   - sourceRoot: Optional. The URL root from which all sources are relative.\n\t *   - sourcesContent: Optional. An array of contents of the original source files.\n\t *   - mappings: A string of base64 VLQs which contain the actual mappings.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t *     {\n\t *       version : 3,\n\t *       file: \"out.js\",\n\t *       sourceRoot : \"\",\n\t *       sources: [\"foo.js\", \"bar.js\"],\n\t *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *       mappings: \"AA,AB;;ABCDE;\"\n\t *     }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sources = util.getArg(sourceMap, 'sources');\n\t  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t  // requires the array) to play nice here.\n\t  var names = util.getArg(sourceMap, 'names', []);\n\t  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t  var mappings = util.getArg(sourceMap, 'mappings');\n\t  var file = util.getArg(sourceMap, 'file', null);\n\t\n\t  // Once again, Sass deviates from the spec and supplies the version as a\n\t  // string rather than a number, so we use loose equality checking here.\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  sources = sources\n\t    .map(String)\n\t    // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n\t    // See bugzil.la/1090768.\n\t    .map(util.normalize)\n\t    // Always ensure that absolute sources are internally stored relative to\n\t    // the source root, if the source root is absolute. Not doing this would\n\t    // be particularly problematic when the source root is a prefix of the\n\t    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t    .map(function (source) {\n\t      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t        ? util.relative(sourceRoot, source)\n\t        : source;\n\t    });\n\t\n\t  // Pass `true` below to allow duplicate names and sources. While source maps\n\t  // are intended to be compressed and deduplicated, the TypeScript compiler\n\t  // sometimes generates source maps with duplicates in them. See Github issue\n\t  // #72 and bugzil.la/889492.\n\t  this._names = ArraySet.fromArray(names.map(String), true);\n\t  this._sources = ArraySet.fromArray(sources, true);\n\t\n\t  this.sourceRoot = sourceRoot;\n\t  this.sourcesContent = sourcesContent;\n\t  this._mappings = mappings;\n\t  this.file = file;\n\t}\n\t\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\t\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t *        The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\t\n\t    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t    smc.sourceRoot = aSourceMap._sourceRoot;\n\t    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t                                                            smc.sourceRoot);\n\t    smc.file = aSourceMap._file;\n\t\n\t    // Because we are modifying the entries (by converting string sources and\n\t    // names to indices into the sources and names ArraySets), we have to make\n\t    // a copy of the entry or else bad things happen. Shared mutable state\n\t    // strikes again! See github issue #191.\n\t\n\t    var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t    var destGeneratedMappings = smc.__generatedMappings = [];\n\t    var destOriginalMappings = smc.__originalMappings = [];\n\t\n\t    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t      var srcMapping = generatedMappings[i];\n\t      var destMapping = new Mapping;\n\t      destMapping.generatedLine = srcMapping.generatedLine;\n\t      destMapping.generatedColumn = srcMapping.generatedColumn;\n\t\n\t      if (srcMapping.source) {\n\t        destMapping.source = sources.indexOf(srcMapping.source);\n\t        destMapping.originalLine = srcMapping.originalLine;\n\t        destMapping.originalColumn = srcMapping.originalColumn;\n\t\n\t        if (srcMapping.name) {\n\t          destMapping.name = names.indexOf(srcMapping.name);\n\t        }\n\t\n\t        destOriginalMappings.push(destMapping);\n\t      }\n\t\n\t      destGeneratedMappings.push(destMapping);\n\t    }\n\t\n\t    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\t\n\t    return smc;\n\t  };\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    return this._sources.toArray().map(function (s) {\n\t      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t    }, this);\n\t  }\n\t});\n\t\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t  this.generatedLine = 0;\n\t  this.generatedColumn = 0;\n\t  this.source = null;\n\t  this.originalLine = null;\n\t  this.originalColumn = null;\n\t  this.name = null;\n\t}\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    var generatedLine = 1;\n\t    var previousGeneratedColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousOriginalColumn = 0;\n\t    var previousSource = 0;\n\t    var previousName = 0;\n\t    var length = aStr.length;\n\t    var index = 0;\n\t    var cachedSegments = {};\n\t    var temp = {};\n\t    var originalMappings = [];\n\t    var generatedMappings = [];\n\t    var mapping, str, segment, end, value;\n\t\n\t    while (index < length) {\n\t      if (aStr.charAt(index) === ';') {\n\t        generatedLine++;\n\t        index++;\n\t        previousGeneratedColumn = 0;\n\t      }\n\t      else if (aStr.charAt(index) === ',') {\n\t        index++;\n\t      }\n\t      else {\n\t        mapping = new Mapping();\n\t        mapping.generatedLine = generatedLine;\n\t\n\t        // Because each offset is encoded relative to the previous one,\n\t        // many segments often have the same encoding. We can exploit this\n\t        // fact by caching the parsed variable length fields of each segment,\n\t        // allowing us to avoid a second parse if we encounter the same\n\t        // segment again.\n\t        for (end = index; end < length; end++) {\n\t          if (this._charIsMappingSeparator(aStr, end)) {\n\t            break;\n\t          }\n\t        }\n\t        str = aStr.slice(index, end);\n\t\n\t        segment = cachedSegments[str];\n\t        if (segment) {\n\t          index += str.length;\n\t        } else {\n\t          segment = [];\n\t          while (index < end) {\n\t            base64VLQ.decode(aStr, index, temp);\n\t            value = temp.value;\n\t            index = temp.rest;\n\t            segment.push(value);\n\t          }\n\t\n\t          if (segment.length === 2) {\n\t            throw new Error('Found a source, but no line and column');\n\t          }\n\t\n\t          if (segment.length === 3) {\n\t            throw new Error('Found a source and line, but no column');\n\t          }\n\t\n\t          cachedSegments[str] = segment;\n\t        }\n\t\n\t        // Generated column.\n\t        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t        previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t        if (segment.length > 1) {\n\t          // Original source.\n\t          mapping.source = previousSource + segment[1];\n\t          previousSource += segment[1];\n\t\n\t          // Original line.\n\t          mapping.originalLine = previousOriginalLine + segment[2];\n\t          previousOriginalLine = mapping.originalLine;\n\t          // Lines are stored 0-based\n\t          mapping.originalLine += 1;\n\t\n\t          // Original column.\n\t          mapping.originalColumn = previousOriginalColumn + segment[3];\n\t          previousOriginalColumn = mapping.originalColumn;\n\t\n\t          if (segment.length > 4) {\n\t            // Original name.\n\t            mapping.name = previousName + segment[4];\n\t            previousName += segment[4];\n\t          }\n\t        }\n\t\n\t        generatedMappings.push(mapping);\n\t        if (typeof mapping.originalLine === 'number') {\n\t          originalMappings.push(mapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    this.__generatedMappings = generatedMappings;\n\t\n\t    quickSort(originalMappings, util.compareByOriginalPositions);\n\t    this.__originalMappings = originalMappings;\n\t  };\n\t\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t                                         aColumnName, aComparator, aBias) {\n\t    // To return the position we are searching for, we must first find the\n\t    // mapping for the given position and then return the opposite position it\n\t    // points to. Because the mappings are sorted, we can use binary search to\n\t    // find the best mapping.\n\t\n\t    if (aNeedle[aLineName] <= 0) {\n\t      throw new TypeError('Line must be greater than or equal to 1, got '\n\t                          + aNeedle[aLineName]);\n\t    }\n\t    if (aNeedle[aColumnName] < 0) {\n\t      throw new TypeError('Column must be greater than or equal to 0, got '\n\t                          + aNeedle[aColumnName]);\n\t    }\n\t\n\t    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t  };\n\t\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t  function SourceMapConsumer_computeColumnSpans() {\n\t    for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      // Mappings do not contain a field for the last generated columnt. We\n\t      // can come up with an optimistic estimate, however, by assuming that\n\t      // mappings are contiguous (i.e. given two consecutive mappings, the\n\t      // first mapping ends where the second one starts).\n\t      if (index + 1 < this._generatedMappings.length) {\n\t        var nextMapping = this._generatedMappings[index + 1];\n\t\n\t        if (mapping.generatedLine === nextMapping.generatedLine) {\n\t          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t          continue;\n\t        }\n\t      }\n\t\n\t      // The last mapping for each line spans the entire line.\n\t      mapping.lastGeneratedColumn = Infinity;\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t  function SourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._generatedMappings,\n\t      \"generatedLine\",\n\t      \"generatedColumn\",\n\t      util.compareByGeneratedPositionsDeflated,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      if (mapping.generatedLine === needle.generatedLine) {\n\t        var source = util.getArg(mapping, 'source', null);\n\t        if (source !== null) {\n\t          source = this._sources.at(source);\n\t          if (this.sourceRoot != null) {\n\t            source = util.join(this.sourceRoot, source);\n\t          }\n\t        }\n\t        var name = util.getArg(mapping, 'name', null);\n\t        if (name !== null) {\n\t          name = this._names.at(name);\n\t        }\n\t        return {\n\t          source: source,\n\t          line: util.getArg(mapping, 'originalLine', null),\n\t          column: util.getArg(mapping, 'originalColumn', null),\n\t          name: name\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      source: null,\n\t      line: null,\n\t      column: null,\n\t      name: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t    if (!this.sourcesContent) {\n\t      return false;\n\t    }\n\t    return this.sourcesContent.length >= this._sources.size() &&\n\t      !this.sourcesContent.some(function (sc) { return sc == null; });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    if (!this.sourcesContent) {\n\t      return null;\n\t    }\n\t\n\t    if (this.sourceRoot != null) {\n\t      aSource = util.relative(this.sourceRoot, aSource);\n\t    }\n\t\n\t    if (this._sources.has(aSource)) {\n\t      return this.sourcesContent[this._sources.indexOf(aSource)];\n\t    }\n\t\n\t    var url;\n\t    if (this.sourceRoot != null\n\t        && (url = util.urlParse(this.sourceRoot))) {\n\t      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t      // many users. We can help them out when they expect file:// URIs to\n\t      // behave like it would if they were running a local HTTP server. See\n\t      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t      if (url.scheme == \"file\"\n\t          && this._sources.has(fileUriAbsPath)) {\n\t        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t      }\n\t\n\t      if ((!url.path || url.path == \"/\")\n\t          && this._sources.has(\"/\" + aSource)) {\n\t        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t      }\n\t    }\n\t\n\t    // This function is used recursively from\n\t    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t    // don't want to throw if we can't find the source - we just want to\n\t    // return null, so we provide a flag to exit gracefully.\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t  function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t    var source = util.getArg(aArgs, 'source');\n\t    if (this.sourceRoot != null) {\n\t      source = util.relative(this.sourceRoot, source);\n\t    }\n\t    if (!this._sources.has(source)) {\n\t      return {\n\t        line: null,\n\t        column: null,\n\t        lastColumn: null\n\t      };\n\t    }\n\t    source = this._sources.indexOf(source);\n\t\n\t    var needle = {\n\t      source: source,\n\t      originalLine: util.getArg(aArgs, 'line'),\n\t      originalColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._originalMappings,\n\t      \"originalLine\",\n\t      \"originalColumn\",\n\t      util.compareByOriginalPositions,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (mapping.source === needle.source) {\n\t        return {\n\t          line: util.getArg(mapping, 'generatedLine', null),\n\t          column: util.getArg(mapping, 'generatedColumn', null),\n\t          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null,\n\t      lastColumn: null\n\t    };\n\t  };\n\t\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\t\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *   - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t *   - offset: The offset into the original specified at which this section\n\t *       begins to apply, defined as an object with a \"line\" and \"column\"\n\t *       field.\n\t *   - map: A source map definition. This source map could also be indexed,\n\t *       but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t *  {\n\t *    version : 3,\n\t *    file: \"app.js\",\n\t *    sections: [{\n\t *      offset: {line:100, column:10},\n\t *      map: {\n\t *        version : 3,\n\t *        file: \"section.js\",\n\t *        sources: [\"foo.js\", \"bar.js\"],\n\t *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *        mappings: \"AAAA,E;;ABCDE;\"\n\t *      }\n\t *    }],\n\t *  }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sections = util.getArg(sourceMap, 'sections');\n\t\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t\n\t  var lastOffset = {\n\t    line: -1,\n\t    column: 0\n\t  };\n\t  this._sections = sections.map(function (s) {\n\t    if (s.url) {\n\t      // The url field will require support for asynchronicity.\n\t      // See https://github.com/mozilla/source-map/issues/16\n\t      throw new Error('Support for url field in sections not implemented.');\n\t    }\n\t    var offset = util.getArg(s, 'offset');\n\t    var offsetLine = util.getArg(offset, 'line');\n\t    var offsetColumn = util.getArg(offset, 'column');\n\t\n\t    if (offsetLine < lastOffset.line ||\n\t        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t      throw new Error('Section offsets must be ordered and non-overlapping.');\n\t    }\n\t    lastOffset = offset;\n\t\n\t    return {\n\t      generatedOffset: {\n\t        // The offset fields are 0-based, but we use 1-based indices when\n\t        // encoding/decoding from VLQ.\n\t        generatedLine: offsetLine + 1,\n\t        generatedColumn: offsetColumn + 1\n\t      },\n\t      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t    }\n\t  });\n\t}\n\t\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    var sources = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t        sources.push(this._sections[i].consumer.sources[j]);\n\t      }\n\t    }\n\t    return sources;\n\t  }\n\t});\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    // Find the section containing the generated position we're trying to map\n\t    // to an original position.\n\t    var sectionIndex = binarySearch.search(needle, this._sections,\n\t      function(needle, section) {\n\t        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t        if (cmp) {\n\t          return cmp;\n\t        }\n\t\n\t        return (needle.generatedColumn -\n\t                section.generatedOffset.generatedColumn);\n\t      });\n\t    var section = this._sections[sectionIndex];\n\t\n\t    if (!section) {\n\t      return {\n\t        source: null,\n\t        line: null,\n\t        column: null,\n\t        name: null\n\t      };\n\t    }\n\t\n\t    return section.consumer.originalPositionFor({\n\t      line: needle.generatedLine -\n\t        (section.generatedOffset.generatedLine - 1),\n\t      column: needle.generatedColumn -\n\t        (section.generatedOffset.generatedLine === needle.generatedLine\n\t         ? section.generatedOffset.generatedColumn - 1\n\t         : 0),\n\t      bias: aArgs.bias\n\t    });\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t    return this._sections.every(function (s) {\n\t      return s.consumer.hasContentsOfAllSources();\n\t    });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      var content = section.consumer.sourceContentFor(aSource, true);\n\t      if (content) {\n\t        return content;\n\t      }\n\t    }\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      // Only consider this section if the requested source is in the list of\n\t      // sources of the consumer.\n\t      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t        continue;\n\t      }\n\t      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t      if (generatedPosition) {\n\t        var ret = {\n\t          line: generatedPosition.line +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          column: generatedPosition.column +\n\t            (section.generatedOffset.generatedLine === generatedPosition.line\n\t             ? section.generatedOffset.generatedColumn - 1\n\t             : 0)\n\t        };\n\t        return ret;\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    this.__generatedMappings = [];\n\t    this.__originalMappings = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t      var sectionMappings = section.consumer._generatedMappings;\n\t      for (var j = 0; j < sectionMappings.length; j++) {\n\t        var mapping = sectionMappings[j];\n\t\n\t        var source = section.consumer._sources.at(mapping.source);\n\t        if (section.consumer.sourceRoot !== null) {\n\t          source = util.join(section.consumer.sourceRoot, source);\n\t        }\n\t        this._sources.add(source);\n\t        source = this._sources.indexOf(source);\n\t\n\t        var name = section.consumer._names.at(mapping.name);\n\t        this._names.add(name);\n\t        name = this._names.indexOf(name);\n\t\n\t        // The mappings coming from the consumer for the section have\n\t        // generated positions relative to the start of the section, so we\n\t        // need to offset them to be relative to the start of the concatenated\n\t        // generated file.\n\t        var adjustedMapping = {\n\t          source: source,\n\t          generatedLine: mapping.generatedLine +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          generatedColumn: mapping.generatedColumn +\n\t            (section.generatedOffset.generatedLine === mapping.generatedLine\n\t            ? section.generatedOffset.generatedColumn - 1\n\t            : 0),\n\t          originalLine: mapping.originalLine,\n\t          originalColumn: mapping.originalColumn,\n\t          name: name\n\t        };\n\t\n\t        this.__generatedMappings.push(adjustedMapping);\n\t        if (typeof adjustedMapping.originalLine === 'number') {\n\t          this.__originalMappings.push(adjustedMapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t  };\n\t\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t  // This function terminates when one of the following is true:\n\t  //\n\t  //   1. We find the exact element we are looking for.\n\t  //\n\t  //   2. We did not find the exact element, but we can return the index of\n\t  //      the next-closest element.\n\t  //\n\t  //   3. We did not find the exact element, and there is no next-closest\n\t  //      element than the one we are searching for, so we return -1.\n\t  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t  if (cmp === 0) {\n\t    // Found the element we are looking for.\n\t    return mid;\n\t  }\n\t  else if (cmp > 0) {\n\t    // Our needle is greater than aHaystack[mid].\n\t    if (aHigh - mid > 1) {\n\t      // The element is in the upper half.\n\t      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // The exact needle element was not found in this haystack. Determine if\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return aHigh < aHaystack.length ? aHigh : -1;\n\t    } else {\n\t      return mid;\n\t    }\n\t  }\n\t  else {\n\t    // Our needle is less than aHaystack[mid].\n\t    if (mid - aLow > 1) {\n\t      // The element is in the lower half.\n\t      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return mid;\n\t    } else {\n\t      return aLow < 0 ? -1 : aLow;\n\t    }\n\t  }\n\t}\n\t\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t *     array and returns -1, 0, or 1 depending on whether the needle is less\n\t *     than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t  if (aHaystack.length === 0) {\n\t    return -1;\n\t  }\n\t\n\t  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t  if (index < 0) {\n\t    return -1;\n\t  }\n\t\n\t  // We have found either the exact element, or the next-closest element than\n\t  // the one we are searching for. However, there may be more than one such\n\t  // element. Make sure we always return the smallest of these.\n\t  while (index - 1 >= 0) {\n\t    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t      break;\n\t    }\n\t    --index;\n\t  }\n\t\n\t  return index;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\t\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t *        The array.\n\t * @param {Number} x\n\t *        The index of the first item.\n\t * @param {Number} y\n\t *        The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t  var temp = ary[x];\n\t  ary[x] = ary[y];\n\t  ary[y] = temp;\n\t}\n\t\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t *        The lower bound on the range.\n\t * @param {Number} high\n\t *        The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t  return Math.round(low + (Math.random() * (high - low)));\n\t}\n\t\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t * @param {Number} p\n\t *        Start index of the array\n\t * @param {Number} r\n\t *        End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t  // If our lower bound is less than our upper bound, we (1) partition the\n\t  // array into two pieces and (2) recurse on each half. If it is not, this is\n\t  // the empty array and our base case.\n\t\n\t  if (p < r) {\n\t    // (1) Partitioning.\n\t    //\n\t    // The partitioning chooses a pivot between `p` and `r` and moves all\n\t    // elements that are less than or equal to the pivot to the before it, and\n\t    // all the elements that are greater than it after it. The effect is that\n\t    // once partition is done, the pivot is in the exact place it will be when\n\t    // the array is put in sorted order, and it will not need to be moved\n\t    // again. This runs in O(n) time.\n\t\n\t    // Always choose a random pivot so that an input array which is reverse\n\t    // sorted does not cause O(n^2) running time.\n\t    var pivotIndex = randomIntInRange(p, r);\n\t    var i = p - 1;\n\t\n\t    swap(ary, pivotIndex, r);\n\t    var pivot = ary[r];\n\t\n\t    // Immediately after `j` is incremented in this loop, the following hold\n\t    // true:\n\t    //\n\t    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t    //\n\t    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t    for (var j = p; j < r; j++) {\n\t      if (comparator(ary[j], pivot) <= 0) {\n\t        i += 1;\n\t        swap(ary, i, j);\n\t      }\n\t    }\n\t\n\t    swap(ary, i + 1, j);\n\t    var q = i + 1;\n\t\n\t    // (2) Recurse on each half.\n\t\n\t    doQuickSort(ary, comparator, p, q - 1);\n\t    doQuickSort(ary, comparator, q + 1, r);\n\t  }\n\t}\n\t\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t  doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\tvar util = __webpack_require__(4);\n\t\n\t// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n\t// operating systems these days (capturing the result).\n\tvar REGEX_NEWLINE = /(\\r?\\n)/;\n\t\n\t// Newline character code for charCodeAt() comparisons\n\tvar NEWLINE_CODE = 10;\n\t\n\t// Private symbol for identifying `SourceNode`s when multiple versions of\n\t// the source-map library are loaded. This MUST NOT CHANGE across\n\t// versions!\n\tvar isSourceNode = \"$$$isSourceNode$$$\";\n\t\n\t/**\n\t * SourceNodes provide a way to abstract over interpolating/concatenating\n\t * snippets of generated JavaScript source code while maintaining the line and\n\t * column information associated with the original source code.\n\t *\n\t * @param aLine The original line number.\n\t * @param aColumn The original column number.\n\t * @param aSource The original source's filename.\n\t * @param aChunks Optional. An array of strings which are snippets of\n\t *        generated JS, or other SourceNodes.\n\t * @param aName The original identifier.\n\t */\n\tfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n\t  this.children = [];\n\t  this.sourceContents = {};\n\t  this.line = aLine == null ? null : aLine;\n\t  this.column = aColumn == null ? null : aColumn;\n\t  this.source = aSource == null ? null : aSource;\n\t  this.name = aName == null ? null : aName;\n\t  this[isSourceNode] = true;\n\t  if (aChunks != null) this.add(aChunks);\n\t}\n\t\n\t/**\n\t * Creates a SourceNode from generated code and a SourceMapConsumer.\n\t *\n\t * @param aGeneratedCode The generated code\n\t * @param aSourceMapConsumer The SourceMap for the generated code\n\t * @param aRelativePath Optional. The path that relative sources in the\n\t *        SourceMapConsumer should be relative to.\n\t */\n\tSourceNode.fromStringWithSourceMap =\n\t  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n\t    // The SourceNode we want to fill with the generated code\n\t    // and the SourceMap\n\t    var node = new SourceNode();\n\t\n\t    // All even indices of this array are one line of the generated code,\n\t    // while all odd indices are the newlines between two adjacent lines\n\t    // (since `REGEX_NEWLINE` captures its match).\n\t    // Processed fragments are accessed by calling `shiftNextLine`.\n\t    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n\t    var remainingLinesIndex = 0;\n\t    var shiftNextLine = function() {\n\t      var lineContents = getNextLine();\n\t      // The last line of a file might not have a newline.\n\t      var newLine = getNextLine() || \"\";\n\t      return lineContents + newLine;\n\t\n\t      function getNextLine() {\n\t        return remainingLinesIndex < remainingLines.length ?\n\t            remainingLines[remainingLinesIndex++] : undefined;\n\t      }\n\t    };\n\t\n\t    // We need to remember the position of \"remainingLines\"\n\t    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\t\n\t    // The generate SourceNodes we need a code range.\n\t    // To extract it current and last mapping is used.\n\t    // Here we store the last mapping.\n\t    var lastMapping = null;\n\t\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      if (lastMapping !== null) {\n\t        // We add the code from \"lastMapping\" to \"mapping\":\n\t        // First check if there is a new line in between.\n\t        if (lastGeneratedLine < mapping.generatedLine) {\n\t          // Associate first line with \"lastMapping\"\n\t          addMappingWithCode(lastMapping, shiftNextLine());\n\t          lastGeneratedLine++;\n\t          lastGeneratedColumn = 0;\n\t          // The remaining code is added without mapping\n\t        } else {\n\t          // There is no new line in between.\n\t          // Associate the code between \"lastGeneratedColumn\" and\n\t          // \"mapping.generatedColumn\" with \"lastMapping\"\n\t          var nextLine = remainingLines[remainingLinesIndex];\n\t          var code = nextLine.substr(0, mapping.generatedColumn -\n\t                                        lastGeneratedColumn);\n\t          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n\t                                              lastGeneratedColumn);\n\t          lastGeneratedColumn = mapping.generatedColumn;\n\t          addMappingWithCode(lastMapping, code);\n\t          // No more remaining code, continue\n\t          lastMapping = mapping;\n\t          return;\n\t        }\n\t      }\n\t      // We add the generated code until the first mapping\n\t      // to the SourceNode without any mapping.\n\t      // Each line is added as separate string.\n\t      while (lastGeneratedLine < mapping.generatedLine) {\n\t        node.add(shiftNextLine());\n\t        lastGeneratedLine++;\n\t      }\n\t      if (lastGeneratedColumn < mapping.generatedColumn) {\n\t        var nextLine = remainingLines[remainingLinesIndex];\n\t        node.add(nextLine.substr(0, mapping.generatedColumn));\n\t        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n\t        lastGeneratedColumn = mapping.generatedColumn;\n\t      }\n\t      lastMapping = mapping;\n\t    }, this);\n\t    // We have processed all mappings.\n\t    if (remainingLinesIndex < remainingLines.length) {\n\t      if (lastMapping) {\n\t        // Associate the remaining code in the current line with \"lastMapping\"\n\t        addMappingWithCode(lastMapping, shiftNextLine());\n\t      }\n\t      // and add the remaining lines without any mapping\n\t      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n\t    }\n\t\n\t    // Copy sourcesContent into SourceNode\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aRelativePath != null) {\n\t          sourceFile = util.join(aRelativePath, sourceFile);\n\t        }\n\t        node.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t\n\t    return node;\n\t\n\t    function addMappingWithCode(mapping, code) {\n\t      if (mapping === null || mapping.source === undefined) {\n\t        node.add(code);\n\t      } else {\n\t        var source = aRelativePath\n\t          ? util.join(aRelativePath, mapping.source)\n\t          : mapping.source;\n\t        node.add(new SourceNode(mapping.originalLine,\n\t                                mapping.originalColumn,\n\t                                source,\n\t                                code,\n\t                                mapping.name));\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Add a chunk of generated JS to this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.add = function SourceNode_add(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    aChunk.forEach(function (chunk) {\n\t      this.add(chunk);\n\t    }, this);\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    if (aChunk) {\n\t      this.children.push(aChunk);\n\t    }\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Add a chunk of generated JS to the beginning of this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    for (var i = aChunk.length-1; i >= 0; i--) {\n\t      this.prepend(aChunk[i]);\n\t    }\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    this.children.unshift(aChunk);\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Walk over the tree of JS snippets in this node and its children. The\n\t * walking function is called once for each snippet of JS and is passed that\n\t * snippet and the its original associated source's line/column location.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n\t  var chunk;\n\t  for (var i = 0, len = this.children.length; i < len; i++) {\n\t    chunk = this.children[i];\n\t    if (chunk[isSourceNode]) {\n\t      chunk.walk(aFn);\n\t    }\n\t    else {\n\t      if (chunk !== '') {\n\t        aFn(chunk, { source: this.source,\n\t                     line: this.line,\n\t                     column: this.column,\n\t                     name: this.name });\n\t      }\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n\t * each of `this.children`.\n\t *\n\t * @param aSep The separator.\n\t */\n\tSourceNode.prototype.join = function SourceNode_join(aSep) {\n\t  var newChildren;\n\t  var i;\n\t  var len = this.children.length;\n\t  if (len > 0) {\n\t    newChildren = [];\n\t    for (i = 0; i < len-1; i++) {\n\t      newChildren.push(this.children[i]);\n\t      newChildren.push(aSep);\n\t    }\n\t    newChildren.push(this.children[i]);\n\t    this.children = newChildren;\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Call String.prototype.replace on the very right-most source snippet. Useful\n\t * for trimming whitespace from the end of a source node, etc.\n\t *\n\t * @param aPattern The pattern to replace.\n\t * @param aReplacement The thing to replace the pattern with.\n\t */\n\tSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n\t  var lastChild = this.children[this.children.length - 1];\n\t  if (lastChild[isSourceNode]) {\n\t    lastChild.replaceRight(aPattern, aReplacement);\n\t  }\n\t  else if (typeof lastChild === 'string') {\n\t    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n\t  }\n\t  else {\n\t    this.children.push(''.replace(aPattern, aReplacement));\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Set the source content for a source file. This will be added to the SourceMapGenerator\n\t * in the sourcesContent field.\n\t *\n\t * @param aSourceFile The filename of the source file\n\t * @param aSourceContent The content of the source file\n\t */\n\tSourceNode.prototype.setSourceContent =\n\t  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n\t    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n\t  };\n\t\n\t/**\n\t * Walk over the tree of SourceNodes. The walking function is called for each\n\t * source file content and is passed the filename and source content.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walkSourceContents =\n\t  function SourceNode_walkSourceContents(aFn) {\n\t    for (var i = 0, len = this.children.length; i < len; i++) {\n\t      if (this.children[i][isSourceNode]) {\n\t        this.children[i].walkSourceContents(aFn);\n\t      }\n\t    }\n\t\n\t    var sources = Object.keys(this.sourceContents);\n\t    for (var i = 0, len = sources.length; i < len; i++) {\n\t      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n\t    }\n\t  };\n\t\n\t/**\n\t * Return the string representation of this source node. Walks over the tree\n\t * and concatenates all the various snippets together to one string.\n\t */\n\tSourceNode.prototype.toString = function SourceNode_toString() {\n\t  var str = \"\";\n\t  this.walk(function (chunk) {\n\t    str += chunk;\n\t  });\n\t  return str;\n\t};\n\t\n\t/**\n\t * Returns the string representation of this source node along with a source\n\t * map.\n\t */\n\tSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n\t  var generated = {\n\t    code: \"\",\n\t    line: 1,\n\t    column: 0\n\t  };\n\t  var map = new SourceMapGenerator(aArgs);\n\t  var sourceMappingActive = false;\n\t  var lastOriginalSource = null;\n\t  var lastOriginalLine = null;\n\t  var lastOriginalColumn = null;\n\t  var lastOriginalName = null;\n\t  this.walk(function (chunk, original) {\n\t    generated.code += chunk;\n\t    if (original.source !== null\n\t        && original.line !== null\n\t        && original.column !== null) {\n\t      if(lastOriginalSource !== original.source\n\t         || lastOriginalLine !== original.line\n\t         || lastOriginalColumn !== original.column\n\t         || lastOriginalName !== original.name) {\n\t        map.addMapping({\n\t          source: original.source,\n\t          original: {\n\t            line: original.line,\n\t            column: original.column\n\t          },\n\t          generated: {\n\t            line: generated.line,\n\t            column: generated.column\n\t          },\n\t          name: original.name\n\t        });\n\t      }\n\t      lastOriginalSource = original.source;\n\t      lastOriginalLine = original.line;\n\t      lastOriginalColumn = original.column;\n\t      lastOriginalName = original.name;\n\t      sourceMappingActive = true;\n\t    } else if (sourceMappingActive) {\n\t      map.addMapping({\n\t        generated: {\n\t          line: generated.line,\n\t          column: generated.column\n\t        }\n\t      });\n\t      lastOriginalSource = null;\n\t      sourceMappingActive = false;\n\t    }\n\t    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n\t      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n\t        generated.line++;\n\t        generated.column = 0;\n\t        // Mappings end at eol\n\t        if (idx + 1 === length) {\n\t          lastOriginalSource = null;\n\t          sourceMappingActive = false;\n\t        } else if (sourceMappingActive) {\n\t          map.addMapping({\n\t            source: original.source,\n\t            original: {\n\t              line: original.line,\n\t              column: original.column\n\t            },\n\t            generated: {\n\t              line: generated.line,\n\t              column: generated.column\n\t            },\n\t            name: original.name\n\t          });\n\t        }\n\t      } else {\n\t        generated.column++;\n\t      }\n\t    }\n\t  });\n\t  this.walkSourceContents(function (sourceFile, sourceContent) {\n\t    map.setSourceContent(sourceFile, sourceContent);\n\t  });\n\t\n\t  return { code: generated.code, map: map };\n\t};\n\t\n\texports.SourceNode = SourceNode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// source-map.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 42c329f865e32e011afb","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source-map.js\n// module id = 0\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n *   - file: The filename of the generated source.\n *   - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n  if (!aArgs) {\n    aArgs = {};\n  }\n  this._file = util.getArg(aArgs, 'file', null);\n  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n  this._mappings = new MappingList();\n  this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n    var sourceRoot = aSourceMapConsumer.sourceRoot;\n    var generator = new SourceMapGenerator({\n      file: aSourceMapConsumer.file,\n      sourceRoot: sourceRoot\n    });\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      var newMapping = {\n        generated: {\n          line: mapping.generatedLine,\n          column: mapping.generatedColumn\n        }\n      };\n\n      if (mapping.source != null) {\n        newMapping.source = mapping.source;\n        if (sourceRoot != null) {\n          newMapping.source = util.relative(sourceRoot, newMapping.source);\n        }\n\n        newMapping.original = {\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        };\n\n        if (mapping.name != null) {\n          newMapping.name = mapping.name;\n        }\n      }\n\n      generator.addMapping(newMapping);\n    });\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        generator.setSourceContent(sourceFile, content);\n      }\n    });\n    return generator;\n  };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n *   - generated: An object with the generated line and column positions.\n *   - original: An object with the original line and column positions.\n *   - source: The original source file (relative to the sourceRoot).\n *   - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n  function SourceMapGenerator_addMapping(aArgs) {\n    var generated = util.getArg(aArgs, 'generated');\n    var original = util.getArg(aArgs, 'original', null);\n    var source = util.getArg(aArgs, 'source', null);\n    var name = util.getArg(aArgs, 'name', null);\n\n    if (!this._skipValidation) {\n      this._validateMapping(generated, original, source, name);\n    }\n\n    if (source != null) {\n      source = String(source);\n      if (!this._sources.has(source)) {\n        this._sources.add(source);\n      }\n    }\n\n    if (name != null) {\n      name = String(name);\n      if (!this._names.has(name)) {\n        this._names.add(name);\n      }\n    }\n\n    this._mappings.add({\n      generatedLine: generated.line,\n      generatedColumn: generated.column,\n      originalLine: original != null && original.line,\n      originalColumn: original != null && original.column,\n      source: source,\n      name: name\n    });\n  };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n    var source = aSourceFile;\n    if (this._sourceRoot != null) {\n      source = util.relative(this._sourceRoot, source);\n    }\n\n    if (aSourceContent != null) {\n      // Add the source content to the _sourcesContents map.\n      // Create a new _sourcesContents map if the property is null.\n      if (!this._sourcesContents) {\n        this._sourcesContents = Object.create(null);\n      }\n      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n    } else if (this._sourcesContents) {\n      // Remove the source file from the _sourcesContents map.\n      // If the _sourcesContents map is empty, set the property to null.\n      delete this._sourcesContents[util.toSetString(source)];\n      if (Object.keys(this._sourcesContents).length === 0) {\n        this._sourcesContents = null;\n      }\n    }\n  };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n *        If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n *        to be applied. If relative, it is relative to the SourceMapConsumer.\n *        This parameter is needed when the two source maps aren't in the same\n *        directory, and the source map to be applied contains relative source\n *        paths. If so, those relative source paths need to be rewritten\n *        relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n    var sourceFile = aSourceFile;\n    // If aSourceFile is omitted, we will use the file property of the SourceMap\n    if (aSourceFile == null) {\n      if (aSourceMapConsumer.file == null) {\n        throw new Error(\n          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n          'or the source map\\'s \"file\" property. Both were omitted.'\n        );\n      }\n      sourceFile = aSourceMapConsumer.file;\n    }\n    var sourceRoot = this._sourceRoot;\n    // Make \"sourceFile\" relative if an absolute Url is passed.\n    if (sourceRoot != null) {\n      sourceFile = util.relative(sourceRoot, sourceFile);\n    }\n    // Applying the SourceMap can add and remove items from the sources and\n    // the names array.\n    var newSources = new ArraySet();\n    var newNames = new ArraySet();\n\n    // Find mappings for the \"sourceFile\"\n    this._mappings.unsortedForEach(function (mapping) {\n      if (mapping.source === sourceFile && mapping.originalLine != null) {\n        // Check if it can be mapped by the source map, then update the mapping.\n        var original = aSourceMapConsumer.originalPositionFor({\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        });\n        if (original.source != null) {\n          // Copy mapping\n          mapping.source = original.source;\n          if (aSourceMapPath != null) {\n            mapping.source = util.join(aSourceMapPath, mapping.source)\n          }\n          if (sourceRoot != null) {\n            mapping.source = util.relative(sourceRoot, mapping.source);\n          }\n          mapping.originalLine = original.line;\n          mapping.originalColumn = original.column;\n          if (original.name != null) {\n            mapping.name = original.name;\n          }\n        }\n      }\n\n      var source = mapping.source;\n      if (source != null && !newSources.has(source)) {\n        newSources.add(source);\n      }\n\n      var name = mapping.name;\n      if (name != null && !newNames.has(name)) {\n        newNames.add(name);\n      }\n\n    }, this);\n    this._sources = newSources;\n    this._names = newNames;\n\n    // Copy sourcesContents of applied map.\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aSourceMapPath != null) {\n          sourceFile = util.join(aSourceMapPath, sourceFile);\n        }\n        if (sourceRoot != null) {\n          sourceFile = util.relative(sourceRoot, sourceFile);\n        }\n        this.setSourceContent(sourceFile, content);\n      }\n    }, this);\n  };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n *   1. Just the generated position.\n *   2. The Generated position, original position, and original source.\n *   3. Generated and original position, original source, as well as a name\n *      token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n                                              aName) {\n    // When aOriginal is truthy but has empty values for .line and .column,\n    // it is most likely a programmer error. In this case we throw a very\n    // specific error message to try to guide them the right way.\n    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n        throw new Error(\n            'original.line and original.column are not numbers -- you probably meant to omit ' +\n            'the original mapping entirely and only map the generated position. If so, pass ' +\n            'null for the original mapping instead of an object with empty or null values.'\n        );\n    }\n\n    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n        && aGenerated.line > 0 && aGenerated.column >= 0\n        && !aOriginal && !aSource && !aName) {\n      // Case 1.\n      return;\n    }\n    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n             && aGenerated.line > 0 && aGenerated.column >= 0\n             && aOriginal.line > 0 && aOriginal.column >= 0\n             && aSource) {\n      // Cases 2 and 3.\n      return;\n    }\n    else {\n      throw new Error('Invalid mapping: ' + JSON.stringify({\n        generated: aGenerated,\n        source: aSource,\n        original: aOriginal,\n        name: aName\n      }));\n    }\n  };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n  function SourceMapGenerator_serializeMappings() {\n    var previousGeneratedColumn = 0;\n    var previousGeneratedLine = 1;\n    var previousOriginalColumn = 0;\n    var previousOriginalLine = 0;\n    var previousName = 0;\n    var previousSource = 0;\n    var result = '';\n    var next;\n    var mapping;\n    var nameIdx;\n    var sourceIdx;\n\n    var mappings = this._mappings.toArray();\n    for (var i = 0, len = mappings.length; i < len; i++) {\n      mapping = mappings[i];\n      next = ''\n\n      if (mapping.generatedLine !== previousGeneratedLine) {\n        previousGeneratedColumn = 0;\n        while (mapping.generatedLine !== previousGeneratedLine) {\n          next += ';';\n          previousGeneratedLine++;\n        }\n      }\n      else {\n        if (i > 0) {\n          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n            continue;\n          }\n          next += ',';\n        }\n      }\n\n      next += base64VLQ.encode(mapping.generatedColumn\n                                 - previousGeneratedColumn);\n      previousGeneratedColumn = mapping.generatedColumn;\n\n      if (mapping.source != null) {\n        sourceIdx = this._sources.indexOf(mapping.source);\n        next += base64VLQ.encode(sourceIdx - previousSource);\n        previousSource = sourceIdx;\n\n        // lines are stored 0-based in SourceMap spec version 3\n        next += base64VLQ.encode(mapping.originalLine - 1\n                                   - previousOriginalLine);\n        previousOriginalLine = mapping.originalLine - 1;\n\n        next += base64VLQ.encode(mapping.originalColumn\n                                   - previousOriginalColumn);\n        previousOriginalColumn = mapping.originalColumn;\n\n        if (mapping.name != null) {\n          nameIdx = this._names.indexOf(mapping.name);\n          next += base64VLQ.encode(nameIdx - previousName);\n          previousName = nameIdx;\n        }\n      }\n\n      result += next;\n    }\n\n    return result;\n  };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n    return aSources.map(function (source) {\n      if (!this._sourcesContents) {\n        return null;\n      }\n      if (aSourceRoot != null) {\n        source = util.relative(aSourceRoot, source);\n      }\n      var key = util.toSetString(source);\n      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n        ? this._sourcesContents[key]\n        : null;\n    }, this);\n  };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n  function SourceMapGenerator_toJSON() {\n    var map = {\n      version: this._version,\n      sources: this._sources.toArray(),\n      names: this._names.toArray(),\n      mappings: this._serializeMappings()\n    };\n    if (this._file != null) {\n      map.file = this._file;\n    }\n    if (this._sourceRoot != null) {\n      map.sourceRoot = this._sourceRoot;\n    }\n    if (this._sourcesContents) {\n      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n    }\n\n    return map;\n  };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n  function SourceMapGenerator_toString() {\n    return JSON.stringify(this.toJSON());\n  };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-generator.js\n// module id = 1\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n *  * Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above\n *    copyright notice, this list of conditions and the following\n *    disclaimer in the documentation and/or other materials provided\n *    with the distribution.\n *  * Neither the name of Google Inc. nor the names of its\n *    contributors may be used to endorse or promote products derived\n *    from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n//   Continuation\n//   |    Sign\n//   |    |\n//   V    V\n//   101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n  return aValue < 0\n    ? ((-aValue) << 1) + 1\n    : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n  var isNegative = (aValue & 1) === 1;\n  var shifted = aValue >> 1;\n  return isNegative\n    ? -shifted\n    : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n  var encoded = \"\";\n  var digit;\n\n  var vlq = toVLQSigned(aValue);\n\n  do {\n    digit = vlq & VLQ_BASE_MASK;\n    vlq >>>= VLQ_BASE_SHIFT;\n    if (vlq > 0) {\n      // There are still more digits in this value, so we must make sure the\n      // continuation bit is marked.\n      digit |= VLQ_CONTINUATION_BIT;\n    }\n    encoded += base64.encode(digit);\n  } while (vlq > 0);\n\n  return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n  var strLen = aStr.length;\n  var result = 0;\n  var shift = 0;\n  var continuation, digit;\n\n  do {\n    if (aIndex >= strLen) {\n      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n    }\n\n    digit = base64.decode(aStr.charCodeAt(aIndex++));\n    if (digit === -1) {\n      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n    }\n\n    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n    digit &= VLQ_BASE_MASK;\n    result = result + (digit << shift);\n    shift += VLQ_BASE_SHIFT;\n  } while (continuation);\n\n  aOutParam.value = fromVLQSigned(result);\n  aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64-vlq.js\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n  if (0 <= number && number < intToCharMap.length) {\n    return intToCharMap[number];\n  }\n  throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n  var bigA = 65;     // 'A'\n  var bigZ = 90;     // 'Z'\n\n  var littleA = 97;  // 'a'\n  var littleZ = 122; // 'z'\n\n  var zero = 48;     // '0'\n  var nine = 57;     // '9'\n\n  var plus = 43;     // '+'\n  var slash = 47;    // '/'\n\n  var littleOffset = 26;\n  var numberOffset = 52;\n\n  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n  if (bigA <= charCode && charCode <= bigZ) {\n    return (charCode - bigA);\n  }\n\n  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n  if (littleA <= charCode && charCode <= littleZ) {\n    return (charCode - littleA + littleOffset);\n  }\n\n  // 52 - 61: 0123456789\n  if (zero <= charCode && charCode <= nine) {\n    return (charCode - zero + numberOffset);\n  }\n\n  // 62: +\n  if (charCode == plus) {\n    return 62;\n  }\n\n  // 63: /\n  if (charCode == slash) {\n    return 63;\n  }\n\n  // Invalid base64 digit.\n  return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64.js\n// module id = 3\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n  if (aName in aArgs) {\n    return aArgs[aName];\n  } else if (arguments.length === 3) {\n    return aDefaultValue;\n  } else {\n    throw new Error('\"' + aName + '\" is a required argument.');\n  }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n  var match = aUrl.match(urlRegexp);\n  if (!match) {\n    return null;\n  }\n  return {\n    scheme: match[1],\n    auth: match[2],\n    host: match[3],\n    port: match[4],\n    path: match[5]\n  };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n  var url = '';\n  if (aParsedUrl.scheme) {\n    url += aParsedUrl.scheme + ':';\n  }\n  url += '//';\n  if (aParsedUrl.auth) {\n    url += aParsedUrl.auth + '@';\n  }\n  if (aParsedUrl.host) {\n    url += aParsedUrl.host;\n  }\n  if (aParsedUrl.port) {\n    url += \":\" + aParsedUrl.port\n  }\n  if (aParsedUrl.path) {\n    url += aParsedUrl.path;\n  }\n  return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n  var path = aPath;\n  var url = urlParse(aPath);\n  if (url) {\n    if (!url.path) {\n      return aPath;\n    }\n    path = url.path;\n  }\n  var isAbsolute = exports.isAbsolute(path);\n\n  var parts = path.split(/\\/+/);\n  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n    part = parts[i];\n    if (part === '.') {\n      parts.splice(i, 1);\n    } else if (part === '..') {\n      up++;\n    } else if (up > 0) {\n      if (part === '') {\n        // The first part is blank if the path is absolute. Trying to go\n        // above the root is a no-op. Therefore we can remove all '..' parts\n        // directly after the root.\n        parts.splice(i + 1, up);\n        up = 0;\n      } else {\n        parts.splice(i, 2);\n        up--;\n      }\n    }\n  }\n  path = parts.join('/');\n\n  if (path === '') {\n    path = isAbsolute ? '/' : '.';\n  }\n\n  if (url) {\n    url.path = path;\n    return urlGenerate(url);\n  }\n  return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n *   first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n *   is updated with the result and aRoot is returned. Otherwise the result\n *   is returned.\n *   - If aPath is absolute, the result is aPath.\n *   - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n  if (aPath === \"\") {\n    aPath = \".\";\n  }\n  var aPathUrl = urlParse(aPath);\n  var aRootUrl = urlParse(aRoot);\n  if (aRootUrl) {\n    aRoot = aRootUrl.path || '/';\n  }\n\n  // `join(foo, '//www.example.org')`\n  if (aPathUrl && !aPathUrl.scheme) {\n    if (aRootUrl) {\n      aPathUrl.scheme = aRootUrl.scheme;\n    }\n    return urlGenerate(aPathUrl);\n  }\n\n  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n    return aPath;\n  }\n\n  // `join('http://', 'www.example.com')`\n  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n    aRootUrl.host = aPath;\n    return urlGenerate(aRootUrl);\n  }\n\n  var joined = aPath.charAt(0) === '/'\n    ? aPath\n    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n  if (aRootUrl) {\n    aRootUrl.path = joined;\n    return urlGenerate(aRootUrl);\n  }\n  return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n\n  aRoot = aRoot.replace(/\\/$/, '');\n\n  // It is possible for the path to be above the root. In this case, simply\n  // checking whether the root is a prefix of the path won't work. Instead, we\n  // need to remove components from the root one by one, until either we find\n  // a prefix that fits, or we run out of components to remove.\n  var level = 0;\n  while (aPath.indexOf(aRoot + '/') !== 0) {\n    var index = aRoot.lastIndexOf(\"/\");\n    if (index < 0) {\n      return aPath;\n    }\n\n    // If the only part of the root that is left is the scheme (i.e. http://,\n    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n    // have exhausted all components, so the path is not relative to the root.\n    aRoot = aRoot.slice(0, index);\n    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n      return aPath;\n    }\n\n    ++level;\n  }\n\n  // Make sure we add a \"../\" for each component we removed from the root.\n  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n  var obj = Object.create(null);\n  return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n  return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return '$' + aStr;\n  }\n\n  return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return aStr.slice(1);\n  }\n\n  return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n  if (!s) {\n    return false;\n  }\n\n  var length = s.length;\n\n  if (length < 9 /* \"__proto__\".length */) {\n    return false;\n  }\n\n  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n    return false;\n  }\n\n  for (var i = length - 10; i >= 0; i--) {\n    if (s.charCodeAt(i) !== 36 /* '$' */) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n  var cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0 || onlyCompareOriginal) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0 || onlyCompareGenerated) {\n    return cmp;\n  }\n\n  cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n  if (aStr1 === aStr2) {\n    return 0;\n  }\n\n  if (aStr1 > aStr2) {\n    return 1;\n  }\n\n  return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/util.js\n// module id = 4\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n  this._array = [];\n  this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n  var set = new ArraySet();\n  for (var i = 0, len = aArray.length; i < len; i++) {\n    set.add(aArray[i], aAllowDuplicates);\n  }\n  return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n  var idx = this._array.length;\n  if (!isDuplicate || aAllowDuplicates) {\n    this._array.push(aStr);\n  }\n  if (!isDuplicate) {\n    if (hasNativeMap) {\n      this._set.set(aStr, idx);\n    } else {\n      this._set[sStr] = idx;\n    }\n  }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n  if (hasNativeMap) {\n    return this._set.has(aStr);\n  } else {\n    var sStr = util.toSetString(aStr);\n    return has.call(this._set, sStr);\n  }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n  if (hasNativeMap) {\n    var idx = this._set.get(aStr);\n    if (idx >= 0) {\n        return idx;\n    }\n  } else {\n    var sStr = util.toSetString(aStr);\n    if (has.call(this._set, sStr)) {\n      return this._set[sStr];\n    }\n  }\n\n  throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n  if (aIdx >= 0 && aIdx < this._array.length) {\n    return this._array[aIdx];\n  }\n  throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n  return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/array-set.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n  // Optimized for most common case\n  var lineA = mappingA.generatedLine;\n  var lineB = mappingB.generatedLine;\n  var columnA = mappingA.generatedColumn;\n  var columnB = mappingB.generatedColumn;\n  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n  this._array = [];\n  this._sorted = true;\n  // Serves as infimum\n  this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n  function MappingList_forEach(aCallback, aThisArg) {\n    this._array.forEach(aCallback, aThisArg);\n  };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n  if (generatedPositionAfter(this._last, aMapping)) {\n    this._last = aMapping;\n    this._array.push(aMapping);\n  } else {\n    this._sorted = false;\n    this._array.push(aMapping);\n  }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n  if (!this._sorted) {\n    this._array.sort(util.compareByGeneratedPositionsInflated);\n    this._sorted = true;\n  }\n  return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/mapping-list.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  return sourceMap.sections != null\n    ? new IndexedSourceMapConsumer(sourceMap)\n    : new BasicSourceMapConsumer(sourceMap);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n//     {\n//       generatedLine: The line number in the generated code,\n//       generatedColumn: The column number in the generated code,\n//       source: The path to the original source file that generated this\n//               chunk of code,\n//       originalLine: The line number in the original source that\n//                     corresponds to this chunk of generated code,\n//       originalColumn: The column number in the original source that\n//                       corresponds to this chunk of generated code,\n//       name: The name of the original symbol which generated this chunk of\n//             code.\n//     }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n  get: function () {\n    if (!this.__generatedMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__generatedMappings;\n  }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n  get: function () {\n    if (!this.__originalMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__originalMappings;\n  }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n    var c = aStr.charAt(index);\n    return c === \";\" || c === \",\";\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    throw new Error(\"Subclasses must implement _parseMappings\");\n  };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n *        The function that is called with each mapping.\n * @param Object aContext\n *        Optional. If specified, this object will be the value of `this` every\n *        time that `aCallback` is called.\n * @param aOrder\n *        Either `SourceMapConsumer.GENERATED_ORDER` or\n *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n *        iterate over the mappings sorted by the generated file's line/column\n *        order or the original's source/line/column order, respectively. Defaults to\n *        `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n    var context = aContext || null;\n    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n    var mappings;\n    switch (order) {\n    case SourceMapConsumer.GENERATED_ORDER:\n      mappings = this._generatedMappings;\n      break;\n    case SourceMapConsumer.ORIGINAL_ORDER:\n      mappings = this._originalMappings;\n      break;\n    default:\n      throw new Error(\"Unknown order of iteration.\");\n    }\n\n    var sourceRoot = this.sourceRoot;\n    mappings.map(function (mapping) {\n      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n      if (source != null && sourceRoot != null) {\n        source = util.join(sourceRoot, source);\n      }\n      return {\n        source: source,\n        generatedLine: mapping.generatedLine,\n        generatedColumn: mapping.generatedColumn,\n        originalLine: mapping.originalLine,\n        originalColumn: mapping.originalColumn,\n        name: mapping.name === null ? null : this._names.at(mapping.name)\n      };\n    }, this).forEach(aCallback, context);\n  };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: Optional. the column number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n    var line = util.getArg(aArgs, 'line');\n\n    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n    // returns the index of the closest mapping less than the needle. By\n    // setting needle.originalColumn to 0, we thus find the last mapping for\n    // the given line, provided such a mapping exists.\n    var needle = {\n      source: util.getArg(aArgs, 'source'),\n      originalLine: line,\n      originalColumn: util.getArg(aArgs, 'column', 0)\n    };\n\n    if (this.sourceRoot != null) {\n      needle.source = util.relative(this.sourceRoot, needle.source);\n    }\n    if (!this._sources.has(needle.source)) {\n      return [];\n    }\n    needle.source = this._sources.indexOf(needle.source);\n\n    var mappings = [];\n\n    var index = this._findMapping(needle,\n                                  this._originalMappings,\n                                  \"originalLine\",\n                                  \"originalColumn\",\n                                  util.compareByOriginalPositions,\n                                  binarySearch.LEAST_UPPER_BOUND);\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (aArgs.column === undefined) {\n        var originalLine = mapping.originalLine;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we found. Since\n        // mappings are sorted, this is guaranteed to find all mappings for\n        // the line we found.\n        while (mapping && mapping.originalLine === originalLine) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      } else {\n        var originalColumn = mapping.originalColumn;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we were searching for.\n        // Since mappings are sorted, this is guaranteed to find all mappings for\n        // the line we are searching for.\n        while (mapping &&\n               mapping.originalLine === line &&\n               mapping.originalColumn == originalColumn) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      }\n    }\n\n    return mappings;\n  };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The only parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - sources: An array of URLs to the original source files.\n *   - names: An array of identifiers which can be referrenced by individual mappings.\n *   - sourceRoot: Optional. The URL root from which all sources are relative.\n *   - sourcesContent: Optional. An array of contents of the original source files.\n *   - mappings: A string of base64 VLQs which contain the actual mappings.\n *   - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n *     {\n *       version : 3,\n *       file: \"out.js\",\n *       sourceRoot : \"\",\n *       sources: [\"foo.js\", \"bar.js\"],\n *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n *       mappings: \"AA,AB;;ABCDE;\"\n *     }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sources = util.getArg(sourceMap, 'sources');\n  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n  // requires the array) to play nice here.\n  var names = util.getArg(sourceMap, 'names', []);\n  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n  var mappings = util.getArg(sourceMap, 'mappings');\n  var file = util.getArg(sourceMap, 'file', null);\n\n  // Once again, Sass deviates from the spec and supplies the version as a\n  // string rather than a number, so we use loose equality checking here.\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  sources = sources\n    .map(String)\n    // Some source maps produce relative source paths like \"./foo.js\" instead of\n    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n    // See bugzil.la/1090768.\n    .map(util.normalize)\n    // Always ensure that absolute sources are internally stored relative to\n    // the source root, if the source root is absolute. Not doing this would\n    // be particularly problematic when the source root is a prefix of the\n    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n    .map(function (source) {\n      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n        ? util.relative(sourceRoot, source)\n        : source;\n    });\n\n  // Pass `true` below to allow duplicate names and sources. While source maps\n  // are intended to be compressed and deduplicated, the TypeScript compiler\n  // sometimes generates source maps with duplicates in them. See Github issue\n  // #72 and bugzil.la/889492.\n  this._names = ArraySet.fromArray(names.map(String), true);\n  this._sources = ArraySet.fromArray(sources, true);\n\n  this.sourceRoot = sourceRoot;\n  this.sourcesContent = sourcesContent;\n  this._mappings = mappings;\n  this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n *        The source map that will be consumed.\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n    smc.sourceRoot = aSourceMap._sourceRoot;\n    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n                                                            smc.sourceRoot);\n    smc.file = aSourceMap._file;\n\n    // Because we are modifying the entries (by converting string sources and\n    // names to indices into the sources and names ArraySets), we have to make\n    // a copy of the entry or else bad things happen. Shared mutable state\n    // strikes again! See github issue #191.\n\n    var generatedMappings = aSourceMap._mappings.toArray().slice();\n    var destGeneratedMappings = smc.__generatedMappings = [];\n    var destOriginalMappings = smc.__originalMappings = [];\n\n    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n      var srcMapping = generatedMappings[i];\n      var destMapping = new Mapping;\n      destMapping.generatedLine = srcMapping.generatedLine;\n      destMapping.generatedColumn = srcMapping.generatedColumn;\n\n      if (srcMapping.source) {\n        destMapping.source = sources.indexOf(srcMapping.source);\n        destMapping.originalLine = srcMapping.originalLine;\n        destMapping.originalColumn = srcMapping.originalColumn;\n\n        if (srcMapping.name) {\n          destMapping.name = names.indexOf(srcMapping.name);\n        }\n\n        destOriginalMappings.push(destMapping);\n      }\n\n      destGeneratedMappings.push(destMapping);\n    }\n\n    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n    return smc;\n  };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    return this._sources.toArray().map(function (s) {\n      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n    }, this);\n  }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n  this.generatedLine = 0;\n  this.generatedColumn = 0;\n  this.source = null;\n  this.originalLine = null;\n  this.originalColumn = null;\n  this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    var generatedLine = 1;\n    var previousGeneratedColumn = 0;\n    var previousOriginalLine = 0;\n    var previousOriginalColumn = 0;\n    var previousSource = 0;\n    var previousName = 0;\n    var length = aStr.length;\n    var index = 0;\n    var cachedSegments = {};\n    var temp = {};\n    var originalMappings = [];\n    var generatedMappings = [];\n    var mapping, str, segment, end, value;\n\n    while (index < length) {\n      if (aStr.charAt(index) === ';') {\n        generatedLine++;\n        index++;\n        previousGeneratedColumn = 0;\n      }\n      else if (aStr.charAt(index) === ',') {\n        index++;\n      }\n      else {\n        mapping = new Mapping();\n        mapping.generatedLine = generatedLine;\n\n        // Because each offset is encoded relative to the previous one,\n        // many segments often have the same encoding. We can exploit this\n        // fact by caching the parsed variable length fields of each segment,\n        // allowing us to avoid a second parse if we encounter the same\n        // segment again.\n        for (end = index; end < length; end++) {\n          if (this._charIsMappingSeparator(aStr, end)) {\n            break;\n          }\n        }\n        str = aStr.slice(index, end);\n\n        segment = cachedSegments[str];\n        if (segment) {\n          index += str.length;\n        } else {\n          segment = [];\n          while (index < end) {\n            base64VLQ.decode(aStr, index, temp);\n            value = temp.value;\n            index = temp.rest;\n            segment.push(value);\n          }\n\n          if (segment.length === 2) {\n            throw new Error('Found a source, but no line and column');\n          }\n\n          if (segment.length === 3) {\n            throw new Error('Found a source and line, but no column');\n          }\n\n          cachedSegments[str] = segment;\n        }\n\n        // Generated column.\n        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n        previousGeneratedColumn = mapping.generatedColumn;\n\n        if (segment.length > 1) {\n          // Original source.\n          mapping.source = previousSource + segment[1];\n          previousSource += segment[1];\n\n          // Original line.\n          mapping.originalLine = previousOriginalLine + segment[2];\n          previousOriginalLine = mapping.originalLine;\n          // Lines are stored 0-based\n          mapping.originalLine += 1;\n\n          // Original column.\n          mapping.originalColumn = previousOriginalColumn + segment[3];\n          previousOriginalColumn = mapping.originalColumn;\n\n          if (segment.length > 4) {\n            // Original name.\n            mapping.name = previousName + segment[4];\n            previousName += segment[4];\n          }\n        }\n\n        generatedMappings.push(mapping);\n        if (typeof mapping.originalLine === 'number') {\n          originalMappings.push(mapping);\n        }\n      }\n    }\n\n    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n    this.__generatedMappings = generatedMappings;\n\n    quickSort(originalMappings, util.compareByOriginalPositions);\n    this.__originalMappings = originalMappings;\n  };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n                                         aColumnName, aComparator, aBias) {\n    // To return the position we are searching for, we must first find the\n    // mapping for the given position and then return the opposite position it\n    // points to. Because the mappings are sorted, we can use binary search to\n    // find the best mapping.\n\n    if (aNeedle[aLineName] <= 0) {\n      throw new TypeError('Line must be greater than or equal to 1, got '\n                          + aNeedle[aLineName]);\n    }\n    if (aNeedle[aColumnName] < 0) {\n      throw new TypeError('Column must be greater than or equal to 0, got '\n                          + aNeedle[aColumnName]);\n    }\n\n    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n  };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n  function SourceMapConsumer_computeColumnSpans() {\n    for (var index = 0; index < this._generatedMappings.length; ++index) {\n      var mapping = this._generatedMappings[index];\n\n      // Mappings do not contain a field for the last generated columnt. We\n      // can come up with an optimistic estimate, however, by assuming that\n      // mappings are contiguous (i.e. given two consecutive mappings, the\n      // first mapping ends where the second one starts).\n      if (index + 1 < this._generatedMappings.length) {\n        var nextMapping = this._generatedMappings[index + 1];\n\n        if (mapping.generatedLine === nextMapping.generatedLine) {\n          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n          continue;\n        }\n      }\n\n      // The last mapping for each line spans the entire line.\n      mapping.lastGeneratedColumn = Infinity;\n    }\n  };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n  function SourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._generatedMappings,\n      \"generatedLine\",\n      \"generatedColumn\",\n      util.compareByGeneratedPositionsDeflated,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._generatedMappings[index];\n\n      if (mapping.generatedLine === needle.generatedLine) {\n        var source = util.getArg(mapping, 'source', null);\n        if (source !== null) {\n          source = this._sources.at(source);\n          if (this.sourceRoot != null) {\n            source = util.join(this.sourceRoot, source);\n          }\n        }\n        var name = util.getArg(mapping, 'name', null);\n        if (name !== null) {\n          name = this._names.at(name);\n        }\n        return {\n          source: source,\n          line: util.getArg(mapping, 'originalLine', null),\n          column: util.getArg(mapping, 'originalColumn', null),\n          name: name\n        };\n      }\n    }\n\n    return {\n      source: null,\n      line: null,\n      column: null,\n      name: null\n    };\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n    if (!this.sourcesContent) {\n      return false;\n    }\n    return this.sourcesContent.length >= this._sources.size() &&\n      !this.sourcesContent.some(function (sc) { return sc == null; });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    if (!this.sourcesContent) {\n      return null;\n    }\n\n    if (this.sourceRoot != null) {\n      aSource = util.relative(this.sourceRoot, aSource);\n    }\n\n    if (this._sources.has(aSource)) {\n      return this.sourcesContent[this._sources.indexOf(aSource)];\n    }\n\n    var url;\n    if (this.sourceRoot != null\n        && (url = util.urlParse(this.sourceRoot))) {\n      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n      // many users. We can help them out when they expect file:// URIs to\n      // behave like it would if they were running a local HTTP server. See\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n      if (url.scheme == \"file\"\n          && this._sources.has(fileUriAbsPath)) {\n        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n      }\n\n      if ((!url.path || url.path == \"/\")\n          && this._sources.has(\"/\" + aSource)) {\n        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n      }\n    }\n\n    // This function is used recursively from\n    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n    // don't want to throw if we can't find the source - we just want to\n    // return null, so we provide a flag to exit gracefully.\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n  function SourceMapConsumer_generatedPositionFor(aArgs) {\n    var source = util.getArg(aArgs, 'source');\n    if (this.sourceRoot != null) {\n      source = util.relative(this.sourceRoot, source);\n    }\n    if (!this._sources.has(source)) {\n      return {\n        line: null,\n        column: null,\n        lastColumn: null\n      };\n    }\n    source = this._sources.indexOf(source);\n\n    var needle = {\n      source: source,\n      originalLine: util.getArg(aArgs, 'line'),\n      originalColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._originalMappings,\n      \"originalLine\",\n      \"originalColumn\",\n      util.compareByOriginalPositions,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (mapping.source === needle.source) {\n        return {\n          line: util.getArg(mapping, 'generatedLine', null),\n          column: util.getArg(mapping, 'generatedColumn', null),\n          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n        };\n      }\n    }\n\n    return {\n      line: null,\n      column: null,\n      lastColumn: null\n    };\n  };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The only parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - file: Optional. The generated file this source map is associated with.\n *   - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n *   - offset: The offset into the original specified at which this section\n *       begins to apply, defined as an object with a \"line\" and \"column\"\n *       field.\n *   - map: A source map definition. This source map could also be indexed,\n *       but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n *  {\n *    version : 3,\n *    file: \"app.js\",\n *    sections: [{\n *      offset: {line:100, column:10},\n *      map: {\n *        version : 3,\n *        file: \"section.js\",\n *        sources: [\"foo.js\", \"bar.js\"],\n *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n *        mappings: \"AAAA,E;;ABCDE;\"\n *      }\n *    }],\n *  }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sections = util.getArg(sourceMap, 'sections');\n\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n\n  var lastOffset = {\n    line: -1,\n    column: 0\n  };\n  this._sections = sections.map(function (s) {\n    if (s.url) {\n      // The url field will require support for asynchronicity.\n      // See https://github.com/mozilla/source-map/issues/16\n      throw new Error('Support for url field in sections not implemented.');\n    }\n    var offset = util.getArg(s, 'offset');\n    var offsetLine = util.getArg(offset, 'line');\n    var offsetColumn = util.getArg(offset, 'column');\n\n    if (offsetLine < lastOffset.line ||\n        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n      throw new Error('Section offsets must be ordered and non-overlapping.');\n    }\n    lastOffset = offset;\n\n    return {\n      generatedOffset: {\n        // The offset fields are 0-based, but we use 1-based indices when\n        // encoding/decoding from VLQ.\n        generatedLine: offsetLine + 1,\n        generatedColumn: offsetColumn + 1\n      },\n      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n    }\n  });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    var sources = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n        sources.push(this._sections[i].consumer.sources[j]);\n      }\n    }\n    return sources;\n  }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    // Find the section containing the generated position we're trying to map\n    // to an original position.\n    var sectionIndex = binarySearch.search(needle, this._sections,\n      function(needle, section) {\n        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n        if (cmp) {\n          return cmp;\n        }\n\n        return (needle.generatedColumn -\n                section.generatedOffset.generatedColumn);\n      });\n    var section = this._sections[sectionIndex];\n\n    if (!section) {\n      return {\n        source: null,\n        line: null,\n        column: null,\n        name: null\n      };\n    }\n\n    return section.consumer.originalPositionFor({\n      line: needle.generatedLine -\n        (section.generatedOffset.generatedLine - 1),\n      column: needle.generatedColumn -\n        (section.generatedOffset.generatedLine === needle.generatedLine\n         ? section.generatedOffset.generatedColumn - 1\n         : 0),\n      bias: aArgs.bias\n    });\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n    return this._sections.every(function (s) {\n      return s.consumer.hasContentsOfAllSources();\n    });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      var content = section.consumer.sourceContentFor(aSource, true);\n      if (content) {\n        return content;\n      }\n    }\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      // Only consider this section if the requested source is in the list of\n      // sources of the consumer.\n      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n        continue;\n      }\n      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n      if (generatedPosition) {\n        var ret = {\n          line: generatedPosition.line +\n            (section.generatedOffset.generatedLine - 1),\n          column: generatedPosition.column +\n            (section.generatedOffset.generatedLine === generatedPosition.line\n             ? section.generatedOffset.generatedColumn - 1\n             : 0)\n        };\n        return ret;\n      }\n    }\n\n    return {\n      line: null,\n      column: null\n    };\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    this.__generatedMappings = [];\n    this.__originalMappings = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n      var sectionMappings = section.consumer._generatedMappings;\n      for (var j = 0; j < sectionMappings.length; j++) {\n        var mapping = sectionMappings[j];\n\n        var source = section.consumer._sources.at(mapping.source);\n        if (section.consumer.sourceRoot !== null) {\n          source = util.join(section.consumer.sourceRoot, source);\n        }\n        this._sources.add(source);\n        source = this._sources.indexOf(source);\n\n        var name = section.consumer._names.at(mapping.name);\n        this._names.add(name);\n        name = this._names.indexOf(name);\n\n        // The mappings coming from the consumer for the section have\n        // generated positions relative to the start of the section, so we\n        // need to offset them to be relative to the start of the concatenated\n        // generated file.\n        var adjustedMapping = {\n          source: source,\n          generatedLine: mapping.generatedLine +\n            (section.generatedOffset.generatedLine - 1),\n          generatedColumn: mapping.generatedColumn +\n            (section.generatedOffset.generatedLine === mapping.generatedLine\n            ? section.generatedOffset.generatedColumn - 1\n            : 0),\n          originalLine: mapping.originalLine,\n          originalColumn: mapping.originalColumn,\n          name: name\n        };\n\n        this.__generatedMappings.push(adjustedMapping);\n        if (typeof adjustedMapping.originalLine === 'number') {\n          this.__originalMappings.push(adjustedMapping);\n        }\n      }\n    }\n\n    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n  };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-consumer.js\n// module id = 7\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n  // This function terminates when one of the following is true:\n  //\n  //   1. We find the exact element we are looking for.\n  //\n  //   2. We did not find the exact element, but we can return the index of\n  //      the next-closest element.\n  //\n  //   3. We did not find the exact element, and there is no next-closest\n  //      element than the one we are searching for, so we return -1.\n  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n  if (cmp === 0) {\n    // Found the element we are looking for.\n    return mid;\n  }\n  else if (cmp > 0) {\n    // Our needle is greater than aHaystack[mid].\n    if (aHigh - mid > 1) {\n      // The element is in the upper half.\n      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // The exact needle element was not found in this haystack. Determine if\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return aHigh < aHaystack.length ? aHigh : -1;\n    } else {\n      return mid;\n    }\n  }\n  else {\n    // Our needle is less than aHaystack[mid].\n    if (mid - aLow > 1) {\n      // The element is in the lower half.\n      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return mid;\n    } else {\n      return aLow < 0 ? -1 : aLow;\n    }\n  }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n *     array and returns -1, 0, or 1 depending on whether the needle is less\n *     than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n  if (aHaystack.length === 0) {\n    return -1;\n  }\n\n  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n  if (index < 0) {\n    return -1;\n  }\n\n  // We have found either the exact element, or the next-closest element than\n  // the one we are searching for. However, there may be more than one such\n  // element. Make sure we always return the smallest of these.\n  while (index - 1 >= 0) {\n    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n      break;\n    }\n    --index;\n  }\n\n  return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/binary-search.js\n// module id = 8\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n *        The array.\n * @param {Number} x\n *        The index of the first item.\n * @param {Number} y\n *        The index of the second item.\n */\nfunction swap(ary, x, y) {\n  var temp = ary[x];\n  ary[x] = ary[y];\n  ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n *        The lower bound on the range.\n * @param {Number} high\n *        The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n  return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n * @param {Number} p\n *        Start index of the array\n * @param {Number} r\n *        End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n  // If our lower bound is less than our upper bound, we (1) partition the\n  // array into two pieces and (2) recurse on each half. If it is not, this is\n  // the empty array and our base case.\n\n  if (p < r) {\n    // (1) Partitioning.\n    //\n    // The partitioning chooses a pivot between `p` and `r` and moves all\n    // elements that are less than or equal to the pivot to the before it, and\n    // all the elements that are greater than it after it. The effect is that\n    // once partition is done, the pivot is in the exact place it will be when\n    // the array is put in sorted order, and it will not need to be moved\n    // again. This runs in O(n) time.\n\n    // Always choose a random pivot so that an input array which is reverse\n    // sorted does not cause O(n^2) running time.\n    var pivotIndex = randomIntInRange(p, r);\n    var i = p - 1;\n\n    swap(ary, pivotIndex, r);\n    var pivot = ary[r];\n\n    // Immediately after `j` is incremented in this loop, the following hold\n    // true:\n    //\n    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n    //\n    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n    for (var j = p; j < r; j++) {\n      if (comparator(ary[j], pivot) <= 0) {\n        i += 1;\n        swap(ary, i, j);\n      }\n    }\n\n    swap(ary, i + 1, j);\n    var q = i + 1;\n\n    // (2) Recurse on each half.\n\n    doQuickSort(ary, comparator, p, q - 1);\n    doQuickSort(ary, comparator, q + 1, r);\n  }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n  doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/quick-sort.js\n// module id = 9\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n    // The SourceNode we want to fill with the generated code\n    // and the SourceMap\n    var node = new SourceNode();\n\n    // All even indices of this array are one line of the generated code,\n    // while all odd indices are the newlines between two adjacent lines\n    // (since `REGEX_NEWLINE` captures its match).\n    // Processed fragments are accessed by calling `shiftNextLine`.\n    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n    var remainingLinesIndex = 0;\n    var shiftNextLine = function() {\n      var lineContents = getNextLine();\n      // The last line of a file might not have a newline.\n      var newLine = getNextLine() || \"\";\n      return lineContents + newLine;\n\n      function getNextLine() {\n        return remainingLinesIndex < remainingLines.length ?\n            remainingLines[remainingLinesIndex++] : undefined;\n      }\n    };\n\n    // We need to remember the position of \"remainingLines\"\n    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n    // The generate SourceNodes we need a code range.\n    // To extract it current and last mapping is used.\n    // Here we store the last mapping.\n    var lastMapping = null;\n\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      if (lastMapping !== null) {\n        // We add the code from \"lastMapping\" to \"mapping\":\n        // First check if there is a new line in between.\n        if (lastGeneratedLine < mapping.generatedLine) {\n          // Associate first line with \"lastMapping\"\n          addMappingWithCode(lastMapping, shiftNextLine());\n          lastGeneratedLine++;\n          lastGeneratedColumn = 0;\n          // The remaining code is added without mapping\n        } else {\n          // There is no new line in between.\n          // Associate the code between \"lastGeneratedColumn\" and\n          // \"mapping.generatedColumn\" with \"lastMapping\"\n          var nextLine = remainingLines[remainingLinesIndex];\n          var code = nextLine.substr(0, mapping.generatedColumn -\n                                        lastGeneratedColumn);\n          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n                                              lastGeneratedColumn);\n          lastGeneratedColumn = mapping.generatedColumn;\n          addMappingWithCode(lastMapping, code);\n          // No more remaining code, continue\n          lastMapping = mapping;\n          return;\n        }\n      }\n      // We add the generated code until the first mapping\n      // to the SourceNode without any mapping.\n      // Each line is added as separate string.\n      while (lastGeneratedLine < mapping.generatedLine) {\n        node.add(shiftNextLine());\n        lastGeneratedLine++;\n      }\n      if (lastGeneratedColumn < mapping.generatedColumn) {\n        var nextLine = remainingLines[remainingLinesIndex];\n        node.add(nextLine.substr(0, mapping.generatedColumn));\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n      }\n      lastMapping = mapping;\n    }, this);\n    // We have processed all mappings.\n    if (remainingLinesIndex < remainingLines.length) {\n      if (lastMapping) {\n        // Associate the remaining code in the current line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n      }\n      // and add the remaining lines without any mapping\n      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n    }\n\n    // Copy sourcesContent into SourceNode\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aRelativePath != null) {\n          sourceFile = util.join(aRelativePath, sourceFile);\n        }\n        node.setSourceContent(sourceFile, content);\n      }\n    });\n\n    return node;\n\n    function addMappingWithCode(mapping, code) {\n      if (mapping === null || mapping.source === undefined) {\n        node.add(code);\n      } else {\n        var source = aRelativePath\n          ? util.join(aRelativePath, mapping.source)\n          : mapping.source;\n        node.add(new SourceNode(mapping.originalLine,\n                                mapping.originalColumn,\n                                source,\n                                code,\n                                mapping.name));\n      }\n    }\n  };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length-1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    }\n    else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n                     line: this.line,\n                     column: this.column,\n                     name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len-1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  }\n  else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  }\n  else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n  };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n  function SourceNode_walkSourceContents(aFn) {\n    for (var i = 0, len = this.children.length; i < len; i++) {\n      if (this.children[i][isSourceNode]) {\n        this.children[i].walkSourceContents(aFn);\n      }\n    }\n\n    var sources = Object.keys(this.sourceContents);\n    for (var i = 0, len = sources.length; i < len; i++) {\n      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n    }\n  };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null\n        && original.line !== null\n        && original.column !== null) {\n      if(lastOriginalSource !== original.source\n         || lastOriginalLine !== original.line\n         || lastOriginalColumn !== original.column\n         || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-node.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js-74-    if (deprecratedKey) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js:75:      console.trace(`Visitor defined for ${nodeType} but it has been renamed to ${deprecratedKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js-76-      aliases = [deprecratedKey];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js-115-    if (t.TYPES.indexOf(nodeType) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js:116:      throw new Error(`You gave us a visitor for the node type ${nodeType} but it's not a valid type`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js-117-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js-123-        if (visitorKey === "enter" || visitorKey === "exit") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js:124:          validateVisitorMethods(`${nodeType}.${visitorKey}`, visitors[visitorKey]);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js-125-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js:126:          throw new Error("You passed `traverse()` a visitor object with the property " + `${nodeType} that has the invalid property ${visitorKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js-127-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js-139-    if (typeof fn !== "function") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js:140:      throw new TypeError(`Non-function found defined in ${path} with type ${typeof fn}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/visitors.js-141-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/modification.js-172-      const type = Array.isArray(node) ? "array" : typeof node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/modification.js:173:      throw new Error(`Node list ${msg} with the index of ${i} and type of ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/modification.js-174-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-161-      let key = path.key;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js:162:      if (path.inList) key = `${path.listKey}[${key}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-163-      parts.unshift(key);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-170-    if (!debug.enabled) return;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js:171:    debug(`${this.getPathLocation()} ${this.type}: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-172-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-233-for (const type of t.TYPES) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js:234:  const typeKey = `is${type}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-235-  const fn = t[typeKey];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-240-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js:241:  NodePath.prototype[`assert${type}`] = function (opts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-242-    if (!fn(this.node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js:243:      throw new TypeError(`Expected node path of type ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-244-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-252-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js:253:  NodePath.prototype[`is${type}`] = function (opts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/index.js-254-    return virtualType.checkPath(this, opts);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/context.js-61-    if (ret) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/context.js:62:      throw new Error(`Unexpected return value from visitor method ${fn}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/context.js-63-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/conversion.js-323-  const op = isAssignment ? "set" : "get";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/conversion.js:324:  return getBinding(thisEnvFn, `superprop_${op}:${propName || ""}`, () => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/conversion.js-325-    const argsList = [];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/replacement.js-77-  try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/replacement.js:78:    replacement = `(${replacement})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/replacement.js-79-    replacement = (0, _parser.parse)(replacement);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/replacement.js-174-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/replacement.js:175:  this.debug(`Replace with ${node && node.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/replacement.js-176-  this.node = this.container[this.key] = node;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/inference/index.js-89-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/inference/index.js:90:      throw new Error(`Unknown base type ${baseName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/path/inference/index.js-91-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/index.js-56-    if (parent.type !== "Program" && parent.type !== "File") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/index.js:57:      throw new Error("You must pass a scope and parentPath unless traversing a Program/File. " + `Instead of that you tried to traverse a ${parent.type} node without ` + "passing scope and parentPath.");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/index.js-58-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js-345-    if (i > 1) id += i;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js:346:    return `_${id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js-347-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js-401-    if (duplicate) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js:402:      throw this.hub.buildError(id, `Duplicate declaration "${name}"`, TypeError);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js-403-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js-784-    const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js:785:    const dataKey = `declaration:${kind}:${blockHoist}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse/lib/scope/index.js-786-    let declarPath = !unique && path.getData(dataKey);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/base.js-76-  if (!unescapedDoubleQuoteRE.test(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/base.js:77:    this.token(`"${value}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/base.js-78-  } else if (!unescapedSingleQuoteRE.test(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/base.js:79:    this.token(`'${value}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/base.js-80-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/base.js-85-function InterpreterDirective(node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/base.js:86:  this.token(`#!${node.value}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/base.js-87-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js-133-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js:134:    throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)} received).`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js-135-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js-164-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js:165:    throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js-166-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js-184-function RegExpLiteral(node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js:185:  this.word(`/${node.pattern}/${node.flags}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/generators/types.js-186-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js-268-    if (!printMethod) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js:269:      throw new ReferenceError(`unknown node of type ${JSON.stringify(node.type)} with constructor ${JSON.stringify(node && node.constructor.name)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js-270-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js-456-    if (!this.endsWith("[") && !this.endsWith("{")) this.space();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js:457:    let val = !isBlockComment && !this._noLineTerminator ? `//${comment.value}\n` : `/*${comment.value}*/`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js-458-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js-467-      const indentSize = Math.max(this._getIndent().length, this._buf.getCurrentColumn());
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js:468:      val = val.replace(/\n(?!$)/g, `\n${(0, _repeat.default)(" ", indentSize)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/printer.js-469-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/index.js-65-    if (format.compact) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/index.js:66:      console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/generator/lib/index.js-67-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/helper-function-name/lib/index.js-62-  if (t.isRegExpLiteral(id)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/helper-function-name/lib/index.js:63:    return `_${id.pattern}_${id.flags}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/helper-function-name/lib/index.js-64-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js-109-    const number = start + 1 + index;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js:110:    const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js:111:    const gutter = ` ${paddedNumber} | `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js-112-    const hasMarker = markerLines[number];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js-129-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js:130:      return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js-131-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js-134-  if (opts.message && !hasColumns) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js:135:    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/code-frame/lib/index.js-136-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-733-    const loc = this.getLocationForPosition(pos);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js:734:    const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-735-    return this._raise(Object.assign({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-4934-  if (x == null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js:4935:    throw new Error(`Unexpected ${x} value.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-4936-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-7311-  if (hasPlugin(plugins, "pipelineOperator") && !PIPELINE_PROPOSALS.includes(getPluginOption(plugins, "pipelineOperator", "proposal"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js:7312:    throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: " + PIPELINE_PROPOSALS.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-7313-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-7315-  if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js:7316:    throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-7317-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-8753-    if (typeof messageOrType !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js:8754:      messageOrType = `Unexpected token, expected "${messageOrType.label}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-8755-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-8763-        missingPlugin: [name]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js:8764:      }, `This experimental syntax requires enabling the parser plugin: '${name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-8765-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-8773-        missingPlugin: names
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js:8774:      }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-8775-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-9192-        if (checkClashes) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js:9193:          const key = `_${expr.name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-9194-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-10907-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js:10908:        throw new Error(`Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js-10909-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/lib/index.js.map:1:{"version":3,"file":"index.js","sources":["../src/tokenizer/types.js","../src/util/scopeflags.js","../src/util/whitespace.js","../src/util/location.js","../src/parser/base.js","../src/parser/comments.js","../src/parser/location.js","../src/plugins/estree.js","../src/tokenizer/context.js","../../babel-helper-validator-identifier/src/identifier.js","../../babel-helper-validator-identifier/src/keyword.js","../src/util/identifier.js","../src/plugins/flow.js","../src/plugins/jsx/xhtml.js","../src/plugins/jsx/index.js","../src/util/scope.js","../src/plugins/typescript/scope.js","../src/util/production-parameter.js","../src/plugins/typescript/index.js","../src/plugins/placeholders.js","../src/plugins/v8intrinsic.js","../src/plugin-utils.js","../src/options.js","../src/tokenizer/state.js","../src/tokenizer/index.js","../src/parser/util.js","../src/parser/node.js","../src/parser/lval.js","../src/parser/expression.js","../src/parser/statement.js","../src/util/class-scope.js","../src/parser/index.js","../src/index.js"],"sourcesContent":["// @flow\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n  keyword?: string,\n  beforeExpr?: boolean,\n  startsExpr?: boolean,\n  rightAssociative?: boolean,\n  isLoop?: boolean,\n  isAssign?: boolean,\n  prefix?: boolean,\n  postfix?: boolean,\n  binop?: ?number,\n};\n\nexport class TokenType {\n  label: string;\n  keyword: ?string;\n  beforeExpr: boolean;\n  startsExpr: boolean;\n  rightAssociative: boolean;\n  isLoop: boolean;\n  isAssign: boolean;\n  prefix: boolean;\n  postfix: boolean;\n  binop: ?number;\n  updateContext: ?(prevType: TokenType) => void;\n\n  constructor(label: string, conf: TokenOptions = {}) {\n    this.label = label;\n    this.keyword = conf.keyword;\n    this.beforeExpr = !!conf.beforeExpr;\n    this.startsExpr = !!conf.startsExpr;\n    this.rightAssociative = !!conf.rightAssociative;\n    this.isLoop = !!conf.isLoop;\n    this.isAssign = !!conf.isAssign;\n    this.prefix = !!conf.prefix;\n    this.postfix = !!conf.postfix;\n    this.binop = conf.binop != null ? conf.binop : null;\n    this.updateContext = null;\n  }\n}\n\nexport const keywords = new Map<string, TokenType>();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n  options.keyword = name;\n  const token = new TokenType(name, options);\n  keywords.set(name, token);\n  return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n  return new TokenType(name, { beforeExpr, binop });\n}\n\nexport const types: { [name: string]: TokenType } = {\n  num: new TokenType(\"num\", { startsExpr }),\n  bigint: new TokenType(\"bigint\", { startsExpr }),\n  regexp: new TokenType(\"regexp\", { startsExpr }),\n  string: new TokenType(\"string\", { startsExpr }),\n  name: new TokenType(\"name\", { startsExpr }),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", { beforeExpr, startsExpr }),\n  bracketHashL: new TokenType(\"#[\", { beforeExpr, startsExpr }),\n  bracketBarL: new TokenType(\"[|\", { beforeExpr, startsExpr }),\n  bracketR: new TokenType(\"]\"),\n  bracketBarR: new TokenType(\"|]\"),\n  braceL: new TokenType(\"{\", { beforeExpr, startsExpr }),\n  braceBarL: new TokenType(\"{|\", { beforeExpr, startsExpr }),\n  braceHashL: new TokenType(\"#{\", { beforeExpr, startsExpr }),\n  braceR: new TokenType(\"}\"),\n  braceBarR: new TokenType(\"|}\"),\n  parenL: new TokenType(\"(\", { beforeExpr, startsExpr }),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", { beforeExpr }),\n  semi: new TokenType(\";\", { beforeExpr }),\n  colon: new TokenType(\":\", { beforeExpr }),\n  doubleColon: new TokenType(\"::\", { beforeExpr }),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", { beforeExpr }),\n  questionDot: new TokenType(\"?.\"),\n  arrow: new TokenType(\"=>\", { beforeExpr }),\n  template: new TokenType(\"template\"),\n  ellipsis: new TokenType(\"...\", { beforeExpr }),\n  backQuote: new TokenType(\"`\", { startsExpr }),\n  dollarBraceL: new TokenType(\"${\", { beforeExpr, startsExpr }),\n  at: new TokenType(\"@\"),\n  hash: new TokenType(\"#\", { startsExpr }),\n\n  // Special hashbang token.\n  interpreterDirective: new TokenType(\"#!...\"),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", { beforeExpr, isAssign }),\n  assign: new TokenType(\"_=\", { beforeExpr, isAssign }),\n  incDec: new TokenType(\"++/--\", { prefix, postfix, startsExpr }),\n  bang: new TokenType(\"!\", { beforeExpr, prefix, startsExpr }),\n  tilde: new TokenType(\"~\", { beforeExpr, prefix, startsExpr }),\n  pipeline: createBinop(\"|>\", 0),\n  nullishCoalescing: createBinop(\"??\", 1),\n  logicalOR: createBinop(\"||\", 1),\n  logicalAND: createBinop(\"&&\", 2),\n  bitwiseOR: createBinop(\"|\", 3),\n  bitwiseXOR: createBinop(\"^\", 4),\n  bitwiseAND: createBinop(\"&\", 5),\n  equality: createBinop(\"==/!=/===/!==\", 6),\n  relational: createBinop(\"</>/<=/>=\", 7),\n  bitShift: createBinop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n  // startsExpr: required by v8intrinsic plugin\n  modulo: new TokenType(\"%\", { beforeExpr, binop: 10, startsExpr }),\n  star: createBinop(\"*\", 10),\n  slash: createBinop(\"/\", 10),\n  exponent: new TokenType(\"**\", {\n    beforeExpr,\n    binop: 11,\n    rightAssociative: true,\n  }),\n\n  // Keywords\n  // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n  // when new keywords are added\n  _break: createKeyword(\"break\"),\n  _case: createKeyword(\"case\", { beforeExpr }),\n  _catch: createKeyword(\"catch\"),\n  _continue: createKeyword(\"continue\"),\n  _debugger: createKeyword(\"debugger\"),\n  _default: createKeyword(\"default\", { beforeExpr }),\n  _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n  _else: createKeyword(\"else\", { beforeExpr }),\n  _finally: createKeyword(\"finally\"),\n  _for: createKeyword(\"for\", { isLoop }),\n  _function: createKeyword(\"function\", { startsExpr }),\n  _if: createKeyword(\"if\"),\n  _return: createKeyword(\"return\", { beforeExpr }),\n  _switch: createKeyword(\"switch\"),\n  _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n  _try: createKeyword(\"try\"),\n  _var: createKeyword(\"var\"),\n  _const: createKeyword(\"const\"),\n  _while: createKeyword(\"while\", { isLoop }),\n  _with: createKeyword(\"with\"),\n  _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n  _this: createKeyword(\"this\", { startsExpr }),\n  _super: createKeyword(\"super\", { startsExpr }),\n  _class: createKeyword(\"class\", { startsExpr }),\n  _extends: createKeyword(\"extends\", { beforeExpr }),\n  _export: createKeyword(\"export\"),\n  _import: createKeyword(\"import\", { startsExpr }),\n  _null: createKeyword(\"null\", { startsExpr }),\n  _true: createKeyword(\"true\", { startsExpr }),\n  _false: createKeyword(\"false\", { startsExpr }),\n  _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n  _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n  _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n  _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n  _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n};\n","// @flow\n\n// Each scope gets a bitset that may contain these flags\n// prettier-ignore\nexport const SCOPE_OTHER        = 0b00000000,\n             SCOPE_PROGRAM      = 0b00000001,\n             SCOPE_FUNCTION     = 0b00000010,\n             SCOPE_ARROW        = 0b00000100,\n             SCOPE_SIMPLE_CATCH = 0b00001000,\n             SCOPE_SUPER        = 0b00010000,\n             SCOPE_DIRECT_SUPER = 0b00100000,\n             SCOPE_CLASS        = 0b01000000,\n             SCOPE_TS_MODULE    = 0b10000000,\n             SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE;\n\nexport type ScopeFlags =\n  | typeof SCOPE_OTHER\n  | typeof SCOPE_PROGRAM\n  | typeof SCOPE_FUNCTION\n  | typeof SCOPE_VAR\n  | typeof SCOPE_ARROW\n  | typeof SCOPE_SIMPLE_CATCH\n  | typeof SCOPE_SUPER\n  | typeof SCOPE_DIRECT_SUPER\n  | typeof SCOPE_CLASS;\n\n// These flags are meant to be _only_ used inside the Scope class (or subclasses).\n// prettier-ignore\nexport const BIND_KIND_VALUE           = 0b00000_0000_01,\n             BIND_KIND_TYPE            = 0b00000_0000_10,\n             // Used in checkLVal and declareName to determine the type of a binding\n             BIND_SCOPE_VAR            = 0b00000_0001_00, // Var-style binding\n             BIND_SCOPE_LEXICAL        = 0b00000_0010_00, // Let- or const-style binding\n             BIND_SCOPE_FUNCTION       = 0b00000_0100_00, // Function declaration\n             BIND_SCOPE_OUTSIDE        = 0b00000_1000_00, // Special case for function names as\n                                                   // bound inside the function\n             // Misc flags\n             BIND_FLAGS_NONE           = 0b00001_0000_00,\n             BIND_FLAGS_CLASS          = 0b00010_0000_00,\n             BIND_FLAGS_TS_ENUM        = 0b00100_0000_00,\n             BIND_FLAGS_TS_CONST_ENUM  = 0b01000_0000_00,\n             BIND_FLAGS_TS_EXPORT_ONLY = 0b10000_0000_00;\n\n// These flags are meant to be _only_ used by Scope consumers\n// prettier-ignore\n/*                              =    is value?    |    is type?    |      scope          |    misc flags    */\nexport const BIND_CLASS         = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_CLASS  ,\n             BIND_LEXICAL       = BIND_KIND_VALUE | 0              | BIND_SCOPE_LEXICAL  | 0                 ,\n             BIND_VAR           = BIND_KIND_VALUE | 0              | BIND_SCOPE_VAR      | 0                 ,\n             BIND_FUNCTION      = BIND_KIND_VALUE | 0              | BIND_SCOPE_FUNCTION | 0                 ,\n             BIND_TS_INTERFACE  = 0               | BIND_KIND_TYPE | 0                   | BIND_FLAGS_CLASS  ,\n             BIND_TS_TYPE       = 0               | BIND_KIND_TYPE | 0                   | 0                 ,\n             BIND_TS_ENUM       = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_TS_ENUM,\n             BIND_TS_AMBIENT    = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY,\n             // These bindings don't introduce anything in the scope. They are used for assignments and\n             // function expressions IDs.\n             BIND_NONE          = 0               | 0              | 0                   | BIND_FLAGS_NONE   ,\n             BIND_OUTSIDE       = BIND_KIND_VALUE | 0              | 0                   | BIND_FLAGS_NONE   ,\n\n             BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM,\n             BIND_TS_NAMESPACE  = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY;\n\nexport type BindingTypes =\n  | typeof BIND_NONE\n  | typeof BIND_OUTSIDE\n  | typeof BIND_VAR\n  | typeof BIND_LEXICAL\n  | typeof BIND_CLASS\n  | typeof BIND_FUNCTION\n  | typeof BIND_TS_INTERFACE\n  | typeof BIND_TS_TYPE\n  | typeof BIND_TS_ENUM\n  | typeof BIND_TS_AMBIENT\n  | typeof BIND_TS_NAMESPACE;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_FLAG_STATIC = 0b1_00,\n             CLASS_ELEMENT_KIND_GETTER = 0b0_10,\n             CLASS_ELEMENT_KIND_SETTER = 0b0_01,\n             CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_STATIC_GETTER   = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_STATIC_SETTER   = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER,\n             CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER,\n             CLASS_ELEMENT_OTHER           = 0;\n\nexport type ClassElementTypes =\n  | typeof CLASS_ELEMENT_STATIC_GETTER\n  | typeof CLASS_ELEMENT_STATIC_SETTER\n  | typeof CLASS_ELEMENT_INSTANCE_GETTER\n  | typeof CLASS_ELEMENT_INSTANCE_SETTER\n  | typeof CLASS_ELEMENT_OTHER;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n  switch (code) {\n    case charCodes.lineFeed:\n    case charCodes.carriageReturn:\n    case charCodes.lineSeparator:\n    case charCodes.paragraphSeparator:\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n  switch (code) {\n    case 0x0009: // CHARACTER TABULATION\n    case 0x000b: // LINE TABULATION\n    case 0x000c: // FORM FEED\n    case charCodes.space:\n    case charCodes.nonBreakingSpace:\n    case charCodes.oghamSpaceMark:\n    case 0x2000: // EN QUAD\n    case 0x2001: // EM QUAD\n    case 0x2002: // EN SPACE\n    case 0x2003: // EM SPACE\n    case 0x2004: // THREE-PER-EM SPACE\n    case 0x2005: // FOUR-PER-EM SPACE\n    case 0x2006: // SIX-PER-EM SPACE\n    case 0x2007: // FIGURE SPACE\n    case 0x2008: // PUNCTUATION SPACE\n    case 0x2009: // THIN SPACE\n    case 0x200a: // HAIR SPACE\n    case 0x202f: // NARROW NO-BREAK SPACE\n    case 0x205f: // MEDIUM MATHEMATICAL SPACE\n    case 0x3000: // IDEOGRAPHIC SPACE\n    case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n      return true;\n\n    default:\n      return false;\n  }\n}\n","// @flow\n\nimport { lineBreakG } from \"./whitespace\";\n\nexport type Pos = {\n  start: number,\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  line: number;\n  column: number;\n\n  constructor(line: number, col: number) {\n    this.line = line;\n    this.column = col;\n  }\n}\n\nexport class SourceLocation {\n  start: Position;\n  end: Position;\n  filename: string;\n  identifierName: ?string;\n\n  constructor(start: Position, end?: Position) {\n    this.start = start;\n    // $FlowIgnore (may start as null, but initialized later)\n    this.end = end;\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input: string, offset: number): Position {\n  let line = 1;\n  let lineStart = 0;\n  let match;\n  lineBreakG.lastIndex = 0;\n  while ((match = lineBreakG.exec(input)) && match.index < offset) {\n    line++;\n    lineStart = lineBreakG.lastIndex;\n  }\n\n  return new Position(line, offset - lineStart);\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type State from \"../tokenizer/state\";\nimport type { PluginsMap } from \"./index\";\nimport type ScopeHandler from \"../util/scope\";\nimport type ClassScopeHandler from \"../util/class-scope\";\nimport type ProductionParameterHandler from \"../util/production-parameter\";\n\nexport default class BaseParser {\n  // Properties set by constructor in index.js\n  options: Options;\n  inModule: boolean;\n  scope: ScopeHandler<*>;\n  classScope: ClassScopeHandler;\n  prodParam: ProductionParameterHandler;\n  plugins: PluginsMap;\n  filename: ?string;\n  sawUnambiguousESM: boolean = false;\n  ambiguousScriptDifferentAst: boolean = false;\n\n  // Initialized by Tokenizer\n  state: State;\n  // input and length are not in state as they are constant and we do\n  // not want to ever copy them, which happens if state gets cloned\n  input: string;\n  length: number;\n\n  hasPlugin(name: string): boolean {\n    return this.plugins.has(name);\n  }\n\n  getPluginOption(plugin: string, name: string) {\n    // $FlowIssue\n    if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name];\n  }\n}\n","// @flow\n\n/**\n * Based on the comment attachment algorithm used in espree and estraverse.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n *   notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n *   notice, this list of conditions and the following disclaimer in the\n *   documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport BaseParser from \"./base\";\nimport type { Comment, Node } from \"../types\";\n\nfunction last<T>(stack: $ReadOnlyArray<T>): T {\n  return stack[stack.length - 1];\n}\n\nexport default class CommentsParser extends BaseParser {\n  addComment(comment: Comment): void {\n    if (this.filename) comment.loc.filename = this.filename;\n    this.state.trailingComments.push(comment);\n    this.state.leadingComments.push(comment);\n  }\n\n  adjustCommentsAfterTrailingComma(\n    node: Node,\n    elements: (Node | null)[],\n    // When the current node is followed by a token which hasn't a respective AST node, we\n    // need to take all the trailing comments to prevent them from being attached to an\n    // unrelated node. e.g. in\n    //     var { x } /* cmt */ = { y }\n    // we don't want /* cmt */ to be attached to { y }.\n    // On the other hand, in\n    //     fn(x) [new line] /* cmt */ [new line] y\n    // /* cmt */ is both a trailing comment of fn(x) and a leading comment of y\n    takeAllComments?: boolean,\n  ) {\n    if (this.state.leadingComments.length === 0) {\n      return;\n    }\n\n    let lastElement = null;\n    let i = elements.length;\n    while (lastElement === null && i > 0) {\n      lastElement = elements[--i];\n    }\n    if (lastElement === null) {\n      return;\n    }\n\n    for (let j = 0; j < this.state.leadingComments.length; j++) {\n      if (\n        this.state.leadingComments[j].end < this.state.commentPreviousNode.end\n      ) {\n        this.state.leadingComments.splice(j, 1);\n        j--;\n      }\n    }\n\n    const newTrailingComments = [];\n    for (let i = 0; i < this.state.leadingComments.length; i++) {\n      const leadingComment = this.state.leadingComments[i];\n      if (leadingComment.end < node.end) {\n        newTrailingComments.push(leadingComment);\n\n        // Perf: we don't need to splice if we are going to reset the array anyway\n        if (!takeAllComments) {\n          this.state.leadingComments.splice(i, 1);\n          i--;\n        }\n      } else {\n        if (node.trailingComments === undefined) {\n          node.trailingComments = [];\n        }\n        node.trailingComments.push(leadingComment);\n      }\n    }\n    if (takeAllComments) this.state.leadingComments = [];\n\n    if (newTrailingComments.length > 0) {\n      lastElement.trailingComments = newTrailingComments;\n    } else if (lastElement.trailingComments !== undefined) {\n      lastElement.trailingComments = [];\n    }\n  }\n\n  processComment(node: Node): void {\n    if (node.type === \"Program\" && node.body.length > 0) return;\n\n    const stack = this.state.commentStack;\n\n    let firstChild, lastChild, trailingComments, i, j;\n\n    if (this.state.trailingComments.length > 0) {\n      // If the first comment in trailingComments comes after the\n      // current node, then we're good - all comments in the array will\n      // come after the node and so it's safe to add them as official\n      // trailingComments.\n      if (this.state.trailingComments[0].start >= node.end) {\n        trailingComments = this.state.trailingComments;\n        this.state.trailingComments = [];\n      } else {\n        // Otherwise, if the first comment doesn't come after the\n        // current node, that means we have a mix of leading and trailing\n        // comments in the array and that leadingComments contains the\n        // same items as trailingComments. Reset trailingComments to\n        // zero items and we'll handle this by evaluating leadingComments\n        // later.\n        this.state.trailingComments.length = 0;\n      }\n    } else if (stack.length > 0) {\n      const lastInStack = last(stack);\n      if (\n        lastInStack.trailingComments &&\n        lastInStack.trailingComments[0].start >= node.end\n      ) {\n        trailingComments = lastInStack.trailingComments;\n        delete lastInStack.trailingComments;\n      }\n    }\n\n    // Eating the stack.\n    if (stack.length > 0 && last(stack).start >= node.start) {\n      firstChild = stack.pop();\n    }\n\n    while (stack.length > 0 && last(stack).start >= node.start) {\n      lastChild = stack.pop();\n    }\n\n    if (!lastChild && firstChild) lastChild = firstChild;\n\n    // Adjust comments that follow a trailing comma on the last element in a\n    // comma separated list of nodes to be the trailing comments on the last\n    // element\n    if (firstChild) {\n      switch (node.type) {\n        case \"ObjectExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties);\n          break;\n        case \"ObjectPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties, true);\n          break;\n        case \"CallExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.arguments);\n          break;\n        case \"ArrayExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements);\n          break;\n        case \"ArrayPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements, true);\n          break;\n      }\n    } else if (\n      this.state.commentPreviousNode &&\n      ((this.state.commentPreviousNode.type === \"ImportSpecifier\" &&\n        node.type !== \"ImportSpecifier\") ||\n        (this.state.commentPreviousNode.type === \"ExportSpecifier\" &&\n          node.type !== \"ExportSpecifier\"))\n    ) {\n      this.adjustCommentsAfterTrailingComma(node, [\n        this.state.commentPreviousNode,\n      ]);\n    }\n\n    if (lastChild) {\n      if (lastChild.leadingComments) {\n        if (\n          lastChild !== node &&\n          lastChild.leadingComments.length > 0 &&\n          last(lastChild.leadingComments).end <= node.start\n        ) {\n          node.leadingComments = lastChild.leadingComments;\n          delete lastChild.leadingComments;\n        } else {\n          // A leading comment for an anonymous class had been stolen by its first ClassMethod,\n          // so this takes back the leading comment.\n          // See also: https://github.com/eslint/espree/issues/158\n          for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\n            if (lastChild.leadingComments[i].end <= node.start) {\n              node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\n              break;\n            }\n          }\n        }\n      }\n    } else if (this.state.leadingComments.length > 0) {\n      if (last(this.state.leadingComments).end <= node.start) {\n        if (this.state.commentPreviousNode) {\n          for (j = 0; j < this.state.leadingComments.length; j++) {\n            if (\n              this.state.leadingComments[j].end <\n              this.state.commentPreviousNode.end\n            ) {\n              this.state.leadingComments.splice(j, 1);\n              j--;\n            }\n          }\n        }\n        if (this.state.leadingComments.length > 0) {\n          node.leadingComments = this.state.leadingComments;\n          this.state.leadingComments = [];\n        }\n      } else {\n        // https://github.com/eslint/espree/issues/2\n        //\n        // In special cases, such as return (without a value) and\n        // debugger, all comments will end up as leadingComments and\n        // will otherwise be eliminated. This step runs when the\n        // commentStack is empty and there are comments left\n        // in leadingComments.\n        //\n        // This loop figures out the stopping point between the actual\n        // leading and trailing comments by finding the location of the\n        // first comment that comes after the given node.\n        for (i = 0; i < this.state.leadingComments.length; i++) {\n          if (this.state.leadingComments[i].end > node.start) {\n            break;\n          }\n        }\n\n        // Split the array based on the location of the first comment\n        // that comes after the node. Keep in mind that this could\n        // result in an empty array, and if so, the array must be\n        // deleted.\n        const leadingComments = this.state.leadingComments.slice(0, i);\n\n        if (leadingComments.length) {\n          node.leadingComments = leadingComments;\n        }\n\n        // Similarly, trailing comments are attached later. The variable\n        // must be reset to null if there are no trailing comments.\n        trailingComments = this.state.leadingComments.slice(i);\n        if (trailingComments.length === 0) {\n          trailingComments = null;\n        }\n      }\n    }\n\n    this.state.commentPreviousNode = node;\n\n    if (trailingComments) {\n      if (\n        trailingComments.length &&\n        trailingComments[0].start >= node.start &&\n        last(trailingComments).end <= node.end\n      ) {\n        node.innerComments = trailingComments;\n      } else {\n        node.trailingComments = trailingComments;\n      }\n    }\n\n    stack.push(node);\n  }\n}\n","// @flow\n/* eslint sort-keys: \"error\" */\nimport { getLineInfo, type Position } from \"../util/location\";\nimport CommentsParser from \"./comments\";\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\ntype ErrorContext = {\n  pos: number,\n  loc: Position,\n  missingPlugin?: Array<string>,\n  code?: string,\n};\n\n// The Errors key follows https://cs.chromium.org/chromium/src/v8/src/common/message-template.h unless it does not exist\nexport const Errors = Object.freeze({\n  ArgumentsDisallowedInInitializer:\n    \"'arguments' is not allowed in class field initializer\",\n  AsyncFunctionInSingleStatementContext:\n    \"Async functions can only be declared at the top level or inside a block\",\n  AwaitBindingIdentifier:\n    \"Can not use 'await' as identifier inside an async function\",\n  AwaitExpressionFormalParameter:\n    \"await is not allowed in async function parameters\",\n  AwaitNotInAsyncFunction:\n    \"Can not use keyword 'await' outside an async function\",\n  BadGetterArity: \"getter must not have any formal parameters\",\n  BadSetterArity: \"setter must have exactly one formal parameter\",\n  BadSetterRestParameter:\n    \"setter function argument must not be a rest parameter\",\n  ConstructorClassField: \"Classes may not have a field named 'constructor'\",\n  ConstructorClassPrivateField:\n    \"Classes may not have a private field named '#constructor'\",\n  ConstructorIsAccessor: \"Class constructor may not be an accessor\",\n  ConstructorIsAsync: \"Constructor can't be an async function\",\n  ConstructorIsGenerator: \"Constructor can't be a generator\",\n  DeclarationMissingInitializer: \"%0 require an initialization value\",\n  DecoratorBeforeExport:\n    \"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax\",\n  DecoratorConstructor:\n    \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n  DecoratorExportClass:\n    \"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\",\n  DecoratorSemicolon: \"Decorators must not be followed by a semicolon\",\n  DeletePrivateField: \"Deleting a private field is not allowed\",\n  DestructureNamedImport:\n    \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n  DuplicateConstructor: \"Duplicate constructor in the same class\",\n  DuplicateDefaultExport: \"Only one default export allowed per module.\",\n  DuplicateExport:\n    \"`%0` has already been exported. Exported identifiers must be unique.\",\n  DuplicateProto: \"Redefinition of __proto__ property\",\n  DuplicateRegExpFlags: \"Duplicate regular expression flag\",\n  ElementAfterRest: \"Rest element must be last element\",\n  EscapedCharNotAnIdentifier: \"Invalid Unicode escape\",\n  ForInOfLoopInitializer:\n    \"%0 loop variable declaration may not have an initializer\",\n  GeneratorInSingleStatementContext:\n    \"Generators can only be declared at the top level or inside a block\",\n  IllegalBreakContinue: \"Unsyntactic %0\",\n  IllegalLanguageModeDirective:\n    \"Illegal 'use strict' directive in function with non-simple parameter list\",\n  IllegalReturn: \"'return' outside of function\",\n  ImportCallArgumentTrailingComma:\n    \"Trailing comma is disallowed inside import(...) arguments\",\n  ImportCallArity: \"import() requires exactly one argument\",\n  ImportCallArityLtOne: \"Dynamic imports require a parameter: import('a.js')\",\n  ImportCallNotNewExpression: \"Cannot use new with import(...)\",\n  ImportCallSpreadArgument: \"... is not allowed in import()\",\n  ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: \"module\"'`,\n  ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n  InvalidCodePoint: \"Code point out of bounds\",\n  InvalidDigit: \"Expected number in radix %0\",\n  InvalidEscapeSequence: \"Bad character escape sequence\",\n  InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template\",\n  InvalidEscapedReservedWord: \"Escape sequence in keyword %0\",\n  InvalidIdentifier: \"Invalid identifier %0\",\n  InvalidLhs: \"Invalid left-hand side in %0\",\n  InvalidLhsBinding: \"Binding invalid left-hand side in %0\",\n  InvalidNumber: \"Invalid number\",\n  InvalidOrUnexpectedToken: \"Unexpected character '%0'\",\n  InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern\",\n  InvalidPrivateFieldResolution: \"Private name #%0 is not defined\",\n  InvalidPropertyBindingPattern: \"Binding member expression\",\n  InvalidRestAssignmentPattern: \"Invalid rest operator's argument\",\n  LabelRedeclaration: \"Label '%0' is already declared\",\n  LetInLexicalBinding:\n    \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\",\n  MalformedRegExpFlags: \"Invalid regular expression flag\",\n  MissingClassName: \"A class name is required\",\n  MissingEqInAssignment:\n    \"Only '=' operator can be used for specifying default value.\",\n  MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX\",\n  MixingCoalesceWithLogical:\n    \"Nullish coalescing operator(??) requires parens when mixing with logical operators\",\n  ModuleExportUndefined: \"Export '%0' is not defined\",\n  MultipleDefaultsInSwitch: \"Multiple default clauses\",\n  NewlineAfterThrow: \"Illegal newline after throw\",\n  NoCatchOrFinally: \"Missing catch or finally clause\",\n  NumberIdentifier: \"Identifier directly after number\",\n  NumericSeparatorInEscapeSequence:\n    \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences\",\n  ObsoleteAwaitStar:\n    \"await* has been removed from the async functions proposal. Use Promise.all() instead.\",\n  OptionalChainingNoNew:\n    \"constructors in/after an Optional Chain are not allowed\",\n  OptionalChainingNoTemplate:\n    \"Tagged Template Literals are not allowed in optionalChain\",\n  ParamDupe: \"Argument name clash\",\n  PatternHasAccessor: \"Object pattern can't contain getter or setter\",\n  PatternHasMethod: \"Object pattern can't contain methods\",\n  PipelineBodyNoArrow:\n    'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized',\n  PipelineBodySequenceExpression:\n    \"Pipeline body may not be a comma-separated sequence expression\",\n  PipelineHeadSequenceExpression:\n    \"Pipeline head should not be a comma-separated sequence expression\",\n  PipelineTopicUnused:\n    \"Pipeline is in topic style but does not use topic reference\",\n  PrimaryTopicNotAllowed:\n    \"Topic reference was used in a lexical context without topic binding\",\n  PrimaryTopicRequiresSmartPipeline:\n    \"Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.\",\n  PrivateNameRedeclaration: \"Duplicate private name #%0\",\n  RecordExpressionBarIncorrectEndSyntaxType:\n    \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionBarIncorrectStartSyntaxType:\n    \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionHashIncorrectStartSyntaxType:\n    \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  RestTrailingComma: \"Unexpected trailing comma after rest element\",\n  SloppyFunction:\n    \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",\n  StaticPrototype: \"Classes may not have static property named prototype\",\n  StrictDelete: \"Deleting local variable in strict mode\",\n  StrictEvalArguments: \"Assigning to '%0' in strict mode\",\n  StrictEvalArgumentsBinding: \"Binding '%0' in strict mode\",\n  StrictFunction:\n    \"In strict mode code, functions can only be declared at top level or inside a block\",\n  StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode\",\n  StrictWith: \"'with' in strict mode\",\n  SuperNotAllowed:\n    \"super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n  SuperPrivateField: \"Private fields can't be accessed on super\",\n  TrailingDecorator: \"Decorators must be attached to a class element\",\n  TupleExpressionBarIncorrectEndSyntaxType:\n    \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionBarIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionHashIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder\",\n  UnexpectedAwaitAfterPipelineBody:\n    'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal',\n  UnexpectedDigitAfterHash: \"Unexpected digit after hash token\",\n  UnexpectedImportExport:\n    \"'import' and 'export' may only appear at the top level\",\n  UnexpectedKeyword: \"Unexpected keyword '%0'\",\n  UnexpectedLeadingDecorator:\n    \"Leading decorators must be attached to a class declaration\",\n  UnexpectedLexicalDeclaration:\n    \"Lexical declaration cannot appear in a single-statement context\",\n  UnexpectedNewTarget: \"new.target can only be used in functions\",\n  UnexpectedNumericSeparator:\n    \"A numeric separator is only allowed between two digits\",\n  UnexpectedPrivateField:\n    \"Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\\n or a property of member expression (i.e. this.#p).\",\n  UnexpectedReservedWord: \"Unexpected reserved word '%0'\",\n  UnexpectedSuper: \"super is only allowed in object methods and classes\",\n  UnexpectedToken: \"Unexpected token '%'\",\n  UnexpectedTokenUnaryExponentiation:\n    \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n  UnsupportedBind: \"Binding should be performed on object property.\",\n  UnsupportedDecoratorExport:\n    \"A decorated export must export a class declaration\",\n  UnsupportedDefaultExport:\n    \"Only expressions, functions or classes are allowed as the `default` export.\",\n  UnsupportedImport: \"import can only be used in import() or import.meta\",\n  UnsupportedMetaProperty: \"The only valid meta property for %0 is %0.%1\",\n  UnsupportedParameterDecorator:\n    \"Decorators cannot be used to decorate parameters\",\n  UnsupportedPropertyDecorator:\n    \"Decorators cannot be used to decorate object literal properties\",\n  UnsupportedSuper:\n    \"super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])\",\n  UnterminatedComment: \"Unterminated comment\",\n  UnterminatedRegExp: \"Unterminated regular expression\",\n  UnterminatedString: \"Unterminated string constant\",\n  UnterminatedTemplate: \"Unterminated template\",\n  VarRedeclaration: \"Identifier '%0' has already been declared\",\n  YieldBindingIdentifier:\n    \"Can not use 'yield' as identifier inside a generator\",\n  YieldInParameter: \"yield is not allowed in generator parameters\",\n  ZeroDigitNumericSeparator:\n    \"Numeric separator can not be used after leading 0\",\n});\n\nexport default class LocationParser extends CommentsParser {\n  // Forward-declaration: defined in tokenizer/index.js\n  /*::\n  +isLookahead: boolean;\n  */\n\n  getLocationForPosition(pos: number): Position {\n    let loc;\n    if (pos === this.state.start) loc = this.state.startLoc;\n    else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;\n    else if (pos === this.state.end) loc = this.state.endLoc;\n    else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;\n    else loc = getLineInfo(this.input, pos);\n\n    return loc;\n  }\n\n  raise(pos: number, errorTemplate: string, ...params: any): Error | empty {\n    return this.raiseWithData(pos, undefined, errorTemplate, ...params);\n  }\n\n  raiseWithData(\n    pos: number,\n    data?: {\n      missingPlugin?: Array<string>,\n      code?: string,\n    },\n    errorTemplate: string,\n    ...params: any\n  ): Error | empty {\n    const loc = this.getLocationForPosition(pos);\n    const message =\n      errorTemplate.replace(/%(\\d+)/g, (_, i: number) => params[i]) +\n      ` (${loc.line}:${loc.column})`;\n    return this._raise(Object.assign(({ loc, pos }: Object), data), message);\n  }\n\n  _raise(errorContext: ErrorContext, message: string): Error | empty {\n    // $FlowIgnore\n    const err: SyntaxError & ErrorContext = new SyntaxError(message);\n    Object.assign(err, errorContext);\n    if (this.options.errorRecovery) {\n      if (!this.isLookahead) this.state.errors.push(err);\n      return err;\n    } else {\n      throw err;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nfunction isSimpleProperty(node: N.Node): boolean {\n  return (\n    node != null &&\n    node.type === \"Property\" &&\n    node.kind === \"init\" &&\n    node.method === false\n  );\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    estreeParseRegExpLiteral({ pattern, flags }: N.RegExpLiteral): N.Node {\n      let regex = null;\n      try {\n        regex = new RegExp(pattern, flags);\n      } catch (e) {\n        // In environments that don't support these flags value will\n        // be null as the regex can't be represented natively.\n      }\n      const node = this.estreeParseLiteral(regex);\n      node.regex = { pattern, flags };\n\n      return node;\n    }\n\n    estreeParseBigIntLiteral(value: any): N.Node {\n      // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n      // $FlowIgnore\n      const bigInt = typeof BigInt !== \"undefined\" ? BigInt(value) : null;\n      const node = this.estreeParseLiteral(bigInt);\n      node.bigint = String(node.value || value);\n\n      return node;\n    }\n\n    estreeParseLiteral(value: any): N.Node {\n      return this.parseLiteral(value, \"Literal\");\n    }\n\n    directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n      const directiveLiteral = directive.value;\n\n      const stmt = this.startNodeAt(directive.start, directive.loc.start);\n      const expression = this.startNodeAt(\n        directiveLiteral.start,\n        directiveLiteral.loc.start,\n      );\n\n      expression.value = directiveLiteral.value;\n      expression.raw = directiveLiteral.extra.raw;\n\n      stmt.expression = this.finishNodeAt(\n        expression,\n        \"Literal\",\n        directiveLiteral.end,\n        directiveLiteral.loc.end,\n      );\n      stmt.directive = directiveLiteral.extra.raw.slice(1, -1);\n\n      return this.finishNodeAt(\n        stmt,\n        \"ExpressionStatement\",\n        directive.end,\n        directive.loc.end,\n      );\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    initFunction(\n      node: N.BodilessFunctionOrMethodBase,\n      isAsync: ?boolean,\n    ): void {\n      super.initFunction(node, isAsync);\n      node.expression = false;\n    }\n\n    checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n      if (isSimpleProperty(node)) {\n        this.checkDeclaration(((node: any): N.EstreeProperty).value);\n      } else {\n        super.checkDeclaration(node);\n      }\n    }\n\n    checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n      const prop = ((method: any): N.EstreeProperty | N.EstreeMethodDefinition);\n      const paramCount = prop.kind === \"get\" ? 0 : 1;\n      const start = prop.start;\n      if (prop.value.params.length !== paramCount) {\n        if (method.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      } else if (\n        prop.kind === \"set\" &&\n        prop.value.params[0].type === \"RestElement\"\n      ) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n      disallowLetBinding?: boolean,\n    ): void {\n      switch (expr.type) {\n        case \"ObjectPattern\":\n          expr.properties.forEach(prop => {\n            this.checkLVal(\n              prop.type === \"Property\" ? prop.value : prop,\n              bindingType,\n              checkClashes,\n              \"object destructuring pattern\",\n              disallowLetBinding,\n            );\n          });\n          break;\n        default:\n          super.checkLVal(\n            expr,\n            bindingType,\n            checkClashes,\n            contextDescription,\n            disallowLetBinding,\n          );\n      }\n    }\n\n    checkDuplicatedProto(\n      prop: N.ObjectMember | N.SpreadElement,\n      protoRef: { used: boolean },\n      refExpressionErrors: ?ExpressionErrors,\n    ): void {\n      if (\n        prop.type === \"SpreadElement\" ||\n        prop.computed ||\n        prop.method ||\n        // $FlowIgnore\n        prop.shorthand\n      ) {\n        return;\n      }\n\n      const key = prop.key;\n      // It is either an Identifier or a String/NumericLiteral\n      const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n      if (name === \"__proto__\" && prop.kind === \"init\") {\n        // Store the first redefinition's position\n        if (protoRef.used) {\n          if (refExpressionErrors && refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          } else {\n            this.raise(key.start, Errors.DuplicateProto);\n          }\n        }\n\n        protoRef.used = true;\n      }\n    }\n\n    isValidDirective(stmt: N.Statement): boolean {\n      return (\n        stmt.type === \"ExpressionStatement\" &&\n        stmt.expression.type === \"Literal\" &&\n        typeof stmt.expression.value === \"string\" &&\n        (!stmt.expression.extra || !stmt.expression.extra.parenthesized)\n      );\n    }\n\n    stmtToDirective(stmt: N.Statement): N.Directive {\n      const directive = super.stmtToDirective(stmt);\n      const value = stmt.expression.value;\n\n      // Reset value to the actual value as in estree mode we want\n      // the stmt to have the real value and not the raw value\n      directive.value.value = value;\n\n      return directive;\n    }\n\n    parseBlockBody(\n      node: N.BlockStatementLike,\n      allowDirectives: ?boolean,\n      topLevel: boolean,\n      end: TokenType,\n    ): void {\n      super.parseBlockBody(node, allowDirectives, topLevel, end);\n\n      const directiveStatements = node.directives.map(d =>\n        this.directiveToStmt(d),\n      );\n      node.body = directiveStatements.concat(node.body);\n      delete node.directives;\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      );\n      if (method.typeParameters) {\n        // $FlowIgnore\n        method.value.typeParameters = method.typeParameters;\n        delete method.typeParameters;\n      }\n      classBody.body.push(method);\n    }\n\n    parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      switch (this.state.type) {\n        case tt.num:\n        case tt.string:\n          return this.estreeParseLiteral(this.state.value);\n\n        case tt.regexp:\n          return this.estreeParseRegExpLiteral(this.state.value);\n\n        case tt.bigint:\n          return this.estreeParseBigIntLiteral(this.state.value);\n\n        case tt._null:\n          return this.estreeParseLiteral(null);\n\n        case tt._true:\n          return this.estreeParseLiteral(true);\n\n        case tt._false:\n          return this.estreeParseLiteral(false);\n\n        default:\n          return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    parseLiteral<T: N.Literal>(\n      value: any,\n      type: /*T[\"kind\"]*/ string,\n      startPos?: number,\n      startLoc?: Position,\n    ): T {\n      const node = super.parseLiteral(value, type, startPos, startLoc);\n      node.raw = node.extra.raw;\n      delete node.extra;\n\n      return node;\n    }\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpression: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      super.parseFunctionBody(node, allowExpression, isMethod);\n      node.expression = node.body.type !== \"BlockStatement\";\n    }\n\n    parseMethod<T: N.MethodLike>(\n      node: T,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowDirectSuper: boolean,\n      type: string,\n      inClassScope: boolean = false,\n    ): T {\n      let funcNode = this.startNode();\n      funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n      funcNode = super.parseMethod(\n        funcNode,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowDirectSuper,\n        type,\n        inClassScope,\n      );\n      funcNode.type = \"FunctionExpression\";\n      delete funcNode.kind;\n      // $FlowIgnore\n      node.value = funcNode;\n\n      type = type === \"ClassMethod\" ? \"MethodDefinition\" : type;\n      return this.finishNode(node, type);\n    }\n\n    parseObjectMethod(\n      prop: N.ObjectMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      containsEsc: boolean,\n    ): ?N.ObjectMethod {\n      const node: N.EstreeProperty = (super.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ): any);\n\n      if (node) {\n        node.type = \"Property\";\n        if (((node: any): N.ClassMethod).kind === \"method\") node.kind = \"init\";\n        node.shorthand = false;\n      }\n\n      return (node: any);\n    }\n\n    parseObjectProperty(\n      prop: N.ObjectProperty,\n      startPos: ?number,\n      startLoc: ?Position,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n    ): ?N.ObjectProperty {\n      const node: N.EstreeProperty = (super.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      ): any);\n\n      if (node) {\n        node.kind = \"init\";\n        node.type = \"Property\";\n      }\n\n      return (node: any);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (isSimpleProperty(node)) {\n        this.toAssignable(node.value);\n\n        return node;\n      }\n\n      return super.toAssignable(node);\n    }\n\n    toAssignableObjectExpressionProp(prop: N.Node, isLast: boolean) {\n      if (prop.kind === \"get\" || prop.kind === \"set\") {\n        throw this.raise(prop.key.start, Errors.PatternHasAccessor);\n      } else if (prop.method) {\n        throw this.raise(prop.key.start, Errors.PatternHasMethod);\n      } else {\n        super.toAssignableObjectExpressionProp(prop, isLast);\n      }\n    }\n\n    finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n      node: T,\n      optional: boolean,\n    ): N.Expression {\n      super.finishCallExpression(node, optional);\n\n      if (node.callee.type === \"Import\") {\n        ((node: N.Node): N.EstreeImportExpression).type = \"ImportExpression\";\n        ((node: N.Node): N.EstreeImportExpression).source = node.arguments[0];\n        delete node.arguments;\n        delete node.callee;\n      }\n\n      return node;\n    }\n\n    toReferencedListDeep(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): void {\n      // ImportExpressions do not have an arguments array.\n      if (!exprList) {\n        return;\n      }\n\n      super.toReferencedListDeep(exprList, isParenthesizedExpr);\n    }\n\n    parseExport(node: N.Node) {\n      super.parseExport(node);\n\n      switch (node.type) {\n        case \"ExportAllDeclaration\":\n          node.exported = null;\n          break;\n\n        case \"ExportNamedDeclaration\":\n          if (\n            node.specifiers.length === 1 &&\n            node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n          ) {\n            node.type = \"ExportAllDeclaration\";\n            node.exported = node.specifiers[0].exported;\n            delete node.specifiers;\n          }\n\n          break;\n      }\n\n      return node;\n    }\n  };\n","// @flow\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport { types as tt } from \"./types\";\nimport { lineBreak } from \"../util/whitespace\";\n\nexport class TokContext {\n  constructor(\n    token: string,\n    isExpr?: boolean,\n    preserveSpace?: boolean,\n    override?: ?Function, // Takes a Tokenizer as a this-parameter, and returns void.\n  ) {\n    this.token = token;\n    this.isExpr = !!isExpr;\n    this.preserveSpace = !!preserveSpace;\n    this.override = override;\n  }\n\n  token: string;\n  isExpr: boolean;\n  preserveSpace: boolean;\n  override: ?Function;\n}\n\nexport const types: {\n  [key: string]: TokContext,\n} = {\n  braceStatement: new TokContext(\"{\", false),\n  braceExpression: new TokContext(\"{\", true),\n  templateQuasi: new TokContext(\"${\", false),\n  parenStatement: new TokContext(\"(\", false),\n  parenExpression: new TokContext(\"(\", true),\n  template: new TokContext(\"`\", true, true, p => p.readTmplToken()),\n  functionExpression: new TokContext(\"function\", true),\n  functionStatement: new TokContext(\"function\", false),\n};\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.state.context.length === 1) {\n    this.state.exprAllowed = true;\n    return;\n  }\n\n  let out = this.state.context.pop();\n  if (out === types.braceStatement && this.curContext().token === \"function\") {\n    out = this.state.context.pop();\n  }\n\n  this.state.exprAllowed = !out.isExpr;\n};\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false;\n  if (prevType !== tt.dot) {\n    if (\n      (this.state.value === \"of\" && !this.state.exprAllowed) ||\n      (this.state.value === \"yield\" && this.prodParam.hasYield)\n    ) {\n      allowed = true;\n    }\n  }\n  this.state.exprAllowed = allowed;\n\n  if (this.state.isIterator) {\n    this.state.isIterator = false;\n  }\n};\n\ntt.braceL.updateContext = function(prevType) {\n  this.state.context.push(\n    this.braceIsBlock(prevType) ? types.braceStatement : types.braceExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.dollarBraceL.updateContext = function() {\n  this.state.context.push(types.templateQuasi);\n  this.state.exprAllowed = true;\n};\n\ntt.parenL.updateContext = function(prevType) {\n  const statementParens =\n    prevType === tt._if ||\n    prevType === tt._for ||\n    prevType === tt._with ||\n    prevType === tt._while;\n  this.state.context.push(\n    statementParens ? types.parenStatement : types.parenExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n};\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (\n    prevType.beforeExpr &&\n    prevType !== tt.semi &&\n    prevType !== tt._else &&\n    !(\n      prevType === tt._return &&\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) &&\n    !(\n      (prevType === tt.colon || prevType === tt.braceL) &&\n      this.curContext() === types.b_stat\n    )\n  ) {\n    this.state.context.push(types.functionExpression);\n  } else {\n    this.state.context.push(types.functionStatement);\n  }\n\n  this.state.exprAllowed = false;\n};\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.template) {\n    this.state.context.pop();\n  } else {\n    this.state.context.push(types.template);\n  }\n  this.state.exprAllowed = false;\n};\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nconst nonASCIIidentifierStart = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: $ReadOnlyArray<number>): boolean {\n  let pos = 0x10000;\n  for (let i = 0, length = set.length; i < length; i += 2) {\n    pos += set[i];\n    if (pos > code) return false;\n\n    pos += set[i + 1];\n    if (pos >= code) return true;\n  }\n  return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n  if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return (\n      code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n    );\n  }\n  return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n  if (code < charCodes.digit0) return code === charCodes.dollarSign;\n  if (code < charCodes.colon) return true;\n  if (code < charCodes.uppercaseA) return false;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n  }\n  return (\n    isInAstralSet(code, astralIdentifierStartCodes) ||\n    isInAstralSet(code, astralIdentifierCodes)\n  );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n  let isFirst = true;\n  for (const char of Array.from(name)) {\n    const cp = char.codePointAt(0);\n    if (isFirst) {\n      if (!isIdentifierStart(cp)) {\n        return false;\n      }\n      isFirst = false;\n    } else if (!isIdentifierChar(cp)) {\n      return false;\n    }\n  }\n  return true;\n}\n","// @flow\n\nconst reservedWords = {\n  keyword: [\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"continue\",\n    \"debugger\",\n    \"default\",\n    \"do\",\n    \"else\",\n    \"finally\",\n    \"for\",\n    \"function\",\n    \"if\",\n    \"return\",\n    \"switch\",\n    \"throw\",\n    \"try\",\n    \"var\",\n    \"const\",\n    \"while\",\n    \"with\",\n    \"new\",\n    \"this\",\n    \"super\",\n    \"class\",\n    \"extends\",\n    \"export\",\n    \"import\",\n    \"null\",\n    \"true\",\n    \"false\",\n    \"in\",\n    \"instanceof\",\n    \"typeof\",\n    \"void\",\n    \"delete\",\n  ],\n  strict: [\n    \"implements\",\n    \"interface\",\n    \"let\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"static\",\n    \"yield\",\n  ],\n  strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n  return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n  return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n  word: string,\n  inModule: boolean,\n): boolean {\n  return (\n    isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n  );\n}\n\nexport function isKeyword(word: string): boolean {\n  return keywords.has(word);\n}\n","/* eslint max-len: 0 */\n\n// @flow\n\nimport * as charCodes from \"charcodes\";\n\nexport {\n  isIdentifierStart,\n  isIdentifierChar,\n  isReservedWord,\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n  isStrictReservedWord,\n  isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(current: number, next: number): boolean {\n  return current === charCodes.atSign && next === charCodes.atSign;\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type Parser from \"../parser\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport * as N from \"../types\";\nimport type { Options } from \"../options\";\nimport type { Pos, Position } from \"../util/location\";\nimport type State from \"../tokenizer/state\";\nimport { types as tc } from \"../tokenizer/context\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../util/identifier\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_ARROW,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n} from \"../util/scopeflags\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport { Errors } from \"../parser/location\";\n\nconst reservedTypes = new Set([\n  \"_\",\n  \"any\",\n  \"bool\",\n  \"boolean\",\n  \"empty\",\n  \"extends\",\n  \"false\",\n  \"interface\",\n  \"mixed\",\n  \"null\",\n  \"number\",\n  \"static\",\n  \"string\",\n  \"true\",\n  \"typeof\",\n  \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = Object.freeze({\n  AmbiguousConditionalArrow:\n    \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n  AmbiguousDeclareModuleKind:\n    \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module\",\n  AssignReservedType: \"Cannot overwrite reserved type %0\",\n  DeclareClassElement:\n    \"The `declare` modifier can only appear on class fields.\",\n  DeclareClassFieldInitializer:\n    \"Initializers are not allowed in fields with the `declare` modifier.\",\n  DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement\",\n  EnumBooleanMemberNotInitialized:\n    \"Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.\",\n  EnumDuplicateMemberName:\n    \"Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.\",\n  EnumInconsistentMemberValues:\n    \"Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\",\n  EnumInvalidExplicitType:\n    \"Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidExplicitTypeUnknownSupplied:\n    \"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidMemberInitializerPrimaryType:\n    \"Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.\",\n  EnumInvalidMemberInitializerSymbolType:\n    \"Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.\",\n  EnumInvalidMemberInitializerUnknownType:\n    \"The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.\",\n  EnumInvalidMemberName:\n    \"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.\",\n  EnumNumberMemberNotInitialized:\n    \"Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.\",\n  EnumStringMemberInconsistentlyInitailized:\n    \"String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.\",\n  ImportTypeShorthandOnlyInPureImport:\n    \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\",\n  InexactInsideExact:\n    \"Explicit inexact syntax cannot appear inside an explicit exact object type\",\n  InexactInsideNonObject:\n    \"Explicit inexact syntax cannot appear in class or interface definitions\",\n  InexactVariance: \"Explicit inexact syntax cannot have variance\",\n  InvalidNonTypeImportInDeclareModule:\n    \"Imports within a `declare module` body must always be `import type` or `import typeof`\",\n  MissingTypeParamDefault:\n    \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n  NestedDeclareModule:\n    \"`declare module` cannot be used inside another `declare module`\",\n  NestedFlowComment: \"Cannot have a flow comment inside another flow comment\",\n  OptionalBindingPattern:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  SpreadVariance: \"Spread properties cannot have variance\",\n  TypeBeforeInitializer:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  TypeCastInPattern:\n    \"The type cast expression is expected to be wrapped with parenthesis\",\n  UnexpectedExplicitInexactInObject:\n    \"Explicit inexact syntax must appear at the end of an inexact object\",\n  UnexpectedReservedType: \"Unexpected reserved type %0\",\n  UnexpectedReservedUnderscore:\n    \"`_` is only allowed as a type argument to call or new\",\n  UnexpectedSpaceBetweenModuloChecks:\n    \"Spaces between `%` and `checks` are not allowed here.\",\n  UnexpectedSpreadType:\n    \"Spread operator cannot appear in class or interface definitions\",\n  UnexpectedSubtractionOperand:\n    'Unexpected token, expected \"number\" or \"bigint\"',\n  UnexpectedTokenAfterTypeParameter:\n    \"Expected an arrow function after this type parameter declaration\",\n  UnsupportedDeclareExportKind:\n    \"`declare export %0` is not supported. Use `%1` instead\",\n  UnsupportedStatementInDeclareModule:\n    \"Only declares and type imports are allowed inside declare module\",\n  UnterminatedFlowComment: \"Unterminated flow-comment\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n  return (\n    bodyElement.type === \"DeclareExportAllDeclaration\" ||\n    (bodyElement.type === \"DeclareExportDeclaration\" &&\n      (!bodyElement.declaration ||\n        (bodyElement.declaration.type !== \"TypeAlias\" &&\n          bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n  );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n  return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nfunction isMaybeDefaultImport(state: State): boolean {\n  return (\n    (state.type === tt.name || !!state.type.keyword) && state.value !== \"from\"\n  );\n}\n\nconst exportSuggestions = {\n  const: \"declare export var\",\n  let: \"declare export var\",\n  type: \"export type\",\n  interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition<T>(\n  list: T[],\n  test: (T, number, T[]) => ?boolean,\n): [T[], T[]] {\n  const list1 = [];\n  const list2 = [];\n  for (let i = 0; i < list.length; i++) {\n    (test(list[i], i, list) ? list1 : list2).push(list[i]);\n  }\n  return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\ntype EnumContext = {|\n  enumName: string,\n  explicitType: EnumExplicitType,\n  memberName: string,\n|};\ntype EnumMemberInit =\n  | {| type: \"number\", pos: number, value: N.Node |}\n  | {| type: \"string\", pos: number, value: N.Node |}\n  | {| type: \"boolean\", pos: number, value: N.Node |}\n  | {| type: \"invalid\", pos: number |}\n  | {| type: \"none\", pos: number |};\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // The value of the @flow/@noflow pragma. Initially undefined, transitions\n    // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n    // past the initial comment.\n    flowPragma: void | null | \"flow\" | \"noflow\";\n\n    constructor(options: ?Options, input: string) {\n      super(options, input);\n      this.flowPragma = undefined;\n    }\n\n    shouldParseTypes(): boolean {\n      return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n    }\n\n    shouldParseEnums(): boolean {\n      return !!this.getPluginOption(\"flow\", \"enums\");\n    }\n\n    finishToken(type: TokenType, val: any): void {\n      if (\n        type !== tt.string &&\n        type !== tt.semi &&\n        type !== tt.interpreterDirective\n      ) {\n        if (this.flowPragma === undefined) {\n          this.flowPragma = null;\n        }\n      }\n      return super.finishToken(type, val);\n    }\n\n    addComment(comment: N.Comment): void {\n      if (this.flowPragma === undefined) {\n        // Try to parse a flow pragma.\n        const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n        if (!matches) {\n          // do nothing\n        } else if (matches[1] === \"flow\") {\n          this.flowPragma = \"flow\";\n        } else if (matches[1] === \"noflow\") {\n          this.flowPragma = \"noflow\";\n        } else {\n          throw new Error(\"Unexpected flow pragma\");\n        }\n      }\n      return super.addComment(comment);\n    }\n\n    flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tok || tt.colon);\n\n      const type = this.flowParseType();\n      this.state.inType = oldInType;\n      return type;\n    }\n\n    flowParsePredicate(): N.FlowType {\n      const node = this.startNode();\n      const moduloLoc = this.state.startLoc;\n      const moduloPos = this.state.start;\n      this.expect(tt.modulo);\n      const checksLoc = this.state.startLoc;\n      this.expectContextual(\"checks\");\n      // Force '%' and 'checks' to be adjacent\n      if (\n        moduloLoc.line !== checksLoc.line ||\n        moduloLoc.column !== checksLoc.column - 1\n      ) {\n        this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks);\n      }\n      if (this.eat(tt.parenL)) {\n        node.value = this.parseExpression();\n        this.expect(tt.parenR);\n        return this.finishNode(node, \"DeclaredPredicate\");\n      } else {\n        return this.finishNode(node, \"InferredPredicate\");\n      }\n    }\n\n    flowParseTypeAndPredicateInitialiser(): [?N.FlowType, ?N.FlowPredicate] {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tt.colon);\n      let type = null;\n      let predicate = null;\n      if (this.match(tt.modulo)) {\n        this.state.inType = oldInType;\n        predicate = this.flowParsePredicate();\n      } else {\n        type = this.flowParseType();\n        this.state.inType = oldInType;\n        if (this.match(tt.modulo)) {\n          predicate = this.flowParsePredicate();\n        }\n      }\n      return [type, predicate];\n    }\n\n    flowParseDeclareClass(node: N.FlowDeclareClass): N.FlowDeclareClass {\n      this.next();\n      this.flowParseInterfaceish(node, /*isClass*/ true);\n      return this.finishNode(node, \"DeclareClass\");\n    }\n\n    flowParseDeclareFunction(\n      node: N.FlowDeclareFunction,\n    ): N.FlowDeclareFunction {\n      this.next();\n\n      const id = (node.id = this.parseIdentifier());\n\n      const typeNode = this.startNode();\n      const typeContainer = this.startNode();\n\n      if (this.isRelational(\"<\")) {\n        typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        typeNode.typeParameters = null;\n      }\n\n      this.expect(tt.parenL);\n      const tmp = this.flowParseFunctionTypeParams();\n      typeNode.params = tmp.params;\n      typeNode.rest = tmp.rest;\n      this.expect(tt.parenR);\n\n      [\n        // $FlowFixMe (destructuring not supported yet)\n        typeNode.returnType,\n        // $FlowFixMe (destructuring not supported yet)\n        node.predicate,\n      ] = this.flowParseTypeAndPredicateInitialiser();\n\n      typeContainer.typeAnnotation = this.finishNode(\n        typeNode,\n        \"FunctionTypeAnnotation\",\n      );\n\n      id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n      this.resetEndLocation(id);\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareFunction\");\n    }\n\n    flowParseDeclare(\n      node: N.FlowDeclare,\n      insideModule?: boolean,\n    ): N.FlowDeclare {\n      if (this.match(tt._class)) {\n        return this.flowParseDeclareClass(node);\n      } else if (this.match(tt._function)) {\n        return this.flowParseDeclareFunction(node);\n      } else if (this.match(tt._var)) {\n        return this.flowParseDeclareVariable(node);\n      } else if (this.eatContextual(\"module\")) {\n        if (this.match(tt.dot)) {\n          return this.flowParseDeclareModuleExports(node);\n        } else {\n          if (insideModule) {\n            this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule);\n          }\n          return this.flowParseDeclareModule(node);\n        }\n      } else if (this.isContextual(\"type\")) {\n        return this.flowParseDeclareTypeAlias(node);\n      } else if (this.isContextual(\"opaque\")) {\n        return this.flowParseDeclareOpaqueType(node);\n      } else if (this.isContextual(\"interface\")) {\n        return this.flowParseDeclareInterface(node);\n      } else if (this.match(tt._export)) {\n        return this.flowParseDeclareExportDeclaration(node, insideModule);\n      } else {\n        throw this.unexpected();\n      }\n    }\n\n    flowParseDeclareVariable(\n      node: N.FlowDeclareVariable,\n    ): N.FlowDeclareVariable {\n      this.next();\n      node.id = this.flowParseTypeAnnotatableIdentifier(\n        /*allowPrimitiveOverride*/ true,\n      );\n      this.scope.declareName(node.id.name, BIND_VAR, node.id.start);\n      this.semicolon();\n      return this.finishNode(node, \"DeclareVariable\");\n    }\n\n    flowParseDeclareModule(node: N.FlowDeclareModule): N.FlowDeclareModule {\n      this.scope.enter(SCOPE_OTHER);\n\n      if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        node.id = this.parseIdentifier();\n      }\n\n      const bodyNode = (node.body = this.startNode());\n      const body = (bodyNode.body = []);\n      this.expect(tt.braceL);\n      while (!this.match(tt.braceR)) {\n        let bodyNode = this.startNode();\n\n        if (this.match(tt._import)) {\n          this.next();\n          if (!this.isContextual(\"type\") && !this.match(tt._typeof)) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InvalidNonTypeImportInDeclareModule,\n            );\n          }\n          this.parseImport(bodyNode);\n        } else {\n          this.expectContextual(\n            \"declare\",\n            FlowErrors.UnsupportedStatementInDeclareModule,\n          );\n\n          bodyNode = this.flowParseDeclare(bodyNode, true);\n        }\n\n        body.push(bodyNode);\n      }\n\n      this.scope.exit();\n\n      this.expect(tt.braceR);\n\n      this.finishNode(bodyNode, \"BlockStatement\");\n\n      let kind = null;\n      let hasModuleExport = false;\n      body.forEach(bodyElement => {\n        if (isEsModuleType(bodyElement)) {\n          if (kind === \"CommonJS\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"ES\";\n        } else if (bodyElement.type === \"DeclareModuleExports\") {\n          if (hasModuleExport) {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.DuplicateDeclareModuleExports,\n            );\n          }\n          if (kind === \"ES\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"CommonJS\";\n          hasModuleExport = true;\n        }\n      });\n\n      node.kind = kind || \"CommonJS\";\n      return this.finishNode(node, \"DeclareModule\");\n    }\n\n    flowParseDeclareExportDeclaration(\n      node: N.FlowDeclareExportDeclaration,\n      insideModule: ?boolean,\n    ): N.FlowDeclareExportDeclaration {\n      this.expect(tt._export);\n\n      if (this.eat(tt._default)) {\n        if (this.match(tt._function) || this.match(tt._class)) {\n          // declare export default class ...\n          // declare export default function ...\n          node.declaration = this.flowParseDeclare(this.startNode());\n        } else {\n          // declare export default [type];\n          node.declaration = this.flowParseType();\n          this.semicolon();\n        }\n        node.default = true;\n\n        return this.finishNode(node, \"DeclareExportDeclaration\");\n      } else {\n        if (\n          this.match(tt._const) ||\n          this.isLet() ||\n          ((this.isContextual(\"type\") || this.isContextual(\"interface\")) &&\n            !insideModule)\n        ) {\n          const label = this.state.value;\n          const suggestion = exportSuggestions[label];\n          throw this.raise(\n            this.state.start,\n            FlowErrors.UnsupportedDeclareExportKind,\n            label,\n            suggestion,\n          );\n        }\n\n        if (\n          this.match(tt._var) || // declare export var ...\n          this.match(tt._function) || // declare export function ...\n          this.match(tt._class) || // declare export class ...\n          this.isContextual(\"opaque\") // declare export opaque ..\n        ) {\n          node.declaration = this.flowParseDeclare(this.startNode());\n          node.default = false;\n\n          return this.finishNode(node, \"DeclareExportDeclaration\");\n        } else if (\n          this.match(tt.star) || // declare export * from ''\n          this.match(tt.braceL) || // declare export {} ...\n          this.isContextual(\"interface\") || // declare export interface ...\n          this.isContextual(\"type\") || // declare export type ...\n          this.isContextual(\"opaque\") // declare export opaque type ...\n        ) {\n          node = this.parseExport(node);\n          if (node.type === \"ExportNamedDeclaration\") {\n            // flow does not support the ExportNamedDeclaration\n            // $FlowIgnore\n            node.type = \"ExportDeclaration\";\n            // $FlowFixMe\n            node.default = false;\n            delete node.exportKind;\n          }\n\n          // $FlowIgnore\n          node.type = \"Declare\" + node.type;\n\n          return node;\n        }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParseDeclareModuleExports(\n      node: N.FlowDeclareModuleExports,\n    ): N.FlowDeclareModuleExports {\n      this.next();\n      this.expectContextual(\"exports\");\n      node.typeAnnotation = this.flowParseTypeAnnotation();\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareModuleExports\");\n    }\n\n    flowParseDeclareTypeAlias(\n      node: N.FlowDeclareTypeAlias,\n    ): N.FlowDeclareTypeAlias {\n      this.next();\n      this.flowParseTypeAlias(node);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareTypeAlias\";\n      return node;\n    }\n\n    flowParseDeclareOpaqueType(\n      node: N.FlowDeclareOpaqueType,\n    ): N.FlowDeclareOpaqueType {\n      this.next();\n      this.flowParseOpaqueType(node, true);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareOpaqueType\";\n      return node;\n    }\n\n    flowParseDeclareInterface(\n      node: N.FlowDeclareInterface,\n    ): N.FlowDeclareInterface {\n      this.next();\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"DeclareInterface\");\n    }\n\n    // Interfaces\n\n    flowParseInterfaceish(\n      node: N.FlowDeclare,\n      isClass?: boolean = false,\n    ): void {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ !isClass,\n        /* declaration */ true,\n      );\n\n      this.scope.declareName(\n        node.id.name,\n        isClass ? BIND_FUNCTION : BIND_LEXICAL,\n        node.id.start,\n      );\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.extends = [];\n      node.implements = [];\n      node.mixins = [];\n\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (!isClass && this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"mixins\")) {\n        this.next();\n        do {\n          node.mixins.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        do {\n          node.implements.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: isClass,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: isClass,\n        allowInexact: false,\n      });\n    }\n\n    flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n      const node = this.startNode();\n\n      node.id = this.flowParseQualifiedTypeIdentifier();\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      } else {\n        node.typeParameters = null;\n      }\n\n      return this.finishNode(node, \"InterfaceExtends\");\n    }\n\n    flowParseInterface(node: N.FlowInterface): N.FlowInterface {\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"InterfaceDeclaration\");\n    }\n\n    checkNotUnderscore(word: string) {\n      if (word === \"_\") {\n        this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore);\n      }\n    }\n\n    checkReservedType(word: string, startLoc: number, declaration?: boolean) {\n      if (!reservedTypes.has(word)) return;\n\n      this.raise(\n        startLoc,\n        declaration\n          ? FlowErrors.AssignReservedType\n          : FlowErrors.UnexpectedReservedType,\n        word,\n      );\n    }\n\n    flowParseRestrictedIdentifier(\n      liberal?: boolean,\n      declaration?: boolean,\n    ): N.Identifier {\n      this.checkReservedType(this.state.value, this.state.start, declaration);\n      return this.parseIdentifier(liberal);\n    }\n\n    // Type aliases\n\n    flowParseTypeAlias(node: N.FlowTypeAlias): N.FlowTypeAlias {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ false,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.right = this.flowParseTypeInitialiser(tt.eq);\n      this.semicolon();\n\n      return this.finishNode(node, \"TypeAlias\");\n    }\n\n    flowParseOpaqueType(\n      node: N.FlowOpaqueType,\n      declare: boolean,\n    ): N.FlowOpaqueType {\n      this.expectContextual(\"type\");\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ true,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      // Parse the supertype\n      node.supertype = null;\n      if (this.match(tt.colon)) {\n        node.supertype = this.flowParseTypeInitialiser(tt.colon);\n      }\n\n      node.impltype = null;\n      if (!declare) {\n        node.impltype = this.flowParseTypeInitialiser(tt.eq);\n      }\n      this.semicolon();\n\n      return this.finishNode(node, \"OpaqueType\");\n    }\n\n    // Type annotations\n\n    flowParseTypeParameter(requireDefault?: boolean = false): N.TypeParameter {\n      const nodeStart = this.state.start;\n\n      const node = this.startNode();\n\n      const variance = this.flowParseVariance();\n\n      const ident = this.flowParseTypeAnnotatableIdentifier();\n      node.name = ident.name;\n      node.variance = variance;\n      node.bound = ident.typeAnnotation;\n\n      if (this.match(tt.eq)) {\n        this.eat(tt.eq);\n        node.default = this.flowParseType();\n      } else {\n        if (requireDefault) {\n          this.raise(nodeStart, FlowErrors.MissingTypeParamDefault);\n        }\n      }\n\n      return this.finishNode(node, \"TypeParameter\");\n    }\n\n    flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n      const oldInType = this.state.inType;\n      const node = this.startNode();\n      node.params = [];\n\n      this.state.inType = true;\n\n      // istanbul ignore else: this condition is already checked at all call sites\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      let defaultRequired = false;\n\n      do {\n        const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n        node.params.push(typeParameter);\n\n        if (typeParameter.default) {\n          defaultRequired = true;\n        }\n\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      } while (!this.isRelational(\">\"));\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterDeclaration\");\n    }\n\n    flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n      this.state.noAnonFunctionType = false;\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseType());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseTypeOrImplicitInstantiation());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseInterfaceType(): N.FlowInterfaceType {\n      const node = this.startNode();\n      this.expectContextual(\"interface\");\n\n      node.extends = [];\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: false,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: false,\n        allowInexact: false,\n      });\n\n      return this.finishNode(node, \"InterfaceTypeAnnotation\");\n    }\n\n    flowParseObjectPropertyKey(): N.Expression {\n      return this.match(tt.num) || this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(true);\n    }\n\n    flowParseObjectTypeIndexer(\n      node: N.FlowObjectTypeIndexer,\n      isStatic: boolean,\n      variance: ?N.FlowVariance,\n    ): N.FlowObjectTypeIndexer {\n      node.static = isStatic;\n\n      // Note: bracketL has already been consumed\n      if (this.lookahead().type === tt.colon) {\n        node.id = this.flowParseObjectPropertyKey();\n        node.key = this.flowParseTypeInitialiser();\n      } else {\n        node.id = null;\n        node.key = this.flowParseType();\n      }\n      this.expect(tt.bracketR);\n      node.value = this.flowParseTypeInitialiser();\n      node.variance = variance;\n\n      return this.finishNode(node, \"ObjectTypeIndexer\");\n    }\n\n    flowParseObjectTypeInternalSlot(\n      node: N.FlowObjectTypeInternalSlot,\n      isStatic: boolean,\n    ): N.FlowObjectTypeInternalSlot {\n      node.static = isStatic;\n      // Note: both bracketL have already been consumed\n      node.id = this.flowParseObjectPropertyKey();\n      this.expect(tt.bracketR);\n      this.expect(tt.bracketR);\n      if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n        node.method = true;\n        node.optional = false;\n        node.value = this.flowParseObjectTypeMethodish(\n          this.startNodeAt(node.start, node.loc.start),\n        );\n      } else {\n        node.method = false;\n        if (this.eat(tt.question)) {\n          node.optional = true;\n        }\n        node.value = this.flowParseTypeInitialiser();\n      }\n      return this.finishNode(node, \"ObjectTypeInternalSlot\");\n    }\n\n    flowParseObjectTypeMethodish(\n      node: N.FlowFunctionTypeAnnotation,\n    ): N.FlowFunctionTypeAnnotation {\n      node.params = [];\n      node.rest = null;\n      node.typeParameters = null;\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      this.expect(tt.parenL);\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        node.params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n\n      if (this.eat(tt.ellipsis)) {\n        node.rest = this.flowParseFunctionTypeParam();\n      }\n      this.expect(tt.parenR);\n      node.returnType = this.flowParseTypeInitialiser();\n\n      return this.finishNode(node, \"FunctionTypeAnnotation\");\n    }\n\n    flowParseObjectTypeCallProperty(\n      node: N.FlowObjectTypeCallProperty,\n      isStatic: boolean,\n    ): N.FlowObjectTypeCallProperty {\n      const valueNode = this.startNode();\n      node.static = isStatic;\n      node.value = this.flowParseObjectTypeMethodish(valueNode);\n      return this.finishNode(node, \"ObjectTypeCallProperty\");\n    }\n\n    flowParseObjectType({\n      allowStatic,\n      allowExact,\n      allowSpread,\n      allowProto,\n      allowInexact,\n    }: {\n      allowStatic: boolean,\n      allowExact: boolean,\n      allowSpread: boolean,\n      allowProto: boolean,\n      allowInexact: boolean,\n    }): N.FlowObjectTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n\n      const nodeStart = this.startNode();\n\n      nodeStart.callProperties = [];\n      nodeStart.properties = [];\n      nodeStart.indexers = [];\n      nodeStart.internalSlots = [];\n\n      let endDelim;\n      let exact;\n      let inexact = false;\n      if (allowExact && this.match(tt.braceBarL)) {\n        this.expect(tt.braceBarL);\n        endDelim = tt.braceBarR;\n        exact = true;\n      } else {\n        this.expect(tt.braceL);\n        endDelim = tt.braceR;\n        exact = false;\n      }\n\n      nodeStart.exact = exact;\n\n      while (!this.match(endDelim)) {\n        let isStatic = false;\n        let protoStart: ?number = null;\n        let inexactStart: ?number = null;\n        const node = this.startNode();\n\n        if (allowProto && this.isContextual(\"proto\")) {\n          const lookahead = this.lookahead();\n\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            protoStart = this.state.start;\n            allowStatic = false;\n          }\n        }\n\n        if (allowStatic && this.isContextual(\"static\")) {\n          const lookahead = this.lookahead();\n\n          // static is a valid identifier name\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            isStatic = true;\n          }\n        }\n\n        const variance = this.flowParseVariance();\n\n        if (this.eat(tt.bracketL)) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (this.eat(tt.bracketL)) {\n            if (variance) {\n              this.unexpected(variance.start);\n            }\n            nodeStart.internalSlots.push(\n              this.flowParseObjectTypeInternalSlot(node, isStatic),\n            );\n          } else {\n            nodeStart.indexers.push(\n              this.flowParseObjectTypeIndexer(node, isStatic, variance),\n            );\n          }\n        } else if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n          nodeStart.callProperties.push(\n            this.flowParseObjectTypeCallProperty(node, isStatic),\n          );\n        } else {\n          let kind = \"init\";\n\n          if (this.isContextual(\"get\") || this.isContextual(\"set\")) {\n            const lookahead = this.lookahead();\n            if (\n              lookahead.type === tt.name ||\n              lookahead.type === tt.string ||\n              lookahead.type === tt.num\n            ) {\n              kind = this.state.value;\n              this.next();\n            }\n          }\n\n          const propOrInexact = this.flowParseObjectTypeProperty(\n            node,\n            isStatic,\n            protoStart,\n            variance,\n            kind,\n            allowSpread,\n            allowInexact ?? !exact,\n          );\n\n          if (propOrInexact === null) {\n            inexact = true;\n            inexactStart = this.state.lastTokStart;\n          } else {\n            nodeStart.properties.push(propOrInexact);\n          }\n        }\n\n        this.flowObjectTypeSemicolon();\n\n        if (\n          inexactStart &&\n          !this.match(tt.braceR) &&\n          !this.match(tt.braceBarR)\n        ) {\n          this.raise(\n            inexactStart,\n            FlowErrors.UnexpectedExplicitInexactInObject,\n          );\n        }\n      }\n\n      this.expect(endDelim);\n\n      /* The inexact flag should only be added on ObjectTypeAnnotations that\n       * are not the body of an interface, declare interface, or declare class.\n       * Since spreads are only allowed in objec types, checking that is\n       * sufficient here.\n       */\n      if (allowSpread) {\n        nodeStart.inexact = inexact;\n      }\n\n      const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n      this.state.inType = oldInType;\n\n      return out;\n    }\n\n    flowParseObjectTypeProperty(\n      node: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n      isStatic: boolean,\n      protoStart: ?number,\n      variance: ?N.FlowVariance,\n      kind: string,\n      allowSpread: boolean,\n      allowInexact: boolean,\n    ): (N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty) | null {\n      if (this.eat(tt.ellipsis)) {\n        const isInexactToken =\n          this.match(tt.comma) ||\n          this.match(tt.semi) ||\n          this.match(tt.braceR) ||\n          this.match(tt.braceBarR);\n\n        if (isInexactToken) {\n          if (!allowSpread) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InexactInsideNonObject,\n            );\n          } else if (!allowInexact) {\n            this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact);\n          }\n          if (variance) {\n            this.raise(variance.start, FlowErrors.InexactVariance);\n          }\n\n          return null;\n        }\n\n        if (!allowSpread) {\n          this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType);\n        }\n        if (protoStart != null) {\n          this.unexpected(protoStart);\n        }\n        if (variance) {\n          this.raise(variance.start, FlowErrors.SpreadVariance);\n        }\n\n        node.argument = this.flowParseType();\n        return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n      } else {\n        node.key = this.flowParseObjectPropertyKey();\n        node.static = isStatic;\n        node.proto = protoStart != null;\n        node.kind = kind;\n\n        let optional = false;\n        if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n          // This is a method property\n          node.method = true;\n\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n\n          node.value = this.flowParseObjectTypeMethodish(\n            this.startNodeAt(node.start, node.loc.start),\n          );\n          if (kind === \"get\" || kind === \"set\") {\n            this.flowCheckGetterSetterParams(node);\n          }\n        } else {\n          if (kind !== \"init\") this.unexpected();\n\n          node.method = false;\n\n          if (this.eat(tt.question)) {\n            optional = true;\n          }\n          node.value = this.flowParseTypeInitialiser();\n          node.variance = variance;\n        }\n\n        node.optional = optional;\n\n        return this.finishNode(node, \"ObjectTypeProperty\");\n      }\n    }\n\n    // This is similar to checkGetterSetterParams, but as\n    // @babel/parser uses non estree properties we cannot reuse it here\n    flowCheckGetterSetterParams(\n      property: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n    ): void {\n      const paramCount = property.kind === \"get\" ? 0 : 1;\n      const start = property.start;\n      const length =\n        property.value.params.length + (property.value.rest ? 1 : 0);\n      if (length !== paramCount) {\n        if (property.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      }\n\n      if (property.kind === \"set\" && property.value.rest) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    flowObjectTypeSemicolon(): void {\n      if (\n        !this.eat(tt.semi) &&\n        !this.eat(tt.comma) &&\n        !this.match(tt.braceR) &&\n        !this.match(tt.braceBarR)\n      ) {\n        this.unexpected();\n      }\n    }\n\n    flowParseQualifiedTypeIdentifier(\n      startPos?: number,\n      startLoc?: Position,\n      id?: N.Identifier,\n    ): N.FlowQualifiedTypeIdentifier {\n      startPos = startPos || this.state.start;\n      startLoc = startLoc || this.state.startLoc;\n      let node = id || this.flowParseRestrictedIdentifier(true);\n\n      while (this.eat(tt.dot)) {\n        const node2 = this.startNodeAt(startPos, startLoc);\n        node2.qualification = node;\n        node2.id = this.flowParseRestrictedIdentifier(true);\n        node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n      }\n\n      return node;\n    }\n\n    flowParseGenericType(\n      startPos: number,\n      startLoc: Position,\n      id: N.Identifier,\n    ): N.FlowGenericTypeAnnotation {\n      const node = this.startNodeAt(startPos, startLoc);\n\n      node.typeParameters = null;\n      node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      }\n\n      return this.finishNode(node, \"GenericTypeAnnotation\");\n    }\n\n    flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n      const node = this.startNode();\n      this.expect(tt._typeof);\n      node.argument = this.flowParsePrimaryType();\n      return this.finishNode(node, \"TypeofTypeAnnotation\");\n    }\n\n    flowParseTupleType(): N.FlowTupleTypeAnnotation {\n      const node = this.startNode();\n      node.types = [];\n      this.expect(tt.bracketL);\n      // We allow trailing commas\n      while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n        node.types.push(this.flowParseType());\n        if (this.match(tt.bracketR)) break;\n        this.expect(tt.comma);\n      }\n      this.expect(tt.bracketR);\n      return this.finishNode(node, \"TupleTypeAnnotation\");\n    }\n\n    flowParseFunctionTypeParam(): N.FlowFunctionTypeParam {\n      let name = null;\n      let optional = false;\n      let typeAnnotation = null;\n      const node = this.startNode();\n      const lh = this.lookahead();\n      if (lh.type === tt.colon || lh.type === tt.question) {\n        name = this.parseIdentifier();\n        if (this.eat(tt.question)) {\n          optional = true;\n        }\n        typeAnnotation = this.flowParseTypeInitialiser();\n      } else {\n        typeAnnotation = this.flowParseType();\n      }\n      node.name = name;\n      node.optional = optional;\n      node.typeAnnotation = typeAnnotation;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    reinterpretTypeAsFunctionTypeParam(\n      type: N.FlowType,\n    ): N.FlowFunctionTypeParam {\n      const node = this.startNodeAt(type.start, type.loc.start);\n      node.name = null;\n      node.optional = false;\n      node.typeAnnotation = type;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    flowParseFunctionTypeParams(\n      params: N.FlowFunctionTypeParam[] = [],\n    ): { params: N.FlowFunctionTypeParam[], rest: ?N.FlowFunctionTypeParam } {\n      let rest: ?N.FlowFunctionTypeParam = null;\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n      if (this.eat(tt.ellipsis)) {\n        rest = this.flowParseFunctionTypeParam();\n      }\n      return { params, rest };\n    }\n\n    flowIdentToTypeAnnotation(\n      startPos: number,\n      startLoc: Position,\n      node: N.FlowTypeAnnotation,\n      id: N.Identifier,\n    ): N.FlowTypeAnnotation {\n      switch (id.name) {\n        case \"any\":\n          return this.finishNode(node, \"AnyTypeAnnotation\");\n\n        case \"bool\":\n        case \"boolean\":\n          return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n        case \"mixed\":\n          return this.finishNode(node, \"MixedTypeAnnotation\");\n\n        case \"empty\":\n          return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n        case \"number\":\n          return this.finishNode(node, \"NumberTypeAnnotation\");\n\n        case \"string\":\n          return this.finishNode(node, \"StringTypeAnnotation\");\n\n        case \"symbol\":\n          return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n        default:\n          this.checkNotUnderscore(id.name);\n          return this.flowParseGenericType(startPos, startLoc, id);\n      }\n    }\n\n    // The parsing of types roughly parallels the parsing of expressions, and\n    // primary types are kind of like primary expressions...they're the\n    // primitives with which other types are constructed.\n    flowParsePrimaryType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const node = this.startNode();\n      let tmp;\n      let type;\n      let isGroupedType = false;\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n      switch (this.state.type) {\n        case tt.name:\n          if (this.isContextual(\"interface\")) {\n            return this.flowParseInterfaceType();\n          }\n\n          return this.flowIdentToTypeAnnotation(\n            startPos,\n            startLoc,\n            node,\n            this.parseIdentifier(),\n          );\n\n        case tt.braceL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: false,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: true,\n          });\n\n        case tt.braceBarL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: true,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: false,\n          });\n\n        case tt.bracketL:\n          this.state.noAnonFunctionType = false;\n          type = this.flowParseTupleType();\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n          return type;\n\n        case tt.relational:\n          if (this.state.value === \"<\") {\n            node.typeParameters = this.flowParseTypeParameterDeclaration();\n            this.expect(tt.parenL);\n            tmp = this.flowParseFunctionTypeParams();\n            node.params = tmp.params;\n            node.rest = tmp.rest;\n            this.expect(tt.parenR);\n\n            this.expect(tt.arrow);\n\n            node.returnType = this.flowParseType();\n\n            return this.finishNode(node, \"FunctionTypeAnnotation\");\n          }\n          break;\n\n        case tt.parenL:\n          this.next();\n\n          // Check to see if this is actually a grouped type\n          if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n            if (this.match(tt.name)) {\n              const token = this.lookahead().type;\n              isGroupedType = token !== tt.question && token !== tt.colon;\n            } else {\n              isGroupedType = true;\n            }\n          }\n\n          if (isGroupedType) {\n            this.state.noAnonFunctionType = false;\n            type = this.flowParseType();\n            this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n            // A `,` or a `) =>` means this is an anonymous function type\n            if (\n              this.state.noAnonFunctionType ||\n              !(\n                this.match(tt.comma) ||\n                (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n              )\n            ) {\n              this.expect(tt.parenR);\n              return type;\n            } else {\n              // Eat a comma if there is one\n              this.eat(tt.comma);\n            }\n          }\n\n          if (type) {\n            tmp = this.flowParseFunctionTypeParams([\n              this.reinterpretTypeAsFunctionTypeParam(type),\n            ]);\n          } else {\n            tmp = this.flowParseFunctionTypeParams();\n          }\n\n          node.params = tmp.params;\n          node.rest = tmp.rest;\n\n          this.expect(tt.parenR);\n\n          this.expect(tt.arrow);\n\n          node.returnType = this.flowParseType();\n\n          node.typeParameters = null;\n\n          return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n        case tt.string:\n          return this.parseLiteral(\n            this.state.value,\n            \"StringLiteralTypeAnnotation\",\n          );\n\n        case tt._true:\n        case tt._false:\n          node.value = this.match(tt._true);\n          this.next();\n          return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            this.next();\n            if (this.match(tt.num)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"NumberLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            if (this.match(tt.bigint)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"BigIntLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            throw this.raise(\n              this.state.start,\n              FlowErrors.UnexpectedSubtractionOperand,\n            );\n          }\n\n          throw this.unexpected();\n        case tt.num:\n          return this.parseLiteral(\n            this.state.value,\n            \"NumberLiteralTypeAnnotation\",\n          );\n\n        case tt.bigint:\n          return this.parseLiteral(\n            this.state.value,\n            \"BigIntLiteralTypeAnnotation\",\n          );\n\n        case tt._void:\n          this.next();\n          return this.finishNode(node, \"VoidTypeAnnotation\");\n\n        case tt._null:\n          this.next();\n          return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n        case tt._this:\n          this.next();\n          return this.finishNode(node, \"ThisTypeAnnotation\");\n\n        case tt.star:\n          this.next();\n          return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n        default:\n          if (this.state.type.keyword === \"typeof\") {\n            return this.flowParseTypeofType();\n          } else if (this.state.type.keyword) {\n            const label = this.state.type.label;\n            this.next();\n            return super.createIdentifier(node, label);\n          }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParsePostfixType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start,\n        startLoc = this.state.startLoc;\n      let type = this.flowParsePrimaryType();\n      while (this.match(tt.bracketL) && !this.canInsertSemicolon()) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.elementType = type;\n        this.expect(tt.bracketL);\n        this.expect(tt.bracketR);\n        type = this.finishNode(node, \"ArrayTypeAnnotation\");\n      }\n      return type;\n    }\n\n    flowParsePrefixType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      if (this.eat(tt.question)) {\n        node.typeAnnotation = this.flowParsePrefixType();\n        return this.finishNode(node, \"NullableTypeAnnotation\");\n      } else {\n        return this.flowParsePostfixType();\n      }\n    }\n\n    flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n      const param = this.flowParsePrefixType();\n      if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n        // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n        const node = this.startNodeAt(param.start, param.loc.start);\n        node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n        node.rest = null;\n        node.returnType = this.flowParseType();\n        node.typeParameters = null;\n        return this.finishNode(node, \"FunctionTypeAnnotation\");\n      }\n      return param;\n    }\n\n    flowParseIntersectionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseAND);\n      const type = this.flowParseAnonFunctionWithoutParens();\n      node.types = [type];\n      while (this.eat(tt.bitwiseAND)) {\n        node.types.push(this.flowParseAnonFunctionWithoutParens());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"IntersectionTypeAnnotation\");\n    }\n\n    flowParseUnionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseOR);\n      const type = this.flowParseIntersectionType();\n      node.types = [type];\n      while (this.eat(tt.bitwiseOR)) {\n        node.types.push(this.flowParseIntersectionType());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"UnionTypeAnnotation\");\n    }\n\n    flowParseType(): N.FlowTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      const type = this.flowParseUnionType();\n      this.state.inType = oldInType;\n      // Ensure that a brace after a function generic type annotation is a\n      // statement, except in arrow functions (noAnonFunctionType)\n      this.state.exprAllowed =\n        this.state.exprAllowed || this.state.noAnonFunctionType;\n      return type;\n    }\n\n    flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n      if (this.state.type === tt.name && this.state.value === \"_\") {\n        const startPos = this.state.start;\n        const startLoc = this.state.startLoc;\n        const node = this.parseIdentifier();\n        return this.flowParseGenericType(startPos, startLoc, node);\n      } else {\n        return this.flowParseType();\n      }\n    }\n\n    flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      node.typeAnnotation = this.flowParseTypeInitialiser();\n      return this.finishNode(node, \"TypeAnnotation\");\n    }\n\n    flowParseTypeAnnotatableIdentifier(\n      allowPrimitiveOverride?: boolean,\n    ): N.Identifier {\n      const ident = allowPrimitiveOverride\n        ? this.parseIdentifier()\n        : this.flowParseRestrictedIdentifier();\n      if (this.match(tt.colon)) {\n        ident.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(ident);\n      }\n      return ident;\n    }\n\n    typeCastToParameter(node: N.Node): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    flowParseVariance(): ?N.FlowVariance {\n      let variance = null;\n      if (this.match(tt.plusMin)) {\n        variance = this.startNode();\n        if (this.state.value === \"+\") {\n          variance.kind = \"plus\";\n        } else {\n          variance.kind = \"minus\";\n        }\n        this.next();\n        this.finishNode(variance, \"Variance\");\n      }\n      return variance;\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpressionBody: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      if (allowExpressionBody) {\n        return this.forwardNoArrowParamsConversionAt(node, () =>\n          super.parseFunctionBody(node, true, isMethod),\n        );\n      }\n\n      return super.parseFunctionBody(node, false, isMethod);\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        const typeNode = this.startNode();\n\n        [\n          // $FlowFixMe (destructuring not supported yet)\n          typeNode.typeAnnotation,\n          // $FlowFixMe (destructuring not supported yet)\n          node.predicate,\n        ] = this.flowParseTypeAndPredicateInitialiser();\n\n        node.returnType = typeNode.typeAnnotation\n          ? this.finishNode(typeNode, \"TypeAnnotation\")\n          : null;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    // interfaces and enums\n    parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n      // strict mode handling of `interface` since it's a reserved word\n      if (\n        this.state.strict &&\n        this.match(tt.name) &&\n        this.state.value === \"interface\"\n      ) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseInterface(node);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      } else {\n        const stmt = super.parseStatement(context, topLevel);\n        // We will parse a flow pragma in any comment before the first statement.\n        if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n          this.flowPragma = null;\n        }\n        return stmt;\n      }\n    }\n\n    // declares, interfaces and type aliases\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.ExpressionStatement {\n      if (expr.type === \"Identifier\") {\n        if (expr.name === \"declare\") {\n          if (\n            this.match(tt._class) ||\n            this.match(tt.name) ||\n            this.match(tt._function) ||\n            this.match(tt._var) ||\n            this.match(tt._export)\n          ) {\n            return this.flowParseDeclare(node);\n          }\n        } else if (this.match(tt.name)) {\n          if (expr.name === \"interface\") {\n            return this.flowParseInterface(node);\n          } else if (expr.name === \"type\") {\n            return this.flowParseTypeAlias(node);\n          } else if (expr.name === \"opaque\") {\n            return this.flowParseOpaqueType(node, false);\n          }\n        }\n      }\n\n      return super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    shouldParseExportDeclaration(): boolean {\n      return (\n        this.isContextual(\"type\") ||\n        this.isContextual(\"interface\") ||\n        this.isContextual(\"opaque\") ||\n        (this.shouldParseEnums() && this.isContextual(\"enum\")) ||\n        super.shouldParseExportDeclaration()\n      );\n    }\n\n    isExportDefaultSpecifier(): boolean {\n      if (\n        this.match(tt.name) &&\n        (this.state.value === \"type\" ||\n          this.state.value === \"interface\" ||\n          this.state.value === \"opaque\" ||\n          (this.shouldParseEnums() && this.state.value === \"enum\"))\n      ) {\n        return false;\n      }\n\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      }\n      return super.parseExportDefaultExpression();\n    }\n\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      if (!this.match(tt.question)) return expr;\n\n      // only use the expensive \"tryParse\" method if there is a question mark\n      // and if we come from inside parens\n      if (refNeedsArrowPos) {\n        const result = this.tryParse(() =>\n          super.parseConditional(expr, noIn, startPos, startLoc),\n        );\n\n        if (!result.node) {\n          // $FlowIgnore\n          refNeedsArrowPos.start = result.error.pos || this.state.start;\n          return expr;\n        }\n\n        if (result.error) this.state = result.failState;\n        return result.node;\n      }\n\n      this.expect(tt.question);\n      const state = this.state.clone();\n      const originalNoArrowAt = this.state.noArrowAt;\n      const node = this.startNodeAt(startPos, startLoc);\n      let { consequent, failed } = this.tryParseConditionalConsequent();\n      let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n      if (failed || invalid.length > 0) {\n        const noArrowAt = [...originalNoArrowAt];\n\n        if (invalid.length > 0) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt;\n\n          for (let i = 0; i < invalid.length; i++) {\n            noArrowAt.push(invalid[i].start);\n          }\n\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n          [valid, invalid] = this.getArrowLikeExpressions(consequent);\n        }\n\n        if (failed && valid.length > 1) {\n          // if there are two or more possible correct ways of parsing, throw an\n          // error.\n          // e.g.   Source: a ? (b): c => (d): e => f\n          //      Result 1: a ? b : (c => ((d): e => f))\n          //      Result 2: a ? ((b): c => d) : (e => f)\n          this.raise(state.start, FlowErrors.AmbiguousConditionalArrow);\n        }\n\n        if (failed && valid.length === 1) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt.concat(valid[0].start);\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n        }\n      }\n\n      this.getArrowLikeExpressions(consequent, true);\n\n      this.state.noArrowAt = originalNoArrowAt;\n      this.expect(tt.colon);\n\n      node.test = expr;\n      node.consequent = consequent;\n      node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n        this.parseMaybeAssign(noIn, undefined, undefined, undefined),\n      );\n\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n\n    tryParseConditionalConsequent(): {\n      consequent: N.Expression,\n      failed: boolean,\n    } {\n      this.state.noArrowParamsConversionAt.push(this.state.start);\n\n      const consequent = this.parseMaybeAssign();\n      const failed = !this.match(tt.colon);\n\n      this.state.noArrowParamsConversionAt.pop();\n\n      return { consequent, failed };\n    }\n\n    // Given an expression, walks through out its arrow functions whose body is\n    // an expression and through out conditional expressions. It returns every\n    // function which has been parsed with a return type but could have been\n    // parenthesized expressions.\n    // These functions are separated into two arrays: one containing the ones\n    // whose parameters can be converted to assignable lists, one containing the\n    // others.\n    getArrowLikeExpressions(\n      node: N.Expression,\n      disallowInvalid?: boolean,\n    ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n      const stack = [node];\n      const arrows: N.ArrowFunctionExpression[] = [];\n\n      while (stack.length !== 0) {\n        const node = stack.pop();\n        if (node.type === \"ArrowFunctionExpression\") {\n          if (node.typeParameters || !node.returnType) {\n            // This is an arrow expression without ambiguity, so check its parameters\n            this.finishArrowValidation(node);\n          } else {\n            arrows.push(node);\n          }\n          stack.push(node.body);\n        } else if (node.type === \"ConditionalExpression\") {\n          stack.push(node.consequent);\n          stack.push(node.alternate);\n        }\n      }\n\n      if (disallowInvalid) {\n        arrows.forEach(node => this.finishArrowValidation(node));\n        return [arrows, []];\n      }\n\n      return partition(arrows, node =>\n        node.params.every(param => this.isAssignable(param, true)),\n      );\n    }\n\n    finishArrowValidation(node: N.ArrowFunctionExpression) {\n      this.toAssignableList(\n        // node.params is Expression[] instead of $ReadOnlyArray<Pattern> because it\n        // has not been converted yet.\n        ((node.params: any): N.Expression[]),\n        node.extra?.trailingComma,\n      );\n      // Enter scope, as checkParams defines bindings\n      this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n      // Use super's method to force the parameters to be checked\n      super.checkParams(node, false, true);\n      this.scope.exit();\n    }\n\n    forwardNoArrowParamsConversionAt<T>(node: N.Node, parse: () => T): T {\n      let result: T;\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        this.state.noArrowParamsConversionAt.push(this.state.start);\n        result = parse();\n        this.state.noArrowParamsConversionAt.pop();\n      } else {\n        result = parse();\n      }\n\n      return result;\n    }\n\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode = this.startNodeAt(startPos, startLoc);\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    assertModuleNodeAllowed(node: N.Node) {\n      if (\n        (node.type === \"ImportDeclaration\" &&\n          (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n        (node.type === \"ExportNamedDeclaration\" &&\n          node.exportKind === \"type\") ||\n        (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n      ) {\n        // Allow Flowtype imports and exports in all conditions because\n        // Flow itself does not care about 'sourceType'.\n        return;\n      }\n\n      super.assertModuleNodeAllowed(node);\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      const decl = super.parseExport(node);\n      if (\n        decl.type === \"ExportNamedDeclaration\" ||\n        decl.type === \"ExportAllDeclaration\"\n      ) {\n        decl.exportKind = decl.exportKind || \"value\";\n      }\n      return decl;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      if (this.isContextual(\"type\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n\n        if (this.match(tt.braceL)) {\n          // export type { foo, bar };\n          node.specifiers = this.parseExportSpecifiers();\n          this.parseExportFrom(node);\n          return null;\n        } else {\n          // export type Foo = Bar;\n          return this.flowParseTypeAlias(declarationNode);\n        }\n      } else if (this.isContextual(\"opaque\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n        // export opaque type Foo = Bar;\n        return this.flowParseOpaqueType(declarationNode, false);\n      } else if (this.isContextual(\"interface\")) {\n        node.exportKind = \"type\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseInterface(declarationNode);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        node.exportKind = \"value\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(declarationNode);\n      } else {\n        return super.parseExportDeclaration(node);\n      }\n    }\n\n    eatExportStar(node: N.Node): boolean {\n      if (super.eatExportStar(...arguments)) return true;\n\n      if (this.isContextual(\"type\") && this.lookahead().type === tt.star) {\n        node.exportKind = \"type\";\n        this.next();\n        this.next();\n        return true;\n      }\n\n      return false;\n    }\n\n    maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n      const pos = this.state.start;\n      const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n      if (hasNamespace && node.exportKind === \"type\") {\n        this.unexpected(pos);\n      }\n      return hasNamespace;\n    }\n\n    parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) {\n      super.parseClassId(node, isStatement, optionalId);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      const pos = this.state.start;\n      if (this.isContextual(\"declare\")) {\n        if (this.parseClassMemberFromModifier(classBody, member)) {\n          // 'declare' is a class element name\n          return;\n        }\n\n        member.declare = true;\n      }\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n      if (member.declare) {\n        if (\n          member.type !== \"ClassProperty\" &&\n          member.type !== \"ClassPrivateProperty\"\n        ) {\n          this.raise(pos, FlowErrors.DeclareClassElement);\n        } else if (member.value) {\n          this.raise(\n            member.value.start,\n            FlowErrors.DeclareClassFieldInitializer,\n          );\n        }\n      }\n    }\n\n    // ensure that inside flow types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n        return this.finishOp(tt.braceBarL, 2);\n      } else if (\n        this.state.inType &&\n        (code === charCodes.greaterThan || code === charCodes.lessThan)\n      ) {\n        return this.finishOp(tt.relational, 1);\n      } else if (isIteratorStart(code, next)) {\n        this.state.isIterator = true;\n        return super.readWord();\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    isAssignable(node: N.Node, isBinding?: boolean): boolean {\n      switch (node.type) {\n        case \"Identifier\":\n        case \"ObjectPattern\":\n        case \"ArrayPattern\":\n        case \"AssignmentPattern\":\n          return true;\n\n        case \"ObjectExpression\": {\n          const last = node.properties.length - 1;\n          return node.properties.every((prop, i) => {\n            return (\n              prop.type !== \"ObjectMethod\" &&\n              (i === last || prop.type === \"SpreadElement\") &&\n              this.isAssignable(prop)\n            );\n          });\n        }\n\n        case \"ObjectProperty\":\n          return this.isAssignable(node.value);\n\n        case \"SpreadElement\":\n          return this.isAssignable(node.argument);\n\n        case \"ArrayExpression\":\n          return node.elements.every(element => this.isAssignable(element));\n\n        case \"AssignmentExpression\":\n          return node.operator === \"=\";\n\n        case \"ParenthesizedExpression\":\n        case \"TypeCastExpression\":\n          return this.isAssignable(node.expression);\n\n        case \"MemberExpression\":\n        case \"OptionalMemberExpression\":\n          return !isBinding;\n\n        default:\n          return false;\n      }\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (node.type === \"TypeCastExpression\") {\n        return super.toAssignable(this.typeCastToParameter(node));\n      } else {\n        return super.toAssignable(node);\n      }\n    }\n\n    // turn type casts that we found in function parameter head into type annotated params\n    toAssignableList(\n      exprList: N.Expression[],\n      trailingCommaPos?: ?number,\n    ): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TypeCastExpression\") {\n          exprList[i] = this.typeCastToParameter(expr);\n        }\n      }\n      return super.toAssignableList(exprList, trailingCommaPos);\n    }\n\n    // this is a list of nodes, from something like a call expression, we need to filter the\n    // type casts that we've found that are illegal in this context\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (\n          expr &&\n          expr.type === \"TypeCastExpression\" &&\n          (!expr.extra || !expr.extra.parenthesized) &&\n          (exprList.length > 1 || !isParenthesizedExpr)\n        ) {\n          this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern);\n        }\n      }\n\n      return exprList;\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      if (expr.type !== \"TypeCastExpression\") {\n        return super.checkLVal(\n          expr,\n          bindingType,\n          checkClashes,\n          contextDescription,\n        );\n      }\n    }\n\n    // parse class property type annotations\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassPrivateProperty(node);\n    }\n\n    // determine whether or not we're currently in the position where a class method would appear\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    // determine whether or not we're currently in the position where a class property would appear\n    isClassProperty(): boolean {\n      return this.match(tt.colon) || super.isClassProperty();\n    }\n\n    isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n      return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n    }\n\n    // parse type parameters for class methods\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    // parse a the super class type parameters and implements\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n      }\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        const implemented: N.FlowClassImplements[] = (node.implements = []);\n        do {\n          const node = this.startNode();\n          node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n          if (this.isRelational(\"<\")) {\n            node.typeParameters = this.flowParseTypeParameterInstantiation();\n          } else {\n            node.typeParameters = null;\n          }\n          implemented.push(this.finishNode(node, \"ClassImplements\"));\n        } while (this.eat(tt.comma));\n      }\n    }\n\n    parsePropertyName(\n      node: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n      isPrivateNameAllowed: boolean,\n    ): N.Identifier {\n      const variance = this.flowParseVariance();\n      const key = super.parsePropertyName(node, isPrivateNameAllowed);\n      // $FlowIgnore (\"variance\" not defined on TsNamedTypeElementBase)\n      node.variance = variance;\n      return key;\n    }\n\n    // parse type parameters for object method shorthand\n    parseObjPropValue(\n      prop: N.ObjectMember,\n      startPos: ?number,\n      startLoc: ?Position,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n      containsEsc: boolean,\n    ): void {\n      if ((prop: $FlowFixMe).variance) {\n        this.unexpected((prop: $FlowFixMe).variance.start);\n      }\n      delete (prop: $FlowFixMe).variance;\n\n      let typeParameters;\n\n      // method shorthand\n      if (this.isRelational(\"<\")) {\n        typeParameters = this.flowParseTypeParameterDeclaration();\n        if (!this.match(tt.parenL)) this.unexpected();\n      }\n\n      super.parseObjPropValue(\n        prop,\n        startPos,\n        startLoc,\n        isGenerator,\n        isAsync,\n        isPattern,\n        refExpressionErrors,\n        containsEsc,\n      );\n\n      // add typeParameters if we found them\n      if (typeParameters) {\n        (prop.value || prop).typeParameters = typeParameters;\n      }\n    }\n\n    parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, FlowErrors.OptionalBindingPattern);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      if (this.match(tt.colon)) {\n        param.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      this.resetEndLocation(param);\n      return param;\n    }\n\n    parseMaybeDefault(\n      startPos?: ?number,\n      startLoc?: ?Position,\n      left?: ?N.Pattern,\n    ): N.Pattern {\n      const node = super.parseMaybeDefault(startPos, startLoc, left);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer);\n      }\n\n      return node;\n    }\n\n    shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n      if (!hasTypeImportKind(node)) {\n        return super.shouldParseDefaultImport(node);\n      }\n\n      return isMaybeDefaultImport(this.state);\n    }\n\n    parseImportSpecifierLocal(\n      node: N.ImportDeclaration,\n      specifier: N.Node,\n      type: string,\n      contextDescription: string,\n    ): void {\n      specifier.local = hasTypeImportKind(node)\n        ? this.flowParseRestrictedIdentifier(\n            /* liberal */ true,\n            /* declaration */ true,\n          )\n        : this.parseIdentifier();\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        contextDescription,\n      );\n      node.specifiers.push(this.finishNode(specifier, type));\n    }\n\n    // parse typeof and type imports\n    maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n      node.importKind = \"value\";\n\n      let kind = null;\n      if (this.match(tt._typeof)) {\n        kind = \"typeof\";\n      } else if (this.isContextual(\"type\")) {\n        kind = \"type\";\n      }\n      if (kind) {\n        const lh = this.lookahead();\n\n        // import type * is not allowed\n        if (kind === \"type\" && lh.type === tt.star) {\n          this.unexpected(lh.start);\n        }\n\n        if (\n          isMaybeDefaultImport(lh) ||\n          lh.type === tt.braceL ||\n          lh.type === tt.star\n        ) {\n          this.next();\n          node.importKind = kind;\n        }\n      }\n\n      return super.maybeParseDefaultImportSpecifier(node);\n    }\n\n    // parse import-type/typeof shorthand\n    parseImportSpecifier(node: N.ImportDeclaration): void {\n      const specifier = this.startNode();\n      const firstIdentLoc = this.state.start;\n      const firstIdent = this.parseIdentifier(true);\n\n      let specifierTypeKind = null;\n      if (firstIdent.name === \"type\") {\n        specifierTypeKind = \"type\";\n      } else if (firstIdent.name === \"typeof\") {\n        specifierTypeKind = \"typeof\";\n      }\n\n      let isBinding = false;\n      if (this.isContextual(\"as\") && !this.isLookaheadContextual(\"as\")) {\n        const as_ident = this.parseIdentifier(true);\n        if (\n          specifierTypeKind !== null &&\n          !this.match(tt.name) &&\n          !this.state.type.keyword\n        ) {\n          // `import {type as ,` or `import {type as }`\n          specifier.imported = as_ident;\n          specifier.importKind = specifierTypeKind;\n          specifier.local = as_ident.__clone();\n        } else {\n          // `import {type as foo`\n          specifier.imported = firstIdent;\n          specifier.importKind = null;\n          specifier.local = this.parseIdentifier();\n        }\n      } else if (\n        specifierTypeKind !== null &&\n        (this.match(tt.name) || this.state.type.keyword)\n      ) {\n        // `import {type foo`\n        specifier.imported = this.parseIdentifier(true);\n        specifier.importKind = specifierTypeKind;\n        if (this.eatContextual(\"as\")) {\n          specifier.local = this.parseIdentifier();\n        } else {\n          isBinding = true;\n          specifier.local = specifier.imported.__clone();\n        }\n      } else {\n        isBinding = true;\n        specifier.imported = firstIdent;\n        specifier.importKind = null;\n        specifier.local = specifier.imported.__clone();\n      }\n\n      const nodeIsTypeImport = hasTypeImportKind(node);\n      const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n      if (nodeIsTypeImport && specifierIsTypeImport) {\n        this.raise(\n          firstIdentLoc,\n          FlowErrors.ImportTypeShorthandOnlyInPureImport,\n        );\n      }\n\n      if (nodeIsTypeImport || specifierIsTypeImport) {\n        this.checkReservedType(\n          specifier.local.name,\n          specifier.local.start,\n          /* declaration */ true,\n        );\n      }\n\n      if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) {\n        this.checkReservedWord(\n          specifier.local.name,\n          specifier.start,\n          true,\n          true,\n        );\n      }\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        \"import specifier\",\n      );\n      node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n    }\n\n    // parse function type parameters - function foo<T>() {}\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      // $FlowFixMe\n      const kind = node.kind;\n      if (kind !== \"get\" && kind !== \"set\" && this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // parse flow type annotations on variable declarator heads - let foo: string = bar\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (this.match(tt.colon)) {\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n        this.state.noAnonFunctionType = true;\n        node.returnType = this.flowParseTypeAnnotation();\n        this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      }\n\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    // todo description\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    // We need to support type parameter declarations for arrow functions. This\n    // is tricky. There are three situations we need to handle\n    //\n    // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n    //    fails, we'll try an arrow function. If that fails, we'll throw the JSX\n    //    error.\n    // 2. This is an arrow function. We'll parse the type parameter declaration,\n    //    parse the rest, make sure the rest is an arrow function, and go from\n    //    there\n    // 3. This is neither. Just call the super method\n    parseMaybeAssign(\n      noIn?: ?boolean,\n      refExpressionErrors?: ?ExpressionErrors,\n      afterLeftParse?: Function,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      let state = null;\n\n      let jsx;\n\n      if (\n        this.hasPlugin(\"jsx\") &&\n        (this.match(tt.jsxTagStart) || this.isRelational(\"<\"))\n      ) {\n        state = this.state.clone();\n\n        jsx = this.tryParse(\n          () =>\n            super.parseMaybeAssign(\n              noIn,\n              refExpressionErrors,\n              afterLeftParse,\n              refNeedsArrowPos,\n            ),\n          state,\n        );\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === tc.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === tc.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if ((jsx && jsx.error) || this.isRelational(\"<\")) {\n        state = state || this.state.clone();\n\n        let typeParameters;\n\n        const arrow = this.tryParse(() => {\n          typeParameters = this.flowParseTypeParameterDeclaration();\n\n          const arrowExpression = this.forwardNoArrowParamsConversionAt(\n            typeParameters,\n            () =>\n              super.parseMaybeAssign(\n                noIn,\n                refExpressionErrors,\n                afterLeftParse,\n                refNeedsArrowPos,\n              ),\n          );\n          arrowExpression.typeParameters = typeParameters;\n          this.resetStartLocationFromNode(arrowExpression, typeParameters);\n\n          return arrowExpression;\n        }, state);\n\n        const arrowExpression: ?N.ArrowFunctionExpression =\n          arrow.node && arrow.node.type === \"ArrowFunctionExpression\"\n            ? arrow.node\n            : null;\n\n        if (!arrow.error && arrowExpression) return arrowExpression;\n\n        // If we are here, both JSX and Flow parsing attemps failed.\n        // Give the precedence to the JSX error, except if JSX had an\n        // unrecoverable error while Flow didn't.\n        // If the error is recoverable, we can only re-report it if there is\n        // a node we can return.\n\n        if (jsx && jsx.node) {\n          /*:: invariant(jsx.failState) */\n          this.state = jsx.failState;\n          return jsx.node;\n        }\n\n        if (arrowExpression) {\n          /*:: invariant(arrow.failState) */\n          this.state = arrow.failState;\n          return arrowExpression;\n        }\n\n        if (jsx && jsx.thrown) throw jsx.error;\n        if (arrow.thrown) throw arrow.error;\n\n        /*:: invariant(typeParameters) */\n        throw this.raise(\n          typeParameters.start,\n          FlowErrors.UnexpectedTokenAfterTypeParameter,\n        );\n      }\n\n      return super.parseMaybeAssign(\n        noIn,\n        refExpressionErrors,\n        afterLeftParse,\n        refNeedsArrowPos,\n      );\n    }\n\n    // handle return types for arrow functions\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const result = this.tryParse(() => {\n          const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n          this.state.noAnonFunctionType = true;\n\n          const typeNode = this.startNode();\n\n          [\n            // $FlowFixMe (destructuring not supported yet)\n            typeNode.typeAnnotation,\n            // $FlowFixMe (destructuring not supported yet)\n            node.predicate,\n          ] = this.flowParseTypeAndPredicateInitialiser();\n\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n          if (this.canInsertSemicolon()) this.unexpected();\n          if (!this.match(tt.arrow)) this.unexpected();\n\n          return typeNode;\n        });\n\n        if (result.thrown) return null;\n        /*:: invariant(result.node) */\n\n        if (result.error) this.state = result.failState;\n\n        // assign after it is clear it is an arrow\n        node.returnType = result.node.typeAnnotation\n          ? this.finishNode(result.node, \"TypeAnnotation\")\n          : null;\n      }\n\n      return super.parseArrow(node);\n    }\n\n    shouldParseArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    setArrowFunctionParameters(\n      node: N.ArrowFunctionExpression,\n      params: N.Expression[],\n    ): void {\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        node.params = params;\n      } else {\n        super.setArrowFunctionParameters(node, params);\n      }\n    }\n\n    checkParams(\n      node: N.Function,\n      allowDuplicates: boolean,\n      isArrowFunction: ?boolean,\n    ): void {\n      if (\n        isArrowFunction &&\n        this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n      ) {\n        return;\n      }\n\n      return super.checkParams(...arguments);\n    }\n\n    parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n      return super.parseParenAndDistinguishExpression(\n        canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n      );\n    }\n\n    parseSubscripts(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls?: ?boolean,\n    ): N.Expression {\n      if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.state.noArrowAt.indexOf(startPos) !== -1\n      ) {\n        this.next();\n\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        base = this.finishNode(node, \"CallExpression\");\n      } else if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.isRelational(\"<\")\n      ) {\n        const state = this.state.clone();\n        const arrow = this.tryParse(\n          abort =>\n            this.parseAsyncArrowWithTypeParameters(startPos, startLoc) ||\n            abort(),\n          state,\n        );\n\n        if (!arrow.error && !arrow.aborted) return arrow.node;\n\n        const result = this.tryParse(\n          () => super.parseSubscripts(base, startPos, startLoc, noCalls),\n          state,\n        );\n\n        if (result.node && !result.error) return result.node;\n\n        if (arrow.node) {\n          this.state = arrow.failState;\n          return arrow.node;\n        }\n\n        if (result.node) {\n          this.state = result.failState;\n          return result.node;\n        }\n\n        throw arrow.error || result.error;\n      }\n\n      return super.parseSubscripts(base, startPos, startLoc, noCalls);\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      subscriptState: N.ParseSubscriptState,\n    ): N.Expression {\n      if (this.match(tt.questionDot) && this.isLookaheadRelational(\"<\")) {\n        subscriptState.optionalChainMember = true;\n        if (noCalls) {\n          subscriptState.stop = true;\n          return base;\n        }\n        this.next();\n        const node: N.OptionalCallExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.callee = base;\n        node.typeArguments = this.flowParseTypeParameterInstantiation();\n        this.expect(tt.parenL);\n        // $FlowFixMe\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        node.optional = true;\n        return this.finishCallExpression(node, /* optional */ true);\n      } else if (\n        !noCalls &&\n        this.shouldParseTypes() &&\n        this.isRelational(\"<\")\n      ) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n\n        const result = this.tryParse(() => {\n          node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n          this.expect(tt.parenL);\n          node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n          if (subscriptState.optionalChainMember) node.optional = false;\n          return this.finishCallExpression(\n            node,\n            subscriptState.optionalChainMember,\n          );\n        });\n\n        if (result.node) {\n          if (result.error) this.state = result.failState;\n          return result.node;\n        }\n      }\n\n      return super.parseSubscript(\n        base,\n        startPos,\n        startLoc,\n        noCalls,\n        subscriptState,\n      );\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      let targs = null;\n      if (this.shouldParseTypes() && this.isRelational(\"<\")) {\n        targs = this.tryParse(() =>\n          this.flowParseTypeParameterInstantiationCallOrNew(),\n        ).node;\n      }\n      node.typeArguments = targs;\n\n      super.parseNewArguments(node);\n    }\n\n    parseAsyncArrowWithTypeParameters(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      const node = this.startNodeAt(startPos, startLoc);\n      this.parseFunctionParams(node);\n      if (!this.parseArrow(node)) return;\n      return this.parseArrowExpression(\n        node,\n        /* params */ undefined,\n        /* isAsync */ true,\n      );\n    }\n\n    readToken_mult_modulo(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.asterisk &&\n        next === charCodes.slash &&\n        this.state.hasFlowComment\n      ) {\n        this.state.hasFlowComment = false;\n        this.state.pos += 2;\n        this.nextToken();\n        return;\n      }\n\n      super.readToken_mult_modulo(code);\n    }\n\n    readToken_pipe_amp(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.verticalBar &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        // '|}'\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      super.readToken_pipe_amp(code);\n    }\n\n    parseTopLevel(file: N.File, program: N.Program): N.File {\n      const fileNode = super.parseTopLevel(file, program);\n      if (this.state.hasFlowComment) {\n        this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment);\n      }\n      return fileNode;\n    }\n\n    skipBlockComment(): void {\n      if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n        if (this.state.hasFlowComment) {\n          this.unexpected(null, FlowErrors.NestedFlowComment);\n        }\n        this.hasFlowCommentCompletion();\n        this.state.pos += this.skipFlowComment();\n        this.state.hasFlowComment = true;\n        return;\n      }\n\n      if (this.state.hasFlowComment) {\n        const end = this.input.indexOf(\"*-/\", (this.state.pos += 2));\n        if (end === -1) {\n          throw this.raise(this.state.pos - 2, Errors.UnterminatedComment);\n        }\n        this.state.pos = end + 3;\n        return;\n      }\n\n      super.skipBlockComment();\n    }\n\n    skipFlowComment(): number | boolean {\n      const { pos } = this.state;\n      let shiftToFirstNonWhiteSpace = 2;\n      while (\n        [charCodes.space, charCodes.tab].includes(\n          this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n        )\n      ) {\n        shiftToFirstNonWhiteSpace++;\n      }\n\n      const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n      const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n      if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n        return shiftToFirstNonWhiteSpace + 2; // check for /*::\n      }\n      if (\n        this.input.slice(\n          shiftToFirstNonWhiteSpace + pos,\n          shiftToFirstNonWhiteSpace + pos + 12,\n        ) === \"flow-include\"\n      ) {\n        return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n      }\n      if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n        return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n      }\n      return false;\n    }\n\n    hasFlowCommentCompletion(): void {\n      const end = this.input.indexOf(\"*/\", this.state.pos);\n      if (end === -1) {\n        throw this.raise(this.state.pos, Errors.UnterminatedComment);\n      }\n    }\n\n    // Flow enum parsing\n\n    flowEnumErrorBooleanMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumBooleanMemberNotInitialized,\n        memberName,\n        enumName,\n      );\n    }\n\n    flowEnumErrorInvalidMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      const suggestion = memberName[0].toUpperCase() + memberName.slice(1);\n      this.raise(\n        pos,\n        FlowErrors.EnumInvalidMemberName,\n        memberName,\n        suggestion,\n        enumName,\n      );\n    }\n\n    flowEnumErrorDuplicateMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName);\n    }\n\n    flowEnumErrorInconsistentMemberValues(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName);\n    }\n\n    flowEnumErrorInvalidExplicitType(\n      pos: number,\n      {\n        enumName,\n        suppliedType,\n      }: { enumName: string, suppliedType: null | string },\n    ) {\n      return this.raise(\n        pos,\n        suppliedType === null\n          ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied\n          : FlowErrors.EnumInvalidExplicitType,\n        enumName,\n        suppliedType,\n      );\n    }\n\n    flowEnumErrorInvalidMemberInitializer(\n      pos: number,\n      { enumName, explicitType, memberName }: EnumContext,\n    ) {\n      let message = null;\n      switch (explicitType) {\n        case \"boolean\":\n        case \"number\":\n        case \"string\":\n          message = FlowErrors.EnumInvalidMemberInitializerPrimaryType;\n          break;\n        case \"symbol\":\n          message = FlowErrors.EnumInvalidMemberInitializerSymbolType;\n          break;\n        default:\n          // null\n          message = FlowErrors.EnumInvalidMemberInitializerUnknownType;\n      }\n      return this.raise(pos, message, enumName, memberName, explicitType);\n    }\n\n    flowEnumErrorNumberMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumNumberMemberNotInitialized,\n        enumName,\n        memberName,\n      );\n    }\n\n    flowEnumErrorStringMemberInconsistentlyInitailized(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumStringMemberInconsistentlyInitailized,\n        enumName,\n      );\n    }\n\n    flowEnumMemberInit(): EnumMemberInit {\n      const startPos = this.state.start;\n      const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n      switch (this.state.type) {\n        case tt.num: {\n          const literal = this.parseLiteral(this.state.value, \"NumericLiteral\");\n          if (endOfInit()) {\n            return { type: \"number\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt.string: {\n          const literal = this.parseLiteral(this.state.value, \"StringLiteral\");\n          if (endOfInit()) {\n            return { type: \"string\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt._true:\n        case tt._false: {\n          const literal = this.parseBooleanLiteral();\n          if (endOfInit()) {\n            return {\n              type: \"boolean\",\n              pos: literal.start,\n              value: literal,\n            };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        default:\n          return { type: \"invalid\", pos: startPos };\n      }\n    }\n\n    flowEnumMemberRaw(): { id: N.Node, init: EnumMemberInit } {\n      const pos = this.state.start;\n      const id = this.parseIdentifier(true);\n      const init = this.eat(tt.eq)\n        ? this.flowEnumMemberInit()\n        : { type: \"none\", pos };\n      return { id, init };\n    }\n\n    flowEnumCheckExplicitTypeMismatch(\n      pos: number,\n      context: EnumContext,\n      expectedType: EnumExplicitType,\n    ): void {\n      const { explicitType } = context;\n      if (explicitType === null) {\n        return;\n      }\n      if (explicitType !== expectedType) {\n        this.flowEnumErrorInvalidMemberInitializer(pos, context);\n      }\n    }\n\n    flowEnumMembers({\n      enumName,\n      explicitType,\n    }: {\n      enumName: string,\n      explicitType: EnumExplicitType,\n    }): {|\n      booleanMembers: Array<N.Node>,\n      numberMembers: Array<N.Node>,\n      stringMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n    |} {\n      const seenNames = new Set();\n      const members = {\n        booleanMembers: [],\n        numberMembers: [],\n        stringMembers: [],\n        defaultedMembers: [],\n      };\n      while (!this.match(tt.braceR)) {\n        const memberNode = this.startNode();\n        const { id, init } = this.flowEnumMemberRaw();\n        const memberName = id.name;\n        if (memberName === \"\") {\n          continue;\n        }\n        if (/^[a-z]/.test(memberName)) {\n          this.flowEnumErrorInvalidMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        if (seenNames.has(memberName)) {\n          this.flowEnumErrorDuplicateMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        seenNames.add(memberName);\n        const context = { enumName, explicitType, memberName };\n        memberNode.id = id;\n        switch (init.type) {\n          case \"boolean\": {\n            this.flowEnumCheckExplicitTypeMismatch(\n              init.pos,\n              context,\n              \"boolean\",\n            );\n            memberNode.init = init.value;\n            members.booleanMembers.push(\n              this.finishNode(memberNode, \"EnumBooleanMember\"),\n            );\n            break;\n          }\n          case \"number\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"number\");\n            memberNode.init = init.value;\n            members.numberMembers.push(\n              this.finishNode(memberNode, \"EnumNumberMember\"),\n            );\n            break;\n          }\n          case \"string\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"string\");\n            memberNode.init = init.value;\n            members.stringMembers.push(\n              this.finishNode(memberNode, \"EnumStringMember\"),\n            );\n            break;\n          }\n          case \"invalid\": {\n            throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context);\n          }\n          case \"none\": {\n            switch (explicitType) {\n              case \"boolean\":\n                this.flowEnumErrorBooleanMemberNotInitialized(\n                  init.pos,\n                  context,\n                );\n                break;\n              case \"number\":\n                this.flowEnumErrorNumberMemberNotInitialized(init.pos, context);\n                break;\n              default:\n                members.defaultedMembers.push(\n                  this.finishNode(memberNode, \"EnumDefaultedMember\"),\n                );\n            }\n          }\n        }\n\n        if (!this.match(tt.braceR)) {\n          this.expect(tt.comma);\n        }\n      }\n      return members;\n    }\n\n    flowEnumStringMembers(\n      initializedMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n      { enumName }: { enumName: string },\n    ): Array<N.Node> {\n      if (initializedMembers.length === 0) {\n        return defaultedMembers;\n      } else if (defaultedMembers.length === 0) {\n        return initializedMembers;\n      } else if (defaultedMembers.length > initializedMembers.length) {\n        for (const member of initializedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return defaultedMembers;\n      } else {\n        for (const member of defaultedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return initializedMembers;\n      }\n    }\n\n    flowEnumParseExplicitType({\n      enumName,\n    }: {\n      enumName: string,\n    }): EnumExplicitType {\n      if (this.eatContextual(\"of\")) {\n        if (!this.match(tt.name)) {\n          throw this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: null,\n          });\n        }\n\n        const { value } = this.state;\n        this.next();\n\n        if (\n          value !== \"boolean\" &&\n          value !== \"number\" &&\n          value !== \"string\" &&\n          value !== \"symbol\"\n        ) {\n          this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: value,\n          });\n        }\n\n        return value;\n      }\n      return null;\n    }\n\n    flowEnumBody(node: N.Node, { enumName, nameLoc }): N.Node {\n      const explicitType = this.flowEnumParseExplicitType({ enumName });\n      this.expect(tt.braceL);\n      const members = this.flowEnumMembers({ enumName, explicitType });\n\n      switch (explicitType) {\n        case \"boolean\":\n          node.explicitType = true;\n          node.members = members.booleanMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumBooleanBody\");\n        case \"number\":\n          node.explicitType = true;\n          node.members = members.numberMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumNumberBody\");\n        case \"string\":\n          node.explicitType = true;\n          node.members = this.flowEnumStringMembers(\n            members.stringMembers,\n            members.defaultedMembers,\n            { enumName },\n          );\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumStringBody\");\n        case \"symbol\":\n          node.members = members.defaultedMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumSymbolBody\");\n        default: {\n          // `explicitType` is `null`\n          const empty = () => {\n            node.members = [];\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          };\n          node.explicitType = false;\n\n          const boolsLen = members.booleanMembers.length;\n          const numsLen = members.numberMembers.length;\n          const strsLen = members.stringMembers.length;\n          const defaultedLen = members.defaultedMembers.length;\n\n          if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n            return empty();\n          } else if (!boolsLen && !numsLen) {\n            node.members = this.flowEnumStringMembers(\n              members.stringMembers,\n              members.defaultedMembers,\n              { enumName },\n            );\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorBooleanMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.booleanMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumBooleanBody\");\n          } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorNumberMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.numberMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumNumberBody\");\n          } else {\n            this.flowEnumErrorInconsistentMemberValues(nameLoc, { enumName });\n            return empty();\n          }\n        }\n      }\n    }\n\n    flowParseEnumDeclaration(node: N.Node): N.Node {\n      const id = this.parseIdentifier();\n      node.id = id;\n      node.body = this.flowEnumBody(this.startNode(), {\n        enumName: id.name,\n        nameLoc: id.start,\n      });\n      return this.finishNode(node, \"EnumDeclaration\");\n    }\n  };\n","// @flow\n\nconst entities: { [name: string]: string } = {\n  quot: \"\\u0022\",\n  amp: \"&\",\n  apos: \"\\u0027\",\n  lt: \"<\",\n  gt: \">\",\n  nbsp: \"\\u00A0\",\n  iexcl: \"\\u00A1\",\n  cent: \"\\u00A2\",\n  pound: \"\\u00A3\",\n  curren: \"\\u00A4\",\n  yen: \"\\u00A5\",\n  brvbar: \"\\u00A6\",\n  sect: \"\\u00A7\",\n  uml: \"\\u00A8\",\n  copy: \"\\u00A9\",\n  ordf: \"\\u00AA\",\n  laquo: \"\\u00AB\",\n  not: \"\\u00AC\",\n  shy: \"\\u00AD\",\n  reg: \"\\u00AE\",\n  macr: \"\\u00AF\",\n  deg: \"\\u00B0\",\n  plusmn: \"\\u00B1\",\n  sup2: \"\\u00B2\",\n  sup3: \"\\u00B3\",\n  acute: \"\\u00B4\",\n  micro: \"\\u00B5\",\n  para: \"\\u00B6\",\n  middot: \"\\u00B7\",\n  cedil: \"\\u00B8\",\n  sup1: \"\\u00B9\",\n  ordm: \"\\u00BA\",\n  raquo: \"\\u00BB\",\n  frac14: \"\\u00BC\",\n  frac12: \"\\u00BD\",\n  frac34: \"\\u00BE\",\n  iquest: \"\\u00BF\",\n  Agrave: \"\\u00C0\",\n  Aacute: \"\\u00C1\",\n  Acirc: \"\\u00C2\",\n  Atilde: \"\\u00C3\",\n  Auml: \"\\u00C4\",\n  Aring: \"\\u00C5\",\n  AElig: \"\\u00C6\",\n  Ccedil: \"\\u00C7\",\n  Egrave: \"\\u00C8\",\n  Eacute: \"\\u00C9\",\n  Ecirc: \"\\u00CA\",\n  Euml: \"\\u00CB\",\n  Igrave: \"\\u00CC\",\n  Iacute: \"\\u00CD\",\n  Icirc: \"\\u00CE\",\n  Iuml: \"\\u00CF\",\n  ETH: \"\\u00D0\",\n  Ntilde: \"\\u00D1\",\n  Ograve: \"\\u00D2\",\n  Oacute: \"\\u00D3\",\n  Ocirc: \"\\u00D4\",\n  Otilde: \"\\u00D5\",\n  Ouml: \"\\u00D6\",\n  times: \"\\u00D7\",\n  Oslash: \"\\u00D8\",\n  Ugrave: \"\\u00D9\",\n  Uacute: \"\\u00DA\",\n  Ucirc: \"\\u00DB\",\n  Uuml: \"\\u00DC\",\n  Yacute: \"\\u00DD\",\n  THORN: \"\\u00DE\",\n  szlig: \"\\u00DF\",\n  agrave: \"\\u00E0\",\n  aacute: \"\\u00E1\",\n  acirc: \"\\u00E2\",\n  atilde: \"\\u00E3\",\n  auml: \"\\u00E4\",\n  aring: \"\\u00E5\",\n  aelig: \"\\u00E6\",\n  ccedil: \"\\u00E7\",\n  egrave: \"\\u00E8\",\n  eacute: \"\\u00E9\",\n  ecirc: \"\\u00EA\",\n  euml: \"\\u00EB\",\n  igrave: \"\\u00EC\",\n  iacute: \"\\u00ED\",\n  icirc: \"\\u00EE\",\n  iuml: \"\\u00EF\",\n  eth: \"\\u00F0\",\n  ntilde: \"\\u00F1\",\n  ograve: \"\\u00F2\",\n  oacute: \"\\u00F3\",\n  ocirc: \"\\u00F4\",\n  otilde: \"\\u00F5\",\n  ouml: \"\\u00F6\",\n  divide: \"\\u00F7\",\n  oslash: \"\\u00F8\",\n  ugrave: \"\\u00F9\",\n  uacute: \"\\u00FA\",\n  ucirc: \"\\u00FB\",\n  uuml: \"\\u00FC\",\n  yacute: \"\\u00FD\",\n  thorn: \"\\u00FE\",\n  yuml: \"\\u00FF\",\n  OElig: \"\\u0152\",\n  oelig: \"\\u0153\",\n  Scaron: \"\\u0160\",\n  scaron: \"\\u0161\",\n  Yuml: \"\\u0178\",\n  fnof: \"\\u0192\",\n  circ: \"\\u02C6\",\n  tilde: \"\\u02DC\",\n  Alpha: \"\\u0391\",\n  Beta: \"\\u0392\",\n  Gamma: \"\\u0393\",\n  Delta: \"\\u0394\",\n  Epsilon: \"\\u0395\",\n  Zeta: \"\\u0396\",\n  Eta: \"\\u0397\",\n  Theta: \"\\u0398\",\n  Iota: \"\\u0399\",\n  Kappa: \"\\u039A\",\n  Lambda: \"\\u039B\",\n  Mu: \"\\u039C\",\n  Nu: \"\\u039D\",\n  Xi: \"\\u039E\",\n  Omicron: \"\\u039F\",\n  Pi: \"\\u03A0\",\n  Rho: \"\\u03A1\",\n  Sigma: \"\\u03A3\",\n  Tau: \"\\u03A4\",\n  Upsilon: \"\\u03A5\",\n  Phi: \"\\u03A6\",\n  Chi: \"\\u03A7\",\n  Psi: \"\\u03A8\",\n  Omega: \"\\u03A9\",\n  alpha: \"\\u03B1\",\n  beta: \"\\u03B2\",\n  gamma: \"\\u03B3\",\n  delta: \"\\u03B4\",\n  epsilon: \"\\u03B5\",\n  zeta: \"\\u03B6\",\n  eta: \"\\u03B7\",\n  theta: \"\\u03B8\",\n  iota: \"\\u03B9\",\n  kappa: \"\\u03BA\",\n  lambda: \"\\u03BB\",\n  mu: \"\\u03BC\",\n  nu: \"\\u03BD\",\n  xi: \"\\u03BE\",\n  omicron: \"\\u03BF\",\n  pi: \"\\u03C0\",\n  rho: \"\\u03C1\",\n  sigmaf: \"\\u03C2\",\n  sigma: \"\\u03C3\",\n  tau: \"\\u03C4\",\n  upsilon: \"\\u03C5\",\n  phi: \"\\u03C6\",\n  chi: \"\\u03C7\",\n  psi: \"\\u03C8\",\n  omega: \"\\u03C9\",\n  thetasym: \"\\u03D1\",\n  upsih: \"\\u03D2\",\n  piv: \"\\u03D6\",\n  ensp: \"\\u2002\",\n  emsp: \"\\u2003\",\n  thinsp: \"\\u2009\",\n  zwnj: \"\\u200C\",\n  zwj: \"\\u200D\",\n  lrm: \"\\u200E\",\n  rlm: \"\\u200F\",\n  ndash: \"\\u2013\",\n  mdash: \"\\u2014\",\n  lsquo: \"\\u2018\",\n  rsquo: \"\\u2019\",\n  sbquo: \"\\u201A\",\n  ldquo: \"\\u201C\",\n  rdquo: \"\\u201D\",\n  bdquo: \"\\u201E\",\n  dagger: \"\\u2020\",\n  Dagger: \"\\u2021\",\n  bull: \"\\u2022\",\n  hellip: \"\\u2026\",\n  permil: \"\\u2030\",\n  prime: \"\\u2032\",\n  Prime: \"\\u2033\",\n  lsaquo: \"\\u2039\",\n  rsaquo: \"\\u203A\",\n  oline: \"\\u203E\",\n  frasl: \"\\u2044\",\n  euro: \"\\u20AC\",\n  image: \"\\u2111\",\n  weierp: \"\\u2118\",\n  real: \"\\u211C\",\n  trade: \"\\u2122\",\n  alefsym: \"\\u2135\",\n  larr: \"\\u2190\",\n  uarr: \"\\u2191\",\n  rarr: \"\\u2192\",\n  darr: \"\\u2193\",\n  harr: \"\\u2194\",\n  crarr: \"\\u21B5\",\n  lArr: \"\\u21D0\",\n  uArr: \"\\u21D1\",\n  rArr: \"\\u21D2\",\n  dArr: \"\\u21D3\",\n  hArr: \"\\u21D4\",\n  forall: \"\\u2200\",\n  part: \"\\u2202\",\n  exist: \"\\u2203\",\n  empty: \"\\u2205\",\n  nabla: \"\\u2207\",\n  isin: \"\\u2208\",\n  notin: \"\\u2209\",\n  ni: \"\\u220B\",\n  prod: \"\\u220F\",\n  sum: \"\\u2211\",\n  minus: \"\\u2212\",\n  lowast: \"\\u2217\",\n  radic: \"\\u221A\",\n  prop: \"\\u221D\",\n  infin: \"\\u221E\",\n  ang: \"\\u2220\",\n  and: \"\\u2227\",\n  or: \"\\u2228\",\n  cap: \"\\u2229\",\n  cup: \"\\u222A\",\n  int: \"\\u222B\",\n  there4: \"\\u2234\",\n  sim: \"\\u223C\",\n  cong: \"\\u2245\",\n  asymp: \"\\u2248\",\n  ne: \"\\u2260\",\n  equiv: \"\\u2261\",\n  le: \"\\u2264\",\n  ge: \"\\u2265\",\n  sub: \"\\u2282\",\n  sup: \"\\u2283\",\n  nsub: \"\\u2284\",\n  sube: \"\\u2286\",\n  supe: \"\\u2287\",\n  oplus: \"\\u2295\",\n  otimes: \"\\u2297\",\n  perp: \"\\u22A5\",\n  sdot: \"\\u22C5\",\n  lceil: \"\\u2308\",\n  rceil: \"\\u2309\",\n  lfloor: \"\\u230A\",\n  rfloor: \"\\u230B\",\n  lang: \"\\u2329\",\n  rang: \"\\u232A\",\n  loz: \"\\u25CA\",\n  spades: \"\\u2660\",\n  clubs: \"\\u2663\",\n  hearts: \"\\u2665\",\n  diams: \"\\u2666\",\n};\nexport default entities;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml\";\nimport type Parser from \"../../parser\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { TokenType, types as tt } from \"../../tokenizer/types\";\nimport { TokContext, types as tc } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier\";\nimport type { Position } from \"../../util/location\";\nimport { isNewLine } from \"../../util/whitespace\";\nimport { Errors } from \"../../parser/location\";\n\nconst HEX_NUMBER = /^[\\da-fA-F]+$/;\nconst DECIMAL_NUMBER = /^\\d+$/;\n\nconst JsxErrors = Object.freeze({\n  AttributeIsEmpty:\n    \"JSX attributes must only be assigned a non-empty expression\",\n  MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>\",\n  MissingClosingTagElement: \"Expected corresponding JSX closing tag for <%0>\",\n  UnsupportedJsxValue:\n    \"JSX value should be either an expression or a quoted JSX text\",\n  UnterminatedJsxContent: \"Unterminated JSX contents\",\n  UnwrappedAdjacentJSXElements:\n    \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\",\n});\n\n// Be aware that this file is always executed and not only when the plugin is enabled.\n// Therefore this contexts and tokens do always exist.\ntc.j_oTag = new TokContext(\"<tag\", false);\ntc.j_cTag = new TokContext(\"</tag\", false);\ntc.j_expr = new TokContext(\"<tag>...</tag>\", true, true);\n\ntt.jsxName = new TokenType(\"jsxName\");\ntt.jsxText = new TokenType(\"jsxText\", { beforeExpr: true });\ntt.jsxTagStart = new TokenType(\"jsxTagStart\", { startsExpr: true });\ntt.jsxTagEnd = new TokenType(\"jsxTagEnd\");\n\ntt.jsxTagStart.updateContext = function() {\n  this.state.context.push(tc.j_expr); // treat as beginning of JSX expression\n  this.state.context.push(tc.j_oTag); // start opening tag context\n  this.state.exprAllowed = false;\n};\n\ntt.jsxTagEnd.updateContext = function(prevType) {\n  const out = this.state.context.pop();\n  if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n    this.state.context.pop();\n    this.state.exprAllowed = this.curContext() === tc.j_expr;\n  } else {\n    this.state.exprAllowed = true;\n  }\n};\n\nfunction isFragment(object: ?N.JSXElement): boolean {\n  return object\n    ? object.type === \"JSXOpeningFragment\" ||\n        object.type === \"JSXClosingFragment\"\n    : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n  object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n  if (object.type === \"JSXIdentifier\") {\n    return object.name;\n  }\n\n  if (object.type === \"JSXNamespacedName\") {\n    return object.namespace.name + \":\" + object.name.name;\n  }\n\n  if (object.type === \"JSXMemberExpression\") {\n    return (\n      getQualifiedJSXName(object.object) +\n      \".\" +\n      getQualifiedJSXName(object.property)\n    );\n  }\n\n  // istanbul ignore next\n  throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // Reads inline JSX contents token.\n\n    jsxReadToken(): void {\n      let out = \"\";\n      let chunkStart = this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n\n        switch (ch) {\n          case charCodes.lessThan:\n          case charCodes.leftCurlyBrace:\n            if (this.state.pos === this.state.start) {\n              if (ch === charCodes.lessThan && this.state.exprAllowed) {\n                ++this.state.pos;\n                return this.finishToken(tt.jsxTagStart);\n              }\n              return super.getTokenFromCode(ch);\n            }\n            out += this.input.slice(chunkStart, this.state.pos);\n            return this.finishToken(tt.jsxText, out);\n\n          case charCodes.ampersand:\n            out += this.input.slice(chunkStart, this.state.pos);\n            out += this.jsxReadEntity();\n            chunkStart = this.state.pos;\n            break;\n\n          default:\n            if (isNewLine(ch)) {\n              out += this.input.slice(chunkStart, this.state.pos);\n              out += this.jsxReadNewLine(true);\n              chunkStart = this.state.pos;\n            } else {\n              ++this.state.pos;\n            }\n        }\n      }\n    }\n\n    jsxReadNewLine(normalizeCRLF: boolean): string {\n      const ch = this.input.charCodeAt(this.state.pos);\n      let out;\n      ++this.state.pos;\n      if (\n        ch === charCodes.carriageReturn &&\n        this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n      ) {\n        ++this.state.pos;\n        out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n      } else {\n        out = String.fromCharCode(ch);\n      }\n      ++this.state.curLine;\n      this.state.lineStart = this.state.pos;\n\n      return out;\n    }\n\n    jsxReadString(quote: number): void {\n      let out = \"\";\n      let chunkStart = ++this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, Errors.UnterminatedString);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n        if (ch === quote) break;\n        if (ch === charCodes.ampersand) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadEntity();\n          chunkStart = this.state.pos;\n        } else if (isNewLine(ch)) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadNewLine(false);\n          chunkStart = this.state.pos;\n        } else {\n          ++this.state.pos;\n        }\n      }\n      out += this.input.slice(chunkStart, this.state.pos++);\n      return this.finishToken(tt.string, out);\n    }\n\n    jsxReadEntity(): string {\n      let str = \"\";\n      let count = 0;\n      let entity;\n      let ch = this.input[this.state.pos];\n\n      const startPos = ++this.state.pos;\n      while (this.state.pos < this.length && count++ < 10) {\n        ch = this.input[this.state.pos++];\n        if (ch === \";\") {\n          if (str[0] === \"#\") {\n            if (str[1] === \"x\") {\n              str = str.substr(2);\n              if (HEX_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 16));\n              }\n            } else {\n              str = str.substr(1);\n              if (DECIMAL_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 10));\n              }\n            }\n          } else {\n            entity = XHTMLEntities[str];\n          }\n          break;\n        }\n        str += ch;\n      }\n      if (!entity) {\n        this.state.pos = startPos;\n        return \"&\";\n      }\n      return entity;\n    }\n\n    // Read a JSX identifier (valid tag or attribute name).\n    //\n    // Optimized version since JSX identifiers can\"t contain\n    // escape characters and so can be read as single slice.\n    // Also assumes that first character was already checked\n    // by isIdentifierStart in readToken.\n\n    jsxReadWord(): void {\n      let ch;\n      const start = this.state.pos;\n      do {\n        ch = this.input.charCodeAt(++this.state.pos);\n      } while (isIdentifierChar(ch) || ch === charCodes.dash);\n      return this.finishToken(\n        tt.jsxName,\n        this.input.slice(start, this.state.pos),\n      );\n    }\n\n    // Parse next token as JSX identifier\n\n    jsxParseIdentifier(): N.JSXIdentifier {\n      const node = this.startNode();\n      if (this.match(tt.jsxName)) {\n        node.name = this.state.value;\n      } else if (this.state.type.keyword) {\n        node.name = this.state.type.keyword;\n      } else {\n        this.unexpected();\n      }\n      this.next();\n      return this.finishNode(node, \"JSXIdentifier\");\n    }\n\n    // Parse namespaced identifier.\n\n    jsxParseNamespacedName(): N.JSXNamespacedName {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const name = this.jsxParseIdentifier();\n      if (!this.eat(tt.colon)) return name;\n\n      const node = this.startNodeAt(startPos, startLoc);\n      node.namespace = name;\n      node.name = this.jsxParseIdentifier();\n      return this.finishNode(node, \"JSXNamespacedName\");\n    }\n\n    // Parses element name in any form - namespaced, member\n    // or single identifier.\n\n    jsxParseElementName():\n      | N.JSXIdentifier\n      | N.JSXNamespacedName\n      | N.JSXMemberExpression {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let node = this.jsxParseNamespacedName();\n      if (node.type === \"JSXNamespacedName\") {\n        return node;\n      }\n      while (this.eat(tt.dot)) {\n        const newNode = this.startNodeAt(startPos, startLoc);\n        newNode.object = node;\n        newNode.property = this.jsxParseIdentifier();\n        node = this.finishNode(newNode, \"JSXMemberExpression\");\n      }\n      return node;\n    }\n\n    // Parses any type of JSX attribute value.\n\n    jsxParseAttributeValue(): N.Expression {\n      let node;\n      switch (this.state.type) {\n        case tt.braceL:\n          node = this.startNode();\n          this.next();\n          node = this.jsxParseExpressionContainer(node);\n          if (node.expression.type === \"JSXEmptyExpression\") {\n            this.raise(node.start, JsxErrors.AttributeIsEmpty);\n          }\n          return node;\n\n        case tt.jsxTagStart:\n        case tt.string:\n          return this.parseExprAtom();\n\n        default:\n          throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue);\n      }\n    }\n\n    // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n    // and so it should start at the end of last read token (left brace) and finish\n    // at the beginning of the next one (right brace).\n\n    jsxParseEmptyExpression(): N.JSXEmptyExpression {\n      const node = this.startNodeAt(\n        this.state.lastTokEnd,\n        this.state.lastTokEndLoc,\n      );\n      return this.finishNodeAt(\n        node,\n        \"JSXEmptyExpression\",\n        this.state.start,\n        this.state.startLoc,\n      );\n    }\n\n    // Parse JSX spread child\n\n    jsxParseSpreadChild(node: N.JSXSpreadChild): N.JSXSpreadChild {\n      this.next(); // ellipsis\n      node.expression = this.parseExpression();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"JSXSpreadChild\");\n    }\n\n    // Parses JSX expression enclosed into curly brackets.\n\n    jsxParseExpressionContainer(\n      node: N.JSXExpressionContainer,\n    ): N.JSXExpressionContainer {\n      if (this.match(tt.braceR)) {\n        node.expression = this.jsxParseEmptyExpression();\n      } else {\n        node.expression = this.parseExpression();\n      }\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"JSXExpressionContainer\");\n    }\n\n    // Parses following JSX attribute name-value pair.\n\n    jsxParseAttribute(): N.JSXAttribute {\n      const node = this.startNode();\n      if (this.eat(tt.braceL)) {\n        this.expect(tt.ellipsis);\n        node.argument = this.parseMaybeAssign();\n        this.expect(tt.braceR);\n        return this.finishNode(node, \"JSXSpreadAttribute\");\n      }\n      node.name = this.jsxParseNamespacedName();\n      node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n      return this.finishNode(node, \"JSXAttribute\");\n    }\n\n    // Parses JSX opening tag starting after \"<\".\n\n    jsxParseOpeningElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXOpeningElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXOpeningFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      return this.jsxParseOpeningElementAfterName(node);\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      const attributes: N.JSXAttribute[] = [];\n      while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n        attributes.push(this.jsxParseAttribute());\n      }\n      node.attributes = attributes;\n      node.selfClosing = this.eat(tt.slash);\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXOpeningElement\");\n    }\n\n    // Parses JSX closing tag starting after \"</\".\n\n    jsxParseClosingElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXClosingElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXClosingFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXClosingElement\");\n    }\n\n    // Parses entire JSX element, including it\"s opening tag\n    // (starting after \"<\"), attributes, contents and closing tag.\n\n    jsxParseElementAt(startPos: number, startLoc: Position): N.JSXElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      const children = [];\n      const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\n      let closingElement = null;\n\n      if (!openingElement.selfClosing) {\n        contents: for (;;) {\n          switch (this.state.type) {\n            case tt.jsxTagStart:\n              startPos = this.state.start;\n              startLoc = this.state.startLoc;\n              this.next();\n              if (this.eat(tt.slash)) {\n                closingElement = this.jsxParseClosingElementAt(\n                  startPos,\n                  startLoc,\n                );\n                break contents;\n              }\n              children.push(this.jsxParseElementAt(startPos, startLoc));\n              break;\n\n            case tt.jsxText:\n              children.push(this.parseExprAtom());\n              break;\n\n            case tt.braceL: {\n              const node = this.startNode();\n              this.next();\n              if (this.match(tt.ellipsis)) {\n                children.push(this.jsxParseSpreadChild(node));\n              } else {\n                children.push(this.jsxParseExpressionContainer(node));\n              }\n\n              break;\n            }\n            // istanbul ignore next - should never happen\n            default:\n              throw this.unexpected();\n          }\n        }\n\n        if (isFragment(openingElement) && !isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagFragment,\n          );\n        } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagElement,\n            getQualifiedJSXName(openingElement.name),\n          );\n        } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n          if (\n            // $FlowIgnore\n            getQualifiedJSXName(closingElement.name) !==\n            getQualifiedJSXName(openingElement.name)\n          ) {\n            this.raise(\n              // $FlowIgnore\n              closingElement.start,\n              JsxErrors.MissingClosingTagElement,\n              getQualifiedJSXName(openingElement.name),\n            );\n          }\n        }\n      }\n\n      if (isFragment(openingElement)) {\n        node.openingFragment = openingElement;\n        node.closingFragment = closingElement;\n      } else {\n        node.openingElement = openingElement;\n        node.closingElement = closingElement;\n      }\n      node.children = children;\n      if (this.isRelational(\"<\")) {\n        throw this.raise(\n          this.state.start,\n          JsxErrors.UnwrappedAdjacentJSXElements,\n        );\n      }\n\n      return isFragment(openingElement)\n        ? this.finishNode(node, \"JSXFragment\")\n        : this.finishNode(node, \"JSXElement\");\n    }\n\n    // Parses entire JSX element from current position.\n\n    jsxParseElement(): N.JSXElement {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      this.next();\n      return this.jsxParseElementAt(startPos, startLoc);\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseExprAtom(refExpressionErrors: ?ExpressionErrors): N.Expression {\n      if (this.match(tt.jsxText)) {\n        return this.parseLiteral(this.state.value, \"JSXText\");\n      } else if (this.match(tt.jsxTagStart)) {\n        return this.jsxParseElement();\n      } else if (\n        this.isRelational(\"<\") &&\n        this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n      ) {\n        // In case we encounter an lt token here it will always be the start of\n        // jsx as the lt sign is not allowed in places that expect an expression\n        this.finishToken(tt.jsxTagStart);\n        return this.jsxParseElement();\n      } else {\n        return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    getTokenFromCode(code: number): void {\n      if (this.state.inPropertyName) return super.getTokenFromCode(code);\n\n      const context = this.curContext();\n\n      if (context === tc.j_expr) {\n        return this.jsxReadToken();\n      }\n\n      if (context === tc.j_oTag || context === tc.j_cTag) {\n        if (isIdentifierStart(code)) {\n          return this.jsxReadWord();\n        }\n\n        if (code === charCodes.greaterThan) {\n          ++this.state.pos;\n          return this.finishToken(tt.jsxTagEnd);\n        }\n\n        if (\n          (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n          context === tc.j_oTag\n        ) {\n          return this.jsxReadString(code);\n        }\n      }\n\n      if (\n        code === charCodes.lessThan &&\n        this.state.exprAllowed &&\n        this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n      ) {\n        ++this.state.pos;\n        return this.finishToken(tt.jsxTagStart);\n      }\n\n      return super.getTokenFromCode(code);\n    }\n\n    updateContext(prevType: TokenType): void {\n      if (this.match(tt.braceL)) {\n        const curContext = this.curContext();\n        if (curContext === tc.j_oTag) {\n          this.state.context.push(tc.braceExpression);\n        } else if (curContext === tc.j_expr) {\n          this.state.context.push(tc.templateQuasi);\n        } else {\n          super.updateContext(prevType);\n        }\n        this.state.exprAllowed = true;\n      } else if (this.match(tt.slash) && prevType === tt.jsxTagStart) {\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\n        this.state.context.push(tc.j_cTag); // reconsider as closing tag context\n        this.state.exprAllowed = false;\n      } else {\n        return super.updateContext(prevType);\n      }\n    }\n  };\n","// @flow\nimport {\n  SCOPE_ARROW,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n  SCOPE_VAR,\n  SCOPE_CLASS,\n  BIND_SCOPE_FUNCTION,\n  BIND_SCOPE_VAR,\n  BIND_SCOPE_LEXICAL,\n  BIND_KIND_VALUE,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"./scopeflags\";\nimport * as N from \"../types\";\nimport { Errors } from \"../parser/location\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n  flags: ScopeFlags;\n  // A list of var-declared names in the current lexical scope\n  var: string[] = [];\n  // A list of lexically-declared names in the current lexical scope\n  lexical: string[] = [];\n  // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n  functions: string[] = [];\n\n  constructor(flags: ScopeFlags) {\n    this.flags = flags;\n  }\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler<IScope: Scope = Scope> {\n  scopeStack: Array<IScope> = [];\n  raise: raiseFunction;\n  inModule: boolean;\n  undefinedExports: Map<string, number> = new Map();\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction, inModule: boolean) {\n    this.raise = raise;\n    this.inModule = inModule;\n  }\n\n  get inFunction() {\n    return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get allowSuper() {\n    return (this.currentThisScope().flags & SCOPE_SUPER) > 0;\n  }\n  get allowDirectSuper() {\n    return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;\n  }\n  get inClass() {\n    return (this.currentThisScope().flags & SCOPE_CLASS) > 0;\n  }\n  get inNonArrowFunction() {\n    return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get treatFunctionsAsVar() {\n    return this.treatFunctionsAsVarInScope(this.currentScope());\n  }\n\n  createScope(flags: ScopeFlags): Scope {\n    return new Scope(flags);\n  }\n  // This method will be overwritten by subclasses\n  /*:: +createScope: (flags: ScopeFlags) => IScope; */\n\n  enter(flags: ScopeFlags) {\n    this.scopeStack.push(this.createScope(flags));\n  }\n\n  exit() {\n    this.scopeStack.pop();\n  }\n\n  // The spec says:\n  // > At the top level of a function, or script, function declarations are\n  // > treated like var declarations rather than like lexical declarations.\n  treatFunctionsAsVarInScope(scope: IScope): boolean {\n    return !!(\n      scope.flags & SCOPE_FUNCTION ||\n      (!this.inModule && scope.flags & SCOPE_PROGRAM)\n    );\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    let scope = this.currentScope();\n    if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) {\n      this.checkRedeclarationInScope(scope, name, bindingType, pos);\n\n      if (bindingType & BIND_SCOPE_FUNCTION) {\n        scope.functions.push(name);\n      } else {\n        scope.lexical.push(name);\n      }\n\n      if (bindingType & BIND_SCOPE_LEXICAL) {\n        this.maybeExportDefined(scope, name);\n      }\n    } else if (bindingType & BIND_SCOPE_VAR) {\n      for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n        scope = this.scopeStack[i];\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        scope.var.push(name);\n        this.maybeExportDefined(scope, name);\n\n        if (scope.flags & SCOPE_VAR) break;\n      }\n    }\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  maybeExportDefined(scope: IScope, name: string) {\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  checkRedeclarationInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n    pos: number,\n  ) {\n    if (this.isRedeclaredInScope(scope, name, bindingType)) {\n      this.raise(pos, Errors.VarRedeclaration, name);\n    }\n  }\n\n  isRedeclaredInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (!(bindingType & BIND_KIND_VALUE)) return false;\n\n    if (bindingType & BIND_SCOPE_LEXICAL) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        scope.functions.indexOf(name) > -1 ||\n        scope.var.indexOf(name) > -1\n      );\n    }\n\n    if (bindingType & BIND_SCOPE_FUNCTION) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        (!this.treatFunctionsAsVarInScope(scope) &&\n          scope.var.indexOf(name) > -1)\n      );\n    }\n\n    return (\n      (scope.lexical.indexOf(name) > -1 &&\n        !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name)) ||\n      (!this.treatFunctionsAsVarInScope(scope) &&\n        scope.functions.indexOf(name) > -1)\n    );\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1 &&\n      // In strict mode, scope.functions will always be empty.\n      // Modules are strict by default, but the `scriptMode` option\n      // can overwrite this behavior.\n      this.scopeStack[0].functions.indexOf(id.name) === -1\n    ) {\n      this.undefinedExports.set(id.name, id.start);\n    }\n  }\n\n  currentScope(): IScope {\n    return this.scopeStack[this.scopeStack.length - 1];\n  }\n\n  // $FlowIgnore\n  currentVarScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (scope.flags & SCOPE_VAR) {\n        return scope;\n      }\n    }\n  }\n\n  // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n  // $FlowIgnore\n  currentThisScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (\n        (scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) &&\n        !(scope.flags & SCOPE_ARROW)\n      ) {\n        return scope;\n      }\n    }\n  }\n}\n","// @flow\n\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n  BIND_KIND_TYPE,\n  BIND_FLAGS_TS_ENUM,\n  BIND_FLAGS_TS_CONST_ENUM,\n  BIND_FLAGS_TS_EXPORT_ONLY,\n  BIND_KIND_VALUE,\n  BIND_FLAGS_CLASS,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"../../util/scopeflags\";\nimport * as N from \"../../types\";\n\nclass TypeScriptScope extends Scope {\n  types: string[] = [];\n\n  // enums (which are also in .types)\n  enums: string[] = [];\n\n  // const enums (which are also in .enums and .types)\n  constEnums: string[] = [];\n\n  // classes (which are also in .lexical) and interface (which are also in .types)\n  classes: string[] = [];\n\n  // namespaces and ambient functions (or classes) are too difficult to track,\n  // especially without type analysis.\n  // We need to track them anyway, to avoid \"X is not defined\" errors\n  // when exporting them.\n  exportOnlyBindings: string[] = [];\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler<TypeScriptScope> {\n  createScope(flags: ScopeFlags): TypeScriptScope {\n    return new TypeScriptScope(flags);\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    const scope = this.currentScope();\n    if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) {\n      this.maybeExportDefined(scope, name);\n      scope.exportOnlyBindings.push(name);\n      return;\n    }\n\n    super.declareName(...arguments);\n\n    if (bindingType & BIND_KIND_TYPE) {\n      if (!(bindingType & BIND_KIND_VALUE)) {\n        // \"Value\" bindings have already been registered by the superclass.\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        this.maybeExportDefined(scope, name);\n      }\n      scope.types.push(name);\n    }\n    if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name);\n    if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name);\n    if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name);\n  }\n\n  isRedeclaredInScope(\n    scope: TypeScriptScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (scope.enums.indexOf(name) > -1) {\n      if (bindingType & BIND_FLAGS_TS_ENUM) {\n        // Enums can be merged with other enums if they are both\n        //  const or both non-const.\n        const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM);\n        const wasConst = scope.constEnums.indexOf(name) > -1;\n        return isConst !== wasConst;\n      }\n      return true;\n    }\n    if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) {\n      if (scope.lexical.indexOf(name) > -1) {\n        // Classes can be merged with interfaces\n        return !!(bindingType & BIND_KIND_VALUE);\n      } else {\n        // Interface can be merged with other classes or interfaces\n        return false;\n      }\n    }\n    if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) {\n      return true;\n    }\n\n    return super.isRedeclaredInScope(...arguments);\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].types.indexOf(id.name) === -1 &&\n      this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1\n    ) {\n      super.checkLocalExport(id);\n    }\n  }\n}\n","// @flow\nexport const PARAM = 0b000, // Initial Parameter flags\n  PARAM_YIELD = 0b001, // track [Yield] production parameter\n  PARAM_AWAIT = 0b010, // track [Await] production parameter\n  PARAM_RETURN = 0b100; // track [Return] production parameter\n\n// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above. Note that the [In] parameter is\n// tracked in `noIn` argument of `parseExpression`.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n//   async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n//     ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport type ParamKind = typeof PARAM | typeof PARAM_AWAIT | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n  stacks: Array<ParamKind> = [];\n  enter(flags: ParamKind) {\n    this.stacks.push(flags);\n  }\n\n  exit() {\n    this.stacks.pop();\n  }\n\n  currentFlags(): ParamKind {\n    return this.stacks[this.stacks.length - 1];\n  }\n\n  get hasAwait(): boolean {\n    return (this.currentFlags() & PARAM_AWAIT) > 0;\n  }\n\n  get hasYield(): boolean {\n    return (this.currentFlags() & PARAM_YIELD) > 0;\n  }\n\n  get hasReturn(): boolean {\n    return (this.currentFlags() & PARAM_RETURN) > 0;\n  }\n}\n\nexport function functionFlags(\n  isAsync: boolean,\n  isGenerator: boolean,\n): ParamKind {\n  return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type { TokenType } from \"../../tokenizer/types\";\nimport type State from \"../../tokenizer/state\";\nimport { types as tt } from \"../../tokenizer/types\";\nimport { types as ct } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport type { Pos, Position } from \"../../util/location\";\nimport type Parser from \"../../parser\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  SCOPE_TS_MODULE,\n  SCOPE_OTHER,\n  BIND_TS_ENUM,\n  BIND_TS_CONST_ENUM,\n  BIND_TS_TYPE,\n  BIND_TS_INTERFACE,\n  BIND_TS_AMBIENT,\n  BIND_TS_NAMESPACE,\n  BIND_CLASS,\n  BIND_LEXICAL,\n} from \"../../util/scopeflags\";\nimport TypeScriptScopeHandler from \"./scope\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { PARAM } from \"../../util/production-parameter\";\nimport { Errors } from \"../../parser/location\";\n\ntype TsModifier =\n  | \"readonly\"\n  | \"abstract\"\n  | \"declare\"\n  | \"static\"\n  | \"public\"\n  | \"private\"\n  | \"protected\";\n\nfunction nonNull<T>(x: ?T): T {\n  if (x == null) {\n    // $FlowIgnore\n    throw new Error(`Unexpected ${x} value.`);\n  }\n  return x;\n}\n\nfunction assert(x: boolean): void {\n  if (!x) {\n    throw new Error(\"Assert fail\");\n  }\n}\n\ntype ParsingContext =\n  | \"EnumMembers\"\n  | \"HeritageClauseElement\"\n  | \"TupleElementTypes\"\n  | \"TypeMembers\"\n  | \"TypeParametersOrArguments\";\n\nconst TSErrors = Object.freeze({\n  ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier\",\n  ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier\",\n  DeclareClassFieldHasInitializer:\n    \"'declare' class fields cannot have an initializer\",\n  DuplicateModifier: \"Duplicate modifier: '%0'\",\n  EmptyHeritageClauseType: \"'%0' list cannot be empty.\",\n  IndexSignatureHasAbstract:\n    \"Index signatures cannot have the 'abstract' modifier\",\n  IndexSignatureHasAccessibility:\n    \"Index signatures cannot have an accessibility modifier ('%0')\",\n  IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier\",\n  OptionalTypeBeforeRequired:\n    \"A required element cannot follow an optional element.\",\n  PatternIsOptional:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  PrivateElementHasAbstract:\n    \"Private elements cannot have the 'abstract' modifier.\",\n  PrivateElementHasAccessibility:\n    \"Private elements cannot have an accessibility modifier ('%0')\",\n  TemplateTypeHasSubstitution:\n    \"Template literal types cannot have any substitution\",\n  TypeAnnotationAfterAssign:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  UnexpectedReadonly:\n    \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n  UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n  UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n  UnsupportedImportTypeArgument:\n    \"Argument in a type import must be a string literal\",\n  UnsupportedParameterPropertyKind:\n    \"A parameter property may not be declared using a binding pattern.\",\n  UnsupportedSignatureParameterKind:\n    \"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0\",\n});\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\nfunction keywordTypeFromName(\n  value: string,\n): N.TsKeywordTypeType | typeof undefined {\n  switch (value) {\n    case \"any\":\n      return \"TSAnyKeyword\";\n    case \"boolean\":\n      return \"TSBooleanKeyword\";\n    case \"bigint\":\n      return \"TSBigIntKeyword\";\n    case \"never\":\n      return \"TSNeverKeyword\";\n    case \"number\":\n      return \"TSNumberKeyword\";\n    case \"object\":\n      return \"TSObjectKeyword\";\n    case \"string\":\n      return \"TSStringKeyword\";\n    case \"symbol\":\n      return \"TSSymbolKeyword\";\n    case \"undefined\":\n      return \"TSUndefinedKeyword\";\n    case \"unknown\":\n      return \"TSUnknownKeyword\";\n    default:\n      return undefined;\n  }\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    getScopeHandler(): Class<TypeScriptScopeHandler> {\n      return TypeScriptScopeHandler;\n    }\n\n    tsIsIdentifier(): boolean {\n      // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n      // See https://github.com/Microsoft/TypeScript/issues/15008\n      return this.match(tt.name);\n    }\n\n    tsNextTokenCanFollowModifier() {\n      // Note: TypeScript's implementation is much more complicated because\n      // more things are considered modifiers there.\n      // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n      // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n      this.next();\n      return (\n        !this.hasPrecedingLineBreak() &&\n        !this.match(tt.parenL) &&\n        !this.match(tt.parenR) &&\n        !this.match(tt.colon) &&\n        !this.match(tt.eq) &&\n        !this.match(tt.question) &&\n        !this.match(tt.bang)\n      );\n    }\n\n    /** Parses a modifier matching one the given modifier names. */\n    tsParseModifier<T: TsModifier>(allowedModifiers: T[]): ?T {\n      if (!this.match(tt.name)) {\n        return undefined;\n      }\n\n      const modifier = this.state.value;\n      if (\n        allowedModifiers.indexOf(modifier) !== -1 &&\n        this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))\n      ) {\n        return modifier;\n      }\n      return undefined;\n    }\n\n    /** Parses a list of modifiers, in any order.\n     *  If you need a specific order, you must call this function multiple times:\n     *    this.tsParseModifiers(node, [\"public\"]);\n     *    this.tsParseModifiers(node, [\"abstract\", \"readonly\"]);\n     */\n    tsParseModifiers<T: TsModifier>(\n      modified: { [key: TsModifier]: ?true },\n      allowedModifiers: T[],\n    ): void {\n      for (;;) {\n        const startPos = this.state.start;\n        const modifier: ?T = this.tsParseModifier(allowedModifiers);\n\n        if (!modifier) break;\n\n        if (Object.hasOwnProperty.call(modified, modifier)) {\n          this.raise(startPos, TSErrors.DuplicateModifier, modifier);\n        }\n        modified[modifier] = true;\n      }\n    }\n\n    tsIsListTerminator(kind: ParsingContext): boolean {\n      switch (kind) {\n        case \"EnumMembers\":\n        case \"TypeMembers\":\n          return this.match(tt.braceR);\n        case \"HeritageClauseElement\":\n          return this.match(tt.braceL);\n        case \"TupleElementTypes\":\n          return this.match(tt.bracketR);\n        case \"TypeParametersOrArguments\":\n          return this.isRelational(\">\");\n      }\n\n      throw new Error(\"Unreachable\");\n    }\n\n    tsParseList<T: N.Node>(kind: ParsingContext, parseElement: () => T): T[] {\n      const result: T[] = [];\n      while (!this.tsIsListTerminator(kind)) {\n        // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n        result.push(parseElement());\n      }\n      return result;\n    }\n\n    tsParseDelimitedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n    ): T[] {\n      return nonNull(\n        this.tsParseDelimitedListWorker(\n          kind,\n          parseElement,\n          /* expectSuccess */ true,\n        ),\n      );\n    }\n\n    /**\n     * If !expectSuccess, returns undefined instead of failing to parse.\n     * If expectSuccess, parseElement should always return a defined value.\n     */\n    tsParseDelimitedListWorker<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => ?T,\n      expectSuccess: boolean,\n    ): ?(T[]) {\n      const result = [];\n\n      for (;;) {\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        const element = parseElement();\n        if (element == null) {\n          return undefined;\n        }\n        result.push(element);\n\n        if (this.eat(tt.comma)) {\n          continue;\n        }\n\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        if (expectSuccess) {\n          // This will fail with an error about a missing comma\n          this.expect(tt.comma);\n        }\n        return undefined;\n      }\n\n      return result;\n    }\n\n    tsParseBracketedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n      bracket: boolean,\n      skipFirstToken: boolean,\n    ): T[] {\n      if (!skipFirstToken) {\n        if (bracket) {\n          this.expect(tt.bracketL);\n        } else {\n          this.expectRelational(\"<\");\n        }\n      }\n\n      const result = this.tsParseDelimitedList(kind, parseElement);\n\n      if (bracket) {\n        this.expect(tt.bracketR);\n      } else {\n        this.expectRelational(\">\");\n      }\n\n      return result;\n    }\n\n    tsParseImportType(): N.TsImportType {\n      const node: N.TsImportType = this.startNode();\n      this.expect(tt._import);\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument);\n      }\n\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.argument = this.parseExprAtom();\n      this.expect(tt.parenR);\n\n      if (this.eat(tt.dot)) {\n        node.qualifier = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSImportType\");\n    }\n\n    tsParseEntityName(allowReservedWords: boolean): N.TsEntityName {\n      let entity: N.TsEntityName = this.parseIdentifier();\n      while (this.eat(tt.dot)) {\n        const node: N.TsQualifiedName = this.startNodeAtNode(entity);\n        node.left = entity;\n        node.right = this.parseIdentifier(allowReservedWords);\n        entity = this.finishNode(node, \"TSQualifiedName\");\n      }\n      return entity;\n    }\n\n    tsParseTypeReference(): N.TsTypeReference {\n      const node: N.TsTypeReference = this.startNode();\n      node.typeName = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (!this.hasPrecedingLineBreak() && this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSTypeReference\");\n    }\n\n    tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n      this.next();\n      const node: N.TsTypePredicate = this.startNodeAtNode(lhs);\n      node.parameterName = lhs;\n      node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n      return this.finishNode(node, \"TSTypePredicate\");\n    }\n\n    tsParseThisTypeNode(): N.TsThisType {\n      const node: N.TsThisType = this.startNode();\n      this.next();\n      return this.finishNode(node, \"TSThisType\");\n    }\n\n    tsParseTypeQuery(): N.TsTypeQuery {\n      const node: N.TsTypeQuery = this.startNode();\n      this.expect(tt._typeof);\n      if (this.match(tt._import)) {\n        node.exprName = this.tsParseImportType();\n      } else {\n        node.exprName = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      return this.finishNode(node, \"TSTypeQuery\");\n    }\n\n    tsParseTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsEatThenParseType(tt._extends);\n      node.default = this.tsEatThenParseType(tt.eq);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {\n      if (this.isRelational(\"<\")) {\n        return this.tsParseTypeParameters();\n      }\n    }\n\n    tsParseTypeParameters() {\n      const node: N.TsTypeParameterDeclaration = this.startNode();\n\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      node.params = this.tsParseBracketedList(\n        \"TypeParametersOrArguments\",\n        this.tsParseTypeParameter.bind(this),\n        /* bracket */ false,\n        /* skipFirstToken */ true,\n      );\n      return this.finishNode(node, \"TSTypeParameterDeclaration\");\n    }\n\n    tsTryNextParseConstantContext(): ?N.TsTypeReference {\n      if (this.lookahead().type === tt._const) {\n        this.next();\n        return this.tsParseTypeReference();\n      }\n      return null;\n    }\n\n    // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n    // but here it's always false, because this is only used for types.\n    tsFillSignature(\n      returnToken: TokenType,\n      signature: N.TsSignatureDeclaration,\n    ): void {\n      // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n      const returnTokenRequired = returnToken === tt.arrow;\n      signature.typeParameters = this.tsTryParseTypeParameters();\n      this.expect(tt.parenL);\n      signature.parameters = this.tsParseBindingListForSignature();\n      if (returnTokenRequired) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      } else if (this.match(returnToken)) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      }\n    }\n\n    tsParseBindingListForSignature(): $ReadOnlyArray<\n      N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern,\n    > {\n      return this.parseBindingList(tt.parenR, charCodes.rightParenthesis).map(\n        pattern => {\n          if (\n            pattern.type !== \"Identifier\" &&\n            pattern.type !== \"RestElement\" &&\n            pattern.type !== \"ObjectPattern\" &&\n            pattern.type !== \"ArrayPattern\"\n          ) {\n            this.raise(\n              pattern.start,\n              TSErrors.UnsupportedSignatureParameterKind,\n              pattern.type,\n            );\n          }\n          return (pattern: any);\n        },\n      );\n    }\n\n    tsParseTypeMemberSemicolon(): void {\n      if (!this.eat(tt.comma)) {\n        this.semicolon();\n      }\n    }\n\n    tsParseSignatureMember(\n      kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n      node: N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration,\n    ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n      this.tsFillSignature(tt.colon, node);\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, kind);\n    }\n\n    tsIsUnambiguouslyIndexSignature() {\n      this.next(); // Skip '{'\n      return this.eat(tt.name) && this.match(tt.colon);\n    }\n\n    tsTryParseIndexSignature(node: N.Node): ?N.TsIndexSignature {\n      if (\n        !(\n          this.match(tt.bracketL) &&\n          this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n        )\n      ) {\n        return undefined;\n      }\n\n      this.expect(tt.bracketL);\n      const id = this.parseIdentifier();\n      id.typeAnnotation = this.tsParseTypeAnnotation();\n      this.resetEndLocation(id); // set end position to end of type\n\n      this.expect(tt.bracketR);\n      node.parameters = [id];\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, \"TSIndexSignature\");\n    }\n\n    tsParsePropertyOrMethodSignature(\n      node: N.TsPropertySignature | N.TsMethodSignature,\n      readonly: boolean,\n    ): N.TsPropertySignature | N.TsMethodSignature {\n      if (this.eat(tt.question)) node.optional = true;\n      const nodeAny: any = node;\n\n      if (!readonly && (this.match(tt.parenL) || this.isRelational(\"<\"))) {\n        const method: N.TsMethodSignature = nodeAny;\n        this.tsFillSignature(tt.colon, method);\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(method, \"TSMethodSignature\");\n      } else {\n        const property: N.TsPropertySignature = nodeAny;\n        if (readonly) property.readonly = true;\n        const type = this.tsTryParseTypeAnnotation();\n        if (type) property.typeAnnotation = type;\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(property, \"TSPropertySignature\");\n      }\n    }\n\n    tsParseTypeMember(): N.TsTypeElement {\n      const node: any = this.startNode();\n\n      if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n        return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n      }\n\n      if (this.match(tt._new)) {\n        const id: N.Identifier = this.startNode();\n        this.next();\n        if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          return this.tsParseSignatureMember(\n            \"TSConstructSignatureDeclaration\",\n            node,\n          );\n        } else {\n          node.key = this.createIdentifier(id, \"new\");\n          return this.tsParsePropertyOrMethodSignature(node, false);\n        }\n      }\n\n      const readonly = !!this.tsParseModifier([\"readonly\"]);\n\n      const idx = this.tsTryParseIndexSignature(node);\n      if (idx) {\n        if (readonly) node.readonly = true;\n        return idx;\n      }\n\n      this.parsePropertyName(node, /* isPrivateNameAllowed */ false);\n      return this.tsParsePropertyOrMethodSignature(node, readonly);\n    }\n\n    tsParseTypeLiteral(): N.TsTypeLiteral {\n      const node: N.TsTypeLiteral = this.startNode();\n      node.members = this.tsParseObjectTypeMembers();\n      return this.finishNode(node, \"TSTypeLiteral\");\n    }\n\n    tsParseObjectTypeMembers(): $ReadOnlyArray<N.TsTypeElement> {\n      this.expect(tt.braceL);\n      const members = this.tsParseList(\n        \"TypeMembers\",\n        this.tsParseTypeMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return members;\n    }\n\n    tsIsStartOfMappedType(): boolean {\n      this.next();\n      if (this.eat(tt.plusMin)) {\n        return this.isContextual(\"readonly\");\n      }\n      if (this.isContextual(\"readonly\")) {\n        this.next();\n      }\n      if (!this.match(tt.bracketL)) {\n        return false;\n      }\n      this.next();\n      if (!this.tsIsIdentifier()) {\n        return false;\n      }\n      this.next();\n      return this.match(tt._in);\n    }\n\n    tsParseMappedTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsExpectThenParseType(tt._in);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsParseMappedType(): N.TsMappedType {\n      const node: N.TsMappedType = this.startNode();\n\n      this.expect(tt.braceL);\n\n      if (this.match(tt.plusMin)) {\n        node.readonly = this.state.value;\n        this.next();\n        this.expectContextual(\"readonly\");\n      } else if (this.eatContextual(\"readonly\")) {\n        node.readonly = true;\n      }\n\n      this.expect(tt.bracketL);\n      node.typeParameter = this.tsParseMappedTypeParameter();\n      this.expect(tt.bracketR);\n\n      if (this.match(tt.plusMin)) {\n        node.optional = this.state.value;\n        this.next();\n        this.expect(tt.question);\n      } else if (this.eat(tt.question)) {\n        node.optional = true;\n      }\n\n      node.typeAnnotation = this.tsTryParseType();\n      this.semicolon();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"TSMappedType\");\n    }\n\n    tsParseTupleType(): N.TsTupleType {\n      const node: N.TsTupleType = this.startNode();\n      node.elementTypes = this.tsParseBracketedList(\n        \"TupleElementTypes\",\n        this.tsParseTupleElementType.bind(this),\n        /* bracket */ true,\n        /* skipFirstToken */ false,\n      );\n\n      // Validate the elementTypes to ensure:\n      //   No mandatory elements may follow optional elements\n      //   If there's a rest element, it must be at the end of the tuple\n      let seenOptionalElement = false;\n      node.elementTypes.forEach(elementNode => {\n        if (elementNode.type === \"TSOptionalType\") {\n          seenOptionalElement = true;\n        } else if (seenOptionalElement && elementNode.type !== \"TSRestType\") {\n          this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired);\n        }\n      });\n\n      return this.finishNode(node, \"TSTupleType\");\n    }\n\n    tsParseTupleElementType(): N.TsType {\n      // parses `...TsType[]`\n      if (this.match(tt.ellipsis)) {\n        const restNode: N.TsRestType = this.startNode();\n        this.next(); // skips ellipsis\n        restNode.typeAnnotation = this.tsParseType();\n        if (\n          this.match(tt.comma) &&\n          this.lookaheadCharCode() !== charCodes.rightSquareBracket\n        ) {\n          this.raiseRestNotLast(this.state.start);\n        }\n        return this.finishNode(restNode, \"TSRestType\");\n      }\n\n      const type = this.tsParseType();\n      // parses `TsType?`\n      if (this.eat(tt.question)) {\n        const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type);\n        optionalTypeNode.typeAnnotation = type;\n        return this.finishNode(optionalTypeNode, \"TSOptionalType\");\n      }\n      return type;\n    }\n\n    tsParseParenthesizedType(): N.TsParenthesizedType {\n      const node = this.startNode();\n      this.expect(tt.parenL);\n      node.typeAnnotation = this.tsParseType();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSParenthesizedType\");\n    }\n\n    tsParseFunctionOrConstructorType(\n      type: \"TSFunctionType\" | \"TSConstructorType\",\n    ): N.TsFunctionOrConstructorType {\n      const node: N.TsFunctionOrConstructorType = this.startNode();\n      if (type === \"TSConstructorType\") {\n        this.expect(tt._new);\n      }\n      this.tsFillSignature(tt.arrow, node);\n      return this.finishNode(node, type);\n    }\n\n    tsParseLiteralTypeNode(): N.TsLiteralType {\n      const node: N.TsLiteralType = this.startNode();\n      node.literal = (() => {\n        switch (this.state.type) {\n          case tt.num:\n          case tt.string:\n          case tt._true:\n          case tt._false:\n            // For compatibility to estree we cannot call parseLiteral directly here\n            return this.parseExprAtom();\n          default:\n            throw this.unexpected();\n        }\n      })();\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseTemplateLiteralType(): N.TsType {\n      const node: N.TsLiteralType = this.startNode();\n      const templateNode = this.parseTemplate(false);\n      if (templateNode.expressions.length > 0) {\n        this.raise(\n          templateNode.expressions[0].start,\n          TSErrors.TemplateTypeHasSubstitution,\n        );\n      }\n      node.literal = templateNode;\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n      const thisKeyword = this.tsParseThisTypeNode();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        return this.tsParseThisTypePredicate(thisKeyword);\n      } else {\n        return thisKeyword;\n      }\n    }\n\n    tsParseNonArrayType(): N.TsType {\n      switch (this.state.type) {\n        case tt.name:\n        case tt._void:\n        case tt._null: {\n          const type = this.match(tt._void)\n            ? \"TSVoidKeyword\"\n            : this.match(tt._null)\n            ? \"TSNullKeyword\"\n            : keywordTypeFromName(this.state.value);\n          if (\n            type !== undefined &&\n            this.lookaheadCharCode() !== charCodes.dot\n          ) {\n            const node: N.TsKeywordType = this.startNode();\n            this.next();\n            return this.finishNode(node, type);\n          }\n          return this.tsParseTypeReference();\n        }\n        case tt.string:\n        case tt.num:\n        case tt._true:\n        case tt._false:\n          return this.tsParseLiteralTypeNode();\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            const node: N.TsLiteralType = this.startNode();\n            if (this.lookahead().type !== tt.num) {\n              throw this.unexpected();\n            }\n            node.literal = this.parseMaybeUnary();\n            return this.finishNode(node, \"TSLiteralType\");\n          }\n          break;\n        case tt._this:\n          return this.tsParseThisTypeOrThisTypePredicate();\n        case tt._typeof:\n          return this.tsParseTypeQuery();\n        case tt._import:\n          return this.tsParseImportType();\n        case tt.braceL:\n          return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n            ? this.tsParseMappedType()\n            : this.tsParseTypeLiteral();\n        case tt.bracketL:\n          return this.tsParseTupleType();\n        case tt.parenL:\n          return this.tsParseParenthesizedType();\n        case tt.backQuote:\n          return this.tsParseTemplateLiteralType();\n      }\n\n      throw this.unexpected();\n    }\n\n    tsParseArrayTypeOrHigher(): N.TsType {\n      let type = this.tsParseNonArrayType();\n      while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n        if (this.match(tt.bracketR)) {\n          const node: N.TsArrayType = this.startNodeAtNode(type);\n          node.elementType = type;\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSArrayType\");\n        } else {\n          const node: N.TsIndexedAccessType = this.startNodeAtNode(type);\n          node.objectType = type;\n          node.indexType = this.tsParseType();\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSIndexedAccessType\");\n        }\n      }\n      return type;\n    }\n\n    tsParseTypeOperator(\n      operator: \"keyof\" | \"unique\" | \"readonly\",\n    ): N.TsTypeOperator {\n      const node: N.TsTypeOperator = this.startNode();\n      this.expectContextual(operator);\n      node.operator = operator;\n      node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n      if (operator === \"readonly\") {\n        this.tsCheckTypeAnnotationForReadOnly(node);\n      }\n\n      return this.finishNode(node, \"TSTypeOperator\");\n    }\n\n    tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n      switch (node.typeAnnotation.type) {\n        case \"TSTupleType\":\n        case \"TSArrayType\":\n          return;\n        default:\n          this.raise(node.start, TSErrors.UnexpectedReadonly);\n      }\n    }\n\n    tsParseInferType(): N.TsInferType {\n      const node = this.startNode();\n      this.expectContextual(\"infer\");\n      const typeParameter = this.startNode();\n      typeParameter.name = this.parseIdentifierName(typeParameter.start);\n      node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n      return this.finishNode(node, \"TSInferType\");\n    }\n\n    tsParseTypeOperatorOrHigher(): N.TsType {\n      const operator = [\"keyof\", \"unique\", \"readonly\"].find(kw =>\n        this.isContextual(kw),\n      );\n      return operator\n        ? this.tsParseTypeOperator(operator)\n        : this.isContextual(\"infer\")\n        ? this.tsParseInferType()\n        : this.tsParseArrayTypeOrHigher();\n    }\n\n    tsParseUnionOrIntersectionType(\n      kind: \"TSUnionType\" | \"TSIntersectionType\",\n      parseConstituentType: () => N.TsType,\n      operator: TokenType,\n    ): N.TsType {\n      this.eat(operator);\n      let type = parseConstituentType();\n      if (this.match(operator)) {\n        const types = [type];\n        while (this.eat(operator)) {\n          types.push(parseConstituentType());\n        }\n        const node: N.TsUnionType | N.TsIntersectionType = this.startNodeAtNode(\n          type,\n        );\n        node.types = types;\n        type = this.finishNode(node, kind);\n      }\n      return type;\n    }\n\n    tsParseIntersectionTypeOrHigher(): N.TsType {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSIntersectionType\",\n        this.tsParseTypeOperatorOrHigher.bind(this),\n        tt.bitwiseAND,\n      );\n    }\n\n    tsParseUnionTypeOrHigher() {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSUnionType\",\n        this.tsParseIntersectionTypeOrHigher.bind(this),\n        tt.bitwiseOR,\n      );\n    }\n\n    tsIsStartOfFunctionType() {\n      if (this.isRelational(\"<\")) {\n        return true;\n      }\n      return (\n        this.match(tt.parenL) &&\n        this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n      );\n    }\n\n    tsSkipParameterStart(): boolean {\n      if (this.match(tt.name) || this.match(tt._this)) {\n        this.next();\n        return true;\n      }\n\n      if (this.match(tt.braceL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.braceL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.braceR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      if (this.match(tt.bracketL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.bracketL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.bracketR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      return false;\n    }\n\n    tsIsUnambiguouslyStartOfFunctionType(): boolean {\n      this.next();\n      if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n        // ( )\n        // ( ...\n        return true;\n      }\n      if (this.tsSkipParameterStart()) {\n        if (\n          this.match(tt.colon) ||\n          this.match(tt.comma) ||\n          this.match(tt.question) ||\n          this.match(tt.eq)\n        ) {\n          // ( xxx :\n          // ( xxx ,\n          // ( xxx ?\n          // ( xxx =\n          return true;\n        }\n        if (this.match(tt.parenR)) {\n          this.next();\n          if (this.match(tt.arrow)) {\n            // ( xxx ) =>\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n\n    tsParseTypeOrTypePredicateAnnotation(\n      returnToken: TokenType,\n    ): N.TsTypeAnnotation {\n      return this.tsInType(() => {\n        const t: N.TsTypeAnnotation = this.startNode();\n        this.expect(returnToken);\n\n        const asserts = this.tsTryParse(\n          this.tsParseTypePredicateAsserts.bind(this),\n        );\n\n        if (asserts && this.match(tt._this)) {\n          // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n          // : asserts this is type\n          let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n          // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n          // : asserts this\n          if (thisTypePredicate.type === \"TSThisType\") {\n            const node: N.TsTypePredicate = this.startNodeAtNode(t);\n            node.parameterName = (thisTypePredicate: N.TsThisType);\n            node.asserts = true;\n            thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n          } else {\n            (thisTypePredicate: N.TsTypePredicate).asserts = true;\n          }\n          t.typeAnnotation = thisTypePredicate;\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        const typePredicateVariable =\n          this.tsIsIdentifier() &&\n          this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n        if (!typePredicateVariable) {\n          if (!asserts) {\n            // : type\n            return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n          }\n\n          const node: N.TsTypePredicate = this.startNodeAtNode(t);\n          // : asserts foo\n          node.parameterName = this.parseIdentifier();\n          node.asserts = asserts;\n          t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        // : asserts foo is type\n        const type = this.tsParseTypeAnnotation(/* eatColon */ false);\n        const node = this.startNodeAtNode(t);\n        node.parameterName = typePredicateVariable;\n        node.typeAnnotation = type;\n        node.asserts = asserts;\n        t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n        return this.finishNode(t, \"TSTypeAnnotation\");\n      });\n    }\n\n    tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon)\n        ? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)\n        : undefined;\n    }\n\n    tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;\n    }\n\n    tsTryParseType(): ?N.TsType {\n      return this.tsEatThenParseType(tt.colon);\n    }\n\n    tsParseTypePredicatePrefix(): ?N.Identifier {\n      const id = this.parseIdentifier();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        this.next();\n        return id;\n      }\n    }\n\n    tsParseTypePredicateAsserts(): boolean {\n      if (\n        !this.match(tt.name) ||\n        this.state.value !== \"asserts\" ||\n        this.hasPrecedingLineBreak()\n      ) {\n        return false;\n      }\n      const containsEsc = this.state.containsEsc;\n      this.next();\n      if (!this.match(tt.name) && !this.match(tt._this)) {\n        return false;\n      }\n\n      if (containsEsc) {\n        this.raise(\n          this.state.lastTokStart,\n          Errors.InvalidEscapedReservedWord,\n          \"asserts\",\n        );\n      }\n\n      return true;\n    }\n\n    tsParseTypeAnnotation(\n      eatColon = true,\n      t: N.TsTypeAnnotation = this.startNode(),\n    ): N.TsTypeAnnotation {\n      this.tsInType(() => {\n        if (eatColon) this.expect(tt.colon);\n        t.typeAnnotation = this.tsParseType();\n      });\n      return this.finishNode(t, \"TSTypeAnnotation\");\n    }\n\n    /** Be sure to be in a type context before calling this, using `tsInType`. */\n    tsParseType(): N.TsType {\n      // Need to set `state.inType` so that we don't parse JSX in a type context.\n      assert(this.state.inType);\n      const type = this.tsParseNonConditionalType();\n      if (this.hasPrecedingLineBreak() || !this.eat(tt._extends)) {\n        return type;\n      }\n      const node: N.TsConditionalType = this.startNodeAtNode(type);\n      node.checkType = type;\n      node.extendsType = this.tsParseNonConditionalType();\n      this.expect(tt.question);\n      node.trueType = this.tsParseType();\n      this.expect(tt.colon);\n      node.falseType = this.tsParseType();\n      return this.finishNode(node, \"TSConditionalType\");\n    }\n\n    tsParseNonConditionalType(): N.TsType {\n      if (this.tsIsStartOfFunctionType()) {\n        return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n      }\n      if (this.match(tt._new)) {\n        // As in `new () => Date`\n        return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n      }\n      return this.tsParseUnionTypeOrHigher();\n    }\n\n    tsParseTypeAssertion(): N.TsTypeAssertion {\n      const node: N.TsTypeAssertion = this.startNode();\n      const _const = this.tsTryNextParseConstantContext();\n      node.typeAnnotation = _const || this.tsNextThenParseType();\n      this.expectRelational(\">\");\n      node.expression = this.parseMaybeUnary();\n      return this.finishNode(node, \"TSTypeAssertion\");\n    }\n\n    tsParseHeritageClause(\n      descriptor: string,\n    ): $ReadOnlyArray<N.TsExpressionWithTypeArguments> {\n      const originalStart = this.state.start;\n\n      const delimitedList = this.tsParseDelimitedList(\n        \"HeritageClauseElement\",\n        this.tsParseExpressionWithTypeArguments.bind(this),\n      );\n\n      if (!delimitedList.length) {\n        this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor);\n      }\n\n      return delimitedList;\n    }\n\n    tsParseExpressionWithTypeArguments(): N.TsExpressionWithTypeArguments {\n      const node: N.TsExpressionWithTypeArguments = this.startNode();\n      // Note: TS uses parseLeftHandSideExpressionOrHigher,\n      // then has grammar errors later if it's not an EntityName.\n      node.expression = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n\n      return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n    }\n\n    tsParseInterfaceDeclaration(\n      node: N.TsInterfaceDeclaration,\n    ): N.TsInterfaceDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_TS_INTERFACE,\n        undefined,\n        \"typescript interface declaration\",\n      );\n      node.typeParameters = this.tsTryParseTypeParameters();\n      if (this.eat(tt._extends)) {\n        node.extends = this.tsParseHeritageClause(\"extends\");\n      }\n      const body: N.TSInterfaceBody = this.startNode();\n      body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n      node.body = this.finishNode(body, \"TSInterfaceBody\");\n      return this.finishNode(node, \"TSInterfaceDeclaration\");\n    }\n\n    tsParseTypeAliasDeclaration(\n      node: N.TsTypeAliasDeclaration,\n    ): N.TsTypeAliasDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(node.id, BIND_TS_TYPE, undefined, \"typescript type alias\");\n\n      node.typeParameters = this.tsTryParseTypeParameters();\n      node.typeAnnotation = this.tsExpectThenParseType(tt.eq);\n      this.semicolon();\n      return this.finishNode(node, \"TSTypeAliasDeclaration\");\n    }\n\n    tsInNoContext<T>(cb: () => T): T {\n      const oldContext = this.state.context;\n      this.state.context = [oldContext[0]];\n      try {\n        return cb();\n      } finally {\n        this.state.context = oldContext;\n      }\n    }\n\n    /**\n     * Runs `cb` in a type context.\n     * This should be called one token *before* the first type token,\n     * so that the call to `next()` is run in type context.\n     */\n    tsInType<T>(cb: () => T): T {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      try {\n        return cb();\n      } finally {\n        this.state.inType = oldInType;\n      }\n    }\n\n    tsEatThenParseType(token: TokenType): N.TsType | typeof undefined {\n      return !this.match(token) ? undefined : this.tsNextThenParseType();\n    }\n\n    tsExpectThenParseType(token: TokenType): N.TsType {\n      return this.tsDoThenParseType(() => this.expect(token));\n    }\n\n    tsNextThenParseType(): N.TsType {\n      return this.tsDoThenParseType(() => this.next());\n    }\n\n    tsDoThenParseType(cb: () => void): N.TsType {\n      return this.tsInType(() => {\n        cb();\n        return this.tsParseType();\n      });\n    }\n\n    tsParseEnumMember(): N.TsEnumMember {\n      const node: N.TsEnumMember = this.startNode();\n      // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n      node.id = this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(/* liberal */ true);\n      if (this.eat(tt.eq)) {\n        node.initializer = this.parseMaybeAssign();\n      }\n      return this.finishNode(node, \"TSEnumMember\");\n    }\n\n    tsParseEnumDeclaration(\n      node: N.TsEnumDeclaration,\n      isConst: boolean,\n    ): N.TsEnumDeclaration {\n      if (isConst) node.const = true;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM,\n        undefined,\n        \"typescript enum declaration\",\n      );\n\n      this.expect(tt.braceL);\n      node.members = this.tsParseDelimitedList(\n        \"EnumMembers\",\n        this.tsParseEnumMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"TSEnumDeclaration\");\n    }\n\n    tsParseModuleBlock(): N.TsModuleBlock {\n      const node: N.TsModuleBlock = this.startNode();\n      this.scope.enter(SCOPE_OTHER);\n\n      this.expect(tt.braceL);\n      // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n      this.parseBlockOrModuleBlockBody(\n        (node.body = []),\n        /* directives */ undefined,\n        /* topLevel */ true,\n        /* end */ tt.braceR,\n      );\n      this.scope.exit();\n      return this.finishNode(node, \"TSModuleBlock\");\n    }\n\n    tsParseModuleOrNamespaceDeclaration(\n      node: N.TsModuleDeclaration,\n      nested?: boolean = false,\n    ): N.TsModuleDeclaration {\n      node.id = this.parseIdentifier();\n\n      if (!nested) {\n        this.checkLVal(\n          node.id,\n          BIND_TS_NAMESPACE,\n          null,\n          \"module or namespace declaration\",\n        );\n      }\n\n      if (this.eat(tt.dot)) {\n        const inner = this.startNode();\n        this.tsParseModuleOrNamespaceDeclaration(inner, true);\n        node.body = inner;\n      } else {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      }\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseAmbientExternalModuleDeclaration(\n      node: N.TsModuleDeclaration,\n    ): N.TsModuleDeclaration {\n      if (this.isContextual(\"global\")) {\n        node.global = true;\n        node.id = this.parseIdentifier();\n      } else if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        this.unexpected();\n      }\n      if (this.match(tt.braceL)) {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      } else {\n        this.semicolon();\n      }\n\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseImportEqualsDeclaration(\n      node: N.TsImportEqualsDeclaration,\n      isExport?: boolean,\n    ): N.TsImportEqualsDeclaration {\n      node.isExport = isExport || false;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_LEXICAL,\n        undefined,\n        \"import equals declaration\",\n      );\n      this.expect(tt.eq);\n      node.moduleReference = this.tsParseModuleReference();\n      this.semicolon();\n      return this.finishNode(node, \"TSImportEqualsDeclaration\");\n    }\n\n    tsIsExternalModuleReference(): boolean {\n      return (\n        this.isContextual(\"require\") &&\n        this.lookaheadCharCode() === charCodes.leftParenthesis\n      );\n    }\n\n    tsParseModuleReference(): N.TsModuleReference {\n      return this.tsIsExternalModuleReference()\n        ? this.tsParseExternalModuleReference()\n        : this.tsParseEntityName(/* allowReservedWords */ false);\n    }\n\n    tsParseExternalModuleReference(): N.TsExternalModuleReference {\n      const node: N.TsExternalModuleReference = this.startNode();\n      this.expectContextual(\"require\");\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        throw this.unexpected();\n      }\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.expression = this.parseExprAtom();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSExternalModuleReference\");\n    }\n\n    // Utilities\n\n    tsLookAhead<T>(f: () => T): T {\n      const state = this.state.clone();\n      const res = f();\n      this.state = state;\n      return res;\n    }\n\n    tsTryParseAndCatch<T: ?N.NodeBase>(f: () => T): ?T {\n      const result = this.tryParse(abort => f() || abort());\n\n      if (result.aborted || !result.node) return undefined;\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    tsTryParse<T>(f: () => ?T): ?T {\n      const state = this.state.clone();\n      const result = f();\n      if (result !== undefined && result !== false) {\n        return result;\n      } else {\n        this.state = state;\n        return undefined;\n      }\n    }\n\n    tsTryParseDeclare(nany: any): ?N.Declaration {\n      if (this.isLineTerminator()) {\n        return;\n      }\n      let starttype = this.state.type;\n      let kind;\n\n      if (this.isContextual(\"let\")) {\n        starttype = tt._var;\n        kind = \"let\";\n      }\n\n      switch (starttype) {\n        case tt._function:\n          return this.parseFunctionStatement(\n            nany,\n            /* async */ false,\n            /* declarationPosition */ true,\n          );\n        case tt._class:\n          // While this is also set by tsParseExpressionStatement, we need to set it\n          // before parsing the class declaration to now how to register it in the scope.\n          nany.declare = true;\n          return this.parseClass(\n            nany,\n            /* isStatement */ true,\n            /* optionalId */ false,\n          );\n        case tt._const:\n          if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n            // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n            this.expect(tt._const);\n            this.expectContextual(\"enum\");\n            return this.tsParseEnumDeclaration(nany, /* isConst */ true);\n          }\n        // falls through\n        case tt._var:\n          kind = kind || this.state.value;\n          return this.parseVarStatement(nany, kind);\n        case tt.name: {\n          const value = this.state.value;\n          if (value === \"global\") {\n            return this.tsParseAmbientExternalModuleDeclaration(nany);\n          } else {\n            return this.tsParseDeclaration(nany, value, /* next */ true);\n          }\n        }\n      }\n    }\n\n    // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n    tsTryParseExportDeclaration(): ?N.Declaration {\n      return this.tsParseDeclaration(\n        this.startNode(),\n        this.state.value,\n        /* next */ true,\n      );\n    }\n\n    tsParseExpressionStatement(node: any, expr: N.Identifier): ?N.Declaration {\n      switch (expr.name) {\n        case \"declare\": {\n          const declaration = this.tsTryParseDeclare(node);\n          if (declaration) {\n            declaration.declare = true;\n            return declaration;\n          }\n          break;\n        }\n        case \"global\":\n          // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n          // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n          if (this.match(tt.braceL)) {\n            this.scope.enter(SCOPE_TS_MODULE);\n            this.prodParam.enter(PARAM);\n            const mod: N.TsModuleDeclaration = node;\n            mod.global = true;\n            mod.id = expr;\n            mod.body = this.tsParseModuleBlock();\n            this.scope.exit();\n            this.prodParam.exit();\n            return this.finishNode(mod, \"TSModuleDeclaration\");\n          }\n          break;\n\n        default:\n          return this.tsParseDeclaration(node, expr.name, /* next */ false);\n      }\n    }\n\n    // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n    tsParseDeclaration(\n      node: any,\n      value: string,\n      next: boolean,\n    ): ?N.Declaration {\n      switch (value) {\n        case \"abstract\":\n          if (this.tsCheckLineTerminatorAndMatch(tt._class, next)) {\n            const cls: N.ClassDeclaration = node;\n            cls.abstract = true;\n            if (next) {\n              this.next();\n              if (!this.match(tt._class)) {\n                this.unexpected(null, tt._class);\n              }\n            }\n            return this.parseClass(\n              cls,\n              /* isStatement */ true,\n              /* optionalId */ false,\n            );\n          }\n          break;\n\n        case \"enum\":\n          if (next || this.match(tt.name)) {\n            if (next) this.next();\n            return this.tsParseEnumDeclaration(node, /* isConst */ false);\n          }\n          break;\n\n        case \"interface\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseInterfaceDeclaration(node);\n          }\n          break;\n\n        case \"module\":\n          if (next) this.next();\n          if (this.match(tt.string)) {\n            return this.tsParseAmbientExternalModuleDeclaration(node);\n          } else if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"namespace\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"type\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseTypeAliasDeclaration(node);\n          }\n          break;\n      }\n    }\n\n    tsCheckLineTerminatorAndMatch(tokenType: TokenType, next: boolean) {\n      return (next || this.match(tokenType)) && !this.isLineTerminator();\n    }\n\n    tsTryParseGenericAsyncArrowFunction(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      if (!this.isRelational(\"<\")) {\n        return undefined;\n      }\n\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      const res: ?N.ArrowFunctionExpression = this.tsTryParseAndCatch(() => {\n        const node: N.ArrowFunctionExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.typeParameters = this.tsParseTypeParameters();\n        // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n        super.parseFunctionParams(node);\n        node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n        this.expect(tt.arrow);\n        return node;\n      });\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n\n      if (!res) {\n        return undefined;\n      }\n\n      return this.parseArrowExpression(\n        res,\n        /* params are already set */ null,\n        /* async */ true,\n      );\n    }\n\n    tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n      const node = this.startNode();\n      node.params = this.tsInType(() =>\n        // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n        this.tsInNoContext(() => {\n          this.expectRelational(\"<\");\n          return this.tsParseDelimitedList(\n            \"TypeParametersOrArguments\",\n            this.tsParseType.bind(this),\n          );\n        }),\n      );\n      // This reads the next token after the `>` too, so do this in the enclosing context.\n      // But be sure not to parse a regex in the jsx expression `<C<number> />`, so set exprAllowed = false\n      this.state.exprAllowed = false;\n      this.expectRelational(\">\");\n      return this.finishNode(node, \"TSTypeParameterInstantiation\");\n    }\n\n    tsIsDeclarationStart(): boolean {\n      if (this.match(tt.name)) {\n        switch (this.state.value) {\n          case \"abstract\":\n          case \"declare\":\n          case \"enum\":\n          case \"interface\":\n          case \"module\":\n          case \"namespace\":\n          case \"type\":\n            return true;\n        }\n      }\n\n      return false;\n    }\n\n    // ======================================================\n    // OVERRIDES\n    // ======================================================\n\n    isExportDefaultSpecifier(): boolean {\n      if (this.tsIsDeclarationStart()) return false;\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseAssignableListItem(\n      allowModifiers: ?boolean,\n      decorators: N.Decorator[],\n    ): N.Pattern | N.TSParameterProperty {\n      // Store original location/position to include modifiers in range\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      let accessibility: ?N.Accessibility;\n      let readonly = false;\n      if (allowModifiers) {\n        accessibility = this.parseAccessModifier();\n        readonly = !!this.tsParseModifier([\"readonly\"]);\n      }\n\n      const left = this.parseMaybeDefault();\n      this.parseAssignableListItemTypes(left);\n      const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n      if (accessibility || readonly) {\n        const pp: N.TSParameterProperty = this.startNodeAt(startPos, startLoc);\n        if (decorators.length) {\n          pp.decorators = decorators;\n        }\n        if (accessibility) pp.accessibility = accessibility;\n        if (readonly) pp.readonly = readonly;\n        if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n          this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind);\n        }\n        pp.parameter = ((elt: any): N.Identifier | N.AssignmentPattern);\n        return this.finishNode(pp, \"TSParameterProperty\");\n      }\n\n      if (decorators.length) {\n        left.decorators = decorators;\n      }\n\n      return elt;\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n      }\n\n      const bodilessType =\n        type === \"FunctionDeclaration\"\n          ? \"TSDeclareFunction\"\n          : type === \"ClassMethod\"\n          ? \"TSDeclareMethod\"\n          : undefined;\n      if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n        this.finishNode(node, bodilessType);\n        return;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    registerFunctionStatementId(node: N.Function): void {\n      if (!node.body && node.id) {\n        // Function ids are validated after parsing their body.\n        // For bodyless function, we need to do it here.\n        this.checkLVal(node.id, BIND_TS_AMBIENT, null, \"function name\");\n      } else {\n        super.registerFunctionStatementId(...arguments);\n      }\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      state: N.ParseSubscriptState,\n    ): N.Expression {\n      if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n        this.state.exprAllowed = false;\n        this.next();\n\n        const nonNullExpression: N.TsNonNullExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        nonNullExpression.expression = base;\n        return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n      }\n\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // There are number of things we are going to \"maybe\" parse, like type arguments on\n        // tagged template expressions. If any of them fail, walk it back and continue.\n        const result = this.tsTryParseAndCatch(() => {\n          if (!noCalls && this.atPossibleAsyncArrow(base)) {\n            // Almost certainly this is a generic async function `async <T>() => ...\n            // But it might be a call with a type argument `async<T>();`\n            const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(\n              startPos,\n              startLoc,\n            );\n            if (asyncArrowFn) {\n              return asyncArrowFn;\n            }\n          }\n\n          const node: N.CallExpression = this.startNodeAt(startPos, startLoc);\n          node.callee = base;\n\n          const typeArguments = this.tsParseTypeArguments();\n\n          if (typeArguments) {\n            if (!noCalls && this.eat(tt.parenL)) {\n              // possibleAsync always false here, because we would have handled it above.\n              // $FlowIgnore (won't be any undefined arguments)\n              node.arguments = this.parseCallExpressionArguments(\n                tt.parenR,\n                /* possibleAsync */ false,\n              );\n              node.typeParameters = typeArguments;\n              return this.finishCallExpression(node, state.optionalChainMember);\n            } else if (this.match(tt.backQuote)) {\n              return this.parseTaggedTemplateExpression(\n                startPos,\n                startLoc,\n                base,\n                state,\n                typeArguments,\n              );\n            }\n          }\n\n          this.unexpected();\n        });\n\n        if (result) return result;\n      }\n\n      return super.parseSubscript(base, startPos, startLoc, noCalls, state);\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // 99% certain this is `new C<T>();`. But may be `new C < T;`, which is also legal.\n        const typeParameters = this.tsTryParseAndCatch(() => {\n          const args = this.tsParseTypeArguments();\n          if (!this.match(tt.parenL)) this.unexpected();\n          return args;\n        });\n        if (typeParameters) {\n          node.typeParameters = typeParameters;\n        }\n      }\n\n      super.parseNewArguments(node);\n    }\n\n    parseExprOp(\n      left: N.Expression,\n      leftStartPos: number,\n      leftStartLoc: Position,\n      minPrec: number,\n      noIn: ?boolean,\n    ) {\n      if (\n        nonNull(tt._in.binop) > minPrec &&\n        !this.hasPrecedingLineBreak() &&\n        this.isContextual(\"as\")\n      ) {\n        const node: N.TsAsExpression = this.startNodeAt(\n          leftStartPos,\n          leftStartLoc,\n        );\n        node.expression = left;\n        const _const = this.tsTryNextParseConstantContext();\n        if (_const) {\n          node.typeAnnotation = _const;\n        } else {\n          node.typeAnnotation = this.tsNextThenParseType();\n        }\n        this.finishNode(node, \"TSAsExpression\");\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n\n      return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn);\n    }\n\n    checkReservedWord(\n      word: string, // eslint-disable-line no-unused-vars\n      startLoc: number, // eslint-disable-line no-unused-vars\n      checkKeywords: boolean, // eslint-disable-line no-unused-vars\n      // eslint-disable-next-line no-unused-vars\n      isBinding: boolean,\n    ): void {\n      // Don't bother checking for TypeScript code.\n      // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n      // And we have a type checker anyway, so don't bother having the parser do it.\n    }\n\n    /*\n    Don't bother doing this check in TypeScript code because:\n    1. We may have a nested export statement with the same name:\n      export const x = 0;\n      export namespace N {\n        export const x = 1;\n      }\n    2. We have a type checker to warn us about this sort of thing.\n    */\n    checkDuplicateExports() {}\n\n    parseImport(node: N.Node): N.AnyImport {\n      if (this.match(tt.name) || this.match(tt.star) || this.match(tt.braceL)) {\n        const ahead = this.lookahead();\n\n        if (this.match(tt.name) && ahead.type === tt.eq) {\n          return this.tsParseImportEqualsDeclaration(node);\n        }\n\n        if (\n          this.isContextual(\"type\") &&\n          // import type, { a } from \"b\";\n          ahead.type !== tt.comma &&\n          // import type from \"a\";\n          !(ahead.type === tt.name && ahead.value === \"from\")\n        ) {\n          node.importKind = \"type\";\n          this.next();\n        } else {\n          node.importKind = \"value\";\n        }\n      }\n\n      const importNode = super.parseImport(node);\n      /*:: invariant(importNode.type !== \"TSImportEqualsDeclaration\") */\n\n      // `import type` can only be used on imports with named imports or with a\n      // default import - but not both\n      if (\n        importNode.importKind === \"type\" &&\n        importNode.specifiers.length > 1 &&\n        importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n      ) {\n        this.raise(\n          importNode.start,\n          \"A type-only import can specify a default import or named bindings, but not both.\",\n        );\n      }\n\n      return importNode;\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      if (this.match(tt._import)) {\n        // `export import A = B;`\n        this.expect(tt._import);\n        return this.tsParseImportEqualsDeclaration(node, /* isExport */ true);\n      } else if (this.eat(tt.eq)) {\n        // `export = x;`\n        const assign: N.TsExportAssignment = node;\n        assign.expression = this.parseExpression();\n        this.semicolon();\n        return this.finishNode(assign, \"TSExportAssignment\");\n      } else if (this.eatContextual(\"as\")) {\n        // `export as namespace A;`\n        const decl: N.TsNamespaceExportDeclaration = node;\n        // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n        this.expectContextual(\"namespace\");\n        decl.id = this.parseIdentifier();\n        this.semicolon();\n        return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n      } else {\n        if (this.isContextual(\"type\") && this.lookahead().type === tt.braceL) {\n          this.next();\n          node.exportKind = \"type\";\n        } else {\n          node.exportKind = \"value\";\n        }\n\n        return super.parseExport(node);\n      }\n    }\n\n    isAbstractClass(): boolean {\n      return (\n        this.isContextual(\"abstract\") && this.lookahead().type === tt._class\n      );\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.isAbstractClass()) {\n        const cls = this.startNode();\n        this.next(); // Skip \"abstract\"\n        this.parseClass(cls, true, true);\n        cls.abstract = true;\n        return cls;\n      }\n\n      // export default interface allowed in:\n      // https://github.com/Microsoft/TypeScript/pull/16040\n      if (this.state.value === \"interface\") {\n        const result = this.tsParseDeclaration(\n          this.startNode(),\n          this.state.value,\n          true,\n        );\n\n        if (result) return result;\n      }\n\n      return super.parseExportDefaultExpression();\n    }\n\n    parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n      if (this.state.type === tt._const) {\n        const ahead = this.lookahead();\n        if (ahead.type === tt.name && ahead.value === \"enum\") {\n          const node: N.TsEnumDeclaration = this.startNode();\n          this.expect(tt._const);\n          this.expectContextual(\"enum\");\n          return this.tsParseEnumDeclaration(node, /* isConst */ true);\n        }\n      }\n      return super.parseStatementContent(context, topLevel);\n    }\n\n    parseAccessModifier(): ?N.Accessibility {\n      return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"declare\"]);\n      const accessibility = this.parseAccessModifier();\n      if (accessibility) member.accessibility = accessibility;\n      this.tsParseModifiers(member, [\"declare\"]);\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n    }\n\n    parseClassMemberWithIsStatic(\n      classBody: N.ClassBody,\n      member: N.ClassMember | N.TsIndexSignature,\n      state: { hadConstructor: boolean },\n      isStatic: boolean,\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"abstract\", \"readonly\", \"declare\"]);\n\n      const idx = this.tsTryParseIndexSignature(member);\n      if (idx) {\n        classBody.body.push(idx);\n\n        if ((member: any).abstract) {\n          this.raise(member.start, TSErrors.IndexSignatureHasAbstract);\n        }\n        if (isStatic) {\n          this.raise(member.start, TSErrors.IndexSignatureHasStatic);\n        }\n        if ((member: any).accessibility) {\n          this.raise(\n            member.start,\n            TSErrors.IndexSignatureHasAccessibility,\n            (member: any).accessibility,\n          );\n        }\n\n        return;\n      }\n\n      /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n      super.parseClassMemberWithIsStatic(\n        classBody,\n        member,\n        state,\n        isStatic,\n        constructorAllowsSuper,\n      );\n    }\n\n    parsePostMemberNameModifiers(\n      methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      const optional = this.eat(tt.question);\n      if (optional) methodOrProp.optional = true;\n\n      if ((methodOrProp: any).readonly && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly);\n      }\n\n      if ((methodOrProp: any).declare && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare);\n      }\n    }\n\n    // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n    // is that e.g. `type()` is valid JS, so we must try parsing that first.\n    // If it's really a type, we will parse `type` as the statement, and can correct it here\n    // by parsing the rest.\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.Statement {\n      const decl =\n        expr.type === \"Identifier\"\n          ? this.tsParseExpressionStatement(node, expr)\n          : undefined;\n      return decl || super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n    shouldParseExportDeclaration(): boolean {\n      if (this.tsIsDeclarationStart()) return true;\n      return super.shouldParseExportDeclaration();\n    }\n\n    // An apparent conditional expression could actually be an optional parameter in an arrow function.\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      // only do the expensive clone if there is a question mark\n      // and if we come from inside parens\n      if (!refNeedsArrowPos || !this.match(tt.question)) {\n        return super.parseConditional(\n          expr,\n          noIn,\n          startPos,\n          startLoc,\n          refNeedsArrowPos,\n        );\n      }\n\n      const result = this.tryParse(() =>\n        super.parseConditional(expr, noIn, startPos, startLoc),\n      );\n\n      if (!result.node) {\n        // $FlowIgnore\n        refNeedsArrowPos.start = result.error.pos || this.state.start;\n        return expr;\n      }\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    // Note: These \"type casts\" are *not* valid TS expressions.\n    // But we parse them here and change them when completing the arrow function.\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      // Store original location/position\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      // \"export declare\" is equivalent to just \"export\".\n      const isDeclare = this.eatContextual(\"declare\");\n\n      let declaration: ?N.Declaration;\n\n      if (this.match(tt.name)) {\n        declaration = this.tsTryParseExportDeclaration();\n      }\n      if (!declaration) {\n        declaration = super.parseExportDeclaration(node);\n      }\n      if (\n        declaration &&\n        (declaration.type === \"TSInterfaceDeclaration\" ||\n          declaration.type === \"TSTypeAliasDeclaration\" ||\n          isDeclare)\n      ) {\n        node.exportKind = \"type\";\n      }\n\n      if (declaration && isDeclare) {\n        // Reset location to include `declare` in range\n        this.resetStartLocation(declaration, startPos, startLoc);\n\n        declaration.declare = true;\n      }\n\n      return declaration;\n    }\n\n    parseClassId(\n      node: N.Class,\n      isStatement: boolean,\n      optionalId: ?boolean,\n    ): void {\n      if ((!isStatement || optionalId) && this.isContextual(\"implements\")) {\n        return;\n      }\n\n      super.parseClassId(\n        node,\n        isStatement,\n        optionalId,\n        (node: any).declare ? BIND_TS_AMBIENT : BIND_CLASS,\n      );\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n    }\n\n    parseClassPropertyAnnotation(\n      node: N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      if (!node.optional && this.eat(tt.bang)) {\n        node.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n    }\n\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      this.parseClassPropertyAnnotation(node);\n\n      if (node.declare && this.match(tt.equal)) {\n        this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer);\n      }\n\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      // $FlowIgnore\n      if (node.abstract) {\n        this.raise(node.start, TSErrors.PrivateElementHasAbstract);\n      }\n\n      // $FlowIgnore\n      if (node.accessibility) {\n        this.raise(\n          node.start,\n          TSErrors.PrivateElementHasAccessibility,\n          node.accessibility,\n        );\n      }\n\n      this.parseClassPropertyAnnotation(node);\n      return super.parseClassPrivateProperty(node);\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.tsParseTypeArguments();\n      }\n      if (this.eatContextual(\"implements\")) {\n        node.implements = this.tsParseHeritageClause(\"implements\");\n      }\n    }\n\n    parseObjPropValue(prop: N.ObjectMember, ...args): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) prop.typeParameters = typeParameters;\n\n      super.parseObjPropValue(prop, ...args);\n    }\n\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // `let x: number;`\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (decl.id.type === \"Identifier\" && this.eat(tt.bang)) {\n        decl.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) {\n        decl.id.typeAnnotation = type;\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeAnnotation();\n      }\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    parseMaybeAssign(...args): N.Expression {\n      // Note: When the JSX plugin is on, type assertions (`<T> x`) aren't valid syntax.\n\n      let state: ?State;\n      let jsx;\n      let typeCast;\n\n      if (this.match(tt.jsxTagStart)) {\n        // Prefer to parse JSX if possible. But may be an arrow fn.\n        state = this.state.clone();\n\n        jsx = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === ct.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === ct.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if (!(jsx && jsx.error) && !this.isRelational(\"<\")) {\n        return super.parseMaybeAssign(...args);\n      }\n\n      // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n      let typeParameters: N.TsTypeParameterDeclaration;\n      state = state || this.state.clone();\n\n      const arrow = this.tryParse(abort => {\n        // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n        typeParameters = this.tsParseTypeParameters();\n        const expr = super.parseMaybeAssign(...args);\n\n        if (\n          expr.type !== \"ArrowFunctionExpression\" ||\n          (expr.extra && expr.extra.parenthesized)\n        ) {\n          abort();\n        }\n\n        // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n        if (typeParameters && typeParameters.params.length !== 0) {\n          this.resetStartLocationFromNode(expr, typeParameters);\n        }\n        expr.typeParameters = typeParameters;\n        return expr;\n      }, state);\n\n      if (!arrow.error && !arrow.aborted) return arrow.node;\n\n      if (!jsx) {\n        // Try parsing a type cast instead of an arrow function.\n        // This will never happen outside of JSX.\n        // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n        assert(!this.hasPlugin(\"jsx\"));\n\n        // This will start with a type assertion (via parseMaybeUnary).\n        // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n        typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!typeCast.aborted) */\n        if (!typeCast.error) return typeCast.node;\n      }\n\n      if (jsx && jsx.node) {\n        /*:: invariant(jsx.failState) */\n        this.state = jsx.failState;\n        return jsx.node;\n      }\n\n      if (arrow.node) {\n        /*:: invariant(arrow.failState) */\n        this.state = arrow.failState;\n        return arrow.node;\n      }\n\n      if (typeCast && typeCast.node) {\n        /*:: invariant(typeCast.failState) */\n        this.state = typeCast.failState;\n        return typeCast.node;\n      }\n\n      if (jsx && jsx.thrown) throw jsx.error;\n      if (arrow.thrown) throw arrow.error;\n      if (typeCast && typeCast.thrown) throw typeCast.error;\n\n      throw (jsx && jsx.error) || arrow.error || (typeCast && typeCast.error);\n    }\n\n    // Handle type assertions\n    parseMaybeUnary(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      if (!this.hasPlugin(\"jsx\") && this.isRelational(\"<\")) {\n        return this.tsParseTypeAssertion();\n      } else {\n        return super.parseMaybeUnary(refExpressionErrors);\n      }\n    }\n\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        // This is different from how the TS parser does it.\n        // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n        const result = this.tryParse(abort => {\n          const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n            tt.colon,\n          );\n          if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n          return returnType;\n        });\n\n        if (result.aborted) return;\n\n        if (!result.thrown) {\n          if (result.error) this.state = result.failState;\n          node.returnType = result.node;\n        }\n      }\n\n      return super.parseArrow(node);\n    }\n\n    // Allow type annotations inside of a parameter list.\n    parseAssignableListItemTypes(param: N.Pattern) {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, TSErrors.PatternIsOptional);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) param.typeAnnotation = type;\n      this.resetEndLocation(param);\n\n      return param;\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      switch (node.type) {\n        case \"TSTypeCastExpression\":\n          return super.toAssignable(this.typeCastToParameter(node));\n        case \"TSParameterProperty\":\n          return super.toAssignable(node);\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          node.expression = this.toAssignable(node.expression);\n          return node;\n        default:\n          return super.toAssignable(node);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      switch (expr.type) {\n        case \"TSTypeCastExpression\":\n          // Allow \"typecasts\" to appear on the left of assignment expressions,\n          // because it may be in an arrow function.\n          // e.g. `const f = (foo: number = 0) => foo;`\n          return;\n        case \"TSParameterProperty\":\n          this.checkLVal(\n            expr.parameter,\n            bindingType,\n            checkClashes,\n            \"parameter property\",\n          );\n          return;\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          this.checkLVal(\n            expr.expression,\n            bindingType,\n            checkClashes,\n            contextDescription,\n          );\n          return;\n        default:\n          super.checkLVal(expr, bindingType, checkClashes, contextDescription);\n          return;\n      }\n    }\n\n    parseBindingAtom(): N.Pattern {\n      switch (this.state.type) {\n        case tt._this:\n          // \"this\" may be the name of a parameter, so allow it.\n          return this.parseIdentifier(/* liberal */ true);\n        default:\n          return super.parseBindingAtom();\n      }\n    }\n\n    parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsParseTypeArguments();\n\n        if (this.match(tt.parenL)) {\n          const call = super.parseMaybeDecoratorArguments(expr);\n          call.typeParameters = typeArguments;\n          return call;\n        }\n\n        this.unexpected(this.state.start, tt.parenL);\n      }\n\n      return super.parseMaybeDecoratorArguments(expr);\n    }\n\n    // === === === === === === === === === === === === === === === ===\n    // Note: All below methods are duplicates of something in flow.js.\n    // Not sure what the best way to combine these is.\n    // === === === === === === === === === === === === === === === ===\n\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    isClassProperty(): boolean {\n      return (\n        this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n      );\n    }\n\n    parseMaybeDefault(...args): N.Pattern {\n      const node = super.parseMaybeDefault(...args);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(\n          node.typeAnnotation.start,\n          TSErrors.TypeAnnotationAfterAssign,\n        );\n      }\n\n      return node;\n    }\n\n    // ensure that inside types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      if (this.state.inType && (code === 62 || code === 60)) {\n        return this.finishOp(tt.relational, 1);\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    toAssignableList(exprList: N.Expression[]): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (!expr) continue;\n        switch (expr.type) {\n          case \"TSTypeCastExpression\":\n            exprList[i] = this.typeCastToParameter(expr);\n            break;\n          case \"TSAsExpression\":\n          case \"TSTypeAssertion\":\n            if (!this.state.maybeInArrowParameters) {\n              exprList[i] = this.typeCastToParameter(expr);\n            } else {\n              this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter);\n            }\n            break;\n        }\n      }\n      return super.toAssignableList(...arguments);\n    }\n\n    typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isInParens?: boolean, // eslint-disable-line no-unused-vars\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TSTypeCastExpression\") {\n          this.raise(expr.start, TSErrors.UnexpectedTypeAnnotation);\n        }\n      }\n\n      return exprList;\n    }\n\n    shouldParseArrow() {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    canHaveLeadingDecorator() {\n      // Avoid unnecessary lookahead in checking for abstract class unless needed!\n      return super.canHaveLeadingDecorator() || this.isAbstractClass();\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsTryParseAndCatch(() =>\n          this.tsParseTypeArguments(),\n        );\n        if (typeArguments) node.typeParameters = typeArguments;\n      }\n      return super.jsxParseOpeningElementAfterName(node);\n    }\n\n    getGetterSetterExpectedParamCount(\n      method: N.ObjectMethod | N.ClassMethod,\n    ): number {\n      const baseCount = super.getGetterSetterExpectedParamCount(method);\n      const firstParam = method.params[0];\n      const hasContextParam =\n        firstParam &&\n        firstParam.type === \"Identifier\" &&\n        firstParam.name === \"this\";\n\n      return hasContextParam ? baseCount + 1 : baseCount;\n    }\n  };\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport * as N from \"../types\";\n\ntt.placeholder = new TokenType(\"%%\", { startsExpr: true });\n\nexport type PlaceholderTypes =\n  | \"Identifier\"\n  | \"StringLiteral\"\n  | \"Expression\"\n  | \"Statement\"\n  | \"Declaration\"\n  | \"BlockStatement\"\n  | \"ClassBody\"\n  | \"Pattern\";\n\n// $PropertyType doesn't support enums. Use a fake \"switch\" (GetPlaceholderNode)\n//type MaybePlaceholder<T: PlaceholderTypes> = $PropertyType<N, T> | N.Placeholder<T>;\n\ntype _Switch<Value, Cases, Index> = $Call<\n  (\n    $ElementType<$ElementType<Cases, Index>, 0>,\n  ) => $ElementType<$ElementType<Cases, Index>, 1>,\n  Value,\n>;\ntype $Switch<Value, Cases> = _Switch<Value, Cases, *>;\n\ntype NodeOf<T: PlaceholderTypes> = $Switch<\n  T,\n  [\n    [\"Identifier\", N.Identifier],\n    [\"StringLiteral\", N.StringLiteral],\n    [\"Expression\", N.Expression],\n    [\"Statement\", N.Statement],\n    [\"Declaration\", N.Declaration],\n    [\"BlockStatement\", N.BlockStatement],\n    [\"ClassBody\", N.ClassBody],\n    [\"Pattern\", N.Pattern],\n  ],\n>;\n\n// Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T: PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parsePlaceholder<T: PlaceholderTypes>(\n      expectedNode: T,\n    ): /*?N.Placeholder<T>*/ ?MaybePlaceholder<T> {\n      if (this.match(tt.placeholder)) {\n        const node = this.startNode();\n        this.next();\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n\n        // We can't use this.parseIdentifier because\n        // we don't want nested placeholders.\n        node.name = super.parseIdentifier(/* liberal */ true);\n\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n        this.expect(tt.placeholder);\n        return this.finishPlaceholder(node, expectedNode);\n      }\n    }\n\n    finishPlaceholder<T: PlaceholderTypes>(\n      node: N.Node,\n      expectedNode: T,\n    ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n      const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n      node.expectedNode = expectedNode;\n\n      return isFinished ? node : this.finishNode(node, \"Placeholder\");\n    }\n\n    /* ============================================================ *\n     * tokenizer/index.js                                           *\n     * ============================================================ */\n\n    getTokenFromCode(code: number) {\n      if (\n        code === charCodes.percentSign &&\n        this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n      ) {\n        return this.finishOp(tt.placeholder, 2);\n      }\n\n      return super.getTokenFromCode(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): MaybePlaceholder<\"Expression\"> {\n      return (\n        this.parsePlaceholder(\"Expression\") || super.parseExprAtom(...arguments)\n      );\n    }\n\n    parseIdentifier(): MaybePlaceholder<\"Identifier\"> {\n      // NOTE: This function only handles identifiers outside of\n      // expressions and binding patterns, since they are already\n      // handled by the parseExprAtom and parseBindingAtom functions.\n      // This is needed, for example, to parse \"class %%NAME%% {}\".\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseIdentifier(...arguments)\n      );\n    }\n\n    checkReservedWord(word: string): void {\n      // Sometimes we call #checkReservedWord(node.name), expecting\n      // that node is an Identifier. If it is a Placeholder, name\n      // will be undefined.\n      if (word !== undefined) super.checkReservedWord(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/lval.js                                               *\n     * ============================================================ */\n\n    parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n      return (\n        this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom(...arguments)\n      );\n    }\n\n    checkLVal(expr: N.Expression): void {\n      if (expr.type !== \"Placeholder\") super.checkLVal(...arguments);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (\n        node &&\n        node.type === \"Placeholder\" &&\n        node.expectedNode === \"Expression\"\n      ) {\n        node.expectedNode = \"Pattern\";\n        return node;\n      }\n      return super.toAssignable(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/statement.js                                          *\n     * ============================================================ */\n\n    verifyBreakContinue(node: N.BreakStatement | N.ContinueStatement) {\n      if (node.label && node.label.type === \"Placeholder\") return;\n      super.verifyBreakContinue(...arguments);\n    }\n\n    parseExpressionStatement(\n      node: MaybePlaceholder<\"Statement\">,\n      expr: N.Expression,\n    ): MaybePlaceholder<\"Statement\"> {\n      if (\n        expr.type !== \"Placeholder\" ||\n        (expr.extra && expr.extra.parenthesized)\n      ) {\n        return super.parseExpressionStatement(...arguments);\n      }\n\n      if (this.match(tt.colon)) {\n        const stmt: N.LabeledStatement = node;\n        stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n        this.next();\n        stmt.body = this.parseStatement(\"label\");\n        return this.finishNode(stmt, \"LabeledStatement\");\n      }\n\n      this.semicolon();\n\n      node.name = expr.name;\n      return this.finishPlaceholder(node, \"Statement\");\n    }\n\n    parseBlock(): MaybePlaceholder<\"BlockStatement\"> {\n      return (\n        this.parsePlaceholder(\"BlockStatement\") ||\n        super.parseBlock(...arguments)\n      );\n    }\n\n    parseFunctionId(): ?MaybePlaceholder<\"Identifier\"> {\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseFunctionId(...arguments)\n      );\n    }\n\n    parseClass<T: N.Class>(\n      node: T,\n      isStatement: /* T === ClassDeclaration */ boolean,\n      optionalId?: boolean,\n    ): T {\n      const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n      this.next();\n      this.takeDecorators(node);\n\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (placeholder) {\n        if (\n          this.match(tt._extends) ||\n          this.match(tt.placeholder) ||\n          this.match(tt.braceL)\n        ) {\n          node.id = placeholder;\n        } else if (optionalId || !isStatement) {\n          node.id = null;\n          node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n          return this.finishNode(node, type);\n        } else {\n          this.unexpected(null, \"A class name is required\");\n        }\n      } else {\n        this.parseClassId(node, isStatement, optionalId);\n      }\n\n      this.parseClassSuper(node);\n      node.body =\n        this.parsePlaceholder(\"ClassBody\") ||\n        this.parseClassBody(!!node.superClass);\n      return this.finishNode(node, type);\n    }\n\n    parseExport(node: N.Node): N.Node {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseExport(...arguments);\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // export %%DECL%%;\n        node.specifiers = [];\n        node.source = null;\n        node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n        return this.finishNode(node, \"ExportNamedDeclaration\");\n      }\n\n      // export %%NAME%% from \"foo\";\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = placeholder;\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n      return super.parseExport(node);\n    }\n\n    maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n      if (node.specifiers && node.specifiers.length > 0) {\n        // \"export %%NAME%%\" has already been parsed by #parseExport.\n        return true;\n      }\n      return super.maybeParseExportDefaultSpecifier(...arguments);\n    }\n\n    checkExport(node: N.ExportNamedDeclaration): void {\n      const { specifiers } = node;\n      if (specifiers && specifiers.length) {\n        node.specifiers = specifiers.filter(\n          node => node.exported.type === \"Placeholder\",\n        );\n      }\n      super.checkExport(node);\n      node.specifiers = specifiers;\n    }\n\n    parseImport(\n      node: N.Node,\n    ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseImport(...arguments);\n\n      node.specifiers = [];\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // import %%STRING%%;\n        node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n        this.semicolon();\n        return this.finishNode(node, \"ImportDeclaration\");\n      }\n\n      // import %%DEFAULT%% ...\n      const specifier = this.startNodeAtNode(placeholder);\n      specifier.local = placeholder;\n      this.finishNode(specifier, \"ImportDefaultSpecifier\");\n      node.specifiers.push(specifier);\n\n      if (this.eat(tt.comma)) {\n        // import %%DEFAULT%%, * as ...\n        const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n        // import %%DEFAULT%%, { ...\n        if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n      }\n\n      this.expectContextual(\"from\");\n      node.source = this.parseImportSource();\n      this.semicolon();\n      return this.finishNode(node, \"ImportDeclaration\");\n    }\n\n    parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n      // import ... from %%STRING%%;\n\n      return (\n        this.parsePlaceholder(\"StringLiteral\") ||\n        super.parseImportSource(...arguments)\n      );\n    }\n  };\n","import type Parser from \"../parser\";\nimport { types as tt } from \"../tokenizer/types\";\nimport * as N from \"../types\";\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parseV8Intrinsic(): N.Expression {\n      if (this.match(tt.modulo)) {\n        const v8IntrinsicStart = this.state.start;\n        // let the `loc` of Identifier starts from `%`\n        const node = this.startNode();\n        this.eat(tt.modulo);\n        if (this.match(tt.name)) {\n          const name = this.parseIdentifierName(this.state.start);\n          const identifier = this.createIdentifier(node, name);\n          identifier.type = \"V8IntrinsicIdentifier\";\n          if (this.match(tt.parenL)) {\n            return identifier;\n          }\n        }\n        this.unexpected(v8IntrinsicStart);\n      }\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): N.Expression {\n      return this.parseV8Intrinsic() || super.parseExprAtom(...arguments);\n    }\n  };\n","// @flow\n\nimport type Parser from \"./parser\";\n\nexport type Plugin = string | [string, Object];\n\nexport type PluginList = $ReadOnlyArray<Plugin>;\n\nexport type MixinPlugin = (superClass: Class<Parser>) => Class<Parser>;\n\nexport function hasPlugin(plugins: PluginList, name: string): boolean {\n  return plugins.some(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n}\n\nexport function getPluginOption(\n  plugins: PluginList,\n  name: string,\n  option: string,\n) {\n  const plugin = plugins.find(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n\n  if (plugin && Array.isArray(plugin)) {\n    return plugin[1][option];\n  }\n\n  return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"smart\", \"fsharp\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n  if (hasPlugin(plugins, \"decorators\")) {\n    if (hasPlugin(plugins, \"decorators-legacy\")) {\n      throw new Error(\n        \"Cannot use the decorators and decorators-legacy plugin together\",\n      );\n    }\n\n    const decoratorsBeforeExport = getPluginOption(\n      plugins,\n      \"decorators\",\n      \"decoratorsBeforeExport\",\n    );\n    if (decoratorsBeforeExport == null) {\n      throw new Error(\n        \"The 'decorators' plugin requires a 'decoratorsBeforeExport' option,\" +\n          \" whose value must be a boolean. If you are migrating from\" +\n          \" Babylon/Babel 6 or want to use the old decorators proposal, you\" +\n          \" should use the 'decorators-legacy' plugin instead of 'decorators'.\",\n      );\n    } else if (typeof decoratorsBeforeExport !== \"boolean\") {\n      throw new Error(\"'decoratorsBeforeExport' must be a boolean.\");\n    }\n  }\n\n  if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n    throw new Error(\"Cannot combine flow and typescript plugins.\");\n  }\n\n  if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n    throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n  }\n\n  if (\n    hasPlugin(plugins, \"pipelineOperator\") &&\n    !PIPELINE_PROPOSALS.includes(\n      getPluginOption(plugins, \"pipelineOperator\", \"proposal\"),\n    )\n  ) {\n    throw new Error(\n      \"'pipelineOperator' requires 'proposal' option whose value should be one of: \" +\n        PIPELINE_PROPOSALS.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n\n  if (\n    hasPlugin(plugins, \"recordAndTuple\") &&\n    !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n      getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n    )\n  ) {\n    throw new Error(\n      \"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \" +\n        RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree\";\nimport flow from \"./plugins/flow\";\nimport jsx from \"./plugins/jsx\";\nimport typescript from \"./plugins/typescript\";\nimport placeholders from \"./plugins/placeholders\";\nimport v8intrinsic from \"./plugins/v8intrinsic\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins: { [name: string]: MixinPlugin } = {\n  estree,\n  jsx,\n  flow,\n  typescript,\n  v8intrinsic,\n  placeholders,\n};\n\nexport const mixinPluginNames: $ReadOnlyArray<string> = Object.keys(\n  mixinPlugins,\n);\n","// @flow\n\nimport type { PluginList } from \"./plugin-utils\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n  sourceType: SourceType,\n  sourceFilename?: string,\n  startLine: number,\n  allowAwaitOutsideFunction: boolean,\n  allowReturnOutsideFunction: boolean,\n  allowImportExportEverywhere: boolean,\n  allowSuperOutsideMethod: boolean,\n  allowUndeclaredExports: boolean,\n  plugins: PluginList,\n  strictMode: ?boolean,\n  ranges: boolean,\n  tokens: boolean,\n  createParenthesizedExpressions: boolean,\n  errorRecovery: boolean,\n};\n\nexport const defaultOptions: Options = {\n  // Source type (\"script\" or \"module\") for different semantics\n  sourceType: \"script\",\n  // Source filename.\n  sourceFilename: undefined,\n  // Line from which to start counting source. Useful for\n  // integration with other tools.\n  startLine: 1,\n  // When enabled, await at the top level is not considered an\n  // error.\n  allowAwaitOutsideFunction: false,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // TODO\n  allowSuperOutsideMethod: false,\n  // When enabled, export statements can reference undeclared variables.\n  allowUndeclaredExports: false,\n  // An array of plugins to enable\n  plugins: [],\n  // TODO\n  strictMode: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // Adds all parsed tokens to a `tokens` property on the `File` node\n  tokens: false,\n  // Whether to create ParenthesizedExpression AST nodes (if false\n  // the parser sets extra.parenthesized on the expression nodes instead).\n  createParenthesizedExpressions: false,\n  // When enabled, errors are attached to the AST instead of being directly thrown.\n  // Some errors will still throw, because @babel/parser can't always recover.\n  errorRecovery: false,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts: ?Options): Options {\n  const options: any = {};\n  for (const key of Object.keys(defaultOptions)) {\n    options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key];\n  }\n  return options;\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport { Position } from \"../util/location\";\n\nimport { types as ct, type TokContext } from \"./context\";\nimport { types as tt, type TokenType } from \"./types\";\n\ntype TopicContextState = {\n  // When a topic binding has been currently established,\n  // then this is 1. Otherwise, it is 0. This is forwards compatible\n  // with a future plugin for multiple lexical topics.\n  maxNumOfResolvableTopics: number,\n\n  // When a topic binding has been currently established, and if that binding\n  // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n  // `null`. This is forwards compatible with a future plugin for multiple\n  // lexical topics.\n  maxTopicIndex: null | 0,\n};\n\nexport default class State {\n  strict: boolean;\n  curLine: number;\n\n  // And, if locations are used, the {line, column} object\n  // corresponding to those offsets\n  startLoc: Position;\n  endLoc: Position;\n\n  init(options: Options): void {\n    this.strict =\n      options.strictMode === false ? false : options.sourceType === \"module\";\n\n    this.curLine = options.startLine;\n    this.startLoc = this.endLoc = this.curPosition();\n  }\n\n  errors: SyntaxError[] = [];\n\n  // Used to signify the start of a potential arrow function\n  potentialArrowAt: number = -1;\n\n  // Used to signify the start of an expression which looks like a\n  // typed arrow function, but it isn't\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowAt: number[] = [];\n\n  // Used to signify the start of an expression whose params, if it looks like\n  // an arrow function, shouldn't be converted to assignable nodes.\n  // This is used to defer the validation of typed arrow functions inside\n  // conditional expressions.\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowParamsConversionAt: number[] = [];\n\n  // Flags to track\n  inParameters: boolean = false;\n  maybeInArrowParameters: boolean = false;\n  // This flag is used to track async arrow head across function declarations.\n  // e.g. async (foo = function (await) {}) => {}\n  // When parsing `await` in this expression, `maybeInAsyncArrowHead` is true\n  // but `maybeInArrowParameters` is false\n  maybeInAsyncArrowHead: boolean = false;\n  inPipeline: boolean = false;\n  inType: boolean = false;\n  noAnonFunctionType: boolean = false;\n  inPropertyName: boolean = false;\n  hasFlowComment: boolean = false;\n  isIterator: boolean = false;\n\n  // For the smartPipelines plugin:\n  topicContext: TopicContextState = {\n    maxNumOfResolvableTopics: 0,\n    maxTopicIndex: null,\n  };\n\n  // For the F# plugin\n  soloAwait: boolean = false;\n  inFSharpPipelineDirectBody: boolean = false;\n\n  // Labels in scope.\n  labels: Array<{\n    kind: ?(\"loop\" | \"switch\"),\n    name?: ?string,\n    statementStart?: number,\n  }> = [];\n\n  // Leading decorators. Last element of the stack represents the decorators in current context.\n  // Supports nesting of decorators, e.g. @foo(@bar class inner {}) class outer {}\n  // where @foo belongs to the outer class and @bar to the inner\n  decoratorStack: Array<Array<N.Decorator>> = [[]];\n\n  // Positions to delayed-check that yield/await does not exist in default parameters.\n  yieldPos: number = -1;\n  awaitPos: number = -1;\n\n  // Comment store.\n  comments: Array<N.Comment> = [];\n\n  // Comment attachment store\n  trailingComments: Array<N.Comment> = [];\n  leadingComments: Array<N.Comment> = [];\n  commentStack: Array<{\n    start: number,\n    leadingComments: ?Array<N.Comment>,\n    trailingComments: ?Array<N.Comment>,\n    type: string,\n  }> = [];\n  // $FlowIgnore this is initialized when the parser starts.\n  commentPreviousNode: N.Node = null;\n\n  // The current position of the tokenizer in the input.\n  pos: number = 0;\n  lineStart: number = 0;\n\n  // Properties of the current token:\n  // Its type\n  type: TokenType = tt.eof;\n\n  // For tokens that include more information than their type, the value\n  value: any = null;\n\n  // Its start and end offset\n  start: number = 0;\n  end: number = 0;\n\n  // Position information for the previous token\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokEndLoc: Position = null;\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokStartLoc: Position = null;\n  lastTokStart: number = 0;\n  lastTokEnd: number = 0;\n\n  // The context stack is used to superficially track syntactic\n  // context to predict whether a regular expression is allowed in a\n  // given position.\n  context: Array<TokContext> = [ct.braceStatement];\n  exprAllowed: boolean = true;\n\n  // Used to signal to callers of `readWord1` whether the word\n  // contained any escape sequences. This is needed because words with\n  // escape sequences must not be interpreted as keywords.\n  containsEsc: boolean = false;\n\n  // This property is used to throw an error for\n  // an octal literal in a directive that occurs prior\n  // to a \"use strict\" directive.\n  octalPositions: number[] = [];\n\n  // Names of exports store. `default` is stored as a name for both\n  // `export default foo;` and `export { foo as default };`.\n  exportedIdentifiers: Array<string> = [];\n\n  // Tokens length in token store\n  tokensLength: number = 0;\n\n  curPosition(): Position {\n    return new Position(this.curLine, this.pos - this.lineStart);\n  }\n\n  clone(skipArrays?: boolean): State {\n    const state = new State();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // $FlowIgnore\n      let val = this[key];\n\n      if (!skipArrays && Array.isArray(val)) {\n        val = val.slice();\n      }\n\n      // $FlowIgnore\n      state[key] = val;\n    }\n\n    return state;\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier\";\nimport { types as tt, keywords as keywordTypes, type TokenType } from \"./types\";\nimport { type TokContext, types as ct } from \"./context\";\nimport LocationParser, { Errors } from \"../parser/location\";\nimport { SourceLocation } from \"../util/location\";\nimport {\n  lineBreak,\n  lineBreakG,\n  isNewLine,\n  isWhitespace,\n  skipWhiteSpace,\n} from \"../util/whitespace\";\nimport State from \"./state\";\n\nconst VALID_REGEX_FLAGS = new Set([\"g\", \"m\", \"s\", \"i\", \"y\", \"u\"]);\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\n\nconst forbiddenNumericSeparatorSiblings = {\n  decBinOct: [\n    charCodes.dot,\n    charCodes.uppercaseB,\n    charCodes.uppercaseE,\n    charCodes.uppercaseO,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseB,\n    charCodes.lowercaseE,\n    charCodes.lowercaseO,\n  ],\n  hex: [\n    charCodes.dot,\n    charCodes.uppercaseX,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseX,\n  ],\n};\n\nconst allowedNumericSeparatorSiblings = {};\nallowedNumericSeparatorSiblings.bin = [\n  // 0 - 1\n  charCodes.digit0,\n  charCodes.digit1,\n];\nallowedNumericSeparatorSiblings.oct = [\n  // 0 - 7\n  ...allowedNumericSeparatorSiblings.bin,\n\n  charCodes.digit2,\n  charCodes.digit3,\n  charCodes.digit4,\n  charCodes.digit5,\n  charCodes.digit6,\n  charCodes.digit7,\n];\nallowedNumericSeparatorSiblings.dec = [\n  // 0 - 9\n  ...allowedNumericSeparatorSiblings.oct,\n\n  charCodes.digit8,\n  charCodes.digit9,\n];\n\nallowedNumericSeparatorSiblings.hex = [\n  // 0 - 9, A - F, a - f,\n  ...allowedNumericSeparatorSiblings.dec,\n\n  charCodes.uppercaseA,\n  charCodes.uppercaseB,\n  charCodes.uppercaseC,\n  charCodes.uppercaseD,\n  charCodes.uppercaseE,\n  charCodes.uppercaseF,\n\n  charCodes.lowercaseA,\n  charCodes.lowercaseB,\n  charCodes.lowercaseC,\n  charCodes.lowercaseD,\n  charCodes.lowercaseE,\n  charCodes.lowercaseF,\n];\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(state: State) {\n    this.type = state.type;\n    this.value = state.value;\n    this.start = state.start;\n    this.end = state.end;\n    this.loc = new SourceLocation(state.startLoc, state.endLoc);\n  }\n\n  type: TokenType;\n  value: any;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default class Tokenizer extends LocationParser {\n  // Forward-declarations\n  // parser/util.js\n  /*::\n  +unexpected: (pos?: ?number, messageOrType?: string | TokenType) => empty;\n  */\n\n  isLookahead: boolean;\n\n  // Token store.\n  tokens: Array<Token | N.Comment> = [];\n\n  constructor(options: Options, input: string) {\n    super();\n    this.state = new State();\n    this.state.init(options);\n    this.input = input;\n    this.length = input.length;\n    this.isLookahead = false;\n  }\n\n  pushToken(token: Token | N.Comment) {\n    // Pop out invalid tokens trapped by try-catch parsing.\n    // Those parsing branches are mainly created by typescript and flow plugins.\n    this.tokens.length = this.state.tokensLength;\n    this.tokens.push(token);\n    ++this.state.tokensLength;\n  }\n\n  // Move to the next token\n\n  next(): void {\n    if (!this.isLookahead) {\n      this.checkKeywordEscapes();\n      if (this.options.tokens) {\n        this.pushToken(new Token(this.state));\n      }\n    }\n\n    this.state.lastTokEnd = this.state.end;\n    this.state.lastTokStart = this.state.start;\n    this.state.lastTokEndLoc = this.state.endLoc;\n    this.state.lastTokStartLoc = this.state.startLoc;\n    this.nextToken();\n  }\n\n  // TODO\n\n  eat(type: TokenType): boolean {\n    if (this.match(type)) {\n      this.next();\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  // TODO\n\n  match(type: TokenType): boolean {\n    return this.state.type === type;\n  }\n\n  // TODO\n\n  lookahead(): State {\n    const old = this.state;\n    this.state = old.clone(true);\n\n    this.isLookahead = true;\n    this.next();\n    this.isLookahead = false;\n\n    const curr = this.state;\n    this.state = old;\n    return curr;\n  }\n\n  nextTokenStart(): number {\n    const thisTokEnd = this.state.pos;\n    skipWhiteSpace.lastIndex = thisTokEnd;\n    const skip = skipWhiteSpace.exec(this.input);\n    // $FlowIgnore: The skipWhiteSpace ensures to match any string\n    return thisTokEnd + skip[0].length;\n  }\n\n  lookaheadCharCode(): number {\n    return this.input.charCodeAt(this.nextTokenStart());\n  }\n\n  // Toggle strict mode. Re-reads the next number or string to please\n  // pedantic tests (`\"use strict\"; 010;` should fail).\n\n  setStrict(strict: boolean): void {\n    this.state.strict = strict;\n    if (!this.match(tt.num) && !this.match(tt.string)) return;\n    this.state.pos = this.state.start;\n    while (this.state.pos < this.state.lineStart) {\n      this.state.lineStart =\n        this.input.lastIndexOf(\"\\n\", this.state.lineStart - 2) + 1;\n      --this.state.curLine;\n    }\n    this.nextToken();\n  }\n\n  curContext(): TokContext {\n    return this.state.context[this.state.context.length - 1];\n  }\n\n  // Read a single token, updating the parser object's token-related\n  // properties.\n\n  nextToken(): void {\n    const curContext = this.curContext();\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\n\n    this.state.octalPositions = [];\n    this.state.start = this.state.pos;\n    this.state.startLoc = this.state.curPosition();\n    if (this.state.pos >= this.length) {\n      this.finishToken(tt.eof);\n      return;\n    }\n\n    const override = curContext?.override;\n    if (override) {\n      override(this);\n    } else {\n      this.getTokenFromCode(this.input.codePointAt(this.state.pos));\n    }\n  }\n\n  pushComment(\n    block: boolean,\n    text: string,\n    start: number,\n    end: number,\n    startLoc: Position,\n    endLoc: Position,\n  ): void {\n    const comment = {\n      type: block ? \"CommentBlock\" : \"CommentLine\",\n      value: text,\n      start: start,\n      end: end,\n      loc: new SourceLocation(startLoc, endLoc),\n    };\n\n    if (this.options.tokens) this.pushToken(comment);\n    this.state.comments.push(comment);\n    this.addComment(comment);\n  }\n\n  skipBlockComment(): void {\n    const startLoc = this.state.curPosition();\n    const start = this.state.pos;\n    const end = this.input.indexOf(\"*/\", this.state.pos + 2);\n    if (end === -1) throw this.raise(start, Errors.UnterminatedComment);\n\n    this.state.pos = end + 2;\n    lineBreakG.lastIndex = start;\n    let match;\n    while (\n      (match = lineBreakG.exec(this.input)) &&\n      match.index < this.state.pos\n    ) {\n      ++this.state.curLine;\n      this.state.lineStart = match.index + match[0].length;\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      true,\n      this.input.slice(start + 2, end),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  skipLineComment(startSkip: number): void {\n    const start = this.state.pos;\n    const startLoc = this.state.curPosition();\n    let ch = this.input.charCodeAt((this.state.pos += startSkip));\n    if (this.state.pos < this.length) {\n      while (!isNewLine(ch) && ++this.state.pos < this.length) {\n        ch = this.input.charCodeAt(this.state.pos);\n      }\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      false,\n      this.input.slice(start + startSkip, this.state.pos),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  // Called at the start of the parse and after every token. Skips\n  // whitespace and comments, and.\n\n  skipSpace(): void {\n    loop: while (this.state.pos < this.length) {\n      const ch = this.input.charCodeAt(this.state.pos);\n      switch (ch) {\n        case charCodes.space:\n        case charCodes.nonBreakingSpace:\n        case charCodes.tab:\n          ++this.state.pos;\n          break;\n        case charCodes.carriageReturn:\n          if (\n            this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n          ) {\n            ++this.state.pos;\n          }\n        // fall through\n        case charCodes.lineFeed:\n        case charCodes.lineSeparator:\n        case charCodes.paragraphSeparator:\n          ++this.state.pos;\n          ++this.state.curLine;\n          this.state.lineStart = this.state.pos;\n          break;\n\n        case charCodes.slash:\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\n            case charCodes.asterisk:\n              this.skipBlockComment();\n              break;\n\n            case charCodes.slash:\n              this.skipLineComment(2);\n              break;\n\n            default:\n              break loop;\n          }\n          break;\n\n        default:\n          if (isWhitespace(ch)) {\n            ++this.state.pos;\n          } else {\n            break loop;\n          }\n      }\n    }\n  }\n\n  // Called at the end of every token. Sets `end`, `val`, and\n  // maintains `context` and `exprAllowed`, and skips the space after\n  // the token, so that the next one's `start` will point at the\n  // right position.\n\n  finishToken(type: TokenType, val: any): void {\n    this.state.end = this.state.pos;\n    this.state.endLoc = this.state.curPosition();\n    const prevType = this.state.type;\n    this.state.type = type;\n    this.state.value = val;\n\n    if (!this.isLookahead) this.updateContext(prevType);\n  }\n\n  // ### Token reading\n\n  // This is the function that is called to fetch the next token. It\n  // is somewhat obscure, because it works in character codes rather\n  // than characters, and because operator parsing has been inlined\n  // into it.\n  //\n  // All in the name of speed.\n\n  // number sign is \"#\"\n  readToken_numberSign(): void {\n    if (this.state.pos === 0 && this.readToken_interpreter()) {\n      return;\n    }\n\n    const nextPos = this.state.pos + 1;\n    const next = this.input.charCodeAt(nextPos);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      throw this.raise(this.state.pos, Errors.UnexpectedDigitAfterHash);\n    }\n\n    if (\n      this.hasPlugin(\"recordAndTuple\") &&\n      (next === charCodes.leftCurlyBrace ||\n        next === charCodes.leftSquareBracket)\n    ) {\n      if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"hash\") {\n        throw this.raise(\n          this.state.pos,\n          next === charCodes.leftCurlyBrace\n            ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n            : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n        );\n      }\n\n      if (next === charCodes.leftCurlyBrace) {\n        // #{\n        this.finishToken(tt.braceHashL);\n      } else {\n        // #[\n        this.finishToken(tt.bracketHashL);\n      }\n      this.state.pos += 2;\n    } else if (\n      this.hasPlugin(\"classPrivateProperties\") ||\n      this.hasPlugin(\"classPrivateMethods\") ||\n      this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\"\n    ) {\n      this.finishOp(tt.hash, 1);\n    } else {\n      throw this.raise(this.state.pos, Errors.InvalidOrUnexpectedToken, \"#\");\n    }\n  }\n\n  readToken_dot(): void {\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      this.readNumber(true);\n      return;\n    }\n\n    if (\n      next === charCodes.dot &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n    ) {\n      this.state.pos += 3;\n      this.finishToken(tt.ellipsis);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.dot);\n    }\n  }\n\n  readToken_slash(): void {\n    // '/'\n    if (this.state.exprAllowed && !this.state.inType) {\n      ++this.state.pos;\n      this.readRegexp();\n      return;\n    }\n\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.slash, 1);\n    }\n  }\n\n  readToken_interpreter(): boolean {\n    if (this.state.pos !== 0 || this.length < 2) return false;\n\n    let ch = this.input.charCodeAt(this.state.pos + 1);\n    if (ch !== charCodes.exclamationMark) return false;\n\n    const start = this.state.pos;\n    this.state.pos += 1;\n\n    while (!isNewLine(ch) && ++this.state.pos < this.length) {\n      ch = this.input.charCodeAt(this.state.pos);\n    }\n\n    const value = this.input.slice(start + 2, this.state.pos);\n\n    this.finishToken(tt.interpreterDirective, value);\n\n    return true;\n  }\n\n  readToken_mult_modulo(code: number): void {\n    // '%*'\n    let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n    let width = 1;\n    let next = this.input.charCodeAt(this.state.pos + 1);\n    const exprAllowed = this.state.exprAllowed;\n\n    // Exponentiation operator **\n    if (code === charCodes.asterisk && next === charCodes.asterisk) {\n      width++;\n      next = this.input.charCodeAt(this.state.pos + 2);\n      type = tt.exponent;\n    }\n\n    if (next === charCodes.equalsTo && !exprAllowed) {\n      width++;\n      type = tt.assign;\n    }\n\n    this.finishOp(type, width);\n  }\n\n  readToken_pipe_amp(code: number): void {\n    // '||' '&&' '||=' '&&='\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, 3);\n      } else {\n        this.finishOp(\n          code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n          2,\n        );\n      }\n      return;\n    }\n\n    if (code === charCodes.verticalBar) {\n      // '|>'\n      if (next === charCodes.greaterThan) {\n        this.finishOp(tt.pipeline, 2);\n        return;\n      }\n      // '|}'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.RecordExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      // '|]'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightSquareBracket\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.TupleExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.bracketBarR, 2);\n        return;\n      }\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n      return;\n    }\n\n    this.finishOp(\n      code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n      1,\n    );\n  }\n\n  readToken_caret(): void {\n    // '^'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.bitwiseXOR, 1);\n    }\n  }\n\n  readToken_plus_min(code: number): void {\n    // '+-'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (\n        next === charCodes.dash &&\n        !this.inModule &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan &&\n        (this.state.lastTokEnd === 0 ||\n          lineBreak.test(\n            this.input.slice(this.state.lastTokEnd, this.state.pos),\n          ))\n      ) {\n        // A `-->` line comment\n        this.skipLineComment(3);\n        this.skipSpace();\n        this.nextToken();\n        return;\n      }\n      this.finishOp(tt.incDec, 2);\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.plusMin, 1);\n    }\n  }\n\n  readToken_lt_gt(code: number): void {\n    // '<>'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    let size = 1;\n\n    if (next === code) {\n      size =\n        code === charCodes.greaterThan &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan\n          ? 3\n          : 2;\n      if (this.input.charCodeAt(this.state.pos + size) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, size + 1);\n        return;\n      }\n      this.finishOp(tt.bitShift, size);\n      return;\n    }\n\n    if (\n      next === charCodes.exclamationMark &&\n      code === charCodes.lessThan &&\n      !this.inModule &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dash &&\n      this.input.charCodeAt(this.state.pos + 3) === charCodes.dash\n    ) {\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\n      this.skipLineComment(4);\n      this.skipSpace();\n      this.nextToken();\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      // <= | >=\n      size = 2;\n    }\n\n    this.finishOp(tt.relational, size);\n  }\n\n  readToken_eq_excl(code: number): void {\n    // '=!'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(\n        tt.equality,\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo\n          ? 3\n          : 2,\n      );\n      return;\n    }\n    if (code === charCodes.equalsTo && next === charCodes.greaterThan) {\n      // '=>'\n      this.state.pos += 2;\n      this.finishToken(tt.arrow);\n      return;\n    }\n    this.finishOp(code === charCodes.equalsTo ? tt.eq : tt.bang, 1);\n  }\n\n  readToken_question(): void {\n    // '?'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    const next2 = this.input.charCodeAt(this.state.pos + 2);\n    if (next === charCodes.questionMark && !this.state.inType) {\n      if (next2 === charCodes.equalsTo) {\n        // '??='\n        this.finishOp(tt.assign, 3);\n      } else {\n        // '??'\n        this.finishOp(tt.nullishCoalescing, 2);\n      }\n    } else if (\n      next === charCodes.dot &&\n      !(next2 >= charCodes.digit0 && next2 <= charCodes.digit9)\n    ) {\n      // '.' not followed by a number\n      this.state.pos += 2;\n      this.finishToken(tt.questionDot);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.question);\n    }\n  }\n\n  getTokenFromCode(code: number): void {\n    switch (code) {\n      // The interpretation of a dot depends on whether it is followed\n      // by a digit or another two dots.\n\n      case charCodes.dot:\n        this.readToken_dot();\n        return;\n\n      // Punctuation tokens.\n      case charCodes.leftParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenL);\n        return;\n      case charCodes.rightParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenR);\n        return;\n      case charCodes.semicolon:\n        ++this.state.pos;\n        this.finishToken(tt.semi);\n        return;\n      case charCodes.comma:\n        ++this.state.pos;\n        this.finishToken(tt.comma);\n        return;\n      case charCodes.leftSquareBracket:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.TupleExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // [|\n          this.finishToken(tt.bracketBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.bracketL);\n        }\n        return;\n      case charCodes.rightSquareBracket:\n        ++this.state.pos;\n        this.finishToken(tt.bracketR);\n        return;\n      case charCodes.leftCurlyBrace:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.RecordExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // {|\n          this.finishToken(tt.braceBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.braceL);\n        }\n        return;\n      case charCodes.rightCurlyBrace:\n        ++this.state.pos;\n        this.finishToken(tt.braceR);\n        return;\n\n      case charCodes.colon:\n        if (\n          this.hasPlugin(\"functionBind\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.colon\n        ) {\n          this.finishOp(tt.doubleColon, 2);\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.colon);\n        }\n        return;\n\n      case charCodes.questionMark:\n        this.readToken_question();\n        return;\n\n      case charCodes.graveAccent:\n        ++this.state.pos;\n        this.finishToken(tt.backQuote);\n        return;\n\n      case charCodes.digit0: {\n        const next = this.input.charCodeAt(this.state.pos + 1);\n        // '0x', '0X' - hex number\n        if (next === charCodes.lowercaseX || next === charCodes.uppercaseX) {\n          this.readRadixNumber(16);\n          return;\n        }\n        // '0o', '0O' - octal number\n        if (next === charCodes.lowercaseO || next === charCodes.uppercaseO) {\n          this.readRadixNumber(8);\n          return;\n        }\n        // '0b', '0B' - binary number\n        if (next === charCodes.lowercaseB || next === charCodes.uppercaseB) {\n          this.readRadixNumber(2);\n          return;\n        }\n      }\n      // Anything else beginning with a digit is an integer, octal\n      // number, or float. (fall through)\n      case charCodes.digit1:\n      case charCodes.digit2:\n      case charCodes.digit3:\n      case charCodes.digit4:\n      case charCodes.digit5:\n      case charCodes.digit6:\n      case charCodes.digit7:\n      case charCodes.digit8:\n      case charCodes.digit9:\n        this.readNumber(false);\n        return;\n\n      // Quotes produce strings.\n      case charCodes.quotationMark:\n      case charCodes.apostrophe:\n        this.readString(code);\n        return;\n\n      // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is\n      // often referred to. `finishOp` simply skips the amount of\n      // characters it is given as second argument, and returns a token\n      // of the type given by its first argument.\n\n      case charCodes.slash:\n        this.readToken_slash();\n        return;\n\n      case charCodes.percentSign:\n      case charCodes.asterisk:\n        this.readToken_mult_modulo(code);\n        return;\n\n      case charCodes.verticalBar:\n      case charCodes.ampersand:\n        this.readToken_pipe_amp(code);\n        return;\n\n      case charCodes.caret:\n        this.readToken_caret();\n        return;\n\n      case charCodes.plusSign:\n      case charCodes.dash:\n        this.readToken_plus_min(code);\n        return;\n\n      case charCodes.lessThan:\n      case charCodes.greaterThan:\n        this.readToken_lt_gt(code);\n        return;\n\n      case charCodes.equalsTo:\n      case charCodes.exclamationMark:\n        this.readToken_eq_excl(code);\n        return;\n\n      case charCodes.tilde:\n        this.finishOp(tt.tilde, 1);\n        return;\n\n      case charCodes.atSign:\n        ++this.state.pos;\n        this.finishToken(tt.at);\n        return;\n\n      case charCodes.numberSign:\n        this.readToken_numberSign();\n        return;\n\n      case charCodes.backslash:\n        this.readWord();\n        return;\n\n      default:\n        if (isIdentifierStart(code)) {\n          this.readWord();\n          return;\n        }\n    }\n\n    throw this.raise(\n      this.state.pos,\n      Errors.InvalidOrUnexpectedToken,\n      String.fromCodePoint(code),\n    );\n  }\n\n  finishOp(type: TokenType, size: number): void {\n    const str = this.input.slice(this.state.pos, this.state.pos + size);\n    this.state.pos += size;\n    this.finishToken(type, str);\n  }\n\n  readRegexp(): void {\n    const start = this.state.pos;\n    let escaped, inClass;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      const ch = this.input.charAt(this.state.pos);\n      if (lineBreak.test(ch)) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      if (escaped) {\n        escaped = false;\n      } else {\n        if (ch === \"[\") {\n          inClass = true;\n        } else if (ch === \"]\" && inClass) {\n          inClass = false;\n        } else if (ch === \"/\" && !inClass) {\n          break;\n        }\n        escaped = ch === \"\\\\\";\n      }\n      ++this.state.pos;\n    }\n    const content = this.input.slice(start, this.state.pos);\n    ++this.state.pos;\n\n    let mods = \"\";\n\n    while (this.state.pos < this.length) {\n      const char = this.input[this.state.pos];\n      const charCode = this.input.codePointAt(this.state.pos);\n\n      if (VALID_REGEX_FLAGS.has(char)) {\n        if (mods.indexOf(char) > -1) {\n          this.raise(this.state.pos + 1, Errors.DuplicateRegExpFlags);\n        }\n      } else if (\n        isIdentifierChar(charCode) ||\n        charCode === charCodes.backslash\n      ) {\n        this.raise(this.state.pos + 1, Errors.MalformedRegExpFlags);\n      } else {\n        break;\n      }\n\n      ++this.state.pos;\n      mods += char;\n    }\n\n    this.finishToken(tt.regexp, {\n      pattern: content,\n      flags: mods,\n    });\n  }\n\n  // Read an integer in the given radix. Return null if zero digits\n  // were read, the integer value otherwise. When `len` is given, this\n  // will return `null` unless the integer has exactly `len` digits.\n  // When `forceLen` is `true`, it means that we already know that in case\n  // of a malformed number we have to skip `len` characters anyway, instead\n  // of bailing out early. For example, in \"\\u{123Z}\" we want to read up to }\n  // anyway, while in \"\\u00Z\" we will stop at Z instead of consuming four\n  // characters (and thus the closing quote).\n\n  readInt(\n    radix: number,\n    len?: number,\n    forceLen?: boolean,\n    allowNumSeparator: boolean = true,\n  ): number | null {\n    const start = this.state.pos;\n    const forbiddenSiblings =\n      radix === 16\n        ? forbiddenNumericSeparatorSiblings.hex\n        : forbiddenNumericSeparatorSiblings.decBinOct;\n    const allowedSiblings =\n      radix === 16\n        ? allowedNumericSeparatorSiblings.hex\n        : radix === 10\n        ? allowedNumericSeparatorSiblings.dec\n        : radix === 8\n        ? allowedNumericSeparatorSiblings.oct\n        : allowedNumericSeparatorSiblings.bin;\n\n    let invalid = false;\n    let total = 0;\n\n    for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n      const code = this.input.charCodeAt(this.state.pos);\n      let val;\n\n      if (this.hasPlugin(\"numericSeparator\")) {\n        if (code === charCodes.underscore) {\n          const prev = this.input.charCodeAt(this.state.pos - 1);\n          const next = this.input.charCodeAt(this.state.pos + 1);\n          if (allowedSiblings.indexOf(next) === -1) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          } else if (\n            forbiddenSiblings.indexOf(prev) > -1 ||\n            forbiddenSiblings.indexOf(next) > -1 ||\n            Number.isNaN(next)\n          ) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          }\n\n          if (!allowNumSeparator) {\n            this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence);\n          }\n\n          // Ignore this _ character\n          ++this.state.pos;\n          continue;\n        }\n      }\n\n      if (code >= charCodes.lowercaseA) {\n        val = code - charCodes.lowercaseA + charCodes.lineFeed;\n      } else if (code >= charCodes.uppercaseA) {\n        val = code - charCodes.uppercaseA + charCodes.lineFeed;\n      } else if (charCodes.isDigit(code)) {\n        val = code - charCodes.digit0; // 0-9\n      } else {\n        val = Infinity;\n      }\n      if (val >= radix) {\n        // If we are in \"errorRecovery\" mode and we found a digit which is too big,\n        // don't break the loop.\n\n        if (this.options.errorRecovery && val <= 9) {\n          val = 0;\n          this.raise(this.state.start + i + 2, Errors.InvalidDigit, radix);\n        } else if (forceLen) {\n          val = 0;\n          invalid = true;\n        } else {\n          break;\n        }\n      }\n      ++this.state.pos;\n      total = total * radix + val;\n    }\n    if (\n      this.state.pos === start ||\n      (len != null && this.state.pos - start !== len) ||\n      invalid\n    ) {\n      return null;\n    }\n\n    return total;\n  }\n\n  readRadixNumber(radix: number): void {\n    const start = this.state.pos;\n    let isBigInt = false;\n\n    this.state.pos += 2; // 0x\n    const val = this.readInt(radix);\n    if (val == null) {\n      this.raise(this.state.start + 2, Errors.InvalidDigit, radix);\n    }\n\n    if (this.input.charCodeAt(this.state.pos) === charCodes.lowercaseN) {\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    if (isBigInt) {\n      const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    this.finishToken(tt.num, val);\n  }\n\n  // Read an integer, octal integer, or floating-point number.\n\n  readNumber(startsWithDot: boolean): void {\n    const start = this.state.pos;\n    let isFloat = false;\n    let isBigInt = false;\n    let isNonOctalDecimalInt = false;\n\n    if (!startsWithDot && this.readInt(10) === null) {\n      this.raise(start, Errors.InvalidNumber);\n    }\n    let octal =\n      this.state.pos - start >= 2 &&\n      this.input.charCodeAt(start) === charCodes.digit0;\n    if (octal) {\n      if (this.state.strict) {\n        this.raise(start, Errors.StrictOctalLiteral);\n      }\n      if (/[89]/.test(this.input.slice(start, this.state.pos))) {\n        octal = false;\n        isNonOctalDecimalInt = true;\n      }\n    }\n\n    let next = this.input.charCodeAt(this.state.pos);\n    if (next === charCodes.dot && !octal) {\n      ++this.state.pos;\n      this.readInt(10);\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    if (\n      (next === charCodes.uppercaseE || next === charCodes.lowercaseE) &&\n      !octal\n    ) {\n      next = this.input.charCodeAt(++this.state.pos);\n      if (next === charCodes.plusSign || next === charCodes.dash) {\n        ++this.state.pos;\n      }\n      if (this.readInt(10) === null) this.raise(start, \"Invalid number\");\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    // disallow numeric separators in non octal decimals and legacy octal likes\n    if (this.hasPlugin(\"numericSeparator\") && (octal || isNonOctalDecimalInt)) {\n      const underscorePos = this.input\n        .slice(start, this.state.pos)\n        .indexOf(\"_\");\n      if (underscorePos > 0) {\n        this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator);\n      }\n    }\n\n    if (next === charCodes.lowercaseN) {\n      // disallow floats, legacy octal syntax and non octal decimals\n      // new style octal (\"0o\") is handled in this.readRadixNumber\n      if (isFloat || octal || isNonOctalDecimalInt) {\n        this.raise(start, \"Invalid BigIntLiteral\");\n      }\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    // remove \"_\" for numeric literal separator, and \"n\" for BigInts\n    const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n\n    if (isBigInt) {\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    const val = octal ? parseInt(str, 8) : parseFloat(str);\n    this.finishToken(tt.num, val);\n  }\n\n  // Read a string value, interpreting backslash-escapes.\n\n  readCodePoint(throwOnInvalid: boolean): number | null {\n    const ch = this.input.charCodeAt(this.state.pos);\n    let code;\n\n    if (ch === charCodes.leftCurlyBrace) {\n      const codePos = ++this.state.pos;\n      code = this.readHexChar(\n        this.input.indexOf(\"}\", this.state.pos) - this.state.pos,\n        true,\n        throwOnInvalid,\n      );\n      ++this.state.pos;\n      if (code !== null && code > 0x10ffff) {\n        if (throwOnInvalid) {\n          this.raise(codePos, Errors.InvalidCodePoint);\n        } else {\n          return null;\n        }\n      }\n    } else {\n      code = this.readHexChar(4, false, throwOnInvalid);\n    }\n    return code;\n  }\n\n  readString(quote: number): void {\n    let out = \"\",\n      chunkStart = ++this.state.pos;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (ch === quote) break;\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        // $FlowFixMe\n        out += this.readEscapedChar(false);\n        chunkStart = this.state.pos;\n      } else if (\n        ch === charCodes.lineSeparator ||\n        ch === charCodes.paragraphSeparator\n      ) {\n        ++this.state.pos;\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      } else {\n        ++this.state.pos;\n      }\n    }\n    out += this.input.slice(chunkStart, this.state.pos++);\n    this.finishToken(tt.string, out);\n  }\n\n  // Reads template string tokens.\n\n  readTmplToken(): void {\n    let out = \"\",\n      chunkStart = this.state.pos,\n      containsInvalid = false;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedTemplate);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (\n        ch === charCodes.graveAccent ||\n        (ch === charCodes.dollarSign &&\n          this.input.charCodeAt(this.state.pos + 1) ===\n            charCodes.leftCurlyBrace)\n      ) {\n        if (this.state.pos === this.state.start && this.match(tt.template)) {\n          if (ch === charCodes.dollarSign) {\n            this.state.pos += 2;\n            this.finishToken(tt.dollarBraceL);\n            return;\n          } else {\n            ++this.state.pos;\n            this.finishToken(tt.backQuote);\n            return;\n          }\n        }\n        out += this.input.slice(chunkStart, this.state.pos);\n        this.finishToken(tt.template, containsInvalid ? null : out);\n        return;\n      }\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        const escaped = this.readEscapedChar(true);\n        if (escaped === null) {\n          containsInvalid = true;\n        } else {\n          out += escaped;\n        }\n        chunkStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        ++this.state.pos;\n        switch (ch) {\n          case charCodes.carriageReturn:\n            if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n              ++this.state.pos;\n            }\n          // fall through\n          case charCodes.lineFeed:\n            out += \"\\n\";\n            break;\n          default:\n            out += String.fromCharCode(ch);\n            break;\n        }\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n        chunkStart = this.state.pos;\n      } else {\n        ++this.state.pos;\n      }\n    }\n  }\n\n  // Used to read escaped characters\n\n  readEscapedChar(inTemplate: boolean): string | null {\n    const throwOnInvalid = !inTemplate;\n    const ch = this.input.charCodeAt(++this.state.pos);\n    ++this.state.pos;\n    switch (ch) {\n      case charCodes.lowercaseN:\n        return \"\\n\";\n      case charCodes.lowercaseR:\n        return \"\\r\";\n      case charCodes.lowercaseX: {\n        const code = this.readHexChar(2, false, throwOnInvalid);\n        return code === null ? null : String.fromCharCode(code);\n      }\n      case charCodes.lowercaseU: {\n        const code = this.readCodePoint(throwOnInvalid);\n        return code === null ? null : String.fromCodePoint(code);\n      }\n      case charCodes.lowercaseT:\n        return \"\\t\";\n      case charCodes.lowercaseB:\n        return \"\\b\";\n      case charCodes.lowercaseV:\n        return \"\\u000b\";\n      case charCodes.lowercaseF:\n        return \"\\f\";\n      case charCodes.carriageReturn:\n        if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n          ++this.state.pos;\n        }\n      // fall through\n      case charCodes.lineFeed:\n        this.state.lineStart = this.state.pos;\n        ++this.state.curLine;\n      // fall through\n      case charCodes.lineSeparator:\n      case charCodes.paragraphSeparator:\n        return \"\";\n      case charCodes.digit8:\n      case charCodes.digit9:\n        if (inTemplate) {\n          return null;\n        }\n      // fall through\n      default:\n        if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n          const codePos = this.state.pos - 1;\n          // $FlowFixMe\n          let octalStr = this.input\n            .substr(this.state.pos - 1, 3)\n            .match(/^[0-7]+/)[0];\n          let octal = parseInt(octalStr, 8);\n          if (octal > 255) {\n            octalStr = octalStr.slice(0, -1);\n            octal = parseInt(octalStr, 8);\n          }\n          this.state.pos += octalStr.length - 1;\n          const next = this.input.charCodeAt(this.state.pos);\n          if (\n            octalStr !== \"0\" ||\n            next === charCodes.digit8 ||\n            next === charCodes.digit9\n          ) {\n            if (inTemplate) {\n              return null;\n            } else if (this.state.strict) {\n              this.raise(codePos, Errors.StrictOctalLiteral);\n            } else {\n              // This property is used to throw an error for\n              // an octal literal in a directive that occurs prior\n              // to a \"use strict\" directive.\n              this.state.octalPositions.push(codePos);\n            }\n          }\n\n          return String.fromCharCode(octal);\n        }\n\n        return String.fromCharCode(ch);\n    }\n  }\n\n  // Used to read character escape sequences ('\\x', '\\u').\n\n  readHexChar(\n    len: number,\n    forceLen: boolean,\n    throwOnInvalid: boolean,\n  ): number | null {\n    const codePos = this.state.pos;\n    const n = this.readInt(16, len, forceLen, false);\n    if (n === null) {\n      if (throwOnInvalid) {\n        this.raise(codePos, Errors.InvalidEscapeSequence);\n      } else {\n        this.state.pos = codePos - 1;\n      }\n    }\n    return n;\n  }\n\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\n  // to whether the word contained a '\\u' escape.\n  //\n  // Incrementally adds only escaped chars, adding other chunks as-is\n  // as a micro-optimization.\n\n  readWord1(): string {\n    let word = \"\";\n    this.state.containsEsc = false;\n    const start = this.state.pos;\n    let chunkStart = this.state.pos;\n\n    while (this.state.pos < this.length) {\n      const ch = this.input.codePointAt(this.state.pos);\n      if (isIdentifierChar(ch)) {\n        this.state.pos += ch <= 0xffff ? 1 : 2;\n      } else if (this.state.isIterator && ch === charCodes.atSign) {\n        ++this.state.pos;\n      } else if (ch === charCodes.backslash) {\n        this.state.containsEsc = true;\n\n        word += this.input.slice(chunkStart, this.state.pos);\n        const escStart = this.state.pos;\n        const identifierCheck =\n          this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n\n        if (this.input.charCodeAt(++this.state.pos) !== charCodes.lowercaseU) {\n          this.raise(this.state.pos, Errors.MissingUnicodeEscape);\n          continue;\n        }\n\n        ++this.state.pos;\n        const esc = this.readCodePoint(true);\n        if (esc !== null) {\n          if (!identifierCheck(esc)) {\n            this.raise(escStart, Errors.EscapedCharNotAnIdentifier);\n          }\n\n          word += String.fromCodePoint(esc);\n        }\n        chunkStart = this.state.pos;\n      } else {\n        break;\n      }\n    }\n    return word + this.input.slice(chunkStart, this.state.pos);\n  }\n\n  isIterator(word: string): boolean {\n    return word === \"@@iterator\" || word === \"@@asyncIterator\";\n  }\n\n  // Read an identifier or keyword token. Will check for reserved\n  // words when necessary.\n\n  readWord(): void {\n    const word = this.readWord1();\n    const type = keywordTypes.get(word) || tt.name;\n\n    // Allow @@iterator and @@asyncIterator as a identifier only inside type\n    if (\n      this.state.isIterator &&\n      (!this.isIterator(word) || !this.state.inType)\n    ) {\n      this.raise(this.state.pos, Errors.InvalidIdentifier, word);\n    }\n\n    this.finishToken(type, word);\n  }\n\n  checkKeywordEscapes(): void {\n    const kw = this.state.type.keyword;\n    if (kw && this.state.containsEsc) {\n      this.raise(this.state.start, Errors.InvalidEscapedReservedWord, kw);\n    }\n  }\n\n  braceIsBlock(prevType: TokenType): boolean {\n    const parent = this.curContext();\n    if (parent === ct.functionExpression || parent === ct.functionStatement) {\n      return true;\n    }\n    if (\n      prevType === tt.colon &&\n      (parent === ct.braceStatement || parent === ct.braceExpression)\n    ) {\n      return !parent.isExpr;\n    }\n\n    // The check for `tt.name && exprAllowed` detects whether we are\n    // after a `yield` or `of` construct. See the `updateContext` for\n    // `tt.name`.\n    if (\n      prevType === tt._return ||\n      (prevType === tt.name && this.state.exprAllowed)\n    ) {\n      return lineBreak.test(\n        this.input.slice(this.state.lastTokEnd, this.state.start),\n      );\n    }\n\n    if (\n      prevType === tt._else ||\n      prevType === tt.semi ||\n      prevType === tt.eof ||\n      prevType === tt.parenR ||\n      prevType === tt.arrow\n    ) {\n      return true;\n    }\n\n    if (prevType === tt.braceL) {\n      return parent === ct.braceStatement;\n    }\n\n    if (\n      prevType === tt._var ||\n      prevType === tt._const ||\n      prevType === tt.name\n    ) {\n      return false;\n    }\n\n    if (prevType === tt.relational) {\n      // `class C<T> { ... }`\n      return true;\n    }\n\n    return !this.state.exprAllowed;\n  }\n\n  updateContext(prevType: TokenType): void {\n    const type = this.state.type;\n    let update;\n\n    if (type.keyword && (prevType === tt.dot || prevType === tt.questionDot)) {\n      this.state.exprAllowed = false;\n    } else if ((update = type.updateContext)) {\n      update.call(this, prevType);\n    } else {\n      this.state.exprAllowed = type.beforeExpr;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport Tokenizer from \"../tokenizer\";\nimport State from \"../tokenizer/state\";\nimport type { Node } from \"../types\";\nimport { lineBreak } from \"../util/whitespace\";\nimport { isIdentifierChar } from \"../util/identifier\";\nimport * as charCodes from \"charcodes\";\nimport { Errors } from \"./location\";\n\ntype TryParse<Node, Error, Thrown, Aborted, FailState> = {\n  node: Node,\n  error: Error,\n  thrown: Thrown,\n  aborted: Aborted,\n  failState: FailState,\n};\n\n// ## Parser utilities\n\nexport default class UtilParser extends Tokenizer {\n  // TODO\n\n  addExtra(node: Node, key: string, val: any): void {\n    if (!node) return;\n\n    const extra = (node.extra = node.extra || {});\n    extra[key] = val;\n  }\n\n  // TODO\n\n  isRelational(op: \"<\" | \">\"): boolean {\n    return this.match(tt.relational) && this.state.value === op;\n  }\n\n  isLookaheadRelational(op: \"<\" | \">\"): boolean {\n    const next = this.nextTokenStart();\n    if (this.input.charAt(next) === op) {\n      if (next + 1 === this.input.length) {\n        return true;\n      }\n      const afterNext = this.input.charCodeAt(next + 1);\n      return afterNext !== op.charCodeAt(0) && afterNext !== charCodes.equalsTo;\n    }\n    return false;\n  }\n\n  // TODO\n\n  expectRelational(op: \"<\" | \">\"): void {\n    if (this.isRelational(op)) {\n      this.next();\n    } else {\n      this.unexpected(null, tt.relational);\n    }\n  }\n\n  // Tests whether parsed token is a contextual keyword.\n\n  isContextual(name: string): boolean {\n    return (\n      this.match(tt.name) &&\n      this.state.value === name &&\n      !this.state.containsEsc\n    );\n  }\n\n  isUnparsedContextual(nameStart: number, name: string): boolean {\n    const nameEnd = nameStart + name.length;\n    return (\n      this.input.slice(nameStart, nameEnd) === name &&\n      (nameEnd === this.input.length ||\n        !isIdentifierChar(this.input.charCodeAt(nameEnd)))\n    );\n  }\n\n  isLookaheadContextual(name: string): boolean {\n    const next = this.nextTokenStart();\n    return this.isUnparsedContextual(next, name);\n  }\n\n  // Consumes contextual keyword if possible.\n\n  eatContextual(name: string): boolean {\n    return this.isContextual(name) && this.eat(tt.name);\n  }\n\n  // Asserts that following token is given contextual keyword.\n\n  expectContextual(name: string, message?: string): void {\n    if (!this.eatContextual(name)) this.unexpected(null, message);\n  }\n\n  // Test whether a semicolon can be inserted at the current position.\n\n  canInsertSemicolon(): boolean {\n    return (\n      this.match(tt.eof) ||\n      this.match(tt.braceR) ||\n      this.hasPrecedingLineBreak()\n    );\n  }\n\n  hasPrecedingLineBreak(): boolean {\n    return lineBreak.test(\n      this.input.slice(this.state.lastTokEnd, this.state.start),\n    );\n  }\n\n  // TODO\n\n  isLineTerminator(): boolean {\n    return this.eat(tt.semi) || this.canInsertSemicolon();\n  }\n\n  // Consume a semicolon, or, failing that, see if we are allowed to\n  // pretend that there is a semicolon at this position.\n\n  semicolon(): void {\n    if (!this.isLineTerminator()) this.unexpected(null, tt.semi);\n  }\n\n  // Expect a token of a given type. If found, consume it, otherwise,\n  // raise an unexpected token error at given pos.\n\n  expect(type: TokenType, pos?: ?number): void {\n    this.eat(type) || this.unexpected(pos, type);\n  }\n\n  // Throws if the current token and the prev one are separated by a space.\n  assertNoSpace(message: string = \"Unexpected space.\"): void {\n    if (this.state.start > this.state.lastTokEnd) {\n      this.raise(this.state.lastTokEnd, message);\n    }\n  }\n\n  // Raise an unexpected token error. Can take the expected token type\n  // instead of a message string.\n\n  unexpected(\n    pos: ?number,\n    messageOrType: string | TokenType = \"Unexpected token\",\n  ): empty {\n    if (typeof messageOrType !== \"string\") {\n      messageOrType = `Unexpected token, expected \"${messageOrType.label}\"`;\n    }\n    throw this.raise(pos != null ? pos : this.state.start, messageOrType);\n  }\n\n  expectPlugin(name: string, pos?: ?number): true {\n    if (!this.hasPlugin(name)) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: [name] },\n        `This experimental syntax requires enabling the parser plugin: '${name}'`,\n      );\n    }\n\n    return true;\n  }\n\n  expectOnePlugin(names: Array<string>, pos?: ?number): void {\n    if (!names.some(n => this.hasPlugin(n))) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: names },\n        `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(\n          \", \",\n        )}'`,\n      );\n    }\n  }\n\n  checkYieldAwaitInDefaultParams() {\n    if (\n      this.state.yieldPos !== -1 &&\n      (this.state.awaitPos === -1 || this.state.yieldPos < this.state.awaitPos)\n    ) {\n      this.raise(\n        this.state.yieldPos,\n        \"Yield cannot be used as name inside a generator function\",\n      );\n    }\n    if (this.state.awaitPos !== -1) {\n      this.raise(\n        this.state.awaitPos,\n        \"Await cannot be used as name inside an async function\",\n      );\n    }\n  }\n\n  // tryParse will clone parser state.\n  // It is expensive and should be used with cautions\n  tryParse<T: Node | $ReadOnlyArray<Node>>(\n    fn: (abort: (node?: T) => empty) => T,\n    oldState: State = this.state.clone(),\n  ):\n    | TryParse<T, null, false, false, null>\n    | TryParse<T | null, SyntaxError, boolean, false, State>\n    | TryParse<T | null, null, false, true, State> {\n    const abortSignal: { node: T | null } = { node: null };\n    try {\n      const node = fn((node = null) => {\n        abortSignal.node = node;\n        throw abortSignal;\n      });\n      if (this.state.errors.length > oldState.errors.length) {\n        const failState = this.state;\n        this.state = oldState;\n        return {\n          node,\n          error: (failState.errors[oldState.errors.length]: SyntaxError),\n          thrown: false,\n          aborted: false,\n          failState,\n        };\n      }\n\n      return {\n        node,\n        error: null,\n        thrown: false,\n        aborted: false,\n        failState: null,\n      };\n    } catch (error) {\n      const failState = this.state;\n      this.state = oldState;\n      if (error instanceof SyntaxError) {\n        return { node: null, error, thrown: true, aborted: false, failState };\n      }\n      if (error === abortSignal) {\n        return {\n          node: abortSignal.node,\n          error: null,\n          thrown: false,\n          aborted: true,\n          failState,\n        };\n      }\n\n      throw error;\n    }\n  }\n\n  checkExpressionErrors(\n    refExpressionErrors: ?ExpressionErrors,\n    andThrow: boolean,\n  ) {\n    if (!refExpressionErrors) return false;\n    const { shorthandAssign, doubleProto } = refExpressionErrors;\n    if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0;\n    if (shorthandAssign >= 0) {\n      this.unexpected(shorthandAssign);\n    }\n    if (doubleProto >= 0) {\n      this.raise(doubleProto, Errors.DuplicateProto);\n    }\n  }\n}\n\n/**\n * The ExpressionErrors is a context struct used to track\n * - **shorthandAssign**: track initializer `=` position when parsing ambiguous\n *   patterns. When we are sure the parsed pattern is a RHS, which means it is\n *   not a pattern, we will throw on this position on invalid assign syntax,\n *   otherwise it will be reset to -1\n * - **doubleProto**: track the duplicate `__proto__` key position when parsing\n *   ambiguous object patterns. When we are sure the parsed pattern is a RHS,\n *   which means it is an object literal, we will throw on this position for\n *   __proto__ redefinition, otherwise it will be reset to -1\n */\nexport class ExpressionErrors {\n  shorthandAssign = -1;\n  doubleProto = -1;\n}\n","// @flow\n\nimport type Parser from \"./index\";\nimport UtilParser from \"./util\";\nimport { SourceLocation, type Position } from \"../util/location\";\nimport type { Comment, Node as NodeType, NodeBase } from \"../types\";\n\n// Start an AST node, attaching a start offset.\n\nclass Node implements NodeBase {\n  constructor(parser: Parser, pos: number, loc: Position) {\n    this.type = \"\";\n    this.start = pos;\n    this.end = 0;\n    this.loc = new SourceLocation(loc);\n    if (parser && parser.options.ranges) this.range = [pos, 0];\n    if (parser && parser.filename) this.loc.filename = parser.filename;\n  }\n\n  type: string;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n  range: [number, number];\n  leadingComments: Array<Comment>;\n  trailingComments: Array<Comment>;\n  innerComments: Array<Comment>;\n  extra: { [key: string]: any };\n\n  __clone(): this {\n    // $FlowIgnore\n    const newNode: any = new Node();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // Do not clone comments that are already attached to the node\n      if (\n        key !== \"leadingComments\" &&\n        key !== \"trailingComments\" &&\n        key !== \"innerComments\"\n      ) {\n        // $FlowIgnore\n        newNode[key] = this[key];\n      }\n    }\n\n    return newNode;\n  }\n}\n\nexport class NodeUtils extends UtilParser {\n  startNode<T: NodeType>(): T {\n    // $FlowIgnore\n    return new Node(this, this.state.start, this.state.startLoc);\n  }\n\n  startNodeAt<T: NodeType>(pos: number, loc: Position): T {\n    // $FlowIgnore\n    return new Node(this, pos, loc);\n  }\n\n  /** Start a new node with a previous node's location. */\n  startNodeAtNode<T: NodeType>(type: NodeType): T {\n    return this.startNodeAt(type.start, type.loc.start);\n  }\n\n  // Finish an AST node, adding `type` and `end` properties.\n\n  finishNode<T: NodeType>(node: T, type: string): T {\n    return this.finishNodeAt(\n      node,\n      type,\n      this.state.lastTokEnd,\n      this.state.lastTokEndLoc,\n    );\n  }\n\n  // Finish node at given position\n\n  finishNodeAt<T: NodeType>(\n    node: T,\n    type: string,\n    pos: number,\n    loc: Position,\n  ): T {\n    if (process.env.NODE_ENV !== \"production\" && node.end > 0) {\n      throw new Error(\n        \"Do not call finishNode*() twice on the same node.\" +\n          \" Instead use resetEndLocation() or change type directly.\",\n      );\n    }\n    node.type = type;\n    node.end = pos;\n    node.loc.end = loc;\n    if (this.options.ranges) node.range[1] = pos;\n    this.processComment(node);\n    return node;\n  }\n\n  resetStartLocation(node: NodeBase, start: number, startLoc: Position): void {\n    node.start = start;\n    node.loc.start = startLoc;\n    if (this.options.ranges) node.range[0] = start;\n  }\n\n  resetEndLocation(\n    node: NodeBase,\n    end?: number = this.state.lastTokEnd,\n    endLoc?: Position = this.state.lastTokEndLoc,\n  ): void {\n    node.end = end;\n    node.loc.end = endLoc;\n    if (this.options.ranges) node.range[1] = end;\n  }\n\n  /**\n   * Reset the start location of node to the start location of locationNode\n   */\n  resetStartLocationFromNode(node: NodeBase, locationNode: NodeBase): void {\n    this.resetStartLocation(node, locationNode.start, locationNode.loc.start);\n  }\n}\n","// @flow\n\nimport * as charCodes from \"charcodes\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport type {\n  TSParameterProperty,\n  Decorator,\n  Expression,\n  Node,\n  Pattern,\n  RestElement,\n  SpreadElement,\n  /*:: Identifier, */\n  /*:: ObjectExpression, */\n  /*:: ObjectPattern, */\n} from \"../types\";\nimport type { Pos, Position } from \"../util/location\";\nimport {\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport { NodeUtils } from \"./node\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { Errors } from \"./location\";\n\nconst unwrapParenthesizedExpression = (node: Node) => {\n  return node.type === \"ParenthesizedExpression\"\n    ? unwrapParenthesizedExpression(node.expression)\n    : node;\n};\n\nexport default class LValParser extends NodeUtils {\n  // Forward-declaration: defined in expression.js\n  /*::\n  +parseIdentifier: (liberal?: boolean) => Identifier;\n  +parseMaybeAssign: (\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ) => Expression;\n  +parseObj: <T: ObjectPattern | ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ) => T;\n  */\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseDecorator: () => Decorator;\n  */\n\n  // Convert existing expression atom to assignable pattern\n  // if possible.\n  // NOTE: There is a corresponding \"isAssignable\" method in flow.js.\n  // When this one is updated, please check if also that one needs to be updated.\n\n  toAssignable(node: Node): Node {\n    let parenthesized = undefined;\n    if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n      parenthesized = unwrapParenthesizedExpression(node);\n      if (\n        parenthesized.type !== \"Identifier\" &&\n        parenthesized.type !== \"MemberExpression\"\n      ) {\n        this.raise(node.start, Errors.InvalidParenthesizedAssignment);\n      }\n    }\n\n    switch (node.type) {\n      case \"Identifier\":\n      case \"ObjectPattern\":\n      case \"ArrayPattern\":\n      case \"AssignmentPattern\":\n        break;\n\n      case \"ObjectExpression\":\n        node.type = \"ObjectPattern\";\n        for (\n          let i = 0, length = node.properties.length, last = length - 1;\n          i < length;\n          i++\n        ) {\n          const prop = node.properties[i];\n          const isLast = i === last;\n          this.toAssignableObjectExpressionProp(prop, isLast);\n\n          if (\n            isLast &&\n            prop.type === \"RestElement\" &&\n            node.extra?.trailingComma\n          ) {\n            this.raiseRestNotLast(node.extra.trailingComma);\n          }\n        }\n        break;\n\n      case \"ObjectProperty\":\n        this.toAssignable(node.value);\n        break;\n\n      case \"SpreadElement\": {\n        this.checkToRestConversion(node);\n\n        node.type = \"RestElement\";\n        const arg = node.argument;\n        this.toAssignable(arg);\n        break;\n      }\n\n      case \"ArrayExpression\":\n        node.type = \"ArrayPattern\";\n        this.toAssignableList(node.elements, node.extra?.trailingComma);\n        break;\n\n      case \"AssignmentExpression\":\n        if (node.operator !== \"=\") {\n          this.raise(node.left.end, Errors.MissingEqInAssignment);\n        }\n\n        node.type = \"AssignmentPattern\";\n        delete node.operator;\n        this.toAssignable(node.left);\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.toAssignable(((parenthesized: any): Expression));\n        break;\n\n      default:\n      // We don't know how to deal with this node. It will\n      // be reported by a later call to checkLVal\n    }\n    return node;\n  }\n\n  toAssignableObjectExpressionProp(prop: Node, isLast: boolean) {\n    if (prop.type === \"ObjectMethod\") {\n      const error =\n        prop.kind === \"get\" || prop.kind === \"set\"\n          ? Errors.PatternHasAccessor\n          : Errors.PatternHasMethod;\n\n      this.raise(prop.key.start, error);\n    } else if (prop.type === \"SpreadElement\" && !isLast) {\n      this.raiseRestNotLast(prop.start);\n    } else {\n      this.toAssignable(prop);\n    }\n  }\n\n  // Convert list of expression atoms to binding list.\n\n  toAssignableList(\n    exprList: Expression[],\n    trailingCommaPos?: ?number,\n  ): $ReadOnlyArray<Pattern> {\n    let end = exprList.length;\n    if (end) {\n      const last = exprList[end - 1];\n      if (last && last.type === \"RestElement\") {\n        --end;\n      } else if (last && last.type === \"SpreadElement\") {\n        last.type = \"RestElement\";\n        const arg = last.argument;\n        this.toAssignable(arg);\n        if (\n          arg.type !== \"Identifier\" &&\n          arg.type !== \"MemberExpression\" &&\n          arg.type !== \"ArrayPattern\" &&\n          arg.type !== \"ObjectPattern\"\n        ) {\n          this.unexpected(arg.start);\n        }\n\n        if (trailingCommaPos) {\n          this.raiseTrailingCommaAfterRest(trailingCommaPos);\n        }\n\n        --end;\n      }\n    }\n    for (let i = 0; i < end; i++) {\n      const elt = exprList[i];\n      if (elt) {\n        this.toAssignable(elt);\n        if (elt.type === \"RestElement\") {\n          this.raiseRestNotLast(elt.start);\n        }\n      }\n    }\n    return exprList;\n  }\n\n  // Convert list of expression atoms to a list of\n\n  toReferencedList(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean, // eslint-disable-line no-unused-vars\n  ): $ReadOnlyArray<?Expression> {\n    return exprList;\n  }\n\n  toReferencedListDeep(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean,\n  ): void {\n    this.toReferencedList(exprList, isParenthesizedExpr);\n\n    for (const expr of exprList) {\n      if (expr && expr.type === \"ArrayExpression\") {\n        this.toReferencedListDeep(expr.elements);\n      }\n    }\n  }\n\n  // Parses spread element.\n\n  parseSpread(\n    refExpressionErrors: ?ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): SpreadElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseMaybeAssign(\n      false,\n      refExpressionErrors,\n      undefined,\n      refNeedsArrowPos,\n    );\n    return this.finishNode(node, \"SpreadElement\");\n  }\n\n  parseRestBinding(): RestElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseBindingAtom();\n    return this.finishNode(node, \"RestElement\");\n  }\n\n  // Parses lvalue (assignable) atom.\n  parseBindingAtom(): Pattern {\n    switch (this.state.type) {\n      case tt.bracketL: {\n        const node = this.startNode();\n        this.next();\n        node.elements = this.parseBindingList(\n          tt.bracketR,\n          charCodes.rightSquareBracket,\n          true,\n        );\n        return this.finishNode(node, \"ArrayPattern\");\n      }\n\n      case tt.braceL:\n        return this.parseObj(tt.braceR, true);\n    }\n\n    return this.parseIdentifier();\n  }\n\n  parseBindingList(\n    close: TokenType,\n    closeCharCode: $Values<typeof charCodes>,\n    allowEmpty?: boolean,\n    allowModifiers?: boolean,\n  ): $ReadOnlyArray<Pattern | TSParameterProperty> {\n    const elts: Array<Pattern | TSParameterProperty> = [];\n    let first = true;\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n      }\n      if (allowEmpty && this.match(tt.comma)) {\n        // $FlowFixMe This method returns `$ReadOnlyArray<?Pattern>` if `allowEmpty` is set.\n        elts.push(null);\n      } else if (this.eat(close)) {\n        break;\n      } else if (this.match(tt.ellipsis)) {\n        elts.push(this.parseAssignableListItemTypes(this.parseRestBinding()));\n        this.checkCommaAfterRest(closeCharCode);\n        this.expect(close);\n        break;\n      } else {\n        const decorators = [];\n        if (this.match(tt.at) && this.hasPlugin(\"decorators\")) {\n          this.raise(this.state.start, Errors.UnsupportedParameterDecorator);\n        }\n        while (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n        }\n        elts.push(this.parseAssignableListItem(allowModifiers, decorators));\n      }\n    }\n    return elts;\n  }\n\n  parseAssignableListItem(\n    allowModifiers: ?boolean,\n    decorators: Decorator[],\n  ): Pattern | TSParameterProperty {\n    const left = this.parseMaybeDefault();\n    this.parseAssignableListItemTypes(left);\n    const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n    if (decorators.length) {\n      left.decorators = decorators;\n    }\n    return elt;\n  }\n\n  parseAssignableListItemTypes(param: Pattern): Pattern {\n    return param;\n  }\n\n  // Parses assignment pattern around given atom if possible.\n\n  parseMaybeDefault(\n    startPos?: ?number,\n    startLoc?: ?Position,\n    left?: ?Pattern,\n  ): Pattern {\n    startLoc = startLoc || this.state.startLoc;\n    startPos = startPos || this.state.start;\n    left = left || this.parseBindingAtom();\n    if (!this.eat(tt.eq)) return left;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    node.left = left;\n    node.right = this.parseMaybeAssign();\n    return this.finishNode(node, \"AssignmentPattern\");\n  }\n\n  // Verify that a node is an lval — something that can be assigned\n  // to.\n\n  checkLVal(\n    expr: Expression,\n    bindingType: BindingTypes = BIND_NONE,\n    checkClashes: ?{ [key: string]: boolean },\n    contextDescription: string,\n    disallowLetBinding?: boolean,\n    strictModeChanged?: boolean = false,\n  ): void {\n    switch (expr.type) {\n      case \"Identifier\":\n        if (\n          this.state.strict &&\n          // \"Global\" reserved words have already been checked by parseIdentifier,\n          // unless they have been found in the id or parameters of a strict-mode\n          // function in a sloppy context.\n          (strictModeChanged\n            ? isStrictBindReservedWord(expr.name, this.inModule)\n            : isStrictBindOnlyReservedWord(expr.name))\n        ) {\n          this.raise(\n            expr.start,\n            bindingType === BIND_NONE\n              ? Errors.StrictEvalArguments\n              : Errors.StrictEvalArgumentsBinding,\n            expr.name,\n          );\n        }\n\n        if (checkClashes) {\n          // we need to prefix this with an underscore for the cases where we have a key of\n          // `__proto__`. there's a bug in old V8 where the following wouldn't work:\n          //\n          //   > var obj = Object.create(null);\n          //   undefined\n          //   > obj.__proto__\n          //   null\n          //   > obj.__proto__ = true;\n          //   true\n          //   > obj.__proto__\n          //   null\n          const key = `_${expr.name}`;\n\n          if (checkClashes[key]) {\n            this.raise(expr.start, Errors.ParamDupe);\n          } else {\n            checkClashes[key] = true;\n          }\n        }\n        if (disallowLetBinding && expr.name === \"let\") {\n          this.raise(expr.start, Errors.LetInLexicalBinding);\n        }\n        if (!(bindingType & BIND_NONE)) {\n          this.scope.declareName(expr.name, bindingType, expr.start);\n        }\n        break;\n\n      case \"MemberExpression\":\n        if (bindingType !== BIND_NONE) {\n          this.raise(expr.start, Errors.InvalidPropertyBindingPattern);\n        }\n        break;\n\n      case \"ObjectPattern\":\n        for (let prop of expr.properties) {\n          if (prop.type === \"ObjectProperty\") prop = prop.value;\n          // If we find here an ObjectMethod, it's because this was originally\n          // an ObjectExpression which has then been converted.\n          // toAssignable already reported this error with a nicer message.\n          else if (prop.type === \"ObjectMethod\") continue;\n\n          this.checkLVal(\n            prop,\n            bindingType,\n            checkClashes,\n            \"object destructuring pattern\",\n            disallowLetBinding,\n          );\n        }\n        break;\n\n      case \"ArrayPattern\":\n        for (const elem of expr.elements) {\n          if (elem) {\n            this.checkLVal(\n              elem,\n              bindingType,\n              checkClashes,\n              \"array destructuring pattern\",\n              disallowLetBinding,\n            );\n          }\n        }\n        break;\n\n      case \"AssignmentPattern\":\n        this.checkLVal(\n          expr.left,\n          bindingType,\n          checkClashes,\n          \"assignment pattern\",\n        );\n        break;\n\n      case \"RestElement\":\n        this.checkLVal(\n          expr.argument,\n          bindingType,\n          checkClashes,\n          \"rest element\",\n        );\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.checkLVal(\n          expr.expression,\n          bindingType,\n          checkClashes,\n          \"parenthesized expression\",\n        );\n        break;\n\n      default: {\n        this.raise(\n          expr.start,\n          bindingType === BIND_NONE\n            ? Errors.InvalidLhs\n            : Errors.InvalidLhsBinding,\n          contextDescription,\n        );\n      }\n    }\n  }\n\n  checkToRestConversion(node: SpreadElement): void {\n    if (\n      node.argument.type !== \"Identifier\" &&\n      node.argument.type !== \"MemberExpression\"\n    ) {\n      this.raise(node.argument.start, Errors.InvalidRestAssignmentPattern);\n    }\n  }\n\n  checkCommaAfterRest(close: $Values<typeof charCodes>): void {\n    if (this.match(tt.comma)) {\n      if (this.lookaheadCharCode() === close) {\n        this.raiseTrailingCommaAfterRest(this.state.start);\n      } else {\n        this.raiseRestNotLast(this.state.start);\n      }\n    }\n  }\n\n  raiseRestNotLast(pos: number) {\n    throw this.raise(pos, Errors.ElementAfterRest);\n  }\n\n  raiseTrailingCommaAfterRest(pos: number) {\n    this.raise(pos, Errors.RestTrailingComma);\n  }\n}\n","// @flow\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport { types as ct } from \"../tokenizer/context\";\nimport * as N from \"../types\";\nimport LValParser from \"./lval\";\nimport {\n  isKeyword,\n  isReservedWord,\n  isStrictReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport type { Pos, Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_OUTSIDE,\n  BIND_VAR,\n  SCOPE_ARROW,\n  SCOPE_CLASS,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport {\n  PARAM_AWAIT,\n  PARAM_RETURN,\n  PARAM,\n  functionFlags,\n} from \"../util/production-parameter\";\nimport { Errors } from \"./location\";\n\nexport default class ExpressionParser extends LValParser {\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseBlock: (\n    allowDirectives?: boolean,\n    createNewLexicalScope?: boolean,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ) => N.BlockStatement;\n  +parseClass: (\n    node: N.Class,\n    isStatement: boolean,\n    optionalId?: boolean,\n  ) => N.Class;\n  +parseDecorators: (allowExport?: boolean) => void;\n  +parseFunction: <T: N.NormalFunction>(\n    node: T,\n    statement?: number,\n    allowExpressionBody?: boolean,\n    isAsync?: boolean,\n  ) => T;\n  +parseFunctionParams: (node: N.Function, allowModifiers?: boolean) => void;\n  +takeDecorators: (node: N.HasDecorators) => void;\n  */\n\n  // Check if property __proto__ has been used more than once.\n  // If the expression is a destructuring assignment, then __proto__ may appear\n  // multiple times. Otherwise, __proto__ is a duplicated key.\n\n  checkDuplicatedProto(\n    prop: N.ObjectMember | N.SpreadElement,\n    protoRef: { used: boolean },\n    refExpressionErrors: ?ExpressionErrors,\n  ): void {\n    if (\n      prop.type === \"SpreadElement\" ||\n      prop.computed ||\n      prop.kind ||\n      // $FlowIgnore\n      prop.shorthand\n    ) {\n      return;\n    }\n\n    const key = prop.key;\n    // It is either an Identifier or a String/NumericLiteral\n    const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n    if (name === \"__proto__\") {\n      if (protoRef.used) {\n        if (refExpressionErrors) {\n          // Store the first redefinition's position, otherwise ignore because\n          // we are parsing ambiguous pattern\n          if (refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          }\n        } else {\n          this.raise(key.start, Errors.DuplicateProto);\n        }\n      }\n\n      protoRef.used = true;\n    }\n  }\n\n  // Convenience method to parse an Expression only\n  getExpression(): N.Expression {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    this.nextToken();\n    const expr = this.parseExpression();\n    if (!this.match(tt.eof)) {\n      this.unexpected();\n    }\n    expr.comments = this.state.comments;\n    expr.errors = this.state.errors;\n    return expr;\n  }\n\n  // ### Expression parsing\n\n  // These nest, from the most general expression type at the top to\n  // 'atomic', nondivisible expression types at the bottom. Most of\n  // the functions will simply let the function (s) below them parse,\n  // and, *if* the syntactic construct they handle is present, wrap\n  // the AST node that the inner parser gave them in another node.\n\n  // Parse a full expression.\n  // - `noIn`\n  //   is used to forbid the `in` operator (in for loops initialization expressions)\n  //   When `noIn` is true, the production parameter [In] is not present.\n  //   Whenever [?In] appears in the right-hand sides of a production, we pass\n  //   `noIn` to the subroutine calls.\n\n  // - `refExpressionErrors `\n  //   provides reference for storing '=' operator inside shorthand\n  //   property assignment in contexts where both object expression\n  //   and object pattern might appear (so it's possible to raise\n  //   delayed syntax error at correct position).\n\n  parseExpression(\n    noIn?: boolean,\n    refExpressionErrors?: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const expr = this.parseMaybeAssign(noIn, refExpressionErrors);\n    if (this.match(tt.comma)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.expressions = [expr];\n      while (this.eat(tt.comma)) {\n        node.expressions.push(this.parseMaybeAssign(noIn, refExpressionErrors));\n      }\n      this.toReferencedList(node.expressions);\n      return this.finishNode(node, \"SequenceExpression\");\n    }\n    return expr;\n  }\n\n  // Parse an assignment expression. This includes applications of\n  // operators like `+=`.\n\n  parseMaybeAssign(\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    if (this.isContextual(\"yield\")) {\n      if (this.prodParam.hasYield) {\n        let left = this.parseYield(noIn);\n        if (afterLeftParse) {\n          left = afterLeftParse.call(this, left, startPos, startLoc);\n        }\n        return left;\n      } else {\n        // The tokenizer will assume an expression is allowed after\n        // `yield`, but this isn't that kind of yield\n        this.state.exprAllowed = false;\n      }\n    }\n\n    let ownExpressionErrors;\n    if (refExpressionErrors) {\n      ownExpressionErrors = false;\n    } else {\n      refExpressionErrors = new ExpressionErrors();\n      ownExpressionErrors = true;\n    }\n\n    if (this.match(tt.parenL) || this.match(tt.name)) {\n      this.state.potentialArrowAt = this.state.start;\n    }\n\n    let left = this.parseMaybeConditional(\n      noIn,\n      refExpressionErrors,\n      refNeedsArrowPos,\n    );\n    if (afterLeftParse) {\n      left = afterLeftParse.call(this, left, startPos, startLoc);\n    }\n    if (this.state.type.isAssign) {\n      const node = this.startNodeAt(startPos, startLoc);\n      const operator = this.state.value;\n      node.operator = operator;\n\n      if (operator === \"??=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (operator === \"||=\" || operator === \"&&=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (this.match(tt.eq)) {\n        node.left = this.toAssignable(left);\n        refExpressionErrors.doubleProto = -1; // reset because double __proto__ is valid in assignment expression\n      } else {\n        node.left = left;\n      }\n\n      if (refExpressionErrors.shorthandAssign >= node.left.start) {\n        refExpressionErrors.shorthandAssign = -1; // reset because shorthand default was used correctly\n      }\n\n      this.checkLVal(left, undefined, undefined, \"assignment expression\");\n\n      this.next();\n      node.right = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"AssignmentExpression\");\n    } else if (ownExpressionErrors) {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n\n    return left;\n  }\n\n  // Parse a ternary conditional (`?:`) operator.\n\n  parseMaybeConditional(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprOps(noIn, refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n\n    return this.parseConditional(\n      expr,\n      noIn,\n      startPos,\n      startLoc,\n      refNeedsArrowPos,\n    );\n  }\n\n  parseConditional(\n    expr: N.Expression,\n    noIn: ?boolean,\n    startPos: number,\n    startLoc: Position,\n    // FIXME: Disabling this for now since can't seem to get it to play nicely\n    // eslint-disable-next-line no-unused-vars\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    if (this.eat(tt.question)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.test = expr;\n      node.consequent = this.parseMaybeAssign();\n      this.expect(tt.colon);\n      node.alternate = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n    return expr;\n  }\n\n  // Start the precedence parser.\n\n  parseExprOps(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseMaybeUnary(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) {\n      return expr;\n    }\n\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\n  }\n\n  // Parse binary operators with the operator precedence parsing\n  // algorithm. `left` is the left-hand side of the operator.\n  // `minPrec` provides context that allows the function to stop and\n  // defer further parser to one of its callers when it encounters an\n  // operator that has a lower precedence than the set it is parsing.\n\n  parseExprOp(\n    left: N.Expression,\n    leftStartPos: number,\n    leftStartLoc: Position,\n    minPrec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    let prec = this.state.type.binop;\n    if (prec != null && (!noIn || !this.match(tt._in))) {\n      if (prec > minPrec) {\n        const operator = this.state.value;\n        if (operator === \"|>\" && this.state.inFSharpPipelineDirectBody) {\n          return left;\n        }\n        const node = this.startNodeAt(leftStartPos, leftStartLoc);\n        node.left = left;\n        node.operator = operator;\n        if (\n          operator === \"**\" &&\n          left.type === \"UnaryExpression\" &&\n          (this.options.createParenthesizedExpressions ||\n            !(left.extra && left.extra.parenthesized))\n        ) {\n          this.raise(\n            left.argument.start,\n            Errors.UnexpectedTokenUnaryExponentiation,\n          );\n        }\n\n        const op = this.state.type;\n        const logical = op === tt.logicalOR || op === tt.logicalAND;\n        const coalesce = op === tt.nullishCoalescing;\n\n        if (op === tt.pipeline) {\n          this.expectPlugin(\"pipelineOperator\");\n          this.state.inPipeline = true;\n          this.checkPipelineAtInfixOperator(left, leftStartPos);\n        } else if (coalesce) {\n          // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n          // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n          prec = ((tt.logicalAND: any): { binop: number }).binop;\n        }\n\n        this.next();\n\n        if (\n          op === tt.pipeline &&\n          this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"minimal\"\n        ) {\n          if (\n            this.match(tt.name) &&\n            this.state.value === \"await\" &&\n            this.prodParam.hasAwait\n          ) {\n            throw this.raise(\n              this.state.start,\n              Errors.UnexpectedAwaitAfterPipelineBody,\n            );\n          }\n        }\n\n        node.right = this.parseExprOpRightExpr(op, prec, noIn);\n        this.finishNode(\n          node,\n          logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\",\n        );\n        /* this check is for all ?? operators\n         * a ?? b && c for this example\n         * when op is coalesce and nextOp is logical (&&), throw at the pos of nextOp that it can not be mixed.\n         * Symmetrically it also throws when op is logical and nextOp is coalesce\n         */\n        const nextOp = this.state.type;\n        if (\n          (coalesce && (nextOp === tt.logicalOR || nextOp === tt.logicalAND)) ||\n          (logical && nextOp === tt.nullishCoalescing)\n        ) {\n          throw this.raise(this.state.start, Errors.MixingCoalesceWithLogical);\n        }\n\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n    }\n    return left;\n  }\n\n  // Helper function for `parseExprOp`. Parse the right-hand side of binary-\n  // operator expressions, then apply any operator-specific functions.\n\n  parseExprOpRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    switch (op) {\n      case tt.pipeline:\n        switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n          case \"smart\":\n            return this.withTopicPermittingContext(() => {\n              return this.parseSmartPipelineBody(\n                this.parseExprOpBaseRightExpr(op, prec, noIn),\n                startPos,\n                startLoc,\n              );\n            });\n          case \"fsharp\":\n            return this.withSoloAwaitPermittingContext(() => {\n              return this.parseFSharpPipelineBody(prec, noIn);\n            });\n        }\n      // falls through\n\n      default:\n        return this.parseExprOpBaseRightExpr(op, prec, noIn);\n    }\n  }\n\n  // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of\n  // binary-operator expressions without applying any operator-specific functions.\n\n  parseExprOpBaseRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    return this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      op.rightAssociative ? prec - 1 : prec,\n      noIn,\n    );\n  }\n\n  // Parse unary operators, both prefix and postfix.\n\n  parseMaybeUnary(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    if (this.isContextual(\"await\") && this.isAwaitAllowed()) {\n      return this.parseAwait();\n    } else if (this.state.type.prefix) {\n      const node = this.startNode();\n      const update = this.match(tt.incDec);\n      node.operator = this.state.value;\n      node.prefix = true;\n\n      if (node.operator === \"throw\") {\n        this.expectPlugin(\"throwExpressions\");\n      }\n      this.next();\n\n      node.argument = this.parseMaybeUnary();\n\n      this.checkExpressionErrors(refExpressionErrors, true);\n\n      if (update) {\n        this.checkLVal(node.argument, undefined, undefined, \"prefix operation\");\n      } else if (this.state.strict && node.operator === \"delete\") {\n        const arg = node.argument;\n\n        if (arg.type === \"Identifier\") {\n          this.raise(node.start, Errors.StrictDelete);\n        } else if (\n          arg.type === \"MemberExpression\" &&\n          arg.property.type === \"PrivateName\"\n        ) {\n          this.raise(node.start, Errors.DeletePrivateField);\n        }\n      }\n\n      return this.finishNode(\n        node,\n        update ? \"UpdateExpression\" : \"UnaryExpression\",\n      );\n    }\n\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    let expr = this.parseExprSubscripts(refExpressionErrors);\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n    while (this.state.type.postfix && !this.canInsertSemicolon()) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.operator = this.state.value;\n      node.prefix = false;\n      node.argument = expr;\n      this.checkLVal(expr, undefined, undefined, \"postfix operation\");\n      this.next();\n      expr = this.finishNode(node, \"UpdateExpression\");\n    }\n    return expr;\n  }\n\n  // Parse call, dot, and `[]`-subscript expressions.\n\n  parseExprSubscripts(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprAtom(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n\n    return this.parseSubscripts(expr, startPos, startLoc);\n  }\n\n  parseSubscripts(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls?: ?boolean,\n  ): N.Expression {\n    const state = {\n      optionalChainMember: false,\n      maybeAsyncArrow: this.atPossibleAsyncArrow(base),\n      stop: false,\n    };\n    do {\n      const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n      if (state.maybeAsyncArrow) {\n        this.state.maybeInAsyncArrowHead = true;\n      }\n      base = this.parseSubscript(base, startPos, startLoc, noCalls, state);\n\n      // After parsing a subscript, this isn't \"async\" for sure.\n      state.maybeAsyncArrow = false;\n      this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n    } while (!state.stop);\n    return base;\n  }\n\n  /**\n   * @param state Set 'state.stop = true' to indicate that we should stop parsing subscripts.\n   *   state.optionalChainMember to indicate that the member is currently in OptionalChain\n   */\n  parseSubscript(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls: ?boolean,\n    state: N.ParseSubscriptState,\n  ): N.Expression {\n    if (!noCalls && this.eat(tt.doubleColon)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.callee = this.parseNoCallExpr();\n      state.stop = true;\n      return this.parseSubscripts(\n        this.finishNode(node, \"BindExpression\"),\n        startPos,\n        startLoc,\n        noCalls,\n      );\n    }\n    let optional = false;\n    if (this.match(tt.questionDot)) {\n      state.optionalChainMember = optional = true;\n      if (noCalls && this.lookaheadCharCode() === charCodes.leftParenthesis) {\n        state.stop = true;\n        return base;\n      }\n      this.next();\n    }\n    const computed = this.eat(tt.bracketL);\n    if (\n      (optional && !this.match(tt.parenL) && !this.match(tt.backQuote)) ||\n      computed ||\n      this.eat(tt.dot)\n    ) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.property = computed\n        ? this.parseExpression()\n        : optional\n        ? this.parseIdentifier(true)\n        : this.parseMaybePrivateName(true);\n      node.computed = computed;\n\n      if (node.property.type === \"PrivateName\") {\n        if (node.object.type === \"Super\") {\n          this.raise(startPos, Errors.SuperPrivateField);\n        }\n        this.classScope.usePrivateName(\n          node.property.id.name,\n          node.property.start,\n        );\n      }\n\n      if (computed) {\n        this.expect(tt.bracketR);\n      }\n\n      if (state.optionalChainMember) {\n        node.optional = optional;\n        return this.finishNode(node, \"OptionalMemberExpression\");\n      } else {\n        return this.finishNode(node, \"MemberExpression\");\n      }\n    } else if (!noCalls && this.match(tt.parenL)) {\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      this.next();\n\n      let node = this.startNodeAt(startPos, startLoc);\n      node.callee = base;\n\n      if (optional) {\n        node.optional = true;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      } else {\n        node.arguments = this.parseCallExpressionArguments(\n          tt.parenR,\n          state.maybeAsyncArrow,\n          base.type === \"Import\",\n          base.type !== \"Super\",\n          node,\n        );\n      }\n      this.finishCallExpression(node, state.optionalChainMember);\n\n      if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n        state.stop = true;\n\n        node = this.parseAsyncArrowFromCallExpression(\n          this.startNodeAt(startPos, startLoc),\n          node,\n        );\n        this.checkYieldAwaitInDefaultParams();\n        this.state.yieldPos = oldYieldPos;\n        this.state.awaitPos = oldAwaitPos;\n      } else {\n        this.toReferencedListDeep(node.arguments);\n\n        // We keep the old value if it isn't null, for cases like\n        //   (x = async(yield)) => {}\n        //\n        // Hi developer of the future :) If you are implementing generator\n        // arrow functions, please read the note below about \"await\" and\n        // verify if the same logic is needed for yield.\n        if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n\n        // Await is trickier than yield. When parsing a possible arrow function\n        // (e.g. something starting with `async(`) we don't know if its possible\n        // parameters will actually be inside an async arrow function or if it is\n        // a normal call expression.\n        // If it ended up being a call expression, if we are in a context where\n        // await expression are disallowed (and thus \"await\" is an identifier)\n        // we must be careful not to leak this.state.awaitPos to an even outer\n        // context, where \"await\" could not be an identifier.\n        // For example, this code is valid because \"await\" isn't directly inside\n        // an async function:\n        //\n        //     async function a() {\n        //       function b(param = async (await)) {\n        //       }\n        //     }\n        //\n        if (\n          (!this.isAwaitAllowed() && !oldMaybeInArrowParameters) ||\n          oldAwaitPos !== -1\n        ) {\n          this.state.awaitPos = oldAwaitPos;\n        }\n      }\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n      return node;\n    } else if (this.match(tt.backQuote)) {\n      return this.parseTaggedTemplateExpression(\n        startPos,\n        startLoc,\n        base,\n        state,\n      );\n    } else {\n      state.stop = true;\n      return base;\n    }\n  }\n\n  parseTaggedTemplateExpression(\n    startPos: number,\n    startLoc: Position,\n    base: N.Expression,\n    state: N.ParseSubscriptState,\n    typeArguments?: ?N.TsTypeParameterInstantiation,\n  ): N.TaggedTemplateExpression {\n    const node: N.TaggedTemplateExpression = this.startNodeAt(\n      startPos,\n      startLoc,\n    );\n    node.tag = base;\n    node.quasi = this.parseTemplate(true);\n    if (typeArguments) node.typeParameters = typeArguments;\n    if (state.optionalChainMember) {\n      this.raise(startPos, Errors.OptionalChainingNoTemplate);\n    }\n    return this.finishNode(node, \"TaggedTemplateExpression\");\n  }\n\n  atPossibleAsyncArrow(base: N.Expression): boolean {\n    return (\n      base.type === \"Identifier\" &&\n      base.name === \"async\" &&\n      this.state.lastTokEnd === base.end &&\n      !this.canInsertSemicolon() &&\n      // check there are no escape sequences, such as \\u{61}sync\n      base.end - base.start === 5 &&\n      base.start === this.state.potentialArrowAt\n    );\n  }\n\n  finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n    node: T,\n    optional: boolean,\n  ): N.Expression {\n    if (node.callee.type === \"Import\") {\n      if (node.arguments.length !== 1) {\n        this.raise(node.start, Errors.ImportCallArity);\n      } else {\n        const importArg = node.arguments[0];\n        if (importArg && importArg.type === \"SpreadElement\") {\n          this.raise(importArg.start, Errors.ImportCallSpreadArgument);\n        }\n      }\n    }\n    return this.finishNode(\n      node,\n      optional ? \"OptionalCallExpression\" : \"CallExpression\",\n    );\n  }\n\n  parseCallExpressionArguments(\n    close: TokenType,\n    possibleAsyncArrow: boolean,\n    dynamicImport?: boolean,\n    allowPlaceholder?: boolean,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let innerParenStart;\n    let first = true;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (dynamicImport) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.ImportCallArgumentTrailingComma,\n            );\n          }\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      // we need to make sure that if this is an async arrow functions,\n      // that we don't allow inner parens inside the params\n      if (this.match(tt.parenL) && !innerParenStart) {\n        innerParenStart = this.state.start;\n      }\n\n      elts.push(\n        this.parseExprListItem(\n          false,\n          possibleAsyncArrow ? new ExpressionErrors() : undefined,\n          possibleAsyncArrow ? { start: 0 } : undefined,\n          allowPlaceholder,\n        ),\n      );\n    }\n\n    // we found an async arrow function so let's not allow any inner parens\n    if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\n      this.unexpected();\n    }\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return elts;\n  }\n\n  shouldParseAsyncArrow(): boolean {\n    return this.match(tt.arrow) && !this.canInsertSemicolon();\n  }\n\n  parseAsyncArrowFromCallExpression(\n    node: N.ArrowFunctionExpression,\n    call: N.CallExpression,\n  ): N.ArrowFunctionExpression {\n    this.expect(tt.arrow);\n    this.parseArrowExpression(\n      node,\n      call.arguments,\n      true,\n      call.extra?.trailingComma,\n    );\n    return node;\n  }\n\n  // Parse a no-call expression (like argument of `new` or `::` operators).\n\n  parseNoCallExpr(): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n  }\n\n  // Parse an atomic expression — either a single token that is an\n  // expression, an expression started by a keyword like `function` or\n  // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n  // or `{}`.\n\n  parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n    // If a division operator appears in an expression position, the\n    // tokenizer got confused, and we force it to read a regexp instead.\n    if (this.state.type === tt.slash) this.readRegexp();\n\n    const canBeArrow = this.state.potentialArrowAt === this.state.start;\n    let node;\n\n    switch (this.state.type) {\n      case tt._super:\n        node = this.startNode();\n        this.next();\n        if (\n          this.match(tt.parenL) &&\n          !this.scope.allowDirectSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.SuperNotAllowed);\n        } else if (\n          !this.scope.allowSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.UnexpectedSuper);\n        }\n\n        if (\n          !this.match(tt.parenL) &&\n          !this.match(tt.bracketL) &&\n          !this.match(tt.dot)\n        ) {\n          this.raise(node.start, Errors.UnsupportedSuper);\n        }\n\n        return this.finishNode(node, \"Super\");\n\n      case tt._import:\n        node = this.startNode();\n        this.next();\n\n        if (this.match(tt.dot)) {\n          return this.parseImportMetaProperty(node);\n        }\n\n        if (!this.match(tt.parenL)) {\n          this.raise(this.state.lastTokStart, Errors.UnsupportedImport);\n        }\n        return this.finishNode(node, \"Import\");\n      case tt._this:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"ThisExpression\");\n\n      case tt.name: {\n        node = this.startNode();\n        const containsEsc = this.state.containsEsc;\n        const id = this.parseIdentifier();\n\n        if (\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt._function) &&\n          !this.canInsertSemicolon()\n        ) {\n          const last = this.state.context.length - 1;\n          if (this.state.context[last] !== ct.functionStatement) {\n            // Since \"async\" is an identifier and normally identifiers\n            // can't be followed by expression, the tokenizer assumes\n            // that \"function\" starts a statement.\n            // Fixing it in the tokenizer would mean tracking not only the\n            // previous token (\"async\"), but also the one before to know\n            // its beforeExpr value.\n            // It's easier and more efficient to adjust the context here.\n            throw new Error(\"Internal error\");\n          }\n          this.state.context[last] = ct.functionExpression;\n\n          this.next();\n          return this.parseFunction(node, undefined, true);\n        } else if (\n          canBeArrow &&\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt.name) &&\n          !this.canInsertSemicolon()\n        ) {\n          const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n          const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n          const oldYieldPos = this.state.yieldPos;\n          const oldAwaitPos = this.state.awaitPos;\n          this.state.maybeInArrowParameters = true;\n          this.state.maybeInAsyncArrowHead = true;\n          this.state.yieldPos = -1;\n          this.state.awaitPos = -1;\n          const params = [this.parseIdentifier()];\n          this.expect(tt.arrow);\n          this.checkYieldAwaitInDefaultParams();\n          this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n          this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n          this.state.yieldPos = oldYieldPos;\n          this.state.awaitPos = oldAwaitPos;\n          // let foo = async bar => {};\n          this.parseArrowExpression(node, params, true);\n          return node;\n        }\n\n        if (canBeArrow && this.match(tt.arrow) && !this.canInsertSemicolon()) {\n          this.next();\n          this.parseArrowExpression(node, [id], false);\n          return node;\n        }\n\n        return id;\n      }\n\n      case tt._do: {\n        this.expectPlugin(\"doExpressions\");\n        const node = this.startNode();\n        this.next();\n        const oldLabels = this.state.labels;\n        this.state.labels = [];\n        node.body = this.parseBlock();\n        this.state.labels = oldLabels;\n        return this.finishNode(node, \"DoExpression\");\n      }\n\n      case tt.regexp: {\n        const value = this.state.value;\n        node = this.parseLiteral(value.value, \"RegExpLiteral\");\n        node.pattern = value.pattern;\n        node.flags = value.flags;\n        return node;\n      }\n\n      case tt.num:\n        return this.parseLiteral(this.state.value, \"NumericLiteral\");\n\n      case tt.bigint:\n        return this.parseLiteral(this.state.value, \"BigIntLiteral\");\n\n      case tt.string:\n        return this.parseLiteral(this.state.value, \"StringLiteral\");\n\n      case tt._null:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"NullLiteral\");\n\n      case tt._true:\n      case tt._false:\n        return this.parseBooleanLiteral();\n\n      case tt.parenL:\n        return this.parseParenAndDistinguishExpression(canBeArrow);\n\n      case tt.bracketBarL:\n      case tt.bracketHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          close,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"TupleExpression\");\n      }\n      case tt.bracketL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          tt.bracketR,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        if (!this.state.maybeInArrowParameters) {\n          // This could be an array pattern:\n          //   ([a: string, b: string]) => {}\n          // In this case, we don't have to call toReferencedList. We will\n          // call it, if needed, when we are sure that it is a parenthesized\n          // expression by calling toReferencedListDeep.\n          this.toReferencedList(node.elements);\n        }\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"ArrayExpression\");\n      }\n      case tt.braceBarL:\n      case tt.braceHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(close, false, true, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt.braceL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(tt.braceR, false, false, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt._function:\n        return this.parseFunctionExpression();\n\n      case tt.at:\n        this.parseDecorators();\n      // fall through\n      case tt._class:\n        node = this.startNode();\n        this.takeDecorators(node);\n        return this.parseClass(node, false);\n\n      case tt._new:\n        return this.parseNew();\n\n      case tt.backQuote:\n        return this.parseTemplate(false);\n\n      case tt.doubleColon: {\n        node = this.startNode();\n        this.next();\n        node.object = null;\n        const callee = (node.callee = this.parseNoCallExpr());\n        if (callee.type === \"MemberExpression\") {\n          return this.finishNode(node, \"BindExpression\");\n        } else {\n          throw this.raise(callee.start, Errors.UnsupportedBind);\n        }\n      }\n\n      case tt.hash: {\n        if (this.state.inPipeline) {\n          node = this.startNode();\n\n          if (\n            this.getPluginOption(\"pipelineOperator\", \"proposal\") !== \"smart\"\n          ) {\n            this.raise(node.start, Errors.PrimaryTopicRequiresSmartPipeline);\n          }\n\n          this.next();\n\n          if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) {\n            this.raise(node.start, Errors.PrimaryTopicNotAllowed);\n          }\n\n          this.registerTopicReference();\n          return this.finishNode(node, \"PipelinePrimaryTopicReference\");\n        }\n      }\n      // fall through\n      default:\n        throw this.unexpected();\n    }\n  }\n\n  parseBooleanLiteral(): N.BooleanLiteral {\n    const node = this.startNode();\n    node.value = this.match(tt._true);\n    this.next();\n    return this.finishNode(node, \"BooleanLiteral\");\n  }\n\n  parseMaybePrivateName(\n    isPrivateNameAllowed: boolean,\n  ): N.PrivateName | N.Identifier {\n    const isPrivate = this.match(tt.hash);\n\n    if (isPrivate) {\n      this.expectOnePlugin([\"classPrivateProperties\", \"classPrivateMethods\"]);\n      if (!isPrivateNameAllowed) {\n        this.raise(this.state.pos, Errors.UnexpectedPrivateField);\n      }\n      const node = this.startNode();\n      this.next();\n      this.assertNoSpace(\"Unexpected space between # and identifier\");\n      node.id = this.parseIdentifier(true);\n      return this.finishNode(node, \"PrivateName\");\n    } else {\n      return this.parseIdentifier(true);\n    }\n  }\n\n  parseFunctionExpression(): N.FunctionExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    // We do not do parseIdentifier here because when parseFunctionExpression\n    // is called we already know that the current token is a \"name\" with the value \"function\"\n    // This will improve perf a tiny little bit as we do not do validation but more importantly\n    // here is that parseIdentifier will remove an item from the expression stack\n    // if \"function\" or \"class\" is parsed as identifier (in objects e.g.), which should not happen here.\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"function\");\n\n    if (this.prodParam.hasYield && this.eat(tt.dot)) {\n      return this.parseMetaProperty(node, meta, \"sent\");\n    }\n    return this.parseFunction(node);\n  }\n\n  parseMetaProperty(\n    node: N.MetaProperty,\n    meta: N.Identifier,\n    propertyName: string,\n  ): N.MetaProperty {\n    node.meta = meta;\n\n    if (meta.name === \"function\" && propertyName === \"sent\") {\n      if (this.isContextual(propertyName)) {\n        this.expectPlugin(\"functionSent\");\n      } else if (!this.hasPlugin(\"functionSent\")) {\n        // The code wasn't `function.sent` but just `function.`, so a simple error is less confusing.\n        this.unexpected();\n      }\n    }\n\n    const containsEsc = this.state.containsEsc;\n\n    node.property = this.parseIdentifier(true);\n\n    if (node.property.name !== propertyName || containsEsc) {\n      this.raise(\n        node.property.start,\n        Errors.UnsupportedMetaProperty,\n        meta.name,\n        propertyName,\n      );\n    }\n\n    return this.finishNode(node, \"MetaProperty\");\n  }\n\n  parseImportMetaProperty(node: N.MetaProperty): N.MetaProperty {\n    const id = this.createIdentifier(this.startNodeAtNode(node), \"import\");\n    this.expect(tt.dot);\n\n    if (this.isContextual(\"meta\")) {\n      this.expectPlugin(\"importMeta\");\n\n      if (!this.inModule) {\n        this.raiseWithData(\n          id.start,\n          { code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\" },\n          Errors.ImportMetaOutsideModule,\n        );\n      }\n      this.sawUnambiguousESM = true;\n    } else if (!this.hasPlugin(\"importMeta\")) {\n      this.raise(id.start, Errors.ImportCallArityLtOne);\n    }\n\n    return this.parseMetaProperty(node, id, \"meta\");\n  }\n\n  parseLiteral<T: N.Literal>(\n    value: any,\n    type: /*T[\"kind\"]*/ string,\n    startPos?: number,\n    startLoc?: Position,\n  ): T {\n    startPos = startPos || this.state.start;\n    startLoc = startLoc || this.state.startLoc;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    this.addExtra(node, \"rawValue\", value);\n    this.addExtra(node, \"raw\", this.input.slice(startPos, this.state.end));\n    node.value = value;\n    this.next();\n    return this.finishNode(node, type);\n  }\n\n  parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    let val;\n    this.expect(tt.parenL);\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.maybeInArrowParameters = true;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    const innerStartPos = this.state.start;\n    const innerStartLoc = this.state.startLoc;\n    const exprList = [];\n    const refExpressionErrors = new ExpressionErrors();\n    const refNeedsArrowPos = { start: 0 };\n    let first = true;\n    let spreadStart;\n    let optionalCommaStart;\n\n    while (!this.match(tt.parenR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma, refNeedsArrowPos.start || null);\n        if (this.match(tt.parenR)) {\n          optionalCommaStart = this.state.start;\n          break;\n        }\n      }\n\n      if (this.match(tt.ellipsis)) {\n        const spreadNodeStartPos = this.state.start;\n        const spreadNodeStartLoc = this.state.startLoc;\n        spreadStart = this.state.start;\n        exprList.push(\n          this.parseParenItem(\n            this.parseRestBinding(),\n            spreadNodeStartPos,\n            spreadNodeStartLoc,\n          ),\n        );\n\n        this.checkCommaAfterRest(charCodes.rightParenthesis);\n\n        break;\n      } else {\n        exprList.push(\n          this.parseMaybeAssign(\n            false,\n            refExpressionErrors,\n            this.parseParenItem,\n            refNeedsArrowPos,\n          ),\n        );\n      }\n    }\n\n    const innerEndPos = this.state.start;\n    const innerEndLoc = this.state.startLoc;\n    this.expect(tt.parenR);\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    let arrowNode = this.startNodeAt(startPos, startLoc);\n    if (\n      canBeArrow &&\n      this.shouldParseArrow() &&\n      (arrowNode = this.parseArrow(arrowNode))\n    ) {\n      if (!this.isAwaitAllowed() && !this.state.maybeInAsyncArrowHead) {\n        this.state.awaitPos = oldAwaitPos;\n      }\n      this.checkYieldAwaitInDefaultParams();\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n      for (const param of exprList) {\n        if (param.extra && param.extra.parenthesized) {\n          this.unexpected(param.extra.parenStart);\n        }\n      }\n\n      this.parseArrowExpression(arrowNode, exprList, false);\n      return arrowNode;\n    }\n\n    // We keep the old value if it isn't null, for cases like\n    //   (x = (yield)) => {}\n    if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n    if (oldAwaitPos !== -1) this.state.awaitPos = oldAwaitPos;\n\n    if (!exprList.length) {\n      this.unexpected(this.state.lastTokStart);\n    }\n    if (optionalCommaStart) this.unexpected(optionalCommaStart);\n    if (spreadStart) this.unexpected(spreadStart);\n    this.checkExpressionErrors(refExpressionErrors, true);\n    if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start);\n\n    this.toReferencedListDeep(exprList, /* isParenthesizedExpr */ true);\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc);\n      val.expressions = exprList;\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n    } else {\n      val = exprList[0];\n    }\n\n    if (!this.options.createParenthesizedExpressions) {\n      this.addExtra(val, \"parenthesized\", true);\n      this.addExtra(val, \"parenStart\", startPos);\n      return val;\n    }\n\n    const parenExpression = this.startNodeAt(startPos, startLoc);\n    parenExpression.expression = val;\n    this.finishNode(parenExpression, \"ParenthesizedExpression\");\n    return parenExpression;\n  }\n\n  shouldParseArrow(): boolean {\n    return !this.canInsertSemicolon();\n  }\n\n  parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n    if (this.eat(tt.arrow)) {\n      return node;\n    }\n  }\n\n  parseParenItem(\n    node: N.Expression,\n    startPos: number, // eslint-disable-line no-unused-vars\n    startLoc: Position, // eslint-disable-line no-unused-vars\n  ): N.Expression {\n    return node;\n  }\n\n  // New's precedence is slightly tricky. It must allow its argument to\n  // be a `[]` or dot subscript expression, but not a call — at least,\n  // not without wrapping it in parentheses. Thus, it uses the noCalls\n  // argument to parseSubscripts to prevent it from consuming the\n  // argument list.\n\n  parseNew(): N.NewExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"new\");\n\n    if (this.eat(tt.dot)) {\n      const metaProp = this.parseMetaProperty(node, meta, \"target\");\n\n      if (!this.scope.inNonArrowFunction && !this.scope.inClass) {\n        let error = Errors.UnexpectedNewTarget;\n\n        if (this.hasPlugin(\"classProperties\")) {\n          error += \" or class properties\";\n        }\n\n        this.raise(metaProp.start, error);\n      }\n\n      return metaProp;\n    }\n\n    node.callee = this.parseNoCallExpr();\n\n    if (node.callee.type === \"Import\") {\n      this.raise(node.callee.start, Errors.ImportCallNotNewExpression);\n    } else if (\n      node.callee.type === \"OptionalMemberExpression\" ||\n      node.callee.type === \"OptionalCallExpression\"\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.OptionalChainingNoNew);\n    } else if (this.eat(tt.questionDot)) {\n      this.raise(this.state.start, Errors.OptionalChainingNoNew);\n    }\n\n    this.parseNewArguments(node);\n    return this.finishNode(node, \"NewExpression\");\n  }\n\n  parseNewArguments(node: N.NewExpression): void {\n    if (this.eat(tt.parenL)) {\n      const args = this.parseExprList(tt.parenR);\n      this.toReferencedList(args);\n      // $FlowFixMe (parseExprList should be all non-null in this case)\n      node.arguments = args;\n    } else {\n      node.arguments = [];\n    }\n  }\n\n  // Parse template expression.\n\n  parseTemplateElement(isTagged: boolean): N.TemplateElement {\n    const elem = this.startNode();\n    if (this.state.value === null) {\n      if (!isTagged) {\n        this.raise(this.state.start + 1, Errors.InvalidEscapeSequenceTemplate);\n      }\n    }\n    elem.value = {\n      raw: this.input\n        .slice(this.state.start, this.state.end)\n        .replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.state.value,\n    };\n    this.next();\n    elem.tail = this.match(tt.backQuote);\n    return this.finishNode(elem, \"TemplateElement\");\n  }\n\n  parseTemplate(isTagged: boolean): N.TemplateLiteral {\n    const node = this.startNode();\n    this.next();\n    node.expressions = [];\n    let curElt = this.parseTemplateElement(isTagged);\n    node.quasis = [curElt];\n    while (!curElt.tail) {\n      this.expect(tt.dollarBraceL);\n      node.expressions.push(this.parseExpression());\n      this.expect(tt.braceR);\n      node.quasis.push((curElt = this.parseTemplateElement(isTagged)));\n    }\n    this.next();\n    return this.finishNode(node, \"TemplateLiteral\");\n  }\n\n  // Parse an object literal, binding pattern, or record.\n\n  parseObj<T: N.ObjectPattern | N.ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): T {\n    const propHash: any = Object.create(null);\n    let first = true;\n    const node = this.startNode();\n\n    node.properties = [];\n    this.next();\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          this.addExtra(node, \"trailingComma\", this.state.lastTokStart);\n          this.next();\n          break;\n        }\n      }\n\n      const prop = this.parseObjectMember(isPattern, refExpressionErrors);\n      if (!isPattern) {\n        // $FlowIgnore RestElement will never be returned if !isPattern\n        this.checkDuplicatedProto(prop, propHash, refExpressionErrors);\n      }\n\n      // $FlowIgnore\n      if (prop.shorthand) {\n        this.addExtra(prop, \"shorthand\", true);\n      }\n\n      node.properties.push(prop);\n    }\n\n    let type = \"ObjectExpression\";\n    if (isPattern) {\n      type = \"ObjectPattern\";\n    } else if (isRecord) {\n      type = \"RecordExpression\";\n    }\n    return this.finishNode(node, type);\n  }\n\n  isAsyncProp(prop: N.ObjectProperty): boolean {\n    return (\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      prop.key.name === \"async\" &&\n      (this.match(tt.name) ||\n        this.match(tt.num) ||\n        this.match(tt.string) ||\n        this.match(tt.bracketL) ||\n        this.state.type.keyword ||\n        this.match(tt.star)) &&\n      !this.hasPrecedingLineBreak()\n    );\n  }\n\n  parseObjectMember(\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): N.ObjectMember | N.SpreadElement | N.RestElement {\n    let decorators = [];\n    if (this.match(tt.at)) {\n      if (this.hasPlugin(\"decorators\")) {\n        this.raise(this.state.start, Errors.UnsupportedPropertyDecorator);\n      }\n\n      // we needn't check if decorators (stage 0) plugin is enabled since it's checked by\n      // the call to this.parseDecorator\n      while (this.match(tt.at)) {\n        decorators.push(this.parseDecorator());\n      }\n    }\n\n    const prop = this.startNode();\n    let isGenerator = false;\n    let isAsync = false;\n    let startPos;\n    let startLoc;\n\n    if (this.match(tt.ellipsis)) {\n      if (decorators.length) this.unexpected();\n      if (isPattern) {\n        this.next();\n        // Don't use parseRestBinding() as we only allow Identifier here.\n        prop.argument = this.parseIdentifier();\n        this.checkCommaAfterRest(charCodes.rightCurlyBrace);\n        return this.finishNode(prop, \"RestElement\");\n      }\n\n      return this.parseSpread();\n    }\n\n    if (decorators.length) {\n      prop.decorators = decorators;\n      decorators = [];\n    }\n\n    prop.method = false;\n\n    if (isPattern || refExpressionErrors) {\n      startPos = this.state.start;\n      startLoc = this.state.startLoc;\n    }\n\n    if (!isPattern) {\n      isGenerator = this.eat(tt.star);\n    }\n\n    const containsEsc = this.state.containsEsc;\n    this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n\n    if (!isPattern && !containsEsc && !isGenerator && this.isAsyncProp(prop)) {\n      isAsync = true;\n      isGenerator = this.eat(tt.star);\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n    } else {\n      isAsync = false;\n    }\n\n    this.parseObjPropValue(\n      prop,\n      startPos,\n      startLoc,\n      isGenerator,\n      isAsync,\n      isPattern,\n      refExpressionErrors,\n      containsEsc,\n    );\n\n    return prop;\n  }\n\n  isGetterOrSetterMethod(prop: N.ObjectMethod, isPattern: boolean): boolean {\n    return (\n      !isPattern &&\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n      (this.match(tt.string) || // get \"string\"() {}\n      this.match(tt.num) || // get 1() {}\n      this.match(tt.bracketL) || // get [\"string\"]() {}\n      this.match(tt.name) || // get foo() {}\n        !!this.state.type.keyword) // get debugger() {}\n    );\n  }\n\n  getGetterSetterExpectedParamCount(\n    method: N.ObjectMethod | N.ClassMethod,\n  ): number {\n    return method.kind === \"get\" ? 0 : 1;\n  }\n\n  // get methods aren't allowed to have any parameters\n  // set methods must have exactly 1 parameter which is not a rest parameter\n  checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n    const paramCount = this.getGetterSetterExpectedParamCount(method);\n    const start = method.start;\n    if (method.params.length !== paramCount) {\n      if (method.kind === \"get\") {\n        this.raise(start, Errors.BadGetterArity);\n      } else {\n        this.raise(start, Errors.BadSetterArity);\n      }\n    }\n\n    if (\n      method.kind === \"set\" &&\n      method.params[method.params.length - 1].type === \"RestElement\"\n    ) {\n      this.raise(start, Errors.BadSetterRestParameter);\n    }\n  }\n\n  parseObjectMethod(\n    prop: N.ObjectMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    containsEsc: boolean,\n  ): ?N.ObjectMethod {\n    if (isAsync || isGenerator || this.match(tt.parenL)) {\n      if (isPattern) this.unexpected();\n      prop.kind = \"method\";\n      prop.method = true;\n      return this.parseMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n    }\n\n    if (!containsEsc && this.isGetterOrSetterMethod(prop, isPattern)) {\n      if (isGenerator || isAsync) this.unexpected();\n      prop.kind = prop.key.name;\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n      this.parseMethod(\n        prop,\n        /* isGenerator */ false,\n        /* isAsync */ false,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n      this.checkGetterSetterParams(prop);\n      return prop;\n    }\n  }\n\n  parseObjectProperty(\n    prop: N.ObjectProperty,\n    startPos: ?number,\n    startLoc: ?Position,\n    isPattern: boolean,\n    refExpressionErrors: ?ExpressionErrors,\n  ): ?N.ObjectProperty {\n    prop.shorthand = false;\n\n    if (this.eat(tt.colon)) {\n      prop.value = isPattern\n        ? this.parseMaybeDefault(this.state.start, this.state.startLoc)\n        : this.parseMaybeAssign(false, refExpressionErrors);\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n\n    if (!prop.computed && prop.key.type === \"Identifier\") {\n      this.checkReservedWord(prop.key.name, prop.key.start, true, true);\n\n      if (isPattern) {\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else if (this.match(tt.eq) && refExpressionErrors) {\n        if (refExpressionErrors.shorthandAssign === -1) {\n          refExpressionErrors.shorthandAssign = this.state.start;\n        }\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else {\n        prop.value = prop.key.__clone();\n      }\n      prop.shorthand = true;\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n  }\n\n  parseObjPropValue(\n    prop: any,\n    startPos: ?number,\n    startLoc: ?Position,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    containsEsc: boolean,\n  ): void {\n    const node =\n      this.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ) ||\n      this.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      );\n\n    if (!node) this.unexpected();\n\n    // $FlowFixMe\n    return node;\n  }\n\n  parsePropertyName(\n    prop: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n    isPrivateNameAllowed: boolean,\n  ): N.Expression | N.Identifier {\n    if (this.eat(tt.bracketL)) {\n      (prop: $FlowSubtype<N.ObjectOrClassMember>).computed = true;\n      prop.key = this.parseMaybeAssign();\n      this.expect(tt.bracketR);\n    } else {\n      const oldInPropertyName = this.state.inPropertyName;\n      this.state.inPropertyName = true;\n      // We check if it's valid for it to be a private name when we push it.\n      (prop: $FlowFixMe).key =\n        this.match(tt.num) || this.match(tt.string) || this.match(tt.bigint)\n          ? this.parseExprAtom()\n          : this.parseMaybePrivateName(isPrivateNameAllowed);\n\n      if (prop.key.type !== \"PrivateName\") {\n        // ClassPrivateProperty is never computed, so we don't assign in that case.\n        prop.computed = false;\n      }\n\n      this.state.inPropertyName = oldInPropertyName;\n    }\n\n    return prop.key;\n  }\n\n  // Initialize empty function node.\n\n  initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: ?boolean): void {\n    node.id = null;\n    node.generator = false;\n    node.async = !!isAsync;\n  }\n\n  // Parse object or class method.\n\n  parseMethod<T: N.MethodLike>(\n    node: T,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowDirectSuper: boolean,\n    type: string,\n    inClassScope: boolean = false,\n  ): T {\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n\n    this.initFunction(node, isAsync);\n    node.generator = !!isGenerator;\n    const allowModifiers = isConstructor; // For TypeScript parameter properties\n    this.scope.enter(\n      SCOPE_FUNCTION |\n        SCOPE_SUPER |\n        (inClassScope ? SCOPE_CLASS : 0) |\n        (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0),\n    );\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n    this.parseFunctionParams((node: any), allowModifiers);\n    this.parseFunctionBodyAndFinish(node, type, true);\n    this.prodParam.exit();\n    this.scope.exit();\n\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  // Parse arrow function expression.\n  // If the parameters are provided, they will be converted to an\n  // assignable list.\n  parseArrowExpression(\n    node: N.ArrowFunctionExpression,\n    params: ?(N.Expression[]),\n    isAsync: boolean,\n    trailingCommaPos: ?number,\n  ): N.ArrowFunctionExpression {\n    this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n    this.prodParam.enter(functionFlags(isAsync, false));\n    this.initFunction(node, isAsync);\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n\n    if (params) {\n      this.state.maybeInArrowParameters = true;\n      this.setArrowFunctionParameters(node, params, trailingCommaPos);\n    }\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.parseFunctionBody(node, true);\n\n    this.prodParam.exit();\n    this.scope.exit();\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return this.finishNode(node, \"ArrowFunctionExpression\");\n  }\n\n  setArrowFunctionParameters(\n    node: N.ArrowFunctionExpression,\n    params: N.Expression[],\n    trailingCommaPos: ?number,\n  ): void {\n    node.params = this.toAssignableList(params, trailingCommaPos);\n  }\n\n  parseFunctionBodyAndFinish(\n    node: N.BodilessFunctionOrMethodBase,\n    type: string,\n    isMethod?: boolean = false,\n  ): void {\n    // $FlowIgnore (node is not bodiless if we get here)\n    this.parseFunctionBody(node, false, isMethod);\n    this.finishNode(node, type);\n  }\n\n  // Parse function body and check parameters.\n  parseFunctionBody(\n    node: N.Function,\n    allowExpression: ?boolean,\n    isMethod?: boolean = false,\n  ): void {\n    const isExpression = allowExpression && !this.match(tt.braceL);\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = false;\n\n    if (isExpression) {\n      node.body = this.parseMaybeAssign();\n      this.checkParams(node, false, allowExpression, false);\n    } else {\n      const oldStrict = this.state.strict;\n      // Start a new scope with regard to labels\n      // flag (restore them to their old value afterwards).\n      const oldLabels = this.state.labels;\n      this.state.labels = [];\n\n      // FunctionBody[Yield, Await]:\n      //   StatementList[?Yield, ?Await, +Return] opt\n      this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN);\n      node.body = this.parseBlock(\n        true,\n        false,\n        // Strict mode function checks after we parse the statements in the function body.\n        (hasStrictModeDirective: boolean) => {\n          const nonSimple = !this.isSimpleParamList(node.params);\n\n          if (hasStrictModeDirective && nonSimple) {\n            // This logic is here to align the error location with the ESTree plugin.\n            const errorPos =\n              // $FlowIgnore\n              (node.kind === \"method\" || node.kind === \"constructor\") &&\n              // $FlowIgnore\n              !!node.key\n                ? node.key.end\n                : node.start;\n            this.raise(errorPos, Errors.IllegalLanguageModeDirective);\n          }\n\n          const strictModeChanged = !oldStrict && this.state.strict;\n\n          // Add the params to varDeclaredNames to ensure that an error is thrown\n          // if a let/const declaration in the function clashes with one of the params.\n          this.checkParams(\n            node,\n            !this.state.strict && !allowExpression && !isMethod && !nonSimple,\n            allowExpression,\n            strictModeChanged,\n          );\n\n          // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n          if (this.state.strict && node.id) {\n            this.checkLVal(\n              node.id,\n              BIND_OUTSIDE,\n              undefined,\n              \"function name\",\n              undefined,\n              strictModeChanged,\n            );\n          }\n        },\n      );\n      this.prodParam.exit();\n      this.state.labels = oldLabels;\n    }\n\n    this.state.inParameters = oldInParameters;\n  }\n\n  isSimpleParamList(\n    params: $ReadOnlyArray<N.Pattern | N.TSParameterProperty>,\n  ): boolean {\n    for (let i = 0, len = params.length; i < len; i++) {\n      if (params[i].type !== \"Identifier\") return false;\n    }\n    return true;\n  }\n\n  checkParams(\n    node: N.Function,\n    allowDuplicates: boolean,\n    // eslint-disable-next-line no-unused-vars\n    isArrowFunction: ?boolean,\n    strictModeChanged?: boolean = true,\n  ): void {\n    // $FlowIssue\n    const nameHash: {} = Object.create(null);\n    for (let i = 0; i < node.params.length; i++) {\n      this.checkLVal(\n        node.params[i],\n        BIND_VAR,\n        allowDuplicates ? null : nameHash,\n        \"function parameter list\",\n        undefined,\n        strictModeChanged,\n      );\n    }\n  }\n\n  // Parses a comma-separated list of expressions, and returns them as\n  // an array. `close` is the token type that ends the list, and\n  // `allowEmpty` can be turned on to allow subsequent commas with\n  // nothing in between them to be parsed as `null` (which is needed\n  // for array literals).\n\n  parseExprList(\n    close: TokenType,\n    allowEmpty?: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let first = true;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n    }\n    return elts;\n  }\n\n  parseExprListItem(\n    allowEmpty: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    refNeedsArrowPos: ?Pos,\n    allowPlaceholder: ?boolean,\n  ): ?N.Expression {\n    let elt;\n    if (allowEmpty && this.match(tt.comma)) {\n      elt = null;\n    } else if (this.match(tt.ellipsis)) {\n      const spreadNodeStartPos = this.state.start;\n      const spreadNodeStartLoc = this.state.startLoc;\n      elt = this.parseParenItem(\n        this.parseSpread(refExpressionErrors, refNeedsArrowPos),\n        spreadNodeStartPos,\n        spreadNodeStartLoc,\n      );\n    } else if (this.match(tt.question)) {\n      this.expectPlugin(\"partialApplication\");\n      if (!allowPlaceholder) {\n        this.raise(this.state.start, Errors.UnexpectedArgumentPlaceholder);\n      }\n      const node = this.startNode();\n      this.next();\n      elt = this.finishNode(node, \"ArgumentPlaceholder\");\n    } else {\n      elt = this.parseMaybeAssign(\n        false,\n        refExpressionErrors,\n        this.parseParenItem,\n        refNeedsArrowPos,\n      );\n    }\n    return elt;\n  }\n\n  // Parse the next token as an identifier. If `liberal` is true (used\n  // when parsing properties), it will also convert keywords into\n  // identifiers.\n  // This shouldn't be used to parse the keywords of meta properties, since they\n  // are not identifiers and cannot contain escape sequences.\n\n  parseIdentifier(liberal?: boolean): N.Identifier {\n    const node = this.startNode();\n    const name = this.parseIdentifierName(node.start, liberal);\n\n    return this.createIdentifier(node, name);\n  }\n\n  createIdentifier(node: N.Identifier, name: string): N.Identifier {\n    node.name = name;\n    node.loc.identifierName = name;\n\n    return this.finishNode(node, \"Identifier\");\n  }\n\n  parseIdentifierName(pos: number, liberal?: boolean): string {\n    let name: string;\n\n    if (this.match(tt.name)) {\n      name = this.state.value;\n    } else if (this.state.type.keyword) {\n      name = this.state.type.keyword;\n\n      // `class` and `function` keywords push new context into this.context.\n      // But there is no chance to pop the context if the keyword is consumed\n      // as an identifier such as a property name.\n      // If the previous token is a dot, this does not apply because the\n      // context-managing code already ignored the keyword\n      if (\n        (name === \"class\" || name === \"function\") &&\n        (this.state.lastTokEnd !== this.state.lastTokStart + 1 ||\n          this.input.charCodeAt(this.state.lastTokStart) !== charCodes.dot)\n      ) {\n        this.state.context.pop();\n      }\n    } else {\n      throw this.unexpected();\n    }\n\n    if (liberal) {\n      // If the current token is not used as a keyword, set its type to \"tt.name\".\n      // This will prevent this.next() from throwing about unexpected escapes.\n      this.state.type = tt.name;\n    } else {\n      this.checkReservedWord(\n        name,\n        this.state.start,\n        !!this.state.type.keyword,\n        false,\n      );\n    }\n\n    this.next();\n\n    return name;\n  }\n\n  checkReservedWord(\n    word: string,\n    startLoc: number,\n    checkKeywords: boolean,\n    isBinding: boolean,\n  ): void {\n    if (this.prodParam.hasYield && word === \"yield\") {\n      this.raise(startLoc, Errors.YieldBindingIdentifier);\n      return;\n    }\n\n    if (word === \"await\") {\n      if (this.prodParam.hasAwait) {\n        this.raise(startLoc, Errors.AwaitBindingIdentifier);\n        return;\n      }\n      if (\n        this.state.awaitPos === -1 &&\n        (this.state.maybeInAsyncArrowHead || this.isAwaitAllowed())\n      ) {\n        this.state.awaitPos = this.state.start;\n      }\n    }\n\n    if (\n      this.scope.inClass &&\n      !this.scope.inNonArrowFunction &&\n      word === \"arguments\"\n    ) {\n      this.raise(startLoc, Errors.ArgumentsDisallowedInInitializer);\n      return;\n    }\n    if (checkKeywords && isKeyword(word)) {\n      this.raise(startLoc, Errors.UnexpectedKeyword, word);\n      return;\n    }\n\n    const reservedTest = !this.state.strict\n      ? isReservedWord\n      : isBinding\n      ? isStrictBindReservedWord\n      : isStrictReservedWord;\n\n    if (reservedTest(word, this.inModule)) {\n      if (!this.prodParam.hasAwait && word === \"await\") {\n        this.raise(startLoc, Errors.AwaitNotInAsyncFunction);\n      } else {\n        this.raise(startLoc, Errors.UnexpectedReservedWord, word);\n      }\n    }\n  }\n\n  isAwaitAllowed(): boolean {\n    if (this.scope.inFunction) return this.prodParam.hasAwait;\n    if (this.options.allowAwaitOutsideFunction) return true;\n    if (this.hasPlugin(\"topLevelAwait\")) {\n      return this.inModule && this.prodParam.hasAwait;\n    }\n    return false;\n  }\n\n  // Parses await expression inside async function.\n\n  parseAwait(): N.AwaitExpression {\n    const node = this.startNode();\n\n    this.next();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.AwaitExpressionFormalParameter);\n    } else if (this.state.awaitPos === -1) {\n      this.state.awaitPos = node.start;\n    }\n    if (this.eat(tt.star)) {\n      this.raise(node.start, Errors.ObsoleteAwaitStar);\n    }\n\n    if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n      if (\n        this.hasPrecedingLineBreak() ||\n        // All the following expressions are ambiguous:\n        //   await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``\n        this.match(tt.plusMin) ||\n        this.match(tt.parenL) ||\n        this.match(tt.bracketL) ||\n        this.match(tt.backQuote) ||\n        // Sometimes the tokenizer generates tt.slash for regexps, and this is\n        // handler by parseExprAtom\n        this.match(tt.regexp) ||\n        this.match(tt.slash) ||\n        // This code could be parsed both as a modulo operator or as an intrinsic:\n        //   await %x(0)\n        (this.hasPlugin(\"v8intrinsic\") && this.match(tt.modulo))\n      ) {\n        this.ambiguousScriptDifferentAst = true;\n      } else {\n        this.sawUnambiguousESM = true;\n      }\n    }\n\n    if (!this.state.soloAwait) {\n      node.argument = this.parseMaybeUnary();\n    }\n\n    return this.finishNode(node, \"AwaitExpression\");\n  }\n\n  // Parses yield expression inside generator.\n\n  parseYield(noIn?: ?boolean): N.YieldExpression {\n    const node = this.startNode();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.YieldInParameter);\n    } else if (this.state.yieldPos === -1) {\n      this.state.yieldPos = node.start;\n    }\n\n    this.next();\n    if (\n      this.match(tt.semi) ||\n      (!this.match(tt.star) && !this.state.type.startsExpr) ||\n      this.hasPrecedingLineBreak()\n    ) {\n      node.delegate = false;\n      node.argument = null;\n    } else {\n      node.delegate = this.eat(tt.star);\n      node.argument = this.parseMaybeAssign(noIn);\n    }\n    return this.finishNode(node, \"YieldExpression\");\n  }\n\n  // Validates a pipeline (for any of the pipeline Babylon plugins) at the point\n  // of the infix operator `|>`.\n\n  checkPipelineAtInfixOperator(left: N.Expression, leftStartPos: number) {\n    if (this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\") {\n      if (left.type === \"SequenceExpression\") {\n        // Ensure that the pipeline head is not a comma-delimited\n        // sequence expression.\n        this.raise(leftStartPos, Errors.PipelineHeadSequenceExpression);\n      }\n    }\n  }\n\n  parseSmartPipelineBody(\n    childExpression: N.Expression,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const pipelineStyle = this.checkSmartPipelineBodyStyle(childExpression);\n\n    this.checkSmartPipelineBodyEarlyErrors(\n      childExpression,\n      pipelineStyle,\n      startPos,\n    );\n\n    return this.parseSmartPipelineBodyInStyle(\n      childExpression,\n      pipelineStyle,\n      startPos,\n      startLoc,\n    );\n  }\n\n  checkSmartPipelineBodyEarlyErrors(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n  ): void {\n    if (this.match(tt.arrow)) {\n      // If the following token is invalidly `=>`, then throw a human-friendly error\n      // instead of something like 'Unexpected token, expected \";\"'.\n      throw this.raise(this.state.start, Errors.PipelineBodyNoArrow);\n    } else if (\n      pipelineStyle === \"PipelineTopicExpression\" &&\n      childExpression.type === \"SequenceExpression\"\n    ) {\n      this.raise(startPos, Errors.PipelineBodySequenceExpression);\n    }\n  }\n\n  parseSmartPipelineBodyInStyle(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const bodyNode = this.startNodeAt(startPos, startLoc);\n    switch (pipelineStyle) {\n      case \"PipelineBareFunction\":\n        bodyNode.callee = childExpression;\n        break;\n      case \"PipelineBareConstructor\":\n        bodyNode.callee = childExpression.callee;\n        break;\n      case \"PipelineBareAwaitedFunction\":\n        bodyNode.callee = childExpression.argument;\n        break;\n      case \"PipelineTopicExpression\":\n        if (!this.topicReferenceWasUsedInCurrentTopicContext()) {\n          this.raise(startPos, Errors.PipelineTopicUnused);\n        }\n        bodyNode.expression = childExpression;\n        break;\n      default:\n        throw new Error(\n          `Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`,\n        );\n    }\n    return this.finishNode(bodyNode, pipelineStyle);\n  }\n\n  checkSmartPipelineBodyStyle(expression: N.Expression): N.PipelineStyle {\n    switch (expression.type) {\n      default:\n        return this.isSimpleReference(expression)\n          ? \"PipelineBareFunction\"\n          : \"PipelineTopicExpression\";\n    }\n  }\n\n  isSimpleReference(expression: N.Expression): boolean {\n    switch (expression.type) {\n      case \"MemberExpression\":\n        return (\n          !expression.computed && this.isSimpleReference(expression.object)\n        );\n      case \"Identifier\":\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  // Enable topic references from outer contexts within smart pipeline bodies.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicPermittingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Enable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 1,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  // Disable topic references from outer contexts within syntax constructs\n  // such as the bodies of iteration statements.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicForbiddingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Disable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 0,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  withSoloAwaitPermittingContext<T>(callback: () => T): T {\n    const outerContextSoloAwaitState = this.state.soloAwait;\n    this.state.soloAwait = true;\n\n    try {\n      return callback();\n    } finally {\n      this.state.soloAwait = outerContextSoloAwaitState;\n    }\n  }\n\n  // Register the use of a primary topic reference (`#`) within the current\n  // topic context.\n  registerTopicReference(): void {\n    this.state.topicContext.maxTopicIndex = 0;\n  }\n\n  primaryTopicReferenceIsAllowedInCurrentTopicContext(): boolean {\n    return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n  }\n\n  topicReferenceWasUsedInCurrentTopicContext(): boolean {\n    return (\n      this.state.topicContext.maxTopicIndex != null &&\n      this.state.topicContext.maxTopicIndex >= 0\n    );\n  }\n\n  parseFSharpPipelineBody(prec: number, noIn: ?boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    this.state.potentialArrowAt = this.state.start;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = true;\n\n    const ret = this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      prec,\n      noIn,\n    );\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return ret;\n  }\n}\n","// @flow\n\nimport * as N from \"../types\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport ExpressionParser from \"./expression\";\nimport { Errors } from \"./location\";\nimport {\n  isIdentifierChar,\n  isIdentifierStart,\n  keywordRelationalOperator,\n} from \"../util/identifier\";\nimport { lineBreak } from \"../util/whitespace\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_CLASS,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_CLASS,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  CLASS_ELEMENT_OTHER,\n  CLASS_ELEMENT_INSTANCE_GETTER,\n  CLASS_ELEMENT_INSTANCE_SETTER,\n  CLASS_ELEMENT_STATIC_GETTER,\n  CLASS_ELEMENT_STATIC_SETTER,\n  type BindingTypes,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { PARAM, functionFlags } from \"../util/production-parameter\";\n\nconst loopLabel = { kind: \"loop\" },\n  switchLabel = { kind: \"switch\" };\n\nconst FUNC_NO_FLAGS = 0b000,\n  FUNC_STATEMENT = 0b001,\n  FUNC_HANGING_STATEMENT = 0b010,\n  FUNC_NULLABLE_ID = 0b100;\n\nexport default class StatementParser extends ExpressionParser {\n  // ### Statement parsing\n\n  // Parse a program. Initializes the parser, reads any number of\n  // statements, and wraps them in a Program node.  Optionally takes a\n  // `program` argument.  If present, the statements will be appended\n  // to its body instead of creating a new node.\n\n  parseTopLevel(file: N.File, program: N.Program): N.File {\n    program.sourceType = this.options.sourceType;\n\n    program.interpreter = this.parseInterpreterDirective();\n\n    this.parseBlockBody(program, true, true, tt.eof);\n\n    if (\n      this.inModule &&\n      !this.options.allowUndeclaredExports &&\n      this.scope.undefinedExports.size > 0\n    ) {\n      for (const [name] of Array.from(this.scope.undefinedExports)) {\n        const pos = this.scope.undefinedExports.get(name);\n        // $FlowIssue\n        this.raise(pos, Errors.ModuleExportUndefined, name);\n      }\n    }\n\n    file.program = this.finishNode(program, \"Program\");\n    file.comments = this.state.comments;\n\n    if (this.options.tokens) file.tokens = this.tokens;\n\n    return this.finishNode(file, \"File\");\n  }\n\n  // TODO\n\n  stmtToDirective(stmt: N.Statement): N.Directive {\n    const expr = stmt.expression;\n\n    const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\n    const directive = this.startNodeAt(stmt.start, stmt.loc.start);\n\n    const raw = this.input.slice(expr.start, expr.end);\n    const val = (directiveLiteral.value = raw.slice(1, -1)); // remove quotes\n\n    this.addExtra(directiveLiteral, \"raw\", raw);\n    this.addExtra(directiveLiteral, \"rawValue\", val);\n\n    directive.value = this.finishNodeAt(\n      directiveLiteral,\n      \"DirectiveLiteral\",\n      expr.end,\n      expr.loc.end,\n    );\n\n    return this.finishNodeAt(directive, \"Directive\", stmt.end, stmt.loc.end);\n  }\n\n  parseInterpreterDirective(): N.InterpreterDirective | null {\n    if (!this.match(tt.interpreterDirective)) {\n      return null;\n    }\n\n    const node = this.startNode();\n    node.value = this.state.value;\n    this.next();\n    return this.finishNode(node, \"InterpreterDirective\");\n  }\n\n  isLet(context: ?string): boolean {\n    if (!this.isContextual(\"let\")) {\n      return false;\n    }\n    const next = this.nextTokenStart();\n    const nextCh = this.input.charCodeAt(next);\n    // For ambiguous cases, determine if a LexicalDeclaration (or only a\n    // Statement) is allowed here. If context is not empty then only a Statement\n    // is allowed. However, `let [` is an explicit negative lookahead for\n    // ExpressionStatement, so special-case it first.\n    if (nextCh === charCodes.leftSquareBracket) return true;\n    if (context) return false;\n\n    if (nextCh === charCodes.leftCurlyBrace) return true;\n\n    if (isIdentifierStart(nextCh)) {\n      let pos = next + 1;\n      while (isIdentifierChar(this.input.charCodeAt(pos))) {\n        ++pos;\n      }\n      const ident = this.input.slice(next, pos);\n      if (!keywordRelationalOperator.test(ident)) return true;\n    }\n    return false;\n  }\n\n  // Parse a single statement.\n  //\n  // If expecting a statement and finding a slash operator, parse a\n  // regular expression literal. This is to handle cases like\n  // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n  // does not help.\n\n  parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n    if (this.match(tt.at)) {\n      this.parseDecorators(true);\n    }\n    return this.parseStatementContent(context, topLevel);\n  }\n\n  parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n    let starttype = this.state.type;\n    const node = this.startNode();\n    let kind;\n\n    if (this.isLet(context)) {\n      starttype = tt._var;\n      kind = \"let\";\n    }\n\n    // Most types of statements are recognized by the keyword they\n    // start with. Many are trivial to parse, some require a bit of\n    // complexity.\n\n    switch (starttype) {\n      case tt._break:\n      case tt._continue:\n        // $FlowFixMe\n        return this.parseBreakContinueStatement(node, starttype.keyword);\n      case tt._debugger:\n        return this.parseDebuggerStatement(node);\n      case tt._do:\n        return this.parseDoStatement(node);\n      case tt._for:\n        return this.parseForStatement(node);\n      case tt._function:\n        if (this.lookaheadCharCode() === charCodes.dot) break;\n        if (context) {\n          if (this.state.strict) {\n            this.raise(this.state.start, Errors.StrictFunction);\n          } else if (context !== \"if\" && context !== \"label\") {\n            this.raise(this.state.start, Errors.SloppyFunction);\n          }\n        }\n        return this.parseFunctionStatement(node, false, !context);\n\n      case tt._class:\n        if (context) this.unexpected();\n        return this.parseClass(node, true);\n\n      case tt._if:\n        return this.parseIfStatement(node);\n      case tt._return:\n        return this.parseReturnStatement(node);\n      case tt._switch:\n        return this.parseSwitchStatement(node);\n      case tt._throw:\n        return this.parseThrowStatement(node);\n      case tt._try:\n        return this.parseTryStatement(node);\n\n      case tt._const:\n      case tt._var:\n        kind = kind || this.state.value;\n        if (context && kind !== \"var\") {\n          this.raise(this.state.start, Errors.UnexpectedLexicalDeclaration);\n        }\n        return this.parseVarStatement(node, kind);\n\n      case tt._while:\n        return this.parseWhileStatement(node);\n      case tt._with:\n        return this.parseWithStatement(node);\n      case tt.braceL:\n        return this.parseBlock();\n      case tt.semi:\n        return this.parseEmptyStatement(node);\n      case tt._export:\n      case tt._import: {\n        const nextTokenCharCode = this.lookaheadCharCode();\n        if (\n          nextTokenCharCode === charCodes.leftParenthesis ||\n          nextTokenCharCode === charCodes.dot\n        ) {\n          break;\n        }\n\n        if (!this.options.allowImportExportEverywhere && !topLevel) {\n          this.raise(this.state.start, Errors.UnexpectedImportExport);\n        }\n\n        this.next();\n\n        let result;\n        if (starttype === tt._import) {\n          result = this.parseImport(node);\n\n          if (\n            result.type === \"ImportDeclaration\" &&\n            (!result.importKind || result.importKind === \"value\")\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        } else {\n          result = this.parseExport(node);\n\n          if (\n            (result.type === \"ExportNamedDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            (result.type === \"ExportAllDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            result.type === \"ExportDefaultDeclaration\"\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        }\n\n        this.assertModuleNodeAllowed(node);\n\n        return result;\n      }\n\n      default: {\n        if (this.isAsyncFunction()) {\n          if (context) {\n            this.raise(\n              this.state.start,\n              Errors.AsyncFunctionInSingleStatementContext,\n            );\n          }\n          this.next();\n          return this.parseFunctionStatement(node, true, !context);\n        }\n      }\n    }\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n    const maybeName = this.state.value;\n    const expr = this.parseExpression();\n\n    if (\n      starttype === tt.name &&\n      expr.type === \"Identifier\" &&\n      this.eat(tt.colon)\n    ) {\n      return this.parseLabeledStatement(node, maybeName, expr, context);\n    } else {\n      return this.parseExpressionStatement(node, expr);\n    }\n  }\n\n  assertModuleNodeAllowed(node: N.Node): void {\n    if (!this.options.allowImportExportEverywhere && !this.inModule) {\n      this.raiseWithData(\n        node.start,\n        {\n          code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\",\n        },\n        Errors.ImportOutsideModule,\n      );\n    }\n  }\n\n  takeDecorators(node: N.HasDecorators): void {\n    const decorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (decorators.length) {\n      node.decorators = decorators;\n      this.resetStartLocationFromNode(node, decorators[0]);\n      this.state.decoratorStack[this.state.decoratorStack.length - 1] = [];\n    }\n  }\n\n  canHaveLeadingDecorator(): boolean {\n    return this.match(tt._class);\n  }\n\n  parseDecorators(allowExport?: boolean): void {\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    while (this.match(tt.at)) {\n      const decorator = this.parseDecorator();\n      currentContextDecorators.push(decorator);\n    }\n\n    if (this.match(tt._export)) {\n      if (!allowExport) {\n        this.unexpected();\n      }\n\n      if (\n        this.hasPlugin(\"decorators\") &&\n        !this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorExportClass);\n      }\n    } else if (!this.canHaveLeadingDecorator()) {\n      throw this.raise(this.state.start, Errors.UnexpectedLeadingDecorator);\n    }\n  }\n\n  parseDecorator(): N.Decorator {\n    this.expectOnePlugin([\"decorators-legacy\", \"decorators\"]);\n\n    const node = this.startNode();\n    this.next();\n\n    if (this.hasPlugin(\"decorators\")) {\n      // Every time a decorator class expression is evaluated, a new empty array is pushed onto the stack\n      // So that the decorators of any nested class expressions will be dealt with separately\n      this.state.decoratorStack.push([]);\n\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let expr: N.Expression;\n\n      if (this.eat(tt.parenL)) {\n        expr = this.parseExpression();\n        this.expect(tt.parenR);\n      } else {\n        expr = this.parseIdentifier(false);\n\n        while (this.eat(tt.dot)) {\n          const node = this.startNodeAt(startPos, startLoc);\n          node.object = expr;\n          node.property = this.parseIdentifier(true);\n          node.computed = false;\n          expr = this.finishNode(node, \"MemberExpression\");\n        }\n      }\n\n      node.expression = this.parseMaybeDecoratorArguments(expr);\n      this.state.decoratorStack.pop();\n    } else {\n      node.expression = this.parseExprSubscripts();\n    }\n    return this.finishNode(node, \"Decorator\");\n  }\n\n  parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n    if (this.eat(tt.parenL)) {\n      const node = this.startNodeAtNode(expr);\n      node.callee = expr;\n      node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      this.toReferencedList(node.arguments);\n      return this.finishNode(node, \"CallExpression\");\n    }\n\n    return expr;\n  }\n\n  parseBreakContinueStatement(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ): N.BreakStatement | N.ContinueStatement {\n    const isBreak = keyword === \"break\";\n    this.next();\n\n    if (this.isLineTerminator()) {\n      node.label = null;\n    } else {\n      node.label = this.parseIdentifier();\n      this.semicolon();\n    }\n\n    this.verifyBreakContinue(node, keyword);\n\n    return this.finishNode(\n      node,\n      isBreak ? \"BreakStatement\" : \"ContinueStatement\",\n    );\n  }\n\n  verifyBreakContinue(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ) {\n    const isBreak = keyword === \"break\";\n    let i;\n    for (i = 0; i < this.state.labels.length; ++i) {\n      const lab = this.state.labels[i];\n      if (node.label == null || lab.name === node.label.name) {\n        if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break;\n        if (node.label && isBreak) break;\n      }\n    }\n    if (i === this.state.labels.length) {\n      this.raise(node.start, Errors.IllegalBreakContinue, keyword);\n    }\n  }\n\n  parseDebuggerStatement(node: N.DebuggerStatement): N.DebuggerStatement {\n    this.next();\n    this.semicolon();\n    return this.finishNode(node, \"DebuggerStatement\");\n  }\n\n  parseHeaderExpression(): N.Expression {\n    this.expect(tt.parenL);\n    const val = this.parseExpression();\n    this.expect(tt.parenR);\n    return val;\n  }\n\n  parseDoStatement(node: N.DoWhileStatement): N.DoWhileStatement {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body's body.\n        this.parseStatement(\"do\"),\n      );\n\n    this.state.labels.pop();\n\n    this.expect(tt._while);\n    node.test = this.parseHeaderExpression();\n    this.eat(tt.semi);\n    return this.finishNode(node, \"DoWhileStatement\");\n  }\n\n  // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n  // loop is non-trivial. Basically, we have to parse the init `var`\n  // statement or expression, disallowing the `in` operator (see\n  // the second parameter to `parseExpression`), and then check\n  // whether the next token is `in` or `of`. When there is no init\n  // part (semicolon immediately after the opening parenthesis), it\n  // is a regular `for` loop.\n\n  parseForStatement(node: N.Node): N.ForLike {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    let awaitAt = -1;\n    if (this.isAwaitAllowed() && this.eatContextual(\"await\")) {\n      awaitAt = this.state.lastTokStart;\n    }\n    this.scope.enter(SCOPE_OTHER);\n    this.expect(tt.parenL);\n\n    if (this.match(tt.semi)) {\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, null);\n    }\n\n    const isLet = this.isLet();\n    if (this.match(tt._var) || this.match(tt._const) || isLet) {\n      const init = this.startNode();\n      const kind = isLet ? \"let\" : this.state.value;\n      this.next();\n      this.parseVar(init, true, kind);\n      this.finishNode(init, \"VariableDeclaration\");\n\n      if (\n        (this.match(tt._in) || this.isContextual(\"of\")) &&\n        init.declarations.length === 1\n      ) {\n        return this.parseForIn(node, init, awaitAt);\n      }\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, init);\n    }\n\n    const refExpressionErrors = new ExpressionErrors();\n    const init = this.parseExpression(true, refExpressionErrors);\n    if (this.match(tt._in) || this.isContextual(\"of\")) {\n      this.toAssignable(init);\n      const description = this.isContextual(\"of\")\n        ? \"for-of statement\"\n        : \"for-in statement\";\n      this.checkLVal(init, undefined, undefined, description);\n      return this.parseForIn(node, init, awaitAt);\n    } else {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n    if (awaitAt > -1) {\n      this.unexpected(awaitAt);\n    }\n    return this.parseFor(node, init);\n  }\n\n  parseFunctionStatement(\n    node: N.FunctionDeclaration,\n    isAsync?: boolean,\n    declarationPosition?: boolean,\n  ): N.FunctionDeclaration {\n    this.next();\n    return this.parseFunction(\n      node,\n      FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT),\n      isAsync,\n    );\n  }\n\n  parseIfStatement(node: N.IfStatement): N.IfStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    node.consequent = this.parseStatement(\"if\");\n    node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null;\n    return this.finishNode(node, \"IfStatement\");\n  }\n\n  parseReturnStatement(node: N.ReturnStatement): N.ReturnStatement {\n    if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n      this.raise(this.state.start, Errors.IllegalReturn);\n    }\n\n    this.next();\n\n    // In `return` (and `break`/`continue`), the keywords with\n    // optional arguments, we eagerly look for a semicolon or the\n    // possibility to insert one.\n\n    if (this.isLineTerminator()) {\n      node.argument = null;\n    } else {\n      node.argument = this.parseExpression();\n      this.semicolon();\n    }\n\n    return this.finishNode(node, \"ReturnStatement\");\n  }\n\n  parseSwitchStatement(node: N.SwitchStatement): N.SwitchStatement {\n    this.next();\n    node.discriminant = this.parseHeaderExpression();\n    const cases = (node.cases = []);\n    this.expect(tt.braceL);\n    this.state.labels.push(switchLabel);\n    this.scope.enter(SCOPE_OTHER);\n\n    // Statements under must be grouped (by label) in SwitchCase\n    // nodes. `cur` is used to keep the node that we are currently\n    // adding statements to.\n\n    let cur;\n    for (let sawDefault; !this.match(tt.braceR); ) {\n      if (this.match(tt._case) || this.match(tt._default)) {\n        const isCase = this.match(tt._case);\n        if (cur) this.finishNode(cur, \"SwitchCase\");\n        cases.push((cur = this.startNode()));\n        cur.consequent = [];\n        this.next();\n        if (isCase) {\n          cur.test = this.parseExpression();\n        } else {\n          if (sawDefault) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.MultipleDefaultsInSwitch,\n            );\n          }\n          sawDefault = true;\n          cur.test = null;\n        }\n        this.expect(tt.colon);\n      } else {\n        if (cur) {\n          cur.consequent.push(this.parseStatement(null));\n        } else {\n          this.unexpected();\n        }\n      }\n    }\n    this.scope.exit();\n    if (cur) this.finishNode(cur, \"SwitchCase\");\n    this.next(); // Closing brace\n    this.state.labels.pop();\n    return this.finishNode(node, \"SwitchStatement\");\n  }\n\n  parseThrowStatement(node: N.ThrowStatement): N.ThrowStatement {\n    this.next();\n    if (\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.NewlineAfterThrow);\n    }\n    node.argument = this.parseExpression();\n    this.semicolon();\n    return this.finishNode(node, \"ThrowStatement\");\n  }\n\n  parseTryStatement(node: N.TryStatement): N.TryStatement {\n    this.next();\n\n    node.block = this.parseBlock();\n    node.handler = null;\n\n    if (this.match(tt._catch)) {\n      const clause = this.startNode();\n      this.next();\n      if (this.match(tt.parenL)) {\n        this.expect(tt.parenL);\n        clause.param = this.parseBindingAtom();\n        const simple = clause.param.type === \"Identifier\";\n        this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0);\n        this.checkLVal(clause.param, BIND_LEXICAL, null, \"catch clause\");\n        this.expect(tt.parenR);\n      } else {\n        clause.param = null;\n        this.scope.enter(SCOPE_OTHER);\n      }\n\n      clause.body =\n        // For the smartPipelines plugin: Disable topic references from outer\n        // contexts within the function body. They are permitted in function\n        // default-parameter expressions, which are part of the outer context,\n        // outside of the function body.\n        this.withTopicForbiddingContext(() =>\n          // Parse the catch clause's body.\n          this.parseBlock(false, false),\n        );\n      this.scope.exit();\n\n      node.handler = this.finishNode(clause, \"CatchClause\");\n    }\n\n    node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null;\n\n    if (!node.handler && !node.finalizer) {\n      this.raise(node.start, Errors.NoCatchOrFinally);\n    }\n\n    return this.finishNode(node, \"TryStatement\");\n  }\n\n  parseVarStatement(\n    node: N.VariableDeclaration,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    this.next();\n    this.parseVar(node, false, kind);\n    this.semicolon();\n    return this.finishNode(node, \"VariableDeclaration\");\n  }\n\n  parseWhileStatement(node: N.WhileStatement): N.WhileStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"while\"),\n      );\n\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"WhileStatement\");\n  }\n\n  parseWithStatement(node: N.WithStatement): N.WithStatement {\n    if (this.state.strict) {\n      this.raise(this.state.start, Errors.StrictWith);\n    }\n    this.next();\n    node.object = this.parseHeaderExpression();\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the function body.\n      // They are permitted in function default-parameter expressions, which are\n      // part of the outer context, outside of the function body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the statement body.\n        this.parseStatement(\"with\"),\n      );\n\n    return this.finishNode(node, \"WithStatement\");\n  }\n\n  parseEmptyStatement(node: N.EmptyStatement): N.EmptyStatement {\n    this.next();\n    return this.finishNode(node, \"EmptyStatement\");\n  }\n\n  parseLabeledStatement(\n    node: N.LabeledStatement,\n    maybeName: string,\n    expr: N.Identifier,\n    context: ?string,\n  ): N.LabeledStatement {\n    for (const label of this.state.labels) {\n      if (label.name === maybeName) {\n        this.raise(expr.start, Errors.LabelRedeclaration, maybeName);\n      }\n    }\n\n    const kind = this.state.type.isLoop\n      ? \"loop\"\n      : this.match(tt._switch)\n      ? \"switch\"\n      : null;\n    for (let i = this.state.labels.length - 1; i >= 0; i--) {\n      const label = this.state.labels[i];\n      if (label.statementStart === node.start) {\n        label.statementStart = this.state.start;\n        label.kind = kind;\n      } else {\n        break;\n      }\n    }\n\n    this.state.labels.push({\n      name: maybeName,\n      kind: kind,\n      statementStart: this.state.start,\n    });\n    node.body = this.parseStatement(\n      context\n        ? context.indexOf(\"label\") === -1\n          ? context + \"label\"\n          : context\n        : \"label\",\n    );\n\n    this.state.labels.pop();\n    node.label = expr;\n    return this.finishNode(node, \"LabeledStatement\");\n  }\n\n  parseExpressionStatement(\n    node: N.ExpressionStatement,\n    expr: N.Expression,\n  ): N.Statement {\n    node.expression = expr;\n    this.semicolon();\n    return this.finishNode(node, \"ExpressionStatement\");\n  }\n\n  // Parse a semicolon-enclosed block of statements, handling `\"use\n  // strict\"` declarations when `allowStrict` is true (used for\n  // function bodies).\n\n  parseBlock(\n    allowDirectives?: boolean = false,\n    createNewLexicalScope?: boolean = true,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): N.BlockStatement {\n    const node = this.startNode();\n    this.expect(tt.braceL);\n    if (createNewLexicalScope) {\n      this.scope.enter(SCOPE_OTHER);\n    }\n    this.parseBlockBody(\n      node,\n      allowDirectives,\n      false,\n      tt.braceR,\n      afterBlockParse,\n    );\n    if (createNewLexicalScope) {\n      this.scope.exit();\n    }\n    return this.finishNode(node, \"BlockStatement\");\n  }\n\n  isValidDirective(stmt: N.Statement): boolean {\n    return (\n      stmt.type === \"ExpressionStatement\" &&\n      stmt.expression.type === \"StringLiteral\" &&\n      !stmt.expression.extra.parenthesized\n    );\n  }\n\n  parseBlockBody(\n    node: N.BlockStatementLike,\n    allowDirectives: ?boolean,\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const body = (node.body = []);\n    const directives = (node.directives = []);\n    this.parseBlockOrModuleBlockBody(\n      body,\n      allowDirectives ? directives : undefined,\n      topLevel,\n      end,\n      afterBlockParse,\n    );\n  }\n\n  // Undefined directives means that directives are not allowed.\n  parseBlockOrModuleBlockBody(\n    body: N.Statement[],\n    directives: ?(N.Directive[]),\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const octalPositions = [];\n    const oldStrict = this.state.strict;\n    let hasStrictModeDirective = false;\n    let parsedNonDirective = false;\n\n    while (!this.match(end)) {\n      // Track octal literals that occur before a \"use strict\" directive.\n      if (!parsedNonDirective && this.state.octalPositions.length) {\n        octalPositions.push(...this.state.octalPositions);\n      }\n\n      const stmt = this.parseStatement(null, topLevel);\n\n      if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {\n        const directive = this.stmtToDirective(stmt);\n        directives.push(directive);\n\n        if (!hasStrictModeDirective && directive.value.value === \"use strict\") {\n          hasStrictModeDirective = true;\n          this.setStrict(true);\n        }\n\n        continue;\n      }\n\n      parsedNonDirective = true;\n      body.push(stmt);\n    }\n\n    // Throw an error for any octal literals found before a\n    // \"use strict\" directive. Strict mode will be set at parse\n    // time for any literals that occur after the directive.\n    if (this.state.strict && octalPositions.length) {\n      for (const pos of octalPositions) {\n        this.raise(pos, Errors.StrictOctalLiteral);\n      }\n    }\n\n    if (afterBlockParse) {\n      afterBlockParse.call(this, hasStrictModeDirective);\n    }\n\n    if (!oldStrict) {\n      this.setStrict(false);\n    }\n\n    this.next();\n  }\n\n  // Parse a regular `for` loop. The disambiguation code in\n  // `parseStatement` will already have parsed the init statement or\n  // expression.\n\n  parseFor(\n    node: N.ForStatement,\n    init: ?(N.VariableDeclaration | N.Expression),\n  ): N.ForStatement {\n    node.init = init;\n    this.expect(tt.semi);\n    node.test = this.match(tt.semi) ? null : this.parseExpression();\n    this.expect(tt.semi);\n    node.update = this.match(tt.parenR) ? null : this.parseExpression();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"ForStatement\");\n  }\n\n  // Parse a `for`/`in` and `for`/`of` loop, which are almost\n  // same from parser's perspective.\n\n  parseForIn(\n    node: N.ForInOf,\n    init: N.VariableDeclaration | N.AssignmentPattern,\n    awaitAt: number,\n  ): N.ForInOf {\n    const isForIn = this.match(tt._in);\n    this.next();\n\n    if (isForIn) {\n      if (awaitAt > -1) this.unexpected(awaitAt);\n    } else {\n      node.await = awaitAt > -1;\n    }\n\n    if (\n      init.type === \"VariableDeclaration\" &&\n      init.declarations[0].init != null &&\n      (!isForIn ||\n        this.state.strict ||\n        init.kind !== \"var\" ||\n        init.declarations[0].id.type !== \"Identifier\")\n    ) {\n      this.raise(\n        init.start,\n        Errors.ForInOfLoopInitializer,\n        isForIn ? \"for-in\" : \"for-of\",\n      );\n    } else if (init.type === \"AssignmentPattern\") {\n      this.raise(init.start, Errors.InvalidLhs, \"for-loop\");\n    }\n\n    node.left = init;\n    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n  }\n\n  // Parse a list of variable declarations.\n\n  parseVar(\n    node: N.VariableDeclaration,\n    isFor: boolean,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    const declarations = (node.declarations = []);\n    const isTypescript = this.hasPlugin(\"typescript\");\n    node.kind = kind;\n    for (;;) {\n      const decl = this.startNode();\n      this.parseVarId(decl, kind);\n      if (this.eat(tt.eq)) {\n        decl.init = this.parseMaybeAssign(isFor);\n      } else {\n        if (\n          kind === \"const\" &&\n          !(this.match(tt._in) || this.isContextual(\"of\"))\n        ) {\n          // `const` with no initializer is allowed in TypeScript.\n          // It could be a declaration like `const x: number;`.\n          if (!isTypescript) {\n            this.unexpected();\n          }\n        } else if (\n          decl.id.type !== \"Identifier\" &&\n          !(isFor && (this.match(tt._in) || this.isContextual(\"of\")))\n        ) {\n          this.raise(\n            this.state.lastTokEnd,\n            Errors.DeclarationMissingInitializer,\n            \"Complex binding patterns\",\n          );\n        }\n        decl.init = null;\n      }\n      declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n      if (!this.eat(tt.comma)) break;\n    }\n    return node;\n  }\n\n  parseVarId(decl: N.VariableDeclarator, kind: \"var\" | \"let\" | \"const\"): void {\n    decl.id = this.parseBindingAtom();\n    this.checkLVal(\n      decl.id,\n      kind === \"var\" ? BIND_VAR : BIND_LEXICAL,\n      undefined,\n      \"variable declaration\",\n      kind !== \"var\",\n    );\n  }\n\n  // Parse a function declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseFunction<T: N.NormalFunction>(\n    node: T,\n    statement?: number = FUNC_NO_FLAGS,\n    isAsync?: boolean = false,\n  ): T {\n    const isStatement = statement & FUNC_STATEMENT;\n    const isHangingStatement = statement & FUNC_HANGING_STATEMENT;\n    const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID);\n\n    this.initFunction(node, isAsync);\n\n    if (this.match(tt.star) && isHangingStatement) {\n      this.raise(this.state.start, Errors.GeneratorInSingleStatementContext);\n    }\n    node.generator = this.eat(tt.star);\n\n    if (isStatement) {\n      node.id = this.parseFunctionId(requireId);\n    }\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.scope.enter(SCOPE_FUNCTION);\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n\n    if (!isStatement) {\n      node.id = this.parseFunctionId();\n    }\n\n    this.parseFunctionParams(node);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the function body. They are permitted in test\n    // expressions, outside of the function body.\n    this.withTopicForbiddingContext(() => {\n      // Parse the function body.\n      this.parseFunctionBodyAndFinish(\n        node,\n        isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\",\n      );\n    });\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    if (isStatement && !isHangingStatement) {\n      // We need to register this _after_ parsing the function body\n      // because of TypeScript body-less function declarations,\n      // which shouldn't be added to the scope.\n      this.registerFunctionStatementId(node);\n    }\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  parseFunctionId(requireId?: boolean): ?N.Identifier {\n    return requireId || this.match(tt.name) ? this.parseIdentifier() : null;\n  }\n\n  parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = true;\n\n    this.expect(tt.parenL);\n    node.params = this.parseBindingList(\n      tt.parenR,\n      charCodes.rightParenthesis,\n      /* allowEmpty */ false,\n      allowModifiers,\n    );\n\n    this.state.inParameters = oldInParameters;\n    this.checkYieldAwaitInDefaultParams();\n  }\n\n  registerFunctionStatementId(node: N.Function): void {\n    if (!node.id) return;\n\n    // If it is a regular function declaration in sloppy mode, then it is\n    // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n    // mode depends on properties of the current scope (see\n    // treatFunctionsAsVar).\n    this.scope.declareName(\n      node.id.name,\n      this.state.strict || node.generator || node.async\n        ? this.scope.treatFunctionsAsVar\n          ? BIND_VAR\n          : BIND_LEXICAL\n        : BIND_FUNCTION,\n      node.id.start,\n    );\n  }\n\n  // Parse a class declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseClass<T: N.Class>(\n    node: T,\n    isStatement: /* T === ClassDeclaration */ boolean,\n    optionalId?: boolean,\n  ): T {\n    this.next();\n    this.takeDecorators(node);\n\n    // A class definition is always strict mode code.\n    const oldStrict = this.state.strict;\n    this.state.strict = true;\n\n    this.parseClassId(node, isStatement, optionalId);\n    this.parseClassSuper(node);\n    node.body = this.parseClassBody(!!node.superClass, oldStrict);\n\n    this.state.strict = oldStrict;\n\n    return this.finishNode(\n      node,\n      isStatement ? \"ClassDeclaration\" : \"ClassExpression\",\n    );\n  }\n\n  isClassProperty(): boolean {\n    return this.match(tt.eq) || this.match(tt.semi) || this.match(tt.braceR);\n  }\n\n  isClassMethod(): boolean {\n    return this.match(tt.parenL);\n  }\n\n  isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n    return (\n      !method.computed &&\n      !method.static &&\n      (method.key.name === \"constructor\" || // Identifier\n        method.key.value === \"constructor\") // String literal\n    );\n  }\n\n  parseClassBody(\n    constructorAllowsSuper: boolean,\n    oldStrict?: boolean,\n  ): N.ClassBody {\n    this.classScope.enter();\n\n    const state = { hadConstructor: false };\n    let decorators: N.Decorator[] = [];\n    const classBody: N.ClassBody = this.startNode();\n    classBody.body = [];\n\n    this.expect(tt.braceL);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the class body. They are permitted in test expressions,\n    // outside of the class body.\n    this.withTopicForbiddingContext(() => {\n      while (!this.match(tt.braceR)) {\n        if (this.eat(tt.semi)) {\n          if (decorators.length > 0) {\n            throw this.raise(this.state.lastTokEnd, Errors.DecoratorSemicolon);\n          }\n          continue;\n        }\n\n        if (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n          continue;\n        }\n\n        const member = this.startNode();\n\n        // steal the decorators if there are any\n        if (decorators.length) {\n          member.decorators = decorators;\n          this.resetStartLocationFromNode(member, decorators[0]);\n          decorators = [];\n        }\n\n        this.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n        if (\n          member.kind === \"constructor\" &&\n          member.decorators &&\n          member.decorators.length > 0\n        ) {\n          this.raise(member.start, Errors.DecoratorConstructor);\n        }\n      }\n    });\n\n    if (!oldStrict) {\n      this.state.strict = false;\n    }\n\n    this.next();\n\n    if (decorators.length) {\n      throw this.raise(this.state.start, Errors.TrailingDecorator);\n    }\n\n    this.classScope.exit();\n\n    return this.finishNode(classBody, \"ClassBody\");\n  }\n\n  // returns true if the current identifier is a method/field name,\n  // false if it is a modifier\n  parseClassMemberFromModifier(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n  ): boolean {\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseIdentifier(true); // eats the modifier\n\n    if (this.isClassMethod()) {\n      const method: N.ClassMethod = (member: any);\n\n      // a method named like the modifier\n      method.kind = \"method\";\n      method.computed = false;\n      method.key = key;\n      method.static = false;\n      this.pushClassMethod(\n        classBody,\n        method,\n        false,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n      return true;\n    } else if (this.isClassProperty()) {\n      const prop: N.ClassProperty = (member: any);\n\n      // a property named like the modifier\n      prop.computed = false;\n      prop.key = key;\n      prop.static = false;\n      classBody.body.push(this.parseClassProperty(prop));\n      return true;\n    } else if (containsEsc) {\n      throw this.unexpected();\n    }\n\n    return false;\n  }\n\n  parseClassMember(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    constructorAllowsSuper: boolean,\n  ): void {\n    const isStatic = this.isContextual(\"static\");\n\n    if (isStatic && this.parseClassMemberFromModifier(classBody, member)) {\n      // a class element named 'static'\n      return;\n    }\n\n    this.parseClassMemberWithIsStatic(\n      classBody,\n      member,\n      state,\n      isStatic,\n      constructorAllowsSuper,\n    );\n  }\n\n  parseClassMemberWithIsStatic(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    isStatic: boolean,\n    constructorAllowsSuper: boolean,\n  ) {\n    const publicMethod: $FlowSubtype<N.ClassMethod> = member;\n    const privateMethod: $FlowSubtype<N.ClassPrivateMethod> = member;\n    const publicProp: $FlowSubtype<N.ClassMethod> = member;\n    const privateProp: $FlowSubtype<N.ClassPrivateMethod> = member;\n\n    const method: typeof publicMethod | typeof privateMethod = publicMethod;\n    const publicMember: typeof publicMethod | typeof publicProp = publicMethod;\n\n    member.static = isStatic;\n\n    if (this.eat(tt.star)) {\n      // a generator\n      method.kind = \"method\";\n      this.parseClassPropertyName(method);\n\n      if (method.key.type === \"PrivateName\") {\n        // Private generator method\n        this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n        return;\n      }\n\n      if (this.isNonstaticConstructor(publicMethod)) {\n        this.raise(publicMethod.key.start, Errors.ConstructorIsGenerator);\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        true,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n\n      return;\n    }\n\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseClassPropertyName(member);\n    const isPrivate = key.type === \"PrivateName\";\n    // Check the key is not a computed expression or string literal.\n    const isSimple = key.type === \"Identifier\";\n    const maybeQuestionTokenStart = this.state.start;\n\n    this.parsePostMemberNameModifiers(publicMember);\n\n    if (this.isClassMethod()) {\n      method.kind = \"method\";\n\n      if (isPrivate) {\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n        return;\n      }\n\n      // a normal method\n      const isConstructor = this.isNonstaticConstructor(publicMethod);\n      let allowsDirectSuper = false;\n      if (isConstructor) {\n        publicMethod.kind = \"constructor\";\n\n        // TypeScript allows multiple overloaded constructor declarations.\n        if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n          this.raise(key.start, Errors.DuplicateConstructor);\n        }\n        state.hadConstructor = true;\n        allowsDirectSuper = constructorAllowsSuper;\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        false,\n        false,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    } else if (this.isClassProperty()) {\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else if (\n      isSimple &&\n      key.name === \"async\" &&\n      !containsEsc &&\n      !this.isLineTerminator()\n    ) {\n      // an async method\n      const isGenerator = this.eat(tt.star);\n\n      if (publicMember.optional) {\n        this.unexpected(maybeQuestionTokenStart);\n      }\n\n      method.kind = \"method\";\n      // The so-called parsed name would have been \"async\": get the real name.\n      this.parseClassPropertyName(method);\n      this.parsePostMemberNameModifiers(publicMember);\n\n      if (method.key.type === \"PrivateName\") {\n        // private async method\n        this.pushClassPrivateMethod(\n          classBody,\n          privateMethod,\n          isGenerator,\n          true,\n        );\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAsync);\n        }\n\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          isGenerator,\n          true,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n    } else if (\n      isSimple &&\n      (key.name === \"get\" || key.name === \"set\") &&\n      !containsEsc &&\n      !(this.match(tt.star) && this.isLineTerminator())\n    ) {\n      // `get\\n*` is an uninitialized property named 'get' followed by a generator.\n      // a getter or setter\n      method.kind = key.name;\n      // The so-called parsed name would have been \"get/set\": get the real name.\n      this.parseClassPropertyName(publicMethod);\n\n      if (method.key.type === \"PrivateName\") {\n        // private getter/setter\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAccessor);\n        }\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          false,\n          false,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n\n      this.checkGetterSetterParams(publicMethod);\n    } else if (this.isLineTerminator()) {\n      // an uninitialized class property (due to ASI, since we don't otherwise recognize the next token)\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else {\n      this.unexpected();\n    }\n  }\n\n  parseClassPropertyName(member: N.ClassMember): N.Expression | N.Identifier {\n    const key = this.parsePropertyName(member, /* isPrivateNameAllowed */ true);\n\n    if (\n      !member.computed &&\n      member.static &&\n      ((key: $FlowSubtype<N.Identifier>).name === \"prototype\" ||\n        (key: $FlowSubtype<N.StringLiteral>).value === \"prototype\")\n    ) {\n      this.raise(key.start, Errors.StaticPrototype);\n    }\n\n    if (key.type === \"PrivateName\" && key.id.name === \"constructor\") {\n      this.raise(key.start, Errors.ConstructorClassPrivateField);\n    }\n\n    return key;\n  }\n\n  pushClassProperty(classBody: N.ClassBody, prop: N.ClassProperty) {\n    if (\n      !prop.computed &&\n      (prop.key.name === \"constructor\" || prop.key.value === \"constructor\")\n    ) {\n      // Non-computed field, which is either an identifier named \"constructor\"\n      // or a string literal named \"constructor\"\n      this.raise(prop.key.start, Errors.ConstructorClassField);\n    }\n\n    classBody.body.push(this.parseClassProperty(prop));\n  }\n\n  pushClassPrivateProperty(\n    classBody: N.ClassBody,\n    prop: N.ClassPrivateProperty,\n  ) {\n    this.expectPlugin(\"classPrivateProperties\", prop.key.start);\n\n    const node = this.parseClassPrivateProperty(prop);\n    classBody.body.push(node);\n\n    this.classScope.declarePrivateName(\n      node.key.id.name,\n      CLASS_ELEMENT_OTHER,\n      node.key.start,\n    );\n  }\n\n  pushClassMethod(\n    classBody: N.ClassBody,\n    method: N.ClassMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowsDirectSuper: boolean,\n  ): void {\n    classBody.body.push(\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      ),\n    );\n  }\n\n  pushClassPrivateMethod(\n    classBody: N.ClassBody,\n    method: N.ClassPrivateMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n  ): void {\n    this.expectPlugin(\"classPrivateMethods\", method.key.start);\n\n    const node = this.parseMethod(\n      method,\n      isGenerator,\n      isAsync,\n      /* isConstructor */ false,\n      false,\n      \"ClassPrivateMethod\",\n      true,\n    );\n    classBody.body.push(node);\n\n    const kind =\n      node.kind === \"get\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_GETTER\n          : CLASS_ELEMENT_INSTANCE_GETTER\n        : node.kind === \"set\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_SETTER\n          : CLASS_ELEMENT_INSTANCE_SETTER\n        : CLASS_ELEMENT_OTHER;\n    this.classScope.declarePrivateName(node.key.id.name, kind, node.key.start);\n  }\n\n  // Overridden in typescript.js\n  parsePostMemberNameModifiers(\n    // eslint-disable-next-line no-unused-vars\n    methodOrProp: N.ClassMethod | N.ClassProperty,\n  ): void {}\n\n  // Overridden in typescript.js\n  parseAccessModifier(): ?N.Accessibility {\n    return undefined;\n  }\n\n  parseClassPrivateProperty(\n    node: N.ClassPrivateProperty,\n  ): N.ClassPrivateProperty {\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    node.value = this.eat(tt.eq) ? this.parseMaybeAssign() : null;\n    this.semicolon();\n    this.prodParam.exit();\n\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassPrivateProperty\");\n  }\n\n  parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n    if (!node.typeAnnotation) {\n      this.expectPlugin(\"classProperties\");\n    }\n\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    if (this.match(tt.eq)) {\n      this.expectPlugin(\"classProperties\");\n      this.next();\n      node.value = this.parseMaybeAssign();\n    } else {\n      node.value = null;\n    }\n    this.semicolon();\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassProperty\");\n  }\n\n  parseClassId(\n    node: N.Class,\n    isStatement: boolean,\n    optionalId: ?boolean,\n    bindingType: BindingTypes = BIND_CLASS,\n  ): void {\n    if (this.match(tt.name)) {\n      node.id = this.parseIdentifier();\n      if (isStatement) {\n        this.checkLVal(node.id, bindingType, undefined, \"class name\");\n      }\n    } else {\n      if (optionalId || !isStatement) {\n        node.id = null;\n      } else {\n        this.unexpected(null, Errors.MissingClassName);\n      }\n    }\n  }\n\n  parseClassSuper(node: N.Class): void {\n    node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null;\n  }\n\n  // Parses module export declaration.\n\n  parseExport(node: N.Node): N.AnyExport {\n    const hasDefault = this.maybeParseExportDefaultSpecifier(node);\n    const parseAfterDefault = !hasDefault || this.eat(tt.comma);\n    const hasStar = parseAfterDefault && this.eatExportStar(node);\n    const hasNamespace =\n      hasStar && this.maybeParseExportNamespaceSpecifier(node);\n    const parseAfterNamespace =\n      parseAfterDefault && (!hasNamespace || this.eat(tt.comma));\n    const isFromRequired = hasDefault || hasStar;\n\n    if (hasStar && !hasNamespace) {\n      if (hasDefault) this.unexpected();\n      this.parseExportFrom(node, true);\n\n      return this.finishNode(node, \"ExportAllDeclaration\");\n    }\n\n    const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n\n    if (\n      (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) ||\n      (hasNamespace && parseAfterNamespace && !hasSpecifiers)\n    ) {\n      throw this.unexpected(null, tt.braceL);\n    }\n\n    let hasDeclaration;\n    if (isFromRequired || hasSpecifiers) {\n      hasDeclaration = false;\n      this.parseExportFrom(node, isFromRequired);\n    } else {\n      hasDeclaration = this.maybeParseExportDeclaration(node);\n    }\n\n    if (isFromRequired || hasSpecifiers || hasDeclaration) {\n      this.checkExport(node, true, false, !!node.source);\n      return this.finishNode(node, \"ExportNamedDeclaration\");\n    }\n\n    if (this.eat(tt._default)) {\n      // export default ...\n      node.declaration = this.parseExportDefaultExpression();\n      this.checkExport(node, true, true);\n\n      return this.finishNode(node, \"ExportDefaultDeclaration\");\n    }\n\n    throw this.unexpected(null, tt.braceL);\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  eatExportStar(node: N.Node): boolean {\n    return this.eat(tt.star);\n  }\n\n  maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n    if (this.isExportDefaultSpecifier()) {\n      // export defaultObj ...\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n    if (this.isContextual(\"as\")) {\n      if (!node.specifiers) node.specifiers = [];\n\n      const specifier = this.startNodeAt(\n        this.state.lastTokStart,\n        this.state.lastTokStartLoc,\n      );\n\n      this.next();\n\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers.push(\n        this.finishNode(specifier, \"ExportNamespaceSpecifier\"),\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamedSpecifiers(node: N.Node): boolean {\n    if (this.match(tt.braceL)) {\n      if (!node.specifiers) node.specifiers = [];\n      node.specifiers.push(...this.parseExportSpecifiers());\n\n      node.source = null;\n      node.declaration = null;\n\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportDeclaration(node: N.Node): boolean {\n    if (this.shouldParseExportDeclaration()) {\n      if (this.isContextual(\"async\")) {\n        const next = this.nextTokenStart();\n\n        // export async;\n        if (!this.isUnparsedContextual(next, \"function\")) {\n          this.unexpected(next, tt._function);\n        }\n      }\n\n      node.specifiers = [];\n      node.source = null;\n      node.declaration = this.parseExportDeclaration(node);\n\n      return true;\n    }\n    return false;\n  }\n\n  isAsyncFunction(): boolean {\n    if (!this.isContextual(\"async\")) return false;\n    const next = this.nextTokenStart();\n    return (\n      !lineBreak.test(this.input.slice(this.state.pos, next)) &&\n      this.isUnparsedContextual(next, \"function\")\n    );\n  }\n\n  parseExportDefaultExpression(): N.Expression | N.Declaration {\n    const expr = this.startNode();\n\n    const isAsync = this.isAsyncFunction();\n\n    if (this.match(tt._function) || isAsync) {\n      this.next();\n      if (isAsync) {\n        this.next();\n      }\n\n      return this.parseFunction(\n        expr,\n        FUNC_STATEMENT | FUNC_NULLABLE_ID,\n        isAsync,\n      );\n    } else if (this.match(tt._class)) {\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt.at)) {\n      if (\n        this.hasPlugin(\"decorators\") &&\n        this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorBeforeExport);\n      }\n      this.parseDecorators(false);\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt._const) || this.match(tt._var) || this.isLet()) {\n      throw this.raise(this.state.start, Errors.UnsupportedDefaultExport);\n    } else {\n      const res = this.parseMaybeAssign();\n      this.semicolon();\n      return res;\n    }\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n    return this.parseStatement(null);\n  }\n\n  isExportDefaultSpecifier(): boolean {\n    if (this.match(tt.name)) {\n      return this.state.value !== \"async\" && this.state.value !== \"let\";\n    }\n\n    if (!this.match(tt._default)) {\n      return false;\n    }\n\n    const next = this.nextTokenStart();\n    return (\n      this.input.charCodeAt(next) === charCodes.comma ||\n      this.isUnparsedContextual(next, \"from\")\n    );\n  }\n\n  parseExportFrom(node: N.ExportNamedDeclaration, expect?: boolean): void {\n    if (this.eatContextual(\"from\")) {\n      node.source = this.parseImportSource();\n      this.checkExport(node);\n    } else {\n      if (expect) {\n        this.unexpected();\n      } else {\n        node.source = null;\n      }\n    }\n\n    this.semicolon();\n  }\n\n  shouldParseExportDeclaration(): boolean {\n    if (this.match(tt.at)) {\n      this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n      if (this.hasPlugin(\"decorators\")) {\n        if (this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")) {\n          this.unexpected(this.state.start, Errors.DecoratorBeforeExport);\n        } else {\n          return true;\n        }\n      }\n    }\n\n    return (\n      this.state.type.keyword === \"var\" ||\n      this.state.type.keyword === \"const\" ||\n      this.state.type.keyword === \"function\" ||\n      this.state.type.keyword === \"class\" ||\n      this.isLet() ||\n      this.isAsyncFunction()\n    );\n  }\n\n  checkExport(\n    node: N.ExportNamedDeclaration,\n    checkNames?: boolean,\n    isDefault?: boolean,\n    isFrom?: boolean,\n  ): void {\n    if (checkNames) {\n      // Check for duplicate exports\n      if (isDefault) {\n        // Default exports\n        this.checkDuplicateExports(node, \"default\");\n      } else if (node.specifiers && node.specifiers.length) {\n        // Named exports\n        for (const specifier of node.specifiers) {\n          this.checkDuplicateExports(specifier, specifier.exported.name);\n          // $FlowIgnore\n          if (!isFrom && specifier.local) {\n            // check for keywords used as local names\n            this.checkReservedWord(\n              specifier.local.name,\n              specifier.local.start,\n              true,\n              false,\n            );\n            // check if export is defined\n            // $FlowIgnore\n            this.scope.checkLocalExport(specifier.local);\n          }\n        }\n      } else if (node.declaration) {\n        // Exported declarations\n        if (\n          node.declaration.type === \"FunctionDeclaration\" ||\n          node.declaration.type === \"ClassDeclaration\"\n        ) {\n          const id = node.declaration.id;\n          if (!id) throw new Error(\"Assertion failure\");\n\n          this.checkDuplicateExports(node, id.name);\n        } else if (node.declaration.type === \"VariableDeclaration\") {\n          for (const declaration of node.declaration.declarations) {\n            this.checkDeclaration(declaration.id);\n          }\n        }\n      }\n    }\n\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (currentContextDecorators.length) {\n      const isClass =\n        node.declaration &&\n        (node.declaration.type === \"ClassDeclaration\" ||\n          node.declaration.type === \"ClassExpression\");\n      if (!node.declaration || !isClass) {\n        throw this.raise(node.start, Errors.UnsupportedDecoratorExport);\n      }\n      this.takeDecorators(node.declaration);\n    }\n  }\n\n  checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n    if (node.type === \"Identifier\") {\n      this.checkDuplicateExports(node, node.name);\n    } else if (node.type === \"ObjectPattern\") {\n      for (const prop of node.properties) {\n        this.checkDeclaration(prop);\n      }\n    } else if (node.type === \"ArrayPattern\") {\n      for (const elem of node.elements) {\n        if (elem) {\n          this.checkDeclaration(elem);\n        }\n      }\n    } else if (node.type === \"ObjectProperty\") {\n      this.checkDeclaration(node.value);\n    } else if (node.type === \"RestElement\") {\n      this.checkDeclaration(node.argument);\n    } else if (node.type === \"AssignmentPattern\") {\n      this.checkDeclaration(node.left);\n    }\n  }\n\n  checkDuplicateExports(\n    node:\n      | N.Identifier\n      | N.ExportNamedDeclaration\n      | N.ExportSpecifier\n      | N.ExportDefaultSpecifier,\n    name: string,\n  ): void {\n    if (this.state.exportedIdentifiers.indexOf(name) > -1) {\n      this.raise(\n        node.start,\n        name === \"default\"\n          ? Errors.DuplicateDefaultExport\n          : Errors.DuplicateExport,\n        name,\n      );\n    }\n    this.state.exportedIdentifiers.push(name);\n  }\n\n  // Parses a comma-separated list of module exports.\n\n  parseExportSpecifiers(): Array<N.ExportSpecifier> {\n    const nodes = [];\n    let first = true;\n\n    // export { x, y as z } [from '...']\n    this.expect(tt.braceL);\n\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      const node = this.startNode();\n      node.local = this.parseIdentifier(true);\n      node.exported = this.eatContextual(\"as\")\n        ? this.parseIdentifier(true)\n        : node.local.__clone();\n      nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n    }\n\n    return nodes;\n  }\n\n  // Parses import declaration.\n\n  parseImport(node: N.Node): N.AnyImport {\n    // import '...'\n    node.specifiers = [];\n    if (!this.match(tt.string)) {\n      const hasDefault = this.maybeParseDefaultImportSpecifier(node);\n      const parseNext = !hasDefault || this.eat(tt.comma);\n      const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n      if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n      this.expectContextual(\"from\");\n    }\n    node.source = this.parseImportSource();\n    this.semicolon();\n    return this.finishNode(node, \"ImportDeclaration\");\n  }\n\n  parseImportSource(): N.StringLiteral {\n    if (!this.match(tt.string)) this.unexpected();\n    return this.parseExprAtom();\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n    return this.match(tt.name);\n  }\n\n  parseImportSpecifierLocal(\n    node: N.ImportDeclaration,\n    specifier: N.Node,\n    type: string,\n    contextDescription: string,\n  ): void {\n    specifier.local = this.parseIdentifier();\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      contextDescription,\n    );\n    node.specifiers.push(this.finishNode(specifier, type));\n  }\n\n  maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.shouldParseDefaultImport(node)) {\n      // import defaultObj, { x, y as z } from '...'\n      this.parseImportSpecifierLocal(\n        node,\n        this.startNode(),\n        \"ImportDefaultSpecifier\",\n        \"default import specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseStarImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.match(tt.star)) {\n      const specifier = this.startNode();\n      this.next();\n      this.expectContextual(\"as\");\n\n      this.parseImportSpecifierLocal(\n        node,\n        specifier,\n        \"ImportNamespaceSpecifier\",\n        \"import namespace specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  parseNamedImportSpecifiers(node: N.ImportDeclaration) {\n    let first = true;\n    this.expect(tt.braceL);\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        // Detect an attempt to deep destructure\n        if (this.eat(tt.colon)) {\n          throw this.raise(this.state.start, Errors.DestructureNamedImport);\n        }\n\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      this.parseImportSpecifier(node);\n    }\n  }\n\n  parseImportSpecifier(node: N.ImportDeclaration): void {\n    const specifier = this.startNode();\n    specifier.imported = this.parseIdentifier(true);\n    if (this.eatContextual(\"as\")) {\n      specifier.local = this.parseIdentifier();\n    } else {\n      this.checkReservedWord(\n        specifier.imported.name,\n        specifier.start,\n        true,\n        true,\n      );\n      specifier.local = specifier.imported.__clone();\n    }\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      \"import specifier\",\n    );\n    node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n  }\n}\n","// @flow\n\nimport {\n  CLASS_ELEMENT_KIND_ACCESSOR,\n  CLASS_ELEMENT_FLAG_STATIC,\n  type ClassElementTypes,\n} from \"./scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nexport class ClassScope {\n  // A list of private named declared in the current class\n  privateNames: Set<string> = new Set();\n\n  // A list of private getters of setters without their counterpart\n  loneAccessors: Map<string, ClassElementTypes> = new Map();\n\n  // A list of private names used before being defined, mapping to\n  // their position.\n  undefinedPrivateNames: Map<string, number> = new Map();\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\nexport default class ClassScopeHandler {\n  stack: Array<ClassScope> = [];\n  raise: raiseFunction;\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction) {\n    this.raise = raise;\n  }\n\n  current(): ClassScope {\n    return this.stack[this.stack.length - 1];\n  }\n\n  enter() {\n    this.stack.push(new ClassScope());\n  }\n\n  exit() {\n    const oldClassScope = this.stack.pop();\n\n    // Migrate the usage of not yet defined private names to the outer\n    // class scope, or raise an error if we reached the top-level scope.\n\n    const current = this.current();\n\n    // Array.from is needed because this is compiled to an array-like for loop\n    for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) {\n      if (current) {\n        if (!current.undefinedPrivateNames.has(name)) {\n          current.undefinedPrivateNames.set(name, pos);\n        }\n      } else {\n        this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n      }\n    }\n  }\n\n  declarePrivateName(\n    name: string,\n    elementType: ClassElementTypes,\n    pos: number,\n  ) {\n    const classScope = this.current();\n    let redefined = classScope.privateNames.has(name);\n\n    if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) {\n      const accessor = redefined && classScope.loneAccessors.get(name);\n      if (accessor) {\n        const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC;\n        const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC;\n\n        const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR;\n        const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR;\n\n        // The private name can be duplicated only if it is used by\n        // two accessors with different kind (get and set), and if\n        // they have the same placement (static or not).\n        redefined = oldKind === newKind || oldStatic !== newStatic;\n\n        if (!redefined) classScope.loneAccessors.delete(name);\n      } else if (!redefined) {\n        classScope.loneAccessors.set(name, elementType);\n      }\n    }\n\n    if (redefined) {\n      this.raise(pos, Errors.PrivateNameRedeclaration, name);\n    }\n\n    classScope.privateNames.add(name);\n    classScope.undefinedPrivateNames.delete(name);\n  }\n\n  usePrivateName(name: string, pos: number) {\n    let classScope;\n    for (classScope of this.stack) {\n      if (classScope.privateNames.has(name)) return;\n    }\n\n    if (classScope) {\n      classScope.undefinedPrivateNames.set(name, pos);\n    } else {\n      // top-level\n      this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n    }\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type { File /*::, JSXOpeningElement */ } from \"../types\";\nimport type { PluginList } from \"../plugin-utils\";\nimport { getOptions } from \"../options\";\nimport StatementParser from \"./statement\";\nimport { SCOPE_PROGRAM } from \"../util/scopeflags\";\nimport ScopeHandler from \"../util/scope\";\nimport ClassScopeHandler from \"../util/class-scope\";\nimport ProductionParameterHandler, {\n  PARAM_AWAIT,\n  PARAM,\n} from \"../util/production-parameter\";\n\nexport type PluginsMap = Map<string, { [string]: any }>;\n\nexport default class Parser extends StatementParser {\n  // Forward-declaration so typescript plugin can override jsx plugin\n  /*::\n  +jsxParseOpeningElementAfterName: (\n    node: JSXOpeningElement,\n  ) => JSXOpeningElement;\n  */\n\n  constructor(options: ?Options, input: string) {\n    options = getOptions(options);\n    super(options, input);\n\n    const ScopeHandler = this.getScopeHandler();\n\n    this.options = options;\n    this.inModule = this.options.sourceType === \"module\";\n    this.scope = new ScopeHandler(this.raise.bind(this), this.inModule);\n    this.prodParam = new ProductionParameterHandler();\n    this.classScope = new ClassScopeHandler(this.raise.bind(this));\n    this.plugins = pluginsMap(this.options.plugins);\n    this.filename = options.sourceFilename;\n  }\n\n  // This can be overwritten, for example, by the TypeScript plugin.\n  getScopeHandler(): Class<ScopeHandler<*>> {\n    return ScopeHandler;\n  }\n\n  parse(): File {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    const file = this.startNode();\n    const program = this.startNode();\n    this.nextToken();\n    file.errors = null;\n    this.parseTopLevel(file, program);\n    file.errors = this.state.errors;\n    return file;\n  }\n}\n\nfunction pluginsMap(plugins: PluginList): PluginsMap {\n  const pluginMap: PluginsMap = new Map();\n  for (const plugin of plugins) {\n    const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];\n    if (!pluginMap.has(name)) pluginMap.set(name, options || {});\n  }\n  return pluginMap;\n}\n","// @flow\n\nimport { type Options } from \"./options\";\nimport {\n  hasPlugin,\n  validatePlugins,\n  mixinPluginNames,\n  mixinPlugins,\n  type PluginList,\n} from \"./plugin-utils\";\nimport Parser from \"./parser\";\n\nimport { types as tokTypes } from \"./tokenizer/types\";\nimport \"./tokenizer/context\";\n\nimport type { Expression, File } from \"./types\";\n\nexport function parse(input: string, options?: Options): File {\n  if (options && options.sourceType === \"unambiguous\") {\n    options = {\n      ...options,\n    };\n    try {\n      options.sourceType = \"module\";\n      const parser = getParser(options, input);\n      const ast = parser.parse();\n\n      if (parser.sawUnambiguousESM) {\n        return ast;\n      }\n\n      if (parser.ambiguousScriptDifferentAst) {\n        // Top level await introduces code which can be both a valid script and\n        // a valid module, but which produces different ASTs:\n        //    await\n        //    0\n        // can be parsed either as an AwaitExpression, or as two ExpressionStatements.\n        try {\n          options.sourceType = \"script\";\n          return getParser(options, input).parse();\n        } catch {}\n      } else {\n        // This is both a valid module and a valid script, but\n        // we parse it as a script by default\n        ast.program.sourceType = \"script\";\n      }\n\n      return ast;\n    } catch (moduleError) {\n      try {\n        options.sourceType = \"script\";\n        return getParser(options, input).parse();\n      } catch {}\n\n      throw moduleError;\n    }\n  } else {\n    return getParser(options, input).parse();\n  }\n}\n\nexport function parseExpression(input: string, options?: Options): Expression {\n  const parser = getParser(options, input);\n  if (parser.options.strictMode) {\n    parser.state.strict = true;\n  }\n  return parser.getExpression();\n}\n\nexport { tokTypes };\n\nfunction getParser(options: ?Options, input: string): Parser {\n  let cls = Parser;\n  if (options && options.plugins) {\n    validatePlugins(options.plugins);\n    cls = getParserClass(options.plugins);\n  }\n\n  return new cls(options, input);\n}\n\nconst parserClassCache: { [key: string]: Class<Parser> } = {};\n\n/** Get a Parser class with plugins applied. */\nfunction getParserClass(pluginsFromOptions: PluginList): Class<Parser> {\n  const pluginList = mixinPluginNames.filter(name =>\n    hasPlugin(pluginsFromOptions, name),\n  );\n\n  const key = pluginList.join(\"/\");\n  let cls = parserClassCache[key];\n  if (!cls) {\n    cls = Parser;\n    for (const plugin of pluginList) {\n      cls = mixinPlugins[plugin](cls);\n    }\n    parserClassCache[key] = cls;\n  }\n  return cls;\n}\n"],"names":["beforeExpr","startsExpr","isLoop","isAssign","prefix","postfix","TokenType","constructor","label","conf","keyword","rightAssociative","binop","updateContext","keywords","Map","createKeyword","name","options","token","set","createBinop","types","num","bigint","regexp","string","eof","bracketL","bracketHashL","bracketBarL","bracketR","bracketBarR","braceL","braceBarL","braceHashL","braceR","braceBarR","parenL","parenR","comma","semi","colon","doubleColon","dot","question","questionDot","arrow","template","ellipsis","backQuote","dollarBraceL","at","hash","interpreterDirective","eq","assign","incDec","bang","tilde","pipeline","nullishCoalescing","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","star","slash","exponent","_break","_case","_catch","_continue","_debugger","_default","_do","_else","_finally","_for","_function","_if","_return","_switch","_throw","_try","_var","_const","_while","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_in","_instanceof","_typeof","_void","_delete","SCOPE_OTHER","SCOPE_PROGRAM","SCOPE_FUNCTION","SCOPE_ARROW","SCOPE_SIMPLE_CATCH","SCOPE_SUPER","SCOPE_DIRECT_SUPER","SCOPE_CLASS","SCOPE_TS_MODULE","SCOPE_VAR","BIND_KIND_VALUE","BIND_KIND_TYPE","BIND_SCOPE_VAR","BIND_SCOPE_LEXICAL","BIND_SCOPE_FUNCTION","BIND_SCOPE_OUTSIDE","BIND_FLAGS_NONE","BIND_FLAGS_CLASS","BIND_FLAGS_TS_ENUM","BIND_FLAGS_TS_CONST_ENUM","BIND_FLAGS_TS_EXPORT_ONLY","BIND_CLASS","BIND_LEXICAL","BIND_VAR","BIND_FUNCTION","BIND_TS_INTERFACE","BIND_TS_TYPE","BIND_TS_ENUM","BIND_TS_AMBIENT","BIND_NONE","BIND_OUTSIDE","BIND_TS_CONST_ENUM","BIND_TS_NAMESPACE","CLASS_ELEMENT_FLAG_STATIC","CLASS_ELEMENT_KIND_GETTER","CLASS_ELEMENT_KIND_SETTER","CLASS_ELEMENT_KIND_ACCESSOR","CLASS_ELEMENT_STATIC_GETTER","CLASS_ELEMENT_STATIC_SETTER","CLASS_ELEMENT_INSTANCE_GETTER","CLASS_ELEMENT_INSTANCE_SETTER","CLASS_ELEMENT_OTHER","lineBreak","lineBreakG","RegExp","source","isNewLine","code","skipWhiteSpace","isWhitespace","Position","line","col","column","SourceLocation","start","end","getLineInfo","input","offset","lineStart","match","lastIndex","exec","index","BaseParser","sawUnambiguousESM","ambiguousScriptDifferentAst","hasPlugin","plugins","has","getPluginOption","plugin","get","last","stack","length","CommentsParser","addComment","comment","filename","loc","state","trailingComments","push","leadingComments","adjustCommentsAfterTrailingComma","node","elements","takeAllComments","lastElement","i","j","commentPreviousNode","splice","newTrailingComments","leadingComment","undefined","processComment","type","body","commentStack","firstChild","lastChild","lastInStack","pop","properties","arguments","slice","innerComments","Errors","Object","freeze","ArgumentsDisallowedInInitializer","AsyncFunctionInSingleStatementContext","AwaitBindingIdentifier","AwaitExpressionFormalParameter","AwaitNotInAsyncFunction","BadGetterArity","BadSetterArity","BadSetterRestParameter","ConstructorClassField","ConstructorClassPrivateField","ConstructorIsAccessor","ConstructorIsAsync","ConstructorIsGenerator","DeclarationMissingInitializer","DecoratorBeforeExport","DecoratorConstructor","DecoratorExportClass","DecoratorSemicolon","DeletePrivateField","DestructureNamedImport","DuplicateConstructor","DuplicateDefaultExport","DuplicateExport","DuplicateProto","DuplicateRegExpFlags","ElementAfterRest","EscapedCharNotAnIdentifier","ForInOfLoopInitializer","GeneratorInSingleStatementContext","IllegalBreakContinue","IllegalLanguageModeDirective","IllegalReturn","ImportCallArgumentTrailingComma","ImportCallArity","ImportCallArityLtOne","ImportCallNotNewExpression","ImportCallSpreadArgument","ImportMetaOutsideModule","ImportOutsideModule","InvalidCodePoint","InvalidDigit","InvalidEscapeSequence","InvalidEscapeSequenceTemplate","InvalidEscapedReservedWord","InvalidIdentifier","InvalidLhs","InvalidLhsBinding","InvalidNumber","InvalidOrUnexpectedToken","InvalidParenthesizedAssignment","InvalidPrivateFieldResolution","InvalidPropertyBindingPattern","InvalidRestAssignmentPattern","LabelRedeclaration","LetInLexicalBinding","MalformedRegExpFlags","MissingClassName","MissingEqInAssignment","MissingUnicodeEscape","MixingCoalesceWithLogical","ModuleExportUndefined","MultipleDefaultsInSwitch","NewlineAfterThrow","NoCatchOrFinally","NumberIdentifier","NumericSeparatorInEscapeSequence","ObsoleteAwaitStar","OptionalChainingNoNew","OptionalChainingNoTemplate","ParamDupe","PatternHasAccessor","PatternHasMethod","PipelineBodyNoArrow","PipelineBodySequenceExpression","PipelineHeadSequenceExpression","PipelineTopicUnused","PrimaryTopicNotAllowed","PrimaryTopicRequiresSmartPipeline","PrivateNameRedeclaration","RecordExpressionBarIncorrectEndSyntaxType","RecordExpressionBarIncorrectStartSyntaxType","RecordExpressionHashIncorrectStartSyntaxType","RestTrailingComma","SloppyFunction","StaticPrototype","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","StrictOctalLiteral","StrictWith","SuperNotAllowed","SuperPrivateField","TrailingDecorator","TupleExpressionBarIncorrectEndSyntaxType","TupleExpressionBarIncorrectStartSyntaxType","TupleExpressionHashIncorrectStartSyntaxType","UnexpectedArgumentPlaceholder","UnexpectedAwaitAfterPipelineBody","UnexpectedDigitAfterHash","UnexpectedImportExport","UnexpectedKeyword","UnexpectedLeadingDecorator","UnexpectedLexicalDeclaration","UnexpectedNewTarget","UnexpectedNumericSeparator","UnexpectedPrivateField","UnexpectedReservedWord","UnexpectedSuper","UnexpectedToken","UnexpectedTokenUnaryExponentiation","UnsupportedBind","UnsupportedDecoratorExport","UnsupportedDefaultExport","UnsupportedImport","UnsupportedMetaProperty","UnsupportedParameterDecorator","UnsupportedPropertyDecorator","UnsupportedSuper","UnterminatedComment","UnterminatedRegExp","UnterminatedString","UnterminatedTemplate","VarRedeclaration","YieldBindingIdentifier","YieldInParameter","ZeroDigitNumericSeparator","LocationParser","getLocationForPosition","pos","startLoc","lastTokStart","lastTokStartLoc","endLoc","lastTokEnd","lastTokEndLoc","raise","errorTemplate","params","raiseWithData","data","message","replace","_","_raise","errorContext","err","SyntaxError","errorRecovery","isLookahead","errors","isSimpleProperty","kind","method","superClass","estreeParseRegExpLiteral","pattern","flags","regex","e","estreeParseLiteral","estreeParseBigIntLiteral","value","bigInt","BigInt","String","parseLiteral","directiveToStmt","directive","directiveLiteral","stmt","startNodeAt","expression","raw","extra","finishNodeAt","initFunction","isAsync","checkDeclaration","checkGetterSetterParams","prop","paramCount","checkLVal","expr","bindingType","checkClashes","contextDescription","disallowLetBinding","forEach","checkDuplicatedProto","protoRef","refExpressionErrors","computed","shorthand","key","used","doubleProto","isValidDirective","parenthesized","stmtToDirective","parseBlockBody","allowDirectives","topLevel","directiveStatements","directives","map","d","concat","pushClassMethod","classBody","isGenerator","isConstructor","allowsDirectSuper","parseMethod","typeParameters","parseExprAtom","tt","startPos","parseFunctionBody","allowExpression","isMethod","allowDirectSuper","inClassScope","funcNode","startNode","finishNode","parseObjectMethod","isPattern","containsEsc","parseObjectProperty","toAssignable","toAssignableObjectExpressionProp","isLast","finishCallExpression","optional","callee","toReferencedListDeep","exprList","isParenthesizedExpr","parseExport","exported","specifiers","TokContext","isExpr","preserveSpace","override","braceStatement","braceExpression","templateQuasi","parenStatement","parenExpression","p","readTmplToken","functionExpression","functionStatement","context","exprAllowed","out","curContext","prevType","allowed","prodParam","hasYield","isIterator","braceIsBlock","statementParens","test","b_stat","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","isIdentifierStart","fromCharCode","isIdentifierChar","reservedWords","strict","strictBind","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","keywordRelationalOperator","isIteratorStart","current","next","reservedTypes","FlowErrors","AmbiguousConditionalArrow","AmbiguousDeclareModuleKind","AssignReservedType","DeclareClassElement","DeclareClassFieldInitializer","DuplicateDeclareModuleExports","EnumBooleanMemberNotInitialized","EnumDuplicateMemberName","EnumInconsistentMemberValues","EnumInvalidExplicitType","EnumInvalidExplicitTypeUnknownSupplied","EnumInvalidMemberInitializerPrimaryType","EnumInvalidMemberInitializerSymbolType","EnumInvalidMemberInitializerUnknownType","EnumInvalidMemberName","EnumNumberMemberNotInitialized","EnumStringMemberInconsistentlyInitailized","ImportTypeShorthandOnlyInPureImport","InexactInsideExact","InexactInsideNonObject","InexactVariance","InvalidNonTypeImportInDeclareModule","MissingTypeParamDefault","NestedDeclareModule","NestedFlowComment","OptionalBindingPattern","SpreadVariance","TypeBeforeInitializer","TypeCastInPattern","UnexpectedExplicitInexactInObject","UnexpectedReservedType","UnexpectedReservedUnderscore","UnexpectedSpaceBetweenModuloChecks","UnexpectedSpreadType","UnexpectedSubtractionOperand","UnexpectedTokenAfterTypeParameter","UnsupportedDeclareExportKind","UnsupportedStatementInDeclareModule","UnterminatedFlowComment","isEsModuleType","bodyElement","declaration","hasTypeImportKind","importKind","isMaybeDefaultImport","exportSuggestions","const","let","interface","partition","list","list1","list2","FLOW_PRAGMA_REGEX","flowPragma","shouldParseTypes","shouldParseEnums","finishToken","val","matches","Error","flowParseTypeInitialiser","tok","oldInType","inType","expect","flowParseType","flowParsePredicate","moduloLoc","moduloPos","checksLoc","expectContextual","eat","parseExpression","flowParseTypeAndPredicateInitialiser","predicate","flowParseDeclareClass","flowParseInterfaceish","flowParseDeclareFunction","id","parseIdentifier","typeNode","typeContainer","isRelational","flowParseTypeParameterDeclaration","tmp","flowParseFunctionTypeParams","rest","returnType","typeAnnotation","resetEndLocation","semicolon","flowParseDeclare","insideModule","flowParseDeclareVariable","eatContextual","flowParseDeclareModuleExports","flowParseDeclareModule","isContextual","flowParseDeclareTypeAlias","flowParseDeclareOpaqueType","flowParseDeclareInterface","flowParseDeclareExportDeclaration","unexpected","flowParseTypeAnnotatableIdentifier","scope","declareName","enter","bodyNode","parseImport","exit","hasModuleExport","default","isLet","suggestion","exportKind","flowParseTypeAnnotation","flowParseTypeAlias","flowParseOpaqueType","isClass","flowParseRestrictedIdentifier","extends","implements","mixins","flowParseInterfaceExtends","flowParseObjectType","allowStatic","allowExact","allowSpread","allowProto","allowInexact","flowParseQualifiedTypeIdentifier","flowParseTypeParameterInstantiation","flowParseInterface","checkNotUnderscore","checkReservedType","liberal","right","declare","supertype","impltype","flowParseTypeParameter","requireDefault","nodeStart","variance","flowParseVariance","ident","bound","jsxTagStart","defaultRequired","typeParameter","expectRelational","oldNoAnonFunctionType","noAnonFunctionType","flowParseTypeParameterInstantiationCallOrNew","flowParseTypeOrImplicitInstantiation","flowParseInterfaceType","flowParseObjectPropertyKey","flowParseObjectTypeIndexer","isStatic","static","lookahead","flowParseObjectTypeInternalSlot","flowParseObjectTypeMethodish","flowParseFunctionTypeParam","flowParseObjectTypeCallProperty","valueNode","callProperties","indexers","internalSlots","endDelim","exact","inexact","protoStart","inexactStart","propOrInexact","flowParseObjectTypeProperty","flowObjectTypeSemicolon","isInexactToken","argument","proto","flowCheckGetterSetterParams","property","node2","qualification","flowParseGenericType","flowParseTypeofType","flowParsePrimaryType","flowParseTupleType","lh","reinterpretTypeAsFunctionTypeParam","flowIdentToTypeAnnotation","isGroupedType","createIdentifier","flowParsePostfixType","canInsertSemicolon","elementType","flowParsePrefixType","flowParseAnonFunctionWithoutParens","param","flowParseIntersectionType","flowParseUnionType","allowPrimitiveOverride","typeCastToParameter","allowExpressionBody","forwardNoArrowParamsConversionAt","parseFunctionBodyAndFinish","parseStatement","flowParseEnumDeclaration","parseExpressionStatement","shouldParseExportDeclaration","isExportDefaultSpecifier","parseExportDefaultExpression","parseConditional","noIn","refNeedsArrowPos","result","tryParse","error","failState","clone","originalNoArrowAt","noArrowAt","consequent","failed","tryParseConditionalConsequent","valid","invalid","getArrowLikeExpressions","alternate","parseMaybeAssign","noArrowParamsConversionAt","disallowInvalid","arrows","finishArrowValidation","every","isAssignable","toAssignableList","trailingComma","checkParams","parse","indexOf","parseParenItem","typeCastNode","assertModuleNodeAllowed","decl","parseExportDeclaration","declarationNode","parseExportSpecifiers","parseExportFrom","eatExportStar","maybeParseExportNamespaceSpecifier","hasNamespace","parseClassId","isStatement","optionalId","parseClassMember","member","constructorAllowsSuper","parseClassMemberFromModifier","getTokenFromCode","charCodeAt","finishOp","readWord","isBinding","element","operator","trailingCommaPos","toReferencedList","parseClassProperty","parseClassPrivateProperty","isClassMethod","isClassProperty","isNonstaticConstructor","pushClassPrivateMethod","parseClassSuper","superTypeParameters","implemented","parsePropertyName","isPrivateNameAllowed","parseObjPropValue","parseAssignableListItemTypes","parseMaybeDefault","left","shouldParseDefaultImport","parseImportSpecifierLocal","specifier","local","maybeParseDefaultImportSpecifier","parseImportSpecifier","firstIdentLoc","firstIdent","specifierTypeKind","isLookaheadContextual","as_ident","imported","__clone","nodeIsTypeImport","specifierIsTypeImport","checkReservedWord","parseFunctionParams","allowModifiers","parseVarId","parseAsyncArrowFromCallExpression","call","shouldParseAsyncArrow","afterLeftParse","jsx","tc","j_oTag","j_expr","arrowExpression","resetStartLocationFromNode","thrown","parseArrow","shouldParseArrow","setArrowFunctionParameters","allowDuplicates","isArrowFunction","parseParenAndDistinguishExpression","canBeArrow","parseSubscripts","base","noCalls","parseCallExpressionArguments","abort","parseAsyncArrowWithTypeParameters","aborted","parseSubscript","subscriptState","isLookaheadRelational","optionalChainMember","stop","typeArguments","parseNewArguments","targs","parseArrowExpression","readToken_mult_modulo","hasFlowComment","nextToken","readToken_pipe_amp","parseTopLevel","file","program","fileNode","skipBlockComment","skipFlowComment","hasFlowCommentCompletion","shiftToFirstNonWhiteSpace","includes","ch2","ch3","flowEnumErrorBooleanMemberNotInitialized","enumName","memberName","flowEnumErrorInvalidMemberName","toUpperCase","flowEnumErrorDuplicateMemberName","flowEnumErrorInconsistentMemberValues","flowEnumErrorInvalidExplicitType","suppliedType","flowEnumErrorInvalidMemberInitializer","explicitType","flowEnumErrorNumberMemberNotInitialized","flowEnumErrorStringMemberInconsistentlyInitailized","flowEnumMemberInit","endOfInit","literal","parseBooleanLiteral","flowEnumMemberRaw","init","flowEnumCheckExplicitTypeMismatch","expectedType","flowEnumMembers","seenNames","members","booleanMembers","numberMembers","stringMembers","defaultedMembers","memberNode","add","flowEnumStringMembers","initializedMembers","flowEnumParseExplicitType","flowEnumBody","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","entities","quot","amp","apos","lt","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","HEX_NUMBER","DECIMAL_NUMBER","JsxErrors","AttributeIsEmpty","MissingClosingTagFragment","MissingClosingTagElement","UnsupportedJsxValue","UnterminatedJsxContent","UnwrappedAdjacentJSXElements","j_cTag","jsxName","jsxText","jsxTagEnd","isFragment","object","getQualifiedJSXName","namespace","jsxReadToken","chunkStart","ch","jsxReadEntity","jsxReadNewLine","normalizeCRLF","curLine","jsxReadString","quote","str","count","entity","substr","fromCodePoint","parseInt","XHTMLEntities","jsxReadWord","jsxParseIdentifier","jsxParseNamespacedName","jsxParseElementName","newNode","jsxParseAttributeValue","jsxParseExpressionContainer","jsxParseEmptyExpression","jsxParseSpreadChild","jsxParseAttribute","jsxParseOpeningElementAt","jsxParseOpeningElementAfterName","attributes","selfClosing","jsxParseClosingElementAt","jsxParseElementAt","children","openingElement","closingElement","contents","openingFragment","closingFragment","jsxParseElement","inPropertyName","Scope","var","lexical","functions","ScopeHandler","scopeStack","undefinedExports","undefinedPrivateNames","inFunction","currentVarScope","allowSuper","currentThisScope","inClass","inNonArrowFunction","treatFunctionsAsVar","treatFunctionsAsVarInScope","currentScope","createScope","checkRedeclarationInScope","maybeExportDefined","delete","isRedeclaredInScope","checkLocalExport","TypeScriptScope","enums","constEnums","classes","exportOnlyBindings","TypeScriptScopeHandler","isConst","wasConst","PARAM","PARAM_YIELD","PARAM_AWAIT","PARAM_RETURN","ProductionParameterHandler","stacks","currentFlags","hasAwait","hasReturn","functionFlags","nonNull","x","assert","TSErrors","ClassMethodHasDeclare","ClassMethodHasReadonly","DeclareClassFieldHasInitializer","DuplicateModifier","EmptyHeritageClauseType","IndexSignatureHasAbstract","IndexSignatureHasAccessibility","IndexSignatureHasStatic","OptionalTypeBeforeRequired","PatternIsOptional","PrivateElementHasAbstract","PrivateElementHasAccessibility","TemplateTypeHasSubstitution","TypeAnnotationAfterAssign","UnexpectedReadonly","UnexpectedTypeAnnotation","UnexpectedTypeCastInParameter","UnsupportedImportTypeArgument","UnsupportedParameterPropertyKind","UnsupportedSignatureParameterKind","keywordTypeFromName","getScopeHandler","tsIsIdentifier","tsNextTokenCanFollowModifier","hasPrecedingLineBreak","tsParseModifier","allowedModifiers","modifier","tsTryParse","bind","tsParseModifiers","modified","hasOwnProperty","tsIsListTerminator","tsParseList","parseElement","tsParseDelimitedList","tsParseDelimitedListWorker","expectSuccess","tsParseBracketedList","bracket","skipFirstToken","tsParseImportType","qualifier","tsParseEntityName","tsParseTypeArguments","allowReservedWords","startNodeAtNode","tsParseTypeReference","typeName","tsParseThisTypePredicate","lhs","parameterName","tsParseTypeAnnotation","tsParseThisTypeNode","tsParseTypeQuery","exprName","tsParseTypeParameter","parseIdentifierName","constraint","tsEatThenParseType","tsTryParseTypeParameters","tsParseTypeParameters","tsTryNextParseConstantContext","tsFillSignature","returnToken","signature","returnTokenRequired","parameters","tsParseBindingListForSignature","tsParseTypeOrTypePredicateAnnotation","parseBindingList","tsParseTypeMemberSemicolon","tsParseSignatureMember","tsIsUnambiguouslyIndexSignature","tsTryParseIndexSignature","tsLookAhead","tsTryParseTypeAnnotation","tsParsePropertyOrMethodSignature","readonly","nodeAny","tsParseTypeMember","idx","tsParseTypeLiteral","tsParseObjectTypeMembers","tsIsStartOfMappedType","tsParseMappedTypeParameter","tsExpectThenParseType","tsParseMappedType","tsTryParseType","tsParseTupleType","elementTypes","tsParseTupleElementType","seenOptionalElement","elementNode","restNode","tsParseType","lookaheadCharCode","raiseRestNotLast","optionalTypeNode","tsParseParenthesizedType","tsParseFunctionOrConstructorType","tsParseLiteralTypeNode","tsParseTemplateLiteralType","templateNode","parseTemplate","expressions","tsParseThisTypeOrThisTypePredicate","thisKeyword","tsParseNonArrayType","parseMaybeUnary","tsParseArrayTypeOrHigher","objectType","indexType","tsParseTypeOperator","tsParseTypeOperatorOrHigher","tsCheckTypeAnnotationForReadOnly","tsParseInferType","find","kw","tsParseUnionOrIntersectionType","parseConstituentType","tsParseIntersectionTypeOrHigher","tsParseUnionTypeOrHigher","tsIsStartOfFunctionType","tsIsUnambiguouslyStartOfFunctionType","tsSkipParameterStart","braceStackCounter","tsInType","t","asserts","tsParseTypePredicateAsserts","thisTypePredicate","typePredicateVariable","tsParseTypePredicatePrefix","tsTryParseTypeOrTypePredicateAnnotation","eatColon","tsParseNonConditionalType","checkType","extendsType","trueType","falseType","tsParseTypeAssertion","tsNextThenParseType","tsParseHeritageClause","descriptor","originalStart","delimitedList","tsParseExpressionWithTypeArguments","tsParseInterfaceDeclaration","tsParseTypeAliasDeclaration","tsInNoContext","cb","oldContext","tsDoThenParseType","tsParseEnumMember","initializer","tsParseEnumDeclaration","tsParseModuleBlock","parseBlockOrModuleBlockBody","tsParseModuleOrNamespaceDeclaration","nested","inner","tsParseAmbientExternalModuleDeclaration","global","tsParseImportEqualsDeclaration","isExport","moduleReference","tsParseModuleReference","tsIsExternalModuleReference","tsParseExternalModuleReference","f","res","tsTryParseAndCatch","tsTryParseDeclare","nany","isLineTerminator","starttype","parseFunctionStatement","parseClass","parseVarStatement","tsParseDeclaration","tsTryParseExportDeclaration","tsParseExpressionStatement","mod","tsCheckLineTerminatorAndMatch","cls","abstract","tokenType","tsTryParseGenericAsyncArrowFunction","oldMaybeInArrowParameters","maybeInArrowParameters","oldYieldPos","yieldPos","oldAwaitPos","awaitPos","tsIsDeclarationStart","parseAssignableListItem","decorators","accessibility","parseAccessModifier","elt","pp","parameter","bodilessType","registerFunctionStatementId","nonNullExpression","atPossibleAsyncArrow","asyncArrowFn","parseTaggedTemplateExpression","args","parseExprOp","leftStartPos","leftStartLoc","minPrec","checkKeywords","checkDuplicateExports","ahead","importNode","isAbstractClass","parseStatementContent","parseClassMemberWithIsStatic","parsePostMemberNameModifiers","methodOrProp","isDeclare","resetStartLocation","parseClassPropertyAnnotation","definite","equal","typeCast","ct","parseBindingAtom","parseMaybeDecoratorArguments","isInParens","canHaveLeadingDecorator","getGetterSetterExpectedParamCount","baseCount","firstParam","hasContextParam","placeholder","parsePlaceholder","expectedNode","assertNoSpace","finishPlaceholder","isFinished","verifyBreakContinue","parseBlock","parseFunctionId","takeDecorators","parseClassBody","expectPlugin","maybeParseExportDefaultSpecifier","checkExport","filter","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","parseImportSource","parseV8Intrinsic","v8IntrinsicStart","identifier","some","Array","isArray","option","PIPELINE_PROPOSALS","RECORD_AND_TUPLE_SYNTAX_TYPES","validatePlugins","decoratorsBeforeExport","join","mixinPlugins","estree","flow","typescript","v8intrinsic","placeholders","mixinPluginNames","keys","defaultOptions","sourceType","sourceFilename","startLine","allowAwaitOutsideFunction","allowReturnOutsideFunction","allowImportExportEverywhere","allowSuperOutsideMethod","allowUndeclaredExports","strictMode","ranges","tokens","createParenthesizedExpressions","getOptions","opts","State","potentialArrowAt","inParameters","maybeInAsyncArrowHead","inPipeline","topicContext","maxNumOfResolvableTopics","maxTopicIndex","soloAwait","inFSharpPipelineDirectBody","labels","decoratorStack","comments","octalPositions","exportedIdentifiers","tokensLength","curPosition","skipArrays","isDigit","VALID_REGEX_FLAGS","forbiddenNumericSeparatorSiblings","decBinOct","hex","allowedNumericSeparatorSiblings","bin","oct","dec","Token","Tokenizer","pushToken","checkKeywordEscapes","old","curr","nextTokenStart","thisTokEnd","skip","setStrict","lastIndexOf","skipSpace","codePointAt","pushComment","block","text","skipLineComment","startSkip","loop","readToken_numberSign","readToken_interpreter","nextPos","readToken_dot","readNumber","readToken_slash","readRegexp","width","readToken_caret","readToken_plus_min","readToken_lt_gt","size","readToken_eq_excl","readToken_question","next2","readRadixNumber","readString","escaped","charAt","content","mods","char","charCode","readInt","radix","len","forceLen","allowNumSeparator","forbiddenSiblings","allowedSiblings","total","Infinity","prev","Number","isNaN","isBigInt","startsWithDot","isFloat","isNonOctalDecimalInt","octal","underscorePos","parseFloat","readCodePoint","throwOnInvalid","codePos","readHexChar","readEscapedChar","containsInvalid","inTemplate","octalStr","n","readWord1","escStart","identifierCheck","esc","keywordTypes","parent","update","UtilParser","addExtra","op","afterNext","isUnparsedContextual","nameStart","nameEnd","messageOrType","missingPlugin","expectOnePlugin","names","checkYieldAwaitInDefaultParams","fn","oldState","abortSignal","checkExpressionErrors","andThrow","shorthandAssign","ExpressionErrors","Node","parser","range","NodeUtils","locationNode","unwrapParenthesizedExpression","LValParser","checkToRestConversion","arg","raiseTrailingCommaAfterRest","parseSpread","parseRestBinding","parseObj","close","closeCharCode","allowEmpty","elts","first","checkCommaAfterRest","parseDecorator","strictModeChanged","elem","ExpressionParser","getExpression","paramFlags","parseYield","ownExpressionErrors","parseMaybeConditional","parseExprOps","prec","logical","coalesce","checkPipelineAtInfixOperator","parseExprOpRightExpr","nextOp","withTopicPermittingContext","parseSmartPipelineBody","parseExprOpBaseRightExpr","withSoloAwaitPermittingContext","parseFSharpPipelineBody","isAwaitAllowed","parseAwait","parseExprSubscripts","maybeAsyncArrow","oldMaybeInAsyncArrowHead","parseNoCallExpr","parseMaybePrivateName","classScope","usePrivateName","tag","quasi","importArg","possibleAsyncArrow","dynamicImport","allowPlaceholder","nodeForExtra","innerParenStart","oldInFSharpPipelineDirectBody","parseExprListItem","parseImportMetaProperty","parseFunction","oldLabels","parseExprList","ret","parseFunctionExpression","parseDecorators","parseNew","primaryTopicReferenceIsAllowedInCurrentTopicContext","registerTopicReference","isPrivate","meta","parseMetaProperty","propertyName","innerStartPos","innerStartLoc","spreadStart","optionalCommaStart","spreadNodeStartPos","spreadNodeStartLoc","innerEndPos","innerEndLoc","arrowNode","parenStart","metaProp","parseTemplateElement","isTagged","cooked","tail","curElt","quasis","isRecord","propHash","create","parseObjectMember","isAsyncProp","isGetterOrSetterMethod","oldInPropertyName","generator","async","isExpression","oldInParameters","oldStrict","hasStrictModeDirective","nonSimple","isSimpleParamList","errorPos","nameHash","identifierName","reservedTest","delegate","childExpression","pipelineStyle","checkSmartPipelineBodyStyle","checkSmartPipelineBodyEarlyErrors","parseSmartPipelineBodyInStyle","topicReferenceWasUsedInCurrentTopicContext","isSimpleReference","callback","outerContextTopicState","withTopicForbiddingContext","outerContextSoloAwaitState","loopLabel","switchLabel","FUNC_NO_FLAGS","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","FUNC_NULLABLE_ID","StatementParser","interpreter","parseInterpreterDirective","from","nextCh","parseBreakContinueStatement","parseDebuggerStatement","parseDoStatement","parseForStatement","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseWhileStatement","parseWithStatement","parseEmptyStatement","nextTokenCharCode","isAsyncFunction","maybeName","parseLabeledStatement","allowExport","currentContextDecorators","decorator","isBreak","lab","parseHeaderExpression","awaitAt","parseFor","parseVar","declarations","parseForIn","description","declarationPosition","discriminant","cases","cur","sawDefault","isCase","handler","clause","simple","finalizer","statementStart","createNewLexicalScope","afterBlockParse","parsedNonDirective","isForIn","await","isFor","isTypescript","statement","isHangingStatement","requireId","hadConstructor","publicMethod","privateMethod","publicProp","privateProp","publicMember","parseClassPropertyName","isSimple","maybeQuestionTokenStart","pushClassPrivateProperty","pushClassProperty","declarePrivateName","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","maybeParseExportNamedSpecifiers","hasDeclaration","maybeParseExportDeclaration","checkNames","isDefault","isFrom","nodes","parseNext","ClassScope","privateNames","loneAccessors","ClassScopeHandler","oldClassScope","redefined","accessor","oldStatic","newStatic","oldKind","newKind","Parser","pluginsMap","pluginMap","getParser","ast","moduleError","getParserClass","parserClassCache","pluginsFromOptions","pluginList"],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/CHANGELOG.md-565-```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/CHANGELOG.md:566:import(`./section-modules/${link.dataset.entryModule}.js`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/parser/CHANGELOG.md-567-.then(module => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/builder.js-41-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/builder.js:42:    throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/builder.js-43-  }, {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/builder.js-58-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/builder.js:59:      throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/builder.js-60-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/builder.js-78-    } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/builder.js:79:      err.stack += `\n    =============\n${rootStack}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/builder.js-80-      throw err;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/literal.js-72-  for (let i = 1; i < tpl.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/literal.js:73:    const value = `${prefix}${i - 1}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/literal.js-74-    names.push(value);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/formatters.js-9-  return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/formatters.js:10:    code: str => `/* @babel/template */;\n${str}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/formatters.js-11-    validate: () => {},
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/formatters.js-40-const expression = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/formatters.js:41:  code: str => `(\n${str}\n)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/formatters.js-42-  validate: ({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/populate.js-28-      if (!metadata.placeholderNames.has(key)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/populate.js:29:        throw new Error(`Unknown substitution "${key}" given`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/populate.js-30-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/populate.js-37-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/populate.js:38:      e.message = `@babel/template placeholder "${placeholder.name}": ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/template/lib/populate.js-39-      throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toIdentifier.js-20-  if (!(0, _isValidIdentifier.default)(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toIdentifier.js:21:    name = `_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toIdentifier.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toExpression.js-25-  if (!(0, _generated.isExpression)(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toExpression.js:26:    throw new Error(`cannot turn ${node.type} to an expression`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toExpression.js-27-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toKeyAlias.js-29-  if (node.computed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toKeyAlias.js:30:    alias = `[${alias}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toKeyAlias.js-31-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toKeyAlias.js-33-  if (node.static) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toKeyAlias.js:34:    alias = `static:${alias}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toKeyAlias.js-35-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toStatement.js-37-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toStatement.js:38:      throw new Error(`cannot turn ${node.type} to a statement`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/converters/toStatement.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-100-    for (let i = 0; i < val.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js:101:      const subkey = `${key}[${i}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-102-      const v = val[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-114-    if (values.indexOf(val) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js:115:      throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-116-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-131-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js:132:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js:148:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-149-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-159-    if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js:160:      throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-161-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-185-    if (errors.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js:186:      throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-187-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-219-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js:220:    throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-221-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-266-    if (validTypeOpts.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js:267:      throw new Error(`Unknown type option "${k}" on ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-293-      if (validFieldKeys.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js:294:        throw new Error(`Unknown field key "${k}" on ${type}.${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/utils.js-295-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/es2015.js-440-        if (node.quasis.length !== val.length + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/es2015.js:441:          throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/es2015.js-442-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-347-        if (!(0, _isValidIdentifier.default)(val, false)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js:348:          throw new TypeError(`"${val}" is not a valid identifier name`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-349-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-385-    if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name)) && node.name !== "this") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js:386:      throw new TypeError(`"${node.name}" is not a valid identifier`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-387-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-463-        if (invalid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js:464:          throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-465-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-654-    if (parent[listKey].length > index + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js:655:      throw new TypeError(`RestElement must be last element of ${listKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-656-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-802-    if (node.declarations.length !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js:803:      throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/definitions/core.js-804-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/asserts/assertNode.js-14-    const type = node && node.type || JSON.stringify(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/asserts/assertNode.js:15:    throw new TypeError(`Not a valid node of type "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/asserts/assertNode.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/asserts/generated/index.js-297-  if (!(0, _is.default)(type, node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/asserts/generated/index.js:298:    throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/asserts/generated/index.js-299-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/comments/addComments.js-9-  if (!comments || !node) return node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/comments/addComments.js:10:  const key = `${type}Comments`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/comments/addComments.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/builders/builder.js-20-  if (countArgs > keys.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/builders/builder.js:21:    throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/builders/builder.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/clone/cloneNode.js-47-  } else if (!has(_definitions.NODE_FIELDS, type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/clone/cloneNode.js:48:    throw new Error(`Unknown node type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/lib/clone/cloneNode.js-49-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js-16-writeFile(buildersFile, format(generateBuilders(), buildersFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js:17:console.log(`  ${chalk.green("✔")} Generated builders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js-18-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js-20-writeFile(validatorsFile, format(generateValidators(), validatorsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js:21:console.log(`  ${chalk.green("✔")} Generated validators`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js-22-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js-24-writeFile(assertsFile, format(generateAsserts(), assertsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js:25:console.log(`  ${chalk.green("✔")} Generated asserts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js-28-writeFile(constantsFile, format(generateConstants(), constantsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generateTypeHelpers.js:29:console.log(`  ${chalk.green("✔")} Generated constants`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/docs.js-86-        if (customTypes[key] && customTypes[key][field]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/docs.js:87:          fieldDescription.push(`: ${customTypes[key][field]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/docs.js-88-        } else if (validator) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateBuilders.js-21-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateBuilders.js:22:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateBuilders.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateBuilders.js-37-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateBuilders.js:38:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateBuilders.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateAsserts.js-20-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateAsserts.js:21:      \`Expected type "\${type}" with option \${JSON.stringify((opts: any))}, \` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateAsserts.js:22:        \`but instead got "\${node.type}".\`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateAsserts.js-23-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateConstants.js-12-  Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateConstants.js:13:    output += `export const ${type.toUpperCase()}_TYPES = FLIPPED_ALIAS_KEYS["${type}"];\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateConstants.js-14-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-109-      )}): ${NODE_PREFIX}${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:110:      `declare export { _${functionName} as ${functionName} }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-111-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-115-for (let i = 0; i < t.TYPES.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:116:  let decl = `declare function is${t.TYPES[i]}(node: ?Object, opts?: ?Object): boolean`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-117-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-118-  if (t.NODE_FIELDS[t.TYPES[i]]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:119:    decl += ` %checks (node instanceof ${NODE_PREFIX}${t.TYPES[i]})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-120-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-127-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:128:  `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-129-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:130:  `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-131-  // this smells like "internal API"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-132-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:133:  `declare function buildChildren(node: { children: Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment | ${NODE_PREFIX}JSXEmptyExpression> }): Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-134-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-154-  // converters/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:155:  `declare function ensureBlock(node: ${NODE_PREFIX}, key: string): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-156-  `declare function toBindingIdentifierName(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-157-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:158:  `declare function toBlock(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Expression, parent?: ${NODE_PREFIX}Function | null): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-159-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:160:  `declare function toComputedKey(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}Expression | ${NODE_PREFIX}Identifier): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-161-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:162:  `declare function toExpression(node: ${NODE_PREFIX}ExpressionStatement | ${NODE_PREFIX}Expression | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-163-  `declare function toIdentifier(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-164-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:165:  `declare function toKeyAlias(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-166-  // toSequenceExpression relies on types that aren't declared in flow
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-167-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:168:  `declare function toStatement(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function | ${NODE_PREFIX}AssignmentExpression, ignore?: boolean): ${NODE_PREFIX}Statement | void`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:169:  `declare function valueToNode(value: any): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-172-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:173:  `declare function removeTypeDuplicates(types: Array<${NODE_PREFIX}FlowType>): Array<${NODE_PREFIX}FlowType>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-174-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:175:  `declare function appendToMemberExpression(member: ${NODE_PREFIX}MemberExpression, append: ${NODE_PREFIX}, computed?: boolean): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-176-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:177:  `declare function inherits<T: Node>(child: T, parent: ${NODE_PREFIX} | null | void): T`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-178-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:179:  `declare function prependToMemberExpression(member: ${NODE_PREFIX}MemberExpression, prepend: ${NODE_PREFIX}Expression): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-180-  `declare function removeProperties<T>(n: T, opts: ?{}): void;`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-184-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:185:  `declare function getBindingIdentifiers(node: ${NODE_PREFIX}, duplicates: boolean, outerOnly?: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-186-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:187:  `declare function getOuterBindingIdentifiers(node: Node, duplicates: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-188-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-235-  code += `type ${NODE_PREFIX}${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js:236:    .map(type => `${NODE_PREFIX}${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/flow.js-237-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateValidators.js-7-  return (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateValidators.js:8:    leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateValidators.js-9-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateValidators.js-72-    const newType = definitions.DEPRECATED_KEYS[type];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateValidators.js:73:    const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/generateValidators.js-74-    output += addIsHelper(type, null, deprecated);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-97-    if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:98:      struct.push(`${fieldName}: ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-99-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:100:      struct.push(`"${fieldName}": ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-101-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-110-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:111:      `export function ${toFunctionName(type)}(${args.join(", ")}): ${type};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-112-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-115-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:116:      `declare function _${functionName}(${args.join(", ")}): ${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:117:      `export { _${functionName} as ${functionName}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-118-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-124-    t.NODE_FIELDS[typeName] || t.FLIPPED_ALIAS_KEYS[typeName]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:125:      ? `node is ${typeName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-126-      : "boolean";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-128-  lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:129:    `export function is${typeName}(node: object | null | undefined, opts?: object | null): ${result};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-130-    // TypeScript 3.7: https://github.com/microsoft/TypeScript/pull/32695 will allow assert declarations
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-311-  code += `/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:312: * @deprecated Use \`${t.DEPRECATED_KEYS[type]}\`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-313- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-320-  code += `export type ${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:321:    .map(type => `${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-322-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-327-for (const type in t.FLIPPED_ALIAS_KEYS) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js:328:  code += `  ${type}: ${type};\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/generators/typescript.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/utils/stringifyValidator.js-6-  if (validator.each) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/utils/stringifyValidator.js:7:    return `Array<${stringifyValidator(validator.each, nodePrefix)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-replace-supers/node_modules/@babel/types/scripts/utils/stringifyValidator.js-8-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js-109-    const number = start + 1 + index;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js:110:    const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js:111:    const gutter = ` ${paddedNumber} | `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js-112-    const hasMarker = markerLines[number];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js-129-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js:130:      return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js-131-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js-134-  if (opts.message && !hasColumns) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js:135:    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/code-frame/lib/index.js-136-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-733-    const loc = this.getLocationForPosition(pos);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js:734:    const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-735-    return this._raise(Object.assign({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-4934-  if (x == null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js:4935:    throw new Error(`Unexpected ${x} value.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-4936-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-7311-  if (hasPlugin(plugins, "pipelineOperator") && !PIPELINE_PROPOSALS.includes(getPluginOption(plugins, "pipelineOperator", "proposal"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js:7312:    throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: " + PIPELINE_PROPOSALS.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-7313-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-7315-  if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js:7316:    throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-7317-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-8753-    if (typeof messageOrType !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js:8754:      messageOrType = `Unexpected token, expected "${messageOrType.label}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-8755-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-8763-        missingPlugin: [name]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js:8764:      }, `This experimental syntax requires enabling the parser plugin: '${name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-8765-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-8773-        missingPlugin: names
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js:8774:      }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-8775-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-9192-        if (checkClashes) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js:9193:          const key = `_${expr.name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-9194-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-10907-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js:10908:        throw new Error(`Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js-10909-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/lib/index.js.map:1:{"version":3,"file":"index.js","sources":["../src/tokenizer/types.js","../src/util/scopeflags.js","../src/util/whitespace.js","../src/util/location.js","../src/parser/base.js","../src/parser/comments.js","../src/parser/location.js","../src/plugins/estree.js","../src/tokenizer/context.js","../../babel-helper-validator-identifier/src/identifier.js","../../babel-helper-validator-identifier/src/keyword.js","../src/util/identifier.js","../src/plugins/flow.js","../src/plugins/jsx/xhtml.js","../src/plugins/jsx/index.js","../src/util/scope.js","../src/plugins/typescript/scope.js","../src/util/production-parameter.js","../src/plugins/typescript/index.js","../src/plugins/placeholders.js","../src/plugins/v8intrinsic.js","../src/plugin-utils.js","../src/options.js","../src/tokenizer/state.js","../src/tokenizer/index.js","../src/parser/util.js","../src/parser/node.js","../src/parser/lval.js","../src/parser/expression.js","../src/parser/statement.js","../src/util/class-scope.js","../src/parser/index.js","../src/index.js"],"sourcesContent":["// @flow\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n  keyword?: string,\n  beforeExpr?: boolean,\n  startsExpr?: boolean,\n  rightAssociative?: boolean,\n  isLoop?: boolean,\n  isAssign?: boolean,\n  prefix?: boolean,\n  postfix?: boolean,\n  binop?: ?number,\n};\n\nexport class TokenType {\n  label: string;\n  keyword: ?string;\n  beforeExpr: boolean;\n  startsExpr: boolean;\n  rightAssociative: boolean;\n  isLoop: boolean;\n  isAssign: boolean;\n  prefix: boolean;\n  postfix: boolean;\n  binop: ?number;\n  updateContext: ?(prevType: TokenType) => void;\n\n  constructor(label: string, conf: TokenOptions = {}) {\n    this.label = label;\n    this.keyword = conf.keyword;\n    this.beforeExpr = !!conf.beforeExpr;\n    this.startsExpr = !!conf.startsExpr;\n    this.rightAssociative = !!conf.rightAssociative;\n    this.isLoop = !!conf.isLoop;\n    this.isAssign = !!conf.isAssign;\n    this.prefix = !!conf.prefix;\n    this.postfix = !!conf.postfix;\n    this.binop = conf.binop != null ? conf.binop : null;\n    this.updateContext = null;\n  }\n}\n\nexport const keywords = new Map<string, TokenType>();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n  options.keyword = name;\n  const token = new TokenType(name, options);\n  keywords.set(name, token);\n  return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n  return new TokenType(name, { beforeExpr, binop });\n}\n\nexport const types: { [name: string]: TokenType } = {\n  num: new TokenType(\"num\", { startsExpr }),\n  bigint: new TokenType(\"bigint\", { startsExpr }),\n  regexp: new TokenType(\"regexp\", { startsExpr }),\n  string: new TokenType(\"string\", { startsExpr }),\n  name: new TokenType(\"name\", { startsExpr }),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", { beforeExpr, startsExpr }),\n  bracketHashL: new TokenType(\"#[\", { beforeExpr, startsExpr }),\n  bracketBarL: new TokenType(\"[|\", { beforeExpr, startsExpr }),\n  bracketR: new TokenType(\"]\"),\n  bracketBarR: new TokenType(\"|]\"),\n  braceL: new TokenType(\"{\", { beforeExpr, startsExpr }),\n  braceBarL: new TokenType(\"{|\", { beforeExpr, startsExpr }),\n  braceHashL: new TokenType(\"#{\", { beforeExpr, startsExpr }),\n  braceR: new TokenType(\"}\"),\n  braceBarR: new TokenType(\"|}\"),\n  parenL: new TokenType(\"(\", { beforeExpr, startsExpr }),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", { beforeExpr }),\n  semi: new TokenType(\";\", { beforeExpr }),\n  colon: new TokenType(\":\", { beforeExpr }),\n  doubleColon: new TokenType(\"::\", { beforeExpr }),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", { beforeExpr }),\n  questionDot: new TokenType(\"?.\"),\n  arrow: new TokenType(\"=>\", { beforeExpr }),\n  template: new TokenType(\"template\"),\n  ellipsis: new TokenType(\"...\", { beforeExpr }),\n  backQuote: new TokenType(\"`\", { startsExpr }),\n  dollarBraceL: new TokenType(\"${\", { beforeExpr, startsExpr }),\n  at: new TokenType(\"@\"),\n  hash: new TokenType(\"#\", { startsExpr }),\n\n  // Special hashbang token.\n  interpreterDirective: new TokenType(\"#!...\"),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", { beforeExpr, isAssign }),\n  assign: new TokenType(\"_=\", { beforeExpr, isAssign }),\n  incDec: new TokenType(\"++/--\", { prefix, postfix, startsExpr }),\n  bang: new TokenType(\"!\", { beforeExpr, prefix, startsExpr }),\n  tilde: new TokenType(\"~\", { beforeExpr, prefix, startsExpr }),\n  pipeline: createBinop(\"|>\", 0),\n  nullishCoalescing: createBinop(\"??\", 1),\n  logicalOR: createBinop(\"||\", 1),\n  logicalAND: createBinop(\"&&\", 2),\n  bitwiseOR: createBinop(\"|\", 3),\n  bitwiseXOR: createBinop(\"^\", 4),\n  bitwiseAND: createBinop(\"&\", 5),\n  equality: createBinop(\"==/!=/===/!==\", 6),\n  relational: createBinop(\"</>/<=/>=\", 7),\n  bitShift: createBinop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n  // startsExpr: required by v8intrinsic plugin\n  modulo: new TokenType(\"%\", { beforeExpr, binop: 10, startsExpr }),\n  star: createBinop(\"*\", 10),\n  slash: createBinop(\"/\", 10),\n  exponent: new TokenType(\"**\", {\n    beforeExpr,\n    binop: 11,\n    rightAssociative: true,\n  }),\n\n  // Keywords\n  // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n  // when new keywords are added\n  _break: createKeyword(\"break\"),\n  _case: createKeyword(\"case\", { beforeExpr }),\n  _catch: createKeyword(\"catch\"),\n  _continue: createKeyword(\"continue\"),\n  _debugger: createKeyword(\"debugger\"),\n  _default: createKeyword(\"default\", { beforeExpr }),\n  _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n  _else: createKeyword(\"else\", { beforeExpr }),\n  _finally: createKeyword(\"finally\"),\n  _for: createKeyword(\"for\", { isLoop }),\n  _function: createKeyword(\"function\", { startsExpr }),\n  _if: createKeyword(\"if\"),\n  _return: createKeyword(\"return\", { beforeExpr }),\n  _switch: createKeyword(\"switch\"),\n  _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n  _try: createKeyword(\"try\"),\n  _var: createKeyword(\"var\"),\n  _const: createKeyword(\"const\"),\n  _while: createKeyword(\"while\", { isLoop }),\n  _with: createKeyword(\"with\"),\n  _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n  _this: createKeyword(\"this\", { startsExpr }),\n  _super: createKeyword(\"super\", { startsExpr }),\n  _class: createKeyword(\"class\", { startsExpr }),\n  _extends: createKeyword(\"extends\", { beforeExpr }),\n  _export: createKeyword(\"export\"),\n  _import: createKeyword(\"import\", { startsExpr }),\n  _null: createKeyword(\"null\", { startsExpr }),\n  _true: createKeyword(\"true\", { startsExpr }),\n  _false: createKeyword(\"false\", { startsExpr }),\n  _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n  _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n  _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n  _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n  _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n};\n","// @flow\n\n// Each scope gets a bitset that may contain these flags\n// prettier-ignore\nexport const SCOPE_OTHER        = 0b00000000,\n             SCOPE_PROGRAM      = 0b00000001,\n             SCOPE_FUNCTION     = 0b00000010,\n             SCOPE_ARROW        = 0b00000100,\n             SCOPE_SIMPLE_CATCH = 0b00001000,\n             SCOPE_SUPER        = 0b00010000,\n             SCOPE_DIRECT_SUPER = 0b00100000,\n             SCOPE_CLASS        = 0b01000000,\n             SCOPE_TS_MODULE    = 0b10000000,\n             SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE;\n\nexport type ScopeFlags =\n  | typeof SCOPE_OTHER\n  | typeof SCOPE_PROGRAM\n  | typeof SCOPE_FUNCTION\n  | typeof SCOPE_VAR\n  | typeof SCOPE_ARROW\n  | typeof SCOPE_SIMPLE_CATCH\n  | typeof SCOPE_SUPER\n  | typeof SCOPE_DIRECT_SUPER\n  | typeof SCOPE_CLASS;\n\n// These flags are meant to be _only_ used inside the Scope class (or subclasses).\n// prettier-ignore\nexport const BIND_KIND_VALUE           = 0b00000_0000_01,\n             BIND_KIND_TYPE            = 0b00000_0000_10,\n             // Used in checkLVal and declareName to determine the type of a binding\n             BIND_SCOPE_VAR            = 0b00000_0001_00, // Var-style binding\n             BIND_SCOPE_LEXICAL        = 0b00000_0010_00, // Let- or const-style binding\n             BIND_SCOPE_FUNCTION       = 0b00000_0100_00, // Function declaration\n             BIND_SCOPE_OUTSIDE        = 0b00000_1000_00, // Special case for function names as\n                                                   // bound inside the function\n             // Misc flags\n             BIND_FLAGS_NONE           = 0b00001_0000_00,\n             BIND_FLAGS_CLASS          = 0b00010_0000_00,\n             BIND_FLAGS_TS_ENUM        = 0b00100_0000_00,\n             BIND_FLAGS_TS_CONST_ENUM  = 0b01000_0000_00,\n             BIND_FLAGS_TS_EXPORT_ONLY = 0b10000_0000_00;\n\n// These flags are meant to be _only_ used by Scope consumers\n// prettier-ignore\n/*                              =    is value?    |    is type?    |      scope          |    misc flags    */\nexport const BIND_CLASS         = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_CLASS  ,\n             BIND_LEXICAL       = BIND_KIND_VALUE | 0              | BIND_SCOPE_LEXICAL  | 0                 ,\n             BIND_VAR           = BIND_KIND_VALUE | 0              | BIND_SCOPE_VAR      | 0                 ,\n             BIND_FUNCTION      = BIND_KIND_VALUE | 0              | BIND_SCOPE_FUNCTION | 0                 ,\n             BIND_TS_INTERFACE  = 0               | BIND_KIND_TYPE | 0                   | BIND_FLAGS_CLASS  ,\n             BIND_TS_TYPE       = 0               | BIND_KIND_TYPE | 0                   | 0                 ,\n             BIND_TS_ENUM       = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_TS_ENUM,\n             BIND_TS_AMBIENT    = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY,\n             // These bindings don't introduce anything in the scope. They are used for assignments and\n             // function expressions IDs.\n             BIND_NONE          = 0               | 0              | 0                   | BIND_FLAGS_NONE   ,\n             BIND_OUTSIDE       = BIND_KIND_VALUE | 0              | 0                   | BIND_FLAGS_NONE   ,\n\n             BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM,\n             BIND_TS_NAMESPACE  = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY;\n\nexport type BindingTypes =\n  | typeof BIND_NONE\n  | typeof BIND_OUTSIDE\n  | typeof BIND_VAR\n  | typeof BIND_LEXICAL\n  | typeof BIND_CLASS\n  | typeof BIND_FUNCTION\n  | typeof BIND_TS_INTERFACE\n  | typeof BIND_TS_TYPE\n  | typeof BIND_TS_ENUM\n  | typeof BIND_TS_AMBIENT\n  | typeof BIND_TS_NAMESPACE;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_FLAG_STATIC = 0b1_00,\n             CLASS_ELEMENT_KIND_GETTER = 0b0_10,\n             CLASS_ELEMENT_KIND_SETTER = 0b0_01,\n             CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_STATIC_GETTER   = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_STATIC_SETTER   = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER,\n             CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER,\n             CLASS_ELEMENT_OTHER           = 0;\n\nexport type ClassElementTypes =\n  | typeof CLASS_ELEMENT_STATIC_GETTER\n  | typeof CLASS_ELEMENT_STATIC_SETTER\n  | typeof CLASS_ELEMENT_INSTANCE_GETTER\n  | typeof CLASS_ELEMENT_INSTANCE_SETTER\n  | typeof CLASS_ELEMENT_OTHER;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n  switch (code) {\n    case charCodes.lineFeed:\n    case charCodes.carriageReturn:\n    case charCodes.lineSeparator:\n    case charCodes.paragraphSeparator:\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n  switch (code) {\n    case 0x0009: // CHARACTER TABULATION\n    case 0x000b: // LINE TABULATION\n    case 0x000c: // FORM FEED\n    case charCodes.space:\n    case charCodes.nonBreakingSpace:\n    case charCodes.oghamSpaceMark:\n    case 0x2000: // EN QUAD\n    case 0x2001: // EM QUAD\n    case 0x2002: // EN SPACE\n    case 0x2003: // EM SPACE\n    case 0x2004: // THREE-PER-EM SPACE\n    case 0x2005: // FOUR-PER-EM SPACE\n    case 0x2006: // SIX-PER-EM SPACE\n    case 0x2007: // FIGURE SPACE\n    case 0x2008: // PUNCTUATION SPACE\n    case 0x2009: // THIN SPACE\n    case 0x200a: // HAIR SPACE\n    case 0x202f: // NARROW NO-BREAK SPACE\n    case 0x205f: // MEDIUM MATHEMATICAL SPACE\n    case 0x3000: // IDEOGRAPHIC SPACE\n    case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n      return true;\n\n    default:\n      return false;\n  }\n}\n","// @flow\n\nimport { lineBreakG } from \"./whitespace\";\n\nexport type Pos = {\n  start: number,\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  line: number;\n  column: number;\n\n  constructor(line: number, col: number) {\n    this.line = line;\n    this.column = col;\n  }\n}\n\nexport class SourceLocation {\n  start: Position;\n  end: Position;\n  filename: string;\n  identifierName: ?string;\n\n  constructor(start: Position, end?: Position) {\n    this.start = start;\n    // $FlowIgnore (may start as null, but initialized later)\n    this.end = end;\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input: string, offset: number): Position {\n  let line = 1;\n  let lineStart = 0;\n  let match;\n  lineBreakG.lastIndex = 0;\n  while ((match = lineBreakG.exec(input)) && match.index < offset) {\n    line++;\n    lineStart = lineBreakG.lastIndex;\n  }\n\n  return new Position(line, offset - lineStart);\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type State from \"../tokenizer/state\";\nimport type { PluginsMap } from \"./index\";\nimport type ScopeHandler from \"../util/scope\";\nimport type ClassScopeHandler from \"../util/class-scope\";\nimport type ProductionParameterHandler from \"../util/production-parameter\";\n\nexport default class BaseParser {\n  // Properties set by constructor in index.js\n  options: Options;\n  inModule: boolean;\n  scope: ScopeHandler<*>;\n  classScope: ClassScopeHandler;\n  prodParam: ProductionParameterHandler;\n  plugins: PluginsMap;\n  filename: ?string;\n  sawUnambiguousESM: boolean = false;\n  ambiguousScriptDifferentAst: boolean = false;\n\n  // Initialized by Tokenizer\n  state: State;\n  // input and length are not in state as they are constant and we do\n  // not want to ever copy them, which happens if state gets cloned\n  input: string;\n  length: number;\n\n  hasPlugin(name: string): boolean {\n    return this.plugins.has(name);\n  }\n\n  getPluginOption(plugin: string, name: string) {\n    // $FlowIssue\n    if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name];\n  }\n}\n","// @flow\n\n/**\n * Based on the comment attachment algorithm used in espree and estraverse.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n *   notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n *   notice, this list of conditions and the following disclaimer in the\n *   documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport BaseParser from \"./base\";\nimport type { Comment, Node } from \"../types\";\n\nfunction last<T>(stack: $ReadOnlyArray<T>): T {\n  return stack[stack.length - 1];\n}\n\nexport default class CommentsParser extends BaseParser {\n  addComment(comment: Comment): void {\n    if (this.filename) comment.loc.filename = this.filename;\n    this.state.trailingComments.push(comment);\n    this.state.leadingComments.push(comment);\n  }\n\n  adjustCommentsAfterTrailingComma(\n    node: Node,\n    elements: (Node | null)[],\n    // When the current node is followed by a token which hasn't a respective AST node, we\n    // need to take all the trailing comments to prevent them from being attached to an\n    // unrelated node. e.g. in\n    //     var { x } /* cmt */ = { y }\n    // we don't want /* cmt */ to be attached to { y }.\n    // On the other hand, in\n    //     fn(x) [new line] /* cmt */ [new line] y\n    // /* cmt */ is both a trailing comment of fn(x) and a leading comment of y\n    takeAllComments?: boolean,\n  ) {\n    if (this.state.leadingComments.length === 0) {\n      return;\n    }\n\n    let lastElement = null;\n    let i = elements.length;\n    while (lastElement === null && i > 0) {\n      lastElement = elements[--i];\n    }\n    if (lastElement === null) {\n      return;\n    }\n\n    for (let j = 0; j < this.state.leadingComments.length; j++) {\n      if (\n        this.state.leadingComments[j].end < this.state.commentPreviousNode.end\n      ) {\n        this.state.leadingComments.splice(j, 1);\n        j--;\n      }\n    }\n\n    const newTrailingComments = [];\n    for (let i = 0; i < this.state.leadingComments.length; i++) {\n      const leadingComment = this.state.leadingComments[i];\n      if (leadingComment.end < node.end) {\n        newTrailingComments.push(leadingComment);\n\n        // Perf: we don't need to splice if we are going to reset the array anyway\n        if (!takeAllComments) {\n          this.state.leadingComments.splice(i, 1);\n          i--;\n        }\n      } else {\n        if (node.trailingComments === undefined) {\n          node.trailingComments = [];\n        }\n        node.trailingComments.push(leadingComment);\n      }\n    }\n    if (takeAllComments) this.state.leadingComments = [];\n\n    if (newTrailingComments.length > 0) {\n      lastElement.trailingComments = newTrailingComments;\n    } else if (lastElement.trailingComments !== undefined) {\n      lastElement.trailingComments = [];\n    }\n  }\n\n  processComment(node: Node): void {\n    if (node.type === \"Program\" && node.body.length > 0) return;\n\n    const stack = this.state.commentStack;\n\n    let firstChild, lastChild, trailingComments, i, j;\n\n    if (this.state.trailingComments.length > 0) {\n      // If the first comment in trailingComments comes after the\n      // current node, then we're good - all comments in the array will\n      // come after the node and so it's safe to add them as official\n      // trailingComments.\n      if (this.state.trailingComments[0].start >= node.end) {\n        trailingComments = this.state.trailingComments;\n        this.state.trailingComments = [];\n      } else {\n        // Otherwise, if the first comment doesn't come after the\n        // current node, that means we have a mix of leading and trailing\n        // comments in the array and that leadingComments contains the\n        // same items as trailingComments. Reset trailingComments to\n        // zero items and we'll handle this by evaluating leadingComments\n        // later.\n        this.state.trailingComments.length = 0;\n      }\n    } else if (stack.length > 0) {\n      const lastInStack = last(stack);\n      if (\n        lastInStack.trailingComments &&\n        lastInStack.trailingComments[0].start >= node.end\n      ) {\n        trailingComments = lastInStack.trailingComments;\n        delete lastInStack.trailingComments;\n      }\n    }\n\n    // Eating the stack.\n    if (stack.length > 0 && last(stack).start >= node.start) {\n      firstChild = stack.pop();\n    }\n\n    while (stack.length > 0 && last(stack).start >= node.start) {\n      lastChild = stack.pop();\n    }\n\n    if (!lastChild && firstChild) lastChild = firstChild;\n\n    // Adjust comments that follow a trailing comma on the last element in a\n    // comma separated list of nodes to be the trailing comments on the last\n    // element\n    if (firstChild) {\n      switch (node.type) {\n        case \"ObjectExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties);\n          break;\n        case \"ObjectPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties, true);\n          break;\n        case \"CallExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.arguments);\n          break;\n        case \"ArrayExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements);\n          break;\n        case \"ArrayPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements, true);\n          break;\n      }\n    } else if (\n      this.state.commentPreviousNode &&\n      ((this.state.commentPreviousNode.type === \"ImportSpecifier\" &&\n        node.type !== \"ImportSpecifier\") ||\n        (this.state.commentPreviousNode.type === \"ExportSpecifier\" &&\n          node.type !== \"ExportSpecifier\"))\n    ) {\n      this.adjustCommentsAfterTrailingComma(node, [\n        this.state.commentPreviousNode,\n      ]);\n    }\n\n    if (lastChild) {\n      if (lastChild.leadingComments) {\n        if (\n          lastChild !== node &&\n          lastChild.leadingComments.length > 0 &&\n          last(lastChild.leadingComments).end <= node.start\n        ) {\n          node.leadingComments = lastChild.leadingComments;\n          delete lastChild.leadingComments;\n        } else {\n          // A leading comment for an anonymous class had been stolen by its first ClassMethod,\n          // so this takes back the leading comment.\n          // See also: https://github.com/eslint/espree/issues/158\n          for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\n            if (lastChild.leadingComments[i].end <= node.start) {\n              node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\n              break;\n            }\n          }\n        }\n      }\n    } else if (this.state.leadingComments.length > 0) {\n      if (last(this.state.leadingComments).end <= node.start) {\n        if (this.state.commentPreviousNode) {\n          for (j = 0; j < this.state.leadingComments.length; j++) {\n            if (\n              this.state.leadingComments[j].end <\n              this.state.commentPreviousNode.end\n            ) {\n              this.state.leadingComments.splice(j, 1);\n              j--;\n            }\n          }\n        }\n        if (this.state.leadingComments.length > 0) {\n          node.leadingComments = this.state.leadingComments;\n          this.state.leadingComments = [];\n        }\n      } else {\n        // https://github.com/eslint/espree/issues/2\n        //\n        // In special cases, such as return (without a value) and\n        // debugger, all comments will end up as leadingComments and\n        // will otherwise be eliminated. This step runs when the\n        // commentStack is empty and there are comments left\n        // in leadingComments.\n        //\n        // This loop figures out the stopping point between the actual\n        // leading and trailing comments by finding the location of the\n        // first comment that comes after the given node.\n        for (i = 0; i < this.state.leadingComments.length; i++) {\n          if (this.state.leadingComments[i].end > node.start) {\n            break;\n          }\n        }\n\n        // Split the array based on the location of the first comment\n        // that comes after the node. Keep in mind that this could\n        // result in an empty array, and if so, the array must be\n        // deleted.\n        const leadingComments = this.state.leadingComments.slice(0, i);\n\n        if (leadingComments.length) {\n          node.leadingComments = leadingComments;\n        }\n\n        // Similarly, trailing comments are attached later. The variable\n        // must be reset to null if there are no trailing comments.\n        trailingComments = this.state.leadingComments.slice(i);\n        if (trailingComments.length === 0) {\n          trailingComments = null;\n        }\n      }\n    }\n\n    this.state.commentPreviousNode = node;\n\n    if (trailingComments) {\n      if (\n        trailingComments.length &&\n        trailingComments[0].start >= node.start &&\n        last(trailingComments).end <= node.end\n      ) {\n        node.innerComments = trailingComments;\n      } else {\n        node.trailingComments = trailingComments;\n      }\n    }\n\n    stack.push(node);\n  }\n}\n","// @flow\n/* eslint sort-keys: \"error\" */\nimport { getLineInfo, type Position } from \"../util/location\";\nimport CommentsParser from \"./comments\";\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\ntype ErrorContext = {\n  pos: number,\n  loc: Position,\n  missingPlugin?: Array<string>,\n  code?: string,\n};\n\n// The Errors key follows https://cs.chromium.org/chromium/src/v8/src/common/message-template.h unless it does not exist\nexport const Errors = Object.freeze({\n  ArgumentsDisallowedInInitializer:\n    \"'arguments' is not allowed in class field initializer\",\n  AsyncFunctionInSingleStatementContext:\n    \"Async functions can only be declared at the top level or inside a block\",\n  AwaitBindingIdentifier:\n    \"Can not use 'await' as identifier inside an async function\",\n  AwaitExpressionFormalParameter:\n    \"await is not allowed in async function parameters\",\n  AwaitNotInAsyncFunction:\n    \"Can not use keyword 'await' outside an async function\",\n  BadGetterArity: \"getter must not have any formal parameters\",\n  BadSetterArity: \"setter must have exactly one formal parameter\",\n  BadSetterRestParameter:\n    \"setter function argument must not be a rest parameter\",\n  ConstructorClassField: \"Classes may not have a field named 'constructor'\",\n  ConstructorClassPrivateField:\n    \"Classes may not have a private field named '#constructor'\",\n  ConstructorIsAccessor: \"Class constructor may not be an accessor\",\n  ConstructorIsAsync: \"Constructor can't be an async function\",\n  ConstructorIsGenerator: \"Constructor can't be a generator\",\n  DeclarationMissingInitializer: \"%0 require an initialization value\",\n  DecoratorBeforeExport:\n    \"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax\",\n  DecoratorConstructor:\n    \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n  DecoratorExportClass:\n    \"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\",\n  DecoratorSemicolon: \"Decorators must not be followed by a semicolon\",\n  DeletePrivateField: \"Deleting a private field is not allowed\",\n  DestructureNamedImport:\n    \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n  DuplicateConstructor: \"Duplicate constructor in the same class\",\n  DuplicateDefaultExport: \"Only one default export allowed per module.\",\n  DuplicateExport:\n    \"`%0` has already been exported. Exported identifiers must be unique.\",\n  DuplicateProto: \"Redefinition of __proto__ property\",\n  DuplicateRegExpFlags: \"Duplicate regular expression flag\",\n  ElementAfterRest: \"Rest element must be last element\",\n  EscapedCharNotAnIdentifier: \"Invalid Unicode escape\",\n  ForInOfLoopInitializer:\n    \"%0 loop variable declaration may not have an initializer\",\n  GeneratorInSingleStatementContext:\n    \"Generators can only be declared at the top level or inside a block\",\n  IllegalBreakContinue: \"Unsyntactic %0\",\n  IllegalLanguageModeDirective:\n    \"Illegal 'use strict' directive in function with non-simple parameter list\",\n  IllegalReturn: \"'return' outside of function\",\n  ImportCallArgumentTrailingComma:\n    \"Trailing comma is disallowed inside import(...) arguments\",\n  ImportCallArity: \"import() requires exactly one argument\",\n  ImportCallArityLtOne: \"Dynamic imports require a parameter: import('a.js')\",\n  ImportCallNotNewExpression: \"Cannot use new with import(...)\",\n  ImportCallSpreadArgument: \"... is not allowed in import()\",\n  ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: \"module\"'`,\n  ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n  InvalidCodePoint: \"Code point out of bounds\",\n  InvalidDigit: \"Expected number in radix %0\",\n  InvalidEscapeSequence: \"Bad character escape sequence\",\n  InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template\",\n  InvalidEscapedReservedWord: \"Escape sequence in keyword %0\",\n  InvalidIdentifier: \"Invalid identifier %0\",\n  InvalidLhs: \"Invalid left-hand side in %0\",\n  InvalidLhsBinding: \"Binding invalid left-hand side in %0\",\n  InvalidNumber: \"Invalid number\",\n  InvalidOrUnexpectedToken: \"Unexpected character '%0'\",\n  InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern\",\n  InvalidPrivateFieldResolution: \"Private name #%0 is not defined\",\n  InvalidPropertyBindingPattern: \"Binding member expression\",\n  InvalidRestAssignmentPattern: \"Invalid rest operator's argument\",\n  LabelRedeclaration: \"Label '%0' is already declared\",\n  LetInLexicalBinding:\n    \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\",\n  MalformedRegExpFlags: \"Invalid regular expression flag\",\n  MissingClassName: \"A class name is required\",\n  MissingEqInAssignment:\n    \"Only '=' operator can be used for specifying default value.\",\n  MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX\",\n  MixingCoalesceWithLogical:\n    \"Nullish coalescing operator(??) requires parens when mixing with logical operators\",\n  ModuleExportUndefined: \"Export '%0' is not defined\",\n  MultipleDefaultsInSwitch: \"Multiple default clauses\",\n  NewlineAfterThrow: \"Illegal newline after throw\",\n  NoCatchOrFinally: \"Missing catch or finally clause\",\n  NumberIdentifier: \"Identifier directly after number\",\n  NumericSeparatorInEscapeSequence:\n    \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences\",\n  ObsoleteAwaitStar:\n    \"await* has been removed from the async functions proposal. Use Promise.all() instead.\",\n  OptionalChainingNoNew:\n    \"constructors in/after an Optional Chain are not allowed\",\n  OptionalChainingNoTemplate:\n    \"Tagged Template Literals are not allowed in optionalChain\",\n  ParamDupe: \"Argument name clash\",\n  PatternHasAccessor: \"Object pattern can't contain getter or setter\",\n  PatternHasMethod: \"Object pattern can't contain methods\",\n  PipelineBodyNoArrow:\n    'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized',\n  PipelineBodySequenceExpression:\n    \"Pipeline body may not be a comma-separated sequence expression\",\n  PipelineHeadSequenceExpression:\n    \"Pipeline head should not be a comma-separated sequence expression\",\n  PipelineTopicUnused:\n    \"Pipeline is in topic style but does not use topic reference\",\n  PrimaryTopicNotAllowed:\n    \"Topic reference was used in a lexical context without topic binding\",\n  PrimaryTopicRequiresSmartPipeline:\n    \"Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.\",\n  PrivateNameRedeclaration: \"Duplicate private name #%0\",\n  RecordExpressionBarIncorrectEndSyntaxType:\n    \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionBarIncorrectStartSyntaxType:\n    \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionHashIncorrectStartSyntaxType:\n    \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  RestTrailingComma: \"Unexpected trailing comma after rest element\",\n  SloppyFunction:\n    \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",\n  StaticPrototype: \"Classes may not have static property named prototype\",\n  StrictDelete: \"Deleting local variable in strict mode\",\n  StrictEvalArguments: \"Assigning to '%0' in strict mode\",\n  StrictEvalArgumentsBinding: \"Binding '%0' in strict mode\",\n  StrictFunction:\n    \"In strict mode code, functions can only be declared at top level or inside a block\",\n  StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode\",\n  StrictWith: \"'with' in strict mode\",\n  SuperNotAllowed:\n    \"super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n  SuperPrivateField: \"Private fields can't be accessed on super\",\n  TrailingDecorator: \"Decorators must be attached to a class element\",\n  TupleExpressionBarIncorrectEndSyntaxType:\n    \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionBarIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionHashIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder\",\n  UnexpectedAwaitAfterPipelineBody:\n    'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal',\n  UnexpectedDigitAfterHash: \"Unexpected digit after hash token\",\n  UnexpectedImportExport:\n    \"'import' and 'export' may only appear at the top level\",\n  UnexpectedKeyword: \"Unexpected keyword '%0'\",\n  UnexpectedLeadingDecorator:\n    \"Leading decorators must be attached to a class declaration\",\n  UnexpectedLexicalDeclaration:\n    \"Lexical declaration cannot appear in a single-statement context\",\n  UnexpectedNewTarget: \"new.target can only be used in functions\",\n  UnexpectedNumericSeparator:\n    \"A numeric separator is only allowed between two digits\",\n  UnexpectedPrivateField:\n    \"Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\\n or a property of member expression (i.e. this.#p).\",\n  UnexpectedReservedWord: \"Unexpected reserved word '%0'\",\n  UnexpectedSuper: \"super is only allowed in object methods and classes\",\n  UnexpectedToken: \"Unexpected token '%'\",\n  UnexpectedTokenUnaryExponentiation:\n    \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n  UnsupportedBind: \"Binding should be performed on object property.\",\n  UnsupportedDecoratorExport:\n    \"A decorated export must export a class declaration\",\n  UnsupportedDefaultExport:\n    \"Only expressions, functions or classes are allowed as the `default` export.\",\n  UnsupportedImport: \"import can only be used in import() or import.meta\",\n  UnsupportedMetaProperty: \"The only valid meta property for %0 is %0.%1\",\n  UnsupportedParameterDecorator:\n    \"Decorators cannot be used to decorate parameters\",\n  UnsupportedPropertyDecorator:\n    \"Decorators cannot be used to decorate object literal properties\",\n  UnsupportedSuper:\n    \"super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])\",\n  UnterminatedComment: \"Unterminated comment\",\n  UnterminatedRegExp: \"Unterminated regular expression\",\n  UnterminatedString: \"Unterminated string constant\",\n  UnterminatedTemplate: \"Unterminated template\",\n  VarRedeclaration: \"Identifier '%0' has already been declared\",\n  YieldBindingIdentifier:\n    \"Can not use 'yield' as identifier inside a generator\",\n  YieldInParameter: \"yield is not allowed in generator parameters\",\n  ZeroDigitNumericSeparator:\n    \"Numeric separator can not be used after leading 0\",\n});\n\nexport default class LocationParser extends CommentsParser {\n  // Forward-declaration: defined in tokenizer/index.js\n  /*::\n  +isLookahead: boolean;\n  */\n\n  getLocationForPosition(pos: number): Position {\n    let loc;\n    if (pos === this.state.start) loc = this.state.startLoc;\n    else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;\n    else if (pos === this.state.end) loc = this.state.endLoc;\n    else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;\n    else loc = getLineInfo(this.input, pos);\n\n    return loc;\n  }\n\n  raise(pos: number, errorTemplate: string, ...params: any): Error | empty {\n    return this.raiseWithData(pos, undefined, errorTemplate, ...params);\n  }\n\n  raiseWithData(\n    pos: number,\n    data?: {\n      missingPlugin?: Array<string>,\n      code?: string,\n    },\n    errorTemplate: string,\n    ...params: any\n  ): Error | empty {\n    const loc = this.getLocationForPosition(pos);\n    const message =\n      errorTemplate.replace(/%(\\d+)/g, (_, i: number) => params[i]) +\n      ` (${loc.line}:${loc.column})`;\n    return this._raise(Object.assign(({ loc, pos }: Object), data), message);\n  }\n\n  _raise(errorContext: ErrorContext, message: string): Error | empty {\n    // $FlowIgnore\n    const err: SyntaxError & ErrorContext = new SyntaxError(message);\n    Object.assign(err, errorContext);\n    if (this.options.errorRecovery) {\n      if (!this.isLookahead) this.state.errors.push(err);\n      return err;\n    } else {\n      throw err;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nfunction isSimpleProperty(node: N.Node): boolean {\n  return (\n    node != null &&\n    node.type === \"Property\" &&\n    node.kind === \"init\" &&\n    node.method === false\n  );\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    estreeParseRegExpLiteral({ pattern, flags }: N.RegExpLiteral): N.Node {\n      let regex = null;\n      try {\n        regex = new RegExp(pattern, flags);\n      } catch (e) {\n        // In environments that don't support these flags value will\n        // be null as the regex can't be represented natively.\n      }\n      const node = this.estreeParseLiteral(regex);\n      node.regex = { pattern, flags };\n\n      return node;\n    }\n\n    estreeParseBigIntLiteral(value: any): N.Node {\n      // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n      // $FlowIgnore\n      const bigInt = typeof BigInt !== \"undefined\" ? BigInt(value) : null;\n      const node = this.estreeParseLiteral(bigInt);\n      node.bigint = String(node.value || value);\n\n      return node;\n    }\n\n    estreeParseLiteral(value: any): N.Node {\n      return this.parseLiteral(value, \"Literal\");\n    }\n\n    directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n      const directiveLiteral = directive.value;\n\n      const stmt = this.startNodeAt(directive.start, directive.loc.start);\n      const expression = this.startNodeAt(\n        directiveLiteral.start,\n        directiveLiteral.loc.start,\n      );\n\n      expression.value = directiveLiteral.value;\n      expression.raw = directiveLiteral.extra.raw;\n\n      stmt.expression = this.finishNodeAt(\n        expression,\n        \"Literal\",\n        directiveLiteral.end,\n        directiveLiteral.loc.end,\n      );\n      stmt.directive = directiveLiteral.extra.raw.slice(1, -1);\n\n      return this.finishNodeAt(\n        stmt,\n        \"ExpressionStatement\",\n        directive.end,\n        directive.loc.end,\n      );\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    initFunction(\n      node: N.BodilessFunctionOrMethodBase,\n      isAsync: ?boolean,\n    ): void {\n      super.initFunction(node, isAsync);\n      node.expression = false;\n    }\n\n    checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n      if (isSimpleProperty(node)) {\n        this.checkDeclaration(((node: any): N.EstreeProperty).value);\n      } else {\n        super.checkDeclaration(node);\n      }\n    }\n\n    checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n      const prop = ((method: any): N.EstreeProperty | N.EstreeMethodDefinition);\n      const paramCount = prop.kind === \"get\" ? 0 : 1;\n      const start = prop.start;\n      if (prop.value.params.length !== paramCount) {\n        if (method.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      } else if (\n        prop.kind === \"set\" &&\n        prop.value.params[0].type === \"RestElement\"\n      ) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n      disallowLetBinding?: boolean,\n    ): void {\n      switch (expr.type) {\n        case \"ObjectPattern\":\n          expr.properties.forEach(prop => {\n            this.checkLVal(\n              prop.type === \"Property\" ? prop.value : prop,\n              bindingType,\n              checkClashes,\n              \"object destructuring pattern\",\n              disallowLetBinding,\n            );\n          });\n          break;\n        default:\n          super.checkLVal(\n            expr,\n            bindingType,\n            checkClashes,\n            contextDescription,\n            disallowLetBinding,\n          );\n      }\n    }\n\n    checkDuplicatedProto(\n      prop: N.ObjectMember | N.SpreadElement,\n      protoRef: { used: boolean },\n      refExpressionErrors: ?ExpressionErrors,\n    ): void {\n      if (\n        prop.type === \"SpreadElement\" ||\n        prop.computed ||\n        prop.method ||\n        // $FlowIgnore\n        prop.shorthand\n      ) {\n        return;\n      }\n\n      const key = prop.key;\n      // It is either an Identifier or a String/NumericLiteral\n      const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n      if (name === \"__proto__\" && prop.kind === \"init\") {\n        // Store the first redefinition's position\n        if (protoRef.used) {\n          if (refExpressionErrors && refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          } else {\n            this.raise(key.start, Errors.DuplicateProto);\n          }\n        }\n\n        protoRef.used = true;\n      }\n    }\n\n    isValidDirective(stmt: N.Statement): boolean {\n      return (\n        stmt.type === \"ExpressionStatement\" &&\n        stmt.expression.type === \"Literal\" &&\n        typeof stmt.expression.value === \"string\" &&\n        (!stmt.expression.extra || !stmt.expression.extra.parenthesized)\n      );\n    }\n\n    stmtToDirective(stmt: N.Statement): N.Directive {\n      const directive = super.stmtToDirective(stmt);\n      const value = stmt.expression.value;\n\n      // Reset value to the actual value as in estree mode we want\n      // the stmt to have the real value and not the raw value\n      directive.value.value = value;\n\n      return directive;\n    }\n\n    parseBlockBody(\n      node: N.BlockStatementLike,\n      allowDirectives: ?boolean,\n      topLevel: boolean,\n      end: TokenType,\n    ): void {\n      super.parseBlockBody(node, allowDirectives, topLevel, end);\n\n      const directiveStatements = node.directives.map(d =>\n        this.directiveToStmt(d),\n      );\n      node.body = directiveStatements.concat(node.body);\n      delete node.directives;\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      );\n      if (method.typeParameters) {\n        // $FlowIgnore\n        method.value.typeParameters = method.typeParameters;\n        delete method.typeParameters;\n      }\n      classBody.body.push(method);\n    }\n\n    parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      switch (this.state.type) {\n        case tt.num:\n        case tt.string:\n          return this.estreeParseLiteral(this.state.value);\n\n        case tt.regexp:\n          return this.estreeParseRegExpLiteral(this.state.value);\n\n        case tt.bigint:\n          return this.estreeParseBigIntLiteral(this.state.value);\n\n        case tt._null:\n          return this.estreeParseLiteral(null);\n\n        case tt._true:\n          return this.estreeParseLiteral(true);\n\n        case tt._false:\n          return this.estreeParseLiteral(false);\n\n        default:\n          return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    parseLiteral<T: N.Literal>(\n      value: any,\n      type: /*T[\"kind\"]*/ string,\n      startPos?: number,\n      startLoc?: Position,\n    ): T {\n      const node = super.parseLiteral(value, type, startPos, startLoc);\n      node.raw = node.extra.raw;\n      delete node.extra;\n\n      return node;\n    }\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpression: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      super.parseFunctionBody(node, allowExpression, isMethod);\n      node.expression = node.body.type !== \"BlockStatement\";\n    }\n\n    parseMethod<T: N.MethodLike>(\n      node: T,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowDirectSuper: boolean,\n      type: string,\n      inClassScope: boolean = false,\n    ): T {\n      let funcNode = this.startNode();\n      funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n      funcNode = super.parseMethod(\n        funcNode,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowDirectSuper,\n        type,\n        inClassScope,\n      );\n      funcNode.type = \"FunctionExpression\";\n      delete funcNode.kind;\n      // $FlowIgnore\n      node.value = funcNode;\n\n      type = type === \"ClassMethod\" ? \"MethodDefinition\" : type;\n      return this.finishNode(node, type);\n    }\n\n    parseObjectMethod(\n      prop: N.ObjectMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      containsEsc: boolean,\n    ): ?N.ObjectMethod {\n      const node: N.EstreeProperty = (super.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ): any);\n\n      if (node) {\n        node.type = \"Property\";\n        if (((node: any): N.ClassMethod).kind === \"method\") node.kind = \"init\";\n        node.shorthand = false;\n      }\n\n      return (node: any);\n    }\n\n    parseObjectProperty(\n      prop: N.ObjectProperty,\n      startPos: ?number,\n      startLoc: ?Position,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n    ): ?N.ObjectProperty {\n      const node: N.EstreeProperty = (super.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      ): any);\n\n      if (node) {\n        node.kind = \"init\";\n        node.type = \"Property\";\n      }\n\n      return (node: any);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (isSimpleProperty(node)) {\n        this.toAssignable(node.value);\n\n        return node;\n      }\n\n      return super.toAssignable(node);\n    }\n\n    toAssignableObjectExpressionProp(prop: N.Node, isLast: boolean) {\n      if (prop.kind === \"get\" || prop.kind === \"set\") {\n        throw this.raise(prop.key.start, Errors.PatternHasAccessor);\n      } else if (prop.method) {\n        throw this.raise(prop.key.start, Errors.PatternHasMethod);\n      } else {\n        super.toAssignableObjectExpressionProp(prop, isLast);\n      }\n    }\n\n    finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n      node: T,\n      optional: boolean,\n    ): N.Expression {\n      super.finishCallExpression(node, optional);\n\n      if (node.callee.type === \"Import\") {\n        ((node: N.Node): N.EstreeImportExpression).type = \"ImportExpression\";\n        ((node: N.Node): N.EstreeImportExpression).source = node.arguments[0];\n        delete node.arguments;\n        delete node.callee;\n      }\n\n      return node;\n    }\n\n    toReferencedListDeep(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): void {\n      // ImportExpressions do not have an arguments array.\n      if (!exprList) {\n        return;\n      }\n\n      super.toReferencedListDeep(exprList, isParenthesizedExpr);\n    }\n\n    parseExport(node: N.Node) {\n      super.parseExport(node);\n\n      switch (node.type) {\n        case \"ExportAllDeclaration\":\n          node.exported = null;\n          break;\n\n        case \"ExportNamedDeclaration\":\n          if (\n            node.specifiers.length === 1 &&\n            node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n          ) {\n            node.type = \"ExportAllDeclaration\";\n            node.exported = node.specifiers[0].exported;\n            delete node.specifiers;\n          }\n\n          break;\n      }\n\n      return node;\n    }\n  };\n","// @flow\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport { types as tt } from \"./types\";\nimport { lineBreak } from \"../util/whitespace\";\n\nexport class TokContext {\n  constructor(\n    token: string,\n    isExpr?: boolean,\n    preserveSpace?: boolean,\n    override?: ?Function, // Takes a Tokenizer as a this-parameter, and returns void.\n  ) {\n    this.token = token;\n    this.isExpr = !!isExpr;\n    this.preserveSpace = !!preserveSpace;\n    this.override = override;\n  }\n\n  token: string;\n  isExpr: boolean;\n  preserveSpace: boolean;\n  override: ?Function;\n}\n\nexport const types: {\n  [key: string]: TokContext,\n} = {\n  braceStatement: new TokContext(\"{\", false),\n  braceExpression: new TokContext(\"{\", true),\n  templateQuasi: new TokContext(\"${\", false),\n  parenStatement: new TokContext(\"(\", false),\n  parenExpression: new TokContext(\"(\", true),\n  template: new TokContext(\"`\", true, true, p => p.readTmplToken()),\n  functionExpression: new TokContext(\"function\", true),\n  functionStatement: new TokContext(\"function\", false),\n};\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.state.context.length === 1) {\n    this.state.exprAllowed = true;\n    return;\n  }\n\n  let out = this.state.context.pop();\n  if (out === types.braceStatement && this.curContext().token === \"function\") {\n    out = this.state.context.pop();\n  }\n\n  this.state.exprAllowed = !out.isExpr;\n};\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false;\n  if (prevType !== tt.dot) {\n    if (\n      (this.state.value === \"of\" && !this.state.exprAllowed) ||\n      (this.state.value === \"yield\" && this.prodParam.hasYield)\n    ) {\n      allowed = true;\n    }\n  }\n  this.state.exprAllowed = allowed;\n\n  if (this.state.isIterator) {\n    this.state.isIterator = false;\n  }\n};\n\ntt.braceL.updateContext = function(prevType) {\n  this.state.context.push(\n    this.braceIsBlock(prevType) ? types.braceStatement : types.braceExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.dollarBraceL.updateContext = function() {\n  this.state.context.push(types.templateQuasi);\n  this.state.exprAllowed = true;\n};\n\ntt.parenL.updateContext = function(prevType) {\n  const statementParens =\n    prevType === tt._if ||\n    prevType === tt._for ||\n    prevType === tt._with ||\n    prevType === tt._while;\n  this.state.context.push(\n    statementParens ? types.parenStatement : types.parenExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n};\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (\n    prevType.beforeExpr &&\n    prevType !== tt.semi &&\n    prevType !== tt._else &&\n    !(\n      prevType === tt._return &&\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) &&\n    !(\n      (prevType === tt.colon || prevType === tt.braceL) &&\n      this.curContext() === types.b_stat\n    )\n  ) {\n    this.state.context.push(types.functionExpression);\n  } else {\n    this.state.context.push(types.functionStatement);\n  }\n\n  this.state.exprAllowed = false;\n};\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.template) {\n    this.state.context.pop();\n  } else {\n    this.state.context.push(types.template);\n  }\n  this.state.exprAllowed = false;\n};\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nconst nonASCIIidentifierStart = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: $ReadOnlyArray<number>): boolean {\n  let pos = 0x10000;\n  for (let i = 0, length = set.length; i < length; i += 2) {\n    pos += set[i];\n    if (pos > code) return false;\n\n    pos += set[i + 1];\n    if (pos >= code) return true;\n  }\n  return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n  if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return (\n      code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n    );\n  }\n  return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n  if (code < charCodes.digit0) return code === charCodes.dollarSign;\n  if (code < charCodes.colon) return true;\n  if (code < charCodes.uppercaseA) return false;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n  }\n  return (\n    isInAstralSet(code, astralIdentifierStartCodes) ||\n    isInAstralSet(code, astralIdentifierCodes)\n  );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n  let isFirst = true;\n  for (const char of Array.from(name)) {\n    const cp = char.codePointAt(0);\n    if (isFirst) {\n      if (!isIdentifierStart(cp)) {\n        return false;\n      }\n      isFirst = false;\n    } else if (!isIdentifierChar(cp)) {\n      return false;\n    }\n  }\n  return true;\n}\n","// @flow\n\nconst reservedWords = {\n  keyword: [\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"continue\",\n    \"debugger\",\n    \"default\",\n    \"do\",\n    \"else\",\n    \"finally\",\n    \"for\",\n    \"function\",\n    \"if\",\n    \"return\",\n    \"switch\",\n    \"throw\",\n    \"try\",\n    \"var\",\n    \"const\",\n    \"while\",\n    \"with\",\n    \"new\",\n    \"this\",\n    \"super\",\n    \"class\",\n    \"extends\",\n    \"export\",\n    \"import\",\n    \"null\",\n    \"true\",\n    \"false\",\n    \"in\",\n    \"instanceof\",\n    \"typeof\",\n    \"void\",\n    \"delete\",\n  ],\n  strict: [\n    \"implements\",\n    \"interface\",\n    \"let\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"static\",\n    \"yield\",\n  ],\n  strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n  return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n  return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n  word: string,\n  inModule: boolean,\n): boolean {\n  return (\n    isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n  );\n}\n\nexport function isKeyword(word: string): boolean {\n  return keywords.has(word);\n}\n","/* eslint max-len: 0 */\n\n// @flow\n\nimport * as charCodes from \"charcodes\";\n\nexport {\n  isIdentifierStart,\n  isIdentifierChar,\n  isReservedWord,\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n  isStrictReservedWord,\n  isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(current: number, next: number): boolean {\n  return current === charCodes.atSign && next === charCodes.atSign;\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type Parser from \"../parser\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport * as N from \"../types\";\nimport type { Options } from \"../options\";\nimport type { Pos, Position } from \"../util/location\";\nimport type State from \"../tokenizer/state\";\nimport { types as tc } from \"../tokenizer/context\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../util/identifier\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_ARROW,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n} from \"../util/scopeflags\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport { Errors } from \"../parser/location\";\n\nconst reservedTypes = new Set([\n  \"_\",\n  \"any\",\n  \"bool\",\n  \"boolean\",\n  \"empty\",\n  \"extends\",\n  \"false\",\n  \"interface\",\n  \"mixed\",\n  \"null\",\n  \"number\",\n  \"static\",\n  \"string\",\n  \"true\",\n  \"typeof\",\n  \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = Object.freeze({\n  AmbiguousConditionalArrow:\n    \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n  AmbiguousDeclareModuleKind:\n    \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module\",\n  AssignReservedType: \"Cannot overwrite reserved type %0\",\n  DeclareClassElement:\n    \"The `declare` modifier can only appear on class fields.\",\n  DeclareClassFieldInitializer:\n    \"Initializers are not allowed in fields with the `declare` modifier.\",\n  DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement\",\n  EnumBooleanMemberNotInitialized:\n    \"Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.\",\n  EnumDuplicateMemberName:\n    \"Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.\",\n  EnumInconsistentMemberValues:\n    \"Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\",\n  EnumInvalidExplicitType:\n    \"Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidExplicitTypeUnknownSupplied:\n    \"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidMemberInitializerPrimaryType:\n    \"Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.\",\n  EnumInvalidMemberInitializerSymbolType:\n    \"Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.\",\n  EnumInvalidMemberInitializerUnknownType:\n    \"The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.\",\n  EnumInvalidMemberName:\n    \"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.\",\n  EnumNumberMemberNotInitialized:\n    \"Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.\",\n  EnumStringMemberInconsistentlyInitailized:\n    \"String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.\",\n  ImportTypeShorthandOnlyInPureImport:\n    \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\",\n  InexactInsideExact:\n    \"Explicit inexact syntax cannot appear inside an explicit exact object type\",\n  InexactInsideNonObject:\n    \"Explicit inexact syntax cannot appear in class or interface definitions\",\n  InexactVariance: \"Explicit inexact syntax cannot have variance\",\n  InvalidNonTypeImportInDeclareModule:\n    \"Imports within a `declare module` body must always be `import type` or `import typeof`\",\n  MissingTypeParamDefault:\n    \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n  NestedDeclareModule:\n    \"`declare module` cannot be used inside another `declare module`\",\n  NestedFlowComment: \"Cannot have a flow comment inside another flow comment\",\n  OptionalBindingPattern:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  SpreadVariance: \"Spread properties cannot have variance\",\n  TypeBeforeInitializer:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  TypeCastInPattern:\n    \"The type cast expression is expected to be wrapped with parenthesis\",\n  UnexpectedExplicitInexactInObject:\n    \"Explicit inexact syntax must appear at the end of an inexact object\",\n  UnexpectedReservedType: \"Unexpected reserved type %0\",\n  UnexpectedReservedUnderscore:\n    \"`_` is only allowed as a type argument to call or new\",\n  UnexpectedSpaceBetweenModuloChecks:\n    \"Spaces between `%` and `checks` are not allowed here.\",\n  UnexpectedSpreadType:\n    \"Spread operator cannot appear in class or interface definitions\",\n  UnexpectedSubtractionOperand:\n    'Unexpected token, expected \"number\" or \"bigint\"',\n  UnexpectedTokenAfterTypeParameter:\n    \"Expected an arrow function after this type parameter declaration\",\n  UnsupportedDeclareExportKind:\n    \"`declare export %0` is not supported. Use `%1` instead\",\n  UnsupportedStatementInDeclareModule:\n    \"Only declares and type imports are allowed inside declare module\",\n  UnterminatedFlowComment: \"Unterminated flow-comment\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n  return (\n    bodyElement.type === \"DeclareExportAllDeclaration\" ||\n    (bodyElement.type === \"DeclareExportDeclaration\" &&\n      (!bodyElement.declaration ||\n        (bodyElement.declaration.type !== \"TypeAlias\" &&\n          bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n  );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n  return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nfunction isMaybeDefaultImport(state: State): boolean {\n  return (\n    (state.type === tt.name || !!state.type.keyword) && state.value !== \"from\"\n  );\n}\n\nconst exportSuggestions = {\n  const: \"declare export var\",\n  let: \"declare export var\",\n  type: \"export type\",\n  interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition<T>(\n  list: T[],\n  test: (T, number, T[]) => ?boolean,\n): [T[], T[]] {\n  const list1 = [];\n  const list2 = [];\n  for (let i = 0; i < list.length; i++) {\n    (test(list[i], i, list) ? list1 : list2).push(list[i]);\n  }\n  return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\ntype EnumContext = {|\n  enumName: string,\n  explicitType: EnumExplicitType,\n  memberName: string,\n|};\ntype EnumMemberInit =\n  | {| type: \"number\", pos: number, value: N.Node |}\n  | {| type: \"string\", pos: number, value: N.Node |}\n  | {| type: \"boolean\", pos: number, value: N.Node |}\n  | {| type: \"invalid\", pos: number |}\n  | {| type: \"none\", pos: number |};\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // The value of the @flow/@noflow pragma. Initially undefined, transitions\n    // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n    // past the initial comment.\n    flowPragma: void | null | \"flow\" | \"noflow\";\n\n    constructor(options: ?Options, input: string) {\n      super(options, input);\n      this.flowPragma = undefined;\n    }\n\n    shouldParseTypes(): boolean {\n      return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n    }\n\n    shouldParseEnums(): boolean {\n      return !!this.getPluginOption(\"flow\", \"enums\");\n    }\n\n    finishToken(type: TokenType, val: any): void {\n      if (\n        type !== tt.string &&\n        type !== tt.semi &&\n        type !== tt.interpreterDirective\n      ) {\n        if (this.flowPragma === undefined) {\n          this.flowPragma = null;\n        }\n      }\n      return super.finishToken(type, val);\n    }\n\n    addComment(comment: N.Comment): void {\n      if (this.flowPragma === undefined) {\n        // Try to parse a flow pragma.\n        const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n        if (!matches) {\n          // do nothing\n        } else if (matches[1] === \"flow\") {\n          this.flowPragma = \"flow\";\n        } else if (matches[1] === \"noflow\") {\n          this.flowPragma = \"noflow\";\n        } else {\n          throw new Error(\"Unexpected flow pragma\");\n        }\n      }\n      return super.addComment(comment);\n    }\n\n    flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tok || tt.colon);\n\n      const type = this.flowParseType();\n      this.state.inType = oldInType;\n      return type;\n    }\n\n    flowParsePredicate(): N.FlowType {\n      const node = this.startNode();\n      const moduloLoc = this.state.startLoc;\n      const moduloPos = this.state.start;\n      this.expect(tt.modulo);\n      const checksLoc = this.state.startLoc;\n      this.expectContextual(\"checks\");\n      // Force '%' and 'checks' to be adjacent\n      if (\n        moduloLoc.line !== checksLoc.line ||\n        moduloLoc.column !== checksLoc.column - 1\n      ) {\n        this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks);\n      }\n      if (this.eat(tt.parenL)) {\n        node.value = this.parseExpression();\n        this.expect(tt.parenR);\n        return this.finishNode(node, \"DeclaredPredicate\");\n      } else {\n        return this.finishNode(node, \"InferredPredicate\");\n      }\n    }\n\n    flowParseTypeAndPredicateInitialiser(): [?N.FlowType, ?N.FlowPredicate] {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tt.colon);\n      let type = null;\n      let predicate = null;\n      if (this.match(tt.modulo)) {\n        this.state.inType = oldInType;\n        predicate = this.flowParsePredicate();\n      } else {\n        type = this.flowParseType();\n        this.state.inType = oldInType;\n        if (this.match(tt.modulo)) {\n          predicate = this.flowParsePredicate();\n        }\n      }\n      return [type, predicate];\n    }\n\n    flowParseDeclareClass(node: N.FlowDeclareClass): N.FlowDeclareClass {\n      this.next();\n      this.flowParseInterfaceish(node, /*isClass*/ true);\n      return this.finishNode(node, \"DeclareClass\");\n    }\n\n    flowParseDeclareFunction(\n      node: N.FlowDeclareFunction,\n    ): N.FlowDeclareFunction {\n      this.next();\n\n      const id = (node.id = this.parseIdentifier());\n\n      const typeNode = this.startNode();\n      const typeContainer = this.startNode();\n\n      if (this.isRelational(\"<\")) {\n        typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        typeNode.typeParameters = null;\n      }\n\n      this.expect(tt.parenL);\n      const tmp = this.flowParseFunctionTypeParams();\n      typeNode.params = tmp.params;\n      typeNode.rest = tmp.rest;\n      this.expect(tt.parenR);\n\n      [\n        // $FlowFixMe (destructuring not supported yet)\n        typeNode.returnType,\n        // $FlowFixMe (destructuring not supported yet)\n        node.predicate,\n      ] = this.flowParseTypeAndPredicateInitialiser();\n\n      typeContainer.typeAnnotation = this.finishNode(\n        typeNode,\n        \"FunctionTypeAnnotation\",\n      );\n\n      id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n      this.resetEndLocation(id);\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareFunction\");\n    }\n\n    flowParseDeclare(\n      node: N.FlowDeclare,\n      insideModule?: boolean,\n    ): N.FlowDeclare {\n      if (this.match(tt._class)) {\n        return this.flowParseDeclareClass(node);\n      } else if (this.match(tt._function)) {\n        return this.flowParseDeclareFunction(node);\n      } else if (this.match(tt._var)) {\n        return this.flowParseDeclareVariable(node);\n      } else if (this.eatContextual(\"module\")) {\n        if (this.match(tt.dot)) {\n          return this.flowParseDeclareModuleExports(node);\n        } else {\n          if (insideModule) {\n            this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule);\n          }\n          return this.flowParseDeclareModule(node);\n        }\n      } else if (this.isContextual(\"type\")) {\n        return this.flowParseDeclareTypeAlias(node);\n      } else if (this.isContextual(\"opaque\")) {\n        return this.flowParseDeclareOpaqueType(node);\n      } else if (this.isContextual(\"interface\")) {\n        return this.flowParseDeclareInterface(node);\n      } else if (this.match(tt._export)) {\n        return this.flowParseDeclareExportDeclaration(node, insideModule);\n      } else {\n        throw this.unexpected();\n      }\n    }\n\n    flowParseDeclareVariable(\n      node: N.FlowDeclareVariable,\n    ): N.FlowDeclareVariable {\n      this.next();\n      node.id = this.flowParseTypeAnnotatableIdentifier(\n        /*allowPrimitiveOverride*/ true,\n      );\n      this.scope.declareName(node.id.name, BIND_VAR, node.id.start);\n      this.semicolon();\n      return this.finishNode(node, \"DeclareVariable\");\n    }\n\n    flowParseDeclareModule(node: N.FlowDeclareModule): N.FlowDeclareModule {\n      this.scope.enter(SCOPE_OTHER);\n\n      if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        node.id = this.parseIdentifier();\n      }\n\n      const bodyNode = (node.body = this.startNode());\n      const body = (bodyNode.body = []);\n      this.expect(tt.braceL);\n      while (!this.match(tt.braceR)) {\n        let bodyNode = this.startNode();\n\n        if (this.match(tt._import)) {\n          this.next();\n          if (!this.isContextual(\"type\") && !this.match(tt._typeof)) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InvalidNonTypeImportInDeclareModule,\n            );\n          }\n          this.parseImport(bodyNode);\n        } else {\n          this.expectContextual(\n            \"declare\",\n            FlowErrors.UnsupportedStatementInDeclareModule,\n          );\n\n          bodyNode = this.flowParseDeclare(bodyNode, true);\n        }\n\n        body.push(bodyNode);\n      }\n\n      this.scope.exit();\n\n      this.expect(tt.braceR);\n\n      this.finishNode(bodyNode, \"BlockStatement\");\n\n      let kind = null;\n      let hasModuleExport = false;\n      body.forEach(bodyElement => {\n        if (isEsModuleType(bodyElement)) {\n          if (kind === \"CommonJS\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"ES\";\n        } else if (bodyElement.type === \"DeclareModuleExports\") {\n          if (hasModuleExport) {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.DuplicateDeclareModuleExports,\n            );\n          }\n          if (kind === \"ES\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"CommonJS\";\n          hasModuleExport = true;\n        }\n      });\n\n      node.kind = kind || \"CommonJS\";\n      return this.finishNode(node, \"DeclareModule\");\n    }\n\n    flowParseDeclareExportDeclaration(\n      node: N.FlowDeclareExportDeclaration,\n      insideModule: ?boolean,\n    ): N.FlowDeclareExportDeclaration {\n      this.expect(tt._export);\n\n      if (this.eat(tt._default)) {\n        if (this.match(tt._function) || this.match(tt._class)) {\n          // declare export default class ...\n          // declare export default function ...\n          node.declaration = this.flowParseDeclare(this.startNode());\n        } else {\n          // declare export default [type];\n          node.declaration = this.flowParseType();\n          this.semicolon();\n        }\n        node.default = true;\n\n        return this.finishNode(node, \"DeclareExportDeclaration\");\n      } else {\n        if (\n          this.match(tt._const) ||\n          this.isLet() ||\n          ((this.isContextual(\"type\") || this.isContextual(\"interface\")) &&\n            !insideModule)\n        ) {\n          const label = this.state.value;\n          const suggestion = exportSuggestions[label];\n          throw this.raise(\n            this.state.start,\n            FlowErrors.UnsupportedDeclareExportKind,\n            label,\n            suggestion,\n          );\n        }\n\n        if (\n          this.match(tt._var) || // declare export var ...\n          this.match(tt._function) || // declare export function ...\n          this.match(tt._class) || // declare export class ...\n          this.isContextual(\"opaque\") // declare export opaque ..\n        ) {\n          node.declaration = this.flowParseDeclare(this.startNode());\n          node.default = false;\n\n          return this.finishNode(node, \"DeclareExportDeclaration\");\n        } else if (\n          this.match(tt.star) || // declare export * from ''\n          this.match(tt.braceL) || // declare export {} ...\n          this.isContextual(\"interface\") || // declare export interface ...\n          this.isContextual(\"type\") || // declare export type ...\n          this.isContextual(\"opaque\") // declare export opaque type ...\n        ) {\n          node = this.parseExport(node);\n          if (node.type === \"ExportNamedDeclaration\") {\n            // flow does not support the ExportNamedDeclaration\n            // $FlowIgnore\n            node.type = \"ExportDeclaration\";\n            // $FlowFixMe\n            node.default = false;\n            delete node.exportKind;\n          }\n\n          // $FlowIgnore\n          node.type = \"Declare\" + node.type;\n\n          return node;\n        }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParseDeclareModuleExports(\n      node: N.FlowDeclareModuleExports,\n    ): N.FlowDeclareModuleExports {\n      this.next();\n      this.expectContextual(\"exports\");\n      node.typeAnnotation = this.flowParseTypeAnnotation();\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareModuleExports\");\n    }\n\n    flowParseDeclareTypeAlias(\n      node: N.FlowDeclareTypeAlias,\n    ): N.FlowDeclareTypeAlias {\n      this.next();\n      this.flowParseTypeAlias(node);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareTypeAlias\";\n      return node;\n    }\n\n    flowParseDeclareOpaqueType(\n      node: N.FlowDeclareOpaqueType,\n    ): N.FlowDeclareOpaqueType {\n      this.next();\n      this.flowParseOpaqueType(node, true);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareOpaqueType\";\n      return node;\n    }\n\n    flowParseDeclareInterface(\n      node: N.FlowDeclareInterface,\n    ): N.FlowDeclareInterface {\n      this.next();\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"DeclareInterface\");\n    }\n\n    // Interfaces\n\n    flowParseInterfaceish(\n      node: N.FlowDeclare,\n      isClass?: boolean = false,\n    ): void {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ !isClass,\n        /* declaration */ true,\n      );\n\n      this.scope.declareName(\n        node.id.name,\n        isClass ? BIND_FUNCTION : BIND_LEXICAL,\n        node.id.start,\n      );\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.extends = [];\n      node.implements = [];\n      node.mixins = [];\n\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (!isClass && this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"mixins\")) {\n        this.next();\n        do {\n          node.mixins.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        do {\n          node.implements.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: isClass,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: isClass,\n        allowInexact: false,\n      });\n    }\n\n    flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n      const node = this.startNode();\n\n      node.id = this.flowParseQualifiedTypeIdentifier();\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      } else {\n        node.typeParameters = null;\n      }\n\n      return this.finishNode(node, \"InterfaceExtends\");\n    }\n\n    flowParseInterface(node: N.FlowInterface): N.FlowInterface {\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"InterfaceDeclaration\");\n    }\n\n    checkNotUnderscore(word: string) {\n      if (word === \"_\") {\n        this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore);\n      }\n    }\n\n    checkReservedType(word: string, startLoc: number, declaration?: boolean) {\n      if (!reservedTypes.has(word)) return;\n\n      this.raise(\n        startLoc,\n        declaration\n          ? FlowErrors.AssignReservedType\n          : FlowErrors.UnexpectedReservedType,\n        word,\n      );\n    }\n\n    flowParseRestrictedIdentifier(\n      liberal?: boolean,\n      declaration?: boolean,\n    ): N.Identifier {\n      this.checkReservedType(this.state.value, this.state.start, declaration);\n      return this.parseIdentifier(liberal);\n    }\n\n    // Type aliases\n\n    flowParseTypeAlias(node: N.FlowTypeAlias): N.FlowTypeAlias {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ false,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.right = this.flowParseTypeInitialiser(tt.eq);\n      this.semicolon();\n\n      return this.finishNode(node, \"TypeAlias\");\n    }\n\n    flowParseOpaqueType(\n      node: N.FlowOpaqueType,\n      declare: boolean,\n    ): N.FlowOpaqueType {\n      this.expectContextual(\"type\");\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ true,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      // Parse the supertype\n      node.supertype = null;\n      if (this.match(tt.colon)) {\n        node.supertype = this.flowParseTypeInitialiser(tt.colon);\n      }\n\n      node.impltype = null;\n      if (!declare) {\n        node.impltype = this.flowParseTypeInitialiser(tt.eq);\n      }\n      this.semicolon();\n\n      return this.finishNode(node, \"OpaqueType\");\n    }\n\n    // Type annotations\n\n    flowParseTypeParameter(requireDefault?: boolean = false): N.TypeParameter {\n      const nodeStart = this.state.start;\n\n      const node = this.startNode();\n\n      const variance = this.flowParseVariance();\n\n      const ident = this.flowParseTypeAnnotatableIdentifier();\n      node.name = ident.name;\n      node.variance = variance;\n      node.bound = ident.typeAnnotation;\n\n      if (this.match(tt.eq)) {\n        this.eat(tt.eq);\n        node.default = this.flowParseType();\n      } else {\n        if (requireDefault) {\n          this.raise(nodeStart, FlowErrors.MissingTypeParamDefault);\n        }\n      }\n\n      return this.finishNode(node, \"TypeParameter\");\n    }\n\n    flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n      const oldInType = this.state.inType;\n      const node = this.startNode();\n      node.params = [];\n\n      this.state.inType = true;\n\n      // istanbul ignore else: this condition is already checked at all call sites\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      let defaultRequired = false;\n\n      do {\n        const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n        node.params.push(typeParameter);\n\n        if (typeParameter.default) {\n          defaultRequired = true;\n        }\n\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      } while (!this.isRelational(\">\"));\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterDeclaration\");\n    }\n\n    flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n      this.state.noAnonFunctionType = false;\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseType());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseTypeOrImplicitInstantiation());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseInterfaceType(): N.FlowInterfaceType {\n      const node = this.startNode();\n      this.expectContextual(\"interface\");\n\n      node.extends = [];\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: false,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: false,\n        allowInexact: false,\n      });\n\n      return this.finishNode(node, \"InterfaceTypeAnnotation\");\n    }\n\n    flowParseObjectPropertyKey(): N.Expression {\n      return this.match(tt.num) || this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(true);\n    }\n\n    flowParseObjectTypeIndexer(\n      node: N.FlowObjectTypeIndexer,\n      isStatic: boolean,\n      variance: ?N.FlowVariance,\n    ): N.FlowObjectTypeIndexer {\n      node.static = isStatic;\n\n      // Note: bracketL has already been consumed\n      if (this.lookahead().type === tt.colon) {\n        node.id = this.flowParseObjectPropertyKey();\n        node.key = this.flowParseTypeInitialiser();\n      } else {\n        node.id = null;\n        node.key = this.flowParseType();\n      }\n      this.expect(tt.bracketR);\n      node.value = this.flowParseTypeInitialiser();\n      node.variance = variance;\n\n      return this.finishNode(node, \"ObjectTypeIndexer\");\n    }\n\n    flowParseObjectTypeInternalSlot(\n      node: N.FlowObjectTypeInternalSlot,\n      isStatic: boolean,\n    ): N.FlowObjectTypeInternalSlot {\n      node.static = isStatic;\n      // Note: both bracketL have already been consumed\n      node.id = this.flowParseObjectPropertyKey();\n      this.expect(tt.bracketR);\n      this.expect(tt.bracketR);\n      if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n        node.method = true;\n        node.optional = false;\n        node.value = this.flowParseObjectTypeMethodish(\n          this.startNodeAt(node.start, node.loc.start),\n        );\n      } else {\n        node.method = false;\n        if (this.eat(tt.question)) {\n          node.optional = true;\n        }\n        node.value = this.flowParseTypeInitialiser();\n      }\n      return this.finishNode(node, \"ObjectTypeInternalSlot\");\n    }\n\n    flowParseObjectTypeMethodish(\n      node: N.FlowFunctionTypeAnnotation,\n    ): N.FlowFunctionTypeAnnotation {\n      node.params = [];\n      node.rest = null;\n      node.typeParameters = null;\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      this.expect(tt.parenL);\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        node.params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n\n      if (this.eat(tt.ellipsis)) {\n        node.rest = this.flowParseFunctionTypeParam();\n      }\n      this.expect(tt.parenR);\n      node.returnType = this.flowParseTypeInitialiser();\n\n      return this.finishNode(node, \"FunctionTypeAnnotation\");\n    }\n\n    flowParseObjectTypeCallProperty(\n      node: N.FlowObjectTypeCallProperty,\n      isStatic: boolean,\n    ): N.FlowObjectTypeCallProperty {\n      const valueNode = this.startNode();\n      node.static = isStatic;\n      node.value = this.flowParseObjectTypeMethodish(valueNode);\n      return this.finishNode(node, \"ObjectTypeCallProperty\");\n    }\n\n    flowParseObjectType({\n      allowStatic,\n      allowExact,\n      allowSpread,\n      allowProto,\n      allowInexact,\n    }: {\n      allowStatic: boolean,\n      allowExact: boolean,\n      allowSpread: boolean,\n      allowProto: boolean,\n      allowInexact: boolean,\n    }): N.FlowObjectTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n\n      const nodeStart = this.startNode();\n\n      nodeStart.callProperties = [];\n      nodeStart.properties = [];\n      nodeStart.indexers = [];\n      nodeStart.internalSlots = [];\n\n      let endDelim;\n      let exact;\n      let inexact = false;\n      if (allowExact && this.match(tt.braceBarL)) {\n        this.expect(tt.braceBarL);\n        endDelim = tt.braceBarR;\n        exact = true;\n      } else {\n        this.expect(tt.braceL);\n        endDelim = tt.braceR;\n        exact = false;\n      }\n\n      nodeStart.exact = exact;\n\n      while (!this.match(endDelim)) {\n        let isStatic = false;\n        let protoStart: ?number = null;\n        let inexactStart: ?number = null;\n        const node = this.startNode();\n\n        if (allowProto && this.isContextual(\"proto\")) {\n          const lookahead = this.lookahead();\n\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            protoStart = this.state.start;\n            allowStatic = false;\n          }\n        }\n\n        if (allowStatic && this.isContextual(\"static\")) {\n          const lookahead = this.lookahead();\n\n          // static is a valid identifier name\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            isStatic = true;\n          }\n        }\n\n        const variance = this.flowParseVariance();\n\n        if (this.eat(tt.bracketL)) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (this.eat(tt.bracketL)) {\n            if (variance) {\n              this.unexpected(variance.start);\n            }\n            nodeStart.internalSlots.push(\n              this.flowParseObjectTypeInternalSlot(node, isStatic),\n            );\n          } else {\n            nodeStart.indexers.push(\n              this.flowParseObjectTypeIndexer(node, isStatic, variance),\n            );\n          }\n        } else if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n          nodeStart.callProperties.push(\n            this.flowParseObjectTypeCallProperty(node, isStatic),\n          );\n        } else {\n          let kind = \"init\";\n\n          if (this.isContextual(\"get\") || this.isContextual(\"set\")) {\n            const lookahead = this.lookahead();\n            if (\n              lookahead.type === tt.name ||\n              lookahead.type === tt.string ||\n              lookahead.type === tt.num\n            ) {\n              kind = this.state.value;\n              this.next();\n            }\n          }\n\n          const propOrInexact = this.flowParseObjectTypeProperty(\n            node,\n            isStatic,\n            protoStart,\n            variance,\n            kind,\n            allowSpread,\n            allowInexact ?? !exact,\n          );\n\n          if (propOrInexact === null) {\n            inexact = true;\n            inexactStart = this.state.lastTokStart;\n          } else {\n            nodeStart.properties.push(propOrInexact);\n          }\n        }\n\n        this.flowObjectTypeSemicolon();\n\n        if (\n          inexactStart &&\n          !this.match(tt.braceR) &&\n          !this.match(tt.braceBarR)\n        ) {\n          this.raise(\n            inexactStart,\n            FlowErrors.UnexpectedExplicitInexactInObject,\n          );\n        }\n      }\n\n      this.expect(endDelim);\n\n      /* The inexact flag should only be added on ObjectTypeAnnotations that\n       * are not the body of an interface, declare interface, or declare class.\n       * Since spreads are only allowed in objec types, checking that is\n       * sufficient here.\n       */\n      if (allowSpread) {\n        nodeStart.inexact = inexact;\n      }\n\n      const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n      this.state.inType = oldInType;\n\n      return out;\n    }\n\n    flowParseObjectTypeProperty(\n      node: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n      isStatic: boolean,\n      protoStart: ?number,\n      variance: ?N.FlowVariance,\n      kind: string,\n      allowSpread: boolean,\n      allowInexact: boolean,\n    ): (N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty) | null {\n      if (this.eat(tt.ellipsis)) {\n        const isInexactToken =\n          this.match(tt.comma) ||\n          this.match(tt.semi) ||\n          this.match(tt.braceR) ||\n          this.match(tt.braceBarR);\n\n        if (isInexactToken) {\n          if (!allowSpread) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InexactInsideNonObject,\n            );\n          } else if (!allowInexact) {\n            this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact);\n          }\n          if (variance) {\n            this.raise(variance.start, FlowErrors.InexactVariance);\n          }\n\n          return null;\n        }\n\n        if (!allowSpread) {\n          this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType);\n        }\n        if (protoStart != null) {\n          this.unexpected(protoStart);\n        }\n        if (variance) {\n          this.raise(variance.start, FlowErrors.SpreadVariance);\n        }\n\n        node.argument = this.flowParseType();\n        return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n      } else {\n        node.key = this.flowParseObjectPropertyKey();\n        node.static = isStatic;\n        node.proto = protoStart != null;\n        node.kind = kind;\n\n        let optional = false;\n        if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n          // This is a method property\n          node.method = true;\n\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n\n          node.value = this.flowParseObjectTypeMethodish(\n            this.startNodeAt(node.start, node.loc.start),\n          );\n          if (kind === \"get\" || kind === \"set\") {\n            this.flowCheckGetterSetterParams(node);\n          }\n        } else {\n          if (kind !== \"init\") this.unexpected();\n\n          node.method = false;\n\n          if (this.eat(tt.question)) {\n            optional = true;\n          }\n          node.value = this.flowParseTypeInitialiser();\n          node.variance = variance;\n        }\n\n        node.optional = optional;\n\n        return this.finishNode(node, \"ObjectTypeProperty\");\n      }\n    }\n\n    // This is similar to checkGetterSetterParams, but as\n    // @babel/parser uses non estree properties we cannot reuse it here\n    flowCheckGetterSetterParams(\n      property: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n    ): void {\n      const paramCount = property.kind === \"get\" ? 0 : 1;\n      const start = property.start;\n      const length =\n        property.value.params.length + (property.value.rest ? 1 : 0);\n      if (length !== paramCount) {\n        if (property.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      }\n\n      if (property.kind === \"set\" && property.value.rest) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    flowObjectTypeSemicolon(): void {\n      if (\n        !this.eat(tt.semi) &&\n        !this.eat(tt.comma) &&\n        !this.match(tt.braceR) &&\n        !this.match(tt.braceBarR)\n      ) {\n        this.unexpected();\n      }\n    }\n\n    flowParseQualifiedTypeIdentifier(\n      startPos?: number,\n      startLoc?: Position,\n      id?: N.Identifier,\n    ): N.FlowQualifiedTypeIdentifier {\n      startPos = startPos || this.state.start;\n      startLoc = startLoc || this.state.startLoc;\n      let node = id || this.flowParseRestrictedIdentifier(true);\n\n      while (this.eat(tt.dot)) {\n        const node2 = this.startNodeAt(startPos, startLoc);\n        node2.qualification = node;\n        node2.id = this.flowParseRestrictedIdentifier(true);\n        node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n      }\n\n      return node;\n    }\n\n    flowParseGenericType(\n      startPos: number,\n      startLoc: Position,\n      id: N.Identifier,\n    ): N.FlowGenericTypeAnnotation {\n      const node = this.startNodeAt(startPos, startLoc);\n\n      node.typeParameters = null;\n      node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      }\n\n      return this.finishNode(node, \"GenericTypeAnnotation\");\n    }\n\n    flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n      const node = this.startNode();\n      this.expect(tt._typeof);\n      node.argument = this.flowParsePrimaryType();\n      return this.finishNode(node, \"TypeofTypeAnnotation\");\n    }\n\n    flowParseTupleType(): N.FlowTupleTypeAnnotation {\n      const node = this.startNode();\n      node.types = [];\n      this.expect(tt.bracketL);\n      // We allow trailing commas\n      while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n        node.types.push(this.flowParseType());\n        if (this.match(tt.bracketR)) break;\n        this.expect(tt.comma);\n      }\n      this.expect(tt.bracketR);\n      return this.finishNode(node, \"TupleTypeAnnotation\");\n    }\n\n    flowParseFunctionTypeParam(): N.FlowFunctionTypeParam {\n      let name = null;\n      let optional = false;\n      let typeAnnotation = null;\n      const node = this.startNode();\n      const lh = this.lookahead();\n      if (lh.type === tt.colon || lh.type === tt.question) {\n        name = this.parseIdentifier();\n        if (this.eat(tt.question)) {\n          optional = true;\n        }\n        typeAnnotation = this.flowParseTypeInitialiser();\n      } else {\n        typeAnnotation = this.flowParseType();\n      }\n      node.name = name;\n      node.optional = optional;\n      node.typeAnnotation = typeAnnotation;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    reinterpretTypeAsFunctionTypeParam(\n      type: N.FlowType,\n    ): N.FlowFunctionTypeParam {\n      const node = this.startNodeAt(type.start, type.loc.start);\n      node.name = null;\n      node.optional = false;\n      node.typeAnnotation = type;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    flowParseFunctionTypeParams(\n      params: N.FlowFunctionTypeParam[] = [],\n    ): { params: N.FlowFunctionTypeParam[], rest: ?N.FlowFunctionTypeParam } {\n      let rest: ?N.FlowFunctionTypeParam = null;\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n      if (this.eat(tt.ellipsis)) {\n        rest = this.flowParseFunctionTypeParam();\n      }\n      return { params, rest };\n    }\n\n    flowIdentToTypeAnnotation(\n      startPos: number,\n      startLoc: Position,\n      node: N.FlowTypeAnnotation,\n      id: N.Identifier,\n    ): N.FlowTypeAnnotation {\n      switch (id.name) {\n        case \"any\":\n          return this.finishNode(node, \"AnyTypeAnnotation\");\n\n        case \"bool\":\n        case \"boolean\":\n          return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n        case \"mixed\":\n          return this.finishNode(node, \"MixedTypeAnnotation\");\n\n        case \"empty\":\n          return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n        case \"number\":\n          return this.finishNode(node, \"NumberTypeAnnotation\");\n\n        case \"string\":\n          return this.finishNode(node, \"StringTypeAnnotation\");\n\n        case \"symbol\":\n          return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n        default:\n          this.checkNotUnderscore(id.name);\n          return this.flowParseGenericType(startPos, startLoc, id);\n      }\n    }\n\n    // The parsing of types roughly parallels the parsing of expressions, and\n    // primary types are kind of like primary expressions...they're the\n    // primitives with which other types are constructed.\n    flowParsePrimaryType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const node = this.startNode();\n      let tmp;\n      let type;\n      let isGroupedType = false;\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n      switch (this.state.type) {\n        case tt.name:\n          if (this.isContextual(\"interface\")) {\n            return this.flowParseInterfaceType();\n          }\n\n          return this.flowIdentToTypeAnnotation(\n            startPos,\n            startLoc,\n            node,\n            this.parseIdentifier(),\n          );\n\n        case tt.braceL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: false,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: true,\n          });\n\n        case tt.braceBarL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: true,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: false,\n          });\n\n        case tt.bracketL:\n          this.state.noAnonFunctionType = false;\n          type = this.flowParseTupleType();\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n          return type;\n\n        case tt.relational:\n          if (this.state.value === \"<\") {\n            node.typeParameters = this.flowParseTypeParameterDeclaration();\n            this.expect(tt.parenL);\n            tmp = this.flowParseFunctionTypeParams();\n            node.params = tmp.params;\n            node.rest = tmp.rest;\n            this.expect(tt.parenR);\n\n            this.expect(tt.arrow);\n\n            node.returnType = this.flowParseType();\n\n            return this.finishNode(node, \"FunctionTypeAnnotation\");\n          }\n          break;\n\n        case tt.parenL:\n          this.next();\n\n          // Check to see if this is actually a grouped type\n          if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n            if (this.match(tt.name)) {\n              const token = this.lookahead().type;\n              isGroupedType = token !== tt.question && token !== tt.colon;\n            } else {\n              isGroupedType = true;\n            }\n          }\n\n          if (isGroupedType) {\n            this.state.noAnonFunctionType = false;\n            type = this.flowParseType();\n            this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n            // A `,` or a `) =>` means this is an anonymous function type\n            if (\n              this.state.noAnonFunctionType ||\n              !(\n                this.match(tt.comma) ||\n                (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n              )\n            ) {\n              this.expect(tt.parenR);\n              return type;\n            } else {\n              // Eat a comma if there is one\n              this.eat(tt.comma);\n            }\n          }\n\n          if (type) {\n            tmp = this.flowParseFunctionTypeParams([\n              this.reinterpretTypeAsFunctionTypeParam(type),\n            ]);\n          } else {\n            tmp = this.flowParseFunctionTypeParams();\n          }\n\n          node.params = tmp.params;\n          node.rest = tmp.rest;\n\n          this.expect(tt.parenR);\n\n          this.expect(tt.arrow);\n\n          node.returnType = this.flowParseType();\n\n          node.typeParameters = null;\n\n          return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n        case tt.string:\n          return this.parseLiteral(\n            this.state.value,\n            \"StringLiteralTypeAnnotation\",\n          );\n\n        case tt._true:\n        case tt._false:\n          node.value = this.match(tt._true);\n          this.next();\n          return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            this.next();\n            if (this.match(tt.num)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"NumberLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            if (this.match(tt.bigint)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"BigIntLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            throw this.raise(\n              this.state.start,\n              FlowErrors.UnexpectedSubtractionOperand,\n            );\n          }\n\n          throw this.unexpected();\n        case tt.num:\n          return this.parseLiteral(\n            this.state.value,\n            \"NumberLiteralTypeAnnotation\",\n          );\n\n        case tt.bigint:\n          return this.parseLiteral(\n            this.state.value,\n            \"BigIntLiteralTypeAnnotation\",\n          );\n\n        case tt._void:\n          this.next();\n          return this.finishNode(node, \"VoidTypeAnnotation\");\n\n        case tt._null:\n          this.next();\n          return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n        case tt._this:\n          this.next();\n          return this.finishNode(node, \"ThisTypeAnnotation\");\n\n        case tt.star:\n          this.next();\n          return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n        default:\n          if (this.state.type.keyword === \"typeof\") {\n            return this.flowParseTypeofType();\n          } else if (this.state.type.keyword) {\n            const label = this.state.type.label;\n            this.next();\n            return super.createIdentifier(node, label);\n          }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParsePostfixType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start,\n        startLoc = this.state.startLoc;\n      let type = this.flowParsePrimaryType();\n      while (this.match(tt.bracketL) && !this.canInsertSemicolon()) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.elementType = type;\n        this.expect(tt.bracketL);\n        this.expect(tt.bracketR);\n        type = this.finishNode(node, \"ArrayTypeAnnotation\");\n      }\n      return type;\n    }\n\n    flowParsePrefixType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      if (this.eat(tt.question)) {\n        node.typeAnnotation = this.flowParsePrefixType();\n        return this.finishNode(node, \"NullableTypeAnnotation\");\n      } else {\n        return this.flowParsePostfixType();\n      }\n    }\n\n    flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n      const param = this.flowParsePrefixType();\n      if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n        // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n        const node = this.startNodeAt(param.start, param.loc.start);\n        node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n        node.rest = null;\n        node.returnType = this.flowParseType();\n        node.typeParameters = null;\n        return this.finishNode(node, \"FunctionTypeAnnotation\");\n      }\n      return param;\n    }\n\n    flowParseIntersectionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseAND);\n      const type = this.flowParseAnonFunctionWithoutParens();\n      node.types = [type];\n      while (this.eat(tt.bitwiseAND)) {\n        node.types.push(this.flowParseAnonFunctionWithoutParens());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"IntersectionTypeAnnotation\");\n    }\n\n    flowParseUnionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseOR);\n      const type = this.flowParseIntersectionType();\n      node.types = [type];\n      while (this.eat(tt.bitwiseOR)) {\n        node.types.push(this.flowParseIntersectionType());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"UnionTypeAnnotation\");\n    }\n\n    flowParseType(): N.FlowTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      const type = this.flowParseUnionType();\n      this.state.inType = oldInType;\n      // Ensure that a brace after a function generic type annotation is a\n      // statement, except in arrow functions (noAnonFunctionType)\n      this.state.exprAllowed =\n        this.state.exprAllowed || this.state.noAnonFunctionType;\n      return type;\n    }\n\n    flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n      if (this.state.type === tt.name && this.state.value === \"_\") {\n        const startPos = this.state.start;\n        const startLoc = this.state.startLoc;\n        const node = this.parseIdentifier();\n        return this.flowParseGenericType(startPos, startLoc, node);\n      } else {\n        return this.flowParseType();\n      }\n    }\n\n    flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      node.typeAnnotation = this.flowParseTypeInitialiser();\n      return this.finishNode(node, \"TypeAnnotation\");\n    }\n\n    flowParseTypeAnnotatableIdentifier(\n      allowPrimitiveOverride?: boolean,\n    ): N.Identifier {\n      const ident = allowPrimitiveOverride\n        ? this.parseIdentifier()\n        : this.flowParseRestrictedIdentifier();\n      if (this.match(tt.colon)) {\n        ident.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(ident);\n      }\n      return ident;\n    }\n\n    typeCastToParameter(node: N.Node): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    flowParseVariance(): ?N.FlowVariance {\n      let variance = null;\n      if (this.match(tt.plusMin)) {\n        variance = this.startNode();\n        if (this.state.value === \"+\") {\n          variance.kind = \"plus\";\n        } else {\n          variance.kind = \"minus\";\n        }\n        this.next();\n        this.finishNode(variance, \"Variance\");\n      }\n      return variance;\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpressionBody: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      if (allowExpressionBody) {\n        return this.forwardNoArrowParamsConversionAt(node, () =>\n          super.parseFunctionBody(node, true, isMethod),\n        );\n      }\n\n      return super.parseFunctionBody(node, false, isMethod);\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        const typeNode = this.startNode();\n\n        [\n          // $FlowFixMe (destructuring not supported yet)\n          typeNode.typeAnnotation,\n          // $FlowFixMe (destructuring not supported yet)\n          node.predicate,\n        ] = this.flowParseTypeAndPredicateInitialiser();\n\n        node.returnType = typeNode.typeAnnotation\n          ? this.finishNode(typeNode, \"TypeAnnotation\")\n          : null;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    // interfaces and enums\n    parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n      // strict mode handling of `interface` since it's a reserved word\n      if (\n        this.state.strict &&\n        this.match(tt.name) &&\n        this.state.value === \"interface\"\n      ) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseInterface(node);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      } else {\n        const stmt = super.parseStatement(context, topLevel);\n        // We will parse a flow pragma in any comment before the first statement.\n        if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n          this.flowPragma = null;\n        }\n        return stmt;\n      }\n    }\n\n    // declares, interfaces and type aliases\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.ExpressionStatement {\n      if (expr.type === \"Identifier\") {\n        if (expr.name === \"declare\") {\n          if (\n            this.match(tt._class) ||\n            this.match(tt.name) ||\n            this.match(tt._function) ||\n            this.match(tt._var) ||\n            this.match(tt._export)\n          ) {\n            return this.flowParseDeclare(node);\n          }\n        } else if (this.match(tt.name)) {\n          if (expr.name === \"interface\") {\n            return this.flowParseInterface(node);\n          } else if (expr.name === \"type\") {\n            return this.flowParseTypeAlias(node);\n          } else if (expr.name === \"opaque\") {\n            return this.flowParseOpaqueType(node, false);\n          }\n        }\n      }\n\n      return super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    shouldParseExportDeclaration(): boolean {\n      return (\n        this.isContextual(\"type\") ||\n        this.isContextual(\"interface\") ||\n        this.isContextual(\"opaque\") ||\n        (this.shouldParseEnums() && this.isContextual(\"enum\")) ||\n        super.shouldParseExportDeclaration()\n      );\n    }\n\n    isExportDefaultSpecifier(): boolean {\n      if (\n        this.match(tt.name) &&\n        (this.state.value === \"type\" ||\n          this.state.value === \"interface\" ||\n          this.state.value === \"opaque\" ||\n          (this.shouldParseEnums() && this.state.value === \"enum\"))\n      ) {\n        return false;\n      }\n\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      }\n      return super.parseExportDefaultExpression();\n    }\n\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      if (!this.match(tt.question)) return expr;\n\n      // only use the expensive \"tryParse\" method if there is a question mark\n      // and if we come from inside parens\n      if (refNeedsArrowPos) {\n        const result = this.tryParse(() =>\n          super.parseConditional(expr, noIn, startPos, startLoc),\n        );\n\n        if (!result.node) {\n          // $FlowIgnore\n          refNeedsArrowPos.start = result.error.pos || this.state.start;\n          return expr;\n        }\n\n        if (result.error) this.state = result.failState;\n        return result.node;\n      }\n\n      this.expect(tt.question);\n      const state = this.state.clone();\n      const originalNoArrowAt = this.state.noArrowAt;\n      const node = this.startNodeAt(startPos, startLoc);\n      let { consequent, failed } = this.tryParseConditionalConsequent();\n      let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n      if (failed || invalid.length > 0) {\n        const noArrowAt = [...originalNoArrowAt];\n\n        if (invalid.length > 0) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt;\n\n          for (let i = 0; i < invalid.length; i++) {\n            noArrowAt.push(invalid[i].start);\n          }\n\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n          [valid, invalid] = this.getArrowLikeExpressions(consequent);\n        }\n\n        if (failed && valid.length > 1) {\n          // if there are two or more possible correct ways of parsing, throw an\n          // error.\n          // e.g.   Source: a ? (b): c => (d): e => f\n          //      Result 1: a ? b : (c => ((d): e => f))\n          //      Result 2: a ? ((b): c => d) : (e => f)\n          this.raise(state.start, FlowErrors.AmbiguousConditionalArrow);\n        }\n\n        if (failed && valid.length === 1) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt.concat(valid[0].start);\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n        }\n      }\n\n      this.getArrowLikeExpressions(consequent, true);\n\n      this.state.noArrowAt = originalNoArrowAt;\n      this.expect(tt.colon);\n\n      node.test = expr;\n      node.consequent = consequent;\n      node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n        this.parseMaybeAssign(noIn, undefined, undefined, undefined),\n      );\n\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n\n    tryParseConditionalConsequent(): {\n      consequent: N.Expression,\n      failed: boolean,\n    } {\n      this.state.noArrowParamsConversionAt.push(this.state.start);\n\n      const consequent = this.parseMaybeAssign();\n      const failed = !this.match(tt.colon);\n\n      this.state.noArrowParamsConversionAt.pop();\n\n      return { consequent, failed };\n    }\n\n    // Given an expression, walks through out its arrow functions whose body is\n    // an expression and through out conditional expressions. It returns every\n    // function which has been parsed with a return type but could have been\n    // parenthesized expressions.\n    // These functions are separated into two arrays: one containing the ones\n    // whose parameters can be converted to assignable lists, one containing the\n    // others.\n    getArrowLikeExpressions(\n      node: N.Expression,\n      disallowInvalid?: boolean,\n    ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n      const stack = [node];\n      const arrows: N.ArrowFunctionExpression[] = [];\n\n      while (stack.length !== 0) {\n        const node = stack.pop();\n        if (node.type === \"ArrowFunctionExpression\") {\n          if (node.typeParameters || !node.returnType) {\n            // This is an arrow expression without ambiguity, so check its parameters\n            this.finishArrowValidation(node);\n          } else {\n            arrows.push(node);\n          }\n          stack.push(node.body);\n        } else if (node.type === \"ConditionalExpression\") {\n          stack.push(node.consequent);\n          stack.push(node.alternate);\n        }\n      }\n\n      if (disallowInvalid) {\n        arrows.forEach(node => this.finishArrowValidation(node));\n        return [arrows, []];\n      }\n\n      return partition(arrows, node =>\n        node.params.every(param => this.isAssignable(param, true)),\n      );\n    }\n\n    finishArrowValidation(node: N.ArrowFunctionExpression) {\n      this.toAssignableList(\n        // node.params is Expression[] instead of $ReadOnlyArray<Pattern> because it\n        // has not been converted yet.\n        ((node.params: any): N.Expression[]),\n        node.extra?.trailingComma,\n      );\n      // Enter scope, as checkParams defines bindings\n      this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n      // Use super's method to force the parameters to be checked\n      super.checkParams(node, false, true);\n      this.scope.exit();\n    }\n\n    forwardNoArrowParamsConversionAt<T>(node: N.Node, parse: () => T): T {\n      let result: T;\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        this.state.noArrowParamsConversionAt.push(this.state.start);\n        result = parse();\n        this.state.noArrowParamsConversionAt.pop();\n      } else {\n        result = parse();\n      }\n\n      return result;\n    }\n\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode = this.startNodeAt(startPos, startLoc);\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    assertModuleNodeAllowed(node: N.Node) {\n      if (\n        (node.type === \"ImportDeclaration\" &&\n          (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n        (node.type === \"ExportNamedDeclaration\" &&\n          node.exportKind === \"type\") ||\n        (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n      ) {\n        // Allow Flowtype imports and exports in all conditions because\n        // Flow itself does not care about 'sourceType'.\n        return;\n      }\n\n      super.assertModuleNodeAllowed(node);\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      const decl = super.parseExport(node);\n      if (\n        decl.type === \"ExportNamedDeclaration\" ||\n        decl.type === \"ExportAllDeclaration\"\n      ) {\n        decl.exportKind = decl.exportKind || \"value\";\n      }\n      return decl;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      if (this.isContextual(\"type\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n\n        if (this.match(tt.braceL)) {\n          // export type { foo, bar };\n          node.specifiers = this.parseExportSpecifiers();\n          this.parseExportFrom(node);\n          return null;\n        } else {\n          // export type Foo = Bar;\n          return this.flowParseTypeAlias(declarationNode);\n        }\n      } else if (this.isContextual(\"opaque\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n        // export opaque type Foo = Bar;\n        return this.flowParseOpaqueType(declarationNode, false);\n      } else if (this.isContextual(\"interface\")) {\n        node.exportKind = \"type\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseInterface(declarationNode);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        node.exportKind = \"value\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(declarationNode);\n      } else {\n        return super.parseExportDeclaration(node);\n      }\n    }\n\n    eatExportStar(node: N.Node): boolean {\n      if (super.eatExportStar(...arguments)) return true;\n\n      if (this.isContextual(\"type\") && this.lookahead().type === tt.star) {\n        node.exportKind = \"type\";\n        this.next();\n        this.next();\n        return true;\n      }\n\n      return false;\n    }\n\n    maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n      const pos = this.state.start;\n      const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n      if (hasNamespace && node.exportKind === \"type\") {\n        this.unexpected(pos);\n      }\n      return hasNamespace;\n    }\n\n    parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) {\n      super.parseClassId(node, isStatement, optionalId);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      const pos = this.state.start;\n      if (this.isContextual(\"declare\")) {\n        if (this.parseClassMemberFromModifier(classBody, member)) {\n          // 'declare' is a class element name\n          return;\n        }\n\n        member.declare = true;\n      }\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n      if (member.declare) {\n        if (\n          member.type !== \"ClassProperty\" &&\n          member.type !== \"ClassPrivateProperty\"\n        ) {\n          this.raise(pos, FlowErrors.DeclareClassElement);\n        } else if (member.value) {\n          this.raise(\n            member.value.start,\n            FlowErrors.DeclareClassFieldInitializer,\n          );\n        }\n      }\n    }\n\n    // ensure that inside flow types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n        return this.finishOp(tt.braceBarL, 2);\n      } else if (\n        this.state.inType &&\n        (code === charCodes.greaterThan || code === charCodes.lessThan)\n      ) {\n        return this.finishOp(tt.relational, 1);\n      } else if (isIteratorStart(code, next)) {\n        this.state.isIterator = true;\n        return super.readWord();\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    isAssignable(node: N.Node, isBinding?: boolean): boolean {\n      switch (node.type) {\n        case \"Identifier\":\n        case \"ObjectPattern\":\n        case \"ArrayPattern\":\n        case \"AssignmentPattern\":\n          return true;\n\n        case \"ObjectExpression\": {\n          const last = node.properties.length - 1;\n          return node.properties.every((prop, i) => {\n            return (\n              prop.type !== \"ObjectMethod\" &&\n              (i === last || prop.type === \"SpreadElement\") &&\n              this.isAssignable(prop)\n            );\n          });\n        }\n\n        case \"ObjectProperty\":\n          return this.isAssignable(node.value);\n\n        case \"SpreadElement\":\n          return this.isAssignable(node.argument);\n\n        case \"ArrayExpression\":\n          return node.elements.every(element => this.isAssignable(element));\n\n        case \"AssignmentExpression\":\n          return node.operator === \"=\";\n\n        case \"ParenthesizedExpression\":\n        case \"TypeCastExpression\":\n          return this.isAssignable(node.expression);\n\n        case \"MemberExpression\":\n        case \"OptionalMemberExpression\":\n          return !isBinding;\n\n        default:\n          return false;\n      }\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (node.type === \"TypeCastExpression\") {\n        return super.toAssignable(this.typeCastToParameter(node));\n      } else {\n        return super.toAssignable(node);\n      }\n    }\n\n    // turn type casts that we found in function parameter head into type annotated params\n    toAssignableList(\n      exprList: N.Expression[],\n      trailingCommaPos?: ?number,\n    ): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TypeCastExpression\") {\n          exprList[i] = this.typeCastToParameter(expr);\n        }\n      }\n      return super.toAssignableList(exprList, trailingCommaPos);\n    }\n\n    // this is a list of nodes, from something like a call expression, we need to filter the\n    // type casts that we've found that are illegal in this context\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (\n          expr &&\n          expr.type === \"TypeCastExpression\" &&\n          (!expr.extra || !expr.extra.parenthesized) &&\n          (exprList.length > 1 || !isParenthesizedExpr)\n        ) {\n          this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern);\n        }\n      }\n\n      return exprList;\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      if (expr.type !== \"TypeCastExpression\") {\n        return super.checkLVal(\n          expr,\n          bindingType,\n          checkClashes,\n          contextDescription,\n        );\n      }\n    }\n\n    // parse class property type annotations\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassPrivateProperty(node);\n    }\n\n    // determine whether or not we're currently in the position where a class method would appear\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    // determine whether or not we're currently in the position where a class property would appear\n    isClassProperty(): boolean {\n      return this.match(tt.colon) || super.isClassProperty();\n    }\n\n    isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n      return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n    }\n\n    // parse type parameters for class methods\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    // parse a the super class type parameters and implements\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n      }\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        const implemented: N.FlowClassImplements[] = (node.implements = []);\n        do {\n          const node = this.startNode();\n          node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n          if (this.isRelational(\"<\")) {\n            node.typeParameters = this.flowParseTypeParameterInstantiation();\n          } else {\n            node.typeParameters = null;\n          }\n          implemented.push(this.finishNode(node, \"ClassImplements\"));\n        } while (this.eat(tt.comma));\n      }\n    }\n\n    parsePropertyName(\n      node: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n      isPrivateNameAllowed: boolean,\n    ): N.Identifier {\n      const variance = this.flowParseVariance();\n      const key = super.parsePropertyName(node, isPrivateNameAllowed);\n      // $FlowIgnore (\"variance\" not defined on TsNamedTypeElementBase)\n      node.variance = variance;\n      return key;\n    }\n\n    // parse type parameters for object method shorthand\n    parseObjPropValue(\n      prop: N.ObjectMember,\n      startPos: ?number,\n      startLoc: ?Position,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n      containsEsc: boolean,\n    ): void {\n      if ((prop: $FlowFixMe).variance) {\n        this.unexpected((prop: $FlowFixMe).variance.start);\n      }\n      delete (prop: $FlowFixMe).variance;\n\n      let typeParameters;\n\n      // method shorthand\n      if (this.isRelational(\"<\")) {\n        typeParameters = this.flowParseTypeParameterDeclaration();\n        if (!this.match(tt.parenL)) this.unexpected();\n      }\n\n      super.parseObjPropValue(\n        prop,\n        startPos,\n        startLoc,\n        isGenerator,\n        isAsync,\n        isPattern,\n        refExpressionErrors,\n        containsEsc,\n      );\n\n      // add typeParameters if we found them\n      if (typeParameters) {\n        (prop.value || prop).typeParameters = typeParameters;\n      }\n    }\n\n    parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, FlowErrors.OptionalBindingPattern);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      if (this.match(tt.colon)) {\n        param.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      this.resetEndLocation(param);\n      return param;\n    }\n\n    parseMaybeDefault(\n      startPos?: ?number,\n      startLoc?: ?Position,\n      left?: ?N.Pattern,\n    ): N.Pattern {\n      const node = super.parseMaybeDefault(startPos, startLoc, left);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer);\n      }\n\n      return node;\n    }\n\n    shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n      if (!hasTypeImportKind(node)) {\n        return super.shouldParseDefaultImport(node);\n      }\n\n      return isMaybeDefaultImport(this.state);\n    }\n\n    parseImportSpecifierLocal(\n      node: N.ImportDeclaration,\n      specifier: N.Node,\n      type: string,\n      contextDescription: string,\n    ): void {\n      specifier.local = hasTypeImportKind(node)\n        ? this.flowParseRestrictedIdentifier(\n            /* liberal */ true,\n            /* declaration */ true,\n          )\n        : this.parseIdentifier();\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        contextDescription,\n      );\n      node.specifiers.push(this.finishNode(specifier, type));\n    }\n\n    // parse typeof and type imports\n    maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n      node.importKind = \"value\";\n\n      let kind = null;\n      if (this.match(tt._typeof)) {\n        kind = \"typeof\";\n      } else if (this.isContextual(\"type\")) {\n        kind = \"type\";\n      }\n      if (kind) {\n        const lh = this.lookahead();\n\n        // import type * is not allowed\n        if (kind === \"type\" && lh.type === tt.star) {\n          this.unexpected(lh.start);\n        }\n\n        if (\n          isMaybeDefaultImport(lh) ||\n          lh.type === tt.braceL ||\n          lh.type === tt.star\n        ) {\n          this.next();\n          node.importKind = kind;\n        }\n      }\n\n      return super.maybeParseDefaultImportSpecifier(node);\n    }\n\n    // parse import-type/typeof shorthand\n    parseImportSpecifier(node: N.ImportDeclaration): void {\n      const specifier = this.startNode();\n      const firstIdentLoc = this.state.start;\n      const firstIdent = this.parseIdentifier(true);\n\n      let specifierTypeKind = null;\n      if (firstIdent.name === \"type\") {\n        specifierTypeKind = \"type\";\n      } else if (firstIdent.name === \"typeof\") {\n        specifierTypeKind = \"typeof\";\n      }\n\n      let isBinding = false;\n      if (this.isContextual(\"as\") && !this.isLookaheadContextual(\"as\")) {\n        const as_ident = this.parseIdentifier(true);\n        if (\n          specifierTypeKind !== null &&\n          !this.match(tt.name) &&\n          !this.state.type.keyword\n        ) {\n          // `import {type as ,` or `import {type as }`\n          specifier.imported = as_ident;\n          specifier.importKind = specifierTypeKind;\n          specifier.local = as_ident.__clone();\n        } else {\n          // `import {type as foo`\n          specifier.imported = firstIdent;\n          specifier.importKind = null;\n          specifier.local = this.parseIdentifier();\n        }\n      } else if (\n        specifierTypeKind !== null &&\n        (this.match(tt.name) || this.state.type.keyword)\n      ) {\n        // `import {type foo`\n        specifier.imported = this.parseIdentifier(true);\n        specifier.importKind = specifierTypeKind;\n        if (this.eatContextual(\"as\")) {\n          specifier.local = this.parseIdentifier();\n        } else {\n          isBinding = true;\n          specifier.local = specifier.imported.__clone();\n        }\n      } else {\n        isBinding = true;\n        specifier.imported = firstIdent;\n        specifier.importKind = null;\n        specifier.local = specifier.imported.__clone();\n      }\n\n      const nodeIsTypeImport = hasTypeImportKind(node);\n      const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n      if (nodeIsTypeImport && specifierIsTypeImport) {\n        this.raise(\n          firstIdentLoc,\n          FlowErrors.ImportTypeShorthandOnlyInPureImport,\n        );\n      }\n\n      if (nodeIsTypeImport || specifierIsTypeImport) {\n        this.checkReservedType(\n          specifier.local.name,\n          specifier.local.start,\n          /* declaration */ true,\n        );\n      }\n\n      if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) {\n        this.checkReservedWord(\n          specifier.local.name,\n          specifier.start,\n          true,\n          true,\n        );\n      }\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        \"import specifier\",\n      );\n      node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n    }\n\n    // parse function type parameters - function foo<T>() {}\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      // $FlowFixMe\n      const kind = node.kind;\n      if (kind !== \"get\" && kind !== \"set\" && this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // parse flow type annotations on variable declarator heads - let foo: string = bar\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (this.match(tt.colon)) {\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n        this.state.noAnonFunctionType = true;\n        node.returnType = this.flowParseTypeAnnotation();\n        this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      }\n\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    // todo description\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    // We need to support type parameter declarations for arrow functions. This\n    // is tricky. There are three situations we need to handle\n    //\n    // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n    //    fails, we'll try an arrow function. If that fails, we'll throw the JSX\n    //    error.\n    // 2. This is an arrow function. We'll parse the type parameter declaration,\n    //    parse the rest, make sure the rest is an arrow function, and go from\n    //    there\n    // 3. This is neither. Just call the super method\n    parseMaybeAssign(\n      noIn?: ?boolean,\n      refExpressionErrors?: ?ExpressionErrors,\n      afterLeftParse?: Function,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      let state = null;\n\n      let jsx;\n\n      if (\n        this.hasPlugin(\"jsx\") &&\n        (this.match(tt.jsxTagStart) || this.isRelational(\"<\"))\n      ) {\n        state = this.state.clone();\n\n        jsx = this.tryParse(\n          () =>\n            super.parseMaybeAssign(\n              noIn,\n              refExpressionErrors,\n              afterLeftParse,\n              refNeedsArrowPos,\n            ),\n          state,\n        );\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === tc.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === tc.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if ((jsx && jsx.error) || this.isRelational(\"<\")) {\n        state = state || this.state.clone();\n\n        let typeParameters;\n\n        const arrow = this.tryParse(() => {\n          typeParameters = this.flowParseTypeParameterDeclaration();\n\n          const arrowExpression = this.forwardNoArrowParamsConversionAt(\n            typeParameters,\n            () =>\n              super.parseMaybeAssign(\n                noIn,\n                refExpressionErrors,\n                afterLeftParse,\n                refNeedsArrowPos,\n              ),\n          );\n          arrowExpression.typeParameters = typeParameters;\n          this.resetStartLocationFromNode(arrowExpression, typeParameters);\n\n          return arrowExpression;\n        }, state);\n\n        const arrowExpression: ?N.ArrowFunctionExpression =\n          arrow.node && arrow.node.type === \"ArrowFunctionExpression\"\n            ? arrow.node\n            : null;\n\n        if (!arrow.error && arrowExpression) return arrowExpression;\n\n        // If we are here, both JSX and Flow parsing attemps failed.\n        // Give the precedence to the JSX error, except if JSX had an\n        // unrecoverable error while Flow didn't.\n        // If the error is recoverable, we can only re-report it if there is\n        // a node we can return.\n\n        if (jsx && jsx.node) {\n          /*:: invariant(jsx.failState) */\n          this.state = jsx.failState;\n          return jsx.node;\n        }\n\n        if (arrowExpression) {\n          /*:: invariant(arrow.failState) */\n          this.state = arrow.failState;\n          return arrowExpression;\n        }\n\n        if (jsx && jsx.thrown) throw jsx.error;\n        if (arrow.thrown) throw arrow.error;\n\n        /*:: invariant(typeParameters) */\n        throw this.raise(\n          typeParameters.start,\n          FlowErrors.UnexpectedTokenAfterTypeParameter,\n        );\n      }\n\n      return super.parseMaybeAssign(\n        noIn,\n        refExpressionErrors,\n        afterLeftParse,\n        refNeedsArrowPos,\n      );\n    }\n\n    // handle return types for arrow functions\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const result = this.tryParse(() => {\n          const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n          this.state.noAnonFunctionType = true;\n\n          const typeNode = this.startNode();\n\n          [\n            // $FlowFixMe (destructuring not supported yet)\n            typeNode.typeAnnotation,\n            // $FlowFixMe (destructuring not supported yet)\n            node.predicate,\n          ] = this.flowParseTypeAndPredicateInitialiser();\n\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n          if (this.canInsertSemicolon()) this.unexpected();\n          if (!this.match(tt.arrow)) this.unexpected();\n\n          return typeNode;\n        });\n\n        if (result.thrown) return null;\n        /*:: invariant(result.node) */\n\n        if (result.error) this.state = result.failState;\n\n        // assign after it is clear it is an arrow\n        node.returnType = result.node.typeAnnotation\n          ? this.finishNode(result.node, \"TypeAnnotation\")\n          : null;\n      }\n\n      return super.parseArrow(node);\n    }\n\n    shouldParseArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    setArrowFunctionParameters(\n      node: N.ArrowFunctionExpression,\n      params: N.Expression[],\n    ): void {\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        node.params = params;\n      } else {\n        super.setArrowFunctionParameters(node, params);\n      }\n    }\n\n    checkParams(\n      node: N.Function,\n      allowDuplicates: boolean,\n      isArrowFunction: ?boolean,\n    ): void {\n      if (\n        isArrowFunction &&\n        this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n      ) {\n        return;\n      }\n\n      return super.checkParams(...arguments);\n    }\n\n    parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n      return super.parseParenAndDistinguishExpression(\n        canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n      );\n    }\n\n    parseSubscripts(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls?: ?boolean,\n    ): N.Expression {\n      if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.state.noArrowAt.indexOf(startPos) !== -1\n      ) {\n        this.next();\n\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        base = this.finishNode(node, \"CallExpression\");\n      } else if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.isRelational(\"<\")\n      ) {\n        const state = this.state.clone();\n        const arrow = this.tryParse(\n          abort =>\n            this.parseAsyncArrowWithTypeParameters(startPos, startLoc) ||\n            abort(),\n          state,\n        );\n\n        if (!arrow.error && !arrow.aborted) return arrow.node;\n\n        const result = this.tryParse(\n          () => super.parseSubscripts(base, startPos, startLoc, noCalls),\n          state,\n        );\n\n        if (result.node && !result.error) return result.node;\n\n        if (arrow.node) {\n          this.state = arrow.failState;\n          return arrow.node;\n        }\n\n        if (result.node) {\n          this.state = result.failState;\n          return result.node;\n        }\n\n        throw arrow.error || result.error;\n      }\n\n      return super.parseSubscripts(base, startPos, startLoc, noCalls);\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      subscriptState: N.ParseSubscriptState,\n    ): N.Expression {\n      if (this.match(tt.questionDot) && this.isLookaheadRelational(\"<\")) {\n        subscriptState.optionalChainMember = true;\n        if (noCalls) {\n          subscriptState.stop = true;\n          return base;\n        }\n        this.next();\n        const node: N.OptionalCallExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.callee = base;\n        node.typeArguments = this.flowParseTypeParameterInstantiation();\n        this.expect(tt.parenL);\n        // $FlowFixMe\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        node.optional = true;\n        return this.finishCallExpression(node, /* optional */ true);\n      } else if (\n        !noCalls &&\n        this.shouldParseTypes() &&\n        this.isRelational(\"<\")\n      ) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n\n        const result = this.tryParse(() => {\n          node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n          this.expect(tt.parenL);\n          node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n          if (subscriptState.optionalChainMember) node.optional = false;\n          return this.finishCallExpression(\n            node,\n            subscriptState.optionalChainMember,\n          );\n        });\n\n        if (result.node) {\n          if (result.error) this.state = result.failState;\n          return result.node;\n        }\n      }\n\n      return super.parseSubscript(\n        base,\n        startPos,\n        startLoc,\n        noCalls,\n        subscriptState,\n      );\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      let targs = null;\n      if (this.shouldParseTypes() && this.isRelational(\"<\")) {\n        targs = this.tryParse(() =>\n          this.flowParseTypeParameterInstantiationCallOrNew(),\n        ).node;\n      }\n      node.typeArguments = targs;\n\n      super.parseNewArguments(node);\n    }\n\n    parseAsyncArrowWithTypeParameters(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      const node = this.startNodeAt(startPos, startLoc);\n      this.parseFunctionParams(node);\n      if (!this.parseArrow(node)) return;\n      return this.parseArrowExpression(\n        node,\n        /* params */ undefined,\n        /* isAsync */ true,\n      );\n    }\n\n    readToken_mult_modulo(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.asterisk &&\n        next === charCodes.slash &&\n        this.state.hasFlowComment\n      ) {\n        this.state.hasFlowComment = false;\n        this.state.pos += 2;\n        this.nextToken();\n        return;\n      }\n\n      super.readToken_mult_modulo(code);\n    }\n\n    readToken_pipe_amp(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.verticalBar &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        // '|}'\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      super.readToken_pipe_amp(code);\n    }\n\n    parseTopLevel(file: N.File, program: N.Program): N.File {\n      const fileNode = super.parseTopLevel(file, program);\n      if (this.state.hasFlowComment) {\n        this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment);\n      }\n      return fileNode;\n    }\n\n    skipBlockComment(): void {\n      if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n        if (this.state.hasFlowComment) {\n          this.unexpected(null, FlowErrors.NestedFlowComment);\n        }\n        this.hasFlowCommentCompletion();\n        this.state.pos += this.skipFlowComment();\n        this.state.hasFlowComment = true;\n        return;\n      }\n\n      if (this.state.hasFlowComment) {\n        const end = this.input.indexOf(\"*-/\", (this.state.pos += 2));\n        if (end === -1) {\n          throw this.raise(this.state.pos - 2, Errors.UnterminatedComment);\n        }\n        this.state.pos = end + 3;\n        return;\n      }\n\n      super.skipBlockComment();\n    }\n\n    skipFlowComment(): number | boolean {\n      const { pos } = this.state;\n      let shiftToFirstNonWhiteSpace = 2;\n      while (\n        [charCodes.space, charCodes.tab].includes(\n          this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n        )\n      ) {\n        shiftToFirstNonWhiteSpace++;\n      }\n\n      const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n      const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n      if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n        return shiftToFirstNonWhiteSpace + 2; // check for /*::\n      }\n      if (\n        this.input.slice(\n          shiftToFirstNonWhiteSpace + pos,\n          shiftToFirstNonWhiteSpace + pos + 12,\n        ) === \"flow-include\"\n      ) {\n        return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n      }\n      if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n        return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n      }\n      return false;\n    }\n\n    hasFlowCommentCompletion(): void {\n      const end = this.input.indexOf(\"*/\", this.state.pos);\n      if (end === -1) {\n        throw this.raise(this.state.pos, Errors.UnterminatedComment);\n      }\n    }\n\n    // Flow enum parsing\n\n    flowEnumErrorBooleanMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumBooleanMemberNotInitialized,\n        memberName,\n        enumName,\n      );\n    }\n\n    flowEnumErrorInvalidMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      const suggestion = memberName[0].toUpperCase() + memberName.slice(1);\n      this.raise(\n        pos,\n        FlowErrors.EnumInvalidMemberName,\n        memberName,\n        suggestion,\n        enumName,\n      );\n    }\n\n    flowEnumErrorDuplicateMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName);\n    }\n\n    flowEnumErrorInconsistentMemberValues(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName);\n    }\n\n    flowEnumErrorInvalidExplicitType(\n      pos: number,\n      {\n        enumName,\n        suppliedType,\n      }: { enumName: string, suppliedType: null | string },\n    ) {\n      return this.raise(\n        pos,\n        suppliedType === null\n          ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied\n          : FlowErrors.EnumInvalidExplicitType,\n        enumName,\n        suppliedType,\n      );\n    }\n\n    flowEnumErrorInvalidMemberInitializer(\n      pos: number,\n      { enumName, explicitType, memberName }: EnumContext,\n    ) {\n      let message = null;\n      switch (explicitType) {\n        case \"boolean\":\n        case \"number\":\n        case \"string\":\n          message = FlowErrors.EnumInvalidMemberInitializerPrimaryType;\n          break;\n        case \"symbol\":\n          message = FlowErrors.EnumInvalidMemberInitializerSymbolType;\n          break;\n        default:\n          // null\n          message = FlowErrors.EnumInvalidMemberInitializerUnknownType;\n      }\n      return this.raise(pos, message, enumName, memberName, explicitType);\n    }\n\n    flowEnumErrorNumberMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumNumberMemberNotInitialized,\n        enumName,\n        memberName,\n      );\n    }\n\n    flowEnumErrorStringMemberInconsistentlyInitailized(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumStringMemberInconsistentlyInitailized,\n        enumName,\n      );\n    }\n\n    flowEnumMemberInit(): EnumMemberInit {\n      const startPos = this.state.start;\n      const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n      switch (this.state.type) {\n        case tt.num: {\n          const literal = this.parseLiteral(this.state.value, \"NumericLiteral\");\n          if (endOfInit()) {\n            return { type: \"number\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt.string: {\n          const literal = this.parseLiteral(this.state.value, \"StringLiteral\");\n          if (endOfInit()) {\n            return { type: \"string\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt._true:\n        case tt._false: {\n          const literal = this.parseBooleanLiteral();\n          if (endOfInit()) {\n            return {\n              type: \"boolean\",\n              pos: literal.start,\n              value: literal,\n            };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        default:\n          return { type: \"invalid\", pos: startPos };\n      }\n    }\n\n    flowEnumMemberRaw(): { id: N.Node, init: EnumMemberInit } {\n      const pos = this.state.start;\n      const id = this.parseIdentifier(true);\n      const init = this.eat(tt.eq)\n        ? this.flowEnumMemberInit()\n        : { type: \"none\", pos };\n      return { id, init };\n    }\n\n    flowEnumCheckExplicitTypeMismatch(\n      pos: number,\n      context: EnumContext,\n      expectedType: EnumExplicitType,\n    ): void {\n      const { explicitType } = context;\n      if (explicitType === null) {\n        return;\n      }\n      if (explicitType !== expectedType) {\n        this.flowEnumErrorInvalidMemberInitializer(pos, context);\n      }\n    }\n\n    flowEnumMembers({\n      enumName,\n      explicitType,\n    }: {\n      enumName: string,\n      explicitType: EnumExplicitType,\n    }): {|\n      booleanMembers: Array<N.Node>,\n      numberMembers: Array<N.Node>,\n      stringMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n    |} {\n      const seenNames = new Set();\n      const members = {\n        booleanMembers: [],\n        numberMembers: [],\n        stringMembers: [],\n        defaultedMembers: [],\n      };\n      while (!this.match(tt.braceR)) {\n        const memberNode = this.startNode();\n        const { id, init } = this.flowEnumMemberRaw();\n        const memberName = id.name;\n        if (memberName === \"\") {\n          continue;\n        }\n        if (/^[a-z]/.test(memberName)) {\n          this.flowEnumErrorInvalidMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        if (seenNames.has(memberName)) {\n          this.flowEnumErrorDuplicateMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        seenNames.add(memberName);\n        const context = { enumName, explicitType, memberName };\n        memberNode.id = id;\n        switch (init.type) {\n          case \"boolean\": {\n            this.flowEnumCheckExplicitTypeMismatch(\n              init.pos,\n              context,\n              \"boolean\",\n            );\n            memberNode.init = init.value;\n            members.booleanMembers.push(\n              this.finishNode(memberNode, \"EnumBooleanMember\"),\n            );\n            break;\n          }\n          case \"number\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"number\");\n            memberNode.init = init.value;\n            members.numberMembers.push(\n              this.finishNode(memberNode, \"EnumNumberMember\"),\n            );\n            break;\n          }\n          case \"string\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"string\");\n            memberNode.init = init.value;\n            members.stringMembers.push(\n              this.finishNode(memberNode, \"EnumStringMember\"),\n            );\n            break;\n          }\n          case \"invalid\": {\n            throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context);\n          }\n          case \"none\": {\n            switch (explicitType) {\n              case \"boolean\":\n                this.flowEnumErrorBooleanMemberNotInitialized(\n                  init.pos,\n                  context,\n                );\n                break;\n              case \"number\":\n                this.flowEnumErrorNumberMemberNotInitialized(init.pos, context);\n                break;\n              default:\n                members.defaultedMembers.push(\n                  this.finishNode(memberNode, \"EnumDefaultedMember\"),\n                );\n            }\n          }\n        }\n\n        if (!this.match(tt.braceR)) {\n          this.expect(tt.comma);\n        }\n      }\n      return members;\n    }\n\n    flowEnumStringMembers(\n      initializedMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n      { enumName }: { enumName: string },\n    ): Array<N.Node> {\n      if (initializedMembers.length === 0) {\n        return defaultedMembers;\n      } else if (defaultedMembers.length === 0) {\n        return initializedMembers;\n      } else if (defaultedMembers.length > initializedMembers.length) {\n        for (const member of initializedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return defaultedMembers;\n      } else {\n        for (const member of defaultedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return initializedMembers;\n      }\n    }\n\n    flowEnumParseExplicitType({\n      enumName,\n    }: {\n      enumName: string,\n    }): EnumExplicitType {\n      if (this.eatContextual(\"of\")) {\n        if (!this.match(tt.name)) {\n          throw this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: null,\n          });\n        }\n\n        const { value } = this.state;\n        this.next();\n\n        if (\n          value !== \"boolean\" &&\n          value !== \"number\" &&\n          value !== \"string\" &&\n          value !== \"symbol\"\n        ) {\n          this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: value,\n          });\n        }\n\n        return value;\n      }\n      return null;\n    }\n\n    flowEnumBody(node: N.Node, { enumName, nameLoc }): N.Node {\n      const explicitType = this.flowEnumParseExplicitType({ enumName });\n      this.expect(tt.braceL);\n      const members = this.flowEnumMembers({ enumName, explicitType });\n\n      switch (explicitType) {\n        case \"boolean\":\n          node.explicitType = true;\n          node.members = members.booleanMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumBooleanBody\");\n        case \"number\":\n          node.explicitType = true;\n          node.members = members.numberMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumNumberBody\");\n        case \"string\":\n          node.explicitType = true;\n          node.members = this.flowEnumStringMembers(\n            members.stringMembers,\n            members.defaultedMembers,\n            { enumName },\n          );\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumStringBody\");\n        case \"symbol\":\n          node.members = members.defaultedMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumSymbolBody\");\n        default: {\n          // `explicitType` is `null`\n          const empty = () => {\n            node.members = [];\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          };\n          node.explicitType = false;\n\n          const boolsLen = members.booleanMembers.length;\n          const numsLen = members.numberMembers.length;\n          const strsLen = members.stringMembers.length;\n          const defaultedLen = members.defaultedMembers.length;\n\n          if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n            return empty();\n          } else if (!boolsLen && !numsLen) {\n            node.members = this.flowEnumStringMembers(\n              members.stringMembers,\n              members.defaultedMembers,\n              { enumName },\n            );\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorBooleanMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.booleanMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumBooleanBody\");\n          } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorNumberMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.numberMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumNumberBody\");\n          } else {\n            this.flowEnumErrorInconsistentMemberValues(nameLoc, { enumName });\n            return empty();\n          }\n        }\n      }\n    }\n\n    flowParseEnumDeclaration(node: N.Node): N.Node {\n      const id = this.parseIdentifier();\n      node.id = id;\n      node.body = this.flowEnumBody(this.startNode(), {\n        enumName: id.name,\n        nameLoc: id.start,\n      });\n      return this.finishNode(node, \"EnumDeclaration\");\n    }\n  };\n","// @flow\n\nconst entities: { [name: string]: string } = {\n  quot: \"\\u0022\",\n  amp: \"&\",\n  apos: \"\\u0027\",\n  lt: \"<\",\n  gt: \">\",\n  nbsp: \"\\u00A0\",\n  iexcl: \"\\u00A1\",\n  cent: \"\\u00A2\",\n  pound: \"\\u00A3\",\n  curren: \"\\u00A4\",\n  yen: \"\\u00A5\",\n  brvbar: \"\\u00A6\",\n  sect: \"\\u00A7\",\n  uml: \"\\u00A8\",\n  copy: \"\\u00A9\",\n  ordf: \"\\u00AA\",\n  laquo: \"\\u00AB\",\n  not: \"\\u00AC\",\n  shy: \"\\u00AD\",\n  reg: \"\\u00AE\",\n  macr: \"\\u00AF\",\n  deg: \"\\u00B0\",\n  plusmn: \"\\u00B1\",\n  sup2: \"\\u00B2\",\n  sup3: \"\\u00B3\",\n  acute: \"\\u00B4\",\n  micro: \"\\u00B5\",\n  para: \"\\u00B6\",\n  middot: \"\\u00B7\",\n  cedil: \"\\u00B8\",\n  sup1: \"\\u00B9\",\n  ordm: \"\\u00BA\",\n  raquo: \"\\u00BB\",\n  frac14: \"\\u00BC\",\n  frac12: \"\\u00BD\",\n  frac34: \"\\u00BE\",\n  iquest: \"\\u00BF\",\n  Agrave: \"\\u00C0\",\n  Aacute: \"\\u00C1\",\n  Acirc: \"\\u00C2\",\n  Atilde: \"\\u00C3\",\n  Auml: \"\\u00C4\",\n  Aring: \"\\u00C5\",\n  AElig: \"\\u00C6\",\n  Ccedil: \"\\u00C7\",\n  Egrave: \"\\u00C8\",\n  Eacute: \"\\u00C9\",\n  Ecirc: \"\\u00CA\",\n  Euml: \"\\u00CB\",\n  Igrave: \"\\u00CC\",\n  Iacute: \"\\u00CD\",\n  Icirc: \"\\u00CE\",\n  Iuml: \"\\u00CF\",\n  ETH: \"\\u00D0\",\n  Ntilde: \"\\u00D1\",\n  Ograve: \"\\u00D2\",\n  Oacute: \"\\u00D3\",\n  Ocirc: \"\\u00D4\",\n  Otilde: \"\\u00D5\",\n  Ouml: \"\\u00D6\",\n  times: \"\\u00D7\",\n  Oslash: \"\\u00D8\",\n  Ugrave: \"\\u00D9\",\n  Uacute: \"\\u00DA\",\n  Ucirc: \"\\u00DB\",\n  Uuml: \"\\u00DC\",\n  Yacute: \"\\u00DD\",\n  THORN: \"\\u00DE\",\n  szlig: \"\\u00DF\",\n  agrave: \"\\u00E0\",\n  aacute: \"\\u00E1\",\n  acirc: \"\\u00E2\",\n  atilde: \"\\u00E3\",\n  auml: \"\\u00E4\",\n  aring: \"\\u00E5\",\n  aelig: \"\\u00E6\",\n  ccedil: \"\\u00E7\",\n  egrave: \"\\u00E8\",\n  eacute: \"\\u00E9\",\n  ecirc: \"\\u00EA\",\n  euml: \"\\u00EB\",\n  igrave: \"\\u00EC\",\n  iacute: \"\\u00ED\",\n  icirc: \"\\u00EE\",\n  iuml: \"\\u00EF\",\n  eth: \"\\u00F0\",\n  ntilde: \"\\u00F1\",\n  ograve: \"\\u00F2\",\n  oacute: \"\\u00F3\",\n  ocirc: \"\\u00F4\",\n  otilde: \"\\u00F5\",\n  ouml: \"\\u00F6\",\n  divide: \"\\u00F7\",\n  oslash: \"\\u00F8\",\n  ugrave: \"\\u00F9\",\n  uacute: \"\\u00FA\",\n  ucirc: \"\\u00FB\",\n  uuml: \"\\u00FC\",\n  yacute: \"\\u00FD\",\n  thorn: \"\\u00FE\",\n  yuml: \"\\u00FF\",\n  OElig: \"\\u0152\",\n  oelig: \"\\u0153\",\n  Scaron: \"\\u0160\",\n  scaron: \"\\u0161\",\n  Yuml: \"\\u0178\",\n  fnof: \"\\u0192\",\n  circ: \"\\u02C6\",\n  tilde: \"\\u02DC\",\n  Alpha: \"\\u0391\",\n  Beta: \"\\u0392\",\n  Gamma: \"\\u0393\",\n  Delta: \"\\u0394\",\n  Epsilon: \"\\u0395\",\n  Zeta: \"\\u0396\",\n  Eta: \"\\u0397\",\n  Theta: \"\\u0398\",\n  Iota: \"\\u0399\",\n  Kappa: \"\\u039A\",\n  Lambda: \"\\u039B\",\n  Mu: \"\\u039C\",\n  Nu: \"\\u039D\",\n  Xi: \"\\u039E\",\n  Omicron: \"\\u039F\",\n  Pi: \"\\u03A0\",\n  Rho: \"\\u03A1\",\n  Sigma: \"\\u03A3\",\n  Tau: \"\\u03A4\",\n  Upsilon: \"\\u03A5\",\n  Phi: \"\\u03A6\",\n  Chi: \"\\u03A7\",\n  Psi: \"\\u03A8\",\n  Omega: \"\\u03A9\",\n  alpha: \"\\u03B1\",\n  beta: \"\\u03B2\",\n  gamma: \"\\u03B3\",\n  delta: \"\\u03B4\",\n  epsilon: \"\\u03B5\",\n  zeta: \"\\u03B6\",\n  eta: \"\\u03B7\",\n  theta: \"\\u03B8\",\n  iota: \"\\u03B9\",\n  kappa: \"\\u03BA\",\n  lambda: \"\\u03BB\",\n  mu: \"\\u03BC\",\n  nu: \"\\u03BD\",\n  xi: \"\\u03BE\",\n  omicron: \"\\u03BF\",\n  pi: \"\\u03C0\",\n  rho: \"\\u03C1\",\n  sigmaf: \"\\u03C2\",\n  sigma: \"\\u03C3\",\n  tau: \"\\u03C4\",\n  upsilon: \"\\u03C5\",\n  phi: \"\\u03C6\",\n  chi: \"\\u03C7\",\n  psi: \"\\u03C8\",\n  omega: \"\\u03C9\",\n  thetasym: \"\\u03D1\",\n  upsih: \"\\u03D2\",\n  piv: \"\\u03D6\",\n  ensp: \"\\u2002\",\n  emsp: \"\\u2003\",\n  thinsp: \"\\u2009\",\n  zwnj: \"\\u200C\",\n  zwj: \"\\u200D\",\n  lrm: \"\\u200E\",\n  rlm: \"\\u200F\",\n  ndash: \"\\u2013\",\n  mdash: \"\\u2014\",\n  lsquo: \"\\u2018\",\n  rsquo: \"\\u2019\",\n  sbquo: \"\\u201A\",\n  ldquo: \"\\u201C\",\n  rdquo: \"\\u201D\",\n  bdquo: \"\\u201E\",\n  dagger: \"\\u2020\",\n  Dagger: \"\\u2021\",\n  bull: \"\\u2022\",\n  hellip: \"\\u2026\",\n  permil: \"\\u2030\",\n  prime: \"\\u2032\",\n  Prime: \"\\u2033\",\n  lsaquo: \"\\u2039\",\n  rsaquo: \"\\u203A\",\n  oline: \"\\u203E\",\n  frasl: \"\\u2044\",\n  euro: \"\\u20AC\",\n  image: \"\\u2111\",\n  weierp: \"\\u2118\",\n  real: \"\\u211C\",\n  trade: \"\\u2122\",\n  alefsym: \"\\u2135\",\n  larr: \"\\u2190\",\n  uarr: \"\\u2191\",\n  rarr: \"\\u2192\",\n  darr: \"\\u2193\",\n  harr: \"\\u2194\",\n  crarr: \"\\u21B5\",\n  lArr: \"\\u21D0\",\n  uArr: \"\\u21D1\",\n  rArr: \"\\u21D2\",\n  dArr: \"\\u21D3\",\n  hArr: \"\\u21D4\",\n  forall: \"\\u2200\",\n  part: \"\\u2202\",\n  exist: \"\\u2203\",\n  empty: \"\\u2205\",\n  nabla: \"\\u2207\",\n  isin: \"\\u2208\",\n  notin: \"\\u2209\",\n  ni: \"\\u220B\",\n  prod: \"\\u220F\",\n  sum: \"\\u2211\",\n  minus: \"\\u2212\",\n  lowast: \"\\u2217\",\n  radic: \"\\u221A\",\n  prop: \"\\u221D\",\n  infin: \"\\u221E\",\n  ang: \"\\u2220\",\n  and: \"\\u2227\",\n  or: \"\\u2228\",\n  cap: \"\\u2229\",\n  cup: \"\\u222A\",\n  int: \"\\u222B\",\n  there4: \"\\u2234\",\n  sim: \"\\u223C\",\n  cong: \"\\u2245\",\n  asymp: \"\\u2248\",\n  ne: \"\\u2260\",\n  equiv: \"\\u2261\",\n  le: \"\\u2264\",\n  ge: \"\\u2265\",\n  sub: \"\\u2282\",\n  sup: \"\\u2283\",\n  nsub: \"\\u2284\",\n  sube: \"\\u2286\",\n  supe: \"\\u2287\",\n  oplus: \"\\u2295\",\n  otimes: \"\\u2297\",\n  perp: \"\\u22A5\",\n  sdot: \"\\u22C5\",\n  lceil: \"\\u2308\",\n  rceil: \"\\u2309\",\n  lfloor: \"\\u230A\",\n  rfloor: \"\\u230B\",\n  lang: \"\\u2329\",\n  rang: \"\\u232A\",\n  loz: \"\\u25CA\",\n  spades: \"\\u2660\",\n  clubs: \"\\u2663\",\n  hearts: \"\\u2665\",\n  diams: \"\\u2666\",\n};\nexport default entities;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml\";\nimport type Parser from \"../../parser\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { TokenType, types as tt } from \"../../tokenizer/types\";\nimport { TokContext, types as tc } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier\";\nimport type { Position } from \"../../util/location\";\nimport { isNewLine } from \"../../util/whitespace\";\nimport { Errors } from \"../../parser/location\";\n\nconst HEX_NUMBER = /^[\\da-fA-F]+$/;\nconst DECIMAL_NUMBER = /^\\d+$/;\n\nconst JsxErrors = Object.freeze({\n  AttributeIsEmpty:\n    \"JSX attributes must only be assigned a non-empty expression\",\n  MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>\",\n  MissingClosingTagElement: \"Expected corresponding JSX closing tag for <%0>\",\n  UnsupportedJsxValue:\n    \"JSX value should be either an expression or a quoted JSX text\",\n  UnterminatedJsxContent: \"Unterminated JSX contents\",\n  UnwrappedAdjacentJSXElements:\n    \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\",\n});\n\n// Be aware that this file is always executed and not only when the plugin is enabled.\n// Therefore this contexts and tokens do always exist.\ntc.j_oTag = new TokContext(\"<tag\", false);\ntc.j_cTag = new TokContext(\"</tag\", false);\ntc.j_expr = new TokContext(\"<tag>...</tag>\", true, true);\n\ntt.jsxName = new TokenType(\"jsxName\");\ntt.jsxText = new TokenType(\"jsxText\", { beforeExpr: true });\ntt.jsxTagStart = new TokenType(\"jsxTagStart\", { startsExpr: true });\ntt.jsxTagEnd = new TokenType(\"jsxTagEnd\");\n\ntt.jsxTagStart.updateContext = function() {\n  this.state.context.push(tc.j_expr); // treat as beginning of JSX expression\n  this.state.context.push(tc.j_oTag); // start opening tag context\n  this.state.exprAllowed = false;\n};\n\ntt.jsxTagEnd.updateContext = function(prevType) {\n  const out = this.state.context.pop();\n  if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n    this.state.context.pop();\n    this.state.exprAllowed = this.curContext() === tc.j_expr;\n  } else {\n    this.state.exprAllowed = true;\n  }\n};\n\nfunction isFragment(object: ?N.JSXElement): boolean {\n  return object\n    ? object.type === \"JSXOpeningFragment\" ||\n        object.type === \"JSXClosingFragment\"\n    : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n  object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n  if (object.type === \"JSXIdentifier\") {\n    return object.name;\n  }\n\n  if (object.type === \"JSXNamespacedName\") {\n    return object.namespace.name + \":\" + object.name.name;\n  }\n\n  if (object.type === \"JSXMemberExpression\") {\n    return (\n      getQualifiedJSXName(object.object) +\n      \".\" +\n      getQualifiedJSXName(object.property)\n    );\n  }\n\n  // istanbul ignore next\n  throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // Reads inline JSX contents token.\n\n    jsxReadToken(): void {\n      let out = \"\";\n      let chunkStart = this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n\n        switch (ch) {\n          case charCodes.lessThan:\n          case charCodes.leftCurlyBrace:\n            if (this.state.pos === this.state.start) {\n              if (ch === charCodes.lessThan && this.state.exprAllowed) {\n                ++this.state.pos;\n                return this.finishToken(tt.jsxTagStart);\n              }\n              return super.getTokenFromCode(ch);\n            }\n            out += this.input.slice(chunkStart, this.state.pos);\n            return this.finishToken(tt.jsxText, out);\n\n          case charCodes.ampersand:\n            out += this.input.slice(chunkStart, this.state.pos);\n            out += this.jsxReadEntity();\n            chunkStart = this.state.pos;\n            break;\n\n          default:\n            if (isNewLine(ch)) {\n              out += this.input.slice(chunkStart, this.state.pos);\n              out += this.jsxReadNewLine(true);\n              chunkStart = this.state.pos;\n            } else {\n              ++this.state.pos;\n            }\n        }\n      }\n    }\n\n    jsxReadNewLine(normalizeCRLF: boolean): string {\n      const ch = this.input.charCodeAt(this.state.pos);\n      let out;\n      ++this.state.pos;\n      if (\n        ch === charCodes.carriageReturn &&\n        this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n      ) {\n        ++this.state.pos;\n        out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n      } else {\n        out = String.fromCharCode(ch);\n      }\n      ++this.state.curLine;\n      this.state.lineStart = this.state.pos;\n\n      return out;\n    }\n\n    jsxReadString(quote: number): void {\n      let out = \"\";\n      let chunkStart = ++this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, Errors.UnterminatedString);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n        if (ch === quote) break;\n        if (ch === charCodes.ampersand) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadEntity();\n          chunkStart = this.state.pos;\n        } else if (isNewLine(ch)) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadNewLine(false);\n          chunkStart = this.state.pos;\n        } else {\n          ++this.state.pos;\n        }\n      }\n      out += this.input.slice(chunkStart, this.state.pos++);\n      return this.finishToken(tt.string, out);\n    }\n\n    jsxReadEntity(): string {\n      let str = \"\";\n      let count = 0;\n      let entity;\n      let ch = this.input[this.state.pos];\n\n      const startPos = ++this.state.pos;\n      while (this.state.pos < this.length && count++ < 10) {\n        ch = this.input[this.state.pos++];\n        if (ch === \";\") {\n          if (str[0] === \"#\") {\n            if (str[1] === \"x\") {\n              str = str.substr(2);\n              if (HEX_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 16));\n              }\n            } else {\n              str = str.substr(1);\n              if (DECIMAL_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 10));\n              }\n            }\n          } else {\n            entity = XHTMLEntities[str];\n          }\n          break;\n        }\n        str += ch;\n      }\n      if (!entity) {\n        this.state.pos = startPos;\n        return \"&\";\n      }\n      return entity;\n    }\n\n    // Read a JSX identifier (valid tag or attribute name).\n    //\n    // Optimized version since JSX identifiers can\"t contain\n    // escape characters and so can be read as single slice.\n    // Also assumes that first character was already checked\n    // by isIdentifierStart in readToken.\n\n    jsxReadWord(): void {\n      let ch;\n      const start = this.state.pos;\n      do {\n        ch = this.input.charCodeAt(++this.state.pos);\n      } while (isIdentifierChar(ch) || ch === charCodes.dash);\n      return this.finishToken(\n        tt.jsxName,\n        this.input.slice(start, this.state.pos),\n      );\n    }\n\n    // Parse next token as JSX identifier\n\n    jsxParseIdentifier(): N.JSXIdentifier {\n      const node = this.startNode();\n      if (this.match(tt.jsxName)) {\n        node.name = this.state.value;\n      } else if (this.state.type.keyword) {\n        node.name = this.state.type.keyword;\n      } else {\n        this.unexpected();\n      }\n      this.next();\n      return this.finishNode(node, \"JSXIdentifier\");\n    }\n\n    // Parse namespaced identifier.\n\n    jsxParseNamespacedName(): N.JSXNamespacedName {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const name = this.jsxParseIdentifier();\n      if (!this.eat(tt.colon)) return name;\n\n      const node = this.startNodeAt(startPos, startLoc);\n      node.namespace = name;\n      node.name = this.jsxParseIdentifier();\n      return this.finishNode(node, \"JSXNamespacedName\");\n    }\n\n    // Parses element name in any form - namespaced, member\n    // or single identifier.\n\n    jsxParseElementName():\n      | N.JSXIdentifier\n      | N.JSXNamespacedName\n      | N.JSXMemberExpression {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let node = this.jsxParseNamespacedName();\n      if (node.type === \"JSXNamespacedName\") {\n        return node;\n      }\n      while (this.eat(tt.dot)) {\n        const newNode = this.startNodeAt(startPos, startLoc);\n        newNode.object = node;\n        newNode.property = this.jsxParseIdentifier();\n        node = this.finishNode(newNode, \"JSXMemberExpression\");\n      }\n      return node;\n    }\n\n    // Parses any type of JSX attribute value.\n\n    jsxParseAttributeValue(): N.Expression {\n      let node;\n      switch (this.state.type) {\n        case tt.braceL:\n          node = this.startNode();\n          this.next();\n          node = this.jsxParseExpressionContainer(node);\n          if (node.expression.type === \"JSXEmptyExpression\") {\n            this.raise(node.start, JsxErrors.AttributeIsEmpty);\n          }\n          return node;\n\n        case tt.jsxTagStart:\n        case tt.string:\n          return this.parseExprAtom();\n\n        default:\n          throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue);\n      }\n    }\n\n    // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n    // and so it should start at the end of last read token (left brace) and finish\n    // at the beginning of the next one (right brace).\n\n    jsxParseEmptyExpression(): N.JSXEmptyExpression {\n      const node = this.startNodeAt(\n        this.state.lastTokEnd,\n        this.state.lastTokEndLoc,\n      );\n      return this.finishNodeAt(\n        node,\n        \"JSXEmptyExpression\",\n        this.state.start,\n        this.state.startLoc,\n      );\n    }\n\n    // Parse JSX spread child\n\n    jsxParseSpreadChild(node: N.JSXSpreadChild): N.JSXSpreadChild {\n      this.next(); // ellipsis\n      node.expression = this.parseExpression();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"JSXSpreadChild\");\n    }\n\n    // Parses JSX expression enclosed into curly brackets.\n\n    jsxParseExpressionContainer(\n      node: N.JSXExpressionContainer,\n    ): N.JSXExpressionContainer {\n      if (this.match(tt.braceR)) {\n        node.expression = this.jsxParseEmptyExpression();\n      } else {\n        node.expression = this.parseExpression();\n      }\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"JSXExpressionContainer\");\n    }\n\n    // Parses following JSX attribute name-value pair.\n\n    jsxParseAttribute(): N.JSXAttribute {\n      const node = this.startNode();\n      if (this.eat(tt.braceL)) {\n        this.expect(tt.ellipsis);\n        node.argument = this.parseMaybeAssign();\n        this.expect(tt.braceR);\n        return this.finishNode(node, \"JSXSpreadAttribute\");\n      }\n      node.name = this.jsxParseNamespacedName();\n      node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n      return this.finishNode(node, \"JSXAttribute\");\n    }\n\n    // Parses JSX opening tag starting after \"<\".\n\n    jsxParseOpeningElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXOpeningElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXOpeningFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      return this.jsxParseOpeningElementAfterName(node);\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      const attributes: N.JSXAttribute[] = [];\n      while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n        attributes.push(this.jsxParseAttribute());\n      }\n      node.attributes = attributes;\n      node.selfClosing = this.eat(tt.slash);\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXOpeningElement\");\n    }\n\n    // Parses JSX closing tag starting after \"</\".\n\n    jsxParseClosingElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXClosingElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXClosingFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXClosingElement\");\n    }\n\n    // Parses entire JSX element, including it\"s opening tag\n    // (starting after \"<\"), attributes, contents and closing tag.\n\n    jsxParseElementAt(startPos: number, startLoc: Position): N.JSXElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      const children = [];\n      const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\n      let closingElement = null;\n\n      if (!openingElement.selfClosing) {\n        contents: for (;;) {\n          switch (this.state.type) {\n            case tt.jsxTagStart:\n              startPos = this.state.start;\n              startLoc = this.state.startLoc;\n              this.next();\n              if (this.eat(tt.slash)) {\n                closingElement = this.jsxParseClosingElementAt(\n                  startPos,\n                  startLoc,\n                );\n                break contents;\n              }\n              children.push(this.jsxParseElementAt(startPos, startLoc));\n              break;\n\n            case tt.jsxText:\n              children.push(this.parseExprAtom());\n              break;\n\n            case tt.braceL: {\n              const node = this.startNode();\n              this.next();\n              if (this.match(tt.ellipsis)) {\n                children.push(this.jsxParseSpreadChild(node));\n              } else {\n                children.push(this.jsxParseExpressionContainer(node));\n              }\n\n              break;\n            }\n            // istanbul ignore next - should never happen\n            default:\n              throw this.unexpected();\n          }\n        }\n\n        if (isFragment(openingElement) && !isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagFragment,\n          );\n        } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagElement,\n            getQualifiedJSXName(openingElement.name),\n          );\n        } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n          if (\n            // $FlowIgnore\n            getQualifiedJSXName(closingElement.name) !==\n            getQualifiedJSXName(openingElement.name)\n          ) {\n            this.raise(\n              // $FlowIgnore\n              closingElement.start,\n              JsxErrors.MissingClosingTagElement,\n              getQualifiedJSXName(openingElement.name),\n            );\n          }\n        }\n      }\n\n      if (isFragment(openingElement)) {\n        node.openingFragment = openingElement;\n        node.closingFragment = closingElement;\n      } else {\n        node.openingElement = openingElement;\n        node.closingElement = closingElement;\n      }\n      node.children = children;\n      if (this.isRelational(\"<\")) {\n        throw this.raise(\n          this.state.start,\n          JsxErrors.UnwrappedAdjacentJSXElements,\n        );\n      }\n\n      return isFragment(openingElement)\n        ? this.finishNode(node, \"JSXFragment\")\n        : this.finishNode(node, \"JSXElement\");\n    }\n\n    // Parses entire JSX element from current position.\n\n    jsxParseElement(): N.JSXElement {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      this.next();\n      return this.jsxParseElementAt(startPos, startLoc);\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseExprAtom(refExpressionErrors: ?ExpressionErrors): N.Expression {\n      if (this.match(tt.jsxText)) {\n        return this.parseLiteral(this.state.value, \"JSXText\");\n      } else if (this.match(tt.jsxTagStart)) {\n        return this.jsxParseElement();\n      } else if (\n        this.isRelational(\"<\") &&\n        this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n      ) {\n        // In case we encounter an lt token here it will always be the start of\n        // jsx as the lt sign is not allowed in places that expect an expression\n        this.finishToken(tt.jsxTagStart);\n        return this.jsxParseElement();\n      } else {\n        return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    getTokenFromCode(code: number): void {\n      if (this.state.inPropertyName) return super.getTokenFromCode(code);\n\n      const context = this.curContext();\n\n      if (context === tc.j_expr) {\n        return this.jsxReadToken();\n      }\n\n      if (context === tc.j_oTag || context === tc.j_cTag) {\n        if (isIdentifierStart(code)) {\n          return this.jsxReadWord();\n        }\n\n        if (code === charCodes.greaterThan) {\n          ++this.state.pos;\n          return this.finishToken(tt.jsxTagEnd);\n        }\n\n        if (\n          (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n          context === tc.j_oTag\n        ) {\n          return this.jsxReadString(code);\n        }\n      }\n\n      if (\n        code === charCodes.lessThan &&\n        this.state.exprAllowed &&\n        this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n      ) {\n        ++this.state.pos;\n        return this.finishToken(tt.jsxTagStart);\n      }\n\n      return super.getTokenFromCode(code);\n    }\n\n    updateContext(prevType: TokenType): void {\n      if (this.match(tt.braceL)) {\n        const curContext = this.curContext();\n        if (curContext === tc.j_oTag) {\n          this.state.context.push(tc.braceExpression);\n        } else if (curContext === tc.j_expr) {\n          this.state.context.push(tc.templateQuasi);\n        } else {\n          super.updateContext(prevType);\n        }\n        this.state.exprAllowed = true;\n      } else if (this.match(tt.slash) && prevType === tt.jsxTagStart) {\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\n        this.state.context.push(tc.j_cTag); // reconsider as closing tag context\n        this.state.exprAllowed = false;\n      } else {\n        return super.updateContext(prevType);\n      }\n    }\n  };\n","// @flow\nimport {\n  SCOPE_ARROW,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n  SCOPE_VAR,\n  SCOPE_CLASS,\n  BIND_SCOPE_FUNCTION,\n  BIND_SCOPE_VAR,\n  BIND_SCOPE_LEXICAL,\n  BIND_KIND_VALUE,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"./scopeflags\";\nimport * as N from \"../types\";\nimport { Errors } from \"../parser/location\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n  flags: ScopeFlags;\n  // A list of var-declared names in the current lexical scope\n  var: string[] = [];\n  // A list of lexically-declared names in the current lexical scope\n  lexical: string[] = [];\n  // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n  functions: string[] = [];\n\n  constructor(flags: ScopeFlags) {\n    this.flags = flags;\n  }\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler<IScope: Scope = Scope> {\n  scopeStack: Array<IScope> = [];\n  raise: raiseFunction;\n  inModule: boolean;\n  undefinedExports: Map<string, number> = new Map();\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction, inModule: boolean) {\n    this.raise = raise;\n    this.inModule = inModule;\n  }\n\n  get inFunction() {\n    return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get allowSuper() {\n    return (this.currentThisScope().flags & SCOPE_SUPER) > 0;\n  }\n  get allowDirectSuper() {\n    return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;\n  }\n  get inClass() {\n    return (this.currentThisScope().flags & SCOPE_CLASS) > 0;\n  }\n  get inNonArrowFunction() {\n    return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get treatFunctionsAsVar() {\n    return this.treatFunctionsAsVarInScope(this.currentScope());\n  }\n\n  createScope(flags: ScopeFlags): Scope {\n    return new Scope(flags);\n  }\n  // This method will be overwritten by subclasses\n  /*:: +createScope: (flags: ScopeFlags) => IScope; */\n\n  enter(flags: ScopeFlags) {\n    this.scopeStack.push(this.createScope(flags));\n  }\n\n  exit() {\n    this.scopeStack.pop();\n  }\n\n  // The spec says:\n  // > At the top level of a function, or script, function declarations are\n  // > treated like var declarations rather than like lexical declarations.\n  treatFunctionsAsVarInScope(scope: IScope): boolean {\n    return !!(\n      scope.flags & SCOPE_FUNCTION ||\n      (!this.inModule && scope.flags & SCOPE_PROGRAM)\n    );\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    let scope = this.currentScope();\n    if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) {\n      this.checkRedeclarationInScope(scope, name, bindingType, pos);\n\n      if (bindingType & BIND_SCOPE_FUNCTION) {\n        scope.functions.push(name);\n      } else {\n        scope.lexical.push(name);\n      }\n\n      if (bindingType & BIND_SCOPE_LEXICAL) {\n        this.maybeExportDefined(scope, name);\n      }\n    } else if (bindingType & BIND_SCOPE_VAR) {\n      for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n        scope = this.scopeStack[i];\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        scope.var.push(name);\n        this.maybeExportDefined(scope, name);\n\n        if (scope.flags & SCOPE_VAR) break;\n      }\n    }\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  maybeExportDefined(scope: IScope, name: string) {\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  checkRedeclarationInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n    pos: number,\n  ) {\n    if (this.isRedeclaredInScope(scope, name, bindingType)) {\n      this.raise(pos, Errors.VarRedeclaration, name);\n    }\n  }\n\n  isRedeclaredInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (!(bindingType & BIND_KIND_VALUE)) return false;\n\n    if (bindingType & BIND_SCOPE_LEXICAL) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        scope.functions.indexOf(name) > -1 ||\n        scope.var.indexOf(name) > -1\n      );\n    }\n\n    if (bindingType & BIND_SCOPE_FUNCTION) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        (!this.treatFunctionsAsVarInScope(scope) &&\n          scope.var.indexOf(name) > -1)\n      );\n    }\n\n    return (\n      (scope.lexical.indexOf(name) > -1 &&\n        !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name)) ||\n      (!this.treatFunctionsAsVarInScope(scope) &&\n        scope.functions.indexOf(name) > -1)\n    );\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1 &&\n      // In strict mode, scope.functions will always be empty.\n      // Modules are strict by default, but the `scriptMode` option\n      // can overwrite this behavior.\n      this.scopeStack[0].functions.indexOf(id.name) === -1\n    ) {\n      this.undefinedExports.set(id.name, id.start);\n    }\n  }\n\n  currentScope(): IScope {\n    return this.scopeStack[this.scopeStack.length - 1];\n  }\n\n  // $FlowIgnore\n  currentVarScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (scope.flags & SCOPE_VAR) {\n        return scope;\n      }\n    }\n  }\n\n  // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n  // $FlowIgnore\n  currentThisScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (\n        (scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) &&\n        !(scope.flags & SCOPE_ARROW)\n      ) {\n        return scope;\n      }\n    }\n  }\n}\n","// @flow\n\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n  BIND_KIND_TYPE,\n  BIND_FLAGS_TS_ENUM,\n  BIND_FLAGS_TS_CONST_ENUM,\n  BIND_FLAGS_TS_EXPORT_ONLY,\n  BIND_KIND_VALUE,\n  BIND_FLAGS_CLASS,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"../../util/scopeflags\";\nimport * as N from \"../../types\";\n\nclass TypeScriptScope extends Scope {\n  types: string[] = [];\n\n  // enums (which are also in .types)\n  enums: string[] = [];\n\n  // const enums (which are also in .enums and .types)\n  constEnums: string[] = [];\n\n  // classes (which are also in .lexical) and interface (which are also in .types)\n  classes: string[] = [];\n\n  // namespaces and ambient functions (or classes) are too difficult to track,\n  // especially without type analysis.\n  // We need to track them anyway, to avoid \"X is not defined\" errors\n  // when exporting them.\n  exportOnlyBindings: string[] = [];\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler<TypeScriptScope> {\n  createScope(flags: ScopeFlags): TypeScriptScope {\n    return new TypeScriptScope(flags);\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    const scope = this.currentScope();\n    if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) {\n      this.maybeExportDefined(scope, name);\n      scope.exportOnlyBindings.push(name);\n      return;\n    }\n\n    super.declareName(...arguments);\n\n    if (bindingType & BIND_KIND_TYPE) {\n      if (!(bindingType & BIND_KIND_VALUE)) {\n        // \"Value\" bindings have already been registered by the superclass.\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        this.maybeExportDefined(scope, name);\n      }\n      scope.types.push(name);\n    }\n    if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name);\n    if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name);\n    if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name);\n  }\n\n  isRedeclaredInScope(\n    scope: TypeScriptScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (scope.enums.indexOf(name) > -1) {\n      if (bindingType & BIND_FLAGS_TS_ENUM) {\n        // Enums can be merged with other enums if they are both\n        //  const or both non-const.\n        const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM);\n        const wasConst = scope.constEnums.indexOf(name) > -1;\n        return isConst !== wasConst;\n      }\n      return true;\n    }\n    if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) {\n      if (scope.lexical.indexOf(name) > -1) {\n        // Classes can be merged with interfaces\n        return !!(bindingType & BIND_KIND_VALUE);\n      } else {\n        // Interface can be merged with other classes or interfaces\n        return false;\n      }\n    }\n    if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) {\n      return true;\n    }\n\n    return super.isRedeclaredInScope(...arguments);\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].types.indexOf(id.name) === -1 &&\n      this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1\n    ) {\n      super.checkLocalExport(id);\n    }\n  }\n}\n","// @flow\nexport const PARAM = 0b000, // Initial Parameter flags\n  PARAM_YIELD = 0b001, // track [Yield] production parameter\n  PARAM_AWAIT = 0b010, // track [Await] production parameter\n  PARAM_RETURN = 0b100; // track [Return] production parameter\n\n// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above. Note that the [In] parameter is\n// tracked in `noIn` argument of `parseExpression`.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n//   async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n//     ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport type ParamKind = typeof PARAM | typeof PARAM_AWAIT | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n  stacks: Array<ParamKind> = [];\n  enter(flags: ParamKind) {\n    this.stacks.push(flags);\n  }\n\n  exit() {\n    this.stacks.pop();\n  }\n\n  currentFlags(): ParamKind {\n    return this.stacks[this.stacks.length - 1];\n  }\n\n  get hasAwait(): boolean {\n    return (this.currentFlags() & PARAM_AWAIT) > 0;\n  }\n\n  get hasYield(): boolean {\n    return (this.currentFlags() & PARAM_YIELD) > 0;\n  }\n\n  get hasReturn(): boolean {\n    return (this.currentFlags() & PARAM_RETURN) > 0;\n  }\n}\n\nexport function functionFlags(\n  isAsync: boolean,\n  isGenerator: boolean,\n): ParamKind {\n  return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type { TokenType } from \"../../tokenizer/types\";\nimport type State from \"../../tokenizer/state\";\nimport { types as tt } from \"../../tokenizer/types\";\nimport { types as ct } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport type { Pos, Position } from \"../../util/location\";\nimport type Parser from \"../../parser\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  SCOPE_TS_MODULE,\n  SCOPE_OTHER,\n  BIND_TS_ENUM,\n  BIND_TS_CONST_ENUM,\n  BIND_TS_TYPE,\n  BIND_TS_INTERFACE,\n  BIND_TS_AMBIENT,\n  BIND_TS_NAMESPACE,\n  BIND_CLASS,\n  BIND_LEXICAL,\n} from \"../../util/scopeflags\";\nimport TypeScriptScopeHandler from \"./scope\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { PARAM } from \"../../util/production-parameter\";\nimport { Errors } from \"../../parser/location\";\n\ntype TsModifier =\n  | \"readonly\"\n  | \"abstract\"\n  | \"declare\"\n  | \"static\"\n  | \"public\"\n  | \"private\"\n  | \"protected\";\n\nfunction nonNull<T>(x: ?T): T {\n  if (x == null) {\n    // $FlowIgnore\n    throw new Error(`Unexpected ${x} value.`);\n  }\n  return x;\n}\n\nfunction assert(x: boolean): void {\n  if (!x) {\n    throw new Error(\"Assert fail\");\n  }\n}\n\ntype ParsingContext =\n  | \"EnumMembers\"\n  | \"HeritageClauseElement\"\n  | \"TupleElementTypes\"\n  | \"TypeMembers\"\n  | \"TypeParametersOrArguments\";\n\nconst TSErrors = Object.freeze({\n  ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier\",\n  ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier\",\n  DeclareClassFieldHasInitializer:\n    \"'declare' class fields cannot have an initializer\",\n  DuplicateModifier: \"Duplicate modifier: '%0'\",\n  EmptyHeritageClauseType: \"'%0' list cannot be empty.\",\n  IndexSignatureHasAbstract:\n    \"Index signatures cannot have the 'abstract' modifier\",\n  IndexSignatureHasAccessibility:\n    \"Index signatures cannot have an accessibility modifier ('%0')\",\n  IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier\",\n  OptionalTypeBeforeRequired:\n    \"A required element cannot follow an optional element.\",\n  PatternIsOptional:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  PrivateElementHasAbstract:\n    \"Private elements cannot have the 'abstract' modifier.\",\n  PrivateElementHasAccessibility:\n    \"Private elements cannot have an accessibility modifier ('%0')\",\n  TemplateTypeHasSubstitution:\n    \"Template literal types cannot have any substitution\",\n  TypeAnnotationAfterAssign:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  UnexpectedReadonly:\n    \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n  UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n  UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n  UnsupportedImportTypeArgument:\n    \"Argument in a type import must be a string literal\",\n  UnsupportedParameterPropertyKind:\n    \"A parameter property may not be declared using a binding pattern.\",\n  UnsupportedSignatureParameterKind:\n    \"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0\",\n});\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\nfunction keywordTypeFromName(\n  value: string,\n): N.TsKeywordTypeType | typeof undefined {\n  switch (value) {\n    case \"any\":\n      return \"TSAnyKeyword\";\n    case \"boolean\":\n      return \"TSBooleanKeyword\";\n    case \"bigint\":\n      return \"TSBigIntKeyword\";\n    case \"never\":\n      return \"TSNeverKeyword\";\n    case \"number\":\n      return \"TSNumberKeyword\";\n    case \"object\":\n      return \"TSObjectKeyword\";\n    case \"string\":\n      return \"TSStringKeyword\";\n    case \"symbol\":\n      return \"TSSymbolKeyword\";\n    case \"undefined\":\n      return \"TSUndefinedKeyword\";\n    case \"unknown\":\n      return \"TSUnknownKeyword\";\n    default:\n      return undefined;\n  }\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    getScopeHandler(): Class<TypeScriptScopeHandler> {\n      return TypeScriptScopeHandler;\n    }\n\n    tsIsIdentifier(): boolean {\n      // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n      // See https://github.com/Microsoft/TypeScript/issues/15008\n      return this.match(tt.name);\n    }\n\n    tsNextTokenCanFollowModifier() {\n      // Note: TypeScript's implementation is much more complicated because\n      // more things are considered modifiers there.\n      // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n      // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n      this.next();\n      return (\n        !this.hasPrecedingLineBreak() &&\n        !this.match(tt.parenL) &&\n        !this.match(tt.parenR) &&\n        !this.match(tt.colon) &&\n        !this.match(tt.eq) &&\n        !this.match(tt.question) &&\n        !this.match(tt.bang)\n      );\n    }\n\n    /** Parses a modifier matching one the given modifier names. */\n    tsParseModifier<T: TsModifier>(allowedModifiers: T[]): ?T {\n      if (!this.match(tt.name)) {\n        return undefined;\n      }\n\n      const modifier = this.state.value;\n      if (\n        allowedModifiers.indexOf(modifier) !== -1 &&\n        this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))\n      ) {\n        return modifier;\n      }\n      return undefined;\n    }\n\n    /** Parses a list of modifiers, in any order.\n     *  If you need a specific order, you must call this function multiple times:\n     *    this.tsParseModifiers(node, [\"public\"]);\n     *    this.tsParseModifiers(node, [\"abstract\", \"readonly\"]);\n     */\n    tsParseModifiers<T: TsModifier>(\n      modified: { [key: TsModifier]: ?true },\n      allowedModifiers: T[],\n    ): void {\n      for (;;) {\n        const startPos = this.state.start;\n        const modifier: ?T = this.tsParseModifier(allowedModifiers);\n\n        if (!modifier) break;\n\n        if (Object.hasOwnProperty.call(modified, modifier)) {\n          this.raise(startPos, TSErrors.DuplicateModifier, modifier);\n        }\n        modified[modifier] = true;\n      }\n    }\n\n    tsIsListTerminator(kind: ParsingContext): boolean {\n      switch (kind) {\n        case \"EnumMembers\":\n        case \"TypeMembers\":\n          return this.match(tt.braceR);\n        case \"HeritageClauseElement\":\n          return this.match(tt.braceL);\n        case \"TupleElementTypes\":\n          return this.match(tt.bracketR);\n        case \"TypeParametersOrArguments\":\n          return this.isRelational(\">\");\n      }\n\n      throw new Error(\"Unreachable\");\n    }\n\n    tsParseList<T: N.Node>(kind: ParsingContext, parseElement: () => T): T[] {\n      const result: T[] = [];\n      while (!this.tsIsListTerminator(kind)) {\n        // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n        result.push(parseElement());\n      }\n      return result;\n    }\n\n    tsParseDelimitedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n    ): T[] {\n      return nonNull(\n        this.tsParseDelimitedListWorker(\n          kind,\n          parseElement,\n          /* expectSuccess */ true,\n        ),\n      );\n    }\n\n    /**\n     * If !expectSuccess, returns undefined instead of failing to parse.\n     * If expectSuccess, parseElement should always return a defined value.\n     */\n    tsParseDelimitedListWorker<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => ?T,\n      expectSuccess: boolean,\n    ): ?(T[]) {\n      const result = [];\n\n      for (;;) {\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        const element = parseElement();\n        if (element == null) {\n          return undefined;\n        }\n        result.push(element);\n\n        if (this.eat(tt.comma)) {\n          continue;\n        }\n\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        if (expectSuccess) {\n          // This will fail with an error about a missing comma\n          this.expect(tt.comma);\n        }\n        return undefined;\n      }\n\n      return result;\n    }\n\n    tsParseBracketedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n      bracket: boolean,\n      skipFirstToken: boolean,\n    ): T[] {\n      if (!skipFirstToken) {\n        if (bracket) {\n          this.expect(tt.bracketL);\n        } else {\n          this.expectRelational(\"<\");\n        }\n      }\n\n      const result = this.tsParseDelimitedList(kind, parseElement);\n\n      if (bracket) {\n        this.expect(tt.bracketR);\n      } else {\n        this.expectRelational(\">\");\n      }\n\n      return result;\n    }\n\n    tsParseImportType(): N.TsImportType {\n      const node: N.TsImportType = this.startNode();\n      this.expect(tt._import);\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument);\n      }\n\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.argument = this.parseExprAtom();\n      this.expect(tt.parenR);\n\n      if (this.eat(tt.dot)) {\n        node.qualifier = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSImportType\");\n    }\n\n    tsParseEntityName(allowReservedWords: boolean): N.TsEntityName {\n      let entity: N.TsEntityName = this.parseIdentifier();\n      while (this.eat(tt.dot)) {\n        const node: N.TsQualifiedName = this.startNodeAtNode(entity);\n        node.left = entity;\n        node.right = this.parseIdentifier(allowReservedWords);\n        entity = this.finishNode(node, \"TSQualifiedName\");\n      }\n      return entity;\n    }\n\n    tsParseTypeReference(): N.TsTypeReference {\n      const node: N.TsTypeReference = this.startNode();\n      node.typeName = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (!this.hasPrecedingLineBreak() && this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSTypeReference\");\n    }\n\n    tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n      this.next();\n      const node: N.TsTypePredicate = this.startNodeAtNode(lhs);\n      node.parameterName = lhs;\n      node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n      return this.finishNode(node, \"TSTypePredicate\");\n    }\n\n    tsParseThisTypeNode(): N.TsThisType {\n      const node: N.TsThisType = this.startNode();\n      this.next();\n      return this.finishNode(node, \"TSThisType\");\n    }\n\n    tsParseTypeQuery(): N.TsTypeQuery {\n      const node: N.TsTypeQuery = this.startNode();\n      this.expect(tt._typeof);\n      if (this.match(tt._import)) {\n        node.exprName = this.tsParseImportType();\n      } else {\n        node.exprName = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      return this.finishNode(node, \"TSTypeQuery\");\n    }\n\n    tsParseTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsEatThenParseType(tt._extends);\n      node.default = this.tsEatThenParseType(tt.eq);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {\n      if (this.isRelational(\"<\")) {\n        return this.tsParseTypeParameters();\n      }\n    }\n\n    tsParseTypeParameters() {\n      const node: N.TsTypeParameterDeclaration = this.startNode();\n\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      node.params = this.tsParseBracketedList(\n        \"TypeParametersOrArguments\",\n        this.tsParseTypeParameter.bind(this),\n        /* bracket */ false,\n        /* skipFirstToken */ true,\n      );\n      return this.finishNode(node, \"TSTypeParameterDeclaration\");\n    }\n\n    tsTryNextParseConstantContext(): ?N.TsTypeReference {\n      if (this.lookahead().type === tt._const) {\n        this.next();\n        return this.tsParseTypeReference();\n      }\n      return null;\n    }\n\n    // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n    // but here it's always false, because this is only used for types.\n    tsFillSignature(\n      returnToken: TokenType,\n      signature: N.TsSignatureDeclaration,\n    ): void {\n      // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n      const returnTokenRequired = returnToken === tt.arrow;\n      signature.typeParameters = this.tsTryParseTypeParameters();\n      this.expect(tt.parenL);\n      signature.parameters = this.tsParseBindingListForSignature();\n      if (returnTokenRequired) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      } else if (this.match(returnToken)) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      }\n    }\n\n    tsParseBindingListForSignature(): $ReadOnlyArray<\n      N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern,\n    > {\n      return this.parseBindingList(tt.parenR, charCodes.rightParenthesis).map(\n        pattern => {\n          if (\n            pattern.type !== \"Identifier\" &&\n            pattern.type !== \"RestElement\" &&\n            pattern.type !== \"ObjectPattern\" &&\n            pattern.type !== \"ArrayPattern\"\n          ) {\n            this.raise(\n              pattern.start,\n              TSErrors.UnsupportedSignatureParameterKind,\n              pattern.type,\n            );\n          }\n          return (pattern: any);\n        },\n      );\n    }\n\n    tsParseTypeMemberSemicolon(): void {\n      if (!this.eat(tt.comma)) {\n        this.semicolon();\n      }\n    }\n\n    tsParseSignatureMember(\n      kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n      node: N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration,\n    ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n      this.tsFillSignature(tt.colon, node);\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, kind);\n    }\n\n    tsIsUnambiguouslyIndexSignature() {\n      this.next(); // Skip '{'\n      return this.eat(tt.name) && this.match(tt.colon);\n    }\n\n    tsTryParseIndexSignature(node: N.Node): ?N.TsIndexSignature {\n      if (\n        !(\n          this.match(tt.bracketL) &&\n          this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n        )\n      ) {\n        return undefined;\n      }\n\n      this.expect(tt.bracketL);\n      const id = this.parseIdentifier();\n      id.typeAnnotation = this.tsParseTypeAnnotation();\n      this.resetEndLocation(id); // set end position to end of type\n\n      this.expect(tt.bracketR);\n      node.parameters = [id];\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, \"TSIndexSignature\");\n    }\n\n    tsParsePropertyOrMethodSignature(\n      node: N.TsPropertySignature | N.TsMethodSignature,\n      readonly: boolean,\n    ): N.TsPropertySignature | N.TsMethodSignature {\n      if (this.eat(tt.question)) node.optional = true;\n      const nodeAny: any = node;\n\n      if (!readonly && (this.match(tt.parenL) || this.isRelational(\"<\"))) {\n        const method: N.TsMethodSignature = nodeAny;\n        this.tsFillSignature(tt.colon, method);\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(method, \"TSMethodSignature\");\n      } else {\n        const property: N.TsPropertySignature = nodeAny;\n        if (readonly) property.readonly = true;\n        const type = this.tsTryParseTypeAnnotation();\n        if (type) property.typeAnnotation = type;\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(property, \"TSPropertySignature\");\n      }\n    }\n\n    tsParseTypeMember(): N.TsTypeElement {\n      const node: any = this.startNode();\n\n      if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n        return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n      }\n\n      if (this.match(tt._new)) {\n        const id: N.Identifier = this.startNode();\n        this.next();\n        if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          return this.tsParseSignatureMember(\n            \"TSConstructSignatureDeclaration\",\n            node,\n          );\n        } else {\n          node.key = this.createIdentifier(id, \"new\");\n          return this.tsParsePropertyOrMethodSignature(node, false);\n        }\n      }\n\n      const readonly = !!this.tsParseModifier([\"readonly\"]);\n\n      const idx = this.tsTryParseIndexSignature(node);\n      if (idx) {\n        if (readonly) node.readonly = true;\n        return idx;\n      }\n\n      this.parsePropertyName(node, /* isPrivateNameAllowed */ false);\n      return this.tsParsePropertyOrMethodSignature(node, readonly);\n    }\n\n    tsParseTypeLiteral(): N.TsTypeLiteral {\n      const node: N.TsTypeLiteral = this.startNode();\n      node.members = this.tsParseObjectTypeMembers();\n      return this.finishNode(node, \"TSTypeLiteral\");\n    }\n\n    tsParseObjectTypeMembers(): $ReadOnlyArray<N.TsTypeElement> {\n      this.expect(tt.braceL);\n      const members = this.tsParseList(\n        \"TypeMembers\",\n        this.tsParseTypeMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return members;\n    }\n\n    tsIsStartOfMappedType(): boolean {\n      this.next();\n      if (this.eat(tt.plusMin)) {\n        return this.isContextual(\"readonly\");\n      }\n      if (this.isContextual(\"readonly\")) {\n        this.next();\n      }\n      if (!this.match(tt.bracketL)) {\n        return false;\n      }\n      this.next();\n      if (!this.tsIsIdentifier()) {\n        return false;\n      }\n      this.next();\n      return this.match(tt._in);\n    }\n\n    tsParseMappedTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsExpectThenParseType(tt._in);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsParseMappedType(): N.TsMappedType {\n      const node: N.TsMappedType = this.startNode();\n\n      this.expect(tt.braceL);\n\n      if (this.match(tt.plusMin)) {\n        node.readonly = this.state.value;\n        this.next();\n        this.expectContextual(\"readonly\");\n      } else if (this.eatContextual(\"readonly\")) {\n        node.readonly = true;\n      }\n\n      this.expect(tt.bracketL);\n      node.typeParameter = this.tsParseMappedTypeParameter();\n      this.expect(tt.bracketR);\n\n      if (this.match(tt.plusMin)) {\n        node.optional = this.state.value;\n        this.next();\n        this.expect(tt.question);\n      } else if (this.eat(tt.question)) {\n        node.optional = true;\n      }\n\n      node.typeAnnotation = this.tsTryParseType();\n      this.semicolon();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"TSMappedType\");\n    }\n\n    tsParseTupleType(): N.TsTupleType {\n      const node: N.TsTupleType = this.startNode();\n      node.elementTypes = this.tsParseBracketedList(\n        \"TupleElementTypes\",\n        this.tsParseTupleElementType.bind(this),\n        /* bracket */ true,\n        /* skipFirstToken */ false,\n      );\n\n      // Validate the elementTypes to ensure:\n      //   No mandatory elements may follow optional elements\n      //   If there's a rest element, it must be at the end of the tuple\n      let seenOptionalElement = false;\n      node.elementTypes.forEach(elementNode => {\n        if (elementNode.type === \"TSOptionalType\") {\n          seenOptionalElement = true;\n        } else if (seenOptionalElement && elementNode.type !== \"TSRestType\") {\n          this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired);\n        }\n      });\n\n      return this.finishNode(node, \"TSTupleType\");\n    }\n\n    tsParseTupleElementType(): N.TsType {\n      // parses `...TsType[]`\n      if (this.match(tt.ellipsis)) {\n        const restNode: N.TsRestType = this.startNode();\n        this.next(); // skips ellipsis\n        restNode.typeAnnotation = this.tsParseType();\n        if (\n          this.match(tt.comma) &&\n          this.lookaheadCharCode() !== charCodes.rightSquareBracket\n        ) {\n          this.raiseRestNotLast(this.state.start);\n        }\n        return this.finishNode(restNode, \"TSRestType\");\n      }\n\n      const type = this.tsParseType();\n      // parses `TsType?`\n      if (this.eat(tt.question)) {\n        const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type);\n        optionalTypeNode.typeAnnotation = type;\n        return this.finishNode(optionalTypeNode, \"TSOptionalType\");\n      }\n      return type;\n    }\n\n    tsParseParenthesizedType(): N.TsParenthesizedType {\n      const node = this.startNode();\n      this.expect(tt.parenL);\n      node.typeAnnotation = this.tsParseType();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSParenthesizedType\");\n    }\n\n    tsParseFunctionOrConstructorType(\n      type: \"TSFunctionType\" | \"TSConstructorType\",\n    ): N.TsFunctionOrConstructorType {\n      const node: N.TsFunctionOrConstructorType = this.startNode();\n      if (type === \"TSConstructorType\") {\n        this.expect(tt._new);\n      }\n      this.tsFillSignature(tt.arrow, node);\n      return this.finishNode(node, type);\n    }\n\n    tsParseLiteralTypeNode(): N.TsLiteralType {\n      const node: N.TsLiteralType = this.startNode();\n      node.literal = (() => {\n        switch (this.state.type) {\n          case tt.num:\n          case tt.string:\n          case tt._true:\n          case tt._false:\n            // For compatibility to estree we cannot call parseLiteral directly here\n            return this.parseExprAtom();\n          default:\n            throw this.unexpected();\n        }\n      })();\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseTemplateLiteralType(): N.TsType {\n      const node: N.TsLiteralType = this.startNode();\n      const templateNode = this.parseTemplate(false);\n      if (templateNode.expressions.length > 0) {\n        this.raise(\n          templateNode.expressions[0].start,\n          TSErrors.TemplateTypeHasSubstitution,\n        );\n      }\n      node.literal = templateNode;\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n      const thisKeyword = this.tsParseThisTypeNode();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        return this.tsParseThisTypePredicate(thisKeyword);\n      } else {\n        return thisKeyword;\n      }\n    }\n\n    tsParseNonArrayType(): N.TsType {\n      switch (this.state.type) {\n        case tt.name:\n        case tt._void:\n        case tt._null: {\n          const type = this.match(tt._void)\n            ? \"TSVoidKeyword\"\n            : this.match(tt._null)\n            ? \"TSNullKeyword\"\n            : keywordTypeFromName(this.state.value);\n          if (\n            type !== undefined &&\n            this.lookaheadCharCode() !== charCodes.dot\n          ) {\n            const node: N.TsKeywordType = this.startNode();\n            this.next();\n            return this.finishNode(node, type);\n          }\n          return this.tsParseTypeReference();\n        }\n        case tt.string:\n        case tt.num:\n        case tt._true:\n        case tt._false:\n          return this.tsParseLiteralTypeNode();\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            const node: N.TsLiteralType = this.startNode();\n            if (this.lookahead().type !== tt.num) {\n              throw this.unexpected();\n            }\n            node.literal = this.parseMaybeUnary();\n            return this.finishNode(node, \"TSLiteralType\");\n          }\n          break;\n        case tt._this:\n          return this.tsParseThisTypeOrThisTypePredicate();\n        case tt._typeof:\n          return this.tsParseTypeQuery();\n        case tt._import:\n          return this.tsParseImportType();\n        case tt.braceL:\n          return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n            ? this.tsParseMappedType()\n            : this.tsParseTypeLiteral();\n        case tt.bracketL:\n          return this.tsParseTupleType();\n        case tt.parenL:\n          return this.tsParseParenthesizedType();\n        case tt.backQuote:\n          return this.tsParseTemplateLiteralType();\n      }\n\n      throw this.unexpected();\n    }\n\n    tsParseArrayTypeOrHigher(): N.TsType {\n      let type = this.tsParseNonArrayType();\n      while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n        if (this.match(tt.bracketR)) {\n          const node: N.TsArrayType = this.startNodeAtNode(type);\n          node.elementType = type;\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSArrayType\");\n        } else {\n          const node: N.TsIndexedAccessType = this.startNodeAtNode(type);\n          node.objectType = type;\n          node.indexType = this.tsParseType();\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSIndexedAccessType\");\n        }\n      }\n      return type;\n    }\n\n    tsParseTypeOperator(\n      operator: \"keyof\" | \"unique\" | \"readonly\",\n    ): N.TsTypeOperator {\n      const node: N.TsTypeOperator = this.startNode();\n      this.expectContextual(operator);\n      node.operator = operator;\n      node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n      if (operator === \"readonly\") {\n        this.tsCheckTypeAnnotationForReadOnly(node);\n      }\n\n      return this.finishNode(node, \"TSTypeOperator\");\n    }\n\n    tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n      switch (node.typeAnnotation.type) {\n        case \"TSTupleType\":\n        case \"TSArrayType\":\n          return;\n        default:\n          this.raise(node.start, TSErrors.UnexpectedReadonly);\n      }\n    }\n\n    tsParseInferType(): N.TsInferType {\n      const node = this.startNode();\n      this.expectContextual(\"infer\");\n      const typeParameter = this.startNode();\n      typeParameter.name = this.parseIdentifierName(typeParameter.start);\n      node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n      return this.finishNode(node, \"TSInferType\");\n    }\n\n    tsParseTypeOperatorOrHigher(): N.TsType {\n      const operator = [\"keyof\", \"unique\", \"readonly\"].find(kw =>\n        this.isContextual(kw),\n      );\n      return operator\n        ? this.tsParseTypeOperator(operator)\n        : this.isContextual(\"infer\")\n        ? this.tsParseInferType()\n        : this.tsParseArrayTypeOrHigher();\n    }\n\n    tsParseUnionOrIntersectionType(\n      kind: \"TSUnionType\" | \"TSIntersectionType\",\n      parseConstituentType: () => N.TsType,\n      operator: TokenType,\n    ): N.TsType {\n      this.eat(operator);\n      let type = parseConstituentType();\n      if (this.match(operator)) {\n        const types = [type];\n        while (this.eat(operator)) {\n          types.push(parseConstituentType());\n        }\n        const node: N.TsUnionType | N.TsIntersectionType = this.startNodeAtNode(\n          type,\n        );\n        node.types = types;\n        type = this.finishNode(node, kind);\n      }\n      return type;\n    }\n\n    tsParseIntersectionTypeOrHigher(): N.TsType {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSIntersectionType\",\n        this.tsParseTypeOperatorOrHigher.bind(this),\n        tt.bitwiseAND,\n      );\n    }\n\n    tsParseUnionTypeOrHigher() {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSUnionType\",\n        this.tsParseIntersectionTypeOrHigher.bind(this),\n        tt.bitwiseOR,\n      );\n    }\n\n    tsIsStartOfFunctionType() {\n      if (this.isRelational(\"<\")) {\n        return true;\n      }\n      return (\n        this.match(tt.parenL) &&\n        this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n      );\n    }\n\n    tsSkipParameterStart(): boolean {\n      if (this.match(tt.name) || this.match(tt._this)) {\n        this.next();\n        return true;\n      }\n\n      if (this.match(tt.braceL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.braceL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.braceR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      if (this.match(tt.bracketL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.bracketL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.bracketR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      return false;\n    }\n\n    tsIsUnambiguouslyStartOfFunctionType(): boolean {\n      this.next();\n      if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n        // ( )\n        // ( ...\n        return true;\n      }\n      if (this.tsSkipParameterStart()) {\n        if (\n          this.match(tt.colon) ||\n          this.match(tt.comma) ||\n          this.match(tt.question) ||\n          this.match(tt.eq)\n        ) {\n          // ( xxx :\n          // ( xxx ,\n          // ( xxx ?\n          // ( xxx =\n          return true;\n        }\n        if (this.match(tt.parenR)) {\n          this.next();\n          if (this.match(tt.arrow)) {\n            // ( xxx ) =>\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n\n    tsParseTypeOrTypePredicateAnnotation(\n      returnToken: TokenType,\n    ): N.TsTypeAnnotation {\n      return this.tsInType(() => {\n        const t: N.TsTypeAnnotation = this.startNode();\n        this.expect(returnToken);\n\n        const asserts = this.tsTryParse(\n          this.tsParseTypePredicateAsserts.bind(this),\n        );\n\n        if (asserts && this.match(tt._this)) {\n          // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n          // : asserts this is type\n          let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n          // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n          // : asserts this\n          if (thisTypePredicate.type === \"TSThisType\") {\n            const node: N.TsTypePredicate = this.startNodeAtNode(t);\n            node.parameterName = (thisTypePredicate: N.TsThisType);\n            node.asserts = true;\n            thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n          } else {\n            (thisTypePredicate: N.TsTypePredicate).asserts = true;\n          }\n          t.typeAnnotation = thisTypePredicate;\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        const typePredicateVariable =\n          this.tsIsIdentifier() &&\n          this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n        if (!typePredicateVariable) {\n          if (!asserts) {\n            // : type\n            return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n          }\n\n          const node: N.TsTypePredicate = this.startNodeAtNode(t);\n          // : asserts foo\n          node.parameterName = this.parseIdentifier();\n          node.asserts = asserts;\n          t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        // : asserts foo is type\n        const type = this.tsParseTypeAnnotation(/* eatColon */ false);\n        const node = this.startNodeAtNode(t);\n        node.parameterName = typePredicateVariable;\n        node.typeAnnotation = type;\n        node.asserts = asserts;\n        t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n        return this.finishNode(t, \"TSTypeAnnotation\");\n      });\n    }\n\n    tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon)\n        ? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)\n        : undefined;\n    }\n\n    tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;\n    }\n\n    tsTryParseType(): ?N.TsType {\n      return this.tsEatThenParseType(tt.colon);\n    }\n\n    tsParseTypePredicatePrefix(): ?N.Identifier {\n      const id = this.parseIdentifier();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        this.next();\n        return id;\n      }\n    }\n\n    tsParseTypePredicateAsserts(): boolean {\n      if (\n        !this.match(tt.name) ||\n        this.state.value !== \"asserts\" ||\n        this.hasPrecedingLineBreak()\n      ) {\n        return false;\n      }\n      const containsEsc = this.state.containsEsc;\n      this.next();\n      if (!this.match(tt.name) && !this.match(tt._this)) {\n        return false;\n      }\n\n      if (containsEsc) {\n        this.raise(\n          this.state.lastTokStart,\n          Errors.InvalidEscapedReservedWord,\n          \"asserts\",\n        );\n      }\n\n      return true;\n    }\n\n    tsParseTypeAnnotation(\n      eatColon = true,\n      t: N.TsTypeAnnotation = this.startNode(),\n    ): N.TsTypeAnnotation {\n      this.tsInType(() => {\n        if (eatColon) this.expect(tt.colon);\n        t.typeAnnotation = this.tsParseType();\n      });\n      return this.finishNode(t, \"TSTypeAnnotation\");\n    }\n\n    /** Be sure to be in a type context before calling this, using `tsInType`. */\n    tsParseType(): N.TsType {\n      // Need to set `state.inType` so that we don't parse JSX in a type context.\n      assert(this.state.inType);\n      const type = this.tsParseNonConditionalType();\n      if (this.hasPrecedingLineBreak() || !this.eat(tt._extends)) {\n        return type;\n      }\n      const node: N.TsConditionalType = this.startNodeAtNode(type);\n      node.checkType = type;\n      node.extendsType = this.tsParseNonConditionalType();\n      this.expect(tt.question);\n      node.trueType = this.tsParseType();\n      this.expect(tt.colon);\n      node.falseType = this.tsParseType();\n      return this.finishNode(node, \"TSConditionalType\");\n    }\n\n    tsParseNonConditionalType(): N.TsType {\n      if (this.tsIsStartOfFunctionType()) {\n        return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n      }\n      if (this.match(tt._new)) {\n        // As in `new () => Date`\n        return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n      }\n      return this.tsParseUnionTypeOrHigher();\n    }\n\n    tsParseTypeAssertion(): N.TsTypeAssertion {\n      const node: N.TsTypeAssertion = this.startNode();\n      const _const = this.tsTryNextParseConstantContext();\n      node.typeAnnotation = _const || this.tsNextThenParseType();\n      this.expectRelational(\">\");\n      node.expression = this.parseMaybeUnary();\n      return this.finishNode(node, \"TSTypeAssertion\");\n    }\n\n    tsParseHeritageClause(\n      descriptor: string,\n    ): $ReadOnlyArray<N.TsExpressionWithTypeArguments> {\n      const originalStart = this.state.start;\n\n      const delimitedList = this.tsParseDelimitedList(\n        \"HeritageClauseElement\",\n        this.tsParseExpressionWithTypeArguments.bind(this),\n      );\n\n      if (!delimitedList.length) {\n        this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor);\n      }\n\n      return delimitedList;\n    }\n\n    tsParseExpressionWithTypeArguments(): N.TsExpressionWithTypeArguments {\n      const node: N.TsExpressionWithTypeArguments = this.startNode();\n      // Note: TS uses parseLeftHandSideExpressionOrHigher,\n      // then has grammar errors later if it's not an EntityName.\n      node.expression = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n\n      return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n    }\n\n    tsParseInterfaceDeclaration(\n      node: N.TsInterfaceDeclaration,\n    ): N.TsInterfaceDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_TS_INTERFACE,\n        undefined,\n        \"typescript interface declaration\",\n      );\n      node.typeParameters = this.tsTryParseTypeParameters();\n      if (this.eat(tt._extends)) {\n        node.extends = this.tsParseHeritageClause(\"extends\");\n      }\n      const body: N.TSInterfaceBody = this.startNode();\n      body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n      node.body = this.finishNode(body, \"TSInterfaceBody\");\n      return this.finishNode(node, \"TSInterfaceDeclaration\");\n    }\n\n    tsParseTypeAliasDeclaration(\n      node: N.TsTypeAliasDeclaration,\n    ): N.TsTypeAliasDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(node.id, BIND_TS_TYPE, undefined, \"typescript type alias\");\n\n      node.typeParameters = this.tsTryParseTypeParameters();\n      node.typeAnnotation = this.tsExpectThenParseType(tt.eq);\n      this.semicolon();\n      return this.finishNode(node, \"TSTypeAliasDeclaration\");\n    }\n\n    tsInNoContext<T>(cb: () => T): T {\n      const oldContext = this.state.context;\n      this.state.context = [oldContext[0]];\n      try {\n        return cb();\n      } finally {\n        this.state.context = oldContext;\n      }\n    }\n\n    /**\n     * Runs `cb` in a type context.\n     * This should be called one token *before* the first type token,\n     * so that the call to `next()` is run in type context.\n     */\n    tsInType<T>(cb: () => T): T {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      try {\n        return cb();\n      } finally {\n        this.state.inType = oldInType;\n      }\n    }\n\n    tsEatThenParseType(token: TokenType): N.TsType | typeof undefined {\n      return !this.match(token) ? undefined : this.tsNextThenParseType();\n    }\n\n    tsExpectThenParseType(token: TokenType): N.TsType {\n      return this.tsDoThenParseType(() => this.expect(token));\n    }\n\n    tsNextThenParseType(): N.TsType {\n      return this.tsDoThenParseType(() => this.next());\n    }\n\n    tsDoThenParseType(cb: () => void): N.TsType {\n      return this.tsInType(() => {\n        cb();\n        return this.tsParseType();\n      });\n    }\n\n    tsParseEnumMember(): N.TsEnumMember {\n      const node: N.TsEnumMember = this.startNode();\n      // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n      node.id = this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(/* liberal */ true);\n      if (this.eat(tt.eq)) {\n        node.initializer = this.parseMaybeAssign();\n      }\n      return this.finishNode(node, \"TSEnumMember\");\n    }\n\n    tsParseEnumDeclaration(\n      node: N.TsEnumDeclaration,\n      isConst: boolean,\n    ): N.TsEnumDeclaration {\n      if (isConst) node.const = true;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM,\n        undefined,\n        \"typescript enum declaration\",\n      );\n\n      this.expect(tt.braceL);\n      node.members = this.tsParseDelimitedList(\n        \"EnumMembers\",\n        this.tsParseEnumMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"TSEnumDeclaration\");\n    }\n\n    tsParseModuleBlock(): N.TsModuleBlock {\n      const node: N.TsModuleBlock = this.startNode();\n      this.scope.enter(SCOPE_OTHER);\n\n      this.expect(tt.braceL);\n      // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n      this.parseBlockOrModuleBlockBody(\n        (node.body = []),\n        /* directives */ undefined,\n        /* topLevel */ true,\n        /* end */ tt.braceR,\n      );\n      this.scope.exit();\n      return this.finishNode(node, \"TSModuleBlock\");\n    }\n\n    tsParseModuleOrNamespaceDeclaration(\n      node: N.TsModuleDeclaration,\n      nested?: boolean = false,\n    ): N.TsModuleDeclaration {\n      node.id = this.parseIdentifier();\n\n      if (!nested) {\n        this.checkLVal(\n          node.id,\n          BIND_TS_NAMESPACE,\n          null,\n          \"module or namespace declaration\",\n        );\n      }\n\n      if (this.eat(tt.dot)) {\n        const inner = this.startNode();\n        this.tsParseModuleOrNamespaceDeclaration(inner, true);\n        node.body = inner;\n      } else {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      }\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseAmbientExternalModuleDeclaration(\n      node: N.TsModuleDeclaration,\n    ): N.TsModuleDeclaration {\n      if (this.isContextual(\"global\")) {\n        node.global = true;\n        node.id = this.parseIdentifier();\n      } else if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        this.unexpected();\n      }\n      if (this.match(tt.braceL)) {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      } else {\n        this.semicolon();\n      }\n\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseImportEqualsDeclaration(\n      node: N.TsImportEqualsDeclaration,\n      isExport?: boolean,\n    ): N.TsImportEqualsDeclaration {\n      node.isExport = isExport || false;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_LEXICAL,\n        undefined,\n        \"import equals declaration\",\n      );\n      this.expect(tt.eq);\n      node.moduleReference = this.tsParseModuleReference();\n      this.semicolon();\n      return this.finishNode(node, \"TSImportEqualsDeclaration\");\n    }\n\n    tsIsExternalModuleReference(): boolean {\n      return (\n        this.isContextual(\"require\") &&\n        this.lookaheadCharCode() === charCodes.leftParenthesis\n      );\n    }\n\n    tsParseModuleReference(): N.TsModuleReference {\n      return this.tsIsExternalModuleReference()\n        ? this.tsParseExternalModuleReference()\n        : this.tsParseEntityName(/* allowReservedWords */ false);\n    }\n\n    tsParseExternalModuleReference(): N.TsExternalModuleReference {\n      const node: N.TsExternalModuleReference = this.startNode();\n      this.expectContextual(\"require\");\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        throw this.unexpected();\n      }\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.expression = this.parseExprAtom();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSExternalModuleReference\");\n    }\n\n    // Utilities\n\n    tsLookAhead<T>(f: () => T): T {\n      const state = this.state.clone();\n      const res = f();\n      this.state = state;\n      return res;\n    }\n\n    tsTryParseAndCatch<T: ?N.NodeBase>(f: () => T): ?T {\n      const result = this.tryParse(abort => f() || abort());\n\n      if (result.aborted || !result.node) return undefined;\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    tsTryParse<T>(f: () => ?T): ?T {\n      const state = this.state.clone();\n      const result = f();\n      if (result !== undefined && result !== false) {\n        return result;\n      } else {\n        this.state = state;\n        return undefined;\n      }\n    }\n\n    tsTryParseDeclare(nany: any): ?N.Declaration {\n      if (this.isLineTerminator()) {\n        return;\n      }\n      let starttype = this.state.type;\n      let kind;\n\n      if (this.isContextual(\"let\")) {\n        starttype = tt._var;\n        kind = \"let\";\n      }\n\n      switch (starttype) {\n        case tt._function:\n          return this.parseFunctionStatement(\n            nany,\n            /* async */ false,\n            /* declarationPosition */ true,\n          );\n        case tt._class:\n          // While this is also set by tsParseExpressionStatement, we need to set it\n          // before parsing the class declaration to now how to register it in the scope.\n          nany.declare = true;\n          return this.parseClass(\n            nany,\n            /* isStatement */ true,\n            /* optionalId */ false,\n          );\n        case tt._const:\n          if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n            // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n            this.expect(tt._const);\n            this.expectContextual(\"enum\");\n            return this.tsParseEnumDeclaration(nany, /* isConst */ true);\n          }\n        // falls through\n        case tt._var:\n          kind = kind || this.state.value;\n          return this.parseVarStatement(nany, kind);\n        case tt.name: {\n          const value = this.state.value;\n          if (value === \"global\") {\n            return this.tsParseAmbientExternalModuleDeclaration(nany);\n          } else {\n            return this.tsParseDeclaration(nany, value, /* next */ true);\n          }\n        }\n      }\n    }\n\n    // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n    tsTryParseExportDeclaration(): ?N.Declaration {\n      return this.tsParseDeclaration(\n        this.startNode(),\n        this.state.value,\n        /* next */ true,\n      );\n    }\n\n    tsParseExpressionStatement(node: any, expr: N.Identifier): ?N.Declaration {\n      switch (expr.name) {\n        case \"declare\": {\n          const declaration = this.tsTryParseDeclare(node);\n          if (declaration) {\n            declaration.declare = true;\n            return declaration;\n          }\n          break;\n        }\n        case \"global\":\n          // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n          // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n          if (this.match(tt.braceL)) {\n            this.scope.enter(SCOPE_TS_MODULE);\n            this.prodParam.enter(PARAM);\n            const mod: N.TsModuleDeclaration = node;\n            mod.global = true;\n            mod.id = expr;\n            mod.body = this.tsParseModuleBlock();\n            this.scope.exit();\n            this.prodParam.exit();\n            return this.finishNode(mod, \"TSModuleDeclaration\");\n          }\n          break;\n\n        default:\n          return this.tsParseDeclaration(node, expr.name, /* next */ false);\n      }\n    }\n\n    // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n    tsParseDeclaration(\n      node: any,\n      value: string,\n      next: boolean,\n    ): ?N.Declaration {\n      switch (value) {\n        case \"abstract\":\n          if (this.tsCheckLineTerminatorAndMatch(tt._class, next)) {\n            const cls: N.ClassDeclaration = node;\n            cls.abstract = true;\n            if (next) {\n              this.next();\n              if (!this.match(tt._class)) {\n                this.unexpected(null, tt._class);\n              }\n            }\n            return this.parseClass(\n              cls,\n              /* isStatement */ true,\n              /* optionalId */ false,\n            );\n          }\n          break;\n\n        case \"enum\":\n          if (next || this.match(tt.name)) {\n            if (next) this.next();\n            return this.tsParseEnumDeclaration(node, /* isConst */ false);\n          }\n          break;\n\n        case \"interface\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseInterfaceDeclaration(node);\n          }\n          break;\n\n        case \"module\":\n          if (next) this.next();\n          if (this.match(tt.string)) {\n            return this.tsParseAmbientExternalModuleDeclaration(node);\n          } else if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"namespace\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"type\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseTypeAliasDeclaration(node);\n          }\n          break;\n      }\n    }\n\n    tsCheckLineTerminatorAndMatch(tokenType: TokenType, next: boolean) {\n      return (next || this.match(tokenType)) && !this.isLineTerminator();\n    }\n\n    tsTryParseGenericAsyncArrowFunction(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      if (!this.isRelational(\"<\")) {\n        return undefined;\n      }\n\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      const res: ?N.ArrowFunctionExpression = this.tsTryParseAndCatch(() => {\n        const node: N.ArrowFunctionExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.typeParameters = this.tsParseTypeParameters();\n        // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n        super.parseFunctionParams(node);\n        node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n        this.expect(tt.arrow);\n        return node;\n      });\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n\n      if (!res) {\n        return undefined;\n      }\n\n      return this.parseArrowExpression(\n        res,\n        /* params are already set */ null,\n        /* async */ true,\n      );\n    }\n\n    tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n      const node = this.startNode();\n      node.params = this.tsInType(() =>\n        // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n        this.tsInNoContext(() => {\n          this.expectRelational(\"<\");\n          return this.tsParseDelimitedList(\n            \"TypeParametersOrArguments\",\n            this.tsParseType.bind(this),\n          );\n        }),\n      );\n      // This reads the next token after the `>` too, so do this in the enclosing context.\n      // But be sure not to parse a regex in the jsx expression `<C<number> />`, so set exprAllowed = false\n      this.state.exprAllowed = false;\n      this.expectRelational(\">\");\n      return this.finishNode(node, \"TSTypeParameterInstantiation\");\n    }\n\n    tsIsDeclarationStart(): boolean {\n      if (this.match(tt.name)) {\n        switch (this.state.value) {\n          case \"abstract\":\n          case \"declare\":\n          case \"enum\":\n          case \"interface\":\n          case \"module\":\n          case \"namespace\":\n          case \"type\":\n            return true;\n        }\n      }\n\n      return false;\n    }\n\n    // ======================================================\n    // OVERRIDES\n    // ======================================================\n\n    isExportDefaultSpecifier(): boolean {\n      if (this.tsIsDeclarationStart()) return false;\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseAssignableListItem(\n      allowModifiers: ?boolean,\n      decorators: N.Decorator[],\n    ): N.Pattern | N.TSParameterProperty {\n      // Store original location/position to include modifiers in range\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      let accessibility: ?N.Accessibility;\n      let readonly = false;\n      if (allowModifiers) {\n        accessibility = this.parseAccessModifier();\n        readonly = !!this.tsParseModifier([\"readonly\"]);\n      }\n\n      const left = this.parseMaybeDefault();\n      this.parseAssignableListItemTypes(left);\n      const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n      if (accessibility || readonly) {\n        const pp: N.TSParameterProperty = this.startNodeAt(startPos, startLoc);\n        if (decorators.length) {\n          pp.decorators = decorators;\n        }\n        if (accessibility) pp.accessibility = accessibility;\n        if (readonly) pp.readonly = readonly;\n        if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n          this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind);\n        }\n        pp.parameter = ((elt: any): N.Identifier | N.AssignmentPattern);\n        return this.finishNode(pp, \"TSParameterProperty\");\n      }\n\n      if (decorators.length) {\n        left.decorators = decorators;\n      }\n\n      return elt;\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n      }\n\n      const bodilessType =\n        type === \"FunctionDeclaration\"\n          ? \"TSDeclareFunction\"\n          : type === \"ClassMethod\"\n          ? \"TSDeclareMethod\"\n          : undefined;\n      if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n        this.finishNode(node, bodilessType);\n        return;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    registerFunctionStatementId(node: N.Function): void {\n      if (!node.body && node.id) {\n        // Function ids are validated after parsing their body.\n        // For bodyless function, we need to do it here.\n        this.checkLVal(node.id, BIND_TS_AMBIENT, null, \"function name\");\n      } else {\n        super.registerFunctionStatementId(...arguments);\n      }\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      state: N.ParseSubscriptState,\n    ): N.Expression {\n      if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n        this.state.exprAllowed = false;\n        this.next();\n\n        const nonNullExpression: N.TsNonNullExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        nonNullExpression.expression = base;\n        return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n      }\n\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // There are number of things we are going to \"maybe\" parse, like type arguments on\n        // tagged template expressions. If any of them fail, walk it back and continue.\n        const result = this.tsTryParseAndCatch(() => {\n          if (!noCalls && this.atPossibleAsyncArrow(base)) {\n            // Almost certainly this is a generic async function `async <T>() => ...\n            // But it might be a call with a type argument `async<T>();`\n            const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(\n              startPos,\n              startLoc,\n            );\n            if (asyncArrowFn) {\n              return asyncArrowFn;\n            }\n          }\n\n          const node: N.CallExpression = this.startNodeAt(startPos, startLoc);\n          node.callee = base;\n\n          const typeArguments = this.tsParseTypeArguments();\n\n          if (typeArguments) {\n            if (!noCalls && this.eat(tt.parenL)) {\n              // possibleAsync always false here, because we would have handled it above.\n              // $FlowIgnore (won't be any undefined arguments)\n              node.arguments = this.parseCallExpressionArguments(\n                tt.parenR,\n                /* possibleAsync */ false,\n              );\n              node.typeParameters = typeArguments;\n              return this.finishCallExpression(node, state.optionalChainMember);\n            } else if (this.match(tt.backQuote)) {\n              return this.parseTaggedTemplateExpression(\n                startPos,\n                startLoc,\n                base,\n                state,\n                typeArguments,\n              );\n            }\n          }\n\n          this.unexpected();\n        });\n\n        if (result) return result;\n      }\n\n      return super.parseSubscript(base, startPos, startLoc, noCalls, state);\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // 99% certain this is `new C<T>();`. But may be `new C < T;`, which is also legal.\n        const typeParameters = this.tsTryParseAndCatch(() => {\n          const args = this.tsParseTypeArguments();\n          if (!this.match(tt.parenL)) this.unexpected();\n          return args;\n        });\n        if (typeParameters) {\n          node.typeParameters = typeParameters;\n        }\n      }\n\n      super.parseNewArguments(node);\n    }\n\n    parseExprOp(\n      left: N.Expression,\n      leftStartPos: number,\n      leftStartLoc: Position,\n      minPrec: number,\n      noIn: ?boolean,\n    ) {\n      if (\n        nonNull(tt._in.binop) > minPrec &&\n        !this.hasPrecedingLineBreak() &&\n        this.isContextual(\"as\")\n      ) {\n        const node: N.TsAsExpression = this.startNodeAt(\n          leftStartPos,\n          leftStartLoc,\n        );\n        node.expression = left;\n        const _const = this.tsTryNextParseConstantContext();\n        if (_const) {\n          node.typeAnnotation = _const;\n        } else {\n          node.typeAnnotation = this.tsNextThenParseType();\n        }\n        this.finishNode(node, \"TSAsExpression\");\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n\n      return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn);\n    }\n\n    checkReservedWord(\n      word: string, // eslint-disable-line no-unused-vars\n      startLoc: number, // eslint-disable-line no-unused-vars\n      checkKeywords: boolean, // eslint-disable-line no-unused-vars\n      // eslint-disable-next-line no-unused-vars\n      isBinding: boolean,\n    ): void {\n      // Don't bother checking for TypeScript code.\n      // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n      // And we have a type checker anyway, so don't bother having the parser do it.\n    }\n\n    /*\n    Don't bother doing this check in TypeScript code because:\n    1. We may have a nested export statement with the same name:\n      export const x = 0;\n      export namespace N {\n        export const x = 1;\n      }\n    2. We have a type checker to warn us about this sort of thing.\n    */\n    checkDuplicateExports() {}\n\n    parseImport(node: N.Node): N.AnyImport {\n      if (this.match(tt.name) || this.match(tt.star) || this.match(tt.braceL)) {\n        const ahead = this.lookahead();\n\n        if (this.match(tt.name) && ahead.type === tt.eq) {\n          return this.tsParseImportEqualsDeclaration(node);\n        }\n\n        if (\n          this.isContextual(\"type\") &&\n          // import type, { a } from \"b\";\n          ahead.type !== tt.comma &&\n          // import type from \"a\";\n          !(ahead.type === tt.name && ahead.value === \"from\")\n        ) {\n          node.importKind = \"type\";\n          this.next();\n        } else {\n          node.importKind = \"value\";\n        }\n      }\n\n      const importNode = super.parseImport(node);\n      /*:: invariant(importNode.type !== \"TSImportEqualsDeclaration\") */\n\n      // `import type` can only be used on imports with named imports or with a\n      // default import - but not both\n      if (\n        importNode.importKind === \"type\" &&\n        importNode.specifiers.length > 1 &&\n        importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n      ) {\n        this.raise(\n          importNode.start,\n          \"A type-only import can specify a default import or named bindings, but not both.\",\n        );\n      }\n\n      return importNode;\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      if (this.match(tt._import)) {\n        // `export import A = B;`\n        this.expect(tt._import);\n        return this.tsParseImportEqualsDeclaration(node, /* isExport */ true);\n      } else if (this.eat(tt.eq)) {\n        // `export = x;`\n        const assign: N.TsExportAssignment = node;\n        assign.expression = this.parseExpression();\n        this.semicolon();\n        return this.finishNode(assign, \"TSExportAssignment\");\n      } else if (this.eatContextual(\"as\")) {\n        // `export as namespace A;`\n        const decl: N.TsNamespaceExportDeclaration = node;\n        // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n        this.expectContextual(\"namespace\");\n        decl.id = this.parseIdentifier();\n        this.semicolon();\n        return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n      } else {\n        if (this.isContextual(\"type\") && this.lookahead().type === tt.braceL) {\n          this.next();\n          node.exportKind = \"type\";\n        } else {\n          node.exportKind = \"value\";\n        }\n\n        return super.parseExport(node);\n      }\n    }\n\n    isAbstractClass(): boolean {\n      return (\n        this.isContextual(\"abstract\") && this.lookahead().type === tt._class\n      );\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.isAbstractClass()) {\n        const cls = this.startNode();\n        this.next(); // Skip \"abstract\"\n        this.parseClass(cls, true, true);\n        cls.abstract = true;\n        return cls;\n      }\n\n      // export default interface allowed in:\n      // https://github.com/Microsoft/TypeScript/pull/16040\n      if (this.state.value === \"interface\") {\n        const result = this.tsParseDeclaration(\n          this.startNode(),\n          this.state.value,\n          true,\n        );\n\n        if (result) return result;\n      }\n\n      return super.parseExportDefaultExpression();\n    }\n\n    parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n      if (this.state.type === tt._const) {\n        const ahead = this.lookahead();\n        if (ahead.type === tt.name && ahead.value === \"enum\") {\n          const node: N.TsEnumDeclaration = this.startNode();\n          this.expect(tt._const);\n          this.expectContextual(\"enum\");\n          return this.tsParseEnumDeclaration(node, /* isConst */ true);\n        }\n      }\n      return super.parseStatementContent(context, topLevel);\n    }\n\n    parseAccessModifier(): ?N.Accessibility {\n      return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"declare\"]);\n      const accessibility = this.parseAccessModifier();\n      if (accessibility) member.accessibility = accessibility;\n      this.tsParseModifiers(member, [\"declare\"]);\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n    }\n\n    parseClassMemberWithIsStatic(\n      classBody: N.ClassBody,\n      member: N.ClassMember | N.TsIndexSignature,\n      state: { hadConstructor: boolean },\n      isStatic: boolean,\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"abstract\", \"readonly\", \"declare\"]);\n\n      const idx = this.tsTryParseIndexSignature(member);\n      if (idx) {\n        classBody.body.push(idx);\n\n        if ((member: any).abstract) {\n          this.raise(member.start, TSErrors.IndexSignatureHasAbstract);\n        }\n        if (isStatic) {\n          this.raise(member.start, TSErrors.IndexSignatureHasStatic);\n        }\n        if ((member: any).accessibility) {\n          this.raise(\n            member.start,\n            TSErrors.IndexSignatureHasAccessibility,\n            (member: any).accessibility,\n          );\n        }\n\n        return;\n      }\n\n      /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n      super.parseClassMemberWithIsStatic(\n        classBody,\n        member,\n        state,\n        isStatic,\n        constructorAllowsSuper,\n      );\n    }\n\n    parsePostMemberNameModifiers(\n      methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      const optional = this.eat(tt.question);\n      if (optional) methodOrProp.optional = true;\n\n      if ((methodOrProp: any).readonly && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly);\n      }\n\n      if ((methodOrProp: any).declare && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare);\n      }\n    }\n\n    // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n    // is that e.g. `type()` is valid JS, so we must try parsing that first.\n    // If it's really a type, we will parse `type` as the statement, and can correct it here\n    // by parsing the rest.\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.Statement {\n      const decl =\n        expr.type === \"Identifier\"\n          ? this.tsParseExpressionStatement(node, expr)\n          : undefined;\n      return decl || super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n    shouldParseExportDeclaration(): boolean {\n      if (this.tsIsDeclarationStart()) return true;\n      return super.shouldParseExportDeclaration();\n    }\n\n    // An apparent conditional expression could actually be an optional parameter in an arrow function.\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      // only do the expensive clone if there is a question mark\n      // and if we come from inside parens\n      if (!refNeedsArrowPos || !this.match(tt.question)) {\n        return super.parseConditional(\n          expr,\n          noIn,\n          startPos,\n          startLoc,\n          refNeedsArrowPos,\n        );\n      }\n\n      const result = this.tryParse(() =>\n        super.parseConditional(expr, noIn, startPos, startLoc),\n      );\n\n      if (!result.node) {\n        // $FlowIgnore\n        refNeedsArrowPos.start = result.error.pos || this.state.start;\n        return expr;\n      }\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    // Note: These \"type casts\" are *not* valid TS expressions.\n    // But we parse them here and change them when completing the arrow function.\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      // Store original location/position\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      // \"export declare\" is equivalent to just \"export\".\n      const isDeclare = this.eatContextual(\"declare\");\n\n      let declaration: ?N.Declaration;\n\n      if (this.match(tt.name)) {\n        declaration = this.tsTryParseExportDeclaration();\n      }\n      if (!declaration) {\n        declaration = super.parseExportDeclaration(node);\n      }\n      if (\n        declaration &&\n        (declaration.type === \"TSInterfaceDeclaration\" ||\n          declaration.type === \"TSTypeAliasDeclaration\" ||\n          isDeclare)\n      ) {\n        node.exportKind = \"type\";\n      }\n\n      if (declaration && isDeclare) {\n        // Reset location to include `declare` in range\n        this.resetStartLocation(declaration, startPos, startLoc);\n\n        declaration.declare = true;\n      }\n\n      return declaration;\n    }\n\n    parseClassId(\n      node: N.Class,\n      isStatement: boolean,\n      optionalId: ?boolean,\n    ): void {\n      if ((!isStatement || optionalId) && this.isContextual(\"implements\")) {\n        return;\n      }\n\n      super.parseClassId(\n        node,\n        isStatement,\n        optionalId,\n        (node: any).declare ? BIND_TS_AMBIENT : BIND_CLASS,\n      );\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n    }\n\n    parseClassPropertyAnnotation(\n      node: N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      if (!node.optional && this.eat(tt.bang)) {\n        node.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n    }\n\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      this.parseClassPropertyAnnotation(node);\n\n      if (node.declare && this.match(tt.equal)) {\n        this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer);\n      }\n\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      // $FlowIgnore\n      if (node.abstract) {\n        this.raise(node.start, TSErrors.PrivateElementHasAbstract);\n      }\n\n      // $FlowIgnore\n      if (node.accessibility) {\n        this.raise(\n          node.start,\n          TSErrors.PrivateElementHasAccessibility,\n          node.accessibility,\n        );\n      }\n\n      this.parseClassPropertyAnnotation(node);\n      return super.parseClassPrivateProperty(node);\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.tsParseTypeArguments();\n      }\n      if (this.eatContextual(\"implements\")) {\n        node.implements = this.tsParseHeritageClause(\"implements\");\n      }\n    }\n\n    parseObjPropValue(prop: N.ObjectMember, ...args): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) prop.typeParameters = typeParameters;\n\n      super.parseObjPropValue(prop, ...args);\n    }\n\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // `let x: number;`\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (decl.id.type === \"Identifier\" && this.eat(tt.bang)) {\n        decl.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) {\n        decl.id.typeAnnotation = type;\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeAnnotation();\n      }\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    parseMaybeAssign(...args): N.Expression {\n      // Note: When the JSX plugin is on, type assertions (`<T> x`) aren't valid syntax.\n\n      let state: ?State;\n      let jsx;\n      let typeCast;\n\n      if (this.match(tt.jsxTagStart)) {\n        // Prefer to parse JSX if possible. But may be an arrow fn.\n        state = this.state.clone();\n\n        jsx = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === ct.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === ct.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if (!(jsx && jsx.error) && !this.isRelational(\"<\")) {\n        return super.parseMaybeAssign(...args);\n      }\n\n      // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n      let typeParameters: N.TsTypeParameterDeclaration;\n      state = state || this.state.clone();\n\n      const arrow = this.tryParse(abort => {\n        // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n        typeParameters = this.tsParseTypeParameters();\n        const expr = super.parseMaybeAssign(...args);\n\n        if (\n          expr.type !== \"ArrowFunctionExpression\" ||\n          (expr.extra && expr.extra.parenthesized)\n        ) {\n          abort();\n        }\n\n        // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n        if (typeParameters && typeParameters.params.length !== 0) {\n          this.resetStartLocationFromNode(expr, typeParameters);\n        }\n        expr.typeParameters = typeParameters;\n        return expr;\n      }, state);\n\n      if (!arrow.error && !arrow.aborted) return arrow.node;\n\n      if (!jsx) {\n        // Try parsing a type cast instead of an arrow function.\n        // This will never happen outside of JSX.\n        // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n        assert(!this.hasPlugin(\"jsx\"));\n\n        // This will start with a type assertion (via parseMaybeUnary).\n        // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n        typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!typeCast.aborted) */\n        if (!typeCast.error) return typeCast.node;\n      }\n\n      if (jsx && jsx.node) {\n        /*:: invariant(jsx.failState) */\n        this.state = jsx.failState;\n        return jsx.node;\n      }\n\n      if (arrow.node) {\n        /*:: invariant(arrow.failState) */\n        this.state = arrow.failState;\n        return arrow.node;\n      }\n\n      if (typeCast && typeCast.node) {\n        /*:: invariant(typeCast.failState) */\n        this.state = typeCast.failState;\n        return typeCast.node;\n      }\n\n      if (jsx && jsx.thrown) throw jsx.error;\n      if (arrow.thrown) throw arrow.error;\n      if (typeCast && typeCast.thrown) throw typeCast.error;\n\n      throw (jsx && jsx.error) || arrow.error || (typeCast && typeCast.error);\n    }\n\n    // Handle type assertions\n    parseMaybeUnary(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      if (!this.hasPlugin(\"jsx\") && this.isRelational(\"<\")) {\n        return this.tsParseTypeAssertion();\n      } else {\n        return super.parseMaybeUnary(refExpressionErrors);\n      }\n    }\n\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        // This is different from how the TS parser does it.\n        // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n        const result = this.tryParse(abort => {\n          const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n            tt.colon,\n          );\n          if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n          return returnType;\n        });\n\n        if (result.aborted) return;\n\n        if (!result.thrown) {\n          if (result.error) this.state = result.failState;\n          node.returnType = result.node;\n        }\n      }\n\n      return super.parseArrow(node);\n    }\n\n    // Allow type annotations inside of a parameter list.\n    parseAssignableListItemTypes(param: N.Pattern) {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, TSErrors.PatternIsOptional);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) param.typeAnnotation = type;\n      this.resetEndLocation(param);\n\n      return param;\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      switch (node.type) {\n        case \"TSTypeCastExpression\":\n          return super.toAssignable(this.typeCastToParameter(node));\n        case \"TSParameterProperty\":\n          return super.toAssignable(node);\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          node.expression = this.toAssignable(node.expression);\n          return node;\n        default:\n          return super.toAssignable(node);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      switch (expr.type) {\n        case \"TSTypeCastExpression\":\n          // Allow \"typecasts\" to appear on the left of assignment expressions,\n          // because it may be in an arrow function.\n          // e.g. `const f = (foo: number = 0) => foo;`\n          return;\n        case \"TSParameterProperty\":\n          this.checkLVal(\n            expr.parameter,\n            bindingType,\n            checkClashes,\n            \"parameter property\",\n          );\n          return;\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          this.checkLVal(\n            expr.expression,\n            bindingType,\n            checkClashes,\n            contextDescription,\n          );\n          return;\n        default:\n          super.checkLVal(expr, bindingType, checkClashes, contextDescription);\n          return;\n      }\n    }\n\n    parseBindingAtom(): N.Pattern {\n      switch (this.state.type) {\n        case tt._this:\n          // \"this\" may be the name of a parameter, so allow it.\n          return this.parseIdentifier(/* liberal */ true);\n        default:\n          return super.parseBindingAtom();\n      }\n    }\n\n    parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsParseTypeArguments();\n\n        if (this.match(tt.parenL)) {\n          const call = super.parseMaybeDecoratorArguments(expr);\n          call.typeParameters = typeArguments;\n          return call;\n        }\n\n        this.unexpected(this.state.start, tt.parenL);\n      }\n\n      return super.parseMaybeDecoratorArguments(expr);\n    }\n\n    // === === === === === === === === === === === === === === === ===\n    // Note: All below methods are duplicates of something in flow.js.\n    // Not sure what the best way to combine these is.\n    // === === === === === === === === === === === === === === === ===\n\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    isClassProperty(): boolean {\n      return (\n        this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n      );\n    }\n\n    parseMaybeDefault(...args): N.Pattern {\n      const node = super.parseMaybeDefault(...args);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(\n          node.typeAnnotation.start,\n          TSErrors.TypeAnnotationAfterAssign,\n        );\n      }\n\n      return node;\n    }\n\n    // ensure that inside types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      if (this.state.inType && (code === 62 || code === 60)) {\n        return this.finishOp(tt.relational, 1);\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    toAssignableList(exprList: N.Expression[]): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (!expr) continue;\n        switch (expr.type) {\n          case \"TSTypeCastExpression\":\n            exprList[i] = this.typeCastToParameter(expr);\n            break;\n          case \"TSAsExpression\":\n          case \"TSTypeAssertion\":\n            if (!this.state.maybeInArrowParameters) {\n              exprList[i] = this.typeCastToParameter(expr);\n            } else {\n              this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter);\n            }\n            break;\n        }\n      }\n      return super.toAssignableList(...arguments);\n    }\n\n    typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isInParens?: boolean, // eslint-disable-line no-unused-vars\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TSTypeCastExpression\") {\n          this.raise(expr.start, TSErrors.UnexpectedTypeAnnotation);\n        }\n      }\n\n      return exprList;\n    }\n\n    shouldParseArrow() {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    canHaveLeadingDecorator() {\n      // Avoid unnecessary lookahead in checking for abstract class unless needed!\n      return super.canHaveLeadingDecorator() || this.isAbstractClass();\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsTryParseAndCatch(() =>\n          this.tsParseTypeArguments(),\n        );\n        if (typeArguments) node.typeParameters = typeArguments;\n      }\n      return super.jsxParseOpeningElementAfterName(node);\n    }\n\n    getGetterSetterExpectedParamCount(\n      method: N.ObjectMethod | N.ClassMethod,\n    ): number {\n      const baseCount = super.getGetterSetterExpectedParamCount(method);\n      const firstParam = method.params[0];\n      const hasContextParam =\n        firstParam &&\n        firstParam.type === \"Identifier\" &&\n        firstParam.name === \"this\";\n\n      return hasContextParam ? baseCount + 1 : baseCount;\n    }\n  };\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport * as N from \"../types\";\n\ntt.placeholder = new TokenType(\"%%\", { startsExpr: true });\n\nexport type PlaceholderTypes =\n  | \"Identifier\"\n  | \"StringLiteral\"\n  | \"Expression\"\n  | \"Statement\"\n  | \"Declaration\"\n  | \"BlockStatement\"\n  | \"ClassBody\"\n  | \"Pattern\";\n\n// $PropertyType doesn't support enums. Use a fake \"switch\" (GetPlaceholderNode)\n//type MaybePlaceholder<T: PlaceholderTypes> = $PropertyType<N, T> | N.Placeholder<T>;\n\ntype _Switch<Value, Cases, Index> = $Call<\n  (\n    $ElementType<$ElementType<Cases, Index>, 0>,\n  ) => $ElementType<$ElementType<Cases, Index>, 1>,\n  Value,\n>;\ntype $Switch<Value, Cases> = _Switch<Value, Cases, *>;\n\ntype NodeOf<T: PlaceholderTypes> = $Switch<\n  T,\n  [\n    [\"Identifier\", N.Identifier],\n    [\"StringLiteral\", N.StringLiteral],\n    [\"Expression\", N.Expression],\n    [\"Statement\", N.Statement],\n    [\"Declaration\", N.Declaration],\n    [\"BlockStatement\", N.BlockStatement],\n    [\"ClassBody\", N.ClassBody],\n    [\"Pattern\", N.Pattern],\n  ],\n>;\n\n// Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T: PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parsePlaceholder<T: PlaceholderTypes>(\n      expectedNode: T,\n    ): /*?N.Placeholder<T>*/ ?MaybePlaceholder<T> {\n      if (this.match(tt.placeholder)) {\n        const node = this.startNode();\n        this.next();\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n\n        // We can't use this.parseIdentifier because\n        // we don't want nested placeholders.\n        node.name = super.parseIdentifier(/* liberal */ true);\n\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n        this.expect(tt.placeholder);\n        return this.finishPlaceholder(node, expectedNode);\n      }\n    }\n\n    finishPlaceholder<T: PlaceholderTypes>(\n      node: N.Node,\n      expectedNode: T,\n    ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n      const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n      node.expectedNode = expectedNode;\n\n      return isFinished ? node : this.finishNode(node, \"Placeholder\");\n    }\n\n    /* ============================================================ *\n     * tokenizer/index.js                                           *\n     * ============================================================ */\n\n    getTokenFromCode(code: number) {\n      if (\n        code === charCodes.percentSign &&\n        this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n      ) {\n        return this.finishOp(tt.placeholder, 2);\n      }\n\n      return super.getTokenFromCode(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): MaybePlaceholder<\"Expression\"> {\n      return (\n        this.parsePlaceholder(\"Expression\") || super.parseExprAtom(...arguments)\n      );\n    }\n\n    parseIdentifier(): MaybePlaceholder<\"Identifier\"> {\n      // NOTE: This function only handles identifiers outside of\n      // expressions and binding patterns, since they are already\n      // handled by the parseExprAtom and parseBindingAtom functions.\n      // This is needed, for example, to parse \"class %%NAME%% {}\".\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseIdentifier(...arguments)\n      );\n    }\n\n    checkReservedWord(word: string): void {\n      // Sometimes we call #checkReservedWord(node.name), expecting\n      // that node is an Identifier. If it is a Placeholder, name\n      // will be undefined.\n      if (word !== undefined) super.checkReservedWord(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/lval.js                                               *\n     * ============================================================ */\n\n    parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n      return (\n        this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom(...arguments)\n      );\n    }\n\n    checkLVal(expr: N.Expression): void {\n      if (expr.type !== \"Placeholder\") super.checkLVal(...arguments);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (\n        node &&\n        node.type === \"Placeholder\" &&\n        node.expectedNode === \"Expression\"\n      ) {\n        node.expectedNode = \"Pattern\";\n        return node;\n      }\n      return super.toAssignable(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/statement.js                                          *\n     * ============================================================ */\n\n    verifyBreakContinue(node: N.BreakStatement | N.ContinueStatement) {\n      if (node.label && node.label.type === \"Placeholder\") return;\n      super.verifyBreakContinue(...arguments);\n    }\n\n    parseExpressionStatement(\n      node: MaybePlaceholder<\"Statement\">,\n      expr: N.Expression,\n    ): MaybePlaceholder<\"Statement\"> {\n      if (\n        expr.type !== \"Placeholder\" ||\n        (expr.extra && expr.extra.parenthesized)\n      ) {\n        return super.parseExpressionStatement(...arguments);\n      }\n\n      if (this.match(tt.colon)) {\n        const stmt: N.LabeledStatement = node;\n        stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n        this.next();\n        stmt.body = this.parseStatement(\"label\");\n        return this.finishNode(stmt, \"LabeledStatement\");\n      }\n\n      this.semicolon();\n\n      node.name = expr.name;\n      return this.finishPlaceholder(node, \"Statement\");\n    }\n\n    parseBlock(): MaybePlaceholder<\"BlockStatement\"> {\n      return (\n        this.parsePlaceholder(\"BlockStatement\") ||\n        super.parseBlock(...arguments)\n      );\n    }\n\n    parseFunctionId(): ?MaybePlaceholder<\"Identifier\"> {\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseFunctionId(...arguments)\n      );\n    }\n\n    parseClass<T: N.Class>(\n      node: T,\n      isStatement: /* T === ClassDeclaration */ boolean,\n      optionalId?: boolean,\n    ): T {\n      const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n      this.next();\n      this.takeDecorators(node);\n\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (placeholder) {\n        if (\n          this.match(tt._extends) ||\n          this.match(tt.placeholder) ||\n          this.match(tt.braceL)\n        ) {\n          node.id = placeholder;\n        } else if (optionalId || !isStatement) {\n          node.id = null;\n          node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n          return this.finishNode(node, type);\n        } else {\n          this.unexpected(null, \"A class name is required\");\n        }\n      } else {\n        this.parseClassId(node, isStatement, optionalId);\n      }\n\n      this.parseClassSuper(node);\n      node.body =\n        this.parsePlaceholder(\"ClassBody\") ||\n        this.parseClassBody(!!node.superClass);\n      return this.finishNode(node, type);\n    }\n\n    parseExport(node: N.Node): N.Node {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseExport(...arguments);\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // export %%DECL%%;\n        node.specifiers = [];\n        node.source = null;\n        node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n        return this.finishNode(node, \"ExportNamedDeclaration\");\n      }\n\n      // export %%NAME%% from \"foo\";\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = placeholder;\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n      return super.parseExport(node);\n    }\n\n    maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n      if (node.specifiers && node.specifiers.length > 0) {\n        // \"export %%NAME%%\" has already been parsed by #parseExport.\n        return true;\n      }\n      return super.maybeParseExportDefaultSpecifier(...arguments);\n    }\n\n    checkExport(node: N.ExportNamedDeclaration): void {\n      const { specifiers } = node;\n      if (specifiers && specifiers.length) {\n        node.specifiers = specifiers.filter(\n          node => node.exported.type === \"Placeholder\",\n        );\n      }\n      super.checkExport(node);\n      node.specifiers = specifiers;\n    }\n\n    parseImport(\n      node: N.Node,\n    ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseImport(...arguments);\n\n      node.specifiers = [];\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // import %%STRING%%;\n        node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n        this.semicolon();\n        return this.finishNode(node, \"ImportDeclaration\");\n      }\n\n      // import %%DEFAULT%% ...\n      const specifier = this.startNodeAtNode(placeholder);\n      specifier.local = placeholder;\n      this.finishNode(specifier, \"ImportDefaultSpecifier\");\n      node.specifiers.push(specifier);\n\n      if (this.eat(tt.comma)) {\n        // import %%DEFAULT%%, * as ...\n        const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n        // import %%DEFAULT%%, { ...\n        if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n      }\n\n      this.expectContextual(\"from\");\n      node.source = this.parseImportSource();\n      this.semicolon();\n      return this.finishNode(node, \"ImportDeclaration\");\n    }\n\n    parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n      // import ... from %%STRING%%;\n\n      return (\n        this.parsePlaceholder(\"StringLiteral\") ||\n        super.parseImportSource(...arguments)\n      );\n    }\n  };\n","import type Parser from \"../parser\";\nimport { types as tt } from \"../tokenizer/types\";\nimport * as N from \"../types\";\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parseV8Intrinsic(): N.Expression {\n      if (this.match(tt.modulo)) {\n        const v8IntrinsicStart = this.state.start;\n        // let the `loc` of Identifier starts from `%`\n        const node = this.startNode();\n        this.eat(tt.modulo);\n        if (this.match(tt.name)) {\n          const name = this.parseIdentifierName(this.state.start);\n          const identifier = this.createIdentifier(node, name);\n          identifier.type = \"V8IntrinsicIdentifier\";\n          if (this.match(tt.parenL)) {\n            return identifier;\n          }\n        }\n        this.unexpected(v8IntrinsicStart);\n      }\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): N.Expression {\n      return this.parseV8Intrinsic() || super.parseExprAtom(...arguments);\n    }\n  };\n","// @flow\n\nimport type Parser from \"./parser\";\n\nexport type Plugin = string | [string, Object];\n\nexport type PluginList = $ReadOnlyArray<Plugin>;\n\nexport type MixinPlugin = (superClass: Class<Parser>) => Class<Parser>;\n\nexport function hasPlugin(plugins: PluginList, name: string): boolean {\n  return plugins.some(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n}\n\nexport function getPluginOption(\n  plugins: PluginList,\n  name: string,\n  option: string,\n) {\n  const plugin = plugins.find(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n\n  if (plugin && Array.isArray(plugin)) {\n    return plugin[1][option];\n  }\n\n  return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"smart\", \"fsharp\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n  if (hasPlugin(plugins, \"decorators\")) {\n    if (hasPlugin(plugins, \"decorators-legacy\")) {\n      throw new Error(\n        \"Cannot use the decorators and decorators-legacy plugin together\",\n      );\n    }\n\n    const decoratorsBeforeExport = getPluginOption(\n      plugins,\n      \"decorators\",\n      \"decoratorsBeforeExport\",\n    );\n    if (decoratorsBeforeExport == null) {\n      throw new Error(\n        \"The 'decorators' plugin requires a 'decoratorsBeforeExport' option,\" +\n          \" whose value must be a boolean. If you are migrating from\" +\n          \" Babylon/Babel 6 or want to use the old decorators proposal, you\" +\n          \" should use the 'decorators-legacy' plugin instead of 'decorators'.\",\n      );\n    } else if (typeof decoratorsBeforeExport !== \"boolean\") {\n      throw new Error(\"'decoratorsBeforeExport' must be a boolean.\");\n    }\n  }\n\n  if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n    throw new Error(\"Cannot combine flow and typescript plugins.\");\n  }\n\n  if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n    throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n  }\n\n  if (\n    hasPlugin(plugins, \"pipelineOperator\") &&\n    !PIPELINE_PROPOSALS.includes(\n      getPluginOption(plugins, \"pipelineOperator\", \"proposal\"),\n    )\n  ) {\n    throw new Error(\n      \"'pipelineOperator' requires 'proposal' option whose value should be one of: \" +\n        PIPELINE_PROPOSALS.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n\n  if (\n    hasPlugin(plugins, \"recordAndTuple\") &&\n    !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n      getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n    )\n  ) {\n    throw new Error(\n      \"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \" +\n        RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree\";\nimport flow from \"./plugins/flow\";\nimport jsx from \"./plugins/jsx\";\nimport typescript from \"./plugins/typescript\";\nimport placeholders from \"./plugins/placeholders\";\nimport v8intrinsic from \"./plugins/v8intrinsic\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins: { [name: string]: MixinPlugin } = {\n  estree,\n  jsx,\n  flow,\n  typescript,\n  v8intrinsic,\n  placeholders,\n};\n\nexport const mixinPluginNames: $ReadOnlyArray<string> = Object.keys(\n  mixinPlugins,\n);\n","// @flow\n\nimport type { PluginList } from \"./plugin-utils\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n  sourceType: SourceType,\n  sourceFilename?: string,\n  startLine: number,\n  allowAwaitOutsideFunction: boolean,\n  allowReturnOutsideFunction: boolean,\n  allowImportExportEverywhere: boolean,\n  allowSuperOutsideMethod: boolean,\n  allowUndeclaredExports: boolean,\n  plugins: PluginList,\n  strictMode: ?boolean,\n  ranges: boolean,\n  tokens: boolean,\n  createParenthesizedExpressions: boolean,\n  errorRecovery: boolean,\n};\n\nexport const defaultOptions: Options = {\n  // Source type (\"script\" or \"module\") for different semantics\n  sourceType: \"script\",\n  // Source filename.\n  sourceFilename: undefined,\n  // Line from which to start counting source. Useful for\n  // integration with other tools.\n  startLine: 1,\n  // When enabled, await at the top level is not considered an\n  // error.\n  allowAwaitOutsideFunction: false,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // TODO\n  allowSuperOutsideMethod: false,\n  // When enabled, export statements can reference undeclared variables.\n  allowUndeclaredExports: false,\n  // An array of plugins to enable\n  plugins: [],\n  // TODO\n  strictMode: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // Adds all parsed tokens to a `tokens` property on the `File` node\n  tokens: false,\n  // Whether to create ParenthesizedExpression AST nodes (if false\n  // the parser sets extra.parenthesized on the expression nodes instead).\n  createParenthesizedExpressions: false,\n  // When enabled, errors are attached to the AST instead of being directly thrown.\n  // Some errors will still throw, because @babel/parser can't always recover.\n  errorRecovery: false,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts: ?Options): Options {\n  const options: any = {};\n  for (const key of Object.keys(defaultOptions)) {\n    options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key];\n  }\n  return options;\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport { Position } from \"../util/location\";\n\nimport { types as ct, type TokContext } from \"./context\";\nimport { types as tt, type TokenType } from \"./types\";\n\ntype TopicContextState = {\n  // When a topic binding has been currently established,\n  // then this is 1. Otherwise, it is 0. This is forwards compatible\n  // with a future plugin for multiple lexical topics.\n  maxNumOfResolvableTopics: number,\n\n  // When a topic binding has been currently established, and if that binding\n  // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n  // `null`. This is forwards compatible with a future plugin for multiple\n  // lexical topics.\n  maxTopicIndex: null | 0,\n};\n\nexport default class State {\n  strict: boolean;\n  curLine: number;\n\n  // And, if locations are used, the {line, column} object\n  // corresponding to those offsets\n  startLoc: Position;\n  endLoc: Position;\n\n  init(options: Options): void {\n    this.strict =\n      options.strictMode === false ? false : options.sourceType === \"module\";\n\n    this.curLine = options.startLine;\n    this.startLoc = this.endLoc = this.curPosition();\n  }\n\n  errors: SyntaxError[] = [];\n\n  // Used to signify the start of a potential arrow function\n  potentialArrowAt: number = -1;\n\n  // Used to signify the start of an expression which looks like a\n  // typed arrow function, but it isn't\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowAt: number[] = [];\n\n  // Used to signify the start of an expression whose params, if it looks like\n  // an arrow function, shouldn't be converted to assignable nodes.\n  // This is used to defer the validation of typed arrow functions inside\n  // conditional expressions.\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowParamsConversionAt: number[] = [];\n\n  // Flags to track\n  inParameters: boolean = false;\n  maybeInArrowParameters: boolean = false;\n  // This flag is used to track async arrow head across function declarations.\n  // e.g. async (foo = function (await) {}) => {}\n  // When parsing `await` in this expression, `maybeInAsyncArrowHead` is true\n  // but `maybeInArrowParameters` is false\n  maybeInAsyncArrowHead: boolean = false;\n  inPipeline: boolean = false;\n  inType: boolean = false;\n  noAnonFunctionType: boolean = false;\n  inPropertyName: boolean = false;\n  hasFlowComment: boolean = false;\n  isIterator: boolean = false;\n\n  // For the smartPipelines plugin:\n  topicContext: TopicContextState = {\n    maxNumOfResolvableTopics: 0,\n    maxTopicIndex: null,\n  };\n\n  // For the F# plugin\n  soloAwait: boolean = false;\n  inFSharpPipelineDirectBody: boolean = false;\n\n  // Labels in scope.\n  labels: Array<{\n    kind: ?(\"loop\" | \"switch\"),\n    name?: ?string,\n    statementStart?: number,\n  }> = [];\n\n  // Leading decorators. Last element of the stack represents the decorators in current context.\n  // Supports nesting of decorators, e.g. @foo(@bar class inner {}) class outer {}\n  // where @foo belongs to the outer class and @bar to the inner\n  decoratorStack: Array<Array<N.Decorator>> = [[]];\n\n  // Positions to delayed-check that yield/await does not exist in default parameters.\n  yieldPos: number = -1;\n  awaitPos: number = -1;\n\n  // Comment store.\n  comments: Array<N.Comment> = [];\n\n  // Comment attachment store\n  trailingComments: Array<N.Comment> = [];\n  leadingComments: Array<N.Comment> = [];\n  commentStack: Array<{\n    start: number,\n    leadingComments: ?Array<N.Comment>,\n    trailingComments: ?Array<N.Comment>,\n    type: string,\n  }> = [];\n  // $FlowIgnore this is initialized when the parser starts.\n  commentPreviousNode: N.Node = null;\n\n  // The current position of the tokenizer in the input.\n  pos: number = 0;\n  lineStart: number = 0;\n\n  // Properties of the current token:\n  // Its type\n  type: TokenType = tt.eof;\n\n  // For tokens that include more information than their type, the value\n  value: any = null;\n\n  // Its start and end offset\n  start: number = 0;\n  end: number = 0;\n\n  // Position information for the previous token\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokEndLoc: Position = null;\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokStartLoc: Position = null;\n  lastTokStart: number = 0;\n  lastTokEnd: number = 0;\n\n  // The context stack is used to superficially track syntactic\n  // context to predict whether a regular expression is allowed in a\n  // given position.\n  context: Array<TokContext> = [ct.braceStatement];\n  exprAllowed: boolean = true;\n\n  // Used to signal to callers of `readWord1` whether the word\n  // contained any escape sequences. This is needed because words with\n  // escape sequences must not be interpreted as keywords.\n  containsEsc: boolean = false;\n\n  // This property is used to throw an error for\n  // an octal literal in a directive that occurs prior\n  // to a \"use strict\" directive.\n  octalPositions: number[] = [];\n\n  // Names of exports store. `default` is stored as a name for both\n  // `export default foo;` and `export { foo as default };`.\n  exportedIdentifiers: Array<string> = [];\n\n  // Tokens length in token store\n  tokensLength: number = 0;\n\n  curPosition(): Position {\n    return new Position(this.curLine, this.pos - this.lineStart);\n  }\n\n  clone(skipArrays?: boolean): State {\n    const state = new State();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // $FlowIgnore\n      let val = this[key];\n\n      if (!skipArrays && Array.isArray(val)) {\n        val = val.slice();\n      }\n\n      // $FlowIgnore\n      state[key] = val;\n    }\n\n    return state;\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier\";\nimport { types as tt, keywords as keywordTypes, type TokenType } from \"./types\";\nimport { type TokContext, types as ct } from \"./context\";\nimport LocationParser, { Errors } from \"../parser/location\";\nimport { SourceLocation } from \"../util/location\";\nimport {\n  lineBreak,\n  lineBreakG,\n  isNewLine,\n  isWhitespace,\n  skipWhiteSpace,\n} from \"../util/whitespace\";\nimport State from \"./state\";\n\nconst VALID_REGEX_FLAGS = new Set([\"g\", \"m\", \"s\", \"i\", \"y\", \"u\"]);\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\n\nconst forbiddenNumericSeparatorSiblings = {\n  decBinOct: [\n    charCodes.dot,\n    charCodes.uppercaseB,\n    charCodes.uppercaseE,\n    charCodes.uppercaseO,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseB,\n    charCodes.lowercaseE,\n    charCodes.lowercaseO,\n  ],\n  hex: [\n    charCodes.dot,\n    charCodes.uppercaseX,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseX,\n  ],\n};\n\nconst allowedNumericSeparatorSiblings = {};\nallowedNumericSeparatorSiblings.bin = [\n  // 0 - 1\n  charCodes.digit0,\n  charCodes.digit1,\n];\nallowedNumericSeparatorSiblings.oct = [\n  // 0 - 7\n  ...allowedNumericSeparatorSiblings.bin,\n\n  charCodes.digit2,\n  charCodes.digit3,\n  charCodes.digit4,\n  charCodes.digit5,\n  charCodes.digit6,\n  charCodes.digit7,\n];\nallowedNumericSeparatorSiblings.dec = [\n  // 0 - 9\n  ...allowedNumericSeparatorSiblings.oct,\n\n  charCodes.digit8,\n  charCodes.digit9,\n];\n\nallowedNumericSeparatorSiblings.hex = [\n  // 0 - 9, A - F, a - f,\n  ...allowedNumericSeparatorSiblings.dec,\n\n  charCodes.uppercaseA,\n  charCodes.uppercaseB,\n  charCodes.uppercaseC,\n  charCodes.uppercaseD,\n  charCodes.uppercaseE,\n  charCodes.uppercaseF,\n\n  charCodes.lowercaseA,\n  charCodes.lowercaseB,\n  charCodes.lowercaseC,\n  charCodes.lowercaseD,\n  charCodes.lowercaseE,\n  charCodes.lowercaseF,\n];\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(state: State) {\n    this.type = state.type;\n    this.value = state.value;\n    this.start = state.start;\n    this.end = state.end;\n    this.loc = new SourceLocation(state.startLoc, state.endLoc);\n  }\n\n  type: TokenType;\n  value: any;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default class Tokenizer extends LocationParser {\n  // Forward-declarations\n  // parser/util.js\n  /*::\n  +unexpected: (pos?: ?number, messageOrType?: string | TokenType) => empty;\n  */\n\n  isLookahead: boolean;\n\n  // Token store.\n  tokens: Array<Token | N.Comment> = [];\n\n  constructor(options: Options, input: string) {\n    super();\n    this.state = new State();\n    this.state.init(options);\n    this.input = input;\n    this.length = input.length;\n    this.isLookahead = false;\n  }\n\n  pushToken(token: Token | N.Comment) {\n    // Pop out invalid tokens trapped by try-catch parsing.\n    // Those parsing branches are mainly created by typescript and flow plugins.\n    this.tokens.length = this.state.tokensLength;\n    this.tokens.push(token);\n    ++this.state.tokensLength;\n  }\n\n  // Move to the next token\n\n  next(): void {\n    if (!this.isLookahead) {\n      this.checkKeywordEscapes();\n      if (this.options.tokens) {\n        this.pushToken(new Token(this.state));\n      }\n    }\n\n    this.state.lastTokEnd = this.state.end;\n    this.state.lastTokStart = this.state.start;\n    this.state.lastTokEndLoc = this.state.endLoc;\n    this.state.lastTokStartLoc = this.state.startLoc;\n    this.nextToken();\n  }\n\n  // TODO\n\n  eat(type: TokenType): boolean {\n    if (this.match(type)) {\n      this.next();\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  // TODO\n\n  match(type: TokenType): boolean {\n    return this.state.type === type;\n  }\n\n  // TODO\n\n  lookahead(): State {\n    const old = this.state;\n    this.state = old.clone(true);\n\n    this.isLookahead = true;\n    this.next();\n    this.isLookahead = false;\n\n    const curr = this.state;\n    this.state = old;\n    return curr;\n  }\n\n  nextTokenStart(): number {\n    const thisTokEnd = this.state.pos;\n    skipWhiteSpace.lastIndex = thisTokEnd;\n    const skip = skipWhiteSpace.exec(this.input);\n    // $FlowIgnore: The skipWhiteSpace ensures to match any string\n    return thisTokEnd + skip[0].length;\n  }\n\n  lookaheadCharCode(): number {\n    return this.input.charCodeAt(this.nextTokenStart());\n  }\n\n  // Toggle strict mode. Re-reads the next number or string to please\n  // pedantic tests (`\"use strict\"; 010;` should fail).\n\n  setStrict(strict: boolean): void {\n    this.state.strict = strict;\n    if (!this.match(tt.num) && !this.match(tt.string)) return;\n    this.state.pos = this.state.start;\n    while (this.state.pos < this.state.lineStart) {\n      this.state.lineStart =\n        this.input.lastIndexOf(\"\\n\", this.state.lineStart - 2) + 1;\n      --this.state.curLine;\n    }\n    this.nextToken();\n  }\n\n  curContext(): TokContext {\n    return this.state.context[this.state.context.length - 1];\n  }\n\n  // Read a single token, updating the parser object's token-related\n  // properties.\n\n  nextToken(): void {\n    const curContext = this.curContext();\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\n\n    this.state.octalPositions = [];\n    this.state.start = this.state.pos;\n    this.state.startLoc = this.state.curPosition();\n    if (this.state.pos >= this.length) {\n      this.finishToken(tt.eof);\n      return;\n    }\n\n    const override = curContext?.override;\n    if (override) {\n      override(this);\n    } else {\n      this.getTokenFromCode(this.input.codePointAt(this.state.pos));\n    }\n  }\n\n  pushComment(\n    block: boolean,\n    text: string,\n    start: number,\n    end: number,\n    startLoc: Position,\n    endLoc: Position,\n  ): void {\n    const comment = {\n      type: block ? \"CommentBlock\" : \"CommentLine\",\n      value: text,\n      start: start,\n      end: end,\n      loc: new SourceLocation(startLoc, endLoc),\n    };\n\n    if (this.options.tokens) this.pushToken(comment);\n    this.state.comments.push(comment);\n    this.addComment(comment);\n  }\n\n  skipBlockComment(): void {\n    const startLoc = this.state.curPosition();\n    const start = this.state.pos;\n    const end = this.input.indexOf(\"*/\", this.state.pos + 2);\n    if (end === -1) throw this.raise(start, Errors.UnterminatedComment);\n\n    this.state.pos = end + 2;\n    lineBreakG.lastIndex = start;\n    let match;\n    while (\n      (match = lineBreakG.exec(this.input)) &&\n      match.index < this.state.pos\n    ) {\n      ++this.state.curLine;\n      this.state.lineStart = match.index + match[0].length;\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      true,\n      this.input.slice(start + 2, end),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  skipLineComment(startSkip: number): void {\n    const start = this.state.pos;\n    const startLoc = this.state.curPosition();\n    let ch = this.input.charCodeAt((this.state.pos += startSkip));\n    if (this.state.pos < this.length) {\n      while (!isNewLine(ch) && ++this.state.pos < this.length) {\n        ch = this.input.charCodeAt(this.state.pos);\n      }\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      false,\n      this.input.slice(start + startSkip, this.state.pos),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  // Called at the start of the parse and after every token. Skips\n  // whitespace and comments, and.\n\n  skipSpace(): void {\n    loop: while (this.state.pos < this.length) {\n      const ch = this.input.charCodeAt(this.state.pos);\n      switch (ch) {\n        case charCodes.space:\n        case charCodes.nonBreakingSpace:\n        case charCodes.tab:\n          ++this.state.pos;\n          break;\n        case charCodes.carriageReturn:\n          if (\n            this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n          ) {\n            ++this.state.pos;\n          }\n        // fall through\n        case charCodes.lineFeed:\n        case charCodes.lineSeparator:\n        case charCodes.paragraphSeparator:\n          ++this.state.pos;\n          ++this.state.curLine;\n          this.state.lineStart = this.state.pos;\n          break;\n\n        case charCodes.slash:\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\n            case charCodes.asterisk:\n              this.skipBlockComment();\n              break;\n\n            case charCodes.slash:\n              this.skipLineComment(2);\n              break;\n\n            default:\n              break loop;\n          }\n          break;\n\n        default:\n          if (isWhitespace(ch)) {\n            ++this.state.pos;\n          } else {\n            break loop;\n          }\n      }\n    }\n  }\n\n  // Called at the end of every token. Sets `end`, `val`, and\n  // maintains `context` and `exprAllowed`, and skips the space after\n  // the token, so that the next one's `start` will point at the\n  // right position.\n\n  finishToken(type: TokenType, val: any): void {\n    this.state.end = this.state.pos;\n    this.state.endLoc = this.state.curPosition();\n    const prevType = this.state.type;\n    this.state.type = type;\n    this.state.value = val;\n\n    if (!this.isLookahead) this.updateContext(prevType);\n  }\n\n  // ### Token reading\n\n  // This is the function that is called to fetch the next token. It\n  // is somewhat obscure, because it works in character codes rather\n  // than characters, and because operator parsing has been inlined\n  // into it.\n  //\n  // All in the name of speed.\n\n  // number sign is \"#\"\n  readToken_numberSign(): void {\n    if (this.state.pos === 0 && this.readToken_interpreter()) {\n      return;\n    }\n\n    const nextPos = this.state.pos + 1;\n    const next = this.input.charCodeAt(nextPos);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      throw this.raise(this.state.pos, Errors.UnexpectedDigitAfterHash);\n    }\n\n    if (\n      this.hasPlugin(\"recordAndTuple\") &&\n      (next === charCodes.leftCurlyBrace ||\n        next === charCodes.leftSquareBracket)\n    ) {\n      if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"hash\") {\n        throw this.raise(\n          this.state.pos,\n          next === charCodes.leftCurlyBrace\n            ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n            : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n        );\n      }\n\n      if (next === charCodes.leftCurlyBrace) {\n        // #{\n        this.finishToken(tt.braceHashL);\n      } else {\n        // #[\n        this.finishToken(tt.bracketHashL);\n      }\n      this.state.pos += 2;\n    } else if (\n      this.hasPlugin(\"classPrivateProperties\") ||\n      this.hasPlugin(\"classPrivateMethods\") ||\n      this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\"\n    ) {\n      this.finishOp(tt.hash, 1);\n    } else {\n      throw this.raise(this.state.pos, Errors.InvalidOrUnexpectedToken, \"#\");\n    }\n  }\n\n  readToken_dot(): void {\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      this.readNumber(true);\n      return;\n    }\n\n    if (\n      next === charCodes.dot &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n    ) {\n      this.state.pos += 3;\n      this.finishToken(tt.ellipsis);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.dot);\n    }\n  }\n\n  readToken_slash(): void {\n    // '/'\n    if (this.state.exprAllowed && !this.state.inType) {\n      ++this.state.pos;\n      this.readRegexp();\n      return;\n    }\n\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.slash, 1);\n    }\n  }\n\n  readToken_interpreter(): boolean {\n    if (this.state.pos !== 0 || this.length < 2) return false;\n\n    let ch = this.input.charCodeAt(this.state.pos + 1);\n    if (ch !== charCodes.exclamationMark) return false;\n\n    const start = this.state.pos;\n    this.state.pos += 1;\n\n    while (!isNewLine(ch) && ++this.state.pos < this.length) {\n      ch = this.input.charCodeAt(this.state.pos);\n    }\n\n    const value = this.input.slice(start + 2, this.state.pos);\n\n    this.finishToken(tt.interpreterDirective, value);\n\n    return true;\n  }\n\n  readToken_mult_modulo(code: number): void {\n    // '%*'\n    let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n    let width = 1;\n    let next = this.input.charCodeAt(this.state.pos + 1);\n    const exprAllowed = this.state.exprAllowed;\n\n    // Exponentiation operator **\n    if (code === charCodes.asterisk && next === charCodes.asterisk) {\n      width++;\n      next = this.input.charCodeAt(this.state.pos + 2);\n      type = tt.exponent;\n    }\n\n    if (next === charCodes.equalsTo && !exprAllowed) {\n      width++;\n      type = tt.assign;\n    }\n\n    this.finishOp(type, width);\n  }\n\n  readToken_pipe_amp(code: number): void {\n    // '||' '&&' '||=' '&&='\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, 3);\n      } else {\n        this.finishOp(\n          code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n          2,\n        );\n      }\n      return;\n    }\n\n    if (code === charCodes.verticalBar) {\n      // '|>'\n      if (next === charCodes.greaterThan) {\n        this.finishOp(tt.pipeline, 2);\n        return;\n      }\n      // '|}'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.RecordExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      // '|]'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightSquareBracket\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.TupleExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.bracketBarR, 2);\n        return;\n      }\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n      return;\n    }\n\n    this.finishOp(\n      code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n      1,\n    );\n  }\n\n  readToken_caret(): void {\n    // '^'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.bitwiseXOR, 1);\n    }\n  }\n\n  readToken_plus_min(code: number): void {\n    // '+-'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (\n        next === charCodes.dash &&\n        !this.inModule &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan &&\n        (this.state.lastTokEnd === 0 ||\n          lineBreak.test(\n            this.input.slice(this.state.lastTokEnd, this.state.pos),\n          ))\n      ) {\n        // A `-->` line comment\n        this.skipLineComment(3);\n        this.skipSpace();\n        this.nextToken();\n        return;\n      }\n      this.finishOp(tt.incDec, 2);\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.plusMin, 1);\n    }\n  }\n\n  readToken_lt_gt(code: number): void {\n    // '<>'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    let size = 1;\n\n    if (next === code) {\n      size =\n        code === charCodes.greaterThan &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan\n          ? 3\n          : 2;\n      if (this.input.charCodeAt(this.state.pos + size) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, size + 1);\n        return;\n      }\n      this.finishOp(tt.bitShift, size);\n      return;\n    }\n\n    if (\n      next === charCodes.exclamationMark &&\n      code === charCodes.lessThan &&\n      !this.inModule &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dash &&\n      this.input.charCodeAt(this.state.pos + 3) === charCodes.dash\n    ) {\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\n      this.skipLineComment(4);\n      this.skipSpace();\n      this.nextToken();\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      // <= | >=\n      size = 2;\n    }\n\n    this.finishOp(tt.relational, size);\n  }\n\n  readToken_eq_excl(code: number): void {\n    // '=!'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(\n        tt.equality,\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo\n          ? 3\n          : 2,\n      );\n      return;\n    }\n    if (code === charCodes.equalsTo && next === charCodes.greaterThan) {\n      // '=>'\n      this.state.pos += 2;\n      this.finishToken(tt.arrow);\n      return;\n    }\n    this.finishOp(code === charCodes.equalsTo ? tt.eq : tt.bang, 1);\n  }\n\n  readToken_question(): void {\n    // '?'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    const next2 = this.input.charCodeAt(this.state.pos + 2);\n    if (next === charCodes.questionMark && !this.state.inType) {\n      if (next2 === charCodes.equalsTo) {\n        // '??='\n        this.finishOp(tt.assign, 3);\n      } else {\n        // '??'\n        this.finishOp(tt.nullishCoalescing, 2);\n      }\n    } else if (\n      next === charCodes.dot &&\n      !(next2 >= charCodes.digit0 && next2 <= charCodes.digit9)\n    ) {\n      // '.' not followed by a number\n      this.state.pos += 2;\n      this.finishToken(tt.questionDot);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.question);\n    }\n  }\n\n  getTokenFromCode(code: number): void {\n    switch (code) {\n      // The interpretation of a dot depends on whether it is followed\n      // by a digit or another two dots.\n\n      case charCodes.dot:\n        this.readToken_dot();\n        return;\n\n      // Punctuation tokens.\n      case charCodes.leftParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenL);\n        return;\n      case charCodes.rightParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenR);\n        return;\n      case charCodes.semicolon:\n        ++this.state.pos;\n        this.finishToken(tt.semi);\n        return;\n      case charCodes.comma:\n        ++this.state.pos;\n        this.finishToken(tt.comma);\n        return;\n      case charCodes.leftSquareBracket:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.TupleExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // [|\n          this.finishToken(tt.bracketBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.bracketL);\n        }\n        return;\n      case charCodes.rightSquareBracket:\n        ++this.state.pos;\n        this.finishToken(tt.bracketR);\n        return;\n      case charCodes.leftCurlyBrace:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.RecordExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // {|\n          this.finishToken(tt.braceBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.braceL);\n        }\n        return;\n      case charCodes.rightCurlyBrace:\n        ++this.state.pos;\n        this.finishToken(tt.braceR);\n        return;\n\n      case charCodes.colon:\n        if (\n          this.hasPlugin(\"functionBind\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.colon\n        ) {\n          this.finishOp(tt.doubleColon, 2);\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.colon);\n        }\n        return;\n\n      case charCodes.questionMark:\n        this.readToken_question();\n        return;\n\n      case charCodes.graveAccent:\n        ++this.state.pos;\n        this.finishToken(tt.backQuote);\n        return;\n\n      case charCodes.digit0: {\n        const next = this.input.charCodeAt(this.state.pos + 1);\n        // '0x', '0X' - hex number\n        if (next === charCodes.lowercaseX || next === charCodes.uppercaseX) {\n          this.readRadixNumber(16);\n          return;\n        }\n        // '0o', '0O' - octal number\n        if (next === charCodes.lowercaseO || next === charCodes.uppercaseO) {\n          this.readRadixNumber(8);\n          return;\n        }\n        // '0b', '0B' - binary number\n        if (next === charCodes.lowercaseB || next === charCodes.uppercaseB) {\n          this.readRadixNumber(2);\n          return;\n        }\n      }\n      // Anything else beginning with a digit is an integer, octal\n      // number, or float. (fall through)\n      case charCodes.digit1:\n      case charCodes.digit2:\n      case charCodes.digit3:\n      case charCodes.digit4:\n      case charCodes.digit5:\n      case charCodes.digit6:\n      case charCodes.digit7:\n      case charCodes.digit8:\n      case charCodes.digit9:\n        this.readNumber(false);\n        return;\n\n      // Quotes produce strings.\n      case charCodes.quotationMark:\n      case charCodes.apostrophe:\n        this.readString(code);\n        return;\n\n      // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is\n      // often referred to. `finishOp` simply skips the amount of\n      // characters it is given as second argument, and returns a token\n      // of the type given by its first argument.\n\n      case charCodes.slash:\n        this.readToken_slash();\n        return;\n\n      case charCodes.percentSign:\n      case charCodes.asterisk:\n        this.readToken_mult_modulo(code);\n        return;\n\n      case charCodes.verticalBar:\n      case charCodes.ampersand:\n        this.readToken_pipe_amp(code);\n        return;\n\n      case charCodes.caret:\n        this.readToken_caret();\n        return;\n\n      case charCodes.plusSign:\n      case charCodes.dash:\n        this.readToken_plus_min(code);\n        return;\n\n      case charCodes.lessThan:\n      case charCodes.greaterThan:\n        this.readToken_lt_gt(code);\n        return;\n\n      case charCodes.equalsTo:\n      case charCodes.exclamationMark:\n        this.readToken_eq_excl(code);\n        return;\n\n      case charCodes.tilde:\n        this.finishOp(tt.tilde, 1);\n        return;\n\n      case charCodes.atSign:\n        ++this.state.pos;\n        this.finishToken(tt.at);\n        return;\n\n      case charCodes.numberSign:\n        this.readToken_numberSign();\n        return;\n\n      case charCodes.backslash:\n        this.readWord();\n        return;\n\n      default:\n        if (isIdentifierStart(code)) {\n          this.readWord();\n          return;\n        }\n    }\n\n    throw this.raise(\n      this.state.pos,\n      Errors.InvalidOrUnexpectedToken,\n      String.fromCodePoint(code),\n    );\n  }\n\n  finishOp(type: TokenType, size: number): void {\n    const str = this.input.slice(this.state.pos, this.state.pos + size);\n    this.state.pos += size;\n    this.finishToken(type, str);\n  }\n\n  readRegexp(): void {\n    const start = this.state.pos;\n    let escaped, inClass;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      const ch = this.input.charAt(this.state.pos);\n      if (lineBreak.test(ch)) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      if (escaped) {\n        escaped = false;\n      } else {\n        if (ch === \"[\") {\n          inClass = true;\n        } else if (ch === \"]\" && inClass) {\n          inClass = false;\n        } else if (ch === \"/\" && !inClass) {\n          break;\n        }\n        escaped = ch === \"\\\\\";\n      }\n      ++this.state.pos;\n    }\n    const content = this.input.slice(start, this.state.pos);\n    ++this.state.pos;\n\n    let mods = \"\";\n\n    while (this.state.pos < this.length) {\n      const char = this.input[this.state.pos];\n      const charCode = this.input.codePointAt(this.state.pos);\n\n      if (VALID_REGEX_FLAGS.has(char)) {\n        if (mods.indexOf(char) > -1) {\n          this.raise(this.state.pos + 1, Errors.DuplicateRegExpFlags);\n        }\n      } else if (\n        isIdentifierChar(charCode) ||\n        charCode === charCodes.backslash\n      ) {\n        this.raise(this.state.pos + 1, Errors.MalformedRegExpFlags);\n      } else {\n        break;\n      }\n\n      ++this.state.pos;\n      mods += char;\n    }\n\n    this.finishToken(tt.regexp, {\n      pattern: content,\n      flags: mods,\n    });\n  }\n\n  // Read an integer in the given radix. Return null if zero digits\n  // were read, the integer value otherwise. When `len` is given, this\n  // will return `null` unless the integer has exactly `len` digits.\n  // When `forceLen` is `true`, it means that we already know that in case\n  // of a malformed number we have to skip `len` characters anyway, instead\n  // of bailing out early. For example, in \"\\u{123Z}\" we want to read up to }\n  // anyway, while in \"\\u00Z\" we will stop at Z instead of consuming four\n  // characters (and thus the closing quote).\n\n  readInt(\n    radix: number,\n    len?: number,\n    forceLen?: boolean,\n    allowNumSeparator: boolean = true,\n  ): number | null {\n    const start = this.state.pos;\n    const forbiddenSiblings =\n      radix === 16\n        ? forbiddenNumericSeparatorSiblings.hex\n        : forbiddenNumericSeparatorSiblings.decBinOct;\n    const allowedSiblings =\n      radix === 16\n        ? allowedNumericSeparatorSiblings.hex\n        : radix === 10\n        ? allowedNumericSeparatorSiblings.dec\n        : radix === 8\n        ? allowedNumericSeparatorSiblings.oct\n        : allowedNumericSeparatorSiblings.bin;\n\n    let invalid = false;\n    let total = 0;\n\n    for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n      const code = this.input.charCodeAt(this.state.pos);\n      let val;\n\n      if (this.hasPlugin(\"numericSeparator\")) {\n        if (code === charCodes.underscore) {\n          const prev = this.input.charCodeAt(this.state.pos - 1);\n          const next = this.input.charCodeAt(this.state.pos + 1);\n          if (allowedSiblings.indexOf(next) === -1) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          } else if (\n            forbiddenSiblings.indexOf(prev) > -1 ||\n            forbiddenSiblings.indexOf(next) > -1 ||\n            Number.isNaN(next)\n          ) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          }\n\n          if (!allowNumSeparator) {\n            this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence);\n          }\n\n          // Ignore this _ character\n          ++this.state.pos;\n          continue;\n        }\n      }\n\n      if (code >= charCodes.lowercaseA) {\n        val = code - charCodes.lowercaseA + charCodes.lineFeed;\n      } else if (code >= charCodes.uppercaseA) {\n        val = code - charCodes.uppercaseA + charCodes.lineFeed;\n      } else if (charCodes.isDigit(code)) {\n        val = code - charCodes.digit0; // 0-9\n      } else {\n        val = Infinity;\n      }\n      if (val >= radix) {\n        // If we are in \"errorRecovery\" mode and we found a digit which is too big,\n        // don't break the loop.\n\n        if (this.options.errorRecovery && val <= 9) {\n          val = 0;\n          this.raise(this.state.start + i + 2, Errors.InvalidDigit, radix);\n        } else if (forceLen) {\n          val = 0;\n          invalid = true;\n        } else {\n          break;\n        }\n      }\n      ++this.state.pos;\n      total = total * radix + val;\n    }\n    if (\n      this.state.pos === start ||\n      (len != null && this.state.pos - start !== len) ||\n      invalid\n    ) {\n      return null;\n    }\n\n    return total;\n  }\n\n  readRadixNumber(radix: number): void {\n    const start = this.state.pos;\n    let isBigInt = false;\n\n    this.state.pos += 2; // 0x\n    const val = this.readInt(radix);\n    if (val == null) {\n      this.raise(this.state.start + 2, Errors.InvalidDigit, radix);\n    }\n\n    if (this.input.charCodeAt(this.state.pos) === charCodes.lowercaseN) {\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    if (isBigInt) {\n      const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    this.finishToken(tt.num, val);\n  }\n\n  // Read an integer, octal integer, or floating-point number.\n\n  readNumber(startsWithDot: boolean): void {\n    const start = this.state.pos;\n    let isFloat = false;\n    let isBigInt = false;\n    let isNonOctalDecimalInt = false;\n\n    if (!startsWithDot && this.readInt(10) === null) {\n      this.raise(start, Errors.InvalidNumber);\n    }\n    let octal =\n      this.state.pos - start >= 2 &&\n      this.input.charCodeAt(start) === charCodes.digit0;\n    if (octal) {\n      if (this.state.strict) {\n        this.raise(start, Errors.StrictOctalLiteral);\n      }\n      if (/[89]/.test(this.input.slice(start, this.state.pos))) {\n        octal = false;\n        isNonOctalDecimalInt = true;\n      }\n    }\n\n    let next = this.input.charCodeAt(this.state.pos);\n    if (next === charCodes.dot && !octal) {\n      ++this.state.pos;\n      this.readInt(10);\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    if (\n      (next === charCodes.uppercaseE || next === charCodes.lowercaseE) &&\n      !octal\n    ) {\n      next = this.input.charCodeAt(++this.state.pos);\n      if (next === charCodes.plusSign || next === charCodes.dash) {\n        ++this.state.pos;\n      }\n      if (this.readInt(10) === null) this.raise(start, \"Invalid number\");\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    // disallow numeric separators in non octal decimals and legacy octal likes\n    if (this.hasPlugin(\"numericSeparator\") && (octal || isNonOctalDecimalInt)) {\n      const underscorePos = this.input\n        .slice(start, this.state.pos)\n        .indexOf(\"_\");\n      if (underscorePos > 0) {\n        this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator);\n      }\n    }\n\n    if (next === charCodes.lowercaseN) {\n      // disallow floats, legacy octal syntax and non octal decimals\n      // new style octal (\"0o\") is handled in this.readRadixNumber\n      if (isFloat || octal || isNonOctalDecimalInt) {\n        this.raise(start, \"Invalid BigIntLiteral\");\n      }\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    // remove \"_\" for numeric literal separator, and \"n\" for BigInts\n    const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n\n    if (isBigInt) {\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    const val = octal ? parseInt(str, 8) : parseFloat(str);\n    this.finishToken(tt.num, val);\n  }\n\n  // Read a string value, interpreting backslash-escapes.\n\n  readCodePoint(throwOnInvalid: boolean): number | null {\n    const ch = this.input.charCodeAt(this.state.pos);\n    let code;\n\n    if (ch === charCodes.leftCurlyBrace) {\n      const codePos = ++this.state.pos;\n      code = this.readHexChar(\n        this.input.indexOf(\"}\", this.state.pos) - this.state.pos,\n        true,\n        throwOnInvalid,\n      );\n      ++this.state.pos;\n      if (code !== null && code > 0x10ffff) {\n        if (throwOnInvalid) {\n          this.raise(codePos, Errors.InvalidCodePoint);\n        } else {\n          return null;\n        }\n      }\n    } else {\n      code = this.readHexChar(4, false, throwOnInvalid);\n    }\n    return code;\n  }\n\n  readString(quote: number): void {\n    let out = \"\",\n      chunkStart = ++this.state.pos;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (ch === quote) break;\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        // $FlowFixMe\n        out += this.readEscapedChar(false);\n        chunkStart = this.state.pos;\n      } else if (\n        ch === charCodes.lineSeparator ||\n        ch === charCodes.paragraphSeparator\n      ) {\n        ++this.state.pos;\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      } else {\n        ++this.state.pos;\n      }\n    }\n    out += this.input.slice(chunkStart, this.state.pos++);\n    this.finishToken(tt.string, out);\n  }\n\n  // Reads template string tokens.\n\n  readTmplToken(): void {\n    let out = \"\",\n      chunkStart = this.state.pos,\n      containsInvalid = false;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedTemplate);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (\n        ch === charCodes.graveAccent ||\n        (ch === charCodes.dollarSign &&\n          this.input.charCodeAt(this.state.pos + 1) ===\n            charCodes.leftCurlyBrace)\n      ) {\n        if (this.state.pos === this.state.start && this.match(tt.template)) {\n          if (ch === charCodes.dollarSign) {\n            this.state.pos += 2;\n            this.finishToken(tt.dollarBraceL);\n            return;\n          } else {\n            ++this.state.pos;\n            this.finishToken(tt.backQuote);\n            return;\n          }\n        }\n        out += this.input.slice(chunkStart, this.state.pos);\n        this.finishToken(tt.template, containsInvalid ? null : out);\n        return;\n      }\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        const escaped = this.readEscapedChar(true);\n        if (escaped === null) {\n          containsInvalid = true;\n        } else {\n          out += escaped;\n        }\n        chunkStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        ++this.state.pos;\n        switch (ch) {\n          case charCodes.carriageReturn:\n            if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n              ++this.state.pos;\n            }\n          // fall through\n          case charCodes.lineFeed:\n            out += \"\\n\";\n            break;\n          default:\n            out += String.fromCharCode(ch);\n            break;\n        }\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n        chunkStart = this.state.pos;\n      } else {\n        ++this.state.pos;\n      }\n    }\n  }\n\n  // Used to read escaped characters\n\n  readEscapedChar(inTemplate: boolean): string | null {\n    const throwOnInvalid = !inTemplate;\n    const ch = this.input.charCodeAt(++this.state.pos);\n    ++this.state.pos;\n    switch (ch) {\n      case charCodes.lowercaseN:\n        return \"\\n\";\n      case charCodes.lowercaseR:\n        return \"\\r\";\n      case charCodes.lowercaseX: {\n        const code = this.readHexChar(2, false, throwOnInvalid);\n        return code === null ? null : String.fromCharCode(code);\n      }\n      case charCodes.lowercaseU: {\n        const code = this.readCodePoint(throwOnInvalid);\n        return code === null ? null : String.fromCodePoint(code);\n      }\n      case charCodes.lowercaseT:\n        return \"\\t\";\n      case charCodes.lowercaseB:\n        return \"\\b\";\n      case charCodes.lowercaseV:\n        return \"\\u000b\";\n      case charCodes.lowercaseF:\n        return \"\\f\";\n      case charCodes.carriageReturn:\n        if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n          ++this.state.pos;\n        }\n      // fall through\n      case charCodes.lineFeed:\n        this.state.lineStart = this.state.pos;\n        ++this.state.curLine;\n      // fall through\n      case charCodes.lineSeparator:\n      case charCodes.paragraphSeparator:\n        return \"\";\n      case charCodes.digit8:\n      case charCodes.digit9:\n        if (inTemplate) {\n          return null;\n        }\n      // fall through\n      default:\n        if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n          const codePos = this.state.pos - 1;\n          // $FlowFixMe\n          let octalStr = this.input\n            .substr(this.state.pos - 1, 3)\n            .match(/^[0-7]+/)[0];\n          let octal = parseInt(octalStr, 8);\n          if (octal > 255) {\n            octalStr = octalStr.slice(0, -1);\n            octal = parseInt(octalStr, 8);\n          }\n          this.state.pos += octalStr.length - 1;\n          const next = this.input.charCodeAt(this.state.pos);\n          if (\n            octalStr !== \"0\" ||\n            next === charCodes.digit8 ||\n            next === charCodes.digit9\n          ) {\n            if (inTemplate) {\n              return null;\n            } else if (this.state.strict) {\n              this.raise(codePos, Errors.StrictOctalLiteral);\n            } else {\n              // This property is used to throw an error for\n              // an octal literal in a directive that occurs prior\n              // to a \"use strict\" directive.\n              this.state.octalPositions.push(codePos);\n            }\n          }\n\n          return String.fromCharCode(octal);\n        }\n\n        return String.fromCharCode(ch);\n    }\n  }\n\n  // Used to read character escape sequences ('\\x', '\\u').\n\n  readHexChar(\n    len: number,\n    forceLen: boolean,\n    throwOnInvalid: boolean,\n  ): number | null {\n    const codePos = this.state.pos;\n    const n = this.readInt(16, len, forceLen, false);\n    if (n === null) {\n      if (throwOnInvalid) {\n        this.raise(codePos, Errors.InvalidEscapeSequence);\n      } else {\n        this.state.pos = codePos - 1;\n      }\n    }\n    return n;\n  }\n\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\n  // to whether the word contained a '\\u' escape.\n  //\n  // Incrementally adds only escaped chars, adding other chunks as-is\n  // as a micro-optimization.\n\n  readWord1(): string {\n    let word = \"\";\n    this.state.containsEsc = false;\n    const start = this.state.pos;\n    let chunkStart = this.state.pos;\n\n    while (this.state.pos < this.length) {\n      const ch = this.input.codePointAt(this.state.pos);\n      if (isIdentifierChar(ch)) {\n        this.state.pos += ch <= 0xffff ? 1 : 2;\n      } else if (this.state.isIterator && ch === charCodes.atSign) {\n        ++this.state.pos;\n      } else if (ch === charCodes.backslash) {\n        this.state.containsEsc = true;\n\n        word += this.input.slice(chunkStart, this.state.pos);\n        const escStart = this.state.pos;\n        const identifierCheck =\n          this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n\n        if (this.input.charCodeAt(++this.state.pos) !== charCodes.lowercaseU) {\n          this.raise(this.state.pos, Errors.MissingUnicodeEscape);\n          continue;\n        }\n\n        ++this.state.pos;\n        const esc = this.readCodePoint(true);\n        if (esc !== null) {\n          if (!identifierCheck(esc)) {\n            this.raise(escStart, Errors.EscapedCharNotAnIdentifier);\n          }\n\n          word += String.fromCodePoint(esc);\n        }\n        chunkStart = this.state.pos;\n      } else {\n        break;\n      }\n    }\n    return word + this.input.slice(chunkStart, this.state.pos);\n  }\n\n  isIterator(word: string): boolean {\n    return word === \"@@iterator\" || word === \"@@asyncIterator\";\n  }\n\n  // Read an identifier or keyword token. Will check for reserved\n  // words when necessary.\n\n  readWord(): void {\n    const word = this.readWord1();\n    const type = keywordTypes.get(word) || tt.name;\n\n    // Allow @@iterator and @@asyncIterator as a identifier only inside type\n    if (\n      this.state.isIterator &&\n      (!this.isIterator(word) || !this.state.inType)\n    ) {\n      this.raise(this.state.pos, Errors.InvalidIdentifier, word);\n    }\n\n    this.finishToken(type, word);\n  }\n\n  checkKeywordEscapes(): void {\n    const kw = this.state.type.keyword;\n    if (kw && this.state.containsEsc) {\n      this.raise(this.state.start, Errors.InvalidEscapedReservedWord, kw);\n    }\n  }\n\n  braceIsBlock(prevType: TokenType): boolean {\n    const parent = this.curContext();\n    if (parent === ct.functionExpression || parent === ct.functionStatement) {\n      return true;\n    }\n    if (\n      prevType === tt.colon &&\n      (parent === ct.braceStatement || parent === ct.braceExpression)\n    ) {\n      return !parent.isExpr;\n    }\n\n    // The check for `tt.name && exprAllowed` detects whether we are\n    // after a `yield` or `of` construct. See the `updateContext` for\n    // `tt.name`.\n    if (\n      prevType === tt._return ||\n      (prevType === tt.name && this.state.exprAllowed)\n    ) {\n      return lineBreak.test(\n        this.input.slice(this.state.lastTokEnd, this.state.start),\n      );\n    }\n\n    if (\n      prevType === tt._else ||\n      prevType === tt.semi ||\n      prevType === tt.eof ||\n      prevType === tt.parenR ||\n      prevType === tt.arrow\n    ) {\n      return true;\n    }\n\n    if (prevType === tt.braceL) {\n      return parent === ct.braceStatement;\n    }\n\n    if (\n      prevType === tt._var ||\n      prevType === tt._const ||\n      prevType === tt.name\n    ) {\n      return false;\n    }\n\n    if (prevType === tt.relational) {\n      // `class C<T> { ... }`\n      return true;\n    }\n\n    return !this.state.exprAllowed;\n  }\n\n  updateContext(prevType: TokenType): void {\n    const type = this.state.type;\n    let update;\n\n    if (type.keyword && (prevType === tt.dot || prevType === tt.questionDot)) {\n      this.state.exprAllowed = false;\n    } else if ((update = type.updateContext)) {\n      update.call(this, prevType);\n    } else {\n      this.state.exprAllowed = type.beforeExpr;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport Tokenizer from \"../tokenizer\";\nimport State from \"../tokenizer/state\";\nimport type { Node } from \"../types\";\nimport { lineBreak } from \"../util/whitespace\";\nimport { isIdentifierChar } from \"../util/identifier\";\nimport * as charCodes from \"charcodes\";\nimport { Errors } from \"./location\";\n\ntype TryParse<Node, Error, Thrown, Aborted, FailState> = {\n  node: Node,\n  error: Error,\n  thrown: Thrown,\n  aborted: Aborted,\n  failState: FailState,\n};\n\n// ## Parser utilities\n\nexport default class UtilParser extends Tokenizer {\n  // TODO\n\n  addExtra(node: Node, key: string, val: any): void {\n    if (!node) return;\n\n    const extra = (node.extra = node.extra || {});\n    extra[key] = val;\n  }\n\n  // TODO\n\n  isRelational(op: \"<\" | \">\"): boolean {\n    return this.match(tt.relational) && this.state.value === op;\n  }\n\n  isLookaheadRelational(op: \"<\" | \">\"): boolean {\n    const next = this.nextTokenStart();\n    if (this.input.charAt(next) === op) {\n      if (next + 1 === this.input.length) {\n        return true;\n      }\n      const afterNext = this.input.charCodeAt(next + 1);\n      return afterNext !== op.charCodeAt(0) && afterNext !== charCodes.equalsTo;\n    }\n    return false;\n  }\n\n  // TODO\n\n  expectRelational(op: \"<\" | \">\"): void {\n    if (this.isRelational(op)) {\n      this.next();\n    } else {\n      this.unexpected(null, tt.relational);\n    }\n  }\n\n  // Tests whether parsed token is a contextual keyword.\n\n  isContextual(name: string): boolean {\n    return (\n      this.match(tt.name) &&\n      this.state.value === name &&\n      !this.state.containsEsc\n    );\n  }\n\n  isUnparsedContextual(nameStart: number, name: string): boolean {\n    const nameEnd = nameStart + name.length;\n    return (\n      this.input.slice(nameStart, nameEnd) === name &&\n      (nameEnd === this.input.length ||\n        !isIdentifierChar(this.input.charCodeAt(nameEnd)))\n    );\n  }\n\n  isLookaheadContextual(name: string): boolean {\n    const next = this.nextTokenStart();\n    return this.isUnparsedContextual(next, name);\n  }\n\n  // Consumes contextual keyword if possible.\n\n  eatContextual(name: string): boolean {\n    return this.isContextual(name) && this.eat(tt.name);\n  }\n\n  // Asserts that following token is given contextual keyword.\n\n  expectContextual(name: string, message?: string): void {\n    if (!this.eatContextual(name)) this.unexpected(null, message);\n  }\n\n  // Test whether a semicolon can be inserted at the current position.\n\n  canInsertSemicolon(): boolean {\n    return (\n      this.match(tt.eof) ||\n      this.match(tt.braceR) ||\n      this.hasPrecedingLineBreak()\n    );\n  }\n\n  hasPrecedingLineBreak(): boolean {\n    return lineBreak.test(\n      this.input.slice(this.state.lastTokEnd, this.state.start),\n    );\n  }\n\n  // TODO\n\n  isLineTerminator(): boolean {\n    return this.eat(tt.semi) || this.canInsertSemicolon();\n  }\n\n  // Consume a semicolon, or, failing that, see if we are allowed to\n  // pretend that there is a semicolon at this position.\n\n  semicolon(): void {\n    if (!this.isLineTerminator()) this.unexpected(null, tt.semi);\n  }\n\n  // Expect a token of a given type. If found, consume it, otherwise,\n  // raise an unexpected token error at given pos.\n\n  expect(type: TokenType, pos?: ?number): void {\n    this.eat(type) || this.unexpected(pos, type);\n  }\n\n  // Throws if the current token and the prev one are separated by a space.\n  assertNoSpace(message: string = \"Unexpected space.\"): void {\n    if (this.state.start > this.state.lastTokEnd) {\n      this.raise(this.state.lastTokEnd, message);\n    }\n  }\n\n  // Raise an unexpected token error. Can take the expected token type\n  // instead of a message string.\n\n  unexpected(\n    pos: ?number,\n    messageOrType: string | TokenType = \"Unexpected token\",\n  ): empty {\n    if (typeof messageOrType !== \"string\") {\n      messageOrType = `Unexpected token, expected \"${messageOrType.label}\"`;\n    }\n    throw this.raise(pos != null ? pos : this.state.start, messageOrType);\n  }\n\n  expectPlugin(name: string, pos?: ?number): true {\n    if (!this.hasPlugin(name)) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: [name] },\n        `This experimental syntax requires enabling the parser plugin: '${name}'`,\n      );\n    }\n\n    return true;\n  }\n\n  expectOnePlugin(names: Array<string>, pos?: ?number): void {\n    if (!names.some(n => this.hasPlugin(n))) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: names },\n        `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(\n          \", \",\n        )}'`,\n      );\n    }\n  }\n\n  checkYieldAwaitInDefaultParams() {\n    if (\n      this.state.yieldPos !== -1 &&\n      (this.state.awaitPos === -1 || this.state.yieldPos < this.state.awaitPos)\n    ) {\n      this.raise(\n        this.state.yieldPos,\n        \"Yield cannot be used as name inside a generator function\",\n      );\n    }\n    if (this.state.awaitPos !== -1) {\n      this.raise(\n        this.state.awaitPos,\n        \"Await cannot be used as name inside an async function\",\n      );\n    }\n  }\n\n  // tryParse will clone parser state.\n  // It is expensive and should be used with cautions\n  tryParse<T: Node | $ReadOnlyArray<Node>>(\n    fn: (abort: (node?: T) => empty) => T,\n    oldState: State = this.state.clone(),\n  ):\n    | TryParse<T, null, false, false, null>\n    | TryParse<T | null, SyntaxError, boolean, false, State>\n    | TryParse<T | null, null, false, true, State> {\n    const abortSignal: { node: T | null } = { node: null };\n    try {\n      const node = fn((node = null) => {\n        abortSignal.node = node;\n        throw abortSignal;\n      });\n      if (this.state.errors.length > oldState.errors.length) {\n        const failState = this.state;\n        this.state = oldState;\n        return {\n          node,\n          error: (failState.errors[oldState.errors.length]: SyntaxError),\n          thrown: false,\n          aborted: false,\n          failState,\n        };\n      }\n\n      return {\n        node,\n        error: null,\n        thrown: false,\n        aborted: false,\n        failState: null,\n      };\n    } catch (error) {\n      const failState = this.state;\n      this.state = oldState;\n      if (error instanceof SyntaxError) {\n        return { node: null, error, thrown: true, aborted: false, failState };\n      }\n      if (error === abortSignal) {\n        return {\n          node: abortSignal.node,\n          error: null,\n          thrown: false,\n          aborted: true,\n          failState,\n        };\n      }\n\n      throw error;\n    }\n  }\n\n  checkExpressionErrors(\n    refExpressionErrors: ?ExpressionErrors,\n    andThrow: boolean,\n  ) {\n    if (!refExpressionErrors) return false;\n    const { shorthandAssign, doubleProto } = refExpressionErrors;\n    if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0;\n    if (shorthandAssign >= 0) {\n      this.unexpected(shorthandAssign);\n    }\n    if (doubleProto >= 0) {\n      this.raise(doubleProto, Errors.DuplicateProto);\n    }\n  }\n}\n\n/**\n * The ExpressionErrors is a context struct used to track\n * - **shorthandAssign**: track initializer `=` position when parsing ambiguous\n *   patterns. When we are sure the parsed pattern is a RHS, which means it is\n *   not a pattern, we will throw on this position on invalid assign syntax,\n *   otherwise it will be reset to -1\n * - **doubleProto**: track the duplicate `__proto__` key position when parsing\n *   ambiguous object patterns. When we are sure the parsed pattern is a RHS,\n *   which means it is an object literal, we will throw on this position for\n *   __proto__ redefinition, otherwise it will be reset to -1\n */\nexport class ExpressionErrors {\n  shorthandAssign = -1;\n  doubleProto = -1;\n}\n","// @flow\n\nimport type Parser from \"./index\";\nimport UtilParser from \"./util\";\nimport { SourceLocation, type Position } from \"../util/location\";\nimport type { Comment, Node as NodeType, NodeBase } from \"../types\";\n\n// Start an AST node, attaching a start offset.\n\nclass Node implements NodeBase {\n  constructor(parser: Parser, pos: number, loc: Position) {\n    this.type = \"\";\n    this.start = pos;\n    this.end = 0;\n    this.loc = new SourceLocation(loc);\n    if (parser && parser.options.ranges) this.range = [pos, 0];\n    if (parser && parser.filename) this.loc.filename = parser.filename;\n  }\n\n  type: string;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n  range: [number, number];\n  leadingComments: Array<Comment>;\n  trailingComments: Array<Comment>;\n  innerComments: Array<Comment>;\n  extra: { [key: string]: any };\n\n  __clone(): this {\n    // $FlowIgnore\n    const newNode: any = new Node();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // Do not clone comments that are already attached to the node\n      if (\n        key !== \"leadingComments\" &&\n        key !== \"trailingComments\" &&\n        key !== \"innerComments\"\n      ) {\n        // $FlowIgnore\n        newNode[key] = this[key];\n      }\n    }\n\n    return newNode;\n  }\n}\n\nexport class NodeUtils extends UtilParser {\n  startNode<T: NodeType>(): T {\n    // $FlowIgnore\n    return new Node(this, this.state.start, this.state.startLoc);\n  }\n\n  startNodeAt<T: NodeType>(pos: number, loc: Position): T {\n    // $FlowIgnore\n    return new Node(this, pos, loc);\n  }\n\n  /** Start a new node with a previous node's location. */\n  startNodeAtNode<T: NodeType>(type: NodeType): T {\n    return this.startNodeAt(type.start, type.loc.start);\n  }\n\n  // Finish an AST node, adding `type` and `end` properties.\n\n  finishNode<T: NodeType>(node: T, type: string): T {\n    return this.finishNodeAt(\n      node,\n      type,\n      this.state.lastTokEnd,\n      this.state.lastTokEndLoc,\n    );\n  }\n\n  // Finish node at given position\n\n  finishNodeAt<T: NodeType>(\n    node: T,\n    type: string,\n    pos: number,\n    loc: Position,\n  ): T {\n    if (process.env.NODE_ENV !== \"production\" && node.end > 0) {\n      throw new Error(\n        \"Do not call finishNode*() twice on the same node.\" +\n          \" Instead use resetEndLocation() or change type directly.\",\n      );\n    }\n    node.type = type;\n    node.end = pos;\n    node.loc.end = loc;\n    if (this.options.ranges) node.range[1] = pos;\n    this.processComment(node);\n    return node;\n  }\n\n  resetStartLocation(node: NodeBase, start: number, startLoc: Position): void {\n    node.start = start;\n    node.loc.start = startLoc;\n    if (this.options.ranges) node.range[0] = start;\n  }\n\n  resetEndLocation(\n    node: NodeBase,\n    end?: number = this.state.lastTokEnd,\n    endLoc?: Position = this.state.lastTokEndLoc,\n  ): void {\n    node.end = end;\n    node.loc.end = endLoc;\n    if (this.options.ranges) node.range[1] = end;\n  }\n\n  /**\n   * Reset the start location of node to the start location of locationNode\n   */\n  resetStartLocationFromNode(node: NodeBase, locationNode: NodeBase): void {\n    this.resetStartLocation(node, locationNode.start, locationNode.loc.start);\n  }\n}\n","// @flow\n\nimport * as charCodes from \"charcodes\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport type {\n  TSParameterProperty,\n  Decorator,\n  Expression,\n  Node,\n  Pattern,\n  RestElement,\n  SpreadElement,\n  /*:: Identifier, */\n  /*:: ObjectExpression, */\n  /*:: ObjectPattern, */\n} from \"../types\";\nimport type { Pos, Position } from \"../util/location\";\nimport {\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport { NodeUtils } from \"./node\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { Errors } from \"./location\";\n\nconst unwrapParenthesizedExpression = (node: Node) => {\n  return node.type === \"ParenthesizedExpression\"\n    ? unwrapParenthesizedExpression(node.expression)\n    : node;\n};\n\nexport default class LValParser extends NodeUtils {\n  // Forward-declaration: defined in expression.js\n  /*::\n  +parseIdentifier: (liberal?: boolean) => Identifier;\n  +parseMaybeAssign: (\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ) => Expression;\n  +parseObj: <T: ObjectPattern | ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ) => T;\n  */\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseDecorator: () => Decorator;\n  */\n\n  // Convert existing expression atom to assignable pattern\n  // if possible.\n  // NOTE: There is a corresponding \"isAssignable\" method in flow.js.\n  // When this one is updated, please check if also that one needs to be updated.\n\n  toAssignable(node: Node): Node {\n    let parenthesized = undefined;\n    if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n      parenthesized = unwrapParenthesizedExpression(node);\n      if (\n        parenthesized.type !== \"Identifier\" &&\n        parenthesized.type !== \"MemberExpression\"\n      ) {\n        this.raise(node.start, Errors.InvalidParenthesizedAssignment);\n      }\n    }\n\n    switch (node.type) {\n      case \"Identifier\":\n      case \"ObjectPattern\":\n      case \"ArrayPattern\":\n      case \"AssignmentPattern\":\n        break;\n\n      case \"ObjectExpression\":\n        node.type = \"ObjectPattern\";\n        for (\n          let i = 0, length = node.properties.length, last = length - 1;\n          i < length;\n          i++\n        ) {\n          const prop = node.properties[i];\n          const isLast = i === last;\n          this.toAssignableObjectExpressionProp(prop, isLast);\n\n          if (\n            isLast &&\n            prop.type === \"RestElement\" &&\n            node.extra?.trailingComma\n          ) {\n            this.raiseRestNotLast(node.extra.trailingComma);\n          }\n        }\n        break;\n\n      case \"ObjectProperty\":\n        this.toAssignable(node.value);\n        break;\n\n      case \"SpreadElement\": {\n        this.checkToRestConversion(node);\n\n        node.type = \"RestElement\";\n        const arg = node.argument;\n        this.toAssignable(arg);\n        break;\n      }\n\n      case \"ArrayExpression\":\n        node.type = \"ArrayPattern\";\n        this.toAssignableList(node.elements, node.extra?.trailingComma);\n        break;\n\n      case \"AssignmentExpression\":\n        if (node.operator !== \"=\") {\n          this.raise(node.left.end, Errors.MissingEqInAssignment);\n        }\n\n        node.type = \"AssignmentPattern\";\n        delete node.operator;\n        this.toAssignable(node.left);\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.toAssignable(((parenthesized: any): Expression));\n        break;\n\n      default:\n      // We don't know how to deal with this node. It will\n      // be reported by a later call to checkLVal\n    }\n    return node;\n  }\n\n  toAssignableObjectExpressionProp(prop: Node, isLast: boolean) {\n    if (prop.type === \"ObjectMethod\") {\n      const error =\n        prop.kind === \"get\" || prop.kind === \"set\"\n          ? Errors.PatternHasAccessor\n          : Errors.PatternHasMethod;\n\n      this.raise(prop.key.start, error);\n    } else if (prop.type === \"SpreadElement\" && !isLast) {\n      this.raiseRestNotLast(prop.start);\n    } else {\n      this.toAssignable(prop);\n    }\n  }\n\n  // Convert list of expression atoms to binding list.\n\n  toAssignableList(\n    exprList: Expression[],\n    trailingCommaPos?: ?number,\n  ): $ReadOnlyArray<Pattern> {\n    let end = exprList.length;\n    if (end) {\n      const last = exprList[end - 1];\n      if (last && last.type === \"RestElement\") {\n        --end;\n      } else if (last && last.type === \"SpreadElement\") {\n        last.type = \"RestElement\";\n        const arg = last.argument;\n        this.toAssignable(arg);\n        if (\n          arg.type !== \"Identifier\" &&\n          arg.type !== \"MemberExpression\" &&\n          arg.type !== \"ArrayPattern\" &&\n          arg.type !== \"ObjectPattern\"\n        ) {\n          this.unexpected(arg.start);\n        }\n\n        if (trailingCommaPos) {\n          this.raiseTrailingCommaAfterRest(trailingCommaPos);\n        }\n\n        --end;\n      }\n    }\n    for (let i = 0; i < end; i++) {\n      const elt = exprList[i];\n      if (elt) {\n        this.toAssignable(elt);\n        if (elt.type === \"RestElement\") {\n          this.raiseRestNotLast(elt.start);\n        }\n      }\n    }\n    return exprList;\n  }\n\n  // Convert list of expression atoms to a list of\n\n  toReferencedList(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean, // eslint-disable-line no-unused-vars\n  ): $ReadOnlyArray<?Expression> {\n    return exprList;\n  }\n\n  toReferencedListDeep(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean,\n  ): void {\n    this.toReferencedList(exprList, isParenthesizedExpr);\n\n    for (const expr of exprList) {\n      if (expr && expr.type === \"ArrayExpression\") {\n        this.toReferencedListDeep(expr.elements);\n      }\n    }\n  }\n\n  // Parses spread element.\n\n  parseSpread(\n    refExpressionErrors: ?ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): SpreadElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseMaybeAssign(\n      false,\n      refExpressionErrors,\n      undefined,\n      refNeedsArrowPos,\n    );\n    return this.finishNode(node, \"SpreadElement\");\n  }\n\n  parseRestBinding(): RestElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseBindingAtom();\n    return this.finishNode(node, \"RestElement\");\n  }\n\n  // Parses lvalue (assignable) atom.\n  parseBindingAtom(): Pattern {\n    switch (this.state.type) {\n      case tt.bracketL: {\n        const node = this.startNode();\n        this.next();\n        node.elements = this.parseBindingList(\n          tt.bracketR,\n          charCodes.rightSquareBracket,\n          true,\n        );\n        return this.finishNode(node, \"ArrayPattern\");\n      }\n\n      case tt.braceL:\n        return this.parseObj(tt.braceR, true);\n    }\n\n    return this.parseIdentifier();\n  }\n\n  parseBindingList(\n    close: TokenType,\n    closeCharCode: $Values<typeof charCodes>,\n    allowEmpty?: boolean,\n    allowModifiers?: boolean,\n  ): $ReadOnlyArray<Pattern | TSParameterProperty> {\n    const elts: Array<Pattern | TSParameterProperty> = [];\n    let first = true;\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n      }\n      if (allowEmpty && this.match(tt.comma)) {\n        // $FlowFixMe This method returns `$ReadOnlyArray<?Pattern>` if `allowEmpty` is set.\n        elts.push(null);\n      } else if (this.eat(close)) {\n        break;\n      } else if (this.match(tt.ellipsis)) {\n        elts.push(this.parseAssignableListItemTypes(this.parseRestBinding()));\n        this.checkCommaAfterRest(closeCharCode);\n        this.expect(close);\n        break;\n      } else {\n        const decorators = [];\n        if (this.match(tt.at) && this.hasPlugin(\"decorators\")) {\n          this.raise(this.state.start, Errors.UnsupportedParameterDecorator);\n        }\n        while (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n        }\n        elts.push(this.parseAssignableListItem(allowModifiers, decorators));\n      }\n    }\n    return elts;\n  }\n\n  parseAssignableListItem(\n    allowModifiers: ?boolean,\n    decorators: Decorator[],\n  ): Pattern | TSParameterProperty {\n    const left = this.parseMaybeDefault();\n    this.parseAssignableListItemTypes(left);\n    const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n    if (decorators.length) {\n      left.decorators = decorators;\n    }\n    return elt;\n  }\n\n  parseAssignableListItemTypes(param: Pattern): Pattern {\n    return param;\n  }\n\n  // Parses assignment pattern around given atom if possible.\n\n  parseMaybeDefault(\n    startPos?: ?number,\n    startLoc?: ?Position,\n    left?: ?Pattern,\n  ): Pattern {\n    startLoc = startLoc || this.state.startLoc;\n    startPos = startPos || this.state.start;\n    left = left || this.parseBindingAtom();\n    if (!this.eat(tt.eq)) return left;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    node.left = left;\n    node.right = this.parseMaybeAssign();\n    return this.finishNode(node, \"AssignmentPattern\");\n  }\n\n  // Verify that a node is an lval — something that can be assigned\n  // to.\n\n  checkLVal(\n    expr: Expression,\n    bindingType: BindingTypes = BIND_NONE,\n    checkClashes: ?{ [key: string]: boolean },\n    contextDescription: string,\n    disallowLetBinding?: boolean,\n    strictModeChanged?: boolean = false,\n  ): void {\n    switch (expr.type) {\n      case \"Identifier\":\n        if (\n          this.state.strict &&\n          // \"Global\" reserved words have already been checked by parseIdentifier,\n          // unless they have been found in the id or parameters of a strict-mode\n          // function in a sloppy context.\n          (strictModeChanged\n            ? isStrictBindReservedWord(expr.name, this.inModule)\n            : isStrictBindOnlyReservedWord(expr.name))\n        ) {\n          this.raise(\n            expr.start,\n            bindingType === BIND_NONE\n              ? Errors.StrictEvalArguments\n              : Errors.StrictEvalArgumentsBinding,\n            expr.name,\n          );\n        }\n\n        if (checkClashes) {\n          // we need to prefix this with an underscore for the cases where we have a key of\n          // `__proto__`. there's a bug in old V8 where the following wouldn't work:\n          //\n          //   > var obj = Object.create(null);\n          //   undefined\n          //   > obj.__proto__\n          //   null\n          //   > obj.__proto__ = true;\n          //   true\n          //   > obj.__proto__\n          //   null\n          const key = `_${expr.name}`;\n\n          if (checkClashes[key]) {\n            this.raise(expr.start, Errors.ParamDupe);\n          } else {\n            checkClashes[key] = true;\n          }\n        }\n        if (disallowLetBinding && expr.name === \"let\") {\n          this.raise(expr.start, Errors.LetInLexicalBinding);\n        }\n        if (!(bindingType & BIND_NONE)) {\n          this.scope.declareName(expr.name, bindingType, expr.start);\n        }\n        break;\n\n      case \"MemberExpression\":\n        if (bindingType !== BIND_NONE) {\n          this.raise(expr.start, Errors.InvalidPropertyBindingPattern);\n        }\n        break;\n\n      case \"ObjectPattern\":\n        for (let prop of expr.properties) {\n          if (prop.type === \"ObjectProperty\") prop = prop.value;\n          // If we find here an ObjectMethod, it's because this was originally\n          // an ObjectExpression which has then been converted.\n          // toAssignable already reported this error with a nicer message.\n          else if (prop.type === \"ObjectMethod\") continue;\n\n          this.checkLVal(\n            prop,\n            bindingType,\n            checkClashes,\n            \"object destructuring pattern\",\n            disallowLetBinding,\n          );\n        }\n        break;\n\n      case \"ArrayPattern\":\n        for (const elem of expr.elements) {\n          if (elem) {\n            this.checkLVal(\n              elem,\n              bindingType,\n              checkClashes,\n              \"array destructuring pattern\",\n              disallowLetBinding,\n            );\n          }\n        }\n        break;\n\n      case \"AssignmentPattern\":\n        this.checkLVal(\n          expr.left,\n          bindingType,\n          checkClashes,\n          \"assignment pattern\",\n        );\n        break;\n\n      case \"RestElement\":\n        this.checkLVal(\n          expr.argument,\n          bindingType,\n          checkClashes,\n          \"rest element\",\n        );\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.checkLVal(\n          expr.expression,\n          bindingType,\n          checkClashes,\n          \"parenthesized expression\",\n        );\n        break;\n\n      default: {\n        this.raise(\n          expr.start,\n          bindingType === BIND_NONE\n            ? Errors.InvalidLhs\n            : Errors.InvalidLhsBinding,\n          contextDescription,\n        );\n      }\n    }\n  }\n\n  checkToRestConversion(node: SpreadElement): void {\n    if (\n      node.argument.type !== \"Identifier\" &&\n      node.argument.type !== \"MemberExpression\"\n    ) {\n      this.raise(node.argument.start, Errors.InvalidRestAssignmentPattern);\n    }\n  }\n\n  checkCommaAfterRest(close: $Values<typeof charCodes>): void {\n    if (this.match(tt.comma)) {\n      if (this.lookaheadCharCode() === close) {\n        this.raiseTrailingCommaAfterRest(this.state.start);\n      } else {\n        this.raiseRestNotLast(this.state.start);\n      }\n    }\n  }\n\n  raiseRestNotLast(pos: number) {\n    throw this.raise(pos, Errors.ElementAfterRest);\n  }\n\n  raiseTrailingCommaAfterRest(pos: number) {\n    this.raise(pos, Errors.RestTrailingComma);\n  }\n}\n","// @flow\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport { types as ct } from \"../tokenizer/context\";\nimport * as N from \"../types\";\nimport LValParser from \"./lval\";\nimport {\n  isKeyword,\n  isReservedWord,\n  isStrictReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport type { Pos, Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_OUTSIDE,\n  BIND_VAR,\n  SCOPE_ARROW,\n  SCOPE_CLASS,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport {\n  PARAM_AWAIT,\n  PARAM_RETURN,\n  PARAM,\n  functionFlags,\n} from \"../util/production-parameter\";\nimport { Errors } from \"./location\";\n\nexport default class ExpressionParser extends LValParser {\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseBlock: (\n    allowDirectives?: boolean,\n    createNewLexicalScope?: boolean,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ) => N.BlockStatement;\n  +parseClass: (\n    node: N.Class,\n    isStatement: boolean,\n    optionalId?: boolean,\n  ) => N.Class;\n  +parseDecorators: (allowExport?: boolean) => void;\n  +parseFunction: <T: N.NormalFunction>(\n    node: T,\n    statement?: number,\n    allowExpressionBody?: boolean,\n    isAsync?: boolean,\n  ) => T;\n  +parseFunctionParams: (node: N.Function, allowModifiers?: boolean) => void;\n  +takeDecorators: (node: N.HasDecorators) => void;\n  */\n\n  // Check if property __proto__ has been used more than once.\n  // If the expression is a destructuring assignment, then __proto__ may appear\n  // multiple times. Otherwise, __proto__ is a duplicated key.\n\n  checkDuplicatedProto(\n    prop: N.ObjectMember | N.SpreadElement,\n    protoRef: { used: boolean },\n    refExpressionErrors: ?ExpressionErrors,\n  ): void {\n    if (\n      prop.type === \"SpreadElement\" ||\n      prop.computed ||\n      prop.kind ||\n      // $FlowIgnore\n      prop.shorthand\n    ) {\n      return;\n    }\n\n    const key = prop.key;\n    // It is either an Identifier or a String/NumericLiteral\n    const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n    if (name === \"__proto__\") {\n      if (protoRef.used) {\n        if (refExpressionErrors) {\n          // Store the first redefinition's position, otherwise ignore because\n          // we are parsing ambiguous pattern\n          if (refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          }\n        } else {\n          this.raise(key.start, Errors.DuplicateProto);\n        }\n      }\n\n      protoRef.used = true;\n    }\n  }\n\n  // Convenience method to parse an Expression only\n  getExpression(): N.Expression {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    this.nextToken();\n    const expr = this.parseExpression();\n    if (!this.match(tt.eof)) {\n      this.unexpected();\n    }\n    expr.comments = this.state.comments;\n    expr.errors = this.state.errors;\n    return expr;\n  }\n\n  // ### Expression parsing\n\n  // These nest, from the most general expression type at the top to\n  // 'atomic', nondivisible expression types at the bottom. Most of\n  // the functions will simply let the function (s) below them parse,\n  // and, *if* the syntactic construct they handle is present, wrap\n  // the AST node that the inner parser gave them in another node.\n\n  // Parse a full expression.\n  // - `noIn`\n  //   is used to forbid the `in` operator (in for loops initialization expressions)\n  //   When `noIn` is true, the production parameter [In] is not present.\n  //   Whenever [?In] appears in the right-hand sides of a production, we pass\n  //   `noIn` to the subroutine calls.\n\n  // - `refExpressionErrors `\n  //   provides reference for storing '=' operator inside shorthand\n  //   property assignment in contexts where both object expression\n  //   and object pattern might appear (so it's possible to raise\n  //   delayed syntax error at correct position).\n\n  parseExpression(\n    noIn?: boolean,\n    refExpressionErrors?: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const expr = this.parseMaybeAssign(noIn, refExpressionErrors);\n    if (this.match(tt.comma)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.expressions = [expr];\n      while (this.eat(tt.comma)) {\n        node.expressions.push(this.parseMaybeAssign(noIn, refExpressionErrors));\n      }\n      this.toReferencedList(node.expressions);\n      return this.finishNode(node, \"SequenceExpression\");\n    }\n    return expr;\n  }\n\n  // Parse an assignment expression. This includes applications of\n  // operators like `+=`.\n\n  parseMaybeAssign(\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    if (this.isContextual(\"yield\")) {\n      if (this.prodParam.hasYield) {\n        let left = this.parseYield(noIn);\n        if (afterLeftParse) {\n          left = afterLeftParse.call(this, left, startPos, startLoc);\n        }\n        return left;\n      } else {\n        // The tokenizer will assume an expression is allowed after\n        // `yield`, but this isn't that kind of yield\n        this.state.exprAllowed = false;\n      }\n    }\n\n    let ownExpressionErrors;\n    if (refExpressionErrors) {\n      ownExpressionErrors = false;\n    } else {\n      refExpressionErrors = new ExpressionErrors();\n      ownExpressionErrors = true;\n    }\n\n    if (this.match(tt.parenL) || this.match(tt.name)) {\n      this.state.potentialArrowAt = this.state.start;\n    }\n\n    let left = this.parseMaybeConditional(\n      noIn,\n      refExpressionErrors,\n      refNeedsArrowPos,\n    );\n    if (afterLeftParse) {\n      left = afterLeftParse.call(this, left, startPos, startLoc);\n    }\n    if (this.state.type.isAssign) {\n      const node = this.startNodeAt(startPos, startLoc);\n      const operator = this.state.value;\n      node.operator = operator;\n\n      if (operator === \"??=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (operator === \"||=\" || operator === \"&&=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (this.match(tt.eq)) {\n        node.left = this.toAssignable(left);\n        refExpressionErrors.doubleProto = -1; // reset because double __proto__ is valid in assignment expression\n      } else {\n        node.left = left;\n      }\n\n      if (refExpressionErrors.shorthandAssign >= node.left.start) {\n        refExpressionErrors.shorthandAssign = -1; // reset because shorthand default was used correctly\n      }\n\n      this.checkLVal(left, undefined, undefined, \"assignment expression\");\n\n      this.next();\n      node.right = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"AssignmentExpression\");\n    } else if (ownExpressionErrors) {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n\n    return left;\n  }\n\n  // Parse a ternary conditional (`?:`) operator.\n\n  parseMaybeConditional(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprOps(noIn, refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n\n    return this.parseConditional(\n      expr,\n      noIn,\n      startPos,\n      startLoc,\n      refNeedsArrowPos,\n    );\n  }\n\n  parseConditional(\n    expr: N.Expression,\n    noIn: ?boolean,\n    startPos: number,\n    startLoc: Position,\n    // FIXME: Disabling this for now since can't seem to get it to play nicely\n    // eslint-disable-next-line no-unused-vars\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    if (this.eat(tt.question)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.test = expr;\n      node.consequent = this.parseMaybeAssign();\n      this.expect(tt.colon);\n      node.alternate = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n    return expr;\n  }\n\n  // Start the precedence parser.\n\n  parseExprOps(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseMaybeUnary(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) {\n      return expr;\n    }\n\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\n  }\n\n  // Parse binary operators with the operator precedence parsing\n  // algorithm. `left` is the left-hand side of the operator.\n  // `minPrec` provides context that allows the function to stop and\n  // defer further parser to one of its callers when it encounters an\n  // operator that has a lower precedence than the set it is parsing.\n\n  parseExprOp(\n    left: N.Expression,\n    leftStartPos: number,\n    leftStartLoc: Position,\n    minPrec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    let prec = this.state.type.binop;\n    if (prec != null && (!noIn || !this.match(tt._in))) {\n      if (prec > minPrec) {\n        const operator = this.state.value;\n        if (operator === \"|>\" && this.state.inFSharpPipelineDirectBody) {\n          return left;\n        }\n        const node = this.startNodeAt(leftStartPos, leftStartLoc);\n        node.left = left;\n        node.operator = operator;\n        if (\n          operator === \"**\" &&\n          left.type === \"UnaryExpression\" &&\n          (this.options.createParenthesizedExpressions ||\n            !(left.extra && left.extra.parenthesized))\n        ) {\n          this.raise(\n            left.argument.start,\n            Errors.UnexpectedTokenUnaryExponentiation,\n          );\n        }\n\n        const op = this.state.type;\n        const logical = op === tt.logicalOR || op === tt.logicalAND;\n        const coalesce = op === tt.nullishCoalescing;\n\n        if (op === tt.pipeline) {\n          this.expectPlugin(\"pipelineOperator\");\n          this.state.inPipeline = true;\n          this.checkPipelineAtInfixOperator(left, leftStartPos);\n        } else if (coalesce) {\n          // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n          // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n          prec = ((tt.logicalAND: any): { binop: number }).binop;\n        }\n\n        this.next();\n\n        if (\n          op === tt.pipeline &&\n          this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"minimal\"\n        ) {\n          if (\n            this.match(tt.name) &&\n            this.state.value === \"await\" &&\n            this.prodParam.hasAwait\n          ) {\n            throw this.raise(\n              this.state.start,\n              Errors.UnexpectedAwaitAfterPipelineBody,\n            );\n          }\n        }\n\n        node.right = this.parseExprOpRightExpr(op, prec, noIn);\n        this.finishNode(\n          node,\n          logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\",\n        );\n        /* this check is for all ?? operators\n         * a ?? b && c for this example\n         * when op is coalesce and nextOp is logical (&&), throw at the pos of nextOp that it can not be mixed.\n         * Symmetrically it also throws when op is logical and nextOp is coalesce\n         */\n        const nextOp = this.state.type;\n        if (\n          (coalesce && (nextOp === tt.logicalOR || nextOp === tt.logicalAND)) ||\n          (logical && nextOp === tt.nullishCoalescing)\n        ) {\n          throw this.raise(this.state.start, Errors.MixingCoalesceWithLogical);\n        }\n\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n    }\n    return left;\n  }\n\n  // Helper function for `parseExprOp`. Parse the right-hand side of binary-\n  // operator expressions, then apply any operator-specific functions.\n\n  parseExprOpRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    switch (op) {\n      case tt.pipeline:\n        switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n          case \"smart\":\n            return this.withTopicPermittingContext(() => {\n              return this.parseSmartPipelineBody(\n                this.parseExprOpBaseRightExpr(op, prec, noIn),\n                startPos,\n                startLoc,\n              );\n            });\n          case \"fsharp\":\n            return this.withSoloAwaitPermittingContext(() => {\n              return this.parseFSharpPipelineBody(prec, noIn);\n            });\n        }\n      // falls through\n\n      default:\n        return this.parseExprOpBaseRightExpr(op, prec, noIn);\n    }\n  }\n\n  // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of\n  // binary-operator expressions without applying any operator-specific functions.\n\n  parseExprOpBaseRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    return this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      op.rightAssociative ? prec - 1 : prec,\n      noIn,\n    );\n  }\n\n  // Parse unary operators, both prefix and postfix.\n\n  parseMaybeUnary(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    if (this.isContextual(\"await\") && this.isAwaitAllowed()) {\n      return this.parseAwait();\n    } else if (this.state.type.prefix) {\n      const node = this.startNode();\n      const update = this.match(tt.incDec);\n      node.operator = this.state.value;\n      node.prefix = true;\n\n      if (node.operator === \"throw\") {\n        this.expectPlugin(\"throwExpressions\");\n      }\n      this.next();\n\n      node.argument = this.parseMaybeUnary();\n\n      this.checkExpressionErrors(refExpressionErrors, true);\n\n      if (update) {\n        this.checkLVal(node.argument, undefined, undefined, \"prefix operation\");\n      } else if (this.state.strict && node.operator === \"delete\") {\n        const arg = node.argument;\n\n        if (arg.type === \"Identifier\") {\n          this.raise(node.start, Errors.StrictDelete);\n        } else if (\n          arg.type === \"MemberExpression\" &&\n          arg.property.type === \"PrivateName\"\n        ) {\n          this.raise(node.start, Errors.DeletePrivateField);\n        }\n      }\n\n      return this.finishNode(\n        node,\n        update ? \"UpdateExpression\" : \"UnaryExpression\",\n      );\n    }\n\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    let expr = this.parseExprSubscripts(refExpressionErrors);\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n    while (this.state.type.postfix && !this.canInsertSemicolon()) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.operator = this.state.value;\n      node.prefix = false;\n      node.argument = expr;\n      this.checkLVal(expr, undefined, undefined, \"postfix operation\");\n      this.next();\n      expr = this.finishNode(node, \"UpdateExpression\");\n    }\n    return expr;\n  }\n\n  // Parse call, dot, and `[]`-subscript expressions.\n\n  parseExprSubscripts(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprAtom(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n\n    return this.parseSubscripts(expr, startPos, startLoc);\n  }\n\n  parseSubscripts(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls?: ?boolean,\n  ): N.Expression {\n    const state = {\n      optionalChainMember: false,\n      maybeAsyncArrow: this.atPossibleAsyncArrow(base),\n      stop: false,\n    };\n    do {\n      const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n      if (state.maybeAsyncArrow) {\n        this.state.maybeInAsyncArrowHead = true;\n      }\n      base = this.parseSubscript(base, startPos, startLoc, noCalls, state);\n\n      // After parsing a subscript, this isn't \"async\" for sure.\n      state.maybeAsyncArrow = false;\n      this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n    } while (!state.stop);\n    return base;\n  }\n\n  /**\n   * @param state Set 'state.stop = true' to indicate that we should stop parsing subscripts.\n   *   state.optionalChainMember to indicate that the member is currently in OptionalChain\n   */\n  parseSubscript(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls: ?boolean,\n    state: N.ParseSubscriptState,\n  ): N.Expression {\n    if (!noCalls && this.eat(tt.doubleColon)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.callee = this.parseNoCallExpr();\n      state.stop = true;\n      return this.parseSubscripts(\n        this.finishNode(node, \"BindExpression\"),\n        startPos,\n        startLoc,\n        noCalls,\n      );\n    }\n    let optional = false;\n    if (this.match(tt.questionDot)) {\n      state.optionalChainMember = optional = true;\n      if (noCalls && this.lookaheadCharCode() === charCodes.leftParenthesis) {\n        state.stop = true;\n        return base;\n      }\n      this.next();\n    }\n    const computed = this.eat(tt.bracketL);\n    if (\n      (optional && !this.match(tt.parenL) && !this.match(tt.backQuote)) ||\n      computed ||\n      this.eat(tt.dot)\n    ) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.property = computed\n        ? this.parseExpression()\n        : optional\n        ? this.parseIdentifier(true)\n        : this.parseMaybePrivateName(true);\n      node.computed = computed;\n\n      if (node.property.type === \"PrivateName\") {\n        if (node.object.type === \"Super\") {\n          this.raise(startPos, Errors.SuperPrivateField);\n        }\n        this.classScope.usePrivateName(\n          node.property.id.name,\n          node.property.start,\n        );\n      }\n\n      if (computed) {\n        this.expect(tt.bracketR);\n      }\n\n      if (state.optionalChainMember) {\n        node.optional = optional;\n        return this.finishNode(node, \"OptionalMemberExpression\");\n      } else {\n        return this.finishNode(node, \"MemberExpression\");\n      }\n    } else if (!noCalls && this.match(tt.parenL)) {\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      this.next();\n\n      let node = this.startNodeAt(startPos, startLoc);\n      node.callee = base;\n\n      if (optional) {\n        node.optional = true;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      } else {\n        node.arguments = this.parseCallExpressionArguments(\n          tt.parenR,\n          state.maybeAsyncArrow,\n          base.type === \"Import\",\n          base.type !== \"Super\",\n          node,\n        );\n      }\n      this.finishCallExpression(node, state.optionalChainMember);\n\n      if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n        state.stop = true;\n\n        node = this.parseAsyncArrowFromCallExpression(\n          this.startNodeAt(startPos, startLoc),\n          node,\n        );\n        this.checkYieldAwaitInDefaultParams();\n        this.state.yieldPos = oldYieldPos;\n        this.state.awaitPos = oldAwaitPos;\n      } else {\n        this.toReferencedListDeep(node.arguments);\n\n        // We keep the old value if it isn't null, for cases like\n        //   (x = async(yield)) => {}\n        //\n        // Hi developer of the future :) If you are implementing generator\n        // arrow functions, please read the note below about \"await\" and\n        // verify if the same logic is needed for yield.\n        if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n\n        // Await is trickier than yield. When parsing a possible arrow function\n        // (e.g. something starting with `async(`) we don't know if its possible\n        // parameters will actually be inside an async arrow function or if it is\n        // a normal call expression.\n        // If it ended up being a call expression, if we are in a context where\n        // await expression are disallowed (and thus \"await\" is an identifier)\n        // we must be careful not to leak this.state.awaitPos to an even outer\n        // context, where \"await\" could not be an identifier.\n        // For example, this code is valid because \"await\" isn't directly inside\n        // an async function:\n        //\n        //     async function a() {\n        //       function b(param = async (await)) {\n        //       }\n        //     }\n        //\n        if (\n          (!this.isAwaitAllowed() && !oldMaybeInArrowParameters) ||\n          oldAwaitPos !== -1\n        ) {\n          this.state.awaitPos = oldAwaitPos;\n        }\n      }\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n      return node;\n    } else if (this.match(tt.backQuote)) {\n      return this.parseTaggedTemplateExpression(\n        startPos,\n        startLoc,\n        base,\n        state,\n      );\n    } else {\n      state.stop = true;\n      return base;\n    }\n  }\n\n  parseTaggedTemplateExpression(\n    startPos: number,\n    startLoc: Position,\n    base: N.Expression,\n    state: N.ParseSubscriptState,\n    typeArguments?: ?N.TsTypeParameterInstantiation,\n  ): N.TaggedTemplateExpression {\n    const node: N.TaggedTemplateExpression = this.startNodeAt(\n      startPos,\n      startLoc,\n    );\n    node.tag = base;\n    node.quasi = this.parseTemplate(true);\n    if (typeArguments) node.typeParameters = typeArguments;\n    if (state.optionalChainMember) {\n      this.raise(startPos, Errors.OptionalChainingNoTemplate);\n    }\n    return this.finishNode(node, \"TaggedTemplateExpression\");\n  }\n\n  atPossibleAsyncArrow(base: N.Expression): boolean {\n    return (\n      base.type === \"Identifier\" &&\n      base.name === \"async\" &&\n      this.state.lastTokEnd === base.end &&\n      !this.canInsertSemicolon() &&\n      // check there are no escape sequences, such as \\u{61}sync\n      base.end - base.start === 5 &&\n      base.start === this.state.potentialArrowAt\n    );\n  }\n\n  finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n    node: T,\n    optional: boolean,\n  ): N.Expression {\n    if (node.callee.type === \"Import\") {\n      if (node.arguments.length !== 1) {\n        this.raise(node.start, Errors.ImportCallArity);\n      } else {\n        const importArg = node.arguments[0];\n        if (importArg && importArg.type === \"SpreadElement\") {\n          this.raise(importArg.start, Errors.ImportCallSpreadArgument);\n        }\n      }\n    }\n    return this.finishNode(\n      node,\n      optional ? \"OptionalCallExpression\" : \"CallExpression\",\n    );\n  }\n\n  parseCallExpressionArguments(\n    close: TokenType,\n    possibleAsyncArrow: boolean,\n    dynamicImport?: boolean,\n    allowPlaceholder?: boolean,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let innerParenStart;\n    let first = true;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (dynamicImport) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.ImportCallArgumentTrailingComma,\n            );\n          }\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      // we need to make sure that if this is an async arrow functions,\n      // that we don't allow inner parens inside the params\n      if (this.match(tt.parenL) && !innerParenStart) {\n        innerParenStart = this.state.start;\n      }\n\n      elts.push(\n        this.parseExprListItem(\n          false,\n          possibleAsyncArrow ? new ExpressionErrors() : undefined,\n          possibleAsyncArrow ? { start: 0 } : undefined,\n          allowPlaceholder,\n        ),\n      );\n    }\n\n    // we found an async arrow function so let's not allow any inner parens\n    if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\n      this.unexpected();\n    }\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return elts;\n  }\n\n  shouldParseAsyncArrow(): boolean {\n    return this.match(tt.arrow) && !this.canInsertSemicolon();\n  }\n\n  parseAsyncArrowFromCallExpression(\n    node: N.ArrowFunctionExpression,\n    call: N.CallExpression,\n  ): N.ArrowFunctionExpression {\n    this.expect(tt.arrow);\n    this.parseArrowExpression(\n      node,\n      call.arguments,\n      true,\n      call.extra?.trailingComma,\n    );\n    return node;\n  }\n\n  // Parse a no-call expression (like argument of `new` or `::` operators).\n\n  parseNoCallExpr(): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n  }\n\n  // Parse an atomic expression — either a single token that is an\n  // expression, an expression started by a keyword like `function` or\n  // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n  // or `{}`.\n\n  parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n    // If a division operator appears in an expression position, the\n    // tokenizer got confused, and we force it to read a regexp instead.\n    if (this.state.type === tt.slash) this.readRegexp();\n\n    const canBeArrow = this.state.potentialArrowAt === this.state.start;\n    let node;\n\n    switch (this.state.type) {\n      case tt._super:\n        node = this.startNode();\n        this.next();\n        if (\n          this.match(tt.parenL) &&\n          !this.scope.allowDirectSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.SuperNotAllowed);\n        } else if (\n          !this.scope.allowSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.UnexpectedSuper);\n        }\n\n        if (\n          !this.match(tt.parenL) &&\n          !this.match(tt.bracketL) &&\n          !this.match(tt.dot)\n        ) {\n          this.raise(node.start, Errors.UnsupportedSuper);\n        }\n\n        return this.finishNode(node, \"Super\");\n\n      case tt._import:\n        node = this.startNode();\n        this.next();\n\n        if (this.match(tt.dot)) {\n          return this.parseImportMetaProperty(node);\n        }\n\n        if (!this.match(tt.parenL)) {\n          this.raise(this.state.lastTokStart, Errors.UnsupportedImport);\n        }\n        return this.finishNode(node, \"Import\");\n      case tt._this:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"ThisExpression\");\n\n      case tt.name: {\n        node = this.startNode();\n        const containsEsc = this.state.containsEsc;\n        const id = this.parseIdentifier();\n\n        if (\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt._function) &&\n          !this.canInsertSemicolon()\n        ) {\n          const last = this.state.context.length - 1;\n          if (this.state.context[last] !== ct.functionStatement) {\n            // Since \"async\" is an identifier and normally identifiers\n            // can't be followed by expression, the tokenizer assumes\n            // that \"function\" starts a statement.\n            // Fixing it in the tokenizer would mean tracking not only the\n            // previous token (\"async\"), but also the one before to know\n            // its beforeExpr value.\n            // It's easier and more efficient to adjust the context here.\n            throw new Error(\"Internal error\");\n          }\n          this.state.context[last] = ct.functionExpression;\n\n          this.next();\n          return this.parseFunction(node, undefined, true);\n        } else if (\n          canBeArrow &&\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt.name) &&\n          !this.canInsertSemicolon()\n        ) {\n          const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n          const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n          const oldYieldPos = this.state.yieldPos;\n          const oldAwaitPos = this.state.awaitPos;\n          this.state.maybeInArrowParameters = true;\n          this.state.maybeInAsyncArrowHead = true;\n          this.state.yieldPos = -1;\n          this.state.awaitPos = -1;\n          const params = [this.parseIdentifier()];\n          this.expect(tt.arrow);\n          this.checkYieldAwaitInDefaultParams();\n          this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n          this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n          this.state.yieldPos = oldYieldPos;\n          this.state.awaitPos = oldAwaitPos;\n          // let foo = async bar => {};\n          this.parseArrowExpression(node, params, true);\n          return node;\n        }\n\n        if (canBeArrow && this.match(tt.arrow) && !this.canInsertSemicolon()) {\n          this.next();\n          this.parseArrowExpression(node, [id], false);\n          return node;\n        }\n\n        return id;\n      }\n\n      case tt._do: {\n        this.expectPlugin(\"doExpressions\");\n        const node = this.startNode();\n        this.next();\n        const oldLabels = this.state.labels;\n        this.state.labels = [];\n        node.body = this.parseBlock();\n        this.state.labels = oldLabels;\n        return this.finishNode(node, \"DoExpression\");\n      }\n\n      case tt.regexp: {\n        const value = this.state.value;\n        node = this.parseLiteral(value.value, \"RegExpLiteral\");\n        node.pattern = value.pattern;\n        node.flags = value.flags;\n        return node;\n      }\n\n      case tt.num:\n        return this.parseLiteral(this.state.value, \"NumericLiteral\");\n\n      case tt.bigint:\n        return this.parseLiteral(this.state.value, \"BigIntLiteral\");\n\n      case tt.string:\n        return this.parseLiteral(this.state.value, \"StringLiteral\");\n\n      case tt._null:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"NullLiteral\");\n\n      case tt._true:\n      case tt._false:\n        return this.parseBooleanLiteral();\n\n      case tt.parenL:\n        return this.parseParenAndDistinguishExpression(canBeArrow);\n\n      case tt.bracketBarL:\n      case tt.bracketHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          close,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"TupleExpression\");\n      }\n      case tt.bracketL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          tt.bracketR,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        if (!this.state.maybeInArrowParameters) {\n          // This could be an array pattern:\n          //   ([a: string, b: string]) => {}\n          // In this case, we don't have to call toReferencedList. We will\n          // call it, if needed, when we are sure that it is a parenthesized\n          // expression by calling toReferencedListDeep.\n          this.toReferencedList(node.elements);\n        }\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"ArrayExpression\");\n      }\n      case tt.braceBarL:\n      case tt.braceHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(close, false, true, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt.braceL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(tt.braceR, false, false, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt._function:\n        return this.parseFunctionExpression();\n\n      case tt.at:\n        this.parseDecorators();\n      // fall through\n      case tt._class:\n        node = this.startNode();\n        this.takeDecorators(node);\n        return this.parseClass(node, false);\n\n      case tt._new:\n        return this.parseNew();\n\n      case tt.backQuote:\n        return this.parseTemplate(false);\n\n      case tt.doubleColon: {\n        node = this.startNode();\n        this.next();\n        node.object = null;\n        const callee = (node.callee = this.parseNoCallExpr());\n        if (callee.type === \"MemberExpression\") {\n          return this.finishNode(node, \"BindExpression\");\n        } else {\n          throw this.raise(callee.start, Errors.UnsupportedBind);\n        }\n      }\n\n      case tt.hash: {\n        if (this.state.inPipeline) {\n          node = this.startNode();\n\n          if (\n            this.getPluginOption(\"pipelineOperator\", \"proposal\") !== \"smart\"\n          ) {\n            this.raise(node.start, Errors.PrimaryTopicRequiresSmartPipeline);\n          }\n\n          this.next();\n\n          if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) {\n            this.raise(node.start, Errors.PrimaryTopicNotAllowed);\n          }\n\n          this.registerTopicReference();\n          return this.finishNode(node, \"PipelinePrimaryTopicReference\");\n        }\n      }\n      // fall through\n      default:\n        throw this.unexpected();\n    }\n  }\n\n  parseBooleanLiteral(): N.BooleanLiteral {\n    const node = this.startNode();\n    node.value = this.match(tt._true);\n    this.next();\n    return this.finishNode(node, \"BooleanLiteral\");\n  }\n\n  parseMaybePrivateName(\n    isPrivateNameAllowed: boolean,\n  ): N.PrivateName | N.Identifier {\n    const isPrivate = this.match(tt.hash);\n\n    if (isPrivate) {\n      this.expectOnePlugin([\"classPrivateProperties\", \"classPrivateMethods\"]);\n      if (!isPrivateNameAllowed) {\n        this.raise(this.state.pos, Errors.UnexpectedPrivateField);\n      }\n      const node = this.startNode();\n      this.next();\n      this.assertNoSpace(\"Unexpected space between # and identifier\");\n      node.id = this.parseIdentifier(true);\n      return this.finishNode(node, \"PrivateName\");\n    } else {\n      return this.parseIdentifier(true);\n    }\n  }\n\n  parseFunctionExpression(): N.FunctionExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    // We do not do parseIdentifier here because when parseFunctionExpression\n    // is called we already know that the current token is a \"name\" with the value \"function\"\n    // This will improve perf a tiny little bit as we do not do validation but more importantly\n    // here is that parseIdentifier will remove an item from the expression stack\n    // if \"function\" or \"class\" is parsed as identifier (in objects e.g.), which should not happen here.\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"function\");\n\n    if (this.prodParam.hasYield && this.eat(tt.dot)) {\n      return this.parseMetaProperty(node, meta, \"sent\");\n    }\n    return this.parseFunction(node);\n  }\n\n  parseMetaProperty(\n    node: N.MetaProperty,\n    meta: N.Identifier,\n    propertyName: string,\n  ): N.MetaProperty {\n    node.meta = meta;\n\n    if (meta.name === \"function\" && propertyName === \"sent\") {\n      if (this.isContextual(propertyName)) {\n        this.expectPlugin(\"functionSent\");\n      } else if (!this.hasPlugin(\"functionSent\")) {\n        // The code wasn't `function.sent` but just `function.`, so a simple error is less confusing.\n        this.unexpected();\n      }\n    }\n\n    const containsEsc = this.state.containsEsc;\n\n    node.property = this.parseIdentifier(true);\n\n    if (node.property.name !== propertyName || containsEsc) {\n      this.raise(\n        node.property.start,\n        Errors.UnsupportedMetaProperty,\n        meta.name,\n        propertyName,\n      );\n    }\n\n    return this.finishNode(node, \"MetaProperty\");\n  }\n\n  parseImportMetaProperty(node: N.MetaProperty): N.MetaProperty {\n    const id = this.createIdentifier(this.startNodeAtNode(node), \"import\");\n    this.expect(tt.dot);\n\n    if (this.isContextual(\"meta\")) {\n      this.expectPlugin(\"importMeta\");\n\n      if (!this.inModule) {\n        this.raiseWithData(\n          id.start,\n          { code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\" },\n          Errors.ImportMetaOutsideModule,\n        );\n      }\n      this.sawUnambiguousESM = true;\n    } else if (!this.hasPlugin(\"importMeta\")) {\n      this.raise(id.start, Errors.ImportCallArityLtOne);\n    }\n\n    return this.parseMetaProperty(node, id, \"meta\");\n  }\n\n  parseLiteral<T: N.Literal>(\n    value: any,\n    type: /*T[\"kind\"]*/ string,\n    startPos?: number,\n    startLoc?: Position,\n  ): T {\n    startPos = startPos || this.state.start;\n    startLoc = startLoc || this.state.startLoc;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    this.addExtra(node, \"rawValue\", value);\n    this.addExtra(node, \"raw\", this.input.slice(startPos, this.state.end));\n    node.value = value;\n    this.next();\n    return this.finishNode(node, type);\n  }\n\n  parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    let val;\n    this.expect(tt.parenL);\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.maybeInArrowParameters = true;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    const innerStartPos = this.state.start;\n    const innerStartLoc = this.state.startLoc;\n    const exprList = [];\n    const refExpressionErrors = new ExpressionErrors();\n    const refNeedsArrowPos = { start: 0 };\n    let first = true;\n    let spreadStart;\n    let optionalCommaStart;\n\n    while (!this.match(tt.parenR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma, refNeedsArrowPos.start || null);\n        if (this.match(tt.parenR)) {\n          optionalCommaStart = this.state.start;\n          break;\n        }\n      }\n\n      if (this.match(tt.ellipsis)) {\n        const spreadNodeStartPos = this.state.start;\n        const spreadNodeStartLoc = this.state.startLoc;\n        spreadStart = this.state.start;\n        exprList.push(\n          this.parseParenItem(\n            this.parseRestBinding(),\n            spreadNodeStartPos,\n            spreadNodeStartLoc,\n          ),\n        );\n\n        this.checkCommaAfterRest(charCodes.rightParenthesis);\n\n        break;\n      } else {\n        exprList.push(\n          this.parseMaybeAssign(\n            false,\n            refExpressionErrors,\n            this.parseParenItem,\n            refNeedsArrowPos,\n          ),\n        );\n      }\n    }\n\n    const innerEndPos = this.state.start;\n    const innerEndLoc = this.state.startLoc;\n    this.expect(tt.parenR);\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    let arrowNode = this.startNodeAt(startPos, startLoc);\n    if (\n      canBeArrow &&\n      this.shouldParseArrow() &&\n      (arrowNode = this.parseArrow(arrowNode))\n    ) {\n      if (!this.isAwaitAllowed() && !this.state.maybeInAsyncArrowHead) {\n        this.state.awaitPos = oldAwaitPos;\n      }\n      this.checkYieldAwaitInDefaultParams();\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n      for (const param of exprList) {\n        if (param.extra && param.extra.parenthesized) {\n          this.unexpected(param.extra.parenStart);\n        }\n      }\n\n      this.parseArrowExpression(arrowNode, exprList, false);\n      return arrowNode;\n    }\n\n    // We keep the old value if it isn't null, for cases like\n    //   (x = (yield)) => {}\n    if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n    if (oldAwaitPos !== -1) this.state.awaitPos = oldAwaitPos;\n\n    if (!exprList.length) {\n      this.unexpected(this.state.lastTokStart);\n    }\n    if (optionalCommaStart) this.unexpected(optionalCommaStart);\n    if (spreadStart) this.unexpected(spreadStart);\n    this.checkExpressionErrors(refExpressionErrors, true);\n    if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start);\n\n    this.toReferencedListDeep(exprList, /* isParenthesizedExpr */ true);\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc);\n      val.expressions = exprList;\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n    } else {\n      val = exprList[0];\n    }\n\n    if (!this.options.createParenthesizedExpressions) {\n      this.addExtra(val, \"parenthesized\", true);\n      this.addExtra(val, \"parenStart\", startPos);\n      return val;\n    }\n\n    const parenExpression = this.startNodeAt(startPos, startLoc);\n    parenExpression.expression = val;\n    this.finishNode(parenExpression, \"ParenthesizedExpression\");\n    return parenExpression;\n  }\n\n  shouldParseArrow(): boolean {\n    return !this.canInsertSemicolon();\n  }\n\n  parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n    if (this.eat(tt.arrow)) {\n      return node;\n    }\n  }\n\n  parseParenItem(\n    node: N.Expression,\n    startPos: number, // eslint-disable-line no-unused-vars\n    startLoc: Position, // eslint-disable-line no-unused-vars\n  ): N.Expression {\n    return node;\n  }\n\n  // New's precedence is slightly tricky. It must allow its argument to\n  // be a `[]` or dot subscript expression, but not a call — at least,\n  // not without wrapping it in parentheses. Thus, it uses the noCalls\n  // argument to parseSubscripts to prevent it from consuming the\n  // argument list.\n\n  parseNew(): N.NewExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"new\");\n\n    if (this.eat(tt.dot)) {\n      const metaProp = this.parseMetaProperty(node, meta, \"target\");\n\n      if (!this.scope.inNonArrowFunction && !this.scope.inClass) {\n        let error = Errors.UnexpectedNewTarget;\n\n        if (this.hasPlugin(\"classProperties\")) {\n          error += \" or class properties\";\n        }\n\n        this.raise(metaProp.start, error);\n      }\n\n      return metaProp;\n    }\n\n    node.callee = this.parseNoCallExpr();\n\n    if (node.callee.type === \"Import\") {\n      this.raise(node.callee.start, Errors.ImportCallNotNewExpression);\n    } else if (\n      node.callee.type === \"OptionalMemberExpression\" ||\n      node.callee.type === \"OptionalCallExpression\"\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.OptionalChainingNoNew);\n    } else if (this.eat(tt.questionDot)) {\n      this.raise(this.state.start, Errors.OptionalChainingNoNew);\n    }\n\n    this.parseNewArguments(node);\n    return this.finishNode(node, \"NewExpression\");\n  }\n\n  parseNewArguments(node: N.NewExpression): void {\n    if (this.eat(tt.parenL)) {\n      const args = this.parseExprList(tt.parenR);\n      this.toReferencedList(args);\n      // $FlowFixMe (parseExprList should be all non-null in this case)\n      node.arguments = args;\n    } else {\n      node.arguments = [];\n    }\n  }\n\n  // Parse template expression.\n\n  parseTemplateElement(isTagged: boolean): N.TemplateElement {\n    const elem = this.startNode();\n    if (this.state.value === null) {\n      if (!isTagged) {\n        this.raise(this.state.start + 1, Errors.InvalidEscapeSequenceTemplate);\n      }\n    }\n    elem.value = {\n      raw: this.input\n        .slice(this.state.start, this.state.end)\n        .replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.state.value,\n    };\n    this.next();\n    elem.tail = this.match(tt.backQuote);\n    return this.finishNode(elem, \"TemplateElement\");\n  }\n\n  parseTemplate(isTagged: boolean): N.TemplateLiteral {\n    const node = this.startNode();\n    this.next();\n    node.expressions = [];\n    let curElt = this.parseTemplateElement(isTagged);\n    node.quasis = [curElt];\n    while (!curElt.tail) {\n      this.expect(tt.dollarBraceL);\n      node.expressions.push(this.parseExpression());\n      this.expect(tt.braceR);\n      node.quasis.push((curElt = this.parseTemplateElement(isTagged)));\n    }\n    this.next();\n    return this.finishNode(node, \"TemplateLiteral\");\n  }\n\n  // Parse an object literal, binding pattern, or record.\n\n  parseObj<T: N.ObjectPattern | N.ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): T {\n    const propHash: any = Object.create(null);\n    let first = true;\n    const node = this.startNode();\n\n    node.properties = [];\n    this.next();\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          this.addExtra(node, \"trailingComma\", this.state.lastTokStart);\n          this.next();\n          break;\n        }\n      }\n\n      const prop = this.parseObjectMember(isPattern, refExpressionErrors);\n      if (!isPattern) {\n        // $FlowIgnore RestElement will never be returned if !isPattern\n        this.checkDuplicatedProto(prop, propHash, refExpressionErrors);\n      }\n\n      // $FlowIgnore\n      if (prop.shorthand) {\n        this.addExtra(prop, \"shorthand\", true);\n      }\n\n      node.properties.push(prop);\n    }\n\n    let type = \"ObjectExpression\";\n    if (isPattern) {\n      type = \"ObjectPattern\";\n    } else if (isRecord) {\n      type = \"RecordExpression\";\n    }\n    return this.finishNode(node, type);\n  }\n\n  isAsyncProp(prop: N.ObjectProperty): boolean {\n    return (\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      prop.key.name === \"async\" &&\n      (this.match(tt.name) ||\n        this.match(tt.num) ||\n        this.match(tt.string) ||\n        this.match(tt.bracketL) ||\n        this.state.type.keyword ||\n        this.match(tt.star)) &&\n      !this.hasPrecedingLineBreak()\n    );\n  }\n\n  parseObjectMember(\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): N.ObjectMember | N.SpreadElement | N.RestElement {\n    let decorators = [];\n    if (this.match(tt.at)) {\n      if (this.hasPlugin(\"decorators\")) {\n        this.raise(this.state.start, Errors.UnsupportedPropertyDecorator);\n      }\n\n      // we needn't check if decorators (stage 0) plugin is enabled since it's checked by\n      // the call to this.parseDecorator\n      while (this.match(tt.at)) {\n        decorators.push(this.parseDecorator());\n      }\n    }\n\n    const prop = this.startNode();\n    let isGenerator = false;\n    let isAsync = false;\n    let startPos;\n    let startLoc;\n\n    if (this.match(tt.ellipsis)) {\n      if (decorators.length) this.unexpected();\n      if (isPattern) {\n        this.next();\n        // Don't use parseRestBinding() as we only allow Identifier here.\n        prop.argument = this.parseIdentifier();\n        this.checkCommaAfterRest(charCodes.rightCurlyBrace);\n        return this.finishNode(prop, \"RestElement\");\n      }\n\n      return this.parseSpread();\n    }\n\n    if (decorators.length) {\n      prop.decorators = decorators;\n      decorators = [];\n    }\n\n    prop.method = false;\n\n    if (isPattern || refExpressionErrors) {\n      startPos = this.state.start;\n      startLoc = this.state.startLoc;\n    }\n\n    if (!isPattern) {\n      isGenerator = this.eat(tt.star);\n    }\n\n    const containsEsc = this.state.containsEsc;\n    this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n\n    if (!isPattern && !containsEsc && !isGenerator && this.isAsyncProp(prop)) {\n      isAsync = true;\n      isGenerator = this.eat(tt.star);\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n    } else {\n      isAsync = false;\n    }\n\n    this.parseObjPropValue(\n      prop,\n      startPos,\n      startLoc,\n      isGenerator,\n      isAsync,\n      isPattern,\n      refExpressionErrors,\n      containsEsc,\n    );\n\n    return prop;\n  }\n\n  isGetterOrSetterMethod(prop: N.ObjectMethod, isPattern: boolean): boolean {\n    return (\n      !isPattern &&\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n      (this.match(tt.string) || // get \"string\"() {}\n      this.match(tt.num) || // get 1() {}\n      this.match(tt.bracketL) || // get [\"string\"]() {}\n      this.match(tt.name) || // get foo() {}\n        !!this.state.type.keyword) // get debugger() {}\n    );\n  }\n\n  getGetterSetterExpectedParamCount(\n    method: N.ObjectMethod | N.ClassMethod,\n  ): number {\n    return method.kind === \"get\" ? 0 : 1;\n  }\n\n  // get methods aren't allowed to have any parameters\n  // set methods must have exactly 1 parameter which is not a rest parameter\n  checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n    const paramCount = this.getGetterSetterExpectedParamCount(method);\n    const start = method.start;\n    if (method.params.length !== paramCount) {\n      if (method.kind === \"get\") {\n        this.raise(start, Errors.BadGetterArity);\n      } else {\n        this.raise(start, Errors.BadSetterArity);\n      }\n    }\n\n    if (\n      method.kind === \"set\" &&\n      method.params[method.params.length - 1].type === \"RestElement\"\n    ) {\n      this.raise(start, Errors.BadSetterRestParameter);\n    }\n  }\n\n  parseObjectMethod(\n    prop: N.ObjectMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    containsEsc: boolean,\n  ): ?N.ObjectMethod {\n    if (isAsync || isGenerator || this.match(tt.parenL)) {\n      if (isPattern) this.unexpected();\n      prop.kind = \"method\";\n      prop.method = true;\n      return this.parseMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n    }\n\n    if (!containsEsc && this.isGetterOrSetterMethod(prop, isPattern)) {\n      if (isGenerator || isAsync) this.unexpected();\n      prop.kind = prop.key.name;\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n      this.parseMethod(\n        prop,\n        /* isGenerator */ false,\n        /* isAsync */ false,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n      this.checkGetterSetterParams(prop);\n      return prop;\n    }\n  }\n\n  parseObjectProperty(\n    prop: N.ObjectProperty,\n    startPos: ?number,\n    startLoc: ?Position,\n    isPattern: boolean,\n    refExpressionErrors: ?ExpressionErrors,\n  ): ?N.ObjectProperty {\n    prop.shorthand = false;\n\n    if (this.eat(tt.colon)) {\n      prop.value = isPattern\n        ? this.parseMaybeDefault(this.state.start, this.state.startLoc)\n        : this.parseMaybeAssign(false, refExpressionErrors);\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n\n    if (!prop.computed && prop.key.type === \"Identifier\") {\n      this.checkReservedWord(prop.key.name, prop.key.start, true, true);\n\n      if (isPattern) {\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else if (this.match(tt.eq) && refExpressionErrors) {\n        if (refExpressionErrors.shorthandAssign === -1) {\n          refExpressionErrors.shorthandAssign = this.state.start;\n        }\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else {\n        prop.value = prop.key.__clone();\n      }\n      prop.shorthand = true;\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n  }\n\n  parseObjPropValue(\n    prop: any,\n    startPos: ?number,\n    startLoc: ?Position,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    containsEsc: boolean,\n  ): void {\n    const node =\n      this.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ) ||\n      this.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      );\n\n    if (!node) this.unexpected();\n\n    // $FlowFixMe\n    return node;\n  }\n\n  parsePropertyName(\n    prop: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n    isPrivateNameAllowed: boolean,\n  ): N.Expression | N.Identifier {\n    if (this.eat(tt.bracketL)) {\n      (prop: $FlowSubtype<N.ObjectOrClassMember>).computed = true;\n      prop.key = this.parseMaybeAssign();\n      this.expect(tt.bracketR);\n    } else {\n      const oldInPropertyName = this.state.inPropertyName;\n      this.state.inPropertyName = true;\n      // We check if it's valid for it to be a private name when we push it.\n      (prop: $FlowFixMe).key =\n        this.match(tt.num) || this.match(tt.string) || this.match(tt.bigint)\n          ? this.parseExprAtom()\n          : this.parseMaybePrivateName(isPrivateNameAllowed);\n\n      if (prop.key.type !== \"PrivateName\") {\n        // ClassPrivateProperty is never computed, so we don't assign in that case.\n        prop.computed = false;\n      }\n\n      this.state.inPropertyName = oldInPropertyName;\n    }\n\n    return prop.key;\n  }\n\n  // Initialize empty function node.\n\n  initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: ?boolean): void {\n    node.id = null;\n    node.generator = false;\n    node.async = !!isAsync;\n  }\n\n  // Parse object or class method.\n\n  parseMethod<T: N.MethodLike>(\n    node: T,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowDirectSuper: boolean,\n    type: string,\n    inClassScope: boolean = false,\n  ): T {\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n\n    this.initFunction(node, isAsync);\n    node.generator = !!isGenerator;\n    const allowModifiers = isConstructor; // For TypeScript parameter properties\n    this.scope.enter(\n      SCOPE_FUNCTION |\n        SCOPE_SUPER |\n        (inClassScope ? SCOPE_CLASS : 0) |\n        (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0),\n    );\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n    this.parseFunctionParams((node: any), allowModifiers);\n    this.parseFunctionBodyAndFinish(node, type, true);\n    this.prodParam.exit();\n    this.scope.exit();\n\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  // Parse arrow function expression.\n  // If the parameters are provided, they will be converted to an\n  // assignable list.\n  parseArrowExpression(\n    node: N.ArrowFunctionExpression,\n    params: ?(N.Expression[]),\n    isAsync: boolean,\n    trailingCommaPos: ?number,\n  ): N.ArrowFunctionExpression {\n    this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n    this.prodParam.enter(functionFlags(isAsync, false));\n    this.initFunction(node, isAsync);\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n\n    if (params) {\n      this.state.maybeInArrowParameters = true;\n      this.setArrowFunctionParameters(node, params, trailingCommaPos);\n    }\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.parseFunctionBody(node, true);\n\n    this.prodParam.exit();\n    this.scope.exit();\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return this.finishNode(node, \"ArrowFunctionExpression\");\n  }\n\n  setArrowFunctionParameters(\n    node: N.ArrowFunctionExpression,\n    params: N.Expression[],\n    trailingCommaPos: ?number,\n  ): void {\n    node.params = this.toAssignableList(params, trailingCommaPos);\n  }\n\n  parseFunctionBodyAndFinish(\n    node: N.BodilessFunctionOrMethodBase,\n    type: string,\n    isMethod?: boolean = false,\n  ): void {\n    // $FlowIgnore (node is not bodiless if we get here)\n    this.parseFunctionBody(node, false, isMethod);\n    this.finishNode(node, type);\n  }\n\n  // Parse function body and check parameters.\n  parseFunctionBody(\n    node: N.Function,\n    allowExpression: ?boolean,\n    isMethod?: boolean = false,\n  ): void {\n    const isExpression = allowExpression && !this.match(tt.braceL);\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = false;\n\n    if (isExpression) {\n      node.body = this.parseMaybeAssign();\n      this.checkParams(node, false, allowExpression, false);\n    } else {\n      const oldStrict = this.state.strict;\n      // Start a new scope with regard to labels\n      // flag (restore them to their old value afterwards).\n      const oldLabels = this.state.labels;\n      this.state.labels = [];\n\n      // FunctionBody[Yield, Await]:\n      //   StatementList[?Yield, ?Await, +Return] opt\n      this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN);\n      node.body = this.parseBlock(\n        true,\n        false,\n        // Strict mode function checks after we parse the statements in the function body.\n        (hasStrictModeDirective: boolean) => {\n          const nonSimple = !this.isSimpleParamList(node.params);\n\n          if (hasStrictModeDirective && nonSimple) {\n            // This logic is here to align the error location with the ESTree plugin.\n            const errorPos =\n              // $FlowIgnore\n              (node.kind === \"method\" || node.kind === \"constructor\") &&\n              // $FlowIgnore\n              !!node.key\n                ? node.key.end\n                : node.start;\n            this.raise(errorPos, Errors.IllegalLanguageModeDirective);\n          }\n\n          const strictModeChanged = !oldStrict && this.state.strict;\n\n          // Add the params to varDeclaredNames to ensure that an error is thrown\n          // if a let/const declaration in the function clashes with one of the params.\n          this.checkParams(\n            node,\n            !this.state.strict && !allowExpression && !isMethod && !nonSimple,\n            allowExpression,\n            strictModeChanged,\n          );\n\n          // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n          if (this.state.strict && node.id) {\n            this.checkLVal(\n              node.id,\n              BIND_OUTSIDE,\n              undefined,\n              \"function name\",\n              undefined,\n              strictModeChanged,\n            );\n          }\n        },\n      );\n      this.prodParam.exit();\n      this.state.labels = oldLabels;\n    }\n\n    this.state.inParameters = oldInParameters;\n  }\n\n  isSimpleParamList(\n    params: $ReadOnlyArray<N.Pattern | N.TSParameterProperty>,\n  ): boolean {\n    for (let i = 0, len = params.length; i < len; i++) {\n      if (params[i].type !== \"Identifier\") return false;\n    }\n    return true;\n  }\n\n  checkParams(\n    node: N.Function,\n    allowDuplicates: boolean,\n    // eslint-disable-next-line no-unused-vars\n    isArrowFunction: ?boolean,\n    strictModeChanged?: boolean = true,\n  ): void {\n    // $FlowIssue\n    const nameHash: {} = Object.create(null);\n    for (let i = 0; i < node.params.length; i++) {\n      this.checkLVal(\n        node.params[i],\n        BIND_VAR,\n        allowDuplicates ? null : nameHash,\n        \"function parameter list\",\n        undefined,\n        strictModeChanged,\n      );\n    }\n  }\n\n  // Parses a comma-separated list of expressions, and returns them as\n  // an array. `close` is the token type that ends the list, and\n  // `allowEmpty` can be turned on to allow subsequent commas with\n  // nothing in between them to be parsed as `null` (which is needed\n  // for array literals).\n\n  parseExprList(\n    close: TokenType,\n    allowEmpty?: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let first = true;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n    }\n    return elts;\n  }\n\n  parseExprListItem(\n    allowEmpty: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    refNeedsArrowPos: ?Pos,\n    allowPlaceholder: ?boolean,\n  ): ?N.Expression {\n    let elt;\n    if (allowEmpty && this.match(tt.comma)) {\n      elt = null;\n    } else if (this.match(tt.ellipsis)) {\n      const spreadNodeStartPos = this.state.start;\n      const spreadNodeStartLoc = this.state.startLoc;\n      elt = this.parseParenItem(\n        this.parseSpread(refExpressionErrors, refNeedsArrowPos),\n        spreadNodeStartPos,\n        spreadNodeStartLoc,\n      );\n    } else if (this.match(tt.question)) {\n      this.expectPlugin(\"partialApplication\");\n      if (!allowPlaceholder) {\n        this.raise(this.state.start, Errors.UnexpectedArgumentPlaceholder);\n      }\n      const node = this.startNode();\n      this.next();\n      elt = this.finishNode(node, \"ArgumentPlaceholder\");\n    } else {\n      elt = this.parseMaybeAssign(\n        false,\n        refExpressionErrors,\n        this.parseParenItem,\n        refNeedsArrowPos,\n      );\n    }\n    return elt;\n  }\n\n  // Parse the next token as an identifier. If `liberal` is true (used\n  // when parsing properties), it will also convert keywords into\n  // identifiers.\n  // This shouldn't be used to parse the keywords of meta properties, since they\n  // are not identifiers and cannot contain escape sequences.\n\n  parseIdentifier(liberal?: boolean): N.Identifier {\n    const node = this.startNode();\n    const name = this.parseIdentifierName(node.start, liberal);\n\n    return this.createIdentifier(node, name);\n  }\n\n  createIdentifier(node: N.Identifier, name: string): N.Identifier {\n    node.name = name;\n    node.loc.identifierName = name;\n\n    return this.finishNode(node, \"Identifier\");\n  }\n\n  parseIdentifierName(pos: number, liberal?: boolean): string {\n    let name: string;\n\n    if (this.match(tt.name)) {\n      name = this.state.value;\n    } else if (this.state.type.keyword) {\n      name = this.state.type.keyword;\n\n      // `class` and `function` keywords push new context into this.context.\n      // But there is no chance to pop the context if the keyword is consumed\n      // as an identifier such as a property name.\n      // If the previous token is a dot, this does not apply because the\n      // context-managing code already ignored the keyword\n      if (\n        (name === \"class\" || name === \"function\") &&\n        (this.state.lastTokEnd !== this.state.lastTokStart + 1 ||\n          this.input.charCodeAt(this.state.lastTokStart) !== charCodes.dot)\n      ) {\n        this.state.context.pop();\n      }\n    } else {\n      throw this.unexpected();\n    }\n\n    if (liberal) {\n      // If the current token is not used as a keyword, set its type to \"tt.name\".\n      // This will prevent this.next() from throwing about unexpected escapes.\n      this.state.type = tt.name;\n    } else {\n      this.checkReservedWord(\n        name,\n        this.state.start,\n        !!this.state.type.keyword,\n        false,\n      );\n    }\n\n    this.next();\n\n    return name;\n  }\n\n  checkReservedWord(\n    word: string,\n    startLoc: number,\n    checkKeywords: boolean,\n    isBinding: boolean,\n  ): void {\n    if (this.prodParam.hasYield && word === \"yield\") {\n      this.raise(startLoc, Errors.YieldBindingIdentifier);\n      return;\n    }\n\n    if (word === \"await\") {\n      if (this.prodParam.hasAwait) {\n        this.raise(startLoc, Errors.AwaitBindingIdentifier);\n        return;\n      }\n      if (\n        this.state.awaitPos === -1 &&\n        (this.state.maybeInAsyncArrowHead || this.isAwaitAllowed())\n      ) {\n        this.state.awaitPos = this.state.start;\n      }\n    }\n\n    if (\n      this.scope.inClass &&\n      !this.scope.inNonArrowFunction &&\n      word === \"arguments\"\n    ) {\n      this.raise(startLoc, Errors.ArgumentsDisallowedInInitializer);\n      return;\n    }\n    if (checkKeywords && isKeyword(word)) {\n      this.raise(startLoc, Errors.UnexpectedKeyword, word);\n      return;\n    }\n\n    const reservedTest = !this.state.strict\n      ? isReservedWord\n      : isBinding\n      ? isStrictBindReservedWord\n      : isStrictReservedWord;\n\n    if (reservedTest(word, this.inModule)) {\n      if (!this.prodParam.hasAwait && word === \"await\") {\n        this.raise(startLoc, Errors.AwaitNotInAsyncFunction);\n      } else {\n        this.raise(startLoc, Errors.UnexpectedReservedWord, word);\n      }\n    }\n  }\n\n  isAwaitAllowed(): boolean {\n    if (this.scope.inFunction) return this.prodParam.hasAwait;\n    if (this.options.allowAwaitOutsideFunction) return true;\n    if (this.hasPlugin(\"topLevelAwait\")) {\n      return this.inModule && this.prodParam.hasAwait;\n    }\n    return false;\n  }\n\n  // Parses await expression inside async function.\n\n  parseAwait(): N.AwaitExpression {\n    const node = this.startNode();\n\n    this.next();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.AwaitExpressionFormalParameter);\n    } else if (this.state.awaitPos === -1) {\n      this.state.awaitPos = node.start;\n    }\n    if (this.eat(tt.star)) {\n      this.raise(node.start, Errors.ObsoleteAwaitStar);\n    }\n\n    if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n      if (\n        this.hasPrecedingLineBreak() ||\n        // All the following expressions are ambiguous:\n        //   await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``\n        this.match(tt.plusMin) ||\n        this.match(tt.parenL) ||\n        this.match(tt.bracketL) ||\n        this.match(tt.backQuote) ||\n        // Sometimes the tokenizer generates tt.slash for regexps, and this is\n        // handler by parseExprAtom\n        this.match(tt.regexp) ||\n        this.match(tt.slash) ||\n        // This code could be parsed both as a modulo operator or as an intrinsic:\n        //   await %x(0)\n        (this.hasPlugin(\"v8intrinsic\") && this.match(tt.modulo))\n      ) {\n        this.ambiguousScriptDifferentAst = true;\n      } else {\n        this.sawUnambiguousESM = true;\n      }\n    }\n\n    if (!this.state.soloAwait) {\n      node.argument = this.parseMaybeUnary();\n    }\n\n    return this.finishNode(node, \"AwaitExpression\");\n  }\n\n  // Parses yield expression inside generator.\n\n  parseYield(noIn?: ?boolean): N.YieldExpression {\n    const node = this.startNode();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.YieldInParameter);\n    } else if (this.state.yieldPos === -1) {\n      this.state.yieldPos = node.start;\n    }\n\n    this.next();\n    if (\n      this.match(tt.semi) ||\n      (!this.match(tt.star) && !this.state.type.startsExpr) ||\n      this.hasPrecedingLineBreak()\n    ) {\n      node.delegate = false;\n      node.argument = null;\n    } else {\n      node.delegate = this.eat(tt.star);\n      node.argument = this.parseMaybeAssign(noIn);\n    }\n    return this.finishNode(node, \"YieldExpression\");\n  }\n\n  // Validates a pipeline (for any of the pipeline Babylon plugins) at the point\n  // of the infix operator `|>`.\n\n  checkPipelineAtInfixOperator(left: N.Expression, leftStartPos: number) {\n    if (this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\") {\n      if (left.type === \"SequenceExpression\") {\n        // Ensure that the pipeline head is not a comma-delimited\n        // sequence expression.\n        this.raise(leftStartPos, Errors.PipelineHeadSequenceExpression);\n      }\n    }\n  }\n\n  parseSmartPipelineBody(\n    childExpression: N.Expression,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const pipelineStyle = this.checkSmartPipelineBodyStyle(childExpression);\n\n    this.checkSmartPipelineBodyEarlyErrors(\n      childExpression,\n      pipelineStyle,\n      startPos,\n    );\n\n    return this.parseSmartPipelineBodyInStyle(\n      childExpression,\n      pipelineStyle,\n      startPos,\n      startLoc,\n    );\n  }\n\n  checkSmartPipelineBodyEarlyErrors(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n  ): void {\n    if (this.match(tt.arrow)) {\n      // If the following token is invalidly `=>`, then throw a human-friendly error\n      // instead of something like 'Unexpected token, expected \";\"'.\n      throw this.raise(this.state.start, Errors.PipelineBodyNoArrow);\n    } else if (\n      pipelineStyle === \"PipelineTopicExpression\" &&\n      childExpression.type === \"SequenceExpression\"\n    ) {\n      this.raise(startPos, Errors.PipelineBodySequenceExpression);\n    }\n  }\n\n  parseSmartPipelineBodyInStyle(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const bodyNode = this.startNodeAt(startPos, startLoc);\n    switch (pipelineStyle) {\n      case \"PipelineBareFunction\":\n        bodyNode.callee = childExpression;\n        break;\n      case \"PipelineBareConstructor\":\n        bodyNode.callee = childExpression.callee;\n        break;\n      case \"PipelineBareAwaitedFunction\":\n        bodyNode.callee = childExpression.argument;\n        break;\n      case \"PipelineTopicExpression\":\n        if (!this.topicReferenceWasUsedInCurrentTopicContext()) {\n          this.raise(startPos, Errors.PipelineTopicUnused);\n        }\n        bodyNode.expression = childExpression;\n        break;\n      default:\n        throw new Error(\n          `Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`,\n        );\n    }\n    return this.finishNode(bodyNode, pipelineStyle);\n  }\n\n  checkSmartPipelineBodyStyle(expression: N.Expression): N.PipelineStyle {\n    switch (expression.type) {\n      default:\n        return this.isSimpleReference(expression)\n          ? \"PipelineBareFunction\"\n          : \"PipelineTopicExpression\";\n    }\n  }\n\n  isSimpleReference(expression: N.Expression): boolean {\n    switch (expression.type) {\n      case \"MemberExpression\":\n        return (\n          !expression.computed && this.isSimpleReference(expression.object)\n        );\n      case \"Identifier\":\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  // Enable topic references from outer contexts within smart pipeline bodies.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicPermittingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Enable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 1,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  // Disable topic references from outer contexts within syntax constructs\n  // such as the bodies of iteration statements.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicForbiddingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Disable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 0,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  withSoloAwaitPermittingContext<T>(callback: () => T): T {\n    const outerContextSoloAwaitState = this.state.soloAwait;\n    this.state.soloAwait = true;\n\n    try {\n      return callback();\n    } finally {\n      this.state.soloAwait = outerContextSoloAwaitState;\n    }\n  }\n\n  // Register the use of a primary topic reference (`#`) within the current\n  // topic context.\n  registerTopicReference(): void {\n    this.state.topicContext.maxTopicIndex = 0;\n  }\n\n  primaryTopicReferenceIsAllowedInCurrentTopicContext(): boolean {\n    return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n  }\n\n  topicReferenceWasUsedInCurrentTopicContext(): boolean {\n    return (\n      this.state.topicContext.maxTopicIndex != null &&\n      this.state.topicContext.maxTopicIndex >= 0\n    );\n  }\n\n  parseFSharpPipelineBody(prec: number, noIn: ?boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    this.state.potentialArrowAt = this.state.start;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = true;\n\n    const ret = this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      prec,\n      noIn,\n    );\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return ret;\n  }\n}\n","// @flow\n\nimport * as N from \"../types\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport ExpressionParser from \"./expression\";\nimport { Errors } from \"./location\";\nimport {\n  isIdentifierChar,\n  isIdentifierStart,\n  keywordRelationalOperator,\n} from \"../util/identifier\";\nimport { lineBreak } from \"../util/whitespace\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_CLASS,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_CLASS,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  CLASS_ELEMENT_OTHER,\n  CLASS_ELEMENT_INSTANCE_GETTER,\n  CLASS_ELEMENT_INSTANCE_SETTER,\n  CLASS_ELEMENT_STATIC_GETTER,\n  CLASS_ELEMENT_STATIC_SETTER,\n  type BindingTypes,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { PARAM, functionFlags } from \"../util/production-parameter\";\n\nconst loopLabel = { kind: \"loop\" },\n  switchLabel = { kind: \"switch\" };\n\nconst FUNC_NO_FLAGS = 0b000,\n  FUNC_STATEMENT = 0b001,\n  FUNC_HANGING_STATEMENT = 0b010,\n  FUNC_NULLABLE_ID = 0b100;\n\nexport default class StatementParser extends ExpressionParser {\n  // ### Statement parsing\n\n  // Parse a program. Initializes the parser, reads any number of\n  // statements, and wraps them in a Program node.  Optionally takes a\n  // `program` argument.  If present, the statements will be appended\n  // to its body instead of creating a new node.\n\n  parseTopLevel(file: N.File, program: N.Program): N.File {\n    program.sourceType = this.options.sourceType;\n\n    program.interpreter = this.parseInterpreterDirective();\n\n    this.parseBlockBody(program, true, true, tt.eof);\n\n    if (\n      this.inModule &&\n      !this.options.allowUndeclaredExports &&\n      this.scope.undefinedExports.size > 0\n    ) {\n      for (const [name] of Array.from(this.scope.undefinedExports)) {\n        const pos = this.scope.undefinedExports.get(name);\n        // $FlowIssue\n        this.raise(pos, Errors.ModuleExportUndefined, name);\n      }\n    }\n\n    file.program = this.finishNode(program, \"Program\");\n    file.comments = this.state.comments;\n\n    if (this.options.tokens) file.tokens = this.tokens;\n\n    return this.finishNode(file, \"File\");\n  }\n\n  // TODO\n\n  stmtToDirective(stmt: N.Statement): N.Directive {\n    const expr = stmt.expression;\n\n    const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\n    const directive = this.startNodeAt(stmt.start, stmt.loc.start);\n\n    const raw = this.input.slice(expr.start, expr.end);\n    const val = (directiveLiteral.value = raw.slice(1, -1)); // remove quotes\n\n    this.addExtra(directiveLiteral, \"raw\", raw);\n    this.addExtra(directiveLiteral, \"rawValue\", val);\n\n    directive.value = this.finishNodeAt(\n      directiveLiteral,\n      \"DirectiveLiteral\",\n      expr.end,\n      expr.loc.end,\n    );\n\n    return this.finishNodeAt(directive, \"Directive\", stmt.end, stmt.loc.end);\n  }\n\n  parseInterpreterDirective(): N.InterpreterDirective | null {\n    if (!this.match(tt.interpreterDirective)) {\n      return null;\n    }\n\n    const node = this.startNode();\n    node.value = this.state.value;\n    this.next();\n    return this.finishNode(node, \"InterpreterDirective\");\n  }\n\n  isLet(context: ?string): boolean {\n    if (!this.isContextual(\"let\")) {\n      return false;\n    }\n    const next = this.nextTokenStart();\n    const nextCh = this.input.charCodeAt(next);\n    // For ambiguous cases, determine if a LexicalDeclaration (or only a\n    // Statement) is allowed here. If context is not empty then only a Statement\n    // is allowed. However, `let [` is an explicit negative lookahead for\n    // ExpressionStatement, so special-case it first.\n    if (nextCh === charCodes.leftSquareBracket) return true;\n    if (context) return false;\n\n    if (nextCh === charCodes.leftCurlyBrace) return true;\n\n    if (isIdentifierStart(nextCh)) {\n      let pos = next + 1;\n      while (isIdentifierChar(this.input.charCodeAt(pos))) {\n        ++pos;\n      }\n      const ident = this.input.slice(next, pos);\n      if (!keywordRelationalOperator.test(ident)) return true;\n    }\n    return false;\n  }\n\n  // Parse a single statement.\n  //\n  // If expecting a statement and finding a slash operator, parse a\n  // regular expression literal. This is to handle cases like\n  // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n  // does not help.\n\n  parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n    if (this.match(tt.at)) {\n      this.parseDecorators(true);\n    }\n    return this.parseStatementContent(context, topLevel);\n  }\n\n  parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n    let starttype = this.state.type;\n    const node = this.startNode();\n    let kind;\n\n    if (this.isLet(context)) {\n      starttype = tt._var;\n      kind = \"let\";\n    }\n\n    // Most types of statements are recognized by the keyword they\n    // start with. Many are trivial to parse, some require a bit of\n    // complexity.\n\n    switch (starttype) {\n      case tt._break:\n      case tt._continue:\n        // $FlowFixMe\n        return this.parseBreakContinueStatement(node, starttype.keyword);\n      case tt._debugger:\n        return this.parseDebuggerStatement(node);\n      case tt._do:\n        return this.parseDoStatement(node);\n      case tt._for:\n        return this.parseForStatement(node);\n      case tt._function:\n        if (this.lookaheadCharCode() === charCodes.dot) break;\n        if (context) {\n          if (this.state.strict) {\n            this.raise(this.state.start, Errors.StrictFunction);\n          } else if (context !== \"if\" && context !== \"label\") {\n            this.raise(this.state.start, Errors.SloppyFunction);\n          }\n        }\n        return this.parseFunctionStatement(node, false, !context);\n\n      case tt._class:\n        if (context) this.unexpected();\n        return this.parseClass(node, true);\n\n      case tt._if:\n        return this.parseIfStatement(node);\n      case tt._return:\n        return this.parseReturnStatement(node);\n      case tt._switch:\n        return this.parseSwitchStatement(node);\n      case tt._throw:\n        return this.parseThrowStatement(node);\n      case tt._try:\n        return this.parseTryStatement(node);\n\n      case tt._const:\n      case tt._var:\n        kind = kind || this.state.value;\n        if (context && kind !== \"var\") {\n          this.raise(this.state.start, Errors.UnexpectedLexicalDeclaration);\n        }\n        return this.parseVarStatement(node, kind);\n\n      case tt._while:\n        return this.parseWhileStatement(node);\n      case tt._with:\n        return this.parseWithStatement(node);\n      case tt.braceL:\n        return this.parseBlock();\n      case tt.semi:\n        return this.parseEmptyStatement(node);\n      case tt._export:\n      case tt._import: {\n        const nextTokenCharCode = this.lookaheadCharCode();\n        if (\n          nextTokenCharCode === charCodes.leftParenthesis ||\n          nextTokenCharCode === charCodes.dot\n        ) {\n          break;\n        }\n\n        if (!this.options.allowImportExportEverywhere && !topLevel) {\n          this.raise(this.state.start, Errors.UnexpectedImportExport);\n        }\n\n        this.next();\n\n        let result;\n        if (starttype === tt._import) {\n          result = this.parseImport(node);\n\n          if (\n            result.type === \"ImportDeclaration\" &&\n            (!result.importKind || result.importKind === \"value\")\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        } else {\n          result = this.parseExport(node);\n\n          if (\n            (result.type === \"ExportNamedDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            (result.type === \"ExportAllDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            result.type === \"ExportDefaultDeclaration\"\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        }\n\n        this.assertModuleNodeAllowed(node);\n\n        return result;\n      }\n\n      default: {\n        if (this.isAsyncFunction()) {\n          if (context) {\n            this.raise(\n              this.state.start,\n              Errors.AsyncFunctionInSingleStatementContext,\n            );\n          }\n          this.next();\n          return this.parseFunctionStatement(node, true, !context);\n        }\n      }\n    }\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n    const maybeName = this.state.value;\n    const expr = this.parseExpression();\n\n    if (\n      starttype === tt.name &&\n      expr.type === \"Identifier\" &&\n      this.eat(tt.colon)\n    ) {\n      return this.parseLabeledStatement(node, maybeName, expr, context);\n    } else {\n      return this.parseExpressionStatement(node, expr);\n    }\n  }\n\n  assertModuleNodeAllowed(node: N.Node): void {\n    if (!this.options.allowImportExportEverywhere && !this.inModule) {\n      this.raiseWithData(\n        node.start,\n        {\n          code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\",\n        },\n        Errors.ImportOutsideModule,\n      );\n    }\n  }\n\n  takeDecorators(node: N.HasDecorators): void {\n    const decorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (decorators.length) {\n      node.decorators = decorators;\n      this.resetStartLocationFromNode(node, decorators[0]);\n      this.state.decoratorStack[this.state.decoratorStack.length - 1] = [];\n    }\n  }\n\n  canHaveLeadingDecorator(): boolean {\n    return this.match(tt._class);\n  }\n\n  parseDecorators(allowExport?: boolean): void {\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    while (this.match(tt.at)) {\n      const decorator = this.parseDecorator();\n      currentContextDecorators.push(decorator);\n    }\n\n    if (this.match(tt._export)) {\n      if (!allowExport) {\n        this.unexpected();\n      }\n\n      if (\n        this.hasPlugin(\"decorators\") &&\n        !this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorExportClass);\n      }\n    } else if (!this.canHaveLeadingDecorator()) {\n      throw this.raise(this.state.start, Errors.UnexpectedLeadingDecorator);\n    }\n  }\n\n  parseDecorator(): N.Decorator {\n    this.expectOnePlugin([\"decorators-legacy\", \"decorators\"]);\n\n    const node = this.startNode();\n    this.next();\n\n    if (this.hasPlugin(\"decorators\")) {\n      // Every time a decorator class expression is evaluated, a new empty array is pushed onto the stack\n      // So that the decorators of any nested class expressions will be dealt with separately\n      this.state.decoratorStack.push([]);\n\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let expr: N.Expression;\n\n      if (this.eat(tt.parenL)) {\n        expr = this.parseExpression();\n        this.expect(tt.parenR);\n      } else {\n        expr = this.parseIdentifier(false);\n\n        while (this.eat(tt.dot)) {\n          const node = this.startNodeAt(startPos, startLoc);\n          node.object = expr;\n          node.property = this.parseIdentifier(true);\n          node.computed = false;\n          expr = this.finishNode(node, \"MemberExpression\");\n        }\n      }\n\n      node.expression = this.parseMaybeDecoratorArguments(expr);\n      this.state.decoratorStack.pop();\n    } else {\n      node.expression = this.parseExprSubscripts();\n    }\n    return this.finishNode(node, \"Decorator\");\n  }\n\n  parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n    if (this.eat(tt.parenL)) {\n      const node = this.startNodeAtNode(expr);\n      node.callee = expr;\n      node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      this.toReferencedList(node.arguments);\n      return this.finishNode(node, \"CallExpression\");\n    }\n\n    return expr;\n  }\n\n  parseBreakContinueStatement(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ): N.BreakStatement | N.ContinueStatement {\n    const isBreak = keyword === \"break\";\n    this.next();\n\n    if (this.isLineTerminator()) {\n      node.label = null;\n    } else {\n      node.label = this.parseIdentifier();\n      this.semicolon();\n    }\n\n    this.verifyBreakContinue(node, keyword);\n\n    return this.finishNode(\n      node,\n      isBreak ? \"BreakStatement\" : \"ContinueStatement\",\n    );\n  }\n\n  verifyBreakContinue(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ) {\n    const isBreak = keyword === \"break\";\n    let i;\n    for (i = 0; i < this.state.labels.length; ++i) {\n      const lab = this.state.labels[i];\n      if (node.label == null || lab.name === node.label.name) {\n        if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break;\n        if (node.label && isBreak) break;\n      }\n    }\n    if (i === this.state.labels.length) {\n      this.raise(node.start, Errors.IllegalBreakContinue, keyword);\n    }\n  }\n\n  parseDebuggerStatement(node: N.DebuggerStatement): N.DebuggerStatement {\n    this.next();\n    this.semicolon();\n    return this.finishNode(node, \"DebuggerStatement\");\n  }\n\n  parseHeaderExpression(): N.Expression {\n    this.expect(tt.parenL);\n    const val = this.parseExpression();\n    this.expect(tt.parenR);\n    return val;\n  }\n\n  parseDoStatement(node: N.DoWhileStatement): N.DoWhileStatement {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body's body.\n        this.parseStatement(\"do\"),\n      );\n\n    this.state.labels.pop();\n\n    this.expect(tt._while);\n    node.test = this.parseHeaderExpression();\n    this.eat(tt.semi);\n    return this.finishNode(node, \"DoWhileStatement\");\n  }\n\n  // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n  // loop is non-trivial. Basically, we have to parse the init `var`\n  // statement or expression, disallowing the `in` operator (see\n  // the second parameter to `parseExpression`), and then check\n  // whether the next token is `in` or `of`. When there is no init\n  // part (semicolon immediately after the opening parenthesis), it\n  // is a regular `for` loop.\n\n  parseForStatement(node: N.Node): N.ForLike {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    let awaitAt = -1;\n    if (this.isAwaitAllowed() && this.eatContextual(\"await\")) {\n      awaitAt = this.state.lastTokStart;\n    }\n    this.scope.enter(SCOPE_OTHER);\n    this.expect(tt.parenL);\n\n    if (this.match(tt.semi)) {\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, null);\n    }\n\n    const isLet = this.isLet();\n    if (this.match(tt._var) || this.match(tt._const) || isLet) {\n      const init = this.startNode();\n      const kind = isLet ? \"let\" : this.state.value;\n      this.next();\n      this.parseVar(init, true, kind);\n      this.finishNode(init, \"VariableDeclaration\");\n\n      if (\n        (this.match(tt._in) || this.isContextual(\"of\")) &&\n        init.declarations.length === 1\n      ) {\n        return this.parseForIn(node, init, awaitAt);\n      }\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, init);\n    }\n\n    const refExpressionErrors = new ExpressionErrors();\n    const init = this.parseExpression(true, refExpressionErrors);\n    if (this.match(tt._in) || this.isContextual(\"of\")) {\n      this.toAssignable(init);\n      const description = this.isContextual(\"of\")\n        ? \"for-of statement\"\n        : \"for-in statement\";\n      this.checkLVal(init, undefined, undefined, description);\n      return this.parseForIn(node, init, awaitAt);\n    } else {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n    if (awaitAt > -1) {\n      this.unexpected(awaitAt);\n    }\n    return this.parseFor(node, init);\n  }\n\n  parseFunctionStatement(\n    node: N.FunctionDeclaration,\n    isAsync?: boolean,\n    declarationPosition?: boolean,\n  ): N.FunctionDeclaration {\n    this.next();\n    return this.parseFunction(\n      node,\n      FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT),\n      isAsync,\n    );\n  }\n\n  parseIfStatement(node: N.IfStatement): N.IfStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    node.consequent = this.parseStatement(\"if\");\n    node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null;\n    return this.finishNode(node, \"IfStatement\");\n  }\n\n  parseReturnStatement(node: N.ReturnStatement): N.ReturnStatement {\n    if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n      this.raise(this.state.start, Errors.IllegalReturn);\n    }\n\n    this.next();\n\n    // In `return` (and `break`/`continue`), the keywords with\n    // optional arguments, we eagerly look for a semicolon or the\n    // possibility to insert one.\n\n    if (this.isLineTerminator()) {\n      node.argument = null;\n    } else {\n      node.argument = this.parseExpression();\n      this.semicolon();\n    }\n\n    return this.finishNode(node, \"ReturnStatement\");\n  }\n\n  parseSwitchStatement(node: N.SwitchStatement): N.SwitchStatement {\n    this.next();\n    node.discriminant = this.parseHeaderExpression();\n    const cases = (node.cases = []);\n    this.expect(tt.braceL);\n    this.state.labels.push(switchLabel);\n    this.scope.enter(SCOPE_OTHER);\n\n    // Statements under must be grouped (by label) in SwitchCase\n    // nodes. `cur` is used to keep the node that we are currently\n    // adding statements to.\n\n    let cur;\n    for (let sawDefault; !this.match(tt.braceR); ) {\n      if (this.match(tt._case) || this.match(tt._default)) {\n        const isCase = this.match(tt._case);\n        if (cur) this.finishNode(cur, \"SwitchCase\");\n        cases.push((cur = this.startNode()));\n        cur.consequent = [];\n        this.next();\n        if (isCase) {\n          cur.test = this.parseExpression();\n        } else {\n          if (sawDefault) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.MultipleDefaultsInSwitch,\n            );\n          }\n          sawDefault = true;\n          cur.test = null;\n        }\n        this.expect(tt.colon);\n      } else {\n        if (cur) {\n          cur.consequent.push(this.parseStatement(null));\n        } else {\n          this.unexpected();\n        }\n      }\n    }\n    this.scope.exit();\n    if (cur) this.finishNode(cur, \"SwitchCase\");\n    this.next(); // Closing brace\n    this.state.labels.pop();\n    return this.finishNode(node, \"SwitchStatement\");\n  }\n\n  parseThrowStatement(node: N.ThrowStatement): N.ThrowStatement {\n    this.next();\n    if (\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.NewlineAfterThrow);\n    }\n    node.argument = this.parseExpression();\n    this.semicolon();\n    return this.finishNode(node, \"ThrowStatement\");\n  }\n\n  parseTryStatement(node: N.TryStatement): N.TryStatement {\n    this.next();\n\n    node.block = this.parseBlock();\n    node.handler = null;\n\n    if (this.match(tt._catch)) {\n      const clause = this.startNode();\n      this.next();\n      if (this.match(tt.parenL)) {\n        this.expect(tt.parenL);\n        clause.param = this.parseBindingAtom();\n        const simple = clause.param.type === \"Identifier\";\n        this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0);\n        this.checkLVal(clause.param, BIND_LEXICAL, null, \"catch clause\");\n        this.expect(tt.parenR);\n      } else {\n        clause.param = null;\n        this.scope.enter(SCOPE_OTHER);\n      }\n\n      clause.body =\n        // For the smartPipelines plugin: Disable topic references from outer\n        // contexts within the function body. They are permitted in function\n        // default-parameter expressions, which are part of the outer context,\n        // outside of the function body.\n        this.withTopicForbiddingContext(() =>\n          // Parse the catch clause's body.\n          this.parseBlock(false, false),\n        );\n      this.scope.exit();\n\n      node.handler = this.finishNode(clause, \"CatchClause\");\n    }\n\n    node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null;\n\n    if (!node.handler && !node.finalizer) {\n      this.raise(node.start, Errors.NoCatchOrFinally);\n    }\n\n    return this.finishNode(node, \"TryStatement\");\n  }\n\n  parseVarStatement(\n    node: N.VariableDeclaration,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    this.next();\n    this.parseVar(node, false, kind);\n    this.semicolon();\n    return this.finishNode(node, \"VariableDeclaration\");\n  }\n\n  parseWhileStatement(node: N.WhileStatement): N.WhileStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"while\"),\n      );\n\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"WhileStatement\");\n  }\n\n  parseWithStatement(node: N.WithStatement): N.WithStatement {\n    if (this.state.strict) {\n      this.raise(this.state.start, Errors.StrictWith);\n    }\n    this.next();\n    node.object = this.parseHeaderExpression();\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the function body.\n      // They are permitted in function default-parameter expressions, which are\n      // part of the outer context, outside of the function body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the statement body.\n        this.parseStatement(\"with\"),\n      );\n\n    return this.finishNode(node, \"WithStatement\");\n  }\n\n  parseEmptyStatement(node: N.EmptyStatement): N.EmptyStatement {\n    this.next();\n    return this.finishNode(node, \"EmptyStatement\");\n  }\n\n  parseLabeledStatement(\n    node: N.LabeledStatement,\n    maybeName: string,\n    expr: N.Identifier,\n    context: ?string,\n  ): N.LabeledStatement {\n    for (const label of this.state.labels) {\n      if (label.name === maybeName) {\n        this.raise(expr.start, Errors.LabelRedeclaration, maybeName);\n      }\n    }\n\n    const kind = this.state.type.isLoop\n      ? \"loop\"\n      : this.match(tt._switch)\n      ? \"switch\"\n      : null;\n    for (let i = this.state.labels.length - 1; i >= 0; i--) {\n      const label = this.state.labels[i];\n      if (label.statementStart === node.start) {\n        label.statementStart = this.state.start;\n        label.kind = kind;\n      } else {\n        break;\n      }\n    }\n\n    this.state.labels.push({\n      name: maybeName,\n      kind: kind,\n      statementStart: this.state.start,\n    });\n    node.body = this.parseStatement(\n      context\n        ? context.indexOf(\"label\") === -1\n          ? context + \"label\"\n          : context\n        : \"label\",\n    );\n\n    this.state.labels.pop();\n    node.label = expr;\n    return this.finishNode(node, \"LabeledStatement\");\n  }\n\n  parseExpressionStatement(\n    node: N.ExpressionStatement,\n    expr: N.Expression,\n  ): N.Statement {\n    node.expression = expr;\n    this.semicolon();\n    return this.finishNode(node, \"ExpressionStatement\");\n  }\n\n  // Parse a semicolon-enclosed block of statements, handling `\"use\n  // strict\"` declarations when `allowStrict` is true (used for\n  // function bodies).\n\n  parseBlock(\n    allowDirectives?: boolean = false,\n    createNewLexicalScope?: boolean = true,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): N.BlockStatement {\n    const node = this.startNode();\n    this.expect(tt.braceL);\n    if (createNewLexicalScope) {\n      this.scope.enter(SCOPE_OTHER);\n    }\n    this.parseBlockBody(\n      node,\n      allowDirectives,\n      false,\n      tt.braceR,\n      afterBlockParse,\n    );\n    if (createNewLexicalScope) {\n      this.scope.exit();\n    }\n    return this.finishNode(node, \"BlockStatement\");\n  }\n\n  isValidDirective(stmt: N.Statement): boolean {\n    return (\n      stmt.type === \"ExpressionStatement\" &&\n      stmt.expression.type === \"StringLiteral\" &&\n      !stmt.expression.extra.parenthesized\n    );\n  }\n\n  parseBlockBody(\n    node: N.BlockStatementLike,\n    allowDirectives: ?boolean,\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const body = (node.body = []);\n    const directives = (node.directives = []);\n    this.parseBlockOrModuleBlockBody(\n      body,\n      allowDirectives ? directives : undefined,\n      topLevel,\n      end,\n      afterBlockParse,\n    );\n  }\n\n  // Undefined directives means that directives are not allowed.\n  parseBlockOrModuleBlockBody(\n    body: N.Statement[],\n    directives: ?(N.Directive[]),\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const octalPositions = [];\n    const oldStrict = this.state.strict;\n    let hasStrictModeDirective = false;\n    let parsedNonDirective = false;\n\n    while (!this.match(end)) {\n      // Track octal literals that occur before a \"use strict\" directive.\n      if (!parsedNonDirective && this.state.octalPositions.length) {\n        octalPositions.push(...this.state.octalPositions);\n      }\n\n      const stmt = this.parseStatement(null, topLevel);\n\n      if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {\n        const directive = this.stmtToDirective(stmt);\n        directives.push(directive);\n\n        if (!hasStrictModeDirective && directive.value.value === \"use strict\") {\n          hasStrictModeDirective = true;\n          this.setStrict(true);\n        }\n\n        continue;\n      }\n\n      parsedNonDirective = true;\n      body.push(stmt);\n    }\n\n    // Throw an error for any octal literals found before a\n    // \"use strict\" directive. Strict mode will be set at parse\n    // time for any literals that occur after the directive.\n    if (this.state.strict && octalPositions.length) {\n      for (const pos of octalPositions) {\n        this.raise(pos, Errors.StrictOctalLiteral);\n      }\n    }\n\n    if (afterBlockParse) {\n      afterBlockParse.call(this, hasStrictModeDirective);\n    }\n\n    if (!oldStrict) {\n      this.setStrict(false);\n    }\n\n    this.next();\n  }\n\n  // Parse a regular `for` loop. The disambiguation code in\n  // `parseStatement` will already have parsed the init statement or\n  // expression.\n\n  parseFor(\n    node: N.ForStatement,\n    init: ?(N.VariableDeclaration | N.Expression),\n  ): N.ForStatement {\n    node.init = init;\n    this.expect(tt.semi);\n    node.test = this.match(tt.semi) ? null : this.parseExpression();\n    this.expect(tt.semi);\n    node.update = this.match(tt.parenR) ? null : this.parseExpression();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"ForStatement\");\n  }\n\n  // Parse a `for`/`in` and `for`/`of` loop, which are almost\n  // same from parser's perspective.\n\n  parseForIn(\n    node: N.ForInOf,\n    init: N.VariableDeclaration | N.AssignmentPattern,\n    awaitAt: number,\n  ): N.ForInOf {\n    const isForIn = this.match(tt._in);\n    this.next();\n\n    if (isForIn) {\n      if (awaitAt > -1) this.unexpected(awaitAt);\n    } else {\n      node.await = awaitAt > -1;\n    }\n\n    if (\n      init.type === \"VariableDeclaration\" &&\n      init.declarations[0].init != null &&\n      (!isForIn ||\n        this.state.strict ||\n        init.kind !== \"var\" ||\n        init.declarations[0].id.type !== \"Identifier\")\n    ) {\n      this.raise(\n        init.start,\n        Errors.ForInOfLoopInitializer,\n        isForIn ? \"for-in\" : \"for-of\",\n      );\n    } else if (init.type === \"AssignmentPattern\") {\n      this.raise(init.start, Errors.InvalidLhs, \"for-loop\");\n    }\n\n    node.left = init;\n    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n  }\n\n  // Parse a list of variable declarations.\n\n  parseVar(\n    node: N.VariableDeclaration,\n    isFor: boolean,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    const declarations = (node.declarations = []);\n    const isTypescript = this.hasPlugin(\"typescript\");\n    node.kind = kind;\n    for (;;) {\n      const decl = this.startNode();\n      this.parseVarId(decl, kind);\n      if (this.eat(tt.eq)) {\n        decl.init = this.parseMaybeAssign(isFor);\n      } else {\n        if (\n          kind === \"const\" &&\n          !(this.match(tt._in) || this.isContextual(\"of\"))\n        ) {\n          // `const` with no initializer is allowed in TypeScript.\n          // It could be a declaration like `const x: number;`.\n          if (!isTypescript) {\n            this.unexpected();\n          }\n        } else if (\n          decl.id.type !== \"Identifier\" &&\n          !(isFor && (this.match(tt._in) || this.isContextual(\"of\")))\n        ) {\n          this.raise(\n            this.state.lastTokEnd,\n            Errors.DeclarationMissingInitializer,\n            \"Complex binding patterns\",\n          );\n        }\n        decl.init = null;\n      }\n      declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n      if (!this.eat(tt.comma)) break;\n    }\n    return node;\n  }\n\n  parseVarId(decl: N.VariableDeclarator, kind: \"var\" | \"let\" | \"const\"): void {\n    decl.id = this.parseBindingAtom();\n    this.checkLVal(\n      decl.id,\n      kind === \"var\" ? BIND_VAR : BIND_LEXICAL,\n      undefined,\n      \"variable declaration\",\n      kind !== \"var\",\n    );\n  }\n\n  // Parse a function declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseFunction<T: N.NormalFunction>(\n    node: T,\n    statement?: number = FUNC_NO_FLAGS,\n    isAsync?: boolean = false,\n  ): T {\n    const isStatement = statement & FUNC_STATEMENT;\n    const isHangingStatement = statement & FUNC_HANGING_STATEMENT;\n    const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID);\n\n    this.initFunction(node, isAsync);\n\n    if (this.match(tt.star) && isHangingStatement) {\n      this.raise(this.state.start, Errors.GeneratorInSingleStatementContext);\n    }\n    node.generator = this.eat(tt.star);\n\n    if (isStatement) {\n      node.id = this.parseFunctionId(requireId);\n    }\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.scope.enter(SCOPE_FUNCTION);\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n\n    if (!isStatement) {\n      node.id = this.parseFunctionId();\n    }\n\n    this.parseFunctionParams(node);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the function body. They are permitted in test\n    // expressions, outside of the function body.\n    this.withTopicForbiddingContext(() => {\n      // Parse the function body.\n      this.parseFunctionBodyAndFinish(\n        node,\n        isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\",\n      );\n    });\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    if (isStatement && !isHangingStatement) {\n      // We need to register this _after_ parsing the function body\n      // because of TypeScript body-less function declarations,\n      // which shouldn't be added to the scope.\n      this.registerFunctionStatementId(node);\n    }\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  parseFunctionId(requireId?: boolean): ?N.Identifier {\n    return requireId || this.match(tt.name) ? this.parseIdentifier() : null;\n  }\n\n  parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = true;\n\n    this.expect(tt.parenL);\n    node.params = this.parseBindingList(\n      tt.parenR,\n      charCodes.rightParenthesis,\n      /* allowEmpty */ false,\n      allowModifiers,\n    );\n\n    this.state.inParameters = oldInParameters;\n    this.checkYieldAwaitInDefaultParams();\n  }\n\n  registerFunctionStatementId(node: N.Function): void {\n    if (!node.id) return;\n\n    // If it is a regular function declaration in sloppy mode, then it is\n    // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n    // mode depends on properties of the current scope (see\n    // treatFunctionsAsVar).\n    this.scope.declareName(\n      node.id.name,\n      this.state.strict || node.generator || node.async\n        ? this.scope.treatFunctionsAsVar\n          ? BIND_VAR\n          : BIND_LEXICAL\n        : BIND_FUNCTION,\n      node.id.start,\n    );\n  }\n\n  // Parse a class declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseClass<T: N.Class>(\n    node: T,\n    isStatement: /* T === ClassDeclaration */ boolean,\n    optionalId?: boolean,\n  ): T {\n    this.next();\n    this.takeDecorators(node);\n\n    // A class definition is always strict mode code.\n    const oldStrict = this.state.strict;\n    this.state.strict = true;\n\n    this.parseClassId(node, isStatement, optionalId);\n    this.parseClassSuper(node);\n    node.body = this.parseClassBody(!!node.superClass, oldStrict);\n\n    this.state.strict = oldStrict;\n\n    return this.finishNode(\n      node,\n      isStatement ? \"ClassDeclaration\" : \"ClassExpression\",\n    );\n  }\n\n  isClassProperty(): boolean {\n    return this.match(tt.eq) || this.match(tt.semi) || this.match(tt.braceR);\n  }\n\n  isClassMethod(): boolean {\n    return this.match(tt.parenL);\n  }\n\n  isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n    return (\n      !method.computed &&\n      !method.static &&\n      (method.key.name === \"constructor\" || // Identifier\n        method.key.value === \"constructor\") // String literal\n    );\n  }\n\n  parseClassBody(\n    constructorAllowsSuper: boolean,\n    oldStrict?: boolean,\n  ): N.ClassBody {\n    this.classScope.enter();\n\n    const state = { hadConstructor: false };\n    let decorators: N.Decorator[] = [];\n    const classBody: N.ClassBody = this.startNode();\n    classBody.body = [];\n\n    this.expect(tt.braceL);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the class body. They are permitted in test expressions,\n    // outside of the class body.\n    this.withTopicForbiddingContext(() => {\n      while (!this.match(tt.braceR)) {\n        if (this.eat(tt.semi)) {\n          if (decorators.length > 0) {\n            throw this.raise(this.state.lastTokEnd, Errors.DecoratorSemicolon);\n          }\n          continue;\n        }\n\n        if (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n          continue;\n        }\n\n        const member = this.startNode();\n\n        // steal the decorators if there are any\n        if (decorators.length) {\n          member.decorators = decorators;\n          this.resetStartLocationFromNode(member, decorators[0]);\n          decorators = [];\n        }\n\n        this.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n        if (\n          member.kind === \"constructor\" &&\n          member.decorators &&\n          member.decorators.length > 0\n        ) {\n          this.raise(member.start, Errors.DecoratorConstructor);\n        }\n      }\n    });\n\n    if (!oldStrict) {\n      this.state.strict = false;\n    }\n\n    this.next();\n\n    if (decorators.length) {\n      throw this.raise(this.state.start, Errors.TrailingDecorator);\n    }\n\n    this.classScope.exit();\n\n    return this.finishNode(classBody, \"ClassBody\");\n  }\n\n  // returns true if the current identifier is a method/field name,\n  // false if it is a modifier\n  parseClassMemberFromModifier(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n  ): boolean {\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseIdentifier(true); // eats the modifier\n\n    if (this.isClassMethod()) {\n      const method: N.ClassMethod = (member: any);\n\n      // a method named like the modifier\n      method.kind = \"method\";\n      method.computed = false;\n      method.key = key;\n      method.static = false;\n      this.pushClassMethod(\n        classBody,\n        method,\n        false,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n      return true;\n    } else if (this.isClassProperty()) {\n      const prop: N.ClassProperty = (member: any);\n\n      // a property named like the modifier\n      prop.computed = false;\n      prop.key = key;\n      prop.static = false;\n      classBody.body.push(this.parseClassProperty(prop));\n      return true;\n    } else if (containsEsc) {\n      throw this.unexpected();\n    }\n\n    return false;\n  }\n\n  parseClassMember(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    constructorAllowsSuper: boolean,\n  ): void {\n    const isStatic = this.isContextual(\"static\");\n\n    if (isStatic && this.parseClassMemberFromModifier(classBody, member)) {\n      // a class element named 'static'\n      return;\n    }\n\n    this.parseClassMemberWithIsStatic(\n      classBody,\n      member,\n      state,\n      isStatic,\n      constructorAllowsSuper,\n    );\n  }\n\n  parseClassMemberWithIsStatic(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    isStatic: boolean,\n    constructorAllowsSuper: boolean,\n  ) {\n    const publicMethod: $FlowSubtype<N.ClassMethod> = member;\n    const privateMethod: $FlowSubtype<N.ClassPrivateMethod> = member;\n    const publicProp: $FlowSubtype<N.ClassMethod> = member;\n    const privateProp: $FlowSubtype<N.ClassPrivateMethod> = member;\n\n    const method: typeof publicMethod | typeof privateMethod = publicMethod;\n    const publicMember: typeof publicMethod | typeof publicProp = publicMethod;\n\n    member.static = isStatic;\n\n    if (this.eat(tt.star)) {\n      // a generator\n      method.kind = \"method\";\n      this.parseClassPropertyName(method);\n\n      if (method.key.type === \"PrivateName\") {\n        // Private generator method\n        this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n        return;\n      }\n\n      if (this.isNonstaticConstructor(publicMethod)) {\n        this.raise(publicMethod.key.start, Errors.ConstructorIsGenerator);\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        true,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n\n      return;\n    }\n\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseClassPropertyName(member);\n    const isPrivate = key.type === \"PrivateName\";\n    // Check the key is not a computed expression or string literal.\n    const isSimple = key.type === \"Identifier\";\n    const maybeQuestionTokenStart = this.state.start;\n\n    this.parsePostMemberNameModifiers(publicMember);\n\n    if (this.isClassMethod()) {\n      method.kind = \"method\";\n\n      if (isPrivate) {\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n        return;\n      }\n\n      // a normal method\n      const isConstructor = this.isNonstaticConstructor(publicMethod);\n      let allowsDirectSuper = false;\n      if (isConstructor) {\n        publicMethod.kind = \"constructor\";\n\n        // TypeScript allows multiple overloaded constructor declarations.\n        if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n          this.raise(key.start, Errors.DuplicateConstructor);\n        }\n        state.hadConstructor = true;\n        allowsDirectSuper = constructorAllowsSuper;\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        false,\n        false,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    } else if (this.isClassProperty()) {\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else if (\n      isSimple &&\n      key.name === \"async\" &&\n      !containsEsc &&\n      !this.isLineTerminator()\n    ) {\n      // an async method\n      const isGenerator = this.eat(tt.star);\n\n      if (publicMember.optional) {\n        this.unexpected(maybeQuestionTokenStart);\n      }\n\n      method.kind = \"method\";\n      // The so-called parsed name would have been \"async\": get the real name.\n      this.parseClassPropertyName(method);\n      this.parsePostMemberNameModifiers(publicMember);\n\n      if (method.key.type === \"PrivateName\") {\n        // private async method\n        this.pushClassPrivateMethod(\n          classBody,\n          privateMethod,\n          isGenerator,\n          true,\n        );\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAsync);\n        }\n\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          isGenerator,\n          true,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n    } else if (\n      isSimple &&\n      (key.name === \"get\" || key.name === \"set\") &&\n      !containsEsc &&\n      !(this.match(tt.star) && this.isLineTerminator())\n    ) {\n      // `get\\n*` is an uninitialized property named 'get' followed by a generator.\n      // a getter or setter\n      method.kind = key.name;\n      // The so-called parsed name would have been \"get/set\": get the real name.\n      this.parseClassPropertyName(publicMethod);\n\n      if (method.key.type === \"PrivateName\") {\n        // private getter/setter\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAccessor);\n        }\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          false,\n          false,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n\n      this.checkGetterSetterParams(publicMethod);\n    } else if (this.isLineTerminator()) {\n      // an uninitialized class property (due to ASI, since we don't otherwise recognize the next token)\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else {\n      this.unexpected();\n    }\n  }\n\n  parseClassPropertyName(member: N.ClassMember): N.Expression | N.Identifier {\n    const key = this.parsePropertyName(member, /* isPrivateNameAllowed */ true);\n\n    if (\n      !member.computed &&\n      member.static &&\n      ((key: $FlowSubtype<N.Identifier>).name === \"prototype\" ||\n        (key: $FlowSubtype<N.StringLiteral>).value === \"prototype\")\n    ) {\n      this.raise(key.start, Errors.StaticPrototype);\n    }\n\n    if (key.type === \"PrivateName\" && key.id.name === \"constructor\") {\n      this.raise(key.start, Errors.ConstructorClassPrivateField);\n    }\n\n    return key;\n  }\n\n  pushClassProperty(classBody: N.ClassBody, prop: N.ClassProperty) {\n    if (\n      !prop.computed &&\n      (prop.key.name === \"constructor\" || prop.key.value === \"constructor\")\n    ) {\n      // Non-computed field, which is either an identifier named \"constructor\"\n      // or a string literal named \"constructor\"\n      this.raise(prop.key.start, Errors.ConstructorClassField);\n    }\n\n    classBody.body.push(this.parseClassProperty(prop));\n  }\n\n  pushClassPrivateProperty(\n    classBody: N.ClassBody,\n    prop: N.ClassPrivateProperty,\n  ) {\n    this.expectPlugin(\"classPrivateProperties\", prop.key.start);\n\n    const node = this.parseClassPrivateProperty(prop);\n    classBody.body.push(node);\n\n    this.classScope.declarePrivateName(\n      node.key.id.name,\n      CLASS_ELEMENT_OTHER,\n      node.key.start,\n    );\n  }\n\n  pushClassMethod(\n    classBody: N.ClassBody,\n    method: N.ClassMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowsDirectSuper: boolean,\n  ): void {\n    classBody.body.push(\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      ),\n    );\n  }\n\n  pushClassPrivateMethod(\n    classBody: N.ClassBody,\n    method: N.ClassPrivateMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n  ): void {\n    this.expectPlugin(\"classPrivateMethods\", method.key.start);\n\n    const node = this.parseMethod(\n      method,\n      isGenerator,\n      isAsync,\n      /* isConstructor */ false,\n      false,\n      \"ClassPrivateMethod\",\n      true,\n    );\n    classBody.body.push(node);\n\n    const kind =\n      node.kind === \"get\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_GETTER\n          : CLASS_ELEMENT_INSTANCE_GETTER\n        : node.kind === \"set\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_SETTER\n          : CLASS_ELEMENT_INSTANCE_SETTER\n        : CLASS_ELEMENT_OTHER;\n    this.classScope.declarePrivateName(node.key.id.name, kind, node.key.start);\n  }\n\n  // Overridden in typescript.js\n  parsePostMemberNameModifiers(\n    // eslint-disable-next-line no-unused-vars\n    methodOrProp: N.ClassMethod | N.ClassProperty,\n  ): void {}\n\n  // Overridden in typescript.js\n  parseAccessModifier(): ?N.Accessibility {\n    return undefined;\n  }\n\n  parseClassPrivateProperty(\n    node: N.ClassPrivateProperty,\n  ): N.ClassPrivateProperty {\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    node.value = this.eat(tt.eq) ? this.parseMaybeAssign() : null;\n    this.semicolon();\n    this.prodParam.exit();\n\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassPrivateProperty\");\n  }\n\n  parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n    if (!node.typeAnnotation) {\n      this.expectPlugin(\"classProperties\");\n    }\n\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    if (this.match(tt.eq)) {\n      this.expectPlugin(\"classProperties\");\n      this.next();\n      node.value = this.parseMaybeAssign();\n    } else {\n      node.value = null;\n    }\n    this.semicolon();\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassProperty\");\n  }\n\n  parseClassId(\n    node: N.Class,\n    isStatement: boolean,\n    optionalId: ?boolean,\n    bindingType: BindingTypes = BIND_CLASS,\n  ): void {\n    if (this.match(tt.name)) {\n      node.id = this.parseIdentifier();\n      if (isStatement) {\n        this.checkLVal(node.id, bindingType, undefined, \"class name\");\n      }\n    } else {\n      if (optionalId || !isStatement) {\n        node.id = null;\n      } else {\n        this.unexpected(null, Errors.MissingClassName);\n      }\n    }\n  }\n\n  parseClassSuper(node: N.Class): void {\n    node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null;\n  }\n\n  // Parses module export declaration.\n\n  parseExport(node: N.Node): N.AnyExport {\n    const hasDefault = this.maybeParseExportDefaultSpecifier(node);\n    const parseAfterDefault = !hasDefault || this.eat(tt.comma);\n    const hasStar = parseAfterDefault && this.eatExportStar(node);\n    const hasNamespace =\n      hasStar && this.maybeParseExportNamespaceSpecifier(node);\n    const parseAfterNamespace =\n      parseAfterDefault && (!hasNamespace || this.eat(tt.comma));\n    const isFromRequired = hasDefault || hasStar;\n\n    if (hasStar && !hasNamespace) {\n      if (hasDefault) this.unexpected();\n      this.parseExportFrom(node, true);\n\n      return this.finishNode(node, \"ExportAllDeclaration\");\n    }\n\n    const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n\n    if (\n      (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) ||\n      (hasNamespace && parseAfterNamespace && !hasSpecifiers)\n    ) {\n      throw this.unexpected(null, tt.braceL);\n    }\n\n    let hasDeclaration;\n    if (isFromRequired || hasSpecifiers) {\n      hasDeclaration = false;\n      this.parseExportFrom(node, isFromRequired);\n    } else {\n      hasDeclaration = this.maybeParseExportDeclaration(node);\n    }\n\n    if (isFromRequired || hasSpecifiers || hasDeclaration) {\n      this.checkExport(node, true, false, !!node.source);\n      return this.finishNode(node, \"ExportNamedDeclaration\");\n    }\n\n    if (this.eat(tt._default)) {\n      // export default ...\n      node.declaration = this.parseExportDefaultExpression();\n      this.checkExport(node, true, true);\n\n      return this.finishNode(node, \"ExportDefaultDeclaration\");\n    }\n\n    throw this.unexpected(null, tt.braceL);\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  eatExportStar(node: N.Node): boolean {\n    return this.eat(tt.star);\n  }\n\n  maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n    if (this.isExportDefaultSpecifier()) {\n      // export defaultObj ...\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n    if (this.isContextual(\"as\")) {\n      if (!node.specifiers) node.specifiers = [];\n\n      const specifier = this.startNodeAt(\n        this.state.lastTokStart,\n        this.state.lastTokStartLoc,\n      );\n\n      this.next();\n\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers.push(\n        this.finishNode(specifier, \"ExportNamespaceSpecifier\"),\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamedSpecifiers(node: N.Node): boolean {\n    if (this.match(tt.braceL)) {\n      if (!node.specifiers) node.specifiers = [];\n      node.specifiers.push(...this.parseExportSpecifiers());\n\n      node.source = null;\n      node.declaration = null;\n\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportDeclaration(node: N.Node): boolean {\n    if (this.shouldParseExportDeclaration()) {\n      if (this.isContextual(\"async\")) {\n        const next = this.nextTokenStart();\n\n        // export async;\n        if (!this.isUnparsedContextual(next, \"function\")) {\n          this.unexpected(next, tt._function);\n        }\n      }\n\n      node.specifiers = [];\n      node.source = null;\n      node.declaration = this.parseExportDeclaration(node);\n\n      return true;\n    }\n    return false;\n  }\n\n  isAsyncFunction(): boolean {\n    if (!this.isContextual(\"async\")) return false;\n    const next = this.nextTokenStart();\n    return (\n      !lineBreak.test(this.input.slice(this.state.pos, next)) &&\n      this.isUnparsedContextual(next, \"function\")\n    );\n  }\n\n  parseExportDefaultExpression(): N.Expression | N.Declaration {\n    const expr = this.startNode();\n\n    const isAsync = this.isAsyncFunction();\n\n    if (this.match(tt._function) || isAsync) {\n      this.next();\n      if (isAsync) {\n        this.next();\n      }\n\n      return this.parseFunction(\n        expr,\n        FUNC_STATEMENT | FUNC_NULLABLE_ID,\n        isAsync,\n      );\n    } else if (this.match(tt._class)) {\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt.at)) {\n      if (\n        this.hasPlugin(\"decorators\") &&\n        this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorBeforeExport);\n      }\n      this.parseDecorators(false);\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt._const) || this.match(tt._var) || this.isLet()) {\n      throw this.raise(this.state.start, Errors.UnsupportedDefaultExport);\n    } else {\n      const res = this.parseMaybeAssign();\n      this.semicolon();\n      return res;\n    }\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n    return this.parseStatement(null);\n  }\n\n  isExportDefaultSpecifier(): boolean {\n    if (this.match(tt.name)) {\n      return this.state.value !== \"async\" && this.state.value !== \"let\";\n    }\n\n    if (!this.match(tt._default)) {\n      return false;\n    }\n\n    const next = this.nextTokenStart();\n    return (\n      this.input.charCodeAt(next) === charCodes.comma ||\n      this.isUnparsedContextual(next, \"from\")\n    );\n  }\n\n  parseExportFrom(node: N.ExportNamedDeclaration, expect?: boolean): void {\n    if (this.eatContextual(\"from\")) {\n      node.source = this.parseImportSource();\n      this.checkExport(node);\n    } else {\n      if (expect) {\n        this.unexpected();\n      } else {\n        node.source = null;\n      }\n    }\n\n    this.semicolon();\n  }\n\n  shouldParseExportDeclaration(): boolean {\n    if (this.match(tt.at)) {\n      this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n      if (this.hasPlugin(\"decorators\")) {\n        if (this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")) {\n          this.unexpected(this.state.start, Errors.DecoratorBeforeExport);\n        } else {\n          return true;\n        }\n      }\n    }\n\n    return (\n      this.state.type.keyword === \"var\" ||\n      this.state.type.keyword === \"const\" ||\n      this.state.type.keyword === \"function\" ||\n      this.state.type.keyword === \"class\" ||\n      this.isLet() ||\n      this.isAsyncFunction()\n    );\n  }\n\n  checkExport(\n    node: N.ExportNamedDeclaration,\n    checkNames?: boolean,\n    isDefault?: boolean,\n    isFrom?: boolean,\n  ): void {\n    if (checkNames) {\n      // Check for duplicate exports\n      if (isDefault) {\n        // Default exports\n        this.checkDuplicateExports(node, \"default\");\n      } else if (node.specifiers && node.specifiers.length) {\n        // Named exports\n        for (const specifier of node.specifiers) {\n          this.checkDuplicateExports(specifier, specifier.exported.name);\n          // $FlowIgnore\n          if (!isFrom && specifier.local) {\n            // check for keywords used as local names\n            this.checkReservedWord(\n              specifier.local.name,\n              specifier.local.start,\n              true,\n              false,\n            );\n            // check if export is defined\n            // $FlowIgnore\n            this.scope.checkLocalExport(specifier.local);\n          }\n        }\n      } else if (node.declaration) {\n        // Exported declarations\n        if (\n          node.declaration.type === \"FunctionDeclaration\" ||\n          node.declaration.type === \"ClassDeclaration\"\n        ) {\n          const id = node.declaration.id;\n          if (!id) throw new Error(\"Assertion failure\");\n\n          this.checkDuplicateExports(node, id.name);\n        } else if (node.declaration.type === \"VariableDeclaration\") {\n          for (const declaration of node.declaration.declarations) {\n            this.checkDeclaration(declaration.id);\n          }\n        }\n      }\n    }\n\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (currentContextDecorators.length) {\n      const isClass =\n        node.declaration &&\n        (node.declaration.type === \"ClassDeclaration\" ||\n          node.declaration.type === \"ClassExpression\");\n      if (!node.declaration || !isClass) {\n        throw this.raise(node.start, Errors.UnsupportedDecoratorExport);\n      }\n      this.takeDecorators(node.declaration);\n    }\n  }\n\n  checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n    if (node.type === \"Identifier\") {\n      this.checkDuplicateExports(node, node.name);\n    } else if (node.type === \"ObjectPattern\") {\n      for (const prop of node.properties) {\n        this.checkDeclaration(prop);\n      }\n    } else if (node.type === \"ArrayPattern\") {\n      for (const elem of node.elements) {\n        if (elem) {\n          this.checkDeclaration(elem);\n        }\n      }\n    } else if (node.type === \"ObjectProperty\") {\n      this.checkDeclaration(node.value);\n    } else if (node.type === \"RestElement\") {\n      this.checkDeclaration(node.argument);\n    } else if (node.type === \"AssignmentPattern\") {\n      this.checkDeclaration(node.left);\n    }\n  }\n\n  checkDuplicateExports(\n    node:\n      | N.Identifier\n      | N.ExportNamedDeclaration\n      | N.ExportSpecifier\n      | N.ExportDefaultSpecifier,\n    name: string,\n  ): void {\n    if (this.state.exportedIdentifiers.indexOf(name) > -1) {\n      this.raise(\n        node.start,\n        name === \"default\"\n          ? Errors.DuplicateDefaultExport\n          : Errors.DuplicateExport,\n        name,\n      );\n    }\n    this.state.exportedIdentifiers.push(name);\n  }\n\n  // Parses a comma-separated list of module exports.\n\n  parseExportSpecifiers(): Array<N.ExportSpecifier> {\n    const nodes = [];\n    let first = true;\n\n    // export { x, y as z } [from '...']\n    this.expect(tt.braceL);\n\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      const node = this.startNode();\n      node.local = this.parseIdentifier(true);\n      node.exported = this.eatContextual(\"as\")\n        ? this.parseIdentifier(true)\n        : node.local.__clone();\n      nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n    }\n\n    return nodes;\n  }\n\n  // Parses import declaration.\n\n  parseImport(node: N.Node): N.AnyImport {\n    // import '...'\n    node.specifiers = [];\n    if (!this.match(tt.string)) {\n      const hasDefault = this.maybeParseDefaultImportSpecifier(node);\n      const parseNext = !hasDefault || this.eat(tt.comma);\n      const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n      if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n      this.expectContextual(\"from\");\n    }\n    node.source = this.parseImportSource();\n    this.semicolon();\n    return this.finishNode(node, \"ImportDeclaration\");\n  }\n\n  parseImportSource(): N.StringLiteral {\n    if (!this.match(tt.string)) this.unexpected();\n    return this.parseExprAtom();\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n    return this.match(tt.name);\n  }\n\n  parseImportSpecifierLocal(\n    node: N.ImportDeclaration,\n    specifier: N.Node,\n    type: string,\n    contextDescription: string,\n  ): void {\n    specifier.local = this.parseIdentifier();\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      contextDescription,\n    );\n    node.specifiers.push(this.finishNode(specifier, type));\n  }\n\n  maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.shouldParseDefaultImport(node)) {\n      // import defaultObj, { x, y as z } from '...'\n      this.parseImportSpecifierLocal(\n        node,\n        this.startNode(),\n        \"ImportDefaultSpecifier\",\n        \"default import specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseStarImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.match(tt.star)) {\n      const specifier = this.startNode();\n      this.next();\n      this.expectContextual(\"as\");\n\n      this.parseImportSpecifierLocal(\n        node,\n        specifier,\n        \"ImportNamespaceSpecifier\",\n        \"import namespace specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  parseNamedImportSpecifiers(node: N.ImportDeclaration) {\n    let first = true;\n    this.expect(tt.braceL);\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        // Detect an attempt to deep destructure\n        if (this.eat(tt.colon)) {\n          throw this.raise(this.state.start, Errors.DestructureNamedImport);\n        }\n\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      this.parseImportSpecifier(node);\n    }\n  }\n\n  parseImportSpecifier(node: N.ImportDeclaration): void {\n    const specifier = this.startNode();\n    specifier.imported = this.parseIdentifier(true);\n    if (this.eatContextual(\"as\")) {\n      specifier.local = this.parseIdentifier();\n    } else {\n      this.checkReservedWord(\n        specifier.imported.name,\n        specifier.start,\n        true,\n        true,\n      );\n      specifier.local = specifier.imported.__clone();\n    }\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      \"import specifier\",\n    );\n    node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n  }\n}\n","// @flow\n\nimport {\n  CLASS_ELEMENT_KIND_ACCESSOR,\n  CLASS_ELEMENT_FLAG_STATIC,\n  type ClassElementTypes,\n} from \"./scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nexport class ClassScope {\n  // A list of private named declared in the current class\n  privateNames: Set<string> = new Set();\n\n  // A list of private getters of setters without their counterpart\n  loneAccessors: Map<string, ClassElementTypes> = new Map();\n\n  // A list of private names used before being defined, mapping to\n  // their position.\n  undefinedPrivateNames: Map<string, number> = new Map();\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\nexport default class ClassScopeHandler {\n  stack: Array<ClassScope> = [];\n  raise: raiseFunction;\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction) {\n    this.raise = raise;\n  }\n\n  current(): ClassScope {\n    return this.stack[this.stack.length - 1];\n  }\n\n  enter() {\n    this.stack.push(new ClassScope());\n  }\n\n  exit() {\n    const oldClassScope = this.stack.pop();\n\n    // Migrate the usage of not yet defined private names to the outer\n    // class scope, or raise an error if we reached the top-level scope.\n\n    const current = this.current();\n\n    // Array.from is needed because this is compiled to an array-like for loop\n    for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) {\n      if (current) {\n        if (!current.undefinedPrivateNames.has(name)) {\n          current.undefinedPrivateNames.set(name, pos);\n        }\n      } else {\n        this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n      }\n    }\n  }\n\n  declarePrivateName(\n    name: string,\n    elementType: ClassElementTypes,\n    pos: number,\n  ) {\n    const classScope = this.current();\n    let redefined = classScope.privateNames.has(name);\n\n    if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) {\n      const accessor = redefined && classScope.loneAccessors.get(name);\n      if (accessor) {\n        const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC;\n        const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC;\n\n        const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR;\n        const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR;\n\n        // The private name can be duplicated only if it is used by\n        // two accessors with different kind (get and set), and if\n        // they have the same placement (static or not).\n        redefined = oldKind === newKind || oldStatic !== newStatic;\n\n        if (!redefined) classScope.loneAccessors.delete(name);\n      } else if (!redefined) {\n        classScope.loneAccessors.set(name, elementType);\n      }\n    }\n\n    if (redefined) {\n      this.raise(pos, Errors.PrivateNameRedeclaration, name);\n    }\n\n    classScope.privateNames.add(name);\n    classScope.undefinedPrivateNames.delete(name);\n  }\n\n  usePrivateName(name: string, pos: number) {\n    let classScope;\n    for (classScope of this.stack) {\n      if (classScope.privateNames.has(name)) return;\n    }\n\n    if (classScope) {\n      classScope.undefinedPrivateNames.set(name, pos);\n    } else {\n      // top-level\n      this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n    }\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type { File /*::, JSXOpeningElement */ } from \"../types\";\nimport type { PluginList } from \"../plugin-utils\";\nimport { getOptions } from \"../options\";\nimport StatementParser from \"./statement\";\nimport { SCOPE_PROGRAM } from \"../util/scopeflags\";\nimport ScopeHandler from \"../util/scope\";\nimport ClassScopeHandler from \"../util/class-scope\";\nimport ProductionParameterHandler, {\n  PARAM_AWAIT,\n  PARAM,\n} from \"../util/production-parameter\";\n\nexport type PluginsMap = Map<string, { [string]: any }>;\n\nexport default class Parser extends StatementParser {\n  // Forward-declaration so typescript plugin can override jsx plugin\n  /*::\n  +jsxParseOpeningElementAfterName: (\n    node: JSXOpeningElement,\n  ) => JSXOpeningElement;\n  */\n\n  constructor(options: ?Options, input: string) {\n    options = getOptions(options);\n    super(options, input);\n\n    const ScopeHandler = this.getScopeHandler();\n\n    this.options = options;\n    this.inModule = this.options.sourceType === \"module\";\n    this.scope = new ScopeHandler(this.raise.bind(this), this.inModule);\n    this.prodParam = new ProductionParameterHandler();\n    this.classScope = new ClassScopeHandler(this.raise.bind(this));\n    this.plugins = pluginsMap(this.options.plugins);\n    this.filename = options.sourceFilename;\n  }\n\n  // This can be overwritten, for example, by the TypeScript plugin.\n  getScopeHandler(): Class<ScopeHandler<*>> {\n    return ScopeHandler;\n  }\n\n  parse(): File {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    const file = this.startNode();\n    const program = this.startNode();\n    this.nextToken();\n    file.errors = null;\n    this.parseTopLevel(file, program);\n    file.errors = this.state.errors;\n    return file;\n  }\n}\n\nfunction pluginsMap(plugins: PluginList): PluginsMap {\n  const pluginMap: PluginsMap = new Map();\n  for (const plugin of plugins) {\n    const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];\n    if (!pluginMap.has(name)) pluginMap.set(name, options || {});\n  }\n  return pluginMap;\n}\n","// @flow\n\nimport { type Options } from \"./options\";\nimport {\n  hasPlugin,\n  validatePlugins,\n  mixinPluginNames,\n  mixinPlugins,\n  type PluginList,\n} from \"./plugin-utils\";\nimport Parser from \"./parser\";\n\nimport { types as tokTypes } from \"./tokenizer/types\";\nimport \"./tokenizer/context\";\n\nimport type { Expression, File } from \"./types\";\n\nexport function parse(input: string, options?: Options): File {\n  if (options && options.sourceType === \"unambiguous\") {\n    options = {\n      ...options,\n    };\n    try {\n      options.sourceType = \"module\";\n      const parser = getParser(options, input);\n      const ast = parser.parse();\n\n      if (parser.sawUnambiguousESM) {\n        return ast;\n      }\n\n      if (parser.ambiguousScriptDifferentAst) {\n        // Top level await introduces code which can be both a valid script and\n        // a valid module, but which produces different ASTs:\n        //    await\n        //    0\n        // can be parsed either as an AwaitExpression, or as two ExpressionStatements.\n        try {\n          options.sourceType = \"script\";\n          return getParser(options, input).parse();\n        } catch {}\n      } else {\n        // This is both a valid module and a valid script, but\n        // we parse it as a script by default\n        ast.program.sourceType = \"script\";\n      }\n\n      return ast;\n    } catch (moduleError) {\n      try {\n        options.sourceType = \"script\";\n        return getParser(options, input).parse();\n      } catch {}\n\n      throw moduleError;\n    }\n  } else {\n    return getParser(options, input).parse();\n  }\n}\n\nexport function parseExpression(input: string, options?: Options): Expression {\n  const parser = getParser(options, input);\n  if (parser.options.strictMode) {\n    parser.state.strict = true;\n  }\n  return parser.getExpression();\n}\n\nexport { tokTypes };\n\nfunction getParser(options: ?Options, input: string): Parser {\n  let cls = Parser;\n  if (options && options.plugins) {\n    validatePlugins(options.plugins);\n    cls = getParserClass(options.plugins);\n  }\n\n  return new cls(options, input);\n}\n\nconst parserClassCache: { [key: string]: Class<Parser> } = {};\n\n/** Get a Parser class with plugins applied. */\nfunction getParserClass(pluginsFromOptions: PluginList): Class<Parser> {\n  const pluginList = mixinPluginNames.filter(name =>\n    hasPlugin(pluginsFromOptions, name),\n  );\n\n  const key = pluginList.join(\"/\");\n  let cls = parserClassCache[key];\n  if (!cls) {\n    cls = Parser;\n    for (const plugin of pluginList) {\n      cls = mixinPlugins[plugin](cls);\n    }\n    parserClassCache[key] = cls;\n  }\n  return cls;\n}\n"],"names":["beforeExpr","startsExpr","isLoop","isAssign","prefix","postfix","TokenType","constructor","label","conf","keyword","rightAssociative","binop","updateContext","keywords","Map","createKeyword","name","options","token","set","createBinop","types","num","bigint","regexp","string","eof","bracketL","bracketHashL","bracketBarL","bracketR","bracketBarR","braceL","braceBarL","braceHashL","braceR","braceBarR","parenL","parenR","comma","semi","colon","doubleColon","dot","question","questionDot","arrow","template","ellipsis","backQuote","dollarBraceL","at","hash","interpreterDirective","eq","assign","incDec","bang","tilde","pipeline","nullishCoalescing","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","star","slash","exponent","_break","_case","_catch","_continue","_debugger","_default","_do","_else","_finally","_for","_function","_if","_return","_switch","_throw","_try","_var","_const","_while","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_in","_instanceof","_typeof","_void","_delete","SCOPE_OTHER","SCOPE_PROGRAM","SCOPE_FUNCTION","SCOPE_ARROW","SCOPE_SIMPLE_CATCH","SCOPE_SUPER","SCOPE_DIRECT_SUPER","SCOPE_CLASS","SCOPE_TS_MODULE","SCOPE_VAR","BIND_KIND_VALUE","BIND_KIND_TYPE","BIND_SCOPE_VAR","BIND_SCOPE_LEXICAL","BIND_SCOPE_FUNCTION","BIND_SCOPE_OUTSIDE","BIND_FLAGS_NONE","BIND_FLAGS_CLASS","BIND_FLAGS_TS_ENUM","BIND_FLAGS_TS_CONST_ENUM","BIND_FLAGS_TS_EXPORT_ONLY","BIND_CLASS","BIND_LEXICAL","BIND_VAR","BIND_FUNCTION","BIND_TS_INTERFACE","BIND_TS_TYPE","BIND_TS_ENUM","BIND_TS_AMBIENT","BIND_NONE","BIND_OUTSIDE","BIND_TS_CONST_ENUM","BIND_TS_NAMESPACE","CLASS_ELEMENT_FLAG_STATIC","CLASS_ELEMENT_KIND_GETTER","CLASS_ELEMENT_KIND_SETTER","CLASS_ELEMENT_KIND_ACCESSOR","CLASS_ELEMENT_STATIC_GETTER","CLASS_ELEMENT_STATIC_SETTER","CLASS_ELEMENT_INSTANCE_GETTER","CLASS_ELEMENT_INSTANCE_SETTER","CLASS_ELEMENT_OTHER","lineBreak","lineBreakG","RegExp","source","isNewLine","code","skipWhiteSpace","isWhitespace","Position","line","col","column","SourceLocation","start","end","getLineInfo","input","offset","lineStart","match","lastIndex","exec","index","BaseParser","sawUnambiguousESM","ambiguousScriptDifferentAst","hasPlugin","plugins","has","getPluginOption","plugin","get","last","stack","length","CommentsParser","addComment","comment","filename","loc","state","trailingComments","push","leadingComments","adjustCommentsAfterTrailingComma","node","elements","takeAllComments","lastElement","i","j","commentPreviousNode","splice","newTrailingComments","leadingComment","undefined","processComment","type","body","commentStack","firstChild","lastChild","lastInStack","pop","properties","arguments","slice","innerComments","Errors","Object","freeze","ArgumentsDisallowedInInitializer","AsyncFunctionInSingleStatementContext","AwaitBindingIdentifier","AwaitExpressionFormalParameter","AwaitNotInAsyncFunction","BadGetterArity","BadSetterArity","BadSetterRestParameter","ConstructorClassField","ConstructorClassPrivateField","ConstructorIsAccessor","ConstructorIsAsync","ConstructorIsGenerator","DeclarationMissingInitializer","DecoratorBeforeExport","DecoratorConstructor","DecoratorExportClass","DecoratorSemicolon","DeletePrivateField","DestructureNamedImport","DuplicateConstructor","DuplicateDefaultExport","DuplicateExport","DuplicateProto","DuplicateRegExpFlags","ElementAfterRest","EscapedCharNotAnIdentifier","ForInOfLoopInitializer","GeneratorInSingleStatementContext","IllegalBreakContinue","IllegalLanguageModeDirective","IllegalReturn","ImportCallArgumentTrailingComma","ImportCallArity","ImportCallArityLtOne","ImportCallNotNewExpression","ImportCallSpreadArgument","ImportMetaOutsideModule","ImportOutsideModule","InvalidCodePoint","InvalidDigit","InvalidEscapeSequence","InvalidEscapeSequenceTemplate","InvalidEscapedReservedWord","InvalidIdentifier","InvalidLhs","InvalidLhsBinding","InvalidNumber","InvalidOrUnexpectedToken","InvalidParenthesizedAssignment","InvalidPrivateFieldResolution","InvalidPropertyBindingPattern","InvalidRestAssignmentPattern","LabelRedeclaration","LetInLexicalBinding","MalformedRegExpFlags","MissingClassName","MissingEqInAssignment","MissingUnicodeEscape","MixingCoalesceWithLogical","ModuleExportUndefined","MultipleDefaultsInSwitch","NewlineAfterThrow","NoCatchOrFinally","NumberIdentifier","NumericSeparatorInEscapeSequence","ObsoleteAwaitStar","OptionalChainingNoNew","OptionalChainingNoTemplate","ParamDupe","PatternHasAccessor","PatternHasMethod","PipelineBodyNoArrow","PipelineBodySequenceExpression","PipelineHeadSequenceExpression","PipelineTopicUnused","PrimaryTopicNotAllowed","PrimaryTopicRequiresSmartPipeline","PrivateNameRedeclaration","RecordExpressionBarIncorrectEndSyntaxType","RecordExpressionBarIncorrectStartSyntaxType","RecordExpressionHashIncorrectStartSyntaxType","RestTrailingComma","SloppyFunction","StaticPrototype","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","StrictOctalLiteral","StrictWith","SuperNotAllowed","SuperPrivateField","TrailingDecorator","TupleExpressionBarIncorrectEndSyntaxType","TupleExpressionBarIncorrectStartSyntaxType","TupleExpressionHashIncorrectStartSyntaxType","UnexpectedArgumentPlaceholder","UnexpectedAwaitAfterPipelineBody","UnexpectedDigitAfterHash","UnexpectedImportExport","UnexpectedKeyword","UnexpectedLeadingDecorator","UnexpectedLexicalDeclaration","UnexpectedNewTarget","UnexpectedNumericSeparator","UnexpectedPrivateField","UnexpectedReservedWord","UnexpectedSuper","UnexpectedToken","UnexpectedTokenUnaryExponentiation","UnsupportedBind","UnsupportedDecoratorExport","UnsupportedDefaultExport","UnsupportedImport","UnsupportedMetaProperty","UnsupportedParameterDecorator","UnsupportedPropertyDecorator","UnsupportedSuper","UnterminatedComment","UnterminatedRegExp","UnterminatedString","UnterminatedTemplate","VarRedeclaration","YieldBindingIdentifier","YieldInParameter","ZeroDigitNumericSeparator","LocationParser","getLocationForPosition","pos","startLoc","lastTokStart","lastTokStartLoc","endLoc","lastTokEnd","lastTokEndLoc","raise","errorTemplate","params","raiseWithData","data","message","replace","_","_raise","errorContext","err","SyntaxError","errorRecovery","isLookahead","errors","isSimpleProperty","kind","method","superClass","estreeParseRegExpLiteral","pattern","flags","regex","e","estreeParseLiteral","estreeParseBigIntLiteral","value","bigInt","BigInt","String","parseLiteral","directiveToStmt","directive","directiveLiteral","stmt","startNodeAt","expression","raw","extra","finishNodeAt","initFunction","isAsync","checkDeclaration","checkGetterSetterParams","prop","paramCount","checkLVal","expr","bindingType","checkClashes","contextDescription","disallowLetBinding","forEach","checkDuplicatedProto","protoRef","refExpressionErrors","computed","shorthand","key","used","doubleProto","isValidDirective","parenthesized","stmtToDirective","parseBlockBody","allowDirectives","topLevel","directiveStatements","directives","map","d","concat","pushClassMethod","classBody","isGenerator","isConstructor","allowsDirectSuper","parseMethod","typeParameters","parseExprAtom","tt","startPos","parseFunctionBody","allowExpression","isMethod","allowDirectSuper","inClassScope","funcNode","startNode","finishNode","parseObjectMethod","isPattern","containsEsc","parseObjectProperty","toAssignable","toAssignableObjectExpressionProp","isLast","finishCallExpression","optional","callee","toReferencedListDeep","exprList","isParenthesizedExpr","parseExport","exported","specifiers","TokContext","isExpr","preserveSpace","override","braceStatement","braceExpression","templateQuasi","parenStatement","parenExpression","p","readTmplToken","functionExpression","functionStatement","context","exprAllowed","out","curContext","prevType","allowed","prodParam","hasYield","isIterator","braceIsBlock","statementParens","test","b_stat","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","isIdentifierStart","fromCharCode","isIdentifierChar","reservedWords","strict","strictBind","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","keywordRelationalOperator","isIteratorStart","current","next","reservedTypes","FlowErrors","AmbiguousConditionalArrow","AmbiguousDeclareModuleKind","AssignReservedType","DeclareClassElement","DeclareClassFieldInitializer","DuplicateDeclareModuleExports","EnumBooleanMemberNotInitialized","EnumDuplicateMemberName","EnumInconsistentMemberValues","EnumInvalidExplicitType","EnumInvalidExplicitTypeUnknownSupplied","EnumInvalidMemberInitializerPrimaryType","EnumInvalidMemberInitializerSymbolType","EnumInvalidMemberInitializerUnknownType","EnumInvalidMemberName","EnumNumberMemberNotInitialized","EnumStringMemberInconsistentlyInitailized","ImportTypeShorthandOnlyInPureImport","InexactInsideExact","InexactInsideNonObject","InexactVariance","InvalidNonTypeImportInDeclareModule","MissingTypeParamDefault","NestedDeclareModule","NestedFlowComment","OptionalBindingPattern","SpreadVariance","TypeBeforeInitializer","TypeCastInPattern","UnexpectedExplicitInexactInObject","UnexpectedReservedType","UnexpectedReservedUnderscore","UnexpectedSpaceBetweenModuloChecks","UnexpectedSpreadType","UnexpectedSubtractionOperand","UnexpectedTokenAfterTypeParameter","UnsupportedDeclareExportKind","UnsupportedStatementInDeclareModule","UnterminatedFlowComment","isEsModuleType","bodyElement","declaration","hasTypeImportKind","importKind","isMaybeDefaultImport","exportSuggestions","const","let","interface","partition","list","list1","list2","FLOW_PRAGMA_REGEX","flowPragma","shouldParseTypes","shouldParseEnums","finishToken","val","matches","Error","flowParseTypeInitialiser","tok","oldInType","inType","expect","flowParseType","flowParsePredicate","moduloLoc","moduloPos","checksLoc","expectContextual","eat","parseExpression","flowParseTypeAndPredicateInitialiser","predicate","flowParseDeclareClass","flowParseInterfaceish","flowParseDeclareFunction","id","parseIdentifier","typeNode","typeContainer","isRelational","flowParseTypeParameterDeclaration","tmp","flowParseFunctionTypeParams","rest","returnType","typeAnnotation","resetEndLocation","semicolon","flowParseDeclare","insideModule","flowParseDeclareVariable","eatContextual","flowParseDeclareModuleExports","flowParseDeclareModule","isContextual","flowParseDeclareTypeAlias","flowParseDeclareOpaqueType","flowParseDeclareInterface","flowParseDeclareExportDeclaration","unexpected","flowParseTypeAnnotatableIdentifier","scope","declareName","enter","bodyNode","parseImport","exit","hasModuleExport","default","isLet","suggestion","exportKind","flowParseTypeAnnotation","flowParseTypeAlias","flowParseOpaqueType","isClass","flowParseRestrictedIdentifier","extends","implements","mixins","flowParseInterfaceExtends","flowParseObjectType","allowStatic","allowExact","allowSpread","allowProto","allowInexact","flowParseQualifiedTypeIdentifier","flowParseTypeParameterInstantiation","flowParseInterface","checkNotUnderscore","checkReservedType","liberal","right","declare","supertype","impltype","flowParseTypeParameter","requireDefault","nodeStart","variance","flowParseVariance","ident","bound","jsxTagStart","defaultRequired","typeParameter","expectRelational","oldNoAnonFunctionType","noAnonFunctionType","flowParseTypeParameterInstantiationCallOrNew","flowParseTypeOrImplicitInstantiation","flowParseInterfaceType","flowParseObjectPropertyKey","flowParseObjectTypeIndexer","isStatic","static","lookahead","flowParseObjectTypeInternalSlot","flowParseObjectTypeMethodish","flowParseFunctionTypeParam","flowParseObjectTypeCallProperty","valueNode","callProperties","indexers","internalSlots","endDelim","exact","inexact","protoStart","inexactStart","propOrInexact","flowParseObjectTypeProperty","flowObjectTypeSemicolon","isInexactToken","argument","proto","flowCheckGetterSetterParams","property","node2","qualification","flowParseGenericType","flowParseTypeofType","flowParsePrimaryType","flowParseTupleType","lh","reinterpretTypeAsFunctionTypeParam","flowIdentToTypeAnnotation","isGroupedType","createIdentifier","flowParsePostfixType","canInsertSemicolon","elementType","flowParsePrefixType","flowParseAnonFunctionWithoutParens","param","flowParseIntersectionType","flowParseUnionType","allowPrimitiveOverride","typeCastToParameter","allowExpressionBody","forwardNoArrowParamsConversionAt","parseFunctionBodyAndFinish","parseStatement","flowParseEnumDeclaration","parseExpressionStatement","shouldParseExportDeclaration","isExportDefaultSpecifier","parseExportDefaultExpression","parseConditional","noIn","refNeedsArrowPos","result","tryParse","error","failState","clone","originalNoArrowAt","noArrowAt","consequent","failed","tryParseConditionalConsequent","valid","invalid","getArrowLikeExpressions","alternate","parseMaybeAssign","noArrowParamsConversionAt","disallowInvalid","arrows","finishArrowValidation","every","isAssignable","toAssignableList","trailingComma","checkParams","parse","indexOf","parseParenItem","typeCastNode","assertModuleNodeAllowed","decl","parseExportDeclaration","declarationNode","parseExportSpecifiers","parseExportFrom","eatExportStar","maybeParseExportNamespaceSpecifier","hasNamespace","parseClassId","isStatement","optionalId","parseClassMember","member","constructorAllowsSuper","parseClassMemberFromModifier","getTokenFromCode","charCodeAt","finishOp","readWord","isBinding","element","operator","trailingCommaPos","toReferencedList","parseClassProperty","parseClassPrivateProperty","isClassMethod","isClassProperty","isNonstaticConstructor","pushClassPrivateMethod","parseClassSuper","superTypeParameters","implemented","parsePropertyName","isPrivateNameAllowed","parseObjPropValue","parseAssignableListItemTypes","parseMaybeDefault","left","shouldParseDefaultImport","parseImportSpecifierLocal","specifier","local","maybeParseDefaultImportSpecifier","parseImportSpecifier","firstIdentLoc","firstIdent","specifierTypeKind","isLookaheadContextual","as_ident","imported","__clone","nodeIsTypeImport","specifierIsTypeImport","checkReservedWord","parseFunctionParams","allowModifiers","parseVarId","parseAsyncArrowFromCallExpression","call","shouldParseAsyncArrow","afterLeftParse","jsx","tc","j_oTag","j_expr","arrowExpression","resetStartLocationFromNode","thrown","parseArrow","shouldParseArrow","setArrowFunctionParameters","allowDuplicates","isArrowFunction","parseParenAndDistinguishExpression","canBeArrow","parseSubscripts","base","noCalls","parseCallExpressionArguments","abort","parseAsyncArrowWithTypeParameters","aborted","parseSubscript","subscriptState","isLookaheadRelational","optionalChainMember","stop","typeArguments","parseNewArguments","targs","parseArrowExpression","readToken_mult_modulo","hasFlowComment","nextToken","readToken_pipe_amp","parseTopLevel","file","program","fileNode","skipBlockComment","skipFlowComment","hasFlowCommentCompletion","shiftToFirstNonWhiteSpace","includes","ch2","ch3","flowEnumErrorBooleanMemberNotInitialized","enumName","memberName","flowEnumErrorInvalidMemberName","toUpperCase","flowEnumErrorDuplicateMemberName","flowEnumErrorInconsistentMemberValues","flowEnumErrorInvalidExplicitType","suppliedType","flowEnumErrorInvalidMemberInitializer","explicitType","flowEnumErrorNumberMemberNotInitialized","flowEnumErrorStringMemberInconsistentlyInitailized","flowEnumMemberInit","endOfInit","literal","parseBooleanLiteral","flowEnumMemberRaw","init","flowEnumCheckExplicitTypeMismatch","expectedType","flowEnumMembers","seenNames","members","booleanMembers","numberMembers","stringMembers","defaultedMembers","memberNode","add","flowEnumStringMembers","initializedMembers","flowEnumParseExplicitType","flowEnumBody","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","entities","quot","amp","apos","lt","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","HEX_NUMBER","DECIMAL_NUMBER","JsxErrors","AttributeIsEmpty","MissingClosingTagFragment","MissingClosingTagElement","UnsupportedJsxValue","UnterminatedJsxContent","UnwrappedAdjacentJSXElements","j_cTag","jsxName","jsxText","jsxTagEnd","isFragment","object","getQualifiedJSXName","namespace","jsxReadToken","chunkStart","ch","jsxReadEntity","jsxReadNewLine","normalizeCRLF","curLine","jsxReadString","quote","str","count","entity","substr","fromCodePoint","parseInt","XHTMLEntities","jsxReadWord","jsxParseIdentifier","jsxParseNamespacedName","jsxParseElementName","newNode","jsxParseAttributeValue","jsxParseExpressionContainer","jsxParseEmptyExpression","jsxParseSpreadChild","jsxParseAttribute","jsxParseOpeningElementAt","jsxParseOpeningElementAfterName","attributes","selfClosing","jsxParseClosingElementAt","jsxParseElementAt","children","openingElement","closingElement","contents","openingFragment","closingFragment","jsxParseElement","inPropertyName","Scope","var","lexical","functions","ScopeHandler","scopeStack","undefinedExports","undefinedPrivateNames","inFunction","currentVarScope","allowSuper","currentThisScope","inClass","inNonArrowFunction","treatFunctionsAsVar","treatFunctionsAsVarInScope","currentScope","createScope","checkRedeclarationInScope","maybeExportDefined","delete","isRedeclaredInScope","checkLocalExport","TypeScriptScope","enums","constEnums","classes","exportOnlyBindings","TypeScriptScopeHandler","isConst","wasConst","PARAM","PARAM_YIELD","PARAM_AWAIT","PARAM_RETURN","ProductionParameterHandler","stacks","currentFlags","hasAwait","hasReturn","functionFlags","nonNull","x","assert","TSErrors","ClassMethodHasDeclare","ClassMethodHasReadonly","DeclareClassFieldHasInitializer","DuplicateModifier","EmptyHeritageClauseType","IndexSignatureHasAbstract","IndexSignatureHasAccessibility","IndexSignatureHasStatic","OptionalTypeBeforeRequired","PatternIsOptional","PrivateElementHasAbstract","PrivateElementHasAccessibility","TemplateTypeHasSubstitution","TypeAnnotationAfterAssign","UnexpectedReadonly","UnexpectedTypeAnnotation","UnexpectedTypeCastInParameter","UnsupportedImportTypeArgument","UnsupportedParameterPropertyKind","UnsupportedSignatureParameterKind","keywordTypeFromName","getScopeHandler","tsIsIdentifier","tsNextTokenCanFollowModifier","hasPrecedingLineBreak","tsParseModifier","allowedModifiers","modifier","tsTryParse","bind","tsParseModifiers","modified","hasOwnProperty","tsIsListTerminator","tsParseList","parseElement","tsParseDelimitedList","tsParseDelimitedListWorker","expectSuccess","tsParseBracketedList","bracket","skipFirstToken","tsParseImportType","qualifier","tsParseEntityName","tsParseTypeArguments","allowReservedWords","startNodeAtNode","tsParseTypeReference","typeName","tsParseThisTypePredicate","lhs","parameterName","tsParseTypeAnnotation","tsParseThisTypeNode","tsParseTypeQuery","exprName","tsParseTypeParameter","parseIdentifierName","constraint","tsEatThenParseType","tsTryParseTypeParameters","tsParseTypeParameters","tsTryNextParseConstantContext","tsFillSignature","returnToken","signature","returnTokenRequired","parameters","tsParseBindingListForSignature","tsParseTypeOrTypePredicateAnnotation","parseBindingList","tsParseTypeMemberSemicolon","tsParseSignatureMember","tsIsUnambiguouslyIndexSignature","tsTryParseIndexSignature","tsLookAhead","tsTryParseTypeAnnotation","tsParsePropertyOrMethodSignature","readonly","nodeAny","tsParseTypeMember","idx","tsParseTypeLiteral","tsParseObjectTypeMembers","tsIsStartOfMappedType","tsParseMappedTypeParameter","tsExpectThenParseType","tsParseMappedType","tsTryParseType","tsParseTupleType","elementTypes","tsParseTupleElementType","seenOptionalElement","elementNode","restNode","tsParseType","lookaheadCharCode","raiseRestNotLast","optionalTypeNode","tsParseParenthesizedType","tsParseFunctionOrConstructorType","tsParseLiteralTypeNode","tsParseTemplateLiteralType","templateNode","parseTemplate","expressions","tsParseThisTypeOrThisTypePredicate","thisKeyword","tsParseNonArrayType","parseMaybeUnary","tsParseArrayTypeOrHigher","objectType","indexType","tsParseTypeOperator","tsParseTypeOperatorOrHigher","tsCheckTypeAnnotationForReadOnly","tsParseInferType","find","kw","tsParseUnionOrIntersectionType","parseConstituentType","tsParseIntersectionTypeOrHigher","tsParseUnionTypeOrHigher","tsIsStartOfFunctionType","tsIsUnambiguouslyStartOfFunctionType","tsSkipParameterStart","braceStackCounter","tsInType","t","asserts","tsParseTypePredicateAsserts","thisTypePredicate","typePredicateVariable","tsParseTypePredicatePrefix","tsTryParseTypeOrTypePredicateAnnotation","eatColon","tsParseNonConditionalType","checkType","extendsType","trueType","falseType","tsParseTypeAssertion","tsNextThenParseType","tsParseHeritageClause","descriptor","originalStart","delimitedList","tsParseExpressionWithTypeArguments","tsParseInterfaceDeclaration","tsParseTypeAliasDeclaration","tsInNoContext","cb","oldContext","tsDoThenParseType","tsParseEnumMember","initializer","tsParseEnumDeclaration","tsParseModuleBlock","parseBlockOrModuleBlockBody","tsParseModuleOrNamespaceDeclaration","nested","inner","tsParseAmbientExternalModuleDeclaration","global","tsParseImportEqualsDeclaration","isExport","moduleReference","tsParseModuleReference","tsIsExternalModuleReference","tsParseExternalModuleReference","f","res","tsTryParseAndCatch","tsTryParseDeclare","nany","isLineTerminator","starttype","parseFunctionStatement","parseClass","parseVarStatement","tsParseDeclaration","tsTryParseExportDeclaration","tsParseExpressionStatement","mod","tsCheckLineTerminatorAndMatch","cls","abstract","tokenType","tsTryParseGenericAsyncArrowFunction","oldMaybeInArrowParameters","maybeInArrowParameters","oldYieldPos","yieldPos","oldAwaitPos","awaitPos","tsIsDeclarationStart","parseAssignableListItem","decorators","accessibility","parseAccessModifier","elt","pp","parameter","bodilessType","registerFunctionStatementId","nonNullExpression","atPossibleAsyncArrow","asyncArrowFn","parseTaggedTemplateExpression","args","parseExprOp","leftStartPos","leftStartLoc","minPrec","checkKeywords","checkDuplicateExports","ahead","importNode","isAbstractClass","parseStatementContent","parseClassMemberWithIsStatic","parsePostMemberNameModifiers","methodOrProp","isDeclare","resetStartLocation","parseClassPropertyAnnotation","definite","equal","typeCast","ct","parseBindingAtom","parseMaybeDecoratorArguments","isInParens","canHaveLeadingDecorator","getGetterSetterExpectedParamCount","baseCount","firstParam","hasContextParam","placeholder","parsePlaceholder","expectedNode","assertNoSpace","finishPlaceholder","isFinished","verifyBreakContinue","parseBlock","parseFunctionId","takeDecorators","parseClassBody","expectPlugin","maybeParseExportDefaultSpecifier","checkExport","filter","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","parseImportSource","parseV8Intrinsic","v8IntrinsicStart","identifier","some","Array","isArray","option","PIPELINE_PROPOSALS","RECORD_AND_TUPLE_SYNTAX_TYPES","validatePlugins","decoratorsBeforeExport","join","mixinPlugins","estree","flow","typescript","v8intrinsic","placeholders","mixinPluginNames","keys","defaultOptions","sourceType","sourceFilename","startLine","allowAwaitOutsideFunction","allowReturnOutsideFunction","allowImportExportEverywhere","allowSuperOutsideMethod","allowUndeclaredExports","strictMode","ranges","tokens","createParenthesizedExpressions","getOptions","opts","State","potentialArrowAt","inParameters","maybeInAsyncArrowHead","inPipeline","topicContext","maxNumOfResolvableTopics","maxTopicIndex","soloAwait","inFSharpPipelineDirectBody","labels","decoratorStack","comments","octalPositions","exportedIdentifiers","tokensLength","curPosition","skipArrays","isDigit","VALID_REGEX_FLAGS","forbiddenNumericSeparatorSiblings","decBinOct","hex","allowedNumericSeparatorSiblings","bin","oct","dec","Token","Tokenizer","pushToken","checkKeywordEscapes","old","curr","nextTokenStart","thisTokEnd","skip","setStrict","lastIndexOf","skipSpace","codePointAt","pushComment","block","text","skipLineComment","startSkip","loop","readToken_numberSign","readToken_interpreter","nextPos","readToken_dot","readNumber","readToken_slash","readRegexp","width","readToken_caret","readToken_plus_min","readToken_lt_gt","size","readToken_eq_excl","readToken_question","next2","readRadixNumber","readString","escaped","charAt","content","mods","char","charCode","readInt","radix","len","forceLen","allowNumSeparator","forbiddenSiblings","allowedSiblings","total","Infinity","prev","Number","isNaN","isBigInt","startsWithDot","isFloat","isNonOctalDecimalInt","octal","underscorePos","parseFloat","readCodePoint","throwOnInvalid","codePos","readHexChar","readEscapedChar","containsInvalid","inTemplate","octalStr","n","readWord1","escStart","identifierCheck","esc","keywordTypes","parent","update","UtilParser","addExtra","op","afterNext","isUnparsedContextual","nameStart","nameEnd","messageOrType","missingPlugin","expectOnePlugin","names","checkYieldAwaitInDefaultParams","fn","oldState","abortSignal","checkExpressionErrors","andThrow","shorthandAssign","ExpressionErrors","Node","parser","range","NodeUtils","locationNode","unwrapParenthesizedExpression","LValParser","checkToRestConversion","arg","raiseTrailingCommaAfterRest","parseSpread","parseRestBinding","parseObj","close","closeCharCode","allowEmpty","elts","first","checkCommaAfterRest","parseDecorator","strictModeChanged","elem","ExpressionParser","getExpression","paramFlags","parseYield","ownExpressionErrors","parseMaybeConditional","parseExprOps","prec","logical","coalesce","checkPipelineAtInfixOperator","parseExprOpRightExpr","nextOp","withTopicPermittingContext","parseSmartPipelineBody","parseExprOpBaseRightExpr","withSoloAwaitPermittingContext","parseFSharpPipelineBody","isAwaitAllowed","parseAwait","parseExprSubscripts","maybeAsyncArrow","oldMaybeInAsyncArrowHead","parseNoCallExpr","parseMaybePrivateName","classScope","usePrivateName","tag","quasi","importArg","possibleAsyncArrow","dynamicImport","allowPlaceholder","nodeForExtra","innerParenStart","oldInFSharpPipelineDirectBody","parseExprListItem","parseImportMetaProperty","parseFunction","oldLabels","parseExprList","ret","parseFunctionExpression","parseDecorators","parseNew","primaryTopicReferenceIsAllowedInCurrentTopicContext","registerTopicReference","isPrivate","meta","parseMetaProperty","propertyName","innerStartPos","innerStartLoc","spreadStart","optionalCommaStart","spreadNodeStartPos","spreadNodeStartLoc","innerEndPos","innerEndLoc","arrowNode","parenStart","metaProp","parseTemplateElement","isTagged","cooked","tail","curElt","quasis","isRecord","propHash","create","parseObjectMember","isAsyncProp","isGetterOrSetterMethod","oldInPropertyName","generator","async","isExpression","oldInParameters","oldStrict","hasStrictModeDirective","nonSimple","isSimpleParamList","errorPos","nameHash","identifierName","reservedTest","delegate","childExpression","pipelineStyle","checkSmartPipelineBodyStyle","checkSmartPipelineBodyEarlyErrors","parseSmartPipelineBodyInStyle","topicReferenceWasUsedInCurrentTopicContext","isSimpleReference","callback","outerContextTopicState","withTopicForbiddingContext","outerContextSoloAwaitState","loopLabel","switchLabel","FUNC_NO_FLAGS","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","FUNC_NULLABLE_ID","StatementParser","interpreter","parseInterpreterDirective","from","nextCh","parseBreakContinueStatement","parseDebuggerStatement","parseDoStatement","parseForStatement","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseWhileStatement","parseWithStatement","parseEmptyStatement","nextTokenCharCode","isAsyncFunction","maybeName","parseLabeledStatement","allowExport","currentContextDecorators","decorator","isBreak","lab","parseHeaderExpression","awaitAt","parseFor","parseVar","declarations","parseForIn","description","declarationPosition","discriminant","cases","cur","sawDefault","isCase","handler","clause","simple","finalizer","statementStart","createNewLexicalScope","afterBlockParse","parsedNonDirective","isForIn","await","isFor","isTypescript","statement","isHangingStatement","requireId","hadConstructor","publicMethod","privateMethod","publicProp","privateProp","publicMember","parseClassPropertyName","isSimple","maybeQuestionTokenStart","pushClassPrivateProperty","pushClassProperty","declarePrivateName","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","maybeParseExportNamedSpecifiers","hasDeclaration","maybeParseExportDeclaration","checkNames","isDefault","isFrom","nodes","parseNext","ClassScope","privateNames","loneAccessors","ClassScopeHandler","oldClassScope","redefined","accessor","oldStatic","newStatic","oldKind","newKind","Parser","pluginsMap","pluginMap","getParser","ast","moduleError","getParserClass","parserClassCache","pluginsFromOptions","pluginList"],"mappings":";;;;AAyBA,MAAMA,UAAU,GAAG,IAAnB;AACA,MAAMC,UAAU,GAAG,IAAnB;AACA,MAAMC,MAAM,GAAG,IAAf;AACA,MAAMC,QAAQ,GAAG,IAAjB;AACA,MAAMC,MAAM,GAAG,IAAf;AACA,MAAMC,OAAO,GAAG,IAAhB;AAcO,MAAMC,SAAN,CAAgB;AAarBC,EAAAA,WAAW,CAACC,KAAD,EAAgBC,IAAkB,GAAG,EAArC,EAAyC;AAClD,SAAKD,KAAL,GAAaA,KAAb;AACA,SAAKE,OAAL,GAAeD,IAAI,CAACC,OAApB;AACA,SAAKV,UAAL,GAAkB,CAAC,CAACS,IAAI,CAACT,UAAzB;AACA,SAAKC,UAAL,GAAkB,CAAC,CAACQ,IAAI,CAACR,UAAzB;AACA,SAAKU,gBAAL,GAAwB,CAAC,CAACF,IAAI,CAACE,gBAA/B;AACA,SAAKT,MAAL,GAAc,CAAC,CAACO,IAAI,CAACP,MAArB;AACA,SAAKC,QAAL,GAAgB,CAAC,CAACM,IAAI,CAACN,QAAvB;AACA,SAAKC,MAAL,GAAc,CAAC,CAACK,IAAI,CAACL,MAArB;AACA,SAAKC,OAAL,GAAe,CAAC,CAACI,IAAI,CAACJ,OAAtB;AACA,SAAKO,KAAL,GAAaH,IAAI,CAACG,KAAL,IAAc,IAAd,GAAqBH,IAAI,CAACG,KAA1B,GAAkC,IAA/C;AACA,SAAKC,aAAL,GAAqB,IAArB;AACD;;AAzBoB;AA4BhB,MAAMC,QAAQ,GAAG,IAAIC,GAAJ,EAAjB;;AAEP,SAASC,aAAT,CAAuBC,IAAvB,EAAqCC,OAAqB,GAAG,EAA7D,EAA4E;AAC1EA,EAAAA,OAAO,CAACR,OAAR,GAAkBO,IAAlB;AACA,QAAME,KAAK,GAAG,IAAIb,SAAJ,CAAcW,IAAd,EAAoBC,OAApB,CAAd;AACAJ,EAAAA,QAAQ,CAACM,GAAT,CAAaH,IAAb,EAAmBE,KAAnB;AACA,SAAOA,KAAP;AACD;;AAED,SAASE,WAAT,CAAqBJ,IAArB,EAAmCL,KAAnC,EAAkD;AAChD,SAAO,IAAIN,SAAJ,CAAcW,IAAd,EAAoB;AAAEjB,IAAAA,UAAF;AAAcY,IAAAA;AAAd,GAApB,CAAP;AACD;;MAEYU,KAAoC,GAAG;AAClDC,EAAAA,GAAG,EAAE,IAAIjB,SAAJ,CAAc,KAAd,EAAqB;AAAEL,IAAAA;AAAF,GAArB,CAD6C;AAElDuB,EAAAA,MAAM,EAAE,IAAIlB,SAAJ,CAAc,QAAd,EAAwB;AAAEL,IAAAA;AAAF,GAAxB,CAF0C;AAGlDwB,EAAAA,MAAM,EAAE,IAAInB,SAAJ,CAAc,QAAd,EAAwB;AAAEL,IAAAA;AAAF,GAAxB,CAH0C;AAIlDyB,EAAAA,MAAM,EAAE,IAAIpB,SAAJ,CAAc,QAAd,EAAwB;AAAEL,IAAAA;AAAF,GAAxB,CAJ0C;AAKlDgB,EAAAA,IAAI,EAAE,IAAIX,SAAJ,CAAc,MAAd,EAAsB;AAAEL,IAAAA;AAAF,GAAtB,CAL4C;AAMlD0B,EAAAA,GAAG,EAAE,IAAIrB,SAAJ,CAAc,KAAd,CAN6C;AASlDsB,EAAAA,QAAQ,EAAE,IAAItB,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAnB,CATwC;AAUlD4B,EAAAA,YAAY,EAAE,IAAIvB,SAAJ,CAAc,IAAd,EAAoB;AAAEN,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAApB,CAVoC;AAWlD6B,EAAAA,WAAW,EAAE,IAAIxB,SAAJ,CAAc,IAAd,EAAoB;AAAEN,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAApB,CAXqC;AAYlD8B,EAAAA,QAAQ,EAAE,IAAIzB,SAAJ,CAAc,GAAd,CAZwC;AAalD0B,EAAAA,WAAW,EAAE,IAAI1B,SAAJ,CAAc,IAAd,CAbqC;AAclD2B,EAAAA,MAAM,EAAE,IAAI3B,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAnB,CAd0C;AAelDiC,EAAAA,SAAS,EAAE,IAAI5B,SAAJ,CAAc,IAAd,EAAoB;AAAEN,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAApB,CAfuC;AAgBlDkC,EAAAA,UAAU,EAAE,IAAI7B,SAAJ,CAAc,IAAd,EAAoB;AAAEN,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAApB,CAhBsC;AAiBlDmC,EAAAA,MAAM,EAAE,IAAI9B,SAAJ,CAAc,GAAd,CAjB0C;AAkBlD+B,EAAAA,SAAS,EAAE,IAAI/B,SAAJ,CAAc,IAAd,CAlBuC;AAmBlDgC,EAAAA,MAAM,EAAE,IAAIhC,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAnB,CAnB0C;AAoBlDsC,EAAAA,MAAM,EAAE,IAAIjC,SAAJ,CAAc,GAAd,CApB0C;AAqBlDkC,EAAAA,KAAK,EAAE,IAAIlC,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA;AAAF,GAAnB,CArB2C;AAsBlDyC,EAAAA,IAAI,EAAE,IAAInC,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA;AAAF,GAAnB,CAtB4C;AAuBlD0C,EAAAA,KAAK,EAAE,IAAIpC,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA;AAAF,GAAnB,CAvB2C;AAwBlD2C,EAAAA,WAAW,EAAE,IAAIrC,SAAJ,CAAc,IAAd,EAAoB;AAAEN,IAAAA;AAAF,GAApB,CAxBqC;AAyBlD4C,EAAAA,GAAG,EAAE,IAAItC,SAAJ,CAAc,GAAd,CAzB6C;AA0BlDuC,EAAAA,QAAQ,EAAE,IAAIvC,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA;AAAF,GAAnB,CA1BwC;AA2BlD8C,EAAAA,WAAW,EAAE,IAAIxC,SAAJ,CAAc,IAAd,CA3BqC;AA4BlDyC,EAAAA,KAAK,EAAE,IAAIzC,SAAJ,CAAc,IAAd,EAAoB;AAAEN,IAAAA;AAAF,GAApB,CA5B2C;AA6BlDgD,EAAAA,QAAQ,EAAE,IAAI1C,SAAJ,CAAc,UAAd,CA7BwC;AA8BlD2C,EAAAA,QAAQ,EAAE,IAAI3C,SAAJ,CAAc,KAAd,EAAqB;AAAEN,IAAAA;AAAF,GAArB,CA9BwC;AA+BlDkD,EAAAA,SAAS,EAAE,IAAI5C,SAAJ,CAAc,GAAd,EAAmB;AAAEL,IAAAA;AAAF,GAAnB,CA/BuC;AAgClDkD,EAAAA,YAAY,EAAE,IAAI7C,SAAJ,CAAc,IAAd,EAAoB;AAAEN,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAApB,CAhCoC;AAiClDmD,EAAAA,EAAE,EAAE,IAAI9C,SAAJ,CAAc,GAAd,CAjC8C;AAkClD+C,EAAAA,IAAI,EAAE,IAAI/C,SAAJ,CAAc,GAAd,EAAmB;AAAEL,IAAAA;AAAF,GAAnB,CAlC4C;AAqClDqD,EAAAA,oBAAoB,EAAE,IAAIhD,SAAJ,CAAc,OAAd,CArC4B;AAqDlDiD,EAAAA,EAAE,EAAE,IAAIjD,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA,UAAF;AAAcG,IAAAA;AAAd,GAAnB,CArD8C;AAsDlDqD,EAAAA,MAAM,EAAE,IAAIlD,SAAJ,CAAc,IAAd,EAAoB;AAAEN,IAAAA,UAAF;AAAcG,IAAAA;AAAd,GAApB,CAtD0C;AAuDlDsD,EAAAA,MAAM,EAAE,IAAInD,SAAJ,CAAc,OAAd,EAAuB;AAAEF,IAAAA,MAAF;AAAUC,IAAAA,OAAV;AAAmBJ,IAAAA;AAAnB,GAAvB,CAvD0C;AAwDlDyD,EAAAA,IAAI,EAAE,IAAIpD,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA,UAAF;AAAcI,IAAAA,MAAd;AAAsBH,IAAAA;AAAtB,GAAnB,CAxD4C;AAyDlD0D,EAAAA,KAAK,EAAE,IAAIrD,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA,UAAF;AAAcI,IAAAA,MAAd;AAAsBH,IAAAA;AAAtB,GAAnB,CAzD2C;AA0DlD2D,EAAAA,QAAQ,EAAEvC,WAAW,CAAC,IAAD,EAAO,CAAP,CA1D6B;AA2DlDwC,EAAAA,iBAAiB,EAAExC,WAAW,CAAC,IAAD,EAAO,CAAP,CA3DoB;AA4DlDyC,EAAAA,SAAS,EAAEzC,WAAW,CAAC,IAAD,EAAO,CAAP,CA5D4B;AA6DlD0C,EAAAA,UAAU,EAAE1C,WAAW,CAAC,IAAD,EAAO,CAAP,CA7D2B;AA8DlD2C,EAAAA,SAAS,EAAE3C,WAAW,CAAC,GAAD,EAAM,CAAN,CA9D4B;AA+DlD4C,EAAAA,UAAU,EAAE5C,WAAW,CAAC,GAAD,EAAM,CAAN,CA/D2B;AAgElD6C,EAAAA,UAAU,EAAE7C,WAAW,CAAC,GAAD,EAAM,CAAN,CAhE2B;AAiElD8C,EAAAA,QAAQ,EAAE9C,WAAW,CAAC,eAAD,EAAkB,CAAlB,CAjE6B;AAkElD+C,EAAAA,UAAU,EAAE/C,WAAW,CAAC,WAAD,EAAc,CAAd,CAlE2B;AAmElDgD,EAAAA,QAAQ,EAAEhD,WAAW,CAAC,WAAD,EAAc,CAAd,CAnE6B;AAoElDiD,EAAAA,OAAO,EAAE,IAAIhE,SAAJ,CAAc,KAAd,EAAqB;AAAEN,IAAAA,UAAF;AAAcY,IAAAA,KAAK,EAAE,CAArB;AAAwBR,IAAAA,MAAxB;AAAgCH,IAAAA;AAAhC,GAArB,CApEyC;AAsElDsE,EAAAA,MAAM,EAAE,IAAIjE,SAAJ,CAAc,GAAd,EAAmB;AAAEN,IAAAA,UAAF;AAAcY,IAAAA,KAAK,EAAE,EAArB;AAAyBX,IAAAA;AAAzB,GAAnB,CAtE0C;AAuElDuE,EAAAA,IAAI,EAAEnD,WAAW,CAAC,GAAD,EAAM,EAAN,CAvEiC;AAwElDoD,EAAAA,KAAK,EAAEpD,WAAW,CAAC,GAAD,EAAM,EAAN,CAxEgC;AAyElDqD,EAAAA,QAAQ,EAAE,IAAIpE,SAAJ,CAAc,IAAd,EAAoB;AAC5BN,IAAAA,UAD4B;AAE5BY,IAAAA,KAAK,EAAE,EAFqB;AAG5BD,IAAAA,gBAAgB,EAAE;AAHU,GAApB,CAzEwC;AAkFlDgE,EAAAA,MAAM,EAAE3D,aAAa,CAAC,OAAD,CAlF6B;AAmFlD4D,EAAAA,KAAK,EAAE5D,aAAa,CAAC,MAAD,EAAS;AAAEhB,IAAAA;AAAF,GAAT,CAnF8B;AAoFlD6E,EAAAA,MAAM,EAAE7D,aAAa,CAAC,OAAD,CApF6B;AAqFlD8D,EAAAA,SAAS,EAAE9D,aAAa,CAAC,UAAD,CArF0B;AAsFlD+D,EAAAA,SAAS,EAAE/D,aAAa,CAAC,UAAD,CAtF0B;AAuFlDgE,EAAAA,QAAQ,EAAEhE,aAAa,CAAC,SAAD,EAAY;AAAEhB,IAAAA;AAAF,GAAZ,CAvF2B;AAwFlDiF,EAAAA,GAAG,EAAEjE,aAAa,CAAC,IAAD,EAAO;AAAEd,IAAAA,MAAF;AAAUF,IAAAA;AAAV,GAAP,CAxFgC;AAyFlDkF,EAAAA,KAAK,EAAElE,aAAa,CAAC,MAAD,EAAS;AAAEhB,IAAAA;AAAF,GAAT,CAzF8B;AA0FlDmF,EAAAA,QAAQ,EAAEnE,aAAa,CAAC,SAAD,CA1F2B;AA2FlDoE,EAAAA,IAAI,EAAEpE,aAAa,CAAC,KAAD,EAAQ;AAAEd,IAAAA;AAAF,GAAR,CA3F+B;AA4FlDmF,EAAAA,SAAS,EAAErE,aAAa,CAAC,UAAD,EAAa;AAAEf,IAAAA;AAAF,GAAb,CA5F0B;AA6FlDqF,EAAAA,GAAG,EAAEtE,aAAa,CAAC,IAAD,CA7FgC;AA8FlDuE,EAAAA,OAAO,EAAEvE,aAAa,CAAC,QAAD,EAAW;AAAEhB,IAAAA;AAAF,GAAX,CA9F4B;AA+FlDwF,EAAAA,OAAO,EAAExE,aAAa,CAAC,QAAD,CA/F4B;AAgGlDyE,EAAAA,MAAM,EAAEzE,aAAa,CAAC,OAAD,EAAU;AAAEhB,IAAAA,UAAF;AAAcI,IAAAA,MAAd;AAAsBH,IAAAA;AAAtB,GAAV,CAhG6B;AAiGlDyF,EAAAA,IAAI,EAAE1E,aAAa,CAAC,KAAD,CAjG+B;AAkGlD2E,EAAAA,IAAI,EAAE3E,aAAa,CAAC,KAAD,CAlG+B;AAmGlD4E,EAAAA,MAAM,EAAE5E,aAAa,CAAC,OAAD,CAnG6B;AAoGlD6E,EAAAA,MAAM,EAAE7E,aAAa,CAAC,OAAD,EAAU;AAAEd,IAAAA;AAAF,GAAV,CApG6B;AAqGlD4F,EAAAA,KAAK,EAAE9E,aAAa,CAAC,MAAD,CArG8B;AAsGlD+E,EAAAA,IAAI,EAAE/E,aAAa,CAAC,KAAD,EAAQ;AAAEhB,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAR,CAtG+B;AAuGlD+F,EAAAA,KAAK,EAAEhF,aAAa,CAAC,MAAD,EAAS;AAAEf,IAAAA;AAAF,GAAT,CAvG8B;AAwGlDgG,EAAAA,MAAM,EAAEjF,aAAa,CAAC,OAAD,EAAU;AAAEf,IAAAA;AAAF,GAAV,CAxG6B;AAyGlDiG,EAAAA,MAAM,EAAElF,aAAa,CAAC,OAAD,EAAU;AAAEf,IAAAA;AAAF,GAAV,CAzG6B;AA0GlDkG,EAAAA,QAAQ,EAAEnF,aAAa,CAAC,SAAD,EAAY;AAAEhB,IAAAA;AAAF,GAAZ,CA1G2B;AA2GlDoG,EAAAA,OAAO,EAAEpF,aAAa,CAAC,QAAD,CA3G4B;AA4GlDqF,EAAAA,OAAO,EAAErF,aAAa,CAAC,QAAD,EAAW;AAAEf,IAAAA;AAAF,GAAX,CA5G4B;AA6GlDqG,EAAAA,KAAK,EAAEtF,aAAa,CAAC,MAAD,EAAS;AAAEf,IAAAA;AAAF,GAAT,CA7G8B;AA8GlDsG,EAAAA,KAAK,EAAEvF,aAAa,CAAC,MAAD,EAAS;AAAEf,IAAAA;AAAF,GAAT,CA9G8B;AA+GlDuG,EAAAA,MAAM,EAAExF,aAAa,CAAC,OAAD,EAAU;AAAEf,IAAAA;AAAF,GAAV,CA/G6B;AAgHlDwG,EAAAA,GAAG,EAAEzF,aAAa,CAAC,IAAD,EAAO;AAAEhB,IAAAA,UAAF;AAAcY,IAAAA,KAAK,EAAE;AAArB,GAAP,CAhHgC;AAiHlD8F,EAAAA,WAAW,EAAE1F,aAAa,CAAC,YAAD,EAAe;AAAEhB,IAAAA,UAAF;AAAcY,IAAAA,KAAK,EAAE;AAArB,GAAf,CAjHwB;AAkHlD+F,EAAAA,OAAO,EAAE3F,aAAa,CAAC,QAAD,EAAW;AAAEhB,IAAAA,UAAF;AAAcI,IAAAA,MAAd;AAAsBH,IAAAA;AAAtB,GAAX,CAlH4B;AAmHlD2G,EAAAA,KAAK,EAAE5F,aAAa,CAAC,MAAD,EAAS;AAAEhB,IAAAA,UAAF;AAAcI,IAAAA,MAAd;AAAsBH,IAAAA;AAAtB,GAAT,CAnH8B;AAoHlD4G,EAAAA,OAAO,EAAE7F,aAAa,CAAC,QAAD,EAAW;AAAEhB,IAAAA,UAAF;AAAcI,IAAAA,MAAd;AAAsBH,IAAAA;AAAtB,GAAX;AApH4B;;ACjF7C,MAAM6G,WAAW,GAAU,UAA3B;AAAA,MACMC,aAAa,GAAQ,UAD3B;AAAA,MAEMC,cAAc,GAAO,UAF3B;AAAA,MAGMC,WAAW,GAAU,UAH3B;AAAA,MAIMC,kBAAkB,GAAG,UAJ3B;AAAA,MAKMC,WAAW,GAAU,UAL3B;AAAA,MAMMC,kBAAkB,GAAG,UAN3B;AAAA,MAOMC,WAAW,GAAU,UAP3B;AAAA,MAQMC,eAAe,GAAM,UAR3B;AAAA,MASMC,SAAS,GAAGR,aAAa,GAAGC,cAAhB,GAAiCM,eATnD;AAwBP,MAAaE,eAAe,GAAa,aAAlC;AAAA,MACMC,cAAc,GAAc,aADlC;AAAA,MAGMC,cAAc,GAAc,aAHlC;AAAA,MAIMC,kBAAkB,GAAU,aAJlC;AAAA,MAKMC,mBAAmB,GAAS,aALlC;AAAA,MAMMC,AAGAC,eAAe,GAAa,aATlC;AAAA,MAUMC,gBAAgB,GAAY,aAVlC;AAAA,MAWMC,kBAAkB,GAAU,aAXlC;AAAA,MAYMC,wBAAwB,GAAI,aAZlC;AAAA,MAaMC,yBAAyB,GAAG,aAblC;AAkBP,AAAO,MAAMC,UAAU,GAAWX,eAAe,GAAGC,cAAlB,GAAmCE,kBAAnC,GAAyDI,gBAApF;AAAA,MACMK,YAAY,GAASZ,eAAe,GAAG,CAAlB,GAAmCG,kBAAnC,GAAyD,CADpF;AAAA,MAEMU,QAAQ,GAAab,eAAe,GAAG,CAAlB,GAAmCE,cAAnC,GAAyD,CAFpF;AAAA,MAGMY,aAAa,GAAQd,eAAe,GAAG,CAAlB,GAAmCI,mBAAnC,GAAyD,CAHpF;AAAA,MAIMW,iBAAiB,GAAI,IAAkBd,cAAlB,GAAmC,CAAnC,GAAyDM,gBAJpF;AAAA,MAKMS,YAAY,GAAS,IAAkBf,cAAlB,GAAmC,CAAnC,GAAyD,CALpF;AAAA,MAMMgB,YAAY,GAASjB,eAAe,GAAGC,cAAlB,GAAmCE,kBAAnC,GAAyDK,kBANpF;AAAA,MAOMU,eAAe,GAAM,IAAkB,CAAlB,GAAmC,CAAnC,GAAkDR,yBAP7E;AAAA,MAUMS,SAAS,GAAY,IAAkB,CAAlB,GAAmC,CAAnC,GAAyDb,eAVpF;AAAA,MAWMc,YAAY,GAASpB,eAAe,GAAG,CAAlB,GAAmC,CAAnC,GAAyDM,eAXpF;AAAA,MAaMe,kBAAkB,GAAGJ,YAAY,GAAGR,wBAb1C;AAAA,MAcMa,iBAAiB,GAAI,IAAkB,CAAlB,GAAmC,CAAnC,GAAkDZ,yBAd7E;AA8BP,AAAO,MAAMa,yBAAyB,GAAG,KAAlC;AAAA,MACMC,yBAAyB,GAAG,KADlC;AAAA,MAEMC,yBAAyB,GAAG,KAFlC;AAAA,MAGMC,2BAA2B,GAAGF,yBAAyB,GAAGC,yBAHhE;AAMP,AAAO,MAAME,2BAA2B,GAAKH,yBAAyB,GAAGD,yBAAlE;AAAA,MACMK,2BAA2B,GAAKH,yBAAyB,GAAGF,yBADlE;AAAA,MAEMM,6BAA6B,GAAGL,yBAFtC;AAAA,MAGMM,6BAA6B,GAAGL,yBAHtC;AAAA,MAIMM,mBAAmB,GAAa,CAJtC;;AC5EA,MAAMC,SAAS,GAAG,wBAAlB;AACP,AAAO,MAAMC,UAAU,GAAG,IAAIC,MAAJ,CAAWF,SAAS,CAACG,MAArB,EAA6B,GAA7B,CAAnB;AAGP,AAAO,SAASC,SAAT,CAAmBC,IAAnB,EAA0C;AAC/C,UAAQA,IAAR;AACE;AACA;AACA;AACA;AACE,aAAO,IAAP;;AAEF;AACE,aAAO,KAAP;AARJ;AAUD;AAED,AAAO,MAAMC,cAAc,GAAG,+BAAvB;AAGP,AAAO,SAASC,YAAT,CAAsBF,IAAtB,EAA6C;AAClD,UAAQA,IAAR;AACE,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA;AACA;AACA;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACA,SAAK,MAAL;AACE,aAAO,IAAP;;AAEF;AACE,aAAO,KAAP;AAzBJ;AA2BD;;AC3CM,MAAMG,QAAN,CAAe;AAIpBzJ,EAAAA,WAAW,CAAC0J,IAAD,EAAeC,GAAf,EAA4B;AACrC,SAAKD,IAAL,GAAYA,IAAZ;AACA,SAAKE,MAAL,GAAcD,GAAd;AACD;;AAPmB;AAUtB,AAAO,MAAME,cAAN,CAAqB;AAM1B7J,EAAAA,WAAW,CAAC8J,KAAD,EAAkBC,GAAlB,EAAkC;AAC3C,SAAKD,KAAL,GAAaA,KAAb;AAEA,SAAKC,GAAL,GAAWA,GAAX;AACD;;AAVyB;AAmB5B,AAAO,SAASC,WAAT,CAAqBC,KAArB,EAAoCC,MAApC,EAA8D;AACnE,MAAIR,IAAI,GAAG,CAAX;AACA,MAAIS,SAAS,GAAG,CAAhB;AACA,MAAIC,KAAJ;AACAlB,EAAAA,UAAU,CAACmB,SAAX,GAAuB,CAAvB;;AACA,SAAO,CAACD,KAAK,GAAGlB,UAAU,CAACoB,IAAX,CAAgBL,KAAhB,CAAT,KAAoCG,KAAK,CAACG,KAAN,GAAcL,MAAzD,EAAiE;AAC/DR,IAAAA,IAAI;AACJS,IAAAA,SAAS,GAAGjB,UAAU,CAACmB,SAAvB;AACD;;AAED,SAAO,IAAIZ,QAAJ,CAAaC,IAAb,EAAmBQ,MAAM,GAAGC,SAA5B,CAAP;AACD;;AC1Cc,MAAMK,UAAN,CAAiB;AAAA;AAAA,SAS9BC,iBAT8B,GASD,KATC;AAAA,SAU9BC,2BAV8B,GAUS,KAVT;AAAA;;AAmB9BC,EAAAA,SAAS,CAACjK,IAAD,EAAwB;AAC/B,WAAO,KAAKkK,OAAL,CAAaC,GAAb,CAAiBnK,IAAjB,CAAP;AACD;;AAEDoK,EAAAA,eAAe,CAACC,MAAD,EAAiBrK,IAAjB,EAA+B;AAE5C,QAAI,KAAKiK,SAAL,CAAeI,MAAf,CAAJ,EAA4B,OAAO,KAAKH,OAAL,CAAaI,GAAb,CAAiBD,MAAjB,EAAyBrK,IAAzB,CAAP;AAC7B;;AA1B6B;;ACoBhC,SAASuK,IAAT,CAAiBC,KAAjB,EAA8C;AAC5C,SAAOA,KAAK,CAACA,KAAK,CAACC,MAAN,GAAe,CAAhB,CAAZ;AACD;;AAED,AAAe,MAAMC,cAAN,SAA6BZ,UAA7B,CAAwC;AACrDa,EAAAA,UAAU,CAACC,OAAD,EAAyB;AACjC,QAAI,KAAKC,QAAT,EAAmBD,OAAO,CAACE,GAAR,CAAYD,QAAZ,GAAuB,KAAKA,QAA5B;AACnB,SAAKE,KAAL,CAAWC,gBAAX,CAA4BC,IAA5B,CAAiCL,OAAjC;AACA,SAAKG,KAAL,CAAWG,eAAX,CAA2BD,IAA3B,CAAgCL,OAAhC;AACD;;AAEDO,EAAAA,gCAAgC,CAC9BC,IAD8B,EAE9BC,QAF8B,EAW9BC,eAX8B,EAY9B;AACA,QAAI,KAAKP,KAAL,CAAWG,eAAX,CAA2BT,MAA3B,KAAsC,CAA1C,EAA6C;AAC3C;AACD;;AAED,QAAIc,WAAW,GAAG,IAAlB;AACA,QAAIC,CAAC,GAAGH,QAAQ,CAACZ,MAAjB;;AACA,WAAOc,WAAW,KAAK,IAAhB,IAAwBC,CAAC,GAAG,CAAnC,EAAsC;AACpCD,MAAAA,WAAW,GAAGF,QAAQ,CAAC,EAAEG,CAAH,CAAtB;AACD;;AACD,QAAID,WAAW,KAAK,IAApB,EAA0B;AACxB;AACD;;AAED,SAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKV,KAAL,CAAWG,eAAX,CAA2BT,MAA/C,EAAuDgB,CAAC,EAAxD,EAA4D;AAC1D,UACE,KAAKV,KAAL,CAAWG,eAAX,CAA2BO,CAA3B,EAA8BpC,GAA9B,GAAoC,KAAK0B,KAAL,CAAWW,mBAAX,CAA+BrC,GADrE,EAEE;AACA,aAAK0B,KAAL,CAAWG,eAAX,CAA2BS,MAA3B,CAAkCF,CAAlC,EAAqC,CAArC;AACAA,QAAAA,CAAC;AACF;AACF;;AAED,UAAMG,mBAAmB,GAAG,EAA5B;;AACA,SAAK,IAAIJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKT,KAAL,CAAWG,eAAX,CAA2BT,MAA/C,EAAuDe,CAAC,EAAxD,EAA4D;AAC1D,YAAMK,cAAc,GAAG,KAAKd,KAAL,CAAWG,eAAX,CAA2BM,CAA3B,CAAvB;;AACA,UAAIK,cAAc,CAACxC,GAAf,GAAqB+B,IAAI,CAAC/B,GAA9B,EAAmC;AACjCuC,QAAAA,mBAAmB,CAACX,IAApB,CAAyBY,cAAzB;;AAGA,YAAI,CAACP,eAAL,EAAsB;AACpB,eAAKP,KAAL,CAAWG,eAAX,CAA2BS,MAA3B,CAAkCH,CAAlC,EAAqC,CAArC;AACAA,UAAAA,CAAC;AACF;AACF,OARD,MAQO;AACL,YAAIJ,IAAI,CAACJ,gBAAL,KAA0Bc,SAA9B,EAAyC;AACvCV,UAAAA,IAAI,CAACJ,gBAAL,GAAwB,EAAxB;AACD;;AACDI,QAAAA,IAAI,CAACJ,gBAAL,CAAsBC,IAAtB,CAA2BY,cAA3B;AACD;AACF;;AACD,QAAIP,eAAJ,EAAqB,KAAKP,KAAL,CAAWG,eAAX,GAA6B,EAA7B;;AAErB,QAAIU,mBAAmB,CAACnB,MAApB,GAA6B,CAAjC,EAAoC;AAClCc,MAAAA,WAAW,CAACP,gBAAZ,GAA+BY,mBAA/B;AACD,KAFD,MAEO,IAAIL,WAAW,CAACP,gBAAZ,KAAiCc,SAArC,EAAgD;AACrDP,MAAAA,WAAW,CAACP,gBAAZ,GAA+B,EAA/B;AACD;AACF;;AAEDe,EAAAA,cAAc,CAACX,IAAD,EAAmB;AAC/B,QAAIA,IAAI,CAACY,IAAL,KAAc,SAAd,IAA2BZ,IAAI,CAACa,IAAL,CAAUxB,MAAV,GAAmB,CAAlD,EAAqD;AAErD,UAAMD,KAAK,GAAG,KAAKO,KAAL,CAAWmB,YAAzB;AAEA,QAAIC,UAAJ,EAAgBC,SAAhB,EAA2BpB,gBAA3B,EAA6CQ,CAA7C,EAAgDC,CAAhD;;AAEA,QAAI,KAAKV,KAAL,CAAWC,gBAAX,CAA4BP,MAA5B,GAAqC,CAAzC,EAA4C;AAK1C,UAAI,KAAKM,KAAL,CAAWC,gBAAX,CAA4B,CAA5B,EAA+B5B,KAA/B,IAAwCgC,IAAI,CAAC/B,GAAjD,EAAsD;AACpD2B,QAAAA,gBAAgB,GAAG,KAAKD,KAAL,CAAWC,gBAA9B;AACA,aAAKD,KAAL,CAAWC,gBAAX,GAA8B,EAA9B;AACD,OAHD,MAGO;AAOL,aAAKD,KAAL,CAAWC,gBAAX,CAA4BP,MAA5B,GAAqC,CAArC;AACD;AACF,KAjBD,MAiBO,IAAID,KAAK,CAACC,MAAN,GAAe,CAAnB,EAAsB;AAC3B,YAAM4B,WAAW,GAAG9B,IAAI,CAACC,KAAD,CAAxB;;AACA,UACE6B,WAAW,CAACrB,gBAAZ,IACAqB,WAAW,CAACrB,gBAAZ,CAA6B,CAA7B,EAAgC5B,KAAhC,IAAyCgC,IAAI,CAAC/B,GAFhD,EAGE;AACA2B,QAAAA,gBAAgB,GAAGqB,WAAW,CAACrB,gBAA/B;AACA,eAAOqB,WAAW,CAACrB,gBAAnB;AACD;AACF;;AAGD,QAAIR,KAAK,CAACC,MAAN,GAAe,CAAf,IAAoBF,IAAI,CAACC,KAAD,CAAJ,CAAYpB,KAAZ,IAAqBgC,IAAI,CAAChC,KAAlD,EAAyD;AACvD+C,MAAAA,UAAU,GAAG3B,KAAK,CAAC8B,GAAN,EAAb;AACD;;AAED,WAAO9B,KAAK,CAACC,MAAN,GAAe,CAAf,IAAoBF,IAAI,CAACC,KAAD,CAAJ,CAAYpB,KAAZ,IAAqBgC,IAAI,CAAChC,KAArD,EAA4D;AAC1DgD,MAAAA,SAAS,GAAG5B,KAAK,CAAC8B,GAAN,EAAZ;AACD;;AAED,QAAI,CAACF,SAAD,IAAcD,UAAlB,EAA8BC,SAAS,GAAGD,UAAZ;;AAK9B,QAAIA,UAAJ,EAAgB;AACd,cAAQf,IAAI,CAACY,IAAb;AACE,aAAK,kBAAL;AACE,eAAKb,gCAAL,CAAsCC,IAAtC,EAA4CA,IAAI,CAACmB,UAAjD;AACA;;AACF,aAAK,eAAL;AACE,eAAKpB,gCAAL,CAAsCC,IAAtC,EAA4CA,IAAI,CAACmB,UAAjD,EAA6D,IAA7D;AACA;;AACF,aAAK,gBAAL;AACE,eAAKpB,gCAAL,CAAsCC,IAAtC,EAA4CA,IAAI,CAACoB,SAAjD;AACA;;AACF,aAAK,iBAAL;AACE,eAAKrB,gCAAL,CAAsCC,IAAtC,EAA4CA,IAAI,CAACC,QAAjD;AACA;;AACF,aAAK,cAAL;AACE,eAAKF,gCAAL,CAAsCC,IAAtC,EAA4CA,IAAI,CAACC,QAAjD,EAA2D,IAA3D;AACA;AAfJ;AAiBD,KAlBD,MAkBO,IACL,KAAKN,KAAL,CAAWW,mBAAX,KACE,KAAKX,KAAL,CAAWW,mBAAX,CAA+BM,IAA/B,KAAwC,iBAAxC,IACAZ,IAAI,CAACY,IAAL,KAAc,iBADf,IAEE,KAAKjB,KAAL,CAAWW,mBAAX,CAA+BM,IAA/B,KAAwC,iBAAxC,IACCZ,IAAI,CAACY,IAAL,KAAc,iBAJlB,CADK,EAML;AACA,WAAKb,gCAAL,CAAsCC,IAAtC,EAA4C,CAC1C,KAAKL,KAAL,CAAWW,mBAD+B,CAA5C;AAGD;;AAED,QAAIU,SAAJ,EAAe;AACb,UAAIA,SAAS,CAAClB,eAAd,EAA+B;AAC7B,YACEkB,SAAS,KAAKhB,IAAd,IACAgB,SAAS,CAAClB,eAAV,CAA0BT,MAA1B,GAAmC,CADnC,IAEAF,IAAI,CAAC6B,SAAS,CAAClB,eAAX,CAAJ,CAAgC7B,GAAhC,IAAuC+B,IAAI,CAAChC,KAH9C,EAIE;AACAgC,UAAAA,IAAI,CAACF,eAAL,GAAuBkB,SAAS,CAAClB,eAAjC;AACA,iBAAOkB,SAAS,CAAClB,eAAjB;AACD,SAPD,MAOO;AAIL,eAAKM,CAAC,GAAGY,SAAS,CAAClB,eAAV,CAA0BT,MAA1B,GAAmC,CAA5C,EAA+Ce,CAAC,IAAI,CAApD,EAAuD,EAAEA,CAAzD,EAA4D;AAC1D,gBAAIY,SAAS,CAAClB,eAAV,CAA0BM,CAA1B,EAA6BnC,GAA7B,IAAoC+B,IAAI,CAAChC,KAA7C,EAAoD;AAClDgC,cAAAA,IAAI,CAACF,eAAL,GAAuBkB,SAAS,CAAClB,eAAV,CAA0BS,MAA1B,CAAiC,CAAjC,EAAoCH,CAAC,GAAG,CAAxC,CAAvB;AACA;AACD;AACF;AACF;AACF;AACF,KArBD,MAqBO,IAAI,KAAKT,KAAL,CAAWG,eAAX,CAA2BT,MAA3B,GAAoC,CAAxC,EAA2C;AAChD,UAAIF,IAAI,CAAC,KAAKQ,KAAL,CAAWG,eAAZ,CAAJ,CAAiC7B,GAAjC,IAAwC+B,IAAI,CAAChC,KAAjD,EAAwD;AACtD,YAAI,KAAK2B,KAAL,CAAWW,mBAAf,EAAoC;AAClC,eAAKD,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKV,KAAL,CAAWG,eAAX,CAA2BT,MAA3C,EAAmDgB,CAAC,EAApD,EAAwD;AACtD,gBACE,KAAKV,KAAL,CAAWG,eAAX,CAA2BO,CAA3B,EAA8BpC,GAA9B,GACA,KAAK0B,KAAL,CAAWW,mBAAX,CAA+BrC,GAFjC,EAGE;AACA,mBAAK0B,KAAL,CAAWG,eAAX,CAA2BS,MAA3B,CAAkCF,CAAlC,EAAqC,CAArC;AACAA,cAAAA,CAAC;AACF;AACF;AACF;;AACD,YAAI,KAAKV,KAAL,CAAWG,eAAX,CAA2BT,MAA3B,GAAoC,CAAxC,EAA2C;AACzCW,UAAAA,IAAI,CAACF,eAAL,GAAuB,KAAKH,KAAL,CAAWG,eAAlC;AACA,eAAKH,KAAL,CAAWG,eAAX,GAA6B,EAA7B;AACD;AACF,OAhBD,MAgBO;AAYL,aAAKM,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKT,KAAL,CAAWG,eAAX,CAA2BT,MAA3C,EAAmDe,CAAC,EAApD,EAAwD;AACtD,cAAI,KAAKT,KAAL,CAAWG,eAAX,CAA2BM,CAA3B,EAA8BnC,GAA9B,GAAoC+B,IAAI,CAAChC,KAA7C,EAAoD;AAClD;AACD;AACF;;AAMD,cAAM8B,eAAe,GAAG,KAAKH,KAAL,CAAWG,eAAX,CAA2BuB,KAA3B,CAAiC,CAAjC,EAAoCjB,CAApC,CAAxB;;AAEA,YAAIN,eAAe,CAACT,MAApB,EAA4B;AAC1BW,UAAAA,IAAI,CAACF,eAAL,GAAuBA,eAAvB;AACD;;AAIDF,QAAAA,gBAAgB,GAAG,KAAKD,KAAL,CAAWG,eAAX,CAA2BuB,KAA3B,CAAiCjB,CAAjC,CAAnB;;AACA,YAAIR,gBAAgB,CAACP,MAAjB,KAA4B,CAAhC,EAAmC;AACjCO,UAAAA,gBAAgB,GAAG,IAAnB;AACD;AACF;AACF;;AAED,SAAKD,KAAL,CAAWW,mBAAX,GAAiCN,IAAjC;;AAEA,QAAIJ,gBAAJ,EAAsB;AACpB,UACEA,gBAAgB,CAACP,MAAjB,IACAO,gBAAgB,CAAC,CAAD,CAAhB,CAAoB5B,KAApB,IAA6BgC,IAAI,CAAChC,KADlC,IAEAmB,IAAI,CAACS,gBAAD,CAAJ,CAAuB3B,GAAvB,IAA8B+B,IAAI,CAAC/B,GAHrC,EAIE;AACA+B,QAAAA,IAAI,CAACsB,aAAL,GAAqB1B,gBAArB;AACD,OAND,MAMO;AACLI,QAAAA,IAAI,CAACJ,gBAAL,GAAwBA,gBAAxB;AACD;AACF;;AAEDR,IAAAA,KAAK,CAACS,IAAN,CAAWG,IAAX;AACD;;AA9OoD;;ACdhD,MAAMuB,MAAM,GAAGC,MAAM,CAACC,MAAP,CAAc;AAClCC,EAAAA,gCAAgC,EAC9B,uDAFgC;AAGlCC,EAAAA,qCAAqC,EACnC,yEAJgC;AAKlCC,EAAAA,sBAAsB,EACpB,4DANgC;AAOlCC,EAAAA,8BAA8B,EAC5B,mDARgC;AASlCC,EAAAA,uBAAuB,EACrB,uDAVgC;AAWlCC,EAAAA,cAAc,EAAE,4CAXkB;AAYlCC,EAAAA,cAAc,EAAE,+CAZkB;AAalCC,EAAAA,sBAAsB,EACpB,uDAdgC;AAelCC,EAAAA,qBAAqB,EAAE,kDAfW;AAgBlCC,EAAAA,4BAA4B,EAC1B,2DAjBgC;AAkBlCC,EAAAA,qBAAqB,EAAE,0CAlBW;AAmBlCC,EAAAA,kBAAkB,EAAE,wCAnBc;AAoBlCC,EAAAA,sBAAsB,EAAE,kCApBU;AAqBlCC,EAAAA,6BAA6B,EAAE,oCArBG;AAsBlCC,EAAAA,qBAAqB,EACnB,kKAvBgC;AAwBlCC,EAAAA,oBAAoB,EAClB,iFAzBgC;AA0BlCC,EAAAA,oBAAoB,EAClB,kHA3BgC;AA4BlCC,EAAAA,kBAAkB,EAAE,gDA5Bc;AA6BlCC,EAAAA,kBAAkB,EAAE,yCA7Bc;AA8BlCC,EAAAA,sBAAsB,EACpB,oGA/BgC;AAgClCC,EAAAA,oBAAoB,EAAE,yCAhCY;AAiClCC,EAAAA,sBAAsB,EAAE,6CAjCU;AAkClCC,EAAAA,eAAe,EACb,sEAnCgC;AAoClCC,EAAAA,cAAc,EAAE,oCApCkB;AAqClCC,EAAAA,oBAAoB,EAAE,mCArCY;AAsClCC,EAAAA,gBAAgB,EAAE,mCAtCgB;AAuClCC,EAAAA,0BAA0B,EAAE,wBAvCM;AAwClCC,EAAAA,sBAAsB,EACpB,0DAzCgC;AA0ClCC,EAAAA,iCAAiC,EAC/B,oEA3CgC;AA4ClCC,EAAAA,oBAAoB,EAAE,gBA5CY;AA6ClCC,EAAAA,4BAA4B,EAC1B,2EA9CgC;AA+ClCC,EAAAA,aAAa,EAAE,8BA/CmB;AAgDlCC,EAAAA,+BAA+B,EAC7B,2DAjDgC;AAkDlCC,EAAAA,eAAe,EAAE,wCAlDiB;AAmDlCC,EAAAA,oBAAoB,EAAE,qDAnDY;AAoDlCC,EAAAA,0BAA0B,EAAE,iCApDM;AAqDlCC,EAAAA,wBAAwB,EAAE,gCArDQ;AAsDlCC,EAAAA,uBAAuB,EAAG,yDAtDQ;AAuDlCC,EAAAA,mBAAmB,EAAG,mEAvDY;AAwDlCC,EAAAA,gBAAgB,EAAE,0BAxDgB;AAyDlCC,EAAAA,YAAY,EAAE,6BAzDoB;AA0DlCC,EAAAA,qBAAqB,EAAE,+BA1DW;AA2DlCC,EAAAA,6BAA6B,EAAE,qCA3DG;AA4DlCC,EAAAA,0BAA0B,EAAE,+BA5DM;AA6DlCC,EAAAA,iBAAiB,EAAE,uBA7De;AA8DlCC,EAAAA,UAAU,EAAE,8BA9DsB;AA+DlCC,EAAAA,iBAAiB,EAAE,sCA/De;AAgElCC,EAAAA,aAAa,EAAE,gBAhEmB;AAiElCC,EAAAA,wBAAwB,EAAE,2BAjEQ;AAkElCC,EAAAA,8BAA8B,EAAE,0CAlEE;AAmElCC,EAAAA,6BAA6B,EAAE,iCAnEG;AAoElCC,EAAAA,6BAA6B,EAAE,2BApEG;AAqElCC,EAAAA,4BAA4B,EAAE,kCArEI;AAsElCC,EAAAA,kBAAkB,EAAE,gCAtEc;AAuElCC,EAAAA,mBAAmB,EACjB,6EAxEgC;AAyElCC,EAAAA,oBAAoB,EAAE,iCAzEY;AA0ElCC,EAAAA,gBAAgB,EAAE,0BA1EgB;AA2ElCC,EAAAA,qBAAqB,EACnB,6DA5EgC;AA6ElCC,EAAAA,oBAAoB,EAAE,2CA7EY;AA8ElCC,EAAAA,yBAAyB,EACvB,oFA/EgC;AAgFlCC,EAAAA,qBAAqB,EAAE,4BAhFW;AAiFlCC,EAAAA,wBAAwB,EAAE,0BAjFQ;AAkFlCC,EAAAA,iBAAiB,EAAE,6BAlFe;AAmFlCC,EAAAA,gBAAgB,EAAE,iCAnFgB;AAoFlCC,EAAAA,gBAAgB,EAAE,kCApFgB;AAqFlCC,EAAAA,gCAAgC,EAC9B,4FAtFgC;AAuFlCC,EAAAA,iBAAiB,EACf,uFAxFgC;AAyFlCC,EAAAA,qBAAqB,EACnB,yDA1FgC;AA2FlCC,EAAAA,0BAA0B,EACxB,2DA5FgC;AA6FlCC,EAAAA,SAAS,EAAE,qBA7FuB;AA8FlCC,EAAAA,kBAAkB,EAAE,+CA9Fc;AA+FlCC,EAAAA,gBAAgB,EAAE,sCA/FgB;AAgGlCC,EAAAA,mBAAmB,EACjB,kGAjGgC;AAkGlCC,EAAAA,8BAA8B,EAC5B,gEAnGgC;AAoGlCC,EAAAA,8BAA8B,EAC5B,mEArGgC;AAsGlCC,EAAAA,mBAAmB,EACjB,6DAvGgC;AAwGlCC,EAAAA,sBAAsB,EACpB,qEAzGgC;AA0GlCC,EAAAA,iCAAiC,EAC/B,8FA3GgC;AA4GlCC,EAAAA,wBAAwB,EAAE,4BA5GQ;AA6GlCC,EAAAA,yCAAyC,EACvC,kIA9GgC;AA+GlCC,EAAAA,2CAA2C,EACzC,oIAhHgC;AAiHlCC,EAAAA,4CAA4C,EAC1C,qIAlHgC;AAmHlCC,EAAAA,iBAAiB,EAAE,8CAnHe;AAoHlCC,EAAAA,cAAc,EACZ,yHArHgC;AAsHlCC,EAAAA,eAAe,EAAE,sDAtHiB;AAuHlCC,EAAAA,YAAY,EAAE,wCAvHoB;AAwHlCC,EAAAA,mBAAmB,EAAE,kCAxHa;AAyHlCC,EAAAA,0BAA0B,EAAE,6BAzHM;AA0HlCC,EAAAA,cAAc,EACZ,oFA3HgC;AA4HlCC,EAAAA,kBAAkB,EAAE,sDA5Hc;AA6HlCC,EAAAA,UAAU,EAAE,uBA7HsB;AA8HlCC,EAAAA,eAAe,EACb,iJA/HgC;AAgIlCC,EAAAA,iBAAiB,EAAE,2CAhIe;AAiIlCC,EAAAA,iBAAiB,EAAE,gDAjIe;AAkIlCC,EAAAA,wCAAwC,EACtC,iIAnIgC;AAoIlCC,EAAAA,0CAA0C,EACxC,mIArIgC;AAsIlCC,EAAAA,2CAA2C,EACzC,oIAvIgC;AAwIlCC,EAAAA,6BAA6B,EAAE,iCAxIG;AAyIlCC,EAAAA,gCAAgC,EAC9B,yFA1IgC;AA2IlCC,EAAAA,wBAAwB,EAAE,mCA3IQ;AA4IlCC,EAAAA,sBAAsB,EACpB,wDA7IgC;AA8IlCC,EAAAA,iBAAiB,EAAE,yBA9Ie;AA+IlCC,EAAAA,0BAA0B,EACxB,4DAhJgC;AAiJlCC,EAAAA,4BAA4B,EAC1B,iEAlJgC;AAmJlCC,EAAAA,mBAAmB,EAAE,0CAnJa;AAoJlCC,EAAAA,0BAA0B,EACxB,wDArJgC;AAsJlCC,EAAAA,sBAAsB,EACpB,yJAvJgC;AAwJlCC,EAAAA,sBAAsB,EAAE,+BAxJU;AAyJlCC,EAAAA,eAAe,EAAE,qDAzJiB;AA0JlCC,EAAAA,eAAe,EAAE,sBA1JiB;AA2JlCC,EAAAA,kCAAkC,EAChC,kFA5JgC;AA6JlCC,EAAAA,eAAe,EAAE,iDA7JiB;AA8JlCC,EAAAA,0BAA0B,EACxB,oDA/JgC;AAgKlCC,EAAAA,wBAAwB,EACtB,6EAjKgC;AAkKlCC,EAAAA,iBAAiB,EAAE,oDAlKe;AAmKlCC,EAAAA,uBAAuB,EAAE,8CAnKS;AAoKlCC,EAAAA,6BAA6B,EAC3B,kDArKgC;AAsKlCC,EAAAA,4BAA4B,EAC1B,iEAvKgC;AAwKlCC,EAAAA,gBAAgB,EACd,oHAzKgC;AA0KlCC,EAAAA,mBAAmB,EAAE,sBA1Ka;AA2KlCC,EAAAA,kBAAkB,EAAE,iCA3Kc;AA4KlCC,EAAAA,kBAAkB,EAAE,8BA5Kc;AA6KlCC,EAAAA,oBAAoB,EAAE,uBA7KY;AA8KlCC,EAAAA,gBAAgB,EAAE,2CA9KgB;AA+KlCC,EAAAA,sBAAsB,EACpB,sDAhLgC;AAiLlCC,EAAAA,gBAAgB,EAAE,8CAjLgB;AAkLlCC,EAAAA,yBAAyB,EACvB;AAnLgC,CAAd,CAAf;AAsLP,AAAe,MAAMC,cAAN,SAA6BnK,cAA7B,CAA4C;AAMzDoK,EAAAA,sBAAsB,CAACC,GAAD,EAAwB;AAC5C,QAAIjK,GAAJ;AACA,QAAIiK,GAAG,KAAK,KAAKhK,KAAL,CAAW3B,KAAvB,EAA8B0B,GAAG,GAAG,KAAKC,KAAL,CAAWiK,QAAjB,CAA9B,KACK,IAAID,GAAG,KAAK,KAAKhK,KAAL,CAAWkK,YAAvB,EAAqCnK,GAAG,GAAG,KAAKC,KAAL,CAAWmK,eAAjB,CAArC,KACA,IAAIH,GAAG,KAAK,KAAKhK,KAAL,CAAW1B,GAAvB,EAA4ByB,GAAG,GAAG,KAAKC,KAAL,CAAWoK,MAAjB,CAA5B,KACA,IAAIJ,GAAG,KAAK,KAAKhK,KAAL,CAAWqK,UAAvB,EAAmCtK,GAAG,GAAG,KAAKC,KAAL,CAAWsK,aAAjB,CAAnC,KACAvK,GAAG,GAAGxB,WAAW,CAAC,KAAKC,KAAN,EAAawL,GAAb,CAAjB;AAEL,WAAOjK,GAAP;AACD;;AAEDwK,EAAAA,KAAK,CAACP,GAAD,EAAcQ,aAAd,EAAqC,GAAGC,MAAxC,EAAoE;AACvE,WAAO,KAAKC,aAAL,CAAmBV,GAAnB,EAAwBjJ,SAAxB,EAAmCyJ,aAAnC,EAAkD,GAAGC,MAArD,CAAP;AACD;;AAEDC,EAAAA,aAAa,CACXV,GADW,EAEXW,IAFW,EAMXH,aANW,EAOX,GAAGC,MAPQ,EAQI;AACf,UAAM1K,GAAG,GAAG,KAAKgK,sBAAL,CAA4BC,GAA5B,CAAZ;AACA,UAAMY,OAAO,GACXJ,aAAa,CAACK,OAAd,CAAsB,SAAtB,EAAiC,CAACC,CAAD,EAAIrK,CAAJ,KAAkBgK,MAAM,CAAChK,CAAD,CAAzD,IACC,KAAIV,GAAG,CAAC9B,IAAK,IAAG8B,GAAG,CAAC5B,MAAO,GAF9B;AAGA,WAAO,KAAK4M,MAAL,CAAYlJ,MAAM,CAACrK,MAAP,CAAe;AAAEuI,MAAAA,GAAF;AAAOiK,MAAAA;AAAP,KAAf,EAAsCW,IAAtC,CAAZ,EAAyDC,OAAzD,CAAP;AACD;;AAEDG,EAAAA,MAAM,CAACC,YAAD,EAA6BJ,OAA7B,EAA6D;AAEjE,UAAMK,GAA+B,GAAG,IAAIC,WAAJ,CAAgBN,OAAhB,CAAxC;AACA/I,IAAAA,MAAM,CAACrK,MAAP,CAAcyT,GAAd,EAAmBD,YAAnB;;AACA,QAAI,KAAK9V,OAAL,CAAaiW,aAAjB,EAAgC;AAC9B,UAAI,CAAC,KAAKC,WAAV,EAAuB,KAAKpL,KAAL,CAAWqL,MAAX,CAAkBnL,IAAlB,CAAuB+K,GAAvB;AACvB,aAAOA,GAAP;AACD,KAHD,MAGO;AACL,YAAMA,GAAN;AACD;AACF;;AA/CwD;;AC/L3D,SAASK,gBAAT,CAA0BjL,IAA1B,EAAiD;AAC/C,SACEA,IAAI,IAAI,IAAR,IACAA,IAAI,CAACY,IAAL,KAAc,UADd,IAEAZ,IAAI,CAACkL,IAAL,KAAc,MAFd,IAGAlL,IAAI,CAACmL,MAAL,KAAgB,KAJlB;AAMD;;AAED,cAAgBC,UAAD,IACb,cAAcA,UAAd,CAAyB;AACvBC,EAAAA,wBAAwB,CAAC;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAD,EAA8C;AACpE,QAAIC,KAAK,GAAG,IAAZ;;AACA,QAAI;AACFA,MAAAA,KAAK,GAAG,IAAInO,MAAJ,CAAWiO,OAAX,EAAoBC,KAApB,CAAR;AACD,KAFD,CAEE,OAAOE,CAAP,EAAU;;AAIZ,UAAMzL,IAAI,GAAG,KAAK0L,kBAAL,CAAwBF,KAAxB,CAAb;AACAxL,IAAAA,IAAI,CAACwL,KAAL,GAAa;AAAEF,MAAAA,OAAF;AAAWC,MAAAA;AAAX,KAAb;AAEA,WAAOvL,IAAP;AACD;;AAED2L,EAAAA,wBAAwB,CAACC,KAAD,EAAqB;AAG3C,UAAMC,MAAM,GAAG,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAM,CAACF,KAAD,CAAtC,GAAgD,IAA/D;AACA,UAAM5L,IAAI,GAAG,KAAK0L,kBAAL,CAAwBG,MAAxB,CAAb;AACA7L,IAAAA,IAAI,CAAC7K,MAAL,GAAc4W,MAAM,CAAC/L,IAAI,CAAC4L,KAAL,IAAcA,KAAf,CAApB;AAEA,WAAO5L,IAAP;AACD;;AAED0L,EAAAA,kBAAkB,CAACE,KAAD,EAAqB;AACrC,WAAO,KAAKI,YAAL,CAAkBJ,KAAlB,EAAyB,SAAzB,CAAP;AACD;;AAEDK,EAAAA,eAAe,CAACC,SAAD,EAAgD;AAC7D,UAAMC,gBAAgB,GAAGD,SAAS,CAACN,KAAnC;AAEA,UAAMQ,IAAI,GAAG,KAAKC,WAAL,CAAiBH,SAAS,CAAClO,KAA3B,EAAkCkO,SAAS,CAACxM,GAAV,CAAc1B,KAAhD,CAAb;AACA,UAAMsO,UAAU,GAAG,KAAKD,WAAL,CACjBF,gBAAgB,CAACnO,KADA,EAEjBmO,gBAAgB,CAACzM,GAAjB,CAAqB1B,KAFJ,CAAnB;AAKAsO,IAAAA,UAAU,CAACV,KAAX,GAAmBO,gBAAgB,CAACP,KAApC;AACAU,IAAAA,UAAU,CAACC,GAAX,GAAiBJ,gBAAgB,CAACK,KAAjB,CAAuBD,GAAxC;AAEAH,IAAAA,IAAI,CAACE,UAAL,GAAkB,KAAKG,YAAL,CAChBH,UADgB,EAEhB,SAFgB,EAGhBH,gBAAgB,CAAClO,GAHD,EAIhBkO,gBAAgB,CAACzM,GAAjB,CAAqBzB,GAJL,CAAlB;AAMAmO,IAAAA,IAAI,CAACF,SAAL,GAAiBC,gBAAgB,CAACK,KAAjB,CAAuBD,GAAvB,CAA2BlL,KAA3B,CAAiC,CAAjC,EAAoC,CAAC,CAArC,CAAjB;AAEA,WAAO,KAAKoL,YAAL,CACLL,IADK,EAEL,qBAFK,EAGLF,SAAS,CAACjO,GAHL,EAILiO,SAAS,CAACxM,GAAV,CAAczB,GAJT,CAAP;AAMD;;AAMDyO,EAAAA,YAAY,CACV1M,IADU,EAEV2M,OAFU,EAGJ;AACN,UAAMD,YAAN,CAAmB1M,IAAnB,EAAyB2M,OAAzB;AACA3M,IAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAlB;AACD;;AAEDM,EAAAA,gBAAgB,CAAC5M,IAAD,EAA2C;AACzD,QAAIiL,gBAAgB,CAACjL,IAAD,CAApB,EAA4B;AAC1B,WAAK4M,gBAAL,CAAwB5M,IAAF,CAAgC4L,KAAtD;AACD,KAFD,MAEO;AACL,YAAMgB,gBAAN,CAAuB5M,IAAvB;AACD;AACF;;AAED6M,EAAAA,uBAAuB,CAAC1B,MAAD,EAA+C;AACpE,UAAM2B,IAAI,GAAK3B,MAAf;AACA,UAAM4B,UAAU,GAAGD,IAAI,CAAC5B,IAAL,KAAc,KAAd,GAAsB,CAAtB,GAA0B,CAA7C;AACA,UAAMlN,KAAK,GAAG8O,IAAI,CAAC9O,KAAnB;;AACA,QAAI8O,IAAI,CAAClB,KAAL,CAAWxB,MAAX,CAAkB/K,MAAlB,KAA6B0N,UAAjC,EAA6C;AAC3C,UAAI5B,MAAM,CAACD,IAAP,KAAgB,KAApB,EAA2B;AACzB,aAAKhB,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACQ,cAAzB;AACD,OAFD,MAEO;AACL,aAAKmI,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACS,cAAzB;AACD;AACF,KAND,MAMO,IACL8K,IAAI,CAAC5B,IAAL,KAAc,KAAd,IACA4B,IAAI,CAAClB,KAAL,CAAWxB,MAAX,CAAkB,CAAlB,EAAqBxJ,IAArB,KAA8B,aAFzB,EAGL;AACA,WAAKsJ,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACU,sBAAzB;AACD;AACF;;AAED+K,EAAAA,SAAS,CACPC,IADO,EAEPC,WAAyB,GAAG5Q,SAFrB,EAGP6Q,YAHO,EAIPC,kBAJO,EAKPC,kBALO,EAMD;AACN,YAAQJ,IAAI,CAACrM,IAAb;AACE,WAAK,eAAL;AACEqM,QAAAA,IAAI,CAAC9L,UAAL,CAAgBmM,OAAhB,CAAwBR,IAAI,IAAI;AAC9B,eAAKE,SAAL,CACEF,IAAI,CAAClM,IAAL,KAAc,UAAd,GAA2BkM,IAAI,CAAClB,KAAhC,GAAwCkB,IAD1C,EAEEI,WAFF,EAGEC,YAHF,EAIE,8BAJF,EAKEE,kBALF;AAOD,SARD;AASA;;AACF;AACE,cAAML,SAAN,CACEC,IADF,EAEEC,WAFF,EAGEC,YAHF,EAIEC,kBAJF,EAKEC,kBALF;AAbJ;AAqBD;;AAEDE,EAAAA,oBAAoB,CAClBT,IADkB,EAElBU,QAFkB,EAGlBC,mBAHkB,EAIZ;AACN,QACEX,IAAI,CAAClM,IAAL,KAAc,eAAd,IACAkM,IAAI,CAACY,QADL,IAEAZ,IAAI,CAAC3B,MAFL,IAIA2B,IAAI,CAACa,SALP,EAME;AACA;AACD;;AAED,UAAMC,GAAG,GAAGd,IAAI,CAACc,GAAjB;AAEA,UAAMhZ,IAAI,GAAGgZ,GAAG,CAAChN,IAAJ,KAAa,YAAb,GAA4BgN,GAAG,CAAChZ,IAAhC,GAAuCmX,MAAM,CAAC6B,GAAG,CAAChC,KAAL,CAA1D;;AAEA,QAAIhX,IAAI,KAAK,WAAT,IAAwBkY,IAAI,CAAC5B,IAAL,KAAc,MAA1C,EAAkD;AAEhD,UAAIsC,QAAQ,CAACK,IAAb,EAAmB;AACjB,YAAIJ,mBAAmB,IAAIA,mBAAmB,CAACK,WAApB,KAAoC,CAAC,CAAhE,EAAmE;AACjEL,UAAAA,mBAAmB,CAACK,WAApB,GAAkCF,GAAG,CAAC5P,KAAtC;AACD,SAFD,MAEO;AACL,eAAKkM,KAAL,CAAW0D,GAAG,CAAC5P,KAAf,EAAsBuD,MAAM,CAAC0B,cAA7B;AACD;AACF;;AAEDuK,MAAAA,QAAQ,CAACK,IAAT,GAAgB,IAAhB;AACD;AACF;;AAEDE,EAAAA,gBAAgB,CAAC3B,IAAD,EAA6B;AAC3C,WACEA,IAAI,CAACxL,IAAL,KAAc,qBAAd,IACAwL,IAAI,CAACE,UAAL,CAAgB1L,IAAhB,KAAyB,SADzB,IAEA,OAAOwL,IAAI,CAACE,UAAL,CAAgBV,KAAvB,KAAiC,QAFjC,KAGC,CAACQ,IAAI,CAACE,UAAL,CAAgBE,KAAjB,IAA0B,CAACJ,IAAI,CAACE,UAAL,CAAgBE,KAAhB,CAAsBwB,aAHlD,CADF;AAMD;;AAEDC,EAAAA,eAAe,CAAC7B,IAAD,EAAiC;AAC9C,UAAMF,SAAS,GAAG,MAAM+B,eAAN,CAAsB7B,IAAtB,CAAlB;AACA,UAAMR,KAAK,GAAGQ,IAAI,CAACE,UAAL,CAAgBV,KAA9B;AAIAM,IAAAA,SAAS,CAACN,KAAV,CAAgBA,KAAhB,GAAwBA,KAAxB;AAEA,WAAOM,SAAP;AACD;;AAEDgC,EAAAA,cAAc,CACZlO,IADY,EAEZmO,eAFY,EAGZC,QAHY,EAIZnQ,GAJY,EAKN;AACN,UAAMiQ,cAAN,CAAqBlO,IAArB,EAA2BmO,eAA3B,EAA4CC,QAA5C,EAAsDnQ,GAAtD;AAEA,UAAMoQ,mBAAmB,GAAGrO,IAAI,CAACsO,UAAL,CAAgBC,GAAhB,CAAoBC,CAAC,IAC/C,KAAKvC,eAAL,CAAqBuC,CAArB,CAD0B,CAA5B;AAGAxO,IAAAA,IAAI,CAACa,IAAL,GAAYwN,mBAAmB,CAACI,MAApB,CAA2BzO,IAAI,CAACa,IAAhC,CAAZ;AACA,WAAOb,IAAI,CAACsO,UAAZ;AACD;;AAEDI,EAAAA,eAAe,CACbC,SADa,EAEbxD,MAFa,EAGbyD,WAHa,EAIbjC,OAJa,EAKbkC,aALa,EAMbC,iBANa,EAOP;AACN,SAAKC,WAAL,CACE5D,MADF,EAEEyD,WAFF,EAGEjC,OAHF,EAIEkC,aAJF,EAKEC,iBALF,EAME,aANF,EAOE,IAPF;;AASA,QAAI3D,MAAM,CAAC6D,cAAX,EAA2B;AAEzB7D,MAAAA,MAAM,CAACS,KAAP,CAAaoD,cAAb,GAA8B7D,MAAM,CAAC6D,cAArC;AACA,aAAO7D,MAAM,CAAC6D,cAAd;AACD;;AACDL,IAAAA,SAAS,CAAC9N,IAAV,CAAehB,IAAf,CAAoBsL,MAApB;AACD;;AAED8D,EAAAA,aAAa,CAACxB,mBAAD,EAAwD;AACnE,YAAQ,KAAK9N,KAAL,CAAWiB,IAAnB;AACE,WAAKsO,KAAE,CAACha,GAAR;AACA,WAAKga,KAAE,CAAC7Z,MAAR;AACE,eAAO,KAAKqW,kBAAL,CAAwB,KAAK/L,KAAL,CAAWiM,KAAnC,CAAP;;AAEF,WAAKsD,KAAE,CAAC9Z,MAAR;AACE,eAAO,KAAKiW,wBAAL,CAA8B,KAAK1L,KAAL,CAAWiM,KAAzC,CAAP;;AAEF,WAAKsD,KAAE,CAAC/Z,MAAR;AACE,eAAO,KAAKwW,wBAAL,CAA8B,KAAKhM,KAAL,CAAWiM,KAAzC,CAAP;;AAEF,WAAKsD,KAAE,CAACjV,KAAR;AACE,eAAO,KAAKyR,kBAAL,CAAwB,IAAxB,CAAP;;AAEF,WAAKwD,KAAE,CAAChV,KAAR;AACE,eAAO,KAAKwR,kBAAL,CAAwB,IAAxB,CAAP;;AAEF,WAAKwD,KAAE,CAAC/U,MAAR;AACE,eAAO,KAAKuR,kBAAL,CAAwB,KAAxB,CAAP;;AAEF;AACE,eAAO,MAAMuD,aAAN,CAAoBxB,mBAApB,CAAP;AArBJ;AAuBD;;AAEDzB,EAAAA,YAAY,CACVJ,KADU,EAEVhL,IAFU,EAGVuO,QAHU,EAIVvF,QAJU,EAKP;AACH,UAAM5J,IAAI,GAAG,MAAMgM,YAAN,CAAmBJ,KAAnB,EAA0BhL,IAA1B,EAAgCuO,QAAhC,EAA0CvF,QAA1C,CAAb;AACA5J,IAAAA,IAAI,CAACuM,GAAL,GAAWvM,IAAI,CAACwM,KAAL,CAAWD,GAAtB;AACA,WAAOvM,IAAI,CAACwM,KAAZ;AAEA,WAAOxM,IAAP;AACD;;AAEDoP,EAAAA,iBAAiB,CACfpP,IADe,EAEfqP,eAFe,EAGfC,QAAkB,GAAG,KAHN,EAIT;AACN,UAAMF,iBAAN,CAAwBpP,IAAxB,EAA8BqP,eAA9B,EAA+CC,QAA/C;AACAtP,IAAAA,IAAI,CAACsM,UAAL,GAAkBtM,IAAI,CAACa,IAAL,CAAUD,IAAV,KAAmB,gBAArC;AACD;;AAEDmO,EAAAA,WAAW,CACT/O,IADS,EAET4O,WAFS,EAGTjC,OAHS,EAITkC,aAJS,EAKTU,gBALS,EAMT3O,IANS,EAOT4O,YAAqB,GAAG,KAPf,EAQN;AACH,QAAIC,QAAQ,GAAG,KAAKC,SAAL,EAAf;AACAD,IAAAA,QAAQ,CAACvE,IAAT,GAAgBlL,IAAI,CAACkL,IAArB;AACAuE,IAAAA,QAAQ,GAAG,MAAMV,WAAN,CACTU,QADS,EAETb,WAFS,EAGTjC,OAHS,EAITkC,aAJS,EAKTU,gBALS,EAMT3O,IANS,EAOT4O,YAPS,CAAX;AASAC,IAAAA,QAAQ,CAAC7O,IAAT,GAAgB,oBAAhB;AACA,WAAO6O,QAAQ,CAACvE,IAAhB;AAEAlL,IAAAA,IAAI,CAAC4L,KAAL,GAAa6D,QAAb;AAEA7O,IAAAA,IAAI,GAAGA,IAAI,KAAK,aAAT,GAAyB,kBAAzB,GAA8CA,IAArD;AACA,WAAO,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsBY,IAAtB,CAAP;AACD;;AAEDgP,EAAAA,iBAAiB,CACf9C,IADe,EAEf8B,WAFe,EAGfjC,OAHe,EAIfkD,SAJe,EAKfC,WALe,EAME;AACjB,UAAM9P,IAAsB,GAAI,MAAM4P,iBAAN,CAC9B9C,IAD8B,EAE9B8B,WAF8B,EAG9BjC,OAH8B,EAI9BkD,SAJ8B,EAK9BC,WAL8B,CAAhC;;AAQA,QAAI9P,IAAJ,EAAU;AACRA,MAAAA,IAAI,CAACY,IAAL,GAAY,UAAZ;AACA,UAAMZ,IAAF,CAA6BkL,IAA7B,KAAsC,QAA1C,EAAoDlL,IAAI,CAACkL,IAAL,GAAY,MAAZ;AACpDlL,MAAAA,IAAI,CAAC2N,SAAL,GAAiB,KAAjB;AACD;;AAED,WAAQ3N,IAAR;AACD;;AAED+P,EAAAA,mBAAmB,CACjBjD,IADiB,EAEjBqC,QAFiB,EAGjBvF,QAHiB,EAIjBiG,SAJiB,EAKjBpC,mBALiB,EAME;AACnB,UAAMzN,IAAsB,GAAI,MAAM+P,mBAAN,CAC9BjD,IAD8B,EAE9BqC,QAF8B,EAG9BvF,QAH8B,EAI9BiG,SAJ8B,EAK9BpC,mBAL8B,CAAhC;;AAQA,QAAIzN,IAAJ,EAAU;AACRA,MAAAA,IAAI,CAACkL,IAAL,GAAY,MAAZ;AACAlL,MAAAA,IAAI,CAACY,IAAL,GAAY,UAAZ;AACD;;AAED,WAAQZ,IAAR;AACD;;AAEDgQ,EAAAA,YAAY,CAAChQ,IAAD,EAAuB;AACjC,QAAIiL,gBAAgB,CAACjL,IAAD,CAApB,EAA4B;AAC1B,WAAKgQ,YAAL,CAAkBhQ,IAAI,CAAC4L,KAAvB;AAEA,aAAO5L,IAAP;AACD;;AAED,WAAO,MAAMgQ,YAAN,CAAmBhQ,IAAnB,CAAP;AACD;;AAEDiQ,EAAAA,gCAAgC,CAACnD,IAAD,EAAeoD,MAAf,EAAgC;AAC9D,QAAIpD,IAAI,CAAC5B,IAAL,KAAc,KAAd,IAAuB4B,IAAI,CAAC5B,IAAL,KAAc,KAAzC,EAAgD;AAC9C,YAAM,KAAKhB,KAAL,CAAW4C,IAAI,CAACc,GAAL,CAAS5P,KAApB,EAA2BuD,MAAM,CAACyE,kBAAlC,CAAN;AACD,KAFD,MAEO,IAAI8G,IAAI,CAAC3B,MAAT,EAAiB;AACtB,YAAM,KAAKjB,KAAL,CAAW4C,IAAI,CAACc,GAAL,CAAS5P,KAApB,EAA2BuD,MAAM,CAAC0E,gBAAlC,CAAN;AACD,KAFM,MAEA;AACL,YAAMgK,gCAAN,CAAuCnD,IAAvC,EAA6CoD,MAA7C;AACD;AACF;;AAEDC,EAAAA,oBAAoB,CAClBnQ,IADkB,EAElBoQ,QAFkB,EAGJ;AACd,UAAMD,oBAAN,CAA2BnQ,IAA3B,EAAiCoQ,QAAjC;;AAEA,QAAIpQ,IAAI,CAACqQ,MAAL,CAAYzP,IAAZ,KAAqB,QAAzB,EAAmC;AAC/BZ,MAAAA,IAAF,CAA2CY,IAA3C,GAAkD,kBAAlD;AACEZ,MAAAA,IAAF,CAA2C1C,MAA3C,GAAoD0C,IAAI,CAACoB,SAAL,CAAe,CAAf,CAApD;AACA,aAAOpB,IAAI,CAACoB,SAAZ;AACA,aAAOpB,IAAI,CAACqQ,MAAZ;AACD;;AAED,WAAOrQ,IAAP;AACD;;AAEDsQ,EAAAA,oBAAoB,CAClBC,QADkB,EAElBC,mBAFkB,EAGZ;AAEN,QAAI,CAACD,QAAL,EAAe;AACb;AACD;;AAED,UAAMD,oBAAN,CAA2BC,QAA3B,EAAqCC,mBAArC;AACD;;AAEDC,EAAAA,WAAW,CAACzQ,IAAD,EAAe;AACxB,UAAMyQ,WAAN,CAAkBzQ,IAAlB;;AAEA,YAAQA,IAAI,CAACY,IAAb;AACE,WAAK,sBAAL;AACEZ,QAAAA,IAAI,CAAC0Q,QAAL,GAAgB,IAAhB;AACA;;AAEF,WAAK,wBAAL;AACE,YACE1Q,IAAI,CAAC2Q,UAAL,CAAgBtR,MAAhB,KAA2B,CAA3B,IACAW,IAAI,CAAC2Q,UAAL,CAAgB,CAAhB,EAAmB/P,IAAnB,KAA4B,0BAF9B,EAGE;AACAZ,UAAAA,IAAI,CAACY,IAAL,GAAY,sBAAZ;AACAZ,UAAAA,IAAI,CAAC0Q,QAAL,GAAgB1Q,IAAI,CAAC2Q,UAAL,CAAgB,CAAhB,EAAmBD,QAAnC;AACA,iBAAO1Q,IAAI,CAAC2Q,UAAZ;AACD;;AAED;AAfJ;;AAkBA,WAAO3Q,IAAP;AACD;;AA5ZsB,CAD3B;;ACVO,MAAM4Q,UAAN,CAAiB;AACtB1c,EAAAA,WAAW,CACTY,KADS,EAET+b,MAFS,EAGTC,aAHS,EAITC,QAJS,EAKT;AACA,SAAKjc,KAAL,GAAaA,KAAb;AACA,SAAK+b,MAAL,GAAc,CAAC,CAACA,MAAhB;AACA,SAAKC,aAAL,GAAqB,CAAC,CAACA,aAAvB;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACD;;AAXqB;AAmBxB,AAAO,MAAM9b,OAEZ,GAAG;AACF+b,EAAAA,cAAc,EAAE,IAAIJ,UAAJ,CAAe,GAAf,EAAoB,KAApB,CADd;AAEFK,EAAAA,eAAe,EAAE,IAAIL,UAAJ,CAAe,GAAf,EAAoB,IAApB,CAFf;AAGFM,EAAAA,aAAa,EAAE,IAAIN,UAAJ,CAAe,IAAf,EAAqB,KAArB,CAHb;AAIFO,EAAAA,cAAc,EAAE,IAAIP,UAAJ,CAAe,GAAf,EAAoB,KAApB,CAJd;AAKFQ,EAAAA,eAAe,EAAE,IAAIR,UAAJ,CAAe,GAAf,EAAoB,IAApB,CALf;AAMFja,EAAAA,QAAQ,EAAE,IAAIia,UAAJ,CAAe,GAAf,EAAoB,IAApB,EAA0B,IAA1B,EAAgCS,CAAC,IAAIA,CAAC,CAACC,aAAF,EAArC,CANR;AAOFC,EAAAA,kBAAkB,EAAE,IAAIX,UAAJ,CAAe,UAAf,EAA2B,IAA3B,CAPlB;AAQFY,EAAAA,iBAAiB,EAAE,IAAIZ,UAAJ,CAAe,UAAf,EAA2B,KAA3B;AARjB,CAFG;;AAeP1B,KAAE,CAAChZ,MAAH,CAAU1B,aAAV,GAA0B0a,KAAE,CAACnZ,MAAH,CAAUvB,aAAV,GAA0B,YAAW;AAC7D,MAAI,KAAKmL,KAAL,CAAW8R,OAAX,CAAmBpS,MAAnB,KAA8B,CAAlC,EAAqC;AACnC,SAAKM,KAAL,CAAW+R,WAAX,GAAyB,IAAzB;AACA;AACD;;AAED,MAAIC,GAAG,GAAG,KAAKhS,KAAL,CAAW8R,OAAX,CAAmBvQ,GAAnB,EAAV;;AACA,MAAIyQ,GAAG,KAAK1c,OAAK,CAAC+b,cAAd,IAAgC,KAAKY,UAAL,GAAkB9c,KAAlB,KAA4B,UAAhE,EAA4E;AAC1E6c,IAAAA,GAAG,GAAG,KAAKhS,KAAL,CAAW8R,OAAX,CAAmBvQ,GAAnB,EAAN;AACD;;AAED,OAAKvB,KAAL,CAAW+R,WAAX,GAAyB,CAACC,GAAG,CAACd,MAA9B;AACD,CAZD;;AAcA3B,KAAE,CAACta,IAAH,CAAQJ,aAAR,GAAwB,UAASqd,QAAT,EAAmB;AACzC,MAAIC,OAAO,GAAG,KAAd;;AACA,MAAID,QAAQ,KAAK3C,KAAE,CAAC3Y,GAApB,EAAyB;AACvB,QACG,KAAKoJ,KAAL,CAAWiM,KAAX,KAAqB,IAArB,IAA6B,CAAC,KAAKjM,KAAL,CAAW+R,WAA1C,IACC,KAAK/R,KAAL,CAAWiM,KAAX,KAAqB,OAArB,IAAgC,KAAKmG,SAAL,CAAeC,QAFlD,EAGE;AACAF,MAAAA,OAAO,GAAG,IAAV;AACD;AACF;;AACD,OAAKnS,KAAL,CAAW+R,WAAX,GAAyBI,OAAzB;;AAEA,MAAI,KAAKnS,KAAL,CAAWsS,UAAf,EAA2B;AACzB,SAAKtS,KAAL,CAAWsS,UAAX,GAAwB,KAAxB;AACD;AACF,CAfD;;AAiBA/C,KAAE,CAACtZ,MAAH,CAAUpB,aAAV,GAA0B,UAASqd,QAAT,EAAmB;AAC3C,OAAKlS,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CACE,KAAKqS,YAAL,CAAkBL,QAAlB,IAA8B5c,OAAK,CAAC+b,cAApC,GAAqD/b,OAAK,CAACgc,eAD7D;AAGA,OAAKtR,KAAL,CAAW+R,WAAX,GAAyB,IAAzB;AACD,CALD;;AAOAxC,KAAE,CAACpY,YAAH,CAAgBtC,aAAhB,GAAgC,YAAW;AACzC,OAAKmL,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CAAwB5K,OAAK,CAACic,aAA9B;AACA,OAAKvR,KAAL,CAAW+R,WAAX,GAAyB,IAAzB;AACD,CAHD;;AAKAxC,KAAE,CAACjZ,MAAH,CAAUzB,aAAV,GAA0B,UAASqd,QAAT,EAAmB;AAC3C,QAAMM,eAAe,GACnBN,QAAQ,KAAK3C,KAAE,CAACjW,GAAhB,IACA4Y,QAAQ,KAAK3C,KAAE,CAACnW,IADhB,IAEA8Y,QAAQ,KAAK3C,KAAE,CAACzV,KAFhB,IAGAoY,QAAQ,KAAK3C,KAAE,CAAC1V,MAJlB;AAKA,OAAKmG,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CACEsS,eAAe,GAAGld,OAAK,CAACkc,cAAT,GAA0Blc,OAAK,CAACmc,eADjD;AAGA,OAAKzR,KAAL,CAAW+R,WAAX,GAAyB,IAAzB;AACD,CAVD;;AAYAxC,KAAE,CAAC9X,MAAH,CAAU5C,aAAV,GAA0B,YAAW,EAArC;;AAIA0a,KAAE,CAAClW,SAAH,CAAaxE,aAAb,GAA6B0a,KAAE,CAACrV,MAAH,CAAUrF,aAAV,GAA0B,UAASqd,QAAT,EAAmB;AACxE,MACEA,QAAQ,CAACle,UAAT,IACAke,QAAQ,KAAK3C,KAAE,CAAC9Y,IADhB,IAEAyb,QAAQ,KAAK3C,KAAE,CAACrW,KAFhB,IAGA,EACEgZ,QAAQ,KAAK3C,KAAE,CAAChW,OAAhB,IACAiE,SAAS,CAACiV,IAAV,CAAe,KAAKjU,KAAL,CAAWkD,KAAX,CAAiB,KAAK1B,KAAL,CAAWqK,UAA5B,EAAwC,KAAKrK,KAAL,CAAW3B,KAAnD,CAAf,CAFF,CAHA,IAOA,EACE,CAAC6T,QAAQ,KAAK3C,KAAE,CAAC7Y,KAAhB,IAAyBwb,QAAQ,KAAK3C,KAAE,CAACtZ,MAA1C,KACA,KAAKgc,UAAL,OAAsB3c,OAAK,CAACod,MAF9B,CARF,EAYE;AACA,SAAK1S,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CAAwB5K,OAAK,CAACsc,kBAA9B;AACD,GAdD,MAcO;AACL,SAAK5R,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CAAwB5K,OAAK,CAACuc,iBAA9B;AACD;;AAED,OAAK7R,KAAL,CAAW+R,WAAX,GAAyB,KAAzB;AACD,CApBD;;AAsBAxC,KAAE,CAACrY,SAAH,CAAarC,aAAb,GAA6B,YAAW;AACtC,MAAI,KAAKod,UAAL,OAAsB3c,OAAK,CAAC0B,QAAhC,EAA0C;AACxC,SAAKgJ,KAAL,CAAW8R,OAAX,CAAmBvQ,GAAnB;AACD,GAFD,MAEO;AACL,SAAKvB,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CAAwB5K,OAAK,CAAC0B,QAA9B;AACD;;AACD,OAAKgJ,KAAL,CAAW+R,WAAX,GAAyB,KAAzB;AACD,CAPD;;AC/GA,IAAIY,4BAA4B,GAAG,urIAAnC;AAEA,IAAIC,uBAAuB,GAAG,sjFAA9B;AAEA,MAAMC,uBAAuB,GAAG,IAAInV,MAAJ,CAC9B,MAAMiV,4BAAN,GAAqC,GADP,CAAhC;AAGA,MAAMG,kBAAkB,GAAG,IAAIpV,MAAJ,CACzB,MAAMiV,4BAAN,GAAqCC,uBAArC,GAA+D,GADtC,CAA3B;AAIAD,4BAA4B,GAAGC,uBAAuB,GAAG,IAAzD;AASA,MAAMG,0BAA0B,GAAG,CAAC,CAAD,EAAG,EAAH,EAAM,CAAN,EAAQ,EAAR,EAAW,CAAX,EAAa,EAAb,EAAgB,CAAhB,EAAkB,CAAlB,EAAoB,CAApB,EAAsB,EAAtB,EAAyB,CAAzB,EAA2B,EAA3B,EAA8B,EAA9B,EAAiC,GAAjC,EAAqC,EAArC,EAAwC,EAAxC,EAA2C,GAA3C,EAA+C,EAA/C,EAAkD,CAAlD,EAAoD,EAApD,EAAuD,EAAvD,EAA0D,EAA1D,EAA6D,EAA7D,EAAgE,EAAhE,EAAmE,CAAnE,EAAqE,EAArE,EAAwE,EAAxE,EAA2E,EAA3E,EAA8E,CAA9E,EAAgF,EAAhF,EAAmF,CAAnF,EAAqF,CAArF,EAAuF,CAAvF,EAAyF,CAAzF,EAA2F,EAA3F,EAA8F,GAA9F,EAAkG,EAAlG,EAAqG,EAArG,EAAwG,CAAxG,EAA0G,EAA1G,EAA6G,CAA7G,EAA+G,EAA/G,EAAkH,CAAlH,EAAoH,EAApH,EAAuH,GAAvH,EAA2H,GAA3H,EAA+H,EAA/H,EAAkI,EAAlI,EAAqI,EAArI,EAAwI,CAAxI,EAA0I,GAA1I,EAA8I,CAA9I,EAAgJ,CAAhJ,EAAkJ,CAAlJ,EAAoJ,CAApJ,EAAsJ,EAAtJ,EAAyJ,CAAzJ,EAA2J,CAA3J,EAA6J,CAA7J,EAA+J,CAA/J,EAAiK,CAAjK,EAAmK,EAAnK,EAAsK,EAAtK,EAAyK,EAAzK,EAA4K,EAA5K,EAA+K,EAA/K,EAAkL,EAAlL,EAAqL,EAArL,EAAwL,CAAxL,EAA0L,CAA1L,EAA4L,EAA5L,EAA+L,EAA/L,EAAkM,EAAlM,EAAqM,EAArM,EAAwM,EAAxM,EAA2M,EAA3M,EAA8M,CAA9M,EAAgN,CAAhN,EAAkN,EAAlN,EAAqN,CAArN,EAAuN,EAAvN,EAA0N,CAA1N,EAA4N,CAA5N,EAA8N,CAA9N,EAAgO,CAAhO,EAAkO,EAAlO,EAAqO,EAArO,EAAwO,EAAxO,EAA2O,CAA3O,EAA6O,EAA7O,EAAgP,EAAhP,EAAmP,CAAnP,EAAqP,CAArP,EAAuP,EAAvP,EAA0P,EAA1P,EAA6P,EAA7P,EAAgQ,EAAhQ,EAAmQ,EAAnQ,EAAsQ,EAAtQ,EAAyQ,EAAzQ,EAA4Q,EAA5Q,EAA+Q,EAA/Q,EAAkR,GAAlR,EAAsR,EAAtR,EAAyR,EAAzR,EAA4R,EAA5R,EAA+R,EAA/R,EAAkS,EAAlS,EAAqS,EAArS,EAAwS,EAAxS,EAA2S,GAA3S,EAA+S,EAA/S,EAAkT,CAAlT,EAAoT,CAApT,EAAsT,EAAtT,EAAyT,EAAzT,EAA4T,EAA5T,EAA+T,CAA/T,EAAiU,CAAjU,EAAmU,EAAnU,EAAsU,GAAtU,EAA0U,EAA1U,EAA6U,EAA7U,EAAgV,EAAhV,EAAmV,EAAnV,EAAsV,EAAtV,EAAyV,EAAzV,EAA4V,EAA5V,EAA+V,EAA/V,EAAkW,EAAlW,EAAqW,EAArW,EAAwW,EAAxW,EAA2W,EAA3W,EAA8W,CAA9W,EAAgX,CAAhX,EAAkX,CAAlX,EAAoX,CAApX,EAAsX,EAAtX,EAAyX,CAAzX,EAA2X,CAA3X,EAA6X,EAA7X,EAAgY,EAAhY,EAAmY,EAAnY,EAAsY,CAAtY,EAAwY,EAAxY,EAA2Y,CAA3Y,EAA6Y,CAA7Y,EAA+Y,CAA/Y,EAAiZ,EAAjZ,EAAoZ,EAApZ,EAAuZ,CAAvZ,EAAyZ,EAAzZ,EAA4Z,EAA5Z,EAA+Z,CAA/Z,EAAia,CAAja,EAAma,CAAna,EAAqa,CAAra,EAAua,CAAva,EAAya,CAAza,EAA2a,EAA3a,EAA8a,CAA9a,EAAgb,CAAhb,EAAkb,CAAlb,EAAob,EAApb,EAAub,EAAvb,EAA0b,CAA1b,EAA4b,CAA5b,EAA8b,CAA9b,EAAgc,CAAhc,EAAkc,EAAlc,EAAqc,CAArc,EAAuc,CAAvc,EAAyc,CAAzc,EAA2c,CAA3c,EAA6c,CAA7c,EAA+c,CAA/c,EAAid,CAAjd,EAAmd,CAAnd,EAAqd,EAArd,EAAwd,CAAxd,EAA0d,EAA1d,EAA6d,CAA7d,EAA+d,GAA/d,EAAme,EAAne,EAAse,EAAte,EAAye,CAAze,EAA2e,EAA3e,EAA8e,CAA9e,EAAgf,EAAhf,EAAmf,EAAnf,EAAsf,EAAtf,EAAyf,CAAzf,EAA2f,CAA3f,EAA6f,CAA7f,EAA+f,GAA/f,EAAmgB,EAAngB,EAAsgB,EAAtgB,EAAygB,CAAzgB,EAA2gB,EAA3gB,EAA8gB,EAA9gB,EAAihB,EAAjhB,EAAohB,CAAphB,EAAshB,EAAthB,EAAyhB,EAAzhB,EAA4hB,EAA5hB,EAA+hB,CAA/hB,EAAiiB,EAAjiB,EAAoiB,EAApiB,EAAuiB,GAAviB,EAA2iB,EAA3iB,EAA8iB,GAA9iB,EAAkjB,EAAljB,EAAqjB,EAArjB,EAAwjB,CAAxjB,EAA0jB,CAA1jB,EAA4jB,CAA5jB,EAA8jB,CAA9jB,EAAgkB,CAAhkB,EAAkkB,CAAlkB,EAAokB,CAApkB,EAAskB,CAAtkB,EAAwkB,EAAxkB,EAA2kB,EAA3kB,EAA8kB,CAA9kB,EAAglB,CAAhlB,EAAklB,CAAllB,EAAolB,EAAplB,EAAulB,CAAvlB,EAAylB,CAAzlB,EAA2lB,EAA3lB,EAA8lB,EAA9lB,EAAimB,CAAjmB,EAAmmB,CAAnmB,EAAqmB,CAArmB,EAAumB,EAAvmB,EAA0mB,CAA1mB,EAA4mB,EAA5mB,EAA+mB,EAA/mB,EAAknB,CAAlnB,EAAonB,CAApnB,EAAsnB,EAAtnB,EAAynB,CAAznB,EAA2nB,EAA3nB,EAA8nB,EAA9nB,EAAioB,EAAjoB,EAAooB,CAApoB,EAAsoB,EAAtoB,EAAyoB,EAAzoB,EAA4oB,GAA5oB,EAAgpB,CAAhpB,EAAkpB,CAAlpB,EAAopB,EAAppB,EAAupB,EAAvpB,EAA0pB,CAA1pB,EAA4pB,EAA5pB,EAA+pB,EAA/pB,EAAkqB,GAAlqB,EAAsqB,CAAtqB,EAAwqB,CAAxqB,EAA0qB,CAA1qB,EAA4qB,CAA5qB,EAA8qB,EAA9qB,EAAirB,EAAjrB,EAAorB,CAAprB,EAAsrB,EAAtrB,EAAyrB,CAAzrB,EAA2rB,CAA3rB,EAA6rB,CAA7rB,EAA+rB,CAA/rB,EAAisB,EAAjsB,EAAosB,EAApsB,EAAusB,CAAvsB,EAAysB,GAAzsB,EAA6sB,EAA7sB,EAAgtB,GAAhtB,EAAotB,CAAptB,EAAstB,EAAttB,EAAytB,GAAztB,EAA6tB,GAA7tB,EAAiuB,GAAjuB,EAAquB,EAAruB,EAAwuB,GAAxuB,EAA4uB,IAA5uB,EAAivB,IAAjvB,EAAsvB,IAAtvB,EAA2vB,GAA3vB,EAA+vB,IAA/vB,EAAowB,GAApwB,EAAwwB,CAAxwB,EAA0wB,EAA1wB,EAA6wB,GAA7wB,EAAixB,EAAjxB,EAAoxB,EAApxB,EAAuxB,EAAvxB,EAA0xB,EAA1xB,EAA6xB,CAA7xB,EAA+xB,EAA/xB,EAAkyB,EAAlyB,EAAqyB,CAAryB,EAAuyB,EAAvyB,EAA0yB,GAA1yB,EAA8yB,EAA9yB,EAAizB,GAAjzB,EAAqzB,EAArzB,EAAwzB,CAAxzB,EAA0zB,CAA1zB,EAA4zB,EAA5zB,EAA+zB,EAA/zB,EAAk0B,EAAl0B,EAAq0B,CAAr0B,EAAu0B,CAAv0B,EAAy0B,CAAz0B,EAA20B,EAA30B,EAA80B,IAA90B,EAAm1B,CAAn1B,EAAq1B,IAAr1B,EAA01B,EAA11B,EAA61B,CAA71B,EAA+1B,IAA/1B,EAAo2B,GAAp2B,EAAw2B,EAAx2B,EAA22B,CAA32B,EAA62B,EAA72B,EAAg3B,CAAh3B,EAAk3B,CAAl3B,EAAo3B,GAAp3B,EAAw3B,IAAx3B,EAA63B,GAA73B,EAAi4B,CAAj4B,EAAm4B,EAAn4B,EAAs4B,CAAt4B,EAAw4B,CAAx4B,EAA04B,CAA14B,EAA44B,CAA54B,EAA84B,IAA94B,EAAm5B,EAAn5B,EAAs5B,CAAt5B,EAAw5B,EAAx5B,EAA25B,CAA35B,EAA65B,CAA75B,EAA+5B,CAA/5B,EAAi6B,CAAj6B,EAAm6B,CAAn6B,EAAq6B,CAAr6B,EAAu6B,CAAv6B,EAAy6B,CAAz6B,EAA26B,CAA36B,EAA66B,EAA76B,EAAg7B,CAAh7B,EAAk7B,CAAl7B,EAAo7B,CAAp7B,EAAs7B,CAAt7B,EAAw7B,CAAx7B,EAA07B,EAA17B,EAA67B,CAA77B,EAA+7B,CAA/7B,EAAi8B,CAAj8B,EAAm8B,CAAn8B,EAAq8B,CAAr8B,EAAu8B,CAAv8B,EAAy8B,CAAz8B,EAA28B,EAA38B,EAA88B,CAA98B,EAAg9B,CAAh9B,EAAk9B,CAAl9B,EAAo9B,CAAp9B,EAAs9B,CAAt9B,EAAw9B,CAAx9B,EAA09B,CAA19B,EAA49B,CAA59B,EAA89B,CAA99B,EAAg+B,GAAh+B,EAAo+B,CAAp+B,EAAs+B,EAAt+B,EAAy+B,CAAz+B,EAA2+B,EAA3+B,EAA8+B,CAA9+B,EAAg/B,EAAh/B,EAAm/B,CAAn/B,EAAq/B,EAAr/B,EAAw/B,CAAx/B,EAA0/B,EAA1/B,EAA6/B,CAA7/B,EAA+/B,EAA//B,EAAkgC,CAAlgC,EAAogC,EAApgC,EAAugC,CAAvgC,EAAygC,EAAzgC,EAA4gC,CAA5gC,EAA8gC,EAA9gC,EAAihC,CAAjhC,EAAmhC,EAAnhC,EAAshC,CAAthC,EAAwhC,CAAxhC,EAA0hC,IAA1hC,EAA+hC,EAA/hC,EAAkiC,EAAliC,EAAqiC,CAAriC,EAAuiC,EAAviC,EAA0iC,CAA1iC,EAA4iC,GAA5iC,EAAgjC,EAAhjC,EAAmjC,IAAnjC,EAAwjC,GAAxjC,EAA4jC,EAA5jC,EAA+jC,EAA/jC,EAAkkC,CAAlkC,EAAokC,CAApkC,EAAskC,IAAtkC,EAA2kC,CAA3kC,EAA6kC,CAA7kC,EAA+kC,EAA/kC,EAAklC,CAAllC,EAAolC,CAAplC,EAAslC,CAAtlC,EAAwlC,CAAxlC,EAA0lC,CAA1lC,EAA4lC,CAA5lC,EAA8lC,CAA9lC,EAAgmC,CAAhmC,EAAkmC,CAAlmC,EAAomC,CAApmC,EAAsmC,CAAtmC,EAAwmC,CAAxmC,EAA0mC,CAA1mC,EAA4mC,CAA5mC,EAA8mC,CAA9mC,EAAgnC,CAAhnC,EAAknC,CAAlnC,EAAonC,CAApnC,EAAsnC,CAAtnC,EAAwnC,CAAxnC,EAA0nC,CAA1nC,EAA4nC,CAA5nC,EAA8nC,CAA9nC,EAAgoC,CAAhoC,EAAkoC,CAAloC,EAAooC,CAApoC,EAAsoC,CAAtoC,EAAwoC,CAAxoC,EAA0oC,CAA1oC,EAA4oC,CAA5oC,EAA8oC,CAA9oC,EAAgpC,CAAhpC,EAAkpC,CAAlpC,EAAopC,CAAppC,EAAspC,CAAtpC,EAAwpC,CAAxpC,EAA0pC,CAA1pC,EAA4pC,CAA5pC,EAA8pC,CAA9pC,EAAgqC,CAAhqC,EAAkqC,CAAlqC,EAAoqC,CAApqC,EAAsqC,CAAtqC,EAAwqC,CAAxqC,EAA0qC,CAA1qC,EAA4qC,CAA5qC,EAA8qC,CAA9qC,EAAgrC,CAAhrC,EAAkrC,CAAlrC,EAAorC,CAAprC,EAAsrC,CAAtrC,EAAwrC,CAAxrC,EAA0rC,CAA1rC,EAA4rC,CAA5rC,EAA8rC,CAA9rC,EAAgsC,EAAhsC,EAAmsC,CAAnsC,EAAqsC,CAArsC,EAAusC,CAAvsC,EAAysC,CAAzsC,EAA2sC,CAA3sC,EAA6sC,EAA7sC,EAAgtC,IAAhtC,EAAqtC,KAArtC,EAA2tC,EAA3tC,EAA8tC,IAA9tC,EAAmuC,EAAnuC,EAAsuC,GAAtuC,EAA0uC,CAA1uC,EAA4uC,IAA5uC,EAAivC,EAAjvC,EAAovC,IAApvC,EAAyvC,IAAzvC,EAA8vC,GAA9vC,EAAkwC,IAAlwC,EAAuwC,IAAvwC,CAAnC;AAEA,MAAMC,qBAAqB,GAAG,CAAC,GAAD,EAAK,CAAL,EAAO,GAAP,EAAW,CAAX,EAAa,GAAb,EAAiB,CAAjB,EAAmB,GAAnB,EAAuB,CAAvB,EAAyB,IAAzB,EAA8B,CAA9B,EAAgC,CAAhC,EAAkC,CAAlC,EAAoC,CAApC,EAAsC,CAAtC,EAAwC,EAAxC,EAA2C,CAA3C,EAA6C,CAA7C,EAA+C,CAA/C,EAAiD,GAAjD,EAAqD,CAArD,EAAuD,GAAvD,EAA2D,CAA3D,EAA6D,CAA7D,EAA+D,CAA/D,EAAiE,GAAjE,EAAqE,CAArE,EAAuE,GAAvE,EAA2E,EAA3E,EAA8E,GAA9E,EAAkF,CAAlF,EAAoF,EAApF,EAAuF,EAAvF,EAA0F,EAA1F,EAA6F,CAA7F,EAA+F,EAA/F,EAAkG,CAAlG,EAAoG,EAApG,EAAuG,EAAvG,EAA0G,EAA1G,EAA6G,CAA7G,EAA+G,CAA/G,EAAiH,CAAjH,EAAmH,EAAnH,EAAsH,EAAtH,EAAyH,CAAzH,EAA2H,CAA3H,EAA6H,CAA7H,EAA+H,CAA/H,EAAiI,EAAjI,EAAoI,CAApI,EAAsI,EAAtI,EAAyI,CAAzI,EAA2I,EAA3I,EAA8I,EAA9I,EAAiJ,CAAjJ,EAAmJ,CAAnJ,EAAqJ,CAArJ,EAAuJ,EAAvJ,EAA0J,EAA1J,EAA6J,EAA7J,EAAgK,CAAhK,EAAkK,CAAlK,EAAoK,GAApK,EAAwK,EAAxK,EAA2K,CAA3K,EAA6K,CAA7K,EAA+K,CAA/K,EAAiL,CAAjL,EAAmL,EAAnL,EAAsL,CAAtL,EAAwL,CAAxL,EAA0L,CAA1L,EAA4L,CAA5L,EAA8L,CAA9L,EAAgM,CAAhM,EAAkM,CAAlM,EAAoM,EAApM,EAAuM,CAAvM,EAAyM,EAAzM,EAA4M,CAA5M,EAA8M,CAA9M,EAAgN,CAAhN,EAAkN,CAAlN,EAAoN,CAApN,EAAsN,GAAtN,EAA0N,EAA1N,EAA6N,EAA7N,EAAgO,CAAhO,EAAkO,CAAlO,EAAoO,CAApO,EAAsO,EAAtO,EAAyO,EAAzO,EAA4O,EAA5O,EAA+O,CAA/O,EAAiP,GAAjP,EAAqP,CAArP,EAAuP,CAAvP,EAAyP,CAAzP,EAA2P,EAA3P,EAA8P,CAA9P,EAAgQ,EAAhQ,EAAmQ,EAAnQ,EAAsQ,EAAtQ,EAAyQ,CAAzQ,EAA2Q,EAA3Q,EAA8Q,EAA9Q,EAAiR,CAAjR,EAAmR,CAAnR,EAAqR,EAArR,EAAwR,EAAxR,EAA2R,CAA3R,EAA6R,CAA7R,EAA+R,GAA/R,EAAmS,EAAnS,EAAsS,GAAtS,EAA0S,CAA1S,EAA4S,EAA5S,EAA+S,CAA/S,EAAiT,CAAjT,EAAmT,CAAnT,EAAqT,CAArT,EAAuT,CAAvT,EAAyT,CAAzT,EAA2T,CAA3T,EAA6T,CAA7T,EAA+T,CAA/T,EAAiU,EAAjU,EAAoU,CAApU,EAAsU,GAAtU,EAA0U,CAA1U,EAA4U,CAA5U,EAA8U,CAA9U,EAAgV,CAAhV,EAAkV,CAAlV,EAAoV,EAApV,EAAuV,CAAvV,EAAyV,EAAzV,EAA4V,CAA5V,EAA8V,CAA9V,EAAgW,CAAhW,EAAkW,CAAlW,EAAoW,CAApW,EAAsW,EAAtW,EAAyW,EAAzW,EAA4W,EAA5W,EAA+W,EAA/W,EAAkX,GAAlX,EAAsX,CAAtX,EAAwX,CAAxX,EAA0X,CAA1X,EAA4X,EAA5X,EAA+X,CAA/X,EAAiY,EAAjY,EAAoY,EAApY,EAAuY,CAAvY,EAAyY,EAAzY,EAA4Y,GAA5Y,EAAgZ,CAAhZ,EAAkZ,CAAlZ,EAAoZ,CAApZ,EAAsZ,CAAtZ,EAAwZ,CAAxZ,EAA0Z,CAA1Z,EAA4Z,CAA5Z,EAA8Z,CAA9Z,EAAga,CAAha,EAAka,CAAla,EAAoa,CAApa,EAAsa,EAAta,EAAya,CAAza,EAA2a,CAA3a,EAA6a,CAA7a,EAA+a,CAA/a,EAAib,CAAjb,EAAmb,CAAnb,EAAqb,CAArb,EAAub,GAAvb,EAA2b,CAA3b,EAA6b,KAA7b,EAAmc,CAAnc,EAAqc,GAArc,EAAyc,CAAzc,EAA2c,EAA3c,EAA8c,CAA9c,EAAgd,EAAhd,EAAmd,CAAnd,EAAqd,IAArd,EAA0d,CAA1d,EAA4d,CAA5d,EAA8d,EAA9d,EAAie,CAAje,EAAme,CAAne,EAAqe,EAAre,EAAwe,CAAxe,EAA0e,EAA1e,EAA6e,CAA7e,EAA+e,KAA/e,EAAqf,CAArf,EAAuf,IAAvf,EAA4f,CAA5f,EAA8f,CAA9f,EAAggB,CAAhgB,EAAkgB,CAAlgB,EAAogB,CAApgB,EAAsgB,CAAtgB,EAAwgB,CAAxgB,EAA0gB,EAA1gB,EAA6gB,CAA7gB,EAA+gB,GAA/gB,EAAmhB,CAAnhB,EAAqhB,IAArhB,EAA0hB,EAA1hB,EAA6hB,GAA7hB,EAAiiB,EAAjiB,EAAoiB,CAApiB,EAAsiB,EAAtiB,EAAyiB,CAAziB,EAA2iB,CAA3iB,EAA6iB,EAA7iB,EAAgjB,CAAhjB,EAAkjB,EAAljB,EAAqjB,CAArjB,EAAujB,CAAvjB,EAAyjB,EAAzjB,EAA4jB,IAA5jB,EAAikB,CAAjkB,EAAmkB,CAAnkB,EAAqkB,EAArkB,EAAwkB,CAAxkB,EAA0kB,CAA1kB,EAA4kB,CAA5kB,EAA8kB,CAA9kB,EAAglB,CAAhlB,EAAklB,CAAllB,EAAolB,GAAplB,EAAwlB,CAAxlB,EAA0lB,EAA1lB,EAA6lB,CAA7lB,EAA+lB,GAA/lB,EAAmmB,EAAnmB,EAAsmB,IAAtmB,EAA2mB,CAA3mB,EAA6mB,GAA7mB,EAAinB,CAAjnB,EAAmnB,CAAnnB,EAAqnB,CAArnB,EAAunB,IAAvnB,EAA4nB,CAA5nB,EAA8nB,MAA9nB,EAAqoB,GAAroB,CAA9B;;AAKA,SAASC,aAAT,CAAuBpV,IAAvB,EAAqCzI,GAArC,EAA2E;AACzE,MAAI4U,GAAG,GAAG,OAAV;;AACA,OAAK,IAAIvJ,CAAC,GAAG,CAAR,EAAWf,MAAM,GAAGtK,GAAG,CAACsK,MAA7B,EAAqCe,CAAC,GAAGf,MAAzC,EAAiDe,CAAC,IAAI,CAAtD,EAAyD;AACvDuJ,IAAAA,GAAG,IAAI5U,GAAG,CAACqL,CAAD,CAAV;AACA,QAAIuJ,GAAG,GAAGnM,IAAV,EAAgB,OAAO,KAAP;AAEhBmM,IAAAA,GAAG,IAAI5U,GAAG,CAACqL,CAAC,GAAG,CAAL,CAAV;AACA,QAAIuJ,GAAG,IAAInM,IAAX,EAAiB,OAAO,IAAP;AAClB;;AACD,SAAO,KAAP;AACD;;AAID,AAAO,SAASqV,iBAAT,CAA2BrV,IAA3B,EAAkD;AACvD,MAAIA,IAAI,KAAR,EAAiC,OAAOA,IAAI,OAAX;AACjC,MAAIA,IAAI,MAAR,EAAkC,OAAO,IAAP;AAClC,MAAIA,IAAI,KAAR,EAAiC,OAAOA,IAAI,OAAX;AACjC,MAAIA,IAAI,OAAR,EAAkC,OAAO,IAAP;;AAClC,MAAIA,IAAI,IAAI,MAAZ,EAAoB;AAClB,WACEA,IAAI,IAAI,IAAR,IAAgBgV,uBAAuB,CAACJ,IAAxB,CAA6BrG,MAAM,CAAC+G,YAAP,CAAoBtV,IAApB,CAA7B,CADlB;AAGD;;AACD,SAAOoV,aAAa,CAACpV,IAAD,EAAOkV,0BAAP,CAApB;AACD;AAID,AAAO,SAASK,gBAAT,CAA0BvV,IAA1B,EAAiD;AACtD,MAAIA,IAAI,KAAR,EAA6B,OAAOA,IAAI,OAAX;AAC7B,MAAIA,IAAI,KAAR,EAA4B,OAAO,IAAP;AAC5B,MAAIA,IAAI,KAAR,EAAiC,OAAO,KAAP;AACjC,MAAIA,IAAI,MAAR,EAAkC,OAAO,IAAP;AAClC,MAAIA,IAAI,KAAR,EAAiC,OAAOA,IAAI,OAAX;AACjC,MAAIA,IAAI,OAAR,EAAkC,OAAO,IAAP;;AAClC,MAAIA,IAAI,IAAI,MAAZ,EAAoB;AAClB,WAAOA,IAAI,IAAI,IAAR,IAAgBiV,kBAAkB,CAACL,IAAnB,CAAwBrG,MAAM,CAAC+G,YAAP,CAAoBtV,IAApB,CAAxB,CAAvB;AACD;;AACD,SACEoV,aAAa,CAACpV,IAAD,EAAOkV,0BAAP,CAAb,IACAE,aAAa,CAACpV,IAAD,EAAOmV,qBAAP,CAFf;AAID;;ACjFD,MAAMK,aAAa,GAAG;AACpB3e,EAAAA,OAAO,EAAE,CACP,OADO,EAEP,MAFO,EAGP,OAHO,EAIP,UAJO,EAKP,UALO,EAMP,SANO,EAOP,IAPO,EAQP,MARO,EASP,SATO,EAUP,KAVO,EAWP,UAXO,EAYP,IAZO,EAaP,QAbO,EAcP,QAdO,EAeP,OAfO,EAgBP,KAhBO,EAiBP,KAjBO,EAkBP,OAlBO,EAmBP,OAnBO,EAoBP,MApBO,EAqBP,KArBO,EAsBP,MAtBO,EAuBP,OAvBO,EAwBP,OAxBO,EAyBP,SAzBO,EA0BP,QA1BO,EA2BP,QA3BO,EA4BP,MA5BO,EA6BP,MA7BO,EA8BP,OA9BO,EA+BP,IA/BO,EAgCP,YAhCO,EAiCP,QAjCO,EAkCP,MAlCO,EAmCP,QAnCO,CADW;AAsCpB4e,EAAAA,MAAM,EAAE,CACN,YADM,EAEN,WAFM,EAGN,KAHM,EAIN,SAJM,EAKN,SALM,EAMN,WANM,EAON,QAPM,EAQN,QARM,EASN,OATM,CAtCY;AAiDpBC,EAAAA,UAAU,EAAE,CAAC,MAAD,EAAS,WAAT;AAjDQ,CAAtB;AAmDA,MAAMze,UAAQ,GAAG,IAAI0e,GAAJ,CAAQH,aAAa,CAAC3e,OAAtB,CAAjB;AACA,MAAM+e,sBAAsB,GAAG,IAAID,GAAJ,CAAQH,aAAa,CAACC,MAAtB,CAA/B;AACA,MAAMI,0BAA0B,GAAG,IAAIF,GAAJ,CAAQH,aAAa,CAACE,UAAtB,CAAnC;AAKA,AAAO,SAASI,cAAT,CAAwBC,IAAxB,EAAsCC,QAAtC,EAAkE;AACvE,SAAQA,QAAQ,IAAID,IAAI,KAAK,OAAtB,IAAkCA,IAAI,KAAK,MAAlD;AACD;AAOD,AAAO,SAASE,oBAAT,CAA8BF,IAA9B,EAA4CC,QAA5C,EAAwE;AAC7E,SAAOF,cAAc,CAACC,IAAD,EAAOC,QAAP,CAAd,IAAkCJ,sBAAsB,CAACrU,GAAvB,CAA2BwU,IAA3B,CAAzC;AACD;AAMD,AAAO,SAASG,4BAAT,CAAsCH,IAAtC,EAA6D;AAClE,SAAOF,0BAA0B,CAACtU,GAA3B,CAA+BwU,IAA/B,CAAP;AACD;AAOD,AAAO,SAASI,wBAAT,CACLJ,IADK,EAELC,QAFK,EAGI;AACT,SACEC,oBAAoB,CAACF,IAAD,EAAOC,QAAP,CAApB,IAAwCE,4BAA4B,CAACH,IAAD,CADtE;AAGD;AAED,AAAO,SAASK,SAAT,CAAmBL,IAAnB,EAA0C;AAC/C,SAAO9e,UAAQ,CAACsK,GAAT,CAAawU,IAAb,CAAP;AACD;;ACjFM,MAAMM,yBAAyB,GAAG,iBAAlC;AAIP,AAAO,SAASC,eAAT,CAAyBC,OAAzB,EAA0CC,IAA1C,EAAiE;AACtE,SAAOD,OAAO,OAAP,IAAgCC,IAAI,OAA3C;AACD;;ACID,MAAMC,aAAa,GAAG,IAAId,GAAJ,CAAQ,CAC5B,GAD4B,EAE5B,KAF4B,EAG5B,MAH4B,EAI5B,SAJ4B,EAK5B,OAL4B,EAM5B,SAN4B,EAO5B,OAP4B,EAQ5B,WAR4B,EAS5B,OAT4B,EAU5B,MAV4B,EAW5B,QAX4B,EAY5B,QAZ4B,EAa5B,QAb4B,EAc5B,MAd4B,EAe5B,QAf4B,EAgB5B,MAhB4B,CAAR,CAAtB;AAqBA,MAAMe,UAAU,GAAG1S,MAAM,CAACC,MAAP,CAAc;AAC/B0S,EAAAA,yBAAyB,EACvB,gFAF6B;AAG/BC,EAAAA,0BAA0B,EACxB,uKAJ6B;AAK/BC,EAAAA,kBAAkB,EAAE,mCALW;AAM/BC,EAAAA,mBAAmB,EACjB,yDAP6B;AAQ/BC,EAAAA,4BAA4B,EAC1B,qEAT6B;AAU/BC,EAAAA,6BAA6B,EAAE,8CAVA;AAW/BC,EAAAA,+BAA+B,EAC7B,qGAZ6B;AAa/BC,EAAAA,uBAAuB,EACrB,mGAd6B;AAe/BC,EAAAA,4BAA4B,EAC1B,8KAhB6B;AAiB/BC,EAAAA,uBAAuB,EACrB,kGAlB6B;AAmB/BC,EAAAA,sCAAsC,EACpC,sGApB6B;AAqB/BC,EAAAA,uCAAuC,EACrC,+EAtB6B;AAuB/BC,EAAAA,sCAAsC,EACpC,oEAxB6B;AAyB/BC,EAAAA,uCAAuC,EACrC,gHA1B6B;AA2B/BC,EAAAA,qBAAqB,EACnB,0HA5B6B;AA6B/BC,EAAAA,8BAA8B,EAC5B,yEA9B6B;AA+B/BC,EAAAA,yCAAyC,EACvC,6GAhC6B;AAiC/BC,EAAAA,mCAAmC,EACjC,uKAlC6B;AAmC/BC,EAAAA,kBAAkB,EAChB,4EApC6B;AAqC/BC,EAAAA,sBAAsB,EACpB,yEAtC6B;AAuC/BC,EAAAA,eAAe,EAAE,8CAvCc;AAwC/BC,EAAAA,mCAAmC,EACjC,wFAzC6B;AA0C/BC,EAAAA,uBAAuB,EACrB,yGA3C6B;AA4C/BC,EAAAA,mBAAmB,EACjB,iEA7C6B;AA8C/BC,EAAAA,iBAAiB,EAAE,wDA9CY;AA+C/BC,EAAAA,sBAAsB,EACpB,gFAhD6B;AAiD/BC,EAAAA,cAAc,EAAE,wCAjDe;AAkD/BC,EAAAA,qBAAqB,EACnB,kHAnD6B;AAoD/BC,EAAAA,iBAAiB,EACf,qEArD6B;AAsD/BC,EAAAA,iCAAiC,EAC/B,qEAvD6B;AAwD/BC,EAAAA,sBAAsB,EAAE,6BAxDO;AAyD/BC,EAAAA,4BAA4B,EAC1B,uDA1D6B;AA2D/BC,EAAAA,kCAAkC,EAChC,uDA5D6B;AA6D/BC,EAAAA,oBAAoB,EAClB,iEA9D6B;AA+D/BC,EAAAA,4BAA4B,EAC1B,iDAhE6B;AAiE/BC,EAAAA,iCAAiC,EAC/B,kEAlE6B;AAmE/BC,EAAAA,4BAA4B,EAC1B,wDApE6B;AAqE/BC,EAAAA,mCAAmC,EACjC,kEAtE6B;AAuE/BC,EAAAA,uBAAuB,EAAE;AAvEM,CAAd,CAAnB;;AA2EA,SAASC,cAAT,CAAwBC,WAAxB,EAAsD;AACpD,SACEA,WAAW,CAAC/V,IAAZ,KAAqB,6BAArB,IACC+V,WAAW,CAAC/V,IAAZ,KAAqB,0BAArB,KACE,CAAC+V,WAAW,CAACC,WAAb,IACED,WAAW,CAACC,WAAZ,CAAwBhW,IAAxB,KAAiC,WAAjC,IACC+V,WAAW,CAACC,WAAZ,CAAwBhW,IAAxB,KAAiC,sBAHtC,CAFH;AAOD;;AAED,SAASiW,iBAAT,CAA2B7W,IAA3B,EAAkD;AAChD,SAAOA,IAAI,CAAC8W,UAAL,KAAoB,MAApB,IAA8B9W,IAAI,CAAC8W,UAAL,KAAoB,QAAzD;AACD;;AAED,SAASC,oBAAT,CAA8BpX,KAA9B,EAAqD;AACnD,SACE,CAACA,KAAK,CAACiB,IAAN,KAAesO,KAAE,CAACta,IAAlB,IAA0B,CAAC,CAAC+K,KAAK,CAACiB,IAAN,CAAWvM,OAAxC,KAAoDsL,KAAK,CAACiM,KAAN,KAAgB,MADtE;AAGD;;AAED,MAAMoL,iBAAiB,GAAG;AACxBC,EAAAA,KAAK,EAAE,oBADiB;AAExBC,EAAAA,GAAG,EAAE,oBAFmB;AAGxBtW,EAAAA,IAAI,EAAE,aAHkB;AAIxBuW,EAAAA,SAAS,EAAE;AAJa,CAA1B;;AAQA,SAASC,SAAT,CACEC,IADF,EAEEjF,IAFF,EAGc;AACZ,QAAMkF,KAAK,GAAG,EAAd;AACA,QAAMC,KAAK,GAAG,EAAd;;AACA,OAAK,IAAInX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiX,IAAI,CAAChY,MAAzB,EAAiCe,CAAC,EAAlC,EAAsC;AACpC,KAACgS,IAAI,CAACiF,IAAI,CAACjX,CAAD,CAAL,EAAUA,CAAV,EAAaiX,IAAb,CAAJ,GAAyBC,KAAzB,GAAiCC,KAAlC,EAAyC1X,IAAzC,CAA8CwX,IAAI,CAACjX,CAAD,CAAlD;AACD;;AACD,SAAO,CAACkX,KAAD,EAAQC,KAAR,CAAP;AACD;;AAED,MAAMC,iBAAiB,GAAG,wBAA1B;AAgBA,YAAgBpM,UAAD,IACb,cAAcA,UAAd,CAAyB;AAMvBlX,EAAAA,WAAW,CAACW,OAAD,EAAoBsJ,KAApB,EAAmC;AAC5C,UAAMtJ,OAAN,EAAesJ,KAAf;AACA,SAAKsZ,UAAL,GAAkB/W,SAAlB;AACD;;AAEDgX,EAAAA,gBAAgB,GAAY;AAC1B,WAAO,KAAK1Y,eAAL,CAAqB,MAArB,EAA6B,KAA7B,KAAuC,KAAKyY,UAAL,KAAoB,MAAlE;AACD;;AAEDE,EAAAA,gBAAgB,GAAY;AAC1B,WAAO,CAAC,CAAC,KAAK3Y,eAAL,CAAqB,MAArB,EAA6B,OAA7B,CAAT;AACD;;AAED4Y,EAAAA,WAAW,CAAChX,IAAD,EAAkBiX,GAAlB,EAAkC;AAC3C,QACEjX,IAAI,KAAKsO,KAAE,CAAC7Z,MAAZ,IACAuL,IAAI,KAAKsO,KAAE,CAAC9Y,IADZ,IAEAwK,IAAI,KAAKsO,KAAE,CAACjY,oBAHd,EAIE;AACA,UAAI,KAAKwgB,UAAL,KAAoB/W,SAAxB,EAAmC;AACjC,aAAK+W,UAAL,GAAkB,IAAlB;AACD;AACF;;AACD,WAAO,MAAMG,WAAN,CAAkBhX,IAAlB,EAAwBiX,GAAxB,CAAP;AACD;;AAEDtY,EAAAA,UAAU,CAACC,OAAD,EAA2B;AACnC,QAAI,KAAKiY,UAAL,KAAoB/W,SAAxB,EAAmC;AAEjC,YAAMoX,OAAO,GAAGN,iBAAiB,CAAChZ,IAAlB,CAAuBgB,OAAO,CAACoM,KAA/B,CAAhB;;AACA,UAAI,CAACkM,OAAL,EAAc,CAAd,MAEO,IAAIA,OAAO,CAAC,CAAD,CAAP,KAAe,MAAnB,EAA2B;AAChC,aAAKL,UAAL,GAAkB,MAAlB;AACD,OAFM,MAEA,IAAIK,OAAO,CAAC,CAAD,CAAP,KAAe,QAAnB,EAA6B;AAClC,aAAKL,UAAL,GAAkB,QAAlB;AACD,OAFM,MAEA;AACL,cAAM,IAAIM,KAAJ,CAAU,wBAAV,CAAN;AACD;AACF;;AACD,WAAO,MAAMxY,UAAN,CAAiBC,OAAjB,CAAP;AACD;;AAEDwY,EAAAA,wBAAwB,CAACC,GAAD,EAA8B;AACpD,UAAMC,SAAS,GAAG,KAAKvY,KAAL,CAAWwY,MAA7B;AACA,SAAKxY,KAAL,CAAWwY,MAAX,GAAoB,IAApB;AACA,SAAKC,MAAL,CAAYH,GAAG,IAAI/I,KAAE,CAAC7Y,KAAtB;AAEA,UAAMuK,IAAI,GAAG,KAAKyX,aAAL,EAAb;AACA,SAAK1Y,KAAL,CAAWwY,MAAX,GAAoBD,SAApB;AACA,WAAOtX,IAAP;AACD;;AAED0X,EAAAA,kBAAkB,GAAe;AAC/B,UAAMtY,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,UAAM6I,SAAS,GAAG,KAAK5Y,KAAL,CAAWiK,QAA7B;AACA,UAAM4O,SAAS,GAAG,KAAK7Y,KAAL,CAAW3B,KAA7B;AACA,SAAKoa,MAAL,CAAYlJ,KAAE,CAAChX,MAAf;AACA,UAAMugB,SAAS,GAAG,KAAK9Y,KAAL,CAAWiK,QAA7B;AACA,SAAK8O,gBAAL,CAAsB,QAAtB;;AAEA,QACEH,SAAS,CAAC3a,IAAV,KAAmB6a,SAAS,CAAC7a,IAA7B,IACA2a,SAAS,CAACza,MAAV,KAAqB2a,SAAS,CAAC3a,MAAV,GAAmB,CAF1C,EAGE;AACA,WAAKoM,KAAL,CAAWsO,SAAX,EAAsBtE,UAAU,CAACiC,kCAAjC;AACD;;AACD,QAAI,KAAKwC,GAAL,CAASzJ,KAAE,CAACjZ,MAAZ,CAAJ,EAAyB;AACvB+J,MAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAKgN,eAAL,EAAb;AACA,WAAKR,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AACA,aAAO,KAAKyZ,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD,KAJD,MAIO;AACL,aAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;AACF;;AAED6Y,EAAAA,oCAAoC,GAAoC;AACtE,UAAMX,SAAS,GAAG,KAAKvY,KAAL,CAAWwY,MAA7B;AACA,SAAKxY,KAAL,CAAWwY,MAAX,GAAoB,IAApB;AACA,SAAKC,MAAL,CAAYlJ,KAAE,CAAC7Y,KAAf;AACA,QAAIuK,IAAI,GAAG,IAAX;AACA,QAAIkY,SAAS,GAAG,IAAhB;;AACA,QAAI,KAAKxa,KAAL,CAAW4Q,KAAE,CAAChX,MAAd,CAAJ,EAA2B;AACzB,WAAKyH,KAAL,CAAWwY,MAAX,GAAoBD,SAApB;AACAY,MAAAA,SAAS,GAAG,KAAKR,kBAAL,EAAZ;AACD,KAHD,MAGO;AACL1X,MAAAA,IAAI,GAAG,KAAKyX,aAAL,EAAP;AACA,WAAK1Y,KAAL,CAAWwY,MAAX,GAAoBD,SAApB;;AACA,UAAI,KAAK5Z,KAAL,CAAW4Q,KAAE,CAAChX,MAAd,CAAJ,EAA2B;AACzB4gB,QAAAA,SAAS,GAAG,KAAKR,kBAAL,EAAZ;AACD;AACF;;AACD,WAAO,CAAC1X,IAAD,EAAOkY,SAAP,CAAP;AACD;;AAEDC,EAAAA,qBAAqB,CAAC/Y,IAAD,EAA+C;AAClE,SAAKgU,IAAL;AACA,SAAKgF,qBAAL,CAA2BhZ,IAA3B,EAA6C,IAA7C;AACA,WAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAEDiZ,EAAAA,wBAAwB,CACtBjZ,IADsB,EAEC;AACvB,SAAKgU,IAAL;AAEA,UAAMkF,EAAE,GAAIlZ,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,EAAtB;AAEA,UAAMC,QAAQ,GAAG,KAAK1J,SAAL,EAAjB;AACA,UAAM2J,aAAa,GAAG,KAAK3J,SAAL,EAAtB;;AAEA,QAAI,KAAK4J,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BF,MAAAA,QAAQ,CAACpK,cAAT,GAA0B,KAAKuK,iCAAL,EAA1B;AACD,KAFD,MAEO;AACLH,MAAAA,QAAQ,CAACpK,cAAT,GAA0B,IAA1B;AACD;;AAED,SAAKoJ,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AACA,UAAMujB,GAAG,GAAG,KAAKC,2BAAL,EAAZ;AACAL,IAAAA,QAAQ,CAAChP,MAAT,GAAkBoP,GAAG,CAACpP,MAAtB;AACAgP,IAAAA,QAAQ,CAACM,IAAT,GAAgBF,GAAG,CAACE,IAApB;AACA,SAAKtB,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AAEA,KAEEkjB,QAAQ,CAACO,UAFX,EAIE3Z,IAAI,CAAC8Y,SAJP,IAKI,KAAKD,oCAAL,EALJ;AAOAQ,IAAAA,aAAa,CAACO,cAAd,GAA+B,KAAKjK,UAAL,CAC7ByJ,QAD6B,EAE7B,wBAF6B,CAA/B;AAKAF,IAAAA,EAAE,CAACU,cAAH,GAAoB,KAAKjK,UAAL,CAAgB0J,aAAhB,EAA+B,gBAA/B,CAApB;AAEA,SAAKQ,gBAAL,CAAsBX,EAAtB;AACA,SAAKY,SAAL;AAEA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAED+Z,EAAAA,gBAAgB,CACd/Z,IADc,EAEdga,YAFc,EAGC;AACf,QAAI,KAAK1b,KAAL,CAAW4Q,KAAE,CAACrV,MAAd,CAAJ,EAA2B;AACzB,aAAO,KAAKkf,qBAAL,CAA2B/Y,IAA3B,CAAP;AACD,KAFD,MAEO,IAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAClW,SAAd,CAAJ,EAA8B;AACnC,aAAO,KAAKigB,wBAAL,CAA8BjZ,IAA9B,CAAP;AACD,KAFM,MAEA,IAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC5V,IAAd,CAAJ,EAAyB;AAC9B,aAAO,KAAK2gB,wBAAL,CAA8Bja,IAA9B,CAAP;AACD,KAFM,MAEA,IAAI,KAAKka,aAAL,CAAmB,QAAnB,CAAJ,EAAkC;AACvC,UAAI,KAAK5b,KAAL,CAAW4Q,KAAE,CAAC3Y,GAAd,CAAJ,EAAwB;AACtB,eAAO,KAAK4jB,6BAAL,CAAmCna,IAAnC,CAAP;AACD,OAFD,MAEO;AACL,YAAIga,YAAJ,EAAkB;AAChB,eAAK9P,KAAL,CAAW,KAAKvK,KAAL,CAAWkK,YAAtB,EAAoCqK,UAAU,CAACwB,mBAA/C;AACD;;AACD,eAAO,KAAK0E,sBAAL,CAA4Bpa,IAA5B,CAAP;AACD;AACF,KATM,MASA,IAAI,KAAKqa,YAAL,CAAkB,MAAlB,CAAJ,EAA+B;AACpC,aAAO,KAAKC,yBAAL,CAA+Bta,IAA/B,CAAP;AACD,KAFM,MAEA,IAAI,KAAKqa,YAAL,CAAkB,QAAlB,CAAJ,EAAiC;AACtC,aAAO,KAAKE,0BAAL,CAAgCva,IAAhC,CAAP;AACD,KAFM,MAEA,IAAI,KAAKqa,YAAL,CAAkB,WAAlB,CAAJ,EAAoC;AACzC,aAAO,KAAKG,yBAAL,CAA+Bxa,IAA/B,CAAP;AACD,KAFM,MAEA,IAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAACnV,OAAd,CAAJ,EAA4B;AACjC,aAAO,KAAK0gB,iCAAL,CAAuCza,IAAvC,EAA6Cga,YAA7C,CAAP;AACD,KAFM,MAEA;AACL,YAAM,KAAKU,UAAL,EAAN;AACD;AACF;;AAEDT,EAAAA,wBAAwB,CACtBja,IADsB,EAEC;AACvB,SAAKgU,IAAL;AACAhU,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKyB,kCAAL,CACmB,IADnB,CAAV;AAGA,SAAKC,KAAL,CAAWC,WAAX,CAAuB7a,IAAI,CAACkZ,EAAL,CAAQtkB,IAA/B,EAAqCoH,QAArC,EAA+CgE,IAAI,CAACkZ,EAAL,CAAQlb,KAAvD;AACA,SAAK8b,SAAL;AACA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAEDoa,EAAAA,sBAAsB,CAACpa,IAAD,EAAiD;AACrE,SAAK4a,KAAL,CAAWE,KAAX,CAAiBrgB,WAAjB;;AAEA,QAAI,KAAK6D,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAAJ,EAA2B;AACzB2K,MAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKjK,aAAL,EAAV;AACD,KAFD,MAEO;AACLjP,MAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,EAAV;AACD;;AAED,UAAM4B,QAAQ,GAAI/a,IAAI,CAACa,IAAL,GAAY,KAAK6O,SAAL,EAA9B;AACA,UAAM7O,IAAI,GAAIka,QAAQ,CAACla,IAAT,GAAgB,EAA9B;AACA,SAAKuX,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;;AACA,WAAO,CAAC,KAAK0I,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAR,EAA+B;AAC7B,UAAIglB,QAAQ,GAAG,KAAKrL,SAAL,EAAf;;AAEA,UAAI,KAAKpR,KAAL,CAAW4Q,KAAE,CAAClV,OAAd,CAAJ,EAA4B;AAC1B,aAAKga,IAAL;;AACA,YAAI,CAAC,KAAKqG,YAAL,CAAkB,MAAlB,CAAD,IAA8B,CAAC,KAAK/b,KAAL,CAAW4Q,KAAE,CAAC5U,OAAd,CAAnC,EAA2D;AACzD,eAAK4P,KAAL,CACE,KAAKvK,KAAL,CAAWkK,YADb,EAEEqK,UAAU,CAACsB,mCAFb;AAID;;AACD,aAAKwF,WAAL,CAAiBD,QAAjB;AACD,OATD,MASO;AACL,aAAKrC,gBAAL,CACE,SADF,EAEExE,UAAU,CAACsC,mCAFb;AAKAuE,QAAAA,QAAQ,GAAG,KAAKhB,gBAAL,CAAsBgB,QAAtB,EAAgC,IAAhC,CAAX;AACD;;AAEDla,MAAAA,IAAI,CAAChB,IAAL,CAAUkb,QAAV;AACD;;AAED,SAAKH,KAAL,CAAWK,IAAX;AAEA,SAAK7C,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AAEA,SAAK4Z,UAAL,CAAgBoL,QAAhB,EAA0B,gBAA1B;AAEA,QAAI7P,IAAI,GAAG,IAAX;AACA,QAAIgQ,eAAe,GAAG,KAAtB;AACAra,IAAAA,IAAI,CAACyM,OAAL,CAAaqJ,WAAW,IAAI;AAC1B,UAAID,cAAc,CAACC,WAAD,CAAlB,EAAiC;AAC/B,YAAIzL,IAAI,KAAK,UAAb,EAAyB;AACvB,eAAKhB,KAAL,CACEyM,WAAW,CAAC3Y,KADd,EAEEkW,UAAU,CAACE,0BAFb;AAID;;AACDlJ,QAAAA,IAAI,GAAG,IAAP;AACD,OARD,MAQO,IAAIyL,WAAW,CAAC/V,IAAZ,KAAqB,sBAAzB,EAAiD;AACtD,YAAIsa,eAAJ,EAAqB;AACnB,eAAKhR,KAAL,CACEyM,WAAW,CAAC3Y,KADd,EAEEkW,UAAU,CAACM,6BAFb;AAID;;AACD,YAAItJ,IAAI,KAAK,IAAb,EAAmB;AACjB,eAAKhB,KAAL,CACEyM,WAAW,CAAC3Y,KADd,EAEEkW,UAAU,CAACE,0BAFb;AAID;;AACDlJ,QAAAA,IAAI,GAAG,UAAP;AACAgQ,QAAAA,eAAe,GAAG,IAAlB;AACD;AACF,KAzBD;AA2BAlb,IAAAA,IAAI,CAACkL,IAAL,GAAYA,IAAI,IAAI,UAApB;AACA,WAAO,KAAKyE,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAEDya,EAAAA,iCAAiC,CAC/Bza,IAD+B,EAE/Bga,YAF+B,EAGC;AAChC,SAAK5B,MAAL,CAAYlJ,KAAE,CAACnV,OAAf;;AAEA,QAAI,KAAK4e,GAAL,CAASzJ,KAAE,CAACvW,QAAZ,CAAJ,EAA2B;AACzB,UAAI,KAAK2F,KAAL,CAAW4Q,KAAE,CAAClW,SAAd,KAA4B,KAAKsF,KAAL,CAAW4Q,KAAE,CAACrV,MAAd,CAAhC,EAAuD;AAGrDmG,QAAAA,IAAI,CAAC4W,WAAL,GAAmB,KAAKmD,gBAAL,CAAsB,KAAKrK,SAAL,EAAtB,CAAnB;AACD,OAJD,MAIO;AAEL1P,QAAAA,IAAI,CAAC4W,WAAL,GAAmB,KAAKyB,aAAL,EAAnB;AACA,aAAKyB,SAAL;AACD;;AACD9Z,MAAAA,IAAI,CAACmb,OAAL,GAAe,IAAf;AAEA,aAAO,KAAKxL,UAAL,CAAgB3P,IAAhB,EAAsB,0BAAtB,CAAP;AACD,KAbD,MAaO;AACL,UACE,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC3V,MAAd,KACA,KAAK6hB,KAAL,EADA,IAEC,CAAC,KAAKf,YAAL,CAAkB,MAAlB,KAA6B,KAAKA,YAAL,CAAkB,WAAlB,CAA9B,KACC,CAACL,YAJL,EAKE;AACA,cAAM7lB,KAAK,GAAG,KAAKwL,KAAL,CAAWiM,KAAzB;AACA,cAAMyP,UAAU,GAAGrE,iBAAiB,CAAC7iB,KAAD,CAApC;AACA,cAAM,KAAK+V,KAAL,CACJ,KAAKvK,KAAL,CAAW3B,KADP,EAEJkW,UAAU,CAACqC,4BAFP,EAGJpiB,KAHI,EAIJknB,UAJI,CAAN;AAMD;;AAED,UACE,KAAK/c,KAAL,CAAW4Q,KAAE,CAAC5V,IAAd,KACA,KAAKgF,KAAL,CAAW4Q,KAAE,CAAClW,SAAd,CADA,IAEA,KAAKsF,KAAL,CAAW4Q,KAAE,CAACrV,MAAd,CAFA,IAGA,KAAKwgB,YAAL,CAAkB,QAAlB,CAJF,EAKE;AACAra,UAAAA,IAAI,CAAC4W,WAAL,GAAmB,KAAKmD,gBAAL,CAAsB,KAAKrK,SAAL,EAAtB,CAAnB;AACA1P,UAAAA,IAAI,CAACmb,OAAL,GAAe,KAAf;AAEA,iBAAO,KAAKxL,UAAL,CAAgB3P,IAAhB,EAAsB,0BAAtB,CAAP;AACD,SAVD,MAUO,IACL,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC/W,IAAd,KACA,KAAKmG,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CADA,IAEA,KAAKykB,YAAL,CAAkB,WAAlB,CAFA,IAGA,KAAKA,YAAL,CAAkB,MAAlB,CAHA,IAIA,KAAKA,YAAL,CAAkB,QAAlB,CALK,EAML;AACAra,UAAAA,IAAI,GAAG,KAAKyQ,WAAL,CAAiBzQ,IAAjB,CAAP;;AACA,cAAIA,IAAI,CAACY,IAAL,KAAc,wBAAlB,EAA4C;AAG1CZ,YAAAA,IAAI,CAACY,IAAL,GAAY,mBAAZ;AAEAZ,YAAAA,IAAI,CAACmb,OAAL,GAAe,KAAf;AACA,mBAAOnb,IAAI,CAACsb,UAAZ;AACD;;AAGDtb,UAAAA,IAAI,CAACY,IAAL,GAAY,YAAYZ,IAAI,CAACY,IAA7B;AAEA,iBAAOZ,IAAP;AACD;AACF;;AAED,UAAM,KAAK0a,UAAL,EAAN;AACD;;AAEDP,EAAAA,6BAA6B,CAC3Bna,IAD2B,EAEC;AAC5B,SAAKgU,IAAL;AACA,SAAK0E,gBAAL,CAAsB,SAAtB;AACA1Y,IAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAK2B,uBAAL,EAAtB;AACA,SAAKzB,SAAL;AAEA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;AACD;;AAEDsa,EAAAA,yBAAyB,CACvBta,IADuB,EAEC;AACxB,SAAKgU,IAAL;AACA,SAAKwH,kBAAL,CAAwBxb,IAAxB;AAEAA,IAAAA,IAAI,CAACY,IAAL,GAAY,kBAAZ;AACA,WAAOZ,IAAP;AACD;;AAEDua,EAAAA,0BAA0B,CACxBva,IADwB,EAEC;AACzB,SAAKgU,IAAL;AACA,SAAKyH,mBAAL,CAAyBzb,IAAzB,EAA+B,IAA/B;AAEAA,IAAAA,IAAI,CAACY,IAAL,GAAY,mBAAZ;AACA,WAAOZ,IAAP;AACD;;AAEDwa,EAAAA,yBAAyB,CACvBxa,IADuB,EAEC;AACxB,SAAKgU,IAAL;AACA,SAAKgF,qBAAL,CAA2BhZ,IAA3B;AACA,WAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,kBAAtB,CAAP;AACD;;AAIDgZ,EAAAA,qBAAqB,CACnBhZ,IADmB,EAEnB0b,OAAiB,GAAG,KAFD,EAGb;AACN1b,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKyC,6BAAL,CACM,CAACD,OADP,EAEU,IAFV,CAAV;AAKA,SAAKd,KAAL,CAAWC,WAAX,CACE7a,IAAI,CAACkZ,EAAL,CAAQtkB,IADV,EAEE8mB,OAAO,GAAGzf,aAAH,GAAmBF,YAF5B,EAGEiE,IAAI,CAACkZ,EAAL,CAAQlb,KAHV;;AAMA,QAAI,KAAKsb,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuK,iCAAL,EAAtB;AACD,KAFD,MAEO;AACLvZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,IAAtB;AACD;;AAEDhP,IAAAA,IAAI,CAAC4b,OAAL,GAAe,EAAf;AACA5b,IAAAA,IAAI,CAAC6b,UAAL,GAAkB,EAAlB;AACA7b,IAAAA,IAAI,CAAC8b,MAAL,GAAc,EAAd;;AAEA,QAAI,KAAKnD,GAAL,CAASzJ,KAAE,CAACpV,QAAZ,CAAJ,EAA2B;AACzB,SAAG;AACDkG,QAAAA,IAAI,CAAC4b,OAAL,CAAa/b,IAAb,CAAkB,KAAKkc,yBAAL,EAAlB;AACD,OAFD,QAES,CAACL,OAAD,IAAY,KAAK/C,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAFrB;AAGD;;AAED,QAAI,KAAKkkB,YAAL,CAAkB,QAAlB,CAAJ,EAAiC;AAC/B,WAAKrG,IAAL;;AACA,SAAG;AACDhU,QAAAA,IAAI,CAAC8b,MAAL,CAAYjc,IAAZ,CAAiB,KAAKkc,yBAAL,EAAjB;AACD,OAFD,QAES,KAAKpD,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAFT;AAGD;;AAED,QAAI,KAAKkkB,YAAL,CAAkB,YAAlB,CAAJ,EAAqC;AACnC,WAAKrG,IAAL;;AACA,SAAG;AACDhU,QAAAA,IAAI,CAAC6b,UAAL,CAAgBhc,IAAhB,CAAqB,KAAKkc,yBAAL,EAArB;AACD,OAFD,QAES,KAAKpD,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAFT;AAGD;;AAED6J,IAAAA,IAAI,CAACa,IAAL,GAAY,KAAKmb,mBAAL,CAAyB;AACnCC,MAAAA,WAAW,EAAEP,OADsB;AAEnCQ,MAAAA,UAAU,EAAE,KAFuB;AAGnCC,MAAAA,WAAW,EAAE,KAHsB;AAInCC,MAAAA,UAAU,EAAEV,OAJuB;AAKnCW,MAAAA,YAAY,EAAE;AALqB,KAAzB,CAAZ;AAOD;;AAEDN,EAAAA,yBAAyB,GAA2B;AAClD,UAAM/b,IAAI,GAAG,KAAK0P,SAAL,EAAb;AAEA1P,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKoD,gCAAL,EAAV;;AACA,QAAI,KAAKhD,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuN,mCAAL,EAAtB;AACD,KAFD,MAEO;AACLvc,MAAAA,IAAI,CAACgP,cAAL,GAAsB,IAAtB;AACD;;AAED,WAAO,KAAKW,UAAL,CAAgB3P,IAAhB,EAAsB,kBAAtB,CAAP;AACD;;AAEDwc,EAAAA,kBAAkB,CAACxc,IAAD,EAAyC;AACzD,SAAKgZ,qBAAL,CAA2BhZ,IAA3B;AACA,WAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;AACD;;AAEDyc,EAAAA,kBAAkB,CAAClJ,IAAD,EAAe;AAC/B,QAAIA,IAAI,KAAK,GAAb,EAAkB;AAChB,WAAKrJ,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BkW,UAAU,CAACgC,4BAAxC;AACD;AACF;;AAEDwG,EAAAA,iBAAiB,CAACnJ,IAAD,EAAe3J,QAAf,EAAiCgN,WAAjC,EAAwD;AACvE,QAAI,CAAC3C,aAAa,CAAClV,GAAd,CAAkBwU,IAAlB,CAAL,EAA8B;AAE9B,SAAKrJ,KAAL,CACEN,QADF,EAEEgN,WAAW,GACP1C,UAAU,CAACG,kBADJ,GAEPH,UAAU,CAAC+B,sBAJjB,EAKE1C,IALF;AAOD;;AAEDoI,EAAAA,6BAA6B,CAC3BgB,OAD2B,EAE3B/F,WAF2B,EAGb;AACd,SAAK8F,iBAAL,CAAuB,KAAK/c,KAAL,CAAWiM,KAAlC,EAAyC,KAAKjM,KAAL,CAAW3B,KAApD,EAA2D4Y,WAA3D;AACA,WAAO,KAAKuC,eAAL,CAAqBwD,OAArB,CAAP;AACD;;AAIDnB,EAAAA,kBAAkB,CAACxb,IAAD,EAAyC;AACzDA,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKyC,6BAAL,CACM,KADN,EAEU,IAFV,CAAV;AAIA,SAAKf,KAAL,CAAWC,WAAX,CAAuB7a,IAAI,CAACkZ,EAAL,CAAQtkB,IAA/B,EAAqCmH,YAArC,EAAmDiE,IAAI,CAACkZ,EAAL,CAAQlb,KAA3D;;AAEA,QAAI,KAAKsb,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuK,iCAAL,EAAtB;AACD,KAFD,MAEO;AACLvZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,IAAtB;AACD;;AAEDhP,IAAAA,IAAI,CAAC4c,KAAL,GAAa,KAAK5E,wBAAL,CAA8B9I,KAAE,CAAChY,EAAjC,CAAb;AACA,SAAK4iB,SAAL;AAEA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,WAAtB,CAAP;AACD;;AAEDyb,EAAAA,mBAAmB,CACjBzb,IADiB,EAEjB6c,OAFiB,EAGC;AAClB,SAAKnE,gBAAL,CAAsB,MAAtB;AACA1Y,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKyC,6BAAL,CACM,IADN,EAEU,IAFV,CAAV;AAIA,SAAKf,KAAL,CAAWC,WAAX,CAAuB7a,IAAI,CAACkZ,EAAL,CAAQtkB,IAA/B,EAAqCmH,YAArC,EAAmDiE,IAAI,CAACkZ,EAAL,CAAQlb,KAA3D;;AAEA,QAAI,KAAKsb,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuK,iCAAL,EAAtB;AACD,KAFD,MAEO;AACLvZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,IAAtB;AACD;;AAGDhP,IAAAA,IAAI,CAAC8c,SAAL,GAAiB,IAAjB;;AACA,QAAI,KAAKxe,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB2J,MAAAA,IAAI,CAAC8c,SAAL,GAAiB,KAAK9E,wBAAL,CAA8B9I,KAAE,CAAC7Y,KAAjC,CAAjB;AACD;;AAED2J,IAAAA,IAAI,CAAC+c,QAAL,GAAgB,IAAhB;;AACA,QAAI,CAACF,OAAL,EAAc;AACZ7c,MAAAA,IAAI,CAAC+c,QAAL,GAAgB,KAAK/E,wBAAL,CAA8B9I,KAAE,CAAChY,EAAjC,CAAhB;AACD;;AACD,SAAK4iB,SAAL;AAEA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,YAAtB,CAAP;AACD;;AAIDgd,EAAAA,sBAAsB,CAACC,cAAwB,GAAG,KAA5B,EAAoD;AACxE,UAAMC,SAAS,GAAG,KAAKvd,KAAL,CAAW3B,KAA7B;AAEA,UAAMgC,IAAI,GAAG,KAAK0P,SAAL,EAAb;AAEA,UAAMyN,QAAQ,GAAG,KAAKC,iBAAL,EAAjB;AAEA,UAAMC,KAAK,GAAG,KAAK1C,kCAAL,EAAd;AACA3a,IAAAA,IAAI,CAACpL,IAAL,GAAYyoB,KAAK,CAACzoB,IAAlB;AACAoL,IAAAA,IAAI,CAACmd,QAAL,GAAgBA,QAAhB;AACAnd,IAAAA,IAAI,CAACsd,KAAL,GAAaD,KAAK,CAACzD,cAAnB;;AAEA,QAAI,KAAKtb,KAAL,CAAW4Q,KAAE,CAAChY,EAAd,CAAJ,EAAuB;AACrB,WAAKyhB,GAAL,CAASzJ,KAAE,CAAChY,EAAZ;AACA8I,MAAAA,IAAI,CAACmb,OAAL,GAAe,KAAK9C,aAAL,EAAf;AACD,KAHD,MAGO;AACL,UAAI4E,cAAJ,EAAoB;AAClB,aAAK/S,KAAL,CAAWgT,SAAX,EAAsBhJ,UAAU,CAACuB,uBAAjC;AACD;AACF;;AAED,WAAO,KAAK9F,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAEDuZ,EAAAA,iCAAiC,GAA+B;AAC9D,UAAMrB,SAAS,GAAG,KAAKvY,KAAL,CAAWwY,MAA7B;AACA,UAAMnY,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA1P,IAAAA,IAAI,CAACoK,MAAL,GAAc,EAAd;AAEA,SAAKzK,KAAL,CAAWwY,MAAX,GAAoB,IAApB;;AAGA,QAAI,KAAKmB,YAAL,CAAkB,GAAlB,KAA0B,KAAKhb,KAAL,CAAW4Q,KAAE,CAACqO,WAAd,CAA9B,EAA0D;AACxD,WAAKvJ,IAAL;AACD,KAFD,MAEO;AACL,WAAK0G,UAAL;AACD;;AAED,QAAI8C,eAAe,GAAG,KAAtB;;AAEA,OAAG;AACD,YAAMC,aAAa,GAAG,KAAKT,sBAAL,CAA4BQ,eAA5B,CAAtB;AAEAxd,MAAAA,IAAI,CAACoK,MAAL,CAAYvK,IAAZ,CAAiB4d,aAAjB;;AAEA,UAAIA,aAAa,CAACtC,OAAlB,EAA2B;AACzBqC,QAAAA,eAAe,GAAG,IAAlB;AACD;;AAED,UAAI,CAAC,KAAKlE,YAAL,CAAkB,GAAlB,CAAL,EAA6B;AAC3B,aAAKlB,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACD;AACF,KAZD,QAYS,CAAC,KAAKmjB,YAAL,CAAkB,GAAlB,CAZV;;AAaA,SAAKoE,gBAAL,CAAsB,GAAtB;AAEA,SAAK/d,KAAL,CAAWwY,MAAX,GAAoBD,SAApB;AAEA,WAAO,KAAKvI,UAAL,CAAgB3P,IAAhB,EAAsB,0BAAtB,CAAP;AACD;;AAEDuc,EAAAA,mCAAmC,GAAiC;AAClE,UAAMvc,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,UAAMwI,SAAS,GAAG,KAAKvY,KAAL,CAAWwY,MAA7B;AACAnY,IAAAA,IAAI,CAACoK,MAAL,GAAc,EAAd;AAEA,SAAKzK,KAAL,CAAWwY,MAAX,GAAoB,IAApB;AAEA,SAAKuF,gBAAL,CAAsB,GAAtB;AACA,UAAMC,qBAAqB,GAAG,KAAKhe,KAAL,CAAWie,kBAAzC;AACA,SAAKje,KAAL,CAAWie,kBAAX,GAAgC,KAAhC;;AACA,WAAO,CAAC,KAAKtE,YAAL,CAAkB,GAAlB,CAAR,EAAgC;AAC9BtZ,MAAAA,IAAI,CAACoK,MAAL,CAAYvK,IAAZ,CAAiB,KAAKwY,aAAL,EAAjB;;AACA,UAAI,CAAC,KAAKiB,YAAL,CAAkB,GAAlB,CAAL,EAA6B;AAC3B,aAAKlB,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACD;AACF;;AACD,SAAKwJ,KAAL,CAAWie,kBAAX,GAAgCD,qBAAhC;AACA,SAAKD,gBAAL,CAAsB,GAAtB;AAEA,SAAK/d,KAAL,CAAWwY,MAAX,GAAoBD,SAApB;AAEA,WAAO,KAAKvI,UAAL,CAAgB3P,IAAhB,EAAsB,4BAAtB,CAAP;AACD;;AAED6d,EAAAA,4CAA4C,GAAiC;AAC3E,UAAM7d,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,UAAMwI,SAAS,GAAG,KAAKvY,KAAL,CAAWwY,MAA7B;AACAnY,IAAAA,IAAI,CAACoK,MAAL,GAAc,EAAd;AAEA,SAAKzK,KAAL,CAAWwY,MAAX,GAAoB,IAApB;AAEA,SAAKuF,gBAAL,CAAsB,GAAtB;;AACA,WAAO,CAAC,KAAKpE,YAAL,CAAkB,GAAlB,CAAR,EAAgC;AAC9BtZ,MAAAA,IAAI,CAACoK,MAAL,CAAYvK,IAAZ,CAAiB,KAAKie,oCAAL,EAAjB;;AACA,UAAI,CAAC,KAAKxE,YAAL,CAAkB,GAAlB,CAAL,EAA6B;AAC3B,aAAKlB,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACD;AACF;;AACD,SAAKunB,gBAAL,CAAsB,GAAtB;AAEA,SAAK/d,KAAL,CAAWwY,MAAX,GAAoBD,SAApB;AAEA,WAAO,KAAKvI,UAAL,CAAgB3P,IAAhB,EAAsB,4BAAtB,CAAP;AACD;;AAED+d,EAAAA,sBAAsB,GAAwB;AAC5C,UAAM/d,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAKgJ,gBAAL,CAAsB,WAAtB;AAEA1Y,IAAAA,IAAI,CAAC4b,OAAL,GAAe,EAAf;;AACA,QAAI,KAAKjD,GAAL,CAASzJ,KAAE,CAACpV,QAAZ,CAAJ,EAA2B;AACzB,SAAG;AACDkG,QAAAA,IAAI,CAAC4b,OAAL,CAAa/b,IAAb,CAAkB,KAAKkc,yBAAL,EAAlB;AACD,OAFD,QAES,KAAKpD,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAFT;AAGD;;AAED6J,IAAAA,IAAI,CAACa,IAAL,GAAY,KAAKmb,mBAAL,CAAyB;AACnCC,MAAAA,WAAW,EAAE,KADsB;AAEnCC,MAAAA,UAAU,EAAE,KAFuB;AAGnCC,MAAAA,WAAW,EAAE,KAHsB;AAInCC,MAAAA,UAAU,EAAE,KAJuB;AAKnCC,MAAAA,YAAY,EAAE;AALqB,KAAzB,CAAZ;AAQA,WAAO,KAAK1M,UAAL,CAAgB3P,IAAhB,EAAsB,yBAAtB,CAAP;AACD;;AAEDge,EAAAA,0BAA0B,GAAiB;AACzC,WAAO,KAAK1f,KAAL,CAAW4Q,KAAE,CAACha,GAAd,KAAsB,KAAKoJ,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAAtB,GACH,KAAK4Z,aAAL,EADG,GAEH,KAAKkK,eAAL,CAAqB,IAArB,CAFJ;AAGD;;AAED8E,EAAAA,0BAA0B,CACxBje,IADwB,EAExBke,QAFwB,EAGxBf,QAHwB,EAIC;AACzBnd,IAAAA,IAAI,CAACme,MAAL,GAAcD,QAAd;;AAGA,QAAI,KAAKE,SAAL,GAAiBxd,IAAjB,KAA0BsO,KAAE,CAAC7Y,KAAjC,EAAwC;AACtC2J,MAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAK8E,0BAAL,EAAV;AACAhe,MAAAA,IAAI,CAAC4N,GAAL,GAAW,KAAKoK,wBAAL,EAAX;AACD,KAHD,MAGO;AACLhY,MAAAA,IAAI,CAACkZ,EAAL,GAAU,IAAV;AACAlZ,MAAAA,IAAI,CAAC4N,GAAL,GAAW,KAAKyK,aAAL,EAAX;AACD;;AACD,SAAKD,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACAsK,IAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAKoM,wBAAL,EAAb;AACAhY,IAAAA,IAAI,CAACmd,QAAL,GAAgBA,QAAhB;AAEA,WAAO,KAAKxN,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAEDqe,EAAAA,+BAA+B,CAC7Bre,IAD6B,EAE7Bke,QAF6B,EAGC;AAC9Ble,IAAAA,IAAI,CAACme,MAAL,GAAcD,QAAd;AAEAle,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAK8E,0BAAL,EAAV;AACA,SAAK5F,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACA,SAAK0iB,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;;AACA,QAAI,KAAK4jB,YAAL,CAAkB,GAAlB,KAA0B,KAAKhb,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAA9B,EAAqD;AACnD+J,MAAAA,IAAI,CAACmL,MAAL,GAAc,IAAd;AACAnL,MAAAA,IAAI,CAACoQ,QAAL,GAAgB,KAAhB;AACApQ,MAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAK0S,4BAAL,CACX,KAAKjS,WAAL,CAAiBrM,IAAI,CAAChC,KAAtB,EAA6BgC,IAAI,CAACN,GAAL,CAAS1B,KAAtC,CADW,CAAb;AAGD,KAND,MAMO;AACLgC,MAAAA,IAAI,CAACmL,MAAL,GAAc,KAAd;;AACA,UAAI,KAAKwN,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzBwJ,QAAAA,IAAI,CAACoQ,QAAL,GAAgB,IAAhB;AACD;;AACDpQ,MAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAKoM,wBAAL,EAAb;AACD;;AACD,WAAO,KAAKrI,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AAEDse,EAAAA,4BAA4B,CAC1Bte,IAD0B,EAEI;AAC9BA,IAAAA,IAAI,CAACoK,MAAL,GAAc,EAAd;AACApK,IAAAA,IAAI,CAAC0Z,IAAL,GAAY,IAAZ;AACA1Z,IAAAA,IAAI,CAACgP,cAAL,GAAsB,IAAtB;;AAEA,QAAI,KAAKsK,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuK,iCAAL,EAAtB;AACD;;AAED,SAAKnB,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;;AACA,WAAO,CAAC,KAAKqI,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,CAAD,IAA0B,CAAC,KAAKoI,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAAlC,EAA2D;AACzDoJ,MAAAA,IAAI,CAACoK,MAAL,CAAYvK,IAAZ,CAAiB,KAAK0e,0BAAL,EAAjB;;AACA,UAAI,CAAC,KAAKjgB,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,CAAL,EAA4B;AAC1B,aAAKkiB,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACD;AACF;;AAED,QAAI,KAAKwiB,GAAL,CAASzJ,KAAE,CAACtY,QAAZ,CAAJ,EAA2B;AACzBoJ,MAAAA,IAAI,CAAC0Z,IAAL,GAAY,KAAK6E,0BAAL,EAAZ;AACD;;AACD,SAAKnG,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AACA8J,IAAAA,IAAI,CAAC2Z,UAAL,GAAkB,KAAK3B,wBAAL,EAAlB;AAEA,WAAO,KAAKrI,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AAEDwe,EAAAA,+BAA+B,CAC7Bxe,IAD6B,EAE7Bke,QAF6B,EAGC;AAC9B,UAAMO,SAAS,GAAG,KAAK/O,SAAL,EAAlB;AACA1P,IAAAA,IAAI,CAACme,MAAL,GAAcD,QAAd;AACAle,IAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAK0S,4BAAL,CAAkCG,SAAlC,CAAb;AACA,WAAO,KAAK9O,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AAEDgc,EAAAA,mBAAmB,CAAC;AAClBC,IAAAA,WADkB;AAElBC,IAAAA,UAFkB;AAGlBC,IAAAA,WAHkB;AAIlBC,IAAAA,UAJkB;AAKlBC,IAAAA;AALkB,GAAD,EAYY;AAC7B,UAAMnE,SAAS,GAAG,KAAKvY,KAAL,CAAWwY,MAA7B;AACA,SAAKxY,KAAL,CAAWwY,MAAX,GAAoB,IAApB;AAEA,UAAM+E,SAAS,GAAG,KAAKxN,SAAL,EAAlB;AAEAwN,IAAAA,SAAS,CAACwB,cAAV,GAA2B,EAA3B;AACAxB,IAAAA,SAAS,CAAC/b,UAAV,GAAuB,EAAvB;AACA+b,IAAAA,SAAS,CAACyB,QAAV,GAAqB,EAArB;AACAzB,IAAAA,SAAS,CAAC0B,aAAV,GAA0B,EAA1B;AAEA,QAAIC,QAAJ;AACA,QAAIC,KAAJ;AACA,QAAIC,OAAO,GAAG,KAAd;;AACA,QAAI7C,UAAU,IAAI,KAAK5d,KAAL,CAAW4Q,KAAE,CAACrZ,SAAd,CAAlB,EAA4C;AAC1C,WAAKuiB,MAAL,CAAYlJ,KAAE,CAACrZ,SAAf;AACAgpB,MAAAA,QAAQ,GAAG3P,KAAE,CAAClZ,SAAd;AACA8oB,MAAAA,KAAK,GAAG,IAAR;AACD,KAJD,MAIO;AACL,WAAK1G,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;AACAipB,MAAAA,QAAQ,GAAG3P,KAAE,CAACnZ,MAAd;AACA+oB,MAAAA,KAAK,GAAG,KAAR;AACD;;AAED5B,IAAAA,SAAS,CAAC4B,KAAV,GAAkBA,KAAlB;;AAEA,WAAO,CAAC,KAAKxgB,KAAL,CAAWugB,QAAX,CAAR,EAA8B;AAC5B,UAAIX,QAAQ,GAAG,KAAf;AACA,UAAIc,UAAmB,GAAG,IAA1B;AACA,UAAIC,YAAqB,GAAG,IAA5B;AACA,YAAMjf,IAAI,GAAG,KAAK0P,SAAL,EAAb;;AAEA,UAAI0M,UAAU,IAAI,KAAK/B,YAAL,CAAkB,OAAlB,CAAlB,EAA8C;AAC5C,cAAM+D,SAAS,GAAG,KAAKA,SAAL,EAAlB;;AAEA,YAAIA,SAAS,CAACxd,IAAV,KAAmBsO,KAAE,CAAC7Y,KAAtB,IAA+B+nB,SAAS,CAACxd,IAAV,KAAmBsO,KAAE,CAAC1Y,QAAzD,EAAmE;AACjE,eAAKwd,IAAL;AACAgL,UAAAA,UAAU,GAAG,KAAKrf,KAAL,CAAW3B,KAAxB;AACAie,UAAAA,WAAW,GAAG,KAAd;AACD;AACF;;AAED,UAAIA,WAAW,IAAI,KAAK5B,YAAL,CAAkB,QAAlB,CAAnB,EAAgD;AAC9C,cAAM+D,SAAS,GAAG,KAAKA,SAAL,EAAlB;;AAGA,YAAIA,SAAS,CAACxd,IAAV,KAAmBsO,KAAE,CAAC7Y,KAAtB,IAA+B+nB,SAAS,CAACxd,IAAV,KAAmBsO,KAAE,CAAC1Y,QAAzD,EAAmE;AACjE,eAAKwd,IAAL;AACAkK,UAAAA,QAAQ,GAAG,IAAX;AACD;AACF;;AAED,YAAMf,QAAQ,GAAG,KAAKC,iBAAL,EAAjB;;AAEA,UAAI,KAAKzE,GAAL,CAASzJ,KAAE,CAAC3Z,QAAZ,CAAJ,EAA2B;AACzB,YAAIypB,UAAU,IAAI,IAAlB,EAAwB;AACtB,eAAKtE,UAAL,CAAgBsE,UAAhB;AACD;;AACD,YAAI,KAAKrG,GAAL,CAASzJ,KAAE,CAAC3Z,QAAZ,CAAJ,EAA2B;AACzB,cAAI4nB,QAAJ,EAAc;AACZ,iBAAKzC,UAAL,CAAgByC,QAAQ,CAACnf,KAAzB;AACD;;AACDkf,UAAAA,SAAS,CAAC0B,aAAV,CAAwB/e,IAAxB,CACE,KAAKwe,+BAAL,CAAqCre,IAArC,EAA2Cke,QAA3C,CADF;AAGD,SAPD,MAOO;AACLhB,UAAAA,SAAS,CAACyB,QAAV,CAAmB9e,IAAnB,CACE,KAAKoe,0BAAL,CAAgCje,IAAhC,EAAsCke,QAAtC,EAAgDf,QAAhD,CADF;AAGD;AACF,OAhBD,MAgBO,IAAI,KAAK7e,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,KAAyB,KAAKqjB,YAAL,CAAkB,GAAlB,CAA7B,EAAqD;AAC1D,YAAI0F,UAAU,IAAI,IAAlB,EAAwB;AACtB,eAAKtE,UAAL,CAAgBsE,UAAhB;AACD;;AACD,YAAI7B,QAAJ,EAAc;AACZ,eAAKzC,UAAL,CAAgByC,QAAQ,CAACnf,KAAzB;AACD;;AACDkf,QAAAA,SAAS,CAACwB,cAAV,CAAyB7e,IAAzB,CACE,KAAK2e,+BAAL,CAAqCxe,IAArC,EAA2Cke,QAA3C,CADF;AAGD,OAVM,MAUA;AACL,YAAIhT,IAAI,GAAG,MAAX;;AAEA,YAAI,KAAKmP,YAAL,CAAkB,KAAlB,KAA4B,KAAKA,YAAL,CAAkB,KAAlB,CAAhC,EAA0D;AACxD,gBAAM+D,SAAS,GAAG,KAAKA,SAAL,EAAlB;;AACA,cACEA,SAAS,CAACxd,IAAV,KAAmBsO,KAAE,CAACta,IAAtB,IACAwpB,SAAS,CAACxd,IAAV,KAAmBsO,KAAE,CAAC7Z,MADtB,IAEA+oB,SAAS,CAACxd,IAAV,KAAmBsO,KAAE,CAACha,GAHxB,EAIE;AACAgW,YAAAA,IAAI,GAAG,KAAKvL,KAAL,CAAWiM,KAAlB;AACA,iBAAKoI,IAAL;AACD;AACF;;AAED,cAAMkL,aAAa,GAAG,KAAKC,2BAAL,CACpBnf,IADoB,EAEpBke,QAFoB,EAGpBc,UAHoB,EAIpB7B,QAJoB,EAKpBjS,IALoB,EAMpBiR,WANoB,EAOpBE,YAPoB,WAOpBA,YAPoB,GAOJ,CAACyC,KAPG,CAAtB;;AAUA,YAAII,aAAa,KAAK,IAAtB,EAA4B;AAC1BH,UAAAA,OAAO,GAAG,IAAV;AACAE,UAAAA,YAAY,GAAG,KAAKtf,KAAL,CAAWkK,YAA1B;AACD,SAHD,MAGO;AACLqT,UAAAA,SAAS,CAAC/b,UAAV,CAAqBtB,IAArB,CAA0Bqf,aAA1B;AACD;AACF;;AAED,WAAKE,uBAAL;;AAEA,UACEH,YAAY,IACZ,CAAC,KAAK3gB,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CADD,IAEA,CAAC,KAAKuI,KAAL,CAAW4Q,KAAE,CAAClZ,SAAd,CAHH,EAIE;AACA,aAAKkU,KAAL,CACE+U,YADF,EAEE/K,UAAU,CAAC8B,iCAFb;AAID;AACF;;AAED,SAAKoC,MAAL,CAAYyG,QAAZ;;AAOA,QAAI1C,WAAJ,EAAiB;AACfe,MAAAA,SAAS,CAAC6B,OAAV,GAAoBA,OAApB;AACD;;AAED,UAAMpN,GAAG,GAAG,KAAKhC,UAAL,CAAgBuN,SAAhB,EAA2B,sBAA3B,CAAZ;AAEA,SAAKvd,KAAL,CAAWwY,MAAX,GAAoBD,SAApB;AAEA,WAAOvG,GAAP;AACD;;AAEDwN,EAAAA,2BAA2B,CACzBnf,IADyB,EAEzBke,QAFyB,EAGzBc,UAHyB,EAIzB7B,QAJyB,EAKzBjS,IALyB,EAMzBiR,WANyB,EAOzBE,YAPyB,EAQ2C;AACpE,QAAI,KAAK1D,GAAL,CAASzJ,KAAE,CAACtY,QAAZ,CAAJ,EAA2B;AACzB,YAAMyoB,cAAc,GAClB,KAAK/gB,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,KACA,KAAKmI,KAAL,CAAW4Q,KAAE,CAAC9Y,IAAd,CADA,IAEA,KAAKkI,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAFA,IAGA,KAAKuI,KAAL,CAAW4Q,KAAE,CAAClZ,SAAd,CAJF;;AAMA,UAAIqpB,cAAJ,EAAoB;AAClB,YAAI,CAAClD,WAAL,EAAkB;AAChB,eAAKjS,KAAL,CACE,KAAKvK,KAAL,CAAWkK,YADb,EAEEqK,UAAU,CAACoB,sBAFb;AAID,SALD,MAKO,IAAI,CAAC+G,YAAL,EAAmB;AACxB,eAAKnS,KAAL,CAAW,KAAKvK,KAAL,CAAWkK,YAAtB,EAAoCqK,UAAU,CAACmB,kBAA/C;AACD;;AACD,YAAI8H,QAAJ,EAAc;AACZ,eAAKjT,KAAL,CAAWiT,QAAQ,CAACnf,KAApB,EAA2BkW,UAAU,CAACqB,eAAtC;AACD;;AAED,eAAO,IAAP;AACD;;AAED,UAAI,CAAC4G,WAAL,EAAkB;AAChB,aAAKjS,KAAL,CAAW,KAAKvK,KAAL,CAAWkK,YAAtB,EAAoCqK,UAAU,CAACkC,oBAA/C;AACD;;AACD,UAAI4I,UAAU,IAAI,IAAlB,EAAwB;AACtB,aAAKtE,UAAL,CAAgBsE,UAAhB;AACD;;AACD,UAAI7B,QAAJ,EAAc;AACZ,aAAKjT,KAAL,CAAWiT,QAAQ,CAACnf,KAApB,EAA2BkW,UAAU,CAAC2B,cAAtC;AACD;;AAED7V,MAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAKjH,aAAL,EAAhB;AACA,aAAO,KAAK1I,UAAL,CAAgB3P,IAAhB,EAAsB,0BAAtB,CAAP;AACD,KAnCD,MAmCO;AACLA,MAAAA,IAAI,CAAC4N,GAAL,GAAW,KAAKoQ,0BAAL,EAAX;AACAhe,MAAAA,IAAI,CAACme,MAAL,GAAcD,QAAd;AACAle,MAAAA,IAAI,CAACuf,KAAL,GAAaP,UAAU,IAAI,IAA3B;AACAhf,MAAAA,IAAI,CAACkL,IAAL,GAAYA,IAAZ;AAEA,UAAIkF,QAAQ,GAAG,KAAf;;AACA,UAAI,KAAKkJ,YAAL,CAAkB,GAAlB,KAA0B,KAAKhb,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAA9B,EAAqD;AAEnD+J,QAAAA,IAAI,CAACmL,MAAL,GAAc,IAAd;;AAEA,YAAI6T,UAAU,IAAI,IAAlB,EAAwB;AACtB,eAAKtE,UAAL,CAAgBsE,UAAhB;AACD;;AACD,YAAI7B,QAAJ,EAAc;AACZ,eAAKzC,UAAL,CAAgByC,QAAQ,CAACnf,KAAzB;AACD;;AAEDgC,QAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAK0S,4BAAL,CACX,KAAKjS,WAAL,CAAiBrM,IAAI,CAAChC,KAAtB,EAA6BgC,IAAI,CAACN,GAAL,CAAS1B,KAAtC,CADW,CAAb;;AAGA,YAAIkN,IAAI,KAAK,KAAT,IAAkBA,IAAI,KAAK,KAA/B,EAAsC;AACpC,eAAKsU,2BAAL,CAAiCxf,IAAjC;AACD;AACF,OAjBD,MAiBO;AACL,YAAIkL,IAAI,KAAK,MAAb,EAAqB,KAAKwP,UAAL;AAErB1a,QAAAA,IAAI,CAACmL,MAAL,GAAc,KAAd;;AAEA,YAAI,KAAKwN,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzB4Z,UAAAA,QAAQ,GAAG,IAAX;AACD;;AACDpQ,QAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAKoM,wBAAL,EAAb;AACAhY,QAAAA,IAAI,CAACmd,QAAL,GAAgBA,QAAhB;AACD;;AAEDnd,MAAAA,IAAI,CAACoQ,QAAL,GAAgBA,QAAhB;AAEA,aAAO,KAAKT,UAAL,CAAgB3P,IAAhB,EAAsB,oBAAtB,CAAP;AACD;AACF;;AAIDwf,EAAAA,2BAA2B,CACzBC,QADyB,EAEnB;AACN,UAAM1S,UAAU,GAAG0S,QAAQ,CAACvU,IAAT,KAAkB,KAAlB,GAA0B,CAA1B,GAA8B,CAAjD;AACA,UAAMlN,KAAK,GAAGyhB,QAAQ,CAACzhB,KAAvB;AACA,UAAMqB,MAAM,GACVogB,QAAQ,CAAC7T,KAAT,CAAexB,MAAf,CAAsB/K,MAAtB,IAAgCogB,QAAQ,CAAC7T,KAAT,CAAe8N,IAAf,GAAsB,CAAtB,GAA0B,CAA1D,CADF;;AAEA,QAAIra,MAAM,KAAK0N,UAAf,EAA2B;AACzB,UAAI0S,QAAQ,CAACvU,IAAT,KAAkB,KAAtB,EAA6B;AAC3B,aAAKhB,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACQ,cAAzB;AACD,OAFD,MAEO;AACL,aAAKmI,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACS,cAAzB;AACD;AACF;;AAED,QAAIyd,QAAQ,CAACvU,IAAT,KAAkB,KAAlB,IAA2BuU,QAAQ,CAAC7T,KAAT,CAAe8N,IAA9C,EAAoD;AAClD,WAAKxP,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACU,sBAAzB;AACD;AACF;;AAEDmd,EAAAA,uBAAuB,GAAS;AAC9B,QACE,CAAC,KAAKzG,GAAL,CAASzJ,KAAE,CAAC9Y,IAAZ,CAAD,IACA,CAAC,KAAKuiB,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CADD,IAEA,CAAC,KAAKmI,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAFD,IAGA,CAAC,KAAKuI,KAAL,CAAW4Q,KAAE,CAAClZ,SAAd,CAJH,EAKE;AACA,WAAK0kB,UAAL;AACD;AACF;;AAED4B,EAAAA,gCAAgC,CAC9BnN,QAD8B,EAE9BvF,QAF8B,EAG9BsP,EAH8B,EAIC;AAC/B/J,IAAAA,QAAQ,GAAGA,QAAQ,IAAI,KAAKxP,KAAL,CAAW3B,KAAlC;AACA4L,IAAAA,QAAQ,GAAGA,QAAQ,IAAI,KAAKjK,KAAL,CAAWiK,QAAlC;AACA,QAAI5J,IAAI,GAAGkZ,EAAE,IAAI,KAAKyC,6BAAL,CAAmC,IAAnC,CAAjB;;AAEA,WAAO,KAAKhD,GAAL,CAASzJ,KAAE,CAAC3Y,GAAZ,CAAP,EAAyB;AACvB,YAAMmpB,KAAK,GAAG,KAAKrT,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAd;AACA8V,MAAAA,KAAK,CAACC,aAAN,GAAsB3f,IAAtB;AACA0f,MAAAA,KAAK,CAACxG,EAAN,GAAW,KAAKyC,6BAAL,CAAmC,IAAnC,CAAX;AACA3b,MAAAA,IAAI,GAAG,KAAK2P,UAAL,CAAgB+P,KAAhB,EAAuB,yBAAvB,CAAP;AACD;;AAED,WAAO1f,IAAP;AACD;;AAED4f,EAAAA,oBAAoB,CAClBzQ,QADkB,EAElBvF,QAFkB,EAGlBsP,EAHkB,EAIW;AAC7B,UAAMlZ,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AAEA5J,IAAAA,IAAI,CAACgP,cAAL,GAAsB,IAAtB;AACAhP,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKoD,gCAAL,CAAsCnN,QAAtC,EAAgDvF,QAAhD,EAA0DsP,EAA1D,CAAV;;AAEA,QAAI,KAAKI,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuN,mCAAL,EAAtB;AACD;;AAED,WAAO,KAAK5M,UAAL,CAAgB3P,IAAhB,EAAsB,uBAAtB,CAAP;AACD;;AAED6f,EAAAA,mBAAmB,GAA+B;AAChD,UAAM7f,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAK0I,MAAL,CAAYlJ,KAAE,CAAC5U,OAAf;AACA0F,IAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAKQ,oBAAL,EAAhB;AACA,WAAO,KAAKnQ,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;AACD;;AAED+f,EAAAA,kBAAkB,GAA8B;AAC9C,UAAM/f,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA1P,IAAAA,IAAI,CAAC/K,KAAL,GAAa,EAAb;AACA,SAAKmjB,MAAL,CAAYlJ,KAAE,CAAC3Z,QAAf;;AAEA,WAAO,KAAKoK,KAAL,CAAWgK,GAAX,GAAiB,KAAKtK,MAAtB,IAAgC,CAAC,KAAKf,KAAL,CAAW4Q,KAAE,CAACxZ,QAAd,CAAxC,EAAiE;AAC/DsK,MAAAA,IAAI,CAAC/K,KAAL,CAAW4K,IAAX,CAAgB,KAAKwY,aAAL,EAAhB;AACA,UAAI,KAAK/Z,KAAL,CAAW4Q,KAAE,CAACxZ,QAAd,CAAJ,EAA6B;AAC7B,WAAK0iB,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACD;;AACD,SAAKiiB,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACA,WAAO,KAAKia,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;AACD;;AAEDue,EAAAA,0BAA0B,GAA4B;AACpD,QAAI3pB,IAAI,GAAG,IAAX;AACA,QAAIwb,QAAQ,GAAG,KAAf;AACA,QAAIwJ,cAAc,GAAG,IAArB;AACA,UAAM5Z,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,UAAMsQ,EAAE,GAAG,KAAK5B,SAAL,EAAX;;AACA,QAAI4B,EAAE,CAACpf,IAAH,KAAYsO,KAAE,CAAC7Y,KAAf,IAAwB2pB,EAAE,CAACpf,IAAH,KAAYsO,KAAE,CAAC1Y,QAA3C,EAAqD;AACnD5B,MAAAA,IAAI,GAAG,KAAKukB,eAAL,EAAP;;AACA,UAAI,KAAKR,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzB4Z,QAAAA,QAAQ,GAAG,IAAX;AACD;;AACDwJ,MAAAA,cAAc,GAAG,KAAK5B,wBAAL,EAAjB;AACD,KAND,MAMO;AACL4B,MAAAA,cAAc,GAAG,KAAKvB,aAAL,EAAjB;AACD;;AACDrY,IAAAA,IAAI,CAACpL,IAAL,GAAYA,IAAZ;AACAoL,IAAAA,IAAI,CAACoQ,QAAL,GAAgBA,QAAhB;AACApQ,IAAAA,IAAI,CAAC4Z,cAAL,GAAsBA,cAAtB;AACA,WAAO,KAAKjK,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAEDigB,EAAAA,kCAAkC,CAChCrf,IADgC,EAEP;AACzB,UAAMZ,IAAI,GAAG,KAAKqM,WAAL,CAAiBzL,IAAI,CAAC5C,KAAtB,EAA6B4C,IAAI,CAAClB,GAAL,CAAS1B,KAAtC,CAAb;AACAgC,IAAAA,IAAI,CAACpL,IAAL,GAAY,IAAZ;AACAoL,IAAAA,IAAI,CAACoQ,QAAL,GAAgB,KAAhB;AACApQ,IAAAA,IAAI,CAAC4Z,cAAL,GAAsBhZ,IAAtB;AACA,WAAO,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAEDyZ,EAAAA,2BAA2B,CACzBrP,MAAiC,GAAG,EADX,EAE8C;AACvE,QAAIsP,IAA8B,GAAG,IAArC;;AACA,WAAO,CAAC,KAAKpb,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,CAAD,IAA0B,CAAC,KAAKoI,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAAlC,EAA2D;AACzDwT,MAAAA,MAAM,CAACvK,IAAP,CAAY,KAAK0e,0BAAL,EAAZ;;AACA,UAAI,CAAC,KAAKjgB,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,CAAL,EAA4B;AAC1B,aAAKkiB,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACD;AACF;;AACD,QAAI,KAAKwiB,GAAL,CAASzJ,KAAE,CAACtY,QAAZ,CAAJ,EAA2B;AACzB8iB,MAAAA,IAAI,GAAG,KAAK6E,0BAAL,EAAP;AACD;;AACD,WAAO;AAAEnU,MAAAA,MAAF;AAAUsP,MAAAA;AAAV,KAAP;AACD;;AAEDwG,EAAAA,yBAAyB,CACvB/Q,QADuB,EAEvBvF,QAFuB,EAGvB5J,IAHuB,EAIvBkZ,EAJuB,EAKD;AACtB,YAAQA,EAAE,CAACtkB,IAAX;AACE,WAAK,KAAL;AACE,eAAO,KAAK+a,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;;AAEF,WAAK,MAAL;AACA,WAAK,SAAL;AACE,eAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,uBAAtB,CAAP;;AAEF,WAAK,OAAL;AACE,eAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;;AAEF,WAAK,OAAL;AACE,eAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;;AAEF,WAAK,QAAL;AACE,eAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;;AAEF,WAAK,QAAL;AACE,eAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;;AAEF,WAAK,QAAL;AACE,eAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;;AAEF;AACE,aAAKyc,kBAAL,CAAwBvD,EAAE,CAACtkB,IAA3B;AACA,eAAO,KAAKgrB,oBAAL,CAA0BzQ,QAA1B,EAAoCvF,QAApC,EAA8CsP,EAA9C,CAAP;AAzBJ;AA2BD;;AAKD4G,EAAAA,oBAAoB,GAAyB;AAC3C,UAAM3Q,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,UAAM5J,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,QAAI8J,GAAJ;AACA,QAAI5Y,IAAJ;AACA,QAAIuf,aAAa,GAAG,KAApB;AACA,UAAMxC,qBAAqB,GAAG,KAAKhe,KAAL,CAAWie,kBAAzC;;AAEA,YAAQ,KAAKje,KAAL,CAAWiB,IAAnB;AACE,WAAKsO,KAAE,CAACta,IAAR;AACE,YAAI,KAAKylB,YAAL,CAAkB,WAAlB,CAAJ,EAAoC;AAClC,iBAAO,KAAK0D,sBAAL,EAAP;AACD;;AAED,eAAO,KAAKmC,yBAAL,CACL/Q,QADK,EAELvF,QAFK,EAGL5J,IAHK,EAIL,KAAKmZ,eAAL,EAJK,CAAP;;AAOF,WAAKjK,KAAE,CAACtZ,MAAR;AACE,eAAO,KAAKomB,mBAAL,CAAyB;AAC9BC,UAAAA,WAAW,EAAE,KADiB;AAE9BC,UAAAA,UAAU,EAAE,KAFkB;AAG9BC,UAAAA,WAAW,EAAE,IAHiB;AAI9BC,UAAAA,UAAU,EAAE,KAJkB;AAK9BC,UAAAA,YAAY,EAAE;AALgB,SAAzB,CAAP;;AAQF,WAAKnN,KAAE,CAACrZ,SAAR;AACE,eAAO,KAAKmmB,mBAAL,CAAyB;AAC9BC,UAAAA,WAAW,EAAE,KADiB;AAE9BC,UAAAA,UAAU,EAAE,IAFkB;AAG9BC,UAAAA,WAAW,EAAE,IAHiB;AAI9BC,UAAAA,UAAU,EAAE,KAJkB;AAK9BC,UAAAA,YAAY,EAAE;AALgB,SAAzB,CAAP;;AAQF,WAAKnN,KAAE,CAAC3Z,QAAR;AACE,aAAKoK,KAAL,CAAWie,kBAAX,GAAgC,KAAhC;AACAhd,QAAAA,IAAI,GAAG,KAAKmf,kBAAL,EAAP;AACA,aAAKpgB,KAAL,CAAWie,kBAAX,GAAgCD,qBAAhC;AACA,eAAO/c,IAAP;;AAEF,WAAKsO,KAAE,CAACnX,UAAR;AACE,YAAI,KAAK4H,KAAL,CAAWiM,KAAX,KAAqB,GAAzB,EAA8B;AAC5B5L,UAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuK,iCAAL,EAAtB;AACA,eAAKnB,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AACAujB,UAAAA,GAAG,GAAG,KAAKC,2BAAL,EAAN;AACAzZ,UAAAA,IAAI,CAACoK,MAAL,GAAcoP,GAAG,CAACpP,MAAlB;AACApK,UAAAA,IAAI,CAAC0Z,IAAL,GAAYF,GAAG,CAACE,IAAhB;AACA,eAAKtB,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AAEA,eAAKkiB,MAAL,CAAYlJ,KAAE,CAACxY,KAAf;AAEAsJ,UAAAA,IAAI,CAAC2Z,UAAL,GAAkB,KAAKtB,aAAL,EAAlB;AAEA,iBAAO,KAAK1I,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AACD;;AAEF,WAAKkP,KAAE,CAACjZ,MAAR;AACE,aAAK+d,IAAL;;AAGA,YAAI,CAAC,KAAK1V,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,CAAD,IAA0B,CAAC,KAAKoI,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAA/B,EAAwD;AACtD,cAAI,KAAK0H,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAJ,EAAyB;AACvB,kBAAME,KAAK,GAAG,KAAKspB,SAAL,GAAiBxd,IAA/B;AACAuf,YAAAA,aAAa,GAAGrrB,KAAK,KAAKoa,KAAE,CAAC1Y,QAAb,IAAyB1B,KAAK,KAAKoa,KAAE,CAAC7Y,KAAtD;AACD,WAHD,MAGO;AACL8pB,YAAAA,aAAa,GAAG,IAAhB;AACD;AACF;;AAED,YAAIA,aAAJ,EAAmB;AACjB,eAAKxgB,KAAL,CAAWie,kBAAX,GAAgC,KAAhC;AACAhd,UAAAA,IAAI,GAAG,KAAKyX,aAAL,EAAP;AACA,eAAK1Y,KAAL,CAAWie,kBAAX,GAAgCD,qBAAhC;;AAGA,cACE,KAAKhe,KAAL,CAAWie,kBAAX,IACA,EACE,KAAKtf,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,KACC,KAAKmI,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,KAAyB,KAAKkoB,SAAL,GAAiBxd,IAAjB,KAA0BsO,KAAE,CAACxY,KAFzD,CAFF,EAME;AACA,iBAAK0hB,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AACA,mBAAO0K,IAAP;AACD,WATD,MASO;AAEL,iBAAK+X,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ;AACD;AACF;;AAED,YAAIyK,IAAJ,EAAU;AACR4Y,UAAAA,GAAG,GAAG,KAAKC,2BAAL,CAAiC,CACrC,KAAKwG,kCAAL,CAAwCrf,IAAxC,CADqC,CAAjC,CAAN;AAGD,SAJD,MAIO;AACL4Y,UAAAA,GAAG,GAAG,KAAKC,2BAAL,EAAN;AACD;;AAEDzZ,QAAAA,IAAI,CAACoK,MAAL,GAAcoP,GAAG,CAACpP,MAAlB;AACApK,QAAAA,IAAI,CAAC0Z,IAAL,GAAYF,GAAG,CAACE,IAAhB;AAEA,aAAKtB,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AAEA,aAAKkiB,MAAL,CAAYlJ,KAAE,CAACxY,KAAf;AAEAsJ,QAAAA,IAAI,CAAC2Z,UAAL,GAAkB,KAAKtB,aAAL,EAAlB;AAEArY,QAAAA,IAAI,CAACgP,cAAL,GAAsB,IAAtB;AAEA,eAAO,KAAKW,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAAC7Z,MAAR;AACE,eAAO,KAAK2W,YAAL,CACL,KAAKrM,KAAL,CAAWiM,KADN,EAEL,6BAFK,CAAP;;AAKF,WAAKsD,KAAE,CAAChV,KAAR;AACA,WAAKgV,KAAE,CAAC/U,MAAR;AACE6F,QAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAKtN,KAAL,CAAW4Q,KAAE,CAAChV,KAAd,CAAb;AACA,aAAK8Z,IAAL;AACA,eAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,8BAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAACjX,OAAR;AACE,YAAI,KAAK0H,KAAL,CAAWiM,KAAX,KAAqB,GAAzB,EAA8B;AAC5B,eAAKoI,IAAL;;AACA,cAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAACha,GAAd,CAAJ,EAAwB;AACtB,mBAAO,KAAK8W,YAAL,CACL,CAAC,KAAKrM,KAAL,CAAWiM,KADP,EAEL,6BAFK,EAGL5L,IAAI,CAAChC,KAHA,EAILgC,IAAI,CAACN,GAAL,CAAS1B,KAJJ,CAAP;AAMD;;AAED,cAAI,KAAKM,KAAL,CAAW4Q,KAAE,CAAC/Z,MAAd,CAAJ,EAA2B;AACzB,mBAAO,KAAK6W,YAAL,CACL,CAAC,KAAKrM,KAAL,CAAWiM,KADP,EAEL,6BAFK,EAGL5L,IAAI,CAAChC,KAHA,EAILgC,IAAI,CAACN,GAAL,CAAS1B,KAJJ,CAAP;AAMD;;AAED,gBAAM,KAAKkM,KAAL,CACJ,KAAKvK,KAAL,CAAW3B,KADP,EAEJkW,UAAU,CAACmC,4BAFP,CAAN;AAID;;AAED,cAAM,KAAKqE,UAAL,EAAN;;AACF,WAAKxL,KAAE,CAACha,GAAR;AACE,eAAO,KAAK8W,YAAL,CACL,KAAKrM,KAAL,CAAWiM,KADN,EAEL,6BAFK,CAAP;;AAKF,WAAKsD,KAAE,CAAC/Z,MAAR;AACE,eAAO,KAAK6W,YAAL,CACL,KAAKrM,KAAL,CAAWiM,KADN,EAEL,6BAFK,CAAP;;AAKF,WAAKsD,KAAE,CAAC3U,KAAR;AACE,aAAKyZ,IAAL;AACA,eAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,oBAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAACjV,KAAR;AACE,aAAK+Z,IAAL;AACA,eAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,2BAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAACvV,KAAR;AACE,aAAKqa,IAAL;AACA,eAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,oBAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAAC/W,IAAR;AACE,aAAK6b,IAAL;AACA,eAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;;AAEF;AACE,YAAI,KAAKL,KAAL,CAAWiB,IAAX,CAAgBvM,OAAhB,KAA4B,QAAhC,EAA0C;AACxC,iBAAO,KAAKwrB,mBAAL,EAAP;AACD,SAFD,MAEO,IAAI,KAAKlgB,KAAL,CAAWiB,IAAX,CAAgBvM,OAApB,EAA6B;AAClC,gBAAMF,KAAK,GAAG,KAAKwL,KAAL,CAAWiB,IAAX,CAAgBzM,KAA9B;AACA,eAAK6f,IAAL;AACA,iBAAO,MAAMoM,gBAAN,CAAuBpgB,IAAvB,EAA6B7L,KAA7B,CAAP;AACD;;AAxLL;;AA2LA,UAAM,KAAKumB,UAAL,EAAN;AACD;;AAED2F,EAAAA,oBAAoB,GAAyB;AAC3C,UAAMlR,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AAAA,UACE4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QADxB;AAEA,QAAIhJ,IAAI,GAAG,KAAKkf,oBAAL,EAAX;;AACA,WAAO,KAAKxhB,KAAL,CAAW4Q,KAAE,CAAC3Z,QAAd,KAA2B,CAAC,KAAK+qB,kBAAL,EAAnC,EAA8D;AAC5D,YAAMtgB,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,MAAAA,IAAI,CAACugB,WAAL,GAAmB3f,IAAnB;AACA,WAAKwX,MAAL,CAAYlJ,KAAE,CAAC3Z,QAAf;AACA,WAAK6iB,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACAkL,MAAAA,IAAI,GAAG,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;AACD;;AACD,WAAOY,IAAP;AACD;;AAED4f,EAAAA,mBAAmB,GAAyB;AAC1C,UAAMxgB,IAAI,GAAG,KAAK0P,SAAL,EAAb;;AACA,QAAI,KAAKiJ,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzBwJ,MAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAK4G,mBAAL,EAAtB;AACA,aAAO,KAAK7Q,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD,KAHD,MAGO;AACL,aAAO,KAAKqgB,oBAAL,EAAP;AACD;AACF;;AAEDI,EAAAA,kCAAkC,GAAyB;AACzD,UAAMC,KAAK,GAAG,KAAKF,mBAAL,EAAd;;AACA,QAAI,CAAC,KAAK7gB,KAAL,CAAWie,kBAAZ,IAAkC,KAAKjF,GAAL,CAASzJ,KAAE,CAACxY,KAAZ,CAAtC,EAA0D;AAExD,YAAMsJ,IAAI,GAAG,KAAKqM,WAAL,CAAiBqU,KAAK,CAAC1iB,KAAvB,EAA8B0iB,KAAK,CAAChhB,GAAN,CAAU1B,KAAxC,CAAb;AACAgC,MAAAA,IAAI,CAACoK,MAAL,GAAc,CAAC,KAAK6V,kCAAL,CAAwCS,KAAxC,CAAD,CAAd;AACA1gB,MAAAA,IAAI,CAAC0Z,IAAL,GAAY,IAAZ;AACA1Z,MAAAA,IAAI,CAAC2Z,UAAL,GAAkB,KAAKtB,aAAL,EAAlB;AACArY,MAAAA,IAAI,CAACgP,cAAL,GAAsB,IAAtB;AACA,aAAO,KAAKW,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AACD,WAAO0gB,KAAP;AACD;;AAEDC,EAAAA,yBAAyB,GAAyB;AAChD,UAAM3gB,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAKiJ,GAAL,CAASzJ,KAAE,CAACrX,UAAZ;AACA,UAAM+I,IAAI,GAAG,KAAK6f,kCAAL,EAAb;AACAzgB,IAAAA,IAAI,CAAC/K,KAAL,GAAa,CAAC2L,IAAD,CAAb;;AACA,WAAO,KAAK+X,GAAL,CAASzJ,KAAE,CAACrX,UAAZ,CAAP,EAAgC;AAC9BmI,MAAAA,IAAI,CAAC/K,KAAL,CAAW4K,IAAX,CAAgB,KAAK4gB,kCAAL,EAAhB;AACD;;AACD,WAAOzgB,IAAI,CAAC/K,KAAL,CAAWoK,MAAX,KAAsB,CAAtB,GACHuB,IADG,GAEH,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsB,4BAAtB,CAFJ;AAGD;;AAED4gB,EAAAA,kBAAkB,GAAyB;AACzC,UAAM5gB,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAKiJ,GAAL,CAASzJ,KAAE,CAACvX,SAAZ;AACA,UAAMiJ,IAAI,GAAG,KAAK+f,yBAAL,EAAb;AACA3gB,IAAAA,IAAI,CAAC/K,KAAL,GAAa,CAAC2L,IAAD,CAAb;;AACA,WAAO,KAAK+X,GAAL,CAASzJ,KAAE,CAACvX,SAAZ,CAAP,EAA+B;AAC7BqI,MAAAA,IAAI,CAAC/K,KAAL,CAAW4K,IAAX,CAAgB,KAAK8gB,yBAAL,EAAhB;AACD;;AACD,WAAO3gB,IAAI,CAAC/K,KAAL,CAAWoK,MAAX,KAAsB,CAAtB,GACHuB,IADG,GAEH,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAFJ;AAGD;;AAEDqY,EAAAA,aAAa,GAAyB;AACpC,UAAMH,SAAS,GAAG,KAAKvY,KAAL,CAAWwY,MAA7B;AACA,SAAKxY,KAAL,CAAWwY,MAAX,GAAoB,IAApB;AACA,UAAMvX,IAAI,GAAG,KAAKggB,kBAAL,EAAb;AACA,SAAKjhB,KAAL,CAAWwY,MAAX,GAAoBD,SAApB;AAGA,SAAKvY,KAAL,CAAW+R,WAAX,GACE,KAAK/R,KAAL,CAAW+R,WAAX,IAA0B,KAAK/R,KAAL,CAAWie,kBADvC;AAEA,WAAOhd,IAAP;AACD;;AAEDkd,EAAAA,oCAAoC,GAAyB;AAC3D,QAAI,KAAKne,KAAL,CAAWiB,IAAX,KAAoBsO,KAAE,CAACta,IAAvB,IAA+B,KAAK+K,KAAL,CAAWiM,KAAX,KAAqB,GAAxD,EAA6D;AAC3D,YAAMuD,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,YAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,YAAM5J,IAAI,GAAG,KAAKmZ,eAAL,EAAb;AACA,aAAO,KAAKyG,oBAAL,CAA0BzQ,QAA1B,EAAoCvF,QAApC,EAA8C5J,IAA9C,CAAP;AACD,KALD,MAKO;AACL,aAAO,KAAKqY,aAAL,EAAP;AACD;AACF;;AAEDkD,EAAAA,uBAAuB,GAAyB;AAC9C,UAAMvb,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA1P,IAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAK5B,wBAAL,EAAtB;AACA,WAAO,KAAKrI,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAED2a,EAAAA,kCAAkC,CAChCkG,sBADgC,EAElB;AACd,UAAMxD,KAAK,GAAGwD,sBAAsB,GAChC,KAAK1H,eAAL,EADgC,GAEhC,KAAKwC,6BAAL,EAFJ;;AAGA,QAAI,KAAKrd,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxBgnB,MAAAA,KAAK,CAACzD,cAAN,GAAuB,KAAK2B,uBAAL,EAAvB;AACA,WAAK1B,gBAAL,CAAsBwD,KAAtB;AACD;;AACD,WAAOA,KAAP;AACD;;AAEDyD,EAAAA,mBAAmB,CAAC9gB,IAAD,EAAuB;AACxCA,IAAAA,IAAI,CAACsM,UAAL,CAAgBsN,cAAhB,GAAiC5Z,IAAI,CAAC4Z,cAAtC;AAEA,SAAKC,gBAAL,CACE7Z,IAAI,CAACsM,UADP,EAEEtM,IAAI,CAAC4Z,cAAL,CAAoB3b,GAFtB,EAGE+B,IAAI,CAAC4Z,cAAL,CAAoBla,GAApB,CAAwBzB,GAH1B;AAMA,WAAO+B,IAAI,CAACsM,UAAZ;AACD;;AAED8Q,EAAAA,iBAAiB,GAAoB;AACnC,QAAID,QAAQ,GAAG,IAAf;;AACA,QAAI,KAAK7e,KAAL,CAAW4Q,KAAE,CAACjX,OAAd,CAAJ,EAA4B;AAC1BklB,MAAAA,QAAQ,GAAG,KAAKzN,SAAL,EAAX;;AACA,UAAI,KAAK/P,KAAL,CAAWiM,KAAX,KAAqB,GAAzB,EAA8B;AAC5BuR,QAAAA,QAAQ,CAACjS,IAAT,GAAgB,MAAhB;AACD,OAFD,MAEO;AACLiS,QAAAA,QAAQ,CAACjS,IAAT,GAAgB,OAAhB;AACD;;AACD,WAAK8I,IAAL;AACA,WAAKrE,UAAL,CAAgBwN,QAAhB,EAA0B,UAA1B;AACD;;AACD,WAAOA,QAAP;AACD;;AAMD/N,EAAAA,iBAAiB,CACfpP,IADe,EAEf+gB,mBAFe,EAGfzR,QAAkB,GAAG,KAHN,EAIT;AACN,QAAIyR,mBAAJ,EAAyB;AACvB,aAAO,KAAKC,gCAAL,CAAsChhB,IAAtC,EAA4C,MACjD,MAAMoP,iBAAN,CAAwBpP,IAAxB,EAA8B,IAA9B,EAAoCsP,QAApC,CADK,CAAP;AAGD;;AAED,WAAO,MAAMF,iBAAN,CAAwBpP,IAAxB,EAA8B,KAA9B,EAAqCsP,QAArC,CAAP;AACD;;AAED2R,EAAAA,0BAA0B,CACxBjhB,IADwB,EAExBY,IAFwB,EAGxB0O,QAAkB,GAAG,KAHG,EAIlB;AACN,QAAI,KAAKhR,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB,YAAM+iB,QAAQ,GAAG,KAAK1J,SAAL,EAAjB;AAEA,OAEE0J,QAAQ,CAACQ,cAFX,EAIE5Z,IAAI,CAAC8Y,SAJP,IAKI,KAAKD,oCAAL,EALJ;AAOA7Y,MAAAA,IAAI,CAAC2Z,UAAL,GAAkBP,QAAQ,CAACQ,cAAT,GACd,KAAKjK,UAAL,CAAgByJ,QAAhB,EAA0B,gBAA1B,CADc,GAEd,IAFJ;AAGD;;AAED,UAAM6H,0BAAN,CAAiCjhB,IAAjC,EAAuCY,IAAvC,EAA6C0O,QAA7C;AACD;;AAGD4R,EAAAA,cAAc,CAACzP,OAAD,EAAmBrD,QAAnB,EAAoD;AAEhE,QACE,KAAKzO,KAAL,CAAWsT,MAAX,IACA,KAAK3U,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CADA,IAEA,KAAK+K,KAAL,CAAWiM,KAAX,KAAqB,WAHvB,EAIE;AACA,YAAM5L,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,WAAKsE,IAAL;AACA,aAAO,KAAKwI,kBAAL,CAAwBxc,IAAxB,CAAP;AACD,KARD,MAQO,IAAI,KAAK2X,gBAAL,MAA2B,KAAK0C,YAAL,CAAkB,MAAlB,CAA/B,EAA0D;AAC/D,YAAMra,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,WAAKsE,IAAL;AACA,aAAO,KAAKmN,wBAAL,CAA8BnhB,IAA9B,CAAP;AACD,KAJM,MAIA;AACL,YAAMoM,IAAI,GAAG,MAAM8U,cAAN,CAAqBzP,OAArB,EAA8BrD,QAA9B,CAAb;;AAEA,UAAI,KAAKqJ,UAAL,KAAoB/W,SAApB,IAAiC,CAAC,KAAKqN,gBAAL,CAAsB3B,IAAtB,CAAtC,EAAmE;AACjE,aAAKqL,UAAL,GAAkB,IAAlB;AACD;;AACD,aAAOrL,IAAP;AACD;AACF;;AAGDgV,EAAAA,wBAAwB,CACtBphB,IADsB,EAEtBiN,IAFsB,EAGC;AACvB,QAAIA,IAAI,CAACrM,IAAL,KAAc,YAAlB,EAAgC;AAC9B,UAAIqM,IAAI,CAACrY,IAAL,KAAc,SAAlB,EAA6B;AAC3B,YACE,KAAK0J,KAAL,CAAW4Q,KAAE,CAACrV,MAAd,KACA,KAAKyE,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CADA,IAEA,KAAK0J,KAAL,CAAW4Q,KAAE,CAAClW,SAAd,CAFA,IAGA,KAAKsF,KAAL,CAAW4Q,KAAE,CAAC5V,IAAd,CAHA,IAIA,KAAKgF,KAAL,CAAW4Q,KAAE,CAACnV,OAAd,CALF,EAME;AACA,iBAAO,KAAKggB,gBAAL,CAAsB/Z,IAAtB,CAAP;AACD;AACF,OAVD,MAUO,IAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAJ,EAAyB;AAC9B,YAAIqY,IAAI,CAACrY,IAAL,KAAc,WAAlB,EAA+B;AAC7B,iBAAO,KAAK4nB,kBAAL,CAAwBxc,IAAxB,CAAP;AACD,SAFD,MAEO,IAAIiN,IAAI,CAACrY,IAAL,KAAc,MAAlB,EAA0B;AAC/B,iBAAO,KAAK4mB,kBAAL,CAAwBxb,IAAxB,CAAP;AACD,SAFM,MAEA,IAAIiN,IAAI,CAACrY,IAAL,KAAc,QAAlB,EAA4B;AACjC,iBAAO,KAAK6mB,mBAAL,CAAyBzb,IAAzB,EAA+B,KAA/B,CAAP;AACD;AACF;AACF;;AAED,WAAO,MAAMohB,wBAAN,CAA+BphB,IAA/B,EAAqCiN,IAArC,CAAP;AACD;;AAGDoU,EAAAA,4BAA4B,GAAY;AACtC,WACE,KAAKhH,YAAL,CAAkB,MAAlB,KACA,KAAKA,YAAL,CAAkB,WAAlB,CADA,IAEA,KAAKA,YAAL,CAAkB,QAAlB,CAFA,IAGC,KAAK1C,gBAAL,MAA2B,KAAK0C,YAAL,CAAkB,MAAlB,CAH5B,IAIA,MAAMgH,4BAAN,EALF;AAOD;;AAEDC,EAAAA,wBAAwB,GAAY;AAClC,QACE,KAAKhjB,KAAL,CAAW4Q,KAAE,CAACta,IAAd,MACC,KAAK+K,KAAL,CAAWiM,KAAX,KAAqB,MAArB,IACC,KAAKjM,KAAL,CAAWiM,KAAX,KAAqB,WADtB,IAEC,KAAKjM,KAAL,CAAWiM,KAAX,KAAqB,QAFtB,IAGE,KAAK+L,gBAAL,MAA2B,KAAKhY,KAAL,CAAWiM,KAAX,KAAqB,MAJnD,CADF,EAME;AACA,aAAO,KAAP;AACD;;AAED,WAAO,MAAM0V,wBAAN,EAAP;AACD;;AAEDC,EAAAA,4BAA4B,GAAiC;AAC3D,QAAI,KAAK5J,gBAAL,MAA2B,KAAK0C,YAAL,CAAkB,MAAlB,CAA/B,EAA0D;AACxD,YAAMra,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,WAAKsE,IAAL;AACA,aAAO,KAAKmN,wBAAL,CAA8BnhB,IAA9B,CAAP;AACD;;AACD,WAAO,MAAMuhB,4BAAN,EAAP;AACD;;AAEDC,EAAAA,gBAAgB,CACdvU,IADc,EAEdwU,IAFc,EAGdtS,QAHc,EAIdvF,QAJc,EAKd8X,gBALc,EAMA;AACd,QAAI,CAAC,KAAKpjB,KAAL,CAAW4Q,KAAE,CAAC1Y,QAAd,CAAL,EAA8B,OAAOyW,IAAP;;AAI9B,QAAIyU,gBAAJ,EAAsB;AACpB,YAAMC,MAAM,GAAG,KAAKC,QAAL,CAAc,MAC3B,MAAMJ,gBAAN,CAAuBvU,IAAvB,EAA6BwU,IAA7B,EAAmCtS,QAAnC,EAA6CvF,QAA7C,CADa,CAAf;;AAIA,UAAI,CAAC+X,MAAM,CAAC3hB,IAAZ,EAAkB;AAEhB0hB,QAAAA,gBAAgB,CAAC1jB,KAAjB,GAAyB2jB,MAAM,CAACE,KAAP,CAAalY,GAAb,IAAoB,KAAKhK,KAAL,CAAW3B,KAAxD;AACA,eAAOiP,IAAP;AACD;;AAED,UAAI0U,MAAM,CAACE,KAAX,EAAkB,KAAKliB,KAAL,GAAagiB,MAAM,CAACG,SAApB;AAClB,aAAOH,MAAM,CAAC3hB,IAAd;AACD;;AAED,SAAKoY,MAAL,CAAYlJ,KAAE,CAAC1Y,QAAf;AACA,UAAMmJ,KAAK,GAAG,KAAKA,KAAL,CAAWoiB,KAAX,EAAd;AACA,UAAMC,iBAAiB,GAAG,KAAKriB,KAAL,CAAWsiB,SAArC;AACA,UAAMjiB,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA,QAAI;AAAEsY,MAAAA,UAAF;AAAcC,MAAAA;AAAd,QAAyB,KAAKC,6BAAL,EAA7B;AACA,QAAI,CAACC,KAAD,EAAQC,OAAR,IAAmB,KAAKC,uBAAL,CAA6BL,UAA7B,CAAvB;;AAEA,QAAIC,MAAM,IAAIG,OAAO,CAACjjB,MAAR,GAAiB,CAA/B,EAAkC;AAChC,YAAM4iB,SAAS,GAAG,CAAC,GAAGD,iBAAJ,CAAlB;;AAEA,UAAIM,OAAO,CAACjjB,MAAR,GAAiB,CAArB,EAAwB;AACtB,aAAKM,KAAL,GAAaA,KAAb;AACA,aAAKA,KAAL,CAAWsiB,SAAX,GAAuBA,SAAvB;;AAEA,aAAK,IAAI7hB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkiB,OAAO,CAACjjB,MAA5B,EAAoCe,CAAC,EAArC,EAAyC;AACvC6hB,UAAAA,SAAS,CAACpiB,IAAV,CAAeyiB,OAAO,CAACliB,CAAD,CAAP,CAAWpC,KAA1B;AACD;;AAED,SAAC;AAAEkkB,UAAAA,UAAF;AAAcC,UAAAA;AAAd,YAAyB,KAAKC,6BAAL,EAA1B;AACA,SAACC,KAAD,EAAQC,OAAR,IAAmB,KAAKC,uBAAL,CAA6BL,UAA7B,CAAnB;AACD;;AAED,UAAIC,MAAM,IAAIE,KAAK,CAAChjB,MAAN,GAAe,CAA7B,EAAgC;AAM9B,aAAK6K,KAAL,CAAWvK,KAAK,CAAC3B,KAAjB,EAAwBkW,UAAU,CAACC,yBAAnC;AACD;;AAED,UAAIgO,MAAM,IAAIE,KAAK,CAAChjB,MAAN,KAAiB,CAA/B,EAAkC;AAChC,aAAKM,KAAL,GAAaA,KAAb;AACA,aAAKA,KAAL,CAAWsiB,SAAX,GAAuBA,SAAS,CAACxT,MAAV,CAAiB4T,KAAK,CAAC,CAAD,CAAL,CAASrkB,KAA1B,CAAvB;AACA,SAAC;AAAEkkB,UAAAA,UAAF;AAAcC,UAAAA;AAAd,YAAyB,KAAKC,6BAAL,EAA1B;AACD;AACF;;AAED,SAAKG,uBAAL,CAA6BL,UAA7B,EAAyC,IAAzC;AAEA,SAAKviB,KAAL,CAAWsiB,SAAX,GAAuBD,iBAAvB;AACA,SAAK5J,MAAL,CAAYlJ,KAAE,CAAC7Y,KAAf;AAEA2J,IAAAA,IAAI,CAACoS,IAAL,GAAYnF,IAAZ;AACAjN,IAAAA,IAAI,CAACkiB,UAAL,GAAkBA,UAAlB;AACAliB,IAAAA,IAAI,CAACwiB,SAAL,GAAiB,KAAKxB,gCAAL,CAAsChhB,IAAtC,EAA4C,MAC3D,KAAKyiB,gBAAL,CAAsBhB,IAAtB,EAA4B/gB,SAA5B,EAAuCA,SAAvC,EAAkDA,SAAlD,CADe,CAAjB;AAIA,WAAO,KAAKiP,UAAL,CAAgB3P,IAAhB,EAAsB,uBAAtB,CAAP;AACD;;AAEDoiB,EAAAA,6BAA6B,GAG3B;AACA,SAAKziB,KAAL,CAAW+iB,yBAAX,CAAqC7iB,IAArC,CAA0C,KAAKF,KAAL,CAAW3B,KAArD;AAEA,UAAMkkB,UAAU,GAAG,KAAKO,gBAAL,EAAnB;AACA,UAAMN,MAAM,GAAG,CAAC,KAAK7jB,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAhB;AAEA,SAAKsJ,KAAL,CAAW+iB,yBAAX,CAAqCxhB,GAArC;AAEA,WAAO;AAAEghB,MAAAA,UAAF;AAAcC,MAAAA;AAAd,KAAP;AACD;;AASDI,EAAAA,uBAAuB,CACrBviB,IADqB,EAErB2iB,eAFqB,EAGuC;AAC5D,UAAMvjB,KAAK,GAAG,CAACY,IAAD,CAAd;AACA,UAAM4iB,MAAmC,GAAG,EAA5C;;AAEA,WAAOxjB,KAAK,CAACC,MAAN,KAAiB,CAAxB,EAA2B;AACzB,YAAMW,IAAI,GAAGZ,KAAK,CAAC8B,GAAN,EAAb;;AACA,UAAIlB,IAAI,CAACY,IAAL,KAAc,yBAAlB,EAA6C;AAC3C,YAAIZ,IAAI,CAACgP,cAAL,IAAuB,CAAChP,IAAI,CAAC2Z,UAAjC,EAA6C;AAE3C,eAAKkJ,qBAAL,CAA2B7iB,IAA3B;AACD,SAHD,MAGO;AACL4iB,UAAAA,MAAM,CAAC/iB,IAAP,CAAYG,IAAZ;AACD;;AACDZ,QAAAA,KAAK,CAACS,IAAN,CAAWG,IAAI,CAACa,IAAhB;AACD,OARD,MAQO,IAAIb,IAAI,CAACY,IAAL,KAAc,uBAAlB,EAA2C;AAChDxB,QAAAA,KAAK,CAACS,IAAN,CAAWG,IAAI,CAACkiB,UAAhB;AACA9iB,QAAAA,KAAK,CAACS,IAAN,CAAWG,IAAI,CAACwiB,SAAhB;AACD;AACF;;AAED,QAAIG,eAAJ,EAAqB;AACnBC,MAAAA,MAAM,CAACtV,OAAP,CAAetN,IAAI,IAAI,KAAK6iB,qBAAL,CAA2B7iB,IAA3B,CAAvB;AACA,aAAO,CAAC4iB,MAAD,EAAS,EAAT,CAAP;AACD;;AAED,WAAOxL,SAAS,CAACwL,MAAD,EAAS5iB,IAAI,IAC3BA,IAAI,CAACoK,MAAL,CAAY0Y,KAAZ,CAAkBpC,KAAK,IAAI,KAAKqC,YAAL,CAAkBrC,KAAlB,EAAyB,IAAzB,CAA3B,CADc,CAAhB;AAGD;;AAEDmC,EAAAA,qBAAqB,CAAC7iB,IAAD,EAAkC;AAAA;;AACrD,SAAKgjB,gBAAL,CAGIhjB,IAAI,CAACoK,MAHT,iBAIEpK,IAAI,CAACwM,KAJP,qBAIE,YAAYyW,aAJd;AAOA,SAAKrI,KAAL,CAAWE,KAAX,CAAiBngB,cAAc,GAAGC,WAAlC;AAEA,UAAMsoB,WAAN,CAAkBljB,IAAlB,EAAwB,KAAxB,EAA+B,IAA/B;AACA,SAAK4a,KAAL,CAAWK,IAAX;AACD;;AAED+F,EAAAA,gCAAgC,CAAIhhB,IAAJ,EAAkBmjB,KAAlB,EAAqC;AACnE,QAAIxB,MAAJ;;AACA,QAAI,KAAKhiB,KAAL,CAAW+iB,yBAAX,CAAqCU,OAArC,CAA6CpjB,IAAI,CAAChC,KAAlD,MAA6D,CAAC,CAAlE,EAAqE;AACnE,WAAK2B,KAAL,CAAW+iB,yBAAX,CAAqC7iB,IAArC,CAA0C,KAAKF,KAAL,CAAW3B,KAArD;AACA2jB,MAAAA,MAAM,GAAGwB,KAAK,EAAd;AACA,WAAKxjB,KAAL,CAAW+iB,yBAAX,CAAqCxhB,GAArC;AACD,KAJD,MAIO;AACLygB,MAAAA,MAAM,GAAGwB,KAAK,EAAd;AACD;;AAED,WAAOxB,MAAP;AACD;;AAED0B,EAAAA,cAAc,CACZrjB,IADY,EAEZmP,QAFY,EAGZvF,QAHY,EAIE;AACd5J,IAAAA,IAAI,GAAG,MAAMqjB,cAAN,CAAqBrjB,IAArB,EAA2BmP,QAA3B,EAAqCvF,QAArC,CAAP;;AACA,QAAI,KAAK+O,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzBwJ,MAAAA,IAAI,CAACoQ,QAAL,GAAgB,IAAhB;AAIA,WAAKyJ,gBAAL,CAAsB7Z,IAAtB;AACD;;AAED,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB,YAAMitB,YAAY,GAAG,KAAKjX,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAArB;AACA0Z,MAAAA,YAAY,CAAChX,UAAb,GAA0BtM,IAA1B;AACAsjB,MAAAA,YAAY,CAAC1J,cAAb,GAA8B,KAAK2B,uBAAL,EAA9B;AAEA,aAAO,KAAK5L,UAAL,CAAgB2T,YAAhB,EAA8B,oBAA9B,CAAP;AACD;;AAED,WAAOtjB,IAAP;AACD;;AAEDujB,EAAAA,uBAAuB,CAACvjB,IAAD,EAAe;AACpC,QACGA,IAAI,CAACY,IAAL,KAAc,mBAAd,KACEZ,IAAI,CAAC8W,UAAL,KAAoB,MAApB,IAA8B9W,IAAI,CAAC8W,UAAL,KAAoB,QADpD,CAAD,IAEC9W,IAAI,CAACY,IAAL,KAAc,wBAAd,IACCZ,IAAI,CAACsb,UAAL,KAAoB,MAHtB,IAICtb,IAAI,CAACY,IAAL,KAAc,sBAAd,IAAwCZ,IAAI,CAACsb,UAAL,KAAoB,MAL/D,EAME;AAGA;AACD;;AAED,UAAMiI,uBAAN,CAA8BvjB,IAA9B;AACD;;AAEDyQ,EAAAA,WAAW,CAACzQ,IAAD,EAA4B;AACrC,UAAMwjB,IAAI,GAAG,MAAM/S,WAAN,CAAkBzQ,IAAlB,CAAb;;AACA,QACEwjB,IAAI,CAAC5iB,IAAL,KAAc,wBAAd,IACA4iB,IAAI,CAAC5iB,IAAL,KAAc,sBAFhB,EAGE;AACA4iB,MAAAA,IAAI,CAAClI,UAAL,GAAkBkI,IAAI,CAAClI,UAAL,IAAmB,OAArC;AACD;;AACD,WAAOkI,IAAP;AACD;;AAEDC,EAAAA,sBAAsB,CAACzjB,IAAD,EAAiD;AACrE,QAAI,KAAKqa,YAAL,CAAkB,MAAlB,CAAJ,EAA+B;AAC7Bra,MAAAA,IAAI,CAACsb,UAAL,GAAkB,MAAlB;AAEA,YAAMoI,eAAe,GAAG,KAAKhU,SAAL,EAAxB;AACA,WAAKsE,IAAL;;AAEA,UAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAJ,EAA2B;AAEzBoK,QAAAA,IAAI,CAAC2Q,UAAL,GAAkB,KAAKgT,qBAAL,EAAlB;AACA,aAAKC,eAAL,CAAqB5jB,IAArB;AACA,eAAO,IAAP;AACD,OALD,MAKO;AAEL,eAAO,KAAKwb,kBAAL,CAAwBkI,eAAxB,CAAP;AACD;AACF,KAfD,MAeO,IAAI,KAAKrJ,YAAL,CAAkB,QAAlB,CAAJ,EAAiC;AACtCra,MAAAA,IAAI,CAACsb,UAAL,GAAkB,MAAlB;AAEA,YAAMoI,eAAe,GAAG,KAAKhU,SAAL,EAAxB;AACA,WAAKsE,IAAL;AAEA,aAAO,KAAKyH,mBAAL,CAAyBiI,eAAzB,EAA0C,KAA1C,CAAP;AACD,KAPM,MAOA,IAAI,KAAKrJ,YAAL,CAAkB,WAAlB,CAAJ,EAAoC;AACzCra,MAAAA,IAAI,CAACsb,UAAL,GAAkB,MAAlB;AACA,YAAMoI,eAAe,GAAG,KAAKhU,SAAL,EAAxB;AACA,WAAKsE,IAAL;AACA,aAAO,KAAKwI,kBAAL,CAAwBkH,eAAxB,CAAP;AACD,KALM,MAKA,IAAI,KAAK/L,gBAAL,MAA2B,KAAK0C,YAAL,CAAkB,MAAlB,CAA/B,EAA0D;AAC/Dra,MAAAA,IAAI,CAACsb,UAAL,GAAkB,OAAlB;AACA,YAAMoI,eAAe,GAAG,KAAKhU,SAAL,EAAxB;AACA,WAAKsE,IAAL;AACA,aAAO,KAAKmN,wBAAL,CAA8BuC,eAA9B,CAAP;AACD,KALM,MAKA;AACL,aAAO,MAAMD,sBAAN,CAA6BzjB,IAA7B,CAAP;AACD;AACF;;AAED6jB,EAAAA,aAAa,CAAC7jB,IAAD,EAAwB;AACnC,QAAI,MAAM6jB,aAAN,CAAoB,GAAGziB,SAAvB,CAAJ,EAAuC,OAAO,IAAP;;AAEvC,QAAI,KAAKiZ,YAAL,CAAkB,MAAlB,KAA6B,KAAK+D,SAAL,GAAiBxd,IAAjB,KAA0BsO,KAAE,CAAC/W,IAA9D,EAAoE;AAClE6H,MAAAA,IAAI,CAACsb,UAAL,GAAkB,MAAlB;AACA,WAAKtH,IAAL;AACA,WAAKA,IAAL;AACA,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD;;AAED8P,EAAAA,kCAAkC,CAAC9jB,IAAD,EAAwB;AACxD,UAAM2J,GAAG,GAAG,KAAKhK,KAAL,CAAW3B,KAAvB;AACA,UAAM+lB,YAAY,GAAG,MAAMD,kCAAN,CAAyC9jB,IAAzC,CAArB;;AACA,QAAI+jB,YAAY,IAAI/jB,IAAI,CAACsb,UAAL,KAAoB,MAAxC,EAAgD;AAC9C,WAAKZ,UAAL,CAAgB/Q,GAAhB;AACD;;AACD,WAAOoa,YAAP;AACD;;AAEDC,EAAAA,YAAY,CAAChkB,IAAD,EAAgBikB,WAAhB,EAAsCC,UAAtC,EAA4D;AACtE,UAAMF,YAAN,CAAmBhkB,IAAnB,EAAyBikB,WAAzB,EAAsCC,UAAtC;;AACA,QAAI,KAAK5K,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuK,iCAAL,EAAtB;AACD;AACF;;AAED4K,EAAAA,gBAAgB,CACdxV,SADc,EAEdyV,MAFc,EAGdzkB,KAHc,EAId0kB,sBAJc,EAKR;AACN,UAAM1a,GAAG,GAAG,KAAKhK,KAAL,CAAW3B,KAAvB;;AACA,QAAI,KAAKqc,YAAL,CAAkB,SAAlB,CAAJ,EAAkC;AAChC,UAAI,KAAKiK,4BAAL,CAAkC3V,SAAlC,EAA6CyV,MAA7C,CAAJ,EAA0D;AAExD;AACD;;AAEDA,MAAAA,MAAM,CAACvH,OAAP,GAAiB,IAAjB;AACD;;AAED,UAAMsH,gBAAN,CAAuBxV,SAAvB,EAAkCyV,MAAlC,EAA0CzkB,KAA1C,EAAiD0kB,sBAAjD;;AAEA,QAAID,MAAM,CAACvH,OAAX,EAAoB;AAClB,UACEuH,MAAM,CAACxjB,IAAP,KAAgB,eAAhB,IACAwjB,MAAM,CAACxjB,IAAP,KAAgB,sBAFlB,EAGE;AACA,aAAKsJ,KAAL,CAAWP,GAAX,EAAgBuK,UAAU,CAACI,mBAA3B;AACD,OALD,MAKO,IAAI8P,MAAM,CAACxY,KAAX,EAAkB;AACvB,aAAK1B,KAAL,CACEka,MAAM,CAACxY,KAAP,CAAa5N,KADf,EAEEkW,UAAU,CAACK,4BAFb;AAID;AACF;AACF;;AAGDgQ,EAAAA,gBAAgB,CAAC/mB,IAAD,EAAqB;AACnC,UAAMwW,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AACA,QAAInM,IAAI,QAAJ,IAAqCwW,IAAI,QAA7C,EAAyE;AACvE,aAAO,KAAKyQ,QAAL,CAAcvV,KAAE,CAACrZ,SAAjB,EAA4B,CAA5B,CAAP;AACD,KAFD,MAEO,IACL,KAAK8J,KAAL,CAAWwY,MAAX,KACC3a,IAAI,OAAJ,IAAkCA,IAAI,OADvC,CADK,EAGL;AACA,aAAO,KAAKinB,QAAL,CAAcvV,KAAE,CAACnX,UAAjB,EAA6B,CAA7B,CAAP;AACD,KALM,MAKA,IAAI+b,eAAe,CAACtW,IAAD,EAAOwW,IAAP,CAAnB,EAAiC;AACtC,WAAKrU,KAAL,CAAWsS,UAAX,GAAwB,IAAxB;AACA,aAAO,MAAMyS,QAAN,EAAP;AACD,KAHM,MAGA;AACL,aAAO,MAAMH,gBAAN,CAAuB/mB,IAAvB,CAAP;AACD;AACF;;AAEDulB,EAAAA,YAAY,CAAC/iB,IAAD,EAAe2kB,SAAf,EAA6C;AACvD,YAAQ3kB,IAAI,CAACY,IAAb;AACE,WAAK,YAAL;AACA,WAAK,eAAL;AACA,WAAK,cAAL;AACA,WAAK,mBAAL;AACE,eAAO,IAAP;;AAEF,WAAK,kBAAL;AAAyB;AACvB,gBAAMzB,IAAI,GAAGa,IAAI,CAACmB,UAAL,CAAgB9B,MAAhB,GAAyB,CAAtC;AACA,iBAAOW,IAAI,CAACmB,UAAL,CAAgB2hB,KAAhB,CAAsB,CAAChW,IAAD,EAAO1M,CAAP,KAAa;AACxC,mBACE0M,IAAI,CAAClM,IAAL,KAAc,cAAd,KACCR,CAAC,KAAKjB,IAAN,IAAc2N,IAAI,CAAClM,IAAL,KAAc,eAD7B,KAEA,KAAKmiB,YAAL,CAAkBjW,IAAlB,CAHF;AAKD,WANM,CAAP;AAOD;;AAED,WAAK,gBAAL;AACE,eAAO,KAAKiW,YAAL,CAAkB/iB,IAAI,CAAC4L,KAAvB,CAAP;;AAEF,WAAK,eAAL;AACE,eAAO,KAAKmX,YAAL,CAAkB/iB,IAAI,CAACsf,QAAvB,CAAP;;AAEF,WAAK,iBAAL;AACE,eAAOtf,IAAI,CAACC,QAAL,CAAc6iB,KAAd,CAAoB8B,OAAO,IAAI,KAAK7B,YAAL,CAAkB6B,OAAlB,CAA/B,CAAP;;AAEF,WAAK,sBAAL;AACE,eAAO5kB,IAAI,CAAC6kB,QAAL,KAAkB,GAAzB;;AAEF,WAAK,yBAAL;AACA,WAAK,oBAAL;AACE,eAAO,KAAK9B,YAAL,CAAkB/iB,IAAI,CAACsM,UAAvB,CAAP;;AAEF,WAAK,kBAAL;AACA,WAAK,0BAAL;AACE,eAAO,CAACqY,SAAR;;AAEF;AACE,eAAO,KAAP;AAvCJ;AAyCD;;AAED3U,EAAAA,YAAY,CAAChQ,IAAD,EAAuB;AACjC,QAAIA,IAAI,CAACY,IAAL,KAAc,oBAAlB,EAAwC;AACtC,aAAO,MAAMoP,YAAN,CAAmB,KAAK8Q,mBAAL,CAAyB9gB,IAAzB,CAAnB,CAAP;AACD,KAFD,MAEO;AACL,aAAO,MAAMgQ,YAAN,CAAmBhQ,IAAnB,CAAP;AACD;AACF;;AAGDgjB,EAAAA,gBAAgB,CACdzS,QADc,EAEduU,gBAFc,EAGa;AAC3B,SAAK,IAAI1kB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmQ,QAAQ,CAAClR,MAA7B,EAAqCe,CAAC,EAAtC,EAA0C;AACxC,YAAM6M,IAAI,GAAGsD,QAAQ,CAACnQ,CAAD,CAArB;;AACA,UAAI6M,IAAI,IAAIA,IAAI,CAACrM,IAAL,KAAc,oBAA1B,EAAgD;AAC9C2P,QAAAA,QAAQ,CAACnQ,CAAD,CAAR,GAAc,KAAK0gB,mBAAL,CAAyB7T,IAAzB,CAAd;AACD;AACF;;AACD,WAAO,MAAM+V,gBAAN,CAAuBzS,QAAvB,EAAiCuU,gBAAjC,CAAP;AACD;;AAIDC,EAAAA,gBAAgB,CACdxU,QADc,EAEdC,mBAFc,EAGiB;AAC/B,SAAK,IAAIpQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmQ,QAAQ,CAAClR,MAA7B,EAAqCe,CAAC,EAAtC,EAA0C;AACxC,YAAM6M,IAAI,GAAGsD,QAAQ,CAACnQ,CAAD,CAArB;;AACA,UACE6M,IAAI,IACJA,IAAI,CAACrM,IAAL,KAAc,oBADd,KAEC,CAACqM,IAAI,CAACT,KAAN,IAAe,CAACS,IAAI,CAACT,KAAL,CAAWwB,aAF5B,MAGCuC,QAAQ,CAAClR,MAAT,GAAkB,CAAlB,IAAuB,CAACmR,mBAHzB,CADF,EAKE;AACA,aAAKtG,KAAL,CAAW+C,IAAI,CAAC2M,cAAL,CAAoB5b,KAA/B,EAAsCkW,UAAU,CAAC6B,iBAAjD;AACD;AACF;;AAED,WAAOxF,QAAP;AACD;;AAEDvD,EAAAA,SAAS,CACPC,IADO,EAEPC,WAAyB,GAAG5Q,SAFrB,EAGP6Q,YAHO,EAIPC,kBAJO,EAKD;AACN,QAAIH,IAAI,CAACrM,IAAL,KAAc,oBAAlB,EAAwC;AACtC,aAAO,MAAMoM,SAAN,CACLC,IADK,EAELC,WAFK,EAGLC,YAHK,EAILC,kBAJK,CAAP;AAMD;AACF;;AAGD4X,EAAAA,kBAAkB,CAAChlB,IAAD,EAAyC;AACzD,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB2J,MAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAK2B,uBAAL,EAAtB;AACD;;AACD,WAAO,MAAMyJ,kBAAN,CAAyBhlB,IAAzB,CAAP;AACD;;AAEDilB,EAAAA,yBAAyB,CACvBjlB,IADuB,EAEC;AACxB,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB2J,MAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAK2B,uBAAL,EAAtB;AACD;;AACD,WAAO,MAAM0J,yBAAN,CAAgCjlB,IAAhC,CAAP;AACD;;AAGDklB,EAAAA,aAAa,GAAY;AACvB,WAAO,KAAK5L,YAAL,CAAkB,GAAlB,KAA0B,MAAM4L,aAAN,EAAjC;AACD;;AAGDC,EAAAA,eAAe,GAAY;AACzB,WAAO,KAAK7mB,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,KAAwB,MAAM8uB,eAAN,EAA/B;AACD;;AAEDC,EAAAA,sBAAsB,CAACja,MAAD,EAAmD;AACvE,WAAO,CAAC,KAAK7M,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAD,IAAyB,MAAM+uB,sBAAN,CAA6Bja,MAA7B,CAAhC;AACD;;AAGDuD,EAAAA,eAAe,CACbC,SADa,EAEbxD,MAFa,EAGbyD,WAHa,EAIbjC,OAJa,EAKbkC,aALa,EAMbC,iBANa,EAOP;AACN,QAAK3D,MAAD,CAAqBgS,QAAzB,EAAmC;AACjC,WAAKzC,UAAL,CAAiBvP,MAAD,CAAqBgS,QAArB,CAA8Bnf,KAA9C;AACD;;AACD,WAAQmN,MAAD,CAAqBgS,QAA5B;;AACA,QAAI,KAAK7D,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BnO,MAAAA,MAAM,CAAC6D,cAAP,GAAwB,KAAKuK,iCAAL,EAAxB;AACD;;AAED,UAAM7K,eAAN,CACEC,SADF,EAEExD,MAFF,EAGEyD,WAHF,EAIEjC,OAJF,EAKEkC,aALF,EAMEC,iBANF;AAQD;;AAEDuW,EAAAA,sBAAsB,CACpB1W,SADoB,EAEpBxD,MAFoB,EAGpByD,WAHoB,EAIpBjC,OAJoB,EAKd;AACN,QAAKxB,MAAD,CAAqBgS,QAAzB,EAAmC;AACjC,WAAKzC,UAAL,CAAiBvP,MAAD,CAAqBgS,QAArB,CAA8Bnf,KAA9C;AACD;;AACD,WAAQmN,MAAD,CAAqBgS,QAA5B;;AACA,QAAI,KAAK7D,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BnO,MAAAA,MAAM,CAAC6D,cAAP,GAAwB,KAAKuK,iCAAL,EAAxB;AACD;;AAED,UAAM8L,sBAAN,CAA6B1W,SAA7B,EAAwCxD,MAAxC,EAAgDyD,WAAhD,EAA6DjC,OAA7D;AACD;;AAGD2Y,EAAAA,eAAe,CAACtlB,IAAD,EAAsB;AACnC,UAAMslB,eAAN,CAAsBtlB,IAAtB;;AACA,QAAIA,IAAI,CAACoL,UAAL,IAAmB,KAAKkO,YAAL,CAAkB,GAAlB,CAAvB,EAA+C;AAC7CtZ,MAAAA,IAAI,CAACulB,mBAAL,GAA2B,KAAKhJ,mCAAL,EAA3B;AACD;;AACD,QAAI,KAAKlC,YAAL,CAAkB,YAAlB,CAAJ,EAAqC;AACnC,WAAKrG,IAAL;AACA,YAAMwR,WAAoC,GAAIxlB,IAAI,CAAC6b,UAAL,GAAkB,EAAhE;;AACA,SAAG;AACD,cAAM7b,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA1P,QAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKyC,6BAAL,CAA+C,IAA/C,CAAV;;AACA,YAAI,KAAKrC,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,UAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuN,mCAAL,EAAtB;AACD,SAFD,MAEO;AACLvc,UAAAA,IAAI,CAACgP,cAAL,GAAsB,IAAtB;AACD;;AACDwW,QAAAA,WAAW,CAAC3lB,IAAZ,CAAiB,KAAK8P,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAjB;AACD,OATD,QASS,KAAK2Y,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CATT;AAUD;AACF;;AAEDsvB,EAAAA,iBAAiB,CACfzlB,IADe,EAEf0lB,oBAFe,EAGD;AACd,UAAMvI,QAAQ,GAAG,KAAKC,iBAAL,EAAjB;AACA,UAAMxP,GAAG,GAAG,MAAM6X,iBAAN,CAAwBzlB,IAAxB,EAA8B0lB,oBAA9B,CAAZ;AAEA1lB,IAAAA,IAAI,CAACmd,QAAL,GAAgBA,QAAhB;AACA,WAAOvP,GAAP;AACD;;AAGD+X,EAAAA,iBAAiB,CACf7Y,IADe,EAEfqC,QAFe,EAGfvF,QAHe,EAIfgF,WAJe,EAKfjC,OALe,EAMfkD,SANe,EAOfpC,mBAPe,EAQfqC,WARe,EAST;AACN,QAAKhD,IAAD,CAAmBqQ,QAAvB,EAAiC;AAC/B,WAAKzC,UAAL,CAAiB5N,IAAD,CAAmBqQ,QAAnB,CAA4Bnf,KAA5C;AACD;;AACD,WAAQ8O,IAAD,CAAmBqQ,QAA1B;AAEA,QAAInO,cAAJ;;AAGA,QAAI,KAAKsK,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtK,MAAAA,cAAc,GAAG,KAAKuK,iCAAL,EAAjB;AACA,UAAI,CAAC,KAAKjb,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAL,EAA4B,KAAKykB,UAAL;AAC7B;;AAED,UAAMiL,iBAAN,CACE7Y,IADF,EAEEqC,QAFF,EAGEvF,QAHF,EAIEgF,WAJF,EAKEjC,OALF,EAMEkD,SANF,EAOEpC,mBAPF,EAQEqC,WARF;;AAYA,QAAId,cAAJ,EAAoB;AAClB,OAAClC,IAAI,CAAClB,KAAL,IAAckB,IAAf,EAAqBkC,cAArB,GAAsCA,cAAtC;AACD;AACF;;AAED4W,EAAAA,4BAA4B,CAAClF,KAAD,EAA8B;AACxD,QAAI,KAAK/H,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzB,UAAIkqB,KAAK,CAAC9f,IAAN,KAAe,YAAnB,EAAiC;AAC/B,aAAKsJ,KAAL,CAAWwW,KAAK,CAAC1iB,KAAjB,EAAwBkW,UAAU,CAAC0B,sBAAnC;AACD;;AAEC8K,MAAAA,KAAF,CAA6BtQ,QAA7B,GAAwC,IAAxC;AACD;;AACD,QAAI,KAAK9R,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxBqqB,MAAAA,KAAK,CAAC9G,cAAN,GAAuB,KAAK2B,uBAAL,EAAvB;AACD;;AACD,SAAK1B,gBAAL,CAAsB6G,KAAtB;AACA,WAAOA,KAAP;AACD;;AAEDmF,EAAAA,iBAAiB,CACf1W,QADe,EAEfvF,QAFe,EAGfkc,IAHe,EAIJ;AACX,UAAM9lB,IAAI,GAAG,MAAM6lB,iBAAN,CAAwB1W,QAAxB,EAAkCvF,QAAlC,EAA4Ckc,IAA5C,CAAb;;AAEA,QACE9lB,IAAI,CAACY,IAAL,KAAc,mBAAd,IACAZ,IAAI,CAAC4Z,cADL,IAEA5Z,IAAI,CAAC4c,KAAL,CAAW5e,KAAX,GAAmBgC,IAAI,CAAC4Z,cAAL,CAAoB5b,KAHzC,EAIE;AACA,WAAKkM,KAAL,CAAWlK,IAAI,CAAC4Z,cAAL,CAAoB5b,KAA/B,EAAsCkW,UAAU,CAAC4B,qBAAjD;AACD;;AAED,WAAO9V,IAAP;AACD;;AAED+lB,EAAAA,wBAAwB,CAAC/lB,IAAD,EAAqC;AAC3D,QAAI,CAAC6W,iBAAiB,CAAC7W,IAAD,CAAtB,EAA8B;AAC5B,aAAO,MAAM+lB,wBAAN,CAA+B/lB,IAA/B,CAAP;AACD;;AAED,WAAO+W,oBAAoB,CAAC,KAAKpX,KAAN,CAA3B;AACD;;AAEDqmB,EAAAA,yBAAyB,CACvBhmB,IADuB,EAEvBimB,SAFuB,EAGvBrlB,IAHuB,EAIvBwM,kBAJuB,EAKjB;AACN6Y,IAAAA,SAAS,CAACC,KAAV,GAAkBrP,iBAAiB,CAAC7W,IAAD,CAAjB,GACd,KAAK2b,6BAAL,CACgB,IADhB,EAEoB,IAFpB,CADc,GAKd,KAAKxC,eAAL,EALJ;AAOA,SAAKnM,SAAL,CACEiZ,SAAS,CAACC,KADZ,EAEEnqB,YAFF,EAGE2E,SAHF,EAIE0M,kBAJF;AAMApN,IAAAA,IAAI,CAAC2Q,UAAL,CAAgB9Q,IAAhB,CAAqB,KAAK8P,UAAL,CAAgBsW,SAAhB,EAA2BrlB,IAA3B,CAArB;AACD;;AAGDulB,EAAAA,gCAAgC,CAACnmB,IAAD,EAAqC;AACnEA,IAAAA,IAAI,CAAC8W,UAAL,GAAkB,OAAlB;AAEA,QAAI5L,IAAI,GAAG,IAAX;;AACA,QAAI,KAAK5M,KAAL,CAAW4Q,KAAE,CAAC5U,OAAd,CAAJ,EAA4B;AAC1B4Q,MAAAA,IAAI,GAAG,QAAP;AACD,KAFD,MAEO,IAAI,KAAKmP,YAAL,CAAkB,MAAlB,CAAJ,EAA+B;AACpCnP,MAAAA,IAAI,GAAG,MAAP;AACD;;AACD,QAAIA,IAAJ,EAAU;AACR,YAAM8U,EAAE,GAAG,KAAK5B,SAAL,EAAX;;AAGA,UAAIlT,IAAI,KAAK,MAAT,IAAmB8U,EAAE,CAACpf,IAAH,KAAYsO,KAAE,CAAC/W,IAAtC,EAA4C;AAC1C,aAAKuiB,UAAL,CAAgBsF,EAAE,CAAChiB,KAAnB;AACD;;AAED,UACE+Y,oBAAoB,CAACiJ,EAAD,CAApB,IACAA,EAAE,CAACpf,IAAH,KAAYsO,KAAE,CAACtZ,MADf,IAEAoqB,EAAE,CAACpf,IAAH,KAAYsO,KAAE,CAAC/W,IAHjB,EAIE;AACA,aAAK6b,IAAL;AACAhU,QAAAA,IAAI,CAAC8W,UAAL,GAAkB5L,IAAlB;AACD;AACF;;AAED,WAAO,MAAMib,gCAAN,CAAuCnmB,IAAvC,CAAP;AACD;;AAGDomB,EAAAA,oBAAoB,CAACpmB,IAAD,EAAkC;AACpD,UAAMimB,SAAS,GAAG,KAAKvW,SAAL,EAAlB;AACA,UAAM2W,aAAa,GAAG,KAAK1mB,KAAL,CAAW3B,KAAjC;AACA,UAAMsoB,UAAU,GAAG,KAAKnN,eAAL,CAAqB,IAArB,CAAnB;AAEA,QAAIoN,iBAAiB,GAAG,IAAxB;;AACA,QAAID,UAAU,CAAC1xB,IAAX,KAAoB,MAAxB,EAAgC;AAC9B2xB,MAAAA,iBAAiB,GAAG,MAApB;AACD,KAFD,MAEO,IAAID,UAAU,CAAC1xB,IAAX,KAAoB,QAAxB,EAAkC;AACvC2xB,MAAAA,iBAAiB,GAAG,QAApB;AACD;;AAED,QAAI5B,SAAS,GAAG,KAAhB;;AACA,QAAI,KAAKtK,YAAL,CAAkB,IAAlB,KAA2B,CAAC,KAAKmM,qBAAL,CAA2B,IAA3B,CAAhC,EAAkE;AAChE,YAAMC,QAAQ,GAAG,KAAKtN,eAAL,CAAqB,IAArB,CAAjB;;AACA,UACEoN,iBAAiB,KAAK,IAAtB,IACA,CAAC,KAAKjoB,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CADD,IAEA,CAAC,KAAK+K,KAAL,CAAWiB,IAAX,CAAgBvM,OAHnB,EAIE;AAEA4xB,QAAAA,SAAS,CAACS,QAAV,GAAqBD,QAArB;AACAR,QAAAA,SAAS,CAACnP,UAAV,GAAuByP,iBAAvB;AACAN,QAAAA,SAAS,CAACC,KAAV,GAAkBO,QAAQ,CAACE,OAAT,EAAlB;AACD,OATD,MASO;AAELV,QAAAA,SAAS,CAACS,QAAV,GAAqBJ,UAArB;AACAL,QAAAA,SAAS,CAACnP,UAAV,GAAuB,IAAvB;AACAmP,QAAAA,SAAS,CAACC,KAAV,GAAkB,KAAK/M,eAAL,EAAlB;AACD;AACF,KAjBD,MAiBO,IACLoN,iBAAiB,KAAK,IAAtB,KACC,KAAKjoB,KAAL,CAAW4Q,KAAE,CAACta,IAAd,KAAuB,KAAK+K,KAAL,CAAWiB,IAAX,CAAgBvM,OADxC,CADK,EAGL;AAEA4xB,MAAAA,SAAS,CAACS,QAAV,GAAqB,KAAKvN,eAAL,CAAqB,IAArB,CAArB;AACA8M,MAAAA,SAAS,CAACnP,UAAV,GAAuByP,iBAAvB;;AACA,UAAI,KAAKrM,aAAL,CAAmB,IAAnB,CAAJ,EAA8B;AAC5B+L,QAAAA,SAAS,CAACC,KAAV,GAAkB,KAAK/M,eAAL,EAAlB;AACD,OAFD,MAEO;AACLwL,QAAAA,SAAS,GAAG,IAAZ;AACAsB,QAAAA,SAAS,CAACC,KAAV,GAAkBD,SAAS,CAACS,QAAV,CAAmBC,OAAnB,EAAlB;AACD;AACF,KAbM,MAaA;AACLhC,MAAAA,SAAS,GAAG,IAAZ;AACAsB,MAAAA,SAAS,CAACS,QAAV,GAAqBJ,UAArB;AACAL,MAAAA,SAAS,CAACnP,UAAV,GAAuB,IAAvB;AACAmP,MAAAA,SAAS,CAACC,KAAV,GAAkBD,SAAS,CAACS,QAAV,CAAmBC,OAAnB,EAAlB;AACD;;AAED,UAAMC,gBAAgB,GAAG/P,iBAAiB,CAAC7W,IAAD,CAA1C;AACA,UAAM6mB,qBAAqB,GAAGhQ,iBAAiB,CAACoP,SAAD,CAA/C;;AAEA,QAAIW,gBAAgB,IAAIC,qBAAxB,EAA+C;AAC7C,WAAK3c,KAAL,CACEmc,aADF,EAEEnS,UAAU,CAACkB,mCAFb;AAID;;AAED,QAAIwR,gBAAgB,IAAIC,qBAAxB,EAA+C;AAC7C,WAAKnK,iBAAL,CACEuJ,SAAS,CAACC,KAAV,CAAgBtxB,IADlB,EAEEqxB,SAAS,CAACC,KAAV,CAAgBloB,KAFlB,EAGoB,IAHpB;AAKD;;AAED,QAAI2mB,SAAS,IAAI,CAACiC,gBAAd,IAAkC,CAACC,qBAAvC,EAA8D;AAC5D,WAAKC,iBAAL,CACEb,SAAS,CAACC,KAAV,CAAgBtxB,IADlB,EAEEqxB,SAAS,CAACjoB,KAFZ,EAGE,IAHF,EAIE,IAJF;AAMD;;AAED,SAAKgP,SAAL,CACEiZ,SAAS,CAACC,KADZ,EAEEnqB,YAFF,EAGE2E,SAHF,EAIE,kBAJF;AAMAV,IAAAA,IAAI,CAAC2Q,UAAL,CAAgB9Q,IAAhB,CAAqB,KAAK8P,UAAL,CAAgBsW,SAAhB,EAA2B,iBAA3B,CAArB;AACD;;AAGDc,EAAAA,mBAAmB,CAAC/mB,IAAD,EAAmBgnB,cAAnB,EAAmD;AAEpE,UAAM9b,IAAI,GAAGlL,IAAI,CAACkL,IAAlB;;AACA,QAAIA,IAAI,KAAK,KAAT,IAAkBA,IAAI,KAAK,KAA3B,IAAoC,KAAKoO,YAAL,CAAkB,GAAlB,CAAxC,EAAgE;AAC9DtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKuK,iCAAL,EAAtB;AACD;;AACD,UAAMwN,mBAAN,CAA0B/mB,IAA1B,EAAgCgnB,cAAhC;AACD;;AAGDC,EAAAA,UAAU,CACRzD,IADQ,EAERtY,IAFQ,EAGF;AACN,UAAM+b,UAAN,CAAiBzD,IAAjB,EAAuBtY,IAAvB;;AACA,QAAI,KAAK5M,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxBmtB,MAAAA,IAAI,CAACtK,EAAL,CAAQU,cAAR,GAAyB,KAAK2B,uBAAL,EAAzB;AACA,WAAK1B,gBAAL,CAAsB2J,IAAI,CAACtK,EAA3B;AACD;AACF;;AAGDgO,EAAAA,iCAAiC,CAC/BlnB,IAD+B,EAE/BmnB,IAF+B,EAGJ;AAC3B,QAAI,KAAK7oB,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB,YAAMsnB,qBAAqB,GAAG,KAAKhe,KAAL,CAAWie,kBAAzC;AACA,WAAKje,KAAL,CAAWie,kBAAX,GAAgC,IAAhC;AACA5d,MAAAA,IAAI,CAAC2Z,UAAL,GAAkB,KAAK4B,uBAAL,EAAlB;AACA,WAAK5b,KAAL,CAAWie,kBAAX,GAAgCD,qBAAhC;AACD;;AAED,WAAO,MAAMuJ,iCAAN,CAAwClnB,IAAxC,EAA8CmnB,IAA9C,CAAP;AACD;;AAGDC,EAAAA,qBAAqB,GAAY;AAC/B,WAAO,KAAK9oB,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,KAAwB,MAAM+wB,qBAAN,EAA/B;AACD;;AAYD3E,EAAAA,gBAAgB,CACdhB,IADc,EAEdhU,mBAFc,EAGd4Z,cAHc,EAId3F,gBAJc,EAKA;AACd,QAAI/hB,KAAK,GAAG,IAAZ;AAEA,QAAI2nB,GAAJ;;AAEA,QACE,KAAKzoB,SAAL,CAAe,KAAf,MACC,KAAKP,KAAL,CAAW4Q,KAAE,CAACqO,WAAd,KAA8B,KAAKjE,YAAL,CAAkB,GAAlB,CAD/B,CADF,EAGE;AACA3Z,MAAAA,KAAK,GAAG,KAAKA,KAAL,CAAWoiB,KAAX,EAAR;AAEAuF,MAAAA,GAAG,GAAG,KAAK1F,QAAL,CACJ,MACE,MAAMa,gBAAN,CACEhB,IADF,EAEEhU,mBAFF,EAGE4Z,cAHF,EAIE3F,gBAJF,CAFE,EAQJ/hB,KARI,CAAN;AAYA,UAAI,CAAC2nB,GAAG,CAACzF,KAAT,EAAgB,OAAOyF,GAAG,CAACtnB,IAAX;AAKhB,YAAM;AAAEyR,QAAAA;AAAF,UAAc,KAAK9R,KAAzB;;AACA,UAAI8R,OAAO,CAACA,OAAO,CAACpS,MAAR,GAAiB,CAAlB,CAAP,KAAgCkoB,OAAE,CAACC,MAAvC,EAA+C;AAC7C/V,QAAAA,OAAO,CAACpS,MAAR,IAAkB,CAAlB;AACD,OAFD,MAEO,IAAIoS,OAAO,CAACA,OAAO,CAACpS,MAAR,GAAiB,CAAlB,CAAP,KAAgCkoB,OAAE,CAACE,MAAvC,EAA+C;AACpDhW,QAAAA,OAAO,CAACpS,MAAR,IAAkB,CAAlB;AACD;AACF;;AAED,QAAKioB,GAAG,IAAIA,GAAG,CAACzF,KAAZ,IAAsB,KAAKvI,YAAL,CAAkB,GAAlB,CAA1B,EAAkD;AAChD3Z,MAAAA,KAAK,GAAGA,KAAK,IAAI,KAAKA,KAAL,CAAWoiB,KAAX,EAAjB;AAEA,UAAI/S,cAAJ;AAEA,YAAMtY,KAAK,GAAG,KAAKkrB,QAAL,CAAc,MAAM;AAChC5S,QAAAA,cAAc,GAAG,KAAKuK,iCAAL,EAAjB;AAEA,cAAMmO,eAAe,GAAG,KAAK1G,gCAAL,CACtBhS,cADsB,EAEtB,MACE,MAAMyT,gBAAN,CACEhB,IADF,EAEEhU,mBAFF,EAGE4Z,cAHF,EAIE3F,gBAJF,CAHoB,CAAxB;AAUAgG,QAAAA,eAAe,CAAC1Y,cAAhB,GAAiCA,cAAjC;AACA,aAAK2Y,0BAAL,CAAgCD,eAAhC,EAAiD1Y,cAAjD;AAEA,eAAO0Y,eAAP;AACD,OAjBa,EAiBX/nB,KAjBW,CAAd;AAmBA,YAAM+nB,eAA2C,GAC/ChxB,KAAK,CAACsJ,IAAN,IAActJ,KAAK,CAACsJ,IAAN,CAAWY,IAAX,KAAoB,yBAAlC,GACIlK,KAAK,CAACsJ,IADV,GAEI,IAHN;AAKA,UAAI,CAACtJ,KAAK,CAACmrB,KAAP,IAAgB6F,eAApB,EAAqC,OAAOA,eAAP;;AAQrC,UAAIJ,GAAG,IAAIA,GAAG,CAACtnB,IAAf,EAAqB;AAEnB,aAAKL,KAAL,GAAa2nB,GAAG,CAACxF,SAAjB;AACA,eAAOwF,GAAG,CAACtnB,IAAX;AACD;;AAED,UAAI0nB,eAAJ,EAAqB;AAEnB,aAAK/nB,KAAL,GAAajJ,KAAK,CAACorB,SAAnB;AACA,eAAO4F,eAAP;AACD;;AAED,UAAIJ,GAAG,IAAIA,GAAG,CAACM,MAAf,EAAuB,MAAMN,GAAG,CAACzF,KAAV;AACvB,UAAInrB,KAAK,CAACkxB,MAAV,EAAkB,MAAMlxB,KAAK,CAACmrB,KAAZ;AAGlB,YAAM,KAAK3X,KAAL,CACJ8E,cAAc,CAAChR,KADX,EAEJkW,UAAU,CAACoC,iCAFP,CAAN;AAID;;AAED,WAAO,MAAMmM,gBAAN,CACLhB,IADK,EAELhU,mBAFK,EAGL4Z,cAHK,EAIL3F,gBAJK,CAAP;AAMD;;AAGDmG,EAAAA,UAAU,CAAC7nB,IAAD,EAA8D;AACtE,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB,YAAMsrB,MAAM,GAAG,KAAKC,QAAL,CAAc,MAAM;AACjC,cAAMjE,qBAAqB,GAAG,KAAKhe,KAAL,CAAWie,kBAAzC;AACA,aAAKje,KAAL,CAAWie,kBAAX,GAAgC,IAAhC;AAEA,cAAMxE,QAAQ,GAAG,KAAK1J,SAAL,EAAjB;AAEA,SAEE0J,QAAQ,CAACQ,cAFX,EAIE5Z,IAAI,CAAC8Y,SAJP,IAKI,KAAKD,oCAAL,EALJ;AAOA,aAAKlZ,KAAL,CAAWie,kBAAX,GAAgCD,qBAAhC;AAEA,YAAI,KAAK2C,kBAAL,EAAJ,EAA+B,KAAK5F,UAAL;AAC/B,YAAI,CAAC,KAAKpc,KAAL,CAAW4Q,KAAE,CAACxY,KAAd,CAAL,EAA2B,KAAKgkB,UAAL;AAE3B,eAAOtB,QAAP;AACD,OAnBc,CAAf;AAqBA,UAAIuI,MAAM,CAACiG,MAAX,EAAmB,OAAO,IAAP;AAGnB,UAAIjG,MAAM,CAACE,KAAX,EAAkB,KAAKliB,KAAL,GAAagiB,MAAM,CAACG,SAApB;AAGlB9hB,MAAAA,IAAI,CAAC2Z,UAAL,GAAkBgI,MAAM,CAAC3hB,IAAP,CAAY4Z,cAAZ,GACd,KAAKjK,UAAL,CAAgBgS,MAAM,CAAC3hB,IAAvB,EAA6B,gBAA7B,CADc,GAEd,IAFJ;AAGD;;AAED,WAAO,MAAM6nB,UAAN,CAAiB7nB,IAAjB,CAAP;AACD;;AAED8nB,EAAAA,gBAAgB,GAAY;AAC1B,WAAO,KAAKxpB,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,KAAwB,MAAMyxB,gBAAN,EAA/B;AACD;;AAEDC,EAAAA,0BAA0B,CACxB/nB,IADwB,EAExBoK,MAFwB,EAGlB;AACN,QAAI,KAAKzK,KAAL,CAAW+iB,yBAAX,CAAqCU,OAArC,CAA6CpjB,IAAI,CAAChC,KAAlD,MAA6D,CAAC,CAAlE,EAAqE;AACnEgC,MAAAA,IAAI,CAACoK,MAAL,GAAcA,MAAd;AACD,KAFD,MAEO;AACL,YAAM2d,0BAAN,CAAiC/nB,IAAjC,EAAuCoK,MAAvC;AACD;AACF;;AAED8Y,EAAAA,WAAW,CACTljB,IADS,EAETgoB,eAFS,EAGTC,eAHS,EAIH;AACN,QACEA,eAAe,IACf,KAAKtoB,KAAL,CAAW+iB,yBAAX,CAAqCU,OAArC,CAA6CpjB,IAAI,CAAChC,KAAlD,MAA6D,CAAC,CAFhE,EAGE;AACA;AACD;;AAED,WAAO,MAAMklB,WAAN,CAAkB,GAAG9hB,SAArB,CAAP;AACD;;AAED8mB,EAAAA,kCAAkC,CAACC,UAAD,EAAoC;AACpE,WAAO,MAAMD,kCAAN,CACLC,UAAU,IAAI,KAAKxoB,KAAL,CAAWsiB,SAAX,CAAqBmB,OAArB,CAA6B,KAAKzjB,KAAL,CAAW3B,KAAxC,MAAmD,CAAC,CAD7D,CAAP;AAGD;;AAEDoqB,EAAAA,eAAe,CACbC,IADa,EAEblZ,QAFa,EAGbvF,QAHa,EAIb0e,OAJa,EAKC;AACd,QACED,IAAI,CAACznB,IAAL,KAAc,YAAd,IACAynB,IAAI,CAACzzB,IAAL,KAAc,OADd,IAEA,KAAK+K,KAAL,CAAWsiB,SAAX,CAAqBmB,OAArB,CAA6BjU,QAA7B,MAA2C,CAAC,CAH9C,EAIE;AACA,WAAK6E,IAAL;AAEA,YAAMhU,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,MAAAA,IAAI,CAACqQ,MAAL,GAAcgY,IAAd;AACAroB,MAAAA,IAAI,CAACoB,SAAL,GAAiB,KAAKmnB,4BAAL,CAAkCrZ,KAAE,CAAChZ,MAArC,EAA6C,KAA7C,CAAjB;AACAmyB,MAAAA,IAAI,GAAG,KAAK1Y,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD,KAXD,MAWO,IACLqoB,IAAI,CAACznB,IAAL,KAAc,YAAd,IACAynB,IAAI,CAACzzB,IAAL,KAAc,OADd,IAEA,KAAK0kB,YAAL,CAAkB,GAAlB,CAHK,EAIL;AACA,YAAM3Z,KAAK,GAAG,KAAKA,KAAL,CAAWoiB,KAAX,EAAd;AACA,YAAMrrB,KAAK,GAAG,KAAKkrB,QAAL,CACZ4G,KAAK,IACH,KAAKC,iCAAL,CAAuCtZ,QAAvC,EAAiDvF,QAAjD,KACA4e,KAAK,EAHK,EAIZ7oB,KAJY,CAAd;AAOA,UAAI,CAACjJ,KAAK,CAACmrB,KAAP,IAAgB,CAACnrB,KAAK,CAACgyB,OAA3B,EAAoC,OAAOhyB,KAAK,CAACsJ,IAAb;AAEpC,YAAM2hB,MAAM,GAAG,KAAKC,QAAL,CACb,MAAM,MAAMwG,eAAN,CAAsBC,IAAtB,EAA4BlZ,QAA5B,EAAsCvF,QAAtC,EAAgD0e,OAAhD,CADO,EAEb3oB,KAFa,CAAf;AAKA,UAAIgiB,MAAM,CAAC3hB,IAAP,IAAe,CAAC2hB,MAAM,CAACE,KAA3B,EAAkC,OAAOF,MAAM,CAAC3hB,IAAd;;AAElC,UAAItJ,KAAK,CAACsJ,IAAV,EAAgB;AACd,aAAKL,KAAL,GAAajJ,KAAK,CAACorB,SAAnB;AACA,eAAOprB,KAAK,CAACsJ,IAAb;AACD;;AAED,UAAI2hB,MAAM,CAAC3hB,IAAX,EAAiB;AACf,aAAKL,KAAL,GAAagiB,MAAM,CAACG,SAApB;AACA,eAAOH,MAAM,CAAC3hB,IAAd;AACD;;AAED,YAAMtJ,KAAK,CAACmrB,KAAN,IAAeF,MAAM,CAACE,KAA5B;AACD;;AAED,WAAO,MAAMuG,eAAN,CAAsBC,IAAtB,EAA4BlZ,QAA5B,EAAsCvF,QAAtC,EAAgD0e,OAAhD,CAAP;AACD;;AAEDK,EAAAA,cAAc,CACZN,IADY,EAEZlZ,QAFY,EAGZvF,QAHY,EAIZ0e,OAJY,EAKZM,cALY,EAME;AACd,QAAI,KAAKtqB,KAAL,CAAW4Q,KAAE,CAACzY,WAAd,KAA8B,KAAKoyB,qBAAL,CAA2B,GAA3B,CAAlC,EAAmE;AACjED,MAAAA,cAAc,CAACE,mBAAf,GAAqC,IAArC;;AACA,UAAIR,OAAJ,EAAa;AACXM,QAAAA,cAAc,CAACG,IAAf,GAAsB,IAAtB;AACA,eAAOV,IAAP;AACD;;AACD,WAAKrU,IAAL;AACA,YAAMhU,IAA8B,GAAG,KAAKqM,WAAL,CACrC8C,QADqC,EAErCvF,QAFqC,CAAvC;AAIA5J,MAAAA,IAAI,CAACqQ,MAAL,GAAcgY,IAAd;AACAroB,MAAAA,IAAI,CAACgpB,aAAL,GAAqB,KAAKzM,mCAAL,EAArB;AACA,WAAKnE,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AAEA+J,MAAAA,IAAI,CAACoB,SAAL,GAAiB,KAAKmnB,4BAAL,CAAkCrZ,KAAE,CAAChZ,MAArC,EAA6C,KAA7C,CAAjB;AACA8J,MAAAA,IAAI,CAACoQ,QAAL,GAAgB,IAAhB;AACA,aAAO,KAAKD,oBAAL,CAA0BnQ,IAA1B,EAA+C,IAA/C,CAAP;AACD,KAlBD,MAkBO,IACL,CAACsoB,OAAD,IACA,KAAK5Q,gBAAL,EADA,IAEA,KAAK4B,YAAL,CAAkB,GAAlB,CAHK,EAIL;AACA,YAAMtZ,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,MAAAA,IAAI,CAACqQ,MAAL,GAAcgY,IAAd;AAEA,YAAM1G,MAAM,GAAG,KAAKC,QAAL,CAAc,MAAM;AACjC5hB,QAAAA,IAAI,CAACgpB,aAAL,GAAqB,KAAKnL,4CAAL,EAArB;AACA,aAAKzF,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AACA+J,QAAAA,IAAI,CAACoB,SAAL,GAAiB,KAAKmnB,4BAAL,CAAkCrZ,KAAE,CAAChZ,MAArC,EAA6C,KAA7C,CAAjB;AACA,YAAI0yB,cAAc,CAACE,mBAAnB,EAAwC9oB,IAAI,CAACoQ,QAAL,GAAgB,KAAhB;AACxC,eAAO,KAAKD,oBAAL,CACLnQ,IADK,EAEL4oB,cAAc,CAACE,mBAFV,CAAP;AAID,OATc,CAAf;;AAWA,UAAInH,MAAM,CAAC3hB,IAAX,EAAiB;AACf,YAAI2hB,MAAM,CAACE,KAAX,EAAkB,KAAKliB,KAAL,GAAagiB,MAAM,CAACG,SAApB;AAClB,eAAOH,MAAM,CAAC3hB,IAAd;AACD;AACF;;AAED,WAAO,MAAM2oB,cAAN,CACLN,IADK,EAELlZ,QAFK,EAGLvF,QAHK,EAIL0e,OAJK,EAKLM,cALK,CAAP;AAOD;;AAEDK,EAAAA,iBAAiB,CAACjpB,IAAD,EAA8B;AAC7C,QAAIkpB,KAAK,GAAG,IAAZ;;AACA,QAAI,KAAKxR,gBAAL,MAA2B,KAAK4B,YAAL,CAAkB,GAAlB,CAA/B,EAAuD;AACrD4P,MAAAA,KAAK,GAAG,KAAKtH,QAAL,CAAc,MACpB,KAAK/D,4CAAL,EADM,EAEN7d,IAFF;AAGD;;AACDA,IAAAA,IAAI,CAACgpB,aAAL,GAAqBE,KAArB;AAEA,UAAMD,iBAAN,CAAwBjpB,IAAxB;AACD;;AAEDyoB,EAAAA,iCAAiC,CAC/BtZ,QAD+B,EAE/BvF,QAF+B,EAGH;AAC5B,UAAM5J,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA,SAAKmd,mBAAL,CAAyB/mB,IAAzB;AACA,QAAI,CAAC,KAAK6nB,UAAL,CAAgB7nB,IAAhB,CAAL,EAA4B;AAC5B,WAAO,KAAKmpB,oBAAL,CACLnpB,IADK,EAEQU,SAFR,EAGS,IAHT,CAAP;AAKD;;AAED0oB,EAAAA,qBAAqB,CAAC5rB,IAAD,EAAqB;AACxC,UAAMwW,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AACA,QACEnM,IAAI,OAAJ,IACAwW,IAAI,OADJ,IAEA,KAAKrU,KAAL,CAAW0pB,cAHb,EAIE;AACA,WAAK1pB,KAAL,CAAW0pB,cAAX,GAA4B,KAA5B;AACA,WAAK1pB,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;AACA,WAAK2f,SAAL;AACA;AACD;;AAED,UAAMF,qBAAN,CAA4B5rB,IAA5B;AACD;;AAED+rB,EAAAA,kBAAkB,CAAC/rB,IAAD,EAAqB;AACrC,UAAMwW,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AACA,QACEnM,IAAI,QAAJ,IACAwW,IAAI,QAFN,EAGE;AAEA,WAAKyQ,QAAL,CAAcvV,KAAE,CAAClZ,SAAjB,EAA4B,CAA5B;AACA;AACD;;AAED,UAAMuzB,kBAAN,CAAyB/rB,IAAzB;AACD;;AAEDgsB,EAAAA,aAAa,CAACC,IAAD,EAAeC,OAAf,EAA2C;AACtD,UAAMC,QAAQ,GAAG,MAAMH,aAAN,CAAoBC,IAApB,EAA0BC,OAA1B,CAAjB;;AACA,QAAI,KAAK/pB,KAAL,CAAW0pB,cAAf,EAA+B;AAC7B,WAAKnf,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BuK,UAAU,CAACuC,uBAAtC;AACD;;AACD,WAAOkT,QAAP;AACD;;AAEDC,EAAAA,gBAAgB,GAAS;AACvB,QAAI,KAAK/qB,SAAL,CAAe,cAAf,KAAkC,KAAKgrB,eAAL,EAAtC,EAA8D;AAC5D,UAAI,KAAKlqB,KAAL,CAAW0pB,cAAf,EAA+B;AAC7B,aAAK3O,UAAL,CAAgB,IAAhB,EAAsBxG,UAAU,CAACyB,iBAAjC;AACD;;AACD,WAAKmU,wBAAL;AACA,WAAKnqB,KAAL,CAAWgK,GAAX,IAAkB,KAAKkgB,eAAL,EAAlB;AACA,WAAKlqB,KAAL,CAAW0pB,cAAX,GAA4B,IAA5B;AACA;AACD;;AAED,QAAI,KAAK1pB,KAAL,CAAW0pB,cAAf,EAA+B;AAC7B,YAAMprB,GAAG,GAAG,KAAKE,KAAL,CAAWilB,OAAX,CAAmB,KAAnB,EAA2B,KAAKzjB,KAAL,CAAWgK,GAAX,IAAkB,CAA7C,CAAZ;;AACA,UAAI1L,GAAG,KAAK,CAAC,CAAb,EAAgB;AACd,cAAM,KAAKiM,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAX,GAAiB,CAA5B,EAA+BpI,MAAM,CAAC0H,mBAAtC,CAAN;AACD;;AACD,WAAKtJ,KAAL,CAAWgK,GAAX,GAAiB1L,GAAG,GAAG,CAAvB;AACA;AACD;;AAED,UAAM2rB,gBAAN;AACD;;AAEDC,EAAAA,eAAe,GAAqB;AAClC,UAAM;AAAElgB,MAAAA;AAAF,QAAU,KAAKhK,KAArB;AACA,QAAIoqB,yBAAyB,GAAG,CAAhC;;AACA,WACE,QAAiCC,QAAjC,CACE,KAAK7rB,KAAL,CAAWqmB,UAAX,CAAsB7a,GAAG,GAAGogB,yBAA5B,CADF,CADF,EAIE;AACAA,MAAAA,yBAAyB;AAC1B;;AAED,UAAME,GAAG,GAAG,KAAK9rB,KAAL,CAAWqmB,UAAX,CAAsBuF,yBAAyB,GAAGpgB,GAAlD,CAAZ;AACA,UAAMugB,GAAG,GAAG,KAAK/rB,KAAL,CAAWqmB,UAAX,CAAsBuF,yBAAyB,GAAGpgB,GAA5B,GAAkC,CAAxD,CAAZ;;AAEA,QAAIsgB,GAAG,OAAH,IAA2BC,GAAG,OAAlC,EAAwD;AACtD,aAAOH,yBAAyB,GAAG,CAAnC;AACD;;AACD,QACE,KAAK5rB,KAAL,CAAWkD,KAAX,CACE0oB,yBAAyB,GAAGpgB,GAD9B,EAEEogB,yBAAyB,GAAGpgB,GAA5B,GAAkC,EAFpC,MAGM,cAJR,EAKE;AACA,aAAOogB,yBAAyB,GAAG,EAAnC;AACD;;AACD,QAAIE,GAAG,OAAH,IAA2BC,GAAG,OAAlC,EAAwD;AACtD,aAAOH,yBAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDD,EAAAA,wBAAwB,GAAS;AAC/B,UAAM7rB,GAAG,GAAG,KAAKE,KAAL,CAAWilB,OAAX,CAAmB,IAAnB,EAAyB,KAAKzjB,KAAL,CAAWgK,GAApC,CAAZ;;AACA,QAAI1L,GAAG,KAAK,CAAC,CAAb,EAAgB;AACd,YAAM,KAAKiM,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAAC0H,mBAAlC,CAAN;AACD;AACF;;AAIDkhB,EAAAA,wCAAwC,CACtCxgB,GADsC,EAEtC;AAAEygB,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAFsC,EAGhC;AACN,SAAKngB,KAAL,CACEP,GADF,EAEEuK,UAAU,CAACO,+BAFb,EAGE4V,UAHF,EAIED,QAJF;AAMD;;AAEDE,EAAAA,8BAA8B,CAC5B3gB,GAD4B,EAE5B;AAAEygB,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAF4B,EAGtB;AACN,UAAMhP,UAAU,GAAGgP,UAAU,CAAC,CAAD,CAAV,CAAcE,WAAd,KAA8BF,UAAU,CAAChpB,KAAX,CAAiB,CAAjB,CAAjD;AACA,SAAK6I,KAAL,CACEP,GADF,EAEEuK,UAAU,CAACe,qBAFb,EAGEoV,UAHF,EAIEhP,UAJF,EAKE+O,QALF;AAOD;;AAEDI,EAAAA,gCAAgC,CAC9B7gB,GAD8B,EAE9B;AAAEygB,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAF8B,EAGxB;AACN,SAAKngB,KAAL,CAAWP,GAAX,EAAgBuK,UAAU,CAACQ,uBAA3B,EAAoD2V,UAApD,EAAgED,QAAhE;AACD;;AAEDK,EAAAA,qCAAqC,CACnC9gB,GADmC,EAEnC;AAAEygB,IAAAA;AAAF,GAFmC,EAG7B;AACN,SAAKlgB,KAAL,CAAWP,GAAX,EAAgBuK,UAAU,CAACS,4BAA3B,EAAyDyV,QAAzD;AACD;;AAEDM,EAAAA,gCAAgC,CAC9B/gB,GAD8B,EAE9B;AACEygB,IAAAA,QADF;AAEEO,IAAAA;AAFF,GAF8B,EAM9B;AACA,WAAO,KAAKzgB,KAAL,CACLP,GADK,EAELghB,YAAY,KAAK,IAAjB,GACIzW,UAAU,CAACW,sCADf,GAEIX,UAAU,CAACU,uBAJV,EAKLwV,QALK,EAMLO,YANK,CAAP;AAQD;;AAEDC,EAAAA,qCAAqC,CACnCjhB,GADmC,EAEnC;AAAEygB,IAAAA,QAAF;AAAYS,IAAAA,YAAZ;AAA0BR,IAAAA;AAA1B,GAFmC,EAGnC;AACA,QAAI9f,OAAO,GAAG,IAAd;;AACA,YAAQsgB,YAAR;AACE,WAAK,SAAL;AACA,WAAK,QAAL;AACA,WAAK,QAAL;AACEtgB,QAAAA,OAAO,GAAG2J,UAAU,CAACY,uCAArB;AACA;;AACF,WAAK,QAAL;AACEvK,QAAAA,OAAO,GAAG2J,UAAU,CAACa,sCAArB;AACA;;AACF;AAEExK,QAAAA,OAAO,GAAG2J,UAAU,CAACc,uCAArB;AAXJ;;AAaA,WAAO,KAAK9K,KAAL,CAAWP,GAAX,EAAgBY,OAAhB,EAAyB6f,QAAzB,EAAmCC,UAAnC,EAA+CQ,YAA/C,CAAP;AACD;;AAEDC,EAAAA,uCAAuC,CACrCnhB,GADqC,EAErC;AAAEygB,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAFqC,EAG/B;AACN,SAAKngB,KAAL,CACEP,GADF,EAEEuK,UAAU,CAACgB,8BAFb,EAGEkV,QAHF,EAIEC,UAJF;AAMD;;AAEDU,EAAAA,kDAAkD,CAChDphB,GADgD,EAEhD;AAAEygB,IAAAA;AAAF,GAFgD,EAG1C;AACN,SAAKlgB,KAAL,CACEP,GADF,EAEEuK,UAAU,CAACiB,yCAFb,EAGEiV,QAHF;AAKD;;AAEDY,EAAAA,kBAAkB,GAAmB;AACnC,UAAM7b,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;;AACA,UAAMitB,SAAS,GAAG,MAAM,KAAK3sB,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,KAAwB,KAAKmI,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAhD;;AACA,YAAQ,KAAK4J,KAAL,CAAWiB,IAAnB;AACE,WAAKsO,KAAE,CAACha,GAAR;AAAa;AACX,gBAAMg2B,OAAO,GAAG,KAAKlf,YAAL,CAAkB,KAAKrM,KAAL,CAAWiM,KAA7B,EAAoC,gBAApC,CAAhB;;AACA,cAAIqf,SAAS,EAAb,EAAiB;AACf,mBAAO;AAAErqB,cAAAA,IAAI,EAAE,QAAR;AAAkB+I,cAAAA,GAAG,EAAEuhB,OAAO,CAACltB,KAA/B;AAAsC4N,cAAAA,KAAK,EAAEsf;AAA7C,aAAP;AACD;;AACD,iBAAO;AAAEtqB,YAAAA,IAAI,EAAE,SAAR;AAAmB+I,YAAAA,GAAG,EAAEwF;AAAxB,WAAP;AACD;;AACD,WAAKD,KAAE,CAAC7Z,MAAR;AAAgB;AACd,gBAAM61B,OAAO,GAAG,KAAKlf,YAAL,CAAkB,KAAKrM,KAAL,CAAWiM,KAA7B,EAAoC,eAApC,CAAhB;;AACA,cAAIqf,SAAS,EAAb,EAAiB;AACf,mBAAO;AAAErqB,cAAAA,IAAI,EAAE,QAAR;AAAkB+I,cAAAA,GAAG,EAAEuhB,OAAO,CAACltB,KAA/B;AAAsC4N,cAAAA,KAAK,EAAEsf;AAA7C,aAAP;AACD;;AACD,iBAAO;AAAEtqB,YAAAA,IAAI,EAAE,SAAR;AAAmB+I,YAAAA,GAAG,EAAEwF;AAAxB,WAAP;AACD;;AACD,WAAKD,KAAE,CAAChV,KAAR;AACA,WAAKgV,KAAE,CAAC/U,MAAR;AAAgB;AACd,gBAAM+wB,OAAO,GAAG,KAAKC,mBAAL,EAAhB;;AACA,cAAIF,SAAS,EAAb,EAAiB;AACf,mBAAO;AACLrqB,cAAAA,IAAI,EAAE,SADD;AAEL+I,cAAAA,GAAG,EAAEuhB,OAAO,CAACltB,KAFR;AAGL4N,cAAAA,KAAK,EAAEsf;AAHF,aAAP;AAKD;;AACD,iBAAO;AAAEtqB,YAAAA,IAAI,EAAE,SAAR;AAAmB+I,YAAAA,GAAG,EAAEwF;AAAxB,WAAP;AACD;;AACD;AACE,eAAO;AAAEvO,UAAAA,IAAI,EAAE,SAAR;AAAmB+I,UAAAA,GAAG,EAAEwF;AAAxB,SAAP;AA5BJ;AA8BD;;AAEDic,EAAAA,iBAAiB,GAAyC;AACxD,UAAMzhB,GAAG,GAAG,KAAKhK,KAAL,CAAW3B,KAAvB;AACA,UAAMkb,EAAE,GAAG,KAAKC,eAAL,CAAqB,IAArB,CAAX;AACA,UAAMkS,IAAI,GAAG,KAAK1S,GAAL,CAASzJ,KAAE,CAAChY,EAAZ,IACT,KAAK8zB,kBAAL,EADS,GAET;AAAEpqB,MAAAA,IAAI,EAAE,MAAR;AAAgB+I,MAAAA;AAAhB,KAFJ;AAGA,WAAO;AAAEuP,MAAAA,EAAF;AAAMmS,MAAAA;AAAN,KAAP;AACD;;AAEDC,EAAAA,iCAAiC,CAC/B3hB,GAD+B,EAE/B8H,OAF+B,EAG/B8Z,YAH+B,EAIzB;AACN,UAAM;AAAEV,MAAAA;AAAF,QAAmBpZ,OAAzB;;AACA,QAAIoZ,YAAY,KAAK,IAArB,EAA2B;AACzB;AACD;;AACD,QAAIA,YAAY,KAAKU,YAArB,EAAmC;AACjC,WAAKX,qCAAL,CAA2CjhB,GAA3C,EAAgD8H,OAAhD;AACD;AACF;;AAED+Z,EAAAA,eAAe,CAAC;AACdpB,IAAAA,QADc;AAEdS,IAAAA;AAFc,GAAD,EAWZ;AACD,UAAMY,SAAS,GAAG,IAAItY,GAAJ,EAAlB;AACA,UAAMuY,OAAO,GAAG;AACdC,MAAAA,cAAc,EAAE,EADF;AAEdC,MAAAA,aAAa,EAAE,EAFD;AAGdC,MAAAA,aAAa,EAAE,EAHD;AAIdC,MAAAA,gBAAgB,EAAE;AAJJ,KAAhB;;AAMA,WAAO,CAAC,KAAKxtB,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAR,EAA+B;AAC7B,YAAMg2B,UAAU,GAAG,KAAKrc,SAAL,EAAnB;AACA,YAAM;AAAEwJ,QAAAA,EAAF;AAAMmS,QAAAA;AAAN,UAAe,KAAKD,iBAAL,EAArB;AACA,YAAMf,UAAU,GAAGnR,EAAE,CAACtkB,IAAtB;;AACA,UAAIy1B,UAAU,KAAK,EAAnB,EAAuB;AACrB;AACD;;AACD,UAAI,SAASjY,IAAT,CAAciY,UAAd,CAAJ,EAA+B;AAC7B,aAAKC,8BAAL,CAAoCpR,EAAE,CAAClb,KAAvC,EAA8C;AAC5CosB,UAAAA,QAD4C;AAE5CC,UAAAA;AAF4C,SAA9C;AAID;;AACD,UAAIoB,SAAS,CAAC1sB,GAAV,CAAcsrB,UAAd,CAAJ,EAA+B;AAC7B,aAAKG,gCAAL,CAAsCtR,EAAE,CAAClb,KAAzC,EAAgD;AAC9CosB,UAAAA,QAD8C;AAE9CC,UAAAA;AAF8C,SAAhD;AAID;;AACDoB,MAAAA,SAAS,CAACO,GAAV,CAAc3B,UAAd;AACA,YAAM5Y,OAAO,GAAG;AAAE2Y,QAAAA,QAAF;AAAYS,QAAAA,YAAZ;AAA0BR,QAAAA;AAA1B,OAAhB;AACA0B,MAAAA,UAAU,CAAC7S,EAAX,GAAgBA,EAAhB;;AACA,cAAQmS,IAAI,CAACzqB,IAAb;AACE,aAAK,SAAL;AAAgB;AACd,iBAAK0qB,iCAAL,CACED,IAAI,CAAC1hB,GADP,EAEE8H,OAFF,EAGE,SAHF;AAKAsa,YAAAA,UAAU,CAACV,IAAX,GAAkBA,IAAI,CAACzf,KAAvB;AACA8f,YAAAA,OAAO,CAACC,cAAR,CAAuB9rB,IAAvB,CACE,KAAK8P,UAAL,CAAgBoc,UAAhB,EAA4B,mBAA5B,CADF;AAGA;AACD;;AACD,aAAK,QAAL;AAAe;AACb,iBAAKT,iCAAL,CAAuCD,IAAI,CAAC1hB,GAA5C,EAAiD8H,OAAjD,EAA0D,QAA1D;AACAsa,YAAAA,UAAU,CAACV,IAAX,GAAkBA,IAAI,CAACzf,KAAvB;AACA8f,YAAAA,OAAO,CAACE,aAAR,CAAsB/rB,IAAtB,CACE,KAAK8P,UAAL,CAAgBoc,UAAhB,EAA4B,kBAA5B,CADF;AAGA;AACD;;AACD,aAAK,QAAL;AAAe;AACb,iBAAKT,iCAAL,CAAuCD,IAAI,CAAC1hB,GAA5C,EAAiD8H,OAAjD,EAA0D,QAA1D;AACAsa,YAAAA,UAAU,CAACV,IAAX,GAAkBA,IAAI,CAACzf,KAAvB;AACA8f,YAAAA,OAAO,CAACG,aAAR,CAAsBhsB,IAAtB,CACE,KAAK8P,UAAL,CAAgBoc,UAAhB,EAA4B,kBAA5B,CADF;AAGA;AACD;;AACD,aAAK,SAAL;AAAgB;AACd,kBAAM,KAAKnB,qCAAL,CAA2CS,IAAI,CAAC1hB,GAAhD,EAAqD8H,OAArD,CAAN;AACD;;AACD,aAAK,MAAL;AAAa;AACX,oBAAQoZ,YAAR;AACE,mBAAK,SAAL;AACE,qBAAKV,wCAAL,CACEkB,IAAI,CAAC1hB,GADP,EAEE8H,OAFF;AAIA;;AACF,mBAAK,QAAL;AACE,qBAAKqZ,uCAAL,CAA6CO,IAAI,CAAC1hB,GAAlD,EAAuD8H,OAAvD;AACA;;AACF;AACEia,gBAAAA,OAAO,CAACI,gBAAR,CAAyBjsB,IAAzB,CACE,KAAK8P,UAAL,CAAgBoc,UAAhB,EAA4B,qBAA5B,CADF;AAXJ;AAeD;AAhDH;;AAmDA,UAAI,CAAC,KAAKztB,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAL,EAA4B;AAC1B,aAAKqiB,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACD;AACF;;AACD,WAAOu1B,OAAP;AACD;;AAEDO,EAAAA,qBAAqB,CACnBC,kBADmB,EAEnBJ,gBAFmB,EAGnB;AAAE1B,IAAAA;AAAF,GAHmB,EAIJ;AACf,QAAI8B,kBAAkB,CAAC7sB,MAAnB,KAA8B,CAAlC,EAAqC;AACnC,aAAOysB,gBAAP;AACD,KAFD,MAEO,IAAIA,gBAAgB,CAACzsB,MAAjB,KAA4B,CAAhC,EAAmC;AACxC,aAAO6sB,kBAAP;AACD,KAFM,MAEA,IAAIJ,gBAAgB,CAACzsB,MAAjB,GAA0B6sB,kBAAkB,CAAC7sB,MAAjD,EAAyD;AAAA,4BACzC6sB,kBADyC,eACrB;AAApC,cAAM9H,MAAM,GAAI8H,kBAAJ,IAAZ;AACH,aAAKnB,kDAAL,CACE3G,MAAM,CAACpmB,KADT,EAEE;AAAEosB,UAAAA;AAAF,SAFF;AAID;;AACD,aAAO0B,gBAAP;AACD,KARM,MAQA;AAAA,8BACgBA,gBADhB,gBACkC;AAAlC,cAAM1H,MAAM,GAAI0H,gBAAJ,KAAZ;AACH,aAAKf,kDAAL,CACE3G,MAAM,CAACpmB,KADT,EAEE;AAAEosB,UAAAA;AAAF,SAFF;AAID;;AACD,aAAO8B,kBAAP;AACD;AACF;;AAEDC,EAAAA,yBAAyB,CAAC;AACxB/B,IAAAA;AADwB,GAAD,EAIJ;AACnB,QAAI,KAAKlQ,aAAL,CAAmB,IAAnB,CAAJ,EAA8B;AAC5B,UAAI,CAAC,KAAK5b,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAL,EAA0B;AACxB,cAAM,KAAK81B,gCAAL,CAAsC,KAAK/qB,KAAL,CAAW3B,KAAjD,EAAwD;AAC5DosB,UAAAA,QAD4D;AAE5DO,UAAAA,YAAY,EAAE;AAF8C,SAAxD,CAAN;AAID;;AAED,YAAM;AAAE/e,QAAAA;AAAF,UAAY,KAAKjM,KAAvB;AACA,WAAKqU,IAAL;;AAEA,UACEpI,KAAK,KAAK,SAAV,IACAA,KAAK,KAAK,QADV,IAEAA,KAAK,KAAK,QAFV,IAGAA,KAAK,KAAK,QAJZ,EAKE;AACA,aAAK8e,gCAAL,CAAsC,KAAK/qB,KAAL,CAAW3B,KAAjD,EAAwD;AACtDosB,UAAAA,QADsD;AAEtDO,UAAAA,YAAY,EAAE/e;AAFwC,SAAxD;AAID;;AAED,aAAOA,KAAP;AACD;;AACD,WAAO,IAAP;AACD;;AAEDwgB,EAAAA,YAAY,CAACpsB,IAAD,EAAe;AAAEoqB,IAAAA,QAAF;AAAYiC,IAAAA;AAAZ,GAAf,EAA8C;AACxD,UAAMxB,YAAY,GAAG,KAAKsB,yBAAL,CAA+B;AAAE/B,MAAAA;AAAF,KAA/B,CAArB;AACA,SAAKhS,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;AACA,UAAM81B,OAAO,GAAG,KAAKF,eAAL,CAAqB;AAAEpB,MAAAA,QAAF;AAAYS,MAAAA;AAAZ,KAArB,CAAhB;;AAEA,YAAQA,YAAR;AACE,WAAK,SAAL;AACE7qB,QAAAA,IAAI,CAAC6qB,YAAL,GAAoB,IAApB;AACA7qB,QAAAA,IAAI,CAAC0rB,OAAL,GAAeA,OAAO,CAACC,cAAvB;AACA,aAAKvT,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,eAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;;AACF,WAAK,QAAL;AACEA,QAAAA,IAAI,CAAC6qB,YAAL,GAAoB,IAApB;AACA7qB,QAAAA,IAAI,CAAC0rB,OAAL,GAAeA,OAAO,CAACE,aAAvB;AACA,aAAKxT,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,eAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;;AACF,WAAK,QAAL;AACEA,QAAAA,IAAI,CAAC6qB,YAAL,GAAoB,IAApB;AACA7qB,QAAAA,IAAI,CAAC0rB,OAAL,GAAe,KAAKO,qBAAL,CACbP,OAAO,CAACG,aADK,EAEbH,OAAO,CAACI,gBAFK,EAGb;AAAE1B,UAAAA;AAAF,SAHa,CAAf;AAKA,aAAKhS,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,eAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;;AACF,WAAK,QAAL;AACEA,QAAAA,IAAI,CAAC0rB,OAAL,GAAeA,OAAO,CAACI,gBAAvB;AACA,aAAK1T,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,eAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;;AACF;AAAS;AAEP,gBAAMssB,KAAK,GAAG,MAAM;AAClBtsB,YAAAA,IAAI,CAAC0rB,OAAL,GAAe,EAAf;AACA,iBAAKtT,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,mBAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD,WAJD;;AAKAA,UAAAA,IAAI,CAAC6qB,YAAL,GAAoB,KAApB;AAEA,gBAAM0B,QAAQ,GAAGb,OAAO,CAACC,cAAR,CAAuBtsB,MAAxC;AACA,gBAAMmtB,OAAO,GAAGd,OAAO,CAACE,aAAR,CAAsBvsB,MAAtC;AACA,gBAAMotB,OAAO,GAAGf,OAAO,CAACG,aAAR,CAAsBxsB,MAAtC;AACA,gBAAMqtB,YAAY,GAAGhB,OAAO,CAACI,gBAAR,CAAyBzsB,MAA9C;;AAEA,cAAI,CAACktB,QAAD,IAAa,CAACC,OAAd,IAAyB,CAACC,OAA1B,IAAqC,CAACC,YAA1C,EAAwD;AACtD,mBAAOJ,KAAK,EAAZ;AACD,WAFD,MAEO,IAAI,CAACC,QAAD,IAAa,CAACC,OAAlB,EAA2B;AAChCxsB,YAAAA,IAAI,CAAC0rB,OAAL,GAAe,KAAKO,qBAAL,CACbP,OAAO,CAACG,aADK,EAEbH,OAAO,CAACI,gBAFK,EAGb;AAAE1B,cAAAA;AAAF,aAHa,CAAf;AAKA,iBAAKhS,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,mBAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD,WARM,MAQA,IAAI,CAACwsB,OAAD,IAAY,CAACC,OAAb,IAAwBF,QAAQ,IAAIG,YAAxC,EAAsD;AAAA,sDACtChB,OAAO,CAACI,gBAD8B,6CACZ;AAA1C,oBAAM1H,MAAM,6BAAZ;AACH,mBAAK+F,wCAAL,CAA8C/F,MAAM,CAACpmB,KAArD,EAA4D;AAC1DosB,gBAAAA,QAD0D;AAE1DC,gBAAAA,UAAU,EAAEjG,MAAM,CAAClL,EAAP,CAAUtkB;AAFoC,eAA5D;AAID;;AACDoL,YAAAA,IAAI,CAAC0rB,OAAL,GAAeA,OAAO,CAACC,cAAvB;AACA,iBAAKvT,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,mBAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD,WAVM,MAUA,IAAI,CAACusB,QAAD,IAAa,CAACE,OAAd,IAAyBD,OAAO,IAAIE,YAAxC,EAAsD;AAAA,uDACtChB,OAAO,CAACI,gBAD8B,8CACZ;AAA1C,oBAAM1H,MAAM,8BAAZ;AACH,mBAAK0G,uCAAL,CAA6C1G,MAAM,CAACpmB,KAApD,EAA2D;AACzDosB,gBAAAA,QADyD;AAEzDC,gBAAAA,UAAU,EAAEjG,MAAM,CAAClL,EAAP,CAAUtkB;AAFmC,eAA3D;AAID;;AACDoL,YAAAA,IAAI,CAAC0rB,OAAL,GAAeA,OAAO,CAACE,aAAvB;AACA,iBAAKxT,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,mBAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD,WAVM,MAUA;AACL,iBAAKyqB,qCAAL,CAA2C4B,OAA3C,EAAoD;AAAEjC,cAAAA;AAAF,aAApD;AACA,mBAAOkC,KAAK,EAAZ;AACD;AACF;AAxEH;AA0ED;;AAEDnL,EAAAA,wBAAwB,CAACnhB,IAAD,EAAuB;AAC7C,UAAMkZ,EAAE,GAAG,KAAKC,eAAL,EAAX;AACAnZ,IAAAA,IAAI,CAACkZ,EAAL,GAAUA,EAAV;AACAlZ,IAAAA,IAAI,CAACa,IAAL,GAAY,KAAKurB,YAAL,CAAkB,KAAK1c,SAAL,EAAlB,EAAoC;AAC9C0a,MAAAA,QAAQ,EAAElR,EAAE,CAACtkB,IADiC;AAE9Cy3B,MAAAA,OAAO,EAAEnT,EAAE,CAAClb;AAFkC,KAApC,CAAZ;AAIA,WAAO,KAAK2R,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AA9sGsB,CAD3B;;AChLA,MAAM2sB,QAAoC,GAAG;AAC3CC,EAAAA,IAAI,EAAE,QADqC;AAE3CC,EAAAA,GAAG,EAAE,GAFsC;AAG3CC,EAAAA,IAAI,EAAE,QAHqC;AAI3CC,EAAAA,EAAE,EAAE,GAJuC;AAK3CC,EAAAA,EAAE,EAAE,GALuC;AAM3CC,EAAAA,IAAI,EAAE,QANqC;AAO3CC,EAAAA,KAAK,EAAE,QAPoC;AAQ3CC,EAAAA,IAAI,EAAE,QARqC;AAS3CC,EAAAA,KAAK,EAAE,QAToC;AAU3CC,EAAAA,MAAM,EAAE,QAVmC;AAW3CC,EAAAA,GAAG,EAAE,QAXsC;AAY3CC,EAAAA,MAAM,EAAE,QAZmC;AAa3CC,EAAAA,IAAI,EAAE,QAbqC;AAc3CC,EAAAA,GAAG,EAAE,QAdsC;AAe3CC,EAAAA,IAAI,EAAE,QAfqC;AAgB3CC,EAAAA,IAAI,EAAE,QAhBqC;AAiB3CC,EAAAA,KAAK,EAAE,QAjBoC;AAkB3CC,EAAAA,GAAG,EAAE,QAlBsC;AAmB3CC,EAAAA,GAAG,EAAE,QAnBsC;AAoB3CC,EAAAA,GAAG,EAAE,QApBsC;AAqB3CC,EAAAA,IAAI,EAAE,QArBqC;AAsB3CC,EAAAA,GAAG,EAAE,QAtBsC;AAuB3CC,EAAAA,MAAM,EAAE,QAvBmC;AAwB3CC,EAAAA,IAAI,EAAE,QAxBqC;AAyB3CC,EAAAA,IAAI,EAAE,QAzBqC;AA0B3CC,EAAAA,KAAK,EAAE,QA1BoC;AA2B3CC,EAAAA,KAAK,EAAE,QA3BoC;AA4B3CC,EAAAA,IAAI,EAAE,QA5BqC;AA6B3CC,EAAAA,MAAM,EAAE,QA7BmC;AA8B3CC,EAAAA,KAAK,EAAE,QA9BoC;AA+B3CC,EAAAA,IAAI,EAAE,QA/BqC;AAgC3CC,EAAAA,IAAI,EAAE,QAhCqC;AAiC3CC,EAAAA,KAAK,EAAE,QAjCoC;AAkC3CC,EAAAA,MAAM,EAAE,QAlCmC;AAmC3CC,EAAAA,MAAM,EAAE,QAnCmC;AAoC3CC,EAAAA,MAAM,EAAE,QApCmC;AAqC3CC,EAAAA,MAAM,EAAE,QArCmC;AAsC3CC,EAAAA,MAAM,EAAE,QAtCmC;AAuC3CC,EAAAA,MAAM,EAAE,QAvCmC;AAwC3CC,EAAAA,KAAK,EAAE,QAxCoC;AAyC3CC,EAAAA,MAAM,EAAE,QAzCmC;AA0C3CC,EAAAA,IAAI,EAAE,QA1CqC;AA2C3CC,EAAAA,KAAK,EAAE,QA3CoC;AA4C3CC,EAAAA,KAAK,EAAE,QA5CoC;AA6C3CC,EAAAA,MAAM,EAAE,QA7CmC;AA8C3CC,EAAAA,MAAM,EAAE,QA9CmC;AA+C3CC,EAAAA,MAAM,EAAE,QA/CmC;AAgD3CC,EAAAA,KAAK,EAAE,QAhDoC;AAiD3CC,EAAAA,IAAI,EAAE,QAjDqC;AAkD3CC,EAAAA,MAAM,EAAE,QAlDmC;AAmD3CC,EAAAA,MAAM,EAAE,QAnDmC;AAoD3CC,EAAAA,KAAK,EAAE,QApDoC;AAqD3CC,EAAAA,IAAI,EAAE,QArDqC;AAsD3CC,EAAAA,GAAG,EAAE,QAtDsC;AAuD3CC,EAAAA,MAAM,EAAE,QAvDmC;AAwD3CC,EAAAA,MAAM,EAAE,QAxDmC;AAyD3CC,EAAAA,MAAM,EAAE,QAzDmC;AA0D3CC,EAAAA,KAAK,EAAE,QA1DoC;AA2D3CC,EAAAA,MAAM,EAAE,QA3DmC;AA4D3CC,EAAAA,IAAI,EAAE,QA5DqC;AA6D3CC,EAAAA,KAAK,EAAE,QA7DoC;AA8D3CC,EAAAA,MAAM,EAAE,QA9DmC;AA+D3CC,EAAAA,MAAM,EAAE,QA/DmC;AAgE3CC,EAAAA,MAAM,EAAE,QAhEmC;AAiE3CC,EAAAA,KAAK,EAAE,QAjEoC;AAkE3CC,EAAAA,IAAI,EAAE,QAlEqC;AAmE3CC,EAAAA,MAAM,EAAE,QAnEmC;AAoE3CC,EAAAA,KAAK,EAAE,QApEoC;AAqE3CC,EAAAA,KAAK,EAAE,QArEoC;AAsE3CC,EAAAA,MAAM,EAAE,QAtEmC;AAuE3CC,EAAAA,MAAM,EAAE,QAvEmC;AAwE3CC,EAAAA,KAAK,EAAE,QAxEoC;AAyE3CC,EAAAA,MAAM,EAAE,QAzEmC;AA0E3CC,EAAAA,IAAI,EAAE,QA1EqC;AA2E3CC,EAAAA,KAAK,EAAE,QA3EoC;AA4E3CC,EAAAA,KAAK,EAAE,QA5EoC;AA6E3CC,EAAAA,MAAM,EAAE,QA7EmC;AA8E3CC,EAAAA,MAAM,EAAE,QA9EmC;AA+E3CC,EAAAA,MAAM,EAAE,QA/EmC;AAgF3CC,EAAAA,KAAK,EAAE,QAhFoC;AAiF3CC,EAAAA,IAAI,EAAE,QAjFqC;AAkF3CC,EAAAA,MAAM,EAAE,QAlFmC;AAmF3CC,EAAAA,MAAM,EAAE,QAnFmC;AAoF3CC,EAAAA,KAAK,EAAE,QApFoC;AAqF3CC,EAAAA,IAAI,EAAE,QArFqC;AAsF3CC,EAAAA,GAAG,EAAE,QAtFsC;AAuF3CC,EAAAA,MAAM,EAAE,QAvFmC;AAwF3CC,EAAAA,MAAM,EAAE,QAxFmC;AAyF3CC,EAAAA,MAAM,EAAE,QAzFmC;AA0F3CC,EAAAA,KAAK,EAAE,QA1FoC;AA2F3CC,EAAAA,MAAM,EAAE,QA3FmC;AA4F3CC,EAAAA,IAAI,EAAE,QA5FqC;AA6F3CC,EAAAA,MAAM,EAAE,QA7FmC;AA8F3CC,EAAAA,MAAM,EAAE,QA9FmC;AA+F3CC,EAAAA,MAAM,EAAE,QA/FmC;AAgG3CC,EAAAA,MAAM,EAAE,QAhGmC;AAiG3CC,EAAAA,KAAK,EAAE,QAjGoC;AAkG3CC,EAAAA,IAAI,EAAE,QAlGqC;AAmG3CC,EAAAA,MAAM,EAAE,QAnGmC;AAoG3CC,EAAAA,KAAK,EAAE,QApGoC;AAqG3CC,EAAAA,IAAI,EAAE,QArGqC;AAsG3CC,EAAAA,KAAK,EAAE,QAtGoC;AAuG3CC,EAAAA,KAAK,EAAE,QAvGoC;AAwG3CC,EAAAA,MAAM,EAAE,QAxGmC;AAyG3CC,EAAAA,MAAM,EAAE,QAzGmC;AA0G3CC,EAAAA,IAAI,EAAE,QA1GqC;AA2G3CC,EAAAA,IAAI,EAAE,QA3GqC;AA4G3CC,EAAAA,IAAI,EAAE,QA5GqC;AA6G3Cj8B,EAAAA,KAAK,EAAE,QA7GoC;AA8G3Ck8B,EAAAA,KAAK,EAAE,QA9GoC;AA+G3CC,EAAAA,IAAI,EAAE,QA/GqC;AAgH3CC,EAAAA,KAAK,EAAE,QAhHoC;AAiH3CC,EAAAA,KAAK,EAAE,QAjHoC;AAkH3CC,EAAAA,OAAO,EAAE,QAlHkC;AAmH3CC,EAAAA,IAAI,EAAE,QAnHqC;AAoH3CC,EAAAA,GAAG,EAAE,QApHsC;AAqH3CC,EAAAA,KAAK,EAAE,QArHoC;AAsH3CC,EAAAA,IAAI,EAAE,QAtHqC;AAuH3CC,EAAAA,KAAK,EAAE,QAvHoC;AAwH3CC,EAAAA,MAAM,EAAE,QAxHmC;AAyH3CC,EAAAA,EAAE,EAAE,QAzHuC;AA0H3CC,EAAAA,EAAE,EAAE,QA1HuC;AA2H3CC,EAAAA,EAAE,EAAE,QA3HuC;AA4H3CC,EAAAA,OAAO,EAAE,QA5HkC;AA6H3CC,EAAAA,EAAE,EAAE,QA7HuC;AA8H3CC,EAAAA,GAAG,EAAE,QA9HsC;AA+H3CC,EAAAA,KAAK,EAAE,QA/HoC;AAgI3CC,EAAAA,GAAG,EAAE,QAhIsC;AAiI3CC,EAAAA,OAAO,EAAE,QAjIkC;AAkI3CC,EAAAA,GAAG,EAAE,QAlIsC;AAmI3CC,EAAAA,GAAG,EAAE,QAnIsC;AAoI3CC,EAAAA,GAAG,EAAE,QApIsC;AAqI3CC,EAAAA,KAAK,EAAE,QArIoC;AAsI3CC,EAAAA,KAAK,EAAE,QAtIoC;AAuI3CC,EAAAA,IAAI,EAAE,QAvIqC;AAwI3CC,EAAAA,KAAK,EAAE,QAxIoC;AAyI3CC,EAAAA,KAAK,EAAE,QAzIoC;AA0I3CC,EAAAA,OAAO,EAAE,QA1IkC;AA2I3CC,EAAAA,IAAI,EAAE,QA3IqC;AA4I3CC,EAAAA,GAAG,EAAE,QA5IsC;AA6I3CC,EAAAA,KAAK,EAAE,QA7IoC;AA8I3CC,EAAAA,IAAI,EAAE,QA9IqC;AA+I3CC,EAAAA,KAAK,EAAE,QA/IoC;AAgJ3CC,EAAAA,MAAM,EAAE,QAhJmC;AAiJ3CC,EAAAA,EAAE,EAAE,QAjJuC;AAkJ3CC,EAAAA,EAAE,EAAE,QAlJuC;AAmJ3CC,EAAAA,EAAE,EAAE,QAnJuC;AAoJ3CC,EAAAA,OAAO,EAAE,QApJkC;AAqJ3CC,EAAAA,EAAE,EAAE,QArJuC;AAsJ3CC,EAAAA,GAAG,EAAE,QAtJsC;AAuJ3CC,EAAAA,MAAM,EAAE,QAvJmC;AAwJ3CC,EAAAA,KAAK,EAAE,QAxJoC;AAyJ3CC,EAAAA,GAAG,EAAE,QAzJsC;AA0J3CC,EAAAA,OAAO,EAAE,QA1JkC;AA2J3CC,EAAAA,GAAG,EAAE,QA3JsC;AA4J3CC,EAAAA,GAAG,EAAE,QA5JsC;AA6J3CC,EAAAA,GAAG,EAAE,QA7JsC;AA8J3CC,EAAAA,KAAK,EAAE,QA9JoC;AA+J3CC,EAAAA,QAAQ,EAAE,QA/JiC;AAgK3CC,EAAAA,KAAK,EAAE,QAhKoC;AAiK3CC,EAAAA,GAAG,EAAE,QAjKsC;AAkK3CC,EAAAA,IAAI,EAAE,QAlKqC;AAmK3CC,EAAAA,IAAI,EAAE,QAnKqC;AAoK3CC,EAAAA,MAAM,EAAE,QApKmC;AAqK3CC,EAAAA,IAAI,EAAE,QArKqC;AAsK3CC,EAAAA,GAAG,EAAE,QAtKsC;AAuK3CC,EAAAA,GAAG,EAAE,QAvKsC;AAwK3CC,EAAAA,GAAG,EAAE,QAxKsC;AAyK3CC,EAAAA,KAAK,EAAE,QAzKoC;AA0K3CC,EAAAA,KAAK,EAAE,QA1KoC;AA2K3CC,EAAAA,KAAK,EAAE,QA3KoC;AA4K3CC,EAAAA,KAAK,EAAE,QA5KoC;AA6K3CC,EAAAA,KAAK,EAAE,QA7KoC;AA8K3CC,EAAAA,KAAK,EAAE,QA9KoC;AA+K3CC,EAAAA,KAAK,EAAE,QA/KoC;AAgL3CC,EAAAA,KAAK,EAAE,QAhLoC;AAiL3CC,EAAAA,MAAM,EAAE,QAjLmC;AAkL3CC,EAAAA,MAAM,EAAE,QAlLmC;AAmL3CC,EAAAA,IAAI,EAAE,QAnLqC;AAoL3CC,EAAAA,MAAM,EAAE,QApLmC;AAqL3CC,EAAAA,MAAM,EAAE,QArLmC;AAsL3CC,EAAAA,KAAK,EAAE,QAtLoC;AAuL3CC,EAAAA,KAAK,EAAE,QAvLoC;AAwL3CC,EAAAA,MAAM,EAAE,QAxLmC;AAyL3CC,EAAAA,MAAM,EAAE,QAzLmC;AA0L3CC,EAAAA,KAAK,EAAE,QA1LoC;AA2L3CC,EAAAA,KAAK,EAAE,QA3LoC;AA4L3CC,EAAAA,IAAI,EAAE,QA5LqC;AA6L3CC,EAAAA,KAAK,EAAE,QA7LoC;AA8L3CC,EAAAA,MAAM,EAAE,QA9LmC;AA+L3CC,EAAAA,IAAI,EAAE,QA/LqC;AAgM3CC,EAAAA,KAAK,EAAE,QAhMoC;AAiM3CC,EAAAA,OAAO,EAAE,QAjMkC;AAkM3CC,EAAAA,IAAI,EAAE,QAlMqC;AAmM3CC,EAAAA,IAAI,EAAE,QAnMqC;AAoM3CC,EAAAA,IAAI,EAAE,QApMqC;AAqM3CC,EAAAA,IAAI,EAAE,QArMqC;AAsM3CC,EAAAA,IAAI,EAAE,QAtMqC;AAuM3CC,EAAAA,KAAK,EAAE,QAvMoC;AAwM3CC,EAAAA,IAAI,EAAE,QAxMqC;AAyM3CC,EAAAA,IAAI,EAAE,QAzMqC;AA0M3CC,EAAAA,IAAI,EAAE,QA1MqC;AA2M3CC,EAAAA,IAAI,EAAE,QA3MqC;AA4M3CC,EAAAA,IAAI,EAAE,QA5MqC;AA6M3CC,EAAAA,MAAM,EAAE,QA7MmC;AA8M3CC,EAAAA,IAAI,EAAE,QA9MqC;AA+M3CC,EAAAA,KAAK,EAAE,QA/MoC;AAgN3CnN,EAAAA,KAAK,EAAE,QAhNoC;AAiN3CoN,EAAAA,KAAK,EAAE,QAjNoC;AAkN3CC,EAAAA,IAAI,EAAE,QAlNqC;AAmN3CC,EAAAA,KAAK,EAAE,QAnNoC;AAoN3CC,EAAAA,EAAE,EAAE,QApNuC;AAqN3CC,EAAAA,IAAI,EAAE,QArNqC;AAsN3CC,EAAAA,GAAG,EAAE,QAtNsC;AAuN3CC,EAAAA,KAAK,EAAE,QAvNoC;AAwN3CC,EAAAA,MAAM,EAAE,QAxNmC;AAyN3CC,EAAAA,KAAK,EAAE,QAzNoC;AA0N3CptB,EAAAA,IAAI,EAAE,QA1NqC;AA2N3CqtB,EAAAA,KAAK,EAAE,QA3NoC;AA4N3CC,EAAAA,GAAG,EAAE,QA5NsC;AA6N3CC,EAAAA,GAAG,EAAE,QA7NsC;AA8N3CC,EAAAA,EAAE,EAAE,QA9NuC;AA+N3CC,EAAAA,GAAG,EAAE,QA/NsC;AAgO3CC,EAAAA,GAAG,EAAE,QAhOsC;AAiO3CC,EAAAA,GAAG,EAAE,QAjOsC;AAkO3CC,EAAAA,MAAM,EAAE,QAlOmC;AAmO3CC,EAAAA,GAAG,EAAE,QAnOsC;AAoO3CC,EAAAA,IAAI,EAAE,QApOqC;AAqO3CC,EAAAA,KAAK,EAAE,QArOoC;AAsO3CC,EAAAA,EAAE,EAAE,QAtOuC;AAuO3CC,EAAAA,KAAK,EAAE,QAvOoC;AAwO3CC,EAAAA,EAAE,EAAE,QAxOuC;AAyO3CC,EAAAA,EAAE,EAAE,QAzOuC;AA0O3CC,EAAAA,GAAG,EAAE,QA1OsC;AA2O3CC,EAAAA,GAAG,EAAE,QA3OsC;AA4O3CC,EAAAA,IAAI,EAAE,QA5OqC;AA6O3CC,EAAAA,IAAI,EAAE,QA7OqC;AA8O3CC,EAAAA,IAAI,EAAE,QA9OqC;AA+O3CC,EAAAA,KAAK,EAAE,QA/OoC;AAgP3CC,EAAAA,MAAM,EAAE,QAhPmC;AAiP3CC,EAAAA,IAAI,EAAE,QAjPqC;AAkP3CC,EAAAA,IAAI,EAAE,QAlPqC;AAmP3CC,EAAAA,KAAK,EAAE,QAnPoC;AAoP3CC,EAAAA,KAAK,EAAE,QApPoC;AAqP3CC,EAAAA,MAAM,EAAE,QArPmC;AAsP3CC,EAAAA,MAAM,EAAE,QAtPmC;AAuP3CC,EAAAA,IAAI,EAAE,QAvPqC;AAwP3CC,EAAAA,IAAI,EAAE,QAxPqC;AAyP3CC,EAAAA,GAAG,EAAE,QAzPsC;AA0P3CC,EAAAA,MAAM,EAAE,QA1PmC;AA2P3CC,EAAAA,KAAK,EAAE,QA3PoC;AA4P3CC,EAAAA,MAAM,EAAE,QA5PmC;AA6P3CC,EAAAA,KAAK,EAAE;AA7PoC,CAA7C;;ACaA,MAAMC,UAAU,GAAG,eAAnB;AACA,MAAMC,cAAc,GAAG,OAAvB;AAEA,MAAMC,SAAS,GAAGh7B,MAAM,CAACC,MAAP,CAAc;AAC9Bg7B,EAAAA,gBAAgB,EACd,6DAF4B;AAG9BC,EAAAA,yBAAyB,EAAE,+CAHG;AAI9BC,EAAAA,wBAAwB,EAAE,iDAJI;AAK9BC,EAAAA,mBAAmB,EACjB,+DAN4B;AAO9BC,EAAAA,sBAAsB,EAAE,2BAPM;AAQ9BC,EAAAA,4BAA4B,EAC1B;AAT4B,CAAd,CAAlB;AAcAvV,OAAE,CAACC,MAAH,GAAY,IAAI5W,UAAJ,CAAe,MAAf,EAAuB,KAAvB,CAAZ;AACA2W,OAAE,CAACwV,MAAH,GAAY,IAAInsB,UAAJ,CAAe,OAAf,EAAwB,KAAxB,CAAZ;AACA2W,OAAE,CAACE,MAAH,GAAY,IAAI7W,UAAJ,CAAe,gBAAf,EAAiC,IAAjC,EAAuC,IAAvC,CAAZ;AAEA1B,KAAE,CAAC8tB,OAAH,GAAa,IAAI/oC,SAAJ,CAAc,SAAd,CAAb;AACAib,KAAE,CAAC+tB,OAAH,GAAa,IAAIhpC,SAAJ,CAAc,SAAd,EAAyB;AAAEN,EAAAA,UAAU,EAAE;AAAd,CAAzB,CAAb;AACAub,KAAE,CAACqO,WAAH,GAAiB,IAAItpB,SAAJ,CAAc,aAAd,EAA6B;AAAEL,EAAAA,UAAU,EAAE;AAAd,CAA7B,CAAjB;AACAsb,KAAE,CAACguB,SAAH,GAAe,IAAIjpC,SAAJ,CAAc,WAAd,CAAf;;AAEAib,KAAE,CAACqO,WAAH,CAAe/oB,aAAf,GAA+B,YAAW;AACxC,OAAKmL,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CAAwB0nB,OAAE,CAACE,MAA3B;AACA,OAAK9nB,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CAAwB0nB,OAAE,CAACC,MAA3B;AACA,OAAK7nB,KAAL,CAAW+R,WAAX,GAAyB,KAAzB;AACD,CAJD;;AAMAxC,KAAE,CAACguB,SAAH,CAAa1oC,aAAb,GAA6B,UAASqd,QAAT,EAAmB;AAC9C,QAAMF,GAAG,GAAG,KAAKhS,KAAL,CAAW8R,OAAX,CAAmBvQ,GAAnB,EAAZ;;AACA,MAAKyQ,GAAG,KAAK4V,OAAE,CAACC,MAAX,IAAqB3V,QAAQ,KAAK3C,KAAE,CAAC9W,KAAtC,IAAgDuZ,GAAG,KAAK4V,OAAE,CAACwV,MAA/D,EAAuE;AACrE,SAAKp9B,KAAL,CAAW8R,OAAX,CAAmBvQ,GAAnB;AACA,SAAKvB,KAAL,CAAW+R,WAAX,GAAyB,KAAKE,UAAL,OAAsB2V,OAAE,CAACE,MAAlD;AACD,GAHD,MAGO;AACL,SAAK9nB,KAAL,CAAW+R,WAAX,GAAyB,IAAzB;AACD;AACF,CARD;;AAUA,SAASyrB,UAAT,CAAoBC,MAApB,EAAoD;AAClD,SAAOA,MAAM,GACTA,MAAM,CAACx8B,IAAP,KAAgB,oBAAhB,IACEw8B,MAAM,CAACx8B,IAAP,KAAgB,oBAFT,GAGT,KAHJ;AAID;;AAID,SAASy8B,mBAAT,CACED,MADF,EAEU;AACR,MAAIA,MAAM,CAACx8B,IAAP,KAAgB,eAApB,EAAqC;AACnC,WAAOw8B,MAAM,CAACxoC,IAAd;AACD;;AAED,MAAIwoC,MAAM,CAACx8B,IAAP,KAAgB,mBAApB,EAAyC;AACvC,WAAOw8B,MAAM,CAACE,SAAP,CAAiB1oC,IAAjB,GAAwB,GAAxB,GAA8BwoC,MAAM,CAACxoC,IAAP,CAAYA,IAAjD;AACD;;AAED,MAAIwoC,MAAM,CAACx8B,IAAP,KAAgB,qBAApB,EAA2C;AACzC,WACEy8B,mBAAmB,CAACD,MAAM,CAACA,MAAR,CAAnB,GACA,GADA,GAEAC,mBAAmB,CAACD,MAAM,CAAC3d,QAAR,CAHrB;AAKD;;AAGD,QAAM,IAAI1H,KAAJ,CAAU,+BAA+BqlB,MAAM,CAACx8B,IAAhD,CAAN;AACD;;AAED,WAAgBwK,UAAD,IACb,cAAcA,UAAd,CAAyB;AAGvBmyB,EAAAA,YAAY,GAAS;AACnB,QAAI5rB,GAAG,GAAG,EAAV;AACA,QAAI6rB,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAA5B;;AACA,aAAS;AACP,UAAI,KAAKhK,KAAL,CAAWgK,GAAX,IAAkB,KAAKtK,MAA3B,EAAmC;AACjC,cAAM,KAAK6K,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6Bw+B,SAAS,CAACK,sBAAvC,CAAN;AACD;;AAED,YAAMY,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAX;;AAEA,cAAQ8zB,EAAR;AACE;AACA;AACE,cAAI,KAAK99B,KAAL,CAAWgK,GAAX,KAAmB,KAAKhK,KAAL,CAAW3B,KAAlC,EAAyC;AACvC,gBAAIy/B,EAAE,OAAF,IAA6B,KAAK99B,KAAL,CAAW+R,WAA5C,EAAyD;AACvD,gBAAE,KAAK/R,KAAL,CAAWgK,GAAb;AACA,qBAAO,KAAKiO,WAAL,CAAiB1I,KAAE,CAACqO,WAApB,CAAP;AACD;;AACD,mBAAO,MAAMgH,gBAAN,CAAuBkZ,EAAvB,CAAP;AACD;;AACD9rB,UAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAP;AACA,iBAAO,KAAKiO,WAAL,CAAiB1I,KAAE,CAAC+tB,OAApB,EAA6BtrB,GAA7B,CAAP;;AAEF;AACEA,UAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAP;AACAgI,UAAAA,GAAG,IAAI,KAAK+rB,aAAL,EAAP;AACAF,UAAAA,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAAxB;AACA;;AAEF;AACE,cAAIpM,SAAS,CAACkgC,EAAD,CAAb,EAAmB;AACjB9rB,YAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAP;AACAgI,YAAAA,GAAG,IAAI,KAAKgsB,cAAL,CAAoB,IAApB,CAAP;AACAH,YAAAA,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAAxB;AACD,WAJD,MAIO;AACL,cAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACD;;AA1BL;AA4BD;AACF;;AAEDg0B,EAAAA,cAAc,CAACC,aAAD,EAAiC;AAC7C,UAAMH,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAX;AACA,QAAIgI,GAAJ;AACA,MAAE,KAAKhS,KAAL,CAAWgK,GAAb;;AACA,QACE8zB,EAAE,OAAF,IACA,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,QAFF,EAGE;AACA,QAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACAgI,MAAAA,GAAG,GAAGisB,aAAa,GAAG,IAAH,GAAU,MAA7B;AACD,KAND,MAMO;AACLjsB,MAAAA,GAAG,GAAG5F,MAAM,CAAC+G,YAAP,CAAoB2qB,EAApB,CAAN;AACD;;AACD,MAAE,KAAK99B,KAAL,CAAWk+B,OAAb;AACA,SAAKl+B,KAAL,CAAWtB,SAAX,GAAuB,KAAKsB,KAAL,CAAWgK,GAAlC;AAEA,WAAOgI,GAAP;AACD;;AAEDmsB,EAAAA,aAAa,CAACC,KAAD,EAAsB;AACjC,QAAIpsB,GAAG,GAAG,EAAV;AACA,QAAI6rB,UAAU,GAAG,EAAE,KAAK79B,KAAL,CAAWgK,GAA9B;;AACA,aAAS;AACP,UAAI,KAAKhK,KAAL,CAAWgK,GAAX,IAAkB,KAAKtK,MAA3B,EAAmC;AACjC,cAAM,KAAK6K,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC4H,kBAApC,CAAN;AACD;;AAED,YAAMs0B,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAX;AACA,UAAI8zB,EAAE,KAAKM,KAAX,EAAkB;;AAClB,UAAIN,EAAE,OAAN,EAAgC;AAC9B9rB,QAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAP;AACAgI,QAAAA,GAAG,IAAI,KAAK+rB,aAAL,EAAP;AACAF,QAAAA,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAAxB;AACD,OAJD,MAIO,IAAIpM,SAAS,CAACkgC,EAAD,CAAb,EAAmB;AACxB9rB,QAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAP;AACAgI,QAAAA,GAAG,IAAI,KAAKgsB,cAAL,CAAoB,KAApB,CAAP;AACAH,QAAAA,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAAxB;AACD,OAJM,MAIA;AACL,UAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACD;AACF;;AACDgI,IAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAX,EAA7B,CAAP;AACA,WAAO,KAAKiO,WAAL,CAAiB1I,KAAE,CAAC7Z,MAApB,EAA4Bsc,GAA5B,CAAP;AACD;;AAED+rB,EAAAA,aAAa,GAAW;AACtB,QAAIM,GAAG,GAAG,EAAV;AACA,QAAIC,KAAK,GAAG,CAAZ;AACA,QAAIC,MAAJ;AACA,QAAIT,EAAE,GAAG,KAAKt/B,KAAL,CAAW,KAAKwB,KAAL,CAAWgK,GAAtB,CAAT;AAEA,UAAMwF,QAAQ,GAAG,EAAE,KAAKxP,KAAL,CAAWgK,GAA9B;;AACA,WAAO,KAAKhK,KAAL,CAAWgK,GAAX,GAAiB,KAAKtK,MAAtB,IAAgC4+B,KAAK,KAAK,EAAjD,EAAqD;AACnDR,MAAAA,EAAE,GAAG,KAAKt/B,KAAL,CAAW,KAAKwB,KAAL,CAAWgK,GAAX,EAAX,CAAL;;AACA,UAAI8zB,EAAE,KAAK,GAAX,EAAgB;AACd,YAAIO,GAAG,CAAC,CAAD,CAAH,KAAW,GAAf,EAAoB;AAClB,cAAIA,GAAG,CAAC,CAAD,CAAH,KAAW,GAAf,EAAoB;AAClBA,YAAAA,GAAG,GAAGA,GAAG,CAACG,MAAJ,CAAW,CAAX,CAAN;;AACA,gBAAI7B,UAAU,CAAClqB,IAAX,CAAgB4rB,GAAhB,CAAJ,EAA0B;AACxBE,cAAAA,MAAM,GAAGnyB,MAAM,CAACqyB,aAAP,CAAqBC,QAAQ,CAACL,GAAD,EAAM,EAAN,CAA7B,CAAT;AACD;AACF,WALD,MAKO;AACLA,YAAAA,GAAG,GAAGA,GAAG,CAACG,MAAJ,CAAW,CAAX,CAAN;;AACA,gBAAI5B,cAAc,CAACnqB,IAAf,CAAoB4rB,GAApB,CAAJ,EAA8B;AAC5BE,cAAAA,MAAM,GAAGnyB,MAAM,CAACqyB,aAAP,CAAqBC,QAAQ,CAACL,GAAD,EAAM,EAAN,CAA7B,CAAT;AACD;AACF;AACF,SAZD,MAYO;AACLE,UAAAA,MAAM,GAAGI,QAAa,CAACN,GAAD,CAAtB;AACD;;AACD;AACD;;AACDA,MAAAA,GAAG,IAAIP,EAAP;AACD;;AACD,QAAI,CAACS,MAAL,EAAa;AACX,WAAKv+B,KAAL,CAAWgK,GAAX,GAAiBwF,QAAjB;AACA,aAAO,GAAP;AACD;;AACD,WAAO+uB,MAAP;AACD;;AASDK,EAAAA,WAAW,GAAS;AAClB,QAAId,EAAJ;AACA,UAAMz/B,KAAK,GAAG,KAAK2B,KAAL,CAAWgK,GAAzB;;AACA,OAAG;AACD8zB,MAAAA,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,EAAE,KAAK7kB,KAAL,CAAWgK,GAAnC,CAAL;AACD,KAFD,QAESoJ,gBAAgB,CAAC0qB,EAAD,CAAhB,IAAwBA,EAAE,OAFnC;;AAGA,WAAO,KAAK7lB,WAAL,CACL1I,KAAE,CAAC8tB,OADE,EAEL,KAAK7+B,KAAL,CAAWkD,KAAX,CAAiBrD,KAAjB,EAAwB,KAAK2B,KAAL,CAAWgK,GAAnC,CAFK,CAAP;AAID;;AAID60B,EAAAA,kBAAkB,GAAoB;AACpC,UAAMx+B,IAAI,GAAG,KAAK0P,SAAL,EAAb;;AACA,QAAI,KAAKpR,KAAL,CAAW4Q,KAAE,CAAC8tB,OAAd,CAAJ,EAA4B;AAC1Bh9B,MAAAA,IAAI,CAACpL,IAAL,GAAY,KAAK+K,KAAL,CAAWiM,KAAvB;AACD,KAFD,MAEO,IAAI,KAAKjM,KAAL,CAAWiB,IAAX,CAAgBvM,OAApB,EAA6B;AAClC2L,MAAAA,IAAI,CAACpL,IAAL,GAAY,KAAK+K,KAAL,CAAWiB,IAAX,CAAgBvM,OAA5B;AACD,KAFM,MAEA;AACL,WAAKqmB,UAAL;AACD;;AACD,SAAK1G,IAAL;AACA,WAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAIDy+B,EAAAA,sBAAsB,GAAwB;AAC5C,UAAMtvB,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,UAAMhV,IAAI,GAAG,KAAK4pC,kBAAL,EAAb;AACA,QAAI,CAAC,KAAK7lB,GAAL,CAASzJ,KAAE,CAAC7Y,KAAZ,CAAL,EAAyB,OAAOzB,IAAP;AAEzB,UAAMoL,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,IAAAA,IAAI,CAACs9B,SAAL,GAAiB1oC,IAAjB;AACAoL,IAAAA,IAAI,CAACpL,IAAL,GAAY,KAAK4pC,kBAAL,EAAZ;AACA,WAAO,KAAK7uB,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAKD0+B,EAAAA,mBAAmB,GAGO;AACxB,UAAMvvB,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,QAAI5J,IAAI,GAAG,KAAKy+B,sBAAL,EAAX;;AACA,QAAIz+B,IAAI,CAACY,IAAL,KAAc,mBAAlB,EAAuC;AACrC,aAAOZ,IAAP;AACD;;AACD,WAAO,KAAK2Y,GAAL,CAASzJ,KAAE,CAAC3Y,GAAZ,CAAP,EAAyB;AACvB,YAAMooC,OAAO,GAAG,KAAKtyB,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAhB;AACA+0B,MAAAA,OAAO,CAACvB,MAAR,GAAiBp9B,IAAjB;AACA2+B,MAAAA,OAAO,CAAClf,QAAR,GAAmB,KAAK+e,kBAAL,EAAnB;AACAx+B,MAAAA,IAAI,GAAG,KAAK2P,UAAL,CAAgBgvB,OAAhB,EAAyB,qBAAzB,CAAP;AACD;;AACD,WAAO3+B,IAAP;AACD;;AAID4+B,EAAAA,sBAAsB,GAAiB;AACrC,QAAI5+B,IAAJ;;AACA,YAAQ,KAAKL,KAAL,CAAWiB,IAAnB;AACE,WAAKsO,KAAE,CAACtZ,MAAR;AACEoK,QAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,aAAKsE,IAAL;AACAhU,QAAAA,IAAI,GAAG,KAAK6+B,2BAAL,CAAiC7+B,IAAjC,CAAP;;AACA,YAAIA,IAAI,CAACsM,UAAL,CAAgB1L,IAAhB,KAAyB,oBAA7B,EAAmD;AACjD,eAAKsJ,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBw+B,SAAS,CAACC,gBAAjC;AACD;;AACD,eAAOz8B,IAAP;;AAEF,WAAKkP,KAAE,CAACqO,WAAR;AACA,WAAKrO,KAAE,CAAC7Z,MAAR;AACE,eAAO,KAAK4Z,aAAL,EAAP;;AAEF;AACE,cAAM,KAAK/E,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6Bw+B,SAAS,CAACI,mBAAvC,CAAN;AAfJ;AAiBD;;AAMDkC,EAAAA,uBAAuB,GAAyB;AAC9C,UAAM9+B,IAAI,GAAG,KAAKqM,WAAL,CACX,KAAK1M,KAAL,CAAWqK,UADA,EAEX,KAAKrK,KAAL,CAAWsK,aAFA,CAAb;AAIA,WAAO,KAAKwC,YAAL,CACLzM,IADK,EAEL,oBAFK,EAGL,KAAKL,KAAL,CAAW3B,KAHN,EAIL,KAAK2B,KAAL,CAAWiK,QAJN,CAAP;AAMD;;AAIDm1B,EAAAA,mBAAmB,CAAC/+B,IAAD,EAA2C;AAC5D,SAAKgU,IAAL;AACAhU,IAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAKsM,eAAL,EAAlB;AACA,SAAKR,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AAEA,WAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAID6+B,EAAAA,2BAA2B,CACzB7+B,IADyB,EAEC;AAC1B,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAJ,EAA2B;AACzBiK,MAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAKwyB,uBAAL,EAAlB;AACD,KAFD,MAEO;AACL9+B,MAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAKsM,eAAL,EAAlB;AACD;;AACD,SAAKR,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,WAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AAIDg/B,EAAAA,iBAAiB,GAAmB;AAClC,UAAMh/B,IAAI,GAAG,KAAK0P,SAAL,EAAb;;AACA,QAAI,KAAKiJ,GAAL,CAASzJ,KAAE,CAACtZ,MAAZ,CAAJ,EAAyB;AACvB,WAAKwiB,MAAL,CAAYlJ,KAAE,CAACtY,QAAf;AACAoJ,MAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAKmD,gBAAL,EAAhB;AACA,WAAKrK,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,aAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,oBAAtB,CAAP;AACD;;AACDA,IAAAA,IAAI,CAACpL,IAAL,GAAY,KAAK6pC,sBAAL,EAAZ;AACAz+B,IAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAK+M,GAAL,CAASzJ,KAAE,CAAChY,EAAZ,IAAkB,KAAK0nC,sBAAL,EAAlB,GAAkD,IAA/D;AACA,WAAO,KAAKjvB,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAIDi/B,EAAAA,wBAAwB,CACtB9vB,QADsB,EAEtBvF,QAFsB,EAGD;AACrB,UAAM5J,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;;AACA,QAAI,KAAKtL,KAAL,CAAW4Q,KAAE,CAACguB,SAAd,CAAJ,EAA8B;AAC5B,WAAK9kB,MAAL,CAAYlJ,KAAE,CAACguB,SAAf;AACA,aAAO,KAAKvtB,UAAL,CAAgB3P,IAAhB,EAAsB,oBAAtB,CAAP;AACD;;AACDA,IAAAA,IAAI,CAACpL,IAAL,GAAY,KAAK8pC,mBAAL,EAAZ;AACA,WAAO,KAAKQ,+BAAL,CAAqCl/B,IAArC,CAAP;AACD;;AAEDk/B,EAAAA,+BAA+B,CAC7Bl/B,IAD6B,EAER;AACrB,UAAMm/B,UAA4B,GAAG,EAArC;;AACA,WAAO,CAAC,KAAK7gC,KAAL,CAAW4Q,KAAE,CAAC9W,KAAd,CAAD,IAAyB,CAAC,KAAKkG,KAAL,CAAW4Q,KAAE,CAACguB,SAAd,CAAjC,EAA2D;AACzDiC,MAAAA,UAAU,CAACt/B,IAAX,CAAgB,KAAKm/B,iBAAL,EAAhB;AACD;;AACDh/B,IAAAA,IAAI,CAACm/B,UAAL,GAAkBA,UAAlB;AACAn/B,IAAAA,IAAI,CAACo/B,WAAL,GAAmB,KAAKzmB,GAAL,CAASzJ,KAAE,CAAC9W,KAAZ,CAAnB;AACA,SAAKggB,MAAL,CAAYlJ,KAAE,CAACguB,SAAf;AACA,WAAO,KAAKvtB,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAIDq/B,EAAAA,wBAAwB,CACtBlwB,QADsB,EAEtBvF,QAFsB,EAGD;AACrB,UAAM5J,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;;AACA,QAAI,KAAKtL,KAAL,CAAW4Q,KAAE,CAACguB,SAAd,CAAJ,EAA8B;AAC5B,WAAK9kB,MAAL,CAAYlJ,KAAE,CAACguB,SAAf;AACA,aAAO,KAAKvtB,UAAL,CAAgB3P,IAAhB,EAAsB,oBAAtB,CAAP;AACD;;AACDA,IAAAA,IAAI,CAACpL,IAAL,GAAY,KAAK8pC,mBAAL,EAAZ;AACA,SAAKtmB,MAAL,CAAYlJ,KAAE,CAACguB,SAAf;AACA,WAAO,KAAKvtB,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAKDs/B,EAAAA,iBAAiB,CAACnwB,QAAD,EAAmBvF,QAAnB,EAAqD;AACpE,UAAM5J,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA,UAAM21B,QAAQ,GAAG,EAAjB;AACA,UAAMC,cAAc,GAAG,KAAKP,wBAAL,CAA8B9vB,QAA9B,EAAwCvF,QAAxC,CAAvB;AACA,QAAI61B,cAAc,GAAG,IAArB;;AAEA,QAAI,CAACD,cAAc,CAACJ,WAApB,EAAiC;AAC/BM,MAAAA,QAAQ,EAAE,SAAS;AACjB,gBAAQ,KAAK//B,KAAL,CAAWiB,IAAnB;AACE,eAAKsO,KAAE,CAACqO,WAAR;AACEpO,YAAAA,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAAtB;AACA4L,YAAAA,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAAtB;AACA,iBAAKoK,IAAL;;AACA,gBAAI,KAAK2E,GAAL,CAASzJ,KAAE,CAAC9W,KAAZ,CAAJ,EAAwB;AACtBqnC,cAAAA,cAAc,GAAG,KAAKJ,wBAAL,CACflwB,QADe,EAEfvF,QAFe,CAAjB;AAIA,oBAAM81B,QAAN;AACD;;AACDH,YAAAA,QAAQ,CAAC1/B,IAAT,CAAc,KAAKy/B,iBAAL,CAAuBnwB,QAAvB,EAAiCvF,QAAjC,CAAd;AACA;;AAEF,eAAKsF,KAAE,CAAC+tB,OAAR;AACEsC,YAAAA,QAAQ,CAAC1/B,IAAT,CAAc,KAAKoP,aAAL,EAAd;AACA;;AAEF,eAAKC,KAAE,CAACtZ,MAAR;AAAgB;AACd,oBAAMoK,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,mBAAKsE,IAAL;;AACA,kBAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAAJ,EAA6B;AAC3B2oC,gBAAAA,QAAQ,CAAC1/B,IAAT,CAAc,KAAKk/B,mBAAL,CAAyB/+B,IAAzB,CAAd;AACD,eAFD,MAEO;AACLu/B,gBAAAA,QAAQ,CAAC1/B,IAAT,CAAc,KAAKg/B,2BAAL,CAAiC7+B,IAAjC,CAAd;AACD;;AAED;AACD;;AAED;AACE,kBAAM,KAAK0a,UAAL,EAAN;AAhCJ;AAkCD;;AAED,UAAIyiB,UAAU,CAACqC,cAAD,CAAV,IAA8B,CAACrC,UAAU,CAACsC,cAAD,CAA7C,EAA+D;AAC7D,aAAKv1B,KAAL,CAEEu1B,cAAc,CAACzhC,KAFjB,EAGEw+B,SAAS,CAACE,yBAHZ;AAKD,OAND,MAMO,IAAI,CAACS,UAAU,CAACqC,cAAD,CAAX,IAA+BrC,UAAU,CAACsC,cAAD,CAA7C,EAA+D;AACpE,aAAKv1B,KAAL,CAEEu1B,cAAc,CAACzhC,KAFjB,EAGEw+B,SAAS,CAACG,wBAHZ,EAIEU,mBAAmB,CAACmC,cAAc,CAAC5qC,IAAhB,CAJrB;AAMD,OAPM,MAOA,IAAI,CAACuoC,UAAU,CAACqC,cAAD,CAAX,IAA+B,CAACrC,UAAU,CAACsC,cAAD,CAA9C,EAAgE;AACrE,YAEEpC,mBAAmB,CAACoC,cAAc,CAAC7qC,IAAhB,CAAnB,KACAyoC,mBAAmB,CAACmC,cAAc,CAAC5qC,IAAhB,CAHrB,EAIE;AACA,eAAKsV,KAAL,CAEEu1B,cAAc,CAACzhC,KAFjB,EAGEw+B,SAAS,CAACG,wBAHZ,EAIEU,mBAAmB,CAACmC,cAAc,CAAC5qC,IAAhB,CAJrB;AAMD;AACF;AACF;;AAED,QAAIuoC,UAAU,CAACqC,cAAD,CAAd,EAAgC;AAC9Bx/B,MAAAA,IAAI,CAAC2/B,eAAL,GAAuBH,cAAvB;AACAx/B,MAAAA,IAAI,CAAC4/B,eAAL,GAAuBH,cAAvB;AACD,KAHD,MAGO;AACLz/B,MAAAA,IAAI,CAACw/B,cAAL,GAAsBA,cAAtB;AACAx/B,MAAAA,IAAI,CAACy/B,cAAL,GAAsBA,cAAtB;AACD;;AACDz/B,IAAAA,IAAI,CAACu/B,QAAL,GAAgBA,QAAhB;;AACA,QAAI,KAAKjmB,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1B,YAAM,KAAKpP,KAAL,CACJ,KAAKvK,KAAL,CAAW3B,KADP,EAEJw+B,SAAS,CAACM,4BAFN,CAAN;AAID;;AAED,WAAOK,UAAU,CAACqC,cAAD,CAAV,GACH,KAAK7vB,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CADG,GAEH,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,YAAtB,CAFJ;AAGD;;AAID6/B,EAAAA,eAAe,GAAiB;AAC9B,UAAM1wB,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,SAAKoK,IAAL;AACA,WAAO,KAAKsrB,iBAAL,CAAuBnwB,QAAvB,EAAiCvF,QAAjC,CAAP;AACD;;AAMDqF,EAAAA,aAAa,CAACxB,mBAAD,EAAuD;AAClE,QAAI,KAAKnP,KAAL,CAAW4Q,KAAE,CAAC+tB,OAAd,CAAJ,EAA4B;AAC1B,aAAO,KAAKjxB,YAAL,CAAkB,KAAKrM,KAAL,CAAWiM,KAA7B,EAAoC,SAApC,CAAP;AACD,KAFD,MAEO,IAAI,KAAKtN,KAAL,CAAW4Q,KAAE,CAACqO,WAAd,CAAJ,EAAgC;AACrC,aAAO,KAAKsiB,eAAL,EAAP;AACD,KAFM,MAEA,IACL,KAAKvmB,YAAL,CAAkB,GAAlB,KACA,KAAKnb,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,QAFK,EAGL;AAGA,WAAKiO,WAAL,CAAiB1I,KAAE,CAACqO,WAApB;AACA,aAAO,KAAKsiB,eAAL,EAAP;AACD,KARM,MAQA;AACL,aAAO,MAAM5wB,aAAN,CAAoBxB,mBAApB,CAAP;AACD;AACF;;AAED8W,EAAAA,gBAAgB,CAAC/mB,IAAD,EAAqB;AACnC,QAAI,KAAKmC,KAAL,CAAWmgC,cAAf,EAA+B,OAAO,MAAMvb,gBAAN,CAAuB/mB,IAAvB,CAAP;AAE/B,UAAMiU,OAAO,GAAG,KAAKG,UAAL,EAAhB;;AAEA,QAAIH,OAAO,KAAK8V,OAAE,CAACE,MAAnB,EAA2B;AACzB,aAAO,KAAK8V,YAAL,EAAP;AACD;;AAED,QAAI9rB,OAAO,KAAK8V,OAAE,CAACC,MAAf,IAAyB/V,OAAO,KAAK8V,OAAE,CAACwV,MAA5C,EAAoD;AAClD,UAAIlqB,iBAAiB,CAACrV,IAAD,CAArB,EAA6B;AAC3B,eAAO,KAAK+gC,WAAL,EAAP;AACD;;AAED,UAAI/gC,IAAI,OAAR,EAAoC;AAClC,UAAE,KAAKmC,KAAL,CAAWgK,GAAb;AACA,eAAO,KAAKiO,WAAL,CAAiB1I,KAAE,CAACguB,SAApB,CAAP;AACD;;AAED,UACE,CAAC1/B,IAAI,OAAJ,IAAoCA,IAAI,OAAzC,KACAiU,OAAO,KAAK8V,OAAE,CAACC,MAFjB,EAGE;AACA,eAAO,KAAKsW,aAAL,CAAmBtgC,IAAnB,CAAP;AACD;AACF;;AAED,QACEA,IAAI,OAAJ,IACA,KAAKmC,KAAL,CAAW+R,WADX,IAEA,KAAKvT,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QAHF,EAIE;AACA,QAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACA,aAAO,KAAKiO,WAAL,CAAiB1I,KAAE,CAACqO,WAApB,CAAP;AACD;;AAED,WAAO,MAAMgH,gBAAN,CAAuB/mB,IAAvB,CAAP;AACD;;AAEDhJ,EAAAA,aAAa,CAACqd,QAAD,EAA4B;AACvC,QAAI,KAAKvT,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAJ,EAA2B;AACzB,YAAMgc,UAAU,GAAG,KAAKA,UAAL,EAAnB;;AACA,UAAIA,UAAU,KAAK2V,OAAE,CAACC,MAAtB,EAA8B;AAC5B,aAAK7nB,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CAAwB0nB,OAAE,CAACtW,eAA3B;AACD,OAFD,MAEO,IAAIW,UAAU,KAAK2V,OAAE,CAACE,MAAtB,EAA8B;AACnC,aAAK9nB,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CAAwB0nB,OAAE,CAACrW,aAA3B;AACD,OAFM,MAEA;AACL,cAAM1c,aAAN,CAAoBqd,QAApB;AACD;;AACD,WAAKlS,KAAL,CAAW+R,WAAX,GAAyB,IAAzB;AACD,KAVD,MAUO,IAAI,KAAKpT,KAAL,CAAW4Q,KAAE,CAAC9W,KAAd,KAAwByZ,QAAQ,KAAK3C,KAAE,CAACqO,WAA5C,EAAyD;AAC9D,WAAK5d,KAAL,CAAW8R,OAAX,CAAmBpS,MAAnB,IAA6B,CAA7B;AACA,WAAKM,KAAL,CAAW8R,OAAX,CAAmB5R,IAAnB,CAAwB0nB,OAAE,CAACwV,MAA3B;AACA,WAAKp9B,KAAL,CAAW+R,WAAX,GAAyB,KAAzB;AACD,KAJM,MAIA;AACL,aAAO,MAAMld,aAAN,CAAoBqd,QAApB,CAAP;AACD;AACF;;AAtfsB,CAD3B;;ACpEO,MAAMkuB,KAAN,CAAY;AASjB7rC,EAAAA,WAAW,CAACqX,KAAD,EAAoB;AAAA,SAN/By0B,GAM+B,GANf,EAMe;AAAA,SAJ/BC,OAI+B,GAJX,EAIW;AAAA,SAF/BC,SAE+B,GAFT,EAES;AAC7B,SAAK30B,KAAL,GAAaA,KAAb;AACD;;AAXgB;AAkBnB,AAAe,MAAM40B,YAAN,CAA0C;AAOvDjsC,EAAAA,WAAW,CAACgW,KAAD,EAAuBsJ,QAAvB,EAA0C;AAAA,SANrD4sB,UAMqD,GANzB,EAMyB;AAAA,SAHrDC,gBAGqD,GAHb,IAAI3rC,GAAJ,EAGa;AAAA,SAFrD4rC,qBAEqD,GAFR,IAAI5rC,GAAJ,EAEQ;AACnD,SAAKwV,KAAL,GAAaA,KAAb;AACA,SAAKsJ,QAAL,GAAgBA,QAAhB;AACD;;AAED,MAAI+sB,UAAJ,GAAiB;AACf,WAAO,CAAC,KAAKC,eAAL,GAAuBj1B,KAAvB,GAA+B5Q,cAAhC,IAAkD,CAAzD;AACD;;AACD,MAAI8lC,UAAJ,GAAiB;AACf,WAAO,CAAC,KAAKC,gBAAL,GAAwBn1B,KAAxB,GAAgCzQ,WAAjC,IAAgD,CAAvD;AACD;;AACD,MAAIyU,gBAAJ,GAAuB;AACrB,WAAO,CAAC,KAAKmxB,gBAAL,GAAwBn1B,KAAxB,GAAgCxQ,kBAAjC,IAAuD,CAA9D;AACD;;AACD,MAAI4lC,OAAJ,GAAc;AACZ,WAAO,CAAC,KAAKD,gBAAL,GAAwBn1B,KAAxB,GAAgCvQ,WAAjC,IAAgD,CAAvD;AACD;;AACD,MAAI4lC,kBAAJ,GAAyB;AACvB,WAAO,CAAC,KAAKF,gBAAL,GAAwBn1B,KAAxB,GAAgC5Q,cAAjC,IAAmD,CAA1D;AACD;;AACD,MAAIkmC,mBAAJ,GAA0B;AACxB,WAAO,KAAKC,0BAAL,CAAgC,KAAKC,YAAL,EAAhC,CAAP;AACD;;AAEDC,EAAAA,WAAW,CAACz1B,KAAD,EAA2B;AACpC,WAAO,IAAIw0B,KAAJ,CAAUx0B,KAAV,CAAP;AACD;;AAIDuP,EAAAA,KAAK,CAACvP,KAAD,EAAoB;AACvB,SAAK60B,UAAL,CAAgBvgC,IAAhB,CAAqB,KAAKmhC,WAAL,CAAiBz1B,KAAjB,CAArB;AACD;;AAED0P,EAAAA,IAAI,GAAG;AACL,SAAKmlB,UAAL,CAAgBl/B,GAAhB;AACD;;AAKD4/B,EAAAA,0BAA0B,CAAClmB,KAAD,EAAyB;AACjD,WAAO,CAAC,EACNA,KAAK,CAACrP,KAAN,GAAc5Q,cAAd,IACC,CAAC,KAAK6Y,QAAN,IAAkBoH,KAAK,CAACrP,KAAN,GAAc7Q,aAF3B,CAAR;AAID;;AAEDmgB,EAAAA,WAAW,CAACjmB,IAAD,EAAesY,WAAf,EAA0CvD,GAA1C,EAAuD;AAChE,QAAIiR,KAAK,GAAG,KAAKmmB,YAAL,EAAZ;;AACA,QAAI7zB,WAAW,GAAG5R,kBAAd,IAAoC4R,WAAW,GAAG3R,mBAAtD,EAA2E;AACzE,WAAK0lC,yBAAL,CAA+BrmB,KAA/B,EAAsChmB,IAAtC,EAA4CsY,WAA5C,EAAyDvD,GAAzD;;AAEA,UAAIuD,WAAW,GAAG3R,mBAAlB,EAAuC;AACrCqf,QAAAA,KAAK,CAACslB,SAAN,CAAgBrgC,IAAhB,CAAqBjL,IAArB;AACD,OAFD,MAEO;AACLgmB,QAAAA,KAAK,CAACqlB,OAAN,CAAcpgC,IAAd,CAAmBjL,IAAnB;AACD;;AAED,UAAIsY,WAAW,GAAG5R,kBAAlB,EAAsC;AACpC,aAAK4lC,kBAAL,CAAwBtmB,KAAxB,EAA+BhmB,IAA/B;AACD;AACF,KAZD,MAYO,IAAIsY,WAAW,GAAG7R,cAAlB,EAAkC;AACvC,WAAK,IAAI+E,CAAC,GAAG,KAAKggC,UAAL,CAAgB/gC,MAAhB,GAAyB,CAAtC,EAAyCe,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;AACpDwa,QAAAA,KAAK,GAAG,KAAKwlB,UAAL,CAAgBhgC,CAAhB,CAAR;AACA,aAAK6gC,yBAAL,CAA+BrmB,KAA/B,EAAsChmB,IAAtC,EAA4CsY,WAA5C,EAAyDvD,GAAzD;AACAiR,QAAAA,KAAK,CAAColB,GAAN,CAAUngC,IAAV,CAAejL,IAAf;AACA,aAAKssC,kBAAL,CAAwBtmB,KAAxB,EAA+BhmB,IAA/B;AAEA,YAAIgmB,KAAK,CAACrP,KAAN,GAAcrQ,SAAlB,EAA6B;AAC9B;AACF;;AACD,QAAI,KAAKsY,QAAL,IAAiBoH,KAAK,CAACrP,KAAN,GAAc7Q,aAAnC,EAAkD;AAChD,WAAK2lC,gBAAL,CAAsBc,MAAtB,CAA6BvsC,IAA7B;AACD;AACF;;AAEDssC,EAAAA,kBAAkB,CAACtmB,KAAD,EAAgBhmB,IAAhB,EAA8B;AAC9C,QAAI,KAAK4e,QAAL,IAAiBoH,KAAK,CAACrP,KAAN,GAAc7Q,aAAnC,EAAkD;AAChD,WAAK2lC,gBAAL,CAAsBc,MAAtB,CAA6BvsC,IAA7B;AACD;AACF;;AAEDqsC,EAAAA,yBAAyB,CACvBrmB,KADuB,EAEvBhmB,IAFuB,EAGvBsY,WAHuB,EAIvBvD,GAJuB,EAKvB;AACA,QAAI,KAAKy3B,mBAAL,CAAyBxmB,KAAzB,EAAgChmB,IAAhC,EAAsCsY,WAAtC,CAAJ,EAAwD;AACtD,WAAKhD,KAAL,CAAWP,GAAX,EAAgBpI,MAAM,CAAC8H,gBAAvB,EAAyCzU,IAAzC;AACD;AACF;;AAEDwsC,EAAAA,mBAAmB,CACjBxmB,KADiB,EAEjBhmB,IAFiB,EAGjBsY,WAHiB,EAIR;AACT,QAAI,EAAEA,WAAW,GAAG/R,eAAhB,CAAJ,EAAsC,OAAO,KAAP;;AAEtC,QAAI+R,WAAW,GAAG5R,kBAAlB,EAAsC;AACpC,aACEsf,KAAK,CAACqlB,OAAN,CAAc7c,OAAd,CAAsBxuB,IAAtB,IAA8B,CAAC,CAA/B,IACAgmB,KAAK,CAACslB,SAAN,CAAgB9c,OAAhB,CAAwBxuB,IAAxB,IAAgC,CAAC,CADjC,IAEAgmB,KAAK,CAAColB,GAAN,CAAU5c,OAAV,CAAkBxuB,IAAlB,IAA0B,CAAC,CAH7B;AAKD;;AAED,QAAIsY,WAAW,GAAG3R,mBAAlB,EAAuC;AACrC,aACEqf,KAAK,CAACqlB,OAAN,CAAc7c,OAAd,CAAsBxuB,IAAtB,IAA8B,CAAC,CAA/B,IACC,CAAC,KAAKksC,0BAAL,CAAgClmB,KAAhC,CAAD,IACCA,KAAK,CAAColB,GAAN,CAAU5c,OAAV,CAAkBxuB,IAAlB,IAA0B,CAAC,CAH/B;AAKD;;AAED,WACGgmB,KAAK,CAACqlB,OAAN,CAAc7c,OAAd,CAAsBxuB,IAAtB,IAA8B,CAAC,CAA/B,IACC,EAAEgmB,KAAK,CAACrP,KAAN,GAAc1Q,kBAAd,IAAoC+f,KAAK,CAACqlB,OAAN,CAAc,CAAd,MAAqBrrC,IAA3D,CADF,IAEC,CAAC,KAAKksC,0BAAL,CAAgClmB,KAAhC,CAAD,IACCA,KAAK,CAACslB,SAAN,CAAgB9c,OAAhB,CAAwBxuB,IAAxB,IAAgC,CAAC,CAJrC;AAMD;;AAEDysC,EAAAA,gBAAgB,CAACnoB,EAAD,EAAmB;AACjC,QACE,KAAKknB,UAAL,CAAgB,CAAhB,EAAmBH,OAAnB,CAA2B7c,OAA3B,CAAmClK,EAAE,CAACtkB,IAAtC,MAAgD,CAAC,CAAjD,IACA,KAAKwrC,UAAL,CAAgB,CAAhB,EAAmBJ,GAAnB,CAAuB5c,OAAvB,CAA+BlK,EAAE,CAACtkB,IAAlC,MAA4C,CAAC,CAD7C,IAKA,KAAKwrC,UAAL,CAAgB,CAAhB,EAAmBF,SAAnB,CAA6B9c,OAA7B,CAAqClK,EAAE,CAACtkB,IAAxC,MAAkD,CAAC,CANrD,EAOE;AACA,WAAKyrC,gBAAL,CAAsBtrC,GAAtB,CAA0BmkB,EAAE,CAACtkB,IAA7B,EAAmCskB,EAAE,CAAClb,KAAtC;AACD;AACF;;AAED+iC,EAAAA,YAAY,GAAW;AACrB,WAAO,KAAKX,UAAL,CAAgB,KAAKA,UAAL,CAAgB/gC,MAAhB,GAAyB,CAAzC,CAAP;AACD;;AAGDmhC,EAAAA,eAAe,GAAW;AACxB,SAAK,IAAIpgC,CAAC,GAAG,KAAKggC,UAAL,CAAgB/gC,MAAhB,GAAyB,CAAtC,GAA2Ce,CAAC,EAA5C,EAAgD;AAC9C,YAAMwa,KAAK,GAAG,KAAKwlB,UAAL,CAAgBhgC,CAAhB,CAAd;;AACA,UAAIwa,KAAK,CAACrP,KAAN,GAAcrQ,SAAlB,EAA6B;AAC3B,eAAO0f,KAAP;AACD;AACF;AACF;;AAID8lB,EAAAA,gBAAgB,GAAW;AACzB,SAAK,IAAItgC,CAAC,GAAG,KAAKggC,UAAL,CAAgB/gC,MAAhB,GAAyB,CAAtC,GAA2Ce,CAAC,EAA5C,EAAgD;AAC9C,YAAMwa,KAAK,GAAG,KAAKwlB,UAAL,CAAgBhgC,CAAhB,CAAd;;AACA,UACE,CAACwa,KAAK,CAACrP,KAAN,GAAcrQ,SAAd,IAA2B0f,KAAK,CAACrP,KAAN,GAAcvQ,WAA1C,KACA,EAAE4f,KAAK,CAACrP,KAAN,GAAc3Q,WAAhB,CAFF,EAGE;AACA,eAAOggB,KAAP;AACD;AACF;AACF;;AA3KsD;;ACxBzD,MAAM0mB,eAAN,SAA8BvB,KAA9B,CAAoC;AAAA;AAAA;AAAA,SAClC9qC,KADkC,GAChB,EADgB;AAAA,SAIlCssC,KAJkC,GAIhB,EAJgB;AAAA,SAOlCC,UAPkC,GAOX,EAPW;AAAA,SAUlCC,OAVkC,GAUd,EAVc;AAAA,SAgBlCC,kBAhBkC,GAgBH,EAhBG;AAAA;;AAAA;;AAsBpC,AAAe,MAAMC,sBAAN,SAAqCxB,YAArC,CAAmE;AAChFa,EAAAA,WAAW,CAACz1B,KAAD,EAAqC;AAC9C,WAAO,IAAI+1B,eAAJ,CAAoB/1B,KAApB,CAAP;AACD;;AAEDsP,EAAAA,WAAW,CAACjmB,IAAD,EAAesY,WAAf,EAA0CvD,GAA1C,EAAuD;AAChE,UAAMiR,KAAK,GAAG,KAAKmmB,YAAL,EAAd;;AACA,QAAI7zB,WAAW,GAAGrR,yBAAlB,EAA6C;AAC3C,WAAKqlC,kBAAL,CAAwBtmB,KAAxB,EAA+BhmB,IAA/B;AACAgmB,MAAAA,KAAK,CAAC8mB,kBAAN,CAAyB7hC,IAAzB,CAA8BjL,IAA9B;AACA;AACD;;AAED,UAAMimB,WAAN,CAAkB,GAAGzZ,SAArB;;AAEA,QAAI8L,WAAW,GAAG9R,cAAlB,EAAkC;AAChC,UAAI,EAAE8R,WAAW,GAAG/R,eAAhB,CAAJ,EAAsC;AAEpC,aAAK8lC,yBAAL,CAA+BrmB,KAA/B,EAAsChmB,IAAtC,EAA4CsY,WAA5C,EAAyDvD,GAAzD;AACA,aAAKu3B,kBAAL,CAAwBtmB,KAAxB,EAA+BhmB,IAA/B;AACD;;AACDgmB,MAAAA,KAAK,CAAC3lB,KAAN,CAAY4K,IAAZ,CAAiBjL,IAAjB;AACD;;AACD,QAAIsY,WAAW,GAAGvR,kBAAlB,EAAsCif,KAAK,CAAC2mB,KAAN,CAAY1hC,IAAZ,CAAiBjL,IAAjB;AACtC,QAAIsY,WAAW,GAAGtR,wBAAlB,EAA4Cgf,KAAK,CAAC4mB,UAAN,CAAiB3hC,IAAjB,CAAsBjL,IAAtB;AAC5C,QAAIsY,WAAW,GAAGxR,gBAAlB,EAAoCkf,KAAK,CAAC6mB,OAAN,CAAc5hC,IAAd,CAAmBjL,IAAnB;AACrC;;AAEDwsC,EAAAA,mBAAmB,CACjBxmB,KADiB,EAEjBhmB,IAFiB,EAGjBsY,WAHiB,EAIR;AACT,QAAI0N,KAAK,CAAC2mB,KAAN,CAAYne,OAAZ,CAAoBxuB,IAApB,IAA4B,CAAC,CAAjC,EAAoC;AAClC,UAAIsY,WAAW,GAAGvR,kBAAlB,EAAsC;AAGpC,cAAMimC,OAAO,GAAG,CAAC,EAAE10B,WAAW,GAAGtR,wBAAhB,CAAjB;AACA,cAAMimC,QAAQ,GAAGjnB,KAAK,CAAC4mB,UAAN,CAAiBpe,OAAjB,CAAyBxuB,IAAzB,IAAiC,CAAC,CAAnD;AACA,eAAOgtC,OAAO,KAAKC,QAAnB;AACD;;AACD,aAAO,IAAP;AACD;;AACD,QAAI30B,WAAW,GAAGxR,gBAAd,IAAkCkf,KAAK,CAAC6mB,OAAN,CAAcre,OAAd,CAAsBxuB,IAAtB,IAA8B,CAAC,CAArE,EAAwE;AACtE,UAAIgmB,KAAK,CAACqlB,OAAN,CAAc7c,OAAd,CAAsBxuB,IAAtB,IAA8B,CAAC,CAAnC,EAAsC;AAEpC,eAAO,CAAC,EAAEsY,WAAW,GAAG/R,eAAhB,CAAR;AACD,OAHD,MAGO;AAEL,eAAO,KAAP;AACD;AACF;;AACD,QAAI+R,WAAW,GAAG9R,cAAd,IAAgCwf,KAAK,CAAC3lB,KAAN,CAAYmuB,OAAZ,CAAoBxuB,IAApB,IAA4B,CAAC,CAAjE,EAAoE;AAClE,aAAO,IAAP;AACD;;AAED,WAAO,MAAMwsC,mBAAN,CAA0B,GAAGhgC,SAA7B,CAAP;AACD;;AAEDigC,EAAAA,gBAAgB,CAACnoB,EAAD,EAAmB;AACjC,QACE,KAAKknB,UAAL,CAAgB,CAAhB,EAAmBnrC,KAAnB,CAAyBmuB,OAAzB,CAAiClK,EAAE,CAACtkB,IAApC,MAA8C,CAAC,CAA/C,IACA,KAAKwrC,UAAL,CAAgB,CAAhB,EAAmBsB,kBAAnB,CAAsCte,OAAtC,CAA8ClK,EAAE,CAACtkB,IAAjD,MAA2D,CAAC,CAF9D,EAGE;AACA,YAAMysC,gBAAN,CAAuBnoB,EAAvB;AACD;AACF;;AAlE+E;;ACpC3E,MAAM4oB,KAAK,GAAG,KAAd;AAAA,MACLC,WAAW,GAAG,KADT;AAAA,MAELC,WAAW,GAAG,KAFT;AAAA,MAGLC,YAAY,GAAG,KAHV;AA6BP,AAAe,MAAMC,0BAAN,CAAiC;AAAA;AAAA,SAC9CC,MAD8C,GACnB,EADmB;AAAA;;AAE9CrnB,EAAAA,KAAK,CAACvP,KAAD,EAAmB;AACtB,SAAK42B,MAAL,CAAYtiC,IAAZ,CAAiB0L,KAAjB;AACD;;AAED0P,EAAAA,IAAI,GAAG;AACL,SAAKknB,MAAL,CAAYjhC,GAAZ;AACD;;AAEDkhC,EAAAA,YAAY,GAAc;AACxB,WAAO,KAAKD,MAAL,CAAY,KAAKA,MAAL,CAAY9iC,MAAZ,GAAqB,CAAjC,CAAP;AACD;;AAED,MAAIgjC,QAAJ,GAAwB;AACtB,WAAO,CAAC,KAAKD,YAAL,KAAsBJ,WAAvB,IAAsC,CAA7C;AACD;;AAED,MAAIhwB,QAAJ,GAAwB;AACtB,WAAO,CAAC,KAAKowB,YAAL,KAAsBL,WAAvB,IAAsC,CAA7C;AACD;;AAED,MAAIO,SAAJ,GAAyB;AACvB,WAAO,CAAC,KAAKF,YAAL,KAAsBH,YAAvB,IAAuC,CAA9C;AACD;;AAxB6C;AA2BhD,AAAO,SAASM,aAAT,CACL51B,OADK,EAELiC,WAFK,EAGM;AACX,SAAO,CAACjC,OAAO,GAAGq1B,WAAH,GAAiB,CAAzB,KAA+BpzB,WAAW,GAAGmzB,WAAH,GAAiB,CAA3D,CAAP;AACD;;ACtBD,SAASS,OAAT,CAAoBC,CAApB,EAA8B;AAC5B,MAAIA,CAAC,IAAI,IAAT,EAAe;AAEb,UAAM,IAAI1qB,KAAJ,CAAW,cAAa0qB,CAAE,SAA1B,CAAN;AACD;;AACD,SAAOA,CAAP;AACD;;AAED,SAASC,MAAT,CAAgBD,CAAhB,EAAkC;AAChC,MAAI,CAACA,CAAL,EAAQ;AACN,UAAM,IAAI1qB,KAAJ,CAAU,aAAV,CAAN;AACD;AACF;;AASD,MAAM4qB,QAAQ,GAAGnhC,MAAM,CAACC,MAAP,CAAc;AAC7BmhC,EAAAA,qBAAqB,EAAE,kDADM;AAE7BC,EAAAA,sBAAsB,EAAE,mDAFK;AAG7BC,EAAAA,+BAA+B,EAC7B,mDAJ2B;AAK7BC,EAAAA,iBAAiB,EAAE,0BALU;AAM7BC,EAAAA,uBAAuB,EAAE,4BANI;AAO7BC,EAAAA,yBAAyB,EACvB,sDAR2B;AAS7BC,EAAAA,8BAA8B,EAC5B,+DAV2B;AAW7BC,EAAAA,uBAAuB,EAAE,oDAXI;AAY7BC,EAAAA,0BAA0B,EACxB,uDAb2B;AAc7BC,EAAAA,iBAAiB,EACf,gFAf2B;AAgB7BC,EAAAA,yBAAyB,EACvB,uDAjB2B;AAkB7BC,EAAAA,8BAA8B,EAC5B,+DAnB2B;AAoB7BC,EAAAA,2BAA2B,EACzB,qDArB2B;AAsB7BC,EAAAA,yBAAyB,EACvB,kHAvB2B;AAwB7BC,EAAAA,kBAAkB,EAChB,8EAzB2B;AA0B7BC,EAAAA,wBAAwB,EAAE,wCA1BG;AA2B7BC,EAAAA,6BAA6B,EAAE,6CA3BF;AA4B7BC,EAAAA,6BAA6B,EAC3B,oDA7B2B;AA8B7BC,EAAAA,gCAAgC,EAC9B,mEA/B2B;AAgC7BC,EAAAA,iCAAiC,EAC/B;AAjC2B,CAAd,CAAjB;;AAqCA,SAASC,mBAAT,CACEp4B,KADF,EAE0C;AACxC,UAAQA,KAAR;AACE,SAAK,KAAL;AACE,aAAO,cAAP;;AACF,SAAK,SAAL;AACE,aAAO,kBAAP;;AACF,SAAK,QAAL;AACE,aAAO,iBAAP;;AACF,SAAK,OAAL;AACE,aAAO,gBAAP;;AACF,SAAK,QAAL;AACE,aAAO,iBAAP;;AACF,SAAK,QAAL;AACE,aAAO,iBAAP;;AACF,SAAK,QAAL;AACE,aAAO,iBAAP;;AACF,SAAK,QAAL;AACE,aAAO,iBAAP;;AACF,SAAK,WAAL;AACE,aAAO,oBAAP;;AACF,SAAK,SAAL;AACE,aAAO,kBAAP;;AACF;AACE,aAAOlL,SAAP;AAtBJ;AAwBD;;AAED,kBAAgB0K,UAAD,IACb,cAAcA,UAAd,CAAyB;AACvB64B,EAAAA,eAAe,GAAkC;AAC/C,WAAOtC,sBAAP;AACD;;AAEDuC,EAAAA,cAAc,GAAY;AAGxB,WAAO,KAAK5lC,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAP;AACD;;AAEDuvC,EAAAA,4BAA4B,GAAG;AAK7B,SAAKnwB,IAAL;AACA,WACE,CAAC,KAAKowB,qBAAL,EAAD,IACA,CAAC,KAAK9lC,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CADD,IAEA,CAAC,KAAKqI,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,CAFD,IAGA,CAAC,KAAKoI,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAHD,IAIA,CAAC,KAAKiI,KAAL,CAAW4Q,KAAE,CAAChY,EAAd,CAJD,IAKA,CAAC,KAAKoH,KAAL,CAAW4Q,KAAE,CAAC1Y,QAAd,CALD,IAMA,CAAC,KAAK8H,KAAL,CAAW4Q,KAAE,CAAC7X,IAAd,CAPH;AASD;;AAGDgtC,EAAAA,eAAe,CAAgBC,gBAAhB,EAA2C;AACxD,QAAI,CAAC,KAAKhmC,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAL,EAA0B;AACxB,aAAO8L,SAAP;AACD;;AAED,UAAM6jC,QAAQ,GAAG,KAAK5kC,KAAL,CAAWiM,KAA5B;;AACA,QACE04B,gBAAgB,CAAClhB,OAAjB,CAAyBmhB,QAAzB,MAAuC,CAAC,CAAxC,IACA,KAAKC,UAAL,CAAgB,KAAKL,4BAAL,CAAkCM,IAAlC,CAAuC,IAAvC,CAAhB,CAFF,EAGE;AACA,aAAOF,QAAP;AACD;;AACD,WAAO7jC,SAAP;AACD;;AAODgkC,EAAAA,gBAAgB,CACdC,QADc,EAEdL,gBAFc,EAGR;AACN,aAAS;AACP,YAAMn1B,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,YAAMumC,QAAY,GAAG,KAAKF,eAAL,CAAqBC,gBAArB,CAArB;AAEA,UAAI,CAACC,QAAL,EAAe;;AAEf,UAAI/iC,MAAM,CAACojC,cAAP,CAAsBzd,IAAtB,CAA2Bwd,QAA3B,EAAqCJ,QAArC,CAAJ,EAAoD;AAClD,aAAKr6B,KAAL,CAAWiF,QAAX,EAAqBwzB,QAAQ,CAACI,iBAA9B,EAAiDwB,QAAjD;AACD;;AACDI,MAAAA,QAAQ,CAACJ,QAAD,CAAR,GAAqB,IAArB;AACD;AACF;;AAEDM,EAAAA,kBAAkB,CAAC35B,IAAD,EAAgC;AAChD,YAAQA,IAAR;AACE,WAAK,aAAL;AACA,WAAK,aAAL;AACE,eAAO,KAAK5M,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAP;;AACF,WAAK,uBAAL;AACE,eAAO,KAAKuI,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAP;;AACF,WAAK,mBAAL;AACE,eAAO,KAAK0I,KAAL,CAAW4Q,KAAE,CAACxZ,QAAd,CAAP;;AACF,WAAK,2BAAL;AACE,eAAO,KAAK4jB,YAAL,CAAkB,GAAlB,CAAP;AATJ;;AAYA,UAAM,IAAIvB,KAAJ,CAAU,aAAV,CAAN;AACD;;AAED+sB,EAAAA,WAAW,CAAY55B,IAAZ,EAAkC65B,YAAlC,EAA8D;AACvE,UAAMpjB,MAAW,GAAG,EAApB;;AACA,WAAO,CAAC,KAAKkjB,kBAAL,CAAwB35B,IAAxB,CAAR,EAAuC;AAErCyW,MAAAA,MAAM,CAAC9hB,IAAP,CAAYklC,YAAY,EAAxB;AACD;;AACD,WAAOpjB,MAAP;AACD;;AAEDqjB,EAAAA,oBAAoB,CAClB95B,IADkB,EAElB65B,YAFkB,EAGb;AACL,WAAOvC,OAAO,CACZ,KAAKyC,0BAAL,CACE/5B,IADF,EAEE65B,YAFF,EAGsB,IAHtB,CADY,CAAd;AAOD;;AAMDE,EAAAA,0BAA0B,CACxB/5B,IADwB,EAExB65B,YAFwB,EAGxBG,aAHwB,EAIhB;AACR,UAAMvjB,MAAM,GAAG,EAAf;;AAEA,aAAS;AACP,UAAI,KAAKkjB,kBAAL,CAAwB35B,IAAxB,CAAJ,EAAmC;AACjC;AACD;;AAED,YAAM0Z,OAAO,GAAGmgB,YAAY,EAA5B;;AACA,UAAIngB,OAAO,IAAI,IAAf,EAAqB;AACnB,eAAOlkB,SAAP;AACD;;AACDihB,MAAAA,MAAM,CAAC9hB,IAAP,CAAY+kB,OAAZ;;AAEA,UAAI,KAAKjM,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAAJ,EAAwB;AACtB;AACD;;AAED,UAAI,KAAK0uC,kBAAL,CAAwB35B,IAAxB,CAAJ,EAAmC;AACjC;AACD;;AAED,UAAIg6B,aAAJ,EAAmB;AAEjB,aAAK9sB,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACD;;AACD,aAAOuK,SAAP;AACD;;AAED,WAAOihB,MAAP;AACD;;AAEDwjB,EAAAA,oBAAoB,CAClBj6B,IADkB,EAElB65B,YAFkB,EAGlBK,OAHkB,EAIlBC,cAJkB,EAKb;AACL,QAAI,CAACA,cAAL,EAAqB;AACnB,UAAID,OAAJ,EAAa;AACX,aAAKhtB,MAAL,CAAYlJ,KAAE,CAAC3Z,QAAf;AACD,OAFD,MAEO;AACL,aAAKmoB,gBAAL,CAAsB,GAAtB;AACD;AACF;;AAED,UAAMiE,MAAM,GAAG,KAAKqjB,oBAAL,CAA0B95B,IAA1B,EAAgC65B,YAAhC,CAAf;;AAEA,QAAIK,OAAJ,EAAa;AACX,WAAKhtB,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACD,KAFD,MAEO;AACL,WAAKgoB,gBAAL,CAAsB,GAAtB;AACD;;AAED,WAAOiE,MAAP;AACD;;AAED2jB,EAAAA,iBAAiB,GAAmB;AAClC,UAAMtlC,IAAoB,GAAG,KAAK0P,SAAL,EAA7B;AACA,SAAK0I,MAAL,CAAYlJ,KAAE,CAAClV,OAAf;AACA,SAAKoe,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;;AACA,QAAI,CAAC,KAAKqI,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAAL,EAA4B;AAC1B,WAAK6U,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6B2kC,QAAQ,CAACkB,6BAAtC;AACD;;AAGD7jC,IAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAKrQ,aAAL,EAAhB;AACA,SAAKmJ,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;;AAEA,QAAI,KAAKyiB,GAAL,CAASzJ,KAAE,CAAC3Y,GAAZ,CAAJ,EAAsB;AACpByJ,MAAAA,IAAI,CAACulC,SAAL,GAAiB,KAAKC,iBAAL,CAAgD,IAAhD,CAAjB;AACD;;AACD,QAAI,KAAKlsB,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKy2B,oBAAL,EAAtB;AACD;;AACD,WAAO,KAAK91B,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAEDwlC,EAAAA,iBAAiB,CAACE,kBAAD,EAA8C;AAC7D,QAAIxH,MAAsB,GAAG,KAAK/kB,eAAL,EAA7B;;AACA,WAAO,KAAKR,GAAL,CAASzJ,KAAE,CAAC3Y,GAAZ,CAAP,EAAyB;AACvB,YAAMyJ,IAAuB,GAAG,KAAK2lC,eAAL,CAAqBzH,MAArB,CAAhC;AACAl+B,MAAAA,IAAI,CAAC8lB,IAAL,GAAYoY,MAAZ;AACAl+B,MAAAA,IAAI,CAAC4c,KAAL,GAAa,KAAKzD,eAAL,CAAqBusB,kBAArB,CAAb;AACAxH,MAAAA,MAAM,GAAG,KAAKvuB,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAT;AACD;;AACD,WAAOk+B,MAAP;AACD;;AAED0H,EAAAA,oBAAoB,GAAsB;AACxC,UAAM5lC,IAAuB,GAAG,KAAK0P,SAAL,EAAhC;AACA1P,IAAAA,IAAI,CAAC6lC,QAAL,GAAgB,KAAKL,iBAAL,CAAgD,KAAhD,CAAhB;;AACA,QAAI,CAAC,KAAKpB,qBAAL,EAAD,IAAiC,KAAK9qB,YAAL,CAAkB,GAAlB,CAArC,EAA6D;AAC3DtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKy2B,oBAAL,EAAtB;AACD;;AACD,WAAO,KAAK91B,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAED8lC,EAAAA,wBAAwB,CAACC,GAAD,EAAuC;AAC7D,SAAK/xB,IAAL;AACA,UAAMhU,IAAuB,GAAG,KAAK2lC,eAAL,CAAqBI,GAArB,CAAhC;AACA/lC,IAAAA,IAAI,CAACgmC,aAAL,GAAqBD,GAArB;AACA/lC,IAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAKqsB,qBAAL,CAA0C,KAA1C,CAAtB;AACA,WAAO,KAAKt2B,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAEDkmC,EAAAA,mBAAmB,GAAiB;AAClC,UAAMlmC,IAAkB,GAAG,KAAK0P,SAAL,EAA3B;AACA,SAAKsE,IAAL;AACA,WAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,YAAtB,CAAP;AACD;;AAEDmmC,EAAAA,gBAAgB,GAAkB;AAChC,UAAMnmC,IAAmB,GAAG,KAAK0P,SAAL,EAA5B;AACA,SAAK0I,MAAL,CAAYlJ,KAAE,CAAC5U,OAAf;;AACA,QAAI,KAAKgE,KAAL,CAAW4Q,KAAE,CAAClV,OAAd,CAAJ,EAA4B;AAC1BgG,MAAAA,IAAI,CAAComC,QAAL,GAAgB,KAAKd,iBAAL,EAAhB;AACD,KAFD,MAEO;AACLtlC,MAAAA,IAAI,CAAComC,QAAL,GAAgB,KAAKZ,iBAAL,CAAgD,IAAhD,CAAhB;AACD;;AACD,WAAO,KAAK71B,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CAAP;AACD;;AAEDqmC,EAAAA,oBAAoB,GAAsB;AACxC,UAAMrmC,IAAuB,GAAG,KAAK0P,SAAL,EAAhC;AACA1P,IAAAA,IAAI,CAACpL,IAAL,GAAY,KAAK0xC,mBAAL,CAAyBtmC,IAAI,CAAChC,KAA9B,CAAZ;AACAgC,IAAAA,IAAI,CAACumC,UAAL,GAAkB,KAAKC,kBAAL,CAAwBt3B,KAAE,CAACpV,QAA3B,CAAlB;AACAkG,IAAAA,IAAI,CAACmb,OAAL,GAAe,KAAKqrB,kBAAL,CAAwBt3B,KAAE,CAAChY,EAA3B,CAAf;AACA,WAAO,KAAKyY,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAEDymC,EAAAA,wBAAwB,GAAkC;AACxD,QAAI,KAAKntB,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1B,aAAO,KAAKotB,qBAAL,EAAP;AACD;AACF;;AAEDA,EAAAA,qBAAqB,GAAG;AACtB,UAAM1mC,IAAkC,GAAG,KAAK0P,SAAL,EAA3C;;AAEA,QAAI,KAAK4J,YAAL,CAAkB,GAAlB,KAA0B,KAAKhb,KAAL,CAAW4Q,KAAE,CAACqO,WAAd,CAA9B,EAA0D;AACxD,WAAKvJ,IAAL;AACD,KAFD,MAEO;AACL,WAAK0G,UAAL;AACD;;AAED1a,IAAAA,IAAI,CAACoK,MAAL,GAAc,KAAK+6B,oBAAL,CACZ,2BADY,EAEZ,KAAKkB,oBAAL,CAA0B5B,IAA1B,CAA+B,IAA/B,CAFY,EAGE,KAHF,EAIS,IAJT,CAAd;AAMA,WAAO,KAAK90B,UAAL,CAAgB3P,IAAhB,EAAsB,4BAAtB,CAAP;AACD;;AAED2mC,EAAAA,6BAA6B,GAAuB;AAClD,QAAI,KAAKvoB,SAAL,GAAiBxd,IAAjB,KAA0BsO,KAAE,CAAC3V,MAAjC,EAAyC;AACvC,WAAKya,IAAL;AACA,aAAO,KAAK4xB,oBAAL,EAAP;AACD;;AACD,WAAO,IAAP;AACD;;AAIDgB,EAAAA,eAAe,CACbC,WADa,EAEbC,SAFa,EAGP;AAEN,UAAMC,mBAAmB,GAAGF,WAAW,KAAK33B,KAAE,CAACxY,KAA/C;AACAowC,IAAAA,SAAS,CAAC93B,cAAV,GAA2B,KAAKy3B,wBAAL,EAA3B;AACA,SAAKruB,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AACA6wC,IAAAA,SAAS,CAACE,UAAV,GAAuB,KAAKC,8BAAL,EAAvB;;AACA,QAAIF,mBAAJ,EAAyB;AACvBD,MAAAA,SAAS,CAACltB,cAAV,GAA2B,KAAKstB,oCAAL,CACzBL,WADyB,CAA3B;AAGD,KAJD,MAIO,IAAI,KAAKvoC,KAAL,CAAWuoC,WAAX,CAAJ,EAA6B;AAClCC,MAAAA,SAAS,CAACltB,cAAV,GAA2B,KAAKstB,oCAAL,CACzBL,WADyB,CAA3B;AAGD;AACF;;AAEDI,EAAAA,8BAA8B,GAE5B;AACA,WAAO,KAAKE,gBAAL,CAAsBj4B,KAAE,CAAChZ,MAAzB,MAA6DqY,GAA7D,CACLjD,OAAO,IAAI;AACT,UACEA,OAAO,CAAC1K,IAAR,KAAiB,YAAjB,IACA0K,OAAO,CAAC1K,IAAR,KAAiB,aADjB,IAEA0K,OAAO,CAAC1K,IAAR,KAAiB,eAFjB,IAGA0K,OAAO,CAAC1K,IAAR,KAAiB,cAJnB,EAKE;AACA,aAAKsJ,KAAL,CACEoB,OAAO,CAACtN,KADV,EAEE2kC,QAAQ,CAACoB,iCAFX,EAGEz4B,OAAO,CAAC1K,IAHV;AAKD;;AACD,aAAQ0K,OAAR;AACD,KAfI,CAAP;AAiBD;;AAED87B,EAAAA,0BAA0B,GAAS;AACjC,QAAI,CAAC,KAAKzuB,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAAL,EAAyB;AACvB,WAAK2jB,SAAL;AACD;AACF;;AAEDutB,EAAAA,sBAAsB,CACpBn8B,IADoB,EAEpBlL,IAFoB,EAG8C;AAClE,SAAK4mC,eAAL,CAAqB13B,KAAE,CAAC7Y,KAAxB,EAA+B2J,IAA/B;AACA,SAAKonC,0BAAL;AACA,WAAO,KAAKz3B,UAAL,CAAgB3P,IAAhB,EAAsBkL,IAAtB,CAAP;AACD;;AAEDo8B,EAAAA,+BAA+B,GAAG;AAChC,SAAKtzB,IAAL;AACA,WAAO,KAAK2E,GAAL,CAASzJ,KAAE,CAACta,IAAZ,KAAqB,KAAK0J,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAA5B;AACD;;AAEDkxC,EAAAA,wBAAwB,CAACvnC,IAAD,EAAoC;AAC1D,QACE,EACE,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC3Z,QAAd,KACA,KAAKiyC,WAAL,CAAiB,KAAKF,+BAAL,CAAqC7C,IAArC,CAA0C,IAA1C,CAAjB,CAFF,CADF,EAKE;AACA,aAAO/jC,SAAP;AACD;;AAED,SAAK0X,MAAL,CAAYlJ,KAAE,CAAC3Z,QAAf;AACA,UAAM2jB,EAAE,GAAG,KAAKC,eAAL,EAAX;AACAD,IAAAA,EAAE,CAACU,cAAH,GAAoB,KAAKqsB,qBAAL,EAApB;AACA,SAAKpsB,gBAAL,CAAsBX,EAAtB;AAEA,SAAKd,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACAsK,IAAAA,IAAI,CAACgnC,UAAL,GAAkB,CAAC9tB,EAAD,CAAlB;AAEA,UAAMtY,IAAI,GAAG,KAAK6mC,wBAAL,EAAb;AACA,QAAI7mC,IAAJ,EAAUZ,IAAI,CAAC4Z,cAAL,GAAsBhZ,IAAtB;AACV,SAAKwmC,0BAAL;AACA,WAAO,KAAKz3B,UAAL,CAAgB3P,IAAhB,EAAsB,kBAAtB,CAAP;AACD;;AAED0nC,EAAAA,gCAAgC,CAC9B1nC,IAD8B,EAE9B2nC,QAF8B,EAGe;AAC7C,QAAI,KAAKhvB,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2BwJ,IAAI,CAACoQ,QAAL,GAAgB,IAAhB;AAC3B,UAAMw3B,OAAY,GAAG5nC,IAArB;;AAEA,QAAI,CAAC2nC,QAAD,KAAc,KAAKrpC,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,KAAyB,KAAKqjB,YAAL,CAAkB,GAAlB,CAAvC,CAAJ,EAAoE;AAClE,YAAMnO,MAA2B,GAAGy8B,OAApC;AACA,WAAKhB,eAAL,CAAqB13B,KAAE,CAAC7Y,KAAxB,EAA+B8U,MAA/B;AACA,WAAKi8B,0BAAL;AACA,aAAO,KAAKz3B,UAAL,CAAgBxE,MAAhB,EAAwB,mBAAxB,CAAP;AACD,KALD,MAKO;AACL,YAAMsU,QAA+B,GAAGmoB,OAAxC;AACA,UAAID,QAAJ,EAAcloB,QAAQ,CAACkoB,QAAT,GAAoB,IAApB;AACd,YAAM/mC,IAAI,GAAG,KAAK6mC,wBAAL,EAAb;AACA,UAAI7mC,IAAJ,EAAU6e,QAAQ,CAAC7F,cAAT,GAA0BhZ,IAA1B;AACV,WAAKwmC,0BAAL;AACA,aAAO,KAAKz3B,UAAL,CAAgB8P,QAAhB,EAA0B,qBAA1B,CAAP;AACD;AACF;;AAEDooB,EAAAA,iBAAiB,GAAoB;AACnC,UAAM7nC,IAAS,GAAG,KAAK0P,SAAL,EAAlB;;AAEA,QAAI,KAAKpR,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,KAAyB,KAAKqjB,YAAL,CAAkB,GAAlB,CAA7B,EAAqD;AACnD,aAAO,KAAK+tB,sBAAL,CAA4B,4BAA5B,EAA0DrnC,IAA1D,CAAP;AACD;;AAED,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAACxV,IAAd,CAAJ,EAAyB;AACvB,YAAMwf,EAAgB,GAAG,KAAKxJ,SAAL,EAAzB;AACA,WAAKsE,IAAL;;AACA,UAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,KAAyB,KAAKqjB,YAAL,CAAkB,GAAlB,CAA7B,EAAqD;AACnD,eAAO,KAAK+tB,sBAAL,CACL,iCADK,EAELrnC,IAFK,CAAP;AAID,OALD,MAKO;AACLA,QAAAA,IAAI,CAAC4N,GAAL,GAAW,KAAKwS,gBAAL,CAAsBlH,EAAtB,EAA0B,KAA1B,CAAX;AACA,eAAO,KAAKwuB,gCAAL,CAAsC1nC,IAAtC,EAA4C,KAA5C,CAAP;AACD;AACF;;AAED,UAAM2nC,QAAQ,GAAG,CAAC,CAAC,KAAKtD,eAAL,CAAqB,CAAC,UAAD,CAArB,CAAnB;AAEA,UAAMyD,GAAG,GAAG,KAAKP,wBAAL,CAA8BvnC,IAA9B,CAAZ;;AACA,QAAI8nC,GAAJ,EAAS;AACP,UAAIH,QAAJ,EAAc3nC,IAAI,CAAC2nC,QAAL,GAAgB,IAAhB;AACd,aAAOG,GAAP;AACD;;AAED,SAAKriB,iBAAL,CAAuBzlB,IAAvB,EAAwD,KAAxD;AACA,WAAO,KAAK0nC,gCAAL,CAAsC1nC,IAAtC,EAA4C2nC,QAA5C,CAAP;AACD;;AAEDI,EAAAA,kBAAkB,GAAoB;AACpC,UAAM/nC,IAAqB,GAAG,KAAK0P,SAAL,EAA9B;AACA1P,IAAAA,IAAI,CAAC0rB,OAAL,GAAe,KAAKsc,wBAAL,EAAf;AACA,WAAO,KAAKr4B,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAEDgoC,EAAAA,wBAAwB,GAAoC;AAC1D,SAAK5vB,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;AACA,UAAM81B,OAAO,GAAG,KAAKoZ,WAAL,CACd,aADc,EAEd,KAAK+C,iBAAL,CAAuBpD,IAAvB,CAA4B,IAA5B,CAFc,CAAhB;AAIA,SAAKrsB,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,WAAO21B,OAAP;AACD;;AAEDuc,EAAAA,qBAAqB,GAAY;AAC/B,SAAKj0B,IAAL;;AACA,QAAI,KAAK2E,GAAL,CAASzJ,KAAE,CAACjX,OAAZ,CAAJ,EAA0B;AACxB,aAAO,KAAKoiB,YAAL,CAAkB,UAAlB,CAAP;AACD;;AACD,QAAI,KAAKA,YAAL,CAAkB,UAAlB,CAAJ,EAAmC;AACjC,WAAKrG,IAAL;AACD;;AACD,QAAI,CAAC,KAAK1V,KAAL,CAAW4Q,KAAE,CAAC3Z,QAAd,CAAL,EAA8B;AAC5B,aAAO,KAAP;AACD;;AACD,SAAKye,IAAL;;AACA,QAAI,CAAC,KAAKkwB,cAAL,EAAL,EAA4B;AAC1B,aAAO,KAAP;AACD;;AACD,SAAKlwB,IAAL;AACA,WAAO,KAAK1V,KAAL,CAAW4Q,KAAE,CAAC9U,GAAd,CAAP;AACD;;AAED8tC,EAAAA,0BAA0B,GAAsB;AAC9C,UAAMloC,IAAuB,GAAG,KAAK0P,SAAL,EAAhC;AACA1P,IAAAA,IAAI,CAACpL,IAAL,GAAY,KAAK0xC,mBAAL,CAAyBtmC,IAAI,CAAChC,KAA9B,CAAZ;AACAgC,IAAAA,IAAI,CAACumC,UAAL,GAAkB,KAAK4B,qBAAL,CAA2Bj5B,KAAE,CAAC9U,GAA9B,CAAlB;AACA,WAAO,KAAKuV,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAEDooC,EAAAA,iBAAiB,GAAmB;AAClC,UAAMpoC,IAAoB,GAAG,KAAK0P,SAAL,EAA7B;AAEA,SAAK0I,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;;AAEA,QAAI,KAAK0I,KAAL,CAAW4Q,KAAE,CAACjX,OAAd,CAAJ,EAA4B;AAC1B+H,MAAAA,IAAI,CAAC2nC,QAAL,GAAgB,KAAKhoC,KAAL,CAAWiM,KAA3B;AACA,WAAKoI,IAAL;AACA,WAAK0E,gBAAL,CAAsB,UAAtB;AACD,KAJD,MAIO,IAAI,KAAKwB,aAAL,CAAmB,UAAnB,CAAJ,EAAoC;AACzCla,MAAAA,IAAI,CAAC2nC,QAAL,GAAgB,IAAhB;AACD;;AAED,SAAKvvB,MAAL,CAAYlJ,KAAE,CAAC3Z,QAAf;AACAyK,IAAAA,IAAI,CAACyd,aAAL,GAAqB,KAAKyqB,0BAAL,EAArB;AACA,SAAK9vB,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;;AAEA,QAAI,KAAK4I,KAAL,CAAW4Q,KAAE,CAACjX,OAAd,CAAJ,EAA4B;AAC1B+H,MAAAA,IAAI,CAACoQ,QAAL,GAAgB,KAAKzQ,KAAL,CAAWiM,KAA3B;AACA,WAAKoI,IAAL;AACA,WAAKoE,MAAL,CAAYlJ,KAAE,CAAC1Y,QAAf;AACD,KAJD,MAIO,IAAI,KAAKmiB,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AAChCwJ,MAAAA,IAAI,CAACoQ,QAAL,GAAgB,IAAhB;AACD;;AAEDpQ,IAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAKyuB,cAAL,EAAtB;AACA,SAAKvuB,SAAL;AACA,SAAK1B,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AAEA,WAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAEDsoC,EAAAA,gBAAgB,GAAkB;AAChC,UAAMtoC,IAAmB,GAAG,KAAK0P,SAAL,EAA5B;AACA1P,IAAAA,IAAI,CAACuoC,YAAL,GAAoB,KAAKpD,oBAAL,CAClB,mBADkB,EAElB,KAAKqD,uBAAL,CAA6B/D,IAA7B,CAAkC,IAAlC,CAFkB,EAGJ,IAHI,EAIG,KAJH,CAApB;AAUA,QAAIgE,mBAAmB,GAAG,KAA1B;AACAzoC,IAAAA,IAAI,CAACuoC,YAAL,CAAkBj7B,OAAlB,CAA0Bo7B,WAAW,IAAI;AACvC,UAAIA,WAAW,CAAC9nC,IAAZ,KAAqB,gBAAzB,EAA2C;AACzC6nC,QAAAA,mBAAmB,GAAG,IAAtB;AACD,OAFD,MAEO,IAAIA,mBAAmB,IAAIC,WAAW,CAAC9nC,IAAZ,KAAqB,YAAhD,EAA8D;AACnE,aAAKsJ,KAAL,CAAWw+B,WAAW,CAAC1qC,KAAvB,EAA8B2kC,QAAQ,CAACS,0BAAvC;AACD;AACF,KAND;AAQA,WAAO,KAAKzzB,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CAAP;AACD;;AAEDwoC,EAAAA,uBAAuB,GAAa;AAElC,QAAI,KAAKlqC,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAAJ,EAA6B;AAC3B,YAAM+xC,QAAsB,GAAG,KAAKj5B,SAAL,EAA/B;AACA,WAAKsE,IAAL;AACA20B,MAAAA,QAAQ,CAAC/uB,cAAT,GAA0B,KAAKgvB,WAAL,EAA1B;;AACA,UACE,KAAKtqC,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,KACA,KAAK0yC,iBAAL,SAFF,EAGE;AACA,aAAKC,gBAAL,CAAsB,KAAKnpC,KAAL,CAAW3B,KAAjC;AACD;;AACD,aAAO,KAAK2R,UAAL,CAAgBg5B,QAAhB,EAA0B,YAA1B,CAAP;AACD;;AAED,UAAM/nC,IAAI,GAAG,KAAKgoC,WAAL,EAAb;;AAEA,QAAI,KAAKjwB,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzB,YAAMuyC,gBAAkC,GAAG,KAAKpD,eAAL,CAAqB/kC,IAArB,CAA3C;AACAmoC,MAAAA,gBAAgB,CAACnvB,cAAjB,GAAkChZ,IAAlC;AACA,aAAO,KAAK+O,UAAL,CAAgBo5B,gBAAhB,EAAkC,gBAAlC,CAAP;AACD;;AACD,WAAOnoC,IAAP;AACD;;AAEDooC,EAAAA,wBAAwB,GAA0B;AAChD,UAAMhpC,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAK0I,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AACA+J,IAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAKgvB,WAAL,EAAtB;AACA,SAAKxwB,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AACA,WAAO,KAAKyZ,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;AACD;;AAEDipC,EAAAA,gCAAgC,CAC9BroC,IAD8B,EAEC;AAC/B,UAAMZ,IAAmC,GAAG,KAAK0P,SAAL,EAA5C;;AACA,QAAI9O,IAAI,KAAK,mBAAb,EAAkC;AAChC,WAAKwX,MAAL,CAAYlJ,KAAE,CAACxV,IAAf;AACD;;AACD,SAAKktC,eAAL,CAAqB13B,KAAE,CAACxY,KAAxB,EAA+BsJ,IAA/B;AACA,WAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsBY,IAAtB,CAAP;AACD;;AAEDsoC,EAAAA,sBAAsB,GAAoB;AACxC,UAAMlpC,IAAqB,GAAG,KAAK0P,SAAL,EAA9B;;AACA1P,IAAAA,IAAI,CAACkrB,OAAL,GAAe,CAAC,MAAM;AACpB,cAAQ,KAAKvrB,KAAL,CAAWiB,IAAnB;AACE,aAAKsO,KAAE,CAACha,GAAR;AACA,aAAKga,KAAE,CAAC7Z,MAAR;AACA,aAAK6Z,KAAE,CAAChV,KAAR;AACA,aAAKgV,KAAE,CAAC/U,MAAR;AAEE,iBAAO,KAAK8U,aAAL,EAAP;;AACF;AACE,gBAAM,KAAKyL,UAAL,EAAN;AARJ;AAUD,KAXc,GAAf;;AAYA,WAAO,KAAK/K,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAEDmpC,EAAAA,0BAA0B,GAAa;AACrC,UAAMnpC,IAAqB,GAAG,KAAK0P,SAAL,EAA9B;AACA,UAAM05B,YAAY,GAAG,KAAKC,aAAL,CAAmB,KAAnB,CAArB;;AACA,QAAID,YAAY,CAACE,WAAb,CAAyBjqC,MAAzB,GAAkC,CAAtC,EAAyC;AACvC,WAAK6K,KAAL,CACEk/B,YAAY,CAACE,WAAb,CAAyB,CAAzB,EAA4BtrC,KAD9B,EAEE2kC,QAAQ,CAACa,2BAFX;AAID;;AACDxjC,IAAAA,IAAI,CAACkrB,OAAL,GAAeke,YAAf;AACA,WAAO,KAAKz5B,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAEDupC,EAAAA,kCAAkC,GAAqC;AACrE,UAAMC,WAAW,GAAG,KAAKtD,mBAAL,EAApB;;AACA,QAAI,KAAK7rB,YAAL,CAAkB,IAAlB,KAA2B,CAAC,KAAK+pB,qBAAL,EAAhC,EAA8D;AAC5D,aAAO,KAAK0B,wBAAL,CAA8B0D,WAA9B,CAAP;AACD,KAFD,MAEO;AACL,aAAOA,WAAP;AACD;AACF;;AAEDC,EAAAA,mBAAmB,GAAa;AAC9B,YAAQ,KAAK9pC,KAAL,CAAWiB,IAAnB;AACE,WAAKsO,KAAE,CAACta,IAAR;AACA,WAAKsa,KAAE,CAAC3U,KAAR;AACA,WAAK2U,KAAE,CAACjV,KAAR;AAAe;AACb,gBAAM2G,IAAI,GAAG,KAAKtC,KAAL,CAAW4Q,KAAE,CAAC3U,KAAd,IACT,eADS,GAET,KAAK+D,KAAL,CAAW4Q,KAAE,CAACjV,KAAd,IACA,eADA,GAEA+pC,mBAAmB,CAAC,KAAKrkC,KAAL,CAAWiM,KAAZ,CAJvB;;AAKA,cACEhL,IAAI,KAAKF,SAAT,IACA,KAAKmoC,iBAAL,SAFF,EAGE;AACA,kBAAM7oC,IAAqB,GAAG,KAAK0P,SAAL,EAA9B;AACA,iBAAKsE,IAAL;AACA,mBAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsBY,IAAtB,CAAP;AACD;;AACD,iBAAO,KAAKglC,oBAAL,EAAP;AACD;;AACD,WAAK12B,KAAE,CAAC7Z,MAAR;AACA,WAAK6Z,KAAE,CAACha,GAAR;AACA,WAAKga,KAAE,CAAChV,KAAR;AACA,WAAKgV,KAAE,CAAC/U,MAAR;AACE,eAAO,KAAK+uC,sBAAL,EAAP;;AACF,WAAKh6B,KAAE,CAACjX,OAAR;AACE,YAAI,KAAK0H,KAAL,CAAWiM,KAAX,KAAqB,GAAzB,EAA8B;AAC5B,gBAAM5L,IAAqB,GAAG,KAAK0P,SAAL,EAA9B;;AACA,cAAI,KAAK0O,SAAL,GAAiBxd,IAAjB,KAA0BsO,KAAE,CAACha,GAAjC,EAAsC;AACpC,kBAAM,KAAKwlB,UAAL,EAAN;AACD;;AACD1a,UAAAA,IAAI,CAACkrB,OAAL,GAAe,KAAKwe,eAAL,EAAf;AACA,iBAAO,KAAK/5B,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AACD;;AACF,WAAKkP,KAAE,CAACvV,KAAR;AACE,eAAO,KAAK4vC,kCAAL,EAAP;;AACF,WAAKr6B,KAAE,CAAC5U,OAAR;AACE,eAAO,KAAK6rC,gBAAL,EAAP;;AACF,WAAKj3B,KAAE,CAAClV,OAAR;AACE,eAAO,KAAKsrC,iBAAL,EAAP;;AACF,WAAKp2B,KAAE,CAACtZ,MAAR;AACE,eAAO,KAAK4xC,WAAL,CAAiB,KAAKS,qBAAL,CAA2BxD,IAA3B,CAAgC,IAAhC,CAAjB,IACH,KAAK2D,iBAAL,EADG,GAEH,KAAKL,kBAAL,EAFJ;;AAGF,WAAK74B,KAAE,CAAC3Z,QAAR;AACE,eAAO,KAAK+yC,gBAAL,EAAP;;AACF,WAAKp5B,KAAE,CAACjZ,MAAR;AACE,eAAO,KAAK+yC,wBAAL,EAAP;;AACF,WAAK95B,KAAE,CAACrY,SAAR;AACE,eAAO,KAAKsyC,0BAAL,EAAP;AAjDJ;;AAoDA,UAAM,KAAKzuB,UAAL,EAAN;AACD;;AAEDivB,EAAAA,wBAAwB,GAAa;AACnC,QAAI/oC,IAAI,GAAG,KAAK6oC,mBAAL,EAAX;;AACA,WAAO,CAAC,KAAKrF,qBAAL,EAAD,IAAiC,KAAKzrB,GAAL,CAASzJ,KAAE,CAAC3Z,QAAZ,CAAxC,EAA+D;AAC7D,UAAI,KAAK+I,KAAL,CAAW4Q,KAAE,CAACxZ,QAAd,CAAJ,EAA6B;AAC3B,cAAMsK,IAAmB,GAAG,KAAK2lC,eAAL,CAAqB/kC,IAArB,CAA5B;AACAZ,QAAAA,IAAI,CAACugB,WAAL,GAAmB3f,IAAnB;AACA,aAAKwX,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACAkL,QAAAA,IAAI,GAAG,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CAAP;AACD,OALD,MAKO;AACL,cAAMA,IAA2B,GAAG,KAAK2lC,eAAL,CAAqB/kC,IAArB,CAApC;AACAZ,QAAAA,IAAI,CAAC4pC,UAAL,GAAkBhpC,IAAlB;AACAZ,QAAAA,IAAI,CAAC6pC,SAAL,GAAiB,KAAKjB,WAAL,EAAjB;AACA,aAAKxwB,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACAkL,QAAAA,IAAI,GAAG,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;AACD;AACF;;AACD,WAAOY,IAAP;AACD;;AAEDkpC,EAAAA,mBAAmB,CACjBjlB,QADiB,EAEC;AAClB,UAAM7kB,IAAsB,GAAG,KAAK0P,SAAL,EAA/B;AACA,SAAKgJ,gBAAL,CAAsBmM,QAAtB;AACA7kB,IAAAA,IAAI,CAAC6kB,QAAL,GAAgBA,QAAhB;AACA7kB,IAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAKmwB,2BAAL,EAAtB;;AAEA,QAAIllB,QAAQ,KAAK,UAAjB,EAA6B;AAC3B,WAAKmlB,gCAAL,CAAsChqC,IAAtC;AACD;;AAED,WAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAEDgqC,EAAAA,gCAAgC,CAAChqC,IAAD,EAAe;AAC7C,YAAQA,IAAI,CAAC4Z,cAAL,CAAoBhZ,IAA5B;AACE,WAAK,aAAL;AACA,WAAK,aAAL;AACE;;AACF;AACE,aAAKsJ,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuB2kC,QAAQ,CAACe,kBAAhC;AALJ;AAOD;;AAEDuG,EAAAA,gBAAgB,GAAkB;AAChC,UAAMjqC,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAKgJ,gBAAL,CAAsB,OAAtB;AACA,UAAM+E,aAAa,GAAG,KAAK/N,SAAL,EAAtB;AACA+N,IAAAA,aAAa,CAAC7oB,IAAd,GAAqB,KAAK0xC,mBAAL,CAAyB7oB,aAAa,CAACzf,KAAvC,CAArB;AACAgC,IAAAA,IAAI,CAACyd,aAAL,GAAqB,KAAK9N,UAAL,CAAgB8N,aAAhB,EAA+B,iBAA/B,CAArB;AACA,WAAO,KAAK9N,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CAAP;AACD;;AAED+pC,EAAAA,2BAA2B,GAAa;AACtC,UAAMllB,QAAQ,GAAG,CAAC,OAAD,EAAU,QAAV,EAAoB,UAApB,EAAgCqlB,IAAhC,CAAqCC,EAAE,IACtD,KAAK9vB,YAAL,CAAkB8vB,EAAlB,CADe,CAAjB;AAGA,WAAOtlB,QAAQ,GACX,KAAKilB,mBAAL,CAAyBjlB,QAAzB,CADW,GAEX,KAAKxK,YAAL,CAAkB,OAAlB,IACA,KAAK4vB,gBAAL,EADA,GAEA,KAAKN,wBAAL,EAJJ;AAKD;;AAEDS,EAAAA,8BAA8B,CAC5Bl/B,IAD4B,EAE5Bm/B,oBAF4B,EAG5BxlB,QAH4B,EAIlB;AACV,SAAKlM,GAAL,CAASkM,QAAT;AACA,QAAIjkB,IAAI,GAAGypC,oBAAoB,EAA/B;;AACA,QAAI,KAAK/rC,KAAL,CAAWumB,QAAX,CAAJ,EAA0B;AACxB,YAAM5vB,KAAK,GAAG,CAAC2L,IAAD,CAAd;;AACA,aAAO,KAAK+X,GAAL,CAASkM,QAAT,CAAP,EAA2B;AACzB5vB,QAAAA,KAAK,CAAC4K,IAAN,CAAWwqC,oBAAoB,EAA/B;AACD;;AACD,YAAMrqC,IAA0C,GAAG,KAAK2lC,eAAL,CACjD/kC,IADiD,CAAnD;AAGAZ,MAAAA,IAAI,CAAC/K,KAAL,GAAaA,KAAb;AACA2L,MAAAA,IAAI,GAAG,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsBkL,IAAtB,CAAP;AACD;;AACD,WAAOtK,IAAP;AACD;;AAED0pC,EAAAA,+BAA+B,GAAa;AAC1C,WAAO,KAAKF,8BAAL,CACL,oBADK,EAEL,KAAKL,2BAAL,CAAiCtF,IAAjC,CAAsC,IAAtC,CAFK,EAGLv1B,KAAE,CAACrX,UAHE,CAAP;AAKD;;AAED0yC,EAAAA,wBAAwB,GAAG;AACzB,WAAO,KAAKH,8BAAL,CACL,aADK,EAEL,KAAKE,+BAAL,CAAqC7F,IAArC,CAA0C,IAA1C,CAFK,EAGLv1B,KAAE,CAACvX,SAHE,CAAP;AAKD;;AAED6yC,EAAAA,uBAAuB,GAAG;AACxB,QAAI,KAAKlxB,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1B,aAAO,IAAP;AACD;;AACD,WACE,KAAKhb,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,KACA,KAAKuxC,WAAL,CAAiB,KAAKiD,oCAAL,CAA0ChG,IAA1C,CAA+C,IAA/C,CAAjB,CAFF;AAID;;AAEDiG,EAAAA,oBAAoB,GAAY;AAC9B,QAAI,KAAKpsC,KAAL,CAAW4Q,KAAE,CAACta,IAAd,KAAuB,KAAK0J,KAAL,CAAW4Q,KAAE,CAACvV,KAAd,CAA3B,EAAiD;AAC/C,WAAKqa,IAAL;AACA,aAAO,IAAP;AACD;;AAED,QAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAJ,EAA2B;AACzB,UAAI+0C,iBAAiB,GAAG,CAAxB;AACA,WAAK32B,IAAL;;AAEA,aAAO22B,iBAAiB,GAAG,CAA3B,EAA8B;AAC5B,YAAI,KAAKrsC,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAJ,EAA2B;AACzB,YAAE+0C,iBAAF;AACD,SAFD,MAEO,IAAI,KAAKrsC,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAJ,EAA2B;AAChC,YAAE40C,iBAAF;AACD;;AACD,aAAK32B,IAAL;AACD;;AACD,aAAO,IAAP;AACD;;AAED,QAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAAC3Z,QAAd,CAAJ,EAA6B;AAC3B,UAAIo1C,iBAAiB,GAAG,CAAxB;AACA,WAAK32B,IAAL;;AAEA,aAAO22B,iBAAiB,GAAG,CAA3B,EAA8B;AAC5B,YAAI,KAAKrsC,KAAL,CAAW4Q,KAAE,CAAC3Z,QAAd,CAAJ,EAA6B;AAC3B,YAAEo1C,iBAAF;AACD,SAFD,MAEO,IAAI,KAAKrsC,KAAL,CAAW4Q,KAAE,CAACxZ,QAAd,CAAJ,EAA6B;AAClC,YAAEi1C,iBAAF;AACD;;AACD,aAAK32B,IAAL;AACD;;AACD,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD;;AAEDy2B,EAAAA,oCAAoC,GAAY;AAC9C,SAAKz2B,IAAL;;AACA,QAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,KAAyB,KAAKoI,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAA7B,EAAsD;AAGpD,aAAO,IAAP;AACD;;AACD,QAAI,KAAK8zC,oBAAL,EAAJ,EAAiC;AAC/B,UACE,KAAKpsC,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,KACA,KAAKiI,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,CADA,IAEA,KAAKmI,KAAL,CAAW4Q,KAAE,CAAC1Y,QAAd,CAFA,IAGA,KAAK8H,KAAL,CAAW4Q,KAAE,CAAChY,EAAd,CAJF,EAKE;AAKA,eAAO,IAAP;AACD;;AACD,UAAI,KAAKoH,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,CAAJ,EAA2B;AACzB,aAAK8d,IAAL;;AACA,YAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAACxY,KAAd,CAAJ,EAA0B;AAExB,iBAAO,IAAP;AACD;AACF;AACF;;AACD,WAAO,KAAP;AACD;;AAEDwwC,EAAAA,oCAAoC,CAClCL,WADkC,EAEd;AACpB,WAAO,KAAK+D,QAAL,CAAc,MAAM;AACzB,YAAMC,CAAqB,GAAG,KAAKn7B,SAAL,EAA9B;AACA,WAAK0I,MAAL,CAAYyuB,WAAZ;AAEA,YAAMiE,OAAO,GAAG,KAAKtG,UAAL,CACd,KAAKuG,2BAAL,CAAiCtG,IAAjC,CAAsC,IAAtC,CADc,CAAhB;;AAIA,UAAIqG,OAAO,IAAI,KAAKxsC,KAAL,CAAW4Q,KAAE,CAACvV,KAAd,CAAf,EAAqC;AAGnC,YAAIqxC,iBAAiB,GAAG,KAAKzB,kCAAL,EAAxB;;AAGA,YAAIyB,iBAAiB,CAACpqC,IAAlB,KAA2B,YAA/B,EAA6C;AAC3C,gBAAMZ,IAAuB,GAAG,KAAK2lC,eAAL,CAAqBkF,CAArB,CAAhC;AACA7qC,UAAAA,IAAI,CAACgmC,aAAL,GAAsBgF,iBAAtB;AACAhrC,UAAAA,IAAI,CAAC8qC,OAAL,GAAe,IAAf;AACAE,UAAAA,iBAAiB,GAAG,KAAKr7B,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAApB;AACD,SALD,MAKO;AACJgrC,UAAAA,iBAAD,CAAuCF,OAAvC,GAAiD,IAAjD;AACD;;AACDD,QAAAA,CAAC,CAACjxB,cAAF,GAAmBoxB,iBAAnB;AACA,eAAO,KAAKr7B,UAAL,CAAgBk7B,CAAhB,EAAmB,kBAAnB,CAAP;AACD;;AAED,YAAMI,qBAAqB,GACzB,KAAK/G,cAAL,MACA,KAAKM,UAAL,CAAgB,KAAK0G,0BAAL,CAAgCzG,IAAhC,CAAqC,IAArC,CAAhB,CAFF;;AAIA,UAAI,CAACwG,qBAAL,EAA4B;AAC1B,YAAI,CAACH,OAAL,EAAc;AAEZ,iBAAO,KAAK7E,qBAAL,CAA0C,KAA1C,EAAiD4E,CAAjD,CAAP;AACD;;AAED,cAAM7qC,IAAuB,GAAG,KAAK2lC,eAAL,CAAqBkF,CAArB,CAAhC;AAEA7qC,QAAAA,IAAI,CAACgmC,aAAL,GAAqB,KAAK7sB,eAAL,EAArB;AACAnZ,QAAAA,IAAI,CAAC8qC,OAAL,GAAeA,OAAf;AACAD,QAAAA,CAAC,CAACjxB,cAAF,GAAmB,KAAKjK,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAnB;AACA,eAAO,KAAK2P,UAAL,CAAgBk7B,CAAhB,EAAmB,kBAAnB,CAAP;AACD;;AAGD,YAAMjqC,IAAI,GAAG,KAAKqlC,qBAAL,CAA0C,KAA1C,CAAb;AACA,YAAMjmC,IAAI,GAAG,KAAK2lC,eAAL,CAAqBkF,CAArB,CAAb;AACA7qC,MAAAA,IAAI,CAACgmC,aAAL,GAAqBiF,qBAArB;AACAjrC,MAAAA,IAAI,CAAC4Z,cAAL,GAAsBhZ,IAAtB;AACAZ,MAAAA,IAAI,CAAC8qC,OAAL,GAAeA,OAAf;AACAD,MAAAA,CAAC,CAACjxB,cAAF,GAAmB,KAAKjK,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAnB;AACA,aAAO,KAAK2P,UAAL,CAAgBk7B,CAAhB,EAAmB,kBAAnB,CAAP;AACD,KApDM,CAAP;AAqDD;;AAEDM,EAAAA,uCAAuC,GAAwB;AAC7D,WAAO,KAAK7sC,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,IACH,KAAK6wC,oCAAL,CAA0Ch4B,KAAE,CAAC7Y,KAA7C,CADG,GAEHqK,SAFJ;AAGD;;AAED+mC,EAAAA,wBAAwB,GAAwB;AAC9C,WAAO,KAAKnpC,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,IAAuB,KAAK4vC,qBAAL,EAAvB,GAAsDvlC,SAA7D;AACD;;AAED2nC,EAAAA,cAAc,GAAc;AAC1B,WAAO,KAAK7B,kBAAL,CAAwBt3B,KAAE,CAAC7Y,KAA3B,CAAP;AACD;;AAED60C,EAAAA,0BAA0B,GAAkB;AAC1C,UAAMhyB,EAAE,GAAG,KAAKC,eAAL,EAAX;;AACA,QAAI,KAAKkB,YAAL,CAAkB,IAAlB,KAA2B,CAAC,KAAK+pB,qBAAL,EAAhC,EAA8D;AAC5D,WAAKpwB,IAAL;AACA,aAAOkF,EAAP;AACD;AACF;;AAED6xB,EAAAA,2BAA2B,GAAY;AACrC,QACE,CAAC,KAAKzsC,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAD,IACA,KAAK+K,KAAL,CAAWiM,KAAX,KAAqB,SADrB,IAEA,KAAKw4B,qBAAL,EAHF,EAIE;AACA,aAAO,KAAP;AACD;;AACD,UAAMt0B,WAAW,GAAG,KAAKnQ,KAAL,CAAWmQ,WAA/B;AACA,SAAKkE,IAAL;;AACA,QAAI,CAAC,KAAK1V,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAD,IAAwB,CAAC,KAAK0J,KAAL,CAAW4Q,KAAE,CAACvV,KAAd,CAA7B,EAAmD;AACjD,aAAO,KAAP;AACD;;AAED,QAAImW,WAAJ,EAAiB;AACf,WAAK5F,KAAL,CACE,KAAKvK,KAAL,CAAWkK,YADb,EAEEtI,MAAM,CAAC8C,0BAFT,EAGE,SAHF;AAKD;;AAED,WAAO,IAAP;AACD;;AAED4hC,EAAAA,qBAAqB,CACnBmF,QAAQ,GAAG,IADQ,EAEnBP,CAAqB,GAAG,KAAKn7B,SAAL,EAFL,EAGC;AACpB,SAAKk7B,QAAL,CAAc,MAAM;AAClB,UAAIQ,QAAJ,EAAc,KAAKhzB,MAAL,CAAYlJ,KAAE,CAAC7Y,KAAf;AACdw0C,MAAAA,CAAC,CAACjxB,cAAF,GAAmB,KAAKgvB,WAAL,EAAnB;AACD,KAHD;AAIA,WAAO,KAAKj5B,UAAL,CAAgBk7B,CAAhB,EAAmB,kBAAnB,CAAP;AACD;;AAGDjC,EAAAA,WAAW,GAAa;AAEtBlG,IAAAA,MAAM,CAAC,KAAK/iC,KAAL,CAAWwY,MAAZ,CAAN;AACA,UAAMvX,IAAI,GAAG,KAAKyqC,yBAAL,EAAb;;AACA,QAAI,KAAKjH,qBAAL,MAAgC,CAAC,KAAKzrB,GAAL,CAASzJ,KAAE,CAACpV,QAAZ,CAArC,EAA4D;AAC1D,aAAO8G,IAAP;AACD;;AACD,UAAMZ,IAAyB,GAAG,KAAK2lC,eAAL,CAAqB/kC,IAArB,CAAlC;AACAZ,IAAAA,IAAI,CAACsrC,SAAL,GAAiB1qC,IAAjB;AACAZ,IAAAA,IAAI,CAACurC,WAAL,GAAmB,KAAKF,yBAAL,EAAnB;AACA,SAAKjzB,MAAL,CAAYlJ,KAAE,CAAC1Y,QAAf;AACAwJ,IAAAA,IAAI,CAACwrC,QAAL,GAAgB,KAAK5C,WAAL,EAAhB;AACA,SAAKxwB,MAAL,CAAYlJ,KAAE,CAAC7Y,KAAf;AACA2J,IAAAA,IAAI,CAACyrC,SAAL,GAAiB,KAAK7C,WAAL,EAAjB;AACA,WAAO,KAAKj5B,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAEDqrC,EAAAA,yBAAyB,GAAa;AACpC,QAAI,KAAKb,uBAAL,EAAJ,EAAoC;AAClC,aAAO,KAAKvB,gCAAL,CAAsC,gBAAtC,CAAP;AACD;;AACD,QAAI,KAAK3qC,KAAL,CAAW4Q,KAAE,CAACxV,IAAd,CAAJ,EAAyB;AAEvB,aAAO,KAAKuvC,gCAAL,CAAsC,mBAAtC,CAAP;AACD;;AACD,WAAO,KAAKsB,wBAAL,EAAP;AACD;;AAEDmB,EAAAA,oBAAoB,GAAsB;AACxC,UAAM1rC,IAAuB,GAAG,KAAK0P,SAAL,EAAhC;;AACA,UAAMnW,MAAM,GAAG,KAAKotC,6BAAL,EAAf;;AACA3mC,IAAAA,IAAI,CAAC4Z,cAAL,GAAsBrgB,MAAM,IAAI,KAAKoyC,mBAAL,EAAhC;AACA,SAAKjuB,gBAAL,CAAsB,GAAtB;AACA1d,IAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAKo9B,eAAL,EAAlB;AACA,WAAO,KAAK/5B,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAED4rC,EAAAA,qBAAqB,CACnBC,UADmB,EAE8B;AACjD,UAAMC,aAAa,GAAG,KAAKnsC,KAAL,CAAW3B,KAAjC;AAEA,UAAM+tC,aAAa,GAAG,KAAK/G,oBAAL,CACpB,uBADoB,EAEpB,KAAKgH,kCAAL,CAAwCvH,IAAxC,CAA6C,IAA7C,CAFoB,CAAtB;;AAKA,QAAI,CAACsH,aAAa,CAAC1sC,MAAnB,EAA2B;AACzB,WAAK6K,KAAL,CAAW4hC,aAAX,EAA0BnJ,QAAQ,CAACK,uBAAnC,EAA4D6I,UAA5D;AACD;;AAED,WAAOE,aAAP;AACD;;AAEDC,EAAAA,kCAAkC,GAAoC;AACpE,UAAMhsC,IAAqC,GAAG,KAAK0P,SAAL,EAA9C;AAGA1P,IAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAKk5B,iBAAL,CAAgD,KAAhD,CAAlB;;AACA,QAAI,KAAKlsB,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1BtZ,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKy2B,oBAAL,EAAtB;AACD;;AAED,WAAO,KAAK91B,UAAL,CAAgB3P,IAAhB,EAAsB,+BAAtB,CAAP;AACD;;AAEDisC,EAAAA,2BAA2B,CACzBjsC,IADyB,EAEC;AAC1BA,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,EAAV;AACA,SAAKnM,SAAL,CACEhN,IAAI,CAACkZ,EADP,EAEEhd,iBAFF,EAGEwE,SAHF,EAIE,kCAJF;AAMAV,IAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKy3B,wBAAL,EAAtB;;AACA,QAAI,KAAK9tB,GAAL,CAASzJ,KAAE,CAACpV,QAAZ,CAAJ,EAA2B;AACzBkG,MAAAA,IAAI,CAAC4b,OAAL,GAAe,KAAKgwB,qBAAL,CAA2B,SAA3B,CAAf;AACD;;AACD,UAAM/qC,IAAuB,GAAG,KAAK6O,SAAL,EAAhC;AACA7O,IAAAA,IAAI,CAACA,IAAL,GAAY,KAAK+pC,QAAL,CAAc,KAAK5C,wBAAL,CAA8BvD,IAA9B,CAAmC,IAAnC,CAAd,CAAZ;AACAzkC,IAAAA,IAAI,CAACa,IAAL,GAAY,KAAK8O,UAAL,CAAgB9O,IAAhB,EAAsB,iBAAtB,CAAZ;AACA,WAAO,KAAK8O,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AAEDksC,EAAAA,2BAA2B,CACzBlsC,IADyB,EAEC;AAC1BA,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,EAAV;AACA,SAAKnM,SAAL,CAAehN,IAAI,CAACkZ,EAApB,EAAwB/c,YAAxB,EAAsCuE,SAAtC,EAAiD,uBAAjD;AAEAV,IAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAKy3B,wBAAL,EAAtB;AACAzmC,IAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAKuuB,qBAAL,CAA2Bj5B,KAAE,CAAChY,EAA9B,CAAtB;AACA,SAAK4iB,SAAL;AACA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AAEDmsC,EAAAA,aAAa,CAAIC,EAAJ,EAAoB;AAC/B,UAAMC,UAAU,GAAG,KAAK1sC,KAAL,CAAW8R,OAA9B;AACA,SAAK9R,KAAL,CAAW8R,OAAX,GAAqB,CAAC46B,UAAU,CAAC,CAAD,CAAX,CAArB;;AACA,QAAI;AACF,aAAOD,EAAE,EAAT;AACD,KAFD,SAEU;AACR,WAAKzsC,KAAL,CAAW8R,OAAX,GAAqB46B,UAArB;AACD;AACF;;AAODzB,EAAAA,QAAQ,CAAIwB,EAAJ,EAAoB;AAC1B,UAAMl0B,SAAS,GAAG,KAAKvY,KAAL,CAAWwY,MAA7B;AACA,SAAKxY,KAAL,CAAWwY,MAAX,GAAoB,IAApB;;AACA,QAAI;AACF,aAAOi0B,EAAE,EAAT;AACD,KAFD,SAEU;AACR,WAAKzsC,KAAL,CAAWwY,MAAX,GAAoBD,SAApB;AACD;AACF;;AAEDsuB,EAAAA,kBAAkB,CAAC1xC,KAAD,EAAgD;AAChE,WAAO,CAAC,KAAKwJ,KAAL,CAAWxJ,KAAX,CAAD,GAAqB4L,SAArB,GAAiC,KAAKirC,mBAAL,EAAxC;AACD;;AAEDxD,EAAAA,qBAAqB,CAACrzC,KAAD,EAA6B;AAChD,WAAO,KAAKw3C,iBAAL,CAAuB,MAAM,KAAKl0B,MAAL,CAAYtjB,KAAZ,CAA7B,CAAP;AACD;;AAED62C,EAAAA,mBAAmB,GAAa;AAC9B,WAAO,KAAKW,iBAAL,CAAuB,MAAM,KAAKt4B,IAAL,EAA7B,CAAP;AACD;;AAEDs4B,EAAAA,iBAAiB,CAACF,EAAD,EAA2B;AAC1C,WAAO,KAAKxB,QAAL,CAAc,MAAM;AACzBwB,MAAAA,EAAE;AACF,aAAO,KAAKxD,WAAL,EAAP;AACD,KAHM,CAAP;AAID;;AAED2D,EAAAA,iBAAiB,GAAmB;AAClC,UAAMvsC,IAAoB,GAAG,KAAK0P,SAAL,EAA7B;AAEA1P,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAK5a,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,IACN,KAAK4Z,aAAL,EADM,GAEN,KAAKkK,eAAL,CAAmC,IAAnC,CAFJ;;AAGA,QAAI,KAAKR,GAAL,CAASzJ,KAAE,CAAChY,EAAZ,CAAJ,EAAqB;AACnB8I,MAAAA,IAAI,CAACwsC,WAAL,GAAmB,KAAK/pB,gBAAL,EAAnB;AACD;;AACD,WAAO,KAAK9S,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAEDysC,EAAAA,sBAAsB,CACpBzsC,IADoB,EAEpB4hC,OAFoB,EAGC;AACrB,QAAIA,OAAJ,EAAa5hC,IAAI,CAACiX,KAAL,GAAa,IAAb;AACbjX,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,EAAV;AACA,SAAKnM,SAAL,CACEhN,IAAI,CAACkZ,EADP,EAEE0oB,OAAO,GAAGplC,kBAAH,GAAwBJ,YAFjC,EAGEsE,SAHF,EAIE,6BAJF;AAOA,SAAK0X,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;AACAoK,IAAAA,IAAI,CAAC0rB,OAAL,GAAe,KAAKsZ,oBAAL,CACb,aADa,EAEb,KAAKuH,iBAAL,CAAuB9H,IAAvB,CAA4B,IAA5B,CAFa,CAAf;AAIA,SAAKrsB,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACA,WAAO,KAAK4Z,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAED0sC,EAAAA,kBAAkB,GAAoB;AACpC,UAAM1sC,IAAqB,GAAG,KAAK0P,SAAL,EAA9B;AACA,SAAKkL,KAAL,CAAWE,KAAX,CAAiBrgB,WAAjB;AAEA,SAAK2d,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;AAEA,SAAK+2C,2BAAL,CACG3sC,IAAI,CAACa,IAAL,GAAY,EADf,EAEmBH,SAFnB,EAGiB,IAHjB,EAIYwO,KAAE,CAACnZ,MAJf;AAMA,SAAK6kB,KAAL,CAAWK,IAAX;AACA,WAAO,KAAKtL,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAED4sC,EAAAA,mCAAmC,CACjC5sC,IADiC,EAEjC6sC,MAAgB,GAAG,KAFc,EAGV;AACvB7sC,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,EAAV;;AAEA,QAAI,CAAC0zB,MAAL,EAAa;AACX,WAAK7/B,SAAL,CACEhN,IAAI,CAACkZ,EADP,EAEEzc,iBAFF,EAGE,IAHF,EAIE,iCAJF;AAMD;;AAED,QAAI,KAAKkc,GAAL,CAASzJ,KAAE,CAAC3Y,GAAZ,CAAJ,EAAsB;AACpB,YAAMu2C,KAAK,GAAG,KAAKp9B,SAAL,EAAd;AACA,WAAKk9B,mCAAL,CAAyCE,KAAzC,EAAgD,IAAhD;AACA9sC,MAAAA,IAAI,CAACa,IAAL,GAAYisC,KAAZ;AACD,KAJD,MAIO;AACL,WAAKlyB,KAAL,CAAWE,KAAX,CAAiB7f,eAAjB;AACA,WAAK8W,SAAL,CAAe+I,KAAf,CAAqBgnB,KAArB;AACA9hC,MAAAA,IAAI,CAACa,IAAL,GAAY,KAAK6rC,kBAAL,EAAZ;AACA,WAAK36B,SAAL,CAAekJ,IAAf;AACA,WAAKL,KAAL,CAAWK,IAAX;AACD;;AACD,WAAO,KAAKtL,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;AACD;;AAED+sC,EAAAA,uCAAuC,CACrC/sC,IADqC,EAEd;AACvB,QAAI,KAAKqa,YAAL,CAAkB,QAAlB,CAAJ,EAAiC;AAC/Bra,MAAAA,IAAI,CAACgtC,MAAL,GAAc,IAAd;AACAhtC,MAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,EAAV;AACD,KAHD,MAGO,IAAI,KAAK7a,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAAJ,EAA2B;AAChC2K,MAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKjK,aAAL,EAAV;AACD,KAFM,MAEA;AACL,WAAKyL,UAAL;AACD;;AACD,QAAI,KAAKpc,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAJ,EAA2B;AACzB,WAAKglB,KAAL,CAAWE,KAAX,CAAiB7f,eAAjB;AACA,WAAK8W,SAAL,CAAe+I,KAAf,CAAqBgnB,KAArB;AACA9hC,MAAAA,IAAI,CAACa,IAAL,GAAY,KAAK6rC,kBAAL,EAAZ;AACA,WAAK36B,SAAL,CAAekJ,IAAf;AACA,WAAKL,KAAL,CAAWK,IAAX;AACD,KAND,MAMO;AACL,WAAKnB,SAAL;AACD;;AAED,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;AACD;;AAEDitC,EAAAA,8BAA8B,CAC5BjtC,IAD4B,EAE5BktC,QAF4B,EAGC;AAC7BltC,IAAAA,IAAI,CAACktC,QAAL,GAAgBA,QAAQ,IAAI,KAA5B;AACAltC,IAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,EAAV;AACA,SAAKnM,SAAL,CACEhN,IAAI,CAACkZ,EADP,EAEEnd,YAFF,EAGE2E,SAHF,EAIE,2BAJF;AAMA,SAAK0X,MAAL,CAAYlJ,KAAE,CAAChY,EAAf;AACA8I,IAAAA,IAAI,CAACmtC,eAAL,GAAuB,KAAKC,sBAAL,EAAvB;AACA,SAAKtzB,SAAL;AACA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,2BAAtB,CAAP;AACD;;AAEDqtC,EAAAA,2BAA2B,GAAY;AACrC,WACE,KAAKhzB,YAAL,CAAkB,SAAlB,KACA,KAAKwuB,iBAAL,SAFF;AAID;;AAEDuE,EAAAA,sBAAsB,GAAwB;AAC5C,WAAO,KAAKC,2BAAL,KACH,KAAKC,8BAAL,EADG,GAEH,KAAK9H,iBAAL,CAAgD,KAAhD,CAFJ;AAGD;;AAED8H,EAAAA,8BAA8B,GAAgC;AAC5D,UAAMttC,IAAiC,GAAG,KAAK0P,SAAL,EAA1C;AACA,SAAKgJ,gBAAL,CAAsB,SAAtB;AACA,SAAKN,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;;AACA,QAAI,CAAC,KAAKqI,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAAL,EAA4B;AAC1B,YAAM,KAAKqlB,UAAL,EAAN;AACD;;AAED1a,IAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAK2C,aAAL,EAAlB;AACA,SAAKmJ,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AACA,WAAO,KAAKyZ,UAAL,CAAgB3P,IAAhB,EAAsB,2BAAtB,CAAP;AACD;;AAIDwnC,EAAAA,WAAW,CAAI+F,CAAJ,EAAmB;AAC5B,UAAM5tC,KAAK,GAAG,KAAKA,KAAL,CAAWoiB,KAAX,EAAd;AACA,UAAMyrB,GAAG,GAAGD,CAAC,EAAb;AACA,SAAK5tC,KAAL,GAAaA,KAAb;AACA,WAAO6tC,GAAP;AACD;;AAEDC,EAAAA,kBAAkB,CAAiBF,CAAjB,EAAiC;AACjD,UAAM5rB,MAAM,GAAG,KAAKC,QAAL,CAAc4G,KAAK,IAAI+kB,CAAC,MAAM/kB,KAAK,EAAnC,CAAf;AAEA,QAAI7G,MAAM,CAAC+G,OAAP,IAAkB,CAAC/G,MAAM,CAAC3hB,IAA9B,EAAoC,OAAOU,SAAP;AACpC,QAAIihB,MAAM,CAACE,KAAX,EAAkB,KAAKliB,KAAL,GAAagiB,MAAM,CAACG,SAApB;AAClB,WAAOH,MAAM,CAAC3hB,IAAd;AACD;;AAEDwkC,EAAAA,UAAU,CAAI+I,CAAJ,EAAqB;AAC7B,UAAM5tC,KAAK,GAAG,KAAKA,KAAL,CAAWoiB,KAAX,EAAd;AACA,UAAMJ,MAAM,GAAG4rB,CAAC,EAAhB;;AACA,QAAI5rB,MAAM,KAAKjhB,SAAX,IAAwBihB,MAAM,KAAK,KAAvC,EAA8C;AAC5C,aAAOA,MAAP;AACD,KAFD,MAEO;AACL,WAAKhiB,KAAL,GAAaA,KAAb;AACA,aAAOe,SAAP;AACD;AACF;;AAEDgtC,EAAAA,iBAAiB,CAACC,IAAD,EAA4B;AAC3C,QAAI,KAAKC,gBAAL,EAAJ,EAA6B;AAC3B;AACD;;AACD,QAAIC,SAAS,GAAG,KAAKluC,KAAL,CAAWiB,IAA3B;AACA,QAAIsK,IAAJ;;AAEA,QAAI,KAAKmP,YAAL,CAAkB,KAAlB,CAAJ,EAA8B;AAC5BwzB,MAAAA,SAAS,GAAG3+B,KAAE,CAAC5V,IAAf;AACA4R,MAAAA,IAAI,GAAG,KAAP;AACD;;AAED,YAAQ2iC,SAAR;AACE,WAAK3+B,KAAE,CAAClW,SAAR;AACE,eAAO,KAAK80C,sBAAL,CACLH,IADK,EAEO,KAFP,EAGqB,IAHrB,CAAP;;AAKF,WAAKz+B,KAAE,CAACrV,MAAR;AAGE8zC,QAAAA,IAAI,CAAC9wB,OAAL,GAAe,IAAf;AACA,eAAO,KAAKkxB,UAAL,CACLJ,IADK,EAEa,IAFb,EAGY,KAHZ,CAAP;;AAKF,WAAKz+B,KAAE,CAAC3V,MAAR;AACE,YAAI,KAAK+E,KAAL,CAAW4Q,KAAE,CAAC3V,MAAd,KAAyB,KAAKitB,qBAAL,CAA2B,MAA3B,CAA7B,EAAiE;AAE/D,eAAKpO,MAAL,CAAYlJ,KAAE,CAAC3V,MAAf;AACA,eAAKmf,gBAAL,CAAsB,MAAtB;AACA,iBAAO,KAAK+zB,sBAAL,CAA4BkB,IAA5B,EAAgD,IAAhD,CAAP;AACD;;AAEH,WAAKz+B,KAAE,CAAC5V,IAAR;AACE4R,QAAAA,IAAI,GAAGA,IAAI,IAAI,KAAKvL,KAAL,CAAWiM,KAA1B;AACA,eAAO,KAAKoiC,iBAAL,CAAuBL,IAAvB,EAA6BziC,IAA7B,CAAP;;AACF,WAAKgE,KAAE,CAACta,IAAR;AAAc;AACZ,gBAAMgX,KAAK,GAAG,KAAKjM,KAAL,CAAWiM,KAAzB;;AACA,cAAIA,KAAK,KAAK,QAAd,EAAwB;AACtB,mBAAO,KAAKmhC,uCAAL,CAA6CY,IAA7C,CAAP;AACD,WAFD,MAEO;AACL,mBAAO,KAAKM,kBAAL,CAAwBN,IAAxB,EAA8B/hC,KAA9B,EAAgD,IAAhD,CAAP;AACD;AACF;AAlCH;AAoCD;;AAGDsiC,EAAAA,2BAA2B,GAAmB;AAC5C,WAAO,KAAKD,kBAAL,CACL,KAAKv+B,SAAL,EADK,EAEL,KAAK/P,KAAL,CAAWiM,KAFN,EAGM,IAHN,CAAP;AAKD;;AAEDuiC,EAAAA,0BAA0B,CAACnuC,IAAD,EAAYiN,IAAZ,EAAgD;AACxE,YAAQA,IAAI,CAACrY,IAAb;AACE,WAAK,SAAL;AAAgB;AACd,gBAAMgiB,WAAW,GAAG,KAAK82B,iBAAL,CAAuB1tC,IAAvB,CAApB;;AACA,cAAI4W,WAAJ,EAAiB;AACfA,YAAAA,WAAW,CAACiG,OAAZ,GAAsB,IAAtB;AACA,mBAAOjG,WAAP;AACD;;AACD;AACD;;AACD,WAAK,QAAL;AAGE,YAAI,KAAKtY,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAJ,EAA2B;AACzB,eAAKglB,KAAL,CAAWE,KAAX,CAAiB7f,eAAjB;AACA,eAAK8W,SAAL,CAAe+I,KAAf,CAAqBgnB,KAArB;AACA,gBAAMsM,GAA0B,GAAGpuC,IAAnC;AACAouC,UAAAA,GAAG,CAACpB,MAAJ,GAAa,IAAb;AACAoB,UAAAA,GAAG,CAACl1B,EAAJ,GAASjM,IAAT;AACAmhC,UAAAA,GAAG,CAACvtC,IAAJ,GAAW,KAAK6rC,kBAAL,EAAX;AACA,eAAK9xB,KAAL,CAAWK,IAAX;AACA,eAAKlJ,SAAL,CAAekJ,IAAf;AACA,iBAAO,KAAKtL,UAAL,CAAgBy+B,GAAhB,EAAqB,qBAArB,CAAP;AACD;;AACD;;AAEF;AACE,eAAO,KAAKH,kBAAL,CAAwBjuC,IAAxB,EAA8BiN,IAAI,CAACrY,IAAnC,EAAoD,KAApD,CAAP;AA1BJ;AA4BD;;AAGDq5C,EAAAA,kBAAkB,CAChBjuC,IADgB,EAEhB4L,KAFgB,EAGhBoI,IAHgB,EAIA;AAChB,YAAQpI,KAAR;AACE,WAAK,UAAL;AACE,YAAI,KAAKyiC,6BAAL,CAAmCn/B,KAAE,CAACrV,MAAtC,EAA8Cma,IAA9C,CAAJ,EAAyD;AACvD,gBAAMs6B,GAAuB,GAAGtuC,IAAhC;AACAsuC,UAAAA,GAAG,CAACC,QAAJ,GAAe,IAAf;;AACA,cAAIv6B,IAAJ,EAAU;AACR,iBAAKA,IAAL;;AACA,gBAAI,CAAC,KAAK1V,KAAL,CAAW4Q,KAAE,CAACrV,MAAd,CAAL,EAA4B;AAC1B,mBAAK6gB,UAAL,CAAgB,IAAhB,EAAsBxL,KAAE,CAACrV,MAAzB;AACD;AACF;;AACD,iBAAO,KAAKk0C,UAAL,CACLO,GADK,EAEa,IAFb,EAGY,KAHZ,CAAP;AAKD;;AACD;;AAEF,WAAK,MAAL;AACE,YAAIt6B,IAAI,IAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAZ,EAAiC;AAC/B,cAAIof,IAAJ,EAAU,KAAKA,IAAL;AACV,iBAAO,KAAKy4B,sBAAL,CAA4BzsC,IAA5B,EAAgD,KAAhD,CAAP;AACD;;AACD;;AAEF,WAAK,WAAL;AACE,YAAI,KAAKquC,6BAAL,CAAmCn/B,KAAE,CAACta,IAAtC,EAA4Cof,IAA5C,CAAJ,EAAuD;AACrD,cAAIA,IAAJ,EAAU,KAAKA,IAAL;AACV,iBAAO,KAAKi4B,2BAAL,CAAiCjsC,IAAjC,CAAP;AACD;;AACD;;AAEF,WAAK,QAAL;AACE,YAAIgU,IAAJ,EAAU,KAAKA,IAAL;;AACV,YAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAAJ,EAA2B;AACzB,iBAAO,KAAK03C,uCAAL,CAA6C/sC,IAA7C,CAAP;AACD,SAFD,MAEO,IAAI,KAAKquC,6BAAL,CAAmCn/B,KAAE,CAACta,IAAtC,EAA4Cof,IAA5C,CAAJ,EAAuD;AAC5D,iBAAO,KAAK44B,mCAAL,CAAyC5sC,IAAzC,CAAP;AACD;;AACD;;AAEF,WAAK,WAAL;AACE,YAAI,KAAKquC,6BAAL,CAAmCn/B,KAAE,CAACta,IAAtC,EAA4Cof,IAA5C,CAAJ,EAAuD;AACrD,cAAIA,IAAJ,EAAU,KAAKA,IAAL;AACV,iBAAO,KAAK44B,mCAAL,CAAyC5sC,IAAzC,CAAP;AACD;;AACD;;AAEF,WAAK,MAAL;AACE,YAAI,KAAKquC,6BAAL,CAAmCn/B,KAAE,CAACta,IAAtC,EAA4Cof,IAA5C,CAAJ,EAAuD;AACrD,cAAIA,IAAJ,EAAU,KAAKA,IAAL;AACV,iBAAO,KAAKk4B,2BAAL,CAAiClsC,IAAjC,CAAP;AACD;;AACD;AAtDJ;AAwDD;;AAEDquC,EAAAA,6BAA6B,CAACG,SAAD,EAAuBx6B,IAAvB,EAAsC;AACjE,WAAO,CAACA,IAAI,IAAI,KAAK1V,KAAL,CAAWkwC,SAAX,CAAT,KAAmC,CAAC,KAAKZ,gBAAL,EAA3C;AACD;;AAEDa,EAAAA,mCAAmC,CACjCt/B,QADiC,EAEjCvF,QAFiC,EAGL;AAC5B,QAAI,CAAC,KAAK0P,YAAL,CAAkB,GAAlB,CAAL,EAA6B;AAC3B,aAAO5Y,SAAP;AACD;;AAED,UAAMguC,yBAAyB,GAAG,KAAK/uC,KAAL,CAAWgvC,sBAA7C;AACA,UAAMC,WAAW,GAAG,KAAKjvC,KAAL,CAAWkvC,QAA/B;AACA,UAAMC,WAAW,GAAG,KAAKnvC,KAAL,CAAWovC,QAA/B;AACA,SAAKpvC,KAAL,CAAWgvC,sBAAX,GAAoC,IAApC;AACA,SAAKhvC,KAAL,CAAWkvC,QAAX,GAAsB,CAAC,CAAvB;AACA,SAAKlvC,KAAL,CAAWovC,QAAX,GAAsB,CAAC,CAAvB;AAEA,UAAMvB,GAA+B,GAAG,KAAKC,kBAAL,CAAwB,MAAM;AACpE,YAAMztC,IAA+B,GAAG,KAAKqM,WAAL,CACtC8C,QADsC,EAEtCvF,QAFsC,CAAxC;AAIA5J,MAAAA,IAAI,CAACgP,cAAL,GAAsB,KAAK03B,qBAAL,EAAtB;AAEA,YAAM3f,mBAAN,CAA0B/mB,IAA1B;AACAA,MAAAA,IAAI,CAAC2Z,UAAL,GAAkB,KAAKwxB,uCAAL,EAAlB;AACA,WAAK/yB,MAAL,CAAYlJ,KAAE,CAACxY,KAAf;AACA,aAAOsJ,IAAP;AACD,KAXuC,CAAxC;AAaA,SAAKL,KAAL,CAAWgvC,sBAAX,GAAoCD,yBAApC;AACA,SAAK/uC,KAAL,CAAWkvC,QAAX,GAAsBD,WAAtB;AACA,SAAKjvC,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;;AAEA,QAAI,CAACtB,GAAL,EAAU;AACR,aAAO9sC,SAAP;AACD;;AAED,WAAO,KAAKyoB,oBAAL,CACLqkB,GADK,EAEwB,IAFxB,EAGO,IAHP,CAAP;AAKD;;AAED/H,EAAAA,oBAAoB,GAAmC;AACrD,UAAMzlC,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA1P,IAAAA,IAAI,CAACoK,MAAL,GAAc,KAAKwgC,QAAL,CAAc,MAE1B,KAAKuB,aAAL,CAAmB,MAAM;AACvB,WAAKzuB,gBAAL,CAAsB,GAAtB;AACA,aAAO,KAAKsnB,oBAAL,CACL,2BADK,EAEL,KAAK4D,WAAL,CAAiBnE,IAAjB,CAAsB,IAAtB,CAFK,CAAP;AAID,KAND,CAFY,CAAd;AAYA,SAAK9kC,KAAL,CAAW+R,WAAX,GAAyB,KAAzB;AACA,SAAKgM,gBAAL,CAAsB,GAAtB;AACA,WAAO,KAAK/N,UAAL,CAAgB3P,IAAhB,EAAsB,8BAAtB,CAAP;AACD;;AAEDgvC,EAAAA,oBAAoB,GAAY;AAC9B,QAAI,KAAK1wC,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAJ,EAAyB;AACvB,cAAQ,KAAK+K,KAAL,CAAWiM,KAAnB;AACE,aAAK,UAAL;AACA,aAAK,SAAL;AACA,aAAK,MAAL;AACA,aAAK,WAAL;AACA,aAAK,QAAL;AACA,aAAK,WAAL;AACA,aAAK,MAAL;AACE,iBAAO,IAAP;AARJ;AAUD;;AAED,WAAO,KAAP;AACD;;AAMD0V,EAAAA,wBAAwB,GAAY;AAClC,QAAI,KAAK0tB,oBAAL,EAAJ,EAAiC,OAAO,KAAP;AACjC,WAAO,MAAM1tB,wBAAN,EAAP;AACD;;AAED2tB,EAAAA,uBAAuB,CACrBjoB,cADqB,EAErBkoB,UAFqB,EAGc;AAEnC,UAAM//B,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AAEA,QAAIulC,aAAJ;AACA,QAAIxH,QAAQ,GAAG,KAAf;;AACA,QAAI3gB,cAAJ,EAAoB;AAClBmoB,MAAAA,aAAa,GAAG,KAAKC,mBAAL,EAAhB;AACAzH,MAAAA,QAAQ,GAAG,CAAC,CAAC,KAAKtD,eAAL,CAAqB,CAAC,UAAD,CAArB,CAAb;AACD;;AAED,UAAMve,IAAI,GAAG,KAAKD,iBAAL,EAAb;AACA,SAAKD,4BAAL,CAAkCE,IAAlC;AACA,UAAMupB,GAAG,GAAG,KAAKxpB,iBAAL,CAAuBC,IAAI,CAAC9nB,KAA5B,EAAmC8nB,IAAI,CAACpmB,GAAL,CAAS1B,KAA5C,EAAmD8nB,IAAnD,CAAZ;;AACA,QAAIqpB,aAAa,IAAIxH,QAArB,EAA+B;AAC7B,YAAM2H,EAAyB,GAAG,KAAKjjC,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAlC;;AACA,UAAIslC,UAAU,CAAC7vC,MAAf,EAAuB;AACrBiwC,QAAAA,EAAE,CAACJ,UAAH,GAAgBA,UAAhB;AACD;;AACD,UAAIC,aAAJ,EAAmBG,EAAE,CAACH,aAAH,GAAmBA,aAAnB;AACnB,UAAIxH,QAAJ,EAAc2H,EAAE,CAAC3H,QAAH,GAAcA,QAAd;;AACd,UAAI0H,GAAG,CAACzuC,IAAJ,KAAa,YAAb,IAA6ByuC,GAAG,CAACzuC,IAAJ,KAAa,mBAA9C,EAAmE;AACjE,aAAKsJ,KAAL,CAAWolC,EAAE,CAACtxC,KAAd,EAAqB2kC,QAAQ,CAACmB,gCAA9B;AACD;;AACDwL,MAAAA,EAAE,CAACC,SAAH,GAAiBF,GAAjB;AACA,aAAO,KAAK1/B,UAAL,CAAgB2/B,EAAhB,EAAoB,qBAApB,CAAP;AACD;;AAED,QAAIJ,UAAU,CAAC7vC,MAAf,EAAuB;AACrBymB,MAAAA,IAAI,CAACopB,UAAL,GAAkBA,UAAlB;AACD;;AAED,WAAOG,GAAP;AACD;;AAEDpuB,EAAAA,0BAA0B,CACxBjhB,IADwB,EAExBY,IAFwB,EAGxB0O,QAAkB,GAAG,KAHG,EAIlB;AACN,QAAI,KAAKhR,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB2J,MAAAA,IAAI,CAAC2Z,UAAL,GAAkB,KAAKutB,oCAAL,CAA0Ch4B,KAAE,CAAC7Y,KAA7C,CAAlB;AACD;;AAED,UAAMm5C,YAAY,GAChB5uC,IAAI,KAAK,qBAAT,GACI,mBADJ,GAEIA,IAAI,KAAK,aAAT,GACA,iBADA,GAEAF,SALN;;AAMA,QAAI8uC,YAAY,IAAI,CAAC,KAAKlxC,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAjB,IAA0C,KAAKg4C,gBAAL,EAA9C,EAAuE;AACrE,WAAKj+B,UAAL,CAAgB3P,IAAhB,EAAsBwvC,YAAtB;AACA;AACD;;AAED,UAAMvuB,0BAAN,CAAiCjhB,IAAjC,EAAuCY,IAAvC,EAA6C0O,QAA7C;AACD;;AAEDmgC,EAAAA,2BAA2B,CAACzvC,IAAD,EAAyB;AAClD,QAAI,CAACA,IAAI,CAACa,IAAN,IAAcb,IAAI,CAACkZ,EAAvB,EAA2B;AAGzB,WAAKlM,SAAL,CAAehN,IAAI,CAACkZ,EAApB,EAAwB7c,eAAxB,EAAyC,IAAzC,EAA+C,eAA/C;AACD,KAJD,MAIO;AACL,YAAMozC,2BAAN,CAAkC,GAAGruC,SAArC;AACD;AACF;;AAEDunB,EAAAA,cAAc,CACZN,IADY,EAEZlZ,QAFY,EAGZvF,QAHY,EAIZ0e,OAJY,EAKZ3oB,KALY,EAME;AACd,QAAI,CAAC,KAAKykC,qBAAL,EAAD,IAAiC,KAAK9lC,KAAL,CAAW4Q,KAAE,CAAC7X,IAAd,CAArC,EAA0D;AACxD,WAAKsI,KAAL,CAAW+R,WAAX,GAAyB,KAAzB;AACA,WAAKsC,IAAL;AAEA,YAAM07B,iBAAwC,GAAG,KAAKrjC,WAAL,CAC/C8C,QAD+C,EAE/CvF,QAF+C,CAAjD;AAIA8lC,MAAAA,iBAAiB,CAACpjC,UAAlB,GAA+B+b,IAA/B;AACA,aAAO,KAAK1Y,UAAL,CAAgB+/B,iBAAhB,EAAmC,qBAAnC,CAAP;AACD;;AAED,QAAI,KAAKp2B,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAI1B,YAAMqI,MAAM,GAAG,KAAK8rB,kBAAL,CAAwB,MAAM;AAC3C,YAAI,CAACnlB,OAAD,IAAY,KAAKqnB,oBAAL,CAA0BtnB,IAA1B,CAAhB,EAAiD;AAG/C,gBAAMunB,YAAY,GAAG,KAAKnB,mCAAL,CACnBt/B,QADmB,EAEnBvF,QAFmB,CAArB;;AAIA,cAAIgmC,YAAJ,EAAkB;AAChB,mBAAOA,YAAP;AACD;AACF;;AAED,cAAM5vC,IAAsB,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAA/B;AACA5J,QAAAA,IAAI,CAACqQ,MAAL,GAAcgY,IAAd;AAEA,cAAMW,aAAa,GAAG,KAAKyc,oBAAL,EAAtB;;AAEA,YAAIzc,aAAJ,EAAmB;AACjB,cAAI,CAACV,OAAD,IAAY,KAAK3P,GAAL,CAASzJ,KAAE,CAACjZ,MAAZ,CAAhB,EAAqC;AAGnC+J,YAAAA,IAAI,CAACoB,SAAL,GAAiB,KAAKmnB,4BAAL,CACfrZ,KAAE,CAAChZ,MADY,EAEK,KAFL,CAAjB;AAIA8J,YAAAA,IAAI,CAACgP,cAAL,GAAsBga,aAAtB;AACA,mBAAO,KAAK7Y,oBAAL,CAA0BnQ,IAA1B,EAAgCL,KAAK,CAACmpB,mBAAtC,CAAP;AACD,WATD,MASO,IAAI,KAAKxqB,KAAL,CAAW4Q,KAAE,CAACrY,SAAd,CAAJ,EAA8B;AACnC,mBAAO,KAAKg5C,6BAAL,CACL1gC,QADK,EAELvF,QAFK,EAGLye,IAHK,EAIL1oB,KAJK,EAKLqpB,aALK,CAAP;AAOD;AACF;;AAED,aAAKtO,UAAL;AACD,OAxCc,CAAf;AA0CA,UAAIiH,MAAJ,EAAY,OAAOA,MAAP;AACb;;AAED,WAAO,MAAMgH,cAAN,CAAqBN,IAArB,EAA2BlZ,QAA3B,EAAqCvF,QAArC,EAA+C0e,OAA/C,EAAwD3oB,KAAxD,CAAP;AACD;;AAEDspB,EAAAA,iBAAiB,CAACjpB,IAAD,EAA8B;AAC7C,QAAI,KAAKsZ,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAG1B,YAAMtK,cAAc,GAAG,KAAKy+B,kBAAL,CAAwB,MAAM;AACnD,cAAMqC,IAAI,GAAG,KAAKrK,oBAAL,EAAb;AACA,YAAI,CAAC,KAAKnnC,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAL,EAA4B,KAAKykB,UAAL;AAC5B,eAAOo1B,IAAP;AACD,OAJsB,CAAvB;;AAKA,UAAI9gC,cAAJ,EAAoB;AAClBhP,QAAAA,IAAI,CAACgP,cAAL,GAAsBA,cAAtB;AACD;AACF;;AAED,UAAMia,iBAAN,CAAwBjpB,IAAxB;AACD;;AAED+vC,EAAAA,WAAW,CACTjqB,IADS,EAETkqB,YAFS,EAGTC,YAHS,EAITC,OAJS,EAKTzuB,IALS,EAMT;AACA,QACE+gB,OAAO,CAACtzB,KAAE,CAAC9U,GAAH,CAAO7F,KAAR,CAAP,GAAwB27C,OAAxB,IACA,CAAC,KAAK9L,qBAAL,EADD,IAEA,KAAK/pB,YAAL,CAAkB,IAAlB,CAHF,EAIE;AACA,YAAMra,IAAsB,GAAG,KAAKqM,WAAL,CAC7B2jC,YAD6B,EAE7BC,YAF6B,CAA/B;AAIAjwC,MAAAA,IAAI,CAACsM,UAAL,GAAkBwZ,IAAlB;;AACA,YAAMvsB,MAAM,GAAG,KAAKotC,6BAAL,EAAf;;AACA,UAAIptC,MAAJ,EAAY;AACVyG,QAAAA,IAAI,CAAC4Z,cAAL,GAAsBrgB,MAAtB;AACD,OAFD,MAEO;AACLyG,QAAAA,IAAI,CAAC4Z,cAAL,GAAsB,KAAK+xB,mBAAL,EAAtB;AACD;;AACD,WAAKh8B,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB;AACA,aAAO,KAAK+vC,WAAL,CACL/vC,IADK,EAELgwC,YAFK,EAGLC,YAHK,EAILC,OAJK,EAKLzuB,IALK,CAAP;AAOD;;AAED,WAAO,MAAMsuB,WAAN,CAAkBjqB,IAAlB,EAAwBkqB,YAAxB,EAAsCC,YAAtC,EAAoDC,OAApD,EAA6DzuB,IAA7D,CAAP;AACD;;AAEDqF,EAAAA,iBAAiB,CACfvT,IADe,EAEf3J,QAFe,EAGfumC,aAHe,EAKfxrB,SALe,EAMT;;AAeRyrB,EAAAA,qBAAqB,GAAG;;AAExBp1B,EAAAA,WAAW,CAAChb,IAAD,EAA4B;AACrC,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAACta,IAAd,KAAuB,KAAK0J,KAAL,CAAW4Q,KAAE,CAAC/W,IAAd,CAAvB,IAA8C,KAAKmG,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAlD,EAAyE;AACvE,YAAMy6C,KAAK,GAAG,KAAKjyB,SAAL,EAAd;;AAEA,UAAI,KAAK9f,KAAL,CAAW4Q,KAAE,CAACta,IAAd,KAAuBy7C,KAAK,CAACzvC,IAAN,KAAesO,KAAE,CAAChY,EAA7C,EAAiD;AAC/C,eAAO,KAAK+1C,8BAAL,CAAoCjtC,IAApC,CAAP;AACD;;AAED,UACE,KAAKqa,YAAL,CAAkB,MAAlB,KAEAg2B,KAAK,CAACzvC,IAAN,KAAesO,KAAE,CAAC/Y,KAFlB,IAIA,EAAEk6C,KAAK,CAACzvC,IAAN,KAAesO,KAAE,CAACta,IAAlB,IAA0By7C,KAAK,CAACzkC,KAAN,KAAgB,MAA5C,CALF,EAME;AACA5L,QAAAA,IAAI,CAAC8W,UAAL,GAAkB,MAAlB;AACA,aAAK9C,IAAL;AACD,OATD,MASO;AACLhU,QAAAA,IAAI,CAAC8W,UAAL,GAAkB,OAAlB;AACD;AACF;;AAED,UAAMw5B,UAAU,GAAG,MAAMt1B,WAAN,CAAkBhb,IAAlB,CAAnB;;AAKA,QACEswC,UAAU,CAACx5B,UAAX,KAA0B,MAA1B,IACAw5B,UAAU,CAAC3/B,UAAX,CAAsBtR,MAAtB,GAA+B,CAD/B,IAEAixC,UAAU,CAAC3/B,UAAX,CAAsB,CAAtB,EAAyB/P,IAAzB,KAAkC,wBAHpC,EAIE;AACA,WAAKsJ,KAAL,CACEomC,UAAU,CAACtyC,KADb,EAEE,kFAFF;AAID;;AAED,WAAOsyC,UAAP;AACD;;AAED7/B,EAAAA,WAAW,CAACzQ,IAAD,EAA4B;AACrC,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAClV,OAAd,CAAJ,EAA4B;AAE1B,WAAKoe,MAAL,CAAYlJ,KAAE,CAAClV,OAAf;AACA,aAAO,KAAKizC,8BAAL,CAAoCjtC,IAApC,EAAyD,IAAzD,CAAP;AACD,KAJD,MAIO,IAAI,KAAK2Y,GAAL,CAASzJ,KAAE,CAAChY,EAAZ,CAAJ,EAAqB;AAE1B,YAAMC,MAA4B,GAAG6I,IAArC;AACA7I,MAAAA,MAAM,CAACmV,UAAP,GAAoB,KAAKsM,eAAL,EAApB;AACA,WAAKkB,SAAL;AACA,aAAO,KAAKnK,UAAL,CAAgBxY,MAAhB,EAAwB,oBAAxB,CAAP;AACD,KANM,MAMA,IAAI,KAAK+iB,aAAL,CAAmB,IAAnB,CAAJ,EAA8B;AAEnC,YAAMsJ,IAAoC,GAAGxjB,IAA7C;AAEA,WAAK0Y,gBAAL,CAAsB,WAAtB;AACA8K,MAAAA,IAAI,CAACtK,EAAL,GAAU,KAAKC,eAAL,EAAV;AACA,WAAKW,SAAL;AACA,aAAO,KAAKnK,UAAL,CAAgB6T,IAAhB,EAAsB,8BAAtB,CAAP;AACD,KARM,MAQA;AACL,UAAI,KAAKnJ,YAAL,CAAkB,MAAlB,KAA6B,KAAK+D,SAAL,GAAiBxd,IAAjB,KAA0BsO,KAAE,CAACtZ,MAA9D,EAAsE;AACpE,aAAKoe,IAAL;AACAhU,QAAAA,IAAI,CAACsb,UAAL,GAAkB,MAAlB;AACD,OAHD,MAGO;AACLtb,QAAAA,IAAI,CAACsb,UAAL,GAAkB,OAAlB;AACD;;AAED,aAAO,MAAM7K,WAAN,CAAkBzQ,IAAlB,CAAP;AACD;AACF;;AAEDuwC,EAAAA,eAAe,GAAY;AACzB,WACE,KAAKl2B,YAAL,CAAkB,UAAlB,KAAiC,KAAK+D,SAAL,GAAiBxd,IAAjB,KAA0BsO,KAAE,CAACrV,MADhE;AAGD;;AAED0nB,EAAAA,4BAA4B,GAAiC;AAC3D,QAAI,KAAKgvB,eAAL,EAAJ,EAA4B;AAC1B,YAAMjC,GAAG,GAAG,KAAK5+B,SAAL,EAAZ;AACA,WAAKsE,IAAL;AACA,WAAK+5B,UAAL,CAAgBO,GAAhB,EAAqB,IAArB,EAA2B,IAA3B;AACAA,MAAAA,GAAG,CAACC,QAAJ,GAAe,IAAf;AACA,aAAOD,GAAP;AACD;;AAID,QAAI,KAAK3uC,KAAL,CAAWiM,KAAX,KAAqB,WAAzB,EAAsC;AACpC,YAAM+V,MAAM,GAAG,KAAKssB,kBAAL,CACb,KAAKv+B,SAAL,EADa,EAEb,KAAK/P,KAAL,CAAWiM,KAFE,EAGb,IAHa,CAAf;AAMA,UAAI+V,MAAJ,EAAY,OAAOA,MAAP;AACb;;AAED,WAAO,MAAMJ,4BAAN,EAAP;AACD;;AAEDivB,EAAAA,qBAAqB,CAAC/+B,OAAD,EAAmBrD,QAAnB,EAAoD;AACvE,QAAI,KAAKzO,KAAL,CAAWiB,IAAX,KAAoBsO,KAAE,CAAC3V,MAA3B,EAAmC;AACjC,YAAM82C,KAAK,GAAG,KAAKjyB,SAAL,EAAd;;AACA,UAAIiyB,KAAK,CAACzvC,IAAN,KAAesO,KAAE,CAACta,IAAlB,IAA0By7C,KAAK,CAACzkC,KAAN,KAAgB,MAA9C,EAAsD;AACpD,cAAM5L,IAAyB,GAAG,KAAK0P,SAAL,EAAlC;AACA,aAAK0I,MAAL,CAAYlJ,KAAE,CAAC3V,MAAf;AACA,aAAKmf,gBAAL,CAAsB,MAAtB;AACA,eAAO,KAAK+zB,sBAAL,CAA4BzsC,IAA5B,EAAgD,IAAhD,CAAP;AACD;AACF;;AACD,WAAO,MAAMwwC,qBAAN,CAA4B/+B,OAA5B,EAAqCrD,QAArC,CAAP;AACD;;AAEDghC,EAAAA,mBAAmB,GAAqB;AACtC,WAAO,KAAK/K,eAAL,CAAqB,CAAC,QAAD,EAAW,WAAX,EAAwB,SAAxB,CAArB,CAAP;AACD;;AAEDlgB,EAAAA,gBAAgB,CACdxV,SADc,EAEdyV,MAFc,EAGdzkB,KAHc,EAId0kB,sBAJc,EAKR;AACN,SAAKqgB,gBAAL,CAAsBtgB,MAAtB,EAA8B,CAAC,SAAD,CAA9B;AACA,UAAM+qB,aAAa,GAAG,KAAKC,mBAAL,EAAtB;AACA,QAAID,aAAJ,EAAmB/qB,MAAM,CAAC+qB,aAAP,GAAuBA,aAAvB;AACnB,SAAKzK,gBAAL,CAAsBtgB,MAAtB,EAA8B,CAAC,SAAD,CAA9B;AAEA,UAAMD,gBAAN,CAAuBxV,SAAvB,EAAkCyV,MAAlC,EAA0CzkB,KAA1C,EAAiD0kB,sBAAjD;AACD;;AAEDosB,EAAAA,4BAA4B,CAC1B9hC,SAD0B,EAE1ByV,MAF0B,EAG1BzkB,KAH0B,EAI1Bue,QAJ0B,EAK1BmG,sBAL0B,EAMpB;AACN,SAAKqgB,gBAAL,CAAsBtgB,MAAtB,EAA8B,CAAC,UAAD,EAAa,UAAb,EAAyB,SAAzB,CAA9B;AAEA,UAAM0jB,GAAG,GAAG,KAAKP,wBAAL,CAA8BnjB,MAA9B,CAAZ;;AACA,QAAI0jB,GAAJ,EAAS;AACPn5B,MAAAA,SAAS,CAAC9N,IAAV,CAAehB,IAAf,CAAoBioC,GAApB;;AAEA,UAAK1jB,MAAD,CAAcmqB,QAAlB,EAA4B;AAC1B,aAAKrkC,KAAL,CAAWka,MAAM,CAACpmB,KAAlB,EAAyB2kC,QAAQ,CAACM,yBAAlC;AACD;;AACD,UAAI/kB,QAAJ,EAAc;AACZ,aAAKhU,KAAL,CAAWka,MAAM,CAACpmB,KAAlB,EAAyB2kC,QAAQ,CAACQ,uBAAlC;AACD;;AACD,UAAK/e,MAAD,CAAc+qB,aAAlB,EAAiC;AAC/B,aAAKjlC,KAAL,CACEka,MAAM,CAACpmB,KADT,EAEE2kC,QAAQ,CAACO,8BAFX,EAGG9e,MAAD,CAAc+qB,aAHhB;AAKD;;AAED;AACD;;AAID,UAAMsB,4BAAN,CACE9hC,SADF,EAEEyV,MAFF,EAGEzkB,KAHF,EAIEue,QAJF,EAKEmG,sBALF;AAOD;;AAEDqsB,EAAAA,4BAA4B,CAC1BC,YAD0B,EAEpB;AACN,UAAMvgC,QAAQ,GAAG,KAAKuI,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAjB;AACA,QAAI4Z,QAAJ,EAAcugC,YAAY,CAACvgC,QAAb,GAAwB,IAAxB;;AAEd,QAAKugC,YAAD,CAAoBhJ,QAApB,IAAgC,KAAKrpC,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAApC,EAA2D;AACzD,WAAKiU,KAAL,CAAWymC,YAAY,CAAC3yC,KAAxB,EAA+B2kC,QAAQ,CAACE,sBAAxC;AACD;;AAED,QAAK8N,YAAD,CAAoB9zB,OAApB,IAA+B,KAAKve,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAnC,EAA0D;AACxD,WAAKiU,KAAL,CAAWymC,YAAY,CAAC3yC,KAAxB,EAA+B2kC,QAAQ,CAACC,qBAAxC;AACD;AACF;;AAMDxhB,EAAAA,wBAAwB,CACtBphB,IADsB,EAEtBiN,IAFsB,EAGT;AACb,UAAMuW,IAAI,GACRvW,IAAI,CAACrM,IAAL,KAAc,YAAd,GACI,KAAKutC,0BAAL,CAAgCnuC,IAAhC,EAAsCiN,IAAtC,CADJ,GAEIvM,SAHN;AAIA,WAAO8iB,IAAI,IAAI,MAAMpC,wBAAN,CAA+BphB,IAA/B,EAAqCiN,IAArC,CAAf;AACD;;AAIDoU,EAAAA,4BAA4B,GAAY;AACtC,QAAI,KAAK2tB,oBAAL,EAAJ,EAAiC,OAAO,IAAP;AACjC,WAAO,MAAM3tB,4BAAN,EAAP;AACD;;AAGDG,EAAAA,gBAAgB,CACdvU,IADc,EAEdwU,IAFc,EAGdtS,QAHc,EAIdvF,QAJc,EAKd8X,gBALc,EAMA;AAGd,QAAI,CAACA,gBAAD,IAAqB,CAAC,KAAKpjB,KAAL,CAAW4Q,KAAE,CAAC1Y,QAAd,CAA1B,EAAmD;AACjD,aAAO,MAAMgrB,gBAAN,CACLvU,IADK,EAELwU,IAFK,EAGLtS,QAHK,EAILvF,QAJK,EAKL8X,gBALK,CAAP;AAOD;;AAED,UAAMC,MAAM,GAAG,KAAKC,QAAL,CAAc,MAC3B,MAAMJ,gBAAN,CAAuBvU,IAAvB,EAA6BwU,IAA7B,EAAmCtS,QAAnC,EAA6CvF,QAA7C,CADa,CAAf;;AAIA,QAAI,CAAC+X,MAAM,CAAC3hB,IAAZ,EAAkB;AAEhB0hB,MAAAA,gBAAgB,CAAC1jB,KAAjB,GAAyB2jB,MAAM,CAACE,KAAP,CAAalY,GAAb,IAAoB,KAAKhK,KAAL,CAAW3B,KAAxD;AACA,aAAOiP,IAAP;AACD;;AACD,QAAI0U,MAAM,CAACE,KAAX,EAAkB,KAAKliB,KAAL,GAAagiB,MAAM,CAACG,SAApB;AAClB,WAAOH,MAAM,CAAC3hB,IAAd;AACD;;AAIDqjB,EAAAA,cAAc,CACZrjB,IADY,EAEZmP,QAFY,EAGZvF,QAHY,EAIE;AACd5J,IAAAA,IAAI,GAAG,MAAMqjB,cAAN,CAAqBrjB,IAArB,EAA2BmP,QAA3B,EAAqCvF,QAArC,CAAP;;AACA,QAAI,KAAK+O,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzBwJ,MAAAA,IAAI,CAACoQ,QAAL,GAAgB,IAAhB;AAIA,WAAKyJ,gBAAL,CAAsB7Z,IAAtB;AACD;;AAED,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB,YAAMitB,YAAoC,GAAG,KAAKjX,WAAL,CAC3C8C,QAD2C,EAE3CvF,QAF2C,CAA7C;AAIA0Z,MAAAA,YAAY,CAAChX,UAAb,GAA0BtM,IAA1B;AACAsjB,MAAAA,YAAY,CAAC1J,cAAb,GAA8B,KAAKqsB,qBAAL,EAA9B;AAEA,aAAO,KAAKt2B,UAAL,CAAgB2T,YAAhB,EAA8B,sBAA9B,CAAP;AACD;;AAED,WAAOtjB,IAAP;AACD;;AAEDyjB,EAAAA,sBAAsB,CAACzjB,IAAD,EAAiD;AAErE,UAAMmP,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AAGA,UAAMgnC,SAAS,GAAG,KAAK12B,aAAL,CAAmB,SAAnB,CAAlB;AAEA,QAAItD,WAAJ;;AAEA,QAAI,KAAKtY,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAJ,EAAyB;AACvBgiB,MAAAA,WAAW,GAAG,KAAKs3B,2BAAL,EAAd;AACD;;AACD,QAAI,CAACt3B,WAAL,EAAkB;AAChBA,MAAAA,WAAW,GAAG,MAAM6M,sBAAN,CAA6BzjB,IAA7B,CAAd;AACD;;AACD,QACE4W,WAAW,KACVA,WAAW,CAAChW,IAAZ,KAAqB,wBAArB,IACCgW,WAAW,CAAChW,IAAZ,KAAqB,wBADtB,IAECgwC,SAHS,CADb,EAKE;AACA5wC,MAAAA,IAAI,CAACsb,UAAL,GAAkB,MAAlB;AACD;;AAED,QAAI1E,WAAW,IAAIg6B,SAAnB,EAA8B;AAE5B,WAAKC,kBAAL,CAAwBj6B,WAAxB,EAAqCzH,QAArC,EAA+CvF,QAA/C;AAEAgN,MAAAA,WAAW,CAACiG,OAAZ,GAAsB,IAAtB;AACD;;AAED,WAAOjG,WAAP;AACD;;AAEDoN,EAAAA,YAAY,CACVhkB,IADU,EAEVikB,WAFU,EAGVC,UAHU,EAIJ;AACN,QAAI,CAAC,CAACD,WAAD,IAAgBC,UAAjB,KAAgC,KAAK7J,YAAL,CAAkB,YAAlB,CAApC,EAAqE;AACnE;AACD;;AAED,UAAM2J,YAAN,CACEhkB,IADF,EAEEikB,WAFF,EAGEC,UAHF,EAIGlkB,IAAD,CAAY6c,OAAZ,GAAsBxgB,eAAtB,GAAwCP,UAJ1C;AAMA,UAAMkT,cAAc,GAAG,KAAKy3B,wBAAL,EAAvB;AACA,QAAIz3B,cAAJ,EAAoBhP,IAAI,CAACgP,cAAL,GAAsBA,cAAtB;AACrB;;AAED8hC,EAAAA,4BAA4B,CAC1B9wC,IAD0B,EAEpB;AACN,QAAI,CAACA,IAAI,CAACoQ,QAAN,IAAkB,KAAKuI,GAAL,CAASzJ,KAAE,CAAC7X,IAAZ,CAAtB,EAAyC;AACvC2I,MAAAA,IAAI,CAAC+wC,QAAL,GAAgB,IAAhB;AACD;;AAED,UAAMnwC,IAAI,GAAG,KAAK6mC,wBAAL,EAAb;AACA,QAAI7mC,IAAJ,EAAUZ,IAAI,CAAC4Z,cAAL,GAAsBhZ,IAAtB;AACX;;AAEDokB,EAAAA,kBAAkB,CAAChlB,IAAD,EAAyC;AACzD,SAAK8wC,4BAAL,CAAkC9wC,IAAlC;;AAEA,QAAIA,IAAI,CAAC6c,OAAL,IAAgB,KAAKve,KAAL,CAAW4Q,KAAE,CAAC8hC,KAAd,CAApB,EAA0C;AACxC,WAAK9mC,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6B2kC,QAAQ,CAACG,+BAAtC;AACD;;AAED,WAAO,MAAM9d,kBAAN,CAAyBhlB,IAAzB,CAAP;AACD;;AAEDilB,EAAAA,yBAAyB,CACvBjlB,IADuB,EAEC;AAExB,QAAIA,IAAI,CAACuuC,QAAT,EAAmB;AACjB,WAAKrkC,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuB2kC,QAAQ,CAACW,yBAAhC;AACD;;AAGD,QAAItjC,IAAI,CAACmvC,aAAT,EAAwB;AACtB,WAAKjlC,KAAL,CACElK,IAAI,CAAChC,KADP,EAEE2kC,QAAQ,CAACY,8BAFX,EAGEvjC,IAAI,CAACmvC,aAHP;AAKD;;AAED,SAAK2B,4BAAL,CAAkC9wC,IAAlC;AACA,WAAO,MAAMilB,yBAAN,CAAgCjlB,IAAhC,CAAP;AACD;;AAED0O,EAAAA,eAAe,CACbC,SADa,EAEbxD,MAFa,EAGbyD,WAHa,EAIbjC,OAJa,EAKbkC,aALa,EAMbC,iBANa,EAOP;AACN,UAAME,cAAc,GAAG,KAAKy3B,wBAAL,EAAvB;AACA,QAAIz3B,cAAJ,EAAoB7D,MAAM,CAAC6D,cAAP,GAAwBA,cAAxB;AACpB,UAAMN,eAAN,CACEC,SADF,EAEExD,MAFF,EAGEyD,WAHF,EAIEjC,OAJF,EAKEkC,aALF,EAMEC,iBANF;AAQD;;AAEDuW,EAAAA,sBAAsB,CACpB1W,SADoB,EAEpBxD,MAFoB,EAGpByD,WAHoB,EAIpBjC,OAJoB,EAKd;AACN,UAAMqC,cAAc,GAAG,KAAKy3B,wBAAL,EAAvB;AACA,QAAIz3B,cAAJ,EAAoB7D,MAAM,CAAC6D,cAAP,GAAwBA,cAAxB;AACpB,UAAMqW,sBAAN,CAA6B1W,SAA7B,EAAwCxD,MAAxC,EAAgDyD,WAAhD,EAA6DjC,OAA7D;AACD;;AAED2Y,EAAAA,eAAe,CAACtlB,IAAD,EAAsB;AACnC,UAAMslB,eAAN,CAAsBtlB,IAAtB;;AACA,QAAIA,IAAI,CAACoL,UAAL,IAAmB,KAAKkO,YAAL,CAAkB,GAAlB,CAAvB,EAA+C;AAC7CtZ,MAAAA,IAAI,CAACulB,mBAAL,GAA2B,KAAKkgB,oBAAL,EAA3B;AACD;;AACD,QAAI,KAAKvrB,aAAL,CAAmB,YAAnB,CAAJ,EAAsC;AACpCla,MAAAA,IAAI,CAAC6b,UAAL,GAAkB,KAAK+vB,qBAAL,CAA2B,YAA3B,CAAlB;AACD;AACF;;AAEDjmB,EAAAA,iBAAiB,CAAC7Y,IAAD,EAAuB,GAAGgjC,IAA1B,EAAsC;AACrD,UAAM9gC,cAAc,GAAG,KAAKy3B,wBAAL,EAAvB;AACA,QAAIz3B,cAAJ,EAAoBlC,IAAI,CAACkC,cAAL,GAAsBA,cAAtB;AAEpB,UAAM2W,iBAAN,CAAwB7Y,IAAxB,EAA8B,GAAGgjC,IAAjC;AACD;;AAED/oB,EAAAA,mBAAmB,CAAC/mB,IAAD,EAAmBgnB,cAAnB,EAAmD;AACpE,UAAMhY,cAAc,GAAG,KAAKy3B,wBAAL,EAAvB;AACA,QAAIz3B,cAAJ,EAAoBhP,IAAI,CAACgP,cAAL,GAAsBA,cAAtB;AACpB,UAAM+X,mBAAN,CAA0B/mB,IAA1B,EAAgCgnB,cAAhC;AACD;;AAGDC,EAAAA,UAAU,CACRzD,IADQ,EAERtY,IAFQ,EAGF;AACN,UAAM+b,UAAN,CAAiBzD,IAAjB,EAAuBtY,IAAvB;;AACA,QAAIsY,IAAI,CAACtK,EAAL,CAAQtY,IAAR,KAAiB,YAAjB,IAAiC,KAAK+X,GAAL,CAASzJ,KAAE,CAAC7X,IAAZ,CAArC,EAAwD;AACtDmsB,MAAAA,IAAI,CAACutB,QAAL,GAAgB,IAAhB;AACD;;AAED,UAAMnwC,IAAI,GAAG,KAAK6mC,wBAAL,EAAb;;AACA,QAAI7mC,IAAJ,EAAU;AACR4iB,MAAAA,IAAI,CAACtK,EAAL,CAAQU,cAAR,GAAyBhZ,IAAzB;AACA,WAAKiZ,gBAAL,CAAsB2J,IAAI,CAACtK,EAA3B;AACD;AACF;;AAGDgO,EAAAA,iCAAiC,CAC/BlnB,IAD+B,EAE/BmnB,IAF+B,EAGJ;AAC3B,QAAI,KAAK7oB,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB2J,MAAAA,IAAI,CAAC2Z,UAAL,GAAkB,KAAKssB,qBAAL,EAAlB;AACD;;AACD,WAAO,MAAM/e,iCAAN,CAAwClnB,IAAxC,EAA8CmnB,IAA9C,CAAP;AACD;;AAED1E,EAAAA,gBAAgB,CAAC,GAAGqtB,IAAJ,EAAwB;AAGtC,QAAInwC,KAAJ;AACA,QAAI2nB,GAAJ;AACA,QAAI2pB,QAAJ;;AAEA,QAAI,KAAK3yC,KAAL,CAAW4Q,KAAE,CAACqO,WAAd,CAAJ,EAAgC;AAE9B5d,MAAAA,KAAK,GAAG,KAAKA,KAAL,CAAWoiB,KAAX,EAAR;AAEAuF,MAAAA,GAAG,GAAG,KAAK1F,QAAL,CAAc,MAAM,MAAMa,gBAAN,CAAuB,GAAGqtB,IAA1B,CAApB,EAAqDnwC,KAArD,CAAN;AAGA,UAAI,CAAC2nB,GAAG,CAACzF,KAAT,EAAgB,OAAOyF,GAAG,CAACtnB,IAAX;AAKhB,YAAM;AAAEyR,QAAAA;AAAF,UAAc,KAAK9R,KAAzB;;AACA,UAAI8R,OAAO,CAACA,OAAO,CAACpS,MAAR,GAAiB,CAAlB,CAAP,KAAgC6xC,OAAE,CAAC1pB,MAAvC,EAA+C;AAC7C/V,QAAAA,OAAO,CAACpS,MAAR,IAAkB,CAAlB;AACD,OAFD,MAEO,IAAIoS,OAAO,CAACA,OAAO,CAACpS,MAAR,GAAiB,CAAlB,CAAP,KAAgC6xC,OAAE,CAACzpB,MAAvC,EAA+C;AACpDhW,QAAAA,OAAO,CAACpS,MAAR,IAAkB,CAAlB;AACD;AACF;;AAED,QAAI,EAAEioB,GAAG,IAAIA,GAAG,CAACzF,KAAb,KAAuB,CAAC,KAAKvI,YAAL,CAAkB,GAAlB,CAA5B,EAAoD;AAClD,aAAO,MAAMmJ,gBAAN,CAAuB,GAAGqtB,IAA1B,CAAP;AACD;;AAID,QAAI9gC,cAAJ;AACArP,IAAAA,KAAK,GAAGA,KAAK,IAAI,KAAKA,KAAL,CAAWoiB,KAAX,EAAjB;AAEA,UAAMrrB,KAAK,GAAG,KAAKkrB,QAAL,CAAc4G,KAAK,IAAI;AAEnCxZ,MAAAA,cAAc,GAAG,KAAK03B,qBAAL,EAAjB;AACA,YAAMz5B,IAAI,GAAG,MAAMwV,gBAAN,CAAuB,GAAGqtB,IAA1B,CAAb;;AAEA,UACE7iC,IAAI,CAACrM,IAAL,KAAc,yBAAd,IACCqM,IAAI,CAACT,KAAL,IAAcS,IAAI,CAACT,KAAL,CAAWwB,aAF5B,EAGE;AACAwa,QAAAA,KAAK;AACN;;AAGD,UAAIxZ,cAAc,IAAIA,cAAc,CAAC5E,MAAf,CAAsB/K,MAAtB,KAAiC,CAAvD,EAA0D;AACxD,aAAKsoB,0BAAL,CAAgC1a,IAAhC,EAAsC+B,cAAtC;AACD;;AACD/B,MAAAA,IAAI,CAAC+B,cAAL,GAAsBA,cAAtB;AACA,aAAO/B,IAAP;AACD,KAlBa,EAkBXtN,KAlBW,CAAd;AAoBA,QAAI,CAACjJ,KAAK,CAACmrB,KAAP,IAAgB,CAACnrB,KAAK,CAACgyB,OAA3B,EAAoC,OAAOhyB,KAAK,CAACsJ,IAAb;;AAEpC,QAAI,CAACsnB,GAAL,EAAU;AAIRob,MAAAA,MAAM,CAAC,CAAC,KAAK7jC,SAAL,CAAe,KAAf,CAAF,CAAN;AAIAoyC,MAAAA,QAAQ,GAAG,KAAKrvB,QAAL,CAAc,MAAM,MAAMa,gBAAN,CAAuB,GAAGqtB,IAA1B,CAApB,EAAqDnwC,KAArD,CAAX;AAEA,UAAI,CAACsxC,QAAQ,CAACpvB,KAAd,EAAqB,OAAOovB,QAAQ,CAACjxC,IAAhB;AACtB;;AAED,QAAIsnB,GAAG,IAAIA,GAAG,CAACtnB,IAAf,EAAqB;AAEnB,WAAKL,KAAL,GAAa2nB,GAAG,CAACxF,SAAjB;AACA,aAAOwF,GAAG,CAACtnB,IAAX;AACD;;AAED,QAAItJ,KAAK,CAACsJ,IAAV,EAAgB;AAEd,WAAKL,KAAL,GAAajJ,KAAK,CAACorB,SAAnB;AACA,aAAOprB,KAAK,CAACsJ,IAAb;AACD;;AAED,QAAIixC,QAAQ,IAAIA,QAAQ,CAACjxC,IAAzB,EAA+B;AAE7B,WAAKL,KAAL,GAAasxC,QAAQ,CAACnvB,SAAtB;AACA,aAAOmvB,QAAQ,CAACjxC,IAAhB;AACD;;AAED,QAAIsnB,GAAG,IAAIA,GAAG,CAACM,MAAf,EAAuB,MAAMN,GAAG,CAACzF,KAAV;AACvB,QAAInrB,KAAK,CAACkxB,MAAV,EAAkB,MAAMlxB,KAAK,CAACmrB,KAAZ;AAClB,QAAIovB,QAAQ,IAAIA,QAAQ,CAACrpB,MAAzB,EAAiC,MAAMqpB,QAAQ,CAACpvB,KAAf;AAEjC,UAAOyF,GAAG,IAAIA,GAAG,CAACzF,KAAZ,IAAsBnrB,KAAK,CAACmrB,KAA5B,IAAsCovB,QAAQ,IAAIA,QAAQ,CAACpvB,KAAjE;AACD;;AAGD6nB,EAAAA,eAAe,CAACj8B,mBAAD,EAAwD;AACrE,QAAI,CAAC,KAAK5O,SAAL,CAAe,KAAf,CAAD,IAA0B,KAAKya,YAAL,CAAkB,GAAlB,CAA9B,EAAsD;AACpD,aAAO,KAAKoyB,oBAAL,EAAP;AACD,KAFD,MAEO;AACL,aAAO,MAAMhC,eAAN,CAAsBj8B,mBAAtB,CAAP;AACD;AACF;;AAEDoa,EAAAA,UAAU,CAAC7nB,IAAD,EAA8D;AACtE,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AAIxB,YAAMsrB,MAAM,GAAG,KAAKC,QAAL,CAAc4G,KAAK,IAAI;AACpC,cAAM7O,UAAU,GAAG,KAAKutB,oCAAL,CACjBh4B,KAAE,CAAC7Y,KADc,CAAnB;AAGA,YAAI,KAAKiqB,kBAAL,MAA6B,CAAC,KAAKhiB,KAAL,CAAW4Q,KAAE,CAACxY,KAAd,CAAlC,EAAwD8xB,KAAK;AAC7D,eAAO7O,UAAP;AACD,OANc,CAAf;AAQA,UAAIgI,MAAM,CAAC+G,OAAX,EAAoB;;AAEpB,UAAI,CAAC/G,MAAM,CAACiG,MAAZ,EAAoB;AAClB,YAAIjG,MAAM,CAACE,KAAX,EAAkB,KAAKliB,KAAL,GAAagiB,MAAM,CAACG,SAApB;AAClB9hB,QAAAA,IAAI,CAAC2Z,UAAL,GAAkBgI,MAAM,CAAC3hB,IAAzB;AACD;AACF;;AAED,WAAO,MAAM6nB,UAAN,CAAiB7nB,IAAjB,CAAP;AACD;;AAGD4lB,EAAAA,4BAA4B,CAAClF,KAAD,EAAmB;AAC7C,QAAI,KAAK/H,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzB,UAAIkqB,KAAK,CAAC9f,IAAN,KAAe,YAAnB,EAAiC;AAC/B,aAAKsJ,KAAL,CAAWwW,KAAK,CAAC1iB,KAAjB,EAAwB2kC,QAAQ,CAACU,iBAAjC;AACD;;AAEC3iB,MAAAA,KAAF,CAA6BtQ,QAA7B,GAAwC,IAAxC;AACD;;AACD,UAAMxP,IAAI,GAAG,KAAK6mC,wBAAL,EAAb;AACA,QAAI7mC,IAAJ,EAAU8f,KAAK,CAAC9G,cAAN,GAAuBhZ,IAAvB;AACV,SAAKiZ,gBAAL,CAAsB6G,KAAtB;AAEA,WAAOA,KAAP;AACD;;AAED1Q,EAAAA,YAAY,CAAChQ,IAAD,EAAuB;AACjC,YAAQA,IAAI,CAACY,IAAb;AACE,WAAK,sBAAL;AACE,eAAO,MAAMoP,YAAN,CAAmB,KAAK8Q,mBAAL,CAAyB9gB,IAAzB,CAAnB,CAAP;;AACF,WAAK,qBAAL;AACE,eAAO,MAAMgQ,YAAN,CAAmBhQ,IAAnB,CAAP;;AACF,WAAK,gBAAL;AACA,WAAK,qBAAL;AACA,WAAK,iBAAL;AACEA,QAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAK0D,YAAL,CAAkBhQ,IAAI,CAACsM,UAAvB,CAAlB;AACA,eAAOtM,IAAP;;AACF;AACE,eAAO,MAAMgQ,YAAN,CAAmBhQ,IAAnB,CAAP;AAXJ;AAaD;;AAEDgN,EAAAA,SAAS,CACPC,IADO,EAEPC,WAAyB,GAAG5Q,SAFrB,EAGP6Q,YAHO,EAIPC,kBAJO,EAKD;AACN,YAAQH,IAAI,CAACrM,IAAb;AACE,WAAK,sBAAL;AAIE;;AACF,WAAK,qBAAL;AACE,aAAKoM,SAAL,CACEC,IAAI,CAACsiC,SADP,EAEEriC,WAFF,EAGEC,YAHF,EAIE,oBAJF;AAMA;;AACF,WAAK,gBAAL;AACA,WAAK,qBAAL;AACA,WAAK,iBAAL;AACE,aAAKH,SAAL,CACEC,IAAI,CAACX,UADP,EAEEY,WAFF,EAGEC,YAHF,EAIEC,kBAJF;AAMA;;AACF;AACE,cAAMJ,SAAN,CAAgBC,IAAhB,EAAsBC,WAAtB,EAAmCC,YAAnC,EAAiDC,kBAAjD;AACA;AA1BJ;AA4BD;;AAED+jC,EAAAA,gBAAgB,GAAc;AAC5B,YAAQ,KAAKxxC,KAAL,CAAWiB,IAAnB;AACE,WAAKsO,KAAE,CAACvV,KAAR;AAEE,eAAO,KAAKwf,eAAL,CAAmC,IAAnC,CAAP;;AACF;AACE,eAAO,MAAMg4B,gBAAN,EAAP;AALJ;AAOD;;AAEDC,EAAAA,4BAA4B,CAACnkC,IAAD,EAAmC;AAC7D,QAAI,KAAKqM,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1B,YAAM0P,aAAa,GAAG,KAAKyc,oBAAL,EAAtB;;AAEA,UAAI,KAAKnnC,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAJ,EAA2B;AACzB,cAAMkxB,IAAI,GAAG,MAAMiqB,4BAAN,CAAmCnkC,IAAnC,CAAb;AACAka,QAAAA,IAAI,CAACnY,cAAL,GAAsBga,aAAtB;AACA,eAAO7B,IAAP;AACD;;AAED,WAAKzM,UAAL,CAAgB,KAAK/a,KAAL,CAAW3B,KAA3B,EAAkCkR,KAAE,CAACjZ,MAArC;AACD;;AAED,WAAO,MAAMm7C,4BAAN,CAAmCnkC,IAAnC,CAAP;AACD;;AAODiY,EAAAA,aAAa,GAAY;AACvB,WAAO,KAAK5L,YAAL,CAAkB,GAAlB,KAA0B,MAAM4L,aAAN,EAAjC;AACD;;AAEDC,EAAAA,eAAe,GAAY;AACzB,WACE,KAAK7mB,KAAL,CAAW4Q,KAAE,CAAC7X,IAAd,KAAuB,KAAKiH,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAvB,IAA+C,MAAM8uB,eAAN,EADjD;AAGD;;AAEDU,EAAAA,iBAAiB,CAAC,GAAGiqB,IAAJ,EAAqB;AACpC,UAAM9vC,IAAI,GAAG,MAAM6lB,iBAAN,CAAwB,GAAGiqB,IAA3B,CAAb;;AAEA,QACE9vC,IAAI,CAACY,IAAL,KAAc,mBAAd,IACAZ,IAAI,CAAC4Z,cADL,IAEA5Z,IAAI,CAAC4c,KAAL,CAAW5e,KAAX,GAAmBgC,IAAI,CAAC4Z,cAAL,CAAoB5b,KAHzC,EAIE;AACA,WAAKkM,KAAL,CACElK,IAAI,CAAC4Z,cAAL,CAAoB5b,KADtB,EAEE2kC,QAAQ,CAACc,yBAFX;AAID;;AAED,WAAOzjC,IAAP;AACD;;AAGDukB,EAAAA,gBAAgB,CAAC/mB,IAAD,EAAqB;AACnC,QAAI,KAAKmC,KAAL,CAAWwY,MAAX,KAAsB3a,IAAI,KAAK,EAAT,IAAeA,IAAI,KAAK,EAA9C,CAAJ,EAAuD;AACrD,aAAO,KAAKinB,QAAL,CAAcvV,KAAE,CAACnX,UAAjB,EAA6B,CAA7B,CAAP;AACD,KAFD,MAEO;AACL,aAAO,MAAMwsB,gBAAN,CAAuB/mB,IAAvB,CAAP;AACD;AACF;;AAEDwlB,EAAAA,gBAAgB,CAACzS,QAAD,EAAsD;AACpE,SAAK,IAAInQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmQ,QAAQ,CAAClR,MAA7B,EAAqCe,CAAC,EAAtC,EAA0C;AACxC,YAAM6M,IAAI,GAAGsD,QAAQ,CAACnQ,CAAD,CAArB;AACA,UAAI,CAAC6M,IAAL,EAAW;;AACX,cAAQA,IAAI,CAACrM,IAAb;AACE,aAAK,sBAAL;AACE2P,UAAAA,QAAQ,CAACnQ,CAAD,CAAR,GAAc,KAAK0gB,mBAAL,CAAyB7T,IAAzB,CAAd;AACA;;AACF,aAAK,gBAAL;AACA,aAAK,iBAAL;AACE,cAAI,CAAC,KAAKtN,KAAL,CAAWgvC,sBAAhB,EAAwC;AACtCp+B,YAAAA,QAAQ,CAACnQ,CAAD,CAAR,GAAc,KAAK0gB,mBAAL,CAAyB7T,IAAzB,CAAd;AACD,WAFD,MAEO;AACL,iBAAK/C,KAAL,CAAW+C,IAAI,CAACjP,KAAhB,EAAuB2kC,QAAQ,CAACiB,6BAAhC;AACD;;AACD;AAXJ;AAaD;;AACD,WAAO,MAAM5gB,gBAAN,CAAuB,GAAG5hB,SAA1B,CAAP;AACD;;AAED0f,EAAAA,mBAAmB,CAAC9gB,IAAD,EAAuC;AACxDA,IAAAA,IAAI,CAACsM,UAAL,CAAgBsN,cAAhB,GAAiC5Z,IAAI,CAAC4Z,cAAtC;AAEA,SAAKC,gBAAL,CACE7Z,IAAI,CAACsM,UADP,EAEEtM,IAAI,CAAC4Z,cAAL,CAAoB3b,GAFtB,EAGE+B,IAAI,CAAC4Z,cAAL,CAAoBla,GAApB,CAAwBzB,GAH1B;AAMA,WAAO+B,IAAI,CAACsM,UAAZ;AACD;;AAEDyY,EAAAA,gBAAgB,CACdxU,QADc,EAEd8gC,UAFc,EAGiB;AAC/B,SAAK,IAAIjxC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmQ,QAAQ,CAAClR,MAA7B,EAAqCe,CAAC,EAAtC,EAA0C;AACxC,YAAM6M,IAAI,GAAGsD,QAAQ,CAACnQ,CAAD,CAArB;;AACA,UAAI6M,IAAI,IAAIA,IAAI,CAACrM,IAAL,KAAc,sBAA1B,EAAkD;AAChD,aAAKsJ,KAAL,CAAW+C,IAAI,CAACjP,KAAhB,EAAuB2kC,QAAQ,CAACgB,wBAAhC;AACD;AACF;;AAED,WAAOpzB,QAAP;AACD;;AAEDuX,EAAAA,gBAAgB,GAAG;AACjB,WAAO,KAAKxpB,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,KAAwB,MAAMyxB,gBAAN,EAA/B;AACD;;AAEDV,EAAAA,qBAAqB,GAAY;AAC/B,WAAO,KAAK9oB,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,KAAwB,MAAM+wB,qBAAN,EAA/B;AACD;;AAEDkqB,EAAAA,uBAAuB,GAAG;AAExB,WAAO,MAAMA,uBAAN,MAAmC,KAAKf,eAAL,EAA1C;AACD;;AAEDrR,EAAAA,+BAA+B,CAC7Bl/B,IAD6B,EAER;AACrB,QAAI,KAAKsZ,YAAL,CAAkB,GAAlB,CAAJ,EAA4B;AAC1B,YAAM0P,aAAa,GAAG,KAAKykB,kBAAL,CAAwB,MAC5C,KAAKhI,oBAAL,EADoB,CAAtB;AAGA,UAAIzc,aAAJ,EAAmBhpB,IAAI,CAACgP,cAAL,GAAsBga,aAAtB;AACpB;;AACD,WAAO,MAAMkW,+BAAN,CAAsCl/B,IAAtC,CAAP;AACD;;AAEDuxC,EAAAA,iCAAiC,CAC/BpmC,MAD+B,EAEvB;AACR,UAAMqmC,SAAS,GAAG,MAAMD,iCAAN,CAAwCpmC,MAAxC,CAAlB;AACA,UAAMsmC,UAAU,GAAGtmC,MAAM,CAACf,MAAP,CAAc,CAAd,CAAnB;AACA,UAAMsnC,eAAe,GACnBD,UAAU,IACVA,UAAU,CAAC7wC,IAAX,KAAoB,YADpB,IAEA6wC,UAAU,CAAC78C,IAAX,KAAoB,MAHtB;AAKA,WAAO88C,eAAe,GAAGF,SAAS,GAAG,CAAf,GAAmBA,SAAzC;AACD;;AAt+EsB,CAD3B;;ACvHAtiC,KAAE,CAACyiC,WAAH,GAAiB,IAAI19C,SAAJ,CAAc,IAAd,EAAoB;AAAEL,EAAAA,UAAU,EAAE;AAAd,CAApB,CAAjB;AAyCA,oBAAgBwX,UAAD,IACb,cAAcA,UAAd,CAAyB;AACvBwmC,EAAAA,gBAAgB,CACdC,YADc,EAE8B;AAC5C,QAAI,KAAKvzC,KAAL,CAAW4Q,KAAE,CAACyiC,WAAd,CAAJ,EAAgC;AAC9B,YAAM3xC,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,WAAKsE,IAAL;AACA,WAAK89B,aAAL,CAAmB,kCAAnB;AAIA9xC,MAAAA,IAAI,CAACpL,IAAL,GAAY,MAAMukB,eAAN,CAAoC,IAApC,CAAZ;AAEA,WAAK24B,aAAL,CAAmB,kCAAnB;AACA,WAAK15B,MAAL,CAAYlJ,KAAE,CAACyiC,WAAf;AACA,aAAO,KAAKI,iBAAL,CAAuB/xC,IAAvB,EAA6B6xC,YAA7B,CAAP;AACD;AACF;;AAEDE,EAAAA,iBAAiB,CACf/xC,IADe,EAEf6xC,YAFe,EAG2B;AAC1C,UAAMG,UAAU,GAAG,CAAC,EAAEhyC,IAAI,CAAC6xC,YAAL,IAAqB7xC,IAAI,CAACY,IAAL,KAAc,aAArC,CAApB;AACAZ,IAAAA,IAAI,CAAC6xC,YAAL,GAAoBA,YAApB;AAEA,WAAOG,UAAU,GAAGhyC,IAAH,GAAU,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CAA3B;AACD;;AAMDukB,EAAAA,gBAAgB,CAAC/mB,IAAD,EAAe;AAC7B,QACEA,IAAI,OAAJ,IACA,KAAKW,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QAFF,EAGE;AACA,aAAO,KAAK8a,QAAL,CAAcvV,KAAE,CAACyiC,WAAjB,EAA8B,CAA9B,CAAP;AACD;;AAED,WAAO,MAAMptB,gBAAN,CAAuB,GAAGnjB,SAA1B,CAAP;AACD;;AAMD6N,EAAAA,aAAa,GAAmC;AAC9C,WACE,KAAK2iC,gBAAL,CAAsB,YAAtB,KAAuC,MAAM3iC,aAAN,CAAoB,GAAG7N,SAAvB,CADzC;AAGD;;AAED+X,EAAAA,eAAe,GAAmC;AAKhD,WACE,KAAKy4B,gBAAL,CAAsB,YAAtB,KACA,MAAMz4B,eAAN,CAAsB,GAAG/X,SAAzB,CAFF;AAID;;AAED0lB,EAAAA,iBAAiB,CAACvT,IAAD,EAAqB;AAIpC,QAAIA,IAAI,KAAK7S,SAAb,EAAwB,MAAMomB,iBAAN,CAAwB,GAAG1lB,SAA3B;AACzB;;AAMD+vC,EAAAA,gBAAgB,GAAgC;AAC9C,WACE,KAAKS,gBAAL,CAAsB,SAAtB,KAAoC,MAAMT,gBAAN,CAAuB,GAAG/vC,SAA1B,CADtC;AAGD;;AAED4L,EAAAA,SAAS,CAACC,IAAD,EAA2B;AAClC,QAAIA,IAAI,CAACrM,IAAL,KAAc,aAAlB,EAAiC,MAAMoM,SAAN,CAAgB,GAAG5L,SAAnB;AAClC;;AAED4O,EAAAA,YAAY,CAAChQ,IAAD,EAAuB;AACjC,QACEA,IAAI,IACJA,IAAI,CAACY,IAAL,KAAc,aADd,IAEAZ,IAAI,CAAC6xC,YAAL,KAAsB,YAHxB,EAIE;AACA7xC,MAAAA,IAAI,CAAC6xC,YAAL,GAAoB,SAApB;AACA,aAAO7xC,IAAP;AACD;;AACD,WAAO,MAAMgQ,YAAN,CAAmB,GAAG5O,SAAtB,CAAP;AACD;;AAMD6wC,EAAAA,mBAAmB,CAACjyC,IAAD,EAA+C;AAChE,QAAIA,IAAI,CAAC7L,KAAL,IAAc6L,IAAI,CAAC7L,KAAL,CAAWyM,IAAX,KAAoB,aAAtC,EAAqD;AACrD,UAAMqxC,mBAAN,CAA0B,GAAG7wC,SAA7B;AACD;;AAEDggB,EAAAA,wBAAwB,CACtBphB,IADsB,EAEtBiN,IAFsB,EAGS;AAC/B,QACEA,IAAI,CAACrM,IAAL,KAAc,aAAd,IACCqM,IAAI,CAACT,KAAL,IAAcS,IAAI,CAACT,KAAL,CAAWwB,aAF5B,EAGE;AACA,aAAO,MAAMoT,wBAAN,CAA+B,GAAGhgB,SAAlC,CAAP;AACD;;AAED,QAAI,KAAK9C,KAAL,CAAW4Q,KAAE,CAAC7Y,KAAd,CAAJ,EAA0B;AACxB,YAAM+V,IAAwB,GAAGpM,IAAjC;AACAoM,MAAAA,IAAI,CAACjY,KAAL,GAAa,KAAK49C,iBAAL,CAAuB9kC,IAAvB,EAA6B,YAA7B,CAAb;AACA,WAAK+G,IAAL;AACA5H,MAAAA,IAAI,CAACvL,IAAL,GAAY,KAAKqgB,cAAL,CAAoB,OAApB,CAAZ;AACA,aAAO,KAAKvR,UAAL,CAAgBvD,IAAhB,EAAsB,kBAAtB,CAAP;AACD;;AAED,SAAK0N,SAAL;AAEA9Z,IAAAA,IAAI,CAACpL,IAAL,GAAYqY,IAAI,CAACrY,IAAjB;AACA,WAAO,KAAKm9C,iBAAL,CAAuB/xC,IAAvB,EAA6B,WAA7B,CAAP;AACD;;AAEDkyC,EAAAA,UAAU,GAAuC;AAC/C,WACE,KAAKN,gBAAL,CAAsB,gBAAtB,KACA,MAAMM,UAAN,CAAiB,GAAG9wC,SAApB,CAFF;AAID;;AAED+wC,EAAAA,eAAe,GAAoC;AACjD,WACE,KAAKP,gBAAL,CAAsB,YAAtB,KACA,MAAMO,eAAN,CAAsB,GAAG/wC,SAAzB,CAFF;AAID;;AAED2sC,EAAAA,UAAU,CACR/tC,IADQ,EAERikB,WAFQ,EAGRC,UAHQ,EAIL;AACH,UAAMtjB,IAAI,GAAGqjB,WAAW,GAAG,kBAAH,GAAwB,iBAAhD;AAEA,SAAKjQ,IAAL;AACA,SAAKo+B,cAAL,CAAoBpyC,IAApB;AAEA,UAAM2xC,WAAW,GAAG,KAAKC,gBAAL,CAAsB,YAAtB,CAApB;;AACA,QAAID,WAAJ,EAAiB;AACf,UACE,KAAKrzC,KAAL,CAAW4Q,KAAE,CAACpV,QAAd,KACA,KAAKwE,KAAL,CAAW4Q,KAAE,CAACyiC,WAAd,CADA,IAEA,KAAKrzC,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAHF,EAIE;AACAoK,QAAAA,IAAI,CAACkZ,EAAL,GAAUy4B,WAAV;AACD,OAND,MAMO,IAAIztB,UAAU,IAAI,CAACD,WAAnB,EAAgC;AACrCjkB,QAAAA,IAAI,CAACkZ,EAAL,GAAU,IAAV;AACAlZ,QAAAA,IAAI,CAACa,IAAL,GAAY,KAAKkxC,iBAAL,CAAuBJ,WAAvB,EAAoC,WAApC,CAAZ;AACA,eAAO,KAAKhiC,UAAL,CAAgB3P,IAAhB,EAAsBY,IAAtB,CAAP;AACD,OAJM,MAIA;AACL,aAAK8Z,UAAL,CAAgB,IAAhB,EAAsB,0BAAtB;AACD;AACF,KAdD,MAcO;AACL,WAAKsJ,YAAL,CAAkBhkB,IAAlB,EAAwBikB,WAAxB,EAAqCC,UAArC;AACD;;AAED,SAAKoB,eAAL,CAAqBtlB,IAArB;AACAA,IAAAA,IAAI,CAACa,IAAL,GACE,KAAK+wC,gBAAL,CAAsB,WAAtB,KACA,KAAKS,cAAL,CAAoB,CAAC,CAACryC,IAAI,CAACoL,UAA3B,CAFF;AAGA,WAAO,KAAKuE,UAAL,CAAgB3P,IAAhB,EAAsBY,IAAtB,CAAP;AACD;;AAED6P,EAAAA,WAAW,CAACzQ,IAAD,EAAuB;AAChC,UAAM2xC,WAAW,GAAG,KAAKC,gBAAL,CAAsB,YAAtB,CAApB;AACA,QAAI,CAACD,WAAL,EAAkB,OAAO,MAAMlhC,WAAN,CAAkB,GAAGrP,SAArB,CAAP;;AAElB,QAAI,CAAC,KAAKiZ,YAAL,CAAkB,MAAlB,CAAD,IAA8B,CAAC,KAAK/b,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,CAAnC,EAAyD;AAEvD6J,MAAAA,IAAI,CAAC2Q,UAAL,GAAkB,EAAlB;AACA3Q,MAAAA,IAAI,CAAC1C,MAAL,GAAc,IAAd;AACA0C,MAAAA,IAAI,CAAC4W,WAAL,GAAmB,KAAKm7B,iBAAL,CAAuBJ,WAAvB,EAAoC,aAApC,CAAnB;AACA,aAAO,KAAKhiC,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AAGD,SAAKsyC,YAAL,CAAkB,mBAAlB;AACA,UAAMrsB,SAAS,GAAG,KAAKvW,SAAL,EAAlB;AACAuW,IAAAA,SAAS,CAACvV,QAAV,GAAqBihC,WAArB;AACA3xC,IAAAA,IAAI,CAAC2Q,UAAL,GAAkB,CAAC,KAAKhB,UAAL,CAAgBsW,SAAhB,EAA2B,wBAA3B,CAAD,CAAlB;AAEA,WAAO,MAAMxV,WAAN,CAAkBzQ,IAAlB,CAAP;AACD;;AAEDuyC,EAAAA,gCAAgC,CAACvyC,IAAD,EAAwB;AACtD,QAAIA,IAAI,CAAC2Q,UAAL,IAAmB3Q,IAAI,CAAC2Q,UAAL,CAAgBtR,MAAhB,GAAyB,CAAhD,EAAmD;AAEjD,aAAO,IAAP;AACD;;AACD,WAAO,MAAMkzC,gCAAN,CAAuC,GAAGnxC,SAA1C,CAAP;AACD;;AAEDoxC,EAAAA,WAAW,CAACxyC,IAAD,EAAuC;AAChD,UAAM;AAAE2Q,MAAAA;AAAF,QAAiB3Q,IAAvB;;AACA,QAAI2Q,UAAU,IAAIA,UAAU,CAACtR,MAA7B,EAAqC;AACnCW,MAAAA,IAAI,CAAC2Q,UAAL,GAAkBA,UAAU,CAAC8hC,MAAX,CAChBzyC,IAAI,IAAIA,IAAI,CAAC0Q,QAAL,CAAc9P,IAAd,KAAuB,aADf,CAAlB;AAGD;;AACD,UAAM4xC,WAAN,CAAkBxyC,IAAlB;AACAA,IAAAA,IAAI,CAAC2Q,UAAL,GAAkBA,UAAlB;AACD;;AAEDqK,EAAAA,WAAW,CACThb,IADS,EAE0C;AACnD,UAAM2xC,WAAW,GAAG,KAAKC,gBAAL,CAAsB,YAAtB,CAApB;AACA,QAAI,CAACD,WAAL,EAAkB,OAAO,MAAM32B,WAAN,CAAkB,GAAG5Z,SAArB,CAAP;AAElBpB,IAAAA,IAAI,CAAC2Q,UAAL,GAAkB,EAAlB;;AAEA,QAAI,CAAC,KAAK0J,YAAL,CAAkB,MAAlB,CAAD,IAA8B,CAAC,KAAK/b,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,CAAnC,EAAyD;AAEvD6J,MAAAA,IAAI,CAAC1C,MAAL,GAAc,KAAKy0C,iBAAL,CAAuBJ,WAAvB,EAAoC,eAApC,CAAd;AACA,WAAK73B,SAAL;AACA,aAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAGD,UAAMimB,SAAS,GAAG,KAAK0f,eAAL,CAAqBgM,WAArB,CAAlB;AACA1rB,IAAAA,SAAS,CAACC,KAAV,GAAkByrB,WAAlB;AACA,SAAKhiC,UAAL,CAAgBsW,SAAhB,EAA2B,wBAA3B;AACAjmB,IAAAA,IAAI,CAAC2Q,UAAL,CAAgB9Q,IAAhB,CAAqBomB,SAArB;;AAEA,QAAI,KAAKtN,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAAJ,EAAwB;AAEtB,YAAMu8C,aAAa,GAAG,KAAKC,6BAAL,CAAmC3yC,IAAnC,CAAtB;AAGA,UAAI,CAAC0yC,aAAL,EAAoB,KAAKE,0BAAL,CAAgC5yC,IAAhC;AACrB;;AAED,SAAK0Y,gBAAL,CAAsB,MAAtB;AACA1Y,IAAAA,IAAI,CAAC1C,MAAL,GAAc,KAAKu1C,iBAAL,EAAd;AACA,SAAK/4B,SAAL;AACA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAED6yC,EAAAA,iBAAiB,GAAsC;AAGrD,WACE,KAAKjB,gBAAL,CAAsB,eAAtB,KACA,MAAMiB,iBAAN,CAAwB,GAAGzxC,SAA3B,CAFF;AAID;;AAxQsB,CAD3B;;AC7CA,mBAAgBgK,UAAD,IACb,cAAcA,UAAd,CAAyB;AACvB0nC,EAAAA,gBAAgB,GAAiB;AAC/B,QAAI,KAAKx0C,KAAL,CAAW4Q,KAAE,CAAChX,MAAd,CAAJ,EAA2B;AACzB,YAAM66C,gBAAgB,GAAG,KAAKpzC,KAAL,CAAW3B,KAApC;AAEA,YAAMgC,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,WAAKiJ,GAAL,CAASzJ,KAAE,CAAChX,MAAZ;;AACA,UAAI,KAAKoG,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAJ,EAAyB;AACvB,cAAMA,IAAI,GAAG,KAAK0xC,mBAAL,CAAyB,KAAK3mC,KAAL,CAAW3B,KAApC,CAAb;AACA,cAAMg1C,UAAU,GAAG,KAAK5yB,gBAAL,CAAsBpgB,IAAtB,EAA4BpL,IAA5B,CAAnB;AACAo+C,QAAAA,UAAU,CAACpyC,IAAX,GAAkB,uBAAlB;;AACA,YAAI,KAAKtC,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAJ,EAA2B;AACzB,iBAAO+8C,UAAP;AACD;AACF;;AACD,WAAKt4B,UAAL,CAAgBq4B,gBAAhB;AACD;AACF;;AAMD9jC,EAAAA,aAAa,GAAiB;AAC5B,WAAO,KAAK6jC,gBAAL,MAA2B,MAAM7jC,aAAN,CAAoB,GAAG7N,SAAvB,CAAlC;AACD;;AAzBsB,CAD3B;;ACMO,SAASvC,SAAT,CAAmBC,OAAnB,EAAwClK,IAAxC,EAA+D;AACpE,SAAOkK,OAAO,CAACm0C,IAAR,CAAah0C,MAAM,IAAI;AAC5B,QAAIi0C,KAAK,CAACC,OAAN,CAAcl0C,MAAd,CAAJ,EAA2B;AACzB,aAAOA,MAAM,CAAC,CAAD,CAAN,KAAcrK,IAArB;AACD,KAFD,MAEO;AACL,aAAOqK,MAAM,KAAKrK,IAAlB;AACD;AACF,GANM,CAAP;AAOD;AAED,AAAO,SAASoK,eAAT,CACLF,OADK,EAELlK,IAFK,EAGLw+C,MAHK,EAIL;AACA,QAAMn0C,MAAM,GAAGH,OAAO,CAACorC,IAAR,CAAajrC,MAAM,IAAI;AACpC,QAAIi0C,KAAK,CAACC,OAAN,CAAcl0C,MAAd,CAAJ,EAA2B;AACzB,aAAOA,MAAM,CAAC,CAAD,CAAN,KAAcrK,IAArB;AACD,KAFD,MAEO;AACL,aAAOqK,MAAM,KAAKrK,IAAlB;AACD;AACF,GANc,CAAf;;AAQA,MAAIqK,MAAM,IAAIi0C,KAAK,CAACC,OAAN,CAAcl0C,MAAd,CAAd,EAAqC;AACnC,WAAOA,MAAM,CAAC,CAAD,CAAN,CAAUm0C,MAAV,CAAP;AACD;;AAED,SAAO,IAAP;AACD;AAED,MAAMC,kBAAkB,GAAG,CAAC,SAAD,EAAY,OAAZ,EAAqB,QAArB,CAA3B;AACA,MAAMC,6BAA6B,GAAG,CAAC,MAAD,EAAS,KAAT,CAAtC;AAEA,AAAO,SAASC,eAAT,CAAyBz0C,OAAzB,EAA8C;AACnD,MAAID,SAAS,CAACC,OAAD,EAAU,YAAV,CAAb,EAAsC;AACpC,QAAID,SAAS,CAACC,OAAD,EAAU,mBAAV,CAAb,EAA6C;AAC3C,YAAM,IAAIiZ,KAAJ,CACJ,iEADI,CAAN;AAGD;;AAED,UAAMy7B,sBAAsB,GAAGx0C,eAAe,CAC5CF,OAD4C,EAE5C,YAF4C,EAG5C,wBAH4C,CAA9C;;AAKA,QAAI00C,sBAAsB,IAAI,IAA9B,EAAoC;AAClC,YAAM,IAAIz7B,KAAJ,CACJ,wEACE,2DADF,GAEE,kEAFF,GAGE,qEAJE,CAAN;AAMD,KAPD,MAOO,IAAI,OAAOy7B,sBAAP,KAAkC,SAAtC,EAAiD;AACtD,YAAM,IAAIz7B,KAAJ,CAAU,6CAAV,CAAN;AACD;AACF;;AAED,MAAIlZ,SAAS,CAACC,OAAD,EAAU,MAAV,CAAT,IAA8BD,SAAS,CAACC,OAAD,EAAU,YAAV,CAA3C,EAAoE;AAClE,UAAM,IAAIiZ,KAAJ,CAAU,6CAAV,CAAN;AACD;;AAED,MAAIlZ,SAAS,CAACC,OAAD,EAAU,cAAV,CAAT,IAAsCD,SAAS,CAACC,OAAD,EAAU,aAAV,CAAnD,EAA6E;AAC3E,UAAM,IAAIiZ,KAAJ,CAAU,sDAAV,CAAN;AACD;;AAED,MACElZ,SAAS,CAACC,OAAD,EAAU,kBAAV,CAAT,IACA,CAACu0C,kBAAkB,CAACrpB,QAAnB,CACChrB,eAAe,CAACF,OAAD,EAAU,kBAAV,EAA8B,UAA9B,CADhB,CAFH,EAKE;AACA,UAAM,IAAIiZ,KAAJ,CACJ,iFACEs7B,kBAAkB,CAAC9kC,GAAnB,CAAuB8C,CAAC,IAAK,IAAGA,CAAE,GAAlC,EAAsCoiC,IAAtC,CAA2C,IAA3C,CAFE,CAAN;AAID;;AAED,MACE50C,SAAS,CAACC,OAAD,EAAU,gBAAV,CAAT,IACA,CAACw0C,6BAA6B,CAACtpB,QAA9B,CACChrB,eAAe,CAACF,OAAD,EAAU,gBAAV,EAA4B,YAA5B,CADhB,CAFH,EAKE;AACA,UAAM,IAAIiZ,KAAJ,CACJ,iFACEu7B,6BAA6B,CAAC/kC,GAA9B,CAAkC8C,CAAC,IAAK,IAAGA,CAAE,GAA7C,EAAiDoiC,IAAjD,CAAsD,IAAtD,CAFE,CAAN;AAID;AACF;AAID,AAQO,MAAMC,YAA6C,GAAG;AAC3DC,EAAAA,MAD2D;AAE3DrsB,EAAAA,GAF2D;AAG3DssB,EAAAA,IAH2D;AAI3DC,EAAAA,UAJ2D;AAK3DC,EAAAA,WAL2D;AAM3DC,EAAAA;AAN2D,CAAtD;AASP,AAAO,MAAMC,gBAAwC,GAAGxyC,MAAM,CAACyyC,IAAP,CACtDP,YADsD,CAAjD;;AC9FA,MAAMQ,cAAuB,GAAG;AAErCC,EAAAA,UAAU,EAAE,QAFyB;AAIrCC,EAAAA,cAAc,EAAE1zC,SAJqB;AAOrC2zC,EAAAA,SAAS,EAAE,CAP0B;AAUrCC,EAAAA,yBAAyB,EAAE,KAVU;AAarCC,EAAAA,0BAA0B,EAAE,KAbS;AAgBrCC,EAAAA,2BAA2B,EAAE,KAhBQ;AAkBrCC,EAAAA,uBAAuB,EAAE,KAlBY;AAoBrCC,EAAAA,sBAAsB,EAAE,KApBa;AAsBrC51C,EAAAA,OAAO,EAAE,EAtB4B;AAwBrC61C,EAAAA,UAAU,EAAE,IAxByB;AAiCrCC,EAAAA,MAAM,EAAE,KAjC6B;AAmCrCC,EAAAA,MAAM,EAAE,KAnC6B;AAsCrCC,EAAAA,8BAA8B,EAAE,KAtCK;AAyCrChqC,EAAAA,aAAa,EAAE;AAzCsB,CAAhC;AA8CP,AAAO,SAASiqC,UAAT,CAAoBC,IAApB,EAA6C;AAClD,QAAMngD,OAAY,GAAG,EAArB;;AADkD,kCAEhC2M,MAAM,CAACyyC,IAAP,CAAYC,cAAZ,CAFgC,kCAEH;AAA1C,UAAMtmC,GAAG,mBAAT;AACH/Y,IAAAA,OAAO,CAAC+Y,GAAD,CAAP,GAAeonC,IAAI,IAAIA,IAAI,CAACpnC,GAAD,CAAJ,IAAa,IAArB,GAA4BonC,IAAI,CAACpnC,GAAD,CAAhC,GAAwCsmC,cAAc,CAACtmC,GAAD,CAArE;AACD;;AACD,SAAO/Y,OAAP;AACD;;ACxDc,MAAMogD,KAAN,CAAY;AAAA;AAAA,SAiBzBjqC,MAjByB,GAiBD,EAjBC;AAAA,SAoBzBkqC,gBApByB,GAoBE,CAAC,CApBH;AAAA,SA0BzBjzB,SA1ByB,GA0BH,EA1BG;AAAA,SAkCzBS,yBAlCyB,GAkCa,EAlCb;AAAA,SAqCzByyB,YArCyB,GAqCD,KArCC;AAAA,SAsCzBxG,sBAtCyB,GAsCS,KAtCT;AAAA,SA2CzByG,qBA3CyB,GA2CQ,KA3CR;AAAA,SA4CzBC,UA5CyB,GA4CH,KA5CG;AAAA,SA6CzBl9B,MA7CyB,GA6CP,KA7CO;AAAA,SA8CzByF,kBA9CyB,GA8CK,KA9CL;AAAA,SA+CzBkiB,cA/CyB,GA+CC,KA/CD;AAAA,SAgDzBzW,cAhDyB,GAgDC,KAhDD;AAAA,SAiDzBpX,UAjDyB,GAiDH,KAjDG;AAAA,SAoDzBqjC,YApDyB,GAoDS;AAChCC,MAAAA,wBAAwB,EAAE,CADM;AAEhCC,MAAAA,aAAa,EAAE;AAFiB,KApDT;AAAA,SA0DzBC,SA1DyB,GA0DJ,KA1DI;AAAA,SA2DzBC,0BA3DyB,GA2Da,KA3Db;AAAA,SA8DzBC,MA9DyB,GAkEpB,EAlEoB;AAAA,SAuEzBC,cAvEyB,GAuEmB,CAAC,EAAD,CAvEnB;AAAA,SA0EzB/G,QA1EyB,GA0EN,CAAC,CA1EK;AAAA,SA2EzBE,QA3EyB,GA2EN,CAAC,CA3EK;AAAA,SA8EzB8G,QA9EyB,GA8EI,EA9EJ;AAAA,SAiFzBj2C,gBAjFyB,GAiFY,EAjFZ;AAAA,SAkFzBE,eAlFyB,GAkFW,EAlFX;AAAA,SAmFzBgB,YAnFyB,GAwFpB,EAxFoB;AAAA,SA0FzBR,mBA1FyB,GA0FK,IA1FL;AAAA,SA6FzBqJ,GA7FyB,GA6FX,CA7FW;AAAA,SA8FzBtL,SA9FyB,GA8FL,CA9FK;AAAA,SAkGzBuC,IAlGyB,GAkGPsO,KAAE,CAAC5Z,GAlGI;AAAA,SAqGzBsW,KArGyB,GAqGZ,IArGY;AAAA,SAwGzB5N,KAxGyB,GAwGT,CAxGS;AAAA,SAyGzBC,GAzGyB,GAyGX,CAzGW;AAAA,SA6GzBgM,aA7GyB,GA6GC,IA7GD;AAAA,SA+GzBH,eA/GyB,GA+GG,IA/GH;AAAA,SAgHzBD,YAhHyB,GAgHF,CAhHE;AAAA,SAiHzBG,UAjHyB,GAiHJ,CAjHI;AAAA,SAsHzByH,OAtHyB,GAsHI,CAACy/B,OAAE,CAAClgC,cAAJ,CAtHJ;AAAA,SAuHzBU,WAvHyB,GAuHF,IAvHE;AAAA,SA4HzB5B,WA5HyB,GA4HF,KA5HE;AAAA,SAiIzBgmC,cAjIyB,GAiIE,EAjIF;AAAA,SAqIzBC,mBArIyB,GAqIY,EArIZ;AAAA,SAwIzBC,YAxIyB,GAwIF,CAxIE;AAAA;;AASzB3qB,EAAAA,IAAI,CAACx2B,OAAD,EAAyB;AAC3B,SAAKoe,MAAL,GACEpe,OAAO,CAAC8/C,UAAR,KAAuB,KAAvB,GAA+B,KAA/B,GAAuC9/C,OAAO,CAACs/C,UAAR,KAAuB,QADhE;AAGA,SAAKtW,OAAL,GAAehpC,OAAO,CAACw/C,SAAvB;AACA,SAAKzqC,QAAL,GAAgB,KAAKG,MAAL,GAAc,KAAKksC,WAAL,EAA9B;AACD;;AA2HDA,EAAAA,WAAW,GAAa;AACtB,WAAO,IAAIt4C,QAAJ,CAAa,KAAKkgC,OAAlB,EAA2B,KAAKl0B,GAAL,GAAW,KAAKtL,SAA3C,CAAP;AACD;;AAED0jB,EAAAA,KAAK,CAACm0B,UAAD,EAA8B;AACjC,UAAMv2C,KAAK,GAAG,IAAIs1C,KAAJ,EAAd;AACA,UAAMhB,IAAI,GAAGzyC,MAAM,CAACyyC,IAAP,CAAY,IAAZ,CAAb;;AACA,SAAK,IAAI7zC,CAAC,GAAG,CAAR,EAAWf,MAAM,GAAG40C,IAAI,CAAC50C,MAA9B,EAAsCe,CAAC,GAAGf,MAA1C,EAAkDe,CAAC,EAAnD,EAAuD;AACrD,YAAMwN,GAAG,GAAGqmC,IAAI,CAAC7zC,CAAD,CAAhB;AAEA,UAAIyX,GAAG,GAAG,KAAKjK,GAAL,CAAV;;AAEA,UAAI,CAACsoC,UAAD,IAAehD,KAAK,CAACC,OAAN,CAAct7B,GAAd,CAAnB,EAAuC;AACrCA,QAAAA,GAAG,GAAGA,GAAG,CAACxW,KAAJ,EAAN;AACD;;AAGD1B,MAAAA,KAAK,CAACiO,GAAD,CAAL,GAAaiK,GAAb;AACD;;AAED,WAAOlY,KAAP;AACD;;AA/JwB;;eCtB3B,SAASw2C,OAAT,CAAiB34C,IAAjB,EAAuB;AACrB,SAAOA,IAAI,MAAJ,IAAkBA,IAAI,MAA7B;AACD;AAkBD,MAAM44C,iBAAiB,GAAG,IAAIjjC,GAAJ,CAAQ,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,CAAR,CAA1B;AAKA,MAAMkjC,iCAAiC,GAAG;AACxCC,EAAAA,SAAS,EAAE,kCAD6B;AAWxCC,EAAAA,GAAG,EAAE;AAXmC,CAA1C;AAmBA,MAAMC,+BAA+B,GAAG,EAAxC;AACAA,+BAA+B,CAACC,GAAhC,GAAsC,QAAtC;AAKAD,+BAA+B,CAACE,GAAhC,GAAsC,CAEpC,GAAGF,+BAA+B,CAACC,GAFC,yBAAtC;AAWAD,+BAA+B,CAACG,GAAhC,GAAsC,CAEpC,GAAGH,+BAA+B,CAACE,GAFC,SAAtC;AAQAF,+BAA+B,CAACD,GAAhC,GAAsC,CAEpC,GAAGC,+BAA+B,CAACG,GAFC,oDAAtC;AAuBA,AAAO,MAAMC,KAAN,CAAY;AACjB1iD,EAAAA,WAAW,CAACyL,KAAD,EAAe;AACxB,SAAKiB,IAAL,GAAYjB,KAAK,CAACiB,IAAlB;AACA,SAAKgL,KAAL,GAAajM,KAAK,CAACiM,KAAnB;AACA,SAAK5N,KAAL,GAAa2B,KAAK,CAAC3B,KAAnB;AACA,SAAKC,GAAL,GAAW0B,KAAK,CAAC1B,GAAjB;AACA,SAAKyB,GAAL,GAAW,IAAI3B,cAAJ,CAAmB4B,KAAK,CAACiK,QAAzB,EAAmCjK,KAAK,CAACoK,MAAzC,CAAX;AACD;;AAPgB;AAkBnB,AAAe,MAAM8sC,SAAN,SAAwBptC,cAAxB,CAAuC;AAYpDvV,EAAAA,WAAW,CAACW,OAAD,EAAmBsJ,KAAnB,EAAkC;AAC3C;AAD2C,SAF7C02C,MAE6C,GAFV,EAEU;AAE3C,SAAKl1C,KAAL,GAAa,IAAIs1C,KAAJ,EAAb;AACA,SAAKt1C,KAAL,CAAW0rB,IAAX,CAAgBx2B,OAAhB;AACA,SAAKsJ,KAAL,GAAaA,KAAb;AACA,SAAKkB,MAAL,GAAclB,KAAK,CAACkB,MAApB;AACA,SAAK0L,WAAL,GAAmB,KAAnB;AACD;;AAED+rC,EAAAA,SAAS,CAAChiD,KAAD,EAA2B;AAGlC,SAAK+/C,MAAL,CAAYx1C,MAAZ,GAAqB,KAAKM,KAAL,CAAWq2C,YAAhC;AACA,SAAKnB,MAAL,CAAYh1C,IAAZ,CAAiB/K,KAAjB;AACA,MAAE,KAAK6K,KAAL,CAAWq2C,YAAb;AACD;;AAIDhiC,EAAAA,IAAI,GAAS;AACX,QAAI,CAAC,KAAKjJ,WAAV,EAAuB;AACrB,WAAKgsC,mBAAL;;AACA,UAAI,KAAKliD,OAAL,CAAaggD,MAAjB,EAAyB;AACvB,aAAKiC,SAAL,CAAe,IAAIF,KAAJ,CAAU,KAAKj3C,KAAf,CAAf;AACD;AACF;;AAED,SAAKA,KAAL,CAAWqK,UAAX,GAAwB,KAAKrK,KAAL,CAAW1B,GAAnC;AACA,SAAK0B,KAAL,CAAWkK,YAAX,GAA0B,KAAKlK,KAAL,CAAW3B,KAArC;AACA,SAAK2B,KAAL,CAAWsK,aAAX,GAA2B,KAAKtK,KAAL,CAAWoK,MAAtC;AACA,SAAKpK,KAAL,CAAWmK,eAAX,GAA6B,KAAKnK,KAAL,CAAWiK,QAAxC;AACA,SAAK0f,SAAL;AACD;;AAID3Q,EAAAA,GAAG,CAAC/X,IAAD,EAA2B;AAC5B,QAAI,KAAKtC,KAAL,CAAWsC,IAAX,CAAJ,EAAsB;AACpB,WAAKoT,IAAL;AACA,aAAO,IAAP;AACD,KAHD,MAGO;AACL,aAAO,KAAP;AACD;AACF;;AAID1V,EAAAA,KAAK,CAACsC,IAAD,EAA2B;AAC9B,WAAO,KAAKjB,KAAL,CAAWiB,IAAX,KAAoBA,IAA3B;AACD;;AAIDwd,EAAAA,SAAS,GAAU;AACjB,UAAM44B,GAAG,GAAG,KAAKr3C,KAAjB;AACA,SAAKA,KAAL,GAAaq3C,GAAG,CAACj1B,KAAJ,CAAU,IAAV,CAAb;AAEA,SAAKhX,WAAL,GAAmB,IAAnB;AACA,SAAKiJ,IAAL;AACA,SAAKjJ,WAAL,GAAmB,KAAnB;AAEA,UAAMksC,IAAI,GAAG,KAAKt3C,KAAlB;AACA,SAAKA,KAAL,GAAaq3C,GAAb;AACA,WAAOC,IAAP;AACD;;AAEDC,EAAAA,cAAc,GAAW;AACvB,UAAMC,UAAU,GAAG,KAAKx3C,KAAL,CAAWgK,GAA9B;AACAlM,IAAAA,cAAc,CAACc,SAAf,GAA2B44C,UAA3B;AACA,UAAMC,IAAI,GAAG35C,cAAc,CAACe,IAAf,CAAoB,KAAKL,KAAzB,CAAb;AAEA,WAAOg5C,UAAU,GAAGC,IAAI,CAAC,CAAD,CAAJ,CAAQ/3C,MAA5B;AACD;;AAEDwpC,EAAAA,iBAAiB,GAAW;AAC1B,WAAO,KAAK1qC,KAAL,CAAWqmB,UAAX,CAAsB,KAAK0yB,cAAL,EAAtB,CAAP;AACD;;AAKDG,EAAAA,SAAS,CAACpkC,MAAD,EAAwB;AAC/B,SAAKtT,KAAL,CAAWsT,MAAX,GAAoBA,MAApB;AACA,QAAI,CAAC,KAAK3U,KAAL,CAAW4Q,KAAE,CAACha,GAAd,CAAD,IAAuB,CAAC,KAAKoJ,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAA5B,EAAmD;AACnD,SAAKsK,KAAL,CAAWgK,GAAX,GAAiB,KAAKhK,KAAL,CAAW3B,KAA5B;;AACA,WAAO,KAAK2B,KAAL,CAAWgK,GAAX,GAAiB,KAAKhK,KAAL,CAAWtB,SAAnC,EAA8C;AAC5C,WAAKsB,KAAL,CAAWtB,SAAX,GACE,KAAKF,KAAL,CAAWm5C,WAAX,CAAuB,IAAvB,EAA6B,KAAK33C,KAAL,CAAWtB,SAAX,GAAuB,CAApD,IAAyD,CAD3D;AAEA,QAAE,KAAKsB,KAAL,CAAWk+B,OAAb;AACD;;AACD,SAAKvU,SAAL;AACD;;AAED1X,EAAAA,UAAU,GAAe;AACvB,WAAO,KAAKjS,KAAL,CAAW8R,OAAX,CAAmB,KAAK9R,KAAL,CAAW8R,OAAX,CAAmBpS,MAAnB,GAA4B,CAA/C,CAAP;AACD;;AAKDiqB,EAAAA,SAAS,GAAS;AAChB,UAAM1X,UAAU,GAAG,KAAKA,UAAL,EAAnB;AACA,QAAI,CAACA,UAAD,IAAe,CAACA,UAAU,CAACd,aAA/B,EAA8C,KAAKymC,SAAL;AAE9C,SAAK53C,KAAL,CAAWm2C,cAAX,GAA4B,EAA5B;AACA,SAAKn2C,KAAL,CAAW3B,KAAX,GAAmB,KAAK2B,KAAL,CAAWgK,GAA9B;AACA,SAAKhK,KAAL,CAAWiK,QAAX,GAAsB,KAAKjK,KAAL,CAAWs2C,WAAX,EAAtB;;AACA,QAAI,KAAKt2C,KAAL,CAAWgK,GAAX,IAAkB,KAAKtK,MAA3B,EAAmC;AACjC,WAAKuY,WAAL,CAAiB1I,KAAE,CAAC5Z,GAApB;AACA;AACD;;AAED,UAAMyb,QAAQ,GAAGa,UAAH,oBAAGA,UAAU,CAAEb,QAA7B;;AACA,QAAIA,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAAC,IAAD,CAAR;AACD,KAFD,MAEO;AACL,WAAKwT,gBAAL,CAAsB,KAAKpmB,KAAL,CAAWq5C,WAAX,CAAuB,KAAK73C,KAAL,CAAWgK,GAAlC,CAAtB;AACD;AACF;;AAED8tC,EAAAA,WAAW,CACTC,KADS,EAETC,IAFS,EAGT35C,KAHS,EAITC,GAJS,EAKT2L,QALS,EAMTG,MANS,EAOH;AACN,UAAMvK,OAAO,GAAG;AACdoB,MAAAA,IAAI,EAAE82C,KAAK,GAAG,cAAH,GAAoB,aADjB;AAEd9rC,MAAAA,KAAK,EAAE+rC,IAFO;AAGd35C,MAAAA,KAAK,EAAEA,KAHO;AAIdC,MAAAA,GAAG,EAAEA,GAJS;AAKdyB,MAAAA,GAAG,EAAE,IAAI3B,cAAJ,CAAmB6L,QAAnB,EAA6BG,MAA7B;AALS,KAAhB;AAQA,QAAI,KAAKlV,OAAL,CAAaggD,MAAjB,EAAyB,KAAKiC,SAAL,CAAet3C,OAAf;AACzB,SAAKG,KAAL,CAAWk2C,QAAX,CAAoBh2C,IAApB,CAAyBL,OAAzB;AACA,SAAKD,UAAL,CAAgBC,OAAhB;AACD;;AAEDoqB,EAAAA,gBAAgB,GAAS;AACvB,UAAMhgB,QAAQ,GAAG,KAAKjK,KAAL,CAAWs2C,WAAX,EAAjB;AACA,UAAMj4C,KAAK,GAAG,KAAK2B,KAAL,CAAWgK,GAAzB;AACA,UAAM1L,GAAG,GAAG,KAAKE,KAAL,CAAWilB,OAAX,CAAmB,IAAnB,EAAyB,KAAKzjB,KAAL,CAAWgK,GAAX,GAAiB,CAA1C,CAAZ;AACA,QAAI1L,GAAG,KAAK,CAAC,CAAb,EAAgB,MAAM,KAAKiM,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAAC0H,mBAAzB,CAAN;AAEhB,SAAKtJ,KAAL,CAAWgK,GAAX,GAAiB1L,GAAG,GAAG,CAAvB;AACAb,IAAAA,UAAU,CAACmB,SAAX,GAAuBP,KAAvB;AACA,QAAIM,KAAJ;;AACA,WACE,CAACA,KAAK,GAAGlB,UAAU,CAACoB,IAAX,CAAgB,KAAKL,KAArB,CAAT,KACAG,KAAK,CAACG,KAAN,GAAc,KAAKkB,KAAL,CAAWgK,GAF3B,EAGE;AACA,QAAE,KAAKhK,KAAL,CAAWk+B,OAAb;AACA,WAAKl+B,KAAL,CAAWtB,SAAX,GAAuBC,KAAK,CAACG,KAAN,GAAcH,KAAK,CAAC,CAAD,CAAL,CAASe,MAA9C;AACD;;AAID,QAAI,KAAK0L,WAAT,EAAsB;AAEtB,SAAK0sC,WAAL,CACE,IADF,EAEE,KAAKt5C,KAAL,CAAWkD,KAAX,CAAiBrD,KAAK,GAAG,CAAzB,EAA4BC,GAA5B,CAFF,EAGED,KAHF,EAIE,KAAK2B,KAAL,CAAWgK,GAJb,EAKEC,QALF,EAME,KAAKjK,KAAL,CAAWs2C,WAAX,EANF;AAQD;;AAED2B,EAAAA,eAAe,CAACC,SAAD,EAA0B;AACvC,UAAM75C,KAAK,GAAG,KAAK2B,KAAL,CAAWgK,GAAzB;AACA,UAAMC,QAAQ,GAAG,KAAKjK,KAAL,CAAWs2C,WAAX,EAAjB;AACA,QAAIxY,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAuB,KAAK7kB,KAAL,CAAWgK,GAAX,IAAkBkuC,SAAzC,CAAT;;AACA,QAAI,KAAKl4C,KAAL,CAAWgK,GAAX,GAAiB,KAAKtK,MAA1B,EAAkC;AAChC,aAAO,CAAC9B,SAAS,CAACkgC,EAAD,CAAV,IAAkB,EAAE,KAAK99B,KAAL,CAAWgK,GAAb,GAAmB,KAAKtK,MAAjD,EAAyD;AACvDo+B,QAAAA,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAL;AACD;AACF;;AAID,QAAI,KAAKoB,WAAT,EAAsB;AAEtB,SAAK0sC,WAAL,CACE,KADF,EAEE,KAAKt5C,KAAL,CAAWkD,KAAX,CAAiBrD,KAAK,GAAG65C,SAAzB,EAAoC,KAAKl4C,KAAL,CAAWgK,GAA/C,CAFF,EAGE3L,KAHF,EAIE,KAAK2B,KAAL,CAAWgK,GAJb,EAKEC,QALF,EAME,KAAKjK,KAAL,CAAWs2C,WAAX,EANF;AAQD;;AAKDsB,EAAAA,SAAS,GAAS;AAChBO,IAAAA,IAAI,EAAE,OAAO,KAAKn4C,KAAL,CAAWgK,GAAX,GAAiB,KAAKtK,MAA7B,EAAqC;AACzC,YAAMo+B,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAX;;AACA,cAAQ8zB,EAAR;AACE;AACA;AACA;AACE,YAAE,KAAK99B,KAAL,CAAWgK,GAAb;AACA;;AACF;AACE,cACE,KAAKxL,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QADF,EAEE;AACA,cAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACD;;AAEH;AACA;AACA;AACE,YAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACA,YAAE,KAAKhK,KAAL,CAAWk+B,OAAb;AACA,eAAKl+B,KAAL,CAAWtB,SAAX,GAAuB,KAAKsB,KAAL,CAAWgK,GAAlC;AACA;;AAEF;AACE,kBAAQ,KAAKxL,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAR;AACE;AACE,mBAAKigB,gBAAL;AACA;;AAEF;AACE,mBAAKguB,eAAL,CAAqB,CAArB;AACA;;AAEF;AACE,oBAAME,IAAN;AAVJ;;AAYA;;AAEF;AACE,cAAIp6C,YAAY,CAAC+/B,EAAD,CAAhB,EAAsB;AACpB,cAAE,KAAK99B,KAAL,CAAWgK,GAAb;AACD,WAFD,MAEO;AACL,kBAAMmuC,IAAN;AACD;;AAzCL;AA2CD;AACF;;AAODlgC,EAAAA,WAAW,CAAChX,IAAD,EAAkBiX,GAAlB,EAAkC;AAC3C,SAAKlY,KAAL,CAAW1B,GAAX,GAAiB,KAAK0B,KAAL,CAAWgK,GAA5B;AACA,SAAKhK,KAAL,CAAWoK,MAAX,GAAoB,KAAKpK,KAAL,CAAWs2C,WAAX,EAApB;AACA,UAAMpkC,QAAQ,GAAG,KAAKlS,KAAL,CAAWiB,IAA5B;AACA,SAAKjB,KAAL,CAAWiB,IAAX,GAAkBA,IAAlB;AACA,SAAKjB,KAAL,CAAWiM,KAAX,GAAmBiM,GAAnB;AAEA,QAAI,CAAC,KAAK9M,WAAV,EAAuB,KAAKvW,aAAL,CAAmBqd,QAAnB;AACxB;;AAYDkmC,EAAAA,oBAAoB,GAAS;AAC3B,QAAI,KAAKp4C,KAAL,CAAWgK,GAAX,KAAmB,CAAnB,IAAwB,KAAKquC,qBAAL,EAA5B,EAA0D;AACxD;AACD;;AAED,UAAMC,OAAO,GAAG,KAAKt4C,KAAL,CAAWgK,GAAX,GAAiB,CAAjC;AACA,UAAMqK,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsByzB,OAAtB,CAAb;;AACA,QAAIjkC,IAAI,MAAJ,IAA4BA,IAAI,MAApC,EAA0D;AACxD,YAAM,KAAK9J,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAACsG,wBAAlC,CAAN;AACD;;AAED,QACE,KAAKhJ,SAAL,CAAe,gBAAf,MACCmV,IAAI,QAAJ,IACCA,IAAI,OAFN,CADF,EAIE;AACA,UAAI,KAAKhV,eAAL,CAAqB,gBAArB,EAAuC,YAAvC,MAAyD,MAA7D,EAAqE;AACnE,cAAM,KAAKkL,KAAL,CACJ,KAAKvK,KAAL,CAAWgK,GADP,EAEJqK,IAAI,QAAJ,GACIzS,MAAM,CAACoF,4CADX,GAEIpF,MAAM,CAACmG,2CAJP,CAAN;AAMD;;AAED,UAAIsM,IAAI,QAAR,EAAuC;AAErC,aAAK4D,WAAL,CAAiB1I,KAAE,CAACpZ,UAApB;AACD,OAHD,MAGO;AAEL,aAAK8hB,WAAL,CAAiB1I,KAAE,CAAC1Z,YAApB;AACD;;AACD,WAAKmK,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;AACD,KAtBD,MAsBO,IACL,KAAK9K,SAAL,CAAe,wBAAf,KACA,KAAKA,SAAL,CAAe,qBAAf,CADA,IAEA,KAAKG,eAAL,CAAqB,kBAArB,EAAyC,UAAzC,MAAyD,OAHpD,EAIL;AACA,WAAKylB,QAAL,CAAcvV,KAAE,CAAClY,IAAjB,EAAuB,CAAvB;AACD,KANM,MAMA;AACL,YAAM,KAAKkT,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAACmD,wBAAlC,EAA4D,GAA5D,CAAN;AACD;AACF;;AAEDwzC,EAAAA,aAAa,GAAS;AACpB,UAAMlkC,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AACA,QAAIqK,IAAI,MAAJ,IAA4BA,IAAI,MAApC,EAA0D;AACxD,WAAKmkC,UAAL,CAAgB,IAAhB;AACA;AACD;;AAED,QACEnkC,IAAI,OAAJ,IACA,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QAFF,EAGE;AACA,WAAKhK,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;AACA,WAAKiO,WAAL,CAAiB1I,KAAE,CAACtY,QAApB;AACD,KAND,MAMO;AACL,QAAE,KAAK+I,KAAL,CAAWgK,GAAb;AACA,WAAKiO,WAAL,CAAiB1I,KAAE,CAAC3Y,GAApB;AACD;AACF;;AAED6hD,EAAAA,eAAe,GAAS;AAEtB,QAAI,KAAKz4C,KAAL,CAAW+R,WAAX,IAA0B,CAAC,KAAK/R,KAAL,CAAWwY,MAA1C,EAAkD;AAChD,QAAE,KAAKxY,KAAL,CAAWgK,GAAb;AACA,WAAK0uC,UAAL;AACA;AACD;;AAED,UAAMrkC,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AACA,QAAIqK,IAAI,OAAR,EAAiC;AAC/B,WAAKyQ,QAAL,CAAcvV,KAAE,CAAC/X,MAAjB,EAAyB,CAAzB;AACD,KAFD,MAEO;AACL,WAAKstB,QAAL,CAAcvV,KAAE,CAAC9W,KAAjB,EAAwB,CAAxB;AACD;AACF;;AAED4/C,EAAAA,qBAAqB,GAAY;AAC/B,QAAI,KAAKr4C,KAAL,CAAWgK,GAAX,KAAmB,CAAnB,IAAwB,KAAKtK,MAAL,GAAc,CAA1C,EAA6C,OAAO,KAAP;AAE7C,QAAIo+B,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAT;AACA,QAAI8zB,EAAE,OAAN,EAAsC,OAAO,KAAP;AAEtC,UAAMz/B,KAAK,GAAG,KAAK2B,KAAL,CAAWgK,GAAzB;AACA,SAAKhK,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;;AAEA,WAAO,CAACpM,SAAS,CAACkgC,EAAD,CAAV,IAAkB,EAAE,KAAK99B,KAAL,CAAWgK,GAAb,GAAmB,KAAKtK,MAAjD,EAAyD;AACvDo+B,MAAAA,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAL;AACD;;AAED,UAAMiC,KAAK,GAAG,KAAKzN,KAAL,CAAWkD,KAAX,CAAiBrD,KAAK,GAAG,CAAzB,EAA4B,KAAK2B,KAAL,CAAWgK,GAAvC,CAAd;AAEA,SAAKiO,WAAL,CAAiB1I,KAAE,CAACjY,oBAApB,EAA0C2U,KAA1C;AAEA,WAAO,IAAP;AACD;;AAEDwd,EAAAA,qBAAqB,CAAC5rB,IAAD,EAAqB;AAExC,QAAIoD,IAAI,GAAGpD,IAAI,OAAJ,GAA8B0R,KAAE,CAAC/W,IAAjC,GAAwC+W,KAAE,CAAChX,MAAtD;AACA,QAAIogD,KAAK,GAAG,CAAZ;AACA,QAAItkC,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAX;AACA,UAAM+H,WAAW,GAAG,KAAK/R,KAAL,CAAW+R,WAA/B;;AAGA,QAAIlU,IAAI,OAAJ,IAA+BwW,IAAI,OAAvC,EAAgE;AAC9DskC,MAAAA,KAAK;AACLtkC,MAAAA,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAP;AACA/I,MAAAA,IAAI,GAAGsO,KAAE,CAAC7W,QAAV;AACD;;AAED,QAAI2b,IAAI,OAAJ,IAA+B,CAACtC,WAApC,EAAiD;AAC/C4mC,MAAAA,KAAK;AACL13C,MAAAA,IAAI,GAAGsO,KAAE,CAAC/X,MAAV;AACD;;AAED,SAAKstB,QAAL,CAAc7jB,IAAd,EAAoB03C,KAApB;AACD;;AAED/uB,EAAAA,kBAAkB,CAAC/rB,IAAD,EAAqB;AAErC,UAAMwW,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AAEA,QAAIqK,IAAI,KAAKxW,IAAb,EAAmB;AACjB,UAAI,KAAKW,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QAAJ,EAAsE;AACpE,aAAK8a,QAAL,CAAcvV,KAAE,CAAC/X,MAAjB,EAAyB,CAAzB;AACD,OAFD,MAEO;AACL,aAAKstB,QAAL,CACEjnB,IAAI,QAAJ,GAAiC0R,KAAE,CAACzX,SAApC,GAAgDyX,KAAE,CAACxX,UADrD,EAEE,CAFF;AAID;;AACD;AACD;;AAED,QAAI8F,IAAI,QAAR,EAAoC;AAElC,UAAIwW,IAAI,OAAR,EAAoC;AAClC,aAAKyQ,QAAL,CAAcvV,KAAE,CAAC3X,QAAjB,EAA2B,CAA3B;AACA;AACD;;AAED,UACE,KAAKsH,SAAL,CAAe,gBAAf,KACAmV,IAAI,QAFN,EAGE;AACA,YAAI,KAAKhV,eAAL,CAAqB,gBAArB,EAAuC,YAAvC,MAAyD,KAA7D,EAAoE;AAClE,gBAAM,KAAKkL,KAAL,CACJ,KAAKvK,KAAL,CAAWgK,GADP,EAEJpI,MAAM,CAACkF,yCAFH,CAAN;AAID;;AAED,aAAKge,QAAL,CAAcvV,KAAE,CAAClZ,SAAjB,EAA4B,CAA5B;AACA;AACD;;AAGD,UACE,KAAK6I,SAAL,CAAe,gBAAf,KACAmV,IAAI,OAFN,EAGE;AACA,YAAI,KAAKhV,eAAL,CAAqB,gBAArB,EAAuC,YAAvC,MAAyD,KAA7D,EAAoE;AAClE,gBAAM,KAAKkL,KAAL,CACJ,KAAKvK,KAAL,CAAWgK,GADP,EAEJpI,MAAM,CAACiG,wCAFH,CAAN;AAID;;AAED,aAAKid,QAAL,CAAcvV,KAAE,CAACvZ,WAAjB,EAA8B,CAA9B;AACA;AACD;AACF;;AAED,QAAIqe,IAAI,OAAR,EAAiC;AAC/B,WAAKyQ,QAAL,CAAcvV,KAAE,CAAC/X,MAAjB,EAAyB,CAAzB;AACA;AACD;;AAED,SAAKstB,QAAL,CACEjnB,IAAI,QAAJ,GAAiC0R,KAAE,CAACvX,SAApC,GAAgDuX,KAAE,CAACrX,UADrD,EAEE,CAFF;AAID;;AAED0gD,EAAAA,eAAe,GAAS;AAEtB,UAAMvkC,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AACA,QAAIqK,IAAI,OAAR,EAAiC;AAC/B,WAAKyQ,QAAL,CAAcvV,KAAE,CAAC/X,MAAjB,EAAyB,CAAzB;AACD,KAFD,MAEO;AACL,WAAKstB,QAAL,CAAcvV,KAAE,CAACtX,UAAjB,EAA6B,CAA7B;AACD;AACF;;AAED4gD,EAAAA,kBAAkB,CAACh7C,IAAD,EAAqB;AAErC,UAAMwW,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AAEA,QAAIqK,IAAI,KAAKxW,IAAb,EAAmB;AACjB,UACEwW,IAAI,OAAJ,IACA,CAAC,KAAKR,QADN,IAEA,KAAKrV,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QAFA,KAGC,KAAKhK,KAAL,CAAWqK,UAAX,KAA0B,CAA1B,IACC7M,SAAS,CAACiV,IAAV,CACE,KAAKjU,KAAL,CAAWkD,KAAX,CAAiB,KAAK1B,KAAL,CAAWqK,UAA5B,EAAwC,KAAKrK,KAAL,CAAWgK,GAAnD,CADF,CAJF,CADF,EAQE;AAEA,aAAKiuC,eAAL,CAAqB,CAArB;AACA,aAAKL,SAAL;AACA,aAAKjuB,SAAL;AACA;AACD;;AACD,WAAK7E,QAAL,CAAcvV,KAAE,CAAC9X,MAAjB,EAAyB,CAAzB;AACA;AACD;;AAED,QAAI4c,IAAI,OAAR,EAAiC;AAC/B,WAAKyQ,QAAL,CAAcvV,KAAE,CAAC/X,MAAjB,EAAyB,CAAzB;AACD,KAFD,MAEO;AACL,WAAKstB,QAAL,CAAcvV,KAAE,CAACjX,OAAjB,EAA0B,CAA1B;AACD;AACF;;AAEDwgD,EAAAA,eAAe,CAACj7C,IAAD,EAAqB;AAElC,UAAMwW,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;AACA,QAAI+uC,IAAI,GAAG,CAAX;;AAEA,QAAI1kC,IAAI,KAAKxW,IAAb,EAAmB;AACjBk7C,MAAAA,IAAI,GACFl7C,IAAI,OAAJ,IACA,KAAKW,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QADA,GAEI,CAFJ,GAGI,CAJN;;AAKA,UAAI,KAAKxL,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB+uC,IAAvC,QAAJ,EAAyE;AACvE,aAAKj0B,QAAL,CAAcvV,KAAE,CAAC/X,MAAjB,EAAyBuhD,IAAI,GAAG,CAAhC;AACA;AACD;;AACD,WAAKj0B,QAAL,CAAcvV,KAAE,CAAClX,QAAjB,EAA2B0gD,IAA3B;AACA;AACD;;AAED,QACE1kC,IAAI,OAAJ,IACAxW,IAAI,OADJ,IAEA,CAAC,KAAKgW,QAFN,IAGA,KAAKrV,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QAHA,IAIA,KAAKxL,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QALF,EAME;AAEA,WAAKiuC,eAAL,CAAqB,CAArB;AACA,WAAKL,SAAL;AACA,WAAKjuB,SAAL;AACA;AACD;;AAED,QAAItV,IAAI,OAAR,EAAiC;AAE/B0kC,MAAAA,IAAI,GAAG,CAAP;AACD;;AAED,SAAKj0B,QAAL,CAAcvV,KAAE,CAACnX,UAAjB,EAA6B2gD,IAA7B;AACD;;AAEDC,EAAAA,iBAAiB,CAACn7C,IAAD,EAAqB;AAEpC,UAAMwW,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AACA,QAAIqK,IAAI,OAAR,EAAiC;AAC/B,WAAKyQ,QAAL,CACEvV,KAAE,CAACpX,QADL,EAEE,KAAKqG,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,WACI,CADJ,GAEI,CAJN;AAMA;AACD;;AACD,QAAInM,IAAI,OAAJ,IAA+BwW,IAAI,OAAvC,EAAmE;AAEjE,WAAKrU,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;AACA,WAAKiO,WAAL,CAAiB1I,KAAE,CAACxY,KAApB;AACA;AACD;;AACD,SAAK+tB,QAAL,CAAcjnB,IAAI,OAAJ,GAA8B0R,KAAE,CAAChY,EAAjC,GAAsCgY,KAAE,CAAC7X,IAAvD,EAA6D,CAA7D;AACD;;AAEDuhD,EAAAA,kBAAkB,GAAS;AAEzB,UAAM5kC,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;AACA,UAAMkvC,KAAK,GAAG,KAAK16C,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAd;;AACA,QAAIqK,IAAI,OAAJ,IAAmC,CAAC,KAAKrU,KAAL,CAAWwY,MAAnD,EAA2D;AACzD,UAAI0gC,KAAK,OAAT,EAAkC;AAEhC,aAAKp0B,QAAL,CAAcvV,KAAE,CAAC/X,MAAjB,EAAyB,CAAzB;AACD,OAHD,MAGO;AAEL,aAAKstB,QAAL,CAAcvV,KAAE,CAAC1X,iBAAjB,EAAoC,CAApC;AACD;AACF,KARD,MAQO,IACLwc,IAAI,OAAJ,IACA,EAAE6kC,KAAK,MAAL,IAA6BA,KAAK,MAApC,CAFK,EAGL;AAEA,WAAKl5C,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;AACA,WAAKiO,WAAL,CAAiB1I,KAAE,CAACzY,WAApB;AACD,KAPM,MAOA;AACL,QAAE,KAAKkJ,KAAL,CAAWgK,GAAb;AACA,WAAKiO,WAAL,CAAiB1I,KAAE,CAAC1Y,QAApB;AACD;AACF;;AAED+tB,EAAAA,gBAAgB,CAAC/mB,IAAD,EAAqB;AACnC,YAAQA,IAAR;AAIE;AACE,aAAK06C,aAAL;AACA;;AAGF;AACE,UAAE,KAAKv4C,KAAL,CAAWgK,GAAb;AACA,aAAKiO,WAAL,CAAiB1I,KAAE,CAACjZ,MAApB;AACA;;AACF;AACE,UAAE,KAAK0J,KAAL,CAAWgK,GAAb;AACA,aAAKiO,WAAL,CAAiB1I,KAAE,CAAChZ,MAApB;AACA;;AACF;AACE,UAAE,KAAKyJ,KAAL,CAAWgK,GAAb;AACA,aAAKiO,WAAL,CAAiB1I,KAAE,CAAC9Y,IAApB;AACA;;AACF;AACE,UAAE,KAAKuJ,KAAL,CAAWgK,GAAb;AACA,aAAKiO,WAAL,CAAiB1I,KAAE,CAAC/Y,KAApB;AACA;;AACF;AACE,YACE,KAAK0I,SAAL,CAAe,gBAAf,KACA,KAAKV,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,SAFF,EAGE;AACA,cAAI,KAAK3K,eAAL,CAAqB,gBAArB,EAAuC,YAAvC,MAAyD,KAA7D,EAAoE;AAClE,kBAAM,KAAKkL,KAAL,CACJ,KAAKvK,KAAL,CAAWgK,GADP,EAEJpI,MAAM,CAACkG,0CAFH,CAAN;AAID;;AAGD,eAAKmQ,WAAL,CAAiB1I,KAAE,CAACzZ,WAApB;AACA,eAAKkK,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;AACD,SAdD,MAcO;AACL,YAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACA,eAAKiO,WAAL,CAAiB1I,KAAE,CAAC3Z,QAApB;AACD;;AACD;;AACF;AACE,UAAE,KAAKoK,KAAL,CAAWgK,GAAb;AACA,aAAKiO,WAAL,CAAiB1I,KAAE,CAACxZ,QAApB;AACA;;AACF;AACE,YACE,KAAKmJ,SAAL,CAAe,gBAAf,KACA,KAAKV,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,SAFF,EAGE;AACA,cAAI,KAAK3K,eAAL,CAAqB,gBAArB,EAAuC,YAAvC,MAAyD,KAA7D,EAAoE;AAClE,kBAAM,KAAKkL,KAAL,CACJ,KAAKvK,KAAL,CAAWgK,GADP,EAEJpI,MAAM,CAACmF,2CAFH,CAAN;AAID;;AAGD,eAAKkR,WAAL,CAAiB1I,KAAE,CAACrZ,SAApB;AACA,eAAK8J,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;AACD,SAdD,MAcO;AACL,YAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACA,eAAKiO,WAAL,CAAiB1I,KAAE,CAACtZ,MAApB;AACD;;AACD;;AACF;AACE,UAAE,KAAK+J,KAAL,CAAWgK,GAAb;AACA,aAAKiO,WAAL,CAAiB1I,KAAE,CAACnZ,MAApB;AACA;;AAEF;AACE,YACE,KAAK8I,SAAL,CAAe,cAAf,KACA,KAAKV,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,QAFF,EAGE;AACA,eAAK8a,QAAL,CAAcvV,KAAE,CAAC5Y,WAAjB,EAA8B,CAA9B;AACD,SALD,MAKO;AACL,YAAE,KAAKqJ,KAAL,CAAWgK,GAAb;AACA,eAAKiO,WAAL,CAAiB1I,KAAE,CAAC7Y,KAApB;AACD;;AACD;;AAEF;AACE,aAAKuiD,kBAAL;AACA;;AAEF;AACE,UAAE,KAAKj5C,KAAL,CAAWgK,GAAb;AACA,aAAKiO,WAAL,CAAiB1I,KAAE,CAACrY,SAApB;AACA;;AAEF;AAAuB;AACrB,gBAAMmd,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AAEA,cAAIqK,IAAI,QAAJ,IAAiCA,IAAI,OAAzC,EAAoE;AAClE,iBAAK8kC,eAAL,CAAqB,EAArB;AACA;AACD;;AAED,cAAI9kC,IAAI,QAAJ,IAAiCA,IAAI,OAAzC,EAAoE;AAClE,iBAAK8kC,eAAL,CAAqB,CAArB;AACA;AACD;;AAED,cAAI9kC,IAAI,OAAJ,IAAiCA,IAAI,OAAzC,EAAoE;AAClE,iBAAK8kC,eAAL,CAAqB,CAArB;AACA;AACD;AACF;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,aAAKX,UAAL,CAAgB,KAAhB;AACA;;AAGF;AACA;AACE,aAAKY,UAAL,CAAgBv7C,IAAhB;AACA;;AAOF;AACE,aAAK46C,eAAL;AACA;;AAEF;AACA;AACE,aAAKhvB,qBAAL,CAA2B5rB,IAA3B;AACA;;AAEF;AACA;AACE,aAAK+rB,kBAAL,CAAwB/rB,IAAxB;AACA;;AAEF;AACE,aAAK+6C,eAAL;AACA;;AAEF;AACA;AACE,aAAKC,kBAAL,CAAwBh7C,IAAxB;AACA;;AAEF;AACA;AACE,aAAKi7C,eAAL,CAAqBj7C,IAArB;AACA;;AAEF;AACA;AACE,aAAKm7C,iBAAL,CAAuBn7C,IAAvB;AACA;;AAEF;AACE,aAAKinB,QAAL,CAAcvV,KAAE,CAAC5X,KAAjB,EAAwB,CAAxB;AACA;;AAEF;AACE,UAAE,KAAKqI,KAAL,CAAWgK,GAAb;AACA,aAAKiO,WAAL,CAAiB1I,KAAE,CAACnY,EAApB;AACA;;AAEF;AACE,aAAKghD,oBAAL;AACA;;AAEF;AACE,aAAKrzB,QAAL;AACA;;AAEF;AACE,YAAI7R,iBAAiB,CAACrV,IAAD,CAArB,EAA6B;AAC3B,eAAKknB,QAAL;AACA;AACD;;AAhML;;AAmMA,UAAM,KAAKxa,KAAL,CACJ,KAAKvK,KAAL,CAAWgK,GADP,EAEJpI,MAAM,CAACmD,wBAFH,EAGJqH,MAAM,CAACqyB,aAAP,CAAqB5gC,IAArB,CAHI,CAAN;AAKD;;AAEDinB,EAAAA,QAAQ,CAAC7jB,IAAD,EAAkB83C,IAAlB,EAAsC;AAC5C,UAAM1a,GAAG,GAAG,KAAK7/B,KAAL,CAAWkD,KAAX,CAAiB,KAAK1B,KAAL,CAAWgK,GAA5B,EAAiC,KAAKhK,KAAL,CAAWgK,GAAX,GAAiB+uC,IAAlD,CAAZ;AACA,SAAK/4C,KAAL,CAAWgK,GAAX,IAAkB+uC,IAAlB;AACA,SAAK9gC,WAAL,CAAiBhX,IAAjB,EAAuBo9B,GAAvB;AACD;;AAEDqa,EAAAA,UAAU,GAAS;AACjB,UAAMr6C,KAAK,GAAG,KAAK2B,KAAL,CAAWgK,GAAzB;AACA,QAAIqvC,OAAJ,EAAarY,OAAb;;AACA,aAAS;AACP,UAAI,KAAKhhC,KAAL,CAAWgK,GAAX,IAAkB,KAAKtK,MAA3B,EAAmC;AACjC,cAAM,KAAK6K,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAAC2H,kBAAzB,CAAN;AACD;;AACD,YAAMu0B,EAAE,GAAG,KAAKt/B,KAAL,CAAW86C,MAAX,CAAkB,KAAKt5C,KAAL,CAAWgK,GAA7B,CAAX;;AACA,UAAIxM,SAAS,CAACiV,IAAV,CAAeqrB,EAAf,CAAJ,EAAwB;AACtB,cAAM,KAAKvzB,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAAC2H,kBAAzB,CAAN;AACD;;AACD,UAAI8vC,OAAJ,EAAa;AACXA,QAAAA,OAAO,GAAG,KAAV;AACD,OAFD,MAEO;AACL,YAAIvb,EAAE,KAAK,GAAX,EAAgB;AACdkD,UAAAA,OAAO,GAAG,IAAV;AACD,SAFD,MAEO,IAAIlD,EAAE,KAAK,GAAP,IAAckD,OAAlB,EAA2B;AAChCA,UAAAA,OAAO,GAAG,KAAV;AACD,SAFM,MAEA,IAAIlD,EAAE,KAAK,GAAP,IAAc,CAACkD,OAAnB,EAA4B;AACjC;AACD;;AACDqY,QAAAA,OAAO,GAAGvb,EAAE,KAAK,IAAjB;AACD;;AACD,QAAE,KAAK99B,KAAL,CAAWgK,GAAb;AACD;;AACD,UAAMuvC,OAAO,GAAG,KAAK/6C,KAAL,CAAWkD,KAAX,CAAiBrD,KAAjB,EAAwB,KAAK2B,KAAL,CAAWgK,GAAnC,CAAhB;AACA,MAAE,KAAKhK,KAAL,CAAWgK,GAAb;AAEA,QAAIwvC,IAAI,GAAG,EAAX;;AAEA,WAAO,KAAKx5C,KAAL,CAAWgK,GAAX,GAAiB,KAAKtK,MAA7B,EAAqC;AACnC,YAAM+5C,IAAI,GAAG,KAAKj7C,KAAL,CAAW,KAAKwB,KAAL,CAAWgK,GAAtB,CAAb;AACA,YAAM0vC,QAAQ,GAAG,KAAKl7C,KAAL,CAAWq5C,WAAX,CAAuB,KAAK73C,KAAL,CAAWgK,GAAlC,CAAjB;;AAEA,UAAIysC,iBAAiB,CAACr3C,GAAlB,CAAsBq6C,IAAtB,CAAJ,EAAiC;AAC/B,YAAID,IAAI,CAAC/1B,OAAL,CAAag2B,IAAb,IAAqB,CAAC,CAA1B,EAA6B;AAC3B,eAAKlvC,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAX,GAAiB,CAA5B,EAA+BpI,MAAM,CAAC2B,oBAAtC;AACD;AACF,OAJD,MAIO,IACL6P,gBAAgB,CAACsmC,QAAD,CAAhB,IACAA,QAAQ,OAFH,EAGL;AACA,aAAKnvC,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAX,GAAiB,CAA5B,EAA+BpI,MAAM,CAAC0D,oBAAtC;AACD,OALM,MAKA;AACL;AACD;;AAED,QAAE,KAAKtF,KAAL,CAAWgK,GAAb;AACAwvC,MAAAA,IAAI,IAAIC,IAAR;AACD;;AAED,SAAKxhC,WAAL,CAAiB1I,KAAE,CAAC9Z,MAApB,EAA4B;AAC1BkW,MAAAA,OAAO,EAAE4tC,OADiB;AAE1B3tC,MAAAA,KAAK,EAAE4tC;AAFmB,KAA5B;AAID;;AAWDG,EAAAA,OAAO,CACLC,KADK,EAELC,GAFK,EAGLC,QAHK,EAILC,iBAA0B,GAAG,IAJxB,EAKU;AACf,UAAM17C,KAAK,GAAG,KAAK2B,KAAL,CAAWgK,GAAzB;AACA,UAAMgwC,iBAAiB,GACrBJ,KAAK,KAAK,EAAV,GACIlD,iCAAiC,CAACE,GADtC,GAEIF,iCAAiC,CAACC,SAHxC;AAIA,UAAMsD,eAAe,GACnBL,KAAK,KAAK,EAAV,GACI/C,+BAA+B,CAACD,GADpC,GAEIgD,KAAK,KAAK,EAAV,GACA/C,+BAA+B,CAACG,GADhC,GAEA4C,KAAK,KAAK,CAAV,GACA/C,+BAA+B,CAACE,GADhC,GAEAF,+BAA+B,CAACC,GAPtC;AASA,QAAIn0B,OAAO,GAAG,KAAd;AACA,QAAIu3B,KAAK,GAAG,CAAZ;;AAEA,SAAK,IAAIz5C,CAAC,GAAG,CAAR,EAAWqL,CAAC,GAAG+tC,GAAG,IAAI,IAAP,GAAcM,QAAd,GAAyBN,GAA7C,EAAkDp5C,CAAC,GAAGqL,CAAtD,EAAyD,EAAErL,CAA3D,EAA8D;AAC5D,YAAM5C,IAAI,GAAG,KAAKW,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAb;AACA,UAAIkO,GAAJ;;AAEA,UAAI,KAAKhZ,SAAL,CAAe,kBAAf,CAAJ,EAAwC;AACtC,YAAIrB,IAAI,OAAR,EAAmC;AACjC,gBAAMu8C,IAAI,GAAG,KAAK57C,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;AACA,gBAAMqK,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,CAAb;;AACA,cAAIiwC,eAAe,CAACx2B,OAAhB,CAAwBpP,IAAxB,MAAkC,CAAC,CAAvC,EAA0C;AACxC,iBAAK9J,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAAC4G,0BAAlC;AACD,WAFD,MAEO,IACLwxC,iBAAiB,CAACv2B,OAAlB,CAA0B22B,IAA1B,IAAkC,CAAC,CAAnC,IACAJ,iBAAiB,CAACv2B,OAAlB,CAA0BpP,IAA1B,IAAkC,CAAC,CADnC,IAEAgmC,MAAM,CAACC,KAAP,CAAajmC,IAAb,CAHK,EAIL;AACA,iBAAK9J,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAAC4G,0BAAlC;AACD;;AAED,cAAI,CAACuxC,iBAAL,EAAwB;AACtB,iBAAKxvC,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAACoE,gCAAlC;AACD;;AAGD,YAAE,KAAKhG,KAAL,CAAWgK,GAAb;AACA;AACD;AACF;;AAED,UAAInM,IAAI,MAAR,EAAkC;AAChCqa,QAAAA,GAAG,GAAGra,IAAI,KAAJ,KAAN;AACD,OAFD,MAEO,IAAIA,IAAI,MAAR,EAAkC;AACvCqa,QAAAA,GAAG,GAAGra,IAAI,KAAJ,KAAN;AACD,OAFM,MAEA,IAAI,SAAkBA,IAAlB,CAAJ,EAA6B;AAClCqa,QAAAA,GAAG,GAAGra,IAAI,KAAV;AACD,OAFM,MAEA;AACLqa,QAAAA,GAAG,GAAGiiC,QAAN;AACD;;AACD,UAAIjiC,GAAG,IAAI0hC,KAAX,EAAkB;AAIhB,YAAI,KAAK1kD,OAAL,CAAaiW,aAAb,IAA8B+M,GAAG,IAAI,CAAzC,EAA4C;AAC1CA,UAAAA,GAAG,GAAG,CAAN;AACA,eAAK3N,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAX,GAAmBoC,CAAnB,GAAuB,CAAlC,EAAqCmB,MAAM,CAAC2C,YAA5C,EAA0Dq1C,KAA1D;AACD,SAHD,MAGO,IAAIE,QAAJ,EAAc;AACnB5hC,UAAAA,GAAG,GAAG,CAAN;AACAyK,UAAAA,OAAO,GAAG,IAAV;AACD,SAHM,MAGA;AACL;AACD;AACF;;AACD,QAAE,KAAK3iB,KAAL,CAAWgK,GAAb;AACAkwC,MAAAA,KAAK,GAAGA,KAAK,GAAGN,KAAR,GAAgB1hC,GAAxB;AACD;;AACD,QACE,KAAKlY,KAAL,CAAWgK,GAAX,KAAmB3L,KAAnB,IACCw7C,GAAG,IAAI,IAAP,IAAe,KAAK75C,KAAL,CAAWgK,GAAX,GAAiB3L,KAAjB,KAA2Bw7C,GAD3C,IAEAl3B,OAHF,EAIE;AACA,aAAO,IAAP;AACD;;AAED,WAAOu3B,KAAP;AACD;;AAEDf,EAAAA,eAAe,CAACS,KAAD,EAAsB;AACnC,UAAMv7C,KAAK,GAAG,KAAK2B,KAAL,CAAWgK,GAAzB;AACA,QAAIuwC,QAAQ,GAAG,KAAf;AAEA,SAAKv6C,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;AACA,UAAMkO,GAAG,GAAG,KAAKyhC,OAAL,CAAaC,KAAb,CAAZ;;AACA,QAAI1hC,GAAG,IAAI,IAAX,EAAiB;AACf,WAAK3N,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAX,GAAmB,CAA9B,EAAiCuD,MAAM,CAAC2C,YAAxC,EAAsDq1C,KAAtD;AACD;;AAED,QAAI,KAAKp7C,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,SAAJ,EAAoE;AAClE,QAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACAuwC,MAAAA,QAAQ,GAAG,IAAX;AACD;;AAED,QAAIrnC,iBAAiB,CAAC,KAAK1U,KAAL,CAAWq5C,WAAX,CAAuB,KAAK73C,KAAL,CAAWgK,GAAlC,CAAD,CAArB,EAA+D;AAC7D,YAAM,KAAKO,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAACmE,gBAAlC,CAAN;AACD;;AAED,QAAIw0C,QAAJ,EAAc;AACZ,YAAMlc,GAAG,GAAG,KAAK7/B,KAAL,CAAWkD,KAAX,CAAiBrD,KAAjB,EAAwB,KAAK2B,KAAL,CAAWgK,GAAnC,EAAwCa,OAAxC,CAAgD,OAAhD,EAAyD,EAAzD,CAAZ;AACA,WAAKoN,WAAL,CAAiB1I,KAAE,CAAC/Z,MAApB,EAA4B6oC,GAA5B;AACA;AACD;;AAED,SAAKpmB,WAAL,CAAiB1I,KAAE,CAACha,GAApB,EAAyB2iB,GAAzB;AACD;;AAIDsgC,EAAAA,UAAU,CAACgC,aAAD,EAA+B;AACvC,UAAMn8C,KAAK,GAAG,KAAK2B,KAAL,CAAWgK,GAAzB;AACA,QAAIywC,OAAO,GAAG,KAAd;AACA,QAAIF,QAAQ,GAAG,KAAf;AACA,QAAIG,oBAAoB,GAAG,KAA3B;;AAEA,QAAI,CAACF,aAAD,IAAkB,KAAKb,OAAL,CAAa,EAAb,MAAqB,IAA3C,EAAiD;AAC/C,WAAKpvC,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACkD,aAAzB;AACD;;AACD,QAAI61C,KAAK,GACP,KAAK36C,KAAL,CAAWgK,GAAX,GAAiB3L,KAAjB,IAA0B,CAA1B,IACA,KAAKG,KAAL,CAAWqmB,UAAX,CAAsBxmB,KAAtB,QAFF;;AAGA,QAAIs8C,KAAJ,EAAW;AACT,UAAI,KAAK36C,KAAL,CAAWsT,MAAf,EAAuB;AACrB,aAAK/I,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAAC4F,kBAAzB;AACD;;AACD,UAAI,OAAOiL,IAAP,CAAY,KAAKjU,KAAL,CAAWkD,KAAX,CAAiBrD,KAAjB,EAAwB,KAAK2B,KAAL,CAAWgK,GAAnC,CAAZ,CAAJ,EAA0D;AACxD2wC,QAAAA,KAAK,GAAG,KAAR;AACAD,QAAAA,oBAAoB,GAAG,IAAvB;AACD;AACF;;AAED,QAAIrmC,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAX;;AACA,QAAIqK,IAAI,OAAJ,IAA0B,CAACsmC,KAA/B,EAAsC;AACpC,QAAE,KAAK36C,KAAL,CAAWgK,GAAb;AACA,WAAK2vC,OAAL,CAAa,EAAb;AACAc,MAAAA,OAAO,GAAG,IAAV;AACApmC,MAAAA,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAP;AACD;;AAED,QACE,CAACqK,IAAI,OAAJ,IAAiCA,IAAI,QAAtC,KACA,CAACsmC,KAFH,EAGE;AACAtmC,MAAAA,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,EAAE,KAAK7kB,KAAL,CAAWgK,GAAnC,CAAP;;AACA,UAAIqK,IAAI,OAAJ,IAA+BA,IAAI,OAAvC,EAA4D;AAC1D,UAAE,KAAKrU,KAAL,CAAWgK,GAAb;AACD;;AACD,UAAI,KAAK2vC,OAAL,CAAa,EAAb,MAAqB,IAAzB,EAA+B,KAAKpvC,KAAL,CAAWlM,KAAX,EAAkB,gBAAlB;AAC/Bo8C,MAAAA,OAAO,GAAG,IAAV;AACApmC,MAAAA,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAP;AACD;;AAGD,QAAI,KAAK9K,SAAL,CAAe,kBAAf,MAAuCy7C,KAAK,IAAID,oBAAhD,CAAJ,EAA2E;AACzE,YAAME,aAAa,GAAG,KAAKp8C,KAAL,CACnBkD,KADmB,CACbrD,KADa,EACN,KAAK2B,KAAL,CAAWgK,GADL,EAEnByZ,OAFmB,CAEX,GAFW,CAAtB;;AAGA,UAAIm3B,aAAa,GAAG,CAApB,EAAuB;AACrB,aAAKrwC,KAAL,CAAWqwC,aAAa,GAAGv8C,KAA3B,EAAkCuD,MAAM,CAACiI,yBAAzC;AACD;AACF;;AAED,QAAIwK,IAAI,QAAR,EAAmC;AAGjC,UAAIomC,OAAO,IAAIE,KAAX,IAAoBD,oBAAxB,EAA8C;AAC5C,aAAKnwC,KAAL,CAAWlM,KAAX,EAAkB,uBAAlB;AACD;;AACD,QAAE,KAAK2B,KAAL,CAAWgK,GAAb;AACAuwC,MAAAA,QAAQ,GAAG,IAAX;AACD;;AAED,QAAIrnC,iBAAiB,CAAC,KAAK1U,KAAL,CAAWq5C,WAAX,CAAuB,KAAK73C,KAAL,CAAWgK,GAAlC,CAAD,CAArB,EAA+D;AAC7D,YAAM,KAAKO,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAACmE,gBAAlC,CAAN;AACD;;AAGD,UAAMs4B,GAAG,GAAG,KAAK7/B,KAAL,CAAWkD,KAAX,CAAiBrD,KAAjB,EAAwB,KAAK2B,KAAL,CAAWgK,GAAnC,EAAwCa,OAAxC,CAAgD,OAAhD,EAAyD,EAAzD,CAAZ;;AAEA,QAAI0vC,QAAJ,EAAc;AACZ,WAAKtiC,WAAL,CAAiB1I,KAAE,CAAC/Z,MAApB,EAA4B6oC,GAA5B;AACA;AACD;;AAED,UAAMnmB,GAAG,GAAGyiC,KAAK,GAAGjc,QAAQ,CAACL,GAAD,EAAM,CAAN,CAAX,GAAsBwc,UAAU,CAACxc,GAAD,CAAjD;AACA,SAAKpmB,WAAL,CAAiB1I,KAAE,CAACha,GAApB,EAAyB2iB,GAAzB;AACD;;AAID4iC,EAAAA,aAAa,CAACC,cAAD,EAAyC;AACpD,UAAMjd,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAX;AACA,QAAInM,IAAJ;;AAEA,QAAIigC,EAAE,QAAN,EAAqC;AACnC,YAAMkd,OAAO,GAAG,EAAE,KAAKh7C,KAAL,CAAWgK,GAA7B;AACAnM,MAAAA,IAAI,GAAG,KAAKo9C,WAAL,CACL,KAAKz8C,KAAL,CAAWilB,OAAX,CAAmB,GAAnB,EAAwB,KAAKzjB,KAAL,CAAWgK,GAAnC,IAA0C,KAAKhK,KAAL,CAAWgK,GADhD,EAEL,IAFK,EAGL+wC,cAHK,CAAP;AAKA,QAAE,KAAK/6C,KAAL,CAAWgK,GAAb;;AACA,UAAInM,IAAI,KAAK,IAAT,IAAiBA,IAAI,GAAG,QAA5B,EAAsC;AACpC,YAAIk9C,cAAJ,EAAoB;AAClB,eAAKxwC,KAAL,CAAWywC,OAAX,EAAoBp5C,MAAM,CAAC0C,gBAA3B;AACD,SAFD,MAEO;AACL,iBAAO,IAAP;AACD;AACF;AACF,KAfD,MAeO;AACLzG,MAAAA,IAAI,GAAG,KAAKo9C,WAAL,CAAiB,CAAjB,EAAoB,KAApB,EAA2BF,cAA3B,CAAP;AACD;;AACD,WAAOl9C,IAAP;AACD;;AAEDu7C,EAAAA,UAAU,CAAChb,KAAD,EAAsB;AAC9B,QAAIpsB,GAAG,GAAG,EAAV;AAAA,QACE6rB,UAAU,GAAG,EAAE,KAAK79B,KAAL,CAAWgK,GAD5B;;AAEA,aAAS;AACP,UAAI,KAAKhK,KAAL,CAAWgK,GAAX,IAAkB,KAAKtK,MAA3B,EAAmC;AACjC,cAAM,KAAK6K,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC4H,kBAApC,CAAN;AACD;;AACD,YAAMs0B,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAX;AACA,UAAI8zB,EAAE,KAAKM,KAAX,EAAkB;;AAClB,UAAIN,EAAE,OAAN,EAAgC;AAC9B9rB,QAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAP;AAEAgI,QAAAA,GAAG,IAAI,KAAKkpC,eAAL,CAAqB,KAArB,CAAP;AACArd,QAAAA,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAAxB;AACD,OALD,MAKO,IACL8zB,EAAE,SAAF,IACAA,EAAE,SAFG,EAGL;AACA,UAAE,KAAK99B,KAAL,CAAWgK,GAAb;AACA,UAAE,KAAKhK,KAAL,CAAWk+B,OAAb;AACA,aAAKl+B,KAAL,CAAWtB,SAAX,GAAuB,KAAKsB,KAAL,CAAWgK,GAAlC;AACD,OAPM,MAOA,IAAIpM,SAAS,CAACkgC,EAAD,CAAb,EAAmB;AACxB,cAAM,KAAKvzB,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC4H,kBAApC,CAAN;AACD,OAFM,MAEA;AACL,UAAE,KAAKxJ,KAAL,CAAWgK,GAAb;AACD;AACF;;AACDgI,IAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAX,EAA7B,CAAP;AACA,SAAKiO,WAAL,CAAiB1I,KAAE,CAAC7Z,MAApB,EAA4Bsc,GAA5B;AACD;;AAIDL,EAAAA,aAAa,GAAS;AACpB,QAAIK,GAAG,GAAG,EAAV;AAAA,QACE6rB,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAD1B;AAAA,QAEEmxC,eAAe,GAAG,KAFpB;;AAGA,aAAS;AACP,UAAI,KAAKn7C,KAAL,CAAWgK,GAAX,IAAkB,KAAKtK,MAA3B,EAAmC;AACjC,cAAM,KAAK6K,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC6H,oBAApC,CAAN;AACD;;AACD,YAAMq0B,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAX;;AACA,UACE8zB,EAAE,OAAF,IACCA,EAAE,OAAF,IACC,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAX,GAAiB,CAAvC,SAHJ,EAKE;AACA,YAAI,KAAKhK,KAAL,CAAWgK,GAAX,KAAmB,KAAKhK,KAAL,CAAW3B,KAA9B,IAAuC,KAAKM,KAAL,CAAW4Q,KAAE,CAACvY,QAAd,CAA3C,EAAoE;AAClE,cAAI8mC,EAAE,OAAN,EAAiC;AAC/B,iBAAK99B,KAAL,CAAWgK,GAAX,IAAkB,CAAlB;AACA,iBAAKiO,WAAL,CAAiB1I,KAAE,CAACpY,YAApB;AACA;AACD,WAJD,MAIO;AACL,cAAE,KAAK6I,KAAL,CAAWgK,GAAb;AACA,iBAAKiO,WAAL,CAAiB1I,KAAE,CAACrY,SAApB;AACA;AACD;AACF;;AACD8a,QAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAP;AACA,aAAKiO,WAAL,CAAiB1I,KAAE,CAACvY,QAApB,EAA8BmkD,eAAe,GAAG,IAAH,GAAUnpC,GAAvD;AACA;AACD;;AACD,UAAI8rB,EAAE,OAAN,EAAgC;AAC9B9rB,QAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAP;AACA,cAAMqvC,OAAO,GAAG,KAAK6B,eAAL,CAAqB,IAArB,CAAhB;;AACA,YAAI7B,OAAO,KAAK,IAAhB,EAAsB;AACpB8B,UAAAA,eAAe,GAAG,IAAlB;AACD,SAFD,MAEO;AACLnpC,UAAAA,GAAG,IAAIqnC,OAAP;AACD;;AACDxb,QAAAA,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAAxB;AACD,OATD,MASO,IAAIpM,SAAS,CAACkgC,EAAD,CAAb,EAAmB;AACxB9rB,QAAAA,GAAG,IAAI,KAAKxT,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAP;AACA,UAAE,KAAKhK,KAAL,CAAWgK,GAAb;;AACA,gBAAQ8zB,EAAR;AACE;AACE,gBAAI,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,QAAJ,EAAkE;AAChE,gBAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACD;;AAEH;AACEgI,YAAAA,GAAG,IAAI,IAAP;AACA;;AACF;AACEA,YAAAA,GAAG,IAAI5F,MAAM,CAAC+G,YAAP,CAAoB2qB,EAApB,CAAP;AACA;AAXJ;;AAaA,UAAE,KAAK99B,KAAL,CAAWk+B,OAAb;AACA,aAAKl+B,KAAL,CAAWtB,SAAX,GAAuB,KAAKsB,KAAL,CAAWgK,GAAlC;AACA6zB,QAAAA,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAAxB;AACD,OAnBM,MAmBA;AACL,UAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACD;AACF;AACF;;AAIDkxC,EAAAA,eAAe,CAACE,UAAD,EAAqC;AAClD,UAAML,cAAc,GAAG,CAACK,UAAxB;AACA,UAAMtd,EAAE,GAAG,KAAKt/B,KAAL,CAAWqmB,UAAX,CAAsB,EAAE,KAAK7kB,KAAL,CAAWgK,GAAnC,CAAX;AACA,MAAE,KAAKhK,KAAL,CAAWgK,GAAb;;AACA,YAAQ8zB,EAAR;AACE;AACE,eAAO,IAAP;;AACF;AACE,eAAO,IAAP;;AACF;AAA2B;AACzB,gBAAMjgC,IAAI,GAAG,KAAKo9C,WAAL,CAAiB,CAAjB,EAAoB,KAApB,EAA2BF,cAA3B,CAAb;AACA,iBAAOl9C,IAAI,KAAK,IAAT,GAAgB,IAAhB,GAAuBuO,MAAM,CAAC+G,YAAP,CAAoBtV,IAApB,CAA9B;AACD;;AACD;AAA2B;AACzB,gBAAMA,IAAI,GAAG,KAAKi9C,aAAL,CAAmBC,cAAnB,CAAb;AACA,iBAAOl9C,IAAI,KAAK,IAAT,GAAgB,IAAhB,GAAuBuO,MAAM,CAACqyB,aAAP,CAAqB5gC,IAArB,CAA9B;AACD;;AACD;AACE,eAAO,IAAP;;AACF;AACE,eAAO,IAAP;;AACF;AACE,eAAO,QAAP;;AACF;AACE,eAAO,IAAP;;AACF;AACE,YAAI,KAAKW,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,QAAJ,EAAkE;AAChE,YAAE,KAAKhK,KAAL,CAAWgK,GAAb;AACD;;AAEH;AACE,aAAKhK,KAAL,CAAWtB,SAAX,GAAuB,KAAKsB,KAAL,CAAWgK,GAAlC;AACA,UAAE,KAAKhK,KAAL,CAAWk+B,OAAb;;AAEF;AACA;AACE,eAAO,EAAP;;AACF;AACA;AACE,YAAIkd,UAAJ,EAAgB;AACd,iBAAO,IAAP;AACD;;AAEH;AACE,YAAItd,EAAE,MAAF,IAA0BA,EAAE,MAAhC,EAAsD;AACpD,gBAAMkd,OAAO,GAAG,KAAKh7C,KAAL,CAAWgK,GAAX,GAAiB,CAAjC;AAEA,cAAIqxC,QAAQ,GAAG,KAAK78C,KAAL,CACZggC,MADY,CACL,KAAKx+B,KAAL,CAAWgK,GAAX,GAAiB,CADZ,EACe,CADf,EAEZrL,KAFY,CAEN,SAFM,EAEK,CAFL,CAAf;AAGA,cAAIg8C,KAAK,GAAGjc,QAAQ,CAAC2c,QAAD,EAAW,CAAX,CAApB;;AACA,cAAIV,KAAK,GAAG,GAAZ,EAAiB;AACfU,YAAAA,QAAQ,GAAGA,QAAQ,CAAC35C,KAAT,CAAe,CAAf,EAAkB,CAAC,CAAnB,CAAX;AACAi5C,YAAAA,KAAK,GAAGjc,QAAQ,CAAC2c,QAAD,EAAW,CAAX,CAAhB;AACD;;AACD,eAAKr7C,KAAL,CAAWgK,GAAX,IAAkBqxC,QAAQ,CAAC37C,MAAT,GAAkB,CAApC;AACA,gBAAM2U,IAAI,GAAG,KAAK7V,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWgK,GAAjC,CAAb;;AACA,cACEqxC,QAAQ,KAAK,GAAb,IACAhnC,IAAI,OADJ,IAEAA,IAAI,OAHN,EAIE;AACA,gBAAI+mC,UAAJ,EAAgB;AACd,qBAAO,IAAP;AACD,aAFD,MAEO,IAAI,KAAKp7C,KAAL,CAAWsT,MAAf,EAAuB;AAC5B,mBAAK/I,KAAL,CAAWywC,OAAX,EAAoBp5C,MAAM,CAAC4F,kBAA3B;AACD,aAFM,MAEA;AAIL,mBAAKxH,KAAL,CAAWm2C,cAAX,CAA0Bj2C,IAA1B,CAA+B86C,OAA/B;AACD;AACF;;AAED,iBAAO5uC,MAAM,CAAC+G,YAAP,CAAoBwnC,KAApB,CAAP;AACD;;AAED,eAAOvuC,MAAM,CAAC+G,YAAP,CAAoB2qB,EAApB,CAAP;AAzEJ;AA2ED;;AAIDmd,EAAAA,WAAW,CACTpB,GADS,EAETC,QAFS,EAGTiB,cAHS,EAIM;AACf,UAAMC,OAAO,GAAG,KAAKh7C,KAAL,CAAWgK,GAA3B;AACA,UAAMsxC,CAAC,GAAG,KAAK3B,OAAL,CAAa,EAAb,EAAiBE,GAAjB,EAAsBC,QAAtB,EAAgC,KAAhC,CAAV;;AACA,QAAIwB,CAAC,KAAK,IAAV,EAAgB;AACd,UAAIP,cAAJ,EAAoB;AAClB,aAAKxwC,KAAL,CAAWywC,OAAX,EAAoBp5C,MAAM,CAAC4C,qBAA3B;AACD,OAFD,MAEO;AACL,aAAKxE,KAAL,CAAWgK,GAAX,GAAiBgxC,OAAO,GAAG,CAA3B;AACD;AACF;;AACD,WAAOM,CAAP;AACD;;AAQDC,EAAAA,SAAS,GAAW;AAClB,QAAI3nC,IAAI,GAAG,EAAX;AACA,SAAK5T,KAAL,CAAWmQ,WAAX,GAAyB,KAAzB;AACA,UAAM9R,KAAK,GAAG,KAAK2B,KAAL,CAAWgK,GAAzB;AACA,QAAI6zB,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAA5B;;AAEA,WAAO,KAAKhK,KAAL,CAAWgK,GAAX,GAAiB,KAAKtK,MAA7B,EAAqC;AACnC,YAAMo+B,EAAE,GAAG,KAAKt/B,KAAL,CAAWq5C,WAAX,CAAuB,KAAK73C,KAAL,CAAWgK,GAAlC,CAAX;;AACA,UAAIoJ,gBAAgB,CAAC0qB,EAAD,CAApB,EAA0B;AACxB,aAAK99B,KAAL,CAAWgK,GAAX,IAAkB8zB,EAAE,IAAI,MAAN,GAAe,CAAf,GAAmB,CAArC;AACD,OAFD,MAEO,IAAI,KAAK99B,KAAL,CAAWsS,UAAX,IAAyBwrB,EAAE,OAA/B,EAAsD;AAC3D,UAAE,KAAK99B,KAAL,CAAWgK,GAAb;AACD,OAFM,MAEA,IAAI8zB,EAAE,OAAN,EAAgC;AACrC,aAAK99B,KAAL,CAAWmQ,WAAX,GAAyB,IAAzB;AAEAyD,QAAAA,IAAI,IAAI,KAAKpV,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAR;AACA,cAAMwxC,QAAQ,GAAG,KAAKx7C,KAAL,CAAWgK,GAA5B;AACA,cAAMyxC,eAAe,GACnB,KAAKz7C,KAAL,CAAWgK,GAAX,KAAmB3L,KAAnB,GAA2B6U,iBAA3B,GAA+CE,gBADjD;;AAGA,YAAI,KAAK5U,KAAL,CAAWqmB,UAAX,CAAsB,EAAE,KAAK7kB,KAAL,CAAWgK,GAAnC,SAAJ,EAAsE;AACpE,eAAKO,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAAC6D,oBAAlC;AACA;AACD;;AAED,UAAE,KAAKzF,KAAL,CAAWgK,GAAb;AACA,cAAM0xC,GAAG,GAAG,KAAKZ,aAAL,CAAmB,IAAnB,CAAZ;;AACA,YAAIY,GAAG,KAAK,IAAZ,EAAkB;AAChB,cAAI,CAACD,eAAe,CAACC,GAAD,CAApB,EAA2B;AACzB,iBAAKnxC,KAAL,CAAWixC,QAAX,EAAqB55C,MAAM,CAAC6B,0BAA5B;AACD;;AAEDmQ,UAAAA,IAAI,IAAIxH,MAAM,CAACqyB,aAAP,CAAqBid,GAArB,CAAR;AACD;;AACD7d,QAAAA,UAAU,GAAG,KAAK79B,KAAL,CAAWgK,GAAxB;AACD,OAvBM,MAuBA;AACL;AACD;AACF;;AACD,WAAO4J,IAAI,GAAG,KAAKpV,KAAL,CAAWkD,KAAX,CAAiBm8B,UAAjB,EAA6B,KAAK79B,KAAL,CAAWgK,GAAxC,CAAd;AACD;;AAEDsI,EAAAA,UAAU,CAACsB,IAAD,EAAwB;AAChC,WAAOA,IAAI,KAAK,YAAT,IAAyBA,IAAI,KAAK,iBAAzC;AACD;;AAKDmR,EAAAA,QAAQ,GAAS;AACf,UAAMnR,IAAI,GAAG,KAAK2nC,SAAL,EAAb;AACA,UAAMt6C,IAAI,GAAG06C,QAAY,CAACp8C,GAAb,CAAiBqU,IAAjB,KAA0BrE,KAAE,CAACta,IAA1C;;AAGA,QACE,KAAK+K,KAAL,CAAWsS,UAAX,KACC,CAAC,KAAKA,UAAL,CAAgBsB,IAAhB,CAAD,IAA0B,CAAC,KAAK5T,KAAL,CAAWwY,MADvC,CADF,EAGE;AACA,WAAKjO,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAAC+C,iBAAlC,EAAqDiP,IAArD;AACD;;AAED,SAAKqE,WAAL,CAAiBhX,IAAjB,EAAuB2S,IAAvB;AACD;;AAEDwjC,EAAAA,mBAAmB,GAAS;AAC1B,UAAM5M,EAAE,GAAG,KAAKxqC,KAAL,CAAWiB,IAAX,CAAgBvM,OAA3B;;AACA,QAAI81C,EAAE,IAAI,KAAKxqC,KAAL,CAAWmQ,WAArB,EAAkC;AAChC,WAAK5F,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC8C,0BAApC,EAAgE8lC,EAAhE;AACD;AACF;;AAEDj4B,EAAAA,YAAY,CAACL,QAAD,EAA+B;AACzC,UAAM0pC,MAAM,GAAG,KAAK3pC,UAAL,EAAf;;AACA,QAAI2pC,MAAM,KAAKrK,OAAE,CAAC3/B,kBAAd,IAAoCgqC,MAAM,KAAKrK,OAAE,CAAC1/B,iBAAtD,EAAyE;AACvE,aAAO,IAAP;AACD;;AACD,QACEK,QAAQ,KAAK3C,KAAE,CAAC7Y,KAAhB,KACCklD,MAAM,KAAKrK,OAAE,CAAClgC,cAAd,IAAgCuqC,MAAM,KAAKrK,OAAE,CAACjgC,eAD/C,CADF,EAGE;AACA,aAAO,CAACsqC,MAAM,CAAC1qC,MAAf;AACD;;AAKD,QACEgB,QAAQ,KAAK3C,KAAE,CAAChW,OAAhB,IACC2Y,QAAQ,KAAK3C,KAAE,CAACta,IAAhB,IAAwB,KAAK+K,KAAL,CAAW+R,WAFtC,EAGE;AACA,aAAOvU,SAAS,CAACiV,IAAV,CACL,KAAKjU,KAAL,CAAWkD,KAAX,CAAiB,KAAK1B,KAAL,CAAWqK,UAA5B,EAAwC,KAAKrK,KAAL,CAAW3B,KAAnD,CADK,CAAP;AAGD;;AAED,QACE6T,QAAQ,KAAK3C,KAAE,CAACrW,KAAhB,IACAgZ,QAAQ,KAAK3C,KAAE,CAAC9Y,IADhB,IAEAyb,QAAQ,KAAK3C,KAAE,CAAC5Z,GAFhB,IAGAuc,QAAQ,KAAK3C,KAAE,CAAChZ,MAHhB,IAIA2b,QAAQ,KAAK3C,KAAE,CAACxY,KALlB,EAME;AACA,aAAO,IAAP;AACD;;AAED,QAAImb,QAAQ,KAAK3C,KAAE,CAACtZ,MAApB,EAA4B;AAC1B,aAAO2lD,MAAM,KAAKrK,OAAE,CAAClgC,cAArB;AACD;;AAED,QACEa,QAAQ,KAAK3C,KAAE,CAAC5V,IAAhB,IACAuY,QAAQ,KAAK3C,KAAE,CAAC3V,MADhB,IAEAsY,QAAQ,KAAK3C,KAAE,CAACta,IAHlB,EAIE;AACA,aAAO,KAAP;AACD;;AAED,QAAIid,QAAQ,KAAK3C,KAAE,CAACnX,UAApB,EAAgC;AAE9B,aAAO,IAAP;AACD;;AAED,WAAO,CAAC,KAAK4H,KAAL,CAAW+R,WAAnB;AACD;;AAEDld,EAAAA,aAAa,CAACqd,QAAD,EAA4B;AACvC,UAAMjR,IAAI,GAAG,KAAKjB,KAAL,CAAWiB,IAAxB;AACA,QAAI46C,MAAJ;;AAEA,QAAI56C,IAAI,CAACvM,OAAL,KAAiBwd,QAAQ,KAAK3C,KAAE,CAAC3Y,GAAhB,IAAuBsb,QAAQ,KAAK3C,KAAE,CAACzY,WAAxD,CAAJ,EAA0E;AACxE,WAAKkJ,KAAL,CAAW+R,WAAX,GAAyB,KAAzB;AACD,KAFD,MAEO,IAAK8pC,MAAM,GAAG56C,IAAI,CAACpM,aAAnB,EAAmC;AACxCgnD,MAAAA,MAAM,CAACr0B,IAAP,CAAY,IAAZ,EAAkBtV,QAAlB;AACD,KAFM,MAEA;AACL,WAAKlS,KAAL,CAAW+R,WAAX,GAAyB9Q,IAAI,CAACjN,UAA9B;AACD;AACF;;AAh6CmD;;ACzFvC,MAAM8nD,UAAN,SAAyB5E,SAAzB,CAAmC;AAGhD6E,EAAAA,QAAQ,CAAC17C,IAAD,EAAa4N,GAAb,EAA0BiK,GAA1B,EAA0C;AAChD,QAAI,CAAC7X,IAAL,EAAW;AAEX,UAAMwM,KAAK,GAAIxM,IAAI,CAACwM,KAAL,GAAaxM,IAAI,CAACwM,KAAL,IAAc,EAA1C;AACAA,IAAAA,KAAK,CAACoB,GAAD,CAAL,GAAaiK,GAAb;AACD;;AAIDyB,EAAAA,YAAY,CAACqiC,EAAD,EAAyB;AACnC,WAAO,KAAKr9C,KAAL,CAAW4Q,KAAE,CAACnX,UAAd,KAA6B,KAAK4H,KAAL,CAAWiM,KAAX,KAAqB+vC,EAAzD;AACD;;AAED9yB,EAAAA,qBAAqB,CAAC8yB,EAAD,EAAyB;AAC5C,UAAM3nC,IAAI,GAAG,KAAKkjC,cAAL,EAAb;;AACA,QAAI,KAAK/4C,KAAL,CAAW86C,MAAX,CAAkBjlC,IAAlB,MAA4B2nC,EAAhC,EAAoC;AAClC,UAAI3nC,IAAI,GAAG,CAAP,KAAa,KAAK7V,KAAL,CAAWkB,MAA5B,EAAoC;AAClC,eAAO,IAAP;AACD;;AACD,YAAMu8C,SAAS,GAAG,KAAKz9C,KAAL,CAAWqmB,UAAX,CAAsBxQ,IAAI,GAAG,CAA7B,CAAlB;AACA,aAAO4nC,SAAS,KAAKD,EAAE,CAACn3B,UAAH,CAAc,CAAd,CAAd,IAAkCo3B,SAAS,OAAlD;AACD;;AACD,WAAO,KAAP;AACD;;AAIDl+B,EAAAA,gBAAgB,CAACi+B,EAAD,EAAsB;AACpC,QAAI,KAAKriC,YAAL,CAAkBqiC,EAAlB,CAAJ,EAA2B;AACzB,WAAK3nC,IAAL;AACD,KAFD,MAEO;AACL,WAAK0G,UAAL,CAAgB,IAAhB,EAAsBxL,KAAE,CAACnX,UAAzB;AACD;AACF;;AAIDsiB,EAAAA,YAAY,CAACzlB,IAAD,EAAwB;AAClC,WACE,KAAK0J,KAAL,CAAW4Q,KAAE,CAACta,IAAd,KACA,KAAK+K,KAAL,CAAWiM,KAAX,KAAqBhX,IADrB,IAEA,CAAC,KAAK+K,KAAL,CAAWmQ,WAHd;AAKD;;AAED+rC,EAAAA,oBAAoB,CAACC,SAAD,EAAoBlnD,IAApB,EAA2C;AAC7D,UAAMmnD,OAAO,GAAGD,SAAS,GAAGlnD,IAAI,CAACyK,MAAjC;AACA,WACE,KAAKlB,KAAL,CAAWkD,KAAX,CAAiBy6C,SAAjB,EAA4BC,OAA5B,MAAyCnnD,IAAzC,KACCmnD,OAAO,KAAK,KAAK59C,KAAL,CAAWkB,MAAvB,IACC,CAAC0T,gBAAgB,CAAC,KAAK5U,KAAL,CAAWqmB,UAAX,CAAsBu3B,OAAtB,CAAD,CAFnB,CADF;AAKD;;AAEDv1B,EAAAA,qBAAqB,CAAC5xB,IAAD,EAAwB;AAC3C,UAAMof,IAAI,GAAG,KAAKkjC,cAAL,EAAb;AACA,WAAO,KAAK2E,oBAAL,CAA0B7nC,IAA1B,EAAgCpf,IAAhC,CAAP;AACD;;AAIDslB,EAAAA,aAAa,CAACtlB,IAAD,EAAwB;AACnC,WAAO,KAAKylB,YAAL,CAAkBzlB,IAAlB,KAA2B,KAAK+jB,GAAL,CAASzJ,KAAE,CAACta,IAAZ,CAAlC;AACD;;AAID8jB,EAAAA,gBAAgB,CAAC9jB,IAAD,EAAe2V,OAAf,EAAuC;AACrD,QAAI,CAAC,KAAK2P,aAAL,CAAmBtlB,IAAnB,CAAL,EAA+B,KAAK8lB,UAAL,CAAgB,IAAhB,EAAsBnQ,OAAtB;AAChC;;AAID+V,EAAAA,kBAAkB,GAAY;AAC5B,WACE,KAAKhiB,KAAL,CAAW4Q,KAAE,CAAC5Z,GAAd,KACA,KAAKgJ,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CADA,IAEA,KAAKquC,qBAAL,EAHF;AAKD;;AAEDA,EAAAA,qBAAqB,GAAY;AAC/B,WAAOjnC,SAAS,CAACiV,IAAV,CACL,KAAKjU,KAAL,CAAWkD,KAAX,CAAiB,KAAK1B,KAAL,CAAWqK,UAA5B,EAAwC,KAAKrK,KAAL,CAAW3B,KAAnD,CADK,CAAP;AAGD;;AAID4vC,EAAAA,gBAAgB,GAAY;AAC1B,WAAO,KAAKj1B,GAAL,CAASzJ,KAAE,CAAC9Y,IAAZ,KAAqB,KAAKkqB,kBAAL,EAA5B;AACD;;AAKDxG,EAAAA,SAAS,GAAS;AAChB,QAAI,CAAC,KAAK8zB,gBAAL,EAAL,EAA8B,KAAKlzB,UAAL,CAAgB,IAAhB,EAAsBxL,KAAE,CAAC9Y,IAAzB;AAC/B;;AAKDgiB,EAAAA,MAAM,CAACxX,IAAD,EAAkB+I,GAAlB,EAAuC;AAC3C,SAAKgP,GAAL,CAAS/X,IAAT,KAAkB,KAAK8Z,UAAL,CAAgB/Q,GAAhB,EAAqB/I,IAArB,CAAlB;AACD;;AAGDkxC,EAAAA,aAAa,CAACvnC,OAAe,GAAG,mBAAnB,EAA8C;AACzD,QAAI,KAAK5K,KAAL,CAAW3B,KAAX,GAAmB,KAAK2B,KAAL,CAAWqK,UAAlC,EAA8C;AAC5C,WAAKE,KAAL,CAAW,KAAKvK,KAAL,CAAWqK,UAAtB,EAAkCO,OAAlC;AACD;AACF;;AAKDmQ,EAAAA,UAAU,CACR/Q,GADQ,EAERqyC,aAAiC,GAAG,kBAF5B,EAGD;AACP,QAAI,OAAOA,aAAP,KAAyB,QAA7B,EAAuC;AACrCA,MAAAA,aAAa,GAAI,+BAA8BA,aAAa,CAAC7nD,KAAM,GAAnE;AACD;;AACD,UAAM,KAAK+V,KAAL,CAAWP,GAAG,IAAI,IAAP,GAAcA,GAAd,GAAoB,KAAKhK,KAAL,CAAW3B,KAA1C,EAAiDg+C,aAAjD,CAAN;AACD;;AAED1J,EAAAA,YAAY,CAAC19C,IAAD,EAAe+U,GAAf,EAAoC;AAC9C,QAAI,CAAC,KAAK9K,SAAL,CAAejK,IAAf,CAAL,EAA2B;AACzB,YAAM,KAAKyV,aAAL,CACJV,GAAG,IAAI,IAAP,GAAcA,GAAd,GAAoB,KAAKhK,KAAL,CAAW3B,KAD3B,EAEJ;AAAEi+C,QAAAA,aAAa,EAAE,CAACrnD,IAAD;AAAjB,OAFI,EAGH,kEAAiEA,IAAK,GAHnE,CAAN;AAKD;;AAED,WAAO,IAAP;AACD;;AAEDsnD,EAAAA,eAAe,CAACC,KAAD,EAAuBxyC,GAAvB,EAA4C;AACzD,QAAI,CAACwyC,KAAK,CAAClJ,IAAN,CAAWgI,CAAC,IAAI,KAAKp8C,SAAL,CAAeo8C,CAAf,CAAhB,CAAL,EAAyC;AACvC,YAAM,KAAK5wC,aAAL,CACJV,GAAG,IAAI,IAAP,GAAcA,GAAd,GAAoB,KAAKhK,KAAL,CAAW3B,KAD3B,EAEJ;AAAEi+C,QAAAA,aAAa,EAAEE;AAAjB,OAFI,EAGH,sFAAqFA,KAAK,CAAC1I,IAAN,CACpF,IADoF,CAEpF,GALE,CAAN;AAOD;AACF;;AAED2I,EAAAA,8BAA8B,GAAG;AAC/B,QACE,KAAKz8C,KAAL,CAAWkvC,QAAX,KAAwB,CAAC,CAAzB,KACC,KAAKlvC,KAAL,CAAWovC,QAAX,KAAwB,CAAC,CAAzB,IAA8B,KAAKpvC,KAAL,CAAWkvC,QAAX,GAAsB,KAAKlvC,KAAL,CAAWovC,QADhE,CADF,EAGE;AACA,WAAK7kC,KAAL,CACE,KAAKvK,KAAL,CAAWkvC,QADb,EAEE,0DAFF;AAID;;AACD,QAAI,KAAKlvC,KAAL,CAAWovC,QAAX,KAAwB,CAAC,CAA7B,EAAgC;AAC9B,WAAK7kC,KAAL,CACE,KAAKvK,KAAL,CAAWovC,QADb,EAEE,uDAFF;AAID;AACF;;AAIDntB,EAAAA,QAAQ,CACNy6B,EADM,EAENC,QAAe,GAAG,KAAK38C,KAAL,CAAWoiB,KAAX,EAFZ,EAMyC;AAC/C,UAAMw6B,WAA+B,GAAG;AAAEv8C,MAAAA,IAAI,EAAE;AAAR,KAAxC;;AACA,QAAI;AACF,YAAMA,IAAI,GAAGq8C,EAAE,CAAC,CAACr8C,IAAI,GAAG,IAAR,KAAiB;AAC/Bu8C,QAAAA,WAAW,CAACv8C,IAAZ,GAAmBA,IAAnB;AACA,cAAMu8C,WAAN;AACD,OAHc,CAAf;;AAIA,UAAI,KAAK58C,KAAL,CAAWqL,MAAX,CAAkB3L,MAAlB,GAA2Bi9C,QAAQ,CAACtxC,MAAT,CAAgB3L,MAA/C,EAAuD;AACrD,cAAMyiB,SAAS,GAAG,KAAKniB,KAAvB;AACA,aAAKA,KAAL,GAAa28C,QAAb;AACA,eAAO;AACLt8C,UAAAA,IADK;AAEL6hB,UAAAA,KAAK,EAAGC,SAAS,CAAC9W,MAAV,CAAiBsxC,QAAQ,CAACtxC,MAAT,CAAgB3L,MAAjC,CAFH;AAGLuoB,UAAAA,MAAM,EAAE,KAHH;AAILc,UAAAA,OAAO,EAAE,KAJJ;AAKL5G,UAAAA;AALK,SAAP;AAOD;;AAED,aAAO;AACL9hB,QAAAA,IADK;AAEL6hB,QAAAA,KAAK,EAAE,IAFF;AAGL+F,QAAAA,MAAM,EAAE,KAHH;AAILc,QAAAA,OAAO,EAAE,KAJJ;AAKL5G,QAAAA,SAAS,EAAE;AALN,OAAP;AAOD,KAxBD,CAwBE,OAAOD,KAAP,EAAc;AACd,YAAMC,SAAS,GAAG,KAAKniB,KAAvB;AACA,WAAKA,KAAL,GAAa28C,QAAb;;AACA,UAAIz6B,KAAK,YAAYhX,WAArB,EAAkC;AAChC,eAAO;AAAE7K,UAAAA,IAAI,EAAE,IAAR;AAAc6hB,UAAAA,KAAd;AAAqB+F,UAAAA,MAAM,EAAE,IAA7B;AAAmCc,UAAAA,OAAO,EAAE,KAA5C;AAAmD5G,UAAAA;AAAnD,SAAP;AACD;;AACD,UAAID,KAAK,KAAK06B,WAAd,EAA2B;AACzB,eAAO;AACLv8C,UAAAA,IAAI,EAAEu8C,WAAW,CAACv8C,IADb;AAEL6hB,UAAAA,KAAK,EAAE,IAFF;AAGL+F,UAAAA,MAAM,EAAE,KAHH;AAILc,UAAAA,OAAO,EAAE,IAJJ;AAKL5G,UAAAA;AALK,SAAP;AAOD;;AAED,YAAMD,KAAN;AACD;AACF;;AAED26B,EAAAA,qBAAqB,CACnB/uC,mBADmB,EAEnBgvC,QAFmB,EAGnB;AACA,QAAI,CAAChvC,mBAAL,EAA0B,OAAO,KAAP;AAC1B,UAAM;AAAEivC,MAAAA,eAAF;AAAmB5uC,MAAAA;AAAnB,QAAmCL,mBAAzC;AACA,QAAI,CAACgvC,QAAL,EAAe,OAAOC,eAAe,IAAI,CAAnB,IAAwB5uC,WAAW,IAAI,CAA9C;;AACf,QAAI4uC,eAAe,IAAI,CAAvB,EAA0B;AACxB,WAAKhiC,UAAL,CAAgBgiC,eAAhB;AACD;;AACD,QAAI5uC,WAAW,IAAI,CAAnB,EAAsB;AACpB,WAAK5D,KAAL,CAAW4D,WAAX,EAAwBvM,MAAM,CAAC0B,cAA/B;AACD;AACF;;AA/O+C;AA6PlD,AAAO,MAAM05C,gBAAN,CAAuB;AAAA;AAAA,SAC5BD,eAD4B,GACV,CAAC,CADS;AAAA,SAE5B5uC,WAF4B,GAEd,CAAC,CAFa;AAAA;;AAAA;;ACzQ9B,MAAM8uC,IAAN,CAA+B;AAC7B1oD,EAAAA,WAAW,CAAC2oD,MAAD,EAAiBlzC,GAAjB,EAA8BjK,GAA9B,EAA6C;AACtD,SAAKkB,IAAL,GAAY,EAAZ;AACA,SAAK5C,KAAL,GAAa2L,GAAb;AACA,SAAK1L,GAAL,GAAW,CAAX;AACA,SAAKyB,GAAL,GAAW,IAAI3B,cAAJ,CAAmB2B,GAAnB,CAAX;AACA,QAAIm9C,MAAM,IAAIA,MAAM,CAAChoD,OAAP,CAAe+/C,MAA7B,EAAqC,KAAKkI,KAAL,GAAa,CAACnzC,GAAD,EAAM,CAAN,CAAb;AACrC,QAAIkzC,MAAM,IAAIA,MAAM,CAACp9C,QAArB,EAA+B,KAAKC,GAAL,CAASD,QAAT,GAAoBo9C,MAAM,CAACp9C,QAA3B;AAChC;;AAYDknB,EAAAA,OAAO,GAAS;AAEd,UAAMgY,OAAY,GAAG,IAAIie,IAAJ,EAArB;AACA,UAAM3I,IAAI,GAAGzyC,MAAM,CAACyyC,IAAP,CAAY,IAAZ,CAAb;;AACA,SAAK,IAAI7zC,CAAC,GAAG,CAAR,EAAWf,MAAM,GAAG40C,IAAI,CAAC50C,MAA9B,EAAsCe,CAAC,GAAGf,MAA1C,EAAkDe,CAAC,EAAnD,EAAuD;AACrD,YAAMwN,GAAG,GAAGqmC,IAAI,CAAC7zC,CAAD,CAAhB;;AAEA,UACEwN,GAAG,KAAK,iBAAR,IACAA,GAAG,KAAK,kBADR,IAEAA,GAAG,KAAK,eAHV,EAIE;AAEA+wB,QAAAA,OAAO,CAAC/wB,GAAD,CAAP,GAAe,KAAKA,GAAL,CAAf;AACD;AACF;;AAED,WAAO+wB,OAAP;AACD;;AAtC4B;;AAyC/B,AAAO,MAAMoe,SAAN,SAAwBtB,UAAxB,CAAmC;AACxC/rC,EAAAA,SAAS,GAAmB;AAE1B,WAAO,IAAIktC,IAAJ,CAAS,IAAT,EAAe,KAAKj9C,KAAL,CAAW3B,KAA1B,EAAiC,KAAK2B,KAAL,CAAWiK,QAA5C,CAAP;AACD;;AAEDyC,EAAAA,WAAW,CAAc1C,GAAd,EAA2BjK,GAA3B,EAA6C;AAEtD,WAAO,IAAIk9C,IAAJ,CAAS,IAAT,EAAejzC,GAAf,EAAoBjK,GAApB,CAAP;AACD;;AAGDimC,EAAAA,eAAe,CAAc/kC,IAAd,EAAiC;AAC9C,WAAO,KAAKyL,WAAL,CAAiBzL,IAAI,CAAC5C,KAAtB,EAA6B4C,IAAI,CAAClB,GAAL,CAAS1B,KAAtC,CAAP;AACD;;AAID2R,EAAAA,UAAU,CAAc3P,IAAd,EAAuBY,IAAvB,EAAwC;AAChD,WAAO,KAAK6L,YAAL,CACLzM,IADK,EAELY,IAFK,EAGL,KAAKjB,KAAL,CAAWqK,UAHN,EAIL,KAAKrK,KAAL,CAAWsK,aAJN,CAAP;AAMD;;AAIDwC,EAAAA,YAAY,CACVzM,IADU,EAEVY,IAFU,EAGV+I,GAHU,EAIVjK,GAJU,EAKP;AACH;AAMAM,IAAAA,IAAI,CAACY,IAAL,GAAYA,IAAZ;AACAZ,IAAAA,IAAI,CAAC/B,GAAL,GAAW0L,GAAX;AACA3J,IAAAA,IAAI,CAACN,GAAL,CAASzB,GAAT,GAAeyB,GAAf;AACA,QAAI,KAAK7K,OAAL,CAAa+/C,MAAjB,EAAyB50C,IAAI,CAAC88C,KAAL,CAAW,CAAX,IAAgBnzC,GAAhB;AACzB,SAAKhJ,cAAL,CAAoBX,IAApB;AACA,WAAOA,IAAP;AACD;;AAED6wC,EAAAA,kBAAkB,CAAC7wC,IAAD,EAAiBhC,KAAjB,EAAgC4L,QAAhC,EAA0D;AAC1E5J,IAAAA,IAAI,CAAChC,KAAL,GAAaA,KAAb;AACAgC,IAAAA,IAAI,CAACN,GAAL,CAAS1B,KAAT,GAAiB4L,QAAjB;AACA,QAAI,KAAK/U,OAAL,CAAa+/C,MAAjB,EAAyB50C,IAAI,CAAC88C,KAAL,CAAW,CAAX,IAAgB9+C,KAAhB;AAC1B;;AAED6b,EAAAA,gBAAgB,CACd7Z,IADc,EAEd/B,GAAY,GAAG,KAAK0B,KAAL,CAAWqK,UAFZ,EAGdD,MAAiB,GAAG,KAAKpK,KAAL,CAAWsK,aAHjB,EAIR;AACNjK,IAAAA,IAAI,CAAC/B,GAAL,GAAWA,GAAX;AACA+B,IAAAA,IAAI,CAACN,GAAL,CAASzB,GAAT,GAAe8L,MAAf;AACA,QAAI,KAAKlV,OAAL,CAAa+/C,MAAjB,EAAyB50C,IAAI,CAAC88C,KAAL,CAAW,CAAX,IAAgB7+C,GAAhB;AAC1B;;AAKD0pB,EAAAA,0BAA0B,CAAC3nB,IAAD,EAAiBg9C,YAAjB,EAA+C;AACvE,SAAKnM,kBAAL,CAAwB7wC,IAAxB,EAA8Bg9C,YAAY,CAACh/C,KAA3C,EAAkDg/C,YAAY,CAACt9C,GAAb,CAAiB1B,KAAnE;AACD;;AAtEuC;;ACxB1C,MAAMi/C,6BAA6B,GAAIj9C,IAAD,IAAgB;AACpD,SAAOA,IAAI,CAACY,IAAL,KAAc,yBAAd,GACHq8C,6BAA6B,CAACj9C,IAAI,CAACsM,UAAN,CAD1B,GAEHtM,IAFJ;AAGD,CAJD;;AAMA,AAAe,MAAMk9C,UAAN,SAAyBH,SAAzB,CAAmC;AA2BhD/sC,EAAAA,YAAY,CAAChQ,IAAD,EAAmB;AAAA;;AAC7B,QAAIgO,aAAa,GAAGtN,SAApB;;AACA,QAAIV,IAAI,CAACY,IAAL,KAAc,yBAAd,oBAA2CZ,IAAI,CAACwM,KAAhD,qBAA2C,YAAYwB,aAAvD,CAAJ,EAA0E;AACxEA,MAAAA,aAAa,GAAGivC,6BAA6B,CAACj9C,IAAD,CAA7C;;AACA,UACEgO,aAAa,CAACpN,IAAd,KAAuB,YAAvB,IACAoN,aAAa,CAACpN,IAAd,KAAuB,kBAFzB,EAGE;AACA,aAAKsJ,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACoD,8BAA9B;AACD;AACF;;AAED,YAAQ3E,IAAI,CAACY,IAAb;AACE,WAAK,YAAL;AACA,WAAK,eAAL;AACA,WAAK,cAAL;AACA,WAAK,mBAAL;AACE;;AAEF,WAAK,kBAAL;AACEZ,QAAAA,IAAI,CAACY,IAAL,GAAY,eAAZ;;AACA,aACE,IAAIR,CAAC,GAAG,CAAR,EAAWf,MAAM,GAAGW,IAAI,CAACmB,UAAL,CAAgB9B,MAApC,EAA4CF,IAAI,GAAGE,MAAM,GAAG,CAD9D,EAEEe,CAAC,GAAGf,MAFN,EAGEe,CAAC,EAHH,EAIE;AAAA;;AACA,gBAAM0M,IAAI,GAAG9M,IAAI,CAACmB,UAAL,CAAgBf,CAAhB,CAAb;AACA,gBAAM8P,MAAM,GAAG9P,CAAC,KAAKjB,IAArB;AACA,eAAK8Q,gCAAL,CAAsCnD,IAAtC,EAA4CoD,MAA5C;;AAEA,cACEA,MAAM,IACNpD,IAAI,CAAClM,IAAL,KAAc,aADd,qBAEAZ,IAAI,CAACwM,KAFL,qBAEA,aAAYyW,aAFZ,CADF,EAIE;AACA,iBAAK6lB,gBAAL,CAAsB9oC,IAAI,CAACwM,KAAL,CAAWyW,aAAjC;AACD;AACF;;AACD;;AAEF,WAAK,gBAAL;AACE,aAAKjT,YAAL,CAAkBhQ,IAAI,CAAC4L,KAAvB;AACA;;AAEF,WAAK,eAAL;AAAsB;AACpB,eAAKuxC,qBAAL,CAA2Bn9C,IAA3B;AAEAA,UAAAA,IAAI,CAACY,IAAL,GAAY,aAAZ;AACA,gBAAMw8C,GAAG,GAAGp9C,IAAI,CAACsf,QAAjB;AACA,eAAKtP,YAAL,CAAkBotC,GAAlB;AACA;AACD;;AAED,WAAK,iBAAL;AACEp9C,QAAAA,IAAI,CAACY,IAAL,GAAY,cAAZ;AACA,aAAKoiB,gBAAL,CAAsBhjB,IAAI,CAACC,QAA3B,kBAAqCD,IAAI,CAACwM,KAA1C,qBAAqC,aAAYyW,aAAjD;AACA;;AAEF,WAAK,sBAAL;AACE,YAAIjjB,IAAI,CAAC6kB,QAAL,KAAkB,GAAtB,EAA2B;AACzB,eAAK3a,KAAL,CAAWlK,IAAI,CAAC8lB,IAAL,CAAU7nB,GAArB,EAA0BsD,MAAM,CAAC4D,qBAAjC;AACD;;AAEDnF,QAAAA,IAAI,CAACY,IAAL,GAAY,mBAAZ;AACA,eAAOZ,IAAI,CAAC6kB,QAAZ;AACA,aAAK7U,YAAL,CAAkBhQ,IAAI,CAAC8lB,IAAvB;AACA;;AAEF,WAAK,yBAAL;AACE,aAAK9V,YAAL,CAAoBhC,aAApB;AACA;AA1DJ;;AAgEA,WAAOhO,IAAP;AACD;;AAEDiQ,EAAAA,gCAAgC,CAACnD,IAAD,EAAaoD,MAAb,EAA8B;AAC5D,QAAIpD,IAAI,CAAClM,IAAL,KAAc,cAAlB,EAAkC;AAChC,YAAMihB,KAAK,GACT/U,IAAI,CAAC5B,IAAL,KAAc,KAAd,IAAuB4B,IAAI,CAAC5B,IAAL,KAAc,KAArC,GACI3J,MAAM,CAACyE,kBADX,GAEIzE,MAAM,CAAC0E,gBAHb;AAKA,WAAKiE,KAAL,CAAW4C,IAAI,CAACc,GAAL,CAAS5P,KAApB,EAA2B6jB,KAA3B;AACD,KAPD,MAOO,IAAI/U,IAAI,CAAClM,IAAL,KAAc,eAAd,IAAiC,CAACsP,MAAtC,EAA8C;AACnD,WAAK44B,gBAAL,CAAsBh8B,IAAI,CAAC9O,KAA3B;AACD,KAFM,MAEA;AACL,WAAKgS,YAAL,CAAkBlD,IAAlB;AACD;AACF;;AAIDkW,EAAAA,gBAAgB,CACdzS,QADc,EAEduU,gBAFc,EAGW;AACzB,QAAI7mB,GAAG,GAAGsS,QAAQ,CAAClR,MAAnB;;AACA,QAAIpB,GAAJ,EAAS;AACP,YAAMkB,IAAI,GAAGoR,QAAQ,CAACtS,GAAG,GAAG,CAAP,CAArB;;AACA,UAAIkB,IAAI,IAAIA,IAAI,CAACyB,IAAL,KAAc,aAA1B,EAAyC;AACvC,UAAE3C,GAAF;AACD,OAFD,MAEO,IAAIkB,IAAI,IAAIA,IAAI,CAACyB,IAAL,KAAc,eAA1B,EAA2C;AAChDzB,QAAAA,IAAI,CAACyB,IAAL,GAAY,aAAZ;AACA,cAAMw8C,GAAG,GAAGj+C,IAAI,CAACmgB,QAAjB;AACA,aAAKtP,YAAL,CAAkBotC,GAAlB;;AACA,YACEA,GAAG,CAACx8C,IAAJ,KAAa,YAAb,IACAw8C,GAAG,CAACx8C,IAAJ,KAAa,kBADb,IAEAw8C,GAAG,CAACx8C,IAAJ,KAAa,cAFb,IAGAw8C,GAAG,CAACx8C,IAAJ,KAAa,eAJf,EAKE;AACA,eAAK8Z,UAAL,CAAgB0iC,GAAG,CAACp/C,KAApB;AACD;;AAED,YAAI8mB,gBAAJ,EAAsB;AACpB,eAAKu4B,2BAAL,CAAiCv4B,gBAAjC;AACD;;AAED,UAAE7mB,GAAF;AACD;AACF;;AACD,SAAK,IAAImC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGnC,GAApB,EAAyBmC,CAAC,EAA1B,EAA8B;AAC5B,YAAMivC,GAAG,GAAG9+B,QAAQ,CAACnQ,CAAD,CAApB;;AACA,UAAIivC,GAAJ,EAAS;AACP,aAAKr/B,YAAL,CAAkBq/B,GAAlB;;AACA,YAAIA,GAAG,CAACzuC,IAAJ,KAAa,aAAjB,EAAgC;AAC9B,eAAKkoC,gBAAL,CAAsBuG,GAAG,CAACrxC,KAA1B;AACD;AACF;AACF;;AACD,WAAOuS,QAAP;AACD;;AAIDwU,EAAAA,gBAAgB,CACdxU,QADc,EAEdC,mBAFc,EAGe;AAC7B,WAAOD,QAAP;AACD;;AAEDD,EAAAA,oBAAoB,CAClBC,QADkB,EAElBC,mBAFkB,EAGZ;AACN,SAAKuU,gBAAL,CAAsBxU,QAAtB,EAAgCC,mBAAhC;;AADM,0BAGaD,QAHb,eAGuB;AAAxB,YAAMtD,IAAI,GAAIsD,QAAJ,IAAV;;AACH,UAAItD,IAAI,IAAIA,IAAI,CAACrM,IAAL,KAAc,iBAA1B,EAA6C;AAC3C,aAAK0P,oBAAL,CAA0BrD,IAAI,CAAChN,QAA/B;AACD;AACF;AACF;;AAIDq9C,EAAAA,WAAW,CACT7vC,mBADS,EAETiU,gBAFS,EAGM;AACf,UAAM1hB,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAKsE,IAAL;AACAhU,IAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAKmD,gBAAL,CACd,KADc,EAEdhV,mBAFc,EAGd/M,SAHc,EAIdghB,gBAJc,CAAhB;AAMA,WAAO,KAAK/R,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAEDu9C,EAAAA,gBAAgB,GAAgB;AAC9B,UAAMv9C,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAKsE,IAAL;AACAhU,IAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAK6xB,gBAAL,EAAhB;AACA,WAAO,KAAKxhC,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CAAP;AACD;;AAGDmxC,EAAAA,gBAAgB,GAAY;AAC1B,YAAQ,KAAKxxC,KAAL,CAAWiB,IAAnB;AACE,WAAKsO,KAAE,CAAC3Z,QAAR;AAAkB;AAChB,gBAAMyK,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,eAAKsE,IAAL;AACAhU,UAAAA,IAAI,CAACC,QAAL,GAAgB,KAAKknC,gBAAL,CACdj4B,KAAE,CAACxZ,QADW,MAGd,IAHc,CAAhB;AAKA,iBAAO,KAAKia,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAED,WAAKkP,KAAE,CAACtZ,MAAR;AACE,eAAO,KAAK4nD,QAAL,CAActuC,KAAE,CAACnZ,MAAjB,EAAyB,IAAzB,CAAP;AAbJ;;AAgBA,WAAO,KAAKojB,eAAL,EAAP;AACD;;AAEDguB,EAAAA,gBAAgB,CACdsW,KADc,EAEdC,aAFc,EAGdC,UAHc,EAId32B,cAJc,EAKiC;AAC/C,UAAM42B,IAA0C,GAAG,EAAnD;AACA,QAAIC,KAAK,GAAG,IAAZ;;AACA,WAAO,CAAC,KAAKllC,GAAL,CAAS8kC,KAAT,CAAR,EAAyB;AACvB,UAAII,KAAJ,EAAW;AACTA,QAAAA,KAAK,GAAG,KAAR;AACD,OAFD,MAEO;AACL,aAAKzlC,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACD;;AACD,UAAIwnD,UAAU,IAAI,KAAKr/C,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,CAAlB,EAAwC;AAEtCynD,QAAAA,IAAI,CAAC/9C,IAAL,CAAU,IAAV;AACD,OAHD,MAGO,IAAI,KAAK8Y,GAAL,CAAS8kC,KAAT,CAAJ,EAAqB;AAC1B;AACD,OAFM,MAEA,IAAI,KAAKn/C,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAAJ,EAA6B;AAClCgnD,QAAAA,IAAI,CAAC/9C,IAAL,CAAU,KAAK+lB,4BAAL,CAAkC,KAAK23B,gBAAL,EAAlC,CAAV;AACA,aAAKO,mBAAL,CAAyBJ,aAAzB;AACA,aAAKtlC,MAAL,CAAYqlC,KAAZ;AACA;AACD,OALM,MAKA;AACL,cAAMvO,UAAU,GAAG,EAAnB;;AACA,YAAI,KAAK5wC,KAAL,CAAW4Q,KAAE,CAACnY,EAAd,KAAqB,KAAK8H,SAAL,CAAe,YAAf,CAAzB,EAAuD;AACrD,eAAKqL,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACuH,6BAApC;AACD;;AACD,eAAO,KAAKxK,KAAL,CAAW4Q,KAAE,CAACnY,EAAd,CAAP,EAA0B;AACxBm4C,UAAAA,UAAU,CAACrvC,IAAX,CAAgB,KAAKk+C,cAAL,EAAhB;AACD;;AACDH,QAAAA,IAAI,CAAC/9C,IAAL,CAAU,KAAKovC,uBAAL,CAA6BjoB,cAA7B,EAA6CkoB,UAA7C,CAAV;AACD;AACF;;AACD,WAAO0O,IAAP;AACD;;AAED3O,EAAAA,uBAAuB,CACrBjoB,cADqB,EAErBkoB,UAFqB,EAGU;AAC/B,UAAMppB,IAAI,GAAG,KAAKD,iBAAL,EAAb;AACA,SAAKD,4BAAL,CAAkCE,IAAlC;AACA,UAAMupB,GAAG,GAAG,KAAKxpB,iBAAL,CAAuBC,IAAI,CAAC9nB,KAA5B,EAAmC8nB,IAAI,CAACpmB,GAAL,CAAS1B,KAA5C,EAAmD8nB,IAAnD,CAAZ;;AACA,QAAIopB,UAAU,CAAC7vC,MAAf,EAAuB;AACrBymB,MAAAA,IAAI,CAACopB,UAAL,GAAkBA,UAAlB;AACD;;AACD,WAAOG,GAAP;AACD;;AAEDzpB,EAAAA,4BAA4B,CAAClF,KAAD,EAA0B;AACpD,WAAOA,KAAP;AACD;;AAIDmF,EAAAA,iBAAiB,CACf1W,QADe,EAEfvF,QAFe,EAGfkc,IAHe,EAIN;AACTlc,IAAAA,QAAQ,GAAGA,QAAQ,IAAI,KAAKjK,KAAL,CAAWiK,QAAlC;AACAuF,IAAAA,QAAQ,GAAGA,QAAQ,IAAI,KAAKxP,KAAL,CAAW3B,KAAlC;AACA8nB,IAAAA,IAAI,GAAGA,IAAI,IAAI,KAAKqrB,gBAAL,EAAf;AACA,QAAI,CAAC,KAAKx4B,GAAL,CAASzJ,KAAE,CAAChY,EAAZ,CAAL,EAAsB,OAAO4uB,IAAP;AAEtB,UAAM9lB,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,IAAAA,IAAI,CAAC8lB,IAAL,GAAYA,IAAZ;AACA9lB,IAAAA,IAAI,CAAC4c,KAAL,GAAa,KAAK6F,gBAAL,EAAb;AACA,WAAO,KAAK9S,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAKDgN,EAAAA,SAAS,CACPC,IADO,EAEPC,WAAyB,GAAG5Q,SAFrB,EAGP6Q,YAHO,EAIPC,kBAJO,EAKPC,kBALO,EAMP2wC,iBAA2B,GAAG,KANvB,EAOD;AACN,YAAQ/wC,IAAI,CAACrM,IAAb;AACE,WAAK,YAAL;AACE,YACE,KAAKjB,KAAL,CAAWsT,MAAX,KAIC+qC,iBAAiB,GACdrqC,wBAAwB,CAAC1G,IAAI,CAACrY,IAAN,EAAY,KAAK4e,QAAjB,CADV,GAEdE,4BAA4B,CAACzG,IAAI,CAACrY,IAAN,CANhC,CADF,EAQE;AACA,eAAKsV,KAAL,CACE+C,IAAI,CAACjP,KADP,EAEEkP,WAAW,KAAK5Q,SAAhB,GACIiF,MAAM,CAACyF,mBADX,GAEIzF,MAAM,CAAC0F,0BAJb,EAKEgG,IAAI,CAACrY,IALP;AAOD;;AAED,YAAIuY,YAAJ,EAAkB;AAYhB,gBAAMS,GAAG,GAAI,IAAGX,IAAI,CAACrY,IAAK,EAA1B;;AAEA,cAAIuY,YAAY,CAACS,GAAD,CAAhB,EAAuB;AACrB,iBAAK1D,KAAL,CAAW+C,IAAI,CAACjP,KAAhB,EAAuBuD,MAAM,CAACwE,SAA9B;AACD,WAFD,MAEO;AACLoH,YAAAA,YAAY,CAACS,GAAD,CAAZ,GAAoB,IAApB;AACD;AACF;;AACD,YAAIP,kBAAkB,IAAIJ,IAAI,CAACrY,IAAL,KAAc,KAAxC,EAA+C;AAC7C,eAAKsV,KAAL,CAAW+C,IAAI,CAACjP,KAAhB,EAAuBuD,MAAM,CAACyD,mBAA9B;AACD;;AACD,YAAI,EAAEkI,WAAW,GAAG5Q,SAAhB,CAAJ,EAAgC;AAC9B,eAAKse,KAAL,CAAWC,WAAX,CAAuB5N,IAAI,CAACrY,IAA5B,EAAkCsY,WAAlC,EAA+CD,IAAI,CAACjP,KAApD;AACD;;AACD;;AAEF,WAAK,kBAAL;AACE,YAAIkP,WAAW,KAAK5Q,SAApB,EAA+B;AAC7B,eAAK4N,KAAL,CAAW+C,IAAI,CAACjP,KAAhB,EAAuBuD,MAAM,CAACsD,6BAA9B;AACD;;AACD;;AAEF,WAAK,eAAL;AAAA,6CACmBoI,IAAI,CAAC9L,UADxB,wCACoC;AAA7B,cAAI2L,IAAI,wBAAR;AACH,cAAIA,IAAI,CAAClM,IAAL,KAAc,gBAAlB,EAAoCkM,IAAI,GAAGA,IAAI,CAAClB,KAAZ,CAApC,KAIK,IAAIkB,IAAI,CAAClM,IAAL,KAAc,cAAlB,EAAkC;AAEvC,eAAKoM,SAAL,CACEF,IADF,EAEEI,WAFF,EAGEC,YAHF,EAIE,8BAJF,EAKEE,kBALF;AAOD;;AACD;;AAEF,WAAK,cAAL;AAAA,2CACqBJ,IAAI,CAAChN,QAD1B,sCACoC;AAA7B,gBAAMg+C,IAAI,sBAAV;;AACH,cAAIA,IAAJ,EAAU;AACR,iBAAKjxC,SAAL,CACEixC,IADF,EAEE/wC,WAFF,EAGEC,YAHF,EAIE,6BAJF,EAKEE,kBALF;AAOD;AACF;;AACD;;AAEF,WAAK,mBAAL;AACE,aAAKL,SAAL,CACEC,IAAI,CAAC6Y,IADP,EAEE5Y,WAFF,EAGEC,YAHF,EAIE,oBAJF;AAMA;;AAEF,WAAK,aAAL;AACE,aAAKH,SAAL,CACEC,IAAI,CAACqS,QADP,EAEEpS,WAFF,EAGEC,YAHF,EAIE,cAJF;AAMA;;AAEF,WAAK,yBAAL;AACE,aAAKH,SAAL,CACEC,IAAI,CAACX,UADP,EAEEY,WAFF,EAGEC,YAHF,EAIE,0BAJF;AAMA;;AAEF;AAAS;AACP,eAAKjD,KAAL,CACE+C,IAAI,CAACjP,KADP,EAEEkP,WAAW,KAAK5Q,SAAhB,GACIiF,MAAM,CAACgD,UADX,GAEIhD,MAAM,CAACiD,iBAJb,EAKE4I,kBALF;AAOD;AAzHH;AA2HD;;AAED+vC,EAAAA,qBAAqB,CAACn9C,IAAD,EAA4B;AAC/C,QACEA,IAAI,CAACsf,QAAL,CAAc1e,IAAd,KAAuB,YAAvB,IACAZ,IAAI,CAACsf,QAAL,CAAc1e,IAAd,KAAuB,kBAFzB,EAGE;AACA,WAAKsJ,KAAL,CAAWlK,IAAI,CAACsf,QAAL,CAActhB,KAAzB,EAAgCuD,MAAM,CAACuD,4BAAvC;AACD;AACF;;AAEDg5C,EAAAA,mBAAmB,CAACL,KAAD,EAAyC;AAC1D,QAAI,KAAKn/C,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,CAAJ,EAA0B;AACxB,UAAI,KAAK0yC,iBAAL,OAA6B4U,KAAjC,EAAwC;AACtC,aAAKJ,2BAAL,CAAiC,KAAK19C,KAAL,CAAW3B,KAA5C;AACD,OAFD,MAEO;AACL,aAAK8qC,gBAAL,CAAsB,KAAKnpC,KAAL,CAAW3B,KAAjC;AACD;AACF;AACF;;AAED8qC,EAAAA,gBAAgB,CAACn/B,GAAD,EAAc;AAC5B,UAAM,KAAKO,KAAL,CAAWP,GAAX,EAAgBpI,MAAM,CAAC4B,gBAAvB,CAAN;AACD;;AAEDk6C,EAAAA,2BAA2B,CAAC1zC,GAAD,EAAc;AACvC,SAAKO,KAAL,CAAWP,GAAX,EAAgBpI,MAAM,CAACqF,iBAAvB;AACD;;AAjd+C;;ACmBnC,MAAMs3C,gBAAN,SAA+BhB,UAA/B,CAA0C;AA4BvD3vC,EAAAA,oBAAoB,CAClBT,IADkB,EAElBU,QAFkB,EAGlBC,mBAHkB,EAIZ;AACN,QACEX,IAAI,CAAClM,IAAL,KAAc,eAAd,IACAkM,IAAI,CAACY,QADL,IAEAZ,IAAI,CAAC5B,IAFL,IAIA4B,IAAI,CAACa,SALP,EAME;AACA;AACD;;AAED,UAAMC,GAAG,GAAGd,IAAI,CAACc,GAAjB;AAEA,UAAMhZ,IAAI,GAAGgZ,GAAG,CAAChN,IAAJ,KAAa,YAAb,GAA4BgN,GAAG,CAAChZ,IAAhC,GAAuCmX,MAAM,CAAC6B,GAAG,CAAChC,KAAL,CAA1D;;AAEA,QAAIhX,IAAI,KAAK,WAAb,EAA0B;AACxB,UAAI4Y,QAAQ,CAACK,IAAb,EAAmB;AACjB,YAAIJ,mBAAJ,EAAyB;AAGvB,cAAIA,mBAAmB,CAACK,WAApB,KAAoC,CAAC,CAAzC,EAA4C;AAC1CL,YAAAA,mBAAmB,CAACK,WAApB,GAAkCF,GAAG,CAAC5P,KAAtC;AACD;AACF,SAND,MAMO;AACL,eAAKkM,KAAL,CAAW0D,GAAG,CAAC5P,KAAf,EAAsBuD,MAAM,CAAC0B,cAA7B;AACD;AACF;;AAEDuK,MAAAA,QAAQ,CAACK,IAAT,GAAgB,IAAhB;AACD;AACF;;AAGDswC,EAAAA,aAAa,GAAiB;AAC5B,QAAIC,UAAU,GAAGtc,KAAjB;;AACA,QAAI,KAAKjjC,SAAL,CAAe,eAAf,KAAmC,KAAK2U,QAA5C,EAAsD;AACpD4qC,MAAAA,UAAU,IAAIpc,WAAd;AACD;;AACD,SAAKpnB,KAAL,CAAWE,KAAX,CAAiBpgB,aAAjB;AACA,SAAKqX,SAAL,CAAe+I,KAAf,CAAqBsjC,UAArB;AACA,SAAK90B,SAAL;AACA,UAAMrc,IAAI,GAAG,KAAK2L,eAAL,EAAb;;AACA,QAAI,CAAC,KAAKta,KAAL,CAAW4Q,KAAE,CAAC5Z,GAAd,CAAL,EAAyB;AACvB,WAAKolB,UAAL;AACD;;AACDzN,IAAAA,IAAI,CAAC4oC,QAAL,GAAgB,KAAKl2C,KAAL,CAAWk2C,QAA3B;AACA5oC,IAAAA,IAAI,CAACjC,MAAL,GAAc,KAAKrL,KAAL,CAAWqL,MAAzB;AACA,WAAOiC,IAAP;AACD;;AAuBD2L,EAAAA,eAAe,CACb6I,IADa,EAEbhU,mBAFa,EAGC;AACd,UAAM0B,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,UAAMqD,IAAI,GAAG,KAAKwV,gBAAL,CAAsBhB,IAAtB,EAA4BhU,mBAA5B,CAAb;;AACA,QAAI,KAAKnP,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,CAAJ,EAA0B;AACxB,YAAM6J,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,MAAAA,IAAI,CAACspC,WAAL,GAAmB,CAACr8B,IAAD,CAAnB;;AACA,aAAO,KAAK0L,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAAP,EAA2B;AACzB6J,QAAAA,IAAI,CAACspC,WAAL,CAAiBzpC,IAAjB,CAAsB,KAAK4iB,gBAAL,CAAsBhB,IAAtB,EAA4BhU,mBAA5B,CAAtB;AACD;;AACD,WAAKsX,gBAAL,CAAsB/kB,IAAI,CAACspC,WAA3B;AACA,aAAO,KAAK35B,UAAL,CAAgB3P,IAAhB,EAAsB,oBAAtB,CAAP;AACD;;AACD,WAAOiN,IAAP;AACD;;AAKDwV,EAAAA,gBAAgB,CACdhB,IADc,EAEdhU,mBAFc,EAGd4Z,cAHc,EAId3F,gBAJc,EAKA;AACd,UAAMvS,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;;AACA,QAAI,KAAKyQ,YAAL,CAAkB,OAAlB,CAAJ,EAAgC;AAC9B,UAAI,KAAKtI,SAAL,CAAeC,QAAnB,EAA6B;AAC3B,YAAI8T,IAAI,GAAG,KAAKu4B,UAAL,CAAgB58B,IAAhB,CAAX;;AACA,YAAI4F,cAAJ,EAAoB;AAClBvB,UAAAA,IAAI,GAAGuB,cAAc,CAACF,IAAf,CAAoB,IAApB,EAA0BrB,IAA1B,EAAgC3W,QAAhC,EAA0CvF,QAA1C,CAAP;AACD;;AACD,eAAOkc,IAAP;AACD,OAND,MAMO;AAGL,aAAKnmB,KAAL,CAAW+R,WAAX,GAAyB,KAAzB;AACD;AACF;;AAED,QAAI4sC,mBAAJ;;AACA,QAAI7wC,mBAAJ,EAAyB;AACvB6wC,MAAAA,mBAAmB,GAAG,KAAtB;AACD,KAFD,MAEO;AACL7wC,MAAAA,mBAAmB,GAAG,IAAIkvC,gBAAJ,EAAtB;AACA2B,MAAAA,mBAAmB,GAAG,IAAtB;AACD;;AAED,QAAI,KAAKhgD,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,KAAyB,KAAKqI,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAA7B,EAAkD;AAChD,WAAK+K,KAAL,CAAWu1C,gBAAX,GAA8B,KAAKv1C,KAAL,CAAW3B,KAAzC;AACD;;AAED,QAAI8nB,IAAI,GAAG,KAAKy4B,qBAAL,CACT98B,IADS,EAEThU,mBAFS,EAGTiU,gBAHS,CAAX;;AAKA,QAAI2F,cAAJ,EAAoB;AAClBvB,MAAAA,IAAI,GAAGuB,cAAc,CAACF,IAAf,CAAoB,IAApB,EAA0BrB,IAA1B,EAAgC3W,QAAhC,EAA0CvF,QAA1C,CAAP;AACD;;AACD,QAAI,KAAKjK,KAAL,CAAWiB,IAAX,CAAgB9M,QAApB,EAA8B;AAC5B,YAAMkM,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA,YAAMib,QAAQ,GAAG,KAAKllB,KAAL,CAAWiM,KAA5B;AACA5L,MAAAA,IAAI,CAAC6kB,QAAL,GAAgBA,QAAhB;;AAEA,UAAIA,QAAQ,KAAK,KAAjB,EAAwB;AACtB,aAAKytB,YAAL,CAAkB,mBAAlB;AACD;;AACD,UAAIztB,QAAQ,KAAK,KAAb,IAAsBA,QAAQ,KAAK,KAAvC,EAA8C;AAC5C,aAAKytB,YAAL,CAAkB,mBAAlB;AACD;;AACD,UAAI,KAAKh0C,KAAL,CAAW4Q,KAAE,CAAChY,EAAd,CAAJ,EAAuB;AACrB8I,QAAAA,IAAI,CAAC8lB,IAAL,GAAY,KAAK9V,YAAL,CAAkB8V,IAAlB,CAAZ;AACArY,QAAAA,mBAAmB,CAACK,WAApB,GAAkC,CAAC,CAAnC;AACD,OAHD,MAGO;AACL9N,QAAAA,IAAI,CAAC8lB,IAAL,GAAYA,IAAZ;AACD;;AAED,UAAIrY,mBAAmB,CAACivC,eAApB,IAAuC18C,IAAI,CAAC8lB,IAAL,CAAU9nB,KAArD,EAA4D;AAC1DyP,QAAAA,mBAAmB,CAACivC,eAApB,GAAsC,CAAC,CAAvC;AACD;;AAED,WAAK1vC,SAAL,CAAe8Y,IAAf,EAAqBplB,SAArB,EAAgCA,SAAhC,EAA2C,uBAA3C;AAEA,WAAKsT,IAAL;AACAhU,MAAAA,IAAI,CAAC4c,KAAL,GAAa,KAAK6F,gBAAL,CAAsBhB,IAAtB,CAAb;AACA,aAAO,KAAK9R,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;AACD,KA3BD,MA2BO,IAAIs+C,mBAAJ,EAAyB;AAC9B,WAAK9B,qBAAL,CAA2B/uC,mBAA3B,EAAgD,IAAhD;AACD;;AAED,WAAOqY,IAAP;AACD;;AAIDy4B,EAAAA,qBAAqB,CACnB98B,IADmB,EAEnBhU,mBAFmB,EAGnBiU,gBAHmB,EAIL;AACd,UAAMvS,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,UAAMsrC,gBAAgB,GAAG,KAAKv1C,KAAL,CAAWu1C,gBAApC;AACA,UAAMjoC,IAAI,GAAG,KAAKuxC,YAAL,CAAkB/8B,IAAlB,EAAwBhU,mBAAxB,CAAb;;AAEA,QACER,IAAI,CAACrM,IAAL,KAAc,yBAAd,IACAqM,IAAI,CAACjP,KAAL,KAAek3C,gBAFjB,EAGE;AACA,aAAOjoC,IAAP;AACD;;AACD,QAAI,KAAKuvC,qBAAL,CAA2B/uC,mBAA3B,EAAgD,KAAhD,CAAJ,EAA4D,OAAOR,IAAP;AAE5D,WAAO,KAAKuU,gBAAL,CACLvU,IADK,EAELwU,IAFK,EAGLtS,QAHK,EAILvF,QAJK,EAKL8X,gBALK,CAAP;AAOD;;AAEDF,EAAAA,gBAAgB,CACdvU,IADc,EAEdwU,IAFc,EAGdtS,QAHc,EAIdvF,QAJc,EAOd8X,gBAPc,EAQA;AACd,QAAI,KAAK/I,GAAL,CAASzJ,KAAE,CAAC1Y,QAAZ,CAAJ,EAA2B;AACzB,YAAMwJ,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,MAAAA,IAAI,CAACoS,IAAL,GAAYnF,IAAZ;AACAjN,MAAAA,IAAI,CAACkiB,UAAL,GAAkB,KAAKO,gBAAL,EAAlB;AACA,WAAKrK,MAAL,CAAYlJ,KAAE,CAAC7Y,KAAf;AACA2J,MAAAA,IAAI,CAACwiB,SAAL,GAAiB,KAAKC,gBAAL,CAAsBhB,IAAtB,CAAjB;AACA,aAAO,KAAK9R,UAAL,CAAgB3P,IAAhB,EAAsB,uBAAtB,CAAP;AACD;;AACD,WAAOiN,IAAP;AACD;;AAIDuxC,EAAAA,YAAY,CACV/8B,IADU,EAEVhU,mBAFU,EAGI;AACd,UAAM0B,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,UAAMsrC,gBAAgB,GAAG,KAAKv1C,KAAL,CAAWu1C,gBAApC;AACA,UAAMjoC,IAAI,GAAG,KAAKy8B,eAAL,CAAqBj8B,mBAArB,CAAb;;AAEA,QACER,IAAI,CAACrM,IAAL,KAAc,yBAAd,IACAqM,IAAI,CAACjP,KAAL,KAAek3C,gBAFjB,EAGE;AACA,aAAOjoC,IAAP;AACD;;AACD,QAAI,KAAKuvC,qBAAL,CAA2B/uC,mBAA3B,EAAgD,KAAhD,CAAJ,EAA4D;AAC1D,aAAOR,IAAP;AACD;;AAED,WAAO,KAAK8iC,WAAL,CAAiB9iC,IAAjB,EAAuBkC,QAAvB,EAAiCvF,QAAjC,EAA2C,CAAC,CAA5C,EAA+C6X,IAA/C,CAAP;AACD;;AAQDsuB,EAAAA,WAAW,CACTjqB,IADS,EAETkqB,YAFS,EAGTC,YAHS,EAITC,OAJS,EAKTzuB,IALS,EAMK;AACd,QAAIg9B,IAAI,GAAG,KAAK9+C,KAAL,CAAWiB,IAAX,CAAgBrM,KAA3B;;AACA,QAAIkqD,IAAI,IAAI,IAAR,KAAiB,CAACh9B,IAAD,IAAS,CAAC,KAAKnjB,KAAL,CAAW4Q,KAAE,CAAC9U,GAAd,CAA3B,CAAJ,EAAoD;AAClD,UAAIqkD,IAAI,GAAGvO,OAAX,EAAoB;AAClB,cAAMrrB,QAAQ,GAAG,KAAKllB,KAAL,CAAWiM,KAA5B;;AACA,YAAIiZ,QAAQ,KAAK,IAAb,IAAqB,KAAKllB,KAAL,CAAW+1C,0BAApC,EAAgE;AAC9D,iBAAO5vB,IAAP;AACD;;AACD,cAAM9lB,IAAI,GAAG,KAAKqM,WAAL,CAAiB2jC,YAAjB,EAA+BC,YAA/B,CAAb;AACAjwC,QAAAA,IAAI,CAAC8lB,IAAL,GAAYA,IAAZ;AACA9lB,QAAAA,IAAI,CAAC6kB,QAAL,GAAgBA,QAAhB;;AACA,YACEA,QAAQ,KAAK,IAAb,IACAiB,IAAI,CAACllB,IAAL,KAAc,iBADd,KAEC,KAAK/L,OAAL,CAAaigD,8BAAb,IACC,EAAEhvB,IAAI,CAACtZ,KAAL,IAAcsZ,IAAI,CAACtZ,KAAL,CAAWwB,aAA3B,CAHF,CADF,EAKE;AACA,eAAK9D,KAAL,CACE4b,IAAI,CAACxG,QAAL,CAActhB,KADhB,EAEEuD,MAAM,CAACiH,kCAFT;AAID;;AAED,cAAMmzC,EAAE,GAAG,KAAKh8C,KAAL,CAAWiB,IAAtB;AACA,cAAM89C,OAAO,GAAG/C,EAAE,KAAKzsC,KAAE,CAACzX,SAAV,IAAuBkkD,EAAE,KAAKzsC,KAAE,CAACxX,UAAjD;AACA,cAAMinD,QAAQ,GAAGhD,EAAE,KAAKzsC,KAAE,CAAC1X,iBAA3B;;AAEA,YAAImkD,EAAE,KAAKzsC,KAAE,CAAC3X,QAAd,EAAwB;AACtB,eAAK+6C,YAAL,CAAkB,kBAAlB;AACA,eAAK3yC,KAAL,CAAW01C,UAAX,GAAwB,IAAxB;AACA,eAAKuJ,4BAAL,CAAkC94B,IAAlC,EAAwCkqB,YAAxC;AACD,SAJD,MAIO,IAAI2O,QAAJ,EAAc;AAGnBF,UAAAA,IAAI,GAAKvvC,KAAE,CAACxX,UAAL,CAA0CnD,KAAjD;AACD;;AAED,aAAKyf,IAAL;;AAEA,YACE2nC,EAAE,KAAKzsC,KAAE,CAAC3X,QAAV,IACA,KAAKyH,eAAL,CAAqB,kBAArB,EAAyC,UAAzC,MAAyD,SAF3D,EAGE;AACA,cACE,KAAKV,KAAL,CAAW4Q,KAAE,CAACta,IAAd,KACA,KAAK+K,KAAL,CAAWiM,KAAX,KAAqB,OADrB,IAEA,KAAKmG,SAAL,CAAeswB,QAHjB,EAIE;AACA,kBAAM,KAAKn4B,KAAL,CACJ,KAAKvK,KAAL,CAAW3B,KADP,EAEJuD,MAAM,CAACqG,gCAFH,CAAN;AAID;AACF;;AAED5H,QAAAA,IAAI,CAAC4c,KAAL,GAAa,KAAKiiC,oBAAL,CAA0BlD,EAA1B,EAA8B8C,IAA9B,EAAoCh9B,IAApC,CAAb;AACA,aAAK9R,UAAL,CACE3P,IADF,EAEE0+C,OAAO,IAAIC,QAAX,GAAsB,mBAAtB,GAA4C,kBAF9C;AASA,cAAMG,MAAM,GAAG,KAAKn/C,KAAL,CAAWiB,IAA1B;;AACA,YACG+9C,QAAQ,KAAKG,MAAM,KAAK5vC,KAAE,CAACzX,SAAd,IAA2BqnD,MAAM,KAAK5vC,KAAE,CAACxX,UAA9C,CAAT,IACCgnD,OAAO,IAAII,MAAM,KAAK5vC,KAAE,CAAC1X,iBAF5B,EAGE;AACA,gBAAM,KAAK0S,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC8D,yBAApC,CAAN;AACD;;AAED,eAAO,KAAK0qC,WAAL,CACL/vC,IADK,EAELgwC,YAFK,EAGLC,YAHK,EAILC,OAJK,EAKLzuB,IALK,CAAP;AAOD;AACF;;AACD,WAAOqE,IAAP;AACD;;AAKD+4B,EAAAA,oBAAoB,CAClBlD,EADkB,EAElB8C,IAFkB,EAGlBh9B,IAHkB,EAIJ;AACd,UAAMtS,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;;AACA,YAAQ+xC,EAAR;AACE,WAAKzsC,KAAE,CAAC3X,QAAR;AACE,gBAAQ,KAAKyH,eAAL,CAAqB,kBAArB,EAAyC,UAAzC,CAAR;AACE,eAAK,OAAL;AACE,mBAAO,KAAK+/C,0BAAL,CAAgC,MAAM;AAC3C,qBAAO,KAAKC,sBAAL,CACL,KAAKC,wBAAL,CAA8BtD,EAA9B,EAAkC8C,IAAlC,EAAwCh9B,IAAxC,CADK,EAELtS,QAFK,EAGLvF,QAHK,CAAP;AAKD,aANM,CAAP;;AAOF,eAAK,QAAL;AACE,mBAAO,KAAKs1C,8BAAL,CAAoC,MAAM;AAC/C,qBAAO,KAAKC,uBAAL,CAA6BV,IAA7B,EAAmCh9B,IAAnC,CAAP;AACD,aAFM,CAAP;AAVJ;;AAgBF;AACE,eAAO,KAAKw9B,wBAAL,CAA8BtD,EAA9B,EAAkC8C,IAAlC,EAAwCh9B,IAAxC,CAAP;AAnBJ;AAqBD;;AAKDw9B,EAAAA,wBAAwB,CACtBtD,EADsB,EAEtB8C,IAFsB,EAGtBh9B,IAHsB,EAIR;AACd,UAAMtS,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AAEA,WAAO,KAAKmmC,WAAL,CACL,KAAKrG,eAAL,EADK,EAELv6B,QAFK,EAGLvF,QAHK,EAIL+xC,EAAE,CAACrnD,gBAAH,GAAsBmqD,IAAI,GAAG,CAA7B,GAAiCA,IAJ5B,EAKLh9B,IALK,CAAP;AAOD;;AAIDioB,EAAAA,eAAe,CAACj8B,mBAAD,EAAuD;AACpE,QAAI,KAAK4M,YAAL,CAAkB,OAAlB,KAA8B,KAAK+kC,cAAL,EAAlC,EAAyD;AACvD,aAAO,KAAKC,UAAL,EAAP;AACD,KAFD,MAEO,IAAI,KAAK1/C,KAAL,CAAWiB,IAAX,CAAgB7M,MAApB,EAA4B;AACjC,YAAMiM,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,YAAM8rC,MAAM,GAAG,KAAKl9C,KAAL,CAAW4Q,KAAE,CAAC9X,MAAd,CAAf;AACA4I,MAAAA,IAAI,CAAC6kB,QAAL,GAAgB,KAAKllB,KAAL,CAAWiM,KAA3B;AACA5L,MAAAA,IAAI,CAACjM,MAAL,GAAc,IAAd;;AAEA,UAAIiM,IAAI,CAAC6kB,QAAL,KAAkB,OAAtB,EAA+B;AAC7B,aAAKytB,YAAL,CAAkB,kBAAlB;AACD;;AACD,WAAKt+B,IAAL;AAEAhU,MAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAKoqB,eAAL,EAAhB;AAEA,WAAK8S,qBAAL,CAA2B/uC,mBAA3B,EAAgD,IAAhD;;AAEA,UAAI+tC,MAAJ,EAAY;AACV,aAAKxuC,SAAL,CAAehN,IAAI,CAACsf,QAApB,EAA8B5e,SAA9B,EAAyCA,SAAzC,EAAoD,kBAApD;AACD,OAFD,MAEO,IAAI,KAAKf,KAAL,CAAWsT,MAAX,IAAqBjT,IAAI,CAAC6kB,QAAL,KAAkB,QAA3C,EAAqD;AAC1D,cAAMu4B,GAAG,GAAGp9C,IAAI,CAACsf,QAAjB;;AAEA,YAAI89B,GAAG,CAACx8C,IAAJ,KAAa,YAAjB,EAA+B;AAC7B,eAAKsJ,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACwF,YAA9B;AACD,SAFD,MAEO,IACLq2C,GAAG,CAACx8C,IAAJ,KAAa,kBAAb,IACAw8C,GAAG,CAAC39B,QAAJ,CAAa7e,IAAb,KAAsB,aAFjB,EAGL;AACA,eAAKsJ,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACqB,kBAA9B;AACD;AACF;;AAED,aAAO,KAAK+M,UAAL,CACL3P,IADK,EAELw7C,MAAM,GAAG,kBAAH,GAAwB,iBAFzB,CAAP;AAID;;AAED,UAAMrsC,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,QAAIqD,IAAI,GAAG,KAAKqyC,mBAAL,CAAyB7xC,mBAAzB,CAAX;AACA,QAAI,KAAK+uC,qBAAL,CAA2B/uC,mBAA3B,EAAgD,KAAhD,CAAJ,EAA4D,OAAOR,IAAP;;AAC5D,WAAO,KAAKtN,KAAL,CAAWiB,IAAX,CAAgB5M,OAAhB,IAA2B,CAAC,KAAKssB,kBAAL,EAAnC,EAA8D;AAC5D,YAAMtgB,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,MAAAA,IAAI,CAAC6kB,QAAL,GAAgB,KAAKllB,KAAL,CAAWiM,KAA3B;AACA5L,MAAAA,IAAI,CAACjM,MAAL,GAAc,KAAd;AACAiM,MAAAA,IAAI,CAACsf,QAAL,GAAgBrS,IAAhB;AACA,WAAKD,SAAL,CAAeC,IAAf,EAAqBvM,SAArB,EAAgCA,SAAhC,EAA2C,mBAA3C;AACA,WAAKsT,IAAL;AACA/G,MAAAA,IAAI,GAAG,KAAK0C,UAAL,CAAgB3P,IAAhB,EAAsB,kBAAtB,CAAP;AACD;;AACD,WAAOiN,IAAP;AACD;;AAIDqyC,EAAAA,mBAAmB,CAAC7xC,mBAAD,EAAuD;AACxE,UAAM0B,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,UAAMsrC,gBAAgB,GAAG,KAAKv1C,KAAL,CAAWu1C,gBAApC;AACA,UAAMjoC,IAAI,GAAG,KAAKgC,aAAL,CAAmBxB,mBAAnB,CAAb;;AAEA,QACER,IAAI,CAACrM,IAAL,KAAc,yBAAd,IACAqM,IAAI,CAACjP,KAAL,KAAek3C,gBAFjB,EAGE;AACA,aAAOjoC,IAAP;AACD;;AAED,WAAO,KAAKmb,eAAL,CAAqBnb,IAArB,EAA2BkC,QAA3B,EAAqCvF,QAArC,CAAP;AACD;;AAEDwe,EAAAA,eAAe,CACbC,IADa,EAEblZ,QAFa,EAGbvF,QAHa,EAIb0e,OAJa,EAKC;AACd,UAAM3oB,KAAK,GAAG;AACZmpB,MAAAA,mBAAmB,EAAE,KADT;AAEZy2B,MAAAA,eAAe,EAAE,KAAK5P,oBAAL,CAA0BtnB,IAA1B,CAFL;AAGZU,MAAAA,IAAI,EAAE;AAHM,KAAd;;AAKA,OAAG;AACD,YAAMy2B,wBAAwB,GAAG,KAAK7/C,KAAL,CAAWy1C,qBAA5C;;AACA,UAAIz1C,KAAK,CAAC4/C,eAAV,EAA2B;AACzB,aAAK5/C,KAAL,CAAWy1C,qBAAX,GAAmC,IAAnC;AACD;;AACD/sB,MAAAA,IAAI,GAAG,KAAKM,cAAL,CAAoBN,IAApB,EAA0BlZ,QAA1B,EAAoCvF,QAApC,EAA8C0e,OAA9C,EAAuD3oB,KAAvD,CAAP;AAGAA,MAAAA,KAAK,CAAC4/C,eAAN,GAAwB,KAAxB;AACA,WAAK5/C,KAAL,CAAWy1C,qBAAX,GAAmCoK,wBAAnC;AACD,KAVD,QAUS,CAAC7/C,KAAK,CAACopB,IAVhB;;AAWA,WAAOV,IAAP;AACD;;AAMDM,EAAAA,cAAc,CACZN,IADY,EAEZlZ,QAFY,EAGZvF,QAHY,EAIZ0e,OAJY,EAKZ3oB,KALY,EAME;AACd,QAAI,CAAC2oB,OAAD,IAAY,KAAK3P,GAAL,CAASzJ,KAAE,CAAC5Y,WAAZ,CAAhB,EAA0C;AACxC,YAAM0J,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,MAAAA,IAAI,CAACo9B,MAAL,GAAc/U,IAAd;AACAroB,MAAAA,IAAI,CAACqQ,MAAL,GAAc,KAAKovC,eAAL,EAAd;AACA9/C,MAAAA,KAAK,CAACopB,IAAN,GAAa,IAAb;AACA,aAAO,KAAKX,eAAL,CACL,KAAKzY,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CADK,EAELmP,QAFK,EAGLvF,QAHK,EAIL0e,OAJK,CAAP;AAMD;;AACD,QAAIlY,QAAQ,GAAG,KAAf;;AACA,QAAI,KAAK9R,KAAL,CAAW4Q,KAAE,CAACzY,WAAd,CAAJ,EAAgC;AAC9BkJ,MAAAA,KAAK,CAACmpB,mBAAN,GAA4B1Y,QAAQ,GAAG,IAAvC;;AACA,UAAIkY,OAAO,IAAI,KAAKugB,iBAAL,SAAf,EAAuE;AACrElpC,QAAAA,KAAK,CAACopB,IAAN,GAAa,IAAb;AACA,eAAOV,IAAP;AACD;;AACD,WAAKrU,IAAL;AACD;;AACD,UAAMtG,QAAQ,GAAG,KAAKiL,GAAL,CAASzJ,KAAE,CAAC3Z,QAAZ,CAAjB;;AACA,QACG6a,QAAQ,IAAI,CAAC,KAAK9R,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAb,IAAsC,CAAC,KAAKqI,KAAL,CAAW4Q,KAAE,CAACrY,SAAd,CAAxC,IACA6W,QADA,IAEA,KAAKiL,GAAL,CAASzJ,KAAE,CAAC3Y,GAAZ,CAHF,EAIE;AACA,YAAMyJ,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,MAAAA,IAAI,CAACo9B,MAAL,GAAc/U,IAAd;AACAroB,MAAAA,IAAI,CAACyf,QAAL,GAAgB/R,QAAQ,GACpB,KAAKkL,eAAL,EADoB,GAEpBxI,QAAQ,GACR,KAAK+I,eAAL,CAAqB,IAArB,CADQ,GAER,KAAKumC,qBAAL,CAA2B,IAA3B,CAJJ;AAKA1/C,MAAAA,IAAI,CAAC0N,QAAL,GAAgBA,QAAhB;;AAEA,UAAI1N,IAAI,CAACyf,QAAL,CAAc7e,IAAd,KAAuB,aAA3B,EAA0C;AACxC,YAAIZ,IAAI,CAACo9B,MAAL,CAAYx8B,IAAZ,KAAqB,OAAzB,EAAkC;AAChC,eAAKsJ,KAAL,CAAWiF,QAAX,EAAqB5N,MAAM,CAAC+F,iBAA5B;AACD;;AACD,aAAKq4C,UAAL,CAAgBC,cAAhB,CACE5/C,IAAI,CAACyf,QAAL,CAAcvG,EAAd,CAAiBtkB,IADnB,EAEEoL,IAAI,CAACyf,QAAL,CAAczhB,KAFhB;AAID;;AAED,UAAI0P,QAAJ,EAAc;AACZ,aAAK0K,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACD;;AAED,UAAIiK,KAAK,CAACmpB,mBAAV,EAA+B;AAC7B9oB,QAAAA,IAAI,CAACoQ,QAAL,GAAgBA,QAAhB;AACA,eAAO,KAAKT,UAAL,CAAgB3P,IAAhB,EAAsB,0BAAtB,CAAP;AACD,OAHD,MAGO;AACL,eAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,kBAAtB,CAAP;AACD;AACF,KAlCD,MAkCO,IAAI,CAACsoB,OAAD,IAAY,KAAKhqB,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAhB,EAAuC;AAC5C,YAAMy4C,yBAAyB,GAAG,KAAK/uC,KAAL,CAAWgvC,sBAA7C;AACA,YAAMC,WAAW,GAAG,KAAKjvC,KAAL,CAAWkvC,QAA/B;AACA,YAAMC,WAAW,GAAG,KAAKnvC,KAAL,CAAWovC,QAA/B;AACA,WAAKpvC,KAAL,CAAWgvC,sBAAX,GAAoC,IAApC;AACA,WAAKhvC,KAAL,CAAWkvC,QAAX,GAAsB,CAAC,CAAvB;AACA,WAAKlvC,KAAL,CAAWovC,QAAX,GAAsB,CAAC,CAAvB;AAEA,WAAK/6B,IAAL;AAEA,UAAIhU,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAX;AACA5J,MAAAA,IAAI,CAACqQ,MAAL,GAAcgY,IAAd;;AAEA,UAAIjY,QAAJ,EAAc;AACZpQ,QAAAA,IAAI,CAACoQ,QAAL,GAAgB,IAAhB;AACApQ,QAAAA,IAAI,CAACoB,SAAL,GAAiB,KAAKmnB,4BAAL,CAAkCrZ,KAAE,CAAChZ,MAArC,EAA6C,KAA7C,CAAjB;AACD,OAHD,MAGO;AACL8J,QAAAA,IAAI,CAACoB,SAAL,GAAiB,KAAKmnB,4BAAL,CACfrZ,KAAE,CAAChZ,MADY,EAEfyJ,KAAK,CAAC4/C,eAFS,EAGfl3B,IAAI,CAACznB,IAAL,KAAc,QAHC,EAIfynB,IAAI,CAACznB,IAAL,KAAc,OAJC,EAKfZ,IALe,CAAjB;AAOD;;AACD,WAAKmQ,oBAAL,CAA0BnQ,IAA1B,EAAgCL,KAAK,CAACmpB,mBAAtC;;AAEA,UAAInpB,KAAK,CAAC4/C,eAAN,IAAyB,KAAKn4B,qBAAL,EAAzB,IAAyD,CAAChX,QAA9D,EAAwE;AACtEzQ,QAAAA,KAAK,CAACopB,IAAN,GAAa,IAAb;AAEA/oB,QAAAA,IAAI,GAAG,KAAKknB,iCAAL,CACL,KAAK7a,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CADK,EAEL5J,IAFK,CAAP;AAIA,aAAKo8C,8BAAL;AACA,aAAKz8C,KAAL,CAAWkvC,QAAX,GAAsBD,WAAtB;AACA,aAAKjvC,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;AACD,OAVD,MAUO;AACL,aAAKx+B,oBAAL,CAA0BtQ,IAAI,CAACoB,SAA/B;AAQA,YAAIwtC,WAAW,KAAK,CAAC,CAArB,EAAwB,KAAKjvC,KAAL,CAAWkvC,QAAX,GAAsBD,WAAtB;;AAkBxB,YACG,CAAC,KAAKwQ,cAAL,EAAD,IAA0B,CAAC1Q,yBAA5B,IACAI,WAAW,KAAK,CAAC,CAFnB,EAGE;AACA,eAAKnvC,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;AACD;AACF;;AAED,WAAKnvC,KAAL,CAAWgvC,sBAAX,GAAoCD,yBAApC;AAEA,aAAO1uC,IAAP;AACD,KA3EM,MA2EA,IAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAACrY,SAAd,CAAJ,EAA8B;AACnC,aAAO,KAAKg5C,6BAAL,CACL1gC,QADK,EAELvF,QAFK,EAGLye,IAHK,EAIL1oB,KAJK,CAAP;AAMD,KAPM,MAOA;AACLA,MAAAA,KAAK,CAACopB,IAAN,GAAa,IAAb;AACA,aAAOV,IAAP;AACD;AACF;;AAEDwnB,EAAAA,6BAA6B,CAC3B1gC,QAD2B,EAE3BvF,QAF2B,EAG3Bye,IAH2B,EAI3B1oB,KAJ2B,EAK3BqpB,aAL2B,EAMC;AAC5B,UAAMhpB,IAAgC,GAAG,KAAKqM,WAAL,CACvC8C,QADuC,EAEvCvF,QAFuC,CAAzC;AAIA5J,IAAAA,IAAI,CAAC6/C,GAAL,GAAWx3B,IAAX;AACAroB,IAAAA,IAAI,CAAC8/C,KAAL,GAAa,KAAKzW,aAAL,CAAmB,IAAnB,CAAb;AACA,QAAIrgB,aAAJ,EAAmBhpB,IAAI,CAACgP,cAAL,GAAsBga,aAAtB;;AACnB,QAAIrpB,KAAK,CAACmpB,mBAAV,EAA+B;AAC7B,WAAK5e,KAAL,CAAWiF,QAAX,EAAqB5N,MAAM,CAACuE,0BAA5B;AACD;;AACD,WAAO,KAAK6J,UAAL,CAAgB3P,IAAhB,EAAsB,0BAAtB,CAAP;AACD;;AAED2vC,EAAAA,oBAAoB,CAACtnB,IAAD,EAA8B;AAChD,WACEA,IAAI,CAACznB,IAAL,KAAc,YAAd,IACAynB,IAAI,CAACzzB,IAAL,KAAc,OADd,IAEA,KAAK+K,KAAL,CAAWqK,UAAX,KAA0Bqe,IAAI,CAACpqB,GAF/B,IAGA,CAAC,KAAKqiB,kBAAL,EAHD,IAKA+H,IAAI,CAACpqB,GAAL,GAAWoqB,IAAI,CAACrqB,KAAhB,KAA0B,CAL1B,IAMAqqB,IAAI,CAACrqB,KAAL,KAAe,KAAK2B,KAAL,CAAWu1C,gBAP5B;AASD;;AAED/kC,EAAAA,oBAAoB,CAClBnQ,IADkB,EAElBoQ,QAFkB,EAGJ;AACd,QAAIpQ,IAAI,CAACqQ,MAAL,CAAYzP,IAAZ,KAAqB,QAAzB,EAAmC;AACjC,UAAIZ,IAAI,CAACoB,SAAL,CAAe/B,MAAf,KAA0B,CAA9B,EAAiC;AAC/B,aAAK6K,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACoC,eAA9B;AACD,OAFD,MAEO;AACL,cAAMo8C,SAAS,GAAG//C,IAAI,CAACoB,SAAL,CAAe,CAAf,CAAlB;;AACA,YAAI2+C,SAAS,IAAIA,SAAS,CAACn/C,IAAV,KAAmB,eAApC,EAAqD;AACnD,eAAKsJ,KAAL,CAAW61C,SAAS,CAAC/hD,KAArB,EAA4BuD,MAAM,CAACuC,wBAAnC;AACD;AACF;AACF;;AACD,WAAO,KAAK6L,UAAL,CACL3P,IADK,EAELoQ,QAAQ,GAAG,wBAAH,GAA8B,gBAFjC,CAAP;AAID;;AAEDmY,EAAAA,4BAA4B,CAC1Bk1B,KAD0B,EAE1BuC,kBAF0B,EAG1BC,aAH0B,EAI1BC,gBAJ0B,EAK1BC,YAL0B,EAMK;AAC/B,UAAMvC,IAAI,GAAG,EAAb;AACA,QAAIwC,eAAJ;AACA,QAAIvC,KAAK,GAAG,IAAZ;AACA,UAAMwC,6BAA6B,GAAG,KAAK1gD,KAAL,CAAW+1C,0BAAjD;AACA,SAAK/1C,KAAL,CAAW+1C,0BAAX,GAAwC,KAAxC;;AAEA,WAAO,CAAC,KAAK/8B,GAAL,CAAS8kC,KAAT,CAAR,EAAyB;AACvB,UAAII,KAAJ,EAAW;AACTA,QAAAA,KAAK,GAAG,KAAR;AACD,OAFD,MAEO;AACL,aAAKzlC,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;;AACA,YAAI,KAAKmI,KAAL,CAAWm/C,KAAX,CAAJ,EAAuB;AACrB,cAAIwC,aAAJ,EAAmB;AACjB,iBAAK/1C,KAAL,CACE,KAAKvK,KAAL,CAAWkK,YADb,EAEEtI,MAAM,CAACmC,+BAFT;AAID;;AACD,cAAIy8C,YAAJ,EAAkB;AAChB,iBAAKzE,QAAL,CACEyE,YADF,EAEE,eAFF,EAGE,KAAKxgD,KAAL,CAAWkK,YAHb;AAKD;;AACD,eAAKmK,IAAL;AACA;AACD;AACF;;AAID,UAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,KAAyB,CAACmqD,eAA9B,EAA+C;AAC7CA,QAAAA,eAAe,GAAG,KAAKzgD,KAAL,CAAW3B,KAA7B;AACD;;AAED4/C,MAAAA,IAAI,CAAC/9C,IAAL,CACE,KAAKygD,iBAAL,CACE,KADF,EAEEN,kBAAkB,GAAG,IAAIrD,gBAAJ,EAAH,GAA4Bj8C,SAFhD,EAGEs/C,kBAAkB,GAAG;AAAEhiD,QAAAA,KAAK,EAAE;AAAT,OAAH,GAAkB0C,SAHtC,EAIEw/C,gBAJF,CADF;AAQD;;AAGD,QAAIF,kBAAkB,IAAII,eAAtB,IAAyC,KAAKh5B,qBAAL,EAA7C,EAA2E;AACzE,WAAK1M,UAAL;AACD;;AAED,SAAK/a,KAAL,CAAW+1C,0BAAX,GAAwC2K,6BAAxC;AAEA,WAAOzC,IAAP;AACD;;AAEDx2B,EAAAA,qBAAqB,GAAY;AAC/B,WAAO,KAAK9oB,KAAL,CAAW4Q,KAAE,CAACxY,KAAd,KAAwB,CAAC,KAAK4pB,kBAAL,EAAhC;AACD;;AAED4G,EAAAA,iCAAiC,CAC/BlnB,IAD+B,EAE/BmnB,IAF+B,EAGJ;AAAA;;AAC3B,SAAK/O,MAAL,CAAYlJ,KAAE,CAACxY,KAAf;AACA,SAAKyyB,oBAAL,CACEnpB,IADF,EAEEmnB,IAAI,CAAC/lB,SAFP,EAGE,IAHF,iBAIE+lB,IAAI,CAAC3a,KAJP,qBAIE,YAAYyW,aAJd;AAMA,WAAOjjB,IAAP;AACD;;AAIDy/C,EAAAA,eAAe,GAAiB;AAC9B,UAAMtwC,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,WAAO,KAAKwe,eAAL,CAAqB,KAAKnZ,aAAL,EAArB,EAA2CE,QAA3C,EAAqDvF,QAArD,EAA+D,IAA/D,CAAP;AACD;;AAODqF,EAAAA,aAAa,CAACxB,mBAAD,EAAwD;AAGnE,QAAI,KAAK9N,KAAL,CAAWiB,IAAX,KAAoBsO,KAAE,CAAC9W,KAA3B,EAAkC,KAAKigD,UAAL;AAElC,UAAMlwB,UAAU,GAAG,KAAKxoB,KAAL,CAAWu1C,gBAAX,KAAgC,KAAKv1C,KAAL,CAAW3B,KAA9D;AACA,QAAIgC,IAAJ;;AAEA,YAAQ,KAAKL,KAAL,CAAWiB,IAAnB;AACE,WAAKsO,KAAE,CAACtV,MAAR;AACEoG,QAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,aAAKsE,IAAL;;AACA,YACE,KAAK1V,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,KACA,CAAC,KAAK2kB,KAAL,CAAWrL,gBADZ,IAEA,CAAC,KAAK1a,OAAL,CAAa4/C,uBAHhB,EAIE;AACA,eAAKvqC,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAAC8F,eAA9B;AACD,SAND,MAMO,IACL,CAAC,KAAKuT,KAAL,CAAW6lB,UAAZ,IACA,CAAC,KAAK5rC,OAAL,CAAa4/C,uBAFT,EAGL;AACA,eAAKvqC,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAAC+G,eAA9B;AACD;;AAED,YACE,CAAC,KAAKhK,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAD,IACA,CAAC,KAAKqI,KAAL,CAAW4Q,KAAE,CAAC3Z,QAAd,CADD,IAEA,CAAC,KAAK+I,KAAL,CAAW4Q,KAAE,CAAC3Y,GAAd,CAHH,EAIE;AACA,eAAK2T,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACyH,gBAA9B;AACD;;AAED,eAAO,KAAK2G,UAAL,CAAgB3P,IAAhB,EAAsB,OAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAAClV,OAAR;AACEgG,QAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,aAAKsE,IAAL;;AAEA,YAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAAC3Y,GAAd,CAAJ,EAAwB;AACtB,iBAAO,KAAKgqD,uBAAL,CAA6BvgD,IAA7B,CAAP;AACD;;AAED,YAAI,CAAC,KAAK1B,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAL,EAA4B;AAC1B,eAAKiU,KAAL,CAAW,KAAKvK,KAAL,CAAWkK,YAAtB,EAAoCtI,MAAM,CAACqH,iBAA3C;AACD;;AACD,eAAO,KAAK+G,UAAL,CAAgB3P,IAAhB,EAAsB,QAAtB,CAAP;;AACF,WAAKkP,KAAE,CAACvV,KAAR;AACEqG,QAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,aAAKsE,IAAL;AACA,eAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAACta,IAAR;AAAc;AACZoL,UAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,gBAAMI,WAAW,GAAG,KAAKnQ,KAAL,CAAWmQ,WAA/B;AACA,gBAAMoJ,EAAE,GAAG,KAAKC,eAAL,EAAX;;AAEA,cACE,CAACrJ,WAAD,IACAoJ,EAAE,CAACtkB,IAAH,KAAY,OADZ,IAEA,KAAK0J,KAAL,CAAW4Q,KAAE,CAAClW,SAAd,CAFA,IAGA,CAAC,KAAKsnB,kBAAL,EAJH,EAKE;AACA,kBAAMnhB,IAAI,GAAG,KAAKQ,KAAL,CAAW8R,OAAX,CAAmBpS,MAAnB,GAA4B,CAAzC;;AACA,gBAAI,KAAKM,KAAL,CAAW8R,OAAX,CAAmBtS,IAAnB,MAA6B+xC,OAAE,CAAC1/B,iBAApC,EAAuD;AAQrD,oBAAM,IAAIuG,KAAJ,CAAU,gBAAV,CAAN;AACD;;AACD,iBAAKpY,KAAL,CAAW8R,OAAX,CAAmBtS,IAAnB,IAA2B+xC,OAAE,CAAC3/B,kBAA9B;AAEA,iBAAKyC,IAAL;AACA,mBAAO,KAAKwsC,aAAL,CAAmBxgD,IAAnB,EAAyBU,SAAzB,EAAoC,IAApC,CAAP;AACD,WArBD,MAqBO,IACLynB,UAAU,IACV,CAACrY,WADD,IAEAoJ,EAAE,CAACtkB,IAAH,KAAY,OAFZ,IAGA,KAAK0J,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAHA,IAIA,CAAC,KAAK0rB,kBAAL,EALI,EAML;AACA,kBAAMouB,yBAAyB,GAAG,KAAK/uC,KAAL,CAAWgvC,sBAA7C;AACA,kBAAM6Q,wBAAwB,GAAG,KAAK7/C,KAAL,CAAWy1C,qBAA5C;AACA,kBAAMxG,WAAW,GAAG,KAAKjvC,KAAL,CAAWkvC,QAA/B;AACA,kBAAMC,WAAW,GAAG,KAAKnvC,KAAL,CAAWovC,QAA/B;AACA,iBAAKpvC,KAAL,CAAWgvC,sBAAX,GAAoC,IAApC;AACA,iBAAKhvC,KAAL,CAAWy1C,qBAAX,GAAmC,IAAnC;AACA,iBAAKz1C,KAAL,CAAWkvC,QAAX,GAAsB,CAAC,CAAvB;AACA,iBAAKlvC,KAAL,CAAWovC,QAAX,GAAsB,CAAC,CAAvB;AACA,kBAAM3kC,MAAM,GAAG,CAAC,KAAK+O,eAAL,EAAD,CAAf;AACA,iBAAKf,MAAL,CAAYlJ,KAAE,CAACxY,KAAf;AACA,iBAAK0lD,8BAAL;AACA,iBAAKz8C,KAAL,CAAWgvC,sBAAX,GAAoCD,yBAApC;AACA,iBAAK/uC,KAAL,CAAWy1C,qBAAX,GAAmCoK,wBAAnC;AACA,iBAAK7/C,KAAL,CAAWkvC,QAAX,GAAsBD,WAAtB;AACA,iBAAKjvC,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;AAEA,iBAAK3lB,oBAAL,CAA0BnpB,IAA1B,EAAgCoK,MAAhC,EAAwC,IAAxC;AACA,mBAAOpK,IAAP;AACD;;AAED,cAAImoB,UAAU,IAAI,KAAK7pB,KAAL,CAAW4Q,KAAE,CAACxY,KAAd,CAAd,IAAsC,CAAC,KAAK4pB,kBAAL,EAA3C,EAAsE;AACpE,iBAAKtM,IAAL;AACA,iBAAKmV,oBAAL,CAA0BnpB,IAA1B,EAAgC,CAACkZ,EAAD,CAAhC,EAAsC,KAAtC;AACA,mBAAOlZ,IAAP;AACD;;AAED,iBAAOkZ,EAAP;AACD;;AAED,WAAKhK,KAAE,CAACtW,GAAR;AAAa;AACX,eAAK05C,YAAL,CAAkB,eAAlB;AACA,gBAAMtyC,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,eAAKsE,IAAL;AACA,gBAAMysC,SAAS,GAAG,KAAK9gD,KAAL,CAAWg2C,MAA7B;AACA,eAAKh2C,KAAL,CAAWg2C,MAAX,GAAoB,EAApB;AACA31C,UAAAA,IAAI,CAACa,IAAL,GAAY,KAAKqxC,UAAL,EAAZ;AACA,eAAKvyC,KAAL,CAAWg2C,MAAX,GAAoB8K,SAApB;AACA,iBAAO,KAAK9wC,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAED,WAAKkP,KAAE,CAAC9Z,MAAR;AAAgB;AACd,gBAAMwW,KAAK,GAAG,KAAKjM,KAAL,CAAWiM,KAAzB;AACA5L,UAAAA,IAAI,GAAG,KAAKgM,YAAL,CAAkBJ,KAAK,CAACA,KAAxB,EAA+B,eAA/B,CAAP;AACA5L,UAAAA,IAAI,CAACsL,OAAL,GAAeM,KAAK,CAACN,OAArB;AACAtL,UAAAA,IAAI,CAACuL,KAAL,GAAaK,KAAK,CAACL,KAAnB;AACA,iBAAOvL,IAAP;AACD;;AAED,WAAKkP,KAAE,CAACha,GAAR;AACE,eAAO,KAAK8W,YAAL,CAAkB,KAAKrM,KAAL,CAAWiM,KAA7B,EAAoC,gBAApC,CAAP;;AAEF,WAAKsD,KAAE,CAAC/Z,MAAR;AACE,eAAO,KAAK6W,YAAL,CAAkB,KAAKrM,KAAL,CAAWiM,KAA7B,EAAoC,eAApC,CAAP;;AAEF,WAAKsD,KAAE,CAAC7Z,MAAR;AACE,eAAO,KAAK2W,YAAL,CAAkB,KAAKrM,KAAL,CAAWiM,KAA7B,EAAoC,eAApC,CAAP;;AAEF,WAAKsD,KAAE,CAACjV,KAAR;AACE+F,QAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,aAAKsE,IAAL;AACA,eAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAAChV,KAAR;AACA,WAAKgV,KAAE,CAAC/U,MAAR;AACE,eAAO,KAAKgxB,mBAAL,EAAP;;AAEF,WAAKjc,KAAE,CAACjZ,MAAR;AACE,eAAO,KAAKiyB,kCAAL,CAAwCC,UAAxC,CAAP;;AAEF,WAAKjZ,KAAE,CAACzZ,WAAR;AACA,WAAKyZ,KAAE,CAAC1Z,YAAR;AAAsB;AACpB,eAAK88C,YAAL,CAAkB,gBAAlB;AACA,gBAAM+N,6BAA6B,GAAG,KAAK1gD,KAAL,CACnC+1C,0BADH;AAEA,gBAAM+H,KAAK,GACT,KAAK99C,KAAL,CAAWiB,IAAX,KAAoBsO,KAAE,CAACzZ,WAAvB,GAAqCyZ,KAAE,CAACvZ,WAAxC,GAAsDuZ,KAAE,CAACxZ,QAD3D;AAEA,eAAKiK,KAAL,CAAW+1C,0BAAX,GAAwC,KAAxC;AACA11C,UAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,eAAKsE,IAAL;AACAhU,UAAAA,IAAI,CAACC,QAAL,GAAgB,KAAKygD,aAAL,CACdjD,KADc,EAEd,IAFc,EAGdhwC,mBAHc,EAIdzN,IAJc,CAAhB;AAMA,eAAKL,KAAL,CAAW+1C,0BAAX,GAAwC2K,6BAAxC;AACA,iBAAO,KAAK1wC,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AACD,WAAKkP,KAAE,CAAC3Z,QAAR;AAAkB;AAChB,gBAAM8qD,6BAA6B,GAAG,KAAK1gD,KAAL,CACnC+1C,0BADH;AAEA,eAAK/1C,KAAL,CAAW+1C,0BAAX,GAAwC,KAAxC;AACA11C,UAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,eAAKsE,IAAL;AACAhU,UAAAA,IAAI,CAACC,QAAL,GAAgB,KAAKygD,aAAL,CACdxxC,KAAE,CAACxZ,QADW,EAEd,IAFc,EAGd+X,mBAHc,EAIdzN,IAJc,CAAhB;;AAMA,cAAI,CAAC,KAAKL,KAAL,CAAWgvC,sBAAhB,EAAwC;AAMtC,iBAAK5pB,gBAAL,CAAsB/kB,IAAI,CAACC,QAA3B;AACD;;AACD,eAAKN,KAAL,CAAW+1C,0BAAX,GAAwC2K,6BAAxC;AACA,iBAAO,KAAK1wC,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AACD,WAAKkP,KAAE,CAACrZ,SAAR;AACA,WAAKqZ,KAAE,CAACpZ,UAAR;AAAoB;AAClB,eAAKw8C,YAAL,CAAkB,gBAAlB;AACA,gBAAM+N,6BAA6B,GAAG,KAAK1gD,KAAL,CACnC+1C,0BADH;AAEA,gBAAM+H,KAAK,GACT,KAAK99C,KAAL,CAAWiB,IAAX,KAAoBsO,KAAE,CAACrZ,SAAvB,GAAmCqZ,KAAE,CAAClZ,SAAtC,GAAkDkZ,KAAE,CAACnZ,MADvD;AAEA,eAAK4J,KAAL,CAAW+1C,0BAAX,GAAwC,KAAxC;AACA,gBAAMiL,GAAG,GAAG,KAAKnD,QAAL,CAAcC,KAAd,EAAqB,KAArB,EAA4B,IAA5B,EAAkChwC,mBAAlC,CAAZ;AACA,eAAK9N,KAAL,CAAW+1C,0BAAX,GAAwC2K,6BAAxC;AACA,iBAAOM,GAAP;AACD;;AACD,WAAKzxC,KAAE,CAACtZ,MAAR;AAAgB;AACd,gBAAMyqD,6BAA6B,GAAG,KAAK1gD,KAAL,CACnC+1C,0BADH;AAEA,eAAK/1C,KAAL,CAAW+1C,0BAAX,GAAwC,KAAxC;AACA,gBAAMiL,GAAG,GAAG,KAAKnD,QAAL,CAActuC,KAAE,CAACnZ,MAAjB,EAAyB,KAAzB,EAAgC,KAAhC,EAAuC0X,mBAAvC,CAAZ;AACA,eAAK9N,KAAL,CAAW+1C,0BAAX,GAAwC2K,6BAAxC;AACA,iBAAOM,GAAP;AACD;;AACD,WAAKzxC,KAAE,CAAClW,SAAR;AACE,eAAO,KAAK4nD,uBAAL,EAAP;;AAEF,WAAK1xC,KAAE,CAACnY,EAAR;AACE,aAAK8pD,eAAL;;AAEF,WAAK3xC,KAAE,CAACrV,MAAR;AACEmG,QAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,aAAK0iC,cAAL,CAAoBpyC,IAApB;AACA,eAAO,KAAK+tC,UAAL,CAAgB/tC,IAAhB,EAAsB,KAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAACxV,IAAR;AACE,eAAO,KAAKonD,QAAL,EAAP;;AAEF,WAAK5xC,KAAE,CAACrY,SAAR;AACE,eAAO,KAAKwyC,aAAL,CAAmB,KAAnB,CAAP;;AAEF,WAAKn6B,KAAE,CAAC5Y,WAAR;AAAqB;AACnB0J,UAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;AACA,eAAKsE,IAAL;AACAhU,UAAAA,IAAI,CAACo9B,MAAL,GAAc,IAAd;AACA,gBAAM/sB,MAAM,GAAIrQ,IAAI,CAACqQ,MAAL,GAAc,KAAKovC,eAAL,EAA9B;;AACA,cAAIpvC,MAAM,CAACzP,IAAP,KAAgB,kBAApB,EAAwC;AACtC,mBAAO,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD,WAFD,MAEO;AACL,kBAAM,KAAKkK,KAAL,CAAWmG,MAAM,CAACrS,KAAlB,EAAyBuD,MAAM,CAACkH,eAAhC,CAAN;AACD;AACF;;AAED,WAAKyG,KAAE,CAAClY,IAAR;AAAc;AACZ,cAAI,KAAK2I,KAAL,CAAW01C,UAAf,EAA2B;AACzBr1C,YAAAA,IAAI,GAAG,KAAK0P,SAAL,EAAP;;AAEA,gBACE,KAAK1Q,eAAL,CAAqB,kBAArB,EAAyC,UAAzC,MAAyD,OAD3D,EAEE;AACA,mBAAKkL,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACgF,iCAA9B;AACD;;AAED,iBAAKyN,IAAL;;AAEA,gBAAI,CAAC,KAAK+sC,mDAAL,EAAL,EAAiE;AAC/D,mBAAK72C,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAAC+E,sBAA9B;AACD;;AAED,iBAAK06C,sBAAL;AACA,mBAAO,KAAKrxC,UAAL,CAAgB3P,IAAhB,EAAsB,+BAAtB,CAAP;AACD;AACF;;AAED;AACE,cAAM,KAAK0a,UAAL,EAAN;AAnQJ;AAqQD;;AAEDyQ,EAAAA,mBAAmB,GAAqB;AACtC,UAAMnrB,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA1P,IAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAKtN,KAAL,CAAW4Q,KAAE,CAAChV,KAAd,CAAb;AACA,SAAK8Z,IAAL;AACA,WAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAED0/C,EAAAA,qBAAqB,CACnBh6B,oBADmB,EAEW;AAC9B,UAAMu7B,SAAS,GAAG,KAAK3iD,KAAL,CAAW4Q,KAAE,CAAClY,IAAd,CAAlB;;AAEA,QAAIiqD,SAAJ,EAAe;AACb,WAAK/E,eAAL,CAAqB,CAAC,wBAAD,EAA2B,qBAA3B,CAArB;;AACA,UAAI,CAACx2B,oBAAL,EAA2B;AACzB,aAAKxb,KAAL,CAAW,KAAKvK,KAAL,CAAWgK,GAAtB,EAA2BpI,MAAM,CAAC6G,sBAAlC;AACD;;AACD,YAAMpI,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,WAAKsE,IAAL;AACA,WAAK89B,aAAL,CAAmB,2CAAnB;AACA9xC,MAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,CAAqB,IAArB,CAAV;AACA,aAAO,KAAKxJ,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CAAP;AACD,KAVD,MAUO;AACL,aAAO,KAAKmZ,eAAL,CAAqB,IAArB,CAAP;AACD;AACF;;AAEDynC,EAAAA,uBAAuB,GAA0C;AAC/D,UAAM5gD,IAAI,GAAG,KAAK0P,SAAL,EAAb;AAOA,QAAIwxC,IAAI,GAAG,KAAKxxC,SAAL,EAAX;AACA,SAAKsE,IAAL;AACAktC,IAAAA,IAAI,GAAG,KAAK9gC,gBAAL,CAAsB8gC,IAAtB,EAA4B,UAA5B,CAAP;;AAEA,QAAI,KAAKnvC,SAAL,CAAeC,QAAf,IAA2B,KAAK2G,GAAL,CAASzJ,KAAE,CAAC3Y,GAAZ,CAA/B,EAAiD;AAC/C,aAAO,KAAK4qD,iBAAL,CAAuBnhD,IAAvB,EAA6BkhD,IAA7B,EAAmC,MAAnC,CAAP;AACD;;AACD,WAAO,KAAKV,aAAL,CAAmBxgD,IAAnB,CAAP;AACD;;AAEDmhD,EAAAA,iBAAiB,CACfnhD,IADe,EAEfkhD,IAFe,EAGfE,YAHe,EAIC;AAChBphD,IAAAA,IAAI,CAACkhD,IAAL,GAAYA,IAAZ;;AAEA,QAAIA,IAAI,CAACtsD,IAAL,KAAc,UAAd,IAA4BwsD,YAAY,KAAK,MAAjD,EAAyD;AACvD,UAAI,KAAK/mC,YAAL,CAAkB+mC,YAAlB,CAAJ,EAAqC;AACnC,aAAK9O,YAAL,CAAkB,cAAlB;AACD,OAFD,MAEO,IAAI,CAAC,KAAKzzC,SAAL,CAAe,cAAf,CAAL,EAAqC;AAE1C,aAAK6b,UAAL;AACD;AACF;;AAED,UAAM5K,WAAW,GAAG,KAAKnQ,KAAL,CAAWmQ,WAA/B;AAEA9P,IAAAA,IAAI,CAACyf,QAAL,GAAgB,KAAKtG,eAAL,CAAqB,IAArB,CAAhB;;AAEA,QAAInZ,IAAI,CAACyf,QAAL,CAAc7qB,IAAd,KAAuBwsD,YAAvB,IAAuCtxC,WAA3C,EAAwD;AACtD,WAAK5F,KAAL,CACElK,IAAI,CAACyf,QAAL,CAAczhB,KADhB,EAEEuD,MAAM,CAACsH,uBAFT,EAGEq4C,IAAI,CAACtsD,IAHP,EAIEwsD,YAJF;AAMD;;AAED,WAAO,KAAKzxC,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAEDugD,EAAAA,uBAAuB,CAACvgD,IAAD,EAAuC;AAC5D,UAAMkZ,EAAE,GAAG,KAAKkH,gBAAL,CAAsB,KAAKulB,eAAL,CAAqB3lC,IAArB,CAAtB,EAAkD,QAAlD,CAAX;AACA,SAAKoY,MAAL,CAAYlJ,KAAE,CAAC3Y,GAAf;;AAEA,QAAI,KAAK8jB,YAAL,CAAkB,MAAlB,CAAJ,EAA+B;AAC7B,WAAKi4B,YAAL,CAAkB,YAAlB;;AAEA,UAAI,CAAC,KAAK9+B,QAAV,EAAoB;AAClB,aAAKnJ,aAAL,CACE6O,EAAE,CAAClb,KADL,EAEE;AAAER,UAAAA,IAAI,EAAE;AAAR,SAFF,EAGE+D,MAAM,CAACwC,uBAHT;AAKD;;AACD,WAAKpF,iBAAL,GAAyB,IAAzB;AACD,KAXD,MAWO,IAAI,CAAC,KAAKE,SAAL,CAAe,YAAf,CAAL,EAAmC;AACxC,WAAKqL,KAAL,CAAWgP,EAAE,CAAClb,KAAd,EAAqBuD,MAAM,CAACqC,oBAA5B;AACD;;AAED,WAAO,KAAKu9C,iBAAL,CAAuBnhD,IAAvB,EAA6BkZ,EAA7B,EAAiC,MAAjC,CAAP;AACD;;AAEDlN,EAAAA,YAAY,CACVJ,KADU,EAEVhL,IAFU,EAGVuO,QAHU,EAIVvF,QAJU,EAKP;AACHuF,IAAAA,QAAQ,GAAGA,QAAQ,IAAI,KAAKxP,KAAL,CAAW3B,KAAlC;AACA4L,IAAAA,QAAQ,GAAGA,QAAQ,IAAI,KAAKjK,KAAL,CAAWiK,QAAlC;AAEA,UAAM5J,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA,SAAK8xC,QAAL,CAAc17C,IAAd,EAAoB,UAApB,EAAgC4L,KAAhC;AACA,SAAK8vC,QAAL,CAAc17C,IAAd,EAAoB,KAApB,EAA2B,KAAK7B,KAAL,CAAWkD,KAAX,CAAiB8N,QAAjB,EAA2B,KAAKxP,KAAL,CAAW1B,GAAtC,CAA3B;AACA+B,IAAAA,IAAI,CAAC4L,KAAL,GAAaA,KAAb;AACA,SAAKoI,IAAL;AACA,WAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsBY,IAAtB,CAAP;AACD;;AAEDsnB,EAAAA,kCAAkC,CAACC,UAAD,EAAoC;AACpE,UAAMhZ,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AAEA,QAAIiO,GAAJ;AACA,SAAKO,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AAEA,UAAMy4C,yBAAyB,GAAG,KAAK/uC,KAAL,CAAWgvC,sBAA7C;AACA,UAAMC,WAAW,GAAG,KAAKjvC,KAAL,CAAWkvC,QAA/B;AACA,UAAMC,WAAW,GAAG,KAAKnvC,KAAL,CAAWovC,QAA/B;AACA,UAAMsR,6BAA6B,GAAG,KAAK1gD,KAAL,CAAW+1C,0BAAjD;AACA,SAAK/1C,KAAL,CAAWgvC,sBAAX,GAAoC,IAApC;AACA,SAAKhvC,KAAL,CAAWkvC,QAAX,GAAsB,CAAC,CAAvB;AACA,SAAKlvC,KAAL,CAAWovC,QAAX,GAAsB,CAAC,CAAvB;AACA,SAAKpvC,KAAL,CAAW+1C,0BAAX,GAAwC,KAAxC;AAEA,UAAM2L,aAAa,GAAG,KAAK1hD,KAAL,CAAW3B,KAAjC;AACA,UAAMsjD,aAAa,GAAG,KAAK3hD,KAAL,CAAWiK,QAAjC;AACA,UAAM2G,QAAQ,GAAG,EAAjB;AACA,UAAM9C,mBAAmB,GAAG,IAAIkvC,gBAAJ,EAA5B;AACA,UAAMj7B,gBAAgB,GAAG;AAAE1jB,MAAAA,KAAK,EAAE;AAAT,KAAzB;AACA,QAAI6/C,KAAK,GAAG,IAAZ;AACA,QAAI0D,WAAJ;AACA,QAAIC,kBAAJ;;AAEA,WAAO,CAAC,KAAKljD,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,CAAR,EAA+B;AAC7B,UAAI2nD,KAAJ,EAAW;AACTA,QAAAA,KAAK,GAAG,KAAR;AACD,OAFD,MAEO;AACL,aAAKzlC,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf,EAAsBurB,gBAAgB,CAAC1jB,KAAjB,IAA0B,IAAhD;;AACA,YAAI,KAAKM,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,CAAJ,EAA2B;AACzBsrD,UAAAA,kBAAkB,GAAG,KAAK7hD,KAAL,CAAW3B,KAAhC;AACA;AACD;AACF;;AAED,UAAI,KAAKM,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAAJ,EAA6B;AAC3B,cAAM6qD,kBAAkB,GAAG,KAAK9hD,KAAL,CAAW3B,KAAtC;AACA,cAAM0jD,kBAAkB,GAAG,KAAK/hD,KAAL,CAAWiK,QAAtC;AACA23C,QAAAA,WAAW,GAAG,KAAK5hD,KAAL,CAAW3B,KAAzB;AACAuS,QAAAA,QAAQ,CAAC1Q,IAAT,CACE,KAAKwjB,cAAL,CACE,KAAKk6B,gBAAL,EADF,EAEEkE,kBAFF,EAGEC,kBAHF,CADF;AAQA,aAAK5D,mBAAL;AAEA;AACD,OAfD,MAeO;AACLvtC,QAAAA,QAAQ,CAAC1Q,IAAT,CACE,KAAK4iB,gBAAL,CACE,KADF,EAEEhV,mBAFF,EAGE,KAAK4V,cAHP,EAIE3B,gBAJF,CADF;AAQD;AACF;;AAED,UAAMigC,WAAW,GAAG,KAAKhiD,KAAL,CAAW3B,KAA/B;AACA,UAAM4jD,WAAW,GAAG,KAAKjiD,KAAL,CAAWiK,QAA/B;AACA,SAAKwO,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AAEA,SAAKyJ,KAAL,CAAWgvC,sBAAX,GAAoCD,yBAApC;AACA,SAAK/uC,KAAL,CAAW+1C,0BAAX,GAAwC2K,6BAAxC;AAEA,QAAIwB,SAAS,GAAG,KAAKx1C,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAhB;;AACA,QACEue,UAAU,IACV,KAAKL,gBAAL,EADA,KAEC+5B,SAAS,GAAG,KAAKh6B,UAAL,CAAgBg6B,SAAhB,CAFb,CADF,EAIE;AACA,UAAI,CAAC,KAAKzC,cAAL,EAAD,IAA0B,CAAC,KAAKz/C,KAAL,CAAWy1C,qBAA1C,EAAiE;AAC/D,aAAKz1C,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;AACD;;AACD,WAAKsN,8BAAL;AACA,WAAKz8C,KAAL,CAAWkvC,QAAX,GAAsBD,WAAtB;AACA,WAAKjvC,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;;AANA,4BAOoBv+B,QAPpB,eAO8B;AAAzB,cAAMmQ,KAAK,GAAInQ,QAAJ,IAAX;;AACH,YAAImQ,KAAK,CAAClU,KAAN,IAAekU,KAAK,CAAClU,KAAN,CAAYwB,aAA/B,EAA8C;AAC5C,eAAK0M,UAAL,CAAgBgG,KAAK,CAAClU,KAAN,CAAYs1C,UAA5B;AACD;AACF;;AAED,WAAK34B,oBAAL,CAA0B04B,SAA1B,EAAqCtxC,QAArC,EAA+C,KAA/C;AACA,aAAOsxC,SAAP;AACD;;AAID,QAAIjT,WAAW,KAAK,CAAC,CAArB,EAAwB,KAAKjvC,KAAL,CAAWkvC,QAAX,GAAsBD,WAAtB;AACxB,QAAIE,WAAW,KAAK,CAAC,CAArB,EAAwB,KAAKnvC,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;;AAExB,QAAI,CAACv+B,QAAQ,CAAClR,MAAd,EAAsB;AACpB,WAAKqb,UAAL,CAAgB,KAAK/a,KAAL,CAAWkK,YAA3B;AACD;;AACD,QAAI23C,kBAAJ,EAAwB,KAAK9mC,UAAL,CAAgB8mC,kBAAhB;AACxB,QAAID,WAAJ,EAAiB,KAAK7mC,UAAL,CAAgB6mC,WAAhB;AACjB,SAAK/E,qBAAL,CAA2B/uC,mBAA3B,EAAgD,IAAhD;AACA,QAAIiU,gBAAgB,CAAC1jB,KAArB,EAA4B,KAAK0c,UAAL,CAAgBgH,gBAAgB,CAAC1jB,KAAjC;AAE5B,SAAKsS,oBAAL,CAA0BC,QAA1B,EAA8D,IAA9D;;AACA,QAAIA,QAAQ,CAAClR,MAAT,GAAkB,CAAtB,EAAyB;AACvBwY,MAAAA,GAAG,GAAG,KAAKxL,WAAL,CAAiBg1C,aAAjB,EAAgCC,aAAhC,CAAN;AACAzpC,MAAAA,GAAG,CAACyxB,WAAJ,GAAkB/4B,QAAlB;AACA,WAAK9D,YAAL,CAAkBoL,GAAlB,EAAuB,oBAAvB,EAA6C8pC,WAA7C,EAA0DC,WAA1D;AACD,KAJD,MAIO;AACL/pC,MAAAA,GAAG,GAAGtH,QAAQ,CAAC,CAAD,CAAd;AACD;;AAED,QAAI,CAAC,KAAK1b,OAAL,CAAaigD,8BAAlB,EAAkD;AAChD,WAAK4G,QAAL,CAAc7jC,GAAd,EAAmB,eAAnB,EAAoC,IAApC;AACA,WAAK6jC,QAAL,CAAc7jC,GAAd,EAAmB,YAAnB,EAAiC1I,QAAjC;AACA,aAAO0I,GAAP;AACD;;AAED,UAAMzG,eAAe,GAAG,KAAK/E,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAxB;AACAwH,IAAAA,eAAe,CAAC9E,UAAhB,GAA6BuL,GAA7B;AACA,SAAKlI,UAAL,CAAgByB,eAAhB,EAAiC,yBAAjC;AACA,WAAOA,eAAP;AACD;;AAED0W,EAAAA,gBAAgB,GAAY;AAC1B,WAAO,CAAC,KAAKxH,kBAAL,EAAR;AACD;;AAEDuH,EAAAA,UAAU,CAAC7nB,IAAD,EAA8D;AACtE,QAAI,KAAK2Y,GAAL,CAASzJ,KAAE,CAACxY,KAAZ,CAAJ,EAAwB;AACtB,aAAOsJ,IAAP;AACD;AACF;;AAEDqjB,EAAAA,cAAc,CACZrjB,IADY,EAEZmP,QAFY,EAGZvF,QAHY,EAIE;AACd,WAAO5J,IAAP;AACD;;AAQD8gD,EAAAA,QAAQ,GAAqC;AAC3C,UAAM9gD,IAAI,GAAG,KAAK0P,SAAL,EAAb;AAEA,QAAIwxC,IAAI,GAAG,KAAKxxC,SAAL,EAAX;AACA,SAAKsE,IAAL;AACAktC,IAAAA,IAAI,GAAG,KAAK9gC,gBAAL,CAAsB8gC,IAAtB,EAA4B,KAA5B,CAAP;;AAEA,QAAI,KAAKvoC,GAAL,CAASzJ,KAAE,CAAC3Y,GAAZ,CAAJ,EAAsB;AACpB,YAAMwrD,QAAQ,GAAG,KAAKZ,iBAAL,CAAuBnhD,IAAvB,EAA6BkhD,IAA7B,EAAmC,QAAnC,CAAjB;;AAEA,UAAI,CAAC,KAAKtmC,KAAL,CAAWgmB,kBAAZ,IAAkC,CAAC,KAAKhmB,KAAL,CAAW+lB,OAAlD,EAA2D;AACzD,YAAI9e,KAAK,GAAGtgB,MAAM,CAAC2G,mBAAnB;;AAEA,YAAI,KAAKrJ,SAAL,CAAe,iBAAf,CAAJ,EAAuC;AACrCgjB,UAAAA,KAAK,IAAI,sBAAT;AACD;;AAED,aAAK3X,KAAL,CAAW63C,QAAQ,CAAC/jD,KAApB,EAA2B6jB,KAA3B;AACD;;AAED,aAAOkgC,QAAP;AACD;;AAED/hD,IAAAA,IAAI,CAACqQ,MAAL,GAAc,KAAKovC,eAAL,EAAd;;AAEA,QAAIz/C,IAAI,CAACqQ,MAAL,CAAYzP,IAAZ,KAAqB,QAAzB,EAAmC;AACjC,WAAKsJ,KAAL,CAAWlK,IAAI,CAACqQ,MAAL,CAAYrS,KAAvB,EAA8BuD,MAAM,CAACsC,0BAArC;AACD,KAFD,MAEO,IACL7D,IAAI,CAACqQ,MAAL,CAAYzP,IAAZ,KAAqB,0BAArB,IACAZ,IAAI,CAACqQ,MAAL,CAAYzP,IAAZ,KAAqB,wBAFhB,EAGL;AACA,WAAKsJ,KAAL,CAAW,KAAKvK,KAAL,CAAWqK,UAAtB,EAAkCzI,MAAM,CAACsE,qBAAzC;AACD,KALM,MAKA,IAAI,KAAK8S,GAAL,CAASzJ,KAAE,CAACzY,WAAZ,CAAJ,EAA8B;AACnC,WAAKyT,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACsE,qBAApC;AACD;;AAED,SAAKojB,iBAAL,CAAuBjpB,IAAvB;AACA,WAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAEDipB,EAAAA,iBAAiB,CAACjpB,IAAD,EAA8B;AAC7C,QAAI,KAAK2Y,GAAL,CAASzJ,KAAE,CAACjZ,MAAZ,CAAJ,EAAyB;AACvB,YAAM65C,IAAI,GAAG,KAAK4Q,aAAL,CAAmBxxC,KAAE,CAAChZ,MAAtB,CAAb;AACA,WAAK6uB,gBAAL,CAAsB+qB,IAAtB;AAEA9vC,MAAAA,IAAI,CAACoB,SAAL,GAAiB0uC,IAAjB;AACD,KALD,MAKO;AACL9vC,MAAAA,IAAI,CAACoB,SAAL,GAAiB,EAAjB;AACD;AACF;;AAID4gD,EAAAA,oBAAoB,CAACC,QAAD,EAAuC;AACzD,UAAMhE,IAAI,GAAG,KAAKvuC,SAAL,EAAb;;AACA,QAAI,KAAK/P,KAAL,CAAWiM,KAAX,KAAqB,IAAzB,EAA+B;AAC7B,UAAI,CAACq2C,QAAL,EAAe;AACb,aAAK/3C,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAX,GAAmB,CAA9B,EAAiCuD,MAAM,CAAC6C,6BAAxC;AACD;AACF;;AACD65C,IAAAA,IAAI,CAACryC,KAAL,GAAa;AACXW,MAAAA,GAAG,EAAE,KAAKpO,KAAL,CACFkD,KADE,CACI,KAAK1B,KAAL,CAAW3B,KADf,EACsB,KAAK2B,KAAL,CAAW1B,GADjC,EAEFuM,OAFE,CAEM,QAFN,EAEgB,IAFhB,CADM;AAIX03C,MAAAA,MAAM,EAAE,KAAKviD,KAAL,CAAWiM;AAJR,KAAb;AAMA,SAAKoI,IAAL;AACAiqC,IAAAA,IAAI,CAACkE,IAAL,GAAY,KAAK7jD,KAAL,CAAW4Q,KAAE,CAACrY,SAAd,CAAZ;AACA,WAAO,KAAK8Y,UAAL,CAAgBsuC,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAED5U,EAAAA,aAAa,CAAC4Y,QAAD,EAAuC;AAClD,UAAMjiD,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAKsE,IAAL;AACAhU,IAAAA,IAAI,CAACspC,WAAL,GAAmB,EAAnB;AACA,QAAI8Y,MAAM,GAAG,KAAKJ,oBAAL,CAA0BC,QAA1B,CAAb;AACAjiD,IAAAA,IAAI,CAACqiD,MAAL,GAAc,CAACD,MAAD,CAAd;;AACA,WAAO,CAACA,MAAM,CAACD,IAAf,EAAqB;AACnB,WAAK/pC,MAAL,CAAYlJ,KAAE,CAACpY,YAAf;AACAkJ,MAAAA,IAAI,CAACspC,WAAL,CAAiBzpC,IAAjB,CAAsB,KAAK+Y,eAAL,EAAtB;AACA,WAAKR,MAAL,CAAYlJ,KAAE,CAACnZ,MAAf;AACAiK,MAAAA,IAAI,CAACqiD,MAAL,CAAYxiD,IAAZ,CAAkBuiD,MAAM,GAAG,KAAKJ,oBAAL,CAA0BC,QAA1B,CAA3B;AACD;;AACD,SAAKjuC,IAAL;AACA,WAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAIDw9C,EAAAA,QAAQ,CACNC,KADM,EAEN5tC,SAFM,EAGNyyC,QAHM,EAIN70C,mBAJM,EAKH;AACH,UAAM80C,QAAa,GAAG/gD,MAAM,CAACghD,MAAP,CAAc,IAAd,CAAtB;AACA,QAAI3E,KAAK,GAAG,IAAZ;AACA,UAAM79C,IAAI,GAAG,KAAK0P,SAAL,EAAb;AAEA1P,IAAAA,IAAI,CAACmB,UAAL,GAAkB,EAAlB;AACA,SAAK6S,IAAL;;AAEA,WAAO,CAAC,KAAK2E,GAAL,CAAS8kC,KAAT,CAAR,EAAyB;AACvB,UAAII,KAAJ,EAAW;AACTA,QAAAA,KAAK,GAAG,KAAR;AACD,OAFD,MAEO;AACL,aAAKzlC,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;;AACA,YAAI,KAAKmI,KAAL,CAAWm/C,KAAX,CAAJ,EAAuB;AACrB,eAAK/B,QAAL,CAAc17C,IAAd,EAAoB,eAApB,EAAqC,KAAKL,KAAL,CAAWkK,YAAhD;AACA,eAAKmK,IAAL;AACA;AACD;AACF;;AAED,YAAMlH,IAAI,GAAG,KAAK21C,iBAAL,CAAuB5yC,SAAvB,EAAkCpC,mBAAlC,CAAb;;AACA,UAAI,CAACoC,SAAL,EAAgB;AAEd,aAAKtC,oBAAL,CAA0BT,IAA1B,EAAgCy1C,QAAhC,EAA0C90C,mBAA1C;AACD;;AAGD,UAAIX,IAAI,CAACa,SAAT,EAAoB;AAClB,aAAK+tC,QAAL,CAAc5uC,IAAd,EAAoB,WAApB,EAAiC,IAAjC;AACD;;AAED9M,MAAAA,IAAI,CAACmB,UAAL,CAAgBtB,IAAhB,CAAqBiN,IAArB;AACD;;AAED,QAAIlM,IAAI,GAAG,kBAAX;;AACA,QAAIiP,SAAJ,EAAe;AACbjP,MAAAA,IAAI,GAAG,eAAP;AACD,KAFD,MAEO,IAAI0hD,QAAJ,EAAc;AACnB1hD,MAAAA,IAAI,GAAG,kBAAP;AACD;;AACD,WAAO,KAAK+O,UAAL,CAAgB3P,IAAhB,EAAsBY,IAAtB,CAAP;AACD;;AAED8hD,EAAAA,WAAW,CAAC51C,IAAD,EAAkC;AAC3C,WACE,CAACA,IAAI,CAACY,QAAN,IACAZ,IAAI,CAACc,GAAL,CAAShN,IAAT,KAAkB,YADlB,IAEAkM,IAAI,CAACc,GAAL,CAAShZ,IAAT,KAAkB,OAFlB,KAGC,KAAK0J,KAAL,CAAW4Q,KAAE,CAACta,IAAd,KACC,KAAK0J,KAAL,CAAW4Q,KAAE,CAACha,GAAd,CADD,IAEC,KAAKoJ,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAFD,IAGC,KAAKiJ,KAAL,CAAW4Q,KAAE,CAAC3Z,QAAd,CAHD,IAIC,KAAKoK,KAAL,CAAWiB,IAAX,CAAgBvM,OAJjB,IAKC,KAAKiK,KAAL,CAAW4Q,KAAE,CAAC/W,IAAd,CARF,KASA,CAAC,KAAKisC,qBAAL,EAVH;AAYD;;AAEDqe,EAAAA,iBAAiB,CACf5yC,SADe,EAEfpC,mBAFe,EAGmC;AAClD,QAAIyhC,UAAU,GAAG,EAAjB;;AACA,QAAI,KAAK5wC,KAAL,CAAW4Q,KAAE,CAACnY,EAAd,CAAJ,EAAuB;AACrB,UAAI,KAAK8H,SAAL,CAAe,YAAf,CAAJ,EAAkC;AAChC,aAAKqL,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACwH,4BAApC;AACD;;AAID,aAAO,KAAKzK,KAAL,CAAW4Q,KAAE,CAACnY,EAAd,CAAP,EAA0B;AACxBm4C,QAAAA,UAAU,CAACrvC,IAAX,CAAgB,KAAKk+C,cAAL,EAAhB;AACD;AACF;;AAED,UAAMjxC,IAAI,GAAG,KAAK4C,SAAL,EAAb;AACA,QAAId,WAAW,GAAG,KAAlB;AACA,QAAIjC,OAAO,GAAG,KAAd;AACA,QAAIwC,QAAJ;AACA,QAAIvF,QAAJ;;AAEA,QAAI,KAAKtL,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAAJ,EAA6B;AAC3B,UAAIs4C,UAAU,CAAC7vC,MAAf,EAAuB,KAAKqb,UAAL;;AACvB,UAAI7K,SAAJ,EAAe;AACb,aAAKmE,IAAL;AAEAlH,QAAAA,IAAI,CAACwS,QAAL,GAAgB,KAAKnG,eAAL,EAAhB;AACA,aAAK2kC,mBAAL;AACA,eAAO,KAAKnuC,UAAL,CAAgB7C,IAAhB,EAAsB,aAAtB,CAAP;AACD;;AAED,aAAO,KAAKwwC,WAAL,EAAP;AACD;;AAED,QAAIpO,UAAU,CAAC7vC,MAAf,EAAuB;AACrByN,MAAAA,IAAI,CAACoiC,UAAL,GAAkBA,UAAlB;AACAA,MAAAA,UAAU,GAAG,EAAb;AACD;;AAEDpiC,IAAAA,IAAI,CAAC3B,MAAL,GAAc,KAAd;;AAEA,QAAI0E,SAAS,IAAIpC,mBAAjB,EAAsC;AACpC0B,MAAAA,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAAtB;AACA4L,MAAAA,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAAtB;AACD;;AAED,QAAI,CAACiG,SAAL,EAAgB;AACdjB,MAAAA,WAAW,GAAG,KAAK+J,GAAL,CAASzJ,KAAE,CAAC/W,IAAZ,CAAd;AACD;;AAED,UAAM2X,WAAW,GAAG,KAAKnQ,KAAL,CAAWmQ,WAA/B;AACA,SAAK2V,iBAAL,CAAuB3Y,IAAvB,EAAwD,KAAxD;;AAEA,QAAI,CAAC+C,SAAD,IAAc,CAACC,WAAf,IAA8B,CAAClB,WAA/B,IAA8C,KAAK8zC,WAAL,CAAiB51C,IAAjB,CAAlD,EAA0E;AACxEH,MAAAA,OAAO,GAAG,IAAV;AACAiC,MAAAA,WAAW,GAAG,KAAK+J,GAAL,CAASzJ,KAAE,CAAC/W,IAAZ,CAAd;AACA,WAAKstB,iBAAL,CAAuB3Y,IAAvB,EAAwD,KAAxD;AACD,KAJD,MAIO;AACLH,MAAAA,OAAO,GAAG,KAAV;AACD;;AAED,SAAKgZ,iBAAL,CACE7Y,IADF,EAEEqC,QAFF,EAGEvF,QAHF,EAIEgF,WAJF,EAKEjC,OALF,EAMEkD,SANF,EAOEpC,mBAPF,EAQEqC,WARF;AAWA,WAAOhD,IAAP;AACD;;AAED61C,EAAAA,sBAAsB,CAAC71C,IAAD,EAAuB+C,SAAvB,EAAoD;AACxE,WACE,CAACA,SAAD,IACA,CAAC/C,IAAI,CAACY,QADN,IAEAZ,IAAI,CAACc,GAAL,CAAShN,IAAT,KAAkB,YAFlB,KAGCkM,IAAI,CAACc,GAAL,CAAShZ,IAAT,KAAkB,KAAlB,IAA2BkY,IAAI,CAACc,GAAL,CAAShZ,IAAT,KAAkB,KAH9C,MAIC,KAAK0J,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,KACD,KAAKiJ,KAAL,CAAW4Q,KAAE,CAACha,GAAd,CADC,IAED,KAAKoJ,KAAL,CAAW4Q,KAAE,CAAC3Z,QAAd,CAFC,IAGD,KAAK+I,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAHC,IAIC,CAAC,CAAC,KAAK+K,KAAL,CAAWiB,IAAX,CAAgBvM,OARpB,CADF;AAWD;;AAEDk9C,EAAAA,iCAAiC,CAC/BpmC,MAD+B,EAEvB;AACR,WAAOA,MAAM,CAACD,IAAP,KAAgB,KAAhB,GAAwB,CAAxB,GAA4B,CAAnC;AACD;;AAID2B,EAAAA,uBAAuB,CAAC1B,MAAD,EAA+C;AACpE,UAAM4B,UAAU,GAAG,KAAKwkC,iCAAL,CAAuCpmC,MAAvC,CAAnB;AACA,UAAMnN,KAAK,GAAGmN,MAAM,CAACnN,KAArB;;AACA,QAAImN,MAAM,CAACf,MAAP,CAAc/K,MAAd,KAAyB0N,UAA7B,EAAyC;AACvC,UAAI5B,MAAM,CAACD,IAAP,KAAgB,KAApB,EAA2B;AACzB,aAAKhB,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACQ,cAAzB;AACD,OAFD,MAEO;AACL,aAAKmI,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACS,cAAzB;AACD;AACF;;AAED,QACEmJ,MAAM,CAACD,IAAP,KAAgB,KAAhB,IACAC,MAAM,CAACf,MAAP,CAAce,MAAM,CAACf,MAAP,CAAc/K,MAAd,GAAuB,CAArC,EAAwCuB,IAAxC,KAAiD,aAFnD,EAGE;AACA,WAAKsJ,KAAL,CAAWlM,KAAX,EAAkBuD,MAAM,CAACU,sBAAzB;AACD;AACF;;AAED2N,EAAAA,iBAAiB,CACf9C,IADe,EAEf8B,WAFe,EAGfjC,OAHe,EAIfkD,SAJe,EAKfC,WALe,EAME;AACjB,QAAInD,OAAO,IAAIiC,WAAX,IAA0B,KAAKtQ,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAA9B,EAAqD;AACnD,UAAI4Z,SAAJ,EAAe,KAAK6K,UAAL;AACf5N,MAAAA,IAAI,CAAC5B,IAAL,GAAY,QAAZ;AACA4B,MAAAA,IAAI,CAAC3B,MAAL,GAAc,IAAd;AACA,aAAO,KAAK4D,WAAL,CACLjC,IADK,EAEL8B,WAFK,EAGLjC,OAHK,EAIe,KAJf,EAKL,KALK,EAML,cANK,CAAP;AAQD;;AAED,QAAI,CAACmD,WAAD,IAAgB,KAAK6yC,sBAAL,CAA4B71C,IAA5B,EAAkC+C,SAAlC,CAApB,EAAkE;AAChE,UAAIjB,WAAW,IAAIjC,OAAnB,EAA4B,KAAK+N,UAAL;AAC5B5N,MAAAA,IAAI,CAAC5B,IAAL,GAAY4B,IAAI,CAACc,GAAL,CAAShZ,IAArB;AACA,WAAK6wB,iBAAL,CAAuB3Y,IAAvB,EAAwD,KAAxD;AACA,WAAKiC,WAAL,CACEjC,IADF,EAEoB,KAFpB,EAGgB,KAHhB,EAIsB,KAJtB,EAKE,KALF,EAME,cANF;AAQA,WAAKD,uBAAL,CAA6BC,IAA7B;AACA,aAAOA,IAAP;AACD;AACF;;AAEDiD,EAAAA,mBAAmB,CACjBjD,IADiB,EAEjBqC,QAFiB,EAGjBvF,QAHiB,EAIjBiG,SAJiB,EAKjBpC,mBALiB,EAME;AACnBX,IAAAA,IAAI,CAACa,SAAL,GAAiB,KAAjB;;AAEA,QAAI,KAAKgL,GAAL,CAASzJ,KAAE,CAAC7Y,KAAZ,CAAJ,EAAwB;AACtByW,MAAAA,IAAI,CAAClB,KAAL,GAAaiE,SAAS,GAClB,KAAKgW,iBAAL,CAAuB,KAAKlmB,KAAL,CAAW3B,KAAlC,EAAyC,KAAK2B,KAAL,CAAWiK,QAApD,CADkB,GAElB,KAAK6Y,gBAAL,CAAsB,KAAtB,EAA6BhV,mBAA7B,CAFJ;AAIA,aAAO,KAAKkC,UAAL,CAAgB7C,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAED,QAAI,CAACA,IAAI,CAACY,QAAN,IAAkBZ,IAAI,CAACc,GAAL,CAAShN,IAAT,KAAkB,YAAxC,EAAsD;AACpD,WAAKkmB,iBAAL,CAAuBha,IAAI,CAACc,GAAL,CAAShZ,IAAhC,EAAsCkY,IAAI,CAACc,GAAL,CAAS5P,KAA/C,EAAsD,IAAtD,EAA4D,IAA5D;;AAEA,UAAI6R,SAAJ,EAAe;AACb/C,QAAAA,IAAI,CAAClB,KAAL,GAAa,KAAKia,iBAAL,CACX1W,QADW,EAEXvF,QAFW,EAGXkD,IAAI,CAACc,GAAL,CAAS+Y,OAAT,EAHW,CAAb;AAKD,OAND,MAMO,IAAI,KAAKroB,KAAL,CAAW4Q,KAAE,CAAChY,EAAd,KAAqBuW,mBAAzB,EAA8C;AACnD,YAAIA,mBAAmB,CAACivC,eAApB,KAAwC,CAAC,CAA7C,EAAgD;AAC9CjvC,UAAAA,mBAAmB,CAACivC,eAApB,GAAsC,KAAK/8C,KAAL,CAAW3B,KAAjD;AACD;;AACD8O,QAAAA,IAAI,CAAClB,KAAL,GAAa,KAAKia,iBAAL,CACX1W,QADW,EAEXvF,QAFW,EAGXkD,IAAI,CAACc,GAAL,CAAS+Y,OAAT,EAHW,CAAb;AAKD,OATM,MASA;AACL7Z,QAAAA,IAAI,CAAClB,KAAL,GAAakB,IAAI,CAACc,GAAL,CAAS+Y,OAAT,EAAb;AACD;;AACD7Z,MAAAA,IAAI,CAACa,SAAL,GAAiB,IAAjB;AAEA,aAAO,KAAKgC,UAAL,CAAgB7C,IAAhB,EAAsB,gBAAtB,CAAP;AACD;AACF;;AAED6Y,EAAAA,iBAAiB,CACf7Y,IADe,EAEfqC,QAFe,EAGfvF,QAHe,EAIfgF,WAJe,EAKfjC,OALe,EAMfkD,SANe,EAOfpC,mBAPe,EAQfqC,WARe,EAST;AACN,UAAM9P,IAAI,GACR,KAAK4P,iBAAL,CACE9C,IADF,EAEE8B,WAFF,EAGEjC,OAHF,EAIEkD,SAJF,EAKEC,WALF,KAOA,KAAKC,mBAAL,CACEjD,IADF,EAEEqC,QAFF,EAGEvF,QAHF,EAIEiG,SAJF,EAKEpC,mBALF,CARF;AAgBA,QAAI,CAACzN,IAAL,EAAW,KAAK0a,UAAL;AAGX,WAAO1a,IAAP;AACD;;AAEDylB,EAAAA,iBAAiB,CACf3Y,IADe,EAEf4Y,oBAFe,EAGc;AAC7B,QAAI,KAAK/M,GAAL,CAASzJ,KAAE,CAAC3Z,QAAZ,CAAJ,EAA2B;AACxBuX,MAAAA,IAAD,CAA4CY,QAA5C,GAAuD,IAAvD;AACAZ,MAAAA,IAAI,CAACc,GAAL,GAAW,KAAK6U,gBAAL,EAAX;AACA,WAAKrK,MAAL,CAAYlJ,KAAE,CAACxZ,QAAf;AACD,KAJD,MAIO;AACL,YAAMktD,iBAAiB,GAAG,KAAKjjD,KAAL,CAAWmgC,cAArC;AACA,WAAKngC,KAAL,CAAWmgC,cAAX,GAA4B,IAA5B;AAEChzB,MAAAA,IAAD,CAAmBc,GAAnB,GACE,KAAKtP,KAAL,CAAW4Q,KAAE,CAACha,GAAd,KAAsB,KAAKoJ,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAAtB,IAA+C,KAAKiJ,KAAL,CAAW4Q,KAAE,CAAC/Z,MAAd,CAA/C,GACI,KAAK8Z,aAAL,EADJ,GAEI,KAAKywC,qBAAL,CAA2Bh6B,oBAA3B,CAHN;;AAKA,UAAI5Y,IAAI,CAACc,GAAL,CAAShN,IAAT,KAAkB,aAAtB,EAAqC;AAEnCkM,QAAAA,IAAI,CAACY,QAAL,GAAgB,KAAhB;AACD;;AAED,WAAK/N,KAAL,CAAWmgC,cAAX,GAA4B8iB,iBAA5B;AACD;;AAED,WAAO91C,IAAI,CAACc,GAAZ;AACD;;AAIDlB,EAAAA,YAAY,CAAC1M,IAAD,EAAuC2M,OAAvC,EAAgE;AAC1E3M,IAAAA,IAAI,CAACkZ,EAAL,GAAU,IAAV;AACAlZ,IAAAA,IAAI,CAAC6iD,SAAL,GAAiB,KAAjB;AACA7iD,IAAAA,IAAI,CAAC8iD,KAAL,GAAa,CAAC,CAACn2C,OAAf;AACD;;AAIDoC,EAAAA,WAAW,CACT/O,IADS,EAET4O,WAFS,EAGTjC,OAHS,EAITkC,aAJS,EAKTU,gBALS,EAMT3O,IANS,EAOT4O,YAAqB,GAAG,KAPf,EAQN;AACH,UAAMo/B,WAAW,GAAG,KAAKjvC,KAAL,CAAWkvC,QAA/B;AACA,UAAMC,WAAW,GAAG,KAAKnvC,KAAL,CAAWovC,QAA/B;AACA,SAAKpvC,KAAL,CAAWkvC,QAAX,GAAsB,CAAC,CAAvB;AACA,SAAKlvC,KAAL,CAAWovC,QAAX,GAAsB,CAAC,CAAvB;AAEA,SAAKriC,YAAL,CAAkB1M,IAAlB,EAAwB2M,OAAxB;AACA3M,IAAAA,IAAI,CAAC6iD,SAAL,GAAiB,CAAC,CAACj0C,WAAnB;AACA,UAAMoY,cAAc,GAAGnY,aAAvB;AACA,SAAK+L,KAAL,CAAWE,KAAX,CACEngB,cAAc,GACZG,WADF,IAEG0U,YAAY,GAAGxU,WAAH,GAAiB,CAFhC,KAGGuU,gBAAgB,GAAGxU,kBAAH,GAAwB,CAH3C,CADF;AAMA,SAAKgX,SAAL,CAAe+I,KAAf,CAAqBynB,aAAa,CAAC51B,OAAD,EAAU3M,IAAI,CAAC6iD,SAAf,CAAlC;AACA,SAAK97B,mBAAL,CAA0B/mB,IAA1B,EAAsCgnB,cAAtC;AACA,SAAK/F,0BAAL,CAAgCjhB,IAAhC,EAAsCY,IAAtC,EAA4C,IAA5C;AACA,SAAKmR,SAAL,CAAekJ,IAAf;AACA,SAAKL,KAAL,CAAWK,IAAX;AAEA,SAAKtb,KAAL,CAAWkvC,QAAX,GAAsBD,WAAtB;AACA,SAAKjvC,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;AAEA,WAAO9uC,IAAP;AACD;;AAKDmpB,EAAAA,oBAAoB,CAClBnpB,IADkB,EAElBoK,MAFkB,EAGlBuC,OAHkB,EAIlBmY,gBAJkB,EAKS;AAC3B,SAAKlK,KAAL,CAAWE,KAAX,CAAiBngB,cAAc,GAAGC,WAAlC;AACA,SAAKmX,SAAL,CAAe+I,KAAf,CAAqBynB,aAAa,CAAC51B,OAAD,EAAU,KAAV,CAAlC;AACA,SAAKD,YAAL,CAAkB1M,IAAlB,EAAwB2M,OAAxB;AACA,UAAM+hC,yBAAyB,GAAG,KAAK/uC,KAAL,CAAWgvC,sBAA7C;AACA,UAAMC,WAAW,GAAG,KAAKjvC,KAAL,CAAWkvC,QAA/B;AACA,UAAMC,WAAW,GAAG,KAAKnvC,KAAL,CAAWovC,QAA/B;;AAEA,QAAI3kC,MAAJ,EAAY;AACV,WAAKzK,KAAL,CAAWgvC,sBAAX,GAAoC,IAApC;AACA,WAAK5mB,0BAAL,CAAgC/nB,IAAhC,EAAsCoK,MAAtC,EAA8C0a,gBAA9C;AACD;;AACD,SAAKnlB,KAAL,CAAWgvC,sBAAX,GAAoC,KAApC;AACA,SAAKhvC,KAAL,CAAWkvC,QAAX,GAAsB,CAAC,CAAvB;AACA,SAAKlvC,KAAL,CAAWovC,QAAX,GAAsB,CAAC,CAAvB;AACA,SAAK3/B,iBAAL,CAAuBpP,IAAvB,EAA6B,IAA7B;AAEA,SAAK+R,SAAL,CAAekJ,IAAf;AACA,SAAKL,KAAL,CAAWK,IAAX;AACA,SAAKtb,KAAL,CAAWgvC,sBAAX,GAAoCD,yBAApC;AACA,SAAK/uC,KAAL,CAAWkvC,QAAX,GAAsBD,WAAtB;AACA,SAAKjvC,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;AAEA,WAAO,KAAKn/B,UAAL,CAAgB3P,IAAhB,EAAsB,yBAAtB,CAAP;AACD;;AAED+nB,EAAAA,0BAA0B,CACxB/nB,IADwB,EAExBoK,MAFwB,EAGxB0a,gBAHwB,EAIlB;AACN9kB,IAAAA,IAAI,CAACoK,MAAL,GAAc,KAAK4Y,gBAAL,CAAsB5Y,MAAtB,EAA8B0a,gBAA9B,CAAd;AACD;;AAED7D,EAAAA,0BAA0B,CACxBjhB,IADwB,EAExBY,IAFwB,EAGxB0O,QAAkB,GAAG,KAHG,EAIlB;AAEN,SAAKF,iBAAL,CAAuBpP,IAAvB,EAA6B,KAA7B,EAAoCsP,QAApC;AACA,SAAKK,UAAL,CAAgB3P,IAAhB,EAAsBY,IAAtB;AACD;;AAGDwO,EAAAA,iBAAiB,CACfpP,IADe,EAEfqP,eAFe,EAGfC,QAAkB,GAAG,KAHN,EAIT;AACN,UAAMyzC,YAAY,GAAG1zC,eAAe,IAAI,CAAC,KAAK/Q,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAzC;AACA,UAAMotD,eAAe,GAAG,KAAKrjD,KAAL,CAAWw1C,YAAnC;AACA,SAAKx1C,KAAL,CAAWw1C,YAAX,GAA0B,KAA1B;;AAEA,QAAI4N,YAAJ,EAAkB;AAChB/iD,MAAAA,IAAI,CAACa,IAAL,GAAY,KAAK4hB,gBAAL,EAAZ;AACA,WAAKS,WAAL,CAAiBljB,IAAjB,EAAuB,KAAvB,EAA8BqP,eAA9B,EAA+C,KAA/C;AACD,KAHD,MAGO;AACL,YAAM4zC,SAAS,GAAG,KAAKtjD,KAAL,CAAWsT,MAA7B;AAGA,YAAMwtC,SAAS,GAAG,KAAK9gD,KAAL,CAAWg2C,MAA7B;AACA,WAAKh2C,KAAL,CAAWg2C,MAAX,GAAoB,EAApB;AAIA,WAAK5jC,SAAL,CAAe+I,KAAf,CAAqB,KAAK/I,SAAL,CAAeqwB,YAAf,KAAgCH,YAArD;AACAjiC,MAAAA,IAAI,CAACa,IAAL,GAAY,KAAKqxC,UAAL,CACV,IADU,EAEV,KAFU,EAITgR,sBAAD,IAAqC;AACnC,cAAMC,SAAS,GAAG,CAAC,KAAKC,iBAAL,CAAuBpjD,IAAI,CAACoK,MAA5B,CAAnB;;AAEA,YAAI84C,sBAAsB,IAAIC,SAA9B,EAAyC;AAEvC,gBAAME,QAAQ,GAEZ,CAACrjD,IAAI,CAACkL,IAAL,KAAc,QAAd,IAA0BlL,IAAI,CAACkL,IAAL,KAAc,aAAzC,KAEA,CAAC,CAAClL,IAAI,CAAC4N,GAFP,GAGI5N,IAAI,CAAC4N,GAAL,CAAS3P,GAHb,GAII+B,IAAI,CAAChC,KANX;AAOA,eAAKkM,KAAL,CAAWm5C,QAAX,EAAqB9hD,MAAM,CAACiC,4BAA5B;AACD;;AAED,cAAMw6C,iBAAiB,GAAG,CAACiF,SAAD,IAAc,KAAKtjD,KAAL,CAAWsT,MAAnD;AAIA,aAAKiQ,WAAL,CACEljB,IADF,EAEE,CAAC,KAAKL,KAAL,CAAWsT,MAAZ,IAAsB,CAAC5D,eAAvB,IAA0C,CAACC,QAA3C,IAAuD,CAAC6zC,SAF1D,EAGE9zC,eAHF,EAIE2uC,iBAJF;;AAQA,YAAI,KAAKr+C,KAAL,CAAWsT,MAAX,IAAqBjT,IAAI,CAACkZ,EAA9B,EAAkC;AAChC,eAAKlM,SAAL,CACEhN,IAAI,CAACkZ,EADP,EAEE3c,YAFF,EAGEmE,SAHF,EAIE,eAJF,EAKEA,SALF,EAMEs9C,iBANF;AAQD;AACF,OAzCS,CAAZ;AA2CA,WAAKjsC,SAAL,CAAekJ,IAAf;AACA,WAAKtb,KAAL,CAAWg2C,MAAX,GAAoB8K,SAApB;AACD;;AAED,SAAK9gD,KAAL,CAAWw1C,YAAX,GAA0B6N,eAA1B;AACD;;AAEDI,EAAAA,iBAAiB,CACfh5C,MADe,EAEN;AACT,SAAK,IAAIhK,CAAC,GAAG,CAAR,EAAWo5C,GAAG,GAAGpvC,MAAM,CAAC/K,MAA7B,EAAqCe,CAAC,GAAGo5C,GAAzC,EAA8Cp5C,CAAC,EAA/C,EAAmD;AACjD,UAAIgK,MAAM,CAAChK,CAAD,CAAN,CAAUQ,IAAV,KAAmB,YAAvB,EAAqC,OAAO,KAAP;AACtC;;AACD,WAAO,IAAP;AACD;;AAEDsiB,EAAAA,WAAW,CACTljB,IADS,EAETgoB,eAFS,EAITC,eAJS,EAKT+1B,iBAA2B,GAAG,IALrB,EAMH;AAEN,UAAMsF,QAAY,GAAG9hD,MAAM,CAACghD,MAAP,CAAc,IAAd,CAArB;;AACA,SAAK,IAAIpiD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,IAAI,CAACoK,MAAL,CAAY/K,MAAhC,EAAwCe,CAAC,EAAzC,EAA6C;AAC3C,WAAK4M,SAAL,CACEhN,IAAI,CAACoK,MAAL,CAAYhK,CAAZ,CADF,EAEEpE,QAFF,EAGEgsB,eAAe,GAAG,IAAH,GAAUs7B,QAH3B,EAIE,yBAJF,EAKE5iD,SALF,EAMEs9C,iBANF;AAQD;AACF;;AAQD0C,EAAAA,aAAa,CACXjD,KADW,EAEXE,UAFW,EAGXlwC,mBAHW,EAIX0yC,YAJW,EAKoB;AAC/B,UAAMvC,IAAI,GAAG,EAAb;AACA,QAAIC,KAAK,GAAG,IAAZ;;AAEA,WAAO,CAAC,KAAKllC,GAAL,CAAS8kC,KAAT,CAAR,EAAyB;AACvB,UAAII,KAAJ,EAAW;AACTA,QAAAA,KAAK,GAAG,KAAR;AACD,OAFD,MAEO;AACL,aAAKzlC,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;;AACA,YAAI,KAAKmI,KAAL,CAAWm/C,KAAX,CAAJ,EAAuB;AACrB,cAAI0C,YAAJ,EAAkB;AAChB,iBAAKzE,QAAL,CACEyE,YADF,EAEE,eAFF,EAGE,KAAKxgD,KAAL,CAAWkK,YAHb;AAKD;;AACD,eAAKmK,IAAL;AACA;AACD;AACF;;AAED4pC,MAAAA,IAAI,CAAC/9C,IAAL,CAAU,KAAKygD,iBAAL,CAAuB3C,UAAvB,EAAmClwC,mBAAnC,CAAV;AACD;;AACD,WAAOmwC,IAAP;AACD;;AAED0C,EAAAA,iBAAiB,CACf3C,UADe,EAEflwC,mBAFe,EAGfiU,gBAHe,EAIfw+B,gBAJe,EAKA;AACf,QAAI7Q,GAAJ;;AACA,QAAIsO,UAAU,IAAI,KAAKr/C,KAAL,CAAW4Q,KAAE,CAAC/Y,KAAd,CAAlB,EAAwC;AACtCk5C,MAAAA,GAAG,GAAG,IAAN;AACD,KAFD,MAEO,IAAI,KAAK/wC,KAAL,CAAW4Q,KAAE,CAACtY,QAAd,CAAJ,EAA6B;AAClC,YAAM6qD,kBAAkB,GAAG,KAAK9hD,KAAL,CAAW3B,KAAtC;AACA,YAAM0jD,kBAAkB,GAAG,KAAK/hD,KAAL,CAAWiK,QAAtC;AACAylC,MAAAA,GAAG,GAAG,KAAKhsB,cAAL,CACJ,KAAKi6B,WAAL,CAAiB7vC,mBAAjB,EAAsCiU,gBAAtC,CADI,EAEJ+/B,kBAFI,EAGJC,kBAHI,CAAN;AAKD,KARM,MAQA,IAAI,KAAKpjD,KAAL,CAAW4Q,KAAE,CAAC1Y,QAAd,CAAJ,EAA6B;AAClC,WAAK87C,YAAL,CAAkB,oBAAlB;;AACA,UAAI,CAAC4N,gBAAL,EAAuB;AACrB,aAAKh2C,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACoG,6BAApC;AACD;;AACD,YAAM3H,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,WAAKsE,IAAL;AACAq7B,MAAAA,GAAG,GAAG,KAAK1/B,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAN;AACD,KARM,MAQA;AACLqvC,MAAAA,GAAG,GAAG,KAAK5sB,gBAAL,CACJ,KADI,EAEJhV,mBAFI,EAGJ,KAAK4V,cAHD,EAIJ3B,gBAJI,CAAN;AAMD;;AACD,WAAO2tB,GAAP;AACD;;AAQDl2B,EAAAA,eAAe,CAACwD,OAAD,EAAkC;AAC/C,UAAM3c,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,UAAM9a,IAAI,GAAG,KAAK0xC,mBAAL,CAAyBtmC,IAAI,CAAChC,KAA9B,EAAqC2e,OAArC,CAAb;AAEA,WAAO,KAAKyD,gBAAL,CAAsBpgB,IAAtB,EAA4BpL,IAA5B,CAAP;AACD;;AAEDwrB,EAAAA,gBAAgB,CAACpgB,IAAD,EAAqBpL,IAArB,EAAiD;AAC/DoL,IAAAA,IAAI,CAACpL,IAAL,GAAYA,IAAZ;AACAoL,IAAAA,IAAI,CAACN,GAAL,CAAS6jD,cAAT,GAA0B3uD,IAA1B;AAEA,WAAO,KAAK+a,UAAL,CAAgB3P,IAAhB,EAAsB,YAAtB,CAAP;AACD;;AAEDsmC,EAAAA,mBAAmB,CAAC38B,GAAD,EAAcgT,OAAd,EAAyC;AAC1D,QAAI/nB,IAAJ;;AAEA,QAAI,KAAK0J,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAJ,EAAyB;AACvBA,MAAAA,IAAI,GAAG,KAAK+K,KAAL,CAAWiM,KAAlB;AACD,KAFD,MAEO,IAAI,KAAKjM,KAAL,CAAWiB,IAAX,CAAgBvM,OAApB,EAA6B;AAClCO,MAAAA,IAAI,GAAG,KAAK+K,KAAL,CAAWiB,IAAX,CAAgBvM,OAAvB;;AAOA,UACE,CAACO,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,UAA9B,MACC,KAAK+K,KAAL,CAAWqK,UAAX,KAA0B,KAAKrK,KAAL,CAAWkK,YAAX,GAA0B,CAApD,IACC,KAAK1L,KAAL,CAAWqmB,UAAX,CAAsB,KAAK7kB,KAAL,CAAWkK,YAAjC,QAFF,CADF,EAIE;AACA,aAAKlK,KAAL,CAAW8R,OAAX,CAAmBvQ,GAAnB;AACD;AACF,KAfM,MAeA;AACL,YAAM,KAAKwZ,UAAL,EAAN;AACD;;AAED,QAAIiC,OAAJ,EAAa;AAGX,WAAKhd,KAAL,CAAWiB,IAAX,GAAkBsO,KAAE,CAACta,IAArB;AACD,KAJD,MAIO;AACL,WAAKkyB,iBAAL,CACElyB,IADF,EAEE,KAAK+K,KAAL,CAAW3B,KAFb,EAGE,CAAC,CAAC,KAAK2B,KAAL,CAAWiB,IAAX,CAAgBvM,OAHpB,EAIE,KAJF;AAMD;;AAED,SAAK2f,IAAL;AAEA,WAAOpf,IAAP;AACD;;AAEDkyB,EAAAA,iBAAiB,CACfvT,IADe,EAEf3J,QAFe,EAGfumC,aAHe,EAIfxrB,SAJe,EAKT;AACN,QAAI,KAAK5S,SAAL,CAAeC,QAAf,IAA2BuB,IAAI,KAAK,OAAxC,EAAiD;AAC/C,WAAKrJ,KAAL,CAAWN,QAAX,EAAqBrI,MAAM,CAAC+H,sBAA5B;AACA;AACD;;AAED,QAAIiK,IAAI,KAAK,OAAb,EAAsB;AACpB,UAAI,KAAKxB,SAAL,CAAeswB,QAAnB,EAA6B;AAC3B,aAAKn4B,KAAL,CAAWN,QAAX,EAAqBrI,MAAM,CAACK,sBAA5B;AACA;AACD;;AACD,UACE,KAAKjC,KAAL,CAAWovC,QAAX,KAAwB,CAAC,CAAzB,KACC,KAAKpvC,KAAL,CAAWy1C,qBAAX,IAAoC,KAAKgK,cAAL,EADrC,CADF,EAGE;AACA,aAAKz/C,KAAL,CAAWovC,QAAX,GAAsB,KAAKpvC,KAAL,CAAW3B,KAAjC;AACD;AACF;;AAED,QACE,KAAK4c,KAAL,CAAW+lB,OAAX,IACA,CAAC,KAAK/lB,KAAL,CAAWgmB,kBADZ,IAEArtB,IAAI,KAAK,WAHX,EAIE;AACA,WAAKrJ,KAAL,CAAWN,QAAX,EAAqBrI,MAAM,CAACG,gCAA5B;AACA;AACD;;AACD,QAAIyuC,aAAa,IAAIv8B,SAAS,CAACL,IAAD,CAA9B,EAAsC;AACpC,WAAKrJ,KAAL,CAAWN,QAAX,EAAqBrI,MAAM,CAACwG,iBAA5B,EAA+CwL,IAA/C;AACA;AACD;;AAED,UAAMiwC,YAAY,GAAG,CAAC,KAAK7jD,KAAL,CAAWsT,MAAZ,GACjBK,cADiB,GAEjBqR,SAAS,GACThR,wBADS,GAETF,oBAJJ;;AAMA,QAAI+vC,YAAY,CAACjwC,IAAD,EAAO,KAAKC,QAAZ,CAAhB,EAAuC;AACrC,UAAI,CAAC,KAAKzB,SAAL,CAAeswB,QAAhB,IAA4B9uB,IAAI,KAAK,OAAzC,EAAkD;AAChD,aAAKrJ,KAAL,CAAWN,QAAX,EAAqBrI,MAAM,CAACO,uBAA5B;AACD,OAFD,MAEO;AACL,aAAKoI,KAAL,CAAWN,QAAX,EAAqBrI,MAAM,CAAC8G,sBAA5B,EAAoDkL,IAApD;AACD;AACF;AACF;;AAED6rC,EAAAA,cAAc,GAAY;AACxB,QAAI,KAAKxkC,KAAL,CAAW2lB,UAAf,EAA2B,OAAO,KAAKxuB,SAAL,CAAeswB,QAAtB;AAC3B,QAAI,KAAKxtC,OAAL,CAAay/C,yBAAjB,EAA4C,OAAO,IAAP;;AAC5C,QAAI,KAAKz1C,SAAL,CAAe,eAAf,CAAJ,EAAqC;AACnC,aAAO,KAAK2U,QAAL,IAAiB,KAAKzB,SAAL,CAAeswB,QAAvC;AACD;;AACD,WAAO,KAAP;AACD;;AAIDgd,EAAAA,UAAU,GAAsB;AAC9B,UAAMr/C,IAAI,GAAG,KAAK0P,SAAL,EAAb;AAEA,SAAKsE,IAAL;;AAEA,QAAI,KAAKrU,KAAL,CAAWw1C,YAAf,EAA6B;AAC3B,WAAKjrC,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACM,8BAA9B;AACD,KAFD,MAEO,IAAI,KAAKlC,KAAL,CAAWovC,QAAX,KAAwB,CAAC,CAA7B,EAAgC;AACrC,WAAKpvC,KAAL,CAAWovC,QAAX,GAAsB/uC,IAAI,CAAChC,KAA3B;AACD;;AACD,QAAI,KAAK2a,GAAL,CAASzJ,KAAE,CAAC/W,IAAZ,CAAJ,EAAuB;AACrB,WAAK+R,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACqE,iBAA9B;AACD;;AAED,QAAI,CAAC,KAAKgV,KAAL,CAAW2lB,UAAZ,IAA0B,CAAC,KAAK1rC,OAAL,CAAay/C,yBAA5C,EAAuE;AACrE,UACE,KAAKlQ,qBAAL,MAGA,KAAK9lC,KAAL,CAAW4Q,KAAE,CAACjX,OAAd,CAHA,IAIA,KAAKqG,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAJA,IAKA,KAAKqI,KAAL,CAAW4Q,KAAE,CAAC3Z,QAAd,CALA,IAMA,KAAK+I,KAAL,CAAW4Q,KAAE,CAACrY,SAAd,CANA,IASA,KAAKyH,KAAL,CAAW4Q,KAAE,CAAC9Z,MAAd,CATA,IAUA,KAAKkJ,KAAL,CAAW4Q,KAAE,CAAC9W,KAAd,CAVA,IAaC,KAAKyG,SAAL,CAAe,aAAf,KAAiC,KAAKP,KAAL,CAAW4Q,KAAE,CAAChX,MAAd,CAdpC,EAeE;AACA,aAAK0G,2BAAL,GAAmC,IAAnC;AACD,OAjBD,MAiBO;AACL,aAAKD,iBAAL,GAAyB,IAAzB;AACD;AACF;;AAED,QAAI,CAAC,KAAKgB,KAAL,CAAW81C,SAAhB,EAA2B;AACzBz1C,MAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAKoqB,eAAL,EAAhB;AACD;;AAED,WAAO,KAAK/5B,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAIDq+C,EAAAA,UAAU,CAAC58B,IAAD,EAAqC;AAC7C,UAAMzhB,IAAI,GAAG,KAAK0P,SAAL,EAAb;;AAEA,QAAI,KAAK/P,KAAL,CAAWw1C,YAAf,EAA6B;AAC3B,WAAKjrC,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACgI,gBAA9B;AACD,KAFD,MAEO,IAAI,KAAK5J,KAAL,CAAWkvC,QAAX,KAAwB,CAAC,CAA7B,EAAgC;AACrC,WAAKlvC,KAAL,CAAWkvC,QAAX,GAAsB7uC,IAAI,CAAChC,KAA3B;AACD;;AAED,SAAKgW,IAAL;;AACA,QACE,KAAK1V,KAAL,CAAW4Q,KAAE,CAAC9Y,IAAd,KACC,CAAC,KAAKkI,KAAL,CAAW4Q,KAAE,CAAC/W,IAAd,CAAD,IAAwB,CAAC,KAAKwH,KAAL,CAAWiB,IAAX,CAAgBhN,UAD1C,IAEA,KAAKwwC,qBAAL,EAHF,EAIE;AACApkC,MAAAA,IAAI,CAACyjD,QAAL,GAAgB,KAAhB;AACAzjD,MAAAA,IAAI,CAACsf,QAAL,GAAgB,IAAhB;AACD,KAPD,MAOO;AACLtf,MAAAA,IAAI,CAACyjD,QAAL,GAAgB,KAAK9qC,GAAL,CAASzJ,KAAE,CAAC/W,IAAZ,CAAhB;AACA6H,MAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAKmD,gBAAL,CAAsBhB,IAAtB,CAAhB;AACD;;AACD,WAAO,KAAK9R,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAKD4+C,EAAAA,4BAA4B,CAAC94B,IAAD,EAAqBkqB,YAArB,EAA2C;AACrE,QAAI,KAAKhxC,eAAL,CAAqB,kBAArB,EAAyC,UAAzC,MAAyD,OAA7D,EAAsE;AACpE,UAAI8mB,IAAI,CAACllB,IAAL,KAAc,oBAAlB,EAAwC;AAGtC,aAAKsJ,KAAL,CAAW8lC,YAAX,EAAyBzuC,MAAM,CAAC6E,8BAAhC;AACD;AACF;AACF;;AAED44C,EAAAA,sBAAsB,CACpB0E,eADoB,EAEpBv0C,QAFoB,EAGpBvF,QAHoB,EAIJ;AAChB,UAAM+5C,aAAa,GAAG,KAAKC,2BAAL,CAAiCF,eAAjC,CAAtB;AAEA,SAAKG,iCAAL,CACEH,eADF,EAEEC,aAFF,EAGEx0C,QAHF;AAMA,WAAO,KAAK20C,6BAAL,CACLJ,eADK,EAELC,aAFK,EAGLx0C,QAHK,EAILvF,QAJK,CAAP;AAMD;;AAEDi6C,EAAAA,iCAAiC,CAC/BH,eAD+B,EAE/BC,aAF+B,EAG/Bx0C,QAH+B,EAIzB;AACN,QAAI,KAAK7Q,KAAL,CAAW4Q,KAAE,CAACxY,KAAd,CAAJ,EAA0B;AAGxB,YAAM,KAAKwT,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC2E,mBAApC,CAAN;AACD,KAJD,MAIO,IACLy9C,aAAa,KAAK,yBAAlB,IACAD,eAAe,CAAC9iD,IAAhB,KAAyB,oBAFpB,EAGL;AACA,WAAKsJ,KAAL,CAAWiF,QAAX,EAAqB5N,MAAM,CAAC4E,8BAA5B;AACD;AACF;;AAED29C,EAAAA,6BAA6B,CAC3BJ,eAD2B,EAE3BC,aAF2B,EAG3Bx0C,QAH2B,EAI3BvF,QAJ2B,EAKX;AAChB,UAAMmR,QAAQ,GAAG,KAAK1O,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAjB;;AACA,YAAQ+5C,aAAR;AACE,WAAK,sBAAL;AACE5oC,QAAAA,QAAQ,CAAC1K,MAAT,GAAkBqzC,eAAlB;AACA;;AACF,WAAK,yBAAL;AACE3oC,QAAAA,QAAQ,CAAC1K,MAAT,GAAkBqzC,eAAe,CAACrzC,MAAlC;AACA;;AACF,WAAK,6BAAL;AACE0K,QAAAA,QAAQ,CAAC1K,MAAT,GAAkBqzC,eAAe,CAACpkC,QAAlC;AACA;;AACF,WAAK,yBAAL;AACE,YAAI,CAAC,KAAKykC,0CAAL,EAAL,EAAwD;AACtD,eAAK75C,KAAL,CAAWiF,QAAX,EAAqB5N,MAAM,CAAC8E,mBAA5B;AACD;;AACD0U,QAAAA,QAAQ,CAACzO,UAAT,GAAsBo3C,eAAtB;AACA;;AACF;AACE,cAAM,IAAI3rC,KAAJ,CACH,yDAAwD4rC,aAAc,GADnE,CAAN;AAjBJ;;AAqBA,WAAO,KAAKh0C,UAAL,CAAgBoL,QAAhB,EAA0B4oC,aAA1B,CAAP;AACD;;AAEDC,EAAAA,2BAA2B,CAACt3C,UAAD,EAA4C;AACrE,YAAQA,UAAU,CAAC1L,IAAnB;AACE;AACE,eAAO,KAAKojD,iBAAL,CAAuB13C,UAAvB,IACH,sBADG,GAEH,yBAFJ;AAFJ;AAMD;;AAED03C,EAAAA,iBAAiB,CAAC13C,UAAD,EAAoC;AACnD,YAAQA,UAAU,CAAC1L,IAAnB;AACE,WAAK,kBAAL;AACE,eACE,CAAC0L,UAAU,CAACoB,QAAZ,IAAwB,KAAKs2C,iBAAL,CAAuB13C,UAAU,CAAC8wB,MAAlC,CAD1B;;AAGF,WAAK,YAAL;AACE,eAAO,IAAP;;AACF;AACE,eAAO,KAAP;AARJ;AAUD;;AAQD2hB,EAAAA,0BAA0B,CAAIkF,QAAJ,EAA0B;AAClD,UAAMC,sBAAsB,GAAG,KAAKvkD,KAAL,CAAW21C,YAA1C;AACA,SAAK31C,KAAL,CAAW21C,YAAX,GAA0B;AAExBC,MAAAA,wBAAwB,EAAE,CAFF;AAIxBC,MAAAA,aAAa,EAAE;AAJS,KAA1B;;AAOA,QAAI;AACF,aAAOyO,QAAQ,EAAf;AACD,KAFD,SAEU;AACR,WAAKtkD,KAAL,CAAW21C,YAAX,GAA0B4O,sBAA1B;AACD;AACF;;AASDC,EAAAA,0BAA0B,CAAIF,QAAJ,EAA0B;AAClD,UAAMC,sBAAsB,GAAG,KAAKvkD,KAAL,CAAW21C,YAA1C;AACA,SAAK31C,KAAL,CAAW21C,YAAX,GAA0B;AAExBC,MAAAA,wBAAwB,EAAE,CAFF;AAIxBC,MAAAA,aAAa,EAAE;AAJS,KAA1B;;AAOA,QAAI;AACF,aAAOyO,QAAQ,EAAf;AACD,KAFD,SAEU;AACR,WAAKtkD,KAAL,CAAW21C,YAAX,GAA0B4O,sBAA1B;AACD;AACF;;AAEDhF,EAAAA,8BAA8B,CAAI+E,QAAJ,EAA0B;AACtD,UAAMG,0BAA0B,GAAG,KAAKzkD,KAAL,CAAW81C,SAA9C;AACA,SAAK91C,KAAL,CAAW81C,SAAX,GAAuB,IAAvB;;AAEA,QAAI;AACF,aAAOwO,QAAQ,EAAf;AACD,KAFD,SAEU;AACR,WAAKtkD,KAAL,CAAW81C,SAAX,GAAuB2O,0BAAvB;AACD;AACF;;AAIDpD,EAAAA,sBAAsB,GAAS;AAC7B,SAAKrhD,KAAL,CAAW21C,YAAX,CAAwBE,aAAxB,GAAwC,CAAxC;AACD;;AAEDuL,EAAAA,mDAAmD,GAAY;AAC7D,WAAO,KAAKphD,KAAL,CAAW21C,YAAX,CAAwBC,wBAAxB,IAAoD,CAA3D;AACD;;AAEDwO,EAAAA,0CAA0C,GAAY;AACpD,WACE,KAAKpkD,KAAL,CAAW21C,YAAX,CAAwBE,aAAxB,IAAyC,IAAzC,IACA,KAAK71C,KAAL,CAAW21C,YAAX,CAAwBE,aAAxB,IAAyC,CAF3C;AAID;;AAED2J,EAAAA,uBAAuB,CAACV,IAAD,EAAeh9B,IAAf,EAA6C;AAClE,UAAMtS,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,UAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AAEA,SAAKjK,KAAL,CAAWu1C,gBAAX,GAA8B,KAAKv1C,KAAL,CAAW3B,KAAzC;AACA,UAAMqiD,6BAA6B,GAAG,KAAK1gD,KAAL,CAAW+1C,0BAAjD;AACA,SAAK/1C,KAAL,CAAW+1C,0BAAX,GAAwC,IAAxC;AAEA,UAAMiL,GAAG,GAAG,KAAK5Q,WAAL,CACV,KAAKrG,eAAL,EADU,EAEVv6B,QAFU,EAGVvF,QAHU,EAIV60C,IAJU,EAKVh9B,IALU,CAAZ;AAQA,SAAK9hB,KAAL,CAAW+1C,0BAAX,GAAwC2K,6BAAxC;AAEA,WAAOM,GAAP;AACD;;AAv4EsD;;AClBzD,MAAM0D,SAAS,GAAG;AAAEn5C,EAAAA,IAAI,EAAE;AAAR,CAAlB;AAAA,MACEo5C,WAAW,GAAG;AAAEp5C,EAAAA,IAAI,EAAE;AAAR,CADhB;AAGA,MAAMq5C,aAAa,GAAG,KAAtB;AAAA,MACEC,cAAc,GAAG,KADnB;AAAA,MAEEC,sBAAsB,GAAG,KAF3B;AAAA,MAGEC,gBAAgB,GAAG,KAHrB;AAKA,AAAe,MAAMC,eAAN,SAA8BzG,gBAA9B,CAA+C;AAQ5D10B,EAAAA,aAAa,CAACC,IAAD,EAAeC,OAAf,EAA2C;AACtDA,IAAAA,OAAO,CAACyqB,UAAR,GAAqB,KAAKt/C,OAAL,CAAas/C,UAAlC;AAEAzqB,IAAAA,OAAO,CAACk7B,WAAR,GAAsB,KAAKC,yBAAL,EAAtB;AAEA,SAAK32C,cAAL,CAAoBwb,OAApB,EAA6B,IAA7B,EAAmC,IAAnC,EAAyCxa,KAAE,CAAC5Z,GAA5C;;AAEA,QACE,KAAKke,QAAL,IACA,CAAC,KAAK3e,OAAL,CAAa6/C,sBADd,IAEA,KAAK95B,KAAL,CAAWylB,gBAAX,CAA4BqY,IAA5B,GAAmC,CAHrC,EAIE;AAAA,qCACqBxF,KAAK,CAAC4R,IAAN,CAAW,KAAKlqC,KAAL,CAAWylB,gBAAtB,CADrB,iCAC8D;AAAzD,cAAM,CAACzrC,IAAD,mBAAN;AACH,cAAM+U,GAAG,GAAG,KAAKiR,KAAL,CAAWylB,gBAAX,CAA4BnhC,GAA5B,CAAgCtK,IAAhC,CAAZ;AAEA,aAAKsV,KAAL,CAAWP,GAAX,EAAgBpI,MAAM,CAAC+D,qBAAvB,EAA8C1Q,IAA9C;AACD;AACF;;AAED60B,IAAAA,IAAI,CAACC,OAAL,GAAe,KAAK/Z,UAAL,CAAgB+Z,OAAhB,EAAyB,SAAzB,CAAf;AACAD,IAAAA,IAAI,CAACosB,QAAL,GAAgB,KAAKl2C,KAAL,CAAWk2C,QAA3B;AAEA,QAAI,KAAKhhD,OAAL,CAAaggD,MAAjB,EAAyBprB,IAAI,CAACorB,MAAL,GAAc,KAAKA,MAAnB;AAEzB,WAAO,KAAKllC,UAAL,CAAgB8Z,IAAhB,EAAsB,MAAtB,CAAP;AACD;;AAIDxb,EAAAA,eAAe,CAAC7B,IAAD,EAAiC;AAC9C,UAAMa,IAAI,GAAGb,IAAI,CAACE,UAAlB;AAEA,UAAMH,gBAAgB,GAAG,KAAKE,WAAL,CAAiBY,IAAI,CAACjP,KAAtB,EAA6BiP,IAAI,CAACvN,GAAL,CAAS1B,KAAtC,CAAzB;AACA,UAAMkO,SAAS,GAAG,KAAKG,WAAL,CAAiBD,IAAI,CAACpO,KAAtB,EAA6BoO,IAAI,CAAC1M,GAAL,CAAS1B,KAAtC,CAAlB;AAEA,UAAMuO,GAAG,GAAG,KAAKpO,KAAL,CAAWkD,KAAX,CAAiB4L,IAAI,CAACjP,KAAtB,EAA6BiP,IAAI,CAAChP,GAAlC,CAAZ;AACA,UAAM4Z,GAAG,GAAI1L,gBAAgB,CAACP,KAAjB,GAAyBW,GAAG,CAAClL,KAAJ,CAAU,CAAV,EAAa,CAAC,CAAd,CAAtC;AAEA,SAAKq6C,QAAL,CAAcvvC,gBAAd,EAAgC,KAAhC,EAAuCI,GAAvC;AACA,SAAKmvC,QAAL,CAAcvvC,gBAAd,EAAgC,UAAhC,EAA4C0L,GAA5C;AAEA3L,IAAAA,SAAS,CAACN,KAAV,GAAkB,KAAKa,YAAL,CAChBN,gBADgB,EAEhB,kBAFgB,EAGhBc,IAAI,CAAChP,GAHW,EAIhBgP,IAAI,CAACvN,GAAL,CAASzB,GAJO,CAAlB;AAOA,WAAO,KAAKwO,YAAL,CAAkBP,SAAlB,EAA6B,WAA7B,EAA0CE,IAAI,CAACnO,GAA/C,EAAoDmO,IAAI,CAAC1M,GAAL,CAASzB,GAA7D,CAAP;AACD;;AAED4mD,EAAAA,yBAAyB,GAAkC;AACzD,QAAI,CAAC,KAAKvmD,KAAL,CAAW4Q,KAAE,CAACjY,oBAAd,CAAL,EAA0C;AACxC,aAAO,IAAP;AACD;;AAED,UAAM+I,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA1P,IAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAKjM,KAAL,CAAWiM,KAAxB;AACA,SAAKoI,IAAL;AACA,WAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;AACD;;AAEDob,EAAAA,KAAK,CAAC3J,OAAD,EAA4B;AAC/B,QAAI,CAAC,KAAK4I,YAAL,CAAkB,KAAlB,CAAL,EAA+B;AAC7B,aAAO,KAAP;AACD;;AACD,UAAMrG,IAAI,GAAG,KAAKkjC,cAAL,EAAb;AACA,UAAM6N,MAAM,GAAG,KAAK5mD,KAAL,CAAWqmB,UAAX,CAAsBxQ,IAAtB,CAAf;AAKA,QAAI+wC,MAAM,OAAV,EAA4C,OAAO,IAAP;AAC5C,QAAItzC,OAAJ,EAAa,OAAO,KAAP;AAEb,QAAIszC,MAAM,QAAV,EAAyC,OAAO,IAAP;;AAEzC,QAAIlyC,iBAAiB,CAACkyC,MAAD,CAArB,EAA+B;AAC7B,UAAIp7C,GAAG,GAAGqK,IAAI,GAAG,CAAjB;;AACA,aAAOjB,gBAAgB,CAAC,KAAK5U,KAAL,CAAWqmB,UAAX,CAAsB7a,GAAtB,CAAD,CAAvB,EAAqD;AACnD,UAAEA,GAAF;AACD;;AACD,YAAM0T,KAAK,GAAG,KAAKlf,KAAL,CAAWkD,KAAX,CAAiB2S,IAAjB,EAAuBrK,GAAvB,CAAd;AACA,UAAI,CAACkK,yBAAyB,CAACzB,IAA1B,CAA+BiL,KAA/B,CAAL,EAA4C,OAAO,IAAP;AAC7C;;AACD,WAAO,KAAP;AACD;;AASD6D,EAAAA,cAAc,CAACzP,OAAD,EAAmBrD,QAAnB,EAAoD;AAChE,QAAI,KAAK9P,KAAL,CAAW4Q,KAAE,CAACnY,EAAd,CAAJ,EAAuB;AACrB,WAAK8pD,eAAL,CAAqB,IAArB;AACD;;AACD,WAAO,KAAKrQ,qBAAL,CAA2B/+B,OAA3B,EAAoCrD,QAApC,CAAP;AACD;;AAEDoiC,EAAAA,qBAAqB,CAAC/+B,OAAD,EAAmBrD,QAAnB,EAAoD;AACvE,QAAIy/B,SAAS,GAAG,KAAKluC,KAAL,CAAWiB,IAA3B;AACA,UAAMZ,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,QAAIxE,IAAJ;;AAEA,QAAI,KAAKkQ,KAAL,CAAW3J,OAAX,CAAJ,EAAyB;AACvBo8B,MAAAA,SAAS,GAAG3+B,KAAE,CAAC5V,IAAf;AACA4R,MAAAA,IAAI,GAAG,KAAP;AACD;;AAMD,YAAQ2iC,SAAR;AACE,WAAK3+B,KAAE,CAAC5W,MAAR;AACA,WAAK4W,KAAE,CAACzW,SAAR;AAEE,eAAO,KAAKusD,2BAAL,CAAiChlD,IAAjC,EAAuC6tC,SAAS,CAACx5C,OAAjD,CAAP;;AACF,WAAK6a,KAAE,CAACxW,SAAR;AACE,eAAO,KAAKusD,sBAAL,CAA4BjlD,IAA5B,CAAP;;AACF,WAAKkP,KAAE,CAACtW,GAAR;AACE,eAAO,KAAKssD,gBAAL,CAAsBllD,IAAtB,CAAP;;AACF,WAAKkP,KAAE,CAACnW,IAAR;AACE,eAAO,KAAKosD,iBAAL,CAAuBnlD,IAAvB,CAAP;;AACF,WAAKkP,KAAE,CAAClW,SAAR;AACE,YAAI,KAAK6vC,iBAAL,SAAJ,EAAgD;;AAChD,YAAIp3B,OAAJ,EAAa;AACX,cAAI,KAAK9R,KAAL,CAAWsT,MAAf,EAAuB;AACrB,iBAAK/I,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC2F,cAApC;AACD,WAFD,MAEO,IAAIuK,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAK,OAApC,EAA6C;AAClD,iBAAKvH,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACsF,cAApC;AACD;AACF;;AACD,eAAO,KAAKinC,sBAAL,CAA4B9tC,IAA5B,EAAkC,KAAlC,EAAyC,CAACyR,OAA1C,CAAP;;AAEF,WAAKvC,KAAE,CAACrV,MAAR;AACE,YAAI4X,OAAJ,EAAa,KAAKiJ,UAAL;AACb,eAAO,KAAKqzB,UAAL,CAAgB/tC,IAAhB,EAAsB,IAAtB,CAAP;;AAEF,WAAKkP,KAAE,CAACjW,GAAR;AACE,eAAO,KAAKmsD,gBAAL,CAAsBplD,IAAtB,CAAP;;AACF,WAAKkP,KAAE,CAAChW,OAAR;AACE,eAAO,KAAKmsD,oBAAL,CAA0BrlD,IAA1B,CAAP;;AACF,WAAKkP,KAAE,CAAC/V,OAAR;AACE,eAAO,KAAKmsD,oBAAL,CAA0BtlD,IAA1B,CAAP;;AACF,WAAKkP,KAAE,CAAC9V,MAAR;AACE,eAAO,KAAKmsD,mBAAL,CAAyBvlD,IAAzB,CAAP;;AACF,WAAKkP,KAAE,CAAC7V,IAAR;AACE,eAAO,KAAKmsD,iBAAL,CAAuBxlD,IAAvB,CAAP;;AAEF,WAAKkP,KAAE,CAAC3V,MAAR;AACA,WAAK2V,KAAE,CAAC5V,IAAR;AACE4R,QAAAA,IAAI,GAAGA,IAAI,IAAI,KAAKvL,KAAL,CAAWiM,KAA1B;;AACA,YAAI6F,OAAO,IAAIvG,IAAI,KAAK,KAAxB,EAA+B;AAC7B,eAAKhB,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC0G,4BAApC;AACD;;AACD,eAAO,KAAK+lC,iBAAL,CAAuBhuC,IAAvB,EAA6BkL,IAA7B,CAAP;;AAEF,WAAKgE,KAAE,CAAC1V,MAAR;AACE,eAAO,KAAKisD,mBAAL,CAAyBzlD,IAAzB,CAAP;;AACF,WAAKkP,KAAE,CAACzV,KAAR;AACE,eAAO,KAAKisD,kBAAL,CAAwB1lD,IAAxB,CAAP;;AACF,WAAKkP,KAAE,CAACtZ,MAAR;AACE,eAAO,KAAKs8C,UAAL,EAAP;;AACF,WAAKhjC,KAAE,CAAC9Y,IAAR;AACE,eAAO,KAAKuvD,mBAAL,CAAyB3lD,IAAzB,CAAP;;AACF,WAAKkP,KAAE,CAACnV,OAAR;AACA,WAAKmV,KAAE,CAAClV,OAAR;AAAiB;AACf,gBAAM4rD,iBAAiB,GAAG,KAAK/c,iBAAL,EAA1B;;AACA,cACE+c,iBAAiB,OAAjB,IACAA,iBAAiB,OAFnB,EAGE;AACA;AACD;;AAED,cAAI,CAAC,KAAK/wD,OAAL,CAAa2/C,2BAAd,IAA6C,CAACpmC,QAAlD,EAA4D;AAC1D,iBAAKlE,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACuG,sBAApC;AACD;;AAED,eAAKkM,IAAL;AAEA,cAAI2N,MAAJ;;AACA,cAAIksB,SAAS,KAAK3+B,KAAE,CAAClV,OAArB,EAA8B;AAC5B2nB,YAAAA,MAAM,GAAG,KAAK3G,WAAL,CAAiBhb,IAAjB,CAAT;;AAEA,gBACE2hB,MAAM,CAAC/gB,IAAP,KAAgB,mBAAhB,KACC,CAAC+gB,MAAM,CAAC7K,UAAR,IAAsB6K,MAAM,CAAC7K,UAAP,KAAsB,OAD7C,CADF,EAGE;AACA,mBAAKnY,iBAAL,GAAyB,IAAzB;AACD;AACF,WATD,MASO;AACLgjB,YAAAA,MAAM,GAAG,KAAKlR,WAAL,CAAiBzQ,IAAjB,CAAT;;AAEA,gBACG2hB,MAAM,CAAC/gB,IAAP,KAAgB,wBAAhB,KACE,CAAC+gB,MAAM,CAACrG,UAAR,IAAsBqG,MAAM,CAACrG,UAAP,KAAsB,OAD9C,CAAD,IAECqG,MAAM,CAAC/gB,IAAP,KAAgB,sBAAhB,KACE,CAAC+gB,MAAM,CAACrG,UAAR,IAAsBqG,MAAM,CAACrG,UAAP,KAAsB,OAD9C,CAFD,IAIAqG,MAAM,CAAC/gB,IAAP,KAAgB,0BALlB,EAME;AACA,mBAAKjC,iBAAL,GAAyB,IAAzB;AACD;AACF;;AAED,eAAK4kB,uBAAL,CAA6BvjB,IAA7B;AAEA,iBAAO2hB,MAAP;AACD;;AAED;AAAS;AACP,cAAI,KAAKkkC,eAAL,EAAJ,EAA4B;AAC1B,gBAAIp0C,OAAJ,EAAa;AACX,mBAAKvH,KAAL,CACE,KAAKvK,KAAL,CAAW3B,KADb,EAEEuD,MAAM,CAACI,qCAFT;AAID;;AACD,iBAAKqS,IAAL;AACA,mBAAO,KAAK85B,sBAAL,CAA4B9tC,IAA5B,EAAkC,IAAlC,EAAwC,CAACyR,OAAzC,CAAP;AACD;AACF;AA7GH;;AAqHA,UAAMq0C,SAAS,GAAG,KAAKnmD,KAAL,CAAWiM,KAA7B;AACA,UAAMqB,IAAI,GAAG,KAAK2L,eAAL,EAAb;;AAEA,QACEi1B,SAAS,KAAK3+B,KAAE,CAACta,IAAjB,IACAqY,IAAI,CAACrM,IAAL,KAAc,YADd,IAEA,KAAK+X,GAAL,CAASzJ,KAAE,CAAC7Y,KAAZ,CAHF,EAIE;AACA,aAAO,KAAK0vD,qBAAL,CAA2B/lD,IAA3B,EAAiC8lD,SAAjC,EAA4C74C,IAA5C,EAAkDwE,OAAlD,CAAP;AACD,KAND,MAMO;AACL,aAAO,KAAK2P,wBAAL,CAA8BphB,IAA9B,EAAoCiN,IAApC,CAAP;AACD;AACF;;AAEDsW,EAAAA,uBAAuB,CAACvjB,IAAD,EAAqB;AAC1C,QAAI,CAAC,KAAKnL,OAAL,CAAa2/C,2BAAd,IAA6C,CAAC,KAAKhhC,QAAvD,EAAiE;AAC/D,WAAKnJ,aAAL,CACErK,IAAI,CAAChC,KADP,EAEE;AACER,QAAAA,IAAI,EAAE;AADR,OAFF,EAKE+D,MAAM,CAACyC,mBALT;AAOD;AACF;;AAEDouC,EAAAA,cAAc,CAACpyC,IAAD,EAA8B;AAC1C,UAAMkvC,UAAU,GAAG,KAAKvvC,KAAL,CAAWi2C,cAAX,CACjB,KAAKj2C,KAAL,CAAWi2C,cAAX,CAA0Bv2C,MAA1B,GAAmC,CADlB,CAAnB;;AAGA,QAAI6vC,UAAU,CAAC7vC,MAAf,EAAuB;AACrBW,MAAAA,IAAI,CAACkvC,UAAL,GAAkBA,UAAlB;AACA,WAAKvnB,0BAAL,CAAgC3nB,IAAhC,EAAsCkvC,UAAU,CAAC,CAAD,CAAhD;AACA,WAAKvvC,KAAL,CAAWi2C,cAAX,CAA0B,KAAKj2C,KAAL,CAAWi2C,cAAX,CAA0Bv2C,MAA1B,GAAmC,CAA7D,IAAkE,EAAlE;AACD;AACF;;AAEDiyC,EAAAA,uBAAuB,GAAY;AACjC,WAAO,KAAKhzC,KAAL,CAAW4Q,KAAE,CAACrV,MAAd,CAAP;AACD;;AAEDgnD,EAAAA,eAAe,CAACmF,WAAD,EAA8B;AAC3C,UAAMC,wBAAwB,GAAG,KAAKtmD,KAAL,CAAWi2C,cAAX,CAC/B,KAAKj2C,KAAL,CAAWi2C,cAAX,CAA0Bv2C,MAA1B,GAAmC,CADJ,CAAjC;;AAGA,WAAO,KAAKf,KAAL,CAAW4Q,KAAE,CAACnY,EAAd,CAAP,EAA0B;AACxB,YAAMmvD,SAAS,GAAG,KAAKnI,cAAL,EAAlB;AACAkI,MAAAA,wBAAwB,CAACpmD,IAAzB,CAA8BqmD,SAA9B;AACD;;AAED,QAAI,KAAK5nD,KAAL,CAAW4Q,KAAE,CAACnV,OAAd,CAAJ,EAA4B;AAC1B,UAAI,CAACisD,WAAL,EAAkB;AAChB,aAAKtrC,UAAL;AACD;;AAED,UACE,KAAK7b,SAAL,CAAe,YAAf,KACA,CAAC,KAAKG,eAAL,CAAqB,YAArB,EAAmC,wBAAnC,CAFH,EAGE;AACA,aAAKkL,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACmB,oBAApC;AACD;AACF,KAXD,MAWO,IAAI,CAAC,KAAK4uC,uBAAL,EAAL,EAAqC;AAC1C,YAAM,KAAKpnC,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACyG,0BAApC,CAAN;AACD;AACF;;AAED+1C,EAAAA,cAAc,GAAgB;AAC5B,SAAK7B,eAAL,CAAqB,CAAC,mBAAD,EAAsB,YAAtB,CAArB;AAEA,UAAMl8C,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAKsE,IAAL;;AAEA,QAAI,KAAKnV,SAAL,CAAe,YAAf,CAAJ,EAAkC;AAGhC,WAAKc,KAAL,CAAWi2C,cAAX,CAA0B/1C,IAA1B,CAA+B,EAA/B;AAEA,YAAMsP,QAAQ,GAAG,KAAKxP,KAAL,CAAW3B,KAA5B;AACA,YAAM4L,QAAQ,GAAG,KAAKjK,KAAL,CAAWiK,QAA5B;AACA,UAAIqD,IAAJ;;AAEA,UAAI,KAAK0L,GAAL,CAASzJ,KAAE,CAACjZ,MAAZ,CAAJ,EAAyB;AACvBgX,QAAAA,IAAI,GAAG,KAAK2L,eAAL,EAAP;AACA,aAAKR,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AACD,OAHD,MAGO;AACL+W,QAAAA,IAAI,GAAG,KAAKkM,eAAL,CAAqB,KAArB,CAAP;;AAEA,eAAO,KAAKR,GAAL,CAASzJ,KAAE,CAAC3Y,GAAZ,CAAP,EAAyB;AACvB,gBAAMyJ,IAAI,GAAG,KAAKqM,WAAL,CAAiB8C,QAAjB,EAA2BvF,QAA3B,CAAb;AACA5J,UAAAA,IAAI,CAACo9B,MAAL,GAAcnwB,IAAd;AACAjN,UAAAA,IAAI,CAACyf,QAAL,GAAgB,KAAKtG,eAAL,CAAqB,IAArB,CAAhB;AACAnZ,UAAAA,IAAI,CAAC0N,QAAL,GAAgB,KAAhB;AACAT,UAAAA,IAAI,GAAG,KAAK0C,UAAL,CAAgB3P,IAAhB,EAAsB,kBAAtB,CAAP;AACD;AACF;;AAEDA,MAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAK8kC,4BAAL,CAAkCnkC,IAAlC,CAAlB;AACA,WAAKtN,KAAL,CAAWi2C,cAAX,CAA0B10C,GAA1B;AACD,KA1BD,MA0BO;AACLlB,MAAAA,IAAI,CAACsM,UAAL,GAAkB,KAAKgzC,mBAAL,EAAlB;AACD;;AACD,WAAO,KAAK3vC,UAAL,CAAgB3P,IAAhB,EAAsB,WAAtB,CAAP;AACD;;AAEDoxC,EAAAA,4BAA4B,CAACnkC,IAAD,EAAmC;AAC7D,QAAI,KAAK0L,GAAL,CAASzJ,KAAE,CAACjZ,MAAZ,CAAJ,EAAyB;AACvB,YAAM+J,IAAI,GAAG,KAAK2lC,eAAL,CAAqB14B,IAArB,CAAb;AACAjN,MAAAA,IAAI,CAACqQ,MAAL,GAAcpD,IAAd;AACAjN,MAAAA,IAAI,CAACoB,SAAL,GAAiB,KAAKmnB,4BAAL,CAAkCrZ,KAAE,CAAChZ,MAArC,EAA6C,KAA7C,CAAjB;AACA,WAAK6uB,gBAAL,CAAsB/kB,IAAI,CAACoB,SAA3B;AACA,aAAO,KAAKuO,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAED,WAAOiN,IAAP;AACD;;AAED+3C,EAAAA,2BAA2B,CACzBhlD,IADyB,EAEzB3L,OAFyB,EAGe;AACxC,UAAM8xD,OAAO,GAAG9xD,OAAO,KAAK,OAA5B;AACA,SAAK2f,IAAL;;AAEA,QAAI,KAAK45B,gBAAL,EAAJ,EAA6B;AAC3B5tC,MAAAA,IAAI,CAAC7L,KAAL,GAAa,IAAb;AACD,KAFD,MAEO;AACL6L,MAAAA,IAAI,CAAC7L,KAAL,GAAa,KAAKglB,eAAL,EAAb;AACA,WAAKW,SAAL;AACD;;AAED,SAAKm4B,mBAAL,CAAyBjyC,IAAzB,EAA+B3L,OAA/B;AAEA,WAAO,KAAKsb,UAAL,CACL3P,IADK,EAELmmD,OAAO,GAAG,gBAAH,GAAsB,mBAFxB,CAAP;AAID;;AAEDlU,EAAAA,mBAAmB,CACjBjyC,IADiB,EAEjB3L,OAFiB,EAGjB;AACA,UAAM8xD,OAAO,GAAG9xD,OAAO,KAAK,OAA5B;AACA,QAAI+L,CAAJ;;AACA,SAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,KAAKT,KAAL,CAAWg2C,MAAX,CAAkBt2C,MAAlC,EAA0C,EAAEe,CAA5C,EAA+C;AAC7C,YAAMgmD,GAAG,GAAG,KAAKzmD,KAAL,CAAWg2C,MAAX,CAAkBv1C,CAAlB,CAAZ;;AACA,UAAIJ,IAAI,CAAC7L,KAAL,IAAc,IAAd,IAAsBiyD,GAAG,CAACxxD,IAAJ,KAAaoL,IAAI,CAAC7L,KAAL,CAAWS,IAAlD,EAAwD;AACtD,YAAIwxD,GAAG,CAACl7C,IAAJ,IAAY,IAAZ,KAAqBi7C,OAAO,IAAIC,GAAG,CAACl7C,IAAJ,KAAa,MAA7C,CAAJ,EAA0D;AAC1D,YAAIlL,IAAI,CAAC7L,KAAL,IAAcgyD,OAAlB,EAA2B;AAC5B;AACF;;AACD,QAAI/lD,CAAC,KAAK,KAAKT,KAAL,CAAWg2C,MAAX,CAAkBt2C,MAA5B,EAAoC;AAClC,WAAK6K,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACgC,oBAA9B,EAAoDlP,OAApD;AACD;AACF;;AAED4wD,EAAAA,sBAAsB,CAACjlD,IAAD,EAAiD;AACrE,SAAKgU,IAAL;AACA,SAAK8F,SAAL;AACA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAEDqmD,EAAAA,qBAAqB,GAAiB;AACpC,SAAKjuC,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AACA,UAAM4hB,GAAG,GAAG,KAAKe,eAAL,EAAZ;AACA,SAAKR,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AACA,WAAO2hB,GAAP;AACD;;AAEDqtC,EAAAA,gBAAgB,CAACllD,IAAD,EAA+C;AAC7D,SAAKgU,IAAL;AACA,SAAKrU,KAAL,CAAWg2C,MAAX,CAAkB91C,IAAlB,CAAuBwkD,SAAvB;AAEArkD,IAAAA,IAAI,CAACa,IAAL,GAIE,KAAKsjD,0BAAL,CAAgC,MAE9B,KAAKjjC,cAAL,CAAoB,IAApB,CAFF,CAJF;AASA,SAAKvhB,KAAL,CAAWg2C,MAAX,CAAkBz0C,GAAlB;AAEA,SAAKkX,MAAL,CAAYlJ,KAAE,CAAC1V,MAAf;AACAwG,IAAAA,IAAI,CAACoS,IAAL,GAAY,KAAKi0C,qBAAL,EAAZ;AACA,SAAK1tC,GAAL,CAASzJ,KAAE,CAAC9Y,IAAZ;AACA,WAAO,KAAKuZ,UAAL,CAAgB3P,IAAhB,EAAsB,kBAAtB,CAAP;AACD;;AAUDmlD,EAAAA,iBAAiB,CAACnlD,IAAD,EAA0B;AACzC,SAAKgU,IAAL;AACA,SAAKrU,KAAL,CAAWg2C,MAAX,CAAkB91C,IAAlB,CAAuBwkD,SAAvB;AAEA,QAAIiC,OAAO,GAAG,CAAC,CAAf;;AACA,QAAI,KAAKlH,cAAL,MAAyB,KAAKllC,aAAL,CAAmB,OAAnB,CAA7B,EAA0D;AACxDosC,MAAAA,OAAO,GAAG,KAAK3mD,KAAL,CAAWkK,YAArB;AACD;;AACD,SAAK+Q,KAAL,CAAWE,KAAX,CAAiBrgB,WAAjB;AACA,SAAK2d,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;;AAEA,QAAI,KAAKqI,KAAL,CAAW4Q,KAAE,CAAC9Y,IAAd,CAAJ,EAAyB;AACvB,UAAIkwD,OAAO,GAAG,CAAC,CAAf,EAAkB;AAChB,aAAK5rC,UAAL,CAAgB4rC,OAAhB;AACD;;AACD,aAAO,KAAKC,QAAL,CAAcvmD,IAAd,EAAoB,IAApB,CAAP;AACD;;AAED,UAAMob,KAAK,GAAG,KAAKA,KAAL,EAAd;;AACA,QAAI,KAAK9c,KAAL,CAAW4Q,KAAE,CAAC5V,IAAd,KAAuB,KAAKgF,KAAL,CAAW4Q,KAAE,CAAC3V,MAAd,CAAvB,IAAgD6hB,KAApD,EAA2D;AACzD,YAAMiQ,IAAI,GAAG,KAAK3b,SAAL,EAAb;AACA,YAAMxE,IAAI,GAAGkQ,KAAK,GAAG,KAAH,GAAW,KAAKzb,KAAL,CAAWiM,KAAxC;AACA,WAAKoI,IAAL;AACA,WAAKwyC,QAAL,CAAcn7B,IAAd,EAAoB,IAApB,EAA0BngB,IAA1B;AACA,WAAKyE,UAAL,CAAgB0b,IAAhB,EAAsB,qBAAtB;;AAEA,UACE,CAAC,KAAK/sB,KAAL,CAAW4Q,KAAE,CAAC9U,GAAd,KAAsB,KAAKigB,YAAL,CAAkB,IAAlB,CAAvB,KACAgR,IAAI,CAACo7B,YAAL,CAAkBpnD,MAAlB,KAA6B,CAF/B,EAGE;AACA,eAAO,KAAKqnD,UAAL,CAAgB1mD,IAAhB,EAAsBqrB,IAAtB,EAA4Bi7B,OAA5B,CAAP;AACD;;AACD,UAAIA,OAAO,GAAG,CAAC,CAAf,EAAkB;AAChB,aAAK5rC,UAAL,CAAgB4rC,OAAhB;AACD;;AACD,aAAO,KAAKC,QAAL,CAAcvmD,IAAd,EAAoBqrB,IAApB,CAAP;AACD;;AAED,UAAM5d,mBAAmB,GAAG,IAAIkvC,gBAAJ,EAA5B;AACA,UAAMtxB,IAAI,GAAG,KAAKzS,eAAL,CAAqB,IAArB,EAA2BnL,mBAA3B,CAAb;;AACA,QAAI,KAAKnP,KAAL,CAAW4Q,KAAE,CAAC9U,GAAd,KAAsB,KAAKigB,YAAL,CAAkB,IAAlB,CAA1B,EAAmD;AACjD,WAAKrK,YAAL,CAAkBqb,IAAlB;AACA,YAAMs7B,WAAW,GAAG,KAAKtsC,YAAL,CAAkB,IAAlB,IAChB,kBADgB,GAEhB,kBAFJ;AAGA,WAAKrN,SAAL,CAAeqe,IAAf,EAAqB3qB,SAArB,EAAgCA,SAAhC,EAA2CimD,WAA3C;AACA,aAAO,KAAKD,UAAL,CAAgB1mD,IAAhB,EAAsBqrB,IAAtB,EAA4Bi7B,OAA5B,CAAP;AACD,KAPD,MAOO;AACL,WAAK9J,qBAAL,CAA2B/uC,mBAA3B,EAAgD,IAAhD;AACD;;AACD,QAAI64C,OAAO,GAAG,CAAC,CAAf,EAAkB;AAChB,WAAK5rC,UAAL,CAAgB4rC,OAAhB;AACD;;AACD,WAAO,KAAKC,QAAL,CAAcvmD,IAAd,EAAoBqrB,IAApB,CAAP;AACD;;AAEDyiB,EAAAA,sBAAsB,CACpB9tC,IADoB,EAEpB2M,OAFoB,EAGpBi6C,mBAHoB,EAIG;AACvB,SAAK5yC,IAAL;AACA,WAAO,KAAKwsC,aAAL,CACLxgD,IADK,EAELwkD,cAAc,IAAIoC,mBAAmB,GAAG,CAAH,GAAOnC,sBAA9B,CAFT,EAGL93C,OAHK,CAAP;AAKD;;AAEDy4C,EAAAA,gBAAgB,CAACplD,IAAD,EAAqC;AACnD,SAAKgU,IAAL;AACAhU,IAAAA,IAAI,CAACoS,IAAL,GAAY,KAAKi0C,qBAAL,EAAZ;AACArmD,IAAAA,IAAI,CAACkiB,UAAL,GAAkB,KAAKhB,cAAL,CAAoB,IAApB,CAAlB;AACAlhB,IAAAA,IAAI,CAACwiB,SAAL,GAAiB,KAAK7J,GAAL,CAASzJ,KAAE,CAACrW,KAAZ,IAAqB,KAAKqoB,cAAL,CAAoB,IAApB,CAArB,GAAiD,IAAlE;AACA,WAAO,KAAKvR,UAAL,CAAgB3P,IAAhB,EAAsB,aAAtB,CAAP;AACD;;AAEDqlD,EAAAA,oBAAoB,CAACrlD,IAAD,EAA6C;AAC/D,QAAI,CAAC,KAAK+R,SAAL,CAAeuwB,SAAhB,IAA6B,CAAC,KAAKztC,OAAL,CAAa0/C,0BAA/C,EAA2E;AACzE,WAAKrqC,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACkC,aAApC;AACD;;AAED,SAAKuQ,IAAL;;AAMA,QAAI,KAAK45B,gBAAL,EAAJ,EAA6B;AAC3B5tC,MAAAA,IAAI,CAACsf,QAAL,GAAgB,IAAhB;AACD,KAFD,MAEO;AACLtf,MAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAK1G,eAAL,EAAhB;AACA,WAAKkB,SAAL;AACD;;AAED,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAEDslD,EAAAA,oBAAoB,CAACtlD,IAAD,EAA6C;AAC/D,SAAKgU,IAAL;AACAhU,IAAAA,IAAI,CAAC6mD,YAAL,GAAoB,KAAKR,qBAAL,EAApB;AACA,UAAMS,KAAK,GAAI9mD,IAAI,CAAC8mD,KAAL,GAAa,EAA5B;AACA,SAAK1uC,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;AACA,SAAK+J,KAAL,CAAWg2C,MAAX,CAAkB91C,IAAlB,CAAuBykD,WAAvB;AACA,SAAK1pC,KAAL,CAAWE,KAAX,CAAiBrgB,WAAjB;AAMA,QAAIssD,GAAJ;;AACA,SAAK,IAAIC,UAAT,EAAqB,CAAC,KAAK1oD,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAtB,GAA+C;AAC7C,UAAI,KAAKuI,KAAL,CAAW4Q,KAAE,CAAC3W,KAAd,KAAwB,KAAK+F,KAAL,CAAW4Q,KAAE,CAACvW,QAAd,CAA5B,EAAqD;AACnD,cAAMsuD,MAAM,GAAG,KAAK3oD,KAAL,CAAW4Q,KAAE,CAAC3W,KAAd,CAAf;AACA,YAAIwuD,GAAJ,EAAS,KAAKp3C,UAAL,CAAgBo3C,GAAhB,EAAqB,YAArB;AACTD,QAAAA,KAAK,CAACjnD,IAAN,CAAYknD,GAAG,GAAG,KAAKr3C,SAAL,EAAlB;AACAq3C,QAAAA,GAAG,CAAC7kC,UAAJ,GAAiB,EAAjB;AACA,aAAKlO,IAAL;;AACA,YAAIizC,MAAJ,EAAY;AACVF,UAAAA,GAAG,CAAC30C,IAAJ,GAAW,KAAKwG,eAAL,EAAX;AACD,SAFD,MAEO;AACL,cAAIouC,UAAJ,EAAgB;AACd,iBAAK98C,KAAL,CACE,KAAKvK,KAAL,CAAWkK,YADb,EAEEtI,MAAM,CAACgE,wBAFT;AAID;;AACDyhD,UAAAA,UAAU,GAAG,IAAb;AACAD,UAAAA,GAAG,CAAC30C,IAAJ,GAAW,IAAX;AACD;;AACD,aAAKgG,MAAL,CAAYlJ,KAAE,CAAC7Y,KAAf;AACD,OAnBD,MAmBO;AACL,YAAI0wD,GAAJ,EAAS;AACPA,UAAAA,GAAG,CAAC7kC,UAAJ,CAAeriB,IAAf,CAAoB,KAAKqhB,cAAL,CAAoB,IAApB,CAApB;AACD,SAFD,MAEO;AACL,eAAKxG,UAAL;AACD;AACF;AACF;;AACD,SAAKE,KAAL,CAAWK,IAAX;AACA,QAAI8rC,GAAJ,EAAS,KAAKp3C,UAAL,CAAgBo3C,GAAhB,EAAqB,YAArB;AACT,SAAK/yC,IAAL;AACA,SAAKrU,KAAL,CAAWg2C,MAAX,CAAkBz0C,GAAlB;AACA,WAAO,KAAKyO,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAP;AACD;;AAEDulD,EAAAA,mBAAmB,CAACvlD,IAAD,EAA2C;AAC5D,SAAKgU,IAAL;;AACA,QACE7W,SAAS,CAACiV,IAAV,CAAe,KAAKjU,KAAL,CAAWkD,KAAX,CAAiB,KAAK1B,KAAL,CAAWqK,UAA5B,EAAwC,KAAKrK,KAAL,CAAW3B,KAAnD,CAAf,CADF,EAEE;AACA,WAAKkM,KAAL,CAAW,KAAKvK,KAAL,CAAWqK,UAAtB,EAAkCzI,MAAM,CAACiE,iBAAzC;AACD;;AACDxF,IAAAA,IAAI,CAACsf,QAAL,GAAgB,KAAK1G,eAAL,EAAhB;AACA,SAAKkB,SAAL;AACA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAEDwlD,EAAAA,iBAAiB,CAACxlD,IAAD,EAAuC;AACtD,SAAKgU,IAAL;AAEAhU,IAAAA,IAAI,CAAC03C,KAAL,GAAa,KAAKxF,UAAL,EAAb;AACAlyC,IAAAA,IAAI,CAACknD,OAAL,GAAe,IAAf;;AAEA,QAAI,KAAK5oD,KAAL,CAAW4Q,KAAE,CAAC1W,MAAd,CAAJ,EAA2B;AACzB,YAAM2uD,MAAM,GAAG,KAAKz3C,SAAL,EAAf;AACA,WAAKsE,IAAL;;AACA,UAAI,KAAK1V,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAJ,EAA2B;AACzB,aAAKmiB,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AACAkxD,QAAAA,MAAM,CAACzmC,KAAP,GAAe,KAAKywB,gBAAL,EAAf;AACA,cAAMiW,MAAM,GAAGD,MAAM,CAACzmC,KAAP,CAAa9f,IAAb,KAAsB,YAArC;AACA,aAAKga,KAAL,CAAWE,KAAX,CAAiBssC,MAAM,GAAGvsD,kBAAH,GAAwB,CAA/C;AACA,aAAKmS,SAAL,CAAem6C,MAAM,CAACzmC,KAAtB,EAA6B3kB,YAA7B,EAA2C,IAA3C,EAAiD,cAAjD;AACA,aAAKqc,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AACD,OAPD,MAOO;AACLixD,QAAAA,MAAM,CAACzmC,KAAP,GAAe,IAAf;AACA,aAAK9F,KAAL,CAAWE,KAAX,CAAiBrgB,WAAjB;AACD;;AAED0sD,MAAAA,MAAM,CAACtmD,IAAP,GAKE,KAAKsjD,0BAAL,CAAgC,MAE9B,KAAKjS,UAAL,CAAgB,KAAhB,EAAuB,KAAvB,CAFF,CALF;AASA,WAAKt3B,KAAL,CAAWK,IAAX;AAEAjb,MAAAA,IAAI,CAACknD,OAAL,GAAe,KAAKv3C,UAAL,CAAgBw3C,MAAhB,EAAwB,aAAxB,CAAf;AACD;;AAEDnnD,IAAAA,IAAI,CAACqnD,SAAL,GAAiB,KAAK1uC,GAAL,CAASzJ,KAAE,CAACpW,QAAZ,IAAwB,KAAKo5C,UAAL,EAAxB,GAA4C,IAA7D;;AAEA,QAAI,CAAClyC,IAAI,CAACknD,OAAN,IAAiB,CAAClnD,IAAI,CAACqnD,SAA3B,EAAsC;AACpC,WAAKn9C,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACkE,gBAA9B;AACD;;AAED,WAAO,KAAKkK,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAEDguC,EAAAA,iBAAiB,CACfhuC,IADe,EAEfkL,IAFe,EAGQ;AACvB,SAAK8I,IAAL;AACA,SAAKwyC,QAAL,CAAcxmD,IAAd,EAAoB,KAApB,EAA2BkL,IAA3B;AACA,SAAK4O,SAAL;AACA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;AACD;;AAEDylD,EAAAA,mBAAmB,CAACzlD,IAAD,EAA2C;AAC5D,SAAKgU,IAAL;AACAhU,IAAAA,IAAI,CAACoS,IAAL,GAAY,KAAKi0C,qBAAL,EAAZ;AACA,SAAK1mD,KAAL,CAAWg2C,MAAX,CAAkB91C,IAAlB,CAAuBwkD,SAAvB;AAEArkD,IAAAA,IAAI,CAACa,IAAL,GAIE,KAAKsjD,0BAAL,CAAgC,MAE9B,KAAKjjC,cAAL,CAAoB,OAApB,CAFF,CAJF;AASA,SAAKvhB,KAAL,CAAWg2C,MAAX,CAAkBz0C,GAAlB;AAEA,WAAO,KAAKyO,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAED0lD,EAAAA,kBAAkB,CAAC1lD,IAAD,EAAyC;AACzD,QAAI,KAAKL,KAAL,CAAWsT,MAAf,EAAuB;AACrB,WAAK/I,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC6F,UAApC;AACD;;AACD,SAAK4M,IAAL;AACAhU,IAAAA,IAAI,CAACo9B,MAAL,GAAc,KAAKipB,qBAAL,EAAd;AAEArmD,IAAAA,IAAI,CAACa,IAAL,GAKE,KAAKsjD,0BAAL,CAAgC,MAE9B,KAAKjjC,cAAL,CAAoB,MAApB,CAFF,CALF;AAUA,WAAO,KAAKvR,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAED2lD,EAAAA,mBAAmB,CAAC3lD,IAAD,EAA2C;AAC5D,SAAKgU,IAAL;AACA,WAAO,KAAKrE,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAED+lD,EAAAA,qBAAqB,CACnB/lD,IADmB,EAEnB8lD,SAFmB,EAGnB74C,IAHmB,EAInBwE,OAJmB,EAKC;AAAA,2CACA,KAAK9R,KAAL,CAAWg2C,MADX,0CACmB;AAAlC,YAAMxhD,KAAK,0BAAX;;AACH,UAAIA,KAAK,CAACS,IAAN,KAAekxD,SAAnB,EAA8B;AAC5B,aAAK57C,KAAL,CAAW+C,IAAI,CAACjP,KAAhB,EAAuBuD,MAAM,CAACwD,kBAA9B,EAAkD+gD,SAAlD;AACD;AACF;;AAED,UAAM56C,IAAI,GAAG,KAAKvL,KAAL,CAAWiB,IAAX,CAAgB/M,MAAhB,GACT,MADS,GAET,KAAKyK,KAAL,CAAW4Q,KAAE,CAAC/V,OAAd,IACA,QADA,GAEA,IAJJ;;AAKA,SAAK,IAAIiH,CAAC,GAAG,KAAKT,KAAL,CAAWg2C,MAAX,CAAkBt2C,MAAlB,GAA2B,CAAxC,EAA2Ce,CAAC,IAAI,CAAhD,EAAmDA,CAAC,EAApD,EAAwD;AACtD,YAAMjM,KAAK,GAAG,KAAKwL,KAAL,CAAWg2C,MAAX,CAAkBv1C,CAAlB,CAAd;;AACA,UAAIjM,KAAK,CAACmzD,cAAN,KAAyBtnD,IAAI,CAAChC,KAAlC,EAAyC;AACvC7J,QAAAA,KAAK,CAACmzD,cAAN,GAAuB,KAAK3nD,KAAL,CAAW3B,KAAlC;AACA7J,QAAAA,KAAK,CAAC+W,IAAN,GAAaA,IAAb;AACD,OAHD,MAGO;AACL;AACD;AACF;;AAED,SAAKvL,KAAL,CAAWg2C,MAAX,CAAkB91C,IAAlB,CAAuB;AACrBjL,MAAAA,IAAI,EAAEkxD,SADe;AAErB56C,MAAAA,IAAI,EAAEA,IAFe;AAGrBo8C,MAAAA,cAAc,EAAE,KAAK3nD,KAAL,CAAW3B;AAHN,KAAvB;AAKAgC,IAAAA,IAAI,CAACa,IAAL,GAAY,KAAKqgB,cAAL,CACVzP,OAAO,GACHA,OAAO,CAAC2R,OAAR,CAAgB,OAAhB,MAA6B,CAAC,CAA9B,GACE3R,OAAO,GAAG,OADZ,GAEEA,OAHC,GAIH,OALM,CAAZ;AAQA,SAAK9R,KAAL,CAAWg2C,MAAX,CAAkBz0C,GAAlB;AACAlB,IAAAA,IAAI,CAAC7L,KAAL,GAAa8Y,IAAb;AACA,WAAO,KAAK0C,UAAL,CAAgB3P,IAAhB,EAAsB,kBAAtB,CAAP;AACD;;AAEDohB,EAAAA,wBAAwB,CACtBphB,IADsB,EAEtBiN,IAFsB,EAGT;AACbjN,IAAAA,IAAI,CAACsM,UAAL,GAAkBW,IAAlB;AACA,SAAK6M,SAAL;AACA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,qBAAtB,CAAP;AACD;;AAMDkyC,EAAAA,UAAU,CACR/jC,eAAyB,GAAG,KADpB,EAERo5C,qBAA+B,GAAG,IAF1B,EAGRC,eAHQ,EAIU;AAClB,UAAMxnD,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA,SAAK0I,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;;AACA,QAAI2xD,qBAAJ,EAA2B;AACzB,WAAK3sC,KAAL,CAAWE,KAAX,CAAiBrgB,WAAjB;AACD;;AACD,SAAKyT,cAAL,CACElO,IADF,EAEEmO,eAFF,EAGE,KAHF,EAIEe,KAAE,CAACnZ,MAJL,EAKEyxD,eALF;;AAOA,QAAID,qBAAJ,EAA2B;AACzB,WAAK3sC,KAAL,CAAWK,IAAX;AACD;;AACD,WAAO,KAAKtL,UAAL,CAAgB3P,IAAhB,EAAsB,gBAAtB,CAAP;AACD;;AAED+N,EAAAA,gBAAgB,CAAC3B,IAAD,EAA6B;AAC3C,WACEA,IAAI,CAACxL,IAAL,KAAc,qBAAd,IACAwL,IAAI,CAACE,UAAL,CAAgB1L,IAAhB,KAAyB,eADzB,IAEA,CAACwL,IAAI,CAACE,UAAL,CAAgBE,KAAhB,CAAsBwB,aAHzB;AAKD;;AAEDE,EAAAA,cAAc,CACZlO,IADY,EAEZmO,eAFY,EAGZC,QAHY,EAIZnQ,GAJY,EAKZupD,eALY,EAMN;AACN,UAAM3mD,IAAI,GAAIb,IAAI,CAACa,IAAL,GAAY,EAA1B;AACA,UAAMyN,UAAU,GAAItO,IAAI,CAACsO,UAAL,GAAkB,EAAtC;AACA,SAAKq+B,2BAAL,CACE9rC,IADF,EAEEsN,eAAe,GAAGG,UAAH,GAAgB5N,SAFjC,EAGE0N,QAHF,EAIEnQ,GAJF,EAKEupD,eALF;AAOD;;AAGD7a,EAAAA,2BAA2B,CACzB9rC,IADyB,EAEzByN,UAFyB,EAGzBF,QAHyB,EAIzBnQ,GAJyB,EAKzBupD,eALyB,EAMnB;AACN,UAAM1R,cAAc,GAAG,EAAvB;AACA,UAAMmN,SAAS,GAAG,KAAKtjD,KAAL,CAAWsT,MAA7B;AACA,QAAIiwC,sBAAsB,GAAG,KAA7B;AACA,QAAIuE,kBAAkB,GAAG,KAAzB;;AAEA,WAAO,CAAC,KAAKnpD,KAAL,CAAWL,GAAX,CAAR,EAAyB;AAEvB,UAAI,CAACwpD,kBAAD,IAAuB,KAAK9nD,KAAL,CAAWm2C,cAAX,CAA0Bz2C,MAArD,EAA6D;AAC3Dy2C,QAAAA,cAAc,CAACj2C,IAAf,CAAoB,GAAG,KAAKF,KAAL,CAAWm2C,cAAlC;AACD;;AAED,YAAM1pC,IAAI,GAAG,KAAK8U,cAAL,CAAoB,IAApB,EAA0B9S,QAA1B,CAAb;;AAEA,UAAIE,UAAU,IAAI,CAACm5C,kBAAf,IAAqC,KAAK15C,gBAAL,CAAsB3B,IAAtB,CAAzC,EAAsE;AACpE,cAAMF,SAAS,GAAG,KAAK+B,eAAL,CAAqB7B,IAArB,CAAlB;AACAkC,QAAAA,UAAU,CAACzO,IAAX,CAAgBqM,SAAhB;;AAEA,YAAI,CAACg3C,sBAAD,IAA2Bh3C,SAAS,CAACN,KAAV,CAAgBA,KAAhB,KAA0B,YAAzD,EAAuE;AACrEs3C,UAAAA,sBAAsB,GAAG,IAAzB;AACA,eAAK7L,SAAL,CAAe,IAAf;AACD;;AAED;AACD;;AAEDoQ,MAAAA,kBAAkB,GAAG,IAArB;AACA5mD,MAAAA,IAAI,CAAChB,IAAL,CAAUuM,IAAV;AACD;;AAKD,QAAI,KAAKzM,KAAL,CAAWsT,MAAX,IAAqB6iC,cAAc,CAACz2C,MAAxC,EAAgD;AAAA,8BAC5By2C,cAD4B,gBACZ;AAA7B,cAAMnsC,GAAG,GAAImsC,cAAJ,KAAT;AACH,aAAK5rC,KAAL,CAAWP,GAAX,EAAgBpI,MAAM,CAAC4F,kBAAvB;AACD;AACF;;AAED,QAAIqgD,eAAJ,EAAqB;AACnBA,MAAAA,eAAe,CAACrgC,IAAhB,CAAqB,IAArB,EAA2B+7B,sBAA3B;AACD;;AAED,QAAI,CAACD,SAAL,EAAgB;AACd,WAAK5L,SAAL,CAAe,KAAf;AACD;;AAED,SAAKrjC,IAAL;AACD;;AAMDuyC,EAAAA,QAAQ,CACNvmD,IADM,EAENqrB,IAFM,EAGU;AAChBrrB,IAAAA,IAAI,CAACqrB,IAAL,GAAYA,IAAZ;AACA,SAAKjT,MAAL,CAAYlJ,KAAE,CAAC9Y,IAAf;AACA4J,IAAAA,IAAI,CAACoS,IAAL,GAAY,KAAK9T,KAAL,CAAW4Q,KAAE,CAAC9Y,IAAd,IAAsB,IAAtB,GAA6B,KAAKwiB,eAAL,EAAzC;AACA,SAAKR,MAAL,CAAYlJ,KAAE,CAAC9Y,IAAf;AACA4J,IAAAA,IAAI,CAACw7C,MAAL,GAAc,KAAKl9C,KAAL,CAAW4Q,KAAE,CAAChZ,MAAd,IAAwB,IAAxB,GAA+B,KAAK0iB,eAAL,EAA7C;AACA,SAAKR,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AAEA8J,IAAAA,IAAI,CAACa,IAAL,GAIE,KAAKsjD,0BAAL,CAAgC,MAE9B,KAAKjjC,cAAL,CAAoB,KAApB,CAFF,CAJF;AASA,SAAKtG,KAAL,CAAWK,IAAX;AACA,SAAKtb,KAAL,CAAWg2C,MAAX,CAAkBz0C,GAAlB;AAEA,WAAO,KAAKyO,UAAL,CAAgB3P,IAAhB,EAAsB,cAAtB,CAAP;AACD;;AAKD0mD,EAAAA,UAAU,CACR1mD,IADQ,EAERqrB,IAFQ,EAGRi7B,OAHQ,EAIG;AACX,UAAMoB,OAAO,GAAG,KAAKppD,KAAL,CAAW4Q,KAAE,CAAC9U,GAAd,CAAhB;AACA,SAAK4Z,IAAL;;AAEA,QAAI0zC,OAAJ,EAAa;AACX,UAAIpB,OAAO,GAAG,CAAC,CAAf,EAAkB,KAAK5rC,UAAL,CAAgB4rC,OAAhB;AACnB,KAFD,MAEO;AACLtmD,MAAAA,IAAI,CAAC2nD,KAAL,GAAarB,OAAO,GAAG,CAAC,CAAxB;AACD;;AAED,QACEj7B,IAAI,CAACzqB,IAAL,KAAc,qBAAd,IACAyqB,IAAI,CAACo7B,YAAL,CAAkB,CAAlB,EAAqBp7B,IAArB,IAA6B,IAD7B,KAEC,CAACq8B,OAAD,IACC,KAAK/nD,KAAL,CAAWsT,MADZ,IAECoY,IAAI,CAACngB,IAAL,KAAc,KAFf,IAGCmgB,IAAI,CAACo7B,YAAL,CAAkB,CAAlB,EAAqBvtC,EAArB,CAAwBtY,IAAxB,KAAiC,YALnC,CADF,EAOE;AACA,WAAKsJ,KAAL,CACEmhB,IAAI,CAACrtB,KADP,EAEEuD,MAAM,CAAC8B,sBAFT,EAGEqkD,OAAO,GAAG,QAAH,GAAc,QAHvB;AAKD,KAbD,MAaO,IAAIr8B,IAAI,CAACzqB,IAAL,KAAc,mBAAlB,EAAuC;AAC5C,WAAKsJ,KAAL,CAAWmhB,IAAI,CAACrtB,KAAhB,EAAuBuD,MAAM,CAACgD,UAA9B,EAA0C,UAA1C;AACD;;AAEDvE,IAAAA,IAAI,CAAC8lB,IAAL,GAAYuF,IAAZ;AACArrB,IAAAA,IAAI,CAAC4c,KAAL,GAAa8qC,OAAO,GAAG,KAAK9uC,eAAL,EAAH,GAA4B,KAAK6J,gBAAL,EAAhD;AACA,SAAKrK,MAAL,CAAYlJ,KAAE,CAAChZ,MAAf;AAEA8J,IAAAA,IAAI,CAACa,IAAL,GAIE,KAAKsjD,0BAAL,CAAgC,MAE9B,KAAKjjC,cAAL,CAAoB,KAApB,CAFF,CAJF;AASA,SAAKtG,KAAL,CAAWK,IAAX;AACA,SAAKtb,KAAL,CAAWg2C,MAAX,CAAkBz0C,GAAlB;AAEA,WAAO,KAAKyO,UAAL,CAAgB3P,IAAhB,EAAsB0nD,OAAO,GAAG,gBAAH,GAAsB,gBAAnD,CAAP;AACD;;AAIDlB,EAAAA,QAAQ,CACNxmD,IADM,EAEN4nD,KAFM,EAGN18C,IAHM,EAIiB;AACvB,UAAMu7C,YAAY,GAAIzmD,IAAI,CAACymD,YAAL,GAAoB,EAA1C;AACA,UAAMoB,YAAY,GAAG,KAAKhpD,SAAL,CAAe,YAAf,CAArB;AACAmB,IAAAA,IAAI,CAACkL,IAAL,GAAYA,IAAZ;;AACA,aAAS;AACP,YAAMsY,IAAI,GAAG,KAAK9T,SAAL,EAAb;AACA,WAAKuX,UAAL,CAAgBzD,IAAhB,EAAsBtY,IAAtB;;AACA,UAAI,KAAKyN,GAAL,CAASzJ,KAAE,CAAChY,EAAZ,CAAJ,EAAqB;AACnBssB,QAAAA,IAAI,CAAC6H,IAAL,GAAY,KAAK5I,gBAAL,CAAsBmlC,KAAtB,CAAZ;AACD,OAFD,MAEO;AACL,YACE18C,IAAI,KAAK,OAAT,IACA,EAAE,KAAK5M,KAAL,CAAW4Q,KAAE,CAAC9U,GAAd,KAAsB,KAAKigB,YAAL,CAAkB,IAAlB,CAAxB,CAFF,EAGE;AAGA,cAAI,CAACwtC,YAAL,EAAmB;AACjB,iBAAKntC,UAAL;AACD;AACF,SATD,MASO,IACL8I,IAAI,CAACtK,EAAL,CAAQtY,IAAR,KAAiB,YAAjB,IACA,EAAEgnD,KAAK,KAAK,KAAKtpD,KAAL,CAAW4Q,KAAE,CAAC9U,GAAd,KAAsB,KAAKigB,YAAL,CAAkB,IAAlB,CAA3B,CAAP,CAFK,EAGL;AACA,eAAKnQ,KAAL,CACE,KAAKvK,KAAL,CAAWqK,UADb,EAEEzI,MAAM,CAACgB,6BAFT,EAGE,0BAHF;AAKD;;AACDihB,QAAAA,IAAI,CAAC6H,IAAL,GAAY,IAAZ;AACD;;AACDo7B,MAAAA,YAAY,CAAC5mD,IAAb,CAAkB,KAAK8P,UAAL,CAAgB6T,IAAhB,EAAsB,oBAAtB,CAAlB;AACA,UAAI,CAAC,KAAK7K,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAAL,EAAyB;AAC1B;;AACD,WAAO6J,IAAP;AACD;;AAEDinB,EAAAA,UAAU,CAACzD,IAAD,EAA6BtY,IAA7B,EAAkE;AAC1EsY,IAAAA,IAAI,CAACtK,EAAL,GAAU,KAAKi4B,gBAAL,EAAV;AACA,SAAKnkC,SAAL,CACEwW,IAAI,CAACtK,EADP,EAEEhO,IAAI,KAAK,KAAT,GAAiBlP,QAAjB,GAA4BD,YAF9B,EAGE2E,SAHF,EAIE,sBAJF,EAKEwK,IAAI,KAAK,KALX;AAOD;;AAKDs1C,EAAAA,aAAa,CACXxgD,IADW,EAEX8nD,SAAkB,GAAGvD,aAFV,EAGX53C,OAAiB,GAAG,KAHT,EAIR;AACH,UAAMsX,WAAW,GAAG6jC,SAAS,GAAGtD,cAAhC;AACA,UAAMuD,kBAAkB,GAAGD,SAAS,GAAGrD,sBAAvC;AACA,UAAMuD,SAAS,GAAG,CAAC,CAAC/jC,WAAF,IAAiB,EAAE6jC,SAAS,GAAGpD,gBAAd,CAAnC;AAEA,SAAKh4C,YAAL,CAAkB1M,IAAlB,EAAwB2M,OAAxB;;AAEA,QAAI,KAAKrO,KAAL,CAAW4Q,KAAE,CAAC/W,IAAd,KAAuB4vD,kBAA3B,EAA+C;AAC7C,WAAK79C,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAAC+B,iCAApC;AACD;;AACDtD,IAAAA,IAAI,CAAC6iD,SAAL,GAAiB,KAAKlqC,GAAL,CAASzJ,KAAE,CAAC/W,IAAZ,CAAjB;;AAEA,QAAI8rB,WAAJ,EAAiB;AACfjkB,MAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKi5B,eAAL,CAAqB6V,SAArB,CAAV;AACD;;AAED,UAAMtZ,yBAAyB,GAAG,KAAK/uC,KAAL,CAAWgvC,sBAA7C;AACA,UAAMC,WAAW,GAAG,KAAKjvC,KAAL,CAAWkvC,QAA/B;AACA,UAAMC,WAAW,GAAG,KAAKnvC,KAAL,CAAWovC,QAA/B;AACA,SAAKpvC,KAAL,CAAWgvC,sBAAX,GAAoC,KAApC;AACA,SAAKhvC,KAAL,CAAWkvC,QAAX,GAAsB,CAAC,CAAvB;AACA,SAAKlvC,KAAL,CAAWovC,QAAX,GAAsB,CAAC,CAAvB;AACA,SAAKn0B,KAAL,CAAWE,KAAX,CAAiBngB,cAAjB;AACA,SAAKoX,SAAL,CAAe+I,KAAf,CAAqBynB,aAAa,CAAC51B,OAAD,EAAU3M,IAAI,CAAC6iD,SAAf,CAAlC;;AAEA,QAAI,CAAC5+B,WAAL,EAAkB;AAChBjkB,MAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKi5B,eAAL,EAAV;AACD;;AAED,SAAKprB,mBAAL,CAAyB/mB,IAAzB;AAKA,SAAKmkD,0BAAL,CAAgC,MAAM;AAEpC,WAAKljC,0BAAL,CACEjhB,IADF,EAEEikB,WAAW,GAAG,qBAAH,GAA2B,oBAFxC;AAID,KAND;AAQA,SAAKlS,SAAL,CAAekJ,IAAf;AACA,SAAKL,KAAL,CAAWK,IAAX;;AAEA,QAAIgJ,WAAW,IAAI,CAAC8jC,kBAApB,EAAwC;AAItC,WAAKtY,2BAAL,CAAiCzvC,IAAjC;AACD;;AAED,SAAKL,KAAL,CAAWgvC,sBAAX,GAAoCD,yBAApC;AACA,SAAK/uC,KAAL,CAAWkvC,QAAX,GAAsBD,WAAtB;AACA,SAAKjvC,KAAL,CAAWovC,QAAX,GAAsBD,WAAtB;AAEA,WAAO9uC,IAAP;AACD;;AAEDmyC,EAAAA,eAAe,CAAC6V,SAAD,EAAqC;AAClD,WAAOA,SAAS,IAAI,KAAK1pD,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAb,GAAmC,KAAKukB,eAAL,EAAnC,GAA4D,IAAnE;AACD;;AAED4N,EAAAA,mBAAmB,CAAC/mB,IAAD,EAAmBgnB,cAAnB,EAAmD;AACpE,UAAMg8B,eAAe,GAAG,KAAKrjD,KAAL,CAAWw1C,YAAnC;AACA,SAAKx1C,KAAL,CAAWw1C,YAAX,GAA0B,IAA1B;AAEA,SAAK/8B,MAAL,CAAYlJ,KAAE,CAACjZ,MAAf;AACA+J,IAAAA,IAAI,CAACoK,MAAL,GAAc,KAAK+8B,gBAAL,CACZj4B,KAAE,CAAChZ,MADS,MAGK,KAHL,EAIZ8wB,cAJY,CAAd;AAOA,SAAKrnB,KAAL,CAAWw1C,YAAX,GAA0B6N,eAA1B;AACA,SAAK5G,8BAAL;AACD;;AAED3M,EAAAA,2BAA2B,CAACzvC,IAAD,EAAyB;AAClD,QAAI,CAACA,IAAI,CAACkZ,EAAV,EAAc;AAMd,SAAK0B,KAAL,CAAWC,WAAX,CACE7a,IAAI,CAACkZ,EAAL,CAAQtkB,IADV,EAEE,KAAK+K,KAAL,CAAWsT,MAAX,IAAqBjT,IAAI,CAAC6iD,SAA1B,IAAuC7iD,IAAI,CAAC8iD,KAA5C,GACI,KAAKloC,KAAL,CAAWimB,mBAAX,GACE7kC,QADF,GAEED,YAHN,GAIIE,aANN,EAOE+D,IAAI,CAACkZ,EAAL,CAAQlb,KAPV;AASD;;AAKD+vC,EAAAA,UAAU,CACR/tC,IADQ,EAERikB,WAFQ,EAGRC,UAHQ,EAIL;AACH,SAAKlQ,IAAL;AACA,SAAKo+B,cAAL,CAAoBpyC,IAApB;AAGA,UAAMijD,SAAS,GAAG,KAAKtjD,KAAL,CAAWsT,MAA7B;AACA,SAAKtT,KAAL,CAAWsT,MAAX,GAAoB,IAApB;AAEA,SAAK+Q,YAAL,CAAkBhkB,IAAlB,EAAwBikB,WAAxB,EAAqCC,UAArC;AACA,SAAKoB,eAAL,CAAqBtlB,IAArB;AACAA,IAAAA,IAAI,CAACa,IAAL,GAAY,KAAKwxC,cAAL,CAAoB,CAAC,CAACryC,IAAI,CAACoL,UAA3B,EAAuC63C,SAAvC,CAAZ;AAEA,SAAKtjD,KAAL,CAAWsT,MAAX,GAAoBgwC,SAApB;AAEA,WAAO,KAAKtzC,UAAL,CACL3P,IADK,EAELikB,WAAW,GAAG,kBAAH,GAAwB,iBAF9B,CAAP;AAID;;AAEDkB,EAAAA,eAAe,GAAY;AACzB,WAAO,KAAK7mB,KAAL,CAAW4Q,KAAE,CAAChY,EAAd,KAAqB,KAAKoH,KAAL,CAAW4Q,KAAE,CAAC9Y,IAAd,CAArB,IAA4C,KAAKkI,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAnD;AACD;;AAEDmvB,EAAAA,aAAa,GAAY;AACvB,WAAO,KAAK5mB,KAAL,CAAW4Q,KAAE,CAACjZ,MAAd,CAAP;AACD;;AAEDmvB,EAAAA,sBAAsB,CAACja,MAAD,EAAmD;AACvE,WACE,CAACA,MAAM,CAACuC,QAAR,IACA,CAACvC,MAAM,CAACgT,MADR,KAEChT,MAAM,CAACyC,GAAP,CAAWhZ,IAAX,KAAoB,aAApB,IACCuW,MAAM,CAACyC,GAAP,CAAWhC,KAAX,KAAqB,aAHvB,CADF;AAMD;;AAEDymC,EAAAA,cAAc,CACZhuB,sBADY,EAEZ4+B,SAFY,EAGC;AACb,SAAKtD,UAAL,CAAgB7kC,KAAhB;AAEA,UAAMnb,KAAK,GAAG;AAAEsoD,MAAAA,cAAc,EAAE;AAAlB,KAAd;AACA,QAAI/Y,UAAyB,GAAG,EAAhC;AACA,UAAMvgC,SAAsB,GAAG,KAAKe,SAAL,EAA/B;AACAf,IAAAA,SAAS,CAAC9N,IAAV,GAAiB,EAAjB;AAEA,SAAKuX,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;AAKA,SAAKuuD,0BAAL,CAAgC,MAAM;AACpC,aAAO,CAAC,KAAK7lD,KAAL,CAAW4Q,KAAE,CAACnZ,MAAd,CAAR,EAA+B;AAC7B,YAAI,KAAK4iB,GAAL,CAASzJ,KAAE,CAAC9Y,IAAZ,CAAJ,EAAuB;AACrB,cAAI84C,UAAU,CAAC7vC,MAAX,GAAoB,CAAxB,EAA2B;AACzB,kBAAM,KAAK6K,KAAL,CAAW,KAAKvK,KAAL,CAAWqK,UAAtB,EAAkCzI,MAAM,CAACoB,kBAAzC,CAAN;AACD;;AACD;AACD;;AAED,YAAI,KAAKrE,KAAL,CAAW4Q,KAAE,CAACnY,EAAd,CAAJ,EAAuB;AACrBm4C,UAAAA,UAAU,CAACrvC,IAAX,CAAgB,KAAKk+C,cAAL,EAAhB;AACA;AACD;;AAED,cAAM35B,MAAM,GAAG,KAAK1U,SAAL,EAAf;;AAGA,YAAIw/B,UAAU,CAAC7vC,MAAf,EAAuB;AACrB+kB,UAAAA,MAAM,CAAC8qB,UAAP,GAAoBA,UAApB;AACA,eAAKvnB,0BAAL,CAAgCvD,MAAhC,EAAwC8qB,UAAU,CAAC,CAAD,CAAlD;AACAA,UAAAA,UAAU,GAAG,EAAb;AACD;;AAED,aAAK/qB,gBAAL,CAAsBxV,SAAtB,EAAiCyV,MAAjC,EAAyCzkB,KAAzC,EAAgD0kB,sBAAhD;;AAEA,YACED,MAAM,CAAClZ,IAAP,KAAgB,aAAhB,IACAkZ,MAAM,CAAC8qB,UADP,IAEA9qB,MAAM,CAAC8qB,UAAP,CAAkB7vC,MAAlB,GAA2B,CAH7B,EAIE;AACA,eAAK6K,KAAL,CAAWka,MAAM,CAACpmB,KAAlB,EAAyBuD,MAAM,CAACkB,oBAAhC;AACD;AACF;AACF,KAjCD;;AAmCA,QAAI,CAACwgD,SAAL,EAAgB;AACd,WAAKtjD,KAAL,CAAWsT,MAAX,GAAoB,KAApB;AACD;;AAED,SAAKe,IAAL;;AAEA,QAAIk7B,UAAU,CAAC7vC,MAAf,EAAuB;AACrB,YAAM,KAAK6K,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACgG,iBAApC,CAAN;AACD;;AAED,SAAKo4C,UAAL,CAAgB1kC,IAAhB;AAEA,WAAO,KAAKtL,UAAL,CAAgBhB,SAAhB,EAA2B,WAA3B,CAAP;AACD;;AAID2V,EAAAA,4BAA4B,CAC1B3V,SAD0B,EAE1ByV,MAF0B,EAGjB;AACT,UAAMtU,WAAW,GAAG,KAAKnQ,KAAL,CAAWmQ,WAA/B;AACA,UAAMlC,GAAG,GAAG,KAAKuL,eAAL,CAAqB,IAArB,CAAZ;;AAEA,QAAI,KAAK+L,aAAL,EAAJ,EAA0B;AACxB,YAAM/Z,MAAqB,GAAIiZ,MAA/B;AAGAjZ,MAAAA,MAAM,CAACD,IAAP,GAAc,QAAd;AACAC,MAAAA,MAAM,CAACuC,QAAP,GAAkB,KAAlB;AACAvC,MAAAA,MAAM,CAACyC,GAAP,GAAaA,GAAb;AACAzC,MAAAA,MAAM,CAACgT,MAAP,GAAgB,KAAhB;AACA,WAAKzP,eAAL,CACEC,SADF,EAEExD,MAFF,EAGE,KAHF,EAIE,KAJF,EAKsB,KALtB,EAME,KANF;AAQA,aAAO,IAAP;AACD,KAjBD,MAiBO,IAAI,KAAKga,eAAL,EAAJ,EAA4B;AACjC,YAAMrY,IAAqB,GAAIsX,MAA/B;AAGAtX,MAAAA,IAAI,CAACY,QAAL,GAAgB,KAAhB;AACAZ,MAAAA,IAAI,CAACc,GAAL,GAAWA,GAAX;AACAd,MAAAA,IAAI,CAACqR,MAAL,GAAc,KAAd;AACAxP,MAAAA,SAAS,CAAC9N,IAAV,CAAehB,IAAf,CAAoB,KAAKmlB,kBAAL,CAAwBlY,IAAxB,CAApB;AACA,aAAO,IAAP;AACD,KATM,MASA,IAAIgD,WAAJ,EAAiB;AACtB,YAAM,KAAK4K,UAAL,EAAN;AACD;;AAED,WAAO,KAAP;AACD;;AAEDyJ,EAAAA,gBAAgB,CACdxV,SADc,EAEdyV,MAFc,EAGdzkB,KAHc,EAId0kB,sBAJc,EAKR;AACN,UAAMnG,QAAQ,GAAG,KAAK7D,YAAL,CAAkB,QAAlB,CAAjB;;AAEA,QAAI6D,QAAQ,IAAI,KAAKoG,4BAAL,CAAkC3V,SAAlC,EAA6CyV,MAA7C,CAAhB,EAAsE;AAEpE;AACD;;AAED,SAAKqsB,4BAAL,CACE9hC,SADF,EAEEyV,MAFF,EAGEzkB,KAHF,EAIEue,QAJF,EAKEmG,sBALF;AAOD;;AAEDosB,EAAAA,4BAA4B,CAC1B9hC,SAD0B,EAE1ByV,MAF0B,EAG1BzkB,KAH0B,EAI1Bue,QAJ0B,EAK1BmG,sBAL0B,EAM1B;AACA,UAAM6jC,YAAyC,GAAG9jC,MAAlD;AACA,UAAM+jC,aAAiD,GAAG/jC,MAA1D;AACA,UAAMgkC,UAAuC,GAAGhkC,MAAhD;AACA,UAAMikC,WAA+C,GAAGjkC,MAAxD;AAEA,UAAMjZ,MAAkD,GAAG+8C,YAA3D;AACA,UAAMI,YAAqD,GAAGJ,YAA9D;AAEA9jC,IAAAA,MAAM,CAACjG,MAAP,GAAgBD,QAAhB;;AAEA,QAAI,KAAKvF,GAAL,CAASzJ,KAAE,CAAC/W,IAAZ,CAAJ,EAAuB;AAErBgT,MAAAA,MAAM,CAACD,IAAP,GAAc,QAAd;AACA,WAAKq9C,sBAAL,CAA4Bp9C,MAA5B;;AAEA,UAAIA,MAAM,CAACyC,GAAP,CAAWhN,IAAX,KAAoB,aAAxB,EAAuC;AAErC,aAAKykB,sBAAL,CAA4B1W,SAA5B,EAAuCw5C,aAAvC,EAAsD,IAAtD,EAA4D,KAA5D;AACA;AACD;;AAED,UAAI,KAAK/iC,sBAAL,CAA4B8iC,YAA5B,CAAJ,EAA+C;AAC7C,aAAKh+C,KAAL,CAAWg+C,YAAY,CAACt6C,GAAb,CAAiB5P,KAA5B,EAAmCuD,MAAM,CAACe,sBAA1C;AACD;;AAED,WAAKoM,eAAL,CACEC,SADF,EAEEu5C,YAFF,EAGE,IAHF,EAIE,KAJF,EAKsB,KALtB,EAME,KANF;AASA;AACD;;AAED,UAAMp4C,WAAW,GAAG,KAAKnQ,KAAL,CAAWmQ,WAA/B;AACA,UAAMlC,GAAG,GAAG,KAAK26C,sBAAL,CAA4BnkC,MAA5B,CAAZ;AACA,UAAM68B,SAAS,GAAGrzC,GAAG,CAAChN,IAAJ,KAAa,aAA/B;AAEA,UAAM4nD,QAAQ,GAAG56C,GAAG,CAAChN,IAAJ,KAAa,YAA9B;AACA,UAAM6nD,uBAAuB,GAAG,KAAK9oD,KAAL,CAAW3B,KAA3C;AAEA,SAAK0yC,4BAAL,CAAkC4X,YAAlC;;AAEA,QAAI,KAAKpjC,aAAL,EAAJ,EAA0B;AACxB/Z,MAAAA,MAAM,CAACD,IAAP,GAAc,QAAd;;AAEA,UAAI+1C,SAAJ,EAAe;AACb,aAAK57B,sBAAL,CAA4B1W,SAA5B,EAAuCw5C,aAAvC,EAAsD,KAAtD,EAA6D,KAA7D;AACA;AACD;;AAGD,YAAMt5C,aAAa,GAAG,KAAKuW,sBAAL,CAA4B8iC,YAA5B,CAAtB;AACA,UAAIp5C,iBAAiB,GAAG,KAAxB;;AACA,UAAID,aAAJ,EAAmB;AACjBq5C,QAAAA,YAAY,CAACh9C,IAAb,GAAoB,aAApB;;AAGA,YAAIvL,KAAK,CAACsoD,cAAN,IAAwB,CAAC,KAAKppD,SAAL,CAAe,YAAf,CAA7B,EAA2D;AACzD,eAAKqL,KAAL,CAAW0D,GAAG,CAAC5P,KAAf,EAAsBuD,MAAM,CAACuB,oBAA7B;AACD;;AACDnD,QAAAA,KAAK,CAACsoD,cAAN,GAAuB,IAAvB;AACAn5C,QAAAA,iBAAiB,GAAGuV,sBAApB;AACD;;AAED,WAAK3V,eAAL,CACEC,SADF,EAEEu5C,YAFF,EAGE,KAHF,EAIE,KAJF,EAKEr5C,aALF,EAMEC,iBANF;AAQD,KA9BD,MA8BO,IAAI,KAAKqW,eAAL,EAAJ,EAA4B;AACjC,UAAI87B,SAAJ,EAAe;AACb,aAAKyH,wBAAL,CAA8B/5C,SAA9B,EAAyC05C,WAAzC;AACD,OAFD,MAEO;AACL,aAAKM,iBAAL,CAAuBh6C,SAAvB,EAAkCy5C,UAAlC;AACD;AACF,KANM,MAMA,IACLI,QAAQ,IACR56C,GAAG,CAAChZ,IAAJ,KAAa,OADb,IAEA,CAACkb,WAFD,IAGA,CAAC,KAAK89B,gBAAL,EAJI,EAKL;AAEA,YAAMh/B,WAAW,GAAG,KAAK+J,GAAL,CAASzJ,KAAE,CAAC/W,IAAZ,CAApB;;AAEA,UAAImwD,YAAY,CAACl4C,QAAjB,EAA2B;AACzB,aAAKsK,UAAL,CAAgB+tC,uBAAhB;AACD;;AAEDt9C,MAAAA,MAAM,CAACD,IAAP,GAAc,QAAd;AAEA,WAAKq9C,sBAAL,CAA4Bp9C,MAA5B;AACA,WAAKulC,4BAAL,CAAkC4X,YAAlC;;AAEA,UAAIn9C,MAAM,CAACyC,GAAP,CAAWhN,IAAX,KAAoB,aAAxB,EAAuC;AAErC,aAAKykB,sBAAL,CACE1W,SADF,EAEEw5C,aAFF,EAGEv5C,WAHF,EAIE,IAJF;AAMD,OARD,MAQO;AACL,YAAI,KAAKwW,sBAAL,CAA4B8iC,YAA5B,CAAJ,EAA+C;AAC7C,eAAKh+C,KAAL,CAAWg+C,YAAY,CAACt6C,GAAb,CAAiB5P,KAA5B,EAAmCuD,MAAM,CAACc,kBAA1C;AACD;;AAED,aAAKqM,eAAL,CACEC,SADF,EAEEu5C,YAFF,EAGEt5C,WAHF,EAIE,IAJF,EAKsB,KALtB,EAME,KANF;AAQD;AACF,KAxCM,MAwCA,IACL45C,QAAQ,KACP56C,GAAG,CAAChZ,IAAJ,KAAa,KAAb,IAAsBgZ,GAAG,CAAChZ,IAAJ,KAAa,KAD5B,CAAR,IAEA,CAACkb,WAFD,IAGA,EAAE,KAAKxR,KAAL,CAAW4Q,KAAE,CAAC/W,IAAd,KAAuB,KAAKy1C,gBAAL,EAAzB,CAJK,EAKL;AAGAziC,MAAAA,MAAM,CAACD,IAAP,GAAc0C,GAAG,CAAChZ,IAAlB;AAEA,WAAK2zD,sBAAL,CAA4BL,YAA5B;;AAEA,UAAI/8C,MAAM,CAACyC,GAAP,CAAWhN,IAAX,KAAoB,aAAxB,EAAuC;AAErC,aAAKykB,sBAAL,CAA4B1W,SAA5B,EAAuCw5C,aAAvC,EAAsD,KAAtD,EAA6D,KAA7D;AACD,OAHD,MAGO;AACL,YAAI,KAAK/iC,sBAAL,CAA4B8iC,YAA5B,CAAJ,EAA+C;AAC7C,eAAKh+C,KAAL,CAAWg+C,YAAY,CAACt6C,GAAb,CAAiB5P,KAA5B,EAAmCuD,MAAM,CAACa,qBAA1C;AACD;;AACD,aAAKsM,eAAL,CACEC,SADF,EAEEu5C,YAFF,EAGE,KAHF,EAIE,KAJF,EAKsB,KALtB,EAME,KANF;AAQD;;AAED,WAAKr7C,uBAAL,CAA6Bq7C,YAA7B;AACD,KA9BM,MA8BA,IAAI,KAAKta,gBAAL,EAAJ,EAA6B;AAElC,UAAIqT,SAAJ,EAAe;AACb,aAAKyH,wBAAL,CAA8B/5C,SAA9B,EAAyC05C,WAAzC;AACD,OAFD,MAEO;AACL,aAAKM,iBAAL,CAAuBh6C,SAAvB,EAAkCy5C,UAAlC;AACD;AACF,KAPM,MAOA;AACL,WAAK1tC,UAAL;AACD;AACF;;AAED6tC,EAAAA,sBAAsB,CAACnkC,MAAD,EAAqD;AACzE,UAAMxW,GAAG,GAAG,KAAK6X,iBAAL,CAAuBrB,MAAvB,EAA0D,IAA1D,CAAZ;;AAEA,QACE,CAACA,MAAM,CAAC1W,QAAR,IACA0W,MAAM,CAACjG,MADP,KAEEvQ,GAAD,CAAkChZ,IAAlC,KAA2C,WAA3C,IACEgZ,GAAD,CAAqChC,KAArC,KAA+C,WAHjD,CADF,EAKE;AACA,WAAK1B,KAAL,CAAW0D,GAAG,CAAC5P,KAAf,EAAsBuD,MAAM,CAACuF,eAA7B;AACD;;AAED,QAAI8G,GAAG,CAAChN,IAAJ,KAAa,aAAb,IAA8BgN,GAAG,CAACsL,EAAJ,CAAOtkB,IAAP,KAAgB,aAAlD,EAAiE;AAC/D,WAAKsV,KAAL,CAAW0D,GAAG,CAAC5P,KAAf,EAAsBuD,MAAM,CAACY,4BAA7B;AACD;;AAED,WAAOyL,GAAP;AACD;;AAED+6C,EAAAA,iBAAiB,CAACh6C,SAAD,EAAyB7B,IAAzB,EAAgD;AAC/D,QACE,CAACA,IAAI,CAACY,QAAN,KACCZ,IAAI,CAACc,GAAL,CAAShZ,IAAT,KAAkB,aAAlB,IAAmCkY,IAAI,CAACc,GAAL,CAAShC,KAAT,KAAmB,aADvD,CADF,EAGE;AAGA,WAAK1B,KAAL,CAAW4C,IAAI,CAACc,GAAL,CAAS5P,KAApB,EAA2BuD,MAAM,CAACW,qBAAlC;AACD;;AAEDyM,IAAAA,SAAS,CAAC9N,IAAV,CAAehB,IAAf,CAAoB,KAAKmlB,kBAAL,CAAwBlY,IAAxB,CAApB;AACD;;AAED47C,EAAAA,wBAAwB,CACtB/5C,SADsB,EAEtB7B,IAFsB,EAGtB;AACA,SAAKwlC,YAAL,CAAkB,wBAAlB,EAA4CxlC,IAAI,CAACc,GAAL,CAAS5P,KAArD;AAEA,UAAMgC,IAAI,GAAG,KAAKilB,yBAAL,CAA+BnY,IAA/B,CAAb;AACA6B,IAAAA,SAAS,CAAC9N,IAAV,CAAehB,IAAf,CAAoBG,IAApB;AAEA,SAAK2/C,UAAL,CAAgBiJ,kBAAhB,CACE5oD,IAAI,CAAC4N,GAAL,CAASsL,EAAT,CAAYtkB,IADd,EAEEsI,mBAFF,EAGE8C,IAAI,CAAC4N,GAAL,CAAS5P,KAHX;AAKD;;AAED0Q,EAAAA,eAAe,CACbC,SADa,EAEbxD,MAFa,EAGbyD,WAHa,EAIbjC,OAJa,EAKbkC,aALa,EAMbC,iBANa,EAOP;AACNH,IAAAA,SAAS,CAAC9N,IAAV,CAAehB,IAAf,CACE,KAAKkP,WAAL,CACE5D,MADF,EAEEyD,WAFF,EAGEjC,OAHF,EAIEkC,aAJF,EAKEC,iBALF,EAME,aANF,EAOE,IAPF,CADF;AAWD;;AAEDuW,EAAAA,sBAAsB,CACpB1W,SADoB,EAEpBxD,MAFoB,EAGpByD,WAHoB,EAIpBjC,OAJoB,EAKd;AACN,SAAK2lC,YAAL,CAAkB,qBAAlB,EAAyCnnC,MAAM,CAACyC,GAAP,CAAW5P,KAApD;AAEA,UAAMgC,IAAI,GAAG,KAAK+O,WAAL,CACX5D,MADW,EAEXyD,WAFW,EAGXjC,OAHW,EAIS,KAJT,EAKX,KALW,EAMX,oBANW,EAOX,IAPW,CAAb;AASAgC,IAAAA,SAAS,CAAC9N,IAAV,CAAehB,IAAf,CAAoBG,IAApB;AAEA,UAAMkL,IAAI,GACRlL,IAAI,CAACkL,IAAL,KAAc,KAAd,GACIlL,IAAI,CAACme,MAAL,GACErhB,2BADF,GAEEE,6BAHN,GAIIgD,IAAI,CAACkL,IAAL,KAAc,KAAd,GACAlL,IAAI,CAACme,MAAL,GACEphB,2BADF,GAEEE,6BAHF,GAIAC,mBATN;AAUA,SAAKyiD,UAAL,CAAgBiJ,kBAAhB,CAAmC5oD,IAAI,CAAC4N,GAAL,CAASsL,EAAT,CAAYtkB,IAA/C,EAAqDsW,IAArD,EAA2DlL,IAAI,CAAC4N,GAAL,CAAS5P,KAApE;AACD;;AAGD0yC,EAAAA,4BAA4B,CAE1BC,YAF0B,EAGpB;;AAGRvB,EAAAA,mBAAmB,GAAqB;AACtC,WAAO1uC,SAAP;AACD;;AAEDukB,EAAAA,yBAAyB,CACvBjlB,IADuB,EAEC;AACxB,SAAK4a,KAAL,CAAWE,KAAX,CAAiB9f,WAAW,GAAGF,WAA/B;AAEA,SAAKiX,SAAL,CAAe+I,KAAf,CAAqBgnB,KAArB;AAEA9hC,IAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAK+M,GAAL,CAASzJ,KAAE,CAAChY,EAAZ,IAAkB,KAAKurB,gBAAL,EAAlB,GAA4C,IAAzD;AACA,SAAK3I,SAAL;AACA,SAAK/H,SAAL,CAAekJ,IAAf;AAEA,SAAKL,KAAL,CAAWK,IAAX;AAEA,WAAO,KAAKtL,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;AACD;;AAEDglB,EAAAA,kBAAkB,CAAChlB,IAAD,EAAyC;AACzD,QAAI,CAACA,IAAI,CAAC4Z,cAAV,EAA0B;AACxB,WAAK04B,YAAL,CAAkB,iBAAlB;AACD;;AAED,SAAK13B,KAAL,CAAWE,KAAX,CAAiB9f,WAAW,GAAGF,WAA/B;AAEA,SAAKiX,SAAL,CAAe+I,KAAf,CAAqBgnB,KAArB;;AAEA,QAAI,KAAKxjC,KAAL,CAAW4Q,KAAE,CAAChY,EAAd,CAAJ,EAAuB;AACrB,WAAKo7C,YAAL,CAAkB,iBAAlB;AACA,WAAKt+B,IAAL;AACAhU,MAAAA,IAAI,CAAC4L,KAAL,GAAa,KAAK6W,gBAAL,EAAb;AACD,KAJD,MAIO;AACLziB,MAAAA,IAAI,CAAC4L,KAAL,GAAa,IAAb;AACD;;AACD,SAAKkO,SAAL;AAEA,SAAK/H,SAAL,CAAekJ,IAAf;AACA,SAAKL,KAAL,CAAWK,IAAX;AAEA,WAAO,KAAKtL,UAAL,CAAgB3P,IAAhB,EAAsB,eAAtB,CAAP;AACD;;AAEDgkB,EAAAA,YAAY,CACVhkB,IADU,EAEVikB,WAFU,EAGVC,UAHU,EAIVhX,WAAyB,GAAGpR,UAJlB,EAKJ;AACN,QAAI,KAAKwC,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAJ,EAAyB;AACvBoL,MAAAA,IAAI,CAACkZ,EAAL,GAAU,KAAKC,eAAL,EAAV;;AACA,UAAI8K,WAAJ,EAAiB;AACf,aAAKjX,SAAL,CAAehN,IAAI,CAACkZ,EAApB,EAAwBhM,WAAxB,EAAqCxM,SAArC,EAAgD,YAAhD;AACD;AACF,KALD,MAKO;AACL,UAAIwjB,UAAU,IAAI,CAACD,WAAnB,EAAgC;AAC9BjkB,QAAAA,IAAI,CAACkZ,EAAL,GAAU,IAAV;AACD,OAFD,MAEO;AACL,aAAKwB,UAAL,CAAgB,IAAhB,EAAsBnZ,MAAM,CAAC2D,gBAA7B;AACD;AACF;AACF;;AAEDogB,EAAAA,eAAe,CAACtlB,IAAD,EAAsB;AACnCA,IAAAA,IAAI,CAACoL,UAAL,GAAkB,KAAKuN,GAAL,CAASzJ,KAAE,CAACpV,QAAZ,IAAwB,KAAKwlD,mBAAL,EAAxB,GAAqD,IAAvE;AACD;;AAID7uC,EAAAA,WAAW,CAACzQ,IAAD,EAA4B;AACrC,UAAM6oD,UAAU,GAAG,KAAKtW,gCAAL,CAAsCvyC,IAAtC,CAAnB;AACA,UAAM8oD,iBAAiB,GAAG,CAACD,UAAD,IAAe,KAAKlwC,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAAzC;AACA,UAAM4yD,OAAO,GAAGD,iBAAiB,IAAI,KAAKjlC,aAAL,CAAmB7jB,IAAnB,CAArC;AACA,UAAM+jB,YAAY,GAChBglC,OAAO,IAAI,KAAKjlC,kCAAL,CAAwC9jB,IAAxC,CADb;AAEA,UAAMgpD,mBAAmB,GACvBF,iBAAiB,KAAK,CAAC/kC,YAAD,IAAiB,KAAKpL,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAAtB,CADnB;AAEA,UAAM8yD,cAAc,GAAGJ,UAAU,IAAIE,OAArC;;AAEA,QAAIA,OAAO,IAAI,CAAChlC,YAAhB,EAA8B;AAC5B,UAAI8kC,UAAJ,EAAgB,KAAKnuC,UAAL;AAChB,WAAKkJ,eAAL,CAAqB5jB,IAArB,EAA2B,IAA3B;AAEA,aAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,sBAAtB,CAAP;AACD;;AAED,UAAMkpD,aAAa,GAAG,KAAKC,+BAAL,CAAqCnpD,IAArC,CAAtB;;AAEA,QACG6oD,UAAU,IAAIC,iBAAd,IAAmC,CAACC,OAApC,IAA+C,CAACG,aAAjD,IACCnlC,YAAY,IAAIilC,mBAAhB,IAAuC,CAACE,aAF3C,EAGE;AACA,YAAM,KAAKxuC,UAAL,CAAgB,IAAhB,EAAsBxL,KAAE,CAACtZ,MAAzB,CAAN;AACD;;AAED,QAAIwzD,cAAJ;;AACA,QAAIH,cAAc,IAAIC,aAAtB,EAAqC;AACnCE,MAAAA,cAAc,GAAG,KAAjB;AACA,WAAKxlC,eAAL,CAAqB5jB,IAArB,EAA2BipD,cAA3B;AACD,KAHD,MAGO;AACLG,MAAAA,cAAc,GAAG,KAAKC,2BAAL,CAAiCrpD,IAAjC,CAAjB;AACD;;AAED,QAAIipD,cAAc,IAAIC,aAAlB,IAAmCE,cAAvC,EAAuD;AACrD,WAAK5W,WAAL,CAAiBxyC,IAAjB,EAAuB,IAAvB,EAA6B,KAA7B,EAAoC,CAAC,CAACA,IAAI,CAAC1C,MAA3C;AACA,aAAO,KAAKqS,UAAL,CAAgB3P,IAAhB,EAAsB,wBAAtB,CAAP;AACD;;AAED,QAAI,KAAK2Y,GAAL,CAASzJ,KAAE,CAACvW,QAAZ,CAAJ,EAA2B;AAEzBqH,MAAAA,IAAI,CAAC4W,WAAL,GAAmB,KAAK2K,4BAAL,EAAnB;AACA,WAAKixB,WAAL,CAAiBxyC,IAAjB,EAAuB,IAAvB,EAA6B,IAA7B;AAEA,aAAO,KAAK2P,UAAL,CAAgB3P,IAAhB,EAAsB,0BAAtB,CAAP;AACD;;AAED,UAAM,KAAK0a,UAAL,CAAgB,IAAhB,EAAsBxL,KAAE,CAACtZ,MAAzB,CAAN;AACD;;AAGDiuB,EAAAA,aAAa,CAAC7jB,IAAD,EAAwB;AACnC,WAAO,KAAK2Y,GAAL,CAASzJ,KAAE,CAAC/W,IAAZ,CAAP;AACD;;AAEDo6C,EAAAA,gCAAgC,CAACvyC,IAAD,EAAwB;AACtD,QAAI,KAAKshB,wBAAL,EAAJ,EAAqC;AAEnC,WAAKgxB,YAAL,CAAkB,mBAAlB;AACA,YAAMrsB,SAAS,GAAG,KAAKvW,SAAL,EAAlB;AACAuW,MAAAA,SAAS,CAACvV,QAAV,GAAqB,KAAKyI,eAAL,CAAqB,IAArB,CAArB;AACAnZ,MAAAA,IAAI,CAAC2Q,UAAL,GAAkB,CAAC,KAAKhB,UAAL,CAAgBsW,SAAhB,EAA2B,wBAA3B,CAAD,CAAlB;AACA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDnC,EAAAA,kCAAkC,CAAC9jB,IAAD,EAAwB;AACxD,QAAI,KAAKqa,YAAL,CAAkB,IAAlB,CAAJ,EAA6B;AAC3B,UAAI,CAACra,IAAI,CAAC2Q,UAAV,EAAsB3Q,IAAI,CAAC2Q,UAAL,GAAkB,EAAlB;AAEtB,YAAMsV,SAAS,GAAG,KAAK5Z,WAAL,CAChB,KAAK1M,KAAL,CAAWkK,YADK,EAEhB,KAAKlK,KAAL,CAAWmK,eAFK,CAAlB;AAKA,WAAKkK,IAAL;AAEAiS,MAAAA,SAAS,CAACvV,QAAV,GAAqB,KAAKyI,eAAL,CAAqB,IAArB,CAArB;AACAnZ,MAAAA,IAAI,CAAC2Q,UAAL,CAAgB9Q,IAAhB,CACE,KAAK8P,UAAL,CAAgBsW,SAAhB,EAA2B,0BAA3B,CADF;AAGA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDkjC,EAAAA,+BAA+B,CAACnpD,IAAD,EAAwB;AACrD,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAACtZ,MAAd,CAAJ,EAA2B;AACzB,UAAI,CAACoK,IAAI,CAAC2Q,UAAV,EAAsB3Q,IAAI,CAAC2Q,UAAL,GAAkB,EAAlB;AACtB3Q,MAAAA,IAAI,CAAC2Q,UAAL,CAAgB9Q,IAAhB,CAAqB,GAAG,KAAK8jB,qBAAL,EAAxB;AAEA3jB,MAAAA,IAAI,CAAC1C,MAAL,GAAc,IAAd;AACA0C,MAAAA,IAAI,CAAC4W,WAAL,GAAmB,IAAnB;AAEA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDyyC,EAAAA,2BAA2B,CAACrpD,IAAD,EAAwB;AACjD,QAAI,KAAKqhB,4BAAL,EAAJ,EAAyC;AACvC,UAAI,KAAKhH,YAAL,CAAkB,OAAlB,CAAJ,EAAgC;AAC9B,cAAMrG,IAAI,GAAG,KAAKkjC,cAAL,EAAb;;AAGA,YAAI,CAAC,KAAK2E,oBAAL,CAA0B7nC,IAA1B,EAAgC,UAAhC,CAAL,EAAkD;AAChD,eAAK0G,UAAL,CAAgB1G,IAAhB,EAAsB9E,KAAE,CAAClW,SAAzB;AACD;AACF;;AAEDgH,MAAAA,IAAI,CAAC2Q,UAAL,GAAkB,EAAlB;AACA3Q,MAAAA,IAAI,CAAC1C,MAAL,GAAc,IAAd;AACA0C,MAAAA,IAAI,CAAC4W,WAAL,GAAmB,KAAK6M,sBAAL,CAA4BzjB,IAA5B,CAAnB;AAEA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAED6lD,EAAAA,eAAe,GAAY;AACzB,QAAI,CAAC,KAAKxrC,YAAL,CAAkB,OAAlB,CAAL,EAAiC,OAAO,KAAP;AACjC,UAAMrG,IAAI,GAAG,KAAKkjC,cAAL,EAAb;AACA,WACE,CAAC/5C,SAAS,CAACiV,IAAV,CAAe,KAAKjU,KAAL,CAAWkD,KAAX,CAAiB,KAAK1B,KAAL,CAAWgK,GAA5B,EAAiCqK,IAAjC,CAAf,CAAD,IACA,KAAK6nC,oBAAL,CAA0B7nC,IAA1B,EAAgC,UAAhC,CAFF;AAID;;AAEDuN,EAAAA,4BAA4B,GAAiC;AAC3D,UAAMtU,IAAI,GAAG,KAAKyC,SAAL,EAAb;AAEA,UAAM/C,OAAO,GAAG,KAAKk5C,eAAL,EAAhB;;AAEA,QAAI,KAAKvnD,KAAL,CAAW4Q,KAAE,CAAClW,SAAd,KAA4B2T,OAAhC,EAAyC;AACvC,WAAKqH,IAAL;;AACA,UAAIrH,OAAJ,EAAa;AACX,aAAKqH,IAAL;AACD;;AAED,aAAO,KAAKwsC,aAAL,CACLvzC,IADK,EAELu3C,cAAc,GAAGE,gBAFZ,EAGL/3C,OAHK,CAAP;AAKD,KAXD,MAWO,IAAI,KAAKrO,KAAL,CAAW4Q,KAAE,CAACrV,MAAd,CAAJ,EAA2B;AAChC,aAAO,KAAKk0C,UAAL,CAAgB9gC,IAAhB,EAAsB,IAAtB,EAA4B,IAA5B,CAAP;AACD,KAFM,MAEA,IAAI,KAAK3O,KAAL,CAAW4Q,KAAE,CAACnY,EAAd,CAAJ,EAAuB;AAC5B,UACE,KAAK8H,SAAL,CAAe,YAAf,KACA,KAAKG,eAAL,CAAqB,YAArB,EAAmC,wBAAnC,CAFF,EAGE;AACA,aAAKkL,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACiB,qBAApC;AACD;;AACD,WAAKq+C,eAAL,CAAqB,KAArB;AACA,aAAO,KAAK9S,UAAL,CAAgB9gC,IAAhB,EAAsB,IAAtB,EAA4B,IAA5B,CAAP;AACD,KATM,MASA,IAAI,KAAK3O,KAAL,CAAW4Q,KAAE,CAAC3V,MAAd,KAAyB,KAAK+E,KAAL,CAAW4Q,KAAE,CAAC5V,IAAd,CAAzB,IAAgD,KAAK8hB,KAAL,EAApD,EAAkE;AACvE,YAAM,KAAKlR,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACoH,wBAApC,CAAN;AACD,KAFM,MAEA;AACL,YAAM6kC,GAAG,GAAG,KAAK/qB,gBAAL,EAAZ;AACA,WAAK3I,SAAL;AACA,aAAO0zB,GAAP;AACD;AACF;;AAGD/pB,EAAAA,sBAAsB,CAACzjB,IAAD,EAAiD;AACrE,WAAO,KAAKkhB,cAAL,CAAoB,IAApB,CAAP;AACD;;AAEDI,EAAAA,wBAAwB,GAAY;AAClC,QAAI,KAAKhjB,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAJ,EAAyB;AACvB,aAAO,KAAK+K,KAAL,CAAWiM,KAAX,KAAqB,OAArB,IAAgC,KAAKjM,KAAL,CAAWiM,KAAX,KAAqB,KAA5D;AACD;;AAED,QAAI,CAAC,KAAKtN,KAAL,CAAW4Q,KAAE,CAACvW,QAAd,CAAL,EAA8B;AAC5B,aAAO,KAAP;AACD;;AAED,UAAMqb,IAAI,GAAG,KAAKkjC,cAAL,EAAb;AACA,WACE,KAAK/4C,KAAL,CAAWqmB,UAAX,CAAsBxQ,IAAtB,YACA,KAAK6nC,oBAAL,CAA0B7nC,IAA1B,EAAgC,MAAhC,CAFF;AAID;;AAED4P,EAAAA,eAAe,CAAC5jB,IAAD,EAAiCoY,MAAjC,EAAyD;AACtE,QAAI,KAAK8B,aAAL,CAAmB,MAAnB,CAAJ,EAAgC;AAC9Bla,MAAAA,IAAI,CAAC1C,MAAL,GAAc,KAAKu1C,iBAAL,EAAd;AACA,WAAKL,WAAL,CAAiBxyC,IAAjB;AACD,KAHD,MAGO;AACL,UAAIoY,MAAJ,EAAY;AACV,aAAKsC,UAAL;AACD,OAFD,MAEO;AACL1a,QAAAA,IAAI,CAAC1C,MAAL,GAAc,IAAd;AACD;AACF;;AAED,SAAKwc,SAAL;AACD;;AAEDuH,EAAAA,4BAA4B,GAAY;AACtC,QAAI,KAAK/iB,KAAL,CAAW4Q,KAAE,CAACnY,EAAd,CAAJ,EAAuB;AACrB,WAAKmlD,eAAL,CAAqB,CAAC,YAAD,EAAe,mBAAf,CAArB;;AACA,UAAI,KAAKr9C,SAAL,CAAe,YAAf,CAAJ,EAAkC;AAChC,YAAI,KAAKG,eAAL,CAAqB,YAArB,EAAmC,wBAAnC,CAAJ,EAAkE;AAChE,eAAK0b,UAAL,CAAgB,KAAK/a,KAAL,CAAW3B,KAA3B,EAAkCuD,MAAM,CAACiB,qBAAzC;AACD,SAFD,MAEO;AACL,iBAAO,IAAP;AACD;AACF;AACF;;AAED,WACE,KAAK7C,KAAL,CAAWiB,IAAX,CAAgBvM,OAAhB,KAA4B,KAA5B,IACA,KAAKsL,KAAL,CAAWiB,IAAX,CAAgBvM,OAAhB,KAA4B,OAD5B,IAEA,KAAKsL,KAAL,CAAWiB,IAAX,CAAgBvM,OAAhB,KAA4B,UAF5B,IAGA,KAAKsL,KAAL,CAAWiB,IAAX,CAAgBvM,OAAhB,KAA4B,OAH5B,IAIA,KAAK+mB,KAAL,EAJA,IAKA,KAAKyqC,eAAL,EANF;AAQD;;AAEDrT,EAAAA,WAAW,CACTxyC,IADS,EAETspD,UAFS,EAGTC,SAHS,EAITC,MAJS,EAKH;AACN,QAAIF,UAAJ,EAAgB;AAEd,UAAIC,SAAJ,EAAe;AAEb,aAAKnZ,qBAAL,CAA2BpwC,IAA3B,EAAiC,SAAjC;AACD,OAHD,MAGO,IAAIA,IAAI,CAAC2Q,UAAL,IAAmB3Q,IAAI,CAAC2Q,UAAL,CAAgBtR,MAAvC,EAA+C;AAAA,6CAE5BW,IAAI,CAAC2Q,UAFuB,wCAEX;AAApC,gBAAMsV,SAAS,wBAAf;AACH,eAAKmqB,qBAAL,CAA2BnqB,SAA3B,EAAsCA,SAAS,CAACvV,QAAV,CAAmB9b,IAAzD;;AAEA,cAAI,CAAC40D,MAAD,IAAWvjC,SAAS,CAACC,KAAzB,EAAgC;AAE9B,iBAAKY,iBAAL,CACEb,SAAS,CAACC,KAAV,CAAgBtxB,IADlB,EAEEqxB,SAAS,CAACC,KAAV,CAAgBloB,KAFlB,EAGE,IAHF,EAIE,KAJF;AAQA,iBAAK4c,KAAL,CAAWymB,gBAAX,CAA4Bpb,SAAS,CAACC,KAAtC;AACD;AACF;AACF,OAlBM,MAkBA,IAAIlmB,IAAI,CAAC4W,WAAT,EAAsB;AAE3B,YACE5W,IAAI,CAAC4W,WAAL,CAAiBhW,IAAjB,KAA0B,qBAA1B,IACAZ,IAAI,CAAC4W,WAAL,CAAiBhW,IAAjB,KAA0B,kBAF5B,EAGE;AACA,gBAAMsY,EAAE,GAAGlZ,IAAI,CAAC4W,WAAL,CAAiBsC,EAA5B;AACA,cAAI,CAACA,EAAL,EAAS,MAAM,IAAInB,KAAJ,CAAU,mBAAV,CAAN;AAET,eAAKq4B,qBAAL,CAA2BpwC,IAA3B,EAAiCkZ,EAAE,CAACtkB,IAApC;AACD,SARD,MAQO,IAAIoL,IAAI,CAAC4W,WAAL,CAAiBhW,IAAjB,KAA0B,qBAA9B,EAAqD;AAAA,oDAChCZ,IAAI,CAAC4W,WAAL,CAAiB6vC,YADe,6CACD;AAApD,kBAAM7vC,WAAW,6BAAjB;AACH,iBAAKhK,gBAAL,CAAsBgK,WAAW,CAACsC,EAAlC;AACD;AACF;AACF;AACF;;AAED,UAAM+sC,wBAAwB,GAAG,KAAKtmD,KAAL,CAAWi2C,cAAX,CAC/B,KAAKj2C,KAAL,CAAWi2C,cAAX,CAA0Bv2C,MAA1B,GAAmC,CADJ,CAAjC;;AAGA,QAAI4mD,wBAAwB,CAAC5mD,MAA7B,EAAqC;AACnC,YAAMqc,OAAO,GACX1b,IAAI,CAAC4W,WAAL,KACC5W,IAAI,CAAC4W,WAAL,CAAiBhW,IAAjB,KAA0B,kBAA1B,IACCZ,IAAI,CAAC4W,WAAL,CAAiBhW,IAAjB,KAA0B,iBAF5B,CADF;;AAIA,UAAI,CAACZ,IAAI,CAAC4W,WAAN,IAAqB,CAAC8E,OAA1B,EAAmC;AACjC,cAAM,KAAKxR,KAAL,CAAWlK,IAAI,CAAChC,KAAhB,EAAuBuD,MAAM,CAACmH,0BAA9B,CAAN;AACD;;AACD,WAAK0pC,cAAL,CAAoBpyC,IAAI,CAAC4W,WAAzB;AACD;AACF;;AAEDhK,EAAAA,gBAAgB,CAAC5M,IAAD,EAA2C;AACzD,QAAIA,IAAI,CAACY,IAAL,KAAc,YAAlB,EAAgC;AAC9B,WAAKwvC,qBAAL,CAA2BpwC,IAA3B,EAAiCA,IAAI,CAACpL,IAAtC;AACD,KAFD,MAEO,IAAIoL,IAAI,CAACY,IAAL,KAAc,eAAlB,EAAmC;AAAA,2CACrBZ,IAAI,CAACmB,UADgB,wCACJ;AAA/B,cAAM2L,IAAI,wBAAV;AACH,aAAKF,gBAAL,CAAsBE,IAAtB;AACD;AACF,KAJM,MAIA,IAAI9M,IAAI,CAACY,IAAL,KAAc,cAAlB,EAAkC;AAAA,yCACpBZ,IAAI,CAACC,QADe,sCACL;AAA7B,cAAMg+C,IAAI,sBAAV;;AACH,YAAIA,IAAJ,EAAU;AACR,eAAKrxC,gBAAL,CAAsBqxC,IAAtB;AACD;AACF;AACF,KANM,MAMA,IAAIj+C,IAAI,CAACY,IAAL,KAAc,gBAAlB,EAAoC;AACzC,WAAKgM,gBAAL,CAAsB5M,IAAI,CAAC4L,KAA3B;AACD,KAFM,MAEA,IAAI5L,IAAI,CAACY,IAAL,KAAc,aAAlB,EAAiC;AACtC,WAAKgM,gBAAL,CAAsB5M,IAAI,CAACsf,QAA3B;AACD,KAFM,MAEA,IAAItf,IAAI,CAACY,IAAL,KAAc,mBAAlB,EAAuC;AAC5C,WAAKgM,gBAAL,CAAsB5M,IAAI,CAAC8lB,IAA3B;AACD;AACF;;AAEDsqB,EAAAA,qBAAqB,CACnBpwC,IADmB,EAMnBpL,IANmB,EAOb;AACN,QAAI,KAAK+K,KAAL,CAAWo2C,mBAAX,CAA+B3yB,OAA/B,CAAuCxuB,IAAvC,IAA+C,CAAC,CAApD,EAAuD;AACrD,WAAKsV,KAAL,CACElK,IAAI,CAAChC,KADP,EAEEpJ,IAAI,KAAK,SAAT,GACI2M,MAAM,CAACwB,sBADX,GAEIxB,MAAM,CAACyB,eAJb,EAKEpO,IALF;AAOD;;AACD,SAAK+K,KAAL,CAAWo2C,mBAAX,CAA+Bl2C,IAA/B,CAAoCjL,IAApC;AACD;;AAID+uB,EAAAA,qBAAqB,GAA6B;AAChD,UAAM8lC,KAAK,GAAG,EAAd;AACA,QAAI5L,KAAK,GAAG,IAAZ;AAGA,SAAKzlC,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;;AAEA,WAAO,CAAC,KAAK+iB,GAAL,CAASzJ,KAAE,CAACnZ,MAAZ,CAAR,EAA6B;AAC3B,UAAI8nD,KAAJ,EAAW;AACTA,QAAAA,KAAK,GAAG,KAAR;AACD,OAFD,MAEO;AACL,aAAKzlC,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACA,YAAI,KAAKwiB,GAAL,CAASzJ,KAAE,CAACnZ,MAAZ,CAAJ,EAAyB;AAC1B;;AAED,YAAMiK,IAAI,GAAG,KAAK0P,SAAL,EAAb;AACA1P,MAAAA,IAAI,CAACkmB,KAAL,GAAa,KAAK/M,eAAL,CAAqB,IAArB,CAAb;AACAnZ,MAAAA,IAAI,CAAC0Q,QAAL,GAAgB,KAAKwJ,aAAL,CAAmB,IAAnB,IACZ,KAAKf,eAAL,CAAqB,IAArB,CADY,GAEZnZ,IAAI,CAACkmB,KAAL,CAAWS,OAAX,EAFJ;AAGA8iC,MAAAA,KAAK,CAAC5pD,IAAN,CAAW,KAAK8P,UAAL,CAAgB3P,IAAhB,EAAsB,iBAAtB,CAAX;AACD;;AAED,WAAOypD,KAAP;AACD;;AAIDzuC,EAAAA,WAAW,CAAChb,IAAD,EAA4B;AAErCA,IAAAA,IAAI,CAAC2Q,UAAL,GAAkB,EAAlB;;AACA,QAAI,CAAC,KAAKrS,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAAL,EAA4B;AAC1B,YAAMwzD,UAAU,GAAG,KAAK1iC,gCAAL,CAAsCnmB,IAAtC,CAAnB;AACA,YAAM0pD,SAAS,GAAG,CAACb,UAAD,IAAe,KAAKlwC,GAAL,CAASzJ,KAAE,CAAC/Y,KAAZ,CAAjC;AACA,YAAM4yD,OAAO,GAAGW,SAAS,IAAI,KAAK/W,6BAAL,CAAmC3yC,IAAnC,CAA7B;AACA,UAAI0pD,SAAS,IAAI,CAACX,OAAlB,EAA2B,KAAKnW,0BAAL,CAAgC5yC,IAAhC;AAC3B,WAAK0Y,gBAAL,CAAsB,MAAtB;AACD;;AACD1Y,IAAAA,IAAI,CAAC1C,MAAL,GAAc,KAAKu1C,iBAAL,EAAd;AACA,SAAK/4B,SAAL;AACA,WAAO,KAAKnK,UAAL,CAAgB3P,IAAhB,EAAsB,mBAAtB,CAAP;AACD;;AAED6yC,EAAAA,iBAAiB,GAAoB;AACnC,QAAI,CAAC,KAAKv0C,KAAL,CAAW4Q,KAAE,CAAC7Z,MAAd,CAAL,EAA4B,KAAKqlB,UAAL;AAC5B,WAAO,KAAKzL,aAAL,EAAP;AACD;;AAGD8W,EAAAA,wBAAwB,CAAC/lB,IAAD,EAAqC;AAC3D,WAAO,KAAK1B,KAAL,CAAW4Q,KAAE,CAACta,IAAd,CAAP;AACD;;AAEDoxB,EAAAA,yBAAyB,CACvBhmB,IADuB,EAEvBimB,SAFuB,EAGvBrlB,IAHuB,EAIvBwM,kBAJuB,EAKjB;AACN6Y,IAAAA,SAAS,CAACC,KAAV,GAAkB,KAAK/M,eAAL,EAAlB;AACA,SAAKnM,SAAL,CACEiZ,SAAS,CAACC,KADZ,EAEEnqB,YAFF,EAGE2E,SAHF,EAIE0M,kBAJF;AAMApN,IAAAA,IAAI,CAAC2Q,UAAL,CAAgB9Q,IAAhB,CAAqB,KAAK8P,UAAL,CAAgBsW,SAAhB,EAA2BrlB,IAA3B,CAArB;AACD;;AAEDulB,EAAAA,gCAAgC,CAACnmB,IAAD,EAAqC;AACnE,QAAI,KAAK+lB,wBAAL,CAA8B/lB,IAA9B,CAAJ,EAAyC;AAEvC,WAAKgmB,yBAAL,CACEhmB,IADF,EAEE,KAAK0P,SAAL,EAFF,EAGE,wBAHF,EAIE,0BAJF;AAMA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDijC,EAAAA,6BAA6B,CAAC3yC,IAAD,EAAqC;AAChE,QAAI,KAAK1B,KAAL,CAAW4Q,KAAE,CAAC/W,IAAd,CAAJ,EAAyB;AACvB,YAAM8tB,SAAS,GAAG,KAAKvW,SAAL,EAAlB;AACA,WAAKsE,IAAL;AACA,WAAK0E,gBAAL,CAAsB,IAAtB;AAEA,WAAKsN,yBAAL,CACEhmB,IADF,EAEEimB,SAFF,EAGE,0BAHF,EAIE,4BAJF;AAMA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAED2sB,EAAAA,0BAA0B,CAAC5yC,IAAD,EAA4B;AACpD,QAAI69C,KAAK,GAAG,IAAZ;AACA,SAAKzlC,MAAL,CAAYlJ,KAAE,CAACtZ,MAAf;;AACA,WAAO,CAAC,KAAK+iB,GAAL,CAASzJ,KAAE,CAACnZ,MAAZ,CAAR,EAA6B;AAC3B,UAAI8nD,KAAJ,EAAW;AACTA,QAAAA,KAAK,GAAG,KAAR;AACD,OAFD,MAEO;AAEL,YAAI,KAAKllC,GAAL,CAASzJ,KAAE,CAAC7Y,KAAZ,CAAJ,EAAwB;AACtB,gBAAM,KAAK6T,KAAL,CAAW,KAAKvK,KAAL,CAAW3B,KAAtB,EAA6BuD,MAAM,CAACsB,sBAApC,CAAN;AACD;;AAED,aAAKuV,MAAL,CAAYlJ,KAAE,CAAC/Y,KAAf;AACA,YAAI,KAAKwiB,GAAL,CAASzJ,KAAE,CAACnZ,MAAZ,CAAJ,EAAyB;AAC1B;;AAED,WAAKqwB,oBAAL,CAA0BpmB,IAA1B;AACD;AACF;;AAEDomB,EAAAA,oBAAoB,CAACpmB,IAAD,EAAkC;AACpD,UAAMimB,SAAS,GAAG,KAAKvW,SAAL,EAAlB;AACAuW,IAAAA,SAAS,CAACS,QAAV,GAAqB,KAAKvN,eAAL,CAAqB,IAArB,CAArB;;AACA,QAAI,KAAKe,aAAL,CAAmB,IAAnB,CAAJ,EAA8B;AAC5B+L,MAAAA,SAAS,CAACC,KAAV,GAAkB,KAAK/M,eAAL,EAAlB;AACD,KAFD,MAEO;AACL,WAAK2N,iBAAL,CACEb,SAAS,CAACS,QAAV,CAAmB9xB,IADrB,EAEEqxB,SAAS,CAACjoB,KAFZ,EAGE,IAHF,EAIE,IAJF;AAMAioB,MAAAA,SAAS,CAACC,KAAV,GAAkBD,SAAS,CAACS,QAAV,CAAmBC,OAAnB,EAAlB;AACD;;AACD,SAAK3Z,SAAL,CACEiZ,SAAS,CAACC,KADZ,EAEEnqB,YAFF,EAGE2E,SAHF,EAIE,kBAJF;AAMAV,IAAAA,IAAI,CAAC2Q,UAAL,CAAgB9Q,IAAhB,CAAqB,KAAK8P,UAAL,CAAgBsW,SAAhB,EAA2B,iBAA3B,CAArB;AACD;;AA7iE2D;;AChCvD,MAAM0jC,UAAN,CAAiB;AAAA;AAAA,SAEtBC,YAFsB,GAEM,IAAIz2C,GAAJ,EAFN;AAAA,SAKtB02C,aALsB,GAK0B,IAAIn1D,GAAJ,EAL1B;AAAA,SAStB4rC,qBATsB,GASuB,IAAI5rC,GAAJ,EATvB;AAAA;;AAAA;AAcxB,AAAe,MAAMo1D,iBAAN,CAAwB;AAKrC51D,EAAAA,WAAW,CAACgW,KAAD,EAAuB;AAAA,SAJlC9K,KAIkC,GAJP,EAIO;AAAA,SAFlCkhC,qBAEkC,GAFW,IAAI5rC,GAAJ,EAEX;AAChC,SAAKwV,KAAL,GAAaA,KAAb;AACD;;AAED6J,EAAAA,OAAO,GAAe;AACpB,WAAO,KAAK3U,KAAL,CAAW,KAAKA,KAAL,CAAWC,MAAX,GAAoB,CAA/B,CAAP;AACD;;AAEDyb,EAAAA,KAAK,GAAG;AACN,SAAK1b,KAAL,CAAWS,IAAX,CAAgB,IAAI8pD,UAAJ,EAAhB;AACD;;AAED1uC,EAAAA,IAAI,GAAG;AACL,UAAM8uC,aAAa,GAAG,KAAK3qD,KAAL,CAAW8B,GAAX,EAAtB;AAKA,UAAM6S,OAAO,GAAG,KAAKA,OAAL,EAAhB;;AANK,mCASqBm/B,KAAK,CAAC4R,IAAN,CAAWiF,aAAa,CAACzpB,qBAAzB,CATrB,iCASsE;AAAtE,YAAM,CAAC1rC,IAAD,EAAO+U,GAAP,mBAAN;;AACH,UAAIoK,OAAJ,EAAa;AACX,YAAI,CAACA,OAAO,CAACusB,qBAAR,CAA8BvhC,GAA9B,CAAkCnK,IAAlC,CAAL,EAA8C;AAC5Cmf,UAAAA,OAAO,CAACusB,qBAAR,CAA8BvrC,GAA9B,CAAkCH,IAAlC,EAAwC+U,GAAxC;AACD;AACF,OAJD,MAIO;AACL,aAAKO,KAAL,CAAWP,GAAX,EAAgBpI,MAAM,CAACqD,6BAAvB,EAAsDhQ,IAAtD;AACD;AACF;AACF;;AAEDg0D,EAAAA,kBAAkB,CAChBh0D,IADgB,EAEhB2rB,WAFgB,EAGhB5W,GAHgB,EAIhB;AACA,UAAMg2C,UAAU,GAAG,KAAK5rC,OAAL,EAAnB;AACA,QAAIi2C,SAAS,GAAGrK,UAAU,CAACiK,YAAX,CAAwB7qD,GAAxB,CAA4BnK,IAA5B,CAAhB;;AAEA,QAAI2rB,WAAW,GAAG1jB,2BAAlB,EAA+C;AAC7C,YAAMotD,QAAQ,GAAGD,SAAS,IAAIrK,UAAU,CAACkK,aAAX,CAAyB3qD,GAAzB,CAA6BtK,IAA7B,CAA9B;;AACA,UAAIq1D,QAAJ,EAAc;AACZ,cAAMC,SAAS,GAAGD,QAAQ,GAAGvtD,yBAA7B;AACA,cAAMytD,SAAS,GAAG5pC,WAAW,GAAG7jB,yBAAhC;AAEA,cAAM0tD,OAAO,GAAGH,QAAQ,GAAGptD,2BAA3B;AACA,cAAMwtD,OAAO,GAAG9pC,WAAW,GAAG1jB,2BAA9B;AAKAmtD,QAAAA,SAAS,GAAGI,OAAO,KAAKC,OAAZ,IAAuBH,SAAS,KAAKC,SAAjD;AAEA,YAAI,CAACH,SAAL,EAAgBrK,UAAU,CAACkK,aAAX,CAAyB1oB,MAAzB,CAAgCvsC,IAAhC;AACjB,OAbD,MAaO,IAAI,CAACo1D,SAAL,EAAgB;AACrBrK,QAAAA,UAAU,CAACkK,aAAX,CAAyB90D,GAAzB,CAA6BH,IAA7B,EAAmC2rB,WAAnC;AACD;AACF;;AAED,QAAIypC,SAAJ,EAAe;AACb,WAAK9/C,KAAL,CAAWP,GAAX,EAAgBpI,MAAM,CAACiF,wBAAvB,EAAiD5R,IAAjD;AACD;;AAED+qD,IAAAA,UAAU,CAACiK,YAAX,CAAwB59B,GAAxB,CAA4Bp3B,IAA5B;AACA+qD,IAAAA,UAAU,CAACrf,qBAAX,CAAiCa,MAAjC,CAAwCvsC,IAAxC;AACD;;AAEDgrD,EAAAA,cAAc,CAAChrD,IAAD,EAAe+U,GAAf,EAA4B;AACxC,QAAIg2C,UAAJ;;AADwC,oCAErB,KAAKvgD,KAFgB,mCAET;AAA1BugD,MAAAA,UAA0B;AAC7B,UAAIA,UAAU,CAACiK,YAAX,CAAwB7qD,GAAxB,CAA4BnK,IAA5B,CAAJ,EAAuC;AACxC;;AAED,QAAI+qD,UAAJ,EAAgB;AACdA,MAAAA,UAAU,CAACrf,qBAAX,CAAiCvrC,GAAjC,CAAqCH,IAArC,EAA2C+U,GAA3C;AACD,KAFD,MAEO;AAEL,WAAKO,KAAL,CAAWP,GAAX,EAAgBpI,MAAM,CAACqD,6BAAvB,EAAsDhQ,IAAtD;AACD;AACF;;AArFoC;;ACNxB,MAAM01D,MAAN,SAAqB3F,eAArB,CAAqC;AAQlDzwD,EAAAA,WAAW,CAACW,OAAD,EAAoBsJ,KAApB,EAAmC;AAC5CtJ,IAAAA,OAAO,GAAGkgD,UAAU,CAAClgD,OAAD,CAApB;AACA,UAAMA,OAAN,EAAesJ,KAAf;AAEA,UAAMgiC,YAAY,GAAG,KAAK8D,eAAL,EAArB;AAEA,SAAKpvC,OAAL,GAAeA,OAAf;AACA,SAAK2e,QAAL,GAAgB,KAAK3e,OAAL,CAAas/C,UAAb,KAA4B,QAA5C;AACA,SAAKv5B,KAAL,GAAa,IAAIulB,YAAJ,CAAiB,KAAKj2B,KAAL,CAAWu6B,IAAX,CAAgB,IAAhB,CAAjB,EAAwC,KAAKjxB,QAA7C,CAAb;AACA,SAAKzB,SAAL,GAAiB,IAAImwB,0BAAJ,EAAjB;AACA,SAAKyd,UAAL,GAAkB,IAAImK,iBAAJ,CAAsB,KAAK5/C,KAAL,CAAWu6B,IAAX,CAAgB,IAAhB,CAAtB,CAAlB;AACA,SAAK3lC,OAAL,GAAeyrD,UAAU,CAAC,KAAK11D,OAAL,CAAaiK,OAAd,CAAzB;AACA,SAAKW,QAAL,GAAgB5K,OAAO,CAACu/C,cAAxB;AACD;;AAGDnQ,EAAAA,eAAe,GAA2B;AACxC,WAAO9D,YAAP;AACD;;AAEDhd,EAAAA,KAAK,GAAS;AACZ,QAAIi7B,UAAU,GAAGtc,KAAjB;;AACA,QAAI,KAAKjjC,SAAL,CAAe,eAAf,KAAmC,KAAK2U,QAA5C,EAAsD;AACpD4qC,MAAAA,UAAU,IAAIpc,WAAd;AACD;;AACD,SAAKpnB,KAAL,CAAWE,KAAX,CAAiBpgB,aAAjB;AACA,SAAKqX,SAAL,CAAe+I,KAAf,CAAqBsjC,UAArB;AACA,UAAM30B,IAAI,GAAG,KAAK/Z,SAAL,EAAb;AACA,UAAMga,OAAO,GAAG,KAAKha,SAAL,EAAhB;AACA,SAAK4Z,SAAL;AACAG,IAAAA,IAAI,CAACze,MAAL,GAAc,IAAd;AACA,SAAKwe,aAAL,CAAmBC,IAAnB,EAAyBC,OAAzB;AACAD,IAAAA,IAAI,CAACze,MAAL,GAAc,KAAKrL,KAAL,CAAWqL,MAAzB;AACA,WAAOye,IAAP;AACD;;AA1CiD;;AA6CpD,SAAS8gC,UAAT,CAAoBzrD,OAApB,EAAqD;AACnD,QAAM0rD,SAAqB,GAAG,IAAI91D,GAAJ,EAA9B;;AADmD,wBAE9BoK,OAF8B,eAErB;AAAzB,UAAMG,MAAM,GAAIH,OAAJ,IAAZ;AACH,UAAM,CAAClK,IAAD,EAAOC,OAAP,IAAkBq+C,KAAK,CAACC,OAAN,CAAcl0C,MAAd,IAAwBA,MAAxB,GAAiC,CAACA,MAAD,EAAS,EAAT,CAAzD;AACA,QAAI,CAACurD,SAAS,CAACzrD,GAAV,CAAcnK,IAAd,CAAL,EAA0B41D,SAAS,CAACz1D,GAAV,CAAcH,IAAd,EAAoBC,OAAO,IAAI,EAA/B;AAC3B;;AACD,SAAO21D,SAAP;AACD;;ACpDM,SAASrnC,KAAT,CAAehlB,KAAf,EAA8BtJ,OAA9B,EAAuD;AAC5D,MAAIA,OAAO,IAAIA,OAAO,CAACs/C,UAAR,KAAuB,aAAtC,EAAqD;AACnDt/C,IAAAA,OAAO,qBACFA,OADE,CAAP;;AAGA,QAAI;AACFA,MAAAA,OAAO,CAACs/C,UAAR,GAAqB,QAArB;AACA,YAAM0I,MAAM,GAAG4N,SAAS,CAAC51D,OAAD,EAAUsJ,KAAV,CAAxB;AACA,YAAMusD,GAAG,GAAG7N,MAAM,CAAC15B,KAAP,EAAZ;;AAEA,UAAI05B,MAAM,CAACl+C,iBAAX,EAA8B;AAC5B,eAAO+rD,GAAP;AACD;;AAED,UAAI7N,MAAM,CAACj+C,2BAAX,EAAwC;AAMtC,YAAI;AACF/J,UAAAA,OAAO,CAACs/C,UAAR,GAAqB,QAArB;AACA,iBAAOsW,SAAS,CAAC51D,OAAD,EAAUsJ,KAAV,CAAT,CAA0BglB,KAA1B,EAAP;AACD,SAHD,CAGE,gBAAM;AACT,OAVD,MAUO;AAGLunC,QAAAA,GAAG,CAAChhC,OAAJ,CAAYyqB,UAAZ,GAAyB,QAAzB;AACD;;AAED,aAAOuW,GAAP;AACD,KA1BD,CA0BE,OAAOC,WAAP,EAAoB;AACpB,UAAI;AACF91D,QAAAA,OAAO,CAACs/C,UAAR,GAAqB,QAArB;AACA,eAAOsW,SAAS,CAAC51D,OAAD,EAAUsJ,KAAV,CAAT,CAA0BglB,KAA1B,EAAP;AACD,OAHD,CAGE,iBAAM;;AAER,YAAMwnC,WAAN;AACD;AACF,GAtCD,MAsCO;AACL,WAAOF,SAAS,CAAC51D,OAAD,EAAUsJ,KAAV,CAAT,CAA0BglB,KAA1B,EAAP;AACD;AACF;AAED,AAAO,SAASvK,eAAT,CAAyBza,KAAzB,EAAwCtJ,OAAxC,EAAuE;AAC5E,QAAMgoD,MAAM,GAAG4N,SAAS,CAAC51D,OAAD,EAAUsJ,KAAV,CAAxB;;AACA,MAAI0+C,MAAM,CAAChoD,OAAP,CAAe8/C,UAAnB,EAA+B;AAC7BkI,IAAAA,MAAM,CAACl9C,KAAP,CAAasT,MAAb,GAAsB,IAAtB;AACD;;AACD,SAAO4pC,MAAM,CAACsB,aAAP,EAAP;AACD;AAED;AAEA,SAASsM,SAAT,CAAmB51D,OAAnB,EAAsCsJ,KAAtC,EAA6D;AAC3D,MAAImwC,GAAG,GAAGgc,MAAV;;AACA,MAAIz1D,OAAO,IAAIA,OAAO,CAACiK,OAAvB,EAAgC;AAC9By0C,IAAAA,eAAe,CAAC1+C,OAAO,CAACiK,OAAT,CAAf;AACAwvC,IAAAA,GAAG,GAAGsc,cAAc,CAAC/1D,OAAO,CAACiK,OAAT,CAApB;AACD;;AAED,SAAO,IAAIwvC,GAAJ,CAAQz5C,OAAR,EAAiBsJ,KAAjB,CAAP;AACD;;AAED,MAAM0sD,gBAAkD,GAAG,EAA3D;;AAGA,SAASD,cAAT,CAAwBE,kBAAxB,EAAuE;AACrE,QAAMC,UAAU,GAAG/W,gBAAgB,CAACvB,MAAjB,CAAwB79C,IAAI,IAC7CiK,SAAS,CAACisD,kBAAD,EAAqBl2D,IAArB,CADQ,CAAnB;AAIA,QAAMgZ,GAAG,GAAGm9C,UAAU,CAACtX,IAAX,CAAgB,GAAhB,CAAZ;AACA,MAAInF,GAAG,GAAGuc,gBAAgB,CAACj9C,GAAD,CAA1B;;AACA,MAAI,CAAC0gC,GAAL,EAAU;AACRA,IAAAA,GAAG,GAAGgc,MAAN;;AADQ,0BAEaS,UAFb,eAEyB;AAA5B,YAAM9rD,MAAM,GAAI8rD,UAAJ,IAAZ;AACHzc,MAAAA,GAAG,GAAGoF,YAAY,CAACz0C,MAAD,CAAZ,CAAqBqvC,GAArB,CAAN;AACD;;AACDuc,IAAAA,gBAAgB,CAACj9C,GAAD,CAAhB,GAAwB0gC,GAAxB;AACD;;AACD,SAAOA,GAAP;AACD;;;;;;"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/CHANGELOG.md-565-```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/CHANGELOG.md:566:import(`./section-modules/${link.dataset.entryModule}.js`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/parser/CHANGELOG.md-567-.then(module => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/builder.js-41-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/builder.js:42:    throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/builder.js-43-  }, {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/builder.js-58-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/builder.js:59:      throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/builder.js-60-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/builder.js-78-    } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/builder.js:79:      err.stack += `\n    =============\n${rootStack}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/builder.js-80-      throw err;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/literal.js-72-  for (let i = 1; i < tpl.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/literal.js:73:    const value = `${prefix}${i - 1}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/literal.js-74-    names.push(value);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/formatters.js-9-  return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/formatters.js:10:    code: str => `/* @babel/template */;\n${str}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/formatters.js-11-    validate: () => {},
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/formatters.js-40-const expression = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/formatters.js:41:  code: str => `(\n${str}\n)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/formatters.js-42-  validate: ({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/populate.js-28-      if (!metadata.placeholderNames.has(key)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/populate.js:29:        throw new Error(`Unknown substitution "${key}" given`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/populate.js-30-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/populate.js-37-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/populate.js:38:      e.message = `@babel/template placeholder "${placeholder.name}": ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/template/lib/populate.js-39-      throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toIdentifier.js-20-  if (!(0, _isValidIdentifier.default)(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toIdentifier.js:21:    name = `_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toIdentifier.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toExpression.js-25-  if (!(0, _generated.isExpression)(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toExpression.js:26:    throw new Error(`cannot turn ${node.type} to an expression`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toExpression.js-27-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toKeyAlias.js-29-  if (node.computed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toKeyAlias.js:30:    alias = `[${alias}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toKeyAlias.js-31-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toKeyAlias.js-33-  if (node.static) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toKeyAlias.js:34:    alias = `static:${alias}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toKeyAlias.js-35-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toStatement.js-37-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toStatement.js:38:      throw new Error(`cannot turn ${node.type} to a statement`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/converters/toStatement.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-100-    for (let i = 0; i < val.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js:101:      const subkey = `${key}[${i}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-102-      const v = val[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-114-    if (values.indexOf(val) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js:115:      throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-116-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-131-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js:132:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js:148:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-149-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-159-    if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js:160:      throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-161-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-185-    if (errors.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js:186:      throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-187-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-219-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js:220:    throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-221-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-266-    if (validTypeOpts.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js:267:      throw new Error(`Unknown type option "${k}" on ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-293-      if (validFieldKeys.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js:294:        throw new Error(`Unknown field key "${k}" on ${type}.${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/utils.js-295-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/es2015.js-440-        if (node.quasis.length !== val.length + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/es2015.js:441:          throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/es2015.js-442-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-347-        if (!(0, _isValidIdentifier.default)(val, false)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js:348:          throw new TypeError(`"${val}" is not a valid identifier name`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-349-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-385-    if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name)) && node.name !== "this") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js:386:      throw new TypeError(`"${node.name}" is not a valid identifier`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-387-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-463-        if (invalid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js:464:          throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-465-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-654-    if (parent[listKey].length > index + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js:655:      throw new TypeError(`RestElement must be last element of ${listKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-656-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-802-    if (node.declarations.length !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js:803:      throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/definitions/core.js-804-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/asserts/assertNode.js-14-    const type = node && node.type || JSON.stringify(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/asserts/assertNode.js:15:    throw new TypeError(`Not a valid node of type "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/asserts/assertNode.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/asserts/generated/index.js-297-  if (!(0, _is.default)(type, node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/asserts/generated/index.js:298:    throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/asserts/generated/index.js-299-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/comments/addComments.js-9-  if (!comments || !node) return node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/comments/addComments.js:10:  const key = `${type}Comments`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/comments/addComments.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/builders/builder.js-20-  if (countArgs > keys.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/builders/builder.js:21:    throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/builders/builder.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/clone/cloneNode.js-47-  } else if (!has(_definitions.NODE_FIELDS, type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/clone/cloneNode.js:48:    throw new Error(`Unknown node type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/lib/clone/cloneNode.js-49-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js-16-writeFile(buildersFile, format(generateBuilders(), buildersFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js:17:console.log(`  ${chalk.green("✔")} Generated builders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js-18-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js-20-writeFile(validatorsFile, format(generateValidators(), validatorsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js:21:console.log(`  ${chalk.green("✔")} Generated validators`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js-22-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js-24-writeFile(assertsFile, format(generateAsserts(), assertsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js:25:console.log(`  ${chalk.green("✔")} Generated asserts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js-28-writeFile(constantsFile, format(generateConstants(), constantsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generateTypeHelpers.js:29:console.log(`  ${chalk.green("✔")} Generated constants`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/docs.js-86-        if (customTypes[key] && customTypes[key][field]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/docs.js:87:          fieldDescription.push(`: ${customTypes[key][field]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/docs.js-88-        } else if (validator) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateBuilders.js-21-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateBuilders.js:22:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateBuilders.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateBuilders.js-37-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateBuilders.js:38:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateBuilders.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateAsserts.js-20-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateAsserts.js:21:      \`Expected type "\${type}" with option \${JSON.stringify((opts: any))}, \` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateAsserts.js:22:        \`but instead got "\${node.type}".\`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateAsserts.js-23-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateConstants.js-12-  Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateConstants.js:13:    output += `export const ${type.toUpperCase()}_TYPES = FLIPPED_ALIAS_KEYS["${type}"];\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateConstants.js-14-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-109-      )}): ${NODE_PREFIX}${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:110:      `declare export { _${functionName} as ${functionName} }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-111-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-115-for (let i = 0; i < t.TYPES.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:116:  let decl = `declare function is${t.TYPES[i]}(node: ?Object, opts?: ?Object): boolean`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-117-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-118-  if (t.NODE_FIELDS[t.TYPES[i]]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:119:    decl += ` %checks (node instanceof ${NODE_PREFIX}${t.TYPES[i]})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-120-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-127-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:128:  `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-129-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:130:  `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-131-  // this smells like "internal API"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-132-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:133:  `declare function buildChildren(node: { children: Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment | ${NODE_PREFIX}JSXEmptyExpression> }): Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-134-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-154-  // converters/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:155:  `declare function ensureBlock(node: ${NODE_PREFIX}, key: string): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-156-  `declare function toBindingIdentifierName(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-157-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:158:  `declare function toBlock(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Expression, parent?: ${NODE_PREFIX}Function | null): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-159-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:160:  `declare function toComputedKey(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}Expression | ${NODE_PREFIX}Identifier): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-161-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:162:  `declare function toExpression(node: ${NODE_PREFIX}ExpressionStatement | ${NODE_PREFIX}Expression | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-163-  `declare function toIdentifier(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-164-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:165:  `declare function toKeyAlias(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-166-  // toSequenceExpression relies on types that aren't declared in flow
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-167-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:168:  `declare function toStatement(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function | ${NODE_PREFIX}AssignmentExpression, ignore?: boolean): ${NODE_PREFIX}Statement | void`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:169:  `declare function valueToNode(value: any): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-172-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:173:  `declare function removeTypeDuplicates(types: Array<${NODE_PREFIX}FlowType>): Array<${NODE_PREFIX}FlowType>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-174-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:175:  `declare function appendToMemberExpression(member: ${NODE_PREFIX}MemberExpression, append: ${NODE_PREFIX}, computed?: boolean): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-176-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:177:  `declare function inherits<T: Node>(child: T, parent: ${NODE_PREFIX} | null | void): T`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-178-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:179:  `declare function prependToMemberExpression(member: ${NODE_PREFIX}MemberExpression, prepend: ${NODE_PREFIX}Expression): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-180-  `declare function removeProperties<T>(n: T, opts: ?{}): void;`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-184-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:185:  `declare function getBindingIdentifiers(node: ${NODE_PREFIX}, duplicates: boolean, outerOnly?: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-186-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:187:  `declare function getOuterBindingIdentifiers(node: Node, duplicates: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-188-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-235-  code += `type ${NODE_PREFIX}${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js:236:    .map(type => `${NODE_PREFIX}${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/flow.js-237-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateValidators.js-7-  return (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateValidators.js:8:    leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateValidators.js-9-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateValidators.js-72-    const newType = definitions.DEPRECATED_KEYS[type];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateValidators.js:73:    const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/generateValidators.js-74-    output += addIsHelper(type, null, deprecated);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-97-    if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:98:      struct.push(`${fieldName}: ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-99-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:100:      struct.push(`"${fieldName}": ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-101-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-110-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:111:      `export function ${toFunctionName(type)}(${args.join(", ")}): ${type};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-112-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-115-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:116:      `declare function _${functionName}(${args.join(", ")}): ${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:117:      `export { _${functionName} as ${functionName}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-118-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-124-    t.NODE_FIELDS[typeName] || t.FLIPPED_ALIAS_KEYS[typeName]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:125:      ? `node is ${typeName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-126-      : "boolean";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-128-  lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:129:    `export function is${typeName}(node: object | null | undefined, opts?: object | null): ${result};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-130-    // TypeScript 3.7: https://github.com/microsoft/TypeScript/pull/32695 will allow assert declarations
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-311-  code += `/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:312: * @deprecated Use \`${t.DEPRECATED_KEYS[type]}\`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-313- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-320-  code += `export type ${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:321:    .map(type => `${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-322-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-327-for (const type in t.FLIPPED_ALIAS_KEYS) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js:328:  code += `  ${type}: ${type};\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/generators/typescript.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/utils/stringifyValidator.js-6-  if (validator.each) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/utils/stringifyValidator.js:7:    return `Array<${stringifyValidator(validator.each, nodePrefix)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helper-simple-access/node_modules/@babel/types/scripts/utils/stringifyValidator.js-8-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/lib/index.js-50-      if (!_helpers.default[name]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/lib/index.js:51:        throw child.buildCodeFrameError(`Unknown helper ${name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/lib/index.js-52-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/lib/index.js-229-    if (!helper) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/lib/index.js:230:      throw Object.assign(new ReferenceError(`Unknown helper ${name}`), {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/lib/index.js-231-        code: "BABEL_HELPER_UNKNOWN",
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/lib/index.js-242-        return new fileClass({
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/lib/index.js:243:          filename: `babel-helper://${name}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/lib/index.js-244-        }, file);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/source-map/dist/source-map.min.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///source-map.min.js","webpack:///webpack/bootstrap 42c329f865e32e011afb","webpack:///./source-map.js","webpack:///./lib/source-map-generator.js","webpack:///./lib/base64-vlq.js","webpack:///./lib/base64.js","webpack:///./lib/util.js","webpack:///./lib/array-set.js","webpack:///./lib/mapping-list.js","webpack:///./lib/source-map-consumer.js","webpack:///./lib/binary-search.js","webpack:///./lib/quick-sort.js","webpack:///./lib/source-node.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","SourceMapGenerator","SourceMapConsumer","SourceNode","aArgs","_file","util","getArg","_sourceRoot","_skipValidation","_sources","ArraySet","_names","_mappings","MappingList","_sourcesContents","base64VLQ","prototype","_version","fromSourceMap","aSourceMapConsumer","sourceRoot","generator","file","eachMapping","mapping","newMapping","generated","line","generatedLine","column","generatedColumn","source","relative","original","originalLine","originalColumn","name","addMapping","sources","forEach","sourceFile","content","sourceContentFor","setSourceContent","_validateMapping","String","has","add","aSourceFile","aSourceContent","Object","create","toSetString","keys","length","applySourceMap","aSourceMapPath","Error","newSources","newNames","unsortedForEach","originalPositionFor","join","aGenerated","aOriginal","aSource","aName","JSON","stringify","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedColumn","previousGeneratedLine","previousOriginalColumn","previousOriginalLine","previousName","previousSource","result","mappings","toArray","i","len","compareByGeneratedPositionsInflated","encode","indexOf","_generateSourcesContent","aSources","aSourceRoot","map","key","hasOwnProperty","toJSON","version","names","sourcesContent","toString","toVLQSigned","aValue","fromVLQSigned","isNegative","shifted","base64","VLQ_BASE_SHIFT","VLQ_BASE","VLQ_BASE_MASK","VLQ_CONTINUATION_BIT","digit","encoded","vlq","decode","aStr","aIndex","aOutParam","continuation","strLen","shift","charCodeAt","charAt","value","rest","intToCharMap","split","number","TypeError","charCode","bigA","bigZ","littleA","littleZ","zero","nine","plus","slash","littleOffset","numberOffset","aDefaultValue","arguments","urlParse","aUrl","match","urlRegexp","scheme","auth","host","port","path","urlGenerate","aParsedUrl","url","normalize","aPath","part","isAbsolute","parts","up","splice","aRoot","aPathUrl","aRootUrl","dataUrlRegexp","joined","replace","level","index","lastIndexOf","slice","Array","substr","identity","s","isProtoString","fromSetString","compareByOriginalPositions","mappingA","mappingB","onlyCompareOriginal","cmp","compareByGeneratedPositionsDeflated","onlyCompareGenerated","strcmp","aStr1","aStr2","supportsNullProto","obj","_array","_set","hasNativeMap","Map","fromArray","aArray","aAllowDuplicates","set","size","getOwnPropertyNames","sStr","isDuplicate","idx","push","get","at","aIdx","generatedPositionAfter","lineA","lineB","columnA","columnB","_sorted","_last","aCallback","aThisArg","aMapping","sort","aSourceMap","sourceMap","parse","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","Mapping","lastOffset","_sections","offset","offsetLine","offsetColumn","generatedOffset","consumer","binarySearch","quickSort","__generatedMappings","defineProperty","_parseMappings","__originalMappings","_charIsMappingSeparator","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","aContext","aOrder","context","order","_generatedMappings","_originalMappings","allGeneratedPositionsFor","needle","_findMapping","undefined","lastColumn","smc","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","str","segment","end","cachedSegments","temp","originalMappings","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","search","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","some","sc","nullOnMissing","fileUriAbsPath","generatedPositionFor","constructor","j","sectionIndex","section","bias","every","generatedPosition","ret","sectionMappings","adjustedMapping","recursiveSearch","aLow","aHigh","aHaystack","aCompare","mid","Math","floor","swap","ary","x","y","randomIntInRange","low","high","round","random","doQuickSort","comparator","r","pivotIndex","pivot","q","aLine","aColumn","aChunks","children","sourceContents","isSourceNode","REGEX_NEWLINE","NEWLINE_CODE","fromStringWithSourceMap","aGeneratedCode","aRelativePath","addMappingWithCode","code","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lineContents","newLine","lastGeneratedLine","lastMapping","nextLine","aChunk","isArray","chunk","prepend","unshift","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent"],"mappings":"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","file":"source-map.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/*\n\t * Copyright 2009-2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE.txt or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\texports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\texports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;\n\texports.SourceNode = __webpack_require__(10).SourceNode;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar base64VLQ = __webpack_require__(2);\n\tvar util = __webpack_require__(4);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar MappingList = __webpack_require__(6).MappingList;\n\t\n\t/**\n\t * An instance of the SourceMapGenerator represents a source map which is\n\t * being built incrementally. You may pass an object with the following\n\t * properties:\n\t *\n\t *   - file: The filename of the generated source.\n\t *   - sourceRoot: A root for all relative URLs in this source map.\n\t */\n\tfunction SourceMapGenerator(aArgs) {\n\t  if (!aArgs) {\n\t    aArgs = {};\n\t  }\n\t  this._file = util.getArg(aArgs, 'file', null);\n\t  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n\t  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t  this._mappings = new MappingList();\n\t  this._sourcesContents = null;\n\t}\n\t\n\tSourceMapGenerator.prototype._version = 3;\n\t\n\t/**\n\t * Creates a new SourceMapGenerator based on a SourceMapConsumer\n\t *\n\t * @param aSourceMapConsumer The SourceMap.\n\t */\n\tSourceMapGenerator.fromSourceMap =\n\t  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n\t    var sourceRoot = aSourceMapConsumer.sourceRoot;\n\t    var generator = new SourceMapGenerator({\n\t      file: aSourceMapConsumer.file,\n\t      sourceRoot: sourceRoot\n\t    });\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      var newMapping = {\n\t        generated: {\n\t          line: mapping.generatedLine,\n\t          column: mapping.generatedColumn\n\t        }\n\t      };\n\t\n\t      if (mapping.source != null) {\n\t        newMapping.source = mapping.source;\n\t        if (sourceRoot != null) {\n\t          newMapping.source = util.relative(sourceRoot, newMapping.source);\n\t        }\n\t\n\t        newMapping.original = {\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        };\n\t\n\t        if (mapping.name != null) {\n\t          newMapping.name = mapping.name;\n\t        }\n\t      }\n\t\n\t      generator.addMapping(newMapping);\n\t    });\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        generator.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t    return generator;\n\t  };\n\t\n\t/**\n\t * Add a single mapping from original source line and column to the generated\n\t * source's line and column for this source map being created. The mapping\n\t * object should have the following properties:\n\t *\n\t *   - generated: An object with the generated line and column positions.\n\t *   - original: An object with the original line and column positions.\n\t *   - source: The original source file (relative to the sourceRoot).\n\t *   - name: An optional original token name for this mapping.\n\t */\n\tSourceMapGenerator.prototype.addMapping =\n\t  function SourceMapGenerator_addMapping(aArgs) {\n\t    var generated = util.getArg(aArgs, 'generated');\n\t    var original = util.getArg(aArgs, 'original', null);\n\t    var source = util.getArg(aArgs, 'source', null);\n\t    var name = util.getArg(aArgs, 'name', null);\n\t\n\t    if (!this._skipValidation) {\n\t      this._validateMapping(generated, original, source, name);\n\t    }\n\t\n\t    if (source != null) {\n\t      source = String(source);\n\t      if (!this._sources.has(source)) {\n\t        this._sources.add(source);\n\t      }\n\t    }\n\t\n\t    if (name != null) {\n\t      name = String(name);\n\t      if (!this._names.has(name)) {\n\t        this._names.add(name);\n\t      }\n\t    }\n\t\n\t    this._mappings.add({\n\t      generatedLine: generated.line,\n\t      generatedColumn: generated.column,\n\t      originalLine: original != null && original.line,\n\t      originalColumn: original != null && original.column,\n\t      source: source,\n\t      name: name\n\t    });\n\t  };\n\t\n\t/**\n\t * Set the source content for a source file.\n\t */\n\tSourceMapGenerator.prototype.setSourceContent =\n\t  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n\t    var source = aSourceFile;\n\t    if (this._sourceRoot != null) {\n\t      source = util.relative(this._sourceRoot, source);\n\t    }\n\t\n\t    if (aSourceContent != null) {\n\t      // Add the source content to the _sourcesContents map.\n\t      // Create a new _sourcesContents map if the property is null.\n\t      if (!this._sourcesContents) {\n\t        this._sourcesContents = Object.create(null);\n\t      }\n\t      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n\t    } else if (this._sourcesContents) {\n\t      // Remove the source file from the _sourcesContents map.\n\t      // If the _sourcesContents map is empty, set the property to null.\n\t      delete this._sourcesContents[util.toSetString(source)];\n\t      if (Object.keys(this._sourcesContents).length === 0) {\n\t        this._sourcesContents = null;\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Applies the mappings of a sub-source-map for a specific source file to the\n\t * source map being generated. Each mapping to the supplied source file is\n\t * rewritten using the supplied source map. Note: The resolution for the\n\t * resulting mappings is the minimium of this map and the supplied map.\n\t *\n\t * @param aSourceMapConsumer The source map to be applied.\n\t * @param aSourceFile Optional. The filename of the source file.\n\t *        If omitted, SourceMapConsumer's file property will be used.\n\t * @param aSourceMapPath Optional. The dirname of the path to the source map\n\t *        to be applied. If relative, it is relative to the SourceMapConsumer.\n\t *        This parameter is needed when the two source maps aren't in the same\n\t *        directory, and the source map to be applied contains relative source\n\t *        paths. If so, those relative source paths need to be rewritten\n\t *        relative to the SourceMapGenerator.\n\t */\n\tSourceMapGenerator.prototype.applySourceMap =\n\t  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n\t    var sourceFile = aSourceFile;\n\t    // If aSourceFile is omitted, we will use the file property of the SourceMap\n\t    if (aSourceFile == null) {\n\t      if (aSourceMapConsumer.file == null) {\n\t        throw new Error(\n\t          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n\t          'or the source map\\'s \"file\" property. Both were omitted.'\n\t        );\n\t      }\n\t      sourceFile = aSourceMapConsumer.file;\n\t    }\n\t    var sourceRoot = this._sourceRoot;\n\t    // Make \"sourceFile\" relative if an absolute Url is passed.\n\t    if (sourceRoot != null) {\n\t      sourceFile = util.relative(sourceRoot, sourceFile);\n\t    }\n\t    // Applying the SourceMap can add and remove items from the sources and\n\t    // the names array.\n\t    var newSources = new ArraySet();\n\t    var newNames = new ArraySet();\n\t\n\t    // Find mappings for the \"sourceFile\"\n\t    this._mappings.unsortedForEach(function (mapping) {\n\t      if (mapping.source === sourceFile && mapping.originalLine != null) {\n\t        // Check if it can be mapped by the source map, then update the mapping.\n\t        var original = aSourceMapConsumer.originalPositionFor({\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        });\n\t        if (original.source != null) {\n\t          // Copy mapping\n\t          mapping.source = original.source;\n\t          if (aSourceMapPath != null) {\n\t            mapping.source = util.join(aSourceMapPath, mapping.source)\n\t          }\n\t          if (sourceRoot != null) {\n\t            mapping.source = util.relative(sourceRoot, mapping.source);\n\t          }\n\t          mapping.originalLine = original.line;\n\t          mapping.originalColumn = original.column;\n\t          if (original.name != null) {\n\t            mapping.name = original.name;\n\t          }\n\t        }\n\t      }\n\t\n\t      var source = mapping.source;\n\t      if (source != null && !newSources.has(source)) {\n\t        newSources.add(source);\n\t      }\n\t\n\t      var name = mapping.name;\n\t      if (name != null && !newNames.has(name)) {\n\t        newNames.add(name);\n\t      }\n\t\n\t    }, this);\n\t    this._sources = newSources;\n\t    this._names = newNames;\n\t\n\t    // Copy sourcesContents of applied map.\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aSourceMapPath != null) {\n\t          sourceFile = util.join(aSourceMapPath, sourceFile);\n\t        }\n\t        if (sourceRoot != null) {\n\t          sourceFile = util.relative(sourceRoot, sourceFile);\n\t        }\n\t        this.setSourceContent(sourceFile, content);\n\t      }\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * A mapping can have one of the three levels of data:\n\t *\n\t *   1. Just the generated position.\n\t *   2. The Generated position, original position, and original source.\n\t *   3. Generated and original position, original source, as well as a name\n\t *      token.\n\t *\n\t * To maintain consistency, we validate that any new mapping being added falls\n\t * in to one of these categories.\n\t */\n\tSourceMapGenerator.prototype._validateMapping =\n\t  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n\t                                              aName) {\n\t    // When aOriginal is truthy but has empty values for .line and .column,\n\t    // it is most likely a programmer error. In this case we throw a very\n\t    // specific error message to try to guide them the right way.\n\t    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n\t    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n\t        throw new Error(\n\t            'original.line and original.column are not numbers -- you probably meant to omit ' +\n\t            'the original mapping entirely and only map the generated position. If so, pass ' +\n\t            'null for the original mapping instead of an object with empty or null values.'\n\t        );\n\t    }\n\t\n\t    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t        && aGenerated.line > 0 && aGenerated.column >= 0\n\t        && !aOriginal && !aSource && !aName) {\n\t      // Case 1.\n\t      return;\n\t    }\n\t    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n\t             && aGenerated.line > 0 && aGenerated.column >= 0\n\t             && aOriginal.line > 0 && aOriginal.column >= 0\n\t             && aSource) {\n\t      // Cases 2 and 3.\n\t      return;\n\t    }\n\t    else {\n\t      throw new Error('Invalid mapping: ' + JSON.stringify({\n\t        generated: aGenerated,\n\t        source: aSource,\n\t        original: aOriginal,\n\t        name: aName\n\t      }));\n\t    }\n\t  };\n\t\n\t/**\n\t * Serialize the accumulated mappings in to the stream of base 64 VLQs\n\t * specified by the source map format.\n\t */\n\tSourceMapGenerator.prototype._serializeMappings =\n\t  function SourceMapGenerator_serializeMappings() {\n\t    var previousGeneratedColumn = 0;\n\t    var previousGeneratedLine = 1;\n\t    var previousOriginalColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousName = 0;\n\t    var previousSource = 0;\n\t    var result = '';\n\t    var next;\n\t    var mapping;\n\t    var nameIdx;\n\t    var sourceIdx;\n\t\n\t    var mappings = this._mappings.toArray();\n\t    for (var i = 0, len = mappings.length; i < len; i++) {\n\t      mapping = mappings[i];\n\t      next = ''\n\t\n\t      if (mapping.generatedLine !== previousGeneratedLine) {\n\t        previousGeneratedColumn = 0;\n\t        while (mapping.generatedLine !== previousGeneratedLine) {\n\t          next += ';';\n\t          previousGeneratedLine++;\n\t        }\n\t      }\n\t      else {\n\t        if (i > 0) {\n\t          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n\t            continue;\n\t          }\n\t          next += ',';\n\t        }\n\t      }\n\t\n\t      next += base64VLQ.encode(mapping.generatedColumn\n\t                                 - previousGeneratedColumn);\n\t      previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t      if (mapping.source != null) {\n\t        sourceIdx = this._sources.indexOf(mapping.source);\n\t        next += base64VLQ.encode(sourceIdx - previousSource);\n\t        previousSource = sourceIdx;\n\t\n\t        // lines are stored 0-based in SourceMap spec version 3\n\t        next += base64VLQ.encode(mapping.originalLine - 1\n\t                                   - previousOriginalLine);\n\t        previousOriginalLine = mapping.originalLine - 1;\n\t\n\t        next += base64VLQ.encode(mapping.originalColumn\n\t                                   - previousOriginalColumn);\n\t        previousOriginalColumn = mapping.originalColumn;\n\t\n\t        if (mapping.name != null) {\n\t          nameIdx = this._names.indexOf(mapping.name);\n\t          next += base64VLQ.encode(nameIdx - previousName);\n\t          previousName = nameIdx;\n\t        }\n\t      }\n\t\n\t      result += next;\n\t    }\n\t\n\t    return result;\n\t  };\n\t\n\tSourceMapGenerator.prototype._generateSourcesContent =\n\t  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n\t    return aSources.map(function (source) {\n\t      if (!this._sourcesContents) {\n\t        return null;\n\t      }\n\t      if (aSourceRoot != null) {\n\t        source = util.relative(aSourceRoot, source);\n\t      }\n\t      var key = util.toSetString(source);\n\t      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n\t        ? this._sourcesContents[key]\n\t        : null;\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * Externalize the source map.\n\t */\n\tSourceMapGenerator.prototype.toJSON =\n\t  function SourceMapGenerator_toJSON() {\n\t    var map = {\n\t      version: this._version,\n\t      sources: this._sources.toArray(),\n\t      names: this._names.toArray(),\n\t      mappings: this._serializeMappings()\n\t    };\n\t    if (this._file != null) {\n\t      map.file = this._file;\n\t    }\n\t    if (this._sourceRoot != null) {\n\t      map.sourceRoot = this._sourceRoot;\n\t    }\n\t    if (this._sourcesContents) {\n\t      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n\t    }\n\t\n\t    return map;\n\t  };\n\t\n\t/**\n\t * Render the source map being generated to a string.\n\t */\n\tSourceMapGenerator.prototype.toString =\n\t  function SourceMapGenerator_toString() {\n\t    return JSON.stringify(this.toJSON());\n\t  };\n\t\n\texports.SourceMapGenerator = SourceMapGenerator;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t *  * Redistributions of source code must retain the above copyright\n\t *    notice, this list of conditions and the following disclaimer.\n\t *  * Redistributions in binary form must reproduce the above\n\t *    copyright notice, this list of conditions and the following\n\t *    disclaimer in the documentation and/or other materials provided\n\t *    with the distribution.\n\t *  * Neither the name of Google Inc. nor the names of its\n\t *    contributors may be used to endorse or promote products derived\n\t *    from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\t\n\tvar base64 = __webpack_require__(3);\n\t\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t//   Continuation\n\t//   |    Sign\n\t//   |    |\n\t//   V    V\n\t//   101011\n\t\n\tvar VLQ_BASE_SHIFT = 5;\n\t\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\t\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\t\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\t\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t  return aValue < 0\n\t    ? ((-aValue) << 1) + 1\n\t    : (aValue << 1) + 0;\n\t}\n\t\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t  var isNegative = (aValue & 1) === 1;\n\t  var shifted = aValue >> 1;\n\t  return isNegative\n\t    ? -shifted\n\t    : shifted;\n\t}\n\t\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t  var encoded = \"\";\n\t  var digit;\n\t\n\t  var vlq = toVLQSigned(aValue);\n\t\n\t  do {\n\t    digit = vlq & VLQ_BASE_MASK;\n\t    vlq >>>= VLQ_BASE_SHIFT;\n\t    if (vlq > 0) {\n\t      // There are still more digits in this value, so we must make sure the\n\t      // continuation bit is marked.\n\t      digit |= VLQ_CONTINUATION_BIT;\n\t    }\n\t    encoded += base64.encode(digit);\n\t  } while (vlq > 0);\n\t\n\t  return encoded;\n\t};\n\t\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t  var strLen = aStr.length;\n\t  var result = 0;\n\t  var shift = 0;\n\t  var continuation, digit;\n\t\n\t  do {\n\t    if (aIndex >= strLen) {\n\t      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t    }\n\t\n\t    digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t    if (digit === -1) {\n\t      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t    }\n\t\n\t    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t    digit &= VLQ_BASE_MASK;\n\t    result = result + (digit << shift);\n\t    shift += VLQ_BASE_SHIFT;\n\t  } while (continuation);\n\t\n\t  aOutParam.value = fromVLQSigned(result);\n\t  aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\t\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t  if (0 <= number && number < intToCharMap.length) {\n\t    return intToCharMap[number];\n\t  }\n\t  throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\t\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t  var bigA = 65;     // 'A'\n\t  var bigZ = 90;     // 'Z'\n\t\n\t  var littleA = 97;  // 'a'\n\t  var littleZ = 122; // 'z'\n\t\n\t  var zero = 48;     // '0'\n\t  var nine = 57;     // '9'\n\t\n\t  var plus = 43;     // '+'\n\t  var slash = 47;    // '/'\n\t\n\t  var littleOffset = 26;\n\t  var numberOffset = 52;\n\t\n\t  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t  if (bigA <= charCode && charCode <= bigZ) {\n\t    return (charCode - bigA);\n\t  }\n\t\n\t  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t  if (littleA <= charCode && charCode <= littleZ) {\n\t    return (charCode - littleA + littleOffset);\n\t  }\n\t\n\t  // 52 - 61: 0123456789\n\t  if (zero <= charCode && charCode <= nine) {\n\t    return (charCode - zero + numberOffset);\n\t  }\n\t\n\t  // 62: +\n\t  if (charCode == plus) {\n\t    return 62;\n\t  }\n\t\n\t  // 63: /\n\t  if (charCode == slash) {\n\t    return 63;\n\t  }\n\t\n\t  // Invalid base64 digit.\n\t  return -1;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t  if (aName in aArgs) {\n\t    return aArgs[aName];\n\t  } else if (arguments.length === 3) {\n\t    return aDefaultValue;\n\t  } else {\n\t    throw new Error('\"' + aName + '\" is a required argument.');\n\t  }\n\t}\n\texports.getArg = getArg;\n\t\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\t\n\tfunction urlParse(aUrl) {\n\t  var match = aUrl.match(urlRegexp);\n\t  if (!match) {\n\t    return null;\n\t  }\n\t  return {\n\t    scheme: match[1],\n\t    auth: match[2],\n\t    host: match[3],\n\t    port: match[4],\n\t    path: match[5]\n\t  };\n\t}\n\texports.urlParse = urlParse;\n\t\n\tfunction urlGenerate(aParsedUrl) {\n\t  var url = '';\n\t  if (aParsedUrl.scheme) {\n\t    url += aParsedUrl.scheme + ':';\n\t  }\n\t  url += '//';\n\t  if (aParsedUrl.auth) {\n\t    url += aParsedUrl.auth + '@';\n\t  }\n\t  if (aParsedUrl.host) {\n\t    url += aParsedUrl.host;\n\t  }\n\t  if (aParsedUrl.port) {\n\t    url += \":\" + aParsedUrl.port\n\t  }\n\t  if (aParsedUrl.path) {\n\t    url += aParsedUrl.path;\n\t  }\n\t  return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\t\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t  var path = aPath;\n\t  var url = urlParse(aPath);\n\t  if (url) {\n\t    if (!url.path) {\n\t      return aPath;\n\t    }\n\t    path = url.path;\n\t  }\n\t  var isAbsolute = exports.isAbsolute(path);\n\t\n\t  var parts = path.split(/\\/+/);\n\t  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t    part = parts[i];\n\t    if (part === '.') {\n\t      parts.splice(i, 1);\n\t    } else if (part === '..') {\n\t      up++;\n\t    } else if (up > 0) {\n\t      if (part === '') {\n\t        // The first part is blank if the path is absolute. Trying to go\n\t        // above the root is a no-op. Therefore we can remove all '..' parts\n\t        // directly after the root.\n\t        parts.splice(i + 1, up);\n\t        up = 0;\n\t      } else {\n\t        parts.splice(i, 2);\n\t        up--;\n\t      }\n\t    }\n\t  }\n\t  path = parts.join('/');\n\t\n\t  if (path === '') {\n\t    path = isAbsolute ? '/' : '.';\n\t  }\n\t\n\t  if (url) {\n\t    url.path = path;\n\t    return urlGenerate(url);\n\t  }\n\t  return path;\n\t}\n\texports.normalize = normalize;\n\t\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t *   first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t *   is updated with the result and aRoot is returned. Otherwise the result\n\t *   is returned.\n\t *   - If aPath is absolute, the result is aPath.\n\t *   - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t  if (aPath === \"\") {\n\t    aPath = \".\";\n\t  }\n\t  var aPathUrl = urlParse(aPath);\n\t  var aRootUrl = urlParse(aRoot);\n\t  if (aRootUrl) {\n\t    aRoot = aRootUrl.path || '/';\n\t  }\n\t\n\t  // `join(foo, '//www.example.org')`\n\t  if (aPathUrl && !aPathUrl.scheme) {\n\t    if (aRootUrl) {\n\t      aPathUrl.scheme = aRootUrl.scheme;\n\t    }\n\t    return urlGenerate(aPathUrl);\n\t  }\n\t\n\t  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t    return aPath;\n\t  }\n\t\n\t  // `join('http://', 'www.example.com')`\n\t  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t    aRootUrl.host = aPath;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t\n\t  var joined = aPath.charAt(0) === '/'\n\t    ? aPath\n\t    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\t\n\t  if (aRootUrl) {\n\t    aRootUrl.path = joined;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t  return joined;\n\t}\n\texports.join = join;\n\t\n\texports.isAbsolute = function (aPath) {\n\t  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\t\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t\n\t  aRoot = aRoot.replace(/\\/$/, '');\n\t\n\t  // It is possible for the path to be above the root. In this case, simply\n\t  // checking whether the root is a prefix of the path won't work. Instead, we\n\t  // need to remove components from the root one by one, until either we find\n\t  // a prefix that fits, or we run out of components to remove.\n\t  var level = 0;\n\t  while (aPath.indexOf(aRoot + '/') !== 0) {\n\t    var index = aRoot.lastIndexOf(\"/\");\n\t    if (index < 0) {\n\t      return aPath;\n\t    }\n\t\n\t    // If the only part of the root that is left is the scheme (i.e. http://,\n\t    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t    // have exhausted all components, so the path is not relative to the root.\n\t    aRoot = aRoot.slice(0, index);\n\t    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t      return aPath;\n\t    }\n\t\n\t    ++level;\n\t  }\n\t\n\t  // Make sure we add a \"../\" for each component we removed from the root.\n\t  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\t\n\tvar supportsNullProto = (function () {\n\t  var obj = Object.create(null);\n\t  return !('__proto__' in obj);\n\t}());\n\t\n\tfunction identity (s) {\n\t  return s;\n\t}\n\t\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return '$' + aStr;\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\t\n\tfunction fromSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return aStr.slice(1);\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\t\n\tfunction isProtoString(s) {\n\t  if (!s) {\n\t    return false;\n\t  }\n\t\n\t  var length = s.length;\n\t\n\t  if (length < 9 /* \"__proto__\".length */) {\n\t    return false;\n\t  }\n\t\n\t  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n\t    return false;\n\t  }\n\t\n\t  for (var i = length - 10; i >= 0; i--) {\n\t    if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t      return false;\n\t    }\n\t  }\n\t\n\t  return true;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t  var cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0 || onlyCompareOriginal) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\t\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0 || onlyCompareGenerated) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\t\n\tfunction strcmp(aStr1, aStr2) {\n\t  if (aStr1 === aStr2) {\n\t    return 0;\n\t  }\n\t\n\t  if (aStr1 > aStr2) {\n\t    return 1;\n\t  }\n\t\n\t  return -1;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar hasNativeMap = typeof Map !== \"undefined\";\n\t\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t  this._array = [];\n\t  this._set = hasNativeMap ? new Map() : Object.create(null);\n\t}\n\t\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t  var set = new ArraySet();\n\t  for (var i = 0, len = aArray.length; i < len; i++) {\n\t    set.add(aArray[i], aAllowDuplicates);\n\t  }\n\t  return set;\n\t};\n\t\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n\t};\n\t\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n\t  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n\t  var idx = this._array.length;\n\t  if (!isDuplicate || aAllowDuplicates) {\n\t    this._array.push(aStr);\n\t  }\n\t  if (!isDuplicate) {\n\t    if (hasNativeMap) {\n\t      this._set.set(aStr, idx);\n\t    } else {\n\t      this._set[sStr] = idx;\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t  if (hasNativeMap) {\n\t    return this._set.has(aStr);\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    return has.call(this._set, sStr);\n\t  }\n\t};\n\t\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t  if (hasNativeMap) {\n\t    var idx = this._set.get(aStr);\n\t    if (idx >= 0) {\n\t        return idx;\n\t    }\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    if (has.call(this._set, sStr)) {\n\t      return this._set[sStr];\n\t    }\n\t  }\n\t\n\t  throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\t\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t  if (aIdx >= 0 && aIdx < this._array.length) {\n\t    return this._array[aIdx];\n\t  }\n\t  throw new Error('No element indexed by ' + aIdx);\n\t};\n\t\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t  return this._array.slice();\n\t};\n\t\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2014 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\t\n\t/**\n\t * Determine whether mappingB is after mappingA with respect to generated\n\t * position.\n\t */\n\tfunction generatedPositionAfter(mappingA, mappingB) {\n\t  // Optimized for most common case\n\t  var lineA = mappingA.generatedLine;\n\t  var lineB = mappingB.generatedLine;\n\t  var columnA = mappingA.generatedColumn;\n\t  var columnB = mappingB.generatedColumn;\n\t  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n\t         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n\t}\n\t\n\t/**\n\t * A data structure to provide a sorted view of accumulated mappings in a\n\t * performance conscious manner. It trades a neglibable overhead in general\n\t * case for a large speedup in case of mappings being added in order.\n\t */\n\tfunction MappingList() {\n\t  this._array = [];\n\t  this._sorted = true;\n\t  // Serves as infimum\n\t  this._last = {generatedLine: -1, generatedColumn: 0};\n\t}\n\t\n\t/**\n\t * Iterate through internal items. This method takes the same arguments that\n\t * `Array.prototype.forEach` takes.\n\t *\n\t * NOTE: The order of the mappings is NOT guaranteed.\n\t */\n\tMappingList.prototype.unsortedForEach =\n\t  function MappingList_forEach(aCallback, aThisArg) {\n\t    this._array.forEach(aCallback, aThisArg);\n\t  };\n\t\n\t/**\n\t * Add the given source mapping.\n\t *\n\t * @param Object aMapping\n\t */\n\tMappingList.prototype.add = function MappingList_add(aMapping) {\n\t  if (generatedPositionAfter(this._last, aMapping)) {\n\t    this._last = aMapping;\n\t    this._array.push(aMapping);\n\t  } else {\n\t    this._sorted = false;\n\t    this._array.push(aMapping);\n\t  }\n\t};\n\t\n\t/**\n\t * Returns the flat, sorted array of mappings. The mappings are sorted by\n\t * generated position.\n\t *\n\t * WARNING: This method returns internal data without copying, for\n\t * performance. The return value must NOT be mutated, and should be treated as\n\t * an immutable borrow. If you want to take ownership, you must make your own\n\t * copy.\n\t */\n\tMappingList.prototype.toArray = function MappingList_toArray() {\n\t  if (!this._sorted) {\n\t    this._array.sort(util.compareByGeneratedPositionsInflated);\n\t    this._sorted = true;\n\t  }\n\t  return this._array;\n\t};\n\t\n\texports.MappingList = MappingList;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar binarySearch = __webpack_require__(8);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar base64VLQ = __webpack_require__(2);\n\tvar quickSort = __webpack_require__(9).quickSort;\n\t\n\tfunction SourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  return sourceMap.sections != null\n\t    ? new IndexedSourceMapConsumer(sourceMap)\n\t    : new BasicSourceMapConsumer(sourceMap);\n\t}\n\t\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\t\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t//     {\n\t//       generatedLine: The line number in the generated code,\n\t//       generatedColumn: The column number in the generated code,\n\t//       source: The path to the original source file that generated this\n\t//               chunk of code,\n\t//       originalLine: The line number in the original source that\n\t//                     corresponds to this chunk of generated code,\n\t//       originalColumn: The column number in the original source that\n\t//                       corresponds to this chunk of generated code,\n\t//       name: The name of the original symbol which generated this chunk of\n\t//             code.\n\t//     }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\t\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t  get: function () {\n\t    if (!this.__generatedMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__generatedMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t  get: function () {\n\t    if (!this.__originalMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__originalMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t    var c = aStr.charAt(index);\n\t    return c === \";\" || c === \",\";\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    throw new Error(\"Subclasses must implement _parseMappings\");\n\t  };\n\t\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\t\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t *        The function that is called with each mapping.\n\t * @param Object aContext\n\t *        Optional. If specified, this object will be the value of `this` every\n\t *        time that `aCallback` is called.\n\t * @param aOrder\n\t *        Either `SourceMapConsumer.GENERATED_ORDER` or\n\t *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t *        iterate over the mappings sorted by the generated file's line/column\n\t *        order or the original's source/line/column order, respectively. Defaults to\n\t *        `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t    var context = aContext || null;\n\t    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\t\n\t    var mappings;\n\t    switch (order) {\n\t    case SourceMapConsumer.GENERATED_ORDER:\n\t      mappings = this._generatedMappings;\n\t      break;\n\t    case SourceMapConsumer.ORIGINAL_ORDER:\n\t      mappings = this._originalMappings;\n\t      break;\n\t    default:\n\t      throw new Error(\"Unknown order of iteration.\");\n\t    }\n\t\n\t    var sourceRoot = this.sourceRoot;\n\t    mappings.map(function (mapping) {\n\t      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t      if (source != null && sourceRoot != null) {\n\t        source = util.join(sourceRoot, source);\n\t      }\n\t      return {\n\t        source: source,\n\t        generatedLine: mapping.generatedLine,\n\t        generatedColumn: mapping.generatedColumn,\n\t        originalLine: mapping.originalLine,\n\t        originalColumn: mapping.originalColumn,\n\t        name: mapping.name === null ? null : this._names.at(mapping.name)\n\t      };\n\t    }, this).forEach(aCallback, context);\n\t  };\n\t\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t    var line = util.getArg(aArgs, 'line');\n\t\n\t    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t    // returns the index of the closest mapping less than the needle. By\n\t    // setting needle.originalColumn to 0, we thus find the last mapping for\n\t    // the given line, provided such a mapping exists.\n\t    var needle = {\n\t      source: util.getArg(aArgs, 'source'),\n\t      originalLine: line,\n\t      originalColumn: util.getArg(aArgs, 'column', 0)\n\t    };\n\t\n\t    if (this.sourceRoot != null) {\n\t      needle.source = util.relative(this.sourceRoot, needle.source);\n\t    }\n\t    if (!this._sources.has(needle.source)) {\n\t      return [];\n\t    }\n\t    needle.source = this._sources.indexOf(needle.source);\n\t\n\t    var mappings = [];\n\t\n\t    var index = this._findMapping(needle,\n\t                                  this._originalMappings,\n\t                                  \"originalLine\",\n\t                                  \"originalColumn\",\n\t                                  util.compareByOriginalPositions,\n\t                                  binarySearch.LEAST_UPPER_BOUND);\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (aArgs.column === undefined) {\n\t        var originalLine = mapping.originalLine;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we found. Since\n\t        // mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we found.\n\t        while (mapping && mapping.originalLine === originalLine) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      } else {\n\t        var originalColumn = mapping.originalColumn;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we were searching for.\n\t        // Since mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we are searching for.\n\t        while (mapping &&\n\t               mapping.originalLine === line &&\n\t               mapping.originalColumn == originalColumn) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      }\n\t    }\n\t\n\t    return mappings;\n\t  };\n\t\n\texports.SourceMapConsumer = SourceMapConsumer;\n\t\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - sources: An array of URLs to the original source files.\n\t *   - names: An array of identifiers which can be referrenced by individual mappings.\n\t *   - sourceRoot: Optional. The URL root from which all sources are relative.\n\t *   - sourcesContent: Optional. An array of contents of the original source files.\n\t *   - mappings: A string of base64 VLQs which contain the actual mappings.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t *     {\n\t *       version : 3,\n\t *       file: \"out.js\",\n\t *       sourceRoot : \"\",\n\t *       sources: [\"foo.js\", \"bar.js\"],\n\t *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *       mappings: \"AA,AB;;ABCDE;\"\n\t *     }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sources = util.getArg(sourceMap, 'sources');\n\t  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t  // requires the array) to play nice here.\n\t  var names = util.getArg(sourceMap, 'names', []);\n\t  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t  var mappings = util.getArg(sourceMap, 'mappings');\n\t  var file = util.getArg(sourceMap, 'file', null);\n\t\n\t  // Once again, Sass deviates from the spec and supplies the version as a\n\t  // string rather than a number, so we use loose equality checking here.\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  sources = sources\n\t    .map(String)\n\t    // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n\t    // See bugzil.la/1090768.\n\t    .map(util.normalize)\n\t    // Always ensure that absolute sources are internally stored relative to\n\t    // the source root, if the source root is absolute. Not doing this would\n\t    // be particularly problematic when the source root is a prefix of the\n\t    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t    .map(function (source) {\n\t      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t        ? util.relative(sourceRoot, source)\n\t        : source;\n\t    });\n\t\n\t  // Pass `true` below to allow duplicate names and sources. While source maps\n\t  // are intended to be compressed and deduplicated, the TypeScript compiler\n\t  // sometimes generates source maps with duplicates in them. See Github issue\n\t  // #72 and bugzil.la/889492.\n\t  this._names = ArraySet.fromArray(names.map(String), true);\n\t  this._sources = ArraySet.fromArray(sources, true);\n\t\n\t  this.sourceRoot = sourceRoot;\n\t  this.sourcesContent = sourcesContent;\n\t  this._mappings = mappings;\n\t  this.file = file;\n\t}\n\t\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\t\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t *        The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\t\n\t    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t    smc.sourceRoot = aSourceMap._sourceRoot;\n\t    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t                                                            smc.sourceRoot);\n\t    smc.file = aSourceMap._file;\n\t\n\t    // Because we are modifying the entries (by converting string sources and\n\t    // names to indices into the sources and names ArraySets), we have to make\n\t    // a copy of the entry or else bad things happen. Shared mutable state\n\t    // strikes again! See github issue #191.\n\t\n\t    var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t    var destGeneratedMappings = smc.__generatedMappings = [];\n\t    var destOriginalMappings = smc.__originalMappings = [];\n\t\n\t    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t      var srcMapping = generatedMappings[i];\n\t      var destMapping = new Mapping;\n\t      destMapping.generatedLine = srcMapping.generatedLine;\n\t      destMapping.generatedColumn = srcMapping.generatedColumn;\n\t\n\t      if (srcMapping.source) {\n\t        destMapping.source = sources.indexOf(srcMapping.source);\n\t        destMapping.originalLine = srcMapping.originalLine;\n\t        destMapping.originalColumn = srcMapping.originalColumn;\n\t\n\t        if (srcMapping.name) {\n\t          destMapping.name = names.indexOf(srcMapping.name);\n\t        }\n\t\n\t        destOriginalMappings.push(destMapping);\n\t      }\n\t\n\t      destGeneratedMappings.push(destMapping);\n\t    }\n\t\n\t    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\t\n\t    return smc;\n\t  };\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    return this._sources.toArray().map(function (s) {\n\t      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t    }, this);\n\t  }\n\t});\n\t\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t  this.generatedLine = 0;\n\t  this.generatedColumn = 0;\n\t  this.source = null;\n\t  this.originalLine = null;\n\t  this.originalColumn = null;\n\t  this.name = null;\n\t}\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    var generatedLine = 1;\n\t    var previousGeneratedColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousOriginalColumn = 0;\n\t    var previousSource = 0;\n\t    var previousName = 0;\n\t    var length = aStr.length;\n\t    var index = 0;\n\t    var cachedSegments = {};\n\t    var temp = {};\n\t    var originalMappings = [];\n\t    var generatedMappings = [];\n\t    var mapping, str, segment, end, value;\n\t\n\t    while (index < length) {\n\t      if (aStr.charAt(index) === ';') {\n\t        generatedLine++;\n\t        index++;\n\t        previousGeneratedColumn = 0;\n\t      }\n\t      else if (aStr.charAt(index) === ',') {\n\t        index++;\n\t      }\n\t      else {\n\t        mapping = new Mapping();\n\t        mapping.generatedLine = generatedLine;\n\t\n\t        // Because each offset is encoded relative to the previous one,\n\t        // many segments often have the same encoding. We can exploit this\n\t        // fact by caching the parsed variable length fields of each segment,\n\t        // allowing us to avoid a second parse if we encounter the same\n\t        // segment again.\n\t        for (end = index; end < length; end++) {\n\t          if (this._charIsMappingSeparator(aStr, end)) {\n\t            break;\n\t          }\n\t        }\n\t        str = aStr.slice(index, end);\n\t\n\t        segment = cachedSegments[str];\n\t        if (segment) {\n\t          index += str.length;\n\t        } else {\n\t          segment = [];\n\t          while (index < end) {\n\t            base64VLQ.decode(aStr, index, temp);\n\t            value = temp.value;\n\t            index = temp.rest;\n\t            segment.push(value);\n\t          }\n\t\n\t          if (segment.length === 2) {\n\t            throw new Error('Found a source, but no line and column');\n\t          }\n\t\n\t          if (segment.length === 3) {\n\t            throw new Error('Found a source and line, but no column');\n\t          }\n\t\n\t          cachedSegments[str] = segment;\n\t        }\n\t\n\t        // Generated column.\n\t        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t        previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t        if (segment.length > 1) {\n\t          // Original source.\n\t          mapping.source = previousSource + segment[1];\n\t          previousSource += segment[1];\n\t\n\t          // Original line.\n\t          mapping.originalLine = previousOriginalLine + segment[2];\n\t          previousOriginalLine = mapping.originalLine;\n\t          // Lines are stored 0-based\n\t          mapping.originalLine += 1;\n\t\n\t          // Original column.\n\t          mapping.originalColumn = previousOriginalColumn + segment[3];\n\t          previousOriginalColumn = mapping.originalColumn;\n\t\n\t          if (segment.length > 4) {\n\t            // Original name.\n\t            mapping.name = previousName + segment[4];\n\t            previousName += segment[4];\n\t          }\n\t        }\n\t\n\t        generatedMappings.push(mapping);\n\t        if (typeof mapping.originalLine === 'number') {\n\t          originalMappings.push(mapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    this.__generatedMappings = generatedMappings;\n\t\n\t    quickSort(originalMappings, util.compareByOriginalPositions);\n\t    this.__originalMappings = originalMappings;\n\t  };\n\t\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t                                         aColumnName, aComparator, aBias) {\n\t    // To return the position we are searching for, we must first find the\n\t    // mapping for the given position and then return the opposite position it\n\t    // points to. Because the mappings are sorted, we can use binary search to\n\t    // find the best mapping.\n\t\n\t    if (aNeedle[aLineName] <= 0) {\n\t      throw new TypeError('Line must be greater than or equal to 1, got '\n\t                          + aNeedle[aLineName]);\n\t    }\n\t    if (aNeedle[aColumnName] < 0) {\n\t      throw new TypeError('Column must be greater than or equal to 0, got '\n\t                          + aNeedle[aColumnName]);\n\t    }\n\t\n\t    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t  };\n\t\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t  function SourceMapConsumer_computeColumnSpans() {\n\t    for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      // Mappings do not contain a field for the last generated columnt. We\n\t      // can come up with an optimistic estimate, however, by assuming that\n\t      // mappings are contiguous (i.e. given two consecutive mappings, the\n\t      // first mapping ends where the second one starts).\n\t      if (index + 1 < this._generatedMappings.length) {\n\t        var nextMapping = this._generatedMappings[index + 1];\n\t\n\t        if (mapping.generatedLine === nextMapping.generatedLine) {\n\t          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t          continue;\n\t        }\n\t      }\n\t\n\t      // The last mapping for each line spans the entire line.\n\t      mapping.lastGeneratedColumn = Infinity;\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t  function SourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._generatedMappings,\n\t      \"generatedLine\",\n\t      \"generatedColumn\",\n\t      util.compareByGeneratedPositionsDeflated,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      if (mapping.generatedLine === needle.generatedLine) {\n\t        var source = util.getArg(mapping, 'source', null);\n\t        if (source !== null) {\n\t          source = this._sources.at(source);\n\t          if (this.sourceRoot != null) {\n\t            source = util.join(this.sourceRoot, source);\n\t          }\n\t        }\n\t        var name = util.getArg(mapping, 'name', null);\n\t        if (name !== null) {\n\t          name = this._names.at(name);\n\t        }\n\t        return {\n\t          source: source,\n\t          line: util.getArg(mapping, 'originalLine', null),\n\t          column: util.getArg(mapping, 'originalColumn', null),\n\t          name: name\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      source: null,\n\t      line: null,\n\t      column: null,\n\t      name: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t    if (!this.sourcesContent) {\n\t      return false;\n\t    }\n\t    return this.sourcesContent.length >= this._sources.size() &&\n\t      !this.sourcesContent.some(function (sc) { return sc == null; });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    if (!this.sourcesContent) {\n\t      return null;\n\t    }\n\t\n\t    if (this.sourceRoot != null) {\n\t      aSource = util.relative(this.sourceRoot, aSource);\n\t    }\n\t\n\t    if (this._sources.has(aSource)) {\n\t      return this.sourcesContent[this._sources.indexOf(aSource)];\n\t    }\n\t\n\t    var url;\n\t    if (this.sourceRoot != null\n\t        && (url = util.urlParse(this.sourceRoot))) {\n\t      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t      // many users. We can help them out when they expect file:// URIs to\n\t      // behave like it would if they were running a local HTTP server. See\n\t      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t      if (url.scheme == \"file\"\n\t          && this._sources.has(fileUriAbsPath)) {\n\t        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t      }\n\t\n\t      if ((!url.path || url.path == \"/\")\n\t          && this._sources.has(\"/\" + aSource)) {\n\t        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t      }\n\t    }\n\t\n\t    // This function is used recursively from\n\t    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t    // don't want to throw if we can't find the source - we just want to\n\t    // return null, so we provide a flag to exit gracefully.\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t  function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t    var source = util.getArg(aArgs, 'source');\n\t    if (this.sourceRoot != null) {\n\t      source = util.relative(this.sourceRoot, source);\n\t    }\n\t    if (!this._sources.has(source)) {\n\t      return {\n\t        line: null,\n\t        column: null,\n\t        lastColumn: null\n\t      };\n\t    }\n\t    source = this._sources.indexOf(source);\n\t\n\t    var needle = {\n\t      source: source,\n\t      originalLine: util.getArg(aArgs, 'line'),\n\t      originalColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._originalMappings,\n\t      \"originalLine\",\n\t      \"originalColumn\",\n\t      util.compareByOriginalPositions,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (mapping.source === needle.source) {\n\t        return {\n\t          line: util.getArg(mapping, 'generatedLine', null),\n\t          column: util.getArg(mapping, 'generatedColumn', null),\n\t          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null,\n\t      lastColumn: null\n\t    };\n\t  };\n\t\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\t\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *   - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t *   - offset: The offset into the original specified at which this section\n\t *       begins to apply, defined as an object with a \"line\" and \"column\"\n\t *       field.\n\t *   - map: A source map definition. This source map could also be indexed,\n\t *       but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t *  {\n\t *    version : 3,\n\t *    file: \"app.js\",\n\t *    sections: [{\n\t *      offset: {line:100, column:10},\n\t *      map: {\n\t *        version : 3,\n\t *        file: \"section.js\",\n\t *        sources: [\"foo.js\", \"bar.js\"],\n\t *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *        mappings: \"AAAA,E;;ABCDE;\"\n\t *      }\n\t *    }],\n\t *  }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sections = util.getArg(sourceMap, 'sections');\n\t\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t\n\t  var lastOffset = {\n\t    line: -1,\n\t    column: 0\n\t  };\n\t  this._sections = sections.map(function (s) {\n\t    if (s.url) {\n\t      // The url field will require support for asynchronicity.\n\t      // See https://github.com/mozilla/source-map/issues/16\n\t      throw new Error('Support for url field in sections not implemented.');\n\t    }\n\t    var offset = util.getArg(s, 'offset');\n\t    var offsetLine = util.getArg(offset, 'line');\n\t    var offsetColumn = util.getArg(offset, 'column');\n\t\n\t    if (offsetLine < lastOffset.line ||\n\t        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t      throw new Error('Section offsets must be ordered and non-overlapping.');\n\t    }\n\t    lastOffset = offset;\n\t\n\t    return {\n\t      generatedOffset: {\n\t        // The offset fields are 0-based, but we use 1-based indices when\n\t        // encoding/decoding from VLQ.\n\t        generatedLine: offsetLine + 1,\n\t        generatedColumn: offsetColumn + 1\n\t      },\n\t      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t    }\n\t  });\n\t}\n\t\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    var sources = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t        sources.push(this._sections[i].consumer.sources[j]);\n\t      }\n\t    }\n\t    return sources;\n\t  }\n\t});\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    // Find the section containing the generated position we're trying to map\n\t    // to an original position.\n\t    var sectionIndex = binarySearch.search(needle, this._sections,\n\t      function(needle, section) {\n\t        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t        if (cmp) {\n\t          return cmp;\n\t        }\n\t\n\t        return (needle.generatedColumn -\n\t                section.generatedOffset.generatedColumn);\n\t      });\n\t    var section = this._sections[sectionIndex];\n\t\n\t    if (!section) {\n\t      return {\n\t        source: null,\n\t        line: null,\n\t        column: null,\n\t        name: null\n\t      };\n\t    }\n\t\n\t    return section.consumer.originalPositionFor({\n\t      line: needle.generatedLine -\n\t        (section.generatedOffset.generatedLine - 1),\n\t      column: needle.generatedColumn -\n\t        (section.generatedOffset.generatedLine === needle.generatedLine\n\t         ? section.generatedOffset.generatedColumn - 1\n\t         : 0),\n\t      bias: aArgs.bias\n\t    });\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t    return this._sections.every(function (s) {\n\t      return s.consumer.hasContentsOfAllSources();\n\t    });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      var content = section.consumer.sourceContentFor(aSource, true);\n\t      if (content) {\n\t        return content;\n\t      }\n\t    }\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      // Only consider this section if the requested source is in the list of\n\t      // sources of the consumer.\n\t      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t        continue;\n\t      }\n\t      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t      if (generatedPosition) {\n\t        var ret = {\n\t          line: generatedPosition.line +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          column: generatedPosition.column +\n\t            (section.generatedOffset.generatedLine === generatedPosition.line\n\t             ? section.generatedOffset.generatedColumn - 1\n\t             : 0)\n\t        };\n\t        return ret;\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    this.__generatedMappings = [];\n\t    this.__originalMappings = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t      var sectionMappings = section.consumer._generatedMappings;\n\t      for (var j = 0; j < sectionMappings.length; j++) {\n\t        var mapping = sectionMappings[j];\n\t\n\t        var source = section.consumer._sources.at(mapping.source);\n\t        if (section.consumer.sourceRoot !== null) {\n\t          source = util.join(section.consumer.sourceRoot, source);\n\t        }\n\t        this._sources.add(source);\n\t        source = this._sources.indexOf(source);\n\t\n\t        var name = section.consumer._names.at(mapping.name);\n\t        this._names.add(name);\n\t        name = this._names.indexOf(name);\n\t\n\t        // The mappings coming from the consumer for the section have\n\t        // generated positions relative to the start of the section, so we\n\t        // need to offset them to be relative to the start of the concatenated\n\t        // generated file.\n\t        var adjustedMapping = {\n\t          source: source,\n\t          generatedLine: mapping.generatedLine +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          generatedColumn: mapping.generatedColumn +\n\t            (section.generatedOffset.generatedLine === mapping.generatedLine\n\t            ? section.generatedOffset.generatedColumn - 1\n\t            : 0),\n\t          originalLine: mapping.originalLine,\n\t          originalColumn: mapping.originalColumn,\n\t          name: name\n\t        };\n\t\n\t        this.__generatedMappings.push(adjustedMapping);\n\t        if (typeof adjustedMapping.originalLine === 'number') {\n\t          this.__originalMappings.push(adjustedMapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t  };\n\t\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t  // This function terminates when one of the following is true:\n\t  //\n\t  //   1. We find the exact element we are looking for.\n\t  //\n\t  //   2. We did not find the exact element, but we can return the index of\n\t  //      the next-closest element.\n\t  //\n\t  //   3. We did not find the exact element, and there is no next-closest\n\t  //      element than the one we are searching for, so we return -1.\n\t  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t  if (cmp === 0) {\n\t    // Found the element we are looking for.\n\t    return mid;\n\t  }\n\t  else if (cmp > 0) {\n\t    // Our needle is greater than aHaystack[mid].\n\t    if (aHigh - mid > 1) {\n\t      // The element is in the upper half.\n\t      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // The exact needle element was not found in this haystack. Determine if\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return aHigh < aHaystack.length ? aHigh : -1;\n\t    } else {\n\t      return mid;\n\t    }\n\t  }\n\t  else {\n\t    // Our needle is less than aHaystack[mid].\n\t    if (mid - aLow > 1) {\n\t      // The element is in the lower half.\n\t      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return mid;\n\t    } else {\n\t      return aLow < 0 ? -1 : aLow;\n\t    }\n\t  }\n\t}\n\t\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t *     array and returns -1, 0, or 1 depending on whether the needle is less\n\t *     than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t  if (aHaystack.length === 0) {\n\t    return -1;\n\t  }\n\t\n\t  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t  if (index < 0) {\n\t    return -1;\n\t  }\n\t\n\t  // We have found either the exact element, or the next-closest element than\n\t  // the one we are searching for. However, there may be more than one such\n\t  // element. Make sure we always return the smallest of these.\n\t  while (index - 1 >= 0) {\n\t    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t      break;\n\t    }\n\t    --index;\n\t  }\n\t\n\t  return index;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\t\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t *        The array.\n\t * @param {Number} x\n\t *        The index of the first item.\n\t * @param {Number} y\n\t *        The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t  var temp = ary[x];\n\t  ary[x] = ary[y];\n\t  ary[y] = temp;\n\t}\n\t\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t *        The lower bound on the range.\n\t * @param {Number} high\n\t *        The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t  return Math.round(low + (Math.random() * (high - low)));\n\t}\n\t\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t * @param {Number} p\n\t *        Start index of the array\n\t * @param {Number} r\n\t *        End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t  // If our lower bound is less than our upper bound, we (1) partition the\n\t  // array into two pieces and (2) recurse on each half. If it is not, this is\n\t  // the empty array and our base case.\n\t\n\t  if (p < r) {\n\t    // (1) Partitioning.\n\t    //\n\t    // The partitioning chooses a pivot between `p` and `r` and moves all\n\t    // elements that are less than or equal to the pivot to the before it, and\n\t    // all the elements that are greater than it after it. The effect is that\n\t    // once partition is done, the pivot is in the exact place it will be when\n\t    // the array is put in sorted order, and it will not need to be moved\n\t    // again. This runs in O(n) time.\n\t\n\t    // Always choose a random pivot so that an input array which is reverse\n\t    // sorted does not cause O(n^2) running time.\n\t    var pivotIndex = randomIntInRange(p, r);\n\t    var i = p - 1;\n\t\n\t    swap(ary, pivotIndex, r);\n\t    var pivot = ary[r];\n\t\n\t    // Immediately after `j` is incremented in this loop, the following hold\n\t    // true:\n\t    //\n\t    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t    //\n\t    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t    for (var j = p; j < r; j++) {\n\t      if (comparator(ary[j], pivot) <= 0) {\n\t        i += 1;\n\t        swap(ary, i, j);\n\t      }\n\t    }\n\t\n\t    swap(ary, i + 1, j);\n\t    var q = i + 1;\n\t\n\t    // (2) Recurse on each half.\n\t\n\t    doQuickSort(ary, comparator, p, q - 1);\n\t    doQuickSort(ary, comparator, q + 1, r);\n\t  }\n\t}\n\t\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t  doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\tvar util = __webpack_require__(4);\n\t\n\t// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n\t// operating systems these days (capturing the result).\n\tvar REGEX_NEWLINE = /(\\r?\\n)/;\n\t\n\t// Newline character code for charCodeAt() comparisons\n\tvar NEWLINE_CODE = 10;\n\t\n\t// Private symbol for identifying `SourceNode`s when multiple versions of\n\t// the source-map library are loaded. This MUST NOT CHANGE across\n\t// versions!\n\tvar isSourceNode = \"$$$isSourceNode$$$\";\n\t\n\t/**\n\t * SourceNodes provide a way to abstract over interpolating/concatenating\n\t * snippets of generated JavaScript source code while maintaining the line and\n\t * column information associated with the original source code.\n\t *\n\t * @param aLine The original line number.\n\t * @param aColumn The original column number.\n\t * @param aSource The original source's filename.\n\t * @param aChunks Optional. An array of strings which are snippets of\n\t *        generated JS, or other SourceNodes.\n\t * @param aName The original identifier.\n\t */\n\tfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n\t  this.children = [];\n\t  this.sourceContents = {};\n\t  this.line = aLine == null ? null : aLine;\n\t  this.column = aColumn == null ? null : aColumn;\n\t  this.source = aSource == null ? null : aSource;\n\t  this.name = aName == null ? null : aName;\n\t  this[isSourceNode] = true;\n\t  if (aChunks != null) this.add(aChunks);\n\t}\n\t\n\t/**\n\t * Creates a SourceNode from generated code and a SourceMapConsumer.\n\t *\n\t * @param aGeneratedCode The generated code\n\t * @param aSourceMapConsumer The SourceMap for the generated code\n\t * @param aRelativePath Optional. The path that relative sources in the\n\t *        SourceMapConsumer should be relative to.\n\t */\n\tSourceNode.fromStringWithSourceMap =\n\t  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n\t    // The SourceNode we want to fill with the generated code\n\t    // and the SourceMap\n\t    var node = new SourceNode();\n\t\n\t    // All even indices of this array are one line of the generated code,\n\t    // while all odd indices are the newlines between two adjacent lines\n\t    // (since `REGEX_NEWLINE` captures its match).\n\t    // Processed fragments are accessed by calling `shiftNextLine`.\n\t    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n\t    var remainingLinesIndex = 0;\n\t    var shiftNextLine = function() {\n\t      var lineContents = getNextLine();\n\t      // The last line of a file might not have a newline.\n\t      var newLine = getNextLine() || \"\";\n\t      return lineContents + newLine;\n\t\n\t      function getNextLine() {\n\t        return remainingLinesIndex < remainingLines.length ?\n\t            remainingLines[remainingLinesIndex++] : undefined;\n\t      }\n\t    };\n\t\n\t    // We need to remember the position of \"remainingLines\"\n\t    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\t\n\t    // The generate SourceNodes we need a code range.\n\t    // To extract it current and last mapping is used.\n\t    // Here we store the last mapping.\n\t    var lastMapping = null;\n\t\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      if (lastMapping !== null) {\n\t        // We add the code from \"lastMapping\" to \"mapping\":\n\t        // First check if there is a new line in between.\n\t        if (lastGeneratedLine < mapping.generatedLine) {\n\t          // Associate first line with \"lastMapping\"\n\t          addMappingWithCode(lastMapping, shiftNextLine());\n\t          lastGeneratedLine++;\n\t          lastGeneratedColumn = 0;\n\t          // The remaining code is added without mapping\n\t        } else {\n\t          // There is no new line in between.\n\t          // Associate the code between \"lastGeneratedColumn\" and\n\t          // \"mapping.generatedColumn\" with \"lastMapping\"\n\t          var nextLine = remainingLines[remainingLinesIndex];\n\t          var code = nextLine.substr(0, mapping.generatedColumn -\n\t                                        lastGeneratedColumn);\n\t          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n\t                                              lastGeneratedColumn);\n\t          lastGeneratedColumn = mapping.generatedColumn;\n\t          addMappingWithCode(lastMapping, code);\n\t          // No more remaining code, continue\n\t          lastMapping = mapping;\n\t          return;\n\t        }\n\t      }\n\t      // We add the generated code until the first mapping\n\t      // to the SourceNode without any mapping.\n\t      // Each line is added as separate string.\n\t      while (lastGeneratedLine < mapping.generatedLine) {\n\t        node.add(shiftNextLine());\n\t        lastGeneratedLine++;\n\t      }\n\t      if (lastGeneratedColumn < mapping.generatedColumn) {\n\t        var nextLine = remainingLines[remainingLinesIndex];\n\t        node.add(nextLine.substr(0, mapping.generatedColumn));\n\t        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n\t        lastGeneratedColumn = mapping.generatedColumn;\n\t      }\n\t      lastMapping = mapping;\n\t    }, this);\n\t    // We have processed all mappings.\n\t    if (remainingLinesIndex < remainingLines.length) {\n\t      if (lastMapping) {\n\t        // Associate the remaining code in the current line with \"lastMapping\"\n\t        addMappingWithCode(lastMapping, shiftNextLine());\n\t      }\n\t      // and add the remaining lines without any mapping\n\t      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n\t    }\n\t\n\t    // Copy sourcesContent into SourceNode\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aRelativePath != null) {\n\t          sourceFile = util.join(aRelativePath, sourceFile);\n\t        }\n\t        node.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t\n\t    return node;\n\t\n\t    function addMappingWithCode(mapping, code) {\n\t      if (mapping === null || mapping.source === undefined) {\n\t        node.add(code);\n\t      } else {\n\t        var source = aRelativePath\n\t          ? util.join(aRelativePath, mapping.source)\n\t          : mapping.source;\n\t        node.add(new SourceNode(mapping.originalLine,\n\t                                mapping.originalColumn,\n\t                                source,\n\t                                code,\n\t                                mapping.name));\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Add a chunk of generated JS to this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.add = function SourceNode_add(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    aChunk.forEach(function (chunk) {\n\t      this.add(chunk);\n\t    }, this);\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    if (aChunk) {\n\t      this.children.push(aChunk);\n\t    }\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Add a chunk of generated JS to the beginning of this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    for (var i = aChunk.length-1; i >= 0; i--) {\n\t      this.prepend(aChunk[i]);\n\t    }\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    this.children.unshift(aChunk);\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Walk over the tree of JS snippets in this node and its children. The\n\t * walking function is called once for each snippet of JS and is passed that\n\t * snippet and the its original associated source's line/column location.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n\t  var chunk;\n\t  for (var i = 0, len = this.children.length; i < len; i++) {\n\t    chunk = this.children[i];\n\t    if (chunk[isSourceNode]) {\n\t      chunk.walk(aFn);\n\t    }\n\t    else {\n\t      if (chunk !== '') {\n\t        aFn(chunk, { source: this.source,\n\t                     line: this.line,\n\t                     column: this.column,\n\t                     name: this.name });\n\t      }\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n\t * each of `this.children`.\n\t *\n\t * @param aSep The separator.\n\t */\n\tSourceNode.prototype.join = function SourceNode_join(aSep) {\n\t  var newChildren;\n\t  var i;\n\t  var len = this.children.length;\n\t  if (len > 0) {\n\t    newChildren = [];\n\t    for (i = 0; i < len-1; i++) {\n\t      newChildren.push(this.children[i]);\n\t      newChildren.push(aSep);\n\t    }\n\t    newChildren.push(this.children[i]);\n\t    this.children = newChildren;\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Call String.prototype.replace on the very right-most source snippet. Useful\n\t * for trimming whitespace from the end of a source node, etc.\n\t *\n\t * @param aPattern The pattern to replace.\n\t * @param aReplacement The thing to replace the pattern with.\n\t */\n\tSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n\t  var lastChild = this.children[this.children.length - 1];\n\t  if (lastChild[isSourceNode]) {\n\t    lastChild.replaceRight(aPattern, aReplacement);\n\t  }\n\t  else if (typeof lastChild === 'string') {\n\t    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n\t  }\n\t  else {\n\t    this.children.push(''.replace(aPattern, aReplacement));\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Set the source content for a source file. This will be added to the SourceMapGenerator\n\t * in the sourcesContent field.\n\t *\n\t * @param aSourceFile The filename of the source file\n\t * @param aSourceContent The content of the source file\n\t */\n\tSourceNode.prototype.setSourceContent =\n\t  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n\t    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n\t  };\n\t\n\t/**\n\t * Walk over the tree of SourceNodes. The walking function is called for each\n\t * source file content and is passed the filename and source content.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walkSourceContents =\n\t  function SourceNode_walkSourceContents(aFn) {\n\t    for (var i = 0, len = this.children.length; i < len; i++) {\n\t      if (this.children[i][isSourceNode]) {\n\t        this.children[i].walkSourceContents(aFn);\n\t      }\n\t    }\n\t\n\t    var sources = Object.keys(this.sourceContents);\n\t    for (var i = 0, len = sources.length; i < len; i++) {\n\t      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n\t    }\n\t  };\n\t\n\t/**\n\t * Return the string representation of this source node. Walks over the tree\n\t * and concatenates all the various snippets together to one string.\n\t */\n\tSourceNode.prototype.toString = function SourceNode_toString() {\n\t  var str = \"\";\n\t  this.walk(function (chunk) {\n\t    str += chunk;\n\t  });\n\t  return str;\n\t};\n\t\n\t/**\n\t * Returns the string representation of this source node along with a source\n\t * map.\n\t */\n\tSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n\t  var generated = {\n\t    code: \"\",\n\t    line: 1,\n\t    column: 0\n\t  };\n\t  var map = new SourceMapGenerator(aArgs);\n\t  var sourceMappingActive = false;\n\t  var lastOriginalSource = null;\n\t  var lastOriginalLine = null;\n\t  var lastOriginalColumn = null;\n\t  var lastOriginalName = null;\n\t  this.walk(function (chunk, original) {\n\t    generated.code += chunk;\n\t    if (original.source !== null\n\t        && original.line !== null\n\t        && original.column !== null) {\n\t      if(lastOriginalSource !== original.source\n\t         || lastOriginalLine !== original.line\n\t         || lastOriginalColumn !== original.column\n\t         || lastOriginalName !== original.name) {\n\t        map.addMapping({\n\t          source: original.source,\n\t          original: {\n\t            line: original.line,\n\t            column: original.column\n\t          },\n\t          generated: {\n\t            line: generated.line,\n\t            column: generated.column\n\t          },\n\t          name: original.name\n\t        });\n\t      }\n\t      lastOriginalSource = original.source;\n\t      lastOriginalLine = original.line;\n\t      lastOriginalColumn = original.column;\n\t      lastOriginalName = original.name;\n\t      sourceMappingActive = true;\n\t    } else if (sourceMappingActive) {\n\t      map.addMapping({\n\t        generated: {\n\t          line: generated.line,\n\t          column: generated.column\n\t        }\n\t      });\n\t      lastOriginalSource = null;\n\t      sourceMappingActive = false;\n\t    }\n\t    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n\t      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n\t        generated.line++;\n\t        generated.column = 0;\n\t        // Mappings end at eol\n\t        if (idx + 1 === length) {\n\t          lastOriginalSource = null;\n\t          sourceMappingActive = false;\n\t        } else if (sourceMappingActive) {\n\t          map.addMapping({\n\t            source: original.source,\n\t            original: {\n\t              line: original.line,\n\t              column: original.column\n\t            },\n\t            generated: {\n\t              line: generated.line,\n\t              column: generated.column\n\t            },\n\t            name: original.name\n\t          });\n\t        }\n\t      } else {\n\t        generated.column++;\n\t      }\n\t    }\n\t  });\n\t  this.walkSourceContents(function (sourceFile, sourceContent) {\n\t    map.setSourceContent(sourceFile, sourceContent);\n\t  });\n\t\n\t  return { code: generated.code, map: map };\n\t};\n\t\n\texports.SourceNode = SourceNode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// source-map.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 42c329f865e32e011afb","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source-map.js\n// module id = 0\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n *   - file: The filename of the generated source.\n *   - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n  if (!aArgs) {\n    aArgs = {};\n  }\n  this._file = util.getArg(aArgs, 'file', null);\n  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n  this._mappings = new MappingList();\n  this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n    var sourceRoot = aSourceMapConsumer.sourceRoot;\n    var generator = new SourceMapGenerator({\n      file: aSourceMapConsumer.file,\n      sourceRoot: sourceRoot\n    });\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      var newMapping = {\n        generated: {\n          line: mapping.generatedLine,\n          column: mapping.generatedColumn\n        }\n      };\n\n      if (mapping.source != null) {\n        newMapping.source = mapping.source;\n        if (sourceRoot != null) {\n          newMapping.source = util.relative(sourceRoot, newMapping.source);\n        }\n\n        newMapping.original = {\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        };\n\n        if (mapping.name != null) {\n          newMapping.name = mapping.name;\n        }\n      }\n\n      generator.addMapping(newMapping);\n    });\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        generator.setSourceContent(sourceFile, content);\n      }\n    });\n    return generator;\n  };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n *   - generated: An object with the generated line and column positions.\n *   - original: An object with the original line and column positions.\n *   - source: The original source file (relative to the sourceRoot).\n *   - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n  function SourceMapGenerator_addMapping(aArgs) {\n    var generated = util.getArg(aArgs, 'generated');\n    var original = util.getArg(aArgs, 'original', null);\n    var source = util.getArg(aArgs, 'source', null);\n    var name = util.getArg(aArgs, 'name', null);\n\n    if (!this._skipValidation) {\n      this._validateMapping(generated, original, source, name);\n    }\n\n    if (source != null) {\n      source = String(source);\n      if (!this._sources.has(source)) {\n        this._sources.add(source);\n      }\n    }\n\n    if (name != null) {\n      name = String(name);\n      if (!this._names.has(name)) {\n        this._names.add(name);\n      }\n    }\n\n    this._mappings.add({\n      generatedLine: generated.line,\n      generatedColumn: generated.column,\n      originalLine: original != null && original.line,\n      originalColumn: original != null && original.column,\n      source: source,\n      name: name\n    });\n  };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n    var source = aSourceFile;\n    if (this._sourceRoot != null) {\n      source = util.relative(this._sourceRoot, source);\n    }\n\n    if (aSourceContent != null) {\n      // Add the source content to the _sourcesContents map.\n      // Create a new _sourcesContents map if the property is null.\n      if (!this._sourcesContents) {\n        this._sourcesContents = Object.create(null);\n      }\n      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n    } else if (this._sourcesContents) {\n      // Remove the source file from the _sourcesContents map.\n      // If the _sourcesContents map is empty, set the property to null.\n      delete this._sourcesContents[util.toSetString(source)];\n      if (Object.keys(this._sourcesContents).length === 0) {\n        this._sourcesContents = null;\n      }\n    }\n  };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n *        If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n *        to be applied. If relative, it is relative to the SourceMapConsumer.\n *        This parameter is needed when the two source maps aren't in the same\n *        directory, and the source map to be applied contains relative source\n *        paths. If so, those relative source paths need to be rewritten\n *        relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n    var sourceFile = aSourceFile;\n    // If aSourceFile is omitted, we will use the file property of the SourceMap\n    if (aSourceFile == null) {\n      if (aSourceMapConsumer.file == null) {\n        throw new Error(\n          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n          'or the source map\\'s \"file\" property. Both were omitted.'\n        );\n      }\n      sourceFile = aSourceMapConsumer.file;\n    }\n    var sourceRoot = this._sourceRoot;\n    // Make \"sourceFile\" relative if an absolute Url is passed.\n    if (sourceRoot != null) {\n      sourceFile = util.relative(sourceRoot, sourceFile);\n    }\n    // Applying the SourceMap can add and remove items from the sources and\n    // the names array.\n    var newSources = new ArraySet();\n    var newNames = new ArraySet();\n\n    // Find mappings for the \"sourceFile\"\n    this._mappings.unsortedForEach(function (mapping) {\n      if (mapping.source === sourceFile && mapping.originalLine != null) {\n        // Check if it can be mapped by the source map, then update the mapping.\n        var original = aSourceMapConsumer.originalPositionFor({\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        });\n        if (original.source != null) {\n          // Copy mapping\n          mapping.source = original.source;\n          if (aSourceMapPath != null) {\n            mapping.source = util.join(aSourceMapPath, mapping.source)\n          }\n          if (sourceRoot != null) {\n            mapping.source = util.relative(sourceRoot, mapping.source);\n          }\n          mapping.originalLine = original.line;\n          mapping.originalColumn = original.column;\n          if (original.name != null) {\n            mapping.name = original.name;\n          }\n        }\n      }\n\n      var source = mapping.source;\n      if (source != null && !newSources.has(source)) {\n        newSources.add(source);\n      }\n\n      var name = mapping.name;\n      if (name != null && !newNames.has(name)) {\n        newNames.add(name);\n      }\n\n    }, this);\n    this._sources = newSources;\n    this._names = newNames;\n\n    // Copy sourcesContents of applied map.\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aSourceMapPath != null) {\n          sourceFile = util.join(aSourceMapPath, sourceFile);\n        }\n        if (sourceRoot != null) {\n          sourceFile = util.relative(sourceRoot, sourceFile);\n        }\n        this.setSourceContent(sourceFile, content);\n      }\n    }, this);\n  };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n *   1. Just the generated position.\n *   2. The Generated position, original position, and original source.\n *   3. Generated and original position, original source, as well as a name\n *      token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n                                              aName) {\n    // When aOriginal is truthy but has empty values for .line and .column,\n    // it is most likely a programmer error. In this case we throw a very\n    // specific error message to try to guide them the right way.\n    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n        throw new Error(\n            'original.line and original.column are not numbers -- you probably meant to omit ' +\n            'the original mapping entirely and only map the generated position. If so, pass ' +\n            'null for the original mapping instead of an object with empty or null values.'\n        );\n    }\n\n    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n        && aGenerated.line > 0 && aGenerated.column >= 0\n        && !aOriginal && !aSource && !aName) {\n      // Case 1.\n      return;\n    }\n    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n             && aGenerated.line > 0 && aGenerated.column >= 0\n             && aOriginal.line > 0 && aOriginal.column >= 0\n             && aSource) {\n      // Cases 2 and 3.\n      return;\n    }\n    else {\n      throw new Error('Invalid mapping: ' + JSON.stringify({\n        generated: aGenerated,\n        source: aSource,\n        original: aOriginal,\n        name: aName\n      }));\n    }\n  };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n  function SourceMapGenerator_serializeMappings() {\n    var previousGeneratedColumn = 0;\n    var previousGeneratedLine = 1;\n    var previousOriginalColumn = 0;\n    var previousOriginalLine = 0;\n    var previousName = 0;\n    var previousSource = 0;\n    var result = '';\n    var next;\n    var mapping;\n    var nameIdx;\n    var sourceIdx;\n\n    var mappings = this._mappings.toArray();\n    for (var i = 0, len = mappings.length; i < len; i++) {\n      mapping = mappings[i];\n      next = ''\n\n      if (mapping.generatedLine !== previousGeneratedLine) {\n        previousGeneratedColumn = 0;\n        while (mapping.generatedLine !== previousGeneratedLine) {\n          next += ';';\n          previousGeneratedLine++;\n        }\n      }\n      else {\n        if (i > 0) {\n          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n            continue;\n          }\n          next += ',';\n        }\n      }\n\n      next += base64VLQ.encode(mapping.generatedColumn\n                                 - previousGeneratedColumn);\n      previousGeneratedColumn = mapping.generatedColumn;\n\n      if (mapping.source != null) {\n        sourceIdx = this._sources.indexOf(mapping.source);\n        next += base64VLQ.encode(sourceIdx - previousSource);\n        previousSource = sourceIdx;\n\n        // lines are stored 0-based in SourceMap spec version 3\n        next += base64VLQ.encode(mapping.originalLine - 1\n                                   - previousOriginalLine);\n        previousOriginalLine = mapping.originalLine - 1;\n\n        next += base64VLQ.encode(mapping.originalColumn\n                                   - previousOriginalColumn);\n        previousOriginalColumn = mapping.originalColumn;\n\n        if (mapping.name != null) {\n          nameIdx = this._names.indexOf(mapping.name);\n          next += base64VLQ.encode(nameIdx - previousName);\n          previousName = nameIdx;\n        }\n      }\n\n      result += next;\n    }\n\n    return result;\n  };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n    return aSources.map(function (source) {\n      if (!this._sourcesContents) {\n        return null;\n      }\n      if (aSourceRoot != null) {\n        source = util.relative(aSourceRoot, source);\n      }\n      var key = util.toSetString(source);\n      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n        ? this._sourcesContents[key]\n        : null;\n    }, this);\n  };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n  function SourceMapGenerator_toJSON() {\n    var map = {\n      version: this._version,\n      sources: this._sources.toArray(),\n      names: this._names.toArray(),\n      mappings: this._serializeMappings()\n    };\n    if (this._file != null) {\n      map.file = this._file;\n    }\n    if (this._sourceRoot != null) {\n      map.sourceRoot = this._sourceRoot;\n    }\n    if (this._sourcesContents) {\n      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n    }\n\n    return map;\n  };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n  function SourceMapGenerator_toString() {\n    return JSON.stringify(this.toJSON());\n  };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-generator.js\n// module id = 1\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n *  * Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above\n *    copyright notice, this list of conditions and the following\n *    disclaimer in the documentation and/or other materials provided\n *    with the distribution.\n *  * Neither the name of Google Inc. nor the names of its\n *    contributors may be used to endorse or promote products derived\n *    from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n//   Continuation\n//   |    Sign\n//   |    |\n//   V    V\n//   101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n  return aValue < 0\n    ? ((-aValue) << 1) + 1\n    : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n  var isNegative = (aValue & 1) === 1;\n  var shifted = aValue >> 1;\n  return isNegative\n    ? -shifted\n    : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n  var encoded = \"\";\n  var digit;\n\n  var vlq = toVLQSigned(aValue);\n\n  do {\n    digit = vlq & VLQ_BASE_MASK;\n    vlq >>>= VLQ_BASE_SHIFT;\n    if (vlq > 0) {\n      // There are still more digits in this value, so we must make sure the\n      // continuation bit is marked.\n      digit |= VLQ_CONTINUATION_BIT;\n    }\n    encoded += base64.encode(digit);\n  } while (vlq > 0);\n\n  return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n  var strLen = aStr.length;\n  var result = 0;\n  var shift = 0;\n  var continuation, digit;\n\n  do {\n    if (aIndex >= strLen) {\n      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n    }\n\n    digit = base64.decode(aStr.charCodeAt(aIndex++));\n    if (digit === -1) {\n      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n    }\n\n    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n    digit &= VLQ_BASE_MASK;\n    result = result + (digit << shift);\n    shift += VLQ_BASE_SHIFT;\n  } while (continuation);\n\n  aOutParam.value = fromVLQSigned(result);\n  aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64-vlq.js\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n  if (0 <= number && number < intToCharMap.length) {\n    return intToCharMap[number];\n  }\n  throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n  var bigA = 65;     // 'A'\n  var bigZ = 90;     // 'Z'\n\n  var littleA = 97;  // 'a'\n  var littleZ = 122; // 'z'\n\n  var zero = 48;     // '0'\n  var nine = 57;     // '9'\n\n  var plus = 43;     // '+'\n  var slash = 47;    // '/'\n\n  var littleOffset = 26;\n  var numberOffset = 52;\n\n  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n  if (bigA <= charCode && charCode <= bigZ) {\n    return (charCode - bigA);\n  }\n\n  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n  if (littleA <= charCode && charCode <= littleZ) {\n    return (charCode - littleA + littleOffset);\n  }\n\n  // 52 - 61: 0123456789\n  if (zero <= charCode && charCode <= nine) {\n    return (charCode - zero + numberOffset);\n  }\n\n  // 62: +\n  if (charCode == plus) {\n    return 62;\n  }\n\n  // 63: /\n  if (charCode == slash) {\n    return 63;\n  }\n\n  // Invalid base64 digit.\n  return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64.js\n// module id = 3\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n  if (aName in aArgs) {\n    return aArgs[aName];\n  } else if (arguments.length === 3) {\n    return aDefaultValue;\n  } else {\n    throw new Error('\"' + aName + '\" is a required argument.');\n  }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n  var match = aUrl.match(urlRegexp);\n  if (!match) {\n    return null;\n  }\n  return {\n    scheme: match[1],\n    auth: match[2],\n    host: match[3],\n    port: match[4],\n    path: match[5]\n  };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n  var url = '';\n  if (aParsedUrl.scheme) {\n    url += aParsedUrl.scheme + ':';\n  }\n  url += '//';\n  if (aParsedUrl.auth) {\n    url += aParsedUrl.auth + '@';\n  }\n  if (aParsedUrl.host) {\n    url += aParsedUrl.host;\n  }\n  if (aParsedUrl.port) {\n    url += \":\" + aParsedUrl.port\n  }\n  if (aParsedUrl.path) {\n    url += aParsedUrl.path;\n  }\n  return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n  var path = aPath;\n  var url = urlParse(aPath);\n  if (url) {\n    if (!url.path) {\n      return aPath;\n    }\n    path = url.path;\n  }\n  var isAbsolute = exports.isAbsolute(path);\n\n  var parts = path.split(/\\/+/);\n  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n    part = parts[i];\n    if (part === '.') {\n      parts.splice(i, 1);\n    } else if (part === '..') {\n      up++;\n    } else if (up > 0) {\n      if (part === '') {\n        // The first part is blank if the path is absolute. Trying to go\n        // above the root is a no-op. Therefore we can remove all '..' parts\n        // directly after the root.\n        parts.splice(i + 1, up);\n        up = 0;\n      } else {\n        parts.splice(i, 2);\n        up--;\n      }\n    }\n  }\n  path = parts.join('/');\n\n  if (path === '') {\n    path = isAbsolute ? '/' : '.';\n  }\n\n  if (url) {\n    url.path = path;\n    return urlGenerate(url);\n  }\n  return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n *   first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n *   is updated with the result and aRoot is returned. Otherwise the result\n *   is returned.\n *   - If aPath is absolute, the result is aPath.\n *   - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n  if (aPath === \"\") {\n    aPath = \".\";\n  }\n  var aPathUrl = urlParse(aPath);\n  var aRootUrl = urlParse(aRoot);\n  if (aRootUrl) {\n    aRoot = aRootUrl.path || '/';\n  }\n\n  // `join(foo, '//www.example.org')`\n  if (aPathUrl && !aPathUrl.scheme) {\n    if (aRootUrl) {\n      aPathUrl.scheme = aRootUrl.scheme;\n    }\n    return urlGenerate(aPathUrl);\n  }\n\n  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n    return aPath;\n  }\n\n  // `join('http://', 'www.example.com')`\n  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n    aRootUrl.host = aPath;\n    return urlGenerate(aRootUrl);\n  }\n\n  var joined = aPath.charAt(0) === '/'\n    ? aPath\n    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n  if (aRootUrl) {\n    aRootUrl.path = joined;\n    return urlGenerate(aRootUrl);\n  }\n  return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n\n  aRoot = aRoot.replace(/\\/$/, '');\n\n  // It is possible for the path to be above the root. In this case, simply\n  // checking whether the root is a prefix of the path won't work. Instead, we\n  // need to remove components from the root one by one, until either we find\n  // a prefix that fits, or we run out of components to remove.\n  var level = 0;\n  while (aPath.indexOf(aRoot + '/') !== 0) {\n    var index = aRoot.lastIndexOf(\"/\");\n    if (index < 0) {\n      return aPath;\n    }\n\n    // If the only part of the root that is left is the scheme (i.e. http://,\n    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n    // have exhausted all components, so the path is not relative to the root.\n    aRoot = aRoot.slice(0, index);\n    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n      return aPath;\n    }\n\n    ++level;\n  }\n\n  // Make sure we add a \"../\" for each component we removed from the root.\n  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n  var obj = Object.create(null);\n  return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n  return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return '$' + aStr;\n  }\n\n  return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return aStr.slice(1);\n  }\n\n  return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n  if (!s) {\n    return false;\n  }\n\n  var length = s.length;\n\n  if (length < 9 /* \"__proto__\".length */) {\n    return false;\n  }\n\n  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n    return false;\n  }\n\n  for (var i = length - 10; i >= 0; i--) {\n    if (s.charCodeAt(i) !== 36 /* '$' */) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n  var cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0 || onlyCompareOriginal) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0 || onlyCompareGenerated) {\n    return cmp;\n  }\n\n  cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n  if (aStr1 === aStr2) {\n    return 0;\n  }\n\n  if (aStr1 > aStr2) {\n    return 1;\n  }\n\n  return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/util.js\n// module id = 4\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n  this._array = [];\n  this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n  var set = new ArraySet();\n  for (var i = 0, len = aArray.length; i < len; i++) {\n    set.add(aArray[i], aAllowDuplicates);\n  }\n  return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n  var idx = this._array.length;\n  if (!isDuplicate || aAllowDuplicates) {\n    this._array.push(aStr);\n  }\n  if (!isDuplicate) {\n    if (hasNativeMap) {\n      this._set.set(aStr, idx);\n    } else {\n      this._set[sStr] = idx;\n    }\n  }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n  if (hasNativeMap) {\n    return this._set.has(aStr);\n  } else {\n    var sStr = util.toSetString(aStr);\n    return has.call(this._set, sStr);\n  }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n  if (hasNativeMap) {\n    var idx = this._set.get(aStr);\n    if (idx >= 0) {\n        return idx;\n    }\n  } else {\n    var sStr = util.toSetString(aStr);\n    if (has.call(this._set, sStr)) {\n      return this._set[sStr];\n    }\n  }\n\n  throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n  if (aIdx >= 0 && aIdx < this._array.length) {\n    return this._array[aIdx];\n  }\n  throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n  return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/array-set.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n  // Optimized for most common case\n  var lineA = mappingA.generatedLine;\n  var lineB = mappingB.generatedLine;\n  var columnA = mappingA.generatedColumn;\n  var columnB = mappingB.generatedColumn;\n  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n  this._array = [];\n  this._sorted = true;\n  // Serves as infimum\n  this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n  function MappingList_forEach(aCallback, aThisArg) {\n    this._array.forEach(aCallback, aThisArg);\n  };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n  if (generatedPositionAfter(this._last, aMapping)) {\n    this._last = aMapping;\n    this._array.push(aMapping);\n  } else {\n    this._sorted = false;\n    this._array.push(aMapping);\n  }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n  if (!this._sorted) {\n    this._array.sort(util.compareByGeneratedPositionsInflated);\n    this._sorted = true;\n  }\n  return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/mapping-list.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  return sourceMap.sections != null\n    ? new IndexedSourceMapConsumer(sourceMap)\n    : new BasicSourceMapConsumer(sourceMap);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n//     {\n//       generatedLine: The line number in the generated code,\n//       generatedColumn: The column number in the generated code,\n//       source: The path to the original source file that generated this\n//               chunk of code,\n//       originalLine: The line number in the original source that\n//                     corresponds to this chunk of generated code,\n//       originalColumn: The column number in the original source that\n//                       corresponds to this chunk of generated code,\n//       name: The name of the original symbol which generated this chunk of\n//             code.\n//     }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n  get: function () {\n    if (!this.__generatedMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__generatedMappings;\n  }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n  get: function () {\n    if (!this.__originalMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__originalMappings;\n  }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n    var c = aStr.charAt(index);\n    return c === \";\" || c === \",\";\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    throw new Error(\"Subclasses must implement _parseMappings\");\n  };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n *        The function that is called with each mapping.\n * @param Object aContext\n *        Optional. If specified, this object will be the value of `this` every\n *        time that `aCallback` is called.\n * @param aOrder\n *        Either `SourceMapConsumer.GENERATED_ORDER` or\n *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n *        iterate over the mappings sorted by the generated file's line/column\n *        order or the original's source/line/column order, respectively. Defaults to\n *        `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n    var context = aContext || null;\n    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n    var mappings;\n    switch (order) {\n    case SourceMapConsumer.GENERATED_ORDER:\n      mappings = this._generatedMappings;\n      break;\n    case SourceMapConsumer.ORIGINAL_ORDER:\n      mappings = this._originalMappings;\n      break;\n    default:\n      throw new Error(\"Unknown order of iteration.\");\n    }\n\n    var sourceRoot = this.sourceRoot;\n    mappings.map(function (mapping) {\n      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n      if (source != null && sourceRoot != null) {\n        source = util.join(sourceRoot, source);\n      }\n      return {\n        source: source,\n        generatedLine: mapping.generatedLine,\n        generatedColumn: mapping.generatedColumn,\n        originalLine: mapping.originalLine,\n        originalColumn: mapping.originalColumn,\n        name: mapping.name === null ? null : this._names.at(mapping.name)\n      };\n    }, this).forEach(aCallback, context);\n  };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: Optional. the column number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n    var line = util.getArg(aArgs, 'line');\n\n    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n    // returns the index of the closest mapping less than the needle. By\n    // setting needle.originalColumn to 0, we thus find the last mapping for\n    // the given line, provided such a mapping exists.\n    var needle = {\n      source: util.getArg(aArgs, 'source'),\n      originalLine: line,\n      originalColumn: util.getArg(aArgs, 'column', 0)\n    };\n\n    if (this.sourceRoot != null) {\n      needle.source = util.relative(this.sourceRoot, needle.source);\n    }\n    if (!this._sources.has(needle.source)) {\n      return [];\n    }\n    needle.source = this._sources.indexOf(needle.source);\n\n    var mappings = [];\n\n    var index = this._findMapping(needle,\n                                  this._originalMappings,\n                                  \"originalLine\",\n                                  \"originalColumn\",\n                                  util.compareByOriginalPositions,\n                                  binarySearch.LEAST_UPPER_BOUND);\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (aArgs.column === undefined) {\n        var originalLine = mapping.originalLine;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we found. Since\n        // mappings are sorted, this is guaranteed to find all mappings for\n        // the line we found.\n        while (mapping && mapping.originalLine === originalLine) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      } else {\n        var originalColumn = mapping.originalColumn;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we were searching for.\n        // Since mappings are sorted, this is guaranteed to find all mappings for\n        // the line we are searching for.\n        while (mapping &&\n               mapping.originalLine === line &&\n               mapping.originalColumn == originalColumn) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      }\n    }\n\n    return mappings;\n  };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The only parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - sources: An array of URLs to the original source files.\n *   - names: An array of identifiers which can be referrenced by individual mappings.\n *   - sourceRoot: Optional. The URL root from which all sources are relative.\n *   - sourcesContent: Optional. An array of contents of the original source files.\n *   - mappings: A string of base64 VLQs which contain the actual mappings.\n *   - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n *     {\n *       version : 3,\n *       file: \"out.js\",\n *       sourceRoot : \"\",\n *       sources: [\"foo.js\", \"bar.js\"],\n *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n *       mappings: \"AA,AB;;ABCDE;\"\n *     }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sources = util.getArg(sourceMap, 'sources');\n  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n  // requires the array) to play nice here.\n  var names = util.getArg(sourceMap, 'names', []);\n  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n  var mappings = util.getArg(sourceMap, 'mappings');\n  var file = util.getArg(sourceMap, 'file', null);\n\n  // Once again, Sass deviates from the spec and supplies the version as a\n  // string rather than a number, so we use loose equality checking here.\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  sources = sources\n    .map(String)\n    // Some source maps produce relative source paths like \"./foo.js\" instead of\n    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n    // See bugzil.la/1090768.\n    .map(util.normalize)\n    // Always ensure that absolute sources are internally stored relative to\n    // the source root, if the source root is absolute. Not doing this would\n    // be particularly problematic when the source root is a prefix of the\n    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n    .map(function (source) {\n      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n        ? util.relative(sourceRoot, source)\n        : source;\n    });\n\n  // Pass `true` below to allow duplicate names and sources. While source maps\n  // are intended to be compressed and deduplicated, the TypeScript compiler\n  // sometimes generates source maps with duplicates in them. See Github issue\n  // #72 and bugzil.la/889492.\n  this._names = ArraySet.fromArray(names.map(String), true);\n  this._sources = ArraySet.fromArray(sources, true);\n\n  this.sourceRoot = sourceRoot;\n  this.sourcesContent = sourcesContent;\n  this._mappings = mappings;\n  this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n *        The source map that will be consumed.\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n    smc.sourceRoot = aSourceMap._sourceRoot;\n    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n                                                            smc.sourceRoot);\n    smc.file = aSourceMap._file;\n\n    // Because we are modifying the entries (by converting string sources and\n    // names to indices into the sources and names ArraySets), we have to make\n    // a copy of the entry or else bad things happen. Shared mutable state\n    // strikes again! See github issue #191.\n\n    var generatedMappings = aSourceMap._mappings.toArray().slice();\n    var destGeneratedMappings = smc.__generatedMappings = [];\n    var destOriginalMappings = smc.__originalMappings = [];\n\n    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n      var srcMapping = generatedMappings[i];\n      var destMapping = new Mapping;\n      destMapping.generatedLine = srcMapping.generatedLine;\n      destMapping.generatedColumn = srcMapping.generatedColumn;\n\n      if (srcMapping.source) {\n        destMapping.source = sources.indexOf(srcMapping.source);\n        destMapping.originalLine = srcMapping.originalLine;\n        destMapping.originalColumn = srcMapping.originalColumn;\n\n        if (srcMapping.name) {\n          destMapping.name = names.indexOf(srcMapping.name);\n        }\n\n        destOriginalMappings.push(destMapping);\n      }\n\n      destGeneratedMappings.push(destMapping);\n    }\n\n    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n    return smc;\n  };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    return this._sources.toArray().map(function (s) {\n      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n    }, this);\n  }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n  this.generatedLine = 0;\n  this.generatedColumn = 0;\n  this.source = null;\n  this.originalLine = null;\n  this.originalColumn = null;\n  this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    var generatedLine = 1;\n    var previousGeneratedColumn = 0;\n    var previousOriginalLine = 0;\n    var previousOriginalColumn = 0;\n    var previousSource = 0;\n    var previousName = 0;\n    var length = aStr.length;\n    var index = 0;\n    var cachedSegments = {};\n    var temp = {};\n    var originalMappings = [];\n    var generatedMappings = [];\n    var mapping, str, segment, end, value;\n\n    while (index < length) {\n      if (aStr.charAt(index) === ';') {\n        generatedLine++;\n        index++;\n        previousGeneratedColumn = 0;\n      }\n      else if (aStr.charAt(index) === ',') {\n        index++;\n      }\n      else {\n        mapping = new Mapping();\n        mapping.generatedLine = generatedLine;\n\n        // Because each offset is encoded relative to the previous one,\n        // many segments often have the same encoding. We can exploit this\n        // fact by caching the parsed variable length fields of each segment,\n        // allowing us to avoid a second parse if we encounter the same\n        // segment again.\n        for (end = index; end < length; end++) {\n          if (this._charIsMappingSeparator(aStr, end)) {\n            break;\n          }\n        }\n        str = aStr.slice(index, end);\n\n        segment = cachedSegments[str];\n        if (segment) {\n          index += str.length;\n        } else {\n          segment = [];\n          while (index < end) {\n            base64VLQ.decode(aStr, index, temp);\n            value = temp.value;\n            index = temp.rest;\n            segment.push(value);\n          }\n\n          if (segment.length === 2) {\n            throw new Error('Found a source, but no line and column');\n          }\n\n          if (segment.length === 3) {\n            throw new Error('Found a source and line, but no column');\n          }\n\n          cachedSegments[str] = segment;\n        }\n\n        // Generated column.\n        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n        previousGeneratedColumn = mapping.generatedColumn;\n\n        if (segment.length > 1) {\n          // Original source.\n          mapping.source = previousSource + segment[1];\n          previousSource += segment[1];\n\n          // Original line.\n          mapping.originalLine = previousOriginalLine + segment[2];\n          previousOriginalLine = mapping.originalLine;\n          // Lines are stored 0-based\n          mapping.originalLine += 1;\n\n          // Original column.\n          mapping.originalColumn = previousOriginalColumn + segment[3];\n          previousOriginalColumn = mapping.originalColumn;\n\n          if (segment.length > 4) {\n            // Original name.\n            mapping.name = previousName + segment[4];\n            previousName += segment[4];\n          }\n        }\n\n        generatedMappings.push(mapping);\n        if (typeof mapping.originalLine === 'number') {\n          originalMappings.push(mapping);\n        }\n      }\n    }\n\n    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n    this.__generatedMappings = generatedMappings;\n\n    quickSort(originalMappings, util.compareByOriginalPositions);\n    this.__originalMappings = originalMappings;\n  };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n                                         aColumnName, aComparator, aBias) {\n    // To return the position we are searching for, we must first find the\n    // mapping for the given position and then return the opposite position it\n    // points to. Because the mappings are sorted, we can use binary search to\n    // find the best mapping.\n\n    if (aNeedle[aLineName] <= 0) {\n      throw new TypeError('Line must be greater than or equal to 1, got '\n                          + aNeedle[aLineName]);\n    }\n    if (aNeedle[aColumnName] < 0) {\n      throw new TypeError('Column must be greater than or equal to 0, got '\n                          + aNeedle[aColumnName]);\n    }\n\n    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n  };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n  function SourceMapConsumer_computeColumnSpans() {\n    for (var index = 0; index < this._generatedMappings.length; ++index) {\n      var mapping = this._generatedMappings[index];\n\n      // Mappings do not contain a field for the last generated columnt. We\n      // can come up with an optimistic estimate, however, by assuming that\n      // mappings are contiguous (i.e. given two consecutive mappings, the\n      // first mapping ends where the second one starts).\n      if (index + 1 < this._generatedMappings.length) {\n        var nextMapping = this._generatedMappings[index + 1];\n\n        if (mapping.generatedLine === nextMapping.generatedLine) {\n          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n          continue;\n        }\n      }\n\n      // The last mapping for each line spans the entire line.\n      mapping.lastGeneratedColumn = Infinity;\n    }\n  };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n  function SourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._generatedMappings,\n      \"generatedLine\",\n      \"generatedColumn\",\n      util.compareByGeneratedPositionsDeflated,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._generatedMappings[index];\n\n      if (mapping.generatedLine === needle.generatedLine) {\n        var source = util.getArg(mapping, 'source', null);\n        if (source !== null) {\n          source = this._sources.at(source);\n          if (this.sourceRoot != null) {\n            source = util.join(this.sourceRoot, source);\n          }\n        }\n        var name = util.getArg(mapping, 'name', null);\n        if (name !== null) {\n          name = this._names.at(name);\n        }\n        return {\n          source: source,\n          line: util.getArg(mapping, 'originalLine', null),\n          column: util.getArg(mapping, 'originalColumn', null),\n          name: name\n        };\n      }\n    }\n\n    return {\n      source: null,\n      line: null,\n      column: null,\n      name: null\n    };\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n    if (!this.sourcesContent) {\n      return false;\n    }\n    return this.sourcesContent.length >= this._sources.size() &&\n      !this.sourcesContent.some(function (sc) { return sc == null; });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    if (!this.sourcesContent) {\n      return null;\n    }\n\n    if (this.sourceRoot != null) {\n      aSource = util.relative(this.sourceRoot, aSource);\n    }\n\n    if (this._sources.has(aSource)) {\n      return this.sourcesContent[this._sources.indexOf(aSource)];\n    }\n\n    var url;\n    if (this.sourceRoot != null\n        && (url = util.urlParse(this.sourceRoot))) {\n      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n      // many users. We can help them out when they expect file:// URIs to\n      // behave like it would if they were running a local HTTP server. See\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n      if (url.scheme == \"file\"\n          && this._sources.has(fileUriAbsPath)) {\n        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n      }\n\n      if ((!url.path || url.path == \"/\")\n          && this._sources.has(\"/\" + aSource)) {\n        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n      }\n    }\n\n    // This function is used recursively from\n    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n    // don't want to throw if we can't find the source - we just want to\n    // return null, so we provide a flag to exit gracefully.\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n  function SourceMapConsumer_generatedPositionFor(aArgs) {\n    var source = util.getArg(aArgs, 'source');\n    if (this.sourceRoot != null) {\n      source = util.relative(this.sourceRoot, source);\n    }\n    if (!this._sources.has(source)) {\n      return {\n        line: null,\n        column: null,\n        lastColumn: null\n      };\n    }\n    source = this._sources.indexOf(source);\n\n    var needle = {\n      source: source,\n      originalLine: util.getArg(aArgs, 'line'),\n      originalColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._originalMappings,\n      \"originalLine\",\n      \"originalColumn\",\n      util.compareByOriginalPositions,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (mapping.source === needle.source) {\n        return {\n          line: util.getArg(mapping, 'generatedLine', null),\n          column: util.getArg(mapping, 'generatedColumn', null),\n          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n        };\n      }\n    }\n\n    return {\n      line: null,\n      column: null,\n      lastColumn: null\n    };\n  };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The only parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - file: Optional. The generated file this source map is associated with.\n *   - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n *   - offset: The offset into the original specified at which this section\n *       begins to apply, defined as an object with a \"line\" and \"column\"\n *       field.\n *   - map: A source map definition. This source map could also be indexed,\n *       but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n *  {\n *    version : 3,\n *    file: \"app.js\",\n *    sections: [{\n *      offset: {line:100, column:10},\n *      map: {\n *        version : 3,\n *        file: \"section.js\",\n *        sources: [\"foo.js\", \"bar.js\"],\n *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n *        mappings: \"AAAA,E;;ABCDE;\"\n *      }\n *    }],\n *  }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sections = util.getArg(sourceMap, 'sections');\n\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n\n  var lastOffset = {\n    line: -1,\n    column: 0\n  };\n  this._sections = sections.map(function (s) {\n    if (s.url) {\n      // The url field will require support for asynchronicity.\n      // See https://github.com/mozilla/source-map/issues/16\n      throw new Error('Support for url field in sections not implemented.');\n    }\n    var offset = util.getArg(s, 'offset');\n    var offsetLine = util.getArg(offset, 'line');\n    var offsetColumn = util.getArg(offset, 'column');\n\n    if (offsetLine < lastOffset.line ||\n        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n      throw new Error('Section offsets must be ordered and non-overlapping.');\n    }\n    lastOffset = offset;\n\n    return {\n      generatedOffset: {\n        // The offset fields are 0-based, but we use 1-based indices when\n        // encoding/decoding from VLQ.\n        generatedLine: offsetLine + 1,\n        generatedColumn: offsetColumn + 1\n      },\n      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n    }\n  });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    var sources = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n        sources.push(this._sections[i].consumer.sources[j]);\n      }\n    }\n    return sources;\n  }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    // Find the section containing the generated position we're trying to map\n    // to an original position.\n    var sectionIndex = binarySearch.search(needle, this._sections,\n      function(needle, section) {\n        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n        if (cmp) {\n          return cmp;\n        }\n\n        return (needle.generatedColumn -\n                section.generatedOffset.generatedColumn);\n      });\n    var section = this._sections[sectionIndex];\n\n    if (!section) {\n      return {\n        source: null,\n        line: null,\n        column: null,\n        name: null\n      };\n    }\n\n    return section.consumer.originalPositionFor({\n      line: needle.generatedLine -\n        (section.generatedOffset.generatedLine - 1),\n      column: needle.generatedColumn -\n        (section.generatedOffset.generatedLine === needle.generatedLine\n         ? section.generatedOffset.generatedColumn - 1\n         : 0),\n      bias: aArgs.bias\n    });\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n    return this._sections.every(function (s) {\n      return s.consumer.hasContentsOfAllSources();\n    });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      var content = section.consumer.sourceContentFor(aSource, true);\n      if (content) {\n        return content;\n      }\n    }\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      // Only consider this section if the requested source is in the list of\n      // sources of the consumer.\n      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n        continue;\n      }\n      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n      if (generatedPosition) {\n        var ret = {\n          line: generatedPosition.line +\n            (section.generatedOffset.generatedLine - 1),\n          column: generatedPosition.column +\n            (section.generatedOffset.generatedLine === generatedPosition.line\n             ? section.generatedOffset.generatedColumn - 1\n             : 0)\n        };\n        return ret;\n      }\n    }\n\n    return {\n      line: null,\n      column: null\n    };\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    this.__generatedMappings = [];\n    this.__originalMappings = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n      var sectionMappings = section.consumer._generatedMappings;\n      for (var j = 0; j < sectionMappings.length; j++) {\n        var mapping = sectionMappings[j];\n\n        var source = section.consumer._sources.at(mapping.source);\n        if (section.consumer.sourceRoot !== null) {\n          source = util.join(section.consumer.sourceRoot, source);\n        }\n        this._sources.add(source);\n        source = this._sources.indexOf(source);\n\n        var name = section.consumer._names.at(mapping.name);\n        this._names.add(name);\n        name = this._names.indexOf(name);\n\n        // The mappings coming from the consumer for the section have\n        // generated positions relative to the start of the section, so we\n        // need to offset them to be relative to the start of the concatenated\n        // generated file.\n        var adjustedMapping = {\n          source: source,\n          generatedLine: mapping.generatedLine +\n            (section.generatedOffset.generatedLine - 1),\n          generatedColumn: mapping.generatedColumn +\n            (section.generatedOffset.generatedLine === mapping.generatedLine\n            ? section.generatedOffset.generatedColumn - 1\n            : 0),\n          originalLine: mapping.originalLine,\n          originalColumn: mapping.originalColumn,\n          name: name\n        };\n\n        this.__generatedMappings.push(adjustedMapping);\n        if (typeof adjustedMapping.originalLine === 'number') {\n          this.__originalMappings.push(adjustedMapping);\n        }\n      }\n    }\n\n    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n  };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-consumer.js\n// module id = 7\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n  // This function terminates when one of the following is true:\n  //\n  //   1. We find the exact element we are looking for.\n  //\n  //   2. We did not find the exact element, but we can return the index of\n  //      the next-closest element.\n  //\n  //   3. We did not find the exact element, and there is no next-closest\n  //      element than the one we are searching for, so we return -1.\n  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n  if (cmp === 0) {\n    // Found the element we are looking for.\n    return mid;\n  }\n  else if (cmp > 0) {\n    // Our needle is greater than aHaystack[mid].\n    if (aHigh - mid > 1) {\n      // The element is in the upper half.\n      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // The exact needle element was not found in this haystack. Determine if\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return aHigh < aHaystack.length ? aHigh : -1;\n    } else {\n      return mid;\n    }\n  }\n  else {\n    // Our needle is less than aHaystack[mid].\n    if (mid - aLow > 1) {\n      // The element is in the lower half.\n      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return mid;\n    } else {\n      return aLow < 0 ? -1 : aLow;\n    }\n  }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n *     array and returns -1, 0, or 1 depending on whether the needle is less\n *     than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n  if (aHaystack.length === 0) {\n    return -1;\n  }\n\n  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n  if (index < 0) {\n    return -1;\n  }\n\n  // We have found either the exact element, or the next-closest element than\n  // the one we are searching for. However, there may be more than one such\n  // element. Make sure we always return the smallest of these.\n  while (index - 1 >= 0) {\n    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n      break;\n    }\n    --index;\n  }\n\n  return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/binary-search.js\n// module id = 8\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n *        The array.\n * @param {Number} x\n *        The index of the first item.\n * @param {Number} y\n *        The index of the second item.\n */\nfunction swap(ary, x, y) {\n  var temp = ary[x];\n  ary[x] = ary[y];\n  ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n *        The lower bound on the range.\n * @param {Number} high\n *        The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n  return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n * @param {Number} p\n *        Start index of the array\n * @param {Number} r\n *        End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n  // If our lower bound is less than our upper bound, we (1) partition the\n  // array into two pieces and (2) recurse on each half. If it is not, this is\n  // the empty array and our base case.\n\n  if (p < r) {\n    // (1) Partitioning.\n    //\n    // The partitioning chooses a pivot between `p` and `r` and moves all\n    // elements that are less than or equal to the pivot to the before it, and\n    // all the elements that are greater than it after it. The effect is that\n    // once partition is done, the pivot is in the exact place it will be when\n    // the array is put in sorted order, and it will not need to be moved\n    // again. This runs in O(n) time.\n\n    // Always choose a random pivot so that an input array which is reverse\n    // sorted does not cause O(n^2) running time.\n    var pivotIndex = randomIntInRange(p, r);\n    var i = p - 1;\n\n    swap(ary, pivotIndex, r);\n    var pivot = ary[r];\n\n    // Immediately after `j` is incremented in this loop, the following hold\n    // true:\n    //\n    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n    //\n    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n    for (var j = p; j < r; j++) {\n      if (comparator(ary[j], pivot) <= 0) {\n        i += 1;\n        swap(ary, i, j);\n      }\n    }\n\n    swap(ary, i + 1, j);\n    var q = i + 1;\n\n    // (2) Recurse on each half.\n\n    doQuickSort(ary, comparator, p, q - 1);\n    doQuickSort(ary, comparator, q + 1, r);\n  }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n  doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/quick-sort.js\n// module id = 9\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n    // The SourceNode we want to fill with the generated code\n    // and the SourceMap\n    var node = new SourceNode();\n\n    // All even indices of this array are one line of the generated code,\n    // while all odd indices are the newlines between two adjacent lines\n    // (since `REGEX_NEWLINE` captures its match).\n    // Processed fragments are accessed by calling `shiftNextLine`.\n    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n    var remainingLinesIndex = 0;\n    var shiftNextLine = function() {\n      var lineContents = getNextLine();\n      // The last line of a file might not have a newline.\n      var newLine = getNextLine() || \"\";\n      return lineContents + newLine;\n\n      function getNextLine() {\n        return remainingLinesIndex < remainingLines.length ?\n            remainingLines[remainingLinesIndex++] : undefined;\n      }\n    };\n\n    // We need to remember the position of \"remainingLines\"\n    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n    // The generate SourceNodes we need a code range.\n    // To extract it current and last mapping is used.\n    // Here we store the last mapping.\n    var lastMapping = null;\n\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      if (lastMapping !== null) {\n        // We add the code from \"lastMapping\" to \"mapping\":\n        // First check if there is a new line in between.\n        if (lastGeneratedLine < mapping.generatedLine) {\n          // Associate first line with \"lastMapping\"\n          addMappingWithCode(lastMapping, shiftNextLine());\n          lastGeneratedLine++;\n          lastGeneratedColumn = 0;\n          // The remaining code is added without mapping\n        } else {\n          // There is no new line in between.\n          // Associate the code between \"lastGeneratedColumn\" and\n          // \"mapping.generatedColumn\" with \"lastMapping\"\n          var nextLine = remainingLines[remainingLinesIndex];\n          var code = nextLine.substr(0, mapping.generatedColumn -\n                                        lastGeneratedColumn);\n          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n                                              lastGeneratedColumn);\n          lastGeneratedColumn = mapping.generatedColumn;\n          addMappingWithCode(lastMapping, code);\n          // No more remaining code, continue\n          lastMapping = mapping;\n          return;\n        }\n      }\n      // We add the generated code until the first mapping\n      // to the SourceNode without any mapping.\n      // Each line is added as separate string.\n      while (lastGeneratedLine < mapping.generatedLine) {\n        node.add(shiftNextLine());\n        lastGeneratedLine++;\n      }\n      if (lastGeneratedColumn < mapping.generatedColumn) {\n        var nextLine = remainingLines[remainingLinesIndex];\n        node.add(nextLine.substr(0, mapping.generatedColumn));\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n      }\n      lastMapping = mapping;\n    }, this);\n    // We have processed all mappings.\n    if (remainingLinesIndex < remainingLines.length) {\n      if (lastMapping) {\n        // Associate the remaining code in the current line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n      }\n      // and add the remaining lines without any mapping\n      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n    }\n\n    // Copy sourcesContent into SourceNode\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aRelativePath != null) {\n          sourceFile = util.join(aRelativePath, sourceFile);\n        }\n        node.setSourceContent(sourceFile, content);\n      }\n    });\n\n    return node;\n\n    function addMappingWithCode(mapping, code) {\n      if (mapping === null || mapping.source === undefined) {\n        node.add(code);\n      } else {\n        var source = aRelativePath\n          ? util.join(aRelativePath, mapping.source)\n          : mapping.source;\n        node.add(new SourceNode(mapping.originalLine,\n                                mapping.originalColumn,\n                                source,\n                                code,\n                                mapping.name));\n      }\n    }\n  };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length-1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    }\n    else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n                     line: this.line,\n                     column: this.column,\n                     name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len-1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  }\n  else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  }\n  else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n  };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n  function SourceNode_walkSourceContents(aFn) {\n    for (var i = 0, len = this.children.length; i < len; i++) {\n      if (this.children[i][isSourceNode]) {\n        this.children[i].walkSourceContents(aFn);\n      }\n    }\n\n    var sources = Object.keys(this.sourceContents);\n    for (var i = 0, len = sources.length; i < len; i++) {\n      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n    }\n  };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null\n        && original.line !== null\n        && original.column !== null) {\n      if(lastOriginalSource !== original.source\n         || lastOriginalLine !== original.line\n         || lastOriginalColumn !== original.column\n         || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-node.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js-74-    if (deprecratedKey) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js:75:      console.trace(`Visitor defined for ${nodeType} but it has been renamed to ${deprecratedKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js-76-      aliases = [deprecratedKey];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js-115-    if (t.TYPES.indexOf(nodeType) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js:116:      throw new Error(`You gave us a visitor for the node type ${nodeType} but it's not a valid type`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js-117-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js-123-        if (visitorKey === "enter" || visitorKey === "exit") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js:124:          validateVisitorMethods(`${nodeType}.${visitorKey}`, visitors[visitorKey]);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js-125-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js:126:          throw new Error("You passed `traverse()` a visitor object with the property " + `${nodeType} that has the invalid property ${visitorKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js-127-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js-139-    if (typeof fn !== "function") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js:140:      throw new TypeError(`Non-function found defined in ${path} with type ${typeof fn}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/visitors.js-141-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/modification.js-172-      const type = Array.isArray(node) ? "array" : typeof node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/modification.js:173:      throw new Error(`Node list ${msg} with the index of ${i} and type of ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/modification.js-174-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-161-      let key = path.key;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js:162:      if (path.inList) key = `${path.listKey}[${key}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-163-      parts.unshift(key);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-170-    if (!debug.enabled) return;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js:171:    debug(`${this.getPathLocation()} ${this.type}: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-172-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-233-for (const type of t.TYPES) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js:234:  const typeKey = `is${type}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-235-  const fn = t[typeKey];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-240-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js:241:  NodePath.prototype[`assert${type}`] = function (opts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-242-    if (!fn(this.node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js:243:      throw new TypeError(`Expected node path of type ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-244-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-252-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js:253:  NodePath.prototype[`is${type}`] = function (opts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/index.js-254-    return virtualType.checkPath(this, opts);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/context.js-61-    if (ret) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/context.js:62:      throw new Error(`Unexpected return value from visitor method ${fn}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/context.js-63-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/conversion.js-323-  const op = isAssignment ? "set" : "get";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/conversion.js:324:  return getBinding(thisEnvFn, `superprop_${op}:${propName || ""}`, () => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/conversion.js-325-    const argsList = [];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/replacement.js-77-  try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/replacement.js:78:    replacement = `(${replacement})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/replacement.js-79-    replacement = (0, _parser.parse)(replacement);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/replacement.js-174-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/replacement.js:175:  this.debug(`Replace with ${node && node.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/replacement.js-176-  this.node = this.container[this.key] = node;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/inference/index.js-89-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/inference/index.js:90:      throw new Error(`Unknown base type ${baseName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/path/inference/index.js-91-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/index.js-56-    if (parent.type !== "Program" && parent.type !== "File") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/index.js:57:      throw new Error("You must pass a scope and parentPath unless traversing a Program/File. " + `Instead of that you tried to traverse a ${parent.type} node without ` + "passing scope and parentPath.");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/index.js-58-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/scope/index.js-345-    if (i > 1) id += i;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/scope/index.js:346:    return `_${id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/scope/index.js-347-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/scope/index.js-401-    if (duplicate) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/scope/index.js:402:      throw this.hub.buildError(id, `Duplicate declaration "${name}"`, TypeError);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/scope/index.js-403-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/scope/index.js-784-    const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/scope/index.js:785:    const dataKey = `declaration:${kind}:${blockHoist}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/traverse/lib/scope/index.js-786-    let declarPath = !unique && path.getData(dataKey);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/base.js-76-  if (!unescapedDoubleQuoteRE.test(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/base.js:77:    this.token(`"${value}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/base.js-78-  } else if (!unescapedSingleQuoteRE.test(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/base.js:79:    this.token(`'${value}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/base.js-80-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/base.js-85-function InterpreterDirective(node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/base.js:86:  this.token(`#!${node.value}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/base.js-87-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/types.js-133-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/types.js:134:    throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)} received).`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/types.js-135-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/types.js-164-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/types.js:165:    throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/types.js-166-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/types.js-184-function RegExpLiteral(node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/types.js:185:  this.word(`/${node.pattern}/${node.flags}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/generators/types.js-186-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/printer.js-268-    if (!printMethod) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/printer.js:269:      throw new ReferenceError(`unknown node of type ${JSON.stringify(node.type)} with constructor ${JSON.stringify(node && node.constructor.name)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/printer.js-270-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/printer.js-456-    if (!this.endsWith("[") && !this.endsWith("{")) this.space();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/printer.js:457:    let val = !isBlockComment && !this._noLineTerminator ? `//${comment.value}\n` : `/*${comment.value}*/`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/printer.js-458-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/printer.js-467-      const indentSize = Math.max(this._getIndent().length, this._buf.getCurrentColumn());
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/printer.js:468:      val = val.replace(/\n(?!$)/g, `\n${(0, _repeat.default)(" ", indentSize)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/printer.js-469-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/index.js-65-    if (format.compact) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/index.js:66:      console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/generator/lib/index.js-67-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/helper-function-name/lib/index.js-62-  if (t.isRegExpLiteral(id)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/helper-function-name/lib/index.js:63:    return `_${id.pattern}_${id.flags}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/helper-function-name/lib/index.js-64-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js-109-    const number = start + 1 + index;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js:110:    const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js:111:    const gutter = ` ${paddedNumber} | `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js-112-    const hasMarker = markerLines[number];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js-129-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js:130:      return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js-131-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js-134-  if (opts.message && !hasColumns) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js:135:    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/code-frame/lib/index.js-136-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-733-    const loc = this.getLocationForPosition(pos);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js:734:    const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-735-    return this._raise(Object.assign({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-4934-  if (x == null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js:4935:    throw new Error(`Unexpected ${x} value.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-4936-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-7311-  if (hasPlugin(plugins, "pipelineOperator") && !PIPELINE_PROPOSALS.includes(getPluginOption(plugins, "pipelineOperator", "proposal"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js:7312:    throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: " + PIPELINE_PROPOSALS.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-7313-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-7315-  if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js:7316:    throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-7317-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-8753-    if (typeof messageOrType !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js:8754:      messageOrType = `Unexpected token, expected "${messageOrType.label}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-8755-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-8763-        missingPlugin: [name]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js:8764:      }, `This experimental syntax requires enabling the parser plugin: '${name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-8765-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-8773-        missingPlugin: names
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js:8774:      }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-8775-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-9192-        if (checkClashes) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js:9193:          const key = `_${expr.name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-9194-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-10907-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js:10908:        throw new Error(`Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js-10909-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/lib/index.js.map:1:{"version":3,"file":"index.js","sources":["../src/tokenizer/types.js","../src/util/scopeflags.js","../src/util/whitespace.js","../src/util/location.js","../src/parser/base.js","../src/parser/comments.js","../src/parser/location.js","../src/plugins/estree.js","../src/tokenizer/context.js","../../babel-helper-validator-identifier/src/identifier.js","../../babel-helper-validator-identifier/src/keyword.js","../src/util/identifier.js","../src/plugins/flow.js","../src/plugins/jsx/xhtml.js","../src/plugins/jsx/index.js","../src/util/scope.js","../src/plugins/typescript/scope.js","../src/util/production-parameter.js","../src/plugins/typescript/index.js","../src/plugins/placeholders.js","../src/plugins/v8intrinsic.js","../src/plugin-utils.js","../src/options.js","../src/tokenizer/state.js","../src/tokenizer/index.js","../src/parser/util.js","../src/parser/node.js","../src/parser/lval.js","../src/parser/expression.js","../src/parser/statement.js","../src/util/class-scope.js","../src/parser/index.js","../src/index.js"],"sourcesContent":["// @flow\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n  keyword?: string,\n  beforeExpr?: boolean,\n  startsExpr?: boolean,\n  rightAssociative?: boolean,\n  isLoop?: boolean,\n  isAssign?: boolean,\n  prefix?: boolean,\n  postfix?: boolean,\n  binop?: ?number,\n};\n\nexport class TokenType {\n  label: string;\n  keyword: ?string;\n  beforeExpr: boolean;\n  startsExpr: boolean;\n  rightAssociative: boolean;\n  isLoop: boolean;\n  isAssign: boolean;\n  prefix: boolean;\n  postfix: boolean;\n  binop: ?number;\n  updateContext: ?(prevType: TokenType) => void;\n\n  constructor(label: string, conf: TokenOptions = {}) {\n    this.label = label;\n    this.keyword = conf.keyword;\n    this.beforeExpr = !!conf.beforeExpr;\n    this.startsExpr = !!conf.startsExpr;\n    this.rightAssociative = !!conf.rightAssociative;\n    this.isLoop = !!conf.isLoop;\n    this.isAssign = !!conf.isAssign;\n    this.prefix = !!conf.prefix;\n    this.postfix = !!conf.postfix;\n    this.binop = conf.binop != null ? conf.binop : null;\n    this.updateContext = null;\n  }\n}\n\nexport const keywords = new Map<string, TokenType>();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n  options.keyword = name;\n  const token = new TokenType(name, options);\n  keywords.set(name, token);\n  return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n  return new TokenType(name, { beforeExpr, binop });\n}\n\nexport const types: { [name: string]: TokenType } = {\n  num: new TokenType(\"num\", { startsExpr }),\n  bigint: new TokenType(\"bigint\", { startsExpr }),\n  regexp: new TokenType(\"regexp\", { startsExpr }),\n  string: new TokenType(\"string\", { startsExpr }),\n  name: new TokenType(\"name\", { startsExpr }),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", { beforeExpr, startsExpr }),\n  bracketHashL: new TokenType(\"#[\", { beforeExpr, startsExpr }),\n  bracketBarL: new TokenType(\"[|\", { beforeExpr, startsExpr }),\n  bracketR: new TokenType(\"]\"),\n  bracketBarR: new TokenType(\"|]\"),\n  braceL: new TokenType(\"{\", { beforeExpr, startsExpr }),\n  braceBarL: new TokenType(\"{|\", { beforeExpr, startsExpr }),\n  braceHashL: new TokenType(\"#{\", { beforeExpr, startsExpr }),\n  braceR: new TokenType(\"}\"),\n  braceBarR: new TokenType(\"|}\"),\n  parenL: new TokenType(\"(\", { beforeExpr, startsExpr }),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", { beforeExpr }),\n  semi: new TokenType(\";\", { beforeExpr }),\n  colon: new TokenType(\":\", { beforeExpr }),\n  doubleColon: new TokenType(\"::\", { beforeExpr }),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", { beforeExpr }),\n  questionDot: new TokenType(\"?.\"),\n  arrow: new TokenType(\"=>\", { beforeExpr }),\n  template: new TokenType(\"template\"),\n  ellipsis: new TokenType(\"...\", { beforeExpr }),\n  backQuote: new TokenType(\"`\", { startsExpr }),\n  dollarBraceL: new TokenType(\"${\", { beforeExpr, startsExpr }),\n  at: new TokenType(\"@\"),\n  hash: new TokenType(\"#\", { startsExpr }),\n\n  // Special hashbang token.\n  interpreterDirective: new TokenType(\"#!...\"),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", { beforeExpr, isAssign }),\n  assign: new TokenType(\"_=\", { beforeExpr, isAssign }),\n  incDec: new TokenType(\"++/--\", { prefix, postfix, startsExpr }),\n  bang: new TokenType(\"!\", { beforeExpr, prefix, startsExpr }),\n  tilde: new TokenType(\"~\", { beforeExpr, prefix, startsExpr }),\n  pipeline: createBinop(\"|>\", 0),\n  nullishCoalescing: createBinop(\"??\", 1),\n  logicalOR: createBinop(\"||\", 1),\n  logicalAND: createBinop(\"&&\", 2),\n  bitwiseOR: createBinop(\"|\", 3),\n  bitwiseXOR: createBinop(\"^\", 4),\n  bitwiseAND: createBinop(\"&\", 5),\n  equality: createBinop(\"==/!=/===/!==\", 6),\n  relational: createBinop(\"</>/<=/>=\", 7),\n  bitShift: createBinop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n  // startsExpr: required by v8intrinsic plugin\n  modulo: new TokenType(\"%\", { beforeExpr, binop: 10, startsExpr }),\n  star: createBinop(\"*\", 10),\n  slash: createBinop(\"/\", 10),\n  exponent: new TokenType(\"**\", {\n    beforeExpr,\n    binop: 11,\n    rightAssociative: true,\n  }),\n\n  // Keywords\n  // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n  // when new keywords are added\n  _break: createKeyword(\"break\"),\n  _case: createKeyword(\"case\", { beforeExpr }),\n  _catch: createKeyword(\"catch\"),\n  _continue: createKeyword(\"continue\"),\n  _debugger: createKeyword(\"debugger\"),\n  _default: createKeyword(\"default\", { beforeExpr }),\n  _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n  _else: createKeyword(\"else\", { beforeExpr }),\n  _finally: createKeyword(\"finally\"),\n  _for: createKeyword(\"for\", { isLoop }),\n  _function: createKeyword(\"function\", { startsExpr }),\n  _if: createKeyword(\"if\"),\n  _return: createKeyword(\"return\", { beforeExpr }),\n  _switch: createKeyword(\"switch\"),\n  _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n  _try: createKeyword(\"try\"),\n  _var: createKeyword(\"var\"),\n  _const: createKeyword(\"const\"),\n  _while: createKeyword(\"while\", { isLoop }),\n  _with: createKeyword(\"with\"),\n  _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n  _this: createKeyword(\"this\", { startsExpr }),\n  _super: createKeyword(\"super\", { startsExpr }),\n  _class: createKeyword(\"class\", { startsExpr }),\n  _extends: createKeyword(\"extends\", { beforeExpr }),\n  _export: createKeyword(\"export\"),\n  _import: createKeyword(\"import\", { startsExpr }),\n  _null: createKeyword(\"null\", { startsExpr }),\n  _true: createKeyword(\"true\", { startsExpr }),\n  _false: createKeyword(\"false\", { startsExpr }),\n  _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n  _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n  _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n  _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n  _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n};\n","// @flow\n\n// Each scope gets a bitset that may contain these flags\n// prettier-ignore\nexport const SCOPE_OTHER        = 0b00000000,\n             SCOPE_PROGRAM      = 0b00000001,\n             SCOPE_FUNCTION     = 0b00000010,\n             SCOPE_ARROW        = 0b00000100,\n             SCOPE_SIMPLE_CATCH = 0b00001000,\n             SCOPE_SUPER        = 0b00010000,\n             SCOPE_DIRECT_SUPER = 0b00100000,\n             SCOPE_CLASS        = 0b01000000,\n             SCOPE_TS_MODULE    = 0b10000000,\n             SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE;\n\nexport type ScopeFlags =\n  | typeof SCOPE_OTHER\n  | typeof SCOPE_PROGRAM\n  | typeof SCOPE_FUNCTION\n  | typeof SCOPE_VAR\n  | typeof SCOPE_ARROW\n  | typeof SCOPE_SIMPLE_CATCH\n  | typeof SCOPE_SUPER\n  | typeof SCOPE_DIRECT_SUPER\n  | typeof SCOPE_CLASS;\n\n// These flags are meant to be _only_ used inside the Scope class (or subclasses).\n// prettier-ignore\nexport const BIND_KIND_VALUE           = 0b00000_0000_01,\n             BIND_KIND_TYPE            = 0b00000_0000_10,\n             // Used in checkLVal and declareName to determine the type of a binding\n             BIND_SCOPE_VAR            = 0b00000_0001_00, // Var-style binding\n             BIND_SCOPE_LEXICAL        = 0b00000_0010_00, // Let- or const-style binding\n             BIND_SCOPE_FUNCTION       = 0b00000_0100_00, // Function declaration\n             BIND_SCOPE_OUTSIDE        = 0b00000_1000_00, // Special case for function names as\n                                                   // bound inside the function\n             // Misc flags\n             BIND_FLAGS_NONE           = 0b00001_0000_00,\n             BIND_FLAGS_CLASS          = 0b00010_0000_00,\n             BIND_FLAGS_TS_ENUM        = 0b00100_0000_00,\n             BIND_FLAGS_TS_CONST_ENUM  = 0b01000_0000_00,\n             BIND_FLAGS_TS_EXPORT_ONLY = 0b10000_0000_00;\n\n// These flags are meant to be _only_ used by Scope consumers\n// prettier-ignore\n/*                              =    is value?    |    is type?    |      scope          |    misc flags    */\nexport const BIND_CLASS         = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_CLASS  ,\n             BIND_LEXICAL       = BIND_KIND_VALUE | 0              | BIND_SCOPE_LEXICAL  | 0                 ,\n             BIND_VAR           = BIND_KIND_VALUE | 0              | BIND_SCOPE_VAR      | 0                 ,\n             BIND_FUNCTION      = BIND_KIND_VALUE | 0              | BIND_SCOPE_FUNCTION | 0                 ,\n             BIND_TS_INTERFACE  = 0               | BIND_KIND_TYPE | 0                   | BIND_FLAGS_CLASS  ,\n             BIND_TS_TYPE       = 0               | BIND_KIND_TYPE | 0                   | 0                 ,\n             BIND_TS_ENUM       = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_TS_ENUM,\n             BIND_TS_AMBIENT    = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY,\n             // These bindings don't introduce anything in the scope. They are used for assignments and\n             // function expressions IDs.\n             BIND_NONE          = 0               | 0              | 0                   | BIND_FLAGS_NONE   ,\n             BIND_OUTSIDE       = BIND_KIND_VALUE | 0              | 0                   | BIND_FLAGS_NONE   ,\n\n             BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM,\n             BIND_TS_NAMESPACE  = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY;\n\nexport type BindingTypes =\n  | typeof BIND_NONE\n  | typeof BIND_OUTSIDE\n  | typeof BIND_VAR\n  | typeof BIND_LEXICAL\n  | typeof BIND_CLASS\n  | typeof BIND_FUNCTION\n  | typeof BIND_TS_INTERFACE\n  | typeof BIND_TS_TYPE\n  | typeof BIND_TS_ENUM\n  | typeof BIND_TS_AMBIENT\n  | typeof BIND_TS_NAMESPACE;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_FLAG_STATIC = 0b1_00,\n             CLASS_ELEMENT_KIND_GETTER = 0b0_10,\n             CLASS_ELEMENT_KIND_SETTER = 0b0_01,\n             CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_STATIC_GETTER   = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_STATIC_SETTER   = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER,\n             CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER,\n             CLASS_ELEMENT_OTHER           = 0;\n\nexport type ClassElementTypes =\n  | typeof CLASS_ELEMENT_STATIC_GETTER\n  | typeof CLASS_ELEMENT_STATIC_SETTER\n  | typeof CLASS_ELEMENT_INSTANCE_GETTER\n  | typeof CLASS_ELEMENT_INSTANCE_SETTER\n  | typeof CLASS_ELEMENT_OTHER;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n  switch (code) {\n    case charCodes.lineFeed:\n    case charCodes.carriageReturn:\n    case charCodes.lineSeparator:\n    case charCodes.paragraphSeparator:\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n  switch (code) {\n    case 0x0009: // CHARACTER TABULATION\n    case 0x000b: // LINE TABULATION\n    case 0x000c: // FORM FEED\n    case charCodes.space:\n    case charCodes.nonBreakingSpace:\n    case charCodes.oghamSpaceMark:\n    case 0x2000: // EN QUAD\n    case 0x2001: // EM QUAD\n    case 0x2002: // EN SPACE\n    case 0x2003: // EM SPACE\n    case 0x2004: // THREE-PER-EM SPACE\n    case 0x2005: // FOUR-PER-EM SPACE\n    case 0x2006: // SIX-PER-EM SPACE\n    case 0x2007: // FIGURE SPACE\n    case 0x2008: // PUNCTUATION SPACE\n    case 0x2009: // THIN SPACE\n    case 0x200a: // HAIR SPACE\n    case 0x202f: // NARROW NO-BREAK SPACE\n    case 0x205f: // MEDIUM MATHEMATICAL SPACE\n    case 0x3000: // IDEOGRAPHIC SPACE\n    case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n      return true;\n\n    default:\n      return false;\n  }\n}\n","// @flow\n\nimport { lineBreakG } from \"./whitespace\";\n\nexport type Pos = {\n  start: number,\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  line: number;\n  column: number;\n\n  constructor(line: number, col: number) {\n    this.line = line;\n    this.column = col;\n  }\n}\n\nexport class SourceLocation {\n  start: Position;\n  end: Position;\n  filename: string;\n  identifierName: ?string;\n\n  constructor(start: Position, end?: Position) {\n    this.start = start;\n    // $FlowIgnore (may start as null, but initialized later)\n    this.end = end;\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input: string, offset: number): Position {\n  let line = 1;\n  let lineStart = 0;\n  let match;\n  lineBreakG.lastIndex = 0;\n  while ((match = lineBreakG.exec(input)) && match.index < offset) {\n    line++;\n    lineStart = lineBreakG.lastIndex;\n  }\n\n  return new Position(line, offset - lineStart);\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type State from \"../tokenizer/state\";\nimport type { PluginsMap } from \"./index\";\nimport type ScopeHandler from \"../util/scope\";\nimport type ClassScopeHandler from \"../util/class-scope\";\nimport type ProductionParameterHandler from \"../util/production-parameter\";\n\nexport default class BaseParser {\n  // Properties set by constructor in index.js\n  options: Options;\n  inModule: boolean;\n  scope: ScopeHandler<*>;\n  classScope: ClassScopeHandler;\n  prodParam: ProductionParameterHandler;\n  plugins: PluginsMap;\n  filename: ?string;\n  sawUnambiguousESM: boolean = false;\n  ambiguousScriptDifferentAst: boolean = false;\n\n  // Initialized by Tokenizer\n  state: State;\n  // input and length are not in state as they are constant and we do\n  // not want to ever copy them, which happens if state gets cloned\n  input: string;\n  length: number;\n\n  hasPlugin(name: string): boolean {\n    return this.plugins.has(name);\n  }\n\n  getPluginOption(plugin: string, name: string) {\n    // $FlowIssue\n    if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name];\n  }\n}\n","// @flow\n\n/**\n * Based on the comment attachment algorithm used in espree and estraverse.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n *   notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n *   notice, this list of conditions and the following disclaimer in the\n *   documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport BaseParser from \"./base\";\nimport type { Comment, Node } from \"../types\";\n\nfunction last<T>(stack: $ReadOnlyArray<T>): T {\n  return stack[stack.length - 1];\n}\n\nexport default class CommentsParser extends BaseParser {\n  addComment(comment: Comment): void {\n    if (this.filename) comment.loc.filename = this.filename;\n    this.state.trailingComments.push(comment);\n    this.state.leadingComments.push(comment);\n  }\n\n  adjustCommentsAfterTrailingComma(\n    node: Node,\n    elements: (Node | null)[],\n    // When the current node is followed by a token which hasn't a respective AST node, we\n    // need to take all the trailing comments to prevent them from being attached to an\n    // unrelated node. e.g. in\n    //     var { x } /* cmt */ = { y }\n    // we don't want /* cmt */ to be attached to { y }.\n    // On the other hand, in\n    //     fn(x) [new line] /* cmt */ [new line] y\n    // /* cmt */ is both a trailing comment of fn(x) and a leading comment of y\n    takeAllComments?: boolean,\n  ) {\n    if (this.state.leadingComments.length === 0) {\n      return;\n    }\n\n    let lastElement = null;\n    let i = elements.length;\n    while (lastElement === null && i > 0) {\n      lastElement = elements[--i];\n    }\n    if (lastElement === null) {\n      return;\n    }\n\n    for (let j = 0; j < this.state.leadingComments.length; j++) {\n      if (\n        this.state.leadingComments[j].end < this.state.commentPreviousNode.end\n      ) {\n        this.state.leadingComments.splice(j, 1);\n        j--;\n      }\n    }\n\n    const newTrailingComments = [];\n    for (let i = 0; i < this.state.leadingComments.length; i++) {\n      const leadingComment = this.state.leadingComments[i];\n      if (leadingComment.end < node.end) {\n        newTrailingComments.push(leadingComment);\n\n        // Perf: we don't need to splice if we are going to reset the array anyway\n        if (!takeAllComments) {\n          this.state.leadingComments.splice(i, 1);\n          i--;\n        }\n      } else {\n        if (node.trailingComments === undefined) {\n          node.trailingComments = [];\n        }\n        node.trailingComments.push(leadingComment);\n      }\n    }\n    if (takeAllComments) this.state.leadingComments = [];\n\n    if (newTrailingComments.length > 0) {\n      lastElement.trailingComments = newTrailingComments;\n    } else if (lastElement.trailingComments !== undefined) {\n      lastElement.trailingComments = [];\n    }\n  }\n\n  processComment(node: Node): void {\n    if (node.type === \"Program\" && node.body.length > 0) return;\n\n    const stack = this.state.commentStack;\n\n    let firstChild, lastChild, trailingComments, i, j;\n\n    if (this.state.trailingComments.length > 0) {\n      // If the first comment in trailingComments comes after the\n      // current node, then we're good - all comments in the array will\n      // come after the node and so it's safe to add them as official\n      // trailingComments.\n      if (this.state.trailingComments[0].start >= node.end) {\n        trailingComments = this.state.trailingComments;\n        this.state.trailingComments = [];\n      } else {\n        // Otherwise, if the first comment doesn't come after the\n        // current node, that means we have a mix of leading and trailing\n        // comments in the array and that leadingComments contains the\n        // same items as trailingComments. Reset trailingComments to\n        // zero items and we'll handle this by evaluating leadingComments\n        // later.\n        this.state.trailingComments.length = 0;\n      }\n    } else if (stack.length > 0) {\n      const lastInStack = last(stack);\n      if (\n        lastInStack.trailingComments &&\n        lastInStack.trailingComments[0].start >= node.end\n      ) {\n        trailingComments = lastInStack.trailingComments;\n        delete lastInStack.trailingComments;\n      }\n    }\n\n    // Eating the stack.\n    if (stack.length > 0 && last(stack).start >= node.start) {\n      firstChild = stack.pop();\n    }\n\n    while (stack.length > 0 && last(stack).start >= node.start) {\n      lastChild = stack.pop();\n    }\n\n    if (!lastChild && firstChild) lastChild = firstChild;\n\n    // Adjust comments that follow a trailing comma on the last element in a\n    // comma separated list of nodes to be the trailing comments on the last\n    // element\n    if (firstChild) {\n      switch (node.type) {\n        case \"ObjectExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties);\n          break;\n        case \"ObjectPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties, true);\n          break;\n        case \"CallExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.arguments);\n          break;\n        case \"ArrayExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements);\n          break;\n        case \"ArrayPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements, true);\n          break;\n      }\n    } else if (\n      this.state.commentPreviousNode &&\n      ((this.state.commentPreviousNode.type === \"ImportSpecifier\" &&\n        node.type !== \"ImportSpecifier\") ||\n        (this.state.commentPreviousNode.type === \"ExportSpecifier\" &&\n          node.type !== \"ExportSpecifier\"))\n    ) {\n      this.adjustCommentsAfterTrailingComma(node, [\n        this.state.commentPreviousNode,\n      ]);\n    }\n\n    if (lastChild) {\n      if (lastChild.leadingComments) {\n        if (\n          lastChild !== node &&\n          lastChild.leadingComments.length > 0 &&\n          last(lastChild.leadingComments).end <= node.start\n        ) {\n          node.leadingComments = lastChild.leadingComments;\n          delete lastChild.leadingComments;\n        } else {\n          // A leading comment for an anonymous class had been stolen by its first ClassMethod,\n          // so this takes back the leading comment.\n          // See also: https://github.com/eslint/espree/issues/158\n          for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\n            if (lastChild.leadingComments[i].end <= node.start) {\n              node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\n              break;\n            }\n          }\n        }\n      }\n    } else if (this.state.leadingComments.length > 0) {\n      if (last(this.state.leadingComments).end <= node.start) {\n        if (this.state.commentPreviousNode) {\n          for (j = 0; j < this.state.leadingComments.length; j++) {\n            if (\n              this.state.leadingComments[j].end <\n              this.state.commentPreviousNode.end\n            ) {\n              this.state.leadingComments.splice(j, 1);\n              j--;\n            }\n          }\n        }\n        if (this.state.leadingComments.length > 0) {\n          node.leadingComments = this.state.leadingComments;\n          this.state.leadingComments = [];\n        }\n      } else {\n        // https://github.com/eslint/espree/issues/2\n        //\n        // In special cases, such as return (without a value) and\n        // debugger, all comments will end up as leadingComments and\n        // will otherwise be eliminated. This step runs when the\n        // commentStack is empty and there are comments left\n        // in leadingComments.\n        //\n        // This loop figures out the stopping point between the actual\n        // leading and trailing comments by finding the location of the\n        // first comment that comes after the given node.\n        for (i = 0; i < this.state.leadingComments.length; i++) {\n          if (this.state.leadingComments[i].end > node.start) {\n            break;\n          }\n        }\n\n        // Split the array based on the location of the first comment\n        // that comes after the node. Keep in mind that this could\n        // result in an empty array, and if so, the array must be\n        // deleted.\n        const leadingComments = this.state.leadingComments.slice(0, i);\n\n        if (leadingComments.length) {\n          node.leadingComments = leadingComments;\n        }\n\n        // Similarly, trailing comments are attached later. The variable\n        // must be reset to null if there are no trailing comments.\n        trailingComments = this.state.leadingComments.slice(i);\n        if (trailingComments.length === 0) {\n          trailingComments = null;\n        }\n      }\n    }\n\n    this.state.commentPreviousNode = node;\n\n    if (trailingComments) {\n      if (\n        trailingComments.length &&\n        trailingComments[0].start >= node.start &&\n        last(trailingComments).end <= node.end\n      ) {\n        node.innerComments = trailingComments;\n      } else {\n        node.trailingComments = trailingComments;\n      }\n    }\n\n    stack.push(node);\n  }\n}\n","// @flow\n/* eslint sort-keys: \"error\" */\nimport { getLineInfo, type Position } from \"../util/location\";\nimport CommentsParser from \"./comments\";\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\ntype ErrorContext = {\n  pos: number,\n  loc: Position,\n  missingPlugin?: Array<string>,\n  code?: string,\n};\n\n// The Errors key follows https://cs.chromium.org/chromium/src/v8/src/common/message-template.h unless it does not exist\nexport const Errors = Object.freeze({\n  ArgumentsDisallowedInInitializer:\n    \"'arguments' is not allowed in class field initializer\",\n  AsyncFunctionInSingleStatementContext:\n    \"Async functions can only be declared at the top level or inside a block\",\n  AwaitBindingIdentifier:\n    \"Can not use 'await' as identifier inside an async function\",\n  AwaitExpressionFormalParameter:\n    \"await is not allowed in async function parameters\",\n  AwaitNotInAsyncFunction:\n    \"Can not use keyword 'await' outside an async function\",\n  BadGetterArity: \"getter must not have any formal parameters\",\n  BadSetterArity: \"setter must have exactly one formal parameter\",\n  BadSetterRestParameter:\n    \"setter function argument must not be a rest parameter\",\n  ConstructorClassField: \"Classes may not have a field named 'constructor'\",\n  ConstructorClassPrivateField:\n    \"Classes may not have a private field named '#constructor'\",\n  ConstructorIsAccessor: \"Class constructor may not be an accessor\",\n  ConstructorIsAsync: \"Constructor can't be an async function\",\n  ConstructorIsGenerator: \"Constructor can't be a generator\",\n  DeclarationMissingInitializer: \"%0 require an initialization value\",\n  DecoratorBeforeExport:\n    \"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax\",\n  DecoratorConstructor:\n    \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n  DecoratorExportClass:\n    \"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\",\n  DecoratorSemicolon: \"Decorators must not be followed by a semicolon\",\n  DeletePrivateField: \"Deleting a private field is not allowed\",\n  DestructureNamedImport:\n    \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n  DuplicateConstructor: \"Duplicate constructor in the same class\",\n  DuplicateDefaultExport: \"Only one default export allowed per module.\",\n  DuplicateExport:\n    \"`%0` has already been exported. Exported identifiers must be unique.\",\n  DuplicateProto: \"Redefinition of __proto__ property\",\n  DuplicateRegExpFlags: \"Duplicate regular expression flag\",\n  ElementAfterRest: \"Rest element must be last element\",\n  EscapedCharNotAnIdentifier: \"Invalid Unicode escape\",\n  ForInOfLoopInitializer:\n    \"%0 loop variable declaration may not have an initializer\",\n  GeneratorInSingleStatementContext:\n    \"Generators can only be declared at the top level or inside a block\",\n  IllegalBreakContinue: \"Unsyntactic %0\",\n  IllegalLanguageModeDirective:\n    \"Illegal 'use strict' directive in function with non-simple parameter list\",\n  IllegalReturn: \"'return' outside of function\",\n  ImportCallArgumentTrailingComma:\n    \"Trailing comma is disallowed inside import(...) arguments\",\n  ImportCallArity: \"import() requires exactly one argument\",\n  ImportCallArityLtOne: \"Dynamic imports require a parameter: import('a.js')\",\n  ImportCallNotNewExpression: \"Cannot use new with import(...)\",\n  ImportCallSpreadArgument: \"... is not allowed in import()\",\n  ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: \"module\"'`,\n  ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n  InvalidCodePoint: \"Code point out of bounds\",\n  InvalidDigit: \"Expected number in radix %0\",\n  InvalidEscapeSequence: \"Bad character escape sequence\",\n  InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template\",\n  InvalidEscapedReservedWord: \"Escape sequence in keyword %0\",\n  InvalidIdentifier: \"Invalid identifier %0\",\n  InvalidLhs: \"Invalid left-hand side in %0\",\n  InvalidLhsBinding: \"Binding invalid left-hand side in %0\",\n  InvalidNumber: \"Invalid number\",\n  InvalidOrUnexpectedToken: \"Unexpected character '%0'\",\n  InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern\",\n  InvalidPrivateFieldResolution: \"Private name #%0 is not defined\",\n  InvalidPropertyBindingPattern: \"Binding member expression\",\n  InvalidRestAssignmentPattern: \"Invalid rest operator's argument\",\n  LabelRedeclaration: \"Label '%0' is already declared\",\n  LetInLexicalBinding:\n    \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\",\n  MalformedRegExpFlags: \"Invalid regular expression flag\",\n  MissingClassName: \"A class name is required\",\n  MissingEqInAssignment:\n    \"Only '=' operator can be used for specifying default value.\",\n  MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX\",\n  MixingCoalesceWithLogical:\n    \"Nullish coalescing operator(??) requires parens when mixing with logical operators\",\n  ModuleExportUndefined: \"Export '%0' is not defined\",\n  MultipleDefaultsInSwitch: \"Multiple default clauses\",\n  NewlineAfterThrow: \"Illegal newline after throw\",\n  NoCatchOrFinally: \"Missing catch or finally clause\",\n  NumberIdentifier: \"Identifier directly after number\",\n  NumericSeparatorInEscapeSequence:\n    \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences\",\n  ObsoleteAwaitStar:\n    \"await* has been removed from the async functions proposal. Use Promise.all() instead.\",\n  OptionalChainingNoNew:\n    \"constructors in/after an Optional Chain are not allowed\",\n  OptionalChainingNoTemplate:\n    \"Tagged Template Literals are not allowed in optionalChain\",\n  ParamDupe: \"Argument name clash\",\n  PatternHasAccessor: \"Object pattern can't contain getter or setter\",\n  PatternHasMethod: \"Object pattern can't contain methods\",\n  PipelineBodyNoArrow:\n    'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized',\n  PipelineBodySequenceExpression:\n    \"Pipeline body may not be a comma-separated sequence expression\",\n  PipelineHeadSequenceExpression:\n    \"Pipeline head should not be a comma-separated sequence expression\",\n  PipelineTopicUnused:\n    \"Pipeline is in topic style but does not use topic reference\",\n  PrimaryTopicNotAllowed:\n    \"Topic reference was used in a lexical context without topic binding\",\n  PrimaryTopicRequiresSmartPipeline:\n    \"Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.\",\n  PrivateNameRedeclaration: \"Duplicate private name #%0\",\n  RecordExpressionBarIncorrectEndSyntaxType:\n    \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionBarIncorrectStartSyntaxType:\n    \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionHashIncorrectStartSyntaxType:\n    \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  RestTrailingComma: \"Unexpected trailing comma after rest element\",\n  SloppyFunction:\n    \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",\n  StaticPrototype: \"Classes may not have static property named prototype\",\n  StrictDelete: \"Deleting local variable in strict mode\",\n  StrictEvalArguments: \"Assigning to '%0' in strict mode\",\n  StrictEvalArgumentsBinding: \"Binding '%0' in strict mode\",\n  StrictFunction:\n    \"In strict mode code, functions can only be declared at top level or inside a block\",\n  StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode\",\n  StrictWith: \"'with' in strict mode\",\n  SuperNotAllowed:\n    \"super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n  SuperPrivateField: \"Private fields can't be accessed on super\",\n  TrailingDecorator: \"Decorators must be attached to a class element\",\n  TupleExpressionBarIncorrectEndSyntaxType:\n    \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionBarIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionHashIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder\",\n  UnexpectedAwaitAfterPipelineBody:\n    'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal',\n  UnexpectedDigitAfterHash: \"Unexpected digit after hash token\",\n  UnexpectedImportExport:\n    \"'import' and 'export' may only appear at the top level\",\n  UnexpectedKeyword: \"Unexpected keyword '%0'\",\n  UnexpectedLeadingDecorator:\n    \"Leading decorators must be attached to a class declaration\",\n  UnexpectedLexicalDeclaration:\n    \"Lexical declaration cannot appear in a single-statement context\",\n  UnexpectedNewTarget: \"new.target can only be used in functions\",\n  UnexpectedNumericSeparator:\n    \"A numeric separator is only allowed between two digits\",\n  UnexpectedPrivateField:\n    \"Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\\n or a property of member expression (i.e. this.#p).\",\n  UnexpectedReservedWord: \"Unexpected reserved word '%0'\",\n  UnexpectedSuper: \"super is only allowed in object methods and classes\",\n  UnexpectedToken: \"Unexpected token '%'\",\n  UnexpectedTokenUnaryExponentiation:\n    \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n  UnsupportedBind: \"Binding should be performed on object property.\",\n  UnsupportedDecoratorExport:\n    \"A decorated export must export a class declaration\",\n  UnsupportedDefaultExport:\n    \"Only expressions, functions or classes are allowed as the `default` export.\",\n  UnsupportedImport: \"import can only be used in import() or import.meta\",\n  UnsupportedMetaProperty: \"The only valid meta property for %0 is %0.%1\",\n  UnsupportedParameterDecorator:\n    \"Decorators cannot be used to decorate parameters\",\n  UnsupportedPropertyDecorator:\n    \"Decorators cannot be used to decorate object literal properties\",\n  UnsupportedSuper:\n    \"super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])\",\n  UnterminatedComment: \"Unterminated comment\",\n  UnterminatedRegExp: \"Unterminated regular expression\",\n  UnterminatedString: \"Unterminated string constant\",\n  UnterminatedTemplate: \"Unterminated template\",\n  VarRedeclaration: \"Identifier '%0' has already been declared\",\n  YieldBindingIdentifier:\n    \"Can not use 'yield' as identifier inside a generator\",\n  YieldInParameter: \"yield is not allowed in generator parameters\",\n  ZeroDigitNumericSeparator:\n    \"Numeric separator can not be used after leading 0\",\n});\n\nexport default class LocationParser extends CommentsParser {\n  // Forward-declaration: defined in tokenizer/index.js\n  /*::\n  +isLookahead: boolean;\n  */\n\n  getLocationForPosition(pos: number): Position {\n    let loc;\n    if (pos === this.state.start) loc = this.state.startLoc;\n    else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;\n    else if (pos === this.state.end) loc = this.state.endLoc;\n    else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;\n    else loc = getLineInfo(this.input, pos);\n\n    return loc;\n  }\n\n  raise(pos: number, errorTemplate: string, ...params: any): Error | empty {\n    return this.raiseWithData(pos, undefined, errorTemplate, ...params);\n  }\n\n  raiseWithData(\n    pos: number,\n    data?: {\n      missingPlugin?: Array<string>,\n      code?: string,\n    },\n    errorTemplate: string,\n    ...params: any\n  ): Error | empty {\n    const loc = this.getLocationForPosition(pos);\n    const message =\n      errorTemplate.replace(/%(\\d+)/g, (_, i: number) => params[i]) +\n      ` (${loc.line}:${loc.column})`;\n    return this._raise(Object.assign(({ loc, pos }: Object), data), message);\n  }\n\n  _raise(errorContext: ErrorContext, message: string): Error | empty {\n    // $FlowIgnore\n    const err: SyntaxError & ErrorContext = new SyntaxError(message);\n    Object.assign(err, errorContext);\n    if (this.options.errorRecovery) {\n      if (!this.isLookahead) this.state.errors.push(err);\n      return err;\n    } else {\n      throw err;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nfunction isSimpleProperty(node: N.Node): boolean {\n  return (\n    node != null &&\n    node.type === \"Property\" &&\n    node.kind === \"init\" &&\n    node.method === false\n  );\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    estreeParseRegExpLiteral({ pattern, flags }: N.RegExpLiteral): N.Node {\n      let regex = null;\n      try {\n        regex = new RegExp(pattern, flags);\n      } catch (e) {\n        // In environments that don't support these flags value will\n        // be null as the regex can't be represented natively.\n      }\n      const node = this.estreeParseLiteral(regex);\n      node.regex = { pattern, flags };\n\n      return node;\n    }\n\n    estreeParseBigIntLiteral(value: any): N.Node {\n      // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n      // $FlowIgnore\n      const bigInt = typeof BigInt !== \"undefined\" ? BigInt(value) : null;\n      const node = this.estreeParseLiteral(bigInt);\n      node.bigint = String(node.value || value);\n\n      return node;\n    }\n\n    estreeParseLiteral(value: any): N.Node {\n      return this.parseLiteral(value, \"Literal\");\n    }\n\n    directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n      const directiveLiteral = directive.value;\n\n      const stmt = this.startNodeAt(directive.start, directive.loc.start);\n      const expression = this.startNodeAt(\n        directiveLiteral.start,\n        directiveLiteral.loc.start,\n      );\n\n      expression.value = directiveLiteral.value;\n      expression.raw = directiveLiteral.extra.raw;\n\n      stmt.expression = this.finishNodeAt(\n        expression,\n        \"Literal\",\n        directiveLiteral.end,\n        directiveLiteral.loc.end,\n      );\n      stmt.directive = directiveLiteral.extra.raw.slice(1, -1);\n\n      return this.finishNodeAt(\n        stmt,\n        \"ExpressionStatement\",\n        directive.end,\n        directive.loc.end,\n      );\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    initFunction(\n      node: N.BodilessFunctionOrMethodBase,\n      isAsync: ?boolean,\n    ): void {\n      super.initFunction(node, isAsync);\n      node.expression = false;\n    }\n\n    checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n      if (isSimpleProperty(node)) {\n        this.checkDeclaration(((node: any): N.EstreeProperty).value);\n      } else {\n        super.checkDeclaration(node);\n      }\n    }\n\n    checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n      const prop = ((method: any): N.EstreeProperty | N.EstreeMethodDefinition);\n      const paramCount = prop.kind === \"get\" ? 0 : 1;\n      const start = prop.start;\n      if (prop.value.params.length !== paramCount) {\n        if (method.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      } else if (\n        prop.kind === \"set\" &&\n        prop.value.params[0].type === \"RestElement\"\n      ) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n      disallowLetBinding?: boolean,\n    ): void {\n      switch (expr.type) {\n        case \"ObjectPattern\":\n          expr.properties.forEach(prop => {\n            this.checkLVal(\n              prop.type === \"Property\" ? prop.value : prop,\n              bindingType,\n              checkClashes,\n              \"object destructuring pattern\",\n              disallowLetBinding,\n            );\n          });\n          break;\n        default:\n          super.checkLVal(\n            expr,\n            bindingType,\n            checkClashes,\n            contextDescription,\n            disallowLetBinding,\n          );\n      }\n    }\n\n    checkDuplicatedProto(\n      prop: N.ObjectMember | N.SpreadElement,\n      protoRef: { used: boolean },\n      refExpressionErrors: ?ExpressionErrors,\n    ): void {\n      if (\n        prop.type === \"SpreadElement\" ||\n        prop.computed ||\n        prop.method ||\n        // $FlowIgnore\n        prop.shorthand\n      ) {\n        return;\n      }\n\n      const key = prop.key;\n      // It is either an Identifier or a String/NumericLiteral\n      const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n      if (name === \"__proto__\" && prop.kind === \"init\") {\n        // Store the first redefinition's position\n        if (protoRef.used) {\n          if (refExpressionErrors && refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          } else {\n            this.raise(key.start, Errors.DuplicateProto);\n          }\n        }\n\n        protoRef.used = true;\n      }\n    }\n\n    isValidDirective(stmt: N.Statement): boolean {\n      return (\n        stmt.type === \"ExpressionStatement\" &&\n        stmt.expression.type === \"Literal\" &&\n        typeof stmt.expression.value === \"string\" &&\n        (!stmt.expression.extra || !stmt.expression.extra.parenthesized)\n      );\n    }\n\n    stmtToDirective(stmt: N.Statement): N.Directive {\n      const directive = super.stmtToDirective(stmt);\n      const value = stmt.expression.value;\n\n      // Reset value to the actual value as in estree mode we want\n      // the stmt to have the real value and not the raw value\n      directive.value.value = value;\n\n      return directive;\n    }\n\n    parseBlockBody(\n      node: N.BlockStatementLike,\n      allowDirectives: ?boolean,\n      topLevel: boolean,\n      end: TokenType,\n    ): void {\n      super.parseBlockBody(node, allowDirectives, topLevel, end);\n\n      const directiveStatements = node.directives.map(d =>\n        this.directiveToStmt(d),\n      );\n      node.body = directiveStatements.concat(node.body);\n      delete node.directives;\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      );\n      if (method.typeParameters) {\n        // $FlowIgnore\n        method.value.typeParameters = method.typeParameters;\n        delete method.typeParameters;\n      }\n      classBody.body.push(method);\n    }\n\n    parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      switch (this.state.type) {\n        case tt.num:\n        case tt.string:\n          return this.estreeParseLiteral(this.state.value);\n\n        case tt.regexp:\n          return this.estreeParseRegExpLiteral(this.state.value);\n\n        case tt.bigint:\n          return this.estreeParseBigIntLiteral(this.state.value);\n\n        case tt._null:\n          return this.estreeParseLiteral(null);\n\n        case tt._true:\n          return this.estreeParseLiteral(true);\n\n        case tt._false:\n          return this.estreeParseLiteral(false);\n\n        default:\n          return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    parseLiteral<T: N.Literal>(\n      value: any,\n      type: /*T[\"kind\"]*/ string,\n      startPos?: number,\n      startLoc?: Position,\n    ): T {\n      const node = super.parseLiteral(value, type, startPos, startLoc);\n      node.raw = node.extra.raw;\n      delete node.extra;\n\n      return node;\n    }\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpression: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      super.parseFunctionBody(node, allowExpression, isMethod);\n      node.expression = node.body.type !== \"BlockStatement\";\n    }\n\n    parseMethod<T: N.MethodLike>(\n      node: T,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowDirectSuper: boolean,\n      type: string,\n      inClassScope: boolean = false,\n    ): T {\n      let funcNode = this.startNode();\n      funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n      funcNode = super.parseMethod(\n        funcNode,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowDirectSuper,\n        type,\n        inClassScope,\n      );\n      funcNode.type = \"FunctionExpression\";\n      delete funcNode.kind;\n      // $FlowIgnore\n      node.value = funcNode;\n\n      type = type === \"ClassMethod\" ? \"MethodDefinition\" : type;\n      return this.finishNode(node, type);\n    }\n\n    parseObjectMethod(\n      prop: N.ObjectMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      containsEsc: boolean,\n    ): ?N.ObjectMethod {\n      const node: N.EstreeProperty = (super.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ): any);\n\n      if (node) {\n        node.type = \"Property\";\n        if (((node: any): N.ClassMethod).kind === \"method\") node.kind = \"init\";\n        node.shorthand = false;\n      }\n\n      return (node: any);\n    }\n\n    parseObjectProperty(\n      prop: N.ObjectProperty,\n      startPos: ?number,\n      startLoc: ?Position,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n    ): ?N.ObjectProperty {\n      const node: N.EstreeProperty = (super.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      ): any);\n\n      if (node) {\n        node.kind = \"init\";\n        node.type = \"Property\";\n      }\n\n      return (node: any);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (isSimpleProperty(node)) {\n        this.toAssignable(node.value);\n\n        return node;\n      }\n\n      return super.toAssignable(node);\n    }\n\n    toAssignableObjectExpressionProp(prop: N.Node, isLast: boolean) {\n      if (prop.kind === \"get\" || prop.kind === \"set\") {\n        throw this.raise(prop.key.start, Errors.PatternHasAccessor);\n      } else if (prop.method) {\n        throw this.raise(prop.key.start, Errors.PatternHasMethod);\n      } else {\n        super.toAssignableObjectExpressionProp(prop, isLast);\n      }\n    }\n\n    finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n      node: T,\n      optional: boolean,\n    ): N.Expression {\n      super.finishCallExpression(node, optional);\n\n      if (node.callee.type === \"Import\") {\n        ((node: N.Node): N.EstreeImportExpression).type = \"ImportExpression\";\n        ((node: N.Node): N.EstreeImportExpression).source = node.arguments[0];\n        delete node.arguments;\n        delete node.callee;\n      }\n\n      return node;\n    }\n\n    toReferencedListDeep(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): void {\n      // ImportExpressions do not have an arguments array.\n      if (!exprList) {\n        return;\n      }\n\n      super.toReferencedListDeep(exprList, isParenthesizedExpr);\n    }\n\n    parseExport(node: N.Node) {\n      super.parseExport(node);\n\n      switch (node.type) {\n        case \"ExportAllDeclaration\":\n          node.exported = null;\n          break;\n\n        case \"ExportNamedDeclaration\":\n          if (\n            node.specifiers.length === 1 &&\n            node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n          ) {\n            node.type = \"ExportAllDeclaration\";\n            node.exported = node.specifiers[0].exported;\n            delete node.specifiers;\n          }\n\n          break;\n      }\n\n      return node;\n    }\n  };\n","// @flow\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport { types as tt } from \"./types\";\nimport { lineBreak } from \"../util/whitespace\";\n\nexport class TokContext {\n  constructor(\n    token: string,\n    isExpr?: boolean,\n    preserveSpace?: boolean,\n    override?: ?Function, // Takes a Tokenizer as a this-parameter, and returns void.\n  ) {\n    this.token = token;\n    this.isExpr = !!isExpr;\n    this.preserveSpace = !!preserveSpace;\n    this.override = override;\n  }\n\n  token: string;\n  isExpr: boolean;\n  preserveSpace: boolean;\n  override: ?Function;\n}\n\nexport const types: {\n  [key: string]: TokContext,\n} = {\n  braceStatement: new TokContext(\"{\", false),\n  braceExpression: new TokContext(\"{\", true),\n  templateQuasi: new TokContext(\"${\", false),\n  parenStatement: new TokContext(\"(\", false),\n  parenExpression: new TokContext(\"(\", true),\n  template: new TokContext(\"`\", true, true, p => p.readTmplToken()),\n  functionExpression: new TokContext(\"function\", true),\n  functionStatement: new TokContext(\"function\", false),\n};\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.state.context.length === 1) {\n    this.state.exprAllowed = true;\n    return;\n  }\n\n  let out = this.state.context.pop();\n  if (out === types.braceStatement && this.curContext().token === \"function\") {\n    out = this.state.context.pop();\n  }\n\n  this.state.exprAllowed = !out.isExpr;\n};\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false;\n  if (prevType !== tt.dot) {\n    if (\n      (this.state.value === \"of\" && !this.state.exprAllowed) ||\n      (this.state.value === \"yield\" && this.prodParam.hasYield)\n    ) {\n      allowed = true;\n    }\n  }\n  this.state.exprAllowed = allowed;\n\n  if (this.state.isIterator) {\n    this.state.isIterator = false;\n  }\n};\n\ntt.braceL.updateContext = function(prevType) {\n  this.state.context.push(\n    this.braceIsBlock(prevType) ? types.braceStatement : types.braceExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.dollarBraceL.updateContext = function() {\n  this.state.context.push(types.templateQuasi);\n  this.state.exprAllowed = true;\n};\n\ntt.parenL.updateContext = function(prevType) {\n  const statementParens =\n    prevType === tt._if ||\n    prevType === tt._for ||\n    prevType === tt._with ||\n    prevType === tt._while;\n  this.state.context.push(\n    statementParens ? types.parenStatement : types.parenExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n};\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (\n    prevType.beforeExpr &&\n    prevType !== tt.semi &&\n    prevType !== tt._else &&\n    !(\n      prevType === tt._return &&\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) &&\n    !(\n      (prevType === tt.colon || prevType === tt.braceL) &&\n      this.curContext() === types.b_stat\n    )\n  ) {\n    this.state.context.push(types.functionExpression);\n  } else {\n    this.state.context.push(types.functionStatement);\n  }\n\n  this.state.exprAllowed = false;\n};\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.template) {\n    this.state.context.pop();\n  } else {\n    this.state.context.push(types.template);\n  }\n  this.state.exprAllowed = false;\n};\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nconst nonASCIIidentifierStart = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: $ReadOnlyArray<number>): boolean {\n  let pos = 0x10000;\n  for (let i = 0, length = set.length; i < length; i += 2) {\n    pos += set[i];\n    if (pos > code) return false;\n\n    pos += set[i + 1];\n    if (pos >= code) return true;\n  }\n  return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n  if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return (\n      code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n    );\n  }\n  return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n  if (code < charCodes.digit0) return code === charCodes.dollarSign;\n  if (code < charCodes.colon) return true;\n  if (code < charCodes.uppercaseA) return false;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n  }\n  return (\n    isInAstralSet(code, astralIdentifierStartCodes) ||\n    isInAstralSet(code, astralIdentifierCodes)\n  );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n  let isFirst = true;\n  for (const char of Array.from(name)) {\n    const cp = char.codePointAt(0);\n    if (isFirst) {\n      if (!isIdentifierStart(cp)) {\n        return false;\n      }\n      isFirst = false;\n    } else if (!isIdentifierChar(cp)) {\n      return false;\n    }\n  }\n  return true;\n}\n","// @flow\n\nconst reservedWords = {\n  keyword: [\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"continue\",\n    \"debugger\",\n    \"default\",\n    \"do\",\n    \"else\",\n    \"finally\",\n    \"for\",\n    \"function\",\n    \"if\",\n    \"return\",\n    \"switch\",\n    \"throw\",\n    \"try\",\n    \"var\",\n    \"const\",\n    \"while\",\n    \"with\",\n    \"new\",\n    \"this\",\n    \"super\",\n    \"class\",\n    \"extends\",\n    \"export\",\n    \"import\",\n    \"null\",\n    \"true\",\n    \"false\",\n    \"in\",\n    \"instanceof\",\n    \"typeof\",\n    \"void\",\n    \"delete\",\n  ],\n  strict: [\n    \"implements\",\n    \"interface\",\n    \"let\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"static\",\n    \"yield\",\n  ],\n  strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n  return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n  return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n  word: string,\n  inModule: boolean,\n): boolean {\n  return (\n    isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n  );\n}\n\nexport function isKeyword(word: string): boolean {\n  return keywords.has(word);\n}\n","/* eslint max-len: 0 */\n\n// @flow\n\nimport * as charCodes from \"charcodes\";\n\nexport {\n  isIdentifierStart,\n  isIdentifierChar,\n  isReservedWord,\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n  isStrictReservedWord,\n  isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(current: number, next: number): boolean {\n  return current === charCodes.atSign && next === charCodes.atSign;\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type Parser from \"../parser\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport * as N from \"../types\";\nimport type { Options } from \"../options\";\nimport type { Pos, Position } from \"../util/location\";\nimport type State from \"../tokenizer/state\";\nimport { types as tc } from \"../tokenizer/context\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../util/identifier\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_ARROW,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n} from \"../util/scopeflags\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport { Errors } from \"../parser/location\";\n\nconst reservedTypes = new Set([\n  \"_\",\n  \"any\",\n  \"bool\",\n  \"boolean\",\n  \"empty\",\n  \"extends\",\n  \"false\",\n  \"interface\",\n  \"mixed\",\n  \"null\",\n  \"number\",\n  \"static\",\n  \"string\",\n  \"true\",\n  \"typeof\",\n  \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = Object.freeze({\n  AmbiguousConditionalArrow:\n    \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n  AmbiguousDeclareModuleKind:\n    \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module\",\n  AssignReservedType: \"Cannot overwrite reserved type %0\",\n  DeclareClassElement:\n    \"The `declare` modifier can only appear on class fields.\",\n  DeclareClassFieldInitializer:\n    \"Initializers are not allowed in fields with the `declare` modifier.\",\n  DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement\",\n  EnumBooleanMemberNotInitialized:\n    \"Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.\",\n  EnumDuplicateMemberName:\n    \"Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.\",\n  EnumInconsistentMemberValues:\n    \"Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\",\n  EnumInvalidExplicitType:\n    \"Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidExplicitTypeUnknownSupplied:\n    \"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidMemberInitializerPrimaryType:\n    \"Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.\",\n  EnumInvalidMemberInitializerSymbolType:\n    \"Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.\",\n  EnumInvalidMemberInitializerUnknownType:\n    \"The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.\",\n  EnumInvalidMemberName:\n    \"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.\",\n  EnumNumberMemberNotInitialized:\n    \"Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.\",\n  EnumStringMemberInconsistentlyInitailized:\n    \"String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.\",\n  ImportTypeShorthandOnlyInPureImport:\n    \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\",\n  InexactInsideExact:\n    \"Explicit inexact syntax cannot appear inside an explicit exact object type\",\n  InexactInsideNonObject:\n    \"Explicit inexact syntax cannot appear in class or interface definitions\",\n  InexactVariance: \"Explicit inexact syntax cannot have variance\",\n  InvalidNonTypeImportInDeclareModule:\n    \"Imports within a `declare module` body must always be `import type` or `import typeof`\",\n  MissingTypeParamDefault:\n    \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n  NestedDeclareModule:\n    \"`declare module` cannot be used inside another `declare module`\",\n  NestedFlowComment: \"Cannot have a flow comment inside another flow comment\",\n  OptionalBindingPattern:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  SpreadVariance: \"Spread properties cannot have variance\",\n  TypeBeforeInitializer:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  TypeCastInPattern:\n    \"The type cast expression is expected to be wrapped with parenthesis\",\n  UnexpectedExplicitInexactInObject:\n    \"Explicit inexact syntax must appear at the end of an inexact object\",\n  UnexpectedReservedType: \"Unexpected reserved type %0\",\n  UnexpectedReservedUnderscore:\n    \"`_` is only allowed as a type argument to call or new\",\n  UnexpectedSpaceBetweenModuloChecks:\n    \"Spaces between `%` and `checks` are not allowed here.\",\n  UnexpectedSpreadType:\n    \"Spread operator cannot appear in class or interface definitions\",\n  UnexpectedSubtractionOperand:\n    'Unexpected token, expected \"number\" or \"bigint\"',\n  UnexpectedTokenAfterTypeParameter:\n    \"Expected an arrow function after this type parameter declaration\",\n  UnsupportedDeclareExportKind:\n    \"`declare export %0` is not supported. Use `%1` instead\",\n  UnsupportedStatementInDeclareModule:\n    \"Only declares and type imports are allowed inside declare module\",\n  UnterminatedFlowComment: \"Unterminated flow-comment\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n  return (\n    bodyElement.type === \"DeclareExportAllDeclaration\" ||\n    (bodyElement.type === \"DeclareExportDeclaration\" &&\n      (!bodyElement.declaration ||\n        (bodyElement.declaration.type !== \"TypeAlias\" &&\n          bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n  );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n  return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nfunction isMaybeDefaultImport(state: State): boolean {\n  return (\n    (state.type === tt.name || !!state.type.keyword) && state.value !== \"from\"\n  );\n}\n\nconst exportSuggestions = {\n  const: \"declare export var\",\n  let: \"declare export var\",\n  type: \"export type\",\n  interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition<T>(\n  list: T[],\n  test: (T, number, T[]) => ?boolean,\n): [T[], T[]] {\n  const list1 = [];\n  const list2 = [];\n  for (let i = 0; i < list.length; i++) {\n    (test(list[i], i, list) ? list1 : list2).push(list[i]);\n  }\n  return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\ntype EnumContext = {|\n  enumName: string,\n  explicitType: EnumExplicitType,\n  memberName: string,\n|};\ntype EnumMemberInit =\n  | {| type: \"number\", pos: number, value: N.Node |}\n  | {| type: \"string\", pos: number, value: N.Node |}\n  | {| type: \"boolean\", pos: number, value: N.Node |}\n  | {| type: \"invalid\", pos: number |}\n  | {| type: \"none\", pos: number |};\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // The value of the @flow/@noflow pragma. Initially undefined, transitions\n    // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n    // past the initial comment.\n    flowPragma: void | null | \"flow\" | \"noflow\";\n\n    constructor(options: ?Options, input: string) {\n      super(options, input);\n      this.flowPragma = undefined;\n    }\n\n    shouldParseTypes(): boolean {\n      return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n    }\n\n    shouldParseEnums(): boolean {\n      return !!this.getPluginOption(\"flow\", \"enums\");\n    }\n\n    finishToken(type: TokenType, val: any): void {\n      if (\n        type !== tt.string &&\n        type !== tt.semi &&\n        type !== tt.interpreterDirective\n      ) {\n        if (this.flowPragma === undefined) {\n          this.flowPragma = null;\n        }\n      }\n      return super.finishToken(type, val);\n    }\n\n    addComment(comment: N.Comment): void {\n      if (this.flowPragma === undefined) {\n        // Try to parse a flow pragma.\n        const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n        if (!matches) {\n          // do nothing\n        } else if (matches[1] === \"flow\") {\n          this.flowPragma = \"flow\";\n        } else if (matches[1] === \"noflow\") {\n          this.flowPragma = \"noflow\";\n        } else {\n          throw new Error(\"Unexpected flow pragma\");\n        }\n      }\n      return super.addComment(comment);\n    }\n\n    flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tok || tt.colon);\n\n      const type = this.flowParseType();\n      this.state.inType = oldInType;\n      return type;\n    }\n\n    flowParsePredicate(): N.FlowType {\n      const node = this.startNode();\n      const moduloLoc = this.state.startLoc;\n      const moduloPos = this.state.start;\n      this.expect(tt.modulo);\n      const checksLoc = this.state.startLoc;\n      this.expectContextual(\"checks\");\n      // Force '%' and 'checks' to be adjacent\n      if (\n        moduloLoc.line !== checksLoc.line ||\n        moduloLoc.column !== checksLoc.column - 1\n      ) {\n        this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks);\n      }\n      if (this.eat(tt.parenL)) {\n        node.value = this.parseExpression();\n        this.expect(tt.parenR);\n        return this.finishNode(node, \"DeclaredPredicate\");\n      } else {\n        return this.finishNode(node, \"InferredPredicate\");\n      }\n    }\n\n    flowParseTypeAndPredicateInitialiser(): [?N.FlowType, ?N.FlowPredicate] {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tt.colon);\n      let type = null;\n      let predicate = null;\n      if (this.match(tt.modulo)) {\n        this.state.inType = oldInType;\n        predicate = this.flowParsePredicate();\n      } else {\n        type = this.flowParseType();\n        this.state.inType = oldInType;\n        if (this.match(tt.modulo)) {\n          predicate = this.flowParsePredicate();\n        }\n      }\n      return [type, predicate];\n    }\n\n    flowParseDeclareClass(node: N.FlowDeclareClass): N.FlowDeclareClass {\n      this.next();\n      this.flowParseInterfaceish(node, /*isClass*/ true);\n      return this.finishNode(node, \"DeclareClass\");\n    }\n\n    flowParseDeclareFunction(\n      node: N.FlowDeclareFunction,\n    ): N.FlowDeclareFunction {\n      this.next();\n\n      const id = (node.id = this.parseIdentifier());\n\n      const typeNode = this.startNode();\n      const typeContainer = this.startNode();\n\n      if (this.isRelational(\"<\")) {\n        typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        typeNode.typeParameters = null;\n      }\n\n      this.expect(tt.parenL);\n      const tmp = this.flowParseFunctionTypeParams();\n      typeNode.params = tmp.params;\n      typeNode.rest = tmp.rest;\n      this.expect(tt.parenR);\n\n      [\n        // $FlowFixMe (destructuring not supported yet)\n        typeNode.returnType,\n        // $FlowFixMe (destructuring not supported yet)\n        node.predicate,\n      ] = this.flowParseTypeAndPredicateInitialiser();\n\n      typeContainer.typeAnnotation = this.finishNode(\n        typeNode,\n        \"FunctionTypeAnnotation\",\n      );\n\n      id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n      this.resetEndLocation(id);\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareFunction\");\n    }\n\n    flowParseDeclare(\n      node: N.FlowDeclare,\n      insideModule?: boolean,\n    ): N.FlowDeclare {\n      if (this.match(tt._class)) {\n        return this.flowParseDeclareClass(node);\n      } else if (this.match(tt._function)) {\n        return this.flowParseDeclareFunction(node);\n      } else if (this.match(tt._var)) {\n        return this.flowParseDeclareVariable(node);\n      } else if (this.eatContextual(\"module\")) {\n        if (this.match(tt.dot)) {\n          return this.flowParseDeclareModuleExports(node);\n        } else {\n          if (insideModule) {\n            this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule);\n          }\n          return this.flowParseDeclareModule(node);\n        }\n      } else if (this.isContextual(\"type\")) {\n        return this.flowParseDeclareTypeAlias(node);\n      } else if (this.isContextual(\"opaque\")) {\n        return this.flowParseDeclareOpaqueType(node);\n      } else if (this.isContextual(\"interface\")) {\n        return this.flowParseDeclareInterface(node);\n      } else if (this.match(tt._export)) {\n        return this.flowParseDeclareExportDeclaration(node, insideModule);\n      } else {\n        throw this.unexpected();\n      }\n    }\n\n    flowParseDeclareVariable(\n      node: N.FlowDeclareVariable,\n    ): N.FlowDeclareVariable {\n      this.next();\n      node.id = this.flowParseTypeAnnotatableIdentifier(\n        /*allowPrimitiveOverride*/ true,\n      );\n      this.scope.declareName(node.id.name, BIND_VAR, node.id.start);\n      this.semicolon();\n      return this.finishNode(node, \"DeclareVariable\");\n    }\n\n    flowParseDeclareModule(node: N.FlowDeclareModule): N.FlowDeclareModule {\n      this.scope.enter(SCOPE_OTHER);\n\n      if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        node.id = this.parseIdentifier();\n      }\n\n      const bodyNode = (node.body = this.startNode());\n      const body = (bodyNode.body = []);\n      this.expect(tt.braceL);\n      while (!this.match(tt.braceR)) {\n        let bodyNode = this.startNode();\n\n        if (this.match(tt._import)) {\n          this.next();\n          if (!this.isContextual(\"type\") && !this.match(tt._typeof)) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InvalidNonTypeImportInDeclareModule,\n            );\n          }\n          this.parseImport(bodyNode);\n        } else {\n          this.expectContextual(\n            \"declare\",\n            FlowErrors.UnsupportedStatementInDeclareModule,\n          );\n\n          bodyNode = this.flowParseDeclare(bodyNode, true);\n        }\n\n        body.push(bodyNode);\n      }\n\n      this.scope.exit();\n\n      this.expect(tt.braceR);\n\n      this.finishNode(bodyNode, \"BlockStatement\");\n\n      let kind = null;\n      let hasModuleExport = false;\n      body.forEach(bodyElement => {\n        if (isEsModuleType(bodyElement)) {\n          if (kind === \"CommonJS\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"ES\";\n        } else if (bodyElement.type === \"DeclareModuleExports\") {\n          if (hasModuleExport) {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.DuplicateDeclareModuleExports,\n            );\n          }\n          if (kind === \"ES\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"CommonJS\";\n          hasModuleExport = true;\n        }\n      });\n\n      node.kind = kind || \"CommonJS\";\n      return this.finishNode(node, \"DeclareModule\");\n    }\n\n    flowParseDeclareExportDeclaration(\n      node: N.FlowDeclareExportDeclaration,\n      insideModule: ?boolean,\n    ): N.FlowDeclareExportDeclaration {\n      this.expect(tt._export);\n\n      if (this.eat(tt._default)) {\n        if (this.match(tt._function) || this.match(tt._class)) {\n          // declare export default class ...\n          // declare export default function ...\n          node.declaration = this.flowParseDeclare(this.startNode());\n        } else {\n          // declare export default [type];\n          node.declaration = this.flowParseType();\n          this.semicolon();\n        }\n        node.default = true;\n\n        return this.finishNode(node, \"DeclareExportDeclaration\");\n      } else {\n        if (\n          this.match(tt._const) ||\n          this.isLet() ||\n          ((this.isContextual(\"type\") || this.isContextual(\"interface\")) &&\n            !insideModule)\n        ) {\n          const label = this.state.value;\n          const suggestion = exportSuggestions[label];\n          throw this.raise(\n            this.state.start,\n            FlowErrors.UnsupportedDeclareExportKind,\n            label,\n            suggestion,\n          );\n        }\n\n        if (\n          this.match(tt._var) || // declare export var ...\n          this.match(tt._function) || // declare export function ...\n          this.match(tt._class) || // declare export class ...\n          this.isContextual(\"opaque\") // declare export opaque ..\n        ) {\n          node.declaration = this.flowParseDeclare(this.startNode());\n          node.default = false;\n\n          return this.finishNode(node, \"DeclareExportDeclaration\");\n        } else if (\n          this.match(tt.star) || // declare export * from ''\n          this.match(tt.braceL) || // declare export {} ...\n          this.isContextual(\"interface\") || // declare export interface ...\n          this.isContextual(\"type\") || // declare export type ...\n          this.isContextual(\"opaque\") // declare export opaque type ...\n        ) {\n          node = this.parseExport(node);\n          if (node.type === \"ExportNamedDeclaration\") {\n            // flow does not support the ExportNamedDeclaration\n            // $FlowIgnore\n            node.type = \"ExportDeclaration\";\n            // $FlowFixMe\n            node.default = false;\n            delete node.exportKind;\n          }\n\n          // $FlowIgnore\n          node.type = \"Declare\" + node.type;\n\n          return node;\n        }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParseDeclareModuleExports(\n      node: N.FlowDeclareModuleExports,\n    ): N.FlowDeclareModuleExports {\n      this.next();\n      this.expectContextual(\"exports\");\n      node.typeAnnotation = this.flowParseTypeAnnotation();\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareModuleExports\");\n    }\n\n    flowParseDeclareTypeAlias(\n      node: N.FlowDeclareTypeAlias,\n    ): N.FlowDeclareTypeAlias {\n      this.next();\n      this.flowParseTypeAlias(node);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareTypeAlias\";\n      return node;\n    }\n\n    flowParseDeclareOpaqueType(\n      node: N.FlowDeclareOpaqueType,\n    ): N.FlowDeclareOpaqueType {\n      this.next();\n      this.flowParseOpaqueType(node, true);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareOpaqueType\";\n      return node;\n    }\n\n    flowParseDeclareInterface(\n      node: N.FlowDeclareInterface,\n    ): N.FlowDeclareInterface {\n      this.next();\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"DeclareInterface\");\n    }\n\n    // Interfaces\n\n    flowParseInterfaceish(\n      node: N.FlowDeclare,\n      isClass?: boolean = false,\n    ): void {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ !isClass,\n        /* declaration */ true,\n      );\n\n      this.scope.declareName(\n        node.id.name,\n        isClass ? BIND_FUNCTION : BIND_LEXICAL,\n        node.id.start,\n      );\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.extends = [];\n      node.implements = [];\n      node.mixins = [];\n\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (!isClass && this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"mixins\")) {\n        this.next();\n        do {\n          node.mixins.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        do {\n          node.implements.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: isClass,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: isClass,\n        allowInexact: false,\n      });\n    }\n\n    flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n      const node = this.startNode();\n\n      node.id = this.flowParseQualifiedTypeIdentifier();\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      } else {\n        node.typeParameters = null;\n      }\n\n      return this.finishNode(node, \"InterfaceExtends\");\n    }\n\n    flowParseInterface(node: N.FlowInterface): N.FlowInterface {\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"InterfaceDeclaration\");\n    }\n\n    checkNotUnderscore(word: string) {\n      if (word === \"_\") {\n        this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore);\n      }\n    }\n\n    checkReservedType(word: string, startLoc: number, declaration?: boolean) {\n      if (!reservedTypes.has(word)) return;\n\n      this.raise(\n        startLoc,\n        declaration\n          ? FlowErrors.AssignReservedType\n          : FlowErrors.UnexpectedReservedType,\n        word,\n      );\n    }\n\n    flowParseRestrictedIdentifier(\n      liberal?: boolean,\n      declaration?: boolean,\n    ): N.Identifier {\n      this.checkReservedType(this.state.value, this.state.start, declaration);\n      return this.parseIdentifier(liberal);\n    }\n\n    // Type aliases\n\n    flowParseTypeAlias(node: N.FlowTypeAlias): N.FlowTypeAlias {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ false,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.right = this.flowParseTypeInitialiser(tt.eq);\n      this.semicolon();\n\n      return this.finishNode(node, \"TypeAlias\");\n    }\n\n    flowParseOpaqueType(\n      node: N.FlowOpaqueType,\n      declare: boolean,\n    ): N.FlowOpaqueType {\n      this.expectContextual(\"type\");\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ true,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      // Parse the supertype\n      node.supertype = null;\n      if (this.match(tt.colon)) {\n        node.supertype = this.flowParseTypeInitialiser(tt.colon);\n      }\n\n      node.impltype = null;\n      if (!declare) {\n        node.impltype = this.flowParseTypeInitialiser(tt.eq);\n      }\n      this.semicolon();\n\n      return this.finishNode(node, \"OpaqueType\");\n    }\n\n    // Type annotations\n\n    flowParseTypeParameter(requireDefault?: boolean = false): N.TypeParameter {\n      const nodeStart = this.state.start;\n\n      const node = this.startNode();\n\n      const variance = this.flowParseVariance();\n\n      const ident = this.flowParseTypeAnnotatableIdentifier();\n      node.name = ident.name;\n      node.variance = variance;\n      node.bound = ident.typeAnnotation;\n\n      if (this.match(tt.eq)) {\n        this.eat(tt.eq);\n        node.default = this.flowParseType();\n      } else {\n        if (requireDefault) {\n          this.raise(nodeStart, FlowErrors.MissingTypeParamDefault);\n        }\n      }\n\n      return this.finishNode(node, \"TypeParameter\");\n    }\n\n    flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n      const oldInType = this.state.inType;\n      const node = this.startNode();\n      node.params = [];\n\n      this.state.inType = true;\n\n      // istanbul ignore else: this condition is already checked at all call sites\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      let defaultRequired = false;\n\n      do {\n        const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n        node.params.push(typeParameter);\n\n        if (typeParameter.default) {\n          defaultRequired = true;\n        }\n\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      } while (!this.isRelational(\">\"));\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterDeclaration\");\n    }\n\n    flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n      this.state.noAnonFunctionType = false;\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseType());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseTypeOrImplicitInstantiation());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseInterfaceType(): N.FlowInterfaceType {\n      const node = this.startNode();\n      this.expectContextual(\"interface\");\n\n      node.extends = [];\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: false,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: false,\n        allowInexact: false,\n      });\n\n      return this.finishNode(node, \"InterfaceTypeAnnotation\");\n    }\n\n    flowParseObjectPropertyKey(): N.Expression {\n      return this.match(tt.num) || this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(true);\n    }\n\n    flowParseObjectTypeIndexer(\n      node: N.FlowObjectTypeIndexer,\n      isStatic: boolean,\n      variance: ?N.FlowVariance,\n    ): N.FlowObjectTypeIndexer {\n      node.static = isStatic;\n\n      // Note: bracketL has already been consumed\n      if (this.lookahead().type === tt.colon) {\n        node.id = this.flowParseObjectPropertyKey();\n        node.key = this.flowParseTypeInitialiser();\n      } else {\n        node.id = null;\n        node.key = this.flowParseType();\n      }\n      this.expect(tt.bracketR);\n      node.value = this.flowParseTypeInitialiser();\n      node.variance = variance;\n\n      return this.finishNode(node, \"ObjectTypeIndexer\");\n    }\n\n    flowParseObjectTypeInternalSlot(\n      node: N.FlowObjectTypeInternalSlot,\n      isStatic: boolean,\n    ): N.FlowObjectTypeInternalSlot {\n      node.static = isStatic;\n      // Note: both bracketL have already been consumed\n      node.id = this.flowParseObjectPropertyKey();\n      this.expect(tt.bracketR);\n      this.expect(tt.bracketR);\n      if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n        node.method = true;\n        node.optional = false;\n        node.value = this.flowParseObjectTypeMethodish(\n          this.startNodeAt(node.start, node.loc.start),\n        );\n      } else {\n        node.method = false;\n        if (this.eat(tt.question)) {\n          node.optional = true;\n        }\n        node.value = this.flowParseTypeInitialiser();\n      }\n      return this.finishNode(node, \"ObjectTypeInternalSlot\");\n    }\n\n    flowParseObjectTypeMethodish(\n      node: N.FlowFunctionTypeAnnotation,\n    ): N.FlowFunctionTypeAnnotation {\n      node.params = [];\n      node.rest = null;\n      node.typeParameters = null;\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      this.expect(tt.parenL);\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        node.params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n\n      if (this.eat(tt.ellipsis)) {\n        node.rest = this.flowParseFunctionTypeParam();\n      }\n      this.expect(tt.parenR);\n      node.returnType = this.flowParseTypeInitialiser();\n\n      return this.finishNode(node, \"FunctionTypeAnnotation\");\n    }\n\n    flowParseObjectTypeCallProperty(\n      node: N.FlowObjectTypeCallProperty,\n      isStatic: boolean,\n    ): N.FlowObjectTypeCallProperty {\n      const valueNode = this.startNode();\n      node.static = isStatic;\n      node.value = this.flowParseObjectTypeMethodish(valueNode);\n      return this.finishNode(node, \"ObjectTypeCallProperty\");\n    }\n\n    flowParseObjectType({\n      allowStatic,\n      allowExact,\n      allowSpread,\n      allowProto,\n      allowInexact,\n    }: {\n      allowStatic: boolean,\n      allowExact: boolean,\n      allowSpread: boolean,\n      allowProto: boolean,\n      allowInexact: boolean,\n    }): N.FlowObjectTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n\n      const nodeStart = this.startNode();\n\n      nodeStart.callProperties = [];\n      nodeStart.properties = [];\n      nodeStart.indexers = [];\n      nodeStart.internalSlots = [];\n\n      let endDelim;\n      let exact;\n      let inexact = false;\n      if (allowExact && this.match(tt.braceBarL)) {\n        this.expect(tt.braceBarL);\n        endDelim = tt.braceBarR;\n        exact = true;\n      } else {\n        this.expect(tt.braceL);\n        endDelim = tt.braceR;\n        exact = false;\n      }\n\n      nodeStart.exact = exact;\n\n      while (!this.match(endDelim)) {\n        let isStatic = false;\n        let protoStart: ?number = null;\n        let inexactStart: ?number = null;\n        const node = this.startNode();\n\n        if (allowProto && this.isContextual(\"proto\")) {\n          const lookahead = this.lookahead();\n\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            protoStart = this.state.start;\n            allowStatic = false;\n          }\n        }\n\n        if (allowStatic && this.isContextual(\"static\")) {\n          const lookahead = this.lookahead();\n\n          // static is a valid identifier name\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            isStatic = true;\n          }\n        }\n\n        const variance = this.flowParseVariance();\n\n        if (this.eat(tt.bracketL)) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (this.eat(tt.bracketL)) {\n            if (variance) {\n              this.unexpected(variance.start);\n            }\n            nodeStart.internalSlots.push(\n              this.flowParseObjectTypeInternalSlot(node, isStatic),\n            );\n          } else {\n            nodeStart.indexers.push(\n              this.flowParseObjectTypeIndexer(node, isStatic, variance),\n            );\n          }\n        } else if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n          nodeStart.callProperties.push(\n            this.flowParseObjectTypeCallProperty(node, isStatic),\n          );\n        } else {\n          let kind = \"init\";\n\n          if (this.isContextual(\"get\") || this.isContextual(\"set\")) {\n            const lookahead = this.lookahead();\n            if (\n              lookahead.type === tt.name ||\n              lookahead.type === tt.string ||\n              lookahead.type === tt.num\n            ) {\n              kind = this.state.value;\n              this.next();\n            }\n          }\n\n          const propOrInexact = this.flowParseObjectTypeProperty(\n            node,\n            isStatic,\n            protoStart,\n            variance,\n            kind,\n            allowSpread,\n            allowInexact ?? !exact,\n          );\n\n          if (propOrInexact === null) {\n            inexact = true;\n            inexactStart = this.state.lastTokStart;\n          } else {\n            nodeStart.properties.push(propOrInexact);\n          }\n        }\n\n        this.flowObjectTypeSemicolon();\n\n        if (\n          inexactStart &&\n          !this.match(tt.braceR) &&\n          !this.match(tt.braceBarR)\n        ) {\n          this.raise(\n            inexactStart,\n            FlowErrors.UnexpectedExplicitInexactInObject,\n          );\n        }\n      }\n\n      this.expect(endDelim);\n\n      /* The inexact flag should only be added on ObjectTypeAnnotations that\n       * are not the body of an interface, declare interface, or declare class.\n       * Since spreads are only allowed in objec types, checking that is\n       * sufficient here.\n       */\n      if (allowSpread) {\n        nodeStart.inexact = inexact;\n      }\n\n      const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n      this.state.inType = oldInType;\n\n      return out;\n    }\n\n    flowParseObjectTypeProperty(\n      node: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n      isStatic: boolean,\n      protoStart: ?number,\n      variance: ?N.FlowVariance,\n      kind: string,\n      allowSpread: boolean,\n      allowInexact: boolean,\n    ): (N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty) | null {\n      if (this.eat(tt.ellipsis)) {\n        const isInexactToken =\n          this.match(tt.comma) ||\n          this.match(tt.semi) ||\n          this.match(tt.braceR) ||\n          this.match(tt.braceBarR);\n\n        if (isInexactToken) {\n          if (!allowSpread) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InexactInsideNonObject,\n            );\n          } else if (!allowInexact) {\n            this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact);\n          }\n          if (variance) {\n            this.raise(variance.start, FlowErrors.InexactVariance);\n          }\n\n          return null;\n        }\n\n        if (!allowSpread) {\n          this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType);\n        }\n        if (protoStart != null) {\n          this.unexpected(protoStart);\n        }\n        if (variance) {\n          this.raise(variance.start, FlowErrors.SpreadVariance);\n        }\n\n        node.argument = this.flowParseType();\n        return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n      } else {\n        node.key = this.flowParseObjectPropertyKey();\n        node.static = isStatic;\n        node.proto = protoStart != null;\n        node.kind = kind;\n\n        let optional = false;\n        if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n          // This is a method property\n          node.method = true;\n\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n\n          node.value = this.flowParseObjectTypeMethodish(\n            this.startNodeAt(node.start, node.loc.start),\n          );\n          if (kind === \"get\" || kind === \"set\") {\n            this.flowCheckGetterSetterParams(node);\n          }\n        } else {\n          if (kind !== \"init\") this.unexpected();\n\n          node.method = false;\n\n          if (this.eat(tt.question)) {\n            optional = true;\n          }\n          node.value = this.flowParseTypeInitialiser();\n          node.variance = variance;\n        }\n\n        node.optional = optional;\n\n        return this.finishNode(node, \"ObjectTypeProperty\");\n      }\n    }\n\n    // This is similar to checkGetterSetterParams, but as\n    // @babel/parser uses non estree properties we cannot reuse it here\n    flowCheckGetterSetterParams(\n      property: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n    ): void {\n      const paramCount = property.kind === \"get\" ? 0 : 1;\n      const start = property.start;\n      const length =\n        property.value.params.length + (property.value.rest ? 1 : 0);\n      if (length !== paramCount) {\n        if (property.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      }\n\n      if (property.kind === \"set\" && property.value.rest) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    flowObjectTypeSemicolon(): void {\n      if (\n        !this.eat(tt.semi) &&\n        !this.eat(tt.comma) &&\n        !this.match(tt.braceR) &&\n        !this.match(tt.braceBarR)\n      ) {\n        this.unexpected();\n      }\n    }\n\n    flowParseQualifiedTypeIdentifier(\n      startPos?: number,\n      startLoc?: Position,\n      id?: N.Identifier,\n    ): N.FlowQualifiedTypeIdentifier {\n      startPos = startPos || this.state.start;\n      startLoc = startLoc || this.state.startLoc;\n      let node = id || this.flowParseRestrictedIdentifier(true);\n\n      while (this.eat(tt.dot)) {\n        const node2 = this.startNodeAt(startPos, startLoc);\n        node2.qualification = node;\n        node2.id = this.flowParseRestrictedIdentifier(true);\n        node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n      }\n\n      return node;\n    }\n\n    flowParseGenericType(\n      startPos: number,\n      startLoc: Position,\n      id: N.Identifier,\n    ): N.FlowGenericTypeAnnotation {\n      const node = this.startNodeAt(startPos, startLoc);\n\n      node.typeParameters = null;\n      node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      }\n\n      return this.finishNode(node, \"GenericTypeAnnotation\");\n    }\n\n    flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n      const node = this.startNode();\n      this.expect(tt._typeof);\n      node.argument = this.flowParsePrimaryType();\n      return this.finishNode(node, \"TypeofTypeAnnotation\");\n    }\n\n    flowParseTupleType(): N.FlowTupleTypeAnnotation {\n      const node = this.startNode();\n      node.types = [];\n      this.expect(tt.bracketL);\n      // We allow trailing commas\n      while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n        node.types.push(this.flowParseType());\n        if (this.match(tt.bracketR)) break;\n        this.expect(tt.comma);\n      }\n      this.expect(tt.bracketR);\n      return this.finishNode(node, \"TupleTypeAnnotation\");\n    }\n\n    flowParseFunctionTypeParam(): N.FlowFunctionTypeParam {\n      let name = null;\n      let optional = false;\n      let typeAnnotation = null;\n      const node = this.startNode();\n      const lh = this.lookahead();\n      if (lh.type === tt.colon || lh.type === tt.question) {\n        name = this.parseIdentifier();\n        if (this.eat(tt.question)) {\n          optional = true;\n        }\n        typeAnnotation = this.flowParseTypeInitialiser();\n      } else {\n        typeAnnotation = this.flowParseType();\n      }\n      node.name = name;\n      node.optional = optional;\n      node.typeAnnotation = typeAnnotation;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    reinterpretTypeAsFunctionTypeParam(\n      type: N.FlowType,\n    ): N.FlowFunctionTypeParam {\n      const node = this.startNodeAt(type.start, type.loc.start);\n      node.name = null;\n      node.optional = false;\n      node.typeAnnotation = type;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    flowParseFunctionTypeParams(\n      params: N.FlowFunctionTypeParam[] = [],\n    ): { params: N.FlowFunctionTypeParam[], rest: ?N.FlowFunctionTypeParam } {\n      let rest: ?N.FlowFunctionTypeParam = null;\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n      if (this.eat(tt.ellipsis)) {\n        rest = this.flowParseFunctionTypeParam();\n      }\n      return { params, rest };\n    }\n\n    flowIdentToTypeAnnotation(\n      startPos: number,\n      startLoc: Position,\n      node: N.FlowTypeAnnotation,\n      id: N.Identifier,\n    ): N.FlowTypeAnnotation {\n      switch (id.name) {\n        case \"any\":\n          return this.finishNode(node, \"AnyTypeAnnotation\");\n\n        case \"bool\":\n        case \"boolean\":\n          return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n        case \"mixed\":\n          return this.finishNode(node, \"MixedTypeAnnotation\");\n\n        case \"empty\":\n          return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n        case \"number\":\n          return this.finishNode(node, \"NumberTypeAnnotation\");\n\n        case \"string\":\n          return this.finishNode(node, \"StringTypeAnnotation\");\n\n        case \"symbol\":\n          return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n        default:\n          this.checkNotUnderscore(id.name);\n          return this.flowParseGenericType(startPos, startLoc, id);\n      }\n    }\n\n    // The parsing of types roughly parallels the parsing of expressions, and\n    // primary types are kind of like primary expressions...they're the\n    // primitives with which other types are constructed.\n    flowParsePrimaryType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const node = this.startNode();\n      let tmp;\n      let type;\n      let isGroupedType = false;\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n      switch (this.state.type) {\n        case tt.name:\n          if (this.isContextual(\"interface\")) {\n            return this.flowParseInterfaceType();\n          }\n\n          return this.flowIdentToTypeAnnotation(\n            startPos,\n            startLoc,\n            node,\n            this.parseIdentifier(),\n          );\n\n        case tt.braceL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: false,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: true,\n          });\n\n        case tt.braceBarL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: true,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: false,\n          });\n\n        case tt.bracketL:\n          this.state.noAnonFunctionType = false;\n          type = this.flowParseTupleType();\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n          return type;\n\n        case tt.relational:\n          if (this.state.value === \"<\") {\n            node.typeParameters = this.flowParseTypeParameterDeclaration();\n            this.expect(tt.parenL);\n            tmp = this.flowParseFunctionTypeParams();\n            node.params = tmp.params;\n            node.rest = tmp.rest;\n            this.expect(tt.parenR);\n\n            this.expect(tt.arrow);\n\n            node.returnType = this.flowParseType();\n\n            return this.finishNode(node, \"FunctionTypeAnnotation\");\n          }\n          break;\n\n        case tt.parenL:\n          this.next();\n\n          // Check to see if this is actually a grouped type\n          if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n            if (this.match(tt.name)) {\n              const token = this.lookahead().type;\n              isGroupedType = token !== tt.question && token !== tt.colon;\n            } else {\n              isGroupedType = true;\n            }\n          }\n\n          if (isGroupedType) {\n            this.state.noAnonFunctionType = false;\n            type = this.flowParseType();\n            this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n            // A `,` or a `) =>` means this is an anonymous function type\n            if (\n              this.state.noAnonFunctionType ||\n              !(\n                this.match(tt.comma) ||\n                (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n              )\n            ) {\n              this.expect(tt.parenR);\n              return type;\n            } else {\n              // Eat a comma if there is one\n              this.eat(tt.comma);\n            }\n          }\n\n          if (type) {\n            tmp = this.flowParseFunctionTypeParams([\n              this.reinterpretTypeAsFunctionTypeParam(type),\n            ]);\n          } else {\n            tmp = this.flowParseFunctionTypeParams();\n          }\n\n          node.params = tmp.params;\n          node.rest = tmp.rest;\n\n          this.expect(tt.parenR);\n\n          this.expect(tt.arrow);\n\n          node.returnType = this.flowParseType();\n\n          node.typeParameters = null;\n\n          return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n        case tt.string:\n          return this.parseLiteral(\n            this.state.value,\n            \"StringLiteralTypeAnnotation\",\n          );\n\n        case tt._true:\n        case tt._false:\n          node.value = this.match(tt._true);\n          this.next();\n          return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            this.next();\n            if (this.match(tt.num)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"NumberLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            if (this.match(tt.bigint)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"BigIntLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            throw this.raise(\n              this.state.start,\n              FlowErrors.UnexpectedSubtractionOperand,\n            );\n          }\n\n          throw this.unexpected();\n        case tt.num:\n          return this.parseLiteral(\n            this.state.value,\n            \"NumberLiteralTypeAnnotation\",\n          );\n\n        case tt.bigint:\n          return this.parseLiteral(\n            this.state.value,\n            \"BigIntLiteralTypeAnnotation\",\n          );\n\n        case tt._void:\n          this.next();\n          return this.finishNode(node, \"VoidTypeAnnotation\");\n\n        case tt._null:\n          this.next();\n          return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n        case tt._this:\n          this.next();\n          return this.finishNode(node, \"ThisTypeAnnotation\");\n\n        case tt.star:\n          this.next();\n          return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n        default:\n          if (this.state.type.keyword === \"typeof\") {\n            return this.flowParseTypeofType();\n          } else if (this.state.type.keyword) {\n            const label = this.state.type.label;\n            this.next();\n            return super.createIdentifier(node, label);\n          }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParsePostfixType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start,\n        startLoc = this.state.startLoc;\n      let type = this.flowParsePrimaryType();\n      while (this.match(tt.bracketL) && !this.canInsertSemicolon()) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.elementType = type;\n        this.expect(tt.bracketL);\n        this.expect(tt.bracketR);\n        type = this.finishNode(node, \"ArrayTypeAnnotation\");\n      }\n      return type;\n    }\n\n    flowParsePrefixType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      if (this.eat(tt.question)) {\n        node.typeAnnotation = this.flowParsePrefixType();\n        return this.finishNode(node, \"NullableTypeAnnotation\");\n      } else {\n        return this.flowParsePostfixType();\n      }\n    }\n\n    flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n      const param = this.flowParsePrefixType();\n      if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n        // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n        const node = this.startNodeAt(param.start, param.loc.start);\n        node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n        node.rest = null;\n        node.returnType = this.flowParseType();\n        node.typeParameters = null;\n        return this.finishNode(node, \"FunctionTypeAnnotation\");\n      }\n      return param;\n    }\n\n    flowParseIntersectionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseAND);\n      const type = this.flowParseAnonFunctionWithoutParens();\n      node.types = [type];\n      while (this.eat(tt.bitwiseAND)) {\n        node.types.push(this.flowParseAnonFunctionWithoutParens());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"IntersectionTypeAnnotation\");\n    }\n\n    flowParseUnionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseOR);\n      const type = this.flowParseIntersectionType();\n      node.types = [type];\n      while (this.eat(tt.bitwiseOR)) {\n        node.types.push(this.flowParseIntersectionType());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"UnionTypeAnnotation\");\n    }\n\n    flowParseType(): N.FlowTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      const type = this.flowParseUnionType();\n      this.state.inType = oldInType;\n      // Ensure that a brace after a function generic type annotation is a\n      // statement, except in arrow functions (noAnonFunctionType)\n      this.state.exprAllowed =\n        this.state.exprAllowed || this.state.noAnonFunctionType;\n      return type;\n    }\n\n    flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n      if (this.state.type === tt.name && this.state.value === \"_\") {\n        const startPos = this.state.start;\n        const startLoc = this.state.startLoc;\n        const node = this.parseIdentifier();\n        return this.flowParseGenericType(startPos, startLoc, node);\n      } else {\n        return this.flowParseType();\n      }\n    }\n\n    flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      node.typeAnnotation = this.flowParseTypeInitialiser();\n      return this.finishNode(node, \"TypeAnnotation\");\n    }\n\n    flowParseTypeAnnotatableIdentifier(\n      allowPrimitiveOverride?: boolean,\n    ): N.Identifier {\n      const ident = allowPrimitiveOverride\n        ? this.parseIdentifier()\n        : this.flowParseRestrictedIdentifier();\n      if (this.match(tt.colon)) {\n        ident.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(ident);\n      }\n      return ident;\n    }\n\n    typeCastToParameter(node: N.Node): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    flowParseVariance(): ?N.FlowVariance {\n      let variance = null;\n      if (this.match(tt.plusMin)) {\n        variance = this.startNode();\n        if (this.state.value === \"+\") {\n          variance.kind = \"plus\";\n        } else {\n          variance.kind = \"minus\";\n        }\n        this.next();\n        this.finishNode(variance, \"Variance\");\n      }\n      return variance;\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpressionBody: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      if (allowExpressionBody) {\n        return this.forwardNoArrowParamsConversionAt(node, () =>\n          super.parseFunctionBody(node, true, isMethod),\n        );\n      }\n\n      return super.parseFunctionBody(node, false, isMethod);\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        const typeNode = this.startNode();\n\n        [\n          // $FlowFixMe (destructuring not supported yet)\n          typeNode.typeAnnotation,\n          // $FlowFixMe (destructuring not supported yet)\n          node.predicate,\n        ] = this.flowParseTypeAndPredicateInitialiser();\n\n        node.returnType = typeNode.typeAnnotation\n          ? this.finishNode(typeNode, \"TypeAnnotation\")\n          : null;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    // interfaces and enums\n    parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n      // strict mode handling of `interface` since it's a reserved word\n      if (\n        this.state.strict &&\n        this.match(tt.name) &&\n        this.state.value === \"interface\"\n      ) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseInterface(node);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      } else {\n        const stmt = super.parseStatement(context, topLevel);\n        // We will parse a flow pragma in any comment before the first statement.\n        if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n          this.flowPragma = null;\n        }\n        return stmt;\n      }\n    }\n\n    // declares, interfaces and type aliases\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.ExpressionStatement {\n      if (expr.type === \"Identifier\") {\n        if (expr.name === \"declare\") {\n          if (\n            this.match(tt._class) ||\n            this.match(tt.name) ||\n            this.match(tt._function) ||\n            this.match(tt._var) ||\n            this.match(tt._export)\n          ) {\n            return this.flowParseDeclare(node);\n          }\n        } else if (this.match(tt.name)) {\n          if (expr.name === \"interface\") {\n            return this.flowParseInterface(node);\n          } else if (expr.name === \"type\") {\n            return this.flowParseTypeAlias(node);\n          } else if (expr.name === \"opaque\") {\n            return this.flowParseOpaqueType(node, false);\n          }\n        }\n      }\n\n      return super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    shouldParseExportDeclaration(): boolean {\n      return (\n        this.isContextual(\"type\") ||\n        this.isContextual(\"interface\") ||\n        this.isContextual(\"opaque\") ||\n        (this.shouldParseEnums() && this.isContextual(\"enum\")) ||\n        super.shouldParseExportDeclaration()\n      );\n    }\n\n    isExportDefaultSpecifier(): boolean {\n      if (\n        this.match(tt.name) &&\n        (this.state.value === \"type\" ||\n          this.state.value === \"interface\" ||\n          this.state.value === \"opaque\" ||\n          (this.shouldParseEnums() && this.state.value === \"enum\"))\n      ) {\n        return false;\n      }\n\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      }\n      return super.parseExportDefaultExpression();\n    }\n\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      if (!this.match(tt.question)) return expr;\n\n      // only use the expensive \"tryParse\" method if there is a question mark\n      // and if we come from inside parens\n      if (refNeedsArrowPos) {\n        const result = this.tryParse(() =>\n          super.parseConditional(expr, noIn, startPos, startLoc),\n        );\n\n        if (!result.node) {\n          // $FlowIgnore\n          refNeedsArrowPos.start = result.error.pos || this.state.start;\n          return expr;\n        }\n\n        if (result.error) this.state = result.failState;\n        return result.node;\n      }\n\n      this.expect(tt.question);\n      const state = this.state.clone();\n      const originalNoArrowAt = this.state.noArrowAt;\n      const node = this.startNodeAt(startPos, startLoc);\n      let { consequent, failed } = this.tryParseConditionalConsequent();\n      let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n      if (failed || invalid.length > 0) {\n        const noArrowAt = [...originalNoArrowAt];\n\n        if (invalid.length > 0) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt;\n\n          for (let i = 0; i < invalid.length; i++) {\n            noArrowAt.push(invalid[i].start);\n          }\n\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n          [valid, invalid] = this.getArrowLikeExpressions(consequent);\n        }\n\n        if (failed && valid.length > 1) {\n          // if there are two or more possible correct ways of parsing, throw an\n          // error.\n          // e.g.   Source: a ? (b): c => (d): e => f\n          //      Result 1: a ? b : (c => ((d): e => f))\n          //      Result 2: a ? ((b): c => d) : (e => f)\n          this.raise(state.start, FlowErrors.AmbiguousConditionalArrow);\n        }\n\n        if (failed && valid.length === 1) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt.concat(valid[0].start);\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n        }\n      }\n\n      this.getArrowLikeExpressions(consequent, true);\n\n      this.state.noArrowAt = originalNoArrowAt;\n      this.expect(tt.colon);\n\n      node.test = expr;\n      node.consequent = consequent;\n      node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n        this.parseMaybeAssign(noIn, undefined, undefined, undefined),\n      );\n\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n\n    tryParseConditionalConsequent(): {\n      consequent: N.Expression,\n      failed: boolean,\n    } {\n      this.state.noArrowParamsConversionAt.push(this.state.start);\n\n      const consequent = this.parseMaybeAssign();\n      const failed = !this.match(tt.colon);\n\n      this.state.noArrowParamsConversionAt.pop();\n\n      return { consequent, failed };\n    }\n\n    // Given an expression, walks through out its arrow functions whose body is\n    // an expression and through out conditional expressions. It returns every\n    // function which has been parsed with a return type but could have been\n    // parenthesized expressions.\n    // These functions are separated into two arrays: one containing the ones\n    // whose parameters can be converted to assignable lists, one containing the\n    // others.\n    getArrowLikeExpressions(\n      node: N.Expression,\n      disallowInvalid?: boolean,\n    ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n      const stack = [node];\n      const arrows: N.ArrowFunctionExpression[] = [];\n\n      while (stack.length !== 0) {\n        const node = stack.pop();\n        if (node.type === \"ArrowFunctionExpression\") {\n          if (node.typeParameters || !node.returnType) {\n            // This is an arrow expression without ambiguity, so check its parameters\n            this.finishArrowValidation(node);\n          } else {\n            arrows.push(node);\n          }\n          stack.push(node.body);\n        } else if (node.type === \"ConditionalExpression\") {\n          stack.push(node.consequent);\n          stack.push(node.alternate);\n        }\n      }\n\n      if (disallowInvalid) {\n        arrows.forEach(node => this.finishArrowValidation(node));\n        return [arrows, []];\n      }\n\n      return partition(arrows, node =>\n        node.params.every(param => this.isAssignable(param, true)),\n      );\n    }\n\n    finishArrowValidation(node: N.ArrowFunctionExpression) {\n      this.toAssignableList(\n        // node.params is Expression[] instead of $ReadOnlyArray<Pattern> because it\n        // has not been converted yet.\n        ((node.params: any): N.Expression[]),\n        node.extra?.trailingComma,\n      );\n      // Enter scope, as checkParams defines bindings\n      this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n      // Use super's method to force the parameters to be checked\n      super.checkParams(node, false, true);\n      this.scope.exit();\n    }\n\n    forwardNoArrowParamsConversionAt<T>(node: N.Node, parse: () => T): T {\n      let result: T;\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        this.state.noArrowParamsConversionAt.push(this.state.start);\n        result = parse();\n        this.state.noArrowParamsConversionAt.pop();\n      } else {\n        result = parse();\n      }\n\n      return result;\n    }\n\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode = this.startNodeAt(startPos, startLoc);\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    assertModuleNodeAllowed(node: N.Node) {\n      if (\n        (node.type === \"ImportDeclaration\" &&\n          (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n        (node.type === \"ExportNamedDeclaration\" &&\n          node.exportKind === \"type\") ||\n        (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n      ) {\n        // Allow Flowtype imports and exports in all conditions because\n        // Flow itself does not care about 'sourceType'.\n        return;\n      }\n\n      super.assertModuleNodeAllowed(node);\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      const decl = super.parseExport(node);\n      if (\n        decl.type === \"ExportNamedDeclaration\" ||\n        decl.type === \"ExportAllDeclaration\"\n      ) {\n        decl.exportKind = decl.exportKind || \"value\";\n      }\n      return decl;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      if (this.isContextual(\"type\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n\n        if (this.match(tt.braceL)) {\n          // export type { foo, bar };\n          node.specifiers = this.parseExportSpecifiers();\n          this.parseExportFrom(node);\n          return null;\n        } else {\n          // export type Foo = Bar;\n          return this.flowParseTypeAlias(declarationNode);\n        }\n      } else if (this.isContextual(\"opaque\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n        // export opaque type Foo = Bar;\n        return this.flowParseOpaqueType(declarationNode, false);\n      } else if (this.isContextual(\"interface\")) {\n        node.exportKind = \"type\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseInterface(declarationNode);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        node.exportKind = \"value\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(declarationNode);\n      } else {\n        return super.parseExportDeclaration(node);\n      }\n    }\n\n    eatExportStar(node: N.Node): boolean {\n      if (super.eatExportStar(...arguments)) return true;\n\n      if (this.isContextual(\"type\") && this.lookahead().type === tt.star) {\n        node.exportKind = \"type\";\n        this.next();\n        this.next();\n        return true;\n      }\n\n      return false;\n    }\n\n    maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n      const pos = this.state.start;\n      const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n      if (hasNamespace && node.exportKind === \"type\") {\n        this.unexpected(pos);\n      }\n      return hasNamespace;\n    }\n\n    parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) {\n      super.parseClassId(node, isStatement, optionalId);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      const pos = this.state.start;\n      if (this.isContextual(\"declare\")) {\n        if (this.parseClassMemberFromModifier(classBody, member)) {\n          // 'declare' is a class element name\n          return;\n        }\n\n        member.declare = true;\n      }\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n      if (member.declare) {\n        if (\n          member.type !== \"ClassProperty\" &&\n          member.type !== \"ClassPrivateProperty\"\n        ) {\n          this.raise(pos, FlowErrors.DeclareClassElement);\n        } else if (member.value) {\n          this.raise(\n            member.value.start,\n            FlowErrors.DeclareClassFieldInitializer,\n          );\n        }\n      }\n    }\n\n    // ensure that inside flow types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n        return this.finishOp(tt.braceBarL, 2);\n      } else if (\n        this.state.inType &&\n        (code === charCodes.greaterThan || code === charCodes.lessThan)\n      ) {\n        return this.finishOp(tt.relational, 1);\n      } else if (isIteratorStart(code, next)) {\n        this.state.isIterator = true;\n        return super.readWord();\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    isAssignable(node: N.Node, isBinding?: boolean): boolean {\n      switch (node.type) {\n        case \"Identifier\":\n        case \"ObjectPattern\":\n        case \"ArrayPattern\":\n        case \"AssignmentPattern\":\n          return true;\n\n        case \"ObjectExpression\": {\n          const last = node.properties.length - 1;\n          return node.properties.every((prop, i) => {\n            return (\n              prop.type !== \"ObjectMethod\" &&\n              (i === last || prop.type === \"SpreadElement\") &&\n              this.isAssignable(prop)\n            );\n          });\n        }\n\n        case \"ObjectProperty\":\n          return this.isAssignable(node.value);\n\n        case \"SpreadElement\":\n          return this.isAssignable(node.argument);\n\n        case \"ArrayExpression\":\n          return node.elements.every(element => this.isAssignable(element));\n\n        case \"AssignmentExpression\":\n          return node.operator === \"=\";\n\n        case \"ParenthesizedExpression\":\n        case \"TypeCastExpression\":\n          return this.isAssignable(node.expression);\n\n        case \"MemberExpression\":\n        case \"OptionalMemberExpression\":\n          return !isBinding;\n\n        default:\n          return false;\n      }\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (node.type === \"TypeCastExpression\") {\n        return super.toAssignable(this.typeCastToParameter(node));\n      } else {\n        return super.toAssignable(node);\n      }\n    }\n\n    // turn type casts that we found in function parameter head into type annotated params\n    toAssignableList(\n      exprList: N.Expression[],\n      trailingCommaPos?: ?number,\n    ): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TypeCastExpression\") {\n          exprList[i] = this.typeCastToParameter(expr);\n        }\n      }\n      return super.toAssignableList(exprList, trailingCommaPos);\n    }\n\n    // this is a list of nodes, from something like a call expression, we need to filter the\n    // type casts that we've found that are illegal in this context\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (\n          expr &&\n          expr.type === \"TypeCastExpression\" &&\n          (!expr.extra || !expr.extra.parenthesized) &&\n          (exprList.length > 1 || !isParenthesizedExpr)\n        ) {\n          this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern);\n        }\n      }\n\n      return exprList;\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      if (expr.type !== \"TypeCastExpression\") {\n        return super.checkLVal(\n          expr,\n          bindingType,\n          checkClashes,\n          contextDescription,\n        );\n      }\n    }\n\n    // parse class property type annotations\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassPrivateProperty(node);\n    }\n\n    // determine whether or not we're currently in the position where a class method would appear\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    // determine whether or not we're currently in the position where a class property would appear\n    isClassProperty(): boolean {\n      return this.match(tt.colon) || super.isClassProperty();\n    }\n\n    isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n      return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n    }\n\n    // parse type parameters for class methods\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    // parse a the super class type parameters and implements\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n      }\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        const implemented: N.FlowClassImplements[] = (node.implements = []);\n        do {\n          const node = this.startNode();\n          node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n          if (this.isRelational(\"<\")) {\n            node.typeParameters = this.flowParseTypeParameterInstantiation();\n          } else {\n            node.typeParameters = null;\n          }\n          implemented.push(this.finishNode(node, \"ClassImplements\"));\n        } while (this.eat(tt.comma));\n      }\n    }\n\n    parsePropertyName(\n      node: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n      isPrivateNameAllowed: boolean,\n    ): N.Identifier {\n      const variance = this.flowParseVariance();\n      const key = super.parsePropertyName(node, isPrivateNameAllowed);\n      // $FlowIgnore (\"variance\" not defined on TsNamedTypeElementBase)\n      node.variance = variance;\n      return key;\n    }\n\n    // parse type parameters for object method shorthand\n    parseObjPropValue(\n      prop: N.ObjectMember,\n      startPos: ?number,\n      startLoc: ?Position,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n      containsEsc: boolean,\n    ): void {\n      if ((prop: $FlowFixMe).variance) {\n        this.unexpected((prop: $FlowFixMe).variance.start);\n      }\n      delete (prop: $FlowFixMe).variance;\n\n      let typeParameters;\n\n      // method shorthand\n      if (this.isRelational(\"<\")) {\n        typeParameters = this.flowParseTypeParameterDeclaration();\n        if (!this.match(tt.parenL)) this.unexpected();\n      }\n\n      super.parseObjPropValue(\n        prop,\n        startPos,\n        startLoc,\n        isGenerator,\n        isAsync,\n        isPattern,\n        refExpressionErrors,\n        containsEsc,\n      );\n\n      // add typeParameters if we found them\n      if (typeParameters) {\n        (prop.value || prop).typeParameters = typeParameters;\n      }\n    }\n\n    parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, FlowErrors.OptionalBindingPattern);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      if (this.match(tt.colon)) {\n        param.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      this.resetEndLocation(param);\n      return param;\n    }\n\n    parseMaybeDefault(\n      startPos?: ?number,\n      startLoc?: ?Position,\n      left?: ?N.Pattern,\n    ): N.Pattern {\n      const node = super.parseMaybeDefault(startPos, startLoc, left);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer);\n      }\n\n      return node;\n    }\n\n    shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n      if (!hasTypeImportKind(node)) {\n        return super.shouldParseDefaultImport(node);\n      }\n\n      return isMaybeDefaultImport(this.state);\n    }\n\n    parseImportSpecifierLocal(\n      node: N.ImportDeclaration,\n      specifier: N.Node,\n      type: string,\n      contextDescription: string,\n    ): void {\n      specifier.local = hasTypeImportKind(node)\n        ? this.flowParseRestrictedIdentifier(\n            /* liberal */ true,\n            /* declaration */ true,\n          )\n        : this.parseIdentifier();\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        contextDescription,\n      );\n      node.specifiers.push(this.finishNode(specifier, type));\n    }\n\n    // parse typeof and type imports\n    maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n      node.importKind = \"value\";\n\n      let kind = null;\n      if (this.match(tt._typeof)) {\n        kind = \"typeof\";\n      } else if (this.isContextual(\"type\")) {\n        kind = \"type\";\n      }\n      if (kind) {\n        const lh = this.lookahead();\n\n        // import type * is not allowed\n        if (kind === \"type\" && lh.type === tt.star) {\n          this.unexpected(lh.start);\n        }\n\n        if (\n          isMaybeDefaultImport(lh) ||\n          lh.type === tt.braceL ||\n          lh.type === tt.star\n        ) {\n          this.next();\n          node.importKind = kind;\n        }\n      }\n\n      return super.maybeParseDefaultImportSpecifier(node);\n    }\n\n    // parse import-type/typeof shorthand\n    parseImportSpecifier(node: N.ImportDeclaration): void {\n      const specifier = this.startNode();\n      const firstIdentLoc = this.state.start;\n      const firstIdent = this.parseIdentifier(true);\n\n      let specifierTypeKind = null;\n      if (firstIdent.name === \"type\") {\n        specifierTypeKind = \"type\";\n      } else if (firstIdent.name === \"typeof\") {\n        specifierTypeKind = \"typeof\";\n      }\n\n      let isBinding = false;\n      if (this.isContextual(\"as\") && !this.isLookaheadContextual(\"as\")) {\n        const as_ident = this.parseIdentifier(true);\n        if (\n          specifierTypeKind !== null &&\n          !this.match(tt.name) &&\n          !this.state.type.keyword\n        ) {\n          // `import {type as ,` or `import {type as }`\n          specifier.imported = as_ident;\n          specifier.importKind = specifierTypeKind;\n          specifier.local = as_ident.__clone();\n        } else {\n          // `import {type as foo`\n          specifier.imported = firstIdent;\n          specifier.importKind = null;\n          specifier.local = this.parseIdentifier();\n        }\n      } else if (\n        specifierTypeKind !== null &&\n        (this.match(tt.name) || this.state.type.keyword)\n      ) {\n        // `import {type foo`\n        specifier.imported = this.parseIdentifier(true);\n        specifier.importKind = specifierTypeKind;\n        if (this.eatContextual(\"as\")) {\n          specifier.local = this.parseIdentifier();\n        } else {\n          isBinding = true;\n          specifier.local = specifier.imported.__clone();\n        }\n      } else {\n        isBinding = true;\n        specifier.imported = firstIdent;\n        specifier.importKind = null;\n        specifier.local = specifier.imported.__clone();\n      }\n\n      const nodeIsTypeImport = hasTypeImportKind(node);\n      const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n      if (nodeIsTypeImport && specifierIsTypeImport) {\n        this.raise(\n          firstIdentLoc,\n          FlowErrors.ImportTypeShorthandOnlyInPureImport,\n        );\n      }\n\n      if (nodeIsTypeImport || specifierIsTypeImport) {\n        this.checkReservedType(\n          specifier.local.name,\n          specifier.local.start,\n          /* declaration */ true,\n        );\n      }\n\n      if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) {\n        this.checkReservedWord(\n          specifier.local.name,\n          specifier.start,\n          true,\n          true,\n        );\n      }\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        \"import specifier\",\n      );\n      node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n    }\n\n    // parse function type parameters - function foo<T>() {}\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      // $FlowFixMe\n      const kind = node.kind;\n      if (kind !== \"get\" && kind !== \"set\" && this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // parse flow type annotations on variable declarator heads - let foo: string = bar\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (this.match(tt.colon)) {\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n        this.state.noAnonFunctionType = true;\n        node.returnType = this.flowParseTypeAnnotation();\n        this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      }\n\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    // todo description\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    // We need to support type parameter declarations for arrow functions. This\n    // is tricky. There are three situations we need to handle\n    //\n    // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n    //    fails, we'll try an arrow function. If that fails, we'll throw the JSX\n    //    error.\n    // 2. This is an arrow function. We'll parse the type parameter declaration,\n    //    parse the rest, make sure the rest is an arrow function, and go from\n    //    there\n    // 3. This is neither. Just call the super method\n    parseMaybeAssign(\n      noIn?: ?boolean,\n      refExpressionErrors?: ?ExpressionErrors,\n      afterLeftParse?: Function,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      let state = null;\n\n      let jsx;\n\n      if (\n        this.hasPlugin(\"jsx\") &&\n        (this.match(tt.jsxTagStart) || this.isRelational(\"<\"))\n      ) {\n        state = this.state.clone();\n\n        jsx = this.tryParse(\n          () =>\n            super.parseMaybeAssign(\n              noIn,\n              refExpressionErrors,\n              afterLeftParse,\n              refNeedsArrowPos,\n            ),\n          state,\n        );\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === tc.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === tc.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if ((jsx && jsx.error) || this.isRelational(\"<\")) {\n        state = state || this.state.clone();\n\n        let typeParameters;\n\n        const arrow = this.tryParse(() => {\n          typeParameters = this.flowParseTypeParameterDeclaration();\n\n          const arrowExpression = this.forwardNoArrowParamsConversionAt(\n            typeParameters,\n            () =>\n              super.parseMaybeAssign(\n                noIn,\n                refExpressionErrors,\n                afterLeftParse,\n                refNeedsArrowPos,\n              ),\n          );\n          arrowExpression.typeParameters = typeParameters;\n          this.resetStartLocationFromNode(arrowExpression, typeParameters);\n\n          return arrowExpression;\n        }, state);\n\n        const arrowExpression: ?N.ArrowFunctionExpression =\n          arrow.node && arrow.node.type === \"ArrowFunctionExpression\"\n            ? arrow.node\n            : null;\n\n        if (!arrow.error && arrowExpression) return arrowExpression;\n\n        // If we are here, both JSX and Flow parsing attemps failed.\n        // Give the precedence to the JSX error, except if JSX had an\n        // unrecoverable error while Flow didn't.\n        // If the error is recoverable, we can only re-report it if there is\n        // a node we can return.\n\n        if (jsx && jsx.node) {\n          /*:: invariant(jsx.failState) */\n          this.state = jsx.failState;\n          return jsx.node;\n        }\n\n        if (arrowExpression) {\n          /*:: invariant(arrow.failState) */\n          this.state = arrow.failState;\n          return arrowExpression;\n        }\n\n        if (jsx && jsx.thrown) throw jsx.error;\n        if (arrow.thrown) throw arrow.error;\n\n        /*:: invariant(typeParameters) */\n        throw this.raise(\n          typeParameters.start,\n          FlowErrors.UnexpectedTokenAfterTypeParameter,\n        );\n      }\n\n      return super.parseMaybeAssign(\n        noIn,\n        refExpressionErrors,\n        afterLeftParse,\n        refNeedsArrowPos,\n      );\n    }\n\n    // handle return types for arrow functions\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const result = this.tryParse(() => {\n          const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n          this.state.noAnonFunctionType = true;\n\n          const typeNode = this.startNode();\n\n          [\n            // $FlowFixMe (destructuring not supported yet)\n            typeNode.typeAnnotation,\n            // $FlowFixMe (destructuring not supported yet)\n            node.predicate,\n          ] = this.flowParseTypeAndPredicateInitialiser();\n\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n          if (this.canInsertSemicolon()) this.unexpected();\n          if (!this.match(tt.arrow)) this.unexpected();\n\n          return typeNode;\n        });\n\n        if (result.thrown) return null;\n        /*:: invariant(result.node) */\n\n        if (result.error) this.state = result.failState;\n\n        // assign after it is clear it is an arrow\n        node.returnType = result.node.typeAnnotation\n          ? this.finishNode(result.node, \"TypeAnnotation\")\n          : null;\n      }\n\n      return super.parseArrow(node);\n    }\n\n    shouldParseArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    setArrowFunctionParameters(\n      node: N.ArrowFunctionExpression,\n      params: N.Expression[],\n    ): void {\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        node.params = params;\n      } else {\n        super.setArrowFunctionParameters(node, params);\n      }\n    }\n\n    checkParams(\n      node: N.Function,\n      allowDuplicates: boolean,\n      isArrowFunction: ?boolean,\n    ): void {\n      if (\n        isArrowFunction &&\n        this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n      ) {\n        return;\n      }\n\n      return super.checkParams(...arguments);\n    }\n\n    parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n      return super.parseParenAndDistinguishExpression(\n        canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n      );\n    }\n\n    parseSubscripts(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls?: ?boolean,\n    ): N.Expression {\n      if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.state.noArrowAt.indexOf(startPos) !== -1\n      ) {\n        this.next();\n\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        base = this.finishNode(node, \"CallExpression\");\n      } else if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.isRelational(\"<\")\n      ) {\n        const state = this.state.clone();\n        const arrow = this.tryParse(\n          abort =>\n            this.parseAsyncArrowWithTypeParameters(startPos, startLoc) ||\n            abort(),\n          state,\n        );\n\n        if (!arrow.error && !arrow.aborted) return arrow.node;\n\n        const result = this.tryParse(\n          () => super.parseSubscripts(base, startPos, startLoc, noCalls),\n          state,\n        );\n\n        if (result.node && !result.error) return result.node;\n\n        if (arrow.node) {\n          this.state = arrow.failState;\n          return arrow.node;\n        }\n\n        if (result.node) {\n          this.state = result.failState;\n          return result.node;\n        }\n\n        throw arrow.error || result.error;\n      }\n\n      return super.parseSubscripts(base, startPos, startLoc, noCalls);\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      subscriptState: N.ParseSubscriptState,\n    ): N.Expression {\n      if (this.match(tt.questionDot) && this.isLookaheadRelational(\"<\")) {\n        subscriptState.optionalChainMember = true;\n        if (noCalls) {\n          subscriptState.stop = true;\n          return base;\n        }\n        this.next();\n        const node: N.OptionalCallExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.callee = base;\n        node.typeArguments = this.flowParseTypeParameterInstantiation();\n        this.expect(tt.parenL);\n        // $FlowFixMe\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        node.optional = true;\n        return this.finishCallExpression(node, /* optional */ true);\n      } else if (\n        !noCalls &&\n        this.shouldParseTypes() &&\n        this.isRelational(\"<\")\n      ) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n\n        const result = this.tryParse(() => {\n          node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n          this.expect(tt.parenL);\n          node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n          if (subscriptState.optionalChainMember) node.optional = false;\n          return this.finishCallExpression(\n            node,\n            subscriptState.optionalChainMember,\n          );\n        });\n\n        if (result.node) {\n          if (result.error) this.state = result.failState;\n          return result.node;\n        }\n      }\n\n      return super.parseSubscript(\n        base,\n        startPos,\n        startLoc,\n        noCalls,\n        subscriptState,\n      );\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      let targs = null;\n      if (this.shouldParseTypes() && this.isRelational(\"<\")) {\n        targs = this.tryParse(() =>\n          this.flowParseTypeParameterInstantiationCallOrNew(),\n        ).node;\n      }\n      node.typeArguments = targs;\n\n      super.parseNewArguments(node);\n    }\n\n    parseAsyncArrowWithTypeParameters(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      const node = this.startNodeAt(startPos, startLoc);\n      this.parseFunctionParams(node);\n      if (!this.parseArrow(node)) return;\n      return this.parseArrowExpression(\n        node,\n        /* params */ undefined,\n        /* isAsync */ true,\n      );\n    }\n\n    readToken_mult_modulo(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.asterisk &&\n        next === charCodes.slash &&\n        this.state.hasFlowComment\n      ) {\n        this.state.hasFlowComment = false;\n        this.state.pos += 2;\n        this.nextToken();\n        return;\n      }\n\n      super.readToken_mult_modulo(code);\n    }\n\n    readToken_pipe_amp(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.verticalBar &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        // '|}'\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      super.readToken_pipe_amp(code);\n    }\n\n    parseTopLevel(file: N.File, program: N.Program): N.File {\n      const fileNode = super.parseTopLevel(file, program);\n      if (this.state.hasFlowComment) {\n        this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment);\n      }\n      return fileNode;\n    }\n\n    skipBlockComment(): void {\n      if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n        if (this.state.hasFlowComment) {\n          this.unexpected(null, FlowErrors.NestedFlowComment);\n        }\n        this.hasFlowCommentCompletion();\n        this.state.pos += this.skipFlowComment();\n        this.state.hasFlowComment = true;\n        return;\n      }\n\n      if (this.state.hasFlowComment) {\n        const end = this.input.indexOf(\"*-/\", (this.state.pos += 2));\n        if (end === -1) {\n          throw this.raise(this.state.pos - 2, Errors.UnterminatedComment);\n        }\n        this.state.pos = end + 3;\n        return;\n      }\n\n      super.skipBlockComment();\n    }\n\n    skipFlowComment(): number | boolean {\n      const { pos } = this.state;\n      let shiftToFirstNonWhiteSpace = 2;\n      while (\n        [charCodes.space, charCodes.tab].includes(\n          this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n        )\n      ) {\n        shiftToFirstNonWhiteSpace++;\n      }\n\n      const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n      const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n      if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n        return shiftToFirstNonWhiteSpace + 2; // check for /*::\n      }\n      if (\n        this.input.slice(\n          shiftToFirstNonWhiteSpace + pos,\n          shiftToFirstNonWhiteSpace + pos + 12,\n        ) === \"flow-include\"\n      ) {\n        return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n      }\n      if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n        return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n      }\n      return false;\n    }\n\n    hasFlowCommentCompletion(): void {\n      const end = this.input.indexOf(\"*/\", this.state.pos);\n      if (end === -1) {\n        throw this.raise(this.state.pos, Errors.UnterminatedComment);\n      }\n    }\n\n    // Flow enum parsing\n\n    flowEnumErrorBooleanMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumBooleanMemberNotInitialized,\n        memberName,\n        enumName,\n      );\n    }\n\n    flowEnumErrorInvalidMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      const suggestion = memberName[0].toUpperCase() + memberName.slice(1);\n      this.raise(\n        pos,\n        FlowErrors.EnumInvalidMemberName,\n        memberName,\n        suggestion,\n        enumName,\n      );\n    }\n\n    flowEnumErrorDuplicateMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName);\n    }\n\n    flowEnumErrorInconsistentMemberValues(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName);\n    }\n\n    flowEnumErrorInvalidExplicitType(\n      pos: number,\n      {\n        enumName,\n        suppliedType,\n      }: { enumName: string, suppliedType: null | string },\n    ) {\n      return this.raise(\n        pos,\n        suppliedType === null\n          ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied\n          : FlowErrors.EnumInvalidExplicitType,\n        enumName,\n        suppliedType,\n      );\n    }\n\n    flowEnumErrorInvalidMemberInitializer(\n      pos: number,\n      { enumName, explicitType, memberName }: EnumContext,\n    ) {\n      let message = null;\n      switch (explicitType) {\n        case \"boolean\":\n        case \"number\":\n        case \"string\":\n          message = FlowErrors.EnumInvalidMemberInitializerPrimaryType;\n          break;\n        case \"symbol\":\n          message = FlowErrors.EnumInvalidMemberInitializerSymbolType;\n          break;\n        default:\n          // null\n          message = FlowErrors.EnumInvalidMemberInitializerUnknownType;\n      }\n      return this.raise(pos, message, enumName, memberName, explicitType);\n    }\n\n    flowEnumErrorNumberMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumNumberMemberNotInitialized,\n        enumName,\n        memberName,\n      );\n    }\n\n    flowEnumErrorStringMemberInconsistentlyInitailized(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumStringMemberInconsistentlyInitailized,\n        enumName,\n      );\n    }\n\n    flowEnumMemberInit(): EnumMemberInit {\n      const startPos = this.state.start;\n      const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n      switch (this.state.type) {\n        case tt.num: {\n          const literal = this.parseLiteral(this.state.value, \"NumericLiteral\");\n          if (endOfInit()) {\n            return { type: \"number\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt.string: {\n          const literal = this.parseLiteral(this.state.value, \"StringLiteral\");\n          if (endOfInit()) {\n            return { type: \"string\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt._true:\n        case tt._false: {\n          const literal = this.parseBooleanLiteral();\n          if (endOfInit()) {\n            return {\n              type: \"boolean\",\n              pos: literal.start,\n              value: literal,\n            };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        default:\n          return { type: \"invalid\", pos: startPos };\n      }\n    }\n\n    flowEnumMemberRaw(): { id: N.Node, init: EnumMemberInit } {\n      const pos = this.state.start;\n      const id = this.parseIdentifier(true);\n      const init = this.eat(tt.eq)\n        ? this.flowEnumMemberInit()\n        : { type: \"none\", pos };\n      return { id, init };\n    }\n\n    flowEnumCheckExplicitTypeMismatch(\n      pos: number,\n      context: EnumContext,\n      expectedType: EnumExplicitType,\n    ): void {\n      const { explicitType } = context;\n      if (explicitType === null) {\n        return;\n      }\n      if (explicitType !== expectedType) {\n        this.flowEnumErrorInvalidMemberInitializer(pos, context);\n      }\n    }\n\n    flowEnumMembers({\n      enumName,\n      explicitType,\n    }: {\n      enumName: string,\n      explicitType: EnumExplicitType,\n    }): {|\n      booleanMembers: Array<N.Node>,\n      numberMembers: Array<N.Node>,\n      stringMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n    |} {\n      const seenNames = new Set();\n      const members = {\n        booleanMembers: [],\n        numberMembers: [],\n        stringMembers: [],\n        defaultedMembers: [],\n      };\n      while (!this.match(tt.braceR)) {\n        const memberNode = this.startNode();\n        const { id, init } = this.flowEnumMemberRaw();\n        const memberName = id.name;\n        if (memberName === \"\") {\n          continue;\n        }\n        if (/^[a-z]/.test(memberName)) {\n          this.flowEnumErrorInvalidMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        if (seenNames.has(memberName)) {\n          this.flowEnumErrorDuplicateMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        seenNames.add(memberName);\n        const context = { enumName, explicitType, memberName };\n        memberNode.id = id;\n        switch (init.type) {\n          case \"boolean\": {\n            this.flowEnumCheckExplicitTypeMismatch(\n              init.pos,\n              context,\n              \"boolean\",\n            );\n            memberNode.init = init.value;\n            members.booleanMembers.push(\n              this.finishNode(memberNode, \"EnumBooleanMember\"),\n            );\n            break;\n          }\n          case \"number\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"number\");\n            memberNode.init = init.value;\n            members.numberMembers.push(\n              this.finishNode(memberNode, \"EnumNumberMember\"),\n            );\n            break;\n          }\n          case \"string\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"string\");\n            memberNode.init = init.value;\n            members.stringMembers.push(\n              this.finishNode(memberNode, \"EnumStringMember\"),\n            );\n            break;\n          }\n          case \"invalid\": {\n            throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context);\n          }\n          case \"none\": {\n            switch (explicitType) {\n              case \"boolean\":\n                this.flowEnumErrorBooleanMemberNotInitialized(\n                  init.pos,\n                  context,\n                );\n                break;\n              case \"number\":\n                this.flowEnumErrorNumberMemberNotInitialized(init.pos, context);\n                break;\n              default:\n                members.defaultedMembers.push(\n                  this.finishNode(memberNode, \"EnumDefaultedMember\"),\n                );\n            }\n          }\n        }\n\n        if (!this.match(tt.braceR)) {\n          this.expect(tt.comma);\n        }\n      }\n      return members;\n    }\n\n    flowEnumStringMembers(\n      initializedMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n      { enumName }: { enumName: string },\n    ): Array<N.Node> {\n      if (initializedMembers.length === 0) {\n        return defaultedMembers;\n      } else if (defaultedMembers.length === 0) {\n        return initializedMembers;\n      } else if (defaultedMembers.length > initializedMembers.length) {\n        for (const member of initializedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return defaultedMembers;\n      } else {\n        for (const member of defaultedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return initializedMembers;\n      }\n    }\n\n    flowEnumParseExplicitType({\n      enumName,\n    }: {\n      enumName: string,\n    }): EnumExplicitType {\n      if (this.eatContextual(\"of\")) {\n        if (!this.match(tt.name)) {\n          throw this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: null,\n          });\n        }\n\n        const { value } = this.state;\n        this.next();\n\n        if (\n          value !== \"boolean\" &&\n          value !== \"number\" &&\n          value !== \"string\" &&\n          value !== \"symbol\"\n        ) {\n          this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: value,\n          });\n        }\n\n        return value;\n      }\n      return null;\n    }\n\n    flowEnumBody(node: N.Node, { enumName, nameLoc }): N.Node {\n      const explicitType = this.flowEnumParseExplicitType({ enumName });\n      this.expect(tt.braceL);\n      const members = this.flowEnumMembers({ enumName, explicitType });\n\n      switch (explicitType) {\n        case \"boolean\":\n          node.explicitType = true;\n          node.members = members.booleanMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumBooleanBody\");\n        case \"number\":\n          node.explicitType = true;\n          node.members = members.numberMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumNumberBody\");\n        case \"string\":\n          node.explicitType = true;\n          node.members = this.flowEnumStringMembers(\n            members.stringMembers,\n            members.defaultedMembers,\n            { enumName },\n          );\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumStringBody\");\n        case \"symbol\":\n          node.members = members.defaultedMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumSymbolBody\");\n        default: {\n          // `explicitType` is `null`\n          const empty = () => {\n            node.members = [];\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          };\n          node.explicitType = false;\n\n          const boolsLen = members.booleanMembers.length;\n          const numsLen = members.numberMembers.length;\n          const strsLen = members.stringMembers.length;\n          const defaultedLen = members.defaultedMembers.length;\n\n          if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n            return empty();\n          } else if (!boolsLen && !numsLen) {\n            node.members = this.flowEnumStringMembers(\n              members.stringMembers,\n              members.defaultedMembers,\n              { enumName },\n            );\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorBooleanMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.booleanMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumBooleanBody\");\n          } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorNumberMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.numberMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumNumberBody\");\n          } else {\n            this.flowEnumErrorInconsistentMemberValues(nameLoc, { enumName });\n            return empty();\n          }\n        }\n      }\n    }\n\n    flowParseEnumDeclaration(node: N.Node): N.Node {\n      const id = this.parseIdentifier();\n      node.id = id;\n      node.body = this.flowEnumBody(this.startNode(), {\n        enumName: id.name,\n        nameLoc: id.start,\n      });\n      return this.finishNode(node, \"EnumDeclaration\");\n    }\n  };\n","// @flow\n\nconst entities: { [name: string]: string } = {\n  quot: \"\\u0022\",\n  amp: \"&\",\n  apos: \"\\u0027\",\n  lt: \"<\",\n  gt: \">\",\n  nbsp: \"\\u00A0\",\n  iexcl: \"\\u00A1\",\n  cent: \"\\u00A2\",\n  pound: \"\\u00A3\",\n  curren: \"\\u00A4\",\n  yen: \"\\u00A5\",\n  brvbar: \"\\u00A6\",\n  sect: \"\\u00A7\",\n  uml: \"\\u00A8\",\n  copy: \"\\u00A9\",\n  ordf: \"\\u00AA\",\n  laquo: \"\\u00AB\",\n  not: \"\\u00AC\",\n  shy: \"\\u00AD\",\n  reg: \"\\u00AE\",\n  macr: \"\\u00AF\",\n  deg: \"\\u00B0\",\n  plusmn: \"\\u00B1\",\n  sup2: \"\\u00B2\",\n  sup3: \"\\u00B3\",\n  acute: \"\\u00B4\",\n  micro: \"\\u00B5\",\n  para: \"\\u00B6\",\n  middot: \"\\u00B7\",\n  cedil: \"\\u00B8\",\n  sup1: \"\\u00B9\",\n  ordm: \"\\u00BA\",\n  raquo: \"\\u00BB\",\n  frac14: \"\\u00BC\",\n  frac12: \"\\u00BD\",\n  frac34: \"\\u00BE\",\n  iquest: \"\\u00BF\",\n  Agrave: \"\\u00C0\",\n  Aacute: \"\\u00C1\",\n  Acirc: \"\\u00C2\",\n  Atilde: \"\\u00C3\",\n  Auml: \"\\u00C4\",\n  Aring: \"\\u00C5\",\n  AElig: \"\\u00C6\",\n  Ccedil: \"\\u00C7\",\n  Egrave: \"\\u00C8\",\n  Eacute: \"\\u00C9\",\n  Ecirc: \"\\u00CA\",\n  Euml: \"\\u00CB\",\n  Igrave: \"\\u00CC\",\n  Iacute: \"\\u00CD\",\n  Icirc: \"\\u00CE\",\n  Iuml: \"\\u00CF\",\n  ETH: \"\\u00D0\",\n  Ntilde: \"\\u00D1\",\n  Ograve: \"\\u00D2\",\n  Oacute: \"\\u00D3\",\n  Ocirc: \"\\u00D4\",\n  Otilde: \"\\u00D5\",\n  Ouml: \"\\u00D6\",\n  times: \"\\u00D7\",\n  Oslash: \"\\u00D8\",\n  Ugrave: \"\\u00D9\",\n  Uacute: \"\\u00DA\",\n  Ucirc: \"\\u00DB\",\n  Uuml: \"\\u00DC\",\n  Yacute: \"\\u00DD\",\n  THORN: \"\\u00DE\",\n  szlig: \"\\u00DF\",\n  agrave: \"\\u00E0\",\n  aacute: \"\\u00E1\",\n  acirc: \"\\u00E2\",\n  atilde: \"\\u00E3\",\n  auml: \"\\u00E4\",\n  aring: \"\\u00E5\",\n  aelig: \"\\u00E6\",\n  ccedil: \"\\u00E7\",\n  egrave: \"\\u00E8\",\n  eacute: \"\\u00E9\",\n  ecirc: \"\\u00EA\",\n  euml: \"\\u00EB\",\n  igrave: \"\\u00EC\",\n  iacute: \"\\u00ED\",\n  icirc: \"\\u00EE\",\n  iuml: \"\\u00EF\",\n  eth: \"\\u00F0\",\n  ntilde: \"\\u00F1\",\n  ograve: \"\\u00F2\",\n  oacute: \"\\u00F3\",\n  ocirc: \"\\u00F4\",\n  otilde: \"\\u00F5\",\n  ouml: \"\\u00F6\",\n  divide: \"\\u00F7\",\n  oslash: \"\\u00F8\",\n  ugrave: \"\\u00F9\",\n  uacute: \"\\u00FA\",\n  ucirc: \"\\u00FB\",\n  uuml: \"\\u00FC\",\n  yacute: \"\\u00FD\",\n  thorn: \"\\u00FE\",\n  yuml: \"\\u00FF\",\n  OElig: \"\\u0152\",\n  oelig: \"\\u0153\",\n  Scaron: \"\\u0160\",\n  scaron: \"\\u0161\",\n  Yuml: \"\\u0178\",\n  fnof: \"\\u0192\",\n  circ: \"\\u02C6\",\n  tilde: \"\\u02DC\",\n  Alpha: \"\\u0391\",\n  Beta: \"\\u0392\",\n  Gamma: \"\\u0393\",\n  Delta: \"\\u0394\",\n  Epsilon: \"\\u0395\",\n  Zeta: \"\\u0396\",\n  Eta: \"\\u0397\",\n  Theta: \"\\u0398\",\n  Iota: \"\\u0399\",\n  Kappa: \"\\u039A\",\n  Lambda: \"\\u039B\",\n  Mu: \"\\u039C\",\n  Nu: \"\\u039D\",\n  Xi: \"\\u039E\",\n  Omicron: \"\\u039F\",\n  Pi: \"\\u03A0\",\n  Rho: \"\\u03A1\",\n  Sigma: \"\\u03A3\",\n  Tau: \"\\u03A4\",\n  Upsilon: \"\\u03A5\",\n  Phi: \"\\u03A6\",\n  Chi: \"\\u03A7\",\n  Psi: \"\\u03A8\",\n  Omega: \"\\u03A9\",\n  alpha: \"\\u03B1\",\n  beta: \"\\u03B2\",\n  gamma: \"\\u03B3\",\n  delta: \"\\u03B4\",\n  epsilon: \"\\u03B5\",\n  zeta: \"\\u03B6\",\n  eta: \"\\u03B7\",\n  theta: \"\\u03B8\",\n  iota: \"\\u03B9\",\n  kappa: \"\\u03BA\",\n  lambda: \"\\u03BB\",\n  mu: \"\\u03BC\",\n  nu: \"\\u03BD\",\n  xi: \"\\u03BE\",\n  omicron: \"\\u03BF\",\n  pi: \"\\u03C0\",\n  rho: \"\\u03C1\",\n  sigmaf: \"\\u03C2\",\n  sigma: \"\\u03C3\",\n  tau: \"\\u03C4\",\n  upsilon: \"\\u03C5\",\n  phi: \"\\u03C6\",\n  chi: \"\\u03C7\",\n  psi: \"\\u03C8\",\n  omega: \"\\u03C9\",\n  thetasym: \"\\u03D1\",\n  upsih: \"\\u03D2\",\n  piv: \"\\u03D6\",\n  ensp: \"\\u2002\",\n  emsp: \"\\u2003\",\n  thinsp: \"\\u2009\",\n  zwnj: \"\\u200C\",\n  zwj: \"\\u200D\",\n  lrm: \"\\u200E\",\n  rlm: \"\\u200F\",\n  ndash: \"\\u2013\",\n  mdash: \"\\u2014\",\n  lsquo: \"\\u2018\",\n  rsquo: \"\\u2019\",\n  sbquo: \"\\u201A\",\n  ldquo: \"\\u201C\",\n  rdquo: \"\\u201D\",\n  bdquo: \"\\u201E\",\n  dagger: \"\\u2020\",\n  Dagger: \"\\u2021\",\n  bull: \"\\u2022\",\n  hellip: \"\\u2026\",\n  permil: \"\\u2030\",\n  prime: \"\\u2032\",\n  Prime: \"\\u2033\",\n  lsaquo: \"\\u2039\",\n  rsaquo: \"\\u203A\",\n  oline: \"\\u203E\",\n  frasl: \"\\u2044\",\n  euro: \"\\u20AC\",\n  image: \"\\u2111\",\n  weierp: \"\\u2118\",\n  real: \"\\u211C\",\n  trade: \"\\u2122\",\n  alefsym: \"\\u2135\",\n  larr: \"\\u2190\",\n  uarr: \"\\u2191\",\n  rarr: \"\\u2192\",\n  darr: \"\\u2193\",\n  harr: \"\\u2194\",\n  crarr: \"\\u21B5\",\n  lArr: \"\\u21D0\",\n  uArr: \"\\u21D1\",\n  rArr: \"\\u21D2\",\n  dArr: \"\\u21D3\",\n  hArr: \"\\u21D4\",\n  forall: \"\\u2200\",\n  part: \"\\u2202\",\n  exist: \"\\u2203\",\n  empty: \"\\u2205\",\n  nabla: \"\\u2207\",\n  isin: \"\\u2208\",\n  notin: \"\\u2209\",\n  ni: \"\\u220B\",\n  prod: \"\\u220F\",\n  sum: \"\\u2211\",\n  minus: \"\\u2212\",\n  lowast: \"\\u2217\",\n  radic: \"\\u221A\",\n  prop: \"\\u221D\",\n  infin: \"\\u221E\",\n  ang: \"\\u2220\",\n  and: \"\\u2227\",\n  or: \"\\u2228\",\n  cap: \"\\u2229\",\n  cup: \"\\u222A\",\n  int: \"\\u222B\",\n  there4: \"\\u2234\",\n  sim: \"\\u223C\",\n  cong: \"\\u2245\",\n  asymp: \"\\u2248\",\n  ne: \"\\u2260\",\n  equiv: \"\\u2261\",\n  le: \"\\u2264\",\n  ge: \"\\u2265\",\n  sub: \"\\u2282\",\n  sup: \"\\u2283\",\n  nsub: \"\\u2284\",\n  sube: \"\\u2286\",\n  supe: \"\\u2287\",\n  oplus: \"\\u2295\",\n  otimes: \"\\u2297\",\n  perp: \"\\u22A5\",\n  sdot: \"\\u22C5\",\n  lceil: \"\\u2308\",\n  rceil: \"\\u2309\",\n  lfloor: \"\\u230A\",\n  rfloor: \"\\u230B\",\n  lang: \"\\u2329\",\n  rang: \"\\u232A\",\n  loz: \"\\u25CA\",\n  spades: \"\\u2660\",\n  clubs: \"\\u2663\",\n  hearts: \"\\u2665\",\n  diams: \"\\u2666\",\n};\nexport default entities;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml\";\nimport type Parser from \"../../parser\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { TokenType, types as tt } from \"../../tokenizer/types\";\nimport { TokContext, types as tc } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier\";\nimport type { Position } from \"../../util/location\";\nimport { isNewLine } from \"../../util/whitespace\";\nimport { Errors } from \"../../parser/location\";\n\nconst HEX_NUMBER = /^[\\da-fA-F]+$/;\nconst DECIMAL_NUMBER = /^\\d+$/;\n\nconst JsxErrors = Object.freeze({\n  AttributeIsEmpty:\n    \"JSX attributes must only be assigned a non-empty expression\",\n  MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>\",\n  MissingClosingTagElement: \"Expected corresponding JSX closing tag for <%0>\",\n  UnsupportedJsxValue:\n    \"JSX value should be either an expression or a quoted JSX text\",\n  UnterminatedJsxContent: \"Unterminated JSX contents\",\n  UnwrappedAdjacentJSXElements:\n    \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\",\n});\n\n// Be aware that this file is always executed and not only when the plugin is enabled.\n// Therefore this contexts and tokens do always exist.\ntc.j_oTag = new TokContext(\"<tag\", false);\ntc.j_cTag = new TokContext(\"</tag\", false);\ntc.j_expr = new TokContext(\"<tag>...</tag>\", true, true);\n\ntt.jsxName = new TokenType(\"jsxName\");\ntt.jsxText = new TokenType(\"jsxText\", { beforeExpr: true });\ntt.jsxTagStart = new TokenType(\"jsxTagStart\", { startsExpr: true });\ntt.jsxTagEnd = new TokenType(\"jsxTagEnd\");\n\ntt.jsxTagStart.updateContext = function() {\n  this.state.context.push(tc.j_expr); // treat as beginning of JSX expression\n  this.state.context.push(tc.j_oTag); // start opening tag context\n  this.state.exprAllowed = false;\n};\n\ntt.jsxTagEnd.updateContext = function(prevType) {\n  const out = this.state.context.pop();\n  if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n    this.state.context.pop();\n    this.state.exprAllowed = this.curContext() === tc.j_expr;\n  } else {\n    this.state.exprAllowed = true;\n  }\n};\n\nfunction isFragment(object: ?N.JSXElement): boolean {\n  return object\n    ? object.type === \"JSXOpeningFragment\" ||\n        object.type === \"JSXClosingFragment\"\n    : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n  object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n  if (object.type === \"JSXIdentifier\") {\n    return object.name;\n  }\n\n  if (object.type === \"JSXNamespacedName\") {\n    return object.namespace.name + \":\" + object.name.name;\n  }\n\n  if (object.type === \"JSXMemberExpression\") {\n    return (\n      getQualifiedJSXName(object.object) +\n      \".\" +\n      getQualifiedJSXName(object.property)\n    );\n  }\n\n  // istanbul ignore next\n  throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // Reads inline JSX contents token.\n\n    jsxReadToken(): void {\n      let out = \"\";\n      let chunkStart = this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n\n        switch (ch) {\n          case charCodes.lessThan:\n          case charCodes.leftCurlyBrace:\n            if (this.state.pos === this.state.start) {\n              if (ch === charCodes.lessThan && this.state.exprAllowed) {\n                ++this.state.pos;\n                return this.finishToken(tt.jsxTagStart);\n              }\n              return super.getTokenFromCode(ch);\n            }\n            out += this.input.slice(chunkStart, this.state.pos);\n            return this.finishToken(tt.jsxText, out);\n\n          case charCodes.ampersand:\n            out += this.input.slice(chunkStart, this.state.pos);\n            out += this.jsxReadEntity();\n            chunkStart = this.state.pos;\n            break;\n\n          default:\n            if (isNewLine(ch)) {\n              out += this.input.slice(chunkStart, this.state.pos);\n              out += this.jsxReadNewLine(true);\n              chunkStart = this.state.pos;\n            } else {\n              ++this.state.pos;\n            }\n        }\n      }\n    }\n\n    jsxReadNewLine(normalizeCRLF: boolean): string {\n      const ch = this.input.charCodeAt(this.state.pos);\n      let out;\n      ++this.state.pos;\n      if (\n        ch === charCodes.carriageReturn &&\n        this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n      ) {\n        ++this.state.pos;\n        out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n      } else {\n        out = String.fromCharCode(ch);\n      }\n      ++this.state.curLine;\n      this.state.lineStart = this.state.pos;\n\n      return out;\n    }\n\n    jsxReadString(quote: number): void {\n      let out = \"\";\n      let chunkStart = ++this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, Errors.UnterminatedString);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n        if (ch === quote) break;\n        if (ch === charCodes.ampersand) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadEntity();\n          chunkStart = this.state.pos;\n        } else if (isNewLine(ch)) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadNewLine(false);\n          chunkStart = this.state.pos;\n        } else {\n          ++this.state.pos;\n        }\n      }\n      out += this.input.slice(chunkStart, this.state.pos++);\n      return this.finishToken(tt.string, out);\n    }\n\n    jsxReadEntity(): string {\n      let str = \"\";\n      let count = 0;\n      let entity;\n      let ch = this.input[this.state.pos];\n\n      const startPos = ++this.state.pos;\n      while (this.state.pos < this.length && count++ < 10) {\n        ch = this.input[this.state.pos++];\n        if (ch === \";\") {\n          if (str[0] === \"#\") {\n            if (str[1] === \"x\") {\n              str = str.substr(2);\n              if (HEX_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 16));\n              }\n            } else {\n              str = str.substr(1);\n              if (DECIMAL_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 10));\n              }\n            }\n          } else {\n            entity = XHTMLEntities[str];\n          }\n          break;\n        }\n        str += ch;\n      }\n      if (!entity) {\n        this.state.pos = startPos;\n        return \"&\";\n      }\n      return entity;\n    }\n\n    // Read a JSX identifier (valid tag or attribute name).\n    //\n    // Optimized version since JSX identifiers can\"t contain\n    // escape characters and so can be read as single slice.\n    // Also assumes that first character was already checked\n    // by isIdentifierStart in readToken.\n\n    jsxReadWord(): void {\n      let ch;\n      const start = this.state.pos;\n      do {\n        ch = this.input.charCodeAt(++this.state.pos);\n      } while (isIdentifierChar(ch) || ch === charCodes.dash);\n      return this.finishToken(\n        tt.jsxName,\n        this.input.slice(start, this.state.pos),\n      );\n    }\n\n    // Parse next token as JSX identifier\n\n    jsxParseIdentifier(): N.JSXIdentifier {\n      const node = this.startNode();\n      if (this.match(tt.jsxName)) {\n        node.name = this.state.value;\n      } else if (this.state.type.keyword) {\n        node.name = this.state.type.keyword;\n      } else {\n        this.unexpected();\n      }\n      this.next();\n      return this.finishNode(node, \"JSXIdentifier\");\n    }\n\n    // Parse namespaced identifier.\n\n    jsxParseNamespacedName(): N.JSXNamespacedName {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const name = this.jsxParseIdentifier();\n      if (!this.eat(tt.colon)) return name;\n\n      const node = this.startNodeAt(startPos, startLoc);\n      node.namespace = name;\n      node.name = this.jsxParseIdentifier();\n      return this.finishNode(node, \"JSXNamespacedName\");\n    }\n\n    // Parses element name in any form - namespaced, member\n    // or single identifier.\n\n    jsxParseElementName():\n      | N.JSXIdentifier\n      | N.JSXNamespacedName\n      | N.JSXMemberExpression {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let node = this.jsxParseNamespacedName();\n      if (node.type === \"JSXNamespacedName\") {\n        return node;\n      }\n      while (this.eat(tt.dot)) {\n        const newNode = this.startNodeAt(startPos, startLoc);\n        newNode.object = node;\n        newNode.property = this.jsxParseIdentifier();\n        node = this.finishNode(newNode, \"JSXMemberExpression\");\n      }\n      return node;\n    }\n\n    // Parses any type of JSX attribute value.\n\n    jsxParseAttributeValue(): N.Expression {\n      let node;\n      switch (this.state.type) {\n        case tt.braceL:\n          node = this.startNode();\n          this.next();\n          node = this.jsxParseExpressionContainer(node);\n          if (node.expression.type === \"JSXEmptyExpression\") {\n            this.raise(node.start, JsxErrors.AttributeIsEmpty);\n          }\n          return node;\n\n        case tt.jsxTagStart:\n        case tt.string:\n          return this.parseExprAtom();\n\n        default:\n          throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue);\n      }\n    }\n\n    // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n    // and so it should start at the end of last read token (left brace) and finish\n    // at the beginning of the next one (right brace).\n\n    jsxParseEmptyExpression(): N.JSXEmptyExpression {\n      const node = this.startNodeAt(\n        this.state.lastTokEnd,\n        this.state.lastTokEndLoc,\n      );\n      return this.finishNodeAt(\n        node,\n        \"JSXEmptyExpression\",\n        this.state.start,\n        this.state.startLoc,\n      );\n    }\n\n    // Parse JSX spread child\n\n    jsxParseSpreadChild(node: N.JSXSpreadChild): N.JSXSpreadChild {\n      this.next(); // ellipsis\n      node.expression = this.parseExpression();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"JSXSpreadChild\");\n    }\n\n    // Parses JSX expression enclosed into curly brackets.\n\n    jsxParseExpressionContainer(\n      node: N.JSXExpressionContainer,\n    ): N.JSXExpressionContainer {\n      if (this.match(tt.braceR)) {\n        node.expression = this.jsxParseEmptyExpression();\n      } else {\n        node.expression = this.parseExpression();\n      }\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"JSXExpressionContainer\");\n    }\n\n    // Parses following JSX attribute name-value pair.\n\n    jsxParseAttribute(): N.JSXAttribute {\n      const node = this.startNode();\n      if (this.eat(tt.braceL)) {\n        this.expect(tt.ellipsis);\n        node.argument = this.parseMaybeAssign();\n        this.expect(tt.braceR);\n        return this.finishNode(node, \"JSXSpreadAttribute\");\n      }\n      node.name = this.jsxParseNamespacedName();\n      node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n      return this.finishNode(node, \"JSXAttribute\");\n    }\n\n    // Parses JSX opening tag starting after \"<\".\n\n    jsxParseOpeningElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXOpeningElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXOpeningFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      return this.jsxParseOpeningElementAfterName(node);\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      const attributes: N.JSXAttribute[] = [];\n      while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n        attributes.push(this.jsxParseAttribute());\n      }\n      node.attributes = attributes;\n      node.selfClosing = this.eat(tt.slash);\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXOpeningElement\");\n    }\n\n    // Parses JSX closing tag starting after \"</\".\n\n    jsxParseClosingElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXClosingElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXClosingFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXClosingElement\");\n    }\n\n    // Parses entire JSX element, including it\"s opening tag\n    // (starting after \"<\"), attributes, contents and closing tag.\n\n    jsxParseElementAt(startPos: number, startLoc: Position): N.JSXElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      const children = [];\n      const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\n      let closingElement = null;\n\n      if (!openingElement.selfClosing) {\n        contents: for (;;) {\n          switch (this.state.type) {\n            case tt.jsxTagStart:\n              startPos = this.state.start;\n              startLoc = this.state.startLoc;\n              this.next();\n              if (this.eat(tt.slash)) {\n                closingElement = this.jsxParseClosingElementAt(\n                  startPos,\n                  startLoc,\n                );\n                break contents;\n              }\n              children.push(this.jsxParseElementAt(startPos, startLoc));\n              break;\n\n            case tt.jsxText:\n              children.push(this.parseExprAtom());\n              break;\n\n            case tt.braceL: {\n              const node = this.startNode();\n              this.next();\n              if (this.match(tt.ellipsis)) {\n                children.push(this.jsxParseSpreadChild(node));\n              } else {\n                children.push(this.jsxParseExpressionContainer(node));\n              }\n\n              break;\n            }\n            // istanbul ignore next - should never happen\n            default:\n              throw this.unexpected();\n          }\n        }\n\n        if (isFragment(openingElement) && !isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagFragment,\n          );\n        } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagElement,\n            getQualifiedJSXName(openingElement.name),\n          );\n        } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n          if (\n            // $FlowIgnore\n            getQualifiedJSXName(closingElement.name) !==\n            getQualifiedJSXName(openingElement.name)\n          ) {\n            this.raise(\n              // $FlowIgnore\n              closingElement.start,\n              JsxErrors.MissingClosingTagElement,\n              getQualifiedJSXName(openingElement.name),\n            );\n          }\n        }\n      }\n\n      if (isFragment(openingElement)) {\n        node.openingFragment = openingElement;\n        node.closingFragment = closingElement;\n      } else {\n        node.openingElement = openingElement;\n        node.closingElement = closingElement;\n      }\n      node.children = children;\n      if (this.isRelational(\"<\")) {\n        throw this.raise(\n          this.state.start,\n          JsxErrors.UnwrappedAdjacentJSXElements,\n        );\n      }\n\n      return isFragment(openingElement)\n        ? this.finishNode(node, \"JSXFragment\")\n        : this.finishNode(node, \"JSXElement\");\n    }\n\n    // Parses entire JSX element from current position.\n\n    jsxParseElement(): N.JSXElement {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      this.next();\n      return this.jsxParseElementAt(startPos, startLoc);\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseExprAtom(refExpressionErrors: ?ExpressionErrors): N.Expression {\n      if (this.match(tt.jsxText)) {\n        return this.parseLiteral(this.state.value, \"JSXText\");\n      } else if (this.match(tt.jsxTagStart)) {\n        return this.jsxParseElement();\n      } else if (\n        this.isRelational(\"<\") &&\n        this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n      ) {\n        // In case we encounter an lt token here it will always be the start of\n        // jsx as the lt sign is not allowed in places that expect an expression\n        this.finishToken(tt.jsxTagStart);\n        return this.jsxParseElement();\n      } else {\n        return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    getTokenFromCode(code: number): void {\n      if (this.state.inPropertyName) return super.getTokenFromCode(code);\n\n      const context = this.curContext();\n\n      if (context === tc.j_expr) {\n        return this.jsxReadToken();\n      }\n\n      if (context === tc.j_oTag || context === tc.j_cTag) {\n        if (isIdentifierStart(code)) {\n          return this.jsxReadWord();\n        }\n\n        if (code === charCodes.greaterThan) {\n          ++this.state.pos;\n          return this.finishToken(tt.jsxTagEnd);\n        }\n\n        if (\n          (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n          context === tc.j_oTag\n        ) {\n          return this.jsxReadString(code);\n        }\n      }\n\n      if (\n        code === charCodes.lessThan &&\n        this.state.exprAllowed &&\n        this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n      ) {\n        ++this.state.pos;\n        return this.finishToken(tt.jsxTagStart);\n      }\n\n      return super.getTokenFromCode(code);\n    }\n\n    updateContext(prevType: TokenType): void {\n      if (this.match(tt.braceL)) {\n        const curContext = this.curContext();\n        if (curContext === tc.j_oTag) {\n          this.state.context.push(tc.braceExpression);\n        } else if (curContext === tc.j_expr) {\n          this.state.context.push(tc.templateQuasi);\n        } else {\n          super.updateContext(prevType);\n        }\n        this.state.exprAllowed = true;\n      } else if (this.match(tt.slash) && prevType === tt.jsxTagStart) {\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\n        this.state.context.push(tc.j_cTag); // reconsider as closing tag context\n        this.state.exprAllowed = false;\n      } else {\n        return super.updateContext(prevType);\n      }\n    }\n  };\n","// @flow\nimport {\n  SCOPE_ARROW,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n  SCOPE_VAR,\n  SCOPE_CLASS,\n  BIND_SCOPE_FUNCTION,\n  BIND_SCOPE_VAR,\n  BIND_SCOPE_LEXICAL,\n  BIND_KIND_VALUE,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"./scopeflags\";\nimport * as N from \"../types\";\nimport { Errors } from \"../parser/location\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n  flags: ScopeFlags;\n  // A list of var-declared names in the current lexical scope\n  var: string[] = [];\n  // A list of lexically-declared names in the current lexical scope\n  lexical: string[] = [];\n  // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n  functions: string[] = [];\n\n  constructor(flags: ScopeFlags) {\n    this.flags = flags;\n  }\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler<IScope: Scope = Scope> {\n  scopeStack: Array<IScope> = [];\n  raise: raiseFunction;\n  inModule: boolean;\n  undefinedExports: Map<string, number> = new Map();\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction, inModule: boolean) {\n    this.raise = raise;\n    this.inModule = inModule;\n  }\n\n  get inFunction() {\n    return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get allowSuper() {\n    return (this.currentThisScope().flags & SCOPE_SUPER) > 0;\n  }\n  get allowDirectSuper() {\n    return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;\n  }\n  get inClass() {\n    return (this.currentThisScope().flags & SCOPE_CLASS) > 0;\n  }\n  get inNonArrowFunction() {\n    return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get treatFunctionsAsVar() {\n    return this.treatFunctionsAsVarInScope(this.currentScope());\n  }\n\n  createScope(flags: ScopeFlags): Scope {\n    return new Scope(flags);\n  }\n  // This method will be overwritten by subclasses\n  /*:: +createScope: (flags: ScopeFlags) => IScope; */\n\n  enter(flags: ScopeFlags) {\n    this.scopeStack.push(this.createScope(flags));\n  }\n\n  exit() {\n    this.scopeStack.pop();\n  }\n\n  // The spec says:\n  // > At the top level of a function, or script, function declarations are\n  // > treated like var declarations rather than like lexical declarations.\n  treatFunctionsAsVarInScope(scope: IScope): boolean {\n    return !!(\n      scope.flags & SCOPE_FUNCTION ||\n      (!this.inModule && scope.flags & SCOPE_PROGRAM)\n    );\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    let scope = this.currentScope();\n    if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) {\n      this.checkRedeclarationInScope(scope, name, bindingType, pos);\n\n      if (bindingType & BIND_SCOPE_FUNCTION) {\n        scope.functions.push(name);\n      } else {\n        scope.lexical.push(name);\n      }\n\n      if (bindingType & BIND_SCOPE_LEXICAL) {\n        this.maybeExportDefined(scope, name);\n      }\n    } else if (bindingType & BIND_SCOPE_VAR) {\n      for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n        scope = this.scopeStack[i];\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        scope.var.push(name);\n        this.maybeExportDefined(scope, name);\n\n        if (scope.flags & SCOPE_VAR) break;\n      }\n    }\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  maybeExportDefined(scope: IScope, name: string) {\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  checkRedeclarationInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n    pos: number,\n  ) {\n    if (this.isRedeclaredInScope(scope, name, bindingType)) {\n      this.raise(pos, Errors.VarRedeclaration, name);\n    }\n  }\n\n  isRedeclaredInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (!(bindingType & BIND_KIND_VALUE)) return false;\n\n    if (bindingType & BIND_SCOPE_LEXICAL) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        scope.functions.indexOf(name) > -1 ||\n        scope.var.indexOf(name) > -1\n      );\n    }\n\n    if (bindingType & BIND_SCOPE_FUNCTION) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        (!this.treatFunctionsAsVarInScope(scope) &&\n          scope.var.indexOf(name) > -1)\n      );\n    }\n\n    return (\n      (scope.lexical.indexOf(name) > -1 &&\n        !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name)) ||\n      (!this.treatFunctionsAsVarInScope(scope) &&\n        scope.functions.indexOf(name) > -1)\n    );\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1 &&\n      // In strict mode, scope.functions will always be empty.\n      // Modules are strict by default, but the `scriptMode` option\n      // can overwrite this behavior.\n      this.scopeStack[0].functions.indexOf(id.name) === -1\n    ) {\n      this.undefinedExports.set(id.name, id.start);\n    }\n  }\n\n  currentScope(): IScope {\n    return this.scopeStack[this.scopeStack.length - 1];\n  }\n\n  // $FlowIgnore\n  currentVarScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (scope.flags & SCOPE_VAR) {\n        return scope;\n      }\n    }\n  }\n\n  // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n  // $FlowIgnore\n  currentThisScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (\n        (scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) &&\n        !(scope.flags & SCOPE_ARROW)\n      ) {\n        return scope;\n      }\n    }\n  }\n}\n","// @flow\n\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n  BIND_KIND_TYPE,\n  BIND_FLAGS_TS_ENUM,\n  BIND_FLAGS_TS_CONST_ENUM,\n  BIND_FLAGS_TS_EXPORT_ONLY,\n  BIND_KIND_VALUE,\n  BIND_FLAGS_CLASS,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"../../util/scopeflags\";\nimport * as N from \"../../types\";\n\nclass TypeScriptScope extends Scope {\n  types: string[] = [];\n\n  // enums (which are also in .types)\n  enums: string[] = [];\n\n  // const enums (which are also in .enums and .types)\n  constEnums: string[] = [];\n\n  // classes (which are also in .lexical) and interface (which are also in .types)\n  classes: string[] = [];\n\n  // namespaces and ambient functions (or classes) are too difficult to track,\n  // especially without type analysis.\n  // We need to track them anyway, to avoid \"X is not defined\" errors\n  // when exporting them.\n  exportOnlyBindings: string[] = [];\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler<TypeScriptScope> {\n  createScope(flags: ScopeFlags): TypeScriptScope {\n    return new TypeScriptScope(flags);\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    const scope = this.currentScope();\n    if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) {\n      this.maybeExportDefined(scope, name);\n      scope.exportOnlyBindings.push(name);\n      return;\n    }\n\n    super.declareName(...arguments);\n\n    if (bindingType & BIND_KIND_TYPE) {\n      if (!(bindingType & BIND_KIND_VALUE)) {\n        // \"Value\" bindings have already been registered by the superclass.\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        this.maybeExportDefined(scope, name);\n      }\n      scope.types.push(name);\n    }\n    if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name);\n    if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name);\n    if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name);\n  }\n\n  isRedeclaredInScope(\n    scope: TypeScriptScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (scope.enums.indexOf(name) > -1) {\n      if (bindingType & BIND_FLAGS_TS_ENUM) {\n        // Enums can be merged with other enums if they are both\n        //  const or both non-const.\n        const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM);\n        const wasConst = scope.constEnums.indexOf(name) > -1;\n        return isConst !== wasConst;\n      }\n      return true;\n    }\n    if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) {\n      if (scope.lexical.indexOf(name) > -1) {\n        // Classes can be merged with interfaces\n        return !!(bindingType & BIND_KIND_VALUE);\n      } else {\n        // Interface can be merged with other classes or interfaces\n        return false;\n      }\n    }\n    if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) {\n      return true;\n    }\n\n    return super.isRedeclaredInScope(...arguments);\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].types.indexOf(id.name) === -1 &&\n      this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1\n    ) {\n      super.checkLocalExport(id);\n    }\n  }\n}\n","// @flow\nexport const PARAM = 0b000, // Initial Parameter flags\n  PARAM_YIELD = 0b001, // track [Yield] production parameter\n  PARAM_AWAIT = 0b010, // track [Await] production parameter\n  PARAM_RETURN = 0b100; // track [Return] production parameter\n\n// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above. Note that the [In] parameter is\n// tracked in `noIn` argument of `parseExpression`.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n//   async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n//     ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport type ParamKind = typeof PARAM | typeof PARAM_AWAIT | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n  stacks: Array<ParamKind> = [];\n  enter(flags: ParamKind) {\n    this.stacks.push(flags);\n  }\n\n  exit() {\n    this.stacks.pop();\n  }\n\n  currentFlags(): ParamKind {\n    return this.stacks[this.stacks.length - 1];\n  }\n\n  get hasAwait(): boolean {\n    return (this.currentFlags() & PARAM_AWAIT) > 0;\n  }\n\n  get hasYield(): boolean {\n    return (this.currentFlags() & PARAM_YIELD) > 0;\n  }\n\n  get hasReturn(): boolean {\n    return (this.currentFlags() & PARAM_RETURN) > 0;\n  }\n}\n\nexport function functionFlags(\n  isAsync: boolean,\n  isGenerator: boolean,\n): ParamKind {\n  return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type { TokenType } from \"../../tokenizer/types\";\nimport type State from \"../../tokenizer/state\";\nimport { types as tt } from \"../../tokenizer/types\";\nimport { types as ct } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport type { Pos, Position } from \"../../util/location\";\nimport type Parser from \"../../parser\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  SCOPE_TS_MODULE,\n  SCOPE_OTHER,\n  BIND_TS_ENUM,\n  BIND_TS_CONST_ENUM,\n  BIND_TS_TYPE,\n  BIND_TS_INTERFACE,\n  BIND_TS_AMBIENT,\n  BIND_TS_NAMESPACE,\n  BIND_CLASS,\n  BIND_LEXICAL,\n} from \"../../util/scopeflags\";\nimport TypeScriptScopeHandler from \"./scope\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { PARAM } from \"../../util/production-parameter\";\nimport { Errors } from \"../../parser/location\";\n\ntype TsModifier =\n  | \"readonly\"\n  | \"abstract\"\n  | \"declare\"\n  | \"static\"\n  | \"public\"\n  | \"private\"\n  | \"protected\";\n\nfunction nonNull<T>(x: ?T): T {\n  if (x == null) {\n    // $FlowIgnore\n    throw new Error(`Unexpected ${x} value.`);\n  }\n  return x;\n}\n\nfunction assert(x: boolean): void {\n  if (!x) {\n    throw new Error(\"Assert fail\");\n  }\n}\n\ntype ParsingContext =\n  | \"EnumMembers\"\n  | \"HeritageClauseElement\"\n  | \"TupleElementTypes\"\n  | \"TypeMembers\"\n  | \"TypeParametersOrArguments\";\n\nconst TSErrors = Object.freeze({\n  ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier\",\n  ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier\",\n  DeclareClassFieldHasInitializer:\n    \"'declare' class fields cannot have an initializer\",\n  DuplicateModifier: \"Duplicate modifier: '%0'\",\n  EmptyHeritageClauseType: \"'%0' list cannot be empty.\",\n  IndexSignatureHasAbstract:\n    \"Index signatures cannot have the 'abstract' modifier\",\n  IndexSignatureHasAccessibility:\n    \"Index signatures cannot have an accessibility modifier ('%0')\",\n  IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier\",\n  OptionalTypeBeforeRequired:\n    \"A required element cannot follow an optional element.\",\n  PatternIsOptional:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  PrivateElementHasAbstract:\n    \"Private elements cannot have the 'abstract' modifier.\",\n  PrivateElementHasAccessibility:\n    \"Private elements cannot have an accessibility modifier ('%0')\",\n  TemplateTypeHasSubstitution:\n    \"Template literal types cannot have any substitution\",\n  TypeAnnotationAfterAssign:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  UnexpectedReadonly:\n    \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n  UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n  UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n  UnsupportedImportTypeArgument:\n    \"Argument in a type import must be a string literal\",\n  UnsupportedParameterPropertyKind:\n    \"A parameter property may not be declared using a binding pattern.\",\n  UnsupportedSignatureParameterKind:\n    \"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0\",\n});\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\nfunction keywordTypeFromName(\n  value: string,\n): N.TsKeywordTypeType | typeof undefined {\n  switch (value) {\n    case \"any\":\n      return \"TSAnyKeyword\";\n    case \"boolean\":\n      return \"TSBooleanKeyword\";\n    case \"bigint\":\n      return \"TSBigIntKeyword\";\n    case \"never\":\n      return \"TSNeverKeyword\";\n    case \"number\":\n      return \"TSNumberKeyword\";\n    case \"object\":\n      return \"TSObjectKeyword\";\n    case \"string\":\n      return \"TSStringKeyword\";\n    case \"symbol\":\n      return \"TSSymbolKeyword\";\n    case \"undefined\":\n      return \"TSUndefinedKeyword\";\n    case \"unknown\":\n      return \"TSUnknownKeyword\";\n    default:\n      return undefined;\n  }\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    getScopeHandler(): Class<TypeScriptScopeHandler> {\n      return TypeScriptScopeHandler;\n    }\n\n    tsIsIdentifier(): boolean {\n      // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n      // See https://github.com/Microsoft/TypeScript/issues/15008\n      return this.match(tt.name);\n    }\n\n    tsNextTokenCanFollowModifier() {\n      // Note: TypeScript's implementation is much more complicated because\n      // more things are considered modifiers there.\n      // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n      // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n      this.next();\n      return (\n        !this.hasPrecedingLineBreak() &&\n        !this.match(tt.parenL) &&\n        !this.match(tt.parenR) &&\n        !this.match(tt.colon) &&\n        !this.match(tt.eq) &&\n        !this.match(tt.question) &&\n        !this.match(tt.bang)\n      );\n    }\n\n    /** Parses a modifier matching one the given modifier names. */\n    tsParseModifier<T: TsModifier>(allowedModifiers: T[]): ?T {\n      if (!this.match(tt.name)) {\n        return undefined;\n      }\n\n      const modifier = this.state.value;\n      if (\n        allowedModifiers.indexOf(modifier) !== -1 &&\n        this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))\n      ) {\n        return modifier;\n      }\n      return undefined;\n    }\n\n    /** Parses a list of modifiers, in any order.\n     *  If you need a specific order, you must call this function multiple times:\n     *    this.tsParseModifiers(node, [\"public\"]);\n     *    this.tsParseModifiers(node, [\"abstract\", \"readonly\"]);\n     */\n    tsParseModifiers<T: TsModifier>(\n      modified: { [key: TsModifier]: ?true },\n      allowedModifiers: T[],\n    ): void {\n      for (;;) {\n        const startPos = this.state.start;\n        const modifier: ?T = this.tsParseModifier(allowedModifiers);\n\n        if (!modifier) break;\n\n        if (Object.hasOwnProperty.call(modified, modifier)) {\n          this.raise(startPos, TSErrors.DuplicateModifier, modifier);\n        }\n        modified[modifier] = true;\n      }\n    }\n\n    tsIsListTerminator(kind: ParsingContext): boolean {\n      switch (kind) {\n        case \"EnumMembers\":\n        case \"TypeMembers\":\n          return this.match(tt.braceR);\n        case \"HeritageClauseElement\":\n          return this.match(tt.braceL);\n        case \"TupleElementTypes\":\n          return this.match(tt.bracketR);\n        case \"TypeParametersOrArguments\":\n          return this.isRelational(\">\");\n      }\n\n      throw new Error(\"Unreachable\");\n    }\n\n    tsParseList<T: N.Node>(kind: ParsingContext, parseElement: () => T): T[] {\n      const result: T[] = [];\n      while (!this.tsIsListTerminator(kind)) {\n        // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n        result.push(parseElement());\n      }\n      return result;\n    }\n\n    tsParseDelimitedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n    ): T[] {\n      return nonNull(\n        this.tsParseDelimitedListWorker(\n          kind,\n          parseElement,\n          /* expectSuccess */ true,\n        ),\n      );\n    }\n\n    /**\n     * If !expectSuccess, returns undefined instead of failing to parse.\n     * If expectSuccess, parseElement should always return a defined value.\n     */\n    tsParseDelimitedListWorker<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => ?T,\n      expectSuccess: boolean,\n    ): ?(T[]) {\n      const result = [];\n\n      for (;;) {\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        const element = parseElement();\n        if (element == null) {\n          return undefined;\n        }\n        result.push(element);\n\n        if (this.eat(tt.comma)) {\n          continue;\n        }\n\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        if (expectSuccess) {\n          // This will fail with an error about a missing comma\n          this.expect(tt.comma);\n        }\n        return undefined;\n      }\n\n      return result;\n    }\n\n    tsParseBracketedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n      bracket: boolean,\n      skipFirstToken: boolean,\n    ): T[] {\n      if (!skipFirstToken) {\n        if (bracket) {\n          this.expect(tt.bracketL);\n        } else {\n          this.expectRelational(\"<\");\n        }\n      }\n\n      const result = this.tsParseDelimitedList(kind, parseElement);\n\n      if (bracket) {\n        this.expect(tt.bracketR);\n      } else {\n        this.expectRelational(\">\");\n      }\n\n      return result;\n    }\n\n    tsParseImportType(): N.TsImportType {\n      const node: N.TsImportType = this.startNode();\n      this.expect(tt._import);\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument);\n      }\n\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.argument = this.parseExprAtom();\n      this.expect(tt.parenR);\n\n      if (this.eat(tt.dot)) {\n        node.qualifier = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSImportType\");\n    }\n\n    tsParseEntityName(allowReservedWords: boolean): N.TsEntityName {\n      let entity: N.TsEntityName = this.parseIdentifier();\n      while (this.eat(tt.dot)) {\n        const node: N.TsQualifiedName = this.startNodeAtNode(entity);\n        node.left = entity;\n        node.right = this.parseIdentifier(allowReservedWords);\n        entity = this.finishNode(node, \"TSQualifiedName\");\n      }\n      return entity;\n    }\n\n    tsParseTypeReference(): N.TsTypeReference {\n      const node: N.TsTypeReference = this.startNode();\n      node.typeName = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (!this.hasPrecedingLineBreak() && this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSTypeReference\");\n    }\n\n    tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n      this.next();\n      const node: N.TsTypePredicate = this.startNodeAtNode(lhs);\n      node.parameterName = lhs;\n      node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n      return this.finishNode(node, \"TSTypePredicate\");\n    }\n\n    tsParseThisTypeNode(): N.TsThisType {\n      const node: N.TsThisType = this.startNode();\n      this.next();\n      return this.finishNode(node, \"TSThisType\");\n    }\n\n    tsParseTypeQuery(): N.TsTypeQuery {\n      const node: N.TsTypeQuery = this.startNode();\n      this.expect(tt._typeof);\n      if (this.match(tt._import)) {\n        node.exprName = this.tsParseImportType();\n      } else {\n        node.exprName = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      return this.finishNode(node, \"TSTypeQuery\");\n    }\n\n    tsParseTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsEatThenParseType(tt._extends);\n      node.default = this.tsEatThenParseType(tt.eq);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {\n      if (this.isRelational(\"<\")) {\n        return this.tsParseTypeParameters();\n      }\n    }\n\n    tsParseTypeParameters() {\n      const node: N.TsTypeParameterDeclaration = this.startNode();\n\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      node.params = this.tsParseBracketedList(\n        \"TypeParametersOrArguments\",\n        this.tsParseTypeParameter.bind(this),\n        /* bracket */ false,\n        /* skipFirstToken */ true,\n      );\n      return this.finishNode(node, \"TSTypeParameterDeclaration\");\n    }\n\n    tsTryNextParseConstantContext(): ?N.TsTypeReference {\n      if (this.lookahead().type === tt._const) {\n        this.next();\n        return this.tsParseTypeReference();\n      }\n      return null;\n    }\n\n    // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n    // but here it's always false, because this is only used for types.\n    tsFillSignature(\n      returnToken: TokenType,\n      signature: N.TsSignatureDeclaration,\n    ): void {\n      // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n      const returnTokenRequired = returnToken === tt.arrow;\n      signature.typeParameters = this.tsTryParseTypeParameters();\n      this.expect(tt.parenL);\n      signature.parameters = this.tsParseBindingListForSignature();\n      if (returnTokenRequired) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      } else if (this.match(returnToken)) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      }\n    }\n\n    tsParseBindingListForSignature(): $ReadOnlyArray<\n      N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern,\n    > {\n      return this.parseBindingList(tt.parenR, charCodes.rightParenthesis).map(\n        pattern => {\n          if (\n            pattern.type !== \"Identifier\" &&\n            pattern.type !== \"RestElement\" &&\n            pattern.type !== \"ObjectPattern\" &&\n            pattern.type !== \"ArrayPattern\"\n          ) {\n            this.raise(\n              pattern.start,\n              TSErrors.UnsupportedSignatureParameterKind,\n              pattern.type,\n            );\n          }\n          return (pattern: any);\n        },\n      );\n    }\n\n    tsParseTypeMemberSemicolon(): void {\n      if (!this.eat(tt.comma)) {\n        this.semicolon();\n      }\n    }\n\n    tsParseSignatureMember(\n      kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n      node: N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration,\n    ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n      this.tsFillSignature(tt.colon, node);\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, kind);\n    }\n\n    tsIsUnambiguouslyIndexSignature() {\n      this.next(); // Skip '{'\n      return this.eat(tt.name) && this.match(tt.colon);\n    }\n\n    tsTryParseIndexSignature(node: N.Node): ?N.TsIndexSignature {\n      if (\n        !(\n          this.match(tt.bracketL) &&\n          this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n        )\n      ) {\n        return undefined;\n      }\n\n      this.expect(tt.bracketL);\n      const id = this.parseIdentifier();\n      id.typeAnnotation = this.tsParseTypeAnnotation();\n      this.resetEndLocation(id); // set end position to end of type\n\n      this.expect(tt.bracketR);\n      node.parameters = [id];\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, \"TSIndexSignature\");\n    }\n\n    tsParsePropertyOrMethodSignature(\n      node: N.TsPropertySignature | N.TsMethodSignature,\n      readonly: boolean,\n    ): N.TsPropertySignature | N.TsMethodSignature {\n      if (this.eat(tt.question)) node.optional = true;\n      const nodeAny: any = node;\n\n      if (!readonly && (this.match(tt.parenL) || this.isRelational(\"<\"))) {\n        const method: N.TsMethodSignature = nodeAny;\n        this.tsFillSignature(tt.colon, method);\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(method, \"TSMethodSignature\");\n      } else {\n        const property: N.TsPropertySignature = nodeAny;\n        if (readonly) property.readonly = true;\n        const type = this.tsTryParseTypeAnnotation();\n        if (type) property.typeAnnotation = type;\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(property, \"TSPropertySignature\");\n      }\n    }\n\n    tsParseTypeMember(): N.TsTypeElement {\n      const node: any = this.startNode();\n\n      if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n        return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n      }\n\n      if (this.match(tt._new)) {\n        const id: N.Identifier = this.startNode();\n        this.next();\n        if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          return this.tsParseSignatureMember(\n            \"TSConstructSignatureDeclaration\",\n            node,\n          );\n        } else {\n          node.key = this.createIdentifier(id, \"new\");\n          return this.tsParsePropertyOrMethodSignature(node, false);\n        }\n      }\n\n      const readonly = !!this.tsParseModifier([\"readonly\"]);\n\n      const idx = this.tsTryParseIndexSignature(node);\n      if (idx) {\n        if (readonly) node.readonly = true;\n        return idx;\n      }\n\n      this.parsePropertyName(node, /* isPrivateNameAllowed */ false);\n      return this.tsParsePropertyOrMethodSignature(node, readonly);\n    }\n\n    tsParseTypeLiteral(): N.TsTypeLiteral {\n      const node: N.TsTypeLiteral = this.startNode();\n      node.members = this.tsParseObjectTypeMembers();\n      return this.finishNode(node, \"TSTypeLiteral\");\n    }\n\n    tsParseObjectTypeMembers(): $ReadOnlyArray<N.TsTypeElement> {\n      this.expect(tt.braceL);\n      const members = this.tsParseList(\n        \"TypeMembers\",\n        this.tsParseTypeMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return members;\n    }\n\n    tsIsStartOfMappedType(): boolean {\n      this.next();\n      if (this.eat(tt.plusMin)) {\n        return this.isContextual(\"readonly\");\n      }\n      if (this.isContextual(\"readonly\")) {\n        this.next();\n      }\n      if (!this.match(tt.bracketL)) {\n        return false;\n      }\n      this.next();\n      if (!this.tsIsIdentifier()) {\n        return false;\n      }\n      this.next();\n      return this.match(tt._in);\n    }\n\n    tsParseMappedTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsExpectThenParseType(tt._in);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsParseMappedType(): N.TsMappedType {\n      const node: N.TsMappedType = this.startNode();\n\n      this.expect(tt.braceL);\n\n      if (this.match(tt.plusMin)) {\n        node.readonly = this.state.value;\n        this.next();\n        this.expectContextual(\"readonly\");\n      } else if (this.eatContextual(\"readonly\")) {\n        node.readonly = true;\n      }\n\n      this.expect(tt.bracketL);\n      node.typeParameter = this.tsParseMappedTypeParameter();\n      this.expect(tt.bracketR);\n\n      if (this.match(tt.plusMin)) {\n        node.optional = this.state.value;\n        this.next();\n        this.expect(tt.question);\n      } else if (this.eat(tt.question)) {\n        node.optional = true;\n      }\n\n      node.typeAnnotation = this.tsTryParseType();\n      this.semicolon();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"TSMappedType\");\n    }\n\n    tsParseTupleType(): N.TsTupleType {\n      const node: N.TsTupleType = this.startNode();\n      node.elementTypes = this.tsParseBracketedList(\n        \"TupleElementTypes\",\n        this.tsParseTupleElementType.bind(this),\n        /* bracket */ true,\n        /* skipFirstToken */ false,\n      );\n\n      // Validate the elementTypes to ensure:\n      //   No mandatory elements may follow optional elements\n      //   If there's a rest element, it must be at the end of the tuple\n      let seenOptionalElement = false;\n      node.elementTypes.forEach(elementNode => {\n        if (elementNode.type === \"TSOptionalType\") {\n          seenOptionalElement = true;\n        } else if (seenOptionalElement && elementNode.type !== \"TSRestType\") {\n          this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired);\n        }\n      });\n\n      return this.finishNode(node, \"TSTupleType\");\n    }\n\n    tsParseTupleElementType(): N.TsType {\n      // parses `...TsType[]`\n      if (this.match(tt.ellipsis)) {\n        const restNode: N.TsRestType = this.startNode();\n        this.next(); // skips ellipsis\n        restNode.typeAnnotation = this.tsParseType();\n        if (\n          this.match(tt.comma) &&\n          this.lookaheadCharCode() !== charCodes.rightSquareBracket\n        ) {\n          this.raiseRestNotLast(this.state.start);\n        }\n        return this.finishNode(restNode, \"TSRestType\");\n      }\n\n      const type = this.tsParseType();\n      // parses `TsType?`\n      if (this.eat(tt.question)) {\n        const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type);\n        optionalTypeNode.typeAnnotation = type;\n        return this.finishNode(optionalTypeNode, \"TSOptionalType\");\n      }\n      return type;\n    }\n\n    tsParseParenthesizedType(): N.TsParenthesizedType {\n      const node = this.startNode();\n      this.expect(tt.parenL);\n      node.typeAnnotation = this.tsParseType();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSParenthesizedType\");\n    }\n\n    tsParseFunctionOrConstructorType(\n      type: \"TSFunctionType\" | \"TSConstructorType\",\n    ): N.TsFunctionOrConstructorType {\n      const node: N.TsFunctionOrConstructorType = this.startNode();\n      if (type === \"TSConstructorType\") {\n        this.expect(tt._new);\n      }\n      this.tsFillSignature(tt.arrow, node);\n      return this.finishNode(node, type);\n    }\n\n    tsParseLiteralTypeNode(): N.TsLiteralType {\n      const node: N.TsLiteralType = this.startNode();\n      node.literal = (() => {\n        switch (this.state.type) {\n          case tt.num:\n          case tt.string:\n          case tt._true:\n          case tt._false:\n            // For compatibility to estree we cannot call parseLiteral directly here\n            return this.parseExprAtom();\n          default:\n            throw this.unexpected();\n        }\n      })();\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseTemplateLiteralType(): N.TsType {\n      const node: N.TsLiteralType = this.startNode();\n      const templateNode = this.parseTemplate(false);\n      if (templateNode.expressions.length > 0) {\n        this.raise(\n          templateNode.expressions[0].start,\n          TSErrors.TemplateTypeHasSubstitution,\n        );\n      }\n      node.literal = templateNode;\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n      const thisKeyword = this.tsParseThisTypeNode();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        return this.tsParseThisTypePredicate(thisKeyword);\n      } else {\n        return thisKeyword;\n      }\n    }\n\n    tsParseNonArrayType(): N.TsType {\n      switch (this.state.type) {\n        case tt.name:\n        case tt._void:\n        case tt._null: {\n          const type = this.match(tt._void)\n            ? \"TSVoidKeyword\"\n            : this.match(tt._null)\n            ? \"TSNullKeyword\"\n            : keywordTypeFromName(this.state.value);\n          if (\n            type !== undefined &&\n            this.lookaheadCharCode() !== charCodes.dot\n          ) {\n            const node: N.TsKeywordType = this.startNode();\n            this.next();\n            return this.finishNode(node, type);\n          }\n          return this.tsParseTypeReference();\n        }\n        case tt.string:\n        case tt.num:\n        case tt._true:\n        case tt._false:\n          return this.tsParseLiteralTypeNode();\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            const node: N.TsLiteralType = this.startNode();\n            if (this.lookahead().type !== tt.num) {\n              throw this.unexpected();\n            }\n            node.literal = this.parseMaybeUnary();\n            return this.finishNode(node, \"TSLiteralType\");\n          }\n          break;\n        case tt._this:\n          return this.tsParseThisTypeOrThisTypePredicate();\n        case tt._typeof:\n          return this.tsParseTypeQuery();\n        case tt._import:\n          return this.tsParseImportType();\n        case tt.braceL:\n          return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n            ? this.tsParseMappedType()\n            : this.tsParseTypeLiteral();\n        case tt.bracketL:\n          return this.tsParseTupleType();\n        case tt.parenL:\n          return this.tsParseParenthesizedType();\n        case tt.backQuote:\n          return this.tsParseTemplateLiteralType();\n      }\n\n      throw this.unexpected();\n    }\n\n    tsParseArrayTypeOrHigher(): N.TsType {\n      let type = this.tsParseNonArrayType();\n      while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n        if (this.match(tt.bracketR)) {\n          const node: N.TsArrayType = this.startNodeAtNode(type);\n          node.elementType = type;\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSArrayType\");\n        } else {\n          const node: N.TsIndexedAccessType = this.startNodeAtNode(type);\n          node.objectType = type;\n          node.indexType = this.tsParseType();\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSIndexedAccessType\");\n        }\n      }\n      return type;\n    }\n\n    tsParseTypeOperator(\n      operator: \"keyof\" | \"unique\" | \"readonly\",\n    ): N.TsTypeOperator {\n      const node: N.TsTypeOperator = this.startNode();\n      this.expectContextual(operator);\n      node.operator = operator;\n      node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n      if (operator === \"readonly\") {\n        this.tsCheckTypeAnnotationForReadOnly(node);\n      }\n\n      return this.finishNode(node, \"TSTypeOperator\");\n    }\n\n    tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n      switch (node.typeAnnotation.type) {\n        case \"TSTupleType\":\n        case \"TSArrayType\":\n          return;\n        default:\n          this.raise(node.start, TSErrors.UnexpectedReadonly);\n      }\n    }\n\n    tsParseInferType(): N.TsInferType {\n      const node = this.startNode();\n      this.expectContextual(\"infer\");\n      const typeParameter = this.startNode();\n      typeParameter.name = this.parseIdentifierName(typeParameter.start);\n      node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n      return this.finishNode(node, \"TSInferType\");\n    }\n\n    tsParseTypeOperatorOrHigher(): N.TsType {\n      const operator = [\"keyof\", \"unique\", \"readonly\"].find(kw =>\n        this.isContextual(kw),\n      );\n      return operator\n        ? this.tsParseTypeOperator(operator)\n        : this.isContextual(\"infer\")\n        ? this.tsParseInferType()\n        : this.tsParseArrayTypeOrHigher();\n    }\n\n    tsParseUnionOrIntersectionType(\n      kind: \"TSUnionType\" | \"TSIntersectionType\",\n      parseConstituentType: () => N.TsType,\n      operator: TokenType,\n    ): N.TsType {\n      this.eat(operator);\n      let type = parseConstituentType();\n      if (this.match(operator)) {\n        const types = [type];\n        while (this.eat(operator)) {\n          types.push(parseConstituentType());\n        }\n        const node: N.TsUnionType | N.TsIntersectionType = this.startNodeAtNode(\n          type,\n        );\n        node.types = types;\n        type = this.finishNode(node, kind);\n      }\n      return type;\n    }\n\n    tsParseIntersectionTypeOrHigher(): N.TsType {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSIntersectionType\",\n        this.tsParseTypeOperatorOrHigher.bind(this),\n        tt.bitwiseAND,\n      );\n    }\n\n    tsParseUnionTypeOrHigher() {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSUnionType\",\n        this.tsParseIntersectionTypeOrHigher.bind(this),\n        tt.bitwiseOR,\n      );\n    }\n\n    tsIsStartOfFunctionType() {\n      if (this.isRelational(\"<\")) {\n        return true;\n      }\n      return (\n        this.match(tt.parenL) &&\n        this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n      );\n    }\n\n    tsSkipParameterStart(): boolean {\n      if (this.match(tt.name) || this.match(tt._this)) {\n        this.next();\n        return true;\n      }\n\n      if (this.match(tt.braceL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.braceL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.braceR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      if (this.match(tt.bracketL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.bracketL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.bracketR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      return false;\n    }\n\n    tsIsUnambiguouslyStartOfFunctionType(): boolean {\n      this.next();\n      if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n        // ( )\n        // ( ...\n        return true;\n      }\n      if (this.tsSkipParameterStart()) {\n        if (\n          this.match(tt.colon) ||\n          this.match(tt.comma) ||\n          this.match(tt.question) ||\n          this.match(tt.eq)\n        ) {\n          // ( xxx :\n          // ( xxx ,\n          // ( xxx ?\n          // ( xxx =\n          return true;\n        }\n        if (this.match(tt.parenR)) {\n          this.next();\n          if (this.match(tt.arrow)) {\n            // ( xxx ) =>\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n\n    tsParseTypeOrTypePredicateAnnotation(\n      returnToken: TokenType,\n    ): N.TsTypeAnnotation {\n      return this.tsInType(() => {\n        const t: N.TsTypeAnnotation = this.startNode();\n        this.expect(returnToken);\n\n        const asserts = this.tsTryParse(\n          this.tsParseTypePredicateAsserts.bind(this),\n        );\n\n        if (asserts && this.match(tt._this)) {\n          // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n          // : asserts this is type\n          let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n          // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n          // : asserts this\n          if (thisTypePredicate.type === \"TSThisType\") {\n            const node: N.TsTypePredicate = this.startNodeAtNode(t);\n            node.parameterName = (thisTypePredicate: N.TsThisType);\n            node.asserts = true;\n            thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n          } else {\n            (thisTypePredicate: N.TsTypePredicate).asserts = true;\n          }\n          t.typeAnnotation = thisTypePredicate;\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        const typePredicateVariable =\n          this.tsIsIdentifier() &&\n          this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n        if (!typePredicateVariable) {\n          if (!asserts) {\n            // : type\n            return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n          }\n\n          const node: N.TsTypePredicate = this.startNodeAtNode(t);\n          // : asserts foo\n          node.parameterName = this.parseIdentifier();\n          node.asserts = asserts;\n          t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        // : asserts foo is type\n        const type = this.tsParseTypeAnnotation(/* eatColon */ false);\n        const node = this.startNodeAtNode(t);\n        node.parameterName = typePredicateVariable;\n        node.typeAnnotation = type;\n        node.asserts = asserts;\n        t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n        return this.finishNode(t, \"TSTypeAnnotation\");\n      });\n    }\n\n    tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon)\n        ? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)\n        : undefined;\n    }\n\n    tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;\n    }\n\n    tsTryParseType(): ?N.TsType {\n      return this.tsEatThenParseType(tt.colon);\n    }\n\n    tsParseTypePredicatePrefix(): ?N.Identifier {\n      const id = this.parseIdentifier();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        this.next();\n        return id;\n      }\n    }\n\n    tsParseTypePredicateAsserts(): boolean {\n      if (\n        !this.match(tt.name) ||\n        this.state.value !== \"asserts\" ||\n        this.hasPrecedingLineBreak()\n      ) {\n        return false;\n      }\n      const containsEsc = this.state.containsEsc;\n      this.next();\n      if (!this.match(tt.name) && !this.match(tt._this)) {\n        return false;\n      }\n\n      if (containsEsc) {\n        this.raise(\n          this.state.lastTokStart,\n          Errors.InvalidEscapedReservedWord,\n          \"asserts\",\n        );\n      }\n\n      return true;\n    }\n\n    tsParseTypeAnnotation(\n      eatColon = true,\n      t: N.TsTypeAnnotation = this.startNode(),\n    ): N.TsTypeAnnotation {\n      this.tsInType(() => {\n        if (eatColon) this.expect(tt.colon);\n        t.typeAnnotation = this.tsParseType();\n      });\n      return this.finishNode(t, \"TSTypeAnnotation\");\n    }\n\n    /** Be sure to be in a type context before calling this, using `tsInType`. */\n    tsParseType(): N.TsType {\n      // Need to set `state.inType` so that we don't parse JSX in a type context.\n      assert(this.state.inType);\n      const type = this.tsParseNonConditionalType();\n      if (this.hasPrecedingLineBreak() || !this.eat(tt._extends)) {\n        return type;\n      }\n      const node: N.TsConditionalType = this.startNodeAtNode(type);\n      node.checkType = type;\n      node.extendsType = this.tsParseNonConditionalType();\n      this.expect(tt.question);\n      node.trueType = this.tsParseType();\n      this.expect(tt.colon);\n      node.falseType = this.tsParseType();\n      return this.finishNode(node, \"TSConditionalType\");\n    }\n\n    tsParseNonConditionalType(): N.TsType {\n      if (this.tsIsStartOfFunctionType()) {\n        return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n      }\n      if (this.match(tt._new)) {\n        // As in `new () => Date`\n        return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n      }\n      return this.tsParseUnionTypeOrHigher();\n    }\n\n    tsParseTypeAssertion(): N.TsTypeAssertion {\n      const node: N.TsTypeAssertion = this.startNode();\n      const _const = this.tsTryNextParseConstantContext();\n      node.typeAnnotation = _const || this.tsNextThenParseType();\n      this.expectRelational(\">\");\n      node.expression = this.parseMaybeUnary();\n      return this.finishNode(node, \"TSTypeAssertion\");\n    }\n\n    tsParseHeritageClause(\n      descriptor: string,\n    ): $ReadOnlyArray<N.TsExpressionWithTypeArguments> {\n      const originalStart = this.state.start;\n\n      const delimitedList = this.tsParseDelimitedList(\n        \"HeritageClauseElement\",\n        this.tsParseExpressionWithTypeArguments.bind(this),\n      );\n\n      if (!delimitedList.length) {\n        this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor);\n      }\n\n      return delimitedList;\n    }\n\n    tsParseExpressionWithTypeArguments(): N.TsExpressionWithTypeArguments {\n      const node: N.TsExpressionWithTypeArguments = this.startNode();\n      // Note: TS uses parseLeftHandSideExpressionOrHigher,\n      // then has grammar errors later if it's not an EntityName.\n      node.expression = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n\n      return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n    }\n\n    tsParseInterfaceDeclaration(\n      node: N.TsInterfaceDeclaration,\n    ): N.TsInterfaceDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_TS_INTERFACE,\n        undefined,\n        \"typescript interface declaration\",\n      );\n      node.typeParameters = this.tsTryParseTypeParameters();\n      if (this.eat(tt._extends)) {\n        node.extends = this.tsParseHeritageClause(\"extends\");\n      }\n      const body: N.TSInterfaceBody = this.startNode();\n      body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n      node.body = this.finishNode(body, \"TSInterfaceBody\");\n      return this.finishNode(node, \"TSInterfaceDeclaration\");\n    }\n\n    tsParseTypeAliasDeclaration(\n      node: N.TsTypeAliasDeclaration,\n    ): N.TsTypeAliasDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(node.id, BIND_TS_TYPE, undefined, \"typescript type alias\");\n\n      node.typeParameters = this.tsTryParseTypeParameters();\n      node.typeAnnotation = this.tsExpectThenParseType(tt.eq);\n      this.semicolon();\n      return this.finishNode(node, \"TSTypeAliasDeclaration\");\n    }\n\n    tsInNoContext<T>(cb: () => T): T {\n      const oldContext = this.state.context;\n      this.state.context = [oldContext[0]];\n      try {\n        return cb();\n      } finally {\n        this.state.context = oldContext;\n      }\n    }\n\n    /**\n     * Runs `cb` in a type context.\n     * This should be called one token *before* the first type token,\n     * so that the call to `next()` is run in type context.\n     */\n    tsInType<T>(cb: () => T): T {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      try {\n        return cb();\n      } finally {\n        this.state.inType = oldInType;\n      }\n    }\n\n    tsEatThenParseType(token: TokenType): N.TsType | typeof undefined {\n      return !this.match(token) ? undefined : this.tsNextThenParseType();\n    }\n\n    tsExpectThenParseType(token: TokenType): N.TsType {\n      return this.tsDoThenParseType(() => this.expect(token));\n    }\n\n    tsNextThenParseType(): N.TsType {\n      return this.tsDoThenParseType(() => this.next());\n    }\n\n    tsDoThenParseType(cb: () => void): N.TsType {\n      return this.tsInType(() => {\n        cb();\n        return this.tsParseType();\n      });\n    }\n\n    tsParseEnumMember(): N.TsEnumMember {\n      const node: N.TsEnumMember = this.startNode();\n      // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n      node.id = this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(/* liberal */ true);\n      if (this.eat(tt.eq)) {\n        node.initializer = this.parseMaybeAssign();\n      }\n      return this.finishNode(node, \"TSEnumMember\");\n    }\n\n    tsParseEnumDeclaration(\n      node: N.TsEnumDeclaration,\n      isConst: boolean,\n    ): N.TsEnumDeclaration {\n      if (isConst) node.const = true;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM,\n        undefined,\n        \"typescript enum declaration\",\n      );\n\n      this.expect(tt.braceL);\n      node.members = this.tsParseDelimitedList(\n        \"EnumMembers\",\n        this.tsParseEnumMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"TSEnumDeclaration\");\n    }\n\n    tsParseModuleBlock(): N.TsModuleBlock {\n      const node: N.TsModuleBlock = this.startNode();\n      this.scope.enter(SCOPE_OTHER);\n\n      this.expect(tt.braceL);\n      // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n      this.parseBlockOrModuleBlockBody(\n        (node.body = []),\n        /* directives */ undefined,\n        /* topLevel */ true,\n        /* end */ tt.braceR,\n      );\n      this.scope.exit();\n      return this.finishNode(node, \"TSModuleBlock\");\n    }\n\n    tsParseModuleOrNamespaceDeclaration(\n      node: N.TsModuleDeclaration,\n      nested?: boolean = false,\n    ): N.TsModuleDeclaration {\n      node.id = this.parseIdentifier();\n\n      if (!nested) {\n        this.checkLVal(\n          node.id,\n          BIND_TS_NAMESPACE,\n          null,\n          \"module or namespace declaration\",\n        );\n      }\n\n      if (this.eat(tt.dot)) {\n        const inner = this.startNode();\n        this.tsParseModuleOrNamespaceDeclaration(inner, true);\n        node.body = inner;\n      } else {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      }\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseAmbientExternalModuleDeclaration(\n      node: N.TsModuleDeclaration,\n    ): N.TsModuleDeclaration {\n      if (this.isContextual(\"global\")) {\n        node.global = true;\n        node.id = this.parseIdentifier();\n      } else if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        this.unexpected();\n      }\n      if (this.match(tt.braceL)) {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      } else {\n        this.semicolon();\n      }\n\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseImportEqualsDeclaration(\n      node: N.TsImportEqualsDeclaration,\n      isExport?: boolean,\n    ): N.TsImportEqualsDeclaration {\n      node.isExport = isExport || false;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_LEXICAL,\n        undefined,\n        \"import equals declaration\",\n      );\n      this.expect(tt.eq);\n      node.moduleReference = this.tsParseModuleReference();\n      this.semicolon();\n      return this.finishNode(node, \"TSImportEqualsDeclaration\");\n    }\n\n    tsIsExternalModuleReference(): boolean {\n      return (\n        this.isContextual(\"require\") &&\n        this.lookaheadCharCode() === charCodes.leftParenthesis\n      );\n    }\n\n    tsParseModuleReference(): N.TsModuleReference {\n      return this.tsIsExternalModuleReference()\n        ? this.tsParseExternalModuleReference()\n        : this.tsParseEntityName(/* allowReservedWords */ false);\n    }\n\n    tsParseExternalModuleReference(): N.TsExternalModuleReference {\n      const node: N.TsExternalModuleReference = this.startNode();\n      this.expectContextual(\"require\");\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        throw this.unexpected();\n      }\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.expression = this.parseExprAtom();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSExternalModuleReference\");\n    }\n\n    // Utilities\n\n    tsLookAhead<T>(f: () => T): T {\n      const state = this.state.clone();\n      const res = f();\n      this.state = state;\n      return res;\n    }\n\n    tsTryParseAndCatch<T: ?N.NodeBase>(f: () => T): ?T {\n      const result = this.tryParse(abort => f() || abort());\n\n      if (result.aborted || !result.node) return undefined;\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    tsTryParse<T>(f: () => ?T): ?T {\n      const state = this.state.clone();\n      const result = f();\n      if (result !== undefined && result !== false) {\n        return result;\n      } else {\n        this.state = state;\n        return undefined;\n      }\n    }\n\n    tsTryParseDeclare(nany: any): ?N.Declaration {\n      if (this.isLineTerminator()) {\n        return;\n      }\n      let starttype = this.state.type;\n      let kind;\n\n      if (this.isContextual(\"let\")) {\n        starttype = tt._var;\n        kind = \"let\";\n      }\n\n      switch (starttype) {\n        case tt._function:\n          return this.parseFunctionStatement(\n            nany,\n            /* async */ false,\n            /* declarationPosition */ true,\n          );\n        case tt._class:\n          // While this is also set by tsParseExpressionStatement, we need to set it\n          // before parsing the class declaration to now how to register it in the scope.\n          nany.declare = true;\n          return this.parseClass(\n            nany,\n            /* isStatement */ true,\n            /* optionalId */ false,\n          );\n        case tt._const:\n          if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n            // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n            this.expect(tt._const);\n            this.expectContextual(\"enum\");\n            return this.tsParseEnumDeclaration(nany, /* isConst */ true);\n          }\n        // falls through\n        case tt._var:\n          kind = kind || this.state.value;\n          return this.parseVarStatement(nany, kind);\n        case tt.name: {\n          const value = this.state.value;\n          if (value === \"global\") {\n            return this.tsParseAmbientExternalModuleDeclaration(nany);\n          } else {\n            return this.tsParseDeclaration(nany, value, /* next */ true);\n          }\n        }\n      }\n    }\n\n    // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n    tsTryParseExportDeclaration(): ?N.Declaration {\n      return this.tsParseDeclaration(\n        this.startNode(),\n        this.state.value,\n        /* next */ true,\n      );\n    }\n\n    tsParseExpressionStatement(node: any, expr: N.Identifier): ?N.Declaration {\n      switch (expr.name) {\n        case \"declare\": {\n          const declaration = this.tsTryParseDeclare(node);\n          if (declaration) {\n            declaration.declare = true;\n            return declaration;\n          }\n          break;\n        }\n        case \"global\":\n          // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n          // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n          if (this.match(tt.braceL)) {\n            this.scope.enter(SCOPE_TS_MODULE);\n            this.prodParam.enter(PARAM);\n            const mod: N.TsModuleDeclaration = node;\n            mod.global = true;\n            mod.id = expr;\n            mod.body = this.tsParseModuleBlock();\n            this.scope.exit();\n            this.prodParam.exit();\n            return this.finishNode(mod, \"TSModuleDeclaration\");\n          }\n          break;\n\n        default:\n          return this.tsParseDeclaration(node, expr.name, /* next */ false);\n      }\n    }\n\n    // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n    tsParseDeclaration(\n      node: any,\n      value: string,\n      next: boolean,\n    ): ?N.Declaration {\n      switch (value) {\n        case \"abstract\":\n          if (this.tsCheckLineTerminatorAndMatch(tt._class, next)) {\n            const cls: N.ClassDeclaration = node;\n            cls.abstract = true;\n            if (next) {\n              this.next();\n              if (!this.match(tt._class)) {\n                this.unexpected(null, tt._class);\n              }\n            }\n            return this.parseClass(\n              cls,\n              /* isStatement */ true,\n              /* optionalId */ false,\n            );\n          }\n          break;\n\n        case \"enum\":\n          if (next || this.match(tt.name)) {\n            if (next) this.next();\n            return this.tsParseEnumDeclaration(node, /* isConst */ false);\n          }\n          break;\n\n        case \"interface\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseInterfaceDeclaration(node);\n          }\n          break;\n\n        case \"module\":\n          if (next) this.next();\n          if (this.match(tt.string)) {\n            return this.tsParseAmbientExternalModuleDeclaration(node);\n          } else if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"namespace\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"type\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseTypeAliasDeclaration(node);\n          }\n          break;\n      }\n    }\n\n    tsCheckLineTerminatorAndMatch(tokenType: TokenType, next: boolean) {\n      return (next || this.match(tokenType)) && !this.isLineTerminator();\n    }\n\n    tsTryParseGenericAsyncArrowFunction(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      if (!this.isRelational(\"<\")) {\n        return undefined;\n      }\n\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      const res: ?N.ArrowFunctionExpression = this.tsTryParseAndCatch(() => {\n        const node: N.ArrowFunctionExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.typeParameters = this.tsParseTypeParameters();\n        // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n        super.parseFunctionParams(node);\n        node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n        this.expect(tt.arrow);\n        return node;\n      });\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n\n      if (!res) {\n        return undefined;\n      }\n\n      return this.parseArrowExpression(\n        res,\n        /* params are already set */ null,\n        /* async */ true,\n      );\n    }\n\n    tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n      const node = this.startNode();\n      node.params = this.tsInType(() =>\n        // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n        this.tsInNoContext(() => {\n          this.expectRelational(\"<\");\n          return this.tsParseDelimitedList(\n            \"TypeParametersOrArguments\",\n            this.tsParseType.bind(this),\n          );\n        }),\n      );\n      // This reads the next token after the `>` too, so do this in the enclosing context.\n      // But be sure not to parse a regex in the jsx expression `<C<number> />`, so set exprAllowed = false\n      this.state.exprAllowed = false;\n      this.expectRelational(\">\");\n      return this.finishNode(node, \"TSTypeParameterInstantiation\");\n    }\n\n    tsIsDeclarationStart(): boolean {\n      if (this.match(tt.name)) {\n        switch (this.state.value) {\n          case \"abstract\":\n          case \"declare\":\n          case \"enum\":\n          case \"interface\":\n          case \"module\":\n          case \"namespace\":\n          case \"type\":\n            return true;\n        }\n      }\n\n      return false;\n    }\n\n    // ======================================================\n    // OVERRIDES\n    // ======================================================\n\n    isExportDefaultSpecifier(): boolean {\n      if (this.tsIsDeclarationStart()) return false;\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseAssignableListItem(\n      allowModifiers: ?boolean,\n      decorators: N.Decorator[],\n    ): N.Pattern | N.TSParameterProperty {\n      // Store original location/position to include modifiers in range\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      let accessibility: ?N.Accessibility;\n      let readonly = false;\n      if (allowModifiers) {\n        accessibility = this.parseAccessModifier();\n        readonly = !!this.tsParseModifier([\"readonly\"]);\n      }\n\n      const left = this.parseMaybeDefault();\n      this.parseAssignableListItemTypes(left);\n      const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n      if (accessibility || readonly) {\n        const pp: N.TSParameterProperty = this.startNodeAt(startPos, startLoc);\n        if (decorators.length) {\n          pp.decorators = decorators;\n        }\n        if (accessibility) pp.accessibility = accessibility;\n        if (readonly) pp.readonly = readonly;\n        if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n          this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind);\n        }\n        pp.parameter = ((elt: any): N.Identifier | N.AssignmentPattern);\n        return this.finishNode(pp, \"TSParameterProperty\");\n      }\n\n      if (decorators.length) {\n        left.decorators = decorators;\n      }\n\n      return elt;\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n      }\n\n      const bodilessType =\n        type === \"FunctionDeclaration\"\n          ? \"TSDeclareFunction\"\n          : type === \"ClassMethod\"\n          ? \"TSDeclareMethod\"\n          : undefined;\n      if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n        this.finishNode(node, bodilessType);\n        return;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    registerFunctionStatementId(node: N.Function): void {\n      if (!node.body && node.id) {\n        // Function ids are validated after parsing their body.\n        // For bodyless function, we need to do it here.\n        this.checkLVal(node.id, BIND_TS_AMBIENT, null, \"function name\");\n      } else {\n        super.registerFunctionStatementId(...arguments);\n      }\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      state: N.ParseSubscriptState,\n    ): N.Expression {\n      if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n        this.state.exprAllowed = false;\n        this.next();\n\n        const nonNullExpression: N.TsNonNullExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        nonNullExpression.expression = base;\n        return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n      }\n\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // There are number of things we are going to \"maybe\" parse, like type arguments on\n        // tagged template expressions. If any of them fail, walk it back and continue.\n        const result = this.tsTryParseAndCatch(() => {\n          if (!noCalls && this.atPossibleAsyncArrow(base)) {\n            // Almost certainly this is a generic async function `async <T>() => ...\n            // But it might be a call with a type argument `async<T>();`\n            const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(\n              startPos,\n              startLoc,\n            );\n            if (asyncArrowFn) {\n              return asyncArrowFn;\n            }\n          }\n\n          const node: N.CallExpression = this.startNodeAt(startPos, startLoc);\n          node.callee = base;\n\n          const typeArguments = this.tsParseTypeArguments();\n\n          if (typeArguments) {\n            if (!noCalls && this.eat(tt.parenL)) {\n              // possibleAsync always false here, because we would have handled it above.\n              // $FlowIgnore (won't be any undefined arguments)\n              node.arguments = this.parseCallExpressionArguments(\n                tt.parenR,\n                /* possibleAsync */ false,\n              );\n              node.typeParameters = typeArguments;\n              return this.finishCallExpression(node, state.optionalChainMember);\n            } else if (this.match(tt.backQuote)) {\n              return this.parseTaggedTemplateExpression(\n                startPos,\n                startLoc,\n                base,\n                state,\n                typeArguments,\n              );\n            }\n          }\n\n          this.unexpected();\n        });\n\n        if (result) return result;\n      }\n\n      return super.parseSubscript(base, startPos, startLoc, noCalls, state);\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // 99% certain this is `new C<T>();`. But may be `new C < T;`, which is also legal.\n        const typeParameters = this.tsTryParseAndCatch(() => {\n          const args = this.tsParseTypeArguments();\n          if (!this.match(tt.parenL)) this.unexpected();\n          return args;\n        });\n        if (typeParameters) {\n          node.typeParameters = typeParameters;\n        }\n      }\n\n      super.parseNewArguments(node);\n    }\n\n    parseExprOp(\n      left: N.Expression,\n      leftStartPos: number,\n      leftStartLoc: Position,\n      minPrec: number,\n      noIn: ?boolean,\n    ) {\n      if (\n        nonNull(tt._in.binop) > minPrec &&\n        !this.hasPrecedingLineBreak() &&\n        this.isContextual(\"as\")\n      ) {\n        const node: N.TsAsExpression = this.startNodeAt(\n          leftStartPos,\n          leftStartLoc,\n        );\n        node.expression = left;\n        const _const = this.tsTryNextParseConstantContext();\n        if (_const) {\n          node.typeAnnotation = _const;\n        } else {\n          node.typeAnnotation = this.tsNextThenParseType();\n        }\n        this.finishNode(node, \"TSAsExpression\");\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n\n      return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn);\n    }\n\n    checkReservedWord(\n      word: string, // eslint-disable-line no-unused-vars\n      startLoc: number, // eslint-disable-line no-unused-vars\n      checkKeywords: boolean, // eslint-disable-line no-unused-vars\n      // eslint-disable-next-line no-unused-vars\n      isBinding: boolean,\n    ): void {\n      // Don't bother checking for TypeScript code.\n      // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n      // And we have a type checker anyway, so don't bother having the parser do it.\n    }\n\n    /*\n    Don't bother doing this check in TypeScript code because:\n    1. We may have a nested export statement with the same name:\n      export const x = 0;\n      export namespace N {\n        export const x = 1;\n      }\n    2. We have a type checker to warn us about this sort of thing.\n    */\n    checkDuplicateExports() {}\n\n    parseImport(node: N.Node): N.AnyImport {\n      if (this.match(tt.name) || this.match(tt.star) || this.match(tt.braceL)) {\n        const ahead = this.lookahead();\n\n        if (this.match(tt.name) && ahead.type === tt.eq) {\n          return this.tsParseImportEqualsDeclaration(node);\n        }\n\n        if (\n          this.isContextual(\"type\") &&\n          // import type, { a } from \"b\";\n          ahead.type !== tt.comma &&\n          // import type from \"a\";\n          !(ahead.type === tt.name && ahead.value === \"from\")\n        ) {\n          node.importKind = \"type\";\n          this.next();\n        } else {\n          node.importKind = \"value\";\n        }\n      }\n\n      const importNode = super.parseImport(node);\n      /*:: invariant(importNode.type !== \"TSImportEqualsDeclaration\") */\n\n      // `import type` can only be used on imports with named imports or with a\n      // default import - but not both\n      if (\n        importNode.importKind === \"type\" &&\n        importNode.specifiers.length > 1 &&\n        importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n      ) {\n        this.raise(\n          importNode.start,\n          \"A type-only import can specify a default import or named bindings, but not both.\",\n        );\n      }\n\n      return importNode;\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      if (this.match(tt._import)) {\n        // `export import A = B;`\n        this.expect(tt._import);\n        return this.tsParseImportEqualsDeclaration(node, /* isExport */ true);\n      } else if (this.eat(tt.eq)) {\n        // `export = x;`\n        const assign: N.TsExportAssignment = node;\n        assign.expression = this.parseExpression();\n        this.semicolon();\n        return this.finishNode(assign, \"TSExportAssignment\");\n      } else if (this.eatContextual(\"as\")) {\n        // `export as namespace A;`\n        const decl: N.TsNamespaceExportDeclaration = node;\n        // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n        this.expectContextual(\"namespace\");\n        decl.id = this.parseIdentifier();\n        this.semicolon();\n        return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n      } else {\n        if (this.isContextual(\"type\") && this.lookahead().type === tt.braceL) {\n          this.next();\n          node.exportKind = \"type\";\n        } else {\n          node.exportKind = \"value\";\n        }\n\n        return super.parseExport(node);\n      }\n    }\n\n    isAbstractClass(): boolean {\n      return (\n        this.isContextual(\"abstract\") && this.lookahead().type === tt._class\n      );\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.isAbstractClass()) {\n        const cls = this.startNode();\n        this.next(); // Skip \"abstract\"\n        this.parseClass(cls, true, true);\n        cls.abstract = true;\n        return cls;\n      }\n\n      // export default interface allowed in:\n      // https://github.com/Microsoft/TypeScript/pull/16040\n      if (this.state.value === \"interface\") {\n        const result = this.tsParseDeclaration(\n          this.startNode(),\n          this.state.value,\n          true,\n        );\n\n        if (result) return result;\n      }\n\n      return super.parseExportDefaultExpression();\n    }\n\n    parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n      if (this.state.type === tt._const) {\n        const ahead = this.lookahead();\n        if (ahead.type === tt.name && ahead.value === \"enum\") {\n          const node: N.TsEnumDeclaration = this.startNode();\n          this.expect(tt._const);\n          this.expectContextual(\"enum\");\n          return this.tsParseEnumDeclaration(node, /* isConst */ true);\n        }\n      }\n      return super.parseStatementContent(context, topLevel);\n    }\n\n    parseAccessModifier(): ?N.Accessibility {\n      return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"declare\"]);\n      const accessibility = this.parseAccessModifier();\n      if (accessibility) member.accessibility = accessibility;\n      this.tsParseModifiers(member, [\"declare\"]);\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n    }\n\n    parseClassMemberWithIsStatic(\n      classBody: N.ClassBody,\n      member: N.ClassMember | N.TsIndexSignature,\n      state: { hadConstructor: boolean },\n      isStatic: boolean,\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"abstract\", \"readonly\", \"declare\"]);\n\n      const idx = this.tsTryParseIndexSignature(member);\n      if (idx) {\n        classBody.body.push(idx);\n\n        if ((member: any).abstract) {\n          this.raise(member.start, TSErrors.IndexSignatureHasAbstract);\n        }\n        if (isStatic) {\n          this.raise(member.start, TSErrors.IndexSignatureHasStatic);\n        }\n        if ((member: any).accessibility) {\n          this.raise(\n            member.start,\n            TSErrors.IndexSignatureHasAccessibility,\n            (member: any).accessibility,\n          );\n        }\n\n        return;\n      }\n\n      /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n      super.parseClassMemberWithIsStatic(\n        classBody,\n        member,\n        state,\n        isStatic,\n        constructorAllowsSuper,\n      );\n    }\n\n    parsePostMemberNameModifiers(\n      methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      const optional = this.eat(tt.question);\n      if (optional) methodOrProp.optional = true;\n\n      if ((methodOrProp: any).readonly && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly);\n      }\n\n      if ((methodOrProp: any).declare && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare);\n      }\n    }\n\n    // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n    // is that e.g. `type()` is valid JS, so we must try parsing that first.\n    // If it's really a type, we will parse `type` as the statement, and can correct it here\n    // by parsing the rest.\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.Statement {\n      const decl =\n        expr.type === \"Identifier\"\n          ? this.tsParseExpressionStatement(node, expr)\n          : undefined;\n      return decl || super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n    shouldParseExportDeclaration(): boolean {\n      if (this.tsIsDeclarationStart()) return true;\n      return super.shouldParseExportDeclaration();\n    }\n\n    // An apparent conditional expression could actually be an optional parameter in an arrow function.\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      // only do the expensive clone if there is a question mark\n      // and if we come from inside parens\n      if (!refNeedsArrowPos || !this.match(tt.question)) {\n        return super.parseConditional(\n          expr,\n          noIn,\n          startPos,\n          startLoc,\n          refNeedsArrowPos,\n        );\n      }\n\n      const result = this.tryParse(() =>\n        super.parseConditional(expr, noIn, startPos, startLoc),\n      );\n\n      if (!result.node) {\n        // $FlowIgnore\n        refNeedsArrowPos.start = result.error.pos || this.state.start;\n        return expr;\n      }\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    // Note: These \"type casts\" are *not* valid TS expressions.\n    // But we parse them here and change them when completing the arrow function.\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      // Store original location/position\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      // \"export declare\" is equivalent to just \"export\".\n      const isDeclare = this.eatContextual(\"declare\");\n\n      let declaration: ?N.Declaration;\n\n      if (this.match(tt.name)) {\n        declaration = this.tsTryParseExportDeclaration();\n      }\n      if (!declaration) {\n        declaration = super.parseExportDeclaration(node);\n      }\n      if (\n        declaration &&\n        (declaration.type === \"TSInterfaceDeclaration\" ||\n          declaration.type === \"TSTypeAliasDeclaration\" ||\n          isDeclare)\n      ) {\n        node.exportKind = \"type\";\n      }\n\n      if (declaration && isDeclare) {\n        // Reset location to include `declare` in range\n        this.resetStartLocation(declaration, startPos, startLoc);\n\n        declaration.declare = true;\n      }\n\n      return declaration;\n    }\n\n    parseClassId(\n      node: N.Class,\n      isStatement: boolean,\n      optionalId: ?boolean,\n    ): void {\n      if ((!isStatement || optionalId) && this.isContextual(\"implements\")) {\n        return;\n      }\n\n      super.parseClassId(\n        node,\n        isStatement,\n        optionalId,\n        (node: any).declare ? BIND_TS_AMBIENT : BIND_CLASS,\n      );\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n    }\n\n    parseClassPropertyAnnotation(\n      node: N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      if (!node.optional && this.eat(tt.bang)) {\n        node.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n    }\n\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      this.parseClassPropertyAnnotation(node);\n\n      if (node.declare && this.match(tt.equal)) {\n        this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer);\n      }\n\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      // $FlowIgnore\n      if (node.abstract) {\n        this.raise(node.start, TSErrors.PrivateElementHasAbstract);\n      }\n\n      // $FlowIgnore\n      if (node.accessibility) {\n        this.raise(\n          node.start,\n          TSErrors.PrivateElementHasAccessibility,\n          node.accessibility,\n        );\n      }\n\n      this.parseClassPropertyAnnotation(node);\n      return super.parseClassPrivateProperty(node);\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.tsParseTypeArguments();\n      }\n      if (this.eatContextual(\"implements\")) {\n        node.implements = this.tsParseHeritageClause(\"implements\");\n      }\n    }\n\n    parseObjPropValue(prop: N.ObjectMember, ...args): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) prop.typeParameters = typeParameters;\n\n      super.parseObjPropValue(prop, ...args);\n    }\n\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // `let x: number;`\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (decl.id.type === \"Identifier\" && this.eat(tt.bang)) {\n        decl.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) {\n        decl.id.typeAnnotation = type;\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeAnnotation();\n      }\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    parseMaybeAssign(...args): N.Expression {\n      // Note: When the JSX plugin is on, type assertions (`<T> x`) aren't valid syntax.\n\n      let state: ?State;\n      let jsx;\n      let typeCast;\n\n      if (this.match(tt.jsxTagStart)) {\n        // Prefer to parse JSX if possible. But may be an arrow fn.\n        state = this.state.clone();\n\n        jsx = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === ct.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === ct.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if (!(jsx && jsx.error) && !this.isRelational(\"<\")) {\n        return super.parseMaybeAssign(...args);\n      }\n\n      // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n      let typeParameters: N.TsTypeParameterDeclaration;\n      state = state || this.state.clone();\n\n      const arrow = this.tryParse(abort => {\n        // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n        typeParameters = this.tsParseTypeParameters();\n        const expr = super.parseMaybeAssign(...args);\n\n        if (\n          expr.type !== \"ArrowFunctionExpression\" ||\n          (expr.extra && expr.extra.parenthesized)\n        ) {\n          abort();\n        }\n\n        // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n        if (typeParameters && typeParameters.params.length !== 0) {\n          this.resetStartLocationFromNode(expr, typeParameters);\n        }\n        expr.typeParameters = typeParameters;\n        return expr;\n      }, state);\n\n      if (!arrow.error && !arrow.aborted) return arrow.node;\n\n      if (!jsx) {\n        // Try parsing a type cast instead of an arrow function.\n        // This will never happen outside of JSX.\n        // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n        assert(!this.hasPlugin(\"jsx\"));\n\n        // This will start with a type assertion (via parseMaybeUnary).\n        // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n        typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!typeCast.aborted) */\n        if (!typeCast.error) return typeCast.node;\n      }\n\n      if (jsx && jsx.node) {\n        /*:: invariant(jsx.failState) */\n        this.state = jsx.failState;\n        return jsx.node;\n      }\n\n      if (arrow.node) {\n        /*:: invariant(arrow.failState) */\n        this.state = arrow.failState;\n        return arrow.node;\n      }\n\n      if (typeCast && typeCast.node) {\n        /*:: invariant(typeCast.failState) */\n        this.state = typeCast.failState;\n        return typeCast.node;\n      }\n\n      if (jsx && jsx.thrown) throw jsx.error;\n      if (arrow.thrown) throw arrow.error;\n      if (typeCast && typeCast.thrown) throw typeCast.error;\n\n      throw (jsx && jsx.error) || arrow.error || (typeCast && typeCast.error);\n    }\n\n    // Handle type assertions\n    parseMaybeUnary(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      if (!this.hasPlugin(\"jsx\") && this.isRelational(\"<\")) {\n        return this.tsParseTypeAssertion();\n      } else {\n        return super.parseMaybeUnary(refExpressionErrors);\n      }\n    }\n\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        // This is different from how the TS parser does it.\n        // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n        const result = this.tryParse(abort => {\n          const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n            tt.colon,\n          );\n          if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n          return returnType;\n        });\n\n        if (result.aborted) return;\n\n        if (!result.thrown) {\n          if (result.error) this.state = result.failState;\n          node.returnType = result.node;\n        }\n      }\n\n      return super.parseArrow(node);\n    }\n\n    // Allow type annotations inside of a parameter list.\n    parseAssignableListItemTypes(param: N.Pattern) {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, TSErrors.PatternIsOptional);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) param.typeAnnotation = type;\n      this.resetEndLocation(param);\n\n      return param;\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      switch (node.type) {\n        case \"TSTypeCastExpression\":\n          return super.toAssignable(this.typeCastToParameter(node));\n        case \"TSParameterProperty\":\n          return super.toAssignable(node);\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          node.expression = this.toAssignable(node.expression);\n          return node;\n        default:\n          return super.toAssignable(node);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      switch (expr.type) {\n        case \"TSTypeCastExpression\":\n          // Allow \"typecasts\" to appear on the left of assignment expressions,\n          // because it may be in an arrow function.\n          // e.g. `const f = (foo: number = 0) => foo;`\n          return;\n        case \"TSParameterProperty\":\n          this.checkLVal(\n            expr.parameter,\n            bindingType,\n            checkClashes,\n            \"parameter property\",\n          );\n          return;\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          this.checkLVal(\n            expr.expression,\n            bindingType,\n            checkClashes,\n            contextDescription,\n          );\n          return;\n        default:\n          super.checkLVal(expr, bindingType, checkClashes, contextDescription);\n          return;\n      }\n    }\n\n    parseBindingAtom(): N.Pattern {\n      switch (this.state.type) {\n        case tt._this:\n          // \"this\" may be the name of a parameter, so allow it.\n          return this.parseIdentifier(/* liberal */ true);\n        default:\n          return super.parseBindingAtom();\n      }\n    }\n\n    parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsParseTypeArguments();\n\n        if (this.match(tt.parenL)) {\n          const call = super.parseMaybeDecoratorArguments(expr);\n          call.typeParameters = typeArguments;\n          return call;\n        }\n\n        this.unexpected(this.state.start, tt.parenL);\n      }\n\n      return super.parseMaybeDecoratorArguments(expr);\n    }\n\n    // === === === === === === === === === === === === === === === ===\n    // Note: All below methods are duplicates of something in flow.js.\n    // Not sure what the best way to combine these is.\n    // === === === === === === === === === === === === === === === ===\n\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    isClassProperty(): boolean {\n      return (\n        this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n      );\n    }\n\n    parseMaybeDefault(...args): N.Pattern {\n      const node = super.parseMaybeDefault(...args);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(\n          node.typeAnnotation.start,\n          TSErrors.TypeAnnotationAfterAssign,\n        );\n      }\n\n      return node;\n    }\n\n    // ensure that inside types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      if (this.state.inType && (code === 62 || code === 60)) {\n        return this.finishOp(tt.relational, 1);\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    toAssignableList(exprList: N.Expression[]): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (!expr) continue;\n        switch (expr.type) {\n          case \"TSTypeCastExpression\":\n            exprList[i] = this.typeCastToParameter(expr);\n            break;\n          case \"TSAsExpression\":\n          case \"TSTypeAssertion\":\n            if (!this.state.maybeInArrowParameters) {\n              exprList[i] = this.typeCastToParameter(expr);\n            } else {\n              this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter);\n            }\n            break;\n        }\n      }\n      return super.toAssignableList(...arguments);\n    }\n\n    typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isInParens?: boolean, // eslint-disable-line no-unused-vars\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TSTypeCastExpression\") {\n          this.raise(expr.start, TSErrors.UnexpectedTypeAnnotation);\n        }\n      }\n\n      return exprList;\n    }\n\n    shouldParseArrow() {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    canHaveLeadingDecorator() {\n      // Avoid unnecessary lookahead in checking for abstract class unless needed!\n      return super.canHaveLeadingDecorator() || this.isAbstractClass();\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsTryParseAndCatch(() =>\n          this.tsParseTypeArguments(),\n        );\n        if (typeArguments) node.typeParameters = typeArguments;\n      }\n      return super.jsxParseOpeningElementAfterName(node);\n    }\n\n    getGetterSetterExpectedParamCount(\n      method: N.ObjectMethod | N.ClassMethod,\n    ): number {\n      const baseCount = super.getGetterSetterExpectedParamCount(method);\n      const firstParam = method.params[0];\n      const hasContextParam =\n        firstParam &&\n        firstParam.type === \"Identifier\" &&\n        firstParam.name === \"this\";\n\n      return hasContextParam ? baseCount + 1 : baseCount;\n    }\n  };\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport * as N from \"../types\";\n\ntt.placeholder = new TokenType(\"%%\", { startsExpr: true });\n\nexport type PlaceholderTypes =\n  | \"Identifier\"\n  | \"StringLiteral\"\n  | \"Expression\"\n  | \"Statement\"\n  | \"Declaration\"\n  | \"BlockStatement\"\n  | \"ClassBody\"\n  | \"Pattern\";\n\n// $PropertyType doesn't support enums. Use a fake \"switch\" (GetPlaceholderNode)\n//type MaybePlaceholder<T: PlaceholderTypes> = $PropertyType<N, T> | N.Placeholder<T>;\n\ntype _Switch<Value, Cases, Index> = $Call<\n  (\n    $ElementType<$ElementType<Cases, Index>, 0>,\n  ) => $ElementType<$ElementType<Cases, Index>, 1>,\n  Value,\n>;\ntype $Switch<Value, Cases> = _Switch<Value, Cases, *>;\n\ntype NodeOf<T: PlaceholderTypes> = $Switch<\n  T,\n  [\n    [\"Identifier\", N.Identifier],\n    [\"StringLiteral\", N.StringLiteral],\n    [\"Expression\", N.Expression],\n    [\"Statement\", N.Statement],\n    [\"Declaration\", N.Declaration],\n    [\"BlockStatement\", N.BlockStatement],\n    [\"ClassBody\", N.ClassBody],\n    [\"Pattern\", N.Pattern],\n  ],\n>;\n\n// Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T: PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parsePlaceholder<T: PlaceholderTypes>(\n      expectedNode: T,\n    ): /*?N.Placeholder<T>*/ ?MaybePlaceholder<T> {\n      if (this.match(tt.placeholder)) {\n        const node = this.startNode();\n        this.next();\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n\n        // We can't use this.parseIdentifier because\n        // we don't want nested placeholders.\n        node.name = super.parseIdentifier(/* liberal */ true);\n\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n        this.expect(tt.placeholder);\n        return this.finishPlaceholder(node, expectedNode);\n      }\n    }\n\n    finishPlaceholder<T: PlaceholderTypes>(\n      node: N.Node,\n      expectedNode: T,\n    ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n      const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n      node.expectedNode = expectedNode;\n\n      return isFinished ? node : this.finishNode(node, \"Placeholder\");\n    }\n\n    /* ============================================================ *\n     * tokenizer/index.js                                           *\n     * ============================================================ */\n\n    getTokenFromCode(code: number) {\n      if (\n        code === charCodes.percentSign &&\n        this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n      ) {\n        return this.finishOp(tt.placeholder, 2);\n      }\n\n      return super.getTokenFromCode(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): MaybePlaceholder<\"Expression\"> {\n      return (\n        this.parsePlaceholder(\"Expression\") || super.parseExprAtom(...arguments)\n      );\n    }\n\n    parseIdentifier(): MaybePlaceholder<\"Identifier\"> {\n      // NOTE: This function only handles identifiers outside of\n      // expressions and binding patterns, since they are already\n      // handled by the parseExprAtom and parseBindingAtom functions.\n      // This is needed, for example, to parse \"class %%NAME%% {}\".\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseIdentifier(...arguments)\n      );\n    }\n\n    checkReservedWord(word: string): void {\n      // Sometimes we call #checkReservedWord(node.name), expecting\n      // that node is an Identifier. If it is a Placeholder, name\n      // will be undefined.\n      if (word !== undefined) super.checkReservedWord(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/lval.js                                               *\n     * ============================================================ */\n\n    parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n      return (\n        this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom(...arguments)\n      );\n    }\n\n    checkLVal(expr: N.Expression): void {\n      if (expr.type !== \"Placeholder\") super.checkLVal(...arguments);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (\n        node &&\n        node.type === \"Placeholder\" &&\n        node.expectedNode === \"Expression\"\n      ) {\n        node.expectedNode = \"Pattern\";\n        return node;\n      }\n      return super.toAssignable(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/statement.js                                          *\n     * ============================================================ */\n\n    verifyBreakContinue(node: N.BreakStatement | N.ContinueStatement) {\n      if (node.label && node.label.type === \"Placeholder\") return;\n      super.verifyBreakContinue(...arguments);\n    }\n\n    parseExpressionStatement(\n      node: MaybePlaceholder<\"Statement\">,\n      expr: N.Expression,\n    ): MaybePlaceholder<\"Statement\"> {\n      if (\n        expr.type !== \"Placeholder\" ||\n        (expr.extra && expr.extra.parenthesized)\n      ) {\n        return super.parseExpressionStatement(...arguments);\n      }\n\n      if (this.match(tt.colon)) {\n        const stmt: N.LabeledStatement = node;\n        stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n        this.next();\n        stmt.body = this.parseStatement(\"label\");\n        return this.finishNode(stmt, \"LabeledStatement\");\n      }\n\n      this.semicolon();\n\n      node.name = expr.name;\n      return this.finishPlaceholder(node, \"Statement\");\n    }\n\n    parseBlock(): MaybePlaceholder<\"BlockStatement\"> {\n      return (\n        this.parsePlaceholder(\"BlockStatement\") ||\n        super.parseBlock(...arguments)\n      );\n    }\n\n    parseFunctionId(): ?MaybePlaceholder<\"Identifier\"> {\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseFunctionId(...arguments)\n      );\n    }\n\n    parseClass<T: N.Class>(\n      node: T,\n      isStatement: /* T === ClassDeclaration */ boolean,\n      optionalId?: boolean,\n    ): T {\n      const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n      this.next();\n      this.takeDecorators(node);\n\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (placeholder) {\n        if (\n          this.match(tt._extends) ||\n          this.match(tt.placeholder) ||\n          this.match(tt.braceL)\n        ) {\n          node.id = placeholder;\n        } else if (optionalId || !isStatement) {\n          node.id = null;\n          node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n          return this.finishNode(node, type);\n        } else {\n          this.unexpected(null, \"A class name is required\");\n        }\n      } else {\n        this.parseClassId(node, isStatement, optionalId);\n      }\n\n      this.parseClassSuper(node);\n      node.body =\n        this.parsePlaceholder(\"ClassBody\") ||\n        this.parseClassBody(!!node.superClass);\n      return this.finishNode(node, type);\n    }\n\n    parseExport(node: N.Node): N.Node {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseExport(...arguments);\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // export %%DECL%%;\n        node.specifiers = [];\n        node.source = null;\n        node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n        return this.finishNode(node, \"ExportNamedDeclaration\");\n      }\n\n      // export %%NAME%% from \"foo\";\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = placeholder;\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n      return super.parseExport(node);\n    }\n\n    maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n      if (node.specifiers && node.specifiers.length > 0) {\n        // \"export %%NAME%%\" has already been parsed by #parseExport.\n        return true;\n      }\n      return super.maybeParseExportDefaultSpecifier(...arguments);\n    }\n\n    checkExport(node: N.ExportNamedDeclaration): void {\n      const { specifiers } = node;\n      if (specifiers && specifiers.length) {\n        node.specifiers = specifiers.filter(\n          node => node.exported.type === \"Placeholder\",\n        );\n      }\n      super.checkExport(node);\n      node.specifiers = specifiers;\n    }\n\n    parseImport(\n      node: N.Node,\n    ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseImport(...arguments);\n\n      node.specifiers = [];\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // import %%STRING%%;\n        node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n        this.semicolon();\n        return this.finishNode(node, \"ImportDeclaration\");\n      }\n\n      // import %%DEFAULT%% ...\n      const specifier = this.startNodeAtNode(placeholder);\n      specifier.local = placeholder;\n      this.finishNode(specifier, \"ImportDefaultSpecifier\");\n      node.specifiers.push(specifier);\n\n      if (this.eat(tt.comma)) {\n        // import %%DEFAULT%%, * as ...\n        const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n        // import %%DEFAULT%%, { ...\n        if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n      }\n\n      this.expectContextual(\"from\");\n      node.source = this.parseImportSource();\n      this.semicolon();\n      return this.finishNode(node, \"ImportDeclaration\");\n    }\n\n    parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n      // import ... from %%STRING%%;\n\n      return (\n        this.parsePlaceholder(\"StringLiteral\") ||\n        super.parseImportSource(...arguments)\n      );\n    }\n  };\n","import type Parser from \"../parser\";\nimport { types as tt } from \"../tokenizer/types\";\nimport * as N from \"../types\";\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parseV8Intrinsic(): N.Expression {\n      if (this.match(tt.modulo)) {\n        const v8IntrinsicStart = this.state.start;\n        // let the `loc` of Identifier starts from `%`\n        const node = this.startNode();\n        this.eat(tt.modulo);\n        if (this.match(tt.name)) {\n          const name = this.parseIdentifierName(this.state.start);\n          const identifier = this.createIdentifier(node, name);\n          identifier.type = \"V8IntrinsicIdentifier\";\n          if (this.match(tt.parenL)) {\n            return identifier;\n          }\n        }\n        this.unexpected(v8IntrinsicStart);\n      }\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): N.Expression {\n      return this.parseV8Intrinsic() || super.parseExprAtom(...arguments);\n    }\n  };\n","// @flow\n\nimport type Parser from \"./parser\";\n\nexport type Plugin = string | [string, Object];\n\nexport type PluginList = $ReadOnlyArray<Plugin>;\n\nexport type MixinPlugin = (superClass: Class<Parser>) => Class<Parser>;\n\nexport function hasPlugin(plugins: PluginList, name: string): boolean {\n  return plugins.some(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n}\n\nexport function getPluginOption(\n  plugins: PluginList,\n  name: string,\n  option: string,\n) {\n  const plugin = plugins.find(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n\n  if (plugin && Array.isArray(plugin)) {\n    return plugin[1][option];\n  }\n\n  return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"smart\", \"fsharp\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n  if (hasPlugin(plugins, \"decorators\")) {\n    if (hasPlugin(plugins, \"decorators-legacy\")) {\n      throw new Error(\n        \"Cannot use the decorators and decorators-legacy plugin together\",\n      );\n    }\n\n    const decoratorsBeforeExport = getPluginOption(\n      plugins,\n      \"decorators\",\n      \"decoratorsBeforeExport\",\n    );\n    if (decoratorsBeforeExport == null) {\n      throw new Error(\n        \"The 'decorators' plugin requires a 'decoratorsBeforeExport' option,\" +\n          \" whose value must be a boolean. If you are migrating from\" +\n          \" Babylon/Babel 6 or want to use the old decorators proposal, you\" +\n          \" should use the 'decorators-legacy' plugin instead of 'decorators'.\",\n      );\n    } else if (typeof decoratorsBeforeExport !== \"boolean\") {\n      throw new Error(\"'decoratorsBeforeExport' must be a boolean.\");\n    }\n  }\n\n  if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n    throw new Error(\"Cannot combine flow and typescript plugins.\");\n  }\n\n  if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n    throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n  }\n\n  if (\n    hasPlugin(plugins, \"pipelineOperator\") &&\n    !PIPELINE_PROPOSALS.includes(\n      getPluginOption(plugins, \"pipelineOperator\", \"proposal\"),\n    )\n  ) {\n    throw new Error(\n      \"'pipelineOperator' requires 'proposal' option whose value should be one of: \" +\n        PIPELINE_PROPOSALS.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n\n  if (\n    hasPlugin(plugins, \"recordAndTuple\") &&\n    !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n      getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n    )\n  ) {\n    throw new Error(\n      \"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \" +\n        RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree\";\nimport flow from \"./plugins/flow\";\nimport jsx from \"./plugins/jsx\";\nimport typescript from \"./plugins/typescript\";\nimport placeholders from \"./plugins/placeholders\";\nimport v8intrinsic from \"./plugins/v8intrinsic\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins: { [name: string]: MixinPlugin } = {\n  estree,\n  jsx,\n  flow,\n  typescript,\n  v8intrinsic,\n  placeholders,\n};\n\nexport const mixinPluginNames: $ReadOnlyArray<string> = Object.keys(\n  mixinPlugins,\n);\n","// @flow\n\nimport type { PluginList } from \"./plugin-utils\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n  sourceType: SourceType,\n  sourceFilename?: string,\n  startLine: number,\n  allowAwaitOutsideFunction: boolean,\n  allowReturnOutsideFunction: boolean,\n  allowImportExportEverywhere: boolean,\n  allowSuperOutsideMethod: boolean,\n  allowUndeclaredExports: boolean,\n  plugins: PluginList,\n  strictMode: ?boolean,\n  ranges: boolean,\n  tokens: boolean,\n  createParenthesizedExpressions: boolean,\n  errorRecovery: boolean,\n};\n\nexport const defaultOptions: Options = {\n  // Source type (\"script\" or \"module\") for different semantics\n  sourceType: \"script\",\n  // Source filename.\n  sourceFilename: undefined,\n  // Line from which to start counting source. Useful for\n  // integration with other tools.\n  startLine: 1,\n  // When enabled, await at the top level is not considered an\n  // error.\n  allowAwaitOutsideFunction: false,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // TODO\n  allowSuperOutsideMethod: false,\n  // When enabled, export statements can reference undeclared variables.\n  allowUndeclaredExports: false,\n  // An array of plugins to enable\n  plugins: [],\n  // TODO\n  strictMode: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // Adds all parsed tokens to a `tokens` property on the `File` node\n  tokens: false,\n  // Whether to create ParenthesizedExpression AST nodes (if false\n  // the parser sets extra.parenthesized on the expression nodes instead).\n  createParenthesizedExpressions: false,\n  // When enabled, errors are attached to the AST instead of being directly thrown.\n  // Some errors will still throw, because @babel/parser can't always recover.\n  errorRecovery: false,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts: ?Options): Options {\n  const options: any = {};\n  for (const key of Object.keys(defaultOptions)) {\n    options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key];\n  }\n  return options;\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport { Position } from \"../util/location\";\n\nimport { types as ct, type TokContext } from \"./context\";\nimport { types as tt, type TokenType } from \"./types\";\n\ntype TopicContextState = {\n  // When a topic binding has been currently established,\n  // then this is 1. Otherwise, it is 0. This is forwards compatible\n  // with a future plugin for multiple lexical topics.\n  maxNumOfResolvableTopics: number,\n\n  // When a topic binding has been currently established, and if that binding\n  // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n  // `null`. This is forwards compatible with a future plugin for multiple\n  // lexical topics.\n  maxTopicIndex: null | 0,\n};\n\nexport default class State {\n  strict: boolean;\n  curLine: number;\n\n  // And, if locations are used, the {line, column} object\n  // corresponding to those offsets\n  startLoc: Position;\n  endLoc: Position;\n\n  init(options: Options): void {\n    this.strict =\n      options.strictMode === false ? false : options.sourceType === \"module\";\n\n    this.curLine = options.startLine;\n    this.startLoc = this.endLoc = this.curPosition();\n  }\n\n  errors: SyntaxError[] = [];\n\n  // Used to signify the start of a potential arrow function\n  potentialArrowAt: number = -1;\n\n  // Used to signify the start of an expression which looks like a\n  // typed arrow function, but it isn't\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowAt: number[] = [];\n\n  // Used to signify the start of an expression whose params, if it looks like\n  // an arrow function, shouldn't be converted to assignable nodes.\n  // This is used to defer the validation of typed arrow functions inside\n  // conditional expressions.\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowParamsConversionAt: number[] = [];\n\n  // Flags to track\n  inParameters: boolean = false;\n  maybeInArrowParameters: boolean = false;\n  // This flag is used to track async arrow head across function declarations.\n  // e.g. async (foo = function (await) {}) => {}\n  // When parsing `await` in this expression, `maybeInAsyncArrowHead` is true\n  // but `maybeInArrowParameters` is false\n  maybeInAsyncArrowHead: boolean = false;\n  inPipeline: boolean = false;\n  inType: boolean = false;\n  noAnonFunctionType: boolean = false;\n  inPropertyName: boolean = false;\n  hasFlowComment: boolean = false;\n  isIterator: boolean = false;\n\n  // For the smartPipelines plugin:\n  topicContext: TopicContextState = {\n    maxNumOfResolvableTopics: 0,\n    maxTopicIndex: null,\n  };\n\n  // For the F# plugin\n  soloAwait: boolean = false;\n  inFSharpPipelineDirectBody: boolean = false;\n\n  // Labels in scope.\n  labels: Array<{\n    kind: ?(\"loop\" | \"switch\"),\n    name?: ?string,\n    statementStart?: number,\n  }> = [];\n\n  // Leading decorators. Last element of the stack represents the decorators in current context.\n  // Supports nesting of decorators, e.g. @foo(@bar class inner {}) class outer {}\n  // where @foo belongs to the outer class and @bar to the inner\n  decoratorStack: Array<Array<N.Decorator>> = [[]];\n\n  // Positions to delayed-check that yield/await does not exist in default parameters.\n  yieldPos: number = -1;\n  awaitPos: number = -1;\n\n  // Comment store.\n  comments: Array<N.Comment> = [];\n\n  // Comment attachment store\n  trailingComments: Array<N.Comment> = [];\n  leadingComments: Array<N.Comment> = [];\n  commentStack: Array<{\n    start: number,\n    leadingComments: ?Array<N.Comment>,\n    trailingComments: ?Array<N.Comment>,\n    type: string,\n  }> = [];\n  // $FlowIgnore this is initialized when the parser starts.\n  commentPreviousNode: N.Node = null;\n\n  // The current position of the tokenizer in the input.\n  pos: number = 0;\n  lineStart: number = 0;\n\n  // Properties of the current token:\n  // Its type\n  type: TokenType = tt.eof;\n\n  // For tokens that include more information than their type, the value\n  value: any = null;\n\n  // Its start and end offset\n  start: number = 0;\n  end: number = 0;\n\n  // Position information for the previous token\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokEndLoc: Position = null;\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokStartLoc: Position = null;\n  lastTokStart: number = 0;\n  lastTokEnd: number = 0;\n\n  // The context stack is used to superficially track syntactic\n  // context to predict whether a regular expression is allowed in a\n  // given position.\n  context: Array<TokContext> = [ct.braceStatement];\n  exprAllowed: boolean = true;\n\n  // Used to signal to callers of `readWord1` whether the word\n  // contained any escape sequences. This is needed because words with\n  // escape sequences must not be interpreted as keywords.\n  containsEsc: boolean = false;\n\n  // This property is used to throw an error for\n  // an octal literal in a directive that occurs prior\n  // to a \"use strict\" directive.\n  octalPositions: number[] = [];\n\n  // Names of exports store. `default` is stored as a name for both\n  // `export default foo;` and `export { foo as default };`.\n  exportedIdentifiers: Array<string> = [];\n\n  // Tokens length in token store\n  tokensLength: number = 0;\n\n  curPosition(): Position {\n    return new Position(this.curLine, this.pos - this.lineStart);\n  }\n\n  clone(skipArrays?: boolean): State {\n    const state = new State();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // $FlowIgnore\n      let val = this[key];\n\n      if (!skipArrays && Array.isArray(val)) {\n        val = val.slice();\n      }\n\n      // $FlowIgnore\n      state[key] = val;\n    }\n\n    return state;\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier\";\nimport { types as tt, keywords as keywordTypes, type TokenType } from \"./types\";\nimport { type TokContext, types as ct } from \"./context\";\nimport LocationParser, { Errors } from \"../parser/location\";\nimport { SourceLocation } from \"../util/location\";\nimport {\n  lineBreak,\n  lineBreakG,\n  isNewLine,\n  isWhitespace,\n  skipWhiteSpace,\n} from \"../util/whitespace\";\nimport State from \"./state\";\n\nconst VALID_REGEX_FLAGS = new Set([\"g\", \"m\", \"s\", \"i\", \"y\", \"u\"]);\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\n\nconst forbiddenNumericSeparatorSiblings = {\n  decBinOct: [\n    charCodes.dot,\n    charCodes.uppercaseB,\n    charCodes.uppercaseE,\n    charCodes.uppercaseO,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseB,\n    charCodes.lowercaseE,\n    charCodes.lowercaseO,\n  ],\n  hex: [\n    charCodes.dot,\n    charCodes.uppercaseX,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseX,\n  ],\n};\n\nconst allowedNumericSeparatorSiblings = {};\nallowedNumericSeparatorSiblings.bin = [\n  // 0 - 1\n  charCodes.digit0,\n  charCodes.digit1,\n];\nallowedNumericSeparatorSiblings.oct = [\n  // 0 - 7\n  ...allowedNumericSeparatorSiblings.bin,\n\n  charCodes.digit2,\n  charCodes.digit3,\n  charCodes.digit4,\n  charCodes.digit5,\n  charCodes.digit6,\n  charCodes.digit7,\n];\nallowedNumericSeparatorSiblings.dec = [\n  // 0 - 9\n  ...allowedNumericSeparatorSiblings.oct,\n\n  charCodes.digit8,\n  charCodes.digit9,\n];\n\nallowedNumericSeparatorSiblings.hex = [\n  // 0 - 9, A - F, a - f,\n  ...allowedNumericSeparatorSiblings.dec,\n\n  charCodes.uppercaseA,\n  charCodes.uppercaseB,\n  charCodes.uppercaseC,\n  charCodes.uppercaseD,\n  charCodes.uppercaseE,\n  charCodes.uppercaseF,\n\n  charCodes.lowercaseA,\n  charCodes.lowercaseB,\n  charCodes.lowercaseC,\n  charCodes.lowercaseD,\n  charCodes.lowercaseE,\n  charCodes.lowercaseF,\n];\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(state: State) {\n    this.type = state.type;\n    this.value = state.value;\n    this.start = state.start;\n    this.end = state.end;\n    this.loc = new SourceLocation(state.startLoc, state.endLoc);\n  }\n\n  type: TokenType;\n  value: any;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default class Tokenizer extends LocationParser {\n  // Forward-declarations\n  // parser/util.js\n  /*::\n  +unexpected: (pos?: ?number, messageOrType?: string | TokenType) => empty;\n  */\n\n  isLookahead: boolean;\n\n  // Token store.\n  tokens: Array<Token | N.Comment> = [];\n\n  constructor(options: Options, input: string) {\n    super();\n    this.state = new State();\n    this.state.init(options);\n    this.input = input;\n    this.length = input.length;\n    this.isLookahead = false;\n  }\n\n  pushToken(token: Token | N.Comment) {\n    // Pop out invalid tokens trapped by try-catch parsing.\n    // Those parsing branches are mainly created by typescript and flow plugins.\n    this.tokens.length = this.state.tokensLength;\n    this.tokens.push(token);\n    ++this.state.tokensLength;\n  }\n\n  // Move to the next token\n\n  next(): void {\n    if (!this.isLookahead) {\n      this.checkKeywordEscapes();\n      if (this.options.tokens) {\n        this.pushToken(new Token(this.state));\n      }\n    }\n\n    this.state.lastTokEnd = this.state.end;\n    this.state.lastTokStart = this.state.start;\n    this.state.lastTokEndLoc = this.state.endLoc;\n    this.state.lastTokStartLoc = this.state.startLoc;\n    this.nextToken();\n  }\n\n  // TODO\n\n  eat(type: TokenType): boolean {\n    if (this.match(type)) {\n      this.next();\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  // TODO\n\n  match(type: TokenType): boolean {\n    return this.state.type === type;\n  }\n\n  // TODO\n\n  lookahead(): State {\n    const old = this.state;\n    this.state = old.clone(true);\n\n    this.isLookahead = true;\n    this.next();\n    this.isLookahead = false;\n\n    const curr = this.state;\n    this.state = old;\n    return curr;\n  }\n\n  nextTokenStart(): number {\n    const thisTokEnd = this.state.pos;\n    skipWhiteSpace.lastIndex = thisTokEnd;\n    const skip = skipWhiteSpace.exec(this.input);\n    // $FlowIgnore: The skipWhiteSpace ensures to match any string\n    return thisTokEnd + skip[0].length;\n  }\n\n  lookaheadCharCode(): number {\n    return this.input.charCodeAt(this.nextTokenStart());\n  }\n\n  // Toggle strict mode. Re-reads the next number or string to please\n  // pedantic tests (`\"use strict\"; 010;` should fail).\n\n  setStrict(strict: boolean): void {\n    this.state.strict = strict;\n    if (!this.match(tt.num) && !this.match(tt.string)) return;\n    this.state.pos = this.state.start;\n    while (this.state.pos < this.state.lineStart) {\n      this.state.lineStart =\n        this.input.lastIndexOf(\"\\n\", this.state.lineStart - 2) + 1;\n      --this.state.curLine;\n    }\n    this.nextToken();\n  }\n\n  curContext(): TokContext {\n    return this.state.context[this.state.context.length - 1];\n  }\n\n  // Read a single token, updating the parser object's token-related\n  // properties.\n\n  nextToken(): void {\n    const curContext = this.curContext();\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\n\n    this.state.octalPositions = [];\n    this.state.start = this.state.pos;\n    this.state.startLoc = this.state.curPosition();\n    if (this.state.pos >= this.length) {\n      this.finishToken(tt.eof);\n      return;\n    }\n\n    const override = curContext?.override;\n    if (override) {\n      override(this);\n    } else {\n      this.getTokenFromCode(this.input.codePointAt(this.state.pos));\n    }\n  }\n\n  pushComment(\n    block: boolean,\n    text: string,\n    start: number,\n    end: number,\n    startLoc: Position,\n    endLoc: Position,\n  ): void {\n    const comment = {\n      type: block ? \"CommentBlock\" : \"CommentLine\",\n      value: text,\n      start: start,\n      end: end,\n      loc: new SourceLocation(startLoc, endLoc),\n    };\n\n    if (this.options.tokens) this.pushToken(comment);\n    this.state.comments.push(comment);\n    this.addComment(comment);\n  }\n\n  skipBlockComment(): void {\n    const startLoc = this.state.curPosition();\n    const start = this.state.pos;\n    const end = this.input.indexOf(\"*/\", this.state.pos + 2);\n    if (end === -1) throw this.raise(start, Errors.UnterminatedComment);\n\n    this.state.pos = end + 2;\n    lineBreakG.lastIndex = start;\n    let match;\n    while (\n      (match = lineBreakG.exec(this.input)) &&\n      match.index < this.state.pos\n    ) {\n      ++this.state.curLine;\n      this.state.lineStart = match.index + match[0].length;\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      true,\n      this.input.slice(start + 2, end),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  skipLineComment(startSkip: number): void {\n    const start = this.state.pos;\n    const startLoc = this.state.curPosition();\n    let ch = this.input.charCodeAt((this.state.pos += startSkip));\n    if (this.state.pos < this.length) {\n      while (!isNewLine(ch) && ++this.state.pos < this.length) {\n        ch = this.input.charCodeAt(this.state.pos);\n      }\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      false,\n      this.input.slice(start + startSkip, this.state.pos),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  // Called at the start of the parse and after every token. Skips\n  // whitespace and comments, and.\n\n  skipSpace(): void {\n    loop: while (this.state.pos < this.length) {\n      const ch = this.input.charCodeAt(this.state.pos);\n      switch (ch) {\n        case charCodes.space:\n        case charCodes.nonBreakingSpace:\n        case charCodes.tab:\n          ++this.state.pos;\n          break;\n        case charCodes.carriageReturn:\n          if (\n            this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n          ) {\n            ++this.state.pos;\n          }\n        // fall through\n        case charCodes.lineFeed:\n        case charCodes.lineSeparator:\n        case charCodes.paragraphSeparator:\n          ++this.state.pos;\n          ++this.state.curLine;\n          this.state.lineStart = this.state.pos;\n          break;\n\n        case charCodes.slash:\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\n            case charCodes.asterisk:\n              this.skipBlockComment();\n              break;\n\n            case charCodes.slash:\n              this.skipLineComment(2);\n              break;\n\n            default:\n              break loop;\n          }\n          break;\n\n        default:\n          if (isWhitespace(ch)) {\n            ++this.state.pos;\n          } else {\n            break loop;\n          }\n      }\n    }\n  }\n\n  // Called at the end of every token. Sets `end`, `val`, and\n  // maintains `context` and `exprAllowed`, and skips the space after\n  // the token, so that the next one's `start` will point at the\n  // right position.\n\n  finishToken(type: TokenType, val: any): void {\n    this.state.end = this.state.pos;\n    this.state.endLoc = this.state.curPosition();\n    const prevType = this.state.type;\n    this.state.type = type;\n    this.state.value = val;\n\n    if (!this.isLookahead) this.updateContext(prevType);\n  }\n\n  // ### Token reading\n\n  // This is the function that is called to fetch the next token. It\n  // is somewhat obscure, because it works in character codes rather\n  // than characters, and because operator parsing has been inlined\n  // into it.\n  //\n  // All in the name of speed.\n\n  // number sign is \"#\"\n  readToken_numberSign(): void {\n    if (this.state.pos === 0 && this.readToken_interpreter()) {\n      return;\n    }\n\n    const nextPos = this.state.pos + 1;\n    const next = this.input.charCodeAt(nextPos);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      throw this.raise(this.state.pos, Errors.UnexpectedDigitAfterHash);\n    }\n\n    if (\n      this.hasPlugin(\"recordAndTuple\") &&\n      (next === charCodes.leftCurlyBrace ||\n        next === charCodes.leftSquareBracket)\n    ) {\n      if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"hash\") {\n        throw this.raise(\n          this.state.pos,\n          next === charCodes.leftCurlyBrace\n            ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n            : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n        );\n      }\n\n      if (next === charCodes.leftCurlyBrace) {\n        // #{\n        this.finishToken(tt.braceHashL);\n      } else {\n        // #[\n        this.finishToken(tt.bracketHashL);\n      }\n      this.state.pos += 2;\n    } else if (\n      this.hasPlugin(\"classPrivateProperties\") ||\n      this.hasPlugin(\"classPrivateMethods\") ||\n      this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\"\n    ) {\n      this.finishOp(tt.hash, 1);\n    } else {\n      throw this.raise(this.state.pos, Errors.InvalidOrUnexpectedToken, \"#\");\n    }\n  }\n\n  readToken_dot(): void {\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      this.readNumber(true);\n      return;\n    }\n\n    if (\n      next === charCodes.dot &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n    ) {\n      this.state.pos += 3;\n      this.finishToken(tt.ellipsis);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.dot);\n    }\n  }\n\n  readToken_slash(): void {\n    // '/'\n    if (this.state.exprAllowed && !this.state.inType) {\n      ++this.state.pos;\n      this.readRegexp();\n      return;\n    }\n\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.slash, 1);\n    }\n  }\n\n  readToken_interpreter(): boolean {\n    if (this.state.pos !== 0 || this.length < 2) return false;\n\n    let ch = this.input.charCodeAt(this.state.pos + 1);\n    if (ch !== charCodes.exclamationMark) return false;\n\n    const start = this.state.pos;\n    this.state.pos += 1;\n\n    while (!isNewLine(ch) && ++this.state.pos < this.length) {\n      ch = this.input.charCodeAt(this.state.pos);\n    }\n\n    const value = this.input.slice(start + 2, this.state.pos);\n\n    this.finishToken(tt.interpreterDirective, value);\n\n    return true;\n  }\n\n  readToken_mult_modulo(code: number): void {\n    // '%*'\n    let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n    let width = 1;\n    let next = this.input.charCodeAt(this.state.pos + 1);\n    const exprAllowed = this.state.exprAllowed;\n\n    // Exponentiation operator **\n    if (code === charCodes.asterisk && next === charCodes.asterisk) {\n      width++;\n      next = this.input.charCodeAt(this.state.pos + 2);\n      type = tt.exponent;\n    }\n\n    if (next === charCodes.equalsTo && !exprAllowed) {\n      width++;\n      type = tt.assign;\n    }\n\n    this.finishOp(type, width);\n  }\n\n  readToken_pipe_amp(code: number): void {\n    // '||' '&&' '||=' '&&='\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, 3);\n      } else {\n        this.finishOp(\n          code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n          2,\n        );\n      }\n      return;\n    }\n\n    if (code === charCodes.verticalBar) {\n      // '|>'\n      if (next === charCodes.greaterThan) {\n        this.finishOp(tt.pipeline, 2);\n        return;\n      }\n      // '|}'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.RecordExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      // '|]'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightSquareBracket\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.TupleExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.bracketBarR, 2);\n        return;\n      }\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n      return;\n    }\n\n    this.finishOp(\n      code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n      1,\n    );\n  }\n\n  readToken_caret(): void {\n    // '^'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.bitwiseXOR, 1);\n    }\n  }\n\n  readToken_plus_min(code: number): void {\n    // '+-'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (\n        next === charCodes.dash &&\n        !this.inModule &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan &&\n        (this.state.lastTokEnd === 0 ||\n          lineBreak.test(\n            this.input.slice(this.state.lastTokEnd, this.state.pos),\n          ))\n      ) {\n        // A `-->` line comment\n        this.skipLineComment(3);\n        this.skipSpace();\n        this.nextToken();\n        return;\n      }\n      this.finishOp(tt.incDec, 2);\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.plusMin, 1);\n    }\n  }\n\n  readToken_lt_gt(code: number): void {\n    // '<>'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    let size = 1;\n\n    if (next === code) {\n      size =\n        code === charCodes.greaterThan &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan\n          ? 3\n          : 2;\n      if (this.input.charCodeAt(this.state.pos + size) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, size + 1);\n        return;\n      }\n      this.finishOp(tt.bitShift, size);\n      return;\n    }\n\n    if (\n      next === charCodes.exclamationMark &&\n      code === charCodes.lessThan &&\n      !this.inModule &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dash &&\n      this.input.charCodeAt(this.state.pos + 3) === charCodes.dash\n    ) {\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\n      this.skipLineComment(4);\n      this.skipSpace();\n      this.nextToken();\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      // <= | >=\n      size = 2;\n    }\n\n    this.finishOp(tt.relational, size);\n  }\n\n  readToken_eq_excl(code: number): void {\n    // '=!'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(\n        tt.equality,\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo\n          ? 3\n          : 2,\n      );\n      return;\n    }\n    if (code === charCodes.equalsTo && next === charCodes.greaterThan) {\n      // '=>'\n      this.state.pos += 2;\n      this.finishToken(tt.arrow);\n      return;\n    }\n    this.finishOp(code === charCodes.equalsTo ? tt.eq : tt.bang, 1);\n  }\n\n  readToken_question(): void {\n    // '?'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    const next2 = this.input.charCodeAt(this.state.pos + 2);\n    if (next === charCodes.questionMark && !this.state.inType) {\n      if (next2 === charCodes.equalsTo) {\n        // '??='\n        this.finishOp(tt.assign, 3);\n      } else {\n        // '??'\n        this.finishOp(tt.nullishCoalescing, 2);\n      }\n    } else if (\n      next === charCodes.dot &&\n      !(next2 >= charCodes.digit0 && next2 <= charCodes.digit9)\n    ) {\n      // '.' not followed by a number\n      this.state.pos += 2;\n      this.finishToken(tt.questionDot);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.question);\n    }\n  }\n\n  getTokenFromCode(code: number): void {\n    switch (code) {\n      // The interpretation of a dot depends on whether it is followed\n      // by a digit or another two dots.\n\n      case charCodes.dot:\n        this.readToken_dot();\n        return;\n\n      // Punctuation tokens.\n      case charCodes.leftParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenL);\n        return;\n      case charCodes.rightParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenR);\n        return;\n      case charCodes.semicolon:\n        ++this.state.pos;\n        this.finishToken(tt.semi);\n        return;\n      case charCodes.comma:\n        ++this.state.pos;\n        this.finishToken(tt.comma);\n        return;\n      case charCodes.leftSquareBracket:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.TupleExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // [|\n          this.finishToken(tt.bracketBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.bracketL);\n        }\n        return;\n      case charCodes.rightSquareBracket:\n        ++this.state.pos;\n        this.finishToken(tt.bracketR);\n        return;\n      case charCodes.leftCurlyBrace:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.RecordExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // {|\n          this.finishToken(tt.braceBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.braceL);\n        }\n        return;\n      case charCodes.rightCurlyBrace:\n        ++this.state.pos;\n        this.finishToken(tt.braceR);\n        return;\n\n      case charCodes.colon:\n        if (\n          this.hasPlugin(\"functionBind\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.colon\n        ) {\n          this.finishOp(tt.doubleColon, 2);\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.colon);\n        }\n        return;\n\n      case charCodes.questionMark:\n        this.readToken_question();\n        return;\n\n      case charCodes.graveAccent:\n        ++this.state.pos;\n        this.finishToken(tt.backQuote);\n        return;\n\n      case charCodes.digit0: {\n        const next = this.input.charCodeAt(this.state.pos + 1);\n        // '0x', '0X' - hex number\n        if (next === charCodes.lowercaseX || next === charCodes.uppercaseX) {\n          this.readRadixNumber(16);\n          return;\n        }\n        // '0o', '0O' - octal number\n        if (next === charCodes.lowercaseO || next === charCodes.uppercaseO) {\n          this.readRadixNumber(8);\n          return;\n        }\n        // '0b', '0B' - binary number\n        if (next === charCodes.lowercaseB || next === charCodes.uppercaseB) {\n          this.readRadixNumber(2);\n          return;\n        }\n      }\n      // Anything else beginning with a digit is an integer, octal\n      // number, or float. (fall through)\n      case charCodes.digit1:\n      case charCodes.digit2:\n      case charCodes.digit3:\n      case charCodes.digit4:\n      case charCodes.digit5:\n      case charCodes.digit6:\n      case charCodes.digit7:\n      case charCodes.digit8:\n      case charCodes.digit9:\n        this.readNumber(false);\n        return;\n\n      // Quotes produce strings.\n      case charCodes.quotationMark:\n      case charCodes.apostrophe:\n        this.readString(code);\n        return;\n\n      // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is\n      // often referred to. `finishOp` simply skips the amount of\n      // characters it is given as second argument, and returns a token\n      // of the type given by its first argument.\n\n      case charCodes.slash:\n        this.readToken_slash();\n        return;\n\n      case charCodes.percentSign:\n      case charCodes.asterisk:\n        this.readToken_mult_modulo(code);\n        return;\n\n      case charCodes.verticalBar:\n      case charCodes.ampersand:\n        this.readToken_pipe_amp(code);\n        return;\n\n      case charCodes.caret:\n        this.readToken_caret();\n        return;\n\n      case charCodes.plusSign:\n      case charCodes.dash:\n        this.readToken_plus_min(code);\n        return;\n\n      case charCodes.lessThan:\n      case charCodes.greaterThan:\n        this.readToken_lt_gt(code);\n        return;\n\n      case charCodes.equalsTo:\n      case charCodes.exclamationMark:\n        this.readToken_eq_excl(code);\n        return;\n\n      case charCodes.tilde:\n        this.finishOp(tt.tilde, 1);\n        return;\n\n      case charCodes.atSign:\n        ++this.state.pos;\n        this.finishToken(tt.at);\n        return;\n\n      case charCodes.numberSign:\n        this.readToken_numberSign();\n        return;\n\n      case charCodes.backslash:\n        this.readWord();\n        return;\n\n      default:\n        if (isIdentifierStart(code)) {\n          this.readWord();\n          return;\n        }\n    }\n\n    throw this.raise(\n      this.state.pos,\n      Errors.InvalidOrUnexpectedToken,\n      String.fromCodePoint(code),\n    );\n  }\n\n  finishOp(type: TokenType, size: number): void {\n    const str = this.input.slice(this.state.pos, this.state.pos + size);\n    this.state.pos += size;\n    this.finishToken(type, str);\n  }\n\n  readRegexp(): void {\n    const start = this.state.pos;\n    let escaped, inClass;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      const ch = this.input.charAt(this.state.pos);\n      if (lineBreak.test(ch)) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      if (escaped) {\n        escaped = false;\n      } else {\n        if (ch === \"[\") {\n          inClass = true;\n        } else if (ch === \"]\" && inClass) {\n          inClass = false;\n        } else if (ch === \"/\" && !inClass) {\n          break;\n        }\n        escaped = ch === \"\\\\\";\n      }\n      ++this.state.pos;\n    }\n    const content = this.input.slice(start, this.state.pos);\n    ++this.state.pos;\n\n    let mods = \"\";\n\n    while (this.state.pos < this.length) {\n      const char = this.input[this.state.pos];\n      const charCode = this.input.codePointAt(this.state.pos);\n\n      if (VALID_REGEX_FLAGS.has(char)) {\n        if (mods.indexOf(char) > -1) {\n          this.raise(this.state.pos + 1, Errors.DuplicateRegExpFlags);\n        }\n      } else if (\n        isIdentifierChar(charCode) ||\n        charCode === charCodes.backslash\n      ) {\n        this.raise(this.state.pos + 1, Errors.MalformedRegExpFlags);\n      } else {\n        break;\n      }\n\n      ++this.state.pos;\n      mods += char;\n    }\n\n    this.finishToken(tt.regexp, {\n      pattern: content,\n      flags: mods,\n    });\n  }\n\n  // Read an integer in the given radix. Return null if zero digits\n  // were read, the integer value otherwise. When `len` is given, this\n  // will return `null` unless the integer has exactly `len` digits.\n  // When `forceLen` is `true`, it means that we already know that in case\n  // of a malformed number we have to skip `len` characters anyway, instead\n  // of bailing out early. For example, in \"\\u{123Z}\" we want to read up to }\n  // anyway, while in \"\\u00Z\" we will stop at Z instead of consuming four\n  // characters (and thus the closing quote).\n\n  readInt(\n    radix: number,\n    len?: number,\n    forceLen?: boolean,\n    allowNumSeparator: boolean = true,\n  ): number | null {\n    const start = this.state.pos;\n    const forbiddenSiblings =\n      radix === 16\n        ? forbiddenNumericSeparatorSiblings.hex\n        : forbiddenNumericSeparatorSiblings.decBinOct;\n    const allowedSiblings =\n      radix === 16\n        ? allowedNumericSeparatorSiblings.hex\n        : radix === 10\n        ? allowedNumericSeparatorSiblings.dec\n        : radix === 8\n        ? allowedNumericSeparatorSiblings.oct\n        : allowedNumericSeparatorSiblings.bin;\n\n    let invalid = false;\n    let total = 0;\n\n    for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n      const code = this.input.charCodeAt(this.state.pos);\n      let val;\n\n      if (this.hasPlugin(\"numericSeparator\")) {\n        if (code === charCodes.underscore) {\n          const prev = this.input.charCodeAt(this.state.pos - 1);\n          const next = this.input.charCodeAt(this.state.pos + 1);\n          if (allowedSiblings.indexOf(next) === -1) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          } else if (\n            forbiddenSiblings.indexOf(prev) > -1 ||\n            forbiddenSiblings.indexOf(next) > -1 ||\n            Number.isNaN(next)\n          ) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          }\n\n          if (!allowNumSeparator) {\n            this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence);\n          }\n\n          // Ignore this _ character\n          ++this.state.pos;\n          continue;\n        }\n      }\n\n      if (code >= charCodes.lowercaseA) {\n        val = code - charCodes.lowercaseA + charCodes.lineFeed;\n      } else if (code >= charCodes.uppercaseA) {\n        val = code - charCodes.uppercaseA + charCodes.lineFeed;\n      } else if (charCodes.isDigit(code)) {\n        val = code - charCodes.digit0; // 0-9\n      } else {\n        val = Infinity;\n      }\n      if (val >= radix) {\n        // If we are in \"errorRecovery\" mode and we found a digit which is too big,\n        // don't break the loop.\n\n        if (this.options.errorRecovery && val <= 9) {\n          val = 0;\n          this.raise(this.state.start + i + 2, Errors.InvalidDigit, radix);\n        } else if (forceLen) {\n          val = 0;\n          invalid = true;\n        } else {\n          break;\n        }\n      }\n      ++this.state.pos;\n      total = total * radix + val;\n    }\n    if (\n      this.state.pos === start ||\n      (len != null && this.state.pos - start !== len) ||\n      invalid\n    ) {\n      return null;\n    }\n\n    return total;\n  }\n\n  readRadixNumber(radix: number): void {\n    const start = this.state.pos;\n    let isBigInt = false;\n\n    this.state.pos += 2; // 0x\n    const val = this.readInt(radix);\n    if (val == null) {\n      this.raise(this.state.start + 2, Errors.InvalidDigit, radix);\n    }\n\n    if (this.input.charCodeAt(this.state.pos) === charCodes.lowercaseN) {\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    if (isBigInt) {\n      const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    this.finishToken(tt.num, val);\n  }\n\n  // Read an integer, octal integer, or floating-point number.\n\n  readNumber(startsWithDot: boolean): void {\n    const start = this.state.pos;\n    let isFloat = false;\n    let isBigInt = false;\n    let isNonOctalDecimalInt = false;\n\n    if (!startsWithDot && this.readInt(10) === null) {\n      this.raise(start, Errors.InvalidNumber);\n    }\n    let octal =\n      this.state.pos - start >= 2 &&\n      this.input.charCodeAt(start) === charCodes.digit0;\n    if (octal) {\n      if (this.state.strict) {\n        this.raise(start, Errors.StrictOctalLiteral);\n      }\n      if (/[89]/.test(this.input.slice(start, this.state.pos))) {\n        octal = false;\n        isNonOctalDecimalInt = true;\n      }\n    }\n\n    let next = this.input.charCodeAt(this.state.pos);\n    if (next === charCodes.dot && !octal) {\n      ++this.state.pos;\n      this.readInt(10);\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    if (\n      (next === charCodes.uppercaseE || next === charCodes.lowercaseE) &&\n      !octal\n    ) {\n      next = this.input.charCodeAt(++this.state.pos);\n      if (next === charCodes.plusSign || next === charCodes.dash) {\n        ++this.state.pos;\n      }\n      if (this.readInt(10) === null) this.raise(start, \"Invalid number\");\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    // disallow numeric separators in non octal decimals and legacy octal likes\n    if (this.hasPlugin(\"numericSeparator\") && (octal || isNonOctalDecimalInt)) {\n      const underscorePos = this.input\n        .slice(start, this.state.pos)\n        .indexOf(\"_\");\n      if (underscorePos > 0) {\n        this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator);\n      }\n    }\n\n    if (next === charCodes.lowercaseN) {\n      // disallow floats, legacy octal syntax and non octal decimals\n      // new style octal (\"0o\") is handled in this.readRadixNumber\n      if (isFloat || octal || isNonOctalDecimalInt) {\n        this.raise(start, \"Invalid BigIntLiteral\");\n      }\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    // remove \"_\" for numeric literal separator, and \"n\" for BigInts\n    const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n\n    if (isBigInt) {\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    const val = octal ? parseInt(str, 8) : parseFloat(str);\n    this.finishToken(tt.num, val);\n  }\n\n  // Read a string value, interpreting backslash-escapes.\n\n  readCodePoint(throwOnInvalid: boolean): number | null {\n    const ch = this.input.charCodeAt(this.state.pos);\n    let code;\n\n    if (ch === charCodes.leftCurlyBrace) {\n      const codePos = ++this.state.pos;\n      code = this.readHexChar(\n        this.input.indexOf(\"}\", this.state.pos) - this.state.pos,\n        true,\n        throwOnInvalid,\n      );\n      ++this.state.pos;\n      if (code !== null && code > 0x10ffff) {\n        if (throwOnInvalid) {\n          this.raise(codePos, Errors.InvalidCodePoint);\n        } else {\n          return null;\n        }\n      }\n    } else {\n      code = this.readHexChar(4, false, throwOnInvalid);\n    }\n    return code;\n  }\n\n  readString(quote: number): void {\n    let out = \"\",\n      chunkStart = ++this.state.pos;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (ch === quote) break;\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        // $FlowFixMe\n        out += this.readEscapedChar(false);\n        chunkStart = this.state.pos;\n      } else if (\n        ch === charCodes.lineSeparator ||\n        ch === charCodes.paragraphSeparator\n      ) {\n        ++this.state.pos;\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      } else {\n        ++this.state.pos;\n      }\n    }\n    out += this.input.slice(chunkStart, this.state.pos++);\n    this.finishToken(tt.string, out);\n  }\n\n  // Reads template string tokens.\n\n  readTmplToken(): void {\n    let out = \"\",\n      chunkStart = this.state.pos,\n      containsInvalid = false;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedTemplate);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (\n        ch === charCodes.graveAccent ||\n        (ch === charCodes.dollarSign &&\n          this.input.charCodeAt(this.state.pos + 1) ===\n            charCodes.leftCurlyBrace)\n      ) {\n        if (this.state.pos === this.state.start && this.match(tt.template)) {\n          if (ch === charCodes.dollarSign) {\n            this.state.pos += 2;\n            this.finishToken(tt.dollarBraceL);\n            return;\n          } else {\n            ++this.state.pos;\n            this.finishToken(tt.backQuote);\n            return;\n          }\n        }\n        out += this.input.slice(chunkStart, this.state.pos);\n        this.finishToken(tt.template, containsInvalid ? null : out);\n        return;\n      }\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        const escaped = this.readEscapedChar(true);\n        if (escaped === null) {\n          containsInvalid = true;\n        } else {\n          out += escaped;\n        }\n        chunkStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        ++this.state.pos;\n        switch (ch) {\n          case charCodes.carriageReturn:\n            if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n              ++this.state.pos;\n            }\n          // fall through\n          case charCodes.lineFeed:\n            out += \"\\n\";\n            break;\n          default:\n            out += String.fromCharCode(ch);\n            break;\n        }\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n        chunkStart = this.state.pos;\n      } else {\n        ++this.state.pos;\n      }\n    }\n  }\n\n  // Used to read escaped characters\n\n  readEscapedChar(inTemplate: boolean): string | null {\n    const throwOnInvalid = !inTemplate;\n    const ch = this.input.charCodeAt(++this.state.pos);\n    ++this.state.pos;\n    switch (ch) {\n      case charCodes.lowercaseN:\n        return \"\\n\";\n      case charCodes.lowercaseR:\n        return \"\\r\";\n      case charCodes.lowercaseX: {\n        const code = this.readHexChar(2, false, throwOnInvalid);\n        return code === null ? null : String.fromCharCode(code);\n      }\n      case charCodes.lowercaseU: {\n        const code = this.readCodePoint(throwOnInvalid);\n        return code === null ? null : String.fromCodePoint(code);\n      }\n      case charCodes.lowercaseT:\n        return \"\\t\";\n      case charCodes.lowercaseB:\n        return \"\\b\";\n      case charCodes.lowercaseV:\n        return \"\\u000b\";\n      case charCodes.lowercaseF:\n        return \"\\f\";\n      case charCodes.carriageReturn:\n        if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n          ++this.state.pos;\n        }\n      // fall through\n      case charCodes.lineFeed:\n        this.state.lineStart = this.state.pos;\n        ++this.state.curLine;\n      // fall through\n      case charCodes.lineSeparator:\n      case charCodes.paragraphSeparator:\n        return \"\";\n      case charCodes.digit8:\n      case charCodes.digit9:\n        if (inTemplate) {\n          return null;\n        }\n      // fall through\n      default:\n        if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n          const codePos = this.state.pos - 1;\n          // $FlowFixMe\n          let octalStr = this.input\n            .substr(this.state.pos - 1, 3)\n            .match(/^[0-7]+/)[0];\n          let octal = parseInt(octalStr, 8);\n          if (octal > 255) {\n            octalStr = octalStr.slice(0, -1);\n            octal = parseInt(octalStr, 8);\n          }\n          this.state.pos += octalStr.length - 1;\n          const next = this.input.charCodeAt(this.state.pos);\n          if (\n            octalStr !== \"0\" ||\n            next === charCodes.digit8 ||\n            next === charCodes.digit9\n          ) {\n            if (inTemplate) {\n              return null;\n            } else if (this.state.strict) {\n              this.raise(codePos, Errors.StrictOctalLiteral);\n            } else {\n              // This property is used to throw an error for\n              // an octal literal in a directive that occurs prior\n              // to a \"use strict\" directive.\n              this.state.octalPositions.push(codePos);\n            }\n          }\n\n          return String.fromCharCode(octal);\n        }\n\n        return String.fromCharCode(ch);\n    }\n  }\n\n  // Used to read character escape sequences ('\\x', '\\u').\n\n  readHexChar(\n    len: number,\n    forceLen: boolean,\n    throwOnInvalid: boolean,\n  ): number | null {\n    const codePos = this.state.pos;\n    const n = this.readInt(16, len, forceLen, false);\n    if (n === null) {\n      if (throwOnInvalid) {\n        this.raise(codePos, Errors.InvalidEscapeSequence);\n      } else {\n        this.state.pos = codePos - 1;\n      }\n    }\n    return n;\n  }\n\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\n  // to whether the word contained a '\\u' escape.\n  //\n  // Incrementally adds only escaped chars, adding other chunks as-is\n  // as a micro-optimization.\n\n  readWord1(): string {\n    let word = \"\";\n    this.state.containsEsc = false;\n    const start = this.state.pos;\n    let chunkStart = this.state.pos;\n\n    while (this.state.pos < this.length) {\n      const ch = this.input.codePointAt(this.state.pos);\n      if (isIdentifierChar(ch)) {\n        this.state.pos += ch <= 0xffff ? 1 : 2;\n      } else if (this.state.isIterator && ch === charCodes.atSign) {\n        ++this.state.pos;\n      } else if (ch === charCodes.backslash) {\n        this.state.containsEsc = true;\n\n        word += this.input.slice(chunkStart, this.state.pos);\n        const escStart = this.state.pos;\n        const identifierCheck =\n          this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n\n        if (this.input.charCodeAt(++this.state.pos) !== charCodes.lowercaseU) {\n          this.raise(this.state.pos, Errors.MissingUnicodeEscape);\n          continue;\n        }\n\n        ++this.state.pos;\n        const esc = this.readCodePoint(true);\n        if (esc !== null) {\n          if (!identifierCheck(esc)) {\n            this.raise(escStart, Errors.EscapedCharNotAnIdentifier);\n          }\n\n          word += String.fromCodePoint(esc);\n        }\n        chunkStart = this.state.pos;\n      } else {\n        break;\n      }\n    }\n    return word + this.input.slice(chunkStart, this.state.pos);\n  }\n\n  isIterator(word: string): boolean {\n    return word === \"@@iterator\" || word === \"@@asyncIterator\";\n  }\n\n  // Read an identifier or keyword token. Will check for reserved\n  // words when necessary.\n\n  readWord(): void {\n    const word = this.readWord1();\n    const type = keywordTypes.get(word) || tt.name;\n\n    // Allow @@iterator and @@asyncIterator as a identifier only inside type\n    if (\n      this.state.isIterator &&\n      (!this.isIterator(word) || !this.state.inType)\n    ) {\n      this.raise(this.state.pos, Errors.InvalidIdentifier, word);\n    }\n\n    this.finishToken(type, word);\n  }\n\n  checkKeywordEscapes(): void {\n    const kw = this.state.type.keyword;\n    if (kw && this.state.containsEsc) {\n      this.raise(this.state.start, Errors.InvalidEscapedReservedWord, kw);\n    }\n  }\n\n  braceIsBlock(prevType: TokenType): boolean {\n    const parent = this.curContext();\n    if (parent === ct.functionExpression || parent === ct.functionStatement) {\n      return true;\n    }\n    if (\n      prevType === tt.colon &&\n      (parent === ct.braceStatement || parent === ct.braceExpression)\n    ) {\n      return !parent.isExpr;\n    }\n\n    // The check for `tt.name && exprAllowed` detects whether we are\n    // after a `yield` or `of` construct. See the `updateContext` for\n    // `tt.name`.\n    if (\n      prevType === tt._return ||\n      (prevType === tt.name && this.state.exprAllowed)\n    ) {\n      return lineBreak.test(\n        this.input.slice(this.state.lastTokEnd, this.state.start),\n      );\n    }\n\n    if (\n      prevType === tt._else ||\n      prevType === tt.semi ||\n      prevType === tt.eof ||\n      prevType === tt.parenR ||\n      prevType === tt.arrow\n    ) {\n      return true;\n    }\n\n    if (prevType === tt.braceL) {\n      return parent === ct.braceStatement;\n    }\n\n    if (\n      prevType === tt._var ||\n      prevType === tt._const ||\n      prevType === tt.name\n    ) {\n      return false;\n    }\n\n    if (prevType === tt.relational) {\n      // `class C<T> { ... }`\n      return true;\n    }\n\n    return !this.state.exprAllowed;\n  }\n\n  updateContext(prevType: TokenType): void {\n    const type = this.state.type;\n    let update;\n\n    if (type.keyword && (prevType === tt.dot || prevType === tt.questionDot)) {\n      this.state.exprAllowed = false;\n    } else if ((update = type.updateContext)) {\n      update.call(this, prevType);\n    } else {\n      this.state.exprAllowed = type.beforeExpr;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport Tokenizer from \"../tokenizer\";\nimport State from \"../tokenizer/state\";\nimport type { Node } from \"../types\";\nimport { lineBreak } from \"../util/whitespace\";\nimport { isIdentifierChar } from \"../util/identifier\";\nimport * as charCodes from \"charcodes\";\nimport { Errors } from \"./location\";\n\ntype TryParse<Node, Error, Thrown, Aborted, FailState> = {\n  node: Node,\n  error: Error,\n  thrown: Thrown,\n  aborted: Aborted,\n  failState: FailState,\n};\n\n// ## Parser utilities\n\nexport default class UtilParser extends Tokenizer {\n  // TODO\n\n  addExtra(node: Node, key: string, val: any): void {\n    if (!node) return;\n\n    const extra = (node.extra = node.extra || {});\n    extra[key] = val;\n  }\n\n  // TODO\n\n  isRelational(op: \"<\" | \">\"): boolean {\n    return this.match(tt.relational) && this.state.value === op;\n  }\n\n  isLookaheadRelational(op: \"<\" | \">\"): boolean {\n    const next = this.nextTokenStart();\n    if (this.input.charAt(next) === op) {\n      if (next + 1 === this.input.length) {\n        return true;\n      }\n      const afterNext = this.input.charCodeAt(next + 1);\n      return afterNext !== op.charCodeAt(0) && afterNext !== charCodes.equalsTo;\n    }\n    return false;\n  }\n\n  // TODO\n\n  expectRelational(op: \"<\" | \">\"): void {\n    if (this.isRelational(op)) {\n      this.next();\n    } else {\n      this.unexpected(null, tt.relational);\n    }\n  }\n\n  // Tests whether parsed token is a contextual keyword.\n\n  isContextual(name: string): boolean {\n    return (\n      this.match(tt.name) &&\n      this.state.value === name &&\n      !this.state.containsEsc\n    );\n  }\n\n  isUnparsedContextual(nameStart: number, name: string): boolean {\n    const nameEnd = nameStart + name.length;\n    return (\n      this.input.slice(nameStart, nameEnd) === name &&\n      (nameEnd === this.input.length ||\n        !isIdentifierChar(this.input.charCodeAt(nameEnd)))\n    );\n  }\n\n  isLookaheadContextual(name: string): boolean {\n    const next = this.nextTokenStart();\n    return this.isUnparsedContextual(next, name);\n  }\n\n  // Consumes contextual keyword if possible.\n\n  eatContextual(name: string): boolean {\n    return this.isContextual(name) && this.eat(tt.name);\n  }\n\n  // Asserts that following token is given contextual keyword.\n\n  expectContextual(name: string, message?: string): void {\n    if (!this.eatContextual(name)) this.unexpected(null, message);\n  }\n\n  // Test whether a semicolon can be inserted at the current position.\n\n  canInsertSemicolon(): boolean {\n    return (\n      this.match(tt.eof) ||\n      this.match(tt.braceR) ||\n      this.hasPrecedingLineBreak()\n    );\n  }\n\n  hasPrecedingLineBreak(): boolean {\n    return lineBreak.test(\n      this.input.slice(this.state.lastTokEnd, this.state.start),\n    );\n  }\n\n  // TODO\n\n  isLineTerminator(): boolean {\n    return this.eat(tt.semi) || this.canInsertSemicolon();\n  }\n\n  // Consume a semicolon, or, failing that, see if we are allowed to\n  // pretend that there is a semicolon at this position.\n\n  semicolon(): void {\n    if (!this.isLineTerminator()) this.unexpected(null, tt.semi);\n  }\n\n  // Expect a token of a given type. If found, consume it, otherwise,\n  // raise an unexpected token error at given pos.\n\n  expect(type: TokenType, pos?: ?number): void {\n    this.eat(type) || this.unexpected(pos, type);\n  }\n\n  // Throws if the current token and the prev one are separated by a space.\n  assertNoSpace(message: string = \"Unexpected space.\"): void {\n    if (this.state.start > this.state.lastTokEnd) {\n      this.raise(this.state.lastTokEnd, message);\n    }\n  }\n\n  // Raise an unexpected token error. Can take the expected token type\n  // instead of a message string.\n\n  unexpected(\n    pos: ?number,\n    messageOrType: string | TokenType = \"Unexpected token\",\n  ): empty {\n    if (typeof messageOrType !== \"string\") {\n      messageOrType = `Unexpected token, expected \"${messageOrType.label}\"`;\n    }\n    throw this.raise(pos != null ? pos : this.state.start, messageOrType);\n  }\n\n  expectPlugin(name: string, pos?: ?number): true {\n    if (!this.hasPlugin(name)) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: [name] },\n        `This experimental syntax requires enabling the parser plugin: '${name}'`,\n      );\n    }\n\n    return true;\n  }\n\n  expectOnePlugin(names: Array<string>, pos?: ?number): void {\n    if (!names.some(n => this.hasPlugin(n))) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: names },\n        `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(\n          \", \",\n        )}'`,\n      );\n    }\n  }\n\n  checkYieldAwaitInDefaultParams() {\n    if (\n      this.state.yieldPos !== -1 &&\n      (this.state.awaitPos === -1 || this.state.yieldPos < this.state.awaitPos)\n    ) {\n      this.raise(\n        this.state.yieldPos,\n        \"Yield cannot be used as name inside a generator function\",\n      );\n    }\n    if (this.state.awaitPos !== -1) {\n      this.raise(\n        this.state.awaitPos,\n        \"Await cannot be used as name inside an async function\",\n      );\n    }\n  }\n\n  // tryParse will clone parser state.\n  // It is expensive and should be used with cautions\n  tryParse<T: Node | $ReadOnlyArray<Node>>(\n    fn: (abort: (node?: T) => empty) => T,\n    oldState: State = this.state.clone(),\n  ):\n    | TryParse<T, null, false, false, null>\n    | TryParse<T | null, SyntaxError, boolean, false, State>\n    | TryParse<T | null, null, false, true, State> {\n    const abortSignal: { node: T | null } = { node: null };\n    try {\n      const node = fn((node = null) => {\n        abortSignal.node = node;\n        throw abortSignal;\n      });\n      if (this.state.errors.length > oldState.errors.length) {\n        const failState = this.state;\n        this.state = oldState;\n        return {\n          node,\n          error: (failState.errors[oldState.errors.length]: SyntaxError),\n          thrown: false,\n          aborted: false,\n          failState,\n        };\n      }\n\n      return {\n        node,\n        error: null,\n        thrown: false,\n        aborted: false,\n        failState: null,\n      };\n    } catch (error) {\n      const failState = this.state;\n      this.state = oldState;\n      if (error instanceof SyntaxError) {\n        return { node: null, error, thrown: true, aborted: false, failState };\n      }\n      if (error === abortSignal) {\n        return {\n          node: abortSignal.node,\n          error: null,\n          thrown: false,\n          aborted: true,\n          failState,\n        };\n      }\n\n      throw error;\n    }\n  }\n\n  checkExpressionErrors(\n    refExpressionErrors: ?ExpressionErrors,\n    andThrow: boolean,\n  ) {\n    if (!refExpressionErrors) return false;\n    const { shorthandAssign, doubleProto } = refExpressionErrors;\n    if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0;\n    if (shorthandAssign >= 0) {\n      this.unexpected(shorthandAssign);\n    }\n    if (doubleProto >= 0) {\n      this.raise(doubleProto, Errors.DuplicateProto);\n    }\n  }\n}\n\n/**\n * The ExpressionErrors is a context struct used to track\n * - **shorthandAssign**: track initializer `=` position when parsing ambiguous\n *   patterns. When we are sure the parsed pattern is a RHS, which means it is\n *   not a pattern, we will throw on this position on invalid assign syntax,\n *   otherwise it will be reset to -1\n * - **doubleProto**: track the duplicate `__proto__` key position when parsing\n *   ambiguous object patterns. When we are sure the parsed pattern is a RHS,\n *   which means it is an object literal, we will throw on this position for\n *   __proto__ redefinition, otherwise it will be reset to -1\n */\nexport class ExpressionErrors {\n  shorthandAssign = -1;\n  doubleProto = -1;\n}\n","// @flow\n\nimport type Parser from \"./index\";\nimport UtilParser from \"./util\";\nimport { SourceLocation, type Position } from \"../util/location\";\nimport type { Comment, Node as NodeType, NodeBase } from \"../types\";\n\n// Start an AST node, attaching a start offset.\n\nclass Node implements NodeBase {\n  constructor(parser: Parser, pos: number, loc: Position) {\n    this.type = \"\";\n    this.start = pos;\n    this.end = 0;\n    this.loc = new SourceLocation(loc);\n    if (parser && parser.options.ranges) this.range = [pos, 0];\n    if (parser && parser.filename) this.loc.filename = parser.filename;\n  }\n\n  type: string;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n  range: [number, number];\n  leadingComments: Array<Comment>;\n  trailingComments: Array<Comment>;\n  innerComments: Array<Comment>;\n  extra: { [key: string]: any };\n\n  __clone(): this {\n    // $FlowIgnore\n    const newNode: any = new Node();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // Do not clone comments that are already attached to the node\n      if (\n        key !== \"leadingComments\" &&\n        key !== \"trailingComments\" &&\n        key !== \"innerComments\"\n      ) {\n        // $FlowIgnore\n        newNode[key] = this[key];\n      }\n    }\n\n    return newNode;\n  }\n}\n\nexport class NodeUtils extends UtilParser {\n  startNode<T: NodeType>(): T {\n    // $FlowIgnore\n    return new Node(this, this.state.start, this.state.startLoc);\n  }\n\n  startNodeAt<T: NodeType>(pos: number, loc: Position): T {\n    // $FlowIgnore\n    return new Node(this, pos, loc);\n  }\n\n  /** Start a new node with a previous node's location. */\n  startNodeAtNode<T: NodeType>(type: NodeType): T {\n    return this.startNodeAt(type.start, type.loc.start);\n  }\n\n  // Finish an AST node, adding `type` and `end` properties.\n\n  finishNode<T: NodeType>(node: T, type: string): T {\n    return this.finishNodeAt(\n      node,\n      type,\n      this.state.lastTokEnd,\n      this.state.lastTokEndLoc,\n    );\n  }\n\n  // Finish node at given position\n\n  finishNodeAt<T: NodeType>(\n    node: T,\n    type: string,\n    pos: number,\n    loc: Position,\n  ): T {\n    if (process.env.NODE_ENV !== \"production\" && node.end > 0) {\n      throw new Error(\n        \"Do not call finishNode*() twice on the same node.\" +\n          \" Instead use resetEndLocation() or change type directly.\",\n      );\n    }\n    node.type = type;\n    node.end = pos;\n    node.loc.end = loc;\n    if (this.options.ranges) node.range[1] = pos;\n    this.processComment(node);\n    return node;\n  }\n\n  resetStartLocation(node: NodeBase, start: number, startLoc: Position): void {\n    node.start = start;\n    node.loc.start = startLoc;\n    if (this.options.ranges) node.range[0] = start;\n  }\n\n  resetEndLocation(\n    node: NodeBase,\n    end?: number = this.state.lastTokEnd,\n    endLoc?: Position = this.state.lastTokEndLoc,\n  ): void {\n    node.end = end;\n    node.loc.end = endLoc;\n    if (this.options.ranges) node.range[1] = end;\n  }\n\n  /**\n   * Reset the start location of node to the start location of locationNode\n   */\n  resetStartLocationFromNode(node: NodeBase, locationNode: NodeBase): void {\n    this.resetStartLocation(node, locationNode.start, locationNode.loc.start);\n  }\n}\n","// @flow\n\nimport * as charCodes from \"charcodes\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport type {\n  TSParameterProperty,\n  Decorator,\n  Expression,\n  Node,\n  Pattern,\n  RestElement,\n  SpreadElement,\n  /*:: Identifier, */\n  /*:: ObjectExpression, */\n  /*:: ObjectPattern, */\n} from \"../types\";\nimport type { Pos, Position } from \"../util/location\";\nimport {\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport { NodeUtils } from \"./node\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { Errors } from \"./location\";\n\nconst unwrapParenthesizedExpression = (node: Node) => {\n  return node.type === \"ParenthesizedExpression\"\n    ? unwrapParenthesizedExpression(node.expression)\n    : node;\n};\n\nexport default class LValParser extends NodeUtils {\n  // Forward-declaration: defined in expression.js\n  /*::\n  +parseIdentifier: (liberal?: boolean) => Identifier;\n  +parseMaybeAssign: (\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ) => Expression;\n  +parseObj: <T: ObjectPattern | ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ) => T;\n  */\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseDecorator: () => Decorator;\n  */\n\n  // Convert existing expression atom to assignable pattern\n  // if possible.\n  // NOTE: There is a corresponding \"isAssignable\" method in flow.js.\n  // When this one is updated, please check if also that one needs to be updated.\n\n  toAssignable(node: Node): Node {\n    let parenthesized = undefined;\n    if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n      parenthesized = unwrapParenthesizedExpression(node);\n      if (\n        parenthesized.type !== \"Identifier\" &&\n        parenthesized.type !== \"MemberExpression\"\n      ) {\n        this.raise(node.start, Errors.InvalidParenthesizedAssignment);\n      }\n    }\n\n    switch (node.type) {\n      case \"Identifier\":\n      case \"ObjectPattern\":\n      case \"ArrayPattern\":\n      case \"AssignmentPattern\":\n        break;\n\n      case \"ObjectExpression\":\n        node.type = \"ObjectPattern\";\n        for (\n          let i = 0, length = node.properties.length, last = length - 1;\n          i < length;\n          i++\n        ) {\n          const prop = node.properties[i];\n          const isLast = i === last;\n          this.toAssignableObjectExpressionProp(prop, isLast);\n\n          if (\n            isLast &&\n            prop.type === \"RestElement\" &&\n            node.extra?.trailingComma\n          ) {\n            this.raiseRestNotLast(node.extra.trailingComma);\n          }\n        }\n        break;\n\n      case \"ObjectProperty\":\n        this.toAssignable(node.value);\n        break;\n\n      case \"SpreadElement\": {\n        this.checkToRestConversion(node);\n\n        node.type = \"RestElement\";\n        const arg = node.argument;\n        this.toAssignable(arg);\n        break;\n      }\n\n      case \"ArrayExpression\":\n        node.type = \"ArrayPattern\";\n        this.toAssignableList(node.elements, node.extra?.trailingComma);\n        break;\n\n      case \"AssignmentExpression\":\n        if (node.operator !== \"=\") {\n          this.raise(node.left.end, Errors.MissingEqInAssignment);\n        }\n\n        node.type = \"AssignmentPattern\";\n        delete node.operator;\n        this.toAssignable(node.left);\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.toAssignable(((parenthesized: any): Expression));\n        break;\n\n      default:\n      // We don't know how to deal with this node. It will\n      // be reported by a later call to checkLVal\n    }\n    return node;\n  }\n\n  toAssignableObjectExpressionProp(prop: Node, isLast: boolean) {\n    if (prop.type === \"ObjectMethod\") {\n      const error =\n        prop.kind === \"get\" || prop.kind === \"set\"\n          ? Errors.PatternHasAccessor\n          : Errors.PatternHasMethod;\n\n      this.raise(prop.key.start, error);\n    } else if (prop.type === \"SpreadElement\" && !isLast) {\n      this.raiseRestNotLast(prop.start);\n    } else {\n      this.toAssignable(prop);\n    }\n  }\n\n  // Convert list of expression atoms to binding list.\n\n  toAssignableList(\n    exprList: Expression[],\n    trailingCommaPos?: ?number,\n  ): $ReadOnlyArray<Pattern> {\n    let end = exprList.length;\n    if (end) {\n      const last = exprList[end - 1];\n      if (last && last.type === \"RestElement\") {\n        --end;\n      } else if (last && last.type === \"SpreadElement\") {\n        last.type = \"RestElement\";\n        const arg = last.argument;\n        this.toAssignable(arg);\n        if (\n          arg.type !== \"Identifier\" &&\n          arg.type !== \"MemberExpression\" &&\n          arg.type !== \"ArrayPattern\" &&\n          arg.type !== \"ObjectPattern\"\n        ) {\n          this.unexpected(arg.start);\n        }\n\n        if (trailingCommaPos) {\n          this.raiseTrailingCommaAfterRest(trailingCommaPos);\n        }\n\n        --end;\n      }\n    }\n    for (let i = 0; i < end; i++) {\n      const elt = exprList[i];\n      if (elt) {\n        this.toAssignable(elt);\n        if (elt.type === \"RestElement\") {\n          this.raiseRestNotLast(elt.start);\n        }\n      }\n    }\n    return exprList;\n  }\n\n  // Convert list of expression atoms to a list of\n\n  toReferencedList(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean, // eslint-disable-line no-unused-vars\n  ): $ReadOnlyArray<?Expression> {\n    return exprList;\n  }\n\n  toReferencedListDeep(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean,\n  ): void {\n    this.toReferencedList(exprList, isParenthesizedExpr);\n\n    for (const expr of exprList) {\n      if (expr && expr.type === \"ArrayExpression\") {\n        this.toReferencedListDeep(expr.elements);\n      }\n    }\n  }\n\n  // Parses spread element.\n\n  parseSpread(\n    refExpressionErrors: ?ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): SpreadElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseMaybeAssign(\n      false,\n      refExpressionErrors,\n      undefined,\n      refNeedsArrowPos,\n    );\n    return this.finishNode(node, \"SpreadElement\");\n  }\n\n  parseRestBinding(): RestElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseBindingAtom();\n    return this.finishNode(node, \"RestElement\");\n  }\n\n  // Parses lvalue (assignable) atom.\n  parseBindingAtom(): Pattern {\n    switch (this.state.type) {\n      case tt.bracketL: {\n        const node = this.startNode();\n        this.next();\n        node.elements = this.parseBindingList(\n          tt.bracketR,\n          charCodes.rightSquareBracket,\n          true,\n        );\n        return this.finishNode(node, \"ArrayPattern\");\n      }\n\n      case tt.braceL:\n        return this.parseObj(tt.braceR, true);\n    }\n\n    return this.parseIdentifier();\n  }\n\n  parseBindingList(\n    close: TokenType,\n    closeCharCode: $Values<typeof charCodes>,\n    allowEmpty?: boolean,\n    allowModifiers?: boolean,\n  ): $ReadOnlyArray<Pattern | TSParameterProperty> {\n    const elts: Array<Pattern | TSParameterProperty> = [];\n    let first = true;\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n      }\n      if (allowEmpty && this.match(tt.comma)) {\n        // $FlowFixMe This method returns `$ReadOnlyArray<?Pattern>` if `allowEmpty` is set.\n        elts.push(null);\n      } else if (this.eat(close)) {\n        break;\n      } else if (this.match(tt.ellipsis)) {\n        elts.push(this.parseAssignableListItemTypes(this.parseRestBinding()));\n        this.checkCommaAfterRest(closeCharCode);\n        this.expect(close);\n        break;\n      } else {\n        const decorators = [];\n        if (this.match(tt.at) && this.hasPlugin(\"decorators\")) {\n          this.raise(this.state.start, Errors.UnsupportedParameterDecorator);\n        }\n        while (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n        }\n        elts.push(this.parseAssignableListItem(allowModifiers, decorators));\n      }\n    }\n    return elts;\n  }\n\n  parseAssignableListItem(\n    allowModifiers: ?boolean,\n    decorators: Decorator[],\n  ): Pattern | TSParameterProperty {\n    const left = this.parseMaybeDefault();\n    this.parseAssignableListItemTypes(left);\n    const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n    if (decorators.length) {\n      left.decorators = decorators;\n    }\n    return elt;\n  }\n\n  parseAssignableListItemTypes(param: Pattern): Pattern {\n    return param;\n  }\n\n  // Parses assignment pattern around given atom if possible.\n\n  parseMaybeDefault(\n    startPos?: ?number,\n    startLoc?: ?Position,\n    left?: ?Pattern,\n  ): Pattern {\n    startLoc = startLoc || this.state.startLoc;\n    startPos = startPos || this.state.start;\n    left = left || this.parseBindingAtom();\n    if (!this.eat(tt.eq)) return left;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    node.left = left;\n    node.right = this.parseMaybeAssign();\n    return this.finishNode(node, \"AssignmentPattern\");\n  }\n\n  // Verify that a node is an lval — something that can be assigned\n  // to.\n\n  checkLVal(\n    expr: Expression,\n    bindingType: BindingTypes = BIND_NONE,\n    checkClashes: ?{ [key: string]: boolean },\n    contextDescription: string,\n    disallowLetBinding?: boolean,\n    strictModeChanged?: boolean = false,\n  ): void {\n    switch (expr.type) {\n      case \"Identifier\":\n        if (\n          this.state.strict &&\n          // \"Global\" reserved words have already been checked by parseIdentifier,\n          // unless they have been found in the id or parameters of a strict-mode\n          // function in a sloppy context.\n          (strictModeChanged\n            ? isStrictBindReservedWord(expr.name, this.inModule)\n            : isStrictBindOnlyReservedWord(expr.name))\n        ) {\n          this.raise(\n            expr.start,\n            bindingType === BIND_NONE\n              ? Errors.StrictEvalArguments\n              : Errors.StrictEvalArgumentsBinding,\n            expr.name,\n          );\n        }\n\n        if (checkClashes) {\n          // we need to prefix this with an underscore for the cases where we have a key of\n          // `__proto__`. there's a bug in old V8 where the following wouldn't work:\n          //\n          //   > var obj = Object.create(null);\n          //   undefined\n          //   > obj.__proto__\n          //   null\n          //   > obj.__proto__ = true;\n          //   true\n          //   > obj.__proto__\n          //   null\n          const key = `_${expr.name}`;\n\n          if (checkClashes[key]) {\n            this.raise(expr.start, Errors.ParamDupe);\n          } else {\n            checkClashes[key] = true;\n          }\n        }\n        if (disallowLetBinding && expr.name === \"let\") {\n          this.raise(expr.start, Errors.LetInLexicalBinding);\n        }\n        if (!(bindingType & BIND_NONE)) {\n          this.scope.declareName(expr.name, bindingType, expr.start);\n        }\n        break;\n\n      case \"MemberExpression\":\n        if (bindingType !== BIND_NONE) {\n          this.raise(expr.start, Errors.InvalidPropertyBindingPattern);\n        }\n        break;\n\n      case \"ObjectPattern\":\n        for (let prop of expr.properties) {\n          if (prop.type === \"ObjectProperty\") prop = prop.value;\n          // If we find here an ObjectMethod, it's because this was originally\n          // an ObjectExpression which has then been converted.\n          // toAssignable already reported this error with a nicer message.\n          else if (prop.type === \"ObjectMethod\") continue;\n\n          this.checkLVal(\n            prop,\n            bindingType,\n            checkClashes,\n            \"object destructuring pattern\",\n            disallowLetBinding,\n          );\n        }\n        break;\n\n      case \"ArrayPattern\":\n        for (const elem of expr.elements) {\n          if (elem) {\n            this.checkLVal(\n              elem,\n              bindingType,\n              checkClashes,\n              \"array destructuring pattern\",\n              disallowLetBinding,\n            );\n          }\n        }\n        break;\n\n      case \"AssignmentPattern\":\n        this.checkLVal(\n          expr.left,\n          bindingType,\n          checkClashes,\n          \"assignment pattern\",\n        );\n        break;\n\n      case \"RestElement\":\n        this.checkLVal(\n          expr.argument,\n          bindingType,\n          checkClashes,\n          \"rest element\",\n        );\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.checkLVal(\n          expr.expression,\n          bindingType,\n          checkClashes,\n          \"parenthesized expression\",\n        );\n        break;\n\n      default: {\n        this.raise(\n          expr.start,\n          bindingType === BIND_NONE\n            ? Errors.InvalidLhs\n            : Errors.InvalidLhsBinding,\n          contextDescription,\n        );\n      }\n    }\n  }\n\n  checkToRestConversion(node: SpreadElement): void {\n    if (\n      node.argument.type !== \"Identifier\" &&\n      node.argument.type !== \"MemberExpression\"\n    ) {\n      this.raise(node.argument.start, Errors.InvalidRestAssignmentPattern);\n    }\n  }\n\n  checkCommaAfterRest(close: $Values<typeof charCodes>): void {\n    if (this.match(tt.comma)) {\n      if (this.lookaheadCharCode() === close) {\n        this.raiseTrailingCommaAfterRest(this.state.start);\n      } else {\n        this.raiseRestNotLast(this.state.start);\n      }\n    }\n  }\n\n  raiseRestNotLast(pos: number) {\n    throw this.raise(pos, Errors.ElementAfterRest);\n  }\n\n  raiseTrailingCommaAfterRest(pos: number) {\n    this.raise(pos, Errors.RestTrailingComma);\n  }\n}\n","// @flow\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport { types as ct } from \"../tokenizer/context\";\nimport * as N from \"../types\";\nimport LValParser from \"./lval\";\nimport {\n  isKeyword,\n  isReservedWord,\n  isStrictReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport type { Pos, Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_OUTSIDE,\n  BIND_VAR,\n  SCOPE_ARROW,\n  SCOPE_CLASS,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport {\n  PARAM_AWAIT,\n  PARAM_RETURN,\n  PARAM,\n  functionFlags,\n} from \"../util/production-parameter\";\nimport { Errors } from \"./location\";\n\nexport default class ExpressionParser extends LValParser {\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseBlock: (\n    allowDirectives?: boolean,\n    createNewLexicalScope?: boolean,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ) => N.BlockStatement;\n  +parseClass: (\n    node: N.Class,\n    isStatement: boolean,\n    optionalId?: boolean,\n  ) => N.Class;\n  +parseDecorators: (allowExport?: boolean) => void;\n  +parseFunction: <T: N.NormalFunction>(\n    node: T,\n    statement?: number,\n    allowExpressionBody?: boolean,\n    isAsync?: boolean,\n  ) => T;\n  +parseFunctionParams: (node: N.Function, allowModifiers?: boolean) => void;\n  +takeDecorators: (node: N.HasDecorators) => void;\n  */\n\n  // Check if property __proto__ has been used more than once.\n  // If the expression is a destructuring assignment, then __proto__ may appear\n  // multiple times. Otherwise, __proto__ is a duplicated key.\n\n  checkDuplicatedProto(\n    prop: N.ObjectMember | N.SpreadElement,\n    protoRef: { used: boolean },\n    refExpressionErrors: ?ExpressionErrors,\n  ): void {\n    if (\n      prop.type === \"SpreadElement\" ||\n      prop.computed ||\n      prop.kind ||\n      // $FlowIgnore\n      prop.shorthand\n    ) {\n      return;\n    }\n\n    const key = prop.key;\n    // It is either an Identifier or a String/NumericLiteral\n    const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n    if (name === \"__proto__\") {\n      if (protoRef.used) {\n        if (refExpressionErrors) {\n          // Store the first redefinition's position, otherwise ignore because\n          // we are parsing ambiguous pattern\n          if (refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          }\n        } else {\n          this.raise(key.start, Errors.DuplicateProto);\n        }\n      }\n\n      protoRef.used = true;\n    }\n  }\n\n  // Convenience method to parse an Expression only\n  getExpression(): N.Expression {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    this.nextToken();\n    const expr = this.parseExpression();\n    if (!this.match(tt.eof)) {\n      this.unexpected();\n    }\n    expr.comments = this.state.comments;\n    expr.errors = this.state.errors;\n    return expr;\n  }\n\n  // ### Expression parsing\n\n  // These nest, from the most general expression type at the top to\n  // 'atomic', nondivisible expression types at the bottom. Most of\n  // the functions will simply let the function (s) below them parse,\n  // and, *if* the syntactic construct they handle is present, wrap\n  // the AST node that the inner parser gave them in another node.\n\n  // Parse a full expression.\n  // - `noIn`\n  //   is used to forbid the `in` operator (in for loops initialization expressions)\n  //   When `noIn` is true, the production parameter [In] is not present.\n  //   Whenever [?In] appears in the right-hand sides of a production, we pass\n  //   `noIn` to the subroutine calls.\n\n  // - `refExpressionErrors `\n  //   provides reference for storing '=' operator inside shorthand\n  //   property assignment in contexts where both object expression\n  //   and object pattern might appear (so it's possible to raise\n  //   delayed syntax error at correct position).\n\n  parseExpression(\n    noIn?: boolean,\n    refExpressionErrors?: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const expr = this.parseMaybeAssign(noIn, refExpressionErrors);\n    if (this.match(tt.comma)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.expressions = [expr];\n      while (this.eat(tt.comma)) {\n        node.expressions.push(this.parseMaybeAssign(noIn, refExpressionErrors));\n      }\n      this.toReferencedList(node.expressions);\n      return this.finishNode(node, \"SequenceExpression\");\n    }\n    return expr;\n  }\n\n  // Parse an assignment expression. This includes applications of\n  // operators like `+=`.\n\n  parseMaybeAssign(\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    if (this.isContextual(\"yield\")) {\n      if (this.prodParam.hasYield) {\n        let left = this.parseYield(noIn);\n        if (afterLeftParse) {\n          left = afterLeftParse.call(this, left, startPos, startLoc);\n        }\n        return left;\n      } else {\n        // The tokenizer will assume an expression is allowed after\n        // `yield`, but this isn't that kind of yield\n        this.state.exprAllowed = false;\n      }\n    }\n\n    let ownExpressionErrors;\n    if (refExpressionErrors) {\n      ownExpressionErrors = false;\n    } else {\n      refExpressionErrors = new ExpressionErrors();\n      ownExpressionErrors = true;\n    }\n\n    if (this.match(tt.parenL) || this.match(tt.name)) {\n      this.state.potentialArrowAt = this.state.start;\n    }\n\n    let left = this.parseMaybeConditional(\n      noIn,\n      refExpressionErrors,\n      refNeedsArrowPos,\n    );\n    if (afterLeftParse) {\n      left = afterLeftParse.call(this, left, startPos, startLoc);\n    }\n    if (this.state.type.isAssign) {\n      const node = this.startNodeAt(startPos, startLoc);\n      const operator = this.state.value;\n      node.operator = operator;\n\n      if (operator === \"??=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (operator === \"||=\" || operator === \"&&=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (this.match(tt.eq)) {\n        node.left = this.toAssignable(left);\n        refExpressionErrors.doubleProto = -1; // reset because double __proto__ is valid in assignment expression\n      } else {\n        node.left = left;\n      }\n\n      if (refExpressionErrors.shorthandAssign >= node.left.start) {\n        refExpressionErrors.shorthandAssign = -1; // reset because shorthand default was used correctly\n      }\n\n      this.checkLVal(left, undefined, undefined, \"assignment expression\");\n\n      this.next();\n      node.right = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"AssignmentExpression\");\n    } else if (ownExpressionErrors) {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n\n    return left;\n  }\n\n  // Parse a ternary conditional (`?:`) operator.\n\n  parseMaybeConditional(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprOps(noIn, refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n\n    return this.parseConditional(\n      expr,\n      noIn,\n      startPos,\n      startLoc,\n      refNeedsArrowPos,\n    );\n  }\n\n  parseConditional(\n    expr: N.Expression,\n    noIn: ?boolean,\n    startPos: number,\n    startLoc: Position,\n    // FIXME: Disabling this for now since can't seem to get it to play nicely\n    // eslint-disable-next-line no-unused-vars\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    if (this.eat(tt.question)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.test = expr;\n      node.consequent = this.parseMaybeAssign();\n      this.expect(tt.colon);\n      node.alternate = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n    return expr;\n  }\n\n  // Start the precedence parser.\n\n  parseExprOps(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseMaybeUnary(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) {\n      return expr;\n    }\n\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\n  }\n\n  // Parse binary operators with the operator precedence parsing\n  // algorithm. `left` is the left-hand side of the operator.\n  // `minPrec` provides context that allows the function to stop and\n  // defer further parser to one of its callers when it encounters an\n  // operator that has a lower precedence than the set it is parsing.\n\n  parseExprOp(\n    left: N.Expression,\n    leftStartPos: number,\n    leftStartLoc: Position,\n    minPrec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    let prec = this.state.type.binop;\n    if (prec != null && (!noIn || !this.match(tt._in))) {\n      if (prec > minPrec) {\n        const operator = this.state.value;\n        if (operator === \"|>\" && this.state.inFSharpPipelineDirectBody) {\n          return left;\n        }\n        const node = this.startNodeAt(leftStartPos, leftStartLoc);\n        node.left = left;\n        node.operator = operator;\n        if (\n          operator === \"**\" &&\n          left.type === \"UnaryExpression\" &&\n          (this.options.createParenthesizedExpressions ||\n            !(left.extra && left.extra.parenthesized))\n        ) {\n          this.raise(\n            left.argument.start,\n            Errors.UnexpectedTokenUnaryExponentiation,\n          );\n        }\n\n        const op = this.state.type;\n        const logical = op === tt.logicalOR || op === tt.logicalAND;\n        const coalesce = op === tt.nullishCoalescing;\n\n        if (op === tt.pipeline) {\n          this.expectPlugin(\"pipelineOperator\");\n          this.state.inPipeline = true;\n          this.checkPipelineAtInfixOperator(left, leftStartPos);\n        } else if (coalesce) {\n          // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n          // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n          prec = ((tt.logicalAND: any): { binop: number }).binop;\n        }\n\n        this.next();\n\n        if (\n          op === tt.pipeline &&\n          this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"minimal\"\n        ) {\n          if (\n            this.match(tt.name) &&\n            this.state.value === \"await\" &&\n            this.prodParam.hasAwait\n          ) {\n            throw this.raise(\n              this.state.start,\n              Errors.UnexpectedAwaitAfterPipelineBody,\n            );\n          }\n        }\n\n        node.right = this.parseExprOpRightExpr(op, prec, noIn);\n        this.finishNode(\n          node,\n          logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\",\n        );\n        /* this check is for all ?? operators\n         * a ?? b && c for this example\n         * when op is coalesce and nextOp is logical (&&), throw at the pos of nextOp that it can not be mixed.\n         * Symmetrically it also throws when op is logical and nextOp is coalesce\n         */\n        const nextOp = this.state.type;\n        if (\n          (coalesce && (nextOp === tt.logicalOR || nextOp === tt.logicalAND)) ||\n          (logical && nextOp === tt.nullishCoalescing)\n        ) {\n          throw this.raise(this.state.start, Errors.MixingCoalesceWithLogical);\n        }\n\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n    }\n    return left;\n  }\n\n  // Helper function for `parseExprOp`. Parse the right-hand side of binary-\n  // operator expressions, then apply any operator-specific functions.\n\n  parseExprOpRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    switch (op) {\n      case tt.pipeline:\n        switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n          case \"smart\":\n            return this.withTopicPermittingContext(() => {\n              return this.parseSmartPipelineBody(\n                this.parseExprOpBaseRightExpr(op, prec, noIn),\n                startPos,\n                startLoc,\n              );\n            });\n          case \"fsharp\":\n            return this.withSoloAwaitPermittingContext(() => {\n              return this.parseFSharpPipelineBody(prec, noIn);\n            });\n        }\n      // falls through\n\n      default:\n        return this.parseExprOpBaseRightExpr(op, prec, noIn);\n    }\n  }\n\n  // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of\n  // binary-operator expressions without applying any operator-specific functions.\n\n  parseExprOpBaseRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    return this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      op.rightAssociative ? prec - 1 : prec,\n      noIn,\n    );\n  }\n\n  // Parse unary operators, both prefix and postfix.\n\n  parseMaybeUnary(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    if (this.isContextual(\"await\") && this.isAwaitAllowed()) {\n      return this.parseAwait();\n    } else if (this.state.type.prefix) {\n      const node = this.startNode();\n      const update = this.match(tt.incDec);\n      node.operator = this.state.value;\n      node.prefix = true;\n\n      if (node.operator === \"throw\") {\n        this.expectPlugin(\"throwExpressions\");\n      }\n      this.next();\n\n      node.argument = this.parseMaybeUnary();\n\n      this.checkExpressionErrors(refExpressionErrors, true);\n\n      if (update) {\n        this.checkLVal(node.argument, undefined, undefined, \"prefix operation\");\n      } else if (this.state.strict && node.operator === \"delete\") {\n        const arg = node.argument;\n\n        if (arg.type === \"Identifier\") {\n          this.raise(node.start, Errors.StrictDelete);\n        } else if (\n          arg.type === \"MemberExpression\" &&\n          arg.property.type === \"PrivateName\"\n        ) {\n          this.raise(node.start, Errors.DeletePrivateField);\n        }\n      }\n\n      return this.finishNode(\n        node,\n        update ? \"UpdateExpression\" : \"UnaryExpression\",\n      );\n    }\n\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    let expr = this.parseExprSubscripts(refExpressionErrors);\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n    while (this.state.type.postfix && !this.canInsertSemicolon()) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.operator = this.state.value;\n      node.prefix = false;\n      node.argument = expr;\n      this.checkLVal(expr, undefined, undefined, \"postfix operation\");\n      this.next();\n      expr = this.finishNode(node, \"UpdateExpression\");\n    }\n    return expr;\n  }\n\n  // Parse call, dot, and `[]`-subscript expressions.\n\n  parseExprSubscripts(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprAtom(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n\n    return this.parseSubscripts(expr, startPos, startLoc);\n  }\n\n  parseSubscripts(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls?: ?boolean,\n  ): N.Expression {\n    const state = {\n      optionalChainMember: false,\n      maybeAsyncArrow: this.atPossibleAsyncArrow(base),\n      stop: false,\n    };\n    do {\n      const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n      if (state.maybeAsyncArrow) {\n        this.state.maybeInAsyncArrowHead = true;\n      }\n      base = this.parseSubscript(base, startPos, startLoc, noCalls, state);\n\n      // After parsing a subscript, this isn't \"async\" for sure.\n      state.maybeAsyncArrow = false;\n      this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n    } while (!state.stop);\n    return base;\n  }\n\n  /**\n   * @param state Set 'state.stop = true' to indicate that we should stop parsing subscripts.\n   *   state.optionalChainMember to indicate that the member is currently in OptionalChain\n   */\n  parseSubscript(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls: ?boolean,\n    state: N.ParseSubscriptState,\n  ): N.Expression {\n    if (!noCalls && this.eat(tt.doubleColon)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.callee = this.parseNoCallExpr();\n      state.stop = true;\n      return this.parseSubscripts(\n        this.finishNode(node, \"BindExpression\"),\n        startPos,\n        startLoc,\n        noCalls,\n      );\n    }\n    let optional = false;\n    if (this.match(tt.questionDot)) {\n      state.optionalChainMember = optional = true;\n      if (noCalls && this.lookaheadCharCode() === charCodes.leftParenthesis) {\n        state.stop = true;\n        return base;\n      }\n      this.next();\n    }\n    const computed = this.eat(tt.bracketL);\n    if (\n      (optional && !this.match(tt.parenL) && !this.match(tt.backQuote)) ||\n      computed ||\n      this.eat(tt.dot)\n    ) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.property = computed\n        ? this.parseExpression()\n        : optional\n        ? this.parseIdentifier(true)\n        : this.parseMaybePrivateName(true);\n      node.computed = computed;\n\n      if (node.property.type === \"PrivateName\") {\n        if (node.object.type === \"Super\") {\n          this.raise(startPos, Errors.SuperPrivateField);\n        }\n        this.classScope.usePrivateName(\n          node.property.id.name,\n          node.property.start,\n        );\n      }\n\n      if (computed) {\n        this.expect(tt.bracketR);\n      }\n\n      if (state.optionalChainMember) {\n        node.optional = optional;\n        return this.finishNode(node, \"OptionalMemberExpression\");\n      } else {\n        return this.finishNode(node, \"MemberExpression\");\n      }\n    } else if (!noCalls && this.match(tt.parenL)) {\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      this.next();\n\n      let node = this.startNodeAt(startPos, startLoc);\n      node.callee = base;\n\n      if (optional) {\n        node.optional = true;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      } else {\n        node.arguments = this.parseCallExpressionArguments(\n          tt.parenR,\n          state.maybeAsyncArrow,\n          base.type === \"Import\",\n          base.type !== \"Super\",\n          node,\n        );\n      }\n      this.finishCallExpression(node, state.optionalChainMember);\n\n      if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n        state.stop = true;\n\n        node = this.parseAsyncArrowFromCallExpression(\n          this.startNodeAt(startPos, startLoc),\n          node,\n        );\n        this.checkYieldAwaitInDefaultParams();\n        this.state.yieldPos = oldYieldPos;\n        this.state.awaitPos = oldAwaitPos;\n      } else {\n        this.toReferencedListDeep(node.arguments);\n\n        // We keep the old value if it isn't null, for cases like\n        //   (x = async(yield)) => {}\n        //\n        // Hi developer of the future :) If you are implementing generator\n        // arrow functions, please read the note below about \"await\" and\n        // verify if the same logic is needed for yield.\n        if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n\n        // Await is trickier than yield. When parsing a possible arrow function\n        // (e.g. something starting with `async(`) we don't know if its possible\n        // parameters will actually be inside an async arrow function or if it is\n        // a normal call expression.\n        // If it ended up being a call expression, if we are in a context where\n        // await expression are disallowed (and thus \"await\" is an identifier)\n        // we must be careful not to leak this.state.awaitPos to an even outer\n        // context, where \"await\" could not be an identifier.\n        // For example, this code is valid because \"await\" isn't directly inside\n        // an async function:\n        //\n        //     async function a() {\n        //       function b(param = async (await)) {\n        //       }\n        //     }\n        //\n        if (\n          (!this.isAwaitAllowed() && !oldMaybeInArrowParameters) ||\n          oldAwaitPos !== -1\n        ) {\n          this.state.awaitPos = oldAwaitPos;\n        }\n      }\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n      return node;\n    } else if (this.match(tt.backQuote)) {\n      return this.parseTaggedTemplateExpression(\n        startPos,\n        startLoc,\n        base,\n        state,\n      );\n    } else {\n      state.stop = true;\n      return base;\n    }\n  }\n\n  parseTaggedTemplateExpression(\n    startPos: number,\n    startLoc: Position,\n    base: N.Expression,\n    state: N.ParseSubscriptState,\n    typeArguments?: ?N.TsTypeParameterInstantiation,\n  ): N.TaggedTemplateExpression {\n    const node: N.TaggedTemplateExpression = this.startNodeAt(\n      startPos,\n      startLoc,\n    );\n    node.tag = base;\n    node.quasi = this.parseTemplate(true);\n    if (typeArguments) node.typeParameters = typeArguments;\n    if (state.optionalChainMember) {\n      this.raise(startPos, Errors.OptionalChainingNoTemplate);\n    }\n    return this.finishNode(node, \"TaggedTemplateExpression\");\n  }\n\n  atPossibleAsyncArrow(base: N.Expression): boolean {\n    return (\n      base.type === \"Identifier\" &&\n      base.name === \"async\" &&\n      this.state.lastTokEnd === base.end &&\n      !this.canInsertSemicolon() &&\n      // check there are no escape sequences, such as \\u{61}sync\n      base.end - base.start === 5 &&\n      base.start === this.state.potentialArrowAt\n    );\n  }\n\n  finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n    node: T,\n    optional: boolean,\n  ): N.Expression {\n    if (node.callee.type === \"Import\") {\n      if (node.arguments.length !== 1) {\n        this.raise(node.start, Errors.ImportCallArity);\n      } else {\n        const importArg = node.arguments[0];\n        if (importArg && importArg.type === \"SpreadElement\") {\n          this.raise(importArg.start, Errors.ImportCallSpreadArgument);\n        }\n      }\n    }\n    return this.finishNode(\n      node,\n      optional ? \"OptionalCallExpression\" : \"CallExpression\",\n    );\n  }\n\n  parseCallExpressionArguments(\n    close: TokenType,\n    possibleAsyncArrow: boolean,\n    dynamicImport?: boolean,\n    allowPlaceholder?: boolean,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let innerParenStart;\n    let first = true;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (dynamicImport) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.ImportCallArgumentTrailingComma,\n            );\n          }\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      // we need to make sure that if this is an async arrow functions,\n      // that we don't allow inner parens inside the params\n      if (this.match(tt.parenL) && !innerParenStart) {\n        innerParenStart = this.state.start;\n      }\n\n      elts.push(\n        this.parseExprListItem(\n          false,\n          possibleAsyncArrow ? new ExpressionErrors() : undefined,\n          possibleAsyncArrow ? { start: 0 } : undefined,\n          allowPlaceholder,\n        ),\n      );\n    }\n\n    // we found an async arrow function so let's not allow any inner parens\n    if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\n      this.unexpected();\n    }\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return elts;\n  }\n\n  shouldParseAsyncArrow(): boolean {\n    return this.match(tt.arrow) && !this.canInsertSemicolon();\n  }\n\n  parseAsyncArrowFromCallExpression(\n    node: N.ArrowFunctionExpression,\n    call: N.CallExpression,\n  ): N.ArrowFunctionExpression {\n    this.expect(tt.arrow);\n    this.parseArrowExpression(\n      node,\n      call.arguments,\n      true,\n      call.extra?.trailingComma,\n    );\n    return node;\n  }\n\n  // Parse a no-call expression (like argument of `new` or `::` operators).\n\n  parseNoCallExpr(): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n  }\n\n  // Parse an atomic expression — either a single token that is an\n  // expression, an expression started by a keyword like `function` or\n  // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n  // or `{}`.\n\n  parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n    // If a division operator appears in an expression position, the\n    // tokenizer got confused, and we force it to read a regexp instead.\n    if (this.state.type === tt.slash) this.readRegexp();\n\n    const canBeArrow = this.state.potentialArrowAt === this.state.start;\n    let node;\n\n    switch (this.state.type) {\n      case tt._super:\n        node = this.startNode();\n        this.next();\n        if (\n          this.match(tt.parenL) &&\n          !this.scope.allowDirectSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.SuperNotAllowed);\n        } else if (\n          !this.scope.allowSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.UnexpectedSuper);\n        }\n\n        if (\n          !this.match(tt.parenL) &&\n          !this.match(tt.bracketL) &&\n          !this.match(tt.dot)\n        ) {\n          this.raise(node.start, Errors.UnsupportedSuper);\n        }\n\n        return this.finishNode(node, \"Super\");\n\n      case tt._import:\n        node = this.startNode();\n        this.next();\n\n        if (this.match(tt.dot)) {\n          return this.parseImportMetaProperty(node);\n        }\n\n        if (!this.match(tt.parenL)) {\n          this.raise(this.state.lastTokStart, Errors.UnsupportedImport);\n        }\n        return this.finishNode(node, \"Import\");\n      case tt._this:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"ThisExpression\");\n\n      case tt.name: {\n        node = this.startNode();\n        const containsEsc = this.state.containsEsc;\n        const id = this.parseIdentifier();\n\n        if (\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt._function) &&\n          !this.canInsertSemicolon()\n        ) {\n          const last = this.state.context.length - 1;\n          if (this.state.context[last] !== ct.functionStatement) {\n            // Since \"async\" is an identifier and normally identifiers\n            // can't be followed by expression, the tokenizer assumes\n            // that \"function\" starts a statement.\n            // Fixing it in the tokenizer would mean tracking not only the\n            // previous token (\"async\"), but also the one before to know\n            // its beforeExpr value.\n            // It's easier and more efficient to adjust the context here.\n            throw new Error(\"Internal error\");\n          }\n          this.state.context[last] = ct.functionExpression;\n\n          this.next();\n          return this.parseFunction(node, undefined, true);\n        } else if (\n          canBeArrow &&\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt.name) &&\n          !this.canInsertSemicolon()\n        ) {\n          const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n          const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n          const oldYieldPos = this.state.yieldPos;\n          const oldAwaitPos = this.state.awaitPos;\n          this.state.maybeInArrowParameters = true;\n          this.state.maybeInAsyncArrowHead = true;\n          this.state.yieldPos = -1;\n          this.state.awaitPos = -1;\n          const params = [this.parseIdentifier()];\n          this.expect(tt.arrow);\n          this.checkYieldAwaitInDefaultParams();\n          this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n          this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n          this.state.yieldPos = oldYieldPos;\n          this.state.awaitPos = oldAwaitPos;\n          // let foo = async bar => {};\n          this.parseArrowExpression(node, params, true);\n          return node;\n        }\n\n        if (canBeArrow && this.match(tt.arrow) && !this.canInsertSemicolon()) {\n          this.next();\n          this.parseArrowExpression(node, [id], false);\n          return node;\n        }\n\n        return id;\n      }\n\n      case tt._do: {\n        this.expectPlugin(\"doExpressions\");\n        const node = this.startNode();\n        this.next();\n        const oldLabels = this.state.labels;\n        this.state.labels = [];\n        node.body = this.parseBlock();\n        this.state.labels = oldLabels;\n        return this.finishNode(node, \"DoExpression\");\n      }\n\n      case tt.regexp: {\n        const value = this.state.value;\n        node = this.parseLiteral(value.value, \"RegExpLiteral\");\n        node.pattern = value.pattern;\n        node.flags = value.flags;\n        return node;\n      }\n\n      case tt.num:\n        return this.parseLiteral(this.state.value, \"NumericLiteral\");\n\n      case tt.bigint:\n        return this.parseLiteral(this.state.value, \"BigIntLiteral\");\n\n      case tt.string:\n        return this.parseLiteral(this.state.value, \"StringLiteral\");\n\n      case tt._null:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"NullLiteral\");\n\n      case tt._true:\n      case tt._false:\n        return this.parseBooleanLiteral();\n\n      case tt.parenL:\n        return this.parseParenAndDistinguishExpression(canBeArrow);\n\n      case tt.bracketBarL:\n      case tt.bracketHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          close,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"TupleExpression\");\n      }\n      case tt.bracketL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          tt.bracketR,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        if (!this.state.maybeInArrowParameters) {\n          // This could be an array pattern:\n          //   ([a: string, b: string]) => {}\n          // In this case, we don't have to call toReferencedList. We will\n          // call it, if needed, when we are sure that it is a parenthesized\n          // expression by calling toReferencedListDeep.\n          this.toReferencedList(node.elements);\n        }\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"ArrayExpression\");\n      }\n      case tt.braceBarL:\n      case tt.braceHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(close, false, true, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt.braceL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(tt.braceR, false, false, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt._function:\n        return this.parseFunctionExpression();\n\n      case tt.at:\n        this.parseDecorators();\n      // fall through\n      case tt._class:\n        node = this.startNode();\n        this.takeDecorators(node);\n        return this.parseClass(node, false);\n\n      case tt._new:\n        return this.parseNew();\n\n      case tt.backQuote:\n        return this.parseTemplate(false);\n\n      case tt.doubleColon: {\n        node = this.startNode();\n        this.next();\n        node.object = null;\n        const callee = (node.callee = this.parseNoCallExpr());\n        if (callee.type === \"MemberExpression\") {\n          return this.finishNode(node, \"BindExpression\");\n        } else {\n          throw this.raise(callee.start, Errors.UnsupportedBind);\n        }\n      }\n\n      case tt.hash: {\n        if (this.state.inPipeline) {\n          node = this.startNode();\n\n          if (\n            this.getPluginOption(\"pipelineOperator\", \"proposal\") !== \"smart\"\n          ) {\n            this.raise(node.start, Errors.PrimaryTopicRequiresSmartPipeline);\n          }\n\n          this.next();\n\n          if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) {\n            this.raise(node.start, Errors.PrimaryTopicNotAllowed);\n          }\n\n          this.registerTopicReference();\n          return this.finishNode(node, \"PipelinePrimaryTopicReference\");\n        }\n      }\n      // fall through\n      default:\n        throw this.unexpected();\n    }\n  }\n\n  parseBooleanLiteral(): N.BooleanLiteral {\n    const node = this.startNode();\n    node.value = this.match(tt._true);\n    this.next();\n    return this.finishNode(node, \"BooleanLiteral\");\n  }\n\n  parseMaybePrivateName(\n    isPrivateNameAllowed: boolean,\n  ): N.PrivateName | N.Identifier {\n    const isPrivate = this.match(tt.hash);\n\n    if (isPrivate) {\n      this.expectOnePlugin([\"classPrivateProperties\", \"classPrivateMethods\"]);\n      if (!isPrivateNameAllowed) {\n        this.raise(this.state.pos, Errors.UnexpectedPrivateField);\n      }\n      const node = this.startNode();\n      this.next();\n      this.assertNoSpace(\"Unexpected space between # and identifier\");\n      node.id = this.parseIdentifier(true);\n      return this.finishNode(node, \"PrivateName\");\n    } else {\n      return this.parseIdentifier(true);\n    }\n  }\n\n  parseFunctionExpression(): N.FunctionExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    // We do not do parseIdentifier here because when parseFunctionExpression\n    // is called we already know that the current token is a \"name\" with the value \"function\"\n    // This will improve perf a tiny little bit as we do not do validation but more importantly\n    // here is that parseIdentifier will remove an item from the expression stack\n    // if \"function\" or \"class\" is parsed as identifier (in objects e.g.), which should not happen here.\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"function\");\n\n    if (this.prodParam.hasYield && this.eat(tt.dot)) {\n      return this.parseMetaProperty(node, meta, \"sent\");\n    }\n    return this.parseFunction(node);\n  }\n\n  parseMetaProperty(\n    node: N.MetaProperty,\n    meta: N.Identifier,\n    propertyName: string,\n  ): N.MetaProperty {\n    node.meta = meta;\n\n    if (meta.name === \"function\" && propertyName === \"sent\") {\n      if (this.isContextual(propertyName)) {\n        this.expectPlugin(\"functionSent\");\n      } else if (!this.hasPlugin(\"functionSent\")) {\n        // The code wasn't `function.sent` but just `function.`, so a simple error is less confusing.\n        this.unexpected();\n      }\n    }\n\n    const containsEsc = this.state.containsEsc;\n\n    node.property = this.parseIdentifier(true);\n\n    if (node.property.name !== propertyName || containsEsc) {\n      this.raise(\n        node.property.start,\n        Errors.UnsupportedMetaProperty,\n        meta.name,\n        propertyName,\n      );\n    }\n\n    return this.finishNode(node, \"MetaProperty\");\n  }\n\n  parseImportMetaProperty(node: N.MetaProperty): N.MetaProperty {\n    const id = this.createIdentifier(this.startNodeAtNode(node), \"import\");\n    this.expect(tt.dot);\n\n    if (this.isContextual(\"meta\")) {\n      this.expectPlugin(\"importMeta\");\n\n      if (!this.inModule) {\n        this.raiseWithData(\n          id.start,\n          { code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\" },\n          Errors.ImportMetaOutsideModule,\n        );\n      }\n      this.sawUnambiguousESM = true;\n    } else if (!this.hasPlugin(\"importMeta\")) {\n      this.raise(id.start, Errors.ImportCallArityLtOne);\n    }\n\n    return this.parseMetaProperty(node, id, \"meta\");\n  }\n\n  parseLiteral<T: N.Literal>(\n    value: any,\n    type: /*T[\"kind\"]*/ string,\n    startPos?: number,\n    startLoc?: Position,\n  ): T {\n    startPos = startPos || this.state.start;\n    startLoc = startLoc || this.state.startLoc;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    this.addExtra(node, \"rawValue\", value);\n    this.addExtra(node, \"raw\", this.input.slice(startPos, this.state.end));\n    node.value = value;\n    this.next();\n    return this.finishNode(node, type);\n  }\n\n  parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    let val;\n    this.expect(tt.parenL);\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.maybeInArrowParameters = true;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    const innerStartPos = this.state.start;\n    const innerStartLoc = this.state.startLoc;\n    const exprList = [];\n    const refExpressionErrors = new ExpressionErrors();\n    const refNeedsArrowPos = { start: 0 };\n    let first = true;\n    let spreadStart;\n    let optionalCommaStart;\n\n    while (!this.match(tt.parenR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma, refNeedsArrowPos.start || null);\n        if (this.match(tt.parenR)) {\n          optionalCommaStart = this.state.start;\n          break;\n        }\n      }\n\n      if (this.match(tt.ellipsis)) {\n        const spreadNodeStartPos = this.state.start;\n        const spreadNodeStartLoc = this.state.startLoc;\n        spreadStart = this.state.start;\n        exprList.push(\n          this.parseParenItem(\n            this.parseRestBinding(),\n            spreadNodeStartPos,\n            spreadNodeStartLoc,\n          ),\n        );\n\n        this.checkCommaAfterRest(charCodes.rightParenthesis);\n\n        break;\n      } else {\n        exprList.push(\n          this.parseMaybeAssign(\n            false,\n            refExpressionErrors,\n            this.parseParenItem,\n            refNeedsArrowPos,\n          ),\n        );\n      }\n    }\n\n    const innerEndPos = this.state.start;\n    const innerEndLoc = this.state.startLoc;\n    this.expect(tt.parenR);\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    let arrowNode = this.startNodeAt(startPos, startLoc);\n    if (\n      canBeArrow &&\n      this.shouldParseArrow() &&\n      (arrowNode = this.parseArrow(arrowNode))\n    ) {\n      if (!this.isAwaitAllowed() && !this.state.maybeInAsyncArrowHead) {\n        this.state.awaitPos = oldAwaitPos;\n      }\n      this.checkYieldAwaitInDefaultParams();\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n      for (const param of exprList) {\n        if (param.extra && param.extra.parenthesized) {\n          this.unexpected(param.extra.parenStart);\n        }\n      }\n\n      this.parseArrowExpression(arrowNode, exprList, false);\n      return arrowNode;\n    }\n\n    // We keep the old value if it isn't null, for cases like\n    //   (x = (yield)) => {}\n    if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n    if (oldAwaitPos !== -1) this.state.awaitPos = oldAwaitPos;\n\n    if (!exprList.length) {\n      this.unexpected(this.state.lastTokStart);\n    }\n    if (optionalCommaStart) this.unexpected(optionalCommaStart);\n    if (spreadStart) this.unexpected(spreadStart);\n    this.checkExpressionErrors(refExpressionErrors, true);\n    if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start);\n\n    this.toReferencedListDeep(exprList, /* isParenthesizedExpr */ true);\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc);\n      val.expressions = exprList;\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n    } else {\n      val = exprList[0];\n    }\n\n    if (!this.options.createParenthesizedExpressions) {\n      this.addExtra(val, \"parenthesized\", true);\n      this.addExtra(val, \"parenStart\", startPos);\n      return val;\n    }\n\n    const parenExpression = this.startNodeAt(startPos, startLoc);\n    parenExpression.expression = val;\n    this.finishNode(parenExpression, \"ParenthesizedExpression\");\n    return parenExpression;\n  }\n\n  shouldParseArrow(): boolean {\n    return !this.canInsertSemicolon();\n  }\n\n  parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n    if (this.eat(tt.arrow)) {\n      return node;\n    }\n  }\n\n  parseParenItem(\n    node: N.Expression,\n    startPos: number, // eslint-disable-line no-unused-vars\n    startLoc: Position, // eslint-disable-line no-unused-vars\n  ): N.Expression {\n    return node;\n  }\n\n  // New's precedence is slightly tricky. It must allow its argument to\n  // be a `[]` or dot subscript expression, but not a call — at least,\n  // not without wrapping it in parentheses. Thus, it uses the noCalls\n  // argument to parseSubscripts to prevent it from consuming the\n  // argument list.\n\n  parseNew(): N.NewExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"new\");\n\n    if (this.eat(tt.dot)) {\n      const metaProp = this.parseMetaProperty(node, meta, \"target\");\n\n      if (!this.scope.inNonArrowFunction && !this.scope.inClass) {\n        let error = Errors.UnexpectedNewTarget;\n\n        if (this.hasPlugin(\"classProperties\")) {\n          error += \" or class properties\";\n        }\n\n        this.raise(metaProp.start, error);\n      }\n\n      return metaProp;\n    }\n\n    node.callee = this.parseNoCallExpr();\n\n    if (node.callee.type === \"Import\") {\n      this.raise(node.callee.start, Errors.ImportCallNotNewExpression);\n    } else if (\n      node.callee.type === \"OptionalMemberExpression\" ||\n      node.callee.type === \"OptionalCallExpression\"\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.OptionalChainingNoNew);\n    } else if (this.eat(tt.questionDot)) {\n      this.raise(this.state.start, Errors.OptionalChainingNoNew);\n    }\n\n    this.parseNewArguments(node);\n    return this.finishNode(node, \"NewExpression\");\n  }\n\n  parseNewArguments(node: N.NewExpression): void {\n    if (this.eat(tt.parenL)) {\n      const args = this.parseExprList(tt.parenR);\n      this.toReferencedList(args);\n      // $FlowFixMe (parseExprList should be all non-null in this case)\n      node.arguments = args;\n    } else {\n      node.arguments = [];\n    }\n  }\n\n  // Parse template expression.\n\n  parseTemplateElement(isTagged: boolean): N.TemplateElement {\n    const elem = this.startNode();\n    if (this.state.value === null) {\n      if (!isTagged) {\n        this.raise(this.state.start + 1, Errors.InvalidEscapeSequenceTemplate);\n      }\n    }\n    elem.value = {\n      raw: this.input\n        .slice(this.state.start, this.state.end)\n        .replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.state.value,\n    };\n    this.next();\n    elem.tail = this.match(tt.backQuote);\n    return this.finishNode(elem, \"TemplateElement\");\n  }\n\n  parseTemplate(isTagged: boolean): N.TemplateLiteral {\n    const node = this.startNode();\n    this.next();\n    node.expressions = [];\n    let curElt = this.parseTemplateElement(isTagged);\n    node.quasis = [curElt];\n    while (!curElt.tail) {\n      this.expect(tt.dollarBraceL);\n      node.expressions.push(this.parseExpression());\n      this.expect(tt.braceR);\n      node.quasis.push((curElt = this.parseTemplateElement(isTagged)));\n    }\n    this.next();\n    return this.finishNode(node, \"TemplateLiteral\");\n  }\n\n  // Parse an object literal, binding pattern, or record.\n\n  parseObj<T: N.ObjectPattern | N.ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): T {\n    const propHash: any = Object.create(null);\n    let first = true;\n    const node = this.startNode();\n\n    node.properties = [];\n    this.next();\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          this.addExtra(node, \"trailingComma\", this.state.lastTokStart);\n          this.next();\n          break;\n        }\n      }\n\n      const prop = this.parseObjectMember(isPattern, refExpressionErrors);\n      if (!isPattern) {\n        // $FlowIgnore RestElement will never be returned if !isPattern\n        this.checkDuplicatedProto(prop, propHash, refExpressionErrors);\n      }\n\n      // $FlowIgnore\n      if (prop.shorthand) {\n        this.addExtra(prop, \"shorthand\", true);\n      }\n\n      node.properties.push(prop);\n    }\n\n    let type = \"ObjectExpression\";\n    if (isPattern) {\n      type = \"ObjectPattern\";\n    } else if (isRecord) {\n      type = \"RecordExpression\";\n    }\n    return this.finishNode(node, type);\n  }\n\n  isAsyncProp(prop: N.ObjectProperty): boolean {\n    return (\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      prop.key.name === \"async\" &&\n      (this.match(tt.name) ||\n        this.match(tt.num) ||\n        this.match(tt.string) ||\n        this.match(tt.bracketL) ||\n        this.state.type.keyword ||\n        this.match(tt.star)) &&\n      !this.hasPrecedingLineBreak()\n    );\n  }\n\n  parseObjectMember(\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): N.ObjectMember | N.SpreadElement | N.RestElement {\n    let decorators = [];\n    if (this.match(tt.at)) {\n      if (this.hasPlugin(\"decorators\")) {\n        this.raise(this.state.start, Errors.UnsupportedPropertyDecorator);\n      }\n\n      // we needn't check if decorators (stage 0) plugin is enabled since it's checked by\n      // the call to this.parseDecorator\n      while (this.match(tt.at)) {\n        decorators.push(this.parseDecorator());\n      }\n    }\n\n    const prop = this.startNode();\n    let isGenerator = false;\n    let isAsync = false;\n    let startPos;\n    let startLoc;\n\n    if (this.match(tt.ellipsis)) {\n      if (decorators.length) this.unexpected();\n      if (isPattern) {\n        this.next();\n        // Don't use parseRestBinding() as we only allow Identifier here.\n        prop.argument = this.parseIdentifier();\n        this.checkCommaAfterRest(charCodes.rightCurlyBrace);\n        return this.finishNode(prop, \"RestElement\");\n      }\n\n      return this.parseSpread();\n    }\n\n    if (decorators.length) {\n      prop.decorators = decorators;\n      decorators = [];\n    }\n\n    prop.method = false;\n\n    if (isPattern || refExpressionErrors) {\n      startPos = this.state.start;\n      startLoc = this.state.startLoc;\n    }\n\n    if (!isPattern) {\n      isGenerator = this.eat(tt.star);\n    }\n\n    const containsEsc = this.state.containsEsc;\n    this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n\n    if (!isPattern && !containsEsc && !isGenerator && this.isAsyncProp(prop)) {\n      isAsync = true;\n      isGenerator = this.eat(tt.star);\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n    } else {\n      isAsync = false;\n    }\n\n    this.parseObjPropValue(\n      prop,\n      startPos,\n      startLoc,\n      isGenerator,\n      isAsync,\n      isPattern,\n      refExpressionErrors,\n      containsEsc,\n    );\n\n    return prop;\n  }\n\n  isGetterOrSetterMethod(prop: N.ObjectMethod, isPattern: boolean): boolean {\n    return (\n      !isPattern &&\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n      (this.match(tt.string) || // get \"string\"() {}\n      this.match(tt.num) || // get 1() {}\n      this.match(tt.bracketL) || // get [\"string\"]() {}\n      this.match(tt.name) || // get foo() {}\n        !!this.state.type.keyword) // get debugger() {}\n    );\n  }\n\n  getGetterSetterExpectedParamCount(\n    method: N.ObjectMethod | N.ClassMethod,\n  ): number {\n    return method.kind === \"get\" ? 0 : 1;\n  }\n\n  // get methods aren't allowed to have any parameters\n  // set methods must have exactly 1 parameter which is not a rest parameter\n  checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n    const paramCount = this.getGetterSetterExpectedParamCount(method);\n    const start = method.start;\n    if (method.params.length !== paramCount) {\n      if (method.kind === \"get\") {\n        this.raise(start, Errors.BadGetterArity);\n      } else {\n        this.raise(start, Errors.BadSetterArity);\n      }\n    }\n\n    if (\n      method.kind === \"set\" &&\n      method.params[method.params.length - 1].type === \"RestElement\"\n    ) {\n      this.raise(start, Errors.BadSetterRestParameter);\n    }\n  }\n\n  parseObjectMethod(\n    prop: N.ObjectMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    containsEsc: boolean,\n  ): ?N.ObjectMethod {\n    if (isAsync || isGenerator || this.match(tt.parenL)) {\n      if (isPattern) this.unexpected();\n      prop.kind = \"method\";\n      prop.method = true;\n      return this.parseMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n    }\n\n    if (!containsEsc && this.isGetterOrSetterMethod(prop, isPattern)) {\n      if (isGenerator || isAsync) this.unexpected();\n      prop.kind = prop.key.name;\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n      this.parseMethod(\n        prop,\n        /* isGenerator */ false,\n        /* isAsync */ false,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n      this.checkGetterSetterParams(prop);\n      return prop;\n    }\n  }\n\n  parseObjectProperty(\n    prop: N.ObjectProperty,\n    startPos: ?number,\n    startLoc: ?Position,\n    isPattern: boolean,\n    refExpressionErrors: ?ExpressionErrors,\n  ): ?N.ObjectProperty {\n    prop.shorthand = false;\n\n    if (this.eat(tt.colon)) {\n      prop.value = isPattern\n        ? this.parseMaybeDefault(this.state.start, this.state.startLoc)\n        : this.parseMaybeAssign(false, refExpressionErrors);\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n\n    if (!prop.computed && prop.key.type === \"Identifier\") {\n      this.checkReservedWord(prop.key.name, prop.key.start, true, true);\n\n      if (isPattern) {\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else if (this.match(tt.eq) && refExpressionErrors) {\n        if (refExpressionErrors.shorthandAssign === -1) {\n          refExpressionErrors.shorthandAssign = this.state.start;\n        }\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else {\n        prop.value = prop.key.__clone();\n      }\n      prop.shorthand = true;\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n  }\n\n  parseObjPropValue(\n    prop: any,\n    startPos: ?number,\n    startLoc: ?Position,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    containsEsc: boolean,\n  ): void {\n    const node =\n      this.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ) ||\n      this.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      );\n\n    if (!node) this.unexpected();\n\n    // $FlowFixMe\n    return node;\n  }\n\n  parsePropertyName(\n    prop: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n    isPrivateNameAllowed: boolean,\n  ): N.Expression | N.Identifier {\n    if (this.eat(tt.bracketL)) {\n      (prop: $FlowSubtype<N.ObjectOrClassMember>).computed = true;\n      prop.key = this.parseMaybeAssign();\n      this.expect(tt.bracketR);\n    } else {\n      const oldInPropertyName = this.state.inPropertyName;\n      this.state.inPropertyName = true;\n      // We check if it's valid for it to be a private name when we push it.\n      (prop: $FlowFixMe).key =\n        this.match(tt.num) || this.match(tt.string) || this.match(tt.bigint)\n          ? this.parseExprAtom()\n          : this.parseMaybePrivateName(isPrivateNameAllowed);\n\n      if (prop.key.type !== \"PrivateName\") {\n        // ClassPrivateProperty is never computed, so we don't assign in that case.\n        prop.computed = false;\n      }\n\n      this.state.inPropertyName = oldInPropertyName;\n    }\n\n    return prop.key;\n  }\n\n  // Initialize empty function node.\n\n  initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: ?boolean): void {\n    node.id = null;\n    node.generator = false;\n    node.async = !!isAsync;\n  }\n\n  // Parse object or class method.\n\n  parseMethod<T: N.MethodLike>(\n    node: T,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowDirectSuper: boolean,\n    type: string,\n    inClassScope: boolean = false,\n  ): T {\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n\n    this.initFunction(node, isAsync);\n    node.generator = !!isGenerator;\n    const allowModifiers = isConstructor; // For TypeScript parameter properties\n    this.scope.enter(\n      SCOPE_FUNCTION |\n        SCOPE_SUPER |\n        (inClassScope ? SCOPE_CLASS : 0) |\n        (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0),\n    );\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n    this.parseFunctionParams((node: any), allowModifiers);\n    this.parseFunctionBodyAndFinish(node, type, true);\n    this.prodParam.exit();\n    this.scope.exit();\n\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  // Parse arrow function expression.\n  // If the parameters are provided, they will be converted to an\n  // assignable list.\n  parseArrowExpression(\n    node: N.ArrowFunctionExpression,\n    params: ?(N.Expression[]),\n    isAsync: boolean,\n    trailingCommaPos: ?number,\n  ): N.ArrowFunctionExpression {\n    this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n    this.prodParam.enter(functionFlags(isAsync, false));\n    this.initFunction(node, isAsync);\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n\n    if (params) {\n      this.state.maybeInArrowParameters = true;\n      this.setArrowFunctionParameters(node, params, trailingCommaPos);\n    }\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.parseFunctionBody(node, true);\n\n    this.prodParam.exit();\n    this.scope.exit();\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return this.finishNode(node, \"ArrowFunctionExpression\");\n  }\n\n  setArrowFunctionParameters(\n    node: N.ArrowFunctionExpression,\n    params: N.Expression[],\n    trailingCommaPos: ?number,\n  ): void {\n    node.params = this.toAssignableList(params, trailingCommaPos);\n  }\n\n  parseFunctionBodyAndFinish(\n    node: N.BodilessFunctionOrMethodBase,\n    type: string,\n    isMethod?: boolean = false,\n  ): void {\n    // $FlowIgnore (node is not bodiless if we get here)\n    this.parseFunctionBody(node, false, isMethod);\n    this.finishNode(node, type);\n  }\n\n  // Parse function body and check parameters.\n  parseFunctionBody(\n    node: N.Function,\n    allowExpression: ?boolean,\n    isMethod?: boolean = false,\n  ): void {\n    const isExpression = allowExpression && !this.match(tt.braceL);\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = false;\n\n    if (isExpression) {\n      node.body = this.parseMaybeAssign();\n      this.checkParams(node, false, allowExpression, false);\n    } else {\n      const oldStrict = this.state.strict;\n      // Start a new scope with regard to labels\n      // flag (restore them to their old value afterwards).\n      const oldLabels = this.state.labels;\n      this.state.labels = [];\n\n      // FunctionBody[Yield, Await]:\n      //   StatementList[?Yield, ?Await, +Return] opt\n      this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN);\n      node.body = this.parseBlock(\n        true,\n        false,\n        // Strict mode function checks after we parse the statements in the function body.\n        (hasStrictModeDirective: boolean) => {\n          const nonSimple = !this.isSimpleParamList(node.params);\n\n          if (hasStrictModeDirective && nonSimple) {\n            // This logic is here to align the error location with the ESTree plugin.\n            const errorPos =\n              // $FlowIgnore\n              (node.kind === \"method\" || node.kind === \"constructor\") &&\n              // $FlowIgnore\n              !!node.key\n                ? node.key.end\n                : node.start;\n            this.raise(errorPos, Errors.IllegalLanguageModeDirective);\n          }\n\n          const strictModeChanged = !oldStrict && this.state.strict;\n\n          // Add the params to varDeclaredNames to ensure that an error is thrown\n          // if a let/const declaration in the function clashes with one of the params.\n          this.checkParams(\n            node,\n            !this.state.strict && !allowExpression && !isMethod && !nonSimple,\n            allowExpression,\n            strictModeChanged,\n          );\n\n          // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n          if (this.state.strict && node.id) {\n            this.checkLVal(\n              node.id,\n              BIND_OUTSIDE,\n              undefined,\n              \"function name\",\n              undefined,\n              strictModeChanged,\n            );\n          }\n        },\n      );\n      this.prodParam.exit();\n      this.state.labels = oldLabels;\n    }\n\n    this.state.inParameters = oldInParameters;\n  }\n\n  isSimpleParamList(\n    params: $ReadOnlyArray<N.Pattern | N.TSParameterProperty>,\n  ): boolean {\n    for (let i = 0, len = params.length; i < len; i++) {\n      if (params[i].type !== \"Identifier\") return false;\n    }\n    return true;\n  }\n\n  checkParams(\n    node: N.Function,\n    allowDuplicates: boolean,\n    // eslint-disable-next-line no-unused-vars\n    isArrowFunction: ?boolean,\n    strictModeChanged?: boolean = true,\n  ): void {\n    // $FlowIssue\n    const nameHash: {} = Object.create(null);\n    for (let i = 0; i < node.params.length; i++) {\n      this.checkLVal(\n        node.params[i],\n        BIND_VAR,\n        allowDuplicates ? null : nameHash,\n        \"function parameter list\",\n        undefined,\n        strictModeChanged,\n      );\n    }\n  }\n\n  // Parses a comma-separated list of expressions, and returns them as\n  // an array. `close` is the token type that ends the list, and\n  // `allowEmpty` can be turned on to allow subsequent commas with\n  // nothing in between them to be parsed as `null` (which is needed\n  // for array literals).\n\n  parseExprList(\n    close: TokenType,\n    allowEmpty?: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let first = true;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n    }\n    return elts;\n  }\n\n  parseExprListItem(\n    allowEmpty: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    refNeedsArrowPos: ?Pos,\n    allowPlaceholder: ?boolean,\n  ): ?N.Expression {\n    let elt;\n    if (allowEmpty && this.match(tt.comma)) {\n      elt = null;\n    } else if (this.match(tt.ellipsis)) {\n      const spreadNodeStartPos = this.state.start;\n      const spreadNodeStartLoc = this.state.startLoc;\n      elt = this.parseParenItem(\n        this.parseSpread(refExpressionErrors, refNeedsArrowPos),\n        spreadNodeStartPos,\n        spreadNodeStartLoc,\n      );\n    } else if (this.match(tt.question)) {\n      this.expectPlugin(\"partialApplication\");\n      if (!allowPlaceholder) {\n        this.raise(this.state.start, Errors.UnexpectedArgumentPlaceholder);\n      }\n      const node = this.startNode();\n      this.next();\n      elt = this.finishNode(node, \"ArgumentPlaceholder\");\n    } else {\n      elt = this.parseMaybeAssign(\n        false,\n        refExpressionErrors,\n        this.parseParenItem,\n        refNeedsArrowPos,\n      );\n    }\n    return elt;\n  }\n\n  // Parse the next token as an identifier. If `liberal` is true (used\n  // when parsing properties), it will also convert keywords into\n  // identifiers.\n  // This shouldn't be used to parse the keywords of meta properties, since they\n  // are not identifiers and cannot contain escape sequences.\n\n  parseIdentifier(liberal?: boolean): N.Identifier {\n    const node = this.startNode();\n    const name = this.parseIdentifierName(node.start, liberal);\n\n    return this.createIdentifier(node, name);\n  }\n\n  createIdentifier(node: N.Identifier, name: string): N.Identifier {\n    node.name = name;\n    node.loc.identifierName = name;\n\n    return this.finishNode(node, \"Identifier\");\n  }\n\n  parseIdentifierName(pos: number, liberal?: boolean): string {\n    let name: string;\n\n    if (this.match(tt.name)) {\n      name = this.state.value;\n    } else if (this.state.type.keyword) {\n      name = this.state.type.keyword;\n\n      // `class` and `function` keywords push new context into this.context.\n      // But there is no chance to pop the context if the keyword is consumed\n      // as an identifier such as a property name.\n      // If the previous token is a dot, this does not apply because the\n      // context-managing code already ignored the keyword\n      if (\n        (name === \"class\" || name === \"function\") &&\n        (this.state.lastTokEnd !== this.state.lastTokStart + 1 ||\n          this.input.charCodeAt(this.state.lastTokStart) !== charCodes.dot)\n      ) {\n        this.state.context.pop();\n      }\n    } else {\n      throw this.unexpected();\n    }\n\n    if (liberal) {\n      // If the current token is not used as a keyword, set its type to \"tt.name\".\n      // This will prevent this.next() from throwing about unexpected escapes.\n      this.state.type = tt.name;\n    } else {\n      this.checkReservedWord(\n        name,\n        this.state.start,\n        !!this.state.type.keyword,\n        false,\n      );\n    }\n\n    this.next();\n\n    return name;\n  }\n\n  checkReservedWord(\n    word: string,\n    startLoc: number,\n    checkKeywords: boolean,\n    isBinding: boolean,\n  ): void {\n    if (this.prodParam.hasYield && word === \"yield\") {\n      this.raise(startLoc, Errors.YieldBindingIdentifier);\n      return;\n    }\n\n    if (word === \"await\") {\n      if (this.prodParam.hasAwait) {\n        this.raise(startLoc, Errors.AwaitBindingIdentifier);\n        return;\n      }\n      if (\n        this.state.awaitPos === -1 &&\n        (this.state.maybeInAsyncArrowHead || this.isAwaitAllowed())\n      ) {\n        this.state.awaitPos = this.state.start;\n      }\n    }\n\n    if (\n      this.scope.inClass &&\n      !this.scope.inNonArrowFunction &&\n      word === \"arguments\"\n    ) {\n      this.raise(startLoc, Errors.ArgumentsDisallowedInInitializer);\n      return;\n    }\n    if (checkKeywords && isKeyword(word)) {\n      this.raise(startLoc, Errors.UnexpectedKeyword, word);\n      return;\n    }\n\n    const reservedTest = !this.state.strict\n      ? isReservedWord\n      : isBinding\n      ? isStrictBindReservedWord\n      : isStrictReservedWord;\n\n    if (reservedTest(word, this.inModule)) {\n      if (!this.prodParam.hasAwait && word === \"await\") {\n        this.raise(startLoc, Errors.AwaitNotInAsyncFunction);\n      } else {\n        this.raise(startLoc, Errors.UnexpectedReservedWord, word);\n      }\n    }\n  }\n\n  isAwaitAllowed(): boolean {\n    if (this.scope.inFunction) return this.prodParam.hasAwait;\n    if (this.options.allowAwaitOutsideFunction) return true;\n    if (this.hasPlugin(\"topLevelAwait\")) {\n      return this.inModule && this.prodParam.hasAwait;\n    }\n    return false;\n  }\n\n  // Parses await expression inside async function.\n\n  parseAwait(): N.AwaitExpression {\n    const node = this.startNode();\n\n    this.next();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.AwaitExpressionFormalParameter);\n    } else if (this.state.awaitPos === -1) {\n      this.state.awaitPos = node.start;\n    }\n    if (this.eat(tt.star)) {\n      this.raise(node.start, Errors.ObsoleteAwaitStar);\n    }\n\n    if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n      if (\n        this.hasPrecedingLineBreak() ||\n        // All the following expressions are ambiguous:\n        //   await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``\n        this.match(tt.plusMin) ||\n        this.match(tt.parenL) ||\n        this.match(tt.bracketL) ||\n        this.match(tt.backQuote) ||\n        // Sometimes the tokenizer generates tt.slash for regexps, and this is\n        // handler by parseExprAtom\n        this.match(tt.regexp) ||\n        this.match(tt.slash) ||\n        // This code could be parsed both as a modulo operator or as an intrinsic:\n        //   await %x(0)\n        (this.hasPlugin(\"v8intrinsic\") && this.match(tt.modulo))\n      ) {\n        this.ambiguousScriptDifferentAst = true;\n      } else {\n        this.sawUnambiguousESM = true;\n      }\n    }\n\n    if (!this.state.soloAwait) {\n      node.argument = this.parseMaybeUnary();\n    }\n\n    return this.finishNode(node, \"AwaitExpression\");\n  }\n\n  // Parses yield expression inside generator.\n\n  parseYield(noIn?: ?boolean): N.YieldExpression {\n    const node = this.startNode();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.YieldInParameter);\n    } else if (this.state.yieldPos === -1) {\n      this.state.yieldPos = node.start;\n    }\n\n    this.next();\n    if (\n      this.match(tt.semi) ||\n      (!this.match(tt.star) && !this.state.type.startsExpr) ||\n      this.hasPrecedingLineBreak()\n    ) {\n      node.delegate = false;\n      node.argument = null;\n    } else {\n      node.delegate = this.eat(tt.star);\n      node.argument = this.parseMaybeAssign(noIn);\n    }\n    return this.finishNode(node, \"YieldExpression\");\n  }\n\n  // Validates a pipeline (for any of the pipeline Babylon plugins) at the point\n  // of the infix operator `|>`.\n\n  checkPipelineAtInfixOperator(left: N.Expression, leftStartPos: number) {\n    if (this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\") {\n      if (left.type === \"SequenceExpression\") {\n        // Ensure that the pipeline head is not a comma-delimited\n        // sequence expression.\n        this.raise(leftStartPos, Errors.PipelineHeadSequenceExpression);\n      }\n    }\n  }\n\n  parseSmartPipelineBody(\n    childExpression: N.Expression,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const pipelineStyle = this.checkSmartPipelineBodyStyle(childExpression);\n\n    this.checkSmartPipelineBodyEarlyErrors(\n      childExpression,\n      pipelineStyle,\n      startPos,\n    );\n\n    return this.parseSmartPipelineBodyInStyle(\n      childExpression,\n      pipelineStyle,\n      startPos,\n      startLoc,\n    );\n  }\n\n  checkSmartPipelineBodyEarlyErrors(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n  ): void {\n    if (this.match(tt.arrow)) {\n      // If the following token is invalidly `=>`, then throw a human-friendly error\n      // instead of something like 'Unexpected token, expected \";\"'.\n      throw this.raise(this.state.start, Errors.PipelineBodyNoArrow);\n    } else if (\n      pipelineStyle === \"PipelineTopicExpression\" &&\n      childExpression.type === \"SequenceExpression\"\n    ) {\n      this.raise(startPos, Errors.PipelineBodySequenceExpression);\n    }\n  }\n\n  parseSmartPipelineBodyInStyle(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const bodyNode = this.startNodeAt(startPos, startLoc);\n    switch (pipelineStyle) {\n      case \"PipelineBareFunction\":\n        bodyNode.callee = childExpression;\n        break;\n      case \"PipelineBareConstructor\":\n        bodyNode.callee = childExpression.callee;\n        break;\n      case \"PipelineBareAwaitedFunction\":\n        bodyNode.callee = childExpression.argument;\n        break;\n      case \"PipelineTopicExpression\":\n        if (!this.topicReferenceWasUsedInCurrentTopicContext()) {\n          this.raise(startPos, Errors.PipelineTopicUnused);\n        }\n        bodyNode.expression = childExpression;\n        break;\n      default:\n        throw new Error(\n          `Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`,\n        );\n    }\n    return this.finishNode(bodyNode, pipelineStyle);\n  }\n\n  checkSmartPipelineBodyStyle(expression: N.Expression): N.PipelineStyle {\n    switch (expression.type) {\n      default:\n        return this.isSimpleReference(expression)\n          ? \"PipelineBareFunction\"\n          : \"PipelineTopicExpression\";\n    }\n  }\n\n  isSimpleReference(expression: N.Expression): boolean {\n    switch (expression.type) {\n      case \"MemberExpression\":\n        return (\n          !expression.computed && this.isSimpleReference(expression.object)\n        );\n      case \"Identifier\":\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  // Enable topic references from outer contexts within smart pipeline bodies.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicPermittingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Enable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 1,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  // Disable topic references from outer contexts within syntax constructs\n  // such as the bodies of iteration statements.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicForbiddingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Disable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 0,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  withSoloAwaitPermittingContext<T>(callback: () => T): T {\n    const outerContextSoloAwaitState = this.state.soloAwait;\n    this.state.soloAwait = true;\n\n    try {\n      return callback();\n    } finally {\n      this.state.soloAwait = outerContextSoloAwaitState;\n    }\n  }\n\n  // Register the use of a primary topic reference (`#`) within the current\n  // topic context.\n  registerTopicReference(): void {\n    this.state.topicContext.maxTopicIndex = 0;\n  }\n\n  primaryTopicReferenceIsAllowedInCurrentTopicContext(): boolean {\n    return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n  }\n\n  topicReferenceWasUsedInCurrentTopicContext(): boolean {\n    return (\n      this.state.topicContext.maxTopicIndex != null &&\n      this.state.topicContext.maxTopicIndex >= 0\n    );\n  }\n\n  parseFSharpPipelineBody(prec: number, noIn: ?boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    this.state.potentialArrowAt = this.state.start;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = true;\n\n    const ret = this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      prec,\n      noIn,\n    );\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return ret;\n  }\n}\n","// @flow\n\nimport * as N from \"../types\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport ExpressionParser from \"./expression\";\nimport { Errors } from \"./location\";\nimport {\n  isIdentifierChar,\n  isIdentifierStart,\n  keywordRelationalOperator,\n} from \"../util/identifier\";\nimport { lineBreak } from \"../util/whitespace\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_CLASS,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_CLASS,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  CLASS_ELEMENT_OTHER,\n  CLASS_ELEMENT_INSTANCE_GETTER,\n  CLASS_ELEMENT_INSTANCE_SETTER,\n  CLASS_ELEMENT_STATIC_GETTER,\n  CLASS_ELEMENT_STATIC_SETTER,\n  type BindingTypes,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { PARAM, functionFlags } from \"../util/production-parameter\";\n\nconst loopLabel = { kind: \"loop\" },\n  switchLabel = { kind: \"switch\" };\n\nconst FUNC_NO_FLAGS = 0b000,\n  FUNC_STATEMENT = 0b001,\n  FUNC_HANGING_STATEMENT = 0b010,\n  FUNC_NULLABLE_ID = 0b100;\n\nexport default class StatementParser extends ExpressionParser {\n  // ### Statement parsing\n\n  // Parse a program. Initializes the parser, reads any number of\n  // statements, and wraps them in a Program node.  Optionally takes a\n  // `program` argument.  If present, the statements will be appended\n  // to its body instead of creating a new node.\n\n  parseTopLevel(file: N.File, program: N.Program): N.File {\n    program.sourceType = this.options.sourceType;\n\n    program.interpreter = this.parseInterpreterDirective();\n\n    this.parseBlockBody(program, true, true, tt.eof);\n\n    if (\n      this.inModule &&\n      !this.options.allowUndeclaredExports &&\n      this.scope.undefinedExports.size > 0\n    ) {\n      for (const [name] of Array.from(this.scope.undefinedExports)) {\n        const pos = this.scope.undefinedExports.get(name);\n        // $FlowIssue\n        this.raise(pos, Errors.ModuleExportUndefined, name);\n      }\n    }\n\n    file.program = this.finishNode(program, \"Program\");\n    file.comments = this.state.comments;\n\n    if (this.options.tokens) file.tokens = this.tokens;\n\n    return this.finishNode(file, \"File\");\n  }\n\n  // TODO\n\n  stmtToDirective(stmt: N.Statement): N.Directive {\n    const expr = stmt.expression;\n\n    const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\n    const directive = this.startNodeAt(stmt.start, stmt.loc.start);\n\n    const raw = this.input.slice(expr.start, expr.end);\n    const val = (directiveLiteral.value = raw.slice(1, -1)); // remove quotes\n\n    this.addExtra(directiveLiteral, \"raw\", raw);\n    this.addExtra(directiveLiteral, \"rawValue\", val);\n\n    directive.value = this.finishNodeAt(\n      directiveLiteral,\n      \"DirectiveLiteral\",\n      expr.end,\n      expr.loc.end,\n    );\n\n    return this.finishNodeAt(directive, \"Directive\", stmt.end, stmt.loc.end);\n  }\n\n  parseInterpreterDirective(): N.InterpreterDirective | null {\n    if (!this.match(tt.interpreterDirective)) {\n      return null;\n    }\n\n    const node = this.startNode();\n    node.value = this.state.value;\n    this.next();\n    return this.finishNode(node, \"InterpreterDirective\");\n  }\n\n  isLet(context: ?string): boolean {\n    if (!this.isContextual(\"let\")) {\n      return false;\n    }\n    const next = this.nextTokenStart();\n    const nextCh = this.input.charCodeAt(next);\n    // For ambiguous cases, determine if a LexicalDeclaration (or only a\n    // Statement) is allowed here. If context is not empty then only a Statement\n    // is allowed. However, `let [` is an explicit negative lookahead for\n    // ExpressionStatement, so special-case it first.\n    if (nextCh === charCodes.leftSquareBracket) return true;\n    if (context) return false;\n\n    if (nextCh === charCodes.leftCurlyBrace) return true;\n\n    if (isIdentifierStart(nextCh)) {\n      let pos = next + 1;\n      while (isIdentifierChar(this.input.charCodeAt(pos))) {\n        ++pos;\n      }\n      const ident = this.input.slice(next, pos);\n      if (!keywordRelationalOperator.test(ident)) return true;\n    }\n    return false;\n  }\n\n  // Parse a single statement.\n  //\n  // If expecting a statement and finding a slash operator, parse a\n  // regular expression literal. This is to handle cases like\n  // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n  // does not help.\n\n  parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n    if (this.match(tt.at)) {\n      this.parseDecorators(true);\n    }\n    return this.parseStatementContent(context, topLevel);\n  }\n\n  parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n    let starttype = this.state.type;\n    const node = this.startNode();\n    let kind;\n\n    if (this.isLet(context)) {\n      starttype = tt._var;\n      kind = \"let\";\n    }\n\n    // Most types of statements are recognized by the keyword they\n    // start with. Many are trivial to parse, some require a bit of\n    // complexity.\n\n    switch (starttype) {\n      case tt._break:\n      case tt._continue:\n        // $FlowFixMe\n        return this.parseBreakContinueStatement(node, starttype.keyword);\n      case tt._debugger:\n        return this.parseDebuggerStatement(node);\n      case tt._do:\n        return this.parseDoStatement(node);\n      case tt._for:\n        return this.parseForStatement(node);\n      case tt._function:\n        if (this.lookaheadCharCode() === charCodes.dot) break;\n        if (context) {\n          if (this.state.strict) {\n            this.raise(this.state.start, Errors.StrictFunction);\n          } else if (context !== \"if\" && context !== \"label\") {\n            this.raise(this.state.start, Errors.SloppyFunction);\n          }\n        }\n        return this.parseFunctionStatement(node, false, !context);\n\n      case tt._class:\n        if (context) this.unexpected();\n        return this.parseClass(node, true);\n\n      case tt._if:\n        return this.parseIfStatement(node);\n      case tt._return:\n        return this.parseReturnStatement(node);\n      case tt._switch:\n        return this.parseSwitchStatement(node);\n      case tt._throw:\n        return this.parseThrowStatement(node);\n      case tt._try:\n        return this.parseTryStatement(node);\n\n      case tt._const:\n      case tt._var:\n        kind = kind || this.state.value;\n        if (context && kind !== \"var\") {\n          this.raise(this.state.start, Errors.UnexpectedLexicalDeclaration);\n        }\n        return this.parseVarStatement(node, kind);\n\n      case tt._while:\n        return this.parseWhileStatement(node);\n      case tt._with:\n        return this.parseWithStatement(node);\n      case tt.braceL:\n        return this.parseBlock();\n      case tt.semi:\n        return this.parseEmptyStatement(node);\n      case tt._export:\n      case tt._import: {\n        const nextTokenCharCode = this.lookaheadCharCode();\n        if (\n          nextTokenCharCode === charCodes.leftParenthesis ||\n          nextTokenCharCode === charCodes.dot\n        ) {\n          break;\n        }\n\n        if (!this.options.allowImportExportEverywhere && !topLevel) {\n          this.raise(this.state.start, Errors.UnexpectedImportExport);\n        }\n\n        this.next();\n\n        let result;\n        if (starttype === tt._import) {\n          result = this.parseImport(node);\n\n          if (\n            result.type === \"ImportDeclaration\" &&\n            (!result.importKind || result.importKind === \"value\")\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        } else {\n          result = this.parseExport(node);\n\n          if (\n            (result.type === \"ExportNamedDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            (result.type === \"ExportAllDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            result.type === \"ExportDefaultDeclaration\"\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        }\n\n        this.assertModuleNodeAllowed(node);\n\n        return result;\n      }\n\n      default: {\n        if (this.isAsyncFunction()) {\n          if (context) {\n            this.raise(\n              this.state.start,\n              Errors.AsyncFunctionInSingleStatementContext,\n            );\n          }\n          this.next();\n          return this.parseFunctionStatement(node, true, !context);\n        }\n      }\n    }\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n    const maybeName = this.state.value;\n    const expr = this.parseExpression();\n\n    if (\n      starttype === tt.name &&\n      expr.type === \"Identifier\" &&\n      this.eat(tt.colon)\n    ) {\n      return this.parseLabeledStatement(node, maybeName, expr, context);\n    } else {\n      return this.parseExpressionStatement(node, expr);\n    }\n  }\n\n  assertModuleNodeAllowed(node: N.Node): void {\n    if (!this.options.allowImportExportEverywhere && !this.inModule) {\n      this.raiseWithData(\n        node.start,\n        {\n          code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\",\n        },\n        Errors.ImportOutsideModule,\n      );\n    }\n  }\n\n  takeDecorators(node: N.HasDecorators): void {\n    const decorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (decorators.length) {\n      node.decorators = decorators;\n      this.resetStartLocationFromNode(node, decorators[0]);\n      this.state.decoratorStack[this.state.decoratorStack.length - 1] = [];\n    }\n  }\n\n  canHaveLeadingDecorator(): boolean {\n    return this.match(tt._class);\n  }\n\n  parseDecorators(allowExport?: boolean): void {\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    while (this.match(tt.at)) {\n      const decorator = this.parseDecorator();\n      currentContextDecorators.push(decorator);\n    }\n\n    if (this.match(tt._export)) {\n      if (!allowExport) {\n        this.unexpected();\n      }\n\n      if (\n        this.hasPlugin(\"decorators\") &&\n        !this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorExportClass);\n      }\n    } else if (!this.canHaveLeadingDecorator()) {\n      throw this.raise(this.state.start, Errors.UnexpectedLeadingDecorator);\n    }\n  }\n\n  parseDecorator(): N.Decorator {\n    this.expectOnePlugin([\"decorators-legacy\", \"decorators\"]);\n\n    const node = this.startNode();\n    this.next();\n\n    if (this.hasPlugin(\"decorators\")) {\n      // Every time a decorator class expression is evaluated, a new empty array is pushed onto the stack\n      // So that the decorators of any nested class expressions will be dealt with separately\n      this.state.decoratorStack.push([]);\n\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let expr: N.Expression;\n\n      if (this.eat(tt.parenL)) {\n        expr = this.parseExpression();\n        this.expect(tt.parenR);\n      } else {\n        expr = this.parseIdentifier(false);\n\n        while (this.eat(tt.dot)) {\n          const node = this.startNodeAt(startPos, startLoc);\n          node.object = expr;\n          node.property = this.parseIdentifier(true);\n          node.computed = false;\n          expr = this.finishNode(node, \"MemberExpression\");\n        }\n      }\n\n      node.expression = this.parseMaybeDecoratorArguments(expr);\n      this.state.decoratorStack.pop();\n    } else {\n      node.expression = this.parseExprSubscripts();\n    }\n    return this.finishNode(node, \"Decorator\");\n  }\n\n  parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n    if (this.eat(tt.parenL)) {\n      const node = this.startNodeAtNode(expr);\n      node.callee = expr;\n      node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      this.toReferencedList(node.arguments);\n      return this.finishNode(node, \"CallExpression\");\n    }\n\n    return expr;\n  }\n\n  parseBreakContinueStatement(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ): N.BreakStatement | N.ContinueStatement {\n    const isBreak = keyword === \"break\";\n    this.next();\n\n    if (this.isLineTerminator()) {\n      node.label = null;\n    } else {\n      node.label = this.parseIdentifier();\n      this.semicolon();\n    }\n\n    this.verifyBreakContinue(node, keyword);\n\n    return this.finishNode(\n      node,\n      isBreak ? \"BreakStatement\" : \"ContinueStatement\",\n    );\n  }\n\n  verifyBreakContinue(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ) {\n    const isBreak = keyword === \"break\";\n    let i;\n    for (i = 0; i < this.state.labels.length; ++i) {\n      const lab = this.state.labels[i];\n      if (node.label == null || lab.name === node.label.name) {\n        if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break;\n        if (node.label && isBreak) break;\n      }\n    }\n    if (i === this.state.labels.length) {\n      this.raise(node.start, Errors.IllegalBreakContinue, keyword);\n    }\n  }\n\n  parseDebuggerStatement(node: N.DebuggerStatement): N.DebuggerStatement {\n    this.next();\n    this.semicolon();\n    return this.finishNode(node, \"DebuggerStatement\");\n  }\n\n  parseHeaderExpression(): N.Expression {\n    this.expect(tt.parenL);\n    const val = this.parseExpression();\n    this.expect(tt.parenR);\n    return val;\n  }\n\n  parseDoStatement(node: N.DoWhileStatement): N.DoWhileStatement {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body's body.\n        this.parseStatement(\"do\"),\n      );\n\n    this.state.labels.pop();\n\n    this.expect(tt._while);\n    node.test = this.parseHeaderExpression();\n    this.eat(tt.semi);\n    return this.finishNode(node, \"DoWhileStatement\");\n  }\n\n  // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n  // loop is non-trivial. Basically, we have to parse the init `var`\n  // statement or expression, disallowing the `in` operator (see\n  // the second parameter to `parseExpression`), and then check\n  // whether the next token is `in` or `of`. When there is no init\n  // part (semicolon immediately after the opening parenthesis), it\n  // is a regular `for` loop.\n\n  parseForStatement(node: N.Node): N.ForLike {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    let awaitAt = -1;\n    if (this.isAwaitAllowed() && this.eatContextual(\"await\")) {\n      awaitAt = this.state.lastTokStart;\n    }\n    this.scope.enter(SCOPE_OTHER);\n    this.expect(tt.parenL);\n\n    if (this.match(tt.semi)) {\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, null);\n    }\n\n    const isLet = this.isLet();\n    if (this.match(tt._var) || this.match(tt._const) || isLet) {\n      const init = this.startNode();\n      const kind = isLet ? \"let\" : this.state.value;\n      this.next();\n      this.parseVar(init, true, kind);\n      this.finishNode(init, \"VariableDeclaration\");\n\n      if (\n        (this.match(tt._in) || this.isContextual(\"of\")) &&\n        init.declarations.length === 1\n      ) {\n        return this.parseForIn(node, init, awaitAt);\n      }\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, init);\n    }\n\n    const refExpressionErrors = new ExpressionErrors();\n    const init = this.parseExpression(true, refExpressionErrors);\n    if (this.match(tt._in) || this.isContextual(\"of\")) {\n      this.toAssignable(init);\n      const description = this.isContextual(\"of\")\n        ? \"for-of statement\"\n        : \"for-in statement\";\n      this.checkLVal(init, undefined, undefined, description);\n      return this.parseForIn(node, init, awaitAt);\n    } else {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n    if (awaitAt > -1) {\n      this.unexpected(awaitAt);\n    }\n    return this.parseFor(node, init);\n  }\n\n  parseFunctionStatement(\n    node: N.FunctionDeclaration,\n    isAsync?: boolean,\n    declarationPosition?: boolean,\n  ): N.FunctionDeclaration {\n    this.next();\n    return this.parseFunction(\n      node,\n      FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT),\n      isAsync,\n    );\n  }\n\n  parseIfStatement(node: N.IfStatement): N.IfStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    node.consequent = this.parseStatement(\"if\");\n    node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null;\n    return this.finishNode(node, \"IfStatement\");\n  }\n\n  parseReturnStatement(node: N.ReturnStatement): N.ReturnStatement {\n    if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n      this.raise(this.state.start, Errors.IllegalReturn);\n    }\n\n    this.next();\n\n    // In `return` (and `break`/`continue`), the keywords with\n    // optional arguments, we eagerly look for a semicolon or the\n    // possibility to insert one.\n\n    if (this.isLineTerminator()) {\n      node.argument = null;\n    } else {\n      node.argument = this.parseExpression();\n      this.semicolon();\n    }\n\n    return this.finishNode(node, \"ReturnStatement\");\n  }\n\n  parseSwitchStatement(node: N.SwitchStatement): N.SwitchStatement {\n    this.next();\n    node.discriminant = this.parseHeaderExpression();\n    const cases = (node.cases = []);\n    this.expect(tt.braceL);\n    this.state.labels.push(switchLabel);\n    this.scope.enter(SCOPE_OTHER);\n\n    // Statements under must be grouped (by label) in SwitchCase\n    // nodes. `cur` is used to keep the node that we are currently\n    // adding statements to.\n\n    let cur;\n    for (let sawDefault; !this.match(tt.braceR); ) {\n      if (this.match(tt._case) || this.match(tt._default)) {\n        const isCase = this.match(tt._case);\n        if (cur) this.finishNode(cur, \"SwitchCase\");\n        cases.push((cur = this.startNode()));\n        cur.consequent = [];\n        this.next();\n        if (isCase) {\n          cur.test = this.parseExpression();\n        } else {\n          if (sawDefault) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.MultipleDefaultsInSwitch,\n            );\n          }\n          sawDefault = true;\n          cur.test = null;\n        }\n        this.expect(tt.colon);\n      } else {\n        if (cur) {\n          cur.consequent.push(this.parseStatement(null));\n        } else {\n          this.unexpected();\n        }\n      }\n    }\n    this.scope.exit();\n    if (cur) this.finishNode(cur, \"SwitchCase\");\n    this.next(); // Closing brace\n    this.state.labels.pop();\n    return this.finishNode(node, \"SwitchStatement\");\n  }\n\n  parseThrowStatement(node: N.ThrowStatement): N.ThrowStatement {\n    this.next();\n    if (\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.NewlineAfterThrow);\n    }\n    node.argument = this.parseExpression();\n    this.semicolon();\n    return this.finishNode(node, \"ThrowStatement\");\n  }\n\n  parseTryStatement(node: N.TryStatement): N.TryStatement {\n    this.next();\n\n    node.block = this.parseBlock();\n    node.handler = null;\n\n    if (this.match(tt._catch)) {\n      const clause = this.startNode();\n      this.next();\n      if (this.match(tt.parenL)) {\n        this.expect(tt.parenL);\n        clause.param = this.parseBindingAtom();\n        const simple = clause.param.type === \"Identifier\";\n        this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0);\n        this.checkLVal(clause.param, BIND_LEXICAL, null, \"catch clause\");\n        this.expect(tt.parenR);\n      } else {\n        clause.param = null;\n        this.scope.enter(SCOPE_OTHER);\n      }\n\n      clause.body =\n        // For the smartPipelines plugin: Disable topic references from outer\n        // contexts within the function body. They are permitted in function\n        // default-parameter expressions, which are part of the outer context,\n        // outside of the function body.\n        this.withTopicForbiddingContext(() =>\n          // Parse the catch clause's body.\n          this.parseBlock(false, false),\n        );\n      this.scope.exit();\n\n      node.handler = this.finishNode(clause, \"CatchClause\");\n    }\n\n    node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null;\n\n    if (!node.handler && !node.finalizer) {\n      this.raise(node.start, Errors.NoCatchOrFinally);\n    }\n\n    return this.finishNode(node, \"TryStatement\");\n  }\n\n  parseVarStatement(\n    node: N.VariableDeclaration,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    this.next();\n    this.parseVar(node, false, kind);\n    this.semicolon();\n    return this.finishNode(node, \"VariableDeclaration\");\n  }\n\n  parseWhileStatement(node: N.WhileStatement): N.WhileStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"while\"),\n      );\n\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"WhileStatement\");\n  }\n\n  parseWithStatement(node: N.WithStatement): N.WithStatement {\n    if (this.state.strict) {\n      this.raise(this.state.start, Errors.StrictWith);\n    }\n    this.next();\n    node.object = this.parseHeaderExpression();\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the function body.\n      // They are permitted in function default-parameter expressions, which are\n      // part of the outer context, outside of the function body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the statement body.\n        this.parseStatement(\"with\"),\n      );\n\n    return this.finishNode(node, \"WithStatement\");\n  }\n\n  parseEmptyStatement(node: N.EmptyStatement): N.EmptyStatement {\n    this.next();\n    return this.finishNode(node, \"EmptyStatement\");\n  }\n\n  parseLabeledStatement(\n    node: N.LabeledStatement,\n    maybeName: string,\n    expr: N.Identifier,\n    context: ?string,\n  ): N.LabeledStatement {\n    for (const label of this.state.labels) {\n      if (label.name === maybeName) {\n        this.raise(expr.start, Errors.LabelRedeclaration, maybeName);\n      }\n    }\n\n    const kind = this.state.type.isLoop\n      ? \"loop\"\n      : this.match(tt._switch)\n      ? \"switch\"\n      : null;\n    for (let i = this.state.labels.length - 1; i >= 0; i--) {\n      const label = this.state.labels[i];\n      if (label.statementStart === node.start) {\n        label.statementStart = this.state.start;\n        label.kind = kind;\n      } else {\n        break;\n      }\n    }\n\n    this.state.labels.push({\n      name: maybeName,\n      kind: kind,\n      statementStart: this.state.start,\n    });\n    node.body = this.parseStatement(\n      context\n        ? context.indexOf(\"label\") === -1\n          ? context + \"label\"\n          : context\n        : \"label\",\n    );\n\n    this.state.labels.pop();\n    node.label = expr;\n    return this.finishNode(node, \"LabeledStatement\");\n  }\n\n  parseExpressionStatement(\n    node: N.ExpressionStatement,\n    expr: N.Expression,\n  ): N.Statement {\n    node.expression = expr;\n    this.semicolon();\n    return this.finishNode(node, \"ExpressionStatement\");\n  }\n\n  // Parse a semicolon-enclosed block of statements, handling `\"use\n  // strict\"` declarations when `allowStrict` is true (used for\n  // function bodies).\n\n  parseBlock(\n    allowDirectives?: boolean = false,\n    createNewLexicalScope?: boolean = true,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): N.BlockStatement {\n    const node = this.startNode();\n    this.expect(tt.braceL);\n    if (createNewLexicalScope) {\n      this.scope.enter(SCOPE_OTHER);\n    }\n    this.parseBlockBody(\n      node,\n      allowDirectives,\n      false,\n      tt.braceR,\n      afterBlockParse,\n    );\n    if (createNewLexicalScope) {\n      this.scope.exit();\n    }\n    return this.finishNode(node, \"BlockStatement\");\n  }\n\n  isValidDirective(stmt: N.Statement): boolean {\n    return (\n      stmt.type === \"ExpressionStatement\" &&\n      stmt.expression.type === \"StringLiteral\" &&\n      !stmt.expression.extra.parenthesized\n    );\n  }\n\n  parseBlockBody(\n    node: N.BlockStatementLike,\n    allowDirectives: ?boolean,\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const body = (node.body = []);\n    const directives = (node.directives = []);\n    this.parseBlockOrModuleBlockBody(\n      body,\n      allowDirectives ? directives : undefined,\n      topLevel,\n      end,\n      afterBlockParse,\n    );\n  }\n\n  // Undefined directives means that directives are not allowed.\n  parseBlockOrModuleBlockBody(\n    body: N.Statement[],\n    directives: ?(N.Directive[]),\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const octalPositions = [];\n    const oldStrict = this.state.strict;\n    let hasStrictModeDirective = false;\n    let parsedNonDirective = false;\n\n    while (!this.match(end)) {\n      // Track octal literals that occur before a \"use strict\" directive.\n      if (!parsedNonDirective && this.state.octalPositions.length) {\n        octalPositions.push(...this.state.octalPositions);\n      }\n\n      const stmt = this.parseStatement(null, topLevel);\n\n      if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {\n        const directive = this.stmtToDirective(stmt);\n        directives.push(directive);\n\n        if (!hasStrictModeDirective && directive.value.value === \"use strict\") {\n          hasStrictModeDirective = true;\n          this.setStrict(true);\n        }\n\n        continue;\n      }\n\n      parsedNonDirective = true;\n      body.push(stmt);\n    }\n\n    // Throw an error for any octal literals found before a\n    // \"use strict\" directive. Strict mode will be set at parse\n    // time for any literals that occur after the directive.\n    if (this.state.strict && octalPositions.length) {\n      for (const pos of octalPositions) {\n        this.raise(pos, Errors.StrictOctalLiteral);\n      }\n    }\n\n    if (afterBlockParse) {\n      afterBlockParse.call(this, hasStrictModeDirective);\n    }\n\n    if (!oldStrict) {\n      this.setStrict(false);\n    }\n\n    this.next();\n  }\n\n  // Parse a regular `for` loop. The disambiguation code in\n  // `parseStatement` will already have parsed the init statement or\n  // expression.\n\n  parseFor(\n    node: N.ForStatement,\n    init: ?(N.VariableDeclaration | N.Expression),\n  ): N.ForStatement {\n    node.init = init;\n    this.expect(tt.semi);\n    node.test = this.match(tt.semi) ? null : this.parseExpression();\n    this.expect(tt.semi);\n    node.update = this.match(tt.parenR) ? null : this.parseExpression();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"ForStatement\");\n  }\n\n  // Parse a `for`/`in` and `for`/`of` loop, which are almost\n  // same from parser's perspective.\n\n  parseForIn(\n    node: N.ForInOf,\n    init: N.VariableDeclaration | N.AssignmentPattern,\n    awaitAt: number,\n  ): N.ForInOf {\n    const isForIn = this.match(tt._in);\n    this.next();\n\n    if (isForIn) {\n      if (awaitAt > -1) this.unexpected(awaitAt);\n    } else {\n      node.await = awaitAt > -1;\n    }\n\n    if (\n      init.type === \"VariableDeclaration\" &&\n      init.declarations[0].init != null &&\n      (!isForIn ||\n        this.state.strict ||\n        init.kind !== \"var\" ||\n        init.declarations[0].id.type !== \"Identifier\")\n    ) {\n      this.raise(\n        init.start,\n        Errors.ForInOfLoopInitializer,\n        isForIn ? \"for-in\" : \"for-of\",\n      );\n    } else if (init.type === \"AssignmentPattern\") {\n      this.raise(init.start, Errors.InvalidLhs, \"for-loop\");\n    }\n\n    node.left = init;\n    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n  }\n\n  // Parse a list of variable declarations.\n\n  parseVar(\n    node: N.VariableDeclaration,\n    isFor: boolean,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    const declarations = (node.declarations = []);\n    const isTypescript = this.hasPlugin(\"typescript\");\n    node.kind = kind;\n    for (;;) {\n      const decl = this.startNode();\n      this.parseVarId(decl, kind);\n      if (this.eat(tt.eq)) {\n        decl.init = this.parseMaybeAssign(isFor);\n      } else {\n        if (\n          kind === \"const\" &&\n          !(this.match(tt._in) || this.isContextual(\"of\"))\n        ) {\n          // `const` with no initializer is allowed in TypeScript.\n          // It could be a declaration like `const x: number;`.\n          if (!isTypescript) {\n            this.unexpected();\n          }\n        } else if (\n          decl.id.type !== \"Identifier\" &&\n          !(isFor && (this.match(tt._in) || this.isContextual(\"of\")))\n        ) {\n          this.raise(\n            this.state.lastTokEnd,\n            Errors.DeclarationMissingInitializer,\n            \"Complex binding patterns\",\n          );\n        }\n        decl.init = null;\n      }\n      declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n      if (!this.eat(tt.comma)) break;\n    }\n    return node;\n  }\n\n  parseVarId(decl: N.VariableDeclarator, kind: \"var\" | \"let\" | \"const\"): void {\n    decl.id = this.parseBindingAtom();\n    this.checkLVal(\n      decl.id,\n      kind === \"var\" ? BIND_VAR : BIND_LEXICAL,\n      undefined,\n      \"variable declaration\",\n      kind !== \"var\",\n    );\n  }\n\n  // Parse a function declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseFunction<T: N.NormalFunction>(\n    node: T,\n    statement?: number = FUNC_NO_FLAGS,\n    isAsync?: boolean = false,\n  ): T {\n    const isStatement = statement & FUNC_STATEMENT;\n    const isHangingStatement = statement & FUNC_HANGING_STATEMENT;\n    const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID);\n\n    this.initFunction(node, isAsync);\n\n    if (this.match(tt.star) && isHangingStatement) {\n      this.raise(this.state.start, Errors.GeneratorInSingleStatementContext);\n    }\n    node.generator = this.eat(tt.star);\n\n    if (isStatement) {\n      node.id = this.parseFunctionId(requireId);\n    }\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.scope.enter(SCOPE_FUNCTION);\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n\n    if (!isStatement) {\n      node.id = this.parseFunctionId();\n    }\n\n    this.parseFunctionParams(node);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the function body. They are permitted in test\n    // expressions, outside of the function body.\n    this.withTopicForbiddingContext(() => {\n      // Parse the function body.\n      this.parseFunctionBodyAndFinish(\n        node,\n        isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\",\n      );\n    });\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    if (isStatement && !isHangingStatement) {\n      // We need to register this _after_ parsing the function body\n      // because of TypeScript body-less function declarations,\n      // which shouldn't be added to the scope.\n      this.registerFunctionStatementId(node);\n    }\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  parseFunctionId(requireId?: boolean): ?N.Identifier {\n    return requireId || this.match(tt.name) ? this.parseIdentifier() : null;\n  }\n\n  parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = true;\n\n    this.expect(tt.parenL);\n    node.params = this.parseBindingList(\n      tt.parenR,\n      charCodes.rightParenthesis,\n      /* allowEmpty */ false,\n      allowModifiers,\n    );\n\n    this.state.inParameters = oldInParameters;\n    this.checkYieldAwaitInDefaultParams();\n  }\n\n  registerFunctionStatementId(node: N.Function): void {\n    if (!node.id) return;\n\n    // If it is a regular function declaration in sloppy mode, then it is\n    // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n    // mode depends on properties of the current scope (see\n    // treatFunctionsAsVar).\n    this.scope.declareName(\n      node.id.name,\n      this.state.strict || node.generator || node.async\n        ? this.scope.treatFunctionsAsVar\n          ? BIND_VAR\n          : BIND_LEXICAL\n        : BIND_FUNCTION,\n      node.id.start,\n    );\n  }\n\n  // Parse a class declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseClass<T: N.Class>(\n    node: T,\n    isStatement: /* T === ClassDeclaration */ boolean,\n    optionalId?: boolean,\n  ): T {\n    this.next();\n    this.takeDecorators(node);\n\n    // A class definition is always strict mode code.\n    const oldStrict = this.state.strict;\n    this.state.strict = true;\n\n    this.parseClassId(node, isStatement, optionalId);\n    this.parseClassSuper(node);\n    node.body = this.parseClassBody(!!node.superClass, oldStrict);\n\n    this.state.strict = oldStrict;\n\n    return this.finishNode(\n      node,\n      isStatement ? \"ClassDeclaration\" : \"ClassExpression\",\n    );\n  }\n\n  isClassProperty(): boolean {\n    return this.match(tt.eq) || this.match(tt.semi) || this.match(tt.braceR);\n  }\n\n  isClassMethod(): boolean {\n    return this.match(tt.parenL);\n  }\n\n  isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n    return (\n      !method.computed &&\n      !method.static &&\n      (method.key.name === \"constructor\" || // Identifier\n        method.key.value === \"constructor\") // String literal\n    );\n  }\n\n  parseClassBody(\n    constructorAllowsSuper: boolean,\n    oldStrict?: boolean,\n  ): N.ClassBody {\n    this.classScope.enter();\n\n    const state = { hadConstructor: false };\n    let decorators: N.Decorator[] = [];\n    const classBody: N.ClassBody = this.startNode();\n    classBody.body = [];\n\n    this.expect(tt.braceL);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the class body. They are permitted in test expressions,\n    // outside of the class body.\n    this.withTopicForbiddingContext(() => {\n      while (!this.match(tt.braceR)) {\n        if (this.eat(tt.semi)) {\n          if (decorators.length > 0) {\n            throw this.raise(this.state.lastTokEnd, Errors.DecoratorSemicolon);\n          }\n          continue;\n        }\n\n        if (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n          continue;\n        }\n\n        const member = this.startNode();\n\n        // steal the decorators if there are any\n        if (decorators.length) {\n          member.decorators = decorators;\n          this.resetStartLocationFromNode(member, decorators[0]);\n          decorators = [];\n        }\n\n        this.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n        if (\n          member.kind === \"constructor\" &&\n          member.decorators &&\n          member.decorators.length > 0\n        ) {\n          this.raise(member.start, Errors.DecoratorConstructor);\n        }\n      }\n    });\n\n    if (!oldStrict) {\n      this.state.strict = false;\n    }\n\n    this.next();\n\n    if (decorators.length) {\n      throw this.raise(this.state.start, Errors.TrailingDecorator);\n    }\n\n    this.classScope.exit();\n\n    return this.finishNode(classBody, \"ClassBody\");\n  }\n\n  // returns true if the current identifier is a method/field name,\n  // false if it is a modifier\n  parseClassMemberFromModifier(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n  ): boolean {\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseIdentifier(true); // eats the modifier\n\n    if (this.isClassMethod()) {\n      const method: N.ClassMethod = (member: any);\n\n      // a method named like the modifier\n      method.kind = \"method\";\n      method.computed = false;\n      method.key = key;\n      method.static = false;\n      this.pushClassMethod(\n        classBody,\n        method,\n        false,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n      return true;\n    } else if (this.isClassProperty()) {\n      const prop: N.ClassProperty = (member: any);\n\n      // a property named like the modifier\n      prop.computed = false;\n      prop.key = key;\n      prop.static = false;\n      classBody.body.push(this.parseClassProperty(prop));\n      return true;\n    } else if (containsEsc) {\n      throw this.unexpected();\n    }\n\n    return false;\n  }\n\n  parseClassMember(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    constructorAllowsSuper: boolean,\n  ): void {\n    const isStatic = this.isContextual(\"static\");\n\n    if (isStatic && this.parseClassMemberFromModifier(classBody, member)) {\n      // a class element named 'static'\n      return;\n    }\n\n    this.parseClassMemberWithIsStatic(\n      classBody,\n      member,\n      state,\n      isStatic,\n      constructorAllowsSuper,\n    );\n  }\n\n  parseClassMemberWithIsStatic(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    isStatic: boolean,\n    constructorAllowsSuper: boolean,\n  ) {\n    const publicMethod: $FlowSubtype<N.ClassMethod> = member;\n    const privateMethod: $FlowSubtype<N.ClassPrivateMethod> = member;\n    const publicProp: $FlowSubtype<N.ClassMethod> = member;\n    const privateProp: $FlowSubtype<N.ClassPrivateMethod> = member;\n\n    const method: typeof publicMethod | typeof privateMethod = publicMethod;\n    const publicMember: typeof publicMethod | typeof publicProp = publicMethod;\n\n    member.static = isStatic;\n\n    if (this.eat(tt.star)) {\n      // a generator\n      method.kind = \"method\";\n      this.parseClassPropertyName(method);\n\n      if (method.key.type === \"PrivateName\") {\n        // Private generator method\n        this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n        return;\n      }\n\n      if (this.isNonstaticConstructor(publicMethod)) {\n        this.raise(publicMethod.key.start, Errors.ConstructorIsGenerator);\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        true,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n\n      return;\n    }\n\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseClassPropertyName(member);\n    const isPrivate = key.type === \"PrivateName\";\n    // Check the key is not a computed expression or string literal.\n    const isSimple = key.type === \"Identifier\";\n    const maybeQuestionTokenStart = this.state.start;\n\n    this.parsePostMemberNameModifiers(publicMember);\n\n    if (this.isClassMethod()) {\n      method.kind = \"method\";\n\n      if (isPrivate) {\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n        return;\n      }\n\n      // a normal method\n      const isConstructor = this.isNonstaticConstructor(publicMethod);\n      let allowsDirectSuper = false;\n      if (isConstructor) {\n        publicMethod.kind = \"constructor\";\n\n        // TypeScript allows multiple overloaded constructor declarations.\n        if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n          this.raise(key.start, Errors.DuplicateConstructor);\n        }\n        state.hadConstructor = true;\n        allowsDirectSuper = constructorAllowsSuper;\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        false,\n        false,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    } else if (this.isClassProperty()) {\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else if (\n      isSimple &&\n      key.name === \"async\" &&\n      !containsEsc &&\n      !this.isLineTerminator()\n    ) {\n      // an async method\n      const isGenerator = this.eat(tt.star);\n\n      if (publicMember.optional) {\n        this.unexpected(maybeQuestionTokenStart);\n      }\n\n      method.kind = \"method\";\n      // The so-called parsed name would have been \"async\": get the real name.\n      this.parseClassPropertyName(method);\n      this.parsePostMemberNameModifiers(publicMember);\n\n      if (method.key.type === \"PrivateName\") {\n        // private async method\n        this.pushClassPrivateMethod(\n          classBody,\n          privateMethod,\n          isGenerator,\n          true,\n        );\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAsync);\n        }\n\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          isGenerator,\n          true,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n    } else if (\n      isSimple &&\n      (key.name === \"get\" || key.name === \"set\") &&\n      !containsEsc &&\n      !(this.match(tt.star) && this.isLineTerminator())\n    ) {\n      // `get\\n*` is an uninitialized property named 'get' followed by a generator.\n      // a getter or setter\n      method.kind = key.name;\n      // The so-called parsed name would have been \"get/set\": get the real name.\n      this.parseClassPropertyName(publicMethod);\n\n      if (method.key.type === \"PrivateName\") {\n        // private getter/setter\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAccessor);\n        }\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          false,\n          false,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n\n      this.checkGetterSetterParams(publicMethod);\n    } else if (this.isLineTerminator()) {\n      // an uninitialized class property (due to ASI, since we don't otherwise recognize the next token)\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else {\n      this.unexpected();\n    }\n  }\n\n  parseClassPropertyName(member: N.ClassMember): N.Expression | N.Identifier {\n    const key = this.parsePropertyName(member, /* isPrivateNameAllowed */ true);\n\n    if (\n      !member.computed &&\n      member.static &&\n      ((key: $FlowSubtype<N.Identifier>).name === \"prototype\" ||\n        (key: $FlowSubtype<N.StringLiteral>).value === \"prototype\")\n    ) {\n      this.raise(key.start, Errors.StaticPrototype);\n    }\n\n    if (key.type === \"PrivateName\" && key.id.name === \"constructor\") {\n      this.raise(key.start, Errors.ConstructorClassPrivateField);\n    }\n\n    return key;\n  }\n\n  pushClassProperty(classBody: N.ClassBody, prop: N.ClassProperty) {\n    if (\n      !prop.computed &&\n      (prop.key.name === \"constructor\" || prop.key.value === \"constructor\")\n    ) {\n      // Non-computed field, which is either an identifier named \"constructor\"\n      // or a string literal named \"constructor\"\n      this.raise(prop.key.start, Errors.ConstructorClassField);\n    }\n\n    classBody.body.push(this.parseClassProperty(prop));\n  }\n\n  pushClassPrivateProperty(\n    classBody: N.ClassBody,\n    prop: N.ClassPrivateProperty,\n  ) {\n    this.expectPlugin(\"classPrivateProperties\", prop.key.start);\n\n    const node = this.parseClassPrivateProperty(prop);\n    classBody.body.push(node);\n\n    this.classScope.declarePrivateName(\n      node.key.id.name,\n      CLASS_ELEMENT_OTHER,\n      node.key.start,\n    );\n  }\n\n  pushClassMethod(\n    classBody: N.ClassBody,\n    method: N.ClassMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowsDirectSuper: boolean,\n  ): void {\n    classBody.body.push(\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      ),\n    );\n  }\n\n  pushClassPrivateMethod(\n    classBody: N.ClassBody,\n    method: N.ClassPrivateMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n  ): void {\n    this.expectPlugin(\"classPrivateMethods\", method.key.start);\n\n    const node = this.parseMethod(\n      method,\n      isGenerator,\n      isAsync,\n      /* isConstructor */ false,\n      false,\n      \"ClassPrivateMethod\",\n      true,\n    );\n    classBody.body.push(node);\n\n    const kind =\n      node.kind === \"get\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_GETTER\n          : CLASS_ELEMENT_INSTANCE_GETTER\n        : node.kind === \"set\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_SETTER\n          : CLASS_ELEMENT_INSTANCE_SETTER\n        : CLASS_ELEMENT_OTHER;\n    this.classScope.declarePrivateName(node.key.id.name, kind, node.key.start);\n  }\n\n  // Overridden in typescript.js\n  parsePostMemberNameModifiers(\n    // eslint-disable-next-line no-unused-vars\n    methodOrProp: N.ClassMethod | N.ClassProperty,\n  ): void {}\n\n  // Overridden in typescript.js\n  parseAccessModifier(): ?N.Accessibility {\n    return undefined;\n  }\n\n  parseClassPrivateProperty(\n    node: N.ClassPrivateProperty,\n  ): N.ClassPrivateProperty {\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    node.value = this.eat(tt.eq) ? this.parseMaybeAssign() : null;\n    this.semicolon();\n    this.prodParam.exit();\n\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassPrivateProperty\");\n  }\n\n  parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n    if (!node.typeAnnotation) {\n      this.expectPlugin(\"classProperties\");\n    }\n\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    if (this.match(tt.eq)) {\n      this.expectPlugin(\"classProperties\");\n      this.next();\n      node.value = this.parseMaybeAssign();\n    } else {\n      node.value = null;\n    }\n    this.semicolon();\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassProperty\");\n  }\n\n  parseClassId(\n    node: N.Class,\n    isStatement: boolean,\n    optionalId: ?boolean,\n    bindingType: BindingTypes = BIND_CLASS,\n  ): void {\n    if (this.match(tt.name)) {\n      node.id = this.parseIdentifier();\n      if (isStatement) {\n        this.checkLVal(node.id, bindingType, undefined, \"class name\");\n      }\n    } else {\n      if (optionalId || !isStatement) {\n        node.id = null;\n      } else {\n        this.unexpected(null, Errors.MissingClassName);\n      }\n    }\n  }\n\n  parseClassSuper(node: N.Class): void {\n    node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null;\n  }\n\n  // Parses module export declaration.\n\n  parseExport(node: N.Node): N.AnyExport {\n    const hasDefault = this.maybeParseExportDefaultSpecifier(node);\n    const parseAfterDefault = !hasDefault || this.eat(tt.comma);\n    const hasStar = parseAfterDefault && this.eatExportStar(node);\n    const hasNamespace =\n      hasStar && this.maybeParseExportNamespaceSpecifier(node);\n    const parseAfterNamespace =\n      parseAfterDefault && (!hasNamespace || this.eat(tt.comma));\n    const isFromRequired = hasDefault || hasStar;\n\n    if (hasStar && !hasNamespace) {\n      if (hasDefault) this.unexpected();\n      this.parseExportFrom(node, true);\n\n      return this.finishNode(node, \"ExportAllDeclaration\");\n    }\n\n    const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n\n    if (\n      (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) ||\n      (hasNamespace && parseAfterNamespace && !hasSpecifiers)\n    ) {\n      throw this.unexpected(null, tt.braceL);\n    }\n\n    let hasDeclaration;\n    if (isFromRequired || hasSpecifiers) {\n      hasDeclaration = false;\n      this.parseExportFrom(node, isFromRequired);\n    } else {\n      hasDeclaration = this.maybeParseExportDeclaration(node);\n    }\n\n    if (isFromRequired || hasSpecifiers || hasDeclaration) {\n      this.checkExport(node, true, false, !!node.source);\n      return this.finishNode(node, \"ExportNamedDeclaration\");\n    }\n\n    if (this.eat(tt._default)) {\n      // export default ...\n      node.declaration = this.parseExportDefaultExpression();\n      this.checkExport(node, true, true);\n\n      return this.finishNode(node, \"ExportDefaultDeclaration\");\n    }\n\n    throw this.unexpected(null, tt.braceL);\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  eatExportStar(node: N.Node): boolean {\n    return this.eat(tt.star);\n  }\n\n  maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n    if (this.isExportDefaultSpecifier()) {\n      // export defaultObj ...\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n    if (this.isContextual(\"as\")) {\n      if (!node.specifiers) node.specifiers = [];\n\n      const specifier = this.startNodeAt(\n        this.state.lastTokStart,\n        this.state.lastTokStartLoc,\n      );\n\n      this.next();\n\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers.push(\n        this.finishNode(specifier, \"ExportNamespaceSpecifier\"),\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamedSpecifiers(node: N.Node): boolean {\n    if (this.match(tt.braceL)) {\n      if (!node.specifiers) node.specifiers = [];\n      node.specifiers.push(...this.parseExportSpecifiers());\n\n      node.source = null;\n      node.declaration = null;\n\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportDeclaration(node: N.Node): boolean {\n    if (this.shouldParseExportDeclaration()) {\n      if (this.isContextual(\"async\")) {\n        const next = this.nextTokenStart();\n\n        // export async;\n        if (!this.isUnparsedContextual(next, \"function\")) {\n          this.unexpected(next, tt._function);\n        }\n      }\n\n      node.specifiers = [];\n      node.source = null;\n      node.declaration = this.parseExportDeclaration(node);\n\n      return true;\n    }\n    return false;\n  }\n\n  isAsyncFunction(): boolean {\n    if (!this.isContextual(\"async\")) return false;\n    const next = this.nextTokenStart();\n    return (\n      !lineBreak.test(this.input.slice(this.state.pos, next)) &&\n      this.isUnparsedContextual(next, \"function\")\n    );\n  }\n\n  parseExportDefaultExpression(): N.Expression | N.Declaration {\n    const expr = this.startNode();\n\n    const isAsync = this.isAsyncFunction();\n\n    if (this.match(tt._function) || isAsync) {\n      this.next();\n      if (isAsync) {\n        this.next();\n      }\n\n      return this.parseFunction(\n        expr,\n        FUNC_STATEMENT | FUNC_NULLABLE_ID,\n        isAsync,\n      );\n    } else if (this.match(tt._class)) {\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt.at)) {\n      if (\n        this.hasPlugin(\"decorators\") &&\n        this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorBeforeExport);\n      }\n      this.parseDecorators(false);\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt._const) || this.match(tt._var) || this.isLet()) {\n      throw this.raise(this.state.start, Errors.UnsupportedDefaultExport);\n    } else {\n      const res = this.parseMaybeAssign();\n      this.semicolon();\n      return res;\n    }\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n    return this.parseStatement(null);\n  }\n\n  isExportDefaultSpecifier(): boolean {\n    if (this.match(tt.name)) {\n      return this.state.value !== \"async\" && this.state.value !== \"let\";\n    }\n\n    if (!this.match(tt._default)) {\n      return false;\n    }\n\n    const next = this.nextTokenStart();\n    return (\n      this.input.charCodeAt(next) === charCodes.comma ||\n      this.isUnparsedContextual(next, \"from\")\n    );\n  }\n\n  parseExportFrom(node: N.ExportNamedDeclaration, expect?: boolean): void {\n    if (this.eatContextual(\"from\")) {\n      node.source = this.parseImportSource();\n      this.checkExport(node);\n    } else {\n      if (expect) {\n        this.unexpected();\n      } else {\n        node.source = null;\n      }\n    }\n\n    this.semicolon();\n  }\n\n  shouldParseExportDeclaration(): boolean {\n    if (this.match(tt.at)) {\n      this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n      if (this.hasPlugin(\"decorators\")) {\n        if (this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")) {\n          this.unexpected(this.state.start, Errors.DecoratorBeforeExport);\n        } else {\n          return true;\n        }\n      }\n    }\n\n    return (\n      this.state.type.keyword === \"var\" ||\n      this.state.type.keyword === \"const\" ||\n      this.state.type.keyword === \"function\" ||\n      this.state.type.keyword === \"class\" ||\n      this.isLet() ||\n      this.isAsyncFunction()\n    );\n  }\n\n  checkExport(\n    node: N.ExportNamedDeclaration,\n    checkNames?: boolean,\n    isDefault?: boolean,\n    isFrom?: boolean,\n  ): void {\n    if (checkNames) {\n      // Check for duplicate exports\n      if (isDefault) {\n        // Default exports\n        this.checkDuplicateExports(node, \"default\");\n      } else if (node.specifiers && node.specifiers.length) {\n        // Named exports\n        for (const specifier of node.specifiers) {\n          this.checkDuplicateExports(specifier, specifier.exported.name);\n          // $FlowIgnore\n          if (!isFrom && specifier.local) {\n            // check for keywords used as local names\n            this.checkReservedWord(\n              specifier.local.name,\n              specifier.local.start,\n              true,\n              false,\n            );\n            // check if export is defined\n            // $FlowIgnore\n            this.scope.checkLocalExport(specifier.local);\n          }\n        }\n      } else if (node.declaration) {\n        // Exported declarations\n        if (\n          node.declaration.type === \"FunctionDeclaration\" ||\n          node.declaration.type === \"ClassDeclaration\"\n        ) {\n          const id = node.declaration.id;\n          if (!id) throw new Error(\"Assertion failure\");\n\n          this.checkDuplicateExports(node, id.name);\n        } else if (node.declaration.type === \"VariableDeclaration\") {\n          for (const declaration of node.declaration.declarations) {\n            this.checkDeclaration(declaration.id);\n          }\n        }\n      }\n    }\n\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (currentContextDecorators.length) {\n      const isClass =\n        node.declaration &&\n        (node.declaration.type === \"ClassDeclaration\" ||\n          node.declaration.type === \"ClassExpression\");\n      if (!node.declaration || !isClass) {\n        throw this.raise(node.start, Errors.UnsupportedDecoratorExport);\n      }\n      this.takeDecorators(node.declaration);\n    }\n  }\n\n  checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n    if (node.type === \"Identifier\") {\n      this.checkDuplicateExports(node, node.name);\n    } else if (node.type === \"ObjectPattern\") {\n      for (const prop of node.properties) {\n        this.checkDeclaration(prop);\n      }\n    } else if (node.type === \"ArrayPattern\") {\n      for (const elem of node.elements) {\n        if (elem) {\n          this.checkDeclaration(elem);\n        }\n      }\n    } else if (node.type === \"ObjectProperty\") {\n      this.checkDeclaration(node.value);\n    } else if (node.type === \"RestElement\") {\n      this.checkDeclaration(node.argument);\n    } else if (node.type === \"AssignmentPattern\") {\n      this.checkDeclaration(node.left);\n    }\n  }\n\n  checkDuplicateExports(\n    node:\n      | N.Identifier\n      | N.ExportNamedDeclaration\n      | N.ExportSpecifier\n      | N.ExportDefaultSpecifier,\n    name: string,\n  ): void {\n    if (this.state.exportedIdentifiers.indexOf(name) > -1) {\n      this.raise(\n        node.start,\n        name === \"default\"\n          ? Errors.DuplicateDefaultExport\n          : Errors.DuplicateExport,\n        name,\n      );\n    }\n    this.state.exportedIdentifiers.push(name);\n  }\n\n  // Parses a comma-separated list of module exports.\n\n  parseExportSpecifiers(): Array<N.ExportSpecifier> {\n    const nodes = [];\n    let first = true;\n\n    // export { x, y as z } [from '...']\n    this.expect(tt.braceL);\n\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      const node = this.startNode();\n      node.local = this.parseIdentifier(true);\n      node.exported = this.eatContextual(\"as\")\n        ? this.parseIdentifier(true)\n        : node.local.__clone();\n      nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n    }\n\n    return nodes;\n  }\n\n  // Parses import declaration.\n\n  parseImport(node: N.Node): N.AnyImport {\n    // import '...'\n    node.specifiers = [];\n    if (!this.match(tt.string)) {\n      const hasDefault = this.maybeParseDefaultImportSpecifier(node);\n      const parseNext = !hasDefault || this.eat(tt.comma);\n      const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n      if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n      this.expectContextual(\"from\");\n    }\n    node.source = this.parseImportSource();\n    this.semicolon();\n    return this.finishNode(node, \"ImportDeclaration\");\n  }\n\n  parseImportSource(): N.StringLiteral {\n    if (!this.match(tt.string)) this.unexpected();\n    return this.parseExprAtom();\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n    return this.match(tt.name);\n  }\n\n  parseImportSpecifierLocal(\n    node: N.ImportDeclaration,\n    specifier: N.Node,\n    type: string,\n    contextDescription: string,\n  ): void {\n    specifier.local = this.parseIdentifier();\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      contextDescription,\n    );\n    node.specifiers.push(this.finishNode(specifier, type));\n  }\n\n  maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.shouldParseDefaultImport(node)) {\n      // import defaultObj, { x, y as z } from '...'\n      this.parseImportSpecifierLocal(\n        node,\n        this.startNode(),\n        \"ImportDefaultSpecifier\",\n        \"default import specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseStarImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.match(tt.star)) {\n      const specifier = this.startNode();\n      this.next();\n      this.expectContextual(\"as\");\n\n      this.parseImportSpecifierLocal(\n        node,\n        specifier,\n        \"ImportNamespaceSpecifier\",\n        \"import namespace specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  parseNamedImportSpecifiers(node: N.ImportDeclaration) {\n    let first = true;\n    this.expect(tt.braceL);\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        // Detect an attempt to deep destructure\n        if (this.eat(tt.colon)) {\n          throw this.raise(this.state.start, Errors.DestructureNamedImport);\n        }\n\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      this.parseImportSpecifier(node);\n    }\n  }\n\n  parseImportSpecifier(node: N.ImportDeclaration): void {\n    const specifier = this.startNode();\n    specifier.imported = this.parseIdentifier(true);\n    if (this.eatContextual(\"as\")) {\n      specifier.local = this.parseIdentifier();\n    } else {\n      this.checkReservedWord(\n        specifier.imported.name,\n        specifier.start,\n        true,\n        true,\n      );\n      specifier.local = specifier.imported.__clone();\n    }\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      \"import specifier\",\n    );\n    node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n  }\n}\n","// @flow\n\nimport {\n  CLASS_ELEMENT_KIND_ACCESSOR,\n  CLASS_ELEMENT_FLAG_STATIC,\n  type ClassElementTypes,\n} from \"./scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nexport class ClassScope {\n  // A list of private named declared in the current class\n  privateNames: Set<string> = new Set();\n\n  // A list of private getters of setters without their counterpart\n  loneAccessors: Map<string, ClassElementTypes> = new Map();\n\n  // A list of private names used before being defined, mapping to\n  // their position.\n  undefinedPrivateNames: Map<string, number> = new Map();\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\nexport default class ClassScopeHandler {\n  stack: Array<ClassScope> = [];\n  raise: raiseFunction;\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction) {\n    this.raise = raise;\n  }\n\n  current(): ClassScope {\n    return this.stack[this.stack.length - 1];\n  }\n\n  enter() {\n    this.stack.push(new ClassScope());\n  }\n\n  exit() {\n    const oldClassScope = this.stack.pop();\n\n    // Migrate the usage of not yet defined private names to the outer\n    // class scope, or raise an error if we reached the top-level scope.\n\n    const current = this.current();\n\n    // Array.from is needed because this is compiled to an array-like for loop\n    for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) {\n      if (current) {\n        if (!current.undefinedPrivateNames.has(name)) {\n          current.undefinedPrivateNames.set(name, pos);\n        }\n      } else {\n        this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n      }\n    }\n  }\n\n  declarePrivateName(\n    name: string,\n    elementType: ClassElementTypes,\n    pos: number,\n  ) {\n    const classScope = this.current();\n    let redefined = classScope.privateNames.has(name);\n\n    if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) {\n      const accessor = redefined && classScope.loneAccessors.get(name);\n      if (accessor) {\n        const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC;\n        const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC;\n\n        const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR;\n        const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR;\n\n        // The private name can be duplicated only if it is used by\n        // two accessors with different kind (get and set), and if\n        // they have the same placement (static or not).\n        redefined = oldKind === newKind || oldStatic !== newStatic;\n\n        if (!redefined) classScope.loneAccessors.delete(name);\n      } else if (!redefined) {\n        classScope.loneAccessors.set(name, elementType);\n      }\n    }\n\n    if (redefined) {\n      this.raise(pos, Errors.PrivateNameRedeclaration, name);\n    }\n\n    classScope.privateNames.add(name);\n    classScope.undefinedPrivateNames.delete(name);\n  }\n\n  usePrivateName(name: string, pos: number) {\n    let classScope;\n    for (classScope of this.stack) {\n      if (classScope.privateNames.has(name)) return;\n    }\n\n    if (classScope) {\n      classScope.undefinedPrivateNames.set(name, pos);\n    } else {\n      // top-level\n      this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n    }\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type { File /*::, JSXOpeningElement */ } from \"../types\";\nimport type { PluginList } from \"../plugin-utils\";\nimport { getOptions } from \"../options\";\nimport StatementParser from \"./statement\";\nimport { SCOPE_PROGRAM } from \"../util/scopeflags\";\nimport ScopeHandler from \"../util/scope\";\nimport ClassScopeHandler from \"../util/class-scope\";\nimport ProductionParameterHandler, {\n  PARAM_AWAIT,\n  PARAM,\n} from \"../util/production-parameter\";\n\nexport type PluginsMap = Map<string, { [string]: any }>;\n\nexport default class Parser extends StatementParser {\n  // Forward-declaration so typescript plugin can override jsx plugin\n  /*::\n  +jsxParseOpeningElementAfterName: (\n    node: JSXOpeningElement,\n  ) => JSXOpeningElement;\n  */\n\n  constructor(options: ?Options, input: string) {\n    options = getOptions(options);\n    super(options, input);\n\n    const ScopeHandler = this.getScopeHandler();\n\n    this.options = options;\n    this.inModule = this.options.sourceType === \"module\";\n    this.scope = new ScopeHandler(this.raise.bind(this), this.inModule);\n    this.prodParam = new ProductionParameterHandler();\n    this.classScope = new ClassScopeHandler(this.raise.bind(this));\n    this.plugins = pluginsMap(this.options.plugins);\n    this.filename = options.sourceFilename;\n  }\n\n  // This can be overwritten, for example, by the TypeScript plugin.\n  getScopeHandler(): Class<ScopeHandler<*>> {\n    return ScopeHandler;\n  }\n\n  parse(): File {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    const file = this.startNode();\n    const program = this.startNode();\n    this.nextToken();\n    file.errors = null;\n    this.parseTopLevel(file, program);\n    file.errors = this.state.errors;\n    return file;\n  }\n}\n\nfunction pluginsMap(plugins: PluginList): PluginsMap {\n  const pluginMap: PluginsMap = new Map();\n  for (const plugin of plugins) {\n    const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];\n    if (!pluginMap.has(name)) pluginMap.set(name, options || {});\n  }\n  return pluginMap;\n}\n","// @flow\n\nimport { type Options } from \"./options\";\nimport {\n  hasPlugin,\n  validatePlugins,\n  mixinPluginNames,\n  mixinPlugins,\n  type PluginList,\n} from \"./plugin-utils\";\nimport Parser from \"./parser\";\n\nimport { types as tokTypes } from \"./tokenizer/types\";\nimport \"./tokenizer/context\";\n\nimport type { Expression, File } from \"./types\";\n\nexport function parse(input: string, options?: Options): File {\n  if (options && options.sourceType === \"unambiguous\") {\n    options = {\n      ...options,\n    };\n    try {\n      options.sourceType = \"module\";\n      const parser = getParser(options, input);\n      const ast = parser.parse();\n\n      if (parser.sawUnambiguousESM) {\n        return ast;\n      }\n\n      if (parser.ambiguousScriptDifferentAst) {\n        // Top level await introduces code which can be both a valid script and\n        // a valid module, but which produces different ASTs:\n        //    await\n        //    0\n        // can be parsed either as an AwaitExpression, or as two ExpressionStatements.\n        try {\n          options.sourceType = \"script\";\n          return getParser(options, input).parse();\n        } catch {}\n      } else {\n        // This is both a valid module and a valid script, but\n        // we parse it as a script by default\n        ast.program.sourceType = \"script\";\n      }\n\n      return ast;\n    } catch (moduleError) {\n      try {\n        options.sourceType = \"script\";\n        return getParser(options, input).parse();\n      } catch {}\n\n      throw moduleError;\n    }\n  } else {\n    return getParser(options, input).parse();\n  }\n}\n\nexport function parseExpression(input: string, options?: Options): Expression {\n  const parser = getParser(options, input);\n  if (parser.options.strictMode) {\n    parser.state.strict = true;\n  }\n  return parser.getExpression();\n}\n\nexport { tokTypes };\n\nfunction getParser(options: ?Options, input: string): Parser {\n  let cls = Parser;\n  if (options && options.plugins) {\n    validatePlugins(options.plugins);\n    cls = getParserClass(options.plugins);\n  }\n\n  return new cls(options, input);\n}\n\nconst parserClassCache: { [key: string]: Class<Parser> } = {};\n\n/** Get a Parser class with plugins applied. */\nfunction getParserClass(pluginsFromOptions: PluginList): Class<Parser> {\n  const pluginList = mixinPluginNames.filter(name =>\n    hasPlugin(pluginsFromOptions, name),\n  );\n\n  const key = pluginList.join(\"/\");\n  let cls = parserClassCache[key];\n  if (!cls) {\n    cls = Parser;\n    for (const plugin of pluginList) {\n      cls = mixinPlugins[plugin](cls);\n    }\n    parserClassCache[key] = cls;\n  }\n  return cls;\n}\n"],"names":["beforeExpr","startsExpr","isLoop","isAssign","prefix","postfix","TokenType","constructor","label","conf","keyword","rightAssociative","binop","updateContext","keywords","Map","createKeyword","name","options","token","set","createBinop","types","num","bigint","regexp","string","eof","bracketL","bracketHashL","bracketBarL","bracketR","bracketBarR","braceL","braceBarL","braceHashL","braceR","braceBarR","parenL","parenR","comma","semi","colon","doubleColon","dot","question","questionDot","arrow","template","ellipsis","backQuote","dollarBraceL","at","hash","interpreterDirective","eq","assign","incDec","bang","tilde","pipeline","nullishCoalescing","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","star","slash","exponent","_break","_case","_catch","_continue","_debugger","_default","_do","_else","_finally","_for","_function","_if","_return","_switch","_throw","_try","_var","_const","_while","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_in","_instanceof","_typeof","_void","_delete","SCOPE_OTHER","SCOPE_PROGRAM","SCOPE_FUNCTION","SCOPE_ARROW","SCOPE_SIMPLE_CATCH","SCOPE_SUPER","SCOPE_DIRECT_SUPER","SCOPE_CLASS","SCOPE_TS_MODULE","SCOPE_VAR","BIND_KIND_VALUE","BIND_KIND_TYPE","BIND_SCOPE_VAR","BIND_SCOPE_LEXICAL","BIND_SCOPE_FUNCTION","BIND_SCOPE_OUTSIDE","BIND_FLAGS_NONE","BIND_FLAGS_CLASS","BIND_FLAGS_TS_ENUM","BIND_FLAGS_TS_CONST_ENUM","BIND_FLAGS_TS_EXPORT_ONLY","BIND_CLASS","BIND_LEXICAL","BIND_VAR","BIND_FUNCTION","BIND_TS_INTERFACE","BIND_TS_TYPE","BIND_TS_ENUM","BIND_TS_AMBIENT","BIND_NONE","BIND_OUTSIDE","BIND_TS_CONST_ENUM","BIND_TS_NAMESPACE","CLASS_ELEMENT_FLAG_STATIC","CLASS_ELEMENT_KIND_GETTER","CLASS_ELEMENT_KIND_SETTER","CLASS_ELEMENT_KIND_ACCESSOR","CLASS_ELEMENT_STATIC_GETTER","CLASS_ELEMENT_STATIC_SETTER","CLASS_ELEMENT_INSTANCE_GETTER","CLASS_ELEMENT_INSTANCE_SETTER","CLASS_ELEMENT_OTHER","lineBreak","lineBreakG","RegExp","source","isNewLine","code","skipWhiteSpace","isWhitespace","Position","line","col","column","SourceLocation","start","end","getLineInfo","input","offset","lineStart","match","lastIndex","exec","index","BaseParser","sawUnambiguousESM","ambiguousScriptDifferentAst","hasPlugin","plugins","has","getPluginOption","plugin","get","last","stack","length","CommentsParser","addComment","comment","filename","loc","state","trailingComments","push","leadingComments","adjustCommentsAfterTrailingComma","node","elements","takeAllComments","lastElement","i","j","commentPreviousNode","splice","newTrailingComments","leadingComment","undefined","processComment","type","body","commentStack","firstChild","lastChild","lastInStack","pop","properties","arguments","slice","innerComments","Errors","Object","freeze","ArgumentsDisallowedInInitializer","AsyncFunctionInSingleStatementContext","AwaitBindingIdentifier","AwaitExpressionFormalParameter","AwaitNotInAsyncFunction","BadGetterArity","BadSetterArity","BadSetterRestParameter","ConstructorClassField","ConstructorClassPrivateField","ConstructorIsAccessor","ConstructorIsAsync","ConstructorIsGenerator","DeclarationMissingInitializer","DecoratorBeforeExport","DecoratorConstructor","DecoratorExportClass","DecoratorSemicolon","DeletePrivateField","DestructureNamedImport","DuplicateConstructor","DuplicateDefaultExport","DuplicateExport","DuplicateProto","DuplicateRegExpFlags","ElementAfterRest","EscapedCharNotAnIdentifier","ForInOfLoopInitializer","GeneratorInSingleStatementContext","IllegalBreakContinue","IllegalLanguageModeDirective","IllegalReturn","ImportCallArgumentTrailingComma","ImportCallArity","ImportCallArityLtOne","ImportCallNotNewExpression","ImportCallSpreadArgument","ImportMetaOutsideModule","ImportOutsideModule","InvalidCodePoint","InvalidDigit","InvalidEscapeSequence","InvalidEscapeSequenceTemplate","InvalidEscapedReservedWord","InvalidIdentifier","InvalidLhs","InvalidLhsBinding","InvalidNumber","InvalidOrUnexpectedToken","InvalidParenthesizedAssignment","InvalidPrivateFieldResolution","InvalidPropertyBindingPattern","InvalidRestAssignmentPattern","LabelRedeclaration","LetInLexicalBinding","MalformedRegExpFlags","MissingClassName","MissingEqInAssignment","MissingUnicodeEscape","MixingCoalesceWithLogical","ModuleExportUndefined","MultipleDefaultsInSwitch","NewlineAfterThrow","NoCatchOrFinally","NumberIdentifier","NumericSeparatorInEscapeSequence","ObsoleteAwaitStar","OptionalChainingNoNew","OptionalChainingNoTemplate","ParamDupe","PatternHasAccessor","PatternHasMethod","PipelineBodyNoArrow","PipelineBodySequenceExpression","PipelineHeadSequenceExpression","PipelineTopicUnused","PrimaryTopicNotAllowed","PrimaryTopicRequiresSmartPipeline","PrivateNameRedeclaration","RecordExpressionBarIncorrectEndSyntaxType","RecordExpressionBarIncorrectStartSyntaxType","RecordExpressionHashIncorrectStartSyntaxType","RestTrailingComma","SloppyFunction","StaticPrototype","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","StrictOctalLiteral","StrictWith","SuperNotAllowed","SuperPrivateField","TrailingDecorator","TupleExpressionBarIncorrectEndSyntaxType","TupleExpressionBarIncorrectStartSyntaxType","TupleExpressionHashIncorrectStartSyntaxType","UnexpectedArgumentPlaceholder","UnexpectedAwaitAfterPipelineBody","UnexpectedDigitAfterHash","UnexpectedImportExport","UnexpectedKeyword","UnexpectedLeadingDecorator","UnexpectedLexicalDeclaration","UnexpectedNewTarget","UnexpectedNumericSeparator","UnexpectedPrivateField","UnexpectedReservedWord","UnexpectedSuper","UnexpectedToken","UnexpectedTokenUnaryExponentiation","UnsupportedBind","UnsupportedDecoratorExport","UnsupportedDefaultExport","UnsupportedImport","UnsupportedMetaProperty","UnsupportedParameterDecorator","UnsupportedPropertyDecorator","UnsupportedSuper","UnterminatedComment","UnterminatedRegExp","UnterminatedString","UnterminatedTemplate","VarRedeclaration","YieldBindingIdentifier","YieldInParameter","ZeroDigitNumericSeparator","LocationParser","getLocationForPosition","pos","startLoc","lastTokStart","lastTokStartLoc","endLoc","lastTokEnd","lastTokEndLoc","raise","errorTemplate","params","raiseWithData","data","message","replace","_","_raise","errorContext","err","SyntaxError","errorRecovery","isLookahead","errors","isSimpleProperty","kind","method","superClass","estreeParseRegExpLiteral","pattern","flags","regex","e","estreeParseLiteral","estreeParseBigIntLiteral","value","bigInt","BigInt","String","parseLiteral","directiveToStmt","directive","directiveLiteral","stmt","startNodeAt","expression","raw","extra","finishNodeAt","initFunction","isAsync","checkDeclaration","checkGetterSetterParams","prop","paramCount","checkLVal","expr","bindingType","checkClashes","contextDescription","disallowLetBinding","forEach","checkDuplicatedProto","protoRef","refExpressionErrors","computed","shorthand","key","used","doubleProto","isValidDirective","parenthesized","stmtToDirective","parseBlockBody","allowDirectives","topLevel","directiveStatements","directives","map","d","concat","pushClassMethod","classBody","isGenerator","isConstructor","allowsDirectSuper","parseMethod","typeParameters","parseExprAtom","tt","startPos","parseFunctionBody","allowExpression","isMethod","allowDirectSuper","inClassScope","funcNode","startNode","finishNode","parseObjectMethod","isPattern","containsEsc","parseObjectProperty","toAssignable","toAssignableObjectExpressionProp","isLast","finishCallExpression","optional","callee","toReferencedListDeep","exprList","isParenthesizedExpr","parseExport","exported","specifiers","TokContext","isExpr","preserveSpace","override","braceStatement","braceExpression","templateQuasi","parenStatement","parenExpression","p","readTmplToken","functionExpression","functionStatement","context","exprAllowed","out","curContext","prevType","allowed","prodParam","hasYield","isIterator","braceIsBlock","statementParens","test","b_stat","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","isIdentifierStart","fromCharCode","isIdentifierChar","reservedWords","strict","strictBind","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","keywordRelationalOperator","isIteratorStart","current","next","reservedTypes","FlowErrors","AmbiguousConditionalArrow","AmbiguousDeclareModuleKind","AssignReservedType","DeclareClassElement","DeclareClassFieldInitializer","DuplicateDeclareModuleExports","EnumBooleanMemberNotInitialized","EnumDuplicateMemberName","EnumInconsistentMemberValues","EnumInvalidExplicitType","EnumInvalidExplicitTypeUnknownSupplied","EnumInvalidMemberInitializerPrimaryType","EnumInvalidMemberInitializerSymbolType","EnumInvalidMemberInitializerUnknownType","EnumInvalidMemberName","EnumNumberMemberNotInitialized","EnumStringMemberInconsistentlyInitailized","ImportTypeShorthandOnlyInPureImport","InexactInsideExact","InexactInsideNonObject","InexactVariance","InvalidNonTypeImportInDeclareModule","MissingTypeParamDefault","NestedDeclareModule","NestedFlowComment","OptionalBindingPattern","SpreadVariance","TypeBeforeInitializer","TypeCastInPattern","UnexpectedExplicitInexactInObject","UnexpectedReservedType","UnexpectedReservedUnderscore","UnexpectedSpaceBetweenModuloChecks","UnexpectedSpreadType","UnexpectedSubtractionOperand","UnexpectedTokenAfterTypeParameter","UnsupportedDeclareExportKind","UnsupportedStatementInDeclareModule","UnterminatedFlowComment","isEsModuleType","bodyElement","declaration","hasTypeImportKind","importKind","isMaybeDefaultImport","exportSuggestions","const","let","interface","partition","list","list1","list2","FLOW_PRAGMA_REGEX","flowPragma","shouldParseTypes","shouldParseEnums","finishToken","val","matches","Error","flowParseTypeInitialiser","tok","oldInType","inType","expect","flowParseType","flowParsePredicate","moduloLoc","moduloPos","checksLoc","expectContextual","eat","parseExpression","flowParseTypeAndPredicateInitialiser","predicate","flowParseDeclareClass","flowParseInterfaceish","flowParseDeclareFunction","id","parseIdentifier","typeNode","typeContainer","isRelational","flowParseTypeParameterDeclaration","tmp","flowParseFunctionTypeParams","rest","returnType","typeAnnotation","resetEndLocation","semicolon","flowParseDeclare","insideModule","flowParseDeclareVariable","eatContextual","flowParseDeclareModuleExports","flowParseDeclareModule","isContextual","flowParseDeclareTypeAlias","flowParseDeclareOpaqueType","flowParseDeclareInterface","flowParseDeclareExportDeclaration","unexpected","flowParseTypeAnnotatableIdentifier","scope","declareName","enter","bodyNode","parseImport","exit","hasModuleExport","default","isLet","suggestion","exportKind","flowParseTypeAnnotation","flowParseTypeAlias","flowParseOpaqueType","isClass","flowParseRestrictedIdentifier","extends","implements","mixins","flowParseInterfaceExtends","flowParseObjectType","allowStatic","allowExact","allowSpread","allowProto","allowInexact","flowParseQualifiedTypeIdentifier","flowParseTypeParameterInstantiation","flowParseInterface","checkNotUnderscore","checkReservedType","liberal","right","declare","supertype","impltype","flowParseTypeParameter","requireDefault","nodeStart","variance","flowParseVariance","ident","bound","jsxTagStart","defaultRequired","typeParameter","expectRelational","oldNoAnonFunctionType","noAnonFunctionType","flowParseTypeParameterInstantiationCallOrNew","flowParseTypeOrImplicitInstantiation","flowParseInterfaceType","flowParseObjectPropertyKey","flowParseObjectTypeIndexer","isStatic","static","lookahead","flowParseObjectTypeInternalSlot","flowParseObjectTypeMethodish","flowParseFunctionTypeParam","flowParseObjectTypeCallProperty","valueNode","callProperties","indexers","internalSlots","endDelim","exact","inexact","protoStart","inexactStart","propOrInexact","flowParseObjectTypeProperty","flowObjectTypeSemicolon","isInexactToken","argument","proto","flowCheckGetterSetterParams","property","node2","qualification","flowParseGenericType","flowParseTypeofType","flowParsePrimaryType","flowParseTupleType","lh","reinterpretTypeAsFunctionTypeParam","flowIdentToTypeAnnotation","isGroupedType","createIdentifier","flowParsePostfixType","canInsertSemicolon","elementType","flowParsePrefixType","flowParseAnonFunctionWithoutParens","param","flowParseIntersectionType","flowParseUnionType","allowPrimitiveOverride","typeCastToParameter","allowExpressionBody","forwardNoArrowParamsConversionAt","parseFunctionBodyAndFinish","parseStatement","flowParseEnumDeclaration","parseExpressionStatement","shouldParseExportDeclaration","isExportDefaultSpecifier","parseExportDefaultExpression","parseConditional","noIn","refNeedsArrowPos","result","tryParse","error","failState","clone","originalNoArrowAt","noArrowAt","consequent","failed","tryParseConditionalConsequent","valid","invalid","getArrowLikeExpressions","alternate","parseMaybeAssign","noArrowParamsConversionAt","disallowInvalid","arrows","finishArrowValidation","every","isAssignable","toAssignableList","trailingComma","checkParams","parse","indexOf","parseParenItem","typeCastNode","assertModuleNodeAllowed","decl","parseExportDeclaration","declarationNode","parseExportSpecifiers","parseExportFrom","eatExportStar","maybeParseExportNamespaceSpecifier","hasNamespace","parseClassId","isStatement","optionalId","parseClassMember","member","constructorAllowsSuper","parseClassMemberFromModifier","getTokenFromCode","charCodeAt","finishOp","readWord","isBinding","element","operator","trailingCommaPos","toReferencedList","parseClassProperty","parseClassPrivateProperty","isClassMethod","isClassProperty","isNonstaticConstructor","pushClassPrivateMethod","parseClassSuper","superTypeParameters","implemented","parsePropertyName","isPrivateNameAllowed","parseObjPropValue","parseAssignableListItemTypes","parseMaybeDefault","left","shouldParseDefaultImport","parseImportSpecifierLocal","specifier","local","maybeParseDefaultImportSpecifier","parseImportSpecifier","firstIdentLoc","firstIdent","specifierTypeKind","isLookaheadContextual","as_ident","imported","__clone","nodeIsTypeImport","specifierIsTypeImport","checkReservedWord","parseFunctionParams","allowModifiers","parseVarId","parseAsyncArrowFromCallExpression","call","shouldParseAsyncArrow","afterLeftParse","jsx","tc","j_oTag","j_expr","arrowExpression","resetStartLocationFromNode","thrown","parseArrow","shouldParseArrow","setArrowFunctionParameters","allowDuplicates","isArrowFunction","parseParenAndDistinguishExpression","canBeArrow","parseSubscripts","base","noCalls","parseCallExpressionArguments","abort","parseAsyncArrowWithTypeParameters","aborted","parseSubscript","subscriptState","isLookaheadRelational","optionalChainMember","stop","typeArguments","parseNewArguments","targs","parseArrowExpression","readToken_mult_modulo","hasFlowComment","nextToken","readToken_pipe_amp","parseTopLevel","file","program","fileNode","skipBlockComment","skipFlowComment","hasFlowCommentCompletion","shiftToFirstNonWhiteSpace","includes","ch2","ch3","flowEnumErrorBooleanMemberNotInitialized","enumName","memberName","flowEnumErrorInvalidMemberName","toUpperCase","flowEnumErrorDuplicateMemberName","flowEnumErrorInconsistentMemberValues","flowEnumErrorInvalidExplicitType","suppliedType","flowEnumErrorInvalidMemberInitializer","explicitType","flowEnumErrorNumberMemberNotInitialized","flowEnumErrorStringMemberInconsistentlyInitailized","flowEnumMemberInit","endOfInit","literal","parseBooleanLiteral","flowEnumMemberRaw","init","flowEnumCheckExplicitTypeMismatch","expectedType","flowEnumMembers","seenNames","members","booleanMembers","numberMembers","stringMembers","defaultedMembers","memberNode","add","flowEnumStringMembers","initializedMembers","flowEnumParseExplicitType","flowEnumBody","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","entities","quot","amp","apos","lt","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","HEX_NUMBER","DECIMAL_NUMBER","JsxErrors","AttributeIsEmpty","MissingClosingTagFragment","MissingClosingTagElement","UnsupportedJsxValue","UnterminatedJsxContent","UnwrappedAdjacentJSXElements","j_cTag","jsxName","jsxText","jsxTagEnd","isFragment","object","getQualifiedJSXName","namespace","jsxReadToken","chunkStart","ch","jsxReadEntity","jsxReadNewLine","normalizeCRLF","curLine","jsxReadString","quote","str","count","entity","substr","fromCodePoint","parseInt","XHTMLEntities","jsxReadWord","jsxParseIdentifier","jsxParseNamespacedName","jsxParseElementName","newNode","jsxParseAttributeValue","jsxParseExpressionContainer","jsxParseEmptyExpression","jsxParseSpreadChild","jsxParseAttribute","jsxParseOpeningElementAt","jsxParseOpeningElementAfterName","attributes","selfClosing","jsxParseClosingElementAt","jsxParseElementAt","children","openingElement","closingElement","contents","openingFragment","closingFragment","jsxParseElement","inPropertyName","Scope","var","lexical","functions","ScopeHandler","scopeStack","undefinedExports","undefinedPrivateNames","inFunction","currentVarScope","allowSuper","currentThisScope","inClass","inNonArrowFunction","treatFunctionsAsVar","treatFunctionsAsVarInScope","currentScope","createScope","checkRedeclarationInScope","maybeExportDefined","delete","isRedeclaredInScope","checkLocalExport","TypeScriptScope","enums","constEnums","classes","exportOnlyBindings","TypeScriptScopeHandler","isConst","wasConst","PARAM","PARAM_YIELD","PARAM_AWAIT","PARAM_RETURN","ProductionParameterHandler","stacks","currentFlags","hasAwait","hasReturn","functionFlags","nonNull","x","assert","TSErrors","ClassMethodHasDeclare","ClassMethodHasReadonly","DeclareClassFieldHasInitializer","DuplicateModifier","EmptyHeritageClauseType","IndexSignatureHasAbstract","IndexSignatureHasAccessibility","IndexSignatureHasStatic","OptionalTypeBeforeRequired","PatternIsOptional","PrivateElementHasAbstract","PrivateElementHasAccessibility","TemplateTypeHasSubstitution","TypeAnnotationAfterAssign","UnexpectedReadonly","UnexpectedTypeAnnotation","UnexpectedTypeCastInParameter","UnsupportedImportTypeArgument","UnsupportedParameterPropertyKind","UnsupportedSignatureParameterKind","keywordTypeFromName","getScopeHandler","tsIsIdentifier","tsNextTokenCanFollowModifier","hasPrecedingLineBreak","tsParseModifier","allowedModifiers","modifier","tsTryParse","bind","tsParseModifiers","modified","hasOwnProperty","tsIsListTerminator","tsParseList","parseElement","tsParseDelimitedList","tsParseDelimitedListWorker","expectSuccess","tsParseBracketedList","bracket","skipFirstToken","tsParseImportType","qualifier","tsParseEntityName","tsParseTypeArguments","allowReservedWords","startNodeAtNode","tsParseTypeReference","typeName","tsParseThisTypePredicate","lhs","parameterName","tsParseTypeAnnotation","tsParseThisTypeNode","tsParseTypeQuery","exprName","tsParseTypeParameter","parseIdentifierName","constraint","tsEatThenParseType","tsTryParseTypeParameters","tsParseTypeParameters","tsTryNextParseConstantContext","tsFillSignature","returnToken","signature","returnTokenRequired","parameters","tsParseBindingListForSignature","tsParseTypeOrTypePredicateAnnotation","parseBindingList","tsParseTypeMemberSemicolon","tsParseSignatureMember","tsIsUnambiguouslyIndexSignature","tsTryParseIndexSignature","tsLookAhead","tsTryParseTypeAnnotation","tsParsePropertyOrMethodSignature","readonly","nodeAny","tsParseTypeMember","idx","tsParseTypeLiteral","tsParseObjectTypeMembers","tsIsStartOfMappedType","tsParseMappedTypeParameter","tsExpectThenParseType","tsParseMappedType","tsTryParseType","tsParseTupleType","elementTypes","tsParseTupleElementType","seenOptionalElement","elementNode","restNode","tsParseType","lookaheadCharCode","raiseRestNotLast","optionalTypeNode","tsParseParenthesizedType","tsParseFunctionOrConstructorType","tsParseLiteralTypeNode","tsParseTemplateLiteralType","templateNode","parseTemplate","expressions","tsParseThisTypeOrThisTypePredicate","thisKeyword","tsParseNonArrayType","parseMaybeUnary","tsParseArrayTypeOrHigher","objectType","indexType","tsParseTypeOperator","tsParseTypeOperatorOrHigher","tsCheckTypeAnnotationForReadOnly","tsParseInferType","find","kw","tsParseUnionOrIntersectionType","parseConstituentType","tsParseIntersectionTypeOrHigher","tsParseUnionTypeOrHigher","tsIsStartOfFunctionType","tsIsUnambiguouslyStartOfFunctionType","tsSkipParameterStart","braceStackCounter","tsInType","t","asserts","tsParseTypePredicateAsserts","thisTypePredicate","typePredicateVariable","tsParseTypePredicatePrefix","tsTryParseTypeOrTypePredicateAnnotation","eatColon","tsParseNonConditionalType","checkType","extendsType","trueType","falseType","tsParseTypeAssertion","tsNextThenParseType","tsParseHeritageClause","descriptor","originalStart","delimitedList","tsParseExpressionWithTypeArguments","tsParseInterfaceDeclaration","tsParseTypeAliasDeclaration","tsInNoContext","cb","oldContext","tsDoThenParseType","tsParseEnumMember","initializer","tsParseEnumDeclaration","tsParseModuleBlock","parseBlockOrModuleBlockBody","tsParseModuleOrNamespaceDeclaration","nested","inner","tsParseAmbientExternalModuleDeclaration","global","tsParseImportEqualsDeclaration","isExport","moduleReference","tsParseModuleReference","tsIsExternalModuleReference","tsParseExternalModuleReference","f","res","tsTryParseAndCatch","tsTryParseDeclare","nany","isLineTerminator","starttype","parseFunctionStatement","parseClass","parseVarStatement","tsParseDeclaration","tsTryParseExportDeclaration","tsParseExpressionStatement","mod","tsCheckLineTerminatorAndMatch","cls","abstract","tokenType","tsTryParseGenericAsyncArrowFunction","oldMaybeInArrowParameters","maybeInArrowParameters","oldYieldPos","yieldPos","oldAwaitPos","awaitPos","tsIsDeclarationStart","parseAssignableListItem","decorators","accessibility","parseAccessModifier","elt","pp","parameter","bodilessType","registerFunctionStatementId","nonNullExpression","atPossibleAsyncArrow","asyncArrowFn","parseTaggedTemplateExpression","args","parseExprOp","leftStartPos","leftStartLoc","minPrec","checkKeywords","checkDuplicateExports","ahead","importNode","isAbstractClass","parseStatementContent","parseClassMemberWithIsStatic","parsePostMemberNameModifiers","methodOrProp","isDeclare","resetStartLocation","parseClassPropertyAnnotation","definite","equal","typeCast","ct","parseBindingAtom","parseMaybeDecoratorArguments","isInParens","canHaveLeadingDecorator","getGetterSetterExpectedParamCount","baseCount","firstParam","hasContextParam","placeholder","parsePlaceholder","expectedNode","assertNoSpace","finishPlaceholder","isFinished","verifyBreakContinue","parseBlock","parseFunctionId","takeDecorators","parseClassBody","expectPlugin","maybeParseExportDefaultSpecifier","checkExport","filter","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","parseImportSource","parseV8Intrinsic","v8IntrinsicStart","identifier","some","Array","isArray","option","PIPELINE_PROPOSALS","RECORD_AND_TUPLE_SYNTAX_TYPES","validatePlugins","decoratorsBeforeExport","join","mixinPlugins","estree","flow","typescript","v8intrinsic","placeholders","mixinPluginNames","keys","defaultOptions","sourceType","sourceFilename","startLine","allowAwaitOutsideFunction","allowReturnOutsideFunction","allowImportExportEverywhere","allowSuperOutsideMethod","allowUndeclaredExports","strictMode","ranges","tokens","createParenthesizedExpressions","getOptions","opts","State","potentialArrowAt","inParameters","maybeInAsyncArrowHead","inPipeline","topicContext","maxNumOfResolvableTopics","maxTopicIndex","soloAwait","inFSharpPipelineDirectBody","labels","decoratorStack","comments","octalPositions","exportedIdentifiers","tokensLength","curPosition","skipArrays","isDigit","VALID_REGEX_FLAGS","forbiddenNumericSeparatorSiblings","decBinOct","hex","allowedNumericSeparatorSiblings","bin","oct","dec","Token","Tokenizer","pushToken","checkKeywordEscapes","old","curr","nextTokenStart","thisTokEnd","skip","setStrict","lastIndexOf","skipSpace","codePointAt","pushComment","block","text","skipLineComment","startSkip","loop","readToken_numberSign","readToken_interpreter","nextPos","readToken_dot","readNumber","readToken_slash","readRegexp","width","readToken_caret","readToken_plus_min","readToken_lt_gt","size","readToken_eq_excl","readToken_question","next2","readRadixNumber","readString","escaped","charAt","content","mods","char","charCode","readInt","radix","len","forceLen","allowNumSeparator","forbiddenSiblings","allowedSiblings","total","Infinity","prev","Number","isNaN","isBigInt","startsWithDot","isFloat","isNonOctalDecimalInt","octal","underscorePos","parseFloat","readCodePoint","throwOnInvalid","codePos","readHexChar","readEscapedChar","containsInvalid","inTemplate","octalStr","n","readWord1","escStart","identifierCheck","esc","keywordTypes","parent","update","UtilParser","addExtra","op","afterNext","isUnparsedContextual","nameStart","nameEnd","messageOrType","missingPlugin","expectOnePlugin","names","checkYieldAwaitInDefaultParams","fn","oldState","abortSignal","checkExpressionErrors","andThrow","shorthandAssign","ExpressionErrors","Node","parser","range","NodeUtils","locationNode","unwrapParenthesizedExpression","LValParser","checkToRestConversion","arg","raiseTrailingCommaAfterRest","parseSpread","parseRestBinding","parseObj","close","closeCharCode","allowEmpty","elts","first","checkCommaAfterRest","parseDecorator","strictModeChanged","elem","ExpressionParser","getExpression","paramFlags","parseYield","ownExpressionErrors","parseMaybeConditional","parseExprOps","prec","logical","coalesce","checkPipelineAtInfixOperator","parseExprOpRightExpr","nextOp","withTopicPermittingContext","parseSmartPipelineBody","parseExprOpBaseRightExpr","withSoloAwaitPermittingContext","parseFSharpPipelineBody","isAwaitAllowed","parseAwait","parseExprSubscripts","maybeAsyncArrow","oldMaybeInAsyncArrowHead","parseNoCallExpr","parseMaybePrivateName","classScope","usePrivateName","tag","quasi","importArg","possibleAsyncArrow","dynamicImport","allowPlaceholder","nodeForExtra","innerParenStart","oldInFSharpPipelineDirectBody","parseExprListItem","parseImportMetaProperty","parseFunction","oldLabels","parseExprList","ret","parseFunctionExpression","parseDecorators","parseNew","primaryTopicReferenceIsAllowedInCurrentTopicContext","registerTopicReference","isPrivate","meta","parseMetaProperty","propertyName","innerStartPos","innerStartLoc","spreadStart","optionalCommaStart","spreadNodeStartPos","spreadNodeStartLoc","innerEndPos","innerEndLoc","arrowNode","parenStart","metaProp","parseTemplateElement","isTagged","cooked","tail","curElt","quasis","isRecord","propHash","create","parseObjectMember","isAsyncProp","isGetterOrSetterMethod","oldInPropertyName","generator","async","isExpression","oldInParameters","oldStrict","hasStrictModeDirective","nonSimple","isSimpleParamList","errorPos","nameHash","identifierName","reservedTest","delegate","childExpression","pipelineStyle","checkSmartPipelineBodyStyle","checkSmartPipelineBodyEarlyErrors","parseSmartPipelineBodyInStyle","topicReferenceWasUsedInCurrentTopicContext","isSimpleReference","callback","outerContextTopicState","withTopicForbiddingContext","outerContextSoloAwaitState","loopLabel","switchLabel","FUNC_NO_FLAGS","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","FUNC_NULLABLE_ID","StatementParser","interpreter","parseInterpreterDirective","from","nextCh","parseBreakContinueStatement","parseDebuggerStatement","parseDoStatement","parseForStatement","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseWhileStatement","parseWithStatement","parseEmptyStatement","nextTokenCharCode","isAsyncFunction","maybeName","parseLabeledStatement","allowExport","currentContextDecorators","decorator","isBreak","lab","parseHeaderExpression","awaitAt","parseFor","parseVar","declarations","parseForIn","description","declarationPosition","discriminant","cases","cur","sawDefault","isCase","handler","clause","simple","finalizer","statementStart","createNewLexicalScope","afterBlockParse","parsedNonDirective","isForIn","await","isFor","isTypescript","statement","isHangingStatement","requireId","hadConstructor","publicMethod","privateMethod","publicProp","privateProp","publicMember","parseClassPropertyName","isSimple","maybeQuestionTokenStart","pushClassPrivateProperty","pushClassProperty","declarePrivateName","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","maybeParseExportNamedSpecifiers","hasDeclaration","maybeParseExportDeclaration","checkNames","isDefault","isFrom","nodes","parseNext","ClassScope","privateNames","loneAccessors","ClassScopeHandler","oldClassScope","redefined","accessor","oldStatic","newStatic","oldKind","newKind","Parser","pluginsMap","pluginMap","getParser","ast","moduleError","getParserClass","parserClassCache","pluginsFromOptions","pluginList"],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/CHANGELOG.md-565-```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/CHANGELOG.md:566:import(`./section-modules/${link.dataset.entryModule}.js`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/parser/CHANGELOG.md-567-.then(module => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/builder.js-41-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/builder.js:42:    throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/builder.js-43-  }, {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/builder.js-58-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/builder.js:59:      throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/builder.js-60-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/builder.js-78-    } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/builder.js:79:      err.stack += `\n    =============\n${rootStack}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/builder.js-80-      throw err;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/literal.js-72-  for (let i = 1; i < tpl.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/literal.js:73:    const value = `${prefix}${i - 1}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/literal.js-74-    names.push(value);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/formatters.js-9-  return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/formatters.js:10:    code: str => `/* @babel/template */;\n${str}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/formatters.js-11-    validate: () => {},
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/formatters.js-40-const expression = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/formatters.js:41:  code: str => `(\n${str}\n)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/formatters.js-42-  validate: ({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/populate.js-28-      if (!metadata.placeholderNames.has(key)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/populate.js:29:        throw new Error(`Unknown substitution "${key}" given`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/populate.js-30-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/populate.js-37-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/populate.js:38:      e.message = `@babel/template placeholder "${placeholder.name}": ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/template/lib/populate.js-39-      throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toIdentifier.js-20-  if (!(0, _isValidIdentifier.default)(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toIdentifier.js:21:    name = `_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toIdentifier.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toExpression.js-25-  if (!(0, _generated.isExpression)(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toExpression.js:26:    throw new Error(`cannot turn ${node.type} to an expression`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toExpression.js-27-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toKeyAlias.js-29-  if (node.computed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toKeyAlias.js:30:    alias = `[${alias}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toKeyAlias.js-31-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toKeyAlias.js-33-  if (node.static) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toKeyAlias.js:34:    alias = `static:${alias}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toKeyAlias.js-35-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toStatement.js-37-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toStatement.js:38:      throw new Error(`cannot turn ${node.type} to a statement`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/converters/toStatement.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-100-    for (let i = 0; i < val.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js:101:      const subkey = `${key}[${i}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-102-      const v = val[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-114-    if (values.indexOf(val) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js:115:      throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-116-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-131-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js:132:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js:148:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-149-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-159-    if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js:160:      throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-161-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-185-    if (errors.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js:186:      throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-187-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-219-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js:220:    throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-221-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-266-    if (validTypeOpts.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js:267:      throw new Error(`Unknown type option "${k}" on ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-293-      if (validFieldKeys.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js:294:        throw new Error(`Unknown field key "${k}" on ${type}.${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/utils.js-295-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/es2015.js-440-        if (node.quasis.length !== val.length + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/es2015.js:441:          throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/es2015.js-442-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-347-        if (!(0, _isValidIdentifier.default)(val, false)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js:348:          throw new TypeError(`"${val}" is not a valid identifier name`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-349-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-385-    if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name)) && node.name !== "this") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js:386:      throw new TypeError(`"${node.name}" is not a valid identifier`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-387-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-463-        if (invalid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js:464:          throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-465-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-654-    if (parent[listKey].length > index + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js:655:      throw new TypeError(`RestElement must be last element of ${listKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-656-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-802-    if (node.declarations.length !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js:803:      throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/definitions/core.js-804-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/asserts/assertNode.js-14-    const type = node && node.type || JSON.stringify(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/asserts/assertNode.js:15:    throw new TypeError(`Not a valid node of type "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/asserts/assertNode.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/asserts/generated/index.js-297-  if (!(0, _is.default)(type, node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/asserts/generated/index.js:298:    throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/asserts/generated/index.js-299-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/comments/addComments.js-9-  if (!comments || !node) return node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/comments/addComments.js:10:  const key = `${type}Comments`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/comments/addComments.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/builders/builder.js-20-  if (countArgs > keys.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/builders/builder.js:21:    throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/builders/builder.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/clone/cloneNode.js-47-  } else if (!has(_definitions.NODE_FIELDS, type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/clone/cloneNode.js:48:    throw new Error(`Unknown node type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/lib/clone/cloneNode.js-49-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js-16-writeFile(buildersFile, format(generateBuilders(), buildersFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js:17:console.log(`  ${chalk.green("✔")} Generated builders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js-18-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js-20-writeFile(validatorsFile, format(generateValidators(), validatorsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js:21:console.log(`  ${chalk.green("✔")} Generated validators`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js-22-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js-24-writeFile(assertsFile, format(generateAsserts(), assertsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js:25:console.log(`  ${chalk.green("✔")} Generated asserts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js-28-writeFile(constantsFile, format(generateConstants(), constantsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generateTypeHelpers.js:29:console.log(`  ${chalk.green("✔")} Generated constants`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/docs.js-86-        if (customTypes[key] && customTypes[key][field]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/docs.js:87:          fieldDescription.push(`: ${customTypes[key][field]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/docs.js-88-        } else if (validator) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateBuilders.js-21-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateBuilders.js:22:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateBuilders.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateBuilders.js-37-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateBuilders.js:38:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateBuilders.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateAsserts.js-20-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateAsserts.js:21:      \`Expected type "\${type}" with option \${JSON.stringify((opts: any))}, \` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateAsserts.js:22:        \`but instead got "\${node.type}".\`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateAsserts.js-23-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateConstants.js-12-  Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateConstants.js:13:    output += `export const ${type.toUpperCase()}_TYPES = FLIPPED_ALIAS_KEYS["${type}"];\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateConstants.js-14-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-109-      )}): ${NODE_PREFIX}${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:110:      `declare export { _${functionName} as ${functionName} }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-111-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-115-for (let i = 0; i < t.TYPES.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:116:  let decl = `declare function is${t.TYPES[i]}(node: ?Object, opts?: ?Object): boolean`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-117-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-118-  if (t.NODE_FIELDS[t.TYPES[i]]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:119:    decl += ` %checks (node instanceof ${NODE_PREFIX}${t.TYPES[i]})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-120-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-127-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:128:  `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-129-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:130:  `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-131-  // this smells like "internal API"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-132-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:133:  `declare function buildChildren(node: { children: Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment | ${NODE_PREFIX}JSXEmptyExpression> }): Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-134-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-154-  // converters/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:155:  `declare function ensureBlock(node: ${NODE_PREFIX}, key: string): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-156-  `declare function toBindingIdentifierName(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-157-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:158:  `declare function toBlock(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Expression, parent?: ${NODE_PREFIX}Function | null): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-159-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:160:  `declare function toComputedKey(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}Expression | ${NODE_PREFIX}Identifier): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-161-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:162:  `declare function toExpression(node: ${NODE_PREFIX}ExpressionStatement | ${NODE_PREFIX}Expression | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-163-  `declare function toIdentifier(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-164-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:165:  `declare function toKeyAlias(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-166-  // toSequenceExpression relies on types that aren't declared in flow
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-167-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:168:  `declare function toStatement(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function | ${NODE_PREFIX}AssignmentExpression, ignore?: boolean): ${NODE_PREFIX}Statement | void`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:169:  `declare function valueToNode(value: any): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-172-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:173:  `declare function removeTypeDuplicates(types: Array<${NODE_PREFIX}FlowType>): Array<${NODE_PREFIX}FlowType>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-174-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:175:  `declare function appendToMemberExpression(member: ${NODE_PREFIX}MemberExpression, append: ${NODE_PREFIX}, computed?: boolean): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-176-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:177:  `declare function inherits<T: Node>(child: T, parent: ${NODE_PREFIX} | null | void): T`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-178-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:179:  `declare function prependToMemberExpression(member: ${NODE_PREFIX}MemberExpression, prepend: ${NODE_PREFIX}Expression): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-180-  `declare function removeProperties<T>(n: T, opts: ?{}): void;`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-184-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:185:  `declare function getBindingIdentifiers(node: ${NODE_PREFIX}, duplicates: boolean, outerOnly?: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-186-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:187:  `declare function getOuterBindingIdentifiers(node: Node, duplicates: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-188-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-235-  code += `type ${NODE_PREFIX}${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js:236:    .map(type => `${NODE_PREFIX}${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/flow.js-237-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateValidators.js-7-  return (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateValidators.js:8:    leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateValidators.js-9-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateValidators.js-72-    const newType = definitions.DEPRECATED_KEYS[type];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateValidators.js:73:    const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/generateValidators.js-74-    output += addIsHelper(type, null, deprecated);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-97-    if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:98:      struct.push(`${fieldName}: ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-99-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:100:      struct.push(`"${fieldName}": ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-101-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-110-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:111:      `export function ${toFunctionName(type)}(${args.join(", ")}): ${type};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-112-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-115-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:116:      `declare function _${functionName}(${args.join(", ")}): ${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:117:      `export { _${functionName} as ${functionName}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-118-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-124-    t.NODE_FIELDS[typeName] || t.FLIPPED_ALIAS_KEYS[typeName]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:125:      ? `node is ${typeName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-126-      : "boolean";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-128-  lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:129:    `export function is${typeName}(node: object | null | undefined, opts?: object | null): ${result};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-130-    // TypeScript 3.7: https://github.com/microsoft/TypeScript/pull/32695 will allow assert declarations
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-311-  code += `/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:312: * @deprecated Use \`${t.DEPRECATED_KEYS[type]}\`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-313- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-320-  code += `export type ${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:321:    .map(type => `${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-322-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-327-for (const type in t.FLIPPED_ALIAS_KEYS) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js:328:  code += `  ${type}: ${type};\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/generators/typescript.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/utils/stringifyValidator.js-6-  if (validator.each) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/utils/stringifyValidator.js:7:    return `Array<${stringifyValidator(validator.each, nodePrefix)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/helpers/node_modules/@babel/types/scripts/utils/stringifyValidator.js-8-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/partial.js-59-        if (upwardRootDir !== null) return upwardRootDir;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/partial.js:60:        throw Object.assign(new Error(`Babel was run with rootMode:"upward" but a root could not ` + `be found when searching upward from "${rootDir}".\n` + `One of the following config files must be in the directory tree: ` + `"${_files.ROOT_CONFIG_FILENAMES.join(", ")}".`), {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/partial.js-61-          code: "BABEL_ROOT_NOT_FOUND",
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-64-  if (!filepath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js:65:    throw new Error(`Plugin ${name} not found relative to ${dirname}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-66-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-79-  if (!filepath) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js:80:    throw new Error(`Preset ${name} not found relative to ${dirname}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-81-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-93-  const isPreset = type === "preset";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js:94:  return name.replace(isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE, `babel-${type}-`).replace(isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE, `$1${type}-`).replace(isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE, `$1babel-${type}-`).replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`).replace(EXACT_RE, "");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-95-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-118-      if (resolvedOriginal) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js:119:        e.message += `\n- If you want to resolve "${name}", use "module:${name}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-120-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-133-    if (resolvedBabel) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js:134:      e.message += `\n- Did you mean "@babel/${name}"?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-135-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-148-    if (resolvedOppositeType) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js:149:      e.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-150-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-159-  if (LOADING_MODULES.has(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js:160:    throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/plugins.js-161-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/package.js-58-  } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/package.js:59:    err.message = `${filepath}: Error while parsing JSON - ${err.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/package.js-60-    throw err;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/package.js-63-  if (typeof options !== "object") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/package.js:64:    throw new Error(`${filepath}: Config returned typeof ${typeof options}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/package.js-65-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/package.js-67-  if (Array.isArray(options)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/package.js:68:    throw new Error(`${filepath}: Expected config object but found array`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/package.js-69-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/index-browser.js-42-function* loadConfig(name, dirname, envName, caller) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/index-browser.js:43:  throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/index-browser.js-44-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/index-browser.js-57-function loadPlugin(name, dirname) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/index-browser.js:58:  throw new Error(`Cannot load plugin ${name} relative to ${dirname} in a browser`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/index-browser.js-59-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/index-browser.js-61-function loadPreset(name, dirname) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/index-browser.js:62:  throw new Error(`Cannot load preset ${name} relative to ${dirname} in a browser`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/index-browser.js-63-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-132-    if (config && previousConfig) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js:133:      throw new Error(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().default.basename(previousConfig.filepath)}\n` + ` - ${config.filepath}\n` + `from ${dirname}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-134-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-152-  if (!conf) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js:153:    throw new Error(`Config file ${filepath} contains no configuration data`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-154-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-191-  } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js:192:    err.message = `${filepath}: Error while loading config - ${err.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-193-    throw err;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-206-  if (!options || typeof options !== "object" || Array.isArray(options)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js:207:    throw new Error(`${filepath}: Configuration should be an exported JavaScript object.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-208-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-225-  if (typeof babel !== "object" || Array.isArray(babel) || babel === null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js:226:    throw new Error(`${file.filepath}: .babel property must be an object`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-227-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-240-  } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js:241:    err.message = `${filepath}: Error while parsing config - ${err.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-242-    throw err;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-244-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js:245:  if (!options) throw new Error(`${filepath}: No config detected`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-246-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-247-  if (typeof options !== "object") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js:248:    throw new Error(`${filepath}: Config returned typeof ${typeof options}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-249-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-251-  if (Array.isArray(options)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js:252:    throw new Error(`${filepath}: Expected config object but found array`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/files/configuration.js-253-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/pattern-to-regex.js-29-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/pattern-to-regex.js:30:const sep = `\\${_path().default.sep}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/pattern-to-regex.js:31:const endSep = `(?:${sep}|$)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/pattern-to-regex.js:32:const substitution = `[^${sep}]+`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/pattern-to-regex.js:33:const starPat = `(?:${substitution}${sep})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/pattern-to-regex.js:34:const starPatLast = `(?:${substitution}${endSep})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/pattern-to-regex.js:35:const starStarPat = `${starPat}*?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/pattern-to-regex.js:36:const starStarPatLast = `${starPat}*?${starPatLast}?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/pattern-to-regex.js-37-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js-164-    if (!/^\[BABEL\]/.test(e.message)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js:165:      e.message = `[BABEL] ${context.filename || "unknown"}: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js-166-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js-201-      if (alias) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js:202:        e.message += ` (While processing: ${JSON.stringify(alias)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js-203-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js-253-      name: undefined,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js:254:      alias: `${alias}$inherits`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js-255-      value: plugin.inherits,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js-272-  if (options.test || options.include || options.exclude) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js:273:    const formattedPresetName = descriptor.name ? `"${descriptor.name}"` : "/* your preset */";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js:274:    throw new Error([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transform(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n"));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/full.js-275-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js-209-  const opts = options.env && options.env[envName];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js:210:  return opts ? descriptors(dirname, opts, `${alias}.env["${envName}"]`) : null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js-211-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js-218-  if (!opts) throw new Error("Assertion failure - missing override");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js:219:  return descriptors(dirname, opts, `${alias}.overrides[${index}]`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js-220-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js-228-  const opts = override.env && override.env[envName];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js:229:  return opts ? descriptors(dirname, opts, `${alias}.overrides[${index}].env["${envName}"]`) : null;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js-230-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js-294-  if (files.has(file)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js:295:    throw new Error(`Configuration cycle detected loading ${file.filepath}.\n` + `File already loaded following the config chain:\n` + Array.from(files, file => ` - ${file.filepath}`).join("\n"));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-chain.js-296-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js-27-    if (obj.enter || obj.exit) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js:28:      throw new Error(`.${key} cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js-29-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js-38-      if (handler !== "enter" && handler !== "exit") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js:39:        throw new Error(`.visitor["${key}"] may only have .enter and/or .exit handlers.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js-40-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js-42-  } else if (typeof value !== "function") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js:43:    throw new Error(`.visitor["${key}"] must be a function`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js-44-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js-61-    if (validator) validator(optLoc, obj[key]);else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js:62:      const invalidPluginPropertyError = new Error(`.${key} is not a valid Plugin property`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/plugins.js-63-      invalidPluginPropertyError.code = "BABEL_UNKNOWN_PLUGIN_PROPERTY";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-91-    if (type === "preset" && NONPRESET_VALIDATORS[key]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:92:      throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-93-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-95-    if (type !== "arguments" && ROOT_VALIDATORS[key]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:96:      throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-97-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-100-      if (type === "babelrcfile" || type === "extendsfile") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:101:        throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-102-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-103-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:104:      throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-105-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-120-    } = _removed.default[key];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:121:    throw new Error(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-122-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:123:    const unknownOptErr = new Error(`Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-124-    unknownOptErr.code = "BABEL_UNKNOWN_OPTION";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-140-  if (loc.parent.type === "env") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:141:    throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-142-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-164-  if (loc.parent.type === "env") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:165:    throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-166-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-168-  if (loc.parent.type === "overrides") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:169:    throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-170-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-178-      const env = (0, _optionAssertions.assertObject)(objLoc, item);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:179:      if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-180-      const overridesLoc = {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-193-  if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js:194:    e.message += `\n- Maybe you meant to use\n` + `"${type}": [\n  ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/options.js-195-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-30-    case "env":
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:31:      return `${msg(loc.parent)}.env["${loc.name}"]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-32-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-33-    case "overrides":
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:34:      return `${msg(loc.parent)}.overrides[${loc.index}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-35-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-36-    case "option":
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:37:      return `${msg(loc.parent)}.${loc.name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-38-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-39-    case "access":
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:40:      return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-41-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-42-    default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:43:      throw new Error(`Assertion failure: Unknown type ${loc.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-44-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-56-  if (value !== undefined && value !== "root" && value !== "upward" && value !== "upward-optional") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:57:    throw new Error(`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-58-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-64-  if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:65:    throw new Error(`${msg(loc)} must be a boolean, "inline", "both", or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-66-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-72-  if (value !== undefined && typeof value !== "boolean" && value !== "auto") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:73:    throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-74-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-80-  if (value !== undefined && value !== "module" && value !== "script" && value !== "unambiguous") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:81:    throw new Error(`${msg(loc)} must be "module", "script", "unambiguous", or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-82-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-91-    if (typeof obj["name"] !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:92:      throw new Error(`${msg(loc)} set but does not contain "name" property string`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-93-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-99-      if (value != null && typeof value !== "boolean" && typeof value !== "string" && typeof value !== "number") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:100:        throw new Error(`${msg(propLoc)} must be null, undefined, a boolean, a string, or a number.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-101-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-109-  if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:110:    throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-111-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-117-  if (value !== undefined && typeof value !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:118:    throw new Error(`${msg(loc)} must be a string, or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-119-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-125-  if (value !== undefined && typeof value !== "function") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:126:    throw new Error(`${msg(loc)} must be a function, or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-127-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-133-  if (value !== undefined && typeof value !== "boolean") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:134:    throw new Error(`${msg(loc)} must be a boolean, or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-135-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-141-  if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:142:    throw new Error(`${msg(loc)} must be an object, or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-143-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-149-  if (value != null && !Array.isArray(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:150:    throw new Error(`${msg(loc)} must be an array, or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-151-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-167-  if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:168:    throw new Error(`${msg(loc)} must be an array of string/Function/RegExp values, or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-169-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-179-      if (!checkValidTest(item)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:180:        throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-181-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-183-  } else if (!checkValidTest(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:184:    throw new Error(`${msg(loc)} must be a string/Function/RegExp, or an array of those`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-185-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-195-  if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:196:    throw new Error(`${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-197-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-207-      if (!checkValidTest(item)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:208:        throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-209-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-211-  } else if (!checkValidTest(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:212:    throw new Error(`${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + `or an array of those, got ${JSON.stringify(value)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-213-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-230-    if (value.length === 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:231:      throw new Error(`${msg(loc)} must include an object`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-232-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-234-    if (value.length > 3) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:235:      throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-236-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-243-      if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts) || opts === null)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:244:        throw new Error(`${msg(access(loc, 1))} must be an object, false, or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-245-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-251-      if (name !== undefined && typeof name !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:252:        throw new Error(`${msg(access(loc, 2))} must be a string, or undefined`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-253-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-263-  if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js:264:    throw new Error(`${msg(loc)} must be a string, object, function`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/validation/option-assertions.js-265-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/helpers/config-api.js-60-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/helpers/config-api.js:61:    range = `^${range}.0.0-0`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/helpers/config-api.js-62-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/helpers/config-api.js-74-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/helpers/config-api.js:75:  const err = new Error(`Requires Babel "${range}", but was loaded with "${_.version}". ` + `If you are sure you have a compatible version of @babel/core, ` + `it is likely that something in your build process is loading the ` + `wrong version. Inspect the stack trace of this error to look for ` + `the first entry that doesn't mention "@babel/core" or "babel-core" ` + `to see what is calling Babel.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/helpers/config-api.js-76-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-110-    type,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js:111:    alias: `${alias}$${index}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-112-    ownPass: !!ownPass
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-161-  if (!value) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js:162:    throw new Error(`Unexpected falsy value: ${String(value)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-163-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-173-  if (typeof value !== "object" && typeof value !== "function") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js:174:    throw new Error(`Unsupported format: ${typeof value}. Expected an object or a function.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-175-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-177-  if (filepath !== null && typeof value === "object" && value) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js:178:    throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-179-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-205-      const conflicts = items.filter(i => i.value === item.value);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js:206:      throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they need separate names, e.g.`, ``, `  plugins: [`, `    ['some-plugin', {}],`, `    ['some-plugin', {}, 'some unique name'],`, `  ]`, ``, `Duplicates detected are:`, `${JSON.stringify(conflicts, null, 2)}`].join("\n"));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/config/config-descriptors.js-207-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/index.js-38-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/index.js:39:    e.message = `${(_opts$filename = opts.filename) != null ? _opts$filename : "unknown"}: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/index.js-40-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/index.js-59-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/index.js:60:    e.message = `${(_opts$filename2 = opts.filename) != null ? _opts$filename2 : "unknown"}: ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/index.js-61-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/merge-map.js-89-function makeMappingKey(item) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/merge-map.js:90:  return `${item.line}/${item.columnStart}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/merge-map.js-91-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/file.js-169-    if (typeof versionRange !== "string") return true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/file.js:170:    if (_semver().default.valid(versionRange)) versionRange = `^${versionRange}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/file.js:171:    return !_semver().default.intersects(`<${minVersion}`, versionRange) && !_semver().default.intersects(`>=8.0.0`, versionRange);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/file.js-172-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/file.js-226-      if (loc) txt += " Location has been estimated.";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/file.js:227:      msg += ` (${txt})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/file/file.js-228-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/normalize-file.js-81-function* normalizeFile(pluginPasses, options, code, ast) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/normalize-file.js:82:  code = `${code || ""}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/transformation/normalize-file.js-83-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/tools/build-external-helpers.js-115-  const getHelperReference = name => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/tools/build-external-helpers.js:116:    return namespace ? t().memberExpression(namespace, t().identifier(name)) : t().identifier(`_${name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/tools/build-external-helpers.js-117-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/tools/build-external-helpers.js-143-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/tools/build-external-helpers.js:144:    throw new Error(`Unsupported output type ${outputType}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/tools/build-external-helpers.js-145-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/index.js-86-      if (missingPlugin) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/index.js:87:        err.message = `${filename}: ` + (0, _missingPluginHelper.default)(missingPlugin[0], loc, codeFrame);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/index.js-88-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/index.js:89:        err.message = `${filename}: ${err.message}\n\n` + codeFrame;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/index.js-90-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js-220-  url
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js:221:}) => `${name} (${url})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js-222-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js-223-function generateMissingPluginMessage(missingPluginName, loc, codeFrame) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js:224:  let helpMessage = `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` + `(${loc.line}:${loc.column + 1}):\n\n` + codeFrame;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js-225-  const pluginInfo = pluginNameMap[missingPluginName];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js-235-        const transformPluginInfo = getNameURLCombination(transformPlugin);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js:236:        helpMessage += `\n\nAdd ${transformPluginInfo} to the 'plugins' section of your Babel config ` + `to enable transformation.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js-237-      } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js-238-        const syntaxPluginInfo = getNameURLCombination(syntaxPlugin);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js:239:        helpMessage += `\n\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` + `to enable parsing.`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js-240-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/index.js-264-function Plugin(alias) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/index.js:265:  throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/lib/index.js-266-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/source-map/dist/source-map.min.js.map:1:{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///source-map.min.js","webpack:///webpack/bootstrap 42c329f865e32e011afb","webpack:///./source-map.js","webpack:///./lib/source-map-generator.js","webpack:///./lib/base64-vlq.js","webpack:///./lib/base64.js","webpack:///./lib/util.js","webpack:///./lib/array-set.js","webpack:///./lib/mapping-list.js","webpack:///./lib/source-map-consumer.js","webpack:///./lib/binary-search.js","webpack:///./lib/quick-sort.js","webpack:///./lib/source-node.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","SourceMapGenerator","SourceMapConsumer","SourceNode","aArgs","_file","util","getArg","_sourceRoot","_skipValidation","_sources","ArraySet","_names","_mappings","MappingList","_sourcesContents","base64VLQ","prototype","_version","fromSourceMap","aSourceMapConsumer","sourceRoot","generator","file","eachMapping","mapping","newMapping","generated","line","generatedLine","column","generatedColumn","source","relative","original","originalLine","originalColumn","name","addMapping","sources","forEach","sourceFile","content","sourceContentFor","setSourceContent","_validateMapping","String","has","add","aSourceFile","aSourceContent","Object","create","toSetString","keys","length","applySourceMap","aSourceMapPath","Error","newSources","newNames","unsortedForEach","originalPositionFor","join","aGenerated","aOriginal","aSource","aName","JSON","stringify","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedColumn","previousGeneratedLine","previousOriginalColumn","previousOriginalLine","previousName","previousSource","result","mappings","toArray","i","len","compareByGeneratedPositionsInflated","encode","indexOf","_generateSourcesContent","aSources","aSourceRoot","map","key","hasOwnProperty","toJSON","version","names","sourcesContent","toString","toVLQSigned","aValue","fromVLQSigned","isNegative","shifted","base64","VLQ_BASE_SHIFT","VLQ_BASE","VLQ_BASE_MASK","VLQ_CONTINUATION_BIT","digit","encoded","vlq","decode","aStr","aIndex","aOutParam","continuation","strLen","shift","charCodeAt","charAt","value","rest","intToCharMap","split","number","TypeError","charCode","bigA","bigZ","littleA","littleZ","zero","nine","plus","slash","littleOffset","numberOffset","aDefaultValue","arguments","urlParse","aUrl","match","urlRegexp","scheme","auth","host","port","path","urlGenerate","aParsedUrl","url","normalize","aPath","part","isAbsolute","parts","up","splice","aRoot","aPathUrl","aRootUrl","dataUrlRegexp","joined","replace","level","index","lastIndexOf","slice","Array","substr","identity","s","isProtoString","fromSetString","compareByOriginalPositions","mappingA","mappingB","onlyCompareOriginal","cmp","compareByGeneratedPositionsDeflated","onlyCompareGenerated","strcmp","aStr1","aStr2","supportsNullProto","obj","_array","_set","hasNativeMap","Map","fromArray","aArray","aAllowDuplicates","set","size","getOwnPropertyNames","sStr","isDuplicate","idx","push","get","at","aIdx","generatedPositionAfter","lineA","lineB","columnA","columnB","_sorted","_last","aCallback","aThisArg","aMapping","sort","aSourceMap","sourceMap","parse","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","Mapping","lastOffset","_sections","offset","offsetLine","offsetColumn","generatedOffset","consumer","binarySearch","quickSort","__generatedMappings","defineProperty","_parseMappings","__originalMappings","_charIsMappingSeparator","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","aContext","aOrder","context","order","_generatedMappings","_originalMappings","allGeneratedPositionsFor","needle","_findMapping","undefined","lastColumn","smc","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","str","segment","end","cachedSegments","temp","originalMappings","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","search","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","some","sc","nullOnMissing","fileUriAbsPath","generatedPositionFor","constructor","j","sectionIndex","section","bias","every","generatedPosition","ret","sectionMappings","adjustedMapping","recursiveSearch","aLow","aHigh","aHaystack","aCompare","mid","Math","floor","swap","ary","x","y","randomIntInRange","low","high","round","random","doQuickSort","comparator","r","pivotIndex","pivot","q","aLine","aColumn","aChunks","children","sourceContents","isSourceNode","REGEX_NEWLINE","NEWLINE_CODE","fromStringWithSourceMap","aGeneratedCode","aRelativePath","addMappingWithCode","code","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lineContents","newLine","lastGeneratedLine","lastMapping","nextLine","aChunk","isArray","chunk","prepend","unshift","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent"],"mappings":"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","file":"source-map.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"sourceMap\"] = factory();\n\telse\n\t\troot[\"sourceMap\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/*\n\t * Copyright 2009-2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE.txt or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\texports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\texports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer;\n\texports.SourceNode = __webpack_require__(10).SourceNode;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar base64VLQ = __webpack_require__(2);\n\tvar util = __webpack_require__(4);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar MappingList = __webpack_require__(6).MappingList;\n\t\n\t/**\n\t * An instance of the SourceMapGenerator represents a source map which is\n\t * being built incrementally. You may pass an object with the following\n\t * properties:\n\t *\n\t *   - file: The filename of the generated source.\n\t *   - sourceRoot: A root for all relative URLs in this source map.\n\t */\n\tfunction SourceMapGenerator(aArgs) {\n\t  if (!aArgs) {\n\t    aArgs = {};\n\t  }\n\t  this._file = util.getArg(aArgs, 'file', null);\n\t  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n\t  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t  this._mappings = new MappingList();\n\t  this._sourcesContents = null;\n\t}\n\t\n\tSourceMapGenerator.prototype._version = 3;\n\t\n\t/**\n\t * Creates a new SourceMapGenerator based on a SourceMapConsumer\n\t *\n\t * @param aSourceMapConsumer The SourceMap.\n\t */\n\tSourceMapGenerator.fromSourceMap =\n\t  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n\t    var sourceRoot = aSourceMapConsumer.sourceRoot;\n\t    var generator = new SourceMapGenerator({\n\t      file: aSourceMapConsumer.file,\n\t      sourceRoot: sourceRoot\n\t    });\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      var newMapping = {\n\t        generated: {\n\t          line: mapping.generatedLine,\n\t          column: mapping.generatedColumn\n\t        }\n\t      };\n\t\n\t      if (mapping.source != null) {\n\t        newMapping.source = mapping.source;\n\t        if (sourceRoot != null) {\n\t          newMapping.source = util.relative(sourceRoot, newMapping.source);\n\t        }\n\t\n\t        newMapping.original = {\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        };\n\t\n\t        if (mapping.name != null) {\n\t          newMapping.name = mapping.name;\n\t        }\n\t      }\n\t\n\t      generator.addMapping(newMapping);\n\t    });\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        generator.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t    return generator;\n\t  };\n\t\n\t/**\n\t * Add a single mapping from original source line and column to the generated\n\t * source's line and column for this source map being created. The mapping\n\t * object should have the following properties:\n\t *\n\t *   - generated: An object with the generated line and column positions.\n\t *   - original: An object with the original line and column positions.\n\t *   - source: The original source file (relative to the sourceRoot).\n\t *   - name: An optional original token name for this mapping.\n\t */\n\tSourceMapGenerator.prototype.addMapping =\n\t  function SourceMapGenerator_addMapping(aArgs) {\n\t    var generated = util.getArg(aArgs, 'generated');\n\t    var original = util.getArg(aArgs, 'original', null);\n\t    var source = util.getArg(aArgs, 'source', null);\n\t    var name = util.getArg(aArgs, 'name', null);\n\t\n\t    if (!this._skipValidation) {\n\t      this._validateMapping(generated, original, source, name);\n\t    }\n\t\n\t    if (source != null) {\n\t      source = String(source);\n\t      if (!this._sources.has(source)) {\n\t        this._sources.add(source);\n\t      }\n\t    }\n\t\n\t    if (name != null) {\n\t      name = String(name);\n\t      if (!this._names.has(name)) {\n\t        this._names.add(name);\n\t      }\n\t    }\n\t\n\t    this._mappings.add({\n\t      generatedLine: generated.line,\n\t      generatedColumn: generated.column,\n\t      originalLine: original != null && original.line,\n\t      originalColumn: original != null && original.column,\n\t      source: source,\n\t      name: name\n\t    });\n\t  };\n\t\n\t/**\n\t * Set the source content for a source file.\n\t */\n\tSourceMapGenerator.prototype.setSourceContent =\n\t  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n\t    var source = aSourceFile;\n\t    if (this._sourceRoot != null) {\n\t      source = util.relative(this._sourceRoot, source);\n\t    }\n\t\n\t    if (aSourceContent != null) {\n\t      // Add the source content to the _sourcesContents map.\n\t      // Create a new _sourcesContents map if the property is null.\n\t      if (!this._sourcesContents) {\n\t        this._sourcesContents = Object.create(null);\n\t      }\n\t      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n\t    } else if (this._sourcesContents) {\n\t      // Remove the source file from the _sourcesContents map.\n\t      // If the _sourcesContents map is empty, set the property to null.\n\t      delete this._sourcesContents[util.toSetString(source)];\n\t      if (Object.keys(this._sourcesContents).length === 0) {\n\t        this._sourcesContents = null;\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Applies the mappings of a sub-source-map for a specific source file to the\n\t * source map being generated. Each mapping to the supplied source file is\n\t * rewritten using the supplied source map. Note: The resolution for the\n\t * resulting mappings is the minimium of this map and the supplied map.\n\t *\n\t * @param aSourceMapConsumer The source map to be applied.\n\t * @param aSourceFile Optional. The filename of the source file.\n\t *        If omitted, SourceMapConsumer's file property will be used.\n\t * @param aSourceMapPath Optional. The dirname of the path to the source map\n\t *        to be applied. If relative, it is relative to the SourceMapConsumer.\n\t *        This parameter is needed when the two source maps aren't in the same\n\t *        directory, and the source map to be applied contains relative source\n\t *        paths. If so, those relative source paths need to be rewritten\n\t *        relative to the SourceMapGenerator.\n\t */\n\tSourceMapGenerator.prototype.applySourceMap =\n\t  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n\t    var sourceFile = aSourceFile;\n\t    // If aSourceFile is omitted, we will use the file property of the SourceMap\n\t    if (aSourceFile == null) {\n\t      if (aSourceMapConsumer.file == null) {\n\t        throw new Error(\n\t          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n\t          'or the source map\\'s \"file\" property. Both were omitted.'\n\t        );\n\t      }\n\t      sourceFile = aSourceMapConsumer.file;\n\t    }\n\t    var sourceRoot = this._sourceRoot;\n\t    // Make \"sourceFile\" relative if an absolute Url is passed.\n\t    if (sourceRoot != null) {\n\t      sourceFile = util.relative(sourceRoot, sourceFile);\n\t    }\n\t    // Applying the SourceMap can add and remove items from the sources and\n\t    // the names array.\n\t    var newSources = new ArraySet();\n\t    var newNames = new ArraySet();\n\t\n\t    // Find mappings for the \"sourceFile\"\n\t    this._mappings.unsortedForEach(function (mapping) {\n\t      if (mapping.source === sourceFile && mapping.originalLine != null) {\n\t        // Check if it can be mapped by the source map, then update the mapping.\n\t        var original = aSourceMapConsumer.originalPositionFor({\n\t          line: mapping.originalLine,\n\t          column: mapping.originalColumn\n\t        });\n\t        if (original.source != null) {\n\t          // Copy mapping\n\t          mapping.source = original.source;\n\t          if (aSourceMapPath != null) {\n\t            mapping.source = util.join(aSourceMapPath, mapping.source)\n\t          }\n\t          if (sourceRoot != null) {\n\t            mapping.source = util.relative(sourceRoot, mapping.source);\n\t          }\n\t          mapping.originalLine = original.line;\n\t          mapping.originalColumn = original.column;\n\t          if (original.name != null) {\n\t            mapping.name = original.name;\n\t          }\n\t        }\n\t      }\n\t\n\t      var source = mapping.source;\n\t      if (source != null && !newSources.has(source)) {\n\t        newSources.add(source);\n\t      }\n\t\n\t      var name = mapping.name;\n\t      if (name != null && !newNames.has(name)) {\n\t        newNames.add(name);\n\t      }\n\t\n\t    }, this);\n\t    this._sources = newSources;\n\t    this._names = newNames;\n\t\n\t    // Copy sourcesContents of applied map.\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aSourceMapPath != null) {\n\t          sourceFile = util.join(aSourceMapPath, sourceFile);\n\t        }\n\t        if (sourceRoot != null) {\n\t          sourceFile = util.relative(sourceRoot, sourceFile);\n\t        }\n\t        this.setSourceContent(sourceFile, content);\n\t      }\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * A mapping can have one of the three levels of data:\n\t *\n\t *   1. Just the generated position.\n\t *   2. The Generated position, original position, and original source.\n\t *   3. Generated and original position, original source, as well as a name\n\t *      token.\n\t *\n\t * To maintain consistency, we validate that any new mapping being added falls\n\t * in to one of these categories.\n\t */\n\tSourceMapGenerator.prototype._validateMapping =\n\t  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n\t                                              aName) {\n\t    // When aOriginal is truthy but has empty values for .line and .column,\n\t    // it is most likely a programmer error. In this case we throw a very\n\t    // specific error message to try to guide them the right way.\n\t    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n\t    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n\t        throw new Error(\n\t            'original.line and original.column are not numbers -- you probably meant to omit ' +\n\t            'the original mapping entirely and only map the generated position. If so, pass ' +\n\t            'null for the original mapping instead of an object with empty or null values.'\n\t        );\n\t    }\n\t\n\t    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t        && aGenerated.line > 0 && aGenerated.column >= 0\n\t        && !aOriginal && !aSource && !aName) {\n\t      // Case 1.\n\t      return;\n\t    }\n\t    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n\t             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n\t             && aGenerated.line > 0 && aGenerated.column >= 0\n\t             && aOriginal.line > 0 && aOriginal.column >= 0\n\t             && aSource) {\n\t      // Cases 2 and 3.\n\t      return;\n\t    }\n\t    else {\n\t      throw new Error('Invalid mapping: ' + JSON.stringify({\n\t        generated: aGenerated,\n\t        source: aSource,\n\t        original: aOriginal,\n\t        name: aName\n\t      }));\n\t    }\n\t  };\n\t\n\t/**\n\t * Serialize the accumulated mappings in to the stream of base 64 VLQs\n\t * specified by the source map format.\n\t */\n\tSourceMapGenerator.prototype._serializeMappings =\n\t  function SourceMapGenerator_serializeMappings() {\n\t    var previousGeneratedColumn = 0;\n\t    var previousGeneratedLine = 1;\n\t    var previousOriginalColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousName = 0;\n\t    var previousSource = 0;\n\t    var result = '';\n\t    var next;\n\t    var mapping;\n\t    var nameIdx;\n\t    var sourceIdx;\n\t\n\t    var mappings = this._mappings.toArray();\n\t    for (var i = 0, len = mappings.length; i < len; i++) {\n\t      mapping = mappings[i];\n\t      next = ''\n\t\n\t      if (mapping.generatedLine !== previousGeneratedLine) {\n\t        previousGeneratedColumn = 0;\n\t        while (mapping.generatedLine !== previousGeneratedLine) {\n\t          next += ';';\n\t          previousGeneratedLine++;\n\t        }\n\t      }\n\t      else {\n\t        if (i > 0) {\n\t          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n\t            continue;\n\t          }\n\t          next += ',';\n\t        }\n\t      }\n\t\n\t      next += base64VLQ.encode(mapping.generatedColumn\n\t                                 - previousGeneratedColumn);\n\t      previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t      if (mapping.source != null) {\n\t        sourceIdx = this._sources.indexOf(mapping.source);\n\t        next += base64VLQ.encode(sourceIdx - previousSource);\n\t        previousSource = sourceIdx;\n\t\n\t        // lines are stored 0-based in SourceMap spec version 3\n\t        next += base64VLQ.encode(mapping.originalLine - 1\n\t                                   - previousOriginalLine);\n\t        previousOriginalLine = mapping.originalLine - 1;\n\t\n\t        next += base64VLQ.encode(mapping.originalColumn\n\t                                   - previousOriginalColumn);\n\t        previousOriginalColumn = mapping.originalColumn;\n\t\n\t        if (mapping.name != null) {\n\t          nameIdx = this._names.indexOf(mapping.name);\n\t          next += base64VLQ.encode(nameIdx - previousName);\n\t          previousName = nameIdx;\n\t        }\n\t      }\n\t\n\t      result += next;\n\t    }\n\t\n\t    return result;\n\t  };\n\t\n\tSourceMapGenerator.prototype._generateSourcesContent =\n\t  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n\t    return aSources.map(function (source) {\n\t      if (!this._sourcesContents) {\n\t        return null;\n\t      }\n\t      if (aSourceRoot != null) {\n\t        source = util.relative(aSourceRoot, source);\n\t      }\n\t      var key = util.toSetString(source);\n\t      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n\t        ? this._sourcesContents[key]\n\t        : null;\n\t    }, this);\n\t  };\n\t\n\t/**\n\t * Externalize the source map.\n\t */\n\tSourceMapGenerator.prototype.toJSON =\n\t  function SourceMapGenerator_toJSON() {\n\t    var map = {\n\t      version: this._version,\n\t      sources: this._sources.toArray(),\n\t      names: this._names.toArray(),\n\t      mappings: this._serializeMappings()\n\t    };\n\t    if (this._file != null) {\n\t      map.file = this._file;\n\t    }\n\t    if (this._sourceRoot != null) {\n\t      map.sourceRoot = this._sourceRoot;\n\t    }\n\t    if (this._sourcesContents) {\n\t      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n\t    }\n\t\n\t    return map;\n\t  };\n\t\n\t/**\n\t * Render the source map being generated to a string.\n\t */\n\tSourceMapGenerator.prototype.toString =\n\t  function SourceMapGenerator_toString() {\n\t    return JSON.stringify(this.toJSON());\n\t  };\n\t\n\texports.SourceMapGenerator = SourceMapGenerator;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t *\n\t * Based on the Base 64 VLQ implementation in Closure Compiler:\n\t * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n\t *\n\t * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n\t * Redistribution and use in source and binary forms, with or without\n\t * modification, are permitted provided that the following conditions are\n\t * met:\n\t *\n\t *  * Redistributions of source code must retain the above copyright\n\t *    notice, this list of conditions and the following disclaimer.\n\t *  * Redistributions in binary form must reproduce the above\n\t *    copyright notice, this list of conditions and the following\n\t *    disclaimer in the documentation and/or other materials provided\n\t *    with the distribution.\n\t *  * Neither the name of Google Inc. nor the names of its\n\t *    contributors may be used to endorse or promote products derived\n\t *    from this software without specific prior written permission.\n\t *\n\t * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\t * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\t * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n\t * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n\t * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n\t * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n\t * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n\t * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n\t * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t */\n\t\n\tvar base64 = __webpack_require__(3);\n\t\n\t// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n\t// length quantities we use in the source map spec, the first bit is the sign,\n\t// the next four bits are the actual value, and the 6th bit is the\n\t// continuation bit. The continuation bit tells us whether there are more\n\t// digits in this value following this digit.\n\t//\n\t//   Continuation\n\t//   |    Sign\n\t//   |    |\n\t//   V    V\n\t//   101011\n\t\n\tvar VLQ_BASE_SHIFT = 5;\n\t\n\t// binary: 100000\n\tvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\t\n\t// binary: 011111\n\tvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\t\n\t// binary: 100000\n\tvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\t\n\t/**\n\t * Converts from a two-complement value to a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n\t *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n\t */\n\tfunction toVLQSigned(aValue) {\n\t  return aValue < 0\n\t    ? ((-aValue) << 1) + 1\n\t    : (aValue << 1) + 0;\n\t}\n\t\n\t/**\n\t * Converts to a two-complement value from a value where the sign bit is\n\t * placed in the least significant bit.  For example, as decimals:\n\t *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n\t *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n\t */\n\tfunction fromVLQSigned(aValue) {\n\t  var isNegative = (aValue & 1) === 1;\n\t  var shifted = aValue >> 1;\n\t  return isNegative\n\t    ? -shifted\n\t    : shifted;\n\t}\n\t\n\t/**\n\t * Returns the base 64 VLQ encoded value.\n\t */\n\texports.encode = function base64VLQ_encode(aValue) {\n\t  var encoded = \"\";\n\t  var digit;\n\t\n\t  var vlq = toVLQSigned(aValue);\n\t\n\t  do {\n\t    digit = vlq & VLQ_BASE_MASK;\n\t    vlq >>>= VLQ_BASE_SHIFT;\n\t    if (vlq > 0) {\n\t      // There are still more digits in this value, so we must make sure the\n\t      // continuation bit is marked.\n\t      digit |= VLQ_CONTINUATION_BIT;\n\t    }\n\t    encoded += base64.encode(digit);\n\t  } while (vlq > 0);\n\t\n\t  return encoded;\n\t};\n\t\n\t/**\n\t * Decodes the next base 64 VLQ value from the given string and returns the\n\t * value and the rest of the string via the out parameter.\n\t */\n\texports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n\t  var strLen = aStr.length;\n\t  var result = 0;\n\t  var shift = 0;\n\t  var continuation, digit;\n\t\n\t  do {\n\t    if (aIndex >= strLen) {\n\t      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n\t    }\n\t\n\t    digit = base64.decode(aStr.charCodeAt(aIndex++));\n\t    if (digit === -1) {\n\t      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n\t    }\n\t\n\t    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n\t    digit &= VLQ_BASE_MASK;\n\t    result = result + (digit << shift);\n\t    shift += VLQ_BASE_SHIFT;\n\t  } while (continuation);\n\t\n\t  aOutParam.value = fromVLQSigned(result);\n\t  aOutParam.rest = aIndex;\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\t\n\t/**\n\t * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n\t */\n\texports.encode = function (number) {\n\t  if (0 <= number && number < intToCharMap.length) {\n\t    return intToCharMap[number];\n\t  }\n\t  throw new TypeError(\"Must be between 0 and 63: \" + number);\n\t};\n\t\n\t/**\n\t * Decode a single base 64 character code digit to an integer. Returns -1 on\n\t * failure.\n\t */\n\texports.decode = function (charCode) {\n\t  var bigA = 65;     // 'A'\n\t  var bigZ = 90;     // 'Z'\n\t\n\t  var littleA = 97;  // 'a'\n\t  var littleZ = 122; // 'z'\n\t\n\t  var zero = 48;     // '0'\n\t  var nine = 57;     // '9'\n\t\n\t  var plus = 43;     // '+'\n\t  var slash = 47;    // '/'\n\t\n\t  var littleOffset = 26;\n\t  var numberOffset = 52;\n\t\n\t  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n\t  if (bigA <= charCode && charCode <= bigZ) {\n\t    return (charCode - bigA);\n\t  }\n\t\n\t  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n\t  if (littleA <= charCode && charCode <= littleZ) {\n\t    return (charCode - littleA + littleOffset);\n\t  }\n\t\n\t  // 52 - 61: 0123456789\n\t  if (zero <= charCode && charCode <= nine) {\n\t    return (charCode - zero + numberOffset);\n\t  }\n\t\n\t  // 62: +\n\t  if (charCode == plus) {\n\t    return 62;\n\t  }\n\t\n\t  // 63: /\n\t  if (charCode == slash) {\n\t    return 63;\n\t  }\n\t\n\t  // Invalid base64 digit.\n\t  return -1;\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t/**\n\t * This is a helper function for getting values from parameter/options\n\t * objects.\n\t *\n\t * @param args The object we are extracting values from\n\t * @param name The name of the property we are getting.\n\t * @param defaultValue An optional value to return if the property is missing\n\t * from the object. If this is not specified and the property is missing, an\n\t * error will be thrown.\n\t */\n\tfunction getArg(aArgs, aName, aDefaultValue) {\n\t  if (aName in aArgs) {\n\t    return aArgs[aName];\n\t  } else if (arguments.length === 3) {\n\t    return aDefaultValue;\n\t  } else {\n\t    throw new Error('\"' + aName + '\" is a required argument.');\n\t  }\n\t}\n\texports.getArg = getArg;\n\t\n\tvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\n\tvar dataUrlRegexp = /^data:.+\\,.+$/;\n\t\n\tfunction urlParse(aUrl) {\n\t  var match = aUrl.match(urlRegexp);\n\t  if (!match) {\n\t    return null;\n\t  }\n\t  return {\n\t    scheme: match[1],\n\t    auth: match[2],\n\t    host: match[3],\n\t    port: match[4],\n\t    path: match[5]\n\t  };\n\t}\n\texports.urlParse = urlParse;\n\t\n\tfunction urlGenerate(aParsedUrl) {\n\t  var url = '';\n\t  if (aParsedUrl.scheme) {\n\t    url += aParsedUrl.scheme + ':';\n\t  }\n\t  url += '//';\n\t  if (aParsedUrl.auth) {\n\t    url += aParsedUrl.auth + '@';\n\t  }\n\t  if (aParsedUrl.host) {\n\t    url += aParsedUrl.host;\n\t  }\n\t  if (aParsedUrl.port) {\n\t    url += \":\" + aParsedUrl.port\n\t  }\n\t  if (aParsedUrl.path) {\n\t    url += aParsedUrl.path;\n\t  }\n\t  return url;\n\t}\n\texports.urlGenerate = urlGenerate;\n\t\n\t/**\n\t * Normalizes a path, or the path portion of a URL:\n\t *\n\t * - Replaces consecutive slashes with one slash.\n\t * - Removes unnecessary '.' parts.\n\t * - Removes unnecessary '<dir>/..' parts.\n\t *\n\t * Based on code in the Node.js 'path' core module.\n\t *\n\t * @param aPath The path or url to normalize.\n\t */\n\tfunction normalize(aPath) {\n\t  var path = aPath;\n\t  var url = urlParse(aPath);\n\t  if (url) {\n\t    if (!url.path) {\n\t      return aPath;\n\t    }\n\t    path = url.path;\n\t  }\n\t  var isAbsolute = exports.isAbsolute(path);\n\t\n\t  var parts = path.split(/\\/+/);\n\t  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n\t    part = parts[i];\n\t    if (part === '.') {\n\t      parts.splice(i, 1);\n\t    } else if (part === '..') {\n\t      up++;\n\t    } else if (up > 0) {\n\t      if (part === '') {\n\t        // The first part is blank if the path is absolute. Trying to go\n\t        // above the root is a no-op. Therefore we can remove all '..' parts\n\t        // directly after the root.\n\t        parts.splice(i + 1, up);\n\t        up = 0;\n\t      } else {\n\t        parts.splice(i, 2);\n\t        up--;\n\t      }\n\t    }\n\t  }\n\t  path = parts.join('/');\n\t\n\t  if (path === '') {\n\t    path = isAbsolute ? '/' : '.';\n\t  }\n\t\n\t  if (url) {\n\t    url.path = path;\n\t    return urlGenerate(url);\n\t  }\n\t  return path;\n\t}\n\texports.normalize = normalize;\n\t\n\t/**\n\t * Joins two paths/URLs.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be joined with the root.\n\t *\n\t * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n\t *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n\t *   first.\n\t * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n\t *   is updated with the result and aRoot is returned. Otherwise the result\n\t *   is returned.\n\t *   - If aPath is absolute, the result is aPath.\n\t *   - Otherwise the two paths are joined with a slash.\n\t * - Joining for example 'http://' and 'www.example.com' is also supported.\n\t */\n\tfunction join(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t  if (aPath === \"\") {\n\t    aPath = \".\";\n\t  }\n\t  var aPathUrl = urlParse(aPath);\n\t  var aRootUrl = urlParse(aRoot);\n\t  if (aRootUrl) {\n\t    aRoot = aRootUrl.path || '/';\n\t  }\n\t\n\t  // `join(foo, '//www.example.org')`\n\t  if (aPathUrl && !aPathUrl.scheme) {\n\t    if (aRootUrl) {\n\t      aPathUrl.scheme = aRootUrl.scheme;\n\t    }\n\t    return urlGenerate(aPathUrl);\n\t  }\n\t\n\t  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n\t    return aPath;\n\t  }\n\t\n\t  // `join('http://', 'www.example.com')`\n\t  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n\t    aRootUrl.host = aPath;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t\n\t  var joined = aPath.charAt(0) === '/'\n\t    ? aPath\n\t    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\t\n\t  if (aRootUrl) {\n\t    aRootUrl.path = joined;\n\t    return urlGenerate(aRootUrl);\n\t  }\n\t  return joined;\n\t}\n\texports.join = join;\n\t\n\texports.isAbsolute = function (aPath) {\n\t  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n\t};\n\t\n\t/**\n\t * Make a path relative to a URL or another path.\n\t *\n\t * @param aRoot The root path or URL.\n\t * @param aPath The path or URL to be made relative to aRoot.\n\t */\n\tfunction relative(aRoot, aPath) {\n\t  if (aRoot === \"\") {\n\t    aRoot = \".\";\n\t  }\n\t\n\t  aRoot = aRoot.replace(/\\/$/, '');\n\t\n\t  // It is possible for the path to be above the root. In this case, simply\n\t  // checking whether the root is a prefix of the path won't work. Instead, we\n\t  // need to remove components from the root one by one, until either we find\n\t  // a prefix that fits, or we run out of components to remove.\n\t  var level = 0;\n\t  while (aPath.indexOf(aRoot + '/') !== 0) {\n\t    var index = aRoot.lastIndexOf(\"/\");\n\t    if (index < 0) {\n\t      return aPath;\n\t    }\n\t\n\t    // If the only part of the root that is left is the scheme (i.e. http://,\n\t    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n\t    // have exhausted all components, so the path is not relative to the root.\n\t    aRoot = aRoot.slice(0, index);\n\t    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n\t      return aPath;\n\t    }\n\t\n\t    ++level;\n\t  }\n\t\n\t  // Make sure we add a \"../\" for each component we removed from the root.\n\t  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n\t}\n\texports.relative = relative;\n\t\n\tvar supportsNullProto = (function () {\n\t  var obj = Object.create(null);\n\t  return !('__proto__' in obj);\n\t}());\n\t\n\tfunction identity (s) {\n\t  return s;\n\t}\n\t\n\t/**\n\t * Because behavior goes wacky when you set `__proto__` on objects, we\n\t * have to prefix all the strings in our set with an arbitrary character.\n\t *\n\t * See https://github.com/mozilla/source-map/pull/31 and\n\t * https://github.com/mozilla/source-map/issues/30\n\t *\n\t * @param String aStr\n\t */\n\tfunction toSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return '$' + aStr;\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.toSetString = supportsNullProto ? identity : toSetString;\n\t\n\tfunction fromSetString(aStr) {\n\t  if (isProtoString(aStr)) {\n\t    return aStr.slice(1);\n\t  }\n\t\n\t  return aStr;\n\t}\n\texports.fromSetString = supportsNullProto ? identity : fromSetString;\n\t\n\tfunction isProtoString(s) {\n\t  if (!s) {\n\t    return false;\n\t  }\n\t\n\t  var length = s.length;\n\t\n\t  if (length < 9 /* \"__proto__\".length */) {\n\t    return false;\n\t  }\n\t\n\t  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n\t      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n\t      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n\t      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n\t      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n\t      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n\t    return false;\n\t  }\n\t\n\t  for (var i = length - 10; i >= 0; i--) {\n\t    if (s.charCodeAt(i) !== 36 /* '$' */) {\n\t      return false;\n\t    }\n\t  }\n\t\n\t  return true;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings where the original positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same original source/line/column, but different generated\n\t * line and column the same. Useful when searching for a mapping with a\n\t * stubbed out mapping.\n\t */\n\tfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n\t  var cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0 || onlyCompareOriginal) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByOriginalPositions = compareByOriginalPositions;\n\t\n\t/**\n\t * Comparator between two mappings with deflated source and name indices where\n\t * the generated positions are compared.\n\t *\n\t * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n\t * mappings with the same generated line and column, but different\n\t * source/name/original line and column the same. Useful when searching for a\n\t * mapping with a stubbed out mapping.\n\t */\n\tfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0 || onlyCompareGenerated) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.source - mappingB.source;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return mappingA.name - mappingB.name;\n\t}\n\texports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\t\n\tfunction strcmp(aStr1, aStr2) {\n\t  if (aStr1 === aStr2) {\n\t    return 0;\n\t  }\n\t\n\t  if (aStr1 > aStr2) {\n\t    return 1;\n\t  }\n\t\n\t  return -1;\n\t}\n\t\n\t/**\n\t * Comparator between two mappings with inflated source and name strings where\n\t * the generated positions are compared.\n\t */\n\tfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n\t  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = strcmp(mappingA.source, mappingB.source);\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalLine - mappingB.originalLine;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  cmp = mappingA.originalColumn - mappingB.originalColumn;\n\t  if (cmp !== 0) {\n\t    return cmp;\n\t  }\n\t\n\t  return strcmp(mappingA.name, mappingB.name);\n\t}\n\texports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar hasNativeMap = typeof Map !== \"undefined\";\n\t\n\t/**\n\t * A data structure which is a combination of an array and a set. Adding a new\n\t * member is O(1), testing for membership is O(1), and finding the index of an\n\t * element is O(1). Removing elements from the set is not supported. Only\n\t * strings are supported for membership.\n\t */\n\tfunction ArraySet() {\n\t  this._array = [];\n\t  this._set = hasNativeMap ? new Map() : Object.create(null);\n\t}\n\t\n\t/**\n\t * Static method for creating ArraySet instances from an existing array.\n\t */\n\tArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n\t  var set = new ArraySet();\n\t  for (var i = 0, len = aArray.length; i < len; i++) {\n\t    set.add(aArray[i], aAllowDuplicates);\n\t  }\n\t  return set;\n\t};\n\t\n\t/**\n\t * Return how many unique items are in this ArraySet. If duplicates have been\n\t * added, than those do not count towards the size.\n\t *\n\t * @returns Number\n\t */\n\tArraySet.prototype.size = function ArraySet_size() {\n\t  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n\t};\n\t\n\t/**\n\t * Add the given string to this set.\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n\t  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n\t  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n\t  var idx = this._array.length;\n\t  if (!isDuplicate || aAllowDuplicates) {\n\t    this._array.push(aStr);\n\t  }\n\t  if (!isDuplicate) {\n\t    if (hasNativeMap) {\n\t      this._set.set(aStr, idx);\n\t    } else {\n\t      this._set[sStr] = idx;\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Is the given string a member of this set?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.has = function ArraySet_has(aStr) {\n\t  if (hasNativeMap) {\n\t    return this._set.has(aStr);\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    return has.call(this._set, sStr);\n\t  }\n\t};\n\t\n\t/**\n\t * What is the index of the given string in the array?\n\t *\n\t * @param String aStr\n\t */\n\tArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n\t  if (hasNativeMap) {\n\t    var idx = this._set.get(aStr);\n\t    if (idx >= 0) {\n\t        return idx;\n\t    }\n\t  } else {\n\t    var sStr = util.toSetString(aStr);\n\t    if (has.call(this._set, sStr)) {\n\t      return this._set[sStr];\n\t    }\n\t  }\n\t\n\t  throw new Error('\"' + aStr + '\" is not in the set.');\n\t};\n\t\n\t/**\n\t * What is the element at the given index?\n\t *\n\t * @param Number aIdx\n\t */\n\tArraySet.prototype.at = function ArraySet_at(aIdx) {\n\t  if (aIdx >= 0 && aIdx < this._array.length) {\n\t    return this._array[aIdx];\n\t  }\n\t  throw new Error('No element indexed by ' + aIdx);\n\t};\n\t\n\t/**\n\t * Returns the array representation of this set (which has the proper indices\n\t * indicated by indexOf). Note that this is a copy of the internal array used\n\t * for storing the members so that no one can mess with internal state.\n\t */\n\tArraySet.prototype.toArray = function ArraySet_toArray() {\n\t  return this._array.slice();\n\t};\n\t\n\texports.ArraySet = ArraySet;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2014 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\t\n\t/**\n\t * Determine whether mappingB is after mappingA with respect to generated\n\t * position.\n\t */\n\tfunction generatedPositionAfter(mappingA, mappingB) {\n\t  // Optimized for most common case\n\t  var lineA = mappingA.generatedLine;\n\t  var lineB = mappingB.generatedLine;\n\t  var columnA = mappingA.generatedColumn;\n\t  var columnB = mappingB.generatedColumn;\n\t  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n\t         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n\t}\n\t\n\t/**\n\t * A data structure to provide a sorted view of accumulated mappings in a\n\t * performance conscious manner. It trades a neglibable overhead in general\n\t * case for a large speedup in case of mappings being added in order.\n\t */\n\tfunction MappingList() {\n\t  this._array = [];\n\t  this._sorted = true;\n\t  // Serves as infimum\n\t  this._last = {generatedLine: -1, generatedColumn: 0};\n\t}\n\t\n\t/**\n\t * Iterate through internal items. This method takes the same arguments that\n\t * `Array.prototype.forEach` takes.\n\t *\n\t * NOTE: The order of the mappings is NOT guaranteed.\n\t */\n\tMappingList.prototype.unsortedForEach =\n\t  function MappingList_forEach(aCallback, aThisArg) {\n\t    this._array.forEach(aCallback, aThisArg);\n\t  };\n\t\n\t/**\n\t * Add the given source mapping.\n\t *\n\t * @param Object aMapping\n\t */\n\tMappingList.prototype.add = function MappingList_add(aMapping) {\n\t  if (generatedPositionAfter(this._last, aMapping)) {\n\t    this._last = aMapping;\n\t    this._array.push(aMapping);\n\t  } else {\n\t    this._sorted = false;\n\t    this._array.push(aMapping);\n\t  }\n\t};\n\t\n\t/**\n\t * Returns the flat, sorted array of mappings. The mappings are sorted by\n\t * generated position.\n\t *\n\t * WARNING: This method returns internal data without copying, for\n\t * performance. The return value must NOT be mutated, and should be treated as\n\t * an immutable borrow. If you want to take ownership, you must make your own\n\t * copy.\n\t */\n\tMappingList.prototype.toArray = function MappingList_toArray() {\n\t  if (!this._sorted) {\n\t    this._array.sort(util.compareByGeneratedPositionsInflated);\n\t    this._sorted = true;\n\t  }\n\t  return this._array;\n\t};\n\t\n\texports.MappingList = MappingList;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar util = __webpack_require__(4);\n\tvar binarySearch = __webpack_require__(8);\n\tvar ArraySet = __webpack_require__(5).ArraySet;\n\tvar base64VLQ = __webpack_require__(2);\n\tvar quickSort = __webpack_require__(9).quickSort;\n\t\n\tfunction SourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  return sourceMap.sections != null\n\t    ? new IndexedSourceMapConsumer(sourceMap)\n\t    : new BasicSourceMapConsumer(sourceMap);\n\t}\n\t\n\tSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n\t  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n\t}\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tSourceMapConsumer.prototype._version = 3;\n\t\n\t// `__generatedMappings` and `__originalMappings` are arrays that hold the\n\t// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n\t// are lazily instantiated, accessed via the `_generatedMappings` and\n\t// `_originalMappings` getters respectively, and we only parse the mappings\n\t// and create these arrays once queried for a source location. We jump through\n\t// these hoops because there can be many thousands of mappings, and parsing\n\t// them is expensive, so we only want to do it if we must.\n\t//\n\t// Each object in the arrays is of the form:\n\t//\n\t//     {\n\t//       generatedLine: The line number in the generated code,\n\t//       generatedColumn: The column number in the generated code,\n\t//       source: The path to the original source file that generated this\n\t//               chunk of code,\n\t//       originalLine: The line number in the original source that\n\t//                     corresponds to this chunk of generated code,\n\t//       originalColumn: The column number in the original source that\n\t//                       corresponds to this chunk of generated code,\n\t//       name: The name of the original symbol which generated this chunk of\n\t//             code.\n\t//     }\n\t//\n\t// All properties except for `generatedLine` and `generatedColumn` can be\n\t// `null`.\n\t//\n\t// `_generatedMappings` is ordered by the generated positions.\n\t//\n\t// `_originalMappings` is ordered by the original positions.\n\t\n\tSourceMapConsumer.prototype.__generatedMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n\t  get: function () {\n\t    if (!this.__generatedMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__generatedMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype.__originalMappings = null;\n\tObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n\t  get: function () {\n\t    if (!this.__originalMappings) {\n\t      this._parseMappings(this._mappings, this.sourceRoot);\n\t    }\n\t\n\t    return this.__originalMappings;\n\t  }\n\t});\n\t\n\tSourceMapConsumer.prototype._charIsMappingSeparator =\n\t  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n\t    var c = aStr.charAt(index);\n\t    return c === \";\" || c === \",\";\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    throw new Error(\"Subclasses must implement _parseMappings\");\n\t  };\n\t\n\tSourceMapConsumer.GENERATED_ORDER = 1;\n\tSourceMapConsumer.ORIGINAL_ORDER = 2;\n\t\n\tSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\n\tSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Iterate over each mapping between an original source/line/column and a\n\t * generated line/column in this source map.\n\t *\n\t * @param Function aCallback\n\t *        The function that is called with each mapping.\n\t * @param Object aContext\n\t *        Optional. If specified, this object will be the value of `this` every\n\t *        time that `aCallback` is called.\n\t * @param aOrder\n\t *        Either `SourceMapConsumer.GENERATED_ORDER` or\n\t *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n\t *        iterate over the mappings sorted by the generated file's line/column\n\t *        order or the original's source/line/column order, respectively. Defaults to\n\t *        `SourceMapConsumer.GENERATED_ORDER`.\n\t */\n\tSourceMapConsumer.prototype.eachMapping =\n\t  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n\t    var context = aContext || null;\n\t    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\t\n\t    var mappings;\n\t    switch (order) {\n\t    case SourceMapConsumer.GENERATED_ORDER:\n\t      mappings = this._generatedMappings;\n\t      break;\n\t    case SourceMapConsumer.ORIGINAL_ORDER:\n\t      mappings = this._originalMappings;\n\t      break;\n\t    default:\n\t      throw new Error(\"Unknown order of iteration.\");\n\t    }\n\t\n\t    var sourceRoot = this.sourceRoot;\n\t    mappings.map(function (mapping) {\n\t      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n\t      if (source != null && sourceRoot != null) {\n\t        source = util.join(sourceRoot, source);\n\t      }\n\t      return {\n\t        source: source,\n\t        generatedLine: mapping.generatedLine,\n\t        generatedColumn: mapping.generatedColumn,\n\t        originalLine: mapping.originalLine,\n\t        originalColumn: mapping.originalColumn,\n\t        name: mapping.name === null ? null : this._names.at(mapping.name)\n\t      };\n\t    }, this).forEach(aCallback, context);\n\t  };\n\t\n\t/**\n\t * Returns all generated line and column information for the original source,\n\t * line, and column provided. If no column is provided, returns all mappings\n\t * corresponding to a either the line we are searching for or the next\n\t * closest line that has any mappings. Otherwise, returns all mappings\n\t * corresponding to the given line and either the column we are searching for\n\t * or the next closest column that has any offsets.\n\t *\n\t * The only argument is an object with the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: Optional. the column number in the original source.\n\t *\n\t * and an array of objects is returned, each with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tSourceMapConsumer.prototype.allGeneratedPositionsFor =\n\t  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n\t    var line = util.getArg(aArgs, 'line');\n\t\n\t    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n\t    // returns the index of the closest mapping less than the needle. By\n\t    // setting needle.originalColumn to 0, we thus find the last mapping for\n\t    // the given line, provided such a mapping exists.\n\t    var needle = {\n\t      source: util.getArg(aArgs, 'source'),\n\t      originalLine: line,\n\t      originalColumn: util.getArg(aArgs, 'column', 0)\n\t    };\n\t\n\t    if (this.sourceRoot != null) {\n\t      needle.source = util.relative(this.sourceRoot, needle.source);\n\t    }\n\t    if (!this._sources.has(needle.source)) {\n\t      return [];\n\t    }\n\t    needle.source = this._sources.indexOf(needle.source);\n\t\n\t    var mappings = [];\n\t\n\t    var index = this._findMapping(needle,\n\t                                  this._originalMappings,\n\t                                  \"originalLine\",\n\t                                  \"originalColumn\",\n\t                                  util.compareByOriginalPositions,\n\t                                  binarySearch.LEAST_UPPER_BOUND);\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (aArgs.column === undefined) {\n\t        var originalLine = mapping.originalLine;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we found. Since\n\t        // mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we found.\n\t        while (mapping && mapping.originalLine === originalLine) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      } else {\n\t        var originalColumn = mapping.originalColumn;\n\t\n\t        // Iterate until either we run out of mappings, or we run into\n\t        // a mapping for a different line than the one we were searching for.\n\t        // Since mappings are sorted, this is guaranteed to find all mappings for\n\t        // the line we are searching for.\n\t        while (mapping &&\n\t               mapping.originalLine === line &&\n\t               mapping.originalColumn == originalColumn) {\n\t          mappings.push({\n\t            line: util.getArg(mapping, 'generatedLine', null),\n\t            column: util.getArg(mapping, 'generatedColumn', null),\n\t            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t          });\n\t\n\t          mapping = this._originalMappings[++index];\n\t        }\n\t      }\n\t    }\n\t\n\t    return mappings;\n\t  };\n\t\n\texports.SourceMapConsumer = SourceMapConsumer;\n\t\n\t/**\n\t * A BasicSourceMapConsumer instance represents a parsed source map which we can\n\t * query for information about the original file positions by giving it a file\n\t * position in the generated source.\n\t *\n\t * The only parameter is the raw source map (either as a JSON string, or\n\t * already parsed to an object). According to the spec, source maps have the\n\t * following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - sources: An array of URLs to the original source files.\n\t *   - names: An array of identifiers which can be referrenced by individual mappings.\n\t *   - sourceRoot: Optional. The URL root from which all sources are relative.\n\t *   - sourcesContent: Optional. An array of contents of the original source files.\n\t *   - mappings: A string of base64 VLQs which contain the actual mappings.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *\n\t * Here is an example source map, taken from the source map spec[0]:\n\t *\n\t *     {\n\t *       version : 3,\n\t *       file: \"out.js\",\n\t *       sourceRoot : \"\",\n\t *       sources: [\"foo.js\", \"bar.js\"],\n\t *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *       mappings: \"AA,AB;;ABCDE;\"\n\t *     }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n\t */\n\tfunction BasicSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sources = util.getArg(sourceMap, 'sources');\n\t  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n\t  // requires the array) to play nice here.\n\t  var names = util.getArg(sourceMap, 'names', []);\n\t  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n\t  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n\t  var mappings = util.getArg(sourceMap, 'mappings');\n\t  var file = util.getArg(sourceMap, 'file', null);\n\t\n\t  // Once again, Sass deviates from the spec and supplies the version as a\n\t  // string rather than a number, so we use loose equality checking here.\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  sources = sources\n\t    .map(String)\n\t    // Some source maps produce relative source paths like \"./foo.js\" instead of\n\t    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n\t    // See bugzil.la/1090768.\n\t    .map(util.normalize)\n\t    // Always ensure that absolute sources are internally stored relative to\n\t    // the source root, if the source root is absolute. Not doing this would\n\t    // be particularly problematic when the source root is a prefix of the\n\t    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n\t    .map(function (source) {\n\t      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n\t        ? util.relative(sourceRoot, source)\n\t        : source;\n\t    });\n\t\n\t  // Pass `true` below to allow duplicate names and sources. While source maps\n\t  // are intended to be compressed and deduplicated, the TypeScript compiler\n\t  // sometimes generates source maps with duplicates in them. See Github issue\n\t  // #72 and bugzil.la/889492.\n\t  this._names = ArraySet.fromArray(names.map(String), true);\n\t  this._sources = ArraySet.fromArray(sources, true);\n\t\n\t  this.sourceRoot = sourceRoot;\n\t  this.sourcesContent = sourcesContent;\n\t  this._mappings = mappings;\n\t  this.file = file;\n\t}\n\t\n\tBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\t\n\t/**\n\t * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n\t *\n\t * @param SourceMapGenerator aSourceMap\n\t *        The source map that will be consumed.\n\t * @returns BasicSourceMapConsumer\n\t */\n\tBasicSourceMapConsumer.fromSourceMap =\n\t  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n\t    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\t\n\t    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n\t    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n\t    smc.sourceRoot = aSourceMap._sourceRoot;\n\t    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n\t                                                            smc.sourceRoot);\n\t    smc.file = aSourceMap._file;\n\t\n\t    // Because we are modifying the entries (by converting string sources and\n\t    // names to indices into the sources and names ArraySets), we have to make\n\t    // a copy of the entry or else bad things happen. Shared mutable state\n\t    // strikes again! See github issue #191.\n\t\n\t    var generatedMappings = aSourceMap._mappings.toArray().slice();\n\t    var destGeneratedMappings = smc.__generatedMappings = [];\n\t    var destOriginalMappings = smc.__originalMappings = [];\n\t\n\t    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n\t      var srcMapping = generatedMappings[i];\n\t      var destMapping = new Mapping;\n\t      destMapping.generatedLine = srcMapping.generatedLine;\n\t      destMapping.generatedColumn = srcMapping.generatedColumn;\n\t\n\t      if (srcMapping.source) {\n\t        destMapping.source = sources.indexOf(srcMapping.source);\n\t        destMapping.originalLine = srcMapping.originalLine;\n\t        destMapping.originalColumn = srcMapping.originalColumn;\n\t\n\t        if (srcMapping.name) {\n\t          destMapping.name = names.indexOf(srcMapping.name);\n\t        }\n\t\n\t        destOriginalMappings.push(destMapping);\n\t      }\n\t\n\t      destGeneratedMappings.push(destMapping);\n\t    }\n\t\n\t    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\t\n\t    return smc;\n\t  };\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tBasicSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    return this._sources.toArray().map(function (s) {\n\t      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n\t    }, this);\n\t  }\n\t});\n\t\n\t/**\n\t * Provide the JIT with a nice shape / hidden class.\n\t */\n\tfunction Mapping() {\n\t  this.generatedLine = 0;\n\t  this.generatedColumn = 0;\n\t  this.source = null;\n\t  this.originalLine = null;\n\t  this.originalColumn = null;\n\t  this.name = null;\n\t}\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tBasicSourceMapConsumer.prototype._parseMappings =\n\t  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    var generatedLine = 1;\n\t    var previousGeneratedColumn = 0;\n\t    var previousOriginalLine = 0;\n\t    var previousOriginalColumn = 0;\n\t    var previousSource = 0;\n\t    var previousName = 0;\n\t    var length = aStr.length;\n\t    var index = 0;\n\t    var cachedSegments = {};\n\t    var temp = {};\n\t    var originalMappings = [];\n\t    var generatedMappings = [];\n\t    var mapping, str, segment, end, value;\n\t\n\t    while (index < length) {\n\t      if (aStr.charAt(index) === ';') {\n\t        generatedLine++;\n\t        index++;\n\t        previousGeneratedColumn = 0;\n\t      }\n\t      else if (aStr.charAt(index) === ',') {\n\t        index++;\n\t      }\n\t      else {\n\t        mapping = new Mapping();\n\t        mapping.generatedLine = generatedLine;\n\t\n\t        // Because each offset is encoded relative to the previous one,\n\t        // many segments often have the same encoding. We can exploit this\n\t        // fact by caching the parsed variable length fields of each segment,\n\t        // allowing us to avoid a second parse if we encounter the same\n\t        // segment again.\n\t        for (end = index; end < length; end++) {\n\t          if (this._charIsMappingSeparator(aStr, end)) {\n\t            break;\n\t          }\n\t        }\n\t        str = aStr.slice(index, end);\n\t\n\t        segment = cachedSegments[str];\n\t        if (segment) {\n\t          index += str.length;\n\t        } else {\n\t          segment = [];\n\t          while (index < end) {\n\t            base64VLQ.decode(aStr, index, temp);\n\t            value = temp.value;\n\t            index = temp.rest;\n\t            segment.push(value);\n\t          }\n\t\n\t          if (segment.length === 2) {\n\t            throw new Error('Found a source, but no line and column');\n\t          }\n\t\n\t          if (segment.length === 3) {\n\t            throw new Error('Found a source and line, but no column');\n\t          }\n\t\n\t          cachedSegments[str] = segment;\n\t        }\n\t\n\t        // Generated column.\n\t        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n\t        previousGeneratedColumn = mapping.generatedColumn;\n\t\n\t        if (segment.length > 1) {\n\t          // Original source.\n\t          mapping.source = previousSource + segment[1];\n\t          previousSource += segment[1];\n\t\n\t          // Original line.\n\t          mapping.originalLine = previousOriginalLine + segment[2];\n\t          previousOriginalLine = mapping.originalLine;\n\t          // Lines are stored 0-based\n\t          mapping.originalLine += 1;\n\t\n\t          // Original column.\n\t          mapping.originalColumn = previousOriginalColumn + segment[3];\n\t          previousOriginalColumn = mapping.originalColumn;\n\t\n\t          if (segment.length > 4) {\n\t            // Original name.\n\t            mapping.name = previousName + segment[4];\n\t            previousName += segment[4];\n\t          }\n\t        }\n\t\n\t        generatedMappings.push(mapping);\n\t        if (typeof mapping.originalLine === 'number') {\n\t          originalMappings.push(mapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    this.__generatedMappings = generatedMappings;\n\t\n\t    quickSort(originalMappings, util.compareByOriginalPositions);\n\t    this.__originalMappings = originalMappings;\n\t  };\n\t\n\t/**\n\t * Find the mapping that best matches the hypothetical \"needle\" mapping that\n\t * we are searching for in the given \"haystack\" of mappings.\n\t */\n\tBasicSourceMapConsumer.prototype._findMapping =\n\t  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n\t                                         aColumnName, aComparator, aBias) {\n\t    // To return the position we are searching for, we must first find the\n\t    // mapping for the given position and then return the opposite position it\n\t    // points to. Because the mappings are sorted, we can use binary search to\n\t    // find the best mapping.\n\t\n\t    if (aNeedle[aLineName] <= 0) {\n\t      throw new TypeError('Line must be greater than or equal to 1, got '\n\t                          + aNeedle[aLineName]);\n\t    }\n\t    if (aNeedle[aColumnName] < 0) {\n\t      throw new TypeError('Column must be greater than or equal to 0, got '\n\t                          + aNeedle[aColumnName]);\n\t    }\n\t\n\t    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n\t  };\n\t\n\t/**\n\t * Compute the last column for each generated mapping. The last column is\n\t * inclusive.\n\t */\n\tBasicSourceMapConsumer.prototype.computeColumnSpans =\n\t  function SourceMapConsumer_computeColumnSpans() {\n\t    for (var index = 0; index < this._generatedMappings.length; ++index) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      // Mappings do not contain a field for the last generated columnt. We\n\t      // can come up with an optimistic estimate, however, by assuming that\n\t      // mappings are contiguous (i.e. given two consecutive mappings, the\n\t      // first mapping ends where the second one starts).\n\t      if (index + 1 < this._generatedMappings.length) {\n\t        var nextMapping = this._generatedMappings[index + 1];\n\t\n\t        if (mapping.generatedLine === nextMapping.generatedLine) {\n\t          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n\t          continue;\n\t        }\n\t      }\n\t\n\t      // The last mapping for each line spans the entire line.\n\t      mapping.lastGeneratedColumn = Infinity;\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.originalPositionFor =\n\t  function SourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._generatedMappings,\n\t      \"generatedLine\",\n\t      \"generatedColumn\",\n\t      util.compareByGeneratedPositionsDeflated,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._generatedMappings[index];\n\t\n\t      if (mapping.generatedLine === needle.generatedLine) {\n\t        var source = util.getArg(mapping, 'source', null);\n\t        if (source !== null) {\n\t          source = this._sources.at(source);\n\t          if (this.sourceRoot != null) {\n\t            source = util.join(this.sourceRoot, source);\n\t          }\n\t        }\n\t        var name = util.getArg(mapping, 'name', null);\n\t        if (name !== null) {\n\t          name = this._names.at(name);\n\t        }\n\t        return {\n\t          source: source,\n\t          line: util.getArg(mapping, 'originalLine', null),\n\t          column: util.getArg(mapping, 'originalColumn', null),\n\t          name: name\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      source: null,\n\t      line: null,\n\t      column: null,\n\t      name: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n\t    if (!this.sourcesContent) {\n\t      return false;\n\t    }\n\t    return this.sourcesContent.length >= this._sources.size() &&\n\t      !this.sourcesContent.some(function (sc) { return sc == null; });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tBasicSourceMapConsumer.prototype.sourceContentFor =\n\t  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    if (!this.sourcesContent) {\n\t      return null;\n\t    }\n\t\n\t    if (this.sourceRoot != null) {\n\t      aSource = util.relative(this.sourceRoot, aSource);\n\t    }\n\t\n\t    if (this._sources.has(aSource)) {\n\t      return this.sourcesContent[this._sources.indexOf(aSource)];\n\t    }\n\t\n\t    var url;\n\t    if (this.sourceRoot != null\n\t        && (url = util.urlParse(this.sourceRoot))) {\n\t      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n\t      // many users. We can help them out when they expect file:// URIs to\n\t      // behave like it would if they were running a local HTTP server. See\n\t      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n\t      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n\t      if (url.scheme == \"file\"\n\t          && this._sources.has(fileUriAbsPath)) {\n\t        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n\t      }\n\t\n\t      if ((!url.path || url.path == \"/\")\n\t          && this._sources.has(\"/\" + aSource)) {\n\t        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n\t      }\n\t    }\n\t\n\t    // This function is used recursively from\n\t    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n\t    // don't want to throw if we can't find the source - we just want to\n\t    // return null, so we provide a flag to exit gracefully.\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n\t *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tBasicSourceMapConsumer.prototype.generatedPositionFor =\n\t  function SourceMapConsumer_generatedPositionFor(aArgs) {\n\t    var source = util.getArg(aArgs, 'source');\n\t    if (this.sourceRoot != null) {\n\t      source = util.relative(this.sourceRoot, source);\n\t    }\n\t    if (!this._sources.has(source)) {\n\t      return {\n\t        line: null,\n\t        column: null,\n\t        lastColumn: null\n\t      };\n\t    }\n\t    source = this._sources.indexOf(source);\n\t\n\t    var needle = {\n\t      source: source,\n\t      originalLine: util.getArg(aArgs, 'line'),\n\t      originalColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    var index = this._findMapping(\n\t      needle,\n\t      this._originalMappings,\n\t      \"originalLine\",\n\t      \"originalColumn\",\n\t      util.compareByOriginalPositions,\n\t      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n\t    );\n\t\n\t    if (index >= 0) {\n\t      var mapping = this._originalMappings[index];\n\t\n\t      if (mapping.source === needle.source) {\n\t        return {\n\t          line: util.getArg(mapping, 'generatedLine', null),\n\t          column: util.getArg(mapping, 'generatedColumn', null),\n\t          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n\t        };\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null,\n\t      lastColumn: null\n\t    };\n\t  };\n\t\n\texports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\t\n\t/**\n\t * An IndexedSourceMapConsumer instance represents a parsed source map which\n\t * we can query for information. It differs from BasicSourceMapConsumer in\n\t * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n\t * input.\n\t *\n\t * The only parameter is a raw source map (either as a JSON string, or already\n\t * parsed to an object). According to the spec for indexed source maps, they\n\t * have the following attributes:\n\t *\n\t *   - version: Which version of the source map spec this map is following.\n\t *   - file: Optional. The generated file this source map is associated with.\n\t *   - sections: A list of section definitions.\n\t *\n\t * Each value under the \"sections\" field has two fields:\n\t *   - offset: The offset into the original specified at which this section\n\t *       begins to apply, defined as an object with a \"line\" and \"column\"\n\t *       field.\n\t *   - map: A source map definition. This source map could also be indexed,\n\t *       but doesn't have to be.\n\t *\n\t * Instead of the \"map\" field, it's also possible to have a \"url\" field\n\t * specifying a URL to retrieve a source map from, but that's currently\n\t * unsupported.\n\t *\n\t * Here's an example source map, taken from the source map spec[0], but\n\t * modified to omit a section which uses the \"url\" field.\n\t *\n\t *  {\n\t *    version : 3,\n\t *    file: \"app.js\",\n\t *    sections: [{\n\t *      offset: {line:100, column:10},\n\t *      map: {\n\t *        version : 3,\n\t *        file: \"section.js\",\n\t *        sources: [\"foo.js\", \"bar.js\"],\n\t *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n\t *        mappings: \"AAAA,E;;ABCDE;\"\n\t *      }\n\t *    }],\n\t *  }\n\t *\n\t * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n\t */\n\tfunction IndexedSourceMapConsumer(aSourceMap) {\n\t  var sourceMap = aSourceMap;\n\t  if (typeof aSourceMap === 'string') {\n\t    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n\t  }\n\t\n\t  var version = util.getArg(sourceMap, 'version');\n\t  var sections = util.getArg(sourceMap, 'sections');\n\t\n\t  if (version != this._version) {\n\t    throw new Error('Unsupported version: ' + version);\n\t  }\n\t\n\t  this._sources = new ArraySet();\n\t  this._names = new ArraySet();\n\t\n\t  var lastOffset = {\n\t    line: -1,\n\t    column: 0\n\t  };\n\t  this._sections = sections.map(function (s) {\n\t    if (s.url) {\n\t      // The url field will require support for asynchronicity.\n\t      // See https://github.com/mozilla/source-map/issues/16\n\t      throw new Error('Support for url field in sections not implemented.');\n\t    }\n\t    var offset = util.getArg(s, 'offset');\n\t    var offsetLine = util.getArg(offset, 'line');\n\t    var offsetColumn = util.getArg(offset, 'column');\n\t\n\t    if (offsetLine < lastOffset.line ||\n\t        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n\t      throw new Error('Section offsets must be ordered and non-overlapping.');\n\t    }\n\t    lastOffset = offset;\n\t\n\t    return {\n\t      generatedOffset: {\n\t        // The offset fields are 0-based, but we use 1-based indices when\n\t        // encoding/decoding from VLQ.\n\t        generatedLine: offsetLine + 1,\n\t        generatedColumn: offsetColumn + 1\n\t      },\n\t      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n\t    }\n\t  });\n\t}\n\t\n\tIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\n\tIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\t\n\t/**\n\t * The version of the source mapping spec that we are consuming.\n\t */\n\tIndexedSourceMapConsumer.prototype._version = 3;\n\t\n\t/**\n\t * The list of original sources.\n\t */\n\tObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n\t  get: function () {\n\t    var sources = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n\t        sources.push(this._sections[i].consumer.sources[j]);\n\t      }\n\t    }\n\t    return sources;\n\t  }\n\t});\n\t\n\t/**\n\t * Returns the original source, line, and column information for the generated\n\t * source's line and column positions provided. The only argument is an object\n\t * with the following properties:\n\t *\n\t *   - line: The line number in the generated source.\n\t *   - column: The column number in the generated source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - source: The original source file, or null.\n\t *   - line: The line number in the original source, or null.\n\t *   - column: The column number in the original source, or null.\n\t *   - name: The original identifier, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.originalPositionFor =\n\t  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n\t    var needle = {\n\t      generatedLine: util.getArg(aArgs, 'line'),\n\t      generatedColumn: util.getArg(aArgs, 'column')\n\t    };\n\t\n\t    // Find the section containing the generated position we're trying to map\n\t    // to an original position.\n\t    var sectionIndex = binarySearch.search(needle, this._sections,\n\t      function(needle, section) {\n\t        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n\t        if (cmp) {\n\t          return cmp;\n\t        }\n\t\n\t        return (needle.generatedColumn -\n\t                section.generatedOffset.generatedColumn);\n\t      });\n\t    var section = this._sections[sectionIndex];\n\t\n\t    if (!section) {\n\t      return {\n\t        source: null,\n\t        line: null,\n\t        column: null,\n\t        name: null\n\t      };\n\t    }\n\t\n\t    return section.consumer.originalPositionFor({\n\t      line: needle.generatedLine -\n\t        (section.generatedOffset.generatedLine - 1),\n\t      column: needle.generatedColumn -\n\t        (section.generatedOffset.generatedLine === needle.generatedLine\n\t         ? section.generatedOffset.generatedColumn - 1\n\t         : 0),\n\t      bias: aArgs.bias\n\t    });\n\t  };\n\t\n\t/**\n\t * Return true if we have the source content for every source in the source\n\t * map, false otherwise.\n\t */\n\tIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n\t  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n\t    return this._sections.every(function (s) {\n\t      return s.consumer.hasContentsOfAllSources();\n\t    });\n\t  };\n\t\n\t/**\n\t * Returns the original source content. The only argument is the url of the\n\t * original source file. Returns null if no original source content is\n\t * available.\n\t */\n\tIndexedSourceMapConsumer.prototype.sourceContentFor =\n\t  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      var content = section.consumer.sourceContentFor(aSource, true);\n\t      if (content) {\n\t        return content;\n\t      }\n\t    }\n\t    if (nullOnMissing) {\n\t      return null;\n\t    }\n\t    else {\n\t      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n\t    }\n\t  };\n\t\n\t/**\n\t * Returns the generated line and column information for the original source,\n\t * line, and column positions provided. The only argument is an object with\n\t * the following properties:\n\t *\n\t *   - source: The filename of the original source.\n\t *   - line: The line number in the original source.\n\t *   - column: The column number in the original source.\n\t *\n\t * and an object is returned with the following properties:\n\t *\n\t *   - line: The line number in the generated source, or null.\n\t *   - column: The column number in the generated source, or null.\n\t */\n\tIndexedSourceMapConsumer.prototype.generatedPositionFor =\n\t  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t\n\t      // Only consider this section if the requested source is in the list of\n\t      // sources of the consumer.\n\t      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n\t        continue;\n\t      }\n\t      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n\t      if (generatedPosition) {\n\t        var ret = {\n\t          line: generatedPosition.line +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          column: generatedPosition.column +\n\t            (section.generatedOffset.generatedLine === generatedPosition.line\n\t             ? section.generatedOffset.generatedColumn - 1\n\t             : 0)\n\t        };\n\t        return ret;\n\t      }\n\t    }\n\t\n\t    return {\n\t      line: null,\n\t      column: null\n\t    };\n\t  };\n\t\n\t/**\n\t * Parse the mappings in a string in to a data structure which we can easily\n\t * query (the ordered arrays in the `this.__generatedMappings` and\n\t * `this.__originalMappings` properties).\n\t */\n\tIndexedSourceMapConsumer.prototype._parseMappings =\n\t  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n\t    this.__generatedMappings = [];\n\t    this.__originalMappings = [];\n\t    for (var i = 0; i < this._sections.length; i++) {\n\t      var section = this._sections[i];\n\t      var sectionMappings = section.consumer._generatedMappings;\n\t      for (var j = 0; j < sectionMappings.length; j++) {\n\t        var mapping = sectionMappings[j];\n\t\n\t        var source = section.consumer._sources.at(mapping.source);\n\t        if (section.consumer.sourceRoot !== null) {\n\t          source = util.join(section.consumer.sourceRoot, source);\n\t        }\n\t        this._sources.add(source);\n\t        source = this._sources.indexOf(source);\n\t\n\t        var name = section.consumer._names.at(mapping.name);\n\t        this._names.add(name);\n\t        name = this._names.indexOf(name);\n\t\n\t        // The mappings coming from the consumer for the section have\n\t        // generated positions relative to the start of the section, so we\n\t        // need to offset them to be relative to the start of the concatenated\n\t        // generated file.\n\t        var adjustedMapping = {\n\t          source: source,\n\t          generatedLine: mapping.generatedLine +\n\t            (section.generatedOffset.generatedLine - 1),\n\t          generatedColumn: mapping.generatedColumn +\n\t            (section.generatedOffset.generatedLine === mapping.generatedLine\n\t            ? section.generatedOffset.generatedColumn - 1\n\t            : 0),\n\t          originalLine: mapping.originalLine,\n\t          originalColumn: mapping.originalColumn,\n\t          name: name\n\t        };\n\t\n\t        this.__generatedMappings.push(adjustedMapping);\n\t        if (typeof adjustedMapping.originalLine === 'number') {\n\t          this.__originalMappings.push(adjustedMapping);\n\t        }\n\t      }\n\t    }\n\t\n\t    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n\t    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n\t  };\n\t\n\texports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\texports.GREATEST_LOWER_BOUND = 1;\n\texports.LEAST_UPPER_BOUND = 2;\n\t\n\t/**\n\t * Recursive implementation of binary search.\n\t *\n\t * @param aLow Indices here and lower do not contain the needle.\n\t * @param aHigh Indices here and higher do not contain the needle.\n\t * @param aNeedle The element being searched for.\n\t * @param aHaystack The non-empty array being searched.\n\t * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t */\n\tfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n\t  // This function terminates when one of the following is true:\n\t  //\n\t  //   1. We find the exact element we are looking for.\n\t  //\n\t  //   2. We did not find the exact element, but we can return the index of\n\t  //      the next-closest element.\n\t  //\n\t  //   3. We did not find the exact element, and there is no next-closest\n\t  //      element than the one we are searching for, so we return -1.\n\t  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n\t  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n\t  if (cmp === 0) {\n\t    // Found the element we are looking for.\n\t    return mid;\n\t  }\n\t  else if (cmp > 0) {\n\t    // Our needle is greater than aHaystack[mid].\n\t    if (aHigh - mid > 1) {\n\t      // The element is in the upper half.\n\t      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // The exact needle element was not found in this haystack. Determine if\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return aHigh < aHaystack.length ? aHigh : -1;\n\t    } else {\n\t      return mid;\n\t    }\n\t  }\n\t  else {\n\t    // Our needle is less than aHaystack[mid].\n\t    if (mid - aLow > 1) {\n\t      // The element is in the lower half.\n\t      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n\t    }\n\t\n\t    // we are in termination case (3) or (2) and return the appropriate thing.\n\t    if (aBias == exports.LEAST_UPPER_BOUND) {\n\t      return mid;\n\t    } else {\n\t      return aLow < 0 ? -1 : aLow;\n\t    }\n\t  }\n\t}\n\t\n\t/**\n\t * This is an implementation of binary search which will always try and return\n\t * the index of the closest element if there is no exact hit. This is because\n\t * mappings between original and generated line/col pairs are single points,\n\t * and there is an implicit region between each of them, so a miss just means\n\t * that you aren't on the very start of a region.\n\t *\n\t * @param aNeedle The element you are looking for.\n\t * @param aHaystack The array that is being searched.\n\t * @param aCompare A function which takes the needle and an element in the\n\t *     array and returns -1, 0, or 1 depending on whether the needle is less\n\t *     than, equal to, or greater than the element, respectively.\n\t * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n\t *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n\t *     closest element that is smaller than or greater than the one we are\n\t *     searching for, respectively, if the exact element cannot be found.\n\t *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n\t */\n\texports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n\t  if (aHaystack.length === 0) {\n\t    return -1;\n\t  }\n\t\n\t  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n\t                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n\t  if (index < 0) {\n\t    return -1;\n\t  }\n\t\n\t  // We have found either the exact element, or the next-closest element than\n\t  // the one we are searching for. However, there may be more than one such\n\t  // element. Make sure we always return the smallest of these.\n\t  while (index - 1 >= 0) {\n\t    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n\t      break;\n\t    }\n\t    --index;\n\t  }\n\t\n\t  return index;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\t// It turns out that some (most?) JavaScript engines don't self-host\n\t// `Array.prototype.sort`. This makes sense because C++ will likely remain\n\t// faster than JS when doing raw CPU-intensive sorting. However, when using a\n\t// custom comparator function, calling back and forth between the VM's C++ and\n\t// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n\t// worse generated code for the comparator function than would be optimal. In\n\t// fact, when sorting with a comparator, these costs outweigh the benefits of\n\t// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n\t// a ~3500ms mean speed-up in `bench/bench.html`.\n\t\n\t/**\n\t * Swap the elements indexed by `x` and `y` in the array `ary`.\n\t *\n\t * @param {Array} ary\n\t *        The array.\n\t * @param {Number} x\n\t *        The index of the first item.\n\t * @param {Number} y\n\t *        The index of the second item.\n\t */\n\tfunction swap(ary, x, y) {\n\t  var temp = ary[x];\n\t  ary[x] = ary[y];\n\t  ary[y] = temp;\n\t}\n\t\n\t/**\n\t * Returns a random integer within the range `low .. high` inclusive.\n\t *\n\t * @param {Number} low\n\t *        The lower bound on the range.\n\t * @param {Number} high\n\t *        The upper bound on the range.\n\t */\n\tfunction randomIntInRange(low, high) {\n\t  return Math.round(low + (Math.random() * (high - low)));\n\t}\n\t\n\t/**\n\t * The Quick Sort algorithm.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t * @param {Number} p\n\t *        Start index of the array\n\t * @param {Number} r\n\t *        End index of the array\n\t */\n\tfunction doQuickSort(ary, comparator, p, r) {\n\t  // If our lower bound is less than our upper bound, we (1) partition the\n\t  // array into two pieces and (2) recurse on each half. If it is not, this is\n\t  // the empty array and our base case.\n\t\n\t  if (p < r) {\n\t    // (1) Partitioning.\n\t    //\n\t    // The partitioning chooses a pivot between `p` and `r` and moves all\n\t    // elements that are less than or equal to the pivot to the before it, and\n\t    // all the elements that are greater than it after it. The effect is that\n\t    // once partition is done, the pivot is in the exact place it will be when\n\t    // the array is put in sorted order, and it will not need to be moved\n\t    // again. This runs in O(n) time.\n\t\n\t    // Always choose a random pivot so that an input array which is reverse\n\t    // sorted does not cause O(n^2) running time.\n\t    var pivotIndex = randomIntInRange(p, r);\n\t    var i = p - 1;\n\t\n\t    swap(ary, pivotIndex, r);\n\t    var pivot = ary[r];\n\t\n\t    // Immediately after `j` is incremented in this loop, the following hold\n\t    // true:\n\t    //\n\t    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n\t    //\n\t    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n\t    for (var j = p; j < r; j++) {\n\t      if (comparator(ary[j], pivot) <= 0) {\n\t        i += 1;\n\t        swap(ary, i, j);\n\t      }\n\t    }\n\t\n\t    swap(ary, i + 1, j);\n\t    var q = i + 1;\n\t\n\t    // (2) Recurse on each half.\n\t\n\t    doQuickSort(ary, comparator, p, q - 1);\n\t    doQuickSort(ary, comparator, q + 1, r);\n\t  }\n\t}\n\t\n\t/**\n\t * Sort the given array in-place with the given comparator function.\n\t *\n\t * @param {Array} ary\n\t *        An array to sort.\n\t * @param {function} comparator\n\t *        Function to use to compare two items.\n\t */\n\texports.quickSort = function (ary, comparator) {\n\t  doQuickSort(ary, comparator, 0, ary.length - 1);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* -*- Mode: js; js-indent-level: 2; -*- */\n\t/*\n\t * Copyright 2011 Mozilla Foundation and contributors\n\t * Licensed under the New BSD license. See LICENSE or:\n\t * http://opensource.org/licenses/BSD-3-Clause\n\t */\n\t\n\tvar SourceMapGenerator = __webpack_require__(1).SourceMapGenerator;\n\tvar util = __webpack_require__(4);\n\t\n\t// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n\t// operating systems these days (capturing the result).\n\tvar REGEX_NEWLINE = /(\\r?\\n)/;\n\t\n\t// Newline character code for charCodeAt() comparisons\n\tvar NEWLINE_CODE = 10;\n\t\n\t// Private symbol for identifying `SourceNode`s when multiple versions of\n\t// the source-map library are loaded. This MUST NOT CHANGE across\n\t// versions!\n\tvar isSourceNode = \"$$$isSourceNode$$$\";\n\t\n\t/**\n\t * SourceNodes provide a way to abstract over interpolating/concatenating\n\t * snippets of generated JavaScript source code while maintaining the line and\n\t * column information associated with the original source code.\n\t *\n\t * @param aLine The original line number.\n\t * @param aColumn The original column number.\n\t * @param aSource The original source's filename.\n\t * @param aChunks Optional. An array of strings which are snippets of\n\t *        generated JS, or other SourceNodes.\n\t * @param aName The original identifier.\n\t */\n\tfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n\t  this.children = [];\n\t  this.sourceContents = {};\n\t  this.line = aLine == null ? null : aLine;\n\t  this.column = aColumn == null ? null : aColumn;\n\t  this.source = aSource == null ? null : aSource;\n\t  this.name = aName == null ? null : aName;\n\t  this[isSourceNode] = true;\n\t  if (aChunks != null) this.add(aChunks);\n\t}\n\t\n\t/**\n\t * Creates a SourceNode from generated code and a SourceMapConsumer.\n\t *\n\t * @param aGeneratedCode The generated code\n\t * @param aSourceMapConsumer The SourceMap for the generated code\n\t * @param aRelativePath Optional. The path that relative sources in the\n\t *        SourceMapConsumer should be relative to.\n\t */\n\tSourceNode.fromStringWithSourceMap =\n\t  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n\t    // The SourceNode we want to fill with the generated code\n\t    // and the SourceMap\n\t    var node = new SourceNode();\n\t\n\t    // All even indices of this array are one line of the generated code,\n\t    // while all odd indices are the newlines between two adjacent lines\n\t    // (since `REGEX_NEWLINE` captures its match).\n\t    // Processed fragments are accessed by calling `shiftNextLine`.\n\t    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n\t    var remainingLinesIndex = 0;\n\t    var shiftNextLine = function() {\n\t      var lineContents = getNextLine();\n\t      // The last line of a file might not have a newline.\n\t      var newLine = getNextLine() || \"\";\n\t      return lineContents + newLine;\n\t\n\t      function getNextLine() {\n\t        return remainingLinesIndex < remainingLines.length ?\n\t            remainingLines[remainingLinesIndex++] : undefined;\n\t      }\n\t    };\n\t\n\t    // We need to remember the position of \"remainingLines\"\n\t    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\t\n\t    // The generate SourceNodes we need a code range.\n\t    // To extract it current and last mapping is used.\n\t    // Here we store the last mapping.\n\t    var lastMapping = null;\n\t\n\t    aSourceMapConsumer.eachMapping(function (mapping) {\n\t      if (lastMapping !== null) {\n\t        // We add the code from \"lastMapping\" to \"mapping\":\n\t        // First check if there is a new line in between.\n\t        if (lastGeneratedLine < mapping.generatedLine) {\n\t          // Associate first line with \"lastMapping\"\n\t          addMappingWithCode(lastMapping, shiftNextLine());\n\t          lastGeneratedLine++;\n\t          lastGeneratedColumn = 0;\n\t          // The remaining code is added without mapping\n\t        } else {\n\t          // There is no new line in between.\n\t          // Associate the code between \"lastGeneratedColumn\" and\n\t          // \"mapping.generatedColumn\" with \"lastMapping\"\n\t          var nextLine = remainingLines[remainingLinesIndex];\n\t          var code = nextLine.substr(0, mapping.generatedColumn -\n\t                                        lastGeneratedColumn);\n\t          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n\t                                              lastGeneratedColumn);\n\t          lastGeneratedColumn = mapping.generatedColumn;\n\t          addMappingWithCode(lastMapping, code);\n\t          // No more remaining code, continue\n\t          lastMapping = mapping;\n\t          return;\n\t        }\n\t      }\n\t      // We add the generated code until the first mapping\n\t      // to the SourceNode without any mapping.\n\t      // Each line is added as separate string.\n\t      while (lastGeneratedLine < mapping.generatedLine) {\n\t        node.add(shiftNextLine());\n\t        lastGeneratedLine++;\n\t      }\n\t      if (lastGeneratedColumn < mapping.generatedColumn) {\n\t        var nextLine = remainingLines[remainingLinesIndex];\n\t        node.add(nextLine.substr(0, mapping.generatedColumn));\n\t        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n\t        lastGeneratedColumn = mapping.generatedColumn;\n\t      }\n\t      lastMapping = mapping;\n\t    }, this);\n\t    // We have processed all mappings.\n\t    if (remainingLinesIndex < remainingLines.length) {\n\t      if (lastMapping) {\n\t        // Associate the remaining code in the current line with \"lastMapping\"\n\t        addMappingWithCode(lastMapping, shiftNextLine());\n\t      }\n\t      // and add the remaining lines without any mapping\n\t      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n\t    }\n\t\n\t    // Copy sourcesContent into SourceNode\n\t    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n\t      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n\t      if (content != null) {\n\t        if (aRelativePath != null) {\n\t          sourceFile = util.join(aRelativePath, sourceFile);\n\t        }\n\t        node.setSourceContent(sourceFile, content);\n\t      }\n\t    });\n\t\n\t    return node;\n\t\n\t    function addMappingWithCode(mapping, code) {\n\t      if (mapping === null || mapping.source === undefined) {\n\t        node.add(code);\n\t      } else {\n\t        var source = aRelativePath\n\t          ? util.join(aRelativePath, mapping.source)\n\t          : mapping.source;\n\t        node.add(new SourceNode(mapping.originalLine,\n\t                                mapping.originalColumn,\n\t                                source,\n\t                                code,\n\t                                mapping.name));\n\t      }\n\t    }\n\t  };\n\t\n\t/**\n\t * Add a chunk of generated JS to this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.add = function SourceNode_add(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    aChunk.forEach(function (chunk) {\n\t      this.add(chunk);\n\t    }, this);\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    if (aChunk) {\n\t      this.children.push(aChunk);\n\t    }\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Add a chunk of generated JS to the beginning of this source node.\n\t *\n\t * @param aChunk A string snippet of generated JS code, another instance of\n\t *        SourceNode, or an array where each member is one of those things.\n\t */\n\tSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n\t  if (Array.isArray(aChunk)) {\n\t    for (var i = aChunk.length-1; i >= 0; i--) {\n\t      this.prepend(aChunk[i]);\n\t    }\n\t  }\n\t  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n\t    this.children.unshift(aChunk);\n\t  }\n\t  else {\n\t    throw new TypeError(\n\t      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n\t    );\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Walk over the tree of JS snippets in this node and its children. The\n\t * walking function is called once for each snippet of JS and is passed that\n\t * snippet and the its original associated source's line/column location.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n\t  var chunk;\n\t  for (var i = 0, len = this.children.length; i < len; i++) {\n\t    chunk = this.children[i];\n\t    if (chunk[isSourceNode]) {\n\t      chunk.walk(aFn);\n\t    }\n\t    else {\n\t      if (chunk !== '') {\n\t        aFn(chunk, { source: this.source,\n\t                     line: this.line,\n\t                     column: this.column,\n\t                     name: this.name });\n\t      }\n\t    }\n\t  }\n\t};\n\t\n\t/**\n\t * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n\t * each of `this.children`.\n\t *\n\t * @param aSep The separator.\n\t */\n\tSourceNode.prototype.join = function SourceNode_join(aSep) {\n\t  var newChildren;\n\t  var i;\n\t  var len = this.children.length;\n\t  if (len > 0) {\n\t    newChildren = [];\n\t    for (i = 0; i < len-1; i++) {\n\t      newChildren.push(this.children[i]);\n\t      newChildren.push(aSep);\n\t    }\n\t    newChildren.push(this.children[i]);\n\t    this.children = newChildren;\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Call String.prototype.replace on the very right-most source snippet. Useful\n\t * for trimming whitespace from the end of a source node, etc.\n\t *\n\t * @param aPattern The pattern to replace.\n\t * @param aReplacement The thing to replace the pattern with.\n\t */\n\tSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n\t  var lastChild = this.children[this.children.length - 1];\n\t  if (lastChild[isSourceNode]) {\n\t    lastChild.replaceRight(aPattern, aReplacement);\n\t  }\n\t  else if (typeof lastChild === 'string') {\n\t    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n\t  }\n\t  else {\n\t    this.children.push(''.replace(aPattern, aReplacement));\n\t  }\n\t  return this;\n\t};\n\t\n\t/**\n\t * Set the source content for a source file. This will be added to the SourceMapGenerator\n\t * in the sourcesContent field.\n\t *\n\t * @param aSourceFile The filename of the source file\n\t * @param aSourceContent The content of the source file\n\t */\n\tSourceNode.prototype.setSourceContent =\n\t  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n\t    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n\t  };\n\t\n\t/**\n\t * Walk over the tree of SourceNodes. The walking function is called for each\n\t * source file content and is passed the filename and source content.\n\t *\n\t * @param aFn The traversal function.\n\t */\n\tSourceNode.prototype.walkSourceContents =\n\t  function SourceNode_walkSourceContents(aFn) {\n\t    for (var i = 0, len = this.children.length; i < len; i++) {\n\t      if (this.children[i][isSourceNode]) {\n\t        this.children[i].walkSourceContents(aFn);\n\t      }\n\t    }\n\t\n\t    var sources = Object.keys(this.sourceContents);\n\t    for (var i = 0, len = sources.length; i < len; i++) {\n\t      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n\t    }\n\t  };\n\t\n\t/**\n\t * Return the string representation of this source node. Walks over the tree\n\t * and concatenates all the various snippets together to one string.\n\t */\n\tSourceNode.prototype.toString = function SourceNode_toString() {\n\t  var str = \"\";\n\t  this.walk(function (chunk) {\n\t    str += chunk;\n\t  });\n\t  return str;\n\t};\n\t\n\t/**\n\t * Returns the string representation of this source node along with a source\n\t * map.\n\t */\n\tSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n\t  var generated = {\n\t    code: \"\",\n\t    line: 1,\n\t    column: 0\n\t  };\n\t  var map = new SourceMapGenerator(aArgs);\n\t  var sourceMappingActive = false;\n\t  var lastOriginalSource = null;\n\t  var lastOriginalLine = null;\n\t  var lastOriginalColumn = null;\n\t  var lastOriginalName = null;\n\t  this.walk(function (chunk, original) {\n\t    generated.code += chunk;\n\t    if (original.source !== null\n\t        && original.line !== null\n\t        && original.column !== null) {\n\t      if(lastOriginalSource !== original.source\n\t         || lastOriginalLine !== original.line\n\t         || lastOriginalColumn !== original.column\n\t         || lastOriginalName !== original.name) {\n\t        map.addMapping({\n\t          source: original.source,\n\t          original: {\n\t            line: original.line,\n\t            column: original.column\n\t          },\n\t          generated: {\n\t            line: generated.line,\n\t            column: generated.column\n\t          },\n\t          name: original.name\n\t        });\n\t      }\n\t      lastOriginalSource = original.source;\n\t      lastOriginalLine = original.line;\n\t      lastOriginalColumn = original.column;\n\t      lastOriginalName = original.name;\n\t      sourceMappingActive = true;\n\t    } else if (sourceMappingActive) {\n\t      map.addMapping({\n\t        generated: {\n\t          line: generated.line,\n\t          column: generated.column\n\t        }\n\t      });\n\t      lastOriginalSource = null;\n\t      sourceMappingActive = false;\n\t    }\n\t    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n\t      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n\t        generated.line++;\n\t        generated.column = 0;\n\t        // Mappings end at eol\n\t        if (idx + 1 === length) {\n\t          lastOriginalSource = null;\n\t          sourceMappingActive = false;\n\t        } else if (sourceMappingActive) {\n\t          map.addMapping({\n\t            source: original.source,\n\t            original: {\n\t              line: original.line,\n\t              column: original.column\n\t            },\n\t            generated: {\n\t              line: generated.line,\n\t              column: generated.column\n\t            },\n\t            name: original.name\n\t          });\n\t        }\n\t      } else {\n\t        generated.column++;\n\t      }\n\t    }\n\t  });\n\t  this.walkSourceContents(function (sourceFile, sourceContent) {\n\t    map.setSourceContent(sourceFile, sourceContent);\n\t  });\n\t\n\t  return { code: generated.code, map: map };\n\t};\n\t\n\texports.SourceNode = SourceNode;\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// source-map.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 42c329f865e32e011afb","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./source-map.js\n// module id = 0\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n *   - file: The filename of the generated source.\n *   - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n  if (!aArgs) {\n    aArgs = {};\n  }\n  this._file = util.getArg(aArgs, 'file', null);\n  this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n  this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n  this._mappings = new MappingList();\n  this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n  function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n    var sourceRoot = aSourceMapConsumer.sourceRoot;\n    var generator = new SourceMapGenerator({\n      file: aSourceMapConsumer.file,\n      sourceRoot: sourceRoot\n    });\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      var newMapping = {\n        generated: {\n          line: mapping.generatedLine,\n          column: mapping.generatedColumn\n        }\n      };\n\n      if (mapping.source != null) {\n        newMapping.source = mapping.source;\n        if (sourceRoot != null) {\n          newMapping.source = util.relative(sourceRoot, newMapping.source);\n        }\n\n        newMapping.original = {\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        };\n\n        if (mapping.name != null) {\n          newMapping.name = mapping.name;\n        }\n      }\n\n      generator.addMapping(newMapping);\n    });\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        generator.setSourceContent(sourceFile, content);\n      }\n    });\n    return generator;\n  };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n *   - generated: An object with the generated line and column positions.\n *   - original: An object with the original line and column positions.\n *   - source: The original source file (relative to the sourceRoot).\n *   - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n  function SourceMapGenerator_addMapping(aArgs) {\n    var generated = util.getArg(aArgs, 'generated');\n    var original = util.getArg(aArgs, 'original', null);\n    var source = util.getArg(aArgs, 'source', null);\n    var name = util.getArg(aArgs, 'name', null);\n\n    if (!this._skipValidation) {\n      this._validateMapping(generated, original, source, name);\n    }\n\n    if (source != null) {\n      source = String(source);\n      if (!this._sources.has(source)) {\n        this._sources.add(source);\n      }\n    }\n\n    if (name != null) {\n      name = String(name);\n      if (!this._names.has(name)) {\n        this._names.add(name);\n      }\n    }\n\n    this._mappings.add({\n      generatedLine: generated.line,\n      generatedColumn: generated.column,\n      originalLine: original != null && original.line,\n      originalColumn: original != null && original.column,\n      source: source,\n      name: name\n    });\n  };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n  function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n    var source = aSourceFile;\n    if (this._sourceRoot != null) {\n      source = util.relative(this._sourceRoot, source);\n    }\n\n    if (aSourceContent != null) {\n      // Add the source content to the _sourcesContents map.\n      // Create a new _sourcesContents map if the property is null.\n      if (!this._sourcesContents) {\n        this._sourcesContents = Object.create(null);\n      }\n      this._sourcesContents[util.toSetString(source)] = aSourceContent;\n    } else if (this._sourcesContents) {\n      // Remove the source file from the _sourcesContents map.\n      // If the _sourcesContents map is empty, set the property to null.\n      delete this._sourcesContents[util.toSetString(source)];\n      if (Object.keys(this._sourcesContents).length === 0) {\n        this._sourcesContents = null;\n      }\n    }\n  };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n *        If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n *        to be applied. If relative, it is relative to the SourceMapConsumer.\n *        This parameter is needed when the two source maps aren't in the same\n *        directory, and the source map to be applied contains relative source\n *        paths. If so, those relative source paths need to be rewritten\n *        relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n  function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n    var sourceFile = aSourceFile;\n    // If aSourceFile is omitted, we will use the file property of the SourceMap\n    if (aSourceFile == null) {\n      if (aSourceMapConsumer.file == null) {\n        throw new Error(\n          'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n          'or the source map\\'s \"file\" property. Both were omitted.'\n        );\n      }\n      sourceFile = aSourceMapConsumer.file;\n    }\n    var sourceRoot = this._sourceRoot;\n    // Make \"sourceFile\" relative if an absolute Url is passed.\n    if (sourceRoot != null) {\n      sourceFile = util.relative(sourceRoot, sourceFile);\n    }\n    // Applying the SourceMap can add and remove items from the sources and\n    // the names array.\n    var newSources = new ArraySet();\n    var newNames = new ArraySet();\n\n    // Find mappings for the \"sourceFile\"\n    this._mappings.unsortedForEach(function (mapping) {\n      if (mapping.source === sourceFile && mapping.originalLine != null) {\n        // Check if it can be mapped by the source map, then update the mapping.\n        var original = aSourceMapConsumer.originalPositionFor({\n          line: mapping.originalLine,\n          column: mapping.originalColumn\n        });\n        if (original.source != null) {\n          // Copy mapping\n          mapping.source = original.source;\n          if (aSourceMapPath != null) {\n            mapping.source = util.join(aSourceMapPath, mapping.source)\n          }\n          if (sourceRoot != null) {\n            mapping.source = util.relative(sourceRoot, mapping.source);\n          }\n          mapping.originalLine = original.line;\n          mapping.originalColumn = original.column;\n          if (original.name != null) {\n            mapping.name = original.name;\n          }\n        }\n      }\n\n      var source = mapping.source;\n      if (source != null && !newSources.has(source)) {\n        newSources.add(source);\n      }\n\n      var name = mapping.name;\n      if (name != null && !newNames.has(name)) {\n        newNames.add(name);\n      }\n\n    }, this);\n    this._sources = newSources;\n    this._names = newNames;\n\n    // Copy sourcesContents of applied map.\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aSourceMapPath != null) {\n          sourceFile = util.join(aSourceMapPath, sourceFile);\n        }\n        if (sourceRoot != null) {\n          sourceFile = util.relative(sourceRoot, sourceFile);\n        }\n        this.setSourceContent(sourceFile, content);\n      }\n    }, this);\n  };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n *   1. Just the generated position.\n *   2. The Generated position, original position, and original source.\n *   3. Generated and original position, original source, as well as a name\n *      token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n  function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n                                              aName) {\n    // When aOriginal is truthy but has empty values for .line and .column,\n    // it is most likely a programmer error. In this case we throw a very\n    // specific error message to try to guide them the right way.\n    // For example: https://github.com/Polymer/polymer-bundler/pull/519\n    if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n        throw new Error(\n            'original.line and original.column are not numbers -- you probably meant to omit ' +\n            'the original mapping entirely and only map the generated position. If so, pass ' +\n            'null for the original mapping instead of an object with empty or null values.'\n        );\n    }\n\n    if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n        && aGenerated.line > 0 && aGenerated.column >= 0\n        && !aOriginal && !aSource && !aName) {\n      // Case 1.\n      return;\n    }\n    else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n             && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n             && aGenerated.line > 0 && aGenerated.column >= 0\n             && aOriginal.line > 0 && aOriginal.column >= 0\n             && aSource) {\n      // Cases 2 and 3.\n      return;\n    }\n    else {\n      throw new Error('Invalid mapping: ' + JSON.stringify({\n        generated: aGenerated,\n        source: aSource,\n        original: aOriginal,\n        name: aName\n      }));\n    }\n  };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n  function SourceMapGenerator_serializeMappings() {\n    var previousGeneratedColumn = 0;\n    var previousGeneratedLine = 1;\n    var previousOriginalColumn = 0;\n    var previousOriginalLine = 0;\n    var previousName = 0;\n    var previousSource = 0;\n    var result = '';\n    var next;\n    var mapping;\n    var nameIdx;\n    var sourceIdx;\n\n    var mappings = this._mappings.toArray();\n    for (var i = 0, len = mappings.length; i < len; i++) {\n      mapping = mappings[i];\n      next = ''\n\n      if (mapping.generatedLine !== previousGeneratedLine) {\n        previousGeneratedColumn = 0;\n        while (mapping.generatedLine !== previousGeneratedLine) {\n          next += ';';\n          previousGeneratedLine++;\n        }\n      }\n      else {\n        if (i > 0) {\n          if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n            continue;\n          }\n          next += ',';\n        }\n      }\n\n      next += base64VLQ.encode(mapping.generatedColumn\n                                 - previousGeneratedColumn);\n      previousGeneratedColumn = mapping.generatedColumn;\n\n      if (mapping.source != null) {\n        sourceIdx = this._sources.indexOf(mapping.source);\n        next += base64VLQ.encode(sourceIdx - previousSource);\n        previousSource = sourceIdx;\n\n        // lines are stored 0-based in SourceMap spec version 3\n        next += base64VLQ.encode(mapping.originalLine - 1\n                                   - previousOriginalLine);\n        previousOriginalLine = mapping.originalLine - 1;\n\n        next += base64VLQ.encode(mapping.originalColumn\n                                   - previousOriginalColumn);\n        previousOriginalColumn = mapping.originalColumn;\n\n        if (mapping.name != null) {\n          nameIdx = this._names.indexOf(mapping.name);\n          next += base64VLQ.encode(nameIdx - previousName);\n          previousName = nameIdx;\n        }\n      }\n\n      result += next;\n    }\n\n    return result;\n  };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n  function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n    return aSources.map(function (source) {\n      if (!this._sourcesContents) {\n        return null;\n      }\n      if (aSourceRoot != null) {\n        source = util.relative(aSourceRoot, source);\n      }\n      var key = util.toSetString(source);\n      return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n        ? this._sourcesContents[key]\n        : null;\n    }, this);\n  };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n  function SourceMapGenerator_toJSON() {\n    var map = {\n      version: this._version,\n      sources: this._sources.toArray(),\n      names: this._names.toArray(),\n      mappings: this._serializeMappings()\n    };\n    if (this._file != null) {\n      map.file = this._file;\n    }\n    if (this._sourceRoot != null) {\n      map.sourceRoot = this._sourceRoot;\n    }\n    if (this._sourcesContents) {\n      map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n    }\n\n    return map;\n  };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n  function SourceMapGenerator_toString() {\n    return JSON.stringify(this.toJSON());\n  };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-generator.js\n// module id = 1\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n *  * Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above\n *    copyright notice, this list of conditions and the following\n *    disclaimer in the documentation and/or other materials provided\n *    with the distribution.\n *  * Neither the name of Google Inc. nor the names of its\n *    contributors may be used to endorse or promote products derived\n *    from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n//   Continuation\n//   |    Sign\n//   |    |\n//   V    V\n//   101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n *   2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n  return aValue < 0\n    ? ((-aValue) << 1) + 1\n    : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit.  For example, as decimals:\n *   2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n *   4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n  var isNegative = (aValue & 1) === 1;\n  var shifted = aValue >> 1;\n  return isNegative\n    ? -shifted\n    : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n  var encoded = \"\";\n  var digit;\n\n  var vlq = toVLQSigned(aValue);\n\n  do {\n    digit = vlq & VLQ_BASE_MASK;\n    vlq >>>= VLQ_BASE_SHIFT;\n    if (vlq > 0) {\n      // There are still more digits in this value, so we must make sure the\n      // continuation bit is marked.\n      digit |= VLQ_CONTINUATION_BIT;\n    }\n    encoded += base64.encode(digit);\n  } while (vlq > 0);\n\n  return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n  var strLen = aStr.length;\n  var result = 0;\n  var shift = 0;\n  var continuation, digit;\n\n  do {\n    if (aIndex >= strLen) {\n      throw new Error(\"Expected more digits in base 64 VLQ value.\");\n    }\n\n    digit = base64.decode(aStr.charCodeAt(aIndex++));\n    if (digit === -1) {\n      throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n    }\n\n    continuation = !!(digit & VLQ_CONTINUATION_BIT);\n    digit &= VLQ_BASE_MASK;\n    result = result + (digit << shift);\n    shift += VLQ_BASE_SHIFT;\n  } while (continuation);\n\n  aOutParam.value = fromVLQSigned(result);\n  aOutParam.rest = aIndex;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64-vlq.js\n// module id = 2\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n  if (0 <= number && number < intToCharMap.length) {\n    return intToCharMap[number];\n  }\n  throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n  var bigA = 65;     // 'A'\n  var bigZ = 90;     // 'Z'\n\n  var littleA = 97;  // 'a'\n  var littleZ = 122; // 'z'\n\n  var zero = 48;     // '0'\n  var nine = 57;     // '9'\n\n  var plus = 43;     // '+'\n  var slash = 47;    // '/'\n\n  var littleOffset = 26;\n  var numberOffset = 52;\n\n  // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n  if (bigA <= charCode && charCode <= bigZ) {\n    return (charCode - bigA);\n  }\n\n  // 26 - 51: abcdefghijklmnopqrstuvwxyz\n  if (littleA <= charCode && charCode <= littleZ) {\n    return (charCode - littleA + littleOffset);\n  }\n\n  // 52 - 61: 0123456789\n  if (zero <= charCode && charCode <= nine) {\n    return (charCode - zero + numberOffset);\n  }\n\n  // 62: +\n  if (charCode == plus) {\n    return 62;\n  }\n\n  // 63: /\n  if (charCode == slash) {\n    return 63;\n  }\n\n  // Invalid base64 digit.\n  return -1;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/base64.js\n// module id = 3\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n  if (aName in aArgs) {\n    return aArgs[aName];\n  } else if (arguments.length === 3) {\n    return aDefaultValue;\n  } else {\n    throw new Error('\"' + aName + '\" is a required argument.');\n  }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n  var match = aUrl.match(urlRegexp);\n  if (!match) {\n    return null;\n  }\n  return {\n    scheme: match[1],\n    auth: match[2],\n    host: match[3],\n    port: match[4],\n    path: match[5]\n  };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n  var url = '';\n  if (aParsedUrl.scheme) {\n    url += aParsedUrl.scheme + ':';\n  }\n  url += '//';\n  if (aParsedUrl.auth) {\n    url += aParsedUrl.auth + '@';\n  }\n  if (aParsedUrl.host) {\n    url += aParsedUrl.host;\n  }\n  if (aParsedUrl.port) {\n    url += \":\" + aParsedUrl.port\n  }\n  if (aParsedUrl.path) {\n    url += aParsedUrl.path;\n  }\n  return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n  var path = aPath;\n  var url = urlParse(aPath);\n  if (url) {\n    if (!url.path) {\n      return aPath;\n    }\n    path = url.path;\n  }\n  var isAbsolute = exports.isAbsolute(path);\n\n  var parts = path.split(/\\/+/);\n  for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n    part = parts[i];\n    if (part === '.') {\n      parts.splice(i, 1);\n    } else if (part === '..') {\n      up++;\n    } else if (up > 0) {\n      if (part === '') {\n        // The first part is blank if the path is absolute. Trying to go\n        // above the root is a no-op. Therefore we can remove all '..' parts\n        // directly after the root.\n        parts.splice(i + 1, up);\n        up = 0;\n      } else {\n        parts.splice(i, 2);\n        up--;\n      }\n    }\n  }\n  path = parts.join('/');\n\n  if (path === '') {\n    path = isAbsolute ? '/' : '.';\n  }\n\n  if (url) {\n    url.path = path;\n    return urlGenerate(url);\n  }\n  return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n *   scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n *   first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n *   is updated with the result and aRoot is returned. Otherwise the result\n *   is returned.\n *   - If aPath is absolute, the result is aPath.\n *   - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n  if (aPath === \"\") {\n    aPath = \".\";\n  }\n  var aPathUrl = urlParse(aPath);\n  var aRootUrl = urlParse(aRoot);\n  if (aRootUrl) {\n    aRoot = aRootUrl.path || '/';\n  }\n\n  // `join(foo, '//www.example.org')`\n  if (aPathUrl && !aPathUrl.scheme) {\n    if (aRootUrl) {\n      aPathUrl.scheme = aRootUrl.scheme;\n    }\n    return urlGenerate(aPathUrl);\n  }\n\n  if (aPathUrl || aPath.match(dataUrlRegexp)) {\n    return aPath;\n  }\n\n  // `join('http://', 'www.example.com')`\n  if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n    aRootUrl.host = aPath;\n    return urlGenerate(aRootUrl);\n  }\n\n  var joined = aPath.charAt(0) === '/'\n    ? aPath\n    : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n  if (aRootUrl) {\n    aRootUrl.path = joined;\n    return urlGenerate(aRootUrl);\n  }\n  return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n  return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n  if (aRoot === \"\") {\n    aRoot = \".\";\n  }\n\n  aRoot = aRoot.replace(/\\/$/, '');\n\n  // It is possible for the path to be above the root. In this case, simply\n  // checking whether the root is a prefix of the path won't work. Instead, we\n  // need to remove components from the root one by one, until either we find\n  // a prefix that fits, or we run out of components to remove.\n  var level = 0;\n  while (aPath.indexOf(aRoot + '/') !== 0) {\n    var index = aRoot.lastIndexOf(\"/\");\n    if (index < 0) {\n      return aPath;\n    }\n\n    // If the only part of the root that is left is the scheme (i.e. http://,\n    // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n    // have exhausted all components, so the path is not relative to the root.\n    aRoot = aRoot.slice(0, index);\n    if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n      return aPath;\n    }\n\n    ++level;\n  }\n\n  // Make sure we add a \"../\" for each component we removed from the root.\n  return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n  var obj = Object.create(null);\n  return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n  return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return '$' + aStr;\n  }\n\n  return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n  if (isProtoString(aStr)) {\n    return aStr.slice(1);\n  }\n\n  return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n  if (!s) {\n    return false;\n  }\n\n  var length = s.length;\n\n  if (length < 9 /* \"__proto__\".length */) {\n    return false;\n  }\n\n  if (s.charCodeAt(length - 1) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 2) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n      s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n      s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n      s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n      s.charCodeAt(length - 8) !== 95  /* '_' */ ||\n      s.charCodeAt(length - 9) !== 95  /* '_' */) {\n    return false;\n  }\n\n  for (var i = length - 10; i >= 0; i--) {\n    if (s.charCodeAt(i) !== 36 /* '$' */) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n  var cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0 || onlyCompareOriginal) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0 || onlyCompareGenerated) {\n    return cmp;\n  }\n\n  cmp = mappingA.source - mappingB.source;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n  if (aStr1 === aStr2) {\n    return 0;\n  }\n\n  if (aStr1 > aStr2) {\n    return 1;\n  }\n\n  return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n  var cmp = mappingA.generatedLine - mappingB.generatedLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = strcmp(mappingA.source, mappingB.source);\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalLine - mappingB.originalLine;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  cmp = mappingA.originalColumn - mappingB.originalColumn;\n  if (cmp !== 0) {\n    return cmp;\n  }\n\n  return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/util.js\n// module id = 4\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n  this._array = [];\n  this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n  var set = new ArraySet();\n  for (var i = 0, len = aArray.length; i < len; i++) {\n    set.add(aArray[i], aAllowDuplicates);\n  }\n  return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n  return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n  var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n  var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n  var idx = this._array.length;\n  if (!isDuplicate || aAllowDuplicates) {\n    this._array.push(aStr);\n  }\n  if (!isDuplicate) {\n    if (hasNativeMap) {\n      this._set.set(aStr, idx);\n    } else {\n      this._set[sStr] = idx;\n    }\n  }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n  if (hasNativeMap) {\n    return this._set.has(aStr);\n  } else {\n    var sStr = util.toSetString(aStr);\n    return has.call(this._set, sStr);\n  }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n  if (hasNativeMap) {\n    var idx = this._set.get(aStr);\n    if (idx >= 0) {\n        return idx;\n    }\n  } else {\n    var sStr = util.toSetString(aStr);\n    if (has.call(this._set, sStr)) {\n      return this._set[sStr];\n    }\n  }\n\n  throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n  if (aIdx >= 0 && aIdx < this._array.length) {\n    return this._array[aIdx];\n  }\n  throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n  return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/array-set.js\n// module id = 5\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n  // Optimized for most common case\n  var lineA = mappingA.generatedLine;\n  var lineB = mappingB.generatedLine;\n  var columnA = mappingA.generatedColumn;\n  var columnB = mappingB.generatedColumn;\n  return lineB > lineA || lineB == lineA && columnB >= columnA ||\n         util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n  this._array = [];\n  this._sorted = true;\n  // Serves as infimum\n  this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n  function MappingList_forEach(aCallback, aThisArg) {\n    this._array.forEach(aCallback, aThisArg);\n  };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n  if (generatedPositionAfter(this._last, aMapping)) {\n    this._last = aMapping;\n    this._array.push(aMapping);\n  } else {\n    this._sorted = false;\n    this._array.push(aMapping);\n  }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n  if (!this._sorted) {\n    this._array.sort(util.compareByGeneratedPositionsInflated);\n    this._sorted = true;\n  }\n  return this._array;\n};\n\nexports.MappingList = MappingList;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/mapping-list.js\n// module id = 6\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  return sourceMap.sections != null\n    ? new IndexedSourceMapConsumer(sourceMap)\n    : new BasicSourceMapConsumer(sourceMap);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n  return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n//     {\n//       generatedLine: The line number in the generated code,\n//       generatedColumn: The column number in the generated code,\n//       source: The path to the original source file that generated this\n//               chunk of code,\n//       originalLine: The line number in the original source that\n//                     corresponds to this chunk of generated code,\n//       originalColumn: The column number in the original source that\n//                       corresponds to this chunk of generated code,\n//       name: The name of the original symbol which generated this chunk of\n//             code.\n//     }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n  get: function () {\n    if (!this.__generatedMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__generatedMappings;\n  }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n  get: function () {\n    if (!this.__originalMappings) {\n      this._parseMappings(this._mappings, this.sourceRoot);\n    }\n\n    return this.__originalMappings;\n  }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n  function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n    var c = aStr.charAt(index);\n    return c === \";\" || c === \",\";\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    throw new Error(\"Subclasses must implement _parseMappings\");\n  };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n *        The function that is called with each mapping.\n * @param Object aContext\n *        Optional. If specified, this object will be the value of `this` every\n *        time that `aCallback` is called.\n * @param aOrder\n *        Either `SourceMapConsumer.GENERATED_ORDER` or\n *        `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n *        iterate over the mappings sorted by the generated file's line/column\n *        order or the original's source/line/column order, respectively. Defaults to\n *        `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n  function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n    var context = aContext || null;\n    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n    var mappings;\n    switch (order) {\n    case SourceMapConsumer.GENERATED_ORDER:\n      mappings = this._generatedMappings;\n      break;\n    case SourceMapConsumer.ORIGINAL_ORDER:\n      mappings = this._originalMappings;\n      break;\n    default:\n      throw new Error(\"Unknown order of iteration.\");\n    }\n\n    var sourceRoot = this.sourceRoot;\n    mappings.map(function (mapping) {\n      var source = mapping.source === null ? null : this._sources.at(mapping.source);\n      if (source != null && sourceRoot != null) {\n        source = util.join(sourceRoot, source);\n      }\n      return {\n        source: source,\n        generatedLine: mapping.generatedLine,\n        generatedColumn: mapping.generatedColumn,\n        originalLine: mapping.originalLine,\n        originalColumn: mapping.originalColumn,\n        name: mapping.name === null ? null : this._names.at(mapping.name)\n      };\n    }, this).forEach(aCallback, context);\n  };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: Optional. the column number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n  function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n    var line = util.getArg(aArgs, 'line');\n\n    // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n    // returns the index of the closest mapping less than the needle. By\n    // setting needle.originalColumn to 0, we thus find the last mapping for\n    // the given line, provided such a mapping exists.\n    var needle = {\n      source: util.getArg(aArgs, 'source'),\n      originalLine: line,\n      originalColumn: util.getArg(aArgs, 'column', 0)\n    };\n\n    if (this.sourceRoot != null) {\n      needle.source = util.relative(this.sourceRoot, needle.source);\n    }\n    if (!this._sources.has(needle.source)) {\n      return [];\n    }\n    needle.source = this._sources.indexOf(needle.source);\n\n    var mappings = [];\n\n    var index = this._findMapping(needle,\n                                  this._originalMappings,\n                                  \"originalLine\",\n                                  \"originalColumn\",\n                                  util.compareByOriginalPositions,\n                                  binarySearch.LEAST_UPPER_BOUND);\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (aArgs.column === undefined) {\n        var originalLine = mapping.originalLine;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we found. Since\n        // mappings are sorted, this is guaranteed to find all mappings for\n        // the line we found.\n        while (mapping && mapping.originalLine === originalLine) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      } else {\n        var originalColumn = mapping.originalColumn;\n\n        // Iterate until either we run out of mappings, or we run into\n        // a mapping for a different line than the one we were searching for.\n        // Since mappings are sorted, this is guaranteed to find all mappings for\n        // the line we are searching for.\n        while (mapping &&\n               mapping.originalLine === line &&\n               mapping.originalColumn == originalColumn) {\n          mappings.push({\n            line: util.getArg(mapping, 'generatedLine', null),\n            column: util.getArg(mapping, 'generatedColumn', null),\n            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n          });\n\n          mapping = this._originalMappings[++index];\n        }\n      }\n    }\n\n    return mappings;\n  };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The only parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - sources: An array of URLs to the original source files.\n *   - names: An array of identifiers which can be referrenced by individual mappings.\n *   - sourceRoot: Optional. The URL root from which all sources are relative.\n *   - sourcesContent: Optional. An array of contents of the original source files.\n *   - mappings: A string of base64 VLQs which contain the actual mappings.\n *   - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n *     {\n *       version : 3,\n *       file: \"out.js\",\n *       sourceRoot : \"\",\n *       sources: [\"foo.js\", \"bar.js\"],\n *       names: [\"src\", \"maps\", \"are\", \"fun\"],\n *       mappings: \"AA,AB;;ABCDE;\"\n *     }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sources = util.getArg(sourceMap, 'sources');\n  // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n  // requires the array) to play nice here.\n  var names = util.getArg(sourceMap, 'names', []);\n  var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n  var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n  var mappings = util.getArg(sourceMap, 'mappings');\n  var file = util.getArg(sourceMap, 'file', null);\n\n  // Once again, Sass deviates from the spec and supplies the version as a\n  // string rather than a number, so we use loose equality checking here.\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  sources = sources\n    .map(String)\n    // Some source maps produce relative source paths like \"./foo.js\" instead of\n    // \"foo.js\".  Normalize these first so that future comparisons will succeed.\n    // See bugzil.la/1090768.\n    .map(util.normalize)\n    // Always ensure that absolute sources are internally stored relative to\n    // the source root, if the source root is absolute. Not doing this would\n    // be particularly problematic when the source root is a prefix of the\n    // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n    .map(function (source) {\n      return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n        ? util.relative(sourceRoot, source)\n        : source;\n    });\n\n  // Pass `true` below to allow duplicate names and sources. While source maps\n  // are intended to be compressed and deduplicated, the TypeScript compiler\n  // sometimes generates source maps with duplicates in them. See Github issue\n  // #72 and bugzil.la/889492.\n  this._names = ArraySet.fromArray(names.map(String), true);\n  this._sources = ArraySet.fromArray(sources, true);\n\n  this.sourceRoot = sourceRoot;\n  this.sourcesContent = sourcesContent;\n  this._mappings = mappings;\n  this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n *        The source map that will be consumed.\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n  function SourceMapConsumer_fromSourceMap(aSourceMap) {\n    var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n    var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n    var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n    smc.sourceRoot = aSourceMap._sourceRoot;\n    smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n                                                            smc.sourceRoot);\n    smc.file = aSourceMap._file;\n\n    // Because we are modifying the entries (by converting string sources and\n    // names to indices into the sources and names ArraySets), we have to make\n    // a copy of the entry or else bad things happen. Shared mutable state\n    // strikes again! See github issue #191.\n\n    var generatedMappings = aSourceMap._mappings.toArray().slice();\n    var destGeneratedMappings = smc.__generatedMappings = [];\n    var destOriginalMappings = smc.__originalMappings = [];\n\n    for (var i = 0, length = generatedMappings.length; i < length; i++) {\n      var srcMapping = generatedMappings[i];\n      var destMapping = new Mapping;\n      destMapping.generatedLine = srcMapping.generatedLine;\n      destMapping.generatedColumn = srcMapping.generatedColumn;\n\n      if (srcMapping.source) {\n        destMapping.source = sources.indexOf(srcMapping.source);\n        destMapping.originalLine = srcMapping.originalLine;\n        destMapping.originalColumn = srcMapping.originalColumn;\n\n        if (srcMapping.name) {\n          destMapping.name = names.indexOf(srcMapping.name);\n        }\n\n        destOriginalMappings.push(destMapping);\n      }\n\n      destGeneratedMappings.push(destMapping);\n    }\n\n    quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n    return smc;\n  };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    return this._sources.toArray().map(function (s) {\n      return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n    }, this);\n  }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n  this.generatedLine = 0;\n  this.generatedColumn = 0;\n  this.source = null;\n  this.originalLine = null;\n  this.originalColumn = null;\n  this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n  function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    var generatedLine = 1;\n    var previousGeneratedColumn = 0;\n    var previousOriginalLine = 0;\n    var previousOriginalColumn = 0;\n    var previousSource = 0;\n    var previousName = 0;\n    var length = aStr.length;\n    var index = 0;\n    var cachedSegments = {};\n    var temp = {};\n    var originalMappings = [];\n    var generatedMappings = [];\n    var mapping, str, segment, end, value;\n\n    while (index < length) {\n      if (aStr.charAt(index) === ';') {\n        generatedLine++;\n        index++;\n        previousGeneratedColumn = 0;\n      }\n      else if (aStr.charAt(index) === ',') {\n        index++;\n      }\n      else {\n        mapping = new Mapping();\n        mapping.generatedLine = generatedLine;\n\n        // Because each offset is encoded relative to the previous one,\n        // many segments often have the same encoding. We can exploit this\n        // fact by caching the parsed variable length fields of each segment,\n        // allowing us to avoid a second parse if we encounter the same\n        // segment again.\n        for (end = index; end < length; end++) {\n          if (this._charIsMappingSeparator(aStr, end)) {\n            break;\n          }\n        }\n        str = aStr.slice(index, end);\n\n        segment = cachedSegments[str];\n        if (segment) {\n          index += str.length;\n        } else {\n          segment = [];\n          while (index < end) {\n            base64VLQ.decode(aStr, index, temp);\n            value = temp.value;\n            index = temp.rest;\n            segment.push(value);\n          }\n\n          if (segment.length === 2) {\n            throw new Error('Found a source, but no line and column');\n          }\n\n          if (segment.length === 3) {\n            throw new Error('Found a source and line, but no column');\n          }\n\n          cachedSegments[str] = segment;\n        }\n\n        // Generated column.\n        mapping.generatedColumn = previousGeneratedColumn + segment[0];\n        previousGeneratedColumn = mapping.generatedColumn;\n\n        if (segment.length > 1) {\n          // Original source.\n          mapping.source = previousSource + segment[1];\n          previousSource += segment[1];\n\n          // Original line.\n          mapping.originalLine = previousOriginalLine + segment[2];\n          previousOriginalLine = mapping.originalLine;\n          // Lines are stored 0-based\n          mapping.originalLine += 1;\n\n          // Original column.\n          mapping.originalColumn = previousOriginalColumn + segment[3];\n          previousOriginalColumn = mapping.originalColumn;\n\n          if (segment.length > 4) {\n            // Original name.\n            mapping.name = previousName + segment[4];\n            previousName += segment[4];\n          }\n        }\n\n        generatedMappings.push(mapping);\n        if (typeof mapping.originalLine === 'number') {\n          originalMappings.push(mapping);\n        }\n      }\n    }\n\n    quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n    this.__generatedMappings = generatedMappings;\n\n    quickSort(originalMappings, util.compareByOriginalPositions);\n    this.__originalMappings = originalMappings;\n  };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n  function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n                                         aColumnName, aComparator, aBias) {\n    // To return the position we are searching for, we must first find the\n    // mapping for the given position and then return the opposite position it\n    // points to. Because the mappings are sorted, we can use binary search to\n    // find the best mapping.\n\n    if (aNeedle[aLineName] <= 0) {\n      throw new TypeError('Line must be greater than or equal to 1, got '\n                          + aNeedle[aLineName]);\n    }\n    if (aNeedle[aColumnName] < 0) {\n      throw new TypeError('Column must be greater than or equal to 0, got '\n                          + aNeedle[aColumnName]);\n    }\n\n    return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n  };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n  function SourceMapConsumer_computeColumnSpans() {\n    for (var index = 0; index < this._generatedMappings.length; ++index) {\n      var mapping = this._generatedMappings[index];\n\n      // Mappings do not contain a field for the last generated columnt. We\n      // can come up with an optimistic estimate, however, by assuming that\n      // mappings are contiguous (i.e. given two consecutive mappings, the\n      // first mapping ends where the second one starts).\n      if (index + 1 < this._generatedMappings.length) {\n        var nextMapping = this._generatedMappings[index + 1];\n\n        if (mapping.generatedLine === nextMapping.generatedLine) {\n          mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n          continue;\n        }\n      }\n\n      // The last mapping for each line spans the entire line.\n      mapping.lastGeneratedColumn = Infinity;\n    }\n  };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n  function SourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._generatedMappings,\n      \"generatedLine\",\n      \"generatedColumn\",\n      util.compareByGeneratedPositionsDeflated,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._generatedMappings[index];\n\n      if (mapping.generatedLine === needle.generatedLine) {\n        var source = util.getArg(mapping, 'source', null);\n        if (source !== null) {\n          source = this._sources.at(source);\n          if (this.sourceRoot != null) {\n            source = util.join(this.sourceRoot, source);\n          }\n        }\n        var name = util.getArg(mapping, 'name', null);\n        if (name !== null) {\n          name = this._names.at(name);\n        }\n        return {\n          source: source,\n          line: util.getArg(mapping, 'originalLine', null),\n          column: util.getArg(mapping, 'originalColumn', null),\n          name: name\n        };\n      }\n    }\n\n    return {\n      source: null,\n      line: null,\n      column: null,\n      name: null\n    };\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function BasicSourceMapConsumer_hasContentsOfAllSources() {\n    if (!this.sourcesContent) {\n      return false;\n    }\n    return this.sourcesContent.length >= this._sources.size() &&\n      !this.sourcesContent.some(function (sc) { return sc == null; });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n  function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    if (!this.sourcesContent) {\n      return null;\n    }\n\n    if (this.sourceRoot != null) {\n      aSource = util.relative(this.sourceRoot, aSource);\n    }\n\n    if (this._sources.has(aSource)) {\n      return this.sourcesContent[this._sources.indexOf(aSource)];\n    }\n\n    var url;\n    if (this.sourceRoot != null\n        && (url = util.urlParse(this.sourceRoot))) {\n      // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n      // many users. We can help them out when they expect file:// URIs to\n      // behave like it would if they were running a local HTTP server. See\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n      var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n      if (url.scheme == \"file\"\n          && this._sources.has(fileUriAbsPath)) {\n        return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n      }\n\n      if ((!url.path || url.path == \"/\")\n          && this._sources.has(\"/\" + aSource)) {\n        return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n      }\n    }\n\n    // This function is used recursively from\n    // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n    // don't want to throw if we can't find the source - we just want to\n    // return null, so we provide a flag to exit gracefully.\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *   - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n *     'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n  function SourceMapConsumer_generatedPositionFor(aArgs) {\n    var source = util.getArg(aArgs, 'source');\n    if (this.sourceRoot != null) {\n      source = util.relative(this.sourceRoot, source);\n    }\n    if (!this._sources.has(source)) {\n      return {\n        line: null,\n        column: null,\n        lastColumn: null\n      };\n    }\n    source = this._sources.indexOf(source);\n\n    var needle = {\n      source: source,\n      originalLine: util.getArg(aArgs, 'line'),\n      originalColumn: util.getArg(aArgs, 'column')\n    };\n\n    var index = this._findMapping(\n      needle,\n      this._originalMappings,\n      \"originalLine\",\n      \"originalColumn\",\n      util.compareByOriginalPositions,\n      util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n    );\n\n    if (index >= 0) {\n      var mapping = this._originalMappings[index];\n\n      if (mapping.source === needle.source) {\n        return {\n          line: util.getArg(mapping, 'generatedLine', null),\n          column: util.getArg(mapping, 'generatedColumn', null),\n          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n        };\n      }\n    }\n\n    return {\n      line: null,\n      column: null,\n      lastColumn: null\n    };\n  };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The only parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n *   - version: Which version of the source map spec this map is following.\n *   - file: Optional. The generated file this source map is associated with.\n *   - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n *   - offset: The offset into the original specified at which this section\n *       begins to apply, defined as an object with a \"line\" and \"column\"\n *       field.\n *   - map: A source map definition. This source map could also be indexed,\n *       but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n *  {\n *    version : 3,\n *    file: \"app.js\",\n *    sections: [{\n *      offset: {line:100, column:10},\n *      map: {\n *        version : 3,\n *        file: \"section.js\",\n *        sources: [\"foo.js\", \"bar.js\"],\n *        names: [\"src\", \"maps\", \"are\", \"fun\"],\n *        mappings: \"AAAA,E;;ABCDE;\"\n *      }\n *    }],\n *  }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap) {\n  var sourceMap = aSourceMap;\n  if (typeof aSourceMap === 'string') {\n    sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n  }\n\n  var version = util.getArg(sourceMap, 'version');\n  var sections = util.getArg(sourceMap, 'sections');\n\n  if (version != this._version) {\n    throw new Error('Unsupported version: ' + version);\n  }\n\n  this._sources = new ArraySet();\n  this._names = new ArraySet();\n\n  var lastOffset = {\n    line: -1,\n    column: 0\n  };\n  this._sections = sections.map(function (s) {\n    if (s.url) {\n      // The url field will require support for asynchronicity.\n      // See https://github.com/mozilla/source-map/issues/16\n      throw new Error('Support for url field in sections not implemented.');\n    }\n    var offset = util.getArg(s, 'offset');\n    var offsetLine = util.getArg(offset, 'line');\n    var offsetColumn = util.getArg(offset, 'column');\n\n    if (offsetLine < lastOffset.line ||\n        (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n      throw new Error('Section offsets must be ordered and non-overlapping.');\n    }\n    lastOffset = offset;\n\n    return {\n      generatedOffset: {\n        // The offset fields are 0-based, but we use 1-based indices when\n        // encoding/decoding from VLQ.\n        generatedLine: offsetLine + 1,\n        generatedColumn: offsetColumn + 1\n      },\n      consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n    }\n  });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n  get: function () {\n    var sources = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n        sources.push(this._sections[i].consumer.sources[j]);\n      }\n    }\n    return sources;\n  }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n *   - line: The line number in the generated source.\n *   - column: The column number in the generated source.\n *\n * and an object is returned with the following properties:\n *\n *   - source: The original source file, or null.\n *   - line: The line number in the original source, or null.\n *   - column: The column number in the original source, or null.\n *   - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n  function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n    var needle = {\n      generatedLine: util.getArg(aArgs, 'line'),\n      generatedColumn: util.getArg(aArgs, 'column')\n    };\n\n    // Find the section containing the generated position we're trying to map\n    // to an original position.\n    var sectionIndex = binarySearch.search(needle, this._sections,\n      function(needle, section) {\n        var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n        if (cmp) {\n          return cmp;\n        }\n\n        return (needle.generatedColumn -\n                section.generatedOffset.generatedColumn);\n      });\n    var section = this._sections[sectionIndex];\n\n    if (!section) {\n      return {\n        source: null,\n        line: null,\n        column: null,\n        name: null\n      };\n    }\n\n    return section.consumer.originalPositionFor({\n      line: needle.generatedLine -\n        (section.generatedOffset.generatedLine - 1),\n      column: needle.generatedColumn -\n        (section.generatedOffset.generatedLine === needle.generatedLine\n         ? section.generatedOffset.generatedColumn - 1\n         : 0),\n      bias: aArgs.bias\n    });\n  };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n  function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n    return this._sections.every(function (s) {\n      return s.consumer.hasContentsOfAllSources();\n    });\n  };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n  function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      var content = section.consumer.sourceContentFor(aSource, true);\n      if (content) {\n        return content;\n      }\n    }\n    if (nullOnMissing) {\n      return null;\n    }\n    else {\n      throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n    }\n  };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n *   - source: The filename of the original source.\n *   - line: The line number in the original source.\n *   - column: The column number in the original source.\n *\n * and an object is returned with the following properties:\n *\n *   - line: The line number in the generated source, or null.\n *   - column: The column number in the generated source, or null.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n  function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n\n      // Only consider this section if the requested source is in the list of\n      // sources of the consumer.\n      if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n        continue;\n      }\n      var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n      if (generatedPosition) {\n        var ret = {\n          line: generatedPosition.line +\n            (section.generatedOffset.generatedLine - 1),\n          column: generatedPosition.column +\n            (section.generatedOffset.generatedLine === generatedPosition.line\n             ? section.generatedOffset.generatedColumn - 1\n             : 0)\n        };\n        return ret;\n      }\n    }\n\n    return {\n      line: null,\n      column: null\n    };\n  };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n  function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n    this.__generatedMappings = [];\n    this.__originalMappings = [];\n    for (var i = 0; i < this._sections.length; i++) {\n      var section = this._sections[i];\n      var sectionMappings = section.consumer._generatedMappings;\n      for (var j = 0; j < sectionMappings.length; j++) {\n        var mapping = sectionMappings[j];\n\n        var source = section.consumer._sources.at(mapping.source);\n        if (section.consumer.sourceRoot !== null) {\n          source = util.join(section.consumer.sourceRoot, source);\n        }\n        this._sources.add(source);\n        source = this._sources.indexOf(source);\n\n        var name = section.consumer._names.at(mapping.name);\n        this._names.add(name);\n        name = this._names.indexOf(name);\n\n        // The mappings coming from the consumer for the section have\n        // generated positions relative to the start of the section, so we\n        // need to offset them to be relative to the start of the concatenated\n        // generated file.\n        var adjustedMapping = {\n          source: source,\n          generatedLine: mapping.generatedLine +\n            (section.generatedOffset.generatedLine - 1),\n          generatedColumn: mapping.generatedColumn +\n            (section.generatedOffset.generatedLine === mapping.generatedLine\n            ? section.generatedOffset.generatedColumn - 1\n            : 0),\n          originalLine: mapping.originalLine,\n          originalColumn: mapping.originalColumn,\n          name: name\n        };\n\n        this.__generatedMappings.push(adjustedMapping);\n        if (typeof adjustedMapping.originalLine === 'number') {\n          this.__originalMappings.push(adjustedMapping);\n        }\n      }\n    }\n\n    quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n    quickSort(this.__originalMappings, util.compareByOriginalPositions);\n  };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-map-consumer.js\n// module id = 7\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n  // This function terminates when one of the following is true:\n  //\n  //   1. We find the exact element we are looking for.\n  //\n  //   2. We did not find the exact element, but we can return the index of\n  //      the next-closest element.\n  //\n  //   3. We did not find the exact element, and there is no next-closest\n  //      element than the one we are searching for, so we return -1.\n  var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n  var cmp = aCompare(aNeedle, aHaystack[mid], true);\n  if (cmp === 0) {\n    // Found the element we are looking for.\n    return mid;\n  }\n  else if (cmp > 0) {\n    // Our needle is greater than aHaystack[mid].\n    if (aHigh - mid > 1) {\n      // The element is in the upper half.\n      return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // The exact needle element was not found in this haystack. Determine if\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return aHigh < aHaystack.length ? aHigh : -1;\n    } else {\n      return mid;\n    }\n  }\n  else {\n    // Our needle is less than aHaystack[mid].\n    if (mid - aLow > 1) {\n      // The element is in the lower half.\n      return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n    }\n\n    // we are in termination case (3) or (2) and return the appropriate thing.\n    if (aBias == exports.LEAST_UPPER_BOUND) {\n      return mid;\n    } else {\n      return aLow < 0 ? -1 : aLow;\n    }\n  }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n *     array and returns -1, 0, or 1 depending on whether the needle is less\n *     than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n *     'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n *     closest element that is smaller than or greater than the one we are\n *     searching for, respectively, if the exact element cannot be found.\n *     Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n  if (aHaystack.length === 0) {\n    return -1;\n  }\n\n  var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n                              aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n  if (index < 0) {\n    return -1;\n  }\n\n  // We have found either the exact element, or the next-closest element than\n  // the one we are searching for. However, there may be more than one such\n  // element. Make sure we always return the smallest of these.\n  while (index - 1 >= 0) {\n    if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n      break;\n    }\n    --index;\n  }\n\n  return index;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/binary-search.js\n// module id = 8\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n *        The array.\n * @param {Number} x\n *        The index of the first item.\n * @param {Number} y\n *        The index of the second item.\n */\nfunction swap(ary, x, y) {\n  var temp = ary[x];\n  ary[x] = ary[y];\n  ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n *        The lower bound on the range.\n * @param {Number} high\n *        The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n  return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n * @param {Number} p\n *        Start index of the array\n * @param {Number} r\n *        End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n  // If our lower bound is less than our upper bound, we (1) partition the\n  // array into two pieces and (2) recurse on each half. If it is not, this is\n  // the empty array and our base case.\n\n  if (p < r) {\n    // (1) Partitioning.\n    //\n    // The partitioning chooses a pivot between `p` and `r` and moves all\n    // elements that are less than or equal to the pivot to the before it, and\n    // all the elements that are greater than it after it. The effect is that\n    // once partition is done, the pivot is in the exact place it will be when\n    // the array is put in sorted order, and it will not need to be moved\n    // again. This runs in O(n) time.\n\n    // Always choose a random pivot so that an input array which is reverse\n    // sorted does not cause O(n^2) running time.\n    var pivotIndex = randomIntInRange(p, r);\n    var i = p - 1;\n\n    swap(ary, pivotIndex, r);\n    var pivot = ary[r];\n\n    // Immediately after `j` is incremented in this loop, the following hold\n    // true:\n    //\n    //   * Every element in `ary[p .. i]` is less than or equal to the pivot.\n    //\n    //   * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n    for (var j = p; j < r; j++) {\n      if (comparator(ary[j], pivot) <= 0) {\n        i += 1;\n        swap(ary, i, j);\n      }\n    }\n\n    swap(ary, i + 1, j);\n    var q = i + 1;\n\n    // (2) Recurse on each half.\n\n    doQuickSort(ary, comparator, p, q - 1);\n    doQuickSort(ary, comparator, q + 1, r);\n  }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n *        An array to sort.\n * @param {function} comparator\n *        Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n  doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/quick-sort.js\n// module id = 9\n// module chunks = 0","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n *        generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n  this.children = [];\n  this.sourceContents = {};\n  this.line = aLine == null ? null : aLine;\n  this.column = aColumn == null ? null : aColumn;\n  this.source = aSource == null ? null : aSource;\n  this.name = aName == null ? null : aName;\n  this[isSourceNode] = true;\n  if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n *        SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n  function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n    // The SourceNode we want to fill with the generated code\n    // and the SourceMap\n    var node = new SourceNode();\n\n    // All even indices of this array are one line of the generated code,\n    // while all odd indices are the newlines between two adjacent lines\n    // (since `REGEX_NEWLINE` captures its match).\n    // Processed fragments are accessed by calling `shiftNextLine`.\n    var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n    var remainingLinesIndex = 0;\n    var shiftNextLine = function() {\n      var lineContents = getNextLine();\n      // The last line of a file might not have a newline.\n      var newLine = getNextLine() || \"\";\n      return lineContents + newLine;\n\n      function getNextLine() {\n        return remainingLinesIndex < remainingLines.length ?\n            remainingLines[remainingLinesIndex++] : undefined;\n      }\n    };\n\n    // We need to remember the position of \"remainingLines\"\n    var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n    // The generate SourceNodes we need a code range.\n    // To extract it current and last mapping is used.\n    // Here we store the last mapping.\n    var lastMapping = null;\n\n    aSourceMapConsumer.eachMapping(function (mapping) {\n      if (lastMapping !== null) {\n        // We add the code from \"lastMapping\" to \"mapping\":\n        // First check if there is a new line in between.\n        if (lastGeneratedLine < mapping.generatedLine) {\n          // Associate first line with \"lastMapping\"\n          addMappingWithCode(lastMapping, shiftNextLine());\n          lastGeneratedLine++;\n          lastGeneratedColumn = 0;\n          // The remaining code is added without mapping\n        } else {\n          // There is no new line in between.\n          // Associate the code between \"lastGeneratedColumn\" and\n          // \"mapping.generatedColumn\" with \"lastMapping\"\n          var nextLine = remainingLines[remainingLinesIndex];\n          var code = nextLine.substr(0, mapping.generatedColumn -\n                                        lastGeneratedColumn);\n          remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n                                              lastGeneratedColumn);\n          lastGeneratedColumn = mapping.generatedColumn;\n          addMappingWithCode(lastMapping, code);\n          // No more remaining code, continue\n          lastMapping = mapping;\n          return;\n        }\n      }\n      // We add the generated code until the first mapping\n      // to the SourceNode without any mapping.\n      // Each line is added as separate string.\n      while (lastGeneratedLine < mapping.generatedLine) {\n        node.add(shiftNextLine());\n        lastGeneratedLine++;\n      }\n      if (lastGeneratedColumn < mapping.generatedColumn) {\n        var nextLine = remainingLines[remainingLinesIndex];\n        node.add(nextLine.substr(0, mapping.generatedColumn));\n        remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n        lastGeneratedColumn = mapping.generatedColumn;\n      }\n      lastMapping = mapping;\n    }, this);\n    // We have processed all mappings.\n    if (remainingLinesIndex < remainingLines.length) {\n      if (lastMapping) {\n        // Associate the remaining code in the current line with \"lastMapping\"\n        addMappingWithCode(lastMapping, shiftNextLine());\n      }\n      // and add the remaining lines without any mapping\n      node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n    }\n\n    // Copy sourcesContent into SourceNode\n    aSourceMapConsumer.sources.forEach(function (sourceFile) {\n      var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n      if (content != null) {\n        if (aRelativePath != null) {\n          sourceFile = util.join(aRelativePath, sourceFile);\n        }\n        node.setSourceContent(sourceFile, content);\n      }\n    });\n\n    return node;\n\n    function addMappingWithCode(mapping, code) {\n      if (mapping === null || mapping.source === undefined) {\n        node.add(code);\n      } else {\n        var source = aRelativePath\n          ? util.join(aRelativePath, mapping.source)\n          : mapping.source;\n        node.add(new SourceNode(mapping.originalLine,\n                                mapping.originalColumn,\n                                source,\n                                code,\n                                mapping.name));\n      }\n    }\n  };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n  if (Array.isArray(aChunk)) {\n    aChunk.forEach(function (chunk) {\n      this.add(chunk);\n    }, this);\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    if (aChunk) {\n      this.children.push(aChunk);\n    }\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n *        SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n  if (Array.isArray(aChunk)) {\n    for (var i = aChunk.length-1; i >= 0; i--) {\n      this.prepend(aChunk[i]);\n    }\n  }\n  else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n    this.children.unshift(aChunk);\n  }\n  else {\n    throw new TypeError(\n      \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n    );\n  }\n  return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n  var chunk;\n  for (var i = 0, len = this.children.length; i < len; i++) {\n    chunk = this.children[i];\n    if (chunk[isSourceNode]) {\n      chunk.walk(aFn);\n    }\n    else {\n      if (chunk !== '') {\n        aFn(chunk, { source: this.source,\n                     line: this.line,\n                     column: this.column,\n                     name: this.name });\n      }\n    }\n  }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n  var newChildren;\n  var i;\n  var len = this.children.length;\n  if (len > 0) {\n    newChildren = [];\n    for (i = 0; i < len-1; i++) {\n      newChildren.push(this.children[i]);\n      newChildren.push(aSep);\n    }\n    newChildren.push(this.children[i]);\n    this.children = newChildren;\n  }\n  return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n  var lastChild = this.children[this.children.length - 1];\n  if (lastChild[isSourceNode]) {\n    lastChild.replaceRight(aPattern, aReplacement);\n  }\n  else if (typeof lastChild === 'string') {\n    this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n  }\n  else {\n    this.children.push(''.replace(aPattern, aReplacement));\n  }\n  return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n  function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n    this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n  };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n  function SourceNode_walkSourceContents(aFn) {\n    for (var i = 0, len = this.children.length; i < len; i++) {\n      if (this.children[i][isSourceNode]) {\n        this.children[i].walkSourceContents(aFn);\n      }\n    }\n\n    var sources = Object.keys(this.sourceContents);\n    for (var i = 0, len = sources.length; i < len; i++) {\n      aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n    }\n  };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n  var str = \"\";\n  this.walk(function (chunk) {\n    str += chunk;\n  });\n  return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n  var generated = {\n    code: \"\",\n    line: 1,\n    column: 0\n  };\n  var map = new SourceMapGenerator(aArgs);\n  var sourceMappingActive = false;\n  var lastOriginalSource = null;\n  var lastOriginalLine = null;\n  var lastOriginalColumn = null;\n  var lastOriginalName = null;\n  this.walk(function (chunk, original) {\n    generated.code += chunk;\n    if (original.source !== null\n        && original.line !== null\n        && original.column !== null) {\n      if(lastOriginalSource !== original.source\n         || lastOriginalLine !== original.line\n         || lastOriginalColumn !== original.column\n         || lastOriginalName !== original.name) {\n        map.addMapping({\n          source: original.source,\n          original: {\n            line: original.line,\n            column: original.column\n          },\n          generated: {\n            line: generated.line,\n            column: generated.column\n          },\n          name: original.name\n        });\n      }\n      lastOriginalSource = original.source;\n      lastOriginalLine = original.line;\n      lastOriginalColumn = original.column;\n      lastOriginalName = original.name;\n      sourceMappingActive = true;\n    } else if (sourceMappingActive) {\n      map.addMapping({\n        generated: {\n          line: generated.line,\n          column: generated.column\n        }\n      });\n      lastOriginalSource = null;\n      sourceMappingActive = false;\n    }\n    for (var idx = 0, length = chunk.length; idx < length; idx++) {\n      if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n        generated.line++;\n        generated.column = 0;\n        // Mappings end at eol\n        if (idx + 1 === length) {\n          lastOriginalSource = null;\n          sourceMappingActive = false;\n        } else if (sourceMappingActive) {\n          map.addMapping({\n            source: original.source,\n            original: {\n              line: original.line,\n              column: original.column\n            },\n            generated: {\n              line: generated.line,\n              column: generated.column\n            },\n            name: original.name\n          });\n        }\n      } else {\n        generated.column++;\n      }\n    }\n  });\n  this.walkSourceContents(function (sourceFile, sourceContent) {\n    map.setSourceContent(sourceFile, sourceContent);\n  });\n\n  return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/source-node.js\n// module id = 10\n// module chunks = 0"],"sourceRoot":""}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js-1-var a = require.resolve('buffer/').replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js:2:var b = require('resolve').sync('buffer/', { preserveSymlinks: true }).replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js:3:var c = require('resolve').sync('buffer/', { preserveSymlinks: false }).replace(process.cwd(), '$CWD');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js-4-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js-74-    if (deprecratedKey) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js:75:      console.trace(`Visitor defined for ${nodeType} but it has been renamed to ${deprecratedKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js-76-      aliases = [deprecratedKey];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js-115-    if (t.TYPES.indexOf(nodeType) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js:116:      throw new Error(`You gave us a visitor for the node type ${nodeType} but it's not a valid type`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js-117-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js-123-        if (visitorKey === "enter" || visitorKey === "exit") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js:124:          validateVisitorMethods(`${nodeType}.${visitorKey}`, visitors[visitorKey]);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js-125-        } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js:126:          throw new Error("You passed `traverse()` a visitor object with the property " + `${nodeType} that has the invalid property ${visitorKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js-127-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js-139-    if (typeof fn !== "function") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js:140:      throw new TypeError(`Non-function found defined in ${path} with type ${typeof fn}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js-141-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/modification.js-172-      const type = Array.isArray(node) ? "array" : typeof node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/modification.js:173:      throw new Error(`Node list ${msg} with the index of ${i} and type of ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/modification.js-174-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-161-      let key = path.key;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js:162:      if (path.inList) key = `${path.listKey}[${key}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-163-      parts.unshift(key);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-170-    if (!debug.enabled) return;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js:171:    debug(`${this.getPathLocation()} ${this.type}: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-172-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-233-for (const type of t.TYPES) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js:234:  const typeKey = `is${type}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-235-  const fn = t[typeKey];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-240-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js:241:  NodePath.prototype[`assert${type}`] = function (opts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-242-    if (!fn(this.node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js:243:      throw new TypeError(`Expected node path of type ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-244-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-252-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js:253:  NodePath.prototype[`is${type}`] = function (opts) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js-254-    return virtualType.checkPath(this, opts);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js-61-    if (ret) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:62:      throw new Error(`Unexpected return value from visitor method ${fn}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js-63-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js-323-  const op = isAssignment ? "set" : "get";
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js:324:  return getBinding(thisEnvFn, `superprop_${op}:${propName || ""}`, () => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js-325-    const argsList = [];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/replacement.js-77-  try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/replacement.js:78:    replacement = `(${replacement})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/replacement.js-79-    replacement = (0, _parser.parse)(replacement);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/replacement.js-174-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/replacement.js:175:  this.debug(`Replace with ${node && node.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/replacement.js-176-  this.node = this.container[this.key] = node;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/index.js-89-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/index.js:90:      throw new Error(`Unknown base type ${baseName}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/index.js-91-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js-56-    if (parent.type !== "Program" && parent.type !== "File") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js:57:      throw new Error("You must pass a scope and parentPath unless traversing a Program/File. " + `Instead of that you tried to traverse a ${parent.type} node without ` + "passing scope and parentPath.");
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js-58-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js-345-    if (i > 1) id += i;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js:346:    return `_${id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js-347-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js-401-    if (duplicate) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js:402:      throw this.hub.buildError(id, `Duplicate declaration "${name}"`, TypeError);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js-403-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js-784-    const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js:785:    const dataKey = `declaration:${kind}:${blockHoist}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js-786-    let declarPath = !unique && path.getData(dataKey);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js-76-  if (!unescapedDoubleQuoteRE.test(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js:77:    this.token(`"${value}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js-78-  } else if (!unescapedSingleQuoteRE.test(value)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js:79:    this.token(`'${value}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js-80-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js-85-function InterpreterDirective(node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js:86:  this.token(`#!${node.value}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/base.js-87-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js-133-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js:134:    throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)} received).`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js-135-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js-164-  } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js:165:    throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js-166-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js-184-function RegExpLiteral(node) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js:185:  this.word(`/${node.pattern}/${node.flags}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js-186-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js-268-    if (!printMethod) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js:269:      throw new ReferenceError(`unknown node of type ${JSON.stringify(node.type)} with constructor ${JSON.stringify(node && node.constructor.name)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js-270-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js-456-    if (!this.endsWith("[") && !this.endsWith("{")) this.space();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js:457:    let val = !isBlockComment && !this._noLineTerminator ? `//${comment.value}\n` : `/*${comment.value}*/`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js-458-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js-467-      const indentSize = Math.max(this._getIndent().length, this._buf.getCurrentColumn());
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js:468:      val = val.replace(/\n(?!$)/g, `\n${(0, _repeat.default)(" ", indentSize)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/printer.js-469-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js-65-    if (format.compact) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js:66:      console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js-67-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/helper-function-name/lib/index.js-62-  if (t.isRegExpLiteral(id)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/helper-function-name/lib/index.js:63:    return `_${id.pattern}_${id.flags}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/helper-function-name/lib/index.js-64-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js-109-    const number = start + 1 + index;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js:110:    const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js:111:    const gutter = ` ${paddedNumber} | `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js-112-    const hasMarker = markerLines[number];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js-129-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js:130:      return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js-131-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js-134-  if (opts.message && !hasColumns) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js:135:    frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/code-frame/lib/index.js-136-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-733-    const loc = this.getLocationForPosition(pos);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:734:    const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-735-    return this._raise(Object.assign({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-4934-  if (x == null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:4935:    throw new Error(`Unexpected ${x} value.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-4936-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-7311-  if (hasPlugin(plugins, "pipelineOperator") && !PIPELINE_PROPOSALS.includes(getPluginOption(plugins, "pipelineOperator", "proposal"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7312:    throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: " + PIPELINE_PROPOSALS.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-7313-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-7315-  if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:7316:    throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", "));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-7317-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-8753-    if (typeof messageOrType !== "string") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8754:      messageOrType = `Unexpected token, expected "${messageOrType.label}"`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-8755-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-8763-        missingPlugin: [name]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8764:      }, `This experimental syntax requires enabling the parser plugin: '${name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-8765-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-8773-        missingPlugin: names
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:8774:      }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-8775-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-9192-        if (checkClashes) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:9193:          const key = `_${expr.name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-9194-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-10907-      default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js:10908:        throw new Error(`Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js-10909-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js.map:1:{"version":3,"file":"index.js","sources":["../src/tokenizer/types.js","../src/util/scopeflags.js","../src/util/whitespace.js","../src/util/location.js","../src/parser/base.js","../src/parser/comments.js","../src/parser/location.js","../src/plugins/estree.js","../src/tokenizer/context.js","../../babel-helper-validator-identifier/src/identifier.js","../../babel-helper-validator-identifier/src/keyword.js","../src/util/identifier.js","../src/plugins/flow.js","../src/plugins/jsx/xhtml.js","../src/plugins/jsx/index.js","../src/util/scope.js","../src/plugins/typescript/scope.js","../src/util/production-parameter.js","../src/plugins/typescript/index.js","../src/plugins/placeholders.js","../src/plugins/v8intrinsic.js","../src/plugin-utils.js","../src/options.js","../src/tokenizer/state.js","../src/tokenizer/index.js","../src/parser/util.js","../src/parser/node.js","../src/parser/lval.js","../src/parser/expression.js","../src/parser/statement.js","../src/util/class-scope.js","../src/parser/index.js","../src/index.js"],"sourcesContent":["// @flow\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n  keyword?: string,\n  beforeExpr?: boolean,\n  startsExpr?: boolean,\n  rightAssociative?: boolean,\n  isLoop?: boolean,\n  isAssign?: boolean,\n  prefix?: boolean,\n  postfix?: boolean,\n  binop?: ?number,\n};\n\nexport class TokenType {\n  label: string;\n  keyword: ?string;\n  beforeExpr: boolean;\n  startsExpr: boolean;\n  rightAssociative: boolean;\n  isLoop: boolean;\n  isAssign: boolean;\n  prefix: boolean;\n  postfix: boolean;\n  binop: ?number;\n  updateContext: ?(prevType: TokenType) => void;\n\n  constructor(label: string, conf: TokenOptions = {}) {\n    this.label = label;\n    this.keyword = conf.keyword;\n    this.beforeExpr = !!conf.beforeExpr;\n    this.startsExpr = !!conf.startsExpr;\n    this.rightAssociative = !!conf.rightAssociative;\n    this.isLoop = !!conf.isLoop;\n    this.isAssign = !!conf.isAssign;\n    this.prefix = !!conf.prefix;\n    this.postfix = !!conf.postfix;\n    this.binop = conf.binop != null ? conf.binop : null;\n    this.updateContext = null;\n  }\n}\n\nexport const keywords = new Map<string, TokenType>();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n  options.keyword = name;\n  const token = new TokenType(name, options);\n  keywords.set(name, token);\n  return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n  return new TokenType(name, { beforeExpr, binop });\n}\n\nexport const types: { [name: string]: TokenType } = {\n  num: new TokenType(\"num\", { startsExpr }),\n  bigint: new TokenType(\"bigint\", { startsExpr }),\n  regexp: new TokenType(\"regexp\", { startsExpr }),\n  string: new TokenType(\"string\", { startsExpr }),\n  name: new TokenType(\"name\", { startsExpr }),\n  eof: new TokenType(\"eof\"),\n\n  // Punctuation token types.\n  bracketL: new TokenType(\"[\", { beforeExpr, startsExpr }),\n  bracketHashL: new TokenType(\"#[\", { beforeExpr, startsExpr }),\n  bracketBarL: new TokenType(\"[|\", { beforeExpr, startsExpr }),\n  bracketR: new TokenType(\"]\"),\n  bracketBarR: new TokenType(\"|]\"),\n  braceL: new TokenType(\"{\", { beforeExpr, startsExpr }),\n  braceBarL: new TokenType(\"{|\", { beforeExpr, startsExpr }),\n  braceHashL: new TokenType(\"#{\", { beforeExpr, startsExpr }),\n  braceR: new TokenType(\"}\"),\n  braceBarR: new TokenType(\"|}\"),\n  parenL: new TokenType(\"(\", { beforeExpr, startsExpr }),\n  parenR: new TokenType(\")\"),\n  comma: new TokenType(\",\", { beforeExpr }),\n  semi: new TokenType(\";\", { beforeExpr }),\n  colon: new TokenType(\":\", { beforeExpr }),\n  doubleColon: new TokenType(\"::\", { beforeExpr }),\n  dot: new TokenType(\".\"),\n  question: new TokenType(\"?\", { beforeExpr }),\n  questionDot: new TokenType(\"?.\"),\n  arrow: new TokenType(\"=>\", { beforeExpr }),\n  template: new TokenType(\"template\"),\n  ellipsis: new TokenType(\"...\", { beforeExpr }),\n  backQuote: new TokenType(\"`\", { startsExpr }),\n  dollarBraceL: new TokenType(\"${\", { beforeExpr, startsExpr }),\n  at: new TokenType(\"@\"),\n  hash: new TokenType(\"#\", { startsExpr }),\n\n  // Special hashbang token.\n  interpreterDirective: new TokenType(\"#!...\"),\n\n  // Operators. These carry several kinds of properties to help the\n  // parser use them properly (the presence of these properties is\n  // what categorizes them as operators).\n  //\n  // `binop`, when present, specifies that this operator is a binary\n  // operator, and will refer to its precedence.\n  //\n  // `prefix` and `postfix` mark the operator as a prefix or postfix\n  // unary operator.\n  //\n  // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n  // binary operators with a very low precedence, that should result\n  // in AssignmentExpression nodes.\n\n  eq: new TokenType(\"=\", { beforeExpr, isAssign }),\n  assign: new TokenType(\"_=\", { beforeExpr, isAssign }),\n  incDec: new TokenType(\"++/--\", { prefix, postfix, startsExpr }),\n  bang: new TokenType(\"!\", { beforeExpr, prefix, startsExpr }),\n  tilde: new TokenType(\"~\", { beforeExpr, prefix, startsExpr }),\n  pipeline: createBinop(\"|>\", 0),\n  nullishCoalescing: createBinop(\"??\", 1),\n  logicalOR: createBinop(\"||\", 1),\n  logicalAND: createBinop(\"&&\", 2),\n  bitwiseOR: createBinop(\"|\", 3),\n  bitwiseXOR: createBinop(\"^\", 4),\n  bitwiseAND: createBinop(\"&\", 5),\n  equality: createBinop(\"==/!=/===/!==\", 6),\n  relational: createBinop(\"</>/<=/>=\", 7),\n  bitShift: createBinop(\"<</>>/>>>\", 8),\n  plusMin: new TokenType(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n  // startsExpr: required by v8intrinsic plugin\n  modulo: new TokenType(\"%\", { beforeExpr, binop: 10, startsExpr }),\n  star: createBinop(\"*\", 10),\n  slash: createBinop(\"/\", 10),\n  exponent: new TokenType(\"**\", {\n    beforeExpr,\n    binop: 11,\n    rightAssociative: true,\n  }),\n\n  // Keywords\n  // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n  // when new keywords are added\n  _break: createKeyword(\"break\"),\n  _case: createKeyword(\"case\", { beforeExpr }),\n  _catch: createKeyword(\"catch\"),\n  _continue: createKeyword(\"continue\"),\n  _debugger: createKeyword(\"debugger\"),\n  _default: createKeyword(\"default\", { beforeExpr }),\n  _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n  _else: createKeyword(\"else\", { beforeExpr }),\n  _finally: createKeyword(\"finally\"),\n  _for: createKeyword(\"for\", { isLoop }),\n  _function: createKeyword(\"function\", { startsExpr }),\n  _if: createKeyword(\"if\"),\n  _return: createKeyword(\"return\", { beforeExpr }),\n  _switch: createKeyword(\"switch\"),\n  _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n  _try: createKeyword(\"try\"),\n  _var: createKeyword(\"var\"),\n  _const: createKeyword(\"const\"),\n  _while: createKeyword(\"while\", { isLoop }),\n  _with: createKeyword(\"with\"),\n  _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n  _this: createKeyword(\"this\", { startsExpr }),\n  _super: createKeyword(\"super\", { startsExpr }),\n  _class: createKeyword(\"class\", { startsExpr }),\n  _extends: createKeyword(\"extends\", { beforeExpr }),\n  _export: createKeyword(\"export\"),\n  _import: createKeyword(\"import\", { startsExpr }),\n  _null: createKeyword(\"null\", { startsExpr }),\n  _true: createKeyword(\"true\", { startsExpr }),\n  _false: createKeyword(\"false\", { startsExpr }),\n  _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n  _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n  _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n  _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n  _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n};\n","// @flow\n\n// Each scope gets a bitset that may contain these flags\n// prettier-ignore\nexport const SCOPE_OTHER        = 0b00000000,\n             SCOPE_PROGRAM      = 0b00000001,\n             SCOPE_FUNCTION     = 0b00000010,\n             SCOPE_ARROW        = 0b00000100,\n             SCOPE_SIMPLE_CATCH = 0b00001000,\n             SCOPE_SUPER        = 0b00010000,\n             SCOPE_DIRECT_SUPER = 0b00100000,\n             SCOPE_CLASS        = 0b01000000,\n             SCOPE_TS_MODULE    = 0b10000000,\n             SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE;\n\nexport type ScopeFlags =\n  | typeof SCOPE_OTHER\n  | typeof SCOPE_PROGRAM\n  | typeof SCOPE_FUNCTION\n  | typeof SCOPE_VAR\n  | typeof SCOPE_ARROW\n  | typeof SCOPE_SIMPLE_CATCH\n  | typeof SCOPE_SUPER\n  | typeof SCOPE_DIRECT_SUPER\n  | typeof SCOPE_CLASS;\n\n// These flags are meant to be _only_ used inside the Scope class (or subclasses).\n// prettier-ignore\nexport const BIND_KIND_VALUE           = 0b00000_0000_01,\n             BIND_KIND_TYPE            = 0b00000_0000_10,\n             // Used in checkLVal and declareName to determine the type of a binding\n             BIND_SCOPE_VAR            = 0b00000_0001_00, // Var-style binding\n             BIND_SCOPE_LEXICAL        = 0b00000_0010_00, // Let- or const-style binding\n             BIND_SCOPE_FUNCTION       = 0b00000_0100_00, // Function declaration\n             BIND_SCOPE_OUTSIDE        = 0b00000_1000_00, // Special case for function names as\n                                                   // bound inside the function\n             // Misc flags\n             BIND_FLAGS_NONE           = 0b00001_0000_00,\n             BIND_FLAGS_CLASS          = 0b00010_0000_00,\n             BIND_FLAGS_TS_ENUM        = 0b00100_0000_00,\n             BIND_FLAGS_TS_CONST_ENUM  = 0b01000_0000_00,\n             BIND_FLAGS_TS_EXPORT_ONLY = 0b10000_0000_00;\n\n// These flags are meant to be _only_ used by Scope consumers\n// prettier-ignore\n/*                              =    is value?    |    is type?    |      scope          |    misc flags    */\nexport const BIND_CLASS         = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_CLASS  ,\n             BIND_LEXICAL       = BIND_KIND_VALUE | 0              | BIND_SCOPE_LEXICAL  | 0                 ,\n             BIND_VAR           = BIND_KIND_VALUE | 0              | BIND_SCOPE_VAR      | 0                 ,\n             BIND_FUNCTION      = BIND_KIND_VALUE | 0              | BIND_SCOPE_FUNCTION | 0                 ,\n             BIND_TS_INTERFACE  = 0               | BIND_KIND_TYPE | 0                   | BIND_FLAGS_CLASS  ,\n             BIND_TS_TYPE       = 0               | BIND_KIND_TYPE | 0                   | 0                 ,\n             BIND_TS_ENUM       = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL  | BIND_FLAGS_TS_ENUM,\n             BIND_TS_AMBIENT    = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY,\n             // These bindings don't introduce anything in the scope. They are used for assignments and\n             // function expressions IDs.\n             BIND_NONE          = 0               | 0              | 0                   | BIND_FLAGS_NONE   ,\n             BIND_OUTSIDE       = BIND_KIND_VALUE | 0              | 0                   | BIND_FLAGS_NONE   ,\n\n             BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM,\n             BIND_TS_NAMESPACE  = 0               | 0              | 0            | BIND_FLAGS_TS_EXPORT_ONLY;\n\nexport type BindingTypes =\n  | typeof BIND_NONE\n  | typeof BIND_OUTSIDE\n  | typeof BIND_VAR\n  | typeof BIND_LEXICAL\n  | typeof BIND_CLASS\n  | typeof BIND_FUNCTION\n  | typeof BIND_TS_INTERFACE\n  | typeof BIND_TS_TYPE\n  | typeof BIND_TS_ENUM\n  | typeof BIND_TS_AMBIENT\n  | typeof BIND_TS_NAMESPACE;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_FLAG_STATIC = 0b1_00,\n             CLASS_ELEMENT_KIND_GETTER = 0b0_10,\n             CLASS_ELEMENT_KIND_SETTER = 0b0_01,\n             CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_STATIC_GETTER   = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_STATIC_SETTER   = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC,\n             CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER,\n             CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER,\n             CLASS_ELEMENT_OTHER           = 0;\n\nexport type ClassElementTypes =\n  | typeof CLASS_ELEMENT_STATIC_GETTER\n  | typeof CLASS_ELEMENT_STATIC_SETTER\n  | typeof CLASS_ELEMENT_INSTANCE_GETTER\n  | typeof CLASS_ELEMENT_INSTANCE_SETTER\n  | typeof CLASS_ELEMENT_OTHER;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n  switch (code) {\n    case charCodes.lineFeed:\n    case charCodes.carriageReturn:\n    case charCodes.lineSeparator:\n    case charCodes.paragraphSeparator:\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n  switch (code) {\n    case 0x0009: // CHARACTER TABULATION\n    case 0x000b: // LINE TABULATION\n    case 0x000c: // FORM FEED\n    case charCodes.space:\n    case charCodes.nonBreakingSpace:\n    case charCodes.oghamSpaceMark:\n    case 0x2000: // EN QUAD\n    case 0x2001: // EM QUAD\n    case 0x2002: // EN SPACE\n    case 0x2003: // EM SPACE\n    case 0x2004: // THREE-PER-EM SPACE\n    case 0x2005: // FOUR-PER-EM SPACE\n    case 0x2006: // SIX-PER-EM SPACE\n    case 0x2007: // FIGURE SPACE\n    case 0x2008: // PUNCTUATION SPACE\n    case 0x2009: // THIN SPACE\n    case 0x200a: // HAIR SPACE\n    case 0x202f: // NARROW NO-BREAK SPACE\n    case 0x205f: // MEDIUM MATHEMATICAL SPACE\n    case 0x3000: // IDEOGRAPHIC SPACE\n    case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n      return true;\n\n    default:\n      return false;\n  }\n}\n","// @flow\n\nimport { lineBreakG } from \"./whitespace\";\n\nexport type Pos = {\n  start: number,\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n  line: number;\n  column: number;\n\n  constructor(line: number, col: number) {\n    this.line = line;\n    this.column = col;\n  }\n}\n\nexport class SourceLocation {\n  start: Position;\n  end: Position;\n  filename: string;\n  identifierName: ?string;\n\n  constructor(start: Position, end?: Position) {\n    this.start = start;\n    // $FlowIgnore (may start as null, but initialized later)\n    this.end = end;\n  }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input: string, offset: number): Position {\n  let line = 1;\n  let lineStart = 0;\n  let match;\n  lineBreakG.lastIndex = 0;\n  while ((match = lineBreakG.exec(input)) && match.index < offset) {\n    line++;\n    lineStart = lineBreakG.lastIndex;\n  }\n\n  return new Position(line, offset - lineStart);\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type State from \"../tokenizer/state\";\nimport type { PluginsMap } from \"./index\";\nimport type ScopeHandler from \"../util/scope\";\nimport type ClassScopeHandler from \"../util/class-scope\";\nimport type ProductionParameterHandler from \"../util/production-parameter\";\n\nexport default class BaseParser {\n  // Properties set by constructor in index.js\n  options: Options;\n  inModule: boolean;\n  scope: ScopeHandler<*>;\n  classScope: ClassScopeHandler;\n  prodParam: ProductionParameterHandler;\n  plugins: PluginsMap;\n  filename: ?string;\n  sawUnambiguousESM: boolean = false;\n  ambiguousScriptDifferentAst: boolean = false;\n\n  // Initialized by Tokenizer\n  state: State;\n  // input and length are not in state as they are constant and we do\n  // not want to ever copy them, which happens if state gets cloned\n  input: string;\n  length: number;\n\n  hasPlugin(name: string): boolean {\n    return this.plugins.has(name);\n  }\n\n  getPluginOption(plugin: string, name: string) {\n    // $FlowIssue\n    if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name];\n  }\n}\n","// @flow\n\n/**\n * Based on the comment attachment algorithm used in espree and estraverse.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n *   notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n *   notice, this list of conditions and the following disclaimer in the\n *   documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport BaseParser from \"./base\";\nimport type { Comment, Node } from \"../types\";\n\nfunction last<T>(stack: $ReadOnlyArray<T>): T {\n  return stack[stack.length - 1];\n}\n\nexport default class CommentsParser extends BaseParser {\n  addComment(comment: Comment): void {\n    if (this.filename) comment.loc.filename = this.filename;\n    this.state.trailingComments.push(comment);\n    this.state.leadingComments.push(comment);\n  }\n\n  adjustCommentsAfterTrailingComma(\n    node: Node,\n    elements: (Node | null)[],\n    // When the current node is followed by a token which hasn't a respective AST node, we\n    // need to take all the trailing comments to prevent them from being attached to an\n    // unrelated node. e.g. in\n    //     var { x } /* cmt */ = { y }\n    // we don't want /* cmt */ to be attached to { y }.\n    // On the other hand, in\n    //     fn(x) [new line] /* cmt */ [new line] y\n    // /* cmt */ is both a trailing comment of fn(x) and a leading comment of y\n    takeAllComments?: boolean,\n  ) {\n    if (this.state.leadingComments.length === 0) {\n      return;\n    }\n\n    let lastElement = null;\n    let i = elements.length;\n    while (lastElement === null && i > 0) {\n      lastElement = elements[--i];\n    }\n    if (lastElement === null) {\n      return;\n    }\n\n    for (let j = 0; j < this.state.leadingComments.length; j++) {\n      if (\n        this.state.leadingComments[j].end < this.state.commentPreviousNode.end\n      ) {\n        this.state.leadingComments.splice(j, 1);\n        j--;\n      }\n    }\n\n    const newTrailingComments = [];\n    for (let i = 0; i < this.state.leadingComments.length; i++) {\n      const leadingComment = this.state.leadingComments[i];\n      if (leadingComment.end < node.end) {\n        newTrailingComments.push(leadingComment);\n\n        // Perf: we don't need to splice if we are going to reset the array anyway\n        if (!takeAllComments) {\n          this.state.leadingComments.splice(i, 1);\n          i--;\n        }\n      } else {\n        if (node.trailingComments === undefined) {\n          node.trailingComments = [];\n        }\n        node.trailingComments.push(leadingComment);\n      }\n    }\n    if (takeAllComments) this.state.leadingComments = [];\n\n    if (newTrailingComments.length > 0) {\n      lastElement.trailingComments = newTrailingComments;\n    } else if (lastElement.trailingComments !== undefined) {\n      lastElement.trailingComments = [];\n    }\n  }\n\n  processComment(node: Node): void {\n    if (node.type === \"Program\" && node.body.length > 0) return;\n\n    const stack = this.state.commentStack;\n\n    let firstChild, lastChild, trailingComments, i, j;\n\n    if (this.state.trailingComments.length > 0) {\n      // If the first comment in trailingComments comes after the\n      // current node, then we're good - all comments in the array will\n      // come after the node and so it's safe to add them as official\n      // trailingComments.\n      if (this.state.trailingComments[0].start >= node.end) {\n        trailingComments = this.state.trailingComments;\n        this.state.trailingComments = [];\n      } else {\n        // Otherwise, if the first comment doesn't come after the\n        // current node, that means we have a mix of leading and trailing\n        // comments in the array and that leadingComments contains the\n        // same items as trailingComments. Reset trailingComments to\n        // zero items and we'll handle this by evaluating leadingComments\n        // later.\n        this.state.trailingComments.length = 0;\n      }\n    } else if (stack.length > 0) {\n      const lastInStack = last(stack);\n      if (\n        lastInStack.trailingComments &&\n        lastInStack.trailingComments[0].start >= node.end\n      ) {\n        trailingComments = lastInStack.trailingComments;\n        delete lastInStack.trailingComments;\n      }\n    }\n\n    // Eating the stack.\n    if (stack.length > 0 && last(stack).start >= node.start) {\n      firstChild = stack.pop();\n    }\n\n    while (stack.length > 0 && last(stack).start >= node.start) {\n      lastChild = stack.pop();\n    }\n\n    if (!lastChild && firstChild) lastChild = firstChild;\n\n    // Adjust comments that follow a trailing comma on the last element in a\n    // comma separated list of nodes to be the trailing comments on the last\n    // element\n    if (firstChild) {\n      switch (node.type) {\n        case \"ObjectExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties);\n          break;\n        case \"ObjectPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.properties, true);\n          break;\n        case \"CallExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.arguments);\n          break;\n        case \"ArrayExpression\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements);\n          break;\n        case \"ArrayPattern\":\n          this.adjustCommentsAfterTrailingComma(node, node.elements, true);\n          break;\n      }\n    } else if (\n      this.state.commentPreviousNode &&\n      ((this.state.commentPreviousNode.type === \"ImportSpecifier\" &&\n        node.type !== \"ImportSpecifier\") ||\n        (this.state.commentPreviousNode.type === \"ExportSpecifier\" &&\n          node.type !== \"ExportSpecifier\"))\n    ) {\n      this.adjustCommentsAfterTrailingComma(node, [\n        this.state.commentPreviousNode,\n      ]);\n    }\n\n    if (lastChild) {\n      if (lastChild.leadingComments) {\n        if (\n          lastChild !== node &&\n          lastChild.leadingComments.length > 0 &&\n          last(lastChild.leadingComments).end <= node.start\n        ) {\n          node.leadingComments = lastChild.leadingComments;\n          delete lastChild.leadingComments;\n        } else {\n          // A leading comment for an anonymous class had been stolen by its first ClassMethod,\n          // so this takes back the leading comment.\n          // See also: https://github.com/eslint/espree/issues/158\n          for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\n            if (lastChild.leadingComments[i].end <= node.start) {\n              node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\n              break;\n            }\n          }\n        }\n      }\n    } else if (this.state.leadingComments.length > 0) {\n      if (last(this.state.leadingComments).end <= node.start) {\n        if (this.state.commentPreviousNode) {\n          for (j = 0; j < this.state.leadingComments.length; j++) {\n            if (\n              this.state.leadingComments[j].end <\n              this.state.commentPreviousNode.end\n            ) {\n              this.state.leadingComments.splice(j, 1);\n              j--;\n            }\n          }\n        }\n        if (this.state.leadingComments.length > 0) {\n          node.leadingComments = this.state.leadingComments;\n          this.state.leadingComments = [];\n        }\n      } else {\n        // https://github.com/eslint/espree/issues/2\n        //\n        // In special cases, such as return (without a value) and\n        // debugger, all comments will end up as leadingComments and\n        // will otherwise be eliminated. This step runs when the\n        // commentStack is empty and there are comments left\n        // in leadingComments.\n        //\n        // This loop figures out the stopping point between the actual\n        // leading and trailing comments by finding the location of the\n        // first comment that comes after the given node.\n        for (i = 0; i < this.state.leadingComments.length; i++) {\n          if (this.state.leadingComments[i].end > node.start) {\n            break;\n          }\n        }\n\n        // Split the array based on the location of the first comment\n        // that comes after the node. Keep in mind that this could\n        // result in an empty array, and if so, the array must be\n        // deleted.\n        const leadingComments = this.state.leadingComments.slice(0, i);\n\n        if (leadingComments.length) {\n          node.leadingComments = leadingComments;\n        }\n\n        // Similarly, trailing comments are attached later. The variable\n        // must be reset to null if there are no trailing comments.\n        trailingComments = this.state.leadingComments.slice(i);\n        if (trailingComments.length === 0) {\n          trailingComments = null;\n        }\n      }\n    }\n\n    this.state.commentPreviousNode = node;\n\n    if (trailingComments) {\n      if (\n        trailingComments.length &&\n        trailingComments[0].start >= node.start &&\n        last(trailingComments).end <= node.end\n      ) {\n        node.innerComments = trailingComments;\n      } else {\n        node.trailingComments = trailingComments;\n      }\n    }\n\n    stack.push(node);\n  }\n}\n","// @flow\n/* eslint sort-keys: \"error\" */\nimport { getLineInfo, type Position } from \"../util/location\";\nimport CommentsParser from \"./comments\";\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\ntype ErrorContext = {\n  pos: number,\n  loc: Position,\n  missingPlugin?: Array<string>,\n  code?: string,\n};\n\n// The Errors key follows https://cs.chromium.org/chromium/src/v8/src/common/message-template.h unless it does not exist\nexport const Errors = Object.freeze({\n  ArgumentsDisallowedInInitializer:\n    \"'arguments' is not allowed in class field initializer\",\n  AsyncFunctionInSingleStatementContext:\n    \"Async functions can only be declared at the top level or inside a block\",\n  AwaitBindingIdentifier:\n    \"Can not use 'await' as identifier inside an async function\",\n  AwaitExpressionFormalParameter:\n    \"await is not allowed in async function parameters\",\n  AwaitNotInAsyncFunction:\n    \"Can not use keyword 'await' outside an async function\",\n  BadGetterArity: \"getter must not have any formal parameters\",\n  BadSetterArity: \"setter must have exactly one formal parameter\",\n  BadSetterRestParameter:\n    \"setter function argument must not be a rest parameter\",\n  ConstructorClassField: \"Classes may not have a field named 'constructor'\",\n  ConstructorClassPrivateField:\n    \"Classes may not have a private field named '#constructor'\",\n  ConstructorIsAccessor: \"Class constructor may not be an accessor\",\n  ConstructorIsAsync: \"Constructor can't be an async function\",\n  ConstructorIsGenerator: \"Constructor can't be a generator\",\n  DeclarationMissingInitializer: \"%0 require an initialization value\",\n  DecoratorBeforeExport:\n    \"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax\",\n  DecoratorConstructor:\n    \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n  DecoratorExportClass:\n    \"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\",\n  DecoratorSemicolon: \"Decorators must not be followed by a semicolon\",\n  DeletePrivateField: \"Deleting a private field is not allowed\",\n  DestructureNamedImport:\n    \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n  DuplicateConstructor: \"Duplicate constructor in the same class\",\n  DuplicateDefaultExport: \"Only one default export allowed per module.\",\n  DuplicateExport:\n    \"`%0` has already been exported. Exported identifiers must be unique.\",\n  DuplicateProto: \"Redefinition of __proto__ property\",\n  DuplicateRegExpFlags: \"Duplicate regular expression flag\",\n  ElementAfterRest: \"Rest element must be last element\",\n  EscapedCharNotAnIdentifier: \"Invalid Unicode escape\",\n  ForInOfLoopInitializer:\n    \"%0 loop variable declaration may not have an initializer\",\n  GeneratorInSingleStatementContext:\n    \"Generators can only be declared at the top level or inside a block\",\n  IllegalBreakContinue: \"Unsyntactic %0\",\n  IllegalLanguageModeDirective:\n    \"Illegal 'use strict' directive in function with non-simple parameter list\",\n  IllegalReturn: \"'return' outside of function\",\n  ImportCallArgumentTrailingComma:\n    \"Trailing comma is disallowed inside import(...) arguments\",\n  ImportCallArity: \"import() requires exactly one argument\",\n  ImportCallArityLtOne: \"Dynamic imports require a parameter: import('a.js')\",\n  ImportCallNotNewExpression: \"Cannot use new with import(...)\",\n  ImportCallSpreadArgument: \"... is not allowed in import()\",\n  ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: \"module\"'`,\n  ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n  InvalidCodePoint: \"Code point out of bounds\",\n  InvalidDigit: \"Expected number in radix %0\",\n  InvalidEscapeSequence: \"Bad character escape sequence\",\n  InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template\",\n  InvalidEscapedReservedWord: \"Escape sequence in keyword %0\",\n  InvalidIdentifier: \"Invalid identifier %0\",\n  InvalidLhs: \"Invalid left-hand side in %0\",\n  InvalidLhsBinding: \"Binding invalid left-hand side in %0\",\n  InvalidNumber: \"Invalid number\",\n  InvalidOrUnexpectedToken: \"Unexpected character '%0'\",\n  InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern\",\n  InvalidPrivateFieldResolution: \"Private name #%0 is not defined\",\n  InvalidPropertyBindingPattern: \"Binding member expression\",\n  InvalidRestAssignmentPattern: \"Invalid rest operator's argument\",\n  LabelRedeclaration: \"Label '%0' is already declared\",\n  LetInLexicalBinding:\n    \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\",\n  MalformedRegExpFlags: \"Invalid regular expression flag\",\n  MissingClassName: \"A class name is required\",\n  MissingEqInAssignment:\n    \"Only '=' operator can be used for specifying default value.\",\n  MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX\",\n  MixingCoalesceWithLogical:\n    \"Nullish coalescing operator(??) requires parens when mixing with logical operators\",\n  ModuleExportUndefined: \"Export '%0' is not defined\",\n  MultipleDefaultsInSwitch: \"Multiple default clauses\",\n  NewlineAfterThrow: \"Illegal newline after throw\",\n  NoCatchOrFinally: \"Missing catch or finally clause\",\n  NumberIdentifier: \"Identifier directly after number\",\n  NumericSeparatorInEscapeSequence:\n    \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences\",\n  ObsoleteAwaitStar:\n    \"await* has been removed from the async functions proposal. Use Promise.all() instead.\",\n  OptionalChainingNoNew:\n    \"constructors in/after an Optional Chain are not allowed\",\n  OptionalChainingNoTemplate:\n    \"Tagged Template Literals are not allowed in optionalChain\",\n  ParamDupe: \"Argument name clash\",\n  PatternHasAccessor: \"Object pattern can't contain getter or setter\",\n  PatternHasMethod: \"Object pattern can't contain methods\",\n  PipelineBodyNoArrow:\n    'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized',\n  PipelineBodySequenceExpression:\n    \"Pipeline body may not be a comma-separated sequence expression\",\n  PipelineHeadSequenceExpression:\n    \"Pipeline head should not be a comma-separated sequence expression\",\n  PipelineTopicUnused:\n    \"Pipeline is in topic style but does not use topic reference\",\n  PrimaryTopicNotAllowed:\n    \"Topic reference was used in a lexical context without topic binding\",\n  PrimaryTopicRequiresSmartPipeline:\n    \"Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.\",\n  PrivateNameRedeclaration: \"Duplicate private name #%0\",\n  RecordExpressionBarIncorrectEndSyntaxType:\n    \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionBarIncorrectStartSyntaxType:\n    \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  RecordExpressionHashIncorrectStartSyntaxType:\n    \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  RestTrailingComma: \"Unexpected trailing comma after rest element\",\n  SloppyFunction:\n    \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",\n  StaticPrototype: \"Classes may not have static property named prototype\",\n  StrictDelete: \"Deleting local variable in strict mode\",\n  StrictEvalArguments: \"Assigning to '%0' in strict mode\",\n  StrictEvalArgumentsBinding: \"Binding '%0' in strict mode\",\n  StrictFunction:\n    \"In strict mode code, functions can only be declared at top level or inside a block\",\n  StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode\",\n  StrictWith: \"'with' in strict mode\",\n  SuperNotAllowed:\n    \"super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n  SuperPrivateField: \"Private fields can't be accessed on super\",\n  TrailingDecorator: \"Decorators must be attached to a class element\",\n  TupleExpressionBarIncorrectEndSyntaxType:\n    \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionBarIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n  TupleExpressionHashIncorrectStartSyntaxType:\n    \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n  UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder\",\n  UnexpectedAwaitAfterPipelineBody:\n    'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal',\n  UnexpectedDigitAfterHash: \"Unexpected digit after hash token\",\n  UnexpectedImportExport:\n    \"'import' and 'export' may only appear at the top level\",\n  UnexpectedKeyword: \"Unexpected keyword '%0'\",\n  UnexpectedLeadingDecorator:\n    \"Leading decorators must be attached to a class declaration\",\n  UnexpectedLexicalDeclaration:\n    \"Lexical declaration cannot appear in a single-statement context\",\n  UnexpectedNewTarget: \"new.target can only be used in functions\",\n  UnexpectedNumericSeparator:\n    \"A numeric separator is only allowed between two digits\",\n  UnexpectedPrivateField:\n    \"Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\\n or a property of member expression (i.e. this.#p).\",\n  UnexpectedReservedWord: \"Unexpected reserved word '%0'\",\n  UnexpectedSuper: \"super is only allowed in object methods and classes\",\n  UnexpectedToken: \"Unexpected token '%'\",\n  UnexpectedTokenUnaryExponentiation:\n    \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n  UnsupportedBind: \"Binding should be performed on object property.\",\n  UnsupportedDecoratorExport:\n    \"A decorated export must export a class declaration\",\n  UnsupportedDefaultExport:\n    \"Only expressions, functions or classes are allowed as the `default` export.\",\n  UnsupportedImport: \"import can only be used in import() or import.meta\",\n  UnsupportedMetaProperty: \"The only valid meta property for %0 is %0.%1\",\n  UnsupportedParameterDecorator:\n    \"Decorators cannot be used to decorate parameters\",\n  UnsupportedPropertyDecorator:\n    \"Decorators cannot be used to decorate object literal properties\",\n  UnsupportedSuper:\n    \"super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])\",\n  UnterminatedComment: \"Unterminated comment\",\n  UnterminatedRegExp: \"Unterminated regular expression\",\n  UnterminatedString: \"Unterminated string constant\",\n  UnterminatedTemplate: \"Unterminated template\",\n  VarRedeclaration: \"Identifier '%0' has already been declared\",\n  YieldBindingIdentifier:\n    \"Can not use 'yield' as identifier inside a generator\",\n  YieldInParameter: \"yield is not allowed in generator parameters\",\n  ZeroDigitNumericSeparator:\n    \"Numeric separator can not be used after leading 0\",\n});\n\nexport default class LocationParser extends CommentsParser {\n  // Forward-declaration: defined in tokenizer/index.js\n  /*::\n  +isLookahead: boolean;\n  */\n\n  getLocationForPosition(pos: number): Position {\n    let loc;\n    if (pos === this.state.start) loc = this.state.startLoc;\n    else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;\n    else if (pos === this.state.end) loc = this.state.endLoc;\n    else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;\n    else loc = getLineInfo(this.input, pos);\n\n    return loc;\n  }\n\n  raise(pos: number, errorTemplate: string, ...params: any): Error | empty {\n    return this.raiseWithData(pos, undefined, errorTemplate, ...params);\n  }\n\n  raiseWithData(\n    pos: number,\n    data?: {\n      missingPlugin?: Array<string>,\n      code?: string,\n    },\n    errorTemplate: string,\n    ...params: any\n  ): Error | empty {\n    const loc = this.getLocationForPosition(pos);\n    const message =\n      errorTemplate.replace(/%(\\d+)/g, (_, i: number) => params[i]) +\n      ` (${loc.line}:${loc.column})`;\n    return this._raise(Object.assign(({ loc, pos }: Object), data), message);\n  }\n\n  _raise(errorContext: ErrorContext, message: string): Error | empty {\n    // $FlowIgnore\n    const err: SyntaxError & ErrorContext = new SyntaxError(message);\n    Object.assign(err, errorContext);\n    if (this.options.errorRecovery) {\n      if (!this.isLookahead) this.state.errors.push(err);\n      return err;\n    } else {\n      throw err;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nfunction isSimpleProperty(node: N.Node): boolean {\n  return (\n    node != null &&\n    node.type === \"Property\" &&\n    node.kind === \"init\" &&\n    node.method === false\n  );\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    estreeParseRegExpLiteral({ pattern, flags }: N.RegExpLiteral): N.Node {\n      let regex = null;\n      try {\n        regex = new RegExp(pattern, flags);\n      } catch (e) {\n        // In environments that don't support these flags value will\n        // be null as the regex can't be represented natively.\n      }\n      const node = this.estreeParseLiteral(regex);\n      node.regex = { pattern, flags };\n\n      return node;\n    }\n\n    estreeParseBigIntLiteral(value: any): N.Node {\n      // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n      // $FlowIgnore\n      const bigInt = typeof BigInt !== \"undefined\" ? BigInt(value) : null;\n      const node = this.estreeParseLiteral(bigInt);\n      node.bigint = String(node.value || value);\n\n      return node;\n    }\n\n    estreeParseLiteral(value: any): N.Node {\n      return this.parseLiteral(value, \"Literal\");\n    }\n\n    directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n      const directiveLiteral = directive.value;\n\n      const stmt = this.startNodeAt(directive.start, directive.loc.start);\n      const expression = this.startNodeAt(\n        directiveLiteral.start,\n        directiveLiteral.loc.start,\n      );\n\n      expression.value = directiveLiteral.value;\n      expression.raw = directiveLiteral.extra.raw;\n\n      stmt.expression = this.finishNodeAt(\n        expression,\n        \"Literal\",\n        directiveLiteral.end,\n        directiveLiteral.loc.end,\n      );\n      stmt.directive = directiveLiteral.extra.raw.slice(1, -1);\n\n      return this.finishNodeAt(\n        stmt,\n        \"ExpressionStatement\",\n        directive.end,\n        directive.loc.end,\n      );\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    initFunction(\n      node: N.BodilessFunctionOrMethodBase,\n      isAsync: ?boolean,\n    ): void {\n      super.initFunction(node, isAsync);\n      node.expression = false;\n    }\n\n    checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n      if (isSimpleProperty(node)) {\n        this.checkDeclaration(((node: any): N.EstreeProperty).value);\n      } else {\n        super.checkDeclaration(node);\n      }\n    }\n\n    checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n      const prop = ((method: any): N.EstreeProperty | N.EstreeMethodDefinition);\n      const paramCount = prop.kind === \"get\" ? 0 : 1;\n      const start = prop.start;\n      if (prop.value.params.length !== paramCount) {\n        if (method.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      } else if (\n        prop.kind === \"set\" &&\n        prop.value.params[0].type === \"RestElement\"\n      ) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n      disallowLetBinding?: boolean,\n    ): void {\n      switch (expr.type) {\n        case \"ObjectPattern\":\n          expr.properties.forEach(prop => {\n            this.checkLVal(\n              prop.type === \"Property\" ? prop.value : prop,\n              bindingType,\n              checkClashes,\n              \"object destructuring pattern\",\n              disallowLetBinding,\n            );\n          });\n          break;\n        default:\n          super.checkLVal(\n            expr,\n            bindingType,\n            checkClashes,\n            contextDescription,\n            disallowLetBinding,\n          );\n      }\n    }\n\n    checkDuplicatedProto(\n      prop: N.ObjectMember | N.SpreadElement,\n      protoRef: { used: boolean },\n      refExpressionErrors: ?ExpressionErrors,\n    ): void {\n      if (\n        prop.type === \"SpreadElement\" ||\n        prop.computed ||\n        prop.method ||\n        // $FlowIgnore\n        prop.shorthand\n      ) {\n        return;\n      }\n\n      const key = prop.key;\n      // It is either an Identifier or a String/NumericLiteral\n      const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n      if (name === \"__proto__\" && prop.kind === \"init\") {\n        // Store the first redefinition's position\n        if (protoRef.used) {\n          if (refExpressionErrors && refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          } else {\n            this.raise(key.start, Errors.DuplicateProto);\n          }\n        }\n\n        protoRef.used = true;\n      }\n    }\n\n    isValidDirective(stmt: N.Statement): boolean {\n      return (\n        stmt.type === \"ExpressionStatement\" &&\n        stmt.expression.type === \"Literal\" &&\n        typeof stmt.expression.value === \"string\" &&\n        (!stmt.expression.extra || !stmt.expression.extra.parenthesized)\n      );\n    }\n\n    stmtToDirective(stmt: N.Statement): N.Directive {\n      const directive = super.stmtToDirective(stmt);\n      const value = stmt.expression.value;\n\n      // Reset value to the actual value as in estree mode we want\n      // the stmt to have the real value and not the raw value\n      directive.value.value = value;\n\n      return directive;\n    }\n\n    parseBlockBody(\n      node: N.BlockStatementLike,\n      allowDirectives: ?boolean,\n      topLevel: boolean,\n      end: TokenType,\n    ): void {\n      super.parseBlockBody(node, allowDirectives, topLevel, end);\n\n      const directiveStatements = node.directives.map(d =>\n        this.directiveToStmt(d),\n      );\n      node.body = directiveStatements.concat(node.body);\n      delete node.directives;\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      );\n      if (method.typeParameters) {\n        // $FlowIgnore\n        method.value.typeParameters = method.typeParameters;\n        delete method.typeParameters;\n      }\n      classBody.body.push(method);\n    }\n\n    parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      switch (this.state.type) {\n        case tt.num:\n        case tt.string:\n          return this.estreeParseLiteral(this.state.value);\n\n        case tt.regexp:\n          return this.estreeParseRegExpLiteral(this.state.value);\n\n        case tt.bigint:\n          return this.estreeParseBigIntLiteral(this.state.value);\n\n        case tt._null:\n          return this.estreeParseLiteral(null);\n\n        case tt._true:\n          return this.estreeParseLiteral(true);\n\n        case tt._false:\n          return this.estreeParseLiteral(false);\n\n        default:\n          return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    parseLiteral<T: N.Literal>(\n      value: any,\n      type: /*T[\"kind\"]*/ string,\n      startPos?: number,\n      startLoc?: Position,\n    ): T {\n      const node = super.parseLiteral(value, type, startPos, startLoc);\n      node.raw = node.extra.raw;\n      delete node.extra;\n\n      return node;\n    }\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpression: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      super.parseFunctionBody(node, allowExpression, isMethod);\n      node.expression = node.body.type !== \"BlockStatement\";\n    }\n\n    parseMethod<T: N.MethodLike>(\n      node: T,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowDirectSuper: boolean,\n      type: string,\n      inClassScope: boolean = false,\n    ): T {\n      let funcNode = this.startNode();\n      funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n      funcNode = super.parseMethod(\n        funcNode,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowDirectSuper,\n        type,\n        inClassScope,\n      );\n      funcNode.type = \"FunctionExpression\";\n      delete funcNode.kind;\n      // $FlowIgnore\n      node.value = funcNode;\n\n      type = type === \"ClassMethod\" ? \"MethodDefinition\" : type;\n      return this.finishNode(node, type);\n    }\n\n    parseObjectMethod(\n      prop: N.ObjectMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      containsEsc: boolean,\n    ): ?N.ObjectMethod {\n      const node: N.EstreeProperty = (super.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ): any);\n\n      if (node) {\n        node.type = \"Property\";\n        if (((node: any): N.ClassMethod).kind === \"method\") node.kind = \"init\";\n        node.shorthand = false;\n      }\n\n      return (node: any);\n    }\n\n    parseObjectProperty(\n      prop: N.ObjectProperty,\n      startPos: ?number,\n      startLoc: ?Position,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n    ): ?N.ObjectProperty {\n      const node: N.EstreeProperty = (super.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      ): any);\n\n      if (node) {\n        node.kind = \"init\";\n        node.type = \"Property\";\n      }\n\n      return (node: any);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (isSimpleProperty(node)) {\n        this.toAssignable(node.value);\n\n        return node;\n      }\n\n      return super.toAssignable(node);\n    }\n\n    toAssignableObjectExpressionProp(prop: N.Node, isLast: boolean) {\n      if (prop.kind === \"get\" || prop.kind === \"set\") {\n        throw this.raise(prop.key.start, Errors.PatternHasAccessor);\n      } else if (prop.method) {\n        throw this.raise(prop.key.start, Errors.PatternHasMethod);\n      } else {\n        super.toAssignableObjectExpressionProp(prop, isLast);\n      }\n    }\n\n    finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n      node: T,\n      optional: boolean,\n    ): N.Expression {\n      super.finishCallExpression(node, optional);\n\n      if (node.callee.type === \"Import\") {\n        ((node: N.Node): N.EstreeImportExpression).type = \"ImportExpression\";\n        ((node: N.Node): N.EstreeImportExpression).source = node.arguments[0];\n        delete node.arguments;\n        delete node.callee;\n      }\n\n      return node;\n    }\n\n    toReferencedListDeep(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): void {\n      // ImportExpressions do not have an arguments array.\n      if (!exprList) {\n        return;\n      }\n\n      super.toReferencedListDeep(exprList, isParenthesizedExpr);\n    }\n\n    parseExport(node: N.Node) {\n      super.parseExport(node);\n\n      switch (node.type) {\n        case \"ExportAllDeclaration\":\n          node.exported = null;\n          break;\n\n        case \"ExportNamedDeclaration\":\n          if (\n            node.specifiers.length === 1 &&\n            node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n          ) {\n            node.type = \"ExportAllDeclaration\";\n            node.exported = node.specifiers[0].exported;\n            delete node.specifiers;\n          }\n\n          break;\n      }\n\n      return node;\n    }\n  };\n","// @flow\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport { types as tt } from \"./types\";\nimport { lineBreak } from \"../util/whitespace\";\n\nexport class TokContext {\n  constructor(\n    token: string,\n    isExpr?: boolean,\n    preserveSpace?: boolean,\n    override?: ?Function, // Takes a Tokenizer as a this-parameter, and returns void.\n  ) {\n    this.token = token;\n    this.isExpr = !!isExpr;\n    this.preserveSpace = !!preserveSpace;\n    this.override = override;\n  }\n\n  token: string;\n  isExpr: boolean;\n  preserveSpace: boolean;\n  override: ?Function;\n}\n\nexport const types: {\n  [key: string]: TokContext,\n} = {\n  braceStatement: new TokContext(\"{\", false),\n  braceExpression: new TokContext(\"{\", true),\n  templateQuasi: new TokContext(\"${\", false),\n  parenStatement: new TokContext(\"(\", false),\n  parenExpression: new TokContext(\"(\", true),\n  template: new TokContext(\"`\", true, true, p => p.readTmplToken()),\n  functionExpression: new TokContext(\"function\", true),\n  functionStatement: new TokContext(\"function\", false),\n};\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n  if (this.state.context.length === 1) {\n    this.state.exprAllowed = true;\n    return;\n  }\n\n  let out = this.state.context.pop();\n  if (out === types.braceStatement && this.curContext().token === \"function\") {\n    out = this.state.context.pop();\n  }\n\n  this.state.exprAllowed = !out.isExpr;\n};\n\ntt.name.updateContext = function(prevType) {\n  let allowed = false;\n  if (prevType !== tt.dot) {\n    if (\n      (this.state.value === \"of\" && !this.state.exprAllowed) ||\n      (this.state.value === \"yield\" && this.prodParam.hasYield)\n    ) {\n      allowed = true;\n    }\n  }\n  this.state.exprAllowed = allowed;\n\n  if (this.state.isIterator) {\n    this.state.isIterator = false;\n  }\n};\n\ntt.braceL.updateContext = function(prevType) {\n  this.state.context.push(\n    this.braceIsBlock(prevType) ? types.braceStatement : types.braceExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.dollarBraceL.updateContext = function() {\n  this.state.context.push(types.templateQuasi);\n  this.state.exprAllowed = true;\n};\n\ntt.parenL.updateContext = function(prevType) {\n  const statementParens =\n    prevType === tt._if ||\n    prevType === tt._for ||\n    prevType === tt._with ||\n    prevType === tt._while;\n  this.state.context.push(\n    statementParens ? types.parenStatement : types.parenExpression,\n  );\n  this.state.exprAllowed = true;\n};\n\ntt.incDec.updateContext = function() {\n  // tokExprAllowed stays unchanged\n};\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n  if (\n    prevType.beforeExpr &&\n    prevType !== tt.semi &&\n    prevType !== tt._else &&\n    !(\n      prevType === tt._return &&\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) &&\n    !(\n      (prevType === tt.colon || prevType === tt.braceL) &&\n      this.curContext() === types.b_stat\n    )\n  ) {\n    this.state.context.push(types.functionExpression);\n  } else {\n    this.state.context.push(types.functionStatement);\n  }\n\n  this.state.exprAllowed = false;\n};\n\ntt.backQuote.updateContext = function() {\n  if (this.curContext() === types.template) {\n    this.state.context.pop();\n  } else {\n    this.state.context.push(types.template);\n  }\n  this.state.exprAllowed = false;\n};\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08c7\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nconst nonASCIIidentifierStart = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n  \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: $ReadOnlyArray<number>): boolean {\n  let pos = 0x10000;\n  for (let i = 0, length = set.length; i < length; i += 2) {\n    pos += set[i];\n    if (pos > code) return false;\n\n    pos += set[i + 1];\n    if (pos >= code) return true;\n  }\n  return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n  if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return (\n      code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n    );\n  }\n  return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n  if (code < charCodes.digit0) return code === charCodes.dollarSign;\n  if (code < charCodes.colon) return true;\n  if (code < charCodes.uppercaseA) return false;\n  if (code <= charCodes.uppercaseZ) return true;\n  if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n  if (code <= charCodes.lowercaseZ) return true;\n  if (code <= 0xffff) {\n    return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n  }\n  return (\n    isInAstralSet(code, astralIdentifierStartCodes) ||\n    isInAstralSet(code, astralIdentifierCodes)\n  );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n  let isFirst = true;\n  for (const char of Array.from(name)) {\n    const cp = char.codePointAt(0);\n    if (isFirst) {\n      if (!isIdentifierStart(cp)) {\n        return false;\n      }\n      isFirst = false;\n    } else if (!isIdentifierChar(cp)) {\n      return false;\n    }\n  }\n  return true;\n}\n","// @flow\n\nconst reservedWords = {\n  keyword: [\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"continue\",\n    \"debugger\",\n    \"default\",\n    \"do\",\n    \"else\",\n    \"finally\",\n    \"for\",\n    \"function\",\n    \"if\",\n    \"return\",\n    \"switch\",\n    \"throw\",\n    \"try\",\n    \"var\",\n    \"const\",\n    \"while\",\n    \"with\",\n    \"new\",\n    \"this\",\n    \"super\",\n    \"class\",\n    \"extends\",\n    \"export\",\n    \"import\",\n    \"null\",\n    \"true\",\n    \"false\",\n    \"in\",\n    \"instanceof\",\n    \"typeof\",\n    \"void\",\n    \"delete\",\n  ],\n  strict: [\n    \"implements\",\n    \"interface\",\n    \"let\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"static\",\n    \"yield\",\n  ],\n  strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n  return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n  return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n  return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n  word: string,\n  inModule: boolean,\n): boolean {\n  return (\n    isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n  );\n}\n\nexport function isKeyword(word: string): boolean {\n  return keywords.has(word);\n}\n","/* eslint max-len: 0 */\n\n// @flow\n\nimport * as charCodes from \"charcodes\";\n\nexport {\n  isIdentifierStart,\n  isIdentifierChar,\n  isReservedWord,\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n  isStrictReservedWord,\n  isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(current: number, next: number): boolean {\n  return current === charCodes.atSign && next === charCodes.atSign;\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type Parser from \"../parser\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport * as N from \"../types\";\nimport type { Options } from \"../options\";\nimport type { Pos, Position } from \"../util/location\";\nimport type State from \"../tokenizer/state\";\nimport { types as tc } from \"../tokenizer/context\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../util/identifier\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_ARROW,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n} from \"../util/scopeflags\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport { Errors } from \"../parser/location\";\n\nconst reservedTypes = new Set([\n  \"_\",\n  \"any\",\n  \"bool\",\n  \"boolean\",\n  \"empty\",\n  \"extends\",\n  \"false\",\n  \"interface\",\n  \"mixed\",\n  \"null\",\n  \"number\",\n  \"static\",\n  \"string\",\n  \"true\",\n  \"typeof\",\n  \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = Object.freeze({\n  AmbiguousConditionalArrow:\n    \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n  AmbiguousDeclareModuleKind:\n    \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module\",\n  AssignReservedType: \"Cannot overwrite reserved type %0\",\n  DeclareClassElement:\n    \"The `declare` modifier can only appear on class fields.\",\n  DeclareClassFieldInitializer:\n    \"Initializers are not allowed in fields with the `declare` modifier.\",\n  DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement\",\n  EnumBooleanMemberNotInitialized:\n    \"Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.\",\n  EnumDuplicateMemberName:\n    \"Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.\",\n  EnumInconsistentMemberValues:\n    \"Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\",\n  EnumInvalidExplicitType:\n    \"Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidExplicitTypeUnknownSupplied:\n    \"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n  EnumInvalidMemberInitializerPrimaryType:\n    \"Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.\",\n  EnumInvalidMemberInitializerSymbolType:\n    \"Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.\",\n  EnumInvalidMemberInitializerUnknownType:\n    \"The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.\",\n  EnumInvalidMemberName:\n    \"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.\",\n  EnumNumberMemberNotInitialized:\n    \"Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.\",\n  EnumStringMemberInconsistentlyInitailized:\n    \"String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.\",\n  ImportTypeShorthandOnlyInPureImport:\n    \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\",\n  InexactInsideExact:\n    \"Explicit inexact syntax cannot appear inside an explicit exact object type\",\n  InexactInsideNonObject:\n    \"Explicit inexact syntax cannot appear in class or interface definitions\",\n  InexactVariance: \"Explicit inexact syntax cannot have variance\",\n  InvalidNonTypeImportInDeclareModule:\n    \"Imports within a `declare module` body must always be `import type` or `import typeof`\",\n  MissingTypeParamDefault:\n    \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n  NestedDeclareModule:\n    \"`declare module` cannot be used inside another `declare module`\",\n  NestedFlowComment: \"Cannot have a flow comment inside another flow comment\",\n  OptionalBindingPattern:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  SpreadVariance: \"Spread properties cannot have variance\",\n  TypeBeforeInitializer:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  TypeCastInPattern:\n    \"The type cast expression is expected to be wrapped with parenthesis\",\n  UnexpectedExplicitInexactInObject:\n    \"Explicit inexact syntax must appear at the end of an inexact object\",\n  UnexpectedReservedType: \"Unexpected reserved type %0\",\n  UnexpectedReservedUnderscore:\n    \"`_` is only allowed as a type argument to call or new\",\n  UnexpectedSpaceBetweenModuloChecks:\n    \"Spaces between `%` and `checks` are not allowed here.\",\n  UnexpectedSpreadType:\n    \"Spread operator cannot appear in class or interface definitions\",\n  UnexpectedSubtractionOperand:\n    'Unexpected token, expected \"number\" or \"bigint\"',\n  UnexpectedTokenAfterTypeParameter:\n    \"Expected an arrow function after this type parameter declaration\",\n  UnsupportedDeclareExportKind:\n    \"`declare export %0` is not supported. Use `%1` instead\",\n  UnsupportedStatementInDeclareModule:\n    \"Only declares and type imports are allowed inside declare module\",\n  UnterminatedFlowComment: \"Unterminated flow-comment\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n  return (\n    bodyElement.type === \"DeclareExportAllDeclaration\" ||\n    (bodyElement.type === \"DeclareExportDeclaration\" &&\n      (!bodyElement.declaration ||\n        (bodyElement.declaration.type !== \"TypeAlias\" &&\n          bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n  );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n  return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nfunction isMaybeDefaultImport(state: State): boolean {\n  return (\n    (state.type === tt.name || !!state.type.keyword) && state.value !== \"from\"\n  );\n}\n\nconst exportSuggestions = {\n  const: \"declare export var\",\n  let: \"declare export var\",\n  type: \"export type\",\n  interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition<T>(\n  list: T[],\n  test: (T, number, T[]) => ?boolean,\n): [T[], T[]] {\n  const list1 = [];\n  const list2 = [];\n  for (let i = 0; i < list.length; i++) {\n    (test(list[i], i, list) ? list1 : list2).push(list[i]);\n  }\n  return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\ntype EnumContext = {|\n  enumName: string,\n  explicitType: EnumExplicitType,\n  memberName: string,\n|};\ntype EnumMemberInit =\n  | {| type: \"number\", pos: number, value: N.Node |}\n  | {| type: \"string\", pos: number, value: N.Node |}\n  | {| type: \"boolean\", pos: number, value: N.Node |}\n  | {| type: \"invalid\", pos: number |}\n  | {| type: \"none\", pos: number |};\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // The value of the @flow/@noflow pragma. Initially undefined, transitions\n    // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n    // past the initial comment.\n    flowPragma: void | null | \"flow\" | \"noflow\";\n\n    constructor(options: ?Options, input: string) {\n      super(options, input);\n      this.flowPragma = undefined;\n    }\n\n    shouldParseTypes(): boolean {\n      return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n    }\n\n    shouldParseEnums(): boolean {\n      return !!this.getPluginOption(\"flow\", \"enums\");\n    }\n\n    finishToken(type: TokenType, val: any): void {\n      if (\n        type !== tt.string &&\n        type !== tt.semi &&\n        type !== tt.interpreterDirective\n      ) {\n        if (this.flowPragma === undefined) {\n          this.flowPragma = null;\n        }\n      }\n      return super.finishToken(type, val);\n    }\n\n    addComment(comment: N.Comment): void {\n      if (this.flowPragma === undefined) {\n        // Try to parse a flow pragma.\n        const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n        if (!matches) {\n          // do nothing\n        } else if (matches[1] === \"flow\") {\n          this.flowPragma = \"flow\";\n        } else if (matches[1] === \"noflow\") {\n          this.flowPragma = \"noflow\";\n        } else {\n          throw new Error(\"Unexpected flow pragma\");\n        }\n      }\n      return super.addComment(comment);\n    }\n\n    flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tok || tt.colon);\n\n      const type = this.flowParseType();\n      this.state.inType = oldInType;\n      return type;\n    }\n\n    flowParsePredicate(): N.FlowType {\n      const node = this.startNode();\n      const moduloLoc = this.state.startLoc;\n      const moduloPos = this.state.start;\n      this.expect(tt.modulo);\n      const checksLoc = this.state.startLoc;\n      this.expectContextual(\"checks\");\n      // Force '%' and 'checks' to be adjacent\n      if (\n        moduloLoc.line !== checksLoc.line ||\n        moduloLoc.column !== checksLoc.column - 1\n      ) {\n        this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks);\n      }\n      if (this.eat(tt.parenL)) {\n        node.value = this.parseExpression();\n        this.expect(tt.parenR);\n        return this.finishNode(node, \"DeclaredPredicate\");\n      } else {\n        return this.finishNode(node, \"InferredPredicate\");\n      }\n    }\n\n    flowParseTypeAndPredicateInitialiser(): [?N.FlowType, ?N.FlowPredicate] {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      this.expect(tt.colon);\n      let type = null;\n      let predicate = null;\n      if (this.match(tt.modulo)) {\n        this.state.inType = oldInType;\n        predicate = this.flowParsePredicate();\n      } else {\n        type = this.flowParseType();\n        this.state.inType = oldInType;\n        if (this.match(tt.modulo)) {\n          predicate = this.flowParsePredicate();\n        }\n      }\n      return [type, predicate];\n    }\n\n    flowParseDeclareClass(node: N.FlowDeclareClass): N.FlowDeclareClass {\n      this.next();\n      this.flowParseInterfaceish(node, /*isClass*/ true);\n      return this.finishNode(node, \"DeclareClass\");\n    }\n\n    flowParseDeclareFunction(\n      node: N.FlowDeclareFunction,\n    ): N.FlowDeclareFunction {\n      this.next();\n\n      const id = (node.id = this.parseIdentifier());\n\n      const typeNode = this.startNode();\n      const typeContainer = this.startNode();\n\n      if (this.isRelational(\"<\")) {\n        typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        typeNode.typeParameters = null;\n      }\n\n      this.expect(tt.parenL);\n      const tmp = this.flowParseFunctionTypeParams();\n      typeNode.params = tmp.params;\n      typeNode.rest = tmp.rest;\n      this.expect(tt.parenR);\n\n      [\n        // $FlowFixMe (destructuring not supported yet)\n        typeNode.returnType,\n        // $FlowFixMe (destructuring not supported yet)\n        node.predicate,\n      ] = this.flowParseTypeAndPredicateInitialiser();\n\n      typeContainer.typeAnnotation = this.finishNode(\n        typeNode,\n        \"FunctionTypeAnnotation\",\n      );\n\n      id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n      this.resetEndLocation(id);\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareFunction\");\n    }\n\n    flowParseDeclare(\n      node: N.FlowDeclare,\n      insideModule?: boolean,\n    ): N.FlowDeclare {\n      if (this.match(tt._class)) {\n        return this.flowParseDeclareClass(node);\n      } else if (this.match(tt._function)) {\n        return this.flowParseDeclareFunction(node);\n      } else if (this.match(tt._var)) {\n        return this.flowParseDeclareVariable(node);\n      } else if (this.eatContextual(\"module\")) {\n        if (this.match(tt.dot)) {\n          return this.flowParseDeclareModuleExports(node);\n        } else {\n          if (insideModule) {\n            this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule);\n          }\n          return this.flowParseDeclareModule(node);\n        }\n      } else if (this.isContextual(\"type\")) {\n        return this.flowParseDeclareTypeAlias(node);\n      } else if (this.isContextual(\"opaque\")) {\n        return this.flowParseDeclareOpaqueType(node);\n      } else if (this.isContextual(\"interface\")) {\n        return this.flowParseDeclareInterface(node);\n      } else if (this.match(tt._export)) {\n        return this.flowParseDeclareExportDeclaration(node, insideModule);\n      } else {\n        throw this.unexpected();\n      }\n    }\n\n    flowParseDeclareVariable(\n      node: N.FlowDeclareVariable,\n    ): N.FlowDeclareVariable {\n      this.next();\n      node.id = this.flowParseTypeAnnotatableIdentifier(\n        /*allowPrimitiveOverride*/ true,\n      );\n      this.scope.declareName(node.id.name, BIND_VAR, node.id.start);\n      this.semicolon();\n      return this.finishNode(node, \"DeclareVariable\");\n    }\n\n    flowParseDeclareModule(node: N.FlowDeclareModule): N.FlowDeclareModule {\n      this.scope.enter(SCOPE_OTHER);\n\n      if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        node.id = this.parseIdentifier();\n      }\n\n      const bodyNode = (node.body = this.startNode());\n      const body = (bodyNode.body = []);\n      this.expect(tt.braceL);\n      while (!this.match(tt.braceR)) {\n        let bodyNode = this.startNode();\n\n        if (this.match(tt._import)) {\n          this.next();\n          if (!this.isContextual(\"type\") && !this.match(tt._typeof)) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InvalidNonTypeImportInDeclareModule,\n            );\n          }\n          this.parseImport(bodyNode);\n        } else {\n          this.expectContextual(\n            \"declare\",\n            FlowErrors.UnsupportedStatementInDeclareModule,\n          );\n\n          bodyNode = this.flowParseDeclare(bodyNode, true);\n        }\n\n        body.push(bodyNode);\n      }\n\n      this.scope.exit();\n\n      this.expect(tt.braceR);\n\n      this.finishNode(bodyNode, \"BlockStatement\");\n\n      let kind = null;\n      let hasModuleExport = false;\n      body.forEach(bodyElement => {\n        if (isEsModuleType(bodyElement)) {\n          if (kind === \"CommonJS\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"ES\";\n        } else if (bodyElement.type === \"DeclareModuleExports\") {\n          if (hasModuleExport) {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.DuplicateDeclareModuleExports,\n            );\n          }\n          if (kind === \"ES\") {\n            this.raise(\n              bodyElement.start,\n              FlowErrors.AmbiguousDeclareModuleKind,\n            );\n          }\n          kind = \"CommonJS\";\n          hasModuleExport = true;\n        }\n      });\n\n      node.kind = kind || \"CommonJS\";\n      return this.finishNode(node, \"DeclareModule\");\n    }\n\n    flowParseDeclareExportDeclaration(\n      node: N.FlowDeclareExportDeclaration,\n      insideModule: ?boolean,\n    ): N.FlowDeclareExportDeclaration {\n      this.expect(tt._export);\n\n      if (this.eat(tt._default)) {\n        if (this.match(tt._function) || this.match(tt._class)) {\n          // declare export default class ...\n          // declare export default function ...\n          node.declaration = this.flowParseDeclare(this.startNode());\n        } else {\n          // declare export default [type];\n          node.declaration = this.flowParseType();\n          this.semicolon();\n        }\n        node.default = true;\n\n        return this.finishNode(node, \"DeclareExportDeclaration\");\n      } else {\n        if (\n          this.match(tt._const) ||\n          this.isLet() ||\n          ((this.isContextual(\"type\") || this.isContextual(\"interface\")) &&\n            !insideModule)\n        ) {\n          const label = this.state.value;\n          const suggestion = exportSuggestions[label];\n          throw this.raise(\n            this.state.start,\n            FlowErrors.UnsupportedDeclareExportKind,\n            label,\n            suggestion,\n          );\n        }\n\n        if (\n          this.match(tt._var) || // declare export var ...\n          this.match(tt._function) || // declare export function ...\n          this.match(tt._class) || // declare export class ...\n          this.isContextual(\"opaque\") // declare export opaque ..\n        ) {\n          node.declaration = this.flowParseDeclare(this.startNode());\n          node.default = false;\n\n          return this.finishNode(node, \"DeclareExportDeclaration\");\n        } else if (\n          this.match(tt.star) || // declare export * from ''\n          this.match(tt.braceL) || // declare export {} ...\n          this.isContextual(\"interface\") || // declare export interface ...\n          this.isContextual(\"type\") || // declare export type ...\n          this.isContextual(\"opaque\") // declare export opaque type ...\n        ) {\n          node = this.parseExport(node);\n          if (node.type === \"ExportNamedDeclaration\") {\n            // flow does not support the ExportNamedDeclaration\n            // $FlowIgnore\n            node.type = \"ExportDeclaration\";\n            // $FlowFixMe\n            node.default = false;\n            delete node.exportKind;\n          }\n\n          // $FlowIgnore\n          node.type = \"Declare\" + node.type;\n\n          return node;\n        }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParseDeclareModuleExports(\n      node: N.FlowDeclareModuleExports,\n    ): N.FlowDeclareModuleExports {\n      this.next();\n      this.expectContextual(\"exports\");\n      node.typeAnnotation = this.flowParseTypeAnnotation();\n      this.semicolon();\n\n      return this.finishNode(node, \"DeclareModuleExports\");\n    }\n\n    flowParseDeclareTypeAlias(\n      node: N.FlowDeclareTypeAlias,\n    ): N.FlowDeclareTypeAlias {\n      this.next();\n      this.flowParseTypeAlias(node);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareTypeAlias\";\n      return node;\n    }\n\n    flowParseDeclareOpaqueType(\n      node: N.FlowDeclareOpaqueType,\n    ): N.FlowDeclareOpaqueType {\n      this.next();\n      this.flowParseOpaqueType(node, true);\n      // Don't do finishNode as we don't want to process comments twice\n      node.type = \"DeclareOpaqueType\";\n      return node;\n    }\n\n    flowParseDeclareInterface(\n      node: N.FlowDeclareInterface,\n    ): N.FlowDeclareInterface {\n      this.next();\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"DeclareInterface\");\n    }\n\n    // Interfaces\n\n    flowParseInterfaceish(\n      node: N.FlowDeclare,\n      isClass?: boolean = false,\n    ): void {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ !isClass,\n        /* declaration */ true,\n      );\n\n      this.scope.declareName(\n        node.id.name,\n        isClass ? BIND_FUNCTION : BIND_LEXICAL,\n        node.id.start,\n      );\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.extends = [];\n      node.implements = [];\n      node.mixins = [];\n\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (!isClass && this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"mixins\")) {\n        this.next();\n        do {\n          node.mixins.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        do {\n          node.implements.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: isClass,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: isClass,\n        allowInexact: false,\n      });\n    }\n\n    flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n      const node = this.startNode();\n\n      node.id = this.flowParseQualifiedTypeIdentifier();\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      } else {\n        node.typeParameters = null;\n      }\n\n      return this.finishNode(node, \"InterfaceExtends\");\n    }\n\n    flowParseInterface(node: N.FlowInterface): N.FlowInterface {\n      this.flowParseInterfaceish(node);\n      return this.finishNode(node, \"InterfaceDeclaration\");\n    }\n\n    checkNotUnderscore(word: string) {\n      if (word === \"_\") {\n        this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore);\n      }\n    }\n\n    checkReservedType(word: string, startLoc: number, declaration?: boolean) {\n      if (!reservedTypes.has(word)) return;\n\n      this.raise(\n        startLoc,\n        declaration\n          ? FlowErrors.AssignReservedType\n          : FlowErrors.UnexpectedReservedType,\n        word,\n      );\n    }\n\n    flowParseRestrictedIdentifier(\n      liberal?: boolean,\n      declaration?: boolean,\n    ): N.Identifier {\n      this.checkReservedType(this.state.value, this.state.start, declaration);\n      return this.parseIdentifier(liberal);\n    }\n\n    // Type aliases\n\n    flowParseTypeAlias(node: N.FlowTypeAlias): N.FlowTypeAlias {\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ false,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      node.right = this.flowParseTypeInitialiser(tt.eq);\n      this.semicolon();\n\n      return this.finishNode(node, \"TypeAlias\");\n    }\n\n    flowParseOpaqueType(\n      node: N.FlowOpaqueType,\n      declare: boolean,\n    ): N.FlowOpaqueType {\n      this.expectContextual(\"type\");\n      node.id = this.flowParseRestrictedIdentifier(\n        /* liberal */ true,\n        /* declaration */ true,\n      );\n      this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      } else {\n        node.typeParameters = null;\n      }\n\n      // Parse the supertype\n      node.supertype = null;\n      if (this.match(tt.colon)) {\n        node.supertype = this.flowParseTypeInitialiser(tt.colon);\n      }\n\n      node.impltype = null;\n      if (!declare) {\n        node.impltype = this.flowParseTypeInitialiser(tt.eq);\n      }\n      this.semicolon();\n\n      return this.finishNode(node, \"OpaqueType\");\n    }\n\n    // Type annotations\n\n    flowParseTypeParameter(requireDefault?: boolean = false): N.TypeParameter {\n      const nodeStart = this.state.start;\n\n      const node = this.startNode();\n\n      const variance = this.flowParseVariance();\n\n      const ident = this.flowParseTypeAnnotatableIdentifier();\n      node.name = ident.name;\n      node.variance = variance;\n      node.bound = ident.typeAnnotation;\n\n      if (this.match(tt.eq)) {\n        this.eat(tt.eq);\n        node.default = this.flowParseType();\n      } else {\n        if (requireDefault) {\n          this.raise(nodeStart, FlowErrors.MissingTypeParamDefault);\n        }\n      }\n\n      return this.finishNode(node, \"TypeParameter\");\n    }\n\n    flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n      const oldInType = this.state.inType;\n      const node = this.startNode();\n      node.params = [];\n\n      this.state.inType = true;\n\n      // istanbul ignore else: this condition is already checked at all call sites\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      let defaultRequired = false;\n\n      do {\n        const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n        node.params.push(typeParameter);\n\n        if (typeParameter.default) {\n          defaultRequired = true;\n        }\n\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      } while (!this.isRelational(\">\"));\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterDeclaration\");\n    }\n\n    flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n      this.state.noAnonFunctionType = false;\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseType());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n      const node = this.startNode();\n      const oldInType = this.state.inType;\n      node.params = [];\n\n      this.state.inType = true;\n\n      this.expectRelational(\"<\");\n      while (!this.isRelational(\">\")) {\n        node.params.push(this.flowParseTypeOrImplicitInstantiation());\n        if (!this.isRelational(\">\")) {\n          this.expect(tt.comma);\n        }\n      }\n      this.expectRelational(\">\");\n\n      this.state.inType = oldInType;\n\n      return this.finishNode(node, \"TypeParameterInstantiation\");\n    }\n\n    flowParseInterfaceType(): N.FlowInterfaceType {\n      const node = this.startNode();\n      this.expectContextual(\"interface\");\n\n      node.extends = [];\n      if (this.eat(tt._extends)) {\n        do {\n          node.extends.push(this.flowParseInterfaceExtends());\n        } while (this.eat(tt.comma));\n      }\n\n      node.body = this.flowParseObjectType({\n        allowStatic: false,\n        allowExact: false,\n        allowSpread: false,\n        allowProto: false,\n        allowInexact: false,\n      });\n\n      return this.finishNode(node, \"InterfaceTypeAnnotation\");\n    }\n\n    flowParseObjectPropertyKey(): N.Expression {\n      return this.match(tt.num) || this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(true);\n    }\n\n    flowParseObjectTypeIndexer(\n      node: N.FlowObjectTypeIndexer,\n      isStatic: boolean,\n      variance: ?N.FlowVariance,\n    ): N.FlowObjectTypeIndexer {\n      node.static = isStatic;\n\n      // Note: bracketL has already been consumed\n      if (this.lookahead().type === tt.colon) {\n        node.id = this.flowParseObjectPropertyKey();\n        node.key = this.flowParseTypeInitialiser();\n      } else {\n        node.id = null;\n        node.key = this.flowParseType();\n      }\n      this.expect(tt.bracketR);\n      node.value = this.flowParseTypeInitialiser();\n      node.variance = variance;\n\n      return this.finishNode(node, \"ObjectTypeIndexer\");\n    }\n\n    flowParseObjectTypeInternalSlot(\n      node: N.FlowObjectTypeInternalSlot,\n      isStatic: boolean,\n    ): N.FlowObjectTypeInternalSlot {\n      node.static = isStatic;\n      // Note: both bracketL have already been consumed\n      node.id = this.flowParseObjectPropertyKey();\n      this.expect(tt.bracketR);\n      this.expect(tt.bracketR);\n      if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n        node.method = true;\n        node.optional = false;\n        node.value = this.flowParseObjectTypeMethodish(\n          this.startNodeAt(node.start, node.loc.start),\n        );\n      } else {\n        node.method = false;\n        if (this.eat(tt.question)) {\n          node.optional = true;\n        }\n        node.value = this.flowParseTypeInitialiser();\n      }\n      return this.finishNode(node, \"ObjectTypeInternalSlot\");\n    }\n\n    flowParseObjectTypeMethodish(\n      node: N.FlowFunctionTypeAnnotation,\n    ): N.FlowFunctionTypeAnnotation {\n      node.params = [];\n      node.rest = null;\n      node.typeParameters = null;\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      this.expect(tt.parenL);\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        node.params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n\n      if (this.eat(tt.ellipsis)) {\n        node.rest = this.flowParseFunctionTypeParam();\n      }\n      this.expect(tt.parenR);\n      node.returnType = this.flowParseTypeInitialiser();\n\n      return this.finishNode(node, \"FunctionTypeAnnotation\");\n    }\n\n    flowParseObjectTypeCallProperty(\n      node: N.FlowObjectTypeCallProperty,\n      isStatic: boolean,\n    ): N.FlowObjectTypeCallProperty {\n      const valueNode = this.startNode();\n      node.static = isStatic;\n      node.value = this.flowParseObjectTypeMethodish(valueNode);\n      return this.finishNode(node, \"ObjectTypeCallProperty\");\n    }\n\n    flowParseObjectType({\n      allowStatic,\n      allowExact,\n      allowSpread,\n      allowProto,\n      allowInexact,\n    }: {\n      allowStatic: boolean,\n      allowExact: boolean,\n      allowSpread: boolean,\n      allowProto: boolean,\n      allowInexact: boolean,\n    }): N.FlowObjectTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n\n      const nodeStart = this.startNode();\n\n      nodeStart.callProperties = [];\n      nodeStart.properties = [];\n      nodeStart.indexers = [];\n      nodeStart.internalSlots = [];\n\n      let endDelim;\n      let exact;\n      let inexact = false;\n      if (allowExact && this.match(tt.braceBarL)) {\n        this.expect(tt.braceBarL);\n        endDelim = tt.braceBarR;\n        exact = true;\n      } else {\n        this.expect(tt.braceL);\n        endDelim = tt.braceR;\n        exact = false;\n      }\n\n      nodeStart.exact = exact;\n\n      while (!this.match(endDelim)) {\n        let isStatic = false;\n        let protoStart: ?number = null;\n        let inexactStart: ?number = null;\n        const node = this.startNode();\n\n        if (allowProto && this.isContextual(\"proto\")) {\n          const lookahead = this.lookahead();\n\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            protoStart = this.state.start;\n            allowStatic = false;\n          }\n        }\n\n        if (allowStatic && this.isContextual(\"static\")) {\n          const lookahead = this.lookahead();\n\n          // static is a valid identifier name\n          if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n            this.next();\n            isStatic = true;\n          }\n        }\n\n        const variance = this.flowParseVariance();\n\n        if (this.eat(tt.bracketL)) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (this.eat(tt.bracketL)) {\n            if (variance) {\n              this.unexpected(variance.start);\n            }\n            nodeStart.internalSlots.push(\n              this.flowParseObjectTypeInternalSlot(node, isStatic),\n            );\n          } else {\n            nodeStart.indexers.push(\n              this.flowParseObjectTypeIndexer(node, isStatic, variance),\n            );\n          }\n        } else if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n          nodeStart.callProperties.push(\n            this.flowParseObjectTypeCallProperty(node, isStatic),\n          );\n        } else {\n          let kind = \"init\";\n\n          if (this.isContextual(\"get\") || this.isContextual(\"set\")) {\n            const lookahead = this.lookahead();\n            if (\n              lookahead.type === tt.name ||\n              lookahead.type === tt.string ||\n              lookahead.type === tt.num\n            ) {\n              kind = this.state.value;\n              this.next();\n            }\n          }\n\n          const propOrInexact = this.flowParseObjectTypeProperty(\n            node,\n            isStatic,\n            protoStart,\n            variance,\n            kind,\n            allowSpread,\n            allowInexact ?? !exact,\n          );\n\n          if (propOrInexact === null) {\n            inexact = true;\n            inexactStart = this.state.lastTokStart;\n          } else {\n            nodeStart.properties.push(propOrInexact);\n          }\n        }\n\n        this.flowObjectTypeSemicolon();\n\n        if (\n          inexactStart &&\n          !this.match(tt.braceR) &&\n          !this.match(tt.braceBarR)\n        ) {\n          this.raise(\n            inexactStart,\n            FlowErrors.UnexpectedExplicitInexactInObject,\n          );\n        }\n      }\n\n      this.expect(endDelim);\n\n      /* The inexact flag should only be added on ObjectTypeAnnotations that\n       * are not the body of an interface, declare interface, or declare class.\n       * Since spreads are only allowed in objec types, checking that is\n       * sufficient here.\n       */\n      if (allowSpread) {\n        nodeStart.inexact = inexact;\n      }\n\n      const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n      this.state.inType = oldInType;\n\n      return out;\n    }\n\n    flowParseObjectTypeProperty(\n      node: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n      isStatic: boolean,\n      protoStart: ?number,\n      variance: ?N.FlowVariance,\n      kind: string,\n      allowSpread: boolean,\n      allowInexact: boolean,\n    ): (N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty) | null {\n      if (this.eat(tt.ellipsis)) {\n        const isInexactToken =\n          this.match(tt.comma) ||\n          this.match(tt.semi) ||\n          this.match(tt.braceR) ||\n          this.match(tt.braceBarR);\n\n        if (isInexactToken) {\n          if (!allowSpread) {\n            this.raise(\n              this.state.lastTokStart,\n              FlowErrors.InexactInsideNonObject,\n            );\n          } else if (!allowInexact) {\n            this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact);\n          }\n          if (variance) {\n            this.raise(variance.start, FlowErrors.InexactVariance);\n          }\n\n          return null;\n        }\n\n        if (!allowSpread) {\n          this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType);\n        }\n        if (protoStart != null) {\n          this.unexpected(protoStart);\n        }\n        if (variance) {\n          this.raise(variance.start, FlowErrors.SpreadVariance);\n        }\n\n        node.argument = this.flowParseType();\n        return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n      } else {\n        node.key = this.flowParseObjectPropertyKey();\n        node.static = isStatic;\n        node.proto = protoStart != null;\n        node.kind = kind;\n\n        let optional = false;\n        if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n          // This is a method property\n          node.method = true;\n\n          if (protoStart != null) {\n            this.unexpected(protoStart);\n          }\n          if (variance) {\n            this.unexpected(variance.start);\n          }\n\n          node.value = this.flowParseObjectTypeMethodish(\n            this.startNodeAt(node.start, node.loc.start),\n          );\n          if (kind === \"get\" || kind === \"set\") {\n            this.flowCheckGetterSetterParams(node);\n          }\n        } else {\n          if (kind !== \"init\") this.unexpected();\n\n          node.method = false;\n\n          if (this.eat(tt.question)) {\n            optional = true;\n          }\n          node.value = this.flowParseTypeInitialiser();\n          node.variance = variance;\n        }\n\n        node.optional = optional;\n\n        return this.finishNode(node, \"ObjectTypeProperty\");\n      }\n    }\n\n    // This is similar to checkGetterSetterParams, but as\n    // @babel/parser uses non estree properties we cannot reuse it here\n    flowCheckGetterSetterParams(\n      property: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n    ): void {\n      const paramCount = property.kind === \"get\" ? 0 : 1;\n      const start = property.start;\n      const length =\n        property.value.params.length + (property.value.rest ? 1 : 0);\n      if (length !== paramCount) {\n        if (property.kind === \"get\") {\n          this.raise(start, Errors.BadGetterArity);\n        } else {\n          this.raise(start, Errors.BadSetterArity);\n        }\n      }\n\n      if (property.kind === \"set\" && property.value.rest) {\n        this.raise(start, Errors.BadSetterRestParameter);\n      }\n    }\n\n    flowObjectTypeSemicolon(): void {\n      if (\n        !this.eat(tt.semi) &&\n        !this.eat(tt.comma) &&\n        !this.match(tt.braceR) &&\n        !this.match(tt.braceBarR)\n      ) {\n        this.unexpected();\n      }\n    }\n\n    flowParseQualifiedTypeIdentifier(\n      startPos?: number,\n      startLoc?: Position,\n      id?: N.Identifier,\n    ): N.FlowQualifiedTypeIdentifier {\n      startPos = startPos || this.state.start;\n      startLoc = startLoc || this.state.startLoc;\n      let node = id || this.flowParseRestrictedIdentifier(true);\n\n      while (this.eat(tt.dot)) {\n        const node2 = this.startNodeAt(startPos, startLoc);\n        node2.qualification = node;\n        node2.id = this.flowParseRestrictedIdentifier(true);\n        node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n      }\n\n      return node;\n    }\n\n    flowParseGenericType(\n      startPos: number,\n      startLoc: Position,\n      id: N.Identifier,\n    ): N.FlowGenericTypeAnnotation {\n      const node = this.startNodeAt(startPos, startLoc);\n\n      node.typeParameters = null;\n      node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id);\n\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterInstantiation();\n      }\n\n      return this.finishNode(node, \"GenericTypeAnnotation\");\n    }\n\n    flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n      const node = this.startNode();\n      this.expect(tt._typeof);\n      node.argument = this.flowParsePrimaryType();\n      return this.finishNode(node, \"TypeofTypeAnnotation\");\n    }\n\n    flowParseTupleType(): N.FlowTupleTypeAnnotation {\n      const node = this.startNode();\n      node.types = [];\n      this.expect(tt.bracketL);\n      // We allow trailing commas\n      while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n        node.types.push(this.flowParseType());\n        if (this.match(tt.bracketR)) break;\n        this.expect(tt.comma);\n      }\n      this.expect(tt.bracketR);\n      return this.finishNode(node, \"TupleTypeAnnotation\");\n    }\n\n    flowParseFunctionTypeParam(): N.FlowFunctionTypeParam {\n      let name = null;\n      let optional = false;\n      let typeAnnotation = null;\n      const node = this.startNode();\n      const lh = this.lookahead();\n      if (lh.type === tt.colon || lh.type === tt.question) {\n        name = this.parseIdentifier();\n        if (this.eat(tt.question)) {\n          optional = true;\n        }\n        typeAnnotation = this.flowParseTypeInitialiser();\n      } else {\n        typeAnnotation = this.flowParseType();\n      }\n      node.name = name;\n      node.optional = optional;\n      node.typeAnnotation = typeAnnotation;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    reinterpretTypeAsFunctionTypeParam(\n      type: N.FlowType,\n    ): N.FlowFunctionTypeParam {\n      const node = this.startNodeAt(type.start, type.loc.start);\n      node.name = null;\n      node.optional = false;\n      node.typeAnnotation = type;\n      return this.finishNode(node, \"FunctionTypeParam\");\n    }\n\n    flowParseFunctionTypeParams(\n      params: N.FlowFunctionTypeParam[] = [],\n    ): { params: N.FlowFunctionTypeParam[], rest: ?N.FlowFunctionTypeParam } {\n      let rest: ?N.FlowFunctionTypeParam = null;\n      while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n        params.push(this.flowParseFunctionTypeParam());\n        if (!this.match(tt.parenR)) {\n          this.expect(tt.comma);\n        }\n      }\n      if (this.eat(tt.ellipsis)) {\n        rest = this.flowParseFunctionTypeParam();\n      }\n      return { params, rest };\n    }\n\n    flowIdentToTypeAnnotation(\n      startPos: number,\n      startLoc: Position,\n      node: N.FlowTypeAnnotation,\n      id: N.Identifier,\n    ): N.FlowTypeAnnotation {\n      switch (id.name) {\n        case \"any\":\n          return this.finishNode(node, \"AnyTypeAnnotation\");\n\n        case \"bool\":\n        case \"boolean\":\n          return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n        case \"mixed\":\n          return this.finishNode(node, \"MixedTypeAnnotation\");\n\n        case \"empty\":\n          return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n        case \"number\":\n          return this.finishNode(node, \"NumberTypeAnnotation\");\n\n        case \"string\":\n          return this.finishNode(node, \"StringTypeAnnotation\");\n\n        case \"symbol\":\n          return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n        default:\n          this.checkNotUnderscore(id.name);\n          return this.flowParseGenericType(startPos, startLoc, id);\n      }\n    }\n\n    // The parsing of types roughly parallels the parsing of expressions, and\n    // primary types are kind of like primary expressions...they're the\n    // primitives with which other types are constructed.\n    flowParsePrimaryType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const node = this.startNode();\n      let tmp;\n      let type;\n      let isGroupedType = false;\n      const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n      switch (this.state.type) {\n        case tt.name:\n          if (this.isContextual(\"interface\")) {\n            return this.flowParseInterfaceType();\n          }\n\n          return this.flowIdentToTypeAnnotation(\n            startPos,\n            startLoc,\n            node,\n            this.parseIdentifier(),\n          );\n\n        case tt.braceL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: false,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: true,\n          });\n\n        case tt.braceBarL:\n          return this.flowParseObjectType({\n            allowStatic: false,\n            allowExact: true,\n            allowSpread: true,\n            allowProto: false,\n            allowInexact: false,\n          });\n\n        case tt.bracketL:\n          this.state.noAnonFunctionType = false;\n          type = this.flowParseTupleType();\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n          return type;\n\n        case tt.relational:\n          if (this.state.value === \"<\") {\n            node.typeParameters = this.flowParseTypeParameterDeclaration();\n            this.expect(tt.parenL);\n            tmp = this.flowParseFunctionTypeParams();\n            node.params = tmp.params;\n            node.rest = tmp.rest;\n            this.expect(tt.parenR);\n\n            this.expect(tt.arrow);\n\n            node.returnType = this.flowParseType();\n\n            return this.finishNode(node, \"FunctionTypeAnnotation\");\n          }\n          break;\n\n        case tt.parenL:\n          this.next();\n\n          // Check to see if this is actually a grouped type\n          if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n            if (this.match(tt.name)) {\n              const token = this.lookahead().type;\n              isGroupedType = token !== tt.question && token !== tt.colon;\n            } else {\n              isGroupedType = true;\n            }\n          }\n\n          if (isGroupedType) {\n            this.state.noAnonFunctionType = false;\n            type = this.flowParseType();\n            this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n            // A `,` or a `) =>` means this is an anonymous function type\n            if (\n              this.state.noAnonFunctionType ||\n              !(\n                this.match(tt.comma) ||\n                (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n              )\n            ) {\n              this.expect(tt.parenR);\n              return type;\n            } else {\n              // Eat a comma if there is one\n              this.eat(tt.comma);\n            }\n          }\n\n          if (type) {\n            tmp = this.flowParseFunctionTypeParams([\n              this.reinterpretTypeAsFunctionTypeParam(type),\n            ]);\n          } else {\n            tmp = this.flowParseFunctionTypeParams();\n          }\n\n          node.params = tmp.params;\n          node.rest = tmp.rest;\n\n          this.expect(tt.parenR);\n\n          this.expect(tt.arrow);\n\n          node.returnType = this.flowParseType();\n\n          node.typeParameters = null;\n\n          return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n        case tt.string:\n          return this.parseLiteral(\n            this.state.value,\n            \"StringLiteralTypeAnnotation\",\n          );\n\n        case tt._true:\n        case tt._false:\n          node.value = this.match(tt._true);\n          this.next();\n          return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            this.next();\n            if (this.match(tt.num)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"NumberLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            if (this.match(tt.bigint)) {\n              return this.parseLiteral(\n                -this.state.value,\n                \"BigIntLiteralTypeAnnotation\",\n                node.start,\n                node.loc.start,\n              );\n            }\n\n            throw this.raise(\n              this.state.start,\n              FlowErrors.UnexpectedSubtractionOperand,\n            );\n          }\n\n          throw this.unexpected();\n        case tt.num:\n          return this.parseLiteral(\n            this.state.value,\n            \"NumberLiteralTypeAnnotation\",\n          );\n\n        case tt.bigint:\n          return this.parseLiteral(\n            this.state.value,\n            \"BigIntLiteralTypeAnnotation\",\n          );\n\n        case tt._void:\n          this.next();\n          return this.finishNode(node, \"VoidTypeAnnotation\");\n\n        case tt._null:\n          this.next();\n          return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n        case tt._this:\n          this.next();\n          return this.finishNode(node, \"ThisTypeAnnotation\");\n\n        case tt.star:\n          this.next();\n          return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n        default:\n          if (this.state.type.keyword === \"typeof\") {\n            return this.flowParseTypeofType();\n          } else if (this.state.type.keyword) {\n            const label = this.state.type.label;\n            this.next();\n            return super.createIdentifier(node, label);\n          }\n      }\n\n      throw this.unexpected();\n    }\n\n    flowParsePostfixType(): N.FlowTypeAnnotation {\n      const startPos = this.state.start,\n        startLoc = this.state.startLoc;\n      let type = this.flowParsePrimaryType();\n      while (this.match(tt.bracketL) && !this.canInsertSemicolon()) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.elementType = type;\n        this.expect(tt.bracketL);\n        this.expect(tt.bracketR);\n        type = this.finishNode(node, \"ArrayTypeAnnotation\");\n      }\n      return type;\n    }\n\n    flowParsePrefixType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      if (this.eat(tt.question)) {\n        node.typeAnnotation = this.flowParsePrefixType();\n        return this.finishNode(node, \"NullableTypeAnnotation\");\n      } else {\n        return this.flowParsePostfixType();\n      }\n    }\n\n    flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n      const param = this.flowParsePrefixType();\n      if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n        // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n        const node = this.startNodeAt(param.start, param.loc.start);\n        node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n        node.rest = null;\n        node.returnType = this.flowParseType();\n        node.typeParameters = null;\n        return this.finishNode(node, \"FunctionTypeAnnotation\");\n      }\n      return param;\n    }\n\n    flowParseIntersectionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseAND);\n      const type = this.flowParseAnonFunctionWithoutParens();\n      node.types = [type];\n      while (this.eat(tt.bitwiseAND)) {\n        node.types.push(this.flowParseAnonFunctionWithoutParens());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"IntersectionTypeAnnotation\");\n    }\n\n    flowParseUnionType(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      this.eat(tt.bitwiseOR);\n      const type = this.flowParseIntersectionType();\n      node.types = [type];\n      while (this.eat(tt.bitwiseOR)) {\n        node.types.push(this.flowParseIntersectionType());\n      }\n      return node.types.length === 1\n        ? type\n        : this.finishNode(node, \"UnionTypeAnnotation\");\n    }\n\n    flowParseType(): N.FlowTypeAnnotation {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      const type = this.flowParseUnionType();\n      this.state.inType = oldInType;\n      // Ensure that a brace after a function generic type annotation is a\n      // statement, except in arrow functions (noAnonFunctionType)\n      this.state.exprAllowed =\n        this.state.exprAllowed || this.state.noAnonFunctionType;\n      return type;\n    }\n\n    flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n      if (this.state.type === tt.name && this.state.value === \"_\") {\n        const startPos = this.state.start;\n        const startLoc = this.state.startLoc;\n        const node = this.parseIdentifier();\n        return this.flowParseGenericType(startPos, startLoc, node);\n      } else {\n        return this.flowParseType();\n      }\n    }\n\n    flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n      const node = this.startNode();\n      node.typeAnnotation = this.flowParseTypeInitialiser();\n      return this.finishNode(node, \"TypeAnnotation\");\n    }\n\n    flowParseTypeAnnotatableIdentifier(\n      allowPrimitiveOverride?: boolean,\n    ): N.Identifier {\n      const ident = allowPrimitiveOverride\n        ? this.parseIdentifier()\n        : this.flowParseRestrictedIdentifier();\n      if (this.match(tt.colon)) {\n        ident.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(ident);\n      }\n      return ident;\n    }\n\n    typeCastToParameter(node: N.Node): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    flowParseVariance(): ?N.FlowVariance {\n      let variance = null;\n      if (this.match(tt.plusMin)) {\n        variance = this.startNode();\n        if (this.state.value === \"+\") {\n          variance.kind = \"plus\";\n        } else {\n          variance.kind = \"minus\";\n        }\n        this.next();\n        this.finishNode(variance, \"Variance\");\n      }\n      return variance;\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseFunctionBody(\n      node: N.Function,\n      allowExpressionBody: ?boolean,\n      isMethod?: boolean = false,\n    ): void {\n      if (allowExpressionBody) {\n        return this.forwardNoArrowParamsConversionAt(node, () =>\n          super.parseFunctionBody(node, true, isMethod),\n        );\n      }\n\n      return super.parseFunctionBody(node, false, isMethod);\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        const typeNode = this.startNode();\n\n        [\n          // $FlowFixMe (destructuring not supported yet)\n          typeNode.typeAnnotation,\n          // $FlowFixMe (destructuring not supported yet)\n          node.predicate,\n        ] = this.flowParseTypeAndPredicateInitialiser();\n\n        node.returnType = typeNode.typeAnnotation\n          ? this.finishNode(typeNode, \"TypeAnnotation\")\n          : null;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    // interfaces and enums\n    parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n      // strict mode handling of `interface` since it's a reserved word\n      if (\n        this.state.strict &&\n        this.match(tt.name) &&\n        this.state.value === \"interface\"\n      ) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseInterface(node);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      } else {\n        const stmt = super.parseStatement(context, topLevel);\n        // We will parse a flow pragma in any comment before the first statement.\n        if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n          this.flowPragma = null;\n        }\n        return stmt;\n      }\n    }\n\n    // declares, interfaces and type aliases\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.ExpressionStatement {\n      if (expr.type === \"Identifier\") {\n        if (expr.name === \"declare\") {\n          if (\n            this.match(tt._class) ||\n            this.match(tt.name) ||\n            this.match(tt._function) ||\n            this.match(tt._var) ||\n            this.match(tt._export)\n          ) {\n            return this.flowParseDeclare(node);\n          }\n        } else if (this.match(tt.name)) {\n          if (expr.name === \"interface\") {\n            return this.flowParseInterface(node);\n          } else if (expr.name === \"type\") {\n            return this.flowParseTypeAlias(node);\n          } else if (expr.name === \"opaque\") {\n            return this.flowParseOpaqueType(node, false);\n          }\n        }\n      }\n\n      return super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    shouldParseExportDeclaration(): boolean {\n      return (\n        this.isContextual(\"type\") ||\n        this.isContextual(\"interface\") ||\n        this.isContextual(\"opaque\") ||\n        (this.shouldParseEnums() && this.isContextual(\"enum\")) ||\n        super.shouldParseExportDeclaration()\n      );\n    }\n\n    isExportDefaultSpecifier(): boolean {\n      if (\n        this.match(tt.name) &&\n        (this.state.value === \"type\" ||\n          this.state.value === \"interface\" ||\n          this.state.value === \"opaque\" ||\n          (this.shouldParseEnums() && this.state.value === \"enum\"))\n      ) {\n        return false;\n      }\n\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        const node = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(node);\n      }\n      return super.parseExportDefaultExpression();\n    }\n\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      if (!this.match(tt.question)) return expr;\n\n      // only use the expensive \"tryParse\" method if there is a question mark\n      // and if we come from inside parens\n      if (refNeedsArrowPos) {\n        const result = this.tryParse(() =>\n          super.parseConditional(expr, noIn, startPos, startLoc),\n        );\n\n        if (!result.node) {\n          // $FlowIgnore\n          refNeedsArrowPos.start = result.error.pos || this.state.start;\n          return expr;\n        }\n\n        if (result.error) this.state = result.failState;\n        return result.node;\n      }\n\n      this.expect(tt.question);\n      const state = this.state.clone();\n      const originalNoArrowAt = this.state.noArrowAt;\n      const node = this.startNodeAt(startPos, startLoc);\n      let { consequent, failed } = this.tryParseConditionalConsequent();\n      let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n      if (failed || invalid.length > 0) {\n        const noArrowAt = [...originalNoArrowAt];\n\n        if (invalid.length > 0) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt;\n\n          for (let i = 0; i < invalid.length; i++) {\n            noArrowAt.push(invalid[i].start);\n          }\n\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n          [valid, invalid] = this.getArrowLikeExpressions(consequent);\n        }\n\n        if (failed && valid.length > 1) {\n          // if there are two or more possible correct ways of parsing, throw an\n          // error.\n          // e.g.   Source: a ? (b): c => (d): e => f\n          //      Result 1: a ? b : (c => ((d): e => f))\n          //      Result 2: a ? ((b): c => d) : (e => f)\n          this.raise(state.start, FlowErrors.AmbiguousConditionalArrow);\n        }\n\n        if (failed && valid.length === 1) {\n          this.state = state;\n          this.state.noArrowAt = noArrowAt.concat(valid[0].start);\n          ({ consequent, failed } = this.tryParseConditionalConsequent());\n        }\n      }\n\n      this.getArrowLikeExpressions(consequent, true);\n\n      this.state.noArrowAt = originalNoArrowAt;\n      this.expect(tt.colon);\n\n      node.test = expr;\n      node.consequent = consequent;\n      node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n        this.parseMaybeAssign(noIn, undefined, undefined, undefined),\n      );\n\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n\n    tryParseConditionalConsequent(): {\n      consequent: N.Expression,\n      failed: boolean,\n    } {\n      this.state.noArrowParamsConversionAt.push(this.state.start);\n\n      const consequent = this.parseMaybeAssign();\n      const failed = !this.match(tt.colon);\n\n      this.state.noArrowParamsConversionAt.pop();\n\n      return { consequent, failed };\n    }\n\n    // Given an expression, walks through out its arrow functions whose body is\n    // an expression and through out conditional expressions. It returns every\n    // function which has been parsed with a return type but could have been\n    // parenthesized expressions.\n    // These functions are separated into two arrays: one containing the ones\n    // whose parameters can be converted to assignable lists, one containing the\n    // others.\n    getArrowLikeExpressions(\n      node: N.Expression,\n      disallowInvalid?: boolean,\n    ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n      const stack = [node];\n      const arrows: N.ArrowFunctionExpression[] = [];\n\n      while (stack.length !== 0) {\n        const node = stack.pop();\n        if (node.type === \"ArrowFunctionExpression\") {\n          if (node.typeParameters || !node.returnType) {\n            // This is an arrow expression without ambiguity, so check its parameters\n            this.finishArrowValidation(node);\n          } else {\n            arrows.push(node);\n          }\n          stack.push(node.body);\n        } else if (node.type === \"ConditionalExpression\") {\n          stack.push(node.consequent);\n          stack.push(node.alternate);\n        }\n      }\n\n      if (disallowInvalid) {\n        arrows.forEach(node => this.finishArrowValidation(node));\n        return [arrows, []];\n      }\n\n      return partition(arrows, node =>\n        node.params.every(param => this.isAssignable(param, true)),\n      );\n    }\n\n    finishArrowValidation(node: N.ArrowFunctionExpression) {\n      this.toAssignableList(\n        // node.params is Expression[] instead of $ReadOnlyArray<Pattern> because it\n        // has not been converted yet.\n        ((node.params: any): N.Expression[]),\n        node.extra?.trailingComma,\n      );\n      // Enter scope, as checkParams defines bindings\n      this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n      // Use super's method to force the parameters to be checked\n      super.checkParams(node, false, true);\n      this.scope.exit();\n    }\n\n    forwardNoArrowParamsConversionAt<T>(node: N.Node, parse: () => T): T {\n      let result: T;\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        this.state.noArrowParamsConversionAt.push(this.state.start);\n        result = parse();\n        this.state.noArrowParamsConversionAt.pop();\n      } else {\n        result = parse();\n      }\n\n      return result;\n    }\n\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode = this.startNodeAt(startPos, startLoc);\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    assertModuleNodeAllowed(node: N.Node) {\n      if (\n        (node.type === \"ImportDeclaration\" &&\n          (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n        (node.type === \"ExportNamedDeclaration\" &&\n          node.exportKind === \"type\") ||\n        (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n      ) {\n        // Allow Flowtype imports and exports in all conditions because\n        // Flow itself does not care about 'sourceType'.\n        return;\n      }\n\n      super.assertModuleNodeAllowed(node);\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      const decl = super.parseExport(node);\n      if (\n        decl.type === \"ExportNamedDeclaration\" ||\n        decl.type === \"ExportAllDeclaration\"\n      ) {\n        decl.exportKind = decl.exportKind || \"value\";\n      }\n      return decl;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      if (this.isContextual(\"type\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n\n        if (this.match(tt.braceL)) {\n          // export type { foo, bar };\n          node.specifiers = this.parseExportSpecifiers();\n          this.parseExportFrom(node);\n          return null;\n        } else {\n          // export type Foo = Bar;\n          return this.flowParseTypeAlias(declarationNode);\n        }\n      } else if (this.isContextual(\"opaque\")) {\n        node.exportKind = \"type\";\n\n        const declarationNode = this.startNode();\n        this.next();\n        // export opaque type Foo = Bar;\n        return this.flowParseOpaqueType(declarationNode, false);\n      } else if (this.isContextual(\"interface\")) {\n        node.exportKind = \"type\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseInterface(declarationNode);\n      } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n        node.exportKind = \"value\";\n        const declarationNode = this.startNode();\n        this.next();\n        return this.flowParseEnumDeclaration(declarationNode);\n      } else {\n        return super.parseExportDeclaration(node);\n      }\n    }\n\n    eatExportStar(node: N.Node): boolean {\n      if (super.eatExportStar(...arguments)) return true;\n\n      if (this.isContextual(\"type\") && this.lookahead().type === tt.star) {\n        node.exportKind = \"type\";\n        this.next();\n        this.next();\n        return true;\n      }\n\n      return false;\n    }\n\n    maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n      const pos = this.state.start;\n      const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n      if (hasNamespace && node.exportKind === \"type\") {\n        this.unexpected(pos);\n      }\n      return hasNamespace;\n    }\n\n    parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) {\n      super.parseClassId(node, isStatement, optionalId);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      const pos = this.state.start;\n      if (this.isContextual(\"declare\")) {\n        if (this.parseClassMemberFromModifier(classBody, member)) {\n          // 'declare' is a class element name\n          return;\n        }\n\n        member.declare = true;\n      }\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n      if (member.declare) {\n        if (\n          member.type !== \"ClassProperty\" &&\n          member.type !== \"ClassPrivateProperty\"\n        ) {\n          this.raise(pos, FlowErrors.DeclareClassElement);\n        } else if (member.value) {\n          this.raise(\n            member.value.start,\n            FlowErrors.DeclareClassFieldInitializer,\n          );\n        }\n      }\n    }\n\n    // ensure that inside flow types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n        return this.finishOp(tt.braceBarL, 2);\n      } else if (\n        this.state.inType &&\n        (code === charCodes.greaterThan || code === charCodes.lessThan)\n      ) {\n        return this.finishOp(tt.relational, 1);\n      } else if (isIteratorStart(code, next)) {\n        this.state.isIterator = true;\n        return super.readWord();\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    isAssignable(node: N.Node, isBinding?: boolean): boolean {\n      switch (node.type) {\n        case \"Identifier\":\n        case \"ObjectPattern\":\n        case \"ArrayPattern\":\n        case \"AssignmentPattern\":\n          return true;\n\n        case \"ObjectExpression\": {\n          const last = node.properties.length - 1;\n          return node.properties.every((prop, i) => {\n            return (\n              prop.type !== \"ObjectMethod\" &&\n              (i === last || prop.type === \"SpreadElement\") &&\n              this.isAssignable(prop)\n            );\n          });\n        }\n\n        case \"ObjectProperty\":\n          return this.isAssignable(node.value);\n\n        case \"SpreadElement\":\n          return this.isAssignable(node.argument);\n\n        case \"ArrayExpression\":\n          return node.elements.every(element => this.isAssignable(element));\n\n        case \"AssignmentExpression\":\n          return node.operator === \"=\";\n\n        case \"ParenthesizedExpression\":\n        case \"TypeCastExpression\":\n          return this.isAssignable(node.expression);\n\n        case \"MemberExpression\":\n        case \"OptionalMemberExpression\":\n          return !isBinding;\n\n        default:\n          return false;\n      }\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (node.type === \"TypeCastExpression\") {\n        return super.toAssignable(this.typeCastToParameter(node));\n      } else {\n        return super.toAssignable(node);\n      }\n    }\n\n    // turn type casts that we found in function parameter head into type annotated params\n    toAssignableList(\n      exprList: N.Expression[],\n      trailingCommaPos?: ?number,\n    ): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TypeCastExpression\") {\n          exprList[i] = this.typeCastToParameter(expr);\n        }\n      }\n      return super.toAssignableList(exprList, trailingCommaPos);\n    }\n\n    // this is a list of nodes, from something like a call expression, we need to filter the\n    // type casts that we've found that are illegal in this context\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isParenthesizedExpr?: boolean,\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (\n          expr &&\n          expr.type === \"TypeCastExpression\" &&\n          (!expr.extra || !expr.extra.parenthesized) &&\n          (exprList.length > 1 || !isParenthesizedExpr)\n        ) {\n          this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern);\n        }\n      }\n\n      return exprList;\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      if (expr.type !== \"TypeCastExpression\") {\n        return super.checkLVal(\n          expr,\n          bindingType,\n          checkClashes,\n          contextDescription,\n        );\n      }\n    }\n\n    // parse class property type annotations\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      if (this.match(tt.colon)) {\n        node.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      return super.parseClassPrivateProperty(node);\n    }\n\n    // determine whether or not we're currently in the position where a class method would appear\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    // determine whether or not we're currently in the position where a class property would appear\n    isClassProperty(): boolean {\n      return this.match(tt.colon) || super.isClassProperty();\n    }\n\n    isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n      return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n    }\n\n    // parse type parameters for class methods\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      if ((method: $FlowFixMe).variance) {\n        this.unexpected((method: $FlowFixMe).variance.start);\n      }\n      delete (method: $FlowFixMe).variance;\n      if (this.isRelational(\"<\")) {\n        method.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    // parse a the super class type parameters and implements\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n      }\n      if (this.isContextual(\"implements\")) {\n        this.next();\n        const implemented: N.FlowClassImplements[] = (node.implements = []);\n        do {\n          const node = this.startNode();\n          node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n          if (this.isRelational(\"<\")) {\n            node.typeParameters = this.flowParseTypeParameterInstantiation();\n          } else {\n            node.typeParameters = null;\n          }\n          implemented.push(this.finishNode(node, \"ClassImplements\"));\n        } while (this.eat(tt.comma));\n      }\n    }\n\n    parsePropertyName(\n      node: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n      isPrivateNameAllowed: boolean,\n    ): N.Identifier {\n      const variance = this.flowParseVariance();\n      const key = super.parsePropertyName(node, isPrivateNameAllowed);\n      // $FlowIgnore (\"variance\" not defined on TsNamedTypeElementBase)\n      node.variance = variance;\n      return key;\n    }\n\n    // parse type parameters for object method shorthand\n    parseObjPropValue(\n      prop: N.ObjectMember,\n      startPos: ?number,\n      startLoc: ?Position,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isPattern: boolean,\n      refExpressionErrors: ?ExpressionErrors,\n      containsEsc: boolean,\n    ): void {\n      if ((prop: $FlowFixMe).variance) {\n        this.unexpected((prop: $FlowFixMe).variance.start);\n      }\n      delete (prop: $FlowFixMe).variance;\n\n      let typeParameters;\n\n      // method shorthand\n      if (this.isRelational(\"<\")) {\n        typeParameters = this.flowParseTypeParameterDeclaration();\n        if (!this.match(tt.parenL)) this.unexpected();\n      }\n\n      super.parseObjPropValue(\n        prop,\n        startPos,\n        startLoc,\n        isGenerator,\n        isAsync,\n        isPattern,\n        refExpressionErrors,\n        containsEsc,\n      );\n\n      // add typeParameters if we found them\n      if (typeParameters) {\n        (prop.value || prop).typeParameters = typeParameters;\n      }\n    }\n\n    parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, FlowErrors.OptionalBindingPattern);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      if (this.match(tt.colon)) {\n        param.typeAnnotation = this.flowParseTypeAnnotation();\n      }\n      this.resetEndLocation(param);\n      return param;\n    }\n\n    parseMaybeDefault(\n      startPos?: ?number,\n      startLoc?: ?Position,\n      left?: ?N.Pattern,\n    ): N.Pattern {\n      const node = super.parseMaybeDefault(startPos, startLoc, left);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer);\n      }\n\n      return node;\n    }\n\n    shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n      if (!hasTypeImportKind(node)) {\n        return super.shouldParseDefaultImport(node);\n      }\n\n      return isMaybeDefaultImport(this.state);\n    }\n\n    parseImportSpecifierLocal(\n      node: N.ImportDeclaration,\n      specifier: N.Node,\n      type: string,\n      contextDescription: string,\n    ): void {\n      specifier.local = hasTypeImportKind(node)\n        ? this.flowParseRestrictedIdentifier(\n            /* liberal */ true,\n            /* declaration */ true,\n          )\n        : this.parseIdentifier();\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        contextDescription,\n      );\n      node.specifiers.push(this.finishNode(specifier, type));\n    }\n\n    // parse typeof and type imports\n    maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n      node.importKind = \"value\";\n\n      let kind = null;\n      if (this.match(tt._typeof)) {\n        kind = \"typeof\";\n      } else if (this.isContextual(\"type\")) {\n        kind = \"type\";\n      }\n      if (kind) {\n        const lh = this.lookahead();\n\n        // import type * is not allowed\n        if (kind === \"type\" && lh.type === tt.star) {\n          this.unexpected(lh.start);\n        }\n\n        if (\n          isMaybeDefaultImport(lh) ||\n          lh.type === tt.braceL ||\n          lh.type === tt.star\n        ) {\n          this.next();\n          node.importKind = kind;\n        }\n      }\n\n      return super.maybeParseDefaultImportSpecifier(node);\n    }\n\n    // parse import-type/typeof shorthand\n    parseImportSpecifier(node: N.ImportDeclaration): void {\n      const specifier = this.startNode();\n      const firstIdentLoc = this.state.start;\n      const firstIdent = this.parseIdentifier(true);\n\n      let specifierTypeKind = null;\n      if (firstIdent.name === \"type\") {\n        specifierTypeKind = \"type\";\n      } else if (firstIdent.name === \"typeof\") {\n        specifierTypeKind = \"typeof\";\n      }\n\n      let isBinding = false;\n      if (this.isContextual(\"as\") && !this.isLookaheadContextual(\"as\")) {\n        const as_ident = this.parseIdentifier(true);\n        if (\n          specifierTypeKind !== null &&\n          !this.match(tt.name) &&\n          !this.state.type.keyword\n        ) {\n          // `import {type as ,` or `import {type as }`\n          specifier.imported = as_ident;\n          specifier.importKind = specifierTypeKind;\n          specifier.local = as_ident.__clone();\n        } else {\n          // `import {type as foo`\n          specifier.imported = firstIdent;\n          specifier.importKind = null;\n          specifier.local = this.parseIdentifier();\n        }\n      } else if (\n        specifierTypeKind !== null &&\n        (this.match(tt.name) || this.state.type.keyword)\n      ) {\n        // `import {type foo`\n        specifier.imported = this.parseIdentifier(true);\n        specifier.importKind = specifierTypeKind;\n        if (this.eatContextual(\"as\")) {\n          specifier.local = this.parseIdentifier();\n        } else {\n          isBinding = true;\n          specifier.local = specifier.imported.__clone();\n        }\n      } else {\n        isBinding = true;\n        specifier.imported = firstIdent;\n        specifier.importKind = null;\n        specifier.local = specifier.imported.__clone();\n      }\n\n      const nodeIsTypeImport = hasTypeImportKind(node);\n      const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n      if (nodeIsTypeImport && specifierIsTypeImport) {\n        this.raise(\n          firstIdentLoc,\n          FlowErrors.ImportTypeShorthandOnlyInPureImport,\n        );\n      }\n\n      if (nodeIsTypeImport || specifierIsTypeImport) {\n        this.checkReservedType(\n          specifier.local.name,\n          specifier.local.start,\n          /* declaration */ true,\n        );\n      }\n\n      if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) {\n        this.checkReservedWord(\n          specifier.local.name,\n          specifier.start,\n          true,\n          true,\n        );\n      }\n\n      this.checkLVal(\n        specifier.local,\n        BIND_LEXICAL,\n        undefined,\n        \"import specifier\",\n      );\n      node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n    }\n\n    // parse function type parameters - function foo<T>() {}\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      // $FlowFixMe\n      const kind = node.kind;\n      if (kind !== \"get\" && kind !== \"set\" && this.isRelational(\"<\")) {\n        node.typeParameters = this.flowParseTypeParameterDeclaration();\n      }\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // parse flow type annotations on variable declarator heads - let foo: string = bar\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (this.match(tt.colon)) {\n        decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n        this.state.noAnonFunctionType = true;\n        node.returnType = this.flowParseTypeAnnotation();\n        this.state.noAnonFunctionType = oldNoAnonFunctionType;\n      }\n\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    // todo description\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    // We need to support type parameter declarations for arrow functions. This\n    // is tricky. There are three situations we need to handle\n    //\n    // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n    //    fails, we'll try an arrow function. If that fails, we'll throw the JSX\n    //    error.\n    // 2. This is an arrow function. We'll parse the type parameter declaration,\n    //    parse the rest, make sure the rest is an arrow function, and go from\n    //    there\n    // 3. This is neither. Just call the super method\n    parseMaybeAssign(\n      noIn?: ?boolean,\n      refExpressionErrors?: ?ExpressionErrors,\n      afterLeftParse?: Function,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      let state = null;\n\n      let jsx;\n\n      if (\n        this.hasPlugin(\"jsx\") &&\n        (this.match(tt.jsxTagStart) || this.isRelational(\"<\"))\n      ) {\n        state = this.state.clone();\n\n        jsx = this.tryParse(\n          () =>\n            super.parseMaybeAssign(\n              noIn,\n              refExpressionErrors,\n              afterLeftParse,\n              refNeedsArrowPos,\n            ),\n          state,\n        );\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === tc.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === tc.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if ((jsx && jsx.error) || this.isRelational(\"<\")) {\n        state = state || this.state.clone();\n\n        let typeParameters;\n\n        const arrow = this.tryParse(() => {\n          typeParameters = this.flowParseTypeParameterDeclaration();\n\n          const arrowExpression = this.forwardNoArrowParamsConversionAt(\n            typeParameters,\n            () =>\n              super.parseMaybeAssign(\n                noIn,\n                refExpressionErrors,\n                afterLeftParse,\n                refNeedsArrowPos,\n              ),\n          );\n          arrowExpression.typeParameters = typeParameters;\n          this.resetStartLocationFromNode(arrowExpression, typeParameters);\n\n          return arrowExpression;\n        }, state);\n\n        const arrowExpression: ?N.ArrowFunctionExpression =\n          arrow.node && arrow.node.type === \"ArrowFunctionExpression\"\n            ? arrow.node\n            : null;\n\n        if (!arrow.error && arrowExpression) return arrowExpression;\n\n        // If we are here, both JSX and Flow parsing attemps failed.\n        // Give the precedence to the JSX error, except if JSX had an\n        // unrecoverable error while Flow didn't.\n        // If the error is recoverable, we can only re-report it if there is\n        // a node we can return.\n\n        if (jsx && jsx.node) {\n          /*:: invariant(jsx.failState) */\n          this.state = jsx.failState;\n          return jsx.node;\n        }\n\n        if (arrowExpression) {\n          /*:: invariant(arrow.failState) */\n          this.state = arrow.failState;\n          return arrowExpression;\n        }\n\n        if (jsx && jsx.thrown) throw jsx.error;\n        if (arrow.thrown) throw arrow.error;\n\n        /*:: invariant(typeParameters) */\n        throw this.raise(\n          typeParameters.start,\n          FlowErrors.UnexpectedTokenAfterTypeParameter,\n        );\n      }\n\n      return super.parseMaybeAssign(\n        noIn,\n        refExpressionErrors,\n        afterLeftParse,\n        refNeedsArrowPos,\n      );\n    }\n\n    // handle return types for arrow functions\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        const result = this.tryParse(() => {\n          const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n          this.state.noAnonFunctionType = true;\n\n          const typeNode = this.startNode();\n\n          [\n            // $FlowFixMe (destructuring not supported yet)\n            typeNode.typeAnnotation,\n            // $FlowFixMe (destructuring not supported yet)\n            node.predicate,\n          ] = this.flowParseTypeAndPredicateInitialiser();\n\n          this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n          if (this.canInsertSemicolon()) this.unexpected();\n          if (!this.match(tt.arrow)) this.unexpected();\n\n          return typeNode;\n        });\n\n        if (result.thrown) return null;\n        /*:: invariant(result.node) */\n\n        if (result.error) this.state = result.failState;\n\n        // assign after it is clear it is an arrow\n        node.returnType = result.node.typeAnnotation\n          ? this.finishNode(result.node, \"TypeAnnotation\")\n          : null;\n      }\n\n      return super.parseArrow(node);\n    }\n\n    shouldParseArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    setArrowFunctionParameters(\n      node: N.ArrowFunctionExpression,\n      params: N.Expression[],\n    ): void {\n      if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n        node.params = params;\n      } else {\n        super.setArrowFunctionParameters(node, params);\n      }\n    }\n\n    checkParams(\n      node: N.Function,\n      allowDuplicates: boolean,\n      isArrowFunction: ?boolean,\n    ): void {\n      if (\n        isArrowFunction &&\n        this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n      ) {\n        return;\n      }\n\n      return super.checkParams(...arguments);\n    }\n\n    parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n      return super.parseParenAndDistinguishExpression(\n        canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n      );\n    }\n\n    parseSubscripts(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls?: ?boolean,\n    ): N.Expression {\n      if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.state.noArrowAt.indexOf(startPos) !== -1\n      ) {\n        this.next();\n\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        base = this.finishNode(node, \"CallExpression\");\n      } else if (\n        base.type === \"Identifier\" &&\n        base.name === \"async\" &&\n        this.isRelational(\"<\")\n      ) {\n        const state = this.state.clone();\n        const arrow = this.tryParse(\n          abort =>\n            this.parseAsyncArrowWithTypeParameters(startPos, startLoc) ||\n            abort(),\n          state,\n        );\n\n        if (!arrow.error && !arrow.aborted) return arrow.node;\n\n        const result = this.tryParse(\n          () => super.parseSubscripts(base, startPos, startLoc, noCalls),\n          state,\n        );\n\n        if (result.node && !result.error) return result.node;\n\n        if (arrow.node) {\n          this.state = arrow.failState;\n          return arrow.node;\n        }\n\n        if (result.node) {\n          this.state = result.failState;\n          return result.node;\n        }\n\n        throw arrow.error || result.error;\n      }\n\n      return super.parseSubscripts(base, startPos, startLoc, noCalls);\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      subscriptState: N.ParseSubscriptState,\n    ): N.Expression {\n      if (this.match(tt.questionDot) && this.isLookaheadRelational(\"<\")) {\n        subscriptState.optionalChainMember = true;\n        if (noCalls) {\n          subscriptState.stop = true;\n          return base;\n        }\n        this.next();\n        const node: N.OptionalCallExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.callee = base;\n        node.typeArguments = this.flowParseTypeParameterInstantiation();\n        this.expect(tt.parenL);\n        // $FlowFixMe\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n        node.optional = true;\n        return this.finishCallExpression(node, /* optional */ true);\n      } else if (\n        !noCalls &&\n        this.shouldParseTypes() &&\n        this.isRelational(\"<\")\n      ) {\n        const node = this.startNodeAt(startPos, startLoc);\n        node.callee = base;\n\n        const result = this.tryParse(() => {\n          node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n          this.expect(tt.parenL);\n          node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n          if (subscriptState.optionalChainMember) node.optional = false;\n          return this.finishCallExpression(\n            node,\n            subscriptState.optionalChainMember,\n          );\n        });\n\n        if (result.node) {\n          if (result.error) this.state = result.failState;\n          return result.node;\n        }\n      }\n\n      return super.parseSubscript(\n        base,\n        startPos,\n        startLoc,\n        noCalls,\n        subscriptState,\n      );\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      let targs = null;\n      if (this.shouldParseTypes() && this.isRelational(\"<\")) {\n        targs = this.tryParse(() =>\n          this.flowParseTypeParameterInstantiationCallOrNew(),\n        ).node;\n      }\n      node.typeArguments = targs;\n\n      super.parseNewArguments(node);\n    }\n\n    parseAsyncArrowWithTypeParameters(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      const node = this.startNodeAt(startPos, startLoc);\n      this.parseFunctionParams(node);\n      if (!this.parseArrow(node)) return;\n      return this.parseArrowExpression(\n        node,\n        /* params */ undefined,\n        /* isAsync */ true,\n      );\n    }\n\n    readToken_mult_modulo(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.asterisk &&\n        next === charCodes.slash &&\n        this.state.hasFlowComment\n      ) {\n        this.state.hasFlowComment = false;\n        this.state.pos += 2;\n        this.nextToken();\n        return;\n      }\n\n      super.readToken_mult_modulo(code);\n    }\n\n    readToken_pipe_amp(code: number): void {\n      const next = this.input.charCodeAt(this.state.pos + 1);\n      if (\n        code === charCodes.verticalBar &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        // '|}'\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      super.readToken_pipe_amp(code);\n    }\n\n    parseTopLevel(file: N.File, program: N.Program): N.File {\n      const fileNode = super.parseTopLevel(file, program);\n      if (this.state.hasFlowComment) {\n        this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment);\n      }\n      return fileNode;\n    }\n\n    skipBlockComment(): void {\n      if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n        if (this.state.hasFlowComment) {\n          this.unexpected(null, FlowErrors.NestedFlowComment);\n        }\n        this.hasFlowCommentCompletion();\n        this.state.pos += this.skipFlowComment();\n        this.state.hasFlowComment = true;\n        return;\n      }\n\n      if (this.state.hasFlowComment) {\n        const end = this.input.indexOf(\"*-/\", (this.state.pos += 2));\n        if (end === -1) {\n          throw this.raise(this.state.pos - 2, Errors.UnterminatedComment);\n        }\n        this.state.pos = end + 3;\n        return;\n      }\n\n      super.skipBlockComment();\n    }\n\n    skipFlowComment(): number | boolean {\n      const { pos } = this.state;\n      let shiftToFirstNonWhiteSpace = 2;\n      while (\n        [charCodes.space, charCodes.tab].includes(\n          this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n        )\n      ) {\n        shiftToFirstNonWhiteSpace++;\n      }\n\n      const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n      const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n      if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n        return shiftToFirstNonWhiteSpace + 2; // check for /*::\n      }\n      if (\n        this.input.slice(\n          shiftToFirstNonWhiteSpace + pos,\n          shiftToFirstNonWhiteSpace + pos + 12,\n        ) === \"flow-include\"\n      ) {\n        return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n      }\n      if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n        return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n      }\n      return false;\n    }\n\n    hasFlowCommentCompletion(): void {\n      const end = this.input.indexOf(\"*/\", this.state.pos);\n      if (end === -1) {\n        throw this.raise(this.state.pos, Errors.UnterminatedComment);\n      }\n    }\n\n    // Flow enum parsing\n\n    flowEnumErrorBooleanMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumBooleanMemberNotInitialized,\n        memberName,\n        enumName,\n      );\n    }\n\n    flowEnumErrorInvalidMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      const suggestion = memberName[0].toUpperCase() + memberName.slice(1);\n      this.raise(\n        pos,\n        FlowErrors.EnumInvalidMemberName,\n        memberName,\n        suggestion,\n        enumName,\n      );\n    }\n\n    flowEnumErrorDuplicateMemberName(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName);\n    }\n\n    flowEnumErrorInconsistentMemberValues(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName);\n    }\n\n    flowEnumErrorInvalidExplicitType(\n      pos: number,\n      {\n        enumName,\n        suppliedType,\n      }: { enumName: string, suppliedType: null | string },\n    ) {\n      return this.raise(\n        pos,\n        suppliedType === null\n          ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied\n          : FlowErrors.EnumInvalidExplicitType,\n        enumName,\n        suppliedType,\n      );\n    }\n\n    flowEnumErrorInvalidMemberInitializer(\n      pos: number,\n      { enumName, explicitType, memberName }: EnumContext,\n    ) {\n      let message = null;\n      switch (explicitType) {\n        case \"boolean\":\n        case \"number\":\n        case \"string\":\n          message = FlowErrors.EnumInvalidMemberInitializerPrimaryType;\n          break;\n        case \"symbol\":\n          message = FlowErrors.EnumInvalidMemberInitializerSymbolType;\n          break;\n        default:\n          // null\n          message = FlowErrors.EnumInvalidMemberInitializerUnknownType;\n      }\n      return this.raise(pos, message, enumName, memberName, explicitType);\n    }\n\n    flowEnumErrorNumberMemberNotInitialized(\n      pos: number,\n      { enumName, memberName }: { enumName: string, memberName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumNumberMemberNotInitialized,\n        enumName,\n        memberName,\n      );\n    }\n\n    flowEnumErrorStringMemberInconsistentlyInitailized(\n      pos: number,\n      { enumName }: { enumName: string },\n    ): void {\n      this.raise(\n        pos,\n        FlowErrors.EnumStringMemberInconsistentlyInitailized,\n        enumName,\n      );\n    }\n\n    flowEnumMemberInit(): EnumMemberInit {\n      const startPos = this.state.start;\n      const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n      switch (this.state.type) {\n        case tt.num: {\n          const literal = this.parseLiteral(this.state.value, \"NumericLiteral\");\n          if (endOfInit()) {\n            return { type: \"number\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt.string: {\n          const literal = this.parseLiteral(this.state.value, \"StringLiteral\");\n          if (endOfInit()) {\n            return { type: \"string\", pos: literal.start, value: literal };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        case tt._true:\n        case tt._false: {\n          const literal = this.parseBooleanLiteral();\n          if (endOfInit()) {\n            return {\n              type: \"boolean\",\n              pos: literal.start,\n              value: literal,\n            };\n          }\n          return { type: \"invalid\", pos: startPos };\n        }\n        default:\n          return { type: \"invalid\", pos: startPos };\n      }\n    }\n\n    flowEnumMemberRaw(): { id: N.Node, init: EnumMemberInit } {\n      const pos = this.state.start;\n      const id = this.parseIdentifier(true);\n      const init = this.eat(tt.eq)\n        ? this.flowEnumMemberInit()\n        : { type: \"none\", pos };\n      return { id, init };\n    }\n\n    flowEnumCheckExplicitTypeMismatch(\n      pos: number,\n      context: EnumContext,\n      expectedType: EnumExplicitType,\n    ): void {\n      const { explicitType } = context;\n      if (explicitType === null) {\n        return;\n      }\n      if (explicitType !== expectedType) {\n        this.flowEnumErrorInvalidMemberInitializer(pos, context);\n      }\n    }\n\n    flowEnumMembers({\n      enumName,\n      explicitType,\n    }: {\n      enumName: string,\n      explicitType: EnumExplicitType,\n    }): {|\n      booleanMembers: Array<N.Node>,\n      numberMembers: Array<N.Node>,\n      stringMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n    |} {\n      const seenNames = new Set();\n      const members = {\n        booleanMembers: [],\n        numberMembers: [],\n        stringMembers: [],\n        defaultedMembers: [],\n      };\n      while (!this.match(tt.braceR)) {\n        const memberNode = this.startNode();\n        const { id, init } = this.flowEnumMemberRaw();\n        const memberName = id.name;\n        if (memberName === \"\") {\n          continue;\n        }\n        if (/^[a-z]/.test(memberName)) {\n          this.flowEnumErrorInvalidMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        if (seenNames.has(memberName)) {\n          this.flowEnumErrorDuplicateMemberName(id.start, {\n            enumName,\n            memberName,\n          });\n        }\n        seenNames.add(memberName);\n        const context = { enumName, explicitType, memberName };\n        memberNode.id = id;\n        switch (init.type) {\n          case \"boolean\": {\n            this.flowEnumCheckExplicitTypeMismatch(\n              init.pos,\n              context,\n              \"boolean\",\n            );\n            memberNode.init = init.value;\n            members.booleanMembers.push(\n              this.finishNode(memberNode, \"EnumBooleanMember\"),\n            );\n            break;\n          }\n          case \"number\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"number\");\n            memberNode.init = init.value;\n            members.numberMembers.push(\n              this.finishNode(memberNode, \"EnumNumberMember\"),\n            );\n            break;\n          }\n          case \"string\": {\n            this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"string\");\n            memberNode.init = init.value;\n            members.stringMembers.push(\n              this.finishNode(memberNode, \"EnumStringMember\"),\n            );\n            break;\n          }\n          case \"invalid\": {\n            throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context);\n          }\n          case \"none\": {\n            switch (explicitType) {\n              case \"boolean\":\n                this.flowEnumErrorBooleanMemberNotInitialized(\n                  init.pos,\n                  context,\n                );\n                break;\n              case \"number\":\n                this.flowEnumErrorNumberMemberNotInitialized(init.pos, context);\n                break;\n              default:\n                members.defaultedMembers.push(\n                  this.finishNode(memberNode, \"EnumDefaultedMember\"),\n                );\n            }\n          }\n        }\n\n        if (!this.match(tt.braceR)) {\n          this.expect(tt.comma);\n        }\n      }\n      return members;\n    }\n\n    flowEnumStringMembers(\n      initializedMembers: Array<N.Node>,\n      defaultedMembers: Array<N.Node>,\n      { enumName }: { enumName: string },\n    ): Array<N.Node> {\n      if (initializedMembers.length === 0) {\n        return defaultedMembers;\n      } else if (defaultedMembers.length === 0) {\n        return initializedMembers;\n      } else if (defaultedMembers.length > initializedMembers.length) {\n        for (const member of initializedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return defaultedMembers;\n      } else {\n        for (const member of defaultedMembers) {\n          this.flowEnumErrorStringMemberInconsistentlyInitailized(\n            member.start,\n            { enumName },\n          );\n        }\n        return initializedMembers;\n      }\n    }\n\n    flowEnumParseExplicitType({\n      enumName,\n    }: {\n      enumName: string,\n    }): EnumExplicitType {\n      if (this.eatContextual(\"of\")) {\n        if (!this.match(tt.name)) {\n          throw this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: null,\n          });\n        }\n\n        const { value } = this.state;\n        this.next();\n\n        if (\n          value !== \"boolean\" &&\n          value !== \"number\" &&\n          value !== \"string\" &&\n          value !== \"symbol\"\n        ) {\n          this.flowEnumErrorInvalidExplicitType(this.state.start, {\n            enumName,\n            suppliedType: value,\n          });\n        }\n\n        return value;\n      }\n      return null;\n    }\n\n    flowEnumBody(node: N.Node, { enumName, nameLoc }): N.Node {\n      const explicitType = this.flowEnumParseExplicitType({ enumName });\n      this.expect(tt.braceL);\n      const members = this.flowEnumMembers({ enumName, explicitType });\n\n      switch (explicitType) {\n        case \"boolean\":\n          node.explicitType = true;\n          node.members = members.booleanMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumBooleanBody\");\n        case \"number\":\n          node.explicitType = true;\n          node.members = members.numberMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumNumberBody\");\n        case \"string\":\n          node.explicitType = true;\n          node.members = this.flowEnumStringMembers(\n            members.stringMembers,\n            members.defaultedMembers,\n            { enumName },\n          );\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumStringBody\");\n        case \"symbol\":\n          node.members = members.defaultedMembers;\n          this.expect(tt.braceR);\n          return this.finishNode(node, \"EnumSymbolBody\");\n        default: {\n          // `explicitType` is `null`\n          const empty = () => {\n            node.members = [];\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          };\n          node.explicitType = false;\n\n          const boolsLen = members.booleanMembers.length;\n          const numsLen = members.numberMembers.length;\n          const strsLen = members.stringMembers.length;\n          const defaultedLen = members.defaultedMembers.length;\n\n          if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n            return empty();\n          } else if (!boolsLen && !numsLen) {\n            node.members = this.flowEnumStringMembers(\n              members.stringMembers,\n              members.defaultedMembers,\n              { enumName },\n            );\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumStringBody\");\n          } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorBooleanMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.booleanMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumBooleanBody\");\n          } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n            for (const member of members.defaultedMembers) {\n              this.flowEnumErrorNumberMemberNotInitialized(member.start, {\n                enumName,\n                memberName: member.id.name,\n              });\n            }\n            node.members = members.numberMembers;\n            this.expect(tt.braceR);\n            return this.finishNode(node, \"EnumNumberBody\");\n          } else {\n            this.flowEnumErrorInconsistentMemberValues(nameLoc, { enumName });\n            return empty();\n          }\n        }\n      }\n    }\n\n    flowParseEnumDeclaration(node: N.Node): N.Node {\n      const id = this.parseIdentifier();\n      node.id = id;\n      node.body = this.flowEnumBody(this.startNode(), {\n        enumName: id.name,\n        nameLoc: id.start,\n      });\n      return this.finishNode(node, \"EnumDeclaration\");\n    }\n  };\n","// @flow\n\nconst entities: { [name: string]: string } = {\n  quot: \"\\u0022\",\n  amp: \"&\",\n  apos: \"\\u0027\",\n  lt: \"<\",\n  gt: \">\",\n  nbsp: \"\\u00A0\",\n  iexcl: \"\\u00A1\",\n  cent: \"\\u00A2\",\n  pound: \"\\u00A3\",\n  curren: \"\\u00A4\",\n  yen: \"\\u00A5\",\n  brvbar: \"\\u00A6\",\n  sect: \"\\u00A7\",\n  uml: \"\\u00A8\",\n  copy: \"\\u00A9\",\n  ordf: \"\\u00AA\",\n  laquo: \"\\u00AB\",\n  not: \"\\u00AC\",\n  shy: \"\\u00AD\",\n  reg: \"\\u00AE\",\n  macr: \"\\u00AF\",\n  deg: \"\\u00B0\",\n  plusmn: \"\\u00B1\",\n  sup2: \"\\u00B2\",\n  sup3: \"\\u00B3\",\n  acute: \"\\u00B4\",\n  micro: \"\\u00B5\",\n  para: \"\\u00B6\",\n  middot: \"\\u00B7\",\n  cedil: \"\\u00B8\",\n  sup1: \"\\u00B9\",\n  ordm: \"\\u00BA\",\n  raquo: \"\\u00BB\",\n  frac14: \"\\u00BC\",\n  frac12: \"\\u00BD\",\n  frac34: \"\\u00BE\",\n  iquest: \"\\u00BF\",\n  Agrave: \"\\u00C0\",\n  Aacute: \"\\u00C1\",\n  Acirc: \"\\u00C2\",\n  Atilde: \"\\u00C3\",\n  Auml: \"\\u00C4\",\n  Aring: \"\\u00C5\",\n  AElig: \"\\u00C6\",\n  Ccedil: \"\\u00C7\",\n  Egrave: \"\\u00C8\",\n  Eacute: \"\\u00C9\",\n  Ecirc: \"\\u00CA\",\n  Euml: \"\\u00CB\",\n  Igrave: \"\\u00CC\",\n  Iacute: \"\\u00CD\",\n  Icirc: \"\\u00CE\",\n  Iuml: \"\\u00CF\",\n  ETH: \"\\u00D0\",\n  Ntilde: \"\\u00D1\",\n  Ograve: \"\\u00D2\",\n  Oacute: \"\\u00D3\",\n  Ocirc: \"\\u00D4\",\n  Otilde: \"\\u00D5\",\n  Ouml: \"\\u00D6\",\n  times: \"\\u00D7\",\n  Oslash: \"\\u00D8\",\n  Ugrave: \"\\u00D9\",\n  Uacute: \"\\u00DA\",\n  Ucirc: \"\\u00DB\",\n  Uuml: \"\\u00DC\",\n  Yacute: \"\\u00DD\",\n  THORN: \"\\u00DE\",\n  szlig: \"\\u00DF\",\n  agrave: \"\\u00E0\",\n  aacute: \"\\u00E1\",\n  acirc: \"\\u00E2\",\n  atilde: \"\\u00E3\",\n  auml: \"\\u00E4\",\n  aring: \"\\u00E5\",\n  aelig: \"\\u00E6\",\n  ccedil: \"\\u00E7\",\n  egrave: \"\\u00E8\",\n  eacute: \"\\u00E9\",\n  ecirc: \"\\u00EA\",\n  euml: \"\\u00EB\",\n  igrave: \"\\u00EC\",\n  iacute: \"\\u00ED\",\n  icirc: \"\\u00EE\",\n  iuml: \"\\u00EF\",\n  eth: \"\\u00F0\",\n  ntilde: \"\\u00F1\",\n  ograve: \"\\u00F2\",\n  oacute: \"\\u00F3\",\n  ocirc: \"\\u00F4\",\n  otilde: \"\\u00F5\",\n  ouml: \"\\u00F6\",\n  divide: \"\\u00F7\",\n  oslash: \"\\u00F8\",\n  ugrave: \"\\u00F9\",\n  uacute: \"\\u00FA\",\n  ucirc: \"\\u00FB\",\n  uuml: \"\\u00FC\",\n  yacute: \"\\u00FD\",\n  thorn: \"\\u00FE\",\n  yuml: \"\\u00FF\",\n  OElig: \"\\u0152\",\n  oelig: \"\\u0153\",\n  Scaron: \"\\u0160\",\n  scaron: \"\\u0161\",\n  Yuml: \"\\u0178\",\n  fnof: \"\\u0192\",\n  circ: \"\\u02C6\",\n  tilde: \"\\u02DC\",\n  Alpha: \"\\u0391\",\n  Beta: \"\\u0392\",\n  Gamma: \"\\u0393\",\n  Delta: \"\\u0394\",\n  Epsilon: \"\\u0395\",\n  Zeta: \"\\u0396\",\n  Eta: \"\\u0397\",\n  Theta: \"\\u0398\",\n  Iota: \"\\u0399\",\n  Kappa: \"\\u039A\",\n  Lambda: \"\\u039B\",\n  Mu: \"\\u039C\",\n  Nu: \"\\u039D\",\n  Xi: \"\\u039E\",\n  Omicron: \"\\u039F\",\n  Pi: \"\\u03A0\",\n  Rho: \"\\u03A1\",\n  Sigma: \"\\u03A3\",\n  Tau: \"\\u03A4\",\n  Upsilon: \"\\u03A5\",\n  Phi: \"\\u03A6\",\n  Chi: \"\\u03A7\",\n  Psi: \"\\u03A8\",\n  Omega: \"\\u03A9\",\n  alpha: \"\\u03B1\",\n  beta: \"\\u03B2\",\n  gamma: \"\\u03B3\",\n  delta: \"\\u03B4\",\n  epsilon: \"\\u03B5\",\n  zeta: \"\\u03B6\",\n  eta: \"\\u03B7\",\n  theta: \"\\u03B8\",\n  iota: \"\\u03B9\",\n  kappa: \"\\u03BA\",\n  lambda: \"\\u03BB\",\n  mu: \"\\u03BC\",\n  nu: \"\\u03BD\",\n  xi: \"\\u03BE\",\n  omicron: \"\\u03BF\",\n  pi: \"\\u03C0\",\n  rho: \"\\u03C1\",\n  sigmaf: \"\\u03C2\",\n  sigma: \"\\u03C3\",\n  tau: \"\\u03C4\",\n  upsilon: \"\\u03C5\",\n  phi: \"\\u03C6\",\n  chi: \"\\u03C7\",\n  psi: \"\\u03C8\",\n  omega: \"\\u03C9\",\n  thetasym: \"\\u03D1\",\n  upsih: \"\\u03D2\",\n  piv: \"\\u03D6\",\n  ensp: \"\\u2002\",\n  emsp: \"\\u2003\",\n  thinsp: \"\\u2009\",\n  zwnj: \"\\u200C\",\n  zwj: \"\\u200D\",\n  lrm: \"\\u200E\",\n  rlm: \"\\u200F\",\n  ndash: \"\\u2013\",\n  mdash: \"\\u2014\",\n  lsquo: \"\\u2018\",\n  rsquo: \"\\u2019\",\n  sbquo: \"\\u201A\",\n  ldquo: \"\\u201C\",\n  rdquo: \"\\u201D\",\n  bdquo: \"\\u201E\",\n  dagger: \"\\u2020\",\n  Dagger: \"\\u2021\",\n  bull: \"\\u2022\",\n  hellip: \"\\u2026\",\n  permil: \"\\u2030\",\n  prime: \"\\u2032\",\n  Prime: \"\\u2033\",\n  lsaquo: \"\\u2039\",\n  rsaquo: \"\\u203A\",\n  oline: \"\\u203E\",\n  frasl: \"\\u2044\",\n  euro: \"\\u20AC\",\n  image: \"\\u2111\",\n  weierp: \"\\u2118\",\n  real: \"\\u211C\",\n  trade: \"\\u2122\",\n  alefsym: \"\\u2135\",\n  larr: \"\\u2190\",\n  uarr: \"\\u2191\",\n  rarr: \"\\u2192\",\n  darr: \"\\u2193\",\n  harr: \"\\u2194\",\n  crarr: \"\\u21B5\",\n  lArr: \"\\u21D0\",\n  uArr: \"\\u21D1\",\n  rArr: \"\\u21D2\",\n  dArr: \"\\u21D3\",\n  hArr: \"\\u21D4\",\n  forall: \"\\u2200\",\n  part: \"\\u2202\",\n  exist: \"\\u2203\",\n  empty: \"\\u2205\",\n  nabla: \"\\u2207\",\n  isin: \"\\u2208\",\n  notin: \"\\u2209\",\n  ni: \"\\u220B\",\n  prod: \"\\u220F\",\n  sum: \"\\u2211\",\n  minus: \"\\u2212\",\n  lowast: \"\\u2217\",\n  radic: \"\\u221A\",\n  prop: \"\\u221D\",\n  infin: \"\\u221E\",\n  ang: \"\\u2220\",\n  and: \"\\u2227\",\n  or: \"\\u2228\",\n  cap: \"\\u2229\",\n  cup: \"\\u222A\",\n  int: \"\\u222B\",\n  there4: \"\\u2234\",\n  sim: \"\\u223C\",\n  cong: \"\\u2245\",\n  asymp: \"\\u2248\",\n  ne: \"\\u2260\",\n  equiv: \"\\u2261\",\n  le: \"\\u2264\",\n  ge: \"\\u2265\",\n  sub: \"\\u2282\",\n  sup: \"\\u2283\",\n  nsub: \"\\u2284\",\n  sube: \"\\u2286\",\n  supe: \"\\u2287\",\n  oplus: \"\\u2295\",\n  otimes: \"\\u2297\",\n  perp: \"\\u22A5\",\n  sdot: \"\\u22C5\",\n  lceil: \"\\u2308\",\n  rceil: \"\\u2309\",\n  lfloor: \"\\u230A\",\n  rfloor: \"\\u230B\",\n  lang: \"\\u2329\",\n  rang: \"\\u232A\",\n  loz: \"\\u25CA\",\n  spades: \"\\u2660\",\n  clubs: \"\\u2663\",\n  hearts: \"\\u2665\",\n  diams: \"\\u2666\",\n};\nexport default entities;\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml\";\nimport type Parser from \"../../parser\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { TokenType, types as tt } from \"../../tokenizer/types\";\nimport { TokContext, types as tc } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier\";\nimport type { Position } from \"../../util/location\";\nimport { isNewLine } from \"../../util/whitespace\";\nimport { Errors } from \"../../parser/location\";\n\nconst HEX_NUMBER = /^[\\da-fA-F]+$/;\nconst DECIMAL_NUMBER = /^\\d+$/;\n\nconst JsxErrors = Object.freeze({\n  AttributeIsEmpty:\n    \"JSX attributes must only be assigned a non-empty expression\",\n  MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>\",\n  MissingClosingTagElement: \"Expected corresponding JSX closing tag for <%0>\",\n  UnsupportedJsxValue:\n    \"JSX value should be either an expression or a quoted JSX text\",\n  UnterminatedJsxContent: \"Unterminated JSX contents\",\n  UnwrappedAdjacentJSXElements:\n    \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\",\n});\n\n// Be aware that this file is always executed and not only when the plugin is enabled.\n// Therefore this contexts and tokens do always exist.\ntc.j_oTag = new TokContext(\"<tag\", false);\ntc.j_cTag = new TokContext(\"</tag\", false);\ntc.j_expr = new TokContext(\"<tag>...</tag>\", true, true);\n\ntt.jsxName = new TokenType(\"jsxName\");\ntt.jsxText = new TokenType(\"jsxText\", { beforeExpr: true });\ntt.jsxTagStart = new TokenType(\"jsxTagStart\", { startsExpr: true });\ntt.jsxTagEnd = new TokenType(\"jsxTagEnd\");\n\ntt.jsxTagStart.updateContext = function() {\n  this.state.context.push(tc.j_expr); // treat as beginning of JSX expression\n  this.state.context.push(tc.j_oTag); // start opening tag context\n  this.state.exprAllowed = false;\n};\n\ntt.jsxTagEnd.updateContext = function(prevType) {\n  const out = this.state.context.pop();\n  if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n    this.state.context.pop();\n    this.state.exprAllowed = this.curContext() === tc.j_expr;\n  } else {\n    this.state.exprAllowed = true;\n  }\n};\n\nfunction isFragment(object: ?N.JSXElement): boolean {\n  return object\n    ? object.type === \"JSXOpeningFragment\" ||\n        object.type === \"JSXClosingFragment\"\n    : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n  object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n  if (object.type === \"JSXIdentifier\") {\n    return object.name;\n  }\n\n  if (object.type === \"JSXNamespacedName\") {\n    return object.namespace.name + \":\" + object.name.name;\n  }\n\n  if (object.type === \"JSXMemberExpression\") {\n    return (\n      getQualifiedJSXName(object.object) +\n      \".\" +\n      getQualifiedJSXName(object.property)\n    );\n  }\n\n  // istanbul ignore next\n  throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    // Reads inline JSX contents token.\n\n    jsxReadToken(): void {\n      let out = \"\";\n      let chunkStart = this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n\n        switch (ch) {\n          case charCodes.lessThan:\n          case charCodes.leftCurlyBrace:\n            if (this.state.pos === this.state.start) {\n              if (ch === charCodes.lessThan && this.state.exprAllowed) {\n                ++this.state.pos;\n                return this.finishToken(tt.jsxTagStart);\n              }\n              return super.getTokenFromCode(ch);\n            }\n            out += this.input.slice(chunkStart, this.state.pos);\n            return this.finishToken(tt.jsxText, out);\n\n          case charCodes.ampersand:\n            out += this.input.slice(chunkStart, this.state.pos);\n            out += this.jsxReadEntity();\n            chunkStart = this.state.pos;\n            break;\n\n          default:\n            if (isNewLine(ch)) {\n              out += this.input.slice(chunkStart, this.state.pos);\n              out += this.jsxReadNewLine(true);\n              chunkStart = this.state.pos;\n            } else {\n              ++this.state.pos;\n            }\n        }\n      }\n    }\n\n    jsxReadNewLine(normalizeCRLF: boolean): string {\n      const ch = this.input.charCodeAt(this.state.pos);\n      let out;\n      ++this.state.pos;\n      if (\n        ch === charCodes.carriageReturn &&\n        this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n      ) {\n        ++this.state.pos;\n        out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n      } else {\n        out = String.fromCharCode(ch);\n      }\n      ++this.state.curLine;\n      this.state.lineStart = this.state.pos;\n\n      return out;\n    }\n\n    jsxReadString(quote: number): void {\n      let out = \"\";\n      let chunkStart = ++this.state.pos;\n      for (;;) {\n        if (this.state.pos >= this.length) {\n          throw this.raise(this.state.start, Errors.UnterminatedString);\n        }\n\n        const ch = this.input.charCodeAt(this.state.pos);\n        if (ch === quote) break;\n        if (ch === charCodes.ampersand) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadEntity();\n          chunkStart = this.state.pos;\n        } else if (isNewLine(ch)) {\n          out += this.input.slice(chunkStart, this.state.pos);\n          out += this.jsxReadNewLine(false);\n          chunkStart = this.state.pos;\n        } else {\n          ++this.state.pos;\n        }\n      }\n      out += this.input.slice(chunkStart, this.state.pos++);\n      return this.finishToken(tt.string, out);\n    }\n\n    jsxReadEntity(): string {\n      let str = \"\";\n      let count = 0;\n      let entity;\n      let ch = this.input[this.state.pos];\n\n      const startPos = ++this.state.pos;\n      while (this.state.pos < this.length && count++ < 10) {\n        ch = this.input[this.state.pos++];\n        if (ch === \";\") {\n          if (str[0] === \"#\") {\n            if (str[1] === \"x\") {\n              str = str.substr(2);\n              if (HEX_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 16));\n              }\n            } else {\n              str = str.substr(1);\n              if (DECIMAL_NUMBER.test(str)) {\n                entity = String.fromCodePoint(parseInt(str, 10));\n              }\n            }\n          } else {\n            entity = XHTMLEntities[str];\n          }\n          break;\n        }\n        str += ch;\n      }\n      if (!entity) {\n        this.state.pos = startPos;\n        return \"&\";\n      }\n      return entity;\n    }\n\n    // Read a JSX identifier (valid tag or attribute name).\n    //\n    // Optimized version since JSX identifiers can\"t contain\n    // escape characters and so can be read as single slice.\n    // Also assumes that first character was already checked\n    // by isIdentifierStart in readToken.\n\n    jsxReadWord(): void {\n      let ch;\n      const start = this.state.pos;\n      do {\n        ch = this.input.charCodeAt(++this.state.pos);\n      } while (isIdentifierChar(ch) || ch === charCodes.dash);\n      return this.finishToken(\n        tt.jsxName,\n        this.input.slice(start, this.state.pos),\n      );\n    }\n\n    // Parse next token as JSX identifier\n\n    jsxParseIdentifier(): N.JSXIdentifier {\n      const node = this.startNode();\n      if (this.match(tt.jsxName)) {\n        node.name = this.state.value;\n      } else if (this.state.type.keyword) {\n        node.name = this.state.type.keyword;\n      } else {\n        this.unexpected();\n      }\n      this.next();\n      return this.finishNode(node, \"JSXIdentifier\");\n    }\n\n    // Parse namespaced identifier.\n\n    jsxParseNamespacedName(): N.JSXNamespacedName {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      const name = this.jsxParseIdentifier();\n      if (!this.eat(tt.colon)) return name;\n\n      const node = this.startNodeAt(startPos, startLoc);\n      node.namespace = name;\n      node.name = this.jsxParseIdentifier();\n      return this.finishNode(node, \"JSXNamespacedName\");\n    }\n\n    // Parses element name in any form - namespaced, member\n    // or single identifier.\n\n    jsxParseElementName():\n      | N.JSXIdentifier\n      | N.JSXNamespacedName\n      | N.JSXMemberExpression {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let node = this.jsxParseNamespacedName();\n      if (node.type === \"JSXNamespacedName\") {\n        return node;\n      }\n      while (this.eat(tt.dot)) {\n        const newNode = this.startNodeAt(startPos, startLoc);\n        newNode.object = node;\n        newNode.property = this.jsxParseIdentifier();\n        node = this.finishNode(newNode, \"JSXMemberExpression\");\n      }\n      return node;\n    }\n\n    // Parses any type of JSX attribute value.\n\n    jsxParseAttributeValue(): N.Expression {\n      let node;\n      switch (this.state.type) {\n        case tt.braceL:\n          node = this.startNode();\n          this.next();\n          node = this.jsxParseExpressionContainer(node);\n          if (node.expression.type === \"JSXEmptyExpression\") {\n            this.raise(node.start, JsxErrors.AttributeIsEmpty);\n          }\n          return node;\n\n        case tt.jsxTagStart:\n        case tt.string:\n          return this.parseExprAtom();\n\n        default:\n          throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue);\n      }\n    }\n\n    // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n    // and so it should start at the end of last read token (left brace) and finish\n    // at the beginning of the next one (right brace).\n\n    jsxParseEmptyExpression(): N.JSXEmptyExpression {\n      const node = this.startNodeAt(\n        this.state.lastTokEnd,\n        this.state.lastTokEndLoc,\n      );\n      return this.finishNodeAt(\n        node,\n        \"JSXEmptyExpression\",\n        this.state.start,\n        this.state.startLoc,\n      );\n    }\n\n    // Parse JSX spread child\n\n    jsxParseSpreadChild(node: N.JSXSpreadChild): N.JSXSpreadChild {\n      this.next(); // ellipsis\n      node.expression = this.parseExpression();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"JSXSpreadChild\");\n    }\n\n    // Parses JSX expression enclosed into curly brackets.\n\n    jsxParseExpressionContainer(\n      node: N.JSXExpressionContainer,\n    ): N.JSXExpressionContainer {\n      if (this.match(tt.braceR)) {\n        node.expression = this.jsxParseEmptyExpression();\n      } else {\n        node.expression = this.parseExpression();\n      }\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"JSXExpressionContainer\");\n    }\n\n    // Parses following JSX attribute name-value pair.\n\n    jsxParseAttribute(): N.JSXAttribute {\n      const node = this.startNode();\n      if (this.eat(tt.braceL)) {\n        this.expect(tt.ellipsis);\n        node.argument = this.parseMaybeAssign();\n        this.expect(tt.braceR);\n        return this.finishNode(node, \"JSXSpreadAttribute\");\n      }\n      node.name = this.jsxParseNamespacedName();\n      node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n      return this.finishNode(node, \"JSXAttribute\");\n    }\n\n    // Parses JSX opening tag starting after \"<\".\n\n    jsxParseOpeningElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXOpeningElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXOpeningFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      return this.jsxParseOpeningElementAfterName(node);\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      const attributes: N.JSXAttribute[] = [];\n      while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n        attributes.push(this.jsxParseAttribute());\n      }\n      node.attributes = attributes;\n      node.selfClosing = this.eat(tt.slash);\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXOpeningElement\");\n    }\n\n    // Parses JSX closing tag starting after \"</\".\n\n    jsxParseClosingElementAt(\n      startPos: number,\n      startLoc: Position,\n    ): N.JSXClosingElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      if (this.match(tt.jsxTagEnd)) {\n        this.expect(tt.jsxTagEnd);\n        return this.finishNode(node, \"JSXClosingFragment\");\n      }\n      node.name = this.jsxParseElementName();\n      this.expect(tt.jsxTagEnd);\n      return this.finishNode(node, \"JSXClosingElement\");\n    }\n\n    // Parses entire JSX element, including it\"s opening tag\n    // (starting after \"<\"), attributes, contents and closing tag.\n\n    jsxParseElementAt(startPos: number, startLoc: Position): N.JSXElement {\n      const node = this.startNodeAt(startPos, startLoc);\n      const children = [];\n      const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc);\n      let closingElement = null;\n\n      if (!openingElement.selfClosing) {\n        contents: for (;;) {\n          switch (this.state.type) {\n            case tt.jsxTagStart:\n              startPos = this.state.start;\n              startLoc = this.state.startLoc;\n              this.next();\n              if (this.eat(tt.slash)) {\n                closingElement = this.jsxParseClosingElementAt(\n                  startPos,\n                  startLoc,\n                );\n                break contents;\n              }\n              children.push(this.jsxParseElementAt(startPos, startLoc));\n              break;\n\n            case tt.jsxText:\n              children.push(this.parseExprAtom());\n              break;\n\n            case tt.braceL: {\n              const node = this.startNode();\n              this.next();\n              if (this.match(tt.ellipsis)) {\n                children.push(this.jsxParseSpreadChild(node));\n              } else {\n                children.push(this.jsxParseExpressionContainer(node));\n              }\n\n              break;\n            }\n            // istanbul ignore next - should never happen\n            default:\n              throw this.unexpected();\n          }\n        }\n\n        if (isFragment(openingElement) && !isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagFragment,\n          );\n        } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n          this.raise(\n            // $FlowIgnore\n            closingElement.start,\n            JsxErrors.MissingClosingTagElement,\n            getQualifiedJSXName(openingElement.name),\n          );\n        } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n          if (\n            // $FlowIgnore\n            getQualifiedJSXName(closingElement.name) !==\n            getQualifiedJSXName(openingElement.name)\n          ) {\n            this.raise(\n              // $FlowIgnore\n              closingElement.start,\n              JsxErrors.MissingClosingTagElement,\n              getQualifiedJSXName(openingElement.name),\n            );\n          }\n        }\n      }\n\n      if (isFragment(openingElement)) {\n        node.openingFragment = openingElement;\n        node.closingFragment = closingElement;\n      } else {\n        node.openingElement = openingElement;\n        node.closingElement = closingElement;\n      }\n      node.children = children;\n      if (this.isRelational(\"<\")) {\n        throw this.raise(\n          this.state.start,\n          JsxErrors.UnwrappedAdjacentJSXElements,\n        );\n      }\n\n      return isFragment(openingElement)\n        ? this.finishNode(node, \"JSXFragment\")\n        : this.finishNode(node, \"JSXElement\");\n    }\n\n    // Parses entire JSX element from current position.\n\n    jsxParseElement(): N.JSXElement {\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      this.next();\n      return this.jsxParseElementAt(startPos, startLoc);\n    }\n\n    // ==================================\n    // Overrides\n    // ==================================\n\n    parseExprAtom(refExpressionErrors: ?ExpressionErrors): N.Expression {\n      if (this.match(tt.jsxText)) {\n        return this.parseLiteral(this.state.value, \"JSXText\");\n      } else if (this.match(tt.jsxTagStart)) {\n        return this.jsxParseElement();\n      } else if (\n        this.isRelational(\"<\") &&\n        this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n      ) {\n        // In case we encounter an lt token here it will always be the start of\n        // jsx as the lt sign is not allowed in places that expect an expression\n        this.finishToken(tt.jsxTagStart);\n        return this.jsxParseElement();\n      } else {\n        return super.parseExprAtom(refExpressionErrors);\n      }\n    }\n\n    getTokenFromCode(code: number): void {\n      if (this.state.inPropertyName) return super.getTokenFromCode(code);\n\n      const context = this.curContext();\n\n      if (context === tc.j_expr) {\n        return this.jsxReadToken();\n      }\n\n      if (context === tc.j_oTag || context === tc.j_cTag) {\n        if (isIdentifierStart(code)) {\n          return this.jsxReadWord();\n        }\n\n        if (code === charCodes.greaterThan) {\n          ++this.state.pos;\n          return this.finishToken(tt.jsxTagEnd);\n        }\n\n        if (\n          (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n          context === tc.j_oTag\n        ) {\n          return this.jsxReadString(code);\n        }\n      }\n\n      if (\n        code === charCodes.lessThan &&\n        this.state.exprAllowed &&\n        this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n      ) {\n        ++this.state.pos;\n        return this.finishToken(tt.jsxTagStart);\n      }\n\n      return super.getTokenFromCode(code);\n    }\n\n    updateContext(prevType: TokenType): void {\n      if (this.match(tt.braceL)) {\n        const curContext = this.curContext();\n        if (curContext === tc.j_oTag) {\n          this.state.context.push(tc.braceExpression);\n        } else if (curContext === tc.j_expr) {\n          this.state.context.push(tc.templateQuasi);\n        } else {\n          super.updateContext(prevType);\n        }\n        this.state.exprAllowed = true;\n      } else if (this.match(tt.slash) && prevType === tt.jsxTagStart) {\n        this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore\n        this.state.context.push(tc.j_cTag); // reconsider as closing tag context\n        this.state.exprAllowed = false;\n      } else {\n        return super.updateContext(prevType);\n      }\n    }\n  };\n","// @flow\nimport {\n  SCOPE_ARROW,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n  SCOPE_VAR,\n  SCOPE_CLASS,\n  BIND_SCOPE_FUNCTION,\n  BIND_SCOPE_VAR,\n  BIND_SCOPE_LEXICAL,\n  BIND_KIND_VALUE,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"./scopeflags\";\nimport * as N from \"../types\";\nimport { Errors } from \"../parser/location\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n  flags: ScopeFlags;\n  // A list of var-declared names in the current lexical scope\n  var: string[] = [];\n  // A list of lexically-declared names in the current lexical scope\n  lexical: string[] = [];\n  // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n  functions: string[] = [];\n\n  constructor(flags: ScopeFlags) {\n    this.flags = flags;\n  }\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler<IScope: Scope = Scope> {\n  scopeStack: Array<IScope> = [];\n  raise: raiseFunction;\n  inModule: boolean;\n  undefinedExports: Map<string, number> = new Map();\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction, inModule: boolean) {\n    this.raise = raise;\n    this.inModule = inModule;\n  }\n\n  get inFunction() {\n    return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get allowSuper() {\n    return (this.currentThisScope().flags & SCOPE_SUPER) > 0;\n  }\n  get allowDirectSuper() {\n    return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;\n  }\n  get inClass() {\n    return (this.currentThisScope().flags & SCOPE_CLASS) > 0;\n  }\n  get inNonArrowFunction() {\n    return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0;\n  }\n  get treatFunctionsAsVar() {\n    return this.treatFunctionsAsVarInScope(this.currentScope());\n  }\n\n  createScope(flags: ScopeFlags): Scope {\n    return new Scope(flags);\n  }\n  // This method will be overwritten by subclasses\n  /*:: +createScope: (flags: ScopeFlags) => IScope; */\n\n  enter(flags: ScopeFlags) {\n    this.scopeStack.push(this.createScope(flags));\n  }\n\n  exit() {\n    this.scopeStack.pop();\n  }\n\n  // The spec says:\n  // > At the top level of a function, or script, function declarations are\n  // > treated like var declarations rather than like lexical declarations.\n  treatFunctionsAsVarInScope(scope: IScope): boolean {\n    return !!(\n      scope.flags & SCOPE_FUNCTION ||\n      (!this.inModule && scope.flags & SCOPE_PROGRAM)\n    );\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    let scope = this.currentScope();\n    if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) {\n      this.checkRedeclarationInScope(scope, name, bindingType, pos);\n\n      if (bindingType & BIND_SCOPE_FUNCTION) {\n        scope.functions.push(name);\n      } else {\n        scope.lexical.push(name);\n      }\n\n      if (bindingType & BIND_SCOPE_LEXICAL) {\n        this.maybeExportDefined(scope, name);\n      }\n    } else if (bindingType & BIND_SCOPE_VAR) {\n      for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n        scope = this.scopeStack[i];\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        scope.var.push(name);\n        this.maybeExportDefined(scope, name);\n\n        if (scope.flags & SCOPE_VAR) break;\n      }\n    }\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  maybeExportDefined(scope: IScope, name: string) {\n    if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n      this.undefinedExports.delete(name);\n    }\n  }\n\n  checkRedeclarationInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n    pos: number,\n  ) {\n    if (this.isRedeclaredInScope(scope, name, bindingType)) {\n      this.raise(pos, Errors.VarRedeclaration, name);\n    }\n  }\n\n  isRedeclaredInScope(\n    scope: IScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (!(bindingType & BIND_KIND_VALUE)) return false;\n\n    if (bindingType & BIND_SCOPE_LEXICAL) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        scope.functions.indexOf(name) > -1 ||\n        scope.var.indexOf(name) > -1\n      );\n    }\n\n    if (bindingType & BIND_SCOPE_FUNCTION) {\n      return (\n        scope.lexical.indexOf(name) > -1 ||\n        (!this.treatFunctionsAsVarInScope(scope) &&\n          scope.var.indexOf(name) > -1)\n      );\n    }\n\n    return (\n      (scope.lexical.indexOf(name) > -1 &&\n        !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name)) ||\n      (!this.treatFunctionsAsVarInScope(scope) &&\n        scope.functions.indexOf(name) > -1)\n    );\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n      this.scopeStack[0].var.indexOf(id.name) === -1 &&\n      // In strict mode, scope.functions will always be empty.\n      // Modules are strict by default, but the `scriptMode` option\n      // can overwrite this behavior.\n      this.scopeStack[0].functions.indexOf(id.name) === -1\n    ) {\n      this.undefinedExports.set(id.name, id.start);\n    }\n  }\n\n  currentScope(): IScope {\n    return this.scopeStack[this.scopeStack.length - 1];\n  }\n\n  // $FlowIgnore\n  currentVarScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (scope.flags & SCOPE_VAR) {\n        return scope;\n      }\n    }\n  }\n\n  // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n  // $FlowIgnore\n  currentThisScope(): IScope {\n    for (let i = this.scopeStack.length - 1; ; i--) {\n      const scope = this.scopeStack[i];\n      if (\n        (scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) &&\n        !(scope.flags & SCOPE_ARROW)\n      ) {\n        return scope;\n      }\n    }\n  }\n}\n","// @flow\n\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n  BIND_KIND_TYPE,\n  BIND_FLAGS_TS_ENUM,\n  BIND_FLAGS_TS_CONST_ENUM,\n  BIND_FLAGS_TS_EXPORT_ONLY,\n  BIND_KIND_VALUE,\n  BIND_FLAGS_CLASS,\n  type ScopeFlags,\n  type BindingTypes,\n} from \"../../util/scopeflags\";\nimport * as N from \"../../types\";\n\nclass TypeScriptScope extends Scope {\n  types: string[] = [];\n\n  // enums (which are also in .types)\n  enums: string[] = [];\n\n  // const enums (which are also in .enums and .types)\n  constEnums: string[] = [];\n\n  // classes (which are also in .lexical) and interface (which are also in .types)\n  classes: string[] = [];\n\n  // namespaces and ambient functions (or classes) are too difficult to track,\n  // especially without type analysis.\n  // We need to track them anyway, to avoid \"X is not defined\" errors\n  // when exporting them.\n  exportOnlyBindings: string[] = [];\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler<TypeScriptScope> {\n  createScope(flags: ScopeFlags): TypeScriptScope {\n    return new TypeScriptScope(flags);\n  }\n\n  declareName(name: string, bindingType: BindingTypes, pos: number) {\n    const scope = this.currentScope();\n    if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) {\n      this.maybeExportDefined(scope, name);\n      scope.exportOnlyBindings.push(name);\n      return;\n    }\n\n    super.declareName(...arguments);\n\n    if (bindingType & BIND_KIND_TYPE) {\n      if (!(bindingType & BIND_KIND_VALUE)) {\n        // \"Value\" bindings have already been registered by the superclass.\n        this.checkRedeclarationInScope(scope, name, bindingType, pos);\n        this.maybeExportDefined(scope, name);\n      }\n      scope.types.push(name);\n    }\n    if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name);\n    if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name);\n    if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name);\n  }\n\n  isRedeclaredInScope(\n    scope: TypeScriptScope,\n    name: string,\n    bindingType: BindingTypes,\n  ): boolean {\n    if (scope.enums.indexOf(name) > -1) {\n      if (bindingType & BIND_FLAGS_TS_ENUM) {\n        // Enums can be merged with other enums if they are both\n        //  const or both non-const.\n        const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM);\n        const wasConst = scope.constEnums.indexOf(name) > -1;\n        return isConst !== wasConst;\n      }\n      return true;\n    }\n    if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) {\n      if (scope.lexical.indexOf(name) > -1) {\n        // Classes can be merged with interfaces\n        return !!(bindingType & BIND_KIND_VALUE);\n      } else {\n        // Interface can be merged with other classes or interfaces\n        return false;\n      }\n    }\n    if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) {\n      return true;\n    }\n\n    return super.isRedeclaredInScope(...arguments);\n  }\n\n  checkLocalExport(id: N.Identifier) {\n    if (\n      this.scopeStack[0].types.indexOf(id.name) === -1 &&\n      this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1\n    ) {\n      super.checkLocalExport(id);\n    }\n  }\n}\n","// @flow\nexport const PARAM = 0b000, // Initial Parameter flags\n  PARAM_YIELD = 0b001, // track [Yield] production parameter\n  PARAM_AWAIT = 0b010, // track [Await] production parameter\n  PARAM_RETURN = 0b100; // track [Return] production parameter\n\n// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above. Note that the [In] parameter is\n// tracked in `noIn` argument of `parseExpression`.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n//   async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n//     ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport type ParamKind = typeof PARAM | typeof PARAM_AWAIT | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n  stacks: Array<ParamKind> = [];\n  enter(flags: ParamKind) {\n    this.stacks.push(flags);\n  }\n\n  exit() {\n    this.stacks.pop();\n  }\n\n  currentFlags(): ParamKind {\n    return this.stacks[this.stacks.length - 1];\n  }\n\n  get hasAwait(): boolean {\n    return (this.currentFlags() & PARAM_AWAIT) > 0;\n  }\n\n  get hasYield(): boolean {\n    return (this.currentFlags() & PARAM_YIELD) > 0;\n  }\n\n  get hasReturn(): boolean {\n    return (this.currentFlags() & PARAM_RETURN) > 0;\n  }\n}\n\nexport function functionFlags(\n  isAsync: boolean,\n  isGenerator: boolean,\n): ParamKind {\n  return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type { TokenType } from \"../../tokenizer/types\";\nimport type State from \"../../tokenizer/state\";\nimport { types as tt } from \"../../tokenizer/types\";\nimport { types as ct } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport type { Pos, Position } from \"../../util/location\";\nimport type Parser from \"../../parser\";\nimport {\n  type BindingTypes,\n  BIND_NONE,\n  SCOPE_TS_MODULE,\n  SCOPE_OTHER,\n  BIND_TS_ENUM,\n  BIND_TS_CONST_ENUM,\n  BIND_TS_TYPE,\n  BIND_TS_INTERFACE,\n  BIND_TS_AMBIENT,\n  BIND_TS_NAMESPACE,\n  BIND_CLASS,\n  BIND_LEXICAL,\n} from \"../../util/scopeflags\";\nimport TypeScriptScopeHandler from \"./scope\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { PARAM } from \"../../util/production-parameter\";\nimport { Errors } from \"../../parser/location\";\n\ntype TsModifier =\n  | \"readonly\"\n  | \"abstract\"\n  | \"declare\"\n  | \"static\"\n  | \"public\"\n  | \"private\"\n  | \"protected\";\n\nfunction nonNull<T>(x: ?T): T {\n  if (x == null) {\n    // $FlowIgnore\n    throw new Error(`Unexpected ${x} value.`);\n  }\n  return x;\n}\n\nfunction assert(x: boolean): void {\n  if (!x) {\n    throw new Error(\"Assert fail\");\n  }\n}\n\ntype ParsingContext =\n  | \"EnumMembers\"\n  | \"HeritageClauseElement\"\n  | \"TupleElementTypes\"\n  | \"TypeMembers\"\n  | \"TypeParametersOrArguments\";\n\nconst TSErrors = Object.freeze({\n  ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier\",\n  ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier\",\n  DeclareClassFieldHasInitializer:\n    \"'declare' class fields cannot have an initializer\",\n  DuplicateModifier: \"Duplicate modifier: '%0'\",\n  EmptyHeritageClauseType: \"'%0' list cannot be empty.\",\n  IndexSignatureHasAbstract:\n    \"Index signatures cannot have the 'abstract' modifier\",\n  IndexSignatureHasAccessibility:\n    \"Index signatures cannot have an accessibility modifier ('%0')\",\n  IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier\",\n  OptionalTypeBeforeRequired:\n    \"A required element cannot follow an optional element.\",\n  PatternIsOptional:\n    \"A binding pattern parameter cannot be optional in an implementation signature.\",\n  PrivateElementHasAbstract:\n    \"Private elements cannot have the 'abstract' modifier.\",\n  PrivateElementHasAccessibility:\n    \"Private elements cannot have an accessibility modifier ('%0')\",\n  TemplateTypeHasSubstitution:\n    \"Template literal types cannot have any substitution\",\n  TypeAnnotationAfterAssign:\n    \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n  UnexpectedReadonly:\n    \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n  UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n  UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n  UnsupportedImportTypeArgument:\n    \"Argument in a type import must be a string literal\",\n  UnsupportedParameterPropertyKind:\n    \"A parameter property may not be declared using a binding pattern.\",\n  UnsupportedSignatureParameterKind:\n    \"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0\",\n});\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\nfunction keywordTypeFromName(\n  value: string,\n): N.TsKeywordTypeType | typeof undefined {\n  switch (value) {\n    case \"any\":\n      return \"TSAnyKeyword\";\n    case \"boolean\":\n      return \"TSBooleanKeyword\";\n    case \"bigint\":\n      return \"TSBigIntKeyword\";\n    case \"never\":\n      return \"TSNeverKeyword\";\n    case \"number\":\n      return \"TSNumberKeyword\";\n    case \"object\":\n      return \"TSObjectKeyword\";\n    case \"string\":\n      return \"TSStringKeyword\";\n    case \"symbol\":\n      return \"TSSymbolKeyword\";\n    case \"undefined\":\n      return \"TSUndefinedKeyword\";\n    case \"unknown\":\n      return \"TSUnknownKeyword\";\n    default:\n      return undefined;\n  }\n}\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    getScopeHandler(): Class<TypeScriptScopeHandler> {\n      return TypeScriptScopeHandler;\n    }\n\n    tsIsIdentifier(): boolean {\n      // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n      // See https://github.com/Microsoft/TypeScript/issues/15008\n      return this.match(tt.name);\n    }\n\n    tsNextTokenCanFollowModifier() {\n      // Note: TypeScript's implementation is much more complicated because\n      // more things are considered modifiers there.\n      // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n      // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n      this.next();\n      return (\n        !this.hasPrecedingLineBreak() &&\n        !this.match(tt.parenL) &&\n        !this.match(tt.parenR) &&\n        !this.match(tt.colon) &&\n        !this.match(tt.eq) &&\n        !this.match(tt.question) &&\n        !this.match(tt.bang)\n      );\n    }\n\n    /** Parses a modifier matching one the given modifier names. */\n    tsParseModifier<T: TsModifier>(allowedModifiers: T[]): ?T {\n      if (!this.match(tt.name)) {\n        return undefined;\n      }\n\n      const modifier = this.state.value;\n      if (\n        allowedModifiers.indexOf(modifier) !== -1 &&\n        this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))\n      ) {\n        return modifier;\n      }\n      return undefined;\n    }\n\n    /** Parses a list of modifiers, in any order.\n     *  If you need a specific order, you must call this function multiple times:\n     *    this.tsParseModifiers(node, [\"public\"]);\n     *    this.tsParseModifiers(node, [\"abstract\", \"readonly\"]);\n     */\n    tsParseModifiers<T: TsModifier>(\n      modified: { [key: TsModifier]: ?true },\n      allowedModifiers: T[],\n    ): void {\n      for (;;) {\n        const startPos = this.state.start;\n        const modifier: ?T = this.tsParseModifier(allowedModifiers);\n\n        if (!modifier) break;\n\n        if (Object.hasOwnProperty.call(modified, modifier)) {\n          this.raise(startPos, TSErrors.DuplicateModifier, modifier);\n        }\n        modified[modifier] = true;\n      }\n    }\n\n    tsIsListTerminator(kind: ParsingContext): boolean {\n      switch (kind) {\n        case \"EnumMembers\":\n        case \"TypeMembers\":\n          return this.match(tt.braceR);\n        case \"HeritageClauseElement\":\n          return this.match(tt.braceL);\n        case \"TupleElementTypes\":\n          return this.match(tt.bracketR);\n        case \"TypeParametersOrArguments\":\n          return this.isRelational(\">\");\n      }\n\n      throw new Error(\"Unreachable\");\n    }\n\n    tsParseList<T: N.Node>(kind: ParsingContext, parseElement: () => T): T[] {\n      const result: T[] = [];\n      while (!this.tsIsListTerminator(kind)) {\n        // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n        result.push(parseElement());\n      }\n      return result;\n    }\n\n    tsParseDelimitedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n    ): T[] {\n      return nonNull(\n        this.tsParseDelimitedListWorker(\n          kind,\n          parseElement,\n          /* expectSuccess */ true,\n        ),\n      );\n    }\n\n    /**\n     * If !expectSuccess, returns undefined instead of failing to parse.\n     * If expectSuccess, parseElement should always return a defined value.\n     */\n    tsParseDelimitedListWorker<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => ?T,\n      expectSuccess: boolean,\n    ): ?(T[]) {\n      const result = [];\n\n      for (;;) {\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        const element = parseElement();\n        if (element == null) {\n          return undefined;\n        }\n        result.push(element);\n\n        if (this.eat(tt.comma)) {\n          continue;\n        }\n\n        if (this.tsIsListTerminator(kind)) {\n          break;\n        }\n\n        if (expectSuccess) {\n          // This will fail with an error about a missing comma\n          this.expect(tt.comma);\n        }\n        return undefined;\n      }\n\n      return result;\n    }\n\n    tsParseBracketedList<T: N.Node>(\n      kind: ParsingContext,\n      parseElement: () => T,\n      bracket: boolean,\n      skipFirstToken: boolean,\n    ): T[] {\n      if (!skipFirstToken) {\n        if (bracket) {\n          this.expect(tt.bracketL);\n        } else {\n          this.expectRelational(\"<\");\n        }\n      }\n\n      const result = this.tsParseDelimitedList(kind, parseElement);\n\n      if (bracket) {\n        this.expect(tt.bracketR);\n      } else {\n        this.expectRelational(\">\");\n      }\n\n      return result;\n    }\n\n    tsParseImportType(): N.TsImportType {\n      const node: N.TsImportType = this.startNode();\n      this.expect(tt._import);\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument);\n      }\n\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.argument = this.parseExprAtom();\n      this.expect(tt.parenR);\n\n      if (this.eat(tt.dot)) {\n        node.qualifier = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSImportType\");\n    }\n\n    tsParseEntityName(allowReservedWords: boolean): N.TsEntityName {\n      let entity: N.TsEntityName = this.parseIdentifier();\n      while (this.eat(tt.dot)) {\n        const node: N.TsQualifiedName = this.startNodeAtNode(entity);\n        node.left = entity;\n        node.right = this.parseIdentifier(allowReservedWords);\n        entity = this.finishNode(node, \"TSQualifiedName\");\n      }\n      return entity;\n    }\n\n    tsParseTypeReference(): N.TsTypeReference {\n      const node: N.TsTypeReference = this.startNode();\n      node.typeName = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (!this.hasPrecedingLineBreak() && this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n      return this.finishNode(node, \"TSTypeReference\");\n    }\n\n    tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n      this.next();\n      const node: N.TsTypePredicate = this.startNodeAtNode(lhs);\n      node.parameterName = lhs;\n      node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n      return this.finishNode(node, \"TSTypePredicate\");\n    }\n\n    tsParseThisTypeNode(): N.TsThisType {\n      const node: N.TsThisType = this.startNode();\n      this.next();\n      return this.finishNode(node, \"TSThisType\");\n    }\n\n    tsParseTypeQuery(): N.TsTypeQuery {\n      const node: N.TsTypeQuery = this.startNode();\n      this.expect(tt._typeof);\n      if (this.match(tt._import)) {\n        node.exprName = this.tsParseImportType();\n      } else {\n        node.exprName = this.tsParseEntityName(/* allowReservedWords */ true);\n      }\n      return this.finishNode(node, \"TSTypeQuery\");\n    }\n\n    tsParseTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsEatThenParseType(tt._extends);\n      node.default = this.tsEatThenParseType(tt.eq);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {\n      if (this.isRelational(\"<\")) {\n        return this.tsParseTypeParameters();\n      }\n    }\n\n    tsParseTypeParameters() {\n      const node: N.TsTypeParameterDeclaration = this.startNode();\n\n      if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n        this.next();\n      } else {\n        this.unexpected();\n      }\n\n      node.params = this.tsParseBracketedList(\n        \"TypeParametersOrArguments\",\n        this.tsParseTypeParameter.bind(this),\n        /* bracket */ false,\n        /* skipFirstToken */ true,\n      );\n      return this.finishNode(node, \"TSTypeParameterDeclaration\");\n    }\n\n    tsTryNextParseConstantContext(): ?N.TsTypeReference {\n      if (this.lookahead().type === tt._const) {\n        this.next();\n        return this.tsParseTypeReference();\n      }\n      return null;\n    }\n\n    // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n    // but here it's always false, because this is only used for types.\n    tsFillSignature(\n      returnToken: TokenType,\n      signature: N.TsSignatureDeclaration,\n    ): void {\n      // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n      const returnTokenRequired = returnToken === tt.arrow;\n      signature.typeParameters = this.tsTryParseTypeParameters();\n      this.expect(tt.parenL);\n      signature.parameters = this.tsParseBindingListForSignature();\n      if (returnTokenRequired) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      } else if (this.match(returnToken)) {\n        signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n          returnToken,\n        );\n      }\n    }\n\n    tsParseBindingListForSignature(): $ReadOnlyArray<\n      N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern,\n    > {\n      return this.parseBindingList(tt.parenR, charCodes.rightParenthesis).map(\n        pattern => {\n          if (\n            pattern.type !== \"Identifier\" &&\n            pattern.type !== \"RestElement\" &&\n            pattern.type !== \"ObjectPattern\" &&\n            pattern.type !== \"ArrayPattern\"\n          ) {\n            this.raise(\n              pattern.start,\n              TSErrors.UnsupportedSignatureParameterKind,\n              pattern.type,\n            );\n          }\n          return (pattern: any);\n        },\n      );\n    }\n\n    tsParseTypeMemberSemicolon(): void {\n      if (!this.eat(tt.comma)) {\n        this.semicolon();\n      }\n    }\n\n    tsParseSignatureMember(\n      kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n      node: N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration,\n    ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n      this.tsFillSignature(tt.colon, node);\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, kind);\n    }\n\n    tsIsUnambiguouslyIndexSignature() {\n      this.next(); // Skip '{'\n      return this.eat(tt.name) && this.match(tt.colon);\n    }\n\n    tsTryParseIndexSignature(node: N.Node): ?N.TsIndexSignature {\n      if (\n        !(\n          this.match(tt.bracketL) &&\n          this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n        )\n      ) {\n        return undefined;\n      }\n\n      this.expect(tt.bracketL);\n      const id = this.parseIdentifier();\n      id.typeAnnotation = this.tsParseTypeAnnotation();\n      this.resetEndLocation(id); // set end position to end of type\n\n      this.expect(tt.bracketR);\n      node.parameters = [id];\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n      this.tsParseTypeMemberSemicolon();\n      return this.finishNode(node, \"TSIndexSignature\");\n    }\n\n    tsParsePropertyOrMethodSignature(\n      node: N.TsPropertySignature | N.TsMethodSignature,\n      readonly: boolean,\n    ): N.TsPropertySignature | N.TsMethodSignature {\n      if (this.eat(tt.question)) node.optional = true;\n      const nodeAny: any = node;\n\n      if (!readonly && (this.match(tt.parenL) || this.isRelational(\"<\"))) {\n        const method: N.TsMethodSignature = nodeAny;\n        this.tsFillSignature(tt.colon, method);\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(method, \"TSMethodSignature\");\n      } else {\n        const property: N.TsPropertySignature = nodeAny;\n        if (readonly) property.readonly = true;\n        const type = this.tsTryParseTypeAnnotation();\n        if (type) property.typeAnnotation = type;\n        this.tsParseTypeMemberSemicolon();\n        return this.finishNode(property, \"TSPropertySignature\");\n      }\n    }\n\n    tsParseTypeMember(): N.TsTypeElement {\n      const node: any = this.startNode();\n\n      if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n        return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n      }\n\n      if (this.match(tt._new)) {\n        const id: N.Identifier = this.startNode();\n        this.next();\n        if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n          return this.tsParseSignatureMember(\n            \"TSConstructSignatureDeclaration\",\n            node,\n          );\n        } else {\n          node.key = this.createIdentifier(id, \"new\");\n          return this.tsParsePropertyOrMethodSignature(node, false);\n        }\n      }\n\n      const readonly = !!this.tsParseModifier([\"readonly\"]);\n\n      const idx = this.tsTryParseIndexSignature(node);\n      if (idx) {\n        if (readonly) node.readonly = true;\n        return idx;\n      }\n\n      this.parsePropertyName(node, /* isPrivateNameAllowed */ false);\n      return this.tsParsePropertyOrMethodSignature(node, readonly);\n    }\n\n    tsParseTypeLiteral(): N.TsTypeLiteral {\n      const node: N.TsTypeLiteral = this.startNode();\n      node.members = this.tsParseObjectTypeMembers();\n      return this.finishNode(node, \"TSTypeLiteral\");\n    }\n\n    tsParseObjectTypeMembers(): $ReadOnlyArray<N.TsTypeElement> {\n      this.expect(tt.braceL);\n      const members = this.tsParseList(\n        \"TypeMembers\",\n        this.tsParseTypeMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return members;\n    }\n\n    tsIsStartOfMappedType(): boolean {\n      this.next();\n      if (this.eat(tt.plusMin)) {\n        return this.isContextual(\"readonly\");\n      }\n      if (this.isContextual(\"readonly\")) {\n        this.next();\n      }\n      if (!this.match(tt.bracketL)) {\n        return false;\n      }\n      this.next();\n      if (!this.tsIsIdentifier()) {\n        return false;\n      }\n      this.next();\n      return this.match(tt._in);\n    }\n\n    tsParseMappedTypeParameter(): N.TsTypeParameter {\n      const node: N.TsTypeParameter = this.startNode();\n      node.name = this.parseIdentifierName(node.start);\n      node.constraint = this.tsExpectThenParseType(tt._in);\n      return this.finishNode(node, \"TSTypeParameter\");\n    }\n\n    tsParseMappedType(): N.TsMappedType {\n      const node: N.TsMappedType = this.startNode();\n\n      this.expect(tt.braceL);\n\n      if (this.match(tt.plusMin)) {\n        node.readonly = this.state.value;\n        this.next();\n        this.expectContextual(\"readonly\");\n      } else if (this.eatContextual(\"readonly\")) {\n        node.readonly = true;\n      }\n\n      this.expect(tt.bracketL);\n      node.typeParameter = this.tsParseMappedTypeParameter();\n      this.expect(tt.bracketR);\n\n      if (this.match(tt.plusMin)) {\n        node.optional = this.state.value;\n        this.next();\n        this.expect(tt.question);\n      } else if (this.eat(tt.question)) {\n        node.optional = true;\n      }\n\n      node.typeAnnotation = this.tsTryParseType();\n      this.semicolon();\n      this.expect(tt.braceR);\n\n      return this.finishNode(node, \"TSMappedType\");\n    }\n\n    tsParseTupleType(): N.TsTupleType {\n      const node: N.TsTupleType = this.startNode();\n      node.elementTypes = this.tsParseBracketedList(\n        \"TupleElementTypes\",\n        this.tsParseTupleElementType.bind(this),\n        /* bracket */ true,\n        /* skipFirstToken */ false,\n      );\n\n      // Validate the elementTypes to ensure:\n      //   No mandatory elements may follow optional elements\n      //   If there's a rest element, it must be at the end of the tuple\n      let seenOptionalElement = false;\n      node.elementTypes.forEach(elementNode => {\n        if (elementNode.type === \"TSOptionalType\") {\n          seenOptionalElement = true;\n        } else if (seenOptionalElement && elementNode.type !== \"TSRestType\") {\n          this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired);\n        }\n      });\n\n      return this.finishNode(node, \"TSTupleType\");\n    }\n\n    tsParseTupleElementType(): N.TsType {\n      // parses `...TsType[]`\n      if (this.match(tt.ellipsis)) {\n        const restNode: N.TsRestType = this.startNode();\n        this.next(); // skips ellipsis\n        restNode.typeAnnotation = this.tsParseType();\n        if (\n          this.match(tt.comma) &&\n          this.lookaheadCharCode() !== charCodes.rightSquareBracket\n        ) {\n          this.raiseRestNotLast(this.state.start);\n        }\n        return this.finishNode(restNode, \"TSRestType\");\n      }\n\n      const type = this.tsParseType();\n      // parses `TsType?`\n      if (this.eat(tt.question)) {\n        const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type);\n        optionalTypeNode.typeAnnotation = type;\n        return this.finishNode(optionalTypeNode, \"TSOptionalType\");\n      }\n      return type;\n    }\n\n    tsParseParenthesizedType(): N.TsParenthesizedType {\n      const node = this.startNode();\n      this.expect(tt.parenL);\n      node.typeAnnotation = this.tsParseType();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSParenthesizedType\");\n    }\n\n    tsParseFunctionOrConstructorType(\n      type: \"TSFunctionType\" | \"TSConstructorType\",\n    ): N.TsFunctionOrConstructorType {\n      const node: N.TsFunctionOrConstructorType = this.startNode();\n      if (type === \"TSConstructorType\") {\n        this.expect(tt._new);\n      }\n      this.tsFillSignature(tt.arrow, node);\n      return this.finishNode(node, type);\n    }\n\n    tsParseLiteralTypeNode(): N.TsLiteralType {\n      const node: N.TsLiteralType = this.startNode();\n      node.literal = (() => {\n        switch (this.state.type) {\n          case tt.num:\n          case tt.string:\n          case tt._true:\n          case tt._false:\n            // For compatibility to estree we cannot call parseLiteral directly here\n            return this.parseExprAtom();\n          default:\n            throw this.unexpected();\n        }\n      })();\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseTemplateLiteralType(): N.TsType {\n      const node: N.TsLiteralType = this.startNode();\n      const templateNode = this.parseTemplate(false);\n      if (templateNode.expressions.length > 0) {\n        this.raise(\n          templateNode.expressions[0].start,\n          TSErrors.TemplateTypeHasSubstitution,\n        );\n      }\n      node.literal = templateNode;\n      return this.finishNode(node, \"TSLiteralType\");\n    }\n\n    tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n      const thisKeyword = this.tsParseThisTypeNode();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        return this.tsParseThisTypePredicate(thisKeyword);\n      } else {\n        return thisKeyword;\n      }\n    }\n\n    tsParseNonArrayType(): N.TsType {\n      switch (this.state.type) {\n        case tt.name:\n        case tt._void:\n        case tt._null: {\n          const type = this.match(tt._void)\n            ? \"TSVoidKeyword\"\n            : this.match(tt._null)\n            ? \"TSNullKeyword\"\n            : keywordTypeFromName(this.state.value);\n          if (\n            type !== undefined &&\n            this.lookaheadCharCode() !== charCodes.dot\n          ) {\n            const node: N.TsKeywordType = this.startNode();\n            this.next();\n            return this.finishNode(node, type);\n          }\n          return this.tsParseTypeReference();\n        }\n        case tt.string:\n        case tt.num:\n        case tt._true:\n        case tt._false:\n          return this.tsParseLiteralTypeNode();\n        case tt.plusMin:\n          if (this.state.value === \"-\") {\n            const node: N.TsLiteralType = this.startNode();\n            if (this.lookahead().type !== tt.num) {\n              throw this.unexpected();\n            }\n            node.literal = this.parseMaybeUnary();\n            return this.finishNode(node, \"TSLiteralType\");\n          }\n          break;\n        case tt._this:\n          return this.tsParseThisTypeOrThisTypePredicate();\n        case tt._typeof:\n          return this.tsParseTypeQuery();\n        case tt._import:\n          return this.tsParseImportType();\n        case tt.braceL:\n          return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n            ? this.tsParseMappedType()\n            : this.tsParseTypeLiteral();\n        case tt.bracketL:\n          return this.tsParseTupleType();\n        case tt.parenL:\n          return this.tsParseParenthesizedType();\n        case tt.backQuote:\n          return this.tsParseTemplateLiteralType();\n      }\n\n      throw this.unexpected();\n    }\n\n    tsParseArrayTypeOrHigher(): N.TsType {\n      let type = this.tsParseNonArrayType();\n      while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n        if (this.match(tt.bracketR)) {\n          const node: N.TsArrayType = this.startNodeAtNode(type);\n          node.elementType = type;\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSArrayType\");\n        } else {\n          const node: N.TsIndexedAccessType = this.startNodeAtNode(type);\n          node.objectType = type;\n          node.indexType = this.tsParseType();\n          this.expect(tt.bracketR);\n          type = this.finishNode(node, \"TSIndexedAccessType\");\n        }\n      }\n      return type;\n    }\n\n    tsParseTypeOperator(\n      operator: \"keyof\" | \"unique\" | \"readonly\",\n    ): N.TsTypeOperator {\n      const node: N.TsTypeOperator = this.startNode();\n      this.expectContextual(operator);\n      node.operator = operator;\n      node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n      if (operator === \"readonly\") {\n        this.tsCheckTypeAnnotationForReadOnly(node);\n      }\n\n      return this.finishNode(node, \"TSTypeOperator\");\n    }\n\n    tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n      switch (node.typeAnnotation.type) {\n        case \"TSTupleType\":\n        case \"TSArrayType\":\n          return;\n        default:\n          this.raise(node.start, TSErrors.UnexpectedReadonly);\n      }\n    }\n\n    tsParseInferType(): N.TsInferType {\n      const node = this.startNode();\n      this.expectContextual(\"infer\");\n      const typeParameter = this.startNode();\n      typeParameter.name = this.parseIdentifierName(typeParameter.start);\n      node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n      return this.finishNode(node, \"TSInferType\");\n    }\n\n    tsParseTypeOperatorOrHigher(): N.TsType {\n      const operator = [\"keyof\", \"unique\", \"readonly\"].find(kw =>\n        this.isContextual(kw),\n      );\n      return operator\n        ? this.tsParseTypeOperator(operator)\n        : this.isContextual(\"infer\")\n        ? this.tsParseInferType()\n        : this.tsParseArrayTypeOrHigher();\n    }\n\n    tsParseUnionOrIntersectionType(\n      kind: \"TSUnionType\" | \"TSIntersectionType\",\n      parseConstituentType: () => N.TsType,\n      operator: TokenType,\n    ): N.TsType {\n      this.eat(operator);\n      let type = parseConstituentType();\n      if (this.match(operator)) {\n        const types = [type];\n        while (this.eat(operator)) {\n          types.push(parseConstituentType());\n        }\n        const node: N.TsUnionType | N.TsIntersectionType = this.startNodeAtNode(\n          type,\n        );\n        node.types = types;\n        type = this.finishNode(node, kind);\n      }\n      return type;\n    }\n\n    tsParseIntersectionTypeOrHigher(): N.TsType {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSIntersectionType\",\n        this.tsParseTypeOperatorOrHigher.bind(this),\n        tt.bitwiseAND,\n      );\n    }\n\n    tsParseUnionTypeOrHigher() {\n      return this.tsParseUnionOrIntersectionType(\n        \"TSUnionType\",\n        this.tsParseIntersectionTypeOrHigher.bind(this),\n        tt.bitwiseOR,\n      );\n    }\n\n    tsIsStartOfFunctionType() {\n      if (this.isRelational(\"<\")) {\n        return true;\n      }\n      return (\n        this.match(tt.parenL) &&\n        this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n      );\n    }\n\n    tsSkipParameterStart(): boolean {\n      if (this.match(tt.name) || this.match(tt._this)) {\n        this.next();\n        return true;\n      }\n\n      if (this.match(tt.braceL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.braceL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.braceR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      if (this.match(tt.bracketL)) {\n        let braceStackCounter = 1;\n        this.next();\n\n        while (braceStackCounter > 0) {\n          if (this.match(tt.bracketL)) {\n            ++braceStackCounter;\n          } else if (this.match(tt.bracketR)) {\n            --braceStackCounter;\n          }\n          this.next();\n        }\n        return true;\n      }\n\n      return false;\n    }\n\n    tsIsUnambiguouslyStartOfFunctionType(): boolean {\n      this.next();\n      if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n        // ( )\n        // ( ...\n        return true;\n      }\n      if (this.tsSkipParameterStart()) {\n        if (\n          this.match(tt.colon) ||\n          this.match(tt.comma) ||\n          this.match(tt.question) ||\n          this.match(tt.eq)\n        ) {\n          // ( xxx :\n          // ( xxx ,\n          // ( xxx ?\n          // ( xxx =\n          return true;\n        }\n        if (this.match(tt.parenR)) {\n          this.next();\n          if (this.match(tt.arrow)) {\n            // ( xxx ) =>\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n\n    tsParseTypeOrTypePredicateAnnotation(\n      returnToken: TokenType,\n    ): N.TsTypeAnnotation {\n      return this.tsInType(() => {\n        const t: N.TsTypeAnnotation = this.startNode();\n        this.expect(returnToken);\n\n        const asserts = this.tsTryParse(\n          this.tsParseTypePredicateAsserts.bind(this),\n        );\n\n        if (asserts && this.match(tt._this)) {\n          // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n          // : asserts this is type\n          let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n          // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n          // : asserts this\n          if (thisTypePredicate.type === \"TSThisType\") {\n            const node: N.TsTypePredicate = this.startNodeAtNode(t);\n            node.parameterName = (thisTypePredicate: N.TsThisType);\n            node.asserts = true;\n            thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n          } else {\n            (thisTypePredicate: N.TsTypePredicate).asserts = true;\n          }\n          t.typeAnnotation = thisTypePredicate;\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        const typePredicateVariable =\n          this.tsIsIdentifier() &&\n          this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n        if (!typePredicateVariable) {\n          if (!asserts) {\n            // : type\n            return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n          }\n\n          const node: N.TsTypePredicate = this.startNodeAtNode(t);\n          // : asserts foo\n          node.parameterName = this.parseIdentifier();\n          node.asserts = asserts;\n          t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n          return this.finishNode(t, \"TSTypeAnnotation\");\n        }\n\n        // : asserts foo is type\n        const type = this.tsParseTypeAnnotation(/* eatColon */ false);\n        const node = this.startNodeAtNode(t);\n        node.parameterName = typePredicateVariable;\n        node.typeAnnotation = type;\n        node.asserts = asserts;\n        t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n        return this.finishNode(t, \"TSTypeAnnotation\");\n      });\n    }\n\n    tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon)\n        ? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)\n        : undefined;\n    }\n\n    tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {\n      return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;\n    }\n\n    tsTryParseType(): ?N.TsType {\n      return this.tsEatThenParseType(tt.colon);\n    }\n\n    tsParseTypePredicatePrefix(): ?N.Identifier {\n      const id = this.parseIdentifier();\n      if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n        this.next();\n        return id;\n      }\n    }\n\n    tsParseTypePredicateAsserts(): boolean {\n      if (\n        !this.match(tt.name) ||\n        this.state.value !== \"asserts\" ||\n        this.hasPrecedingLineBreak()\n      ) {\n        return false;\n      }\n      const containsEsc = this.state.containsEsc;\n      this.next();\n      if (!this.match(tt.name) && !this.match(tt._this)) {\n        return false;\n      }\n\n      if (containsEsc) {\n        this.raise(\n          this.state.lastTokStart,\n          Errors.InvalidEscapedReservedWord,\n          \"asserts\",\n        );\n      }\n\n      return true;\n    }\n\n    tsParseTypeAnnotation(\n      eatColon = true,\n      t: N.TsTypeAnnotation = this.startNode(),\n    ): N.TsTypeAnnotation {\n      this.tsInType(() => {\n        if (eatColon) this.expect(tt.colon);\n        t.typeAnnotation = this.tsParseType();\n      });\n      return this.finishNode(t, \"TSTypeAnnotation\");\n    }\n\n    /** Be sure to be in a type context before calling this, using `tsInType`. */\n    tsParseType(): N.TsType {\n      // Need to set `state.inType` so that we don't parse JSX in a type context.\n      assert(this.state.inType);\n      const type = this.tsParseNonConditionalType();\n      if (this.hasPrecedingLineBreak() || !this.eat(tt._extends)) {\n        return type;\n      }\n      const node: N.TsConditionalType = this.startNodeAtNode(type);\n      node.checkType = type;\n      node.extendsType = this.tsParseNonConditionalType();\n      this.expect(tt.question);\n      node.trueType = this.tsParseType();\n      this.expect(tt.colon);\n      node.falseType = this.tsParseType();\n      return this.finishNode(node, \"TSConditionalType\");\n    }\n\n    tsParseNonConditionalType(): N.TsType {\n      if (this.tsIsStartOfFunctionType()) {\n        return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n      }\n      if (this.match(tt._new)) {\n        // As in `new () => Date`\n        return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n      }\n      return this.tsParseUnionTypeOrHigher();\n    }\n\n    tsParseTypeAssertion(): N.TsTypeAssertion {\n      const node: N.TsTypeAssertion = this.startNode();\n      const _const = this.tsTryNextParseConstantContext();\n      node.typeAnnotation = _const || this.tsNextThenParseType();\n      this.expectRelational(\">\");\n      node.expression = this.parseMaybeUnary();\n      return this.finishNode(node, \"TSTypeAssertion\");\n    }\n\n    tsParseHeritageClause(\n      descriptor: string,\n    ): $ReadOnlyArray<N.TsExpressionWithTypeArguments> {\n      const originalStart = this.state.start;\n\n      const delimitedList = this.tsParseDelimitedList(\n        \"HeritageClauseElement\",\n        this.tsParseExpressionWithTypeArguments.bind(this),\n      );\n\n      if (!delimitedList.length) {\n        this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor);\n      }\n\n      return delimitedList;\n    }\n\n    tsParseExpressionWithTypeArguments(): N.TsExpressionWithTypeArguments {\n      const node: N.TsExpressionWithTypeArguments = this.startNode();\n      // Note: TS uses parseLeftHandSideExpressionOrHigher,\n      // then has grammar errors later if it's not an EntityName.\n      node.expression = this.tsParseEntityName(/* allowReservedWords */ false);\n      if (this.isRelational(\"<\")) {\n        node.typeParameters = this.tsParseTypeArguments();\n      }\n\n      return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n    }\n\n    tsParseInterfaceDeclaration(\n      node: N.TsInterfaceDeclaration,\n    ): N.TsInterfaceDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_TS_INTERFACE,\n        undefined,\n        \"typescript interface declaration\",\n      );\n      node.typeParameters = this.tsTryParseTypeParameters();\n      if (this.eat(tt._extends)) {\n        node.extends = this.tsParseHeritageClause(\"extends\");\n      }\n      const body: N.TSInterfaceBody = this.startNode();\n      body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n      node.body = this.finishNode(body, \"TSInterfaceBody\");\n      return this.finishNode(node, \"TSInterfaceDeclaration\");\n    }\n\n    tsParseTypeAliasDeclaration(\n      node: N.TsTypeAliasDeclaration,\n    ): N.TsTypeAliasDeclaration {\n      node.id = this.parseIdentifier();\n      this.checkLVal(node.id, BIND_TS_TYPE, undefined, \"typescript type alias\");\n\n      node.typeParameters = this.tsTryParseTypeParameters();\n      node.typeAnnotation = this.tsExpectThenParseType(tt.eq);\n      this.semicolon();\n      return this.finishNode(node, \"TSTypeAliasDeclaration\");\n    }\n\n    tsInNoContext<T>(cb: () => T): T {\n      const oldContext = this.state.context;\n      this.state.context = [oldContext[0]];\n      try {\n        return cb();\n      } finally {\n        this.state.context = oldContext;\n      }\n    }\n\n    /**\n     * Runs `cb` in a type context.\n     * This should be called one token *before* the first type token,\n     * so that the call to `next()` is run in type context.\n     */\n    tsInType<T>(cb: () => T): T {\n      const oldInType = this.state.inType;\n      this.state.inType = true;\n      try {\n        return cb();\n      } finally {\n        this.state.inType = oldInType;\n      }\n    }\n\n    tsEatThenParseType(token: TokenType): N.TsType | typeof undefined {\n      return !this.match(token) ? undefined : this.tsNextThenParseType();\n    }\n\n    tsExpectThenParseType(token: TokenType): N.TsType {\n      return this.tsDoThenParseType(() => this.expect(token));\n    }\n\n    tsNextThenParseType(): N.TsType {\n      return this.tsDoThenParseType(() => this.next());\n    }\n\n    tsDoThenParseType(cb: () => void): N.TsType {\n      return this.tsInType(() => {\n        cb();\n        return this.tsParseType();\n      });\n    }\n\n    tsParseEnumMember(): N.TsEnumMember {\n      const node: N.TsEnumMember = this.startNode();\n      // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n      node.id = this.match(tt.string)\n        ? this.parseExprAtom()\n        : this.parseIdentifier(/* liberal */ true);\n      if (this.eat(tt.eq)) {\n        node.initializer = this.parseMaybeAssign();\n      }\n      return this.finishNode(node, \"TSEnumMember\");\n    }\n\n    tsParseEnumDeclaration(\n      node: N.TsEnumDeclaration,\n      isConst: boolean,\n    ): N.TsEnumDeclaration {\n      if (isConst) node.const = true;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM,\n        undefined,\n        \"typescript enum declaration\",\n      );\n\n      this.expect(tt.braceL);\n      node.members = this.tsParseDelimitedList(\n        \"EnumMembers\",\n        this.tsParseEnumMember.bind(this),\n      );\n      this.expect(tt.braceR);\n      return this.finishNode(node, \"TSEnumDeclaration\");\n    }\n\n    tsParseModuleBlock(): N.TsModuleBlock {\n      const node: N.TsModuleBlock = this.startNode();\n      this.scope.enter(SCOPE_OTHER);\n\n      this.expect(tt.braceL);\n      // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n      this.parseBlockOrModuleBlockBody(\n        (node.body = []),\n        /* directives */ undefined,\n        /* topLevel */ true,\n        /* end */ tt.braceR,\n      );\n      this.scope.exit();\n      return this.finishNode(node, \"TSModuleBlock\");\n    }\n\n    tsParseModuleOrNamespaceDeclaration(\n      node: N.TsModuleDeclaration,\n      nested?: boolean = false,\n    ): N.TsModuleDeclaration {\n      node.id = this.parseIdentifier();\n\n      if (!nested) {\n        this.checkLVal(\n          node.id,\n          BIND_TS_NAMESPACE,\n          null,\n          \"module or namespace declaration\",\n        );\n      }\n\n      if (this.eat(tt.dot)) {\n        const inner = this.startNode();\n        this.tsParseModuleOrNamespaceDeclaration(inner, true);\n        node.body = inner;\n      } else {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      }\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseAmbientExternalModuleDeclaration(\n      node: N.TsModuleDeclaration,\n    ): N.TsModuleDeclaration {\n      if (this.isContextual(\"global\")) {\n        node.global = true;\n        node.id = this.parseIdentifier();\n      } else if (this.match(tt.string)) {\n        node.id = this.parseExprAtom();\n      } else {\n        this.unexpected();\n      }\n      if (this.match(tt.braceL)) {\n        this.scope.enter(SCOPE_TS_MODULE);\n        this.prodParam.enter(PARAM);\n        node.body = this.tsParseModuleBlock();\n        this.prodParam.exit();\n        this.scope.exit();\n      } else {\n        this.semicolon();\n      }\n\n      return this.finishNode(node, \"TSModuleDeclaration\");\n    }\n\n    tsParseImportEqualsDeclaration(\n      node: N.TsImportEqualsDeclaration,\n      isExport?: boolean,\n    ): N.TsImportEqualsDeclaration {\n      node.isExport = isExport || false;\n      node.id = this.parseIdentifier();\n      this.checkLVal(\n        node.id,\n        BIND_LEXICAL,\n        undefined,\n        \"import equals declaration\",\n      );\n      this.expect(tt.eq);\n      node.moduleReference = this.tsParseModuleReference();\n      this.semicolon();\n      return this.finishNode(node, \"TSImportEqualsDeclaration\");\n    }\n\n    tsIsExternalModuleReference(): boolean {\n      return (\n        this.isContextual(\"require\") &&\n        this.lookaheadCharCode() === charCodes.leftParenthesis\n      );\n    }\n\n    tsParseModuleReference(): N.TsModuleReference {\n      return this.tsIsExternalModuleReference()\n        ? this.tsParseExternalModuleReference()\n        : this.tsParseEntityName(/* allowReservedWords */ false);\n    }\n\n    tsParseExternalModuleReference(): N.TsExternalModuleReference {\n      const node: N.TsExternalModuleReference = this.startNode();\n      this.expectContextual(\"require\");\n      this.expect(tt.parenL);\n      if (!this.match(tt.string)) {\n        throw this.unexpected();\n      }\n      // For compatibility to estree we cannot call parseLiteral directly here\n      node.expression = this.parseExprAtom();\n      this.expect(tt.parenR);\n      return this.finishNode(node, \"TSExternalModuleReference\");\n    }\n\n    // Utilities\n\n    tsLookAhead<T>(f: () => T): T {\n      const state = this.state.clone();\n      const res = f();\n      this.state = state;\n      return res;\n    }\n\n    tsTryParseAndCatch<T: ?N.NodeBase>(f: () => T): ?T {\n      const result = this.tryParse(abort => f() || abort());\n\n      if (result.aborted || !result.node) return undefined;\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    tsTryParse<T>(f: () => ?T): ?T {\n      const state = this.state.clone();\n      const result = f();\n      if (result !== undefined && result !== false) {\n        return result;\n      } else {\n        this.state = state;\n        return undefined;\n      }\n    }\n\n    tsTryParseDeclare(nany: any): ?N.Declaration {\n      if (this.isLineTerminator()) {\n        return;\n      }\n      let starttype = this.state.type;\n      let kind;\n\n      if (this.isContextual(\"let\")) {\n        starttype = tt._var;\n        kind = \"let\";\n      }\n\n      switch (starttype) {\n        case tt._function:\n          return this.parseFunctionStatement(\n            nany,\n            /* async */ false,\n            /* declarationPosition */ true,\n          );\n        case tt._class:\n          // While this is also set by tsParseExpressionStatement, we need to set it\n          // before parsing the class declaration to now how to register it in the scope.\n          nany.declare = true;\n          return this.parseClass(\n            nany,\n            /* isStatement */ true,\n            /* optionalId */ false,\n          );\n        case tt._const:\n          if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n            // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n            this.expect(tt._const);\n            this.expectContextual(\"enum\");\n            return this.tsParseEnumDeclaration(nany, /* isConst */ true);\n          }\n        // falls through\n        case tt._var:\n          kind = kind || this.state.value;\n          return this.parseVarStatement(nany, kind);\n        case tt.name: {\n          const value = this.state.value;\n          if (value === \"global\") {\n            return this.tsParseAmbientExternalModuleDeclaration(nany);\n          } else {\n            return this.tsParseDeclaration(nany, value, /* next */ true);\n          }\n        }\n      }\n    }\n\n    // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n    tsTryParseExportDeclaration(): ?N.Declaration {\n      return this.tsParseDeclaration(\n        this.startNode(),\n        this.state.value,\n        /* next */ true,\n      );\n    }\n\n    tsParseExpressionStatement(node: any, expr: N.Identifier): ?N.Declaration {\n      switch (expr.name) {\n        case \"declare\": {\n          const declaration = this.tsTryParseDeclare(node);\n          if (declaration) {\n            declaration.declare = true;\n            return declaration;\n          }\n          break;\n        }\n        case \"global\":\n          // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n          // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n          if (this.match(tt.braceL)) {\n            this.scope.enter(SCOPE_TS_MODULE);\n            this.prodParam.enter(PARAM);\n            const mod: N.TsModuleDeclaration = node;\n            mod.global = true;\n            mod.id = expr;\n            mod.body = this.tsParseModuleBlock();\n            this.scope.exit();\n            this.prodParam.exit();\n            return this.finishNode(mod, \"TSModuleDeclaration\");\n          }\n          break;\n\n        default:\n          return this.tsParseDeclaration(node, expr.name, /* next */ false);\n      }\n    }\n\n    // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n    tsParseDeclaration(\n      node: any,\n      value: string,\n      next: boolean,\n    ): ?N.Declaration {\n      switch (value) {\n        case \"abstract\":\n          if (this.tsCheckLineTerminatorAndMatch(tt._class, next)) {\n            const cls: N.ClassDeclaration = node;\n            cls.abstract = true;\n            if (next) {\n              this.next();\n              if (!this.match(tt._class)) {\n                this.unexpected(null, tt._class);\n              }\n            }\n            return this.parseClass(\n              cls,\n              /* isStatement */ true,\n              /* optionalId */ false,\n            );\n          }\n          break;\n\n        case \"enum\":\n          if (next || this.match(tt.name)) {\n            if (next) this.next();\n            return this.tsParseEnumDeclaration(node, /* isConst */ false);\n          }\n          break;\n\n        case \"interface\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseInterfaceDeclaration(node);\n          }\n          break;\n\n        case \"module\":\n          if (next) this.next();\n          if (this.match(tt.string)) {\n            return this.tsParseAmbientExternalModuleDeclaration(node);\n          } else if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"namespace\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseModuleOrNamespaceDeclaration(node);\n          }\n          break;\n\n        case \"type\":\n          if (this.tsCheckLineTerminatorAndMatch(tt.name, next)) {\n            if (next) this.next();\n            return this.tsParseTypeAliasDeclaration(node);\n          }\n          break;\n      }\n    }\n\n    tsCheckLineTerminatorAndMatch(tokenType: TokenType, next: boolean) {\n      return (next || this.match(tokenType)) && !this.isLineTerminator();\n    }\n\n    tsTryParseGenericAsyncArrowFunction(\n      startPos: number,\n      startLoc: Position,\n    ): ?N.ArrowFunctionExpression {\n      if (!this.isRelational(\"<\")) {\n        return undefined;\n      }\n\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      const res: ?N.ArrowFunctionExpression = this.tsTryParseAndCatch(() => {\n        const node: N.ArrowFunctionExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        node.typeParameters = this.tsParseTypeParameters();\n        // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n        super.parseFunctionParams(node);\n        node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n        this.expect(tt.arrow);\n        return node;\n      });\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n\n      if (!res) {\n        return undefined;\n      }\n\n      return this.parseArrowExpression(\n        res,\n        /* params are already set */ null,\n        /* async */ true,\n      );\n    }\n\n    tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n      const node = this.startNode();\n      node.params = this.tsInType(() =>\n        // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n        this.tsInNoContext(() => {\n          this.expectRelational(\"<\");\n          return this.tsParseDelimitedList(\n            \"TypeParametersOrArguments\",\n            this.tsParseType.bind(this),\n          );\n        }),\n      );\n      // This reads the next token after the `>` too, so do this in the enclosing context.\n      // But be sure not to parse a regex in the jsx expression `<C<number> />`, so set exprAllowed = false\n      this.state.exprAllowed = false;\n      this.expectRelational(\">\");\n      return this.finishNode(node, \"TSTypeParameterInstantiation\");\n    }\n\n    tsIsDeclarationStart(): boolean {\n      if (this.match(tt.name)) {\n        switch (this.state.value) {\n          case \"abstract\":\n          case \"declare\":\n          case \"enum\":\n          case \"interface\":\n          case \"module\":\n          case \"namespace\":\n          case \"type\":\n            return true;\n        }\n      }\n\n      return false;\n    }\n\n    // ======================================================\n    // OVERRIDES\n    // ======================================================\n\n    isExportDefaultSpecifier(): boolean {\n      if (this.tsIsDeclarationStart()) return false;\n      return super.isExportDefaultSpecifier();\n    }\n\n    parseAssignableListItem(\n      allowModifiers: ?boolean,\n      decorators: N.Decorator[],\n    ): N.Pattern | N.TSParameterProperty {\n      // Store original location/position to include modifiers in range\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      let accessibility: ?N.Accessibility;\n      let readonly = false;\n      if (allowModifiers) {\n        accessibility = this.parseAccessModifier();\n        readonly = !!this.tsParseModifier([\"readonly\"]);\n      }\n\n      const left = this.parseMaybeDefault();\n      this.parseAssignableListItemTypes(left);\n      const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n      if (accessibility || readonly) {\n        const pp: N.TSParameterProperty = this.startNodeAt(startPos, startLoc);\n        if (decorators.length) {\n          pp.decorators = decorators;\n        }\n        if (accessibility) pp.accessibility = accessibility;\n        if (readonly) pp.readonly = readonly;\n        if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n          this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind);\n        }\n        pp.parameter = ((elt: any): N.Identifier | N.AssignmentPattern);\n        return this.finishNode(pp, \"TSParameterProperty\");\n      }\n\n      if (decorators.length) {\n        left.decorators = decorators;\n      }\n\n      return elt;\n    }\n\n    parseFunctionBodyAndFinish(\n      node: N.BodilessFunctionOrMethodBase,\n      type: string,\n      isMethod?: boolean = false,\n    ): void {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n      }\n\n      const bodilessType =\n        type === \"FunctionDeclaration\"\n          ? \"TSDeclareFunction\"\n          : type === \"ClassMethod\"\n          ? \"TSDeclareMethod\"\n          : undefined;\n      if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n        this.finishNode(node, bodilessType);\n        return;\n      }\n\n      super.parseFunctionBodyAndFinish(node, type, isMethod);\n    }\n\n    registerFunctionStatementId(node: N.Function): void {\n      if (!node.body && node.id) {\n        // Function ids are validated after parsing their body.\n        // For bodyless function, we need to do it here.\n        this.checkLVal(node.id, BIND_TS_AMBIENT, null, \"function name\");\n      } else {\n        super.registerFunctionStatementId(...arguments);\n      }\n    }\n\n    parseSubscript(\n      base: N.Expression,\n      startPos: number,\n      startLoc: Position,\n      noCalls: ?boolean,\n      state: N.ParseSubscriptState,\n    ): N.Expression {\n      if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n        this.state.exprAllowed = false;\n        this.next();\n\n        const nonNullExpression: N.TsNonNullExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        nonNullExpression.expression = base;\n        return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n      }\n\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // There are number of things we are going to \"maybe\" parse, like type arguments on\n        // tagged template expressions. If any of them fail, walk it back and continue.\n        const result = this.tsTryParseAndCatch(() => {\n          if (!noCalls && this.atPossibleAsyncArrow(base)) {\n            // Almost certainly this is a generic async function `async <T>() => ...\n            // But it might be a call with a type argument `async<T>();`\n            const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(\n              startPos,\n              startLoc,\n            );\n            if (asyncArrowFn) {\n              return asyncArrowFn;\n            }\n          }\n\n          const node: N.CallExpression = this.startNodeAt(startPos, startLoc);\n          node.callee = base;\n\n          const typeArguments = this.tsParseTypeArguments();\n\n          if (typeArguments) {\n            if (!noCalls && this.eat(tt.parenL)) {\n              // possibleAsync always false here, because we would have handled it above.\n              // $FlowIgnore (won't be any undefined arguments)\n              node.arguments = this.parseCallExpressionArguments(\n                tt.parenR,\n                /* possibleAsync */ false,\n              );\n              node.typeParameters = typeArguments;\n              return this.finishCallExpression(node, state.optionalChainMember);\n            } else if (this.match(tt.backQuote)) {\n              return this.parseTaggedTemplateExpression(\n                startPos,\n                startLoc,\n                base,\n                state,\n                typeArguments,\n              );\n            }\n          }\n\n          this.unexpected();\n        });\n\n        if (result) return result;\n      }\n\n      return super.parseSubscript(base, startPos, startLoc, noCalls, state);\n    }\n\n    parseNewArguments(node: N.NewExpression): void {\n      if (this.isRelational(\"<\")) {\n        // tsTryParseAndCatch is expensive, so avoid if not necessary.\n        // 99% certain this is `new C<T>();`. But may be `new C < T;`, which is also legal.\n        const typeParameters = this.tsTryParseAndCatch(() => {\n          const args = this.tsParseTypeArguments();\n          if (!this.match(tt.parenL)) this.unexpected();\n          return args;\n        });\n        if (typeParameters) {\n          node.typeParameters = typeParameters;\n        }\n      }\n\n      super.parseNewArguments(node);\n    }\n\n    parseExprOp(\n      left: N.Expression,\n      leftStartPos: number,\n      leftStartLoc: Position,\n      minPrec: number,\n      noIn: ?boolean,\n    ) {\n      if (\n        nonNull(tt._in.binop) > minPrec &&\n        !this.hasPrecedingLineBreak() &&\n        this.isContextual(\"as\")\n      ) {\n        const node: N.TsAsExpression = this.startNodeAt(\n          leftStartPos,\n          leftStartLoc,\n        );\n        node.expression = left;\n        const _const = this.tsTryNextParseConstantContext();\n        if (_const) {\n          node.typeAnnotation = _const;\n        } else {\n          node.typeAnnotation = this.tsNextThenParseType();\n        }\n        this.finishNode(node, \"TSAsExpression\");\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n\n      return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec, noIn);\n    }\n\n    checkReservedWord(\n      word: string, // eslint-disable-line no-unused-vars\n      startLoc: number, // eslint-disable-line no-unused-vars\n      checkKeywords: boolean, // eslint-disable-line no-unused-vars\n      // eslint-disable-next-line no-unused-vars\n      isBinding: boolean,\n    ): void {\n      // Don't bother checking for TypeScript code.\n      // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n      // And we have a type checker anyway, so don't bother having the parser do it.\n    }\n\n    /*\n    Don't bother doing this check in TypeScript code because:\n    1. We may have a nested export statement with the same name:\n      export const x = 0;\n      export namespace N {\n        export const x = 1;\n      }\n    2. We have a type checker to warn us about this sort of thing.\n    */\n    checkDuplicateExports() {}\n\n    parseImport(node: N.Node): N.AnyImport {\n      if (this.match(tt.name) || this.match(tt.star) || this.match(tt.braceL)) {\n        const ahead = this.lookahead();\n\n        if (this.match(tt.name) && ahead.type === tt.eq) {\n          return this.tsParseImportEqualsDeclaration(node);\n        }\n\n        if (\n          this.isContextual(\"type\") &&\n          // import type, { a } from \"b\";\n          ahead.type !== tt.comma &&\n          // import type from \"a\";\n          !(ahead.type === tt.name && ahead.value === \"from\")\n        ) {\n          node.importKind = \"type\";\n          this.next();\n        } else {\n          node.importKind = \"value\";\n        }\n      }\n\n      const importNode = super.parseImport(node);\n      /*:: invariant(importNode.type !== \"TSImportEqualsDeclaration\") */\n\n      // `import type` can only be used on imports with named imports or with a\n      // default import - but not both\n      if (\n        importNode.importKind === \"type\" &&\n        importNode.specifiers.length > 1 &&\n        importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n      ) {\n        this.raise(\n          importNode.start,\n          \"A type-only import can specify a default import or named bindings, but not both.\",\n        );\n      }\n\n      return importNode;\n    }\n\n    parseExport(node: N.Node): N.AnyExport {\n      if (this.match(tt._import)) {\n        // `export import A = B;`\n        this.expect(tt._import);\n        return this.tsParseImportEqualsDeclaration(node, /* isExport */ true);\n      } else if (this.eat(tt.eq)) {\n        // `export = x;`\n        const assign: N.TsExportAssignment = node;\n        assign.expression = this.parseExpression();\n        this.semicolon();\n        return this.finishNode(assign, \"TSExportAssignment\");\n      } else if (this.eatContextual(\"as\")) {\n        // `export as namespace A;`\n        const decl: N.TsNamespaceExportDeclaration = node;\n        // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n        this.expectContextual(\"namespace\");\n        decl.id = this.parseIdentifier();\n        this.semicolon();\n        return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n      } else {\n        if (this.isContextual(\"type\") && this.lookahead().type === tt.braceL) {\n          this.next();\n          node.exportKind = \"type\";\n        } else {\n          node.exportKind = \"value\";\n        }\n\n        return super.parseExport(node);\n      }\n    }\n\n    isAbstractClass(): boolean {\n      return (\n        this.isContextual(\"abstract\") && this.lookahead().type === tt._class\n      );\n    }\n\n    parseExportDefaultExpression(): N.Expression | N.Declaration {\n      if (this.isAbstractClass()) {\n        const cls = this.startNode();\n        this.next(); // Skip \"abstract\"\n        this.parseClass(cls, true, true);\n        cls.abstract = true;\n        return cls;\n      }\n\n      // export default interface allowed in:\n      // https://github.com/Microsoft/TypeScript/pull/16040\n      if (this.state.value === \"interface\") {\n        const result = this.tsParseDeclaration(\n          this.startNode(),\n          this.state.value,\n          true,\n        );\n\n        if (result) return result;\n      }\n\n      return super.parseExportDefaultExpression();\n    }\n\n    parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n      if (this.state.type === tt._const) {\n        const ahead = this.lookahead();\n        if (ahead.type === tt.name && ahead.value === \"enum\") {\n          const node: N.TsEnumDeclaration = this.startNode();\n          this.expect(tt._const);\n          this.expectContextual(\"enum\");\n          return this.tsParseEnumDeclaration(node, /* isConst */ true);\n        }\n      }\n      return super.parseStatementContent(context, topLevel);\n    }\n\n    parseAccessModifier(): ?N.Accessibility {\n      return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n    }\n\n    parseClassMember(\n      classBody: N.ClassBody,\n      member: any,\n      state: { hadConstructor: boolean },\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"declare\"]);\n      const accessibility = this.parseAccessModifier();\n      if (accessibility) member.accessibility = accessibility;\n      this.tsParseModifiers(member, [\"declare\"]);\n\n      super.parseClassMember(classBody, member, state, constructorAllowsSuper);\n    }\n\n    parseClassMemberWithIsStatic(\n      classBody: N.ClassBody,\n      member: N.ClassMember | N.TsIndexSignature,\n      state: { hadConstructor: boolean },\n      isStatic: boolean,\n      constructorAllowsSuper: boolean,\n    ): void {\n      this.tsParseModifiers(member, [\"abstract\", \"readonly\", \"declare\"]);\n\n      const idx = this.tsTryParseIndexSignature(member);\n      if (idx) {\n        classBody.body.push(idx);\n\n        if ((member: any).abstract) {\n          this.raise(member.start, TSErrors.IndexSignatureHasAbstract);\n        }\n        if (isStatic) {\n          this.raise(member.start, TSErrors.IndexSignatureHasStatic);\n        }\n        if ((member: any).accessibility) {\n          this.raise(\n            member.start,\n            TSErrors.IndexSignatureHasAccessibility,\n            (member: any).accessibility,\n          );\n        }\n\n        return;\n      }\n\n      /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n      super.parseClassMemberWithIsStatic(\n        classBody,\n        member,\n        state,\n        isStatic,\n        constructorAllowsSuper,\n      );\n    }\n\n    parsePostMemberNameModifiers(\n      methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      const optional = this.eat(tt.question);\n      if (optional) methodOrProp.optional = true;\n\n      if ((methodOrProp: any).readonly && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly);\n      }\n\n      if ((methodOrProp: any).declare && this.match(tt.parenL)) {\n        this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare);\n      }\n    }\n\n    // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n    // is that e.g. `type()` is valid JS, so we must try parsing that first.\n    // If it's really a type, we will parse `type` as the statement, and can correct it here\n    // by parsing the rest.\n    parseExpressionStatement(\n      node: N.ExpressionStatement,\n      expr: N.Expression,\n    ): N.Statement {\n      const decl =\n        expr.type === \"Identifier\"\n          ? this.tsParseExpressionStatement(node, expr)\n          : undefined;\n      return decl || super.parseExpressionStatement(node, expr);\n    }\n\n    // export type\n    // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n    shouldParseExportDeclaration(): boolean {\n      if (this.tsIsDeclarationStart()) return true;\n      return super.shouldParseExportDeclaration();\n    }\n\n    // An apparent conditional expression could actually be an optional parameter in an arrow function.\n    parseConditional(\n      expr: N.Expression,\n      noIn: ?boolean,\n      startPos: number,\n      startLoc: Position,\n      refNeedsArrowPos?: ?Pos,\n    ): N.Expression {\n      // only do the expensive clone if there is a question mark\n      // and if we come from inside parens\n      if (!refNeedsArrowPos || !this.match(tt.question)) {\n        return super.parseConditional(\n          expr,\n          noIn,\n          startPos,\n          startLoc,\n          refNeedsArrowPos,\n        );\n      }\n\n      const result = this.tryParse(() =>\n        super.parseConditional(expr, noIn, startPos, startLoc),\n      );\n\n      if (!result.node) {\n        // $FlowIgnore\n        refNeedsArrowPos.start = result.error.pos || this.state.start;\n        return expr;\n      }\n      if (result.error) this.state = result.failState;\n      return result.node;\n    }\n\n    // Note: These \"type casts\" are *not* valid TS expressions.\n    // But we parse them here and change them when completing the arrow function.\n    parseParenItem(\n      node: N.Expression,\n      startPos: number,\n      startLoc: Position,\n    ): N.Expression {\n      node = super.parseParenItem(node, startPos, startLoc);\n      if (this.eat(tt.question)) {\n        node.optional = true;\n        // Include questionmark in location of node\n        // Don't use this.finishNode() as otherwise we might process comments twice and\n        // include already consumed parens\n        this.resetEndLocation(node);\n      }\n\n      if (this.match(tt.colon)) {\n        const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(\n          startPos,\n          startLoc,\n        );\n        typeCastNode.expression = node;\n        typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n        return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n      }\n\n      return node;\n    }\n\n    parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n      // Store original location/position\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n\n      // \"export declare\" is equivalent to just \"export\".\n      const isDeclare = this.eatContextual(\"declare\");\n\n      let declaration: ?N.Declaration;\n\n      if (this.match(tt.name)) {\n        declaration = this.tsTryParseExportDeclaration();\n      }\n      if (!declaration) {\n        declaration = super.parseExportDeclaration(node);\n      }\n      if (\n        declaration &&\n        (declaration.type === \"TSInterfaceDeclaration\" ||\n          declaration.type === \"TSTypeAliasDeclaration\" ||\n          isDeclare)\n      ) {\n        node.exportKind = \"type\";\n      }\n\n      if (declaration && isDeclare) {\n        // Reset location to include `declare` in range\n        this.resetStartLocation(declaration, startPos, startLoc);\n\n        declaration.declare = true;\n      }\n\n      return declaration;\n    }\n\n    parseClassId(\n      node: N.Class,\n      isStatement: boolean,\n      optionalId: ?boolean,\n    ): void {\n      if ((!isStatement || optionalId) && this.isContextual(\"implements\")) {\n        return;\n      }\n\n      super.parseClassId(\n        node,\n        isStatement,\n        optionalId,\n        (node: any).declare ? BIND_TS_AMBIENT : BIND_CLASS,\n      );\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n    }\n\n    parseClassPropertyAnnotation(\n      node: N.ClassProperty | N.ClassPrivateProperty,\n    ): void {\n      if (!node.optional && this.eat(tt.bang)) {\n        node.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) node.typeAnnotation = type;\n    }\n\n    parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n      this.parseClassPropertyAnnotation(node);\n\n      if (node.declare && this.match(tt.equal)) {\n        this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer);\n      }\n\n      return super.parseClassProperty(node);\n    }\n\n    parseClassPrivateProperty(\n      node: N.ClassPrivateProperty,\n    ): N.ClassPrivateProperty {\n      // $FlowIgnore\n      if (node.abstract) {\n        this.raise(node.start, TSErrors.PrivateElementHasAbstract);\n      }\n\n      // $FlowIgnore\n      if (node.accessibility) {\n        this.raise(\n          node.start,\n          TSErrors.PrivateElementHasAccessibility,\n          node.accessibility,\n        );\n      }\n\n      this.parseClassPropertyAnnotation(node);\n      return super.parseClassPrivateProperty(node);\n    }\n\n    pushClassMethod(\n      classBody: N.ClassBody,\n      method: N.ClassMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n      isConstructor: boolean,\n      allowsDirectSuper: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassMethod(\n        classBody,\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    }\n\n    pushClassPrivateMethod(\n      classBody: N.ClassBody,\n      method: N.ClassPrivateMethod,\n      isGenerator: boolean,\n      isAsync: boolean,\n    ): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) method.typeParameters = typeParameters;\n      super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n    }\n\n    parseClassSuper(node: N.Class): void {\n      super.parseClassSuper(node);\n      if (node.superClass && this.isRelational(\"<\")) {\n        node.superTypeParameters = this.tsParseTypeArguments();\n      }\n      if (this.eatContextual(\"implements\")) {\n        node.implements = this.tsParseHeritageClause(\"implements\");\n      }\n    }\n\n    parseObjPropValue(prop: N.ObjectMember, ...args): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) prop.typeParameters = typeParameters;\n\n      super.parseObjPropValue(prop, ...args);\n    }\n\n    parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n      const typeParameters = this.tsTryParseTypeParameters();\n      if (typeParameters) node.typeParameters = typeParameters;\n      super.parseFunctionParams(node, allowModifiers);\n    }\n\n    // `let x: number;`\n    parseVarId(\n      decl: N.VariableDeclarator,\n      kind: \"var\" | \"let\" | \"const\",\n    ): void {\n      super.parseVarId(decl, kind);\n      if (decl.id.type === \"Identifier\" && this.eat(tt.bang)) {\n        decl.definite = true;\n      }\n\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) {\n        decl.id.typeAnnotation = type;\n        this.resetEndLocation(decl.id); // set end position to end of type\n      }\n    }\n\n    // parse the return type of an async arrow function - let foo = (async (): number => {});\n    parseAsyncArrowFromCallExpression(\n      node: N.ArrowFunctionExpression,\n      call: N.CallExpression,\n    ): N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        node.returnType = this.tsParseTypeAnnotation();\n      }\n      return super.parseAsyncArrowFromCallExpression(node, call);\n    }\n\n    parseMaybeAssign(...args): N.Expression {\n      // Note: When the JSX plugin is on, type assertions (`<T> x`) aren't valid syntax.\n\n      let state: ?State;\n      let jsx;\n      let typeCast;\n\n      if (this.match(tt.jsxTagStart)) {\n        // Prefer to parse JSX if possible. But may be an arrow fn.\n        state = this.state.clone();\n\n        jsx = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!jsx.aborted) */\n\n        if (!jsx.error) return jsx.node;\n\n        // Remove `tc.j_expr` and `tc.j_oTag` from context added\n        // by parsing `jsxTagStart` to stop the JSX plugin from\n        // messing with the tokens\n        const { context } = this.state;\n        if (context[context.length - 1] === ct.j_oTag) {\n          context.length -= 2;\n        } else if (context[context.length - 1] === ct.j_expr) {\n          context.length -= 1;\n        }\n      }\n\n      if (!(jsx && jsx.error) && !this.isRelational(\"<\")) {\n        return super.parseMaybeAssign(...args);\n      }\n\n      // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n      let typeParameters: N.TsTypeParameterDeclaration;\n      state = state || this.state.clone();\n\n      const arrow = this.tryParse(abort => {\n        // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n        typeParameters = this.tsParseTypeParameters();\n        const expr = super.parseMaybeAssign(...args);\n\n        if (\n          expr.type !== \"ArrowFunctionExpression\" ||\n          (expr.extra && expr.extra.parenthesized)\n        ) {\n          abort();\n        }\n\n        // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n        if (typeParameters && typeParameters.params.length !== 0) {\n          this.resetStartLocationFromNode(expr, typeParameters);\n        }\n        expr.typeParameters = typeParameters;\n        return expr;\n      }, state);\n\n      if (!arrow.error && !arrow.aborted) return arrow.node;\n\n      if (!jsx) {\n        // Try parsing a type cast instead of an arrow function.\n        // This will never happen outside of JSX.\n        // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n        assert(!this.hasPlugin(\"jsx\"));\n\n        // This will start with a type assertion (via parseMaybeUnary).\n        // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n        typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state);\n        /*:: invariant(!typeCast.aborted) */\n        if (!typeCast.error) return typeCast.node;\n      }\n\n      if (jsx && jsx.node) {\n        /*:: invariant(jsx.failState) */\n        this.state = jsx.failState;\n        return jsx.node;\n      }\n\n      if (arrow.node) {\n        /*:: invariant(arrow.failState) */\n        this.state = arrow.failState;\n        return arrow.node;\n      }\n\n      if (typeCast && typeCast.node) {\n        /*:: invariant(typeCast.failState) */\n        this.state = typeCast.failState;\n        return typeCast.node;\n      }\n\n      if (jsx && jsx.thrown) throw jsx.error;\n      if (arrow.thrown) throw arrow.error;\n      if (typeCast && typeCast.thrown) throw typeCast.error;\n\n      throw (jsx && jsx.error) || arrow.error || (typeCast && typeCast.error);\n    }\n\n    // Handle type assertions\n    parseMaybeUnary(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n      if (!this.hasPlugin(\"jsx\") && this.isRelational(\"<\")) {\n        return this.tsParseTypeAssertion();\n      } else {\n        return super.parseMaybeUnary(refExpressionErrors);\n      }\n    }\n\n    parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n      if (this.match(tt.colon)) {\n        // This is different from how the TS parser does it.\n        // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n        const result = this.tryParse(abort => {\n          const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n            tt.colon,\n          );\n          if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n          return returnType;\n        });\n\n        if (result.aborted) return;\n\n        if (!result.thrown) {\n          if (result.error) this.state = result.failState;\n          node.returnType = result.node;\n        }\n      }\n\n      return super.parseArrow(node);\n    }\n\n    // Allow type annotations inside of a parameter list.\n    parseAssignableListItemTypes(param: N.Pattern) {\n      if (this.eat(tt.question)) {\n        if (param.type !== \"Identifier\") {\n          this.raise(param.start, TSErrors.PatternIsOptional);\n        }\n\n        ((param: any): N.Identifier).optional = true;\n      }\n      const type = this.tsTryParseTypeAnnotation();\n      if (type) param.typeAnnotation = type;\n      this.resetEndLocation(param);\n\n      return param;\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      switch (node.type) {\n        case \"TSTypeCastExpression\":\n          return super.toAssignable(this.typeCastToParameter(node));\n        case \"TSParameterProperty\":\n          return super.toAssignable(node);\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          node.expression = this.toAssignable(node.expression);\n          return node;\n        default:\n          return super.toAssignable(node);\n      }\n    }\n\n    checkLVal(\n      expr: N.Expression,\n      bindingType: BindingTypes = BIND_NONE,\n      checkClashes: ?{ [key: string]: boolean },\n      contextDescription: string,\n    ): void {\n      switch (expr.type) {\n        case \"TSTypeCastExpression\":\n          // Allow \"typecasts\" to appear on the left of assignment expressions,\n          // because it may be in an arrow function.\n          // e.g. `const f = (foo: number = 0) => foo;`\n          return;\n        case \"TSParameterProperty\":\n          this.checkLVal(\n            expr.parameter,\n            bindingType,\n            checkClashes,\n            \"parameter property\",\n          );\n          return;\n        case \"TSAsExpression\":\n        case \"TSNonNullExpression\":\n        case \"TSTypeAssertion\":\n          this.checkLVal(\n            expr.expression,\n            bindingType,\n            checkClashes,\n            contextDescription,\n          );\n          return;\n        default:\n          super.checkLVal(expr, bindingType, checkClashes, contextDescription);\n          return;\n      }\n    }\n\n    parseBindingAtom(): N.Pattern {\n      switch (this.state.type) {\n        case tt._this:\n          // \"this\" may be the name of a parameter, so allow it.\n          return this.parseIdentifier(/* liberal */ true);\n        default:\n          return super.parseBindingAtom();\n      }\n    }\n\n    parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsParseTypeArguments();\n\n        if (this.match(tt.parenL)) {\n          const call = super.parseMaybeDecoratorArguments(expr);\n          call.typeParameters = typeArguments;\n          return call;\n        }\n\n        this.unexpected(this.state.start, tt.parenL);\n      }\n\n      return super.parseMaybeDecoratorArguments(expr);\n    }\n\n    // === === === === === === === === === === === === === === === ===\n    // Note: All below methods are duplicates of something in flow.js.\n    // Not sure what the best way to combine these is.\n    // === === === === === === === === === === === === === === === ===\n\n    isClassMethod(): boolean {\n      return this.isRelational(\"<\") || super.isClassMethod();\n    }\n\n    isClassProperty(): boolean {\n      return (\n        this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n      );\n    }\n\n    parseMaybeDefault(...args): N.Pattern {\n      const node = super.parseMaybeDefault(...args);\n\n      if (\n        node.type === \"AssignmentPattern\" &&\n        node.typeAnnotation &&\n        node.right.start < node.typeAnnotation.start\n      ) {\n        this.raise(\n          node.typeAnnotation.start,\n          TSErrors.TypeAnnotationAfterAssign,\n        );\n      }\n\n      return node;\n    }\n\n    // ensure that inside types, we bypass the jsx parser plugin\n    getTokenFromCode(code: number): void {\n      if (this.state.inType && (code === 62 || code === 60)) {\n        return this.finishOp(tt.relational, 1);\n      } else {\n        return super.getTokenFromCode(code);\n      }\n    }\n\n    toAssignableList(exprList: N.Expression[]): $ReadOnlyArray<N.Pattern> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (!expr) continue;\n        switch (expr.type) {\n          case \"TSTypeCastExpression\":\n            exprList[i] = this.typeCastToParameter(expr);\n            break;\n          case \"TSAsExpression\":\n          case \"TSTypeAssertion\":\n            if (!this.state.maybeInArrowParameters) {\n              exprList[i] = this.typeCastToParameter(expr);\n            } else {\n              this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter);\n            }\n            break;\n        }\n      }\n      return super.toAssignableList(...arguments);\n    }\n\n    typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n      node.expression.typeAnnotation = node.typeAnnotation;\n\n      this.resetEndLocation(\n        node.expression,\n        node.typeAnnotation.end,\n        node.typeAnnotation.loc.end,\n      );\n\n      return node.expression;\n    }\n\n    toReferencedList(\n      exprList: $ReadOnlyArray<?N.Expression>,\n      isInParens?: boolean, // eslint-disable-line no-unused-vars\n    ): $ReadOnlyArray<?N.Expression> {\n      for (let i = 0; i < exprList.length; i++) {\n        const expr = exprList[i];\n        if (expr && expr.type === \"TSTypeCastExpression\") {\n          this.raise(expr.start, TSErrors.UnexpectedTypeAnnotation);\n        }\n      }\n\n      return exprList;\n    }\n\n    shouldParseArrow() {\n      return this.match(tt.colon) || super.shouldParseArrow();\n    }\n\n    shouldParseAsyncArrow(): boolean {\n      return this.match(tt.colon) || super.shouldParseAsyncArrow();\n    }\n\n    canHaveLeadingDecorator() {\n      // Avoid unnecessary lookahead in checking for abstract class unless needed!\n      return super.canHaveLeadingDecorator() || this.isAbstractClass();\n    }\n\n    jsxParseOpeningElementAfterName(\n      node: N.JSXOpeningElement,\n    ): N.JSXOpeningElement {\n      if (this.isRelational(\"<\")) {\n        const typeArguments = this.tsTryParseAndCatch(() =>\n          this.tsParseTypeArguments(),\n        );\n        if (typeArguments) node.typeParameters = typeArguments;\n      }\n      return super.jsxParseOpeningElementAfterName(node);\n    }\n\n    getGetterSetterExpectedParamCount(\n      method: N.ObjectMethod | N.ClassMethod,\n    ): number {\n      const baseCount = super.getGetterSetterExpectedParamCount(method);\n      const firstParam = method.params[0];\n      const hasContextParam =\n        firstParam &&\n        firstParam.type === \"Identifier\" &&\n        firstParam.name === \"this\";\n\n      return hasContextParam ? baseCount + 1 : baseCount;\n    }\n  };\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport * as N from \"../types\";\n\ntt.placeholder = new TokenType(\"%%\", { startsExpr: true });\n\nexport type PlaceholderTypes =\n  | \"Identifier\"\n  | \"StringLiteral\"\n  | \"Expression\"\n  | \"Statement\"\n  | \"Declaration\"\n  | \"BlockStatement\"\n  | \"ClassBody\"\n  | \"Pattern\";\n\n// $PropertyType doesn't support enums. Use a fake \"switch\" (GetPlaceholderNode)\n//type MaybePlaceholder<T: PlaceholderTypes> = $PropertyType<N, T> | N.Placeholder<T>;\n\ntype _Switch<Value, Cases, Index> = $Call<\n  (\n    $ElementType<$ElementType<Cases, Index>, 0>,\n  ) => $ElementType<$ElementType<Cases, Index>, 1>,\n  Value,\n>;\ntype $Switch<Value, Cases> = _Switch<Value, Cases, *>;\n\ntype NodeOf<T: PlaceholderTypes> = $Switch<\n  T,\n  [\n    [\"Identifier\", N.Identifier],\n    [\"StringLiteral\", N.StringLiteral],\n    [\"Expression\", N.Expression],\n    [\"Statement\", N.Statement],\n    [\"Declaration\", N.Declaration],\n    [\"BlockStatement\", N.BlockStatement],\n    [\"ClassBody\", N.ClassBody],\n    [\"Pattern\", N.Pattern],\n  ],\n>;\n\n// Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T: PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parsePlaceholder<T: PlaceholderTypes>(\n      expectedNode: T,\n    ): /*?N.Placeholder<T>*/ ?MaybePlaceholder<T> {\n      if (this.match(tt.placeholder)) {\n        const node = this.startNode();\n        this.next();\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n\n        // We can't use this.parseIdentifier because\n        // we don't want nested placeholders.\n        node.name = super.parseIdentifier(/* liberal */ true);\n\n        this.assertNoSpace(\"Unexpected space in placeholder.\");\n        this.expect(tt.placeholder);\n        return this.finishPlaceholder(node, expectedNode);\n      }\n    }\n\n    finishPlaceholder<T: PlaceholderTypes>(\n      node: N.Node,\n      expectedNode: T,\n    ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n      const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n      node.expectedNode = expectedNode;\n\n      return isFinished ? node : this.finishNode(node, \"Placeholder\");\n    }\n\n    /* ============================================================ *\n     * tokenizer/index.js                                           *\n     * ============================================================ */\n\n    getTokenFromCode(code: number) {\n      if (\n        code === charCodes.percentSign &&\n        this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n      ) {\n        return this.finishOp(tt.placeholder, 2);\n      }\n\n      return super.getTokenFromCode(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): MaybePlaceholder<\"Expression\"> {\n      return (\n        this.parsePlaceholder(\"Expression\") || super.parseExprAtom(...arguments)\n      );\n    }\n\n    parseIdentifier(): MaybePlaceholder<\"Identifier\"> {\n      // NOTE: This function only handles identifiers outside of\n      // expressions and binding patterns, since they are already\n      // handled by the parseExprAtom and parseBindingAtom functions.\n      // This is needed, for example, to parse \"class %%NAME%% {}\".\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseIdentifier(...arguments)\n      );\n    }\n\n    checkReservedWord(word: string): void {\n      // Sometimes we call #checkReservedWord(node.name), expecting\n      // that node is an Identifier. If it is a Placeholder, name\n      // will be undefined.\n      if (word !== undefined) super.checkReservedWord(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/lval.js                                               *\n     * ============================================================ */\n\n    parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n      return (\n        this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom(...arguments)\n      );\n    }\n\n    checkLVal(expr: N.Expression): void {\n      if (expr.type !== \"Placeholder\") super.checkLVal(...arguments);\n    }\n\n    toAssignable(node: N.Node): N.Node {\n      if (\n        node &&\n        node.type === \"Placeholder\" &&\n        node.expectedNode === \"Expression\"\n      ) {\n        node.expectedNode = \"Pattern\";\n        return node;\n      }\n      return super.toAssignable(...arguments);\n    }\n\n    /* ============================================================ *\n     * parser/statement.js                                          *\n     * ============================================================ */\n\n    verifyBreakContinue(node: N.BreakStatement | N.ContinueStatement) {\n      if (node.label && node.label.type === \"Placeholder\") return;\n      super.verifyBreakContinue(...arguments);\n    }\n\n    parseExpressionStatement(\n      node: MaybePlaceholder<\"Statement\">,\n      expr: N.Expression,\n    ): MaybePlaceholder<\"Statement\"> {\n      if (\n        expr.type !== \"Placeholder\" ||\n        (expr.extra && expr.extra.parenthesized)\n      ) {\n        return super.parseExpressionStatement(...arguments);\n      }\n\n      if (this.match(tt.colon)) {\n        const stmt: N.LabeledStatement = node;\n        stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n        this.next();\n        stmt.body = this.parseStatement(\"label\");\n        return this.finishNode(stmt, \"LabeledStatement\");\n      }\n\n      this.semicolon();\n\n      node.name = expr.name;\n      return this.finishPlaceholder(node, \"Statement\");\n    }\n\n    parseBlock(): MaybePlaceholder<\"BlockStatement\"> {\n      return (\n        this.parsePlaceholder(\"BlockStatement\") ||\n        super.parseBlock(...arguments)\n      );\n    }\n\n    parseFunctionId(): ?MaybePlaceholder<\"Identifier\"> {\n      return (\n        this.parsePlaceholder(\"Identifier\") ||\n        super.parseFunctionId(...arguments)\n      );\n    }\n\n    parseClass<T: N.Class>(\n      node: T,\n      isStatement: /* T === ClassDeclaration */ boolean,\n      optionalId?: boolean,\n    ): T {\n      const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n      this.next();\n      this.takeDecorators(node);\n\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (placeholder) {\n        if (\n          this.match(tt._extends) ||\n          this.match(tt.placeholder) ||\n          this.match(tt.braceL)\n        ) {\n          node.id = placeholder;\n        } else if (optionalId || !isStatement) {\n          node.id = null;\n          node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n          return this.finishNode(node, type);\n        } else {\n          this.unexpected(null, \"A class name is required\");\n        }\n      } else {\n        this.parseClassId(node, isStatement, optionalId);\n      }\n\n      this.parseClassSuper(node);\n      node.body =\n        this.parsePlaceholder(\"ClassBody\") ||\n        this.parseClassBody(!!node.superClass);\n      return this.finishNode(node, type);\n    }\n\n    parseExport(node: N.Node): N.Node {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseExport(...arguments);\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // export %%DECL%%;\n        node.specifiers = [];\n        node.source = null;\n        node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n        return this.finishNode(node, \"ExportNamedDeclaration\");\n      }\n\n      // export %%NAME%% from \"foo\";\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = placeholder;\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n      return super.parseExport(node);\n    }\n\n    maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n      if (node.specifiers && node.specifiers.length > 0) {\n        // \"export %%NAME%%\" has already been parsed by #parseExport.\n        return true;\n      }\n      return super.maybeParseExportDefaultSpecifier(...arguments);\n    }\n\n    checkExport(node: N.ExportNamedDeclaration): void {\n      const { specifiers } = node;\n      if (specifiers && specifiers.length) {\n        node.specifiers = specifiers.filter(\n          node => node.exported.type === \"Placeholder\",\n        );\n      }\n      super.checkExport(node);\n      node.specifiers = specifiers;\n    }\n\n    parseImport(\n      node: N.Node,\n    ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n      const placeholder = this.parsePlaceholder(\"Identifier\");\n      if (!placeholder) return super.parseImport(...arguments);\n\n      node.specifiers = [];\n\n      if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n        // import %%STRING%%;\n        node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n        this.semicolon();\n        return this.finishNode(node, \"ImportDeclaration\");\n      }\n\n      // import %%DEFAULT%% ...\n      const specifier = this.startNodeAtNode(placeholder);\n      specifier.local = placeholder;\n      this.finishNode(specifier, \"ImportDefaultSpecifier\");\n      node.specifiers.push(specifier);\n\n      if (this.eat(tt.comma)) {\n        // import %%DEFAULT%%, * as ...\n        const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n        // import %%DEFAULT%%, { ...\n        if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n      }\n\n      this.expectContextual(\"from\");\n      node.source = this.parseImportSource();\n      this.semicolon();\n      return this.finishNode(node, \"ImportDeclaration\");\n    }\n\n    parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n      // import ... from %%STRING%%;\n\n      return (\n        this.parsePlaceholder(\"StringLiteral\") ||\n        super.parseImportSource(...arguments)\n      );\n    }\n  };\n","import type Parser from \"../parser\";\nimport { types as tt } from \"../tokenizer/types\";\nimport * as N from \"../types\";\n\nexport default (superClass: Class<Parser>): Class<Parser> =>\n  class extends superClass {\n    parseV8Intrinsic(): N.Expression {\n      if (this.match(tt.modulo)) {\n        const v8IntrinsicStart = this.state.start;\n        // let the `loc` of Identifier starts from `%`\n        const node = this.startNode();\n        this.eat(tt.modulo);\n        if (this.match(tt.name)) {\n          const name = this.parseIdentifierName(this.state.start);\n          const identifier = this.createIdentifier(node, name);\n          identifier.type = \"V8IntrinsicIdentifier\";\n          if (this.match(tt.parenL)) {\n            return identifier;\n          }\n        }\n        this.unexpected(v8IntrinsicStart);\n      }\n    }\n\n    /* ============================================================ *\n     * parser/expression.js                                         *\n     * ============================================================ */\n\n    parseExprAtom(): N.Expression {\n      return this.parseV8Intrinsic() || super.parseExprAtom(...arguments);\n    }\n  };\n","// @flow\n\nimport type Parser from \"./parser\";\n\nexport type Plugin = string | [string, Object];\n\nexport type PluginList = $ReadOnlyArray<Plugin>;\n\nexport type MixinPlugin = (superClass: Class<Parser>) => Class<Parser>;\n\nexport function hasPlugin(plugins: PluginList, name: string): boolean {\n  return plugins.some(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n}\n\nexport function getPluginOption(\n  plugins: PluginList,\n  name: string,\n  option: string,\n) {\n  const plugin = plugins.find(plugin => {\n    if (Array.isArray(plugin)) {\n      return plugin[0] === name;\n    } else {\n      return plugin === name;\n    }\n  });\n\n  if (plugin && Array.isArray(plugin)) {\n    return plugin[1][option];\n  }\n\n  return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"smart\", \"fsharp\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n  if (hasPlugin(plugins, \"decorators\")) {\n    if (hasPlugin(plugins, \"decorators-legacy\")) {\n      throw new Error(\n        \"Cannot use the decorators and decorators-legacy plugin together\",\n      );\n    }\n\n    const decoratorsBeforeExport = getPluginOption(\n      plugins,\n      \"decorators\",\n      \"decoratorsBeforeExport\",\n    );\n    if (decoratorsBeforeExport == null) {\n      throw new Error(\n        \"The 'decorators' plugin requires a 'decoratorsBeforeExport' option,\" +\n          \" whose value must be a boolean. If you are migrating from\" +\n          \" Babylon/Babel 6 or want to use the old decorators proposal, you\" +\n          \" should use the 'decorators-legacy' plugin instead of 'decorators'.\",\n      );\n    } else if (typeof decoratorsBeforeExport !== \"boolean\") {\n      throw new Error(\"'decoratorsBeforeExport' must be a boolean.\");\n    }\n  }\n\n  if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n    throw new Error(\"Cannot combine flow and typescript plugins.\");\n  }\n\n  if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n    throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n  }\n\n  if (\n    hasPlugin(plugins, \"pipelineOperator\") &&\n    !PIPELINE_PROPOSALS.includes(\n      getPluginOption(plugins, \"pipelineOperator\", \"proposal\"),\n    )\n  ) {\n    throw new Error(\n      \"'pipelineOperator' requires 'proposal' option whose value should be one of: \" +\n        PIPELINE_PROPOSALS.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n\n  if (\n    hasPlugin(plugins, \"recordAndTuple\") &&\n    !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n      getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n    )\n  ) {\n    throw new Error(\n      \"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \" +\n        RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n    );\n  }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree\";\nimport flow from \"./plugins/flow\";\nimport jsx from \"./plugins/jsx\";\nimport typescript from \"./plugins/typescript\";\nimport placeholders from \"./plugins/placeholders\";\nimport v8intrinsic from \"./plugins/v8intrinsic\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins: { [name: string]: MixinPlugin } = {\n  estree,\n  jsx,\n  flow,\n  typescript,\n  v8intrinsic,\n  placeholders,\n};\n\nexport const mixinPluginNames: $ReadOnlyArray<string> = Object.keys(\n  mixinPlugins,\n);\n","// @flow\n\nimport type { PluginList } from \"./plugin-utils\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n  sourceType: SourceType,\n  sourceFilename?: string,\n  startLine: number,\n  allowAwaitOutsideFunction: boolean,\n  allowReturnOutsideFunction: boolean,\n  allowImportExportEverywhere: boolean,\n  allowSuperOutsideMethod: boolean,\n  allowUndeclaredExports: boolean,\n  plugins: PluginList,\n  strictMode: ?boolean,\n  ranges: boolean,\n  tokens: boolean,\n  createParenthesizedExpressions: boolean,\n  errorRecovery: boolean,\n};\n\nexport const defaultOptions: Options = {\n  // Source type (\"script\" or \"module\") for different semantics\n  sourceType: \"script\",\n  // Source filename.\n  sourceFilename: undefined,\n  // Line from which to start counting source. Useful for\n  // integration with other tools.\n  startLine: 1,\n  // When enabled, await at the top level is not considered an\n  // error.\n  allowAwaitOutsideFunction: false,\n  // When enabled, a return at the top level is not considered an\n  // error.\n  allowReturnOutsideFunction: false,\n  // When enabled, import/export statements are not constrained to\n  // appearing at the top of the program.\n  allowImportExportEverywhere: false,\n  // TODO\n  allowSuperOutsideMethod: false,\n  // When enabled, export statements can reference undeclared variables.\n  allowUndeclaredExports: false,\n  // An array of plugins to enable\n  plugins: [],\n  // TODO\n  strictMode: null,\n  // Nodes have their start and end characters offsets recorded in\n  // `start` and `end` properties (directly on the node, rather than\n  // the `loc` object, which holds line/column data. To also add a\n  // [semi-standardized][range] `range` property holding a `[start,\n  // end]` array with the same numbers, set the `ranges` option to\n  // `true`.\n  //\n  // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n  ranges: false,\n  // Adds all parsed tokens to a `tokens` property on the `File` node\n  tokens: false,\n  // Whether to create ParenthesizedExpression AST nodes (if false\n  // the parser sets extra.parenthesized on the expression nodes instead).\n  createParenthesizedExpressions: false,\n  // When enabled, errors are attached to the AST instead of being directly thrown.\n  // Some errors will still throw, because @babel/parser can't always recover.\n  errorRecovery: false,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts: ?Options): Options {\n  const options: any = {};\n  for (const key of Object.keys(defaultOptions)) {\n    options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key];\n  }\n  return options;\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport { Position } from \"../util/location\";\n\nimport { types as ct, type TokContext } from \"./context\";\nimport { types as tt, type TokenType } from \"./types\";\n\ntype TopicContextState = {\n  // When a topic binding has been currently established,\n  // then this is 1. Otherwise, it is 0. This is forwards compatible\n  // with a future plugin for multiple lexical topics.\n  maxNumOfResolvableTopics: number,\n\n  // When a topic binding has been currently established, and if that binding\n  // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n  // `null`. This is forwards compatible with a future plugin for multiple\n  // lexical topics.\n  maxTopicIndex: null | 0,\n};\n\nexport default class State {\n  strict: boolean;\n  curLine: number;\n\n  // And, if locations are used, the {line, column} object\n  // corresponding to those offsets\n  startLoc: Position;\n  endLoc: Position;\n\n  init(options: Options): void {\n    this.strict =\n      options.strictMode === false ? false : options.sourceType === \"module\";\n\n    this.curLine = options.startLine;\n    this.startLoc = this.endLoc = this.curPosition();\n  }\n\n  errors: SyntaxError[] = [];\n\n  // Used to signify the start of a potential arrow function\n  potentialArrowAt: number = -1;\n\n  // Used to signify the start of an expression which looks like a\n  // typed arrow function, but it isn't\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowAt: number[] = [];\n\n  // Used to signify the start of an expression whose params, if it looks like\n  // an arrow function, shouldn't be converted to assignable nodes.\n  // This is used to defer the validation of typed arrow functions inside\n  // conditional expressions.\n  // e.g. a ? (b) : c => d\n  //          ^\n  noArrowParamsConversionAt: number[] = [];\n\n  // Flags to track\n  inParameters: boolean = false;\n  maybeInArrowParameters: boolean = false;\n  // This flag is used to track async arrow head across function declarations.\n  // e.g. async (foo = function (await) {}) => {}\n  // When parsing `await` in this expression, `maybeInAsyncArrowHead` is true\n  // but `maybeInArrowParameters` is false\n  maybeInAsyncArrowHead: boolean = false;\n  inPipeline: boolean = false;\n  inType: boolean = false;\n  noAnonFunctionType: boolean = false;\n  inPropertyName: boolean = false;\n  hasFlowComment: boolean = false;\n  isIterator: boolean = false;\n\n  // For the smartPipelines plugin:\n  topicContext: TopicContextState = {\n    maxNumOfResolvableTopics: 0,\n    maxTopicIndex: null,\n  };\n\n  // For the F# plugin\n  soloAwait: boolean = false;\n  inFSharpPipelineDirectBody: boolean = false;\n\n  // Labels in scope.\n  labels: Array<{\n    kind: ?(\"loop\" | \"switch\"),\n    name?: ?string,\n    statementStart?: number,\n  }> = [];\n\n  // Leading decorators. Last element of the stack represents the decorators in current context.\n  // Supports nesting of decorators, e.g. @foo(@bar class inner {}) class outer {}\n  // where @foo belongs to the outer class and @bar to the inner\n  decoratorStack: Array<Array<N.Decorator>> = [[]];\n\n  // Positions to delayed-check that yield/await does not exist in default parameters.\n  yieldPos: number = -1;\n  awaitPos: number = -1;\n\n  // Comment store.\n  comments: Array<N.Comment> = [];\n\n  // Comment attachment store\n  trailingComments: Array<N.Comment> = [];\n  leadingComments: Array<N.Comment> = [];\n  commentStack: Array<{\n    start: number,\n    leadingComments: ?Array<N.Comment>,\n    trailingComments: ?Array<N.Comment>,\n    type: string,\n  }> = [];\n  // $FlowIgnore this is initialized when the parser starts.\n  commentPreviousNode: N.Node = null;\n\n  // The current position of the tokenizer in the input.\n  pos: number = 0;\n  lineStart: number = 0;\n\n  // Properties of the current token:\n  // Its type\n  type: TokenType = tt.eof;\n\n  // For tokens that include more information than their type, the value\n  value: any = null;\n\n  // Its start and end offset\n  start: number = 0;\n  end: number = 0;\n\n  // Position information for the previous token\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokEndLoc: Position = null;\n  // $FlowIgnore this is initialized when generating the second token.\n  lastTokStartLoc: Position = null;\n  lastTokStart: number = 0;\n  lastTokEnd: number = 0;\n\n  // The context stack is used to superficially track syntactic\n  // context to predict whether a regular expression is allowed in a\n  // given position.\n  context: Array<TokContext> = [ct.braceStatement];\n  exprAllowed: boolean = true;\n\n  // Used to signal to callers of `readWord1` whether the word\n  // contained any escape sequences. This is needed because words with\n  // escape sequences must not be interpreted as keywords.\n  containsEsc: boolean = false;\n\n  // This property is used to throw an error for\n  // an octal literal in a directive that occurs prior\n  // to a \"use strict\" directive.\n  octalPositions: number[] = [];\n\n  // Names of exports store. `default` is stored as a name for both\n  // `export default foo;` and `export { foo as default };`.\n  exportedIdentifiers: Array<string> = [];\n\n  // Tokens length in token store\n  tokensLength: number = 0;\n\n  curPosition(): Position {\n    return new Position(this.curLine, this.pos - this.lineStart);\n  }\n\n  clone(skipArrays?: boolean): State {\n    const state = new State();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // $FlowIgnore\n      let val = this[key];\n\n      if (!skipArrays && Array.isArray(val)) {\n        val = val.slice();\n      }\n\n      // $FlowIgnore\n      state[key] = val;\n    }\n\n    return state;\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier\";\nimport { types as tt, keywords as keywordTypes, type TokenType } from \"./types\";\nimport { type TokContext, types as ct } from \"./context\";\nimport LocationParser, { Errors } from \"../parser/location\";\nimport { SourceLocation } from \"../util/location\";\nimport {\n  lineBreak,\n  lineBreakG,\n  isNewLine,\n  isWhitespace,\n  skipWhiteSpace,\n} from \"../util/whitespace\";\nimport State from \"./state\";\n\nconst VALID_REGEX_FLAGS = new Set([\"g\", \"m\", \"s\", \"i\", \"y\", \"u\"]);\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\n\nconst forbiddenNumericSeparatorSiblings = {\n  decBinOct: [\n    charCodes.dot,\n    charCodes.uppercaseB,\n    charCodes.uppercaseE,\n    charCodes.uppercaseO,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseB,\n    charCodes.lowercaseE,\n    charCodes.lowercaseO,\n  ],\n  hex: [\n    charCodes.dot,\n    charCodes.uppercaseX,\n    charCodes.underscore, // multiple separators are not allowed\n    charCodes.lowercaseX,\n  ],\n};\n\nconst allowedNumericSeparatorSiblings = {};\nallowedNumericSeparatorSiblings.bin = [\n  // 0 - 1\n  charCodes.digit0,\n  charCodes.digit1,\n];\nallowedNumericSeparatorSiblings.oct = [\n  // 0 - 7\n  ...allowedNumericSeparatorSiblings.bin,\n\n  charCodes.digit2,\n  charCodes.digit3,\n  charCodes.digit4,\n  charCodes.digit5,\n  charCodes.digit6,\n  charCodes.digit7,\n];\nallowedNumericSeparatorSiblings.dec = [\n  // 0 - 9\n  ...allowedNumericSeparatorSiblings.oct,\n\n  charCodes.digit8,\n  charCodes.digit9,\n];\n\nallowedNumericSeparatorSiblings.hex = [\n  // 0 - 9, A - F, a - f,\n  ...allowedNumericSeparatorSiblings.dec,\n\n  charCodes.uppercaseA,\n  charCodes.uppercaseB,\n  charCodes.uppercaseC,\n  charCodes.uppercaseD,\n  charCodes.uppercaseE,\n  charCodes.uppercaseF,\n\n  charCodes.lowercaseA,\n  charCodes.lowercaseB,\n  charCodes.lowercaseC,\n  charCodes.lowercaseD,\n  charCodes.lowercaseE,\n  charCodes.lowercaseF,\n];\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n  constructor(state: State) {\n    this.type = state.type;\n    this.value = state.value;\n    this.start = state.start;\n    this.end = state.end;\n    this.loc = new SourceLocation(state.startLoc, state.endLoc);\n  }\n\n  type: TokenType;\n  value: any;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default class Tokenizer extends LocationParser {\n  // Forward-declarations\n  // parser/util.js\n  /*::\n  +unexpected: (pos?: ?number, messageOrType?: string | TokenType) => empty;\n  */\n\n  isLookahead: boolean;\n\n  // Token store.\n  tokens: Array<Token | N.Comment> = [];\n\n  constructor(options: Options, input: string) {\n    super();\n    this.state = new State();\n    this.state.init(options);\n    this.input = input;\n    this.length = input.length;\n    this.isLookahead = false;\n  }\n\n  pushToken(token: Token | N.Comment) {\n    // Pop out invalid tokens trapped by try-catch parsing.\n    // Those parsing branches are mainly created by typescript and flow plugins.\n    this.tokens.length = this.state.tokensLength;\n    this.tokens.push(token);\n    ++this.state.tokensLength;\n  }\n\n  // Move to the next token\n\n  next(): void {\n    if (!this.isLookahead) {\n      this.checkKeywordEscapes();\n      if (this.options.tokens) {\n        this.pushToken(new Token(this.state));\n      }\n    }\n\n    this.state.lastTokEnd = this.state.end;\n    this.state.lastTokStart = this.state.start;\n    this.state.lastTokEndLoc = this.state.endLoc;\n    this.state.lastTokStartLoc = this.state.startLoc;\n    this.nextToken();\n  }\n\n  // TODO\n\n  eat(type: TokenType): boolean {\n    if (this.match(type)) {\n      this.next();\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  // TODO\n\n  match(type: TokenType): boolean {\n    return this.state.type === type;\n  }\n\n  // TODO\n\n  lookahead(): State {\n    const old = this.state;\n    this.state = old.clone(true);\n\n    this.isLookahead = true;\n    this.next();\n    this.isLookahead = false;\n\n    const curr = this.state;\n    this.state = old;\n    return curr;\n  }\n\n  nextTokenStart(): number {\n    const thisTokEnd = this.state.pos;\n    skipWhiteSpace.lastIndex = thisTokEnd;\n    const skip = skipWhiteSpace.exec(this.input);\n    // $FlowIgnore: The skipWhiteSpace ensures to match any string\n    return thisTokEnd + skip[0].length;\n  }\n\n  lookaheadCharCode(): number {\n    return this.input.charCodeAt(this.nextTokenStart());\n  }\n\n  // Toggle strict mode. Re-reads the next number or string to please\n  // pedantic tests (`\"use strict\"; 010;` should fail).\n\n  setStrict(strict: boolean): void {\n    this.state.strict = strict;\n    if (!this.match(tt.num) && !this.match(tt.string)) return;\n    this.state.pos = this.state.start;\n    while (this.state.pos < this.state.lineStart) {\n      this.state.lineStart =\n        this.input.lastIndexOf(\"\\n\", this.state.lineStart - 2) + 1;\n      --this.state.curLine;\n    }\n    this.nextToken();\n  }\n\n  curContext(): TokContext {\n    return this.state.context[this.state.context.length - 1];\n  }\n\n  // Read a single token, updating the parser object's token-related\n  // properties.\n\n  nextToken(): void {\n    const curContext = this.curContext();\n    if (!curContext || !curContext.preserveSpace) this.skipSpace();\n\n    this.state.octalPositions = [];\n    this.state.start = this.state.pos;\n    this.state.startLoc = this.state.curPosition();\n    if (this.state.pos >= this.length) {\n      this.finishToken(tt.eof);\n      return;\n    }\n\n    const override = curContext?.override;\n    if (override) {\n      override(this);\n    } else {\n      this.getTokenFromCode(this.input.codePointAt(this.state.pos));\n    }\n  }\n\n  pushComment(\n    block: boolean,\n    text: string,\n    start: number,\n    end: number,\n    startLoc: Position,\n    endLoc: Position,\n  ): void {\n    const comment = {\n      type: block ? \"CommentBlock\" : \"CommentLine\",\n      value: text,\n      start: start,\n      end: end,\n      loc: new SourceLocation(startLoc, endLoc),\n    };\n\n    if (this.options.tokens) this.pushToken(comment);\n    this.state.comments.push(comment);\n    this.addComment(comment);\n  }\n\n  skipBlockComment(): void {\n    const startLoc = this.state.curPosition();\n    const start = this.state.pos;\n    const end = this.input.indexOf(\"*/\", this.state.pos + 2);\n    if (end === -1) throw this.raise(start, Errors.UnterminatedComment);\n\n    this.state.pos = end + 2;\n    lineBreakG.lastIndex = start;\n    let match;\n    while (\n      (match = lineBreakG.exec(this.input)) &&\n      match.index < this.state.pos\n    ) {\n      ++this.state.curLine;\n      this.state.lineStart = match.index + match[0].length;\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      true,\n      this.input.slice(start + 2, end),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  skipLineComment(startSkip: number): void {\n    const start = this.state.pos;\n    const startLoc = this.state.curPosition();\n    let ch = this.input.charCodeAt((this.state.pos += startSkip));\n    if (this.state.pos < this.length) {\n      while (!isNewLine(ch) && ++this.state.pos < this.length) {\n        ch = this.input.charCodeAt(this.state.pos);\n      }\n    }\n\n    // If we are doing a lookahead right now we need to advance the position (above code)\n    // but we do not want to push the comment to the state.\n    if (this.isLookahead) return;\n\n    this.pushComment(\n      false,\n      this.input.slice(start + startSkip, this.state.pos),\n      start,\n      this.state.pos,\n      startLoc,\n      this.state.curPosition(),\n    );\n  }\n\n  // Called at the start of the parse and after every token. Skips\n  // whitespace and comments, and.\n\n  skipSpace(): void {\n    loop: while (this.state.pos < this.length) {\n      const ch = this.input.charCodeAt(this.state.pos);\n      switch (ch) {\n        case charCodes.space:\n        case charCodes.nonBreakingSpace:\n        case charCodes.tab:\n          ++this.state.pos;\n          break;\n        case charCodes.carriageReturn:\n          if (\n            this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n          ) {\n            ++this.state.pos;\n          }\n        // fall through\n        case charCodes.lineFeed:\n        case charCodes.lineSeparator:\n        case charCodes.paragraphSeparator:\n          ++this.state.pos;\n          ++this.state.curLine;\n          this.state.lineStart = this.state.pos;\n          break;\n\n        case charCodes.slash:\n          switch (this.input.charCodeAt(this.state.pos + 1)) {\n            case charCodes.asterisk:\n              this.skipBlockComment();\n              break;\n\n            case charCodes.slash:\n              this.skipLineComment(2);\n              break;\n\n            default:\n              break loop;\n          }\n          break;\n\n        default:\n          if (isWhitespace(ch)) {\n            ++this.state.pos;\n          } else {\n            break loop;\n          }\n      }\n    }\n  }\n\n  // Called at the end of every token. Sets `end`, `val`, and\n  // maintains `context` and `exprAllowed`, and skips the space after\n  // the token, so that the next one's `start` will point at the\n  // right position.\n\n  finishToken(type: TokenType, val: any): void {\n    this.state.end = this.state.pos;\n    this.state.endLoc = this.state.curPosition();\n    const prevType = this.state.type;\n    this.state.type = type;\n    this.state.value = val;\n\n    if (!this.isLookahead) this.updateContext(prevType);\n  }\n\n  // ### Token reading\n\n  // This is the function that is called to fetch the next token. It\n  // is somewhat obscure, because it works in character codes rather\n  // than characters, and because operator parsing has been inlined\n  // into it.\n  //\n  // All in the name of speed.\n\n  // number sign is \"#\"\n  readToken_numberSign(): void {\n    if (this.state.pos === 0 && this.readToken_interpreter()) {\n      return;\n    }\n\n    const nextPos = this.state.pos + 1;\n    const next = this.input.charCodeAt(nextPos);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      throw this.raise(this.state.pos, Errors.UnexpectedDigitAfterHash);\n    }\n\n    if (\n      this.hasPlugin(\"recordAndTuple\") &&\n      (next === charCodes.leftCurlyBrace ||\n        next === charCodes.leftSquareBracket)\n    ) {\n      if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"hash\") {\n        throw this.raise(\n          this.state.pos,\n          next === charCodes.leftCurlyBrace\n            ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n            : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n        );\n      }\n\n      if (next === charCodes.leftCurlyBrace) {\n        // #{\n        this.finishToken(tt.braceHashL);\n      } else {\n        // #[\n        this.finishToken(tt.bracketHashL);\n      }\n      this.state.pos += 2;\n    } else if (\n      this.hasPlugin(\"classPrivateProperties\") ||\n      this.hasPlugin(\"classPrivateMethods\") ||\n      this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\"\n    ) {\n      this.finishOp(tt.hash, 1);\n    } else {\n      throw this.raise(this.state.pos, Errors.InvalidOrUnexpectedToken, \"#\");\n    }\n  }\n\n  readToken_dot(): void {\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n      this.readNumber(true);\n      return;\n    }\n\n    if (\n      next === charCodes.dot &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n    ) {\n      this.state.pos += 3;\n      this.finishToken(tt.ellipsis);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.dot);\n    }\n  }\n\n  readToken_slash(): void {\n    // '/'\n    if (this.state.exprAllowed && !this.state.inType) {\n      ++this.state.pos;\n      this.readRegexp();\n      return;\n    }\n\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.slash, 1);\n    }\n  }\n\n  readToken_interpreter(): boolean {\n    if (this.state.pos !== 0 || this.length < 2) return false;\n\n    let ch = this.input.charCodeAt(this.state.pos + 1);\n    if (ch !== charCodes.exclamationMark) return false;\n\n    const start = this.state.pos;\n    this.state.pos += 1;\n\n    while (!isNewLine(ch) && ++this.state.pos < this.length) {\n      ch = this.input.charCodeAt(this.state.pos);\n    }\n\n    const value = this.input.slice(start + 2, this.state.pos);\n\n    this.finishToken(tt.interpreterDirective, value);\n\n    return true;\n  }\n\n  readToken_mult_modulo(code: number): void {\n    // '%*'\n    let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n    let width = 1;\n    let next = this.input.charCodeAt(this.state.pos + 1);\n    const exprAllowed = this.state.exprAllowed;\n\n    // Exponentiation operator **\n    if (code === charCodes.asterisk && next === charCodes.asterisk) {\n      width++;\n      next = this.input.charCodeAt(this.state.pos + 2);\n      type = tt.exponent;\n    }\n\n    if (next === charCodes.equalsTo && !exprAllowed) {\n      width++;\n      type = tt.assign;\n    }\n\n    this.finishOp(type, width);\n  }\n\n  readToken_pipe_amp(code: number): void {\n    // '||' '&&' '||=' '&&='\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, 3);\n      } else {\n        this.finishOp(\n          code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n          2,\n        );\n      }\n      return;\n    }\n\n    if (code === charCodes.verticalBar) {\n      // '|>'\n      if (next === charCodes.greaterThan) {\n        this.finishOp(tt.pipeline, 2);\n        return;\n      }\n      // '|}'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightCurlyBrace\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.RecordExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.braceBarR, 2);\n        return;\n      }\n\n      // '|]'\n      if (\n        this.hasPlugin(\"recordAndTuple\") &&\n        next === charCodes.rightSquareBracket\n      ) {\n        if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n          throw this.raise(\n            this.state.pos,\n            Errors.TupleExpressionBarIncorrectEndSyntaxType,\n          );\n        }\n\n        this.finishOp(tt.bracketBarR, 2);\n        return;\n      }\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n      return;\n    }\n\n    this.finishOp(\n      code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n      1,\n    );\n  }\n\n  readToken_caret(): void {\n    // '^'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.bitwiseXOR, 1);\n    }\n  }\n\n  readToken_plus_min(code: number): void {\n    // '+-'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n\n    if (next === code) {\n      if (\n        next === charCodes.dash &&\n        !this.inModule &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan &&\n        (this.state.lastTokEnd === 0 ||\n          lineBreak.test(\n            this.input.slice(this.state.lastTokEnd, this.state.pos),\n          ))\n      ) {\n        // A `-->` line comment\n        this.skipLineComment(3);\n        this.skipSpace();\n        this.nextToken();\n        return;\n      }\n      this.finishOp(tt.incDec, 2);\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      this.finishOp(tt.assign, 2);\n    } else {\n      this.finishOp(tt.plusMin, 1);\n    }\n  }\n\n  readToken_lt_gt(code: number): void {\n    // '<>'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    let size = 1;\n\n    if (next === code) {\n      size =\n        code === charCodes.greaterThan &&\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan\n          ? 3\n          : 2;\n      if (this.input.charCodeAt(this.state.pos + size) === charCodes.equalsTo) {\n        this.finishOp(tt.assign, size + 1);\n        return;\n      }\n      this.finishOp(tt.bitShift, size);\n      return;\n    }\n\n    if (\n      next === charCodes.exclamationMark &&\n      code === charCodes.lessThan &&\n      !this.inModule &&\n      this.input.charCodeAt(this.state.pos + 2) === charCodes.dash &&\n      this.input.charCodeAt(this.state.pos + 3) === charCodes.dash\n    ) {\n      // `<!--`, an XML-style comment that should be interpreted as a line comment\n      this.skipLineComment(4);\n      this.skipSpace();\n      this.nextToken();\n      return;\n    }\n\n    if (next === charCodes.equalsTo) {\n      // <= | >=\n      size = 2;\n    }\n\n    this.finishOp(tt.relational, size);\n  }\n\n  readToken_eq_excl(code: number): void {\n    // '=!'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    if (next === charCodes.equalsTo) {\n      this.finishOp(\n        tt.equality,\n        this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo\n          ? 3\n          : 2,\n      );\n      return;\n    }\n    if (code === charCodes.equalsTo && next === charCodes.greaterThan) {\n      // '=>'\n      this.state.pos += 2;\n      this.finishToken(tt.arrow);\n      return;\n    }\n    this.finishOp(code === charCodes.equalsTo ? tt.eq : tt.bang, 1);\n  }\n\n  readToken_question(): void {\n    // '?'\n    const next = this.input.charCodeAt(this.state.pos + 1);\n    const next2 = this.input.charCodeAt(this.state.pos + 2);\n    if (next === charCodes.questionMark && !this.state.inType) {\n      if (next2 === charCodes.equalsTo) {\n        // '??='\n        this.finishOp(tt.assign, 3);\n      } else {\n        // '??'\n        this.finishOp(tt.nullishCoalescing, 2);\n      }\n    } else if (\n      next === charCodes.dot &&\n      !(next2 >= charCodes.digit0 && next2 <= charCodes.digit9)\n    ) {\n      // '.' not followed by a number\n      this.state.pos += 2;\n      this.finishToken(tt.questionDot);\n    } else {\n      ++this.state.pos;\n      this.finishToken(tt.question);\n    }\n  }\n\n  getTokenFromCode(code: number): void {\n    switch (code) {\n      // The interpretation of a dot depends on whether it is followed\n      // by a digit or another two dots.\n\n      case charCodes.dot:\n        this.readToken_dot();\n        return;\n\n      // Punctuation tokens.\n      case charCodes.leftParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenL);\n        return;\n      case charCodes.rightParenthesis:\n        ++this.state.pos;\n        this.finishToken(tt.parenR);\n        return;\n      case charCodes.semicolon:\n        ++this.state.pos;\n        this.finishToken(tt.semi);\n        return;\n      case charCodes.comma:\n        ++this.state.pos;\n        this.finishToken(tt.comma);\n        return;\n      case charCodes.leftSquareBracket:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.TupleExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // [|\n          this.finishToken(tt.bracketBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.bracketL);\n        }\n        return;\n      case charCodes.rightSquareBracket:\n        ++this.state.pos;\n        this.finishToken(tt.bracketR);\n        return;\n      case charCodes.leftCurlyBrace:\n        if (\n          this.hasPlugin(\"recordAndTuple\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n        ) {\n          if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n            throw this.raise(\n              this.state.pos,\n              Errors.RecordExpressionBarIncorrectStartSyntaxType,\n            );\n          }\n\n          // {|\n          this.finishToken(tt.braceBarL);\n          this.state.pos += 2;\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.braceL);\n        }\n        return;\n      case charCodes.rightCurlyBrace:\n        ++this.state.pos;\n        this.finishToken(tt.braceR);\n        return;\n\n      case charCodes.colon:\n        if (\n          this.hasPlugin(\"functionBind\") &&\n          this.input.charCodeAt(this.state.pos + 1) === charCodes.colon\n        ) {\n          this.finishOp(tt.doubleColon, 2);\n        } else {\n          ++this.state.pos;\n          this.finishToken(tt.colon);\n        }\n        return;\n\n      case charCodes.questionMark:\n        this.readToken_question();\n        return;\n\n      case charCodes.graveAccent:\n        ++this.state.pos;\n        this.finishToken(tt.backQuote);\n        return;\n\n      case charCodes.digit0: {\n        const next = this.input.charCodeAt(this.state.pos + 1);\n        // '0x', '0X' - hex number\n        if (next === charCodes.lowercaseX || next === charCodes.uppercaseX) {\n          this.readRadixNumber(16);\n          return;\n        }\n        // '0o', '0O' - octal number\n        if (next === charCodes.lowercaseO || next === charCodes.uppercaseO) {\n          this.readRadixNumber(8);\n          return;\n        }\n        // '0b', '0B' - binary number\n        if (next === charCodes.lowercaseB || next === charCodes.uppercaseB) {\n          this.readRadixNumber(2);\n          return;\n        }\n      }\n      // Anything else beginning with a digit is an integer, octal\n      // number, or float. (fall through)\n      case charCodes.digit1:\n      case charCodes.digit2:\n      case charCodes.digit3:\n      case charCodes.digit4:\n      case charCodes.digit5:\n      case charCodes.digit6:\n      case charCodes.digit7:\n      case charCodes.digit8:\n      case charCodes.digit9:\n        this.readNumber(false);\n        return;\n\n      // Quotes produce strings.\n      case charCodes.quotationMark:\n      case charCodes.apostrophe:\n        this.readString(code);\n        return;\n\n      // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is\n      // often referred to. `finishOp` simply skips the amount of\n      // characters it is given as second argument, and returns a token\n      // of the type given by its first argument.\n\n      case charCodes.slash:\n        this.readToken_slash();\n        return;\n\n      case charCodes.percentSign:\n      case charCodes.asterisk:\n        this.readToken_mult_modulo(code);\n        return;\n\n      case charCodes.verticalBar:\n      case charCodes.ampersand:\n        this.readToken_pipe_amp(code);\n        return;\n\n      case charCodes.caret:\n        this.readToken_caret();\n        return;\n\n      case charCodes.plusSign:\n      case charCodes.dash:\n        this.readToken_plus_min(code);\n        return;\n\n      case charCodes.lessThan:\n      case charCodes.greaterThan:\n        this.readToken_lt_gt(code);\n        return;\n\n      case charCodes.equalsTo:\n      case charCodes.exclamationMark:\n        this.readToken_eq_excl(code);\n        return;\n\n      case charCodes.tilde:\n        this.finishOp(tt.tilde, 1);\n        return;\n\n      case charCodes.atSign:\n        ++this.state.pos;\n        this.finishToken(tt.at);\n        return;\n\n      case charCodes.numberSign:\n        this.readToken_numberSign();\n        return;\n\n      case charCodes.backslash:\n        this.readWord();\n        return;\n\n      default:\n        if (isIdentifierStart(code)) {\n          this.readWord();\n          return;\n        }\n    }\n\n    throw this.raise(\n      this.state.pos,\n      Errors.InvalidOrUnexpectedToken,\n      String.fromCodePoint(code),\n    );\n  }\n\n  finishOp(type: TokenType, size: number): void {\n    const str = this.input.slice(this.state.pos, this.state.pos + size);\n    this.state.pos += size;\n    this.finishToken(type, str);\n  }\n\n  readRegexp(): void {\n    const start = this.state.pos;\n    let escaped, inClass;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      const ch = this.input.charAt(this.state.pos);\n      if (lineBreak.test(ch)) {\n        throw this.raise(start, Errors.UnterminatedRegExp);\n      }\n      if (escaped) {\n        escaped = false;\n      } else {\n        if (ch === \"[\") {\n          inClass = true;\n        } else if (ch === \"]\" && inClass) {\n          inClass = false;\n        } else if (ch === \"/\" && !inClass) {\n          break;\n        }\n        escaped = ch === \"\\\\\";\n      }\n      ++this.state.pos;\n    }\n    const content = this.input.slice(start, this.state.pos);\n    ++this.state.pos;\n\n    let mods = \"\";\n\n    while (this.state.pos < this.length) {\n      const char = this.input[this.state.pos];\n      const charCode = this.input.codePointAt(this.state.pos);\n\n      if (VALID_REGEX_FLAGS.has(char)) {\n        if (mods.indexOf(char) > -1) {\n          this.raise(this.state.pos + 1, Errors.DuplicateRegExpFlags);\n        }\n      } else if (\n        isIdentifierChar(charCode) ||\n        charCode === charCodes.backslash\n      ) {\n        this.raise(this.state.pos + 1, Errors.MalformedRegExpFlags);\n      } else {\n        break;\n      }\n\n      ++this.state.pos;\n      mods += char;\n    }\n\n    this.finishToken(tt.regexp, {\n      pattern: content,\n      flags: mods,\n    });\n  }\n\n  // Read an integer in the given radix. Return null if zero digits\n  // were read, the integer value otherwise. When `len` is given, this\n  // will return `null` unless the integer has exactly `len` digits.\n  // When `forceLen` is `true`, it means that we already know that in case\n  // of a malformed number we have to skip `len` characters anyway, instead\n  // of bailing out early. For example, in \"\\u{123Z}\" we want to read up to }\n  // anyway, while in \"\\u00Z\" we will stop at Z instead of consuming four\n  // characters (and thus the closing quote).\n\n  readInt(\n    radix: number,\n    len?: number,\n    forceLen?: boolean,\n    allowNumSeparator: boolean = true,\n  ): number | null {\n    const start = this.state.pos;\n    const forbiddenSiblings =\n      radix === 16\n        ? forbiddenNumericSeparatorSiblings.hex\n        : forbiddenNumericSeparatorSiblings.decBinOct;\n    const allowedSiblings =\n      radix === 16\n        ? allowedNumericSeparatorSiblings.hex\n        : radix === 10\n        ? allowedNumericSeparatorSiblings.dec\n        : radix === 8\n        ? allowedNumericSeparatorSiblings.oct\n        : allowedNumericSeparatorSiblings.bin;\n\n    let invalid = false;\n    let total = 0;\n\n    for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n      const code = this.input.charCodeAt(this.state.pos);\n      let val;\n\n      if (this.hasPlugin(\"numericSeparator\")) {\n        if (code === charCodes.underscore) {\n          const prev = this.input.charCodeAt(this.state.pos - 1);\n          const next = this.input.charCodeAt(this.state.pos + 1);\n          if (allowedSiblings.indexOf(next) === -1) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          } else if (\n            forbiddenSiblings.indexOf(prev) > -1 ||\n            forbiddenSiblings.indexOf(next) > -1 ||\n            Number.isNaN(next)\n          ) {\n            this.raise(this.state.pos, Errors.UnexpectedNumericSeparator);\n          }\n\n          if (!allowNumSeparator) {\n            this.raise(this.state.pos, Errors.NumericSeparatorInEscapeSequence);\n          }\n\n          // Ignore this _ character\n          ++this.state.pos;\n          continue;\n        }\n      }\n\n      if (code >= charCodes.lowercaseA) {\n        val = code - charCodes.lowercaseA + charCodes.lineFeed;\n      } else if (code >= charCodes.uppercaseA) {\n        val = code - charCodes.uppercaseA + charCodes.lineFeed;\n      } else if (charCodes.isDigit(code)) {\n        val = code - charCodes.digit0; // 0-9\n      } else {\n        val = Infinity;\n      }\n      if (val >= radix) {\n        // If we are in \"errorRecovery\" mode and we found a digit which is too big,\n        // don't break the loop.\n\n        if (this.options.errorRecovery && val <= 9) {\n          val = 0;\n          this.raise(this.state.start + i + 2, Errors.InvalidDigit, radix);\n        } else if (forceLen) {\n          val = 0;\n          invalid = true;\n        } else {\n          break;\n        }\n      }\n      ++this.state.pos;\n      total = total * radix + val;\n    }\n    if (\n      this.state.pos === start ||\n      (len != null && this.state.pos - start !== len) ||\n      invalid\n    ) {\n      return null;\n    }\n\n    return total;\n  }\n\n  readRadixNumber(radix: number): void {\n    const start = this.state.pos;\n    let isBigInt = false;\n\n    this.state.pos += 2; // 0x\n    const val = this.readInt(radix);\n    if (val == null) {\n      this.raise(this.state.start + 2, Errors.InvalidDigit, radix);\n    }\n\n    if (this.input.charCodeAt(this.state.pos) === charCodes.lowercaseN) {\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    if (isBigInt) {\n      const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    this.finishToken(tt.num, val);\n  }\n\n  // Read an integer, octal integer, or floating-point number.\n\n  readNumber(startsWithDot: boolean): void {\n    const start = this.state.pos;\n    let isFloat = false;\n    let isBigInt = false;\n    let isNonOctalDecimalInt = false;\n\n    if (!startsWithDot && this.readInt(10) === null) {\n      this.raise(start, Errors.InvalidNumber);\n    }\n    let octal =\n      this.state.pos - start >= 2 &&\n      this.input.charCodeAt(start) === charCodes.digit0;\n    if (octal) {\n      if (this.state.strict) {\n        this.raise(start, Errors.StrictOctalLiteral);\n      }\n      if (/[89]/.test(this.input.slice(start, this.state.pos))) {\n        octal = false;\n        isNonOctalDecimalInt = true;\n      }\n    }\n\n    let next = this.input.charCodeAt(this.state.pos);\n    if (next === charCodes.dot && !octal) {\n      ++this.state.pos;\n      this.readInt(10);\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    if (\n      (next === charCodes.uppercaseE || next === charCodes.lowercaseE) &&\n      !octal\n    ) {\n      next = this.input.charCodeAt(++this.state.pos);\n      if (next === charCodes.plusSign || next === charCodes.dash) {\n        ++this.state.pos;\n      }\n      if (this.readInt(10) === null) this.raise(start, \"Invalid number\");\n      isFloat = true;\n      next = this.input.charCodeAt(this.state.pos);\n    }\n\n    // disallow numeric separators in non octal decimals and legacy octal likes\n    if (this.hasPlugin(\"numericSeparator\") && (octal || isNonOctalDecimalInt)) {\n      const underscorePos = this.input\n        .slice(start, this.state.pos)\n        .indexOf(\"_\");\n      if (underscorePos > 0) {\n        this.raise(underscorePos + start, Errors.ZeroDigitNumericSeparator);\n      }\n    }\n\n    if (next === charCodes.lowercaseN) {\n      // disallow floats, legacy octal syntax and non octal decimals\n      // new style octal (\"0o\") is handled in this.readRadixNumber\n      if (isFloat || octal || isNonOctalDecimalInt) {\n        this.raise(start, \"Invalid BigIntLiteral\");\n      }\n      ++this.state.pos;\n      isBigInt = true;\n    }\n\n    if (isIdentifierStart(this.input.codePointAt(this.state.pos))) {\n      throw this.raise(this.state.pos, Errors.NumberIdentifier);\n    }\n\n    // remove \"_\" for numeric literal separator, and \"n\" for BigInts\n    const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, \"\");\n\n    if (isBigInt) {\n      this.finishToken(tt.bigint, str);\n      return;\n    }\n\n    const val = octal ? parseInt(str, 8) : parseFloat(str);\n    this.finishToken(tt.num, val);\n  }\n\n  // Read a string value, interpreting backslash-escapes.\n\n  readCodePoint(throwOnInvalid: boolean): number | null {\n    const ch = this.input.charCodeAt(this.state.pos);\n    let code;\n\n    if (ch === charCodes.leftCurlyBrace) {\n      const codePos = ++this.state.pos;\n      code = this.readHexChar(\n        this.input.indexOf(\"}\", this.state.pos) - this.state.pos,\n        true,\n        throwOnInvalid,\n      );\n      ++this.state.pos;\n      if (code !== null && code > 0x10ffff) {\n        if (throwOnInvalid) {\n          this.raise(codePos, Errors.InvalidCodePoint);\n        } else {\n          return null;\n        }\n      }\n    } else {\n      code = this.readHexChar(4, false, throwOnInvalid);\n    }\n    return code;\n  }\n\n  readString(quote: number): void {\n    let out = \"\",\n      chunkStart = ++this.state.pos;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (ch === quote) break;\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        // $FlowFixMe\n        out += this.readEscapedChar(false);\n        chunkStart = this.state.pos;\n      } else if (\n        ch === charCodes.lineSeparator ||\n        ch === charCodes.paragraphSeparator\n      ) {\n        ++this.state.pos;\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        throw this.raise(this.state.start, Errors.UnterminatedString);\n      } else {\n        ++this.state.pos;\n      }\n    }\n    out += this.input.slice(chunkStart, this.state.pos++);\n    this.finishToken(tt.string, out);\n  }\n\n  // Reads template string tokens.\n\n  readTmplToken(): void {\n    let out = \"\",\n      chunkStart = this.state.pos,\n      containsInvalid = false;\n    for (;;) {\n      if (this.state.pos >= this.length) {\n        throw this.raise(this.state.start, Errors.UnterminatedTemplate);\n      }\n      const ch = this.input.charCodeAt(this.state.pos);\n      if (\n        ch === charCodes.graveAccent ||\n        (ch === charCodes.dollarSign &&\n          this.input.charCodeAt(this.state.pos + 1) ===\n            charCodes.leftCurlyBrace)\n      ) {\n        if (this.state.pos === this.state.start && this.match(tt.template)) {\n          if (ch === charCodes.dollarSign) {\n            this.state.pos += 2;\n            this.finishToken(tt.dollarBraceL);\n            return;\n          } else {\n            ++this.state.pos;\n            this.finishToken(tt.backQuote);\n            return;\n          }\n        }\n        out += this.input.slice(chunkStart, this.state.pos);\n        this.finishToken(tt.template, containsInvalid ? null : out);\n        return;\n      }\n      if (ch === charCodes.backslash) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        const escaped = this.readEscapedChar(true);\n        if (escaped === null) {\n          containsInvalid = true;\n        } else {\n          out += escaped;\n        }\n        chunkStart = this.state.pos;\n      } else if (isNewLine(ch)) {\n        out += this.input.slice(chunkStart, this.state.pos);\n        ++this.state.pos;\n        switch (ch) {\n          case charCodes.carriageReturn:\n            if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n              ++this.state.pos;\n            }\n          // fall through\n          case charCodes.lineFeed:\n            out += \"\\n\";\n            break;\n          default:\n            out += String.fromCharCode(ch);\n            break;\n        }\n        ++this.state.curLine;\n        this.state.lineStart = this.state.pos;\n        chunkStart = this.state.pos;\n      } else {\n        ++this.state.pos;\n      }\n    }\n  }\n\n  // Used to read escaped characters\n\n  readEscapedChar(inTemplate: boolean): string | null {\n    const throwOnInvalid = !inTemplate;\n    const ch = this.input.charCodeAt(++this.state.pos);\n    ++this.state.pos;\n    switch (ch) {\n      case charCodes.lowercaseN:\n        return \"\\n\";\n      case charCodes.lowercaseR:\n        return \"\\r\";\n      case charCodes.lowercaseX: {\n        const code = this.readHexChar(2, false, throwOnInvalid);\n        return code === null ? null : String.fromCharCode(code);\n      }\n      case charCodes.lowercaseU: {\n        const code = this.readCodePoint(throwOnInvalid);\n        return code === null ? null : String.fromCodePoint(code);\n      }\n      case charCodes.lowercaseT:\n        return \"\\t\";\n      case charCodes.lowercaseB:\n        return \"\\b\";\n      case charCodes.lowercaseV:\n        return \"\\u000b\";\n      case charCodes.lowercaseF:\n        return \"\\f\";\n      case charCodes.carriageReturn:\n        if (this.input.charCodeAt(this.state.pos) === charCodes.lineFeed) {\n          ++this.state.pos;\n        }\n      // fall through\n      case charCodes.lineFeed:\n        this.state.lineStart = this.state.pos;\n        ++this.state.curLine;\n      // fall through\n      case charCodes.lineSeparator:\n      case charCodes.paragraphSeparator:\n        return \"\";\n      case charCodes.digit8:\n      case charCodes.digit9:\n        if (inTemplate) {\n          return null;\n        }\n      // fall through\n      default:\n        if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n          const codePos = this.state.pos - 1;\n          // $FlowFixMe\n          let octalStr = this.input\n            .substr(this.state.pos - 1, 3)\n            .match(/^[0-7]+/)[0];\n          let octal = parseInt(octalStr, 8);\n          if (octal > 255) {\n            octalStr = octalStr.slice(0, -1);\n            octal = parseInt(octalStr, 8);\n          }\n          this.state.pos += octalStr.length - 1;\n          const next = this.input.charCodeAt(this.state.pos);\n          if (\n            octalStr !== \"0\" ||\n            next === charCodes.digit8 ||\n            next === charCodes.digit9\n          ) {\n            if (inTemplate) {\n              return null;\n            } else if (this.state.strict) {\n              this.raise(codePos, Errors.StrictOctalLiteral);\n            } else {\n              // This property is used to throw an error for\n              // an octal literal in a directive that occurs prior\n              // to a \"use strict\" directive.\n              this.state.octalPositions.push(codePos);\n            }\n          }\n\n          return String.fromCharCode(octal);\n        }\n\n        return String.fromCharCode(ch);\n    }\n  }\n\n  // Used to read character escape sequences ('\\x', '\\u').\n\n  readHexChar(\n    len: number,\n    forceLen: boolean,\n    throwOnInvalid: boolean,\n  ): number | null {\n    const codePos = this.state.pos;\n    const n = this.readInt(16, len, forceLen, false);\n    if (n === null) {\n      if (throwOnInvalid) {\n        this.raise(codePos, Errors.InvalidEscapeSequence);\n      } else {\n        this.state.pos = codePos - 1;\n      }\n    }\n    return n;\n  }\n\n  // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\n  // to whether the word contained a '\\u' escape.\n  //\n  // Incrementally adds only escaped chars, adding other chunks as-is\n  // as a micro-optimization.\n\n  readWord1(): string {\n    let word = \"\";\n    this.state.containsEsc = false;\n    const start = this.state.pos;\n    let chunkStart = this.state.pos;\n\n    while (this.state.pos < this.length) {\n      const ch = this.input.codePointAt(this.state.pos);\n      if (isIdentifierChar(ch)) {\n        this.state.pos += ch <= 0xffff ? 1 : 2;\n      } else if (this.state.isIterator && ch === charCodes.atSign) {\n        ++this.state.pos;\n      } else if (ch === charCodes.backslash) {\n        this.state.containsEsc = true;\n\n        word += this.input.slice(chunkStart, this.state.pos);\n        const escStart = this.state.pos;\n        const identifierCheck =\n          this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n\n        if (this.input.charCodeAt(++this.state.pos) !== charCodes.lowercaseU) {\n          this.raise(this.state.pos, Errors.MissingUnicodeEscape);\n          continue;\n        }\n\n        ++this.state.pos;\n        const esc = this.readCodePoint(true);\n        if (esc !== null) {\n          if (!identifierCheck(esc)) {\n            this.raise(escStart, Errors.EscapedCharNotAnIdentifier);\n          }\n\n          word += String.fromCodePoint(esc);\n        }\n        chunkStart = this.state.pos;\n      } else {\n        break;\n      }\n    }\n    return word + this.input.slice(chunkStart, this.state.pos);\n  }\n\n  isIterator(word: string): boolean {\n    return word === \"@@iterator\" || word === \"@@asyncIterator\";\n  }\n\n  // Read an identifier or keyword token. Will check for reserved\n  // words when necessary.\n\n  readWord(): void {\n    const word = this.readWord1();\n    const type = keywordTypes.get(word) || tt.name;\n\n    // Allow @@iterator and @@asyncIterator as a identifier only inside type\n    if (\n      this.state.isIterator &&\n      (!this.isIterator(word) || !this.state.inType)\n    ) {\n      this.raise(this.state.pos, Errors.InvalidIdentifier, word);\n    }\n\n    this.finishToken(type, word);\n  }\n\n  checkKeywordEscapes(): void {\n    const kw = this.state.type.keyword;\n    if (kw && this.state.containsEsc) {\n      this.raise(this.state.start, Errors.InvalidEscapedReservedWord, kw);\n    }\n  }\n\n  braceIsBlock(prevType: TokenType): boolean {\n    const parent = this.curContext();\n    if (parent === ct.functionExpression || parent === ct.functionStatement) {\n      return true;\n    }\n    if (\n      prevType === tt.colon &&\n      (parent === ct.braceStatement || parent === ct.braceExpression)\n    ) {\n      return !parent.isExpr;\n    }\n\n    // The check for `tt.name && exprAllowed` detects whether we are\n    // after a `yield` or `of` construct. See the `updateContext` for\n    // `tt.name`.\n    if (\n      prevType === tt._return ||\n      (prevType === tt.name && this.state.exprAllowed)\n    ) {\n      return lineBreak.test(\n        this.input.slice(this.state.lastTokEnd, this.state.start),\n      );\n    }\n\n    if (\n      prevType === tt._else ||\n      prevType === tt.semi ||\n      prevType === tt.eof ||\n      prevType === tt.parenR ||\n      prevType === tt.arrow\n    ) {\n      return true;\n    }\n\n    if (prevType === tt.braceL) {\n      return parent === ct.braceStatement;\n    }\n\n    if (\n      prevType === tt._var ||\n      prevType === tt._const ||\n      prevType === tt.name\n    ) {\n      return false;\n    }\n\n    if (prevType === tt.relational) {\n      // `class C<T> { ... }`\n      return true;\n    }\n\n    return !this.state.exprAllowed;\n  }\n\n  updateContext(prevType: TokenType): void {\n    const type = this.state.type;\n    let update;\n\n    if (type.keyword && (prevType === tt.dot || prevType === tt.questionDot)) {\n      this.state.exprAllowed = false;\n    } else if ((update = type.updateContext)) {\n      update.call(this, prevType);\n    } else {\n      this.state.exprAllowed = type.beforeExpr;\n    }\n  }\n}\n","// @flow\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport Tokenizer from \"../tokenizer\";\nimport State from \"../tokenizer/state\";\nimport type { Node } from \"../types\";\nimport { lineBreak } from \"../util/whitespace\";\nimport { isIdentifierChar } from \"../util/identifier\";\nimport * as charCodes from \"charcodes\";\nimport { Errors } from \"./location\";\n\ntype TryParse<Node, Error, Thrown, Aborted, FailState> = {\n  node: Node,\n  error: Error,\n  thrown: Thrown,\n  aborted: Aborted,\n  failState: FailState,\n};\n\n// ## Parser utilities\n\nexport default class UtilParser extends Tokenizer {\n  // TODO\n\n  addExtra(node: Node, key: string, val: any): void {\n    if (!node) return;\n\n    const extra = (node.extra = node.extra || {});\n    extra[key] = val;\n  }\n\n  // TODO\n\n  isRelational(op: \"<\" | \">\"): boolean {\n    return this.match(tt.relational) && this.state.value === op;\n  }\n\n  isLookaheadRelational(op: \"<\" | \">\"): boolean {\n    const next = this.nextTokenStart();\n    if (this.input.charAt(next) === op) {\n      if (next + 1 === this.input.length) {\n        return true;\n      }\n      const afterNext = this.input.charCodeAt(next + 1);\n      return afterNext !== op.charCodeAt(0) && afterNext !== charCodes.equalsTo;\n    }\n    return false;\n  }\n\n  // TODO\n\n  expectRelational(op: \"<\" | \">\"): void {\n    if (this.isRelational(op)) {\n      this.next();\n    } else {\n      this.unexpected(null, tt.relational);\n    }\n  }\n\n  // Tests whether parsed token is a contextual keyword.\n\n  isContextual(name: string): boolean {\n    return (\n      this.match(tt.name) &&\n      this.state.value === name &&\n      !this.state.containsEsc\n    );\n  }\n\n  isUnparsedContextual(nameStart: number, name: string): boolean {\n    const nameEnd = nameStart + name.length;\n    return (\n      this.input.slice(nameStart, nameEnd) === name &&\n      (nameEnd === this.input.length ||\n        !isIdentifierChar(this.input.charCodeAt(nameEnd)))\n    );\n  }\n\n  isLookaheadContextual(name: string): boolean {\n    const next = this.nextTokenStart();\n    return this.isUnparsedContextual(next, name);\n  }\n\n  // Consumes contextual keyword if possible.\n\n  eatContextual(name: string): boolean {\n    return this.isContextual(name) && this.eat(tt.name);\n  }\n\n  // Asserts that following token is given contextual keyword.\n\n  expectContextual(name: string, message?: string): void {\n    if (!this.eatContextual(name)) this.unexpected(null, message);\n  }\n\n  // Test whether a semicolon can be inserted at the current position.\n\n  canInsertSemicolon(): boolean {\n    return (\n      this.match(tt.eof) ||\n      this.match(tt.braceR) ||\n      this.hasPrecedingLineBreak()\n    );\n  }\n\n  hasPrecedingLineBreak(): boolean {\n    return lineBreak.test(\n      this.input.slice(this.state.lastTokEnd, this.state.start),\n    );\n  }\n\n  // TODO\n\n  isLineTerminator(): boolean {\n    return this.eat(tt.semi) || this.canInsertSemicolon();\n  }\n\n  // Consume a semicolon, or, failing that, see if we are allowed to\n  // pretend that there is a semicolon at this position.\n\n  semicolon(): void {\n    if (!this.isLineTerminator()) this.unexpected(null, tt.semi);\n  }\n\n  // Expect a token of a given type. If found, consume it, otherwise,\n  // raise an unexpected token error at given pos.\n\n  expect(type: TokenType, pos?: ?number): void {\n    this.eat(type) || this.unexpected(pos, type);\n  }\n\n  // Throws if the current token and the prev one are separated by a space.\n  assertNoSpace(message: string = \"Unexpected space.\"): void {\n    if (this.state.start > this.state.lastTokEnd) {\n      this.raise(this.state.lastTokEnd, message);\n    }\n  }\n\n  // Raise an unexpected token error. Can take the expected token type\n  // instead of a message string.\n\n  unexpected(\n    pos: ?number,\n    messageOrType: string | TokenType = \"Unexpected token\",\n  ): empty {\n    if (typeof messageOrType !== \"string\") {\n      messageOrType = `Unexpected token, expected \"${messageOrType.label}\"`;\n    }\n    throw this.raise(pos != null ? pos : this.state.start, messageOrType);\n  }\n\n  expectPlugin(name: string, pos?: ?number): true {\n    if (!this.hasPlugin(name)) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: [name] },\n        `This experimental syntax requires enabling the parser plugin: '${name}'`,\n      );\n    }\n\n    return true;\n  }\n\n  expectOnePlugin(names: Array<string>, pos?: ?number): void {\n    if (!names.some(n => this.hasPlugin(n))) {\n      throw this.raiseWithData(\n        pos != null ? pos : this.state.start,\n        { missingPlugin: names },\n        `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(\n          \", \",\n        )}'`,\n      );\n    }\n  }\n\n  checkYieldAwaitInDefaultParams() {\n    if (\n      this.state.yieldPos !== -1 &&\n      (this.state.awaitPos === -1 || this.state.yieldPos < this.state.awaitPos)\n    ) {\n      this.raise(\n        this.state.yieldPos,\n        \"Yield cannot be used as name inside a generator function\",\n      );\n    }\n    if (this.state.awaitPos !== -1) {\n      this.raise(\n        this.state.awaitPos,\n        \"Await cannot be used as name inside an async function\",\n      );\n    }\n  }\n\n  // tryParse will clone parser state.\n  // It is expensive and should be used with cautions\n  tryParse<T: Node | $ReadOnlyArray<Node>>(\n    fn: (abort: (node?: T) => empty) => T,\n    oldState: State = this.state.clone(),\n  ):\n    | TryParse<T, null, false, false, null>\n    | TryParse<T | null, SyntaxError, boolean, false, State>\n    | TryParse<T | null, null, false, true, State> {\n    const abortSignal: { node: T | null } = { node: null };\n    try {\n      const node = fn((node = null) => {\n        abortSignal.node = node;\n        throw abortSignal;\n      });\n      if (this.state.errors.length > oldState.errors.length) {\n        const failState = this.state;\n        this.state = oldState;\n        return {\n          node,\n          error: (failState.errors[oldState.errors.length]: SyntaxError),\n          thrown: false,\n          aborted: false,\n          failState,\n        };\n      }\n\n      return {\n        node,\n        error: null,\n        thrown: false,\n        aborted: false,\n        failState: null,\n      };\n    } catch (error) {\n      const failState = this.state;\n      this.state = oldState;\n      if (error instanceof SyntaxError) {\n        return { node: null, error, thrown: true, aborted: false, failState };\n      }\n      if (error === abortSignal) {\n        return {\n          node: abortSignal.node,\n          error: null,\n          thrown: false,\n          aborted: true,\n          failState,\n        };\n      }\n\n      throw error;\n    }\n  }\n\n  checkExpressionErrors(\n    refExpressionErrors: ?ExpressionErrors,\n    andThrow: boolean,\n  ) {\n    if (!refExpressionErrors) return false;\n    const { shorthandAssign, doubleProto } = refExpressionErrors;\n    if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0;\n    if (shorthandAssign >= 0) {\n      this.unexpected(shorthandAssign);\n    }\n    if (doubleProto >= 0) {\n      this.raise(doubleProto, Errors.DuplicateProto);\n    }\n  }\n}\n\n/**\n * The ExpressionErrors is a context struct used to track\n * - **shorthandAssign**: track initializer `=` position when parsing ambiguous\n *   patterns. When we are sure the parsed pattern is a RHS, which means it is\n *   not a pattern, we will throw on this position on invalid assign syntax,\n *   otherwise it will be reset to -1\n * - **doubleProto**: track the duplicate `__proto__` key position when parsing\n *   ambiguous object patterns. When we are sure the parsed pattern is a RHS,\n *   which means it is an object literal, we will throw on this position for\n *   __proto__ redefinition, otherwise it will be reset to -1\n */\nexport class ExpressionErrors {\n  shorthandAssign = -1;\n  doubleProto = -1;\n}\n","// @flow\n\nimport type Parser from \"./index\";\nimport UtilParser from \"./util\";\nimport { SourceLocation, type Position } from \"../util/location\";\nimport type { Comment, Node as NodeType, NodeBase } from \"../types\";\n\n// Start an AST node, attaching a start offset.\n\nclass Node implements NodeBase {\n  constructor(parser: Parser, pos: number, loc: Position) {\n    this.type = \"\";\n    this.start = pos;\n    this.end = 0;\n    this.loc = new SourceLocation(loc);\n    if (parser && parser.options.ranges) this.range = [pos, 0];\n    if (parser && parser.filename) this.loc.filename = parser.filename;\n  }\n\n  type: string;\n  start: number;\n  end: number;\n  loc: SourceLocation;\n  range: [number, number];\n  leadingComments: Array<Comment>;\n  trailingComments: Array<Comment>;\n  innerComments: Array<Comment>;\n  extra: { [key: string]: any };\n\n  __clone(): this {\n    // $FlowIgnore\n    const newNode: any = new Node();\n    const keys = Object.keys(this);\n    for (let i = 0, length = keys.length; i < length; i++) {\n      const key = keys[i];\n      // Do not clone comments that are already attached to the node\n      if (\n        key !== \"leadingComments\" &&\n        key !== \"trailingComments\" &&\n        key !== \"innerComments\"\n      ) {\n        // $FlowIgnore\n        newNode[key] = this[key];\n      }\n    }\n\n    return newNode;\n  }\n}\n\nexport class NodeUtils extends UtilParser {\n  startNode<T: NodeType>(): T {\n    // $FlowIgnore\n    return new Node(this, this.state.start, this.state.startLoc);\n  }\n\n  startNodeAt<T: NodeType>(pos: number, loc: Position): T {\n    // $FlowIgnore\n    return new Node(this, pos, loc);\n  }\n\n  /** Start a new node with a previous node's location. */\n  startNodeAtNode<T: NodeType>(type: NodeType): T {\n    return this.startNodeAt(type.start, type.loc.start);\n  }\n\n  // Finish an AST node, adding `type` and `end` properties.\n\n  finishNode<T: NodeType>(node: T, type: string): T {\n    return this.finishNodeAt(\n      node,\n      type,\n      this.state.lastTokEnd,\n      this.state.lastTokEndLoc,\n    );\n  }\n\n  // Finish node at given position\n\n  finishNodeAt<T: NodeType>(\n    node: T,\n    type: string,\n    pos: number,\n    loc: Position,\n  ): T {\n    if (process.env.NODE_ENV !== \"production\" && node.end > 0) {\n      throw new Error(\n        \"Do not call finishNode*() twice on the same node.\" +\n          \" Instead use resetEndLocation() or change type directly.\",\n      );\n    }\n    node.type = type;\n    node.end = pos;\n    node.loc.end = loc;\n    if (this.options.ranges) node.range[1] = pos;\n    this.processComment(node);\n    return node;\n  }\n\n  resetStartLocation(node: NodeBase, start: number, startLoc: Position): void {\n    node.start = start;\n    node.loc.start = startLoc;\n    if (this.options.ranges) node.range[0] = start;\n  }\n\n  resetEndLocation(\n    node: NodeBase,\n    end?: number = this.state.lastTokEnd,\n    endLoc?: Position = this.state.lastTokEndLoc,\n  ): void {\n    node.end = end;\n    node.loc.end = endLoc;\n    if (this.options.ranges) node.range[1] = end;\n  }\n\n  /**\n   * Reset the start location of node to the start location of locationNode\n   */\n  resetStartLocationFromNode(node: NodeBase, locationNode: NodeBase): void {\n    this.resetStartLocation(node, locationNode.start, locationNode.loc.start);\n  }\n}\n","// @flow\n\nimport * as charCodes from \"charcodes\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport type {\n  TSParameterProperty,\n  Decorator,\n  Expression,\n  Node,\n  Pattern,\n  RestElement,\n  SpreadElement,\n  /*:: Identifier, */\n  /*:: ObjectExpression, */\n  /*:: ObjectPattern, */\n} from \"../types\";\nimport type { Pos, Position } from \"../util/location\";\nimport {\n  isStrictBindOnlyReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport { NodeUtils } from \"./node\";\nimport { type BindingTypes, BIND_NONE } from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { Errors } from \"./location\";\n\nconst unwrapParenthesizedExpression = (node: Node) => {\n  return node.type === \"ParenthesizedExpression\"\n    ? unwrapParenthesizedExpression(node.expression)\n    : node;\n};\n\nexport default class LValParser extends NodeUtils {\n  // Forward-declaration: defined in expression.js\n  /*::\n  +parseIdentifier: (liberal?: boolean) => Identifier;\n  +parseMaybeAssign: (\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ) => Expression;\n  +parseObj: <T: ObjectPattern | ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ) => T;\n  */\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseDecorator: () => Decorator;\n  */\n\n  // Convert existing expression atom to assignable pattern\n  // if possible.\n  // NOTE: There is a corresponding \"isAssignable\" method in flow.js.\n  // When this one is updated, please check if also that one needs to be updated.\n\n  toAssignable(node: Node): Node {\n    let parenthesized = undefined;\n    if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n      parenthesized = unwrapParenthesizedExpression(node);\n      if (\n        parenthesized.type !== \"Identifier\" &&\n        parenthesized.type !== \"MemberExpression\"\n      ) {\n        this.raise(node.start, Errors.InvalidParenthesizedAssignment);\n      }\n    }\n\n    switch (node.type) {\n      case \"Identifier\":\n      case \"ObjectPattern\":\n      case \"ArrayPattern\":\n      case \"AssignmentPattern\":\n        break;\n\n      case \"ObjectExpression\":\n        node.type = \"ObjectPattern\";\n        for (\n          let i = 0, length = node.properties.length, last = length - 1;\n          i < length;\n          i++\n        ) {\n          const prop = node.properties[i];\n          const isLast = i === last;\n          this.toAssignableObjectExpressionProp(prop, isLast);\n\n          if (\n            isLast &&\n            prop.type === \"RestElement\" &&\n            node.extra?.trailingComma\n          ) {\n            this.raiseRestNotLast(node.extra.trailingComma);\n          }\n        }\n        break;\n\n      case \"ObjectProperty\":\n        this.toAssignable(node.value);\n        break;\n\n      case \"SpreadElement\": {\n        this.checkToRestConversion(node);\n\n        node.type = \"RestElement\";\n        const arg = node.argument;\n        this.toAssignable(arg);\n        break;\n      }\n\n      case \"ArrayExpression\":\n        node.type = \"ArrayPattern\";\n        this.toAssignableList(node.elements, node.extra?.trailingComma);\n        break;\n\n      case \"AssignmentExpression\":\n        if (node.operator !== \"=\") {\n          this.raise(node.left.end, Errors.MissingEqInAssignment);\n        }\n\n        node.type = \"AssignmentPattern\";\n        delete node.operator;\n        this.toAssignable(node.left);\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.toAssignable(((parenthesized: any): Expression));\n        break;\n\n      default:\n      // We don't know how to deal with this node. It will\n      // be reported by a later call to checkLVal\n    }\n    return node;\n  }\n\n  toAssignableObjectExpressionProp(prop: Node, isLast: boolean) {\n    if (prop.type === \"ObjectMethod\") {\n      const error =\n        prop.kind === \"get\" || prop.kind === \"set\"\n          ? Errors.PatternHasAccessor\n          : Errors.PatternHasMethod;\n\n      this.raise(prop.key.start, error);\n    } else if (prop.type === \"SpreadElement\" && !isLast) {\n      this.raiseRestNotLast(prop.start);\n    } else {\n      this.toAssignable(prop);\n    }\n  }\n\n  // Convert list of expression atoms to binding list.\n\n  toAssignableList(\n    exprList: Expression[],\n    trailingCommaPos?: ?number,\n  ): $ReadOnlyArray<Pattern> {\n    let end = exprList.length;\n    if (end) {\n      const last = exprList[end - 1];\n      if (last && last.type === \"RestElement\") {\n        --end;\n      } else if (last && last.type === \"SpreadElement\") {\n        last.type = \"RestElement\";\n        const arg = last.argument;\n        this.toAssignable(arg);\n        if (\n          arg.type !== \"Identifier\" &&\n          arg.type !== \"MemberExpression\" &&\n          arg.type !== \"ArrayPattern\" &&\n          arg.type !== \"ObjectPattern\"\n        ) {\n          this.unexpected(arg.start);\n        }\n\n        if (trailingCommaPos) {\n          this.raiseTrailingCommaAfterRest(trailingCommaPos);\n        }\n\n        --end;\n      }\n    }\n    for (let i = 0; i < end; i++) {\n      const elt = exprList[i];\n      if (elt) {\n        this.toAssignable(elt);\n        if (elt.type === \"RestElement\") {\n          this.raiseRestNotLast(elt.start);\n        }\n      }\n    }\n    return exprList;\n  }\n\n  // Convert list of expression atoms to a list of\n\n  toReferencedList(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean, // eslint-disable-line no-unused-vars\n  ): $ReadOnlyArray<?Expression> {\n    return exprList;\n  }\n\n  toReferencedListDeep(\n    exprList: $ReadOnlyArray<?Expression>,\n    isParenthesizedExpr?: boolean,\n  ): void {\n    this.toReferencedList(exprList, isParenthesizedExpr);\n\n    for (const expr of exprList) {\n      if (expr && expr.type === \"ArrayExpression\") {\n        this.toReferencedListDeep(expr.elements);\n      }\n    }\n  }\n\n  // Parses spread element.\n\n  parseSpread(\n    refExpressionErrors: ?ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): SpreadElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseMaybeAssign(\n      false,\n      refExpressionErrors,\n      undefined,\n      refNeedsArrowPos,\n    );\n    return this.finishNode(node, \"SpreadElement\");\n  }\n\n  parseRestBinding(): RestElement {\n    const node = this.startNode();\n    this.next();\n    node.argument = this.parseBindingAtom();\n    return this.finishNode(node, \"RestElement\");\n  }\n\n  // Parses lvalue (assignable) atom.\n  parseBindingAtom(): Pattern {\n    switch (this.state.type) {\n      case tt.bracketL: {\n        const node = this.startNode();\n        this.next();\n        node.elements = this.parseBindingList(\n          tt.bracketR,\n          charCodes.rightSquareBracket,\n          true,\n        );\n        return this.finishNode(node, \"ArrayPattern\");\n      }\n\n      case tt.braceL:\n        return this.parseObj(tt.braceR, true);\n    }\n\n    return this.parseIdentifier();\n  }\n\n  parseBindingList(\n    close: TokenType,\n    closeCharCode: $Values<typeof charCodes>,\n    allowEmpty?: boolean,\n    allowModifiers?: boolean,\n  ): $ReadOnlyArray<Pattern | TSParameterProperty> {\n    const elts: Array<Pattern | TSParameterProperty> = [];\n    let first = true;\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n      }\n      if (allowEmpty && this.match(tt.comma)) {\n        // $FlowFixMe This method returns `$ReadOnlyArray<?Pattern>` if `allowEmpty` is set.\n        elts.push(null);\n      } else if (this.eat(close)) {\n        break;\n      } else if (this.match(tt.ellipsis)) {\n        elts.push(this.parseAssignableListItemTypes(this.parseRestBinding()));\n        this.checkCommaAfterRest(closeCharCode);\n        this.expect(close);\n        break;\n      } else {\n        const decorators = [];\n        if (this.match(tt.at) && this.hasPlugin(\"decorators\")) {\n          this.raise(this.state.start, Errors.UnsupportedParameterDecorator);\n        }\n        while (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n        }\n        elts.push(this.parseAssignableListItem(allowModifiers, decorators));\n      }\n    }\n    return elts;\n  }\n\n  parseAssignableListItem(\n    allowModifiers: ?boolean,\n    decorators: Decorator[],\n  ): Pattern | TSParameterProperty {\n    const left = this.parseMaybeDefault();\n    this.parseAssignableListItemTypes(left);\n    const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n    if (decorators.length) {\n      left.decorators = decorators;\n    }\n    return elt;\n  }\n\n  parseAssignableListItemTypes(param: Pattern): Pattern {\n    return param;\n  }\n\n  // Parses assignment pattern around given atom if possible.\n\n  parseMaybeDefault(\n    startPos?: ?number,\n    startLoc?: ?Position,\n    left?: ?Pattern,\n  ): Pattern {\n    startLoc = startLoc || this.state.startLoc;\n    startPos = startPos || this.state.start;\n    left = left || this.parseBindingAtom();\n    if (!this.eat(tt.eq)) return left;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    node.left = left;\n    node.right = this.parseMaybeAssign();\n    return this.finishNode(node, \"AssignmentPattern\");\n  }\n\n  // Verify that a node is an lval — something that can be assigned\n  // to.\n\n  checkLVal(\n    expr: Expression,\n    bindingType: BindingTypes = BIND_NONE,\n    checkClashes: ?{ [key: string]: boolean },\n    contextDescription: string,\n    disallowLetBinding?: boolean,\n    strictModeChanged?: boolean = false,\n  ): void {\n    switch (expr.type) {\n      case \"Identifier\":\n        if (\n          this.state.strict &&\n          // \"Global\" reserved words have already been checked by parseIdentifier,\n          // unless they have been found in the id or parameters of a strict-mode\n          // function in a sloppy context.\n          (strictModeChanged\n            ? isStrictBindReservedWord(expr.name, this.inModule)\n            : isStrictBindOnlyReservedWord(expr.name))\n        ) {\n          this.raise(\n            expr.start,\n            bindingType === BIND_NONE\n              ? Errors.StrictEvalArguments\n              : Errors.StrictEvalArgumentsBinding,\n            expr.name,\n          );\n        }\n\n        if (checkClashes) {\n          // we need to prefix this with an underscore for the cases where we have a key of\n          // `__proto__`. there's a bug in old V8 where the following wouldn't work:\n          //\n          //   > var obj = Object.create(null);\n          //   undefined\n          //   > obj.__proto__\n          //   null\n          //   > obj.__proto__ = true;\n          //   true\n          //   > obj.__proto__\n          //   null\n          const key = `_${expr.name}`;\n\n          if (checkClashes[key]) {\n            this.raise(expr.start, Errors.ParamDupe);\n          } else {\n            checkClashes[key] = true;\n          }\n        }\n        if (disallowLetBinding && expr.name === \"let\") {\n          this.raise(expr.start, Errors.LetInLexicalBinding);\n        }\n        if (!(bindingType & BIND_NONE)) {\n          this.scope.declareName(expr.name, bindingType, expr.start);\n        }\n        break;\n\n      case \"MemberExpression\":\n        if (bindingType !== BIND_NONE) {\n          this.raise(expr.start, Errors.InvalidPropertyBindingPattern);\n        }\n        break;\n\n      case \"ObjectPattern\":\n        for (let prop of expr.properties) {\n          if (prop.type === \"ObjectProperty\") prop = prop.value;\n          // If we find here an ObjectMethod, it's because this was originally\n          // an ObjectExpression which has then been converted.\n          // toAssignable already reported this error with a nicer message.\n          else if (prop.type === \"ObjectMethod\") continue;\n\n          this.checkLVal(\n            prop,\n            bindingType,\n            checkClashes,\n            \"object destructuring pattern\",\n            disallowLetBinding,\n          );\n        }\n        break;\n\n      case \"ArrayPattern\":\n        for (const elem of expr.elements) {\n          if (elem) {\n            this.checkLVal(\n              elem,\n              bindingType,\n              checkClashes,\n              \"array destructuring pattern\",\n              disallowLetBinding,\n            );\n          }\n        }\n        break;\n\n      case \"AssignmentPattern\":\n        this.checkLVal(\n          expr.left,\n          bindingType,\n          checkClashes,\n          \"assignment pattern\",\n        );\n        break;\n\n      case \"RestElement\":\n        this.checkLVal(\n          expr.argument,\n          bindingType,\n          checkClashes,\n          \"rest element\",\n        );\n        break;\n\n      case \"ParenthesizedExpression\":\n        this.checkLVal(\n          expr.expression,\n          bindingType,\n          checkClashes,\n          \"parenthesized expression\",\n        );\n        break;\n\n      default: {\n        this.raise(\n          expr.start,\n          bindingType === BIND_NONE\n            ? Errors.InvalidLhs\n            : Errors.InvalidLhsBinding,\n          contextDescription,\n        );\n      }\n    }\n  }\n\n  checkToRestConversion(node: SpreadElement): void {\n    if (\n      node.argument.type !== \"Identifier\" &&\n      node.argument.type !== \"MemberExpression\"\n    ) {\n      this.raise(node.argument.start, Errors.InvalidRestAssignmentPattern);\n    }\n  }\n\n  checkCommaAfterRest(close: $Values<typeof charCodes>): void {\n    if (this.match(tt.comma)) {\n      if (this.lookaheadCharCode() === close) {\n        this.raiseTrailingCommaAfterRest(this.state.start);\n      } else {\n        this.raiseRestNotLast(this.state.start);\n      }\n    }\n  }\n\n  raiseRestNotLast(pos: number) {\n    throw this.raise(pos, Errors.ElementAfterRest);\n  }\n\n  raiseTrailingCommaAfterRest(pos: number) {\n    this.raise(pos, Errors.RestTrailingComma);\n  }\n}\n","// @flow\n\n// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport { types as ct } from \"../tokenizer/context\";\nimport * as N from \"../types\";\nimport LValParser from \"./lval\";\nimport {\n  isKeyword,\n  isReservedWord,\n  isStrictReservedWord,\n  isStrictBindReservedWord,\n} from \"../util/identifier\";\nimport type { Pos, Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_OUTSIDE,\n  BIND_VAR,\n  SCOPE_ARROW,\n  SCOPE_CLASS,\n  SCOPE_DIRECT_SUPER,\n  SCOPE_FUNCTION,\n  SCOPE_SUPER,\n  SCOPE_PROGRAM,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport {\n  PARAM_AWAIT,\n  PARAM_RETURN,\n  PARAM,\n  functionFlags,\n} from \"../util/production-parameter\";\nimport { Errors } from \"./location\";\n\nexport default class ExpressionParser extends LValParser {\n  // Forward-declaration: defined in statement.js\n  /*::\n  +parseBlock: (\n    allowDirectives?: boolean,\n    createNewLexicalScope?: boolean,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ) => N.BlockStatement;\n  +parseClass: (\n    node: N.Class,\n    isStatement: boolean,\n    optionalId?: boolean,\n  ) => N.Class;\n  +parseDecorators: (allowExport?: boolean) => void;\n  +parseFunction: <T: N.NormalFunction>(\n    node: T,\n    statement?: number,\n    allowExpressionBody?: boolean,\n    isAsync?: boolean,\n  ) => T;\n  +parseFunctionParams: (node: N.Function, allowModifiers?: boolean) => void;\n  +takeDecorators: (node: N.HasDecorators) => void;\n  */\n\n  // Check if property __proto__ has been used more than once.\n  // If the expression is a destructuring assignment, then __proto__ may appear\n  // multiple times. Otherwise, __proto__ is a duplicated key.\n\n  checkDuplicatedProto(\n    prop: N.ObjectMember | N.SpreadElement,\n    protoRef: { used: boolean },\n    refExpressionErrors: ?ExpressionErrors,\n  ): void {\n    if (\n      prop.type === \"SpreadElement\" ||\n      prop.computed ||\n      prop.kind ||\n      // $FlowIgnore\n      prop.shorthand\n    ) {\n      return;\n    }\n\n    const key = prop.key;\n    // It is either an Identifier or a String/NumericLiteral\n    const name = key.type === \"Identifier\" ? key.name : String(key.value);\n\n    if (name === \"__proto__\") {\n      if (protoRef.used) {\n        if (refExpressionErrors) {\n          // Store the first redefinition's position, otherwise ignore because\n          // we are parsing ambiguous pattern\n          if (refExpressionErrors.doubleProto === -1) {\n            refExpressionErrors.doubleProto = key.start;\n          }\n        } else {\n          this.raise(key.start, Errors.DuplicateProto);\n        }\n      }\n\n      protoRef.used = true;\n    }\n  }\n\n  // Convenience method to parse an Expression only\n  getExpression(): N.Expression {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    this.nextToken();\n    const expr = this.parseExpression();\n    if (!this.match(tt.eof)) {\n      this.unexpected();\n    }\n    expr.comments = this.state.comments;\n    expr.errors = this.state.errors;\n    return expr;\n  }\n\n  // ### Expression parsing\n\n  // These nest, from the most general expression type at the top to\n  // 'atomic', nondivisible expression types at the bottom. Most of\n  // the functions will simply let the function (s) below them parse,\n  // and, *if* the syntactic construct they handle is present, wrap\n  // the AST node that the inner parser gave them in another node.\n\n  // Parse a full expression.\n  // - `noIn`\n  //   is used to forbid the `in` operator (in for loops initialization expressions)\n  //   When `noIn` is true, the production parameter [In] is not present.\n  //   Whenever [?In] appears in the right-hand sides of a production, we pass\n  //   `noIn` to the subroutine calls.\n\n  // - `refExpressionErrors `\n  //   provides reference for storing '=' operator inside shorthand\n  //   property assignment in contexts where both object expression\n  //   and object pattern might appear (so it's possible to raise\n  //   delayed syntax error at correct position).\n\n  parseExpression(\n    noIn?: boolean,\n    refExpressionErrors?: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const expr = this.parseMaybeAssign(noIn, refExpressionErrors);\n    if (this.match(tt.comma)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.expressions = [expr];\n      while (this.eat(tt.comma)) {\n        node.expressions.push(this.parseMaybeAssign(noIn, refExpressionErrors));\n      }\n      this.toReferencedList(node.expressions);\n      return this.finishNode(node, \"SequenceExpression\");\n    }\n    return expr;\n  }\n\n  // Parse an assignment expression. This includes applications of\n  // operators like `+=`.\n\n  parseMaybeAssign(\n    noIn?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    afterLeftParse?: Function,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    if (this.isContextual(\"yield\")) {\n      if (this.prodParam.hasYield) {\n        let left = this.parseYield(noIn);\n        if (afterLeftParse) {\n          left = afterLeftParse.call(this, left, startPos, startLoc);\n        }\n        return left;\n      } else {\n        // The tokenizer will assume an expression is allowed after\n        // `yield`, but this isn't that kind of yield\n        this.state.exprAllowed = false;\n      }\n    }\n\n    let ownExpressionErrors;\n    if (refExpressionErrors) {\n      ownExpressionErrors = false;\n    } else {\n      refExpressionErrors = new ExpressionErrors();\n      ownExpressionErrors = true;\n    }\n\n    if (this.match(tt.parenL) || this.match(tt.name)) {\n      this.state.potentialArrowAt = this.state.start;\n    }\n\n    let left = this.parseMaybeConditional(\n      noIn,\n      refExpressionErrors,\n      refNeedsArrowPos,\n    );\n    if (afterLeftParse) {\n      left = afterLeftParse.call(this, left, startPos, startLoc);\n    }\n    if (this.state.type.isAssign) {\n      const node = this.startNodeAt(startPos, startLoc);\n      const operator = this.state.value;\n      node.operator = operator;\n\n      if (operator === \"??=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (operator === \"||=\" || operator === \"&&=\") {\n        this.expectPlugin(\"logicalAssignment\");\n      }\n      if (this.match(tt.eq)) {\n        node.left = this.toAssignable(left);\n        refExpressionErrors.doubleProto = -1; // reset because double __proto__ is valid in assignment expression\n      } else {\n        node.left = left;\n      }\n\n      if (refExpressionErrors.shorthandAssign >= node.left.start) {\n        refExpressionErrors.shorthandAssign = -1; // reset because shorthand default was used correctly\n      }\n\n      this.checkLVal(left, undefined, undefined, \"assignment expression\");\n\n      this.next();\n      node.right = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"AssignmentExpression\");\n    } else if (ownExpressionErrors) {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n\n    return left;\n  }\n\n  // Parse a ternary conditional (`?:`) operator.\n\n  parseMaybeConditional(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprOps(noIn, refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n\n    return this.parseConditional(\n      expr,\n      noIn,\n      startPos,\n      startLoc,\n      refNeedsArrowPos,\n    );\n  }\n\n  parseConditional(\n    expr: N.Expression,\n    noIn: ?boolean,\n    startPos: number,\n    startLoc: Position,\n    // FIXME: Disabling this for now since can't seem to get it to play nicely\n    // eslint-disable-next-line no-unused-vars\n    refNeedsArrowPos?: ?Pos,\n  ): N.Expression {\n    if (this.eat(tt.question)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.test = expr;\n      node.consequent = this.parseMaybeAssign();\n      this.expect(tt.colon);\n      node.alternate = this.parseMaybeAssign(noIn);\n      return this.finishNode(node, \"ConditionalExpression\");\n    }\n    return expr;\n  }\n\n  // Start the precedence parser.\n\n  parseExprOps(\n    noIn: ?boolean,\n    refExpressionErrors: ExpressionErrors,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseMaybeUnary(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n    if (this.checkExpressionErrors(refExpressionErrors, false)) {\n      return expr;\n    }\n\n    return this.parseExprOp(expr, startPos, startLoc, -1, noIn);\n  }\n\n  // Parse binary operators with the operator precedence parsing\n  // algorithm. `left` is the left-hand side of the operator.\n  // `minPrec` provides context that allows the function to stop and\n  // defer further parser to one of its callers when it encounters an\n  // operator that has a lower precedence than the set it is parsing.\n\n  parseExprOp(\n    left: N.Expression,\n    leftStartPos: number,\n    leftStartLoc: Position,\n    minPrec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    let prec = this.state.type.binop;\n    if (prec != null && (!noIn || !this.match(tt._in))) {\n      if (prec > minPrec) {\n        const operator = this.state.value;\n        if (operator === \"|>\" && this.state.inFSharpPipelineDirectBody) {\n          return left;\n        }\n        const node = this.startNodeAt(leftStartPos, leftStartLoc);\n        node.left = left;\n        node.operator = operator;\n        if (\n          operator === \"**\" &&\n          left.type === \"UnaryExpression\" &&\n          (this.options.createParenthesizedExpressions ||\n            !(left.extra && left.extra.parenthesized))\n        ) {\n          this.raise(\n            left.argument.start,\n            Errors.UnexpectedTokenUnaryExponentiation,\n          );\n        }\n\n        const op = this.state.type;\n        const logical = op === tt.logicalOR || op === tt.logicalAND;\n        const coalesce = op === tt.nullishCoalescing;\n\n        if (op === tt.pipeline) {\n          this.expectPlugin(\"pipelineOperator\");\n          this.state.inPipeline = true;\n          this.checkPipelineAtInfixOperator(left, leftStartPos);\n        } else if (coalesce) {\n          // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n          // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n          prec = ((tt.logicalAND: any): { binop: number }).binop;\n        }\n\n        this.next();\n\n        if (\n          op === tt.pipeline &&\n          this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"minimal\"\n        ) {\n          if (\n            this.match(tt.name) &&\n            this.state.value === \"await\" &&\n            this.prodParam.hasAwait\n          ) {\n            throw this.raise(\n              this.state.start,\n              Errors.UnexpectedAwaitAfterPipelineBody,\n            );\n          }\n        }\n\n        node.right = this.parseExprOpRightExpr(op, prec, noIn);\n        this.finishNode(\n          node,\n          logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\",\n        );\n        /* this check is for all ?? operators\n         * a ?? b && c for this example\n         * when op is coalesce and nextOp is logical (&&), throw at the pos of nextOp that it can not be mixed.\n         * Symmetrically it also throws when op is logical and nextOp is coalesce\n         */\n        const nextOp = this.state.type;\n        if (\n          (coalesce && (nextOp === tt.logicalOR || nextOp === tt.logicalAND)) ||\n          (logical && nextOp === tt.nullishCoalescing)\n        ) {\n          throw this.raise(this.state.start, Errors.MixingCoalesceWithLogical);\n        }\n\n        return this.parseExprOp(\n          node,\n          leftStartPos,\n          leftStartLoc,\n          minPrec,\n          noIn,\n        );\n      }\n    }\n    return left;\n  }\n\n  // Helper function for `parseExprOp`. Parse the right-hand side of binary-\n  // operator expressions, then apply any operator-specific functions.\n\n  parseExprOpRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    switch (op) {\n      case tt.pipeline:\n        switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n          case \"smart\":\n            return this.withTopicPermittingContext(() => {\n              return this.parseSmartPipelineBody(\n                this.parseExprOpBaseRightExpr(op, prec, noIn),\n                startPos,\n                startLoc,\n              );\n            });\n          case \"fsharp\":\n            return this.withSoloAwaitPermittingContext(() => {\n              return this.parseFSharpPipelineBody(prec, noIn);\n            });\n        }\n      // falls through\n\n      default:\n        return this.parseExprOpBaseRightExpr(op, prec, noIn);\n    }\n  }\n\n  // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of\n  // binary-operator expressions without applying any operator-specific functions.\n\n  parseExprOpBaseRightExpr(\n    op: TokenType,\n    prec: number,\n    noIn: ?boolean,\n  ): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    return this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      op.rightAssociative ? prec - 1 : prec,\n      noIn,\n    );\n  }\n\n  // Parse unary operators, both prefix and postfix.\n\n  parseMaybeUnary(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    if (this.isContextual(\"await\") && this.isAwaitAllowed()) {\n      return this.parseAwait();\n    } else if (this.state.type.prefix) {\n      const node = this.startNode();\n      const update = this.match(tt.incDec);\n      node.operator = this.state.value;\n      node.prefix = true;\n\n      if (node.operator === \"throw\") {\n        this.expectPlugin(\"throwExpressions\");\n      }\n      this.next();\n\n      node.argument = this.parseMaybeUnary();\n\n      this.checkExpressionErrors(refExpressionErrors, true);\n\n      if (update) {\n        this.checkLVal(node.argument, undefined, undefined, \"prefix operation\");\n      } else if (this.state.strict && node.operator === \"delete\") {\n        const arg = node.argument;\n\n        if (arg.type === \"Identifier\") {\n          this.raise(node.start, Errors.StrictDelete);\n        } else if (\n          arg.type === \"MemberExpression\" &&\n          arg.property.type === \"PrivateName\"\n        ) {\n          this.raise(node.start, Errors.DeletePrivateField);\n        }\n      }\n\n      return this.finishNode(\n        node,\n        update ? \"UpdateExpression\" : \"UnaryExpression\",\n      );\n    }\n\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    let expr = this.parseExprSubscripts(refExpressionErrors);\n    if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;\n    while (this.state.type.postfix && !this.canInsertSemicolon()) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.operator = this.state.value;\n      node.prefix = false;\n      node.argument = expr;\n      this.checkLVal(expr, undefined, undefined, \"postfix operation\");\n      this.next();\n      expr = this.finishNode(node, \"UpdateExpression\");\n    }\n    return expr;\n  }\n\n  // Parse call, dot, and `[]`-subscript expressions.\n\n  parseExprSubscripts(refExpressionErrors: ?ExpressionErrors): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    const potentialArrowAt = this.state.potentialArrowAt;\n    const expr = this.parseExprAtom(refExpressionErrors);\n\n    if (\n      expr.type === \"ArrowFunctionExpression\" &&\n      expr.start === potentialArrowAt\n    ) {\n      return expr;\n    }\n\n    return this.parseSubscripts(expr, startPos, startLoc);\n  }\n\n  parseSubscripts(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls?: ?boolean,\n  ): N.Expression {\n    const state = {\n      optionalChainMember: false,\n      maybeAsyncArrow: this.atPossibleAsyncArrow(base),\n      stop: false,\n    };\n    do {\n      const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n      if (state.maybeAsyncArrow) {\n        this.state.maybeInAsyncArrowHead = true;\n      }\n      base = this.parseSubscript(base, startPos, startLoc, noCalls, state);\n\n      // After parsing a subscript, this isn't \"async\" for sure.\n      state.maybeAsyncArrow = false;\n      this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n    } while (!state.stop);\n    return base;\n  }\n\n  /**\n   * @param state Set 'state.stop = true' to indicate that we should stop parsing subscripts.\n   *   state.optionalChainMember to indicate that the member is currently in OptionalChain\n   */\n  parseSubscript(\n    base: N.Expression,\n    startPos: number,\n    startLoc: Position,\n    noCalls: ?boolean,\n    state: N.ParseSubscriptState,\n  ): N.Expression {\n    if (!noCalls && this.eat(tt.doubleColon)) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.callee = this.parseNoCallExpr();\n      state.stop = true;\n      return this.parseSubscripts(\n        this.finishNode(node, \"BindExpression\"),\n        startPos,\n        startLoc,\n        noCalls,\n      );\n    }\n    let optional = false;\n    if (this.match(tt.questionDot)) {\n      state.optionalChainMember = optional = true;\n      if (noCalls && this.lookaheadCharCode() === charCodes.leftParenthesis) {\n        state.stop = true;\n        return base;\n      }\n      this.next();\n    }\n    const computed = this.eat(tt.bracketL);\n    if (\n      (optional && !this.match(tt.parenL) && !this.match(tt.backQuote)) ||\n      computed ||\n      this.eat(tt.dot)\n    ) {\n      const node = this.startNodeAt(startPos, startLoc);\n      node.object = base;\n      node.property = computed\n        ? this.parseExpression()\n        : optional\n        ? this.parseIdentifier(true)\n        : this.parseMaybePrivateName(true);\n      node.computed = computed;\n\n      if (node.property.type === \"PrivateName\") {\n        if (node.object.type === \"Super\") {\n          this.raise(startPos, Errors.SuperPrivateField);\n        }\n        this.classScope.usePrivateName(\n          node.property.id.name,\n          node.property.start,\n        );\n      }\n\n      if (computed) {\n        this.expect(tt.bracketR);\n      }\n\n      if (state.optionalChainMember) {\n        node.optional = optional;\n        return this.finishNode(node, \"OptionalMemberExpression\");\n      } else {\n        return this.finishNode(node, \"MemberExpression\");\n      }\n    } else if (!noCalls && this.match(tt.parenL)) {\n      const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n      const oldYieldPos = this.state.yieldPos;\n      const oldAwaitPos = this.state.awaitPos;\n      this.state.maybeInArrowParameters = true;\n      this.state.yieldPos = -1;\n      this.state.awaitPos = -1;\n\n      this.next();\n\n      let node = this.startNodeAt(startPos, startLoc);\n      node.callee = base;\n\n      if (optional) {\n        node.optional = true;\n        node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      } else {\n        node.arguments = this.parseCallExpressionArguments(\n          tt.parenR,\n          state.maybeAsyncArrow,\n          base.type === \"Import\",\n          base.type !== \"Super\",\n          node,\n        );\n      }\n      this.finishCallExpression(node, state.optionalChainMember);\n\n      if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n        state.stop = true;\n\n        node = this.parseAsyncArrowFromCallExpression(\n          this.startNodeAt(startPos, startLoc),\n          node,\n        );\n        this.checkYieldAwaitInDefaultParams();\n        this.state.yieldPos = oldYieldPos;\n        this.state.awaitPos = oldAwaitPos;\n      } else {\n        this.toReferencedListDeep(node.arguments);\n\n        // We keep the old value if it isn't null, for cases like\n        //   (x = async(yield)) => {}\n        //\n        // Hi developer of the future :) If you are implementing generator\n        // arrow functions, please read the note below about \"await\" and\n        // verify if the same logic is needed for yield.\n        if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n\n        // Await is trickier than yield. When parsing a possible arrow function\n        // (e.g. something starting with `async(`) we don't know if its possible\n        // parameters will actually be inside an async arrow function or if it is\n        // a normal call expression.\n        // If it ended up being a call expression, if we are in a context where\n        // await expression are disallowed (and thus \"await\" is an identifier)\n        // we must be careful not to leak this.state.awaitPos to an even outer\n        // context, where \"await\" could not be an identifier.\n        // For example, this code is valid because \"await\" isn't directly inside\n        // an async function:\n        //\n        //     async function a() {\n        //       function b(param = async (await)) {\n        //       }\n        //     }\n        //\n        if (\n          (!this.isAwaitAllowed() && !oldMaybeInArrowParameters) ||\n          oldAwaitPos !== -1\n        ) {\n          this.state.awaitPos = oldAwaitPos;\n        }\n      }\n\n      this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n      return node;\n    } else if (this.match(tt.backQuote)) {\n      return this.parseTaggedTemplateExpression(\n        startPos,\n        startLoc,\n        base,\n        state,\n      );\n    } else {\n      state.stop = true;\n      return base;\n    }\n  }\n\n  parseTaggedTemplateExpression(\n    startPos: number,\n    startLoc: Position,\n    base: N.Expression,\n    state: N.ParseSubscriptState,\n    typeArguments?: ?N.TsTypeParameterInstantiation,\n  ): N.TaggedTemplateExpression {\n    const node: N.TaggedTemplateExpression = this.startNodeAt(\n      startPos,\n      startLoc,\n    );\n    node.tag = base;\n    node.quasi = this.parseTemplate(true);\n    if (typeArguments) node.typeParameters = typeArguments;\n    if (state.optionalChainMember) {\n      this.raise(startPos, Errors.OptionalChainingNoTemplate);\n    }\n    return this.finishNode(node, \"TaggedTemplateExpression\");\n  }\n\n  atPossibleAsyncArrow(base: N.Expression): boolean {\n    return (\n      base.type === \"Identifier\" &&\n      base.name === \"async\" &&\n      this.state.lastTokEnd === base.end &&\n      !this.canInsertSemicolon() &&\n      // check there are no escape sequences, such as \\u{61}sync\n      base.end - base.start === 5 &&\n      base.start === this.state.potentialArrowAt\n    );\n  }\n\n  finishCallExpression<T: N.CallExpression | N.OptionalCallExpression>(\n    node: T,\n    optional: boolean,\n  ): N.Expression {\n    if (node.callee.type === \"Import\") {\n      if (node.arguments.length !== 1) {\n        this.raise(node.start, Errors.ImportCallArity);\n      } else {\n        const importArg = node.arguments[0];\n        if (importArg && importArg.type === \"SpreadElement\") {\n          this.raise(importArg.start, Errors.ImportCallSpreadArgument);\n        }\n      }\n    }\n    return this.finishNode(\n      node,\n      optional ? \"OptionalCallExpression\" : \"CallExpression\",\n    );\n  }\n\n  parseCallExpressionArguments(\n    close: TokenType,\n    possibleAsyncArrow: boolean,\n    dynamicImport?: boolean,\n    allowPlaceholder?: boolean,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let innerParenStart;\n    let first = true;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (dynamicImport) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.ImportCallArgumentTrailingComma,\n            );\n          }\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      // we need to make sure that if this is an async arrow functions,\n      // that we don't allow inner parens inside the params\n      if (this.match(tt.parenL) && !innerParenStart) {\n        innerParenStart = this.state.start;\n      }\n\n      elts.push(\n        this.parseExprListItem(\n          false,\n          possibleAsyncArrow ? new ExpressionErrors() : undefined,\n          possibleAsyncArrow ? { start: 0 } : undefined,\n          allowPlaceholder,\n        ),\n      );\n    }\n\n    // we found an async arrow function so let's not allow any inner parens\n    if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) {\n      this.unexpected();\n    }\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return elts;\n  }\n\n  shouldParseAsyncArrow(): boolean {\n    return this.match(tt.arrow) && !this.canInsertSemicolon();\n  }\n\n  parseAsyncArrowFromCallExpression(\n    node: N.ArrowFunctionExpression,\n    call: N.CallExpression,\n  ): N.ArrowFunctionExpression {\n    this.expect(tt.arrow);\n    this.parseArrowExpression(\n      node,\n      call.arguments,\n      true,\n      call.extra?.trailingComma,\n    );\n    return node;\n  }\n\n  // Parse a no-call expression (like argument of `new` or `::` operators).\n\n  parseNoCallExpr(): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n    return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true);\n  }\n\n  // Parse an atomic expression — either a single token that is an\n  // expression, an expression started by a keyword like `function` or\n  // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n  // or `{}`.\n\n  parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n    // If a division operator appears in an expression position, the\n    // tokenizer got confused, and we force it to read a regexp instead.\n    if (this.state.type === tt.slash) this.readRegexp();\n\n    const canBeArrow = this.state.potentialArrowAt === this.state.start;\n    let node;\n\n    switch (this.state.type) {\n      case tt._super:\n        node = this.startNode();\n        this.next();\n        if (\n          this.match(tt.parenL) &&\n          !this.scope.allowDirectSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.SuperNotAllowed);\n        } else if (\n          !this.scope.allowSuper &&\n          !this.options.allowSuperOutsideMethod\n        ) {\n          this.raise(node.start, Errors.UnexpectedSuper);\n        }\n\n        if (\n          !this.match(tt.parenL) &&\n          !this.match(tt.bracketL) &&\n          !this.match(tt.dot)\n        ) {\n          this.raise(node.start, Errors.UnsupportedSuper);\n        }\n\n        return this.finishNode(node, \"Super\");\n\n      case tt._import:\n        node = this.startNode();\n        this.next();\n\n        if (this.match(tt.dot)) {\n          return this.parseImportMetaProperty(node);\n        }\n\n        if (!this.match(tt.parenL)) {\n          this.raise(this.state.lastTokStart, Errors.UnsupportedImport);\n        }\n        return this.finishNode(node, \"Import\");\n      case tt._this:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"ThisExpression\");\n\n      case tt.name: {\n        node = this.startNode();\n        const containsEsc = this.state.containsEsc;\n        const id = this.parseIdentifier();\n\n        if (\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt._function) &&\n          !this.canInsertSemicolon()\n        ) {\n          const last = this.state.context.length - 1;\n          if (this.state.context[last] !== ct.functionStatement) {\n            // Since \"async\" is an identifier and normally identifiers\n            // can't be followed by expression, the tokenizer assumes\n            // that \"function\" starts a statement.\n            // Fixing it in the tokenizer would mean tracking not only the\n            // previous token (\"async\"), but also the one before to know\n            // its beforeExpr value.\n            // It's easier and more efficient to adjust the context here.\n            throw new Error(\"Internal error\");\n          }\n          this.state.context[last] = ct.functionExpression;\n\n          this.next();\n          return this.parseFunction(node, undefined, true);\n        } else if (\n          canBeArrow &&\n          !containsEsc &&\n          id.name === \"async\" &&\n          this.match(tt.name) &&\n          !this.canInsertSemicolon()\n        ) {\n          const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n          const oldMaybeInAsyncArrowHead = this.state.maybeInAsyncArrowHead;\n          const oldYieldPos = this.state.yieldPos;\n          const oldAwaitPos = this.state.awaitPos;\n          this.state.maybeInArrowParameters = true;\n          this.state.maybeInAsyncArrowHead = true;\n          this.state.yieldPos = -1;\n          this.state.awaitPos = -1;\n          const params = [this.parseIdentifier()];\n          this.expect(tt.arrow);\n          this.checkYieldAwaitInDefaultParams();\n          this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n          this.state.maybeInAsyncArrowHead = oldMaybeInAsyncArrowHead;\n          this.state.yieldPos = oldYieldPos;\n          this.state.awaitPos = oldAwaitPos;\n          // let foo = async bar => {};\n          this.parseArrowExpression(node, params, true);\n          return node;\n        }\n\n        if (canBeArrow && this.match(tt.arrow) && !this.canInsertSemicolon()) {\n          this.next();\n          this.parseArrowExpression(node, [id], false);\n          return node;\n        }\n\n        return id;\n      }\n\n      case tt._do: {\n        this.expectPlugin(\"doExpressions\");\n        const node = this.startNode();\n        this.next();\n        const oldLabels = this.state.labels;\n        this.state.labels = [];\n        node.body = this.parseBlock();\n        this.state.labels = oldLabels;\n        return this.finishNode(node, \"DoExpression\");\n      }\n\n      case tt.regexp: {\n        const value = this.state.value;\n        node = this.parseLiteral(value.value, \"RegExpLiteral\");\n        node.pattern = value.pattern;\n        node.flags = value.flags;\n        return node;\n      }\n\n      case tt.num:\n        return this.parseLiteral(this.state.value, \"NumericLiteral\");\n\n      case tt.bigint:\n        return this.parseLiteral(this.state.value, \"BigIntLiteral\");\n\n      case tt.string:\n        return this.parseLiteral(this.state.value, \"StringLiteral\");\n\n      case tt._null:\n        node = this.startNode();\n        this.next();\n        return this.finishNode(node, \"NullLiteral\");\n\n      case tt._true:\n      case tt._false:\n        return this.parseBooleanLiteral();\n\n      case tt.parenL:\n        return this.parseParenAndDistinguishExpression(canBeArrow);\n\n      case tt.bracketBarL:\n      case tt.bracketHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          close,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"TupleExpression\");\n      }\n      case tt.bracketL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        node = this.startNode();\n        this.next();\n        node.elements = this.parseExprList(\n          tt.bracketR,\n          true,\n          refExpressionErrors,\n          node,\n        );\n        if (!this.state.maybeInArrowParameters) {\n          // This could be an array pattern:\n          //   ([a: string, b: string]) => {}\n          // In this case, we don't have to call toReferencedList. We will\n          // call it, if needed, when we are sure that it is a parenthesized\n          // expression by calling toReferencedListDeep.\n          this.toReferencedList(node.elements);\n        }\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return this.finishNode(node, \"ArrayExpression\");\n      }\n      case tt.braceBarL:\n      case tt.braceHashL: {\n        this.expectPlugin(\"recordAndTuple\");\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        const close =\n          this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(close, false, true, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt.braceL: {\n        const oldInFSharpPipelineDirectBody = this.state\n          .inFSharpPipelineDirectBody;\n        this.state.inFSharpPipelineDirectBody = false;\n        const ret = this.parseObj(tt.braceR, false, false, refExpressionErrors);\n        this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n        return ret;\n      }\n      case tt._function:\n        return this.parseFunctionExpression();\n\n      case tt.at:\n        this.parseDecorators();\n      // fall through\n      case tt._class:\n        node = this.startNode();\n        this.takeDecorators(node);\n        return this.parseClass(node, false);\n\n      case tt._new:\n        return this.parseNew();\n\n      case tt.backQuote:\n        return this.parseTemplate(false);\n\n      case tt.doubleColon: {\n        node = this.startNode();\n        this.next();\n        node.object = null;\n        const callee = (node.callee = this.parseNoCallExpr());\n        if (callee.type === \"MemberExpression\") {\n          return this.finishNode(node, \"BindExpression\");\n        } else {\n          throw this.raise(callee.start, Errors.UnsupportedBind);\n        }\n      }\n\n      case tt.hash: {\n        if (this.state.inPipeline) {\n          node = this.startNode();\n\n          if (\n            this.getPluginOption(\"pipelineOperator\", \"proposal\") !== \"smart\"\n          ) {\n            this.raise(node.start, Errors.PrimaryTopicRequiresSmartPipeline);\n          }\n\n          this.next();\n\n          if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) {\n            this.raise(node.start, Errors.PrimaryTopicNotAllowed);\n          }\n\n          this.registerTopicReference();\n          return this.finishNode(node, \"PipelinePrimaryTopicReference\");\n        }\n      }\n      // fall through\n      default:\n        throw this.unexpected();\n    }\n  }\n\n  parseBooleanLiteral(): N.BooleanLiteral {\n    const node = this.startNode();\n    node.value = this.match(tt._true);\n    this.next();\n    return this.finishNode(node, \"BooleanLiteral\");\n  }\n\n  parseMaybePrivateName(\n    isPrivateNameAllowed: boolean,\n  ): N.PrivateName | N.Identifier {\n    const isPrivate = this.match(tt.hash);\n\n    if (isPrivate) {\n      this.expectOnePlugin([\"classPrivateProperties\", \"classPrivateMethods\"]);\n      if (!isPrivateNameAllowed) {\n        this.raise(this.state.pos, Errors.UnexpectedPrivateField);\n      }\n      const node = this.startNode();\n      this.next();\n      this.assertNoSpace(\"Unexpected space between # and identifier\");\n      node.id = this.parseIdentifier(true);\n      return this.finishNode(node, \"PrivateName\");\n    } else {\n      return this.parseIdentifier(true);\n    }\n  }\n\n  parseFunctionExpression(): N.FunctionExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    // We do not do parseIdentifier here because when parseFunctionExpression\n    // is called we already know that the current token is a \"name\" with the value \"function\"\n    // This will improve perf a tiny little bit as we do not do validation but more importantly\n    // here is that parseIdentifier will remove an item from the expression stack\n    // if \"function\" or \"class\" is parsed as identifier (in objects e.g.), which should not happen here.\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"function\");\n\n    if (this.prodParam.hasYield && this.eat(tt.dot)) {\n      return this.parseMetaProperty(node, meta, \"sent\");\n    }\n    return this.parseFunction(node);\n  }\n\n  parseMetaProperty(\n    node: N.MetaProperty,\n    meta: N.Identifier,\n    propertyName: string,\n  ): N.MetaProperty {\n    node.meta = meta;\n\n    if (meta.name === \"function\" && propertyName === \"sent\") {\n      if (this.isContextual(propertyName)) {\n        this.expectPlugin(\"functionSent\");\n      } else if (!this.hasPlugin(\"functionSent\")) {\n        // The code wasn't `function.sent` but just `function.`, so a simple error is less confusing.\n        this.unexpected();\n      }\n    }\n\n    const containsEsc = this.state.containsEsc;\n\n    node.property = this.parseIdentifier(true);\n\n    if (node.property.name !== propertyName || containsEsc) {\n      this.raise(\n        node.property.start,\n        Errors.UnsupportedMetaProperty,\n        meta.name,\n        propertyName,\n      );\n    }\n\n    return this.finishNode(node, \"MetaProperty\");\n  }\n\n  parseImportMetaProperty(node: N.MetaProperty): N.MetaProperty {\n    const id = this.createIdentifier(this.startNodeAtNode(node), \"import\");\n    this.expect(tt.dot);\n\n    if (this.isContextual(\"meta\")) {\n      this.expectPlugin(\"importMeta\");\n\n      if (!this.inModule) {\n        this.raiseWithData(\n          id.start,\n          { code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\" },\n          Errors.ImportMetaOutsideModule,\n        );\n      }\n      this.sawUnambiguousESM = true;\n    } else if (!this.hasPlugin(\"importMeta\")) {\n      this.raise(id.start, Errors.ImportCallArityLtOne);\n    }\n\n    return this.parseMetaProperty(node, id, \"meta\");\n  }\n\n  parseLiteral<T: N.Literal>(\n    value: any,\n    type: /*T[\"kind\"]*/ string,\n    startPos?: number,\n    startLoc?: Position,\n  ): T {\n    startPos = startPos || this.state.start;\n    startLoc = startLoc || this.state.startLoc;\n\n    const node = this.startNodeAt(startPos, startLoc);\n    this.addExtra(node, \"rawValue\", value);\n    this.addExtra(node, \"raw\", this.input.slice(startPos, this.state.end));\n    node.value = value;\n    this.next();\n    return this.finishNode(node, type);\n  }\n\n  parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    let val;\n    this.expect(tt.parenL);\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.maybeInArrowParameters = true;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.state.inFSharpPipelineDirectBody = false;\n\n    const innerStartPos = this.state.start;\n    const innerStartLoc = this.state.startLoc;\n    const exprList = [];\n    const refExpressionErrors = new ExpressionErrors();\n    const refNeedsArrowPos = { start: 0 };\n    let first = true;\n    let spreadStart;\n    let optionalCommaStart;\n\n    while (!this.match(tt.parenR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma, refNeedsArrowPos.start || null);\n        if (this.match(tt.parenR)) {\n          optionalCommaStart = this.state.start;\n          break;\n        }\n      }\n\n      if (this.match(tt.ellipsis)) {\n        const spreadNodeStartPos = this.state.start;\n        const spreadNodeStartLoc = this.state.startLoc;\n        spreadStart = this.state.start;\n        exprList.push(\n          this.parseParenItem(\n            this.parseRestBinding(),\n            spreadNodeStartPos,\n            spreadNodeStartLoc,\n          ),\n        );\n\n        this.checkCommaAfterRest(charCodes.rightParenthesis);\n\n        break;\n      } else {\n        exprList.push(\n          this.parseMaybeAssign(\n            false,\n            refExpressionErrors,\n            this.parseParenItem,\n            refNeedsArrowPos,\n          ),\n        );\n      }\n    }\n\n    const innerEndPos = this.state.start;\n    const innerEndLoc = this.state.startLoc;\n    this.expect(tt.parenR);\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    let arrowNode = this.startNodeAt(startPos, startLoc);\n    if (\n      canBeArrow &&\n      this.shouldParseArrow() &&\n      (arrowNode = this.parseArrow(arrowNode))\n    ) {\n      if (!this.isAwaitAllowed() && !this.state.maybeInAsyncArrowHead) {\n        this.state.awaitPos = oldAwaitPos;\n      }\n      this.checkYieldAwaitInDefaultParams();\n      this.state.yieldPos = oldYieldPos;\n      this.state.awaitPos = oldAwaitPos;\n      for (const param of exprList) {\n        if (param.extra && param.extra.parenthesized) {\n          this.unexpected(param.extra.parenStart);\n        }\n      }\n\n      this.parseArrowExpression(arrowNode, exprList, false);\n      return arrowNode;\n    }\n\n    // We keep the old value if it isn't null, for cases like\n    //   (x = (yield)) => {}\n    if (oldYieldPos !== -1) this.state.yieldPos = oldYieldPos;\n    if (oldAwaitPos !== -1) this.state.awaitPos = oldAwaitPos;\n\n    if (!exprList.length) {\n      this.unexpected(this.state.lastTokStart);\n    }\n    if (optionalCommaStart) this.unexpected(optionalCommaStart);\n    if (spreadStart) this.unexpected(spreadStart);\n    this.checkExpressionErrors(refExpressionErrors, true);\n    if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start);\n\n    this.toReferencedListDeep(exprList, /* isParenthesizedExpr */ true);\n    if (exprList.length > 1) {\n      val = this.startNodeAt(innerStartPos, innerStartLoc);\n      val.expressions = exprList;\n      this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n    } else {\n      val = exprList[0];\n    }\n\n    if (!this.options.createParenthesizedExpressions) {\n      this.addExtra(val, \"parenthesized\", true);\n      this.addExtra(val, \"parenStart\", startPos);\n      return val;\n    }\n\n    const parenExpression = this.startNodeAt(startPos, startLoc);\n    parenExpression.expression = val;\n    this.finishNode(parenExpression, \"ParenthesizedExpression\");\n    return parenExpression;\n  }\n\n  shouldParseArrow(): boolean {\n    return !this.canInsertSemicolon();\n  }\n\n  parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n    if (this.eat(tt.arrow)) {\n      return node;\n    }\n  }\n\n  parseParenItem(\n    node: N.Expression,\n    startPos: number, // eslint-disable-line no-unused-vars\n    startLoc: Position, // eslint-disable-line no-unused-vars\n  ): N.Expression {\n    return node;\n  }\n\n  // New's precedence is slightly tricky. It must allow its argument to\n  // be a `[]` or dot subscript expression, but not a call — at least,\n  // not without wrapping it in parentheses. Thus, it uses the noCalls\n  // argument to parseSubscripts to prevent it from consuming the\n  // argument list.\n\n  parseNew(): N.NewExpression | N.MetaProperty {\n    const node = this.startNode();\n\n    let meta = this.startNode();\n    this.next();\n    meta = this.createIdentifier(meta, \"new\");\n\n    if (this.eat(tt.dot)) {\n      const metaProp = this.parseMetaProperty(node, meta, \"target\");\n\n      if (!this.scope.inNonArrowFunction && !this.scope.inClass) {\n        let error = Errors.UnexpectedNewTarget;\n\n        if (this.hasPlugin(\"classProperties\")) {\n          error += \" or class properties\";\n        }\n\n        this.raise(metaProp.start, error);\n      }\n\n      return metaProp;\n    }\n\n    node.callee = this.parseNoCallExpr();\n\n    if (node.callee.type === \"Import\") {\n      this.raise(node.callee.start, Errors.ImportCallNotNewExpression);\n    } else if (\n      node.callee.type === \"OptionalMemberExpression\" ||\n      node.callee.type === \"OptionalCallExpression\"\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.OptionalChainingNoNew);\n    } else if (this.eat(tt.questionDot)) {\n      this.raise(this.state.start, Errors.OptionalChainingNoNew);\n    }\n\n    this.parseNewArguments(node);\n    return this.finishNode(node, \"NewExpression\");\n  }\n\n  parseNewArguments(node: N.NewExpression): void {\n    if (this.eat(tt.parenL)) {\n      const args = this.parseExprList(tt.parenR);\n      this.toReferencedList(args);\n      // $FlowFixMe (parseExprList should be all non-null in this case)\n      node.arguments = args;\n    } else {\n      node.arguments = [];\n    }\n  }\n\n  // Parse template expression.\n\n  parseTemplateElement(isTagged: boolean): N.TemplateElement {\n    const elem = this.startNode();\n    if (this.state.value === null) {\n      if (!isTagged) {\n        this.raise(this.state.start + 1, Errors.InvalidEscapeSequenceTemplate);\n      }\n    }\n    elem.value = {\n      raw: this.input\n        .slice(this.state.start, this.state.end)\n        .replace(/\\r\\n?/g, \"\\n\"),\n      cooked: this.state.value,\n    };\n    this.next();\n    elem.tail = this.match(tt.backQuote);\n    return this.finishNode(elem, \"TemplateElement\");\n  }\n\n  parseTemplate(isTagged: boolean): N.TemplateLiteral {\n    const node = this.startNode();\n    this.next();\n    node.expressions = [];\n    let curElt = this.parseTemplateElement(isTagged);\n    node.quasis = [curElt];\n    while (!curElt.tail) {\n      this.expect(tt.dollarBraceL);\n      node.expressions.push(this.parseExpression());\n      this.expect(tt.braceR);\n      node.quasis.push((curElt = this.parseTemplateElement(isTagged)));\n    }\n    this.next();\n    return this.finishNode(node, \"TemplateLiteral\");\n  }\n\n  // Parse an object literal, binding pattern, or record.\n\n  parseObj<T: N.ObjectPattern | N.ObjectExpression>(\n    close: TokenType,\n    isPattern: boolean,\n    isRecord?: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): T {\n    const propHash: any = Object.create(null);\n    let first = true;\n    const node = this.startNode();\n\n    node.properties = [];\n    this.next();\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          this.addExtra(node, \"trailingComma\", this.state.lastTokStart);\n          this.next();\n          break;\n        }\n      }\n\n      const prop = this.parseObjectMember(isPattern, refExpressionErrors);\n      if (!isPattern) {\n        // $FlowIgnore RestElement will never be returned if !isPattern\n        this.checkDuplicatedProto(prop, propHash, refExpressionErrors);\n      }\n\n      // $FlowIgnore\n      if (prop.shorthand) {\n        this.addExtra(prop, \"shorthand\", true);\n      }\n\n      node.properties.push(prop);\n    }\n\n    let type = \"ObjectExpression\";\n    if (isPattern) {\n      type = \"ObjectPattern\";\n    } else if (isRecord) {\n      type = \"RecordExpression\";\n    }\n    return this.finishNode(node, type);\n  }\n\n  isAsyncProp(prop: N.ObjectProperty): boolean {\n    return (\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      prop.key.name === \"async\" &&\n      (this.match(tt.name) ||\n        this.match(tt.num) ||\n        this.match(tt.string) ||\n        this.match(tt.bracketL) ||\n        this.state.type.keyword ||\n        this.match(tt.star)) &&\n      !this.hasPrecedingLineBreak()\n    );\n  }\n\n  parseObjectMember(\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n  ): N.ObjectMember | N.SpreadElement | N.RestElement {\n    let decorators = [];\n    if (this.match(tt.at)) {\n      if (this.hasPlugin(\"decorators\")) {\n        this.raise(this.state.start, Errors.UnsupportedPropertyDecorator);\n      }\n\n      // we needn't check if decorators (stage 0) plugin is enabled since it's checked by\n      // the call to this.parseDecorator\n      while (this.match(tt.at)) {\n        decorators.push(this.parseDecorator());\n      }\n    }\n\n    const prop = this.startNode();\n    let isGenerator = false;\n    let isAsync = false;\n    let startPos;\n    let startLoc;\n\n    if (this.match(tt.ellipsis)) {\n      if (decorators.length) this.unexpected();\n      if (isPattern) {\n        this.next();\n        // Don't use parseRestBinding() as we only allow Identifier here.\n        prop.argument = this.parseIdentifier();\n        this.checkCommaAfterRest(charCodes.rightCurlyBrace);\n        return this.finishNode(prop, \"RestElement\");\n      }\n\n      return this.parseSpread();\n    }\n\n    if (decorators.length) {\n      prop.decorators = decorators;\n      decorators = [];\n    }\n\n    prop.method = false;\n\n    if (isPattern || refExpressionErrors) {\n      startPos = this.state.start;\n      startLoc = this.state.startLoc;\n    }\n\n    if (!isPattern) {\n      isGenerator = this.eat(tt.star);\n    }\n\n    const containsEsc = this.state.containsEsc;\n    this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n\n    if (!isPattern && !containsEsc && !isGenerator && this.isAsyncProp(prop)) {\n      isAsync = true;\n      isGenerator = this.eat(tt.star);\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n    } else {\n      isAsync = false;\n    }\n\n    this.parseObjPropValue(\n      prop,\n      startPos,\n      startLoc,\n      isGenerator,\n      isAsync,\n      isPattern,\n      refExpressionErrors,\n      containsEsc,\n    );\n\n    return prop;\n  }\n\n  isGetterOrSetterMethod(prop: N.ObjectMethod, isPattern: boolean): boolean {\n    return (\n      !isPattern &&\n      !prop.computed &&\n      prop.key.type === \"Identifier\" &&\n      (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n      (this.match(tt.string) || // get \"string\"() {}\n      this.match(tt.num) || // get 1() {}\n      this.match(tt.bracketL) || // get [\"string\"]() {}\n      this.match(tt.name) || // get foo() {}\n        !!this.state.type.keyword) // get debugger() {}\n    );\n  }\n\n  getGetterSetterExpectedParamCount(\n    method: N.ObjectMethod | N.ClassMethod,\n  ): number {\n    return method.kind === \"get\" ? 0 : 1;\n  }\n\n  // get methods aren't allowed to have any parameters\n  // set methods must have exactly 1 parameter which is not a rest parameter\n  checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n    const paramCount = this.getGetterSetterExpectedParamCount(method);\n    const start = method.start;\n    if (method.params.length !== paramCount) {\n      if (method.kind === \"get\") {\n        this.raise(start, Errors.BadGetterArity);\n      } else {\n        this.raise(start, Errors.BadSetterArity);\n      }\n    }\n\n    if (\n      method.kind === \"set\" &&\n      method.params[method.params.length - 1].type === \"RestElement\"\n    ) {\n      this.raise(start, Errors.BadSetterRestParameter);\n    }\n  }\n\n  parseObjectMethod(\n    prop: N.ObjectMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    containsEsc: boolean,\n  ): ?N.ObjectMethod {\n    if (isAsync || isGenerator || this.match(tt.parenL)) {\n      if (isPattern) this.unexpected();\n      prop.kind = \"method\";\n      prop.method = true;\n      return this.parseMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n    }\n\n    if (!containsEsc && this.isGetterOrSetterMethod(prop, isPattern)) {\n      if (isGenerator || isAsync) this.unexpected();\n      prop.kind = prop.key.name;\n      this.parsePropertyName(prop, /* isPrivateNameAllowed */ false);\n      this.parseMethod(\n        prop,\n        /* isGenerator */ false,\n        /* isAsync */ false,\n        /* isConstructor */ false,\n        false,\n        \"ObjectMethod\",\n      );\n      this.checkGetterSetterParams(prop);\n      return prop;\n    }\n  }\n\n  parseObjectProperty(\n    prop: N.ObjectProperty,\n    startPos: ?number,\n    startLoc: ?Position,\n    isPattern: boolean,\n    refExpressionErrors: ?ExpressionErrors,\n  ): ?N.ObjectProperty {\n    prop.shorthand = false;\n\n    if (this.eat(tt.colon)) {\n      prop.value = isPattern\n        ? this.parseMaybeDefault(this.state.start, this.state.startLoc)\n        : this.parseMaybeAssign(false, refExpressionErrors);\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n\n    if (!prop.computed && prop.key.type === \"Identifier\") {\n      this.checkReservedWord(prop.key.name, prop.key.start, true, true);\n\n      if (isPattern) {\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else if (this.match(tt.eq) && refExpressionErrors) {\n        if (refExpressionErrors.shorthandAssign === -1) {\n          refExpressionErrors.shorthandAssign = this.state.start;\n        }\n        prop.value = this.parseMaybeDefault(\n          startPos,\n          startLoc,\n          prop.key.__clone(),\n        );\n      } else {\n        prop.value = prop.key.__clone();\n      }\n      prop.shorthand = true;\n\n      return this.finishNode(prop, \"ObjectProperty\");\n    }\n  }\n\n  parseObjPropValue(\n    prop: any,\n    startPos: ?number,\n    startLoc: ?Position,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isPattern: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    containsEsc: boolean,\n  ): void {\n    const node =\n      this.parseObjectMethod(\n        prop,\n        isGenerator,\n        isAsync,\n        isPattern,\n        containsEsc,\n      ) ||\n      this.parseObjectProperty(\n        prop,\n        startPos,\n        startLoc,\n        isPattern,\n        refExpressionErrors,\n      );\n\n    if (!node) this.unexpected();\n\n    // $FlowFixMe\n    return node;\n  }\n\n  parsePropertyName(\n    prop: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n    isPrivateNameAllowed: boolean,\n  ): N.Expression | N.Identifier {\n    if (this.eat(tt.bracketL)) {\n      (prop: $FlowSubtype<N.ObjectOrClassMember>).computed = true;\n      prop.key = this.parseMaybeAssign();\n      this.expect(tt.bracketR);\n    } else {\n      const oldInPropertyName = this.state.inPropertyName;\n      this.state.inPropertyName = true;\n      // We check if it's valid for it to be a private name when we push it.\n      (prop: $FlowFixMe).key =\n        this.match(tt.num) || this.match(tt.string) || this.match(tt.bigint)\n          ? this.parseExprAtom()\n          : this.parseMaybePrivateName(isPrivateNameAllowed);\n\n      if (prop.key.type !== \"PrivateName\") {\n        // ClassPrivateProperty is never computed, so we don't assign in that case.\n        prop.computed = false;\n      }\n\n      this.state.inPropertyName = oldInPropertyName;\n    }\n\n    return prop.key;\n  }\n\n  // Initialize empty function node.\n\n  initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: ?boolean): void {\n    node.id = null;\n    node.generator = false;\n    node.async = !!isAsync;\n  }\n\n  // Parse object or class method.\n\n  parseMethod<T: N.MethodLike>(\n    node: T,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowDirectSuper: boolean,\n    type: string,\n    inClassScope: boolean = false,\n  ): T {\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n\n    this.initFunction(node, isAsync);\n    node.generator = !!isGenerator;\n    const allowModifiers = isConstructor; // For TypeScript parameter properties\n    this.scope.enter(\n      SCOPE_FUNCTION |\n        SCOPE_SUPER |\n        (inClassScope ? SCOPE_CLASS : 0) |\n        (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0),\n    );\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n    this.parseFunctionParams((node: any), allowModifiers);\n    this.parseFunctionBodyAndFinish(node, type, true);\n    this.prodParam.exit();\n    this.scope.exit();\n\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  // Parse arrow function expression.\n  // If the parameters are provided, they will be converted to an\n  // assignable list.\n  parseArrowExpression(\n    node: N.ArrowFunctionExpression,\n    params: ?(N.Expression[]),\n    isAsync: boolean,\n    trailingCommaPos: ?number,\n  ): N.ArrowFunctionExpression {\n    this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n    this.prodParam.enter(functionFlags(isAsync, false));\n    this.initFunction(node, isAsync);\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n\n    if (params) {\n      this.state.maybeInArrowParameters = true;\n      this.setArrowFunctionParameters(node, params, trailingCommaPos);\n    }\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.parseFunctionBody(node, true);\n\n    this.prodParam.exit();\n    this.scope.exit();\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return this.finishNode(node, \"ArrowFunctionExpression\");\n  }\n\n  setArrowFunctionParameters(\n    node: N.ArrowFunctionExpression,\n    params: N.Expression[],\n    trailingCommaPos: ?number,\n  ): void {\n    node.params = this.toAssignableList(params, trailingCommaPos);\n  }\n\n  parseFunctionBodyAndFinish(\n    node: N.BodilessFunctionOrMethodBase,\n    type: string,\n    isMethod?: boolean = false,\n  ): void {\n    // $FlowIgnore (node is not bodiless if we get here)\n    this.parseFunctionBody(node, false, isMethod);\n    this.finishNode(node, type);\n  }\n\n  // Parse function body and check parameters.\n  parseFunctionBody(\n    node: N.Function,\n    allowExpression: ?boolean,\n    isMethod?: boolean = false,\n  ): void {\n    const isExpression = allowExpression && !this.match(tt.braceL);\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = false;\n\n    if (isExpression) {\n      node.body = this.parseMaybeAssign();\n      this.checkParams(node, false, allowExpression, false);\n    } else {\n      const oldStrict = this.state.strict;\n      // Start a new scope with regard to labels\n      // flag (restore them to their old value afterwards).\n      const oldLabels = this.state.labels;\n      this.state.labels = [];\n\n      // FunctionBody[Yield, Await]:\n      //   StatementList[?Yield, ?Await, +Return] opt\n      this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN);\n      node.body = this.parseBlock(\n        true,\n        false,\n        // Strict mode function checks after we parse the statements in the function body.\n        (hasStrictModeDirective: boolean) => {\n          const nonSimple = !this.isSimpleParamList(node.params);\n\n          if (hasStrictModeDirective && nonSimple) {\n            // This logic is here to align the error location with the ESTree plugin.\n            const errorPos =\n              // $FlowIgnore\n              (node.kind === \"method\" || node.kind === \"constructor\") &&\n              // $FlowIgnore\n              !!node.key\n                ? node.key.end\n                : node.start;\n            this.raise(errorPos, Errors.IllegalLanguageModeDirective);\n          }\n\n          const strictModeChanged = !oldStrict && this.state.strict;\n\n          // Add the params to varDeclaredNames to ensure that an error is thrown\n          // if a let/const declaration in the function clashes with one of the params.\n          this.checkParams(\n            node,\n            !this.state.strict && !allowExpression && !isMethod && !nonSimple,\n            allowExpression,\n            strictModeChanged,\n          );\n\n          // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n          if (this.state.strict && node.id) {\n            this.checkLVal(\n              node.id,\n              BIND_OUTSIDE,\n              undefined,\n              \"function name\",\n              undefined,\n              strictModeChanged,\n            );\n          }\n        },\n      );\n      this.prodParam.exit();\n      this.state.labels = oldLabels;\n    }\n\n    this.state.inParameters = oldInParameters;\n  }\n\n  isSimpleParamList(\n    params: $ReadOnlyArray<N.Pattern | N.TSParameterProperty>,\n  ): boolean {\n    for (let i = 0, len = params.length; i < len; i++) {\n      if (params[i].type !== \"Identifier\") return false;\n    }\n    return true;\n  }\n\n  checkParams(\n    node: N.Function,\n    allowDuplicates: boolean,\n    // eslint-disable-next-line no-unused-vars\n    isArrowFunction: ?boolean,\n    strictModeChanged?: boolean = true,\n  ): void {\n    // $FlowIssue\n    const nameHash: {} = Object.create(null);\n    for (let i = 0; i < node.params.length; i++) {\n      this.checkLVal(\n        node.params[i],\n        BIND_VAR,\n        allowDuplicates ? null : nameHash,\n        \"function parameter list\",\n        undefined,\n        strictModeChanged,\n      );\n    }\n  }\n\n  // Parses a comma-separated list of expressions, and returns them as\n  // an array. `close` is the token type that ends the list, and\n  // `allowEmpty` can be turned on to allow subsequent commas with\n  // nothing in between them to be parsed as `null` (which is needed\n  // for array literals).\n\n  parseExprList(\n    close: TokenType,\n    allowEmpty?: boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    nodeForExtra?: ?N.Node,\n  ): $ReadOnlyArray<?N.Expression> {\n    const elts = [];\n    let first = true;\n\n    while (!this.eat(close)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.match(close)) {\n          if (nodeForExtra) {\n            this.addExtra(\n              nodeForExtra,\n              \"trailingComma\",\n              this.state.lastTokStart,\n            );\n          }\n          this.next();\n          break;\n        }\n      }\n\n      elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n    }\n    return elts;\n  }\n\n  parseExprListItem(\n    allowEmpty: ?boolean,\n    refExpressionErrors?: ?ExpressionErrors,\n    refNeedsArrowPos: ?Pos,\n    allowPlaceholder: ?boolean,\n  ): ?N.Expression {\n    let elt;\n    if (allowEmpty && this.match(tt.comma)) {\n      elt = null;\n    } else if (this.match(tt.ellipsis)) {\n      const spreadNodeStartPos = this.state.start;\n      const spreadNodeStartLoc = this.state.startLoc;\n      elt = this.parseParenItem(\n        this.parseSpread(refExpressionErrors, refNeedsArrowPos),\n        spreadNodeStartPos,\n        spreadNodeStartLoc,\n      );\n    } else if (this.match(tt.question)) {\n      this.expectPlugin(\"partialApplication\");\n      if (!allowPlaceholder) {\n        this.raise(this.state.start, Errors.UnexpectedArgumentPlaceholder);\n      }\n      const node = this.startNode();\n      this.next();\n      elt = this.finishNode(node, \"ArgumentPlaceholder\");\n    } else {\n      elt = this.parseMaybeAssign(\n        false,\n        refExpressionErrors,\n        this.parseParenItem,\n        refNeedsArrowPos,\n      );\n    }\n    return elt;\n  }\n\n  // Parse the next token as an identifier. If `liberal` is true (used\n  // when parsing properties), it will also convert keywords into\n  // identifiers.\n  // This shouldn't be used to parse the keywords of meta properties, since they\n  // are not identifiers and cannot contain escape sequences.\n\n  parseIdentifier(liberal?: boolean): N.Identifier {\n    const node = this.startNode();\n    const name = this.parseIdentifierName(node.start, liberal);\n\n    return this.createIdentifier(node, name);\n  }\n\n  createIdentifier(node: N.Identifier, name: string): N.Identifier {\n    node.name = name;\n    node.loc.identifierName = name;\n\n    return this.finishNode(node, \"Identifier\");\n  }\n\n  parseIdentifierName(pos: number, liberal?: boolean): string {\n    let name: string;\n\n    if (this.match(tt.name)) {\n      name = this.state.value;\n    } else if (this.state.type.keyword) {\n      name = this.state.type.keyword;\n\n      // `class` and `function` keywords push new context into this.context.\n      // But there is no chance to pop the context if the keyword is consumed\n      // as an identifier such as a property name.\n      // If the previous token is a dot, this does not apply because the\n      // context-managing code already ignored the keyword\n      if (\n        (name === \"class\" || name === \"function\") &&\n        (this.state.lastTokEnd !== this.state.lastTokStart + 1 ||\n          this.input.charCodeAt(this.state.lastTokStart) !== charCodes.dot)\n      ) {\n        this.state.context.pop();\n      }\n    } else {\n      throw this.unexpected();\n    }\n\n    if (liberal) {\n      // If the current token is not used as a keyword, set its type to \"tt.name\".\n      // This will prevent this.next() from throwing about unexpected escapes.\n      this.state.type = tt.name;\n    } else {\n      this.checkReservedWord(\n        name,\n        this.state.start,\n        !!this.state.type.keyword,\n        false,\n      );\n    }\n\n    this.next();\n\n    return name;\n  }\n\n  checkReservedWord(\n    word: string,\n    startLoc: number,\n    checkKeywords: boolean,\n    isBinding: boolean,\n  ): void {\n    if (this.prodParam.hasYield && word === \"yield\") {\n      this.raise(startLoc, Errors.YieldBindingIdentifier);\n      return;\n    }\n\n    if (word === \"await\") {\n      if (this.prodParam.hasAwait) {\n        this.raise(startLoc, Errors.AwaitBindingIdentifier);\n        return;\n      }\n      if (\n        this.state.awaitPos === -1 &&\n        (this.state.maybeInAsyncArrowHead || this.isAwaitAllowed())\n      ) {\n        this.state.awaitPos = this.state.start;\n      }\n    }\n\n    if (\n      this.scope.inClass &&\n      !this.scope.inNonArrowFunction &&\n      word === \"arguments\"\n    ) {\n      this.raise(startLoc, Errors.ArgumentsDisallowedInInitializer);\n      return;\n    }\n    if (checkKeywords && isKeyword(word)) {\n      this.raise(startLoc, Errors.UnexpectedKeyword, word);\n      return;\n    }\n\n    const reservedTest = !this.state.strict\n      ? isReservedWord\n      : isBinding\n      ? isStrictBindReservedWord\n      : isStrictReservedWord;\n\n    if (reservedTest(word, this.inModule)) {\n      if (!this.prodParam.hasAwait && word === \"await\") {\n        this.raise(startLoc, Errors.AwaitNotInAsyncFunction);\n      } else {\n        this.raise(startLoc, Errors.UnexpectedReservedWord, word);\n      }\n    }\n  }\n\n  isAwaitAllowed(): boolean {\n    if (this.scope.inFunction) return this.prodParam.hasAwait;\n    if (this.options.allowAwaitOutsideFunction) return true;\n    if (this.hasPlugin(\"topLevelAwait\")) {\n      return this.inModule && this.prodParam.hasAwait;\n    }\n    return false;\n  }\n\n  // Parses await expression inside async function.\n\n  parseAwait(): N.AwaitExpression {\n    const node = this.startNode();\n\n    this.next();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.AwaitExpressionFormalParameter);\n    } else if (this.state.awaitPos === -1) {\n      this.state.awaitPos = node.start;\n    }\n    if (this.eat(tt.star)) {\n      this.raise(node.start, Errors.ObsoleteAwaitStar);\n    }\n\n    if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n      if (\n        this.hasPrecedingLineBreak() ||\n        // All the following expressions are ambiguous:\n        //   await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``\n        this.match(tt.plusMin) ||\n        this.match(tt.parenL) ||\n        this.match(tt.bracketL) ||\n        this.match(tt.backQuote) ||\n        // Sometimes the tokenizer generates tt.slash for regexps, and this is\n        // handler by parseExprAtom\n        this.match(tt.regexp) ||\n        this.match(tt.slash) ||\n        // This code could be parsed both as a modulo operator or as an intrinsic:\n        //   await %x(0)\n        (this.hasPlugin(\"v8intrinsic\") && this.match(tt.modulo))\n      ) {\n        this.ambiguousScriptDifferentAst = true;\n      } else {\n        this.sawUnambiguousESM = true;\n      }\n    }\n\n    if (!this.state.soloAwait) {\n      node.argument = this.parseMaybeUnary();\n    }\n\n    return this.finishNode(node, \"AwaitExpression\");\n  }\n\n  // Parses yield expression inside generator.\n\n  parseYield(noIn?: ?boolean): N.YieldExpression {\n    const node = this.startNode();\n\n    if (this.state.inParameters) {\n      this.raise(node.start, Errors.YieldInParameter);\n    } else if (this.state.yieldPos === -1) {\n      this.state.yieldPos = node.start;\n    }\n\n    this.next();\n    if (\n      this.match(tt.semi) ||\n      (!this.match(tt.star) && !this.state.type.startsExpr) ||\n      this.hasPrecedingLineBreak()\n    ) {\n      node.delegate = false;\n      node.argument = null;\n    } else {\n      node.delegate = this.eat(tt.star);\n      node.argument = this.parseMaybeAssign(noIn);\n    }\n    return this.finishNode(node, \"YieldExpression\");\n  }\n\n  // Validates a pipeline (for any of the pipeline Babylon plugins) at the point\n  // of the infix operator `|>`.\n\n  checkPipelineAtInfixOperator(left: N.Expression, leftStartPos: number) {\n    if (this.getPluginOption(\"pipelineOperator\", \"proposal\") === \"smart\") {\n      if (left.type === \"SequenceExpression\") {\n        // Ensure that the pipeline head is not a comma-delimited\n        // sequence expression.\n        this.raise(leftStartPos, Errors.PipelineHeadSequenceExpression);\n      }\n    }\n  }\n\n  parseSmartPipelineBody(\n    childExpression: N.Expression,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const pipelineStyle = this.checkSmartPipelineBodyStyle(childExpression);\n\n    this.checkSmartPipelineBodyEarlyErrors(\n      childExpression,\n      pipelineStyle,\n      startPos,\n    );\n\n    return this.parseSmartPipelineBodyInStyle(\n      childExpression,\n      pipelineStyle,\n      startPos,\n      startLoc,\n    );\n  }\n\n  checkSmartPipelineBodyEarlyErrors(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n  ): void {\n    if (this.match(tt.arrow)) {\n      // If the following token is invalidly `=>`, then throw a human-friendly error\n      // instead of something like 'Unexpected token, expected \";\"'.\n      throw this.raise(this.state.start, Errors.PipelineBodyNoArrow);\n    } else if (\n      pipelineStyle === \"PipelineTopicExpression\" &&\n      childExpression.type === \"SequenceExpression\"\n    ) {\n      this.raise(startPos, Errors.PipelineBodySequenceExpression);\n    }\n  }\n\n  parseSmartPipelineBodyInStyle(\n    childExpression: N.Expression,\n    pipelineStyle: N.PipelineStyle,\n    startPos: number,\n    startLoc: Position,\n  ): N.PipelineBody {\n    const bodyNode = this.startNodeAt(startPos, startLoc);\n    switch (pipelineStyle) {\n      case \"PipelineBareFunction\":\n        bodyNode.callee = childExpression;\n        break;\n      case \"PipelineBareConstructor\":\n        bodyNode.callee = childExpression.callee;\n        break;\n      case \"PipelineBareAwaitedFunction\":\n        bodyNode.callee = childExpression.argument;\n        break;\n      case \"PipelineTopicExpression\":\n        if (!this.topicReferenceWasUsedInCurrentTopicContext()) {\n          this.raise(startPos, Errors.PipelineTopicUnused);\n        }\n        bodyNode.expression = childExpression;\n        break;\n      default:\n        throw new Error(\n          `Internal @babel/parser error: Unknown pipeline style (${pipelineStyle})`,\n        );\n    }\n    return this.finishNode(bodyNode, pipelineStyle);\n  }\n\n  checkSmartPipelineBodyStyle(expression: N.Expression): N.PipelineStyle {\n    switch (expression.type) {\n      default:\n        return this.isSimpleReference(expression)\n          ? \"PipelineBareFunction\"\n          : \"PipelineTopicExpression\";\n    }\n  }\n\n  isSimpleReference(expression: N.Expression): boolean {\n    switch (expression.type) {\n      case \"MemberExpression\":\n        return (\n          !expression.computed && this.isSimpleReference(expression.object)\n        );\n      case \"Identifier\":\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  // Enable topic references from outer contexts within smart pipeline bodies.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicPermittingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Enable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 1,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  // Disable topic references from outer contexts within syntax constructs\n  // such as the bodies of iteration statements.\n  // The function modifies the parser's topic-context state to enable or disable\n  // the use of topic references with the smartPipelines plugin. They then run a\n  // callback, then they reset the parser to the old topic-context state that it\n  // had before the function was called.\n\n  withTopicForbiddingContext<T>(callback: () => T): T {\n    const outerContextTopicState = this.state.topicContext;\n    this.state.topicContext = {\n      // Disable the use of the primary topic reference.\n      maxNumOfResolvableTopics: 0,\n      // Hide the use of any topic references from outer contexts.\n      maxTopicIndex: null,\n    };\n\n    try {\n      return callback();\n    } finally {\n      this.state.topicContext = outerContextTopicState;\n    }\n  }\n\n  withSoloAwaitPermittingContext<T>(callback: () => T): T {\n    const outerContextSoloAwaitState = this.state.soloAwait;\n    this.state.soloAwait = true;\n\n    try {\n      return callback();\n    } finally {\n      this.state.soloAwait = outerContextSoloAwaitState;\n    }\n  }\n\n  // Register the use of a primary topic reference (`#`) within the current\n  // topic context.\n  registerTopicReference(): void {\n    this.state.topicContext.maxTopicIndex = 0;\n  }\n\n  primaryTopicReferenceIsAllowedInCurrentTopicContext(): boolean {\n    return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n  }\n\n  topicReferenceWasUsedInCurrentTopicContext(): boolean {\n    return (\n      this.state.topicContext.maxTopicIndex != null &&\n      this.state.topicContext.maxTopicIndex >= 0\n    );\n  }\n\n  parseFSharpPipelineBody(prec: number, noIn: ?boolean): N.Expression {\n    const startPos = this.state.start;\n    const startLoc = this.state.startLoc;\n\n    this.state.potentialArrowAt = this.state.start;\n    const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n    this.state.inFSharpPipelineDirectBody = true;\n\n    const ret = this.parseExprOp(\n      this.parseMaybeUnary(),\n      startPos,\n      startLoc,\n      prec,\n      noIn,\n    );\n\n    this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n    return ret;\n  }\n}\n","// @flow\n\nimport * as N from \"../types\";\nimport { types as tt, type TokenType } from \"../tokenizer/types\";\nimport ExpressionParser from \"./expression\";\nimport { Errors } from \"./location\";\nimport {\n  isIdentifierChar,\n  isIdentifierStart,\n  keywordRelationalOperator,\n} from \"../util/identifier\";\nimport { lineBreak } from \"../util/whitespace\";\nimport * as charCodes from \"charcodes\";\nimport {\n  BIND_CLASS,\n  BIND_LEXICAL,\n  BIND_VAR,\n  BIND_FUNCTION,\n  SCOPE_CLASS,\n  SCOPE_FUNCTION,\n  SCOPE_OTHER,\n  SCOPE_SIMPLE_CATCH,\n  SCOPE_SUPER,\n  CLASS_ELEMENT_OTHER,\n  CLASS_ELEMENT_INSTANCE_GETTER,\n  CLASS_ELEMENT_INSTANCE_SETTER,\n  CLASS_ELEMENT_STATIC_GETTER,\n  CLASS_ELEMENT_STATIC_SETTER,\n  type BindingTypes,\n} from \"../util/scopeflags\";\nimport { ExpressionErrors } from \"./util\";\nimport { PARAM, functionFlags } from \"../util/production-parameter\";\n\nconst loopLabel = { kind: \"loop\" },\n  switchLabel = { kind: \"switch\" };\n\nconst FUNC_NO_FLAGS = 0b000,\n  FUNC_STATEMENT = 0b001,\n  FUNC_HANGING_STATEMENT = 0b010,\n  FUNC_NULLABLE_ID = 0b100;\n\nexport default class StatementParser extends ExpressionParser {\n  // ### Statement parsing\n\n  // Parse a program. Initializes the parser, reads any number of\n  // statements, and wraps them in a Program node.  Optionally takes a\n  // `program` argument.  If present, the statements will be appended\n  // to its body instead of creating a new node.\n\n  parseTopLevel(file: N.File, program: N.Program): N.File {\n    program.sourceType = this.options.sourceType;\n\n    program.interpreter = this.parseInterpreterDirective();\n\n    this.parseBlockBody(program, true, true, tt.eof);\n\n    if (\n      this.inModule &&\n      !this.options.allowUndeclaredExports &&\n      this.scope.undefinedExports.size > 0\n    ) {\n      for (const [name] of Array.from(this.scope.undefinedExports)) {\n        const pos = this.scope.undefinedExports.get(name);\n        // $FlowIssue\n        this.raise(pos, Errors.ModuleExportUndefined, name);\n      }\n    }\n\n    file.program = this.finishNode(program, \"Program\");\n    file.comments = this.state.comments;\n\n    if (this.options.tokens) file.tokens = this.tokens;\n\n    return this.finishNode(file, \"File\");\n  }\n\n  // TODO\n\n  stmtToDirective(stmt: N.Statement): N.Directive {\n    const expr = stmt.expression;\n\n    const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start);\n    const directive = this.startNodeAt(stmt.start, stmt.loc.start);\n\n    const raw = this.input.slice(expr.start, expr.end);\n    const val = (directiveLiteral.value = raw.slice(1, -1)); // remove quotes\n\n    this.addExtra(directiveLiteral, \"raw\", raw);\n    this.addExtra(directiveLiteral, \"rawValue\", val);\n\n    directive.value = this.finishNodeAt(\n      directiveLiteral,\n      \"DirectiveLiteral\",\n      expr.end,\n      expr.loc.end,\n    );\n\n    return this.finishNodeAt(directive, \"Directive\", stmt.end, stmt.loc.end);\n  }\n\n  parseInterpreterDirective(): N.InterpreterDirective | null {\n    if (!this.match(tt.interpreterDirective)) {\n      return null;\n    }\n\n    const node = this.startNode();\n    node.value = this.state.value;\n    this.next();\n    return this.finishNode(node, \"InterpreterDirective\");\n  }\n\n  isLet(context: ?string): boolean {\n    if (!this.isContextual(\"let\")) {\n      return false;\n    }\n    const next = this.nextTokenStart();\n    const nextCh = this.input.charCodeAt(next);\n    // For ambiguous cases, determine if a LexicalDeclaration (or only a\n    // Statement) is allowed here. If context is not empty then only a Statement\n    // is allowed. However, `let [` is an explicit negative lookahead for\n    // ExpressionStatement, so special-case it first.\n    if (nextCh === charCodes.leftSquareBracket) return true;\n    if (context) return false;\n\n    if (nextCh === charCodes.leftCurlyBrace) return true;\n\n    if (isIdentifierStart(nextCh)) {\n      let pos = next + 1;\n      while (isIdentifierChar(this.input.charCodeAt(pos))) {\n        ++pos;\n      }\n      const ident = this.input.slice(next, pos);\n      if (!keywordRelationalOperator.test(ident)) return true;\n    }\n    return false;\n  }\n\n  // Parse a single statement.\n  //\n  // If expecting a statement and finding a slash operator, parse a\n  // regular expression literal. This is to handle cases like\n  // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n  // does not help.\n\n  parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n    if (this.match(tt.at)) {\n      this.parseDecorators(true);\n    }\n    return this.parseStatementContent(context, topLevel);\n  }\n\n  parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n    let starttype = this.state.type;\n    const node = this.startNode();\n    let kind;\n\n    if (this.isLet(context)) {\n      starttype = tt._var;\n      kind = \"let\";\n    }\n\n    // Most types of statements are recognized by the keyword they\n    // start with. Many are trivial to parse, some require a bit of\n    // complexity.\n\n    switch (starttype) {\n      case tt._break:\n      case tt._continue:\n        // $FlowFixMe\n        return this.parseBreakContinueStatement(node, starttype.keyword);\n      case tt._debugger:\n        return this.parseDebuggerStatement(node);\n      case tt._do:\n        return this.parseDoStatement(node);\n      case tt._for:\n        return this.parseForStatement(node);\n      case tt._function:\n        if (this.lookaheadCharCode() === charCodes.dot) break;\n        if (context) {\n          if (this.state.strict) {\n            this.raise(this.state.start, Errors.StrictFunction);\n          } else if (context !== \"if\" && context !== \"label\") {\n            this.raise(this.state.start, Errors.SloppyFunction);\n          }\n        }\n        return this.parseFunctionStatement(node, false, !context);\n\n      case tt._class:\n        if (context) this.unexpected();\n        return this.parseClass(node, true);\n\n      case tt._if:\n        return this.parseIfStatement(node);\n      case tt._return:\n        return this.parseReturnStatement(node);\n      case tt._switch:\n        return this.parseSwitchStatement(node);\n      case tt._throw:\n        return this.parseThrowStatement(node);\n      case tt._try:\n        return this.parseTryStatement(node);\n\n      case tt._const:\n      case tt._var:\n        kind = kind || this.state.value;\n        if (context && kind !== \"var\") {\n          this.raise(this.state.start, Errors.UnexpectedLexicalDeclaration);\n        }\n        return this.parseVarStatement(node, kind);\n\n      case tt._while:\n        return this.parseWhileStatement(node);\n      case tt._with:\n        return this.parseWithStatement(node);\n      case tt.braceL:\n        return this.parseBlock();\n      case tt.semi:\n        return this.parseEmptyStatement(node);\n      case tt._export:\n      case tt._import: {\n        const nextTokenCharCode = this.lookaheadCharCode();\n        if (\n          nextTokenCharCode === charCodes.leftParenthesis ||\n          nextTokenCharCode === charCodes.dot\n        ) {\n          break;\n        }\n\n        if (!this.options.allowImportExportEverywhere && !topLevel) {\n          this.raise(this.state.start, Errors.UnexpectedImportExport);\n        }\n\n        this.next();\n\n        let result;\n        if (starttype === tt._import) {\n          result = this.parseImport(node);\n\n          if (\n            result.type === \"ImportDeclaration\" &&\n            (!result.importKind || result.importKind === \"value\")\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        } else {\n          result = this.parseExport(node);\n\n          if (\n            (result.type === \"ExportNamedDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            (result.type === \"ExportAllDeclaration\" &&\n              (!result.exportKind || result.exportKind === \"value\")) ||\n            result.type === \"ExportDefaultDeclaration\"\n          ) {\n            this.sawUnambiguousESM = true;\n          }\n        }\n\n        this.assertModuleNodeAllowed(node);\n\n        return result;\n      }\n\n      default: {\n        if (this.isAsyncFunction()) {\n          if (context) {\n            this.raise(\n              this.state.start,\n              Errors.AsyncFunctionInSingleStatementContext,\n            );\n          }\n          this.next();\n          return this.parseFunctionStatement(node, true, !context);\n        }\n      }\n    }\n\n    // If the statement does not start with a statement keyword or a\n    // brace, it's an ExpressionStatement or LabeledStatement. We\n    // simply start parsing an expression, and afterwards, if the\n    // next token is a colon and the expression was a simple\n    // Identifier node, we switch to interpreting it as a label.\n    const maybeName = this.state.value;\n    const expr = this.parseExpression();\n\n    if (\n      starttype === tt.name &&\n      expr.type === \"Identifier\" &&\n      this.eat(tt.colon)\n    ) {\n      return this.parseLabeledStatement(node, maybeName, expr, context);\n    } else {\n      return this.parseExpressionStatement(node, expr);\n    }\n  }\n\n  assertModuleNodeAllowed(node: N.Node): void {\n    if (!this.options.allowImportExportEverywhere && !this.inModule) {\n      this.raiseWithData(\n        node.start,\n        {\n          code: \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\",\n        },\n        Errors.ImportOutsideModule,\n      );\n    }\n  }\n\n  takeDecorators(node: N.HasDecorators): void {\n    const decorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (decorators.length) {\n      node.decorators = decorators;\n      this.resetStartLocationFromNode(node, decorators[0]);\n      this.state.decoratorStack[this.state.decoratorStack.length - 1] = [];\n    }\n  }\n\n  canHaveLeadingDecorator(): boolean {\n    return this.match(tt._class);\n  }\n\n  parseDecorators(allowExport?: boolean): void {\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    while (this.match(tt.at)) {\n      const decorator = this.parseDecorator();\n      currentContextDecorators.push(decorator);\n    }\n\n    if (this.match(tt._export)) {\n      if (!allowExport) {\n        this.unexpected();\n      }\n\n      if (\n        this.hasPlugin(\"decorators\") &&\n        !this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorExportClass);\n      }\n    } else if (!this.canHaveLeadingDecorator()) {\n      throw this.raise(this.state.start, Errors.UnexpectedLeadingDecorator);\n    }\n  }\n\n  parseDecorator(): N.Decorator {\n    this.expectOnePlugin([\"decorators-legacy\", \"decorators\"]);\n\n    const node = this.startNode();\n    this.next();\n\n    if (this.hasPlugin(\"decorators\")) {\n      // Every time a decorator class expression is evaluated, a new empty array is pushed onto the stack\n      // So that the decorators of any nested class expressions will be dealt with separately\n      this.state.decoratorStack.push([]);\n\n      const startPos = this.state.start;\n      const startLoc = this.state.startLoc;\n      let expr: N.Expression;\n\n      if (this.eat(tt.parenL)) {\n        expr = this.parseExpression();\n        this.expect(tt.parenR);\n      } else {\n        expr = this.parseIdentifier(false);\n\n        while (this.eat(tt.dot)) {\n          const node = this.startNodeAt(startPos, startLoc);\n          node.object = expr;\n          node.property = this.parseIdentifier(true);\n          node.computed = false;\n          expr = this.finishNode(node, \"MemberExpression\");\n        }\n      }\n\n      node.expression = this.parseMaybeDecoratorArguments(expr);\n      this.state.decoratorStack.pop();\n    } else {\n      node.expression = this.parseExprSubscripts();\n    }\n    return this.finishNode(node, \"Decorator\");\n  }\n\n  parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n    if (this.eat(tt.parenL)) {\n      const node = this.startNodeAtNode(expr);\n      node.callee = expr;\n      node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n      this.toReferencedList(node.arguments);\n      return this.finishNode(node, \"CallExpression\");\n    }\n\n    return expr;\n  }\n\n  parseBreakContinueStatement(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ): N.BreakStatement | N.ContinueStatement {\n    const isBreak = keyword === \"break\";\n    this.next();\n\n    if (this.isLineTerminator()) {\n      node.label = null;\n    } else {\n      node.label = this.parseIdentifier();\n      this.semicolon();\n    }\n\n    this.verifyBreakContinue(node, keyword);\n\n    return this.finishNode(\n      node,\n      isBreak ? \"BreakStatement\" : \"ContinueStatement\",\n    );\n  }\n\n  verifyBreakContinue(\n    node: N.BreakStatement | N.ContinueStatement,\n    keyword: string,\n  ) {\n    const isBreak = keyword === \"break\";\n    let i;\n    for (i = 0; i < this.state.labels.length; ++i) {\n      const lab = this.state.labels[i];\n      if (node.label == null || lab.name === node.label.name) {\n        if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break;\n        if (node.label && isBreak) break;\n      }\n    }\n    if (i === this.state.labels.length) {\n      this.raise(node.start, Errors.IllegalBreakContinue, keyword);\n    }\n  }\n\n  parseDebuggerStatement(node: N.DebuggerStatement): N.DebuggerStatement {\n    this.next();\n    this.semicolon();\n    return this.finishNode(node, \"DebuggerStatement\");\n  }\n\n  parseHeaderExpression(): N.Expression {\n    this.expect(tt.parenL);\n    const val = this.parseExpression();\n    this.expect(tt.parenR);\n    return val;\n  }\n\n  parseDoStatement(node: N.DoWhileStatement): N.DoWhileStatement {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body's body.\n        this.parseStatement(\"do\"),\n      );\n\n    this.state.labels.pop();\n\n    this.expect(tt._while);\n    node.test = this.parseHeaderExpression();\n    this.eat(tt.semi);\n    return this.finishNode(node, \"DoWhileStatement\");\n  }\n\n  // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n  // loop is non-trivial. Basically, we have to parse the init `var`\n  // statement or expression, disallowing the `in` operator (see\n  // the second parameter to `parseExpression`), and then check\n  // whether the next token is `in` or `of`. When there is no init\n  // part (semicolon immediately after the opening parenthesis), it\n  // is a regular `for` loop.\n\n  parseForStatement(node: N.Node): N.ForLike {\n    this.next();\n    this.state.labels.push(loopLabel);\n\n    let awaitAt = -1;\n    if (this.isAwaitAllowed() && this.eatContextual(\"await\")) {\n      awaitAt = this.state.lastTokStart;\n    }\n    this.scope.enter(SCOPE_OTHER);\n    this.expect(tt.parenL);\n\n    if (this.match(tt.semi)) {\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, null);\n    }\n\n    const isLet = this.isLet();\n    if (this.match(tt._var) || this.match(tt._const) || isLet) {\n      const init = this.startNode();\n      const kind = isLet ? \"let\" : this.state.value;\n      this.next();\n      this.parseVar(init, true, kind);\n      this.finishNode(init, \"VariableDeclaration\");\n\n      if (\n        (this.match(tt._in) || this.isContextual(\"of\")) &&\n        init.declarations.length === 1\n      ) {\n        return this.parseForIn(node, init, awaitAt);\n      }\n      if (awaitAt > -1) {\n        this.unexpected(awaitAt);\n      }\n      return this.parseFor(node, init);\n    }\n\n    const refExpressionErrors = new ExpressionErrors();\n    const init = this.parseExpression(true, refExpressionErrors);\n    if (this.match(tt._in) || this.isContextual(\"of\")) {\n      this.toAssignable(init);\n      const description = this.isContextual(\"of\")\n        ? \"for-of statement\"\n        : \"for-in statement\";\n      this.checkLVal(init, undefined, undefined, description);\n      return this.parseForIn(node, init, awaitAt);\n    } else {\n      this.checkExpressionErrors(refExpressionErrors, true);\n    }\n    if (awaitAt > -1) {\n      this.unexpected(awaitAt);\n    }\n    return this.parseFor(node, init);\n  }\n\n  parseFunctionStatement(\n    node: N.FunctionDeclaration,\n    isAsync?: boolean,\n    declarationPosition?: boolean,\n  ): N.FunctionDeclaration {\n    this.next();\n    return this.parseFunction(\n      node,\n      FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT),\n      isAsync,\n    );\n  }\n\n  parseIfStatement(node: N.IfStatement): N.IfStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    node.consequent = this.parseStatement(\"if\");\n    node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null;\n    return this.finishNode(node, \"IfStatement\");\n  }\n\n  parseReturnStatement(node: N.ReturnStatement): N.ReturnStatement {\n    if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n      this.raise(this.state.start, Errors.IllegalReturn);\n    }\n\n    this.next();\n\n    // In `return` (and `break`/`continue`), the keywords with\n    // optional arguments, we eagerly look for a semicolon or the\n    // possibility to insert one.\n\n    if (this.isLineTerminator()) {\n      node.argument = null;\n    } else {\n      node.argument = this.parseExpression();\n      this.semicolon();\n    }\n\n    return this.finishNode(node, \"ReturnStatement\");\n  }\n\n  parseSwitchStatement(node: N.SwitchStatement): N.SwitchStatement {\n    this.next();\n    node.discriminant = this.parseHeaderExpression();\n    const cases = (node.cases = []);\n    this.expect(tt.braceL);\n    this.state.labels.push(switchLabel);\n    this.scope.enter(SCOPE_OTHER);\n\n    // Statements under must be grouped (by label) in SwitchCase\n    // nodes. `cur` is used to keep the node that we are currently\n    // adding statements to.\n\n    let cur;\n    for (let sawDefault; !this.match(tt.braceR); ) {\n      if (this.match(tt._case) || this.match(tt._default)) {\n        const isCase = this.match(tt._case);\n        if (cur) this.finishNode(cur, \"SwitchCase\");\n        cases.push((cur = this.startNode()));\n        cur.consequent = [];\n        this.next();\n        if (isCase) {\n          cur.test = this.parseExpression();\n        } else {\n          if (sawDefault) {\n            this.raise(\n              this.state.lastTokStart,\n              Errors.MultipleDefaultsInSwitch,\n            );\n          }\n          sawDefault = true;\n          cur.test = null;\n        }\n        this.expect(tt.colon);\n      } else {\n        if (cur) {\n          cur.consequent.push(this.parseStatement(null));\n        } else {\n          this.unexpected();\n        }\n      }\n    }\n    this.scope.exit();\n    if (cur) this.finishNode(cur, \"SwitchCase\");\n    this.next(); // Closing brace\n    this.state.labels.pop();\n    return this.finishNode(node, \"SwitchStatement\");\n  }\n\n  parseThrowStatement(node: N.ThrowStatement): N.ThrowStatement {\n    this.next();\n    if (\n      lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))\n    ) {\n      this.raise(this.state.lastTokEnd, Errors.NewlineAfterThrow);\n    }\n    node.argument = this.parseExpression();\n    this.semicolon();\n    return this.finishNode(node, \"ThrowStatement\");\n  }\n\n  parseTryStatement(node: N.TryStatement): N.TryStatement {\n    this.next();\n\n    node.block = this.parseBlock();\n    node.handler = null;\n\n    if (this.match(tt._catch)) {\n      const clause = this.startNode();\n      this.next();\n      if (this.match(tt.parenL)) {\n        this.expect(tt.parenL);\n        clause.param = this.parseBindingAtom();\n        const simple = clause.param.type === \"Identifier\";\n        this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0);\n        this.checkLVal(clause.param, BIND_LEXICAL, null, \"catch clause\");\n        this.expect(tt.parenR);\n      } else {\n        clause.param = null;\n        this.scope.enter(SCOPE_OTHER);\n      }\n\n      clause.body =\n        // For the smartPipelines plugin: Disable topic references from outer\n        // contexts within the function body. They are permitted in function\n        // default-parameter expressions, which are part of the outer context,\n        // outside of the function body.\n        this.withTopicForbiddingContext(() =>\n          // Parse the catch clause's body.\n          this.parseBlock(false, false),\n        );\n      this.scope.exit();\n\n      node.handler = this.finishNode(clause, \"CatchClause\");\n    }\n\n    node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null;\n\n    if (!node.handler && !node.finalizer) {\n      this.raise(node.start, Errors.NoCatchOrFinally);\n    }\n\n    return this.finishNode(node, \"TryStatement\");\n  }\n\n  parseVarStatement(\n    node: N.VariableDeclaration,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    this.next();\n    this.parseVar(node, false, kind);\n    this.semicolon();\n    return this.finishNode(node, \"VariableDeclaration\");\n  }\n\n  parseWhileStatement(node: N.WhileStatement): N.WhileStatement {\n    this.next();\n    node.test = this.parseHeaderExpression();\n    this.state.labels.push(loopLabel);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"while\"),\n      );\n\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"WhileStatement\");\n  }\n\n  parseWithStatement(node: N.WithStatement): N.WithStatement {\n    if (this.state.strict) {\n      this.raise(this.state.start, Errors.StrictWith);\n    }\n    this.next();\n    node.object = this.parseHeaderExpression();\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the function body.\n      // They are permitted in function default-parameter expressions, which are\n      // part of the outer context, outside of the function body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the statement body.\n        this.parseStatement(\"with\"),\n      );\n\n    return this.finishNode(node, \"WithStatement\");\n  }\n\n  parseEmptyStatement(node: N.EmptyStatement): N.EmptyStatement {\n    this.next();\n    return this.finishNode(node, \"EmptyStatement\");\n  }\n\n  parseLabeledStatement(\n    node: N.LabeledStatement,\n    maybeName: string,\n    expr: N.Identifier,\n    context: ?string,\n  ): N.LabeledStatement {\n    for (const label of this.state.labels) {\n      if (label.name === maybeName) {\n        this.raise(expr.start, Errors.LabelRedeclaration, maybeName);\n      }\n    }\n\n    const kind = this.state.type.isLoop\n      ? \"loop\"\n      : this.match(tt._switch)\n      ? \"switch\"\n      : null;\n    for (let i = this.state.labels.length - 1; i >= 0; i--) {\n      const label = this.state.labels[i];\n      if (label.statementStart === node.start) {\n        label.statementStart = this.state.start;\n        label.kind = kind;\n      } else {\n        break;\n      }\n    }\n\n    this.state.labels.push({\n      name: maybeName,\n      kind: kind,\n      statementStart: this.state.start,\n    });\n    node.body = this.parseStatement(\n      context\n        ? context.indexOf(\"label\") === -1\n          ? context + \"label\"\n          : context\n        : \"label\",\n    );\n\n    this.state.labels.pop();\n    node.label = expr;\n    return this.finishNode(node, \"LabeledStatement\");\n  }\n\n  parseExpressionStatement(\n    node: N.ExpressionStatement,\n    expr: N.Expression,\n  ): N.Statement {\n    node.expression = expr;\n    this.semicolon();\n    return this.finishNode(node, \"ExpressionStatement\");\n  }\n\n  // Parse a semicolon-enclosed block of statements, handling `\"use\n  // strict\"` declarations when `allowStrict` is true (used for\n  // function bodies).\n\n  parseBlock(\n    allowDirectives?: boolean = false,\n    createNewLexicalScope?: boolean = true,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): N.BlockStatement {\n    const node = this.startNode();\n    this.expect(tt.braceL);\n    if (createNewLexicalScope) {\n      this.scope.enter(SCOPE_OTHER);\n    }\n    this.parseBlockBody(\n      node,\n      allowDirectives,\n      false,\n      tt.braceR,\n      afterBlockParse,\n    );\n    if (createNewLexicalScope) {\n      this.scope.exit();\n    }\n    return this.finishNode(node, \"BlockStatement\");\n  }\n\n  isValidDirective(stmt: N.Statement): boolean {\n    return (\n      stmt.type === \"ExpressionStatement\" &&\n      stmt.expression.type === \"StringLiteral\" &&\n      !stmt.expression.extra.parenthesized\n    );\n  }\n\n  parseBlockBody(\n    node: N.BlockStatementLike,\n    allowDirectives: ?boolean,\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const body = (node.body = []);\n    const directives = (node.directives = []);\n    this.parseBlockOrModuleBlockBody(\n      body,\n      allowDirectives ? directives : undefined,\n      topLevel,\n      end,\n      afterBlockParse,\n    );\n  }\n\n  // Undefined directives means that directives are not allowed.\n  parseBlockOrModuleBlockBody(\n    body: N.Statement[],\n    directives: ?(N.Directive[]),\n    topLevel: boolean,\n    end: TokenType,\n    afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n  ): void {\n    const octalPositions = [];\n    const oldStrict = this.state.strict;\n    let hasStrictModeDirective = false;\n    let parsedNonDirective = false;\n\n    while (!this.match(end)) {\n      // Track octal literals that occur before a \"use strict\" directive.\n      if (!parsedNonDirective && this.state.octalPositions.length) {\n        octalPositions.push(...this.state.octalPositions);\n      }\n\n      const stmt = this.parseStatement(null, topLevel);\n\n      if (directives && !parsedNonDirective && this.isValidDirective(stmt)) {\n        const directive = this.stmtToDirective(stmt);\n        directives.push(directive);\n\n        if (!hasStrictModeDirective && directive.value.value === \"use strict\") {\n          hasStrictModeDirective = true;\n          this.setStrict(true);\n        }\n\n        continue;\n      }\n\n      parsedNonDirective = true;\n      body.push(stmt);\n    }\n\n    // Throw an error for any octal literals found before a\n    // \"use strict\" directive. Strict mode will be set at parse\n    // time for any literals that occur after the directive.\n    if (this.state.strict && octalPositions.length) {\n      for (const pos of octalPositions) {\n        this.raise(pos, Errors.StrictOctalLiteral);\n      }\n    }\n\n    if (afterBlockParse) {\n      afterBlockParse.call(this, hasStrictModeDirective);\n    }\n\n    if (!oldStrict) {\n      this.setStrict(false);\n    }\n\n    this.next();\n  }\n\n  // Parse a regular `for` loop. The disambiguation code in\n  // `parseStatement` will already have parsed the init statement or\n  // expression.\n\n  parseFor(\n    node: N.ForStatement,\n    init: ?(N.VariableDeclaration | N.Expression),\n  ): N.ForStatement {\n    node.init = init;\n    this.expect(tt.semi);\n    node.test = this.match(tt.semi) ? null : this.parseExpression();\n    this.expect(tt.semi);\n    node.update = this.match(tt.parenR) ? null : this.parseExpression();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin: Disable topic references from outer\n      // contexts within the loop body. They are permitted in test expressions,\n      // outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse the loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, \"ForStatement\");\n  }\n\n  // Parse a `for`/`in` and `for`/`of` loop, which are almost\n  // same from parser's perspective.\n\n  parseForIn(\n    node: N.ForInOf,\n    init: N.VariableDeclaration | N.AssignmentPattern,\n    awaitAt: number,\n  ): N.ForInOf {\n    const isForIn = this.match(tt._in);\n    this.next();\n\n    if (isForIn) {\n      if (awaitAt > -1) this.unexpected(awaitAt);\n    } else {\n      node.await = awaitAt > -1;\n    }\n\n    if (\n      init.type === \"VariableDeclaration\" &&\n      init.declarations[0].init != null &&\n      (!isForIn ||\n        this.state.strict ||\n        init.kind !== \"var\" ||\n        init.declarations[0].id.type !== \"Identifier\")\n    ) {\n      this.raise(\n        init.start,\n        Errors.ForInOfLoopInitializer,\n        isForIn ? \"for-in\" : \"for-of\",\n      );\n    } else if (init.type === \"AssignmentPattern\") {\n      this.raise(init.start, Errors.InvalidLhs, \"for-loop\");\n    }\n\n    node.left = init;\n    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n    this.expect(tt.parenR);\n\n    node.body =\n      // For the smartPipelines plugin:\n      // Disable topic references from outer contexts within the loop body.\n      // They are permitted in test expressions, outside of the loop body.\n      this.withTopicForbiddingContext(() =>\n        // Parse loop body.\n        this.parseStatement(\"for\"),\n      );\n\n    this.scope.exit();\n    this.state.labels.pop();\n\n    return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n  }\n\n  // Parse a list of variable declarations.\n\n  parseVar(\n    node: N.VariableDeclaration,\n    isFor: boolean,\n    kind: \"var\" | \"let\" | \"const\",\n  ): N.VariableDeclaration {\n    const declarations = (node.declarations = []);\n    const isTypescript = this.hasPlugin(\"typescript\");\n    node.kind = kind;\n    for (;;) {\n      const decl = this.startNode();\n      this.parseVarId(decl, kind);\n      if (this.eat(tt.eq)) {\n        decl.init = this.parseMaybeAssign(isFor);\n      } else {\n        if (\n          kind === \"const\" &&\n          !(this.match(tt._in) || this.isContextual(\"of\"))\n        ) {\n          // `const` with no initializer is allowed in TypeScript.\n          // It could be a declaration like `const x: number;`.\n          if (!isTypescript) {\n            this.unexpected();\n          }\n        } else if (\n          decl.id.type !== \"Identifier\" &&\n          !(isFor && (this.match(tt._in) || this.isContextual(\"of\")))\n        ) {\n          this.raise(\n            this.state.lastTokEnd,\n            Errors.DeclarationMissingInitializer,\n            \"Complex binding patterns\",\n          );\n        }\n        decl.init = null;\n      }\n      declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n      if (!this.eat(tt.comma)) break;\n    }\n    return node;\n  }\n\n  parseVarId(decl: N.VariableDeclarator, kind: \"var\" | \"let\" | \"const\"): void {\n    decl.id = this.parseBindingAtom();\n    this.checkLVal(\n      decl.id,\n      kind === \"var\" ? BIND_VAR : BIND_LEXICAL,\n      undefined,\n      \"variable declaration\",\n      kind !== \"var\",\n    );\n  }\n\n  // Parse a function declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseFunction<T: N.NormalFunction>(\n    node: T,\n    statement?: number = FUNC_NO_FLAGS,\n    isAsync?: boolean = false,\n  ): T {\n    const isStatement = statement & FUNC_STATEMENT;\n    const isHangingStatement = statement & FUNC_HANGING_STATEMENT;\n    const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID);\n\n    this.initFunction(node, isAsync);\n\n    if (this.match(tt.star) && isHangingStatement) {\n      this.raise(this.state.start, Errors.GeneratorInSingleStatementContext);\n    }\n    node.generator = this.eat(tt.star);\n\n    if (isStatement) {\n      node.id = this.parseFunctionId(requireId);\n    }\n\n    const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n    const oldYieldPos = this.state.yieldPos;\n    const oldAwaitPos = this.state.awaitPos;\n    this.state.maybeInArrowParameters = false;\n    this.state.yieldPos = -1;\n    this.state.awaitPos = -1;\n    this.scope.enter(SCOPE_FUNCTION);\n    this.prodParam.enter(functionFlags(isAsync, node.generator));\n\n    if (!isStatement) {\n      node.id = this.parseFunctionId();\n    }\n\n    this.parseFunctionParams(node);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the function body. They are permitted in test\n    // expressions, outside of the function body.\n    this.withTopicForbiddingContext(() => {\n      // Parse the function body.\n      this.parseFunctionBodyAndFinish(\n        node,\n        isStatement ? \"FunctionDeclaration\" : \"FunctionExpression\",\n      );\n    });\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    if (isStatement && !isHangingStatement) {\n      // We need to register this _after_ parsing the function body\n      // because of TypeScript body-less function declarations,\n      // which shouldn't be added to the scope.\n      this.registerFunctionStatementId(node);\n    }\n\n    this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n    this.state.yieldPos = oldYieldPos;\n    this.state.awaitPos = oldAwaitPos;\n\n    return node;\n  }\n\n  parseFunctionId(requireId?: boolean): ?N.Identifier {\n    return requireId || this.match(tt.name) ? this.parseIdentifier() : null;\n  }\n\n  parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n    const oldInParameters = this.state.inParameters;\n    this.state.inParameters = true;\n\n    this.expect(tt.parenL);\n    node.params = this.parseBindingList(\n      tt.parenR,\n      charCodes.rightParenthesis,\n      /* allowEmpty */ false,\n      allowModifiers,\n    );\n\n    this.state.inParameters = oldInParameters;\n    this.checkYieldAwaitInDefaultParams();\n  }\n\n  registerFunctionStatementId(node: N.Function): void {\n    if (!node.id) return;\n\n    // If it is a regular function declaration in sloppy mode, then it is\n    // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n    // mode depends on properties of the current scope (see\n    // treatFunctionsAsVar).\n    this.scope.declareName(\n      node.id.name,\n      this.state.strict || node.generator || node.async\n        ? this.scope.treatFunctionsAsVar\n          ? BIND_VAR\n          : BIND_LEXICAL\n        : BIND_FUNCTION,\n      node.id.start,\n    );\n  }\n\n  // Parse a class declaration or literal (depending on the\n  // `isStatement` parameter).\n\n  parseClass<T: N.Class>(\n    node: T,\n    isStatement: /* T === ClassDeclaration */ boolean,\n    optionalId?: boolean,\n  ): T {\n    this.next();\n    this.takeDecorators(node);\n\n    // A class definition is always strict mode code.\n    const oldStrict = this.state.strict;\n    this.state.strict = true;\n\n    this.parseClassId(node, isStatement, optionalId);\n    this.parseClassSuper(node);\n    node.body = this.parseClassBody(!!node.superClass, oldStrict);\n\n    this.state.strict = oldStrict;\n\n    return this.finishNode(\n      node,\n      isStatement ? \"ClassDeclaration\" : \"ClassExpression\",\n    );\n  }\n\n  isClassProperty(): boolean {\n    return this.match(tt.eq) || this.match(tt.semi) || this.match(tt.braceR);\n  }\n\n  isClassMethod(): boolean {\n    return this.match(tt.parenL);\n  }\n\n  isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n    return (\n      !method.computed &&\n      !method.static &&\n      (method.key.name === \"constructor\" || // Identifier\n        method.key.value === \"constructor\") // String literal\n    );\n  }\n\n  parseClassBody(\n    constructorAllowsSuper: boolean,\n    oldStrict?: boolean,\n  ): N.ClassBody {\n    this.classScope.enter();\n\n    const state = { hadConstructor: false };\n    let decorators: N.Decorator[] = [];\n    const classBody: N.ClassBody = this.startNode();\n    classBody.body = [];\n\n    this.expect(tt.braceL);\n\n    // For the smartPipelines plugin: Disable topic references from outer\n    // contexts within the class body. They are permitted in test expressions,\n    // outside of the class body.\n    this.withTopicForbiddingContext(() => {\n      while (!this.match(tt.braceR)) {\n        if (this.eat(tt.semi)) {\n          if (decorators.length > 0) {\n            throw this.raise(this.state.lastTokEnd, Errors.DecoratorSemicolon);\n          }\n          continue;\n        }\n\n        if (this.match(tt.at)) {\n          decorators.push(this.parseDecorator());\n          continue;\n        }\n\n        const member = this.startNode();\n\n        // steal the decorators if there are any\n        if (decorators.length) {\n          member.decorators = decorators;\n          this.resetStartLocationFromNode(member, decorators[0]);\n          decorators = [];\n        }\n\n        this.parseClassMember(classBody, member, state, constructorAllowsSuper);\n\n        if (\n          member.kind === \"constructor\" &&\n          member.decorators &&\n          member.decorators.length > 0\n        ) {\n          this.raise(member.start, Errors.DecoratorConstructor);\n        }\n      }\n    });\n\n    if (!oldStrict) {\n      this.state.strict = false;\n    }\n\n    this.next();\n\n    if (decorators.length) {\n      throw this.raise(this.state.start, Errors.TrailingDecorator);\n    }\n\n    this.classScope.exit();\n\n    return this.finishNode(classBody, \"ClassBody\");\n  }\n\n  // returns true if the current identifier is a method/field name,\n  // false if it is a modifier\n  parseClassMemberFromModifier(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n  ): boolean {\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseIdentifier(true); // eats the modifier\n\n    if (this.isClassMethod()) {\n      const method: N.ClassMethod = (member: any);\n\n      // a method named like the modifier\n      method.kind = \"method\";\n      method.computed = false;\n      method.key = key;\n      method.static = false;\n      this.pushClassMethod(\n        classBody,\n        method,\n        false,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n      return true;\n    } else if (this.isClassProperty()) {\n      const prop: N.ClassProperty = (member: any);\n\n      // a property named like the modifier\n      prop.computed = false;\n      prop.key = key;\n      prop.static = false;\n      classBody.body.push(this.parseClassProperty(prop));\n      return true;\n    } else if (containsEsc) {\n      throw this.unexpected();\n    }\n\n    return false;\n  }\n\n  parseClassMember(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    constructorAllowsSuper: boolean,\n  ): void {\n    const isStatic = this.isContextual(\"static\");\n\n    if (isStatic && this.parseClassMemberFromModifier(classBody, member)) {\n      // a class element named 'static'\n      return;\n    }\n\n    this.parseClassMemberWithIsStatic(\n      classBody,\n      member,\n      state,\n      isStatic,\n      constructorAllowsSuper,\n    );\n  }\n\n  parseClassMemberWithIsStatic(\n    classBody: N.ClassBody,\n    member: N.ClassMember,\n    state: { hadConstructor: boolean },\n    isStatic: boolean,\n    constructorAllowsSuper: boolean,\n  ) {\n    const publicMethod: $FlowSubtype<N.ClassMethod> = member;\n    const privateMethod: $FlowSubtype<N.ClassPrivateMethod> = member;\n    const publicProp: $FlowSubtype<N.ClassMethod> = member;\n    const privateProp: $FlowSubtype<N.ClassPrivateMethod> = member;\n\n    const method: typeof publicMethod | typeof privateMethod = publicMethod;\n    const publicMember: typeof publicMethod | typeof publicProp = publicMethod;\n\n    member.static = isStatic;\n\n    if (this.eat(tt.star)) {\n      // a generator\n      method.kind = \"method\";\n      this.parseClassPropertyName(method);\n\n      if (method.key.type === \"PrivateName\") {\n        // Private generator method\n        this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n        return;\n      }\n\n      if (this.isNonstaticConstructor(publicMethod)) {\n        this.raise(publicMethod.key.start, Errors.ConstructorIsGenerator);\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        true,\n        false,\n        /* isConstructor */ false,\n        false,\n      );\n\n      return;\n    }\n\n    const containsEsc = this.state.containsEsc;\n    const key = this.parseClassPropertyName(member);\n    const isPrivate = key.type === \"PrivateName\";\n    // Check the key is not a computed expression or string literal.\n    const isSimple = key.type === \"Identifier\";\n    const maybeQuestionTokenStart = this.state.start;\n\n    this.parsePostMemberNameModifiers(publicMember);\n\n    if (this.isClassMethod()) {\n      method.kind = \"method\";\n\n      if (isPrivate) {\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n        return;\n      }\n\n      // a normal method\n      const isConstructor = this.isNonstaticConstructor(publicMethod);\n      let allowsDirectSuper = false;\n      if (isConstructor) {\n        publicMethod.kind = \"constructor\";\n\n        // TypeScript allows multiple overloaded constructor declarations.\n        if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n          this.raise(key.start, Errors.DuplicateConstructor);\n        }\n        state.hadConstructor = true;\n        allowsDirectSuper = constructorAllowsSuper;\n      }\n\n      this.pushClassMethod(\n        classBody,\n        publicMethod,\n        false,\n        false,\n        isConstructor,\n        allowsDirectSuper,\n      );\n    } else if (this.isClassProperty()) {\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else if (\n      isSimple &&\n      key.name === \"async\" &&\n      !containsEsc &&\n      !this.isLineTerminator()\n    ) {\n      // an async method\n      const isGenerator = this.eat(tt.star);\n\n      if (publicMember.optional) {\n        this.unexpected(maybeQuestionTokenStart);\n      }\n\n      method.kind = \"method\";\n      // The so-called parsed name would have been \"async\": get the real name.\n      this.parseClassPropertyName(method);\n      this.parsePostMemberNameModifiers(publicMember);\n\n      if (method.key.type === \"PrivateName\") {\n        // private async method\n        this.pushClassPrivateMethod(\n          classBody,\n          privateMethod,\n          isGenerator,\n          true,\n        );\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAsync);\n        }\n\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          isGenerator,\n          true,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n    } else if (\n      isSimple &&\n      (key.name === \"get\" || key.name === \"set\") &&\n      !containsEsc &&\n      !(this.match(tt.star) && this.isLineTerminator())\n    ) {\n      // `get\\n*` is an uninitialized property named 'get' followed by a generator.\n      // a getter or setter\n      method.kind = key.name;\n      // The so-called parsed name would have been \"get/set\": get the real name.\n      this.parseClassPropertyName(publicMethod);\n\n      if (method.key.type === \"PrivateName\") {\n        // private getter/setter\n        this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n      } else {\n        if (this.isNonstaticConstructor(publicMethod)) {\n          this.raise(publicMethod.key.start, Errors.ConstructorIsAccessor);\n        }\n        this.pushClassMethod(\n          classBody,\n          publicMethod,\n          false,\n          false,\n          /* isConstructor */ false,\n          false,\n        );\n      }\n\n      this.checkGetterSetterParams(publicMethod);\n    } else if (this.isLineTerminator()) {\n      // an uninitialized class property (due to ASI, since we don't otherwise recognize the next token)\n      if (isPrivate) {\n        this.pushClassPrivateProperty(classBody, privateProp);\n      } else {\n        this.pushClassProperty(classBody, publicProp);\n      }\n    } else {\n      this.unexpected();\n    }\n  }\n\n  parseClassPropertyName(member: N.ClassMember): N.Expression | N.Identifier {\n    const key = this.parsePropertyName(member, /* isPrivateNameAllowed */ true);\n\n    if (\n      !member.computed &&\n      member.static &&\n      ((key: $FlowSubtype<N.Identifier>).name === \"prototype\" ||\n        (key: $FlowSubtype<N.StringLiteral>).value === \"prototype\")\n    ) {\n      this.raise(key.start, Errors.StaticPrototype);\n    }\n\n    if (key.type === \"PrivateName\" && key.id.name === \"constructor\") {\n      this.raise(key.start, Errors.ConstructorClassPrivateField);\n    }\n\n    return key;\n  }\n\n  pushClassProperty(classBody: N.ClassBody, prop: N.ClassProperty) {\n    if (\n      !prop.computed &&\n      (prop.key.name === \"constructor\" || prop.key.value === \"constructor\")\n    ) {\n      // Non-computed field, which is either an identifier named \"constructor\"\n      // or a string literal named \"constructor\"\n      this.raise(prop.key.start, Errors.ConstructorClassField);\n    }\n\n    classBody.body.push(this.parseClassProperty(prop));\n  }\n\n  pushClassPrivateProperty(\n    classBody: N.ClassBody,\n    prop: N.ClassPrivateProperty,\n  ) {\n    this.expectPlugin(\"classPrivateProperties\", prop.key.start);\n\n    const node = this.parseClassPrivateProperty(prop);\n    classBody.body.push(node);\n\n    this.classScope.declarePrivateName(\n      node.key.id.name,\n      CLASS_ELEMENT_OTHER,\n      node.key.start,\n    );\n  }\n\n  pushClassMethod(\n    classBody: N.ClassBody,\n    method: N.ClassMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n    isConstructor: boolean,\n    allowsDirectSuper: boolean,\n  ): void {\n    classBody.body.push(\n      this.parseMethod(\n        method,\n        isGenerator,\n        isAsync,\n        isConstructor,\n        allowsDirectSuper,\n        \"ClassMethod\",\n        true,\n      ),\n    );\n  }\n\n  pushClassPrivateMethod(\n    classBody: N.ClassBody,\n    method: N.ClassPrivateMethod,\n    isGenerator: boolean,\n    isAsync: boolean,\n  ): void {\n    this.expectPlugin(\"classPrivateMethods\", method.key.start);\n\n    const node = this.parseMethod(\n      method,\n      isGenerator,\n      isAsync,\n      /* isConstructor */ false,\n      false,\n      \"ClassPrivateMethod\",\n      true,\n    );\n    classBody.body.push(node);\n\n    const kind =\n      node.kind === \"get\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_GETTER\n          : CLASS_ELEMENT_INSTANCE_GETTER\n        : node.kind === \"set\"\n        ? node.static\n          ? CLASS_ELEMENT_STATIC_SETTER\n          : CLASS_ELEMENT_INSTANCE_SETTER\n        : CLASS_ELEMENT_OTHER;\n    this.classScope.declarePrivateName(node.key.id.name, kind, node.key.start);\n  }\n\n  // Overridden in typescript.js\n  parsePostMemberNameModifiers(\n    // eslint-disable-next-line no-unused-vars\n    methodOrProp: N.ClassMethod | N.ClassProperty,\n  ): void {}\n\n  // Overridden in typescript.js\n  parseAccessModifier(): ?N.Accessibility {\n    return undefined;\n  }\n\n  parseClassPrivateProperty(\n    node: N.ClassPrivateProperty,\n  ): N.ClassPrivateProperty {\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    node.value = this.eat(tt.eq) ? this.parseMaybeAssign() : null;\n    this.semicolon();\n    this.prodParam.exit();\n\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassPrivateProperty\");\n  }\n\n  parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n    if (!node.typeAnnotation) {\n      this.expectPlugin(\"classProperties\");\n    }\n\n    this.scope.enter(SCOPE_CLASS | SCOPE_SUPER);\n    // [In] production parameter is tracked in parseMaybeAssign\n    this.prodParam.enter(PARAM);\n\n    if (this.match(tt.eq)) {\n      this.expectPlugin(\"classProperties\");\n      this.next();\n      node.value = this.parseMaybeAssign();\n    } else {\n      node.value = null;\n    }\n    this.semicolon();\n\n    this.prodParam.exit();\n    this.scope.exit();\n\n    return this.finishNode(node, \"ClassProperty\");\n  }\n\n  parseClassId(\n    node: N.Class,\n    isStatement: boolean,\n    optionalId: ?boolean,\n    bindingType: BindingTypes = BIND_CLASS,\n  ): void {\n    if (this.match(tt.name)) {\n      node.id = this.parseIdentifier();\n      if (isStatement) {\n        this.checkLVal(node.id, bindingType, undefined, \"class name\");\n      }\n    } else {\n      if (optionalId || !isStatement) {\n        node.id = null;\n      } else {\n        this.unexpected(null, Errors.MissingClassName);\n      }\n    }\n  }\n\n  parseClassSuper(node: N.Class): void {\n    node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null;\n  }\n\n  // Parses module export declaration.\n\n  parseExport(node: N.Node): N.AnyExport {\n    const hasDefault = this.maybeParseExportDefaultSpecifier(node);\n    const parseAfterDefault = !hasDefault || this.eat(tt.comma);\n    const hasStar = parseAfterDefault && this.eatExportStar(node);\n    const hasNamespace =\n      hasStar && this.maybeParseExportNamespaceSpecifier(node);\n    const parseAfterNamespace =\n      parseAfterDefault && (!hasNamespace || this.eat(tt.comma));\n    const isFromRequired = hasDefault || hasStar;\n\n    if (hasStar && !hasNamespace) {\n      if (hasDefault) this.unexpected();\n      this.parseExportFrom(node, true);\n\n      return this.finishNode(node, \"ExportAllDeclaration\");\n    }\n\n    const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);\n\n    if (\n      (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) ||\n      (hasNamespace && parseAfterNamespace && !hasSpecifiers)\n    ) {\n      throw this.unexpected(null, tt.braceL);\n    }\n\n    let hasDeclaration;\n    if (isFromRequired || hasSpecifiers) {\n      hasDeclaration = false;\n      this.parseExportFrom(node, isFromRequired);\n    } else {\n      hasDeclaration = this.maybeParseExportDeclaration(node);\n    }\n\n    if (isFromRequired || hasSpecifiers || hasDeclaration) {\n      this.checkExport(node, true, false, !!node.source);\n      return this.finishNode(node, \"ExportNamedDeclaration\");\n    }\n\n    if (this.eat(tt._default)) {\n      // export default ...\n      node.declaration = this.parseExportDefaultExpression();\n      this.checkExport(node, true, true);\n\n      return this.finishNode(node, \"ExportDefaultDeclaration\");\n    }\n\n    throw this.unexpected(null, tt.braceL);\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  eatExportStar(node: N.Node): boolean {\n    return this.eat(tt.star);\n  }\n\n  maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n    if (this.isExportDefaultSpecifier()) {\n      // export defaultObj ...\n      this.expectPlugin(\"exportDefaultFrom\");\n      const specifier = this.startNode();\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n    if (this.isContextual(\"as\")) {\n      if (!node.specifiers) node.specifiers = [];\n\n      const specifier = this.startNodeAt(\n        this.state.lastTokStart,\n        this.state.lastTokStartLoc,\n      );\n\n      this.next();\n\n      specifier.exported = this.parseIdentifier(true);\n      node.specifiers.push(\n        this.finishNode(specifier, \"ExportNamespaceSpecifier\"),\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportNamedSpecifiers(node: N.Node): boolean {\n    if (this.match(tt.braceL)) {\n      if (!node.specifiers) node.specifiers = [];\n      node.specifiers.push(...this.parseExportSpecifiers());\n\n      node.source = null;\n      node.declaration = null;\n\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseExportDeclaration(node: N.Node): boolean {\n    if (this.shouldParseExportDeclaration()) {\n      if (this.isContextual(\"async\")) {\n        const next = this.nextTokenStart();\n\n        // export async;\n        if (!this.isUnparsedContextual(next, \"function\")) {\n          this.unexpected(next, tt._function);\n        }\n      }\n\n      node.specifiers = [];\n      node.source = null;\n      node.declaration = this.parseExportDeclaration(node);\n\n      return true;\n    }\n    return false;\n  }\n\n  isAsyncFunction(): boolean {\n    if (!this.isContextual(\"async\")) return false;\n    const next = this.nextTokenStart();\n    return (\n      !lineBreak.test(this.input.slice(this.state.pos, next)) &&\n      this.isUnparsedContextual(next, \"function\")\n    );\n  }\n\n  parseExportDefaultExpression(): N.Expression | N.Declaration {\n    const expr = this.startNode();\n\n    const isAsync = this.isAsyncFunction();\n\n    if (this.match(tt._function) || isAsync) {\n      this.next();\n      if (isAsync) {\n        this.next();\n      }\n\n      return this.parseFunction(\n        expr,\n        FUNC_STATEMENT | FUNC_NULLABLE_ID,\n        isAsync,\n      );\n    } else if (this.match(tt._class)) {\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt.at)) {\n      if (\n        this.hasPlugin(\"decorators\") &&\n        this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")\n      ) {\n        this.raise(this.state.start, Errors.DecoratorBeforeExport);\n      }\n      this.parseDecorators(false);\n      return this.parseClass(expr, true, true);\n    } else if (this.match(tt._const) || this.match(tt._var) || this.isLet()) {\n      throw this.raise(this.state.start, Errors.UnsupportedDefaultExport);\n    } else {\n      const res = this.parseMaybeAssign();\n      this.semicolon();\n      return res;\n    }\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n    return this.parseStatement(null);\n  }\n\n  isExportDefaultSpecifier(): boolean {\n    if (this.match(tt.name)) {\n      return this.state.value !== \"async\" && this.state.value !== \"let\";\n    }\n\n    if (!this.match(tt._default)) {\n      return false;\n    }\n\n    const next = this.nextTokenStart();\n    return (\n      this.input.charCodeAt(next) === charCodes.comma ||\n      this.isUnparsedContextual(next, \"from\")\n    );\n  }\n\n  parseExportFrom(node: N.ExportNamedDeclaration, expect?: boolean): void {\n    if (this.eatContextual(\"from\")) {\n      node.source = this.parseImportSource();\n      this.checkExport(node);\n    } else {\n      if (expect) {\n        this.unexpected();\n      } else {\n        node.source = null;\n      }\n    }\n\n    this.semicolon();\n  }\n\n  shouldParseExportDeclaration(): boolean {\n    if (this.match(tt.at)) {\n      this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n      if (this.hasPlugin(\"decorators\")) {\n        if (this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\")) {\n          this.unexpected(this.state.start, Errors.DecoratorBeforeExport);\n        } else {\n          return true;\n        }\n      }\n    }\n\n    return (\n      this.state.type.keyword === \"var\" ||\n      this.state.type.keyword === \"const\" ||\n      this.state.type.keyword === \"function\" ||\n      this.state.type.keyword === \"class\" ||\n      this.isLet() ||\n      this.isAsyncFunction()\n    );\n  }\n\n  checkExport(\n    node: N.ExportNamedDeclaration,\n    checkNames?: boolean,\n    isDefault?: boolean,\n    isFrom?: boolean,\n  ): void {\n    if (checkNames) {\n      // Check for duplicate exports\n      if (isDefault) {\n        // Default exports\n        this.checkDuplicateExports(node, \"default\");\n      } else if (node.specifiers && node.specifiers.length) {\n        // Named exports\n        for (const specifier of node.specifiers) {\n          this.checkDuplicateExports(specifier, specifier.exported.name);\n          // $FlowIgnore\n          if (!isFrom && specifier.local) {\n            // check for keywords used as local names\n            this.checkReservedWord(\n              specifier.local.name,\n              specifier.local.start,\n              true,\n              false,\n            );\n            // check if export is defined\n            // $FlowIgnore\n            this.scope.checkLocalExport(specifier.local);\n          }\n        }\n      } else if (node.declaration) {\n        // Exported declarations\n        if (\n          node.declaration.type === \"FunctionDeclaration\" ||\n          node.declaration.type === \"ClassDeclaration\"\n        ) {\n          const id = node.declaration.id;\n          if (!id) throw new Error(\"Assertion failure\");\n\n          this.checkDuplicateExports(node, id.name);\n        } else if (node.declaration.type === \"VariableDeclaration\") {\n          for (const declaration of node.declaration.declarations) {\n            this.checkDeclaration(declaration.id);\n          }\n        }\n      }\n    }\n\n    const currentContextDecorators = this.state.decoratorStack[\n      this.state.decoratorStack.length - 1\n    ];\n    if (currentContextDecorators.length) {\n      const isClass =\n        node.declaration &&\n        (node.declaration.type === \"ClassDeclaration\" ||\n          node.declaration.type === \"ClassExpression\");\n      if (!node.declaration || !isClass) {\n        throw this.raise(node.start, Errors.UnsupportedDecoratorExport);\n      }\n      this.takeDecorators(node.declaration);\n    }\n  }\n\n  checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n    if (node.type === \"Identifier\") {\n      this.checkDuplicateExports(node, node.name);\n    } else if (node.type === \"ObjectPattern\") {\n      for (const prop of node.properties) {\n        this.checkDeclaration(prop);\n      }\n    } else if (node.type === \"ArrayPattern\") {\n      for (const elem of node.elements) {\n        if (elem) {\n          this.checkDeclaration(elem);\n        }\n      }\n    } else if (node.type === \"ObjectProperty\") {\n      this.checkDeclaration(node.value);\n    } else if (node.type === \"RestElement\") {\n      this.checkDeclaration(node.argument);\n    } else if (node.type === \"AssignmentPattern\") {\n      this.checkDeclaration(node.left);\n    }\n  }\n\n  checkDuplicateExports(\n    node:\n      | N.Identifier\n      | N.ExportNamedDeclaration\n      | N.ExportSpecifier\n      | N.ExportDefaultSpecifier,\n    name: string,\n  ): void {\n    if (this.state.exportedIdentifiers.indexOf(name) > -1) {\n      this.raise(\n        node.start,\n        name === \"default\"\n          ? Errors.DuplicateDefaultExport\n          : Errors.DuplicateExport,\n        name,\n      );\n    }\n    this.state.exportedIdentifiers.push(name);\n  }\n\n  // Parses a comma-separated list of module exports.\n\n  parseExportSpecifiers(): Array<N.ExportSpecifier> {\n    const nodes = [];\n    let first = true;\n\n    // export { x, y as z } [from '...']\n    this.expect(tt.braceL);\n\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      const node = this.startNode();\n      node.local = this.parseIdentifier(true);\n      node.exported = this.eatContextual(\"as\")\n        ? this.parseIdentifier(true)\n        : node.local.__clone();\n      nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n    }\n\n    return nodes;\n  }\n\n  // Parses import declaration.\n\n  parseImport(node: N.Node): N.AnyImport {\n    // import '...'\n    node.specifiers = [];\n    if (!this.match(tt.string)) {\n      const hasDefault = this.maybeParseDefaultImportSpecifier(node);\n      const parseNext = !hasDefault || this.eat(tt.comma);\n      const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n      if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n      this.expectContextual(\"from\");\n    }\n    node.source = this.parseImportSource();\n    this.semicolon();\n    return this.finishNode(node, \"ImportDeclaration\");\n  }\n\n  parseImportSource(): N.StringLiteral {\n    if (!this.match(tt.string)) this.unexpected();\n    return this.parseExprAtom();\n  }\n\n  // eslint-disable-next-line no-unused-vars\n  shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n    return this.match(tt.name);\n  }\n\n  parseImportSpecifierLocal(\n    node: N.ImportDeclaration,\n    specifier: N.Node,\n    type: string,\n    contextDescription: string,\n  ): void {\n    specifier.local = this.parseIdentifier();\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      contextDescription,\n    );\n    node.specifiers.push(this.finishNode(specifier, type));\n  }\n\n  maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.shouldParseDefaultImport(node)) {\n      // import defaultObj, { x, y as z } from '...'\n      this.parseImportSpecifierLocal(\n        node,\n        this.startNode(),\n        \"ImportDefaultSpecifier\",\n        \"default import specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  maybeParseStarImportSpecifier(node: N.ImportDeclaration): boolean {\n    if (this.match(tt.star)) {\n      const specifier = this.startNode();\n      this.next();\n      this.expectContextual(\"as\");\n\n      this.parseImportSpecifierLocal(\n        node,\n        specifier,\n        \"ImportNamespaceSpecifier\",\n        \"import namespace specifier\",\n      );\n      return true;\n    }\n    return false;\n  }\n\n  parseNamedImportSpecifiers(node: N.ImportDeclaration) {\n    let first = true;\n    this.expect(tt.braceL);\n    while (!this.eat(tt.braceR)) {\n      if (first) {\n        first = false;\n      } else {\n        // Detect an attempt to deep destructure\n        if (this.eat(tt.colon)) {\n          throw this.raise(this.state.start, Errors.DestructureNamedImport);\n        }\n\n        this.expect(tt.comma);\n        if (this.eat(tt.braceR)) break;\n      }\n\n      this.parseImportSpecifier(node);\n    }\n  }\n\n  parseImportSpecifier(node: N.ImportDeclaration): void {\n    const specifier = this.startNode();\n    specifier.imported = this.parseIdentifier(true);\n    if (this.eatContextual(\"as\")) {\n      specifier.local = this.parseIdentifier();\n    } else {\n      this.checkReservedWord(\n        specifier.imported.name,\n        specifier.start,\n        true,\n        true,\n      );\n      specifier.local = specifier.imported.__clone();\n    }\n    this.checkLVal(\n      specifier.local,\n      BIND_LEXICAL,\n      undefined,\n      \"import specifier\",\n    );\n    node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n  }\n}\n","// @flow\n\nimport {\n  CLASS_ELEMENT_KIND_ACCESSOR,\n  CLASS_ELEMENT_FLAG_STATIC,\n  type ClassElementTypes,\n} from \"./scopeflags\";\nimport { Errors } from \"../parser/location\";\n\nexport class ClassScope {\n  // A list of private named declared in the current class\n  privateNames: Set<string> = new Set();\n\n  // A list of private getters of setters without their counterpart\n  loneAccessors: Map<string, ClassElementTypes> = new Map();\n\n  // A list of private names used before being defined, mapping to\n  // their position.\n  undefinedPrivateNames: Map<string, number> = new Map();\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\nexport default class ClassScopeHandler {\n  stack: Array<ClassScope> = [];\n  raise: raiseFunction;\n  undefinedPrivateNames: Map<string, number> = new Map();\n\n  constructor(raise: raiseFunction) {\n    this.raise = raise;\n  }\n\n  current(): ClassScope {\n    return this.stack[this.stack.length - 1];\n  }\n\n  enter() {\n    this.stack.push(new ClassScope());\n  }\n\n  exit() {\n    const oldClassScope = this.stack.pop();\n\n    // Migrate the usage of not yet defined private names to the outer\n    // class scope, or raise an error if we reached the top-level scope.\n\n    const current = this.current();\n\n    // Array.from is needed because this is compiled to an array-like for loop\n    for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) {\n      if (current) {\n        if (!current.undefinedPrivateNames.has(name)) {\n          current.undefinedPrivateNames.set(name, pos);\n        }\n      } else {\n        this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n      }\n    }\n  }\n\n  declarePrivateName(\n    name: string,\n    elementType: ClassElementTypes,\n    pos: number,\n  ) {\n    const classScope = this.current();\n    let redefined = classScope.privateNames.has(name);\n\n    if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) {\n      const accessor = redefined && classScope.loneAccessors.get(name);\n      if (accessor) {\n        const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC;\n        const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC;\n\n        const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR;\n        const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR;\n\n        // The private name can be duplicated only if it is used by\n        // two accessors with different kind (get and set), and if\n        // they have the same placement (static or not).\n        redefined = oldKind === newKind || oldStatic !== newStatic;\n\n        if (!redefined) classScope.loneAccessors.delete(name);\n      } else if (!redefined) {\n        classScope.loneAccessors.set(name, elementType);\n      }\n    }\n\n    if (redefined) {\n      this.raise(pos, Errors.PrivateNameRedeclaration, name);\n    }\n\n    classScope.privateNames.add(name);\n    classScope.undefinedPrivateNames.delete(name);\n  }\n\n  usePrivateName(name: string, pos: number) {\n    let classScope;\n    for (classScope of this.stack) {\n      if (classScope.privateNames.has(name)) return;\n    }\n\n    if (classScope) {\n      classScope.undefinedPrivateNames.set(name, pos);\n    } else {\n      // top-level\n      this.raise(pos, Errors.InvalidPrivateFieldResolution, name);\n    }\n  }\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type { File /*::, JSXOpeningElement */ } from \"../types\";\nimport type { PluginList } from \"../plugin-utils\";\nimport { getOptions } from \"../options\";\nimport StatementParser from \"./statement\";\nimport { SCOPE_PROGRAM } from \"../util/scopeflags\";\nimport ScopeHandler from \"../util/scope\";\nimport ClassScopeHandler from \"../util/class-scope\";\nimport ProductionParameterHandler, {\n  PARAM_AWAIT,\n  PARAM,\n} from \"../util/production-parameter\";\n\nexport type PluginsMap = Map<string, { [string]: any }>;\n\nexport default class Parser extends StatementParser {\n  // Forward-declaration so typescript plugin can override jsx plugin\n  /*::\n  +jsxParseOpeningElementAfterName: (\n    node: JSXOpeningElement,\n  ) => JSXOpeningElement;\n  */\n\n  constructor(options: ?Options, input: string) {\n    options = getOptions(options);\n    super(options, input);\n\n    const ScopeHandler = this.getScopeHandler();\n\n    this.options = options;\n    this.inModule = this.options.sourceType === \"module\";\n    this.scope = new ScopeHandler(this.raise.bind(this), this.inModule);\n    this.prodParam = new ProductionParameterHandler();\n    this.classScope = new ClassScopeHandler(this.raise.bind(this));\n    this.plugins = pluginsMap(this.options.plugins);\n    this.filename = options.sourceFilename;\n  }\n\n  // This can be overwritten, for example, by the TypeScript plugin.\n  getScopeHandler(): Class<ScopeHandler<*>> {\n    return ScopeHandler;\n  }\n\n  parse(): File {\n    let paramFlags = PARAM;\n    if (this.hasPlugin(\"topLevelAwait\") && this.inModule) {\n      paramFlags |= PARAM_AWAIT;\n    }\n    this.scope.enter(SCOPE_PROGRAM);\n    this.prodParam.enter(paramFlags);\n    const file = this.startNode();\n    const program = this.startNode();\n    this.nextToken();\n    file.errors = null;\n    this.parseTopLevel(file, program);\n    file.errors = this.state.errors;\n    return file;\n  }\n}\n\nfunction pluginsMap(plugins: PluginList): PluginsMap {\n  const pluginMap: PluginsMap = new Map();\n  for (const plugin of plugins) {\n    const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];\n    if (!pluginMap.has(name)) pluginMap.set(name, options || {});\n  }\n  return pluginMap;\n}\n","// @flow\n\nimport { type Options } from \"./options\";\nimport {\n  hasPlugin,\n  validatePlugins,\n  mixinPluginNames,\n  mixinPlugins,\n  type PluginList,\n} from \"./plugin-utils\";\nimport Parser from \"./parser\";\n\nimport { types as tokTypes } from \"./tokenizer/types\";\nimport \"./tokenizer/context\";\n\nimport type { Expression, File } from \"./types\";\n\nexport function parse(input: string, options?: Options): File {\n  if (options && options.sourceType === \"unambiguous\") {\n    options = {\n      ...options,\n    };\n    try {\n      options.sourceType = \"module\";\n      const parser = getParser(options, input);\n      const ast = parser.parse();\n\n      if (parser.sawUnambiguousESM) {\n        return ast;\n      }\n\n      if (parser.ambiguousScriptDifferentAst) {\n        // Top level await introduces code which can be both a valid script and\n        // a valid module, but which produces different ASTs:\n        //    await\n        //    0\n        // can be parsed either as an AwaitExpression, or as two ExpressionStatements.\n        try {\n          options.sourceType = \"script\";\n          return getParser(options, input).parse();\n        } catch {}\n      } else {\n        // This is both a valid module and a valid script, but\n        // we parse it as a script by default\n        ast.program.sourceType = \"script\";\n      }\n\n      return ast;\n    } catch (moduleError) {\n      try {\n        options.sourceType = \"script\";\n        return getParser(options, input).parse();\n      } catch {}\n\n      throw moduleError;\n    }\n  } else {\n    return getParser(options, input).parse();\n  }\n}\n\nexport function parseExpression(input: string, options?: Options): Expression {\n  const parser = getParser(options, input);\n  if (parser.options.strictMode) {\n    parser.state.strict = true;\n  }\n  return parser.getExpression();\n}\n\nexport { tokTypes };\n\nfunction getParser(options: ?Options, input: string): Parser {\n  let cls = Parser;\n  if (options && options.plugins) {\n    validatePlugins(options.plugins);\n    cls = getParserClass(options.plugins);\n  }\n\n  return new cls(options, input);\n}\n\nconst parserClassCache: { [key: string]: Class<Parser> } = {};\n\n/** Get a Parser class with plugins applied. */\nfunction getParserClass(pluginsFromOptions: PluginList): Class<Parser> {\n  const pluginList = mixinPluginNames.filter(name =>\n    hasPlugin(pluginsFromOptions, name),\n  );\n\n  const key = pluginList.join(\"/\");\n  let cls = parserClassCache[key];\n  if (!cls) {\n    cls = Parser;\n    for (const plugin of pluginList) {\n      cls = mixinPlugins[plugin](cls);\n    }\n    parserClassCache[key] = cls;\n  }\n  return cls;\n}\n"],"names":["beforeExpr","startsExpr","isLoop","isAssign","prefix","postfix","TokenType","constructor","label","conf","keyword","rightAssociative","binop","updateContext","keywords","Map","createKeyword","name","options","token","set","createBinop","types","num","bigint","regexp","string","eof","bracketL","bracketHashL","bracketBarL","bracketR","bracketBarR","braceL","braceBarL","braceHashL","braceR","braceBarR","parenL","parenR","comma","semi","colon","doubleColon","dot","question","questionDot","arrow","template","ellipsis","backQuote","dollarBraceL","at","hash","interpreterDirective","eq","assign","incDec","bang","tilde","pipeline","nullishCoalescing","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","star","slash","exponent","_break","_case","_catch","_continue","_debugger","_default","_do","_else","_finally","_for","_function","_if","_return","_switch","_throw","_try","_var","_const","_while","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_in","_instanceof","_typeof","_void","_delete","SCOPE_OTHER","SCOPE_PROGRAM","SCOPE_FUNCTION","SCOPE_ARROW","SCOPE_SIMPLE_CATCH","SCOPE_SUPER","SCOPE_DIRECT_SUPER","SCOPE_CLASS","SCOPE_TS_MODULE","SCOPE_VAR","BIND_KIND_VALUE","BIND_KIND_TYPE","BIND_SCOPE_VAR","BIND_SCOPE_LEXICAL","BIND_SCOPE_FUNCTION","BIND_SCOPE_OUTSIDE","BIND_FLAGS_NONE","BIND_FLAGS_CLASS","BIND_FLAGS_TS_ENUM","BIND_FLAGS_TS_CONST_ENUM","BIND_FLAGS_TS_EXPORT_ONLY","BIND_CLASS","BIND_LEXICAL","BIND_VAR","BIND_FUNCTION","BIND_TS_INTERFACE","BIND_TS_TYPE","BIND_TS_ENUM","BIND_TS_AMBIENT","BIND_NONE","BIND_OUTSIDE","BIND_TS_CONST_ENUM","BIND_TS_NAMESPACE","CLASS_ELEMENT_FLAG_STATIC","CLASS_ELEMENT_KIND_GETTER","CLASS_ELEMENT_KIND_SETTER","CLASS_ELEMENT_KIND_ACCESSOR","CLASS_ELEMENT_STATIC_GETTER","CLASS_ELEMENT_STATIC_SETTER","CLASS_ELEMENT_INSTANCE_GETTER","CLASS_ELEMENT_INSTANCE_SETTER","CLASS_ELEMENT_OTHER","lineBreak","lineBreakG","RegExp","source","isNewLine","code","skipWhiteSpace","isWhitespace","Position","line","col","column","SourceLocation","start","end","getLineInfo","input","offset","lineStart","match","lastIndex","exec","index","BaseParser","sawUnambiguousESM","ambiguousScriptDifferentAst","hasPlugin","plugins","has","getPluginOption","plugin","get","last","stack","length","CommentsParser","addComment","comment","filename","loc","state","trailingComments","push","leadingComments","adjustCommentsAfterTrailingComma","node","elements","takeAllComments","lastElement","i","j","commentPreviousNode","splice","newTrailingComments","leadingComment","undefined","processComment","type","body","commentStack","firstChild","lastChild","lastInStack","pop","properties","arguments","slice","innerComments","Errors","Object","freeze","ArgumentsDisallowedInInitializer","AsyncFunctionInSingleStatementContext","AwaitBindingIdentifier","AwaitExpressionFormalParameter","AwaitNotInAsyncFunction","BadGetterArity","BadSetterArity","BadSetterRestParameter","ConstructorClassField","ConstructorClassPrivateField","ConstructorIsAccessor","ConstructorIsAsync","ConstructorIsGenerator","DeclarationMissingInitializer","DecoratorBeforeExport","DecoratorConstructor","DecoratorExportClass","DecoratorSemicolon","DeletePrivateField","DestructureNamedImport","DuplicateConstructor","DuplicateDefaultExport","DuplicateExport","DuplicateProto","DuplicateRegExpFlags","ElementAfterRest","EscapedCharNotAnIdentifier","ForInOfLoopInitializer","GeneratorInSingleStatementContext","IllegalBreakContinue","IllegalLanguageModeDirective","IllegalReturn","ImportCallArgumentTrailingComma","ImportCallArity","ImportCallArityLtOne","ImportCallNotNewExpression","ImportCallSpreadArgument","ImportMetaOutsideModule","ImportOutsideModule","InvalidCodePoint","InvalidDigit","InvalidEscapeSequence","InvalidEscapeSequenceTemplate","InvalidEscapedReservedWord","InvalidIdentifier","InvalidLhs","InvalidLhsBinding","InvalidNumber","InvalidOrUnexpectedToken","InvalidParenthesizedAssignment","InvalidPrivateFieldResolution","InvalidPropertyBindingPattern","InvalidRestAssignmentPattern","LabelRedeclaration","LetInLexicalBinding","MalformedRegExpFlags","MissingClassName","MissingEqInAssignment","MissingUnicodeEscape","MixingCoalesceWithLogical","ModuleExportUndefined","MultipleDefaultsInSwitch","NewlineAfterThrow","NoCatchOrFinally","NumberIdentifier","NumericSeparatorInEscapeSequence","ObsoleteAwaitStar","OptionalChainingNoNew","OptionalChainingNoTemplate","ParamDupe","PatternHasAccessor","PatternHasMethod","PipelineBodyNoArrow","PipelineBodySequenceExpression","PipelineHeadSequenceExpression","PipelineTopicUnused","PrimaryTopicNotAllowed","PrimaryTopicRequiresSmartPipeline","PrivateNameRedeclaration","RecordExpressionBarIncorrectEndSyntaxType","RecordExpressionBarIncorrectStartSyntaxType","RecordExpressionHashIncorrectStartSyntaxType","RestTrailingComma","SloppyFunction","StaticPrototype","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","StrictOctalLiteral","StrictWith","SuperNotAllowed","SuperPrivateField","TrailingDecorator","TupleExpressionBarIncorrectEndSyntaxType","TupleExpressionBarIncorrectStartSyntaxType","TupleExpressionHashIncorrectStartSyntaxType","UnexpectedArgumentPlaceholder","UnexpectedAwaitAfterPipelineBody","UnexpectedDigitAfterHash","UnexpectedImportExport","UnexpectedKeyword","UnexpectedLeadingDecorator","UnexpectedLexicalDeclaration","UnexpectedNewTarget","UnexpectedNumericSeparator","UnexpectedPrivateField","UnexpectedReservedWord","UnexpectedSuper","UnexpectedToken","UnexpectedTokenUnaryExponentiation","UnsupportedBind","UnsupportedDecoratorExport","UnsupportedDefaultExport","UnsupportedImport","UnsupportedMetaProperty","UnsupportedParameterDecorator","UnsupportedPropertyDecorator","UnsupportedSuper","UnterminatedComment","UnterminatedRegExp","UnterminatedString","UnterminatedTemplate","VarRedeclaration","YieldBindingIdentifier","YieldInParameter","ZeroDigitNumericSeparator","LocationParser","getLocationForPosition","pos","startLoc","lastTokStart","lastTokStartLoc","endLoc","lastTokEnd","lastTokEndLoc","raise","errorTemplate","params","raiseWithData","data","message","replace","_","_raise","errorContext","err","SyntaxError","errorRecovery","isLookahead","errors","isSimpleProperty","kind","method","superClass","estreeParseRegExpLiteral","pattern","flags","regex","e","estreeParseLiteral","estreeParseBigIntLiteral","value","bigInt","BigInt","String","parseLiteral","directiveToStmt","directive","directiveLiteral","stmt","startNodeAt","expression","raw","extra","finishNodeAt","initFunction","isAsync","checkDeclaration","checkGetterSetterParams","prop","paramCount","checkLVal","expr","bindingType","checkClashes","contextDescription","disallowLetBinding","forEach","checkDuplicatedProto","protoRef","refExpressionErrors","computed","shorthand","key","used","doubleProto","isValidDirective","parenthesized","stmtToDirective","parseBlockBody","allowDirectives","topLevel","directiveStatements","directives","map","d","concat","pushClassMethod","classBody","isGenerator","isConstructor","allowsDirectSuper","parseMethod","typeParameters","parseExprAtom","tt","startPos","parseFunctionBody","allowExpression","isMethod","allowDirectSuper","inClassScope","funcNode","startNode","finishNode","parseObjectMethod","isPattern","containsEsc","parseObjectProperty","toAssignable","toAssignableObjectExpressionProp","isLast","finishCallExpression","optional","callee","toReferencedListDeep","exprList","isParenthesizedExpr","parseExport","exported","specifiers","TokContext","isExpr","preserveSpace","override","braceStatement","braceExpression","templateQuasi","parenStatement","parenExpression","p","readTmplToken","functionExpression","functionStatement","context","exprAllowed","out","curContext","prevType","allowed","prodParam","hasYield","isIterator","braceIsBlock","statementParens","test","b_stat","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","isIdentifierStart","fromCharCode","isIdentifierChar","reservedWords","strict","strictBind","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","keywordRelationalOperator","isIteratorStart","current","next","reservedTypes","FlowErrors","AmbiguousConditionalArrow","AmbiguousDeclareModuleKind","AssignReservedType","DeclareClassElement","DeclareClassFieldInitializer","DuplicateDeclareModuleExports","EnumBooleanMemberNotInitialized","EnumDuplicateMemberName","EnumInconsistentMemberValues","EnumInvalidExplicitType","EnumInvalidExplicitTypeUnknownSupplied","EnumInvalidMemberInitializerPrimaryType","EnumInvalidMemberInitializerSymbolType","EnumInvalidMemberInitializerUnknownType","EnumInvalidMemberName","EnumNumberMemberNotInitialized","EnumStringMemberInconsistentlyInitailized","ImportTypeShorthandOnlyInPureImport","InexactInsideExact","InexactInsideNonObject","InexactVariance","InvalidNonTypeImportInDeclareModule","MissingTypeParamDefault","NestedDeclareModule","NestedFlowComment","OptionalBindingPattern","SpreadVariance","TypeBeforeInitializer","TypeCastInPattern","UnexpectedExplicitInexactInObject","UnexpectedReservedType","UnexpectedReservedUnderscore","UnexpectedSpaceBetweenModuloChecks","UnexpectedSpreadType","UnexpectedSubtractionOperand","UnexpectedTokenAfterTypeParameter","UnsupportedDeclareExportKind","UnsupportedStatementInDeclareModule","UnterminatedFlowComment","isEsModuleType","bodyElement","declaration","hasTypeImportKind","importKind","isMaybeDefaultImport","exportSuggestions","const","let","interface","partition","list","list1","list2","FLOW_PRAGMA_REGEX","flowPragma","shouldParseTypes","shouldParseEnums","finishToken","val","matches","Error","flowParseTypeInitialiser","tok","oldInType","inType","expect","flowParseType","flowParsePredicate","moduloLoc","moduloPos","checksLoc","expectContextual","eat","parseExpression","flowParseTypeAndPredicateInitialiser","predicate","flowParseDeclareClass","flowParseInterfaceish","flowParseDeclareFunction","id","parseIdentifier","typeNode","typeContainer","isRelational","flowParseTypeParameterDeclaration","tmp","flowParseFunctionTypeParams","rest","returnType","typeAnnotation","resetEndLocation","semicolon","flowParseDeclare","insideModule","flowParseDeclareVariable","eatContextual","flowParseDeclareModuleExports","flowParseDeclareModule","isContextual","flowParseDeclareTypeAlias","flowParseDeclareOpaqueType","flowParseDeclareInterface","flowParseDeclareExportDeclaration","unexpected","flowParseTypeAnnotatableIdentifier","scope","declareName","enter","bodyNode","parseImport","exit","hasModuleExport","default","isLet","suggestion","exportKind","flowParseTypeAnnotation","flowParseTypeAlias","flowParseOpaqueType","isClass","flowParseRestrictedIdentifier","extends","implements","mixins","flowParseInterfaceExtends","flowParseObjectType","allowStatic","allowExact","allowSpread","allowProto","allowInexact","flowParseQualifiedTypeIdentifier","flowParseTypeParameterInstantiation","flowParseInterface","checkNotUnderscore","checkReservedType","liberal","right","declare","supertype","impltype","flowParseTypeParameter","requireDefault","nodeStart","variance","flowParseVariance","ident","bound","jsxTagStart","defaultRequired","typeParameter","expectRelational","oldNoAnonFunctionType","noAnonFunctionType","flowParseTypeParameterInstantiationCallOrNew","flowParseTypeOrImplicitInstantiation","flowParseInterfaceType","flowParseObjectPropertyKey","flowParseObjectTypeIndexer","isStatic","static","lookahead","flowParseObjectTypeInternalSlot","flowParseObjectTypeMethodish","flowParseFunctionTypeParam","flowParseObjectTypeCallProperty","valueNode","callProperties","indexers","internalSlots","endDelim","exact","inexact","protoStart","inexactStart","propOrInexact","flowParseObjectTypeProperty","flowObjectTypeSemicolon","isInexactToken","argument","proto","flowCheckGetterSetterParams","property","node2","qualification","flowParseGenericType","flowParseTypeofType","flowParsePrimaryType","flowParseTupleType","lh","reinterpretTypeAsFunctionTypeParam","flowIdentToTypeAnnotation","isGroupedType","createIdentifier","flowParsePostfixType","canInsertSemicolon","elementType","flowParsePrefixType","flowParseAnonFunctionWithoutParens","param","flowParseIntersectionType","flowParseUnionType","allowPrimitiveOverride","typeCastToParameter","allowExpressionBody","forwardNoArrowParamsConversionAt","parseFunctionBodyAndFinish","parseStatement","flowParseEnumDeclaration","parseExpressionStatement","shouldParseExportDeclaration","isExportDefaultSpecifier","parseExportDefaultExpression","parseConditional","noIn","refNeedsArrowPos","result","tryParse","error","failState","clone","originalNoArrowAt","noArrowAt","consequent","failed","tryParseConditionalConsequent","valid","invalid","getArrowLikeExpressions","alternate","parseMaybeAssign","noArrowParamsConversionAt","disallowInvalid","arrows","finishArrowValidation","every","isAssignable","toAssignableList","trailingComma","checkParams","parse","indexOf","parseParenItem","typeCastNode","assertModuleNodeAllowed","decl","parseExportDeclaration","declarationNode","parseExportSpecifiers","parseExportFrom","eatExportStar","maybeParseExportNamespaceSpecifier","hasNamespace","parseClassId","isStatement","optionalId","parseClassMember","member","constructorAllowsSuper","parseClassMemberFromModifier","getTokenFromCode","charCodeAt","finishOp","readWord","isBinding","element","operator","trailingCommaPos","toReferencedList","parseClassProperty","parseClassPrivateProperty","isClassMethod","isClassProperty","isNonstaticConstructor","pushClassPrivateMethod","parseClassSuper","superTypeParameters","implemented","parsePropertyName","isPrivateNameAllowed","parseObjPropValue","parseAssignableListItemTypes","parseMaybeDefault","left","shouldParseDefaultImport","parseImportSpecifierLocal","specifier","local","maybeParseDefaultImportSpecifier","parseImportSpecifier","firstIdentLoc","firstIdent","specifierTypeKind","isLookaheadContextual","as_ident","imported","__clone","nodeIsTypeImport","specifierIsTypeImport","checkReservedWord","parseFunctionParams","allowModifiers","parseVarId","parseAsyncArrowFromCallExpression","call","shouldParseAsyncArrow","afterLeftParse","jsx","tc","j_oTag","j_expr","arrowExpression","resetStartLocationFromNode","thrown","parseArrow","shouldParseArrow","setArrowFunctionParameters","allowDuplicates","isArrowFunction","parseParenAndDistinguishExpression","canBeArrow","parseSubscripts","base","noCalls","parseCallExpressionArguments","abort","parseAsyncArrowWithTypeParameters","aborted","parseSubscript","subscriptState","isLookaheadRelational","optionalChainMember","stop","typeArguments","parseNewArguments","targs","parseArrowExpression","readToken_mult_modulo","hasFlowComment","nextToken","readToken_pipe_amp","parseTopLevel","file","program","fileNode","skipBlockComment","skipFlowComment","hasFlowCommentCompletion","shiftToFirstNonWhiteSpace","includes","ch2","ch3","flowEnumErrorBooleanMemberNotInitialized","enumName","memberName","flowEnumErrorInvalidMemberName","toUpperCase","flowEnumErrorDuplicateMemberName","flowEnumErrorInconsistentMemberValues","flowEnumErrorInvalidExplicitType","suppliedType","flowEnumErrorInvalidMemberInitializer","explicitType","flowEnumErrorNumberMemberNotInitialized","flowEnumErrorStringMemberInconsistentlyInitailized","flowEnumMemberInit","endOfInit","literal","parseBooleanLiteral","flowEnumMemberRaw","init","flowEnumCheckExplicitTypeMismatch","expectedType","flowEnumMembers","seenNames","members","booleanMembers","numberMembers","stringMembers","defaultedMembers","memberNode","add","flowEnumStringMembers","initializedMembers","flowEnumParseExplicitType","flowEnumBody","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","entities","quot","amp","apos","lt","gt","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","HEX_NUMBER","DECIMAL_NUMBER","JsxErrors","AttributeIsEmpty","MissingClosingTagFragment","MissingClosingTagElement","UnsupportedJsxValue","UnterminatedJsxContent","UnwrappedAdjacentJSXElements","j_cTag","jsxName","jsxText","jsxTagEnd","isFragment","object","getQualifiedJSXName","namespace","jsxReadToken","chunkStart","ch","jsxReadEntity","jsxReadNewLine","normalizeCRLF","curLine","jsxReadString","quote","str","count","entity","substr","fromCodePoint","parseInt","XHTMLEntities","jsxReadWord","jsxParseIdentifier","jsxParseNamespacedName","jsxParseElementName","newNode","jsxParseAttributeValue","jsxParseExpressionContainer","jsxParseEmptyExpression","jsxParseSpreadChild","jsxParseAttribute","jsxParseOpeningElementAt","jsxParseOpeningElementAfterName","attributes","selfClosing","jsxParseClosingElementAt","jsxParseElementAt","children","openingElement","closingElement","contents","openingFragment","closingFragment","jsxParseElement","inPropertyName","Scope","var","lexical","functions","ScopeHandler","scopeStack","undefinedExports","undefinedPrivateNames","inFunction","currentVarScope","allowSuper","currentThisScope","inClass","inNonArrowFunction","treatFunctionsAsVar","treatFunctionsAsVarInScope","currentScope","createScope","checkRedeclarationInScope","maybeExportDefined","delete","isRedeclaredInScope","checkLocalExport","TypeScriptScope","enums","constEnums","classes","exportOnlyBindings","TypeScriptScopeHandler","isConst","wasConst","PARAM","PARAM_YIELD","PARAM_AWAIT","PARAM_RETURN","ProductionParameterHandler","stacks","currentFlags","hasAwait","hasReturn","functionFlags","nonNull","x","assert","TSErrors","ClassMethodHasDeclare","ClassMethodHasReadonly","DeclareClassFieldHasInitializer","DuplicateModifier","EmptyHeritageClauseType","IndexSignatureHasAbstract","IndexSignatureHasAccessibility","IndexSignatureHasStatic","OptionalTypeBeforeRequired","PatternIsOptional","PrivateElementHasAbstract","PrivateElementHasAccessibility","TemplateTypeHasSubstitution","TypeAnnotationAfterAssign","UnexpectedReadonly","UnexpectedTypeAnnotation","UnexpectedTypeCastInParameter","UnsupportedImportTypeArgument","UnsupportedParameterPropertyKind","UnsupportedSignatureParameterKind","keywordTypeFromName","getScopeHandler","tsIsIdentifier","tsNextTokenCanFollowModifier","hasPrecedingLineBreak","tsParseModifier","allowedModifiers","modifier","tsTryParse","bind","tsParseModifiers","modified","hasOwnProperty","tsIsListTerminator","tsParseList","parseElement","tsParseDelimitedList","tsParseDelimitedListWorker","expectSuccess","tsParseBracketedList","bracket","skipFirstToken","tsParseImportType","qualifier","tsParseEntityName","tsParseTypeArguments","allowReservedWords","startNodeAtNode","tsParseTypeReference","typeName","tsParseThisTypePredicate","lhs","parameterName","tsParseTypeAnnotation","tsParseThisTypeNode","tsParseTypeQuery","exprName","tsParseTypeParameter","parseIdentifierName","constraint","tsEatThenParseType","tsTryParseTypeParameters","tsParseTypeParameters","tsTryNextParseConstantContext","tsFillSignature","returnToken","signature","returnTokenRequired","parameters","tsParseBindingListForSignature","tsParseTypeOrTypePredicateAnnotation","parseBindingList","tsParseTypeMemberSemicolon","tsParseSignatureMember","tsIsUnambiguouslyIndexSignature","tsTryParseIndexSignature","tsLookAhead","tsTryParseTypeAnnotation","tsParsePropertyOrMethodSignature","readonly","nodeAny","tsParseTypeMember","idx","tsParseTypeLiteral","tsParseObjectTypeMembers","tsIsStartOfMappedType","tsParseMappedTypeParameter","tsExpectThenParseType","tsParseMappedType","tsTryParseType","tsParseTupleType","elementTypes","tsParseTupleElementType","seenOptionalElement","elementNode","restNode","tsParseType","lookaheadCharCode","raiseRestNotLast","optionalTypeNode","tsParseParenthesizedType","tsParseFunctionOrConstructorType","tsParseLiteralTypeNode","tsParseTemplateLiteralType","templateNode","parseTemplate","expressions","tsParseThisTypeOrThisTypePredicate","thisKeyword","tsParseNonArrayType","parseMaybeUnary","tsParseArrayTypeOrHigher","objectType","indexType","tsParseTypeOperator","tsParseTypeOperatorOrHigher","tsCheckTypeAnnotationForReadOnly","tsParseInferType","find","kw","tsParseUnionOrIntersectionType","parseConstituentType","tsParseIntersectionTypeOrHigher","tsParseUnionTypeOrHigher","tsIsStartOfFunctionType","tsIsUnambiguouslyStartOfFunctionType","tsSkipParameterStart","braceStackCounter","tsInType","t","asserts","tsParseTypePredicateAsserts","thisTypePredicate","typePredicateVariable","tsParseTypePredicatePrefix","tsTryParseTypeOrTypePredicateAnnotation","eatColon","tsParseNonConditionalType","checkType","extendsType","trueType","falseType","tsParseTypeAssertion","tsNextThenParseType","tsParseHeritageClause","descriptor","originalStart","delimitedList","tsParseExpressionWithTypeArguments","tsParseInterfaceDeclaration","tsParseTypeAliasDeclaration","tsInNoContext","cb","oldContext","tsDoThenParseType","tsParseEnumMember","initializer","tsParseEnumDeclaration","tsParseModuleBlock","parseBlockOrModuleBlockBody","tsParseModuleOrNamespaceDeclaration","nested","inner","tsParseAmbientExternalModuleDeclaration","global","tsParseImportEqualsDeclaration","isExport","moduleReference","tsParseModuleReference","tsIsExternalModuleReference","tsParseExternalModuleReference","f","res","tsTryParseAndCatch","tsTryParseDeclare","nany","isLineTerminator","starttype","parseFunctionStatement","parseClass","parseVarStatement","tsParseDeclaration","tsTryParseExportDeclaration","tsParseExpressionStatement","mod","tsCheckLineTerminatorAndMatch","cls","abstract","tokenType","tsTryParseGenericAsyncArrowFunction","oldMaybeInArrowParameters","maybeInArrowParameters","oldYieldPos","yieldPos","oldAwaitPos","awaitPos","tsIsDeclarationStart","parseAssignableListItem","decorators","accessibility","parseAccessModifier","elt","pp","parameter","bodilessType","registerFunctionStatementId","nonNullExpression","atPossibleAsyncArrow","asyncArrowFn","parseTaggedTemplateExpression","args","parseExprOp","leftStartPos","leftStartLoc","minPrec","checkKeywords","checkDuplicateExports","ahead","importNode","isAbstractClass","parseStatementContent","parseClassMemberWithIsStatic","parsePostMemberNameModifiers","methodOrProp","isDeclare","resetStartLocation","parseClassPropertyAnnotation","definite","equal","typeCast","ct","parseBindingAtom","parseMaybeDecoratorArguments","isInParens","canHaveLeadingDecorator","getGetterSetterExpectedParamCount","baseCount","firstParam","hasContextParam","placeholder","parsePlaceholder","expectedNode","assertNoSpace","finishPlaceholder","isFinished","verifyBreakContinue","parseBlock","parseFunctionId","takeDecorators","parseClassBody","expectPlugin","maybeParseExportDefaultSpecifier","checkExport","filter","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","parseImportSource","parseV8Intrinsic","v8IntrinsicStart","identifier","some","Array","isArray","option","PIPELINE_PROPOSALS","RECORD_AND_TUPLE_SYNTAX_TYPES","validatePlugins","decoratorsBeforeExport","join","mixinPlugins","estree","flow","typescript","v8intrinsic","placeholders","mixinPluginNames","keys","defaultOptions","sourceType","sourceFilename","startLine","allowAwaitOutsideFunction","allowReturnOutsideFunction","allowImportExportEverywhere","allowSuperOutsideMethod","allowUndeclaredExports","strictMode","ranges","tokens","createParenthesizedExpressions","getOptions","opts","State","potentialArrowAt","inParameters","maybeInAsyncArrowHead","inPipeline","topicContext","maxNumOfResolvableTopics","maxTopicIndex","soloAwait","inFSharpPipelineDirectBody","labels","decoratorStack","comments","octalPositions","exportedIdentifiers","tokensLength","curPosition","skipArrays","isDigit","VALID_REGEX_FLAGS","forbiddenNumericSeparatorSiblings","decBinOct","hex","allowedNumericSeparatorSiblings","bin","oct","dec","Token","Tokenizer","pushToken","checkKeywordEscapes","old","curr","nextTokenStart","thisTokEnd","skip","setStrict","lastIndexOf","skipSpace","codePointAt","pushComment","block","text","skipLineComment","startSkip","loop","readToken_numberSign","readToken_interpreter","nextPos","readToken_dot","readNumber","readToken_slash","readRegexp","width","readToken_caret","readToken_plus_min","readToken_lt_gt","size","readToken_eq_excl","readToken_question","next2","readRadixNumber","readString","escaped","charAt","content","mods","char","charCode","readInt","radix","len","forceLen","allowNumSeparator","forbiddenSiblings","allowedSiblings","total","Infinity","prev","Number","isNaN","isBigInt","startsWithDot","isFloat","isNonOctalDecimalInt","octal","underscorePos","parseFloat","readCodePoint","throwOnInvalid","codePos","readHexChar","readEscapedChar","containsInvalid","inTemplate","octalStr","n","readWord1","escStart","identifierCheck","esc","keywordTypes","parent","update","UtilParser","addExtra","op","afterNext","isUnparsedContextual","nameStart","nameEnd","messageOrType","missingPlugin","expectOnePlugin","names","checkYieldAwaitInDefaultParams","fn","oldState","abortSignal","checkExpressionErrors","andThrow","shorthandAssign","ExpressionErrors","Node","parser","range","NodeUtils","locationNode","unwrapParenthesizedExpression","LValParser","checkToRestConversion","arg","raiseTrailingCommaAfterRest","parseSpread","parseRestBinding","parseObj","close","closeCharCode","allowEmpty","elts","first","checkCommaAfterRest","parseDecorator","strictModeChanged","elem","ExpressionParser","getExpression","paramFlags","parseYield","ownExpressionErrors","parseMaybeConditional","parseExprOps","prec","logical","coalesce","checkPipelineAtInfixOperator","parseExprOpRightExpr","nextOp","withTopicPermittingContext","parseSmartPipelineBody","parseExprOpBaseRightExpr","withSoloAwaitPermittingContext","parseFSharpPipelineBody","isAwaitAllowed","parseAwait","parseExprSubscripts","maybeAsyncArrow","oldMaybeInAsyncArrowHead","parseNoCallExpr","parseMaybePrivateName","classScope","usePrivateName","tag","quasi","importArg","possibleAsyncArrow","dynamicImport","allowPlaceholder","nodeForExtra","innerParenStart","oldInFSharpPipelineDirectBody","parseExprListItem","parseImportMetaProperty","parseFunction","oldLabels","parseExprList","ret","parseFunctionExpression","parseDecorators","parseNew","primaryTopicReferenceIsAllowedInCurrentTopicContext","registerTopicReference","isPrivate","meta","parseMetaProperty","propertyName","innerStartPos","innerStartLoc","spreadStart","optionalCommaStart","spreadNodeStartPos","spreadNodeStartLoc","innerEndPos","innerEndLoc","arrowNode","parenStart","metaProp","parseTemplateElement","isTagged","cooked","tail","curElt","quasis","isRecord","propHash","create","parseObjectMember","isAsyncProp","isGetterOrSetterMethod","oldInPropertyName","generator","async","isExpression","oldInParameters","oldStrict","hasStrictModeDirective","nonSimple","isSimpleParamList","errorPos","nameHash","identifierName","reservedTest","delegate","childExpression","pipelineStyle","checkSmartPipelineBodyStyle","checkSmartPipelineBodyEarlyErrors","parseSmartPipelineBodyInStyle","topicReferenceWasUsedInCurrentTopicContext","isSimpleReference","callback","outerContextTopicState","withTopicForbiddingContext","outerContextSoloAwaitState","loopLabel","switchLabel","FUNC_NO_FLAGS","FUNC_STATEMENT","FUNC_HANGING_STATEMENT","FUNC_NULLABLE_ID","StatementParser","interpreter","parseInterpreterDirective","from","nextCh","parseBreakContinueStatement","parseDebuggerStatement","parseDoStatement","parseForStatement","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseWhileStatement","parseWithStatement","parseEmptyStatement","nextTokenCharCode","isAsyncFunction","maybeName","parseLabeledStatement","allowExport","currentContextDecorators","decorator","isBreak","lab","parseHeaderExpression","awaitAt","parseFor","parseVar","declarations","parseForIn","description","declarationPosition","discriminant","cases","cur","sawDefault","isCase","handler","clause","simple","finalizer","statementStart","createNewLexicalScope","afterBlockParse","parsedNonDirective","isForIn","await","isFor","isTypescript","statement","isHangingStatement","requireId","hadConstructor","publicMethod","privateMethod","publicProp","privateProp","publicMember","parseClassPropertyName","isSimple","maybeQuestionTokenStart","pushClassPrivateProperty","pushClassProperty","declarePrivateName","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","maybeParseExportNamedSpecifiers","hasDeclaration","maybeParseExportDeclaration","checkNames","isDefault","isFrom","nodes","parseNext","ClassScope","privateNames","loneAccessors","ClassScopeHandler","oldClassScope","redefined","accessor","oldStatic","newStatic","oldKind","newKind","Parser","pluginsMap","pluginMap","getParser","ast","moduleError","getParserClass","parserClassCache","pluginsFromOptions","pluginList"],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/CHANGELOG.md-565-```js
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/CHANGELOG.md:566:import(`./section-modules/${link.dataset.entryModule}.js`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/parser/CHANGELOG.md-567-.then(module => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/builder.js-41-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/builder.js:42:    throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/builder.js-43-  }, {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/builder.js-58-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/builder.js:59:      throw new Error(`Unexpected template param ${typeof tpl}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/builder.js-60-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/builder.js-78-    } catch (err) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/builder.js:79:      err.stack += `\n    =============\n${rootStack}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/builder.js-80-      throw err;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/literal.js-72-  for (let i = 1; i < tpl.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/literal.js:73:    const value = `${prefix}${i - 1}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/literal.js-74-    names.push(value);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/formatters.js-9-  return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/formatters.js:10:    code: str => `/* @babel/template */;\n${str}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/formatters.js-11-    validate: () => {},
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/formatters.js-40-const expression = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/formatters.js:41:  code: str => `(\n${str}\n)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/formatters.js-42-  validate: ({
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/populate.js-28-      if (!metadata.placeholderNames.has(key)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/populate.js:29:        throw new Error(`Unknown substitution "${key}" given`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/populate.js-30-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/populate.js-37-    } catch (e) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/populate.js:38:      e.message = `@babel/template placeholder "${placeholder.name}": ${e.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/template/lib/populate.js-39-      throw e;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toIdentifier.js-20-  if (!(0, _isValidIdentifier.default)(name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toIdentifier.js:21:    name = `_${name}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toIdentifier.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toExpression.js-25-  if (!(0, _generated.isExpression)(node)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toExpression.js:26:    throw new Error(`cannot turn ${node.type} to an expression`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toExpression.js-27-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toKeyAlias.js-29-  if (node.computed) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toKeyAlias.js:30:    alias = `[${alias}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toKeyAlias.js-31-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toKeyAlias.js-33-  if (node.static) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toKeyAlias.js:34:    alias = `static:${alias}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toKeyAlias.js-35-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toStatement.js-37-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toStatement.js:38:      throw new Error(`cannot turn ${node.type} to a statement`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/converters/toStatement.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-100-    for (let i = 0; i < val.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js:101:      const subkey = `${key}[${i}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-102-      const v = val[i];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-114-    if (values.indexOf(val) < 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js:115:      throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-116-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-131-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js:132:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-133-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-147-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js:148:    throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-149-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-159-    if (!valid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js:160:      throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-161-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-185-    if (errors.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js:186:      throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-187-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-219-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js:220:    throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-221-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-266-    if (validTypeOpts.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js:267:      throw new Error(`Unknown type option "${k}" on ${type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-268-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-293-      if (validFieldKeys.indexOf(k) === -1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js:294:        throw new Error(`Unknown field key "${k}" on ${type}.${key}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js-295-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/es2015.js-440-        if (node.quasis.length !== val.length + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/es2015.js:441:          throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/es2015.js-442-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-347-        if (!(0, _isValidIdentifier.default)(val, false)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js:348:          throw new TypeError(`"${val}" is not a valid identifier name`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-349-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-385-    if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name)) && node.name !== "this") {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js:386:      throw new TypeError(`"${node.name}" is not a valid identifier`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-387-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-463-        if (invalid) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js:464:          throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-465-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-654-    if (parent[listKey].length > index + 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js:655:      throw new TypeError(`RestElement must be last element of ${listKey}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-656-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-802-    if (node.declarations.length !== 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js:803:      throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js-804-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/assertNode.js-14-    const type = node && node.type || JSON.stringify(node);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/assertNode.js:15:    throw new TypeError(`Not a valid node of type "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/assertNode.js-16-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js-297-  if (!(0, _is.default)(type, node, opts)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js:298:    throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js-299-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/comments/addComments.js-9-  if (!comments || !node) return node;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/comments/addComments.js:10:  const key = `${type}Comments`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/comments/addComments.js-11-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/builders/builder.js-20-  if (countArgs > keys.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/builders/builder.js:21:    throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/builders/builder.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/clone/cloneNode.js-47-  } else if (!has(_definitions.NODE_FIELDS, type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/clone/cloneNode.js:48:    throw new Error(`Unknown node type: "${type}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/lib/clone/cloneNode.js-49-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js-16-writeFile(buildersFile, format(generateBuilders(), buildersFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js:17:console.log(`  ${chalk.green("✔")} Generated builders`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js-18-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js-20-writeFile(validatorsFile, format(generateValidators(), validatorsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js:21:console.log(`  ${chalk.green("✔")} Generated validators`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js-22-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js-24-writeFile(assertsFile, format(generateAsserts(), assertsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js:25:console.log(`  ${chalk.green("✔")} Generated asserts`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js-26-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js-28-writeFile(constantsFile, format(generateConstants(), constantsFile));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generateTypeHelpers.js:29:console.log(`  ${chalk.green("✔")} Generated constants`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/docs.js-86-        if (customTypes[key] && customTypes[key][field]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/docs.js:87:          fieldDescription.push(`: ${customTypes[key][field]}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/docs.js-88-        } else if (validator) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateBuilders.js-21-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateBuilders.js:22:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateBuilders.js-23-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateBuilders.js-37-    if (/^[A-Z]{2}/.test(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateBuilders.js:38:      output += `export { ${type} as ${lowerFirst(type)} }\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateBuilders.js-39-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateAsserts.js-20-    throw new Error(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateAsserts.js:21:      \`Expected type "\${type}" with option \${JSON.stringify((opts: any))}, \` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateAsserts.js:22:        \`but instead got "\${node.type}".\`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateAsserts.js-23-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateConstants.js-12-  Object.keys(definitions.FLIPPED_ALIAS_KEYS).forEach(type => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateConstants.js:13:    output += `export const ${type.toUpperCase()}_TYPES = FLIPPED_ALIAS_KEYS["${type}"];\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateConstants.js-14-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-109-      )}): ${NODE_PREFIX}${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:110:      `declare export { _${functionName} as ${functionName} }`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-111-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-115-for (let i = 0; i < t.TYPES.length; i++) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:116:  let decl = `declare function is${t.TYPES[i]}(node: ?Object, opts?: ?Object): boolean`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-117-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-118-  if (t.NODE_FIELDS[t.TYPES[i]]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:119:    decl += ` %checks (node instanceof ${NODE_PREFIX}${t.TYPES[i]})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-120-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-127-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:128:  `declare function createTypeAnnotationBasedOnTypeof(type: 'string' | 'number' | 'undefined' | 'boolean' | 'function' | 'object' | 'symbol'): ${NODE_PREFIX}TypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-129-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:130:  `declare function createUnionTypeAnnotation(types: Array<${NODE_PREFIX}FlowType>): ${NODE_PREFIX}UnionTypeAnnotation`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-131-  // this smells like "internal API"
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-132-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:133:  `declare function buildChildren(node: { children: Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment | ${NODE_PREFIX}JSXEmptyExpression> }): Array<${NODE_PREFIX}JSXText | ${NODE_PREFIX}JSXExpressionContainer | ${NODE_PREFIX}JSXSpreadChild | ${NODE_PREFIX}JSXElement | ${NODE_PREFIX}JSXFragment>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-134-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-154-  // converters/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:155:  `declare function ensureBlock(node: ${NODE_PREFIX}, key: string): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-156-  `declare function toBindingIdentifierName(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-157-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:158:  `declare function toBlock(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Expression, parent?: ${NODE_PREFIX}Function | null): ${NODE_PREFIX}BlockStatement`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-159-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:160:  `declare function toComputedKey(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}Expression | ${NODE_PREFIX}Identifier): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-161-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:162:  `declare function toExpression(node: ${NODE_PREFIX}ExpressionStatement | ${NODE_PREFIX}Expression | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-163-  `declare function toIdentifier(name?: ?string): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-164-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:165:  `declare function toKeyAlias(node: ${NODE_PREFIX}Method | ${NODE_PREFIX}Property, key?: ${NODE_PREFIX}): string`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-166-  // toSequenceExpression relies on types that aren't declared in flow
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-167-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:168:  `declare function toStatement(node: ${NODE_PREFIX}Statement | ${NODE_PREFIX}Class | ${NODE_PREFIX}Function | ${NODE_PREFIX}AssignmentExpression, ignore?: boolean): ${NODE_PREFIX}Statement | void`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:169:  `declare function valueToNode(value: any): ${NODE_PREFIX}Expression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-170-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-172-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:173:  `declare function removeTypeDuplicates(types: Array<${NODE_PREFIX}FlowType>): Array<${NODE_PREFIX}FlowType>`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-174-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:175:  `declare function appendToMemberExpression(member: ${NODE_PREFIX}MemberExpression, append: ${NODE_PREFIX}, computed?: boolean): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-176-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:177:  `declare function inherits<T: Node>(child: T, parent: ${NODE_PREFIX} | null | void): T`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-178-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:179:  `declare function prependToMemberExpression(member: ${NODE_PREFIX}MemberExpression, prepend: ${NODE_PREFIX}Expression): ${NODE_PREFIX}MemberExpression`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-180-  `declare function removeProperties<T>(n: T, opts: ?{}): void;`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-184-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:185:  `declare function getBindingIdentifiers(node: ${NODE_PREFIX}, duplicates: boolean, outerOnly?: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-186-  // eslint-disable-next-line max-len
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:187:  `declare function getOuterBindingIdentifiers(node: Node, duplicates: boolean): { [key: string]: ${NODE_PREFIX}Identifier | Array<${NODE_PREFIX}Identifier> }`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-188-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-235-  code += `type ${NODE_PREFIX}${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js:236:    .map(type => `${NODE_PREFIX}${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/flow.js-237-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateValidators.js-7-  return (
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateValidators.js:8:    leftArr.map(JSON.stringify).join(` === ${right} || `) + ` === ${right}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateValidators.js-9-  );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateValidators.js-72-    const newType = definitions.DEPRECATED_KEYS[type];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateValidators.js:73:    const deprecated = `console.trace("The node type ${type} has been renamed to ${newType}");`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/generateValidators.js-74-    output += addIsHelper(type, null, deprecated);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-97-    if (t.isValidIdentifier(fieldName) || alphaNumeric.test(fieldName)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:98:      struct.push(`${fieldName}: ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-99-    } else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:100:      struct.push(`"${fieldName}": ${typeAnnotation};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-101-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-110-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:111:      `export function ${toFunctionName(type)}(${args.join(", ")}): ${type};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-112-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-115-    lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:116:      `declare function _${functionName}(${args.join(", ")}): ${type};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:117:      `export { _${functionName} as ${functionName}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-118-    );
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-124-    t.NODE_FIELDS[typeName] || t.FLIPPED_ALIAS_KEYS[typeName]
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:125:      ? `node is ${typeName}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-126-      : "boolean";
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-128-  lines.push(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:129:    `export function is${typeName}(node: object | null | undefined, opts?: object | null): ${result};`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-130-    // TypeScript 3.7: https://github.com/microsoft/TypeScript/pull/32695 will allow assert declarations
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-311-  code += `/**
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:312: * @deprecated Use \`${t.DEPRECATED_KEYS[type]}\`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-313- */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-320-  code += `export type ${type} = ${types
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:321:    .map(type => `${type}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-322-    .join(" | ")};\n`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-327-for (const type in t.FLIPPED_ALIAS_KEYS) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js:328:  code += `  ${type}: ${type};\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/typescript.js-329-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/utils/stringifyValidator.js-6-  if (validator.each) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/utils/stringifyValidator.js:7:    return `Array<${stringifyValidator(validator.each, nodePrefix)}>`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/@babel/core/node_modules/@babel/types/scripts/utils/stringifyValidator.js-8-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-symbol/Makefile-8-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-symbol/Makefile:9:# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-symbol/Makefile-10-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-symbol/Makefile-50-	@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-symbol/Makefile:51:	 new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-symbol/Makefile-52-	 if printf "$$new_ver" | command grep -q '^[0-9]'; then \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-symbol/Makefile-55-	 else \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-symbol/Makefile:56:	   new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/is-symbol/Makefile-57-	 fi; \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/levn/README.md-105-* `{key1: val1, key2: val2, ...}` is an Object, and the casting procedure is recursively applied to each property. Eg. `{a: 1, b: 2}` is `{a: 1, b: 2}`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/levn/README.md:106:* Any test which does not fall under the above, and which does not contain special characters (`[``]``(``)``{``}``:``,`) is a string, eg. `$12- blah` is `"$12- blah"`.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/levn/README.md-107-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/y18n/README.md-32-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/y18n/README.md:33:console.log(__`my awesome string ${str}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/y18n/README.md-34-```
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array-includes/node_modules/es-to-primitive/Makefile-8-# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array-includes/node_modules/es-to-primitive/Makefile:9:# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array-includes/node_modules/es-to-primitive/Makefile-10-# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array-includes/node_modules/es-to-primitive/Makefile-50-	@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array-includes/node_modules/es-to-primitive/Makefile:51:	 new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array-includes/node_modules/es-to-primitive/Makefile-52-	 if printf "$$new_ver" | command grep -q '^[0-9]'; then \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array-includes/node_modules/es-to-primitive/Makefile-55-	 else \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array-includes/node_modules/es-to-primitive/Makefile:56:	   new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/array-includes/node_modules/es-to-primitive/Makefile-57-	 fi; \
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs.map:1:{"version":3,"file":"index.mjs","sources":["src/get-innermost-scope.js","src/find-variable.js","src/token-predicate.js","src/get-function-head-location.js","src/get-static-value.js","src/get-string-if-constant.js","src/get-property-name.js","src/get-function-name-with-kind.js","src/has-side-effect.js","src/is-parenthesized.js","src/pattern-matcher.js","src/reference-tracker.js","src/index.js"],"sourcesContent":["/**\n * Get the innermost scope which contains a given location.\n * @param {Scope} initialScope The initial scope to search.\n * @param {Node} node The location to search.\n * @returns {Scope} The innermost scope.\n */\nexport function getInnermostScope(initialScope, node) {\n    const location = node.range[0]\n\n    let scope = initialScope\n    let found = false\n    do {\n        found = false\n        for (const childScope of scope.childScopes) {\n            const range = childScope.block.range\n\n            if (range[0] <= location && location < range[1]) {\n                scope = childScope\n                found = true\n                break\n            }\n        }\n    } while (found)\n\n    return scope\n}\n","import { getInnermostScope } from \"./get-innermost-scope\"\n\n/**\n * Find the variable of a given name.\n * @param {Scope} initialScope The scope to start finding.\n * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node.\n * @returns {Variable|null} The found variable or null.\n */\nexport function findVariable(initialScope, nameOrNode) {\n    let name = \"\"\n    let scope = initialScope\n\n    if (typeof nameOrNode === \"string\") {\n        name = nameOrNode\n    } else {\n        name = nameOrNode.name\n        scope = getInnermostScope(scope, nameOrNode)\n    }\n\n    while (scope != null) {\n        const variable = scope.set.get(name)\n        if (variable != null) {\n            return variable\n        }\n        scope = scope.upper\n    }\n\n    return null\n}\n","/**\n * Negate the result of `this` calling.\n * @param {Token} token The token to check.\n * @returns {boolean} `true` if the result of `this(token)` is `false`.\n */\nfunction negate0(token) {\n    return !this(token) //eslint-disable-line no-invalid-this\n}\n\n/**\n * Creates the negate function of the given function.\n * @param {function(Token):boolean} f - The function to negate.\n * @returns {function(Token):boolean} Negated function.\n */\nfunction negate(f) {\n    return negate0.bind(f)\n}\n\n/**\n * Checks if the given token is an arrow token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an arrow token.\n */\nexport function isArrowToken(token) {\n    return token.value === \"=>\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a comma token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comma token.\n */\nexport function isCommaToken(token) {\n    return token.value === \",\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a semicolon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a semicolon token.\n */\nexport function isSemicolonToken(token) {\n    return token.value === \";\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a colon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a colon token.\n */\nexport function isColonToken(token) {\n    return token.value === \":\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening parenthesis token.\n */\nexport function isOpeningParenToken(token) {\n    return token.value === \"(\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing parenthesis token.\n */\nexport function isClosingParenToken(token) {\n    return token.value === \")\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening square bracket token.\n */\nexport function isOpeningBracketToken(token) {\n    return token.value === \"[\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing square bracket token.\n */\nexport function isClosingBracketToken(token) {\n    return token.value === \"]\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening brace token.\n */\nexport function isOpeningBraceToken(token) {\n    return token.value === \"{\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing brace token.\n */\nexport function isClosingBraceToken(token) {\n    return token.value === \"}\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a comment token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comment token.\n */\nexport function isCommentToken(token) {\n    return (\n        token.type === \"Line\" ||\n        token.type === \"Block\" ||\n        token.type === \"Shebang\"\n    )\n}\n\nexport const isNotArrowToken = negate(isArrowToken)\nexport const isNotCommaToken = negate(isCommaToken)\nexport const isNotSemicolonToken = negate(isSemicolonToken)\nexport const isNotColonToken = negate(isColonToken)\nexport const isNotOpeningParenToken = negate(isOpeningParenToken)\nexport const isNotClosingParenToken = negate(isClosingParenToken)\nexport const isNotOpeningBracketToken = negate(isOpeningBracketToken)\nexport const isNotClosingBracketToken = negate(isClosingBracketToken)\nexport const isNotOpeningBraceToken = negate(isOpeningBraceToken)\nexport const isNotClosingBraceToken = negate(isClosingBraceToken)\nexport const isNotCommentToken = negate(isCommentToken)\n","import { isArrowToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the `(` token of the given function node.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {Token} `(` token.\n */\nfunction getOpeningParenOfParams(node, sourceCode) {\n    return node.id\n        ? sourceCode.getTokenAfter(node.id, isOpeningParenToken)\n        : sourceCode.getFirstToken(node, isOpeningParenToken)\n}\n\n/**\n * Get the location of the given function node for reporting.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {string} The location of the function node for reporting.\n */\nexport function getFunctionHeadLocation(node, sourceCode) {\n    const parent = node.parent\n    let start = null\n    let end = null\n\n    if (node.type === \"ArrowFunctionExpression\") {\n        const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken)\n\n        start = arrowToken.loc.start\n        end = arrowToken.loc.end\n    } else if (\n        parent.type === \"Property\" ||\n        parent.type === \"MethodDefinition\"\n    ) {\n        start = parent.loc.start\n        end = getOpeningParenOfParams(node, sourceCode).loc.start\n    } else {\n        start = node.loc.start\n        end = getOpeningParenOfParams(node, sourceCode).loc.start\n    }\n\n    return {\n        start: Object.assign({}, start),\n        end: Object.assign({}, end),\n    }\n}\n","/* globals BigInt, globalThis, global, self, window */\n\nimport { findVariable } from \"./find-variable\"\n\nconst globalObject =\n    typeof globalThis !== \"undefined\"\n        ? globalThis\n        : typeof self !== \"undefined\"\n        ? self\n        : typeof window !== \"undefined\"\n        ? window\n        : typeof global !== \"undefined\"\n        ? global\n        : {}\n\nconst builtinNames = Object.freeze(\n    new Set([\n        \"Array\",\n        \"ArrayBuffer\",\n        \"BigInt\",\n        \"BigInt64Array\",\n        \"BigUint64Array\",\n        \"Boolean\",\n        \"DataView\",\n        \"Date\",\n        \"decodeURI\",\n        \"decodeURIComponent\",\n        \"encodeURI\",\n        \"encodeURIComponent\",\n        \"escape\",\n        \"Float32Array\",\n        \"Float64Array\",\n        \"Function\",\n        \"Infinity\",\n        \"Int16Array\",\n        \"Int32Array\",\n        \"Int8Array\",\n        \"isFinite\",\n        \"isNaN\",\n        \"isPrototypeOf\",\n        \"JSON\",\n        \"Map\",\n        \"Math\",\n        \"NaN\",\n        \"Number\",\n        \"Object\",\n        \"parseFloat\",\n        \"parseInt\",\n        \"Promise\",\n        \"Proxy\",\n        \"Reflect\",\n        \"RegExp\",\n        \"Set\",\n        \"String\",\n        \"Symbol\",\n        \"Uint16Array\",\n        \"Uint32Array\",\n        \"Uint8Array\",\n        \"Uint8ClampedArray\",\n        \"undefined\",\n        \"unescape\",\n        \"WeakMap\",\n        \"WeakSet\",\n    ])\n)\nconst callAllowed = new Set(\n    [\n        Array.isArray,\n        typeof BigInt === \"function\" ? BigInt : undefined,\n        Boolean,\n        Date,\n        Date.parse,\n        decodeURI,\n        decodeURIComponent,\n        encodeURI,\n        encodeURIComponent,\n        escape,\n        isFinite,\n        isNaN,\n        isPrototypeOf,\n        ...Object.getOwnPropertyNames(Math)\n            .map(k => Math[k])\n            .filter(f => typeof f === \"function\"),\n        Number,\n        Number.isFinite,\n        Number.isNaN,\n        Number.parseFloat,\n        Number.parseInt,\n        Object,\n        Object.entries,\n        Object.is,\n        Object.isExtensible,\n        Object.isFrozen,\n        Object.isSealed,\n        Object.keys,\n        Object.values,\n        parseFloat,\n        parseInt,\n        RegExp,\n        String,\n        String.fromCharCode,\n        String.fromCodePoint,\n        String.raw,\n        Symbol,\n        Symbol.for,\n        Symbol.keyFor,\n        unescape,\n    ].filter(f => typeof f === \"function\")\n)\nconst callPassThrough = new Set([\n    Object.freeze,\n    Object.preventExtensions,\n    Object.seal,\n])\n\n/**\n * Get the property descriptor.\n * @param {object} object The object to get.\n * @param {string|number|symbol} name The property name to get.\n */\nfunction getPropertyDescriptor(object, name) {\n    let x = object\n    while ((typeof x === \"object\" || typeof x === \"function\") && x !== null) {\n        const d = Object.getOwnPropertyDescriptor(x, name)\n        if (d) {\n            return d\n        }\n        x = Object.getPrototypeOf(x)\n    }\n    return null\n}\n\n/**\n * Check if a property is getter or not.\n * @param {object} object The object to check.\n * @param {string|number|symbol} name The property name to check.\n */\nfunction isGetter(object, name) {\n    const d = getPropertyDescriptor(object, name)\n    return d != null && d.get != null\n}\n\n/**\n * Get the element values of a given node list.\n * @param {Node[]} nodeList The node list to get values.\n * @param {Scope|undefined} initialScope The initial scope to find variables.\n * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null.\n */\nfunction getElementValues(nodeList, initialScope) {\n    const valueList = []\n\n    for (let i = 0; i < nodeList.length; ++i) {\n        const elementNode = nodeList[i]\n\n        if (elementNode == null) {\n            valueList.length = i + 1\n        } else if (elementNode.type === \"SpreadElement\") {\n            const argument = getStaticValueR(elementNode.argument, initialScope)\n            if (argument == null) {\n                return null\n            }\n            valueList.push(...argument.value)\n        } else {\n            const element = getStaticValueR(elementNode, initialScope)\n            if (element == null) {\n                return null\n            }\n            valueList.push(element.value)\n        }\n    }\n\n    return valueList\n}\n\nconst operations = Object.freeze({\n    ArrayExpression(node, initialScope) {\n        const elements = getElementValues(node.elements, initialScope)\n        return elements != null ? { value: elements } : null\n    },\n\n    AssignmentExpression(node, initialScope) {\n        if (node.operator === \"=\") {\n            return getStaticValueR(node.right, initialScope)\n        }\n        return null\n    },\n\n    //eslint-disable-next-line complexity\n    BinaryExpression(node, initialScope) {\n        if (node.operator === \"in\" || node.operator === \"instanceof\") {\n            // Not supported.\n            return null\n        }\n\n        const left = getStaticValueR(node.left, initialScope)\n        const right = getStaticValueR(node.right, initialScope)\n        if (left != null && right != null) {\n            switch (node.operator) {\n                case \"==\":\n                    return { value: left.value == right.value } //eslint-disable-line eqeqeq\n                case \"!=\":\n                    return { value: left.value != right.value } //eslint-disable-line eqeqeq\n                case \"===\":\n                    return { value: left.value === right.value }\n                case \"!==\":\n                    return { value: left.value !== right.value }\n                case \"<\":\n                    return { value: left.value < right.value }\n                case \"<=\":\n                    return { value: left.value <= right.value }\n                case \">\":\n                    return { value: left.value > right.value }\n                case \">=\":\n                    return { value: left.value >= right.value }\n                case \"<<\":\n                    return { value: left.value << right.value }\n                case \">>\":\n                    return { value: left.value >> right.value }\n                case \">>>\":\n                    return { value: left.value >>> right.value }\n                case \"+\":\n                    return { value: left.value + right.value }\n                case \"-\":\n                    return { value: left.value - right.value }\n                case \"*\":\n                    return { value: left.value * right.value }\n                case \"/\":\n                    return { value: left.value / right.value }\n                case \"%\":\n                    return { value: left.value % right.value }\n                case \"**\":\n                    return { value: Math.pow(left.value, right.value) }\n                case \"|\":\n                    return { value: left.value | right.value }\n                case \"^\":\n                    return { value: left.value ^ right.value }\n                case \"&\":\n                    return { value: left.value & right.value }\n\n                // no default\n            }\n        }\n\n        return null\n    },\n\n    CallExpression(node, initialScope) {\n        const calleeNode = node.callee\n        const args = getElementValues(node.arguments, initialScope)\n\n        if (args != null) {\n            if (calleeNode.type === \"MemberExpression\") {\n                const object = getStaticValueR(calleeNode.object, initialScope)\n                const property = calleeNode.computed\n                    ? getStaticValueR(calleeNode.property, initialScope)\n                    : { value: calleeNode.property.name }\n\n                if (object != null && property != null) {\n                    const receiver = object.value\n                    const methodName = property.value\n                    if (callAllowed.has(receiver[methodName])) {\n                        return { value: receiver[methodName](...args) }\n                    }\n                    if (callPassThrough.has(receiver[methodName])) {\n                        return { value: args[0] }\n                    }\n                }\n            } else {\n                const callee = getStaticValueR(calleeNode, initialScope)\n                if (callee != null) {\n                    const func = callee.value\n                    if (callAllowed.has(func)) {\n                        return { value: func(...args) }\n                    }\n                    if (callPassThrough.has(func)) {\n                        return { value: args[0] }\n                    }\n                }\n            }\n        }\n\n        return null\n    },\n\n    ConditionalExpression(node, initialScope) {\n        const test = getStaticValueR(node.test, initialScope)\n        if (test != null) {\n            return test.value\n                ? getStaticValueR(node.consequent, initialScope)\n                : getStaticValueR(node.alternate, initialScope)\n        }\n        return null\n    },\n\n    ExpressionStatement(node, initialScope) {\n        return getStaticValueR(node.expression, initialScope)\n    },\n\n    Identifier(node, initialScope) {\n        if (initialScope != null) {\n            const variable = findVariable(initialScope, node)\n\n            // Built-in globals.\n            if (\n                variable != null &&\n                variable.defs.length === 0 &&\n                builtinNames.has(variable.name) &&\n                variable.name in globalObject\n            ) {\n                return { value: globalObject[variable.name] }\n            }\n\n            // Constants.\n            if (variable != null && variable.defs.length === 1) {\n                const def = variable.defs[0]\n                if (\n                    def.parent &&\n                    def.parent.kind === \"const\" &&\n                    // TODO(mysticatea): don't support destructuring here.\n                    def.node.id.type === \"Identifier\"\n                ) {\n                    return getStaticValueR(def.node.init, initialScope)\n                }\n            }\n        }\n        return null\n    },\n\n    Literal(node) {\n        //istanbul ignore if : this is implementation-specific behavior.\n        if ((node.regex != null || node.bigint != null) && node.value == null) {\n            // It was a RegExp/BigInt literal, but Node.js didn't support it.\n            return null\n        }\n        return { value: node.value }\n    },\n\n    LogicalExpression(node, initialScope) {\n        const left = getStaticValueR(node.left, initialScope)\n        if (left != null) {\n            if (\n                (node.operator === \"||\" && Boolean(left.value) === true) ||\n                (node.operator === \"&&\" && Boolean(left.value) === false)\n            ) {\n                return left\n            }\n\n            const right = getStaticValueR(node.right, initialScope)\n            if (right != null) {\n                return right\n            }\n        }\n\n        return null\n    },\n\n    MemberExpression(node, initialScope) {\n        const object = getStaticValueR(node.object, initialScope)\n        const property = node.computed\n            ? getStaticValueR(node.property, initialScope)\n            : { value: node.property.name }\n\n        if (\n            object != null &&\n            property != null &&\n            !isGetter(object.value, property.value)\n        ) {\n            return { value: object.value[property.value] }\n        }\n        return null\n    },\n\n    NewExpression(node, initialScope) {\n        const callee = getStaticValueR(node.callee, initialScope)\n        const args = getElementValues(node.arguments, initialScope)\n\n        if (callee != null && args != null) {\n            const Func = callee.value\n            if (callAllowed.has(Func)) {\n                return { value: new Func(...args) }\n            }\n        }\n\n        return null\n    },\n\n    ObjectExpression(node, initialScope) {\n        const object = {}\n\n        for (const propertyNode of node.properties) {\n            if (propertyNode.type === \"Property\") {\n                if (propertyNode.kind !== \"init\") {\n                    return null\n                }\n                const key = propertyNode.computed\n                    ? getStaticValueR(propertyNode.key, initialScope)\n                    : { value: propertyNode.key.name }\n                const value = getStaticValueR(propertyNode.value, initialScope)\n                if (key == null || value == null) {\n                    return null\n                }\n                object[key.value] = value.value\n            } else if (\n                propertyNode.type === \"SpreadElement\" ||\n                propertyNode.type === \"ExperimentalSpreadProperty\"\n            ) {\n                const argument = getStaticValueR(\n                    propertyNode.argument,\n                    initialScope\n                )\n                if (argument == null) {\n                    return null\n                }\n                Object.assign(object, argument.value)\n            } else {\n                return null\n            }\n        }\n\n        return { value: object }\n    },\n\n    SequenceExpression(node, initialScope) {\n        const last = node.expressions[node.expressions.length - 1]\n        return getStaticValueR(last, initialScope)\n    },\n\n    TaggedTemplateExpression(node, initialScope) {\n        const tag = getStaticValueR(node.tag, initialScope)\n        const expressions = getElementValues(\n            node.quasi.expressions,\n            initialScope\n        )\n\n        if (tag != null && expressions != null) {\n            const func = tag.value\n            const strings = node.quasi.quasis.map(q => q.value.cooked)\n            strings.raw = node.quasi.quasis.map(q => q.value.raw)\n\n            if (func === String.raw) {\n                return { value: func(strings, ...expressions) }\n            }\n        }\n\n        return null\n    },\n\n    TemplateLiteral(node, initialScope) {\n        const expressions = getElementValues(node.expressions, initialScope)\n        if (expressions != null) {\n            let value = node.quasis[0].value.cooked\n            for (let i = 0; i < expressions.length; ++i) {\n                value += expressions[i]\n                value += node.quasis[i + 1].value.cooked\n            }\n            return { value }\n        }\n        return null\n    },\n\n    UnaryExpression(node, initialScope) {\n        if (node.operator === \"delete\") {\n            // Not supported.\n            return null\n        }\n        if (node.operator === \"void\") {\n            return { value: undefined }\n        }\n\n        const arg = getStaticValueR(node.argument, initialScope)\n        if (arg != null) {\n            switch (node.operator) {\n                case \"-\":\n                    return { value: -arg.value }\n                case \"+\":\n                    return { value: +arg.value } //eslint-disable-line no-implicit-coercion\n                case \"!\":\n                    return { value: !arg.value }\n                case \"~\":\n                    return { value: ~arg.value }\n                case \"typeof\":\n                    return { value: typeof arg.value }\n\n                // no default\n            }\n        }\n\n        return null\n    },\n})\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope|undefined} initialScope The scope to start finding variable.\n * @returns {{value:any}|null} The static value of the node, or `null`.\n */\nfunction getStaticValueR(node, initialScope) {\n    if (node != null && Object.hasOwnProperty.call(operations, node.type)) {\n        return operations[node.type](node, initialScope)\n    }\n    return null\n}\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible.\n * @returns {{value:any}|null} The static value of the node, or `null`.\n */\nexport function getStaticValue(node, initialScope = null) {\n    try {\n        return getStaticValueR(node, initialScope)\n    } catch (_error) {\n        return null\n    }\n}\n","import { getStaticValue } from \"./get-static-value\"\n\n/**\n * Get the value of a given node if it's a literal or a template literal.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant.\n * @returns {string|null} The value of the node, or `null`.\n */\nexport function getStringIfConstant(node, initialScope = null) {\n    // Handle the literals that the platform doesn't support natively.\n    if (node && node.type === \"Literal\" && node.value === null) {\n        if (node.regex) {\n            return `/${node.regex.pattern}/${node.regex.flags}`\n        }\n        if (node.bigint) {\n            return node.bigint\n        }\n    }\n\n    const evaluated = getStaticValue(node, initialScope)\n    return evaluated && String(evaluated.value)\n}\n","import { getStringIfConstant } from \"./get-string-if-constant\"\n\n/**\n * Get the property name from a MemberExpression node or a Property node.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.\n * @returns {string|null} The property name of the node.\n */\nexport function getPropertyName(node, initialScope) {\n    switch (node.type) {\n        case \"MemberExpression\":\n            if (node.computed) {\n                return getStringIfConstant(node.property, initialScope)\n            }\n            return node.property.name\n\n        case \"Property\":\n        case \"MethodDefinition\":\n            if (node.computed) {\n                return getStringIfConstant(node.key, initialScope)\n            }\n            if (node.key.type === \"Literal\") {\n                return String(node.key.value)\n            }\n            return node.key.name\n\n        // no default\n    }\n\n    return null\n}\n","import { getPropertyName } from \"./get-property-name\"\n\n/**\n * Get the name and kind of the given function node.\n * @param {ASTNode} node - The function node to get.\n * @returns {string} The name and kind of the function node.\n */\nexport function getFunctionNameWithKind(node) {\n    const parent = node.parent\n    const tokens = []\n\n    if (parent.type === \"MethodDefinition\" && parent.static) {\n        tokens.push(\"static\")\n    }\n    if (node.async) {\n        tokens.push(\"async\")\n    }\n    if (node.generator) {\n        tokens.push(\"generator\")\n    }\n\n    if (node.type === \"ArrowFunctionExpression\") {\n        tokens.push(\"arrow\", \"function\")\n    } else if (\n        parent.type === \"Property\" ||\n        parent.type === \"MethodDefinition\"\n    ) {\n        if (parent.kind === \"constructor\") {\n            return \"constructor\"\n        }\n        if (parent.kind === \"get\") {\n            tokens.push(\"getter\")\n        } else if (parent.kind === \"set\") {\n            tokens.push(\"setter\")\n        } else {\n            tokens.push(\"method\")\n        }\n    } else {\n        tokens.push(\"function\")\n    }\n\n    if (node.id) {\n        tokens.push(`'${node.id.name}'`)\n    } else {\n        const name = getPropertyName(parent)\n\n        if (name) {\n            tokens.push(`'${name}'`)\n        }\n    }\n\n    return tokens.join(\" \")\n}\n","import evk from \"eslint-visitor-keys\"\n\nconst typeConversionBinaryOps = Object.freeze(\n    new Set([\n        \"==\",\n        \"!=\",\n        \"<\",\n        \"<=\",\n        \">\",\n        \">=\",\n        \"<<\",\n        \">>\",\n        \">>>\",\n        \"+\",\n        \"-\",\n        \"*\",\n        \"/\",\n        \"%\",\n        \"|\",\n        \"^\",\n        \"&\",\n        \"in\",\n    ])\n)\nconst typeConversionUnaryOps = Object.freeze(new Set([\"-\", \"+\", \"!\", \"~\"]))\nconst visitor = Object.freeze(\n    Object.assign(Object.create(null), {\n        $visit(node, options, visitorKeys) {\n            const { type } = node\n\n            if (typeof this[type] === \"function\") {\n                return this[type](node, options, visitorKeys)\n            }\n\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n\n        $visitChildren(node, options, visitorKeys) {\n            const { type } = node\n\n            for (const key of visitorKeys[type] || evk.getKeys(node)) {\n                const value = node[key]\n\n                if (Array.isArray(value)) {\n                    for (const element of value) {\n                        if (\n                            element &&\n                            this.$visit(element, options, visitorKeys)\n                        ) {\n                            return true\n                        }\n                    }\n                } else if (value && this.$visit(value, options, visitorKeys)) {\n                    return true\n                }\n            }\n\n            return false\n        },\n\n        ArrowFunctionExpression() {\n            return false\n        },\n        AssignmentExpression() {\n            return true\n        },\n        AwaitExpression() {\n            return true\n        },\n        BinaryExpression(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                typeConversionBinaryOps.has(node.operator) &&\n                (node.left.type !== \"Literal\" || node.right.type !== \"Literal\")\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        CallExpression() {\n            return true\n        },\n        FunctionExpression() {\n            return false\n        },\n        ImportExpression() {\n            return true\n        },\n        MemberExpression(node, options, visitorKeys) {\n            if (options.considerGetters) {\n                return true\n            }\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.property.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        MethodDefinition(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.key.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        NewExpression() {\n            return true\n        },\n        Property(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.key.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        UnaryExpression(node, options, visitorKeys) {\n            if (node.operator === \"delete\") {\n                return true\n            }\n            if (\n                options.considerImplicitTypeConversion &&\n                typeConversionUnaryOps.has(node.operator) &&\n                node.argument.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        UpdateExpression() {\n            return true\n        },\n        YieldExpression() {\n            return true\n        },\n    })\n)\n\n/**\n * Check whether a given node has any side effect or not.\n * @param {Node} node The node to get.\n * @param {SourceCode} sourceCode The source code object.\n * @param {object} [options] The option object.\n * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects.\n * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects.\n * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`.\n * @returns {boolean} `true` if the node has a certain side effect.\n */\nexport function hasSideEffect(\n    node,\n    sourceCode,\n    { considerGetters = false, considerImplicitTypeConversion = false } = {}\n) {\n    return visitor.$visit(\n        node,\n        { considerGetters, considerImplicitTypeConversion },\n        sourceCode.visitorKeys || evk.KEYS\n    )\n}\n","import { isClosingParenToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the left parenthesis of the parent node syntax if it exists.\n * E.g., `if (a) {}` then the `(`.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {Token|null} The left parenthesis of the parent node syntax\n */\nfunction getParentSyntaxParen(node, sourceCode) {\n    const parent = node.parent\n\n    switch (parent.type) {\n        case \"CallExpression\":\n        case \"NewExpression\":\n            if (parent.arguments.length === 1 && parent.arguments[0] === node) {\n                return sourceCode.getTokenAfter(\n                    parent.callee,\n                    isOpeningParenToken\n                )\n            }\n            return null\n\n        case \"DoWhileStatement\":\n            if (parent.test === node) {\n                return sourceCode.getTokenAfter(\n                    parent.body,\n                    isOpeningParenToken\n                )\n            }\n            return null\n\n        case \"IfStatement\":\n        case \"WhileStatement\":\n            if (parent.test === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"ImportExpression\":\n            if (parent.source === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"SwitchStatement\":\n            if (parent.discriminant === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"WithStatement\":\n            if (parent.object === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        default:\n            return null\n    }\n}\n\n/**\n * Check whether a given node is parenthesized or not.\n * @param {number} times The number of parantheses.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized the given times.\n */\n/**\n * Check whether a given node is parenthesized or not.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized.\n */\nexport function isParenthesized(\n    timesOrNode,\n    nodeOrSourceCode,\n    optionalSourceCode\n) {\n    let times, node, sourceCode, maybeLeftParen, maybeRightParen\n    if (typeof timesOrNode === \"number\") {\n        times = timesOrNode | 0\n        node = nodeOrSourceCode\n        sourceCode = optionalSourceCode\n        if (!(times >= 1)) {\n            throw new TypeError(\"'times' should be a positive integer.\")\n        }\n    } else {\n        times = 1\n        node = timesOrNode\n        sourceCode = nodeOrSourceCode\n    }\n\n    if (node == null) {\n        return false\n    }\n\n    maybeLeftParen = maybeRightParen = node\n    do {\n        maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen)\n        maybeRightParen = sourceCode.getTokenAfter(maybeRightParen)\n    } while (\n        maybeLeftParen != null &&\n        maybeRightParen != null &&\n        isOpeningParenToken(maybeLeftParen) &&\n        isClosingParenToken(maybeRightParen) &&\n        // Avoid false positive such as `if (a) {}`\n        maybeLeftParen !== getParentSyntaxParen(node, sourceCode) &&\n        --times > 0\n    )\n\n    return times === 0\n}\n","/**\n * @author Toru Nagashima <https://github.com/mysticatea>\n * See LICENSE file in root directory for full license.\n */\n\nconst placeholder = /\\$(?:[$&`']|[1-9][0-9]?)/gu\n\n/** @type {WeakMap<PatternMatcher, {pattern:RegExp,escaped:boolean}>} */\nconst internal = new WeakMap()\n\n/**\n * Check whether a given character is escaped or not.\n * @param {string} str The string to check.\n * @param {number} index The location of the character to check.\n * @returns {boolean} `true` if the character is escaped.\n */\nfunction isEscaped(str, index) {\n    let escaped = false\n    for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) {\n        escaped = !escaped\n    }\n    return escaped\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {string} replacement The new substring to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceS(matcher, str, replacement) {\n    const chunks = []\n    let index = 0\n\n    /** @type {RegExpExecArray} */\n    let match = null\n\n    /**\n     * @param {string} key The placeholder.\n     * @returns {string} The replaced string.\n     */\n    function replacer(key) {\n        switch (key) {\n            case \"$$\":\n                return \"$\"\n            case \"$&\":\n                return match[0]\n            case \"$`\":\n                return str.slice(0, match.index)\n            case \"$'\":\n                return str.slice(match.index + match[0].length)\n            default: {\n                const i = key.slice(1)\n                if (i in match) {\n                    return match[i]\n                }\n                return key\n            }\n        }\n    }\n\n    for (match of matcher.execAll(str)) {\n        chunks.push(str.slice(index, match.index))\n        chunks.push(replacement.replace(placeholder, replacer))\n        index = match.index + match[0].length\n    }\n    chunks.push(str.slice(index))\n\n    return chunks.join(\"\")\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {(...strs[])=>string} replace The function to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceF(matcher, str, replace) {\n    const chunks = []\n    let index = 0\n\n    for (const match of matcher.execAll(str)) {\n        chunks.push(str.slice(index, match.index))\n        chunks.push(String(replace(...match, match.index, match.input)))\n        index = match.index + match[0].length\n    }\n    chunks.push(str.slice(index))\n\n    return chunks.join(\"\")\n}\n\n/**\n * The class to find patterns as considering escape sequences.\n */\nexport class PatternMatcher {\n    /**\n     * Initialize this matcher.\n     * @param {RegExp} pattern The pattern to match.\n     * @param {{escaped:boolean}} options The options.\n     */\n    constructor(pattern, { escaped = false } = {}) {\n        if (!(pattern instanceof RegExp)) {\n            throw new TypeError(\"'pattern' should be a RegExp instance.\")\n        }\n        if (!pattern.flags.includes(\"g\")) {\n            throw new Error(\"'pattern' should contains 'g' flag.\")\n        }\n\n        internal.set(this, {\n            pattern: new RegExp(pattern.source, pattern.flags),\n            escaped: Boolean(escaped),\n        })\n    }\n\n    /**\n     * Find the pattern in a given string.\n     * @param {string} str The string to find.\n     * @returns {IterableIterator<RegExpExecArray>} The iterator which iterate the matched information.\n     */\n    *execAll(str) {\n        const { pattern, escaped } = internal.get(this)\n        let match = null\n        let lastIndex = 0\n\n        pattern.lastIndex = 0\n        while ((match = pattern.exec(str)) != null) {\n            if (escaped || !isEscaped(str, match.index)) {\n                lastIndex = pattern.lastIndex\n                yield match\n                pattern.lastIndex = lastIndex\n            }\n        }\n    }\n\n    /**\n     * Check whether the pattern is found in a given string.\n     * @param {string} str The string to check.\n     * @returns {boolean} `true` if the pattern was found in the string.\n     */\n    test(str) {\n        const it = this.execAll(str)\n        const ret = it.next()\n        return !ret.done\n    }\n\n    /**\n     * Replace a given string.\n     * @param {string} str The string to be replaced.\n     * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`.\n     * @returns {string} The replaced string.\n     */\n    [Symbol.replace](str, replacer) {\n        return typeof replacer === \"function\"\n            ? replaceF(this, String(str), replacer)\n            : replaceS(this, String(str), String(replacer))\n    }\n}\n","import { findVariable } from \"./find-variable\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\n\nconst IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u\nconst has = Function.call.bind(Object.hasOwnProperty)\n\nexport const READ = Symbol(\"read\")\nexport const CALL = Symbol(\"call\")\nexport const CONSTRUCT = Symbol(\"construct\")\nexport const ESM = Symbol(\"esm\")\n\nconst requireCall = { require: { [CALL]: true } }\n\n/**\n * Check whether a given variable is modified or not.\n * @param {Variable} variable The variable to check.\n * @returns {boolean} `true` if the variable is modified.\n */\nfunction isModifiedGlobal(variable) {\n    return (\n        variable == null ||\n        variable.defs.length !== 0 ||\n        variable.references.some(r => r.isWrite())\n    )\n}\n\n/**\n * Check if the value of a given node is passed through to the parent syntax as-is.\n * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.\n * @param {Node} node A node to check.\n * @returns {boolean} `true` if the node is passed through.\n */\nfunction isPassThrough(node) {\n    const parent = node.parent\n\n    switch (parent && parent.type) {\n        case \"ConditionalExpression\":\n            return parent.consequent === node || parent.alternate === node\n        case \"LogicalExpression\":\n            return true\n        case \"SequenceExpression\":\n            return parent.expressions[parent.expressions.length - 1] === node\n\n        default:\n            return false\n    }\n}\n\n/**\n * The reference tracker.\n */\nexport class ReferenceTracker {\n    /**\n     * Initialize this tracker.\n     * @param {Scope} globalScope The global scope.\n     * @param {object} [options] The options.\n     * @param {\"legacy\"|\"strict\"} [options.mode=\"strict\"] The mode to determine the ImportDeclaration's behavior for CJS modules.\n     * @param {string[]} [options.globalObjectNames=[\"global\",\"self\",\"window\"]] The variable names for Global Object.\n     */\n    constructor(\n        globalScope,\n        {\n            mode = \"strict\",\n            globalObjectNames = [\"global\", \"self\", \"window\"],\n        } = {}\n    ) {\n        this.variableStack = []\n        this.globalScope = globalScope\n        this.mode = mode\n        this.globalObjectNames = globalObjectNames.slice(0)\n    }\n\n    /**\n     * Iterate the references of global variables.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateGlobalReferences(traceMap) {\n        for (const key of Object.keys(traceMap)) {\n            const nextTraceMap = traceMap[key]\n            const path = [key]\n            const variable = this.globalScope.set.get(key)\n\n            if (isModifiedGlobal(variable)) {\n                continue\n            }\n\n            yield* this._iterateVariableReferences(\n                variable,\n                path,\n                nextTraceMap,\n                true\n            )\n        }\n\n        for (const key of this.globalObjectNames) {\n            const path = []\n            const variable = this.globalScope.set.get(key)\n\n            if (isModifiedGlobal(variable)) {\n                continue\n            }\n\n            yield* this._iterateVariableReferences(\n                variable,\n                path,\n                traceMap,\n                false\n            )\n        }\n    }\n\n    /**\n     * Iterate the references of CommonJS modules.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateCjsReferences(traceMap) {\n        for (const { node } of this.iterateGlobalReferences(requireCall)) {\n            const key = getStringIfConstant(node.arguments[0])\n            if (key == null || !has(traceMap, key)) {\n                continue\n            }\n\n            const nextTraceMap = traceMap[key]\n            const path = [key]\n\n            if (nextTraceMap[READ]) {\n                yield {\n                    node,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n            yield* this._iteratePropertyReferences(node, path, nextTraceMap)\n        }\n    }\n\n    /**\n     * Iterate the references of ES modules.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateEsmReferences(traceMap) {\n        const programNode = this.globalScope.block\n\n        for (const node of programNode.body) {\n            if (!IMPORT_TYPE.test(node.type) || node.source == null) {\n                continue\n            }\n            const moduleId = node.source.value\n\n            if (!has(traceMap, moduleId)) {\n                continue\n            }\n            const nextTraceMap = traceMap[moduleId]\n            const path = [moduleId]\n\n            if (nextTraceMap[READ]) {\n                yield { node, path, type: READ, info: nextTraceMap[READ] }\n            }\n\n            if (node.type === \"ExportAllDeclaration\") {\n                for (const key of Object.keys(nextTraceMap)) {\n                    const exportTraceMap = nextTraceMap[key]\n                    if (exportTraceMap[READ]) {\n                        yield {\n                            node,\n                            path: path.concat(key),\n                            type: READ,\n                            info: exportTraceMap[READ],\n                        }\n                    }\n                }\n            } else {\n                for (const specifier of node.specifiers) {\n                    const esm = has(nextTraceMap, ESM)\n                    const it = this._iterateImportReferences(\n                        specifier,\n                        path,\n                        esm\n                            ? nextTraceMap\n                            : this.mode === \"legacy\"\n                            ? Object.assign(\n                                  { default: nextTraceMap },\n                                  nextTraceMap\n                              )\n                            : { default: nextTraceMap }\n                    )\n\n                    if (esm) {\n                        yield* it\n                    } else {\n                        for (const report of it) {\n                            report.path = report.path.filter(exceptDefault)\n                            if (\n                                report.path.length >= 2 ||\n                                report.type !== READ\n                            ) {\n                                yield report\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * Iterate the references for a given variable.\n     * @param {Variable} variable The variable to iterate that references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @param {boolean} shouldReport = The flag to report those references.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateVariableReferences(variable, path, traceMap, shouldReport) {\n        if (this.variableStack.includes(variable)) {\n            return\n        }\n        this.variableStack.push(variable)\n        try {\n            for (const reference of variable.references) {\n                if (!reference.isRead()) {\n                    continue\n                }\n                const node = reference.identifier\n\n                if (shouldReport && traceMap[READ]) {\n                    yield { node, path, type: READ, info: traceMap[READ] }\n                }\n                yield* this._iteratePropertyReferences(node, path, traceMap)\n            }\n        } finally {\n            this.variableStack.pop()\n        }\n    }\n\n    /**\n     * Iterate the references for a given AST node.\n     * @param rootNode The AST node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    //eslint-disable-next-line complexity\n    *_iteratePropertyReferences(rootNode, path, traceMap) {\n        let node = rootNode\n        while (isPassThrough(node)) {\n            node = node.parent\n        }\n\n        const parent = node.parent\n        if (parent.type === \"MemberExpression\") {\n            if (parent.object === node) {\n                const key = getPropertyName(parent)\n                if (key == null || !has(traceMap, key)) {\n                    return\n                }\n\n                path = path.concat(key) //eslint-disable-line no-param-reassign\n                const nextTraceMap = traceMap[key]\n                if (nextTraceMap[READ]) {\n                    yield {\n                        node: parent,\n                        path,\n                        type: READ,\n                        info: nextTraceMap[READ],\n                    }\n                }\n                yield* this._iteratePropertyReferences(\n                    parent,\n                    path,\n                    nextTraceMap\n                )\n            }\n            return\n        }\n        if (parent.type === \"CallExpression\") {\n            if (parent.callee === node && traceMap[CALL]) {\n                yield { node: parent, path, type: CALL, info: traceMap[CALL] }\n            }\n            return\n        }\n        if (parent.type === \"NewExpression\") {\n            if (parent.callee === node && traceMap[CONSTRUCT]) {\n                yield {\n                    node: parent,\n                    path,\n                    type: CONSTRUCT,\n                    info: traceMap[CONSTRUCT],\n                }\n            }\n            return\n        }\n        if (parent.type === \"AssignmentExpression\") {\n            if (parent.right === node) {\n                yield* this._iterateLhsReferences(parent.left, path, traceMap)\n                yield* this._iteratePropertyReferences(parent, path, traceMap)\n            }\n            return\n        }\n        if (parent.type === \"AssignmentPattern\") {\n            if (parent.right === node) {\n                yield* this._iterateLhsReferences(parent.left, path, traceMap)\n            }\n            return\n        }\n        if (parent.type === \"VariableDeclarator\") {\n            if (parent.init === node) {\n                yield* this._iterateLhsReferences(parent.id, path, traceMap)\n            }\n        }\n    }\n\n    /**\n     * Iterate the references for a given Pattern node.\n     * @param {Node} patternNode The Pattern node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateLhsReferences(patternNode, path, traceMap) {\n        if (patternNode.type === \"Identifier\") {\n            const variable = findVariable(this.globalScope, patternNode)\n            if (variable != null) {\n                yield* this._iterateVariableReferences(\n                    variable,\n                    path,\n                    traceMap,\n                    false\n                )\n            }\n            return\n        }\n        if (patternNode.type === \"ObjectPattern\") {\n            for (const property of patternNode.properties) {\n                const key = getPropertyName(property)\n\n                if (key == null || !has(traceMap, key)) {\n                    continue\n                }\n\n                const nextPath = path.concat(key)\n                const nextTraceMap = traceMap[key]\n                if (nextTraceMap[READ]) {\n                    yield {\n                        node: property,\n                        path: nextPath,\n                        type: READ,\n                        info: nextTraceMap[READ],\n                    }\n                }\n                yield* this._iterateLhsReferences(\n                    property.value,\n                    nextPath,\n                    nextTraceMap\n                )\n            }\n            return\n        }\n        if (patternNode.type === \"AssignmentPattern\") {\n            yield* this._iterateLhsReferences(patternNode.left, path, traceMap)\n        }\n    }\n\n    /**\n     * Iterate the references for a given ModuleSpecifier node.\n     * @param {Node} specifierNode The ModuleSpecifier node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateImportReferences(specifierNode, path, traceMap) {\n        const type = specifierNode.type\n\n        if (type === \"ImportSpecifier\" || type === \"ImportDefaultSpecifier\") {\n            const key =\n                type === \"ImportDefaultSpecifier\"\n                    ? \"default\"\n                    : specifierNode.imported.name\n            if (!has(traceMap, key)) {\n                return\n            }\n\n            path = path.concat(key) //eslint-disable-line no-param-reassign\n            const nextTraceMap = traceMap[key]\n            if (nextTraceMap[READ]) {\n                yield {\n                    node: specifierNode,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n            yield* this._iterateVariableReferences(\n                findVariable(this.globalScope, specifierNode.local),\n                path,\n                nextTraceMap,\n                false\n            )\n\n            return\n        }\n\n        if (type === \"ImportNamespaceSpecifier\") {\n            yield* this._iterateVariableReferences(\n                findVariable(this.globalScope, specifierNode.local),\n                path,\n                traceMap,\n                false\n            )\n            return\n        }\n\n        if (type === \"ExportSpecifier\") {\n            const key = specifierNode.local.name\n            if (!has(traceMap, key)) {\n                return\n            }\n\n            path = path.concat(key) //eslint-disable-line no-param-reassign\n            const nextTraceMap = traceMap[key]\n            if (nextTraceMap[READ]) {\n                yield {\n                    node: specifierNode,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n        }\n    }\n}\n\nReferenceTracker.READ = READ\nReferenceTracker.CALL = CALL\nReferenceTracker.CONSTRUCT = CONSTRUCT\nReferenceTracker.ESM = ESM\n\n/**\n * This is a predicate function for Array#filter.\n * @param {string} name A name part.\n * @param {number} index The index of the name.\n * @returns {boolean} `false` if it's default.\n */\nfunction exceptDefault(name, index) {\n    return !(index === 1 && name === \"default\")\n}\n","import { findVariable } from \"./find-variable\"\nimport { getFunctionHeadLocation } from \"./get-function-head-location\"\nimport { getFunctionNameWithKind } from \"./get-function-name-with-kind\"\nimport { getInnermostScope } from \"./get-innermost-scope\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStaticValue } from \"./get-static-value\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\nimport { hasSideEffect } from \"./has-side-effect\"\nimport { isParenthesized } from \"./is-parenthesized\"\nimport { PatternMatcher } from \"./pattern-matcher\"\nimport {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    READ,\n    ReferenceTracker,\n} from \"./reference-tracker\"\nimport {\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isSemicolonToken,\n} from \"./token-predicate\"\n\nexport default {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    findVariable,\n    getFunctionHeadLocation,\n    getFunctionNameWithKind,\n    getInnermostScope,\n    getPropertyName,\n    getStaticValue,\n    getStringIfConstant,\n    hasSideEffect,\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isParenthesized,\n    isSemicolonToken,\n    PatternMatcher,\n    READ,\n    ReferenceTracker,\n}\nexport {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    findVariable,\n    getFunctionHeadLocation,\n    getFunctionNameWithKind,\n    getInnermostScope,\n    getPropertyName,\n    getStaticValue,\n    getStringIfConstant,\n    hasSideEffect,\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isParenthesized,\n    isSemicolonToken,\n    PatternMatcher,\n    READ,\n    ReferenceTracker,\n}\n"],"names":[],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js-768-        if (node.regex) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js:769:            return `/${node.regex.pattern}/${node.regex.flags}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js-770-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js-849-    if (node.id) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js:850:        tokens.push(`'${node.id.name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js-851-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js-854-        if (name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js:855:            tokens.push(`'${name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js-856-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs-762-        if (node.regex) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs:763:            return `/${node.regex.pattern}/${node.regex.flags}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs-764-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs-843-    if (node.id) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs:844:        tokens.push(`'${node.id.name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs-845-    } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs-848-        if (name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs:849:            tokens.push(`'${name}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.mjs-850-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/eslint-utils/index.js.map:1:{"version":3,"file":"index.js","sources":["src/get-innermost-scope.js","src/find-variable.js","src/token-predicate.js","src/get-function-head-location.js","src/get-static-value.js","src/get-string-if-constant.js","src/get-property-name.js","src/get-function-name-with-kind.js","src/has-side-effect.js","src/is-parenthesized.js","src/pattern-matcher.js","src/reference-tracker.js","src/index.js"],"sourcesContent":["/**\n * Get the innermost scope which contains a given location.\n * @param {Scope} initialScope The initial scope to search.\n * @param {Node} node The location to search.\n * @returns {Scope} The innermost scope.\n */\nexport function getInnermostScope(initialScope, node) {\n    const location = node.range[0]\n\n    let scope = initialScope\n    let found = false\n    do {\n        found = false\n        for (const childScope of scope.childScopes) {\n            const range = childScope.block.range\n\n            if (range[0] <= location && location < range[1]) {\n                scope = childScope\n                found = true\n                break\n            }\n        }\n    } while (found)\n\n    return scope\n}\n","import { getInnermostScope } from \"./get-innermost-scope\"\n\n/**\n * Find the variable of a given name.\n * @param {Scope} initialScope The scope to start finding.\n * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node.\n * @returns {Variable|null} The found variable or null.\n */\nexport function findVariable(initialScope, nameOrNode) {\n    let name = \"\"\n    let scope = initialScope\n\n    if (typeof nameOrNode === \"string\") {\n        name = nameOrNode\n    } else {\n        name = nameOrNode.name\n        scope = getInnermostScope(scope, nameOrNode)\n    }\n\n    while (scope != null) {\n        const variable = scope.set.get(name)\n        if (variable != null) {\n            return variable\n        }\n        scope = scope.upper\n    }\n\n    return null\n}\n","/**\n * Negate the result of `this` calling.\n * @param {Token} token The token to check.\n * @returns {boolean} `true` if the result of `this(token)` is `false`.\n */\nfunction negate0(token) {\n    return !this(token) //eslint-disable-line no-invalid-this\n}\n\n/**\n * Creates the negate function of the given function.\n * @param {function(Token):boolean} f - The function to negate.\n * @returns {function(Token):boolean} Negated function.\n */\nfunction negate(f) {\n    return negate0.bind(f)\n}\n\n/**\n * Checks if the given token is an arrow token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an arrow token.\n */\nexport function isArrowToken(token) {\n    return token.value === \"=>\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a comma token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comma token.\n */\nexport function isCommaToken(token) {\n    return token.value === \",\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a semicolon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a semicolon token.\n */\nexport function isSemicolonToken(token) {\n    return token.value === \";\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a colon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a colon token.\n */\nexport function isColonToken(token) {\n    return token.value === \":\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening parenthesis token.\n */\nexport function isOpeningParenToken(token) {\n    return token.value === \"(\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing parenthesis token.\n */\nexport function isClosingParenToken(token) {\n    return token.value === \")\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening square bracket token.\n */\nexport function isOpeningBracketToken(token) {\n    return token.value === \"[\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing square bracket token.\n */\nexport function isClosingBracketToken(token) {\n    return token.value === \"]\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is an opening brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening brace token.\n */\nexport function isOpeningBraceToken(token) {\n    return token.value === \"{\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a closing brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing brace token.\n */\nexport function isClosingBraceToken(token) {\n    return token.value === \"}\" && token.type === \"Punctuator\"\n}\n\n/**\n * Checks if the given token is a comment token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comment token.\n */\nexport function isCommentToken(token) {\n    return (\n        token.type === \"Line\" ||\n        token.type === \"Block\" ||\n        token.type === \"Shebang\"\n    )\n}\n\nexport const isNotArrowToken = negate(isArrowToken)\nexport const isNotCommaToken = negate(isCommaToken)\nexport const isNotSemicolonToken = negate(isSemicolonToken)\nexport const isNotColonToken = negate(isColonToken)\nexport const isNotOpeningParenToken = negate(isOpeningParenToken)\nexport const isNotClosingParenToken = negate(isClosingParenToken)\nexport const isNotOpeningBracketToken = negate(isOpeningBracketToken)\nexport const isNotClosingBracketToken = negate(isClosingBracketToken)\nexport const isNotOpeningBraceToken = negate(isOpeningBraceToken)\nexport const isNotClosingBraceToken = negate(isClosingBraceToken)\nexport const isNotCommentToken = negate(isCommentToken)\n","import { isArrowToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the `(` token of the given function node.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {Token} `(` token.\n */\nfunction getOpeningParenOfParams(node, sourceCode) {\n    return node.id\n        ? sourceCode.getTokenAfter(node.id, isOpeningParenToken)\n        : sourceCode.getFirstToken(node, isOpeningParenToken)\n}\n\n/**\n * Get the location of the given function node for reporting.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {string} The location of the function node for reporting.\n */\nexport function getFunctionHeadLocation(node, sourceCode) {\n    const parent = node.parent\n    let start = null\n    let end = null\n\n    if (node.type === \"ArrowFunctionExpression\") {\n        const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken)\n\n        start = arrowToken.loc.start\n        end = arrowToken.loc.end\n    } else if (\n        parent.type === \"Property\" ||\n        parent.type === \"MethodDefinition\"\n    ) {\n        start = parent.loc.start\n        end = getOpeningParenOfParams(node, sourceCode).loc.start\n    } else {\n        start = node.loc.start\n        end = getOpeningParenOfParams(node, sourceCode).loc.start\n    }\n\n    return {\n        start: Object.assign({}, start),\n        end: Object.assign({}, end),\n    }\n}\n","/* globals BigInt, globalThis, global, self, window */\n\nimport { findVariable } from \"./find-variable\"\n\nconst globalObject =\n    typeof globalThis !== \"undefined\"\n        ? globalThis\n        : typeof self !== \"undefined\"\n        ? self\n        : typeof window !== \"undefined\"\n        ? window\n        : typeof global !== \"undefined\"\n        ? global\n        : {}\n\nconst builtinNames = Object.freeze(\n    new Set([\n        \"Array\",\n        \"ArrayBuffer\",\n        \"BigInt\",\n        \"BigInt64Array\",\n        \"BigUint64Array\",\n        \"Boolean\",\n        \"DataView\",\n        \"Date\",\n        \"decodeURI\",\n        \"decodeURIComponent\",\n        \"encodeURI\",\n        \"encodeURIComponent\",\n        \"escape\",\n        \"Float32Array\",\n        \"Float64Array\",\n        \"Function\",\n        \"Infinity\",\n        \"Int16Array\",\n        \"Int32Array\",\n        \"Int8Array\",\n        \"isFinite\",\n        \"isNaN\",\n        \"isPrototypeOf\",\n        \"JSON\",\n        \"Map\",\n        \"Math\",\n        \"NaN\",\n        \"Number\",\n        \"Object\",\n        \"parseFloat\",\n        \"parseInt\",\n        \"Promise\",\n        \"Proxy\",\n        \"Reflect\",\n        \"RegExp\",\n        \"Set\",\n        \"String\",\n        \"Symbol\",\n        \"Uint16Array\",\n        \"Uint32Array\",\n        \"Uint8Array\",\n        \"Uint8ClampedArray\",\n        \"undefined\",\n        \"unescape\",\n        \"WeakMap\",\n        \"WeakSet\",\n    ])\n)\nconst callAllowed = new Set(\n    [\n        Array.isArray,\n        typeof BigInt === \"function\" ? BigInt : undefined,\n        Boolean,\n        Date,\n        Date.parse,\n        decodeURI,\n        decodeURIComponent,\n        encodeURI,\n        encodeURIComponent,\n        escape,\n        isFinite,\n        isNaN,\n        isPrototypeOf,\n        ...Object.getOwnPropertyNames(Math)\n            .map(k => Math[k])\n            .filter(f => typeof f === \"function\"),\n        Number,\n        Number.isFinite,\n        Number.isNaN,\n        Number.parseFloat,\n        Number.parseInt,\n        Object,\n        Object.entries,\n        Object.is,\n        Object.isExtensible,\n        Object.isFrozen,\n        Object.isSealed,\n        Object.keys,\n        Object.values,\n        parseFloat,\n        parseInt,\n        RegExp,\n        String,\n        String.fromCharCode,\n        String.fromCodePoint,\n        String.raw,\n        Symbol,\n        Symbol.for,\n        Symbol.keyFor,\n        unescape,\n    ].filter(f => typeof f === \"function\")\n)\nconst callPassThrough = new Set([\n    Object.freeze,\n    Object.preventExtensions,\n    Object.seal,\n])\n\n/**\n * Get the property descriptor.\n * @param {object} object The object to get.\n * @param {string|number|symbol} name The property name to get.\n */\nfunction getPropertyDescriptor(object, name) {\n    let x = object\n    while ((typeof x === \"object\" || typeof x === \"function\") && x !== null) {\n        const d = Object.getOwnPropertyDescriptor(x, name)\n        if (d) {\n            return d\n        }\n        x = Object.getPrototypeOf(x)\n    }\n    return null\n}\n\n/**\n * Check if a property is getter or not.\n * @param {object} object The object to check.\n * @param {string|number|symbol} name The property name to check.\n */\nfunction isGetter(object, name) {\n    const d = getPropertyDescriptor(object, name)\n    return d != null && d.get != null\n}\n\n/**\n * Get the element values of a given node list.\n * @param {Node[]} nodeList The node list to get values.\n * @param {Scope|undefined} initialScope The initial scope to find variables.\n * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null.\n */\nfunction getElementValues(nodeList, initialScope) {\n    const valueList = []\n\n    for (let i = 0; i < nodeList.length; ++i) {\n        const elementNode = nodeList[i]\n\n        if (elementNode == null) {\n            valueList.length = i + 1\n        } else if (elementNode.type === \"SpreadElement\") {\n            const argument = getStaticValueR(elementNode.argument, initialScope)\n            if (argument == null) {\n                return null\n            }\n            valueList.push(...argument.value)\n        } else {\n            const element = getStaticValueR(elementNode, initialScope)\n            if (element == null) {\n                return null\n            }\n            valueList.push(element.value)\n        }\n    }\n\n    return valueList\n}\n\nconst operations = Object.freeze({\n    ArrayExpression(node, initialScope) {\n        const elements = getElementValues(node.elements, initialScope)\n        return elements != null ? { value: elements } : null\n    },\n\n    AssignmentExpression(node, initialScope) {\n        if (node.operator === \"=\") {\n            return getStaticValueR(node.right, initialScope)\n        }\n        return null\n    },\n\n    //eslint-disable-next-line complexity\n    BinaryExpression(node, initialScope) {\n        if (node.operator === \"in\" || node.operator === \"instanceof\") {\n            // Not supported.\n            return null\n        }\n\n        const left = getStaticValueR(node.left, initialScope)\n        const right = getStaticValueR(node.right, initialScope)\n        if (left != null && right != null) {\n            switch (node.operator) {\n                case \"==\":\n                    return { value: left.value == right.value } //eslint-disable-line eqeqeq\n                case \"!=\":\n                    return { value: left.value != right.value } //eslint-disable-line eqeqeq\n                case \"===\":\n                    return { value: left.value === right.value }\n                case \"!==\":\n                    return { value: left.value !== right.value }\n                case \"<\":\n                    return { value: left.value < right.value }\n                case \"<=\":\n                    return { value: left.value <= right.value }\n                case \">\":\n                    return { value: left.value > right.value }\n                case \">=\":\n                    return { value: left.value >= right.value }\n                case \"<<\":\n                    return { value: left.value << right.value }\n                case \">>\":\n                    return { value: left.value >> right.value }\n                case \">>>\":\n                    return { value: left.value >>> right.value }\n                case \"+\":\n                    return { value: left.value + right.value }\n                case \"-\":\n                    return { value: left.value - right.value }\n                case \"*\":\n                    return { value: left.value * right.value }\n                case \"/\":\n                    return { value: left.value / right.value }\n                case \"%\":\n                    return { value: left.value % right.value }\n                case \"**\":\n                    return { value: Math.pow(left.value, right.value) }\n                case \"|\":\n                    return { value: left.value | right.value }\n                case \"^\":\n                    return { value: left.value ^ right.value }\n                case \"&\":\n                    return { value: left.value & right.value }\n\n                // no default\n            }\n        }\n\n        return null\n    },\n\n    CallExpression(node, initialScope) {\n        const calleeNode = node.callee\n        const args = getElementValues(node.arguments, initialScope)\n\n        if (args != null) {\n            if (calleeNode.type === \"MemberExpression\") {\n                const object = getStaticValueR(calleeNode.object, initialScope)\n                const property = calleeNode.computed\n                    ? getStaticValueR(calleeNode.property, initialScope)\n                    : { value: calleeNode.property.name }\n\n                if (object != null && property != null) {\n                    const receiver = object.value\n                    const methodName = property.value\n                    if (callAllowed.has(receiver[methodName])) {\n                        return { value: receiver[methodName](...args) }\n                    }\n                    if (callPassThrough.has(receiver[methodName])) {\n                        return { value: args[0] }\n                    }\n                }\n            } else {\n                const callee = getStaticValueR(calleeNode, initialScope)\n                if (callee != null) {\n                    const func = callee.value\n                    if (callAllowed.has(func)) {\n                        return { value: func(...args) }\n                    }\n                    if (callPassThrough.has(func)) {\n                        return { value: args[0] }\n                    }\n                }\n            }\n        }\n\n        return null\n    },\n\n    ConditionalExpression(node, initialScope) {\n        const test = getStaticValueR(node.test, initialScope)\n        if (test != null) {\n            return test.value\n                ? getStaticValueR(node.consequent, initialScope)\n                : getStaticValueR(node.alternate, initialScope)\n        }\n        return null\n    },\n\n    ExpressionStatement(node, initialScope) {\n        return getStaticValueR(node.expression, initialScope)\n    },\n\n    Identifier(node, initialScope) {\n        if (initialScope != null) {\n            const variable = findVariable(initialScope, node)\n\n            // Built-in globals.\n            if (\n                variable != null &&\n                variable.defs.length === 0 &&\n                builtinNames.has(variable.name) &&\n                variable.name in globalObject\n            ) {\n                return { value: globalObject[variable.name] }\n            }\n\n            // Constants.\n            if (variable != null && variable.defs.length === 1) {\n                const def = variable.defs[0]\n                if (\n                    def.parent &&\n                    def.parent.kind === \"const\" &&\n                    // TODO(mysticatea): don't support destructuring here.\n                    def.node.id.type === \"Identifier\"\n                ) {\n                    return getStaticValueR(def.node.init, initialScope)\n                }\n            }\n        }\n        return null\n    },\n\n    Literal(node) {\n        //istanbul ignore if : this is implementation-specific behavior.\n        if ((node.regex != null || node.bigint != null) && node.value == null) {\n            // It was a RegExp/BigInt literal, but Node.js didn't support it.\n            return null\n        }\n        return { value: node.value }\n    },\n\n    LogicalExpression(node, initialScope) {\n        const left = getStaticValueR(node.left, initialScope)\n        if (left != null) {\n            if (\n                (node.operator === \"||\" && Boolean(left.value) === true) ||\n                (node.operator === \"&&\" && Boolean(left.value) === false)\n            ) {\n                return left\n            }\n\n            const right = getStaticValueR(node.right, initialScope)\n            if (right != null) {\n                return right\n            }\n        }\n\n        return null\n    },\n\n    MemberExpression(node, initialScope) {\n        const object = getStaticValueR(node.object, initialScope)\n        const property = node.computed\n            ? getStaticValueR(node.property, initialScope)\n            : { value: node.property.name }\n\n        if (\n            object != null &&\n            property != null &&\n            !isGetter(object.value, property.value)\n        ) {\n            return { value: object.value[property.value] }\n        }\n        return null\n    },\n\n    NewExpression(node, initialScope) {\n        const callee = getStaticValueR(node.callee, initialScope)\n        const args = getElementValues(node.arguments, initialScope)\n\n        if (callee != null && args != null) {\n            const Func = callee.value\n            if (callAllowed.has(Func)) {\n                return { value: new Func(...args) }\n            }\n        }\n\n        return null\n    },\n\n    ObjectExpression(node, initialScope) {\n        const object = {}\n\n        for (const propertyNode of node.properties) {\n            if (propertyNode.type === \"Property\") {\n                if (propertyNode.kind !== \"init\") {\n                    return null\n                }\n                const key = propertyNode.computed\n                    ? getStaticValueR(propertyNode.key, initialScope)\n                    : { value: propertyNode.key.name }\n                const value = getStaticValueR(propertyNode.value, initialScope)\n                if (key == null || value == null) {\n                    return null\n                }\n                object[key.value] = value.value\n            } else if (\n                propertyNode.type === \"SpreadElement\" ||\n                propertyNode.type === \"ExperimentalSpreadProperty\"\n            ) {\n                const argument = getStaticValueR(\n                    propertyNode.argument,\n                    initialScope\n                )\n                if (argument == null) {\n                    return null\n                }\n                Object.assign(object, argument.value)\n            } else {\n                return null\n            }\n        }\n\n        return { value: object }\n    },\n\n    SequenceExpression(node, initialScope) {\n        const last = node.expressions[node.expressions.length - 1]\n        return getStaticValueR(last, initialScope)\n    },\n\n    TaggedTemplateExpression(node, initialScope) {\n        const tag = getStaticValueR(node.tag, initialScope)\n        const expressions = getElementValues(\n            node.quasi.expressions,\n            initialScope\n        )\n\n        if (tag != null && expressions != null) {\n            const func = tag.value\n            const strings = node.quasi.quasis.map(q => q.value.cooked)\n            strings.raw = node.quasi.quasis.map(q => q.value.raw)\n\n            if (func === String.raw) {\n                return { value: func(strings, ...expressions) }\n            }\n        }\n\n        return null\n    },\n\n    TemplateLiteral(node, initialScope) {\n        const expressions = getElementValues(node.expressions, initialScope)\n        if (expressions != null) {\n            let value = node.quasis[0].value.cooked\n            for (let i = 0; i < expressions.length; ++i) {\n                value += expressions[i]\n                value += node.quasis[i + 1].value.cooked\n            }\n            return { value }\n        }\n        return null\n    },\n\n    UnaryExpression(node, initialScope) {\n        if (node.operator === \"delete\") {\n            // Not supported.\n            return null\n        }\n        if (node.operator === \"void\") {\n            return { value: undefined }\n        }\n\n        const arg = getStaticValueR(node.argument, initialScope)\n        if (arg != null) {\n            switch (node.operator) {\n                case \"-\":\n                    return { value: -arg.value }\n                case \"+\":\n                    return { value: +arg.value } //eslint-disable-line no-implicit-coercion\n                case \"!\":\n                    return { value: !arg.value }\n                case \"~\":\n                    return { value: ~arg.value }\n                case \"typeof\":\n                    return { value: typeof arg.value }\n\n                // no default\n            }\n        }\n\n        return null\n    },\n})\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope|undefined} initialScope The scope to start finding variable.\n * @returns {{value:any}|null} The static value of the node, or `null`.\n */\nfunction getStaticValueR(node, initialScope) {\n    if (node != null && Object.hasOwnProperty.call(operations, node.type)) {\n        return operations[node.type](node, initialScope)\n    }\n    return null\n}\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible.\n * @returns {{value:any}|null} The static value of the node, or `null`.\n */\nexport function getStaticValue(node, initialScope = null) {\n    try {\n        return getStaticValueR(node, initialScope)\n    } catch (_error) {\n        return null\n    }\n}\n","import { getStaticValue } from \"./get-static-value\"\n\n/**\n * Get the value of a given node if it's a literal or a template literal.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant.\n * @returns {string|null} The value of the node, or `null`.\n */\nexport function getStringIfConstant(node, initialScope = null) {\n    // Handle the literals that the platform doesn't support natively.\n    if (node && node.type === \"Literal\" && node.value === null) {\n        if (node.regex) {\n            return `/${node.regex.pattern}/${node.regex.flags}`\n        }\n        if (node.bigint) {\n            return node.bigint\n        }\n    }\n\n    const evaluated = getStaticValue(node, initialScope)\n    return evaluated && String(evaluated.value)\n}\n","import { getStringIfConstant } from \"./get-string-if-constant\"\n\n/**\n * Get the property name from a MemberExpression node or a Property node.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.\n * @returns {string|null} The property name of the node.\n */\nexport function getPropertyName(node, initialScope) {\n    switch (node.type) {\n        case \"MemberExpression\":\n            if (node.computed) {\n                return getStringIfConstant(node.property, initialScope)\n            }\n            return node.property.name\n\n        case \"Property\":\n        case \"MethodDefinition\":\n            if (node.computed) {\n                return getStringIfConstant(node.key, initialScope)\n            }\n            if (node.key.type === \"Literal\") {\n                return String(node.key.value)\n            }\n            return node.key.name\n\n        // no default\n    }\n\n    return null\n}\n","import { getPropertyName } from \"./get-property-name\"\n\n/**\n * Get the name and kind of the given function node.\n * @param {ASTNode} node - The function node to get.\n * @returns {string} The name and kind of the function node.\n */\nexport function getFunctionNameWithKind(node) {\n    const parent = node.parent\n    const tokens = []\n\n    if (parent.type === \"MethodDefinition\" && parent.static) {\n        tokens.push(\"static\")\n    }\n    if (node.async) {\n        tokens.push(\"async\")\n    }\n    if (node.generator) {\n        tokens.push(\"generator\")\n    }\n\n    if (node.type === \"ArrowFunctionExpression\") {\n        tokens.push(\"arrow\", \"function\")\n    } else if (\n        parent.type === \"Property\" ||\n        parent.type === \"MethodDefinition\"\n    ) {\n        if (parent.kind === \"constructor\") {\n            return \"constructor\"\n        }\n        if (parent.kind === \"get\") {\n            tokens.push(\"getter\")\n        } else if (parent.kind === \"set\") {\n            tokens.push(\"setter\")\n        } else {\n            tokens.push(\"method\")\n        }\n    } else {\n        tokens.push(\"function\")\n    }\n\n    if (node.id) {\n        tokens.push(`'${node.id.name}'`)\n    } else {\n        const name = getPropertyName(parent)\n\n        if (name) {\n            tokens.push(`'${name}'`)\n        }\n    }\n\n    return tokens.join(\" \")\n}\n","import evk from \"eslint-visitor-keys\"\n\nconst typeConversionBinaryOps = Object.freeze(\n    new Set([\n        \"==\",\n        \"!=\",\n        \"<\",\n        \"<=\",\n        \">\",\n        \">=\",\n        \"<<\",\n        \">>\",\n        \">>>\",\n        \"+\",\n        \"-\",\n        \"*\",\n        \"/\",\n        \"%\",\n        \"|\",\n        \"^\",\n        \"&\",\n        \"in\",\n    ])\n)\nconst typeConversionUnaryOps = Object.freeze(new Set([\"-\", \"+\", \"!\", \"~\"]))\nconst visitor = Object.freeze(\n    Object.assign(Object.create(null), {\n        $visit(node, options, visitorKeys) {\n            const { type } = node\n\n            if (typeof this[type] === \"function\") {\n                return this[type](node, options, visitorKeys)\n            }\n\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n\n        $visitChildren(node, options, visitorKeys) {\n            const { type } = node\n\n            for (const key of visitorKeys[type] || evk.getKeys(node)) {\n                const value = node[key]\n\n                if (Array.isArray(value)) {\n                    for (const element of value) {\n                        if (\n                            element &&\n                            this.$visit(element, options, visitorKeys)\n                        ) {\n                            return true\n                        }\n                    }\n                } else if (value && this.$visit(value, options, visitorKeys)) {\n                    return true\n                }\n            }\n\n            return false\n        },\n\n        ArrowFunctionExpression() {\n            return false\n        },\n        AssignmentExpression() {\n            return true\n        },\n        AwaitExpression() {\n            return true\n        },\n        BinaryExpression(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                typeConversionBinaryOps.has(node.operator) &&\n                (node.left.type !== \"Literal\" || node.right.type !== \"Literal\")\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        CallExpression() {\n            return true\n        },\n        FunctionExpression() {\n            return false\n        },\n        ImportExpression() {\n            return true\n        },\n        MemberExpression(node, options, visitorKeys) {\n            if (options.considerGetters) {\n                return true\n            }\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.property.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        MethodDefinition(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.key.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        NewExpression() {\n            return true\n        },\n        Property(node, options, visitorKeys) {\n            if (\n                options.considerImplicitTypeConversion &&\n                node.computed &&\n                node.key.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        UnaryExpression(node, options, visitorKeys) {\n            if (node.operator === \"delete\") {\n                return true\n            }\n            if (\n                options.considerImplicitTypeConversion &&\n                typeConversionUnaryOps.has(node.operator) &&\n                node.argument.type !== \"Literal\"\n            ) {\n                return true\n            }\n            return this.$visitChildren(node, options, visitorKeys)\n        },\n        UpdateExpression() {\n            return true\n        },\n        YieldExpression() {\n            return true\n        },\n    })\n)\n\n/**\n * Check whether a given node has any side effect or not.\n * @param {Node} node The node to get.\n * @param {SourceCode} sourceCode The source code object.\n * @param {object} [options] The option object.\n * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects.\n * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects.\n * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`.\n * @returns {boolean} `true` if the node has a certain side effect.\n */\nexport function hasSideEffect(\n    node,\n    sourceCode,\n    { considerGetters = false, considerImplicitTypeConversion = false } = {}\n) {\n    return visitor.$visit(\n        node,\n        { considerGetters, considerImplicitTypeConversion },\n        sourceCode.visitorKeys || evk.KEYS\n    )\n}\n","import { isClosingParenToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the left parenthesis of the parent node syntax if it exists.\n * E.g., `if (a) {}` then the `(`.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {Token|null} The left parenthesis of the parent node syntax\n */\nfunction getParentSyntaxParen(node, sourceCode) {\n    const parent = node.parent\n\n    switch (parent.type) {\n        case \"CallExpression\":\n        case \"NewExpression\":\n            if (parent.arguments.length === 1 && parent.arguments[0] === node) {\n                return sourceCode.getTokenAfter(\n                    parent.callee,\n                    isOpeningParenToken\n                )\n            }\n            return null\n\n        case \"DoWhileStatement\":\n            if (parent.test === node) {\n                return sourceCode.getTokenAfter(\n                    parent.body,\n                    isOpeningParenToken\n                )\n            }\n            return null\n\n        case \"IfStatement\":\n        case \"WhileStatement\":\n            if (parent.test === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"ImportExpression\":\n            if (parent.source === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"SwitchStatement\":\n            if (parent.discriminant === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        case \"WithStatement\":\n            if (parent.object === node) {\n                return sourceCode.getFirstToken(parent, 1)\n            }\n            return null\n\n        default:\n            return null\n    }\n}\n\n/**\n * Check whether a given node is parenthesized or not.\n * @param {number} times The number of parantheses.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized the given times.\n */\n/**\n * Check whether a given node is parenthesized or not.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized.\n */\nexport function isParenthesized(\n    timesOrNode,\n    nodeOrSourceCode,\n    optionalSourceCode\n) {\n    let times, node, sourceCode, maybeLeftParen, maybeRightParen\n    if (typeof timesOrNode === \"number\") {\n        times = timesOrNode | 0\n        node = nodeOrSourceCode\n        sourceCode = optionalSourceCode\n        if (!(times >= 1)) {\n            throw new TypeError(\"'times' should be a positive integer.\")\n        }\n    } else {\n        times = 1\n        node = timesOrNode\n        sourceCode = nodeOrSourceCode\n    }\n\n    if (node == null) {\n        return false\n    }\n\n    maybeLeftParen = maybeRightParen = node\n    do {\n        maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen)\n        maybeRightParen = sourceCode.getTokenAfter(maybeRightParen)\n    } while (\n        maybeLeftParen != null &&\n        maybeRightParen != null &&\n        isOpeningParenToken(maybeLeftParen) &&\n        isClosingParenToken(maybeRightParen) &&\n        // Avoid false positive such as `if (a) {}`\n        maybeLeftParen !== getParentSyntaxParen(node, sourceCode) &&\n        --times > 0\n    )\n\n    return times === 0\n}\n","/**\n * @author Toru Nagashima <https://github.com/mysticatea>\n * See LICENSE file in root directory for full license.\n */\n\nconst placeholder = /\\$(?:[$&`']|[1-9][0-9]?)/gu\n\n/** @type {WeakMap<PatternMatcher, {pattern:RegExp,escaped:boolean}>} */\nconst internal = new WeakMap()\n\n/**\n * Check whether a given character is escaped or not.\n * @param {string} str The string to check.\n * @param {number} index The location of the character to check.\n * @returns {boolean} `true` if the character is escaped.\n */\nfunction isEscaped(str, index) {\n    let escaped = false\n    for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) {\n        escaped = !escaped\n    }\n    return escaped\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {string} replacement The new substring to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceS(matcher, str, replacement) {\n    const chunks = []\n    let index = 0\n\n    /** @type {RegExpExecArray} */\n    let match = null\n\n    /**\n     * @param {string} key The placeholder.\n     * @returns {string} The replaced string.\n     */\n    function replacer(key) {\n        switch (key) {\n            case \"$$\":\n                return \"$\"\n            case \"$&\":\n                return match[0]\n            case \"$`\":\n                return str.slice(0, match.index)\n            case \"$'\":\n                return str.slice(match.index + match[0].length)\n            default: {\n                const i = key.slice(1)\n                if (i in match) {\n                    return match[i]\n                }\n                return key\n            }\n        }\n    }\n\n    for (match of matcher.execAll(str)) {\n        chunks.push(str.slice(index, match.index))\n        chunks.push(replacement.replace(placeholder, replacer))\n        index = match.index + match[0].length\n    }\n    chunks.push(str.slice(index))\n\n    return chunks.join(\"\")\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {(...strs[])=>string} replace The function to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceF(matcher, str, replace) {\n    const chunks = []\n    let index = 0\n\n    for (const match of matcher.execAll(str)) {\n        chunks.push(str.slice(index, match.index))\n        chunks.push(String(replace(...match, match.index, match.input)))\n        index = match.index + match[0].length\n    }\n    chunks.push(str.slice(index))\n\n    return chunks.join(\"\")\n}\n\n/**\n * The class to find patterns as considering escape sequences.\n */\nexport class PatternMatcher {\n    /**\n     * Initialize this matcher.\n     * @param {RegExp} pattern The pattern to match.\n     * @param {{escaped:boolean}} options The options.\n     */\n    constructor(pattern, { escaped = false } = {}) {\n        if (!(pattern instanceof RegExp)) {\n            throw new TypeError(\"'pattern' should be a RegExp instance.\")\n        }\n        if (!pattern.flags.includes(\"g\")) {\n            throw new Error(\"'pattern' should contains 'g' flag.\")\n        }\n\n        internal.set(this, {\n            pattern: new RegExp(pattern.source, pattern.flags),\n            escaped: Boolean(escaped),\n        })\n    }\n\n    /**\n     * Find the pattern in a given string.\n     * @param {string} str The string to find.\n     * @returns {IterableIterator<RegExpExecArray>} The iterator which iterate the matched information.\n     */\n    *execAll(str) {\n        const { pattern, escaped } = internal.get(this)\n        let match = null\n        let lastIndex = 0\n\n        pattern.lastIndex = 0\n        while ((match = pattern.exec(str)) != null) {\n            if (escaped || !isEscaped(str, match.index)) {\n                lastIndex = pattern.lastIndex\n                yield match\n                pattern.lastIndex = lastIndex\n            }\n        }\n    }\n\n    /**\n     * Check whether the pattern is found in a given string.\n     * @param {string} str The string to check.\n     * @returns {boolean} `true` if the pattern was found in the string.\n     */\n    test(str) {\n        const it = this.execAll(str)\n        const ret = it.next()\n        return !ret.done\n    }\n\n    /**\n     * Replace a given string.\n     * @param {string} str The string to be replaced.\n     * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`.\n     * @returns {string} The replaced string.\n     */\n    [Symbol.replace](str, replacer) {\n        return typeof replacer === \"function\"\n            ? replaceF(this, String(str), replacer)\n            : replaceS(this, String(str), String(replacer))\n    }\n}\n","import { findVariable } from \"./find-variable\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\n\nconst IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u\nconst has = Function.call.bind(Object.hasOwnProperty)\n\nexport const READ = Symbol(\"read\")\nexport const CALL = Symbol(\"call\")\nexport const CONSTRUCT = Symbol(\"construct\")\nexport const ESM = Symbol(\"esm\")\n\nconst requireCall = { require: { [CALL]: true } }\n\n/**\n * Check whether a given variable is modified or not.\n * @param {Variable} variable The variable to check.\n * @returns {boolean} `true` if the variable is modified.\n */\nfunction isModifiedGlobal(variable) {\n    return (\n        variable == null ||\n        variable.defs.length !== 0 ||\n        variable.references.some(r => r.isWrite())\n    )\n}\n\n/**\n * Check if the value of a given node is passed through to the parent syntax as-is.\n * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.\n * @param {Node} node A node to check.\n * @returns {boolean} `true` if the node is passed through.\n */\nfunction isPassThrough(node) {\n    const parent = node.parent\n\n    switch (parent && parent.type) {\n        case \"ConditionalExpression\":\n            return parent.consequent === node || parent.alternate === node\n        case \"LogicalExpression\":\n            return true\n        case \"SequenceExpression\":\n            return parent.expressions[parent.expressions.length - 1] === node\n\n        default:\n            return false\n    }\n}\n\n/**\n * The reference tracker.\n */\nexport class ReferenceTracker {\n    /**\n     * Initialize this tracker.\n     * @param {Scope} globalScope The global scope.\n     * @param {object} [options] The options.\n     * @param {\"legacy\"|\"strict\"} [options.mode=\"strict\"] The mode to determine the ImportDeclaration's behavior for CJS modules.\n     * @param {string[]} [options.globalObjectNames=[\"global\",\"self\",\"window\"]] The variable names for Global Object.\n     */\n    constructor(\n        globalScope,\n        {\n            mode = \"strict\",\n            globalObjectNames = [\"global\", \"self\", \"window\"],\n        } = {}\n    ) {\n        this.variableStack = []\n        this.globalScope = globalScope\n        this.mode = mode\n        this.globalObjectNames = globalObjectNames.slice(0)\n    }\n\n    /**\n     * Iterate the references of global variables.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateGlobalReferences(traceMap) {\n        for (const key of Object.keys(traceMap)) {\n            const nextTraceMap = traceMap[key]\n            const path = [key]\n            const variable = this.globalScope.set.get(key)\n\n            if (isModifiedGlobal(variable)) {\n                continue\n            }\n\n            yield* this._iterateVariableReferences(\n                variable,\n                path,\n                nextTraceMap,\n                true\n            )\n        }\n\n        for (const key of this.globalObjectNames) {\n            const path = []\n            const variable = this.globalScope.set.get(key)\n\n            if (isModifiedGlobal(variable)) {\n                continue\n            }\n\n            yield* this._iterateVariableReferences(\n                variable,\n                path,\n                traceMap,\n                false\n            )\n        }\n    }\n\n    /**\n     * Iterate the references of CommonJS modules.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateCjsReferences(traceMap) {\n        for (const { node } of this.iterateGlobalReferences(requireCall)) {\n            const key = getStringIfConstant(node.arguments[0])\n            if (key == null || !has(traceMap, key)) {\n                continue\n            }\n\n            const nextTraceMap = traceMap[key]\n            const path = [key]\n\n            if (nextTraceMap[READ]) {\n                yield {\n                    node,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n            yield* this._iteratePropertyReferences(node, path, nextTraceMap)\n        }\n    }\n\n    /**\n     * Iterate the references of ES modules.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *iterateEsmReferences(traceMap) {\n        const programNode = this.globalScope.block\n\n        for (const node of programNode.body) {\n            if (!IMPORT_TYPE.test(node.type) || node.source == null) {\n                continue\n            }\n            const moduleId = node.source.value\n\n            if (!has(traceMap, moduleId)) {\n                continue\n            }\n            const nextTraceMap = traceMap[moduleId]\n            const path = [moduleId]\n\n            if (nextTraceMap[READ]) {\n                yield { node, path, type: READ, info: nextTraceMap[READ] }\n            }\n\n            if (node.type === \"ExportAllDeclaration\") {\n                for (const key of Object.keys(nextTraceMap)) {\n                    const exportTraceMap = nextTraceMap[key]\n                    if (exportTraceMap[READ]) {\n                        yield {\n                            node,\n                            path: path.concat(key),\n                            type: READ,\n                            info: exportTraceMap[READ],\n                        }\n                    }\n                }\n            } else {\n                for (const specifier of node.specifiers) {\n                    const esm = has(nextTraceMap, ESM)\n                    const it = this._iterateImportReferences(\n                        specifier,\n                        path,\n                        esm\n                            ? nextTraceMap\n                            : this.mode === \"legacy\"\n                            ? Object.assign(\n                                  { default: nextTraceMap },\n                                  nextTraceMap\n                              )\n                            : { default: nextTraceMap }\n                    )\n\n                    if (esm) {\n                        yield* it\n                    } else {\n                        for (const report of it) {\n                            report.path = report.path.filter(exceptDefault)\n                            if (\n                                report.path.length >= 2 ||\n                                report.type !== READ\n                            ) {\n                                yield report\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * Iterate the references for a given variable.\n     * @param {Variable} variable The variable to iterate that references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @param {boolean} shouldReport = The flag to report those references.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateVariableReferences(variable, path, traceMap, shouldReport) {\n        if (this.variableStack.includes(variable)) {\n            return\n        }\n        this.variableStack.push(variable)\n        try {\n            for (const reference of variable.references) {\n                if (!reference.isRead()) {\n                    continue\n                }\n                const node = reference.identifier\n\n                if (shouldReport && traceMap[READ]) {\n                    yield { node, path, type: READ, info: traceMap[READ] }\n                }\n                yield* this._iteratePropertyReferences(node, path, traceMap)\n            }\n        } finally {\n            this.variableStack.pop()\n        }\n    }\n\n    /**\n     * Iterate the references for a given AST node.\n     * @param rootNode The AST node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    //eslint-disable-next-line complexity\n    *_iteratePropertyReferences(rootNode, path, traceMap) {\n        let node = rootNode\n        while (isPassThrough(node)) {\n            node = node.parent\n        }\n\n        const parent = node.parent\n        if (parent.type === \"MemberExpression\") {\n            if (parent.object === node) {\n                const key = getPropertyName(parent)\n                if (key == null || !has(traceMap, key)) {\n                    return\n                }\n\n                path = path.concat(key) //eslint-disable-line no-param-reassign\n                const nextTraceMap = traceMap[key]\n                if (nextTraceMap[READ]) {\n                    yield {\n                        node: parent,\n                        path,\n                        type: READ,\n                        info: nextTraceMap[READ],\n                    }\n                }\n                yield* this._iteratePropertyReferences(\n                    parent,\n                    path,\n                    nextTraceMap\n                )\n            }\n            return\n        }\n        if (parent.type === \"CallExpression\") {\n            if (parent.callee === node && traceMap[CALL]) {\n                yield { node: parent, path, type: CALL, info: traceMap[CALL] }\n            }\n            return\n        }\n        if (parent.type === \"NewExpression\") {\n            if (parent.callee === node && traceMap[CONSTRUCT]) {\n                yield {\n                    node: parent,\n                    path,\n                    type: CONSTRUCT,\n                    info: traceMap[CONSTRUCT],\n                }\n            }\n            return\n        }\n        if (parent.type === \"AssignmentExpression\") {\n            if (parent.right === node) {\n                yield* this._iterateLhsReferences(parent.left, path, traceMap)\n                yield* this._iteratePropertyReferences(parent, path, traceMap)\n            }\n            return\n        }\n        if (parent.type === \"AssignmentPattern\") {\n            if (parent.right === node) {\n                yield* this._iterateLhsReferences(parent.left, path, traceMap)\n            }\n            return\n        }\n        if (parent.type === \"VariableDeclarator\") {\n            if (parent.init === node) {\n                yield* this._iterateLhsReferences(parent.id, path, traceMap)\n            }\n        }\n    }\n\n    /**\n     * Iterate the references for a given Pattern node.\n     * @param {Node} patternNode The Pattern node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateLhsReferences(patternNode, path, traceMap) {\n        if (patternNode.type === \"Identifier\") {\n            const variable = findVariable(this.globalScope, patternNode)\n            if (variable != null) {\n                yield* this._iterateVariableReferences(\n                    variable,\n                    path,\n                    traceMap,\n                    false\n                )\n            }\n            return\n        }\n        if (patternNode.type === \"ObjectPattern\") {\n            for (const property of patternNode.properties) {\n                const key = getPropertyName(property)\n\n                if (key == null || !has(traceMap, key)) {\n                    continue\n                }\n\n                const nextPath = path.concat(key)\n                const nextTraceMap = traceMap[key]\n                if (nextTraceMap[READ]) {\n                    yield {\n                        node: property,\n                        path: nextPath,\n                        type: READ,\n                        info: nextTraceMap[READ],\n                    }\n                }\n                yield* this._iterateLhsReferences(\n                    property.value,\n                    nextPath,\n                    nextTraceMap\n                )\n            }\n            return\n        }\n        if (patternNode.type === \"AssignmentPattern\") {\n            yield* this._iterateLhsReferences(patternNode.left, path, traceMap)\n        }\n    }\n\n    /**\n     * Iterate the references for a given ModuleSpecifier node.\n     * @param {Node} specifierNode The ModuleSpecifier node to iterate references.\n     * @param {string[]} path The current path.\n     * @param {object} traceMap The trace map.\n     * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n     */\n    *_iterateImportReferences(specifierNode, path, traceMap) {\n        const type = specifierNode.type\n\n        if (type === \"ImportSpecifier\" || type === \"ImportDefaultSpecifier\") {\n            const key =\n                type === \"ImportDefaultSpecifier\"\n                    ? \"default\"\n                    : specifierNode.imported.name\n            if (!has(traceMap, key)) {\n                return\n            }\n\n            path = path.concat(key) //eslint-disable-line no-param-reassign\n            const nextTraceMap = traceMap[key]\n            if (nextTraceMap[READ]) {\n                yield {\n                    node: specifierNode,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n            yield* this._iterateVariableReferences(\n                findVariable(this.globalScope, specifierNode.local),\n                path,\n                nextTraceMap,\n                false\n            )\n\n            return\n        }\n\n        if (type === \"ImportNamespaceSpecifier\") {\n            yield* this._iterateVariableReferences(\n                findVariable(this.globalScope, specifierNode.local),\n                path,\n                traceMap,\n                false\n            )\n            return\n        }\n\n        if (type === \"ExportSpecifier\") {\n            const key = specifierNode.local.name\n            if (!has(traceMap, key)) {\n                return\n            }\n\n            path = path.concat(key) //eslint-disable-line no-param-reassign\n            const nextTraceMap = traceMap[key]\n            if (nextTraceMap[READ]) {\n                yield {\n                    node: specifierNode,\n                    path,\n                    type: READ,\n                    info: nextTraceMap[READ],\n                }\n            }\n        }\n    }\n}\n\nReferenceTracker.READ = READ\nReferenceTracker.CALL = CALL\nReferenceTracker.CONSTRUCT = CONSTRUCT\nReferenceTracker.ESM = ESM\n\n/**\n * This is a predicate function for Array#filter.\n * @param {string} name A name part.\n * @param {number} index The index of the name.\n * @returns {boolean} `false` if it's default.\n */\nfunction exceptDefault(name, index) {\n    return !(index === 1 && name === \"default\")\n}\n","import { findVariable } from \"./find-variable\"\nimport { getFunctionHeadLocation } from \"./get-function-head-location\"\nimport { getFunctionNameWithKind } from \"./get-function-name-with-kind\"\nimport { getInnermostScope } from \"./get-innermost-scope\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStaticValue } from \"./get-static-value\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\nimport { hasSideEffect } from \"./has-side-effect\"\nimport { isParenthesized } from \"./is-parenthesized\"\nimport { PatternMatcher } from \"./pattern-matcher\"\nimport {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    READ,\n    ReferenceTracker,\n} from \"./reference-tracker\"\nimport {\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isSemicolonToken,\n} from \"./token-predicate\"\n\nexport default {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    findVariable,\n    getFunctionHeadLocation,\n    getFunctionNameWithKind,\n    getInnermostScope,\n    getPropertyName,\n    getStaticValue,\n    getStringIfConstant,\n    hasSideEffect,\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isParenthesized,\n    isSemicolonToken,\n    PatternMatcher,\n    READ,\n    ReferenceTracker,\n}\nexport {\n    CALL,\n    CONSTRUCT,\n    ESM,\n    findVariable,\n    getFunctionHeadLocation,\n    getFunctionNameWithKind,\n    getInnermostScope,\n    getPropertyName,\n    getStaticValue,\n    getStringIfConstant,\n    hasSideEffect,\n    isArrowToken,\n    isClosingBraceToken,\n    isClosingBracketToken,\n    isClosingParenToken,\n    isColonToken,\n    isCommaToken,\n    isCommentToken,\n    isNotArrowToken,\n    isNotClosingBraceToken,\n    isNotClosingBracketToken,\n    isNotClosingParenToken,\n    isNotColonToken,\n    isNotCommaToken,\n    isNotCommentToken,\n    isNotOpeningBraceToken,\n    isNotOpeningBracketToken,\n    isNotOpeningParenToken,\n    isNotSemicolonToken,\n    isOpeningBraceToken,\n    isOpeningBracketToken,\n    isOpeningParenToken,\n    isParenthesized,\n    isSemicolonToken,\n    PatternMatcher,\n    READ,\n    ReferenceTracker,\n}\n"],"names":[],"mappings":"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"}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/CHANGELOG.md-2939-* Handle errors in build config file
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/CHANGELOG.md:2940:* More robust deconflicting, in cases where e.g. `foo$1` already exists
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/CHANGELOG.md-2941-* Use Rollup CLI for own build process
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js-9-if (process.platform !== 'darwin') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js:10:  throw new Error(`Module 'fsevents' is not compatible with platform '${process.platform}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js-11-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js-17-  if (typeof path !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js:18:    throw new TypeError(`fsevents argument 1 must be a string and not a ${typeof path}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js-19-  }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js-20-  if (typeof handler !== 'function') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js:21:    throw new TypeError(`fsevents argument 2 must be a function and not a ${typeof handler}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js-22-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js-24-  let instance = Native.start(path, handler);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js:25:  if (!instance) throw new Error(`could not watch: ${path}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/node_modules/fsevents/fsevents.js-26-  return () => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6454-        const name = this.renderName || this.name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:6455:        return this.renderBaseName ? `${this.renderBaseName}${getPropertyAccess(name)}` : name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6456-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6495-const getPropertyAccess = (name) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:6496:    return /^(?!\d)[\w$]+$/.test(name) ? `.${name}` : `[${JSON.stringify(name)}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6497-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6551-    if (startsWithDigit(str) || blacklisted.has(str))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:6552:        str = `_${str}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6553-    return str || '_';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6638-        const names = unused.length === 1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:6639:            ? `'${unused[0]}' is`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6640-            : `${unused
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6641-                .slice(0, -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:6642:                .map(name => `'${name}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6643-                .join(', ')} and '${unused.slice(-1)}' are`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6645-            code: 'UNUSED_EXTERNAL_IMPORT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:6646:            message: `${names} imported from external module '${this.id}' but never used`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-6647-            names: unused,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-8575-    while (usedNames.has(safeName) || RESERVED_NAMES[safeName]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:8576:        safeName = `${baseName}$${toBase64(count++)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-8577-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-8922-        if (options.format === 'system' && this.id && this.id.variable.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:8923:            code.appendLeft(this.end, ` exports('${this.id.variable.exportName}', ${this.id.variable.getName()});`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-8924-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9151-                /* istanbul ignore next */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9152:                throw new Error(`Internal Error: Unexpected identifier kind ${kind}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9153-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9207-                if (isShorthandProperty) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9208:                    code.prependRight(this.start, `${this.name}: `);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9209-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9221-            code: 'ILLEGAL_REASSIGNMENT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9222:            message: `Illegal reassignment to import '${this.name}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9223-        }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9409-            if (options.format === 'system' && this.variable.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9410:                code.overwrite(start, end, `exports('${this.variable.exportName}', ${this.variable.getName()});`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9411-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9437-        if (needsId) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9438:            code.appendLeft(getIdInsertPosition(code.original, declarationKeyword, declarationStart), ` ${name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9439-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9442-            this.variable.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9443:            code.appendLeft(this.end, ` exports('${this.variable.exportName}', ${name});`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9444-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9447-        const systemBinding = options.format === 'system' && this.variable.exportName
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9448:            ? `exports('${this.variable.exportName}', `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9449-            : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9450:        code.overwrite(this.start, declarationStart, `${options.varOrConst} ${this.variable.getName()} = ${systemBinding}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9451-        const hasTrailingSemicolon = code.original.charCodeAt(this.end - 1) === 59; /*";"*/
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9608-            if (this.referencedEarly || original.isReassigned) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9609:                return `${t}get ${name}${_}()${_}{${_}return ${original.getName()}${options.compact ? '' : ';'}${_}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9610-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9611:            const safeName = RESERVED_NAMES[name] ? `'${name}'` : name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9612:            return `${t}${safeName}: ${original.getName()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9613-        });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9614-        if (options.namespaceToStringTag) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9615:            members.unshift(`${t}[Symbol.toStringTag]:${_}'Module'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9616-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9618-        if (!hasExternalReexports)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9619:            members.unshift(`${t}__proto__:${_}null`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9620:        let output = `{${n}${members.join(`,${n}`)}${n}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9621-        if (hasExternalReexports || this.syntheticNamedExports) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9628-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9629:            output = `/*#__PURE__*/Object.assign(${assignmentArgs.join(`,${_}`)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9630-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9631-        if (options.freeze) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9632:            output = `/*#__PURE__*/Object.freeze(${output})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9633-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9634-        const name = this.getName();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9635:        output = `${options.varOrConst} ${name}${_}=${_}${output};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9636-        if (options.format === 'system' && this.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9637:            output += `${n}exports('${this.exportName}',${_}${name});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9638-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9663-                        dep.namedExportsMode && expt.imported !== '*' && expt.imported !== 'default'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9664:                            ? `${dep.name}.${expt.imported}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9665-                            : dep.name;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9669-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9670:        return `${mechanism}${local};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9671-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9681-                        exportBlock +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9682:                            `Object.keys(${name}).forEach(function${_}(k)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9683:                                `${t}if${_}(k${_}!==${_}'default')${_}Object.defineProperty(exports,${_}k,${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9684:                                `${t}${t}enumerable:${_}true,${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9685:                                `${t}${t}get:${_}function${_}()${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9686:                                `${t}${t}${t}return ${name}[k];${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9687:                                `${t}${t}}${n}${t}});${n}});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9688-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9690-                        exportBlock +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9691:                            `Object.keys(${name}).forEach(function${_}(k)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9692:                                `${t}if${_}(k${_}!==${_}'default')${_}exports[k]${_}=${_}${name}[k];${n}});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9693-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9708-                            (imports && imports.some(specifier => specifier.imported !== 'default')))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9709:                        exportBlock += `exports.${specifier.reexported}${_}=${_}${name}${interop !== false ? '__default' : '.default'};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9710-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9711-                    else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9712:                        exportBlock += `exports.${specifier.reexported}${_}=${_}${name};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9713-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9719-                        ? name
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9720:                        : `${name}.${specifier.imported}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9721-                    exportBlock += specifier.needsLiveBinding
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9722:                        ? `Object.defineProperty(exports,${_}'${specifier.reexported}',${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9723:                            `${t}enumerable:${_}true,${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9724:                            `${t}get:${_}function${_}()${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9725:                            `${t}${t}return ${importName};${n}${t}}${n}});`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9726:                        : `exports.${specifier.reexported}${_}=${_}${importName};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9727-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9730-                        exportBlock += n;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9731:                    exportBlock += `exports.${specifier.reexported}${_}=${_}${name};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9732-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9736-    for (const expt of exports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9737:        const lhs = `exports.${expt.exported}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9738-        const rhs = expt.local;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9741-                exportBlock += n;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9742:            exportBlock += `${lhs}${_}=${_}${rhs};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9743-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9754-        if (exportsNames) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9755:            return (`${varOrConst} ${name}__default${_}=${_}'default'${_}in ${name}${_}?` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9756:                `${_}${name}['default']${_}:${_}${name};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9757-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9758:        return (`${name}${_}=${_}${name}${_}&&${_}Object.prototype.hasOwnProperty.call(${name},${_}'default')${_}?` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9759:            `${_}${name}['default']${_}:${_}${name};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9760-    })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9765-function copyPropertyLiveBinding(_, n, t, i) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9766:    return (`${i}var d${_}=${_}Object.getOwnPropertyDescriptor(e,${_}k);${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9767:        `${i}Object.defineProperty(n,${_}k,${_}d.get${_}?${_}d${_}:${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9768:        `${i}${t}enumerable:${_}true,${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9769:        `${i}${t}get:${_}function${_}()${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9770:        `${i}${t}${t}return e[k];${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9771:        `${i}${t}}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9772:        `${i}});${n}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9773-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9774-function copyPropertyStatic(_, n, _t, i) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9775:    return `${i}n[k]${_}=e${_}[k];${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9776-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9777-function getInteropNamespace(_, n, t, liveBindings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9778:    return (`function ${INTEROP_NAMESPACE_VARIABLE}(e)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9779:        `${t}if${_}(e${_}&&${_}e.__esModule)${_}{${_}return e;${_}}${_}else${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9780:        `${t}${t}var n${_}=${_}{};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9781:        `${t}${t}if${_}(e)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9782:        `${t}${t}${t}Object.keys(e).forEach(function${_}(k)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9783-        (liveBindings ? copyPropertyLiveBinding : copyPropertyStatic)(_, n, t, t + t + t + t) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9784:        `${t}${t}${t}});${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9785:        `${t}${t}}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9786:        `${t}${t}n['default']${_}=${_}e;${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9787:        `${t}${t}return n;${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9788:        `${t}}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9789:        `}${n}${n}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9790-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9820-    const detail = externalBuiltins.length === 1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9821:        ? `module ('${externalBuiltins[0]}')`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9822-        : `modules (${externalBuiltins
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9823-            .slice(0, -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9824:            .map(name => `'${name}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9825-            .join(', ')} and '${externalBuiltins.slice(-1)}')`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9827-        code: 'MISSING_NODE_BUILTINS',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9828:        message: `Creating a browser bundle that depends on Node.js built-in ${detail}. You might need to include https://www.npmjs.com/package/rollup-plugin-node-builtins`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9829-        modules: externalBuiltins
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9843-    warnOnBuiltins(warn, dependencies);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9844:    const deps = dependencies.map(m => `'${removeExtensionFromRelativeAmdId(m.id)}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9845-    const args = dependencies.map(m => m.name);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9860-    const amdOptions = options.amd || {};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9861:    const params = (amdOptions.id ? `'${amdOptions.id}',${_}` : ``) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9862:        (deps.length ? `[${deps.join(`,${_}`)}],${_}` : ``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9863:    const useStrict = options.strict !== false ? `${_}'use strict';` : ``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9864-    const define = amdOptions.define || 'define';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9865:    const wrapperStart = `${define}(${params}function${_}(${args.join(`,${_}`)})${_}{${useStrict}${n}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9866-    // var foo__default = 'default' in foo ? foo['default'] : foo;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9879-    if (namedExportsMode && hasExports && isEntryModuleFacade && options.esModule)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9880:        magicString.append(`${n}${n}${options.compact ? compactEsModuleExport : esModuleExport}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9881-    if (outro)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9892-    intro =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9893:        (options.strict === false ? intro : `'use strict';${n}${n}${intro}`) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9894-            (namedExportsMode && hasExports && isEntryModuleFacade && options.esModule
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9895:                ? `${options.compact ? compactEsModuleExport : esModuleExport}${n}${n}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9896-                : '');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9904-            if (importBlock) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9905:                importBlock += !options.compact || definingVariable ? `;${n}` : ',';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9906-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9907-            definingVariable = false;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9908:            importBlock += `require('${id}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9909-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9911-            importBlock +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9912:                options.compact && definingVariable ? ',' : `${importBlock ? `;${n}` : ''}${varOrConst} `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9913-            definingVariable = true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9914-            if (!interop || isChunk || !exportsDefault || !namedExportsMode) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9915:                importBlock += `${name}${_}=${_}require('${id}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9916-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9919-                if (exportsNames)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9920:                    importBlock += `${name}${_}=${_}require('${id}')${options.compact ? ',' : `;\n${varOrConst} `}${name}__default${_}=${_}${INTEROP_DEFAULT_VARIABLE}(${name})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9921-                else
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9922:                    importBlock += `${name}${_}=${_}${INTEROP_DEFAULT_VARIABLE}(require('${id}'))`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9923-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9930-        intro +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9931:            `function ${INTEROP_DEFAULT_VARIABLE}${_}(${ex})${_}{${_}return${_}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9932:                `(${ex}${_}&&${_}(typeof ${ex}${_}===${_}'object')${_}&&${_}'default'${_}in ${ex})${_}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9933:                `?${_}${ex}['default']${_}:${_}${ex}${options.compact ? '' : '; '}}${n}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9934-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9939-        intro += importBlock + n + n;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9940:    const exportBlock = getExportBlock(exports, dependencies, namedExportsMode, options.interop, options.compact, t, `module.exports${_}=${_}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9941-    magicString.prepend(intro);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9967-        if (!reexports && !imports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9968:            importBlock.push(`import${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9969-            continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9986-            if (starImport) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9987:                importBlock.push(`import${_}*${_}as ${starImport.local} from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9988-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9989-            if (defaultImport && importedNames.length === 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9990:                importBlock.push(`import ${defaultImport.local} from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9991-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9992-            else if (importedNames.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9993:                importBlock.push(`import ${defaultImport ? `${defaultImport.local},${_}` : ''}{${_}${importedNames
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9994-                    .map(specifier => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-9998-                    else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:9999:                        return `${specifier.imported} as ${specifier.local}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10000-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10001-                })
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10002:                    .join(`,${_}`)}${_}}${_}from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10003-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10020-            if (starExport) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10021:                importBlock.push(`export${_}*${_}from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10022-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10025-                    !imports.some(specifier => specifier.imported === '*' && specifier.local === name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10026:                    importBlock.push(`import${_}*${_}as ${name} from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10027-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10028-                for (const specifier of namespaceReexports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10029:                    importBlock.push(`export${_}{${_}${name === specifier.reexported ? name : `${name} as ${specifier.reexported}`} };`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10030-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10038-                    else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10039:                        return `${specifier.imported} as ${specifier.reexported}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10040-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10041-                })
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10042:                    .join(`,${_}`)}${_}}${_}from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10043-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10052-        if (specifier.exported === 'default') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10053:            exportBlock.push(`export default ${specifier.local};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10054-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10057-                ? specifier.local
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10058:                : `${specifier.local} as ${specifier.exported}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10059-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10061-    if (exportDeclaration.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10062:        exportBlock.push(`export${_}{${_}${exportDeclaration.join(`,${_}`)}${_}};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10063-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10090-        while (lineNum.length < digits)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10091:            lineNum = ` ${lineNum}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10092-        if (isErrorLine) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10093-            const indicator = spaces(digits + 2 + tabsToSpaces(str.slice(0, column)).length) + '^';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10094:            return `${lineNum}: ${tabsToSpaces(str)}\n${indicator}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10095-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10096:        return `${lineNum}: ${tabsToSpaces(str)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10097-    })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10171-        code: Errors.ASSET_NOT_FINALISED,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10172:        message: `Plugin error - Unable to get file name for asset "${name}". Ensure that the source is set and that generate is called first.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10173-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10183-        code: Errors.CHUNK_NOT_GENERATED,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10184:        message: `Plugin error - Unable to get file name for chunk "${name}". Ensure that generate is called first.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10185-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10189-        code: Errors.ASSET_NOT_FOUND,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10190:        message: `Plugin error - Unable to set the source for unknown asset "${assetReferenceId}".`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10191-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10195-        code: Errors.ASSET_SOURCE_ALREADY_SET,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10196:        message: `Unable to set the source for asset "${name}", source already set.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10197-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10201-        code: Errors.ASSET_SOURCE_MISSING,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10202:        message: `Plugin error creating asset "${assetName}" - no asset source set.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10203-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10207-        code: Errors.BAD_LOADER,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10208:        message: `Error loading ${relativeId(id)}: plugin load hook should return a string, a { code, map } object, or nothing/null`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10209-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10219-        code: Errors.FILE_NOT_FOUND,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10220:        message: `Plugin error - Unable to get file name for unknown file "${assetReferenceId}".`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10221-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10225-        code: Errors.FILE_NAME_CONFLICT,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10226:        message: `The emitted file "${fileName}" overwrites a previously emitted file of the same name.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10227-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10231-        code: Errors.INPUT_HOOK_IN_OUTPUT_PLUGIN,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10232:        message: `The "${hookName}" hook used by the output plugin ${pluginName} is a build time hook and will not be run for that plugin. Either this plugin cannot be used as an output plugin, or it should have an option to configure it as an output plugin.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10233-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10237-        code: Errors.INVALID_CHUNK,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10238:        message: `Cannot assign ${relativeId(moduleId)} to the "${assignToAlias}" chunk as it is already in the "${currentAlias}" chunk.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10239-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10243-        code: Errors.INVALID_EXPORT_OPTION,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10244:        message: `"output.exports" must be "default", "named", "none", "auto", or left unspecified (defaults to "auto"), received "${optionValue}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10245-        url: `https://rollupjs.org/guide/en/#output-exports`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10250-        code: 'INVALID_EXPORT_OPTION',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10251:        message: `"${optionValue}" was specified for "output.exports", but entry module "${relativeId(entryModule)}" has the following exports: ${keys.join(', ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10252-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10256-        code: Errors.INVALID_EXTERNAL_ID,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10257:        message: `'${source}' is imported as an external by ${relativeId(importer)}, but is already an existing non-external module id.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10258-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10262-        code: Errors.INVALID_OPTION,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10263:        message: `Invalid value for option "${option}" - ${explanation}.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10264-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10281-        id: facadeModuleId,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10282:        message: `Entry module "${relativeId(facadeModuleId)}" is using named and default exports together. Consumers of your bundle will have to use \`${name ||
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10283-            'chunk'}["default"]\` to access the default export, which may not be what you want. Use \`output.exports: "named"\` to disable this warning`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10289-        code: Errors.NAMESPACE_CONFLICT,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10290:        message: `Conflicting namespaces: ${relativeId(reexportingModule.id)} re-exports '${name}' from both ${relativeId(reexportingModule.exportsAll[name])} and ${relativeId(additionalExportAllModule.exportsAll[name])} (will be ignored)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10291-        name,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10298-        code: Errors.UNRESOLVED_ENTRY,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10299:        message: `Entry module cannot be external (${relativeId(unresolvedId)}).`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10300-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10304-        code: Errors.UNRESOLVED_ENTRY,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10305:        message: `Could not resolve entry module (${relativeId(unresolvedId)}).`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10306-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10310-        code: Errors.UNRESOLVED_IMPORT,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10311:        message: `Could not resolve '${source}' from ${relativeId(importer)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10312-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10317-        importer: relativeId(importer),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10318:        message: `'${source}' is imported by ${relativeId(importer)}, but could not be resolved – treating it as an external dependency`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10319-        source,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10326-        importer: relativeId(importer),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10327:        message: `External '${source}' can not have 'syntheticNamedExports' enabled.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10328-        source
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10341-function property(prop) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10342:    return shouldUseDot.test(prop) ? `.${prop}` : `['${prop}']`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10343-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10359-    return (parts
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10360:        .map(part => ((acc += property(part)), `${acc}${_}=${_}${acc}${_}||${_}{}${compact ? '' : ';'}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10361-        .join(compact ? ',' : '\n') + (compact && parts.length ? ';' : '\n'));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10371-    let deepAssignment = parts
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10372:        .map(part => ((acc += property(part)), `${acc}${_}=${_}${acc}${_}||${_}{}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10373:        .concat(`${acc}${property(last)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10374:        .join(`,${_}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10375:        .concat(`${_}=${_}${assignment}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10376-    if (parts.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10377:        deepAssignment = `(${deepAssignment})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10378-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10392-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10393:const thisProp = (name) => `this${keypath(name)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10394-function iife(magicString, { dependencies, exports, hasExports, indentString: t, intro, namedExportsMode, outro, varOrConst, warn }, options) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10402-            code: 'ILLEGAL_IDENTIFIER_AS_NAME',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10403:            message: `Given name "${name}" is not a legal JS identifier. If you need this, you can try "output.extend: true".`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10404-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10417-        if (extend) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10418:            deps.unshift(`${thisProp(name)}${_}=${_}${thisProp(name)}${_}||${_}{}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10419-            args.unshift('exports');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10425-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10426:    const useStrict = options.strict !== false ? `${t}'use strict';${n}${n}` : ``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10427:    let wrapperIntro = `(function${_}(${args.join(`,${_}`)})${_}{${n}${useStrict}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10428-    if (hasExports && (!extend || !namedExportsMode) && name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10429-        wrapperIntro =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10430:            (useVariableAssignment ? `${varOrConst} ${name}` : thisProp(name)) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10431:                `${_}=${_}${wrapperIntro}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10432-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10435-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10436:    let wrapperOutro = `${n}${n}}(${deps.join(`,${_}`)}));`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10437-    if (!extend && namedExportsMode && hasExports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10438:        wrapperOutro = `${n}${n}${t}return exports;${wrapperOutro}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10439-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10472-const getStarExcludesBlock = (starExcludes, varOrConst, _, t, n) => starExcludes
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10473:    ? `${n}${t}${varOrConst} _starExcludes${_}=${_}{${_}${Array.from(starExcludes).join(`:${_}1,${_}`)}${starExcludes.size ? `:${_}1` : ''}${_}};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10474-    : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10475:const getImportBindingsBlock = (importBindings, _, t, n) => (importBindings.length ? `${n}${t}var ${importBindings.join(`,${_}`)};` : '');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10476-function getExportsBlock(exports, _, t, n) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10480-    if (exports.length === 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10481:        return `${t}${t}${t}exports('${exports[0].name}',${_}${exports[0].value});${n}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10482-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10483:    return (`${t}${t}${t}exports({${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10484:        exports.map(({ name, value }) => `${t}${t}${t}${t}${name}:${_}${value}`).join(`,${n}`) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10485:        `${n}${t}${t}${t}});${n}${n}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10486-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10495-    const _ = options.compact ? '' : ' ';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10496:    const dependencyIds = dependencies.map(m => `'${m.id}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10497-    const importBindings = [];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10505-                if (specifier.imported === '*') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10506:                    setter.push(`${specifier.local}${_}=${_}module;`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10507-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10508-                else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10509:                    setter.push(`${specifier.local}${_}=${_}module.${specifier.imported};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10510-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10527-                    if (!createdSetter) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10528:                        setter.push(`${varOrConst} _setter${_}=${_}{};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10529-                        createdSetter = true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10530-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10531:                    setter.push(`for${_}(var _$p${_}in${_}module)${_}{`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10532:                    setter.push(`${t}if${_}(!_starExcludes[_$p])${_}_setter[_$p]${_}=${_}module[_$p];`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10533-                    setter.push('}');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10538-                        continue;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10539:                    setter.push(`exports('${specifier.reexported}',${_}module);`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10540-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10545-                    if (!createdSetter) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10546:                        setter.push(`${varOrConst} _setter${_}=${_}{};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10547-                        createdSetter = true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10548-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10549:                    setter.push(`_setter.${specifier.reexported}${_}=${_}module.${specifier.imported};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10550-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10557-                for (const specifier of reexports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10558:                    setter.push(`exports('${specifier.reexported}',${_}module.${specifier.imported});`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10559-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10561-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10562:        setters.push(setter.join(`${n}${t}${t}${t}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10563-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10564:    const registeredName = options.name ? `'${options.name}',${_}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10565-    const wrapperParams = accessedGlobals.has('module')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10566:        ? `exports,${_}module`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10567-        : hasExports
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10569-            : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10570:    let wrapperStart = `System.register(${registeredName}[` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10571:        dependencyIds.join(`,${_}`) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10572:        `],${_}function${_}(${wrapperParams})${_}{${n}${t}${options.strict ? "'use strict';" : ''}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10573-        getStarExcludesBlock(starExcludes, varOrConst, _, t, n) +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10577-                .map(s => s
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10578:                ? `function${_}(module)${_}{${n}${t}${t}${t}${s}${n}${t}${t}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10579:                : `function${_}()${_}{}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10580:                .join(`,${_}`)}],`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10581-            : ''}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10582-    wrapperStart +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10583:        `${t}${t}execute:${_}${usesTopLevelAwait ? `async${_}` : ''}function${_}()${_}{${n}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10584-            getHoistedExportsBlock(exports, _, t, n);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10585:    const wrapperEnd = `${n}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10586-        getMissingExportsBlock(exports, _, t, n) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10587:        `${t}${t}}${n}${t}}${options.compact ? '' : ';'}${n}});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10588-    if (intro)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10592-    return magicString
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10593:        .indent(`${t}${t}${t}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10594-        .append(wrapperEnd)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10600-        return 'null';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10601:    return `${globalVar}${keypath(name)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10602-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10605-    let acc = globalVar;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10606:    return parts.map(part => ((acc += property(part)), acc)).join(`${_}&&${_}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10607-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10619-    warnOnBuiltins(warn, dependencies);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10620:    const amdDeps = dependencies.map(m => `'${m.id}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10621:    const cjsDeps = dependencies.map(m => `require('${m.id}')`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10622-    const trimmedImports = trimEmptyImports(dependencies);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10627-        cjsDeps.unshift(`exports`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10628:        globalDeps.unshift(assignToDeepVariable(options.name, globalVar, options.globals, options.compact, `${options.extend ? `${globalProp(options.name, globalVar)}${_}||${_}` : ''}{}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10629-        factoryArgs.unshift('exports');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10631-    const amdOptions = options.amd || {};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10632:    const amdParams = (amdOptions.id ? `'${amdOptions.id}',${_}` : ``) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10633:        (amdDeps.length ? `[${amdDeps.join(`,${_}`)}],${_}` : ``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10634-    const define = amdOptions.define || 'define';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10635:    const cjsExport = !namedExportsMode && hasExports ? `module.exports${_}=${_}` : ``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10636:    const useStrict = options.strict !== false ? `${_}'use strict';${n}` : ``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10637-    let iifeExport;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10641-        if (!namedExportsMode && hasExports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10642:            factory = `var ${noConflictExportsVar}${_}=${_}${assignToDeepVariable(options.name, globalVar, options.globals, options.compact, `${factoryVar}(${globalDeps.join(`,${_}`)})`)};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10643-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10646-            factory =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10647:                `var ${noConflictExportsVar}${_}=${_}${module};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10648:                    `${t}${t}${factoryVar}(${[noConflictExportsVar].concat(globalDeps).join(`,${_}`)});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10649-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10650-        iifeExport =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10651:            `(function${_}()${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10652:                `${t}${t}var current${_}=${_}${safeAccess(options.name, globalVar, _)};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10653:                `${t}${t}${factory}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10654:                `${t}${t}${noConflictExportsVar}.noConflict${_}=${_}function${_}()${_}{${_}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10655:                `${globalProp(options.name, globalVar)}${_}=${_}current;${_}return ${noConflictExportsVar}${options.compact ? '' : '; '}};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10656:                `${t}}())`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10657-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10658-    else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10659:        iifeExport = `${factoryVar}(${globalDeps.join(`,${_}`)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10660-        if (!namedExportsMode && hasExports) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10664-    const iifeNeedsGlobal = hasExports || (options.noConflict === true && namedExportsMode) || globalDeps.length > 0;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10665:    const globalParam = iifeNeedsGlobal ? `${globalVar},${_}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10666:    const globalArg = iifeNeedsGlobal ? `this,${_}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10667:    const iifeStart = iifeNeedsGlobal ? `(${globalVar}${_}=${_}${globalVar}${_}||${_}self,${_}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10668-    const iifeEnd = iifeNeedsGlobal ? ')' : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10669-    const cjsIntro = iifeNeedsGlobal
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10670:        ? `${t}typeof exports${_}===${_}'object'${_}&&${_}typeof module${_}!==${_}'undefined'${_}?` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10671:            `${_}${cjsExport}${factoryVar}(${cjsDeps.join(`,${_}`)})${_}:${n}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10672-        : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10673-    // factory function should be wrapped by parentheses to avoid lazy parsing
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10674:    const wrapperIntro = `(function${_}(${globalParam}${factoryVar})${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10675-        cjsIntro +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10676:        `${t}typeof ${define}${_}===${_}'function'${_}&&${_}${define}.amd${_}?${_}${define}(${amdParams}${factoryVar})${_}:${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10677:        `${t}${iifeStart}${iifeExport}${iifeEnd};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10678:        `}(${globalArg}(function${_}(${factoryArgs.join(', ')})${_}{${useStrict}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10679-    const wrapperOutro = n + n + '})));';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10829-                code: 'MODULE_LEVEL_DIRECTIVE',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10830:                message: `Module level directives cause errors when bundled, '${this.directive}' was ignored.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10831-            }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10983-        return `exports({${exportedVariables
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:10984:            .map(variable => `${variable.safeExportName || variable.exportName}: ${variable.getName()}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-10985-            .join(', ')}});`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11017-                const operation = this.operator.length > 1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:11018:                    ? ` ${this.left.variable.exportName} ${this.operator.slice(0, -1)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11019-                    : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:11020:                code.overwrite(operatorPos, operatorPos + this.operator.length, `= exports('${this.left.variable.exportName}',${operation}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11021-                code.appendLeft(this.right.end, `)`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11026-                if (systemPatternExports.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:11027:                    code.prependRight(this.start, `function (v) {${getSystemExportStatement(systemPatternExports)} return v;} (`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11028-                    code.appendLeft(this.end, ')');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11395-                code: 'ILLEGAL_NAMESPACE_REASSIGNMENT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:11396:                message: `Illegal reassignment to import '${this.object.name}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11397-            }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11424-                importer: relativeId(this.context.fileName),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:11425:                message: `'${exportName}' is not exported by '${relativeId(fileName)}'`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11426-                missing: exportName,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11448-                    code: 'CANNOT_CALL_NAMESPACE',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:11449:                    message: `Cannot call a namespace ('${this.callee.name}')`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-11450-                }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12229-            const s = options.compact ? '' : ';';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12230:            code.overwrite(this.start, this.end, `Promise.resolve().then(function${_}()${_}{${_}return ${this.inlineNamespace.getName()}${s}${_}})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12231-            return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12281-                        return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12282:                            left: `new Promise(function${_}(${resolve})${_}{${_}${resolve}({${_}'default':${_}require(`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12283:                            right: `)${_}});${_}})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12284-                        };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12286-                        return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12287:                            left: `new Promise(function${_}(${resolve})${_}{${_}${resolve}(${INTEROP_NAMESPACE_VARIABLE}(require(`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12288:                            right: `)));${_}})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12289-                        };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12291-                        return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12292:                            left: `new Promise(function${_}(${resolve})${_}{${_}${resolve}(require(`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12293:                            right: `));${_}})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12294-                        };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12301-                const resolveNamespace = this.exportMode === 'default'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12302:                    ? `function${_}(m)${_}{${_}${resolve}({${_}'default':${_}m${_}});${_}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12303-                    : this.exportMode === 'auto'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12304:                        ? `function${_}(m)${_}{${_}${resolve}(${INTEROP_NAMESPACE_VARIABLE}(m));${_}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12305-                        : resolve;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12306-                return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12307:                    left: `new Promise(function${_}(${resolve},${_}${reject})${_}{${_}require([`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12308:                    right: `],${_}${resolveNamespace},${_}${reject})${_}})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12309-                };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12318-                    return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12319:                        left: `${options.dynamicImportFunction}(`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12320-                        right: ')'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12561-            else if (metaProperty.startsWith(ASSET_PREFIX)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12562:                this.context.warnDeprecation(`Using the "${ASSET_PREFIX}" prefix to reference files is deprecated. Use the "${FILE_PREFIX}" prefix instead.`, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12563-                assetReferenceId = metaProperty.substr(ASSET_PREFIX.length);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12566-            else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12567:                this.context.warnDeprecation(`Using the "${CHUNK_PREFIX}" prefix to reference files is deprecated. Use the "${FILE_PREFIX}" prefix instead.`, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12568-                chunkReferenceId = metaProperty.substr(CHUNK_PREFIX.length);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12634-};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12635:const getResolveUrl = (path, URL = 'URL') => `new ${URL}(${path}).href`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12636:const getRelativeUrlFromDocument = (relativePath) => getResolveUrl(`'${relativePath}', document.currentScript && document.currentScript.src || document.baseURI`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12637-const getGenericImportMetaMechanism = (getUrl) => (prop, chunkId) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12638-    const urlMechanism = getUrl(chunkId);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12639:    return prop === null ? `({ url: ${urlMechanism} })` : prop === 'url' ? urlMechanism : 'undefined';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12640-};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12641:const getUrlFromDocument = (chunkId) => `(document.currentScript && document.currentScript.src || new URL('${chunkId}', document.baseURI).href)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12642-const relativeUrlMechanisms = {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12645-            relativePath = './' + relativePath;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12646:        return getResolveUrl(`require.toUrl('${relativePath}'), document.baseURI`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12647-    },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12648:    cjs: relativePath => `(typeof document === 'undefined' ? ${getResolveUrl(`'file:' + __dirname + '/${relativePath}'`, `(require('u' + 'rl').URL)`)} : ${getRelativeUrlFromDocument(relativePath)})`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12649:    es: relativePath => getResolveUrl(`'${relativePath}', import.meta.url`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12650-    iife: relativePath => getRelativeUrlFromDocument(relativePath),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12651:    system: relativePath => getResolveUrl(`'${relativePath}', module.meta.url`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12652:    umd: relativePath => `(typeof document === 'undefined' ? ${getResolveUrl(`'file:' + __dirname + '/${relativePath}'`, `(require('u' + 'rl').URL)`)} : ${getRelativeUrlFromDocument(relativePath)})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12653-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12655-    amd: getGenericImportMetaMechanism(() => getResolveUrl(`module.uri, document.baseURI`)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12656:    cjs: getGenericImportMetaMechanism(chunkId => `(typeof document === 'undefined' ? ${getResolveUrl(`'file:' + __filename`, `(require('u' + 'rl').URL)`)} : ${getUrlFromDocument(chunkId)})`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12657-    iife: getGenericImportMetaMechanism(chunkId => getUrlFromDocument(chunkId)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12658:    system: prop => (prop === null ? `module.meta` : `module.meta.${prop}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:12659:    umd: getGenericImportMetaMechanism(chunkId => `(typeof document === 'undefined' ? ${getResolveUrl(`'file:' + __filename`, `(require('u' + 'rl').URL)`)} : ${getUrlFromDocument(chunkId)})`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-12660-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13345-                    code: 'CANNOT_CALL_NAMESPACE',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:13346:                    message: `Cannot call a namespace ('${name}')`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13347-                }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13573-            if (this.prefix) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:13574:                code.overwrite(this.start, this.end, `exports('${variable.exportName}', ${this.operator}${name})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13575-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13579-                    case '++':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:13580:                        op = `${name} + 1`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13581-                        break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13582-                    case '--':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:13583:                        op = `${name} - 1`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13584-                        break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13585-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:13586:                code.overwrite(this.start, this.end, `(exports('${variable.exportName}', ${op}), ${name}${this.operator})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13587-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13721-                    else if (node.id.variable.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:13722:                        code.prependLeft(code.original.indexOf('=', node.id.end) + 1, ` exports('${node.id.variable.safeExportName || node.id.variable.exportName}',`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13723-                        nextSeparatorString += ')';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13732-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:13733:                    leadingString += `${this.kind} `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-13734-                    isInDeclaration = true;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14233-SOURCEMAPPING_URL += 'ppingURL';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14234:const SOURCEMAPPING_URL_RE = new RegExp(`^#\\s+${SOURCEMAPPING_URL}=.+\\n?`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14235-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14257-        case 1:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14258:            return `# ${label}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14259-        case 2:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14260:            return `## ${label}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14261-        case 3:
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14263-        default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14264:            return `${'  '.repeat(level - 4)}- ${label}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14265-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14308-        if (TIMED_PLUGIN_HOOKS[hook] === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14309:            let timerLabel = `plugin ${index}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14310-            if (plugin.name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14311:                timerLabel += ` (${plugin.name})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14312-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14313:            timerLabel += ` - ${hook}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14314-            timedPlugin[hook] = function () {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14318-                if (result && typeof result.then === 'function') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14319:                    timeStart(`${timerLabel} (async)`, 4);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14320:                    result.then(() => timeEnd(`${timerLabel} (async)`, 4));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14321-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14375-        code: 'MISSING_EXPORT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14376:        message: `'${exportName}' is not exported by ${relativeId(importedModule)}, imported by ${relativeId(importingModule.id)}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14377-        url: `https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14461-                    },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14462:                    message: `Error when using sourcemap for reporting an error: ${e.message}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14463-                    pos
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14487-            if (module instanceof ExternalModule) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14488:                allExportNames.add(`*${module.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14489-                continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14600-            if (module instanceof ExternalModule) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14601:                reexports.add(`*${module.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14602-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14987-            exportName: name,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:14988:            message: `Missing export "${name}" has been shimmed in module ${relativeId(this.id)}.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-14989-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15037-                        return error({
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15038:                            message: `Multiple conflicting contents for sourcemap source ${traced.source.filename}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15039-                        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15096-            code: 'SOURCEMAP_BROKEN',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15097:            message: `Sourcemap is likely to be incorrect: a plugin (${map.plugin}) was used to transform ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15098-                "files, but didn't generate a sourcemap for the transformation. Consult the plugin " +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15384-    if (!isPlainPathFragment(pattern))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15385:        return error(errFailedValidation(`Invalid pattern "${pattern}" for "${patternName}", patterns can be neither absolute nor relative paths and must not contain invalid characters.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15386-    return pattern.replace(/\[(\w+)\]/g, (_match, type) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15387-        if (!replacements.hasOwnProperty(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15388:            return error(errFailedValidation(`"[${type}]" is not a valid placeholder in "${patternName}" pattern.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15389-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15391-        if (!isPlainPathFragment(replacement))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15392:            return error(errFailedValidation(`Invalid substitution "${replacement}" for placeholder "[${type}]" in "${patternName}" pattern, can be neither absolute nor relative path.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15393-        return replacement;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15423-            guess: module.variableName,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15424:            message: `No name was provided for external module '${module.id}' in output.globals – guessing '${module.variableName}'`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15425-            source: module.id
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15560-            });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15561:            path$1 = relative(preserveModulesRelativeDir, `${path.dirname(sanitizedId)}/${name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15562-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15563-        else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15564:            path$1 = `_virtual/${path.basename(sanitizedId)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15565-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15631-            const variable = this.exportNames[exportName];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15632:            return `${relativeId(variable.module.id).replace(/\\/g, '/')}:${variable.name}:${exportName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15633-        })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15644-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15645:        throw new Error(`Internal Error: Could not find export name for variable ${variable.name}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15646-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15719-        if (this.needsExportsShim) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15720:            magicString.prepend(`${n}${renderOptions.varOrConst} ${MISSING_EXPORT_SHIM_VARIABLE}${_}=${_}void 0;${n}${n}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15721-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15733-                code: 'EMPTY_BUNDLE',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15734:                message: `Generated an empty chunk: "${chunkName}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15735-            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15784-                code: 'INVALID_TLA_FORMAT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15785:                message: `Module format ${format} does not support top-level await. Use the "es" or "system" output formats rather.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15786-            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15886-                const renderedResolution = resolution instanceof Module
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:15887:                    ? `'${this.getRelativePath(resolution.facadeChunk.id, stripKnownJsExtensions)}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-15888-                    : resolution instanceof ExternalModule
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-16269-                graph.warnDeprecation({
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:16270:                    message: `The "${deprecated}" hook used by plugin ${plugin.name} is deprecated. The "${replacement}" hook should be used instead.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-16271-                    plugin: plugin.name
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-16343-        code: 'DUPLICATE_PLUGIN_NAME',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:16344:        message: `The plugin name ${pluginName} is being used twice in the same build. Plugin names must be distinct or provide a cacheKey (please post an issue to the plugin if you are a plugin user).`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-16345-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-16684-            timeEnd('load modules', 3);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:16685:            let msg = `Could not load ${id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-16686-            if (importer)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:16687:                msg += ` (imported by ${importer})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:16688:            msg += `: ${err.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-16689-            err.message = msg;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17011-        const assetName = emittedFile.fileName || emittedFile.name || fileReferenceId;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17012:        return error(errFailedValidation(`Could not set source for ${typeof assetName === 'string' ? `asset "${assetName}"` : 'unnamed asset'}, asset source needs to be a string, Uint8Array or Buffer.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17013-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17068-            if (consumedFile.type !== 'asset') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17069:                return error(errFailedValidation(`Asset sources can only be set for emitted assets but "${referenceId}" is an emitted chunk.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17070-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17143-        if (typeof emittedChunk.id !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17144:            return error(errFailedValidation(`Emitted chunks need to have a valid string id, received "${emittedChunk.id}"`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17145-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17223-            graph.warnDeprecation({
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17224:                message: `The "this.${handlerName}" plugin context function used by plugin ${pluginName} is deprecated. The "this.${newHandlerName}" plugin context function should be used instead.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17225-                plugin: pluginName
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17275-                if (foundModule == null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17276:                    throw new Error(`Unable to find module ${moduleId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17277-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17341-        code: 'INVALID_PLUGIN_HOOK',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17342:        message: `Error running plugin hook ${hookName} for ${pluginName}, expected a function hook.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17343-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17720-            do {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17721:                timeStart(`treeshaking pass ${treeshakingPass}`, 3);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17722-                this.needsTreeshakingPass = false;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17726-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17727:                timeEnd(`treeshaking pass ${treeshakingPass++}`, 3);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17728-            } while (this.needsTreeshakingPass);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17739-            if (warning.plugin)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17740:                str += `(${warning.plugin} plugin) `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17741-            if (warning.loc)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17742:                str += `${relativeId(warning.loc.file)} (${warning.loc.line}:${warning.loc.column}) `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17743-            str += warning.message;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17766-                importer: cyclePath[0],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17767:                message: `Circular dependency: ${cyclePath.join(' -> ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17768-            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17783-                        code: 'NON_EXISTENT_EXPORT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17784:                        message: `Non-existent export '${importDescription.name}' is imported from ${relativeId(importDescription.module.id)}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17785-                        name: importDescription.name,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17803-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17804:const concatSep = (out, next) => (next ? `${out}\n${next}` : out);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17805:const concatDblSep = (out, next) => (next ? `${out}\n\n${next}` : out);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17806-function createAddons(options, outputPluginDriver) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17816-        if (outro)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:17817:            outro = `\n\n${outro}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-17818-        if (banner.length)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-18086-        if (!plugin.name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:18087:            plugin.name = `${anonymousPrefix}${pluginIndex + 1}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-18088-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-18305-            else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:18306:                url = `${path.basename(outputFile.fileName)}.map`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:18307:                writeSourceMapPromise = writeFile(`${fileName}.map`, outputFile.map.toString());
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-18308-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-18309-            if (outputOptions.sourcemap !== 'hidden') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js:18310:                source += `//# ${SOURCEMAPPING_URL}=${url}\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/rollup.js-18311-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-229-    if (opts.capture) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:230:      return `(${result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-231-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-234-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:235:    return `(?:${result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-236-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-262-  if (opts.capture === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:263:    state.result = `(${state.result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-264-  } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:265:    state.result = `(?:${state.result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-266-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-426-  if (stop || start > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:427:    return `{${start + (stop ? ',' + stop : '')}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-428-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-432-function toCharacterClass(a, b, options) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:433:  return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-434-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-455-    default: {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:456:      return relax ? `0{0,${diff}}` : `0{${diff}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-457-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-486-const zeros = input => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:487:  let value = `${input}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-488-  let index = -1;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-537-  if (parts.negatives.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:538:    negatives = `-(${prefix}${parts.negatives.join('|')})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-539-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-541-  if (positives && negatives) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:542:    result = `${positives}|${negatives}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-543-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-547-  if (options.wrap) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:548:    return `(${prefix}${result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-549-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-562-  let stop = String.fromCharCode(b);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:563:  return `[${start}-${stop}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-564-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-569-    let prefix = options.capture ? '' : '?:';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:570:    return wrap ? `(${prefix}${start.join('|')})` : start.join('|');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-571-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-585-  if (options.strictRanges === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:586:    throw new TypeError(`Expected step "${step}" to be a number`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-587-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-649-  let format = options.transform || (val => String.fromCharCode(val));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:650:  let a = `${start}`.charCodeAt(0);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:651:  let b = `${end}`.charCodeAt(0);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-652-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-747-      if (range.length !== 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:748:        return args.length > 1 && range.length > 1 ? `(${range})` : range;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-749-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-772-  if (!queue.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:773:    return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-774-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-782-      for (let ele of stash) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:783:        if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-784-        result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-962-  if (input.length > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:963:    throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-964-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1420-const WIN_SLASH = '\\\\/';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1421:const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1422-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1432-const QMARK = '[^/]';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1433:const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1434:const START_ANCHOR = `(?:^|${SLASH_LITERAL})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1435:const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1436:const NO_DOT = `(?!${DOT_LITERAL})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1437:const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1438:const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1439:const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1440:const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1441:const STAR = `${QMARK}*?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1442-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1467-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1468:  SLASH_LITERAL: `[${WIN_SLASH}]`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1469-  QMARK: WIN_NO_SLASH,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1470:  STAR: `${WIN_NO_SLASH}*?`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1471:  DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1472:  NO_DOT: `(?!${DOT_LITERAL})`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1473:  NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1474:  NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1475:  NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1476:  QMARK_NO_DOT: `[^.${WIN_SLASH}]`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1477:  START_ANCHOR: `(?:^|[${WIN_SLASH}])`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1478:  END_ANCHOR: `(?:[${WIN_SLASH}]|$)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1479-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1579-    return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1580:      '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1581-      '?': { type: 'qmark', open: '(?:', close: ')?' },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1638-  if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1639:  return `${input.slice(0, idx)}\\${input.slice(idx)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1640-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1654-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1655:  let output = `${prepend}(?:${input})${append}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1656-  if (state.negated === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:1657:    output = `(?:^(?!${output}).*$)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-1658-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2065-  args.sort();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2066:  const value = `[${args.join('-')}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2067-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2075-const syntaxError = (type, char) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2076:  return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2077-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2097-  if (len > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2098:    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2099-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2126-  const globstar = (opts) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2127:    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2128-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2134-  if (opts.capture) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2135:    star = `(${star})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2136-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2277-      if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2278:        output = token.close = `)$))${extglobStar}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2279-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2322-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2323:      return esc ? m : `\\${m}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2324-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2431-      if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2432:        value = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2433-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2435-      if (value === ']' && (prev.value === '[' || prev.value === '[^')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2436:        value = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2437-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2507-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2508:        value = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2509-      } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2518-      if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2519:        push({ type: 'text', value, output: `\\${value}` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2520-        continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2527-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2528:        push({ type: 'text', value, output: `\\${value}` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2529-        continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2535-      if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2536:        value = `/${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2537-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2559-      // when the user specifies nothing, try to match both
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2560:      prev.value = `(${capture}${escaped}|${prev.value})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2561-      state.output += prev.value;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2724-        if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2725:          output = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2726-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2802-      if (value === '$' || value === '^') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2803:        value = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2804-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2881-        state.output = state.output.slice(0, -(prior.output + prev.output).length);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2882:        prior.output = `(?:${prior.output}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2883-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2896-        state.output = state.output.slice(0, -(prior.output + prev.output).length);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2897:        prior.output = `(?:${prior.output}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2898-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2899-        prev.type = 'globstar';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2900:        prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2901-        prev.value += value;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2914-        prev.value += value;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2915:        prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2916-        state.output = prev.output;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2996-  if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:2997:    push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-2998-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3026-  if (len > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3027:    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3028-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3052-  if (opts.capture) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3053:    star = `(${star})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3054-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3057-    if (opts.noglobstar === true) return star;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3058:    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3059-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3063-      case '*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3064:        return `${nodot}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3065-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3066-      case '.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3067:        return `${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3068-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3069-      case '*.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3070:        return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3071-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3072-      case '*/*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3073:        return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3074-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3078-      case '**/*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3079:        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3080-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3081-      case '**/*.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3082:        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3083-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3084-      case '**/.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3085:        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3086-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3102-  if (source && opts.strictSlashes !== true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3103:    source += `${SLASH_LITERAL}?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3104-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3361-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3362:  let source = `${prepend}(?:${parsed.output})${append}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3363-  if (parsed && parsed.negated === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3364:    source = `^(?!${source}).*$`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3365-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3506-    if (options.failglob === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3507:      throw new Error(`No matches found for "${patterns.join(', ')}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3508-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3628-  if (typeof str !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3629:    throw new TypeError(`Expected a string: "${_events_commonjsExternal.require$$1.inspect(str)}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3630-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3774-  if (typeof str !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3775:    throw new TypeError(`Expected a string: "${_events_commonjsExternal.require$$1.inspect(str)}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3776-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3802-  let regex = picomatch$1.makeRe(String(glob), { ...options, capture: true });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:3803:  let match = regex.exec(posix ? utils$1.toPosixSlashes(input) : input);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-3804-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-4183-  } else if (type && !ALL_TYPES.includes(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:4184:    throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-4185-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-4756-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:4757:exports.DOT_SLASH = `.${sep}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-4758-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-6040-  if (!paths.every(p => typeof p === STRING_TYPE)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:6041:    throw new TypeError(`Non-string provided as watch path: ${paths}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-6042-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-6448-  ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js:6449:    this[`_${key}`].clear();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/watch.js-6450-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-35-  return rawInit(
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:36:    `\x1b[${open}m`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:37:    `\x1b[${close}m`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:38:    new RegExp(`\\x1b\\[${close}m`, "g"),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:39:    `\x1b[${open}m`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-40-  )
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-100-    if (err.name)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:101:        description = `${err.name}: ${description}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-102-    const message = (err.plugin
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:103:        ? `(plugin ${(err).plugin}) ${description}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-104-        : description) || err;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:105:    stderr(colorette.bold(colorette.red(`[!] ${colorette.bold(message.toString())}`)));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-106-    if (err.url) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-109-    if (err.loc) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:110:        stderr(`${rollup_js.relativeId((err.loc.file || err.id))} (${err.loc.line}:${err.loc.column})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-111-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-149-                    const loc = warning.loc
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:150:                        ? `${rollup_js.relativeId(id)}: (${warning.loc.line}:${warning.loc.column})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-151-                        : rollup_js.relativeId(id);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-177-        const detail = warning.modules.length === 1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:178:            ? `'${warning.modules[0]}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-179-            : `${warning
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-180-                .modules.slice(0, -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:181:                .map((name) => `'${name}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-182-                .join(', ')} and '${warning.modules.slice(-1)}'`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:183:        stderr(`Creating a browser bundle that depends on ${detail}. You might need to include https://www.npmjs.com/package/rollup-plugin-node-builtins`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-184-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-187-    CIRCULAR_DEPENDENCY(warnings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:188:        title(`Circular dependenc${warnings.length > 1 ? 'ies' : 'y'}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-189-        const displayed = warnings.length > 5 ? warnings.slice(0, 3) : warnings;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-193-        if (warnings.length > displayed.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:194:            stderr(`...and ${warnings.length - displayed.length} more`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-195-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-197-    EMPTY_BUNDLE(warnings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:198:        title(`Generated${warnings.length === 1 ? ' an' : ''} empty ${warnings.length > 1 ? 'chunks' : 'chunk'}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-199-        stderr(warnings.map(warning => warning.chunkName).join(', '));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-210-            stderr(colorette.bold(warning.importer));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:211:            stderr(`${warning.missing} is not exported by ${warning.exporter}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-212-            stderr(colorette.gray(warning.frame));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-215-    MISSING_GLOBAL_NAME(warnings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:216:        title(`Missing global variable ${warnings.length > 1 ? 'names' : 'name'}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-217-        stderr(`Use output.globals to specify browser global variable names corresponding to external modules`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-218-        for (const warning of warnings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:219:            stderr(`${colorette.bold(warning.source)} (guessing '${warning.guess}')`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-220-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-230-        if (displayedWarnings.length < warnings.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:231:            stderr(`...and ${warnings.length - displayedWarnings.length} other entry modules`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-232-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-237-        for (const warning of warnings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:238:            stderr(`${colorette.bold(rollup_js.relativeId(warning.reexporter))} re-exports '${warning.name}' from both ${rollup_js.relativeId(warning.sources[0])} and ${rollup_js.relativeId(warning.sources[1])} (will be ignored)`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-239-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-241-    NON_EXISTENT_EXPORT(warnings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:242:        title(`Import of non-existent ${warnings.length > 1 ? 'exports' : 'export'}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-243-        showTruncatedWarnings(warnings);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-250-            for (const { key: message, items } of nestedByMessage) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:251:                title(`Plugin ${plugin}: ${message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-252-                for (const warning of items) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-257-                        if (warning.loc) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:258:                            loc += `: (${warning.loc.line}:${warning.loc.column})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-259-                        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-274-                .slice(0, -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:275:                .map(p => `'${p}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-276-                .join(', ')} and '${plugins.slice(-1)}')`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:277:            : ` (such as '${plugins[0]}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:278:        stderr(`Plugins that transform code${detail} should generate accompanying sourcemaps`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-279-    },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-295-            const importers = dependencies.get(dependency);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:296:            stderr(`${colorette.bold(dependency)} (imported by ${importers.join(', ')})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-297-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-301-        for (const warning of warnings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:302:            stderr(`${warning.names} imported from external module '${warning.source}' but never used`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-303-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-306-function title(str) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:307:    stderr(colorette.bold(colorette.yellow(`(!) ${str}`)));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-308-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-334-        if (items.length > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:335:            stderr(`...and ${items.length - 1} other ${items.length > 2 ? 'occurrences' : 'occurrence'}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-336-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-338-    if (nestedByModule.length > displayedByModule.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:339:        stderr(`\n...and ${nestedByModule.length - displayedByModule.length} other files`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-340-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-412-        else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:413:            throw new Error(`Invalid --plugin argument format: ${JSON.stringify(pluginText)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-414-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-434-            catch (ex) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js:435:                throw new Error(`Cannot load plugin "${pluginText}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/shared/commandPlugins.js-436-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/loadConfigFile.js-74-    if (!silent && warnings.count > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/loadConfigFile.js:75:        commandPlugins.stderr(commandPlugins.color.bold(`loaded ${rollup_js.relativeId(fileName)} with warnings`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/loadConfigFile.js-76-        warnings.flush();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/loadConfigFile.js-104-                code: 'TRANSPILED_ESM_CONFIG',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/loadConfigFile.js:105:                message: `While loading the Rollup configuration from "${rollup_js.relativeId(fileName)}", Node tried to require an ES module from a CommonJS file, which is not supported. A common cause is if there is a package.json file with "type": "module" in the same folder. You can try to fix this by changing the extension of your configuration file to ".cjs" or ".mjs" depending on the content, which will prevent Rollup from trying to preprocess the file but rather hand it to Node directly.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/loadConfigFile.js-106-                url: 'https://rollupjs.org/guide/en/#using-untranspiled-config-files',
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/rollup.browser.js-10-*/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/rollup.browser.js:11:var e,t;e=this,t=function(e){var t={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},s="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",i={5:s,"5module":s+" export import",6:s+" const class extends export import super"},n=/^in(stanceof)?$/,r="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿯ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-Ᶎꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭧꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",a="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",o=new RegExp("["+r+"]"),h=new RegExp("["+r+a+"]");r=a=null;var l=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,155,22,13,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,0,33,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,0,161,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,754,9486,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541],c=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,232,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,792487,239];function u(e,t){for(var s=65536,i=0;i<t.length;i+=2){if((s+=t[i])>e)return!1;if((s+=t[i+1])>=e)return!0}}function d(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&o.test(String.fromCharCode(e)):!1!==t&&u(e,l)))}function p(e,t){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&h.test(String.fromCharCode(e)):!1!==t&&(u(e,l)||u(e,c)))))}var f=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function m(e,t){return new f(e,{beforeExpr:!0,binop:t})}var g={beforeExpr:!0},x={startsExpr:!0},y={};function E(e,t){return void 0===t&&(t={}),t.keyword=e,y[e]=new f(e,t)}var b={num:new f("num",x),regexp:new f("regexp",x),string:new f("string",x),name:new f("name",x),eof:new f("eof"),bracketL:new f("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new f("]"),braceL:new f("{",{beforeExpr:!0,startsExpr:!0}),braceR:new f("}"),parenL:new f("(",{beforeExpr:!0,startsExpr:!0}),parenR:new f(")"),comma:new f(",",g),semi:new f(";",g),colon:new f(":",g),dot:new f("."),question:new f("?",g),arrow:new f("=>",g),template:new f("template"),invalidTemplate:new f("invalidTemplate"),ellipsis:new f("...",g),backQuote:new f("`",x),dollarBraceL:new f("${",{beforeExpr:!0,startsExpr:!0}),eq:new f("=",{beforeExpr:!0,isAssign:!0}),assign:new f("_=",{beforeExpr:!0,isAssign:!0}),incDec:new f("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new f("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:m("||",1),logicalAND:m("&&",2),bitwiseOR:m("|",3),bitwiseXOR:m("^",4),bitwiseAND:m("&",5),equality:m("==/!=/===/!==",6),relational:m("</>/<=/>=",7),bitShift:m("<</>>/>>>",8),plusMin:new f("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:m("%",10),star:m("*",10),slash:m("/",10),starstar:new f("**",{beforeExpr:!0}),_break:E("break"),_case:E("case",g),_catch:E("catch"),_continue:E("continue"),_debugger:E("debugger"),_default:E("default",g),_do:E("do",{isLoop:!0,beforeExpr:!0}),_else:E("else",g),_finally:E("finally"),_for:E("for",{isLoop:!0}),_function:E("function",x),_if:E("if"),_return:E("return",g),_switch:E("switch"),_throw:E("throw",g),_try:E("try"),_var:E("var"),_const:E("const"),_while:E("while",{isLoop:!0}),_with:E("with"),_new:E("new",{beforeExpr:!0,startsExpr:!0}),_this:E("this",x),_super:E("super",x),_class:E("class",x),_extends:E("extends",g),_export:E("export"),_import:E("import",x),_null:E("null",x),_true:E("true",x),_false:E("false",x),_in:E("in",{beforeExpr:!0,binop:7}),_instanceof:E("instanceof",{beforeExpr:!0,binop:7}),_typeof:E("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:E("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:E("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},v=/\r\n?|\n|\u2028|\u2029/,S=new RegExp(v.source,"g");function A(e,t){return 10===e||13===e||!t&&(8232===e||8233===e)}var C=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,P=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,k=Object.prototype,w=k.hasOwnProperty,N=k.toString;function _(e,t){return w.call(e,t)}var I=Array.isArray||function(e){return"[object Array]"===N.call(e)};function $(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}var T=function(e,t){this.line=e,this.column=t};T.prototype.offset=function(e){return new T(this.line,this.column+e)};var R=function(e,t,s){this.start=t,this.end=s,null!==e.sourceFile&&(this.source=e.sourceFile)};function L(e,t){for(var s=1,i=0;;){S.lastIndex=i;var n=S.exec(e);if(!(n&&n.index<t))return new T(s,t-i);++s,i=n.index+n[0].length}}var M={ecmaVersion:10,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1};function D(e){var t={};for(var s in M)t[s]=e&&_(e,s)?e[s]:M[s];if(t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),I(t.onToken)){var i=t.onToken;t.onToken=function(e){return i.push(e)}}return I(t.onComment)&&(t.onComment=function(e,t){return function(s,i,n,r,a,o){var h={type:s?"Block":"Line",value:i,start:n,end:r};e.locations&&(h.loc=new R(this,a,o)),e.ranges&&(h.range=[n,r]),t.push(h)}}(t,t.onComment)),t}function O(e,t){return 2|(e?4:0)|(t?8:0)}var V=function(e,s,n){this.options=e=D(e),this.sourceFile=e.sourceFile,this.keywords=$(i[e.ecmaVersion>=6?6:"module"===e.sourceType?"5module":5]);var r="";if(!0!==e.allowReserved){for(var a=e.ecmaVersion;!(r=t[a]);a--);"module"===e.sourceType&&(r+=" await")}this.reservedWords=$(r);var o=(r?r+" ":"")+t.strict;this.reservedWordsStrict=$(o),this.reservedWordsStrictBind=$(o+" "+t.strictBind),this.input=String(s),this.containsEsc=!1,n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(v).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=b.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports={},0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null},B={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0}};V.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},B.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},B.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},B.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},B.allowSuper.get=function(){return(64&this.currentThisScope().flags)>0},B.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},B.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},V.prototype.inNonArrowFunction=function(){return(2&this.currentThisScope().flags)>0},V.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var s=this,i=0;i<e.length;i++)s=e[i](s);return s},V.parse=function(e,t){return new this(t,e).parse()},V.parseExpressionAt=function(e,t,s){var i=new this(s,e,t);return i.nextToken(),i.parseExpression()},V.tokenizer=function(e,t){return new this(t,e)},Object.defineProperties(V.prototype,B);var F=V.prototype,W=/^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)")/;function U(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}F.strictDirective=function(e){for(;;){P.lastIndex=e,e+=P.exec(this.input)[0].length;var t=W.exec(this.input.slice(e));if(!t)return!1;if("use strict"===(t[1]||t[2]))return!0;e+=t[0].length,P.lastIndex=e,e+=P.exec(this.input)[0].length,";"===this.input[e]&&e++}},F.eat=function(e){return this.type===e&&(this.next(),!0)},F.isContextual=function(e){return this.type===b.name&&this.value===e&&!this.containsEsc},F.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},F.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},F.canInsertSemicolon=function(){return this.type===b.eof||this.type===b.braceR||v.test(this.input.slice(this.lastTokEnd,this.start))},F.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},F.semicolon=function(){this.eat(b.semi)||this.insertSemicolon()||this.unexpected()},F.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},F.expect=function(e){this.eat(e)||this.unexpected()},F.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},F.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var s=t?e.parenthesizedAssign:e.parenthesizedBind;s>-1&&this.raiseRecoverable(s,"Parenthesized pattern")}},F.checkExpressionErrors=function(e,t){if(!e)return!1;var s=e.shorthandAssign,i=e.doubleProto;if(!t)return s>=0||i>=0;s>=0&&this.raise(s,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},F.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},F.isSimpleAssignTarget=function(e){return"ParenthesizedExpression"===e.type?this.isSimpleAssignTarget(e.expression):"Identifier"===e.type||"MemberExpression"===e.type};var z=V.prototype;z.parseTopLevel=function(e){var t={};for(e.body||(e.body=[]);this.type!==b.eof;){var s=this.parseStatement(null,!0,t);e.body.push(s)}if(this.inModule)for(var i=0,n=Object.keys(this.undefinedExports);i<n.length;i+=1){var r=n[i];this.raiseRecoverable(this.undefinedExports[r].start,"Export '"+r+"' is not defined")}return this.adaptDirectivePrologue(e.body),this.next(),e.sourceType=this.options.sourceType,this.finishNode(e,"Program")};var j={kind:"loop"},G={kind:"switch"};z.isLet=function(e){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;P.lastIndex=this.pos;var t=P.exec(this.input),s=this.pos+t[0].length,i=this.input.charCodeAt(s);if(91===i)return!0;if(e)return!1;if(123===i)return!0;if(d(i,!0)){for(var r=s+1;p(this.input.charCodeAt(r),!0);)++r;var a=this.input.slice(s,r);if(!n.test(a))return!0}return!1},z.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;P.lastIndex=this.pos;var e=P.exec(this.input),t=this.pos+e[0].length;return!(v.test(this.input.slice(this.pos,t))||"function"!==this.input.slice(t,t+8)||t+8!==this.input.length&&p(this.input.charAt(t+8)))},z.parseStatement=function(e,t,s){var i,n=this.type,r=this.startNode();switch(this.isLet(e)&&(n=b._var,i="let"),n){case b._break:case b._continue:return this.parseBreakContinueStatement(r,n.keyword);case b._debugger:return this.parseDebuggerStatement(r);case b._do:return this.parseDoStatement(r);case b._for:return this.parseForStatement(r);case b._function:return e&&(this.strict||"if"!==e&&"label"!==e)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!e);case b._class:return e&&this.unexpected(),this.parseClass(r,!0);case b._if:return this.parseIfStatement(r);case b._return:return this.parseReturnStatement(r);case b._switch:return this.parseSwitchStatement(r);case b._throw:return this.parseThrowStatement(r);case b._try:return this.parseTryStatement(r);case b._const:case b._var:return i=i||this.value,e&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case b._while:return this.parseWhileStatement(r);case b._with:return this.parseWithStatement(r);case b.braceL:return this.parseBlock(!0,r);case b.semi:return this.parseEmptyStatement(r);case b._export:case b._import:if(this.options.ecmaVersion>10&&n===b._import){P.lastIndex=this.pos;var a=P.exec(this.input),o=this.pos+a[0].length;if(40===this.input.charCodeAt(o))return this.parseExpressionStatement(r,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),n===b._import?this.parseImport(r):this.parseExport(r,s);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!e);var h=this.value,l=this.parseExpression();return n===b.name&&"Identifier"===l.type&&this.eat(b.colon)?this.parseLabeledStatement(r,h,l,e):this.parseExpressionStatement(r,l)}},z.parseBreakContinueStatement=function(e,t){var s="break"===t;this.next(),this.eat(b.semi)||this.insertSemicolon()?e.label=null:this.type!==b.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var n=this.labels[i];if(null==e.label||n.name===e.label.name){if(null!=n.kind&&(s||"loop"===n.kind))break;if(e.label&&s)break}}return i===this.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,s?"BreakStatement":"ContinueStatement")},z.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},z.parseDoStatement=function(e){return this.next(),this.labels.push(j),e.body=this.parseStatement("do"),this.labels.pop(),this.expect(b._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(b.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},z.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(j),this.enterScope(0),this.expect(b.parenL),this.type===b.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var s=this.isLet();if(this.type===b._var||this.type===b._const||s){var i=this.startNode(),n=s?"let":this.value;return this.next(),this.parseVar(i,!0,n),this.finishNode(i,"VariableDeclaration"),(this.type===b._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===i.declarations.length?(this.options.ecmaVersion>=9&&(this.type===b._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,i)):(t>-1&&this.unexpected(t),this.parseFor(e,i))}var r=new U,a=this.parseExpression(!0,r);return this.type===b._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===b._in?t>-1&&this.unexpected(t):e.await=t>-1),this.toAssignable(a,!1,r),this.checkLVal(a),this.parseForIn(e,a)):(this.checkExpressionErrors(r,!0),t>-1&&this.unexpected(t),this.parseFor(e,a))},z.parseFunctionStatement=function(e,t,s){return this.next(),this.parseFunction(e,q|(s?0:K),!1,t)},z.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(b._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},z.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(b.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},z.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(b.braceL),this.labels.push(G),this.enterScope(0);for(var s=!1;this.type!==b.braceR;)if(this.type===b._case||this.type===b._default){var i=this.type===b._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),i?t.test=this.parseExpression():(s&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),s=!0,t.test=null),this.expect(b.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},z.parseThrowStatement=function(e){return this.next(),v.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var H=[];z.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===b._catch){var t=this.startNode();if(this.next(),this.eat(b.parenL)){t.param=this.parseBindingAtom();var s="Identifier"===t.param.type;this.enterScope(s?32:0),this.checkLVal(t.param,s?4:2),this.expect(b.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(b._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},z.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},z.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(j),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},z.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},z.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},z.parseLabeledStatement=function(e,t,s,i){for(var n=0,r=this.labels;n<r.length;n+=1)r[n].name===t&&this.raise(s.start,"Label '"+t+"' is already declared");for(var a=this.type.isLoop?"loop":this.type===b._switch?"switch":null,o=this.labels.length-1;o>=0;o--){var h=this.labels[o];if(h.statementStart!==e.start)break;h.statementStart=this.start,h.kind=a}return this.labels.push({name:t,kind:a,statementStart:this.start}),e.body=this.parseStatement(i?-1===i.indexOf("label")?i+"label":i:"label"),this.labels.pop(),e.label=s,this.finishNode(e,"LabeledStatement")},z.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},z.parseBlock=function(e,t){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(b.braceL),e&&this.enterScope(0);!this.eat(b.braceR);){var s=this.parseStatement(null);t.body.push(s)}return e&&this.exitScope(),this.finishNode(t,"BlockStatement")},z.parseFor=function(e,t){return e.init=t,this.expect(b.semi),e.test=this.type===b.semi?null:this.parseExpression(),this.expect(b.semi),e.update=this.type===b.parenR?null:this.parseExpression(),this.expect(b.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},z.parseForIn=function(e,t){var s=this.type===b._in;return this.next(),"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(!s||this.options.ecmaVersion<8||this.strict||"var"!==t.kind||"Identifier"!==t.declarations[0].id.type)?this.raise(t.start,(s?"for-in":"for-of")+" loop variable declaration may not have an initializer"):"AssignmentPattern"===t.type&&this.raise(t.start,"Invalid left-hand side in for-loop"),e.left=t,e.right=s?this.parseExpression():this.parseMaybeAssign(),this.expect(b.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,s?"ForInStatement":"ForOfStatement")},z.parseVar=function(e,t,s){for(e.declarations=[],e.kind=s;;){var i=this.startNode();if(this.parseVarId(i,s),this.eat(b.eq)?i.init=this.parseMaybeAssign(t):"const"!==s||this.type===b._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"===i.id.type||t&&(this.type===b._in||this.isContextual("of"))?i.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(i,"VariableDeclarator")),!this.eat(b.comma))break}return e},z.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLVal(e.id,"var"===t?1:2,!1)};var q=1,K=2;z.parseFunction=function(e,t,s,i){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===b.star&&t&K&&this.unexpected(),e.generator=this.eat(b.star)),this.options.ecmaVersion>=8&&(e.async=!!i),t&q&&(e.id=4&t&&this.type!==b.name?null:this.parseIdent(),!e.id||t&K||this.checkLVal(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?1:2:3));var n=this.yieldPos,r=this.awaitPos,a=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(O(e.async,e.generator)),t&q||(e.id=this.type===b.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,s,!1),this.yieldPos=n,this.awaitPos=r,this.awaitIdentPos=a,this.finishNode(e,t&q?"FunctionDeclaration":"FunctionExpression")},z.parseFunctionParams=function(e){this.expect(b.parenL),e.params=this.parseBindingList(b.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},z.parseClass=function(e,t){this.next();var s=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var i=this.startNode(),n=!1;for(i.body=[],this.expect(b.braceL);!this.eat(b.braceR);){var r=this.parseClassElement(null!==e.superClass);r&&(i.body.push(r),"MethodDefinition"===r.type&&"constructor"===r.kind&&(n&&this.raise(r.start,"Duplicate constructor in the same class"),n=!0))}return e.body=this.finishNode(i,"ClassBody"),this.strict=s,this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},z.parseClassElement=function(e){var t=this;if(this.eat(b.semi))return null;var s=this.startNode(),i=function(e,i){void 0===i&&(i=!1);var n=t.start,r=t.startLoc;return!(!t.eatContextual(e)||(t.type===b.parenL||i&&t.canInsertSemicolon())&&(s.key&&t.unexpected(),s.computed=!1,s.key=t.startNodeAt(n,r),s.key.name=e,t.finishNode(s.key,"Identifier"),1))};s.kind="method",s.static=i("static");var n=this.eat(b.star),r=!1;n||(this.options.ecmaVersion>=8&&i("async",!0)?(r=!0,n=this.options.ecmaVersion>=9&&this.eat(b.star)):i("get")?s.kind="get":i("set")&&(s.kind="set")),s.key||this.parsePropertyName(s);var a=s.key,o=!1;return s.computed||s.static||!("Identifier"===a.type&&"constructor"===a.name||"Literal"===a.type&&"constructor"===a.value)?s.static&&"Identifier"===a.type&&"prototype"===a.name&&this.raise(a.start,"Classes may not have a static property named prototype"):("method"!==s.kind&&this.raise(a.start,"Constructor can't have get/set modifier"),n&&this.raise(a.start,"Constructor can't be a generator"),r&&this.raise(a.start,"Constructor can't be an async method"),s.kind="constructor",o=e),this.parseClassMethod(s,n,r,o),"get"===s.kind&&0!==s.value.params.length&&this.raiseRecoverable(s.value.start,"getter should have no params"),"set"===s.kind&&1!==s.value.params.length&&this.raiseRecoverable(s.value.start,"setter should have exactly one param"),"set"===s.kind&&"RestElement"===s.value.params[0].type&&this.raiseRecoverable(s.value.params[0].start,"Setter cannot use rest params"),s},z.parseClassMethod=function(e,t,s,i){return e.value=this.parseMethod(t,s,i),this.finishNode(e,"MethodDefinition")},z.parseClassId=function(e,t){this.type===b.name?(e.id=this.parseIdent(),t&&this.checkLVal(e.id,2,!1)):(!0===t&&this.unexpected(),e.id=null)},z.parseClassSuper=function(e){e.superClass=this.eat(b._extends)?this.parseExprSubscripts():null},z.parseExport=function(e,t){if(this.next(),this.eat(b.star))return this.expectContextual("from"),this.type!==b.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(b._default)){var s;if(this.checkExport(t,"default",this.lastTokStart),this.type===b._function||(s=this.isAsyncFunction())){var i=this.startNode();this.next(),s&&this.next(),e.declaration=this.parseFunction(i,4|q,!1,s)}else if(this.type===b._class){var n=this.startNode();e.declaration=this.parseClass(n,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==b.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var r=0,a=e.specifiers;r<a.length;r+=1){var o=a[r];this.checkUnreserved(o.local),this.checkLocalExport(o.local)}e.source=null}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},z.checkExport=function(e,t,s){e&&(_(e,t)&&this.raiseRecoverable(s,"Duplicate export '"+t+"'"),e[t]=!0)},z.checkPatternExport=function(e,t){var s=t.type;if("Identifier"===s)this.checkExport(e,t.name,t.start);else if("ObjectPattern"===s)for(var i=0,n=t.properties;i<n.length;i+=1){var r=n[i];this.checkPatternExport(e,r)}else if("ArrayPattern"===s)for(var a=0,o=t.elements;a<o.length;a+=1){var h=o[a];h&&this.checkPatternExport(e,h)}else"Property"===s?this.checkPatternExport(e,t.value):"AssignmentPattern"===s?this.checkPatternExport(e,t.left):"RestElement"===s?this.checkPatternExport(e,t.argument):"ParenthesizedExpression"===s&&this.checkPatternExport(e,t.expression)},z.checkVariableExport=function(e,t){if(e)for(var s=0,i=t;s<i.length;s+=1){var n=i[s];this.checkPatternExport(e,n.id)}},z.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},z.parseExportSpecifiers=function(e){var t=[],s=!0;for(this.expect(b.braceL);!this.eat(b.braceR);){if(s)s=!1;else if(this.expect(b.comma),this.afterTrailingComma(b.braceR))break;var i=this.startNode();i.local=this.parseIdent(!0),i.exported=this.eatContextual("as")?this.parseIdent(!0):i.local,this.checkExport(e,i.exported.name,i.exported.start),t.push(this.finishNode(i,"ExportSpecifier"))}return t},z.parseImport=function(e){return this.next(),this.type===b.string?(e.specifiers=H,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),e.source=this.type===b.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},z.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===b.name){var s=this.startNode();if(s.local=this.parseIdent(),this.checkLVal(s.local,2),e.push(this.finishNode(s,"ImportDefaultSpecifier")),!this.eat(b.comma))return e}if(this.type===b.star){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdent(),this.checkLVal(i.local,2),e.push(this.finishNode(i,"ImportNamespaceSpecifier")),e}for(this.expect(b.braceL);!this.eat(b.braceR);){if(t)t=!1;else if(this.expect(b.comma),this.afterTrailingComma(b.braceR))break;var n=this.startNode();n.imported=this.parseIdent(!0),this.eatContextual("as")?n.local=this.parseIdent():(this.checkUnreserved(n.imported),n.local=n.imported),this.checkLVal(n.local,2),e.push(this.finishNode(n,"ImportSpecifier"))}return e},z.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},z.isDirectiveCandidate=function(e){return"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&('"'===this.input[e.start]||"'"===this.input[e.start])};var X=V.prototype;X.toAssignable=function(e,t,s){if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",s&&this.checkPatternErrors(s,!0);for(var i=0,n=e.properties;i<n.length;i+=1){var r=n[i];this.toAssignable(r,t),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==e.kind&&this.raise(e.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(e.value,t);break;case"ArrayExpression":e.type="ArrayPattern",s&&this.checkPatternErrors(s,!0),this.toAssignableList(e.elements,t);break;case"SpreadElement":e.type="RestElement",this.toAssignable(e.argument,t),"AssignmentPattern"===e.argument.type&&this.raise(e.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==e.operator&&this.raise(e.left.end,"Only '=' operator can be used for specifying default value."),e.type="AssignmentPattern",delete e.operator,this.toAssignable(e.left,t);case"AssignmentPattern":break;case"ParenthesizedExpression":this.toAssignable(e.expression,t,s);break;case"MemberExpression":if(!t)break;default:this.raise(e.start,"Assigning to rvalue")}else s&&this.checkPatternErrors(s,!0);return e},X.toAssignableList=function(e,t){for(var s=e.length,i=0;i<s;i++){var n=e[i];n&&this.toAssignable(n,t)}if(s){var r=e[s-1];6===this.options.ecmaVersion&&t&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return e},X.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},X.parseRestBinding=function(){var e=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==b.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,"RestElement")},X.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case b.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(b.bracketR,!0,!0),this.finishNode(e,"ArrayPattern");case b.braceL:return this.parseObj(!0)}return this.parseIdent()},X.parseBindingList=function(e,t,s){for(var i=[],n=!0;!this.eat(e);)if(n?n=!1:this.expect(b.comma),t&&this.type===b.comma)i.push(null);else{if(s&&this.afterTrailingComma(e))break;if(this.type===b.ellipsis){var r=this.parseRestBinding();this.parseBindingListItem(r),i.push(r),this.type===b.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.expect(e);break}var a=this.parseMaybeDefault(this.start,this.startLoc);this.parseBindingListItem(a),i.push(a)}return i},X.parseBindingListItem=function(e){return e},X.parseMaybeDefault=function(e,t,s){if(s=s||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(b.eq))return s;var i=this.startNodeAt(e,t);return i.left=s,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},X.checkLVal=function(e,t,s){switch(void 0===t&&(t=0),e.type){case"Identifier":2===t&&"let"===e.name&&this.raiseRecoverable(e.start,"let is disallowed as a lexically bound name"),this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(t?"Binding ":"Assigning to ")+e.name+" in strict mode"),s&&(_(s,e.name)&&this.raiseRecoverable(e.start,"Argument name clash"),s[e.name]=!0),0!==t&&5!==t&&this.declareName(e.name,t,e.start);break;case"MemberExpression":t&&this.raiseRecoverable(e.start,"Binding member expression");break;case"ObjectPattern":for(var i=0,n=e.properties;i<n.length;i+=1){var r=n[i];this.checkLVal(r,t,s)}break;case"Property":this.checkLVal(e.value,t,s);break;case"ArrayPattern":for(var a=0,o=e.elements;a<o.length;a+=1){var h=o[a];h&&this.checkLVal(h,t,s)}break;case"AssignmentPattern":this.checkLVal(e.left,t,s);break;case"RestElement":this.checkLVal(e.argument,t,s);break;case"ParenthesizedExpression":this.checkLVal(e.expression,t,s);break;default:this.raise(e.start,(t?"Binding":"Assigning to")+" rvalue")}};var Y=V.prototype;Y.checkPropClash=function(e,t,s){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===e.type||this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var i,n=e.key;switch(n.type){case"Identifier":i=n.name;break;case"Literal":i=String(n.value);break;default:return}var r=e.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(t.proto&&(s?s.doubleProto<0&&(s.doubleProto=n.start):this.raiseRecoverable(n.start,"Redefinition of __proto__ property")),t.proto=!0);else{var a=t[i="$"+i];a?("init"===r?this.strict&&a.init||a.get||a.set:a.init||a[r])&&this.raiseRecoverable(n.start,"Redefinition of property"):a=t[i]={init:!1,get:!1,set:!1},a[r]=!0}}},Y.parseExpression=function(e,t){var s=this.start,i=this.startLoc,n=this.parseMaybeAssign(e,t);if(this.type===b.comma){var r=this.startNodeAt(s,i);for(r.expressions=[n];this.eat(b.comma);)r.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(r,"SequenceExpression")}return n},Y.parseMaybeAssign=function(e,t,s){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var i=!1,n=-1,r=-1;t?(n=t.parenthesizedAssign,r=t.trailingComma,t.parenthesizedAssign=t.trailingComma=-1):(t=new U,i=!0);var a=this.start,o=this.startLoc;this.type!==b.parenL&&this.type!==b.name||(this.potentialArrowAt=this.start);var h=this.parseMaybeConditional(e,t);if(s&&(h=s.call(this,h,a,o)),this.type.isAssign){var l=this.startNodeAt(a,o);return l.operator=this.value,l.left=this.type===b.eq?this.toAssignable(h,!1,t):h,i||(t.parenthesizedAssign=t.trailingComma=t.doubleProto=-1),t.shorthandAssign>=l.left.start&&(t.shorthandAssign=-1),this.checkLVal(h),this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,"AssignmentExpression")}return i&&this.checkExpressionErrors(t,!0),n>-1&&(t.parenthesizedAssign=n),r>-1&&(t.trailingComma=r),h},Y.parseMaybeConditional=function(e,t){var s=this.start,i=this.startLoc,n=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return n;if(this.eat(b.question)){var r=this.startNodeAt(s,i);return r.test=n,r.consequent=this.parseMaybeAssign(),this.expect(b.colon),r.alternate=this.parseMaybeAssign(e),this.finishNode(r,"ConditionalExpression")}return n},Y.parseExprOps=function(e,t){var s=this.start,i=this.startLoc,n=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)||n.start===s&&"ArrowFunctionExpression"===n.type?n:this.parseExprOp(n,s,i,-1,e)},Y.parseExprOp=function(e,t,s,i,n){var r=this.type.binop;if(null!=r&&(!n||this.type!==b._in)&&r>i){var a=this.type===b.logicalOR||this.type===b.logicalAND,o=this.value;this.next();var h=this.start,l=this.startLoc,c=this.parseExprOp(this.parseMaybeUnary(null,!1),h,l,r,n),u=this.buildBinary(t,s,e,c,o,a);return this.parseExprOp(u,t,s,i,n)}return e},Y.buildBinary=function(e,t,s,i,n,r){var a=this.startNodeAt(e,t);return a.left=s,a.operator=n,a.right=i,this.finishNode(a,r?"LogicalExpression":"BinaryExpression")},Y.parseMaybeUnary=function(e,t){var s,i=this.start,n=this.startLoc;if(this.isContextual("await")&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))s=this.parseAwait(),t=!0;else if(this.type.prefix){var r=this.startNode(),a=this.type===b.incDec;r.operator=this.value,r.prefix=!0,this.next(),r.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),a?this.checkLVal(r.argument):this.strict&&"delete"===r.operator&&"Identifier"===r.argument.type?this.raiseRecoverable(r.start,"Deleting local variable in strict mode"):t=!0,s=this.finishNode(r,a?"UpdateExpression":"UnaryExpression")}else{if(s=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return s;for(;this.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,n);o.operator=this.value,o.prefix=!1,o.argument=s,this.checkLVal(s),this.next(),s=this.finishNode(o,"UpdateExpression")}}return!t&&this.eat(b.starstar)?this.buildBinary(i,n,s,this.parseMaybeUnary(null,!1),"**",!1):s},Y.parseExprSubscripts=function(e){var t=this.start,s=this.startLoc,i=this.parseExprAtom(e);if("ArrowFunctionExpression"===i.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return i;var n=this.parseSubscripts(i,t,s);return e&&"MemberExpression"===n.type&&(e.parenthesizedAssign>=n.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=n.start&&(e.parenthesizedBind=-1)),n},Y.parseSubscripts=function(e,t,s,i){for(var n=this.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&"async"===this.input.slice(e.start,e.end);;){var r=this.parseSubscript(e,t,s,i,n);if(r===e||"ArrowFunctionExpression"===r.type)return r;e=r}},Y.parseSubscript=function(e,t,s,i,n){var r=this.eat(b.bracketL);if(r||this.eat(b.dot)){var a=this.startNodeAt(t,s);a.object=e,a.property=r?this.parseExpression():this.parseIdent("never"!==this.options.allowReserved),a.computed=!!r,r&&this.expect(b.bracketR),e=this.finishNode(a,"MemberExpression")}else if(!i&&this.eat(b.parenL)){var o=new U,h=this.yieldPos,l=this.awaitPos,c=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var u=this.parseExprList(b.parenR,this.options.ecmaVersion>=8,!1,o);if(n&&!this.canInsertSemicolon()&&this.eat(b.arrow))return this.checkPatternErrors(o,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=h,this.awaitPos=l,this.awaitIdentPos=c,this.parseArrowExpression(this.startNodeAt(t,s),u,!0);this.checkExpressionErrors(o,!0),this.yieldPos=h||this.yieldPos,this.awaitPos=l||this.awaitPos,this.awaitIdentPos=c||this.awaitIdentPos;var d=this.startNodeAt(t,s);d.callee=e,d.arguments=u,e=this.finishNode(d,"CallExpression")}else if(this.type===b.backQuote){var p=this.startNodeAt(t,s);p.tag=e,p.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(p,"TaggedTemplateExpression")}return e},Y.parseExprAtom=function(e){this.type===b.slash&&this.readRegexp();var t,s=this.potentialArrowAt===this.start;switch(this.type){case b._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),t=this.startNode(),this.next(),this.type!==b.parenL||this.allowDirectSuper||this.raise(t.start,"super() call outside constructor of a subclass"),this.type!==b.dot&&this.type!==b.bracketL&&this.type!==b.parenL&&this.unexpected(),this.finishNode(t,"Super");case b._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case b.name:var i=this.start,n=this.startLoc,r=this.containsEsc,a=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!r&&"async"===a.name&&!this.canInsertSemicolon()&&this.eat(b._function))return this.parseFunction(this.startNodeAt(i,n),0,!1,!0);if(s&&!this.canInsertSemicolon()){if(this.eat(b.arrow))return this.parseArrowExpression(this.startNodeAt(i,n),[a],!1);if(this.options.ecmaVersion>=8&&"async"===a.name&&this.type===b.name&&!r)return a=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(b.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,n),[a],!0)}return a;case b.regexp:var o=this.value;return(t=this.parseLiteral(o.value)).regex={pattern:o.pattern,flags:o.flags},t;case b.num:case b.string:return this.parseLiteral(this.value);case b._null:case b._true:case b._false:return(t=this.startNode()).value=this.type===b._null?null:this.type===b._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case b.parenL:var h=this.start,l=this.parseParenAndDistinguishExpression(s);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(l)&&(e.parenthesizedAssign=h),e.parenthesizedBind<0&&(e.parenthesizedBind=h)),l;case b.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(b.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case b.braceL:return this.parseObj(!1,e);case b._function:return t=this.startNode(),this.next(),this.parseFunction(t,0);case b._class:return this.parseClass(this.startNode(),!1);case b._new:return this.parseNew();case b.backQuote:return this.parseTemplate();case b._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},Y.parseExprImport=function(){var e=this.startNode();switch(this.next(),this.type){case b.parenL:return this.parseDynamicImport(e);default:this.unexpected()}},Y.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(b.parenR)){var t=this.start;this.eat(b.comma)&&this.eat(b.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},Y.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=t.raw.slice(0,-1)),this.next(),this.finishNode(t,"Literal")},Y.parseParenExpression=function(){this.expect(b.parenL);var e=this.parseExpression();return this.expect(b.parenR),e},Y.parseParenAndDistinguishExpression=function(e){var t,s=this.start,i=this.startLoc,n=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var r,a=this.start,o=this.startLoc,h=[],l=!0,c=!1,u=new U,d=this.yieldPos,p=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==b.parenR;){if(l?l=!1:this.expect(b.comma),n&&this.afterTrailingComma(b.parenR,!0)){c=!0;break}if(this.type===b.ellipsis){r=this.start,h.push(this.parseParenItem(this.parseRestBinding())),this.type===b.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}h.push(this.parseMaybeAssign(!1,u,this.parseParenItem))}var f=this.start,m=this.startLoc;if(this.expect(b.parenR),e&&!this.canInsertSemicolon()&&this.eat(b.arrow))return this.checkPatternErrors(u,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=d,this.awaitPos=p,this.parseParenArrowList(s,i,h);h.length&&!c||this.unexpected(this.lastTokStart),r&&this.unexpected(r),this.checkExpressionErrors(u,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=p||this.awaitPos,h.length>1?((t=this.startNodeAt(a,o)).expressions=h,this.finishNodeAt(t,"SequenceExpression",f,m)):t=h[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var g=this.startNodeAt(s,i);return g.expression=t,this.finishNode(g,"ParenthesizedExpression")}return t},Y.parseParenItem=function(e){return e},Y.parseParenArrowList=function(e,t,s){return this.parseArrowExpression(this.startNodeAt(e,t),s)};var Q=[];Y.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(b.dot)){e.meta=t;var s=this.containsEsc;return e.property=this.parseIdent(!0),("target"!==e.property.name||s)&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is new.target"),this.inNonArrowFunction()||this.raiseRecoverable(e.start,"new.target can only be used in functions"),this.finishNode(e,"MetaProperty")}var i=this.start,n=this.startLoc,r=this.type===b._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),i,n,!0),r&&"ImportExpression"===e.callee.type&&this.raise(i,"Cannot use new with import()"),this.eat(b.parenL)?e.arguments=this.parseExprList(b.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Q,this.finishNode(e,"NewExpression")},Y.parseTemplateElement=function(e){var t=e.isTagged,s=this.startNode();return this.type===b.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),s.value={raw:this.value,cooked:null}):s.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),s.tail=this.type===b.backQuote,this.finishNode(s,"TemplateElement")},Y.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var s=this.startNode();this.next(),s.expressions=[];var i=this.parseTemplateElement({isTagged:t});for(s.quasis=[i];!i.tail;)this.type===b.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(b.dollarBraceL),s.expressions.push(this.parseExpression()),this.expect(b.braceR),s.quasis.push(i=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(s,"TemplateLiteral")},Y.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===b.name||this.type===b.num||this.type===b.string||this.type===b.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===b.star)&&!v.test(this.input.slice(this.lastTokEnd,this.start))},Y.parseObj=function(e,t){var s=this.startNode(),i=!0,n={};for(s.properties=[],this.next();!this.eat(b.braceR);){if(i)i=!1;else if(this.expect(b.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(b.braceR))break;var r=this.parseProperty(e,t);e||this.checkPropClash(r,n,t),s.properties.push(r)}return this.finishNode(s,e?"ObjectPattern":"ObjectExpression")},Y.parseProperty=function(e,t){var s,i,n,r,a=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(b.ellipsis))return e?(a.argument=this.parseIdent(!1),this.type===b.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(a,"RestElement")):(this.type===b.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),a.argument=this.parseMaybeAssign(!1,t),this.type===b.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(a,"SpreadElement"));this.options.ecmaVersion>=6&&(a.method=!1,a.shorthand=!1,(e||t)&&(n=this.start,r=this.startLoc),e||(s=this.eat(b.star)));var o=this.containsEsc;return this.parsePropertyName(a),!e&&!o&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(a)?(i=!0,s=this.options.ecmaVersion>=9&&this.eat(b.star),this.parsePropertyName(a,t)):i=!1,this.parsePropertyValue(a,e,s,i,n,r,t,o),this.finishNode(a,"Property")},Y.parsePropertyValue=function(e,t,s,i,n,r,a,o){if((s||i)&&this.type===b.colon&&this.unexpected(),this.eat(b.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===b.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(s,i);else if(t||o||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===b.comma||this.type===b.braceR)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((s||i)&&this.unexpected(),this.checkUnreserved(e.key),"await"!==e.key.name||this.awaitIdentPos||(this.awaitIdentPos=n),e.kind="init",t?e.value=this.parseMaybeDefault(n,r,e.key):this.type===b.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),e.value=this.parseMaybeDefault(n,r,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected();else{(s||i)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var h="get"===e.kind?0:1;if(e.value.params.length!==h){var l=e.value.start;"get"===e.kind?this.raiseRecoverable(l,"getter should have no params"):this.raiseRecoverable(l,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},Y.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(b.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(b.bracketR),e.key;e.computed=!1}return e.key=this.type===b.num||this.type===b.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},Y.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},Y.parseMethod=function(e,t,s){var i=this.startNode(),n=this.yieldPos,r=this.awaitPos,a=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=e),this.options.ecmaVersion>=8&&(i.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|O(t,i.generator)|(s?128:0)),this.expect(b.parenL),i.params=this.parseBindingList(b.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0),this.yieldPos=n,this.awaitPos=r,this.awaitIdentPos=a,this.finishNode(i,"FunctionExpression")},Y.parseArrowExpression=function(e,t,s){var i=this.yieldPos,n=this.awaitPos,r=this.awaitIdentPos;return this.enterScope(16|O(s,!1)),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!s),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1),this.yieldPos=i,this.awaitPos=n,this.awaitIdentPos=r,this.finishNode(e,"ArrowFunctionExpression")},Y.parseFunctionBody=function(e,t,s){var i=t&&this.type!==b.braceL,n=this.strict,r=!1;if(i)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var a=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);n&&!a||(r=this.strictDirective(this.end))&&a&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var o=this.labels;this.labels=[],r&&(this.strict=!0),this.checkParams(e,!n&&!r&&!t&&!s&&this.isSimpleParamList(e.params)),e.body=this.parseBlock(!1),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=o}this.exitScope(),this.strict&&e.id&&this.checkLVal(e.id,5),this.strict=n},Y.isSimpleParamList=function(e){for(var t=0,s=e;t<s.length;t+=1)if("Identifier"!==s[t].type)return!1;return!0},Y.checkParams=function(e,t){for(var s={},i=0,n=e.params;i<n.length;i+=1){var r=n[i];this.checkLVal(r,1,t?null:s)}},Y.parseExprList=function(e,t,s,i){for(var n=[],r=!0;!this.eat(e);){if(r)r=!1;else if(this.expect(b.comma),t&&this.afterTrailingComma(e))break;var a=void 0;s&&this.type===b.comma?a=null:this.type===b.ellipsis?(a=this.parseSpread(i),i&&this.type===b.comma&&i.trailingComma<0&&(i.trailingComma=this.start)):a=this.parseMaybeAssign(!1,i),n.push(a)}return n},Y.checkUnreserved=function(e){var t=e.start,s=e.end,i=e.name;this.inGenerator&&"yield"===i&&this.raiseRecoverable(t,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(t,"Cannot use 'await' as identifier inside an async function"),this.keywords.test(i)&&this.raise(t,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(t,s).indexOf("\\")||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(t,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(t,"The keyword '"+i+"' is reserved"))},Y.parseIdent=function(e,t){var s=this.startNode();return this.type===b.name?s.name=this.value:this.type.keyword?(s.name=this.type.keyword,"class"!==s.name&&"function"!==s.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),this.next(!!e),this.finishNode(s,"Identifier"),e||(this.checkUnreserved(s),"await"!==s.name||this.awaitIdentPos||(this.awaitIdentPos=s.start)),s},Y.parseYield=function(e){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===b.semi||this.canInsertSemicolon()||this.type!==b.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(b.star),t.argument=this.parseMaybeAssign(e)),this.finishNode(t,"YieldExpression")},Y.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!1),this.finishNode(e,"AwaitExpression")};var J=V.prototype;J.raise=function(e,t){var s=L(this.input,e);t+=" ("+s.line+":"+s.column+")";var i=new SyntaxError(t);throw i.pos=e,i.loc=s,i.raisedAt=this.pos,i},J.raiseRecoverable=J.raise,J.curPosition=function(){if(this.options.locations)return new T(this.curLine,this.pos-this.lineStart)};var Z=V.prototype,ee=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};Z.enterScope=function(e){this.scopeStack.push(new ee(e))},Z.exitScope=function(){this.scopeStack.pop()},Z.treatFunctionsAsVarInScope=function(e){return 2&e.flags||!this.inModule&&1&e.flags},Z.declareName=function(e,t,s){var i=!1;if(2===t){var n=this.currentScope();i=n.lexical.indexOf(e)>-1||n.functions.indexOf(e)>-1||n.var.indexOf(e)>-1,n.lexical.push(e),this.inModule&&1&n.flags&&delete this.undefinedExports[e]}else if(4===t)this.currentScope().lexical.push(e);else if(3===t){var r=this.currentScope();i=this.treatFunctionsAsVar?r.lexical.indexOf(e)>-1:r.lexical.indexOf(e)>-1||r.var.indexOf(e)>-1,r.functions.push(e)}else for(var a=this.scopeStack.length-1;a>=0;--a){var o=this.scopeStack[a];if(o.lexical.indexOf(e)>-1&&!(32&o.flags&&o.lexical[0]===e)||!this.treatFunctionsAsVarInScope(o)&&o.functions.indexOf(e)>-1){i=!0;break}if(o.var.push(e),this.inModule&&1&o.flags&&delete this.undefinedExports[e],3&o.flags)break}i&&this.raiseRecoverable(s,"Identifier '"+e+"' has already been declared")},Z.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},Z.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},Z.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags)return t}},Z.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags&&!(16&t.flags))return t}};var te=function(e,t,s){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new R(e,s)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},se=V.prototype;function ie(e,t,s,i){return e.type=t,e.end=s,this.options.locations&&(e.loc.end=i),this.options.ranges&&(e.range[1]=s),e}se.startNode=function(){return new te(this,this.start,this.startLoc)},se.startNodeAt=function(e,t){return new te(this,e,t)},se.finishNode=function(e,t){return ie.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},se.finishNodeAt=function(e,t,s,i){return ie.call(this,e,t,s,i)};var ne=function(e,t,s,i,n){this.token=e,this.isExpr=!!t,this.preserveSpace=!!s,this.override=i,this.generator=!!n},re={b_stat:new ne("{",!1),b_expr:new ne("{",!0),b_tmpl:new ne("${",!1),p_stat:new ne("(",!1),p_expr:new ne("(",!0),q_tmpl:new ne("`",!0,!0,(function(e){return e.tryReadTemplateToken()})),f_stat:new ne("function",!1),f_expr:new ne("function",!0),f_expr_gen:new ne("function",!0,!1,null,!0),f_gen:new ne("function",!1,!1,null,!0)},ae=V.prototype;ae.initialContext=function(){return[re.b_stat]},ae.braceIsBlock=function(e){var t=this.curContext();return t===re.f_expr||t===re.f_stat||(e!==b.colon||t!==re.b_stat&&t!==re.b_expr?e===b._return||e===b.name&&this.exprAllowed?v.test(this.input.slice(this.lastTokEnd,this.start)):e===b._else||e===b.semi||e===b.eof||e===b.parenR||e===b.arrow||(e===b.braceL?t===re.b_stat:e!==b._var&&e!==b._const&&e!==b.name&&!this.exprAllowed):!t.isExpr)},ae.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},ae.updateContext=function(e){var t,s=this.type;s.keyword&&e===b.dot?this.exprAllowed=!1:(t=s.updateContext)?t.call(this,e):this.exprAllowed=s.beforeExpr},b.parenR.updateContext=b.braceR.updateContext=function(){if(1!==this.context.length){var e=this.context.pop();e===re.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},b.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?re.b_stat:re.b_expr),this.exprAllowed=!0},b.dollarBraceL.updateContext=function(){this.context.push(re.b_tmpl),this.exprAllowed=!0},b.parenL.updateContext=function(e){var t=e===b._if||e===b._for||e===b._with||e===b._while;this.context.push(t?re.p_stat:re.p_expr),this.exprAllowed=!0},b.incDec.updateContext=function(){},b._function.updateContext=b._class.updateContext=function(e){!e.beforeExpr||e===b.semi||e===b._else||e===b._return&&v.test(this.input.slice(this.lastTokEnd,this.start))||(e===b.colon||e===b.braceL)&&this.curContext()===re.b_stat?this.context.push(re.f_stat):this.context.push(re.f_expr),this.exprAllowed=!1},b.backQuote.updateContext=function(){this.curContext()===re.q_tmpl?this.context.pop():this.context.push(re.q_tmpl),this.exprAllowed=!1},b.star.updateContext=function(e){if(e===b._function){var t=this.context.length-1;this.context[t]===re.f_expr?this.context[t]=re.f_expr_gen:this.context[t]=re.f_gen}this.exprAllowed=!0},b.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==b.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var oe="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",he=oe+" Extended_Pictographic",le={9:oe,10:he,11:"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS Extended_Pictographic"},ce="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",ue="Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",de=ue+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",pe={9:ue,10:de,11:"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"},fe={};function me(e){var t=fe[e]={binary:$(le[e]+" "+ce),nonBinary:{General_Category:$(ce),Script:$(pe[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}me(9),me(10),me(11);var ge=V.prototype,xe=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":""),this.unicodeProperties=fe[e.options.ecmaVersion>=11?11:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function ye(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function Ee(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function be(e){return e>=65&&e<=90||e>=97&&e<=122}function ve(e){return be(e)||95===e}function Se(e){return ve(e)||Ae(e)}function Ae(e){return e>=48&&e<=57}function Ce(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Pe(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function ke(e){return e>=48&&e<=55}xe.prototype.reset=function(e,t,s){var i=-1!==s.indexOf("u");this.start=0|e,this.source=t+"",this.flags=s,this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchN=i&&this.parser.options.ecmaVersion>=9},xe.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},xe.prototype.at=function(e){var t=this.source,s=t.length;if(e>=s)return-1;var i=t.charCodeAt(e);if(!this.switchU||i<=55295||i>=57344||e+1>=s)return i;var n=t.charCodeAt(e+1);return n>=56320&&n<=57343?(i<<10)+n-56613888:i},xe.prototype.nextIndex=function(e){var t=this.source,s=t.length;if(e>=s)return s;var i,n=t.charCodeAt(e);return!this.switchU||n<=55295||n>=57344||e+1>=s||(i=t.charCodeAt(e+1))<56320||i>57343?e+1:e+2},xe.prototype.current=function(){return this.at(this.pos)},xe.prototype.lookahead=function(){return this.at(this.nextIndex(this.pos))},xe.prototype.advance=function(){this.pos=this.nextIndex(this.pos)},xe.prototype.eat=function(e){return this.current()===e&&(this.advance(),!0)},ge.validateRegExpFlags=function(e){for(var t=e.validFlags,s=e.flags,i=0;i<s.length;i++){var n=s.charAt(i);-1===t.indexOf(n)&&this.raise(e.start,"Invalid regular expression flag"),s.indexOf(n,i+1)>-1&&this.raise(e.start,"Duplicate regular expression flag")}},ge.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},ge.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,s=e.backReferenceNames;t<s.length;t+=1){var i=s[t];-1===e.groupNames.indexOf(i)&&e.raise("Invalid named capture referenced")}},ge.regexp_disjunction=function(e){for(this.regexp_alternative(e);e.eat(124);)this.regexp_alternative(e);this.regexp_eatQuantifier(e,!0)&&e.raise("Nothing to repeat"),e.eat(123)&&e.raise("Lone quantifier brackets")},ge.regexp_alternative=function(e){for(;e.pos<e.source.length&&this.regexp_eatTerm(e););},ge.regexp_eatTerm=function(e){return this.regexp_eatAssertion(e)?(e.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(e)&&e.switchU&&e.raise("Invalid quantifier"),!0):!!(e.switchU?this.regexp_eatAtom(e):this.regexp_eatExtendedAtom(e))&&(this.regexp_eatQuantifier(e),!0)},ge.regexp_eatAssertion=function(e){var t=e.pos;if(e.lastAssertionIsQuantifiable=!1,e.eat(94)||e.eat(36))return!0;if(e.eat(92)){if(e.eat(66)||e.eat(98))return!0;e.pos=t}if(e.eat(40)&&e.eat(63)){var s=!1;if(this.options.ecmaVersion>=9&&(s=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!s,!0}return e.pos=t,!1},ge.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},ge.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},ge.regexp_eatBracedQuantifier=function(e,t){var s=e.pos;if(e.eat(123)){var i=0,n=-1;if(this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(n=e.lastIntValue),e.eat(125)))return-1!==n&&n<i&&!t&&e.raise("numbers out of order in {} quantifier"),!0;e.switchU&&!t&&e.raise("Incomplete quantifier"),e.pos=s}return!1},ge.regexp_eatAtom=function(e){return this.regexp_eatPatternCharacters(e)||e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)},ge.regexp_eatReverseSolidusAtomEscape=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatAtomEscape(e))return!0;e.pos=t}return!1},ge.regexp_eatUncapturingGroup=function(e){var t=e.pos;if(e.eat(40)){if(e.eat(63)&&e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise("Unterminated group")}e.pos=t}return!1},ge.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},ge.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},ge.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},ge.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!Ee(t)&&(e.lastIntValue=t,e.advance(),!0)},ge.regexp_eatPatternCharacters=function(e){for(var t=e.pos,s=0;-1!==(s=e.current())&&!Ee(s);)e.advance();return e.pos!==t},ge.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t||(e.advance(),0))},ge.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e))return-1!==e.groupNames.indexOf(e.lastStringValue)&&e.raise("Duplicate capture group name"),void e.groupNames.push(e.lastStringValue);e.raise("Invalid group")}},ge.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},ge.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=ye(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=ye(e.lastIntValue);return!0}return!1},ge.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,s=e.current();return e.advance(),92===s&&this.regexp_eatRegExpUnicodeEscapeSequence(e)&&(s=e.lastIntValue),function(e){return d(e,!0)||36===e||95===e}(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)},ge.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,s=e.current();return e.advance(),92===s&&this.regexp_eatRegExpUnicodeEscapeSequence(e)&&(s=e.lastIntValue),function(e){return p(e,!0)||36===e||95===e||8204===e||8205===e}(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)},ge.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},ge.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var s=e.lastIntValue;if(e.switchU)return s>e.maxBackReference&&(e.maxBackReference=s),!0;if(s<=e.numCapturingParens)return!0;e.pos=t}return!1},ge.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},ge.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},ge.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},ge.regexp_eatZero=function(e){return 48===e.current()&&!Ae(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},ge.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},ge.regexp_eatControlLetter=function(e){var t=e.current();return!!be(t)&&(e.lastIntValue=t%32,e.advance(),!0)},ge.regexp_eatRegExpUnicodeEscapeSequence=function(e){var t,s=e.pos;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var i=e.lastIntValue;if(e.switchU&&i>=55296&&i<=56319){var n=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var r=e.lastIntValue;if(r>=56320&&r<=57343)return e.lastIntValue=1024*(i-55296)+(r-56320)+65536,!0}e.pos=n,e.lastIntValue=i}return!0}if(e.switchU&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&(t=e.lastIntValue)>=0&&t<=1114111)return!0;e.switchU&&e.raise("Invalid unicode escape"),e.pos=s}return!1},ge.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t||(e.lastIntValue=t,e.advance(),0))},ge.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1},ge.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(function(e){return 100===e||68===e||115===e||83===e||119===e||87===e}(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(80===t||112===t)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1},ge.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var s=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,s,i),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var n=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,n),!0}return!1},ge.regexp_validateUnicodePropertyNameAndValue=function(e,t,s){_(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(s)||e.raise("Invalid property value")},ge.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")},ge.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";ve(t=e.current());)e.lastStringValue+=ye(t),e.advance();return""!==e.lastStringValue},ge.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Se(t=e.current());)e.lastStringValue+=ye(t),e.advance();return""!==e.lastStringValue},ge.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},ge.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},ge.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var s=e.lastIntValue;!e.switchU||-1!==t&&-1!==s||e.raise("Invalid character class"),-1!==t&&-1!==s&&t>s&&e.raise("Range out of order in character class")}}},ge.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var s=e.current();(99===s||ke(s))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var i=e.current();return 93!==i&&(e.lastIntValue=i,e.advance(),!0)},ge.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},ge.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!Ae(t)&&95!==t||(e.lastIntValue=t%32,e.advance(),0))},ge.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},ge.regexp_eatDecimalDigits=function(e){var t=e.pos,s=0;for(e.lastIntValue=0;Ae(s=e.current());)e.lastIntValue=10*e.lastIntValue+(s-48),e.advance();return e.pos!==t},ge.regexp_eatHexDigits=function(e){var t=e.pos,s=0;for(e.lastIntValue=0;Ce(s=e.current());)e.lastIntValue=16*e.lastIntValue+Pe(s),e.advance();return e.pos!==t},ge.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var s=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*s+e.lastIntValue:e.lastIntValue=8*t+s}else e.lastIntValue=t;return!0}return!1},ge.regexp_eatOctalDigit=function(e){var t=e.current();return ke(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},ge.regexp_eatFixedHexDigits=function(e,t){var s=e.pos;e.lastIntValue=0;for(var i=0;i<t;++i){var n=e.current();if(!Ce(n))return e.pos=s,!1;e.lastIntValue=16*e.lastIntValue+Pe(n),e.advance()}return!0};var we=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new R(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},Ne=V.prototype;function _e(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}Ne.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new we(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},Ne.getToken=function(){return this.next(),new we(this)},"undefined"!=typeof Symbol&&(Ne[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===b.eof,value:t}}}}),Ne.curContext=function(){return this.context[this.context.length-1]},Ne.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(b.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},Ne.readToken=function(e){return d(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},Ne.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},Ne.skipBlockComment=function(){var e,t=this.options.onComment&&this.curPosition(),s=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(S.lastIndex=s;(e=S.exec(this.input))&&e.index<this.pos;)++this.curLine,this.lineStart=e.index+e[0].length;this.options.onComment&&this.options.onComment(!0,this.input.slice(s+2,i),s,this.pos,t,this.curPosition())},Ne.skipLineComment=function(e){for(var t=this.pos,s=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!A(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,s,this.curPosition())},Ne.skipSpace=function(){e:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&C.test(String.fromCharCode(e))))break e;++this.pos}}},Ne.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var s=this.type;this.type=e,this.value=t,this.updateContext(s)},Ne.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(b.ellipsis)):(++this.pos,this.finishToken(b.dot))},Ne.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(b.assign,2):this.finishOp(b.slash,1)},Ne.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),s=1,i=42===e?b.star:b.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++s,i=b.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(b.assign,s+1):this.finishOp(i,s)},Ne.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.finishOp(124===e?b.logicalOR:b.logicalAND,2):61===t?this.finishOp(b.assign,2):this.finishOp(124===e?b.bitwiseOR:b.bitwiseAND,1)},Ne.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(b.assign,2):this.finishOp(b.bitwiseXOR,1)},Ne.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!v.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(b.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(b.assign,2):this.finishOp(b.plusMin,1)},Ne.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),s=1;return t===e?(s=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+s)?this.finishOp(b.assign,s+1):this.finishOp(b.bitShift,s)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(s=2),this.finishOp(b.relational,s)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},Ne.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(b.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(b.arrow)):this.finishOp(61===e?b.eq:b.prefix,1)},Ne.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(b.parenL);case 41:return++this.pos,this.finishToken(b.parenR);case 59:return++this.pos,this.finishToken(b.semi);case 44:return++this.pos,this.finishToken(b.comma);case 91:return++this.pos,this.finishToken(b.bracketL);case 93:return++this.pos,this.finishToken(b.bracketR);case 123:return++this.pos,this.finishToken(b.braceL);case 125:return++this.pos,this.finishToken(b.braceR);case 58:return++this.pos,this.finishToken(b.colon);case 63:return++this.pos,this.finishToken(b.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(b.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(b.prefix,1)}this.raise(this.pos,"Unexpected character '"+_e(e)+"'")},Ne.finishOp=function(e,t){var s=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,s)},Ne.readRegexp=function(){for(var e,t,s=this.pos;;){this.pos>=this.input.length&&this.raise(s,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(v.test(i)&&this.raise(s,"Unterminated regular expression"),e)e=!1;else{if("["===i)t=!0;else if("]"===i&&t)t=!1;else if("/"===i&&!t)break;e="\\"===i}++this.pos}var n=this.input.slice(s,this.pos);++this.pos;var r=this.pos,a=this.readWord1();this.containsEsc&&this.unexpected(r);var o=this.regexpState||(this.regexpState=new xe(this));o.reset(s,n,a),this.validateRegExpFlags(o),this.validateRegExpPattern(o);var h=null;try{h=new RegExp(n,a)}catch(e){}return this.finishToken(b.regexp,{pattern:n,flags:a,value:h})},Ne.readInt=function(e,t){for(var s=this.pos,i=0,n=0,r=null==t?1/0:t;n<r;++n){var a=this.input.charCodeAt(this.pos),o=void 0;if((o=a>=97?a-97+10:a>=65?a-65+10:a>=48&&a<=57?a-48:1/0)>=e)break;++this.pos,i=i*e+o}return this.pos===s||null!=t&&this.pos-s!==t?null:i},Ne.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var s=this.readInt(e);return null==s&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(s="undefined"!=typeof BigInt?BigInt(this.input.slice(t,this.pos)):null,++this.pos):d(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(b.num,s)},Ne.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10)||this.raise(t,"Invalid number");var s=this.pos-t>=2&&48===this.input.charCodeAt(t);s&&this.strict&&this.raise(t,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!s&&!e&&this.options.ecmaVersion>=11&&110===i){var n=this.input.slice(t,this.pos),r="undefined"!=typeof BigInt?BigInt(n):null;return++this.pos,d(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(b.num,r)}s&&/[89]/.test(this.input.slice(t,this.pos))&&(s=!1),46!==i||s||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||s||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),d(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a=this.input.slice(t,this.pos),o=s?parseInt(a,8):parseFloat(a);return this.finishToken(b.num,o)},Ne.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},Ne.readString=function(e){for(var t="",s=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===e)break;92===i?(t+=this.input.slice(s,this.pos),t+=this.readEscapedChar(!1),s=this.pos):(A(i,this.options.ecmaVersion>=10)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(s,this.pos++),this.finishToken(b.string,t)};var Ie={};Ne.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==Ie)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},Ne.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Ie;this.raise(e,t)},Ne.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var s=this.input.charCodeAt(this.pos);if(96===s||36===s&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==b.template&&this.type!==b.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(b.template,e)):36===s?(this.pos+=2,this.finishToken(b.dollarBraceL)):(++this.pos,this.finishToken(b.backQuote));if(92===s)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(A(s)){switch(e+=this.input.slice(t,this.pos),++this.pos,s){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(s)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},Ne.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(b.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},Ne.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return _e(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(e){var s=this.pos-1;return this.invalidStringToken(s,"Invalid escape sequence in template string"),null}default:if(t>=48&&t<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],n=parseInt(i,8);return n>255&&(i=i.slice(0,-1),n=parseInt(i,8)),this.pos+=i.length-1,t=this.input.charCodeAt(this.pos),"0"===i&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-i.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(n)}return A(t)?"":String.fromCharCode(t)}},Ne.readHexChar=function(e){var t=this.pos,s=this.readInt(16,e);return null===s&&this.invalidStringToken(t,"Bad character escape sequence"),s},Ne.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,s=this.pos,i=this.options.ecmaVersion>=6;this.pos<this.input.length;){var n=this.fullCharCodeAtPos();if(p(n,i))this.pos+=n<=65535?1:2;else{if(92!==n)break;this.containsEsc=!0,e+=this.input.slice(s,this.pos);var r=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var a=this.readCodePoint();(t?d:p)(a,i)||this.invalidStringToken(r,"Invalid Unicode escape"),e+=_e(a),s=this.pos}t=!1}return e+this.input.slice(s,this.pos)},Ne.readWord=function(){var e=this.readWord1(),t=b.name;return this.keywords.test(e)&&(t=y[e]),this.finishToken(t,e)},V.acorn={Parser:V,version:"7.1.0",defaultOptions:M,Position:T,SourceLocation:R,getLineInfo:L,Node:te,TokenType:f,tokTypes:b,keywordTypes:y,TokContext:ne,tokContexts:re,isIdentifierChar:p,isIdentifierStart:d,Token:we,isNewLine:A,lineBreak:v,lineBreakG:S,nonASCIIwhitespace:C};var $e=function(e){return e&&e.default||e}(Object.freeze({__proto__:null,Node:te,Parser:V,Position:T,SourceLocation:R,TokContext:ne,Token:we,TokenType:f,defaultOptions:M,getLineInfo:L,isIdentifierChar:p,isIdentifierStart:d,isNewLine:A,keywordTypes:y,lineBreak:v,lineBreakG:S,nonASCIIwhitespace:C,parse:function(e,t){return V.parse(e,t)},parseExpressionAt:function(e,t,s){return V.parseExpressionAt(e,t,s)},tokContexts:re,tokTypes:b,tokenizer:function(e,t){return V.tokenizer(e,t)},version:"7.1.0"}));const Te=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,Re=$e.tokTypes;var Le=function(e){return class extends e{parseExport(e,t){Te.lastIndex=this.pos;const s=Te.exec(this.input);if("*"!==this.input.charAt(this.pos+s[0].length))return super.parseExport(e,t);this.next();const i=this.startNode();return this.expect(Re.star),this.eatContextual("as")&&(e.declaration=null,i.exported=this.parseIdent(!0),this.checkExport(t,i.exported.name,this.lastTokStart),e.specifiers=[this.finishNode(i,"ExportNamespaceSpecifier")]),this.expectContextual("from"),this.type!==Re.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,e.specifiers?"ExportNamedDeclaration":"ExportAllDeclaration")}}};const Me=$e.tokTypes,De=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,Oe=e=>{De.lastIndex=e.pos;let t=De.exec(e.input),s=e.pos+t[0].length;return"."===e.input.slice(s,s+1)};var Ve=function(e){return class extends e{parseExprAtom(e){if(this.type!==Me._import||!Oe(this))return super.parseExprAtom(e);this.options.allowImportExportEverywhere||this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'");let t=this.startNode();return t.meta=this.parseIdent(!0),this.expect(Me.dot),t.property=this.parseIdent(!0),"meta"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for import is import.meta"),this.containsEsc&&this.raiseRecoverable(t.property.start,'"meta" in import.meta must not contain escape sequences'),this.finishNode(t,"MetaProperty")}parseStatement(e,t,s){if(this.type!==Me._import||!Oe(this))return super.parseStatement(e,t,s);let i=this.startNode(),n=this.parseExpression();return this.parseExpressionStatement(i,n)}}};const Be=Symbol("Value Properties"),Fe={pure:!0},We={pure:!1},Ue={__proto__:null,[Be]:We},ze={__proto__:null,[Be]:Fe},je={__proto__:null,[Be]:We,prototype:Ue},Ge={__proto__:null,[Be]:Fe,prototype:Ue},He={__proto__:null,[Be]:Fe,from:ze,of:ze,prototype:Ue},qe={__proto__:null,[Be]:Fe,supportedLocalesOf:Ge},Ke={global:Ue,globalThis:Ue,self:Ue,window:Ue,__proto__:null,[Be]:We,Array:{__proto__:null,[Be]:We,from:ze,isArray:ze,of:ze,prototype:Ue},ArrayBuffer:{__proto__:null,[Be]:Fe,isView:ze,prototype:Ue},Atomics:Ue,BigInt:je,BigInt64Array:je,BigUint64Array:je,Boolean:Ge,constructor:je,DataView:Ge,Date:{__proto__:null,[Be]:Fe,now:ze,parse:ze,prototype:Ue,UTC:ze},decodeURI:ze,decodeURIComponent:ze,encodeURI:ze,encodeURIComponent:ze,Error:Ge,escape:ze,eval:Ue,EvalError:Ge,Float32Array:He,Float64Array:He,Function:je,hasOwnProperty:Ue,Infinity:Ue,Int16Array:He,Int32Array:He,Int8Array:He,isFinite:ze,isNaN:ze,isPrototypeOf:Ue,JSON:Ue,Map:Ge,Math:{__proto__:null,[Be]:We,abs:ze,acos:ze,acosh:ze,asin:ze,asinh:ze,atan:ze,atan2:ze,atanh:ze,cbrt:ze,ceil:ze,clz32:ze,cos:ze,cosh:ze,exp:ze,expm1:ze,floor:ze,fround:ze,hypot:ze,imul:ze,log:ze,log10:ze,log1p:ze,log2:ze,max:ze,min:ze,pow:ze,random:ze,round:ze,sign:ze,sin:ze,sinh:ze,sqrt:ze,tan:ze,tanh:ze,trunc:ze},NaN:Ue,Number:{__proto__:null,[Be]:Fe,isFinite:ze,isInteger:ze,isNaN:ze,isSafeInteger:ze,parseFloat:ze,parseInt:ze,prototype:Ue},Object:{__proto__:null,[Be]:Fe,create:ze,getNotifier:ze,getOwn:ze,getOwnPropertyDescriptor:ze,getOwnPropertyNames:ze,getOwnPropertySymbols:ze,getPrototypeOf:ze,is:ze,isExtensible:ze,isFrozen:ze,isSealed:ze,keys:ze,prototype:Ue},parseFloat:ze,parseInt:ze,Promise:{__proto__:null,[Be]:We,all:ze,prototype:Ue,race:ze,resolve:ze},propertyIsEnumerable:Ue,Proxy:Ue,RangeError:Ge,ReferenceError:Ge,Reflect:Ue,RegExp:Ge,Set:Ge,SharedArrayBuffer:je,String:{__proto__:null,[Be]:Fe,fromCharCode:ze,fromCodePoint:ze,prototype:Ue,raw:ze},Symbol:{__proto__:null,[Be]:Fe,for:ze,keyFor:ze,prototype:Ue},SyntaxError:Ge,toLocaleString:Ue,toString:Ue,TypeError:Ge,Uint16Array:He,Uint32Array:He,Uint8Array:He,Uint8ClampedArray:He,unescape:ze,URIError:Ge,valueOf:Ue,WeakMap:Ge,WeakSet:Ge,clearInterval:je,clearTimeout:je,console:Ue,Intl:{__proto__:null,[Be]:We,Collator:qe,DateTimeFormat:qe,ListFormat:qe,NumberFormat:qe,PluralRules:qe,RelativeTimeFormat:qe},setInterval:je,setTimeout:je,TextDecoder:je,TextEncoder:je,URL:je,URLSearchParams:je,AbortController:je,AbortSignal:je,addEventListener:Ue,alert:Ue,AnalyserNode:je,Animation:je,AnimationEvent:je,applicationCache:Ue,ApplicationCache:je,ApplicationCacheErrorEvent:je,atob:Ue,Attr:je,Audio:je,AudioBuffer:je,AudioBufferSourceNode:je,AudioContext:je,AudioDestinationNode:je,AudioListener:je,AudioNode:je,AudioParam:je,AudioProcessingEvent:je,AudioScheduledSourceNode:je,AudioWorkletNode:je,BarProp:je,BaseAudioContext:je,BatteryManager:je,BeforeUnloadEvent:je,BiquadFilterNode:je,Blob:je,BlobEvent:je,blur:Ue,BroadcastChannel:je,btoa:Ue,ByteLengthQueuingStrategy:je,Cache:je,caches:Ue,CacheStorage:je,cancelAnimationFrame:Ue,cancelIdleCallback:Ue,CanvasCaptureMediaStreamTrack:je,CanvasGradient:je,CanvasPattern:je,CanvasRenderingContext2D:je,ChannelMergerNode:je,ChannelSplitterNode:je,CharacterData:je,clientInformation:Ue,ClipboardEvent:je,close:Ue,closed:Ue,CloseEvent:je,Comment:je,CompositionEvent:je,confirm:Ue,ConstantSourceNode:je,ConvolverNode:je,CountQueuingStrategy:je,createImageBitmap:Ue,Credential:je,CredentialsContainer:je,crypto:Ue,Crypto:je,CryptoKey:je,CSS:je,CSSConditionRule:je,CSSFontFaceRule:je,CSSGroupingRule:je,CSSImportRule:je,CSSKeyframeRule:je,CSSKeyframesRule:je,CSSMediaRule:je,CSSNamespaceRule:je,CSSPageRule:je,CSSRule:je,CSSRuleList:je,CSSStyleDeclaration:je,CSSStyleRule:je,CSSStyleSheet:je,CSSSupportsRule:je,CustomElementRegistry:je,customElements:Ue,CustomEvent:je,DataTransfer:je,DataTransferItem:je,DataTransferItemList:je,defaultstatus:Ue,defaultStatus:Ue,DelayNode:je,DeviceMotionEvent:je,DeviceOrientationEvent:je,devicePixelRatio:Ue,dispatchEvent:Ue,document:Ue,Document:je,DocumentFragment:je,DocumentType:je,DOMError:je,DOMException:je,DOMImplementation:je,DOMMatrix:je,DOMMatrixReadOnly:je,DOMParser:je,DOMPoint:je,DOMPointReadOnly:je,DOMQuad:je,DOMRect:je,DOMRectReadOnly:je,DOMStringList:je,DOMStringMap:je,DOMTokenList:je,DragEvent:je,DynamicsCompressorNode:je,Element:je,ErrorEvent:je,Event:je,EventSource:je,EventTarget:je,external:Ue,fetch:Ue,File:je,FileList:je,FileReader:je,find:Ue,focus:Ue,FocusEvent:je,FontFace:je,FontFaceSetLoadEvent:je,FormData:je,frames:Ue,GainNode:je,Gamepad:je,GamepadButton:je,GamepadEvent:je,getComputedStyle:Ue,getSelection:Ue,HashChangeEvent:je,Headers:je,history:Ue,History:je,HTMLAllCollection:je,HTMLAnchorElement:je,HTMLAreaElement:je,HTMLAudioElement:je,HTMLBaseElement:je,HTMLBodyElement:je,HTMLBRElement:je,HTMLButtonElement:je,HTMLCanvasElement:je,HTMLCollection:je,HTMLContentElement:je,HTMLDataElement:je,HTMLDataListElement:je,HTMLDetailsElement:je,HTMLDialogElement:je,HTMLDirectoryElement:je,HTMLDivElement:je,HTMLDListElement:je,HTMLDocument:je,HTMLElement:je,HTMLEmbedElement:je,HTMLFieldSetElement:je,HTMLFontElement:je,HTMLFormControlsCollection:je,HTMLFormElement:je,HTMLFrameElement:je,HTMLFrameSetElement:je,HTMLHeadElement:je,HTMLHeadingElement:je,HTMLHRElement:je,HTMLHtmlElement:je,HTMLIFrameElement:je,HTMLImageElement:je,HTMLInputElement:je,HTMLLabelElement:je,HTMLLegendElement:je,HTMLLIElement:je,HTMLLinkElement:je,HTMLMapElement:je,HTMLMarqueeElement:je,HTMLMediaElement:je,HTMLMenuElement:je,HTMLMetaElement:je,HTMLMeterElement:je,HTMLModElement:je,HTMLObjectElement:je,HTMLOListElement:je,HTMLOptGroupElement:je,HTMLOptionElement:je,HTMLOptionsCollection:je,HTMLOutputElement:je,HTMLParagraphElement:je,HTMLParamElement:je,HTMLPictureElement:je,HTMLPreElement:je,HTMLProgressElement:je,HTMLQuoteElement:je,HTMLScriptElement:je,HTMLSelectElement:je,HTMLShadowElement:je,HTMLSlotElement:je,HTMLSourceElement:je,HTMLSpanElement:je,HTMLStyleElement:je,HTMLTableCaptionElement:je,HTMLTableCellElement:je,HTMLTableColElement:je,HTMLTableElement:je,HTMLTableRowElement:je,HTMLTableSectionElement:je,HTMLTemplateElement:je,HTMLTextAreaElement:je,HTMLTimeElement:je,HTMLTitleElement:je,HTMLTrackElement:je,HTMLUListElement:je,HTMLUnknownElement:je,HTMLVideoElement:je,IDBCursor:je,IDBCursorWithValue:je,IDBDatabase:je,IDBFactory:je,IDBIndex:je,IDBKeyRange:je,IDBObjectStore:je,IDBOpenDBRequest:je,IDBRequest:je,IDBTransaction:je,IDBVersionChangeEvent:je,IdleDeadline:je,IIRFilterNode:je,Image:je,ImageBitmap:je,ImageBitmapRenderingContext:je,ImageCapture:je,ImageData:je,indexedDB:Ue,innerHeight:Ue,innerWidth:Ue,InputEvent:je,IntersectionObserver:je,IntersectionObserverEntry:je,isSecureContext:Ue,KeyboardEvent:je,KeyframeEffect:je,length:Ue,localStorage:Ue,location:Ue,Location:je,locationbar:Ue,matchMedia:Ue,MediaDeviceInfo:je,MediaDevices:je,MediaElementAudioSourceNode:je,MediaEncryptedEvent:je,MediaError:je,MediaKeyMessageEvent:je,MediaKeySession:je,MediaKeyStatusMap:je,MediaKeySystemAccess:je,MediaList:je,MediaQueryList:je,MediaQueryListEvent:je,MediaRecorder:je,MediaSettingsRange:je,MediaSource:je,MediaStream:je,MediaStreamAudioDestinationNode:je,MediaStreamAudioSourceNode:je,MediaStreamEvent:je,MediaStreamTrack:je,MediaStreamTrackEvent:je,menubar:Ue,MessageChannel:je,MessageEvent:je,MessagePort:je,MIDIAccess:je,MIDIConnectionEvent:je,MIDIInput:je,MIDIInputMap:je,MIDIMessageEvent:je,MIDIOutput:je,MIDIOutputMap:je,MIDIPort:je,MimeType:je,MimeTypeArray:je,MouseEvent:je,moveBy:Ue,moveTo:Ue,MutationEvent:je,MutationObserver:je,MutationRecord:je,name:Ue,NamedNodeMap:je,NavigationPreloadManager:je,navigator:Ue,Navigator:je,NetworkInformation:je,Node:je,NodeFilter:Ue,NodeIterator:je,NodeList:je,Notification:je,OfflineAudioCompletionEvent:je,OfflineAudioContext:je,offscreenBuffering:Ue,OffscreenCanvas:je,open:Ue,openDatabase:Ue,Option:je,origin:Ue,OscillatorNode:je,outerHeight:Ue,outerWidth:Ue,PageTransitionEvent:je,pageXOffset:Ue,pageYOffset:Ue,PannerNode:je,parent:Ue,Path2D:je,PaymentAddress:je,PaymentRequest:je,PaymentRequestUpdateEvent:je,PaymentResponse:je,performance:Ue,Performance:je,PerformanceEntry:je,PerformanceLongTaskTiming:je,PerformanceMark:je,PerformanceMeasure:je,PerformanceNavigation:je,PerformanceNavigationTiming:je,PerformanceObserver:je,PerformanceObserverEntryList:je,PerformancePaintTiming:je,PerformanceResourceTiming:je,PerformanceTiming:je,PeriodicWave:je,Permissions:je,PermissionStatus:je,personalbar:Ue,PhotoCapabilities:je,Plugin:je,PluginArray:je,PointerEvent:je,PopStateEvent:je,postMessage:Ue,Presentation:je,PresentationAvailability:je,PresentationConnection:je,PresentationConnectionAvailableEvent:je,PresentationConnectionCloseEvent:je,PresentationConnectionList:je,PresentationReceiver:je,PresentationRequest:je,print:Ue,ProcessingInstruction:je,ProgressEvent:je,PromiseRejectionEvent:je,prompt:Ue,PushManager:je,PushSubscription:je,PushSubscriptionOptions:je,queueMicrotask:Ue,RadioNodeList:je,Range:je,ReadableStream:je,RemotePlayback:je,removeEventListener:Ue,Request:je,requestAnimationFrame:Ue,requestIdleCallback:Ue,resizeBy:Ue,ResizeObserver:je,ResizeObserverEntry:je,resizeTo:Ue,Response:je,RTCCertificate:je,RTCDataChannel:je,RTCDataChannelEvent:je,RTCDtlsTransport:je,RTCIceCandidate:je,RTCIceTransport:je,RTCPeerConnection:je,RTCPeerConnectionIceEvent:je,RTCRtpReceiver:je,RTCRtpSender:je,RTCSctpTransport:je,RTCSessionDescription:je,RTCStatsReport:je,RTCTrackEvent:je,screen:Ue,Screen:je,screenLeft:Ue,ScreenOrientation:je,screenTop:Ue,screenX:Ue,screenY:Ue,ScriptProcessorNode:je,scroll:Ue,scrollbars:Ue,scrollBy:Ue,scrollTo:Ue,scrollX:Ue,scrollY:Ue,SecurityPolicyViolationEvent:je,Selection:je,ServiceWorker:je,ServiceWorkerContainer:je,ServiceWorkerRegistration:je,sessionStorage:Ue,ShadowRoot:je,SharedWorker:je,SourceBuffer:je,SourceBufferList:je,speechSynthesis:Ue,SpeechSynthesisEvent:je,SpeechSynthesisUtterance:je,StaticRange:je,status:Ue,statusbar:Ue,StereoPannerNode:je,stop:Ue,Storage:je,StorageEvent:je,StorageManager:je,styleMedia:Ue,StyleSheet:je,StyleSheetList:je,SubtleCrypto:je,SVGAElement:je,SVGAngle:je,SVGAnimatedAngle:je,SVGAnimatedBoolean:je,SVGAnimatedEnumeration:je,SVGAnimatedInteger:je,SVGAnimatedLength:je,SVGAnimatedLengthList:je,SVGAnimatedNumber:je,SVGAnimatedNumberList:je,SVGAnimatedPreserveAspectRatio:je,SVGAnimatedRect:je,SVGAnimatedString:je,SVGAnimatedTransformList:je,SVGAnimateElement:je,SVGAnimateMotionElement:je,SVGAnimateTransformElement:je,SVGAnimationElement:je,SVGCircleElement:je,SVGClipPathElement:je,SVGComponentTransferFunctionElement:je,SVGDefsElement:je,SVGDescElement:je,SVGDiscardElement:je,SVGElement:je,SVGEllipseElement:je,SVGFEBlendElement:je,SVGFEColorMatrixElement:je,SVGFEComponentTransferElement:je,SVGFECompositeElement:je,SVGFEConvolveMatrixElement:je,SVGFEDiffuseLightingElement:je,SVGFEDisplacementMapElement:je,SVGFEDistantLightElement:je,SVGFEDropShadowElement:je,SVGFEFloodElement:je,SVGFEFuncAElement:je,SVGFEFuncBElement:je,SVGFEFuncGElement:je,SVGFEFuncRElement:je,SVGFEGaussianBlurElement:je,SVGFEImageElement:je,SVGFEMergeElement:je,SVGFEMergeNodeElement:je,SVGFEMorphologyElement:je,SVGFEOffsetElement:je,SVGFEPointLightElement:je,SVGFESpecularLightingElement:je,SVGFESpotLightElement:je,SVGFETileElement:je,SVGFETurbulenceElement:je,SVGFilterElement:je,SVGForeignObjectElement:je,SVGGElement:je,SVGGeometryElement:je,SVGGradientElement:je,SVGGraphicsElement:je,SVGImageElement:je,SVGLength:je,SVGLengthList:je,SVGLinearGradientElement:je,SVGLineElement:je,SVGMarkerElement:je,SVGMaskElement:je,SVGMatrix:je,SVGMetadataElement:je,SVGMPathElement:je,SVGNumber:je,SVGNumberList:je,SVGPathElement:je,SVGPatternElement:je,SVGPoint:je,SVGPointList:je,SVGPolygonElement:je,SVGPolylineElement:je,SVGPreserveAspectRatio:je,SVGRadialGradientElement:je,SVGRect:je,SVGRectElement:je,SVGScriptElement:je,SVGSetElement:je,SVGStopElement:je,SVGStringList:je,SVGStyleElement:je,SVGSVGElement:je,SVGSwitchElement:je,SVGSymbolElement:je,SVGTextContentElement:je,SVGTextElement:je,SVGTextPathElement:je,SVGTextPositioningElement:je,SVGTitleElement:je,SVGTransform:je,SVGTransformList:je,SVGTSpanElement:je,SVGUnitTypes:je,SVGUseElement:je,SVGViewElement:je,TaskAttributionTiming:je,Text:je,TextEvent:je,TextMetrics:je,TextTrack:je,TextTrackCue:je,TextTrackCueList:je,TextTrackList:je,TimeRanges:je,toolbar:Ue,top:Ue,Touch:je,TouchEvent:je,TouchList:je,TrackEvent:je,TransitionEvent:je,TreeWalker:je,UIEvent:je,ValidityState:je,visualViewport:Ue,VisualViewport:je,VTTCue:je,WaveShaperNode:je,WebAssembly:Ue,WebGL2RenderingContext:je,WebGLActiveInfo:je,WebGLBuffer:je,WebGLContextEvent:je,WebGLFramebuffer:je,WebGLProgram:je,WebGLQuery:je,WebGLRenderbuffer:je,WebGLRenderingContext:je,WebGLSampler:je,WebGLShader:je,WebGLShaderPrecisionFormat:je,WebGLSync:je,WebGLTexture:je,WebGLTransformFeedback:je,WebGLUniformLocation:je,WebGLVertexArrayObject:je,WebSocket:je,WheelEvent:je,Window:je,Worker:je,WritableStream:je,XMLDocument:je,XMLHttpRequest:je,XMLHttpRequestEventTarget:je,XMLHttpRequestUpload:je,XMLSerializer:je,XPathEvaluator:je,XPathExpression:je,XPathResult:je,XSLTProcessor:je};for(const e of["window","global","self","globalThis"])Ke[e]=Ke;function Xe(e){let t=Ke;for(const s of e){if("string"!=typeof s)return null;if(t=t[s],!t)return null}return t[Be]}const Ye=[],Qe=Symbol("Unknown Key"),Je=[],Ze=[Qe],et=Symbol("Entities");class tt{constructor(){this.entityPaths=Object.create(null,{[et]:{value:new Set}})}getEntities(e){let t=this.entityPaths;for(const s of e)t=t[s]=t[s]||Object.create(null,{[et]:{value:new Set}});return t[et]}}const st=new tt;function it(e,t=null){return Object.create(t,e)}const nt=Symbol("Unknown Value"),rt={deoptimizePath:()=>{},getLiteralValueAtPath:()=>nt,getReturnExpressionWhenCalledAtPath:()=>rt,hasEffectsWhenAccessedAtPath:e=>e.length>0,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:()=>!0,include:()=>{},includeCallArguments(e,t){for(const s of t)s.include(e,!1)},included:!0,toString:()=>"[[UNKNOWN]]"},at={deoptimizePath:()=>{},getLiteralValueAtPath:()=>{},getReturnExpressionWhenCalledAtPath:()=>rt,hasEffectsWhenAccessedAtPath:e=>e.length>0,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:()=>!0,include:()=>{},includeCallArguments(){},included:!0,toString:()=>"undefined"},ot={value:{returns:null,returnsPrimitive:rt,callsArgs:null,mutatesSelf:!0}},ht={value:{returns:null,returnsPrimitive:rt,callsArgs:[0],mutatesSelf:!1}};class lt{constructor(){this.included=!1}deoptimizePath(){}getLiteralValueAtPath(){return nt}getReturnExpressionWhenCalledAtPath(e){return 1===e.length?It(Pt,e[0]):rt}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){return 1!==e.length||_t(Pt,e[0],this.included,t,s)}include(){this.included=!0}includeCallArguments(e,t){for(const s of t)s.include(e,!1)}toString(){return"[[UNKNOWN ARRAY]]"}}const ct={value:{callsArgs:null,mutatesSelf:!1,returns:lt,returnsPrimitive:null}},ut={value:{callsArgs:null,mutatesSelf:!0,returns:lt,returnsPrimitive:null}},dt={value:{callsArgs:[0],mutatesSelf:!1,returns:lt,returnsPrimitive:null}},pt={value:{callsArgs:[0],mutatesSelf:!0,returns:lt,returnsPrimitive:null}},ft={deoptimizePath:()=>{},getLiteralValueAtPath:()=>nt,getReturnExpressionWhenCalledAtPath:e=>1===e.length?It(kt,e[0]):rt,hasEffectsWhenAccessedAtPath:e=>e.length>1,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:e=>{if(1===e.length){const t=e[0];return"string"!=typeof t||!kt[t]}return!0},include:()=>{},includeCallArguments(e,t){for(const s of t)s.include(e,!1)},included:!0,toString:()=>"[[UNKNOWN BOOLEAN]]"},mt={value:{callsArgs:null,mutatesSelf:!1,returns:null,returnsPrimitive:ft}},gt={value:{callsArgs:[0],mutatesSelf:!1,returns:null,returnsPrimitive:ft}},xt={deoptimizePath:()=>{},getLiteralValueAtPath:()=>nt,getReturnExpressionWhenCalledAtPath:e=>1===e.length?It(wt,e[0]):rt,hasEffectsWhenAccessedAtPath:e=>e.length>1,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:e=>{if(1===e.length){const t=e[0];return"string"!=typeof t||!wt[t]}return!0},include:()=>{},includeCallArguments(e,t){for(const s of t)s.include(e,!1)},included:!0,toString:()=>"[[UNKNOWN NUMBER]]"},yt={value:{callsArgs:null,mutatesSelf:!1,returns:null,returnsPrimitive:xt}},Et={value:{callsArgs:null,mutatesSelf:!0,returns:null,returnsPrimitive:xt}},bt={value:{callsArgs:[0],mutatesSelf:!1,returns:null,returnsPrimitive:xt}},vt={deoptimizePath:()=>{},getLiteralValueAtPath:()=>nt,getReturnExpressionWhenCalledAtPath:e=>1===e.length?It(Nt,e[0]):rt,hasEffectsWhenAccessedAtPath:e=>e.length>1,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:(e,t,s)=>1!==e.length||_t(Nt,e[0],!0,t,s),include:()=>{},includeCallArguments(e,t){for(const s of t)s.include(e,!1)},included:!0,toString:()=>"[[UNKNOWN STRING]]"},St={value:{callsArgs:null,mutatesSelf:!1,returns:null,returnsPrimitive:vt}};class At{constructor(){this.included=!1}deoptimizePath(){}getLiteralValueAtPath(){return nt}getReturnExpressionWhenCalledAtPath(e){return 1===e.length?It(Ct,e[0]):rt}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){return 1!==e.length||_t(Ct,e[0],this.included,t,s)}include(){this.included=!0}includeCallArguments(e,t){for(const s of t)s.include(e,!1)}toString(){return"[[UNKNOWN OBJECT]]"}}const Ct=it({hasOwnProperty:mt,isPrototypeOf:mt,propertyIsEnumerable:mt,toLocaleString:St,toString:St,valueOf:{value:{callsArgs:null,mutatesSelf:!1,returns:null,returnsPrimitive:rt}}}),Pt=it({concat:ct,copyWithin:ut,every:gt,fill:ut,filter:dt,find:ht,findIndex:bt,forEach:ht,includes:mt,indexOf:yt,join:St,lastIndexOf:yt,map:dt,pop:ot,push:Et,reduce:ht,reduceRight:ht,reverse:ut,shift:ot,slice:ct,some:gt,sort:pt,splice:ut,unshift:Et},Ct),kt=it({valueOf:mt},Ct),wt=it({toExponential:St,toFixed:St,toLocaleString:St,toPrecision:St,valueOf:yt},Ct),Nt=it({charAt:St,charCodeAt:yt,codePointAt:yt,concat:St,endsWith:mt,includes:mt,indexOf:yt,lastIndexOf:yt,localeCompare:yt,match:mt,normalize:St,padEnd:St,padStart:St,repeat:St,replace:{value:{callsArgs:[1],mutatesSelf:!1,returns:null,returnsPrimitive:vt}},search:yt,slice:St,split:ct,startsWith:mt,substr:St,substring:St,toLocaleLowerCase:St,toLocaleUpperCase:St,toLowerCase:St,toUpperCase:St,trim:St,valueOf:St},Ct);function _t(e,t,s,i,n){if("string"!=typeof t||!e[t]||e[t].mutatesSelf&&s)return!0;if(!e[t].callsArgs)return!1;for(const s of e[t].callsArgs)if(i.args[s]&&i.args[s].hasEffectsWhenCalledAtPath(Je,{args:Ye,withNew:!1},n))return!0;return!1}function It(e,t){return"string"==typeof t&&e[t]?null!==e[t].returnsPrimitive?e[t].returnsPrimitive:new e[t].returns:rt}class $t{constructor(e){this.alwaysRendered=!1,this.exportName=null,this.included=!1,this.isId=!1,this.isReassigned=!1,this.renderBaseName=null,this.renderName=null,this.safeExportName=null,this.name=e}addReference(e){}deoptimizePath(e){}getBaseVariableName(){return this.renderBaseName||this.renderName||this.name}getLiteralValueAtPath(e,t,s){return nt}getName(){const e=this.renderName||this.name;return this.renderBaseName?`${this.renderBaseName}${Tt(e)}`:e}getReturnExpressionWhenCalledAtPath(e,t,s){return rt}hasEffectsWhenAccessedAtPath(e,t){return e.length>0}hasEffectsWhenAssignedAtPath(e,t){return!0}hasEffectsWhenCalledAtPath(e,t,s){return!0}include(e){this.included=!0}includeCallArguments(e,t){for(const s of t)s.include(e,!1)}markCalledFromTryStatement(){}setRenderNames(e,t){this.renderBaseName=e,this.renderName=t}setSafeName(e){this.renderName=e}toString(){return this.name}}const Tt=e=>/^(?!\d)[\w$]+$/.test(e)?`.${e}`:`[${JSON.stringify(e)}]`;class Rt extends $t{hasEffectsWhenAccessedAtPath(e){return!function(e){return 1===e.length?"undefined"===e[0]||null!==Xe(e):null!==Xe(e.slice(0,-1))}([this.name,...e])}hasEffectsWhenCalledAtPath(e){return!function(e){const t=Xe(e);return null!==t&&t.pure}([this.name,...e])}}class Lt extends $t{constructor(){super("undefined")}getLiteralValueAtPath(){}}class Mt extends $t{constructor(e,t){super(t),this.module=e,this.isNamespace="*"===t,this.referenced=!1}addReference(e){this.referenced=!0,"default"!==this.name&&"*"!==this.name||this.module.suggestName(e.name)}include(){this.included||(this.included=!0,this.module.used=!0)}}const Dt="break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public".split(" "),Ot="Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl".split(" "),Vt=new Set(Dt.concat(Ot)),Bt=/[^$_a-zA-Z0-9]/g,Ft=e=>/\d/.test(e[0]);function Wt(e){return e=e.replace(/-(\w)/g,(e,t)=>t.toUpperCase()).replace(Bt,"_"),(Ft(e)||Vt.has(e))&&(e=`_${e}`),e||"_"}const Ut=/^(?:\/|(?:[A-Za-z]:)?[\\|/])/,zt=/^\.?\.\//;function jt(e){return Ut.test(e)}function Gt(e){return zt.test(e)}function Ht(e){return e.replace(/\\/g,"/")}function qt(e){return e.split(/(\/|\\)/).pop()}function Kt(e){const t=/(\/|\\)[^/\\]*$/.exec(e);if(!t)return".";const s=e.slice(0,-t[0].length);return s||"/"}function Xt(e){const t=/\.[^.]+$/.exec(qt(e));return t?t[0]:""}function Yt(e,t){const s=e.split(/[/\\]/).filter(Boolean),i=t.split(/[/\\]/).filter(Boolean);for("."===s[0]&&s.shift(),"."===i[0]&&i.shift();s[0]&&i[0]&&s[0]===i[0];)s.shift(),i.shift();for(;".."===i[0]&&s.length>0;)i.shift(),s.pop();for(;s.pop();)i.unshift("..");return i.join("/")}function Qt(...e){let t=e.shift().split(/[/\\]/);return e.forEach(e=>{if(jt(e))t=e.split(/[/\\]/);else{const s=e.split(/[/\\]/);for(;"."===s[0]||".."===s[0];)".."===s.shift()&&t.pop();t.push.apply(t,s)}}),t.join("/")}class Jt{constructor(e,t,s){this.exportsNames=!1,this.exportsNamespace=!1,this.mostCommonSuggestion=0,this.reexported=!1,this.renderPath=void 0,this.renormalizeRenderPath=!1,this.used=!1,this.graph=e,this.id=t,this.execIndex=1/0,this.moduleSideEffects=s;const i=t.split(/[\\/]/);this.variableName=Wt(i.pop()),this.nameSuggestions=Object.create(null),this.declarations=Object.create(null),this.exportedVariables=new Map}getVariableForExportName(e){"*"===e?this.exportsNamespace=!0:"default"!==e&&(this.exportsNames=!0);let t=this.declarations[e];return t||(this.declarations[e]=t=new Mt(this,e),this.exportedVariables.set(t,e),t)}setRenderPath(e,t){return this.renderPath="",e.paths&&(this.renderPath="function"==typeof e.paths?e.paths(this.id):e.paths[this.id]),this.renderPath||(jt(this.id)?(this.renderPath=Ht(Yt(t,this.id)),this.renormalizeRenderPath=!0):this.renderPath=this.id),this.renderPath}suggestName(e){this.nameSuggestions[e]||(this.nameSuggestions[e]=0),this.nameSuggestions[e]+=1,this.nameSuggestions[e]>this.mostCommonSuggestion&&(this.mostCommonSuggestion=this.nameSuggestions[e],this.variableName=e)}warnUnusedImports(){const e=Object.keys(this.declarations).filter(e=>{if("*"===e)return!1;const t=this.declarations[e];return!t.included&&!this.reexported&&!t.referenced});if(0===e.length)return;const t=1===e.length?`'${e[0]}' is`:`${e.slice(0,-1).map(e=>`'${e}'`).join(", ")} and '${e.slice(-1)}' are`;this.graph.warn({code:"UNUSED_EXTERNAL_IMPORT",message:`${t} imported from external module '${this.id}' but never used`,names:e,source:this.id})}}function Zt(e){e.isExecuted=!0;const t=[e],s=new Set;for(const e of t)for(const i of e.dependencies)i instanceof Jt||i.isExecuted||!i.moduleSideEffects||s.has(i.id)||(i.isExecuted=!0,s.add(i.id),t.push(i))}class es extends $t{constructor(e,t,s,i){super(e),this.additionalInitializers=null,this.calledFromTryStatement=!1,this.expressionsToBeDeoptimized=[],this.declarations=t?[t]:[],this.init=s,this.deoptimizationTracker=i.deoptimizationTracker,this.module=i.module}addDeclaration(e,t){this.declarations.push(e),null===this.additionalInitializers&&(this.additionalInitializers=null===this.init?[]:[this.init],this.init=rt,this.isReassigned=!0),null!==t&&this.additionalInitializers.push(t)}consolidateInitializers(){if(null!==this.additionalInitializers){for(const e of this.additionalInitializers)e.deoptimizePath(Ze);this.additionalInitializers=null}}deoptimizePath(e){if(e.length>7||this.isReassigned)return;const t=this.deoptimizationTracker.getEntities(e);if(!t.has(this))if(t.add(this),0===e.length){if(!this.isReassigned){this.isReassigned=!0;const e=this.expressionsToBeDeoptimized;this.expressionsToBeDeoptimized=[];for(const t of e)t.deoptimizeCache();this.init&&this.init.deoptimizePath(Ze)}}else this.init&&this.init.deoptimizePath(e)}getLiteralValueAtPath(e,t,s){if(this.isReassigned||!this.init||e.length>7)return nt;const i=t.getEntities(e);if(i.has(this.init))return nt;this.expressionsToBeDeoptimized.push(s),i.add(this.init);const n=this.init.getLiteralValueAtPath(e,t,s);return i.delete(this.init),n}getReturnExpressionWhenCalledAtPath(e,t,s){if(this.isReassigned||!this.init||e.length>7)return rt;const i=t.getEntities(e);if(i.has(this.init))return rt;this.expressionsToBeDeoptimized.push(s),i.add(this.init);const n=this.init.getReturnExpressionWhenCalledAtPath(e,t,s);return i.delete(this.init),n}hasEffectsWhenAccessedAtPath(e,t){if(0===e.length)return!1;if(this.isReassigned||e.length>7)return!0;const s=t.accessed.getEntities(e);return!s.has(this)&&(s.add(this),this.init&&this.init.hasEffectsWhenAccessedAtPath(e,t))}hasEffectsWhenAssignedAtPath(e,t){if(this.included||e.length>7)return!0;if(0===e.length)return!1;if(this.isReassigned)return!0;const s=t.assigned.getEntities(e);return!s.has(this)&&(s.add(this),this.init&&this.init.hasEffectsWhenAssignedAtPath(e,t))}hasEffectsWhenCalledAtPath(e,t,s){if(e.length>7||this.isReassigned)return!0;const i=(t.withNew?s.instantiated:s.called).getEntities(e);return!i.has(this)&&(i.add(this),this.init&&this.init.hasEffectsWhenCalledAtPath(e,t,s))}include(e){if(!this.included){this.included=!0,this.module.isExecuted||Zt(this.module);for(const t of this.declarations){t.included||t.include(e,!1);let s=t.parent;for(;!s.included&&(s.included=!0,"Program"!==s.type);)s=s.parent}}}includeCallArguments(e,t){if(this.isReassigned)for(const s of t)s.include(e,!1);else this.init&&this.init.includeCallArguments(e,t)}markCalledFromTryStatement(){this.calledFromTryStatement=!0}}class ts{constructor(){this.children=[],this.variables=new Map}addDeclaration(e,t,s=null,i){const n=e.name;let r=this.variables.get(n);return r?r.addDeclaration(e,s):(r=new es(e.name,e,s||at,t),this.variables.set(n,r)),r}contains(e){return this.variables.has(e)}findVariable(e){throw new Error("Internal Error: findVariable needs to be implemented by a subclass")}}class ss extends ts{constructor(){super(),this.variables.set("undefined",new Lt)}findVariable(e){let t=this.variables.get(e);return t||(t=new Rt(e),this.variables.set(e,t)),t}}for(var is={},ns="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",rs=0;rs<ns.length;rs++)is[ns.charCodeAt(rs)]=rs;function as(e,t,s){4===s?e.push([t[0],t[1],t[2],t[3]]):5===s?e.push([t[0],t[1],t[2],t[3],t[4]]):1===s&&e.push([t[0]])}function os(e){var t="";e=e<0?-e<<1|1:e<<1;do{var s=31&e;(e>>>=5)>0&&(s|=32),t+=ns[s]}while(e>0);return t}var hs=function e(t){this.bits=t instanceof e?t.bits.slice():[]};hs.prototype.add=function(e){this.bits[e>>5]|=1<<(31&e)},hs.prototype.has=function(e){return!!(this.bits[e>>5]&1<<(31&e))};var ls=function(e,t,s){this.start=e,this.end=t,this.original=s,this.intro="",this.outro="",this.content=s,this.storeName=!1,this.edited=!1,Object.defineProperties(this,{previous:{writable:!0,value:null},next:{writable:!0,value:null}})};ls.prototype.appendLeft=function(e){this.outro+=e},ls.prototype.appendRight=function(e){this.intro=this.intro+e},ls.prototype.clone=function(){var e=new ls(this.start,this.end,this.original);return e.intro=this.intro,e.outro=this.outro,e.content=this.content,e.storeName=this.storeName,e.edited=this.edited,e},ls.prototype.contains=function(e){return this.start<e&&e<this.end},ls.prototype.eachNext=function(e){for(var t=this;t;)e(t),t=t.next},ls.prototype.eachPrevious=function(e){for(var t=this;t;)e(t),t=t.previous},ls.prototype.edit=function(e,t,s){return this.content=e,s||(this.intro="",this.outro=""),this.storeName=t,this.edited=!0,this},ls.prototype.prependLeft=function(e){this.outro=e+this.outro},ls.prototype.prependRight=function(e){this.intro=e+this.intro},ls.prototype.split=function(e){var t=e-this.start,s=this.original.slice(0,t),i=this.original.slice(t);this.original=s;var n=new ls(e,this.end,i);return n.outro=this.outro,this.outro="",this.end=e,this.edited?(n.edit("",!1),this.content=""):this.content=s,n.next=this.next,n.next&&(n.next.previous=n),n.previous=this,this.next=n,n},ls.prototype.toString=function(){return this.intro+this.content+this.outro},ls.prototype.trimEnd=function(e){if(this.outro=this.outro.replace(e,""),this.outro.length)return!0;var t=this.content.replace(e,"");return t.length?(t!==this.content&&this.split(this.start+t.length).edit("",void 0,!0),!0):(this.edit("",void 0,!0),this.intro=this.intro.replace(e,""),!!this.intro.length||void 0)},ls.prototype.trimStart=function(e){if(this.intro=this.intro.replace(e,""),this.intro.length)return!0;var t=this.content.replace(e,"");return t.length?(t!==this.content&&(this.split(this.end-t.length),this.edit("",void 0,!0)),!0):(this.edit("",void 0,!0),this.outro=this.outro.replace(e,""),!!this.outro.length||void 0)};var cs=function(){throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")};"undefined"!=typeof window&&"function"==typeof window.btoa?cs=function(e){return window.btoa(unescape(encodeURIComponent(e)))}:"function"==typeof Buffer&&(cs=function(e){return Buffer.from(e,"utf-8").toString("base64")});var us=function(e){this.version=3,this.file=e.file,this.sources=e.sources,this.sourcesContent=e.sourcesContent,this.names=e.names,this.mappings=function(e){for(var t=0,s=0,i=0,n=0,r="",a=0;a<e.length;a++){var o=e[a];if(a>0&&(r+=";"),0!==o.length){for(var h=0,l=[],c=0,u=o;c<u.length;c++){var d=u[c],p=os(d[0]-h);h=d[0],d.length>1&&(p+=os(d[1]-t)+os(d[2]-s)+os(d[3]-i),t=d[1],s=d[2],i=d[3]),5===d.length&&(p+=os(d[4]-n),n=d[4]),l.push(p)}r+=l.join(",")}}return r}(e.mappings)};function ds(e){var t=e.split("\n"),s=t.filter((function(e){return/^\t+/.test(e)})),i=t.filter((function(e){return/^ {2,}/.test(e)}));if(0===s.length&&0===i.length)return null;if(s.length>=i.length)return"\t";var n=i.reduce((function(e,t){var s=/^ +/.exec(t)[0].length;return Math.min(s,e)}),1/0);return new Array(n+1).join(" ")}function ps(e,t){var s=e.split(/[/\\]/),i=t.split(/[/\\]/);for(s.pop();s[0]===i[0];)s.shift(),i.shift();if(s.length)for(var n=s.length;n--;)s[n]="..";return s.concat(i).join("/")}us.prototype.toString=function(){return JSON.stringify(this)},us.prototype.toUrl=function(){return"data:application/json;charset=utf-8;base64,"+cs(this.toString())};var fs=Object.prototype.toString;function ms(e){return"[object Object]"===fs.call(e)}function gs(e){for(var t=e.split("\n"),s=[],i=0,n=0;i<t.length;i++)s.push(n),n+=t[i].length+1;return function(e){for(var t=0,i=s.length;t<i;){var n=t+i>>1;e<s[n]?i=n:t=n+1}var r=t-1;return{line:r,column:e-s[r]}}}var xs=function(e){this.hires=e,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null};xs.prototype.addEdit=function(e,t,s,i){if(t.length){var n=[this.generatedCodeColumn,e,s.line,s.column];i>=0&&n.push(i),this.rawSegments.push(n)}else this.pending&&this.rawSegments.push(this.pending);this.advance(t),this.pending=null},xs.prototype.addUneditedChunk=function(e,t,s,i,n){for(var r=t.start,a=!0;r<t.end;)(this.hires||a||n.has(r))&&this.rawSegments.push([this.generatedCodeColumn,e,i.line,i.column]),"\n"===s[r]?(i.line+=1,i.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,a=!0):(i.column+=1,this.generatedCodeColumn+=1,a=!1),r+=1;this.pending=null},xs.prototype.advance=function(e){if(e){var t=e.split("\n");if(t.length>1){for(var s=0;s<t.length-1;s++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=t[t.length-1].length}};var ys="\n",Es={insertLeft:!1,insertRight:!1,storeName:!1},bs=function(e,t){void 0===t&&(t={});var s=new ls(0,e.length,e);Object.defineProperties(this,{original:{writable:!0,value:e},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:s},lastChunk:{writable:!0,value:s},lastSearchedChunk:{writable:!0,value:s},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:t.filename},indentExclusionRanges:{writable:!0,value:t.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new hs},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:ds(e)}}),this.byStart[0]=s,this.byEnd[e.length]=s};bs.prototype.addSourcemapLocation=function(e){this.sourcemapLocations.add(e)},bs.prototype.append=function(e){if("string"!=typeof e)throw new TypeError("outro content must be a string");return this.outro+=e,this},bs.prototype.appendLeft=function(e,t){if("string"!=typeof t)throw new TypeError("inserted content must be a string");this._split(e);var s=this.byEnd[e];return s?s.appendLeft(t):this.intro+=t,this},bs.prototype.appendRight=function(e,t){if("string"!=typeof t)throw new TypeError("inserted content must be a string");this._split(e);var s=this.byStart[e];return s?s.appendRight(t):this.outro+=t,this},bs.prototype.clone=function(){for(var e=new bs(this.original,{filename:this.filename}),t=this.firstChunk,s=e.firstChunk=e.lastSearchedChunk=t.clone();t;){e.byStart[s.start]=s,e.byEnd[s.end]=s;var i=t.next,n=i&&i.clone();n&&(s.next=n,n.previous=s,s=n),t=i}return e.lastChunk=s,this.indentExclusionRanges&&(e.indentExclusionRanges=this.indentExclusionRanges.slice()),e.sourcemapLocations=new hs(this.sourcemapLocations),e.intro=this.intro,e.outro=this.outro,e},bs.prototype.generateDecodedMap=function(e){var t=this;e=e||{};var s=Object.keys(this.storedNames),i=new xs(e.hires),n=gs(this.original);return this.intro&&i.advance(this.intro),this.firstChunk.eachNext((function(e){var r=n(e.start);e.intro.length&&i.advance(e.intro),e.edited?i.addEdit(0,e.content,r,e.storeName?s.indexOf(e.original):-1):i.addUneditedChunk(0,e,t.original,r,t.sourcemapLocations),e.outro.length&&i.advance(e.outro)})),{file:e.file?e.file.split(/[/\\]/).pop():null,sources:[e.source?ps(e.file||"",e.source):null],sourcesContent:e.includeContent?[this.original]:[null],names:s,mappings:i.raw}},bs.prototype.generateMap=function(e){return new us(this.generateDecodedMap(e))},bs.prototype.getIndentString=function(){return null===this.indentStr?"\t":this.indentStr},bs.prototype.indent=function(e,t){var s=/^[^\r\n]/gm;if(ms(e)&&(t=e,e=void 0),""===(e=void 0!==e?e:this.indentStr||"\t"))return this;var i={};(t=t||{}).exclude&&("number"==typeof t.exclude[0]?[t.exclude]:t.exclude).forEach((function(e){for(var t=e[0];t<e[1];t+=1)i[t]=!0}));var n=!1!==t.indentStart,r=function(t){return n?""+e+t:(n=!0,t)};this.intro=this.intro.replace(s,r);for(var a=0,o=this.firstChunk;o;){var h=o.end;if(o.edited)i[a]||(o.content=o.content.replace(s,r),o.content.length&&(n="\n"===o.content[o.content.length-1]));else for(a=o.start;a<h;){if(!i[a]){var l=this.original[a];"\n"===l?n=!0:"\r"!==l&&n&&(n=!1,a===o.start?o.prependRight(e):(this._splitChunk(o,a),(o=o.next).prependRight(e)))}a+=1}a=o.end,o=o.next}return this.outro=this.outro.replace(s,r),this},bs.prototype.insert=function(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")},bs.prototype.insertLeft=function(e,t){return Es.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),Es.insertLeft=!0),this.appendLeft(e,t)},bs.prototype.insertRight=function(e,t){return Es.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),Es.insertRight=!0),this.prependRight(e,t)},bs.prototype.move=function(e,t,s){if(s>=e&&s<=t)throw new Error("Cannot move a selection inside itself");this._split(e),this._split(t),this._split(s);var i=this.byStart[e],n=this.byEnd[t],r=i.previous,a=n.next,o=this.byStart[s];if(!o&&n===this.lastChunk)return this;var h=o?o.previous:this.lastChunk;return r&&(r.next=a),a&&(a.previous=r),h&&(h.next=i),o&&(o.previous=n),i.previous||(this.firstChunk=n.next),n.next||(this.lastChunk=i.previous,this.lastChunk.next=null),i.previous=h,n.next=o||null,h||(this.firstChunk=i),o||(this.lastChunk=n),this},bs.prototype.overwrite=function(e,t,s,i){if("string"!=typeof s)throw new TypeError("replacement content must be a string");for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length;if(t>this.original.length)throw new Error("end is out of bounds");if(e===t)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(e),this._split(t),!0===i&&(Es.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),Es.storeName=!0),i={storeName:!0});var n=void 0!==i&&i.storeName,r=void 0!==i&&i.contentOnly;if(n){var a=this.original.slice(e,t);this.storedNames[a]=!0}var o=this.byStart[e],h=this.byEnd[t];if(o){if(t>o.end&&o.next!==this.byStart[o.end])throw new Error("Cannot overwrite across a split point");if(o.edit(s,n,r),o!==h){for(var l=o.next;l!==h;)l.edit("",!1),l=l.next;l.edit("",!1)}}else{var c=new ls(e,t,"").edit(s,n);h.next=c,c.previous=h}return this},bs.prototype.prepend=function(e){if("string"!=typeof e)throw new TypeError("outro content must be a string");return this.intro=e+this.intro,this},bs.prototype.prependLeft=function(e,t){if("string"!=typeof t)throw new TypeError("inserted content must be a string");this._split(e);var s=this.byEnd[e];return s?s.prependLeft(t):this.intro=t+this.intro,this},bs.prototype.prependRight=function(e,t){if("string"!=typeof t)throw new TypeError("inserted content must be a string");this._split(e);var s=this.byStart[e];return s?s.prependRight(t):this.outro=t+this.outro,this},bs.prototype.remove=function(e,t){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length;if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e),this._split(t);for(var s=this.byStart[e];s;)s.intro="",s.outro="",s.edit(""),s=t>s.end?this.byStart[s.end]:null;return this},bs.prototype.lastChar=function(){if(this.outro.length)return this.outro[this.outro.length-1];var e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);return this.intro.length?this.intro[this.intro.length-1]:""},bs.prototype.lastLine=function(){var e=this.outro.lastIndexOf(ys);if(-1!==e)return this.outro.substr(e+1);var t=this.outro,s=this.lastChunk;do{if(s.outro.length>0){if(-1!==(e=s.outro.lastIndexOf(ys)))return s.outro.substr(e+1)+t;t=s.outro+t}if(s.content.length>0){if(-1!==(e=s.content.lastIndexOf(ys)))return s.content.substr(e+1)+t;t=s.content+t}if(s.intro.length>0){if(-1!==(e=s.intro.lastIndexOf(ys)))return s.intro.substr(e+1)+t;t=s.intro+t}}while(s=s.previous);return-1!==(e=this.intro.lastIndexOf(ys))?this.intro.substr(e+1)+t:this.intro+t},bs.prototype.slice=function(e,t){for(void 0===e&&(e=0),void 0===t&&(t=this.original.length);e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length;for(var s="",i=this.firstChunk;i&&(i.start>e||i.end<=e);){if(i.start<t&&i.end>=t)return s;i=i.next}if(i&&i.edited&&i.start!==e)throw new Error("Cannot use replaced character "+e+" as slice start anchor.");for(var n=i;i;){!i.intro||n===i&&i.start!==e||(s+=i.intro);var r=i.start<t&&i.end>=t;if(r&&i.edited&&i.end!==t)throw new Error("Cannot use replaced character "+t+" as slice end anchor.");var a=n===i?e-i.start:0,o=r?i.content.length+t-i.end:i.content.length;if(s+=i.content.slice(a,o),!i.outro||r&&i.end!==t||(s+=i.outro),r)break;i=i.next}return s},bs.prototype.snip=function(e,t){var s=this.clone();return s.remove(0,e),s.remove(t,s.original.length),s},bs.prototype._split=function(e){if(!this.byStart[e]&&!this.byEnd[e])for(var t=this.lastSearchedChunk,s=e>t.end;t;){if(t.contains(e))return this._splitChunk(t,e);t=s?this.byStart[t.end]:this.byEnd[t.start]}},bs.prototype._splitChunk=function(e,t){if(e.edited&&e.content.length){var s=gs(this.original)(t);throw new Error("Cannot split a chunk that has already been edited ("+s.line+":"+s.column+' – "'+e.original+'")')}var i=e.split(t);return this.byEnd[t]=e,this.byStart[t]=i,this.byEnd[i.end]=i,e===this.lastChunk&&(this.lastChunk=i),this.lastSearchedChunk=e,!0},bs.prototype.toString=function(){for(var e=this.intro,t=this.firstChunk;t;)e+=t.toString(),t=t.next;return e+this.outro},bs.prototype.isEmpty=function(){var e=this.firstChunk;do{if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return!1}while(e=e.next);return!0},bs.prototype.length=function(){var e=this.firstChunk,t=0;do{t+=e.intro.length+e.content.length+e.outro.length}while(e=e.next);return t},bs.prototype.trimLines=function(){return this.trim("[\\r\\n]")},bs.prototype.trim=function(e){return this.trimStart(e).trimEnd(e)},bs.prototype.trimEndAborted=function(e){var t=new RegExp((e||"\\s")+"+$");if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;var s=this.lastChunk;do{var i=s.end,n=s.trimEnd(t);if(s.end!==i&&(this.lastChunk===s&&(this.lastChunk=s.next),this.byEnd[s.end]=s,this.byStart[s.next.start]=s.next,this.byEnd[s.next.end]=s.next),n)return!0;s=s.previous}while(s);return!1},bs.prototype.trimEnd=function(e){return this.trimEndAborted(e),this},bs.prototype.trimStartAborted=function(e){var t=new RegExp("^"+(e||"\\s")+"+");if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;var s=this.firstChunk;do{var i=s.end,n=s.trimStart(t);if(s.end!==i&&(s===this.lastChunk&&(this.lastChunk=s.next),this.byEnd[s.end]=s,this.byStart[s.next.start]=s.next,this.byEnd[s.next.end]=s.next),n)return!0;s=s.next}while(s);return!1},bs.prototype.trimStart=function(e){return this.trimStartAborted(e),this};var vs=Object.prototype.hasOwnProperty,Ss=function(e){void 0===e&&(e={}),this.intro=e.intro||"",this.separator=void 0!==e.separator?e.separator:"\n",this.sources=[],this.uniqueSources=[],this.uniqueSourceIndexByFilename={}};function As(e,t){const s=e.split(/[/\\]/).filter(Boolean),i=t.split(/[/\\]/).filter(Boolean);for("."===s[0]&&s.shift(),"."===i[0]&&i.shift();s[0]&&i[0]&&s[0]===i[0];)s.shift(),i.shift();for(;".."===i[0]&&s.length>0;)i.shift(),s.pop();for(;s.pop();)i.unshift("..");return i.join("/")}function Cs(){return{brokenFlow:0,includedLabels:new Set}}function Ps(){return{accessed:new tt,assigned:new tt,brokenFlow:0,called:new tt,ignore:{breaks:!1,continues:!1,labels:new Set,returnAwaitYield:!1},includedLabels:new Set,instantiated:new tt,replacedVariableInits:new Map}}function ks(e,t,s,i){if(t.remove(s,i),e.annotations)for(const i of e.annotations){if(!(i.start<s))return;t.remove(i.start,i.end)}}function ws(e,t){if(e.annotations||"ExpressionStatement"!==e.parent.type||(e=e.parent),e.annotations)for(const s of e.annotations)t.remove(s.start,s.end)}Ss.prototype.addSource=function(e){if(e instanceof bs)return this.addSource({content:e,filename:e.filename,separator:this.separator});if(!ms(e)||!e.content)throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`");if(["filename","indentExclusionRanges","separator"].forEach((function(t){vs.call(e,t)||(e[t]=e.content[t])})),void 0===e.separator&&(e.separator=this.separator),e.filename)if(vs.call(this.uniqueSourceIndexByFilename,e.filename)){var t=this.uniqueSources[this.uniqueSourceIndexByFilename[e.filename]];if(e.content.original!==t.content)throw new Error("Illegal source: same filename ("+e.filename+"), different contents")}else this.uniqueSourceIndexByFilename[e.filename]=this.uniqueSources.length,this.uniqueSources.push({filename:e.filename,content:e.content.original});return this.sources.push(e),this},Ss.prototype.append=function(e,t){return this.addSource({content:new bs(e),separator:t&&t.separator||""}),this},Ss.prototype.clone=function(){var e=new Ss({intro:this.intro,separator:this.separator});return this.sources.forEach((function(t){e.addSource({filename:t.filename,content:t.content.clone(),separator:t.separator})})),e},Ss.prototype.generateDecodedMap=function(e){var t=this;void 0===e&&(e={});var s=[];this.sources.forEach((function(e){Object.keys(e.content.storedNames).forEach((function(e){~s.indexOf(e)||s.push(e)}))}));var i=new xs(e.hires);return this.intro&&i.advance(this.intro),this.sources.forEach((function(e,n){n>0&&i.advance(t.separator);var r=e.filename?t.uniqueSourceIndexByFilename[e.filename]:-1,a=e.content,o=gs(a.original);a.intro&&i.advance(a.intro),a.firstChunk.eachNext((function(t){var n=o(t.start);t.intro.length&&i.advance(t.intro),e.filename?t.edited?i.addEdit(r,t.content,n,t.storeName?s.indexOf(t.original):-1):i.addUneditedChunk(r,t,a.original,n,a.sourcemapLocations):i.advance(t.content),t.outro.length&&i.advance(t.outro)})),a.outro&&i.advance(a.outro)})),{file:e.file?e.file.split(/[/\\]/).pop():null,sources:this.uniqueSources.map((function(t){return e.file?ps(e.file,t.filename):t.filename})),sourcesContent:this.uniqueSources.map((function(t){return e.includeContent?t.content:null})),names:s,mappings:i.raw}},Ss.prototype.generateMap=function(e){return new us(this.generateDecodedMap(e))},Ss.prototype.getIndentString=function(){var e={};return this.sources.forEach((function(t){var s=t.content.indentStr;null!==s&&(e[s]||(e[s]=0),e[s]+=1)})),Object.keys(e).sort((function(t,s){return e[t]-e[s]}))[0]||"\t"},Ss.prototype.indent=function(e){var t=this;if(arguments.length||(e=this.getIndentString()),""===e)return this;var s=!this.intro||"\n"===this.intro.slice(-1);return this.sources.forEach((function(i,n){var r=void 0!==i.separator?i.separator:t.separator,a=s||n>0&&/\r?\n$/.test(r);i.content.indent(e,{exclude:i.indentExclusionRanges,indentStart:a}),s="\n"===i.content.lastChar()})),this.intro&&(this.intro=e+this.intro.replace(/^[^\n]/gm,(function(t,s){return s>0?e+t:t}))),this},Ss.prototype.prepend=function(e){return this.intro=e+this.intro,this},Ss.prototype.toString=function(){var e=this,t=this.sources.map((function(t,s){var i=void 0!==t.separator?t.separator:e.separator;return(s>0?i:"")+t.content.toString()})).join("");return this.intro+t},Ss.prototype.isEmpty=function(){return!(this.intro.length&&this.intro.trim()||this.sources.some((function(e){return!e.content.isEmpty()})))},Ss.prototype.length=function(){return this.sources.reduce((function(e,t){return e+t.content.length()}),this.intro.length)},Ss.prototype.trimLines=function(){return this.trim("[\\r\\n]")},Ss.prototype.trim=function(e){return this.trimStart(e).trimEnd(e)},Ss.prototype.trimStart=function(e){var t=new RegExp("^"+(e||"\\s")+"+");if(this.intro=this.intro.replace(t,""),!this.intro){var s,i=0;do{if(!(s=this.sources[i++]))break}while(!s.content.trimStartAborted(e))}return this},Ss.prototype.trimEnd=function(e){var t,s=new RegExp((e||"\\s")+"+$"),i=this.sources.length-1;do{if(!(t=this.sources[i--])){this.intro=this.intro.replace(s,"");break}}while(!t.content.trimEndAborted(e));return this};const Ns={isNoStatement:!0};function _s(e,t,s=0){let i,n;for(i=e.indexOf(t,s);;){if(-1===(s=e.indexOf("/",s))||s>=i)return i;n=e.charCodeAt(++s),++s,(s=47===n?e.indexOf("\n",s)+1:e.indexOf("*/",s)+2)>i&&(i=e.indexOf(t,s))}}function Is(e){let t,s,i=0;for(t=e.indexOf("\n",i);;){if(i=e.indexOf("/",i),-1===i||i>t)return t;if(s=e.charCodeAt(++i),47===s)return t;i=e.indexOf("*/",i+2)+2,i>t&&(t=e.indexOf("\n",i))}}function $s(e,t,s,i,n){let r,a,o,h,l=e[0],c=!l.included||l.needsBoundaries;c&&(h=s+Is(t.original.slice(s,l.start))+1);for(let s=1;s<=e.length;s++)r=l,a=h,o=c,l=e[s],c=void 0!==l&&(!l.included||l.needsBoundaries),o||c?(h=r.end+Is(t.original.slice(r.end,void 0===l?i:l.start))+1,r.included?o?r.render(t,n,{end:h,start:a}):r.render(t,n):ks(r,t,a,h)):r.render(t,n)}function Ts(e,t,s,i){const n=[];let r,a,o,h,l,c=s-1;for(let i=0;i<e.length;i++){for(a=e[i],void 0!==r&&(c=r.end+_s(t.original.slice(r.end,a.start),",")),o=h=c+2+Is(t.original.slice(c+1,a.start));l=t.original.charCodeAt(o),32===l||9===l||10===l||13===l;)o++;void 0!==r&&n.push({contentEnd:h,end:o,node:r,separator:c,start:s}),r=a,s=o}return n.push({contentEnd:i,end:i,node:r,separator:null,start:s}),n}function Rs(e,t,s){for(;;){const i=Is(e.original.slice(t,s));if(-1===i)break;t=t+i+1,e.remove(t-1,t)}}function Ls(e){let t="";do{const s=e%64;e=Math.floor(e/64),t="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$"[s]+t}while(0!==e);return t}const Ms=Object.assign(Object.create(null),{await:!0,break:!0,case:!0,catch:!0,class:!0,const:!0,continue:!0,debugger:!0,default:!0,delete:!0,do:!0,else:!0,enum:!0,eval:!0,export:!0,extends:!0,false:!0,finally:!0,for:!0,function:!0,if:!0,implements:!0,import:!0,in:!0,instanceof:!0,interface:!0,let:!0,new:!0,null:!0,package:!0,private:!0,protected:!0,public:!0,return:!0,static:!0,super:!0,switch:!0,this:!0,throw:!0,true:!0,try:!0,typeof:!0,undefined:!0,var:!0,void:!0,while:!0,with:!0,yield:!0});function Ds(e,t){let s=e,i=1;for(;t.has(s)||Ms[s];)s=`${e}$${Ls(i++)}`;return t.add(s),s}class Os extends ts{constructor(e){super(),this.accessedOutsideVariables=new Map,this.parent=e,e.children.push(this)}addAccessedDynamicImport(e){(this.accessedDynamicImports||(this.accessedDynamicImports=new Set)).add(e),this.parent instanceof Os&&this.parent.addAccessedDynamicImport(e)}addAccessedGlobalsByFormat(e){const t=this.accessedGlobalVariablesByFormat||(this.accessedGlobalVariablesByFormat=new Map);for(const s of Object.keys(e)){let i=t.get(s);i||(i=new Set,t.set(s,i));for(const t of e[s])i.add(t)}this.parent instanceof Os&&this.parent.addAccessedGlobalsByFormat(e)}addNamespaceMemberAccess(e,t){this.accessedOutsideVariables.set(e,t),this.parent.addNamespaceMemberAccess(e,t)}addReturnExpression(e){this.parent instanceof Os&&this.parent.addReturnExpression(e)}addUsedOutsideNames(e,t){for(const s of this.accessedOutsideVariables.values())s.included&&(e.add(s.getBaseVariableName()),s.exportName&&"system"===t&&e.add("exports"));const s=this.accessedGlobalVariablesByFormat&&this.accessedGlobalVariablesByFormat.get(t);if(s)for(const t of s)e.add(t)}contains(e){return this.variables.has(e)||this.parent.contains(e)}deconflict(e){const t=new Set;if(this.addUsedOutsideNames(t,e),this.accessedDynamicImports)for(const e of this.accessedDynamicImports)e.inlineNamespace&&t.add(e.inlineNamespace.getBaseVariableName());for(const[e,s]of this.variables)(s.included||s.alwaysRendered)&&s.setSafeName(Ds(e,t));for(const t of this.children)t.deconflict(e)}findLexicalBoundary(){return this.parent.findLexicalBoundary()}findVariable(e){const t=this.variables.get(e)||this.accessedOutsideVariables.get(e);if(t)return t;const s=this.parent.findVariable(e);return this.accessedOutsideVariables.set(e,s),s}}function Vs(e,t,s){if("number"==typeof s)throw new Error("locate takes a { startIndex, offsetLine, offsetColumn } object as the third argument");return function(e,t){void 0===t&&(t={});var s=t.offsetLine||0,i=t.offsetColumn||0,n=e.split("\n"),r=0,a=n.map((function(e,t){var s=r+e.length+1,i={start:r,end:s,line:t};return r=s,i})),o=0;function h(e,t){return e.start<=t&&t<e.end}function l(e,t){return{line:s+e.line,column:i+t-e.start,character:t}}return function(t,s){"string"==typeof t&&(t=e.indexOf(t,s||0));for(var i=a[o],n=t>=i.end?1:-1;i;){if(h(i,t))return l(i,t);i=a[o+=n]}}}(e,s)(t,s&&s.startIndex)}const Bs={Literal:[],Program:["body"]};class Fs{constructor(e,t,s){this.included=!1,this.keys=Bs[e.type]||function(e){return Bs[e.type]=Object.keys(e).filter(t=>"object"==typeof e[t]),Bs[e.type]}(e),this.parent=t,this.context=t.context,this.createScope(s),this.parseNode(e),this.initialise(),this.context.magicString.addSourcemapLocation(this.start),this.context.magicString.addSourcemapLocation(this.end)}bind(){for(const e of this.keys){const t=this[e];if(null!==t&&"annotations"!==e)if(Array.isArray(t))for(const e of t)null!==e&&e.bind();else t.bind()}}createScope(e){this.scope=e}declare(e,t){return[]}deoptimizePath(e){}getLiteralValueAtPath(e,t,s){return nt}getReturnExpressionWhenCalledAtPath(e,t,s){return rt}hasEffects(e){for(const t of this.keys){const s=this[t];if(null!==s&&"annotations"!==t)if(Array.isArray(s)){for(const t of s)if(null!==t&&t.hasEffects(e))return!0}else if(s.hasEffects(e))return!0}return!1}hasEffectsWhenAccessedAtPath(e,t){return e.length>0}hasEffectsWhenAssignedAtPath(e,t){return!0}hasEffectsWhenCalledAtPath(e,t,s){return!0}include(e,t){this.included=!0;for(const s of this.keys){const i=this[s];if(null!==i&&"annotations"!==s)if(Array.isArray(i))for(const s of i)null!==s&&s.include(e,t);else i.include(e,t)}}includeCallArguments(e,t){for(const s of t)s.include(e,!1)}includeWithAllDeclaredVariables(e,t){this.include(t,e)}initialise(){}insertSemicolon(e){";"!==e.original[this.end-1]&&e.appendLeft(this.end,";")}locate(){const e=Vs(this.context.code,this.start,{offsetLine:1});return e.file=this.context.fileName,e.toString=()=>JSON.stringify(e),e}parseNode(e){for(const t of Object.keys(e)){if(this.hasOwnProperty(t))continue;const s=e[t];if("object"!=typeof s||null===s||"annotations"===t)this[t]=s;else if(Array.isArray(s)){this[t]=[];for(const e of s)this[t].push(null===e?null:new(this.context.nodeConstructors[e.type]||this.context.nodeConstructors.UnknownNode)(e,this,this.scope))}else this[t]=new(this.context.nodeConstructors[s.type]||this.context.nodeConstructors.UnknownNode)(s,this,this.scope)}}render(e,t){for(const s of this.keys){const i=this[s];if(null!==i&&"annotations"!==s)if(Array.isArray(i))for(const s of i)null!==s&&s.render(e,t);else i.render(e,t)}}shouldBeIncluded(e){return this.included||!e.brokenFlow&&this.hasEffects(Ps())}toString(){return this.context.code.slice(this.start,this.end)}}class Ws extends Fs{createScope(e){this.scope=new Os(e)}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){return!t.withNew||this.body.hasEffectsWhenCalledAtPath(e,t,s)||null!==this.superClass&&this.superClass.hasEffectsWhenCalledAtPath(e,t,s)}initialise(){null!==this.id&&this.id.declare("class",this)}}class Us extends Ws{initialise(){super.initialise(),null!==this.id&&(this.id.variable.isId=!0)}parseNode(e){null!==e.id&&(this.id=new this.context.nodeConstructors.Identifier(e.id,this,this.scope.parent)),super.parseNode(e)}render(e,t){"system"===t.format&&this.id&&this.id.variable.exportName&&e.appendLeft(this.end,` exports('${this.id.variable.exportName}', ${this.id.variable.getName()});`),super.render(e,t)}}class zs extends es{constructor(e){super("arguments",null,rt,e)}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(){return!0}hasEffectsWhenCalledAtPath(){return!0}}class js extends es{constructor(e){super("this",null,null,e)}getLiteralValueAtPath(){return nt}hasEffectsWhenAccessedAtPath(e,t){return this.getInit(t).hasEffectsWhenAccessedAtPath(e,t)||super.hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){return this.getInit(t).hasEffectsWhenAssignedAtPath(e,t)||super.hasEffectsWhenAssignedAtPath(e,t)}hasEffectsWhenCalledAtPath(e,t,s){return this.getInit(s).hasEffectsWhenCalledAtPath(e,t,s)||super.hasEffectsWhenCalledAtPath(e,t,s)}getInit(e){return e.replacedVariableInits.get(this)||rt}}class Gs extends Os{constructor(e,t){super(e),this.parameters=[],this.hasRest=!1,this.context=t,this.hoistedBodyVarScope=new Os(this)}addParameterDeclaration(e){const t=e.name;let s=this.hoistedBodyVarScope.variables.get(t);return s?s.addDeclaration(e,null):s=new es(t,e,rt,this.context),this.variables.set(t,s),s}addParameterVariables(e,t){this.parameters=e;for(const t of e)for(const e of t)e.alwaysRendered=!0;this.hasRest=t}includeCallArguments(e,t){let s=!1,i=!1;const n=this.hasRest&&this.parameters[this.parameters.length-1];for(let r=t.length-1;r>=0;r--){const a=this.parameters[r]||n,o=t[r];if(a){s=!1;for(const e of a)e.included&&(i=!0),e.calledFromTryStatement&&(s=!0)}!i&&o.shouldBeIncluded(e)&&(i=!0),i&&o.include(e,s)}}}class Hs extends Gs{constructor(){super(...arguments),this.returnExpression=null,this.returnExpressions=[]}addReturnExpression(e){this.returnExpressions.push(e)}getReturnExpression(){return null===this.returnExpression&&this.updateReturnExpression(),this.returnExpression}updateReturnExpression(){if(1===this.returnExpressions.length)this.returnExpression=this.returnExpressions[0];else{this.returnExpression=rt;for(const e of this.returnExpressions)e.deoptimizePath(Ze)}}}class qs extends Hs{constructor(e,t){super(e,t),this.variables.set("arguments",this.argumentsVariable=new zs(t)),this.variables.set("this",this.thisVariable=new js(t))}findLexicalBoundary(){return this}includeCallArguments(e,t){if(super.includeCallArguments(e,t),this.argumentsVariable.included)for(const s of t)s.included||s.include(e,!1)}}const Ks=Object.create(null);class Xs extends Fs{constructor(){super(...arguments),this.variable=null,this.bound=!1}addExportedVariables(e){null!==this.variable&&this.variable.exportName&&e.push(this.variable)}bind(){this.bound||(this.bound=!0,null===this.variable&&function e(t,s){if("MemberExpression"===t.type)return!t.computed&&e(t.object,t);if("Identifier"===t.type){if(!s)return!0;switch(s.type){case"MemberExpression":return s.computed||t===s.object;case"MethodDefinition":return s.computed;case"Property":return s.computed||t===s.value;case"ExportSpecifier":case"ImportSpecifier":return t===s.local;case"LabeledStatement":case"BreakStatement":case"ContinueStatement":return!1;default:return!0}}return!1}(this,this.parent)&&(this.variable=this.scope.findVariable(this.name),this.variable.addReference(this)),null!==this.variable&&this.variable instanceof es&&null!==this.variable.additionalInitializers&&this.variable.consolidateInitializers())}declare(e,t){let s;switch(e){case"var":s=this.scope.addDeclaration(this,this.context,t,!0);break;case"function":s=this.scope.addDeclaration(this,this.context,t,"function");break;case"let":case"const":case"class":s=this.scope.addDeclaration(this,this.context,t,!1);break;case"parameter":s=this.scope.addParameterDeclaration(this);break;default:throw new Error(`Internal Error: Unexpected identifier kind ${e}.`)}return[this.variable=s]}deoptimizePath(e){this.bound||this.bind(),0!==e.length||this.scope.contains(this.name)||this.disallowImportReassignment(),this.variable.deoptimizePath(e)}getLiteralValueAtPath(e,t,s){return this.bound||this.bind(),this.variable.getLiteralValueAtPath(e,t,s)}getReturnExpressionWhenCalledAtPath(e,t,s){return this.bound||this.bind(),this.variable.getReturnExpressionWhenCalledAtPath(e,t,s)}hasEffects(){return this.context.unknownGlobalSideEffects&&this.variable instanceof Rt&&this.variable.hasEffectsWhenAccessedAtPath(Je)}hasEffectsWhenAccessedAtPath(e,t){return null!==this.variable&&this.variable.hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){return!this.variable||this.variable.hasEffectsWhenAssignedAtPath(e,t)}hasEffectsWhenCalledAtPath(e,t,s){return!this.variable||this.variable.hasEffectsWhenCalledAtPath(e,t,s)}include(e){this.included||(this.included=!0,null!==this.variable&&this.context.includeVariable(e,this.variable))}includeCallArguments(e,t){this.variable.includeCallArguments(e,t)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i,isShorthandProperty:n}=Ks){if(this.variable){const t=this.variable.getName();t!==this.name&&(e.overwrite(this.start,this.end,t,{contentOnly:!0,storeName:!0}),n&&e.prependRight(this.start,`${this.name}: `)),"eval"===t&&"CallExpression"===s&&i&&e.appendRight(this.start,"0, ")}}disallowImportReassignment(){return this.context.error({code:"ILLEGAL_REASSIGNMENT",message:`Illegal reassignment to import '${this.name}'`},this.start)}}class Ys extends Fs{constructor(){super(...arguments),this.declarationInit=null}addExportedVariables(e){this.argument.addExportedVariables(e)}bind(){super.bind(),null!==this.declarationInit&&this.declarationInit.deoptimizePath([Qe,Qe])}declare(e,t){return this.declarationInit=t,this.argument.declare(e,rt)}deoptimizePath(e){0===e.length&&this.argument.deoptimizePath(Je)}hasEffectsWhenAssignedAtPath(e,t){return e.length>0||this.argument.hasEffectsWhenAssignedAtPath(Je,t)}}class Qs extends Fs{constructor(){super(...arguments),this.isPrototypeDeoptimized=!1}createScope(e){this.scope=new qs(e,this.context)}deoptimizePath(e){1===e.length&&("prototype"===e[0]?this.isPrototypeDeoptimized=!0:e[0]===Qe&&(this.isPrototypeDeoptimized=!0,this.scope.getReturnExpression().deoptimizePath(Ze)))}getReturnExpressionWhenCalledAtPath(e){return 0===e.length?this.scope.getReturnExpression():rt}hasEffects(){return null!==this.id&&this.id.hasEffects()}hasEffectsWhenAccessedAtPath(e){return!(e.length<=1)&&(e.length>2||"prototype"!==e[0]||this.isPrototypeDeoptimized)}hasEffectsWhenAssignedAtPath(e){return!(e.length<=1)&&(e.length>2||"prototype"!==e[0]||this.isPrototypeDeoptimized)}hasEffectsWhenCalledAtPath(e,t,s){if(e.length>0)return!0;for(const e of this.params)if(e.hasEffects(s))return!0;const i=s.replacedVariableInits.get(this.scope.thisVariable);s.replacedVariableInits.set(this.scope.thisVariable,t.withNew?new At:rt);const{brokenFlow:n,ignore:r}=s;return s.ignore={breaks:!1,continues:!1,labels:new Set,returnAwaitYield:!0},!!this.body.hasEffects(s)||(s.brokenFlow=n,i?s.replacedVariableInits.set(this.scope.thisVariable,i):s.replacedVariableInits.delete(this.scope.thisVariable),s.ignore=r,!1)}include(e,t){this.included=!0,this.id&&this.id.include(e);const s=this.scope.argumentsVariable.included;for(const i of this.params)i instanceof Xs&&!s||i.include(e,t);const{brokenFlow:i}=e;e.brokenFlow=0,this.body.include(e,t),e.brokenFlow=i}includeCallArguments(e,t){this.scope.includeCallArguments(e,t)}initialise(){null!==this.id&&this.id.declare("function",this),this.scope.addParameterVariables(this.params.map(e=>e.declare("parameter",rt)),this.params[this.params.length-1]instanceof Ys),this.body.addImplicitReturnExpressionToScope()}parseNode(e){this.body=new this.context.nodeConstructors.BlockStatement(e.body,this,this.scope.hoistedBodyVarScope),super.parseNode(e)}}Qs.prototype.preventChildBlockScope=!0;class Js extends Qs{initialise(){super.initialise(),null!==this.id&&(this.id.variable.isId=!0)}parseNode(e){null!==e.id&&(this.id=new this.context.nodeConstructors.Identifier(e.id,this,this.scope.parent)),super.parseNode(e)}}const Zs=/\s/;class ei extends Fs{include(e,t){super.include(e,t),t&&this.context.includeVariable(e,this.variable)}initialise(){const e=this.declaration;this.declarationName=e.id&&e.id.name||this.declaration.name,this.variable=this.scope.addExportDefaultDeclaration(this.declarationName||this.context.getModuleName(),this,this.context),this.context.addExport(this)}render(e,t,s){const{start:i,end:n}=s,r=function(e,t=0){for(t=_s(e,"default",t)+7;Zs.test(e[t]);)t++;return t}(e.original,this.start);if(this.declaration instanceof Js)this.renderNamedDeclaration(e,r,"function",null===this.declaration.id,t);else if(this.declaration instanceof Us)this.renderNamedDeclaration(e,r,"class",null===this.declaration.id,t);else{if(this.variable.getOriginalVariable()!==this.variable)return void("system"===t.format&&this.variable.exportName?e.overwrite(i,n,`exports('${this.variable.exportName}', ${this.variable.getName()});`):ks(this,e,i,n));if(!this.variable.included)return e.remove(this.start,r),this.declaration.render(e,t,{isCalleeOfRenderedParent:!1,renderedParentType:"ExpressionStatement"}),void(";"!==e.original[this.end-1]&&e.appendLeft(this.end,";"));this.renderVariableDeclaration(e,r,t)}this.declaration.render(e,t)}renderNamedDeclaration(e,t,s,i,n){const r=this.variable.getName();e.remove(this.start,t),i&&e.appendLeft(function(e,t,s=0){const i=_s(e,t,s)+t.length;e=e.slice(i,_s(e,"{",i));const n=_s(e,"*");return-1===n?i:i+n+1}(e.original,s,t),` ${r}`),"system"===n.format&&this.declaration instanceof Us&&this.variable.exportName&&e.appendLeft(this.end,` exports('${this.variable.exportName}', ${r});`)}renderVariableDeclaration(e,t,s){const i="system"===s.format&&this.variable.exportName?`exports('${this.variable.exportName}', `:"";e.overwrite(this.start,t,`${s.varOrConst} ${this.variable.getName()} = ${i}`);const n=59===e.original.charCodeAt(this.end-1);i?e.appendRight(n?this.end-1:this.end,")"+(n?"":";")):n||e.appendLeft(this.end,";")}}ei.prototype.needsBoundaries=!0;class ti extends es{constructor(e,t,s){super(e,t,t.declaration,s),this.hasId=!1,this.originalId=null,this.originalVariable=null;const i=t.declaration;(i instanceof Js||i instanceof Us)&&i.id?(this.hasId=!0,this.originalId=i.id):i instanceof Xs&&(this.originalId=i)}addReference(e){this.hasId||(this.name=e.name)}getAssignedVariableName(){return this.originalId&&this.originalId.name||null}getBaseVariableName(){const e=this.getOriginalVariable();return e===this?super.getBaseVariableName():e.getBaseVariableName()}getName(){const e=this.getOriginalVariable();return e===this?super.getName():e.getName()}getOriginalVariable(){if(null===this.originalVariable)if(!this.originalId||!this.hasId&&this.originalId.variable.isReassigned)this.originalVariable=this;else{const e=this.originalId.variable;this.originalVariable=e instanceof ti?e.getOriginalVariable():e}return this.originalVariable}setRenderNames(e,t){const s=this.getOriginalVariable();s===this?super.setRenderNames(e,t):s.setRenderNames(e,t)}setSafeName(e){const t=this.getOriginalVariable();t===this?super.setSafeName(e):t.setSafeName(e)}}class si extends $t{constructor(e){super("_missingExportShim"),this.module=e}}class ii extends $t{constructor(e,t){super(e.getModuleName()),this.memberVariables=Object.create(null),this.reexportedExternalNamespaces=[],this.referencedEarly=!1,this.references=[],this.context=e,this.module=e.module,this.syntheticNamedExports=t}addReference(e){this.references.push(e),this.name=e.name}deoptimizePath(){for(const e in this.memberVariables)this.memberVariables[e].deoptimizePath(Ze)}include(e){if(!this.included){this.included=!0;for(const e of this.references)if(e.context.getModuleExecIndex()<=this.context.getModuleExecIndex()){this.referencedEarly=!0;break}if(this.reexportedExternalNamespaces=this.context.includeAndGetReexportedExternalNamespaces(),this.context.preserveModules)for(const t of Object.keys(this.memberVariables))this.memberVariables[t].include(e);else for(const t of Object.keys(this.memberVariables))this.context.includeVariable(e,this.memberVariables[t])}}initialise(){for(const e of this.context.getExports().concat(this.context.getReexports()))"*"!==e[0]&&(this.memberVariables[e]=this.context.traceExport(e))}renderBlock(e){const t=e.compact?"":" ",s=e.compact?"":"\n",i=e.indent,n=Object.keys(this.memberVariables).map(s=>{const n=this.memberVariables[s];if(this.referencedEarly||n.isReassigned)return`${i}get ${s}${t}()${t}{${t}return ${n.getName()}${e.compact?"":";"}${t}}`;const r=Ms[s]?`'${s}'`:s;return`${i}${r}: ${n.getName()}`});e.namespaceToStringTag&&n.unshift(`${i}[Symbol.toStringTag]:${t}'Module'`);const r=this.reexportedExternalNamespaces.length>0;r||n.unshift(`${i}__proto__:${t}null`);let a=`{${s}${n.join(`,${s}`)}${s}}`;if(r||this.syntheticNamedExports){const e=n.length>0?[a]:[];r&&e.unshift("/*#__PURE__*/Object.create(null)",...this.reexportedExternalNamespaces.map(e=>e.getName())),this.syntheticNamedExports&&e.push(this.module.getDefaultExport().getName()),a=`/*#__PURE__*/Object.assign(${e.join(`,${t}`)})`}e.freeze&&(a=`/*#__PURE__*/Object.freeze(${a})`);const o=this.getName();return a=`${e.varOrConst} ${o}${t}=${t}${a};`,"system"===e.format&&this.exportName&&(a+=`${s}exports('${this.exportName}',${t}${o});`),a}renderFirst(){return this.referencedEarly}}ii.prototype.isNamespace=!0;const ni="Object.defineProperty(exports, '__esModule', { value: true });",ri="Object.defineProperty(exports,'__esModule',{value:true});";function ai(e,t,s,i,n,r,a="return "){const o=n?"":" ",h=n?"":"\n";if(!s){let s;if(e.length>0)s=e[0].local;else for(const e of t)if(e.reexports){const t=e.reexports[0];s=e.namedExportsMode&&"*"!==t.imported&&"default"!==t.imported?`${e.name}.${t.imported}`:e.name;break}return`${a}${s};`}let l="";for(const{name:e,reexports:i}of t)if(i&&s)for(const t of i)"*"===t.reexported&&(l&&(l+=h),t.needsLiveBinding?l+=`Object.keys(${e}).forEach(function${o}(k)${o}{${h}`+`${r}if${o}(k${o}!==${o}'default')${o}Object.defineProperty(exports,${o}k,${o}{${h}`+`${r}${r}enumerable:${o}true,${h}`+`${r}${r}get:${o}function${o}()${o}{${h}`+`${r}${r}${r}return ${e}[k];${h}`+`${r}${r}}${h}${r}});${h}});`:l+=`Object.keys(${e}).forEach(function${o}(k)${o}{${h}`+`${r}if${o}(k${o}!==${o}'default')${o}exports[k]${o}=${o}${e}[k];${h}});`);for(const{name:e,imports:n,reexports:a,isChunk:c,namedExportsMode:u,exportsNames:d}of t)if(a&&s)for(const t of a)if("default"!==t.imported||c)if("*"!==t.imported){l&&(l+=h);const s="default"!==t.imported||u?`${e}.${t.imported}`:e;l+=t.needsLiveBinding?`Object.defineProperty(exports,${o}'${t.reexported}',${o}{${h}`+`${r}enumerable:${o}true,${h}`+`${r}get:${o}function${o}()${o}{${h}`+`${r}${r}return ${s};${h}${r}}${h}});`:`exports.${t.reexported}${o}=${o}${s};`}else"*"!==t.reexported&&(l&&(l+=h),l+=`exports.${t.reexported}${o}=${o}${e};`);else l&&(l+=h),d&&(a.some(e=>"default"===e.imported?"default"===e.reexported:"*"!==e.imported)||n&&n.some(e=>"default"!==e.imported))?l+=`exports.${t.reexported}${o}=${o}${e}${!1!==i?"__default":".default"};`:l+=`exports.${t.reexported}${o}=${o}${e};`;for(const t of e){const e=`exports.${t.exported}`,s=t.local;e!==s&&(l&&(l+=h),l+=`${e}${o}=${o}${s};`)}return l}function oi(e,t,s){const i=t.compact?"":" ";return e.map(({name:e,exportsNames:n,exportsDefault:r,namedExportsMode:a})=>a&&r&&!1!==t.interop?n?`${s} ${e}__default${i}=${i}'default'${i}in ${e}${i}?`+`${i}${e}['default']${i}:${i}${e};`:`${e}${i}=${i}${e}${i}&&${i}Object.prototype.hasOwnProperty.call(${e},${i}'default')${i}?`+`${i}${e}['default']${i}:${i}${e};`:null).filter(Boolean).join(t.compact?"":"\n")}function hi(e,t,s,i){return`${i}var d${e}=${e}Object.getOwnPropertyDescriptor(e,${e}k);${t}`+`${i}Object.defineProperty(n,${e}k,${e}d.get${e}?${e}d${e}:${e}{${t}`+`${i}${s}enumerable:${e}true,${t}`+`${i}${s}get:${e}function${e}()${e}{${t}`+`${i}${s}${s}return e[k];${t}`+`${i}${s}}${t}`+`${i}});${t}`}function li(e,t,s,i){return`${i}n[k]${e}=e${e}[k];${t}`}function ci(e,t,s,i){return`function _interopNamespace(e)${e}{${t}`+`${s}if${e}(e${e}&&${e}e.__esModule)${e}{${e}return e;${e}}${e}else${e}{${t}`+`${s}${s}var n${e}=${e}{};${t}`+`${s}${s}if${e}(e)${e}{${t}`+`${s}${s}${s}Object.keys(e).forEach(function${e}(k)${e}{${t}`+(i?hi:li)(e,t,s,s+s+s+s)+`${s}${s}${s}});${t}`+`${s}${s}}${t}`+`${s}${s}n['default']${e}=${e}e;${t}`+`${s}${s}return n;${t}`+`${s}}${t}`+`}${t}${t}`}const ui={assert:!0,buffer:!0,console:!0,constants:!0,domain:!0,events:!0,http:!0,https:!0,os:!0,path:!0,process:!0,punycode:!0,querystring:!0,stream:!0,string_decoder:!0,timers:!0,tty:!0,url:!0,util:!0,vm:!0,zlib:!0};function di(e,t){const s=t.map(({id:e})=>e).filter(e=>e in ui);s.length&&e({code:"MISSING_NODE_BUILTINS",message:`Creating a browser bundle that depends on Node.js built-in ${1===s.length?`module ('${s[0]}')`:`modules (${s.slice(0,-1).map(e=>`'${e}'`).join(", ")} and '${s.slice(-1)}')`}. You might need to include https://www.npmjs.com/package/rollup-plugin-node-builtins`,modules:s})}function pi(e){return e.replace(/^\t+/,e=>e.split("\t").join("  "))}function fi(e,t,s){let i=e.split("\n");const n=Math.max(0,t-3);let r=Math.min(t+2,i.length);for(i=i.slice(n,r);!/\S/.test(i[i.length-1]);)i.pop(),r-=1;const a=String(r).length;return i.map((e,i)=>{const r=n+i+1===t;let o=String(i+n+1);for(;o.length<a;)o=` ${o}`;if(r){const t=function(e){let t="";for(;e--;)t+=" ";return t}(a+2+pi(e.slice(0,s)).length)+"^";return`${o}: ${pi(e)}\n${t}`}return`${o}: ${pi(e)}`}).join("\n")}function mi(e){return e.replace(/[\0?*]/g,"_")}function gi(e){const t=qt(e);return t.substr(0,t.length-Xt(e).length)}function xi(e){return"undefined"!=typeof process&&jt(e)?Yt(process.cwd(),e):e}function yi(e){return"/"!==e[0]&&!("."===e[0]&&("/"===e[1]||"."===e[1]))&&mi(e)===e}function Ei(e){throw e instanceof Error||(e=Object.assign(new Error(e.message),e)),e}function bi(e,t,s,i){if("object"==typeof t){const{line:s,column:n}=t;e.loc={file:i,line:s,column:n}}else{e.pos=t;const{line:n,column:r}=Vs(s,t,{offsetLine:1});e.loc={file:i,line:n,column:r}}if(void 0===e.frame){const{line:t,column:i}=e.loc;e.frame=fi(s,t,i)}}var vi;function Si(e,t,s){return{code:"INVALID_EXPORT_OPTION",message:`"${e}" was specified for "output.exports", but entry module "${xi(s)}" has the following exports: ${t.join(", ")}`}}function Ai(e,t,s){return{code:vi.NAMESPACE_CONFLICT,message:`Conflicting namespaces: ${xi(t.id)} re-exports '${e}' from both ${xi(t.exportsAll[e])} and ${xi(s.exportsAll[e])} (will be ignored)`,name:e,reexporter:t.id,sources:[t.exportsAll[e],s.exportsAll[e]]}}function Ci(e){return{code:vi.VALIDATION_ERROR,message:e}}!function(e){e.ASSET_NOT_FINALISED="ASSET_NOT_FINALISED",e.ASSET_NOT_FOUND="ASSET_NOT_FOUND",e.ASSET_SOURCE_ALREADY_SET="ASSET_SOURCE_ALREADY_SET",e.ASSET_SOURCE_MISSING="ASSET_SOURCE_MISSING",e.BAD_LOADER="BAD_LOADER",e.CANNOT_EMIT_FROM_OPTIONS_HOOK="CANNOT_EMIT_FROM_OPTIONS_HOOK",e.CHUNK_NOT_GENERATED="CHUNK_NOT_GENERATED",e.DEPRECATED_FEATURE="DEPRECATED_FEATURE",e.FILE_NOT_FOUND="FILE_NOT_FOUND",e.FILE_NAME_CONFLICT="FILE_NAME_CONFLICT",e.INPUT_HOOK_IN_OUTPUT_PLUGIN="INPUT_HOOK_IN_OUTPUT_PLUGIN",e.INVALID_CHUNK="INVALID_CHUNK",e.INVALID_EXPORT_OPTION="INVALID_EXPORT_OPTION",e.INVALID_EXTERNAL_ID="INVALID_EXTERNAL_ID",e.INVALID_OPTION="INVALID_OPTION",e.INVALID_PLUGIN_HOOK="INVALID_PLUGIN_HOOK",e.INVALID_ROLLUP_PHASE="INVALID_ROLLUP_PHASE",e.MIXED_EXPORTS="MIXED_EXPORTS",e.NAMESPACE_CONFLICT="NAMESPACE_CONFLICT",e.PLUGIN_ERROR="PLUGIN_ERROR",e.UNRESOLVED_ENTRY="UNRESOLVED_ENTRY",e.UNRESOLVED_IMPORT="UNRESOLVED_IMPORT",e.VALIDATION_ERROR="VALIDATION_ERROR",e.EXTERNAL_SYNTHETIC_EXPORTS="EXTERNAL_SYNTHETIC_EXPORTS",e.SYNTHETIC_NAMED_EXPORTS_NEED_DEFAULT="SYNTHETIC_NAMED_EXPORTS_NEED_DEFAULT"}(vi||(vi={}));const Pi=/^[a-zA-Z$_][a-zA-Z0-9$_]*$/;function ki(e){return Pi.test(e)?`.${e}`:`['${e}']`}function wi(e){return e.split(".").map(ki).join("")}function Ni(e,t,s,i,n){const r=i?"":" ",a=e.split(".");s&&(a[0]=("function"==typeof s?s(a[0]):s[a[0]])||a[0]);const o=a.pop();let h=t,l=a.map(e=>(h+=ki(e),`${h}${r}=${r}${h}${r}||${r}{}`)).concat(`${h}${ki(o)}`).join(`,${r}`).concat(`${r}=${r}${n}`);return a.length>0&&(l=`(${l})`),l}function _i(e){let t=e.length;for(;t--;){const s=e[t];if(s.exportsDefault||s.exportsNames)return e.slice(0,t+1)}return[]}const Ii=e=>`this${wi(e)}`;function $i({dependencies:e,exports:t}){const s=new Set(t.map(e=>e.exported));s.has("default")||s.add("default");for(const{reexports:t}of e)if(t)for(const e of t)"*"===e.imported||s.has(e.reexported)||s.add(e.reexported);return s}function Ti(e,t,s,i){return 0===e.length?"":1===e.length?`${s}${s}${s}exports('${e[0].name}',${t}${e[0].value});${i}${i}`:`${s}${s}${s}exports({${i}`+e.map(({name:e,value:i})=>`${s}${s}${s}${s}${e}:${t}${i}`).join(`,${i}`)+`${i}${s}${s}${s}});${i}${i}`}function Ri(e,t){return e?`${t}${wi(e)}`:"null"}var Li={system:function(e,{accessedGlobals:t,dependencies:s,exports:i,hasExports:n,indentString:r,intro:a,outro:o,usesTopLevelAwait:h,varOrConst:l},c){const u=c.compact?"":"\n",d=c.compact?"":" ",p=s.map(e=>`'${e.id}'`),f=[];let m;const g=[];for(const{imports:e,reexports:t}of s){const n=[];if(e)for(const t of e)f.push(t.local),"*"===t.imported?n.push(`${t.local}${d}=${d}module;`):n.push(`${t.local}${d}=${d}module.${t.imported};`);if(t){let e=!1;if(t.length>1||1===t.length&&("*"===t[0].reexported||"*"===t[0].imported)){for(const a of t)"*"===a.reexported&&(m||(m=$i({dependencies:s,exports:i})),e||(n.push(`${l} _setter${d}=${d}{};`),e=!0),n.push(`for${d}(var _$p${d}in${d}module)${d}{`),n.push(`${r}if${d}(!_starExcludes[_$p])${d}_setter[_$p]${d}=${d}module[_$p];`),n.push("}"));for(const e of t)"*"===e.imported&&"*"!==e.reexported&&n.push(`exports('${e.reexported}',${d}module);`);for(const s of t)"*"!==s.reexported&&"*"!==s.imported&&(e||(n.push(`${l} _setter${d}=${d}{};`),e=!0),n.push(`_setter.${s.reexported}${d}=${d}module.${s.imported};`));e&&n.push("exports(_setter);")}else for(const e of t)n.push(`exports('${e.reexported}',${d}module.${e.imported});`)}g.push(n.join(`${u}${r}${r}${r}`))}const x=c.name?`'${c.name}',${d}`:"",y=t.has("module")?`exports,${d}module`:n?"exports":"";let E=`System.register(${x}[`+p.join(`,${d}`)+`],${d}function${d}(${y})${d}{${u}${r}${c.strict?"'use strict';":""}`+((e,t,s,i,n)=>e?`${n}${i}${t} _starExcludes${s}=${s}{${s}${Array.from(e).join(`:${s}1,${s}`)}${e.size?`:${s}1`:""}${s}};`:"")(m,l,d,r,u)+((e,t,s,i)=>e.length?`${i}${s}var ${e.join(`,${t}`)};`:"")(f,d,r,u)+`${u}${r}return${d}{${g.length?`${u}${r}${r}setters:${d}[${g.map(e=>e?`function${d}(module)${d}{${u}${r}${r}${r}${e}${u}${r}${r}}`:`function${d}()${d}{}`).join(`,${d}`)}],`:""}${u}`;E+=`${r}${r}execute:${d}${h?`async${d}`:""}function${d}()${d}{${u}${u}`+((e,t,s,i)=>Ti(e.filter(e=>e.hoisted||e.uninitialized).map(e=>({name:e.exported,value:e.uninitialized?"void 0":e.local})),t,s,i))(i,d,r,u);const b=`${u}${u}`+((e,t,s,i)=>Ti(e.filter(e=>"_missingExportShim"===e.local).map(e=>({name:e.exported,value:"_missingExportShim"})),t,s,i))(i,d,r,u)+`${r}${r}}${u}${r}}${c.compact?"":";"}${u}});`;return a&&e.prepend(a),o&&e.append(o),e.indent(`${r}${r}${r}`).append(b).prepend(E)},amd:function(e,{accessedGlobals:t,dependencies:s,exports:i,hasExports:n,indentString:r,intro:a,isEntryModuleFacade:o,namedExportsMode:h,outro:l,varOrConst:c,warn:u},d){di(u,s);const p=s.map(e=>{return`'${t=e.id,"."===t[0]&&t.endsWith(".js")?t.slice(0,-3):t}'`;var t}),f=s.map(e=>e.name),m=d.compact?"":"\n",g=d.compact?"":" ";h&&n&&(f.unshift("exports"),p.unshift("'exports'")),t.has("require")&&(f.unshift("require"),p.unshift("'require'")),t.has("module")&&(f.unshift("module"),p.unshift("'module'"));const x=d.amd||{},y=(x.id?`'${x.id}',${g}`:"")+(p.length?`[${p.join(`,${g}`)}],${g}`:""),E=!1!==d.strict?`${g}'use strict';`:"",b=`${x.define||"define"}(${y}function${g}(${f.join(`,${g}`)})${g}{${E}${m}${m}`,v=oi(s,d,c);v&&e.prepend(v+m+m),t.has("_interopNamespace")&&e.prepend(ci(g,m,r,!1!==d.externalLiveBindings)),a&&e.prepend(a);const S=ai(i,s,h,d.interop,d.compact,r);return S&&e.append(m+m+S),h&&n&&o&&d.esModule&&e.append(`${m}${m}${d.compact?ri:ni}`),l&&e.append(l),e.indent(r).append(m+m+"});").prepend(b)},cjs:function(e,{accessedGlobals:t,dependencies:s,exports:i,hasExports:n,indentString:r,intro:a,isEntryModuleFacade:o,namedExportsMode:h,outro:l,varOrConst:c},u){const d=u.compact?"":"\n",p=u.compact?"":" ";a=(!1===u.strict?a:`'use strict';${d}${d}${a}`)+(h&&n&&o&&u.esModule?`${u.compact?ri:ni}${d}${d}`:"");let f=!1;const m=!1!==u.interop;let g,x=!1;g="";for(const{id:e,namedExportsMode:t,isChunk:i,name:n,reexports:r,imports:a,exportsNames:o,exportsDefault:h}of s)r||a?(g+=u.compact&&x?",":`${g?`;${d}`:""}${c} `,x=!0,m&&!i&&h&&t?(f=!0,g+=o?`${n}${p}=${p}require('${e}')${u.compact?",":`;\n${c} `}${n}__default${p}=${p}_interopDefault(${n})`:`${n}${p}=${p}_interopDefault(require('${e}'))`):g+=`${n}${p}=${p}require('${e}')`):(g&&(g+=!u.compact||x?`;${d}`:","),x=!1,g+=`require('${e}')`);if(g&&(g+=";"),f){const e=u.compact?"e":"ex";a+=`function _interopDefault${p}(${e})${p}{${p}return${p}`+`(${e}${p}&&${p}(typeof ${e}${p}===${p}'object')${p}&&${p}'default'${p}in ${e})${p}`+`?${p}${e}['default']${p}:${p}${e}${u.compact?"":"; "}}${d}${d}`}t.has("_interopNamespace")&&(a+=ci(p,d,r,!1!==u.externalLiveBindings)),g&&(a+=g+d+d);const y=ai(i,s,h,u.interop,u.compact,r,`module.exports${p}=${p}`);return e.prepend(a),y&&e.append(d+d+y),l&&e.append(l),e},es:function(e,{intro:t,outro:s,dependencies:i,exports:n},r){const a=r.compact?"":" ",o=r.compact?"":"\n",h=function(e,t){const s=[];for(const{id:i,reexports:n,imports:r,name:a}of e)if(n||r){if(r){let e=null,n=null;const a=[];for(const t of r)"default"===t.imported?e=t:"*"===t.imported?n=t:a.push(t);n&&s.push(`import${t}*${t}as ${n.local} from${t}'${i}';`),e&&0===a.length?s.push(`import ${e.local} from${t}'${i}';`):a.length>0&&s.push(`import ${e?`${e.local},${t}`:""}{${t}${a.map(e=>e.imported===e.local?e.imported:`${e.imported} as ${e.local}`).join(`,${t}`)}${t}}${t}from${t}'${i}';`)}if(n){let e=null;const o=[],h=[];for(const t of n)"*"===t.reexported?e=t:"*"===t.imported?o.push(t):h.push(t);if(e&&s.push(`export${t}*${t}from${t}'${i}';`),o.length>0){r&&r.some(e=>"*"===e.imported&&e.local===a)||s.push(`import${t}*${t}as ${a} from${t}'${i}';`);for(const e of o)s.push(`export${t}{${t}${a===e.reexported?a:`${a} as ${e.reexported}`} };`)}h.length>0&&s.push(`export${t}{${t}${h.map(e=>e.imported===e.reexported?e.imported:`${e.imported} as ${e.reexported}`).join(`,${t}`)}${t}}${t}from${t}'${i}';`)}}else s.push(`import${t}'${i}';`);return s}(i,a);h.length>0&&(t+=h.join(o)+o+o),t&&e.prepend(t);const l=function(e,t){const s=[],i=[];for(const t of e)"default"===t.exported?s.push(`export default ${t.local};`):i.push(t.exported===t.local?t.local:`${t.local} as ${t.exported}`);return i.length&&s.push(`export${t}{${t}${i.join(`,${t}`)}${t}};`),s}(n,a);return l.length&&e.append(o+o+l.join(o).trim()),s&&e.append(s),e.trim()},iife:function(e,{dependencies:t,exports:s,hasExports:i,indentString:n,intro:r,namedExportsMode:a,outro:o,varOrConst:h,warn:l},c){const u=c.compact?"":" ",d=c.compact?"":"\n",{extend:p,name:f}=c,m=f&&-1!==f.indexOf("."),g=!p&&!m;if(f&&g&&(Ft(x=f)||Vt.has(x)||Bt.test(x)))return Ei({code:"ILLEGAL_IDENTIFIER_AS_NAME",message:`Given name "${f}" is not a legal JS identifier. If you need this, you can try "output.extend: true".`});var x;di(l,t);const y=_i(t),E=y.map(e=>e.globalName||"null"),b=y.map(e=>e.name);i&&!f&&l({code:"MISSING_NAME_OPTION_FOR_IIFE_EXPORT",message:'If you do not supply "output.name", you may not be able to access the exports of an IIFE bundle.'}),a&&i&&(p?(E.unshift(`${Ii(f)}${u}=${u}${Ii(f)}${u}||${u}{}`),b.unshift("exports")):(E.unshift("{}"),b.unshift("exports")));const v=!1!==c.strict?`${n}'use strict';${d}${d}`:"";let S=`(function${u}(${b.join(`,${u}`)})${u}{${d}${v}`;!i||p&&a||!f||(S=(g?`${h} ${f}`:Ii(f))+`${u}=${u}${S}`),m&&i&&(S=function(e,t,s,i){const n=e.split(".");s&&(n[0]=("function"==typeof s?s(n[0]):s[n[0]])||n[0]);const r=i?"":" ";n.pop();let a=t;return n.map(e=>(a+=ki(e),`${a}${r}=${r}${a}${r}||${r}{}${i?"":";"}`)).join(i?",":"\n")+(i&&n.length?";":"\n")}(f,"this",c.globals,c.compact)+S);let A=`${d}${d}}(${E.join(`,${u}`)}));`;!p&&a&&i&&(A=`${d}${d}${n}return exports;${A}`);const C=oi(t,c,h);C&&e.prepend(C+d+d),r&&e.prepend(r);const P=ai(s,t,a,c.interop,c.compact,n);return P&&e.append(d+d+P),o&&e.append(o),e.indent(n).prepend(S).append(A)},umd:function(e,{dependencies:t,exports:s,hasExports:i,indentString:n,intro:r,namedExportsMode:a,outro:o,varOrConst:h,warn:l},c){const u=c.compact?"":" ",d=c.compact?"":"\n",p=c.compact?"f":"factory",f=c.compact?"g":"global";if(i&&!c.name)return Ei({code:"MISSING_NAME_OPTION_FOR_IIFE_EXPORT",message:'You must supply "output.name" for UMD bundles that have exports so that the exports are accessible in environments without a module loader.'});di(l,t);const m=t.map(e=>`'${e.id}'`),g=t.map(e=>`require('${e.id}')`),x=_i(t),y=x.map(e=>Ri(e.globalName,f)),E=x.map(e=>e.name);a&&(i||!0===c.noConflict)&&(m.unshift("'exports'"),g.unshift("exports"),y.unshift(Ni(c.name,f,c.globals,c.compact,`${c.extend?`${Ri(c.name,f)}${u}||${u}`:""}{}`)),E.unshift("exports"));const b=c.amd||{},v=(b.id?`'${b.id}',${u}`:"")+(m.length?`[${m.join(`,${u}`)}],${u}`:""),S=b.define||"define",A=!a&&i?`module.exports${u}=${u}`:"",C=!1!==c.strict?`${u}'use strict';${d}`:"";let P;if(!0===c.noConflict){const e=c.compact?"e":"exports";let t;!a&&i?t=`var ${e}${u}=${u}${Ni(c.name,f,c.globals,c.compact,`${p}(${y.join(`,${u}`)})`)};`:a&&(t=`var ${e}${u}=${u}${y.shift()};${d}`+`${n}${n}${p}(${[e].concat(y).join(`,${u}`)});`),P=`(function${u}()${u}{${d}`+`${n}${n}var current${u}=${u}${function(e,t,s){const i=e.split(".");let n=t;return i.map(e=>(n+=ki(e),n)).join(`${s}&&${s}`)}(c.name,f,u)};${d}`+`${n}${n}${t}${d}`+`${n}${n}${e}.noConflict${u}=${u}function${u}()${u}{${u}`+`${Ri(c.name,f)}${u}=${u}current;${u}return ${e}${c.compact?"":"; "}};${d}`+`${n}}())`}else P=`${p}(${y.join(`,${u}`)})`,!a&&i&&(P=Ni(c.name,f,c.globals,c.compact,P));const k=i||!0===c.noConflict&&a||y.length>0,w=k?`this,${u}`:"",N=k?`(${f}${u}=${u}${f}${u}||${u}self,${u}`:"",_=k?")":"",I=`(function${u}(${k?`${f},${u}`:""}${p})${u}{${d}`+(k?`${n}typeof exports${u}===${u}'object'${u}&&${u}typeof module${u}!==${u}'undefined'${u}?`+`${u}${A}${p}(${g.join(`,${u}`)})${u}:${d}`:"")+`${n}typeof ${S}${u}===${u}'function'${u}&&${u}${S}.amd${u}?${u}${S}(${v}${p})${u}:${d}`+`${n}${N}${P}${_};${d}`+`}(${w}(function${u}(${E.join(", ")})${u}{${C}${d}`,$=d+d+"})));",T=oi(t,c,h);T&&e.prepend(T+d+d),r&&e.prepend(r);const R=ai(s,t,a,c.interop,c.compact,n);return R&&e.append(d+d+R),a&&i&&c.esModule&&e.append(d+d+(c.compact?ri:ni)),o&&e.append(o),e.trim().indent(n).append($).prepend(I)}};const Mi={ArrayPattern(e,t){for(const s of t.elements)s&&Mi[s.type](e,s)},AssignmentPattern(e,t){Mi[t.left.type](e,t.left)},Identifier(e,t){e.push(t.name)},MemberExpression(){},ObjectPattern(e,t){for(const s of t.properties)"RestElement"===s.type?Mi.RestElement(e,s):Mi[s.value.type](e,s.value)},RestElement(e,t){Mi[t.argument.type](e,t.argument)}},Di=function(e){const t=[];return Mi[e.type](t,e),t};class Oi extends Fs{hasEffects(){return!1}initialise(){this.context.addExport(this)}render(e,t,s){e.remove(s.start,s.end)}}Oi.prototype.needsBoundaries=!0;class Vi extends Os{addDeclaration(e,t,s=null,i){return i?this.parent.addDeclaration(e,t,"function"===i?s:rt,i):super.addDeclaration(e,t,s,!1)}}class Bi extends Fs{initialise(){this.directive&&"use strict"!==this.directive&&"Program"===this.parent.type&&this.context.warn({code:"MODULE_LEVEL_DIRECTIVE",message:`Module level directives cause errors when bundled, '${this.directive}' was ignored.`},this.start)}render(e,t){super.render(e,t),this.included&&this.insertSemicolon(e)}shouldBeIncluded(e){return this.directive&&"use strict"!==this.directive?"Program"!==this.parent.type:super.shouldBeIncluded(e)}}class Fi extends Fs{constructor(){super(...arguments),this.directlyIncluded=!1}addImplicitReturnExpressionToScope(){const e=this.body[this.body.length-1];e&&"ReturnStatement"===e.type||this.scope.addReturnExpression(rt)}createScope(e){this.scope=this.parent.preventChildBlockScope?e:new Vi(e)}hasEffects(e){if(this.deoptimizeBody)return!0;for(const t of this.body){if(t.hasEffects(e))return!0;if(e.brokenFlow)break}return!1}include(e,t){if(!this.deoptimizeBody||!this.directlyIncluded){this.included=!0,this.directlyIncluded=!0,this.deoptimizeBody&&(t=!0);for(const s of this.body)(t||s.shouldBeIncluded(e))&&s.include(e,t)}}initialise(){const e=this.body[0];this.deoptimizeBody=e instanceof Bi&&"use asm"===e.directive}render(e,t){this.body.length?$s(this.body,e,this.start+1,this.end-1,t):super.render(e,t)}}class Wi extends Fs{createScope(e){this.scope=new Hs(e,this.context)}deoptimizePath(e){1===e.length&&e[0]===Qe&&this.scope.getReturnExpression().deoptimizePath(Ze)}getReturnExpressionWhenCalledAtPath(e){return 0===e.length?this.scope.getReturnExpression():rt}hasEffects(){return!1}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){if(e.length>0)return!0;for(const e of this.params)if(e.hasEffects(s))return!0;const{ignore:i,brokenFlow:n}=s;return s.ignore={breaks:!1,continues:!1,labels:new Set,returnAwaitYield:!0},!!this.body.hasEffects(s)||(s.ignore=i,s.brokenFlow=n,!1)}include(e,t){this.included=!0;for(const s of this.params)s instanceof Xs||s.include(e,t);const{brokenFlow:s}=e;e.brokenFlow=0,this.body.include(e,t),e.brokenFlow=s}includeCallArguments(e,t){this.scope.includeCallArguments(e,t)}initialise(){this.scope.addParameterVariables(this.params.map(e=>e.declare("parameter",rt)),this.params[this.params.length-1]instanceof Ys),this.body instanceof Fi?this.body.addImplicitReturnExpressionToScope():this.scope.addReturnExpression(this.body)}parseNode(e){"BlockStatement"===e.body.type&&(this.body=new this.context.nodeConstructors.BlockStatement(e.body,this,this.scope.hoistedBodyVarScope)),super.parseNode(e)}}function Ui(e){return 1===e.length?`exports('${e[0].safeExportName||e[0].exportName}', ${e[0].getName()});`:`exports({${e.map(e=>`${e.safeExportName||e.exportName}: ${e.getName()}`).join(", ")}});`}Wi.prototype.preventChildBlockScope=!0;const zi={"!=":(e,t)=>e!=t,"!==":(e,t)=>e!==t,"%":(e,t)=>e%t,"&":(e,t)=>e&t,"*":(e,t)=>e*t,"**":(e,t)=>e**t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"<":(e,t)=>e<t,"<<":(e,t)=>e<<t,"<=":(e,t)=>e<=t,"==":(e,t)=>e==t,"===":(e,t)=>e===t,">":(e,t)=>e>t,">=":(e,t)=>e>=t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t,"^":(e,t)=>e^t,in:()=>nt,instanceof:()=>nt,"|":(e,t)=>e|t};class ji extends Fs{getLiteralValueAtPath(e){return e.length>0||null===this.value&&110!==this.context.code.charCodeAt(this.start)||"bigint"==typeof this.value||47===this.context.code.charCodeAt(this.start)?nt:this.value}getReturnExpressionWhenCalledAtPath(e){return 1!==e.length?rt:It(this.members,e[0])}hasEffectsWhenAccessedAtPath(e){return null===this.value?e.length>0:e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>0}hasEffectsWhenCalledAtPath(e,t,s){return 1!==e.length||_t(this.members,e[0],this.included,t,s)}initialise(){this.members=function(e){switch(typeof e){case"boolean":return kt;case"number":return wt;case"string":return Nt;default:return Object.create(null)}}(this.value)}render(e){"string"==typeof this.value&&e.indentExclusionRanges.push([this.start+1,this.end-1])}}function Gi(e){return e.computed?(t=e.property)instanceof ji?String(t.value):null:e.property.name;var t}class Hi extends Fs{constructor(){super(...arguments),this.variable=null,this.bound=!1,this.expressionsToBeDeoptimized=[],this.replacement=null,this.wasPathDeoptimizedWhileOptimized=!1}addExportedVariables(){}bind(){if(this.bound)return;this.bound=!0;const e=function e(t){const s=t.propertyKey,i=t.object;if("string"==typeof s){if(i instanceof Xs)return[{key:i.name,pos:i.start},{key:s,pos:t.property.start}];if(i instanceof Hi){const n=e(i);return n&&[...n,{key:s,pos:t.property.start}]}}return null}(this),t=e&&this.scope.findVariable(e[0].key);if(t&&t.isNamespace){const s=this.resolveNamespaceVariables(t,e.slice(1));s?"string"==typeof s?this.replacement=s:(s instanceof Mt&&s.module&&s.module.suggestName(e[0].key),this.variable=s,this.scope.addNamespaceMemberAccess(function(e){let t=e[0].key;for(let s=1;s<e.length;s++)t+="."+e[s].key;return t}(e),s)):super.bind()}else super.bind(),this.getPropertyKey()}deoptimizeCache(){const e=this.expressionsToBeDeoptimized;this.expressionsToBeDeoptimized=[],this.propertyKey=Qe,this.wasPathDeoptimizedWhileOptimized&&this.object.deoptimizePath(Ze);for(const t of e)t.deoptimizeCache()}deoptimizePath(e){if(this.bound||this.bind(),0===e.length&&this.disallowNamespaceReassignment(),this.variable)this.variable.deoptimizePath(e);else{const t=this.getPropertyKey();t===Qe?this.object.deoptimizePath(Ze):(this.wasPathDeoptimizedWhileOptimized=!0,this.object.deoptimizePath([t,...e]))}}getLiteralValueAtPath(e,t,s){return this.bound||this.bind(),null!==this.variable?this.variable.getLiteralValueAtPath(e,t,s):(this.expressionsToBeDeoptimized.push(s),this.object.getLiteralValueAtPath([this.getPropertyKey(),...e],t,s))}getReturnExpressionWhenCalledAtPath(e,t,s){return this.bound||this.bind(),null!==this.variable?this.variable.getReturnExpressionWhenCalledAtPath(e,t,s):(this.expressionsToBeDeoptimized.push(s),this.object.getReturnExpressionWhenCalledAtPath([this.getPropertyKey(),...e],t,s))}hasEffects(e){return this.property.hasEffects(e)||this.object.hasEffects(e)||this.context.propertyReadSideEffects&&this.object.hasEffectsWhenAccessedAtPath([this.propertyKey],e)}hasEffectsWhenAccessedAtPath(e,t){return 0!==e.length&&(null!==this.variable?this.variable.hasEffectsWhenAccessedAtPath(e,t):this.object.hasEffectsWhenAccessedAtPath([this.propertyKey,...e],t))}hasEffectsWhenAssignedAtPath(e,t){return null!==this.variable?this.variable.hasEffectsWhenAssignedAtPath(e,t):this.object.hasEffectsWhenAssignedAtPath([this.propertyKey,...e],t)}hasEffectsWhenCalledAtPath(e,t,s){return null!==this.variable?this.variable.hasEffectsWhenCalledAtPath(e,t,s):this.object.hasEffectsWhenCalledAtPath([this.propertyKey,...e],t,s)}include(e,t){this.included||(this.included=!0,null!==this.variable&&this.context.includeVariable(e,this.variable)),this.object.include(e,t),this.property.include(e,t)}includeCallArguments(e,t){this.variable?this.variable.includeCallArguments(e,t):super.includeCallArguments(e,t)}initialise(){this.propertyKey=Gi(this)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i}=Ks){const n="CallExpression"===s&&i;if(this.variable||this.replacement){let t=this.variable?this.variable.getName():this.replacement;n&&(t="0, "+t),e.overwrite(this.start,this.end,t,{contentOnly:!0,storeName:!0})}else n&&e.appendRight(this.start,"0, "),super.render(e,t)}disallowNamespaceReassignment(){if(this.object instanceof Xs&&this.scope.findVariable(this.object.name).isNamespace)return this.context.error({code:"ILLEGAL_NAMESPACE_REASSIGNMENT",message:`Illegal reassignment to import '${this.object.name}'`},this.start)}getPropertyKey(){if(null===this.propertyKey){this.propertyKey=Qe;const e=this.property.getLiteralValueAtPath(Je,st,this);return this.propertyKey=e===nt?Qe:String(e)}return this.propertyKey}resolveNamespaceVariables(e,t){if(0===t.length)return e;if(!e.isNamespace)return null;const s=t[0].key,i=e instanceof Mt?e.module.getVariableForExportName(s):e.context.traceExport(s);if(!i){const i=e instanceof Mt?e.module.id:e.context.fileName;return this.context.warn({code:"MISSING_EXPORT",exporter:xi(i),importer:xi(this.context.fileName),message:`'${s}' is not exported by '${xi(i)}'`,missing:s,url:"https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module"},t[0].pos),"undefined"}return this.resolveNamespaceVariables(i,t.slice(1))}}class qi extends Gs{addDeclaration(e,t,s,i){return i?this.parent.addDeclaration(e,t,s,i):super.addDeclaration(e,t,s,!1)}}class Ki extends Fs{createScope(e){this.scope=new qi(e,this.context)}initialise(){this.param&&this.param.declare("parameter",rt)}parseNode(e){this.body=new this.context.nodeConstructors.BlockStatement(e.body,this,this.scope),super.parseNode(e)}}Ki.prototype.preventChildBlockScope=!0;class Xi{constructor(e){this.included=!1,this.expressions=e}deoptimizePath(e){for(const t of this.expressions)t.deoptimizePath(e)}getLiteralValueAtPath(){return nt}getReturnExpressionWhenCalledAtPath(e,t,s){return new Xi(this.expressions.map(i=>i.getReturnExpressionWhenCalledAtPath(e,t,s)))}hasEffectsWhenAccessedAtPath(e,t){for(const s of this.expressions)if(s.hasEffectsWhenAccessedAtPath(e,t))return!0;return!1}hasEffectsWhenAssignedAtPath(e,t){for(const s of this.expressions)if(s.hasEffectsWhenAssignedAtPath(e,t))return!0;return!1}hasEffectsWhenCalledAtPath(e,t,s){for(const i of this.expressions)if(i.hasEffectsWhenCalledAtPath(e,t,s))return!0;return!1}include(){}includeCallArguments(){}}class Yi extends Fs{bind(){null!==this.declaration&&this.declaration.bind()}hasEffects(e){return null!==this.declaration&&this.declaration.hasEffects(e)}initialise(){this.context.addExport(this)}render(e,t,s){const{start:i,end:n}=s;null===this.declaration?e.remove(i,n):(e.remove(this.start,this.declaration.start),this.declaration.render(e,t,{start:i,end:n}))}}Yi.prototype.needsBoundaries=!0;const Qi=Symbol("unset");class Ji extends Fs{bind(){}hasEffects(){return!1}initialise(){this.context.addImport(this)}render(e,t,s){e.remove(s.start,s.end)}}Ji.prototype.needsBoundaries=!0;const Zi="ROLLUP_ASSET_URL_",en="ROLLUP_FILE_URL_",tn={amd:["document","module","URL"],cjs:["document","require","URL"],iife:["document","URL"],system:["module"],umd:["document","require","URL"]},sn={amd:["document","require","URL"],cjs:["document","require","URL"],iife:["document","URL"],system:["module","URL"],umd:["document","require","URL"]},nn=(e,t="URL")=>`new ${t}(${e}).href`,rn=e=>nn(`'${e}', document.currentScript && document.currentScript.src || document.baseURI`),an=e=>(t,s)=>{const i=e(s);return null===t?`({ url: ${i} })`:"url"===t?i:"undefined"},on=e=>`(document.currentScript && document.currentScript.src || new URL('${e}', document.baseURI).href)`,hn={amd:e=>("."!==e[0]&&(e="./"+e),nn(`require.toUrl('${e}'), document.baseURI`)),cjs:e=>`(typeof document === 'undefined' ? ${nn(`'file:' + __dirname + '/${e}'`,"(require('u' + 'rl').URL)")} : ${rn(e)})`,es:e=>nn(`'${e}', import.meta.url`),iife:e=>rn(e),system:e=>nn(`'${e}', module.meta.url`),umd:e=>`(typeof document === 'undefined' ? ${nn(`'file:' + __dirname + '/${e}'`,"(require('u' + 'rl').URL)")} : ${rn(e)})`},ln={amd:an(()=>nn("module.uri, document.baseURI")),cjs:an(e=>`(typeof document === 'undefined' ? ${nn("'file:' + __filename","(require('u' + 'rl').URL)")} : ${on(e)})`),iife:an(e=>on(e)),system:e=>null===e?"module.meta":`module.meta.${e}`,umd:an(e=>`(typeof document === 'undefined' ? ${nn("'file:' + __filename","(require('u' + 'rl').URL)")} : ${on(e)})`)};class cn extends Fs{bind(){super.bind(),this.argument.deoptimizePath([Qe,Qe])}}class un extends Fs{constructor(){super(...arguments),this.hasCachedEffect=!1}hasEffects(e){if(this.hasCachedEffect)return!0;for(const t of this.body)if(t.hasEffects(e))return this.hasCachedEffect=!0;return!1}include(e,t){this.included=!0;for(const s of this.body)(t||s.shouldBeIncluded(e))&&s.include(e,t)}render(e,t){this.body.length?$s(this.body,e,this.start,this.end,t):super.render(e,t)}}class dn extends Fs{hasEffects(e){if(this.test&&this.test.hasEffects(e))return!0;for(const t of this.consequent){if(e.brokenFlow)break;if(t.hasEffects(e))return!0}return!1}include(e,t){this.included=!0,this.test&&this.test.include(e,t);for(const s of this.consequent)(t||s.shouldBeIncluded(e))&&s.include(e,t)}render(e,t,s){if(this.consequent.length){this.test&&this.test.render(e,t);const i=this.test?this.test.end:_s(e.original,"default",this.start)+7,n=_s(e.original,":",i)+1;$s(this.consequent,e,n,s.end,t)}else super.render(e,t)}}dn.prototype.needsBoundaries=!0;class pn extends Fs{getLiteralValueAtPath(e){return e.length>0||1!==this.quasis.length?nt:this.quasis[0].value.cooked}render(e,t){e.indentExclusionRanges.push([this.start,this.end]),super.render(e,t)}}class fn extends Os{constructor(e,t){super(e),this.context=t,this.variables.set("this",new es("this",null,at,t))}addExportDefaultDeclaration(e,t,s){const i=new ti(e,t,s);return this.variables.set("default",i),i}addNamespaceMemberAccess(e,t){t instanceof Rt&&this.accessedOutsideVariables.set(t.name,t)}deconflict(e){for(const t of this.children)t.deconflict(e)}findLexicalBoundary(){return this}findVariable(e){const t=this.variables.get(e)||this.accessedOutsideVariables.get(e);if(t)return t;const s=this.context.traceVariable(e)||this.parent.findVariable(e);return s instanceof Rt&&this.accessedOutsideVariables.set(e,s),s}}const mn={"!":e=>!e,"+":e=>+e,"-":e=>-e,delete:()=>nt,typeof:e=>typeof e,void:()=>{},"~":e=>~e};function gn(e){return null!==e.renderBaseName&&null!==e.exportName&&e.isReassigned}class xn extends Fs{deoptimizePath(){for(const e of this.declarations)e.deoptimizePath(Je)}hasEffectsWhenAssignedAtPath(){return!1}include(e,t){this.included=!0;for(const s of this.declarations)(t||s.shouldBeIncluded(e))&&s.include(e,t)}includeWithAllDeclaredVariables(e,t){this.included=!0;for(const s of this.declarations)s.include(t,e)}initialise(){for(const e of this.declarations)e.declareDeclarator(this.kind)}render(e,t,s=Ks){if(function(e){for(const t of e){if(!t.included)return!1;if("Identifier"===t.id.type){if(t.id.variable.exportName)return!1}else{const e=[];if(t.id.addExportedVariables(e),e.length>0)return!1}}return!0}(this.declarations)){for(const s of this.declarations)s.render(e,t);s.isNoStatement||59===e.original.charCodeAt(this.end-1)||e.appendLeft(this.end,";")}else this.renderReplacedDeclarations(e,t,s)}renderDeclarationEnd(e,t,s,i,n,r,a){59===e.original.charCodeAt(this.end-1)&&e.remove(this.end-1,this.end),r&&(t+=";"),null!==s?(10!==e.original.charCodeAt(i-1)||10!==e.original.charCodeAt(this.end)&&13!==e.original.charCodeAt(this.end)||(i--,13===e.original.charCodeAt(i)&&i--),i===s+1?e.overwrite(s,n,t):(e.overwrite(s,s+1,t),e.remove(i,n))):e.appendLeft(n,t),a.length>0&&e.appendLeft(n," "+Ui(a))}renderReplacedDeclarations(e,t,{start:s=this.start,end:i=this.end,isNoStatement:n}){const r=Ts(this.declarations,e,this.start+this.kind.length,this.end-(59===e.original.charCodeAt(this.end-1)?1:0));let a,o;o=/\n\s*$/.test(e.slice(this.start,r[0].start))?this.start+this.kind.length:r[0].start;let h=o-1;e.remove(this.start,h);let l,c,u=!1,d=!1,p="";const f=[];for(const{node:s,start:i,separator:n,contentEnd:m,end:g}of r)!s.included||s.id instanceof Xs&&gn(s.id.variable)&&null===s.init?e.remove(i,g):(l="",c="",s.id instanceof Xs&&gn(s.id.variable)?(d&&(p+=";"),u=!1):("system"===t.format&&null!==s.init&&("Identifier"!==s.id.type?s.id.addExportedVariables(f):s.id.variable.exportName&&(e.prependLeft(e.original.indexOf("=",s.id.end)+1,` exports('${s.id.variable.safeExportName||s.id.variable.exportName}',`),c+=")")),u?p+=",":(d&&(p+=";"),l+=`${this.kind} `,u=!0)),o===h+1?e.overwrite(h,o,p+l):(e.overwrite(h,h+1,p),e.appendLeft(o,l)),s.render(e,t),a=m,o=g,d=!0,h=n,p=c);d?this.renderDeclarationEnd(e,p,h,a,o,!n,f):e.remove(s,i)}}const yn={ArrayExpression:class extends Fs{bind(){super.bind();for(const e of this.elements)null!==e&&e.deoptimizePath(Ze)}getReturnExpressionWhenCalledAtPath(e){return 1!==e.length?rt:It(Pt,e[0])}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){return 1!==e.length||_t(Pt,e[0],this.included,t,s)}},ArrayPattern:class extends Fs{addExportedVariables(e){for(const t of this.elements)null!==t&&t.addExportedVariables(e)}declare(e){const t=[];for(const s of this.elements)null!==s&&t.push(...s.declare(e,rt));return t}deoptimizePath(e){if(0===e.length)for(const t of this.elements)null!==t&&t.deoptimizePath(e)}hasEffectsWhenAssignedAtPath(e,t){if(e.length>0)return!0;for(const e of this.elements)if(null!==e&&e.hasEffectsWhenAssignedAtPath(Je,t))return!0;return!1}},ArrowFunctionExpression:Wi,AssignmentExpression:class extends Fs{constructor(){super(...arguments),this.deoptimized=!1}hasEffects(e){return this.deoptimized||this.applyDeoptimizations(),this.right.hasEffects(e)||this.left.hasEffects(e)||this.left.hasEffectsWhenAssignedAtPath(Je,e)}hasEffectsWhenAccessedAtPath(e,t){return e.length>0&&this.right.hasEffectsWhenAccessedAtPath(e,t)}include(e,t){this.deoptimized||this.applyDeoptimizations(),this.included=!0,this.left.include(e,t),this.right.include(e,t)}render(e,t){if(this.left.render(e,t),this.right.render(e,t),"system"===t.format)if(this.left.variable&&this.left.variable.exportName){const t=_s(e.original,this.operator,this.left.end),s=this.operator.length>1?` ${this.left.variable.exportName} ${this.operator.slice(0,-1)}`:"";e.overwrite(t,t+this.operator.length,`= exports('${this.left.variable.exportName}',${s}`),e.appendLeft(this.right.end,")")}else if("addExportedVariables"in this.left){const t=[];this.left.addExportedVariables(t),t.length>0&&(e.prependRight(this.start,`function (v) {${Ui(t)} return v;} (`),e.appendLeft(this.end,")"))}}applyDeoptimizations(){this.deoptimized=!0,this.left.deoptimizePath(Je),this.right.deoptimizePath(Ze)}},AssignmentPattern:class extends Fs{addExportedVariables(e){this.left.addExportedVariables(e)}bind(){super.bind(),this.left.deoptimizePath(Je),this.right.deoptimizePath(Ze)}declare(e,t){return this.left.declare(e,t)}deoptimizePath(e){0===e.length&&this.left.deoptimizePath(e)}hasEffectsWhenAssignedAtPath(e,t){return e.length>0||this.left.hasEffectsWhenAssignedAtPath(Je,t)}render(e,t,{isShorthandProperty:s}=Ks){this.left.render(e,t,{isShorthandProperty:s}),this.right.render(e,t)}},AwaitExpression:class extends Fs{hasEffects(e){return!e.ignore.returnAwaitYield||this.argument.hasEffects(e)}include(e,t){if(!this.included){this.included=!0;e:if(!this.context.usesTopLevelAwait){let e=this.parent;do{if(e instanceof Qs||e instanceof Wi)break e}while(e=e.parent);this.context.usesTopLevelAwait=!0}}this.argument.include(e,t)}},BinaryExpression:class extends Fs{deoptimizeCache(){}getLiteralValueAtPath(e,t,s){if(e.length>0)return nt;const i=this.left.getLiteralValueAtPath(Je,t,s);if(i===nt)return nt;const n=this.right.getLiteralValueAtPath(Je,t,s);if(n===nt)return nt;const r=zi[this.operator];return r?r(i,n):nt}hasEffects(e){return"+"===this.operator&&this.parent instanceof Bi&&""===this.left.getLiteralValueAtPath(Je,st,this)||super.hasEffects(e)}hasEffectsWhenAccessedAtPath(e){return e.length>1}},BlockStatement:Fi,BreakStatement:class extends Fs{hasEffects(e){if(this.label){if(!e.ignore.labels.has(this.label.name))return!0;e.includedLabels.add(this.label.name),e.brokenFlow=2}else{if(!e.ignore.breaks)return!0;e.brokenFlow=1}return!1}include(e){this.included=!0,this.label&&(this.label.include(e),e.includedLabels.add(this.label.name)),e.brokenFlow=this.label?2:1}},CallExpression:class extends Fs{constructor(){super(...arguments),this.expressionsToBeDeoptimized=[],this.returnExpression=null,this.wasPathDeoptmizedWhileOptimized=!1}bind(){super.bind(),this.callee instanceof Xs&&(this.scope.findVariable(this.callee.name).isNamespace&&this.context.warn({code:"CANNOT_CALL_NAMESPACE",message:`Cannot call a namespace ('${this.callee.name}')`},this.start),"eval"===this.callee.name&&this.context.warn({code:"EVAL",message:"Use of eval is strongly discouraged, as it poses security risks and may cause issues with minification",url:"https://rollupjs.org/guide/en/#avoiding-eval"},this.start)),this.getReturnExpression(st),this.callee instanceof Hi&&!this.callee.variable&&this.callee.object.deoptimizePath(Ze);for(const e of this.arguments)e.deoptimizePath(Ze)}deoptimizeCache(){if(this.returnExpression!==rt){this.returnExpression=null;const e=this.getReturnExpression(st),t=this.expressionsToBeDeoptimized;e!==rt&&(this.expressionsToBeDeoptimized=[],this.wasPathDeoptmizedWhileOptimized&&(e.deoptimizePath(Ze),this.wasPathDeoptmizedWhileOptimized=!1));for(const e of t)e.deoptimizeCache()}}deoptimizePath(e){if(0===e.length)return;const t=this.context.deoptimizationTracker.getEntities(e);if(t.has(this))return;t.add(this);const s=this.getReturnExpression(st);s!==rt&&(this.wasPathDeoptmizedWhileOptimized=!0,s.deoptimizePath(e))}getLiteralValueAtPath(e,t,s){const i=this.getReturnExpression(t);if(i===rt)return nt;const n=t.getEntities(e);if(n.has(i))return nt;this.expressionsToBeDeoptimized.push(s),n.add(i);const r=i.getLiteralValueAtPath(e,t,s);return n.delete(i),r}getReturnExpressionWhenCalledAtPath(e,t,s){const i=this.getReturnExpression(t);if(this.returnExpression===rt)return rt;const n=t.getEntities(e);if(n.has(i))return rt;this.expressionsToBeDeoptimized.push(s),n.add(i);const r=i.getReturnExpressionWhenCalledAtPath(e,t,s);return n.delete(i),r}hasEffects(e){for(const t of this.arguments)if(t.hasEffects(e))return!0;return(!this.context.annotations||!this.annotatedPure)&&(this.callee.hasEffects(e)||this.callee.hasEffectsWhenCalledAtPath(Je,this.callOptions,e))}hasEffectsWhenAccessedAtPath(e,t){if(0===e.length)return!1;const s=t.accessed.getEntities(e);return!s.has(this)&&(s.add(this),this.returnExpression.hasEffectsWhenAccessedAtPath(e,t))}hasEffectsWhenAssignedAtPath(e,t){if(0===e.length)return!0;const s=t.assigned.getEntities(e);return!s.has(this)&&(s.add(this),this.returnExpression.hasEffectsWhenAssignedAtPath(e,t))}hasEffectsWhenCalledAtPath(e,t,s){const i=(t.withNew?s.instantiated:s.called).getEntities(e);return!i.has(this)&&(i.add(this),this.returnExpression.hasEffectsWhenCalledAtPath(e,t,s))}include(e,t){t?(super.include(e,t),"variables"===t&&this.callee instanceof Xs&&this.callee.variable&&this.callee.variable.markCalledFromTryStatement()):(this.included=!0,this.callee.include(e,!1)),this.callee.includeCallArguments(e,this.arguments),this.returnExpression.included||this.returnExpression.include(e,!1)}initialise(){this.callOptions={args:this.arguments,withNew:!1}}render(e,t,{renderedParentType:s}=Ks){if(this.callee.render(e,t),this.arguments.length>0)if(this.arguments[this.arguments.length-1].included)for(const s of this.arguments)s.render(e,t);else{let s=this.arguments.length-2;for(;s>=0&&!this.arguments[s].included;)s--;if(s>=0){for(let i=0;i<=s;i++)this.arguments[i].render(e,t);e.remove(_s(e.original,",",this.arguments[s].end),this.end-1)}else e.remove(_s(e.original,"(",this.callee.end)+1,this.end-1)}"ExpressionStatement"===s&&"FunctionExpression"===this.callee.type&&(e.appendRight(this.start,"("),e.prependLeft(this.end,")"))}getReturnExpression(e){return null===this.returnExpression?(this.returnExpression=rt,this.returnExpression=this.callee.getReturnExpressionWhenCalledAtPath(Je,e,this)):this.returnExpression}},CatchClause:Ki,ClassBody:class extends Fs{hasEffectsWhenCalledAtPath(e,t,s){return e.length>0||null!==this.classConstructor&&this.classConstructor.hasEffectsWhenCalledAtPath(Je,t,s)}initialise(){for(const e of this.body)if("constructor"===e.kind)return void(this.classConstructor=e);this.classConstructor=null}},ClassDeclaration:Us,ClassExpression:class extends Ws{},ConditionalExpression:class extends Fs{constructor(){super(...arguments),this.expressionsToBeDeoptimized=[],this.isBranchResolutionAnalysed=!1,this.usedBranch=null,this.wasPathDeoptimizedWhileOptimized=!1}bind(){super.bind(),this.getUsedBranch()}deoptimizeCache(){if(null!==this.usedBranch){const e=this.usedBranch===this.consequent?this.alternate:this.consequent;this.usedBranch=null;const t=this.expressionsToBeDeoptimized;this.expressionsToBeDeoptimized=[],this.wasPathDeoptimizedWhileOptimized&&e.deoptimizePath(Ze);for(const e of t)e.deoptimizeCache()}}deoptimizePath(e){if(e.length>0){const t=this.getUsedBranch();null===t?(this.consequent.deoptimizePath(e),this.alternate.deoptimizePath(e)):(this.wasPathDeoptimizedWhileOptimized=!0,t.deoptimizePath(e))}}getLiteralValueAtPath(e,t,s){const i=this.getUsedBranch();return null===i?nt:(this.expressionsToBeDeoptimized.push(s),i.getLiteralValueAtPath(e,t,s))}getReturnExpressionWhenCalledAtPath(e,t,s){const i=this.getUsedBranch();return null===i?new Xi([this.consequent.getReturnExpressionWhenCalledAtPath(e,t,s),this.alternate.getReturnExpressionWhenCalledAtPath(e,t,s)]):(this.expressionsToBeDeoptimized.push(s),i.getReturnExpressionWhenCalledAtPath(e,t,s))}hasEffects(e){return!!this.test.hasEffects(e)||(null===this.usedBranch?this.consequent.hasEffects(e)||this.alternate.hasEffects(e):this.usedBranch.hasEffects(e))}hasEffectsWhenAccessedAtPath(e,t){return 0!==e.length&&(null===this.usedBranch?this.consequent.hasEffectsWhenAccessedAtPath(e,t)||this.alternate.hasEffectsWhenAccessedAtPath(e,t):this.usedBranch.hasEffectsWhenAccessedAtPath(e,t))}hasEffectsWhenAssignedAtPath(e,t){return 0===e.length||(null===this.usedBranch?this.consequent.hasEffectsWhenAssignedAtPath(e,t)||this.alternate.hasEffectsWhenAssignedAtPath(e,t):this.usedBranch.hasEffectsWhenAssignedAtPath(e,t))}hasEffectsWhenCalledAtPath(e,t,s){return null===this.usedBranch?this.consequent.hasEffectsWhenCalledAtPath(e,t,s)||this.alternate.hasEffectsWhenCalledAtPath(e,t,s):this.usedBranch.hasEffectsWhenCalledAtPath(e,t,s)}include(e,t){this.included=!0,t||this.test.shouldBeIncluded(e)||null===this.usedBranch?(this.test.include(e,t),this.consequent.include(e,t),this.alternate.include(e,t)):this.usedBranch.include(e,t)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i,preventASI:n}=Ks){if(this.test.included)super.render(e,t);else{const r=_s(e.original,":",this.consequent.end),a=(this.consequent.included?_s(e.original,"?",this.test.end):r)+1;n&&Rs(e,a,this.usedBranch.start),e.remove(this.start,a),this.consequent.included&&e.remove(r,this.end),ws(this,e),this.usedBranch.render(e,t,{isCalleeOfRenderedParent:s?i:this.parent.callee===this,renderedParentType:s||this.parent.type})}}getUsedBranch(){if(this.isBranchResolutionAnalysed)return this.usedBranch;this.isBranchResolutionAnalysed=!0;const e=this.test.getLiteralValueAtPath(Je,st,this);return e===nt?null:this.usedBranch=e?this.consequent:this.alternate}},ContinueStatement:class extends Fs{hasEffects(e){if(this.label){if(!e.ignore.labels.has(this.label.name))return!0;e.includedLabels.add(this.label.name),e.brokenFlow=2}else{if(!e.ignore.continues)return!0;e.brokenFlow=1}return!1}include(e){this.included=!0,this.label&&(this.label.include(e),e.includedLabels.add(this.label.name)),e.brokenFlow=this.label?2:1}},DoWhileStatement:class extends Fs{hasEffects(e){if(this.test.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s,continues:i}}=e;return e.ignore.breaks=!0,e.ignore.continues=!0,!!this.body.hasEffects(e)||(e.ignore.breaks=s,e.ignore.continues=i,e.brokenFlow=t,!1)}include(e,t){this.included=!0,this.test.include(e,t);const{brokenFlow:s}=e;this.body.include(e,t),e.brokenFlow=s}},EmptyStatement:class extends Fs{hasEffects(){return!1}},ExportAllDeclaration:Oi,ExportDefaultDeclaration:ei,ExportNamedDeclaration:Yi,ExpressionStatement:Bi,ForInStatement:class extends Fs{bind(){this.left.bind(),this.left.deoptimizePath(Je),this.right.bind(),this.body.bind()}createScope(e){this.scope=new Vi(e)}hasEffects(e){if(this.left&&(this.left.hasEffects(e)||this.left.hasEffectsWhenAssignedAtPath(Je,e))||this.right&&this.right.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s,continues:i}}=e;return e.ignore.breaks=!0,e.ignore.continues=!0,!!this.body.hasEffects(e)||(e.ignore.breaks=s,e.ignore.continues=i,e.brokenFlow=t,!1)}include(e,t){this.included=!0,this.left.includeWithAllDeclaredVariables(t,e),this.left.deoptimizePath(Je),this.right.include(e,t);const{brokenFlow:s}=e;this.body.include(e,t),e.brokenFlow=s}render(e,t){this.left.render(e,t,Ns),this.right.render(e,t,Ns),110===e.original.charCodeAt(this.right.start-1)&&e.prependLeft(this.right.start," "),this.body.render(e,t)}},ForOfStatement:class extends Fs{bind(){this.left.bind(),this.left.deoptimizePath(Je),this.right.bind(),this.body.bind()}createScope(e){this.scope=new Vi(e)}hasEffects(){return!0}include(e,t){this.included=!0,this.left.includeWithAllDeclaredVariables(t,e),this.left.deoptimizePath(Je),this.right.include(e,t);const{brokenFlow:s}=e;this.body.include(e,t),e.brokenFlow=s}render(e,t){this.left.render(e,t,Ns),this.right.render(e,t,Ns),102===e.original.charCodeAt(this.right.start-1)&&e.prependLeft(this.right.start," "),this.body.render(e,t)}},ForStatement:class extends Fs{createScope(e){this.scope=new Vi(e)}hasEffects(e){if(this.init&&this.init.hasEffects(e)||this.test&&this.test.hasEffects(e)||this.update&&this.update.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s,continues:i}}=e;return e.ignore.breaks=!0,e.ignore.continues=!0,!!this.body.hasEffects(e)||(e.ignore.breaks=s,e.ignore.continues=i,e.brokenFlow=t,!1)}include(e,t){this.included=!0,this.init&&this.init.include(e,t),this.test&&this.test.include(e,t);const{brokenFlow:s}=e;this.update&&this.update.include(e,t),this.body.include(e,t),e.brokenFlow=s}render(e,t){this.init&&this.init.render(e,t,Ns),this.test&&this.test.render(e,t,Ns),this.update&&this.update.render(e,t,Ns),this.body.render(e,t)}},FunctionDeclaration:Js,FunctionExpression:class extends Qs{},Identifier:Xs,IfStatement:class extends Fs{constructor(){super(...arguments),this.testValue=Qi}deoptimizeCache(){this.testValue=nt}hasEffects(e){if(this.test.hasEffects(e))return!0;const t=this.getTestValue();if(t===nt){const{brokenFlow:t}=e;if(this.consequent.hasEffects(e))return!0;const s=e.brokenFlow;return e.brokenFlow=t,null!==this.alternate&&(!!this.alternate.hasEffects(e)||(e.brokenFlow=e.brokenFlow<s?e.brokenFlow:s,!1))}return t?this.consequent.hasEffects(e):null!==this.alternate&&this.alternate.hasEffects(e)}include(e,t){if(this.included=!0,t)this.includeRecursively(t,e);else{const t=this.getTestValue();t===nt?this.includeUnknownTest(e):this.includeKnownTest(e,t)}}render(e,t){const s=this.getTestValue();if(this.test.included||(s?null!==this.alternate&&this.alternate.included:this.consequent.included))this.test.included?this.test.render(e,t):e.overwrite(this.test.start,this.test.end,s?"true":"false"),this.consequent.included?this.consequent.render(e,t):e.overwrite(this.consequent.start,this.consequent.end,";"),null!==this.alternate&&(this.alternate.included?(101===e.original.charCodeAt(this.alternate.start-1)&&e.prependLeft(this.alternate.start," "),this.alternate.render(e,t)):e.remove(this.consequent.end,this.alternate.end));else{const i=s?this.consequent:this.alternate;e.remove(this.start,i.start),e.remove(i.end,this.end),ws(this,e),i.render(e,t)}}getTestValue(){return this.testValue===Qi?this.testValue=this.test.getLiteralValueAtPath(Je,st,this):this.testValue}includeKnownTest(e,t){this.test.shouldBeIncluded(e)&&this.test.include(e,!1),t&&this.consequent.shouldBeIncluded(e)&&this.consequent.include(e,!1),null!==this.alternate&&!t&&this.alternate.shouldBeIncluded(e)&&this.alternate.include(e,!1)}includeRecursively(e,t){this.test.include(t,e),this.consequent.include(t,e),null!==this.alternate&&this.alternate.include(t,e)}includeUnknownTest(e){this.test.include(e,!1);const{brokenFlow:t}=e;let s=0;this.consequent.shouldBeIncluded(e)&&(this.consequent.include(e,!1),s=e.brokenFlow,e.brokenFlow=t),null!==this.alternate&&this.alternate.shouldBeIncluded(e)&&(this.alternate.include(e,!1),e.brokenFlow=e.brokenFlow<s?e.brokenFlow:s)}},ImportDeclaration:Ji,ImportExpression:class extends Fs{constructor(){super(...arguments),this.inlineNamespace=null,this.exportMode="auto",this.resolution=null}hasEffects(){return!0}include(e,t){this.included||(this.included=!0,this.context.includeDynamicImport(this),this.scope.addAccessedDynamicImport(this)),this.source.include(e,t)}initialise(){this.context.addDynamicImport(this)}render(e,t){if(this.inlineNamespace){const s=t.compact?"":" ",i=t.compact?"":";";return void e.overwrite(this.start,this.end,`Promise.resolve().then(function${s}()${s}{${s}return ${this.inlineNamespace.getName()}${i}${s}})`)}const s=this.getDynamicImportMechanism(t);s&&(e.overwrite(this.start,_s(e.original,"(",this.start+6)+1,s.left),e.overwrite(this.end-1,this.end,s.right)),this.source.render(e,t)}renderFinalResolution(e,t){e.overwrite(this.source.start,this.source.end,t)}setResolution(e,t,s=!1){this.exportMode=e,this.resolution=t,s?this.inlineNamespace=s:(this.scope.addAccessedGlobalsByFormat({amd:["require"],cjs:["require"],system:["module"]}),"auto"===e&&this.scope.addAccessedGlobalsByFormat({amd:["_interopNamespace"],cjs:["_interopNamespace"]}))}getDynamicImportMechanism(e){const t=e.outputPluginDriver.hookFirstSync("renderDynamicImport",[{customResolution:"string"==typeof this.resolution?this.resolution:null,format:e.format,moduleId:this.context.module.id,targetModuleId:this.resolution&&"string"!=typeof this.resolution?this.resolution.id:null}]);if(t)return t;switch(e.format){case"cjs":{const t=e.compact?"":" ",s=e.compact?"c":"resolve";switch(this.exportMode){case"default":return{left:`new Promise(function${t}(${s})${t}{${t}${s}({${t}'default':${t}require(`,right:`)${t}});${t}})`};case"auto":return{left:`new Promise(function${t}(${s})${t}{${t}${s}(_interopNamespace(require(`,right:`)));${t}})`};default:return{left:`new Promise(function${t}(${s})${t}{${t}${s}(require(`,right:`));${t}})`}}}case"amd":{const t=e.compact?"":" ",s=e.compact?"c":"resolve",i=e.compact?"e":"reject";return{left:`new Promise(function${t}(${s},${t}${i})${t}{${t}require([`,right:`],${t}${"default"===this.exportMode?`function${t}(m)${t}{${t}${s}({${t}'default':${t}m${t}});${t}}`:"auto"===this.exportMode?`function${t}(m)${t}{${t}${s}(_interopNamespace(m));${t}}`:s},${t}${i})${t}})`}}case"system":return{left:"module.import(",right:")"};case"es":if(e.dynamicImportFunction)return{left:`${e.dynamicImportFunction}(`,right:")"}}return null}},LabeledStatement:class extends Fs{hasEffects(e){const t=e.brokenFlow;return e.ignore.labels.add(this.label.name),!!this.body.hasEffects(e)||(e.ignore.labels.delete(this.label.name),e.includedLabels.has(this.label.name)&&(e.includedLabels.delete(this.label.name),e.brokenFlow=t),!1)}include(e,t){this.included=!0;const s=e.brokenFlow;this.body.include(e,t),e.includedLabels.has(this.label.name)&&(this.label.include(e),e.includedLabels.delete(this.label.name),e.brokenFlow=s)}render(e,t){this.label.included?this.label.render(e,t):e.remove(this.start,_s(e.original,":",this.label.end)+1),this.body.render(e,t)}},Literal:ji,LogicalExpression:class extends Fs{constructor(){super(...arguments),this.expressionsToBeDeoptimized=[],this.isBranchResolutionAnalysed=!1,this.unusedBranch=null,this.usedBranch=null,this.wasPathDeoptimizedWhileOptimized=!1}bind(){super.bind(),this.getUsedBranch()}deoptimizeCache(){if(null!==this.usedBranch){this.usedBranch=null;const e=this.expressionsToBeDeoptimized;this.expressionsToBeDeoptimized=[],this.wasPathDeoptimizedWhileOptimized&&this.unusedBranch.deoptimizePath(Ze);for(const t of e)t.deoptimizeCache()}}deoptimizePath(e){const t=this.getUsedBranch();null===t?(this.left.deoptimizePath(e),this.right.deoptimizePath(e)):(this.wasPathDeoptimizedWhileOptimized=!0,t.deoptimizePath(e))}getLiteralValueAtPath(e,t,s){const i=this.getUsedBranch();return null===i?nt:(this.expressionsToBeDeoptimized.push(s),i.getLiteralValueAtPath(e,t,s))}getReturnExpressionWhenCalledAtPath(e,t,s){const i=this.getUsedBranch();return null===i?new Xi([this.left.getReturnExpressionWhenCalledAtPath(e,t,s),this.right.getReturnExpressionWhenCalledAtPath(e,t,s)]):(this.expressionsToBeDeoptimized.push(s),i.getReturnExpressionWhenCalledAtPath(e,t,s))}hasEffects(e){return!!this.left.hasEffects(e)||this.usedBranch!==this.left&&this.right.hasEffects(e)}hasEffectsWhenAccessedAtPath(e,t){return 0!==e.length&&(null===this.usedBranch?this.left.hasEffectsWhenAccessedAtPath(e,t)||this.right.hasEffectsWhenAccessedAtPath(e,t):this.usedBranch.hasEffectsWhenAccessedAtPath(e,t))}hasEffectsWhenAssignedAtPath(e,t){return 0===e.length||(null===this.usedBranch?this.left.hasEffectsWhenAssignedAtPath(e,t)||this.right.hasEffectsWhenAssignedAtPath(e,t):this.usedBranch.hasEffectsWhenAssignedAtPath(e,t))}hasEffectsWhenCalledAtPath(e,t,s){return null===this.usedBranch?this.left.hasEffectsWhenCalledAtPath(e,t,s)||this.right.hasEffectsWhenCalledAtPath(e,t,s):this.usedBranch.hasEffectsWhenCalledAtPath(e,t,s)}include(e,t){this.included=!0,t||this.usedBranch===this.right&&this.left.shouldBeIncluded(e)||null===this.usedBranch?(this.left.include(e,t),this.right.include(e,t)):this.usedBranch.include(e,t)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i,preventASI:n}=Ks){if(this.left.included&&this.right.included)super.render(e,t);else{const r=_s(e.original,this.operator,this.left.end);this.right.included?(e.remove(this.start,r+2),n&&Rs(e,r+2,this.right.start)):e.remove(r,this.end),ws(this,e),this.usedBranch.render(e,t,{isCalleeOfRenderedParent:s?i:this.parent.callee===this,renderedParentType:s||this.parent.type})}}getUsedBranch(){if(!this.isBranchResolutionAnalysed){this.isBranchResolutionAnalysed=!0;const e=this.left.getLiteralValueAtPath(Je,st,this);if(e===nt)return null;("||"===this.operator?e:!e)?(this.usedBranch=this.left,this.unusedBranch=this.right):(this.usedBranch=this.right,this.unusedBranch=this.left)}return this.usedBranch}},MemberExpression:Hi,MetaProperty:class extends Fs{hasEffects(){return!1}hasEffectsWhenAccessedAtPath(e){return e.length>1}include(){if(!this.included){this.included=!0;const e=this.parent,t=this.metaProperty=e instanceof Hi&&"string"==typeof e.propertyKey?e.propertyKey:null;t&&(t.startsWith(en)||t.startsWith(Zi)||t.startsWith("ROLLUP_CHUNK_URL_"))?this.scope.addAccessedGlobalsByFormat(sn):this.scope.addAccessedGlobalsByFormat(tn)}}initialise(){"import"===this.meta.name&&this.context.addImportMeta(this)}renderFinalMechanism(e,t,s,i){if(!this.included)return;const n=this.parent,r=this.metaProperty;if(r&&(r.startsWith(en)||r.startsWith(Zi)||r.startsWith("ROLLUP_CHUNK_URL_"))){let a,o=null,h=null,l=null;r.startsWith(en)?(o=r.substr(en.length),a=i.getFileName(o)):r.startsWith(Zi)?(this.context.warnDeprecation(`Using the "${Zi}" prefix to reference files is deprecated. Use the "${en}" prefix instead.`,!0),h=r.substr(Zi.length),a=i.getFileName(h)):(this.context.warnDeprecation(`Using the "ROLLUP_CHUNK_URL_" prefix to reference files is deprecated. Use the "${en}" prefix instead.`,!0),l=r.substr("ROLLUP_CHUNK_URL_".length),a=i.getFileName(l));const c=Ht(Yt(Kt(t),a));let u;return null!==h&&(u=i.hookFirstSync("resolveAssetUrl",[{assetFileName:a,chunkId:t,format:s,moduleId:this.context.module.id,relativeAssetPath:c}])),u||(u=i.hookFirstSync("resolveFileUrl",[{assetReferenceId:h,chunkId:t,chunkReferenceId:l,fileName:a,format:s,moduleId:this.context.module.id,referenceId:o||h||l,relativePath:c}])||hn[s](c)),void e.overwrite(n.start,n.end,u,{contentOnly:!0})}const a=i.hookFirstSync("resolveImportMeta",[r,{chunkId:t,format:s,moduleId:this.context.module.id}])||ln[s]&&ln[s](r,t);"string"==typeof a&&(n instanceof Hi?e.overwrite(n.start,n.end,a,{contentOnly:!0}):e.overwrite(this.start,this.end,a,{contentOnly:!0}))}},MethodDefinition:class extends Fs{hasEffects(e){return this.key.hasEffects(e)}hasEffectsWhenCalledAtPath(e,t,s){return e.length>0||this.value.hasEffectsWhenCalledAtPath(Je,t,s)}},NewExpression:class extends Fs{bind(){super.bind();for(const e of this.arguments)e.deoptimizePath(Ze)}hasEffects(e){for(const t of this.arguments)if(t.hasEffects(e))return!0;return(!this.context.annotations||!this.annotatedPure)&&(this.callee.hasEffects(e)||this.callee.hasEffectsWhenCalledAtPath(Je,this.callOptions,e))}hasEffectsWhenAccessedAtPath(e){return e.length>1}initialise(){this.callOptions={args:this.arguments,withNew:!0}}},ObjectExpression:class extends Fs{constructor(){super(...arguments),this.deoptimizedPaths=new Set,this.expressionsToBeDeoptimized=new Map,this.hasUnknownDeoptimizedProperty=!1,this.propertyMap=null,this.unmatchablePropertiesRead=[],this.unmatchablePropertiesWrite=[]}bind(){super.bind(),this.getPropertyMap()}deoptimizeCache(){this.hasUnknownDeoptimizedProperty||this.deoptimizeAllProperties()}deoptimizePath(e){if(this.hasUnknownDeoptimizedProperty)return;const t=this.getPropertyMap(),s=e[0];if(1===e.length){if("string"!=typeof s)return void this.deoptimizeAllProperties();if(!this.deoptimizedPaths.has(s)){this.deoptimizedPaths.add(s);const e=this.expressionsToBeDeoptimized.get(s);if(e)for(const t of e)t.deoptimizeCache()}}const i=1===e.length?Ze:e.slice(1);for(const e of"string"==typeof s?t[s]?t[s].propertiesRead:[]:this.properties)e.deoptimizePath(i)}getLiteralValueAtPath(e,t,s){const i=this.getPropertyMap(),n=e[0];if(0===e.length||this.hasUnknownDeoptimizedProperty||"string"!=typeof n||this.deoptimizedPaths.has(n))return nt;if(1===e.length&&!i[n]&&!Ct[n]&&0===this.unmatchablePropertiesRead.length){const e=this.expressionsToBeDeoptimized.get(n);return void(e?e.push(s):this.expressionsToBeDeoptimized.set(n,[s]))}if(!i[n]||null===i[n].exactMatchRead||i[n].propertiesRead.length>1)return nt;const r=this.expressionsToBeDeoptimized.get(n);return r?r.push(s):this.expressionsToBeDeoptimized.set(n,[s]),i[n].exactMatchRead.getLiteralValueAtPath(e.slice(1),t,s)}getReturnExpressionWhenCalledAtPath(e,t,s){const i=this.getPropertyMap(),n=e[0];if(0===e.length||this.hasUnknownDeoptimizedProperty||"string"!=typeof n||this.deoptimizedPaths.has(n))return rt;if(1===e.length&&Ct[n]&&0===this.unmatchablePropertiesRead.length&&(!i[n]||null===i[n].exactMatchRead))return It(Ct,n);if(!i[n]||null===i[n].exactMatchRead||i[n].propertiesRead.length>1)return rt;const r=this.expressionsToBeDeoptimized.get(n);return r?r.push(s):this.expressionsToBeDeoptimized.set(n,[s]),i[n].exactMatchRead.getReturnExpressionWhenCalledAtPath(e.slice(1),t,s)}hasEffectsWhenAccessedAtPath(e,t){if(0===e.length)return!1;const s=e[0],i=this.propertyMap;if(e.length>1&&(this.hasUnknownDeoptimizedProperty||"string"!=typeof s||this.deoptimizedPaths.has(s)||!i[s]||null===i[s].exactMatchRead))return!0;const n=e.slice(1);for(const e of"string"!=typeof s?this.properties:i[s]?i[s].propertiesRead:[])if(e.hasEffectsWhenAccessedAtPath(n,t))return!0;return!1}hasEffectsWhenAssignedAtPath(e,t){const s=e[0],i=this.propertyMap;if(e.length>1&&(this.hasUnknownDeoptimizedProperty||this.deoptimizedPaths.has(s)||!i[s]||null===i[s].exactMatchRead))return!0;const n=e.slice(1);for(const r of"string"!=typeof s?this.properties:e.length>1?i[s].propertiesRead:i[s]?i[s].propertiesWrite:[])if(r.hasEffectsWhenAssignedAtPath(n,t))return!0;return!1}hasEffectsWhenCalledAtPath(e,t,s){const i=e[0];if("string"!=typeof i||this.hasUnknownDeoptimizedProperty||this.deoptimizedPaths.has(i)||(this.propertyMap[i]?!this.propertyMap[i].exactMatchRead:e.length>1||!Ct[i]))return!0;const n=e.slice(1);if(this.propertyMap[i])for(const e of this.propertyMap[i].propertiesRead)if(e.hasEffectsWhenCalledAtPath(n,t,s))return!0;return!(1!==e.length||!Ct[i])&&_t(Ct,i,this.included,t,s)}render(e,t,{renderedParentType:s}=Ks){super.render(e,t),"ExpressionStatement"===s&&(e.appendRight(this.start,"("),e.prependLeft(this.end,")"))}deoptimizeAllProperties(){this.hasUnknownDeoptimizedProperty=!0;for(const e of this.properties)e.deoptimizePath(Ze);for(const e of this.expressionsToBeDeoptimized.values())for(const t of e)t.deoptimizeCache()}getPropertyMap(){if(null!==this.propertyMap)return this.propertyMap;const e=this.propertyMap=Object.create(null);for(let t=this.properties.length-1;t>=0;t--){const s=this.properties[t];if(s instanceof cn){this.unmatchablePropertiesRead.push(s);continue}const i="get"!==s.kind,n="set"!==s.kind;let r;if(s.computed){const e=s.key.getLiteralValueAtPath(Je,st,this);if(e===nt){n?this.unmatchablePropertiesRead.push(s):this.unmatchablePropertiesWrite.push(s);continue}r=String(e)}else r=s.key instanceof Xs?s.key.name:String(s.key.value);const a=e[r];a?(n&&null===a.exactMatchRead&&(a.exactMatchRead=s,a.propertiesRead.push(s,...this.unmatchablePropertiesRead)),i&&!n&&null===a.exactMatchWrite&&(a.exactMatchWrite=s,a.propertiesWrite.push(s,...this.unmatchablePropertiesWrite))):e[r]={exactMatchRead:n?s:null,exactMatchWrite:i?s:null,propertiesRead:n?[s,...this.unmatchablePropertiesRead]:[],propertiesWrite:i&&!n?[s,...this.unmatchablePropertiesWrite]:[]}}return e}},ObjectPattern:class extends Fs{addExportedVariables(e){for(const t of this.properties)"Property"===t.type?t.value.addExportedVariables(e):t.argument.addExportedVariables(e)}declare(e,t){const s=[];for(const i of this.properties)s.push(...i.declare(e,t));return s}deoptimizePath(e){if(0===e.length)for(const t of this.properties)t.deoptimizePath(e)}hasEffectsWhenAssignedAtPath(e,t){if(e.length>0)return!0;for(const e of this.properties)if(e.hasEffectsWhenAssignedAtPath(Je,t))return!0;return!1}},Program:un,Property:class extends Fs{constructor(){super(...arguments),this.declarationInit=null,this.returnExpression=null}bind(){super.bind(),"get"===this.kind&&this.getReturnExpression(),null!==this.declarationInit&&this.declarationInit.deoptimizePath([Qe,Qe])}declare(e,t){return this.declarationInit=t,this.value.declare(e,rt)}deoptimizeCache(){}deoptimizePath(e){"get"===this.kind?this.getReturnExpression().deoptimizePath(e):this.value.deoptimizePath(e)}getLiteralValueAtPath(e,t,s){return"get"===this.kind?this.getReturnExpression().getLiteralValueAtPath(e,t,s):this.value.getLiteralValueAtPath(e,t,s)}getReturnExpressionWhenCalledAtPath(e,t,s){return"get"===this.kind?this.getReturnExpression().getReturnExpressionWhenCalledAtPath(e,t,s):this.value.getReturnExpressionWhenCalledAtPath(e,t,s)}hasEffects(e){return this.key.hasEffects(e)||this.value.hasEffects(e)}hasEffectsWhenAccessedAtPath(e,t){if("get"===this.kind){const s=t.accessed.getEntities(e);return!s.has(this)&&(s.add(this),this.value.hasEffectsWhenCalledAtPath(Je,this.accessorCallOptions,t)||e.length>0&&this.returnExpression.hasEffectsWhenAccessedAtPath(e,t))}return this.value.hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){if("get"===this.kind){const s=t.assigned.getEntities(e);return!s.has(this)&&(s.add(this),this.returnExpression.hasEffectsWhenAssignedAtPath(e,t))}if("set"===this.kind){const s=t.assigned.getEntities(e);return!s.has(this)&&(s.add(this),this.value.hasEffectsWhenCalledAtPath(Je,this.accessorCallOptions,t))}return this.value.hasEffectsWhenAssignedAtPath(e,t)}hasEffectsWhenCalledAtPath(e,t,s){if("get"===this.kind){const i=(t.withNew?s.instantiated:s.called).getEntities(e);return!i.has(this)&&(i.add(this),this.returnExpression.hasEffectsWhenCalledAtPath(e,t,s))}return this.value.hasEffectsWhenCalledAtPath(e,t,s)}initialise(){this.accessorCallOptions={args:Ye,withNew:!1}}render(e,t){this.shorthand||this.key.render(e,t),this.value.render(e,t,{isShorthandProperty:this.shorthand})}getReturnExpression(){return null===this.returnExpression?(this.returnExpression=rt,this.returnExpression=this.value.getReturnExpressionWhenCalledAtPath(Je,st,this)):this.returnExpression}},RestElement:Ys,ReturnStatement:class extends Fs{hasEffects(e){return!(e.ignore.returnAwaitYield&&(null===this.argument||!this.argument.hasEffects(e))&&(e.brokenFlow=2,1))}include(e,t){this.included=!0,this.argument&&this.argument.include(e,t),e.brokenFlow=2}initialise(){this.scope.addReturnExpression(this.argument||rt)}render(e,t){this.argument&&(this.argument.render(e,t,{preventASI:!0}),this.argument.start===this.start+6&&e.prependLeft(this.start+6," "))}},SequenceExpression:class extends Fs{deoptimizePath(e){e.length>0&&this.expressions[this.expressions.length-1].deoptimizePath(e)}getLiteralValueAtPath(e,t,s){return this.expressions[this.expressions.length-1].getLiteralValueAtPath(e,t,s)}hasEffects(e){for(const t of this.expressions)if(t.hasEffects(e))return!0;return!1}hasEffectsWhenAccessedAtPath(e,t){return e.length>0&&this.expressions[this.expressions.length-1].hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){return 0===e.length||this.expressions[this.expressions.length-1].hasEffectsWhenAssignedAtPath(e,t)}hasEffectsWhenCalledAtPath(e,t,s){return this.expressions[this.expressions.length-1].hasEffectsWhenCalledAtPath(e,t,s)}include(e,t){this.included=!0;for(let s=0;s<this.expressions.length-1;s++){const i=this.expressions[s];(t||i.shouldBeIncluded(e))&&i.include(e,t)}this.expressions[this.expressions.length-1].include(e,t)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i,preventASI:n}=Ks){let r=0;for(const{node:a,start:o,end:h}of Ts(this.expressions,e,this.start,this.end))a.included?(r++,1===r&&n&&Rs(e,o,a.start),a===this.expressions[this.expressions.length-1]&&1===r?a.render(e,t,{isCalleeOfRenderedParent:s?i:this.parent.callee===this,renderedParentType:s||this.parent.type}):a.render(e,t)):ks(a,e,o,h)}},SpreadElement:cn,SwitchCase:dn,SwitchStatement:class extends Fs{createScope(e){this.scope=new Vi(e)}hasEffects(e){if(this.discriminant.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s}}=e;let i=1/0;e.ignore.breaks=!0;for(const s of this.cases){if(s.hasEffects(e))return!0;i=e.brokenFlow<i?e.brokenFlow:i,e.brokenFlow=t}return null!==this.defaultCase&&1!==i&&(e.brokenFlow=i),e.ignore.breaks=s,!1}include(e,t){this.included=!0,this.discriminant.include(e,t);const{brokenFlow:s}=e;let i=1/0,n=t||null!==this.defaultCase&&this.defaultCase<this.cases.length-1;for(let r=this.cases.length-1;r>=0;r--){const a=this.cases[r];if(a.included&&(n=!0),!n){const e=Ps();e.ignore.breaks=!0,n=a.hasEffects(e)}n?(a.include(e,t),i=i<e.brokenFlow?i:e.brokenFlow,e.brokenFlow=s):i=s}n&&null!==this.defaultCase&&1!==i&&(e.brokenFlow=i)}initialise(){for(let e=0;e<this.cases.length;e++)if(null===this.cases[e].test)return void(this.defaultCase=e);this.defaultCase=null}render(e,t){this.discriminant.render(e,t),this.cases.length>0&&$s(this.cases,e,this.cases[0].start,this.end-1,t)}},TaggedTemplateExpression:class extends Fs{bind(){if(super.bind(),"Identifier"===this.tag.type){const e=this.tag.name;this.scope.findVariable(e).isNamespace&&this.context.warn({code:"CANNOT_CALL_NAMESPACE",message:`Cannot call a namespace ('${e}')`},this.start),"eval"===e&&this.context.warn({code:"EVAL",message:"Use of eval is strongly discouraged, as it poses security risks and may cause issues with minification",url:"https://rollupjs.org/guide/en/#avoiding-eval"},this.start)}}hasEffects(e){return super.hasEffects(e)||this.tag.hasEffectsWhenCalledAtPath(Je,this.callOptions,e)}initialise(){this.callOptions={args:Ye,withNew:!1}}},TemplateElement:class extends Fs{hasEffects(){return!1}},TemplateLiteral:pn,ThisExpression:class extends Fs{bind(){super.bind(),this.variable=this.scope.findVariable("this")}hasEffectsWhenAccessedAtPath(e,t){return e.length>0&&this.variable.hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){return this.variable.hasEffectsWhenAssignedAtPath(e,t)}initialise(){this.alias=this.scope.findLexicalBoundary()instanceof fn?this.context.moduleContext:null,"undefined"===this.alias&&this.context.warn({code:"THIS_IS_UNDEFINED",message:"The 'this' keyword is equivalent to 'undefined' at the top level of an ES module, and has been rewritten",url:"https://rollupjs.org/guide/en/#error-this-is-undefined"},this.start)}render(e){null!==this.alias&&e.overwrite(this.start,this.end,this.alias,{contentOnly:!1,storeName:!0})}},ThrowStatement:class extends Fs{hasEffects(){return!0}include(e,t){this.included=!0,this.argument.include(e,t),e.brokenFlow=2}render(e,t){this.argument.render(e,t,{preventASI:!0}),this.argument.start===this.start+5&&e.prependLeft(this.start+5," ")}},TryStatement:class extends Fs{constructor(){super(...arguments),this.directlyIncluded=!1}hasEffects(e){return(this.context.tryCatchDeoptimization?this.block.body.length>0:this.block.hasEffects(e))||null!==this.finalizer&&this.finalizer.hasEffects(e)}include(e,t){const{brokenFlow:s}=e;this.directlyIncluded&&this.context.tryCatchDeoptimization||(this.included=!0,this.directlyIncluded=!0,this.block.include(e,this.context.tryCatchDeoptimization?"variables":t),e.brokenFlow=s),null!==this.handler&&(this.handler.include(e,t),e.brokenFlow=s),null!==this.finalizer&&this.finalizer.include(e,t)}},UnaryExpression:class extends Fs{bind(){super.bind(),"delete"===this.operator&&this.argument.deoptimizePath(Je)}getLiteralValueAtPath(e,t,s){if(e.length>0)return nt;const i=this.argument.getLiteralValueAtPath(Je,t,s);return i===nt?nt:mn[this.operator](i)}hasEffects(e){return!("typeof"===this.operator&&this.argument instanceof Xs)&&(this.argument.hasEffects(e)||"delete"===this.operator&&this.argument.hasEffectsWhenAssignedAtPath(Je,e))}hasEffectsWhenAccessedAtPath(e){return"void"===this.operator?e.length>0:e.length>1}},UnknownNode:class extends Fs{hasEffects(){return!0}include(e){super.include(e,!0)}},UpdateExpression:class extends Fs{bind(){super.bind(),this.argument.deoptimizePath(Je),this.argument instanceof Xs&&(this.scope.findVariable(this.argument.name).isReassigned=!0)}hasEffects(e){return this.argument.hasEffects(e)||this.argument.hasEffectsWhenAssignedAtPath(Je,e)}hasEffectsWhenAccessedAtPath(e){return e.length>1}render(e,t){this.argument.render(e,t);const s=this.argument.variable;if("system"===t.format&&s&&s.exportName){const t=s.getName();if(this.prefix)e.overwrite(this.start,this.end,`exports('${s.exportName}', ${this.operator}${t})`);else{let i;switch(this.operator){case"++":i=`${t} + 1`;break;case"--":i=`${t} - 1`}e.overwrite(this.start,this.end,`(exports('${s.exportName}', ${i}), ${t}${this.operator})`)}}}},VariableDeclaration:xn,VariableDeclarator:class extends Fs{declareDeclarator(e){this.id.declare(e,this.init||at)}deoptimizePath(e){this.id.deoptimizePath(e)}render(e,t){null===this.init||this.init.included?super.render(e,t):(e.remove(this.id.end,this.end),this.id.render(e,t))}},WhileStatement:class extends Fs{hasEffects(e){if(this.test.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s,continues:i}}=e;return e.ignore.breaks=!0,e.ignore.continues=!0,!!this.body.hasEffects(e)||(e.ignore.breaks=s,e.ignore.continues=i,e.brokenFlow=t,!1)}include(e,t){this.included=!0,this.test.include(e,t);const{brokenFlow:s}=e;this.body.include(e,t),e.brokenFlow=s}},YieldExpression:class extends Fs{bind(){super.bind(),null!==this.argument&&this.argument.deoptimizePath(Ze)}hasEffects(e){return!e.ignore.returnAwaitYield||null!==this.argument&&this.argument.hasEffects(e)}render(e,t){this.argument&&(this.argument.render(e,t),this.argument.start===this.start+5&&e.prependLeft(this.start+5," "))}}};class En extends $t{constructor(e,t,s){super(t),this.context=e,this.module=e.module,this.defaultVariable=s,this.setRenderNames(s.getName(),t)}include(e){this.included||(this.included=!0,this.context.includeVariable(e,this.defaultVariable))}}function bn(e,t,s){s(e,t)}function vn(e,t,s){}var Sn={};function An(e,t,s=e.type){let i=t.commentNodes[t.commentIndex];for(;i&&e.start>=i.end;)Cn(e,i),i=t.commentNodes[++t.commentIndex];i&&i.end<=e.end&&Sn[s](e,t,An)}function Cn(e,t){e.annotations?e.annotations.push(t):e.annotations=[t],"ExpressionStatement"===e.type&&(e=e.expression),"CallExpression"!==e.type&&"NewExpression"!==e.type||(e.annotatedPure=!0)}Sn.Program=Sn.BlockStatement=function(e,t,s){for(var i=0,n=e.body;i<n.length;i+=1)s(n[i],t,"Statement")},Sn.Statement=bn,Sn.EmptyStatement=vn,Sn.ExpressionStatement=Sn.ParenthesizedExpression=function(e,t,s){return s(e.expression,t,"Expression")},Sn.IfStatement=function(e,t,s){s(e.test,t,"Expression"),s(e.consequent,t,"Statement"),e.alternate&&s(e.alternate,t,"Statement")},Sn.LabeledStatement=function(e,t,s){return s(e.body,t,"Statement")},Sn.BreakStatement=Sn.ContinueStatement=vn,Sn.WithStatement=function(e,t,s){s(e.object,t,"Expression"),s(e.body,t,"Statement")},Sn.SwitchStatement=function(e,t,s){s(e.discriminant,t,"Expression");for(var i=0,n=e.cases;i<n.length;i+=1){var r=n[i];r.test&&s(r.test,t,"Expression");for(var a=0,o=r.consequent;a<o.length;a+=1)s(o[a],t,"Statement")}},Sn.SwitchCase=function(e,t,s){e.test&&s(e.test,t,"Expression");for(var i=0,n=e.consequent;i<n.length;i+=1)s(n[i],t,"Statement")},Sn.ReturnStatement=Sn.YieldExpression=Sn.AwaitExpression=function(e,t,s){e.argument&&s(e.argument,t,"Expression")},Sn.ThrowStatement=Sn.SpreadElement=function(e,t,s){return s(e.argument,t,"Expression")},Sn.TryStatement=function(e,t,s){s(e.block,t,"Statement"),e.handler&&s(e.handler,t),e.finalizer&&s(e.finalizer,t,"Statement")},Sn.CatchClause=function(e,t,s){e.param&&s(e.param,t,"Pattern"),s(e.body,t,"Statement")},Sn.WhileStatement=Sn.DoWhileStatement=function(e,t,s){s(e.test,t,"Expression"),s(e.body,t,"Statement")},Sn.ForStatement=function(e,t,s){e.init&&s(e.init,t,"ForInit"),e.test&&s(e.test,t,"Expression"),e.update&&s(e.update,t,"Expression"),s(e.body,t,"Statement")},Sn.ForInStatement=Sn.ForOfStatement=function(e,t,s){s(e.left,t,"ForInit"),s(e.right,t,"Expression"),s(e.body,t,"Statement")},Sn.ForInit=function(e,t,s){"VariableDeclaration"===e.type?s(e,t):s(e,t,"Expression")},Sn.DebuggerStatement=vn,Sn.FunctionDeclaration=function(e,t,s){return s(e,t,"Function")},Sn.VariableDeclaration=function(e,t,s){for(var i=0,n=e.declarations;i<n.length;i+=1)s(n[i],t)},Sn.VariableDeclarator=function(e,t,s){s(e.id,t,"Pattern"),e.init&&s(e.init,t,"Expression")},Sn.Function=function(e,t,s){e.id&&s(e.id,t,"Pattern");for(var i=0,n=e.params;i<n.length;i+=1)s(n[i],t,"Pattern");s(e.body,t,e.expression?"Expression":"Statement")},Sn.Pattern=function(e,t,s){"Identifier"===e.type?s(e,t,"VariablePattern"):"MemberExpression"===e.type?s(e,t,"MemberPattern"):s(e,t)},Sn.VariablePattern=vn,Sn.MemberPattern=bn,Sn.RestElement=function(e,t,s){return s(e.argument,t,"Pattern")},Sn.ArrayPattern=function(e,t,s){for(var i=0,n=e.elements;i<n.length;i+=1){var r=n[i];r&&s(r,t,"Pattern")}},Sn.ObjectPattern=function(e,t,s){for(var i=0,n=e.properties;i<n.length;i+=1){var r=n[i];"Property"===r.type?(r.computed&&s(r.key,t,"Expression"),s(r.value,t,"Pattern")):"RestElement"===r.type&&s(r.argument,t,"Pattern")}},Sn.Expression=bn,Sn.ThisExpression=Sn.Super=Sn.MetaProperty=vn,Sn.ArrayExpression=function(e,t,s){for(var i=0,n=e.elements;i<n.length;i+=1){var r=n[i];r&&s(r,t,"Expression")}},Sn.ObjectExpression=function(e,t,s){for(var i=0,n=e.properties;i<n.length;i+=1)s(n[i],t)},Sn.FunctionExpression=Sn.ArrowFunctionExpression=Sn.FunctionDeclaration,Sn.SequenceExpression=function(e,t,s){for(var i=0,n=e.expressions;i<n.length;i+=1)s(n[i],t,"Expression")},Sn.TemplateLiteral=function(e,t,s){for(var i=0,n=e.quasis;i<n.length;i+=1)s(n[i],t);for(var r=0,a=e.expressions;r<a.length;r+=1)s(a[r],t,"Expression")},Sn.TemplateElement=vn,Sn.UnaryExpression=Sn.UpdateExpression=function(e,t,s){s(e.argument,t,"Expression")},Sn.BinaryExpression=Sn.LogicalExpression=function(e,t,s){s(e.left,t,"Expression"),s(e.right,t,"Expression")},Sn.AssignmentExpression=Sn.AssignmentPattern=function(e,t,s){s(e.left,t,"Pattern"),s(e.right,t,"Expression")},Sn.ConditionalExpression=function(e,t,s){s(e.test,t,"Expression"),s(e.consequent,t,"Expression"),s(e.alternate,t,"Expression")},Sn.NewExpression=Sn.CallExpression=function(e,t,s){if(s(e.callee,t,"Expression"),e.arguments)for(var i=0,n=e.arguments;i<n.length;i+=1)s(n[i],t,"Expression")},Sn.MemberExpression=function(e,t,s){s(e.object,t,"Expression"),e.computed&&s(e.property,t,"Expression")},Sn.ExportNamedDeclaration=Sn.ExportDefaultDeclaration=function(e,t,s){e.declaration&&s(e.declaration,t,"ExportNamedDeclaration"===e.type||e.declaration.id?"Statement":"Expression"),e.source&&s(e.source,t,"Expression")},Sn.ExportAllDeclaration=function(e,t,s){s(e.source,t,"Expression")},Sn.ImportDeclaration=function(e,t,s){for(var i=0,n=e.specifiers;i<n.length;i+=1)s(n[i],t);s(e.source,t,"Expression")},Sn.ImportExpression=function(e,t,s){s(e.source,t,"Expression")},Sn.ImportSpecifier=Sn.ImportDefaultSpecifier=Sn.ImportNamespaceSpecifier=Sn.Identifier=Sn.Literal=vn,Sn.TaggedTemplateExpression=function(e,t,s){s(e.tag,t,"Expression"),s(e.quasi,t,"Expression")},Sn.ClassDeclaration=Sn.ClassExpression=function(e,t,s){return s(e,t,"Class")},Sn.Class=function(e,t,s){e.id&&s(e.id,t,"Pattern"),e.superClass&&s(e.superClass,t,"Expression"),s(e.body,t)},Sn.ClassBody=function(e,t,s){for(var i=0,n=e.body;i<n.length;i+=1)s(n[i],t)},Sn.MethodDefinition=Sn.Property=function(e,t,s){e.computed&&s(e.key,t,"Expression"),s(e.value,t,"Expression")};const Pn=/[@#]__PURE__/,kn=e=>Pn.test(e.text);let wn="sourceMa";wn+="ppingURL";const Nn=new RegExp("^#\\s+sourceMappingURL=.+\\n?"),_n=()=>{};let In=()=>[0,0],$n=()=>0,Tn=()=>0,Rn={};function Ln(e,t){switch(t){case 1:return`# ${e}`;case 2:return`## ${e}`;case 3:return e;default:return`${"  ".repeat(t-4)}- ${e}`}}function Mn(e,t=3){e=Ln(e,t),Rn.hasOwnProperty(e)||(Rn[e]={memory:0,startMemory:void 0,startTime:void 0,time:0,totalMemory:0});const s=Tn();Rn[e].startTime=In(),Rn[e].startMemory=s}function Dn(e,t=3){if(e=Ln(e,t),Rn.hasOwnProperty(e)){const t=Tn();Rn[e].time+=$n(Rn[e].startTime),Rn[e].totalMemory=Math.max(Rn[e].totalMemory,t),Rn[e].memory+=t-Rn[e].startMemory}}function On(){const e={};for(const t of Object.keys(Rn))e[t]=[Rn[t].time,Rn[t].memory,Rn[t].totalMemory];return e}let Vn=_n,Bn=_n;const Fn={load:!0,resolveDynamicImport:!0,resolveId:!0,transform:!0};function Wn(e,t){const s={};for(const i of Object.keys(e))if(!0===Fn[i]){let n=`plugin ${t}`;e.name&&(n+=` (${e.name})`),n+=` - ${i}`,s[i]=function(){Vn(n,4);const t=e[i].apply(this===s?e:this,arguments);return Bn(n,4),t&&"function"==typeof t.then&&(Vn(`${n} (async)`,4),t.then(()=>Bn(`${n} (async)`,4))),t}}else s[i]=e[i];return s}function Un(e){e.perf?(Rn={},"undefined"!=typeof process&&"function"==typeof process.hrtime?(In=process.hrtime.bind(process),$n=e=>{return 1e3*(t=process.hrtime(e))[0]+t[1]/1e6;var t}):"undefined"!=typeof performance&&"function"==typeof performance.now&&(In=()=>[performance.now(),0],$n=e=>performance.now()-e[0]),"undefined"!=typeof process&&"function"==typeof process.memoryUsage&&(Tn=()=>process.memoryUsage().heapUsed),Vn=Mn,Bn=Dn,e.plugins=e.plugins.map(Wn)):(Vn=_n,Bn=_n)}const zn={ecmaVersion:2020,preserveParens:!1,sourceType:"module"};function jn(e,t,s,i){return t.error({code:"MISSING_EXPORT",message:`'${e}' is not exported by ${xi(s)}, imported by ${xi(t.id)}`,url:"https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module"},i)}const Gn={identifier:null,localName:"_missingExportShim"};function Hn(e,t,s,i=new Map){const n=i.get(t);if(n){if(n.has(e))return null;n.add(e)}else i.set(t,new Set([e]));return e.getVariableForExportName(t,s,i)}class qn{constructor(e,t,s,i,n){this.chunk=null,this.chunkFileNames=new Set,this.chunkName=null,this.comments=[],this.dependencies=new Set,this.dynamicallyImportedBy=[],this.dynamicDependencies=new Set,this.dynamicImports=[],this.execIndex=1/0,this.exportAllSources=new Set,this.exports=Object.create(null),this.exportsAll=Object.create(null),this.facadeChunk=null,this.importDescriptions=Object.create(null),this.importMetas=[],this.imports=new Set,this.isExecuted=!1,this.isUserDefinedEntryPoint=!1,this.manualChunkAlias=null,this.reexportDescriptions=Object.create(null),this.sources=new Set,this.userChunkNames=new Set,this.usesTopLevelAwait=!1,this.allExportNames=null,this.defaultExport=null,this.exportAllModules=[],this.exportShimVariable=new si(this),this.namespaceVariable=null,this.relevantDependencies=null,this.syntheticExports=new Map,this.transformDependencies=[],this.transitiveReexports=null,this.id=t,this.graph=e,this.excludeFromSourcemap=/\0/.test(t),this.context=e.getModuleContext(t),this.moduleSideEffects=s,this.syntheticNamedExports=i,this.isEntryPoint=n}basename(){const e=qt(this.id),t=Xt(this.id);return Wt(t?e.slice(0,-t.length):e)}bindReferences(){this.ast.bind()}error(e,t){if("number"==typeof t){e.pos=t;let s=Vs(this.code,t,{offsetLine:1});try{s=function(e,t){const s=e.filter(e=>e.mappings);for(;s.length>0;){const e=s.pop(),i=e.mappings[t.line-1];let n=!1;if(void 0!==i)for(const s of i)if(s[0]>=t.column){if(1===s.length)break;t={column:s[3],line:s[2]+1,name:5===s.length?e.names[s[4]]:void 0,source:e.sources[s[1]]},n=!0;break}if(!n)throw new Error("Can't resolve original location of error.")}return t}(this.sourcemapChain,s)}catch(e){this.warn({code:"SOURCEMAP_ERROR",loc:{column:s.column,file:this.id,line:s.line},message:`Error when using sourcemap for reporting an error: ${e.message}`,pos:t})}e.loc={column:s.column,file:this.id,line:s.line},e.frame=fi(this.originalCode,s.line,s.column)}return Ei(e)}getAllExportNames(){if(this.allExportNames)return this.allExportNames;const e=this.allExportNames=new Set;for(const t of Object.keys(this.exports))e.add(t);for(const t of Object.keys(this.reexportDescriptions))e.add(t);for(const t of this.exportAllModules)if(t instanceof Jt)e.add(`*${t.id}`);else for(const s of t.getAllExportNames())"default"!==s&&e.add(s);return e}getDefaultExport(){return null===this.defaultExport&&(this.defaultExport=void 0,this.defaultExport=this.getVariableForExportName("default")),this.defaultExport?this.defaultExport:Ei({code:vi.SYNTHETIC_NAMED_EXPORTS_NEED_DEFAULT,id:this.id,message:"Modules with 'syntheticNamedExports' need a default export."})}getDependenciesToBeIncluded(){if(this.relevantDependencies)return this.relevantDependencies;const e=new Set;for(const t of this.imports)e.add(t.module);if(this.isEntryPoint||this.dynamicallyImportedBy.length>0||this.graph.preserveModules)for(const t of[...this.getReexports(),...this.getExports()])e.add(this.getVariableForExportName(t).module);if(this.graph.treeshakingOptions){const t=new Set(this.dependencies);for(const s of t)if(s.moduleSideEffects&&!e.has(s))if(s instanceof Jt||s.ast.included&&s.ast.hasEffects(Ps()))e.add(s);else for(const e of s.dependencies)t.add(e)}else for(const t of this.dependencies)e.add(t);return this.relevantDependencies=e}getDynamicImportExpressions(){return this.dynamicImports.map(({node:e})=>{const t=e.source;return t instanceof pn&&1===t.quasis.length&&t.quasis[0].value.cooked?t.quasis[0].value.cooked:t instanceof ji&&"string"==typeof t.value?t.value:t})}getExportNamesByVariable(){const e=new Map;for(const t of this.getAllExportNames()){const s=this.getVariableForExportName(t);if(!s||!(s.included||s instanceof Mt))continue;const i=e.get(s);i?i.push(t):e.set(s,[t])}return e}getExports(){return Object.keys(this.exports)}getOrCreateNamespace(){return this.namespaceVariable||(this.namespaceVariable=new ii(this.astContext,this.syntheticNamedExports),this.namespaceVariable.initialise()),this.namespaceVariable}getReexports(){if(this.transitiveReexports)return this.transitiveReexports;this.transitiveReexports=[];const e=new Set;for(const t in this.reexportDescriptions)e.add(t);for(const t of this.exportAllModules)if(t instanceof Jt)e.add(`*${t.id}`);else for(const s of[...t.getReexports(),...t.getExports()])"default"!==s&&e.add(s);return this.transitiveReexports=Array.from(e)}getRenderedExports(){const e=[],t=[];for(const s in this.exports){const i=this.getVariableForExportName(s);(i&&i.included?e:t).push(s)}return{renderedExports:e,removedExports:t}}getVariableForExportName(e,t,s){if("*"===e[0])return 1===e.length?this.getOrCreateNamespace():this.graph.moduleById.get(e.slice(1)).getVariableForExportName("*");const i=this.reexportDescriptions[e];if(i){const e=Hn(i.module,i.localName,!1,s);return e||jn(i.localName,this,i.module.id,i.start)}const n=this.exports[e];if(n){if(n===Gn)return this.exportShimVariable;const e=n.localName;return this.traceVariable(e)||this.graph.scope.findVariable(e)}if("default"!==e)for(const t of this.exportAllModules){const i=Hn(t,e,!0,s);if(i)return i}if(!t){if(this.syntheticNamedExports){let t=this.syntheticExports.get(e);if(!t){const s=this.getDefaultExport();return t=new En(this.astContext,e,s),this.syntheticExports.set(e,t),t}return t}if(this.graph.shimMissingExports)return this.shimMissingExport(e),this.exportShimVariable}return null}include(){const e=Cs();this.ast.shouldBeIncluded(e)&&this.ast.include(e,!1)}includeAllExports(){this.isExecuted||(this.graph.needsTreeshakingPass=!0,Zt(this));const e=Cs();for(const t of this.getExports()){const s=this.getVariableForExportName(t);s.deoptimizePath(Ze),s.included||(s.include(e),this.graph.needsTreeshakingPass=!0)}for(const t of this.getReexports()){const s=this.getVariableForExportName(t);s.deoptimizePath(Ze),s.included||(s.include(e),this.graph.needsTreeshakingPass=!0),s instanceof Mt&&(s.module.reexported=!0)}}includeAllInBundle(){this.ast.include(Cs(),!0)}isIncluded(){return this.ast.included||this.namespaceVariable&&this.namespaceVariable.included}linkDependencies(){for(const e of this.sources)this.dependencies.add(this.graph.moduleById.get(this.resolvedIds[e].id));for(const{resolution:e}of this.dynamicImports)(e instanceof qn||e instanceof Jt)&&this.dynamicDependencies.add(e);this.addModulesToImportDescriptions(this.importDescriptions),this.addModulesToImportDescriptions(this.reexportDescriptions);const e=[];for(const t of this.exportAllSources){const s=this.graph.moduleById.get(this.resolvedIds[t].id);(s instanceof Jt?e:this.exportAllModules).push(s)}this.exportAllModules=[...this.exportAllModules,...e]}render(e){const t=this.magicString.clone();return this.ast.render(t,e),this.usesTopLevelAwait=this.astContext.usesTopLevelAwait,t}setSource({alwaysRemovedCode:e,ast:t,code:s,customTransformCache:i,moduleSideEffects:n,originalCode:r,originalSourcemap:a,resolvedIds:o,sourcemapChain:h,syntheticNamedExports:l,transformDependencies:c,transformFiles:u}){if(this.code=s,this.originalCode=r,this.originalSourcemap=a,this.sourcemapChain=h,u&&(this.transformFiles=u),this.transformDependencies=c,this.customTransformCache=i,"boolean"==typeof n&&(this.moduleSideEffects=n),"boolean"==typeof l&&(this.syntheticNamedExports=l),Vn("generate ast",3),this.alwaysRemovedCode=e||[],t)this.esTreeAst=t;else{this.esTreeAst=function(e,t,s){try{return t.parse(e.code,{...zn,...s,onComment:(t,s,i,n)=>e.comments.push({block:t,text:s,start:i,end:n})})}catch(t){let s=t.message.replace(/ \(\d+:\d+\)$/,"");return e.id.endsWith(".json")?s+=" (Note that you need @rollup/plugin-json to import JSON files)":e.id.endsWith(".js")||(s+=" (Note that you need plugins to import files that are not JavaScript)"),e.error({code:"PARSE_ERROR",message:s,parserError:t},t.pos)}}(this,this.graph.acornParser,this.graph.acornOptions);for(const e of this.comments)!e.block&&Nn.test(e.text)&&this.alwaysRemovedCode.push([e.start,e.end]);d=this.comments,An(this.esTreeAst,{commentIndex:0,commentNodes:d.filter(kn)})}var d;Bn("generate ast",3),this.resolvedIds=o||Object.create(null);const p=this.id;this.magicString=new bs(s,{filename:this.excludeFromSourcemap?null:p,indentExclusionRanges:[]});for(const[e,t]of this.alwaysRemovedCode)this.magicString.remove(e,t);Vn("analyse ast",3),this.astContext={addDynamicImport:this.addDynamicImport.bind(this),addExport:this.addExport.bind(this),addImport:this.addImport.bind(this),addImportMeta:this.addImportMeta.bind(this),annotations:this.graph.treeshakingOptions&&this.graph.treeshakingOptions.annotations,code:s,deoptimizationTracker:this.graph.deoptimizationTracker,error:this.error.bind(this),fileName:p,getExports:this.getExports.bind(this),getModuleExecIndex:()=>this.execIndex,getModuleName:this.basename.bind(this),getReexports:this.getReexports.bind(this),importDescriptions:this.importDescriptions,includeAndGetReexportedExternalNamespaces:this.includeAndGetReexportedExternalNamespaces.bind(this),includeDynamicImport:this.includeDynamicImport.bind(this),includeVariable:this.includeVariable.bind(this),magicString:this.magicString,module:this,moduleContext:this.context,nodeConstructors:yn,preserveModules:this.graph.preserveModules,propertyReadSideEffects:!this.graph.treeshakingOptions||this.graph.treeshakingOptions.propertyReadSideEffects,traceExport:this.getVariableForExportName.bind(this),traceVariable:this.traceVariable.bind(this),treeshake:!!this.graph.treeshakingOptions,tryCatchDeoptimization:!this.graph.treeshakingOptions||this.graph.treeshakingOptions.tryCatchDeoptimization,unknownGlobalSideEffects:!this.graph.treeshakingOptions||this.graph.treeshakingOptions.unknownGlobalSideEffects,usesTopLevelAwait:!1,warn:this.warn.bind(this),warnDeprecation:this.graph.warnDeprecation.bind(this.graph)},this.scope=new fn(this.graph.scope,this.astContext),this.ast=new un(this.esTreeAst,{type:"Module",context:this.astContext},this.scope),Bn("analyse ast",3)}toJSON(){return{alwaysRemovedCode:this.alwaysRemovedCode,ast:this.esTreeAst,code:this.code,customTransformCache:this.customTransformCache,dependencies:Array.from(this.dependencies).map(e=>e.id),id:this.id,moduleSideEffects:this.moduleSideEffects,originalCode:this.originalCode,originalSourcemap:this.originalSourcemap,resolvedIds:this.resolvedIds,sourcemapChain:this.sourcemapChain,syntheticNamedExports:this.syntheticNamedExports,transformDependencies:this.transformDependencies,transformFiles:this.transformFiles}}traceVariable(e){const t=this.scope.variables.get(e);if(t)return t;if(e in this.importDescriptions){const t=this.importDescriptions[e],s=t.module;if(s instanceof qn&&"*"===t.name)return s.getOrCreateNamespace();const i=s.getVariableForExportName(t.name);return i||jn(t.name,this,s.id,t.start)}return null}warn(e,t){if("number"==typeof t){e.pos=t;const{line:s,column:i}=Vs(this.code,t,{offsetLine:1});e.loc={file:this.id,line:s,column:i},e.frame=fi(this.code,s,i)}e.id=this.id,this.graph.warn(e)}addDynamicImport(e){this.dynamicImports.push({node:e,resolution:null})}addExport(e){if(e instanceof ei)this.exports.default={identifier:e.variable.getAssignedVariableName(),localName:"default"};else if(e instanceof Oi){const t=e.source.value;this.sources.add(t),this.exportAllSources.add(t)}else if(e.source instanceof ji){const t=e.source.value;this.sources.add(t);for(const s of e.specifiers){const e=s.exported.name;this.reexportDescriptions[e]={localName:"ExportNamespaceSpecifier"===s.type?"*":s.local.name,module:null,source:t,start:s.start}}}else if(e.declaration){const t=e.declaration;if(t instanceof xn)for(const e of t.declarations)for(const t of Di(e.id))this.exports[t]={identifier:null,localName:t};else{const e=t.id.name;this.exports[e]={identifier:null,localName:e}}}else for(const t of e.specifiers){const e=t.local.name,s=t.exported.name;this.exports[s]={identifier:null,localName:e}}}addImport(e){const t=e.source.value;this.sources.add(t);for(const s of e.specifiers){const e="ImportDefaultSpecifier"===s.type,i="ImportNamespaceSpecifier"===s.type,n=e?"default":i?"*":s.imported.name;this.importDescriptions[s.local.name]={module:null,name:n,source:t,start:s.start}}}addImportMeta(e){this.importMetas.push(e)}addModulesToImportDescriptions(e){for(const t of Object.keys(e)){const s=e[t],i=this.resolvedIds[s.source].id;s.module=this.graph.moduleById.get(i)}}includeAndGetReexportedExternalNamespaces(){const e=[];for(const t of this.exportAllModules)if(t instanceof Jt){const s=t.getVariableForExportName("*");s.include(),this.imports.add(s),e.push(s)}return e}includeDynamicImport(e){const t=this.dynamicImports.find(t=>t.node===e).resolution;t instanceof qn&&(t.dynamicallyImportedBy.push(this),t.includeAllExports())}includeVariable(e,t){const s=t.module;t.included||(t.include(e),this.graph.needsTreeshakingPass=!0),s&&s!==this&&this.imports.add(t)}shimMissingExport(e){this.graph.warn({code:"SHIMMED_EXPORT",exporter:xi(this.id),exportName:e,message:`Missing export "${e}" has been shimmed in module ${xi(this.id)}.`}),this.exports[e]=Gn}}class Kn{constructor(e,t){this.isOriginal=!0,this.filename=e,this.content=t}traceSegment(e,t,s){return{line:e,column:t,name:s,source:this}}}class Xn{constructor(e,t){this.sources=t,this.names=e.names,this.mappings=e.mappings}traceMappings(){const e=[],t=[],s=[],i=[];for(const n of this.mappings){const r=[];for(const i of n){if(1==i.length)continue;const n=this.sources[i[1]];if(!n)continue;const a=n.traceSegment(i[2],i[3],5===i.length?this.names[i[4]]:"");if(a){let n=e.lastIndexOf(a.source.filename);if(-1===n)n=e.length,e.push(a.source.filename),t[n]=a.source.content;else if(null==t[n])t[n]=a.source.content;else if(null!=a.source.content&&t[n]!==a.source.content)return Ei({message:`Multiple conflicting contents for sourcemap source ${a.source.filename}`});const o=[i[0],n,a.line,a.column];if(a.name){let e=s.indexOf(a.name);-1===e&&(e=s.length,s.push(a.name)),o[4]=e}r.push(o)}}i.push(r)}return{sources:e,sourcesContent:t,names:s,mappings:i}}traceSegment(e,t,s){const i=this.mappings[e];if(!i)return null;let n=0,r=i.length-1;for(;n<=r;){const e=n+r>>1,a=i[e];if(a[0]===t){if(1==a.length)return null;const e=this.sources[a[1]];return e?e.traceSegment(a[2],a[3],5===a.length?this.names[a[4]]:s):null}a[0]>t?r=e-1:n=e+1}return null}}function Yn(e){return function(t,s){return s.mappings?new Xn(s,[t]):(e.warn({code:"SOURCEMAP_BROKEN",message:`Sourcemap is likely to be incorrect: a plugin (${s.plugin}) was used to transform `+"files, but didn't generate a sourcemap for the transformation. Consult the plugin documentation for help",plugin:s.plugin,url:"https://rollupjs.org/guide/en/#warning-sourcemap-is-likely-to-be-incorrect"}),new Xn({mappings:[],names:[]},[t]))}}function Qn(e,t,s,i,n){let r;if(s){const t=s.sources,i=s.sourcesContent||[],n=Kt(e)||".",a=s.sourceRoot||".",o=t.map((e,t)=>new Kn(Qt(n,a,e),i[t]));r=new Xn(s,o)}else r=new Kn(e,t);return i.reduce(n,r)}var Jn=Zn;function Zn(e,t){if(!e)throw new Error(t||"Assertion failed")}function er(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function tr(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function sr(e){return 1===e.length?"0"+e:e}function ir(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}Zn.equal=function(e,t,s){if(e!=t)throw new Error(s||"Assertion failed: "+e+" != "+t)};var nr={inherits:function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var s=function(){};s.prototype=t.prototype,e.prototype=new s,e.prototype.constructor=e}}})),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var s=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)s.push(parseInt(e[n]+e[n+1],16))}else for(var i=0,n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?s[i++]=r:r<2048?(s[i++]=r>>6|192,s[i++]=63&r|128):er(e,n)?(r=65536+((1023&r)<<10)+(1023&e.charCodeAt(++n)),s[i++]=r>>18|240,s[i++]=r>>12&63|128,s[i++]=r>>6&63|128,s[i++]=63&r|128):(s[i++]=r>>12|224,s[i++]=r>>6&63|128,s[i++]=63&r|128)}else for(n=0;n<e.length;n++)s[n]=0|e[n];return s},toHex:function(e){for(var t="",s=0;s<e.length;s++)t+=sr(e[s].toString(16));return t},htonl:tr,toHex32:function(e,t){for(var s="",i=0;i<e.length;i++){var n=e[i];"little"===t&&(n=tr(n)),s+=ir(n.toString(16))}return s},zero2:sr,zero8:ir,join32:function(e,t,s,i){var n=s-t;Jn(n%4==0);for(var r=new Array(n/4),a=0,o=t;a<r.length;a++,o+=4){var h;h="big"===i?e[o]<<24|e[o+1]<<16|e[o+2]<<8|e[o+3]:e[o+3]<<24|e[o+2]<<16|e[o+1]<<8|e[o],r[a]=h>>>0}return r},split32:function(e,t){for(var s=new Array(4*e.length),i=0,n=0;i<e.length;i++,n+=4){var r=e[i];"big"===t?(s[n]=r>>>24,s[n+1]=r>>>16&255,s[n+2]=r>>>8&255,s[n+3]=255&r):(s[n+3]=r>>>24,s[n+2]=r>>>16&255,s[n+1]=r>>>8&255,s[n]=255&r)}return s},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,s){return e+t+s>>>0},sum32_4:function(e,t,s,i){return e+t+s+i>>>0},sum32_5:function(e,t,s,i,n){return e+t+s+i+n>>>0},sum64:function(e,t,s,i){var n=e[t],r=i+e[t+1]>>>0,a=(r<i?1:0)+s+n;e[t]=a>>>0,e[t+1]=r},sum64_hi:function(e,t,s,i){return(t+i>>>0<t?1:0)+e+s>>>0},sum64_lo:function(e,t,s,i){return t+i>>>0},sum64_4_hi:function(e,t,s,i,n,r,a,o){var h=0,l=t;return h+=(l=l+i>>>0)<t?1:0,h+=(l=l+r>>>0)<r?1:0,e+s+n+a+(h+=(l=l+o>>>0)<o?1:0)>>>0},sum64_4_lo:function(e,t,s,i,n,r,a,o){return t+i+r+o>>>0},sum64_5_hi:function(e,t,s,i,n,r,a,o,h,l){var c=0,u=t;return c+=(u=u+i>>>0)<t?1:0,c+=(u=u+r>>>0)<r?1:0,c+=(u=u+o>>>0)<o?1:0,e+s+n+a+h+(c+=(u=u+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,s,i,n,r,a,o,h,l){return t+i+r+o+l>>>0},rotr64_hi:function(e,t,s){return(t<<32-s|e>>>s)>>>0},rotr64_lo:function(e,t,s){return(e<<32-s|t>>>s)>>>0},shr64_hi:function(e,t,s){return e>>>s},shr64_lo:function(e,t,s){return(e<<32-s|t>>>s)>>>0}};function rr(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var ar=rr;rr.prototype.update=function(e,t){if(e=nr.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var s=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-s,e.length),0===this.pending.length&&(this.pending=null),e=nr.join32(e,0,e.length-s,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},rr.prototype.digest=function(e){return this.update(this._pad()),Jn(null===this.pending),this._digest(e)},rr.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,s=t-(e+this.padLength)%t,i=new Array(s+this.padLength);i[0]=128;for(var n=1;n<s;n++)i[n]=0;if(e<<=3,"big"===this.endian){for(var r=8;r<this.padLength;r++)i[n++]=0;i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=e>>>24&255,i[n++]=e>>>16&255,i[n++]=e>>>8&255,i[n++]=255&e}else for(i[n++]=255&e,i[n++]=e>>>8&255,i[n++]=e>>>16&255,i[n++]=e>>>24&255,i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=0,r=8;r<this.padLength;r++)i[n++]=0;return i};var or={BlockHash:ar},hr=nr.rotr32;function lr(e,t,s){return e&t^~e&s}function cr(e,t,s){return e&t^e&s^t&s}function ur(e,t,s){return e^t^s}var dr={ft_1:function(e,t,s,i){return 0===e?lr(t,s,i):1===e||3===e?ur(t,s,i):2===e?cr(t,s,i):void 0},ch32:lr,maj32:cr,p32:ur,s0_256:function(e){return hr(e,2)^hr(e,13)^hr(e,22)},s1_256:function(e){return hr(e,6)^hr(e,11)^hr(e,25)},g0_256:function(e){return hr(e,7)^hr(e,18)^e>>>3},g1_256:function(e){return hr(e,17)^hr(e,19)^e>>>10}},pr=nr.sum32,fr=nr.sum32_4,mr=nr.sum32_5,gr=dr.ch32,xr=dr.maj32,yr=dr.s0_256,Er=dr.s1_256,br=dr.g0_256,vr=dr.g1_256,Sr=or.BlockHash,Ar=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Cr(){if(!(this instanceof Cr))return new Cr;Sr.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Ar,this.W=new Array(64)}nr.inherits(Cr,Sr);var Pr=Cr;Cr.blockSize=512,Cr.outSize=256,Cr.hmacStrength=192,Cr.padLength=64,Cr.prototype._update=function(e,t){for(var s=this.W,i=0;i<16;i++)s[i]=e[t+i];for(;i<s.length;i++)s[i]=fr(vr(s[i-2]),s[i-7],br(s[i-15]),s[i-16]);var n=this.h[0],r=this.h[1],a=this.h[2],o=this.h[3],h=this.h[4],l=this.h[5],c=this.h[6],u=this.h[7];for(Jn(this.k.length===s.length),i=0;i<s.length;i++){var d=mr(u,Er(h),gr(h,l,c),this.k[i],s[i]),p=pr(yr(n),xr(n,r,a));u=c,c=l,l=h,h=pr(o,d),o=a,a=r,r=n,n=pr(d,p)}this.h[0]=pr(this.h[0],n),this.h[1]=pr(this.h[1],r),this.h[2]=pr(this.h[2],a),this.h[3]=pr(this.h[3],o),this.h[4]=pr(this.h[4],h),this.h[5]=pr(this.h[5],l),this.h[6]=pr(this.h[6],c),this.h[7]=pr(this.h[7],u)},Cr.prototype._digest=function(e){return"hex"===e?nr.toHex32(this.h,"big"):nr.split32(this.h,"big")};const kr=()=>Pr(),wr={amd:Ir,cjs:Ir,es:function(e,t,s,i,n){if(n)for(const t of s)t.variableName=Ds(t.variableName,e);_r(e,t,0,i)},iife:Ir,system:_r,umd:Ir};function Nr(e,t,s,i,n,r,a){for(const t of e)t.scope.addUsedOutsideNames(i,n);!function(e,t){for(const s of t){for(const t of s.scope.variables.values())t.included&&!(t.renderBaseName||t instanceof ti&&t.getOriginalVariable()!==t)&&t.setRenderNames(null,Ds(t.name,e));const t=s.getOrCreateNamespace();t.included&&t.setRenderNames(null,Ds(t.name,e))}}(i,e),wr[n](i,s,t,r,a);for(const t of e)t.scope.deconflict(n)}function _r(e,t,s,i){for(const s of t){const t=s.module,n=s.name;let r;r=t instanceof Jt&&("*"===n||"default"===n)?"default"===n&&i&&t.exportsNamespace?t.variableName+"__default":t.variableName:n,s.setRenderNames(null,Ds(r,e))}}function Ir(e,t,s,i,n){for(const t of s)t.variableName=Ds(t.variableName,e);for(const e of t){const t=e.module;if(t instanceof Jt){const s=e.name;"default"===s&&i&&(t.exportsNamespace||t.exportsNames)?e.setRenderNames(null,t.variableName+"__default"):"*"===s||"default"===s?e.setRenderNames(null,t.variableName):e.setRenderNames(t.variableName,null)}else{const s=t.chunk;"default"===s.exportMode||n&&e.isNamespace?e.setRenderNames(null,s.variableName):e.setRenderNames(s.variableName,s.getVariableExportName(e))}}}const $r=(e,t)=>e.execIndex>t.execIndex?1:-1;function Tr(e){e.sort($r)}function Rr(e,t,s){const i=[xi(e.id)];let n=t;for(;n!==e;)i.push(xi(n.id)),n=s.get(n);return i.push(i[0]),i.reverse(),i}function Lr(e){const t=e.split("\n"),s=t.filter(e=>/^\t+/.test(e)),i=t.filter(e=>/^ {2,}/.test(e));if(0===s.length&&0===i.length)return null;if(s.length>=i.length)return"\t";const n=i.reduce((e,t)=>{const s=/^ +/.exec(t)[0].length;return Math.min(s,e)},1/0);return new Array(n+1).join(" ")}function Mr(e){if(!e)return null;if("string"==typeof e&&(e=JSON.parse(e)),""===e.mappings)return{mappings:[],names:[],sources:[],version:3};let t;return t="string"==typeof e.mappings?function(e){for(var t=[],s=[],i=[0,0,0,0,0],n=0,r=0,a=0,o=0;r<e.length;r++){var h=e.charCodeAt(r);if(44===h)as(s,i,n),n=0;else if(59===h)as(s,i,n),n=0,t.push(s),s=[],i[0]=0;else{var l=is[h];if(void 0===l)throw new Error("Invalid character ("+String.fromCharCode(h)+")");var c=32&l;if(o+=(l&=31)<<a,c)a+=5;else{var u=1&o;o>>>=1,u&&(o=0===o?-2147483648:-o),i[n]+=o,n++,o=a=0}}}return as(s,i,n),t.push(s),t}(e.mappings):e.mappings,{...e,mappings:t}}function Dr(e,t,s){return yi(e)?e.replace(/\[(\w+)\]/g,(e,i)=>{if(!s.hasOwnProperty(i))return Ei(Ci(`"[${i}]" is not a valid placeholder in "${t}" pattern.`));const n=s[i]();return yi(n)?n:Ei(Ci(`Invalid substitution "${n}" for placeholder "[${i}]" in "${t}" pattern, can be neither absolute nor relative path.`))}):Ei(Ci(`Invalid pattern "${e}" for "${t}", patterns can be neither absolute nor relative paths and must not contain invalid characters.`))}function Or(e,t){const s=new Set(Object.keys(t).map(e=>e.toLowerCase()));if(!s.has(e.toLocaleLowerCase()))return e;const i=Xt(e);e=e.substr(0,e.length-i.length);let n,r=1;for(;s.has((n=e+ ++r+i).toLowerCase()););return n}const Vr=[".js",".jsx",".ts",".tsx"];function Br(e,t,s,i){let n;return"function"==typeof t?n=t(e.id):t&&(n=t[e.id]),n||(i?(s.warn({code:"MISSING_GLOBAL_NAME",guess:e.variableName,message:`No name was provided for external module '${e.id}' in output.globals – guessing '${e.variableName}'`,source:e.id}),e.variableName):void 0)}class Fr{constructor(e,t){this.entryModules=[],this.exportMode="named",this.facadeModule=null,this.id=null,this.indentString=void 0,this.manualChunkAlias=null,this.usedModules=void 0,this.variableName="chunk",this.dependencies=new Set,this.dynamicDependencies=new Set,this.exportNames=Object.create(null),this.exports=new Set,this.fileName=null,this.imports=new Set,this.isEmpty=!0,this.name=null,this.needsExportsShim=!1,this.renderedDependencies=null,this.renderedExports=null,this.renderedHash=void 0,this.renderedModuleSources=new Map,this.renderedSource=null,this.sortedExportNames=null,this.graph=e,this.orderedModules=t,this.execIndex=t.length>0?t[0].execIndex:1/0;for(const e of t)this.isEmpty&&e.isIncluded()&&(this.isEmpty=!1),e.manualChunkAlias&&(this.manualChunkAlias=e.manualChunkAlias),e.chunk=this,(e.isEntryPoint||e.dynamicallyImportedBy.some(e=>-1===t.indexOf(e)))&&this.entryModules.push(e);const s=this.entryModules[0]||this.orderedModules[this.orderedModules.length-1];s&&(this.variableName=Wt(qt(s.chunkName||s.manualChunkAlias||gi(s.id))))}static generateFacade(e,t,s){const i=new Fr(e,[]);i.assignFacadeName(s,t),t.facadeChunk||(t.facadeChunk=i),i.dependencies.add(t.chunk),i.facadeModule=t;for(const e of t.getAllExportNames()){const s=t.getVariableForExportName(e);i.exports.add(s),i.exportNames[e]=s}return i}canModuleBeFacade(e){for(const t of this.exports)if(!e.has(t))return!1;return!0}generateFacades(){const e=[];for(const t of this.entryModules){const s=Array.from(t.userChunkNames).map(e=>({name:e}));if(0===s.length&&t.isUserDefinedEntryPoint&&s.push({}),s.push(...Array.from(t.chunkFileNames).map(e=>({fileName:e}))),0===s.length&&s.push({}),!this.facadeModule){const e=t.getExportNamesByVariable();if(this.graph.preserveModules||this.canModuleBeFacade(e)){this.facadeModule=t,t.facadeChunk=this;for(const[t,s]of e)for(const e of s)this.exportNames[e]=t;this.assignFacadeName(s.shift(),t)}}for(const i of s)e.push(Fr.generateFacade(this.graph,t,i))}return e}generateId(e,t,s,i,n){if(null!==this.fileName)return this.fileName;const[r,a]=this.facadeModule&&this.facadeModule.isUserDefinedEntryPoint?[t.entryFileNames||"[name].js","output.entryFileNames"]:[t.chunkFileNames||"[name]-[hash].js","output.chunkFileNames"];return Or(Dr(r,a,{format:()=>t.format,hash:()=>i?this.computeContentHashWithDependencies(e,t,s,n):"[hash]",name:()=>this.getChunkName()}),s)}generateIdPreserveModules(e,t,s){const i=this.orderedModules[0].id,n=mi(i);let r;if(jt(i)){const s=Xt(i),a=Dr(t.entryFileNames||(Vr.includes(s)?"[name].js":"[name][extname].js"),"output.entryFileNames",{ext:()=>s.substr(1),extname:()=>s,format:()=>t.format,name:()=>this.getChunkName()});r=As(e,`${Kt(n)}/${a}`)}else r=`_virtual/${qt(n)}`;return Or(Ht(r),s)}generateInternalExports(e){if(null!==this.facadeModule)return;const t="system"===e.format||"es"===e.format||e.compact;let s,i=0;if(this.exportNames=Object.create(null),this.sortedExportNames=null,t)for(const e of this.exports){const t=e.name[0];if(this.exportNames[t]){do{s=Ls(++i),49===s.charCodeAt(0)&&(i+=9*64**(s.length-1),s=Ls(i))}while(Ms[s]||this.exportNames[s]);this.exportNames[s]=e}else this.exportNames[t]=e}else for(const e of this.exports){for(i=0,s=e.name;this.exportNames[s];)s=e.name+"$"+ ++i;this.exportNames[s]=e}}getChunkName(){return this.name||(this.name=mi(this.getFallbackChunkName()))}getDynamicImportIds(){return[...this.dynamicDependencies].map(e=>e.id)}getExportNames(){return this.sortedExportNames||(this.sortedExportNames=Object.keys(this.exportNames).sort())}getImportIds(){return[...this.dependencies].map(e=>e.id)}getRenderedHash(e){if(this.renderedHash)return this.renderedHash;const t=kr(),s=e.hookReduceValueSync("augmentChunkHash","",[this.getPrerenderedChunk()],(e,t)=>(t&&(e+=t),e));return t.update(s),t.update(this.renderedSource.toString()),t.update(this.getExportNames().map(e=>{const t=this.exportNames[e];return`${xi(t.module.id).replace(/\\/g,"/")}:${t.name}:${e}`}).join(",")),this.renderedHash=t.digest("hex")}getVariableExportName(e){if(this.graph.preserveModules&&e instanceof ii)return"*";for(const t of Object.keys(this.exportNames))if(this.exportNames[t]===e)return t;throw new Error(`Internal Error: Could not find export name for variable ${e.name}.`)}link(){for(const e of this.orderedModules)this.addDependenciesToChunk(e.getDependenciesToBeIncluded(),this.dependencies),this.addDependenciesToChunk(e.dynamicDependencies,this.dynamicDependencies),this.setUpChunkImportsAndExportsForModule(e)}preRender(e,t,s){Vn("render modules",3);const i=new Ss({separator:e.compact?"":"\n\n"});this.usedModules=[],this.indentString=e.compact?"":function(e,t){if(!0!==t.indent)return t.indent||"";for(let t=0;t<e.length;t++){const s=Lr(e[t].originalCode);if(null!==s)return s}return"\t"}(this.orderedModules,e);const n=e.compact?"":"\n",r=e.compact?"":" ",a={compact:e.compact,dynamicImportFunction:e.dynamicImportFunction,format:e.format,freeze:!1!==e.freeze,indent:this.indentString,namespaceToStringTag:!0===e.namespaceToStringTag,outputPluginDriver:s,varOrConst:e.preferConst?"const":"var"};if(!1!==e.hoistTransitiveImports&&!this.graph.preserveModules&&null!==this.facadeModule)for(const e of this.dependencies)e instanceof Fr&&this.inlineChunkDependencies(e);const o=[...this.dependencies];Tr(o),this.dependencies=new Set(o),this.prepareDynamicImports(),this.setIdentifierRenderResolutions(e);let h="";const l=this.renderedModules=Object.create(null);for(const t of this.orderedModules){let s=0;if(t.isIncluded()){const r=t.render(a).trim();s=r.length(),s&&(e.compact&&-1!==r.lastLine().indexOf("//")&&r.append("\n"),this.renderedModuleSources.set(t,r),i.addSource(r),this.usedModules.push(t));const o=t.getOrCreateNamespace();if(o.included&&!this.graph.preserveModules){const e=o.renderBlock(a);o.renderFirst()?h+=n+e:i.addSource(new bs(e))}}const{renderedExports:r,removedExports:o}=t.getRenderedExports();l[t.id]={originalLength:t.originalCode.length,removedExports:o,renderedExports:r,renderedLength:s}}if(h&&i.prepend(h+n+n),this.needsExportsShim&&i.prepend(`${n}${a.varOrConst} _missingExportShim${r}=${r}void 0;${n}${n}`),e.compact?this.renderedSource=i:this.renderedSource=i.trim(),this.renderedHash=void 0,this.isEmpty&&0===this.getExportNames().length&&0===this.dependencies.size){const e=this.getChunkName();this.graph.warn({chunkName:e,code:"EMPTY_BUNDLE",message:`Generated an empty chunk: "${e}"`})}this.setExternalRenderPaths(e,t),this.renderedDependencies=this.getChunkDependencyDeclarations(e),this.renderedExports="none"===this.exportMode?[]:this.getChunkExportDeclarations(),Bn("render modules",3)}render(e,t,s,i){Vn("render format",3);const n=this.id,r=e.format,a=Li[r];e.dynamicImportFunction&&"es"!==r&&this.graph.warn({code:"INVALID_OPTION",message:'"output.dynamicImportFunction" is ignored for formats other than "es".'});for(const e of this.dependencies){if(e instanceof Jt&&!e.renormalizeRenderPath)continue;const t=this.renderedDependencies.get(e),s=e instanceof Jt?t.id:e.id;e instanceof Fr&&(t.namedExportsMode="default"!==e.exportMode),t.id=this.getRelativePath(s,!1)}this.finaliseDynamicImports("amd"===r),this.finaliseImportMetas(r,i);const o=0!==this.renderedExports.length||[...this.renderedDependencies.values()].some(e=>e.reexports&&0!==e.reexports.length);let h=!1;const l=new Set;for(const e of this.orderedModules){e.usesTopLevelAwait&&(h=!0);const t=e.scope.accessedGlobalVariablesByFormat,s=t&&t.get(r);if(s)for(const e of s)l.add(e)}if(h&&"es"!==r&&"system"!==r)return Ei({code:"INVALID_TLA_FORMAT",message:`Module format ${r} does not support top-level await. Use the "es" or "system" output formats rather.`});const c=a(this.renderedSource,{accessedGlobals:l,dependencies:[...this.renderedDependencies.values()],exports:this.renderedExports,hasExports:o,indentString:this.indentString,intro:t.intro,isEntryModuleFacade:this.graph.preserveModules||null!==this.facadeModule&&this.facadeModule.isEntryPoint,namedExportsMode:"default"!==this.exportMode,outro:t.outro,usesTopLevelAwait:h,varOrConst:e.preferConst?"const":"var",warn:this.graph.warn.bind(this.graph)},e);t.banner&&c.prepend(t.banner),t.footer&&c.append(t.footer);const u=c.toString();Bn("render format",3);let d=null;const p=[];return function({code:e,options:t,outputPluginDriver:s,renderChunk:i,sourcemapChain:n}){return s.hookReduceArg0("renderChunk",[e,i,t],(e,t,s)=>{if(null==t)return e;if("string"==typeof t&&(t={code:t,map:void 0}),null!==t.map){const e=Mr(t.map);n.push(e||{missing:!0,plugin:s.name})}return t.code})}({code:u,options:e,outputPluginDriver:i,renderChunk:s,sourcemapChain:p}).then(t=>{if(e.sourcemap){let t;Vn("sourcemap",3),t=e.file?Qt(e.sourcemapFile||e.file):e.dir?Qt(e.dir,n):Qt(n);const s=c.generateDecodedMap({});d=function(e,t,s,i,n,r){const a=Yn(e),o=i.filter(e=>!e.excludeFromSourcemap).map(e=>Qn(e.id,e.originalCode,e.originalSourcemap,e.sourcemapChain,a));let h=new Xn(s,o);h=n.reduce(a,h);let{sources:l,sourcesContent:c,names:u,mappings:d}=h.traceMappings();if(t){const e=Kt(t);l=l.map(t=>Yt(e,t)),t=qt(t)}return c=r?null:c,new us({file:t,sources:l,sourcesContent:c,names:u,mappings:d})}(this.graph,t,s,this.usedModules,p,e.sourcemapExcludeSources),d.sources=d.sources.map(t=>Ht(e.sourcemapPathTransform?e.sourcemapPathTransform(t):t)),Bn("sourcemap",3)}return!0!==e.compact&&"\n"!==t[t.length-1]&&(t+="\n"),{code:t,map:d}})}addDependenciesToChunk(e,t){for(const s of e)s instanceof qn?s.chunk&&s.chunk!==this&&t.add(s.chunk):t.add(s)}assignFacadeName({fileName:e,name:t},s){e?this.fileName=e:this.name=mi(t||s.chunkName||gi(s.id))}computeContentHashWithDependencies(e,t,s,i){const n=kr();n.update([e.intro,e.outro,e.banner,e.footer].map(e=>e||"").join(":")),n.update(t.format);const r=new Set([this]);for(const a of r)if(a instanceof Jt?n.update(":"+a.renderPath):(n.update(a.getRenderedHash(i)),n.update(a.generateId(e,t,s,!1,i))),!(a instanceof Jt))for(const e of[...a.dependencies,...a.dynamicDependencies])r.add(e);return n.digest("hex").substr(0,8)}finaliseDynamicImports(e){for(const[t,s]of this.renderedModuleSources)for(const{node:i,resolution:n}of t.dynamicImports){if(!n||!i.included||n instanceof qn&&n.chunk===this)continue;const t=n instanceof qn?`'${this.getRelativePath(n.facadeChunk.id,e)}'`:n instanceof Jt?`'${n.renormalizeRenderPath?this.getRelativePath(n.renderPath,e):n.id}'`:n;i.renderFinalResolution(s,t)}}finaliseImportMetas(e,t){for(const[s,i]of this.renderedModuleSources)for(const n of s.importMetas)n.renderFinalMechanism(i,this.id,e,t)}getChunkDependencyDeclarations(e){const t=new Map;for(let s of this.getExportNames()){let i,n,r=!1;if("*"===s[0])r=!1!==e.externalLiveBindings,i=this.graph.moduleById.get(s.substr(1)),n=s="*";else{const t=this.exportNames[s],a=t.module;if(!a||a.chunk===this)continue;a instanceof qn?(i=a.chunk,n=i.getVariableExportName(t),r=t.isReassigned):(i=a,n=t.name,r=!1!==e.externalLiveBindings)}let a=t.get(i);a||t.set(i,a=[]),a.push({imported:n,reexported:s,needsLiveBinding:r})}const s=new Set,i=new Map;for(const n of this.dependencies){const r=[];for(const e of this.imports){const t=e instanceof ti?e.getOriginalVariable():e;(e.module instanceof qn?e.module.chunk!==n:e.module!==n)||s.has(t)||(s.add(t),r.push({imported:e.module instanceof Jt?e.name:e.module.chunk.getVariableExportName(e),local:e.getName()}))}const a=t.get(n);let o,h,l=!0;n instanceof Jt?(o=n.exportsNames||n.exportsNamespace,h="default"in n.declarations):(o=!0,h=!1,l="default"!==n.exportMode);let c=void 0,u=void 0;n instanceof Jt&&(c=n.renderPath,"umd"!==e.format&&"iife"!==e.format||(u=Br(n,e.globals,this.graph,o||h))),i.set(n,{exportsDefault:h,exportsNames:o,globalName:u,id:c,imports:r.length>0?r:null,isChunk:n instanceof Fr,name:n.variableName,namedExportsMode:l,reexports:a})}return i}getChunkExportDeclarations(){const e=[];for(const t of this.getExportNames()){if("*"===t[0])continue;const s=this.exportNames[t],i=s.module;if(i&&i.chunk!==this)continue;let n=!1,r=!1;if(s instanceof es){s.init===at&&(r=!0);for(const e of s.declarations)if(e.parent instanceof Js||e instanceof ei&&e.declaration instanceof Js){n=!0;break}}e.push({exported:t,hoisted:n,local:s.getName(),uninitialized:r})}return e}getFallbackChunkName(){return this.manualChunkAlias?this.manualChunkAlias:this.fileName?gi(this.fileName):gi(this.orderedModules[this.orderedModules.length-1].id)}getPrerenderedChunk(){const e=this.facadeModule,t=this.getChunkName.bind(this);return{dynamicImports:this.getDynamicImportIds(),exports:this.getExportNames(),facadeModuleId:e&&e.id,imports:this.getImportIds(),isDynamicEntry:null!==e&&e.dynamicallyImportedBy.length>0,isEntry:null!==e&&e.isEntryPoint,modules:this.renderedModules,get name(){return t()}}}getRelativePath(e,t){let s=Ht(As(Kt(this.id),e));return t&&s.endsWith(".js")&&(s=s.slice(0,-3)),s.startsWith("../")?s:"./"+s}inlineChunkDependencies(e){for(const t of e.dependencies)t instanceof Jt?this.dependencies.add(t):(this.dependencies.add(t),this.inlineChunkDependencies(t))}prepareDynamicImports(){for(const e of this.orderedModules)for(const{node:t,resolution:s}of e.dynamicImports)if(t.included)if(s instanceof qn)if(s.chunk===this){const e=s.getOrCreateNamespace();t.setResolution("named",s,e)}else t.setResolution(s.chunk.exportMode,s);else t.setResolution("auto",s)}setExternalRenderPaths(e,t){for(const s of[...this.dependencies,...this.dynamicDependencies])s instanceof Jt&&s.setRenderPath(e,t)}setIdentifierRenderResolutions(e){for(const t of this.getExportNames()){const s=this.exportNames[t];s instanceof si&&(this.needsExportsShim=!0),s.exportName=t,"es"!==e.format&&"system"!==e.format&&s.isReassigned&&!s.isId?s.setRenderNames("exports",t):s.setRenderNames(null,null)}const t=new Set;this.needsExportsShim&&t.add("_missingExportShim"),"es"!==e.format&&(t.add("exports"),"cjs"===e.format&&t.add("_interopDefault").add("require").add("module").add("__filename").add("__dirname")),Nr(this.orderedModules,this.dependencies,this.imports,t,e.format,!1!==e.interop,this.graph.preserveModules)}setUpChunkImportsAndExportsForModule(e){for(const t of e.imports)t.module.chunk!==this&&(this.imports.add(t),t.module instanceof qn&&t.module.chunk.exports.add(t));if(e.isEntryPoint||e.dynamicallyImportedBy.some(e=>e.chunk!==this)){const t=e.getExportNamesByVariable();for(const e of t.keys()){this.exports.add(e);const t=e.module;t&&t.chunk&&t.chunk!==this&&t.chunk.exports.add(e)}}if(e.getOrCreateNamespace().included)for(const t of Object.keys(e.reexportDescriptions)){const s=e.reexportDescriptions[t],i=s.module.getVariableForExportName(s.localName);i.module.chunk!==this&&(this.imports.add(i),i.module.chunk.exports.add(i))}const t=Cs();for(const{node:s,resolution:i}of e.dynamicImports)s.included&&i instanceof qn&&i.chunk===this&&i.getOrCreateNamespace().include(t)}}const Wr=e=>(...t)=>{throw Object.assign(new Error(`Cannot access the file system (via "fs.${e}") when using the browser build of Rollup. Make sure you supply a plugin with custom resolveId and load hooks to Rollup.`),{code:"NO_FS_IN_BROWSER",url:"https://rollupjs.org/guide/en/#a-simple-example"})},Ur=Wr("lstatSync"),zr=Wr("readdirSync"),jr=Wr("readFile"),Gr=Wr("realpathSync"),Hr=Wr("writeFile");async function qr(e,t,s,i,n){const r=await i.hookFirst("resolveId",[e,t],null,n);return null!=r?r:void 0===t||jt(e)||"."===e[0]?function(e,t){let s=Kr(e,t);return s||(s=Kr(e+".mjs",t),s||(s=Kr(e+".js",t),s))}(Qt(t?Kt(t):Qt(),e),s):null}function Kr(e,t){try{const s=Ur(e);if(!t&&s.isSymbolicLink())return Kr(Gr(e),t);if(t&&s.isSymbolicLink()||s.isFile()){const t=qt(e);if(-1!==zr(Kt(e)).indexOf(t))return e}}catch(e){}}function Xr(e,t,{hook:s,id:i}={}){return"string"==typeof e&&(e={message:e}),e.code&&e.code!==vi.PLUGIN_ERROR&&(e.pluginCode=e.code),e.code=vi.PLUGIN_ERROR,e.plugin=t,s&&(e.hook=s),i&&(e.id=i),Ei(e)}const Yr=[{active:!0,deprecated:"resolveAssetUrl",replacement:"resolveFileUrl"}],Qr={has:()=>!1,get(){},set(){},delete:()=>!1};function Jr(e){return e.startsWith("at position ")||e.startsWith("at output position ")?Ei({code:"ANONYMOUS_PLUGIN_CACHE",message:"A plugin is trying to use the Rollup cache but is not declaring a plugin name or cacheKey."}):Ei({code:"DUPLICATE_PLUGIN_NAME",message:`The plugin name ${e} is being used twice in the same build. Plugin names must be distinct or provide a cacheKey (please post an issue to the plugin if you are a plugin user).`})}function Zr(e,t,s){const i=s.id,n=[];let r=null===t.map?null:Mr(t.map);const a=t.code;let o=t.ast;const h=[],l=[];let c=!1;const u=()=>c=!0;let d,p=null,f=null;const m=t.code;return e.pluginDriver.hookReduceArg0("transform",[m,i],(function(e,t,s){if("string"==typeof t)t={ast:void 0,code:t,map:void 0};else{if(!t||"object"!=typeof t)return e;"string"==typeof t.map&&(t.map=JSON.parse(t.map)),"boolean"==typeof t.moduleSideEffects&&(p=t.moduleSideEffects),"boolean"==typeof t.syntheticNamedExports&&(f=t.syntheticNamedExports)}if(null!==t.map){const e=Mr(t.map);n.push(e||{missing:!0,plugin:s.name})}return o=t.ast,t.code}),(t,s)=>{return d=s,{...t,cache:c?t.cache:(o=t.cache,p=u,{has:e=>(p(),o.has(e)),get:e=>(p(),o.get(e)),set:(e,t)=>(p(),o.set(e,t)),delete:e=>(p(),o.delete(e))}),warn(e,s){"string"==typeof e&&(e={message:e}),s&&bi(e,s,m,i),e.id=i,e.hook="transform",t.warn(e)},error:(e,s)=>("string"==typeof e&&(e={message:e}),s&&bi(e,s,m,i),e.id=i,e.hook="transform",t.error(e)),emitAsset(t,s){const i={type:"asset",name:t,source:s};return l.push({...i}),e.pluginDriver.emitFile(i)},emitChunk(t,s){const i={type:"chunk",id:t,name:s&&s.name};return l.push({...i}),e.pluginDriver.emitFile(i)},emitFile:t=>(l.push(t),e.pluginDriver.emitFile(t)),addWatchFile(e){h.push(e),t.addWatchFile(e)},setAssetSource(){return this.error({code:"INVALID_SETASSETSOURCE",message:"setAssetSource cannot be called in transform for caching reasons. Use emitFile with a source, or call setAssetSource in another hook."})},getCombinedSourcemap(){const t=function(e,t,s,i,n){return n.length?{version:3,...Qn(t,s,i,n,Yn(e)).traceMappings()}:i}(e,i,a,r,n);return t?(r!==t&&(r=t,n.length=0),new us({...t,file:null,sourcesContent:t.sourcesContent})):new bs(a).generateMap({includeContent:!0,hires:!0,source:i})}};var o,p}).catch(e=>Xr(e,d.name,{hook:"transform",id:i})).then(e=>(c||l.length&&(s.transformFiles=l),{ast:o,code:e,customTransformCache:c,moduleSideEffects:p,originalCode:a,originalSourcemap:r,sourcemapChain:n,syntheticNamedExports:f,transformDependencies:h}))}function ea(e,t){return Gt(e)?t?Qt(t,"..",e):Qt(e):e}function ta(e){if(!0===e)return()=>!0;if("function"==typeof e)return(t,...s)=>!t.startsWith("\0")&&e(t,...s)||!1;if(e){const t=new Set(Array.isArray(e)?e:e?[e]:[]);return e=>t.has(e)}return()=>!1}function sa(e,t,s){if("boolean"==typeof e)return()=>e;if("no-external"===e)return(e,t)=>!t;if("function"==typeof e)return(t,s)=>!!t.startsWith("\0")||!1!==e(t,s);if(Array.isArray(e)){const t=new Set(e);return e=>t.has(e)}var i,n;e&&s.warn((i="treeshake.moduleSideEffects",n='please use one of false, "no-external", a function or an array',{code:vi.INVALID_OPTION,message:`Invalid value for option "${i}" - ${n}.`}));const r=ta(t);return(e,t)=>!(t&&r(e))}class ia{constructor(e,t,s,i,n,r,a,o){this.graph=e,this.modulesById=t,this.pluginDriver=s,this.preserveSymlinks=i,this.indexedEntryModules=[],this.latestLoadModulesPromise=Promise.resolve(),this.manualChunkModules={},this.nextEntryModuleIndex=0,this.loadEntryModule=(e,t,s)=>qr(e,s,this.preserveSymlinks,this.pluginDriver,null).then(s=>{if(!1===s||s&&"object"==typeof s&&s.external)return Ei(function(e){return{code:vi.UNRESOLVED_ENTRY,message:`Entry module cannot be external (${xi(e)}).`}}(e));const i=s&&"object"==typeof s?s.id:s;return"string"==typeof i?this.fetchModule(i,void 0,!0,!1,t):Ei(function(e){return{code:vi.UNRESOLVED_ENTRY,message:`Could not resolve entry module (${xi(e)}).`}}(e))}),this.isExternal=ta(n),this.hasModuleSideEffects=sa(a,o,e),this.getManualChunk="function"==typeof r?r:()=>null}addEntryModules(e,t){const s=this.nextEntryModuleIndex;this.nextEntryModuleIndex+=e.length;const i=Promise.all(e.map(({fileName:e,id:s,name:i,importer:n})=>this.loadEntryModule(s,!0,n).then(s=>(null!==e?s.chunkFileNames.add(e):null!==i&&(null===s.chunkName&&(s.chunkName=i),t&&s.userChunkNames.add(i)),s)))).then(e=>{let i=s;for(const s of e){s.isUserDefinedEntryPoint=s.isUserDefinedEntryPoint||t;const e=this.indexedEntryModules.find(e=>e.module.id===s.id);e?e.index=Math.min(e.index,i):this.indexedEntryModules.push({module:s,index:i}),i++}return this.indexedEntryModules.sort(({index:e},{index:t})=>e>t?1:-1),e});return this.awaitLoadModulesPromise(i).then(e=>({entryModules:this.indexedEntryModules.map(({module:e})=>e),manualChunkModulesByAlias:this.manualChunkModules,newEntryModules:e}))}addManualChunks(e){const t=[];for(const s of Object.keys(e)){const i=e[s];for(const e of i)t.push({id:e,alias:s})}const s=Promise.all(t.map(({id:e})=>this.loadEntryModule(e,!1,void 0))).then(e=>{for(let s=0;s<e.length;s++)this.addModuleToManualChunk(t[s].alias,e[s])});return this.awaitLoadModulesPromise(s)}async resolveId(e,t,s=null){return this.normalizeResolveIdResult(!this.isExternal(e,t,!1)&&await qr(e,t,this.preserveSymlinks,this.pluginDriver,s),t,e)}addModuleToManualChunk(e,t){if(null!==t.manualChunkAlias&&t.manualChunkAlias!==e)return Ei((s=t.id,i=e,n=t.manualChunkAlias,{code:vi.INVALID_CHUNK,message:`Cannot assign ${xi(s)} to the "${i}" chunk as it is already in the "${n}" chunk.`}));var s,i,n;t.manualChunkAlias=e,this.manualChunkModules[e]||(this.manualChunkModules[e]=[]),this.manualChunkModules[e].push(t)}awaitLoadModulesPromise(e){this.latestLoadModulesPromise=Promise.all([e,this.latestLoadModulesPromise]);const t=()=>{const e=this.latestLoadModulesPromise;return e.then(()=>{if(this.latestLoadModulesPromise!==e)return t()})};return t().then(()=>e)}fetchAllDependencies(e){return Promise.all([...Array.from(e.sources).map(async t=>this.fetchResolvedDependency(t,e.id,e.resolvedIds[t]=e.resolvedIds[t]||this.handleResolveId(await this.resolveId(t,e.id),t,e.id))),...e.getDynamicImportExpressions().map((t,s)=>this.resolveDynamicImport(e,t,e.id).then(t=>{if(null===t)return;const i=e.dynamicImports[s];if("string"!=typeof t)return this.fetchResolvedDependency(xi(t.id),e.id,t).then(e=>{i.resolution=e});i.resolution=t}))])}fetchModule(e,t,s,i,n){const r=this.modulesById.get(e);if(r instanceof qn)return r.isEntryPoint=r.isEntryPoint||n,Promise.resolve(r);const a=new qn(this.graph,e,s,i,n);this.modulesById.set(e,a),this.graph.watchFiles[e]=!0;const o=this.getManualChunk(e);return"string"==typeof o&&this.addModuleToManualChunk(o,a),Vn("load modules",3),Promise.resolve(this.pluginDriver.hookFirst("load",[e])).then(t=>null!=t?t:jr(e)).catch(s=>{Bn("load modules",3);let i=`Could not load ${e}`;throw t&&(i+=` (imported by ${t})`),i+=`: ${s.message}`,s.message=i,s}).then(t=>(Bn("load modules",3),"string"==typeof t?{code:t}:t&&"object"==typeof t&&"string"==typeof t.code?t:Ei(function(e){return{code:vi.BAD_LOADER,message:`Error loading ${xi(e)}: plugin load hook should return a string, a { code, map } object, or nothing/null`}}(e)))).then(t=>{const s=this.graph.cachedModules.get(e);if(s&&!s.customTransformCache&&s.originalCode===t.code){if(s.transformFiles)for(const e of s.transformFiles)this.pluginDriver.emitFile(e);return s}return"boolean"==typeof t.moduleSideEffects&&(a.moduleSideEffects=t.moduleSideEffects),"boolean"==typeof t.syntheticNamedExports&&(a.syntheticNamedExports=t.syntheticNamedExports),Zr(this.graph,t,a)}).then(t=>(a.setSource(t),this.modulesById.set(e,a),this.fetchAllDependencies(a).then(()=>{for(const e in a.exports)"default"!==e&&(a.exportsAll[e]=a.id);for(const e of a.exportAllSources){const t=a.resolvedIds[e].id,s=this.modulesById.get(t);if(!(s instanceof Jt))for(const e in s.exportsAll)e in a.exportsAll?this.graph.warn(Ai(e,a,s)):a.exportsAll[e]=s.exportsAll[e]}return a})))}fetchResolvedDependency(e,t,s){if(s.external){this.modulesById.has(s.id)||this.modulesById.set(s.id,new Jt(this.graph,s.id,s.moduleSideEffects));const i=this.modulesById.get(s.id);return i instanceof Jt?Promise.resolve(i):Ei(function(e,t){return{code:vi.INVALID_EXTERNAL_ID,message:`'${e}' is imported as an external by ${xi(t)}, but is already an existing non-external module id.`}}(e,t))}return this.fetchModule(s.id,t,s.moduleSideEffects,s.syntheticNamedExports,!1)}handleResolveId(e,t,s){return null===e?Gt(t)?Ei(function(e,t){return{code:vi.UNRESOLVED_IMPORT,message:`Could not resolve '${e}' from ${xi(t)}`}}(t,s)):(this.graph.warn(function(e,t){return{code:vi.UNRESOLVED_IMPORT,importer:xi(t),message:`'${e}' is imported by ${xi(t)}, but could not be resolved – treating it as an external dependency`,source:e,url:"https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency"}}(t,s)),{external:!0,id:t,moduleSideEffects:this.hasModuleSideEffects(t,!0),syntheticNamedExports:!1}):(e.external&&e.syntheticNamedExports&&this.graph.warn(function(e,t){return{code:vi.EXTERNAL_SYNTHETIC_EXPORTS,importer:xi(t),message:`External '${e}' can not have 'syntheticNamedExports' enabled.`,source:e}}(t,s)),e)}normalizeResolveIdResult(e,t,s){let i="",n=!1,r=null,a=!1;if(e)"object"==typeof e?(i=e.id,e.external&&(n=!0),"boolean"==typeof e.moduleSideEffects&&(r=e.moduleSideEffects),"boolean"==typeof e.syntheticNamedExports&&(a=e.syntheticNamedExports)):(this.isExternal(e,t,!0)&&(n=!0),i=n?ea(e,t):e);else{if(i=ea(s,t),!1!==e&&!this.isExternal(i,t,!0))return null;n=!0}return{external:n,id:i,moduleSideEffects:"boolean"==typeof r?r:this.hasModuleSideEffects(i,n),syntheticNamedExports:a}}async resolveDynamicImport(e,t,s){const i=await this.pluginDriver.hookFirst("resolveDynamicImport",[t,s]);return"string"!=typeof t?"string"==typeof i?i:i?{external:!1,moduleSideEffects:!0,...i}:null:null==i?e.resolvedIds[t]=e.resolvedIds[t]||this.handleResolveId(await this.resolveId(t,e.id),t,e.id):this.handleResolveId(this.normalizeResolveIdResult(i,s,t),t,s)}}var na;function ra(e,t){const s=new Map,{dependentEntryPointsByModule:i,dynamicEntryModules:n}=function(e){const t=new Set,s=new Map,i=new Set(e);for(const e of i){const n=new Set([e]);for(const r of n){aa(s,r).add(e);for(const e of r.getDependenciesToBeIncluded())e instanceof Jt||n.add(e);for(const{resolution:e}of r.dynamicImports)e instanceof qn&&e.dynamicallyImportedBy.length>0&&!e.manualChunkAlias&&(t.add(e),i.add(e))}}return{dependentEntryPointsByModule:s,dynamicEntryModules:t}}(e),r=function(e,t){const s=new Map;for(const i of t){const t=aa(s,i);for(const s of i.dynamicallyImportedBy)for(const i of e.get(s))t.add(i)}return s}(i,n),a=new Set(e);function o(e,t,n=e){const r=e.manualChunkAlias,a=new Set([e]);for(const e of a){const o=aa(s,e);if(r)e.manualChunkAlias=r,o.add(n);else{if(t&&h(t,i.get(e)))continue;o.add(n)}for(const t of e.getDependenciesToBeIncluded())t instanceof Jt||t.manualChunkAlias||a.add(t)}}function h(e,t){const s=new Set(e);for(const e of s)if(!t.has(e)){if(a.has(e))return!1;const t=r.get(e);for(const e of t)s.add(e)}return!0}for(const e of Object.keys(t))for(const s of t[e])o(s,null,e);for(const t of e)t.manualChunkAlias||o(t,null);for(const e of n)e.manualChunkAlias||o(e,r.get(e));return function(e,t){const s=Object.create(null);for(const[i,n]of t){let t="";for(const s of e)t+=n.has(s)?"X":"_";const r=s[t];r?r.push(i):s[t]=[i]}return Object.keys(s).map(e=>s[e])}([...Object.keys(t),...e,...n],s)}function aa(e,t){const s=e.get(t)||new Set;return e.set(t,s),s}function oa(e,t,s){e in t&&s.warn(function(e){return{code:vi.FILE_NAME_CONFLICT,message:`The emitted file "${e}" overwrites a previously emitted file of the same name.`}}(e)),t[e]=ha}!function(e){e[e.LOAD_AND_PARSE=0]="LOAD_AND_PARSE",e[e.ANALYSE=1]="ANALYSE",e[e.GENERATE=2]="GENERATE"}(na||(na={}));const ha={type:"placeholder"};function la(e,t,s){if(!("string"==typeof e||e instanceof Uint8Array)){const e=t.fileName||t.name||s;return Ei(Ci(`Could not set source for ${"string"==typeof e?`asset "${e}"`:"unnamed asset"}, asset source needs to be a string, Uint8Array or Buffer.`))}return e}function ca(e,t){return"string"!=typeof e.fileName?Ei((s=e.name||t,{code:vi.ASSET_NOT_FINALISED,message:`Plugin error - Unable to get file name for asset "${s}". Ensure that the source is set and that generate is called first.`})):e.fileName;var s}function ua(e){const t=e.fileName||e.module&&e.module.facadeChunk.id;return t||Ei((s=e.fileName||e.name,{code:vi.CHUNK_NOT_GENERATED,message:`Plugin error - Unable to get file name for chunk "${s}". Ensure that generate is called first.`}));var s}class da{constructor(e,t){this.output=null,this.assertAssetsFinalized=()=>{for(const[t,s]of this.filesByReferenceId.entries())if("asset"===s.type&&"string"!=typeof s.fileName)return Ei((e=s.name||t,{code:vi.ASSET_SOURCE_MISSING,message:`Plugin error creating asset "${e}" - no asset source set.`}));var e},this.emitFile=e=>function(e){return e&&("asset"===e.type||"chunk"===e.type)}(e)?function(e){const t=e.fileName||e.name;return!t||"string"==typeof t&&yi(t)}(e)?"chunk"===e.type?this.emitChunk(e):this.emitAsset(e):Ei(Ci(`The "fileName" or "name" properties of emitted files must be strings that are neither absolute nor relative paths and do not contain invalid characters, received "${e.fileName||e.name}".`)):Ei(Ci(`Emitted files must be of type "asset" or "chunk", received "${e&&e.type}".`)),this.getFileName=e=>{const t=this.filesByReferenceId.get(e);return t?"chunk"===t.type?ua(t):ca(t,e):Ei((s=e,{code:vi.FILE_NOT_FOUND,message:`Plugin error - Unable to get file name for unknown file "${s}".`}));var s},this.setAssetSource=(e,t)=>{const s=this.filesByReferenceId.get(e);if(!s)return Ei((i=e,{code:vi.ASSET_NOT_FOUND,message:`Plugin error - Unable to set the source for unknown asset "${i}".`}));var i,n;if("asset"!==s.type)return Ei(Ci(`Asset sources can only be set for emitted assets but "${e}" is an emitted chunk.`));if(void 0!==s.source)return Ei((n=s.name||e,{code:vi.ASSET_SOURCE_ALREADY_SET,message:`Unable to set the source for asset "${n}", source already set.`}));const r=la(t,s,e);this.output?this.finalizeAsset(s,r,e,this.output):s.source=r},this.setOutputBundle=(e,t)=>{this.output={assetFileNames:t,bundle:e};for(const e of this.filesByReferenceId.values())e.fileName&&oa(e.fileName,this.output.bundle,this.graph);for(const[e,t]of this.filesByReferenceId.entries())"asset"===t.type&&void 0!==t.source&&this.finalizeAsset(t,t.source,e,this.output)},this.graph=e,this.filesByReferenceId=t?new Map(t.filesByReferenceId):new Map}assignReferenceId(e,t){let s;do{const e=kr();s?e.update(s):e.update(t),s=e.digest("hex").substr(0,8)}while(this.filesByReferenceId.has(s));return this.filesByReferenceId.set(s,e),s}emitAsset(e){const t=void 0!==e.source?la(e.source,e,null):void 0,s={fileName:e.fileName,name:e.name,source:t,type:"asset"},i=this.assignReferenceId(s,e.fileName||e.name||e.type);return this.output&&(e.fileName&&oa(e.fileName,this.output.bundle,this.graph),void 0!==t&&this.finalizeAsset(s,t,i,this.output)),i}emitChunk(e){if(this.graph.phase>na.LOAD_AND_PARSE)return Ei({code:vi.INVALID_ROLLUP_PHASE,message:"Cannot emit chunks after module loading has finished."});if("string"!=typeof e.id)return Ei(Ci(`Emitted chunks need to have a valid string id, received "${e.id}"`));const t={fileName:e.fileName,module:null,name:e.name||e.id,type:"chunk"};return this.graph.moduleLoader.addEntryModules([{fileName:e.fileName||null,id:e.id,importer:e.importer,name:e.name||null}],!1).then(({newEntryModules:[e]})=>{t.module=e}).catch(()=>{}),this.assignReferenceId(t,e.id)}finalizeAsset(e,t,s,i){const n=e.fileName||function(e,t){for(const s of Object.keys(e)){const i=e[s];if("asset"===i.type&&pa(t,i.source))return s}return null}(i.bundle,t)||function(e,t,s){const i=e||"asset";return Or(Dr(s.assetFileNames,"output.assetFileNames",{hash(){const e=kr();return e.update(i),e.update(":"),e.update(t),e.digest("hex").substr(0,8)},ext:()=>Xt(i).substr(1),extname:()=>Xt(i),name:()=>i.substr(0,i.length-Xt(i).length)}),s.bundle)}(e.name,t,i),r={...e,source:t,fileName:n};this.filesByReferenceId.set(s,r);const a=this.graph;i.bundle[n]={fileName:n,get isAsset(){return a.warnDeprecation('Accessing "isAsset" on files in the bundle is deprecated, please use "type === \'asset\'" instead',!0),!0},source:t,type:"asset"}}}function pa(e,t){if("string"==typeof e)return e===t;if("string"==typeof t)return!1;if("equals"in e)return e.equals(t);if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==t[s])return!1;return!0}function fa(e,t,s,i,n,r){let a=!1;return(...o)=>(a||(a=!0,r.warnDeprecation({message:`The "this.${t}" plugin context function used by plugin ${i} is deprecated. The "this.${s}" plugin context function should be used instead.`,plugin:i},n)),e(...o))}function ma(e,t,s){const i=new Set;return(n,r)=>{let a,o=!0;if("string"!=typeof n.cacheKey&&(n.name.startsWith("at position ")||n.name.startsWith("at output position ")||i.has(n.name)?o=!1:i.add(n.name)),e)if(o){const t=n.cacheKey||n.name;l=e[t]||(e[t]=Object.create(null)),a={has(e){const t=l[e];return!!t&&(t[0]=0,!0)},get(e){const t=l[e];if(t)return t[0]=0,t[1]},set(e,t){l[e]=[0,t]},delete:e=>delete l[e]}}else h=n.name,a={has:()=>Jr(h),get:()=>Jr(h),set:()=>Jr(h),delete:()=>Jr(h)};else a=Qr;var h,l;return{addWatchFile(e){if(t.phase>=na.GENERATE)return this.error({code:vi.INVALID_ROLLUP_PHASE,message:"Cannot call addWatchFile after the build has finished."});t.watchFiles[e]=!0},cache:a,emitAsset:fa((e,t)=>s.emitFile({type:"asset",name:e,source:t}),"emitAsset","emitFile",n.name,!0,t),emitChunk:fa((e,t)=>s.emitFile({type:"chunk",id:e,name:t&&t.name}),"emitChunk","emitFile",n.name,!0,t),emitFile:s.emitFile,error:e=>Xr(e,n.name),getAssetFileName:fa(s.getFileName,"getAssetFileName","getFileName",n.name,!0,t),getChunkFileName:fa(s.getFileName,"getChunkFileName","getFileName",n.name,!0,t),getFileName:s.getFileName,getModuleInfo(e){const s=t.moduleById.get(e);if(null==s)throw new Error(`Unable to find module ${e}`);const i=[],n=[];if(s instanceof qn){for(const e of s.sources)i.push(s.resolvedIds[e].id);for(const{resolution:e}of s.dynamicImports)(e instanceof qn||e instanceof Jt)&&n.push(e.id)}return{dynamicallyImportedIds:n,hasModuleSideEffects:s.moduleSideEffects,id:s.id,importedIds:i,isEntry:s instanceof qn&&s.isEntryPoint,isExternal:s instanceof Jt}},isExternal:fa((e,s,i=!1)=>t.moduleLoader.isExternal(e,s,i),"isExternal","resolve",n.name,!0,t),meta:{rollupVersion:"2.3.3"},get moduleIds(){return t.moduleById.keys()},parse:t.contextParse,resolve:(e,s,i)=>t.moduleLoader.resolveId(e,s,i&&i.skipSelf?r:null),resolveId:fa((e,s)=>t.moduleLoader.resolveId(e,s).then(e=>e&&e.id),"resolveId","resolve",n.name,!0,t),setAssetSource:s.setAssetSource,warn(e){"string"==typeof e&&(e={message:e}),e.code&&(e.pluginCode=e.code),e.code="PLUGIN_WARNING",e.plugin=n.name,t.warn(e)}}}}const ga=Object.keys({buildEnd:1,buildStart:1,load:1,options:1,resolveDynamicImport:1,resolveId:1,transform:1,watchChange:1});function xa(e,t){return Ei({code:"INVALID_PLUGIN_HOOK",message:`Error running plugin hook ${e} for ${t}, expected a function hook.`})}class ya{constructor(e,t,s,i){if(function(e,t){for(const{active:s,deprecated:i,replacement:n}of Yr)for(const r of e)i in r&&t.warnDeprecation({message:`The "${i}" hook used by plugin ${r.name} is deprecated. The "${n}" hook should be used instead.`,plugin:r.name},s)}(t,e),this.graph=e,this.pluginCache=s,this.fileEmitter=new da(e,i&&i.fileEmitter),this.emitFile=this.fileEmitter.emitFile,this.getFileName=this.fileEmitter.getFileName,this.finaliseAssets=this.fileEmitter.assertAssetsFinalized,this.setOutputBundle=this.fileEmitter.setOutputBundle,this.plugins=t.concat(i?i.plugins:[]),this.pluginContexts=this.plugins.map(ma(s,e,this.fileEmitter)),i)for(const s of t)for(const t of ga)t in s&&e.warn((n=s.name,r=t,{code:vi.INPUT_HOOK_IN_OUTPUT_PLUGIN,message:`The "${r}" hook used by the output plugin ${n} is a build time hook and will not be run for that plugin. Either this plugin cannot be used as an output plugin, or it should have an option to configure it as an output plugin.`}));var n,r}createOutputPluginDriver(e){return new ya(this.graph,e,this.pluginCache,this)}hookFirst(e,t,s,i){let n=Promise.resolve(void 0);for(let r=0;r<this.plugins.length;r++)i!==r&&(n=n.then(i=>null!=i?i:this.runHook(e,t,r,!1,s)));return n}hookFirstSync(e,t,s){for(let i=0;i<this.plugins.length;i++){const n=this.runHookSync(e,t,i,s);if(null!=n)return n}return null}hookParallel(e,t,s){const i=[];for(let n=0;n<this.plugins.length;n++){const r=this.runHook(e,t,n,!1,s);r&&i.push(r)}return Promise.all(i).then(()=>{})}hookReduceArg0(e,[t,...s],i,n){let r=Promise.resolve(t);for(let t=0;t<this.plugins.length;t++)r=r.then(r=>{const a=[r,...s],o=this.runHook(e,a,t,!1,n);return o?o.then(e=>i.call(this.pluginContexts[t],r,e,this.plugins[t])):r});return r}hookReduceArg0Sync(e,[t,...s],i,n){for(let r=0;r<this.plugins.length;r++){const a=[t,...s],o=this.runHookSync(e,a,r,n);t=i.call(this.pluginContexts[r],t,o,this.plugins[r])}return t}hookReduceValue(e,t,s,i,n){let r=Promise.resolve(t);for(let t=0;t<this.plugins.length;t++)r=r.then(r=>{const a=this.runHook(e,s,t,!0,n);return a?a.then(e=>i.call(this.pluginContexts[t],r,e,this.plugins[t])):r});return r}hookReduceValueSync(e,t,s,i,n){let r=t;for(let t=0;t<this.plugins.length;t++){const a=this.runHookSync(e,s,t,n);r=i.call(this.pluginContexts[t],r,a,this.plugins[t])}return r}hookSeq(e,t,s){let i=Promise.resolve();for(let n=0;n<this.plugins.length;n++)i=i.then(()=>this.runHook(e,t,n,!1,s));return i}hookSeqSync(e,t,s){for(let i=0;i<this.plugins.length;i++)this.runHookSync(e,t,i,s)}runHook(e,t,s,i,n){const r=this.plugins[s],a=r[e];if(!a)return;let o=this.pluginContexts[s];return n&&(o=n(o,r)),Promise.resolve().then(()=>"function"!=typeof a?i?a:xa(e,r.name):a.apply(o,t)).catch(t=>Xr(t,r.name,{hook:e}))}runHookSync(e,t,s,i){const n=this.plugins[s],r=n[e];if(!r)return;let a=this.pluginContexts[s];i&&(a=i(a,n));try{return"function"!=typeof r?xa(e,n.name):r.apply(a,t)}catch(t){return Xr(t,n.name,{hook:e})}}}function Ea(e){return"string"==typeof e?[{fileName:null,name:null,id:e,importer:void 0}]:Array.isArray(e)?e.map(e=>({fileName:null,name:null,id:e,importer:void 0})):Object.keys(e).map(t=>({fileName:null,id:e[t],importer:void 0,name:t}))}class ba{constructor(e,t){if(this.moduleById=new Map,this.needsTreeshakingPass=!1,this.phase=na.LOAD_AND_PARSE,this.watchFiles=Object.create(null),this.externalModules=[],this.modules=[],this.onwarn=e.onwarn,this.deoptimizationTracker=new tt,this.cachedModules=new Map,e.cache&&e.cache.modules)for(const t of e.cache.modules)this.cachedModules.set(t.id,t);if(!1!==e.cache){this.pluginCache=e.cache&&e.cache.plugins||Object.create(null);for(const e in this.pluginCache){const t=this.pluginCache[e];for(const e of Object.keys(t))t[e][0]++}}if(this.preserveModules=e.preserveModules,this.strictDeprecations=e.strictDeprecations,this.cacheExpiry=e.experimentalCacheExpiry,!1!==e.treeshake&&(this.treeshakingOptions=e.treeshake&&!0!==e.treeshake?{annotations:!1!==e.treeshake.annotations,moduleSideEffects:e.treeshake.moduleSideEffects,propertyReadSideEffects:!1!==e.treeshake.propertyReadSideEffects,pureExternalModules:e.treeshake.pureExternalModules,tryCatchDeoptimization:!1!==e.treeshake.tryCatchDeoptimization,unknownGlobalSideEffects:!1!==e.treeshake.unknownGlobalSideEffects}:{annotations:!0,moduleSideEffects:!0,propertyReadSideEffects:!0,tryCatchDeoptimization:!0,unknownGlobalSideEffects:!0},void 0!==this.treeshakingOptions.pureExternalModules&&this.warnDeprecation('The "treeshake.pureExternalModules" option is deprecated. The "treeshake.moduleSideEffects" option should be used instead. "treeshake.pureExternalModules: true" is equivalent to "treeshake.moduleSideEffects: \'no-external\'"',!0)),this.contextParse=(e,t={})=>this.acornParser.parse(e,{...zn,...t,...this.acornOptions}),this.pluginDriver=new ya(this,e.plugins,this.pluginCache),t){const e=e=>this.pluginDriver.hookSeqSync("watchChange",[e]);t.on("change",e),t.once("restart",()=>{t.removeListener("change",e)})}this.shimMissingExports=e.shimMissingExports,this.scope=new ss,this.context=String(e.context);const s=e.moduleContext;if("function"==typeof s)this.getModuleContext=e=>s(e)||this.context;else if("object"==typeof s){const e=new Map;for(const t in s)e.set(Qt(t),s[t]);this.getModuleContext=t=>e.get(t)||this.context}else this.getModuleContext=()=>this.context;this.acornOptions=e.acorn?{...e.acorn}:{};const i=[];i.push(Ve,Le),this.acornOptions.allowAwaitOutsideFunction=!0;const n=e.acornInjectPlugins;i.push(...Array.isArray(n)?n:n?[n]:[]),this.acornParser=V.extend(...i),this.moduleLoader=new ia(this,this.moduleById,this.pluginDriver,!0===e.preserveSymlinks,e.external,"function"==typeof e.manualChunks&&e.manualChunks,this.treeshakingOptions?this.treeshakingOptions.moduleSideEffects:null,!!this.treeshakingOptions&&this.treeshakingOptions.pureExternalModules)}build(e,t,s){return Vn("parse modules",2),Promise.all([this.moduleLoader.addEntryModules(Ea(e),!0),t&&"object"==typeof t&&this.moduleLoader.addManualChunks(t)]).then(([{entryModules:e,manualChunkModulesByAlias:t}])=>{if(0===e.length)throw new Error("You must supply options.input to rollup");for(const e of this.moduleById.values())e instanceof qn?this.modules.push(e):this.externalModules.push(e);Bn("parse modules",2),this.phase=na.ANALYSE,Vn("analyse dependency graph",2),this.link(e),Bn("analyse dependency graph",2),Vn("mark included statements",2);for(const t of e)t.includeAllExports();this.includeMarked(this.modules);for(const e of this.externalModules)e.warnUnusedImports();Bn("mark included statements",2),Vn("generate chunks",2);const i=[];if(this.preserveModules){for(const e of this.modules)if(e.isIncluded()||e.isEntryPoint||e.dynamicallyImportedBy.length>0){const t=new Fr(this,[e]);t.entryModules=[e],i.push(t)}}else for(const n of s?[this.modules]:ra(e,t))Tr(n),i.push(new Fr(this,n));for(const e of i)e.link();const n=[];for(const e of i)n.push(...e.generateFacades());return Bn("generate chunks",2),this.phase=na.GENERATE,[...i,...n]})}getCache(){for(const e in this.pluginCache){const t=this.pluginCache[e];let s=!0;for(const e of Object.keys(t))t[e][0]>=this.cacheExpiry?delete t[e]:s=!1;s&&delete this.pluginCache[e]}return{modules:this.modules.map(e=>e.toJSON()),plugins:this.pluginCache}}includeMarked(e){if(this.treeshakingOptions){let t=1;do{Vn(`treeshaking pass ${t}`,3),this.needsTreeshakingPass=!1;for(const t of e)t.isExecuted&&t.include();Bn(`treeshaking pass ${t++}`,3)}while(this.needsTreeshakingPass)}else for(const t of e)t.includeAllInBundle()}warn(e){e.toString=()=>{let t="";return e.plugin&&(t+=`(${e.plugin} plugin) `),e.loc&&(t+=`${xi(e.loc.file)} (${e.loc.line}:${e.loc.column}) `),t+=e.message,t},this.onwarn(e)}warnDeprecation(e,t){if(t||this.strictDeprecations){const t=function(e){return{code:vi.DEPRECATED_FEATURE,..."string"==typeof e?{message:e}:e}}(e);if(this.strictDeprecations)return Ei(t);this.warn(t)}}link(e){for(const e of this.modules)e.linkDependencies();const{orderedModules:t,cyclePaths:s}=function(e){let t=0;const s=[],i=new Set,n=new Set,r=new Map,a=[],o=e=>{if(e instanceof qn){for(const t of e.dependencies)r.has(t)?i.has(t)||s.push(Rr(t,e,r)):(r.set(t,e),o(t));for(const{resolution:t}of e.dynamicImports)t instanceof qn&&!n.has(t)&&n.add(t);a.push(e)}e.execIndex=t++,i.add(e)};for(const t of e)r.has(t)||(r.set(t,null),o(t));for(const e of n)r.has(e)||(r.set(e,null),o(e));return{orderedModules:a,cyclePaths:s}}(e);for(const e of s)this.warn({code:"CIRCULAR_DEPENDENCY",cycle:e,importer:e[0],message:`Circular dependency: ${e.join(" -> ")}`});this.modules=t;for(const e of this.modules)e.bindReferences();this.warnForMissingExports()}warnForMissingExports(){for(const e of this.modules)for(const t of Object.keys(e.importDescriptions)){const s=e.importDescriptions[t];"*"===s.name||s.module.getVariableForExportName(s.name)||e.warn({code:"NON_EXISTENT_EXPORT",message:`Non-existent export '${s.name}' is imported from ${xi(s.module.id)}`,name:s.name,source:s.module.id},s.start)}}}function va(e){switch(typeof e){case"function":return e();case"string":return e;default:return""}}const Sa=(e,t)=>t?`${e}\n${t}`:e,Aa=(e,t)=>t?`${e}\n\n${t}`:e;function Ca(e,{exports:t,name:s,format:i},n){const r=e.getExportNames();if("default"===t){if(1!==r.length||"default"!==r[0])return Ei(Si("default",r,n))}else if("none"===t&&r.length)return Ei(Si("none",r,n));return t&&"auto"!==t||(0===r.length?t="none":1===r.length&&"default"===r[0]?t="default":("es"!==i&&-1!==r.indexOf("default")&&e.graph.warn(function(e,t){return{code:vi.MIXED_EXPORTS,id:e,message:`Entry module "${xi(e)}" is using named and default exports together. Consumers of your bundle will have to use \`${t||"chunk"}["default"]\` to access the default export, which may not be what you want. Use \`output.exports: "named"\` to disable this warning`,url:"https://rollupjs.org/guide/en/#output-exports"}}(n,s)),t="named")),t}const Pa=(e,t)=>(s,i)=>void 0!==t[s]?t[s]:void 0!==e[s]?e[s]:i,ka=e=>e&&"object"!=typeof e?{}:e,wa=(e,t,s)=>{const i=ka(t[s]),n=ka(e[s]);return void 0!==i?i&&{...n,...i}:n};function Na(e){return Array.isArray(e)?e.filter(Boolean):e?[e]:[]}const _a=e=>{"string"==typeof e?console.warn(e):console.warn(e.message)},Ia=(e,t)=>e.onwarn?s=>e.onwarn(s,t):t,$a=(e,t)=>{const s=e.external;return"function"==typeof s?(e,...i)=>s(e,...i)||-1!==t.external.indexOf(e):("string"==typeof e.external?[s]:Array.isArray(s)?s:[]).concat(t.external)};function Ta(e,t={external:[],globals:void 0},s=_a){const i=Pa(e,t),n={acorn:e.acorn,acornInjectPlugins:e.acornInjectPlugins,cache:i("cache"),context:i("context"),experimentalCacheExpiry:i("experimentalCacheExpiry",10),external:$a(e,t),inlineDynamicImports:i("inlineDynamicImports",!1),input:i("input",[]),manualChunks:i("manualChunks"),moduleContext:e.moduleContext,onwarn:Ia(e,s),perf:i("perf",!1),plugins:Na(e.plugins),preserveModules:i("preserveModules"),preserveSymlinks:i("preserveSymlinks"),shimMissingExports:i("shimMissingExports"),strictDeprecations:i("strictDeprecations",!1),treeshake:wa(e,t,"treeshake"),watch:e.watch};return n.cache&&n.cache.cache&&(n.cache=n.cache.cache),Ra(e,Object.keys(n),"input options",n.onwarn,/^output$/),n}function Ra(e,t,s,i,n=/$./){const r=new Set(t),a=Object.keys(e).filter(e=>!(r.has(e)||n.test(e)));a.length>0&&i({code:"UNKNOWN_OPTION",message:`Unknown ${s}: ${a.join(", ")}. Allowed options: ${Array.from(r).sort().join(", ")}`})}function La(e){switch(e){case void 0:case"es":case"esm":case"module":return"es";case"cjs":case"commonjs":return"cjs";case"system":case"systemjs":return"system";case"amd":case"iife":case"umd":return e;default:return Ei({message:'You must specify "output.format", which can be one of "amd", "cjs", "system", "es", "iife" or "umd".',url:"https://rollupjs.org/guide/en/#output-format"})}}function Ma(e){return e&&!["default","named","none","auto"].includes(e)?Ei((t=e,{code:vi.INVALID_EXPORT_OPTION,message:`"output.exports" must be "default", "named", "none", "auto", or left unspecified (defaults to "auto"), received "${t}"`,url:"https://rollupjs.org/guide/en/#output-exports"})):e;var t}function Da(e,t){return t.options&&t.options.call({meta:{rollupVersion:"2.3.3"}},e)||e}function Oa(e,t){const s=Na(e);for(let e=0;e<s.length;e++){const i=s[e];i.name||(i.name=`${t}${e+1}`)}return s}var Va;function Ba(e){return"asset"===e.type?Va.ASSET:e.isEntry?Va.ENTRY_CHUNK:Va.SECONDARY_CHUNK}function Fa(e){return{output:Object.keys(e).map(t=>e[t]).filter(e=>Object.keys(e).length>0).sort((e,t)=>{const s=Ba(e),i=Ba(t);return s===i?0:s<i?-1:1})}}function Wa(e,t,s,i){const n=function(e,t,s={}){const i=Pa(e,s),n={amd:{...e.amd,...s.amd},assetFileNames:i("assetFileNames"),banner:i("banner"),chunkFileNames:i("chunkFileNames"),compact:i("compact",!1),dir:i("dir"),dynamicImportFunction:i("dynamicImportFunction"),entryFileNames:i("entryFileNames"),esModule:i("esModule",!0),exports:Ma(i("exports")),extend:i("extend"),externalLiveBindings:i("externalLiveBindings",!0),file:i("file"),footer:i("footer"),format:La(i("format")),freeze:i("freeze",!0),globals:i("globals"),hoistTransitiveImports:i("hoistTransitiveImports",!0),indent:i("indent",!0),interop:i("interop",!0),intro:i("intro"),name:i("name"),namespaceToStringTag:i("namespaceToStringTag",!1),noConflict:i("noConflict"),outro:i("outro"),paths:i("paths"),plugins:Na(e.plugins),preferConst:i("preferConst"),sourcemap:i("sourcemap"),sourcemapExcludeSources:i("sourcemapExcludeSources"),sourcemapFile:i("sourcemapFile"),sourcemapPathTransform:i("sourcemapPathTransform"),strict:i("strict",!0)};return Ra(e,Object.keys(n),"output options",t),n}(i.hookReduceArg0Sync("outputOptions",[t.output||e.output||t],(e,t)=>t||e,e=>{const t=()=>e.error({code:vi.CANNOT_EMIT_FROM_OPTIONS_HOOK,message:'Cannot emit files or set asset sources in the "outputOptions" hook, use the "renderStart" hook instead.'});return{...e,emitFile:t,setAssetSource:t}}),e.onwarn);if("string"==typeof n.file){if("string"==typeof n.dir)return Ei({code:"INVALID_OPTION",message:'You must set either "output.file" for a single-file build or "output.dir" when generating multiple chunks.'});if(e.preserveModules)return Ei({code:"INVALID_OPTION",message:'You must set "output.dir" instead of "output.file" when using the "preserveModules" option.'});if("object"==typeof e.input&&!Array.isArray(e.input))return Ei({code:"INVALID_OPTION",message:'You must set "output.dir" instead of "output.file" when providing named inputs.'})}if(s){if("umd"===n.format||"iife"===n.format)return Ei({code:"INVALID_OPTION",message:"UMD and IIFE output formats are not supported for code-splitting builds."});if("string"==typeof n.file)return Ei({code:"INVALID_OPTION",message:'When building multiple chunks, the "output.dir" option must be used, not "output.file". To inline dynamic imports, set the "inlineDynamicImports" option.'});if(n.sourcemapFile)return Ei({code:"INVALID_OPTION",message:'"output.sourcemapFile" is only supported for single-file builds.'})}return n}!function(e){e[e.ENTRY_CHUNK=0]="ENTRY_CHUNK",e[e.SECONDARY_CHUNK=1]="SECONDARY_CHUNK",e[e.ASSET=2]="ASSET"}(Va||(Va={})),e.VERSION="2.3.3",e.rollup=function(e){return async function(e,t){const s=function(e){if(!e)throw new Error("You must supply an options object to rollup");let t=Ta(e);if(t=t.plugins.reduce(Da,t),t.plugins=Oa(t.plugins,"at position "),t.inlineDynamicImports){if(t.preserveModules)return Ei({code:"INVALID_OPTION",message:'"preserveModules" does not support the "inlineDynamicImports" option.'});if(t.manualChunks)return Ei({code:"INVALID_OPTION",message:'"manualChunks" option is not supported for "inlineDynamicImports".'});if(t.input instanceof Array&&t.input.length>1||"object"==typeof t.input&&Object.keys(t.input).length>1)return Ei({code:"INVALID_OPTION",message:'Multiple inputs are not supported for "inlineDynamicImports".'})}else if(t.preserveModules&&t.manualChunks)return Ei({code:"INVALID_OPTION",message:'"preserveModules" does not support the "manualChunks" option.'});return t}(e);Un(s);const i=new ba(s,t),n=!1!==e.cache;let r;delete s.cache,delete e.cache,Vn("BUILD",1);try{await i.pluginDriver.hookParallel("buildStart",[s]),r=await i.build(s.input,s.manualChunks,s.inlineDynamicImports)}catch(e){const t=Object.keys(i.watchFiles);throw t.length>0&&(e.watchFiles=t),await i.pluginDriver.hookParallel("buildEnd",[e]),e}function a(e){if(!e)throw new Error("You must supply an options object");const t=i.pluginDriver.createOutputPluginDriver(Oa(e.plugins,"at output position "));return{outputOptions:Wa(s,e,r.length>1,t),outputPluginDriver:t}}async function o(e,t,n){Vn("GENERATE",1),e.dynamicImportFunction&&i.warnDeprecation('The "output.dynamicImportFunction" option is deprecated. Use the "renderDynamicImport" plugin hook instead.',!1);const a=e.assetFileNames||"assets/[name]-[hash][extname]",o=function(e){if(0===e.length)return"/";if(1===e.length)return Kt(e[0]);const t=e.slice(1).reduce((e,t)=>{const s=t.split(/\/+|\\+/);let i;for(i=0;e[i]===s[i]&&i<Math.min(e.length,s.length);i++);return e.slice(0,i)},e[0].split(/\/+|\\+/));return t.length>1?t.join("/"):"/"}(function(e){const t=[];for(const s of e)for(const e of s.entryModules)jt(e.id)&&t.push(e.id);return t}(r)),h=Object.create(null);let l;n.setOutputBundle(h,a);try{await n.hookParallel("renderStart",[e,s]);const t=await function(e,t){return Promise.all([t.hookReduceValue("banner",va(e.banner),[],Sa),t.hookReduceValue("footer",va(e.footer),[],Sa),t.hookReduceValue("intro",va(e.intro),[],Aa),t.hookReduceValue("outro",va(e.outro),[],Aa)]).then(([e,t,s,i])=>(s&&(s+="\n\n"),i&&(i=`\n\n${i}`),e.length&&(e+="\n"),t.length&&(t="\n"+t),{intro:s,outro:i,banner:e,footer:t})).catch(e=>Ei({code:"ADDON_ERROR",message:`Could not retrieve ${e.hook}. Check configuration of plugin ${e.plugin}.\n\tError Message: ${e.message}`}))}(e,n);for(const t of r)s.preserveModules||t.generateInternalExports(e),(s.preserveModules||t.facadeModule&&t.facadeModule.isEntryPoint)&&(t.exportMode=Ca(t,e,t.facadeModule.id));for(const t of r)t.preRender(e,o,n);!function(e,t,s,i,n,r,a){const o=[],h=[];for(const t of e)(t.facadeModule&&t.facadeModule.isUserDefinedEntryPoint?o:h).push(t);const l=o.concat(h);for(const e of l)s.file?e.id=qt(s.file):t.preserveModules?e.id=e.generateIdPreserveModules(i,s,r):e.id=e.generateId(n,s,r,!0,a),r[e.id]=ha}(r,s,e,o,t,h,n),l=function(e,t){for(let s=0;s<e.length;s++){const i=e[s],n=i.facadeModule;t[i.id]={code:void 0,dynamicImports:i.getDynamicImportIds(),exports:i.getExportNames(),facadeModuleId:n&&n.id,fileName:i.id,imports:i.getImportIds(),isDynamicEntry:null!==n&&n.dynamicallyImportedBy.length>0,isEntry:null!==n&&n.isEntryPoint,map:void 0,modules:i.renderedModules,get name(){return i.getChunkName()},type:"chunk"}}return t}(r,h),await Promise.all(r.map(s=>{const i=h[s.id];return s.render(e,t,i,n).then(e=>{i.code=e.code,i.map=e.map})}))}catch(e){throw await n.hookParallel("renderError",[e]),e}await n.hookSeq("generateBundle",[e,l,t]);for(const e of Object.keys(l)){const t=l[e];t.type||(i.warnDeprecation('A plugin is directly adding properties to the bundle object in the "generateBundle" hook. This is deprecated and will be removed in a future Rollup version, please use "this.emitFile" instead.',!0),t.type="asset")}return n.finaliseAssets(),Bn("GENERATE",1),l}await i.pluginDriver.hookParallel("buildEnd",[]),Bn("BUILD",1);const h={cache:n?i.getCache():void 0,generate:e=>{const{outputOptions:t,outputPluginDriver:s}=a(e);return o(t,!1,s).then(e=>Fa(e))},watchFiles:Object.keys(i.watchFiles),write:e=>{const{outputOptions:t,outputPluginDriver:s}=a(e);return t.dir||t.file?o(t,!0,s).then(async e=>(await Promise.all(Object.keys(e).map(s=>function(e,t){const s=Qt(t.dir||Kt(t.file),e.fileName);let i,n;if("asset"===e.type)n=e.source;else if(n=e.code,t.sourcemap&&e.map){let r;"inline"===t.sourcemap?r=e.map.toUrl():(r=`${qt(e.fileName)}.map`,i=Hr(`${s}.map`,e.map.toString())),"hidden"!==t.sourcemap&&(n+=`//# sourceMappingURL=${r}\n`)}return Promise.all([Hr(s,n),i])}(e[s],t))),await s.hookParallel("writeBundle",[t,e]),Fa(e))):Ei({code:"MISSING_OPTION",message:'You must specify "output.file" or "output.dir" for the build.'})}};return!0===s.perf&&(h.getTimings=On),h}(e,null)},Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).rollup={});
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1042-        !checkAllAliases(key, flags.counts) &&
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1043:        `${key}` in defaults) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1044-      return defaults[key]
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1203-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1204:const pluralize = (word, count) => count === 1 ? word : `${word}s`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1205-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1391-	if (!Number.isFinite(number)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1392:		throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1393-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1427-        const [time, memory, total] = timings[label];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1428:        const row = `${label}: ${time.toFixed(0)}ms, ${prettyBytes(memory)} / ${prettyBytes(total)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1429-        console.info(appliedColor(row));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1450-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1451:        commandPlugins.stderr(commandPlugins.color.cyan(`\n${commandPlugins.color.bold(inputFiles)} → ${commandPlugins.color.bold(files.join(', '))}...`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1452-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1470-                if (output.sourcemap === 'inline') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1471:                    source += `\n//# ${SOURCEMAPPING_URL$1}=${file.map.toUrl()}\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1472-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1474-            if (outputs.length > 1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1475:                process.stdout.write(`\n${commandPlugins.color.cyan(commandPlugins.color.bold(`//→ ${file.fileName}:`))}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1476-            process.stdout.write(source);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1485-        warnings.flush();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1486:        commandPlugins.stderr(commandPlugins.color.green(`created ${commandPlugins.color.bold(files.join(', '))} in ${commandPlugins.color.bold(prettyMs(Date.now() - start))}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1487-        if (bundle && bundle.getTimings) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1528-        try {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1529:            return requireRelative_1.resolve(`rollup-config-${pkgName}`, cwd);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1530-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1538-                        code: 'MISSING_EXTERNAL_CONFIG',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1539:                        message: `Could not resolve config file "${commandConfig}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1540-                    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1550-    for (const extension of ['mjs', 'cjs']) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1551:        const fileName = `${DEFAULT_CONFIG_BASE}.${extension}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1552-        if (filesInWorkingDir.has(fileName))
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1554-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1555:    return `${DEFAULT_CONFIG_BASE}.js`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1556-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1597-    if (!silent && warnings.count > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1598:        commandPlugins.stderr(commandPlugins.color.bold(`loaded ${rollup_js.relativeId(fileName)} with warnings`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1599-        warnings.flush();
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1627-                code: 'TRANSPILED_ESM_CONFIG',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1628:                message: `While loading the Rollup configuration from "${rollup_js.relativeId(fileName)}", Node tried to require an ES module from a CommonJS file, which is not supported. A common cause is if there is a package.json file with "type": "module" in the same folder. You can try to fix this by changing the extension of your configuration file to ".cjs" or ".mjs" depending on the content, which will prevent Rollup from trying to preprocess the file but rather hand it to Node directly.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1629-                url: 'https://rollupjs.org/guide/en/#using-untranspiled-config-files',
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1690-	if (options.showMilliseconds && date.getUTCMilliseconds() > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:1691:		end = ` ${date.getUTCMilliseconds()}ms${end}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-1692-	}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2016-                    if (!silent) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:2017:                        resetScreen(commandPlugins.color.underline(`rollup v${rollup_js.version}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2018-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2029-                        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:2030:                        commandPlugins.stderr(commandPlugins.color.cyan(`bundles ${commandPlugins.color.bold(input)} → ${commandPlugins.color.bold(event.output.map(rollup_js.relativeId).join(', '))}...`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2031-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2035-                    if (!silent)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:2036:                        commandPlugins.stderr(commandPlugins.color.green(`created ${commandPlugins.color.bold(event.output.map(rollup_js.relativeId).join(', '))} in ${commandPlugins.color.bold(prettyMs(event.duration))}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2037-                    if (event.result && event.result.getTimings) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2042-                    if (!silent && isTTY) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:2043:                        commandPlugins.stderr(`\n[${dateTime_1()}] waiting for changes...`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2044-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2146-if (command.help || (process.argv.length <= 2 && process.stdin.isTTY)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:2147:    console.log(`\n${help.replace('__VERSION__', rollup_js.version)}\n`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2148-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2149-else if (command.version) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup:2150:    console.log(`rollup v${rollup_js.version}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/bin/rollup-2151-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6435-        const name = this.renderName || this.name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:6436:        return this.renderBaseName ? `${this.renderBaseName}${getPropertyAccess(name)}` : name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6437-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6476-const getPropertyAccess = (name) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:6477:    return /^(?!\d)[\w$]+$/.test(name) ? `.${name}` : `[${JSON.stringify(name)}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6478-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6532-    if (startsWithDigit(str) || blacklisted.has(str))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:6533:        str = `_${str}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6534-    return str || '_';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6619-        const names = unused.length === 1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:6620:            ? `'${unused[0]}' is`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6621-            : `${unused
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6622-                .slice(0, -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:6623:                .map(name => `'${name}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6624-                .join(', ')} and '${unused.slice(-1)}' are`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6626-            code: 'UNUSED_EXTERNAL_IMPORT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:6627:            message: `${names} imported from external module '${this.id}' but never used`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-6628-            names: unused,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-8556-    while (usedNames.has(safeName) || RESERVED_NAMES[safeName]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:8557:        safeName = `${baseName}$${toBase64(count++)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-8558-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-8903-        if (options.format === 'system' && this.id && this.id.variable.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:8904:            code.appendLeft(this.end, ` exports('${this.id.variable.exportName}', ${this.id.variable.getName()});`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-8905-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9132-                /* istanbul ignore next */
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9133:                throw new Error(`Internal Error: Unexpected identifier kind ${kind}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9134-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9188-                if (isShorthandProperty) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9189:                    code.prependRight(this.start, `${this.name}: `);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9190-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9202-            code: 'ILLEGAL_REASSIGNMENT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9203:            message: `Illegal reassignment to import '${this.name}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9204-        }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9390-            if (options.format === 'system' && this.variable.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9391:                code.overwrite(start, end, `exports('${this.variable.exportName}', ${this.variable.getName()});`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9392-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9418-        if (needsId) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9419:            code.appendLeft(getIdInsertPosition(code.original, declarationKeyword, declarationStart), ` ${name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9420-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9423-            this.variable.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9424:            code.appendLeft(this.end, ` exports('${this.variable.exportName}', ${name});`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9425-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9428-        const systemBinding = options.format === 'system' && this.variable.exportName
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9429:            ? `exports('${this.variable.exportName}', `
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9430-            : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9431:        code.overwrite(this.start, declarationStart, `${options.varOrConst} ${this.variable.getName()} = ${systemBinding}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9432-        const hasTrailingSemicolon = code.original.charCodeAt(this.end - 1) === 59; /*";"*/
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9589-            if (this.referencedEarly || original.isReassigned) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9590:                return `${t}get ${name}${_}()${_}{${_}return ${original.getName()}${options.compact ? '' : ';'}${_}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9591-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9592:            const safeName = RESERVED_NAMES[name] ? `'${name}'` : name;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9593:            return `${t}${safeName}: ${original.getName()}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9594-        });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9595-        if (options.namespaceToStringTag) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9596:            members.unshift(`${t}[Symbol.toStringTag]:${_}'Module'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9597-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9599-        if (!hasExternalReexports)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9600:            members.unshift(`${t}__proto__:${_}null`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9601:        let output = `{${n}${members.join(`,${n}`)}${n}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9602-        if (hasExternalReexports || this.syntheticNamedExports) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9609-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9610:            output = `/*#__PURE__*/Object.assign(${assignmentArgs.join(`,${_}`)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9611-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9612-        if (options.freeze) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9613:            output = `/*#__PURE__*/Object.freeze(${output})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9614-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9615-        const name = this.getName();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9616:        output = `${options.varOrConst} ${name}${_}=${_}${output};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9617-        if (options.format === 'system' && this.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9618:            output += `${n}exports('${this.exportName}',${_}${name});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9619-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9644-                        dep.namedExportsMode && expt.imported !== '*' && expt.imported !== 'default'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9645:                            ? `${dep.name}.${expt.imported}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9646-                            : dep.name;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9650-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9651:        return `${mechanism}${local};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9652-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9662-                        exportBlock +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9663:                            `Object.keys(${name}).forEach(function${_}(k)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9664:                                `${t}if${_}(k${_}!==${_}'default')${_}Object.defineProperty(exports,${_}k,${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9665:                                `${t}${t}enumerable:${_}true,${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9666:                                `${t}${t}get:${_}function${_}()${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9667:                                `${t}${t}${t}return ${name}[k];${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9668:                                `${t}${t}}${n}${t}});${n}});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9669-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9671-                        exportBlock +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9672:                            `Object.keys(${name}).forEach(function${_}(k)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9673:                                `${t}if${_}(k${_}!==${_}'default')${_}exports[k]${_}=${_}${name}[k];${n}});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9674-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9689-                            (imports && imports.some(specifier => specifier.imported !== 'default')))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9690:                        exportBlock += `exports.${specifier.reexported}${_}=${_}${name}${interop !== false ? '__default' : '.default'};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9691-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9692-                    else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9693:                        exportBlock += `exports.${specifier.reexported}${_}=${_}${name};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9694-                    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9700-                        ? name
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9701:                        : `${name}.${specifier.imported}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9702-                    exportBlock += specifier.needsLiveBinding
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9703:                        ? `Object.defineProperty(exports,${_}'${specifier.reexported}',${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9704:                            `${t}enumerable:${_}true,${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9705:                            `${t}get:${_}function${_}()${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9706:                            `${t}${t}return ${importName};${n}${t}}${n}});`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9707:                        : `exports.${specifier.reexported}${_}=${_}${importName};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9708-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9711-                        exportBlock += n;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9712:                    exportBlock += `exports.${specifier.reexported}${_}=${_}${name};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9713-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9717-    for (const expt of exports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9718:        const lhs = `exports.${expt.exported}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9719-        const rhs = expt.local;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9722-                exportBlock += n;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9723:            exportBlock += `${lhs}${_}=${_}${rhs};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9724-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9735-        if (exportsNames) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9736:            return (`${varOrConst} ${name}__default${_}=${_}'default'${_}in ${name}${_}?` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9737:                `${_}${name}['default']${_}:${_}${name};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9738-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9739:        return (`${name}${_}=${_}${name}${_}&&${_}Object.prototype.hasOwnProperty.call(${name},${_}'default')${_}?` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9740:            `${_}${name}['default']${_}:${_}${name};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9741-    })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9746-function copyPropertyLiveBinding(_, n, t, i) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9747:    return (`${i}var d${_}=${_}Object.getOwnPropertyDescriptor(e,${_}k);${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9748:        `${i}Object.defineProperty(n,${_}k,${_}d.get${_}?${_}d${_}:${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9749:        `${i}${t}enumerable:${_}true,${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9750:        `${i}${t}get:${_}function${_}()${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9751:        `${i}${t}${t}return e[k];${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9752:        `${i}${t}}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9753:        `${i}});${n}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9754-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9755-function copyPropertyStatic(_, n, _t, i) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9756:    return `${i}n[k]${_}=e${_}[k];${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9757-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9758-function getInteropNamespace(_, n, t, liveBindings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9759:    return (`function ${INTEROP_NAMESPACE_VARIABLE}(e)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9760:        `${t}if${_}(e${_}&&${_}e.__esModule)${_}{${_}return e;${_}}${_}else${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9761:        `${t}${t}var n${_}=${_}{};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9762:        `${t}${t}if${_}(e)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9763:        `${t}${t}${t}Object.keys(e).forEach(function${_}(k)${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9764-        (liveBindings ? copyPropertyLiveBinding : copyPropertyStatic)(_, n, t, t + t + t + t) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9765:        `${t}${t}${t}});${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9766:        `${t}${t}}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9767:        `${t}${t}n['default']${_}=${_}e;${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9768:        `${t}${t}return n;${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9769:        `${t}}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9770:        `}${n}${n}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9771-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9801-    const detail = externalBuiltins.length === 1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9802:        ? `module ('${externalBuiltins[0]}')`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9803-        : `modules (${externalBuiltins
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9804-            .slice(0, -1)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9805:            .map(name => `'${name}'`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9806-            .join(', ')} and '${externalBuiltins.slice(-1)}')`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9808-        code: 'MISSING_NODE_BUILTINS',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9809:        message: `Creating a browser bundle that depends on Node.js built-in ${detail}. You might need to include https://www.npmjs.com/package/rollup-plugin-node-builtins`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9810-        modules: externalBuiltins
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9824-    warnOnBuiltins(warn, dependencies);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9825:    const deps = dependencies.map(m => `'${removeExtensionFromRelativeAmdId(m.id)}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9826-    const args = dependencies.map(m => m.name);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9841-    const amdOptions = options.amd || {};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9842:    const params = (amdOptions.id ? `'${amdOptions.id}',${_}` : ``) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9843:        (deps.length ? `[${deps.join(`,${_}`)}],${_}` : ``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9844:    const useStrict = options.strict !== false ? `${_}'use strict';` : ``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9845-    const define = amdOptions.define || 'define';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9846:    const wrapperStart = `${define}(${params}function${_}(${args.join(`,${_}`)})${_}{${useStrict}${n}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9847-    // var foo__default = 'default' in foo ? foo['default'] : foo;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9860-    if (namedExportsMode && hasExports && isEntryModuleFacade && options.esModule)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9861:        magicString.append(`${n}${n}${options.compact ? compactEsModuleExport : esModuleExport}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9862-    if (outro)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9873-    intro =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9874:        (options.strict === false ? intro : `'use strict';${n}${n}${intro}`) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9875-            (namedExportsMode && hasExports && isEntryModuleFacade && options.esModule
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9876:                ? `${options.compact ? compactEsModuleExport : esModuleExport}${n}${n}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9877-                : '');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9885-            if (importBlock) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9886:                importBlock += !options.compact || definingVariable ? `;${n}` : ',';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9887-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9888-            definingVariable = false;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9889:            importBlock += `require('${id}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9890-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9892-            importBlock +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9893:                options.compact && definingVariable ? ',' : `${importBlock ? `;${n}` : ''}${varOrConst} `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9894-            definingVariable = true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9895-            if (!interop || isChunk || !exportsDefault || !namedExportsMode) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9896:                importBlock += `${name}${_}=${_}require('${id}')`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9897-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9900-                if (exportsNames)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9901:                    importBlock += `${name}${_}=${_}require('${id}')${options.compact ? ',' : `;\n${varOrConst} `}${name}__default${_}=${_}${INTEROP_DEFAULT_VARIABLE}(${name})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9902-                else
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9903:                    importBlock += `${name}${_}=${_}${INTEROP_DEFAULT_VARIABLE}(require('${id}'))`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9904-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9911-        intro +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9912:            `function ${INTEROP_DEFAULT_VARIABLE}${_}(${ex})${_}{${_}return${_}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9913:                `(${ex}${_}&&${_}(typeof ${ex}${_}===${_}'object')${_}&&${_}'default'${_}in ${ex})${_}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9914:                `?${_}${ex}['default']${_}:${_}${ex}${options.compact ? '' : '; '}}${n}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9915-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9920-        intro += importBlock + n + n;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9921:    const exportBlock = getExportBlock(exports, dependencies, namedExportsMode, options.interop, options.compact, t, `module.exports${_}=${_}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9922-    magicString.prepend(intro);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9948-        if (!reexports && !imports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9949:            importBlock.push(`import${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9950-            continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9967-            if (starImport) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9968:                importBlock.push(`import${_}*${_}as ${starImport.local} from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9969-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9970-            if (defaultImport && importedNames.length === 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9971:                importBlock.push(`import ${defaultImport.local} from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9972-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9973-            else if (importedNames.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9974:                importBlock.push(`import ${defaultImport ? `${defaultImport.local},${_}` : ''}{${_}${importedNames
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9975-                    .map(specifier => {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9979-                    else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9980:                        return `${specifier.imported} as ${specifier.local}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9981-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9982-                })
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:9983:                    .join(`,${_}`)}${_}}${_}from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-9984-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10001-            if (starExport) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10002:                importBlock.push(`export${_}*${_}from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10003-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10006-                    !imports.some(specifier => specifier.imported === '*' && specifier.local === name)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10007:                    importBlock.push(`import${_}*${_}as ${name} from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10008-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10009-                for (const specifier of namespaceReexports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10010:                    importBlock.push(`export${_}{${_}${name === specifier.reexported ? name : `${name} as ${specifier.reexported}`} };`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10011-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10019-                    else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10020:                        return `${specifier.imported} as ${specifier.reexported}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10021-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10022-                })
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10023:                    .join(`,${_}`)}${_}}${_}from${_}'${id}';`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10024-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10033-        if (specifier.exported === 'default') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10034:            exportBlock.push(`export default ${specifier.local};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10035-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10038-                ? specifier.local
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10039:                : `${specifier.local} as ${specifier.exported}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10040-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10042-    if (exportDeclaration.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10043:        exportBlock.push(`export${_}{${_}${exportDeclaration.join(`,${_}`)}${_}};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10044-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10071-        while (lineNum.length < digits)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10072:            lineNum = ` ${lineNum}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10073-        if (isErrorLine) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10074-            const indicator = spaces(digits + 2 + tabsToSpaces(str.slice(0, column)).length) + '^';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10075:            return `${lineNum}: ${tabsToSpaces(str)}\n${indicator}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10076-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10077:        return `${lineNum}: ${tabsToSpaces(str)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10078-    })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10152-        code: Errors.ASSET_NOT_FINALISED,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10153:        message: `Plugin error - Unable to get file name for asset "${name}". Ensure that the source is set and that generate is called first.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10154-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10164-        code: Errors.CHUNK_NOT_GENERATED,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10165:        message: `Plugin error - Unable to get file name for chunk "${name}". Ensure that generate is called first.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10166-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10170-        code: Errors.ASSET_NOT_FOUND,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10171:        message: `Plugin error - Unable to set the source for unknown asset "${assetReferenceId}".`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10172-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10176-        code: Errors.ASSET_SOURCE_ALREADY_SET,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10177:        message: `Unable to set the source for asset "${name}", source already set.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10178-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10182-        code: Errors.ASSET_SOURCE_MISSING,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10183:        message: `Plugin error creating asset "${assetName}" - no asset source set.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10184-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10188-        code: Errors.BAD_LOADER,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10189:        message: `Error loading ${relativeId(id)}: plugin load hook should return a string, a { code, map } object, or nothing/null`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10190-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10200-        code: Errors.FILE_NOT_FOUND,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10201:        message: `Plugin error - Unable to get file name for unknown file "${assetReferenceId}".`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10202-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10206-        code: Errors.FILE_NAME_CONFLICT,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10207:        message: `The emitted file "${fileName}" overwrites a previously emitted file of the same name.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10208-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10212-        code: Errors.INPUT_HOOK_IN_OUTPUT_PLUGIN,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10213:        message: `The "${hookName}" hook used by the output plugin ${pluginName} is a build time hook and will not be run for that plugin. Either this plugin cannot be used as an output plugin, or it should have an option to configure it as an output plugin.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10214-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10218-        code: Errors.INVALID_CHUNK,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10219:        message: `Cannot assign ${relativeId(moduleId)} to the "${assignToAlias}" chunk as it is already in the "${currentAlias}" chunk.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10220-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10224-        code: Errors.INVALID_EXPORT_OPTION,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10225:        message: `"output.exports" must be "default", "named", "none", "auto", or left unspecified (defaults to "auto"), received "${optionValue}"`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10226-        url: `https://rollupjs.org/guide/en/#output-exports`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10231-        code: 'INVALID_EXPORT_OPTION',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10232:        message: `"${optionValue}" was specified for "output.exports", but entry module "${relativeId(entryModule)}" has the following exports: ${keys.join(', ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10233-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10237-        code: Errors.INVALID_EXTERNAL_ID,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10238:        message: `'${source}' is imported as an external by ${relativeId(importer)}, but is already an existing non-external module id.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10239-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10243-        code: Errors.INVALID_OPTION,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10244:        message: `Invalid value for option "${option}" - ${explanation}.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10245-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10262-        id: facadeModuleId,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10263:        message: `Entry module "${relativeId(facadeModuleId)}" is using named and default exports together. Consumers of your bundle will have to use \`${name ||
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10264-            'chunk'}["default"]\` to access the default export, which may not be what you want. Use \`output.exports: "named"\` to disable this warning`,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10270-        code: Errors.NAMESPACE_CONFLICT,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10271:        message: `Conflicting namespaces: ${relativeId(reexportingModule.id)} re-exports '${name}' from both ${relativeId(reexportingModule.exportsAll[name])} and ${relativeId(additionalExportAllModule.exportsAll[name])} (will be ignored)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10272-        name,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10279-        code: Errors.UNRESOLVED_ENTRY,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10280:        message: `Entry module cannot be external (${relativeId(unresolvedId)}).`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10281-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10285-        code: Errors.UNRESOLVED_ENTRY,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10286:        message: `Could not resolve entry module (${relativeId(unresolvedId)}).`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10287-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10291-        code: Errors.UNRESOLVED_IMPORT,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10292:        message: `Could not resolve '${source}' from ${relativeId(importer)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10293-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10298-        importer: relativeId(importer),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10299:        message: `'${source}' is imported by ${relativeId(importer)}, but could not be resolved – treating it as an external dependency`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10300-        source,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10307-        importer: relativeId(importer),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10308:        message: `External '${source}' can not have 'syntheticNamedExports' enabled.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10309-        source
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10322-function property(prop) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10323:    return shouldUseDot.test(prop) ? `.${prop}` : `['${prop}']`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10324-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10340-    return (parts
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10341:        .map(part => ((acc += property(part)), `${acc}${_}=${_}${acc}${_}||${_}{}${compact ? '' : ';'}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10342-        .join(compact ? ',' : '\n') + (compact && parts.length ? ';' : '\n'));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10352-    let deepAssignment = parts
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10353:        .map(part => ((acc += property(part)), `${acc}${_}=${_}${acc}${_}||${_}{}`))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10354:        .concat(`${acc}${property(last)}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10355:        .join(`,${_}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10356:        .concat(`${_}=${_}${assignment}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10357-    if (parts.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10358:        deepAssignment = `(${deepAssignment})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10359-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10373-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10374:const thisProp = (name) => `this${keypath(name)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10375-function iife(magicString, { dependencies, exports, hasExports, indentString: t, intro, namedExportsMode, outro, varOrConst, warn }, options) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10383-            code: 'ILLEGAL_IDENTIFIER_AS_NAME',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10384:            message: `Given name "${name}" is not a legal JS identifier. If you need this, you can try "output.extend: true".`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10385-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10398-        if (extend) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10399:            deps.unshift(`${thisProp(name)}${_}=${_}${thisProp(name)}${_}||${_}{}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10400-            args.unshift('exports');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10406-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10407:    const useStrict = options.strict !== false ? `${t}'use strict';${n}${n}` : ``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10408:    let wrapperIntro = `(function${_}(${args.join(`,${_}`)})${_}{${n}${useStrict}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10409-    if (hasExports && (!extend || !namedExportsMode) && name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10410-        wrapperIntro =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10411:            (useVariableAssignment ? `${varOrConst} ${name}` : thisProp(name)) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10412:                `${_}=${_}${wrapperIntro}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10413-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10416-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10417:    let wrapperOutro = `${n}${n}}(${deps.join(`,${_}`)}));`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10418-    if (!extend && namedExportsMode && hasExports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10419:        wrapperOutro = `${n}${n}${t}return exports;${wrapperOutro}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10420-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10453-const getStarExcludesBlock = (starExcludes, varOrConst, _, t, n) => starExcludes
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10454:    ? `${n}${t}${varOrConst} _starExcludes${_}=${_}{${_}${Array.from(starExcludes).join(`:${_}1,${_}`)}${starExcludes.size ? `:${_}1` : ''}${_}};`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10455-    : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10456:const getImportBindingsBlock = (importBindings, _, t, n) => (importBindings.length ? `${n}${t}var ${importBindings.join(`,${_}`)};` : '');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10457-function getExportsBlock(exports, _, t, n) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10461-    if (exports.length === 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10462:        return `${t}${t}${t}exports('${exports[0].name}',${_}${exports[0].value});${n}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10463-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10464:    return (`${t}${t}${t}exports({${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10465:        exports.map(({ name, value }) => `${t}${t}${t}${t}${name}:${_}${value}`).join(`,${n}`) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10466:        `${n}${t}${t}${t}});${n}${n}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10467-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10476-    const _ = options.compact ? '' : ' ';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10477:    const dependencyIds = dependencies.map(m => `'${m.id}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10478-    const importBindings = [];
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10486-                if (specifier.imported === '*') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10487:                    setter.push(`${specifier.local}${_}=${_}module;`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10488-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10489-                else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10490:                    setter.push(`${specifier.local}${_}=${_}module.${specifier.imported};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10491-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10508-                    if (!createdSetter) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10509:                        setter.push(`${varOrConst} _setter${_}=${_}{};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10510-                        createdSetter = true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10511-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10512:                    setter.push(`for${_}(var _$p${_}in${_}module)${_}{`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10513:                    setter.push(`${t}if${_}(!_starExcludes[_$p])${_}_setter[_$p]${_}=${_}module[_$p];`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10514-                    setter.push('}');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10519-                        continue;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10520:                    setter.push(`exports('${specifier.reexported}',${_}module);`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10521-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10526-                    if (!createdSetter) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10527:                        setter.push(`${varOrConst} _setter${_}=${_}{};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10528-                        createdSetter = true;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10529-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10530:                    setter.push(`_setter.${specifier.reexported}${_}=${_}module.${specifier.imported};`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10531-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10538-                for (const specifier of reexports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10539:                    setter.push(`exports('${specifier.reexported}',${_}module.${specifier.imported});`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10540-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10542-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10543:        setters.push(setter.join(`${n}${t}${t}${t}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10544-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10545:    const registeredName = options.name ? `'${options.name}',${_}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10546-    const wrapperParams = accessedGlobals.has('module')
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10547:        ? `exports,${_}module`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10548-        : hasExports
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10550-            : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10551:    let wrapperStart = `System.register(${registeredName}[` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10552:        dependencyIds.join(`,${_}`) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10553:        `],${_}function${_}(${wrapperParams})${_}{${n}${t}${options.strict ? "'use strict';" : ''}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10554-        getStarExcludesBlock(starExcludes, varOrConst, _, t, n) +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10558-                .map(s => s
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10559:                ? `function${_}(module)${_}{${n}${t}${t}${t}${s}${n}${t}${t}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10560:                : `function${_}()${_}{}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10561:                .join(`,${_}`)}],`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10562-            : ''}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10563-    wrapperStart +=
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10564:        `${t}${t}execute:${_}${usesTopLevelAwait ? `async${_}` : ''}function${_}()${_}{${n}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10565-            getHoistedExportsBlock(exports, _, t, n);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10566:    const wrapperEnd = `${n}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10567-        getMissingExportsBlock(exports, _, t, n) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10568:        `${t}${t}}${n}${t}}${options.compact ? '' : ';'}${n}});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10569-    if (intro)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10573-    return magicString
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10574:        .indent(`${t}${t}${t}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10575-        .append(wrapperEnd)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10581-        return 'null';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10582:    return `${globalVar}${keypath(name)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10583-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10586-    let acc = globalVar;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10587:    return parts.map(part => ((acc += property(part)), acc)).join(`${_}&&${_}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10588-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10600-    warnOnBuiltins(warn, dependencies);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10601:    const amdDeps = dependencies.map(m => `'${m.id}'`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10602:    const cjsDeps = dependencies.map(m => `require('${m.id}')`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10603-    const trimmedImports = trimEmptyImports(dependencies);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10608-        cjsDeps.unshift(`exports`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10609:        globalDeps.unshift(assignToDeepVariable(options.name, globalVar, options.globals, options.compact, `${options.extend ? `${globalProp(options.name, globalVar)}${_}||${_}` : ''}{}`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10610-        factoryArgs.unshift('exports');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10612-    const amdOptions = options.amd || {};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10613:    const amdParams = (amdOptions.id ? `'${amdOptions.id}',${_}` : ``) +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10614:        (amdDeps.length ? `[${amdDeps.join(`,${_}`)}],${_}` : ``);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10615-    const define = amdOptions.define || 'define';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10616:    const cjsExport = !namedExportsMode && hasExports ? `module.exports${_}=${_}` : ``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10617:    const useStrict = options.strict !== false ? `${_}'use strict';${n}` : ``;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10618-    let iifeExport;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10622-        if (!namedExportsMode && hasExports) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10623:            factory = `var ${noConflictExportsVar}${_}=${_}${assignToDeepVariable(options.name, globalVar, options.globals, options.compact, `${factoryVar}(${globalDeps.join(`,${_}`)})`)};`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10624-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10627-            factory =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10628:                `var ${noConflictExportsVar}${_}=${_}${module};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10629:                    `${t}${t}${factoryVar}(${[noConflictExportsVar].concat(globalDeps).join(`,${_}`)});`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10630-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10631-        iifeExport =
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10632:            `(function${_}()${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10633:                `${t}${t}var current${_}=${_}${safeAccess(options.name, globalVar, _)};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10634:                `${t}${t}${factory}${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10635:                `${t}${t}${noConflictExportsVar}.noConflict${_}=${_}function${_}()${_}{${_}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10636:                `${globalProp(options.name, globalVar)}${_}=${_}current;${_}return ${noConflictExportsVar}${options.compact ? '' : '; '}};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10637:                `${t}}())`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10638-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10639-    else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10640:        iifeExport = `${factoryVar}(${globalDeps.join(`,${_}`)})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10641-        if (!namedExportsMode && hasExports) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10645-    const iifeNeedsGlobal = hasExports || (options.noConflict === true && namedExportsMode) || globalDeps.length > 0;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10646:    const globalParam = iifeNeedsGlobal ? `${globalVar},${_}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10647:    const globalArg = iifeNeedsGlobal ? `this,${_}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10648:    const iifeStart = iifeNeedsGlobal ? `(${globalVar}${_}=${_}${globalVar}${_}||${_}self,${_}` : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10649-    const iifeEnd = iifeNeedsGlobal ? ')' : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10650-    const cjsIntro = iifeNeedsGlobal
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10651:        ? `${t}typeof exports${_}===${_}'object'${_}&&${_}typeof module${_}!==${_}'undefined'${_}?` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10652:            `${_}${cjsExport}${factoryVar}(${cjsDeps.join(`,${_}`)})${_}:${n}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10653-        : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10654-    // factory function should be wrapped by parentheses to avoid lazy parsing
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10655:    const wrapperIntro = `(function${_}(${globalParam}${factoryVar})${_}{${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10656-        cjsIntro +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10657:        `${t}typeof ${define}${_}===${_}'function'${_}&&${_}${define}.amd${_}?${_}${define}(${amdParams}${factoryVar})${_}:${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10658:        `${t}${iifeStart}${iifeExport}${iifeEnd};${n}` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10659:        `}(${globalArg}(function${_}(${factoryArgs.join(', ')})${_}{${useStrict}${n}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10660-    const wrapperOutro = n + n + '})));';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10810-                code: 'MODULE_LEVEL_DIRECTIVE',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10811:                message: `Module level directives cause errors when bundled, '${this.directive}' was ignored.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10812-            }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10964-        return `exports({${exportedVariables
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10965:            .map(variable => `${variable.safeExportName || variable.exportName}: ${variable.getName()}`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10966-            .join(', ')}});`;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-10998-                const operation = this.operator.length > 1
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:10999:                    ? ` ${this.left.variable.exportName} ${this.operator.slice(0, -1)}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11000-                    : '';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:11001:                code.overwrite(operatorPos, operatorPos + this.operator.length, `= exports('${this.left.variable.exportName}',${operation}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11002-                code.appendLeft(this.right.end, `)`);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11007-                if (systemPatternExports.length > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:11008:                    code.prependRight(this.start, `function (v) {${getSystemExportStatement(systemPatternExports)} return v;} (`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11009-                    code.appendLeft(this.end, ')');
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11376-                code: 'ILLEGAL_NAMESPACE_REASSIGNMENT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:11377:                message: `Illegal reassignment to import '${this.object.name}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11378-            }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11405-                importer: relativeId(this.context.fileName),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:11406:                message: `'${exportName}' is not exported by '${relativeId(fileName)}'`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11407-                missing: exportName,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11429-                    code: 'CANNOT_CALL_NAMESPACE',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:11430:                    message: `Cannot call a namespace ('${this.callee.name}')`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-11431-                }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12210-            const s = options.compact ? '' : ';';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12211:            code.overwrite(this.start, this.end, `Promise.resolve().then(function${_}()${_}{${_}return ${this.inlineNamespace.getName()}${s}${_}})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12212-            return;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12262-                        return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12263:                            left: `new Promise(function${_}(${resolve})${_}{${_}${resolve}({${_}'default':${_}require(`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12264:                            right: `)${_}});${_}})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12265-                        };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12267-                        return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12268:                            left: `new Promise(function${_}(${resolve})${_}{${_}${resolve}(${INTEROP_NAMESPACE_VARIABLE}(require(`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12269:                            right: `)));${_}})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12270-                        };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12272-                        return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12273:                            left: `new Promise(function${_}(${resolve})${_}{${_}${resolve}(require(`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12274:                            right: `));${_}})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12275-                        };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12282-                const resolveNamespace = this.exportMode === 'default'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12283:                    ? `function${_}(m)${_}{${_}${resolve}({${_}'default':${_}m${_}});${_}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12284-                    : this.exportMode === 'auto'
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12285:                        ? `function${_}(m)${_}{${_}${resolve}(${INTEROP_NAMESPACE_VARIABLE}(m));${_}}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12286-                        : resolve;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12287-                return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12288:                    left: `new Promise(function${_}(${resolve},${_}${reject})${_}{${_}require([`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12289:                    right: `],${_}${resolveNamespace},${_}${reject})${_}})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12290-                };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12299-                    return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12300:                        left: `${options.dynamicImportFunction}(`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12301-                        right: ')'
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12542-            else if (metaProperty.startsWith(ASSET_PREFIX)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12543:                this.context.warnDeprecation(`Using the "${ASSET_PREFIX}" prefix to reference files is deprecated. Use the "${FILE_PREFIX}" prefix instead.`, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12544-                assetReferenceId = metaProperty.substr(ASSET_PREFIX.length);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12547-            else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12548:                this.context.warnDeprecation(`Using the "${CHUNK_PREFIX}" prefix to reference files is deprecated. Use the "${FILE_PREFIX}" prefix instead.`, true);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12549-                chunkReferenceId = metaProperty.substr(CHUNK_PREFIX.length);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12615-};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12616:const getResolveUrl = (path, URL = 'URL') => `new ${URL}(${path}).href`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12617:const getRelativeUrlFromDocument = (relativePath) => getResolveUrl(`'${relativePath}', document.currentScript && document.currentScript.src || document.baseURI`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12618-const getGenericImportMetaMechanism = (getUrl) => (prop, chunkId) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12619-    const urlMechanism = getUrl(chunkId);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12620:    return prop === null ? `({ url: ${urlMechanism} })` : prop === 'url' ? urlMechanism : 'undefined';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12621-};
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12622:const getUrlFromDocument = (chunkId) => `(document.currentScript && document.currentScript.src || new URL('${chunkId}', document.baseURI).href)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12623-const relativeUrlMechanisms = {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12626-            relativePath = './' + relativePath;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12627:        return getResolveUrl(`require.toUrl('${relativePath}'), document.baseURI`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12628-    },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12629:    cjs: relativePath => `(typeof document === 'undefined' ? ${getResolveUrl(`'file:' + __dirname + '/${relativePath}'`, `(require('u' + 'rl').URL)`)} : ${getRelativeUrlFromDocument(relativePath)})`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12630:    es: relativePath => getResolveUrl(`'${relativePath}', import.meta.url`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12631-    iife: relativePath => getRelativeUrlFromDocument(relativePath),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12632:    system: relativePath => getResolveUrl(`'${relativePath}', module.meta.url`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12633:    umd: relativePath => `(typeof document === 'undefined' ? ${getResolveUrl(`'file:' + __dirname + '/${relativePath}'`, `(require('u' + 'rl').URL)`)} : ${getRelativeUrlFromDocument(relativePath)})`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12634-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12636-    amd: getGenericImportMetaMechanism(() => getResolveUrl(`module.uri, document.baseURI`)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12637:    cjs: getGenericImportMetaMechanism(chunkId => `(typeof document === 'undefined' ? ${getResolveUrl(`'file:' + __filename`, `(require('u' + 'rl').URL)`)} : ${getUrlFromDocument(chunkId)})`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12638-    iife: getGenericImportMetaMechanism(chunkId => getUrlFromDocument(chunkId)),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12639:    system: prop => (prop === null ? `module.meta` : `module.meta.${prop}`),
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:12640:    umd: getGenericImportMetaMechanism(chunkId => `(typeof document === 'undefined' ? ${getResolveUrl(`'file:' + __filename`, `(require('u' + 'rl').URL)`)} : ${getUrlFromDocument(chunkId)})`)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-12641-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13326-                    code: 'CANNOT_CALL_NAMESPACE',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:13327:                    message: `Cannot call a namespace ('${name}')`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13328-                }, this.start);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13554-            if (this.prefix) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:13555:                code.overwrite(this.start, this.end, `exports('${variable.exportName}', ${this.operator}${name})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13556-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13560-                    case '++':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:13561:                        op = `${name} + 1`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13562-                        break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13563-                    case '--':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:13564:                        op = `${name} - 1`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13565-                        break;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13566-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:13567:                code.overwrite(this.start, this.end, `(exports('${variable.exportName}', ${op}), ${name}${this.operator})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13568-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13702-                    else if (node.id.variable.exportName) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:13703:                        code.prependLeft(code.original.indexOf('=', node.id.end) + 1, ` exports('${node.id.variable.safeExportName || node.id.variable.exportName}',`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13704-                        nextSeparatorString += ')';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13713-                    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:13714:                    leadingString += `${this.kind} `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-13715-                    isInDeclaration = true;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14214-SOURCEMAPPING_URL += 'ppingURL';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14215:const SOURCEMAPPING_URL_RE = new RegExp(`^#\\s+${SOURCEMAPPING_URL}=.+\\n?`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14216-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14238-        case 1:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14239:            return `# ${label}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14240-        case 2:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14241:            return `## ${label}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14242-        case 3:
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14244-        default:
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14245:            return `${'  '.repeat(level - 4)}- ${label}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14246-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14289-        if (TIMED_PLUGIN_HOOKS[hook] === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14290:            let timerLabel = `plugin ${index}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14291-            if (plugin.name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14292:                timerLabel += ` (${plugin.name})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14293-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14294:            timerLabel += ` - ${hook}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14295-            timedPlugin[hook] = function () {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14299-                if (result && typeof result.then === 'function') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14300:                    timeStart(`${timerLabel} (async)`, 4);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14301:                    result.then(() => timeEnd(`${timerLabel} (async)`, 4));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14302-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14356-        code: 'MISSING_EXPORT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14357:        message: `'${exportName}' is not exported by ${relativeId(importedModule)}, imported by ${relativeId(importingModule.id)}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14358-        url: `https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module`
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14442-                    },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14443:                    message: `Error when using sourcemap for reporting an error: ${e.message}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14444-                    pos
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14468-            if (module instanceof ExternalModule) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14469:                allExportNames.add(`*${module.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14470-                continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14581-            if (module instanceof ExternalModule) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14582:                reexports.add(`*${module.id}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14583-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14968-            exportName: name,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:14969:            message: `Missing export "${name}" has been shimmed in module ${relativeId(this.id)}.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-14970-        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15018-                        return error({
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15019:                            message: `Multiple conflicting contents for sourcemap source ${traced.source.filename}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15020-                        });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15077-            code: 'SOURCEMAP_BROKEN',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15078:            message: `Sourcemap is likely to be incorrect: a plugin (${map.plugin}) was used to transform ` +
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15079-                "files, but didn't generate a sourcemap for the transformation. Consult the plugin " +
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15365-    if (!isPlainPathFragment(pattern))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15366:        return error(errFailedValidation(`Invalid pattern "${pattern}" for "${patternName}", patterns can be neither absolute nor relative paths and must not contain invalid characters.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15367-    return pattern.replace(/\[(\w+)\]/g, (_match, type) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15368-        if (!replacements.hasOwnProperty(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15369:            return error(errFailedValidation(`"[${type}]" is not a valid placeholder in "${patternName}" pattern.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15370-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15372-        if (!isPlainPathFragment(replacement))
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15373:            return error(errFailedValidation(`Invalid substitution "${replacement}" for placeholder "[${type}]" in "${patternName}" pattern, can be neither absolute nor relative path.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15374-        return replacement;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15404-            guess: module.variableName,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15405:            message: `No name was provided for external module '${module.id}' in output.globals – guessing '${module.variableName}'`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15406-            source: module.id
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15541-            });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15542:            path = relative(preserveModulesRelativeDir, `${dirname(sanitizedId)}/${name}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15543-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15544-        else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15545:            path = `_virtual/${basename(sanitizedId)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15546-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15612-            const variable = this.exportNames[exportName];
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15613:            return `${relativeId(variable.module.id).replace(/\\/g, '/')}:${variable.name}:${exportName}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15614-        })
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15625-        }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15626:        throw new Error(`Internal Error: Could not find export name for variable ${variable.name}.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15627-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15700-        if (this.needsExportsShim) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15701:            magicString.prepend(`${n}${renderOptions.varOrConst} ${MISSING_EXPORT_SHIM_VARIABLE}${_}=${_}void 0;${n}${n}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15702-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15714-                code: 'EMPTY_BUNDLE',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15715:                message: `Generated an empty chunk: "${chunkName}"`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15716-            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15765-                code: 'INVALID_TLA_FORMAT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15766:                message: `Module format ${format} does not support top-level await. Use the "es" or "system" output formats rather.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15767-            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15867-                const renderedResolution = resolution instanceof Module
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:15868:                    ? `'${this.getRelativePath(resolution.facadeChunk.id, stripKnownJsExtensions)}'`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-15869-                    : resolution instanceof ExternalModule
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-16250-                graph.warnDeprecation({
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:16251:                    message: `The "${deprecated}" hook used by plugin ${plugin.name} is deprecated. The "${replacement}" hook should be used instead.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-16252-                    plugin: plugin.name
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-16324-        code: 'DUPLICATE_PLUGIN_NAME',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:16325:        message: `The plugin name ${pluginName} is being used twice in the same build. Plugin names must be distinct or provide a cacheKey (please post an issue to the plugin if you are a plugin user).`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-16326-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-16665-            timeEnd('load modules', 3);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:16666:            let msg = `Could not load ${id}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-16667-            if (importer)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:16668:                msg += ` (imported by ${importer})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:16669:            msg += `: ${err.message}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-16670-            err.message = msg;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-16992-        const assetName = emittedFile.fileName || emittedFile.name || fileReferenceId;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:16993:        return error(errFailedValidation(`Could not set source for ${typeof assetName === 'string' ? `asset "${assetName}"` : 'unnamed asset'}, asset source needs to be a string, Uint8Array or Buffer.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-16994-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17049-            if (consumedFile.type !== 'asset') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17050:                return error(errFailedValidation(`Asset sources can only be set for emitted assets but "${referenceId}" is an emitted chunk.`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17051-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17124-        if (typeof emittedChunk.id !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17125:            return error(errFailedValidation(`Emitted chunks need to have a valid string id, received "${emittedChunk.id}"`));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17126-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17204-            graph.warnDeprecation({
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17205:                message: `The "this.${handlerName}" plugin context function used by plugin ${pluginName} is deprecated. The "this.${newHandlerName}" plugin context function should be used instead.`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17206-                plugin: pluginName
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17256-                if (foundModule == null) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17257:                    throw new Error(`Unable to find module ${moduleId}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17258-                }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17322-        code: 'INVALID_PLUGIN_HOOK',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17323:        message: `Error running plugin hook ${hookName} for ${pluginName}, expected a function hook.`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17324-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17701-            do {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17702:                timeStart(`treeshaking pass ${treeshakingPass}`, 3);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17703-                this.needsTreeshakingPass = false;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17707-                }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17708:                timeEnd(`treeshaking pass ${treeshakingPass++}`, 3);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17709-            } while (this.needsTreeshakingPass);
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17720-            if (warning.plugin)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17721:                str += `(${warning.plugin} plugin) `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17722-            if (warning.loc)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17723:                str += `${relativeId(warning.loc.file)} (${warning.loc.line}:${warning.loc.column}) `;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17724-            str += warning.message;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17747-                importer: cyclePath[0],
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17748:                message: `Circular dependency: ${cyclePath.join(' -> ')}`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17749-            });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17764-                        code: 'NON_EXISTENT_EXPORT',
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17765:                        message: `Non-existent export '${importDescription.name}' is imported from ${relativeId(importDescription.module.id)}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17766-                        name: importDescription.name,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17784-}
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17785:const concatSep = (out, next) => (next ? `${out}\n${next}` : out);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17786:const concatDblSep = (out, next) => (next ? `${out}\n\n${next}` : out);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17787-function createAddons(options, outputPluginDriver) {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17797-        if (outro)
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:17798:            outro = `\n\n${outro}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-17799-        if (banner.length)
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-18067-        if (!plugin.name) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:18068:            plugin.name = `${anonymousPrefix}${pluginIndex + 1}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-18069-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-18286-            else {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:18287:                url = `${basename(outputFile.fileName)}.map`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:18288:                writeSourceMapPromise = writeFile(`${fileName}.map`, outputFile.map.toString());
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-18289-            }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-18290-            if (outputOptions.sourcemap !== 'hidden') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js:18291:                source += `//# ${SOURCEMAPPING_URL}=${url}\n`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/rollup.js-18292-            }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-212-    if (opts.capture) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:213:      return `(${result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-214-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-217-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:218:    return `(?:${result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-219-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-245-  if (opts.capture === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:246:    state.result = `(${state.result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-247-  } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:248:    state.result = `(?:${state.result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-249-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-409-  if (stop || start > 1) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:410:    return `{${start + (stop ? ',' + stop : '')}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-411-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-415-function toCharacterClass(a, b, options) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:416:  return `[${a}${(b - a === 1) ? '' : '-'}${b}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-417-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-438-    default: {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:439:      return relax ? `0{0,${diff}}` : `0{${diff}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-440-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-469-const zeros = input => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:470:  let value = `${input}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-471-  let index = -1;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-520-  if (parts.negatives.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:521:    negatives = `-(${prefix}${parts.negatives.join('|')})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-522-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-524-  if (positives && negatives) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:525:    result = `${positives}|${negatives}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-526-  } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-530-  if (options.wrap) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:531:    return `(${prefix}${result})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-532-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-545-  let stop = String.fromCharCode(b);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:546:  return `[${start}-${stop}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-547-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-552-    let prefix = options.capture ? '' : '?:';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:553:    return wrap ? `(${prefix}${start.join('|')})` : start.join('|');
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-554-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-568-  if (options.strictRanges === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:569:    throw new TypeError(`Expected step "${step}" to be a number`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-570-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-632-  let format = options.transform || (val => String.fromCharCode(val));
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:633:  let a = `${start}`.charCodeAt(0);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:634:  let b = `${end}`.charCodeAt(0);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-635-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-730-      if (range.length !== 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:731:        return args.length > 1 && range.length > 1 ? `(${range})` : range;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-732-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-755-  if (!queue.length) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:756:    return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-757-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-765-      for (let ele of stash) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:766:        if (enclose === true && typeof ele === 'string') ele = `{${ele}}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-767-        result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele));
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-945-  if (input.length > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:946:    throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-947-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1403-const WIN_SLASH = '\\\\/';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1404:const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1405-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1415-const QMARK = '[^/]';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1416:const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1417:const START_ANCHOR = `(?:^|${SLASH_LITERAL})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1418:const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1419:const NO_DOT = `(?!${DOT_LITERAL})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1420:const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1421:const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1422:const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1423:const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1424:const STAR = `${QMARK}*?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1425-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1450-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1451:  SLASH_LITERAL: `[${WIN_SLASH}]`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1452-  QMARK: WIN_NO_SLASH,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1453:  STAR: `${WIN_NO_SLASH}*?`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1454:  DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1455:  NO_DOT: `(?!${DOT_LITERAL})`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1456:  NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1457:  NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1458:  NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1459:  QMARK_NO_DOT: `[^.${WIN_SLASH}]`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1460:  START_ANCHOR: `(?:^|[${WIN_SLASH}])`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1461:  END_ANCHOR: `(?:[${WIN_SLASH}]|$)`
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1462-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1562-    return {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1563:      '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1564-      '?': { type: 'qmark', open: '(?:', close: ')?' },
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1621-  if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1622:  return `${input.slice(0, idx)}\\${input.slice(idx)}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1623-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1637-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1638:  let output = `${prepend}(?:${input})${append}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1639-  if (state.negated === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:1640:    output = `(?:^(?!${output}).*$)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-1641-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2048-  args.sort();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2049:  const value = `[${args.join('-')}]`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2050-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2058-const syntaxError = (type, char) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2059:  return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2060-};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2080-  if (len > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2081:    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2082-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2109-  const globstar = (opts) => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2110:    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2111-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2117-  if (opts.capture) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2118:    star = `(${star})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2119-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2260-      if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2261:        output = token.close = `)$))${extglobStar}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2262-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2305-      }
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2306:      return esc ? m : `\\${m}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2307-    });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2414-      if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2415:        value = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2416-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2418-      if (value === ']' && (prev.value === '[' || prev.value === '[^')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2419:        value = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2420-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2490-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2491:        value = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2492-      } else {
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2501-      if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2502:        push({ type: 'text', value, output: `\\${value}` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2503-        continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2510-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2511:        push({ type: 'text', value, output: `\\${value}` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2512-        continue;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2518-      if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2519:        value = `/${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2520-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2542-      // when the user specifies nothing, try to match both
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2543:      prev.value = `(${capture}${escaped}|${prev.value})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2544-      state.output += prev.value;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2707-        if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2708:          output = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2709-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2785-      if (value === '$' || value === '^') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2786:        value = `\\${value}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2787-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2864-        state.output = state.output.slice(0, -(prior.output + prev.output).length);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2865:        prior.output = `(?:${prior.output}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2866-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2879-        state.output = state.output.slice(0, -(prior.output + prev.output).length);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2880:        prior.output = `(?:${prior.output}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2881-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2882-        prev.type = 'globstar';
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2883:        prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2884-        prev.value += value;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2897-        prev.value += value;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2898:        prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2899-        state.output = prev.output;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2979-  if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:2980:    push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-2981-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3009-  if (len > max) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3010:    throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3011-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3035-  if (opts.capture) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3036:    star = `(${star})`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3037-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3040-    if (opts.noglobstar === true) return star;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3041:    return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3042-  };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3046-      case '*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3047:        return `${nodot}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3048-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3049-      case '.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3050:        return `${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3051-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3052-      case '*.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3053:        return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3054-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3055-      case '*/*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3056:        return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3057-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3061-      case '**/*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3062:        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3063-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3064-      case '**/*.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3065:        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3066-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3067-      case '**/.*':
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3068:        return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3069-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3085-  if (source && opts.strictSlashes !== true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3086:    source += `${SLASH_LITERAL}?`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3087-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3344-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3345:  let source = `${prepend}(?:${parsed.output})${append}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3346-  if (parsed && parsed.negated === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3347:    source = `^(?!${source}).*$`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3348-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3489-    if (options.failglob === true) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3490:      throw new Error(`No matches found for "${patterns.join(', ')}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3491-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3611-  if (typeof str !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3612:    throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3613-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3757-  if (typeof str !== 'string') {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3758:    throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3759-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3785-  let regex = picomatch$1.makeRe(String(glob), { ...options, capture: true });
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:3786:  let match = regex.exec(posix ? utils$1.toPosixSlashes(input) : input);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-3787-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-4216-  } else if (type && !ALL_TYPES.includes(type)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:4217:    throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-4218-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-4789-
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:4790:exports.DOT_SLASH = `.${sep}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-4791-
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-6073-  if (!paths.every(p => typeof p === STRING_TYPE)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:6074:    throw new TypeError(`Non-string provided as watch path: ${paths}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-6075-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-6481-  ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => {
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js:6482:    this[`_${key}`].clear();
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/shared/watch.js-6483-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/rollup.browser.js-10-*/
chromium-84.0.4147.105/third_party/devtools-frontend/src/node_modules/rollup/dist/es/rollup.browser.js:11:var e="2.3.3",t={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},s="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",i={5:s,"5module":s+" export import",6:s+" const class extends export import super"},n=/^in(stanceof)?$/,r="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿯ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞿꟂ-Ᶎꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭧꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",a="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷹᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",o=new RegExp("["+r+"]"),h=new RegExp("["+r+a+"]");r=a=null;var l=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,155,22,13,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,0,33,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,0,161,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,754,9486,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541],c=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,232,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,792487,239];function u(e,t){for(var s=65536,i=0;i<t.length;i+=2){if((s+=t[i])>e)return!1;if((s+=t[i+1])>=e)return!0}}function d(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&o.test(String.fromCharCode(e)):!1!==t&&u(e,l)))}function p(e,t){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&h.test(String.fromCharCode(e)):!1!==t&&(u(e,l)||u(e,c)))))}var f=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function m(e,t){return new f(e,{beforeExpr:!0,binop:t})}var g={beforeExpr:!0},x={startsExpr:!0},y={};function E(e,t){return void 0===t&&(t={}),t.keyword=e,y[e]=new f(e,t)}var b={num:new f("num",x),regexp:new f("regexp",x),string:new f("string",x),name:new f("name",x),eof:new f("eof"),bracketL:new f("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new f("]"),braceL:new f("{",{beforeExpr:!0,startsExpr:!0}),braceR:new f("}"),parenL:new f("(",{beforeExpr:!0,startsExpr:!0}),parenR:new f(")"),comma:new f(",",g),semi:new f(";",g),colon:new f(":",g),dot:new f("."),question:new f("?",g),arrow:new f("=>",g),template:new f("template"),invalidTemplate:new f("invalidTemplate"),ellipsis:new f("...",g),backQuote:new f("`",x),dollarBraceL:new f("${",{beforeExpr:!0,startsExpr:!0}),eq:new f("=",{beforeExpr:!0,isAssign:!0}),assign:new f("_=",{beforeExpr:!0,isAssign:!0}),incDec:new f("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new f("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:m("||",1),logicalAND:m("&&",2),bitwiseOR:m("|",3),bitwiseXOR:m("^",4),bitwiseAND:m("&",5),equality:m("==/!=/===/!==",6),relational:m("</>/<=/>=",7),bitShift:m("<</>>/>>>",8),plusMin:new f("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:m("%",10),star:m("*",10),slash:m("/",10),starstar:new f("**",{beforeExpr:!0}),_break:E("break"),_case:E("case",g),_catch:E("catch"),_continue:E("continue"),_debugger:E("debugger"),_default:E("default",g),_do:E("do",{isLoop:!0,beforeExpr:!0}),_else:E("else",g),_finally:E("finally"),_for:E("for",{isLoop:!0}),_function:E("function",x),_if:E("if"),_return:E("return",g),_switch:E("switch"),_throw:E("throw",g),_try:E("try"),_var:E("var"),_const:E("const"),_while:E("while",{isLoop:!0}),_with:E("with"),_new:E("new",{beforeExpr:!0,startsExpr:!0}),_this:E("this",x),_super:E("super",x),_class:E("class",x),_extends:E("extends",g),_export:E("export"),_import:E("import",x),_null:E("null",x),_true:E("true",x),_false:E("false",x),_in:E("in",{beforeExpr:!0,binop:7}),_instanceof:E("instanceof",{beforeExpr:!0,binop:7}),_typeof:E("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:E("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:E("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},v=/\r\n?|\n|\u2028|\u2029/,S=new RegExp(v.source,"g");function A(e,t){return 10===e||13===e||!t&&(8232===e||8233===e)}var C=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,P=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,k=Object.prototype,w=k.hasOwnProperty,N=k.toString;function _(e,t){return w.call(e,t)}var I=Array.isArray||function(e){return"[object Array]"===N.call(e)};function $(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}var T=function(e,t){this.line=e,this.column=t};T.prototype.offset=function(e){return new T(this.line,this.column+e)};var R=function(e,t,s){this.start=t,this.end=s,null!==e.sourceFile&&(this.source=e.sourceFile)};function L(e,t){for(var s=1,i=0;;){S.lastIndex=i;var n=S.exec(e);if(!(n&&n.index<t))return new T(s,t-i);++s,i=n.index+n[0].length}}var M={ecmaVersion:10,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1};function D(e){var t={};for(var s in M)t[s]=e&&_(e,s)?e[s]:M[s];if(t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),I(t.onToken)){var i=t.onToken;t.onToken=function(e){return i.push(e)}}return I(t.onComment)&&(t.onComment=function(e,t){return function(s,i,n,r,a,o){var h={type:s?"Block":"Line",value:i,start:n,end:r};e.locations&&(h.loc=new R(this,a,o)),e.ranges&&(h.range=[n,r]),t.push(h)}}(t,t.onComment)),t}function O(e,t){return 2|(e?4:0)|(t?8:0)}var V=function(e,s,n){this.options=e=D(e),this.sourceFile=e.sourceFile,this.keywords=$(i[e.ecmaVersion>=6?6:"module"===e.sourceType?"5module":5]);var r="";if(!0!==e.allowReserved){for(var a=e.ecmaVersion;!(r=t[a]);a--);"module"===e.sourceType&&(r+=" await")}this.reservedWords=$(r);var o=(r?r+" ":"")+t.strict;this.reservedWordsStrict=$(o),this.reservedWordsStrictBind=$(o+" "+t.strictBind),this.input=String(s),this.containsEsc=!1,n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(v).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=b.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports={},0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null},B={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0}};V.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},B.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},B.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},B.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},B.allowSuper.get=function(){return(64&this.currentThisScope().flags)>0},B.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},B.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},V.prototype.inNonArrowFunction=function(){return(2&this.currentThisScope().flags)>0},V.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var s=this,i=0;i<e.length;i++)s=e[i](s);return s},V.parse=function(e,t){return new this(t,e).parse()},V.parseExpressionAt=function(e,t,s){var i=new this(s,e,t);return i.nextToken(),i.parseExpression()},V.tokenizer=function(e,t){return new this(t,e)},Object.defineProperties(V.prototype,B);var F=V.prototype,W=/^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)")/;function U(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}F.strictDirective=function(e){for(;;){P.lastIndex=e,e+=P.exec(this.input)[0].length;var t=W.exec(this.input.slice(e));if(!t)return!1;if("use strict"===(t[1]||t[2]))return!0;e+=t[0].length,P.lastIndex=e,e+=P.exec(this.input)[0].length,";"===this.input[e]&&e++}},F.eat=function(e){return this.type===e&&(this.next(),!0)},F.isContextual=function(e){return this.type===b.name&&this.value===e&&!this.containsEsc},F.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},F.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},F.canInsertSemicolon=function(){return this.type===b.eof||this.type===b.braceR||v.test(this.input.slice(this.lastTokEnd,this.start))},F.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},F.semicolon=function(){this.eat(b.semi)||this.insertSemicolon()||this.unexpected()},F.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},F.expect=function(e){this.eat(e)||this.unexpected()},F.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},F.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var s=t?e.parenthesizedAssign:e.parenthesizedBind;s>-1&&this.raiseRecoverable(s,"Parenthesized pattern")}},F.checkExpressionErrors=function(e,t){if(!e)return!1;var s=e.shorthandAssign,i=e.doubleProto;if(!t)return s>=0||i>=0;s>=0&&this.raise(s,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},F.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},F.isSimpleAssignTarget=function(e){return"ParenthesizedExpression"===e.type?this.isSimpleAssignTarget(e.expression):"Identifier"===e.type||"MemberExpression"===e.type};var z=V.prototype;z.parseTopLevel=function(e){var t={};for(e.body||(e.body=[]);this.type!==b.eof;){var s=this.parseStatement(null,!0,t);e.body.push(s)}if(this.inModule)for(var i=0,n=Object.keys(this.undefinedExports);i<n.length;i+=1){var r=n[i];this.raiseRecoverable(this.undefinedExports[r].start,"Export '"+r+"' is not defined")}return this.adaptDirectivePrologue(e.body),this.next(),e.sourceType=this.options.sourceType,this.finishNode(e,"Program")};var j={kind:"loop"},G={kind:"switch"};z.isLet=function(e){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;P.lastIndex=this.pos;var t=P.exec(this.input),s=this.pos+t[0].length,i=this.input.charCodeAt(s);if(91===i)return!0;if(e)return!1;if(123===i)return!0;if(d(i,!0)){for(var r=s+1;p(this.input.charCodeAt(r),!0);)++r;var a=this.input.slice(s,r);if(!n.test(a))return!0}return!1},z.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;P.lastIndex=this.pos;var e=P.exec(this.input),t=this.pos+e[0].length;return!(v.test(this.input.slice(this.pos,t))||"function"!==this.input.slice(t,t+8)||t+8!==this.input.length&&p(this.input.charAt(t+8)))},z.parseStatement=function(e,t,s){var i,n=this.type,r=this.startNode();switch(this.isLet(e)&&(n=b._var,i="let"),n){case b._break:case b._continue:return this.parseBreakContinueStatement(r,n.keyword);case b._debugger:return this.parseDebuggerStatement(r);case b._do:return this.parseDoStatement(r);case b._for:return this.parseForStatement(r);case b._function:return e&&(this.strict||"if"!==e&&"label"!==e)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!e);case b._class:return e&&this.unexpected(),this.parseClass(r,!0);case b._if:return this.parseIfStatement(r);case b._return:return this.parseReturnStatement(r);case b._switch:return this.parseSwitchStatement(r);case b._throw:return this.parseThrowStatement(r);case b._try:return this.parseTryStatement(r);case b._const:case b._var:return i=i||this.value,e&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case b._while:return this.parseWhileStatement(r);case b._with:return this.parseWithStatement(r);case b.braceL:return this.parseBlock(!0,r);case b.semi:return this.parseEmptyStatement(r);case b._export:case b._import:if(this.options.ecmaVersion>10&&n===b._import){P.lastIndex=this.pos;var a=P.exec(this.input),o=this.pos+a[0].length;if(40===this.input.charCodeAt(o))return this.parseExpressionStatement(r,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),n===b._import?this.parseImport(r):this.parseExport(r,s);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!e);var h=this.value,l=this.parseExpression();return n===b.name&&"Identifier"===l.type&&this.eat(b.colon)?this.parseLabeledStatement(r,h,l,e):this.parseExpressionStatement(r,l)}},z.parseBreakContinueStatement=function(e,t){var s="break"===t;this.next(),this.eat(b.semi)||this.insertSemicolon()?e.label=null:this.type!==b.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var n=this.labels[i];if(null==e.label||n.name===e.label.name){if(null!=n.kind&&(s||"loop"===n.kind))break;if(e.label&&s)break}}return i===this.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,s?"BreakStatement":"ContinueStatement")},z.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},z.parseDoStatement=function(e){return this.next(),this.labels.push(j),e.body=this.parseStatement("do"),this.labels.pop(),this.expect(b._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(b.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},z.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(j),this.enterScope(0),this.expect(b.parenL),this.type===b.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var s=this.isLet();if(this.type===b._var||this.type===b._const||s){var i=this.startNode(),n=s?"let":this.value;return this.next(),this.parseVar(i,!0,n),this.finishNode(i,"VariableDeclaration"),(this.type===b._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===i.declarations.length?(this.options.ecmaVersion>=9&&(this.type===b._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,i)):(t>-1&&this.unexpected(t),this.parseFor(e,i))}var r=new U,a=this.parseExpression(!0,r);return this.type===b._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===b._in?t>-1&&this.unexpected(t):e.await=t>-1),this.toAssignable(a,!1,r),this.checkLVal(a),this.parseForIn(e,a)):(this.checkExpressionErrors(r,!0),t>-1&&this.unexpected(t),this.parseFor(e,a))},z.parseFunctionStatement=function(e,t,s){return this.next(),this.parseFunction(e,q|(s?0:K),!1,t)},z.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(b._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},z.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(b.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},z.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(b.braceL),this.labels.push(G),this.enterScope(0);for(var s=!1;this.type!==b.braceR;)if(this.type===b._case||this.type===b._default){var i=this.type===b._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),i?t.test=this.parseExpression():(s&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),s=!0,t.test=null),this.expect(b.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},z.parseThrowStatement=function(e){return this.next(),v.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var H=[];z.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===b._catch){var t=this.startNode();if(this.next(),this.eat(b.parenL)){t.param=this.parseBindingAtom();var s="Identifier"===t.param.type;this.enterScope(s?32:0),this.checkLVal(t.param,s?4:2),this.expect(b.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(b._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},z.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},z.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(j),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},z.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},z.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},z.parseLabeledStatement=function(e,t,s,i){for(var n=0,r=this.labels;n<r.length;n+=1){r[n].name===t&&this.raise(s.start,"Label '"+t+"' is already declared")}for(var a=this.type.isLoop?"loop":this.type===b._switch?"switch":null,o=this.labels.length-1;o>=0;o--){var h=this.labels[o];if(h.statementStart!==e.start)break;h.statementStart=this.start,h.kind=a}return this.labels.push({name:t,kind:a,statementStart:this.start}),e.body=this.parseStatement(i?-1===i.indexOf("label")?i+"label":i:"label"),this.labels.pop(),e.label=s,this.finishNode(e,"LabeledStatement")},z.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},z.parseBlock=function(e,t){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(b.braceL),e&&this.enterScope(0);!this.eat(b.braceR);){var s=this.parseStatement(null);t.body.push(s)}return e&&this.exitScope(),this.finishNode(t,"BlockStatement")},z.parseFor=function(e,t){return e.init=t,this.expect(b.semi),e.test=this.type===b.semi?null:this.parseExpression(),this.expect(b.semi),e.update=this.type===b.parenR?null:this.parseExpression(),this.expect(b.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},z.parseForIn=function(e,t){var s=this.type===b._in;return this.next(),"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(!s||this.options.ecmaVersion<8||this.strict||"var"!==t.kind||"Identifier"!==t.declarations[0].id.type)?this.raise(t.start,(s?"for-in":"for-of")+" loop variable declaration may not have an initializer"):"AssignmentPattern"===t.type&&this.raise(t.start,"Invalid left-hand side in for-loop"),e.left=t,e.right=s?this.parseExpression():this.parseMaybeAssign(),this.expect(b.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,s?"ForInStatement":"ForOfStatement")},z.parseVar=function(e,t,s){for(e.declarations=[],e.kind=s;;){var i=this.startNode();if(this.parseVarId(i,s),this.eat(b.eq)?i.init=this.parseMaybeAssign(t):"const"!==s||this.type===b._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"===i.id.type||t&&(this.type===b._in||this.isContextual("of"))?i.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(i,"VariableDeclarator")),!this.eat(b.comma))break}return e},z.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLVal(e.id,"var"===t?1:2,!1)};var q=1,K=2;z.parseFunction=function(e,t,s,i){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===b.star&&t&K&&this.unexpected(),e.generator=this.eat(b.star)),this.options.ecmaVersion>=8&&(e.async=!!i),t&q&&(e.id=4&t&&this.type!==b.name?null:this.parseIdent(),!e.id||t&K||this.checkLVal(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?1:2:3));var n=this.yieldPos,r=this.awaitPos,a=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(O(e.async,e.generator)),t&q||(e.id=this.type===b.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,s,!1),this.yieldPos=n,this.awaitPos=r,this.awaitIdentPos=a,this.finishNode(e,t&q?"FunctionDeclaration":"FunctionExpression")},z.parseFunctionParams=function(e){this.expect(b.parenL),e.params=this.parseBindingList(b.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},z.parseClass=function(e,t){this.next();var s=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var i=this.startNode(),n=!1;for(i.body=[],this.expect(b.braceL);!this.eat(b.braceR);){var r=this.parseClassElement(null!==e.superClass);r&&(i.body.push(r),"MethodDefinition"===r.type&&"constructor"===r.kind&&(n&&this.raise(r.start,"Duplicate constructor in the same class"),n=!0))}return e.body=this.finishNode(i,"ClassBody"),this.strict=s,this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},z.parseClassElement=function(e){var t=this;if(this.eat(b.semi))return null;var s=this.startNode(),i=function(e,i){void 0===i&&(i=!1);var n=t.start,r=t.startLoc;return!!t.eatContextual(e)&&(!(t.type===b.parenL||i&&t.canInsertSemicolon())||(s.key&&t.unexpected(),s.computed=!1,s.key=t.startNodeAt(n,r),s.key.name=e,t.finishNode(s.key,"Identifier"),!1))};s.kind="method",s.static=i("static");var n=this.eat(b.star),r=!1;n||(this.options.ecmaVersion>=8&&i("async",!0)?(r=!0,n=this.options.ecmaVersion>=9&&this.eat(b.star)):i("get")?s.kind="get":i("set")&&(s.kind="set")),s.key||this.parsePropertyName(s);var a=s.key,o=!1;return s.computed||s.static||!("Identifier"===a.type&&"constructor"===a.name||"Literal"===a.type&&"constructor"===a.value)?s.static&&"Identifier"===a.type&&"prototype"===a.name&&this.raise(a.start,"Classes may not have a static property named prototype"):("method"!==s.kind&&this.raise(a.start,"Constructor can't have get/set modifier"),n&&this.raise(a.start,"Constructor can't be a generator"),r&&this.raise(a.start,"Constructor can't be an async method"),s.kind="constructor",o=e),this.parseClassMethod(s,n,r,o),"get"===s.kind&&0!==s.value.params.length&&this.raiseRecoverable(s.value.start,"getter should have no params"),"set"===s.kind&&1!==s.value.params.length&&this.raiseRecoverable(s.value.start,"setter should have exactly one param"),"set"===s.kind&&"RestElement"===s.value.params[0].type&&this.raiseRecoverable(s.value.params[0].start,"Setter cannot use rest params"),s},z.parseClassMethod=function(e,t,s,i){return e.value=this.parseMethod(t,s,i),this.finishNode(e,"MethodDefinition")},z.parseClassId=function(e,t){this.type===b.name?(e.id=this.parseIdent(),t&&this.checkLVal(e.id,2,!1)):(!0===t&&this.unexpected(),e.id=null)},z.parseClassSuper=function(e){e.superClass=this.eat(b._extends)?this.parseExprSubscripts():null},z.parseExport=function(e,t){if(this.next(),this.eat(b.star))return this.expectContextual("from"),this.type!==b.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(b._default)){var s;if(this.checkExport(t,"default",this.lastTokStart),this.type===b._function||(s=this.isAsyncFunction())){var i=this.startNode();this.next(),s&&this.next(),e.declaration=this.parseFunction(i,4|q,!1,s)}else if(this.type===b._class){var n=this.startNode();e.declaration=this.parseClass(n,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==b.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var r=0,a=e.specifiers;r<a.length;r+=1){var o=a[r];this.checkUnreserved(o.local),this.checkLocalExport(o.local)}e.source=null}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},z.checkExport=function(e,t,s){e&&(_(e,t)&&this.raiseRecoverable(s,"Duplicate export '"+t+"'"),e[t]=!0)},z.checkPatternExport=function(e,t){var s=t.type;if("Identifier"===s)this.checkExport(e,t.name,t.start);else if("ObjectPattern"===s)for(var i=0,n=t.properties;i<n.length;i+=1){var r=n[i];this.checkPatternExport(e,r)}else if("ArrayPattern"===s)for(var a=0,o=t.elements;a<o.length;a+=1){var h=o[a];h&&this.checkPatternExport(e,h)}else"Property"===s?this.checkPatternExport(e,t.value):"AssignmentPattern"===s?this.checkPatternExport(e,t.left):"RestElement"===s?this.checkPatternExport(e,t.argument):"ParenthesizedExpression"===s&&this.checkPatternExport(e,t.expression)},z.checkVariableExport=function(e,t){if(e)for(var s=0,i=t;s<i.length;s+=1){var n=i[s];this.checkPatternExport(e,n.id)}},z.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},z.parseExportSpecifiers=function(e){var t=[],s=!0;for(this.expect(b.braceL);!this.eat(b.braceR);){if(s)s=!1;else if(this.expect(b.comma),this.afterTrailingComma(b.braceR))break;var i=this.startNode();i.local=this.parseIdent(!0),i.exported=this.eatContextual("as")?this.parseIdent(!0):i.local,this.checkExport(e,i.exported.name,i.exported.start),t.push(this.finishNode(i,"ExportSpecifier"))}return t},z.parseImport=function(e){return this.next(),this.type===b.string?(e.specifiers=H,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),e.source=this.type===b.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},z.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===b.name){var s=this.startNode();if(s.local=this.parseIdent(),this.checkLVal(s.local,2),e.push(this.finishNode(s,"ImportDefaultSpecifier")),!this.eat(b.comma))return e}if(this.type===b.star){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdent(),this.checkLVal(i.local,2),e.push(this.finishNode(i,"ImportNamespaceSpecifier")),e}for(this.expect(b.braceL);!this.eat(b.braceR);){if(t)t=!1;else if(this.expect(b.comma),this.afterTrailingComma(b.braceR))break;var n=this.startNode();n.imported=this.parseIdent(!0),this.eatContextual("as")?n.local=this.parseIdent():(this.checkUnreserved(n.imported),n.local=n.imported),this.checkLVal(n.local,2),e.push(this.finishNode(n,"ImportSpecifier"))}return e},z.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},z.isDirectiveCandidate=function(e){return"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&('"'===this.input[e.start]||"'"===this.input[e.start])};var X=V.prototype;X.toAssignable=function(e,t,s){if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",s&&this.checkPatternErrors(s,!0);for(var i=0,n=e.properties;i<n.length;i+=1){var r=n[i];this.toAssignable(r,t),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==e.kind&&this.raise(e.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(e.value,t);break;case"ArrayExpression":e.type="ArrayPattern",s&&this.checkPatternErrors(s,!0),this.toAssignableList(e.elements,t);break;case"SpreadElement":e.type="RestElement",this.toAssignable(e.argument,t),"AssignmentPattern"===e.argument.type&&this.raise(e.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==e.operator&&this.raise(e.left.end,"Only '=' operator can be used for specifying default value."),e.type="AssignmentPattern",delete e.operator,this.toAssignable(e.left,t);case"AssignmentPattern":break;case"ParenthesizedExpression":this.toAssignable(e.expression,t,s);break;case"MemberExpression":if(!t)break;default:this.raise(e.start,"Assigning to rvalue")}else s&&this.checkPatternErrors(s,!0);return e},X.toAssignableList=function(e,t){for(var s=e.length,i=0;i<s;i++){var n=e[i];n&&this.toAssignable(n,t)}if(s){var r=e[s-1];6===this.options.ecmaVersion&&t&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return e},X.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},X.parseRestBinding=function(){var e=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==b.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,"RestElement")},X.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case b.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(b.bracketR,!0,!0),this.finishNode(e,"ArrayPattern");case b.braceL:return this.parseObj(!0)}return this.parseIdent()},X.parseBindingList=function(e,t,s){for(var i=[],n=!0;!this.eat(e);)if(n?n=!1:this.expect(b.comma),t&&this.type===b.comma)i.push(null);else{if(s&&this.afterTrailingComma(e))break;if(this.type===b.ellipsis){var r=this.parseRestBinding();this.parseBindingListItem(r),i.push(r),this.type===b.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.expect(e);break}var a=this.parseMaybeDefault(this.start,this.startLoc);this.parseBindingListItem(a),i.push(a)}return i},X.parseBindingListItem=function(e){return e},X.parseMaybeDefault=function(e,t,s){if(s=s||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(b.eq))return s;var i=this.startNodeAt(e,t);return i.left=s,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},X.checkLVal=function(e,t,s){switch(void 0===t&&(t=0),e.type){case"Identifier":2===t&&"let"===e.name&&this.raiseRecoverable(e.start,"let is disallowed as a lexically bound name"),this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(t?"Binding ":"Assigning to ")+e.name+" in strict mode"),s&&(_(s,e.name)&&this.raiseRecoverable(e.start,"Argument name clash"),s[e.name]=!0),0!==t&&5!==t&&this.declareName(e.name,t,e.start);break;case"MemberExpression":t&&this.raiseRecoverable(e.start,"Binding member expression");break;case"ObjectPattern":for(var i=0,n=e.properties;i<n.length;i+=1){var r=n[i];this.checkLVal(r,t,s)}break;case"Property":this.checkLVal(e.value,t,s);break;case"ArrayPattern":for(var a=0,o=e.elements;a<o.length;a+=1){var h=o[a];h&&this.checkLVal(h,t,s)}break;case"AssignmentPattern":this.checkLVal(e.left,t,s);break;case"RestElement":this.checkLVal(e.argument,t,s);break;case"ParenthesizedExpression":this.checkLVal(e.expression,t,s);break;default:this.raise(e.start,(t?"Binding":"Assigning to")+" rvalue")}};var Y=V.prototype;Y.checkPropClash=function(e,t,s){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===e.type||this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var i,n=e.key;switch(n.type){case"Identifier":i=n.name;break;case"Literal":i=String(n.value);break;default:return}var r=e.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(t.proto&&(s?s.doubleProto<0&&(s.doubleProto=n.start):this.raiseRecoverable(n.start,"Redefinition of __proto__ property")),t.proto=!0);else{var a=t[i="$"+i];if(a)("init"===r?this.strict&&a.init||a.get||a.set:a.init||a[r])&&this.raiseRecoverable(n.start,"Redefinition of property");else a=t[i]={init:!1,get:!1,set:!1};a[r]=!0}}},Y.parseExpression=function(e,t){var s=this.start,i=this.startLoc,n=this.parseMaybeAssign(e,t);if(this.type===b.comma){var r=this.startNodeAt(s,i);for(r.expressions=[n];this.eat(b.comma);)r.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(r,"SequenceExpression")}return n},Y.parseMaybeAssign=function(e,t,s){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var i=!1,n=-1,r=-1;t?(n=t.parenthesizedAssign,r=t.trailingComma,t.parenthesizedAssign=t.trailingComma=-1):(t=new U,i=!0);var a=this.start,o=this.startLoc;this.type!==b.parenL&&this.type!==b.name||(this.potentialArrowAt=this.start);var h=this.parseMaybeConditional(e,t);if(s&&(h=s.call(this,h,a,o)),this.type.isAssign){var l=this.startNodeAt(a,o);return l.operator=this.value,l.left=this.type===b.eq?this.toAssignable(h,!1,t):h,i||(t.parenthesizedAssign=t.trailingComma=t.doubleProto=-1),t.shorthandAssign>=l.left.start&&(t.shorthandAssign=-1),this.checkLVal(h),this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,"AssignmentExpression")}return i&&this.checkExpressionErrors(t,!0),n>-1&&(t.parenthesizedAssign=n),r>-1&&(t.trailingComma=r),h},Y.parseMaybeConditional=function(e,t){var s=this.start,i=this.startLoc,n=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return n;if(this.eat(b.question)){var r=this.startNodeAt(s,i);return r.test=n,r.consequent=this.parseMaybeAssign(),this.expect(b.colon),r.alternate=this.parseMaybeAssign(e),this.finishNode(r,"ConditionalExpression")}return n},Y.parseExprOps=function(e,t){var s=this.start,i=this.startLoc,n=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)||n.start===s&&"ArrowFunctionExpression"===n.type?n:this.parseExprOp(n,s,i,-1,e)},Y.parseExprOp=function(e,t,s,i,n){var r=this.type.binop;if(null!=r&&(!n||this.type!==b._in)&&r>i){var a=this.type===b.logicalOR||this.type===b.logicalAND,o=this.value;this.next();var h=this.start,l=this.startLoc,c=this.parseExprOp(this.parseMaybeUnary(null,!1),h,l,r,n),u=this.buildBinary(t,s,e,c,o,a);return this.parseExprOp(u,t,s,i,n)}return e},Y.buildBinary=function(e,t,s,i,n,r){var a=this.startNodeAt(e,t);return a.left=s,a.operator=n,a.right=i,this.finishNode(a,r?"LogicalExpression":"BinaryExpression")},Y.parseMaybeUnary=function(e,t){var s,i=this.start,n=this.startLoc;if(this.isContextual("await")&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))s=this.parseAwait(),t=!0;else if(this.type.prefix){var r=this.startNode(),a=this.type===b.incDec;r.operator=this.value,r.prefix=!0,this.next(),r.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),a?this.checkLVal(r.argument):this.strict&&"delete"===r.operator&&"Identifier"===r.argument.type?this.raiseRecoverable(r.start,"Deleting local variable in strict mode"):t=!0,s=this.finishNode(r,a?"UpdateExpression":"UnaryExpression")}else{if(s=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return s;for(;this.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,n);o.operator=this.value,o.prefix=!1,o.argument=s,this.checkLVal(s),this.next(),s=this.finishNode(o,"UpdateExpression")}}return!t&&this.eat(b.starstar)?this.buildBinary(i,n,s,this.parseMaybeUnary(null,!1),"**",!1):s},Y.parseExprSubscripts=function(e){var t=this.start,s=this.startLoc,i=this.parseExprAtom(e);if("ArrowFunctionExpression"===i.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return i;var n=this.parseSubscripts(i,t,s);return e&&"MemberExpression"===n.type&&(e.parenthesizedAssign>=n.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=n.start&&(e.parenthesizedBind=-1)),n},Y.parseSubscripts=function(e,t,s,i){for(var n=this.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&"async"===this.input.slice(e.start,e.end);;){var r=this.parseSubscript(e,t,s,i,n);if(r===e||"ArrowFunctionExpression"===r.type)return r;e=r}},Y.parseSubscript=function(e,t,s,i,n){var r=this.eat(b.bracketL);if(r||this.eat(b.dot)){var a=this.startNodeAt(t,s);a.object=e,a.property=r?this.parseExpression():this.parseIdent("never"!==this.options.allowReserved),a.computed=!!r,r&&this.expect(b.bracketR),e=this.finishNode(a,"MemberExpression")}else if(!i&&this.eat(b.parenL)){var o=new U,h=this.yieldPos,l=this.awaitPos,c=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var u=this.parseExprList(b.parenR,this.options.ecmaVersion>=8,!1,o);if(n&&!this.canInsertSemicolon()&&this.eat(b.arrow))return this.checkPatternErrors(o,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=h,this.awaitPos=l,this.awaitIdentPos=c,this.parseArrowExpression(this.startNodeAt(t,s),u,!0);this.checkExpressionErrors(o,!0),this.yieldPos=h||this.yieldPos,this.awaitPos=l||this.awaitPos,this.awaitIdentPos=c||this.awaitIdentPos;var d=this.startNodeAt(t,s);d.callee=e,d.arguments=u,e=this.finishNode(d,"CallExpression")}else if(this.type===b.backQuote){var p=this.startNodeAt(t,s);p.tag=e,p.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(p,"TaggedTemplateExpression")}return e},Y.parseExprAtom=function(e){this.type===b.slash&&this.readRegexp();var t,s=this.potentialArrowAt===this.start;switch(this.type){case b._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),t=this.startNode(),this.next(),this.type!==b.parenL||this.allowDirectSuper||this.raise(t.start,"super() call outside constructor of a subclass"),this.type!==b.dot&&this.type!==b.bracketL&&this.type!==b.parenL&&this.unexpected(),this.finishNode(t,"Super");case b._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case b.name:var i=this.start,n=this.startLoc,r=this.containsEsc,a=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!r&&"async"===a.name&&!this.canInsertSemicolon()&&this.eat(b._function))return this.parseFunction(this.startNodeAt(i,n),0,!1,!0);if(s&&!this.canInsertSemicolon()){if(this.eat(b.arrow))return this.parseArrowExpression(this.startNodeAt(i,n),[a],!1);if(this.options.ecmaVersion>=8&&"async"===a.name&&this.type===b.name&&!r)return a=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(b.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,n),[a],!0)}return a;case b.regexp:var o=this.value;return(t=this.parseLiteral(o.value)).regex={pattern:o.pattern,flags:o.flags},t;case b.num:case b.string:return this.parseLiteral(this.value);case b._null:case b._true:case b._false:return(t=this.startNode()).value=this.type===b._null?null:this.type===b._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case b.parenL:var h=this.start,l=this.parseParenAndDistinguishExpression(s);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(l)&&(e.parenthesizedAssign=h),e.parenthesizedBind<0&&(e.parenthesizedBind=h)),l;case b.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(b.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case b.braceL:return this.parseObj(!1,e);case b._function:return t=this.startNode(),this.next(),this.parseFunction(t,0);case b._class:return this.parseClass(this.startNode(),!1);case b._new:return this.parseNew();case b.backQuote:return this.parseTemplate();case b._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},Y.parseExprImport=function(){var e=this.startNode();switch(this.next(),this.type){case b.parenL:return this.parseDynamicImport(e);default:this.unexpected()}},Y.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(b.parenR)){var t=this.start;this.eat(b.comma)&&this.eat(b.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},Y.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=t.raw.slice(0,-1)),this.next(),this.finishNode(t,"Literal")},Y.parseParenExpression=function(){this.expect(b.parenL);var e=this.parseExpression();return this.expect(b.parenR),e},Y.parseParenAndDistinguishExpression=function(e){var t,s=this.start,i=this.startLoc,n=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var r,a=this.start,o=this.startLoc,h=[],l=!0,c=!1,u=new U,d=this.yieldPos,p=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==b.parenR;){if(l?l=!1:this.expect(b.comma),n&&this.afterTrailingComma(b.parenR,!0)){c=!0;break}if(this.type===b.ellipsis){r=this.start,h.push(this.parseParenItem(this.parseRestBinding())),this.type===b.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}h.push(this.parseMaybeAssign(!1,u,this.parseParenItem))}var f=this.start,m=this.startLoc;if(this.expect(b.parenR),e&&!this.canInsertSemicolon()&&this.eat(b.arrow))return this.checkPatternErrors(u,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=d,this.awaitPos=p,this.parseParenArrowList(s,i,h);h.length&&!c||this.unexpected(this.lastTokStart),r&&this.unexpected(r),this.checkExpressionErrors(u,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=p||this.awaitPos,h.length>1?((t=this.startNodeAt(a,o)).expressions=h,this.finishNodeAt(t,"SequenceExpression",f,m)):t=h[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var g=this.startNodeAt(s,i);return g.expression=t,this.finishNode(g,"ParenthesizedExpression")}return t},Y.parseParenItem=function(e){return e},Y.parseParenArrowList=function(e,t,s){return this.parseArrowExpression(this.startNodeAt(e,t),s)};var Q=[];Y.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(b.dot)){e.meta=t;var s=this.containsEsc;return e.property=this.parseIdent(!0),("target"!==e.property.name||s)&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is new.target"),this.inNonArrowFunction()||this.raiseRecoverable(e.start,"new.target can only be used in functions"),this.finishNode(e,"MetaProperty")}var i=this.start,n=this.startLoc,r=this.type===b._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),i,n,!0),r&&"ImportExpression"===e.callee.type&&this.raise(i,"Cannot use new with import()"),this.eat(b.parenL)?e.arguments=this.parseExprList(b.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Q,this.finishNode(e,"NewExpression")},Y.parseTemplateElement=function(e){var t=e.isTagged,s=this.startNode();return this.type===b.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),s.value={raw:this.value,cooked:null}):s.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),s.tail=this.type===b.backQuote,this.finishNode(s,"TemplateElement")},Y.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var s=this.startNode();this.next(),s.expressions=[];var i=this.parseTemplateElement({isTagged:t});for(s.quasis=[i];!i.tail;)this.type===b.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(b.dollarBraceL),s.expressions.push(this.parseExpression()),this.expect(b.braceR),s.quasis.push(i=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(s,"TemplateLiteral")},Y.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===b.name||this.type===b.num||this.type===b.string||this.type===b.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===b.star)&&!v.test(this.input.slice(this.lastTokEnd,this.start))},Y.parseObj=function(e,t){var s=this.startNode(),i=!0,n={};for(s.properties=[],this.next();!this.eat(b.braceR);){if(i)i=!1;else if(this.expect(b.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(b.braceR))break;var r=this.parseProperty(e,t);e||this.checkPropClash(r,n,t),s.properties.push(r)}return this.finishNode(s,e?"ObjectPattern":"ObjectExpression")},Y.parseProperty=function(e,t){var s,i,n,r,a=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(b.ellipsis))return e?(a.argument=this.parseIdent(!1),this.type===b.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(a,"RestElement")):(this.type===b.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),a.argument=this.parseMaybeAssign(!1,t),this.type===b.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(a,"SpreadElement"));this.options.ecmaVersion>=6&&(a.method=!1,a.shorthand=!1,(e||t)&&(n=this.start,r=this.startLoc),e||(s=this.eat(b.star)));var o=this.containsEsc;return this.parsePropertyName(a),!e&&!o&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(a)?(i=!0,s=this.options.ecmaVersion>=9&&this.eat(b.star),this.parsePropertyName(a,t)):i=!1,this.parsePropertyValue(a,e,s,i,n,r,t,o),this.finishNode(a,"Property")},Y.parsePropertyValue=function(e,t,s,i,n,r,a,o){if((s||i)&&this.type===b.colon&&this.unexpected(),this.eat(b.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===b.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(s,i);else if(t||o||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===b.comma||this.type===b.braceR)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((s||i)&&this.unexpected(),this.checkUnreserved(e.key),"await"!==e.key.name||this.awaitIdentPos||(this.awaitIdentPos=n),e.kind="init",t?e.value=this.parseMaybeDefault(n,r,e.key):this.type===b.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),e.value=this.parseMaybeDefault(n,r,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected();else{(s||i)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var h="get"===e.kind?0:1;if(e.value.params.length!==h){var l=e.value.start;"get"===e.kind?this.raiseRecoverable(l,"getter should have no params"):this.raiseRecoverable(l,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},Y.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(b.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(b.bracketR),e.key;e.computed=!1}return e.key=this.type===b.num||this.type===b.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},Y.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},Y.parseMethod=function(e,t,s){var i=this.startNode(),n=this.yieldPos,r=this.awaitPos,a=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=e),this.options.ecmaVersion>=8&&(i.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|O(t,i.generator)|(s?128:0)),this.expect(b.parenL),i.params=this.parseBindingList(b.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0),this.yieldPos=n,this.awaitPos=r,this.awaitIdentPos=a,this.finishNode(i,"FunctionExpression")},Y.parseArrowExpression=function(e,t,s){var i=this.yieldPos,n=this.awaitPos,r=this.awaitIdentPos;return this.enterScope(16|O(s,!1)),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!s),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1),this.yieldPos=i,this.awaitPos=n,this.awaitIdentPos=r,this.finishNode(e,"ArrowFunctionExpression")},Y.parseFunctionBody=function(e,t,s){var i=t&&this.type!==b.braceL,n=this.strict,r=!1;if(i)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var a=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);n&&!a||(r=this.strictDirective(this.end))&&a&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var o=this.labels;this.labels=[],r&&(this.strict=!0),this.checkParams(e,!n&&!r&&!t&&!s&&this.isSimpleParamList(e.params)),e.body=this.parseBlock(!1),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=o}this.exitScope(),this.strict&&e.id&&this.checkLVal(e.id,5),this.strict=n},Y.isSimpleParamList=function(e){for(var t=0,s=e;t<s.length;t+=1){if("Identifier"!==s[t].type)return!1}return!0},Y.checkParams=function(e,t){for(var s={},i=0,n=e.params;i<n.length;i+=1){var r=n[i];this.checkLVal(r,1,t?null:s)}},Y.parseExprList=function(e,t,s,i){for(var n=[],r=!0;!this.eat(e);){if(r)r=!1;else if(this.expect(b.comma),t&&this.afterTrailingComma(e))break;var a=void 0;s&&this.type===b.comma?a=null:this.type===b.ellipsis?(a=this.parseSpread(i),i&&this.type===b.comma&&i.trailingComma<0&&(i.trailingComma=this.start)):a=this.parseMaybeAssign(!1,i),n.push(a)}return n},Y.checkUnreserved=function(e){var t=e.start,s=e.end,i=e.name;(this.inGenerator&&"yield"===i&&this.raiseRecoverable(t,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(t,"Cannot use 'await' as identifier inside an async function"),this.keywords.test(i)&&this.raise(t,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(t,s).indexOf("\\"))||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(t,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(t,"The keyword '"+i+"' is reserved"))},Y.parseIdent=function(e,t){var s=this.startNode();return this.type===b.name?s.name=this.value:this.type.keyword?(s.name=this.type.keyword,"class"!==s.name&&"function"!==s.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),this.next(!!e),this.finishNode(s,"Identifier"),e||(this.checkUnreserved(s),"await"!==s.name||this.awaitIdentPos||(this.awaitIdentPos=s.start)),s},Y.parseYield=function(e){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===b.semi||this.canInsertSemicolon()||this.type!==b.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(b.star),t.argument=this.parseMaybeAssign(e)),this.finishNode(t,"YieldExpression")},Y.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!1),this.finishNode(e,"AwaitExpression")};var J=V.prototype;J.raise=function(e,t){var s=L(this.input,e);t+=" ("+s.line+":"+s.column+")";var i=new SyntaxError(t);throw i.pos=e,i.loc=s,i.raisedAt=this.pos,i},J.raiseRecoverable=J.raise,J.curPosition=function(){if(this.options.locations)return new T(this.curLine,this.pos-this.lineStart)};var Z=V.prototype,ee=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};Z.enterScope=function(e){this.scopeStack.push(new ee(e))},Z.exitScope=function(){this.scopeStack.pop()},Z.treatFunctionsAsVarInScope=function(e){return 2&e.flags||!this.inModule&&1&e.flags},Z.declareName=function(e,t,s){var i=!1;if(2===t){var n=this.currentScope();i=n.lexical.indexOf(e)>-1||n.functions.indexOf(e)>-1||n.var.indexOf(e)>-1,n.lexical.push(e),this.inModule&&1&n.flags&&delete this.undefinedExports[e]}else if(4===t){this.currentScope().lexical.push(e)}else if(3===t){var r=this.currentScope();i=this.treatFunctionsAsVar?r.lexical.indexOf(e)>-1:r.lexical.indexOf(e)>-1||r.var.indexOf(e)>-1,r.functions.push(e)}else for(var a=this.scopeStack.length-1;a>=0;--a){var o=this.scopeStack[a];if(o.lexical.indexOf(e)>-1&&!(32&o.flags&&o.lexical[0]===e)||!this.treatFunctionsAsVarInScope(o)&&o.functions.indexOf(e)>-1){i=!0;break}if(o.var.push(e),this.inModule&&1&o.flags&&delete this.undefinedExports[e],3&o.flags)break}i&&this.raiseRecoverable(s,"Identifier '"+e+"' has already been declared")},Z.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},Z.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},Z.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags)return t}},Z.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags&&!(16&t.flags))return t}};var te=function(e,t,s){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new R(e,s)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},se=V.prototype;function ie(e,t,s,i){return e.type=t,e.end=s,this.options.locations&&(e.loc.end=i),this.options.ranges&&(e.range[1]=s),e}se.startNode=function(){return new te(this,this.start,this.startLoc)},se.startNodeAt=function(e,t){return new te(this,e,t)},se.finishNode=function(e,t){return ie.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},se.finishNodeAt=function(e,t,s,i){return ie.call(this,e,t,s,i)};var ne=function(e,t,s,i,n){this.token=e,this.isExpr=!!t,this.preserveSpace=!!s,this.override=i,this.generator=!!n},re={b_stat:new ne("{",!1),b_expr:new ne("{",!0),b_tmpl:new ne("${",!1),p_stat:new ne("(",!1),p_expr:new ne("(",!0),q_tmpl:new ne("`",!0,!0,(function(e){return e.tryReadTemplateToken()})),f_stat:new ne("function",!1),f_expr:new ne("function",!0),f_expr_gen:new ne("function",!0,!1,null,!0),f_gen:new ne("function",!1,!1,null,!0)},ae=V.prototype;ae.initialContext=function(){return[re.b_stat]},ae.braceIsBlock=function(e){var t=this.curContext();return t===re.f_expr||t===re.f_stat||(e!==b.colon||t!==re.b_stat&&t!==re.b_expr?e===b._return||e===b.name&&this.exprAllowed?v.test(this.input.slice(this.lastTokEnd,this.start)):e===b._else||e===b.semi||e===b.eof||e===b.parenR||e===b.arrow||(e===b.braceL?t===re.b_stat:e!==b._var&&e!==b._const&&e!==b.name&&!this.exprAllowed):!t.isExpr)},ae.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},ae.updateContext=function(e){var t,s=this.type;s.keyword&&e===b.dot?this.exprAllowed=!1:(t=s.updateContext)?t.call(this,e):this.exprAllowed=s.beforeExpr},b.parenR.updateContext=b.braceR.updateContext=function(){if(1!==this.context.length){var e=this.context.pop();e===re.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},b.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?re.b_stat:re.b_expr),this.exprAllowed=!0},b.dollarBraceL.updateContext=function(){this.context.push(re.b_tmpl),this.exprAllowed=!0},b.parenL.updateContext=function(e){var t=e===b._if||e===b._for||e===b._with||e===b._while;this.context.push(t?re.p_stat:re.p_expr),this.exprAllowed=!0},b.incDec.updateContext=function(){},b._function.updateContext=b._class.updateContext=function(e){!e.beforeExpr||e===b.semi||e===b._else||e===b._return&&v.test(this.input.slice(this.lastTokEnd,this.start))||(e===b.colon||e===b.braceL)&&this.curContext()===re.b_stat?this.context.push(re.f_stat):this.context.push(re.f_expr),this.exprAllowed=!1},b.backQuote.updateContext=function(){this.curContext()===re.q_tmpl?this.context.pop():this.context.push(re.q_tmpl),this.exprAllowed=!1},b.star.updateContext=function(e){if(e===b._function){var t=this.context.length-1;this.context[t]===re.f_expr?this.context[t]=re.f_expr_gen:this.context[t]=re.f_gen}this.exprAllowed=!0},b.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==b.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var oe="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",he=oe+" Extended_Pictographic",le={9:oe,10:he,11:"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS Extended_Pictographic"},ce="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",ue="Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",de=ue+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",pe={9:ue,10:de,11:"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"},fe={};function me(e){var t=fe[e]={binary:$(le[e]+" "+ce),nonBinary:{General_Category:$(ce),Script:$(pe[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}me(9),me(10),me(11);var ge=V.prototype,xe=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":""),this.unicodeProperties=fe[e.options.ecmaVersion>=11?11:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function ye(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function Ee(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function be(e){return e>=65&&e<=90||e>=97&&e<=122}function ve(e){return be(e)||95===e}function Se(e){return ve(e)||Ae(e)}function Ae(e){return e>=48&&e<=57}function Ce(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Pe(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function ke(e){return e>=48&&e<=55}xe.prototype.reset=function(e,t,s){var i=-1!==s.indexOf("u");this.start=0|e,this.source=t+"",this.flags=s,this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchN=i&&this.parser.options.ecmaVersion>=9},xe.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},xe.prototype.at=function(e){var t=this.source,s=t.length;if(e>=s)return-1;var i=t.charCodeAt(e);if(!this.switchU||i<=55295||i>=57344||e+1>=s)return i;var n=t.charCodeAt(e+1);return n>=56320&&n<=57343?(i<<10)+n-56613888:i},xe.prototype.nextIndex=function(e){var t=this.source,s=t.length;if(e>=s)return s;var i,n=t.charCodeAt(e);return!this.switchU||n<=55295||n>=57344||e+1>=s||(i=t.charCodeAt(e+1))<56320||i>57343?e+1:e+2},xe.prototype.current=function(){return this.at(this.pos)},xe.prototype.lookahead=function(){return this.at(this.nextIndex(this.pos))},xe.prototype.advance=function(){this.pos=this.nextIndex(this.pos)},xe.prototype.eat=function(e){return this.current()===e&&(this.advance(),!0)},ge.validateRegExpFlags=function(e){for(var t=e.validFlags,s=e.flags,i=0;i<s.length;i++){var n=s.charAt(i);-1===t.indexOf(n)&&this.raise(e.start,"Invalid regular expression flag"),s.indexOf(n,i+1)>-1&&this.raise(e.start,"Duplicate regular expression flag")}},ge.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},ge.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,s=e.backReferenceNames;t<s.length;t+=1){var i=s[t];-1===e.groupNames.indexOf(i)&&e.raise("Invalid named capture referenced")}},ge.regexp_disjunction=function(e){for(this.regexp_alternative(e);e.eat(124);)this.regexp_alternative(e);this.regexp_eatQuantifier(e,!0)&&e.raise("Nothing to repeat"),e.eat(123)&&e.raise("Lone quantifier brackets")},ge.regexp_alternative=function(e){for(;e.pos<e.source.length&&this.regexp_eatTerm(e););},ge.regexp_eatTerm=function(e){return this.regexp_eatAssertion(e)?(e.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(e)&&e.switchU&&e.raise("Invalid quantifier"),!0):!!(e.switchU?this.regexp_eatAtom(e):this.regexp_eatExtendedAtom(e))&&(this.regexp_eatQuantifier(e),!0)},ge.regexp_eatAssertion=function(e){var t=e.pos;if(e.lastAssertionIsQuantifiable=!1,e.eat(94)||e.eat(36))return!0;if(e.eat(92)){if(e.eat(66)||e.eat(98))return!0;e.pos=t}if(e.eat(40)&&e.eat(63)){var s=!1;if(this.options.ecmaVersion>=9&&(s=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!s,!0}return e.pos=t,!1},ge.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},ge.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},ge.regexp_eatBracedQuantifier=function(e,t){var s=e.pos;if(e.eat(123)){var i=0,n=-1;if(this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(n=e.lastIntValue),e.eat(125)))return-1!==n&&n<i&&!t&&e.raise("numbers out of order in {} quantifier"),!0;e.switchU&&!t&&e.raise("Incomplete quantifier"),e.pos=s}return!1},ge.regexp_eatAtom=function(e){return this.regexp_eatPatternCharacters(e)||e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)},ge.regexp_eatReverseSolidusAtomEscape=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatAtomEscape(e))return!0;e.pos=t}return!1},ge.regexp_eatUncapturingGroup=function(e){var t=e.pos;if(e.eat(40)){if(e.eat(63)&&e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise("Unterminated group")}e.pos=t}return!1},ge.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},ge.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},ge.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},ge.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!Ee(t)&&(e.lastIntValue=t,e.advance(),!0)},ge.regexp_eatPatternCharacters=function(e){for(var t=e.pos,s=0;-1!==(s=e.current())&&!Ee(s);)e.advance();return e.pos!==t},ge.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t)&&(e.advance(),!0)},ge.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e))return-1!==e.groupNames.indexOf(e.lastStringValue)&&e.raise("Duplicate capture group name"),void e.groupNames.push(e.lastStringValue);e.raise("Invalid group")}},ge.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},ge.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=ye(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=ye(e.lastIntValue);return!0}return!1},ge.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,s=e.current();return e.advance(),92===s&&this.regexp_eatRegExpUnicodeEscapeSequence(e)&&(s=e.lastIntValue),function(e){return d(e,!0)||36===e||95===e}(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)},ge.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,s=e.current();return e.advance(),92===s&&this.regexp_eatRegExpUnicodeEscapeSequence(e)&&(s=e.lastIntValue),function(e){return p(e,!0)||36===e||95===e||8204===e||8205===e}(s)?(e.lastIntValue=s,!0):(e.pos=t,!1)},ge.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},ge.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var s=e.lastIntValue;if(e.switchU)return s>e.maxBackReference&&(e.maxBackReference=s),!0;if(s<=e.numCapturingParens)return!0;e.pos=t}return!1},ge.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},ge.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},ge.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},ge.regexp_eatZero=function(e){return 48===e.current()&&!Ae(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},ge.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},ge.regexp_eatControlLetter=function(e){var t=e.current();return!!be(t)&&(e.lastIntValue=t%32,e.advance(),!0)},ge.regexp_eatRegExpUnicodeEscapeSequence=function(e){var t,s=e.pos;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var i=e.lastIntValue;if(e.switchU&&i>=55296&&i<=56319){var n=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var r=e.lastIntValue;if(r>=56320&&r<=57343)return e.lastIntValue=1024*(i-55296)+(r-56320)+65536,!0}e.pos=n,e.lastIntValue=i}return!0}if(e.switchU&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&((t=e.lastIntValue)>=0&&t<=1114111))return!0;e.switchU&&e.raise("Invalid unicode escape"),e.pos=s}return!1},ge.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t)&&(e.lastIntValue=t,e.advance(),!0)},ge.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1},ge.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(function(e){return 100===e||68===e||115===e||83===e||119===e||87===e}(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(80===t||112===t)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1},ge.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var s=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,s,i),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var n=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,n),!0}return!1},ge.regexp_validateUnicodePropertyNameAndValue=function(e,t,s){_(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(s)||e.raise("Invalid property value")},ge.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")},ge.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";ve(t=e.current());)e.lastStringValue+=ye(t),e.advance();return""!==e.lastStringValue},ge.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Se(t=e.current());)e.lastStringValue+=ye(t),e.advance();return""!==e.lastStringValue},ge.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},ge.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},ge.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var s=e.lastIntValue;!e.switchU||-1!==t&&-1!==s||e.raise("Invalid character class"),-1!==t&&-1!==s&&t>s&&e.raise("Range out of order in character class")}}},ge.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var s=e.current();(99===s||ke(s))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var i=e.current();return 93!==i&&(e.lastIntValue=i,e.advance(),!0)},ge.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},ge.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!Ae(t)&&95!==t)&&(e.lastIntValue=t%32,e.advance(),!0)},ge.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},ge.regexp_eatDecimalDigits=function(e){var t=e.pos,s=0;for(e.lastIntValue=0;Ae(s=e.current());)e.lastIntValue=10*e.lastIntValue+(s-48),e.advance();return e.pos!==t},ge.regexp_eatHexDigits=function(e){var t=e.pos,s=0;for(e.lastIntValue=0;Ce(s=e.current());)e.lastIntValue=16*e.lastIntValue+Pe(s),e.advance();return e.pos!==t},ge.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var s=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*s+e.lastIntValue:e.lastIntValue=8*t+s}else e.lastIntValue=t;return!0}return!1},ge.regexp_eatOctalDigit=function(e){var t=e.current();return ke(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},ge.regexp_eatFixedHexDigits=function(e,t){var s=e.pos;e.lastIntValue=0;for(var i=0;i<t;++i){var n=e.current();if(!Ce(n))return e.pos=s,!1;e.lastIntValue=16*e.lastIntValue+Pe(n),e.advance()}return!0};var we=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new R(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},Ne=V.prototype;function _e(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}Ne.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new we(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},Ne.getToken=function(){return this.next(),new we(this)},"undefined"!=typeof Symbol&&(Ne[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===b.eof,value:t}}}}),Ne.curContext=function(){return this.context[this.context.length-1]},Ne.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(b.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},Ne.readToken=function(e){return d(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},Ne.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},Ne.skipBlockComment=function(){var e,t=this.options.onComment&&this.curPosition(),s=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(S.lastIndex=s;(e=S.exec(this.input))&&e.index<this.pos;)++this.curLine,this.lineStart=e.index+e[0].length;this.options.onComment&&this.options.onComment(!0,this.input.slice(s+2,i),s,this.pos,t,this.curPosition())},Ne.skipLineComment=function(e){for(var t=this.pos,s=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!A(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,s,this.curPosition())},Ne.skipSpace=function(){e:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&C.test(String.fromCharCode(e))))break e;++this.pos}}},Ne.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var s=this.type;this.type=e,this.value=t,this.updateContext(s)},Ne.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(b.ellipsis)):(++this.pos,this.finishToken(b.dot))},Ne.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(b.assign,2):this.finishOp(b.slash,1)},Ne.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),s=1,i=42===e?b.star:b.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++s,i=b.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(b.assign,s+1):this.finishOp(i,s)},Ne.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.finishOp(124===e?b.logicalOR:b.logicalAND,2):61===t?this.finishOp(b.assign,2):this.finishOp(124===e?b.bitwiseOR:b.bitwiseAND,1)},Ne.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(b.assign,2):this.finishOp(b.bitwiseXOR,1)},Ne.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!v.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(b.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(b.assign,2):this.finishOp(b.plusMin,1)},Ne.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),s=1;return t===e?(s=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+s)?this.finishOp(b.assign,s+1):this.finishOp(b.bitShift,s)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(s=2),this.finishOp(b.relational,s)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},Ne.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(b.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(b.arrow)):this.finishOp(61===e?b.eq:b.prefix,1)},Ne.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(b.parenL);case 41:return++this.pos,this.finishToken(b.parenR);case 59:return++this.pos,this.finishToken(b.semi);case 44:return++this.pos,this.finishToken(b.comma);case 91:return++this.pos,this.finishToken(b.bracketL);case 93:return++this.pos,this.finishToken(b.bracketR);case 123:return++this.pos,this.finishToken(b.braceL);case 125:return++this.pos,this.finishToken(b.braceR);case 58:return++this.pos,this.finishToken(b.colon);case 63:return++this.pos,this.finishToken(b.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(b.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(b.prefix,1)}this.raise(this.pos,"Unexpected character '"+_e(e)+"'")},Ne.finishOp=function(e,t){var s=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,s)},Ne.readRegexp=function(){for(var e,t,s=this.pos;;){this.pos>=this.input.length&&this.raise(s,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(v.test(i)&&this.raise(s,"Unterminated regular expression"),e)e=!1;else{if("["===i)t=!0;else if("]"===i&&t)t=!1;else if("/"===i&&!t)break;e="\\"===i}++this.pos}var n=this.input.slice(s,this.pos);++this.pos;var r=this.pos,a=this.readWord1();this.containsEsc&&this.unexpected(r);var o=this.regexpState||(this.regexpState=new xe(this));o.reset(s,n,a),this.validateRegExpFlags(o),this.validateRegExpPattern(o);var h=null;try{h=new RegExp(n,a)}catch(e){}return this.finishToken(b.regexp,{pattern:n,flags:a,value:h})},Ne.readInt=function(e,t){for(var s=this.pos,i=0,n=0,r=null==t?1/0:t;n<r;++n){var a=this.input.charCodeAt(this.pos),o=void 0;if((o=a>=97?a-97+10:a>=65?a-65+10:a>=48&&a<=57?a-48:1/0)>=e)break;++this.pos,i=i*e+o}return this.pos===s||null!=t&&this.pos-s!==t?null:i},Ne.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var s=this.readInt(e);return null==s&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(s="undefined"!=typeof BigInt?BigInt(this.input.slice(t,this.pos)):null,++this.pos):d(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(b.num,s)},Ne.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10)||this.raise(t,"Invalid number");var s=this.pos-t>=2&&48===this.input.charCodeAt(t);s&&this.strict&&this.raise(t,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!s&&!e&&this.options.ecmaVersion>=11&&110===i){var n=this.input.slice(t,this.pos),r="undefined"!=typeof BigInt?BigInt(n):null;return++this.pos,d(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(b.num,r)}s&&/[89]/.test(this.input.slice(t,this.pos))&&(s=!1),46!==i||s||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||s||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),d(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a=this.input.slice(t,this.pos),o=s?parseInt(a,8):parseFloat(a);return this.finishToken(b.num,o)},Ne.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},Ne.readString=function(e){for(var t="",s=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===e)break;92===i?(t+=this.input.slice(s,this.pos),t+=this.readEscapedChar(!1),s=this.pos):(A(i,this.options.ecmaVersion>=10)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(s,this.pos++),this.finishToken(b.string,t)};var Ie={};Ne.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==Ie)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},Ne.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Ie;this.raise(e,t)},Ne.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var s=this.input.charCodeAt(this.pos);if(96===s||36===s&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==b.template&&this.type!==b.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(b.template,e)):36===s?(this.pos+=2,this.finishToken(b.dollarBraceL)):(++this.pos,this.finishToken(b.backQuote));if(92===s)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(A(s)){switch(e+=this.input.slice(t,this.pos),++this.pos,s){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(s)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},Ne.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(b.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},Ne.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return _e(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(e){var s=this.pos-1;return this.invalidStringToken(s,"Invalid escape sequence in template string"),null}default:if(t>=48&&t<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],n=parseInt(i,8);return n>255&&(i=i.slice(0,-1),n=parseInt(i,8)),this.pos+=i.length-1,t=this.input.charCodeAt(this.pos),"0"===i&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-i.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(n)}return A(t)?"":String.fromCharCode(t)}},Ne.readHexChar=function(e){var t=this.pos,s=this.readInt(16,e);return null===s&&this.invalidStringToken(t,"Bad character escape sequence"),s},Ne.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,s=this.pos,i=this.options.ecmaVersion>=6;this.pos<this.input.length;){var n=this.fullCharCodeAtPos();if(p(n,i))this.pos+=n<=65535?1:2;else{if(92!==n)break;this.containsEsc=!0,e+=this.input.slice(s,this.pos);var r=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var a=this.readCodePoint();(t?d:p)(a,i)||this.invalidStringToken(r,"Invalid Unicode escape"),e+=_e(a),s=this.pos}t=!1}return e+this.input.slice(s,this.pos)},Ne.readWord=function(){var e=this.readWord1(),t=b.name;return this.keywords.test(e)&&(t=y[e]),this.finishToken(t,e)};V.acorn={Parser:V,version:"7.1.0",defaultOptions:M,Position:T,SourceLocation:R,getLineInfo:L,Node:te,TokenType:f,tokTypes:b,keywordTypes:y,TokContext:ne,tokContexts:re,isIdentifierChar:p,isIdentifierStart:d,Token:we,isNewLine:A,lineBreak:v,lineBreakG:S,nonASCIIwhitespace:C};var $e=function(e){return e&&e.default||e}(Object.freeze({__proto__:null,Node:te,Parser:V,Position:T,SourceLocation:R,TokContext:ne,Token:we,TokenType:f,defaultOptions:M,getLineInfo:L,isIdentifierChar:p,isIdentifierStart:d,isNewLine:A,keywordTypes:y,lineBreak:v,lineBreakG:S,nonASCIIwhitespace:C,parse:function(e,t){return V.parse(e,t)},parseExpressionAt:function(e,t,s){return V.parseExpressionAt(e,t,s)},tokContexts:re,tokTypes:b,tokenizer:function(e,t){return V.tokenizer(e,t)},version:"7.1.0"}));const Te=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,Re=$e.tokTypes;var Le=function(e){return class extends e{parseExport(e,t){Te.lastIndex=this.pos;const s=Te.exec(this.input);if("*"!==this.input.charAt(this.pos+s[0].length))return super.parseExport(e,t);this.next();const i=this.startNode();return this.expect(Re.star),this.eatContextual("as")&&(e.declaration=null,i.exported=this.parseIdent(!0),this.checkExport(t,i.exported.name,this.lastTokStart),e.specifiers=[this.finishNode(i,"ExportNamespaceSpecifier")]),this.expectContextual("from"),this.type!==Re.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,e.specifiers?"ExportNamedDeclaration":"ExportAllDeclaration")}}};const Me=$e.tokTypes,De=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,Oe=e=>{De.lastIndex=e.pos;let t=De.exec(e.input),s=e.pos+t[0].length;return"."===e.input.slice(s,s+1)};var Ve=function(e){return class extends e{parseExprAtom(e){if(this.type!==Me._import||!Oe(this))return super.parseExprAtom(e);this.options.allowImportExportEverywhere||this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'");let t=this.startNode();return t.meta=this.parseIdent(!0),this.expect(Me.dot),t.property=this.parseIdent(!0),"meta"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for import is import.meta"),this.containsEsc&&this.raiseRecoverable(t.property.start,'"meta" in import.meta must not contain escape sequences'),this.finishNode(t,"MetaProperty")}parseStatement(e,t,s){if(this.type!==Me._import||!Oe(this))return super.parseStatement(e,t,s);let i=this.startNode(),n=this.parseExpression();return this.parseExpressionStatement(i,n)}}};const Be=Symbol("Value Properties"),Fe={pure:!0},We={pure:!1},Ue={__proto__:null,[Be]:We},ze={__proto__:null,[Be]:Fe},je={__proto__:null,[Be]:We,prototype:Ue},Ge={__proto__:null,[Be]:Fe,prototype:Ue},He={__proto__:null,[Be]:Fe,from:ze,of:ze,prototype:Ue},qe={__proto__:null,[Be]:Fe,supportedLocalesOf:Ge},Ke={global:Ue,globalThis:Ue,self:Ue,window:Ue,__proto__:null,[Be]:We,Array:{__proto__:null,[Be]:We,from:ze,isArray:ze,of:ze,prototype:Ue},ArrayBuffer:{__proto__:null,[Be]:Fe,isView:ze,prototype:Ue},Atomics:Ue,BigInt:je,BigInt64Array:je,BigUint64Array:je,Boolean:Ge,constructor:je,DataView:Ge,Date:{__proto__:null,[Be]:Fe,now:ze,parse:ze,prototype:Ue,UTC:ze},decodeURI:ze,decodeURIComponent:ze,encodeURI:ze,encodeURIComponent:ze,Error:Ge,escape:ze,eval:Ue,EvalError:Ge,Float32Array:He,Float64Array:He,Function:je,hasOwnProperty:Ue,Infinity:Ue,Int16Array:He,Int32Array:He,Int8Array:He,isFinite:ze,isNaN:ze,isPrototypeOf:Ue,JSON:Ue,Map:Ge,Math:{__proto__:null,[Be]:We,abs:ze,acos:ze,acosh:ze,asin:ze,asinh:ze,atan:ze,atan2:ze,atanh:ze,cbrt:ze,ceil:ze,clz32:ze,cos:ze,cosh:ze,exp:ze,expm1:ze,floor:ze,fround:ze,hypot:ze,imul:ze,log:ze,log10:ze,log1p:ze,log2:ze,max:ze,min:ze,pow:ze,random:ze,round:ze,sign:ze,sin:ze,sinh:ze,sqrt:ze,tan:ze,tanh:ze,trunc:ze},NaN:Ue,Number:{__proto__:null,[Be]:Fe,isFinite:ze,isInteger:ze,isNaN:ze,isSafeInteger:ze,parseFloat:ze,parseInt:ze,prototype:Ue},Object:{__proto__:null,[Be]:Fe,create:ze,getNotifier:ze,getOwn:ze,getOwnPropertyDescriptor:ze,getOwnPropertyNames:ze,getOwnPropertySymbols:ze,getPrototypeOf:ze,is:ze,isExtensible:ze,isFrozen:ze,isSealed:ze,keys:ze,prototype:Ue},parseFloat:ze,parseInt:ze,Promise:{__proto__:null,[Be]:We,all:ze,prototype:Ue,race:ze,resolve:ze},propertyIsEnumerable:Ue,Proxy:Ue,RangeError:Ge,ReferenceError:Ge,Reflect:Ue,RegExp:Ge,Set:Ge,SharedArrayBuffer:je,String:{__proto__:null,[Be]:Fe,fromCharCode:ze,fromCodePoint:ze,prototype:Ue,raw:ze},Symbol:{__proto__:null,[Be]:Fe,for:ze,keyFor:ze,prototype:Ue},SyntaxError:Ge,toLocaleString:Ue,toString:Ue,TypeError:Ge,Uint16Array:He,Uint32Array:He,Uint8Array:He,Uint8ClampedArray:He,unescape:ze,URIError:Ge,valueOf:Ue,WeakMap:Ge,WeakSet:Ge,clearInterval:je,clearTimeout:je,console:Ue,Intl:{__proto__:null,[Be]:We,Collator:qe,DateTimeFormat:qe,ListFormat:qe,NumberFormat:qe,PluralRules:qe,RelativeTimeFormat:qe},setInterval:je,setTimeout:je,TextDecoder:je,TextEncoder:je,URL:je,URLSearchParams:je,AbortController:je,AbortSignal:je,addEventListener:Ue,alert:Ue,AnalyserNode:je,Animation:je,AnimationEvent:je,applicationCache:Ue,ApplicationCache:je,ApplicationCacheErrorEvent:je,atob:Ue,Attr:je,Audio:je,AudioBuffer:je,AudioBufferSourceNode:je,AudioContext:je,AudioDestinationNode:je,AudioListener:je,AudioNode:je,AudioParam:je,AudioProcessingEvent:je,AudioScheduledSourceNode:je,AudioWorkletNode:je,BarProp:je,BaseAudioContext:je,BatteryManager:je,BeforeUnloadEvent:je,BiquadFilterNode:je,Blob:je,BlobEvent:je,blur:Ue,BroadcastChannel:je,btoa:Ue,ByteLengthQueuingStrategy:je,Cache:je,caches:Ue,CacheStorage:je,cancelAnimationFrame:Ue,cancelIdleCallback:Ue,CanvasCaptureMediaStreamTrack:je,CanvasGradient:je,CanvasPattern:je,CanvasRenderingContext2D:je,ChannelMergerNode:je,ChannelSplitterNode:je,CharacterData:je,clientInformation:Ue,ClipboardEvent:je,close:Ue,closed:Ue,CloseEvent:je,Comment:je,CompositionEvent:je,confirm:Ue,ConstantSourceNode:je,ConvolverNode:je,CountQueuingStrategy:je,createImageBitmap:Ue,Credential:je,CredentialsContainer:je,crypto:Ue,Crypto:je,CryptoKey:je,CSS:je,CSSConditionRule:je,CSSFontFaceRule:je,CSSGroupingRule:je,CSSImportRule:je,CSSKeyframeRule:je,CSSKeyframesRule:je,CSSMediaRule:je,CSSNamespaceRule:je,CSSPageRule:je,CSSRule:je,CSSRuleList:je,CSSStyleDeclaration:je,CSSStyleRule:je,CSSStyleSheet:je,CSSSupportsRule:je,CustomElementRegistry:je,customElements:Ue,CustomEvent:je,DataTransfer:je,DataTransferItem:je,DataTransferItemList:je,defaultstatus:Ue,defaultStatus:Ue,DelayNode:je,DeviceMotionEvent:je,DeviceOrientationEvent:je,devicePixelRatio:Ue,dispatchEvent:Ue,document:Ue,Document:je,DocumentFragment:je,DocumentType:je,DOMError:je,DOMException:je,DOMImplementation:je,DOMMatrix:je,DOMMatrixReadOnly:je,DOMParser:je,DOMPoint:je,DOMPointReadOnly:je,DOMQuad:je,DOMRect:je,DOMRectReadOnly:je,DOMStringList:je,DOMStringMap:je,DOMTokenList:je,DragEvent:je,DynamicsCompressorNode:je,Element:je,ErrorEvent:je,Event:je,EventSource:je,EventTarget:je,external:Ue,fetch:Ue,File:je,FileList:je,FileReader:je,find:Ue,focus:Ue,FocusEvent:je,FontFace:je,FontFaceSetLoadEvent:je,FormData:je,frames:Ue,GainNode:je,Gamepad:je,GamepadButton:je,GamepadEvent:je,getComputedStyle:Ue,getSelection:Ue,HashChangeEvent:je,Headers:je,history:Ue,History:je,HTMLAllCollection:je,HTMLAnchorElement:je,HTMLAreaElement:je,HTMLAudioElement:je,HTMLBaseElement:je,HTMLBodyElement:je,HTMLBRElement:je,HTMLButtonElement:je,HTMLCanvasElement:je,HTMLCollection:je,HTMLContentElement:je,HTMLDataElement:je,HTMLDataListElement:je,HTMLDetailsElement:je,HTMLDialogElement:je,HTMLDirectoryElement:je,HTMLDivElement:je,HTMLDListElement:je,HTMLDocument:je,HTMLElement:je,HTMLEmbedElement:je,HTMLFieldSetElement:je,HTMLFontElement:je,HTMLFormControlsCollection:je,HTMLFormElement:je,HTMLFrameElement:je,HTMLFrameSetElement:je,HTMLHeadElement:je,HTMLHeadingElement:je,HTMLHRElement:je,HTMLHtmlElement:je,HTMLIFrameElement:je,HTMLImageElement:je,HTMLInputElement:je,HTMLLabelElement:je,HTMLLegendElement:je,HTMLLIElement:je,HTMLLinkElement:je,HTMLMapElement:je,HTMLMarqueeElement:je,HTMLMediaElement:je,HTMLMenuElement:je,HTMLMetaElement:je,HTMLMeterElement:je,HTMLModElement:je,HTMLObjectElement:je,HTMLOListElement:je,HTMLOptGroupElement:je,HTMLOptionElement:je,HTMLOptionsCollection:je,HTMLOutputElement:je,HTMLParagraphElement:je,HTMLParamElement:je,HTMLPictureElement:je,HTMLPreElement:je,HTMLProgressElement:je,HTMLQuoteElement:je,HTMLScriptElement:je,HTMLSelectElement:je,HTMLShadowElement:je,HTMLSlotElement:je,HTMLSourceElement:je,HTMLSpanElement:je,HTMLStyleElement:je,HTMLTableCaptionElement:je,HTMLTableCellElement:je,HTMLTableColElement:je,HTMLTableElement:je,HTMLTableRowElement:je,HTMLTableSectionElement:je,HTMLTemplateElement:je,HTMLTextAreaElement:je,HTMLTimeElement:je,HTMLTitleElement:je,HTMLTrackElement:je,HTMLUListElement:je,HTMLUnknownElement:je,HTMLVideoElement:je,IDBCursor:je,IDBCursorWithValue:je,IDBDatabase:je,IDBFactory:je,IDBIndex:je,IDBKeyRange:je,IDBObjectStore:je,IDBOpenDBRequest:je,IDBRequest:je,IDBTransaction:je,IDBVersionChangeEvent:je,IdleDeadline:je,IIRFilterNode:je,Image:je,ImageBitmap:je,ImageBitmapRenderingContext:je,ImageCapture:je,ImageData:je,indexedDB:Ue,innerHeight:Ue,innerWidth:Ue,InputEvent:je,IntersectionObserver:je,IntersectionObserverEntry:je,isSecureContext:Ue,KeyboardEvent:je,KeyframeEffect:je,length:Ue,localStorage:Ue,location:Ue,Location:je,locationbar:Ue,matchMedia:Ue,MediaDeviceInfo:je,MediaDevices:je,MediaElementAudioSourceNode:je,MediaEncryptedEvent:je,MediaError:je,MediaKeyMessageEvent:je,MediaKeySession:je,MediaKeyStatusMap:je,MediaKeySystemAccess:je,MediaList:je,MediaQueryList:je,MediaQueryListEvent:je,MediaRecorder:je,MediaSettingsRange:je,MediaSource:je,MediaStream:je,MediaStreamAudioDestinationNode:je,MediaStreamAudioSourceNode:je,MediaStreamEvent:je,MediaStreamTrack:je,MediaStreamTrackEvent:je,menubar:Ue,MessageChannel:je,MessageEvent:je,MessagePort:je,MIDIAccess:je,MIDIConnectionEvent:je,MIDIInput:je,MIDIInputMap:je,MIDIMessageEvent:je,MIDIOutput:je,MIDIOutputMap:je,MIDIPort:je,MimeType:je,MimeTypeArray:je,MouseEvent:je,moveBy:Ue,moveTo:Ue,MutationEvent:je,MutationObserver:je,MutationRecord:je,name:Ue,NamedNodeMap:je,NavigationPreloadManager:je,navigator:Ue,Navigator:je,NetworkInformation:je,Node:je,NodeFilter:Ue,NodeIterator:je,NodeList:je,Notification:je,OfflineAudioCompletionEvent:je,OfflineAudioContext:je,offscreenBuffering:Ue,OffscreenCanvas:je,open:Ue,openDatabase:Ue,Option:je,origin:Ue,OscillatorNode:je,outerHeight:Ue,outerWidth:Ue,PageTransitionEvent:je,pageXOffset:Ue,pageYOffset:Ue,PannerNode:je,parent:Ue,Path2D:je,PaymentAddress:je,PaymentRequest:je,PaymentRequestUpdateEvent:je,PaymentResponse:je,performance:Ue,Performance:je,PerformanceEntry:je,PerformanceLongTaskTiming:je,PerformanceMark:je,PerformanceMeasure:je,PerformanceNavigation:je,PerformanceNavigationTiming:je,PerformanceObserver:je,PerformanceObserverEntryList:je,PerformancePaintTiming:je,PerformanceResourceTiming:je,PerformanceTiming:je,PeriodicWave:je,Permissions:je,PermissionStatus:je,personalbar:Ue,PhotoCapabilities:je,Plugin:je,PluginArray:je,PointerEvent:je,PopStateEvent:je,postMessage:Ue,Presentation:je,PresentationAvailability:je,PresentationConnection:je,PresentationConnectionAvailableEvent:je,PresentationConnectionCloseEvent:je,PresentationConnectionList:je,PresentationReceiver:je,PresentationRequest:je,print:Ue,ProcessingInstruction:je,ProgressEvent:je,PromiseRejectionEvent:je,prompt:Ue,PushManager:je,PushSubscription:je,PushSubscriptionOptions:je,queueMicrotask:Ue,RadioNodeList:je,Range:je,ReadableStream:je,RemotePlayback:je,removeEventListener:Ue,Request:je,requestAnimationFrame:Ue,requestIdleCallback:Ue,resizeBy:Ue,ResizeObserver:je,ResizeObserverEntry:je,resizeTo:Ue,Response:je,RTCCertificate:je,RTCDataChannel:je,RTCDataChannelEvent:je,RTCDtlsTransport:je,RTCIceCandidate:je,RTCIceTransport:je,RTCPeerConnection:je,RTCPeerConnectionIceEvent:je,RTCRtpReceiver:je,RTCRtpSender:je,RTCSctpTransport:je,RTCSessionDescription:je,RTCStatsReport:je,RTCTrackEvent:je,screen:Ue,Screen:je,screenLeft:Ue,ScreenOrientation:je,screenTop:Ue,screenX:Ue,screenY:Ue,ScriptProcessorNode:je,scroll:Ue,scrollbars:Ue,scrollBy:Ue,scrollTo:Ue,scrollX:Ue,scrollY:Ue,SecurityPolicyViolationEvent:je,Selection:je,ServiceWorker:je,ServiceWorkerContainer:je,ServiceWorkerRegistration:je,sessionStorage:Ue,ShadowRoot:je,SharedWorker:je,SourceBuffer:je,SourceBufferList:je,speechSynthesis:Ue,SpeechSynthesisEvent:je,SpeechSynthesisUtterance:je,StaticRange:je,status:Ue,statusbar:Ue,StereoPannerNode:je,stop:Ue,Storage:je,StorageEvent:je,StorageManager:je,styleMedia:Ue,StyleSheet:je,StyleSheetList:je,SubtleCrypto:je,SVGAElement:je,SVGAngle:je,SVGAnimatedAngle:je,SVGAnimatedBoolean:je,SVGAnimatedEnumeration:je,SVGAnimatedInteger:je,SVGAnimatedLength:je,SVGAnimatedLengthList:je,SVGAnimatedNumber:je,SVGAnimatedNumberList:je,SVGAnimatedPreserveAspectRatio:je,SVGAnimatedRect:je,SVGAnimatedString:je,SVGAnimatedTransformList:je,SVGAnimateElement:je,SVGAnimateMotionElement:je,SVGAnimateTransformElement:je,SVGAnimationElement:je,SVGCircleElement:je,SVGClipPathElement:je,SVGComponentTransferFunctionElement:je,SVGDefsElement:je,SVGDescElement:je,SVGDiscardElement:je,SVGElement:je,SVGEllipseElement:je,SVGFEBlendElement:je,SVGFEColorMatrixElement:je,SVGFEComponentTransferElement:je,SVGFECompositeElement:je,SVGFEConvolveMatrixElement:je,SVGFEDiffuseLightingElement:je,SVGFEDisplacementMapElement:je,SVGFEDistantLightElement:je,SVGFEDropShadowElement:je,SVGFEFloodElement:je,SVGFEFuncAElement:je,SVGFEFuncBElement:je,SVGFEFuncGElement:je,SVGFEFuncRElement:je,SVGFEGaussianBlurElement:je,SVGFEImageElement:je,SVGFEMergeElement:je,SVGFEMergeNodeElement:je,SVGFEMorphologyElement:je,SVGFEOffsetElement:je,SVGFEPointLightElement:je,SVGFESpecularLightingElement:je,SVGFESpotLightElement:je,SVGFETileElement:je,SVGFETurbulenceElement:je,SVGFilterElement:je,SVGForeignObjectElement:je,SVGGElement:je,SVGGeometryElement:je,SVGGradientElement:je,SVGGraphicsElement:je,SVGImageElement:je,SVGLength:je,SVGLengthList:je,SVGLinearGradientElement:je,SVGLineElement:je,SVGMarkerElement:je,SVGMaskElement:je,SVGMatrix:je,SVGMetadataElement:je,SVGMPathElement:je,SVGNumber:je,SVGNumberList:je,SVGPathElement:je,SVGPatternElement:je,SVGPoint:je,SVGPointList:je,SVGPolygonElement:je,SVGPolylineElement:je,SVGPreserveAspectRatio:je,SVGRadialGradientElement:je,SVGRect:je,SVGRectElement:je,SVGScriptElement:je,SVGSetElement:je,SVGStopElement:je,SVGStringList:je,SVGStyleElement:je,SVGSVGElement:je,SVGSwitchElement:je,SVGSymbolElement:je,SVGTextContentElement:je,SVGTextElement:je,SVGTextPathElement:je,SVGTextPositioningElement:je,SVGTitleElement:je,SVGTransform:je,SVGTransformList:je,SVGTSpanElement:je,SVGUnitTypes:je,SVGUseElement:je,SVGViewElement:je,TaskAttributionTiming:je,Text:je,TextEvent:je,TextMetrics:je,TextTrack:je,TextTrackCue:je,TextTrackCueList:je,TextTrackList:je,TimeRanges:je,toolbar:Ue,top:Ue,Touch:je,TouchEvent:je,TouchList:je,TrackEvent:je,TransitionEvent:je,TreeWalker:je,UIEvent:je,ValidityState:je,visualViewport:Ue,VisualViewport:je,VTTCue:je,WaveShaperNode:je,WebAssembly:Ue,WebGL2RenderingContext:je,WebGLActiveInfo:je,WebGLBuffer:je,WebGLContextEvent:je,WebGLFramebuffer:je,WebGLProgram:je,WebGLQuery:je,WebGLRenderbuffer:je,WebGLRenderingContext:je,WebGLSampler:je,WebGLShader:je,WebGLShaderPrecisionFormat:je,WebGLSync:je,WebGLTexture:je,WebGLTransformFeedback:je,WebGLUniformLocation:je,WebGLVertexArrayObject:je,WebSocket:je,WheelEvent:je,Window:je,Worker:je,WritableStream:je,XMLDocument:je,XMLHttpRequest:je,XMLHttpRequestEventTarget:je,XMLHttpRequestUpload:je,XMLSerializer:je,XPathEvaluator:je,XPathExpression:je,XPathResult:je,XSLTProcessor:je};for(const e of["window","global","self","globalThis"])Ke[e]=Ke;function Xe(e){let t=Ke;for(const s of e){if("string"!=typeof s)return null;if(t=t[s],!t)return null}return t[Be]}const Ye=[],Qe=Symbol("Unknown Key"),Je=[],Ze=[Qe],et=Symbol("Entities");class tt{constructor(){this.entityPaths=Object.create(null,{[et]:{value:new Set}})}getEntities(e){let t=this.entityPaths;for(const s of e)t=t[s]=t[s]||Object.create(null,{[et]:{value:new Set}});return t[et]}}const st=new tt;function it(e,t=null){return Object.create(t,e)}const nt=Symbol("Unknown Value"),rt={deoptimizePath:()=>{},getLiteralValueAtPath:()=>nt,getReturnExpressionWhenCalledAtPath:()=>rt,hasEffectsWhenAccessedAtPath:e=>e.length>0,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:()=>!0,include:()=>{},includeCallArguments(e,t){for(const s of t)s.include(e,!1)},included:!0,toString:()=>"[[UNKNOWN]]"},at={deoptimizePath:()=>{},getLiteralValueAtPath:()=>{},getReturnExpressionWhenCalledAtPath:()=>rt,hasEffectsWhenAccessedAtPath:e=>e.length>0,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:()=>!0,include:()=>{},includeCallArguments(){},included:!0,toString:()=>"undefined"},ot={value:{returns:null,returnsPrimitive:rt,callsArgs:null,mutatesSelf:!0}},ht={value:{returns:null,returnsPrimitive:rt,callsArgs:[0],mutatesSelf:!1}};class lt{constructor(){this.included=!1}deoptimizePath(){}getLiteralValueAtPath(){return nt}getReturnExpressionWhenCalledAtPath(e){return 1===e.length?It(Pt,e[0]):rt}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){return 1!==e.length||_t(Pt,e[0],this.included,t,s)}include(){this.included=!0}includeCallArguments(e,t){for(const s of t)s.include(e,!1)}toString(){return"[[UNKNOWN ARRAY]]"}}const ct={value:{callsArgs:null,mutatesSelf:!1,returns:lt,returnsPrimitive:null}},ut={value:{callsArgs:null,mutatesSelf:!0,returns:lt,returnsPrimitive:null}},dt={value:{callsArgs:[0],mutatesSelf:!1,returns:lt,returnsPrimitive:null}},pt={value:{callsArgs:[0],mutatesSelf:!0,returns:lt,returnsPrimitive:null}},ft={deoptimizePath:()=>{},getLiteralValueAtPath:()=>nt,getReturnExpressionWhenCalledAtPath:e=>1===e.length?It(kt,e[0]):rt,hasEffectsWhenAccessedAtPath:e=>e.length>1,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:e=>{if(1===e.length){const t=e[0];return"string"!=typeof t||!kt[t]}return!0},include:()=>{},includeCallArguments(e,t){for(const s of t)s.include(e,!1)},included:!0,toString:()=>"[[UNKNOWN BOOLEAN]]"},mt={value:{callsArgs:null,mutatesSelf:!1,returns:null,returnsPrimitive:ft}},gt={value:{callsArgs:[0],mutatesSelf:!1,returns:null,returnsPrimitive:ft}},xt={deoptimizePath:()=>{},getLiteralValueAtPath:()=>nt,getReturnExpressionWhenCalledAtPath:e=>1===e.length?It(wt,e[0]):rt,hasEffectsWhenAccessedAtPath:e=>e.length>1,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:e=>{if(1===e.length){const t=e[0];return"string"!=typeof t||!wt[t]}return!0},include:()=>{},includeCallArguments(e,t){for(const s of t)s.include(e,!1)},included:!0,toString:()=>"[[UNKNOWN NUMBER]]"},yt={value:{callsArgs:null,mutatesSelf:!1,returns:null,returnsPrimitive:xt}},Et={value:{callsArgs:null,mutatesSelf:!0,returns:null,returnsPrimitive:xt}},bt={value:{callsArgs:[0],mutatesSelf:!1,returns:null,returnsPrimitive:xt}},vt={deoptimizePath:()=>{},getLiteralValueAtPath:()=>nt,getReturnExpressionWhenCalledAtPath:e=>1===e.length?It(Nt,e[0]):rt,hasEffectsWhenAccessedAtPath:e=>e.length>1,hasEffectsWhenAssignedAtPath:e=>e.length>0,hasEffectsWhenCalledAtPath:(e,t,s)=>1!==e.length||_t(Nt,e[0],!0,t,s),include:()=>{},includeCallArguments(e,t){for(const s of t)s.include(e,!1)},included:!0,toString:()=>"[[UNKNOWN STRING]]"},St={value:{callsArgs:null,mutatesSelf:!1,returns:null,returnsPrimitive:vt}};class At{constructor(){this.included=!1}deoptimizePath(){}getLiteralValueAtPath(){return nt}getReturnExpressionWhenCalledAtPath(e){return 1===e.length?It(Ct,e[0]):rt}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){return 1!==e.length||_t(Ct,e[0],this.included,t,s)}include(){this.included=!0}includeCallArguments(e,t){for(const s of t)s.include(e,!1)}toString(){return"[[UNKNOWN OBJECT]]"}}const Ct=it({hasOwnProperty:mt,isPrototypeOf:mt,propertyIsEnumerable:mt,toLocaleString:St,toString:St,valueOf:{value:{callsArgs:null,mutatesSelf:!1,returns:null,returnsPrimitive:rt}}}),Pt=it({concat:ct,copyWithin:ut,every:gt,fill:ut,filter:dt,find:ht,findIndex:bt,forEach:ht,includes:mt,indexOf:yt,join:St,lastIndexOf:yt,map:dt,pop:ot,push:Et,reduce:ht,reduceRight:ht,reverse:ut,shift:ot,slice:ct,some:gt,sort:pt,splice:ut,unshift:Et},Ct),kt=it({valueOf:mt},Ct),wt=it({toExponential:St,toFixed:St,toLocaleString:St,toPrecision:St,valueOf:yt},Ct),Nt=it({charAt:St,charCodeAt:yt,codePointAt:yt,concat:St,endsWith:mt,includes:mt,indexOf:yt,lastIndexOf:yt,localeCompare:yt,match:mt,normalize:St,padEnd:St,padStart:St,repeat:St,replace:{value:{callsArgs:[1],mutatesSelf:!1,returns:null,returnsPrimitive:vt}},search:yt,slice:St,split:ct,startsWith:mt,substr:St,substring:St,toLocaleLowerCase:St,toLocaleUpperCase:St,toLowerCase:St,toUpperCase:St,trim:St,valueOf:St},Ct);function _t(e,t,s,i,n){if("string"!=typeof t||!e[t]||e[t].mutatesSelf&&s)return!0;if(!e[t].callsArgs)return!1;for(const s of e[t].callsArgs)if(i.args[s]&&i.args[s].hasEffectsWhenCalledAtPath(Je,{args:Ye,withNew:!1},n))return!0;return!1}function It(e,t){return"string"==typeof t&&e[t]?null!==e[t].returnsPrimitive?e[t].returnsPrimitive:new e[t].returns:rt}class $t{constructor(e){this.alwaysRendered=!1,this.exportName=null,this.included=!1,this.isId=!1,this.isReassigned=!1,this.renderBaseName=null,this.renderName=null,this.safeExportName=null,this.name=e}addReference(e){}deoptimizePath(e){}getBaseVariableName(){return this.renderBaseName||this.renderName||this.name}getLiteralValueAtPath(e,t,s){return nt}getName(){const e=this.renderName||this.name;return this.renderBaseName?`${this.renderBaseName}${Tt(e)}`:e}getReturnExpressionWhenCalledAtPath(e,t,s){return rt}hasEffectsWhenAccessedAtPath(e,t){return e.length>0}hasEffectsWhenAssignedAtPath(e,t){return!0}hasEffectsWhenCalledAtPath(e,t,s){return!0}include(e){this.included=!0}includeCallArguments(e,t){for(const s of t)s.include(e,!1)}markCalledFromTryStatement(){}setRenderNames(e,t){this.renderBaseName=e,this.renderName=t}setSafeName(e){this.renderName=e}toString(){return this.name}}const Tt=e=>/^(?!\d)[\w$]+$/.test(e)?`.${e}`:`[${JSON.stringify(e)}]`;class Rt extends $t{hasEffectsWhenAccessedAtPath(e){return!function(e){return 1===e.length?"undefined"===e[0]||null!==Xe(e):null!==Xe(e.slice(0,-1))}([this.name,...e])}hasEffectsWhenCalledAtPath(e){return!function(e){const t=Xe(e);return null!==t&&t.pure}([this.name,...e])}}class Lt extends $t{constructor(){super("undefined")}getLiteralValueAtPath(){}}class Mt extends $t{constructor(e,t){super(t),this.module=e,this.isNamespace="*"===t,this.referenced=!1}addReference(e){this.referenced=!0,"default"!==this.name&&"*"!==this.name||this.module.suggestName(e.name)}include(){this.included||(this.included=!0,this.module.used=!0)}}const Dt="break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public".split(" "),Ot="Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl".split(" "),Vt=new Set(Dt.concat(Ot)),Bt=/[^$_a-zA-Z0-9]/g,Ft=e=>/\d/.test(e[0]);function Wt(e){return e=e.replace(/-(\w)/g,(e,t)=>t.toUpperCase()).replace(Bt,"_"),(Ft(e)||Vt.has(e))&&(e=`_${e}`),e||"_"}const Ut=/^(?:\/|(?:[A-Za-z]:)?[\\|/])/,zt=/^\.?\.\//;function jt(e){return Ut.test(e)}function Gt(e){return zt.test(e)}function Ht(e){return e.replace(/\\/g,"/")}function qt(e){return e.split(/(\/|\\)/).pop()}function Kt(e){const t=/(\/|\\)[^/\\]*$/.exec(e);if(!t)return".";const s=e.slice(0,-t[0].length);return s||"/"}function Xt(e){const t=/\.[^.]+$/.exec(qt(e));return t?t[0]:""}function Yt(e,t){const s=e.split(/[/\\]/).filter(Boolean),i=t.split(/[/\\]/).filter(Boolean);for("."===s[0]&&s.shift(),"."===i[0]&&i.shift();s[0]&&i[0]&&s[0]===i[0];)s.shift(),i.shift();for(;".."===i[0]&&s.length>0;)i.shift(),s.pop();for(;s.pop();)i.unshift("..");return i.join("/")}function Qt(...e){let t=e.shift().split(/[/\\]/);return e.forEach(e=>{if(jt(e))t=e.split(/[/\\]/);else{const s=e.split(/[/\\]/);for(;"."===s[0]||".."===s[0];){".."===s.shift()&&t.pop()}t.push.apply(t,s)}}),t.join("/")}class Jt{constructor(e,t,s){this.exportsNames=!1,this.exportsNamespace=!1,this.mostCommonSuggestion=0,this.reexported=!1,this.renderPath=void 0,this.renormalizeRenderPath=!1,this.used=!1,this.graph=e,this.id=t,this.execIndex=1/0,this.moduleSideEffects=s;const i=t.split(/[\\/]/);this.variableName=Wt(i.pop()),this.nameSuggestions=Object.create(null),this.declarations=Object.create(null),this.exportedVariables=new Map}getVariableForExportName(e){"*"===e?this.exportsNamespace=!0:"default"!==e&&(this.exportsNames=!0);let t=this.declarations[e];return t||(this.declarations[e]=t=new Mt(this,e),this.exportedVariables.set(t,e),t)}setRenderPath(e,t){return this.renderPath="",e.paths&&(this.renderPath="function"==typeof e.paths?e.paths(this.id):e.paths[this.id]),this.renderPath||(jt(this.id)?(this.renderPath=Ht(Yt(t,this.id)),this.renormalizeRenderPath=!0):this.renderPath=this.id),this.renderPath}suggestName(e){this.nameSuggestions[e]||(this.nameSuggestions[e]=0),this.nameSuggestions[e]+=1,this.nameSuggestions[e]>this.mostCommonSuggestion&&(this.mostCommonSuggestion=this.nameSuggestions[e],this.variableName=e)}warnUnusedImports(){const e=Object.keys(this.declarations).filter(e=>{if("*"===e)return!1;const t=this.declarations[e];return!t.included&&!this.reexported&&!t.referenced});if(0===e.length)return;const t=1===e.length?`'${e[0]}' is`:`${e.slice(0,-1).map(e=>`'${e}'`).join(", ")} and '${e.slice(-1)}' are`;this.graph.warn({code:"UNUSED_EXTERNAL_IMPORT",message:`${t} imported from external module '${this.id}' but never used`,names:e,source:this.id})}}function Zt(e){e.isExecuted=!0;const t=[e],s=new Set;for(const e of t)for(const i of e.dependencies)i instanceof Jt||i.isExecuted||!i.moduleSideEffects||s.has(i.id)||(i.isExecuted=!0,s.add(i.id),t.push(i))}class es extends $t{constructor(e,t,s,i){super(e),this.additionalInitializers=null,this.calledFromTryStatement=!1,this.expressionsToBeDeoptimized=[],this.declarations=t?[t]:[],this.init=s,this.deoptimizationTracker=i.deoptimizationTracker,this.module=i.module}addDeclaration(e,t){this.declarations.push(e),null===this.additionalInitializers&&(this.additionalInitializers=null===this.init?[]:[this.init],this.init=rt,this.isReassigned=!0),null!==t&&this.additionalInitializers.push(t)}consolidateInitializers(){if(null!==this.additionalInitializers){for(const e of this.additionalInitializers)e.deoptimizePath(Ze);this.additionalInitializers=null}}deoptimizePath(e){if(e.length>7||this.isReassigned)return;const t=this.deoptimizationTracker.getEntities(e);if(!t.has(this))if(t.add(this),0===e.length){if(!this.isReassigned){this.isReassigned=!0;const e=this.expressionsToBeDeoptimized;this.expressionsToBeDeoptimized=[];for(const t of e)t.deoptimizeCache();this.init&&this.init.deoptimizePath(Ze)}}else this.init&&this.init.deoptimizePath(e)}getLiteralValueAtPath(e,t,s){if(this.isReassigned||!this.init||e.length>7)return nt;const i=t.getEntities(e);if(i.has(this.init))return nt;this.expressionsToBeDeoptimized.push(s),i.add(this.init);const n=this.init.getLiteralValueAtPath(e,t,s);return i.delete(this.init),n}getReturnExpressionWhenCalledAtPath(e,t,s){if(this.isReassigned||!this.init||e.length>7)return rt;const i=t.getEntities(e);if(i.has(this.init))return rt;this.expressionsToBeDeoptimized.push(s),i.add(this.init);const n=this.init.getReturnExpressionWhenCalledAtPath(e,t,s);return i.delete(this.init),n}hasEffectsWhenAccessedAtPath(e,t){if(0===e.length)return!1;if(this.isReassigned||e.length>7)return!0;const s=t.accessed.getEntities(e);return!s.has(this)&&(s.add(this),this.init&&this.init.hasEffectsWhenAccessedAtPath(e,t))}hasEffectsWhenAssignedAtPath(e,t){if(this.included||e.length>7)return!0;if(0===e.length)return!1;if(this.isReassigned)return!0;const s=t.assigned.getEntities(e);return!s.has(this)&&(s.add(this),this.init&&this.init.hasEffectsWhenAssignedAtPath(e,t))}hasEffectsWhenCalledAtPath(e,t,s){if(e.length>7||this.isReassigned)return!0;const i=(t.withNew?s.instantiated:s.called).getEntities(e);return!i.has(this)&&(i.add(this),this.init&&this.init.hasEffectsWhenCalledAtPath(e,t,s))}include(e){if(!this.included){this.included=!0,this.module.isExecuted||Zt(this.module);for(const t of this.declarations){t.included||t.include(e,!1);let s=t.parent;for(;!s.included&&(s.included=!0,"Program"!==s.type);)s=s.parent}}}includeCallArguments(e,t){if(this.isReassigned)for(const s of t)s.include(e,!1);else this.init&&this.init.includeCallArguments(e,t)}markCalledFromTryStatement(){this.calledFromTryStatement=!0}}class ts{constructor(){this.children=[],this.variables=new Map}addDeclaration(e,t,s=null,i){const n=e.name;let r=this.variables.get(n);return r?r.addDeclaration(e,s):(r=new es(e.name,e,s||at,t),this.variables.set(n,r)),r}contains(e){return this.variables.has(e)}findVariable(e){throw new Error("Internal Error: findVariable needs to be implemented by a subclass")}}class ss extends ts{constructor(){super(),this.variables.set("undefined",new Lt)}findVariable(e){let t=this.variables.get(e);return t||(t=new Rt(e),this.variables.set(e,t)),t}}for(var is={},ns="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",rs=0;rs<ns.length;rs++)is[ns.charCodeAt(rs)]=rs;function as(e,t,s){4===s?e.push([t[0],t[1],t[2],t[3]]):5===s?e.push([t[0],t[1],t[2],t[3],t[4]]):1===s&&e.push([t[0]])}function os(e){var t="";e=e<0?-e<<1|1:e<<1;do{var s=31&e;(e>>>=5)>0&&(s|=32),t+=ns[s]}while(e>0);return t}var hs=function e(t){this.bits=t instanceof e?t.bits.slice():[]};hs.prototype.add=function(e){this.bits[e>>5]|=1<<(31&e)},hs.prototype.has=function(e){return!!(this.bits[e>>5]&1<<(31&e))};var ls=function(e,t,s){this.start=e,this.end=t,this.original=s,this.intro="",this.outro="",this.content=s,this.storeName=!1,this.edited=!1,Object.defineProperties(this,{previous:{writable:!0,value:null},next:{writable:!0,value:null}})};ls.prototype.appendLeft=function(e){this.outro+=e},ls.prototype.appendRight=function(e){this.intro=this.intro+e},ls.prototype.clone=function(){var e=new ls(this.start,this.end,this.original);return e.intro=this.intro,e.outro=this.outro,e.content=this.content,e.storeName=this.storeName,e.edited=this.edited,e},ls.prototype.contains=function(e){return this.start<e&&e<this.end},ls.prototype.eachNext=function(e){for(var t=this;t;)e(t),t=t.next},ls.prototype.eachPrevious=function(e){for(var t=this;t;)e(t),t=t.previous},ls.prototype.edit=function(e,t,s){return this.content=e,s||(this.intro="",this.outro=""),this.storeName=t,this.edited=!0,this},ls.prototype.prependLeft=function(e){this.outro=e+this.outro},ls.prototype.prependRight=function(e){this.intro=e+this.intro},ls.prototype.split=function(e){var t=e-this.start,s=this.original.slice(0,t),i=this.original.slice(t);this.original=s;var n=new ls(e,this.end,i);return n.outro=this.outro,this.outro="",this.end=e,this.edited?(n.edit("",!1),this.content=""):this.content=s,n.next=this.next,n.next&&(n.next.previous=n),n.previous=this,this.next=n,n},ls.prototype.toString=function(){return this.intro+this.content+this.outro},ls.prototype.trimEnd=function(e){if(this.outro=this.outro.replace(e,""),this.outro.length)return!0;var t=this.content.replace(e,"");return t.length?(t!==this.content&&this.split(this.start+t.length).edit("",void 0,!0),!0):(this.edit("",void 0,!0),this.intro=this.intro.replace(e,""),!!this.intro.length||void 0)},ls.prototype.trimStart=function(e){if(this.intro=this.intro.replace(e,""),this.intro.length)return!0;var t=this.content.replace(e,"");return t.length?(t!==this.content&&(this.split(this.end-t.length),this.edit("",void 0,!0)),!0):(this.edit("",void 0,!0),this.outro=this.outro.replace(e,""),!!this.outro.length||void 0)};var cs=function(){throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")};"undefined"!=typeof window&&"function"==typeof window.btoa?cs=function(e){return window.btoa(unescape(encodeURIComponent(e)))}:"function"==typeof Buffer&&(cs=function(e){return Buffer.from(e,"utf-8").toString("base64")});var us=function(e){this.version=3,this.file=e.file,this.sources=e.sources,this.sourcesContent=e.sourcesContent,this.names=e.names,this.mappings=function(e){for(var t=0,s=0,i=0,n=0,r="",a=0;a<e.length;a++){var o=e[a];if(a>0&&(r+=";"),0!==o.length){for(var h=0,l=[],c=0,u=o;c<u.length;c++){var d=u[c],p=os(d[0]-h);h=d[0],d.length>1&&(p+=os(d[1]-t)+os(d[2]-s)+os(d[3]-i),t=d[1],s=d[2],i=d[3]),5===d.length&&(p+=os(d[4]-n),n=d[4]),l.push(p)}r+=l.join(",")}}return r}(e.mappings)};function ds(e){var t=e.split("\n"),s=t.filter((function(e){return/^\t+/.test(e)})),i=t.filter((function(e){return/^ {2,}/.test(e)}));if(0===s.length&&0===i.length)return null;if(s.length>=i.length)return"\t";var n=i.reduce((function(e,t){var s=/^ +/.exec(t)[0].length;return Math.min(s,e)}),1/0);return new Array(n+1).join(" ")}function ps(e,t){var s=e.split(/[/\\]/),i=t.split(/[/\\]/);for(s.pop();s[0]===i[0];)s.shift(),i.shift();if(s.length)for(var n=s.length;n--;)s[n]="..";return s.concat(i).join("/")}us.prototype.toString=function(){return JSON.stringify(this)},us.prototype.toUrl=function(){return"data:application/json;charset=utf-8;base64,"+cs(this.toString())};var fs=Object.prototype.toString;function ms(e){return"[object Object]"===fs.call(e)}function gs(e){for(var t=e.split("\n"),s=[],i=0,n=0;i<t.length;i++)s.push(n),n+=t[i].length+1;return function(e){for(var t=0,i=s.length;t<i;){var n=t+i>>1;e<s[n]?i=n:t=n+1}var r=t-1;return{line:r,column:e-s[r]}}}var xs=function(e){this.hires=e,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null};xs.prototype.addEdit=function(e,t,s,i){if(t.length){var n=[this.generatedCodeColumn,e,s.line,s.column];i>=0&&n.push(i),this.rawSegments.push(n)}else this.pending&&this.rawSegments.push(this.pending);this.advance(t),this.pending=null},xs.prototype.addUneditedChunk=function(e,t,s,i,n){for(var r=t.start,a=!0;r<t.end;)(this.hires||a||n.has(r))&&this.rawSegments.push([this.generatedCodeColumn,e,i.line,i.column]),"\n"===s[r]?(i.line+=1,i.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,a=!0):(i.column+=1,this.generatedCodeColumn+=1,a=!1),r+=1;this.pending=null},xs.prototype.advance=function(e){if(e){var t=e.split("\n");if(t.length>1){for(var s=0;s<t.length-1;s++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=t[t.length-1].length}};var ys="\n",Es={insertLeft:!1,insertRight:!1,storeName:!1},bs=function(e,t){void 0===t&&(t={});var s=new ls(0,e.length,e);Object.defineProperties(this,{original:{writable:!0,value:e},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:s},lastChunk:{writable:!0,value:s},lastSearchedChunk:{writable:!0,value:s},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:t.filename},indentExclusionRanges:{writable:!0,value:t.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new hs},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:ds(e)}}),this.byStart[0]=s,this.byEnd[e.length]=s};bs.prototype.addSourcemapLocation=function(e){this.sourcemapLocations.add(e)},bs.prototype.append=function(e){if("string"!=typeof e)throw new TypeError("outro content must be a string");return this.outro+=e,this},bs.prototype.appendLeft=function(e,t){if("string"!=typeof t)throw new TypeError("inserted content must be a string");this._split(e);var s=this.byEnd[e];return s?s.appendLeft(t):this.intro+=t,this},bs.prototype.appendRight=function(e,t){if("string"!=typeof t)throw new TypeError("inserted content must be a string");this._split(e);var s=this.byStart[e];return s?s.appendRight(t):this.outro+=t,this},bs.prototype.clone=function(){for(var e=new bs(this.original,{filename:this.filename}),t=this.firstChunk,s=e.firstChunk=e.lastSearchedChunk=t.clone();t;){e.byStart[s.start]=s,e.byEnd[s.end]=s;var i=t.next,n=i&&i.clone();n&&(s.next=n,n.previous=s,s=n),t=i}return e.lastChunk=s,this.indentExclusionRanges&&(e.indentExclusionRanges=this.indentExclusionRanges.slice()),e.sourcemapLocations=new hs(this.sourcemapLocations),e.intro=this.intro,e.outro=this.outro,e},bs.prototype.generateDecodedMap=function(e){var t=this;e=e||{};var s=Object.keys(this.storedNames),i=new xs(e.hires),n=gs(this.original);return this.intro&&i.advance(this.intro),this.firstChunk.eachNext((function(e){var r=n(e.start);e.intro.length&&i.advance(e.intro),e.edited?i.addEdit(0,e.content,r,e.storeName?s.indexOf(e.original):-1):i.addUneditedChunk(0,e,t.original,r,t.sourcemapLocations),e.outro.length&&i.advance(e.outro)})),{file:e.file?e.file.split(/[/\\]/).pop():null,sources:[e.source?ps(e.file||"",e.source):null],sourcesContent:e.includeContent?[this.original]:[null],names:s,mappings:i.raw}},bs.prototype.generateMap=function(e){return new us(this.generateDecodedMap(e))},bs.prototype.getIndentString=function(){return null===this.indentStr?"\t":this.indentStr},bs.prototype.indent=function(e,t){var s=/^[^\r\n]/gm;if(ms(e)&&(t=e,e=void 0),""===(e=void 0!==e?e:this.indentStr||"\t"))return this;var i={};(t=t||{}).exclude&&("number"==typeof t.exclude[0]?[t.exclude]:t.exclude).forEach((function(e){for(var t=e[0];t<e[1];t+=1)i[t]=!0}));var n=!1!==t.indentStart,r=function(t){return n?""+e+t:(n=!0,t)};this.intro=this.intro.replace(s,r);for(var a=0,o=this.firstChunk;o;){var h=o.end;if(o.edited)i[a]||(o.content=o.content.replace(s,r),o.content.length&&(n="\n"===o.content[o.content.length-1]));else for(a=o.start;a<h;){if(!i[a]){var l=this.original[a];"\n"===l?n=!0:"\r"!==l&&n&&(n=!1,a===o.start?o.prependRight(e):(this._splitChunk(o,a),(o=o.next).prependRight(e)))}a+=1}a=o.end,o=o.next}return this.outro=this.outro.replace(s,r),this},bs.prototype.insert=function(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")},bs.prototype.insertLeft=function(e,t){return Es.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),Es.insertLeft=!0),this.appendLeft(e,t)},bs.prototype.insertRight=function(e,t){return Es.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),Es.insertRight=!0),this.prependRight(e,t)},bs.prototype.move=function(e,t,s){if(s>=e&&s<=t)throw new Error("Cannot move a selection inside itself");this._split(e),this._split(t),this._split(s);var i=this.byStart[e],n=this.byEnd[t],r=i.previous,a=n.next,o=this.byStart[s];if(!o&&n===this.lastChunk)return this;var h=o?o.previous:this.lastChunk;return r&&(r.next=a),a&&(a.previous=r),h&&(h.next=i),o&&(o.previous=n),i.previous||(this.firstChunk=n.next),n.next||(this.lastChunk=i.previous,this.lastChunk.next=null),i.previous=h,n.next=o||null,h||(this.firstChunk=i),o||(this.lastChunk=n),this},bs.prototype.overwrite=function(e,t,s,i){if("string"!=typeof s)throw new TypeError("replacement content must be a string");for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length;if(t>this.original.length)throw new Error("end is out of bounds");if(e===t)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(e),this._split(t),!0===i&&(Es.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),Es.storeName=!0),i={storeName:!0});var n=void 0!==i&&i.storeName,r=void 0!==i&&i.contentOnly;if(n){var a=this.original.slice(e,t);this.storedNames[a]=!0}var o=this.byStart[e],h=this.byEnd[t];if(o){if(t>o.end&&o.next!==this.byStart[o.end])throw new Error("Cannot overwrite across a split point");if(o.edit(s,n,r),o!==h){for(var l=o.next;l!==h;)l.edit("",!1),l=l.next;l.edit("",!1)}}else{var c=new ls(e,t,"").edit(s,n);h.next=c,c.previous=h}return this},bs.prototype.prepend=function(e){if("string"!=typeof e)throw new TypeError("outro content must be a string");return this.intro=e+this.intro,this},bs.prototype.prependLeft=function(e,t){if("string"!=typeof t)throw new TypeError("inserted content must be a string");this._split(e);var s=this.byEnd[e];return s?s.prependLeft(t):this.intro=t+this.intro,this},bs.prototype.prependRight=function(e,t){if("string"!=typeof t)throw new TypeError("inserted content must be a string");this._split(e);var s=this.byStart[e];return s?s.prependRight(t):this.outro=t+this.outro,this},bs.prototype.remove=function(e,t){for(;e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length;if(e===t)return this;if(e<0||t>this.original.length)throw new Error("Character is out of bounds");if(e>t)throw new Error("end must be greater than start");this._split(e),this._split(t);for(var s=this.byStart[e];s;)s.intro="",s.outro="",s.edit(""),s=t>s.end?this.byStart[s.end]:null;return this},bs.prototype.lastChar=function(){if(this.outro.length)return this.outro[this.outro.length-1];var e=this.lastChunk;do{if(e.outro.length)return e.outro[e.outro.length-1];if(e.content.length)return e.content[e.content.length-1];if(e.intro.length)return e.intro[e.intro.length-1]}while(e=e.previous);return this.intro.length?this.intro[this.intro.length-1]:""},bs.prototype.lastLine=function(){var e=this.outro.lastIndexOf(ys);if(-1!==e)return this.outro.substr(e+1);var t=this.outro,s=this.lastChunk;do{if(s.outro.length>0){if(-1!==(e=s.outro.lastIndexOf(ys)))return s.outro.substr(e+1)+t;t=s.outro+t}if(s.content.length>0){if(-1!==(e=s.content.lastIndexOf(ys)))return s.content.substr(e+1)+t;t=s.content+t}if(s.intro.length>0){if(-1!==(e=s.intro.lastIndexOf(ys)))return s.intro.substr(e+1)+t;t=s.intro+t}}while(s=s.previous);return-1!==(e=this.intro.lastIndexOf(ys))?this.intro.substr(e+1)+t:this.intro+t},bs.prototype.slice=function(e,t){for(void 0===e&&(e=0),void 0===t&&(t=this.original.length);e<0;)e+=this.original.length;for(;t<0;)t+=this.original.length;for(var s="",i=this.firstChunk;i&&(i.start>e||i.end<=e);){if(i.start<t&&i.end>=t)return s;i=i.next}if(i&&i.edited&&i.start!==e)throw new Error("Cannot use replaced character "+e+" as slice start anchor.");for(var n=i;i;){!i.intro||n===i&&i.start!==e||(s+=i.intro);var r=i.start<t&&i.end>=t;if(r&&i.edited&&i.end!==t)throw new Error("Cannot use replaced character "+t+" as slice end anchor.");var a=n===i?e-i.start:0,o=r?i.content.length+t-i.end:i.content.length;if(s+=i.content.slice(a,o),!i.outro||r&&i.end!==t||(s+=i.outro),r)break;i=i.next}return s},bs.prototype.snip=function(e,t){var s=this.clone();return s.remove(0,e),s.remove(t,s.original.length),s},bs.prototype._split=function(e){if(!this.byStart[e]&&!this.byEnd[e])for(var t=this.lastSearchedChunk,s=e>t.end;t;){if(t.contains(e))return this._splitChunk(t,e);t=s?this.byStart[t.end]:this.byEnd[t.start]}},bs.prototype._splitChunk=function(e,t){if(e.edited&&e.content.length){var s=gs(this.original)(t);throw new Error("Cannot split a chunk that has already been edited ("+s.line+":"+s.column+' – "'+e.original+'")')}var i=e.split(t);return this.byEnd[t]=e,this.byStart[t]=i,this.byEnd[i.end]=i,e===this.lastChunk&&(this.lastChunk=i),this.lastSearchedChunk=e,!0},bs.prototype.toString=function(){for(var e=this.intro,t=this.firstChunk;t;)e+=t.toString(),t=t.next;return e+this.outro},bs.prototype.isEmpty=function(){var e=this.firstChunk;do{if(e.intro.length&&e.intro.trim()||e.content.length&&e.content.trim()||e.outro.length&&e.outro.trim())return!1}while(e=e.next);return!0},bs.prototype.length=function(){var e=this.firstChunk,t=0;do{t+=e.intro.length+e.content.length+e.outro.length}while(e=e.next);return t},bs.prototype.trimLines=function(){return this.trim("[\\r\\n]")},bs.prototype.trim=function(e){return this.trimStart(e).trimEnd(e)},bs.prototype.trimEndAborted=function(e){var t=new RegExp((e||"\\s")+"+$");if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;var s=this.lastChunk;do{var i=s.end,n=s.trimEnd(t);if(s.end!==i&&(this.lastChunk===s&&(this.lastChunk=s.next),this.byEnd[s.end]=s,this.byStart[s.next.start]=s.next,this.byEnd[s.next.end]=s.next),n)return!0;s=s.previous}while(s);return!1},bs.prototype.trimEnd=function(e){return this.trimEndAborted(e),this},bs.prototype.trimStartAborted=function(e){var t=new RegExp("^"+(e||"\\s")+"+");if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;var s=this.firstChunk;do{var i=s.end,n=s.trimStart(t);if(s.end!==i&&(s===this.lastChunk&&(this.lastChunk=s.next),this.byEnd[s.end]=s,this.byStart[s.next.start]=s.next,this.byEnd[s.next.end]=s.next),n)return!0;s=s.next}while(s);return!1},bs.prototype.trimStart=function(e){return this.trimStartAborted(e),this};var vs=Object.prototype.hasOwnProperty,Ss=function(e){void 0===e&&(e={}),this.intro=e.intro||"",this.separator=void 0!==e.separator?e.separator:"\n",this.sources=[],this.uniqueSources=[],this.uniqueSourceIndexByFilename={}};function As(e,t){const s=e.split(/[/\\]/).filter(Boolean),i=t.split(/[/\\]/).filter(Boolean);for("."===s[0]&&s.shift(),"."===i[0]&&i.shift();s[0]&&i[0]&&s[0]===i[0];)s.shift(),i.shift();for(;".."===i[0]&&s.length>0;)i.shift(),s.pop();for(;s.pop();)i.unshift("..");return i.join("/")}Ss.prototype.addSource=function(e){if(e instanceof bs)return this.addSource({content:e,filename:e.filename,separator:this.separator});if(!ms(e)||!e.content)throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`");if(["filename","indentExclusionRanges","separator"].forEach((function(t){vs.call(e,t)||(e[t]=e.content[t])})),void 0===e.separator&&(e.separator=this.separator),e.filename)if(vs.call(this.uniqueSourceIndexByFilename,e.filename)){var t=this.uniqueSources[this.uniqueSourceIndexByFilename[e.filename]];if(e.content.original!==t.content)throw new Error("Illegal source: same filename ("+e.filename+"), different contents")}else this.uniqueSourceIndexByFilename[e.filename]=this.uniqueSources.length,this.uniqueSources.push({filename:e.filename,content:e.content.original});return this.sources.push(e),this},Ss.prototype.append=function(e,t){return this.addSource({content:new bs(e),separator:t&&t.separator||""}),this},Ss.prototype.clone=function(){var e=new Ss({intro:this.intro,separator:this.separator});return this.sources.forEach((function(t){e.addSource({filename:t.filename,content:t.content.clone(),separator:t.separator})})),e},Ss.prototype.generateDecodedMap=function(e){var t=this;void 0===e&&(e={});var s=[];this.sources.forEach((function(e){Object.keys(e.content.storedNames).forEach((function(e){~s.indexOf(e)||s.push(e)}))}));var i=new xs(e.hires);return this.intro&&i.advance(this.intro),this.sources.forEach((function(e,n){n>0&&i.advance(t.separator);var r=e.filename?t.uniqueSourceIndexByFilename[e.filename]:-1,a=e.content,o=gs(a.original);a.intro&&i.advance(a.intro),a.firstChunk.eachNext((function(t){var n=o(t.start);t.intro.length&&i.advance(t.intro),e.filename?t.edited?i.addEdit(r,t.content,n,t.storeName?s.indexOf(t.original):-1):i.addUneditedChunk(r,t,a.original,n,a.sourcemapLocations):i.advance(t.content),t.outro.length&&i.advance(t.outro)})),a.outro&&i.advance(a.outro)})),{file:e.file?e.file.split(/[/\\]/).pop():null,sources:this.uniqueSources.map((function(t){return e.file?ps(e.file,t.filename):t.filename})),sourcesContent:this.uniqueSources.map((function(t){return e.includeContent?t.content:null})),names:s,mappings:i.raw}},Ss.prototype.generateMap=function(e){return new us(this.generateDecodedMap(e))},Ss.prototype.getIndentString=function(){var e={};return this.sources.forEach((function(t){var s=t.content.indentStr;null!==s&&(e[s]||(e[s]=0),e[s]+=1)})),Object.keys(e).sort((function(t,s){return e[t]-e[s]}))[0]||"\t"},Ss.prototype.indent=function(e){var t=this;if(arguments.length||(e=this.getIndentString()),""===e)return this;var s=!this.intro||"\n"===this.intro.slice(-1);return this.sources.forEach((function(i,n){var r=void 0!==i.separator?i.separator:t.separator,a=s||n>0&&/\r?\n$/.test(r);i.content.indent(e,{exclude:i.indentExclusionRanges,indentStart:a}),s="\n"===i.content.lastChar()})),this.intro&&(this.intro=e+this.intro.replace(/^[^\n]/gm,(function(t,s){return s>0?e+t:t}))),this},Ss.prototype.prepend=function(e){return this.intro=e+this.intro,this},Ss.prototype.toString=function(){var e=this,t=this.sources.map((function(t,s){var i=void 0!==t.separator?t.separator:e.separator;return(s>0?i:"")+t.content.toString()})).join("");return this.intro+t},Ss.prototype.isEmpty=function(){return(!this.intro.length||!this.intro.trim())&&!this.sources.some((function(e){return!e.content.isEmpty()}))},Ss.prototype.length=function(){return this.sources.reduce((function(e,t){return e+t.content.length()}),this.intro.length)},Ss.prototype.trimLines=function(){return this.trim("[\\r\\n]")},Ss.prototype.trim=function(e){return this.trimStart(e).trimEnd(e)},Ss.prototype.trimStart=function(e){var t=new RegExp("^"+(e||"\\s")+"+");if(this.intro=this.intro.replace(t,""),!this.intro){var s,i=0;do{if(!(s=this.sources[i++]))break}while(!s.content.trimStartAborted(e))}return this},Ss.prototype.trimEnd=function(e){var t,s=new RegExp((e||"\\s")+"+$"),i=this.sources.length-1;do{if(!(t=this.sources[i--])){this.intro=this.intro.replace(s,"");break}}while(!t.content.trimEndAborted(e));return this};function Cs(){return{brokenFlow:0,includedLabels:new Set}}function Ps(){return{accessed:new tt,assigned:new tt,brokenFlow:0,called:new tt,ignore:{breaks:!1,continues:!1,labels:new Set,returnAwaitYield:!1},includedLabels:new Set,instantiated:new tt,replacedVariableInits:new Map}}function ks(e,t,s,i){if(t.remove(s,i),e.annotations)for(const i of e.annotations){if(!(i.start<s))return;t.remove(i.start,i.end)}}function ws(e,t){if(e.annotations||"ExpressionStatement"!==e.parent.type||(e=e.parent),e.annotations)for(const s of e.annotations)t.remove(s.start,s.end)}const Ns={isNoStatement:!0};function _s(e,t,s=0){let i,n;for(i=e.indexOf(t,s);;){if(-1===(s=e.indexOf("/",s))||s>=i)return i;n=e.charCodeAt(++s),++s,(s=47===n?e.indexOf("\n",s)+1:e.indexOf("*/",s)+2)>i&&(i=e.indexOf(t,s))}}function Is(e){let t,s,i=0;for(t=e.indexOf("\n",i);;){if(i=e.indexOf("/",i),-1===i||i>t)return t;if(s=e.charCodeAt(++i),47===s)return t;i=e.indexOf("*/",i+2)+2,i>t&&(t=e.indexOf("\n",i))}}function $s(e,t,s,i,n){let r,a,o,h,l=e[0],c=!l.included||l.needsBoundaries;c&&(h=s+Is(t.original.slice(s,l.start))+1);for(let s=1;s<=e.length;s++)r=l,a=h,o=c,l=e[s],c=void 0!==l&&(!l.included||l.needsBoundaries),o||c?(h=r.end+Is(t.original.slice(r.end,void 0===l?i:l.start))+1,r.included?o?r.render(t,n,{end:h,start:a}):r.render(t,n):ks(r,t,a,h)):r.render(t,n)}function Ts(e,t,s,i){const n=[];let r,a,o,h,l,c=s-1;for(let i=0;i<e.length;i++){for(a=e[i],void 0!==r&&(c=r.end+_s(t.original.slice(r.end,a.start),",")),o=h=c+2+Is(t.original.slice(c+1,a.start));l=t.original.charCodeAt(o),32===l||9===l||10===l||13===l;)o++;void 0!==r&&n.push({contentEnd:h,end:o,node:r,separator:c,start:s}),r=a,s=o}return n.push({contentEnd:i,end:i,node:r,separator:null,start:s}),n}function Rs(e,t,s){for(;;){const i=Is(e.original.slice(t,s));if(-1===i)break;t=t+i+1,e.remove(t-1,t)}}function Ls(e){let t="";do{const s=e%64;e=Math.floor(e/64),t="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$"[s]+t}while(0!==e);return t}const Ms=Object.assign(Object.create(null),{await:!0,break:!0,case:!0,catch:!0,class:!0,const:!0,continue:!0,debugger:!0,default:!0,delete:!0,do:!0,else:!0,enum:!0,eval:!0,export:!0,extends:!0,false:!0,finally:!0,for:!0,function:!0,if:!0,implements:!0,import:!0,in:!0,instanceof:!0,interface:!0,let:!0,new:!0,null:!0,package:!0,private:!0,protected:!0,public:!0,return:!0,static:!0,super:!0,switch:!0,this:!0,throw:!0,true:!0,try:!0,typeof:!0,undefined:!0,var:!0,void:!0,while:!0,with:!0,yield:!0});function Ds(e,t){let s=e,i=1;for(;t.has(s)||Ms[s];)s=`${e}$${Ls(i++)}`;return t.add(s),s}class Os extends ts{constructor(e){super(),this.accessedOutsideVariables=new Map,this.parent=e,e.children.push(this)}addAccessedDynamicImport(e){(this.accessedDynamicImports||(this.accessedDynamicImports=new Set)).add(e),this.parent instanceof Os&&this.parent.addAccessedDynamicImport(e)}addAccessedGlobalsByFormat(e){const t=this.accessedGlobalVariablesByFormat||(this.accessedGlobalVariablesByFormat=new Map);for(const s of Object.keys(e)){let i=t.get(s);i||(i=new Set,t.set(s,i));for(const t of e[s])i.add(t)}this.parent instanceof Os&&this.parent.addAccessedGlobalsByFormat(e)}addNamespaceMemberAccess(e,t){this.accessedOutsideVariables.set(e,t),this.parent.addNamespaceMemberAccess(e,t)}addReturnExpression(e){this.parent instanceof Os&&this.parent.addReturnExpression(e)}addUsedOutsideNames(e,t){for(const s of this.accessedOutsideVariables.values())s.included&&(e.add(s.getBaseVariableName()),s.exportName&&"system"===t&&e.add("exports"));const s=this.accessedGlobalVariablesByFormat&&this.accessedGlobalVariablesByFormat.get(t);if(s)for(const t of s)e.add(t)}contains(e){return this.variables.has(e)||this.parent.contains(e)}deconflict(e){const t=new Set;if(this.addUsedOutsideNames(t,e),this.accessedDynamicImports)for(const e of this.accessedDynamicImports)e.inlineNamespace&&t.add(e.inlineNamespace.getBaseVariableName());for(const[e,s]of this.variables)(s.included||s.alwaysRendered)&&s.setSafeName(Ds(e,t));for(const t of this.children)t.deconflict(e)}findLexicalBoundary(){return this.parent.findLexicalBoundary()}findVariable(e){const t=this.variables.get(e)||this.accessedOutsideVariables.get(e);if(t)return t;const s=this.parent.findVariable(e);return this.accessedOutsideVariables.set(e,s),s}}function Vs(e,t,s){if("number"==typeof s)throw new Error("locate takes a { startIndex, offsetLine, offsetColumn } object as the third argument");return function(e,t){void 0===t&&(t={});var s=t.offsetLine||0,i=t.offsetColumn||0,n=e.split("\n"),r=0,a=n.map((function(e,t){var s=r+e.length+1,i={start:r,end:s,line:t};return r=s,i})),o=0;function h(e,t){return e.start<=t&&t<e.end}function l(e,t){return{line:s+e.line,column:i+t-e.start,character:t}}return function(t,s){"string"==typeof t&&(t=e.indexOf(t,s||0));for(var i=a[o],n=t>=i.end?1:-1;i;){if(h(i,t))return l(i,t);i=a[o+=n]}}}(e,s)(t,s&&s.startIndex)}const Bs={Literal:[],Program:["body"]};class Fs{constructor(e,t,s){this.included=!1,this.keys=Bs[e.type]||function(e){return Bs[e.type]=Object.keys(e).filter(t=>"object"==typeof e[t]),Bs[e.type]}(e),this.parent=t,this.context=t.context,this.createScope(s),this.parseNode(e),this.initialise(),this.context.magicString.addSourcemapLocation(this.start),this.context.magicString.addSourcemapLocation(this.end)}bind(){for(const e of this.keys){const t=this[e];if(null!==t&&"annotations"!==e)if(Array.isArray(t))for(const e of t)null!==e&&e.bind();else t.bind()}}createScope(e){this.scope=e}declare(e,t){return[]}deoptimizePath(e){}getLiteralValueAtPath(e,t,s){return nt}getReturnExpressionWhenCalledAtPath(e,t,s){return rt}hasEffects(e){for(const t of this.keys){const s=this[t];if(null!==s&&"annotations"!==t)if(Array.isArray(s)){for(const t of s)if(null!==t&&t.hasEffects(e))return!0}else if(s.hasEffects(e))return!0}return!1}hasEffectsWhenAccessedAtPath(e,t){return e.length>0}hasEffectsWhenAssignedAtPath(e,t){return!0}hasEffectsWhenCalledAtPath(e,t,s){return!0}include(e,t){this.included=!0;for(const s of this.keys){const i=this[s];if(null!==i&&"annotations"!==s)if(Array.isArray(i))for(const s of i)null!==s&&s.include(e,t);else i.include(e,t)}}includeCallArguments(e,t){for(const s of t)s.include(e,!1)}includeWithAllDeclaredVariables(e,t){this.include(t,e)}initialise(){}insertSemicolon(e){";"!==e.original[this.end-1]&&e.appendLeft(this.end,";")}locate(){const e=Vs(this.context.code,this.start,{offsetLine:1});return e.file=this.context.fileName,e.toString=()=>JSON.stringify(e),e}parseNode(e){for(const t of Object.keys(e)){if(this.hasOwnProperty(t))continue;const s=e[t];if("object"!=typeof s||null===s||"annotations"===t)this[t]=s;else if(Array.isArray(s)){this[t]=[];for(const e of s)this[t].push(null===e?null:new(this.context.nodeConstructors[e.type]||this.context.nodeConstructors.UnknownNode)(e,this,this.scope))}else this[t]=new(this.context.nodeConstructors[s.type]||this.context.nodeConstructors.UnknownNode)(s,this,this.scope)}}render(e,t){for(const s of this.keys){const i=this[s];if(null!==i&&"annotations"!==s)if(Array.isArray(i))for(const s of i)null!==s&&s.render(e,t);else i.render(e,t)}}shouldBeIncluded(e){return this.included||!e.brokenFlow&&this.hasEffects(Ps())}toString(){return this.context.code.slice(this.start,this.end)}}class Ws extends Fs{createScope(e){this.scope=new Os(e)}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){return!t.withNew||(this.body.hasEffectsWhenCalledAtPath(e,t,s)||null!==this.superClass&&this.superClass.hasEffectsWhenCalledAtPath(e,t,s))}initialise(){null!==this.id&&this.id.declare("class",this)}}class Us extends Ws{initialise(){super.initialise(),null!==this.id&&(this.id.variable.isId=!0)}parseNode(e){null!==e.id&&(this.id=new this.context.nodeConstructors.Identifier(e.id,this,this.scope.parent)),super.parseNode(e)}render(e,t){"system"===t.format&&this.id&&this.id.variable.exportName&&e.appendLeft(this.end,` exports('${this.id.variable.exportName}', ${this.id.variable.getName()});`),super.render(e,t)}}class zs extends es{constructor(e){super("arguments",null,rt,e)}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(){return!0}hasEffectsWhenCalledAtPath(){return!0}}class js extends es{constructor(e){super("this",null,null,e)}getLiteralValueAtPath(){return nt}hasEffectsWhenAccessedAtPath(e,t){return this.getInit(t).hasEffectsWhenAccessedAtPath(e,t)||super.hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){return this.getInit(t).hasEffectsWhenAssignedAtPath(e,t)||super.hasEffectsWhenAssignedAtPath(e,t)}hasEffectsWhenCalledAtPath(e,t,s){return this.getInit(s).hasEffectsWhenCalledAtPath(e,t,s)||super.hasEffectsWhenCalledAtPath(e,t,s)}getInit(e){return e.replacedVariableInits.get(this)||rt}}class Gs extends Os{constructor(e,t){super(e),this.parameters=[],this.hasRest=!1,this.context=t,this.hoistedBodyVarScope=new Os(this)}addParameterDeclaration(e){const t=e.name;let s=this.hoistedBodyVarScope.variables.get(t);return s?s.addDeclaration(e,null):s=new es(t,e,rt,this.context),this.variables.set(t,s),s}addParameterVariables(e,t){this.parameters=e;for(const t of e)for(const e of t)e.alwaysRendered=!0;this.hasRest=t}includeCallArguments(e,t){let s=!1,i=!1;const n=this.hasRest&&this.parameters[this.parameters.length-1];for(let r=t.length-1;r>=0;r--){const a=this.parameters[r]||n,o=t[r];if(a){s=!1;for(const e of a)e.included&&(i=!0),e.calledFromTryStatement&&(s=!0)}!i&&o.shouldBeIncluded(e)&&(i=!0),i&&o.include(e,s)}}}class Hs extends Gs{constructor(){super(...arguments),this.returnExpression=null,this.returnExpressions=[]}addReturnExpression(e){this.returnExpressions.push(e)}getReturnExpression(){return null===this.returnExpression&&this.updateReturnExpression(),this.returnExpression}updateReturnExpression(){if(1===this.returnExpressions.length)this.returnExpression=this.returnExpressions[0];else{this.returnExpression=rt;for(const e of this.returnExpressions)e.deoptimizePath(Ze)}}}class qs extends Hs{constructor(e,t){super(e,t),this.variables.set("arguments",this.argumentsVariable=new zs(t)),this.variables.set("this",this.thisVariable=new js(t))}findLexicalBoundary(){return this}includeCallArguments(e,t){if(super.includeCallArguments(e,t),this.argumentsVariable.included)for(const s of t)s.included||s.include(e,!1)}}const Ks=Object.create(null);class Xs extends Fs{constructor(){super(...arguments),this.variable=null,this.bound=!1}addExportedVariables(e){null!==this.variable&&this.variable.exportName&&e.push(this.variable)}bind(){this.bound||(this.bound=!0,null===this.variable&&function e(t,s){if("MemberExpression"===t.type)return!t.computed&&e(t.object,t);if("Identifier"===t.type){if(!s)return!0;switch(s.type){case"MemberExpression":return s.computed||t===s.object;case"MethodDefinition":return s.computed;case"Property":return s.computed||t===s.value;case"ExportSpecifier":case"ImportSpecifier":return t===s.local;case"LabeledStatement":case"BreakStatement":case"ContinueStatement":return!1;default:return!0}}return!1}(this,this.parent)&&(this.variable=this.scope.findVariable(this.name),this.variable.addReference(this)),null!==this.variable&&this.variable instanceof es&&null!==this.variable.additionalInitializers&&this.variable.consolidateInitializers())}declare(e,t){let s;switch(e){case"var":s=this.scope.addDeclaration(this,this.context,t,!0);break;case"function":s=this.scope.addDeclaration(this,this.context,t,"function");break;case"let":case"const":case"class":s=this.scope.addDeclaration(this,this.context,t,!1);break;case"parameter":s=this.scope.addParameterDeclaration(this);break;default:throw new Error(`Internal Error: Unexpected identifier kind ${e}.`)}return[this.variable=s]}deoptimizePath(e){this.bound||this.bind(),0!==e.length||this.scope.contains(this.name)||this.disallowImportReassignment(),this.variable.deoptimizePath(e)}getLiteralValueAtPath(e,t,s){return this.bound||this.bind(),this.variable.getLiteralValueAtPath(e,t,s)}getReturnExpressionWhenCalledAtPath(e,t,s){return this.bound||this.bind(),this.variable.getReturnExpressionWhenCalledAtPath(e,t,s)}hasEffects(){return this.context.unknownGlobalSideEffects&&this.variable instanceof Rt&&this.variable.hasEffectsWhenAccessedAtPath(Je)}hasEffectsWhenAccessedAtPath(e,t){return null!==this.variable&&this.variable.hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){return!this.variable||this.variable.hasEffectsWhenAssignedAtPath(e,t)}hasEffectsWhenCalledAtPath(e,t,s){return!this.variable||this.variable.hasEffectsWhenCalledAtPath(e,t,s)}include(e){this.included||(this.included=!0,null!==this.variable&&this.context.includeVariable(e,this.variable))}includeCallArguments(e,t){this.variable.includeCallArguments(e,t)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i,isShorthandProperty:n}=Ks){if(this.variable){const t=this.variable.getName();t!==this.name&&(e.overwrite(this.start,this.end,t,{contentOnly:!0,storeName:!0}),n&&e.prependRight(this.start,`${this.name}: `)),"eval"===t&&"CallExpression"===s&&i&&e.appendRight(this.start,"0, ")}}disallowImportReassignment(){return this.context.error({code:"ILLEGAL_REASSIGNMENT",message:`Illegal reassignment to import '${this.name}'`},this.start)}}class Ys extends Fs{constructor(){super(...arguments),this.declarationInit=null}addExportedVariables(e){this.argument.addExportedVariables(e)}bind(){super.bind(),null!==this.declarationInit&&this.declarationInit.deoptimizePath([Qe,Qe])}declare(e,t){return this.declarationInit=t,this.argument.declare(e,rt)}deoptimizePath(e){0===e.length&&this.argument.deoptimizePath(Je)}hasEffectsWhenAssignedAtPath(e,t){return e.length>0||this.argument.hasEffectsWhenAssignedAtPath(Je,t)}}class Qs extends Fs{constructor(){super(...arguments),this.isPrototypeDeoptimized=!1}createScope(e){this.scope=new qs(e,this.context)}deoptimizePath(e){1===e.length&&("prototype"===e[0]?this.isPrototypeDeoptimized=!0:e[0]===Qe&&(this.isPrototypeDeoptimized=!0,this.scope.getReturnExpression().deoptimizePath(Ze)))}getReturnExpressionWhenCalledAtPath(e){return 0===e.length?this.scope.getReturnExpression():rt}hasEffects(){return null!==this.id&&this.id.hasEffects()}hasEffectsWhenAccessedAtPath(e){return!(e.length<=1)&&(e.length>2||"prototype"!==e[0]||this.isPrototypeDeoptimized)}hasEffectsWhenAssignedAtPath(e){return!(e.length<=1)&&(e.length>2||"prototype"!==e[0]||this.isPrototypeDeoptimized)}hasEffectsWhenCalledAtPath(e,t,s){if(e.length>0)return!0;for(const e of this.params)if(e.hasEffects(s))return!0;const i=s.replacedVariableInits.get(this.scope.thisVariable);s.replacedVariableInits.set(this.scope.thisVariable,t.withNew?new At:rt);const{brokenFlow:n,ignore:r}=s;return s.ignore={breaks:!1,continues:!1,labels:new Set,returnAwaitYield:!0},!!this.body.hasEffects(s)||(s.brokenFlow=n,i?s.replacedVariableInits.set(this.scope.thisVariable,i):s.replacedVariableInits.delete(this.scope.thisVariable),s.ignore=r,!1)}include(e,t){this.included=!0,this.id&&this.id.include(e);const s=this.scope.argumentsVariable.included;for(const i of this.params)i instanceof Xs&&!s||i.include(e,t);const{brokenFlow:i}=e;e.brokenFlow=0,this.body.include(e,t),e.brokenFlow=i}includeCallArguments(e,t){this.scope.includeCallArguments(e,t)}initialise(){null!==this.id&&this.id.declare("function",this),this.scope.addParameterVariables(this.params.map(e=>e.declare("parameter",rt)),this.params[this.params.length-1]instanceof Ys),this.body.addImplicitReturnExpressionToScope()}parseNode(e){this.body=new this.context.nodeConstructors.BlockStatement(e.body,this,this.scope.hoistedBodyVarScope),super.parseNode(e)}}Qs.prototype.preventChildBlockScope=!0;class Js extends Qs{initialise(){super.initialise(),null!==this.id&&(this.id.variable.isId=!0)}parseNode(e){null!==e.id&&(this.id=new this.context.nodeConstructors.Identifier(e.id,this,this.scope.parent)),super.parseNode(e)}}const Zs=/\s/;class ei extends Fs{include(e,t){super.include(e,t),t&&this.context.includeVariable(e,this.variable)}initialise(){const e=this.declaration;this.declarationName=e.id&&e.id.name||this.declaration.name,this.variable=this.scope.addExportDefaultDeclaration(this.declarationName||this.context.getModuleName(),this,this.context),this.context.addExport(this)}render(e,t,s){const{start:i,end:n}=s,r=function(e,t=0){for(t=_s(e,"default",t)+7;Zs.test(e[t]);)t++;return t}(e.original,this.start);if(this.declaration instanceof Js)this.renderNamedDeclaration(e,r,"function",null===this.declaration.id,t);else if(this.declaration instanceof Us)this.renderNamedDeclaration(e,r,"class",null===this.declaration.id,t);else{if(this.variable.getOriginalVariable()!==this.variable)return void("system"===t.format&&this.variable.exportName?e.overwrite(i,n,`exports('${this.variable.exportName}', ${this.variable.getName()});`):ks(this,e,i,n));if(!this.variable.included)return e.remove(this.start,r),this.declaration.render(e,t,{isCalleeOfRenderedParent:!1,renderedParentType:"ExpressionStatement"}),void(";"!==e.original[this.end-1]&&e.appendLeft(this.end,";"));this.renderVariableDeclaration(e,r,t)}this.declaration.render(e,t)}renderNamedDeclaration(e,t,s,i,n){const r=this.variable.getName();e.remove(this.start,t),i&&e.appendLeft(function(e,t,s=0){const i=_s(e,t,s)+t.length;e=e.slice(i,_s(e,"{",i));const n=_s(e,"*");return-1===n?i:i+n+1}(e.original,s,t),` ${r}`),"system"===n.format&&this.declaration instanceof Us&&this.variable.exportName&&e.appendLeft(this.end,` exports('${this.variable.exportName}', ${r});`)}renderVariableDeclaration(e,t,s){const i="system"===s.format&&this.variable.exportName?`exports('${this.variable.exportName}', `:"";e.overwrite(this.start,t,`${s.varOrConst} ${this.variable.getName()} = ${i}`);const n=59===e.original.charCodeAt(this.end-1);i?e.appendRight(n?this.end-1:this.end,")"+(n?"":";")):n||e.appendLeft(this.end,";")}}ei.prototype.needsBoundaries=!0;class ti extends es{constructor(e,t,s){super(e,t,t.declaration,s),this.hasId=!1,this.originalId=null,this.originalVariable=null;const i=t.declaration;(i instanceof Js||i instanceof Us)&&i.id?(this.hasId=!0,this.originalId=i.id):i instanceof Xs&&(this.originalId=i)}addReference(e){this.hasId||(this.name=e.name)}getAssignedVariableName(){return this.originalId&&this.originalId.name||null}getBaseVariableName(){const e=this.getOriginalVariable();return e===this?super.getBaseVariableName():e.getBaseVariableName()}getName(){const e=this.getOriginalVariable();return e===this?super.getName():e.getName()}getOriginalVariable(){if(null===this.originalVariable)if(!this.originalId||!this.hasId&&this.originalId.variable.isReassigned)this.originalVariable=this;else{const e=this.originalId.variable;this.originalVariable=e instanceof ti?e.getOriginalVariable():e}return this.originalVariable}setRenderNames(e,t){const s=this.getOriginalVariable();s===this?super.setRenderNames(e,t):s.setRenderNames(e,t)}setSafeName(e){const t=this.getOriginalVariable();t===this?super.setSafeName(e):t.setSafeName(e)}}class si extends $t{constructor(e){super("_missingExportShim"),this.module=e}}class ii extends $t{constructor(e,t){super(e.getModuleName()),this.memberVariables=Object.create(null),this.reexportedExternalNamespaces=[],this.referencedEarly=!1,this.references=[],this.context=e,this.module=e.module,this.syntheticNamedExports=t}addReference(e){this.references.push(e),this.name=e.name}deoptimizePath(){for(const e in this.memberVariables)this.memberVariables[e].deoptimizePath(Ze)}include(e){if(!this.included){this.included=!0;for(const e of this.references)if(e.context.getModuleExecIndex()<=this.context.getModuleExecIndex()){this.referencedEarly=!0;break}if(this.reexportedExternalNamespaces=this.context.includeAndGetReexportedExternalNamespaces(),this.context.preserveModules)for(const t of Object.keys(this.memberVariables))this.memberVariables[t].include(e);else for(const t of Object.keys(this.memberVariables))this.context.includeVariable(e,this.memberVariables[t])}}initialise(){for(const e of this.context.getExports().concat(this.context.getReexports()))"*"!==e[0]&&(this.memberVariables[e]=this.context.traceExport(e))}renderBlock(e){const t=e.compact?"":" ",s=e.compact?"":"\n",i=e.indent,n=Object.keys(this.memberVariables).map(s=>{const n=this.memberVariables[s];if(this.referencedEarly||n.isReassigned)return`${i}get ${s}${t}()${t}{${t}return ${n.getName()}${e.compact?"":";"}${t}}`;const r=Ms[s]?`'${s}'`:s;return`${i}${r}: ${n.getName()}`});e.namespaceToStringTag&&n.unshift(`${i}[Symbol.toStringTag]:${t}'Module'`);const r=this.reexportedExternalNamespaces.length>0;r||n.unshift(`${i}__proto__:${t}null`);let a=`{${s}${n.join(`,${s}`)}${s}}`;if(r||this.syntheticNamedExports){const e=n.length>0?[a]:[];r&&e.unshift("/*#__PURE__*/Object.create(null)",...this.reexportedExternalNamespaces.map(e=>e.getName())),this.syntheticNamedExports&&e.push(this.module.getDefaultExport().getName()),a=`/*#__PURE__*/Object.assign(${e.join(`,${t}`)})`}e.freeze&&(a=`/*#__PURE__*/Object.freeze(${a})`);const o=this.getName();return a=`${e.varOrConst} ${o}${t}=${t}${a};`,"system"===e.format&&this.exportName&&(a+=`${s}exports('${this.exportName}',${t}${o});`),a}renderFirst(){return this.referencedEarly}}ii.prototype.isNamespace=!0;const ni="Object.defineProperty(exports, '__esModule', { value: true });",ri="Object.defineProperty(exports,'__esModule',{value:true});";function ai(e,t,s,i,n,r,a="return "){const o=n?"":" ",h=n?"":"\n";if(!s){let s;if(e.length>0)s=e[0].local;else for(const e of t)if(e.reexports){const t=e.reexports[0];s=e.namedExportsMode&&"*"!==t.imported&&"default"!==t.imported?`${e.name}.${t.imported}`:e.name;break}return`${a}${s};`}let l="";for(const{name:e,reexports:i}of t)if(i&&s)for(const t of i)"*"===t.reexported&&(l&&(l+=h),t.needsLiveBinding?l+=`Object.keys(${e}).forEach(function${o}(k)${o}{${h}`+`${r}if${o}(k${o}!==${o}'default')${o}Object.defineProperty(exports,${o}k,${o}{${h}`+`${r}${r}enumerable:${o}true,${h}`+`${r}${r}get:${o}function${o}()${o}{${h}`+`${r}${r}${r}return ${e}[k];${h}`+`${r}${r}}${h}${r}});${h}});`:l+=`Object.keys(${e}).forEach(function${o}(k)${o}{${h}`+`${r}if${o}(k${o}!==${o}'default')${o}exports[k]${o}=${o}${e}[k];${h}});`);for(const{name:e,imports:n,reexports:a,isChunk:c,namedExportsMode:u,exportsNames:d}of t)if(a&&s)for(const t of a)if("default"!==t.imported||c)if("*"!==t.imported){l&&(l+=h);const s="default"!==t.imported||u?`${e}.${t.imported}`:e;l+=t.needsLiveBinding?`Object.defineProperty(exports,${o}'${t.reexported}',${o}{${h}`+`${r}enumerable:${o}true,${h}`+`${r}get:${o}function${o}()${o}{${h}`+`${r}${r}return ${s};${h}${r}}${h}});`:`exports.${t.reexported}${o}=${o}${s};`}else"*"!==t.reexported&&(l&&(l+=h),l+=`exports.${t.reexported}${o}=${o}${e};`);else l&&(l+=h),d&&(a.some(e=>"default"===e.imported?"default"===e.reexported:"*"!==e.imported)||n&&n.some(e=>"default"!==e.imported))?l+=`exports.${t.reexported}${o}=${o}${e}${!1!==i?"__default":".default"};`:l+=`exports.${t.reexported}${o}=${o}${e};`;for(const t of e){const e=`exports.${t.exported}`,s=t.local;e!==s&&(l&&(l+=h),l+=`${e}${o}=${o}${s};`)}return l}function oi(e,t,s){const i=t.compact?"":" ";return e.map(({name:e,exportsNames:n,exportsDefault:r,namedExportsMode:a})=>a&&r&&!1!==t.interop?n?`${s} ${e}__default${i}=${i}'default'${i}in ${e}${i}?`+`${i}${e}['default']${i}:${i}${e};`:`${e}${i}=${i}${e}${i}&&${i}Object.prototype.hasOwnProperty.call(${e},${i}'default')${i}?`+`${i}${e}['default']${i}:${i}${e};`:null).filter(Boolean).join(t.compact?"":"\n")}function hi(e,t,s,i){return`${i}var d${e}=${e}Object.getOwnPropertyDescriptor(e,${e}k);${t}`+`${i}Object.defineProperty(n,${e}k,${e}d.get${e}?${e}d${e}:${e}{${t}`+`${i}${s}enumerable:${e}true,${t}`+`${i}${s}get:${e}function${e}()${e}{${t}`+`${i}${s}${s}return e[k];${t}`+`${i}${s}}${t}`+`${i}});${t}`}function li(e,t,s,i){return`${i}n[k]${e}=e${e}[k];${t}`}function ci(e,t,s,i){return`function _interopNamespace(e)${e}{${t}`+`${s}if${e}(e${e}&&${e}e.__esModule)${e}{${e}return e;${e}}${e}else${e}{${t}`+`${s}${s}var n${e}=${e}{};${t}`+`${s}${s}if${e}(e)${e}{${t}`+`${s}${s}${s}Object.keys(e).forEach(function${e}(k)${e}{${t}`+(i?hi:li)(e,t,s,s+s+s+s)+`${s}${s}${s}});${t}`+`${s}${s}}${t}`+`${s}${s}n['default']${e}=${e}e;${t}`+`${s}${s}return n;${t}`+`${s}}${t}`+`}${t}${t}`}const ui={assert:!0,buffer:!0,console:!0,constants:!0,domain:!0,events:!0,http:!0,https:!0,os:!0,path:!0,process:!0,punycode:!0,querystring:!0,stream:!0,string_decoder:!0,timers:!0,tty:!0,url:!0,util:!0,vm:!0,zlib:!0};function di(e,t){const s=t.map(({id:e})=>e).filter(e=>e in ui);s.length&&e({code:"MISSING_NODE_BUILTINS",message:`Creating a browser bundle that depends on Node.js built-in ${1===s.length?`module ('${s[0]}')`:`modules (${s.slice(0,-1).map(e=>`'${e}'`).join(", ")} and '${s.slice(-1)}')`}. You might need to include https://www.npmjs.com/package/rollup-plugin-node-builtins`,modules:s})}function pi(e){return e.replace(/^\t+/,e=>e.split("\t").join("  "))}function fi(e,t,s){let i=e.split("\n");const n=Math.max(0,t-3);let r=Math.min(t+2,i.length);for(i=i.slice(n,r);!/\S/.test(i[i.length-1]);)i.pop(),r-=1;const a=String(r).length;return i.map((e,i)=>{const r=n+i+1===t;let o=String(i+n+1);for(;o.length<a;)o=` ${o}`;if(r){const t=function(e){let t="";for(;e--;)t+=" ";return t}(a+2+pi(e.slice(0,s)).length)+"^";return`${o}: ${pi(e)}\n${t}`}return`${o}: ${pi(e)}`}).join("\n")}function mi(e){return e.replace(/[\0?*]/g,"_")}function gi(e){const t=qt(e);return t.substr(0,t.length-Xt(e).length)}function xi(e){return"undefined"!=typeof process&&jt(e)?Yt(process.cwd(),e):e}function yi(e){return"/"!==e[0]&&!("."===e[0]&&("/"===e[1]||"."===e[1]))&&mi(e)===e}function Ei(e){throw e instanceof Error||(e=Object.assign(new Error(e.message),e)),e}function bi(e,t,s,i){if("object"==typeof t){const{line:s,column:n}=t;e.loc={file:i,line:s,column:n}}else{e.pos=t;const{line:n,column:r}=Vs(s,t,{offsetLine:1});e.loc={file:i,line:n,column:r}}if(void 0===e.frame){const{line:t,column:i}=e.loc;e.frame=fi(s,t,i)}}var vi;function Si(e,t,s){return{code:"INVALID_EXPORT_OPTION",message:`"${e}" was specified for "output.exports", but entry module "${xi(s)}" has the following exports: ${t.join(", ")}`}}function Ai(e,t,s){return{code:vi.NAMESPACE_CONFLICT,message:`Conflicting namespaces: ${xi(t.id)} re-exports '${e}' from both ${xi(t.exportsAll[e])} and ${xi(s.exportsAll[e])} (will be ignored)`,name:e,reexporter:t.id,sources:[t.exportsAll[e],s.exportsAll[e]]}}function Ci(e){return{code:vi.VALIDATION_ERROR,message:e}}!function(e){e.ASSET_NOT_FINALISED="ASSET_NOT_FINALISED",e.ASSET_NOT_FOUND="ASSET_NOT_FOUND",e.ASSET_SOURCE_ALREADY_SET="ASSET_SOURCE_ALREADY_SET",e.ASSET_SOURCE_MISSING="ASSET_SOURCE_MISSING",e.BAD_LOADER="BAD_LOADER",e.CANNOT_EMIT_FROM_OPTIONS_HOOK="CANNOT_EMIT_FROM_OPTIONS_HOOK",e.CHUNK_NOT_GENERATED="CHUNK_NOT_GENERATED",e.DEPRECATED_FEATURE="DEPRECATED_FEATURE",e.FILE_NOT_FOUND="FILE_NOT_FOUND",e.FILE_NAME_CONFLICT="FILE_NAME_CONFLICT",e.INPUT_HOOK_IN_OUTPUT_PLUGIN="INPUT_HOOK_IN_OUTPUT_PLUGIN",e.INVALID_CHUNK="INVALID_CHUNK",e.INVALID_EXPORT_OPTION="INVALID_EXPORT_OPTION",e.INVALID_EXTERNAL_ID="INVALID_EXTERNAL_ID",e.INVALID_OPTION="INVALID_OPTION",e.INVALID_PLUGIN_HOOK="INVALID_PLUGIN_HOOK",e.INVALID_ROLLUP_PHASE="INVALID_ROLLUP_PHASE",e.MIXED_EXPORTS="MIXED_EXPORTS",e.NAMESPACE_CONFLICT="NAMESPACE_CONFLICT",e.PLUGIN_ERROR="PLUGIN_ERROR",e.UNRESOLVED_ENTRY="UNRESOLVED_ENTRY",e.UNRESOLVED_IMPORT="UNRESOLVED_IMPORT",e.VALIDATION_ERROR="VALIDATION_ERROR",e.EXTERNAL_SYNTHETIC_EXPORTS="EXTERNAL_SYNTHETIC_EXPORTS",e.SYNTHETIC_NAMED_EXPORTS_NEED_DEFAULT="SYNTHETIC_NAMED_EXPORTS_NEED_DEFAULT"}(vi||(vi={}));const Pi=/^[a-zA-Z$_][a-zA-Z0-9$_]*$/;function ki(e){return Pi.test(e)?`.${e}`:`['${e}']`}function wi(e){return e.split(".").map(ki).join("")}function Ni(e,t,s,i,n){const r=i?"":" ",a=e.split(".");s&&(a[0]=("function"==typeof s?s(a[0]):s[a[0]])||a[0]);const o=a.pop();let h=t,l=a.map(e=>(h+=ki(e),`${h}${r}=${r}${h}${r}||${r}{}`)).concat(`${h}${ki(o)}`).join(`,${r}`).concat(`${r}=${r}${n}`);return a.length>0&&(l=`(${l})`),l}function _i(e){let t=e.length;for(;t--;){const s=e[t];if(s.exportsDefault||s.exportsNames)return e.slice(0,t+1)}return[]}const Ii=e=>`this${wi(e)}`;function $i({dependencies:e,exports:t}){const s=new Set(t.map(e=>e.exported));s.has("default")||s.add("default");for(const{reexports:t}of e)if(t)for(const e of t)"*"===e.imported||s.has(e.reexported)||s.add(e.reexported);return s}function Ti(e,t,s,i){return 0===e.length?"":1===e.length?`${s}${s}${s}exports('${e[0].name}',${t}${e[0].value});${i}${i}`:`${s}${s}${s}exports({${i}`+e.map(({name:e,value:i})=>`${s}${s}${s}${s}${e}:${t}${i}`).join(`,${i}`)+`${i}${s}${s}${s}});${i}${i}`}function Ri(e,t){return e?`${t}${wi(e)}`:"null"}var Li={system:function(e,{accessedGlobals:t,dependencies:s,exports:i,hasExports:n,indentString:r,intro:a,outro:o,usesTopLevelAwait:h,varOrConst:l},c){const u=c.compact?"":"\n",d=c.compact?"":" ",p=s.map(e=>`'${e.id}'`),f=[];let m;const g=[];for(const{imports:e,reexports:t}of s){const n=[];if(e)for(const t of e)f.push(t.local),"*"===t.imported?n.push(`${t.local}${d}=${d}module;`):n.push(`${t.local}${d}=${d}module.${t.imported};`);if(t){let e=!1;if(t.length>1||1===t.length&&("*"===t[0].reexported||"*"===t[0].imported)){for(const a of t)"*"===a.reexported&&(m||(m=$i({dependencies:s,exports:i})),e||(n.push(`${l} _setter${d}=${d}{};`),e=!0),n.push(`for${d}(var _$p${d}in${d}module)${d}{`),n.push(`${r}if${d}(!_starExcludes[_$p])${d}_setter[_$p]${d}=${d}module[_$p];`),n.push("}"));for(const e of t)"*"===e.imported&&"*"!==e.reexported&&n.push(`exports('${e.reexported}',${d}module);`);for(const s of t)"*"!==s.reexported&&"*"!==s.imported&&(e||(n.push(`${l} _setter${d}=${d}{};`),e=!0),n.push(`_setter.${s.reexported}${d}=${d}module.${s.imported};`));e&&n.push("exports(_setter);")}else for(const e of t)n.push(`exports('${e.reexported}',${d}module.${e.imported});`)}g.push(n.join(`${u}${r}${r}${r}`))}const x=c.name?`'${c.name}',${d}`:"",y=t.has("module")?`exports,${d}module`:n?"exports":"";let E=`System.register(${x}[`+p.join(`,${d}`)+`],${d}function${d}(${y})${d}{${u}${r}${c.strict?"'use strict';":""}`+((e,t,s,i,n)=>e?`${n}${i}${t} _starExcludes${s}=${s}{${s}${Array.from(e).join(`:${s}1,${s}`)}${e.size?`:${s}1`:""}${s}};`:"")(m,l,d,r,u)+((e,t,s,i)=>e.length?`${i}${s}var ${e.join(`,${t}`)};`:"")(f,d,r,u)+`${u}${r}return${d}{${g.length?`${u}${r}${r}setters:${d}[${g.map(e=>e?`function${d}(module)${d}{${u}${r}${r}${r}${e}${u}${r}${r}}`:`function${d}()${d}{}`).join(`,${d}`)}],`:""}${u}`;E+=`${r}${r}execute:${d}${h?`async${d}`:""}function${d}()${d}{${u}${u}`+((e,t,s,i)=>Ti(e.filter(e=>e.hoisted||e.uninitialized).map(e=>({name:e.exported,value:e.uninitialized?"void 0":e.local})),t,s,i))(i,d,r,u);const b=`${u}${u}`+((e,t,s,i)=>Ti(e.filter(e=>"_missingExportShim"===e.local).map(e=>({name:e.exported,value:"_missingExportShim"})),t,s,i))(i,d,r,u)+`${r}${r}}${u}${r}}${c.compact?"":";"}${u}});`;return a&&e.prepend(a),o&&e.append(o),e.indent(`${r}${r}${r}`).append(b).prepend(E)},amd:function(e,{accessedGlobals:t,dependencies:s,exports:i,hasExports:n,indentString:r,intro:a,isEntryModuleFacade:o,namedExportsMode:h,outro:l,varOrConst:c,warn:u},d){di(u,s);const p=s.map(e=>{return`'${t=e.id,"."===t[0]&&t.endsWith(".js")?t.slice(0,-3):t}'`;var t}),f=s.map(e=>e.name),m=d.compact?"":"\n",g=d.compact?"":" ";h&&n&&(f.unshift("exports"),p.unshift("'exports'")),t.has("require")&&(f.unshift("require"),p.unshift("'require'")),t.has("module")&&(f.unshift("module"),p.unshift("'module'"));const x=d.amd||{},y=(x.id?`'${x.id}',${g}`:"")+(p.length?`[${p.join(`,${g}`)}],${g}`:""),E=!1!==d.strict?`${g}'use strict';`:"",b=`${x.define||"define"}(${y}function${g}(${f.join(`,${g}`)})${g}{${E}${m}${m}`,v=oi(s,d,c);v&&e.prepend(v+m+m),t.has("_interopNamespace")&&e.prepend(ci(g,m,r,!1!==d.externalLiveBindings)),a&&e.prepend(a);const S=ai(i,s,h,d.interop,d.compact,r);return S&&e.append(m+m+S),h&&n&&o&&d.esModule&&e.append(`${m}${m}${d.compact?ri:ni}`),l&&e.append(l),e.indent(r).append(m+m+"});").prepend(b)},cjs:function(e,{accessedGlobals:t,dependencies:s,exports:i,hasExports:n,indentString:r,intro:a,isEntryModuleFacade:o,namedExportsMode:h,outro:l,varOrConst:c},u){const d=u.compact?"":"\n",p=u.compact?"":" ";a=(!1===u.strict?a:`'use strict';${d}${d}${a}`)+(h&&n&&o&&u.esModule?`${u.compact?ri:ni}${d}${d}`:"");let f=!1;const m=!1!==u.interop;let g,x=!1;g="";for(const{id:e,namedExportsMode:t,isChunk:i,name:n,reexports:r,imports:a,exportsNames:o,exportsDefault:h}of s)r||a?(g+=u.compact&&x?",":`${g?`;${d}`:""}${c} `,x=!0,m&&!i&&h&&t?(f=!0,g+=o?`${n}${p}=${p}require('${e}')${u.compact?",":`;\n${c} `}${n}__default${p}=${p}_interopDefault(${n})`:`${n}${p}=${p}_interopDefault(require('${e}'))`):g+=`${n}${p}=${p}require('${e}')`):(g&&(g+=!u.compact||x?`;${d}`:","),x=!1,g+=`require('${e}')`);if(g&&(g+=";"),f){const e=u.compact?"e":"ex";a+=`function _interopDefault${p}(${e})${p}{${p}return${p}`+`(${e}${p}&&${p}(typeof ${e}${p}===${p}'object')${p}&&${p}'default'${p}in ${e})${p}`+`?${p}${e}['default']${p}:${p}${e}${u.compact?"":"; "}}${d}${d}`}t.has("_interopNamespace")&&(a+=ci(p,d,r,!1!==u.externalLiveBindings)),g&&(a+=g+d+d);const y=ai(i,s,h,u.interop,u.compact,r,`module.exports${p}=${p}`);return e.prepend(a),y&&e.append(d+d+y),l&&e.append(l),e},es:function(e,{intro:t,outro:s,dependencies:i,exports:n},r){const a=r.compact?"":" ",o=r.compact?"":"\n",h=function(e,t){const s=[];for(const{id:i,reexports:n,imports:r,name:a}of e)if(n||r){if(r){let e=null,n=null;const a=[];for(const t of r)"default"===t.imported?e=t:"*"===t.imported?n=t:a.push(t);n&&s.push(`import${t}*${t}as ${n.local} from${t}'${i}';`),e&&0===a.length?s.push(`import ${e.local} from${t}'${i}';`):a.length>0&&s.push(`import ${e?`${e.local},${t}`:""}{${t}${a.map(e=>e.imported===e.local?e.imported:`${e.imported} as ${e.local}`).join(`,${t}`)}${t}}${t}from${t}'${i}';`)}if(n){let e=null;const o=[],h=[];for(const t of n)"*"===t.reexported?e=t:"*"===t.imported?o.push(t):h.push(t);if(e&&s.push(`export${t}*${t}from${t}'${i}';`),o.length>0){r&&r.some(e=>"*"===e.imported&&e.local===a)||s.push(`import${t}*${t}as ${a} from${t}'${i}';`);for(const e of o)s.push(`export${t}{${t}${a===e.reexported?a:`${a} as ${e.reexported}`} };`)}h.length>0&&s.push(`export${t}{${t}${h.map(e=>e.imported===e.reexported?e.imported:`${e.imported} as ${e.reexported}`).join(`,${t}`)}${t}}${t}from${t}'${i}';`)}}else s.push(`import${t}'${i}';`);return s}(i,a);h.length>0&&(t+=h.join(o)+o+o),t&&e.prepend(t);const l=function(e,t){const s=[],i=[];for(const t of e)"default"===t.exported?s.push(`export default ${t.local};`):i.push(t.exported===t.local?t.local:`${t.local} as ${t.exported}`);i.length&&s.push(`export${t}{${t}${i.join(`,${t}`)}${t}};`);return s}(n,a);return l.length&&e.append(o+o+l.join(o).trim()),s&&e.append(s),e.trim()},iife:function(e,{dependencies:t,exports:s,hasExports:i,indentString:n,intro:r,namedExportsMode:a,outro:o,varOrConst:h,warn:l},c){const u=c.compact?"":" ",d=c.compact?"":"\n",{extend:p,name:f}=c,m=f&&-1!==f.indexOf("."),g=!p&&!m;if(f&&g&&(Ft(x=f)||Vt.has(x)||Bt.test(x)))return Ei({code:"ILLEGAL_IDENTIFIER_AS_NAME",message:`Given name "${f}" is not a legal JS identifier. If you need this, you can try "output.extend: true".`});var x;di(l,t);const y=_i(t),E=y.map(e=>e.globalName||"null"),b=y.map(e=>e.name);i&&!f&&l({code:"MISSING_NAME_OPTION_FOR_IIFE_EXPORT",message:'If you do not supply "output.name", you may not be able to access the exports of an IIFE bundle.'}),a&&i&&(p?(E.unshift(`${Ii(f)}${u}=${u}${Ii(f)}${u}||${u}{}`),b.unshift("exports")):(E.unshift("{}"),b.unshift("exports")));const v=!1!==c.strict?`${n}'use strict';${d}${d}`:"";let S=`(function${u}(${b.join(`,${u}`)})${u}{${d}${v}`;!i||p&&a||!f||(S=(g?`${h} ${f}`:Ii(f))+`${u}=${u}${S}`),m&&i&&(S=function(e,t,s,i){const n=e.split(".");s&&(n[0]=("function"==typeof s?s(n[0]):s[n[0]])||n[0]);const r=i?"":" ";n.pop();let a=t;return n.map(e=>(a+=ki(e),`${a}${r}=${r}${a}${r}||${r}{}${i?"":";"}`)).join(i?",":"\n")+(i&&n.length?";":"\n")}(f,"this",c.globals,c.compact)+S);let A=`${d}${d}}(${E.join(`,${u}`)}));`;!p&&a&&i&&(A=`${d}${d}${n}return exports;${A}`);const C=oi(t,c,h);C&&e.prepend(C+d+d),r&&e.prepend(r);const P=ai(s,t,a,c.interop,c.compact,n);return P&&e.append(d+d+P),o&&e.append(o),e.indent(n).prepend(S).append(A)},umd:function(e,{dependencies:t,exports:s,hasExports:i,indentString:n,intro:r,namedExportsMode:a,outro:o,varOrConst:h,warn:l},c){const u=c.compact?"":" ",d=c.compact?"":"\n",p=c.compact?"f":"factory",f=c.compact?"g":"global";if(i&&!c.name)return Ei({code:"MISSING_NAME_OPTION_FOR_IIFE_EXPORT",message:'You must supply "output.name" for UMD bundles that have exports so that the exports are accessible in environments without a module loader.'});di(l,t);const m=t.map(e=>`'${e.id}'`),g=t.map(e=>`require('${e.id}')`),x=_i(t),y=x.map(e=>Ri(e.globalName,f)),E=x.map(e=>e.name);a&&(i||!0===c.noConflict)&&(m.unshift("'exports'"),g.unshift("exports"),y.unshift(Ni(c.name,f,c.globals,c.compact,`${c.extend?`${Ri(c.name,f)}${u}||${u}`:""}{}`)),E.unshift("exports"));const b=c.amd||{},v=(b.id?`'${b.id}',${u}`:"")+(m.length?`[${m.join(`,${u}`)}],${u}`:""),S=b.define||"define",A=!a&&i?`module.exports${u}=${u}`:"",C=!1!==c.strict?`${u}'use strict';${d}`:"";let P;if(!0===c.noConflict){const e=c.compact?"e":"exports";let t;if(!a&&i)t=`var ${e}${u}=${u}${Ni(c.name,f,c.globals,c.compact,`${p}(${y.join(`,${u}`)})`)};`;else if(a){t=`var ${e}${u}=${u}${y.shift()};${d}`+`${n}${n}${p}(${[e].concat(y).join(`,${u}`)});`}P=`(function${u}()${u}{${d}`+`${n}${n}var current${u}=${u}${function(e,t,s){const i=e.split(".");let n=t;return i.map(e=>(n+=ki(e),n)).join(`${s}&&${s}`)}(c.name,f,u)};${d}`+`${n}${n}${t}${d}`+`${n}${n}${e}.noConflict${u}=${u}function${u}()${u}{${u}`+`${Ri(c.name,f)}${u}=${u}current;${u}return ${e}${c.compact?"":"; "}};${d}`+`${n}}())`}else P=`${p}(${y.join(`,${u}`)})`,!a&&i&&(P=Ni(c.name,f,c.globals,c.compact,P));const k=i||!0===c.noConflict&&a||y.length>0,w=k?`this,${u}`:"",N=k?`(${f}${u}=${u}${f}${u}||${u}self,${u}`:"",_=k?")":"",I=`(function${u}(${k?`${f},${u}`:""}${p})${u}{${d}`+(k?`${n}typeof exports${u}===${u}'object'${u}&&${u}typeof module${u}!==${u}'undefined'${u}?`+`${u}${A}${p}(${g.join(`,${u}`)})${u}:${d}`:"")+`${n}typeof ${S}${u}===${u}'function'${u}&&${u}${S}.amd${u}?${u}${S}(${v}${p})${u}:${d}`+`${n}${N}${P}${_};${d}`+`}(${w}(function${u}(${E.join(", ")})${u}{${C}${d}`,$=d+d+"})));",T=oi(t,c,h);T&&e.prepend(T+d+d),r&&e.prepend(r);const R=ai(s,t,a,c.interop,c.compact,n);return R&&e.append(d+d+R),a&&i&&c.esModule&&e.append(d+d+(c.compact?ri:ni)),o&&e.append(o),e.trim().indent(n).append($).prepend(I)}};const Mi={ArrayPattern(e,t){for(const s of t.elements)s&&Mi[s.type](e,s)},AssignmentPattern(e,t){Mi[t.left.type](e,t.left)},Identifier(e,t){e.push(t.name)},MemberExpression(){},ObjectPattern(e,t){for(const s of t.properties)"RestElement"===s.type?Mi.RestElement(e,s):Mi[s.value.type](e,s.value)},RestElement(e,t){Mi[t.argument.type](e,t.argument)}},Di=function(e){const t=[];return Mi[e.type](t,e),t};class Oi extends Fs{hasEffects(){return!1}initialise(){this.context.addExport(this)}render(e,t,s){e.remove(s.start,s.end)}}Oi.prototype.needsBoundaries=!0;class Vi extends Os{addDeclaration(e,t,s=null,i){return i?this.parent.addDeclaration(e,t,"function"===i?s:rt,i):super.addDeclaration(e,t,s,!1)}}class Bi extends Fs{initialise(){this.directive&&"use strict"!==this.directive&&"Program"===this.parent.type&&this.context.warn({code:"MODULE_LEVEL_DIRECTIVE",message:`Module level directives cause errors when bundled, '${this.directive}' was ignored.`},this.start)}render(e,t){super.render(e,t),this.included&&this.insertSemicolon(e)}shouldBeIncluded(e){return this.directive&&"use strict"!==this.directive?"Program"!==this.parent.type:super.shouldBeIncluded(e)}}class Fi extends Fs{constructor(){super(...arguments),this.directlyIncluded=!1}addImplicitReturnExpressionToScope(){const e=this.body[this.body.length-1];e&&"ReturnStatement"===e.type||this.scope.addReturnExpression(rt)}createScope(e){this.scope=this.parent.preventChildBlockScope?e:new Vi(e)}hasEffects(e){if(this.deoptimizeBody)return!0;for(const t of this.body){if(t.hasEffects(e))return!0;if(e.brokenFlow)break}return!1}include(e,t){if(!this.deoptimizeBody||!this.directlyIncluded){this.included=!0,this.directlyIncluded=!0,this.deoptimizeBody&&(t=!0);for(const s of this.body)(t||s.shouldBeIncluded(e))&&s.include(e,t)}}initialise(){const e=this.body[0];this.deoptimizeBody=e instanceof Bi&&"use asm"===e.directive}render(e,t){this.body.length?$s(this.body,e,this.start+1,this.end-1,t):super.render(e,t)}}class Wi extends Fs{createScope(e){this.scope=new Hs(e,this.context)}deoptimizePath(e){1===e.length&&e[0]===Qe&&this.scope.getReturnExpression().deoptimizePath(Ze)}getReturnExpressionWhenCalledAtPath(e){return 0===e.length?this.scope.getReturnExpression():rt}hasEffects(){return!1}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){if(e.length>0)return!0;for(const e of this.params)if(e.hasEffects(s))return!0;const{ignore:i,brokenFlow:n}=s;return s.ignore={breaks:!1,continues:!1,labels:new Set,returnAwaitYield:!0},!!this.body.hasEffects(s)||(s.ignore=i,s.brokenFlow=n,!1)}include(e,t){this.included=!0;for(const s of this.params)s instanceof Xs||s.include(e,t);const{brokenFlow:s}=e;e.brokenFlow=0,this.body.include(e,t),e.brokenFlow=s}includeCallArguments(e,t){this.scope.includeCallArguments(e,t)}initialise(){this.scope.addParameterVariables(this.params.map(e=>e.declare("parameter",rt)),this.params[this.params.length-1]instanceof Ys),this.body instanceof Fi?this.body.addImplicitReturnExpressionToScope():this.scope.addReturnExpression(this.body)}parseNode(e){"BlockStatement"===e.body.type&&(this.body=new this.context.nodeConstructors.BlockStatement(e.body,this,this.scope.hoistedBodyVarScope)),super.parseNode(e)}}function Ui(e){return 1===e.length?`exports('${e[0].safeExportName||e[0].exportName}', ${e[0].getName()});`:`exports({${e.map(e=>`${e.safeExportName||e.exportName}: ${e.getName()}`).join(", ")}});`}Wi.prototype.preventChildBlockScope=!0;const zi={"!=":(e,t)=>e!=t,"!==":(e,t)=>e!==t,"%":(e,t)=>e%t,"&":(e,t)=>e&t,"*":(e,t)=>e*t,"**":(e,t)=>e**t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"<":(e,t)=>e<t,"<<":(e,t)=>e<<t,"<=":(e,t)=>e<=t,"==":(e,t)=>e==t,"===":(e,t)=>e===t,">":(e,t)=>e>t,">=":(e,t)=>e>=t,">>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t,"^":(e,t)=>e^t,in:()=>nt,instanceof:()=>nt,"|":(e,t)=>e|t};class ji extends Fs{getLiteralValueAtPath(e){return e.length>0||null===this.value&&110!==this.context.code.charCodeAt(this.start)||"bigint"==typeof this.value||47===this.context.code.charCodeAt(this.start)?nt:this.value}getReturnExpressionWhenCalledAtPath(e){return 1!==e.length?rt:It(this.members,e[0])}hasEffectsWhenAccessedAtPath(e){return null===this.value?e.length>0:e.length>1}hasEffectsWhenAssignedAtPath(e){return e.length>0}hasEffectsWhenCalledAtPath(e,t,s){return 1!==e.length||_t(this.members,e[0],this.included,t,s)}initialise(){this.members=function(e){switch(typeof e){case"boolean":return kt;case"number":return wt;case"string":return Nt;default:return Object.create(null)}}(this.value)}render(e){"string"==typeof this.value&&e.indentExclusionRanges.push([this.start+1,this.end-1])}}function Gi(e){return e.computed?function(e){if(e instanceof ji)return String(e.value);return null}(e.property):e.property.name}class Hi extends Fs{constructor(){super(...arguments),this.variable=null,this.bound=!1,this.expressionsToBeDeoptimized=[],this.replacement=null,this.wasPathDeoptimizedWhileOptimized=!1}addExportedVariables(){}bind(){if(this.bound)return;this.bound=!0;const e=function e(t){const s=t.propertyKey,i=t.object;if("string"==typeof s){if(i instanceof Xs)return[{key:i.name,pos:i.start},{key:s,pos:t.property.start}];if(i instanceof Hi){const n=e(i);return n&&[...n,{key:s,pos:t.property.start}]}}return null}(this),t=e&&this.scope.findVariable(e[0].key);if(t&&t.isNamespace){const s=this.resolveNamespaceVariables(t,e.slice(1));s?"string"==typeof s?this.replacement=s:(s instanceof Mt&&s.module&&s.module.suggestName(e[0].key),this.variable=s,this.scope.addNamespaceMemberAccess(function(e){let t=e[0].key;for(let s=1;s<e.length;s++)t+="."+e[s].key;return t}(e),s)):super.bind()}else super.bind(),this.getPropertyKey()}deoptimizeCache(){const e=this.expressionsToBeDeoptimized;this.expressionsToBeDeoptimized=[],this.propertyKey=Qe,this.wasPathDeoptimizedWhileOptimized&&this.object.deoptimizePath(Ze);for(const t of e)t.deoptimizeCache()}deoptimizePath(e){if(this.bound||this.bind(),0===e.length&&this.disallowNamespaceReassignment(),this.variable)this.variable.deoptimizePath(e);else{const t=this.getPropertyKey();t===Qe?this.object.deoptimizePath(Ze):(this.wasPathDeoptimizedWhileOptimized=!0,this.object.deoptimizePath([t,...e]))}}getLiteralValueAtPath(e,t,s){return this.bound||this.bind(),null!==this.variable?this.variable.getLiteralValueAtPath(e,t,s):(this.expressionsToBeDeoptimized.push(s),this.object.getLiteralValueAtPath([this.getPropertyKey(),...e],t,s))}getReturnExpressionWhenCalledAtPath(e,t,s){return this.bound||this.bind(),null!==this.variable?this.variable.getReturnExpressionWhenCalledAtPath(e,t,s):(this.expressionsToBeDeoptimized.push(s),this.object.getReturnExpressionWhenCalledAtPath([this.getPropertyKey(),...e],t,s))}hasEffects(e){return this.property.hasEffects(e)||this.object.hasEffects(e)||this.context.propertyReadSideEffects&&this.object.hasEffectsWhenAccessedAtPath([this.propertyKey],e)}hasEffectsWhenAccessedAtPath(e,t){return 0!==e.length&&(null!==this.variable?this.variable.hasEffectsWhenAccessedAtPath(e,t):this.object.hasEffectsWhenAccessedAtPath([this.propertyKey,...e],t))}hasEffectsWhenAssignedAtPath(e,t){return null!==this.variable?this.variable.hasEffectsWhenAssignedAtPath(e,t):this.object.hasEffectsWhenAssignedAtPath([this.propertyKey,...e],t)}hasEffectsWhenCalledAtPath(e,t,s){return null!==this.variable?this.variable.hasEffectsWhenCalledAtPath(e,t,s):this.object.hasEffectsWhenCalledAtPath([this.propertyKey,...e],t,s)}include(e,t){this.included||(this.included=!0,null!==this.variable&&this.context.includeVariable(e,this.variable)),this.object.include(e,t),this.property.include(e,t)}includeCallArguments(e,t){this.variable?this.variable.includeCallArguments(e,t):super.includeCallArguments(e,t)}initialise(){this.propertyKey=Gi(this)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i}=Ks){const n="CallExpression"===s&&i;if(this.variable||this.replacement){let t=this.variable?this.variable.getName():this.replacement;n&&(t="0, "+t),e.overwrite(this.start,this.end,t,{contentOnly:!0,storeName:!0})}else n&&e.appendRight(this.start,"0, "),super.render(e,t)}disallowNamespaceReassignment(){if(this.object instanceof Xs&&this.scope.findVariable(this.object.name).isNamespace)return this.context.error({code:"ILLEGAL_NAMESPACE_REASSIGNMENT",message:`Illegal reassignment to import '${this.object.name}'`},this.start)}getPropertyKey(){if(null===this.propertyKey){this.propertyKey=Qe;const e=this.property.getLiteralValueAtPath(Je,st,this);return this.propertyKey=e===nt?Qe:String(e)}return this.propertyKey}resolveNamespaceVariables(e,t){if(0===t.length)return e;if(!e.isNamespace)return null;const s=t[0].key,i=e instanceof Mt?e.module.getVariableForExportName(s):e.context.traceExport(s);if(!i){const i=e instanceof Mt?e.module.id:e.context.fileName;return this.context.warn({code:"MISSING_EXPORT",exporter:xi(i),importer:xi(this.context.fileName),message:`'${s}' is not exported by '${xi(i)}'`,missing:s,url:"https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module"},t[0].pos),"undefined"}return this.resolveNamespaceVariables(i,t.slice(1))}}class qi extends Gs{addDeclaration(e,t,s,i){return i?this.parent.addDeclaration(e,t,s,i):super.addDeclaration(e,t,s,!1)}}class Ki extends Fs{createScope(e){this.scope=new qi(e,this.context)}initialise(){this.param&&this.param.declare("parameter",rt)}parseNode(e){this.body=new this.context.nodeConstructors.BlockStatement(e.body,this,this.scope),super.parseNode(e)}}Ki.prototype.preventChildBlockScope=!0;class Xi{constructor(e){this.included=!1,this.expressions=e}deoptimizePath(e){for(const t of this.expressions)t.deoptimizePath(e)}getLiteralValueAtPath(){return nt}getReturnExpressionWhenCalledAtPath(e,t,s){return new Xi(this.expressions.map(i=>i.getReturnExpressionWhenCalledAtPath(e,t,s)))}hasEffectsWhenAccessedAtPath(e,t){for(const s of this.expressions)if(s.hasEffectsWhenAccessedAtPath(e,t))return!0;return!1}hasEffectsWhenAssignedAtPath(e,t){for(const s of this.expressions)if(s.hasEffectsWhenAssignedAtPath(e,t))return!0;return!1}hasEffectsWhenCalledAtPath(e,t,s){for(const i of this.expressions)if(i.hasEffectsWhenCalledAtPath(e,t,s))return!0;return!1}include(){}includeCallArguments(){}}class Yi extends Fs{bind(){null!==this.declaration&&this.declaration.bind()}hasEffects(e){return null!==this.declaration&&this.declaration.hasEffects(e)}initialise(){this.context.addExport(this)}render(e,t,s){const{start:i,end:n}=s;null===this.declaration?e.remove(i,n):(e.remove(this.start,this.declaration.start),this.declaration.render(e,t,{start:i,end:n}))}}Yi.prototype.needsBoundaries=!0;const Qi=Symbol("unset");class Ji extends Fs{bind(){}hasEffects(){return!1}initialise(){this.context.addImport(this)}render(e,t,s){e.remove(s.start,s.end)}}Ji.prototype.needsBoundaries=!0;const Zi="ROLLUP_ASSET_URL_",en="ROLLUP_FILE_URL_";const tn={amd:["document","module","URL"],cjs:["document","require","URL"],iife:["document","URL"],system:["module"],umd:["document","require","URL"]},sn={amd:["document","require","URL"],cjs:["document","require","URL"],iife:["document","URL"],system:["module","URL"],umd:["document","require","URL"]},nn=(e,t="URL")=>`new ${t}(${e}).href`,rn=e=>nn(`'${e}', document.currentScript && document.currentScript.src || document.baseURI`),an=e=>(t,s)=>{const i=e(s);return null===t?`({ url: ${i} })`:"url"===t?i:"undefined"},on=e=>`(document.currentScript && document.currentScript.src || new URL('${e}', document.baseURI).href)`,hn={amd:e=>("."!==e[0]&&(e="./"+e),nn(`require.toUrl('${e}'), document.baseURI`)),cjs:e=>`(typeof document === 'undefined' ? ${nn(`'file:' + __dirname + '/${e}'`,"(require('u' + 'rl').URL)")} : ${rn(e)})`,es:e=>nn(`'${e}', import.meta.url`),iife:e=>rn(e),system:e=>nn(`'${e}', module.meta.url`),umd:e=>`(typeof document === 'undefined' ? ${nn(`'file:' + __dirname + '/${e}'`,"(require('u' + 'rl').URL)")} : ${rn(e)})`},ln={amd:an(()=>nn("module.uri, document.baseURI")),cjs:an(e=>`(typeof document === 'undefined' ? ${nn("'file:' + __filename","(require('u' + 'rl').URL)")} : ${on(e)})`),iife:an(e=>on(e)),system:e=>null===e?"module.meta":`module.meta.${e}`,umd:an(e=>`(typeof document === 'undefined' ? ${nn("'file:' + __filename","(require('u' + 'rl').URL)")} : ${on(e)})`)};class cn extends Fs{bind(){super.bind(),this.argument.deoptimizePath([Qe,Qe])}}class un extends Fs{constructor(){super(...arguments),this.hasCachedEffect=!1}hasEffects(e){if(this.hasCachedEffect)return!0;for(const t of this.body)if(t.hasEffects(e))return this.hasCachedEffect=!0;return!1}include(e,t){this.included=!0;for(const s of this.body)(t||s.shouldBeIncluded(e))&&s.include(e,t)}render(e,t){this.body.length?$s(this.body,e,this.start,this.end,t):super.render(e,t)}}class dn extends Fs{hasEffects(e){if(this.test&&this.test.hasEffects(e))return!0;for(const t of this.consequent){if(e.brokenFlow)break;if(t.hasEffects(e))return!0}return!1}include(e,t){this.included=!0,this.test&&this.test.include(e,t);for(const s of this.consequent)(t||s.shouldBeIncluded(e))&&s.include(e,t)}render(e,t,s){if(this.consequent.length){this.test&&this.test.render(e,t);const i=this.test?this.test.end:_s(e.original,"default",this.start)+7,n=_s(e.original,":",i)+1;$s(this.consequent,e,n,s.end,t)}else super.render(e,t)}}dn.prototype.needsBoundaries=!0;class pn extends Fs{getLiteralValueAtPath(e){return e.length>0||1!==this.quasis.length?nt:this.quasis[0].value.cooked}render(e,t){e.indentExclusionRanges.push([this.start,this.end]),super.render(e,t)}}class fn extends Os{constructor(e,t){super(e),this.context=t,this.variables.set("this",new es("this",null,at,t))}addExportDefaultDeclaration(e,t,s){const i=new ti(e,t,s);return this.variables.set("default",i),i}addNamespaceMemberAccess(e,t){t instanceof Rt&&this.accessedOutsideVariables.set(t.name,t)}deconflict(e){for(const t of this.children)t.deconflict(e)}findLexicalBoundary(){return this}findVariable(e){const t=this.variables.get(e)||this.accessedOutsideVariables.get(e);if(t)return t;const s=this.context.traceVariable(e)||this.parent.findVariable(e);return s instanceof Rt&&this.accessedOutsideVariables.set(e,s),s}}const mn={"!":e=>!e,"+":e=>+e,"-":e=>-e,delete:()=>nt,typeof:e=>typeof e,void:()=>{},"~":e=>~e};function gn(e){return null!==e.renderBaseName&&null!==e.exportName&&e.isReassigned}class xn extends Fs{deoptimizePath(){for(const e of this.declarations)e.deoptimizePath(Je)}hasEffectsWhenAssignedAtPath(){return!1}include(e,t){this.included=!0;for(const s of this.declarations)(t||s.shouldBeIncluded(e))&&s.include(e,t)}includeWithAllDeclaredVariables(e,t){this.included=!0;for(const s of this.declarations)s.include(t,e)}initialise(){for(const e of this.declarations)e.declareDeclarator(this.kind)}render(e,t,s=Ks){if(function(e){for(const t of e){if(!t.included)return!1;if("Identifier"===t.id.type){if(t.id.variable.exportName)return!1}else{const e=[];if(t.id.addExportedVariables(e),e.length>0)return!1}}return!0}(this.declarations)){for(const s of this.declarations)s.render(e,t);s.isNoStatement||59===e.original.charCodeAt(this.end-1)||e.appendLeft(this.end,";")}else this.renderReplacedDeclarations(e,t,s)}renderDeclarationEnd(e,t,s,i,n,r,a){59===e.original.charCodeAt(this.end-1)&&e.remove(this.end-1,this.end),r&&(t+=";"),null!==s?(10!==e.original.charCodeAt(i-1)||10!==e.original.charCodeAt(this.end)&&13!==e.original.charCodeAt(this.end)||(i--,13===e.original.charCodeAt(i)&&i--),i===s+1?e.overwrite(s,n,t):(e.overwrite(s,s+1,t),e.remove(i,n))):e.appendLeft(n,t),a.length>0&&e.appendLeft(n," "+Ui(a))}renderReplacedDeclarations(e,t,{start:s=this.start,end:i=this.end,isNoStatement:n}){const r=Ts(this.declarations,e,this.start+this.kind.length,this.end-(59===e.original.charCodeAt(this.end-1)?1:0));let a,o;o=/\n\s*$/.test(e.slice(this.start,r[0].start))?this.start+this.kind.length:r[0].start;let h=o-1;e.remove(this.start,h);let l,c,u=!1,d=!1,p="";const f=[];for(const{node:s,start:i,separator:n,contentEnd:m,end:g}of r)!s.included||s.id instanceof Xs&&gn(s.id.variable)&&null===s.init?e.remove(i,g):(l="",c="",s.id instanceof Xs&&gn(s.id.variable)?(d&&(p+=";"),u=!1):("system"===t.format&&null!==s.init&&("Identifier"!==s.id.type?s.id.addExportedVariables(f):s.id.variable.exportName&&(e.prependLeft(e.original.indexOf("=",s.id.end)+1,` exports('${s.id.variable.safeExportName||s.id.variable.exportName}',`),c+=")")),u?p+=",":(d&&(p+=";"),l+=`${this.kind} `,u=!0)),o===h+1?e.overwrite(h,o,p+l):(e.overwrite(h,h+1,p),e.appendLeft(o,l)),s.render(e,t),a=m,o=g,d=!0,h=n,p=c);d?this.renderDeclarationEnd(e,p,h,a,o,!n,f):e.remove(s,i)}}const yn={ArrayExpression:class extends Fs{bind(){super.bind();for(const e of this.elements)null!==e&&e.deoptimizePath(Ze)}getReturnExpressionWhenCalledAtPath(e){return 1!==e.length?rt:It(Pt,e[0])}hasEffectsWhenAccessedAtPath(e){return e.length>1}hasEffectsWhenCalledAtPath(e,t,s){return 1!==e.length||_t(Pt,e[0],this.included,t,s)}},ArrayPattern:class extends Fs{addExportedVariables(e){for(const t of this.elements)null!==t&&t.addExportedVariables(e)}declare(e){const t=[];for(const s of this.elements)null!==s&&t.push(...s.declare(e,rt));return t}deoptimizePath(e){if(0===e.length)for(const t of this.elements)null!==t&&t.deoptimizePath(e)}hasEffectsWhenAssignedAtPath(e,t){if(e.length>0)return!0;for(const e of this.elements)if(null!==e&&e.hasEffectsWhenAssignedAtPath(Je,t))return!0;return!1}},ArrowFunctionExpression:Wi,AssignmentExpression:class extends Fs{constructor(){super(...arguments),this.deoptimized=!1}hasEffects(e){return this.deoptimized||this.applyDeoptimizations(),this.right.hasEffects(e)||this.left.hasEffects(e)||this.left.hasEffectsWhenAssignedAtPath(Je,e)}hasEffectsWhenAccessedAtPath(e,t){return e.length>0&&this.right.hasEffectsWhenAccessedAtPath(e,t)}include(e,t){this.deoptimized||this.applyDeoptimizations(),this.included=!0,this.left.include(e,t),this.right.include(e,t)}render(e,t){if(this.left.render(e,t),this.right.render(e,t),"system"===t.format)if(this.left.variable&&this.left.variable.exportName){const t=_s(e.original,this.operator,this.left.end),s=this.operator.length>1?` ${this.left.variable.exportName} ${this.operator.slice(0,-1)}`:"";e.overwrite(t,t+this.operator.length,`= exports('${this.left.variable.exportName}',${s}`),e.appendLeft(this.right.end,")")}else if("addExportedVariables"in this.left){const t=[];this.left.addExportedVariables(t),t.length>0&&(e.prependRight(this.start,`function (v) {${Ui(t)} return v;} (`),e.appendLeft(this.end,")"))}}applyDeoptimizations(){this.deoptimized=!0,this.left.deoptimizePath(Je),this.right.deoptimizePath(Ze)}},AssignmentPattern:class extends Fs{addExportedVariables(e){this.left.addExportedVariables(e)}bind(){super.bind(),this.left.deoptimizePath(Je),this.right.deoptimizePath(Ze)}declare(e,t){return this.left.declare(e,t)}deoptimizePath(e){0===e.length&&this.left.deoptimizePath(e)}hasEffectsWhenAssignedAtPath(e,t){return e.length>0||this.left.hasEffectsWhenAssignedAtPath(Je,t)}render(e,t,{isShorthandProperty:s}=Ks){this.left.render(e,t,{isShorthandProperty:s}),this.right.render(e,t)}},AwaitExpression:class extends Fs{hasEffects(e){return!e.ignore.returnAwaitYield||this.argument.hasEffects(e)}include(e,t){if(!this.included){this.included=!0;e:if(!this.context.usesTopLevelAwait){let e=this.parent;do{if(e instanceof Qs||e instanceof Wi)break e}while(e=e.parent);this.context.usesTopLevelAwait=!0}}this.argument.include(e,t)}},BinaryExpression:class extends Fs{deoptimizeCache(){}getLiteralValueAtPath(e,t,s){if(e.length>0)return nt;const i=this.left.getLiteralValueAtPath(Je,t,s);if(i===nt)return nt;const n=this.right.getLiteralValueAtPath(Je,t,s);if(n===nt)return nt;const r=zi[this.operator];return r?r(i,n):nt}hasEffects(e){return"+"===this.operator&&this.parent instanceof Bi&&""===this.left.getLiteralValueAtPath(Je,st,this)||super.hasEffects(e)}hasEffectsWhenAccessedAtPath(e){return e.length>1}},BlockStatement:Fi,BreakStatement:class extends Fs{hasEffects(e){if(this.label){if(!e.ignore.labels.has(this.label.name))return!0;e.includedLabels.add(this.label.name),e.brokenFlow=2}else{if(!e.ignore.breaks)return!0;e.brokenFlow=1}return!1}include(e){this.included=!0,this.label&&(this.label.include(e),e.includedLabels.add(this.label.name)),e.brokenFlow=this.label?2:1}},CallExpression:class extends Fs{constructor(){super(...arguments),this.expressionsToBeDeoptimized=[],this.returnExpression=null,this.wasPathDeoptmizedWhileOptimized=!1}bind(){if(super.bind(),this.callee instanceof Xs){this.scope.findVariable(this.callee.name).isNamespace&&this.context.warn({code:"CANNOT_CALL_NAMESPACE",message:`Cannot call a namespace ('${this.callee.name}')`},this.start),"eval"===this.callee.name&&this.context.warn({code:"EVAL",message:"Use of eval is strongly discouraged, as it poses security risks and may cause issues with minification",url:"https://rollupjs.org/guide/en/#avoiding-eval"},this.start)}this.getReturnExpression(st),this.callee instanceof Hi&&!this.callee.variable&&this.callee.object.deoptimizePath(Ze);for(const e of this.arguments)e.deoptimizePath(Ze)}deoptimizeCache(){if(this.returnExpression!==rt){this.returnExpression=null;const e=this.getReturnExpression(st),t=this.expressionsToBeDeoptimized;e!==rt&&(this.expressionsToBeDeoptimized=[],this.wasPathDeoptmizedWhileOptimized&&(e.deoptimizePath(Ze),this.wasPathDeoptmizedWhileOptimized=!1));for(const e of t)e.deoptimizeCache()}}deoptimizePath(e){if(0===e.length)return;const t=this.context.deoptimizationTracker.getEntities(e);if(t.has(this))return;t.add(this);const s=this.getReturnExpression(st);s!==rt&&(this.wasPathDeoptmizedWhileOptimized=!0,s.deoptimizePath(e))}getLiteralValueAtPath(e,t,s){const i=this.getReturnExpression(t);if(i===rt)return nt;const n=t.getEntities(e);if(n.has(i))return nt;this.expressionsToBeDeoptimized.push(s),n.add(i);const r=i.getLiteralValueAtPath(e,t,s);return n.delete(i),r}getReturnExpressionWhenCalledAtPath(e,t,s){const i=this.getReturnExpression(t);if(this.returnExpression===rt)return rt;const n=t.getEntities(e);if(n.has(i))return rt;this.expressionsToBeDeoptimized.push(s),n.add(i);const r=i.getReturnExpressionWhenCalledAtPath(e,t,s);return n.delete(i),r}hasEffects(e){for(const t of this.arguments)if(t.hasEffects(e))return!0;return(!this.context.annotations||!this.annotatedPure)&&(this.callee.hasEffects(e)||this.callee.hasEffectsWhenCalledAtPath(Je,this.callOptions,e))}hasEffectsWhenAccessedAtPath(e,t){if(0===e.length)return!1;const s=t.accessed.getEntities(e);return!s.has(this)&&(s.add(this),this.returnExpression.hasEffectsWhenAccessedAtPath(e,t))}hasEffectsWhenAssignedAtPath(e,t){if(0===e.length)return!0;const s=t.assigned.getEntities(e);return!s.has(this)&&(s.add(this),this.returnExpression.hasEffectsWhenAssignedAtPath(e,t))}hasEffectsWhenCalledAtPath(e,t,s){const i=(t.withNew?s.instantiated:s.called).getEntities(e);return!i.has(this)&&(i.add(this),this.returnExpression.hasEffectsWhenCalledAtPath(e,t,s))}include(e,t){t?(super.include(e,t),"variables"===t&&this.callee instanceof Xs&&this.callee.variable&&this.callee.variable.markCalledFromTryStatement()):(this.included=!0,this.callee.include(e,!1)),this.callee.includeCallArguments(e,this.arguments),this.returnExpression.included||this.returnExpression.include(e,!1)}initialise(){this.callOptions={args:this.arguments,withNew:!1}}render(e,t,{renderedParentType:s}=Ks){if(this.callee.render(e,t),this.arguments.length>0)if(this.arguments[this.arguments.length-1].included)for(const s of this.arguments)s.render(e,t);else{let s=this.arguments.length-2;for(;s>=0&&!this.arguments[s].included;)s--;if(s>=0){for(let i=0;i<=s;i++)this.arguments[i].render(e,t);e.remove(_s(e.original,",",this.arguments[s].end),this.end-1)}else e.remove(_s(e.original,"(",this.callee.end)+1,this.end-1)}"ExpressionStatement"===s&&"FunctionExpression"===this.callee.type&&(e.appendRight(this.start,"("),e.prependLeft(this.end,")"))}getReturnExpression(e){return null===this.returnExpression?(this.returnExpression=rt,this.returnExpression=this.callee.getReturnExpressionWhenCalledAtPath(Je,e,this)):this.returnExpression}},CatchClause:Ki,ClassBody:class extends Fs{hasEffectsWhenCalledAtPath(e,t,s){return e.length>0||null!==this.classConstructor&&this.classConstructor.hasEffectsWhenCalledAtPath(Je,t,s)}initialise(){for(const e of this.body)if("constructor"===e.kind)return void(this.classConstructor=e);this.classConstructor=null}},ClassDeclaration:Us,ClassExpression:class extends Ws{},ConditionalExpression:class extends Fs{constructor(){super(...arguments),this.expressionsToBeDeoptimized=[],this.isBranchResolutionAnalysed=!1,this.usedBranch=null,this.wasPathDeoptimizedWhileOptimized=!1}bind(){super.bind(),this.getUsedBranch()}deoptimizeCache(){if(null!==this.usedBranch){const e=this.usedBranch===this.consequent?this.alternate:this.consequent;this.usedBranch=null;const t=this.expressionsToBeDeoptimized;this.expressionsToBeDeoptimized=[],this.wasPathDeoptimizedWhileOptimized&&e.deoptimizePath(Ze);for(const e of t)e.deoptimizeCache()}}deoptimizePath(e){if(e.length>0){const t=this.getUsedBranch();null===t?(this.consequent.deoptimizePath(e),this.alternate.deoptimizePath(e)):(this.wasPathDeoptimizedWhileOptimized=!0,t.deoptimizePath(e))}}getLiteralValueAtPath(e,t,s){const i=this.getUsedBranch();return null===i?nt:(this.expressionsToBeDeoptimized.push(s),i.getLiteralValueAtPath(e,t,s))}getReturnExpressionWhenCalledAtPath(e,t,s){const i=this.getUsedBranch();return null===i?new Xi([this.consequent.getReturnExpressionWhenCalledAtPath(e,t,s),this.alternate.getReturnExpressionWhenCalledAtPath(e,t,s)]):(this.expressionsToBeDeoptimized.push(s),i.getReturnExpressionWhenCalledAtPath(e,t,s))}hasEffects(e){return!!this.test.hasEffects(e)||(null===this.usedBranch?this.consequent.hasEffects(e)||this.alternate.hasEffects(e):this.usedBranch.hasEffects(e))}hasEffectsWhenAccessedAtPath(e,t){return 0!==e.length&&(null===this.usedBranch?this.consequent.hasEffectsWhenAccessedAtPath(e,t)||this.alternate.hasEffectsWhenAccessedAtPath(e,t):this.usedBranch.hasEffectsWhenAccessedAtPath(e,t))}hasEffectsWhenAssignedAtPath(e,t){return 0===e.length||(null===this.usedBranch?this.consequent.hasEffectsWhenAssignedAtPath(e,t)||this.alternate.hasEffectsWhenAssignedAtPath(e,t):this.usedBranch.hasEffectsWhenAssignedAtPath(e,t))}hasEffectsWhenCalledAtPath(e,t,s){return null===this.usedBranch?this.consequent.hasEffectsWhenCalledAtPath(e,t,s)||this.alternate.hasEffectsWhenCalledAtPath(e,t,s):this.usedBranch.hasEffectsWhenCalledAtPath(e,t,s)}include(e,t){this.included=!0,t||this.test.shouldBeIncluded(e)||null===this.usedBranch?(this.test.include(e,t),this.consequent.include(e,t),this.alternate.include(e,t)):this.usedBranch.include(e,t)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i,preventASI:n}=Ks){if(this.test.included)super.render(e,t);else{const r=_s(e.original,":",this.consequent.end),a=(this.consequent.included?_s(e.original,"?",this.test.end):r)+1;n&&Rs(e,a,this.usedBranch.start),e.remove(this.start,a),this.consequent.included&&e.remove(r,this.end),ws(this,e),this.usedBranch.render(e,t,{isCalleeOfRenderedParent:s?i:this.parent.callee===this,renderedParentType:s||this.parent.type})}}getUsedBranch(){if(this.isBranchResolutionAnalysed)return this.usedBranch;this.isBranchResolutionAnalysed=!0;const e=this.test.getLiteralValueAtPath(Je,st,this);return e===nt?null:this.usedBranch=e?this.consequent:this.alternate}},ContinueStatement:class extends Fs{hasEffects(e){if(this.label){if(!e.ignore.labels.has(this.label.name))return!0;e.includedLabels.add(this.label.name),e.brokenFlow=2}else{if(!e.ignore.continues)return!0;e.brokenFlow=1}return!1}include(e){this.included=!0,this.label&&(this.label.include(e),e.includedLabels.add(this.label.name)),e.brokenFlow=this.label?2:1}},DoWhileStatement:class extends Fs{hasEffects(e){if(this.test.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s,continues:i}}=e;return e.ignore.breaks=!0,e.ignore.continues=!0,!!this.body.hasEffects(e)||(e.ignore.breaks=s,e.ignore.continues=i,e.brokenFlow=t,!1)}include(e,t){this.included=!0,this.test.include(e,t);const{brokenFlow:s}=e;this.body.include(e,t),e.brokenFlow=s}},EmptyStatement:class extends Fs{hasEffects(){return!1}},ExportAllDeclaration:Oi,ExportDefaultDeclaration:ei,ExportNamedDeclaration:Yi,ExpressionStatement:Bi,ForInStatement:class extends Fs{bind(){this.left.bind(),this.left.deoptimizePath(Je),this.right.bind(),this.body.bind()}createScope(e){this.scope=new Vi(e)}hasEffects(e){if(this.left&&(this.left.hasEffects(e)||this.left.hasEffectsWhenAssignedAtPath(Je,e))||this.right&&this.right.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s,continues:i}}=e;return e.ignore.breaks=!0,e.ignore.continues=!0,!!this.body.hasEffects(e)||(e.ignore.breaks=s,e.ignore.continues=i,e.brokenFlow=t,!1)}include(e,t){this.included=!0,this.left.includeWithAllDeclaredVariables(t,e),this.left.deoptimizePath(Je),this.right.include(e,t);const{brokenFlow:s}=e;this.body.include(e,t),e.brokenFlow=s}render(e,t){this.left.render(e,t,Ns),this.right.render(e,t,Ns),110===e.original.charCodeAt(this.right.start-1)&&e.prependLeft(this.right.start," "),this.body.render(e,t)}},ForOfStatement:class extends Fs{bind(){this.left.bind(),this.left.deoptimizePath(Je),this.right.bind(),this.body.bind()}createScope(e){this.scope=new Vi(e)}hasEffects(){return!0}include(e,t){this.included=!0,this.left.includeWithAllDeclaredVariables(t,e),this.left.deoptimizePath(Je),this.right.include(e,t);const{brokenFlow:s}=e;this.body.include(e,t),e.brokenFlow=s}render(e,t){this.left.render(e,t,Ns),this.right.render(e,t,Ns),102===e.original.charCodeAt(this.right.start-1)&&e.prependLeft(this.right.start," "),this.body.render(e,t)}},ForStatement:class extends Fs{createScope(e){this.scope=new Vi(e)}hasEffects(e){if(this.init&&this.init.hasEffects(e)||this.test&&this.test.hasEffects(e)||this.update&&this.update.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s,continues:i}}=e;return e.ignore.breaks=!0,e.ignore.continues=!0,!!this.body.hasEffects(e)||(e.ignore.breaks=s,e.ignore.continues=i,e.brokenFlow=t,!1)}include(e,t){this.included=!0,this.init&&this.init.include(e,t),this.test&&this.test.include(e,t);const{brokenFlow:s}=e;this.update&&this.update.include(e,t),this.body.include(e,t),e.brokenFlow=s}render(e,t){this.init&&this.init.render(e,t,Ns),this.test&&this.test.render(e,t,Ns),this.update&&this.update.render(e,t,Ns),this.body.render(e,t)}},FunctionDeclaration:Js,FunctionExpression:class extends Qs{},Identifier:Xs,IfStatement:class extends Fs{constructor(){super(...arguments),this.testValue=Qi}deoptimizeCache(){this.testValue=nt}hasEffects(e){if(this.test.hasEffects(e))return!0;const t=this.getTestValue();if(t===nt){const{brokenFlow:t}=e;if(this.consequent.hasEffects(e))return!0;const s=e.brokenFlow;return e.brokenFlow=t,null===this.alternate?!1:!!this.alternate.hasEffects(e)||(e.brokenFlow=e.brokenFlow<s?e.brokenFlow:s,!1)}return t?this.consequent.hasEffects(e):null!==this.alternate&&this.alternate.hasEffects(e)}include(e,t){if(this.included=!0,t)this.includeRecursively(t,e);else{const t=this.getTestValue();t===nt?this.includeUnknownTest(e):this.includeKnownTest(e,t)}}render(e,t){const s=this.getTestValue();if(this.test.included||(s?null!==this.alternate&&this.alternate.included:this.consequent.included))this.test.included?this.test.render(e,t):e.overwrite(this.test.start,this.test.end,s?"true":"false"),this.consequent.included?this.consequent.render(e,t):e.overwrite(this.consequent.start,this.consequent.end,";"),null!==this.alternate&&(this.alternate.included?(101===e.original.charCodeAt(this.alternate.start-1)&&e.prependLeft(this.alternate.start," "),this.alternate.render(e,t)):e.remove(this.consequent.end,this.alternate.end));else{const i=s?this.consequent:this.alternate;e.remove(this.start,i.start),e.remove(i.end,this.end),ws(this,e),i.render(e,t)}}getTestValue(){return this.testValue===Qi?this.testValue=this.test.getLiteralValueAtPath(Je,st,this):this.testValue}includeKnownTest(e,t){this.test.shouldBeIncluded(e)&&this.test.include(e,!1),t&&this.consequent.shouldBeIncluded(e)&&this.consequent.include(e,!1),null!==this.alternate&&!t&&this.alternate.shouldBeIncluded(e)&&this.alternate.include(e,!1)}includeRecursively(e,t){this.test.include(t,e),this.consequent.include(t,e),null!==this.alternate&&this.alternate.include(t,e)}includeUnknownTest(e){this.test.include(e,!1);const{brokenFlow:t}=e;let s=0;this.consequent.shouldBeIncluded(e)&&(this.consequent.include(e,!1),s=e.brokenFlow,e.brokenFlow=t),null!==this.alternate&&this.alternate.shouldBeIncluded(e)&&(this.alternate.include(e,!1),e.brokenFlow=e.brokenFlow<s?e.brokenFlow:s)}},ImportDeclaration:Ji,ImportExpression:class extends Fs{constructor(){super(...arguments),this.inlineNamespace=null,this.exportMode="auto",this.resolution=null}hasEffects(){return!0}include(e,t){this.included||(this.included=!0,this.context.includeDynamicImport(this),this.scope.addAccessedDynamicImport(this)),this.source.include(e,t)}initialise(){this.context.addDynamicImport(this)}render(e,t){if(this.inlineNamespace){const s=t.compact?"":" ",i=t.compact?"":";";return void e.overwrite(this.start,this.end,`Promise.resolve().then(function${s}()${s}{${s}return ${this.inlineNamespace.getName()}${i}${s}})`)}const s=this.getDynamicImportMechanism(t);s&&(e.overwrite(this.start,_s(e.original,"(",this.start+6)+1,s.left),e.overwrite(this.end-1,this.end,s.right)),this.source.render(e,t)}renderFinalResolution(e,t){e.overwrite(this.source.start,this.source.end,t)}setResolution(e,t,s=!1){this.exportMode=e,this.resolution=t,s?this.inlineNamespace=s:(this.scope.addAccessedGlobalsByFormat({amd:["require"],cjs:["require"],system:["module"]}),"auto"===e&&this.scope.addAccessedGlobalsByFormat({amd:["_interopNamespace"],cjs:["_interopNamespace"]}))}getDynamicImportMechanism(e){const t=e.outputPluginDriver.hookFirstSync("renderDynamicImport",[{customResolution:"string"==typeof this.resolution?this.resolution:null,format:e.format,moduleId:this.context.module.id,targetModuleId:this.resolution&&"string"!=typeof this.resolution?this.resolution.id:null}]);if(t)return t;switch(e.format){case"cjs":{const t=e.compact?"":" ",s=e.compact?"c":"resolve";switch(this.exportMode){case"default":return{left:`new Promise(function${t}(${s})${t}{${t}${s}({${t}'default':${t}require(`,right:`)${t}});${t}})`};case"auto":return{left:`new Promise(function${t}(${s})${t}{${t}${s}(_interopNamespace(require(`,right:`)));${t}})`};default:return{left:`new Promise(function${t}(${s})${t}{${t}${s}(require(`,right:`));${t}})`}}}case"amd":{const t=e.compact?"":" ",s=e.compact?"c":"resolve",i=e.compact?"e":"reject";return{left:`new Promise(function${t}(${s},${t}${i})${t}{${t}require([`,right:`],${t}${"default"===this.exportMode?`function${t}(m)${t}{${t}${s}({${t}'default':${t}m${t}});${t}}`:"auto"===this.exportMode?`function${t}(m)${t}{${t}${s}(_interopNamespace(m));${t}}`:s},${t}${i})${t}})`}}case"system":return{left:"module.import(",right:")"};case"es":if(e.dynamicImportFunction)return{left:`${e.dynamicImportFunction}(`,right:")"}}return null}},LabeledStatement:class extends Fs{hasEffects(e){const t=e.brokenFlow;return e.ignore.labels.add(this.label.name),!!this.body.hasEffects(e)||(e.ignore.labels.delete(this.label.name),e.includedLabels.has(this.label.name)&&(e.includedLabels.delete(this.label.name),e.brokenFlow=t),!1)}include(e,t){this.included=!0;const s=e.brokenFlow;this.body.include(e,t),e.includedLabels.has(this.label.name)&&(this.label.include(e),e.includedLabels.delete(this.label.name),e.brokenFlow=s)}render(e,t){this.label.included?this.label.render(e,t):e.remove(this.start,_s(e.original,":",this.label.end)+1),this.body.render(e,t)}},Literal:ji,LogicalExpression:class extends Fs{constructor(){super(...arguments),this.expressionsToBeDeoptimized=[],this.isBranchResolutionAnalysed=!1,this.unusedBranch=null,this.usedBranch=null,this.wasPathDeoptimizedWhileOptimized=!1}bind(){super.bind(),this.getUsedBranch()}deoptimizeCache(){if(null!==this.usedBranch){this.usedBranch=null;const e=this.expressionsToBeDeoptimized;this.expressionsToBeDeoptimized=[],this.wasPathDeoptimizedWhileOptimized&&this.unusedBranch.deoptimizePath(Ze);for(const t of e)t.deoptimizeCache()}}deoptimizePath(e){const t=this.getUsedBranch();null===t?(this.left.deoptimizePath(e),this.right.deoptimizePath(e)):(this.wasPathDeoptimizedWhileOptimized=!0,t.deoptimizePath(e))}getLiteralValueAtPath(e,t,s){const i=this.getUsedBranch();return null===i?nt:(this.expressionsToBeDeoptimized.push(s),i.getLiteralValueAtPath(e,t,s))}getReturnExpressionWhenCalledAtPath(e,t,s){const i=this.getUsedBranch();return null===i?new Xi([this.left.getReturnExpressionWhenCalledAtPath(e,t,s),this.right.getReturnExpressionWhenCalledAtPath(e,t,s)]):(this.expressionsToBeDeoptimized.push(s),i.getReturnExpressionWhenCalledAtPath(e,t,s))}hasEffects(e){return!!this.left.hasEffects(e)||this.usedBranch!==this.left&&this.right.hasEffects(e)}hasEffectsWhenAccessedAtPath(e,t){return 0!==e.length&&(null===this.usedBranch?this.left.hasEffectsWhenAccessedAtPath(e,t)||this.right.hasEffectsWhenAccessedAtPath(e,t):this.usedBranch.hasEffectsWhenAccessedAtPath(e,t))}hasEffectsWhenAssignedAtPath(e,t){return 0===e.length||(null===this.usedBranch?this.left.hasEffectsWhenAssignedAtPath(e,t)||this.right.hasEffectsWhenAssignedAtPath(e,t):this.usedBranch.hasEffectsWhenAssignedAtPath(e,t))}hasEffectsWhenCalledAtPath(e,t,s){return null===this.usedBranch?this.left.hasEffectsWhenCalledAtPath(e,t,s)||this.right.hasEffectsWhenCalledAtPath(e,t,s):this.usedBranch.hasEffectsWhenCalledAtPath(e,t,s)}include(e,t){this.included=!0,t||this.usedBranch===this.right&&this.left.shouldBeIncluded(e)||null===this.usedBranch?(this.left.include(e,t),this.right.include(e,t)):this.usedBranch.include(e,t)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i,preventASI:n}=Ks){if(this.left.included&&this.right.included)super.render(e,t);else{const r=_s(e.original,this.operator,this.left.end);this.right.included?(e.remove(this.start,r+2),n&&Rs(e,r+2,this.right.start)):e.remove(r,this.end),ws(this,e),this.usedBranch.render(e,t,{isCalleeOfRenderedParent:s?i:this.parent.callee===this,renderedParentType:s||this.parent.type})}}getUsedBranch(){if(!this.isBranchResolutionAnalysed){this.isBranchResolutionAnalysed=!0;const e=this.left.getLiteralValueAtPath(Je,st,this);if(e===nt)return null;("||"===this.operator?e:!e)?(this.usedBranch=this.left,this.unusedBranch=this.right):(this.usedBranch=this.right,this.unusedBranch=this.left)}return this.usedBranch}},MemberExpression:Hi,MetaProperty:class extends Fs{hasEffects(){return!1}hasEffectsWhenAccessedAtPath(e){return e.length>1}include(){if(!this.included){this.included=!0;const e=this.parent,t=this.metaProperty=e instanceof Hi&&"string"==typeof e.propertyKey?e.propertyKey:null;t&&(t.startsWith(en)||t.startsWith(Zi)||t.startsWith("ROLLUP_CHUNK_URL_"))?this.scope.addAccessedGlobalsByFormat(sn):this.scope.addAccessedGlobalsByFormat(tn)}}initialise(){"import"===this.meta.name&&this.context.addImportMeta(this)}renderFinalMechanism(e,t,s,i){if(!this.included)return;const n=this.parent,r=this.metaProperty;if(r&&(r.startsWith(en)||r.startsWith(Zi)||r.startsWith("ROLLUP_CHUNK_URL_"))){let a,o=null,h=null,l=null;r.startsWith(en)?(o=r.substr(en.length),a=i.getFileName(o)):r.startsWith(Zi)?(this.context.warnDeprecation(`Using the "${Zi}" prefix to reference files is deprecated. Use the "${en}" prefix instead.`,!0),h=r.substr(Zi.length),a=i.getFileName(h)):(this.context.warnDeprecation(`Using the "ROLLUP_CHUNK_URL_" prefix to reference files is deprecated. Use the "${en}" prefix instead.`,!0),l=r.substr("ROLLUP_CHUNK_URL_".length),a=i.getFileName(l));const c=Ht(Yt(Kt(t),a));let u;return null!==h&&(u=i.hookFirstSync("resolveAssetUrl",[{assetFileName:a,chunkId:t,format:s,moduleId:this.context.module.id,relativeAssetPath:c}])),u||(u=i.hookFirstSync("resolveFileUrl",[{assetReferenceId:h,chunkId:t,chunkReferenceId:l,fileName:a,format:s,moduleId:this.context.module.id,referenceId:o||h||l,relativePath:c}])||hn[s](c)),void e.overwrite(n.start,n.end,u,{contentOnly:!0})}const a=i.hookFirstSync("resolveImportMeta",[r,{chunkId:t,format:s,moduleId:this.context.module.id}])||ln[s]&&ln[s](r,t);"string"==typeof a&&(n instanceof Hi?e.overwrite(n.start,n.end,a,{contentOnly:!0}):e.overwrite(this.start,this.end,a,{contentOnly:!0}))}},MethodDefinition:class extends Fs{hasEffects(e){return this.key.hasEffects(e)}hasEffectsWhenCalledAtPath(e,t,s){return e.length>0||this.value.hasEffectsWhenCalledAtPath(Je,t,s)}},NewExpression:class extends Fs{bind(){super.bind();for(const e of this.arguments)e.deoptimizePath(Ze)}hasEffects(e){for(const t of this.arguments)if(t.hasEffects(e))return!0;return(!this.context.annotations||!this.annotatedPure)&&(this.callee.hasEffects(e)||this.callee.hasEffectsWhenCalledAtPath(Je,this.callOptions,e))}hasEffectsWhenAccessedAtPath(e){return e.length>1}initialise(){this.callOptions={args:this.arguments,withNew:!0}}},ObjectExpression:class extends Fs{constructor(){super(...arguments),this.deoptimizedPaths=new Set,this.expressionsToBeDeoptimized=new Map,this.hasUnknownDeoptimizedProperty=!1,this.propertyMap=null,this.unmatchablePropertiesRead=[],this.unmatchablePropertiesWrite=[]}bind(){super.bind(),this.getPropertyMap()}deoptimizeCache(){this.hasUnknownDeoptimizedProperty||this.deoptimizeAllProperties()}deoptimizePath(e){if(this.hasUnknownDeoptimizedProperty)return;const t=this.getPropertyMap(),s=e[0];if(1===e.length){if("string"!=typeof s)return void this.deoptimizeAllProperties();if(!this.deoptimizedPaths.has(s)){this.deoptimizedPaths.add(s);const e=this.expressionsToBeDeoptimized.get(s);if(e)for(const t of e)t.deoptimizeCache()}}const i=1===e.length?Ze:e.slice(1);for(const e of"string"==typeof s?t[s]?t[s].propertiesRead:[]:this.properties)e.deoptimizePath(i)}getLiteralValueAtPath(e,t,s){const i=this.getPropertyMap(),n=e[0];if(0===e.length||this.hasUnknownDeoptimizedProperty||"string"!=typeof n||this.deoptimizedPaths.has(n))return nt;if(1===e.length&&!i[n]&&!Ct[n]&&0===this.unmatchablePropertiesRead.length){const e=this.expressionsToBeDeoptimized.get(n);return void(e?e.push(s):this.expressionsToBeDeoptimized.set(n,[s]))}if(!i[n]||null===i[n].exactMatchRead||i[n].propertiesRead.length>1)return nt;const r=this.expressionsToBeDeoptimized.get(n);return r?r.push(s):this.expressionsToBeDeoptimized.set(n,[s]),i[n].exactMatchRead.getLiteralValueAtPath(e.slice(1),t,s)}getReturnExpressionWhenCalledAtPath(e,t,s){const i=this.getPropertyMap(),n=e[0];if(0===e.length||this.hasUnknownDeoptimizedProperty||"string"!=typeof n||this.deoptimizedPaths.has(n))return rt;if(1===e.length&&Ct[n]&&0===this.unmatchablePropertiesRead.length&&(!i[n]||null===i[n].exactMatchRead))return It(Ct,n);if(!i[n]||null===i[n].exactMatchRead||i[n].propertiesRead.length>1)return rt;const r=this.expressionsToBeDeoptimized.get(n);return r?r.push(s):this.expressionsToBeDeoptimized.set(n,[s]),i[n].exactMatchRead.getReturnExpressionWhenCalledAtPath(e.slice(1),t,s)}hasEffectsWhenAccessedAtPath(e,t){if(0===e.length)return!1;const s=e[0],i=this.propertyMap;if(e.length>1&&(this.hasUnknownDeoptimizedProperty||"string"!=typeof s||this.deoptimizedPaths.has(s)||!i[s]||null===i[s].exactMatchRead))return!0;const n=e.slice(1);for(const e of"string"!=typeof s?this.properties:i[s]?i[s].propertiesRead:[])if(e.hasEffectsWhenAccessedAtPath(n,t))return!0;return!1}hasEffectsWhenAssignedAtPath(e,t){const s=e[0],i=this.propertyMap;if(e.length>1&&(this.hasUnknownDeoptimizedProperty||this.deoptimizedPaths.has(s)||!i[s]||null===i[s].exactMatchRead))return!0;const n=e.slice(1);for(const r of"string"!=typeof s?this.properties:e.length>1?i[s].propertiesRead:i[s]?i[s].propertiesWrite:[])if(r.hasEffectsWhenAssignedAtPath(n,t))return!0;return!1}hasEffectsWhenCalledAtPath(e,t,s){const i=e[0];if("string"!=typeof i||this.hasUnknownDeoptimizedProperty||this.deoptimizedPaths.has(i)||(this.propertyMap[i]?!this.propertyMap[i].exactMatchRead:e.length>1||!Ct[i]))return!0;const n=e.slice(1);if(this.propertyMap[i])for(const e of this.propertyMap[i].propertiesRead)if(e.hasEffectsWhenCalledAtPath(n,t,s))return!0;return!(1!==e.length||!Ct[i])&&_t(Ct,i,this.included,t,s)}render(e,t,{renderedParentType:s}=Ks){super.render(e,t),"ExpressionStatement"===s&&(e.appendRight(this.start,"("),e.prependLeft(this.end,")"))}deoptimizeAllProperties(){this.hasUnknownDeoptimizedProperty=!0;for(const e of this.properties)e.deoptimizePath(Ze);for(const e of this.expressionsToBeDeoptimized.values())for(const t of e)t.deoptimizeCache()}getPropertyMap(){if(null!==this.propertyMap)return this.propertyMap;const e=this.propertyMap=Object.create(null);for(let t=this.properties.length-1;t>=0;t--){const s=this.properties[t];if(s instanceof cn){this.unmatchablePropertiesRead.push(s);continue}const i="get"!==s.kind,n="set"!==s.kind;let r;if(s.computed){const e=s.key.getLiteralValueAtPath(Je,st,this);if(e===nt){n?this.unmatchablePropertiesRead.push(s):this.unmatchablePropertiesWrite.push(s);continue}r=String(e)}else r=s.key instanceof Xs?s.key.name:String(s.key.value);const a=e[r];a?(n&&null===a.exactMatchRead&&(a.exactMatchRead=s,a.propertiesRead.push(s,...this.unmatchablePropertiesRead)),i&&!n&&null===a.exactMatchWrite&&(a.exactMatchWrite=s,a.propertiesWrite.push(s,...this.unmatchablePropertiesWrite))):e[r]={exactMatchRead:n?s:null,exactMatchWrite:i?s:null,propertiesRead:n?[s,...this.unmatchablePropertiesRead]:[],propertiesWrite:i&&!n?[s,...this.unmatchablePropertiesWrite]:[]}}return e}},ObjectPattern:class extends Fs{addExportedVariables(e){for(const t of this.properties)"Property"===t.type?t.value.addExportedVariables(e):t.argument.addExportedVariables(e)}declare(e,t){const s=[];for(const i of this.properties)s.push(...i.declare(e,t));return s}deoptimizePath(e){if(0===e.length)for(const t of this.properties)t.deoptimizePath(e)}hasEffectsWhenAssignedAtPath(e,t){if(e.length>0)return!0;for(const e of this.properties)if(e.hasEffectsWhenAssignedAtPath(Je,t))return!0;return!1}},Program:un,Property:class extends Fs{constructor(){super(...arguments),this.declarationInit=null,this.returnExpression=null}bind(){super.bind(),"get"===this.kind&&this.getReturnExpression(),null!==this.declarationInit&&this.declarationInit.deoptimizePath([Qe,Qe])}declare(e,t){return this.declarationInit=t,this.value.declare(e,rt)}deoptimizeCache(){}deoptimizePath(e){"get"===this.kind?this.getReturnExpression().deoptimizePath(e):this.value.deoptimizePath(e)}getLiteralValueAtPath(e,t,s){return"get"===this.kind?this.getReturnExpression().getLiteralValueAtPath(e,t,s):this.value.getLiteralValueAtPath(e,t,s)}getReturnExpressionWhenCalledAtPath(e,t,s){return"get"===this.kind?this.getReturnExpression().getReturnExpressionWhenCalledAtPath(e,t,s):this.value.getReturnExpressionWhenCalledAtPath(e,t,s)}hasEffects(e){return this.key.hasEffects(e)||this.value.hasEffects(e)}hasEffectsWhenAccessedAtPath(e,t){if("get"===this.kind){const s=t.accessed.getEntities(e);return!s.has(this)&&(s.add(this),this.value.hasEffectsWhenCalledAtPath(Je,this.accessorCallOptions,t)||e.length>0&&this.returnExpression.hasEffectsWhenAccessedAtPath(e,t))}return this.value.hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){if("get"===this.kind){const s=t.assigned.getEntities(e);return!s.has(this)&&(s.add(this),this.returnExpression.hasEffectsWhenAssignedAtPath(e,t))}if("set"===this.kind){const s=t.assigned.getEntities(e);return!s.has(this)&&(s.add(this),this.value.hasEffectsWhenCalledAtPath(Je,this.accessorCallOptions,t))}return this.value.hasEffectsWhenAssignedAtPath(e,t)}hasEffectsWhenCalledAtPath(e,t,s){if("get"===this.kind){const i=(t.withNew?s.instantiated:s.called).getEntities(e);return!i.has(this)&&(i.add(this),this.returnExpression.hasEffectsWhenCalledAtPath(e,t,s))}return this.value.hasEffectsWhenCalledAtPath(e,t,s)}initialise(){this.accessorCallOptions={args:Ye,withNew:!1}}render(e,t){this.shorthand||this.key.render(e,t),this.value.render(e,t,{isShorthandProperty:this.shorthand})}getReturnExpression(){return null===this.returnExpression?(this.returnExpression=rt,this.returnExpression=this.value.getReturnExpressionWhenCalledAtPath(Je,st,this)):this.returnExpression}},RestElement:Ys,ReturnStatement:class extends Fs{hasEffects(e){return!(e.ignore.returnAwaitYield&&(null===this.argument||!this.argument.hasEffects(e)))||(e.brokenFlow=2,!1)}include(e,t){this.included=!0,this.argument&&this.argument.include(e,t),e.brokenFlow=2}initialise(){this.scope.addReturnExpression(this.argument||rt)}render(e,t){this.argument&&(this.argument.render(e,t,{preventASI:!0}),this.argument.start===this.start+6&&e.prependLeft(this.start+6," "))}},SequenceExpression:class extends Fs{deoptimizePath(e){e.length>0&&this.expressions[this.expressions.length-1].deoptimizePath(e)}getLiteralValueAtPath(e,t,s){return this.expressions[this.expressions.length-1].getLiteralValueAtPath(e,t,s)}hasEffects(e){for(const t of this.expressions)if(t.hasEffects(e))return!0;return!1}hasEffectsWhenAccessedAtPath(e,t){return e.length>0&&this.expressions[this.expressions.length-1].hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){return 0===e.length||this.expressions[this.expressions.length-1].hasEffectsWhenAssignedAtPath(e,t)}hasEffectsWhenCalledAtPath(e,t,s){return this.expressions[this.expressions.length-1].hasEffectsWhenCalledAtPath(e,t,s)}include(e,t){this.included=!0;for(let s=0;s<this.expressions.length-1;s++){const i=this.expressions[s];(t||i.shouldBeIncluded(e))&&i.include(e,t)}this.expressions[this.expressions.length-1].include(e,t)}render(e,t,{renderedParentType:s,isCalleeOfRenderedParent:i,preventASI:n}=Ks){let r=0;for(const{node:a,start:o,end:h}of Ts(this.expressions,e,this.start,this.end))a.included?(r++,1===r&&n&&Rs(e,o,a.start),a===this.expressions[this.expressions.length-1]&&1===r?a.render(e,t,{isCalleeOfRenderedParent:s?i:this.parent.callee===this,renderedParentType:s||this.parent.type}):a.render(e,t)):ks(a,e,o,h)}},SpreadElement:cn,SwitchCase:dn,SwitchStatement:class extends Fs{createScope(e){this.scope=new Vi(e)}hasEffects(e){if(this.discriminant.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s}}=e;let i=1/0;e.ignore.breaks=!0;for(const s of this.cases){if(s.hasEffects(e))return!0;i=e.brokenFlow<i?e.brokenFlow:i,e.brokenFlow=t}return null!==this.defaultCase&&1!==i&&(e.brokenFlow=i),e.ignore.breaks=s,!1}include(e,t){this.included=!0,this.discriminant.include(e,t);const{brokenFlow:s}=e;let i=1/0,n=t||null!==this.defaultCase&&this.defaultCase<this.cases.length-1;for(let r=this.cases.length-1;r>=0;r--){const a=this.cases[r];if(a.included&&(n=!0),!n){const e=Ps();e.ignore.breaks=!0,n=a.hasEffects(e)}n?(a.include(e,t),i=i<e.brokenFlow?i:e.brokenFlow,e.brokenFlow=s):i=s}n&&null!==this.defaultCase&&1!==i&&(e.brokenFlow=i)}initialise(){for(let e=0;e<this.cases.length;e++)if(null===this.cases[e].test)return void(this.defaultCase=e);this.defaultCase=null}render(e,t){this.discriminant.render(e,t),this.cases.length>0&&$s(this.cases,e,this.cases[0].start,this.end-1,t)}},TaggedTemplateExpression:class extends Fs{bind(){if(super.bind(),"Identifier"===this.tag.type){const e=this.tag.name;this.scope.findVariable(e).isNamespace&&this.context.warn({code:"CANNOT_CALL_NAMESPACE",message:`Cannot call a namespace ('${e}')`},this.start),"eval"===e&&this.context.warn({code:"EVAL",message:"Use of eval is strongly discouraged, as it poses security risks and may cause issues with minification",url:"https://rollupjs.org/guide/en/#avoiding-eval"},this.start)}}hasEffects(e){return super.hasEffects(e)||this.tag.hasEffectsWhenCalledAtPath(Je,this.callOptions,e)}initialise(){this.callOptions={args:Ye,withNew:!1}}},TemplateElement:class extends Fs{hasEffects(){return!1}},TemplateLiteral:pn,ThisExpression:class extends Fs{bind(){super.bind(),this.variable=this.scope.findVariable("this")}hasEffectsWhenAccessedAtPath(e,t){return e.length>0&&this.variable.hasEffectsWhenAccessedAtPath(e,t)}hasEffectsWhenAssignedAtPath(e,t){return this.variable.hasEffectsWhenAssignedAtPath(e,t)}initialise(){this.alias=this.scope.findLexicalBoundary()instanceof fn?this.context.moduleContext:null,"undefined"===this.alias&&this.context.warn({code:"THIS_IS_UNDEFINED",message:"The 'this' keyword is equivalent to 'undefined' at the top level of an ES module, and has been rewritten",url:"https://rollupjs.org/guide/en/#error-this-is-undefined"},this.start)}render(e){null!==this.alias&&e.overwrite(this.start,this.end,this.alias,{contentOnly:!1,storeName:!0})}},ThrowStatement:class extends Fs{hasEffects(){return!0}include(e,t){this.included=!0,this.argument.include(e,t),e.brokenFlow=2}render(e,t){this.argument.render(e,t,{preventASI:!0}),this.argument.start===this.start+5&&e.prependLeft(this.start+5," ")}},TryStatement:class extends Fs{constructor(){super(...arguments),this.directlyIncluded=!1}hasEffects(e){return(this.context.tryCatchDeoptimization?this.block.body.length>0:this.block.hasEffects(e))||null!==this.finalizer&&this.finalizer.hasEffects(e)}include(e,t){const{brokenFlow:s}=e;this.directlyIncluded&&this.context.tryCatchDeoptimization||(this.included=!0,this.directlyIncluded=!0,this.block.include(e,this.context.tryCatchDeoptimization?"variables":t),e.brokenFlow=s),null!==this.handler&&(this.handler.include(e,t),e.brokenFlow=s),null!==this.finalizer&&this.finalizer.include(e,t)}},UnaryExpression:class extends Fs{bind(){super.bind(),"delete"===this.operator&&this.argument.deoptimizePath(Je)}getLiteralValueAtPath(e,t,s){if(e.length>0)return nt;const i=this.argument.getLiteralValueAtPath(Je,t,s);return i===nt?nt:mn[this.operator](i)}hasEffects(e){return!("typeof"===this.operator&&this.argument instanceof Xs)&&(this.argument.hasEffects(e)||"delete"===this.operator&&this.argument.hasEffectsWhenAssignedAtPath(Je,e))}hasEffectsWhenAccessedAtPath(e){return"void"===this.operator?e.length>0:e.length>1}},UnknownNode:class extends Fs{hasEffects(){return!0}include(e){super.include(e,!0)}},UpdateExpression:class extends Fs{bind(){if(super.bind(),this.argument.deoptimizePath(Je),this.argument instanceof Xs){this.scope.findVariable(this.argument.name).isReassigned=!0}}hasEffects(e){return this.argument.hasEffects(e)||this.argument.hasEffectsWhenAssignedAtPath(Je,e)}hasEffectsWhenAccessedAtPath(e){return e.length>1}render(e,t){this.argument.render(e,t);const s=this.argument.variable;if("system"===t.format&&s&&s.exportName){const t=s.getName();if(this.prefix)e.overwrite(this.start,this.end,`exports('${s.exportName}', ${this.operator}${t})`);else{let i;switch(this.operator){case"++":i=`${t} + 1`;break;case"--":i=`${t} - 1`}e.overwrite(this.start,this.end,`(exports('${s.exportName}', ${i}), ${t}${this.operator})`)}}}},VariableDeclaration:xn,VariableDeclarator:class extends Fs{declareDeclarator(e){this.id.declare(e,this.init||at)}deoptimizePath(e){this.id.deoptimizePath(e)}render(e,t){null===this.init||this.init.included?super.render(e,t):(e.remove(this.id.end,this.end),this.id.render(e,t))}},WhileStatement:class extends Fs{hasEffects(e){if(this.test.hasEffects(e))return!0;const{brokenFlow:t,ignore:{breaks:s,continues:i}}=e;return e.ignore.breaks=!0,e.ignore.continues=!0,!!this.body.hasEffects(e)||(e.ignore.breaks=s,e.ignore.continues=i,e.brokenFlow=t,!1)}include(e,t){this.included=!0,this.test.include(e,t);const{brokenFlow:s}=e;this.body.include(e,t),e.brokenFlow=s}},YieldExpression:class extends Fs{bind(){super.bind(),null!==this.argument&&this.argument.deoptimizePath(Ze)}hasEffects(e){return!e.ignore.returnAwaitYield||null!==this.argument&&this.argument.hasEffects(e)}render(e,t){this.argument&&(this.argument.render(e,t),this.argument.start===this.start+5&&e.prependLeft(this.start+5," "))}}};class En extends $t{constructor(e,t,s){super(t),this.context=e,this.module=e.module,this.defaultVariable=s,this.setRenderNames(s.getName(),t)}include(e){this.included||(this.included=!0,this.context.includeVariable(e,this.defaultVariable))}}function bn(e,t,s){s(e,t)}function vn(e,t,s){}var Sn={};function An(e,t,s=e.type){let i=t.commentNodes[t.commentIndex];for(;i&&e.start>=i.end;)Cn(e,i),i=t.commentNodes[++t.commentIndex];i&&i.end<=e.end&&Sn[s](e,t,An)}function Cn(e,t){e.annotations?e.annotations.push(t):e.annotations=[t],"ExpressionStatement"===e.type&&(e=e.expression),"CallExpression"!==e.type&&"NewExpression"!==e.type||(e.annotatedPure=!0)}Sn.Program=Sn.BlockStatement=function(e,t,s){for(var i=0,n=e.body;i<n.length;i+=1){s(n[i],t,"Statement")}},Sn.Statement=bn,Sn.EmptyStatement=vn,Sn.ExpressionStatement=Sn.ParenthesizedExpression=function(e,t,s){return s(e.expression,t,"Expression")},Sn.IfStatement=function(e,t,s){s(e.test,t,"Expression"),s(e.consequent,t,"Statement"),e.alternate&&s(e.alternate,t,"Statement")},Sn.LabeledStatement=function(e,t,s){return s(e.body,t,"Statement")},Sn.BreakStatement=Sn.ContinueStatement=vn,Sn.WithStatement=function(e,t,s){s(e.object,t,"Expression"),s(e.body,t,"Statement")},Sn.SwitchStatement=function(e,t,s){s(e.discriminant,t,"Expression");for(var i=0,n=e.cases;i<n.length;i+=1){var r=n[i];r.test&&s(r.test,t,"Expression");for(var a=0,o=r.consequent;a<o.length;a+=1){s(o[a],t,"Statement")}}},Sn.SwitchCase=function(e,t,s){e.test&&s(e.test,t,"Expression");for(var i=0,n=e.consequent;i<n.length;i+=1){s(n[i],t,"Statement")}},Sn.ReturnStatement=Sn.YieldExpression=Sn.AwaitExpression=function(e,t,s){e.argument&&s(e.argument,t,"Expression")},Sn.ThrowStatement=Sn.SpreadElement=function(e,t,s){return s(e.argument,t,"Expression")},Sn.TryStatement=function(e,t,s){s(e.block,t,"Statement"),e.handler&&s(e.handler,t),e.finalizer&&s(e.finalizer,t,"Statement")},Sn.CatchClause=function(e,t,s){e.param&&s(e.param,t,"Pattern"),s(e.body,t,"Statement")},Sn.WhileStatement=Sn.DoWhileStatement=function(e,t,s){s(e.test,t,"Expression"),s(e.body,t,"Statement")},Sn.ForStatement=function(e,t,s){e.init&&s(e.init,t,"ForInit"),e.test&&s(e.test,t,"Expression"),e.update&&s(e.update,t,"Expression"),s(e.body,t,"Statement")},Sn.ForInStatement=Sn.ForOfStatement=function(e,t,s){s(e.left,t,"ForInit"),s(e.right,t,"Expression"),s(e.body,t,"Statement")},Sn.ForInit=function(e,t,s){"VariableDeclaration"===e.type?s(e,t):s(e,t,"Expression")},Sn.DebuggerStatement=vn,Sn.FunctionDeclaration=function(e,t,s){return s(e,t,"Function")},Sn.VariableDeclaration=function(e,t,s){for(var i=0,n=e.declarations;i<n.length;i+=1){s(n[i],t)}},Sn.VariableDeclarator=function(e,t,s){s(e.id,t,"Pattern"),e.init&&s(e.init,t,"Expression")},Sn.Function=function(e,t,s){e.id&&s(e.id,t,"Pattern");for(var i=0,n=e.params;i<n.length;i+=1){s(n[i],t,"Pattern")}s(e.body,t,e.expression?"Expression":"Statement")},Sn.Pattern=function(e,t,s){"Identifier"===e.type?s(e,t,"VariablePattern"):"MemberExpression"===e.type?s(e,t,"MemberPattern"):s(e,t)},Sn.VariablePattern=vn,Sn.MemberPattern=bn,Sn.RestElement=function(e,t,s){return s(e.argument,t,"Pattern")},Sn.ArrayPattern=function(e,t,s){for(var i=0,n=e.elements;i<n.length;i+=1){var r=n[i];r&&s(r,t,"Pattern")}},Sn.ObjectPattern=function(e,t,s){for(var i=0,n=e.properties;i<n.length;i+=1){var r=n[i];"Property"===r.type?(r.computed&&s(r.key,t,"Expression"),s(r.value,t,"Pattern")):"RestElement"===r.type&&s(r.argument,t,"Pattern")}},Sn.Expression=bn,Sn.ThisExpression=Sn.Super=Sn.MetaProperty=vn,Sn.ArrayExpression=function(e,t,s){for(var i=0,n=e.elements;i<n.length;i+=1){var r=n[i];r&&s(r,t,"Expression")}},Sn.ObjectExpression=function(e,t,s){for(var i=0,n=e.properties;i<n.length;i+=1){s(n[i],t)}},Sn.FunctionExpression=Sn.ArrowFunctionExpression=Sn.FunctionDeclaration,Sn.SequenceExpression=function(e,t,s){for(var i=0,n=e.expressions;i<n.length;i+=1){s(n[i],t,"Expression")}},Sn.TemplateLiteral=function(e,t,s){for(var i=0,n=e.quasis;i<n.length;i+=1){s(n[i],t)}for(var r=0,a=e.expressions;r<a.length;r+=1){s(a[r],t,"Expression")}},Sn.TemplateElement=vn,Sn.UnaryExpression=Sn.UpdateExpression=function(e,t,s){s(e.argument,t,"Expression")},Sn.BinaryExpression=Sn.LogicalExpression=function(e,t,s){s(e.left,t,"Expression"),s(e.right,t,"Expression")},Sn.AssignmentExpression=Sn.AssignmentPattern=function(e,t,s){s(e.left,t,"Pattern"),s(e.right,t,"Expression")},Sn.ConditionalExpression=function(e,t,s){s(e.test,t,"Expression"),s(e.consequent,t,"Expression"),s(e.alternate,t,"Expression")},Sn.NewExpression=Sn.CallExpression=function(e,t,s){if(s(e.callee,t,"Expression"),e.arguments)for(var i=0,n=e.arguments;i<n.length;i+=1){s(n[i],t,"Expression")}},Sn.MemberExpression=function(e,t,s){s(e.object,t,"Expression"),e.computed&&s(e.property,t,"Expression")},Sn.ExportNamedDeclaration=Sn.ExportDefaultDeclaration=function(e,t,s){e.declaration&&s(e.declaration,t,"ExportNamedDeclaration"===e.type||e.declaration.id?"Statement":"Expression"),e.source&&s(e.source,t,"Expression")},Sn.ExportAllDeclaration=function(e,t,s){s(e.source,t,"Expression")},Sn.ImportDeclaration=function(e,t,s){for(var i=0,n=e.specifiers;i<n.length;i+=1){s(n[i],t)}s(e.source,t,"Expression")},Sn.ImportExpression=function(e,t,s){s(e.source,t,"Expression")},Sn.ImportSpecifier=Sn.ImportDefaultSpecifier=Sn.ImportNamespaceSpecifier=Sn.Identifier=Sn.Literal=vn,Sn.TaggedTemplateExpression=function(e,t,s){s(e.tag,t,"Expression"),s(e.quasi,t,"Expression")},Sn.ClassDeclaration=Sn.ClassExpression=function(e,t,s){return s(e,t,"Class")},Sn.Class=function(e,t,s){e.id&&s(e.id,t,"Pattern"),e.superClass&&s(e.superClass,t,"Expression"),s(e.body,t)},Sn.ClassBody=function(e,t,s){for(var i=0,n=e.body;i<n.length;i+=1){s(n[i],t)}},Sn.MethodDefinition=Sn.Property=function(e,t,s){e.computed&&s(e.key,t,"Expression"),s(e.value,t,"Expression")};const Pn=/[@#]__PURE__/,kn=e=>Pn.test(e.text);let wn="sourceMa";wn+="ppingURL";const Nn=new RegExp("^#\\s+sourceMappingURL=.+\\n?"),_n=()=>{};let In=()=>[0,0],$n=()=>0,Tn=()=>0,Rn={};function Ln(e,t){switch(t){case 1:return`# ${e}`;case 2:return`## ${e}`;case 3:return e;default:return`${"  ".repeat(t-4)}- ${e}`}}function Mn(e,t=3){e=Ln(e,t),Rn.hasOwnProperty(e)||(Rn[e]={memory:0,startMemory:void 0,startTime:void 0,time:0,totalMemory:0});const s=Tn();Rn[e].startTime=In(),Rn[e].startMemory=s}function Dn(e,t=3){if(e=Ln(e,t),Rn.hasOwnProperty(e)){const t=Tn();Rn[e].time+=$n(Rn[e].startTime),Rn[e].totalMemory=Math.max(Rn[e].totalMemory,t),Rn[e].memory+=t-Rn[e].startMemory}}function On(){const e={};for(const t of Object.keys(Rn))e[t]=[Rn[t].time,Rn[t].memory,Rn[t].totalMemory];return e}let Vn=_n,Bn=_n;const Fn={load:!0,resolveDynamicImport:!0,resolveId:!0,transform:!0};function Wn(e,t){const s={};for(const i of Object.keys(e))if(!0===Fn[i]){let n=`plugin ${t}`;e.name&&(n+=` (${e.name})`),n+=` - ${i}`,s[i]=function(){Vn(n,4);const t=e[i].apply(this===s?e:this,arguments);return Bn(n,4),t&&"function"==typeof t.then&&(Vn(`${n} (async)`,4),t.then(()=>Bn(`${n} (async)`,4))),t}}else s[i]=e[i];return s}function Un(e){e.perf?(Rn={},"undefined"!=typeof process&&"function"==typeof process.hrtime?(In=process.hrtime.bind(process),$n=e=>{return 1e3*(t=process.hrtime(e))[0]+t[1]/1e6;var t}):"undefined"!=typeof performance&&"function"==typeof performance.now&&(In=()=>[performance.now(),0],$n=e=>performance.now()-e[0]),"undefined"!=typeof process&&"function"==typeof process.memoryUsage&&(Tn=()=>process.memoryUsage().heapUsed),Vn=Mn,Bn=Dn,e.plugins=e.plugins.map(Wn)):(Vn=_n,Bn=_n)}const zn={ecmaVersion:2020,preserveParens:!1,sourceType:"module"};function jn(e,t,s,i){return t.error({code:"MISSING_EXPORT",message:`'${e}' is not exported by ${xi(s)}, imported by ${xi(t.id)}`,url:"https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module"},i)}const Gn={identifier:null,localName:"_missingExportShim"};function Hn(e,t,s,i=new Map){const n=i.get(t);if(n){if(n.has(e))return null;n.add(e)}else i.set(t,new Set([e]));return e.getVariableForExportName(t,s,i)}class qn{constructor(e,t,s,i,n){this.chunk=null,this.chunkFileNames=new Set,this.chunkName=null,this.comments=[],this.dependencies=new Set,this.dynamicallyImportedBy=[],this.dynamicDependencies=new Set,this.dynamicImports=[],this.execIndex=1/0,this.exportAllSources=new Set,this.exports=Object.create(null),this.exportsAll=Object.create(null),this.facadeChunk=null,this.importDescriptions=Object.create(null),this.importMetas=[],this.imports=new Set,this.isExecuted=!1,this.isUserDefinedEntryPoint=!1,this.manualChunkAlias=null,this.reexportDescriptions=Object.create(null),this.sources=new Set,this.userChunkNames=new Set,this.usesTopLevelAwait=!1,this.allExportNames=null,this.defaultExport=null,this.exportAllModules=[],this.exportShimVariable=new si(this),this.namespaceVariable=null,this.relevantDependencies=null,this.syntheticExports=new Map,this.transformDependencies=[],this.transitiveReexports=null,this.id=t,this.graph=e,this.excludeFromSourcemap=/\0/.test(t),this.context=e.getModuleContext(t),this.moduleSideEffects=s,this.syntheticNamedExports=i,this.isEntryPoint=n}basename(){const e=qt(this.id),t=Xt(this.id);return Wt(t?e.slice(0,-t.length):e)}bindReferences(){this.ast.bind()}error(e,t){if("number"==typeof t){e.pos=t;let s=Vs(this.code,t,{offsetLine:1});try{s=function(e,t){const s=e.filter(e=>e.mappings);for(;s.length>0;){const e=s.pop(),i=e.mappings[t.line-1];let n=!1;if(void 0!==i)for(const s of i)if(s[0]>=t.column){if(1===s.length)break;t={column:s[3],line:s[2]+1,name:5===s.length?e.names[s[4]]:void 0,source:e.sources[s[1]]},n=!0;break}if(!n)throw new Error("Can't resolve original location of error.")}return t}(this.sourcemapChain,s)}catch(e){this.warn({code:"SOURCEMAP_ERROR",loc:{column:s.column,file:this.id,line:s.line},message:`Error when using sourcemap for reporting an error: ${e.message}`,pos:t})}e.loc={column:s.column,file:this.id,line:s.line},e.frame=fi(this.originalCode,s.line,s.column)}return Ei(e)}getAllExportNames(){if(this.allExportNames)return this.allExportNames;const e=this.allExportNames=new Set;for(const t of Object.keys(this.exports))e.add(t);for(const t of Object.keys(this.reexportDescriptions))e.add(t);for(const t of this.exportAllModules)if(t instanceof Jt)e.add(`*${t.id}`);else for(const s of t.getAllExportNames())"default"!==s&&e.add(s);return e}getDefaultExport(){return null===this.defaultExport&&(this.defaultExport=void 0,this.defaultExport=this.getVariableForExportName("default")),this.defaultExport?this.defaultExport:Ei({code:vi.SYNTHETIC_NAMED_EXPORTS_NEED_DEFAULT,id:this.id,message:"Modules with 'syntheticNamedExports' need a default export."})}getDependenciesToBeIncluded(){if(this.relevantDependencies)return this.relevantDependencies;const e=new Set;for(const t of this.imports)e.add(t.module);if(this.isEntryPoint||this.dynamicallyImportedBy.length>0||this.graph.preserveModules)for(const t of[...this.getReexports(),...this.getExports()])e.add(this.getVariableForExportName(t).module);if(this.graph.treeshakingOptions){const t=new Set(this.dependencies);for(const s of t)if(s.moduleSideEffects&&!e.has(s))if(s instanceof Jt||s.ast.included&&s.ast.hasEffects(Ps()))e.add(s);else for(const e of s.dependencies)t.add(e)}else for(const t of this.dependencies)e.add(t);return this.relevantDependencies=e}getDynamicImportExpressions(){return this.dynamicImports.map(({node:e})=>{const t=e.source;return t instanceof pn&&1===t.quasis.length&&t.quasis[0].value.cooked?t.quasis[0].value.cooked:t instanceof ji&&"string"==typeof t.value?t.value:t})}getExportNamesByVariable(){const e=new Map;for(const t of this.getAllExportNames()){const s=this.getVariableForExportName(t);if(!s||!(s.included||s instanceof Mt))continue;const i=e.get(s);i?i.push(t):e.set(s,[t])}return e}getExports(){return Object.keys(this.exports)}getOrCreateNamespace(){return this.namespaceVariable||(this.namespaceVariable=new ii(this.astContext,this.syntheticNamedExports),this.namespaceVariable.initialise()),this.namespaceVariable}getReexports(){if(this.transitiveReexports)return this.transitiveReexports;this.transitiveReexports=[];const e=new Set;for(const t in this.reexportDescriptions)e.add(t);for(const t of this.exportAllModules)if(t instanceof Jt)e.add(`*${t.id}`);else for(const s of[...t.getReexports(),...t.getExports()])"default"!==s&&e.add(s);return this.transitiveReexports=Array.from(e)}getRenderedExports(){const e=[],t=[];for(const s in this.exports){const i=this.getVariableForExportName(s);(i&&i.included?e:t).push(s)}return{renderedExports:e,removedExports:t}}getVariableForExportName(e,t,s){if("*"===e[0]){if(1===e.length)return this.getOrCreateNamespace();return this.graph.moduleById.get(e.slice(1)).getVariableForExportName("*")}const i=this.reexportDescriptions[e];if(i){const e=Hn(i.module,i.localName,!1,s);return e||jn(i.localName,this,i.module.id,i.start)}const n=this.exports[e];if(n){if(n===Gn)return this.exportShimVariable;const e=n.localName;return this.traceVariable(e)||this.graph.scope.findVariable(e)}if("default"!==e)for(const t of this.exportAllModules){const i=Hn(t,e,!0,s);if(i)return i}if(!t){if(this.syntheticNamedExports){let t=this.syntheticExports.get(e);if(!t){const s=this.getDefaultExport();return t=new En(this.astContext,e,s),this.syntheticExports.set(e,t),t}return t}if(this.graph.shimMissingExports)return this.shimMissingExport(e),this.exportShimVariable}return null}include(){const e=Cs();this.ast.shouldBeIncluded(e)&&this.ast.include(e,!1)}includeAllExports(){this.isExecuted||(this.graph.needsTreeshakingPass=!0,Zt(this));const e=Cs();for(const t of this.getExports()){const s=this.getVariableForExportName(t);s.deoptimizePath(Ze),s.included||(s.include(e),this.graph.needsTreeshakingPass=!0)}for(const t of this.getReexports()){const s=this.getVariableForExportName(t);s.deoptimizePath(Ze),s.included||(s.include(e),this.graph.needsTreeshakingPass=!0),s instanceof Mt&&(s.module.reexported=!0)}}includeAllInBundle(){this.ast.include(Cs(),!0)}isIncluded(){return this.ast.included||this.namespaceVariable&&this.namespaceVariable.included}linkDependencies(){for(const e of this.sources)this.dependencies.add(this.graph.moduleById.get(this.resolvedIds[e].id));for(const{resolution:e}of this.dynamicImports)(e instanceof qn||e instanceof Jt)&&this.dynamicDependencies.add(e);this.addModulesToImportDescriptions(this.importDescriptions),this.addModulesToImportDescriptions(this.reexportDescriptions);const e=[];for(const t of this.exportAllSources){const s=this.graph.moduleById.get(this.resolvedIds[t].id);(s instanceof Jt?e:this.exportAllModules).push(s)}this.exportAllModules=[...this.exportAllModules,...e]}render(e){const t=this.magicString.clone();return this.ast.render(t,e),this.usesTopLevelAwait=this.astContext.usesTopLevelAwait,t}setSource({alwaysRemovedCode:e,ast:t,code:s,customTransformCache:i,moduleSideEffects:n,originalCode:r,originalSourcemap:a,resolvedIds:o,sourcemapChain:h,syntheticNamedExports:l,transformDependencies:c,transformFiles:u}){if(this.code=s,this.originalCode=r,this.originalSourcemap=a,this.sourcemapChain=h,u&&(this.transformFiles=u),this.transformDependencies=c,this.customTransformCache=i,"boolean"==typeof n&&(this.moduleSideEffects=n),"boolean"==typeof l&&(this.syntheticNamedExports=l),Vn("generate ast",3),this.alwaysRemovedCode=e||[],t)this.esTreeAst=t;else{this.esTreeAst=function(e,t,s){try{return t.parse(e.code,{...zn,...s,onComment:(t,s,i,n)=>e.comments.push({block:t,text:s,start:i,end:n})})}catch(t){let s=t.message.replace(/ \(\d+:\d+\)$/,"");return e.id.endsWith(".json")?s+=" (Note that you need @rollup/plugin-json to import JSON files)":e.id.endsWith(".js")||(s+=" (Note that you need plugins to import files that are not JavaScript)"),e.error({code:"PARSE_ERROR",message:s,parserError:t},t.pos)}}(this,this.graph.acornParser,this.graph.acornOptions);for(const e of this.comments)!e.block&&Nn.test(e.text)&&this.alwaysRemovedCode.push([e.start,e.end]);d=this.comments,An(this.esTreeAst,{commentIndex:0,commentNodes:d.filter(kn)})}var d;Bn("generate ast",3),this.resolvedIds=o||Object.create(null);const p=this.id;this.magicString=new bs(s,{filename:this.excludeFromSourcemap?null:p,indentExclusionRanges:[]});for(const[e,t]of this.alwaysRemovedCode)this.magicString.remove(e,t);Vn("analyse ast",3),this.astContext={addDynamicImport:this.addDynamicImport.bind(this),addExport:this.addExport.bind(this),addImport:this.addImport.bind(this),addImportMeta:this.addImportMeta.bind(this),annotations:this.graph.treeshakingOptions&&this.graph.treeshakingOptions.annotations,code:s,deoptimizationTracker:this.graph.deoptimizationTracker,error:this.error.bind(this),fileName:p,getExports:this.getExports.bind(this),getModuleExecIndex:()=>this.execIndex,getModuleName:this.basename.bind(this),getReexports:this.getReexports.bind(this),importDescriptions:this.importDescriptions,includeAndGetReexportedExternalNamespaces:this.includeAndGetReexportedExternalNamespaces.bind(this),includeDynamicImport:this.includeDynamicImport.bind(this),includeVariable:this.includeVariable.bind(this),magicString:this.magicString,module:this,moduleContext:this.context,nodeConstructors:yn,preserveModules:this.graph.preserveModules,propertyReadSideEffects:!this.graph.treeshakingOptions||this.graph.treeshakingOptions.propertyReadSideEffects,traceExport:this.getVariableForExportName.bind(this),traceVariable:this.traceVariable.bind(this),treeshake:!!this.graph.treeshakingOptions,tryCatchDeoptimization:!this.graph.treeshakingOptions||this.graph.treeshakingOptions.tryCatchDeoptimization,unknownGlobalSideEffects:!this.graph.treeshakingOptions||this.graph.treeshakingOptions.unknownGlobalSideEffects,usesTopLevelAwait:!1,warn:this.warn.bind(this),warnDeprecation:this.graph.warnDeprecation.bind(this.graph)},this.scope=new fn(this.graph.scope,this.astContext),this.ast=new un(this.esTreeAst,{type:"Module",context:this.astContext},this.scope),Bn("analyse ast",3)}toJSON(){return{alwaysRemovedCode:this.alwaysRemovedCode,ast:this.esTreeAst,code:this.code,customTransformCache:this.customTransformCache,dependencies:Array.from(this.dependencies).map(e=>e.id),id:this.id,moduleSideEffects:this.moduleSideEffects,originalCode:this.originalCode,originalSourcemap:this.originalSourcemap,resolvedIds:this.resolvedIds,sourcemapChain:this.sourcemapChain,syntheticNamedExports:this.syntheticNamedExports,transformDependencies:this.transformDependencies,transformFiles:this.transformFiles}}traceVariable(e){const t=this.scope.variables.get(e);if(t)return t;if(e in this.importDescriptions){const t=this.importDescriptions[e],s=t.module;if(s instanceof qn&&"*"===t.name)return s.getOrCreateNamespace();const i=s.getVariableForExportName(t.name);return i||jn(t.name,this,s.id,t.start)}return null}warn(e,t){if("number"==typeof t){e.pos=t;const{line:s,column:i}=Vs(this.code,t,{offsetLine:1});e.loc={file:this.id,line:s,column:i},e.frame=fi(this.code,s,i)}e.id=this.id,this.graph.warn(e)}addDynamicImport(e){this.dynamicImports.push({node:e,resolution:null})}addExport(e){if(e instanceof ei)this.exports.default={identifier:e.variable.getAssignedVariableName(),localName:"default"};else if(e instanceof Oi){const t=e.source.value;this.sources.add(t),this.exportAllSources.add(t)}else if(e.source instanceof ji){const t=e.source.value;this.sources.add(t);for(const s of e.specifiers){const e=s.exported.name;this.reexportDescriptions[e]={localName:"ExportNamespaceSpecifier"===s.type?"*":s.local.name,module:null,source:t,start:s.start}}}else if(e.declaration){const t=e.declaration;if(t instanceof xn)for(const e of t.declarations)for(const t of Di(e.id))this.exports[t]={identifier:null,localName:t};else{const e=t.id.name;this.exports[e]={identifier:null,localName:e}}}else for(const t of e.specifiers){const e=t.local.name,s=t.exported.name;this.exports[s]={identifier:null,localName:e}}}addImport(e){const t=e.source.value;this.sources.add(t);for(const s of e.specifiers){const e="ImportDefaultSpecifier"===s.type,i="ImportNamespaceSpecifier"===s.type,n=e?"default":i?"*":s.imported.name;this.importDescriptions[s.local.name]={module:null,name:n,source:t,start:s.start}}}addImportMeta(e){this.importMetas.push(e)}addModulesToImportDescriptions(e){for(const t of Object.keys(e)){const s=e[t],i=this.resolvedIds[s.source].id;s.module=this.graph.moduleById.get(i)}}includeAndGetReexportedExternalNamespaces(){const e=[];for(const t of this.exportAllModules)if(t instanceof Jt){const s=t.getVariableForExportName("*");s.include(),this.imports.add(s),e.push(s)}return e}includeDynamicImport(e){const t=this.dynamicImports.find(t=>t.node===e).resolution;t instanceof qn&&(t.dynamicallyImportedBy.push(this),t.includeAllExports())}includeVariable(e,t){const s=t.module;t.included||(t.include(e),this.graph.needsTreeshakingPass=!0),s&&s!==this&&this.imports.add(t)}shimMissingExport(e){this.graph.warn({code:"SHIMMED_EXPORT",exporter:xi(this.id),exportName:e,message:`Missing export "${e}" has been shimmed in module ${xi(this.id)}.`}),this.exports[e]=Gn}}class Kn{constructor(e,t){this.isOriginal=!0,this.filename=e,this.content=t}traceSegment(e,t,s){return{line:e,column:t,name:s,source:this}}}class Xn{constructor(e,t){this.sources=t,this.names=e.names,this.mappings=e.mappings}traceMappings(){const e=[],t=[],s=[],i=[];for(const n of this.mappings){const r=[];for(const i of n){if(1==i.length)continue;const n=this.sources[i[1]];if(!n)continue;const a=n.traceSegment(i[2],i[3],5===i.length?this.names[i[4]]:"");if(a){let n=e.lastIndexOf(a.source.filename);if(-1===n)n=e.length,e.push(a.source.filename),t[n]=a.source.content;else if(null==t[n])t[n]=a.source.content;else if(null!=a.source.content&&t[n]!==a.source.content)return Ei({message:`Multiple conflicting contents for sourcemap source ${a.source.filename}`});const o=[i[0],n,a.line,a.column];if(a.name){let e=s.indexOf(a.name);-1===e&&(e=s.length,s.push(a.name)),o[4]=e}r.push(o)}}i.push(r)}return{sources:e,sourcesContent:t,names:s,mappings:i}}traceSegment(e,t,s){const i=this.mappings[e];if(!i)return null;let n=0,r=i.length-1;for(;n<=r;){const e=n+r>>1,a=i[e];if(a[0]===t){if(1==a.length)return null;const e=this.sources[a[1]];return e?e.traceSegment(a[2],a[3],5===a.length?this.names[a[4]]:s):null}a[0]>t?r=e-1:n=e+1}return null}}function Yn(e){return function(t,s){return s.mappings?new Xn(s,[t]):(e.warn({code:"SOURCEMAP_BROKEN",message:`Sourcemap is likely to be incorrect: a plugin (${s.plugin}) was used to transform `+"files, but didn't generate a sourcemap for the transformation. Consult the plugin documentation for help",plugin:s.plugin,url:"https://rollupjs.org/guide/en/#warning-sourcemap-is-likely-to-be-incorrect"}),new Xn({mappings:[],names:[]},[t]))}}function Qn(e,t,s,i,n){let r;if(s){const t=s.sources,i=s.sourcesContent||[],n=Kt(e)||".",a=s.sourceRoot||".",o=t.map((e,t)=>new Kn(Qt(n,a,e),i[t]));r=new Xn(s,o)}else r=new Kn(e,t);return i.reduce(n,r)}var Jn=Zn;function Zn(e,t){if(!e)throw new Error(t||"Assertion failed")}function er(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function tr(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function sr(e){return 1===e.length?"0"+e:e}function ir(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}Zn.equal=function(e,t,s){if(e!=t)throw new Error(s||"Assertion failed: "+e+" != "+t)};var nr={inherits:function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var s=function(){};s.prototype=t.prototype,e.prototype=new s,e.prototype.constructor=e}}})),toArray:function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var s=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),n=0;n<e.length;n+=2)s.push(parseInt(e[n]+e[n+1],16))}else for(var i=0,n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?s[i++]=r:r<2048?(s[i++]=r>>6|192,s[i++]=63&r|128):er(e,n)?(r=65536+((1023&r)<<10)+(1023&e.charCodeAt(++n)),s[i++]=r>>18|240,s[i++]=r>>12&63|128,s[i++]=r>>6&63|128,s[i++]=63&r|128):(s[i++]=r>>12|224,s[i++]=r>>6&63|128,s[i++]=63&r|128)}else for(n=0;n<e.length;n++)s[n]=0|e[n];return s},toHex:function(e){for(var t="",s=0;s<e.length;s++)t+=sr(e[s].toString(16));return t},htonl:tr,toHex32:function(e,t){for(var s="",i=0;i<e.length;i++){var n=e[i];"little"===t&&(n=tr(n)),s+=ir(n.toString(16))}return s},zero2:sr,zero8:ir,join32:function(e,t,s,i){var n=s-t;Jn(n%4==0);for(var r=new Array(n/4),a=0,o=t;a<r.length;a++,o+=4){var h;h="big"===i?e[o]<<24|e[o+1]<<16|e[o+2]<<8|e[o+3]:e[o+3]<<24|e[o+2]<<16|e[o+1]<<8|e[o],r[a]=h>>>0}return r},split32:function(e,t){for(var s=new Array(4*e.length),i=0,n=0;i<e.length;i++,n+=4){var r=e[i];"big"===t?(s[n]=r>>>24,s[n+1]=r>>>16&255,s[n+2]=r>>>8&255,s[n+3]=255&r):(s[n+3]=r>>>24,s[n+2]=r>>>16&255,s[n+1]=r>>>8&255,s[n]=255&r)}return s},rotr32:function(e,t){return e>>>t|e<<32-t},rotl32:function(e,t){return e<<t|e>>>32-t},sum32:function(e,t){return e+t>>>0},sum32_3:function(e,t,s){return e+t+s>>>0},sum32_4:function(e,t,s,i){return e+t+s+i>>>0},sum32_5:function(e,t,s,i,n){return e+t+s+i+n>>>0},sum64:function(e,t,s,i){var n=e[t],r=i+e[t+1]>>>0,a=(r<i?1:0)+s+n;e[t]=a>>>0,e[t+1]=r},sum64_hi:function(e,t,s,i){return(t+i>>>0<t?1:0)+e+s>>>0},sum64_lo:function(e,t,s,i){return t+i>>>0},sum64_4_hi:function(e,t,s,i,n,r,a,o){var h=0,l=t;return h+=(l=l+i>>>0)<t?1:0,h+=(l=l+r>>>0)<r?1:0,e+s+n+a+(h+=(l=l+o>>>0)<o?1:0)>>>0},sum64_4_lo:function(e,t,s,i,n,r,a,o){return t+i+r+o>>>0},sum64_5_hi:function(e,t,s,i,n,r,a,o,h,l){var c=0,u=t;return c+=(u=u+i>>>0)<t?1:0,c+=(u=u+r>>>0)<r?1:0,c+=(u=u+o>>>0)<o?1:0,e+s+n+a+h+(c+=(u=u+l>>>0)<l?1:0)>>>0},sum64_5_lo:function(e,t,s,i,n,r,a,o,h,l){return t+i+r+o+l>>>0},rotr64_hi:function(e,t,s){return(t<<32-s|e>>>s)>>>0},rotr64_lo:function(e,t,s){return(e<<32-s|t>>>s)>>>0},shr64_hi:function(e,t,s){return e>>>s},shr64_lo:function(e,t,s){return(e<<32-s|t>>>s)>>>0}};function rr(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}var ar=rr;rr.prototype.update=function(e,t){if(e=nr.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var s=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-s,e.length),0===this.pending.length&&(this.pending=null),e=nr.join32(e,0,e.length-s,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},rr.prototype.digest=function(e){return this.update(this._pad()),Jn(null===this.pending),this._digest(e)},rr.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,s=t-(e+this.padLength)%t,i=new Array(s+this.padLength);i[0]=128;for(var n=1;n<s;n++)i[n]=0;if(e<<=3,"big"===this.endian){for(var r=8;r<this.padLength;r++)i[n++]=0;i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=e>>>24&255,i[n++]=e>>>16&255,i[n++]=e>>>8&255,i[n++]=255&e}else for(i[n++]=255&e,i[n++]=e>>>8&255,i[n++]=e>>>16&255,i[n++]=e>>>24&255,i[n++]=0,i[n++]=0,i[n++]=0,i[n++]=0,r=8;r<this.padLength;r++)i[n++]=0;return i};var or={BlockHash:ar},hr=nr.rotr32;function lr(e,t,s){return e&t^~e&s}function cr(e,t,s){return e&t^e&s^t&s}function ur(e,t,s){return e^t^s}var dr={ft_1:function(e,t,s,i){return 0===e?lr(t,s,i):1===e||3===e?ur(t,s,i):2===e?cr(t,s,i):void 0},ch32:lr,maj32:cr,p32:ur,s0_256:function(e){return hr(e,2)^hr(e,13)^hr(e,22)},s1_256:function(e){return hr(e,6)^hr(e,11)^hr(e,25)},g0_256:function(e){return hr(e,7)^hr(e,18)^e>>>3},g1_256:function(e){return hr(e,17)^hr(e,19)^e>>>10}},pr=nr.sum32,fr=nr.sum32_4,mr=nr.sum32_5,gr=dr.ch32,xr=dr.maj32,yr=dr.s0_256,Er=dr.s1_256,br=dr.g0_256,vr=dr.g1_256,Sr=or.BlockHash,Ar=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Cr(){if(!(this instanceof Cr))return new Cr;Sr.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Ar,this.W=new Array(64)}nr.inherits(Cr,Sr);var Pr=Cr;Cr.blockSize=512,Cr.outSize=256,Cr.hmacStrength=192,Cr.padLength=64,Cr.prototype._update=function(e,t){for(var s=this.W,i=0;i<16;i++)s[i]=e[t+i];for(;i<s.length;i++)s[i]=fr(vr(s[i-2]),s[i-7],br(s[i-15]),s[i-16]);var n=this.h[0],r=this.h[1],a=this.h[2],o=this.h[3],h=this.h[4],l=this.h[5],c=this.h[6],u=this.h[7];for(Jn(this.k.length===s.length),i=0;i<s.length;i++){var d=mr(u,Er(h),gr(h,l,c),this.k[i],s[i]),p=pr(yr(n),xr(n,r,a));u=c,c=l,l=h,h=pr(o,d),o=a,a=r,r=n,n=pr(d,p)}this.h[0]=pr(this.h[0],n),this.h[1]=pr(this.h[1],r),this.h[2]=pr(this.h[2],a),this.h[3]=pr(this.h[3],o),this.h[4]=pr(this.h[4],h),this.h[5]=pr(this.h[5],l),this.h[6]=pr(this.h[6],c),this.h[7]=pr(this.h[7],u)},Cr.prototype._digest=function(e){return"hex"===e?nr.toHex32(this.h,"big"):nr.split32(this.h,"big")};const kr=()=>Pr(),wr={amd:Ir,cjs:Ir,es:function(e,t,s,i,n){if(n)for(const t of s)t.variableName=Ds(t.variableName,e);_r(e,t,s,i)},iife:Ir,system:_r,umd:Ir};function Nr(e,t,s,i,n,r,a){for(const t of e)t.scope.addUsedOutsideNames(i,n);!function(e,t){for(const s of t){for(const t of s.scope.variables.values())t.included&&!(t.renderBaseName||t instanceof ti&&t.getOriginalVariable()!==t)&&t.setRenderNames(null,Ds(t.name,e));const t=s.getOrCreateNamespace();t.included&&t.setRenderNames(null,Ds(t.name,e))}}(i,e),wr[n](i,s,t,r,a);for(const t of e)t.scope.deconflict(n)}function _r(e,t,s,i){for(const s of t){const t=s.module,n=s.name;let r;r=t instanceof Jt&&("*"===n||"default"===n)?"default"===n&&i&&t.exportsNamespace?t.variableName+"__default":t.variableName:n,s.setRenderNames(null,Ds(r,e))}}function Ir(e,t,s,i,n){for(const t of s)t.variableName=Ds(t.variableName,e);for(const e of t){const t=e.module;if(t instanceof Jt){const s=e.name;"default"===s&&i&&(t.exportsNamespace||t.exportsNames)?e.setRenderNames(null,t.variableName+"__default"):"*"===s||"default"===s?e.setRenderNames(null,t.variableName):e.setRenderNames(t.variableName,null)}else{const s=t.chunk;"default"===s.exportMode||n&&e.isNamespace?e.setRenderNames(null,s.variableName):e.setRenderNames(s.variableName,s.getVariableExportName(e))}}}const $r=(e,t)=>e.execIndex>t.execIndex?1:-1;function Tr(e){e.sort($r)}function Rr(e,t,s){const i=[xi(e.id)];let n=t;for(;n!==e;)i.push(xi(n.id)),n=s.get(n);return i.push(i[0]),i.reverse(),i}function Lr(e){const t=e.split("\n"),s=t.filter(e=>/^\t+/.test(e)),i=t.filter(e=>/^ {2,}/.test(e));if(0===s.length&&0===i.length)return null;if(s.length>=i.length)return"\t";const n=i.reduce((e,t)=>{const s=/^ +/.exec(t)[0].length;return Math.min(s,e)},1/0);return new Array(n+1).join(" ")}function Mr(e){if(!e)return null;if("string"==typeof e&&(e=JSON.parse(e)),""===e.mappings)return{mappings:[],names:[],sources:[],version:3};let t;return t="string"==typeof e.mappings?function(e){for(var t=[],s=[],i=[0,0,0,0,0],n=0,r=0,a=0,o=0;r<e.length;r++){var h=e.charCodeAt(r);if(44===h)as(s,i,n),n=0;else if(59===h)as(s,i,n),n=0,t.push(s),s=[],i[0]=0;else{var l=is[h];if(void 0===l)throw new Error("Invalid character ("+String.fromCharCode(h)+")");var c=32&l;if(o+=(l&=31)<<a,c)a+=5;else{var u=1&o;o>>>=1,u&&(o=0===o?-2147483648:-o),i[n]+=o,n++,o=a=0}}}return as(s,i,n),t.push(s),t}(e.mappings):e.mappings,{...e,mappings:t}}function Dr(e,t,s){return yi(e)?e.replace(/\[(\w+)\]/g,(e,i)=>{if(!s.hasOwnProperty(i))return Ei(Ci(`"[${i}]" is not a valid placeholder in "${t}" pattern.`));const n=s[i]();return yi(n)?n:Ei(Ci(`Invalid substitution "${n}" for placeholder "[${i}]" in "${t}" pattern, can be neither absolute nor relative path.`))}):Ei(Ci(`Invalid pattern "${e}" for "${t}", patterns can be neither absolute nor relative paths and must not contain invalid characters.`))}function Or(e,t){const s=new Set(Object.keys(t).map(e=>e.toLowerCase()));if(!s.has(e.toLocaleLowerCase()))return e;const i=Xt(e);e=e.substr(0,e.length-i.length);let n,r=1;for(;s.has((n=e+ ++r+i).toLowerCase()););return n}const Vr=[".js",".jsx",".ts",".tsx"];function Br(e,t,s,i){let n;return"function"==typeof t?n=t(e.id):t&&(n=t[e.id]),n||(i?(s.warn({code:"MISSING_GLOBAL_NAME",guess:e.variableName,message:`No name was provided for external module '${e.id}' in output.globals – guessing '${e.variableName}'`,source:e.id}),e.variableName):void 0)}class Fr{constructor(e,t){this.entryModules=[],this.exportMode="named",this.facadeModule=null,this.id=null,this.indentString=void 0,this.manualChunkAlias=null,this.usedModules=void 0,this.variableName="chunk",this.dependencies=new Set,this.dynamicDependencies=new Set,this.exportNames=Object.create(null),this.exports=new Set,this.fileName=null,this.imports=new Set,this.isEmpty=!0,this.name=null,this.needsExportsShim=!1,this.renderedDependencies=null,this.renderedExports=null,this.renderedHash=void 0,this.renderedModuleSources=new Map,this.renderedSource=null,this.sortedExportNames=null,this.graph=e,this.orderedModules=t,this.execIndex=t.length>0?t[0].execIndex:1/0;for(const e of t)this.isEmpty&&e.isIncluded()&&(this.isEmpty=!1),e.manualChunkAlias&&(this.manualChunkAlias=e.manualChunkAlias),e.chunk=this,(e.isEntryPoint||e.dynamicallyImportedBy.some(e=>-1===t.indexOf(e)))&&this.entryModules.push(e);const s=this.entryModules[0]||this.orderedModules[this.orderedModules.length-1];s&&(this.variableName=Wt(qt(s.chunkName||s.manualChunkAlias||gi(s.id))))}static generateFacade(e,t,s){const i=new Fr(e,[]);i.assignFacadeName(s,t),t.facadeChunk||(t.facadeChunk=i),i.dependencies.add(t.chunk),i.facadeModule=t;for(const e of t.getAllExportNames()){const s=t.getVariableForExportName(e);i.exports.add(s),i.exportNames[e]=s}return i}canModuleBeFacade(e){for(const t of this.exports)if(!e.has(t))return!1;return!0}generateFacades(){const e=[];for(const t of this.entryModules){const s=Array.from(t.userChunkNames).map(e=>({name:e}));if(0===s.length&&t.isUserDefinedEntryPoint&&s.push({}),s.push(...Array.from(t.chunkFileNames).map(e=>({fileName:e}))),0===s.length&&s.push({}),!this.facadeModule){const e=t.getExportNamesByVariable();if(this.graph.preserveModules||this.canModuleBeFacade(e)){this.facadeModule=t,t.facadeChunk=this;for(const[t,s]of e)for(const e of s)this.exportNames[e]=t;this.assignFacadeName(s.shift(),t)}}for(const i of s)e.push(Fr.generateFacade(this.graph,t,i))}return e}generateId(e,t,s,i,n){if(null!==this.fileName)return this.fileName;const[r,a]=this.facadeModule&&this.facadeModule.isUserDefinedEntryPoint?[t.entryFileNames||"[name].js","output.entryFileNames"]:[t.chunkFileNames||"[name]-[hash].js","output.chunkFileNames"];return Or(Dr(r,a,{format:()=>t.format,hash:()=>i?this.computeContentHashWithDependencies(e,t,s,n):"[hash]",name:()=>this.getChunkName()}),s)}generateIdPreserveModules(e,t,s){const i=this.orderedModules[0].id,n=mi(i);let r;if(jt(i)){const s=Xt(i),a=Dr(t.entryFileNames||(Vr.includes(s)?"[name].js":"[name][extname].js"),"output.entryFileNames",{ext:()=>s.substr(1),extname:()=>s,format:()=>t.format,name:()=>this.getChunkName()});r=As(e,`${Kt(n)}/${a}`)}else r=`_virtual/${qt(n)}`;return Or(Ht(r),s)}generateInternalExports(e){if(null!==this.facadeModule)return;const t="system"===e.format||"es"===e.format||e.compact;let s,i=0;if(this.exportNames=Object.create(null),this.sortedExportNames=null,t)for(const e of this.exports){const t=e.name[0];if(this.exportNames[t]){do{s=Ls(++i),49===s.charCodeAt(0)&&(i+=9*64**(s.length-1),s=Ls(i))}while(Ms[s]||this.exportNames[s]);this.exportNames[s]=e}else this.exportNames[t]=e}else for(const e of this.exports){for(i=0,s=e.name;this.exportNames[s];)s=e.name+"$"+ ++i;this.exportNames[s]=e}}getChunkName(){return this.name||(this.name=mi(this.getFallbackChunkName()))}getDynamicImportIds(){return[...this.dynamicDependencies].map(e=>e.id)}getExportNames(){return this.sortedExportNames||(this.sortedExportNames=Object.keys(this.exportNames).sort())}getImportIds(){return[...this.dependencies].map(e=>e.id)}getRenderedHash(e){if(this.renderedHash)return this.renderedHash;const t=kr(),s=e.hookReduceValueSync("augmentChunkHash","",[this.getPrerenderedChunk()],(e,t)=>(t&&(e+=t),e));return t.update(s),t.update(this.renderedSource.toString()),t.update(this.getExportNames().map(e=>{const t=this.exportNames[e];return`${xi(t.module.id).replace(/\\/g,"/")}:${t.name}:${e}`}).join(",")),this.renderedHash=t.digest("hex")}getVariableExportName(e){if(this.graph.preserveModules&&e instanceof ii)return"*";for(const t of Object.keys(this.exportNames))if(this.exportNames[t]===e)return t;throw new Error(`Internal Error: Could not find export name for variable ${e.name}.`)}link(){for(const e of this.orderedModules)this.addDependenciesToChunk(e.getDependenciesToBeIncluded(),this.dependencies),this.addDependenciesToChunk(e.dynamicDependencies,this.dynamicDependencies),this.setUpChunkImportsAndExportsForModule(e)}preRender(e,t,s){Vn("render modules",3);const i=new Ss({separator:e.compact?"":"\n\n"});this.usedModules=[],this.indentString=e.compact?"":function(e,t){if(!0!==t.indent)return t.indent||"";for(let t=0;t<e.length;t++){const s=Lr(e[t].originalCode);if(null!==s)return s}return"\t"}(this.orderedModules,e);const n=e.compact?"":"\n",r=e.compact?"":" ",a={compact:e.compact,dynamicImportFunction:e.dynamicImportFunction,format:e.format,freeze:!1!==e.freeze,indent:this.indentString,namespaceToStringTag:!0===e.namespaceToStringTag,outputPluginDriver:s,varOrConst:e.preferConst?"const":"var"};if(!1!==e.hoistTransitiveImports&&!this.graph.preserveModules&&null!==this.facadeModule)for(const e of this.dependencies)e instanceof Fr&&this.inlineChunkDependencies(e);const o=[...this.dependencies];Tr(o),this.dependencies=new Set(o),this.prepareDynamicImports(),this.setIdentifierRenderResolutions(e);let h="";const l=this.renderedModules=Object.create(null);for(const t of this.orderedModules){let s=0;if(t.isIncluded()){const r=t.render(a).trim();s=r.length(),s&&(e.compact&&-1!==r.lastLine().indexOf("//")&&r.append("\n"),this.renderedModuleSources.set(t,r),i.addSource(r),this.usedModules.push(t));const o=t.getOrCreateNamespace();if(o.included&&!this.graph.preserveModules){const e=o.renderBlock(a);o.renderFirst()?h+=n+e:i.addSource(new bs(e))}}const{renderedExports:r,removedExports:o}=t.getRenderedExports();l[t.id]={originalLength:t.originalCode.length,removedExports:o,renderedExports:r,renderedLength:s}}if(h&&i.prepend(h+n+n),this.needsExportsShim&&i.prepend(`${n}${a.varOrConst} _missingExportShim${r}=${r}void 0;${n}${n}`),e.compact?this.renderedSource=i:this.renderedSource=i.trim(),this.renderedHash=void 0,this.isEmpty&&0===this.getExportNames().length&&0===this.dependencies.size){const e=this.getChunkName();this.graph.warn({chunkName:e,code:"EMPTY_BUNDLE",message:`Generated an empty chunk: "${e}"`})}this.setExternalRenderPaths(e,t),this.renderedDependencies=this.getChunkDependencyDeclarations(e),this.renderedExports="none"===this.exportMode?[]:this.getChunkExportDeclarations(),Bn("render modules",3)}render(e,t,s,i){Vn("render format",3);const n=this.id,r=e.format,a=Li[r];e.dynamicImportFunction&&"es"!==r&&this.graph.warn({code:"INVALID_OPTION",message:'"output.dynamicImportFunction" is ignored for formats other than "es".'});for(const e of this.dependencies){if(e instanceof Jt&&!e.renormalizeRenderPath)continue;const t=this.renderedDependencies.get(e),s=e instanceof Jt?t.id:e.id;e instanceof Fr&&(t.namedExportsMode="default"!==e.exportMode),t.id=this.getRelativePath(s,!1)}this.finaliseDynamicImports("amd"===r),this.finaliseImportMetas(r,i);const o=0!==this.renderedExports.length||[...this.renderedDependencies.values()].some(e=>e.reexports&&0!==e.reexports.length);let h=!1;const l=new Set;for(const e of this.orderedModules){e.usesTopLevelAwait&&(h=!0);const t=e.scope.accessedGlobalVariablesByFormat,s=t&&t.get(r);if(s)for(const e of s)l.add(e)}if(h&&"es"!==r&&"system"!==r)return Ei({code:"INVALID_TLA_FORMAT",message:`Module format ${r} does not support top-level await. Use the "es" or "system" output formats rather.`});const c=a(this.renderedSource,{accessedGlobals:l,dependencies:[...this.renderedDependencies.values()],exports:this.renderedExports,hasExports:o,indentString:this.indentString,intro:t.intro,isEntryModuleFacade:this.graph.preserveModules||null!==this.facadeModule&&this.facadeModule.isEntryPoint,namedExportsMode:"default"!==this.exportMode,outro:t.outro,usesTopLevelAwait:h,varOrConst:e.preferConst?"const":"var",warn:this.graph.warn.bind(this.graph)},e);t.banner&&c.prepend(t.banner),t.footer&&c.append(t.footer);const u=c.toString();Bn("render format",3);let d=null;const p=[];return function({code:e,options:t,outputPluginDriver:s,renderChunk:i,sourcemapChain:n}){return s.hookReduceArg0("renderChunk",[e,i,t],(e,t,s)=>{if(null==t)return e;if("string"==typeof t&&(t={code:t,map:void 0}),null!==t.map){const e=Mr(t.map);n.push(e||{missing:!0,plugin:s.name})}return t.code})}({code:u,options:e,outputPluginDriver:i,renderChunk:s,sourcemapChain:p}).then(t=>{if(e.sourcemap){let t;Vn("sourcemap",3),t=e.file?Qt(e.sourcemapFile||e.file):e.dir?Qt(e.dir,n):Qt(n);const s=c.generateDecodedMap({});d=function(e,t,s,i,n,r){const a=Yn(e),o=i.filter(e=>!e.excludeFromSourcemap).map(e=>Qn(e.id,e.originalCode,e.originalSourcemap,e.sourcemapChain,a));let h=new Xn(s,o);h=n.reduce(a,h);let{sources:l,sourcesContent:c,names:u,mappings:d}=h.traceMappings();if(t){const e=Kt(t);l=l.map(t=>Yt(e,t)),t=qt(t)}return c=r?null:c,new us({file:t,sources:l,sourcesContent:c,names:u,mappings:d})}(this.graph,t,s,this.usedModules,p,e.sourcemapExcludeSources),d.sources=d.sources.map(t=>Ht(e.sourcemapPathTransform?e.sourcemapPathTransform(t):t)),Bn("sourcemap",3)}return!0!==e.compact&&"\n"!==t[t.length-1]&&(t+="\n"),{code:t,map:d}})}addDependenciesToChunk(e,t){for(const s of e)s instanceof qn?s.chunk&&s.chunk!==this&&t.add(s.chunk):t.add(s)}assignFacadeName({fileName:e,name:t},s){e?this.fileName=e:this.name=mi(t||s.chunkName||gi(s.id))}computeContentHashWithDependencies(e,t,s,i){const n=kr();n.update([e.intro,e.outro,e.banner,e.footer].map(e=>e||"").join(":")),n.update(t.format);const r=new Set([this]);for(const a of r)if(a instanceof Jt?n.update(":"+a.renderPath):(n.update(a.getRenderedHash(i)),n.update(a.generateId(e,t,s,!1,i))),!(a instanceof Jt))for(const e of[...a.dependencies,...a.dynamicDependencies])r.add(e);return n.digest("hex").substr(0,8)}finaliseDynamicImports(e){for(const[t,s]of this.renderedModuleSources)for(const{node:i,resolution:n}of t.dynamicImports){if(!n||!i.included||n instanceof qn&&n.chunk===this)continue;const t=n instanceof qn?`'${this.getRelativePath(n.facadeChunk.id,e)}'`:n instanceof Jt?`'${n.renormalizeRenderPath?this.getRelativePath(n.renderPath,e):n.id}'`:n;i.renderFinalResolution(s,t)}}finaliseImportMetas(e,t){for(const[s,i]of this.renderedModuleSources)for(const n of s.importMetas)n.renderFinalMechanism(i,this.id,e,t)}getChunkDependencyDeclarations(e){const t=new Map;for(let s of this.getExportNames()){let i,n,r=!1;if("*"===s[0])r=!1!==e.externalLiveBindings,i=this.graph.moduleById.get(s.substr(1)),n=s="*";else{const t=this.exportNames[s],a=t.module;if(!a||a.chunk===this)continue;a instanceof qn?(i=a.chunk,n=i.getVariableExportName(t),r=t.isReassigned):(i=a,n=t.name,r=!1!==e.externalLiveBindings)}let a=t.get(i);a||t.set(i,a=[]),a.push({imported:n,reexported:s,needsLiveBinding:r})}const s=new Set,i=new Map;for(const n of this.dependencies){const r=[];for(const e of this.imports){const t=e instanceof ti?e.getOriginalVariable():e;(e.module instanceof qn?e.module.chunk!==n:e.module!==n)||s.has(t)||(s.add(t),r.push({imported:e.module instanceof Jt?e.name:e.module.chunk.getVariableExportName(e),local:e.getName()}))}const a=t.get(n);let o,h,l=!0;n instanceof Jt?(o=n.exportsNames||n.exportsNamespace,h="default"in n.declarations):(o=!0,h=!1,l="default"!==n.exportMode);let c=void 0,u=void 0;n instanceof Jt&&(c=n.renderPath,"umd"!==e.format&&"iife"!==e.format||(u=Br(n,e.globals,this.graph,o||h))),i.set(n,{exportsDefault:h,exportsNames:o,globalName:u,id:c,imports:r.length>0?r:null,isChunk:n instanceof Fr,name:n.variableName,namedExportsMode:l,reexports:a})}return i}getChunkExportDeclarations(){const e=[];for(const t of this.getExportNames()){if("*"===t[0])continue;const s=this.exportNames[t],i=s.module;if(i&&i.chunk!==this)continue;let n=!1,r=!1;if(s instanceof es){s.init===at&&(r=!0);for(const e of s.declarations)if(e.parent instanceof Js||e instanceof ei&&e.declaration instanceof Js){n=!0;break}}e.push({exported:t,hoisted:n,local:s.getName(),uninitialized:r})}return e}getFallbackChunkName(){return this.manualChunkAlias?this.manualChunkAlias:this.fileName?gi(this.fileName):gi(this.orderedModules[this.orderedModules.length-1].id)}getPrerenderedChunk(){const e=this.facadeModule,t=this.getChunkName.bind(this);return{dynamicImports:this.getDynamicImportIds(),exports:this.getExportNames(),facadeModuleId:e&&e.id,imports:this.getImportIds(),isDynamicEntry:null!==e&&e.dynamicallyImportedBy.length>0,isEntry:null!==e&&e.isEntryPoint,modules:this.renderedModules,get name(){return t()}}}getRelativePath(e,t){let s=Ht(As(Kt(this.id),e));return t&&s.endsWith(".js")&&(s=s.slice(0,-3)),s.startsWith("../")?s:"./"+s}inlineChunkDependencies(e){for(const t of e.dependencies)t instanceof Jt?this.dependencies.add(t):(this.dependencies.add(t),this.inlineChunkDependencies(t))}prepareDynamicImports(){for(const e of this.orderedModules)for(const{node:t,resolution:s}of e.dynamicImports)if(t.included)if(s instanceof qn)if(s.chunk===this){const e=s.getOrCreateNamespace();t.setResolution("named",s,e)}else t.setResolution(s.chunk.exportMode,s);else t.setResolution("auto",s)}setExternalRenderPaths(e,t){for(const s of[...this.dependencies,...this.dynamicDependencies])s instanceof Jt&&s.setRenderPath(e,t)}setIdentifierRenderResolutions(e){for(const t of this.getExportNames()){const s=this.exportNames[t];s instanceof si&&(this.needsExportsShim=!0),s.exportName=t,"es"!==e.format&&"system"!==e.format&&s.isReassigned&&!s.isId?s.setRenderNames("exports",t):s.setRenderNames(null,null)}const t=new Set;this.needsExportsShim&&t.add("_missingExportShim"),"es"!==e.format&&(t.add("exports"),"cjs"===e.format&&t.add("_interopDefault").add("require").add("module").add("__filename").add("__dirname")),Nr(this.orderedModules,this.dependencies,this.imports,t,e.format,!1!==e.interop,this.graph.preserveModules)}setUpChunkImportsAndExportsForModule(e){for(const t of e.imports)t.module.chunk!==this&&(this.imports.add(t),t.module instanceof qn&&t.module.chunk.exports.add(t));if(e.isEntryPoint||e.dynamicallyImportedBy.some(e=>e.chunk!==this)){const t=e.getExportNamesByVariable();for(const e of t.keys()){this.exports.add(e);const t=e.module;t&&t.chunk&&t.chunk!==this&&t.chunk.exports.add(e)}}if(e.getOrCreateNamespace().included)for(const t of Object.keys(e.reexportDescriptions)){const s=e.reexportDescriptions[t],i=s.module.getVariableForExportName(s.localName);i.module.chunk!==this&&(this.imports.add(i),i.module.chunk.exports.add(i))}const t=Cs();for(const{node:s,resolution:i}of e.dynamicImports)s.included&&i instanceof qn&&i.chunk===this&&i.getOrCreateNamespace().include(t)}}const Wr=e=>(...t)=>{throw Object.assign(new Error(`Cannot access the file system (via "fs.${e}") when using the browser build of Rollup. Make sure you supply a plugin with custom resolveId and load hooks to Rollup.`),{code:"NO_FS_IN_BROWSER",url:"https://rollupjs.org/guide/en/#a-simple-example"})},Ur=Wr("lstatSync"),zr=Wr("readdirSync"),jr=Wr("readFile"),Gr=Wr("realpathSync"),Hr=Wr("writeFile");async function qr(e,t,s,i,n){const r=await i.hookFirst("resolveId",[e,t],null,n);return null!=r?r:void 0===t||jt(e)||"."===e[0]?function(e,t){let s=Kr(e,t);return s||(s=Kr(e+".mjs",t),s||(s=Kr(e+".js",t),s))}(Qt(t?Kt(t):Qt(),e),s):null}function Kr(e,t){try{const s=Ur(e);if(!t&&s.isSymbolicLink())return Kr(Gr(e),t);if(t&&s.isSymbolicLink()||s.isFile()){const t=qt(e);if(-1!==zr(Kt(e)).indexOf(t))return e}}catch(e){}}function Xr(e,t,{hook:s,id:i}={}){return"string"==typeof e&&(e={message:e}),e.code&&e.code!==vi.PLUGIN_ERROR&&(e.pluginCode=e.code),e.code=vi.PLUGIN_ERROR,e.plugin=t,s&&(e.hook=s),i&&(e.id=i),Ei(e)}const Yr=[{active:!0,deprecated:"resolveAssetUrl",replacement:"resolveFileUrl"}];const Qr={has:()=>!1,get(){},set(){},delete:()=>!1};function Jr(e){return e.startsWith("at position ")||e.startsWith("at output position ")?Ei({code:"ANONYMOUS_PLUGIN_CACHE",message:"A plugin is trying to use the Rollup cache but is not declaring a plugin name or cacheKey."}):Ei({code:"DUPLICATE_PLUGIN_NAME",message:`The plugin name ${e} is being used twice in the same build. Plugin names must be distinct or provide a cacheKey (please post an issue to the plugin if you are a plugin user).`})}function Zr(e,t,s){const i=s.id,n=[];let r=null===t.map?null:Mr(t.map);const a=t.code;let o=t.ast;const h=[],l=[];let c=!1;const u=()=>c=!0;let d,p=null,f=null;const m=t.code;return e.pluginDriver.hookReduceArg0("transform",[m,i],(function(e,t,s){if("string"==typeof t)t={ast:void 0,code:t,map:void 0};else{if(!t||"object"!=typeof t)return e;"string"==typeof t.map&&(t.map=JSON.parse(t.map)),"boolean"==typeof t.moduleSideEffects&&(p=t.moduleSideEffects),"boolean"==typeof t.syntheticNamedExports&&(f=t.syntheticNamedExports)}if(null!==t.map){const e=Mr(t.map);n.push(e||{missing:!0,plugin:s.name})}return o=t.ast,t.code}),(t,s)=>{return d=s,{...t,cache:c?t.cache:(o=t.cache,p=u,{has:e=>(p(),o.has(e)),get:e=>(p(),o.get(e)),set:(e,t)=>(p(),o.set(e,t)),delete:e=>(p(),o.delete(e))}),warn(e,s){"string"==typeof e&&(e={message:e}),s&&bi(e,s,m,i),e.id=i,e.hook="transform",t.warn(e)},error:(e,s)=>("string"==typeof e&&(e={message:e}),s&&bi(e,s,m,i),e.id=i,e.hook="transform",t.error(e)),emitAsset(t,s){const i={type:"asset",name:t,source:s};return l.push({...i}),e.pluginDriver.emitFile(i)},emitChunk(t,s){const i={type:"chunk",id:t,name:s&&s.name};return l.push({...i}),e.pluginDriver.emitFile(i)},emitFile:t=>(l.push(t),e.pluginDriver.emitFile(t)),addWatchFile(e){h.push(e),t.addWatchFile(e)},setAssetSource(){return this.error({code:"INVALID_SETASSETSOURCE",message:"setAssetSource cannot be called in transform for caching reasons. Use emitFile with a source, or call setAssetSource in another hook."})},getCombinedSourcemap(){const t=function(e,t,s,i,n){return n.length?{version:3,...Qn(t,s,i,n,Yn(e)).traceMappings()}:i}(e,i,a,r,n);if(!t){return new bs(a).generateMap({includeContent:!0,hires:!0,source:i})}return r!==t&&(r=t,n.length=0),new us({...t,file:null,sourcesContent:t.sourcesContent})}};var o,p}).catch(e=>Xr(e,d.name,{hook:"transform",id:i})).then(e=>(c||l.length&&(s.transformFiles=l),{ast:o,code:e,customTransformCache:c,moduleSideEffects:p,originalCode:a,originalSourcemap:r,sourcemapChain:n,syntheticNamedExports:f,transformDependencies:h}))}function ea(e,t){return Gt(e)?t?Qt(t,"..",e):Qt(e):e}function ta(e){if(!0===e)return()=>!0;if("function"==typeof e)return(t,...s)=>!t.startsWith("\0")&&e(t,...s)||!1;if(e){const t=new Set(Array.isArray(e)?e:e?[e]:[]);return e=>t.has(e)}return()=>!1}function sa(e,t,s){if("boolean"==typeof e)return()=>e;if("no-external"===e)return(e,t)=>!t;if("function"==typeof e)return(t,s)=>!!t.startsWith("\0")||!1!==e(t,s);if(Array.isArray(e)){const t=new Set(e);return e=>t.has(e)}var i,n;e&&s.warn((i="treeshake.moduleSideEffects",n='please use one of false, "no-external", a function or an array',{code:vi.INVALID_OPTION,message:`Invalid value for option "${i}" - ${n}.`}));const r=ta(t);return(e,t)=>!(t&&r(e))}class ia{constructor(e,t,s,i,n,r,a,o){this.graph=e,this.modulesById=t,this.pluginDriver=s,this.preserveSymlinks=i,this.indexedEntryModules=[],this.latestLoadModulesPromise=Promise.resolve(),this.manualChunkModules={},this.nextEntryModuleIndex=0,this.loadEntryModule=(e,t,s)=>qr(e,s,this.preserveSymlinks,this.pluginDriver,null).then(s=>{if(!1===s||s&&"object"==typeof s&&s.external)return Ei(function(e){return{code:vi.UNRESOLVED_ENTRY,message:`Entry module cannot be external (${xi(e)}).`}}(e));const i=s&&"object"==typeof s?s.id:s;return"string"==typeof i?this.fetchModule(i,void 0,!0,!1,t):Ei(function(e){return{code:vi.UNRESOLVED_ENTRY,message:`Could not resolve entry module (${xi(e)}).`}}(e))}),this.isExternal=ta(n),this.hasModuleSideEffects=sa(a,o,e),this.getManualChunk="function"==typeof r?r:()=>null}addEntryModules(e,t){const s=this.nextEntryModuleIndex;this.nextEntryModuleIndex+=e.length;const i=Promise.all(e.map(({fileName:e,id:s,name:i,importer:n})=>this.loadEntryModule(s,!0,n).then(s=>(null!==e?s.chunkFileNames.add(e):null!==i&&(null===s.chunkName&&(s.chunkName=i),t&&s.userChunkNames.add(i)),s)))).then(e=>{let i=s;for(const s of e){s.isUserDefinedEntryPoint=s.isUserDefinedEntryPoint||t;const e=this.indexedEntryModules.find(e=>e.module.id===s.id);e?e.index=Math.min(e.index,i):this.indexedEntryModules.push({module:s,index:i}),i++}return this.indexedEntryModules.sort(({index:e},{index:t})=>e>t?1:-1),e});return this.awaitLoadModulesPromise(i).then(e=>({entryModules:this.indexedEntryModules.map(({module:e})=>e),manualChunkModulesByAlias:this.manualChunkModules,newEntryModules:e}))}addManualChunks(e){const t=[];for(const s of Object.keys(e)){const i=e[s];for(const e of i)t.push({id:e,alias:s})}const s=Promise.all(t.map(({id:e})=>this.loadEntryModule(e,!1,void 0))).then(e=>{for(let s=0;s<e.length;s++)this.addModuleToManualChunk(t[s].alias,e[s])});return this.awaitLoadModulesPromise(s)}async resolveId(e,t,s=null){return this.normalizeResolveIdResult(!this.isExternal(e,t,!1)&&await qr(e,t,this.preserveSymlinks,this.pluginDriver,s),t,e)}addModuleToManualChunk(e,t){if(null!==t.manualChunkAlias&&t.manualChunkAlias!==e)return Ei((s=t.id,i=e,n=t.manualChunkAlias,{code:vi.INVALID_CHUNK,message:`Cannot assign ${xi(s)} to the "${i}" chunk as it is already in the "${n}" chunk.`}));var s,i,n;t.manualChunkAlias=e,this.manualChunkModules[e]||(this.manualChunkModules[e]=[]),this.manualChunkModules[e].push(t)}awaitLoadModulesPromise(e){this.latestLoadModulesPromise=Promise.all([e,this.latestLoadModulesPromise]);const t=()=>{const e=this.latestLoadModulesPromise;return e.then(()=>{if(this.latestLoadModulesPromise!==e)return t()})};return t().then(()=>e)}fetchAllDependencies(e){return Promise.all([...Array.from(e.sources).map(async t=>this.fetchResolvedDependency(t,e.id,e.resolvedIds[t]=e.resolvedIds[t]||this.handleResolveId(await this.resolveId(t,e.id),t,e.id))),...e.getDynamicImportExpressions().map((t,s)=>this.resolveDynamicImport(e,t,e.id).then(t=>{if(null===t)return;const i=e.dynamicImports[s];if("string"!=typeof t)return this.fetchResolvedDependency(xi(t.id),e.id,t).then(e=>{i.resolution=e});i.resolution=t}))])}fetchModule(e,t,s,i,n){const r=this.modulesById.get(e);if(r instanceof qn)return r.isEntryPoint=r.isEntryPoint||n,Promise.resolve(r);const a=new qn(this.graph,e,s,i,n);this.modulesById.set(e,a),this.graph.watchFiles[e]=!0;const o=this.getManualChunk(e);return"string"==typeof o&&this.addModuleToManualChunk(o,a),Vn("load modules",3),Promise.resolve(this.pluginDriver.hookFirst("load",[e])).then(t=>null!=t?t:jr(e)).catch(s=>{Bn("load modules",3);let i=`Could not load ${e}`;throw t&&(i+=` (imported by ${t})`),i+=`: ${s.message}`,s.message=i,s}).then(t=>(Bn("load modules",3),"string"==typeof t?{code:t}:t&&"object"==typeof t&&"string"==typeof t.code?t:Ei(function(e){return{code:vi.BAD_LOADER,message:`Error loading ${xi(e)}: plugin load hook should return a string, a { code, map } object, or nothing/null`}}(e)))).then(t=>{const s=this.graph.cachedModules.get(e);if(s&&!s.customTransformCache&&s.originalCode===t.code){if(s.transformFiles)for(const e of s.transformFiles)this.pluginDriver.emitFile(e);return s}return"boolean"==typeof t.moduleSideEffects&&(a.moduleSideEffects=t.moduleSideEffects),"boolean"==typeof t.syntheticNamedExports&&(a.syntheticNamedExports=t.syntheticNamedExports),Zr(this.graph,t,a)}).then(t=>(a.setSource(t),this.modulesById.set(e,a),this.fetchAllDependencies(a).then(()=>{for(const e in a.exports)"default"!==e&&(a.exportsAll[e]=a.id);for(const e of a.exportAllSources){const t=a.resolvedIds[e].id,s=this.modulesById.get(t);if(!(s instanceof Jt))for(const e in s.exportsAll)e in a.exportsAll?this.graph.warn(Ai(e,a,s)):a.exportsAll[e]=s.exportsAll[e]}return a})))}fetchResolvedDependency(e,t,s){if(s.external){this.modulesById.has(s.id)||this.modulesById.set(s.id,new Jt(this.graph,s.id,s.moduleSideEffects));const i=this.modulesById.get(s.id);return i instanceof Jt?Promise.resolve(i):Ei(function(e,t){return{code:vi.INVALID_EXTERNAL_ID,message:`'${e}' is imported as an external by ${xi(t)}, but is already an existing non-external module id.`}}(e,t))}return this.fetchModule(s.id,t,s.moduleSideEffects,s.syntheticNamedExports,!1)}handleResolveId(e,t,s){return null===e?Gt(t)?Ei(function(e,t){return{code:vi.UNRESOLVED_IMPORT,message:`Could not resolve '${e}' from ${xi(t)}`}}(t,s)):(this.graph.warn(function(e,t){return{code:vi.UNRESOLVED_IMPORT,importer:xi(t),message:`'${e}' is imported by ${xi(t)}, but could not be resolved – treating it as an external dependency`,source:e,url:"https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency"}}(t,s)),{external:!0,id:t,moduleSideEffects:this.hasModuleSideEffects(t,!0),syntheticNamedExports:!1}):(e.external&&e.syntheticNamedExports&&this.graph.warn(function(e,t){return{code:vi.EXTERNAL_SYNTHETIC_EXPORTS,importer:xi(t),message:`External '${e}' can not have 'syntheticNamedExports' enabled.`,source:e}}(t,s)),e)}normalizeResolveIdResult(e,t,s){let i="",n=!1,r=null,a=!1;if(e)"object"==typeof e?(i=e.id,e.external&&(n=!0),"boolean"==typeof e.moduleSideEffects&&(r=e.moduleSideEffects),"boolean"==typeof e.syntheticNamedExports&&(a=e.syntheticNamedExports)):(this.isExternal(e,t,!0)&&(n=!0),i=n?ea(e,t):e);else{if(i=ea(s,t),!1!==e&&!this.isExternal(i,t,!0))return null;n=!0}return{external:n,id:i,moduleSideEffects:"boolean"==typeof r?r:this.hasModuleSideEffects(i,n),syntheticNamedExports:a}}async resolveDynamicImport(e,t,s){const i=await this.pluginDriver.hookFirst("resolveDynamicImport",[t,s]);return"string"!=typeof t?"string"==typeof i?i:i?{external:!1,moduleSideEffects:!0,...i}:null:null==i?e.resolvedIds[t]=e.resolvedIds[t]||this.handleResolveId(await this.resolveId(t,e.id),t,e.id):this.handleResolveId(this.normalizeResolveIdResult(i,s,t),t,s)}}var na;function ra(e,t){const s=new Map,{dependentEntryPointsByModule:i,dynamicEntryModules:n}=function(e){const t=new Set,s=new Map,i=new Set(e);for(const e of i){const n=new Set([e]);for(const r of n){aa(s,r).add(e);for(const e of r.getDependenciesToBeIncluded())e instanceof Jt||n.add(e);for(const{resolution:e}of r.dynamicImports)e instanceof qn&&e.dynamicallyImportedBy.length>0&&!e.manualChunkAlias&&(t.add(e),i.add(e))}}return{dependentEntryPointsByModule:s,dynamicEntryModules:t}}(e),r=function(e,t){const s=new Map;for(const i of t){const t=aa(s,i);for(const s of i.dynamicallyImportedBy)for(const i of e.get(s))t.add(i)}return s}(i,n),a=new Set(e);function o(e,t,n=e){const r=e.manualChunkAlias,a=new Set([e]);for(const e of a){const o=aa(s,e);if(r)e.manualChunkAlias=r,o.add(n);else{if(t&&h(t,i.get(e)))continue;o.add(n)}for(const t of e.getDependenciesToBeIncluded())t instanceof Jt||t.manualChunkAlias||a.add(t)}}function h(e,t){const s=new Set(e);for(const e of s)if(!t.has(e)){if(a.has(e))return!1;const t=r.get(e);for(const e of t)s.add(e)}return!0}for(const e of Object.keys(t))for(const s of t[e])o(s,null,e);for(const t of e)t.manualChunkAlias||o(t,null);for(const e of n)e.manualChunkAlias||o(e,r.get(e));return function(e,t){const s=Object.create(null);for(const[i,n]of t){let t="";for(const s of e)t+=n.has(s)?"X":"_";const r=s[t];r?r.push(i):s[t]=[i]}return Object.keys(s).map(e=>s[e])}([...Object.keys(t),...e,...n],s)}function aa(e,t){const s=e.get(t)||new Set;return e.set(t,s),s}function oa(e,t,s){e in t&&s.warn(function(e){return{code:vi.FILE_NAME_CONFLICT,message:`The emitted file "${e}" overwrites a previously emitted file of the same name.`}}(e)),t[e]=ha}!function(e){e[e.LOAD_AND_PARSE=0]="LOAD_AND_PARSE",e[e.ANALYSE=1]="ANALYSE",e[e.GENERATE=2]="GENERATE"}(na||(na={}));const ha={type:"placeholder"};function la(e,t,s){if(!("string"==typeof e||e instanceof Uint8Array)){const e=t.fileName||t.name||s;return Ei(Ci(`Could not set source for ${"string"==typeof e?`asset "${e}"`:"unnamed asset"}, asset source needs to be a string, Uint8Array or Buffer.`))}return e}function ca(e,t){return"string"!=typeof e.fileName?Ei((s=e.name||t,{code:vi.ASSET_NOT_FINALISED,message:`Plugin error - Unable to get file name for asset "${s}". Ensure that the source is set and that generate is called first.`})):e.fileName;var s}function ua(e){const t=e.fileName||e.module&&e.module.facadeChunk.id;return t||Ei((s=e.fileName||e.name,{code:vi.CHUNK_NOT_GENERATED,message:`Plugin error - Unable to get file name for chunk "${s}". Ensure that generate is called first.`}));var s}class da{constructor(e,t){this.output=null,this.assertAssetsFinalized=()=>{for(const[t,s]of this.filesByReferenceId.entries())if("asset"===s.type&&"string"!=typeof s.fileName)return Ei((e=s.name||t,{code:vi.ASSET_SOURCE_MISSING,message:`Plugin error creating asset "${e}" - no asset source set.`}));var e},this.emitFile=e=>function(e){return e&&("asset"===e.type||"chunk"===e.type)}(e)?function(e){const t=e.fileName||e.name;return!t||"string"==typeof t&&yi(t)}(e)?"chunk"===e.type?this.emitChunk(e):this.emitAsset(e):Ei(Ci(`The "fileName" or "name" properties of emitted files must be strings that are neither absolute nor relative paths and do not contain invalid characters, received "${e.fileName||e.name}".`)):Ei(Ci(`Emitted files must be of type "asset" or "chunk", received "${e&&e.type}".`)),this.getFileName=e=>{const t=this.filesByReferenceId.get(e);return t?"chunk"===t.type?ua(t):ca(t,e):Ei((s=e,{code:vi.FILE_NOT_FOUND,message:`Plugin error - Unable to get file name for unknown file "${s}".`}));var s},this.setAssetSource=(e,t)=>{const s=this.filesByReferenceId.get(e);if(!s)return Ei((i=e,{code:vi.ASSET_NOT_FOUND,message:`Plugin error - Unable to set the source for unknown asset "${i}".`}));var i,n;if("asset"!==s.type)return Ei(Ci(`Asset sources can only be set for emitted assets but "${e}" is an emitted chunk.`));if(void 0!==s.source)return Ei((n=s.name||e,{code:vi.ASSET_SOURCE_ALREADY_SET,message:`Unable to set the source for asset "${n}", source already set.`}));const r=la(t,s,e);this.output?this.finalizeAsset(s,r,e,this.output):s.source=r},this.setOutputBundle=(e,t)=>{this.output={assetFileNames:t,bundle:e};for(const e of this.filesByReferenceId.values())e.fileName&&oa(e.fileName,this.output.bundle,this.graph);for(const[e,t]of this.filesByReferenceId.entries())"asset"===t.type&&void 0!==t.source&&this.finalizeAsset(t,t.source,e,this.output)},this.graph=e,this.filesByReferenceId=t?new Map(t.filesByReferenceId):new Map}assignReferenceId(e,t){let s;do{const e=kr();s?e.update(s):e.update(t),s=e.digest("hex").substr(0,8)}while(this.filesByReferenceId.has(s));return this.filesByReferenceId.set(s,e),s}emitAsset(e){const t=void 0!==e.source?la(e.source,e,null):void 0,s={fileName:e.fileName,name:e.name,source:t,type:"asset"},i=this.assignReferenceId(s,e.fileName||e.name||e.type);return this.output&&(e.fileName&&oa(e.fileName,this.output.bundle,this.graph),void 0!==t&&this.finalizeAsset(s,t,i,this.output)),i}emitChunk(e){if(this.graph.phase>na.LOAD_AND_PARSE)return Ei({code:vi.INVALID_ROLLUP_PHASE,message:"Cannot emit chunks after module loading has finished."});if("string"!=typeof e.id)return Ei(Ci(`Emitted chunks need to have a valid string id, received "${e.id}"`));const t={fileName:e.fileName,module:null,name:e.name||e.id,type:"chunk"};return this.graph.moduleLoader.addEntryModules([{fileName:e.fileName||null,id:e.id,importer:e.importer,name:e.name||null}],!1).then(({newEntryModules:[e]})=>{t.module=e}).catch(()=>{}),this.assignReferenceId(t,e.id)}finalizeAsset(e,t,s,i){const n=e.fileName||function(e,t){for(const s of Object.keys(e)){const i=e[s];if("asset"===i.type&&pa(t,i.source))return s}return null}(i.bundle,t)||function(e,t,s){const i=e||"asset";return Or(Dr(s.assetFileNames,"output.assetFileNames",{hash(){const e=kr();return e.update(i),e.update(":"),e.update(t),e.digest("hex").substr(0,8)},ext:()=>Xt(i).substr(1),extname:()=>Xt(i),name:()=>i.substr(0,i.length-Xt(i).length)}),s.bundle)}(e.name,t,i),r={...e,source:t,fileName:n};this.filesByReferenceId.set(s,r);const a=this.graph;i.bundle[n]={fileName:n,get isAsset(){return a.warnDeprecation('Accessing "isAsset" on files in the bundle is deprecated, please use "type === \'asset\'" instead',!0),!0},source:t,type:"asset"}}}function pa(e,t){if("string"==typeof e)return e===t;if("string"==typeof t)return!1;if("equals"in e)return e.equals(t);if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==t[s])return!1;return!0}function fa(e,t,s,i,n,r){let a=!1;return(...o)=>(a||(a=!0,r.warnDeprecation({message:`The "this.${t}" plugin context function used by plugin ${i} is deprecated. The "this.${s}" plugin context function should be used instead.`,plugin:i},n)),e(...o))}function ma(e,t,s){const i=new Set;return(n,r)=>{let a,o=!0;if("string"!=typeof n.cacheKey&&(n.name.startsWith("at position ")||n.name.startsWith("at output position ")||i.has(n.name)?o=!1:i.add(n.name)),e)if(o){const t=n.cacheKey||n.name;l=e[t]||(e[t]=Object.create(null)),a={has(e){const t=l[e];return!!t&&(t[0]=0,!0)},get(e){const t=l[e];if(t)return t[0]=0,t[1]},set(e,t){l[e]=[0,t]},delete:e=>delete l[e]}}else h=n.name,a={has:()=>Jr(h),get:()=>Jr(h),set:()=>Jr(h),delete:()=>Jr(h)};else a=Qr;var h,l;return{addWatchFile(e){if(t.phase>=na.GENERATE)return this.error({code:vi.INVALID_ROLLUP_PHASE,message:"Cannot call addWatchFile after the build has finished."});t.watchFiles[e]=!0},cache:a,emitAsset:fa((e,t)=>s.emitFile({type:"asset",name:e,source:t}),"emitAsset","emitFile",n.name,!0,t),emitChunk:fa((e,t)=>s.emitFile({type:"chunk",id:e,name:t&&t.name}),"emitChunk","emitFile",n.name,!0,t),emitFile:s.emitFile,error:e=>Xr(e,n.name),getAssetFileName:fa(s.getFileName,"getAssetFileName","getFileName",n.name,!0,t),getChunkFileName:fa(s.getFileName,"getChunkFileName","getFileName",n.name,!0,t),getFileName:s.getFileName,getModuleInfo(e){const s=t.moduleById.get(e);if(null==s)throw new Error(`Unable to find module ${e}`);const i=[],n=[];if(s instanceof qn){for(const e of s.sources)i.push(s.resolvedIds[e].id);for(const{resolution:e}of s.dynamicImports)(e instanceof qn||e instanceof Jt)&&n.push(e.id)}return{dynamicallyImportedIds:n,hasModuleSideEffects:s.moduleSideEffects,id:s.id,importedIds:i,isEntry:s instanceof qn&&s.isEntryPoint,isExternal:s instanceof Jt}},isExternal:fa((e,s,i=!1)=>t.moduleLoader.isExternal(e,s,i),"isExternal","resolve",n.name,!0,t),meta:{rollupVersion:"2.3.3"},get moduleIds(){return t.moduleById.keys()},parse:t.contextParse,resolve:(e,s,i)=>t.moduleLoader.resolveId(e,s,i&&i.skipSelf?r:null),resolveId:fa((e,s)=>t.moduleLoader.resolveId(e,s).then(e=>e&&e.id),"resolveId","resolve",n.name,!0,t),setAssetSource:s.setAssetSource,warn(e){"string"==typeof e&&(e={message:e}),e.code&&(e.pluginCode=e.code),e.code="PLUGIN_WARNING",e.plugin=n.name,t.warn(e)}}}}const ga=Object.keys({buildEnd:1,buildStart:1,load:1,options:1,resolveDynamicImport:1,resolveId:1,transform:1,watchChange:1});function xa(e,t){return Ei({code:"INVALID_PLUGIN_HOOK",message:`Error running plugin hook ${e} for ${t}, expected a function hook.`})}class ya{constructor(e,t,s,i){if(function(e,t){for(const{active:s,deprecated:i,replacement:n}of Yr)for(const r of e)i in r&&t.warnDeprecation({message:`The "${i}" hook used by plugin ${r.name} is deprecated. The "${n}" hook should be used instead.`,plugin:r.name},s)}(t,e),this.graph=e,this.pluginCache=s,this.fileEmitter=new da(e,i&&i.fileEmitter),this.emitFile=this.fileEmitter.emitFile,this.getFileName=this.fileEmitter.getFileName,this.finaliseAssets=this.fileEmitter.assertAssetsFinalized,this.setOutputBundle=this.fileEmitter.setOutputBundle,this.plugins=t.concat(i?i.plugins:[]),this.pluginContexts=this.plugins.map(ma(s,e,this.fileEmitter)),i)for(const s of t)for(const t of ga)t in s&&e.warn((n=s.name,r=t,{code:vi.INPUT_HOOK_IN_OUTPUT_PLUGIN,message:`The "${r}" hook used by the output plugin ${n} is a build time hook and will not be run for that plugin. Either this plugin cannot be used as an output plugin, or it should have an option to configure it as an output plugin.`}));var n,r}createOutputPluginDriver(e){return new ya(this.graph,e,this.pluginCache,this)}hookFirst(e,t,s,i){let n=Promise.resolve(void 0);for(let r=0;r<this.plugins.length;r++)i!==r&&(n=n.then(i=>null!=i?i:this.runHook(e,t,r,!1,s)));return n}hookFirstSync(e,t,s){for(let i=0;i<this.plugins.length;i++){const n=this.runHookSync(e,t,i,s);if(null!=n)return n}return null}hookParallel(e,t,s){const i=[];for(let n=0;n<this.plugins.length;n++){const r=this.runHook(e,t,n,!1,s);r&&i.push(r)}return Promise.all(i).then(()=>{})}hookReduceArg0(e,[t,...s],i,n){let r=Promise.resolve(t);for(let t=0;t<this.plugins.length;t++)r=r.then(r=>{const a=[r,...s],o=this.runHook(e,a,t,!1,n);return o?o.then(e=>i.call(this.pluginContexts[t],r,e,this.plugins[t])):r});return r}hookReduceArg0Sync(e,[t,...s],i,n){for(let r=0;r<this.plugins.length;r++){const a=[t,...s],o=this.runHookSync(e,a,r,n);t=i.call(this.pluginContexts[r],t,o,this.plugins[r])}return t}hookReduceValue(e,t,s,i,n){let r=Promise.resolve(t);for(let t=0;t<this.plugins.length;t++)r=r.then(r=>{const a=this.runHook(e,s,t,!0,n);return a?a.then(e=>i.call(this.pluginContexts[t],r,e,this.plugins[t])):r});return r}hookReduceValueSync(e,t,s,i,n){let r=t;for(let t=0;t<this.plugins.length;t++){const a=this.runHookSync(e,s,t,n);r=i.call(this.pluginContexts[t],r,a,this.plugins[t])}return r}hookSeq(e,t,s){let i=Promise.resolve();for(let n=0;n<this.plugins.length;n++)i=i.then(()=>this.runHook(e,t,n,!1,s));return i}hookSeqSync(e,t,s){for(let i=0;i<this.plugins.length;i++)this.runHookSync(e,t,i,s)}runHook(e,t,s,i,n){const r=this.plugins[s],a=r[e];if(!a)return;let o=this.pluginContexts[s];return n&&(o=n(o,r)),Promise.resolve().then(()=>"function"!=typeof a?i?a:xa(e,r.name):a.apply(o,t)).catch(t=>Xr(t,r.name,{hook:e}))}runHookSync(e,t,s,i){const n=this.plugins[s],r=n[e];if(!r)return;let a=this.pluginContexts[s];i&&(a=i(a,n));try{return"function"!=typeof r?xa(e,n.name):r.apply(a,t)}catch(t){return Xr(t,n.name,{hook:e})}}}function Ea(e){return"string"==typeof e?[{fileName:null,name:null,id:e,importer:void 0}]:Array.isArray(e)?e.map(e=>({fileName:null,name:null,id:e,importer:void 0})):Object.keys(e).map(t=>({fileName:null,id:e[t],importer:void 0,name:t}))}class ba{constructor(e,t){if(this.moduleById=new Map,this.needsTreeshakingPass=!1,this.phase=na.LOAD_AND_PARSE,this.watchFiles=Object.create(null),this.externalModules=[],this.modules=[],this.onwarn=e.onwarn,this.deoptimizationTracker=new tt,this.cachedModules=new Map,e.cache&&e.cache.modules)for(const t of e.cache.modules)this.cachedModules.set(t.id,t);if(!1!==e.cache){this.pluginCache=e.cache&&e.cache.plugins||Object.create(null);for(const e in this.pluginCache){const t=this.pluginCache[e];for(const e of Object.keys(t))t[e][0]++}}if(this.preserveModules=e.preserveModules,this.strictDeprecations=e.strictDeprecations,this.cacheExpiry=e.experimentalCacheExpiry,!1!==e.treeshake&&(this.treeshakingOptions=e.treeshake&&!0!==e.treeshake?{annotations:!1!==e.treeshake.annotations,moduleSideEffects:e.treeshake.moduleSideEffects,propertyReadSideEffects:!1!==e.treeshake.propertyReadSideEffects,pureExternalModules:e.treeshake.pureExternalModules,tryCatchDeoptimization:!1!==e.treeshake.tryCatchDeoptimization,unknownGlobalSideEffects:!1!==e.treeshake.unknownGlobalSideEffects}:{annotations:!0,moduleSideEffects:!0,propertyReadSideEffects:!0,tryCatchDeoptimization:!0,unknownGlobalSideEffects:!0},void 0!==this.treeshakingOptions.pureExternalModules&&this.warnDeprecation('The "treeshake.pureExternalModules" option is deprecated. The "treeshake.moduleSideEffects" option should be used instead. "treeshake.pureExternalModules: true" is equivalent to "treeshake.moduleSideEffects: \'no-external\'"',!0)),this.contextParse=(e,t={})=>this.acornParser.parse(e,{...zn,...t,...this.acornOptions}),this.pluginDriver=new ya(this,e.plugins,this.pluginCache),t){const e=e=>this.pluginDriver.hookSeqSync("watchChange",[e]);t.on("change",e),t.once("restart",()=>{t.removeListener("change",e)})}this.shimMissingExports=e.shimMissingExports,this.scope=new ss,this.context=String(e.context);const s=e.moduleContext;if("function"==typeof s)this.getModuleContext=e=>s(e)||this.context;else if("object"==typeof s){const e=new Map;for(const t in s)e.set(Qt(t),s[t]);this.getModuleContext=t=>e.get(t)||this.context}else this.getModuleContext=()=>this.context;this.acornOptions=e.acorn?{...e.acorn}:{};const i=[];i.push(Ve,Le),this.acornOptions.allowAwaitOutsideFunction=!0;const n=e.acornInjectPlugins;i.push(...Array.isArray(n)?n:n?[n]:[]),this.acornParser=V.extend(...i),this.moduleLoader=new ia(this,this.moduleById,this.pluginDriver,!0===e.preserveSymlinks,e.external,"function"==typeof e.manualChunks&&e.manualChunks,this.treeshakingOptions?this.treeshakingOptions.moduleSideEffects:null,!!this.treeshakingOptions&&this.treeshakingOptions.pureExternalModules)}build(e,t,s){return Vn("parse modules",2),Promise.all([this.moduleLoader.addEntryModules(Ea(e),!0),t&&"object"==typeof t&&this.moduleLoader.addManualChunks(t)]).then(([{entryModules:e,manualChunkModulesByAlias:t}])=>{if(0===e.length)throw new Error("You must supply options.input to rollup");for(const e of this.moduleById.values())e instanceof qn?this.modules.push(e):this.externalModules.push(e);Bn("parse modules",2),this.phase=na.ANALYSE,Vn("analyse dependency graph",2),this.link(e),Bn("analyse dependency graph",2),Vn("mark included statements",2);for(const t of e)t.includeAllExports();this.includeMarked(this.modules);for(const e of this.externalModules)e.warnUnusedImports();Bn("mark included statements",2),Vn("generate chunks",2);const i=[];if(this.preserveModules){for(const e of this.modules)if(e.isIncluded()||e.isEntryPoint||e.dynamicallyImportedBy.length>0){const t=new Fr(this,[e]);t.entryModules=[e],i.push(t)}}else for(const n of s?[this.modules]:ra(e,t))Tr(n),i.push(new Fr(this,n));for(const e of i)e.link();const n=[];for(const e of i)n.push(...e.generateFacades());return Bn("generate chunks",2),this.phase=na.GENERATE,[...i,...n]})}getCache(){for(const e in this.pluginCache){const t=this.pluginCache[e];let s=!0;for(const e of Object.keys(t))t[e][0]>=this.cacheExpiry?delete t[e]:s=!1;s&&delete this.pluginCache[e]}return{modules:this.modules.map(e=>e.toJSON()),plugins:this.pluginCache}}includeMarked(e){if(this.treeshakingOptions){let t=1;do{Vn(`treeshaking pass ${t}`,3),this.needsTreeshakingPass=!1;for(const t of e)t.isExecuted&&t.include();Bn(`treeshaking pass ${t++}`,3)}while(this.needsTreeshakingPass)}else for(const t of e)t.includeAllInBundle()}warn(e){e.toString=()=>{let t="";return e.plugin&&(t+=`(${e.plugin} plugin) `),e.loc&&(t+=`${xi(e.loc.file)} (${e.loc.line}:${e.loc.column}) `),t+=e.message,t},this.onwarn(e)}warnDeprecation(e,t){if(t||this.strictDeprecations){const t=function(e){return{code:vi.DEPRECATED_FEATURE,..."string"==typeof e?{message:e}:e}}(e);if(this.strictDeprecations)return Ei(t);this.warn(t)}}link(e){for(const e of this.modules)e.linkDependencies();const{orderedModules:t,cyclePaths:s}=function(e){let t=0;const s=[],i=new Set,n=new Set,r=new Map,a=[],o=e=>{if(e instanceof qn){for(const t of e.dependencies)r.has(t)?i.has(t)||s.push(Rr(t,e,r)):(r.set(t,e),o(t));for(const{resolution:t}of e.dynamicImports)t instanceof qn&&!n.has(t)&&n.add(t);a.push(e)}e.execIndex=t++,i.add(e)};for(const t of e)r.has(t)||(r.set(t,null),o(t));for(const e of n)r.has(e)||(r.set(e,null),o(e));return{orderedModules:a,cyclePaths:s}}(e);for(const e of s)this.warn({code:"CIRCULAR_DEPENDENCY",cycle:e,importer:e[0],message:`Circular dependency: ${e.join(" -> ")}`});this.modules=t;for(const e of this.modules)e.bindReferences();this.warnForMissingExports()}warnForMissingExports(){for(const e of this.modules)for(const t of Object.keys(e.importDescriptions)){const s=e.importDescriptions[t];"*"===s.name||s.module.getVariableForExportName(s.name)||e.warn({code:"NON_EXISTENT_EXPORT",message:`Non-existent export '${s.name}' is imported from ${xi(s.module.id)}`,name:s.name,source:s.module.id},s.start)}}}function va(e){switch(typeof e){case"function":return e();case"string":return e;default:return""}}const Sa=(e,t)=>t?`${e}\n${t}`:e,Aa=(e,t)=>t?`${e}\n\n${t}`:e;function Ca(e,{exports:t,name:s,format:i},n){const r=e.getExportNames();if("default"===t){if(1!==r.length||"default"!==r[0])return Ei(Si("default",r,n))}else if("none"===t&&r.length)return Ei(Si("none",r,n));return t&&"auto"!==t||(0===r.length?t="none":1===r.length&&"default"===r[0]?t="default":("es"!==i&&-1!==r.indexOf("default")&&e.graph.warn(function(e,t){return{code:vi.MIXED_EXPORTS,id:e,message:`Entry module "${xi(e)}" is using named and default exports together. Consumers of your bundle will have to use \`${t||"chunk"}["default"]\` to access the default export, which may not be what you want. Use \`output.exports: "named"\` to disable this warning`,url:"https://rollupjs.org/guide/en/#output-exports"}}(n,s)),t="named")),t}const Pa=(e,t)=>(s,i)=>void 0!==t[s]?t[s]:void 0!==e[s]?e[s]:i,ka=e=>e&&"object"!=typeof e?{}:e,wa=(e,t,s)=>{const i=ka(t[s]),n=ka(e[s]);return void 0!==i?i&&{...n,...i}:n};function Na(e){return Array.isArray(e)?e.filter(Boolean):e?[e]:[]}const _a=e=>{"string"==typeof e?console.warn(e):console.warn(e.message)},Ia=(e,t)=>e.onwarn?s=>e.onwarn(s,t):t,$a=(e,t)=>{const s=e.external;return"function"==typeof s?(e,...i)=>s(e,...i)||-1!==t.external.indexOf(e):("string"==typeof e.external?[s]:Array.isArray(s)?s:[]).concat(t.external)};function Ta(e,t={external:[],globals:void 0},s=_a){const i=Pa(e,t),n={acorn:e.acorn,acornInjectPlugins:e.acornInjectPlugins,cache:i("cache"),context:i("context"),experimentalCacheExpiry:i("experimentalCacheExpiry",10),external:$a(e,t),inlineDynamicImports:i("inlineDynamicImports",!1),input:i("input",[]),manualChunks:i("manualChunks"),moduleContext:e.moduleContext,onwarn:Ia(e,s),perf:i("perf",!1),plugins:Na(e.plugins),preserveModules:i("preserveModules"),preserveSymlinks:i("preserveSymlinks"),shimMissingExports:i("shimMissingExports"),strictDeprecations:i("strictDeprecations",!1),treeshake:wa(e,t,"treeshake"),watch:e.watch};return n.cache&&n.cache.cache&&(n.cache=n.cache.cache),Ra(e,Object.keys(n),"input options",n.onwarn,/^output$/),n}function Ra(e,t,s,i,n=/$./){const r=new Set(t),a=Object.keys(e).filter(e=>!(r.has(e)||n.test(e)));a.length>0&&i({code:"UNKNOWN_OPTION",message:`Unknown ${s}: ${a.join(", ")}. Allowed options: ${Array.from(r).sort().join(", ")}`})}function La(e){switch(e){case void 0:case"es":case"esm":case"module":return"es";case"cjs":case"commonjs":return"cjs";case"system":case"systemjs":return"system";case"amd":case"iife":case"umd":return e;default:return Ei({message:'You must specify "output.format", which can be one of "amd", "cjs", "system", "es", "iife" or "umd".',url:"https://rollupjs.org/guide/en/#output-format"})}}function Ma(e){return e&&!["default","named","none","auto"].includes(e)?Ei((t=e,{code:vi.INVALID_EXPORT_OPTION,message:`"output.exports" must be "default", "named", "none", "auto", or left unspecified (defaults to "auto"), received "${t}"`,url:"https://rollupjs.org/guide/en/#output-exports"})):e;var t}function Da(e,t){return t.options&&t.options.call({meta:{rollupVersion:"2.3.3"}},e)||e}function Oa(e,t){const s=Na(e);for(let e=0;e<s.length;e++){const i=s[e];i.name||(i.name=`${t}${e+1}`)}return s}function Va(e){return async function(e,t){const s=function(e){if(!e)throw new Error("You must supply an options object to rollup");let t=Ta(e);if(t=t.plugins.reduce(Da,t),t.plugins=Oa(t.plugins,"at position "),t.inlineDynamicImports){if(t.preserveModules)return Ei({code:"INVALID_OPTION",message:'"preserveModules" does not support the "inlineDynamicImports" option.'});if(t.manualChunks)return Ei({code:"INVALID_OPTION",message:'"manualChunks" option is not supported for "inlineDynamicImports".'});if(t.input instanceof Array&&t.input.length>1||"object"==typeof t.input&&Object.keys(t.input).length>1)return Ei({code:"INVALID_OPTION",message:'Multiple inputs are not supported for "inlineDynamicImports".'})}else if(t.preserveModules&&t.manualChunks)return Ei({code:"INVALID_OPTION",message:'"preserveModules" does not support the "manualChunks" option.'});return t}(e);Un(s);const i=new ba(s,t),n=!1!==e.cache;let r;delete s.cache,delete e.cache,Vn("BUILD",1);try{await i.pluginDriver.hookParallel("buildStart",[s]),r=await i.build(s.input,s.manualChunks,s.inlineDynamicImports)}catch(e){const t=Object.keys(i.watchFiles);throw t.length>0&&(e.watchFiles=t),await i.pluginDriver.hookParallel("buildEnd",[e]),e}function a(e){if(!e)throw new Error("You must supply an options object");const t=i.pluginDriver.createOutputPluginDriver(Oa(e.plugins,"at output position "));return{outputOptions:Ua(s,e,r.length>1,t),outputPluginDriver:t}}async function o(e,t,n){Vn("GENERATE",1),e.dynamicImportFunction&&i.warnDeprecation('The "output.dynamicImportFunction" option is deprecated. Use the "renderDynamicImport" plugin hook instead.',!1);const a=e.assetFileNames||"assets/[name]-[hash][extname]",o=function(e){if(0===e.length)return"/";if(1===e.length)return Kt(e[0]);const t=e.slice(1).reduce((e,t)=>{const s=t.split(/\/+|\\+/);let i;for(i=0;e[i]===s[i]&&i<Math.min(e.length,s.length);i++);return e.slice(0,i)},e[0].split(/\/+|\\+/));return t.length>1?t.join("/"):"/"}(function(e){const t=[];for(const s of e)for(const e of s.entryModules)jt(e.id)&&t.push(e.id);return t}(r)),h=Object.create(null);let l;n.setOutputBundle(h,a);try{await n.hookParallel("renderStart",[e,s]);const t=await function(e,t){return Promise.all([t.hookReduceValue("banner",va(e.banner),[],Sa),t.hookReduceValue("footer",va(e.footer),[],Sa),t.hookReduceValue("intro",va(e.intro),[],Aa),t.hookReduceValue("outro",va(e.outro),[],Aa)]).then(([e,t,s,i])=>(s&&(s+="\n\n"),i&&(i=`\n\n${i}`),e.length&&(e+="\n"),t.length&&(t="\n"+t),{intro:s,outro:i,banner:e,footer:t})).catch(e=>Ei({code:"ADDON_ERROR",message:`Could not retrieve ${e.hook}. Check configuration of plugin ${e.plugin}.\n\tError Message: ${e.message}`}))}(e,n);for(const t of r)s.preserveModules||t.generateInternalExports(e),(s.preserveModules||t.facadeModule&&t.facadeModule.isEntryPoint)&&(t.exportMode=Ca(t,e,t.facadeModule.id));for(const t of r)t.preRender(e,o,n);!function(e,t,s,i,n,r,a){const o=[],h=[];for(const t of e)(t.facadeModule&&t.facadeModule.isUserDefinedEntryPoint?o:h).push(t);const l=o.concat(h);for(const e of l)s.file?e.id=qt(s.file):t.preserveModules?e.id=e.generateIdPreserveModules(i,s,r):e.id=e.generateId(n,s,r,!0,a),r[e.id]=ha}(r,s,e,o,t,h,n),l=function(e,t){for(let s=0;s<e.length;s++){const i=e[s],n=i.facadeModule;t[i.id]={code:void 0,dynamicImports:i.getDynamicImportIds(),exports:i.getExportNames(),facadeModuleId:n&&n.id,fileName:i.id,imports:i.getImportIds(),isDynamicEntry:null!==n&&n.dynamicallyImportedBy.length>0,isEntry:null!==n&&n.isEntryPoint,map:void 0,modules:i.renderedModules,get name(){return i.getChunkName()},type:"chunk"}}return t}(r,h),await Promise.all(r.map(s=>{const i=h[s.id];return s.render(e,t,i,n).then(e=>{i.code=e.code,i.map=e.map})}))}catch(e){throw await n.hookParallel("renderError",[e]),e}await n.hookSeq("generateBundle",[e,l,t]);for(const e of Object.keys(l)){const t=l[e];t.type||(i.warnDeprecation('A plugin is directly adding properties to the bundle object in the "generateBundle" hook. This is deprecated and will be removed in a future Rollup version, please use "this.emitFile" instead.',!0),t.type="asset")}return n.finaliseAssets(),Bn("GENERATE",1),l}await i.pluginDriver.hookParallel("buildEnd",[]),Bn("BUILD",1);const h={cache:n?i.getCache():void 0,generate:e=>{const{outputOptions:t,outputPluginDriver:s}=a(e);return o(t,!1,s).then(e=>Wa(e))},watchFiles:Object.keys(i.watchFiles),write:e=>{const{outputOptions:t,outputPluginDriver:s}=a(e);return t.dir||t.file?o(t,!0,s).then(async e=>(await Promise.all(Object.keys(e).map(s=>function(e,t){const s=Qt(t.dir||Kt(t.file),e.fileName);let i,n;if("asset"===e.type)n=e.source;else if(n=e.code,t.sourcemap&&e.map){let r;"inline"===t.sourcemap?r=e.map.toUrl():(r=`${qt(e.fileName)}.map`,i=Hr(`${s}.map`,e.map.toString())),"hidden"!==t.sourcemap&&(n+=`//# sourceMappingURL=${r}\n`)}return Promise.all([Hr(s,n),i])}(e[s],t))),await s.hookParallel("writeBundle",[t,e]),Wa(e))):Ei({code:"MISSING_OPTION",message:'You must specify "output.file" or "output.dir" for the build.'})}};!0===s.perf&&(h.getTimings=On);return h}(e,null)}var Ba;function Fa(e){return"asset"===e.type?Ba.ASSET:e.isEntry?Ba.ENTRY_CHUNK:Ba.SECONDARY_CHUNK}function Wa(e){return{output:Object.keys(e).map(t=>e[t]).filter(e=>Object.keys(e).length>0).sort((e,t)=>{const s=Fa(e),i=Fa(t);return s===i?0:s<i?-1:1})}}function Ua(e,t,s,i){const n=function(e,t,s={}){const i=Pa(e,s),n={amd:{...e.amd,...s.amd},assetFileNames:i("assetFileNames"),banner:i("banner"),chunkFileNames:i("chunkFileNames"),compact:i("compact",!1),dir:i("dir"),dynamicImportFunction:i("dynamicImportFunction"),entryFileNames:i("entryFileNames"),esModule:i("esModule",!0),exports:Ma(i("exports")),extend:i("extend"),externalLiveBindings:i("externalLiveBindings",!0),file:i("file"),footer:i("footer"),format:La(i("format")),freeze:i("freeze",!0),globals:i("globals"),hoistTransitiveImports:i("hoistTransitiveImports",!0),indent:i("indent",!0),interop:i("interop",!0),intro:i("intro"),name:i("name"),namespaceToStringTag:i("namespaceToStringTag",!1),noConflict:i("noConflict"),outro:i("outro"),paths:i("paths"),plugins:Na(e.plugins),preferConst:i("preferConst"),sourcemap:i("sourcemap"),sourcemapExcludeSources:i("sourcemapExcludeSources"),sourcemapFile:i("sourcemapFile"),sourcemapPathTransform:i("sourcemapPathTransform"),strict:i("strict",!0)};return Ra(e,Object.keys(n),"output options",t),n}(i.hookReduceArg0Sync("outputOptions",[t.output||e.output||t],(e,t)=>t||e,e=>{const t=()=>e.error({code:vi.CANNOT_EMIT_FROM_OPTIONS_HOOK,message:'Cannot emit files or set asset sources in the "outputOptions" hook, use the "renderStart" hook instead.'});return{...e,emitFile:t,setAssetSource:t}}),e.onwarn);if("string"==typeof n.file){if("string"==typeof n.dir)return Ei({code:"INVALID_OPTION",message:'You must set either "output.file" for a single-file build or "output.dir" when generating multiple chunks.'});if(e.preserveModules)return Ei({code:"INVALID_OPTION",message:'You must set "output.dir" instead of "output.file" when using the "preserveModules" option.'});if("object"==typeof e.input&&!Array.isArray(e.input))return Ei({code:"INVALID_OPTION",message:'You must set "output.dir" instead of "output.file" when providing named inputs.'})}if(s){if("umd"===n.format||"iife"===n.format)return Ei({code:"INVALID_OPTION",message:"UMD and IIFE output formats are not supported for code-splitting builds."});if("string"==typeof n.file)return Ei({code:"INVALID_OPTION",message:'When building multiple chunks, the "output.dir" option must be used, not "output.file". To inline dynamic imports, set the "inlineDynamicImports" option.'});if(n.sourcemapFile)return Ei({code:"INVALID_OPTION",message:'"output.sourcemapFile" is only supported for single-file builds.'})}return n}!function(e){e[e.ENTRY_CHUNK=0]="ENTRY_CHUNK",e[e.SECONDARY_CHUNK=1]="SECONDARY_CHUNK",e[e.ASSET=2]="ASSET"}(Ba||(Ba={}));export{e as VERSION,Va as rollup};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17425-                    "id": "DebugSymbols",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json:17426:                    "description": "Debug symbols available for a wasm script.",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17427-                    "type": "object",
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17569-                    "name": "executeWasmEvaluator",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json:17570:                    "description": "Execute a Wasm Evaluator module on a given call frame.",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17571-                    "experimental": true,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17650-                            "name": "scriptSource",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json:17651:                            "description": "Script source (empty in case of Wasm bytecode).",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17652-                            "type": "string"
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17655-                            "name": "bytecode",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json:17656:                            "description": "Wasm bytecode.",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17657-                            "optional": true,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17668-                            "name": "scriptId",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json:17669:                            "description": "Id of the Wasm script to get source for.",
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json-17670-                            "$ref": "Runtime.ScriptId"
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl-2111-      optional string objectGroup
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl:2112:      # Execution context in which to resolve the node.
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl-2113-      optional Runtime.ExecutionContextId executionContextId
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl-2333-# DOM debugging allows setting breakpoints on particular DOM operations and events. JavaScript
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl:2334:# execution will stop on these operations as if there was a regular breakpoint set.
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl-2335-domain DOMDebugger
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl-3980-      number total
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl:3981:      # Execution stack at the point of allocation.
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl-3982-      array of string stack
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl-5702-    returns
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl:5703:      # Execution context of the isolated world.
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.pdl-5704-      Runtime.ExecutionContextId executionContextId
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-43-  if (!ast) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:44:    throw Error(`Missing description comment for message "${message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-45-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-62-        // Until a compelling use case for supporting more @tags, throw to catch typos, etc.
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:63:        throw new Error(`Unexpected tagName "@${tag.tagName.text}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-64-      }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-67-    if (description.length === 0)
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:68:      throw Error(`Empty @description for message "${message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-69-    return {description, examples};
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-76-
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:77:  throw Error(`Missing description comment for message "${message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-78-}
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-98-  if (!match || !match.groups)
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:99:    throw new Error(`Incorrectly formatted @example: "${rawExample}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-100-  const {placeholderName, exampleValue} = match.groups;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-168-  if (match && match.length % 2 !== 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:169:    throw Error(`Open backtick in message "${message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-170-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-175-    if (segment.isCode) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:176:      const placeholderName = `MARKDOWN_SNIPPET_${idx++}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-177-      // Backtick replacement looks unreadable here, so .join() instead.
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-199-  if (message.match(/\[.*\] \(.*\)/)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:200:    throw Error(`Bad Link spacing in message "${message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-201-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-203-  if (message.match(/\[\]\(.*\)/)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:204:    throw Error(`markdown link text missing in message "${message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-205-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-217-    // Otherwise, append any links found.
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:218:    const startPlaceholder = `LINK_START_${idx}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:219:    const endPlaceholder = `LINK_END_${idx}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-220-    icu.message += '$' + startPlaceholder + '$' + segment.text + '$' + endPlaceholder + '$';
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-225-    icu.placeholders[endPlaceholder] = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:226:      content: `](${segment.linkHref})`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-227-    };
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-264-    if (!format.match(/^number$/)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:265:      throw Error(`Unsupported custom-formatted ICU format var "${format}" in message "${icu.message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-266-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-267-    if (!formatType.match(/milliseconds|seconds|bytes|percent|extendedPercent/)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:268:      throw Error(`Unsupported custom-formatted ICU type var "${formatType}" in message "${icu.message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-269-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-271-    // Append ICU replacements if there are any.
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:272:    const placeholderName = `CUSTOM_ICU_${idx++}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:273:    icu.message += `$${placeholderName}$`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-274-    let example;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-296-    icu.placeholders[placeholderName] = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:297:      content: `{${rawName}, number, ${formatType}}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-298-      example,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-318-    if (!examples[varName]) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:319:      throw Error(`Variable '${varName}' is missing @example comment in message "${tempMessage}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-320-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-324-    // Make sure all examples have ICU vars
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:325:    if (!icu.message.includes(`{${key}}`)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:326:      throw Error(`Example '${key}' provided, but has not corresponding ICU replacement in message "${icu.message}"`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-327-    }
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:328:    const eName = `ICU_${idx++}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:329:    tempMessage = tempMessage.replace(`{${key}}`, `$${eName}$`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-330-
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-331-    icu.placeholders[eName] = {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:332:      content: `{${key}}`,
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-333-      example: value,
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-347-  if (icu.message.match(/\$\$/)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:348:    throw new Error(`Ctc messages cannot contain double dollar: ${icu.message}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-349-  }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-532-
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:533:      const messageKey = `${relativeToRootPath} | ${key}`;
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-534-      strings[messageKey] = ctc;
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-560-function writeStringsToCtcFiles(locale, strings) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:561:  const fullPath = path.join(LH_ROOT, `lighthouse-core/lib/i18n/locales/${locale}.ctc.json`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-562-  /** @type {Record<string, CtcMessage>} */
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-580-  if ((collisions) > 0) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:581:    console.log(`MEANING COLLISION: ${collisions} string(s) have the same content.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-582-    assert.equal(
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-598-  lhl.forEach(function(locale) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js:599:    console.log(`Baked ${locale} into LHL format.`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/collect-strings.js-600-  });
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/bake-ctc-to-lhl.js-78-        if (!message.includes('$' + placeholder + '$')) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/bake-ctc-to-lhl.js:79:          throw Error(`Provided placeholder "${placeholder}" not found in message "${message}".`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/bake-ctc-to-lhl.js-80-        }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/bake-ctc-to-lhl.js-89-    if (message.match(/\$\w+\$/)) {
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/bake-ctc-to-lhl.js:90:      throw Error(`Message "${message}" is missing placeholder(s): ${message.match(/\$\w+\$/g)}`);
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/i18n/bake-ctc-to-lhl.js-91-    }
##############################################
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/axe-core/axe.min.js-11- */
chromium-84.0.4147.105/third_party/devtools-frontend/src/third_party/axe-core/axe.min.js:12:!function e(window){var a=window,document=window.document;function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e){this.name="SupportError",this.cause=e.cause,this.message="`".concat(e.cause,"` - feature unsupported in your environment."),e.ruleId&&(this.ruleId=e.ruleId,this.message+=" Skipping ".concat(this.ruleId," rule.")),this.stack=(new Error).stack}(axe=axe||{}).version="3.3.2","function"==typeof define&&define.amd&&define("axe-core",[],function(){"use strict";return axe}),"object"===("undefined"==typeof module?"undefined":S(module))&&module.exports&&"function"==typeof e.toString&&(axe.source="("+e.toString()+')(typeof window === "object" ? window : this);',module.exports=axe),"function"==typeof window.getComputedStyle&&(window.axe=axe),(l.prototype=Object.create(Error.prototype)).constructor=l,function o(i,u,s){function l(t,e){if(!u[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(c)return c(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var a=u[t]={exports:{}};i[t][0].call(a.exports,function(e){return l(i[t][1][e]||e)},a,a.exports,o,i,u,s)}return u[t].exports}for(var c="function"==typeof require&&require,e=0;e<s.length;e++)l(s[e]);return l}({1:[function(e,t,n){"Promise"in window||e("es6-promise").polyfill(),e("weakmap-polyfill"),axe.imports={axios:e("axios"),CssSelectorParser:e("css-selector-parser").CssSelectorParser,doT:e("@deque/dot"),emojiRegexText:e("emoji-regex")}},{"@deque/dot":2,axios:3,"css-selector-parser":29,"emoji-regex":31,"es6-promise":32,"weakmap-polyfill":34}],2:[function(e,t,n){!function(){"use strict";var s={name:"doT",version:"1.1.1",templateSettings:{evaluate:/\{\{([\s\S]+?(\}?)+)\}\}/g,interpolate:/\{\{=([\s\S]+?)\}\}/g,encode:/\{\{!([\s\S]+?)\}\}/g,use:/\{\{#([\s\S]+?)\}\}/g,useParams:/(^|[^\w$])def(?:\.|\[[\'\"])([\w$\.]+)(?:[\'\"]\])?\s*\:\s*([\w$\.]+|\"[^\"]+\"|\'[^\']+\'|\{[^\}]+\})/g,define:/\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,defineParams:/^\s*([\w$]+):([\s\S]+)/,conditional:/\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,iterate:/\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,varname:"it",strip:!0,append:!0,selfcontained:!1,doNotSkipEncoded:!1},template:void 0,compile:void 0,log:!0};"object"!=typeof globalThis&&(Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__),s.encodeHTMLSource=function(e){var t={"&":"&#38;","<":"&#60;",">":"&#62;",'"':"&#34;","'":"&#39;","/":"&#47;"},n=e?/[&<>"'\/]/g:/&(?!#?\w+;)|<|>|"|'|\//g;return function(e){return e?e.toString().replace(n,function(e){return t[e]||e}):""}},void 0!==t&&t.exports?t.exports=s:"function"==typeof define&&define.amd?define(function(){return s}):globalThis.doT=s;var l={append:{start:"'+(",end:")+'",startencode:"'+encodeHTML("},split:{start:"';out+=(",end:");out+='",startencode:"';out+=encodeHTML("}},c=/$^/;function d(e){return e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ")}s.template=function(e,t,n){var r,a,o=(t=t||s.templateSettings).append?l.append:l.split,i=0,u=t.use||t.define?function r(a,e,o){return("string"==typeof e?e:e.toString()).replace(a.define||c,function(e,r,t,n){return 0===r.indexOf("def.")&&(r=r.substring(4)),r in o||(":"===t?(a.defineParams&&n.replace(a.defineParams,function(e,t,n){o[r]={arg:t,text:n}}),r in o||(o[r]=n)):new Function("def","def['"+r+"']="+n)(o)),""}).replace(a.use||c,function(e,t){a.useParams&&(t=t.replace(a.useParams,function(e,t,n,r){if(o[n]&&o[n].arg&&r){var a=(n+":"+r).replace(/'|\\/g,"_");return o.__exp=o.__exp||{},o.__exp[a]=o[n].text.replace(new RegExp("(^|[^\\w$])"+o[n].arg+"([^\\w$])","g"),"$1"+r+"$2"),t+"def.__exp['"+a+"']"}}));var n=new Function("def","return "+t)(o);return n?r(a,n,o):n})}(t,e,n||{}):e;u=("var out='"+(t.strip?u.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""):u).replace(/'|\\/g,"\\$&").replace(t.interpolate||c,function(e,t){return o.start+d(t)+o.end}).replace(t.encode||c,function(e,t){return r=!0,o.startencode+d(t)+o.end}).replace(t.conditional||c,function(e,t,n){return t?n?"';}else if("+d(n)+"){out+='":"';}else{out+='":n?"';if("+d(n)+"){out+='":"';}out+='"}).replace(t.iterate||c,function(e,t,n,r){return t?(i+=1,a=r||"i"+i,t=d(t),"';var arr"+i+"="+t+";if(arr"+i+"){var "+n+","+a+"=-1,l"+i+"=arr"+i+".length-1;while("+a+"<l"+i+"){"+n+"=arr"+i+"["+a+"+=1];out+='"):"';} } out+='"}).replace(t.evaluate||c,function(e,t){return"';"+d(t)+"out+='"})+"';return out;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)out\+='';/g,"$1").replace(/\+''/g,""),r&&(t.selfcontained||!globalThis||globalThis._encodeHTML||(globalThis._encodeHTML=s.encodeHTMLSource(t.doNotSkipEncoded)),u="var encodeHTML = typeof _encodeHTML !== 'undefined' ? _encodeHTML : ("+s.encodeHTMLSource.toString()+"("+(t.doNotSkipEncoded||"")+"));"+u);try{return new Function(t.varname,u)}catch(e){throw"undefined"!=typeof console&&console.log("Could not create a template function: "+u),e}},s.compile=function(e,t){return s.template(e,null,t)}}()},{}],3:[function(e,t,n){t.exports=e("./lib/axios")},{"./lib/axios":5}],4:[function(c,e,t){"use strict";var utils=c("./../utils"),d=c("./../core/settle"),m=c("./../helpers/buildURL"),p=c("./../helpers/parseHeaders"),f=c("./../helpers/isURLSameOrigin"),h=c("../core/createError");e.exports=function(l){return new Promise(function(n,r){var a=l.data,o=l.headers;utils.isFormData(a)&&delete o["Content-Type"];var i=new XMLHttpRequest;if(l.auth){var e=l.auth.username||"",t=l.auth.password||"";o.Authorization="Basic "+btoa(e+":"+t)}if(i.open(l.method.toUpperCase(),m(l.url,l.params,l.paramsSerializer),!0),i.timeout=l.timeout,i.onreadystatechange=function(){if(i&&4===i.readyState&&(0!==i.status||i.responseURL&&0===i.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in i?p(i.getAllResponseHeaders()):null,t={data:l.responseType&&"text"!==l.responseType?i.response:i.responseText,status:i.status,statusText:i.statusText,headers:e,config:l,request:i};d(n,r,t),i=null}},i.onabort=function(){i&&(r(h("Request aborted",l,"ECONNABORTED",i)),i=null)},i.onerror=function(){r(h("Network Error",l,null,i)),i=null},i.ontimeout=function(){r(h("timeout of "+l.timeout+"ms exceeded",l,"ECONNABORTED",i)),i=null},utils.isStandardBrowserEnv()){var u=c("./../helpers/cookies"),s=(l.withCredentials||f(l.url))&&l.xsrfCookieName?u.read(l.xsrfCookieName):void 0;s&&(o[l.xsrfHeaderName]=s)}if("setRequestHeader"in i&&utils.forEach(o,function(e,t){void 0===a&&"content-type"===t.toLowerCase()?delete o[t]:i.setRequestHeader(t,e)}),l.withCredentials&&(i.withCredentials=!0),l.responseType)try{i.responseType=l.responseType}catch(e){if("json"!==l.responseType)throw e}"function"==typeof l.onDownloadProgress&&i.addEventListener("progress",l.onDownloadProgress),"function"==typeof l.onUploadProgress&&i.upload&&i.upload.addEventListener("progress",l.onUploadProgress),l.cancelToken&&l.cancelToken.promise.then(function(e){i&&(i.abort(),r(e),i=null)}),void 0===a&&(a=null),i.send(a)})}},{"../core/createError":11,"./../core/settle":15,"./../helpers/buildURL":19,"./../helpers/cookies":21,"./../helpers/isURLSameOrigin":23,"./../helpers/parseHeaders":25,"./../utils":27}],5:[function(e,t,n){"use strict";var utils=e("./utils"),r=e("./helpers/bind"),a=e("./core/Axios"),o=e("./core/mergeConfig");function i(e){var t=new a(e),n=r(a.prototype.request,t);return utils.extend(n,a.prototype,t),utils.extend(n,t),n}var u=i(e("./defaults"));u.Axios=a,u.create=function(e){return i(o(u.defaults,e))},u.Cancel=e("./cancel/Cancel"),u.CancelToken=e("./cancel/CancelToken"),u.isCancel=e("./cancel/isCancel"),u.all=function(e){return Promise.all(e)},u.spread=e("./helpers/spread"),t.exports=u,t.exports.default=u},{"./cancel/Cancel":6,"./cancel/CancelToken":7,"./cancel/isCancel":8,"./core/Axios":9,"./core/mergeConfig":14,"./defaults":17,"./helpers/bind":18,"./helpers/spread":26,"./utils":27}],6:[function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,t.exports=r},{}],7:[function(e,t,n){"use strict";var r=e("./Cancel");function a(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new r(e),t(n.reason))})}a.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},a.source=function(){var t;return{token:new a(function(e){t=e}),cancel:t}},t.exports=a},{"./Cancel":6}],8:[function(e,t,n){"use strict";t.exports=function(e){return!(!e||!e.__CANCEL__)}},{}],9:[function(e,t,n){"use strict";var utils=e("./../utils"),r=e("../helpers/buildURL"),a=e("./InterceptorManager"),o=e("./dispatchRequest"),i=e("./mergeConfig");function u(e){this.defaults=e,this.interceptors={request:new a,response:new a}}u.prototype.request=function(e,t){"string"==typeof e?(e=t||{}).url=arguments[0]:e=e||{},(e=i(this.defaults,e)).method=e.method?e.method.toLowerCase():"get";var n=[o,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)r=r.then(n.shift(),n.shift());return r},u.prototype.getUri=function(e){return e=i(this.defaults,e),r(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},utils.forEach(["delete","get","head","options"],function(n){u.prototype[n]=function(e,t){return this.request(utils.merge(t||{},{method:n,url:e}))}}),utils.forEach(["post","put","patch"],function(r){u.prototype[r]=function(e,t,n){return this.request(utils.merge(n||{},{method:r,url:e,data:t}))}}),t.exports=u},{"../helpers/buildURL":19,"./../utils":27,"./InterceptorManager":10,"./dispatchRequest":12,"./mergeConfig":14}],10:[function(e,t,n){"use strict";var utils=e("./../utils");function r(){this.handlers=[]}r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(t){utils.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=r},{"./../utils":27}],11:[function(e,t,n){"use strict";var i=e("./enhanceError");t.exports=function(e,t,n,r,a){var o=new Error(e);return i(o,t,n,r,a)}},{"./enhanceError":13}],12:[function(e,t,n){"use strict";var utils=e("./../utils"),r=e("./transformData"),a=e("../cancel/isCancel"),o=e("../defaults"),i=e("./../helpers/isAbsoluteURL"),u=e("./../helpers/combineURLs");function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}t.exports=function(t){return s(t),t.baseURL&&!i(t.url)&&(t.url=u(t.baseURL,t.url)),t.headers=t.headers||{},t.data=r(t.data,t.headers,t.transformRequest),t.headers=utils.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),utils.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||o.adapter)(t).then(function(e){return s(t),e.data=r(e.data,e.headers,t.transformResponse),e},function(e){return a(e)||(s(t),e&&e.response&&(e.response.data=r(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}},{"../cancel/isCancel":8,"../defaults":17,"./../helpers/combineURLs":20,"./../helpers/isAbsoluteURL":22,"./../utils":27,"./transformData":16}],13:[function(e,t,n){"use strict";t.exports=function(e,t,n,r,a){return e.config=t,n&&(e.code=n),e.request=r,e.response=a,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},{}],14:[function(e,t,n){"use strict";var utils=e("../utils");t.exports=function(t,n){n=n||{};var r={};return utils.forEach(["url","method","params","data"],function(e){void 0!==n[e]&&(r[e]=n[e])}),utils.forEach(["headers","auth","proxy"],function(e){utils.isObject(n[e])?r[e]=utils.deepMerge(t[e],n[e]):void 0!==n[e]?r[e]=n[e]:utils.isObject(t[e])?r[e]=utils.deepMerge(t[e]):void 0!==t[e]&&(r[e]=t[e])}),utils.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(e){void 0!==n[e]?r[e]=n[e]:void 0!==t[e]&&(r[e]=t[e])}),r}},{"../utils":27}],15:[function(e,t,n){"use strict";var a=e("./createError");t.exports=function(e,t,n){var r=n.config.validateStatus;!r||r(n.status)?e(n):t(a("Request failed with status code "+n.status,n.config,null,n.request,n))}},{"./createError":11}],16:[function(e,t,n){"use strict";var utils=e("./../utils");t.exports=function(t,n,e){return utils.forEach(e,function(e){t=e(t,n)}),t}},{"./../utils":27}],17:[function(i,u,e){(function(e){"use strict";var utils=i("./utils"),n=i("./helpers/normalizeHeaderName"),t={"Content-Type":"application/x-www-form-urlencoded"};function r(e,t){!utils.isUndefined(e)&&utils.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var a,o={adapter:(void 0!==e&&"[object process]"===Object.prototype.toString.call(e)?a=i("./adapters/http"):"undefined"!=typeof XMLHttpRequest&&(a=i("./adapters/xhr")),a),transformRequest:[function(e,t){return n(t,"Accept"),n(t,"Content-Type"),utils.isFormData(e)||utils.isArrayBuffer(e)||utils.isBuffer(e)||utils.isStream(e)||utils.isFile(e)||utils.isBlob(e)?e:utils.isArrayBufferView(e)?e.buffer:utils.isURLSearchParams(e)?(r(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):utils.isObject(e)?(r(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return 200<=e&&e<300}};o.headers={common:{Accept:"application/json, text/plain, */*"}},utils.forEach(["delete","get","head"],function(e){o.headers[e]={}}),utils.forEach(["post","put","patch"],function(e){o.headers[e]=utils.merge(t)}),u.exports=o}).call(this,i("_process"))},{"./adapters/http":4,"./adapters/xhr":4,"./helpers/normalizeHeaderName":24,"./utils":27,_process:33}],18:[function(e,t,n){"use strict";t.exports=function(n,r){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];return n.apply(r,e)}}},{}],19:[function(e,t,n){"use strict";var utils=e("./../utils");function i(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(e,t,n){if(!t)return e;var r;if(n)r=n(t);else if(utils.isURLSearchParams(t))r=t.toString();else{var a=[];utils.forEach(t,function(e,t){null!=e&&(utils.isArray(e)?t+="[]":e=[e],utils.forEach(e,function(e){utils.isDate(e)?e=e.toISOString():utils.isObject(e)&&(e=JSON.stringify(e)),a.push(i(t)+"="+i(e))}))}),r=a.join("&")}if(r){var o=e.indexOf("#");-1!==o&&(e=e.slice(0,o)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}},{"./../utils":27}],20:[function(e,t,n){"use strict";t.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},{}],21:[function(e,t,n){"use strict";var utils=e("./../utils");t.exports=utils.isStandardBrowserEnv()?{write:function(e,t,n,r,a,o){var i=[];i.push(e+"="+encodeURIComponent(t)),utils.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),utils.isString(r)&&i.push("path="+r),utils.isString(a)&&i.push("domain="+a),!0===o&&i.push("secure"),document.cookie=i.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},{"./../utils":27}],22:[function(e,t,n){"use strict";t.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},{}],23:[function(e,t,n){"use strict";var r,a,o,utils=e("./../utils");function i(e){var t=e;return a&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}t.exports=utils.isStandardBrowserEnv()?(a=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a"),r=i(window.location.href),function(e){var t=utils.isString(e)?i(e):e;return t.protocol===r.protocol&&t.host===r.host}):function(){return!0}},{"./../utils":27}],24:[function(e,t,n){"use strict";var utils=e("../utils");t.exports=function(n,r){utils.forEach(n,function(e,t){t!==r&&t.toUpperCase()===r.toUpperCase()&&(n[r]=e,delete n[t])})}},{"../utils":27}],25:[function(e,t,n){"use strict";var utils=e("./../utils"),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(e){var t,n,r,a={};return e&&utils.forEach(e.split("\n"),function(e){if(r=e.indexOf(":"),t=utils.trim(e.substr(0,r)).toLowerCase(),n=utils.trim(e.substr(r+1)),t){if(a[t]&&0<=o.indexOf(t))return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}}),a}},{"./../utils":27}],26:[function(e,t,n){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},{}],27:[function(e,t,n){"use strict";var a=e("./helpers/bind"),r=e("is-buffer"),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function u(e){return null!==e&&"object"==typeof e}function s(e){return"[object Function]"===o.call(e)}function l(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.call(null,e[a],a,e)}t.exports={isArray:i,isArrayBuffer:function(e){return"[object ArrayBuffer]"===o.call(e)},isBuffer:r,isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:u,isUndefined:function(e){return void 0===e},isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:s,isStream:function(e){return u(e)&&s(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&(void 0!==window&&void 0!==document)},forEach:l,merge:function n(){var r={};function e(e,t){"object"==typeof r[t]&&"object"==typeof e?r[t]=n(r[t],e):r[t]=e}for(var t=0,a=arguments.length;t<a;t++)l(arguments[t],e);return r},deepMerge:function n(){var r={};function e(e,t){"object"==typeof r[t]&&"object"==typeof e?r[t]=n(r[t],e):r[t]="object"==typeof e?n({},e):e}for(var t=0,a=arguments.length;t<a;t++)l(arguments[t],e);return r},extend:function(n,e,r){return l(e,function(e,t){n[t]=r&&"function"==typeof e?a(e,r):e}),n},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},{"./helpers/bind":18,"is-buffer":28}],28:[function(e,t,n){t.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},{}],29:[function(e,t,n){t.exports={CssSelectorParser:e("./lib/css-selector-parser.js").CssSelectorParser}},{"./lib/css-selector-parser.js":30}],30:[function(e,t,n){function r(){this.pseudos={},this.attrEqualityMods={},this.ruleNestingOperators={},this.substitutesEnabled=!1}function o(e){return"a"<=e&&e<="f"||"A"<=e&&e<="F"||"0"<=e&&e<="9"}r.prototype.registerSelectorPseudos=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],this.pseudos[e]="selector";return this},r.prototype.unregisterSelectorPseudos=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],delete this.pseudos[e];return this},r.prototype.registerNumericPseudos=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],this.pseudos[e]="numeric";return this},r.prototype.unregisterNumericPseudos=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],delete this.pseudos[e];return this},r.prototype.registerNestingOperators=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],this.ruleNestingOperators[e]=!0;return this},r.prototype.unregisterNestingOperators=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],delete this.ruleNestingOperators[e];return this},r.prototype.registerAttrEqualityMods=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],this.attrEqualityMods[e]=!0;return this},r.prototype.unregisterAttrEqualityMods=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],delete this.attrEqualityMods[e];return this},r.prototype.enableSubstitutes=function(){return this.substitutesEnabled=!0,this},r.prototype.disableSubstitutes=function(){return this.substitutesEnabled=!1,this};var u={"!":!0,'"':!0,"#":!0,$:!0,"%":!0,"&":!0,"'":!0,"(":!0,")":!0,"*":!0,"+":!0,",":!0,".":!0,"/":!0,";":!0,"<":!0,"=":!0,">":!0,"?":!0,"@":!0,"[":!0,"\\":!0,"]":!0,"^":!0,"`":!0,"{":!0,"|":!0,"}":!0,"~":!0},i={"\n":"\\n","\r":"\\r","\t":"\\t","\f":"\\f","\v":"\\v"},y={n:"\n",r:"\r",t:"\t",f:"\f","\\":"\\","'":"'"},v={n:"\n",r:"\r",t:"\t",f:"\f","\\":"\\",'"':'"'};function a(s,l,c,d,a,m){var p,f,h,b,g;return b=s.length,p=null,h=function(e,t){var n,r,a;for(a="",l++,p=s.charAt(l);l<b;){if(p===e)return l++,a;if("\\"===p)if(l++,(p=s.charAt(l))===e)a+=e;else if(n=t[p])a+=n;else{if(o(p)){for(r=p,l++,p=s.charAt(l);o(p);)r+=p,l++,p=s.charAt(l);" "===p&&(l++,p=s.charAt(l)),a+=String.fromCharCode(parseInt(r,16));continue}a+=p}else a+=p;l++,p=s.charAt(l)}return a},f=function(){var e,t="";for(p=s.charAt(l);l<b;){if("a"<=(e=p)&&e<="z"||"A"<=e&&e<="Z"||"0"<=e&&e<="9"||"-"===e||"_"===e)t+=p;else{if("\\"!==p)return t;if(b<=++l)throw Error("Expected symbol but end of file reached.");if(p=s.charAt(l),u[p])t+=p;else{if(o(p)){var n=p;for(l++,p=s.charAt(l);o(p);)n+=p,l++,p=s.charAt(l);" "===p&&(l++,p=s.charAt(l)),t+=String.fromCharCode(parseInt(n,16));continue}t+=p}}l++,p=s.charAt(l)}return t},g=function(){p=s.charAt(l);for(var e=!1;" "===p||"\t"===p||"\n"===p||"\r"===p||"\f"===p;)e=!0,l++,p=s.charAt(l);return e},this.parse=function(){var e=this.parseSelector();if(l<b)throw Error('Rule expected but "'+s.charAt(l)+'" found.');return e},this.parseSelector=function(){var e,t=e=this.parseSingleSelector();for(p=s.charAt(l);","===p;){if(l++,g(),"selectors"!==e.type&&(e={type:"selectors",selectors:[t]}),!(t=this.parseSingleSelector()))throw Error('Rule expected after ",".');e.selectors.push(t)}return e},this.parseSingleSelector=function(){g();var e={type:"ruleSet"},t=this.parseRule();if(!t)return null;for(var n=e;t&&(t.type="rule",n.rule=t,n=t,g(),p=s.charAt(l),!(b<=l||","===p||")"===p));)if(a[p]){var r=p;if(l++,g(),!(t=this.parseRule()))throw Error('Rule expected after "'+r+'".');t.nestingOperator=r}else(t=this.parseRule())&&(t.nestingOperator=null);return e},this.parseRule=function(){for(var e,t=null;l<b;)if("*"===(p=s.charAt(l)))l++,(t=t||{}).tagName="*";else if("a"<=(e=p)&&e<="z"||"A"<=e&&e<="Z"||"-"===e||"_"===e||"\\"===p)(t=t||{}).tagName=f();else if("."===p)l++,((t=t||{}).classNames=t.classNames||[]).push(f());else if("#"===p)l++,(t=t||{}).id=f();else if("["===p){l++,g();var n={name:f()};if(g(),"]"===p)l++;else{var r="";if(d[p]&&(r=p,l++,p=s.charAt(l)),b<=l)throw Error('Expected "=" but end of file reached.');if("="!==p)throw Error('Expected "=" but "'+p+'" found.');n.operator=r+"=",l++,g();var a="";if(n.valueType="string",'"'===p)a=h('"',v);else if("'"===p)a=h("'",y);else if(m&&"$"===p)l++,a=f(),n.valueType="substitute";else{for(;l<b&&"]"!==p;)a+=p,l++,p=s.charAt(l);a=a.trim()}if(g(),b<=l)throw Error('Expected "]" but end of file reached.');if("]"!==p)throw Error('Expected "]" but "'+p+'" found.');l++,n.value=a}((t=t||{}).attrs=t.attrs||[]).push(n)}else{if(":"!==p)break;l++;var o=f(),i={name:o};if("("===p){l++;var u="";if(g(),"selector"===c[o])i.valueType="selector",u=this.parseSelector();else{if(i.valueType=c[o]||"string",'"'===p)u=h('"',v);else if("'"===p)u=h("'",y);else if(m&&"$"===p)l++,u=f(),i.valueType="substitute";else{for(;l<b&&")"!==p;)u+=p,l++,p=s.charAt(l);u=u.trim()}g()}if(b<=l)throw Error('Expected ")" but end of file reached.');if(")"!==p)throw Error('Expected ")" but "'+p+'" found.');l++,i.value=u}((t=t||{}).pseudos=t.pseudos||[]).push(i)}return t},this}r.prototype.parse=function(e){return new a(e,0,this.pseudos,this.attrEqualityMods,this.ruleNestingOperators,this.substitutesEnabled).parse()},r.prototype.escapeIdentifier=function(e){for(var t="",n=0,r=e.length;n<r;){var a=e.charAt(n);if(u[a])t+="\\"+a;else if("_"===a||"-"===a||"A"<=a&&a<="Z"||"a"<=a&&a<="z"||0!==n&&"0"<=a&&a<="9")t+=a;else{var o=a.charCodeAt(0);if(55296==(63488&o)){var i=e.charCodeAt(n++);if(55296!=(64512&o)||56320!=(64512&i))throw Error("UCS-2(decode): illegal sequence");o=((1023&o)<<10)+(1023&i)+65536}t+="\\"+o.toString(16)+" "}n++}return t},r.prototype.escapeStr=function(e){for(var t,n,r="",a=0,o=e.length;a<o;)'"'===(t=e.charAt(a))?t='\\"':"\\"===t?t="\\\\":(n=i[t])&&(t=n),r+=t,a++;return'"'+r+'"'},r.prototype.render=function(e){return this._renderEntity(e).trim()},r.prototype._renderEntity=function(e){var t,n,r;switch(r="",e.type){case"ruleSet":for(t=e.rule,n=[];t;)t.nestingOperator&&n.push(t.nestingOperator),n.push(this._renderEntity(t)),t=t.rule;r=n.join(" ");break;case"selectors":r=e.selectors.map(this._renderEntity,this).join(", ");break;case"rule":e.tagName&&(r="*"===e.tagName?"*":this.escapeIdentifier(e.tagName)),e.id&&(r+="#"+this.escapeIdentifier(e.id)),e.classNames&&(r+=e.classNames.map(function(e){return"."+this.escapeIdentifier(e)},this).join("")),e.attrs&&(r+=e.attrs.map(function(e){return e.operator?"substitute"===e.valueType?"["+this.escapeIdentifier(e.name)+e.operator+"$"+e.value+"]":"["+this.escapeIdentifier(e.name)+e.operator+this.escapeStr(e.value)+"]":"["+this.escapeIdentifier(e.name)+"]"},this).join("")),e.pseudos&&(r+=e.pseudos.map(function(e){return e.valueType?"selector"===e.valueType?":"+this.escapeIdentifier(e.name)+"("+this._renderEntity(e.value)+")":"substitute"===e.valueType?":"+this.escapeIdentifier(e.name)+"($"+e.value+")":"numeric"===e.valueType?":"+this.escapeIdentifier(e.name)+"("+e.value+")":":"+this.escapeIdentifier(e.name)+"("+this.escapeIdentifier(e.value)+")":":"+this.escapeIdentifier(e.name)},this).join(""));break;default:throw Error('Unknown entity type: "'+e.type(NaN))}return r},n.CssSelectorParser=r},{}],31:[function(e,t,n){"use strict";t.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}},{}],32:[function(V,n,r){(function(P,U){var e,t;e=this,t=function(){"use strict";function s(e){return"function"==typeof e}var n=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},r=0,t=void 0,a=void 0,i=function(e,t){m[r]=e,m[r+1]=t,2===(r+=2)&&(a?a(p):y())};var e=void 0!==window?window:void 0,o=e||{},u=o.MutationObserver||o.WebKitMutationObserver,l="undefined"==typeof self&&void 0!==P&&"[object process]"==={}.toString.call(P),c="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function d(){var e=setTimeout;return function(){return e(p,1)}}var m=new Array(1e3);function p(){for(var e=0;e<r;e+=2){(0,m[e])(m[e+1]),m[e]=void 0,m[e+1]=void 0}r=0}var f,h,b,g,y=void 0;function v(e,t){var n=this,r=new this.constructor(k);void 0===r[w]&&O(r);var a=n._state;if(a){var o=arguments[a-1];i(function(){return S(a,r,o,n._result)})}else N(n,r,e,t);return r}function D(e){if(e&&"object"==typeof e&&e.constructor===this)return e;var t=new this(k);return F(t,e),t}y=l?function(){return P.nextTick(p)}:u?(h=0,b=new u(p),g=document.createTextNode(""),b.observe(g,{characterData:!0}),function(){g.data=h=++h%2}):c?((f=new MessageChannel).port1.onmessage=p,function(){return f.port2.postMessage(0)}):void 0===e&&"function"==typeof V?function(){try{var e=Function("return this")().require("vertx");return void 0!==(t=e.runOnLoop||e.runOnContext)?function(){t(p)}:d()}catch(e){return d()}}():d();var w=Math.random().toString(36).substring(2);function k(){}var x=void 0,E=1,C=2;function A(e,t,n){t.constructor===e.constructor&&n===v&&t.constructor.resolve===D?function(t,e){e._state===E?z(t,e._result):e._state===C?q(t,e._result):N(e,void 0,function(e){return F(t,e)},function(e){return q(t,e)})}(e,t):void 0===n?z(e,t):s(n)?function(e,r,a){i(function(t){var n=!1,e=function(e,t,n,r){try{e.call(t,n,r)}catch(e){return e}}(a,r,function(e){n||(n=!0,r!==e?F(t,e):z(t,e))},function(e){n||(n=!0,q(t,e))},t._label);!n&&e&&(n=!0,q(t,e))},e)}(e,t,n):z(e,t)}function F(t,e){if(t===e)q(t,new TypeError("You cannot resolve a promise with itself"));else if(function(e){var t=typeof e;return null!==e&&("object"==t||"function"==t)}(e)){var n=void 0;try{n=e.then}catch(e){return void q(t,e)}A(t,e,n)}else z(t,e)}function j(e){e._onerror&&e._onerror(e._result),T(e)}function z(e,t){e._state===x&&(e._result=t,e._state=E,0!==e._subscribers.length&&i(T,e))}function q(e,t){e._state===x&&(e._state=C,e._result=t,i(j,e))}function N(e,t,n,r){var a=e._subscribers,o=a.length;e._onerror=null,a[o]=t,a[o+E]=n,a[o+C]=r,0===o&&e._state&&i(T,e)}function T(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r=void 0,a=void 0,o=e._result,i=0;i<t.length;i+=3)r=t[i],a=t[i+n],r?S(n,r,a,o):a(o);e._subscribers.length=0}}function S(e,t,n,r){var a=s(n),o=void 0,i=void 0,u=!0;if(a){try{o=n(r)}catch(e){u=!1,i=e}if(t===o)return void q(t,new TypeError("A promises callback cannot return that same promise."))}else o=r;t._state!==x||(a&&u?F(t,o):!1===u?q(t,i):e===E?z(t,o):e===C&&q(t,o))}var R=0;function O(e){e[w]=R++,e._state=void 0,e._result=void 0,e._subscribers=[]}var _=(B.prototype._enumerate=function(e){for(var t=0;this._state===x&&t<e.length;t++)this._eachEntry(e[t],t)},B.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===D){var a=void 0,o=void 0,i=!1;try{a=t.then}catch(e){i=!0,o=e}if(a===v&&t._state!==x)this._settledAt(t._state,e,t._result);else if("function"!=typeof a)this._remaining--,this._result[e]=t;else if(n===L){var u=new n(k);i?q(u,o):A(u,t,a),this._willSettleAt(u,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},B.prototype._settledAt=function(e,t,n){var r=this.promise;r._state===x&&(this._remaining--,e===C?q(r,n):this._result[t]=n),0===this._remaining&&z(r,this._result)},B.prototype._willSettleAt=function(e,t){var n=this;N(e,void 0,function(e){return n._settledAt(E,t,e)},function(e){return n._settledAt(C,t,e)})},B);function B(e,t){this._instanceConstructor=e,this.promise=new e(k),this.promise[w]||O(this.promise),n(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?z(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&z(this.promise,this._result))):q(this.promise,new Error("Array Methods must be provided an Array"))}var L=(I.prototype.catch=function(e){return this.then(null,e)},I.prototype.finally=function(t){var n=this.constructor;return s(t)?this.then(function(e){return n.resolve(t()).then(function(){return e})},function(e){return n.resolve(t()).then(function(){throw e})}):this.then(t,t)},I);function I(e){this[w]=R++,this._result=this._state=void 0,this._subscribers=[],k!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof I?function(t,e){try{e(function(e){F(t,e)},function(e){q(t,e)})}catch(e){q(t,e)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return L.prototype.then=v,L.all=function(e){return new _(this,e).promise},L.race=function(a){var o=this;return n(a)?new o(function(e,t){for(var n=a.length,r=0;r<n;r++)o.resolve(a[r]).then(e,t)}):new o(function(e,t){return t(new TypeError("You must pass an array to race."))})},L.resolve=D,L.reject=function(e){var t=new this(k);return q(t,e),t},L._setScheduler=function(e){a=e},L._setAsap=function(e){i=e},L._asap=i,L.polyfill=function(){var e=void 0;if(void 0!==U)e=U;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var n=null;try{n=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===n&&!t.cast)return}e.Promise=L},L.Promise=L},"object"==typeof r&&void 0!==n?n.exports=t():"function"==typeof define&&define.amd?define(t):e.ES6Promise=t()}).call(this,V("_process"),void 0!==a?a:"undefined"!=typeof self?self:void 0!==window?window:{})},{_process:33}],33:[function(e,t,n){var r,a,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function u(){throw new Error("clearTimeout has not been defined")}function s(t){if(r===setTimeout)return setTimeout(t,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{a="function"==typeof clearTimeout?clearTimeout:u}catch(e){a=u}}();var l,c=[],d=!1,m=-1;function p(){d&&l&&(d=!1,l.length?c=l.concat(c):m=-1,c.length&&f())}function f(){if(!d){var e=s(p);d=!0;for(var t=c.length;t;){for(l=c,c=[];++m<t;)l&&l[m].run();m=-1,t=c.length}l=null,d=!1,function(t){if(a===clearTimeout)return clearTimeout(t);if((a===u||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(t);try{a(t)}catch(e){try{return a.call(null,t)}catch(e){return a.call(this,t)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function b(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(1<arguments.length)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new h(e,t)),1!==c.length||d||s(f)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=b,o.addListener=b,o.once=b,o.off=b,o.removeListener=b,o.removeAllListeners=b,o.emit=b,o.prependListener=b,o.prependOnceListener=b,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},{}],34:[function(e,t,n){(function(e){!function(e){"use strict";if(!e.WeakMap){var n=Object.prototype.hasOwnProperty,r=function(e,t,n){Object.defineProperty?Object.defineProperty(e,t,{configurable:!0,writable:!0,value:n}):e[t]=n};e.WeakMap=(r(t.prototype,"delete",function(e){if(a(this,"delete"),!i(e))return!1;var t=e[this._id];return!(!t||t[0]!==e||(delete e[this._id],0))}),r(t.prototype,"get",function(e){if(a(this,"get"),i(e)){var t=e[this._id];return t&&t[0]===e?t[1]:void 0}}),r(t.prototype,"has",function(e){if(a(this,"has"),!i(e))return!1;var t=e[this._id];return!(!t||t[0]!==e)}),r(t.prototype,"set",function(e,t){if(a(this,"set"),!i(e))throw new TypeError("Invalid value used as weak map key");var n=e[this._id];return n&&n[0]===e?n[1]=t:r(e,this._id,[e,t]),this}),r(t,"_polyfill",!0),t)}function t(){if(void 0===this)throw new TypeError("Constructor WeakMap requires 'new'");if(r(this,"_id",function(e){return e+"_"+o()+"."+o()}("_WeakMap")),0<arguments.length)throw new TypeError("WeakMap iterable is not supported")}function a(e,t){if(!i(e)||!n.call(e,"_id"))throw new TypeError(t+" method called on incompatible receiver "+typeof e)}function o(){return Math.random().toString().substring(2)}function i(e){return Object(e)===e}}("undefined"!=typeof self?self:void 0!==window?window:void 0!==e?e:this)}).call(this,void 0!==a?a:"undefined"!=typeof self?self:void 0!==window?window:{})},{}]},{},[1]);var utils=axe.utils={},u={};function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function t(e,t,n){"use strict";var r,a;for(r=0,a=e.length;r<a;r++)t[n](e[r])}function n(e){this.brand="axe",this.application="axeAPI",this.tagExclude=["experimental"],this.defaultConfig=e,this._init(),this._defaultLocale=null}n.prototype._setDefaultLocale=function(){if(!this._defaultLocale){for(var e={checks:{},rules:{}},t=Object.keys(this.data.checks),n=0;n<t.length;n++){var r=t[n],a=this.data.checks[r].messages,o=a.pass,i=a.fail,u=a.incomplete;e.checks[r]={pass:o,fail:i,incomplete:u}}for(var s=Object.keys(this.data.rules),l=0;l<s.length;l++){var c=s[l],d=this.data.rules[c],m=d.description,p=d.help;e.rules[c]={description:m,help:p}}this._defaultLocale=e}},n.prototype._resetLocale=function(){var e=this._defaultLocale;e&&this.applyLocale(e)};function c(a,e,o){return o.performanceTimer&&axe.utils.performanceTimer.mark("mark_rule_start_"+a.id),function(n,r){a.run(e,o,function(e){n(e)},function(e){if(o.debug)r(e);else{var t=Object.assign(new f(a),{result:axe.constants.CANTTELL,description:"An error occured while running this rule",message:e.message,stack:e.stack,error:e,errorNode:e.errorNode});n(t)}})}}function o(e,t,n){var r=e.brand,a=e.application;return axe.constants.helpUrlBase+r+"/"+(n||axe.version.substring(0,axe.version.lastIndexOf(".")))+"/"+t+"?application="+a}function d(e){"use strict";this.id=e.id,this.data=null,this.relatedNodes=[],this.result=null}function r(e){"use strict";return"string"==typeof e?new Function("return "+e+";")():e}function i(e){e&&(this.id=e.id,this.configure(e))}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t,n){"use strict";var r,a;e.frames=e.frames||[];var o=document.querySelectorAll(n.shift());e:for(var i=0,u=o.length;i<u;i++){a=o[i];for(var s=0,l=e.frames.length;s<l;s++)if(e.frames[s].node===a){e.frames[s][t].push(n);break e}r={node:a,include:[],exclude:[]},n&&r[t].push(n),e.frames.push(r)}}function m(e,t){"use strict";for(var n,r,a=[],o=0,i=e[t].length;o<i;o++){if("string"==typeof(n=e[t][o])){r=Array.from(document.querySelectorAll(n)),a=a.concat(r.map(function(e){return axe.utils.getNodeFromTree(e)}));break}!n||!n.length||n instanceof Node?n instanceof Node&&(n.documentElement instanceof Node?a.push(e.flatTree[0]):a.push(axe.utils.getNodeFromTree(n))):1<n.length?s(e,t,n):(r=Array.from(document.querySelectorAll(n[0])),a=a.concat(r.map(function(e){return axe.utils.getNodeFromTree(e)})))}return a.filter(function(e){return e})}function p(e){"use strict";var t=this;this.frames=[],this.initiator=!e||"boolean"!=typeof e.initiator||e.initiator,this.page=!1,e=function(e){"use strict";if(e&&"object"===S(e)||e instanceof NodeList){if(e instanceof Node)return{include:[e],exclude:[]};if(e.hasOwnProperty("include")||e.hasOwnProperty("exclude"))return{include:e.include&&+e.include.length?e.include:[document],exclude:e.exclude||[]};if(e.length===+e.length)return{include:e,exclude:[]}}return"string"==typeof e?{include:[e],exclude:[]}:{include:[document],exclude:[]}}(e),this.flatTree=axe.utils.getFlattenedTree(function(e){var t=e.include,n=e.exclude;return(Array.from(t).concat(Array.from(n)).reduce(function(e,t){return e||(t instanceof Element?t.ownerDocument:t instanceof Document?t:void 0)},null)||document).documentElement}(e)),this.exclude=e.exclude,this.include=e.include,this.include=m(this,"include"),this.exclude=m(this,"exclude"),axe.utils.select("frame, iframe",this).forEach(function(e){Be(e,t)&&function(e,t){"use strict";axe.utils.isHidden(t)||axe.utils.findBy(e,"node",t)||e.push({node:t,include:[],exclude:[]})}(t.frames,e.actualNode)}),1===this.include.length&&this.include[0].actualNode===document.documentElement&&(this.page=!0);var n=function(e){"use strict";if(0===e.include.length){if(0===e.frames.length){var t=axe.utils.respondable.isInFrame()?"frame":"page";return new Error("No elements found for include in "+t+" Context")}e.frames.forEach(function(e,t){if(0===e.include.length)return new Error("No elements found for include in Context of frame "+t)})}}(this);if(n instanceof Error)throw n;Array.isArray(this.include)||(this.include=Array.from(this.include)),this.include.sort(axe.utils.nodeSorter)}function f(e){"use strict";this.id=e.id,this.result=axe.constants.NA,this.pageLevel=e.pageLevel,this.impact=null,this.nodes=[]}function h(e,t){"use strict";this._audit=t,this.id=e.id,this.selector=e.selector||"*",this.excludeHidden="boolean"!=typeof e.excludeHidden||e.excludeHidden,this.enabled="boolean"!=typeof e.enabled||e.enabled,this.pageLevel="boolean"==typeof e.pageLevel&&e.pageLevel,this.any=e.any||[],this.all=e.all||[],this.none=e.none||[],this.tags=e.tags||[],this.preload=!!e.preload,e.matches&&(this.matches=r(e.matches))}function b(e){if(e.length){var n=!1,r={};return e.forEach(function(e){var t=e.results.filter(function(e){return e});(r[e.type]=t).length&&(n=!0)}),n?r:null}}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function D(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function k(e,t,n){return t&&w(e.prototype,t),n&&w(e,n),e}n.prototype._applyCheckLocale=function(e){for(var t,n,r,a,o=Object.keys(e),i=0;i<o.length;i++){var u=o[i];if(!this.data.checks[u])throw new Error('Locale provided for unknown check: "'.concat(u,'"'));this.data.checks[u]=(t=this.data.checks[u],n=e[u],a=r=void 0,r=n.pass,a=n.fail,"string"==typeof r&&(r=axe.imports.doT.compile(r)),"string"==typeof a&&(a=axe.imports.doT.compile(a)),R({},t,{messages:{pass:r||t.messages.pass,fail:a||t.messages.fail,incomplete:"object"===S(t.messages.incomplete)?R({},t.messages.incomplete,{},n.incomplete):n.incomplete}}))}},n.prototype._applyRuleLocale=function(e){for(var t,n,r,a,o=Object.keys(e),i=0;i<o.length;i++){var u=o[i];if(!this.data.rules[u])throw new Error('Locale provided for unknown rule: "'.concat(u,'"'));this.data.rules[u]=(t=this.data.rules[u],n=e[u],a=r=void 0,r=n.help,a=n.description,"string"==typeof r&&(r=axe.imports.doT.compile(r)),"string"==typeof a&&(a=axe.imports.doT.compile(a)),R({},t,{help:r||t.help,description:a||t.description}))}},n.prototype.applyLocale=function(e){this._setDefaultLocale(),e.checks&&this._applyCheckLocale(e.checks),e.rules&&this._applyRuleLocale(e.rules)},n.prototype._init=function(){var e=function(e){"use strict";var t;return e?(t=axe.utils.clone(e)).commons=e.commons:t={},t.reporter=t.reporter||null,t.rules=t.rules||[],t.checks=t.checks||[],t.data=R({checks:{},rules:{}},t.data),t}(this.defaultConfig);axe.commons=e.commons,this.reporter=e.reporter,this.commands={},this.rules=[],this.checks={},t(e.rules,this,"addRule"),t(e.checks,this,"addCheck"),this.data={},this.data.checks=e.data&&e.data.checks||{},this.data.rules=e.data&&e.data.rules||{},this.data.failureSummaries=e.data&&e.data.failureSummaries||{},this.data.incompleteFallbackMessage=e.data&&e.data.incompleteFallbackMessage||"",this._constructHelpUrls()},n.prototype.registerCommand=function(e){"use strict";this.commands[e.id]=e.callback},n.prototype.addRule=function(e){"use strict";e.metadata&&(this.data.rules[e.id]=e.metadata);var t=this.getRule(e.id);t?t.configure(e):this.rules.push(new h(e,this))},n.prototype.addCheck=function(e){"use strict";var t=e.metadata;"object"===S(t)&&(this.data.checks[e.id]=t,"object"===S(t.messages)&&Object.keys(t.messages).filter(function(e){return t.messages.hasOwnProperty(e)&&"string"==typeof t.messages[e]}).forEach(function(e){0===t.messages[e].indexOf("function")&&(t.messages[e]=new Function("return "+t.messages[e]+";")())})),this.checks[e.id]?this.checks[e.id].configure(e):this.checks[e.id]=new i(e)},n.prototype.run=function(o,i,u,s){"use strict";this.normalizeOptions(i),axe._selectCache=[];var e=function(e,n,r){return e.reduce(function(e,t){return axe.utils.ruleShouldRun(t,n,r)&&(t.preload?e.later.push(t):e.now.push(t)),e},{now:[],later:[]})}(this.rules,o,i),t=e.now,l=e.later,n=axe.utils.queue();t.forEach(function(e){n.defer(c(e,o,i))});var r=axe.utils.queue();l.length&&r.defer(function(t){axe.utils.preload(i).then(function(e){return t(e)}).catch(function(e){console.warn("Couldn't load preload assets: ",e),t(void 0)})});var a=axe.utils.queue();a.defer(n),a.defer(r),a.then(function(e){var t=e.pop();if(t&&t.length){var n=t[0];n&&(o=R({},o,{},n))}var r=e[0];if(!l.length)return axe._selectCache=void 0,void u(r.filter(function(e){return!!e}));var a=axe.utils.queue();l.forEach(function(e){var t=c(e,o,i);a.defer(t)}),a.then(function(e){axe._selectCache=void 0,u(r.concat(e).filter(function(e){return!!e}))}).catch(s)}).catch(s)},n.prototype.after=function(e,n){"use strict";var r=this.rules;return e.map(function(e){var t=axe.utils.findBy(r,"id",e.id);if(!t)throw new Error("Result for unknown rule. You may be running mismatch axe-core versions");return t.after(e,n)})},n.prototype.getRule=function(t){return this.rules.find(function(e){return e.id===t})},n.prototype.normalizeOptions=function(e){"use strict";var t=this;if("object"===S(e.runOnly)){Array.isArray(e.runOnly)&&(e.runOnly={type:"tag",values:e.runOnly});var n=e.runOnly;if(n.value&&!n.values&&(n.values=n.value,delete n.value),!Array.isArray(n.values)||0===n.values.length)throw new Error("runOnly.values must be a non-empty array");if(["rule","rules"].includes(n.type))n.type="rule",n.values.forEach(function(e){if(!t.getRule(e))throw new Error("unknown rule `"+e+"` in options.runOnly")});else{if(!["tag","tags",void 0].includes(n.type))throw new Error("Unknown runOnly type '".concat(n.type,"'"));n.type="tag";var r=t.rules.reduce(function(e,t){return e.length?e.filter(function(e){return!t.tags.includes(e)}):e},n.values);0!==r.length&&axe.log("Could not find tags `"+r.join("`, `")+"`")}}return"object"===S(e.rules)&&Object.keys(e.rules).forEach(function(e){if(!t.getRule(e))throw new Error("unknown rule `"+e+"` in options.rules")}),e},n.prototype.setBranding=function(e){"use strict";var t={brand:this.brand,application:this.application};e&&e.hasOwnProperty("brand")&&e.brand&&"string"==typeof e.brand&&(this.brand=e.brand),e&&e.hasOwnProperty("application")&&e.application&&"string"==typeof e.application&&(this.application=e.application),this._constructHelpUrls(t)},n.prototype._constructHelpUrls=function(){var n=this,r=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,a=(axe.version.match(/^[1-9][0-9]*\.[0-9]+/)||["x.y"])[0];this.rules.forEach(function(e){n.data.rules[e.id]||(n.data.rules[e.id]={});var t=n.data.rules[e.id];("string"!=typeof t.helpUrl||r&&t.helpUrl===o(r,e.id,a))&&(t.helpUrl=o(n,e.id,a))})},n.prototype.resetRulesAndChecks=function(){"use strict";this._init(),this._resetLocale()},function(){"use strict";var n={},e={set:function(e,t){n[e]=t},get:function(e){return n[e]},clear:function(){n={}}};axe._cache=e}(),i.prototype.enabled=!0,i.prototype.run=function(t,e,n,r,a){"use strict";var o=(e=e||{}).hasOwnProperty("enabled")?e.enabled:this.enabled,i=e.options||this.options;if(o){var u,s=new d(this),l=axe.utils.checkHelper(s,e,r,a);try{u=this.evaluate.call(l,t.actualNode,i,t,n)}catch(e){return t&&t.actualNode&&(e.errorNode=new X(t.actualNode).toJSON()),void a(e)}l.isAsync||(s.result=u,r(s))}else r(null)},i.prototype.runSync=function(t,e,n){var r=(e=e||{}).enabled;if(!(void 0===r?this.enabled:r))return null;var a,o=e.options||this.options,i=new d(this),u=axe.utils.checkHelper(i,e);u.async=function(){throw new Error("Cannot run async check while in a synchronous run")};try{a=this.evaluate.call(u,t.actualNode,o,t,n)}catch(e){throw t&&t.actualNode&&(e.errorNode=new X(t.actualNode).toJSON()),e}return i.result=a,i},i.prototype.configure=function(t){var n=this;["options","enabled"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(e){return n[e]=t[e]}),["evaluate","after"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(e){return n[e]=r(t[e])})},h.prototype.matches=function(){"use strict";return!0},h.prototype.gather=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n="mark_gather_start_"+this.id,r="mark_gather_end_"+this.id,a="mark_isHidden_start_"+this.id,o="mark_isHidden_end_"+this.id;t.performanceTimer&&axe.utils.performanceTimer.mark(n);var i=axe.utils.select(this.selector,e);return this.excludeHidden&&(t.performanceTimer&&axe.utils.performanceTimer.mark(a),i=i.filter(function(e){return!axe.utils.isHidden(e.actualNode)}),t.performanceTimer&&(axe.utils.performanceTimer.mark(o),axe.utils.performanceTimer.measure("rule_"+this.id+"#gather_axe.utils.isHidden",a,o))),t.performanceTimer&&(axe.utils.performanceTimer.mark(r),axe.utils.performanceTimer.measure("rule_"+this.id+"#gather",n,r)),i},h.prototype.runChecks=function(t,a,o,i,n,e){"use strict";var u=this,s=axe.utils.queue();this[t].forEach(function(e){var n=u._audit.checks[e.id||e],r=axe.utils.getCheckOption(n,u.id,o);s.defer(function(e,t){n.run(a,r,i,e,t)})}),s.then(function(e){e=e.filter(function(e){return e}),n({type:t,results:e})}).catch(e)},h.prototype.runChecksSync=function(e,r,a,o){"use strict";var i=this,u=[];return this[e].forEach(function(e){var t=i._audit.checks[e.id||e],n=axe.utils.getCheckOption(t,i.id,a);u.push(t.runSync(r,n,o))}),{type:e,results:u=u.filter(function(e){return e})}},h.prototype.run=function(a){var o=this,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=2<arguments.length?arguments[2]:void 0,t=3<arguments.length?arguments[3]:void 0;i.performanceTimer&&this._trackPerformance();var n,u=axe.utils.queue(),s=new f(this);try{n=this.gatherAndMatchNodes(a,i)}catch(e){return void t(new l({cause:e,ruleId:this.id}))}i.performanceTimer&&this._logGatherPerformance(n),n.forEach(function(r){u.defer(function(n,t){var e=axe.utils.queue();["any","all","none"].forEach(function(n){e.defer(function(e,t){o.runChecks(n,r,i,a,e,t)})}),e.then(function(e){var t=b(e);t&&(t.node=new axe.utils.DqElement(r.actualNode,i),s.nodes.push(t)),n()}).catch(function(e){return t(e)})})}),u.defer(function(e){return setTimeout(e,0)}),i.performanceTimer&&this._logRulePerformance(),u.then(function(){return e(s)}).catch(function(e){return t(e)})},h.prototype.runSync=function(r){var a=this,o=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};o.performanceTimer&&this._trackPerformance();var e,i=new f(this);try{e=this.gatherAndMatchNodes(r,o)}catch(e){throw new l({cause:e,ruleId:this.id})}return o.performanceTimer&&this._logGatherPerformance(e),e.forEach(function(t){var n=[];["any","all","none"].forEach(function(e){n.push(a.runChecksSync(e,t,o,r))});var e=b(n);e&&(e.node=t.actualNode?new axe.utils.DqElement(t.actualNode,o):null,i.nodes.push(e))}),o.performanceTimer&&this._logRulePerformance(),i},h.prototype._trackPerformance=function(){this._markStart="mark_rule_start_"+this.id,this._markEnd="mark_rule_end_"+this.id,this._markChecksStart="mark_runchecks_start_"+this.id,this._markChecksEnd="mark_runchecks_end_"+this.id},h.prototype._logGatherPerformance=function(e){axe.log("gather (",e.length,"):",axe.utils.performanceTimer.timeElapsed()+"ms"),axe.utils.performanceTimer.mark(this._markChecksStart)},h.prototype._logRulePerformance=function(){axe.utils.performanceTimer.mark(this._markChecksEnd),axe.utils.performanceTimer.mark(this._markEnd),axe.utils.performanceTimer.measure("runchecks_"+this.id,this._markChecksStart,this._markChecksEnd),axe.utils.performanceTimer.measure("rule_"+this.id,this._markStart,this._markEnd)},h.prototype.gatherAndMatchNodes=function(t,e){var n=this,r="mark_matches_start_"+this.id,a="mark_matches_end_"+this.id,o=this.gather(t,e);return e.performanceTimer&&axe.utils.performanceTimer.mark(r),o=o.filter(function(e){return n.matches(e.actualNode,e,t)}),e.performanceTimer&&(axe.utils.performanceTimer.mark(a),axe.utils.performanceTimer.measure("rule_"+this.id+"#matches",r,a)),o},h.prototype.after=function(a,o){"use strict";var e=function(n){"use strict";return axe.utils.getAllChecks(n).map(function(e){var t=n._audit.checks[e.id||e];return t&&"function"==typeof t.after?t:null}).filter(Boolean)}(this),i=this.id;return e.forEach(function(e){var t=function(e,t){"use strict";var n=[];return e.forEach(function(e){axe.utils.getAllChecks(e).forEach(function(e){e.id===t&&n.push(e)})}),n}(a.nodes,e.id),n=axe.utils.getCheckOption(e,i,o),r=e.after(t,n);t.forEach(function(e){-1===r.indexOf(e)&&(e.filtered=!0)})}),a.nodes=function(e){"use strict";var r=["any","all","none"],t=e.nodes.filter(function(t){var n=0;return r.forEach(function(e){t[e]=function(e){"use strict";return e.filter(function(e){return!0!==e.filtered})}(t[e]),n+=t[e].length}),0<n});return e.pageLevel&&t.length&&(t=[t.reduce(function(t,n){if(t)return r.forEach(function(e){t[e].push.apply(t[e],n[e])}),t})]),t}(a),a},h.prototype.configure=function(e){"use strict";e.hasOwnProperty("selector")&&(this.selector=e.selector),e.hasOwnProperty("excludeHidden")&&(this.excludeHidden="boolean"!=typeof e.excludeHidden||e.excludeHidden),e.hasOwnProperty("enabled")&&(this.enabled="boolean"!=typeof e.enabled||e.enabled),e.hasOwnProperty("pageLevel")&&(this.pageLevel="boolean"==typeof e.pageLevel&&e.pageLevel),e.hasOwnProperty("any")&&(this.any=e.any),e.hasOwnProperty("all")&&(this.all=e.all),e.hasOwnProperty("none")&&(this.none=e.none),e.hasOwnProperty("tags")&&(this.tags=e.tags),e.hasOwnProperty("matches")&&("string"==typeof e.matches?this.matches=new Function("return "+e.matches+";")():this.matches=e.matches)};var x=/[\t\r\n\f]/g,E=(k(C,[{key:"hasClass",value:function(){throw new Error('VirtualNode class must have a "hasClass" function')}},{key:"attr",value:function(){throw new Error('VirtualNode class must have a "attr" function')}},{key:"hasAttr",value:function(){throw new Error('VirtualNode class must have a "hasAttr" function')}},{key:"props",get:function(){throw new Error('VirtualNode class must have a "props" object consisting of "nodeType" and "nodeName" properties')}}]),C);function C(){D(this,C),this.children=[],this.parent=null}var A=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(F,E),k(F,[{key:"hasClass",value:function(e){var t=this.attr("class");if(!t)return!1;var n=" "+e+" ";return 0<=(" "+t+" ").replace(x," ").indexOf(n)}},{key:"attr",value:function(e){return"function"!=typeof this.actualNode.getAttribute?null:this.actualNode.getAttribute(e)}},{key:"hasAttr",value:function(e){return"function"==typeof this.actualNode.hasAttribute&&this.actualNode.hasAttribute(e)}},{key:"props",get:function(){var e=this.actualNode,t=e.nodeType,n=e.nodeName,r=e.id,a=e.type;return{nodeType:t,nodeName:n.toLowerCase(),id:r,type:a}}},{key:"isFocusable",get:function(){return this._cache.hasOwnProperty("isFocusable")||(this._cache.isFocusable=axe.commons.dom.isFocusable(this.actualNode)),this._cache.isFocusable}},{key:"tabbableElements",get:function(){return this._cache.hasOwnProperty("tabbableElements")||(this._cache.tabbableElements=axe.commons.dom.getTabbableElements(this)),this._cache.tabbableElements}}]),F);function F(e,t,n){var r;return D(this,F),(r=function(e,t){return!t||"object"!==S(t)&&"function"!=typeof t?y(e):t}(this,g(F).call(this))).shadowId=n,r.children=[],r.actualNode=e,r.parent=t,r._isHidden=null,r._cache={},axe._cache.get("nodeMap")&&axe._cache.get("nodeMap").set(e,y(r)),r}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(t,n){"use strict";if(t=t||function(){},n=n||axe.log,!axe._audit)throw new Error("No audit configured");var r=axe.utils.queue(),a=[];Object.keys(axe.plugins).forEach(function(e){r.defer(function(t){function n(e){a.push(e),t()}try{axe.plugins[e].cleanup(t,n)}catch(e){n(e)}})});var e=axe.utils.getFlattenedTree(document.body);axe.utils.querySelectorAll(e,"iframe, frame").forEach(function(n){r.defer(function(e,t){return axe.utils.sendCommandToFrame(n.actualNode,{command:"cleanup-plugin"},e,t)})}),r.then(function(e){0===a.length?t(e):n(a)}).catch(n)}function z(e,t,n){"use strict";function r(e){e instanceof Error==!1&&(e=new Error(e)),n(e)}var a=n,o=e&&e.context||{};o.hasOwnProperty("include")&&!o.include.length&&(o.include=[document]);var i=e&&e.options||{};switch(e.command){case"rules":return _(o,i,function(e,t){a(e),t()},r);case"cleanup-plugin":return j(a,r);default:if(axe._audit&&axe._audit.commands&&axe._audit.commands[e.command])return axe._audit.commands[e.command](e,n)}}function q(e){"use strict";this._run=e.run,this._collect=e.collect,this._registry={},e.commands.forEach(function(e){axe._audit.registerCommand(e)})}axe.AbstractVirtualNode=E,function(axe){var o={helpUrlBase:"https://dequeuniversity.com/rules/",results:[],resultGroups:[],resultGroupMap:{},impact:Object.freeze(["minor","moderate","serious","critical"]),preload:Object.freeze({assets:["cssom"],timeout:1e4})};[{name:"NA",value:"inapplicable",priority:0,group:"inapplicable"},{name:"PASS",value:"passed",priority:1,group:"passes"},{name:"CANTTELL",value:"cantTell",priority:2,group:"incomplete"},{name:"FAIL",value:"failed",priority:3,group:"violations"}].forEach(function(e){var t=e.name,n=e.value,r=e.priority,a=e.group;o[t]=n,o[t+"_PRIO"]=r,o[t+"_GROUP"]=a,o.results[r]=n,o.resultGroups[r]=a,o.resultGroupMap[n]=a}),Object.freeze(o.results),Object.freeze(o.resultGroups),Object.freeze(o.resultGroupMap),Object.freeze(o),Object.defineProperty(axe,"constants",{value:o,enumerable:!0,configurable:!1,writable:!1})}(axe),axe.log=function(){"use strict";"object"===("undefined"==typeof console?"undefined":S(console))&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},axe.cleanup=j,axe.configure=function(e){"use strict";var t;if(!(t=axe._audit))throw new Error("No audit configured");e.reporter&&("function"==typeof e.reporter||T[e.reporter])&&(t.reporter=e.reporter),e.checks&&e.checks.forEach(function(e){t.addCheck(e)});var n=[];e.rules&&e.rules.forEach(function(e){n.push(e.id),t.addRule(e)}),e.disableOtherRules&&t.rules.forEach(function(e){!1===n.includes(e.id)&&(e.enabled=!1)}),void 0!==e.branding?t.setBranding(e.branding):t._constructHelpUrls(),e.tagExclude&&(t.tagExclude=e.tagExclude),e.locale&&t.applyLocale(e.locale)},axe.getRules=function(e){"use strict";var t=(e=e||[]).length?axe._audit.rules.filter(function(t){return!!e.filter(function(e){return-1!==t.tags.indexOf(e)}).length}):axe._audit.rules,n=axe._audit.data.rules||{};return t.map(function(e){var t=n[e.id]||{};return{ruleId:e.id,description:t.description,help:t.help,helpUrl:t.helpUrl,tags:e.tags}})},axe._load=function(e){"use strict";axe.utils.respondable.subscribe("axe.ping",function(e,t,n){n({axe:!0})}),axe.utils.respondable.subscribe("axe.start",z),axe._audit=new n(e)},(axe=axe||{}).plugins={},q.prototype.run=function(){"use strict";return this._run.apply(this,arguments)},q.prototype.collect=function(){"use strict";return this._collect.apply(this,arguments)},q.prototype.cleanup=function(e){"use strict";var n=axe.utils.queue(),r=this;Object.keys(this._registry).forEach(function(t){n.defer(function(e){r._registry[t].cleanup(e)})}),n.then(function(){e()})},q.prototype.add=function(e){"use strict";this._registry[e.id]=e},axe.registerPlugin=function(e){"use strict";axe.plugins[e.id]=new q(e)};var N,T={};function O(){axe._cache.clear(),axe._tree=void 0,axe._selectorData=void 0}function _(n,r,a,o){"use strict";try{n=new p(n),axe._tree=n.flatTree,axe._selectorData=axe.utils.getSelectorData(n.flatTree)}catch(e){return O(),o(e)}var i,e=axe.utils.queue(),u=axe._audit;r.performanceTimer&&axe.utils.performanceTimer.auditStart(),n.frames.length&&!1!==r.iframes&&e.defer(function(e,t){axe.utils.collectResultsFromFrames(n,r,"rules",null,e,t)}),e.defer(function(e,t){r.restoreScroll&&(i=axe.utils.getScrollState()),u.run(n,r,e,t)}),e.then(function(e){try{i&&axe.utils.setScrollState(i),r.performanceTimer&&axe.utils.performanceTimer.auditEnd();var t=axe.utils.mergeResults(e.map(function(e){return{results:e}}));n.initiator&&((t=u.after(t,r)).forEach(axe.utils.publishMetaData),t=t.map(axe.utils.finalizeRuleResult));try{a(t,O)}catch(e){O(),axe.log(e)}}catch(e){O(),o(e)}}).catch(function(e){O(),o(e)})}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}axe.getReporter=function(e){"use strict";return"string"==typeof e&&T[e]?T[e]:"function"==typeof e?e:N},axe.addReporter=function(e,t,n){"use strict";T[e]=t,n&&(N=t)},axe.reset=function(){"use strict";var e=axe._audit;if(!e)throw new Error("No audit configured");e.resetRulesAndChecks()},axe._runRules=_,axe.runVirtualRule=function(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};n.reporter=n.reporter||axe._audit.reporter||"v1",axe._selectorData={};var r=axe._audit.rules.find(function(e){return e.id===t});if(!r)throw new Error("unknown rule `"+t+"`");var a={include:[e]},o=(r=Object.create(r,{excludeHidden:{value:!1}})).runSync(a,n);axe.utils.publishMetaData(o),axe.utils.finalizeRuleResult(o);var i=axe.utils.aggregateResult([o]);return i.violations.forEach(function(e){return e.nodes.forEach(function(e){e.failureSummary=u.failureSummary(e)})}),R({},u.getEnvironmentData(),{},i,{toolOptions:n})};function B(){}function L(e,t,n){"use strict";var r=new TypeError("axe.run arguments are invalid");if(!function(e){"use strict";switch(!0){case"string"==typeof e:case Array.isArray(e):case Node&&e instanceof Node:case NodeList&&e instanceof NodeList:return!0;case"object"!==S(e):return!1;case void 0!==e.include:case void 0!==e.exclude:case"number"==typeof e.length:return!0;default:return!1}}(e)){if(void 0!==n)throw r;n=t,t=e,e=document}if("object"!==S(t)){if(void 0!==n)throw r;n=t,t={}}if("function"!=typeof n&&void 0!==n)throw r;return{context:e,options:t,callback:n||B}}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}axe.run=function(e,a,o){"use strict";if(!axe._audit)throw new Error("No audit configured");var t,n=L(e,a,o);e=n.context,a=n.options,o=n.callback,a.reporter=a.reporter||axe._audit.reporter||"v1",a.performanceTimer&&axe.utils.performanceTimer.start();var i=B,u=B;return"function"==typeof Promise&&o===B&&(t=new Promise(function(e,t){i=t,u=e})),axe._runRules(e,a,function(e,t){function n(e){t();try{o(null,e)}catch(e){axe.log(e)}u(e)}a.performanceTimer&&axe.utils.performanceTimer.end();try{var r=axe.getReporter(a.reporter)(e,a,n);void 0!==r&&n(r)}catch(e){t(),o(e),i(e)}},function(e){o(e),i(e)}),t},u.failureSummary=function(e){"use strict";var n={};return n.none=e.none.concat(e.all),n.any=e.any,Object.keys(n).map(function(e){if(n[e].length){var t=axe._audit.data.failureSummaries[e];return t&&"function"==typeof t.failureMessage?t.failureMessage(n[e].map(function(e){return e.message||""})):void 0}}).filter(function(e){return void 0!==e}).join("\n\n")},u.getEnvironmentData=function(e){var t=0<arguments.length&&void 0!==e?e:window,n=t.screen,r=void 0===n?{}:n,a=t.navigator,o=void 0===a?{}:a,i=t.location,u=void 0===i?{}:i,s=t.innerHeight,l=t.innerWidth,c=r.msOrientation||r.orientation||r.mozOrientation||{};return{testEngine:{name:"axe-core",version:axe.version},testRunner:{name:axe._audit.brand},testEnvironment:{userAgent:o.userAgent,windowWidth:l,windowHeight:s,orientationAngle:c.angle,orientationType:c.type},timestamp:(new Date).toISOString(),url:u.href}},u.incompleteFallbackMessage=function(){"use strict";return axe._audit.data.incompleteFallbackMessage()};var I=axe.constants.resultGroups;function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}u.processAggregate=function(e,n){var t=axe.utils.aggregateResult(e);return I.forEach(function(e){n.resultTypes&&!n.resultTypes.includes(e)&&(t[e]||[]).forEach(function(e){Array.isArray(e.nodes)&&0<e.nodes.length&&(e.nodes=[e.nodes[0]])}),t[e]=(t[e]||[]).map(function(t){return t=Object.assign({},t),Array.isArray(t.nodes)&&0<t.nodes.length&&(t.nodes=t.nodes.map(function(e){return"object"===S(e.node)&&(e.html=e.node.source,n.elementRef&&!e.node.fromFrame&&(e.element=e.node.element),!1===n.selectors&&!e.node.fromFrame||(e.target=e.node.selector),n.xpath&&(e.xpath=e.node.xpath)),delete e.result,delete e.node,function(t,n){"use strict";["any","all","none"].forEach(function(e){Array.isArray(t[e])&&t[e].filter(function(e){return Array.isArray(e.relatedNodes)}).forEach(function(e){e.relatedNodes=e.relatedNodes.map(function(e){var t={html:e.source};return n.elementRef&&!e.fromFrame&&(t.element=e.element),!1===n.selectors&&!e.fromFrame||(t.target=e.selector),n.xpath&&(t.xpath=e.xpath),t})})})}(e,n),e})),I.forEach(function(e){return delete t[e]}),delete t.pageLevel,delete t.result,t})}),t},axe.addReporter("na",function(e,t,n){"use strict";console.warn('"na" reporter will be deprecated in axe v4.0. Use the "v2" reporter instead.'),"function"==typeof t&&(n=t,t={});var r=u.processAggregate(e,t);n(R({},u.getEnvironmentData(),{toolOptions:t,violations:r.violations,passes:r.passes,incomplete:r.incomplete,inapplicable:r.inapplicable}))}),axe.addReporter("no-passes",function(e,t,n){"use strict";"function"==typeof t&&(n=t,t={}),t.resultTypes=["violations"];var r=u.processAggregate(e,t);n(R({},u.getEnvironmentData(),{toolOptions:t,violations:r.violations}))}),axe.addReporter("rawEnv",function(e,t,n){"function"==typeof t&&(n=t,t={}),axe.getReporter("raw")(e,t,function(e){var t=u.getEnvironmentData();n({raw:e,env:t})})}),axe.addReporter("raw",function(e,t,n){"use strict";if("function"==typeof t&&(n=t,t={}),!e||!Array.isArray(e))return n(e);n(e.map(function(e){for(var t=R({},e),n=0,r=["passes","violations","incomplete","inapplicable"];n<r.length;n++){var a=r[n];t[a]&&Array.isArray(t[a])&&(t[a]=t[a].map(function(e){return R({},e,{node:e.node.toJSON()})}))}return t}))}),axe.addReporter("v1",function(e,t,n){"use strict";"function"==typeof t&&(n=t,t={});var r=u.processAggregate(e,t);r.violations.forEach(function(e){return e.nodes.forEach(function(e){e.failureSummary=u.failureSummary(e)})}),n(R({},u.getEnvironmentData(),{toolOptions:t,violations:r.violations,passes:r.passes,incomplete:r.incomplete,inapplicable:r.inapplicable}))}),axe.addReporter("v2",function(e,t,n){"use strict";"function"==typeof t&&(n=t,t={});var r=u.processAggregate(e,t);n(R({},u.getEnvironmentData(),{toolOptions:t,violations:r.violations,passes:r.passes,incomplete:r.incomplete,inapplicable:r.inapplicable}))},!0),axe.utils.aggregate=function(t,e,n){e=e.slice(),n&&e.push(n);var r=e.map(function(e){return t.indexOf(e)}).sort();return t[r.pop()]};var P=axe.constants,U=P.CANTTELL_PRIO,V=P.FAIL_PRIO,M=[];M[axe.constants.PASS_PRIO]=!0,M[axe.constants.CANTTELL_PRIO]=null,M[axe.constants.FAIL_PRIO]=!1;var axe,H=["any","all","none"];function G(n,r){return H.reduce(function(e,t){return e[t]=(n[t]||[]).map(function(e){return r(e,t)}),e},{})}function W(e,t,n){var r=Object.assign({},t);r.nodes=(r[n]||[]).concat(),axe.constants.resultGroups.forEach(function(e){delete r[e]}),e[n].push(r)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $(e,t){"use strict";var n;return axe._tree&&(n=axe.utils.getSelector(t)),new Error(e+": "+(n||t))}function X(e,t,n){this._fromFrame=!!n,this.spec=n||{},t&&t.absolutePaths&&(this._options={toRoot:!0}),this.source=void 0!==this.spec.source?this.spec.source:function(e){var t=e.outerHTML;return t||"function"!=typeof XMLSerializer||(t=(new XMLSerializer).serializeToString(e)),function(e,t){if(t=t||300,e.length>t){var n=e.indexOf(">");e=e.substring(0,n+1)}return e}(t||"")}(e),this._element=e}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,u=e[Symbol.iterator]();!(r=(i=u.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==u.return||u.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function J(e,t){return[e.substring(0,t),e.substring(t)]}function K(e){return e.replace(/\s+$/,"")}axe.utils.aggregateChecks=function(e){var n=Object.assign({},e);G(n,function(e,t){var n=void 0===e.result?-1:M.indexOf(e.result);e.priority=-1!==n?n:axe.constants.CANTTELL_PRIO,"none"===t&&(e.priority===axe.constants.PASS_PRIO?e.priority=axe.constants.FAIL_PRIO:e.priority===axe.constants.FAIL_PRIO&&(e.priority=axe.constants.PASS_PRIO))});var r={all:n.all.reduce(function(e,t){return Math.max(e,t.priority)},0),none:n.none.reduce(function(e,t){return Math.max(e,t.priority)},0),any:n.any.reduce(function(e,t){return Math.min(e,t.priority)},4)%4};n.priority=Math.max(r.all,r.none,r.any);var a=[];return H.forEach(function(t){n[t]=n[t].filter(function(e){return e.priority===n.priority&&e.priority===r[t]}),n[t].forEach(function(e){return a.push(e.impact)})}),[U,V].includes(n.priority)?n.impact=axe.utils.aggregate(axe.constants.impact,a):n.impact=null,G(n,function(e){delete e.result,delete e.priority}),n.result=axe.constants.results[n.priority],delete n.priority,n},axe.utils.aggregateNodeResults=function(e){var n={};if((e=e.map(function(e){if(e.any&&e.all&&e.none)return axe.utils.aggregateChecks(e);if(Array.isArray(e.node))return axe.utils.finalizeRuleResult(e);throw new TypeError("Invalid Result type")}))&&e.length){var t=e.map(function(e){return e.result});n.result=axe.utils.aggregate(axe.constants.results,t,n.result)}else n.result="inapplicable";axe.constants.resultGroups.forEach(function(e){return n[e]=[]}),e.forEach(function(e){var t=axe.constants.resultGroupMap[e.result];n[t].push(e)});var r=axe.constants.FAIL_GROUP;if(0===n[r].length&&(r=axe.constants.CANTTELL_GROUP),0<n[r].length){var a=n[r].map(function(e){return e.impact});n.impact=axe.utils.aggregate(axe.constants.impact,a)||null}else n.impact=null;return n},axe.utils.aggregateResult=function(e){var n={};return axe.constants.resultGroups.forEach(function(e){return n[e]=[]}),e.forEach(function(t){t.error?W(n,t,axe.constants.CANTTELL_GROUP):t.result===axe.constants.NA?W(n,t,axe.constants.NA_GROUP):axe.constants.resultGroups.forEach(function(e){Array.isArray(t[e])&&0<t[e].length&&W(n,t,e)})}),n},axe.utils.areStylesSet=function e(t,n,r){"use strict";var a=window.getComputedStyle(t,null),o=!1;return!!a&&(n.forEach(function(e){a.getPropertyValue(e.property)===e.value&&(o=!0)}),!!o||!(t.nodeName.toUpperCase()===r.toUpperCase()||!t.parentNode)&&e(t.parentNode,n,r))},axe.utils.checkHelper=function(t,n,r,a){"use strict";return{isAsync:!1,async:function(){return this.isAsync=!0,function(e){e instanceof Error==!1?(t.result=e,r(t)):a(e)}},data:function(e){t.data=e},relatedNodes:function(e){e=e instanceof Node?[e]:axe.utils.toArray(e),t.relatedNodes=e.map(function(e){return new axe.utils.DqElement(e,n)})}}},axe.utils.clone=function(e){"use strict";var t,n,r=e;if(null!==e&&"object"===S(e))if(Array.isArray(e))for(r=[],t=0,n=e.length;t<n;t++)r[t]=axe.utils.clone(e[t]);else for(t in r={},e)r[t]=axe.utils.clone(e[t]);return r},axe.utils.sendCommandToFrame=function(t,n,r,a){"use strict";var o=t.contentWindow;if(!o)return axe.log("Frame does not have a content window",t),void r(null);var i=setTimeout(function(){i=setTimeout(function(){n.debug?a($("No response from frame",t)):r(null)},0)},500);axe.utils.respondable(o,"axe.ping",null,void 0,function(){clearTimeout(i);var e=n.options&&n.options.frameWaitTime||6e4;i=setTimeout(function(){a($("Axe in frame timed out",t))},e),axe.utils.respondable(o,"axe.start",n,void 0,function(e){clearTimeout(i),e instanceof Error==!1?r(e):a(e)})})},axe.utils.collectResultsFromFrames=function(e,t,n,o,r,a){"use strict";var i=axe.utils.queue();e.frames.forEach(function(r){var a={options:t,command:n,parameter:o,context:{initiator:!1,page:e.page,include:r.include||[],exclude:r.exclude||[]}};i.defer(function(t,e){var n=r.node;axe.utils.sendCommandToFrame(n,a,function(e){if(e)return t({results:e,frameElement:n,frame:axe.utils.getSelector(n)});t(null)},e)})}),i.then(function(e){r(axe.utils.mergeResults(e,t))}).catch(a)},axe.utils.contains=function(e,t){"use strict";if(e.shadowId||t.shadowId)return function t(e,n){return e.shadowId===n.shadowId||!!e.children.find(function(e){return t(e,n)})}(e,t);if(e.actualNode)return"function"==typeof e.actualNode.contains?e.actualNode.contains(t.actualNode):!!(16&e.actualNode.compareDocumentPosition(t.actualNode));do{if(t===e)return!0}while(t=t&&t.parent);return!1},function(axe){var e=new axe.imports.CssSelectorParser;e.registerSelectorPseudos("not"),e.registerNestingOperators(">"),e.registerAttrEqualityMods("^","$","*"),axe.utils.cssParser=e}(axe),X.prototype={get selector(){return this.spec.selector||[axe.utils.getSelector(this.element,this._options)]},get xpath(){return this.spec.xpath||[axe.utils.getXpath(this.element)]},get element(){return this._element},get fromFrame(){return this._fromFrame},toJSON:function(){"use strict";return{selector:this.selector,source:this.source,xpath:this.xpath}}},X.fromFrame=function(e,t,n){return e.selector.unshift(n.selector),e.xpath.unshift(n.xpath),new axe.utils.DqElement(n.element,t,e)},axe.utils.DqElement=X,axe.utils.matchesSelector=function(){"use strict";var n;return function(e,t){return n&&e[n]||(n=function(e){var t,n,r=["matches","matchesSelector","mozMatchesSelector","webkitMatchesSelector","msMatchesSelector"],a=r.length;for(t=0;t<a;t++)if(e[n=r[t]])return n}(e)),!!e[n]&&e[n](t)}}(),axe.utils.escapeSelector=function(e){"use strict";for(var t,n=String(e),r=n.length,a=-1,o="",i=n.charCodeAt(0);++a<r;)0!=(t=n.charCodeAt(a))?o+=1<=t&&t<=31||127==t||0==a&&48<=t&&t<=57||1==a&&48<=t&&t<=57&&45==i?"\\"+t.toString(16)+" ":(0!=a||1!=r||45!=t)&&(128<=t||45==t||95==t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122)?n.charAt(a):"\\"+n.charAt(a):o+="�";return o},axe.utils.extendMetaData=function(t,n){Object.assign(t,n),Object.keys(n).filter(function(e){return"function"==typeof n[e]}).forEach(function(e){t[e]=null;try{t[e]=n[e](t)}catch(e){}})},axe.utils.finalizeRuleResult=function(e){return Object.assign(e,axe.utils.aggregateNodeResults(e.nodes)),delete e.nodes,e},axe.utils.findBy=function(e,t,n){if(Array.isArray(e))return e.find(function(e){return"object"===S(e)&&e[t]===n})},(axe=axe||{utils:{}}).utils.getFlattenedTree=function(e,t){return axe._cache.set("nodeMap",new WeakMap),function a(e,o,n){var r,t,i;function u(e,t,n){var r=a(t,o,n);return r&&(e=e.concat(r)),e}if(e.documentElement&&(e=e.documentElement),i=e.nodeName.toLowerCase(),axe.utils.isShadowRoot(e))return r=new A(e,n,o),o="a"+Math.random().toString().substring(2),t=Array.from(e.shadowRoot.childNodes),r.children=t.reduce(function(e,t){return u(e,t,r)},[]),[r];if("content"===i&&"function"==typeof e.getDistributedNodes)return(t=Array.from(e.getDistributedNodes())).reduce(function(e,t){return u(e,t,n)},[]);if("slot"!==i||"function"!=typeof e.assignedNodes)return 1===e.nodeType?(r=new A(e,n,o),t=Array.from(e.childNodes),r.children=t.reduce(function(e,t){return u(e,t,r)},[]),[r]):3===e.nodeType?[new A(e,n)]:void 0;(t=Array.from(e.assignedNodes())).length||(t=function(e){var t=[];for(e=e.firstChild;e;)t.push(e),e=e.nextSibling;return t}(e));window.getComputedStyle(e);return t.reduce(function(e,t){return u(e,t,n)},[])}(e,t)},axe.utils.getNodeFromTree=function(e,t){var n=t||e;return axe._cache.get("nodeMap")?axe._cache.get("nodeMap").get(n):null},axe.utils.getAllChecks=function(e){"use strict";return[].concat(e.any||[]).concat(e.all||[]).concat(e.none||[])},axe.utils.getBaseLang=function(e){return e?e.trim().split("-")[0].toLowerCase():""},axe.utils.getCheckOption=function(e,t,n){var r=((n.rules&&n.rules[t]||{}).checks||{})[e.id],a=(n.checks||{})[e.id],o=e.enabled,i=e.options;return a&&(a.hasOwnProperty("enabled")&&(o=a.enabled),a.hasOwnProperty("options")&&(i=a.options)),r&&(r.hasOwnProperty("enabled")&&(o=r.enabled),r.hasOwnProperty("options")&&(i=r.options)),{enabled:o,options:i,absolutePaths:n.absolutePaths}},axe.utils.getFriendlyUriEnd=function(e,t){var n=0<arguments.length&&void 0!==e?e:"",r=1<arguments.length&&void 0!==t?t:{};if(!(n.length<=1||"data:"===n.substr(0,5)||"javascript:"===n.substr(0,11)||n.includes("?"))){var a=r.currentDomain,o=r.maxLength,i=void 0===o?25:o,u=function(e){var t=e,n="",r="",a="",o="",i="";if(e.includes("#")){var u=Y(J(e,e.indexOf("#")),2);e=u[0],i=u[1]}if(e.includes("?")){var s=Y(J(e,e.indexOf("?")),2);e=s[0],o=s[1]}if(e.includes("://")){var l=Y(e.split("://"),2);n=l[0];var c=Y(J(e=l[1],e.indexOf("/")),2);r=c[0],e=c[1]}else if("//"===e.substr(0,2)){var d=Y(J(e=e.substr(2),e.indexOf("/")),2);r=d[0],e=d[1]}if("www."===r.substr(0,4)&&(r=r.substr(4)),r&&r.includes(":")){var m=Y(J(r,r.indexOf(":")),2);r=m[0],a=m[1]}return{original:t,protocol:n,domain:r,port:a,path:e,query:o,hash:i}}(n),s=u.path,l=u.domain,c=u.hash,d=s.substr(s.substr(0,s.length-2).lastIndexOf("/")+1);if(c)return d&&(d+c).length<=i?K(d+c):d.length<2&&2<c.length&&c.length<=i?K(c):void 0;if(l&&l.length<i&&s.length<=1)return K(l+s);if(s==="/"+d&&l&&a&&l!==a&&(l+s).length<=i)return K(l+s);var m=d.lastIndexOf(".");return(-1===m||1<m)&&(-1!==m||2<d.length)&&d.length<=i&&!d.match(/index(\.[a-zA-Z]{2-4})?/)&&!function(e){var t=0<arguments.length&&void 0!==e?e:"";return 0!==t.length&&(t.match(/[0-9]/g)||"").length>=t.length/2}(d)?K(d):void 0}},axe.utils.getNodeAttributes=function(e){return e.attributes instanceof window.NamedNodeMap?e.attributes:e.cloneNode(!1).attributes},axe.utils.getRootNode=function(e){var t=e.getRootNode&&e.getRootNode()||document;return t===e&&(t=document),t},axe.utils.getScroll=function(e,t){var n=1<arguments.length&&void 0!==t?t:0,r=e.scrollWidth>e.clientWidth+n,a=e.scrollHeight>e.clientHeight+n;if(r||a){var o=window.getComputedStyle(e),i=o.getPropertyValue("overflow-x"),u=o.getPropertyValue("overflow-y");return r&&("visible"!==i&&"hidden"!==i)||a&&("visible"!==u&&"hidden"!==u)?{elm:e,top:e.scrollTop,left:e.scrollLeft}:void 0}};var Z,Q,ee=axe.utils.escapeSelector,te=["class","style","id","selected","checked","disabled","tabindex","aria-checked","aria-selected","aria-invalid","aria-activedescendant","aria-busy","aria-disabled","aria-expanded","aria-grabbed","aria-pressed","aria-valuenow"],ne=31;function re(e,t){var n,r=t.name;if(-1!==r.indexOf("href")||-1!==r.indexOf("src")){var a=axe.utils.getFriendlyUriEnd(e.getAttribute(r));if(a){var o=encodeURI(a);if(!o)return;n=ee(t.name)+'$="'+ee(o)+'"'}else n=ee(t.name)+'="'+ee(e.getAttribute(r))+'"'}else n=ee(r)+'="'+ee(t.value)+'"';return n}function ae(e,t){return e.count<t.count?-1:e.count===t.count?0:1}function oe(e){return!te.includes(e.name)&&-1===e.name.indexOf(":")&&(!e.value||e.value.length<ne)}function ie(t,n){var e=t.parentNode&&Array.from(t.parentNode.children||"")||[];return e.find(function(e){return e!==t&&axe.utils.matchesSelector(e,n)})?":nth-child("+(1+e.indexOf(t))+")":""}function ue(e){if(e.getAttribute("id")){var t=e.getRootNode&&e.getRootNode()||document,n="#"+ee(e.getAttribute("id")||"");return n.match(/player_uid_/)||1!==t.querySelectorAll(n).length?void 0:n}}function se(e){return void 0===Z&&(Z=axe.utils.isXHTML(document)),ee(Z?e.localName:e.nodeName.toLowerCase())}function le(e,t){var n,r="",a=function(n,e){var r=[],a=e.classes,o=e.tags;return n.classList&&Array.from(n.classList).forEach(function(e){var t=ee(e);a[t]<o[n.nodeName]&&r.push({name:t,count:a[t],species:"class"})}),r.sort(ae)}(e,t),o=function(n,e){var r=[],a=e.attributes,o=e.tags;return n.hasAttributes()&&Array.from(axe.utils.getNodeAttributes(n)).filter(oe).forEach(function(e){var t=re(n,e);t&&a[t]<o[n.nodeName]&&r.push({name:t,count:a[t],species:"attribute"})}),r.sort(ae)}(e,t);return a.length&&1===a[0].count?n=[a[0]]:o.length&&1===o[0].count?(n=[o[0]],r=se(e)):((n=a.concat(o)).sort(ae),(n=n.slice(0,3)).some(function(e){return"class"===e.species})?n.sort(function(e,t){return e.species!==t.species&&"class"===e.species?-1:e.species===t.species?0:1}):r=se(e)),r+n.reduce(function(e,t){switch(t.species){case"class":return e+"."+t.name;case"attribute":return e+"["+t.name+"]"}return e},"")}function ce(e,t,n){if(!axe._selectorData)throw new Error("Expect axe._selectorData to be set up");var r,a,o=t.toRoot,i=void 0!==o&&o;do{var u=ue(e);u||(u=le(e,axe._selectorData),u+=ie(e,u)),r=r?u+" > "+r:u,a=a?a.filter(function(e){return axe.utils.matchesSelector(e,r)}):Array.from(n.querySelectorAll(r)),e=e.parentElement}while((1<a.length||i)&&e&&11!==e.nodeType);return 1===a.length?r:-1!==r.indexOf(" > ")?":root"+r.substring(r.indexOf(" > ")):":root"}axe.utils.getSelectorData=function(e){function t(){var e=a.pop(),n=e.actualNode;if(n.querySelectorAll){var t=n.nodeName;r.tags[t]?r.tags[t]++:r.tags[t]=1,n.classList&&Array.from(n.classList).forEach(function(e){var t=ee(e);r.classes[t]?r.classes[t]++:r.classes[t]=1}),n.hasAttributes()&&Array.from(axe.utils.getNodeAttributes(n)).filter(oe).forEach(function(e){var t=re(n,e);t&&(r.attributes[t]?r.attributes[t]++:r.attributes[t]=1)})}for(e.children.length&&(o.push(a),a=e.children.slice());!a.length&&o.length;)a=o.pop()}for(var r={classes:{},tags:{},attributes:{}},a=(e=Array.isArray(e)?e:[e]).slice(),o=[];a.length;)t();return r},axe.utils.getSelector=function(e,t){var n=1<arguments.length&&void 0!==t?t:{};if(!e)return"";var r=e.getRootNode&&e.getRootNode()||document;if(11!==r.nodeType)return ce(e,n,r);for(var a=[];11===r.nodeType;)a.push({elm:e,doc:r}),r=(e=r.host).getRootNode();return a.push({elm:e,doc:r}),a.reverse().map(function(e){return ce(e.elm,n,e.doc)})},axe.utils.getStyleSheetFactory=function(d){if(!d)throw new Error("axe.utils.getStyleSheetFactory should be invoked with an argument");return function(e){var t=e.data,n=e.isCrossOrigin,r=void 0!==n&&n,a=e.shadowId,o=e.root,i=e.priority,u=e.isLink,s=void 0!==u&&u,l=d.createElement("style");if(s){var c=d.createTextNode('@import "'.concat(t.href,'"'));l.appendChild(c)}else l.appendChild(d.createTextNode(t));return d.head.appendChild(l),{sheet:l.sheet,isCrossOrigin:r,shadowId:a,root:o,priority:i}}},axe.utils.getXpath=function(e){return function(e){return e.reduce(function(e,t){return t.id?"/".concat(t.str,"[@id='").concat(t.id,"']"):e+"/".concat(t.str)+(0<t.count?"[".concat(t.count,"]"):"")},"")}(function e(t,n){var r,a;if(!t)return[];if(!n&&9===t.nodeType)return n=[{str:"html"}];if(n=n||[],t.parentNode&&t.parentNode!==t&&(n=e(t.parentNode,n)),t.previousSibling){for(a=1,r=t.previousSibling;1===r.nodeType&&r.nodeName===t.nodeName&&a++,r=r.previousSibling;);1===a&&(a=null)}else if(t.nextSibling)for(r=t.nextSibling;r=1===r.nodeType&&r.nodeName===t.nodeName?(a=1,null):(a=null,r.previousSibling););if(1===t.nodeType){var o={};o.str=t.nodeName.toLowerCase();var i=t.getAttribute&&axe.utils.escapeSelector(t.getAttribute("id"));i&&1===t.ownerDocument.querySelectorAll("#"+i).length&&(o.id=t.getAttribute("id")),1<a&&(o.count=a),n.push(o)}return n}(e))},axe.utils.injectStyle=function(e){"use strict";if(Q&&Q.parentNode)return void 0===Q.styleSheet?Q.appendChild(document.createTextNode(e)):Q.styleSheet.cssText+=e,Q;if(e){var t=document.head||document.getElementsByTagName("head")[0];return(Q=document.createElement("style")).type="text/css",void 0===Q.styleSheet?Q.appendChild(document.createTextNode(e)):Q.styleSheet.cssText=e,t.appendChild(Q),Q}},axe.utils.isHidden=function(e,t){"use strict";var n=axe.utils.getNodeFromTree(e);if(9===e.nodeType)return!1;if(11===e.nodeType&&(e=e.host),n&&null!==n._isHidden)return n._isHidden;var r=window.getComputedStyle(e,null);if(!r||!e.parentNode||"none"===r.getPropertyValue("display")||!t&&"hidden"===r.getPropertyValue("visibility")||"true"===e.getAttribute("aria-hidden"))return!0;var a=e.assignedSlot?e.assignedSlot:e.parentNode,o=axe.utils.isHidden(a,!0);return n&&(n._isHidden=o),o};var de=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];axe.utils.isHtmlElement=function(e){var t=e.nodeName.toLowerCase();return de.includes(t)&&"http://www.w3.org/2000/svg"!==e.namespaceURI};var me,pe,fe=["article","aside","blockquote","body","div","footer","h1","h2","h3","h4","h5","h6","header","main","nav","p","section","span"];function he(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function be(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function ge(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function ye(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function ve(e){return"function"==typeof e||"[object Function]"===me.call(e)}function De(e){var t=function(e){var t=Number(e);return isNaN(t)?0:0!==t&&isFinite(t)?(0<t?1:-1)*Math.floor(Math.abs(t)):t}(e);return Math.min(Math.max(t,0),pe)}function we(e){var t=e.nodeName.toUpperCase(),n=e.getAttribute("href"),r=e.getAttribute("rel"),a="LINK"===t&&n&&r&&e.rel.toUpperCase().includes("STYLESHEET");return"STYLE"===t||a&&ke(e.media)}function ke(e){return!e||!e.toUpperCase().includes("PRINT")}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function xe(a,o){"use strict";return function(e){var t=a[e.id]||{},n=t.messages||{},r=Object.assign({},t);delete r.messages,void 0===e.result?"object"===S(n.incomplete)?r.message=function(){return function(t,n){function r(e){return e.incomplete&&e.incomplete.default?e.incomplete.default:u.incompleteFallbackMessage()}if(!t||!t.missingData)return r(n);try{var e=n.incomplete[t.missingData[0].reason];if(!e)throw new Error;return e}catch(e){return"string"==typeof t.missingData?n.incomplete[t.missingData]:r(n)}}(e.data,n)}:r.message=n.incomplete:r.message=e.result===o?n.pass:n.fail,axe.utils.extendMetaData(e,r)}}axe.utils.isShadowRoot=function(e){var t=e.nodeName.toLowerCase();return!(!e.shadowRoot||!/^[a-z][a-z0-9_.-]*-[a-z0-9_.-]*$/.test(t)&&!fe.includes(t))},axe.utils.isXHTML=function(e){"use strict";return!!e.createElement&&"A"===e.createElement("A").localName},axe.utils.mergeResults=function(e,r){"use strict";var a=[];return e.forEach(function(n){var e=function(e){"use strict";return e&&e.results?Array.isArray(e.results)?e.results.length?e.results:null:[e.results]:null}(n);e&&e.length&&e.forEach(function(e){e.nodes&&n.frame&&function(e,n,t,r){"use strict";var a={element:t,selector:r,xpath:axe.utils.getXpath(t)};e.forEach(function(e){e.node=axe.utils.DqElement.fromFrame(e.node,n,a);var t=axe.utils.getAllChecks(e);t.length&&t.forEach(function(e){e.relatedNodes=e.relatedNodes.map(function(e){return axe.utils.DqElement.fromFrame(e,n,a)})})})}(e.nodes,r,n.frameElement,n.frame);var t=axe.utils.findBy(a,"id",e.id);t?e.nodes.length&&function(e,t){"use strict";for(var n,r,a=t[0].node,o=0,i=e.length;o<i;o++)if(r=e[o].node,0<(n=axe.utils.nodeSorter({actualNode:r.element},{actualNode:a.element}))||0===n&&a.selector.length<r.selector.length)return e.splice.apply(e,[o,0].concat(t));e.push.apply(e,t)}(t.nodes,e.nodes):a.push(e)})}),a},axe.utils.nodeSorter=function(e,t){return(e=e.actualNode||e)===(t=t.actualNode||t)?0:4&e.compareDocumentPosition(t)?-1:1},axe.utils.parseCrossOriginStylesheet=function(e,r,a,o,i){var t={method:"get",url:e};return o.push(e),axe.imports.axios(t).then(function(e){var t=e.data,n=r.convertDataToStylesheet({data:t,isCrossOrigin:i,priority:a,root:r.rootNode,shadowId:r.shadowId});return axe.utils.parseStylesheet(n.sheet,r,a,o,n.isCrossOrigin)})},axe.utils.parseSameOriginStylesheet=function(e,a,o,i,t){var n=4<arguments.length&&void 0!==t&&t,r=Array.from(e.cssRules);if(!r)return Promise.resolve();var u=r.filter(function(e){return 3===e.type});if(!u.length)return Promise.resolve({isCrossOrigin:n,priority:o,root:a.rootNode,shadowId:a.shadowId,sheet:e});var s=u.filter(function(e){return e.href}).map(function(e){return e.href}).filter(function(e){return!i.includes(e)}).map(function(e,t){var n=[].concat(he(o),[t]),r=/^https?:\/\/|^\/\//i.test(e);return axe.utils.parseCrossOriginStylesheet(e,a,n,i,r)}),l=r.filter(function(e){return 3!==e.type});return l.length&&s.push(Promise.resolve(a.convertDataToStylesheet({data:l.map(function(e){return e.cssText}).join(),isCrossOrigin:n,priority:o,root:a.rootNode,shadowId:a.shadowId}))),Promise.all(s)},axe.utils.parseStylesheet=function(e,t,n,r,a){var o=4<arguments.length&&void 0!==a&&a;return function(e){try{return!(!e.cssRules&&e.href)}catch(e){return!1}}(e)?axe.utils.parseSameOriginStylesheet(e,t,n,r,o):axe.utils.parseCrossOriginStylesheet(e.href,t,n,r,!0)},utils.performanceTimer=function(){"use strict";function e(){if(window.performance&&window.performance)return window.performance.now()}var t=null,n=e();return{start:function(){this.mark("mark_axe_start")},end:function(){this.mark("mark_axe_end"),this.measure("axe","mark_axe_start","mark_axe_end"),this.logMeasures("axe")},auditStart:function(){this.mark("mark_audit_start")},auditEnd:function(){this.mark("mark_audit_end"),this.measure("audit_start_to_end","mark_audit_start","mark_audit_end"),this.logMeasures()},mark:function(e){window.performance&&void 0!==window.performance.mark&&window.performance.mark(e)},measure:function(e,t,n){window.performance&&void 0!==window.performance.measure&&window.performance.measure(e,t,n)},logMeasures:function(e){function t(e){axe.log("Measure "+e.name+" took "+e.duration+"ms")}if(window.performance&&void 0!==window.performance.getEntriesByType)for(var n=window.performance.getEntriesByName("mark_axe_start")[0],r=window.performance.getEntriesByType("measure").filter(function(e){return e.startTime>=n.startTime}),a=0;a<r.length;++a){var o=r[a];if(o.name===e)return void t(o);t(o)}},timeElapsed:function(){return e()-n},reset:function(){t=t||e(),n=e()}}}(),"function"!=typeof Object.assign&&(Object.assign=function(e){"use strict";if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n<arguments.length;n++){var r=arguments[n];if(null!=r)for(var a in r)r.hasOwnProperty(a)&&(t[a]=r[a])}return t}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(e){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var t,n=Object(this),r=n.length>>>0,a=arguments[1],o=0;o<r;o++)if(t=n[o],e.call(a,t,o,n))return t}}),axe.utils.pollyfillElementsFromPoint=function(){if(document.elementsFromPoint)return document.elementsFromPoint;if(document.msElementsFromPoint)return document.msElementsFromPoint;var e,t=((e=document.createElement("x")).style.cssText="pointer-events:auto","auto"===e.style.pointerEvents),u=t?"pointer-events":"visibility",s=t?"none":"hidden",l=document.createElement("style");return l.innerHTML=t?"* { pointer-events: all }":"* { visibility: visible }",function(e,t){var n,r,a,o=[],i=[];for(document.head.appendChild(l);(n=document.elementFromPoint(e,t))&&-1===o.indexOf(n);)o.push(n),i.push({value:n.style.getPropertyValue(u),priority:n.style.getPropertyPriority(u)}),n.style.setProperty(u,s,"important");for(o.indexOf(document.documentElement)<o.length-1&&(o.splice(o.indexOf(document.documentElement),1),o.push(document.documentElement)),r=i.length;a=i[--r];)o[r].style.setProperty(u,a.value?a.value:"",a.priority);return document.head.removeChild(l),o}},"function"==typeof window.addEventListener&&(document.elementsFromPoint=axe.utils.pollyfillElementsFromPoint()),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(e,t){"use strict";var n=Object(this),r=parseInt(n.length,10)||0;if(0===r)return!1;var a,o,i=parseInt(t,10)||0;for(0<=i?a=i:(a=r+i)<0&&(a=0);a<r;){if(e===(o=n[a])||e!=e&&o!=o)return!0;a++}return!1}}),Array.prototype.some||Object.defineProperty(Array.prototype,"some",{value:function(e,t){"use strict";if(null==this)throw new TypeError("Array.prototype.some called on null or undefined");if("function"!=typeof e)throw new TypeError;for(var n=Object(this),r=n.length>>>0,a=2<=arguments.length?t:void 0,o=0;o<r;o++)if(o in n&&e.call(a,n[o],o,n))return!0;return!1}}),Array.from||Object.defineProperty(Array,"from",{value:(me=Object.prototype.toString,pe=Math.pow(2,53)-1,function(e,t,n){var r=Object(e);if(null==e)throw new TypeError("Array.from requires an array-like object - not null or undefined");var a,o=1<arguments.length?t:void 0;if(void 0!==o){if(!ve(o))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(a=n)}for(var i,u=De(r.length),s=ve(this)?Object(new this(u)):new Array(u),l=0;l<u;)i=r[l],s[l]=o?void 0===a?o(i,l):o.call(a,i,l):i,l+=1;return s.length=u,s})}),String.prototype.includes||(String.prototype.includes=function(e,t){return"number"!=typeof t&&(t=0),!(t+e.length>this.length)&&-1!==this.indexOf(e,t)}),axe.utils.preloadCssom=function(e){var t=e.treeRoot,n=function(e){var t=[],n=axe.utils.querySelectorAllFilter(e,"*",function(e){return!t.includes(e.shadowId)&&(t.push(e.shadowId),!0)}).map(function(e){return{shadowId:e.shadowId,rootNode:axe.utils.getRootNode(e.actualNode)}});return axe.utils.uniqueArray(n,[])}(void 0===t?axe._tree[0]:t);if(!n.length)return Promise.resolve();var r=document.implementation.createHTMLDocument("Dynamic document for loading cssom");return function(e,l){var c=[];return e.forEach(function(e,t){var n=e.rootNode,r=e.shadowId,a=function(e,t,n){var r;r=11===e.nodeType&&t?function(o,i){return Array.from(o.children).filter(we).reduce(function(e,t){var n=t.nodeName.toUpperCase(),r="STYLE"===n?t.textContent:t,a=i({data:r,isLink:"LINK"===n,root:o});return e.push(a.sheet),e},[])}(e,n):function(e){return Array.from(e.styleSheets).filter(function(e){return ke(e.media.mediaText)})}(e);return function(e){var t=[];return e.filter(function(e){return!e.href||!t.includes(e.href)&&(t.push(e.href),!0)})}(r)}(n,r,l);if(!a)return Promise.all(c);var o=t+1,i={rootNode:n,shadowId:r,convertDataToStylesheet:l,rootIndex:o},u=[],s=Promise.all(a.map(function(e,t){var n=[o,t];return axe.utils.parseStylesheet(e,i,n,u)}));c.push(s)}),Promise.all(c)}(n,axe.utils.getStyleSheetFactory(r)).then(function(e){return function n(e){return e.reduce(function(e,t){return Array.isArray(t)?e.concat(n(t)):e.concat(t)},[])}(e)})},axe.utils.shouldPreload=function(e){return!e||void 0===e.preload||null===e.preload||("boolean"==typeof e.preload?e.preload:function(e){return"object"===S(e)&&Array.isArray(e.assets)}(e.preload))},axe.utils.getPreloadConfig=function(e){var t=axe.constants.preload,n=t.assets,r=t.timeout,a={assets:n,timeout:r};if(!e.preload)return a;if("boolean"==typeof e.preload)return a;if(!e.preload.assets.every(function(e){return n.includes(e.toLowerCase())}))throw new Error("Requested assets, not supported. "+"Supported assets are: ".concat(n.join(", "),"."));return a.assets=axe.utils.uniqueArray(e.preload.assets.map(function(e){return e.toLowerCase()}),[]),e.preload.timeout&&"number"==typeof e.preload.timeout&&!Number.isNaN(e.preload.timeout)&&(a.timeout=e.preload.timeout),a},axe.utils.preload=function(o){var i={cssom:axe.utils.preloadCssom};return axe.utils.shouldPreload(o)?new Promise(function(n,e){var t=axe.utils.getPreloadConfig(o),r=t.assets,a=t.timeout;setTimeout(function(){return e("Preload assets timed out.")},a),Promise.all(r.map(function(t){return i[t](o).then(function(e){return function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},t,e)})})).then(function(e){var t=e.reduce(function(e,t){return R({},e,{},t)},{});n(t)})}):Promise.resolve()},axe.utils.publishMetaData=function(e){"use strict";var t=axe._audit.data.checks||{},n=axe._audit.data.rules||{},r=axe.utils.findBy(axe._audit.rules,"id",e.id)||{};e.tags=axe.utils.clone(r.tags||[]);var a=xe(t,!0),o=xe(t,!1);e.nodes.forEach(function(e){e.any.forEach(a),e.all.forEach(a),e.none.forEach(o)}),axe.utils.extendMetaData(e,axe.utils.clone(n[e.id]||{}))};var Ee=function(){},Ce=function(){};var Ae,Fe,je=(Ae=/(?=[\-\[\]{}()*+?.\\\^$|,#\s])/g,function(e){return e.replace(Ae,"\\")}),ze=/\\/g;function qe(e){if(e)return e.map(function(e){var t,n,r=e.name.replace(ze,""),a=(e.value||"").replace(ze,"");switch(e.operator){case"^=":n=new RegExp("^"+je(a));break;case"$=":n=new RegExp(je(a)+"$");break;case"~=":n=new RegExp("(^|\\s)"+je(a)+"(\\s|$)");break;case"|=":n=new RegExp("^"+je(a)+"(-|$)");break;case"=":t=function(e){return a===e};break;case"*=":t=function(e){return e&&e.includes(a)};break;case"!=":t=function(e){return a!==e};break;default:t=function(e){return!!e}}return""===a&&/^[*$^]=$/.test(e.operator)&&(t=function(){return!1}),{key:r,value:a,test:t=t||function(e){return e&&n.test(e)}}})}function Ne(e){if(e)return e.map(function(e){return{value:e=e.replace(ze,""),regexp:new RegExp("(^|\\s)"+je(e)+"(\\s|$)")}})}function Te(e){if(e)return e.map(function(e){var t;return"not"===e.name&&(t=(t=e.value).selectors?t.selectors:[t],t=Ee(t)),{name:e.name,expressions:t,value:e.value}})}function Se(e,t,n,r){var a={vNodes:e.slice(),anyLevel:t,thisLevel:n,parentShadowId:r};return a.vNodes.reverse(),a}function Re(e,t){return function(e,t){return 1===e.props.nodeType&&("*"===t.tag||e.props.nodeName===t.tag)}(e,t[0])&&function(t,e){return!e.classes||e.classes.every(function(e){return t.hasClass(e.value)})}(e,t[0])&&function(r,e){return!e.attributes||e.attributes.reduce(function(e,t){var n=r.attr(t.key);return e&&null!==n&&(!t.value||t.test(n))},!0)}(e,t[0])&&function(e,t){return!t.id||e.props.id===t.id}(e,t[0])&&function(n,e){return!(e.pseudos&&!e.pseudos.reduce(function(e,t){if("not"===t.name)return e&&!Ce([n],t.expressions,!1).length;throw new Error("the pseudo selector "+t.name+" has not yet been implemented")},!0))}(e,t[0])}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Oe(t,e){"use strict";var n,r,a=axe._audit&&axe._audit.tagExclude?axe._audit.tagExclude:[];return r=e.hasOwnProperty("include")||e.hasOwnProperty("exclude")?(n=e.include||[],n=Array.isArray(n)?n:[n],r=e.exclude||[],(r=Array.isArray(r)?r:[r]).concat(a.filter(function(e){return-1===n.indexOf(e)}))):(n=Array.isArray(e)?e:[e],a.filter(function(e){return-1===n.indexOf(e)})),!!(n.some(function(e){return-1!==t.tags.indexOf(e)})||0===n.length&&!1!==t.enabled)&&r.every(function(e){return-1===t.tags.indexOf(e)})}function _e(e){"use strict";return e.sort(function(e,t){return axe.utils.contains(e,t)?1:-1})[0]}function Be(t,e){"use strict";var n=e.include&&_e(e.include.filter(function(e){return axe.utils.contains(e,t)})),r=e.exclude&&_e(e.exclude.filter(function(e){return axe.utils.contains(e,t)}));return!!(!r&&n||r&&axe.utils.contains(r,n))}function Le(e,t){"use strict";var n;if(0===e.length)return t;e.length<t.length&&(n=e,e=t,t=n);for(var r=0,a=t.length;r<a;r++)e.includes(t[r])||e.push(t[r]);return e}Ee=function(e){return e.map(function(e){for(var t=[],n=e.rule;n;)t.push({tag:n.tagName?n.tagName.toLowerCase():"*",combinator:n.nestingOperator?n.nestingOperator:" ",id:n.id,attributes:qe(n.attrs),classes:Ne(n.classNames),pseudos:Te(n.pseudos)}),n=n.rule;return t})},Ce=function(e,t,n,r){for(var a=[],o=Se(Array.isArray(e)?e:[e],t,[],e[0].shadowId),i=[];o.vNodes.length;){for(var u=o.vNodes.pop(),s=[],l=[],c=o.anyLevel.slice().concat(o.thisLevel),d=!1,m=0;m<c.length;m++){var p=c[m];if(Re(u,p)&&(!p[0].id||u.shadowId===o.parentShadowId))if(1===p.length)d||r&&!r(u)||(i.push(u),d=!0);else{var f=p.slice(1);if(!1===[" ",">"].includes(f[0].combinator))throw new Error("axe.utils.querySelectorAll does not support the combinator: "+p[1].combinator);">"===f[0].combinator?s.push(f):l.push(f)}!o.anyLevel.includes(p)||p[0].id&&u.shadowId!==o.parentShadowId||l.push(p)}for(u.children&&u.children.length&&n&&(a.push(o),o=Se(u.children,l,s,u.shadowId));!o.vNodes.length&&a.length;)o=a.pop()}return i},axe.utils.querySelectorAll=function(e,t){return axe.utils.querySelectorAllFilter(e,t)},axe.utils.querySelectorAllFilter=function(e,t,n){e=Array.isArray(e)?e:[e];var r=axe.utils.cssParser.parse(t);return r=r.selectors?r.selectors:[r],r=Ee(r),Ce(e,r,!0,n)},function(){"use strict";function m(){}function p(e){if("function"!=typeof e)throw new TypeError("Queue methods require functions as arguments")}axe.utils.queue=function(){function t(e){r=e,setTimeout(function(){null!=r&&axe.log("Uncaught error (of queue)",r)},1)}var r,a=[],o=0,i=0,n=m,u=!1,s=t;function l(t){return function(e){a[t]=e,(i-=1)||n===m||(u=!0,n(a))}}function c(e){return n=m,s(e),a}var d={defer:function(e){if("object"===S(e)&&e.then&&e.catch){var n=e;e=function(e,t){n.then(e).catch(t)}}if(p(e),void 0===r){if(u)throw new Error("Queue already completed");return a.push(e),++i,function(){for(var e=a.length;o<e;o++){var t=a[o];try{t.call(null,l(o),c)}catch(e){c(e)}}}(),d}},then:function(e){if(p(e),n!==m)throw new Error("queue `then` already set");return r||(n=e,i||(u=!0,n(a))),d},catch:function(e){if(p(e),s!==t)throw new Error("queue `catch` already set");return r?(e(r),r=null):s=e,d},abort:c};return d}}(),function(e){"use strict";var s={},i={},a=Object.freeze(["EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);function l(){var e="axeAPI",t="";return void 0!==axe&&axe._audit&&axe._audit.application&&(e=axe._audit.application),void 0!==axe&&(t=axe.version),e+"."+t}function u(e,t,n,r,a,o){var i;n instanceof Error&&(i={name:n.name,message:n.message,stack:n.stack},n=void 0);var u={uuid:r,topic:t,message:n,error:i,_respondable:!0,_source:l(),_keepalive:a};"function"==typeof o&&(s[r]=o),e.postMessage(JSON.stringify(u),"*")}function t(e,t,n,r,a){u(e,t,n,Fe.v1(),r,a)}function c(r,a,o){return function(e,t,n){u(r,a,e,o,t,n)}}function o(e){var t;if("string"==typeof e){try{t=JSON.parse(e)}catch(e){}if(function(e){if("object"!==S(e)||"string"!=typeof e.uuid||!0!==e._respondable)return!1;var t=l();return e._source===t||"axeAPI.x.y.z"===e._source||"axeAPI.x.y.z"===t}(t))return"object"===S(t.error)?t.error=function(e){var t=e.message||"Unknown error occurred",n=a.includes(e.name)?e.name:"Error",r=window[n]||Error;return e.stack&&(t+="\n"+e.stack.replace(e.message,"")),new r(t)}(t.error):t.error=void 0,t}}t.subscribe=function(e,t){i[e]=t},t.isInFrame=function(e){return!!(e=e||window).frameElement},"function"==typeof window.addEventListener&&window.addEventListener("message",function(t){var n=o(t.data);if(n){var r=n.uuid,e=n._keepalive,a=s[r];if(a)a(n.error||n.message,e,c(t.source,n.topic,r)),e||delete s[r];if(!n.error)try{!function(e,t,n){var r=t.topic,a=i[r];if(a){var o=c(e,null,t.uuid);a(t.message,n,o)}}(t.source,n,e)}catch(e){u(t.source,n.topic,e,r,!1)}}},!1),e.respondable=t}(utils),axe.utils.ruleShouldRun=function(e,t,n){"use strict";var r=n.runOnly||{},a=(n.rules||{})[e.id];return!(e.pageLevel&&!t.page)&&("rule"===r.type?-1!==r.values.indexOf(e.id):a&&"boolean"==typeof a.enabled?a.enabled:"tag"===r.type&&r.values?Oe(e,r.values):Oe(e,[]))},axe.utils.getScrollState=function(e){var t=0<arguments.length&&void 0!==e?e:window,n=t.document.documentElement;return[void 0!==t.pageXOffset?{elm:t,top:t.pageYOffset,left:t.pageXOffset}:{elm:n,top:n.scrollTop,left:n.scrollLeft}].concat(function r(e){return Array.from(e.children).reduce(function(e,t){var n=axe.utils.getScroll(t);return n&&e.push(n),e.concat(r(t))},[])}(document.body))},axe.utils.setScrollState=function(e){e.forEach(function(e){return function(e,t,n){if(e===window)return e.scroll(n,t);e.scrollTop=t,e.scrollLeft=n}(e.elm,e.top,e.left)})},axe.utils.select=function(e,t){"use strict";var n,r=[];if(axe._selectCache)for(var a=0,o=axe._selectCache.length;a<o;a++){var i=axe._selectCache[a];if(i.selector===e)return i.result}for(var u,s=(u=t,function(e){return Be(e,u)}),l=function(e){return e.reduce(function(e,t){return e.length&&axe.utils.contains(e[e.length-1],t)||e.push(t),e},[])}(t.include),c=0;c<l.length;c++)n=l[c],r=Le(r,axe.utils.querySelectorAllFilter(n,e,s));return axe._selectCache&&axe._selectCache.push({selector:e,result:r}),r},axe.utils.toArray=function(e){"use strict";return Array.prototype.slice.call(e)},axe.utils.uniqueArray=function(e,t){return e.concat(t).filter(function(e,t,n){return n.indexOf(e)===t})},axe.utils.tokenList=function(e){"use strict";return e.trim().replace(/\s{2,}/g," ").split(" ")},function(e){var i,t=e.crypto||e.msCrypto;if(!i&&t&&t.getRandomValues){var n=new Uint8Array(16);i=function(){return t.getRandomValues(n),n}}if(!i){var r=new Array(16);i=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),r[t]=e>>>((3&t)<<3)&255;return r}}for(var u="function"==typeof e.Buffer?e.Buffer:Array,a=[],o={},s=0;s<256;s++)a[s]=(s+256).toString(16).substr(1),o[a[s]]=s;function p(e,t){var n=t||0,r=a;return r[e[n++]]+r[e[n++]]+r[e[n++]]+r[e[n++]]+"-"+r[e[n++]]+r[e[n++]]+"-"+r[e[n++]]+r[e[n++]]+"-"+r[e[n++]]+r[e[n++]]+"-"+r[e[n++]]+r[e[n++]]+r[e[n++]]+r[e[n++]]+r[e[n++]]+r[e[n++]]}var l=i(),f=[1|l[0],l[1],l[2],l[3],l[4],l[5]],h=16383&(l[6]<<8|l[7]),b=0,g=0;function c(e,t,n){var r=t&&n||0;"string"==typeof e&&(t="binary"==e?new u(16):null,e=null);var a=(e=e||{}).random||(e.rng||i)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var o=0;o<16;o++)t[r+o]=a[o];return t||p(a)}(Fe=c).v1=function(e,t,n){var r=t&&n||0,a=t||[],o=null!=(e=e||{}).clockseq?e.clockseq:h,i=null!=e.msecs?e.msecs:(new Date).getTime(),u=null!=e.nsecs?e.nsecs:g+1,s=i-b+(u-g)/1e4;if(s<0&&null==e.clockseq&&(o=o+1&16383),(s<0||b<i)&&null==e.nsecs&&(u=0),1e4<=u)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");b=i,h=o;var l=(1e4*(268435455&(i+=122192928e5))+(g=u))%4294967296;a[r++]=l>>>24&255,a[r++]=l>>>16&255,a[r++]=l>>>8&255,a[r++]=255&l;var c=i/4294967296*1e4&268435455;a[r++]=c>>>8&255,a[r++]=255&c,a[r++]=c>>>24&15|16,a[r++]=c>>>16&255,a[r++]=o>>>8|128,a[r++]=255&o;for(var d=e.node||f,m=0;m<6;m++)a[r+m]=d[m];return t||p(a)},Fe.v4=c,Fe.parse=function(e,t,n){var r=t&&n||0,a=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){a<16&&(t[r+a++]=o[e])});a<16;)t[r+a++]=0;return t},Fe.unparse=p,Fe.BufferClass=u}(window),axe.utils.validInputTypes=function(){"use strict";return["hidden","text","search","tel","url","email","password","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]};var Ie=["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","in","io","is","it","iu","iw","ja","ji","jv","jw","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mo","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","sh","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu","aaa","aab","aac","aad","aae","aaf","aag","aah","aai","aak","aal","aam","aan","aao","aap","aaq","aas","aat","aau","aav","aaw","aax","aaz","aba","abb","abc","abd","abe","abf","abg","abh","abi","abj","abl","abm","abn","abo","abp","abq","abr","abs","abt","abu","abv","abw","abx","aby","abz","aca","acb","acd","ace","acf","ach","aci","ack","acl","acm","acn","acp","acq","acr","acs","act","acu","acv","acw","acx","acy","acz","ada","adb","add","ade","adf","adg","adh","adi","adj","adl","adn","ado","adp","adq","adr","ads","adt","adu","adw","adx","ady","adz","aea","aeb","aec","aed","aee","aek","ael","aem","aen","aeq","aer","aes","aeu","aew","aey","aez","afa","afb","afd","afe","afg","afh","afi","afk","afn","afo","afp","afs","aft","afu","afz","aga","agb","agc","agd","age","agf","agg","agh","agi","agj","agk","agl","agm","agn","ago","agp","agq","agr","ags","agt","agu","agv","agw","agx","agy","agz","aha","ahb","ahg","ahh","ahi","ahk","ahl","ahm","ahn","aho","ahp","ahr","ahs","aht","aia","aib","aic","aid","aie","aif","aig","aih","aii","aij","aik","ail","aim","ain","aio","aip","aiq","air","ais","ait","aiw","aix","aiy","aja","ajg","aji","ajn","ajp","ajt","aju","ajw","ajz","akb","akc","akd","ake","akf","akg","akh","aki","akj","akk","akl","akm","ako","akp","akq","akr","aks","akt","aku","akv","akw","akx","aky","akz","ala","alc","ald","ale","alf","alg","alh","ali","alj","alk","all","alm","aln","alo","alp","alq","alr","als","alt","alu","alv","alw","alx","aly","alz","ama","amb","amc","ame","amf","amg","ami","amj","amk","aml","amm","amn","amo","amp","amq","amr","ams","amt","amu","amv","amw","amx","amy","amz","ana","anb","anc","and","ane","anf","ang","anh","ani","anj","ank","anl","anm","ann","ano","anp","anq","anr","ans","ant","anu","anv","anw","anx","any","anz","aoa","aob","aoc","aod","aoe","aof","aog","aoh","aoi","aoj","aok","aol","aom","aon","aor","aos","aot","aou","aox","aoz","apa","apb","apc","apd","ape","apf","apg","aph","api","apj","apk","apl","apm","apn","apo","app","apq","apr","aps","apt","apu","apv","apw","apx","apy","apz","aqa","aqc","aqd","aqg","aql","aqm","aqn","aqp","aqr","aqt","aqz","arb","arc","ard","are","arh","ari","arj","ark","arl","arn","aro","arp","arq","arr","ars","art","aru","arv","arw","arx","ary","arz","asa","asb","asc","asd","ase","asf","asg","ash","asi","asj","ask","asl","asn","aso","asp","asq","asr","ass","ast","asu","asv","asw","asx","asy","asz","ata","atb","atc","atd","ate","atg","ath","ati","atj","atk","atl","atm","atn","ato","atp","atq","atr","ats","att","atu","atv","atw","atx","aty","atz","aua","aub","auc","aud","aue","auf","aug","auh","aui","auj","auk","aul","aum","aun","auo","aup","auq","aur","aus","aut","auu","auw","aux","auy","auz","avb","avd","avi","avk","avl","avm","avn","avo","avs","avt","avu","avv","awa","awb","awc","awd","awe","awg","awh","awi","awk","awm","awn","awo","awr","aws","awt","awu","awv","aww","awx","awy","axb","axe","axg","axk","axl","axm","axx","aya","ayb","ayc","ayd","aye","ayg","ayh","ayi","ayk","ayl","ayn","ayo","ayp","ayq","ayr","ays","ayt","ayu","ayx","ayy","ayz","aza","azb","azc","azd","azg","azj","azm","azn","azo","azt","azz","baa","bab","bac","bad","bae","baf","bag","bah","bai","baj","bal","ban","bao","bap","bar","bas","bat","bau","bav","baw","bax","bay","baz","bba","bbb","bbc","bbd","bbe","bbf","bbg","bbh","bbi","bbj","bbk","bbl","bbm","bbn","bbo","bbp","bbq","bbr","bbs","bbt","bbu","bbv","bbw","bbx","bby","bbz","bca","bcb","bcc","bcd","bce","bcf","bcg","bch","bci","bcj","bck","bcl","bcm","bcn","bco","bcp","bcq","bcr","bcs","bct","bcu","bcv","bcw","bcy","bcz","bda","bdb","bdc","bdd","bde","bdf","bdg","bdh","bdi","bdj","bdk","bdl","bdm","bdn","bdo","bdp","bdq","bdr","bds","bdt","bdu","bdv","bdw","bdx","bdy","bdz","bea","beb","bec","bed","bee","bef","beg","beh","bei","bej","bek","bem","beo","bep","beq","ber","bes","bet","beu","bev","bew","bex","bey","bez","bfa","bfb","bfc","bfd","bfe","bff","bfg","bfh","bfi","bfj","bfk","bfl","bfm","bfn","bfo","bfp","bfq","bfr","bfs","bft","bfu","bfw","bfx","bfy","bfz","bga","bgb","bgc","bgd","bge","bgf","bgg","bgi","bgj","bgk","bgl","bgm","bgn","bgo","bgp","bgq","bgr","bgs","bgt","bgu","bgv","bgw","bgx","bgy","bgz","bha","bhb","bhc","bhd","bhe","bhf","bhg","bhh","bhi","bhj","bhk","bhl","bhm","bhn","bho","bhp","bhq","bhr","bhs","bht","bhu","bhv","bhw","bhx","bhy","bhz","bia","bib","bic","bid","bie","bif","big","bij","bik","bil","bim","bin","bio","bip","biq","bir","bit","biu","biv","biw","bix","biy","biz","bja","bjb","bjc","bjd","bje","bjf","bjg","bjh","bji","bjj","bjk","bjl","bjm","bjn","bjo","bjp","bjq","bjr","bjs","bjt","bju","bjv","bjw","bjx","bjy","bjz","bka","bkb","bkc","bkd","bkf","bkg","bkh","bki","bkj","bkk","bkl","bkm","bkn","bko","bkp","bkq","bkr","bks","bkt","bku","bkv","bkw","bkx","bky","bkz","bla","blb","blc","bld","ble","blf","blg","blh","bli","blj","blk","bll","blm","bln","blo","blp","blq","blr","bls","blt","blv","blw","blx","bly","blz","bma","bmb","bmc","bmd","bme","bmf","bmg","bmh","bmi","bmj","bmk","bml","bmm","bmn","bmo","bmp","bmq","bmr","bms","bmt","bmu","bmv","bmw","bmx","bmy","bmz","bna","bnb","bnc","bnd","bne","bnf","bng","bni","bnj","bnk","bnl","bnm","bnn","bno","bnp","bnq","bnr","bns","bnt","bnu","bnv","bnw","bnx","bny","bnz","boa","bob","boe","bof","bog","boh","boi","boj","bok","bol","bom","bon","boo","bop","boq","bor","bot","bou","bov","bow","box","boy","boz","bpa","bpb","bpd","bpg","bph","bpi","bpj","bpk","bpl","bpm","bpn","bpo","bpp","bpq","bpr","bps","bpt","bpu","bpv","bpw","bpx","bpy","bpz","bqa","bqb","bqc","bqd","bqf","bqg","bqh","bqi","bqj","bqk","bql","bqm","bqn","bqo","bqp","bqq","bqr","bqs","bqt","bqu","bqv","bqw","bqx","bqy","bqz","bra","brb","brc","brd","brf","brg","brh","bri","brj","brk","brl","brm","brn","bro","brp","brq","brr","brs","brt","bru","brv","brw","brx","bry","brz","bsa","bsb","bsc","bse","bsf","bsg","bsh","bsi","bsj","bsk","bsl","bsm","bsn","bso","bsp","bsq","bsr","bss","bst","bsu","bsv","bsw","bsx","bsy","bta","btb","btc","btd","bte","btf","btg","bth","bti","btj","btk","btl","btm","btn","bto","btp","btq","btr","bts","btt","btu","btv","btw","btx","bty","btz","bua","bub","buc","bud","bue","buf","bug","buh","bui","buj","buk","bum","bun","buo","bup","buq","bus","but","buu","buv","buw","bux","buy","buz","bva","bvb","bvc","bvd","bve","bvf","bvg","bvh","bvi","bvj","bvk","bvl","bvm","bvn","bvo","bvp","bvq","bvr","bvt","bvu","bvv","bvw","bvx","bvy","bvz","bwa","bwb","bwc","bwd","bwe","bwf","bwg","bwh","bwi","bwj","bwk","bwl","bwm","bwn","bwo","bwp","bwq","bwr","bws","bwt","bwu","bww","bwx","bwy","bwz","bxa","bxb","bxc","bxd","bxe","bxf","bxg","bxh","bxi","bxj","bxk","bxl","bxm","bxn","bxo","bxp","bxq","bxr","bxs","bxu","bxv","bxw","bxx","bxz","bya","byb","byc","byd","bye","byf","byg","byh","byi","byj","byk","byl","bym","byn","byo","byp","byq","byr","bys","byt","byv","byw","byx","byy","byz","bza","bzb","bzc","bzd","bze","bzf","bzg","bzh","bzi","bzj","bzk","bzl","bzm","bzn","bzo","bzp","bzq","bzr","bzs","bzt","bzu","bzv","bzw","bzx","bzy","bzz","caa","cab","cac","cad","cae","caf","cag","cah","cai","caj","cak","cal","cam","can","cao","cap","caq","car","cas","cau","cav","caw","cax","cay","caz","cba","cbb","cbc","cbd","cbe","cbg","cbh","cbi","cbj","cbk","cbl","cbn","cbo","cbq","cbr","cbs","cbt","cbu","cbv","cbw","cby","cca","ccc","ccd","cce","ccg","cch","ccj","ccl","ccm","ccn","cco","ccp","ccq","ccr","ccs","cda","cdc","cdd","cde","cdf","cdg","cdh","cdi","cdj","cdm","cdn","cdo","cdr","cds","cdy","cdz","cea","ceb","ceg","cek","cel","cen","cet","cfa","cfd","cfg","cfm","cga","cgc","cgg","cgk","chb","chc","chd","chf","chg","chh","chj","chk","chl","chm","chn","cho","chp","chq","chr","cht","chw","chx","chy","chz","cia","cib","cic","cid","cie","cih","cik","cim","cin","cip","cir","ciw","ciy","cja","cje","cjh","cji","cjk","cjm","cjn","cjo","cjp","cjr","cjs","cjv","cjy","cka","ckb","ckh","ckl","ckn","cko","ckq","ckr","cks","ckt","cku","ckv","ckx","cky","ckz","cla","clc","cld","cle","clh","cli","clj","clk","cll","clm","clo","clt","clu","clw","cly","cma","cmc","cme","cmg","cmi","cmk","cml","cmm","cmn","cmo","cmr","cms","cmt","cna","cnb","cnc","cng","cnh","cni","cnk","cnl","cno","cnr","cns","cnt","cnu","cnw","cnx","coa","cob","coc","cod","coe","cof","cog","coh","coj","cok","col","com","con","coo","cop","coq","cot","cou","cov","cow","cox","coy","coz","cpa","cpb","cpc","cpe","cpf","cpg","cpi","cpn","cpo","cpp","cps","cpu","cpx","cpy","cqd","cqu","cra","crb","crc","crd","crf","crg","crh","cri","crj","crk","crl","crm","crn","cro","crp","crq","crr","crs","crt","crv","crw","crx","cry","crz","csa","csb","csc","csd","cse","csf","csg","csh","csi","csj","csk","csl","csm","csn","cso","csq","csr","css","cst","csu","csv","csw","csy","csz","cta","ctc","ctd","cte","ctg","cth","ctl","ctm","ctn","cto","ctp","cts","ctt","ctu","ctz","cua","cub","cuc","cug","cuh","cui","cuj","cuk","cul","cum","cuo","cup","cuq","cur","cus","cut","cuu","cuv","cuw","cux","cuy","cvg","cvn","cwa","cwb","cwd","cwe","cwg","cwt","cya","cyb","cyo","czh","czk","czn","czo","czt","daa","dac","dad","dae","daf","dag","dah","dai","daj","dak","dal","dam","dao","dap","daq","dar","das","dau","dav","daw","dax","day","daz","dba","dbb","dbd","dbe","dbf","dbg","dbi","dbj","dbl","dbm","dbn","dbo","dbp","dbq","dbr","dbt","dbu","dbv","dbw","dby","dcc","dcr","dda","ddd","dde","ddg","ddi","ddj","ddn","ddo","ddr","dds","ddw","dec","ded","dee","def","deg","deh","dei","dek","del","dem","den","dep","deq","der","des","dev","dez","dga","dgb","dgc","dgd","dge","dgg","dgh","dgi","dgk","dgl","dgn","dgo","dgr","dgs","dgt","dgu","dgw","dgx","dgz","dha","dhd","dhg","dhi","dhl","dhm","dhn","dho","dhr","dhs","dhu","dhv","dhw","dhx","dia","dib","dic","did","dif","dig","dih","dii","dij","dik","dil","dim","din","dio","dip","diq","dir","dis","dit","diu","diw","dix","diy","diz","dja","djb","djc","djd","dje","djf","dji","djj","djk","djl","djm","djn","djo","djr","dju","djw","dka","dkk","dkl","dkr","dks","dkx","dlg","dlk","dlm","dln","dma","dmb","dmc","dmd","dme","dmg","dmk","dml","dmm","dmn","dmo","dmr","dms","dmu","dmv","dmw","dmx","dmy","dna","dnd","dne","dng","dni","dnj","dnk","dnn","dnr","dnt","dnu","dnv","dnw","dny","doa","dob","doc","doe","dof","doh","doi","dok","dol","don","doo","dop","doq","dor","dos","dot","dov","dow","dox","doy","doz","dpp","dra","drb","drc","drd","dre","drg","drh","dri","drl","drn","dro","drq","drr","drs","drt","dru","drw","dry","dsb","dse","dsh","dsi","dsl","dsn","dso","dsq","dta","dtb","dtd","dth","dti","dtk","dtm","dtn","dto","dtp","dtr","dts","dtt","dtu","dty","dua","dub","duc","dud","due","duf","dug","duh","dui","duj","duk","dul","dum","dun","duo","dup","duq","dur","dus","duu","duv","duw","dux","duy","duz","dva","dwa","dwl","dwr","dws","dwu","dww","dwy","dya","dyb","dyd","dyg","dyi","dym","dyn","dyo","dyu","dyy","dza","dzd","dze","dzg","dzl","dzn","eaa","ebg","ebk","ebo","ebr","ebu","ecr","ecs","ecy","eee","efa","efe","efi","ega","egl","ego","egx","egy","ehu","eip","eit","eiv","eja","eka","ekc","eke","ekg","eki","ekk","ekl","ekm","eko","ekp","ekr","eky","ele","elh","eli","elk","elm","elo","elp","elu","elx","ema","emb","eme","emg","emi","emk","emm","emn","emo","emp","ems","emu","emw","emx","emy","ena","enb","enc","end","enf","enh","enl","enm","enn","eno","enq","enr","enu","env","enw","enx","eot","epi","era","erg","erh","eri","erk","ero","err","ers","ert","erw","ese","esg","esh","esi","esk","esl","esm","esn","eso","esq","ess","esu","esx","esy","etb","etc","eth","etn","eto","etr","ets","ett","etu","etx","etz","euq","eve","evh","evn","ewo","ext","eya","eyo","eza","eze","faa","fab","fad","faf","fag","fah","fai","faj","fak","fal","fam","fan","fap","far","fat","fau","fax","fay","faz","fbl","fcs","fer","ffi","ffm","fgr","fia","fie","fil","fip","fir","fit","fiu","fiw","fkk","fkv","fla","flh","fli","fll","fln","flr","fly","fmp","fmu","fnb","fng","fni","fod","foi","fom","fon","for","fos","fox","fpe","fqs","frc","frd","frk","frm","fro","frp","frq","frr","frs","frt","fse","fsl","fss","fub","fuc","fud","fue","fuf","fuh","fui","fuj","fum","fun","fuq","fur","fut","fuu","fuv","fuy","fvr","fwa","fwe","gaa","gab","gac","gad","gae","gaf","gag","gah","gai","gaj","gak","gal","gam","gan","gao","gap","gaq","gar","gas","gat","gau","gav","gaw","gax","gay","gaz","gba","gbb","gbc","gbd","gbe","gbf","gbg","gbh","gbi","gbj","gbk","gbl","gbm","gbn","gbo","gbp","gbq","gbr","gbs","gbu","gbv","gbw","gbx","gby","gbz","gcc","gcd","gce","gcf","gcl","gcn","gcr","gct","gda","gdb","gdc","gdd","gde","gdf","gdg","gdh","gdi","gdj","gdk","gdl","gdm","gdn","gdo","gdq","gdr","gds","gdt","gdu","gdx","gea","geb","gec","ged","geg","geh","gei","gej","gek","gel","gem","geq","ges","gev","gew","gex","gey","gez","gfk","gft","gfx","gga","ggb","ggd","gge","ggg","ggk","ggl","ggn","ggo","ggr","ggt","ggu","ggw","gha","ghc","ghe","ghh","ghk","ghl","ghn","gho","ghr","ghs","ght","gia","gib","gic","gid","gie","gig","gih","gil","gim","gin","gio","gip","giq","gir","gis","git","giu","giw","gix","giy","giz","gji","gjk","gjm","gjn","gjr","gju","gka","gkd","gke","gkn","gko","gkp","gku","glc","gld","glh","gli","glj","glk","gll","glo","glr","glu","glw","gly","gma","gmb","gmd","gme","gmg","gmh","gml","gmm","gmn","gmq","gmu","gmv","gmw","gmx","gmy","gmz","gna","gnb","gnc","gnd","gne","gng","gnh","gni","gnj","gnk","gnl","gnm","gnn","gno","gnq","gnr","gnt","gnu","gnw","gnz","goa","gob","goc","god","goe","gof","gog","goh","goi","goj","gok","gol","gom","gon","goo","gop","goq","gor","gos","got","gou","gow","gox","goy","goz","gpa","gpe","gpn","gqa","gqi","gqn","gqr","gqu","gra","grb","grc","grd","grg","grh","gri","grj","grk","grm","gro","grq","grr","grs","grt","gru","grv","grw","grx","gry","grz","gse","gsg","gsl","gsm","gsn","gso","gsp","gss","gsw","gta","gti","gtu","gua","gub","guc","gud","gue","guf","gug","guh","gui","guk","gul","gum","gun","guo","gup","guq","gur","gus","gut","guu","guv","guw","gux","guz","gva","gvc","gve","gvf","gvj","gvl","gvm","gvn","gvo","gvp","gvr","gvs","gvy","gwa","gwb","gwc","gwd","gwe","gwf","gwg","gwi","gwj","gwm","gwn","gwr","gwt","gwu","gww","gwx","gxx","gya","gyb","gyd","gye","gyf","gyg","gyi","gyl","gym","gyn","gyo","gyr","gyy","gza","gzi","gzn","haa","hab","hac","had","hae","haf","hag","hah","hai","haj","hak","hal","ham","han","hao","hap","haq","har","has","hav","haw","hax","hay","haz","hba","hbb","hbn","hbo","hbu","hca","hch","hdn","hds","hdy","hea","hed","heg","heh","hei","hem","hgm","hgw","hhi","hhr","hhy","hia","hib","hid","hif","hig","hih","hii","hij","hik","hil","him","hio","hir","hit","hiw","hix","hji","hka","hke","hkk","hkn","hks","hla","hlb","hld","hle","hlt","hlu","hma","hmb","hmc","hmd","hme","hmf","hmg","hmh","hmi","hmj","hmk","hml","hmm","hmn","hmp","hmq","hmr","hms","hmt","hmu","hmv","hmw","hmx","hmy","hmz","hna","hnd","hne","hnh","hni","hnj","hnn","hno","hns","hnu","hoa","hob","hoc","hod","hoe","hoh","hoi","hoj","hok","hol","hom","hoo","hop","hor","hos","hot","hov","how","hoy","hoz","hpo","hps","hra","hrc","hre","hrk","hrm","hro","hrp","hrr","hrt","hru","hrw","hrx","hrz","hsb","hsh","hsl","hsn","hss","hti","hto","hts","htu","htx","hub","huc","hud","hue","huf","hug","huh","hui","huj","huk","hul","hum","huo","hup","huq","hur","hus","hut","huu","huv","huw","hux","huy","huz","hvc","hve","hvk","hvn","hvv","hwa","hwc","hwo","hya","hyw","hyx","iai","ian","iap","iar","iba","ibb","ibd","ibe","ibg","ibh","ibi","ibl","ibm","ibn","ibr","ibu","iby","ica","ich","icl","icr","ida","idb","idc","idd","ide","idi","idr","ids","idt","idu","ifa","ifb","ife","iff","ifk","ifm","ifu","ify","igb","ige","igg","igl","igm","ign","igo","igs","igw","ihb","ihi","ihp","ihw","iin","iir","ijc","ije","ijj","ijn","ijo","ijs","ike","iki","ikk","ikl","iko","ikp","ikr","iks","ikt","ikv","ikw","ikx","ikz","ila","ilb","ilg","ili","ilk","ill","ilm","ilo","ilp","ils","ilu","ilv","ilw","ima","ime","imi","iml","imn","imo","imr","ims","imy","inb","inc","ine","ing","inh","inj","inl","inm","inn","ino","inp","ins","int","inz","ior","iou","iow","ipi","ipo","iqu","iqw","ira","ire","irh","iri","irk","irn","iro","irr","iru","irx","iry","isa","isc","isd","ise","isg","ish","isi","isk","ism","isn","iso","isr","ist","isu","itb","itc","itd","ite","iti","itk","itl","itm","ito","itr","its","itt","itv","itw","itx","ity","itz","ium","ivb","ivv","iwk","iwm","iwo","iws","ixc","ixl","iya","iyo","iyx","izh","izi","izr","izz","jaa","jab","jac","jad","jae","jaf","jah","jaj","jak","jal","jam","jan","jao","jaq","jar","jas","jat","jau","jax","jay","jaz","jbe","jbi","jbj","jbk","jbn","jbo","jbr","jbt","jbu","jbw","jcs","jct","jda","jdg","jdt","jeb","jee","jeg","jeh","jei","jek","jel","jen","jer","jet","jeu","jgb","jge","jgk","jgo","jhi","jhs","jia","jib","jic","jid","jie","jig","jih","jii","jil","jim","jio","jiq","jit","jiu","jiv","jiy","jje","jjr","jka","jkm","jko","jkp","jkr","jku","jle","jls","jma","jmb","jmc","jmd","jmi","jml","jmn","jmr","jms","jmw","jmx","jna","jnd","jng","jni","jnj","jnl","jns","job","jod","jog","jor","jos","jow","jpa","jpr","jpx","jqr","jra","jrb","jrr","jrt","jru","jsl","jua","jub","juc","jud","juh","jui","juk","jul","jum","jun","juo","jup","jur","jus","jut","juu","juw","juy","jvd","jvn","jwi","jya","jye","jyy","kaa","kab","kac","kad","kae","kaf","kag","kah","kai","kaj","kak","kam","kao","kap","kaq","kar","kav","kaw","kax","kay","kba","kbb","kbc","kbd","kbe","kbf","kbg","kbh","kbi","kbj","kbk","kbl","kbm","kbn","kbo","kbp","kbq","kbr","kbs","kbt","kbu","kbv","kbw","kbx","kby","kbz","kca","kcb","kcc","kcd","kce","kcf","kcg","kch","kci","kcj","kck","kcl","kcm","kcn","kco","kcp","kcq","kcr","kcs","kct","kcu","kcv","kcw","kcx","kcy","kcz","kda","kdc","kdd","kde","kdf","kdg","kdh","kdi","kdj","kdk","kdl","kdm","kdn","kdo","kdp","kdq","kdr","kdt","kdu","kdv","kdw","kdx","kdy","kdz","kea","keb","kec","ked","kee","kef","keg","keh","kei","kej","kek","kel","kem","ken","keo","kep","keq","ker","kes","ket","keu","kev","kew","kex","key","kez","kfa","kfb","kfc","kfd","kfe","kff","kfg","kfh","kfi","kfj","kfk","kfl","kfm","kfn","kfo","kfp","kfq","kfr","kfs","kft","kfu","kfv","kfw","kfx","kfy","kfz","kga","kgb","kgc","kgd","kge","kgf","kgg","kgh","kgi","kgj","kgk","kgl","kgm","kgn","kgo","kgp","kgq","kgr","kgs","kgt","kgu","kgv","kgw","kgx","kgy","kha","khb","khc","khd","khe","khf","khg","khh","khi","khj","khk","khl","khn","kho","khp","khq","khr","khs","kht","khu","khv","khw","khx","khy","khz","kia","kib","kic","kid","kie","kif","kig","kih","kii","kij","kil","kim","kio","kip","kiq","kis","kit","kiu","kiv","kiw","kix","kiy","kiz","kja","kjb","kjc","kjd","kje","kjf","kjg","kjh","kji","kjj","kjk","kjl","kjm","kjn","kjo","kjp","kjq","kjr","kjs","kjt","kju","kjv","kjx","kjy","kjz","kka","kkb","kkc","kkd","kke","kkf","kkg","kkh","kki","kkj","kkk","kkl","kkm","kkn","kko","kkp","kkq","kkr","kks","kkt","kku","kkv","kkw","kkx","kky","kkz","kla","klb","klc","kld","kle","klf","klg","klh","kli","klj","klk","kll","klm","kln","klo","klp","klq","klr","kls","klt","klu","klv","klw","klx","kly","klz","kma","kmb","kmc","kmd","kme","kmf","kmg","kmh","kmi","kmj","kmk","kml","kmm","kmn","kmo","kmp","kmq","kmr","kms","kmt","kmu","kmv","kmw","kmx","kmy","kmz","kna","knb","knc","knd","kne","knf","kng","kni","knj","knk","knl","knm","knn","kno","knp","knq","knr","kns","knt","knu","knv","knw","knx","kny","knz","koa","koc","kod","koe","kof","kog","koh","koi","koj","kok","kol","koo","kop","koq","kos","kot","kou","kov","kow","kox","koy","koz","kpa","kpb","kpc","kpd","kpe","kpf","kpg","kph","kpi","kpj","kpk","kpl","kpm","kpn","kpo","kpp","kpq","kpr","kps","kpt","kpu","kpv","kpw","kpx","kpy","kpz","kqa","kqb","kqc","kqd","kqe","kqf","kqg","kqh","kqi","kqj","kqk","kql","kqm","kqn","kqo","kqp","kqq","kqr","kqs","kqt","kqu","kqv","kqw","kqx","kqy","kqz","kra","krb","krc","krd","kre","krf","krh","kri","krj","krk","krl","krm","krn","kro","krp","krr","krs","krt","kru","krv","krw","krx","kry","krz","ksa","ksb","ksc","ksd","kse","ksf","ksg","ksh","ksi","ksj","ksk","ksl","ksm","ksn","kso","ksp","ksq","ksr","kss","kst","ksu","ksv","ksw","ksx","ksy","ksz","kta","ktb","ktc","ktd","kte","ktf","ktg","kth","kti","ktj","ktk","ktl","ktm","ktn","kto","ktp","ktq","ktr","kts","ktt","ktu","ktv","ktw","ktx","kty","ktz","kub","kuc","kud","kue","kuf","kug","kuh","kui","kuj","kuk","kul","kum","kun","kuo","kup","kuq","kus","kut","kuu","kuv","kuw","kux","kuy","kuz","kva","kvb","kvc","kvd","kve","kvf","kvg","kvh","kvi","kvj","kvk","kvl","kvm","kvn","kvo","kvp","kvq","kvr","kvs","kvt","kvu","kvv","kvw","kvx","kvy","kvz","kwa","kwb","kwc","kwd","kwe","kwf","kwg","kwh","kwi","kwj","kwk","kwl","kwm","kwn","kwo","kwp","kwq","kwr","kws","kwt","kwu","kwv","kww","kwx","kwy","kwz","kxa","kxb","kxc","kxd","kxe","kxf","kxh","kxi","kxj","kxk","kxl","kxm","kxn","kxo","kxp","kxq","kxr","kxs","kxt","kxu","kxv","kxw","kxx","kxy","kxz","kya","kyb","kyc","kyd","kye","kyf","kyg","kyh","kyi","kyj","kyk","kyl","kym","kyn","kyo","kyp","kyq","kyr","kys","kyt","kyu","kyv","kyw","kyx","kyy","kyz","kza","kzb","kzc","kzd","kze","kzf","kzg","kzh","kzi","kzj","kzk","kzl","kzm","kzn","kzo","kzp","kzq","kzr","kzs","kzt","kzu","kzv","kzw","kzx","kzy","kzz","laa","lab","lac","lad","lae","laf","lag","lah","lai","laj","lak","lal","lam","lan","lap","laq","lar","las","lau","law","lax","lay","laz","lba","lbb","lbc","lbe","lbf","lbg","lbi","lbj","lbk","lbl","lbm","lbn","lbo","lbq","lbr","lbs","lbt","lbu","lbv","lbw","lbx","lby","lbz","lcc","lcd","lce","lcf","lch","lcl","lcm","lcp","lcq","lcs","lda","ldb","ldd","ldg","ldh","ldi","ldj","ldk","ldl","ldm","ldn","ldo","ldp","ldq","lea","leb","lec","led","lee","lef","leg","leh","lei","lej","lek","lel","lem","len","leo","lep","leq","ler","les","let","leu","lev","lew","lex","ley","lez","lfa","lfn","lga","lgb","lgg","lgh","lgi","lgk","lgl","lgm","lgn","lgq","lgr","lgt","lgu","lgz","lha","lhh","lhi","lhl","lhm","lhn","lhp","lhs","lht","lhu","lia","lib","lic","lid","lie","lif","lig","lih","lii","lij","lik","lil","lio","lip","liq","lir","lis","liu","liv","liw","lix","liy","liz","lja","lje","lji","ljl","ljp","ljw","ljx","lka","lkb","lkc","lkd","lke","lkh","lki","lkj","lkl","lkm","lkn","lko","lkr","lks","lkt","lku","lky","lla","llb","llc","lld","lle","llf","llg","llh","lli","llj","llk","lll","llm","lln","llo","llp","llq","lls","llu","llx","lma","lmb","lmc","lmd","lme","lmf","lmg","lmh","lmi","lmj","lmk","lml","lmm","lmn","lmo","lmp","lmq","lmr","lmu","lmv","lmw","lmx","lmy","lmz","lna","lnb","lnd","lng","lnh","lni","lnj","lnl","lnm","lnn","lno","lns","lnu","lnw","lnz","loa","lob","loc","loe","lof","log","loh","loi","loj","lok","lol","lom","lon","loo","lop","loq","lor","los","lot","lou","lov","low","lox","loy","loz","lpa","lpe","lpn","lpo","lpx","lra","lrc","lre","lrg","lri","lrk","lrl","lrm","lrn","lro","lrr","lrt","lrv","lrz","lsa","lsd","lse","lsg","lsh","lsi","lsl","lsm","lso","lsp","lsr","lss","lst","lsy","ltc","ltg","lth","lti","ltn","lto","lts","ltu","lua","luc","lud","lue","luf","lui","luj","luk","lul","lum","lun","luo","lup","luq","lur","lus","lut","luu","luv","luw","luy","luz","lva","lvk","lvs","lvu","lwa","lwe","lwg","lwh","lwl","lwm","lwo","lws","lwt","lwu","lww","lya","lyg","lyn","lzh","lzl","lzn","lzz","maa","mab","mad","mae","maf","mag","mai","maj","mak","mam","man","map","maq","mas","mat","mau","mav","maw","max","maz","mba","mbb","mbc","mbd","mbe","mbf","mbh","mbi","mbj","mbk","mbl","mbm","mbn","mbo","mbp","mbq","mbr","mbs","mbt","mbu","mbv","mbw","mbx","mby","mbz","mca","mcb","mcc","mcd","mce","mcf","mcg","mch","mci","mcj","mck","mcl","mcm","mcn","mco","mcp","mcq","mcr","mcs","mct","mcu","mcv","mcw","mcx","mcy","mcz","mda","mdb","mdc","mdd","mde","mdf","mdg","mdh","mdi","mdj","mdk","mdl","mdm","mdn","mdp","mdq","mdr","mds","mdt","mdu","mdv","mdw","mdx","mdy","mdz","mea","meb","mec","med","mee","mef","meg","meh","mei","mej","mek","mel","mem","men","meo","mep","meq","mer","mes","met","meu","mev","mew","mey","mez","mfa","mfb","mfc","mfd","mfe","mff","mfg","mfh","mfi","mfj","mfk","mfl","mfm","mfn","mfo","mfp","mfq","mfr","mfs","mft","mfu","mfv","mfw","mfx","mfy","mfz","mga","mgb","mgc","mgd","mge","mgf","mgg","mgh","mgi","mgj","mgk","mgl","mgm","mgn","mgo","mgp","mgq","mgr","mgs","mgt","mgu","mgv","mgw","mgx","mgy","mgz","mha","mhb","mhc","mhd","mhe","mhf","mhg","mhh","mhi","mhj","mhk","mhl","mhm","mhn","mho","mhp","mhq","mhr","mhs","mht","mhu","mhw","mhx","mhy","mhz","mia","mib","mic","mid","mie","mif","mig","mih","mii","mij","mik","mil","mim","min","mio","mip","miq","mir","mis","mit","miu","miw","mix","miy","miz","mja","mjb","mjc","mjd","mje","mjg","mjh","mji","mjj","mjk","mjl","mjm","mjn","mjo","mjp","mjq","mjr","mjs","mjt","mju","mjv","mjw","mjx","mjy","mjz","mka","mkb","mkc","mke","mkf","mkg","mkh","mki","mkj","mkk","mkl","mkm","mkn","mko","mkp","mkq","mkr","mks","mkt","mku","mkv","mkw","mkx","mky","mkz","mla","mlb","mlc","mld","mle","mlf","mlh","mli","mlj","mlk","mll","mlm","mln","mlo","mlp","mlq","mlr","mls","mlu","mlv","mlw","mlx","mlz","mma","mmb","mmc","mmd","mme","mmf","mmg","mmh","mmi","mmj","mmk","mml","mmm","mmn","mmo","mmp","mmq","mmr","mmt","mmu","mmv","mmw","mmx","mmy","mmz","mna","mnb","mnc","mnd","mne","mnf","mng","mnh","mni","mnj","mnk","mnl","mnm","mnn","mno","mnp","mnq","mnr","mns","mnt","mnu","mnv","mnw","mnx","mny","mnz","moa","moc","mod","moe","mof","mog","moh","moi","moj","mok","mom","moo","mop","moq","mor","mos","mot","mou","mov","mow","mox","moy","moz","mpa","mpb","mpc","mpd","mpe","mpg","mph","mpi","mpj","mpk","mpl","mpm","mpn","mpo","mpp","mpq","mpr","mps","mpt","mpu","mpv","mpw","mpx","mpy","mpz","mqa","mqb","mqc","mqe","mqf","mqg","mqh","mqi","mqj","mqk","mql","mqm","mqn","mqo","mqp","mqq","mqr","mqs","mqt","mqu","mqv","mqw","mqx","mqy","mqz","mra","mrb","mrc","mrd","mre","mrf","mrg","mrh","mrj","mrk","mrl","mrm","mrn","mro","mrp","mrq","mrr","mrs","mrt","mru","mrv","mrw","mrx","mry","mrz","msb","msc","msd","mse","msf","msg","msh","msi","msj","msk","msl","msm","msn","mso","msp","msq","msr","mss","mst","msu","msv","msw","msx","msy","msz","mta","mtb","mtc","mtd","mte","mtf","mtg","mth","mti","mtj","mtk","mtl","mtm","mtn","mto","mtp","mtq","mtr","mts","mtt","mtu","mtv","mtw","mtx","mty","mua","mub","muc","mud","mue","mug","muh","mui","muj","muk","mul","mum","mun","muo","mup","muq","mur","mus","mut","muu","muv","mux","muy","muz","mva","mvb","mvd","mve","mvf","mvg","mvh","mvi","mvk","mvl","mvm","mvn","mvo","mvp","mvq","mvr","mvs","mvt","mvu","mvv","mvw","mvx","mvy","mvz","mwa","mwb","mwc","mwd","mwe","mwf","mwg","mwh","mwi","mwj","mwk","mwl","mwm","mwn","mwo","mwp","mwq","mwr","mws","mwt","mwu","mwv","mww","mwx","mwy","mwz","mxa","mxb","mxc","mxd","mxe","mxf","mxg","mxh","mxi","mxj","mxk","mxl","mxm","mxn","mxo","mxp","mxq","mxr","mxs","mxt","mxu","mxv","mxw","mxx","mxy","mxz","myb","myc","myd","mye","myf","myg","myh","myi","myj","myk","myl","mym","myn","myo","myp","myq","myr","mys","myt","myu","myv","myw","myx","myy","myz","mza","mzb","mzc","mzd","mze","mzg","mzh","mzi","mzj","mzk","mzl","mzm","mzn","mzo","mzp","mzq","mzr","mzs","mzt","mzu","mzv","mzw","mzx","mzy","mzz","naa","nab","nac","nad","nae","naf","nag","nah","nai","naj","nak","nal","nam","nan","nao","nap","naq","nar","nas","nat","naw","nax","nay","naz","nba","nbb","nbc","nbd","nbe","nbf","nbg","nbh","nbi","nbj","nbk","nbm","nbn","nbo","nbp","nbq","nbr","nbs","nbt","nbu","nbv","nbw","nbx","nby","nca","ncb","ncc","ncd","nce","ncf","ncg","nch","nci","ncj","nck","ncl","ncm","ncn","nco","ncp","ncq","ncr","ncs","nct","ncu","ncx","ncz","nda","ndb","ndc","ndd","ndf","ndg","ndh","ndi","ndj","ndk","ndl","ndm","ndn","ndp","ndq","ndr","nds","ndt","ndu","ndv","ndw","ndx","ndy","ndz","nea","neb","nec","ned","nee","nef","neg","neh","nei","nej","nek","nem","nen","neo","neq","ner","nes","net","neu","nev","new","nex","ney","nez","nfa","nfd","nfl","nfr","nfu","nga","ngb","ngc","ngd","nge","ngf","ngg","ngh","ngi","ngj","ngk","ngl","ngm","ngn","ngo","ngp","ngq","ngr","ngs","ngt","ngu","ngv","ngw","ngx","ngy","ngz","nha","nhb","nhc","nhd","nhe","nhf","nhg","nhh","nhi","nhk","nhm","nhn","nho","nhp","nhq","nhr","nht","nhu","nhv","nhw","nhx","nhy","nhz","nia","nib","nic","nid","nie","nif","nig","nih","nii","nij","nik","nil","nim","nin","nio","niq","nir","nis","nit","niu","niv","niw","nix","niy","niz","nja","njb","njd","njh","nji","njj","njl","njm","njn","njo","njr","njs","njt","nju","njx","njy","njz","nka","nkb","nkc","nkd","nke","nkf","nkg","nkh","nki","nkj","nkk","nkm","nkn","nko","nkp","nkq","nkr","nks","nkt","nku","nkv","nkw","nkx","nkz","nla","nlc","nle","nlg","nli","nlj","nlk","nll","nlm","nln","nlo","nlq","nlr","nlu","nlv","nlw","nlx","nly","nlz","nma","nmb","nmc","nmd","nme","nmf","nmg","nmh","nmi","nmj","nmk","nml","nmm","nmn","nmo","nmp","nmq","nmr","nms","nmt","nmu","nmv","nmw","nmx","nmy","nmz","nna","nnb","nnc","nnd","nne","nnf","nng","nnh","nni","nnj","nnk","nnl","nnm","nnn","nnp","nnq","nnr","nns","nnt","nnu","nnv","nnw","nnx","nny","nnz","noa","noc","nod","noe","nof","nog","noh","noi","noj","nok","nol","nom","non","noo","nop","noq","nos","not","nou","nov","now","noy","noz","npa","npb","npg","nph","npi","npl","npn","npo","nps","npu","npx","npy","nqg","nqk","nql","nqm","nqn","nqo","nqq","nqy","nra","nrb","nrc","nre","nrf","nrg","nri","nrk","nrl","nrm","nrn","nrp","nrr","nrt","nru","nrx","nrz","nsa","nsc","nsd","nse","nsf","nsg","nsh","nsi","nsk","nsl","nsm","nsn","nso","nsp","nsq","nsr","nss","nst","nsu","nsv","nsw","nsx","nsy","nsz","ntd","nte","ntg","nti","ntj","ntk","ntm","nto","ntp","ntr","nts","ntu","ntw","ntx","nty","ntz","nua","nub","nuc","nud","nue","nuf","nug","nuh","nui","nuj","nuk","nul","num","nun","nuo","nup","nuq","nur","nus","nut","nuu","nuv","nuw","nux","nuy","nuz","nvh","nvm","nvo","nwa","nwb","nwc","nwe","nwg","nwi","nwm","nwo","nwr","nwx","nwy","nxa","nxd","nxe","nxg","nxi","nxk","nxl","nxm","nxn","nxo","nxq","nxr","nxu","nxx","nyb","nyc","nyd","nye","nyf","nyg","nyh","nyi","nyj","nyk","nyl","nym","nyn","nyo","nyp","nyq","nyr","nys","nyt","nyu","nyv","nyw","nyx","nyy","nza","nzb","nzd","nzi","nzk","nzm","nzs","nzu","nzy","nzz","oaa","oac","oar","oav","obi","obk","obl","obm","obo","obr","obt","obu","oca","och","oco","ocu","oda","odk","odt","odu","ofo","ofs","ofu","ogb","ogc","oge","ogg","ogo","ogu","oht","ohu","oia","oin","ojb","ojc","ojg","ojp","ojs","ojv","ojw","oka","okb","okd","oke","okg","okh","oki","okj","okk","okl","okm","okn","oko","okr","oks","oku","okv","okx","ola","old","ole","olk","olm","olo","olr","olt","olu","oma","omb","omc","ome","omg","omi","omk","oml","omn","omo","omp","omq","omr","omt","omu","omv","omw","omx","ona","onb","one","ong","oni","onj","onk","onn","ono","onp","onr","ons","ont","onu","onw","onx","ood","oog","oon","oor","oos","opa","opk","opm","opo","opt","opy","ora","orc","ore","org","orh","orn","oro","orr","ors","ort","oru","orv","orw","orx","ory","orz","osa","osc","osi","oso","osp","ost","osu","osx","ota","otb","otd","ote","oti","otk","otl","otm","otn","oto","otq","otr","ots","ott","otu","otw","otx","oty","otz","oua","oub","oue","oui","oum","oun","ovd","owi","owl","oyb","oyd","oym","oyy","ozm","paa","pab","pac","pad","pae","paf","pag","pah","pai","pak","pal","pam","pao","pap","paq","par","pas","pat","pau","pav","paw","pax","pay","paz","pbb","pbc","pbe","pbf","pbg","pbh","pbi","pbl","pbm","pbn","pbo","pbp","pbr","pbs","pbt","pbu","pbv","pby","pbz","pca","pcb","pcc","pcd","pce","pcf","pcg","pch","pci","pcj","pck","pcl","pcm","pcn","pcp","pcr","pcw","pda","pdc","pdi","pdn","pdo","pdt","pdu","pea","peb","ped","pee","pef","peg","peh","pei","pej","pek","pel","pem","peo","pep","peq","pes","pev","pex","pey","pez","pfa","pfe","pfl","pga","pgd","pgg","pgi","pgk","pgl","pgn","pgs","pgu","pgy","pgz","pha","phd","phg","phh","phi","phk","phl","phm","phn","pho","phq","phr","pht","phu","phv","phw","pia","pib","pic","pid","pie","pif","pig","pih","pii","pij","pil","pim","pin","pio","pip","pir","pis","pit","piu","piv","piw","pix","piy","piz","pjt","pka","pkb","pkc","pkg","pkh","pkn","pko","pkp","pkr","pks","pkt","pku","pla","plb","plc","pld","ple","plf","plg","plh","plj","plk","pll","pln","plo","plp","plq","plr","pls","plt","plu","plv","plw","ply","plz","pma","pmb","pmc","pmd","pme","pmf","pmh","pmi","pmj","pmk","pml","pmm","pmn","pmo","pmq","pmr","pms","pmt","pmu","pmw","pmx","pmy","pmz","pna","pnb","pnc","pne","png","pnh","pni","pnj","pnk","pnl","pnm","pnn","pno","pnp","pnq","pnr","pns","pnt","pnu","pnv","pnw","pnx","pny","pnz","poc","pod","poe","pof","pog","poh","poi","pok","pom","pon","poo","pop","poq","pos","pot","pov","pow","pox","poy","poz","ppa","ppe","ppi","ppk","ppl","ppm","ppn","ppo","ppp","ppq","ppr","pps","ppt","ppu","pqa","pqe","pqm","pqw","pra","prb","prc","prd","pre","prf","prg","prh","pri","prk","prl","prm","prn","pro","prp","prq","prr","prs","prt","pru","prw","prx","pry","prz","psa","psc","psd","pse","psg","psh","psi","psl","psm","psn","pso","psp","psq","psr","pss","pst","psu","psw","psy","pta","pth","pti","ptn","pto","ptp","ptq","ptr","ptt","ptu","ptv","ptw","pty","pua","pub","puc","pud","pue","puf","pug","pui","puj","puk","pum","puo","pup","puq","pur","put","puu","puw","pux","puy","puz","pwa","pwb","pwg","pwi","pwm","pwn","pwo","pwr","pww","pxm","pye","pym","pyn","pys","pyu","pyx","pyy","pzn","qaa..qtz","qua","qub","quc","qud","quf","qug","quh","qui","quk","qul","qum","qun","qup","quq","qur","qus","quv","quw","qux","quy","quz","qva","qvc","qve","qvh","qvi","qvj","qvl","qvm","qvn","qvo","qvp","qvs","qvw","qvy","qvz","qwa","qwc","qwe","qwh","qwm","qws","qwt","qxa","qxc","qxh","qxl","qxn","qxo","qxp","qxq","qxr","qxs","qxt","qxu","qxw","qya","qyp","raa","rab","rac","rad","raf","rag","rah","rai","raj","rak","ral","ram","ran","rao","rap","raq","rar","ras","rat","rau","rav","raw","rax","ray","raz","rbb","rbk","rbl","rbp","rcf","rdb","rea","reb","ree","reg","rei","rej","rel","rem","ren","rer","res","ret","rey","rga","rge","rgk","rgn","rgr","rgs","rgu","rhg","rhp","ria","rie","rif","ril","rim","rin","rir","rit","riu","rjg","rji","rjs","rka","rkb","rkh","rki","rkm","rkt","rkw","rma","rmb","rmc","rmd","rme","rmf","rmg","rmh","rmi","rmk","rml","rmm","rmn","rmo","rmp","rmq","rmr","rms","rmt","rmu","rmv","rmw","rmx","rmy","rmz","rna","rnd","rng","rnl","rnn","rnp","rnr","rnw","roa","rob","roc","rod","roe","rof","rog","rol","rom","roo","rop","ror","rou","row","rpn","rpt","rri","rro","rrt","rsb","rsi","rsl","rsm","rtc","rth","rtm","rts","rtw","rub","ruc","rue","ruf","rug","ruh","rui","ruk","ruo","rup","ruq","rut","ruu","ruy","ruz","rwa","rwk","rwm","rwo","rwr","rxd","rxw","ryn","rys","ryu","rzh","saa","sab","sac","sad","sae","saf","sah","sai","saj","sak","sal","sam","sao","sap","saq","sar","sas","sat","sau","sav","saw","sax","say","saz","sba","sbb","sbc","sbd","sbe","sbf","sbg","sbh","sbi","sbj","sbk","sbl","sbm","sbn","sbo","sbp","sbq","sbr","sbs","sbt","sbu","sbv","sbw","sbx","sby","sbz","sca","scb","sce","scf","scg","sch","sci","sck","scl","scn","sco","scp","scq","scs","sct","scu","scv","scw","scx","sda","sdb","sdc","sde","sdf","sdg","sdh","sdj","sdk","sdl","sdm","sdn","sdo","sdp","sdr","sds","sdt","sdu","sdv","sdx","sdz","sea","seb","sec","sed","see","sef","seg","seh","sei","sej","sek","sel","sem","sen","seo","sep","seq","ser","ses","set","seu","sev","sew","sey","sez","sfb","sfe","sfm","sfs","sfw","sga","sgb","sgc","sgd","sge","sgg","sgh","sgi","sgj","sgk","sgl","sgm","sgn","sgo","sgp","sgr","sgs","sgt","sgu","sgw","sgx","sgy","sgz","sha","shb","shc","shd","she","shg","shh","shi","shj","shk","shl","shm","shn","sho","shp","shq","shr","shs","sht","shu","shv","shw","shx","shy","shz","sia","sib","sid","sie","sif","sig","sih","sii","sij","sik","sil","sim","sio","sip","siq","sir","sis","sit","siu","siv","siw","six","siy","siz","sja","sjb","sjd","sje","sjg","sjk","sjl","sjm","sjn","sjo","sjp","sjr","sjs","sjt","sju","sjw","ska","skb","skc","skd","ske","skf","skg","skh","ski","skj","skk","skm","skn","sko","skp","skq","skr","sks","skt","sku","skv","skw","skx","sky","skz","sla","slc","sld","sle","slf","slg","slh","sli","slj","sll","slm","sln","slp","slq","slr","sls","slt","slu","slw","slx","sly","slz","sma","smb","smc","smd","smf","smg","smh","smi","smj","smk","sml","smm","smn","smp","smq","smr","sms","smt","smu","smv","smw","smx","smy","smz","snb","snc","sne","snf","sng","snh","sni","snj","snk","snl","snm","snn","sno","snp","snq","snr","sns","snu","snv","snw","snx","sny","snz","soa","sob","soc","sod","soe","sog","soh","soi","soj","sok","sol","son","soo","sop","soq","sor","sos","sou","sov","sow","sox","soy","soz","spb","spc","spd","spe","spg","spi","spk","spl","spm","spn","spo","spp","spq","spr","sps","spt","spu","spv","spx","spy","sqa","sqh","sqj","sqk","sqm","sqn","sqo","sqq","sqr","sqs","sqt","squ","sra","srb","src","sre","srf","srg","srh","sri","srk","srl","srm","srn","sro","srq","srr","srs","srt","sru","srv","srw","srx","sry","srz","ssa","ssb","ssc","ssd","sse","ssf","ssg","ssh","ssi","ssj","ssk","ssl","ssm","ssn","sso","ssp","ssq","ssr","sss","sst","ssu","ssv","ssx","ssy","ssz","sta","stb","std","ste","stf","stg","sth","sti","stj","stk","stl","stm","stn","sto","stp","stq","str","sts","stt","stu","stv","stw","sty","sua","sub","suc","sue","sug","sui","suj","suk","sul","sum","suq","sur","sus","sut","suv","suw","sux","suy","suz","sva","svb","svc","sve","svk","svm","svr","svs","svx","swb","swc","swf","swg","swh","swi","swj","swk","swl","swm","swn","swo","swp","swq","swr","sws","swt","swu","swv","sww","swx","swy","sxb","sxc","sxe","sxg","sxk","sxl","sxm","sxn","sxo","sxr","sxs","sxu","sxw","sya","syb","syc","syd","syi","syk","syl","sym","syn","syo","syr","sys","syw","syx","syy","sza","szb","szc","szd","sze","szg","szl","szn","szp","szs","szv","szw","taa","tab","tac","tad","tae","taf","tag","tai","taj","tak","tal","tan","tao","tap","taq","tar","tas","tau","tav","taw","tax","tay","taz","tba","tbb","tbc","tbd","tbe","tbf","tbg","tbh","tbi","tbj","tbk","tbl","tbm","tbn","tbo","tbp","tbq","tbr","tbs","tbt","tbu","tbv","tbw","tbx","tby","tbz","tca","tcb","tcc","tcd","tce","tcf","tcg","tch","tci","tck","tcl","tcm","tcn","tco","tcp","tcq","tcs","tct","tcu","tcw","tcx","tcy","tcz","tda","tdb","tdc","tdd","tde","tdf","tdg","tdh","tdi","tdj","tdk","tdl","tdm","tdn","tdo","tdq","tdr","tds","tdt","tdu","tdv","tdx","tdy","tea","teb","tec","ted","tee","tef","teg","teh","tei","tek","tem","ten","teo","tep","teq","ter","tes","tet","teu","tev","tew","tex","tey","tez","tfi","tfn","tfo","tfr","tft","tga","tgb","tgc","tgd","tge","tgf","tgg","tgh","tgi","tgj","tgn","tgo","tgp","tgq","tgr","tgs","tgt","tgu","tgv","tgw","tgx","tgy","tgz","thc","thd","the","thf","thh","thi","thk","thl","thm","thn","thp","thq","thr","ths","tht","thu","thv","thw","thx","thy","thz","tia","tic","tid","tie","tif","tig","tih","tii","tij","tik","til","tim","tin","tio","tip","tiq","tis","tit","tiu","tiv","tiw","tix","tiy","tiz","tja","tjg","tji","tjl","tjm","tjn","tjo","tjs","tju","tjw","tka","tkb","tkd","tke","tkf","tkg","tkk","tkl","tkm","tkn","tkp","tkq","tkr","tks","tkt","tku","tkv","tkw","tkx","tkz","tla","tlb","tlc","tld","tlf","tlg","tlh","tli","tlj","tlk","tll","tlm","tln","tlo","tlp","tlq","tlr","tls","tlt","tlu","tlv","tlw","tlx","tly","tma","tmb","tmc","tmd","tme","tmf","tmg","tmh","tmi","tmj","tmk","tml","tmm","tmn","tmo","tmp","tmq","tmr","tms","tmt","tmu","tmv","tmw","tmy","tmz","tna","tnb","tnc","tnd","tne","tnf","tng","tnh","tni","tnk","tnl","tnm","tnn","tno","tnp","tnq","tnr","tns","tnt","tnu","tnv","tnw","tnx","tny","tnz","tob","toc","tod","toe","tof","tog","toh","toi","toj","tol","tom","too","top","toq","tor","tos","tou","tov","tow","tox","toy","toz","tpa","tpc","tpe","tpf","tpg","tpi","tpj","tpk","tpl","tpm","tpn","tpo","tpp","tpq","tpr","tpt","tpu","tpv","tpw","tpx","tpy","tpz","tqb","tql","tqm","tqn","tqo","tqp","tqq","tqr","tqt","tqu","tqw","tra","trb","trc","trd","tre","trf","trg","trh","tri","trj","trk","trl","trm","trn","tro","trp","trq","trr","trs","trt","tru","trv","trw","trx","try","trz","tsa","tsb","tsc","tsd","tse","tsf","tsg","tsh","tsi","tsj","tsk","tsl","tsm","tsp","tsq","tsr","tss","tst","tsu","tsv","tsw","tsx","tsy","tsz","tta","ttb","ttc","ttd","tte","ttf","ttg","tth","tti","ttj","ttk","ttl","ttm","ttn","tto","ttp","ttq","ttr","tts","ttt","ttu","ttv","ttw","tty","ttz","tua","tub","tuc","tud","tue","tuf","tug","tuh","tui","tuj","tul","tum","tun","tuo","tup","tuq","tus","tut","tuu","tuv","tuw","tux","tuy","tuz","tva","tvd","tve","tvk","tvl","tvm","tvn","tvo","tvs","tvt","tvu","tvw","tvy","twa","twb","twc","twd","twe","twf","twg","twh","twl","twm","twn","two","twp","twq","twr","twt","twu","tww","twx","twy","txa","txb","txc","txe","txg","txh","txi","txj","txm","txn","txo","txq","txr","txs","txt","txu","txx","txy","tya","tye","tyh","tyi","tyj","tyl","tyn","typ","tyr","tys","tyt","tyu","tyv","tyx","tyz","tza","tzh","tzj","tzl","tzm","tzn","tzo","tzx","uam","uan","uar","uba","ubi","ubl","ubr","ubu","uby","uda","ude","udg","udi","udj","udl","udm","udu","ues","ufi","uga","ugb","uge","ugn","ugo","ugy","uha","uhn","uis","uiv","uji","uka","ukg","ukh","ukk","ukl","ukp","ukq","uks","uku","ukw","uky","ula","ulb","ulc","ule","ulf","uli","ulk","ull","ulm","uln","ulu","ulw","uma","umb","umc","umd","umg","umi","umm","umn","umo","ump","umr","ums","umu","una","und","une","ung","unk","unm","unn","unp","unr","unu","unx","unz","uok","upi","upv","ura","urb","urc","ure","urf","urg","urh","uri","urj","urk","url","urm","urn","uro","urp","urr","urt","uru","urv","urw","urx","ury","urz","usa","ush","usi","usk","usp","usu","uta","ute","utp","utr","utu","uum","uun","uur","uuu","uve","uvh","uvl","uwa","uya","uzn","uzs","vaa","vae","vaf","vag","vah","vai","vaj","val","vam","van","vao","vap","var","vas","vau","vav","vay","vbb","vbk","vec","ved","vel","vem","veo","vep","ver","vgr","vgt","vic","vid","vif","vig","vil","vin","vis","vit","viv","vka","vki","vkj","vkk","vkl","vkm","vko","vkp","vkt","vku","vlp","vls","vma","vmb","vmc","vmd","vme","vmf","vmg","vmh","vmi","vmj","vmk","vml","vmm","vmp","vmq","vmr","vms","vmu","vmv","vmw","vmx","vmy","vmz","vnk","vnm","vnp","vor","vot","vra","vro","vrs","vrt","vsi","vsl","vsv","vto","vum","vun","vut","vwa","waa","wab","wac","wad","wae","waf","wag","wah","wai","waj","wak","wal","wam","wan","wao","wap","waq","war","was","wat","wau","wav","waw","wax","way","waz","wba","wbb","wbe","wbf","wbh","wbi","wbj","wbk","wbl","wbm","wbp","wbq","wbr","wbs","wbt","wbv","wbw","wca","wci","wdd","wdg","wdj","wdk","wdu","wdy","wea","wec","wed","weg","weh","wei","wem","wen","weo","wep","wer","wes","wet","weu","wew","wfg","wga","wgb","wgg","wgi","wgo","wgu","wgw","wgy","wha","whg","whk","whu","wib","wic","wie","wif","wig","wih","wii","wij","wik","wil","wim","win","wir","wit","wiu","wiv","wiw","wiy","wja","wji","wka","wkb","wkd","wkl","wku","wkw","wky","wla","wlc","wle","wlg","wli","wlk","wll","wlm","wlo","wlr","wls","wlu","wlv","wlw","wlx","wly","wma","wmb","wmc","wmd","wme","wmh","wmi","wmm","wmn","wmo","wms","wmt","wmw","wmx","wnb","wnc","wnd","wne","wng","wni","wnk","wnm","wnn","wno","wnp","wnu","wnw","wny","woa","wob","woc","wod","woe","wof","wog","woi","wok","wom","won","woo","wor","wos","wow","woy","wpc","wra","wrb","wrd","wrg","wrh","wri","wrk","wrl","wrm","wrn","wro","wrp","wrr","wrs","wru","wrv","wrw","wrx","wry","wrz","wsa","wsg","wsi","wsk","wsr","wss","wsu","wsv","wtf","wth","wti","wtk","wtm","wtw","wua","wub","wud","wuh","wul","wum","wun","wur","wut","wuu","wuv","wux","wuy","wwa","wwb","wwo","wwr","www","wxa","wxw","wya","wyb","wyi","wym","wyr","wyy","xaa","xab","xac","xad","xae","xag","xai","xaj","xak","xal","xam","xan","xao","xap","xaq","xar","xas","xat","xau","xav","xaw","xay","xba","xbb","xbc","xbd","xbe","xbg","xbi","xbj","xbm","xbn","xbo","xbp","xbr","xbw","xbx","xby","xcb","xcc","xce","xcg","xch","xcl","xcm","xcn","xco","xcr","xct","xcu","xcv","xcw","xcy","xda","xdc","xdk","xdm","xdo","xdy","xeb","xed","xeg","xel","xem","xep","xer","xes","xet","xeu","xfa","xga","xgb","xgd","xgf","xgg","xgi","xgl","xgm","xgn","xgr","xgu","xgw","xha","xhc","xhd","xhe","xhr","xht","xhu","xhv","xia","xib","xii","xil","xin","xip","xir","xis","xiv","xiy","xjb","xjt","xka","xkb","xkc","xkd","xke","xkf","xkg","xkh","xki","xkj","xkk","xkl","xkn","xko","xkp","xkq","xkr","xks","xkt","xku","xkv","xkw","xkx","xky","xkz","xla","xlb","xlc","xld","xle","xlg","xli","xln","xlo","xlp","xls","xlu","xly","xma","xmb","xmc","xmd","xme","xmf","xmg","xmh","xmj","xmk","xml","xmm","xmn","xmo","xmp","xmq","xmr","xms","xmt","xmu","xmv","xmw","xmx","xmy","xmz","xna","xnb","xnd","xng","xnh","xni","xnk","xnn","xno","xnr","xns","xnt","xnu","xny","xnz","xoc","xod","xog","xoi","xok","xom","xon","xoo","xop","xor","xow","xpa","xpc","xpe","xpg","xpi","xpj","xpk","xpm","xpn","xpo","xpp","xpq","xpr","xps","xpt","xpu","xpy","xqa","xqt","xra","xrb","xrd","xre","xrg","xri","xrm","xrn","xrq","xrr","xrt","xru","xrw","xsa","xsb","xsc","xsd","xse","xsh","xsi","xsj","xsl","xsm","xsn","xso","xsp","xsq","xsr","xss","xsu","xsv","xsy","xta","xtb","xtc","xtd","xte","xtg","xth","xti","xtj","xtl","xtm","xtn","xto","xtp","xtq","xtr","xts","xtt","xtu","xtv","xtw","xty","xtz","xua","xub","xud","xug","xuj","xul","xum","xun","xuo","xup","xur","xut","xuu","xve","xvi","xvn","xvo","xvs","xwa","xwc","xwd","xwe","xwg","xwj","xwk","xwl","xwo","xwr","xwt","xww","xxb","xxk","xxm","xxr","xxt","xya","xyb","xyj","xyk","xyl","xyt","xyy","xzh","xzm","xzp","yaa","yab","yac","yad","yae","yaf","yag","yah","yai","yaj","yak","yal","yam","yan","yao","yap","yaq","yar","yas","yat","yau","yav","yaw","yax","yay","yaz","yba","ybb","ybd","ybe","ybh","ybi","ybj","ybk","ybl","ybm","ybn","ybo","ybx","yby","ych","ycl","ycn","ycp","yda","ydd","yde","ydg","ydk","yds","yea","yec","yee","yei","yej","yel","yen","yer","yes","yet","yeu","yev","yey","yga","ygi","ygl","ygm","ygp","ygr","ygs","ygu","ygw","yha","yhd","yhl","yhs","yia","yif","yig","yih","yii","yij","yik","yil","yim","yin","yip","yiq","yir","yis","yit","yiu","yiv","yix","yiy","yiz","yka","ykg","yki","ykk","ykl","ykm","ykn","yko","ykr","ykt","yku","yky","yla","ylb","yle","ylg","yli","yll","ylm","yln","ylo","ylr","ylu","yly","yma","ymb","ymc","ymd","yme","ymg","ymh","ymi","ymk","yml","ymm","ymn","ymo","ymp","ymq","ymr","yms","ymt","ymx","ymz","yna","ynd","yne","yng","ynh","ynk","ynl","ynn","yno","ynq","yns","ynu","yob","yog","yoi","yok","yol","yom","yon","yos","yot","yox","yoy","ypa","ypb","ypg","yph","ypk","ypm","ypn","ypo","ypp","ypz","yra","yrb","yre","yri","yrk","yrl","yrm","yrn","yro","yrs","yrw","yry","ysc","ysd","ysg","ysl","ysn","yso","ysp","ysr","yss","ysy","yta","ytl","ytp","ytw","yty","yua","yub","yuc","yud","yue","yuf","yug","yui","yuj","yuk","yul","yum","yun","yup","yuq","yur","yut","yuu","yuw","yux","yuy","yuz","yva","yvt","ywa","ywg","ywl","ywn","ywq","ywr","ywt","ywu","yww","yxa","yxg","yxl","yxm","yxu","yxy","yyr","yyu","yyz","yzg","yzk","zaa","zab","zac","zad","zae","zaf","zag","zah","zai","zaj","zak","zal","zam","zao","zap","zaq","zar","zas","zat","zau","zav","zaw","zax","zay","zaz","zbc","zbe","zbl","zbt","zbw","zca","zch","zdj","zea","zeg","zeh","zen","zga","zgb","zgh","zgm","zgn","zgr","zhb","zhd","zhi","zhn","zhw","zhx","zia","zib","zik","zil","zim","zin","zir","ziw","ziz","zka","zkb","zkd","zkg","zkh","zkk","zkn","zko","zkp","zkr","zkt","zku","zkv","zkz","zle","zlj","zlm","zln","zlq","zls","zlw","zma","zmb","zmc","zmd","zme","zmf","zmg","zmh","zmi","zmj","zmk","zml","zmm","zmn","zmo","zmp","zmq","zmr","zms","zmt","zmu","zmv","zmw","zmx","zmy","zmz","zna","znd","zne","zng","znk","zns","zoc","zoh","zom","zoo","zoq","zor","zos","zpa","zpb","zpc","zpd","zpe","zpf","zpg","zph","zpi","zpj","zpk","zpl","zpm","zpn","zpo","zpp","zpq","zpr","zps","zpt","zpu","zpv","zpw","zpx","zpy","zpz","zqe","zra","zrg","zrn","zro","zrp","zrs","zsa","zsk","zsl","zsm","zsr","zsu","zte","ztg","ztl","ztm","ztn","ztp","ztq","zts","ztt","ztu","ztx","zty","zua","zuh","zum","zun","zuy","zwa","zxx","zyb","zyg","zyj","zyn","zyp","zza","zzj"];function he(e){return ye(e)||ge(e)||be()}function be(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function ge(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function ye(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}axe.utils.validLangs=function(){"use strict";return Ie},axe._load({data:{rules:{accesskeys:{description:"Ensures every accesskey attribute value is unique",help:"accesskey attribute value must be unique"},"area-alt":{description:"Ensures <area> elements of image maps have alternate text",help:"Active <area> elements must have alternate text"},"aria-allowed-attr":{description:"Ensures ARIA attributes are allowed for an element's role",help:"Elements must only use allowed ARIA attributes"},"aria-allowed-role":{description:"Ensures role attribute has an appropriate value for the element",help:"ARIA role must be appropriate for the element"},"aria-dpub-role-fallback":{description:"Ensures unsupported DPUB roles are only used on elements with implicit fallback roles",help:"Unsupported DPUB ARIA roles should be used on elements with implicit fallback roles"},"aria-hidden-body":{description:"Ensures aria-hidden='true' is not present on the document body.",help:"aria-hidden='true' must not be present on the document body"},"aria-hidden-focus":{description:"Ensures aria-hidden elements do not contain focusable elements",help:"ARIA hidden element must not contain focusable elements"},"aria-input-field-name":{description:"Ensures every ARIA input field has an accessible name",help:"ARIA input fields have an accessible name"},"aria-required-attr":{description:"Ensures elements with ARIA roles have all required ARIA attributes",help:"Required ARIA attributes must be provided"},"aria-required-children":{description:"Ensures elements with an ARIA role that require child roles contain them",help:"Certain ARIA roles must contain particular children"},"aria-required-parent":{description:"Ensures elements with an ARIA role that require parent roles are contained by them",help:"Certain ARIA roles must be contained by particular parents"},"aria-roles":{description:"Ensures all elements with a role attribute use a valid value",help:"ARIA roles used must conform to valid values"},"aria-toggle-field-name":{description:"Ensures every ARIA toggle field has an accessible name",help:"ARIA toggle fields have an accessible name"},"aria-valid-attr-value":{description:"Ensures all ARIA attributes have valid values",help:"ARIA attributes must conform to valid values"},"aria-valid-attr":{description:"Ensures attributes that begin with aria- are valid ARIA attributes",help:"ARIA attributes must conform to valid names"},"audio-caption":{description:"Ensures <audio> elements have captions",help:"<audio> elements must have a captions track"},"autocomplete-valid":{description:"Ensure the autocomplete attribute is correct and suitable for the form field",help:"autocomplete attribute must be used correctly"},"avoid-inline-spacing":{description:"Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",help:"Inline text spacing must be adjustable with custom stylesheets"},blink:{description:"Ensures <blink> elements are not used",help:"<blink> elements are deprecated and must not be used"},"button-name":{description:"Ensures buttons have discernible text",help:"Buttons must have discernible text"},bypass:{description:"Ensures each page has at least one mechanism for a user to bypass navigation and jump straight to the content",help:"Page must have means to bypass repeated blocks"},checkboxgroup:{description:'Ensures related <input type="checkbox"> elements have a group and that the group designation is consistent',help:"Checkbox inputs with the same name attribute value must be part of a group"},"color-contrast":{description:"Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds",help:"Elements must have sufficient color contrast"},"css-orientation-lock":{description:"Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations",help:"CSS Media queries are not used to lock display orientation"},"definition-list":{description:"Ensures <dl> elements are structured correctly",help:"<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script> or <template> elements"},dlitem:{description:"Ensures <dt> and <dd> elements are contained by a <dl>",help:"<dt> and <dd> elements must be contained by a <dl>"},"document-title":{description:"Ensures each HTML document contains a non-empty <title> element",help:"Documents must have <title> element to aid in navigation"},"duplicate-id-active":{description:"Ensures every id attribute value of active elements is unique",help:"IDs of active elements must be unique"},"duplicate-id-aria":{description:"Ensures every id attribute value used in ARIA and in labels is unique",help:"IDs used in ARIA and labels must be unique"},"duplicate-id":{description:"Ensures every id attribute value is unique",help:"id attribute value must be unique"},"empty-heading":{description:"Ensures headings have discernible text",help:"Headings must not be empty"},"focus-order-semantics":{description:"Ensures elements in the focus order have an appropriate role",help:"Elements in the focus order need a role appropriate for interactive content"},"form-field-multiple-labels":{description:"Ensures form field does not have multiple label elements",help:"Form field must not have multiple label elements"},"frame-tested":{description:"Ensures <iframe> and <frame> elements contain the axe-core script",help:"Frames must be tested with axe-core"},"frame-title-unique":{description:"Ensures <iframe> and <frame> elements contain a unique title attribute",help:"Frames must have a unique title attribute"},"frame-title":{description:"Ensures <iframe> and <frame> elements contain a non-empty title attribute",help:"Frames must have title attribute"},"heading-order":{description:"Ensures the order of headings is semantically correct",help:"Heading levels should only increase by one"},"hidden-content":{description:"Informs users about hidden content.",help:"Hidden content on the page cannot be analyzed"},"html-has-lang":{description:"Ensures every HTML document has a lang attribute",help:"<html> element must have a lang attribute"},"html-lang-valid":{description:"Ensures the lang attribute of the <html> element has a valid value",help:"<html> element must have a valid value for the lang attribute"},"html-xml-lang-mismatch":{description:"Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",help:"HTML elements with lang and xml:lang must have the same base language"},"image-alt":{description:"Ensures <img> elements have alternate text or a role of none or presentation",help:"Images must have alternate text"},"image-redundant-alt":{description:"Ensure image alternative is not repeated as text",help:"Alternative text of images should not be repeated as text"},"input-button-name":{description:"Ensures input buttons have discernible text",help:"Input buttons must have discernible text"},"input-image-alt":{description:'Ensures <input type="image"> elements have alternate text',help:"Image buttons must have alternate text"},"label-content-name-mismatch":{description:"Ensures that elements labelled through their content must have their visible text as part of their accessible name",help:"Elements must have their visible text as part of their accessible name"},"label-title-only":{description:"Ensures that every form element is not solely labeled using the title or aria-describedby attributes",help:"Form elements should have a visible label"},label:{description:"Ensures every form element has a label",help:"Form elements must have labels"},"landmark-banner-is-top-level":{description:"Ensures the banner landmark is at top level",help:"Banner landmark must not be contained in another landmark"},"landmark-complementary-is-top-level":{description:"Ensures the complementary landmark or aside is at top level",help:"Aside must not be contained in another landmark"},"landmark-contentinfo-is-top-level":{description:"Ensures the contentinfo landmark is at top level",help:"Contentinfo landmark must not be contained in another landmark"},"landmark-main-is-top-level":{description:"Ensures the main landmark is at top level",help:"Main landmark must not be contained in another landmark"},"landmark-no-duplicate-banner":{description:"Ensures the document has at most one banner landmark",help:"Document must not have more than one banner landmark"},"landmark-no-duplicate-contentinfo":{description:"Ensures the document has at most one contentinfo landmark",help:"Document must not have more than one contentinfo landmark"},"landmark-one-main":{description:"Ensures the document has only one main landmark and each iframe in the page has at most one main landmark",help:"Document must have one main landmark"},"landmark-unique":{help:"Ensures landmarks are unique",description:"Landmarks must have a unique role or role/label/title (i.e. accessible name) combination"},"layout-table":{description:"Ensures presentational <table> elements do not use <th>, <caption> elements or the summary attribute",help:"Layout tables must not use data table elements"},"link-in-text-block":{description:"Links can be distinguished without relying on color",help:"Links must be distinguished from surrounding text in a way that does not rely on color"},"link-name":{description:"Ensures links have discernible text",help:"Links must have discernible text"},list:{description:"Ensures that lists are structured correctly",help:"<ul> and <ol> must only directly contain <li>, <script> or <template> elements"},listitem:{description:"Ensures <li> elements are used semantically",help:"<li> elements must be contained in a <ul> or <ol>"},marquee:{description:"Ensures <marquee> elements are not used",help:"<marquee> elements are deprecated and must not be used"},"meta-refresh":{description:'Ensures <meta http-equiv="refresh"> is not used',help:"Timed refresh must not exist"},"meta-viewport-large":{description:'Ensures <meta name="viewport"> can scale a significant amount',help:"Users should be able to zoom and scale the text up to 500%"},"meta-viewport":{description:'Ensures <meta name="viewport"> does not disable text scaling and zooming',help:"Zooming and scaling must not be disabled"},"object-alt":{description:"Ensures <object> elements have alternate text",help:"<object> elements must have alternate text"},"p-as-heading":{description:"Ensure p elements are not used to style headings",help:"Bold, italic text and font-size are not used to style p elements as a heading"},"page-has-heading-one":{description:"Ensure that the page, or at least one of its frames contains a level-one heading",help:"Page must contain a level-one heading"},radiogroup:{description:'Ensures related <input type="radio"> elements have a group and that the group designation is consistent',help:"Radio inputs with the same name attribute value must be part of a group"},region:{description:"Ensures all page content is contained by landmarks",help:"All page content must be contained by landmarks"},"role-img-alt":{description:"Ensures [role='img'] elements have alternate text",help:"[role='img'] elements have an alternative text"},"scope-attr-valid":{description:"Ensures the scope attribute is used correctly on tables",help:"scope attribute should be used correctly"},"scrollable-region-focusable":{description:"Elements that have scrollable content should be accessible by keyboard",help:"Ensure that scrollable region has keyboard access"},"server-side-image-map":{description:"Ensures that server-side image maps are not used",help:"Server-side image maps must not be used"},"skip-link":{description:"Ensure all skip links have a focusable target",help:"The skip-link target should exist and be focusable"},tabindex:{description:"Ensures tabindex attribute values are not greater than 0",help:"Elements should not have tabindex greater than zero"},"table-duplicate-name":{description:"Ensure that tables do not have the same summary and caption",help:"The <caption> element should not contain the same text as the summary attribute"},"table-fake-caption":{description:"Ensure that tables with a caption use the <caption> element.",help:"Data or header cells should not be used to give caption to a data table."},"td-has-header":{description:"Ensure that each non-empty data cell in a large table has one or more table headers",help:"All non-empty td element in table larger than 3 by 3 must have an associated table header"},"td-headers-attr":{description:"Ensure that each cell in a table using the headers refers to another cell in that table",help:"All cells in a table element that use the headers attribute must only refer to other cells of that same table"},"th-has-data-cells":{description:"Ensure that each table header in a data table refers to data cells",help:"All th elements and elements with role=columnheader/rowheader must have data cells they describe"},"valid-lang":{description:"Ensures lang attributes have valid values",help:"lang attribute must have a valid value"},"video-caption":{description:"Ensures <video> elements have captions",help:"<video> elements must have captions"},"video-description":{description:"Ensures <video> elements have audio descriptions",help:"<video> elements must have an audio description track"}},checks:{accesskeys:{impact:"serious",messages:{pass:function(e){return"Accesskey attribute value is unique"},fail:function(e){return"Document has multiple elements with the same accesskey"}}},"non-empty-alt":{impact:"critical",messages:{pass:function(e){return"Element has a non-empty alt attribute"},fail:function(e){return"Element has no alt attribute or the alt attribute is empty"}}},"non-empty-title":{impact:"serious",messages:{pass:function(e){return"Element has a title attribute"},fail:function(e){return"Element has no title attribute or the title attribute is empty"}}},"aria-label":{impact:"serious",messages:{pass:function(e){return"aria-label attribute exists and is not empty"},fail:function(e){return"aria-label attribute does not exist or is empty"}}},"aria-labelledby":{impact:"serious",messages:{pass:function(e){return"aria-labelledby attribute exists and references elements that are visible to screen readers"},fail:function(e){return"aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"}}},"aria-allowed-attr":{impact:"critical",messages:{pass:function(e){return"ARIA attributes are used correctly for the defined role"},fail:function(e){var t="ARIA attribute"+(e.data&&1<e.data.length?"s are":" is")+" not allowed:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-unsupported-attr":{impact:"critical",messages:{pass:function(e){return"ARIA attribute is supported"},fail:function(e){var t="ARIA attribute is not widely supported in screen readers and assistive technologies: ",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-allowed-role":{impact:"minor",messages:{pass:function(e){return"ARIA role is allowed for given element"},fail:function(e){return"ARIA role"+(e.data&&1<e.data.length?"s":"")+" "+e.data.join(", ")+" "+(e.data&&1<e.data.length?"are":" is")+" not allowed for given element"},incomplete:function(e){return"ARIA role"+(e.data&&1<e.data.length?"s":"")+" "+e.data.join(", ")+" must be removed when the element is made visible, as "+(e.data&&1<e.data.length?"they are":"it is")+" not allowed for the element"}}},"implicit-role-fallback":{impact:"moderate",messages:{pass:function(e){return"Element’s implicit ARIA role is an appropriate fallback"},fail:function(e){return"Element’s implicit ARIA role is not a good fallback for the (unsupported) role"}}},"aria-hidden-body":{impact:"critical",messages:{pass:function(e){return"No aria-hidden attribute is present on document body"},fail:function(e){return"aria-hidden=true should not be present on the document body"}}},"focusable-disabled":{impact:"serious",messages:{pass:function(e){return"No focusable elements contained within element"},fail:function(e){return"Focusable content should be disabled or be removed from the DOM"}}},"focusable-not-tabbable":{impact:"serious",messages:{pass:function(e){return"No focusable elements contained within element"},fail:function(e){return"Focusable content should have tabindex='-1' or be removed from the DOM"}}},"no-implicit-explicit-label":{impact:"moderate",messages:{pass:function(e){return"There is no mismatch between a <label> and accessible name"},incomplete:function(e){return"Check that the <label> does not need be part of the ARIA "+e.data+" field's name"}}},"aria-required-attr":{impact:"critical",messages:{pass:function(e){return"All required ARIA attributes are present"},fail:function(e){var t="Required ARIA attribute"+(e.data&&1<e.data.length?"s":"")+" not present:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-required-children":{impact:"critical",messages:{pass:function(e){return"Required ARIA children are present"},fail:function(e){var t="Required ARIA "+(e.data&&1<e.data.length?"children":"child")+" role not present:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t},incomplete:function(e){var t="Expecting ARIA "+(e.data&&1<e.data.length?"children":"child")+" role to be added:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-required-parent":{impact:"critical",messages:{pass:function(e){return"Required ARIA parent role present"},fail:function(e){var t="Required ARIA parent"+(e.data&&1<e.data.length?"s":"")+" role not present:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},invalidrole:{impact:"critical",messages:{pass:function(e){return"ARIA role is valid"},fail:function(e){return"Role must be one of the valid ARIA roles"}}},abstractrole:{impact:"serious",messages:{pass:function(e){return"Abstract roles are not used"},fail:function(e){return"Abstract roles cannot be directly used"}}},unsupportedrole:{impact:"critical",messages:{pass:function(e){return"ARIA role is supported"},fail:function(e){var t="The role used is not widely supported in screen readers and assistive technologies: ",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"has-visible-text":{impact:"minor",messages:{pass:function(e){return"Element has text that is visible to screen readers"},fail:function(e){return"Element does not have text that is visible to screen readers"}}},"aria-valid-attr-value":{impact:"critical",messages:{pass:function(e){return"ARIA attribute values are valid"},fail:function(e){var t="Invalid ARIA attribute value"+(e.data&&1<e.data.length?"s":"")+":",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t},incomplete:function(e){var t="ARIA attribute"+(e.data&&1<e.data.length?"s":"")+" element ID does not exist on the page:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-errormessage":{impact:"critical",messages:{pass:function(e){return"Uses a supported aria-errormessage technique"},fail:function(e){var t="aria-errormessage value"+(e.data&&1<e.data.length?"s":"")+" ",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" `"+n[r+=1];return t+="` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)"}}},"aria-valid-attr":{impact:"critical",messages:{pass:function(e){return"ARIA attribute name"+(e.data&&1<e.data.length?"s":"")+" are valid"},fail:function(e){var t="Invalid ARIA attribute name"+(e.data&&1<e.data.length?"s":"")+":",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},caption:{impact:"critical",messages:{pass:function(e){return"The multimedia element has a captions track"},incomplete:function(e){return"Check that captions is available for the element"}}},"autocomplete-valid":{impact:"serious",messages:{pass:function(e){return"the autocomplete attribute is correctly formatted"},fail:function(e){return"the autocomplete attribute is incorrectly formatted"}}},"autocomplete-appropriate":{impact:"serious",messages:{pass:function(e){return"the autocomplete value is on an appropriate element"},fail:function(e){return"the autocomplete value is inappropriate for this type of input"}}},"avoid-inline-spacing":{impact:"serious",messages:{pass:function(e){return"No inline styles with '!important' that affect text spacing has been specified"},fail:function(e){return"Remove '!important' from inline style"+(e.data&&1<e.data.length?"s":"")+" "+e.data.join(", ")+", as overriding this is not supported by most browsers"}}},"is-on-screen":{impact:"serious",messages:{pass:function(e){return"Element is not visible"},fail:function(e){return"Element is visible"}}},"button-has-visible-text":{impact:"critical",messages:{pass:function(e){return"Element has inner text that is visible to screen readers"},fail:function(e){return"Element does not have inner text that is visible to screen readers"}}},"role-presentation":{impact:"minor",messages:{pass:function(e){return'Element\'s default semantics were overriden with role="presentation"'},fail:function(e){return'Element\'s default semantics were not overridden with role="presentation"'}}},"role-none":{impact:"minor",messages:{pass:function(e){return'Element\'s default semantics were overriden with role="none"'},fail:function(e){return'Element\'s default semantics were not overridden with role="none"'}}},"internal-link-present":{impact:"serious",messages:{pass:function(e){return"Valid skip link found"},fail:function(e){return"No valid skip link found"}}},"header-present":{impact:"serious",messages:{pass:function(e){return"Page has a header"},fail:function(e){return"Page does not have a header"}}},landmark:{impact:"serious",messages:{pass:function(e){return"Page has a landmark region"},fail:function(e){return"Page does not have a landmark region"}}},"group-labelledby":{impact:"critical",messages:{pass:function(e){return'Elements with the name "'+e.data.name+'" have both a shared label, and a unique label, referenced through aria-labelledby'},fail:function(e){var t="",n=e.data&&e.data.failureCode;return t+='Elements with the name "'+e.data.name+'" do not all have ',t+="no-shared-label"===n?"a shared label":"no-unique-label"===n?"a unique label":"both a shared label, and a unique label",t+=", referenced through aria-labelledby"}}},fieldset:{impact:"critical",messages:{pass:function(e){return"Element is contained in a fieldset"},fail:function(e){var t="",n=e.data&&e.data.failureCode;return t+="no-legend"===n?"Fieldset does not have a legend as its first child":"empty-legend"===n?"Legend does not have text that is visible to screen readers":"mixed-inputs"===n?"Fieldset contains unrelated inputs":"no-group-label"===n?"ARIA group does not have aria-label or aria-labelledby":"group-mixed-inputs"===n?"ARIA group contains unrelated inputs":"Element does not have a containing fieldset or ARIA group"}}},"color-contrast":{impact:"serious",messages:{pass:function(e){return"Element has sufficient color contrast of "+e.data.contrastRatio},fail:function(e){return"Element has insufficient color contrast of "+e.data.contrastRatio+" (foreground color: "+e.data.fgColor+", background color: "+e.data.bgColor+", font size: "+e.data.fontSize+", font weight: "+e.data.fontWeight+"). Expected contrast ratio of "+e.data.expectedContrastRatio},incomplete:{bgImage:"Element's background color could not be determined due to a background image",bgGradient:"Element's background color could not be determined due to a background gradient",imgNode:"Element's background color could not be determined because element contains an image node",bgOverlap:"Element's background color could not be determined because it is overlapped by another element",fgAlpha:"Element's foreground color could not be determined because of alpha transparency",elmPartiallyObscured:"Element's background color could not be determined because it's partially obscured by another element",elmPartiallyObscuring:"Element's background color could not be determined because it partially overlaps other elements",outsideViewport:"Element's background color could not be determined because it's outside the viewport",equalRatio:"Element has a 1:1 contrast ratio with the background",shortTextContent:"Element content is too short to determine if it is actual text content",default:"Unable to determine contrast ratio"}}},"css-orientation-lock":{impact:"serious",messages:{pass:function(e){return"Display is operable, and orientation lock does not exist"},fail:function(e){return"CSS Orientation lock is applied, and makes display inoperable"},incomplete:function(e){return"CSS Orientation lock cannot be determined"}}},"structured-dlitems":{impact:"serious",messages:{pass:function(e){return"When not empty, element has both <dt> and <dd> elements"},fail:function(e){return"When not empty, element does not have at least one <dt> element followed by at least one <dd> element"}}},"only-dlitems":{impact:"serious",messages:{pass:function(e){return"List element only has direct children that are allowed inside <dt> or <dd> elements"},fail:function(e){return"List element has direct children that are not allowed inside <dt> or <dd> elements"}}},dlitem:{impact:"serious",messages:{pass:function(e){return"Description list item has a <dl> parent element"},fail:function(e){return"Description list item does not have a <dl> parent element"}}},"doc-has-title":{impact:"serious",messages:{pass:function(e){return"Document has a non-empty <title> element"},fail:function(e){return"Document does not have a non-empty <title> element"}}},"duplicate-id-active":{impact:"serious",messages:{pass:function(e){return"Document has no active elements that share the same id attribute"},fail:function(e){return"Document has active elements with the same id attribute: "+e.data}}},"duplicate-id-aria":{impact:"critical",messages:{pass:function(e){return"Document has no elements referenced with ARIA or labels that share the same id attribute"},fail:function(e){return"Document has multiple elements referenced with ARIA with the same id attribute: "+e.data}}},"duplicate-id":{impact:"minor",messages:{pass:function(e){return"Document has no static elements that share the same id attribute"},fail:function(e){return"Document has multiple static elements with the same id attribute"}}},"has-widget-role":{impact:"minor",messages:{pass:function(e){return"Element has a widget role."},fail:function(e){return"Element does not have a widget role."}}},"valid-scrollable-semantics":{impact:"minor",messages:{pass:function(e){return"Element has valid semantics for an element in the focus order."},fail:function(e){return"Element has invalid semantics for an element in the focus order."}}},"multiple-label":{impact:"moderate",messages:{pass:function(e){return"Form field does not have multiple label elements"},fail:function(e){return"Multiple label elements is not widely supported in assistive technologies"}}},"frame-tested":{impact:"critical",messages:{pass:function(e){return"The iframe was tested with axe-core"},fail:function(e){return"The iframe could not be tested with axe-core"},incomplete:function(e){return"The iframe still has to be tested with axe-core"}}},"unique-frame-title":{impact:"serious",messages:{pass:function(e){return"Element's title attribute is unique"},fail:function(e){return"Element's title attribute is not unique"}}},"heading-order":{impact:"moderate",messages:{pass:function(e){return"Heading order valid"},fail:function(e){return"Heading order invalid"}}},"hidden-content":{impact:"minor",messages:{pass:function(e){return"All content on the page has been analyzed."},fail:function(e){return"There were problems analyzing the content on this page."},incomplete:function(e){return"There is hidden content on the page that was not analyzed. You will need to trigger the display of this content in order to analyze it."}}},"has-lang":{impact:"serious",messages:{pass:function(e){return"The <html> element has a lang attribute"},fail:function(e){return"The <html> element does not have a lang attribute"}}},"valid-lang":{impact:"serious",messages:{pass:function(e){return"Value of lang attribute is included in the list of valid languages"},fail:function(e){return"Value of lang attribute not included in the list of valid languages"}}},"xml-lang-mismatch":{impact:"moderate",messages:{pass:function(e){return"Lang and xml:lang attributes have the same base language"},fail:function(e){return"Lang and xml:lang attributes do not have the same base language"}}},"has-alt":{impact:"critical",messages:{pass:function(e){return"Element has an alt attribute"},fail:function(e){return"Element does not have an alt attribute"}}},"alt-space-value":{impact:"critical",messages:{pass:function(e){return"Element has a valid alt attribute value"},fail:function(e){return"Element has an alt attribute containing only a space character, which is not ignored by all screen readers"}}},"duplicate-img-label":{impact:"minor",messages:{pass:function(e){return"Element does not duplicate existing text in <img> alt text"},fail:function(e){return"Element contains <img> element with alt text that duplicates existing text"}}},"non-empty-if-present":{impact:"critical",messages:{pass:function(e){var t="Element ";return e.data?t+="has a non-empty value attribute":t+="does not have a value attribute",t},fail:function(e){return"Element has a value attribute and the value attribute is empty"}}},"non-empty-value":{impact:"critical",messages:{pass:function(e){return"Element has a non-empty value attribute"},fail:function(e){return"Element has no value attribute or the value attribute is empty"}}},"label-content-name-mismatch":{impact:"serious",messages:{pass:function(e){return"Element contains visible text as part of it's accessible name"},fail:function(e){return"Text inside the element is not included in the accessible name"}}},"title-only":{impact:"serious",messages:{pass:function(e){return"Form element does not solely use title attribute for its label"},fail:function(e){return"Only title used to generate label for form element"}}},"implicit-label":{impact:"critical",messages:{pass:function(e){return"Form element has an implicit (wrapped) <label>"},fail:function(e){return"Form element does not have an implicit (wrapped) <label>"}}},"explicit-label":{impact:"critical",messages:{pass:function(e){return"Form element has an explicit <label>"},fail:function(e){return"Form element does not have an explicit <label>"}}},"help-same-as-label":{impact:"minor",messages:{pass:function(e){return"Help text (title or aria-describedby) does not duplicate label text"},fail:function(e){return"Help text (title or aria-describedby) text is the same as the label text"}}},"hidden-explicit-label":{impact:"critical",messages:{pass:function(e){return"Form element has a visible explicit <label>"},fail:function(e){return"Form element has explicit <label> that is hidden"}}},"landmark-is-top-level":{impact:"moderate",messages:{pass:function(e){return"The "+e.data.role+" landmark is at the top level."},fail:function(e){return"The "+e.data.role+" landmark is contained in another landmark."}}},"page-no-duplicate-banner":{impact:"moderate",messages:{pass:function(e){return"Document does not have more than one banner landmark"},fail:function(e){return"Document has more than one banner landmark"}}},"page-no-duplicate-contentinfo":{impact:"moderate",messages:{pass:function(e){return"Document does not have more than one contentinfo landmark"},fail:function(e){return"Document has more than one contentinfo landmark"}}},"page-has-main":{impact:"moderate",messages:{pass:function(e){return"Document has at least one main landmark"},fail:function(e){return"Document does not have a main landmark"}}},"page-no-duplicate-main":{impact:"moderate",messages:{pass:function(e){return"Document does not have more than one main landmark"},fail:function(e){return"Document has more than one main landmark"}}},"landmark-is-unique":{impact:"moderate",messages:{pass:function(e){return"Landmarks must have a unique role or role/label/title (i.e. accessible name) combination"},fail:function(e){return"The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable"}}},"has-th":{impact:"serious",messages:{pass:function(e){return"Layout table does not use <th> elements"},fail:function(e){return"Layout table uses <th> elements"}}},"has-caption":{impact:"serious",messages:{pass:function(e){return"Layout table does not use <caption> element"},fail:function(e){return"Layout table uses <caption> element"}}},"has-summary":{impact:"serious",messages:{pass:function(e){return"Layout table does not use summary attribute"},fail:function(e){return"Layout table uses summary attribute"}}},"link-in-text-block":{impact:"serious",messages:{pass:function(e){return"Links can be distinguished from surrounding text in some way other than by color"},fail:function(e){return"Links need to be distinguished from surrounding text in some way other than by color"},incomplete:{bgContrast:"Element's contrast ratio could not be determined. Check for a distinct hover/focus style",bgImage:"Element's contrast ratio could not be determined due to a background image",bgGradient:"Element's contrast ratio could not be determined due to a background gradient",imgNode:"Element's contrast ratio could not be determined because element contains an image node",bgOverlap:"Element's contrast ratio could not be determined because of element overlap",default:"Unable to determine contrast ratio"}}},"focusable-no-name":{impact:"serious",messages:{pass:function(e){return"Element is not in tab order or has accessible text"},fail:function(e){return"Element is in tab order and does not have accessible text"}}},"only-listitems":{impact:"serious",messages:{pass:function(e){return"List element only has direct children that are allowed inside <li> elements"},fail:function(e){return"List element has direct children that are not allowed inside <li> elements"}}},listitem:{impact:"serious",messages:{pass:function(e){return'List item has a <ul>, <ol> or role="list" parent element'},fail:function(e){return'List item does not have a <ul>, <ol> or role="list" parent element'}}},"meta-refresh":{impact:"critical",messages:{pass:function(e){return"<meta> tag does not immediately refresh the page"},fail:function(e){return"<meta> tag forces timed refresh of page"}}},"meta-viewport-large":{impact:"minor",messages:{pass:function(e){return"<meta> tag does not prevent significant zooming on mobile devices"},fail:function(e){return"<meta> tag limits zooming on mobile devices"}}},"meta-viewport":{impact:"critical",messages:{pass:function(e){return"<meta> tag does not disable zooming on mobile devices"},fail:function(e){return e.data+" on <meta> tag disables zooming on mobile devices"}}},"p-as-heading":{impact:"serious",messages:{pass:function(e){return"<p> elements are not styled as headings"},fail:function(e){return"Heading elements should be used instead of styled p elements"}}},"page-has-heading-one":{impact:"moderate",messages:{pass:function(e){return"Page has at least one level-one heading"},fail:function(e){return"Page must have a level-one heading"}}},region:{impact:"moderate",messages:{pass:function(e){return"All page content is contained by landmarks"},fail:function(e){return"Some page content is not contained by landmarks"}}},"html5-scope":{impact:"moderate",messages:{pass:function(e){return"Scope attribute is only used on table header elements (<th>)"},fail:function(e){return"In HTML 5, scope attributes may only be used on table header elements (<th>)"}}},"scope-value":{impact:"critical",messages:{pass:function(e){return"Scope attribute is used correctly"},fail:function(e){return"The value of the scope attribute may only be 'row' or 'col'"}}},"focusable-content":{impact:"moderate",messages:{pass:function(e){return"Element contains focusable elements"},fail:function(e){return"Element should have focusable content"}}},"focusable-element":{impact:"moderate",messages:{pass:function(e){return"Element is focusable"},fail:function(e){return"Element should be focusable"}}},exists:{impact:"minor",messages:{pass:function(e){return"Element does not exist"},fail:function(e){return"Element exists"}}},"skip-link":{impact:"moderate",messages:{pass:function(e){return"Skip link target exists"},incomplete:function(e){return"Skip link target should become visible on activation"},fail:function(e){return"No skip link target"}}},tabindex:{impact:"serious",messages:{pass:function(e){return"Element does not have a tabindex greater than 0"},fail:function(e){return"Element has a tabindex greater than 0"}}},"same-caption-summary":{impact:"minor",messages:{pass:function(e){return"Content of summary attribute and <caption> are not duplicated"},fail:function(e){return"Content of summary attribute and <caption> element are identical"}}},"caption-faked":{impact:"serious",messages:{pass:function(e){return"The first row of a table is not used as a caption"},fail:function(e){return"The first row of the table should be a caption instead of a table cell"}}},"td-has-header":{impact:"critical",messages:{pass:function(e){return"All non-empty data cells have table headers"},fail:function(e){return"Some non-empty data cells do not have table headers"}}},"td-headers-attr":{impact:"serious",messages:{pass:function(e){return"The headers attribute is exclusively used to refer to other cells in the table"},fail:function(e){return"The headers attribute is not exclusively used to refer to other cells in the table"}}},"th-has-data-cells":{impact:"serious",messages:{pass:function(e){return"All table header cells refer to data cells"},fail:function(e){return"Not all table header cells refer to data cells"},incomplete:function(e){return"Table data cells are missing or empty"}}},description:{impact:"critical",messages:{pass:function(e){return"The multimedia element has an audio description track"},incomplete:function(e){return"Check that audio description is available for the element"}}}},failureSummaries:{any:{failureMessage:function(e){var t="Fix any of the following:",n=e;if(n)for(var r=-1,a=n.length-1;r<a;)t+="\n  "+n[r+=1].split("\n").join("\n  ");return t}},none:{failureMessage:function(e){var t="Fix all of the following:",n=e;if(n)for(var r=-1,a=n.length-1;r<a;)t+="\n  "+n[r+=1].split("\n").join("\n  ");return t}}},incompleteFallbackMessage:function(e){return"axe couldn't tell the reason. Time to break out the element inspector!"}},rules:[{id:"accesskeys",selector:"[accesskey]",excludeHidden:!1,tags:["best-practice","cat.keyboard"],all:[],any:[],none:["accesskeys"]},{id:"area-alt",selector:"map area[href]",excludeHidden:!1,tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["non-empty-alt","non-empty-title","aria-label","aria-labelledby"],none:[]},{id:"aria-allowed-attr",matches:function(e,t,n){var r=/^aria-/;if(e.hasAttributes())for(var a=axe.utils.getNodeAttributes(e),o=0,i=a.length;o<i;o++)if(r.test(a[o].name))return!0;return!1},tags:["cat.aria","wcag2a","wcag412"],all:[],any:["aria-allowed-attr"],none:["aria-unsupported-attr"]},{id:"aria-allowed-role",excludeHidden:!1,selector:"[role]",matches:function(e,t,n){return null!==axe.commons.aria.getRole(e,{noImplicit:!0,dpub:!0,fallback:!0})},tags:["cat.aria","best-practice"],all:[],any:[{options:{allowImplicit:!0,ignoredTags:[]},id:"aria-allowed-role"}],none:[]},{id:"aria-dpub-role-fallback",selector:"[role]",matches:function(e,t,n){var r=e.getAttribute("role");return["doc-backlink","doc-biblioentry","doc-biblioref","doc-cover","doc-endnote","doc-glossref","doc-noteref"].includes(r)},tags:["cat.aria","wcag2a","wcag131"],all:["implicit-role-fallback"],any:[],none:[]},{id:"aria-hidden-body",selector:"body",excludeHidden:!1,tags:["cat.aria","wcag2a","wcag412"],all:[],any:["aria-hidden-body"],none:[]},{id:"aria-hidden-focus",selector:'[aria-hidden="true"]',matches:function(e,t,n){var r=axe.commons.dom.getComposedParent;return function e(t){return!t||"true"!==t.getAttribute("aria-hidden")&&e(r(t))}(r(e))},excludeHidden:!1,tags:["cat.name-role-value","wcag2a","wcag412","wcag131"],all:["focusable-disabled","focusable-not-tabbable"],any:[],none:[]},{id:"aria-input-field-name",selector:'[role="combobox"], [role="listbox"], [role="searchbox"], [role="slider"], [role="spinbutton"], [role="textbox"]',matches:function(e,t,n){var r=axe.commons.aria,a=e.nodeName.toUpperCase(),o=r.getRole(e,{noImplicit:!0});return("AREA"!==a||!e.getAttribute("href"))&&(!["INPUT","SELECT","TEXTAREA"].includes(a)&&("IMG"!==a&&("img"!==o||"SVG"===a)&&("BUTTON"!==a&&"button"!==o&&("combobox"!==o||!axe.utils.querySelectorAll(t,'input:not([type="hidden"])').length))))},tags:["wcag2a","wcag412"],all:[],any:["aria-label","aria-labelledby","non-empty-title"],none:["no-implicit-explicit-label"]},{id:"aria-required-attr",selector:"[role]",tags:["cat.aria","wcag2a","wcag412"],all:[],any:["aria-required-attr"],none:[]},{id:"aria-required-children",selector:"[role]",tags:["cat.aria","wcag2a","wcag131"],all:[],any:[{options:{reviewEmpty:["doc-bibliography","doc-endnotes","grid","list","listbox","table","tablist","tree","treegrid","rowgroup"]},id:"aria-required-children"}],none:[]},{id:"aria-required-parent",selector:"[role]",tags:["cat.aria","wcag2a","wcag131"],all:[],any:["aria-required-parent"],none:[]},{id:"aria-roles",selector:"[role]",tags:["cat.aria","wcag2a","wcag412"],all:[],any:[],none:["invalidrole","abstractrole","unsupportedrole"]},{id:"aria-toggle-field-name",selector:'[role="checkbox"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="radio"], [role="switch"]',matches:function(e,t,n){var r=axe.commons.aria,a=e.nodeName.toUpperCase(),o=r.getRole(e,{noImplicit:!0});return("AREA"!==a||!e.getAttribute("href"))&&(!["INPUT","SELECT","TEXTAREA"].includes(a)&&("IMG"!==a&&("img"!==o||"SVG"===a)&&("BUTTON"!==a&&"button"!==o&&("combobox"!==o||!axe.utils.querySelectorAll(t,'input:not([type="hidden"])').length))))},tags:["wcag2a","wcag412"],all:[],any:["aria-label","aria-labelledby","non-empty-title","has-visible-text"],none:["no-implicit-explicit-label"]},{id:"aria-valid-attr-value",matches:function(e,t,n){var r=/^aria-/;if(e.hasAttributes())for(var a=axe.utils.getNodeAttributes(e),o=0,i=a.length;o<i;o++)if(r.test(a[o].name))return!0;return!1},tags:["cat.aria","wcag2a","wcag412"],all:[{options:[],id:"aria-valid-attr-value"},"aria-errormessage"],any:[],none:[]},{id:"aria-valid-attr",matches:function(e,t,n){var r=/^aria-/;if(e.hasAttributes())for(var a=axe.utils.getNodeAttributes(e),o=0,i=a.length;o<i;o++)if(r.test(a[o].name))return!0;return!1},tags:["cat.aria","wcag2a","wcag412"],all:[],any:[{options:[],id:"aria-valid-attr"}],none:[]},{id:"audio-caption",selector:"audio",enabled:!1,excludeHidden:!1,tags:["cat.time-and-media","wcag2a","wcag121","section508","section508.22.a"],all:[],any:[],none:["caption"]},{id:"autocomplete-valid",matches:function(e,t,n){var r=axe.commons,a=r.text,o=r.aria,i=r.dom,u=t.attr("autocomplete");if(!u||""===a.sanitize(u))return!1;var s=t.props.nodeName;if(!1===["textarea","input","select"].includes(s))return!1;if("input"===s&&["submit","reset","button","hidden"].includes(t.props.type))return!1;var l=t.attr("aria-disabled")||"false";if(t.hasAttr("disabled")||"true"===l.toLowerCase())return!1;var c=t.attr("role"),d=t.attr("tabindex");if("-1"===d&&c){var m=o.lookupTable.role[c];if(void 0===m||"widget"!==m.type)return!1}return!("-1"===d&&t.actualNode&&!i.isVisible(t.actualNode,!1)&&!i.isVisible(t.actualNode,!0))},tags:["cat.forms","wcag21aa","wcag135"],all:["autocomplete-valid","autocomplete-appropriate"],any:[],none:[]},{id:"avoid-inline-spacing",selector:"[style]",tags:["wcag21aa","wcag1412"],all:["avoid-inline-spacing"],any:[],none:[]},{id:"blink",selector:"blink",excludeHidden:!1,tags:["cat.time-and-media","wcag2a","wcag222","section508","section508.22.j"],all:[],any:[],none:["is-on-screen"]},{id:"button-name",selector:'button, [role="button"]',tags:["cat.name-role-value","wcag2a","wcag412","section508","section508.22.a"],all:[],any:["button-has-visible-text","aria-label","aria-labelledby","role-presentation","role-none","non-empty-title"],none:[]},{id:"bypass",selector:"html",pageLevel:!0,matches:function(e,t,n){return!!e.querySelector("a[href]")},tags:["cat.keyboard","wcag2a","wcag241","section508","section508.22.o"],all:[],any:["internal-link-present","header-present","landmark"],none:[]},{id:"checkboxgroup",selector:"input[type=checkbox][name]",tags:["cat.forms","best-practice"],all:[],any:["group-labelledby","fieldset"],none:[]},{id:"color-contrast",matches:function(e,t,n){var r=e.nodeName.toUpperCase(),a=e.type;if("true"===e.getAttribute("aria-disabled")||axe.commons.dom.findUpVirtual(t,'[aria-disabled="true"]'))return!1;if("INPUT"===r)return-1===["hidden","range","color","checkbox","radio","image"].indexOf(a)&&!e.disabled;if("SELECT"===r)return!!e.options.length&&!e.disabled;if("TEXTAREA"===r)return!e.disabled;if("OPTION"===r)return!1;if("BUTTON"===r&&e.disabled||axe.commons.dom.findUpVirtual(t,"button[disabled]"))return!1;if("FIELDSET"===r&&e.disabled||axe.commons.dom.findUpVirtual(t,"fieldset[disabled]"))return!1;var o=axe.commons.dom.findUpVirtual(t,"label");if("LABEL"===r||o){var i=e,u=t;o&&(i=o,u=axe.utils.getNodeFromTree(o));var s=axe.commons.dom.getRootNode(i);if((l=i.htmlFor&&s.getElementById(i.htmlFor))&&l.disabled)return!1;if((l=axe.utils.querySelectorAll(u,'input:not([type="hidden"]):not([type="image"]):not([type="button"]):not([type="submit"]):not([type="reset"]), select, textarea')).length&&l[0].actualNode.disabled)return!1}if(e.getAttribute("id")){var l,c=axe.utils.escapeSelector(e.getAttribute("id"));if((l=axe.commons.dom.getRootNode(e).querySelector("[aria-labelledby~="+c+"]"))&&l.disabled)return!1}if(""===axe.commons.text.visibleVirtual(t,!1,!0))return!1;var d,m,p=document.createRange(),f=t.children,h=f.length;for(m=0;m<h;m++)3===(d=f[m]).actualNode.nodeType&&""!==axe.commons.text.sanitize(d.actualNode.nodeValue)&&p.selectNodeContents(d.actualNode);var b=p.getClientRects();for(h=b.length,m=0;m<h;m++)if(axe.commons.dom.visuallyOverlaps(b[m],e))return!0;return!1},excludeHidden:!1,options:{noScroll:!1},tags:["cat.color","wcag2aa","wcag143"],all:[],any:["color-contrast"],none:[]},{id:"css-orientation-lock",selector:"html",tags:["cat.structure","wcag134","wcag21aa","experimental"],all:["css-orientation-lock"],any:[],none:[],preload:!0},{id:"definition-list",selector:"dl",matches:function(e,t,n){return!e.getAttribute("role")},tags:["cat.structure","wcag2a","wcag131"],all:[],any:[],none:["structured-dlitems","only-dlitems"]},{id:"dlitem",selector:"dd, dt",matches:function(e,t,n){return!e.getAttribute("role")},tags:["cat.structure","wcag2a","wcag131"],all:[],any:["dlitem"],none:[]},{id:"document-title",selector:"html",matches:function(e,t,n){return e.ownerDocument.defaultView.self===e.ownerDocument.defaultView.top},tags:["cat.text-alternatives","wcag2a","wcag242"],all:[],any:["doc-has-title"],none:[]},{id:"duplicate-id-active",selector:"[id]",matches:function(e,t,n){var r=axe.commons,a=r.dom,o=r.aria,i=e.getAttribute("id").trim(),u='*[id="'.concat(axe.utils.escapeSelector(i),'"]');return Array.from(a.getRootNode(e).querySelectorAll(u)).some(a.isFocusable)&&!o.isAccessibleRef(e)},excludeHidden:!1,tags:["cat.parsing","wcag2a","wcag411"],all:[],any:["duplicate-id-active"],none:[]},{id:"duplicate-id-aria",selector:"[id]",matches:function(e,t,n){return axe.commons.aria.isAccessibleRef(e)},excludeHidden:!1,tags:["cat.parsing","wcag2a","wcag411"],all:[],any:["duplicate-id-aria"],none:[]},{id:"duplicate-id",selector:"[id]",matches:function(e,t,n){var r=axe.commons,a=r.dom,o=r.aria,i=e.getAttribute("id").trim(),u='*[id="'.concat(axe.utils.escapeSelector(i),'"]');return Array.from(a.getRootNode(e).querySelectorAll(u)).every(function(e){return!a.isFocusable(e)})&&!o.isAccessibleRef(e)},excludeHidden:!1,tags:["cat.parsing","wcag2a","wcag411"],all:[],any:["duplicate-id"],none:[]},{id:"empty-heading",selector:'h1, h2, h3, h4, h5, h6, [role="heading"]',matches:function(e,t,n){var r;return e.hasAttribute("role")&&(r=e.getAttribute("role").split(/\s+/i).filter(axe.commons.aria.isValidRole)),r&&0<r.length?r.includes("heading"):"heading"===axe.commons.aria.implicitRole(e)},tags:["cat.name-role-value","best-practice"],all:[],any:["has-visible-text"],none:[]},{id:"focus-order-semantics",selector:"div, h1, h2, h3, h4, h5, h6, [role=heading], p, span",matches:function(e,t,n){return axe.commons.dom.insertedIntoFocusOrder(e)},tags:["cat.keyboard","best-practice","experimental"],all:[],any:[{options:[],id:"has-widget-role"},{options:[],id:"valid-scrollable-semantics"}],none:[]},{id:"form-field-multiple-labels",selector:"input, select, textarea",matches:function(e,t,n){if("input"!==e.nodeName.toLowerCase()||!1===e.hasAttribute("type"))return!0;var r=e.getAttribute("type").toLowerCase();return!1===["hidden","image","button","submit","reset"].includes(r)},tags:["cat.forms","wcag2a","wcag332"],all:[],any:[],none:["multiple-label"]},{id:"frame-tested",selector:"frame, iframe",tags:["cat.structure","review-item","best-practice"],all:[{options:{isViolation:!1},id:"frame-tested"}],any:[],none:[]},{id:"frame-title-unique",selector:"frame[title], iframe[title]",matches:function(e,t,n){var r=e.getAttribute("title");return!(!r||!axe.commons.text.sanitize(r).trim())},tags:["cat.text-alternatives","best-practice"],all:[],any:[],none:["unique-frame-title"]},{id:"frame-title",selector:"frame, iframe",tags:["cat.text-alternatives","wcag2a","wcag241","wcag412","section508","section508.22.i"],all:[],any:["aria-label","aria-labelledby","non-empty-title","role-presentation","role-none"],none:[]},{id:"heading-order",selector:"h1, h2, h3, h4, h5, h6, [role=heading]",matches:function(e,t,n){var r;return e.hasAttribute("role")&&(r=e.getAttribute("role").split(/\s+/i).filter(axe.commons.aria.isValidRole)),r&&0<r.length?r.includes("heading"):"heading"===axe.commons.aria.implicitRole(e)},tags:["cat.semantics","best-practice"],all:[],any:["heading-order"],none:[]},{id:"hidden-content",selector:"*",excludeHidden:!1,tags:["cat.structure","experimental","review-item","best-practice"],all:[],any:["hidden-content"],none:[]},{id:"html-has-lang",selector:"html",matches:function(e,t,n){return e.ownerDocument.defaultView.self===e.ownerDocument.defaultView.top},tags:["cat.language","wcag2a","wcag311"],all:[],any:["has-lang"],none:[]},{id:"html-lang-valid",selector:"html[lang], html[xml\\:lang]",tags:["cat.language","wcag2a","wcag311"],all:[],any:[],none:["valid-lang"]},{id:"html-xml-lang-mismatch",selector:"html[lang][xml\\:lang]",matches:function(e,t,n){var r=axe.utils.getBaseLang,a=r(e.getAttribute("lang")),o=r(e.getAttribute("xml:lang"));return axe.utils.validLangs().includes(a)&&axe.utils.validLangs().includes(o)},tags:["cat.language","wcag2a","wcag311"],all:["xml-lang-mismatch"],any:[],none:[]},{id:"image-alt",selector:"img",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["has-alt","aria-label","aria-labelledby","non-empty-title","role-presentation","role-none"],none:["alt-space-value"]},{id:"image-redundant-alt",selector:"img",tags:["cat.text-alternatives","best-practice"],all:[],any:[],none:["duplicate-img-label"]},{id:"input-button-name",selector:'input[type="button"], input[type="submit"], input[type="reset"]',tags:["cat.name-role-value","wcag2a","wcag412","section508","section508.22.a"],all:[],any:["non-empty-if-present","non-empty-value","aria-label","aria-labelledby","role-presentation","role-none","non-empty-title"],none:[]},{id:"input-image-alt",selector:'input[type="image"]',tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["non-empty-alt","aria-label","aria-labelledby","non-empty-title"],none:[]},{id:"label-content-name-mismatch",matches:function(e,t,n){var r=axe.commons,a=r.aria,o=r.text,i=a.getRole(e);return!!i&&(!!a.lookupTable.rolesOfType.widget.includes(i)&&(!!a.getRolesWithNameFromContents().includes(i)&&(!(!o.sanitize(a.arialabelText(e))&&!o.sanitize(a.arialabelledbyText(e)))&&!!o.sanitize(o.visibleVirtual(t)))))},tags:["wcag21a","wcag253","experimental"],all:[],any:["label-content-name-mismatch"],none:[]},{id:"label-title-only",selector:"input, select, textarea",matches:function(e,t,n){if("input"!==e.nodeName.toLowerCase()||!1===e.hasAttribute("type"))return!0;var r=e.getAttribute("type").toLowerCase();return!1===["hidden","image","button","submit","reset"].includes(r)},tags:["cat.forms","best-practice"],all:[],any:[],none:["title-only"]},{id:"label",selector:"input, select, textarea",matches:function(e,t,n){if("input"!==e.nodeName.toLowerCase()||!1===e.hasAttribute("type"))return!0;var r=e.getAttribute("type").toLowerCase();return!1===["hidden","image","button","submit","reset"].includes(r)},tags:["cat.forms","wcag2a","wcag332","wcag131","section508","section508.22.n"],all:[],any:["aria-label","aria-labelledby","implicit-label","explicit-label","non-empty-title"],none:["help-same-as-label","hidden-explicit-label"]},{id:"landmark-banner-is-top-level",selector:"header:not([role]), [role=banner]",matches:function(e,t,n){return e.hasAttribute("role")||!axe.commons.dom.findUpVirtual(t,"article, aside, main, nav, section")},tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-complementary-is-top-level",selector:"aside:not([role]), [role=complementary]",tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-contentinfo-is-top-level",selector:"footer:not([role]), [role=contentinfo]",matches:function(e,t,n){return e.hasAttribute("role")||!axe.commons.dom.findUpVirtual(t,"article, aside, main, nav, section")},tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-main-is-top-level",selector:"main:not([role]), [role=main]",tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-no-duplicate-banner",selector:"html",tags:["cat.semantics","best-practice"],all:[],any:[{options:{selector:"header:not([role]), [role=banner]",nativeScopeFilter:"article, aside, main, nav, section"},id:"page-no-duplicate-banner"}],none:[]},{id:"landmark-no-duplicate-contentinfo",selector:"html",tags:["cat.semantics","best-practice"],all:[],any:[{options:{selector:"footer:not([role]), [role=contentinfo]",nativeScopeFilter:"article, aside, main, nav, section"},id:"page-no-duplicate-contentinfo"}],none:[]},{id:"landmark-one-main",selector:"html",tags:["cat.semantics","best-practice"],all:[{options:{selector:"main:not([role]), [role='main']"},id:"page-has-main"},{options:{selector:"main:not([role]), [role='main']"},id:"page-no-duplicate-main"}],any:[],none:[]},{id:"landmark-unique",selector:"[role=banner], [role=complementary], [role=contentinfo], [role=main], [role=navigation], [role=region], [role=search], [role=form], form, footer, header, aside, main, nav, section",tags:["cat.semantics","best-practice"],matches:function(e,t,n){var o=["article","aside","main","nav","section"].join(",");return function(e){var t=e.actualNode,n=axe.commons.aria.getRolesByType("landmark"),r=axe.commons.aria.getRole(t);if(!r)return!1;var a=t.nodeName.toUpperCase();return"HEADER"===a||"FOOTER"===a?function(e){return!axe.commons.dom.findUpVirtual(e,o)}(e):"SECTION"!==a&&"FORM"!==a?0<=n.indexOf(r)||"region"===r:!!axe.commons.text.accessibleTextVirtual(e)}(t)&&axe.commons.dom.isVisible(e,!0)},all:[],any:["landmark-is-unique"],none:[]},{id:"layout-table",selector:"table",matches:function(e,t,n){var r=(e.getAttribute("role")||"").toLowerCase();return!(("presentation"===r||"none"===r)&&!axe.commons.dom.isFocusable(e)||axe.commons.table.isDataTable(e))},tags:["cat.semantics","wcag2a","wcag131"],all:[],any:[],none:["has-th","has-caption","has-summary"]},{id:"link-in-text-block",selector:"a[href], [role=link]",matches:function(e,t,n){var r=axe.commons.text.sanitize(e.textContent),a=e.getAttribute("role");return(!a||"link"===a)&&(!!r&&(!!axe.commons.dom.isVisible(e,!1)&&axe.commons.dom.isInTextBlock(e)))},excludeHidden:!1,tags:["cat.color","experimental","wcag2a","wcag141"],all:["link-in-text-block"],any:[],none:[]},{id:"link-name",selector:"a[href], [role=link][href]",matches:function(e,t,n){return"button"!==e.getAttribute("role")},tags:["cat.name-role-value","wcag2a","wcag412","wcag244","section508","section508.22.a"],all:[],any:["has-visible-text","aria-label","aria-labelledby","role-presentation","role-none"],none:["focusable-no-name"]},{id:"list",selector:"ul, ol",matches:function(e,t,n){return!e.getAttribute("role")},tags:["cat.structure","wcag2a","wcag131"],all:[],any:[],none:["only-listitems"]},{id:"listitem",selector:"li",matches:function(e,t,n){return!e.getAttribute("role")},tags:["cat.structure","wcag2a","wcag131"],all:[],any:["listitem"],none:[]},{id:"marquee",selector:"marquee",excludeHidden:!1,tags:["cat.parsing","wcag2a","wcag222"],all:[],any:[],none:["is-on-screen"]},{id:"meta-refresh",selector:'meta[http-equiv="refresh"]',excludeHidden:!1,tags:["cat.time","wcag2a","wcag2aaa","wcag221","wcag224","wcag325"],all:[],any:["meta-refresh"],none:[]},{id:"meta-viewport-large",selector:'meta[name="viewport"]',excludeHidden:!1,tags:["cat.sensory-and-visual-cues","best-practice"],all:[],any:[{options:{scaleMinimum:5,lowerBound:2},id:"meta-viewport-large"}],none:[]},{id:"meta-viewport",selector:'meta[name="viewport"]',excludeHidden:!1,tags:["cat.sensory-and-visual-cues","wcag2aa","wcag144"],all:[],any:[{options:{scaleMinimum:2},id:"meta-viewport"}],none:[]},{id:"object-alt",selector:"object",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["has-visible-text","aria-label","aria-labelledby","non-empty-title","role-presentation","role-none"],none:[]},{id:"p-as-heading",selector:"p",matches:function(e,t,n){var r=Array.from(e.parentNode.childNodes),a=e.textContent.trim();return!(0===a.length||2<=(a.match(/[.!?:;](?![.!?:;])/g)||[]).length)&&0!==r.slice(r.indexOf(e)+1).filter(function(e){return"P"===e.nodeName.toUpperCase()&&""!==e.textContent.trim()}).length},tags:["cat.semantics","wcag2a","wcag131","experimental"],all:[{options:{margins:[{weight:150,italic:!0},{weight:150,size:1.15},{italic:!0,size:1.15},{size:1.4}]},id:"p-as-heading"}],any:[],none:[]},{id:"page-has-heading-one",selector:"html",tags:["cat.semantics","best-practice"],all:[{options:{selector:'h1:not([role]), [role="heading"][aria-level="1"]'},id:"page-has-heading-one"}],any:[],none:[]},{id:"radiogroup",selector:"input[type=radio][name]",tags:["cat.forms","best-practice"],all:[],any:["group-labelledby","fieldset"],none:[]},{id:"region",selector:"html",pageLevel:!0,tags:["cat.keyboard","best-practice"],all:[],any:["region"],none:[]},{id:"role-img-alt",selector:"[role='img']:not(svg):not(img):not(area):not(input):not(object)",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["aria-label","aria-labelledby","non-empty-title"],none:[]},{id:"scope-attr-valid",selector:"td[scope], th[scope]",tags:["cat.tables","best-practice"],all:["html5-scope","scope-value"],any:[],none:[]},{id:"scrollable-region-focusable",matches:function(e,t,n){var r=axe.utils.querySelectorAll,a=axe.commons.dom.hasContentVirtual;return!1!=!!axe.utils.getScroll(e,13)&&!!r(t,"*").some(function(e){return a(e,!0,!0)})},tags:["wcag2a","wcag211"],all:[],any:["focusable-content","focusable-element"],none:[]},{id:"server-side-image-map",selector:"img[ismap]",tags:["cat.text-alternatives","wcag2a","wcag211","section508","section508.22.f"],all:[],any:[],none:["exists"]},{id:"skip-link",selector:'a[href^="#"], a[href^="/#"]',matches:function(e,t,n){return axe.commons.dom.isSkipLink(e)},tags:["cat.keyboard","best-practice"],all:[],any:["skip-link"],none:[]},{id:"tabindex",selector:"[tabindex]",tags:["cat.keyboard","best-practice"],all:[],any:["tabindex"],none:[]},{id:"table-duplicate-name",selector:"table",tags:["cat.tables","best-practice"],all:[],any:[],none:["same-caption-summary"]},{id:"table-fake-caption",selector:"table",matches:function(e,t,n){return axe.commons.table.isDataTable(e)},tags:["cat.tables","experimental","wcag2a","wcag131","section508","section508.22.g"],all:["caption-faked"],any:[],none:[]},{id:"td-has-header",selector:"table",matches:function(e,t,n){if(axe.commons.table.isDataTable(e)){var r=axe.commons.table.toArray(e);return 3<=r.length&&3<=r[0].length&&3<=r[1].length&&3<=r[2].length}return!1},tags:["cat.tables","experimental","wcag2a","wcag131","section508","section508.22.g"],all:["td-has-header"],any:[],none:[]},{id:"td-headers-attr",selector:"table",tags:["cat.tables","wcag2a","wcag131","section508","section508.22.g"],all:["td-headers-attr"],any:[],none:[]},{id:"th-has-data-cells",selector:"table",matches:function(e,t,n){return axe.commons.table.isDataTable(e)},tags:["cat.tables","wcag2a","wcag131","section508","section508.22.g"],all:["th-has-data-cells"],any:[],none:[]},{id:"valid-lang",selector:"[lang], [xml\\:lang]",matches:function(e,t,n){return"html"!==e.nodeName.toLowerCase()},tags:["cat.language","wcag2aa","wcag312"],all:[],any:[],none:["valid-lang"]},{id:"video-caption",selector:"video",excludeHidden:!1,tags:["cat.text-alternatives","wcag2a","wcag122","section508","section508.22.a"],all:[],any:[],none:["caption"]},{id:"video-description",selector:"video",excludeHidden:!1,tags:["cat.text-alternatives","wcag2aa","wcag125","section508","section508.22.b"],all:[],any:[],none:["description"]}],checks:[{id:"abstractrole",evaluate:function(e,t,n,r){return"abstract"===axe.commons.aria.getRoleType(e.getAttribute("role"))}},{id:"aria-allowed-attr",evaluate:function(e,t,n,r){t=t||{};var a,o,i,u=[],s=e.getAttribute("role"),l=axe.utils.getNodeAttributes(e);if(s=s||axe.commons.aria.implicitRole(e),i=axe.commons.aria.allowedAttr(s),Array.isArray(t[s])&&(i=axe.utils.uniqueArray(t[s].concat(i))),s&&i)for(var c=0,d=l.length;c<d;c++)o=(a=l[c]).name,axe.commons.aria.validateAttr(o)&&!i.includes(o)&&u.push(o+'="'+a.nodeValue+'"');return!u.length||(this.data(u),!1)}},{id:"aria-allowed-role",evaluate:function(e,t,n,r){var a=axe.commons.dom,o=t||{},i=o.allowImplicit,u=void 0===i||i,s=o.ignoredTags,l=void 0===s?[]:s,c=e.nodeName.toUpperCase();if(l.map(function(e){return e.toUpperCase()}).includes(c))return!0;var d=axe.commons.aria.getElementUnallowedRoles(e,u);if(d.length){if(this.data(d),!a.isVisible(e,!0))return;return!1}return!0},options:{allowImplicit:!0,ignoredTags:[]}},{id:"aria-hidden-body",evaluate:function(e,t,n,r){return"true"!==e.getAttribute("aria-hidden")}},{id:"aria-errormessage",evaluate:function(n,e,t,r){var a=axe.commons,o=a.aria,i=a.dom;e=Array.isArray(e)?e:[];var u=n.getAttribute("aria-errormessage"),s=n.hasAttribute("aria-errormessage"),l=i.getRootNode(n);return!(-1===e.indexOf(u)&&s&&!function(e){if(""===e.trim())return o.lookupTable.attributes["aria-errormessage"].allowEmpty;var t=e&&l.getElementById(e);return t?"alert"===t.getAttribute("role")||"assertive"===t.getAttribute("aria-live")||-1<axe.utils.tokenList(n.getAttribute("aria-describedby")||"").indexOf(e):void 0}(u))||(this.data(axe.utils.tokenList(u)),!1)}},{id:"has-widget-role",evaluate:function(e,t,n,r){var a=e.getAttribute("role");if(null===a)return!1;var o=axe.commons.aria.getRoleType(a);return"widget"===o||"composite"===o},options:[]},{id:"implicit-role-fallback",evaluate:function(e,t,n,r){var a=e.getAttribute("role");if(null===a||!axe.commons.aria.isValidRole(a))return!0;var o=axe.commons.aria.getRoleType(a);return axe.commons.aria.implicitRole(e)===o}},{id:"invalidrole",evaluate:function(e,t,n,r){return!axe.commons.aria.isValidRole(e.getAttribute("role"),{allowAbstract:!0})}},{id:"no-implicit-explicit-label",evaluate:function(e,t,n,r){var a=axe.commons,o=a.aria,i=a.text,u=o.getRole(e,{noImplicit:!0});this.data(u);var s=i.sanitize(i.labelText(n)).toLowerCase(),l=i.sanitize(i.accessibleText(e)).toLowerCase();return!(!l&&!s)&&(!((l||!s)&&l.includes(s))&&void 0)}},{id:"aria-required-attr",evaluate:function(e,t,n,r){t=t||{};var a=[],o=axe.commons.forms,i=o.isNativeTextbox,u=o.isNativeSelect,s=o.isAriaTextbox,l=o.isAriaListbox,c=o.isAriaCombobox,d=o.isAriaRange,m={"aria-valuenow":function(){return!(i(e)||u(e)||s(e)||l(e)||c(e)||d(e)&&e.hasAttribute("aria-valuenow"))}};if(e.hasAttributes()){var p=e.getAttribute("role"),f=axe.commons.aria.requiredAttr(p);if(Array.isArray(t[p])&&(f=axe.utils.uniqueArray(t[p],f)),p&&f)for(var h=0,b=f.length;h<b;h++){var g=f[h];e.getAttribute(g)||m[g]&&!m[g]()||a.push(g)}}return!a.length||(this.data(a),!1)}},{id:"aria-required-children",evaluate:function(e,t,m,n){var r=axe.commons.aria.requiredOwned,i=axe.commons.aria.implicitNodes,u=axe.utils.matchesSelector,p=axe.commons.dom.idrefs,a=t&&Array.isArray(t.reviewEmpty)?t.reviewEmpty:[];function f(e,t,n,r){if(null===e)return!1;var a=i(n),o=['[role="'+n+'"]'];return a&&(o=o.concat(a)),o=o.join(","),r&&u(e,o)||!!axe.utils.querySelectorAll(t,o)[0]}function h(e,t){var n,r;for(n=0,r=e.length;n<r;n++)if(null!==e[n]){var a=axe.utils.getNodeFromTree(e[n]);if(f(e[n],a,t,!0))return!0}return!1}var o=e.getAttribute("role"),s=r(o);if(!s)return!0;var l=!1,c=s.one;if(!c){l=!0;c=s.all}var d=function(e,t,n,r){var a,o=t.length,i=[],u=p(e,"aria-owns");for(a=0;a<o;a++){var s=t[a];if(f(e,m,s)||h(u,s)){if(!n)return null}else n&&i.push(s)}if("combobox"===r){var l=i.indexOf("textbox");0<=l&&"INPUT"===e.nodeName.toUpperCase()&&["text","search","email","url","tel"].includes(e.type)&&i.splice(l,1);var c=i.indexOf("listbox"),d=e.getAttribute("aria-expanded");0<=c&&(!d||"false"===d)&&i.splice(c,1)}return i.length?i:!n&&t.length?t:null}(e,c,l,o);return!d||(this.data(d),!(!a.includes(o)||0!==e.children.length||0!==p(e,"aria-owns").length)&&void 0)},options:{reviewEmpty:["doc-bibliography","doc-endnotes","grid","list","listbox","table","tablist","tree","treegrid","rowgroup"]}},{id:"aria-required-parent",evaluate:function(e,t,n,r){function u(e){return(axe.commons.aria.implicitNodes(e)||[]).concat('[role="'+e+'"]').join(",")}function a(e,t,n){var r,a,o=e.actualNode.getAttribute("role"),i=[];if(!(t=t||axe.commons.aria.requiredContext(o)))return null;for(r=0,a=t.length;r<a;r++){if(n&&axe.utils.matchesSelector(e.actualNode,u(t[r])))return null;if(axe.commons.dom.findUpVirtual(e,u(t[r])))return null;i.push(t[r])}return i}var o=a(n);if(!o)return!0;var i=function(e){for(var t=[],n=null;e;){if(e.getAttribute("id")){var r=axe.utils.escapeSelector(e.getAttribute("id"));(n=axe.commons.dom.getRootNode(e).querySelector("[aria-owns~=".concat(r,"]")))&&t.push(n)}e=e.parentElement}return t.length?t:null}(e);if(i)for(var s=0,l=i.length;s<l;s++)if(!(o=a(axe.utils.getNodeFromTree(i[s]),o,!0)))return!0;return this.data(o),!1}},{id:"aria-unsupported-attr",evaluate:function(o,e,t,n){var i=o.nodeName.toUpperCase(),u=axe.commons.aria.lookupTable,s=axe.commons.aria.getRole(o),r=Array.from(axe.utils.getNodeAttributes(o)).filter(function(e){var t=e.name,n=u.attributes[t];if(!axe.commons.aria.validateAttr(t))return!1;var r=n.unsupported;if("object"!==S(r))return!!r;var a=axe.commons.matches(o,r.exceptions);return Object.keys(u.evaluateRoleForElement).includes(i)?!u.evaluateRoleForElement[i]({node:o,role:s,out:a}):!a}).map(function(e){return e.name.toString()});return!!r.length&&(this.data(r),!0)}},{id:"unsupportedrole",evaluate:function(e,t,n,r){return axe.commons.aria.isUnsupportedRole(axe.commons.aria.getRole(e))}},{id:"aria-valid-attr-value",evaluate:function(e,t,n,r){t=Array.isArray(t)?t:[];for(var a=[],o=[],i=/^aria-/,u=axe.utils.getNodeAttributes(e),s=["aria-errormessage"],l={"aria-controls":function(){return"false"!==e.getAttribute("aria-expanded")&&"false"!==e.getAttribute("aria-selected")},"aria-owns":function(){return"false"!==e.getAttribute("aria-expanded")},"aria-describedby":function(){axe.commons.aria.validateAttrValue(e,"aria-describedby")||a.push('aria-describedby="'.concat(e.getAttribute("aria-describedby"),'"'))}},c=0,d=u.length;c<d;c++){var m=u[c],p=m.name;s.includes(p)||-1!==t.indexOf(p)||!i.test(p)||l[p]&&!l[p]()||axe.commons.aria.validateAttrValue(e,p)||o.push("".concat(p,'="').concat(m.nodeValue,'"'))}if(!a.length)return!o.length||(this.data(o),!1);this.data(a)},options:[]},{id:"aria-valid-attr",evaluate:function(e,t,n,r){t=Array.isArray(t)?t:[];for(var a,o=[],i=/^aria-/,u=axe.utils.getNodeAttributes(e),s=0,l=u.length;s<l;s++)a=u[s].name,-1===t.indexOf(a)&&i.test(a)&&!axe.commons.aria.validateAttr(a)&&o.push(a);return!o.length||(this.data(o),!1)},options:[]},{id:"valid-scrollable-semantics",evaluate:function(e,t,n,r){var a,o,i,u={ARTICLE:!0,ASIDE:!0,NAV:!0,SECTION:!0},s={application:!0,banner:!1,complementary:!0,contentinfo:!0,form:!0,main:!0,navigation:!0,region:!0,search:!1};return(o=(i=e).getAttribute("role"))&&s[o.toLowerCase()]||!1||(a=i.nodeName.toUpperCase(),u[a]||!1)},options:[]},{id:"color-contrast",evaluate:function(e,t,n,r){var a=axe.commons,o=a.dom,i=a.color,u=a.text;if(!o.isVisible(e,!1))return!0;var s,l=!!(t||{}).noScroll,c=[],d=i.getBackgroundColor(e,c,l),m=i.getForegroundColor(e,l),p=window.getComputedStyle(e),f=parseFloat(p.getPropertyValue("font-size")),h=p.getPropertyValue("font-weight"),b=-1!==["bold","bolder","600","700","800","900"].indexOf(h),g=i.hasValidContrastRatio(d,m,f,b),y=Math.floor(100*g.contrastRatio)/100;null===d&&(s=i.incompleteData.get("bgColor"));var v=1==y,D=1===u.visibleVirtual(n,!1,!0).length;v?s=i.incompleteData.set("bgColor","equalRatio"):D&&(s="shortTextContent");var w={fgColor:m?m.toHexString():void 0,bgColor:d?d.toHexString():void 0,contrastRatio:g?y:void 0,fontSize:"".concat((72*f/96).toFixed(1),"pt (").concat(f,"px)"),fontWeight:b?"bold":"normal",missingData:s,expectedContrastRatio:g.expectedContrastRatio+":1"};return this.data(w),null===m||null===d||v||D&&!g.isValid?(s=null,i.incompleteData.clear(),void this.relatedNodes(c)):(g.isValid||this.relatedNodes(c),g.isValid)}},{id:"link-in-text-block",evaluate:function(e,t,n,r){var a=axe.commons,o=a.color,i=a.dom;function u(e,t){var n=e.getRelativeLuminance(),r=t.getRelativeLuminance();return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}var s=["block","list-item","table","flex","grid","inline-block"];function l(e){var t=window.getComputedStyle(e).getPropertyValue("display");return-1!==s.indexOf(t)||"table-"===t.substr(0,6)}if(l(e))return!1;for(var c,d,m=i.getComposedParent(e);1===m.nodeType&&!l(m);)m=i.getComposedParent(m);if(this.relatedNodes([m]),o.elementIsDistinct(e,m))return!0;if(c=o.getForegroundColor(e),d=o.getForegroundColor(m),c&&d){var p,f=u(c,d);return 1===f||(3<=f?(axe.commons.color.incompleteData.set("fgColor","bgContrast"),this.data({missingData:axe.commons.color.incompleteData.get("fgColor")}),void axe.commons.color.incompleteData.clear()):(c=o.getBackgroundColor(e),d=o.getBackgroundColor(m),(!c||!d||3<=u(c,d))&&(p=c&&d?"bgContrast":axe.commons.color.incompleteData.get("bgColor"),axe.commons.color.incompleteData.set("fgColor",p),this.data({missingData:axe.commons.color.incompleteData.get("fgColor")}),void axe.commons.color.incompleteData.clear())))}}},{id:"autocomplete-appropriate",evaluate:function(e,t,n,r){if("input"!==n.props.nodeName)return!0;var a=["text","search","number"],o=["text","search","url"],i={bday:["text","search","date"],email:["text","search","email"],"cc-exp":["text","search","month"],"street-address":["text"],tel:["text","search","tel"],"cc-exp-month":a,"cc-exp-year":a,"transaction-amount":a,"bday-day":a,"bday-month":a,"bday-year":a,"new-password":["text","search","password"],"current-password":["text","search","password"],url:o,photo:o,impp:o};"object"===S(t)&&Object.keys(t).forEach(function(e){i[e]||(i[e]=[]),i[e]=i[e].concat(t[e])});var u=n.attr("autocomplete").split(/\s+/g).map(function(e){return e.toLowerCase()}),s=u[u.length-1];if(axe.commons.text.autocomplete.stateTerms.includes(s))return!0;var l=i[s],c=n.hasAttr("type")?axe.commons.text.sanitize(n.attr("type")).toLowerCase():"text";return c=axe.utils.validInputTypes().includes(c)?c:"text",void 0===l?"text"===c:l.includes(c)}},{id:"autocomplete-valid",evaluate:function(e,t,n,r){var a=n.attr("autocomplete")||"";return axe.commons.text.isValidAutocomplete(a,t)}},{id:"fieldset",evaluate:function(e,t,n,r){var o,i=this;function u(e,t){return axe.utils.toArray(e.querySelectorAll('select,textarea,button,input:not([name="'+t+'"]):not([type="hidden"])'))}var a={name:e.getAttribute("name"),type:e.getAttribute("type")},s=function(e){var t=axe.utils.escapeSelector(e.actualNode.name),n=axe.commons.dom.getRootNode(e.actualNode).querySelectorAll('input[type="'+axe.utils.escapeSelector(e.actualNode.type)+'"][name="'+t+'"]');if(n.length<2)return!0;var r=axe.commons.dom.findUpVirtual(e,"fieldset"),a=axe.commons.dom.findUpVirtual(e,'[role="group"]'+("radio"===e.actualNode.type?',[role="radiogroup"]':""));return a||r?r?function(e,t){var n=e.firstElementChild;if(!n||"LEGEND"!==n.nodeName.toUpperCase())return i.relatedNodes([e]),!(o="no-legend");if(!axe.commons.text.accessibleText(n))return i.relatedNodes([n]),!(o="empty-legend");var r=u(e,t);return!r.length||(i.relatedNodes(r),!(o="mixed-inputs"))}(r,t):function(e,t){var n=axe.commons.dom.idrefs(e,"aria-labelledby").some(function(e){return e&&axe.commons.text.accessibleText(e)}),r=e.getAttribute("aria-label");if(!(n||r&&axe.commons.text.sanitize(r)))return i.relatedNodes(e),!(o="no-group-label");var a=u(e,t);return!a.length||(i.relatedNodes(a),!(o="group-mixed-inputs"))}(a,t):(o="no-group",i.relatedNodes(function(e,t){return axe.utils.toArray(e).filter(function(e){return e!==t})}(n,e.actualNode)),!1)}(n);return s||(a.failureCode=o),this.data(a),s},after:function(e,t){var r={};return e.filter(function(e){if(e.result)return!0;var t=e.data;if(t){if(r[t.type]=r[t.type]||{},!r[t.type][t.name])return r[t.type][t.name]=[t],!0;var n=r[t.type][t.name].some(function(e){return e.failureCode===t.failureCode});return n||r[t.type][t.name].push(t),!n}return!1})}},{id:"group-labelledby",evaluate:function(n,e,t,r){var a=axe.commons,o=a.dom,i=a.text,u=axe.utils.escapeSelector(n.type),s=axe.utils.escapeSelector(n.name),l=o.getRootNode(n),c={name:n.name,type:n.type},d=Array.from(l.querySelectorAll('input[type="'.concat(u,'"][name="').concat(s,'"]')));if(d.length<=1)return this.data(c),!0;var m=o.idrefs(n,"aria-labelledby").filter(function(e){return!!e}),p=m.slice();d.forEach(function(e){if(e!==n){var t=o.idrefs(e,"aria-labelledby").filter(function(e){return e});m=m.filter(function(e){return t.includes(e)}),p=p.filter(function(e){return!t.includes(e)})}});var f={inLabelledByContext:!0};return p=p.filter(function(e){return i.accessibleText(e,f)}),m=m.filter(function(e){return i.accessibleText(e,f)}),0<p.length&&0<m.length?(this.data(c),!0):(0<p.length&&0===m.length?c.failureCode="no-shared-label":0===p.length&&0<m.length&&(c.failureCode="no-unique-label"),this.data(c),!1)},after:function(e,t){var n={};return e.filter(function(e){var t=e.data;return!(!t||(n[t.type]=n[t.type]||{},n[t.type][t.name]))&&(n[t.type][t.name]=!0)})}},{id:"accesskeys",evaluate:function(e,t,n,r){return axe.commons.dom.isVisible(e,!1)&&(this.data(e.getAttribute("accesskey")),this.relatedNodes([e])),!0},after:function(e,t){var n={};return e.filter(function(e){if(!e.data)return!1;var t=e.data.toUpperCase();return n[t]?(n[t].relatedNodes.push(e.relatedNodes[0]),!1):((n[t]=e).relatedNodes=[],!0)}).map(function(e){return e.result=!!e.relatedNodes.length,e})}},{id:"focusable-content",evaluate:function(e,t,n,r){var a=n.tabbableElements;return!!a&&0<a.filter(function(e){return e!==n}).length}},{id:"focusable-disabled",evaluate:function(e,t,n,r){var a=["BUTTON","FIELDSET","INPUT","SELECT","TEXTAREA"],o=n.tabbableElements;if(!o||!o.length)return!0;var i=o.reduce(function(e,t){var n=t.actualNode,r=n.nodeName.toUpperCase();return a.includes(r)&&e.push(n),e},[]);return this.relatedNodes(i),0===i.length}},{id:"focusable-element",evaluate:function(e,t,n,r){var a=n.isFocusable,o=parseInt(n.actualNode.getAttribute("tabindex"),10);return(o=isNaN(o)?null:o)?a&&0<=o:a}},{id:"focusable-no-name",evaluate:function(e,t,n,r){var a=e.getAttribute("tabindex");return!!(axe.commons.dom.isFocusable(e)&&-1<a)&&!axe.commons.text.accessibleTextVirtual(n)}},{id:"focusable-not-tabbable",evaluate:function(e,t,n,r){var a=["BUTTON","FIELDSET","INPUT","SELECT","TEXTAREA"],o=n.tabbableElements;if(!o||!o.length)return!0;var i=o.reduce(function(e,t){var n=t.actualNode,r=n.nodeName.toUpperCase();return a.includes(r)||e.push(n),e},[]);return this.relatedNodes(i),0===i.length}},{id:"landmark-is-top-level",evaluate:function(e,t,n,r){var a=axe.commons.aria.getRolesByType("landmark"),o=axe.commons.dom.getComposedParent(e);for(this.data({role:e.getAttribute("role")||axe.commons.aria.implicitRole(e)});o;){var i=o.getAttribute("role");if(i||"FORM"===o.nodeName.toUpperCase()||(i=axe.commons.aria.implicitRole(o)),i&&a.includes(i))return!1;o=axe.commons.dom.getComposedParent(o)}return!0}},{id:"page-has-heading-one",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return this.relatedNodes(a.map(function(e){return e.actualNode})),0<a.length},after:function(e,t){return e.some(function(e){return!0===e.result})&&e.forEach(function(e){e.result=!0}),e},options:{selector:'h1:not([role]), [role="heading"][aria-level="1"]'}},{id:"page-has-main",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return this.relatedNodes(a.map(function(e){return e.actualNode})),0<a.length},after:function(e,t){return e.some(function(e){return!0===e.result})&&e.forEach(function(e){e.result=!0}),e},options:{selector:"main:not([role]), [role='main']"}},{id:"page-no-duplicate-banner",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return"string"==typeof t.nativeScopeFilter&&(a=a.filter(function(e){return e.actualNode.hasAttribute("role")||!axe.commons.dom.findUpVirtual(e,t.nativeScopeFilter)})),this.relatedNodes(a.map(function(e){return e.actualNode})),a.length<=1},options:{selector:"header:not([role]), [role=banner]",nativeScopeFilter:"article, aside, main, nav, section"}},{id:"page-no-duplicate-contentinfo",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return"string"==typeof t.nativeScopeFilter&&(a=a.filter(function(e){return e.actualNode.hasAttribute("role")||!axe.commons.dom.findUpVirtual(e,t.nativeScopeFilter)})),this.relatedNodes(a.map(function(e){return e.actualNode})),a.length<=1},options:{selector:"footer:not([role]), [role=contentinfo]",nativeScopeFilter:"article, aside, main, nav, section"}},{id:"page-no-duplicate-main",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return"string"==typeof t.nativeScopeFilter&&(a=a.filter(function(e){return e.actualNode.hasAttribute("role")||!axe.commons.dom.findUpVirtual(e,t.nativeScopeFilter)})),this.relatedNodes(a.map(function(e){return e.actualNode})),a.length<=1},options:{selector:"main:not([role]), [role='main']"}},{id:"tabindex",evaluate:function(e,t,n,r){return e.tabIndex<=0}},{id:"alt-space-value",evaluate:function(e,t,n,r){var a=/^\s+$/.test(e.getAttribute("alt"));return e.hasAttribute("alt")&&a}},{id:"duplicate-img-label",evaluate:function(e,t,n,r){var a=axe.commons,o=a.aria,i=a.text,u=a.dom;if(["none","presentation"].includes(o.getRole(e)))return!1;var s=u.findUpVirtual(n,'button, [role="button"], a[href], p, li, td, th');if(!s)return!1;var l=axe.utils.getNodeFromTree(s),c=i.visibleVirtual(l,!0).toLowerCase();return""!==c&&c===i.accessibleTextVirtual(n).toLowerCase()}},{id:"explicit-label",evaluate:function(e,t,n,r){if(e.getAttribute("id")){var a=axe.commons.dom.getRootNode(e),o=axe.utils.escapeSelector(e.getAttribute("id")),i=a.querySelector('label[for="'.concat(o,'"]'));if(i)return!axe.commons.dom.isVisible(i)||!!axe.commons.text.accessibleText(i)}return!1}},{id:"help-same-as-label",evaluate:function(e,t,n,r){var a=axe.commons.text.labelVirtual(n),o=e.getAttribute("title");if(!a)return!1;o||(o="",e.getAttribute("aria-describedby")&&(o=axe.commons.dom.idrefs(e,"aria-describedby").map(function(e){return e?axe.commons.text.accessibleText(e):""}).join("")));return axe.commons.text.sanitize(o)===axe.commons.text.sanitize(a)},enabled:!1},{id:"hidden-explicit-label",evaluate:function(e,t,n,r){if(e.getAttribute("id")){var a=axe.commons.dom.getRootNode(e),o=axe.utils.escapeSelector(e.getAttribute("id")),i=a.querySelector('label[for="'.concat(o,'"]'));if(i&&!axe.commons.dom.isVisible(i,!0))return""===axe.commons.text.accessibleTextVirtual(n).trim()}return!1}},{id:"implicit-label",evaluate:function(e,t,n,r){var a=axe.commons,o=a.dom,i=a.text,u=o.findUpVirtual(n,"label");return!!u&&!!i.accessibleText(u,{inControlContext:!0})}},{id:"label-content-name-mismatch",evaluate:function(e,t,n,r){var a=axe.commons.text,o=a.accessibleText(e).toLowerCase();if(!(a.isHumanInterpretable(o)<1)){var i=a.sanitize(a.visibleVirtual(n)).toLowerCase();return a.isHumanInterpretable(i)<1?!!u(i,o)||void 0:u(i,o)}function u(e,t){var n=s(t),r=s(e);return!(!n||!r)&&n.includes(r)}function s(e){var t=a.removeUnicode(e,{emoji:!0,nonBmp:!0,punctuations:!0});return a.sanitize(t)}}},{id:"multiple-label",evaluate:function(e,t,n,r){var a=axe.utils.escapeSelector(e.getAttribute("id")),o=e.parentNode,i=axe.commons.dom.getRootNode(e);i=i.documentElement||i;var u=Array.from(i.querySelectorAll('label[for="'.concat(a,'"]')));for(u.length&&(u=u.filter(function(e){return axe.commons.dom.isVisible(e)}));o;)"LABEL"===o.nodeName.toUpperCase()&&-1===u.indexOf(o)&&u.push(o),o=o.parentNode;if(this.relatedNodes(u),1<u.length){var s=u.filter(function(e){return axe.commons.dom.isVisible(e,!0)});return 1<s.length||!axe.commons.dom.idrefs(e,"aria-labelledby").includes(s[0])}return!1}},{id:"title-only",evaluate:function(e,t,n,r){return!(axe.commons.text.labelVirtual(n)||!e.getAttribute("title")&&!e.getAttribute("aria-describedby"))}},{id:"landmark-is-unique",evaluate:function(e,t,n,r){var a=axe.commons.aria.getRole(e),o=axe.commons.text.accessibleTextVirtual(n);return o=o?o.toLowerCase():null,this.data({role:a,accessibleText:o}),this.relatedNodes([e]),!0},after:function(e,t){var n=[];return e.filter(function(t){var e=n.find(function(e){return t.data.role===e.data.role&&t.data.accessibleText===e.data.accessibleText});return e?(e.result=!1,e.relatedNodes.push(t.relatedNodes[0]),!1):(n.push(t),t.relatedNodes=[],!0)})}},{id:"has-lang",evaluate:function(e,t,n,r){return!!(e.getAttribute("lang")||e.getAttribute("xml:lang")||"").trim()}},{id:"valid-lang",evaluate:function(a,e,t,n){var o,r;return o=(e||axe.utils.validLangs()).map(axe.utils.getBaseLang),!!(r=["lang","xml:lang"].reduce(function(e,t){var n=a.getAttribute(t);if("string"!=typeof n)return e;var r=axe.utils.getBaseLang(n);return""!==r&&-1===o.indexOf(r)&&e.push(t+'="'+a.getAttribute(t)+'"'),e},[])).length&&(this.data(r),!0)}},{id:"xml-lang-mismatch",evaluate:function(e,t,n,r){var a=axe.utils.getBaseLang;return a(e.getAttribute("lang"))===a(e.getAttribute("xml:lang"))}},{id:"dlitem",evaluate:function(e,t,n,r){var a=axe.commons.dom.getComposedParent(e),o=a.nodeName.toUpperCase(),i=axe.commons.aria.getRole(a,{noImplicit:!0});return"DIV"===o&&["presentation","none",null].includes(i)&&(o=(a=axe.commons.dom.getComposedParent(a)).nodeName.toUpperCase(),i=axe.commons.aria.getRole(a,{noImplicit:!0})),"DL"===o&&(!i||"list"===i)}},{id:"listitem",evaluate:function(e,t,n,r){var a=axe.commons.dom.getComposedParent(e);if(a){var o=a.nodeName.toUpperCase(),i=(a.getAttribute("role")||"").toLowerCase();return"list"===i||(!i||!axe.commons.aria.isValidRole(i))&&["UL","OL"].includes(o)}}},{id:"only-dlitems",evaluate:function(e,t,n,r){var a=axe.commons,o=a.dom,i=a.aria,u=["definition","term","list"],s=n.children.reduce(function(e,t){var n=t.actualNode;return"DIV"===n.nodeName.toUpperCase()&&null===i.getRole(n)?e.concat(t.children):e.concat(t)},[]).reduce(function(e,t){var n=t.actualNode,r=n.nodeName.toUpperCase();if(1===n.nodeType&&o.isVisible(n,!0,!1)){var a=i.getRole(n,{noImplicit:!0});("DT"!==r&&"DD"!==r||a)&&(u.includes(a)||e.badNodes.push(n))}else 3===n.nodeType&&""!==n.nodeValue.trim()&&(e.hasNonEmptyTextNode=!0);return e},{badNodes:[],hasNonEmptyTextNode:!1});return s.badNodes.length&&this.relatedNodes(s.badNodes),!!s.badNodes.length||s.hasNonEmptyTextNode}},{id:"only-listitems",evaluate:function(e,t,n,r){var o=axe.commons.dom,a=n.children.reduce(function(e,t){var n=t.actualNode,r=n.nodeName.toUpperCase();if(1===n.nodeType&&o.isVisible(n,!0,!1)){var a=function(e,t){return"listitem"===e||"LI"===t&&!e}((n.getAttribute("role")||"").toLowerCase(),r);e.hasListItem=function(e,t,n){return e||"LI"===t&&n||n}(e.hasListItem,r,a),a&&(e.isEmpty=!1),"LI"!==r||a||e.liItemsWithRole++,"LI"===r||a||e.badNodes.push(n)}return 3===n.nodeType&&""!==n.nodeValue.trim()&&(e.hasNonEmptyTextNode=!0),e},{badNodes:[],isEmpty:!0,hasNonEmptyTextNode:!1,hasListItem:!1,liItemsWithRole:0}),i=n.children.filter(function(e){return"LI"===e.actualNode.nodeName.toUpperCase()}),u=0<a.liItemsWithRole&&i.length===a.liItemsWithRole;return a.badNodes.length&&this.relatedNodes(a.badNodes),!(a.hasListItem||a.isEmpty&&!u)||!!a.badNodes.length||a.hasNonEmptyTextNode}},{id:"structured-dlitems",evaluate:function(e,t,n,r){var a=n.children;if(!a||!a.length)return!1;for(var o,i=!1,u=!1,s=0;s<a.length;s++){if("DT"===(o=a[s].actualNode.nodeName.toUpperCase())&&(i=!0),i&&"DD"===o)return!1;"DD"===o&&(u=!0)}return i||u}},{id:"caption",evaluate:function(e,t,n,r){return!axe.utils.querySelectorAll(n,"track").some(function(e){return"captions"===(e.actualNode.getAttribute("kind")||"").toLowerCase()})&&void 0}},{id:"description",evaluate:function(e,t,n,r){return!axe.utils.querySelectorAll(n,"track").some(function(e){return"descriptions"===(e.actualNode.getAttribute("kind")||"").toLowerCase()})&&void 0}},{id:"frame-tested",evaluate:function(e,t,n,r){var a=this.async(),o=Object.assign({isViolation:!1,timeout:500},t),i=o.isViolation,u=o.timeout,s=setTimeout(function(){s=setTimeout(function(){s=null,a(!i&&void 0)},0)},u);axe.utils.respondable(e.contentWindow,"axe.ping",null,void 0,function(){null!==s&&(clearTimeout(s),a(!0))})},options:{isViolation:!1}},{id:"css-orientation-lock",evaluate:function(e,t,n,r){var a=(r||{}).cssom,o=void 0===a?void 0:a;if(o&&o.length){var i=o.reduce(function(e,t){var n=t.sheet,r=t.root,a=t.shadowId,o=a||"topDocument";if(e[o]||(e[o]={root:r,rules:[]}),!n||!n.cssRules)return e;var i=Array.from(n.cssRules);return e[o].rules=e[o].rules.concat(i),e},{}),s=!1,l=[];return Object.keys(i).forEach(function(e){var t=i[e],u=t.root,n=t.rules.filter(function(e){return 4===e.type});if(n&&n.length){var r=n.filter(function(e){var t=e.cssText;return/orientation:\s*landscape/i.test(t)||/orientation:\s*portrait/i.test(t)});r&&r.length&&r.forEach(function(e){e.cssRules.length&&Array.from(e.cssRules).forEach(function(e){if(e.selectorText&&!(e.style.length<=0)){var t=e.style.transform||e.style.webkitTransform||e.style.msTransform||!1;if(t){var n=t.match(/rotate\(([^)]+)deg\)/),r=parseInt(n&&n[1]||0),a=r%90==0&&r%180!=0;if(a&&"HTML"!==e.selectorText.toUpperCase()){var o=e.selectorText,i=Array.from(u.querySelectorAll(o));i&&i.length&&(l=l.concat(i))}s=a}}})})}}),s?(l.length&&this.relatedNodes(l),!1):!0}}},{id:"meta-viewport-large",evaluate:function(e,t,n,r){t=t||{};for(var a,o=(e.getAttribute("content")||"").split(/[;,]/),i={},u=t.scaleMinimum||2,s=t.lowerBound||!1,l=0,c=o.length;l<c;l++){var d=(a=o[l].split("=")).shift().toLowerCase();d&&a.length&&(i[d.trim()]=a.shift().trim().toLowerCase())}return!!(s&&i["maximum-scale"]&&parseFloat(i["maximum-scale"])<s)||(s||"no"!==i["user-scalable"]?!(i["maximum-scale"]&&parseFloat(i["maximum-scale"])<u)||(this.data("maximum-scale"),!1):(this.data("user-scalable=no"),!1))},options:{scaleMinimum:5,lowerBound:2}},{id:"meta-viewport",evaluate:function(e,t,n,r){t=t||{};for(var a,o=(e.getAttribute("content")||"").split(/[;,]/),i={},u=t.scaleMinimum||2,s=t.lowerBound||!1,l=0,c=o.length;l<c;l++){var d=(a=o[l].split("=")).shift().toLowerCase();d&&a.length&&(i[d.trim()]=a.shift().trim().toLowerCase())}return!!(s&&i["maximum-scale"]&&parseFloat(i["maximum-scale"])<s)||(s||"no"!==i["user-scalable"]?!(i["maximum-scale"]&&parseFloat(i["maximum-scale"])<u)||(this.data("maximum-scale"),!1):(this.data("user-scalable=no"),!1))},options:{scaleMinimum:2}},{id:"header-present",evaluate:function(e,t,n,r){return!!axe.utils.querySelectorAll(n,'h1, h2, h3, h4, h5, h6, [role="heading"]')[0]}},{id:"heading-order",evaluate:function(e,t,n,r){var a=e.getAttribute("aria-level");if(null!==a)return this.data(parseInt(a,10)),!0;var o=e.nodeName.toUpperCase().match(/H(\d)/);return o&&this.data(parseInt(o[1],10)),!0},after:function(e,t){if(e.length<2)return e;for(var n=e[0].data,r=1;r<e.length;r++)e[r].result&&e[r].data>n+1&&(e[r].result=!1),n=e[r].data;return e}},{id:"internal-link-present",evaluate:function(e,t,n,r){return axe.utils.querySelectorAll(n,"a[href]").some(function(e){return/^#[^/!]/.test(e.actualNode.getAttribute("href"))})}},{id:"landmark",evaluate:function(e,t,n,r){return 0<axe.utils.querySelectorAll(n,'main, [role="main"]').length}},{id:"meta-refresh",evaluate:function(e,t,n,r){var a=e.getAttribute("content")||"",o=a.split(/[;,]/);return""===a||"0"===o[0]}},{id:"p-as-heading",evaluate:function(e,t,n,r){var a=Array.from(e.parentNode.children),o=a.indexOf(e),i=(t=t||{}).margins||[],u=a.slice(o+1).find(function(e){return"P"===e.nodeName.toUpperCase()}),s=a.slice(0,o).reverse().find(function(e){return"P"===e.nodeName.toUpperCase()});function l(e){var t=window.getComputedStyle(function(e){for(var t=e,n=e.textContent.trim(),r=n;r===n&&void 0!==t;){var a=-1;if(0===(e=t).children.length)return e;for(;a++,""===(r=e.children[a].textContent.trim())&&a+1<e.children.length;);t=e.children[a]}return e}(e));return{fontWeight:function(e){switch(e){case"lighter":return 100;case"normal":return 400;case"bold":return 700;case"bolder":return 900}return e=parseInt(e),isNaN(e)?400:e}(t.getPropertyValue("font-weight")),fontSize:parseInt(t.getPropertyValue("font-size")),isItalic:"italic"===t.getPropertyValue("font-style")}}function c(n,r,e){return e.reduce(function(e,t){return e||(!t.size||n.fontSize/t.size>r.fontSize)&&(!t.weight||n.fontWeight-t.weight>r.fontWeight)&&(!t.italic||n.isItalic&&!r.isItalic)},!1)}var d=l(e),m=u?l(u):null,p=s?l(s):null;if(!m||!c(d,m,i))return!0;var f=axe.commons.dom.findUpVirtual(n,"blockquote");return!!(f&&"BLOCKQUOTE"===f.nodeName.toUpperCase()||p&&!c(d,p,i))&&void 0},options:{margins:[{weight:150,italic:!0},{weight:150,size:1.15},{italic:!0,size:1.15},{size:1.4}]}},{id:"region",evaluate:function(e,t,n,r){var a=axe.commons,o=a.dom,i=a.aria,u=i.getRolesByType("landmark"),s=u.reduce(function(e,t){return e.concat(i.implicitNodes(t))},[]).filter(function(e){return null!==e});var l=function e(t){var n=t.actualNode;return function(a){var o=a.actualNode,e=axe.commons.aria.getRole(o,{noImplicit:!0}),t=(o.getAttribute("aria-live")||"").toLowerCase().trim();return e?"dialog"===e||u.includes(e):!!["assertive","polite"].includes(t)||s.some(function(e){var t=axe.utils.matchesSelector(o,e);if("FORM"!==o.nodeName.toUpperCase())return t;var n=o.getAttribute("title"),r=n&&""!==n.trim()?axe.commons.text.sanitize(n):null;return t&&(!!i.labelVirtual(a)||!!r)})}(t)||o.isSkipLink(t.actualNode)&&o.getElementByReference(t.actualNode,"href")||!o.isVisible(n,!0)?[]:o.hasContent(n,!0)?[n]:t.children.filter(function(e){return 1===e.actualNode.nodeType}).map(e).reduce(function(e,t){return e.concat(t)},[])}(n);return this.relatedNodes(l),0===l.length},after:function(e,t){return[e[0]]}},{id:"skip-link",evaluate:function(e,t,n,r){var a=axe.commons.dom.getElementByReference(e,"href");return!!a&&(axe.commons.dom.isVisible(a,!0)||void 0)}},{id:"unique-frame-title",evaluate:function(e,t,n,r){var a=axe.commons.text.sanitize(e.title).trim().toLowerCase();return this.data(a),!0},after:function(e,t){var n={};return e.forEach(function(e){n[e.data]=void 0!==n[e.data]?++n[e.data]:0}),e.forEach(function(e){e.result=!!n[e.data]}),e}},{id:"duplicate-id-active",evaluate:function(t,e,n,r){var a=t.getAttribute("id").trim();if(!a)return!0;var o=axe.commons.dom.getRootNode(t),i=Array.from(o.querySelectorAll('[id="'.concat(axe.utils.escapeSelector(a),'"]'))).filter(function(e){return e!==t});return i.length&&this.relatedNodes(i),this.data(a),0===i.length},after:function(e,t){var n=[];return e.filter(function(e){return-1===n.indexOf(e.data)&&(n.push(e.data),!0)})}},{id:"duplicate-id-aria",evaluate:function(t,e,n,r){var a=t.getAttribute("id").trim();if(!a)return!0;var o=axe.commons.dom.getRootNode(t),i=Array.from(o.querySelectorAll('[id="'.concat(axe.utils.escapeSelector(a),'"]'))).filter(function(e){return e!==t});return i.length&&this.relatedNodes(i),this.data(a),0===i.length},after:function(e,t){var n=[];return e.filter(function(e){return-1===n.indexOf(e.data)&&(n.push(e.data),!0)})}},{id:"duplicate-id",evaluate:function(t,e,n,r){var a=t.getAttribute("id").trim();if(!a)return!0;var o=axe.commons.dom.getRootNode(t),i=Array.from(o.querySelectorAll('[id="'.concat(axe.utils.escapeSelector(a),'"]'))).filter(function(e){return e!==t});return i.length&&this.relatedNodes(i),this.data(a),0===i.length},after:function(e,t){var n=[];return e.filter(function(e){return-1===n.indexOf(e.data)&&(n.push(e.data),!0)})}},{id:"aria-label",evaluate:function(e,t,n,r){var a=axe.commons,o=a.text,i=a.aria;return!!o.sanitize(i.arialabelText(e))}},{id:"aria-labelledby",evaluate:function(e,t,n,r){var a=axe.commons,o=a.text,i=a.aria;return!!o.sanitize(i.arialabelledbyText(e))}},{id:"avoid-inline-spacing",evaluate:function(t,e,n,r){var a=["line-height","letter-spacing","word-spacing"].filter(function(e){if("important"===t.style.getPropertyPriority(e))return e});return!(0<a.length)||(this.data(a),!1)}},{id:"button-has-visible-text",evaluate:function(e,t,n,r){var a,o=e.nodeName.toUpperCase(),i=e.getAttribute("role");return("BUTTON"===o||"button"===i&&"INPUT"!==o)&&(a=axe.commons.text.accessibleTextVirtual(n),this.data(a),!!a)}},{id:"doc-has-title",evaluate:function(e,t,n,r){var a=document.title;return!(!a||!axe.commons.text.sanitize(a).trim())}},{id:"exists",evaluate:function(e,t,n,r){return!0}},{id:"has-alt",evaluate:function(e,t,n,r){var a=e.nodeName.toLowerCase();return e.hasAttribute("alt")&&("img"===a||"input"===a||"area"===a)}},{id:"has-visible-text",evaluate:function(e,t,n,r){return 0<axe.commons.text.accessibleTextVirtual(n).length}},{id:"is-on-screen",evaluate:function(e,t,n,r){return axe.commons.dom.isVisible(e,!1)&&!axe.commons.dom.isOffscreen(e)}},{id:"non-empty-alt",evaluate:function(e,t,n,r){var a=e.getAttribute("alt");return!(!a||!axe.commons.text.sanitize(a).trim())}},{id:"non-empty-if-present",evaluate:function(e,t,n,r){var a=e.nodeName.toUpperCase(),o=(e.getAttribute("type")||"").toLowerCase(),i=e.getAttribute("value");return this.data(i),!("INPUT"!==a||!["submit","reset"].includes(o))&&null===i}},{id:"non-empty-title",evaluate:function(e,t,n,r){var a=axe.commons.text;return!!a.sanitize(a.titleText(e))}},{id:"non-empty-value",evaluate:function(e,t,n,r){var a=e.getAttribute("value");return!(!a||!axe.commons.text.sanitize(a).trim())}},{id:"role-none",evaluate:function(e,t,n,r){return"none"===e.getAttribute("role")}},{id:"role-presentation",evaluate:function(e,t,n,r){return"presentation"===e.getAttribute("role")}},{id:"caption-faked",evaluate:function(e,t,n,r){var a=axe.commons.table.toGrid(e),o=a[0];return a.length<=1||o.length<=1||e.rows.length<=1||o.reduce(function(e,t,n){return e||t!==o[n+1]&&void 0!==o[n+1]},!1)}},{id:"has-caption",evaluate:function(e,t,n,r){return!!e.caption}},{id:"has-summary",evaluate:function(e,t,n,r){return!!e.summary}},{id:"has-th",evaluate:function(e,t,n,r){for(var a,o,i=[],u=0,s=e.rows.length;u<s;u++)for(var l=0,c=(a=e.rows[u]).cells.length;l<c;l++)"TH"!==(o=a.cells[l]).nodeName.toUpperCase()&&-1===["rowheader","columnheader"].indexOf(o.getAttribute("role"))||i.push(o);return!!i.length&&(this.relatedNodes(i),!0)}},{id:"html5-scope",evaluate:function(e,t,n,r){return!axe.commons.dom.isHTML5(document)||"TH"===e.nodeName.toUpperCase()}},{id:"same-caption-summary",evaluate:function(e,t,n,r){return!(!e.summary||!e.caption)&&e.summary.toLowerCase()===axe.commons.text.accessibleText(e.caption).toLowerCase()}},{id:"scope-value",evaluate:function(e,t,n,r){var a=e.getAttribute("scope").toLowerCase();return-1!==["row","col","rowgroup","colgroup"].indexOf(a)}},{id:"td-has-header",evaluate:function(e,t,n,r){var a=axe.commons.table,o=[];return a.getAllCells(e).forEach(function(e){axe.commons.dom.hasContent(e)&&a.isDataCell(e)&&!axe.commons.aria.label(e)&&(a.getHeaders(e).some(function(e){return null!==e&&!!axe.commons.dom.hasContent(e)})||o.push(e))}),!o.length||(this.relatedNodes(o),!1)}},{id:"td-headers-attr",evaluate:function(e,t,n,r){for(var a=[],o=0,i=e.rows.length;o<i;o++)for(var u=e.rows[o],s=0,l=u.cells.length;s<l;s++)a.push(u.cells[s]);var c=a.reduce(function(e,t){return t.getAttribute("id")&&e.push(t.getAttribute("id")),e},[]),d=a.reduce(function(e,t){var n,r,a=(t.getAttribute("headers")||"").split(/\s/).reduce(function(e,t){return(t=t.trim())&&e.push(t),e},[]);return 0!==a.length&&(t.getAttribute("id")&&(n=-1!==a.indexOf(t.getAttribute("id").trim())),r=a.reduce(function(e,t){return e||-1===c.indexOf(t)},!1),(n||r)&&e.push(t)),e},[]);return!(0<d.length)||(this.relatedNodes(d),!1)}},{id:"th-has-data-cells",evaluate:function(e,t,n,r){var a=axe.commons.table,o=a.getAllCells(e),i=this,u=[];o.forEach(function(e){var t=e.getAttribute("headers");t&&(u=u.concat(t.split(/\s+/)));var n=e.getAttribute("aria-labelledby");n&&(u=u.concat(n.split(/\s+/)))});var s=o.filter(function(e){return""!==axe.commons.text.sanitize(e.textContent)&&("TH"===e.nodeName.toUpperCase()||-1!==["rowheader","columnheader"].indexOf(e.getAttribute("role")))}),l=a.toGrid(e),c=!0;return s.forEach(function(e){if(!e.getAttribute("id")||!u.includes(e.getAttribute("id"))){var t=a.getCellPosition(e,l),n=!1;a.isColumnHeader(e)&&(n=a.traverse("down",t,l).find(function(e){return!a.isColumnHeader(e)})),!n&&a.isRowHeader(e)&&(n=a.traverse("right",t,l).find(function(e){return!a.isRowHeader(e)})),n||i.relatedNodes(e),c=c&&n}}),!!c||void 0}},{id:"hidden-content",evaluate:function(e,t,n,r){if(!["SCRIPT","HEAD","TITLE","NOSCRIPT","STYLE","TEMPLATE"].includes(e.nodeName.toUpperCase())&&axe.commons.dom.hasContentVirtual(n)){var a=window.getComputedStyle(e);if("none"===a.getPropertyValue("display"))return;if("hidden"===a.getPropertyValue("visibility")){var o=axe.commons.dom.getComposedParent(e),i=o&&window.getComputedStyle(o);if(!i||"hidden"!==i.getPropertyValue("visibility"))return}}return!0}}],commons:function(){function e(e){return null===e}function t(e){return null!==e}var commons={},l=commons.aria={},n=l.lookupTable={};n.attributes={"aria-activedescendant":{type:"idref",allowEmpty:!0,unsupported:!1},"aria-atomic":{type:"boolean",values:["true","false"],unsupported:!1},"aria-autocomplete":{type:"nmtoken",values:["inline","list","both","none"],unsupported:!1},"aria-busy":{type:"boolean",values:["true","false"],unsupported:!1},"aria-checked":{type:"nmtoken",values:["true","false","mixed","undefined"],unsupported:!1},"aria-colcount":{type:"int",unsupported:!1},"aria-colindex":{type:"int",unsupported:!1},"aria-colspan":{type:"int",unsupported:!1},"aria-controls":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-current":{type:"nmtoken",allowEmpty:!0,values:["page","step","location","date","time","true","false"],unsupported:!1},"aria-describedby":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-describedat":{unsupported:!0,unstandardized:!0},"aria-details":{unsupported:!0},"aria-disabled":{type:"boolean",values:["true","false"],unsupported:!1},"aria-dropeffect":{type:"nmtokens",values:["copy","move","reference","execute","popup","none"],unsupported:!1},"aria-errormessage":{type:"idref",allowEmpty:!0,unsupported:!1},"aria-expanded":{type:"nmtoken",values:["true","false","undefined"],unsupported:!1},"aria-flowto":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-grabbed":{type:"nmtoken",values:["true","false","undefined"],unsupported:!1},"aria-haspopup":{type:"nmtoken",allowEmpty:!0,values:["true","false","menu","listbox","tree","grid","dialog"],unsupported:!1},"aria-hidden":{type:"boolean",values:["true","false"],unsupported:!1},"aria-invalid":{type:"nmtoken",allowEmpty:!0,values:["true","false","spelling","grammar"],unsupported:!1},"aria-keyshortcuts":{type:"string",allowEmpty:!0,unsupported:!1},"aria-label":{type:"string",allowEmpty:!0,unsupported:!1},"aria-labelledby":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-level":{type:"int",unsupported:!1},"aria-live":{type:"nmtoken",values:["off","polite","assertive"],unsupported:!1},"aria-modal":{type:"boolean",values:["true","false"],unsupported:!1},"aria-multiline":{type:"boolean",values:["true","false"],unsupported:!1},"aria-multiselectable":{type:"boolean",values:["true","false"],unsupported:!1},"aria-orientation":{type:"nmtoken",values:["horizontal","vertical"],unsupported:!1},"aria-owns":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-placeholder":{type:"string",allowEmpty:!0,unsupported:!1},"aria-posinset":{type:"int",unsupported:!1},"aria-pressed":{type:"nmtoken",values:["true","false","mixed","undefined"],unsupported:!1},"aria-readonly":{type:"boolean",values:["true","false"],unsupported:!1},"aria-relevant":{type:"nmtokens",values:["additions","removals","text","all"],unsupported:!1},"aria-required":{type:"boolean",values:["true","false"],unsupported:!1},"aria-roledescription":{type:"string",allowEmpty:!0,unsupported:{exceptions:["button",{nodeName:"input",properties:{type:["button","checkbox","image","radio","reset","submit"]}},"img","select","summary"]}},"aria-rowcount":{type:"int",unsupported:!1},"aria-rowindex":{type:"int",unsupported:!1},"aria-rowspan":{type:"int",unsupported:!1},"aria-selected":{type:"nmtoken",values:["true","false","undefined"],unsupported:!1},"aria-setsize":{type:"int",unsupported:!1},"aria-sort":{type:"nmtoken",values:["ascending","descending","other","none"],unsupported:!1},"aria-valuemax":{type:"decimal",unsupported:!1},"aria-valuemin":{type:"decimal",unsupported:!1},"aria-valuenow":{type:"decimal",unsupported:!1},"aria-valuetext":{type:"string",unsupported:!1}},n.globalAttributes=["aria-atomic","aria-busy","aria-controls","aria-current","aria-describedby","aria-disabled","aria-dropeffect","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant","aria-roledescription"],n.role={alert:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},alertdialog:{type:"widget",attributes:{allowed:["aria-expanded","aria-modal","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["dialog","section"]},application:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["article","audio","embed","iframe","object","section","svg","video"]},article:{type:"structure",attributes:{allowed:["aria-expanded","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["article"],unsupported:!1},banner:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["header"],unsupported:!1,allowedElements:["section"]},button:{type:"widget",attributes:{allowed:["aria-expanded","aria-pressed","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["button",'input[type="button"]','input[type="image"]','input[type="reset"]','input[type="submit"]',"summary"],unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},cell:{type:"structure",attributes:{allowed:["aria-colindex","aria-colspan","aria-rowindex","aria-rowspan","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["row"],implicit:["td","th"],unsupported:!1},checkbox:{type:"widget",attributes:{allowed:["aria-checked","aria-required","aria-readonly","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:['input[type="checkbox"]'],unsupported:!1,allowedElements:["button"]},columnheader:{type:"structure",attributes:{allowed:["aria-colindex","aria-colspan","aria-expanded","aria-rowindex","aria-rowspan","aria-required","aria-readonly","aria-selected","aria-sort","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["row"],implicit:["th"],unsupported:!1},combobox:{type:"composite",attributes:{allowed:["aria-autocomplete","aria-required","aria-activedescendant","aria-orientation","aria-errormessage"],required:["aria-expanded"]},owned:{all:["listbox","textbox"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:[{nodeName:"input",properties:{type:"text"}}]},command:{nameFrom:["author"],type:"abstract",unsupported:!1},complementary:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["aside"],unsupported:!1,allowedElements:["section"]},composite:{nameFrom:["author"],type:"abstract",unsupported:!1},contentinfo:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["footer"],unsupported:!1,allowedElements:["section"]},definition:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["dd","dfn"],unsupported:!1},dialog:{type:"widget",attributes:{allowed:["aria-expanded","aria-modal","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["dialog"],unsupported:!1,allowedElements:["section"]},directory:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1,allowedElements:["ol","ul"]},document:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["body"],unsupported:!1,allowedElements:["article","embed","iframe","object","section","svg"]},"doc-abstract":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-acknowledgments":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-afterword":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-appendix":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-backlink":{type:"link",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},"doc-biblioentry":{type:"listitem",attributes:{allowed:["aria-expanded","aria-level","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author"],context:["doc-bibliography"],unsupported:!1,allowedElements:["li"]},"doc-bibliography":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:{one:["doc-biblioentry"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-biblioref":{type:"link",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},"doc-chapter":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-colophon":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-conclusion":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-cover":{type:"img",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1},"doc-credit":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-credits":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-dedication":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-endnote":{type:"listitem",attributes:{allowed:["aria-expanded","aria-level","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,namefrom:["author"],context:["doc-endnotes"],unsupported:!1,allowedElements:["li"]},"doc-endnotes":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:{one:["doc-endnote"]},namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-epigraph":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1},"doc-epilogue":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-errata":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-example":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["aside","section"]},"doc-footnote":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["aside","footer","header"]},"doc-foreword":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-glossary":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:["term","definition"],namefrom:["author"],context:null,unsupported:!1,allowedElements:["dl"]},"doc-glossref":{type:"link",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author","contents"],context:null,unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},"doc-index":{type:"navigation",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["nav","section"]},"doc-introduction":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-noteref":{type:"link",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author","contents"],context:null,unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},"doc-notice":{type:"note",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-pagebreak":{type:"separator",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["hr"]},"doc-pagelist":{type:"navigation",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["nav","section"]},"doc-part":{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-preface":{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-prologue":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-pullquote":{type:"none",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["aside","section"]},"doc-qna":{type:"section",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-subtitle":{type:"sectionhead",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:{nodeName:["h1","h2","h3","h4","h5","h6"]}},"doc-tip":{type:"note",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["aside"]},"doc-toc":{type:"navigation",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["nav","section"]},feed:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:{one:["article"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["article","aside","section"]},figure:{type:"structure",unsupported:!1},form:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["form"],unsupported:!1},grid:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-colcount","aria-level","aria-multiselectable","aria-readonly","aria-rowcount","aria-errormessage"]},owned:{one:["rowgroup","row"]},nameFrom:["author"],context:null,implicit:["table"],unsupported:!1},gridcell:{type:"widget",attributes:{allowed:["aria-colindex","aria-colspan","aria-expanded","aria-rowindex","aria-rowspan","aria-selected","aria-readonly","aria-required","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["row"],implicit:["td","th"],unsupported:!1},group:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["details","optgroup"],unsupported:!1,allowedElements:["dl","figcaption","fieldset","figure","footer","header","ol","ul"]},heading:{type:"structure",attributes:{required:["aria-level"],allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["h1","h2","h3","h4","h5","h6"],unsupported:!1},img:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["img"],unsupported:!1,allowedElements:["embed","iframe","object","svg"]},input:{nameFrom:["author"],type:"abstract",unsupported:!1},landmark:{nameFrom:["author"],type:"abstract",unsupported:!1},link:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["a[href]"],unsupported:!1,allowedElements:["button",{nodeName:"input",properties:{type:["image","button"]}}]},list:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:{all:["listitem"]},nameFrom:["author"],context:null,implicit:["ol","ul","dl"],unsupported:!1},listbox:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-multiselectable","aria-required","aria-expanded","aria-orientation","aria-errormessage"]},owned:{all:["option"]},nameFrom:["author"],context:null,implicit:["select"],unsupported:!1,allowedElements:["ol","ul"]},listitem:{type:"structure",attributes:{allowed:["aria-level","aria-posinset","aria-setsize","aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["list"],implicit:["li","dt"],unsupported:!1},log:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},main:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["main"],unsupported:!1,allowedElements:["article","section"]},marquee:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},math:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["math"],unsupported:!1},menu:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-orientation","aria-errormessage"]},owned:{one:["menuitem","menuitemradio","menuitemcheckbox"]},nameFrom:["author"],context:null,implicit:['menu[type="context"]'],unsupported:!1,allowedElements:["ol","ul"]},menubar:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-orientation","aria-errormessage"]},owned:{one:["menuitem","menuitemradio","menuitemcheckbox"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["ol","ul"]},menuitem:{type:"widget",attributes:{allowed:["aria-posinset","aria-setsize","aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["menu","menubar"],implicit:['menuitem[type="command"]'],unsupported:!1,allowedElements:["button","li",{nodeName:"iput",properties:{type:["image","button"]}},{nodeName:"a",attributes:{href:t}}]},menuitemcheckbox:{type:"widget",attributes:{allowed:["aria-checked","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["menu","menubar"],implicit:['menuitem[type="checkbox"]'],unsupported:!1,allowedElements:[{nodeName:["button","li"]},{nodeName:"input",properties:{type:["checkbox","image","button"]}},{nodeName:"a",attributes:{href:t}}]},menuitemradio:{type:"widget",attributes:{allowed:["aria-checked","aria-selected","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["menu","menubar"],implicit:['menuitem[type="radio"]'],unsupported:!1,allowedElements:[{nodeName:["button","li"]},{nodeName:"input",properties:{type:["image","button","radio"]}},{nodeName:"a",attributes:{href:t}}]},navigation:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["nav"],unsupported:!1,allowedElements:["section"]},none:{type:"structure",attributes:null,owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:[{nodeName:["article","aside","dl","embed","figcaption","fieldset","figure","footer","form","h1","h2","h3","h4","h5","h6","header","iframe","li","ol","section","ul"]},{nodeName:"img",attributes:{alt:t}}]},note:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["aside"]},option:{type:"widget",attributes:{allowed:["aria-selected","aria-posinset","aria-setsize","aria-checked","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["listbox"],implicit:["option"],unsupported:!1,allowedElements:[{nodeName:["button","li"]},{nodeName:"input",properties:{type:["checkbox","button"]}},{nodeName:"a",attributes:{href:t}}]},presentation:{type:"structure",attributes:null,owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:[{nodeName:["article","aside","dl","embed","figcaption","fieldset","figure","footer","form","h1","h2","h3","h4","h5","h6","header","iframe","li","ol","section","ul"]},{nodeName:"img",attributes:{alt:t}}]},progressbar:{type:"widget",attributes:{allowed:["aria-valuetext","aria-valuenow","aria-valuemax","aria-valuemin","aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["progress"],unsupported:!1},radio:{type:"widget",attributes:{allowed:["aria-selected","aria-posinset","aria-setsize","aria-required","aria-errormessage","aria-checked"]},owned:null,nameFrom:["author","contents"],context:null,implicit:['input[type="radio"]'],unsupported:!1,allowedElements:[{nodeName:["button","li"]},{nodeName:"input",properties:{type:["image","button"]}}]},radiogroup:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-required","aria-expanded","aria-readonly","aria-errormessage"]},owned:{all:["radio"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:{nodeName:["ol","ul"]}},range:{nameFrom:["author"],type:"abstract",unsupported:!1},region:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["section[aria-label]","section[aria-labelledby]","section[title]"],unsupported:!1,allowedElements:{nodeName:["article","aside"]}},roletype:{type:"abstract",unsupported:!1},row:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-colindex","aria-expanded","aria-level","aria-selected","aria-rowindex","aria-errormessage"]},owned:{one:["cell","columnheader","rowheader","gridcell"]},nameFrom:["author","contents"],context:["rowgroup","grid","treegrid","table"],implicit:["tr"],unsupported:!1},rowgroup:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-errormessage"]},owned:{all:["row"]},nameFrom:["author","contents"],context:["grid","table","treegrid"],implicit:["tbody","thead","tfoot"],unsupported:!1},rowheader:{type:"structure",attributes:{allowed:["aria-colindex","aria-colspan","aria-expanded","aria-rowindex","aria-rowspan","aria-required","aria-readonly","aria-selected","aria-sort","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["row"],implicit:["th"],unsupported:!1},scrollbar:{type:"widget",attributes:{required:["aria-controls","aria-valuenow"],allowed:["aria-valuetext","aria-orientation","aria-errormessage","aria-valuemax","aria-valuemin"]},owned:null,nameFrom:["author"],context:null,unsupported:!1},search:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:{nodeName:["aside","form","section"]}},searchbox:{type:"widget",attributes:{allowed:["aria-activedescendant","aria-autocomplete","aria-multiline","aria-readonly","aria-required","aria-placeholder","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:['input[type="search"]'],unsupported:!1,allowedElements:{nodeName:"input",properties:{type:"text"}}},section:{nameFrom:["author","contents"],type:"abstract",unsupported:!1},sectionhead:{nameFrom:["author","contents"],type:"abstract",unsupported:!1},select:{nameFrom:["author"],type:"abstract",unsupported:!1},separator:{type:"structure",attributes:{allowed:["aria-expanded","aria-orientation","aria-valuenow","aria-valuemax","aria-valuemin","aria-valuetext","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["hr"],unsupported:!1,allowedElements:["li"]},slider:{type:"widget",attributes:{allowed:["aria-valuetext","aria-orientation","aria-readonly","aria-errormessage","aria-valuemax","aria-valuemin"],required:["aria-valuenow"]},owned:null,nameFrom:["author"],context:null,implicit:['input[type="range"]'],unsupported:!1},spinbutton:{type:"widget",attributes:{allowed:["aria-valuetext","aria-required","aria-readonly","aria-errormessage","aria-valuemax","aria-valuemin"],required:["aria-valuenow"]},owned:null,nameFrom:["author"],context:null,implicit:['input[type="number"]'],unsupported:!1,allowedElements:{nodeName:"input",properties:{type:"text"}}},status:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["output"],unsupported:!1,allowedElements:["section"]},structure:{type:"abstract",unsupported:!1},switch:{type:"widget",attributes:{allowed:["aria-errormessage"],required:["aria-checked"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1,allowedElements:["button",{nodeName:"input",properties:{type:["checkbox","image","button"]}},{nodeName:"a",attributes:{href:t}}]},tab:{type:"widget",attributes:{allowed:["aria-selected","aria-expanded","aria-setsize","aria-posinset","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["tablist"],unsupported:!1,allowedElements:[{nodeName:["button","h1","h2","h3","h4","h5","h6","li"]},{nodeName:"input",properties:{type:"button"}},{nodeName:"a",attributes:{href:t}}]},table:{type:"structure",attributes:{allowed:["aria-colcount","aria-rowcount","aria-errormessage"]},owned:{one:["rowgroup","row"]},nameFrom:["author"],context:null,implicit:["table"],unsupported:!1},tablist:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-level","aria-multiselectable","aria-orientation","aria-errormessage"]},owned:{all:["tab"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["ol","ul"]},tabpanel:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},term:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["dt"],unsupported:!1},textbox:{type:"widget",attributes:{allowed:["aria-activedescendant","aria-autocomplete","aria-multiline","aria-readonly","aria-required","aria-placeholder","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:['input[type="text"]','input[type="email"]','input[type="password"]','input[type="tel"]','input[type="url"]',"input:not([type])","textarea"],unsupported:!1},timer:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1},toolbar:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-orientation","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:['menu[type="toolbar"]'],unsupported:!1,allowedElements:["ol","ul"]},tooltip:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1},tree:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-multiselectable","aria-required","aria-expanded","aria-orientation","aria-errormessage"]},owned:{all:["treeitem"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["ol","ul"]},treegrid:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-colcount","aria-expanded","aria-level","aria-multiselectable","aria-readonly","aria-required","aria-rowcount","aria-orientation","aria-errormessage"]},owned:{one:["rowgroup","row"]},nameFrom:["author"],context:null,unsupported:!1},treeitem:{type:"widget",attributes:{allowed:["aria-checked","aria-selected","aria-expanded","aria-level","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["group","tree"],unsupported:!1,allowedElements:["li",{nodeName:"a",attributes:{href:t}}]},widget:{type:"abstract",unsupported:!1},window:{nameFrom:["author"],type:"abstract",unsupported:!1}},n.elementsAllowedNoRole=[{nodeName:["base","body","caption","col","colgroup","datalist","dd","details","dt","head","html","keygen","label","legend","main","map","math","meta","meter","noscript","optgroup","param","picture","progress","script","source","style","template","textarea","title","track"]},{nodeName:"area",attributes:{href:t}},{nodeName:"input",properties:{type:["color","data","datatime","file","hidden","month","number","password","range","reset","submit","time","week"]}},{nodeName:"input",attributes:{list:e},properties:{type:["email","search","tel","url"]}},{nodeName:"link",attributes:{href:t}},{nodeName:"menu",attributes:{type:"context"}},{nodeName:"menuitem",attributes:{type:["command","checkbox","radio"]}},{nodeName:"select",condition:function(e){return 1<Number(e.getAttribute("size"))},properties:{multiple:!0}},{nodeName:["clippath","cursor","defs","desc","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","fedropshadow","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","filter","hatch","hatchpath","lineargradient","marker","mask","meshgradient","meshpatch","meshrow","metadata","mpath","pattern","radialgradient","solidcolor","stop","switch","view"]}],n.elementsAllowedAnyRole=[{nodeName:"a",attributes:{href:e}},{nodeName:["abbr","address","canvas","div","p","pre","blockquote","ins","del","output","span","table","tbody","thead","tfoot","td","em","strong","small","s","cite","q","dfn","abbr","time","code","var","samp","kbd","sub","sup","i","b","u","mark","ruby","rt","rp","bdi","bdo","br","wbr","th","tr"]}],n.evaluateRoleForElement={A:function(e){var t=e.node,n=e.out;return"http://www.w3.org/2000/svg"===t.namespaceURI||(!t.href.length||n)},AREA:function(e){return!e.node.href},BUTTON:function(e){var t=e.node,n=e.role,r=e.out;return"menu"===t.getAttribute("type")?"menuitem"===n:r},IMG:function(e){var t=e.node,n=e.out;return t.alt?!n:n},INPUT:function(e){var t=e.node,n=e.role,r=e.out;switch(t.type){case"button":case"image":return r;case"checkbox":return!("button"!==n||!t.hasAttribute("aria-pressed"))||r;case"radio":return"menuitemradio"===n;case"text":return"combobox"===n||"searchbox"===n||"spinbutton"===n;default:return!1}},LI:function(e){var t=e.node,n=e.out;return!axe.utils.matchesSelector(t,"ol li, ul li")||n},MENU:function(e){return"context"!==e.node.getAttribute("type")},OPTION:function(e){var t=e.node;return!axe.utils.matchesSelector(t,"select > option, datalist > option, optgroup > option")},SELECT:function(e){var t=e.node,n=e.role;return!t.multiple&&t.size<=1&&"menu"===n},SVG:function(e){var t=e.node,n=e.out;return!(!t.parentNode||"http://www.w3.org/2000/svg"!==t.parentNode.namespaceURI)||n}},n.rolesOfType={widget:["button","checkbox","dialog","gridcell","heading","link","log","marquee","menuitem","menuitemcheckbox","menuitemradio","option","progressbar","radio","scrollbar","slider","spinbutton","status","switch","tab","tabpanel","textbox","timer","tooltip","tree","treeitem"]};var s={};commons.color=s;var h=commons.dom={},r={};function i(e,t){return i.fromDefinition(e,t)}commons.forms=r,commons.matches=i;var o=commons.table={},g=commons.text={EdgeFormDefaults:{}};commons.utils=axe.utils;l.arialabelText=function(e){return 1!==(e=e.actualNode||e).nodeType?"":e.getAttribute("aria-label")||""},l.arialabelledbyText=function(r,e){var a=1<arguments.length&&void 0!==e?e:{};return 1!==(r=r.actualNode||r).nodeType||a.inLabelledByContext||a.inControlContext?"":h.idrefs(r,"aria-labelledby").filter(function(e){return e}).reduce(function(e,t){var n=g.accessibleText(t,R({inLabelledByContext:!0,startNode:a.startNode||r},a));return e?"".concat(e," ").concat(n):n},"")},l.requiredAttr=function(e){var t=l.lookupTable.role[e];return t&&t.attributes&&t.attributes.required||[]},l.allowedAttr=function(e){var t=l.lookupTable.role[e],n=t&&t.attributes&&t.attributes.allowed||[],r=t&&t.attributes&&t.attributes.required||[];return n.concat(l.lookupTable.globalAttributes).concat(r)},l.validateAttr=function(e){return!!l.lookupTable.attributes[e]},l.getElementUnallowedRoles=function(t,e){var n=!(1<arguments.length&&void 0!==e)||e,r=t.nodeName.toUpperCase();if(!axe.utils.isHtmlElement(t))return[];var a=function(e){var t=[];if(!e)return t;if(e.hasAttribute("role")){var n=axe.utils.tokenList(e.getAttribute("role").toLowerCase());t=t.concat(n)}if(e.hasAttributeNS("http://www.idpf.org/2007/ops","type")){var r=axe.utils.tokenList(e.getAttributeNS("http://www.idpf.org/2007/ops","type").toLowerCase()).map(function(e){return"doc-".concat(e)});t=t.concat(r)}return t=t.filter(function(e){return axe.commons.aria.isValidRole(e)})}(t),o=axe.commons.aria.implicitRole(t);return a.filter(function(e){return(!n||e!==o)&&(!(n||"row"===e&&"TR"===r&&axe.utils.matchesSelector(t,'table[role="grid"] > tr'))||!l.isAriaRoleAllowedOnElement(t,e))})},l.getOwnedVirtual=function(e){var t=e.actualNode,n=e.children;if(!t||!n)throw new Error("getOwnedVirtual requires a virtual node");return h.idrefs(t,"aria-owns").reduce(function(e,t){if(t){var n=axe.utils.getNodeFromTree(t);e.push(n)}return e},n)},l.getRole=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=n.noImplicit,a=n.fallback,o=n.abstracts,i=n.dpub;if(1!==(e=e.actualNode||e).nodeType)return null;var u=(e.getAttribute("role")||"").trim().toLowerCase(),s=(a?axe.utils.tokenList(u):[u]).filter(function(e){return!(!i&&"doc-"===e.substr(0,4))&&l.isValidRole(e,{allowAbstract:o})})[0];return s||r?s||null:l.implicitRole(e)};var a,u=/^idrefs?$/;function c(e){return e.getPropertyValue("font-family").split(/[,;]/g).map(function(e){return e.trim().toLowerCase()})}function d(e,t){var n=t.nodeName.toUpperCase(),r={TD:["TR","THEAD","TBODY","TFOOT"],TH:["TR","THEAD","TBODY","TFOOT"],INPUT:["LABEL"]},a=e.map(function(e){return e.nodeName.toUpperCase()}),o=e;for(var i in r)if(a.includes(i))for(var u=0;u<r[i].length;u++){var s=axe.commons.dom.findUp(t,r[i][u]);if(s&&-1===e.indexOf(s))axe.commons.dom.visuallyOverlaps(t.getBoundingClientRect(),s)&&o.splice(a.indexOf(i)+1,0,s);n===r[i][u]&&-1===a.indexOf(n)&&o.splice(a.indexOf(i)+1,0,t)}return o}function m(e,t){var n=e.getClientRects()[0],r=h.shadowElementsFromPoint(n.left,n.top);if(r)for(var a=0;a<r.length;a++)if(r[a]!==e&&r[a]===t)return!0;return!1}l.isAccessibleRef=function(e){e=e.actualNode||e;var t=h.getRootNode(e);t=t.documentElement||t;var n=e.id;axe._cache.get("idRefs")||(axe._cache.set("idRefs",{}),function e(n,t){n.hasAttribute&&("LABEL"===n.nodeName.toUpperCase()&&n.hasAttribute("for")&&(axe._cache.get("idRefs")[n.getAttribute("for")]=!0),t.filter(function(e){return n.hasAttribute(e)}).forEach(function(e){var t=n.getAttribute(e);axe.utils.tokenList(t).forEach(function(e){axe._cache.get("idRefs")[e]=!0})}));for(var r=0;r<n.children.length;r++)e(n.children[r],t)}(t,Object.keys(l.lookupTable.attributes).filter(function(e){var t=l.lookupTable.attributes[e].type;return u.test(t)})));return!0===axe._cache.get("idRefs")[n]},l.isAriaRoleAllowedOnElement=function(e,t){var n=e.nodeName.toUpperCase(),r=axe.commons.aria.lookupTable;if(i(e,r.elementsAllowedNoRole))return!1;if(i(e,r.elementsAllowedAnyRole))return!0;var a=r.role[t];if(!a||!a.allowedElements)return!1;var o=i(e,a.allowedElements);return Object.keys(r.evaluateRoleForElement).includes(n)?r.evaluateRoleForElement[n]({node:e,role:t,out:o}):o},l.isUnsupportedRole=function(e){var t=l.lookupTable.role[e];return!!t&&t.unsupported},l.labelVirtual=function(e){var t,n=e.actualNode;return n.getAttribute("aria-labelledby")&&(t=h.idrefs(n,"aria-labelledby").map(function(e){var t=axe.utils.getNodeFromTree(e);return t?g.visibleVirtual(t,!0):""}).join(" ").trim())?t:(t=(t=n.getAttribute("aria-label"))&&g.sanitize(t).trim())?t:null},l.label=function(e){return e=axe.utils.getNodeFromTree(e),l.labelVirtual(e)},l.namedFromContents=function(e,t){var n=(1<arguments.length&&void 0!==t?t:{}).strict;if(1!==(e=e.actualNode||e).nodeType)return!1;var r=l.getRole(e),a=l.lookupTable.role[r];return!!(a&&a.nameFrom.includes("contents")||"TABLE"===e.nodeName.toUpperCase())||!n&&(!a||["presentation","none"].includes(r))},l.isValidRole=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=t.allowAbstract,r=t.flagUnsupported,a=void 0!==r&&r,o=l.lookupTable.role[e],i=!!o&&o.unsupported;return!(!o||a&&i)&&(!!n||"abstract"!==o.type)},l.getRolesWithNameFromContents=function(){return Object.keys(l.lookupTable.role).filter(function(e){return l.lookupTable.role[e].nameFrom&&-1!==l.lookupTable.role[e].nameFrom.indexOf("contents")})},l.getRolesByType=function(t){return Object.keys(l.lookupTable.role).filter(function(e){return l.lookupTable.role[e].type===t})},l.getRoleType=function(e){var t=l.lookupTable.role[e];return t&&t.type||null},l.requiredOwned=function(e){"use strict";var t=null,n=l.lookupTable.role[e];return n&&(t=axe.utils.clone(n.owned)),t},l.requiredContext=function(e){"use strict";var t=null,n=l.lookupTable.role[e];return n&&(t=axe.utils.clone(n.context)),t},l.implicitNodes=function(e){"use strict";var t=null,n=l.lookupTable.role[e];return n&&n.implicit&&(t=axe.utils.clone(n.implicit)),t},l.implicitRole=function(n){"use strict";var e=Object.keys(l.lookupTable.role).map(function(e){var t=l.lookupTable.role[e];return{name:e,implicit:t&&t.implicit}}).reduce(function(e,t){return t.implicit&&t.implicit.some(function(e){return axe.utils.matchesSelector(n,e)})&&e.push(t.name),e},[]);if(!e.length)return null;for(var r,t=axe.utils.getNodeAttributes(n),a=[],o=0,i=t.length;o<i;o++){var u=t[o];u.name.match(/^aria-/)&&a.push(u.name)}return(r=a,e.map(function(e){return{score:function(e){return l.allowedAttr(e).reduce(function(e,t){return e+(-1<r.indexOf(t)?1:0)},0)}(e),name:e}}).sort(function(e,t){return t.score-e.score}).map(function(e){return e.name})).shift()},l.validateAttrValue=function(e,t){"use strict";var n,r,a=e.getAttribute(t),o=l.lookupTable.attributes[t],i=h.getRootNode(e);if(!o)return!0;if(o.allowEmpty&&(!a||""===a.trim()))return!0;switch(o.type){case"boolean":case"nmtoken":return"string"==typeof a&&o.values.includes(a.toLowerCase());case"nmtokens":return(r=axe.utils.tokenList(a)).reduce(function(e,t){return e&&o.values.includes(t)},0!==r.length);case"idref":return!(!a||!i.getElementById(a));case"idrefs":return(r=axe.utils.tokenList(a)).some(function(e){return i.getElementById(e)});case"string":return""!==a.trim();case"decimal":return!(!(n=a.match(/^[-+]?([0-9]*)\.?([0-9]*)$/))||!n[1]&&!n[2]);case"int":return/^[-+]?[0-9]+$/.test(a)}},s.centerPointOfRect=function(e){if(!(e.left>window.innerWidth)&&!(e.top>window.innerHeight))return{x:Math.min(Math.ceil(e.left+e.width/2),window.innerWidth-1),y:Math.min(Math.ceil(e.top+e.height/2),window.innerHeight-1)}},s.Color=function(e,t,n,r){this.red=e,this.green=t,this.blue=n,this.alpha=r,this.toHexString=function(){var e=Math.round(this.red).toString(16),t=Math.round(this.green).toString(16),n=Math.round(this.blue).toString(16);return"#"+(15.5<this.red?e:"0"+e)+(15.5<this.green?t:"0"+t)+(15.5<this.blue?n:"0"+n)};var a=/^rgb\((\d+), (\d+), (\d+)\)$/,o=/^rgba\((\d+), (\d+), (\d+), (\d*(\.\d+)?)\)/;this.parseRgbString=function(e){if("transparent"===e)return this.red=0,this.green=0,this.blue=0,void(this.alpha=0);var t=e.match(a);return t?(this.red=parseInt(t[1],10),this.green=parseInt(t[2],10),this.blue=parseInt(t[3],10),void(this.alpha=1)):(t=e.match(o))?(this.red=parseInt(t[1],10),this.green=parseInt(t[2],10),this.blue=parseInt(t[3],10),void(this.alpha=Math.round(100*parseFloat(t[4]))/100)):void 0},this.getRelativeLuminance=function(){var e=this.red/255,t=this.green/255,n=this.blue/255;return.2126*(e<=.03928?e/12.92:Math.pow((.055+e)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((.055+t)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((.055+n)/1.055,2.4))}},s.flattenColors=function(e,t){var n=e.alpha,r=(1-n)*t.red+n*e.red,a=(1-n)*t.green+n*e.green,o=(1-n)*t.blue+n*e.blue,i=e.alpha+t.alpha*(1-e.alpha);return new s.Color(r,a,o,i)},s.getContrast=function(e,t){if(!t||!e)return null;t.alpha<1&&(t=s.flattenColors(t,e));var n=e.getRelativeLuminance(),r=t.getRelativeLuminance();return(Math.max(r,n)+.05)/(Math.min(r,n)+.05)},s.hasValidContrastRatio=function(e,t,n,r){var a=s.getContrast(e,t),o=r&&Math.ceil(72*n)/96<14||!r&&Math.ceil(72*n)/96<18?4.5:3;return{isValid:o<a,contrastRatio:a,expectedContrastRatio:o}},s.elementHasImage=function(e,t){var n=e.nodeName.toUpperCase();if(["IMG","CANVAS","OBJECT","IFRAME","VIDEO","SVG"].includes(n))return axe.commons.color.incompleteData.set("bgColor","imgNode"),!0;var r=(t=t||window.getComputedStyle(e)).getPropertyValue("background-image"),a="none"!==r;if(a){var o=/gradient/.test(r);axe.commons.color.incompleteData.set("bgColor",o?"bgGradient":"bgImage")}return a},s.elementIsDistinct=function(e,t){var r=window.getComputedStyle(e);if("none"!==r.getPropertyValue("background-image"))return!0;if(["border-bottom","border-top","outline"].reduce(function(e,t){var n=new s.Color;return n.parseRgbString(r.getPropertyValue(t+"-color")),e||"none"!==r.getPropertyValue(t+"-style")&&0<parseFloat(r.getPropertyValue(t+"-width"))&&0!==n.alpha},!1))return!0;var n=window.getComputedStyle(t);if(c(r)[0]!==c(n)[0])return!0;var a=["text-decoration-line","text-decoration-style","font-weight","font-style","font-size"].reduce(function(e,t){return e||r.getPropertyValue(t)!==n.getPropertyValue(t)},!1),o=r.getPropertyValue("text-decoration");return o.split(" ").length<3&&(a=a||o!==n.getPropertyValue("text-decoration")),a},s.getBackgroundColor=function(r,e,t){var a=1<arguments.length&&void 0!==e?e:[];if(!0!==(2<arguments.length&&void 0!==t&&t)){var n=r.getBoundingClientRect().height-2>=2*window.innerHeight;r.scrollIntoView(n)}var o=[],i=s.getBackgroundStack(r);return(i||[]).some(function(e){var t=window.getComputedStyle(e),n=s.getOwnBackgroundColor(t);return function(e,t,n){var r=e!==t&&!h.visuallyContains(e,t)&&0!==n.alpha;r&&axe.commons.color.incompleteData.set("bgColor","elmPartiallyObscured");return r}(r,e,n)||s.elementHasImage(e,t)?(o=null,a.push(e),!0):0!==n.alpha&&(a.push(e),o.push(n),1===n.alpha)}),null===o||null===i?null:(o.push(new s.Color(255,255,255,1)),o.reduce(s.flattenColors))},s.getBackgroundStack=function(e){var t=s.filteredRectStack(e);if(null===t)return null;t=d(t,e);var n=(t=function(e){var t=e.indexOf(document.body),n=e;(1<t||-1===t)&&!s.elementHasImage(document.documentElement)&&0===s.getOwnBackgroundColor(window.getComputedStyle(document.documentElement)).alpha&&(1<t&&n.splice(t,1),n.splice(e.indexOf(document.documentElement),1),n.push(document.body));return n}(t=h.reduceToElementsBelowFloating(t,e))).indexOf(e);return function(e,t,n){if(0<e)for(var r=e-1;0<=r;r--){var a=t[r];if(m(n,a))return!0;t.splice(r,1)}return!1}(n,t,e)?(axe.commons.color.incompleteData.set("bgColor","bgOverlap"),null):-1!==n?t:null},s.filteredRectStack=function(a){var o=s.getRectStack(a);if(o&&1===o.length)return o[0];if(o&&1<o.length){var i,u=o.shift();return d(u,a),o.forEach(function(e,t){if(0!==t){var n=o[t-1],r=o[t];i=n.every(function(e,t){return e===r[t]})||u.includes(a)}}),i?o[0]:(axe.commons.color.incompleteData.set("bgColor","elmPartiallyObscuring"),null)}return axe.commons.color.incompleteData.set("bgColor","outsideViewport"),null},s.getRectStack=function(e){var t=axe.commons.color.centerPointOfRect(e.getBoundingClientRect());if(!t)return null;var n=h.shadowElementsFromPoint(t.x,t.y),r=Array.from(e.getClientRects());if(!r||r.length<=1)return[n];var a=r.filter(function(e){return e.width&&0<e.width}).map(function(e){var t=axe.commons.color.centerPointOfRect(e);if(t)return h.shadowElementsFromPoint(t.x,t.y)});return a.some(function(e){return void 0===e})?null:(a.splice(0,0,n),a)},h.isOpaque=function(e){var t=window.getComputedStyle(e);return s.elementHasImage(e,t)||1===s.getOwnBackgroundColor(t).alpha},s.getForegroundColor=function(e,t){var n=window.getComputedStyle(e),r=new s.Color;r.parseRgbString(n.getPropertyValue("color"));var a=n.getPropertyValue("opacity");if(r.alpha=r.alpha*a,1===r.alpha)return r;var o=s.getBackgroundColor(e,[],t);if(null!==o)return s.flattenColors(r,o);var i=axe.commons.color.incompleteData.get("bgColor");return axe.commons.color.incompleteData.set("fgColor",i),null},s.getOwnBackgroundColor=function(e){var t=new s.Color;if(t.parseRgbString(e.getPropertyValue("background-color")),0!==t.alpha){var n=e.getPropertyValue("opacity");t.alpha=t.alpha*n}return t},s.incompleteData=(a={},{set:function(e,t){if("string"!=typeof e)throw new Error("Incomplete data: key must be a string");return t&&(a[e]=t),a[e]},get:function(e){return a[e]},clear:function(){a={}}}),h.reduceToElementsBelowFloating=function(e,t){var n,r,a,o=["fixed","sticky"],i=[],u=!1;for(n=0;n<e.length;++n)(r=e[n])===t&&(u=!0),a=window.getComputedStyle(r),u||-1===o.indexOf(a.position)?i.push(r):i=[];return i},h.findElmsInContext=function(e){var t,n=e.context,r=e.value,a=e.attr,o=e.elm,i=void 0===o?"":o,u=axe.utils.escapeSelector(r);return t=9===n.nodeType||11===n.nodeType?n:h.getRootNode(n),Array.from(t.querySelectorAll(i+"["+a+"="+u+"]"))},h.findUp=function(e,t){return h.findUpVirtual(axe.utils.getNodeFromTree(e),t)},h.findUpVirtual=function(e,t){var n;if(n=e.actualNode,!e.shadowId&&"function"==typeof e.actualNode.closest){var r=e.actualNode.closest(t);return r||null}for(;(n=n.assignedSlot?n.assignedSlot:n.parentNode)&&11===n.nodeType&&(n=n.host),n&&!axe.utils.matchesSelector(n,t)&&n!==document.documentElement;);return n&&axe.utils.matchesSelector(n,t)?n:null},h.getComposedParent=function e(t){if(t.assignedSlot)return e(t.assignedSlot);if(t.parentNode){var n=t.parentNode;if(1===n.nodeType)return n;if(n.host)return n.host}return null},h.getElementByReference=function(e,t){var n=e.getAttribute(t);if(!n)return null;"#"===n.charAt(0)?n=decodeURIComponent(n.substring(1)):"/#"===n.substr(0,2)&&(n=decodeURIComponent(n.substring(2)));var r=document.getElementById(n);return r||((r=document.getElementsByName(n)).length?r[0]:null)},h.getElementCoordinates=function(e){"use strict";var t=h.getScrollOffset(document),n=t.left,r=t.top,a=e.getBoundingClientRect();return{top:a.top+r,right:a.right+n,bottom:a.bottom+r,left:a.left+n,width:a.right-a.left,height:a.bottom-a.top}},h.getRootNode=axe.utils.getRootNode,h.getScrollOffset=function(e){"use strict";if(!e.nodeType&&e.document&&(e=e.document),9!==e.nodeType)return{left:e.scrollLeft,top:e.scrollTop};var t=e.documentElement,n=e.body;return{left:t&&t.scrollLeft||n&&n.scrollLeft||0,top:t&&t.scrollTop||n&&n.scrollTop||0}},h.getTabbableElements=function(e){return axe.utils.querySelectorAll(e,"*").filter(function(e){var t=e.isFocusable,n=e.actualNode.getAttribute("tabindex");return(n=n&&!isNaN(parseInt(n,10))?parseInt(n):null)?t&&0<=n:t})},h.getViewportSize=function(e){"use strict";var t,n=e.document,r=n.documentElement;return e.innerWidth?{width:e.innerWidth,height:e.innerHeight}:r?{width:r.clientWidth,height:r.clientHeight}:{width:(t=n.body).clientWidth,height:t.clientHeight}};var p=["HEAD","TITLE","TEMPLATE","SCRIPT","STYLE","IFRAME","OBJECT","VIDEO","AUDIO","NOSCRIPT"];function f(e){return e.disabled||h.isHiddenWithCSS(e)&&"AREA"!==e.nodeName.toUpperCase()}h.hasContentVirtual=function(e,t,n){return function(e){if(!p.includes(e.actualNode.nodeName.toUpperCase()))return e.children.some(function(e){var t=e.actualNode;return 3===t.nodeType&&t.nodeValue.trim()})}(e)||h.isVisualContent(e.actualNode)||!!n||!!l.labelVirtual(e)||!t&&e.children.some(function(e){return 1===e.actualNode.nodeType&&h.hasContentVirtual(e)})},h.hasContent=function(e,t,n){return e=axe.utils.getNodeFromTree(e),h.hasContentVirtual(e,t,n)},h.idrefs=function(e,t){"use strict";var n,r,a=h.getRootNode(e),o=[],i=e.getAttribute(t);if(i)for(n=0,r=(i=axe.utils.tokenList(i)).length;n<r;n++)o.push(a.getElementById(i[n]));return o},h.isFocusable=function(e){"use strict";if(f(e))return!1;if(h.isNativelyFocusable(e))return!0;var t=e.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))},h.isNativelyFocusable=function(e){"use strict";if(!e||f(e))return!1;switch(e.nodeName.toUpperCase()){case"A":case"AREA":if(e.href)return!0;break;case"INPUT":return"hidden"!==e.type;case"TEXTAREA":case"SELECT":case"DETAILS":case"BUTTON":return!0}return!1},h.insertedIntoFocusOrder=function(e){return-1<e.tabIndex&&h.isFocusable(e)&&!h.isNativelyFocusable(e)},h.isHiddenWithCSS=function(e,t){if(9===e.nodeType)return!1;if(11===e.nodeType&&(e=e.host),["STYLE","SCRIPT"].includes(e.nodeName.toUpperCase()))return!1;var n=window.getComputedStyle(e,null);if(!n)throw new Error("Style does not exist for the given element.");if("none"===n.getPropertyValue("display"))return!0;var r=["hidden","collapse"],a=n.getPropertyValue("visibility");if(r.includes(a)&&!t)return!0;if(r.includes(a)&&t&&r.includes(t))return!0;var o=h.getComposedParent(e);return!(!o||r.includes(a))&&h.isHiddenWithCSS(o,a)},h.isHTML5=function(e){var t=e.doctype;return null!==t&&("html"===t.name&&!t.publicId&&!t.systemId)};var b=["block","list-item","table","flex","grid","inline-block"];function y(e){var t=window.getComputedStyle(e).getPropertyValue("display");return b.includes(t)||"table-"===t.substr(0,6)}h.isInTextBlock=function(n){if(y(n))return!1;var e=function(e){for(var t=h.getComposedParent(e);t&&!y(t);)t=h.getComposedParent(t);return axe.utils.getNodeFromTree(t)}(n),r="",a="",o=0;return function t(e,n){!1!==n(e.actualNode)&&e.children.forEach(function(e){return t(e,n)})}(e,function(e){if(2===o)return!1;if(3===e.nodeType&&(r+=e.nodeValue),1===e.nodeType){var t=(e.nodeName||"").toUpperCase();if(["BR","HR"].includes(t))0===o?a=r="":o=2;else{if("none"===e.style.display||"hidden"===e.style.overflow||!["",null,"none"].includes(e.style.float)||!["",null,"relative"].includes(e.style.position))return!1;if("A"===t&&e.href||"link"===(e.getAttribute("role")||"").toLowerCase())return e===n&&(o=1),a+=e.textContent,!1}}}),r=axe.commons.text.sanitize(r),a=axe.commons.text.sanitize(a),r.length>a.length},h.isNode=function(e){"use strict";return e instanceof Node},h.isOffscreen=function(e){var t,n=document.documentElement,r=window.getComputedStyle(e),a=window.getComputedStyle(document.body||n).getPropertyValue("direction"),o=h.getElementCoordinates(e);if(o.bottom<0&&(function(e,t){for(e=h.getComposedParent(e);e&&"html"!==e.nodeName.toLowerCase();){if(e.scrollTop&&0<=(t+=e.scrollTop))return!1;e=h.getComposedParent(e)}return!0}(e,o.bottom)||"absolute"===r.position))return!0;if(0===o.left&&0===o.right)return!1;if("ltr"===a){if(o.right<=0)return!0}else if(t=Math.max(n.scrollWidth,h.getViewportSize(window).width),o.left>=t)return!0;return!1};var v=/^\/?#[^/!]/;h.isSkipLink=function(e){return!!v.test(e.getAttribute("href"))&&(void 0!==axe._cache.get("firstPageLink")?t=axe._cache.get("firstPageLink"):(t=axe.utils.querySelectorAll(axe._tree,'a:not([href^="#"]):not([href^="/#"]):not([href^="javascript"])')[0],axe._cache.set("firstPageLink",t||null)),!t||e.compareDocumentPosition(t.actualNode)===e.DOCUMENT_POSITION_FOLLOWING);var t},h.isVisible=function(e,t,n){"use strict";var r=axe.utils.getNodeFromTree(e),a="_isVisible"+(t?"ScreenReader":"");if(9===e.nodeType)return!0;if(11===e.nodeType&&(e=e.host),r&&void 0!==r[a])return r[a];var o=window.getComputedStyle(e,null);if(null===o)return!1;var i=e.nodeName.toUpperCase();if("none"===o.getPropertyValue("display")||["STYLE","SCRIPT","NOSCRIPT","TEMPLATE"].includes(i)||!t&&function(e){"use strict";var t=e.match(/rect\s*\(([0-9]+)px,?\s*([0-9]+)px,?\s*([0-9]+)px,?\s*([0-9]+)px\s*\)/);return!(!t||5!==t.length)&&(t[3]-t[1]<=0&&t[2]-t[4]<=0)}(o.getPropertyValue("clip"))||!n&&("hidden"===o.getPropertyValue("visibility")||!t&&h.isOffscreen(e))||t&&"true"===e.getAttribute("aria-hidden"))return!1;var u=e.assignedSlot?e.assignedSlot:e.parentNode,s=!1;return u&&(s=h.isVisible(u,t,!0)),r&&(r[a]=s),s};var D=["checkbox","img","radio","range","slider","spinbutton","textbox"];h.isVisualContent=function(e){var t=e.getAttribute("role");if(t)return-1!==D.indexOf(t);switch(e.nodeName.toUpperCase()){case"IMG":case"IFRAME":case"OBJECT":case"VIDEO":case"AUDIO":case"CANVAS":case"SVG":case"MATH":case"BUTTON":case"SELECT":case"TEXTAREA":case"KEYGEN":case"PROGRESS":case"METER":return!0;case"INPUT":return"hidden"!==e.type;default:return!1}},h.shadowElementsFromPoint=function(r,a){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:document,o=3<arguments.length&&void 0!==arguments[3]?arguments[3]:0;if(999<o)throw new Error("Infinite loop detected");return Array.from(t.elementsFromPoint(r,a)).filter(function(e){return h.getRootNode(e)===t}).reduce(function(e,t){if(axe.utils.isShadowRoot(t)){var n=h.shadowElementsFromPoint(r,a,t.shadowRoot,o+1);(e=e.concat(n)).length&&axe.commons.dom.visuallyContains(e[0],t)&&e.push(t)}else e.push(t);return e},[])},h.visuallyContains=function(e,t){var n=e.getBoundingClientRect(),r=n.top+.01,a=n.bottom-.01,o=n.left+.01,i=n.right-.01,u=t.getBoundingClientRect(),s=u.top,l=u.left,c=s-t.scrollTop,d=s-t.scrollTop+t.scrollHeight,m=l-t.scrollLeft,p=l-t.scrollLeft+t.scrollWidth,f=window.getComputedStyle(t);return"inline"===f.getPropertyValue("display")||!(o<m&&o<u.left||r<c&&r<u.top||p<i&&i>u.right||d<a&&a>u.bottom)&&(!(i>u.right||a>u.bottom)||("scroll"===f.overflow||"auto"===f.overflow||"hidden"===f.overflow||t instanceof HTMLBodyElement||t instanceof HTMLHtmlElement))},h.visuallyOverlaps=function(e,t){var n=t.getBoundingClientRect(),r=n.top,a=n.left,o=r-t.scrollTop,i=r-t.scrollTop+t.scrollHeight,u=a-t.scrollLeft,s=a-t.scrollLeft+t.scrollWidth;if(e.left>s&&e.left>n.right||e.top>i&&e.top>n.bottom||e.right<u&&e.right<n.left||e.bottom<o&&e.bottom<n.top)return!1;var l=window.getComputedStyle(t);return!(e.left>n.right||e.top>n.bottom)||("scroll"===l.overflow||"auto"===l.overflow||t instanceof HTMLBodyElement||t instanceof HTMLHtmlElement)},r.isAriaCombobox=function(e){return"combobox"===axe.commons.aria.getRole(e,{noImplicit:!0})},r.isAriaListbox=function(e){return"listbox"===axe.commons.aria.getRole(e,{noImplicit:!0})};var w=["progressbar","scrollbar","slider","spinbutton"];r.isAriaRange=function(e){var t=axe.commons.aria.getRole(e,{noImplicit:!0});return w.includes(t)},r.isAriaTextbox=function(e){return"textbox"===axe.commons.aria.getRole(e,{noImplicit:!0})},r.isNativeSelect=function(e){return"SELECT"===e.nodeName.toUpperCase()};var k=["button","checkbox","color","file","hidden","image","password","radio","reset","submit"];r.isNativeTextbox=function(e){var t=e.nodeName.toUpperCase();return"TEXTAREA"===t||"INPUT"===t&&!k.includes(e.type)},i.attributes=function(t,e){return t=t.actualNode||t,i.fromFunction(function(e){return t.getAttribute(e)},e)},i.condition=function(e,t){return!!t(e)};var x,E=["nodeName","attributes","properties","condition"];function C(e){var t=e.actualNode;return 3!==t.nodeType?"":t.textContent}i.fromDefinition=function(r,a){return r=r.actualNode||r,Array.isArray(a)?a.some(function(e){return i(r,e)}):"string"==typeof a?axe.utils.matchesSelector(r,a):Object.keys(a).every(function(e){if(!E.includes(e))throw new Error('Unknown matcher type "'.concat(e,'"'));var t=i[e],n=a[e];return t(r,n)})},i.fromFunction=function(t,n){if("object"!==S(n)||Array.isArray(n)||n instanceof RegExp)throw new Error("Expect matcher to be an object");return Object.keys(n).every(function(e){return i.fromPrimative(t(e),n[e])})},i.fromPrimative=function(e,t){var n=S(t);return Array.isArray(t)&&void 0!==e?t.includes(e):"function"===n?!!t(e):t instanceof RegExp?t.test(e):t===e},i.nodeName=function(e,t,n){var r=(2<arguments.length&&void 0!==n?n:{}).isXHTML;if(e=e.actualNode||e,void 0===r){if("string"==typeof t)return axe.utils.matchesSelector(e,t);void 0===x&&(x=axe.utils.isXHTML(e.ownerDocument)),r=x}var a=r?e.nodeName:e.nodeName.toLowerCase();return i.fromPrimative(a,t)},i.properties=function(t,e){return t=t.actualNode||t,i.fromFunction(function(e){return t[e]},e)},o.getAllCells=function(e){var t,n,r,a,o=[];for(t=0,r=e.rows.length;t<r;t++)for(n=0,a=e.rows[t].cells.length;n<a;n++)o.push(e.rows[t].cells[n]);return o},o.getCellPosition=function(e,t){var n,r;for(t=t||o.toGrid(h.findUp(e,"table")),n=0;n<t.length;n++)if(t[n]&&-1!==(r=t[n].indexOf(e)))return{x:r,y:n}},o.getHeaders=function(e){if(e.hasAttribute("headers"))return commons.dom.idrefs(e,"headers");var t=commons.table.toGrid(commons.dom.findUp(e,"table")),n=commons.table.getCellPosition(e,t),r=o.traverse("left",n,t).filter(function(e){return o.isRowHeader(e)}),a=o.traverse("up",n,t).filter(function(e){return o.isColumnHeader(e)});return[].concat(r,a).reverse()},o.getScope=function(e){var t=e.getAttribute("scope"),n=e.getAttribute("role");if(e instanceof Element==!1||-1===["TD","TH"].indexOf(e.nodeName.toUpperCase()))throw new TypeError("Expected TD or TH element");if("columnheader"===n)return"col";if("rowheader"===n)return"row";if("col"===t||"row"===t)return t;if("TH"!==e.nodeName.toUpperCase())return!1;var r=o.toGrid(h.findUp(e,"table")),a=o.getCellPosition(e);return r[a.y].reduce(function(e,t){return e&&"TH"===t.nodeName.toUpperCase()},!0)?"col":r.map(function(e){return e[a.x]}).reduce(function(e,t){return e&&t&&"TH"===t.nodeName.toUpperCase()},!0)?"row":"auto"},o.isColumnHeader=function(e){return-1!==["col","auto"].indexOf(o.getScope(e))},o.isDataCell=function(e){if(!e.children.length&&!e.textContent.trim())return!1;var t=e.getAttribute("role");return axe.commons.aria.isValidRole(t)?["cell","gridcell"].includes(t):"TD"===e.nodeName.toUpperCase()},o.isDataTable=function(e){var t=(e.getAttribute("role")||"").toLowerCase();if(("presentation"===t||"none"===t)&&!h.isFocusable(e))return!1;if("true"===e.getAttribute("contenteditable")||h.findUp(e,'[contenteditable="true"]'))return!0;if("grid"===t||"treegrid"===t||"table"===t)return!0;if("landmark"===commons.aria.getRoleType(t))return!0;if("0"===e.getAttribute("datatable"))return!1;if(e.getAttribute("summary"))return!0;if(e.tHead||e.tFoot||e.caption)return!0;for(var n=0,r=e.children.length;n<r;n++)if("COLGROUP"===e.children[n].nodeName.toUpperCase())return!0;for(var a,o,i=0,u=e.rows.length,s=!1,l=0;l<u;l++)for(var c=0,d=(a=e.rows[l]).cells.length;c<d;c++){if("TH"===(o=a.cells[c]).nodeName.toUpperCase())return!0;if(s||o.offsetWidth===o.clientWidth&&o.offsetHeight===o.clientHeight||(s=!0),o.getAttribute("scope")||o.getAttribute("headers")||o.getAttribute("abbr"))return!0;if(["columnheader","rowheader"].includes((o.getAttribute("role")||"").toLowerCase()))return!0;if(1===o.children.length&&"ABBR"===o.children[0].nodeName.toUpperCase())return!0;i++}if(e.getElementsByTagName("table").length)return!1;if(u<2)return!1;var m,p,f=e.rows[Math.ceil(u/2)];if(1===f.cells.length&&1===f.cells[0].colSpan)return!1;if(5<=f.cells.length)return!0;if(s)return!0;for(l=0;l<u;l++){if(a=e.rows[l],m&&m!==window.getComputedStyle(a).getPropertyValue("background-color"))return!0;if(m=window.getComputedStyle(a).getPropertyValue("background-color"),p&&p!==window.getComputedStyle(a).getPropertyValue("background-image"))return!0;p=window.getComputedStyle(a).getPropertyValue("background-image")}return 20<=u||!(h.getElementCoordinates(e).width>.95*h.getViewportSize(window).width)&&(!(i<10)&&!e.querySelector("object, embed, iframe, applet"))},o.isHeader=function(e){if(o.isColumnHeader(e)||o.isRowHeader(e))return!0;if(e.getAttribute("id")){var t=axe.utils.escapeSelector(e.getAttribute("id"));return!!document.querySelector('[headers~="'.concat(t,'"]'))}return!1},o.isRowHeader=function(e){return["row","auto"].includes(o.getScope(e))},o.toGrid=function(e){for(var t=[],n=e.rows,r=0,a=n.length;r<a;r++){var o=n[r].cells;t[r]=t[r]||[];for(var i=0,u=0,s=o.length;u<s;u++)for(var l=0;l<o[u].colSpan;l++){for(var c=0;c<o[u].rowSpan;c++){for(t[r+c]=t[r+c]||[];t[r+c][i];)i++;t[r+c][i]=o[u]}i++}}return t},o.toArray=o.toGrid,o.traverse=function(e,t,n,r){if(Array.isArray(t)&&(r=n,n=t,t={x:0,y:0}),"string"==typeof e)switch(e){case"left":e={x:-1,y:0};break;case"up":e={x:0,y:-1};break;case"right":e={x:1,y:0};break;case"down":e={x:0,y:1}}return function e(t,n,r,a){var o,i=r[n.y]?r[n.y][n.x]:void 0;return i?"function"==typeof a&&!0===(o=a(i,n,r))?[i]:((o=e(t,{x:n.x+t.x,y:n.y+t.y},r,a)).unshift(i),o):[]}(e,{x:t.x+e.x,y:t.y+e.y},n,r)},g.accessibleText=function(e,t){var n=axe.utils.getNodeFromTree(e);return g.accessibleTextVirtual(n,t)},g.accessibleTextVirtual=function(n,e){var r=1<arguments.length&&void 0!==e?e:{},t=n.actualNode;if(r=function(e,t){var n=e.actualNode;t.startNode||(t=R({startNode:e},t));1===n.nodeType&&t.inLabelledByContext&&void 0===t.includeHidden&&(t=R({includeHidden:!h.isVisible(n,!0)},t));return t}(n,r),function(e,t){var n=e.actualNode;if(1!==n.nodeType||t.includeHidden)return!1;return!h.isVisible(n,!0)}(n,r))return"";var a=[l.arialabelledbyText,l.arialabelText,g.nativeTextAlternative,g.formControlValue,g.subtreeText,C,g.titleText].reduce(function(e,t){return r.startNode===n&&(e=g.sanitize(e)),""!==e?e:t(n,r)},"");return r.debug&&axe.log(a||"{empty-value}",t,r),a},g.accessibleTextVirtual.alreadyProcessed=function(e,t){return t.processed=t.processed||[],!!t.processed.includes(e)||(t.processed.push(e),!1)};var A=["textbox","progressbar","scrollbar","slider","spinbutton","combobox","listbox"];g.formControlValueMethods={nativeTextboxValue:function(e){if(e=e.actualNode||e,axe.commons.forms.isNativeTextbox(e))return e.value||"";return""},nativeSelectValue:function(e){return e=e.actualNode||e,axe.commons.forms.isNativeSelect(e)&&Array.from(e.options).filter(function(e){return e.selected}).map(function(e){return e.text}).join(" ")||""},ariaTextboxValue:function(e){var t=e.actualNode;if(!axe.commons.forms.isAriaTextbox(t))return"";return h.isHiddenWithCSS(t)?t.textContent:g.visibleVirtual(e,!0)},ariaListboxValue:function(e,t){var n=e.actualNode;if(!axe.commons.forms.isAriaListbox(n))return"";var r=l.getOwnedVirtual(e).filter(function(e){return"option"===l.getRole(e)&&"true"===e.actualNode.getAttribute("aria-selected")});return 0!==r.length?axe.commons.text.accessibleTextVirtual(r[0],t):""},ariaComboboxValue:function(e,t){var n,r=e.actualNode;return axe.commons.forms.isAriaCombobox(r)&&(n=l.getOwnedVirtual(e).filter(function(e){return"listbox"===l.getRole(e)})[0])?g.formControlValueMethods.ariaListboxValue(n,t):""},ariaRangeValue:function(e){if(e=e.actualNode||e,!axe.commons.forms.isAriaRange(e)||!e.hasAttribute("aria-valuenow"))return"";var t=+e.getAttribute("aria-valuenow");return isNaN(t)?"0":String(t)}},g.formControlValue=function(n,e){var r=1<arguments.length&&void 0!==e?e:{},t=n.actualNode,a=g.unsupported.accessibleNameFromFieldValue||[],o=l.getRole(t);if(r.startNode===n||!A.includes(o)||a.includes(o))return"";var i=Object.keys(g.formControlValueMethods).map(function(e){return g.formControlValueMethods[e]}).reduce(function(e,t){return e||t(n,r)},"");return r.debug&&axe.log(i||"{empty-value}",t,r),i},g.isHumanInterpretable=function(e){if(!e.length)return 0;if(["x","i"].includes(e))return 0;var t=g.removeUnicode(e,{emoji:!0,nonBmp:!0,punctuations:!0});return g.sanitize(t)?1:0};g.autocomplete={stateTerms:["on","off"],standaloneTerms:["name","honorific-prefix","given-name","additional-name","family-name","honorific-suffix","nickname","username","new-password","current-password","organization-title","organization","street-address","address-line1","address-line2","address-line3","address-level4","address-level3","address-level2","address-level1","country","country-name","postal-code","cc-name","cc-given-name","cc-additional-name","cc-family-name","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc","cc-type","transaction-currency","transaction-amount","language","bday","bday-day","bday-month","bday-year","sex","url","photo"],qualifiers:["home","work","mobile","fax","pager"],qualifiedTerms:["tel","tel-country-code","tel-national","tel-area-code","tel-local","tel-local-prefix","tel-local-suffix","tel-extension","email","impp"],locations:["billing","shipping"]},g.isValidAutocomplete=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=n.looseTyped,a=void 0!==r&&r,o=n.stateTerms,i=void 0===o?[]:o,u=n.locations,s=void 0===u?[]:u,l=n.qualifiers,c=void 0===l?[]:l,d=n.standaloneTerms,m=void 0===d?[]:d,p=n.qualifiedTerms,f=void 0===p?[]:p;if(e=e.toLowerCase().trim(),(i=i.concat(g.autocomplete.stateTerms)).includes(e)||""===e)return!0;c=c.concat(g.autocomplete.qualifiers),s=s.concat(g.autocomplete.locations),m=m.concat(g.autocomplete.standaloneTerms),f=f.concat(g.autocomplete.qualifiedTerms);var h=e.split(/\s+/g);if(!a&&(8<h[0].length&&"section-"===h[0].substr(0,8)&&h.shift(),s.includes(h[0])&&h.shift(),c.includes(h[0])&&(h.shift(),m=[]),1!==h.length))return!1;var b=h[h.length-1];return m.includes(b)||f.includes(b)},g.labelText=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=g.accessibleTextVirtual.alreadyProcessed;if(n.inControlContext||n.inLabelledByContext||r(e,n))return"";n.startNode||(n.startNode=e);var a,o=R({inControlContext:!0},n),i=function(e){var t=e.actualNode;return t.id?h.findElmsInContext({elm:"label",attr:"for",value:t.id,context:t}):[]}(e),u=h.findUpVirtual(e,"label");return u?(a=[].concat(he(i),[u])).sort(axe.utils.nodeSorter):a=i,a.map(function(e){return g.accessibleText(e,o)}).filter(function(e){return""!==e}).join(" ")},g.labelVirtual=function(e){var t,n;if(n=l.labelVirtual(e))return n;if(e.actualNode.id){var r=axe.utils.escapeSelector(e.actualNode.getAttribute("id"));if(n=(t=axe.commons.dom.getRootNode(e.actualNode).querySelector('label[for="'+r+'"]'))&&g.visible(t,!0))return n}return(n=(t=h.findUpVirtual(e,"label"))&&g.visible(t,!0))||null},g.label=function(e){return e=axe.utils.getNodeFromTree(e),g.labelVirtual(e)},g.nativeElementType=[{matches:[{nodeName:"textarea"},{nodeName:"input",properties:{type:["text","password","search","tel","email","url"]}}],namingMethods:"labelText"},{matches:{nodeName:"input",properties:{type:["button","submit","reset"]}},namingMethods:["valueText","titleText","buttonDefaultText"]},{matches:{nodeName:"input",properties:{type:"image"}},namingMethods:["altText","valueText","labelText","titleText","buttonDefaultText"]},{matches:"button",namingMethods:"subtreeText"},{matches:"fieldset",namingMethods:"fieldsetLegendText"},{matches:"OUTPUT",namingMethods:"subtreeText"},{matches:[{nodeName:"select"},{nodeName:"input",properties:{type:/^(?!text|password|search|tel|email|url|button|submit|reset)/}}],namingMethods:"labelText"},{matches:"summary",namingMethods:"subtreeText"},{matches:"figure",namingMethods:["figureText","titleText"]},{matches:"img",namingMethods:"altText"},{matches:"table",namingMethods:["tableCaptionText","tableSummaryText"]},{matches:["hr","br"],namingMethods:["titleText","singleSpace"]}],g.nativeTextAlternative=function(n,e){var r=1<arguments.length&&void 0!==e?e:{},t=n.actualNode;if(1!==t.nodeType||["presentation","none"].includes(l.getRole(t)))return"";var a=function(n){var e=g.nativeElementType,t=g.nativeTextMethods,r=e.find(function(e){var t=e.matches;return axe.commons.matches(n,t)});return(r?[].concat(r.namingMethods):[]).map(function(e){return t[e]})}(n).reduce(function(e,t){return e||t(n,r)},"");return r.debug&&axe.log(a||"{empty-value}",t,r),a};var F={submit:"Submit",image:"Submit",reset:"Reset",button:""};function j(e,t){return t.actualNode.getAttribute(e)||""}function z(e,t,n){var r=t.actualNode,a=[e=e.toLowerCase(),r.nodeName.toLowerCase()].join(","),o=r.querySelector(a);return o&&o.nodeName.toLowerCase()===e?g.accessibleText(o,n):""}g.nativeTextMethods={valueText:function(e){return e.actualNode.value||""},buttonDefaultText:function(e){var t=e.actualNode;return F[t.type]||""},tableCaptionText:z.bind(null,"caption"),figureText:z.bind(null,"figcaption"),fieldsetLegendText:z.bind(null,"legend"),altText:j.bind(null,"alt"),tableSummaryText:j.bind(null,"summary"),titleText:function(e,t){return g.titleText(e,t)},subtreeText:function(e,t){return g.subtreeText(e,t)},labelText:function(e,t){return g.labelText(e,t)},singleSpace:function(){return" "}},g.sanitize=function(e){"use strict";return e.replace(/\r\n/g,"\n").replace(/\u00A0/g," ").replace(/[\s]{2,}/g," ").trim()},g.subtreeText=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=g.accessibleTextVirtual.alreadyProcessed;n.startNode=n.startNode||e;var a=n.strict;return r(e,n)||!l.namedFromContents(e,{strict:a})?"":l.getOwnedVirtual(e).reduce(function(e,t){return function(e,t,n){var r=t.actualNode.nodeName.toUpperCase(),a=g.accessibleTextVirtual(t,n);if(!a)return e;q.includes(r)||(" "!==a[0]&&(a+=" "),e&&" "!==e[e.length-1]&&(a=" "+a));return e+a}(e,t,n)},"")};var q=["A","EM","STRONG","SMALL","MARK","ABBR","DFN","I","B","S","U","CODE","VAR","SAMP","KBD","SUP","SUB","Q","CITE","SPAN","BDO","BDI","WBR","INS","DEL","MAP","AREA","NOSCRIPT","RUBY","BUTTON","LABEL","OUTPUT","DATALIST","KEYGEN","PROGRESS","COMMAND","CANVAS","TIME","METER","#TEXT"];var N=["button","iframe","a[href]",{nodeName:"input",properties:{type:"button"}}];function T(){return new RegExp("[ᴀ-ᵿᶀ-ᶿ᷀-᷿₠-⃏⃐-⃿℀-⅏⅐-↏←-⇿∀-⋿⌀-⏿␀-␿⑀-⑟①-⓿─-╿▀-▟■-◿☀-⛿✀-➿]")}return g.titleText=function(e){return 1===(e=e.actualNode||e).nodeType&&e.hasAttribute("title")?!axe.commons.matches(e,N)&&["none","presentation"].includes(l.getRole(e))?"":e.getAttribute("title"):""},g.hasUnicode=function(e,t){var n=t.emoji,r=t.nonBmp,a=t.punctuations;return n?axe.imports.emojiRegexText().test(e):r?T().test(e):!!a&&/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]/g.test(e)},g.removeUnicode=function(e,t){var n=t.emoji,r=t.nonBmp,a=t.punctuations;return n&&(e=e.replace(axe.imports.emojiRegexText(),"")),r&&(e=e.replace(T(),"")),a&&(e=e.replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]/g,"")),e},g.unsupported={accessibleNameFromFieldValue:["combobox","listbox","progressbar"]},g.visibleVirtual=function(n,r,a){var e=n.children.map(function(e){if(3===e.actualNode.nodeType){var t=e.actualNode.nodeValue;if(t&&h.isVisible(n.actualNode,r))return t}else if(!a)return g.visibleVirtual(e,r)}).join("");return g.sanitize(e)},g.visible=function(e,t,n){return e=axe.utils.getNodeFromTree(e),g.visibleVirtual(e,t,n)},commons}()})}("object"==typeof window?window:this);
##############################################
chromium-84.0.4147.105/third_party/pycoverage/CHANGES.txt-37-  ``~build/src``, for example), and with environment variable expansion
chromium-84.0.4147.105/third_party/pycoverage/CHANGES.txt:38:  (``build/$BUILDNUM/src``).
chromium-84.0.4147.105/third_party/pycoverage/CHANGES.txt-39-
##############################################
chromium-84.0.4147.105/third_party/pycoverage/CHANGES.txt-131-- Configuration files now support substitution of environment variables, using
chromium-84.0.4147.105/third_party/pycoverage/CHANGES.txt:132:  syntax like ``${WORD}``.  Closes `issue 97`_.
chromium-84.0.4147.105/third_party/pycoverage/CHANGES.txt-133-
##############################################
chromium-84.0.4147.105/third_party/pycoverage/coverage/collector.py-239-    # The trace function has to be set individually on each thread before
chromium-84.0.4147.105/third_party/pycoverage/coverage/collector.py:240:    # execution begins.  Ironically, the only support the threading module has
chromium-84.0.4147.105/third_party/pycoverage/coverage/collector.py-241-    # for running code before the thread main is the tracing function.  So we
##############################################
chromium-84.0.4147.105/third_party/ow2_asm/cipd.yaml-7-package: chromium/third_party/ow2_asm
chromium-84.0.4147.105/third_party/ow2_asm/cipd.yaml:8:description: ow2_asm Java library
chromium-84.0.4147.105/third_party/ow2_asm/cipd.yaml-9-data:
##############################################
chromium-84.0.4147.105/third_party/ow2_asm/README.chromium-6-Security Critical: no
chromium-84.0.4147.105/third_party/ow2_asm/README.chromium:7:Description: ASM is a Java bytecode manipulation and analysis framework.
chromium-84.0.4147.105/third_party/ow2_asm/README.chromium-8-Local Modifications: None
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-845-    if (el.id) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:846:      let matching = root.querySelectorAll(`label[for = ${el.id}]`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-847-      for (let i = 0; i < matching.length; i++) {
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-2696-      // use regex match position to replace mixin, keep linear processing time
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:2697:      text = `${textBeforeApply}${replacement}${textAfterApply}`;
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-2698-      // move regex search to _after_ replacement
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-2826-        if (value && this._map.get(value)) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:2827:          valueMixin = `@apply ${value};`;
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-2828-        }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-2862-      }
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:2863:      out.push(`${propertyName}${MIXIN_VAR_SEP}${p}: ${v}`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-2864-    }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-2881-    if (valueProperty) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:2882:      prefix = `${matchText};${prefix}`;
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-2883-    }
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:2884:    return `${prefix}${out.join('; ')};`;
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-2885-  }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-3571-        setModule(id, null);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:3572:        throw new Error(`strictTemplatePolicy: dom-module ${id} re-registered`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-3573-      }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-4919-            outValue = null;
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:4920:            console.warn(`Polymer::Attributes: couldn't decode Array as JSON: ${value}`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-4921-          }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-5084- * - Declarative event listeners (`on-eventname="listener"`)
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:5085: * - Map of node id's to stamped node instances (`this.$.id`)
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-5086- * - Nested template content caching/removal and re-installation (performance
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8767-      if (proto._hasReadOnlyEffect(name)) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:8768:        console.warn(`Cannot redefine computed property '${name}'.`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8769-      } else {
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8775-    } else if (info.readOnly === false && proto._hasReadOnlyEffect(name)) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:8776:      console.warn(`Cannot make readOnly property '${name}' non-readOnly.`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8777-    }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8780-    } else if (info.reflectToAttribute === false && proto._hasReflectEffect(name)) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:8781:      console.warn(`Cannot make reflected property '${name}' non-reflected.`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8782-    }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8785-    } else if (info.notify === false && proto._hasNotifyEffect(name)) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:8786:      console.warn(`Cannot make notify property '${name}' non-notify.`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8787-    }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8857-      if (strictTemplatePolicy && !template) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:8858:        throw new Error(`strictTemplatePolicy: expecting dom-module or null template for ${is}`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-8859-      }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-9324-      if (legacyOptimizations && !(prop in this._properties)) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:9325:        console.warn(`Property '${prop}' used in template but not declared in 'properties'; ` +
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-9326-          `attribute will not be observed.`);
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-13207-    throw new Error(
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:13208:        `non-literal value passed to Polymer's htmlLiteral function: ${value}`
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-13209-    );
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-13223-    throw new Error(
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:13224:        `non-template value passed to Polymer's html function: ${value}`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-13225-  }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-13378- * `dom-repeat` that stamped it, for example
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:13379: * `this.$.domRepeat.modelForElement(event.target).set('item.checked', true);`.
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-13380- * This may be useful for manipulating instance data of event targets obtained
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-13670-            }
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:13671:            let path = translate(this.as, `${JSCompiler_renameProperty('items', this)}.${idx}`, prop);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-13672-            this.notifyPath(path, value);
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14421-        this.__lastMulti = multi;
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:14422:      } else if (itemsInfo.path == `${JSCompiler_renameProperty('items', this)}.splices`) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14423-        // Case 2 - got specific splice information describing the array mutation:
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14428-        // item for that index if it was previously selected
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:14429:        let part = path.slice(`${JSCompiler_renameProperty('items', this)}.`.length);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14430-        let idx = parseInt(part, 10);
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14482-            this.linkPaths(
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:14483:                `${JSCompiler_renameProperty('items', this)}.${idx}`,
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:14484:                `${JSCompiler_renameProperty('selected', this)}.${sidx++}`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14485-          }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14490-              JSCompiler_renameProperty('selected', this),
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:14491:              `${JSCompiler_renameProperty('items', this)}.${idx}`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14492-          this.linkPaths(
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14493-              JSCompiler_renameProperty('selectedItem', this),
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:14494:              `${JSCompiler_renameProperty('items', this)}.${idx}`);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14495-        });
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14551-    __selectedIndexForItemIndex(idx) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:14552:      let selected = this.__dataLinkedPaths[`${JSCompiler_renameProperty('items', this)}.${idx}`];
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14553-      if (selected) {
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js:14554:        return parseInt(selected.slice(`${JSCompiler_renameProperty('selected', this)}.`.length), 10);
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.js-14555-      }
##############################################
chromium-84.0.4147.105/third_party/polymer/v3_0/components-chromium/polymer/polymer_bundled.min.js:1:window.JSCompiler_renameProperty=function(prop,obj){return prop};let scheduled=false;let beforeRenderQueue=[];let afterRenderQueue=[];function schedule(){scheduled=true;requestAnimationFrame(function(){scheduled=false;flushQueue(beforeRenderQueue);setTimeout(function(){runQueue(afterRenderQueue)})})}function flushQueue(queue){while(queue.length){callMethod(queue.shift())}}function runQueue(queue){for(let i=0,l=queue.length;i<l;i++){callMethod(queue.shift())}}function callMethod(info){const context=info[0];const callback=info[1];const args=info[2];try{callback.apply(context,args)}catch(e){setTimeout(()=>{throw e})}}function beforeNextRender(context,callback,args){if(!scheduled){schedule()}beforeRenderQueue.push([context,callback,args])}function afterNextRender(context,callback,args){if(!scheduled){schedule()}afterRenderQueue.push([context,callback,args])}let microtaskCurrHandle=0;let microtaskLastHandle=0;let microtaskCallbacks=[];let microtaskNodeContent=0;let microtaskNode=document.createTextNode("");new window.MutationObserver(microtaskFlush).observe(microtaskNode,{characterData:true});function microtaskFlush(){const len=microtaskCallbacks.length;for(let i=0;i<len;i++){let cb=microtaskCallbacks[i];if(cb){try{cb()}catch(e){setTimeout(()=>{throw e})}}}microtaskCallbacks.splice(0,len);microtaskLastHandle+=len}const timeOut={after(delay){return{run(fn){return window.setTimeout(fn,delay)},cancel(handle){window.clearTimeout(handle)}}},run(fn,delay){return window.setTimeout(fn,delay)},cancel(handle){window.clearTimeout(handle)}};const animationFrame={run(fn){return window.requestAnimationFrame(fn)},cancel(handle){window.cancelAnimationFrame(handle)}};const idlePeriod={run(fn){return window.requestIdleCallback?window.requestIdleCallback(fn):window.setTimeout(fn,16)},cancel(handle){window.cancelIdleCallback?window.cancelIdleCallback(handle):window.clearTimeout(handle)}};const microTask={run(callback){microtaskNode.textContent=microtaskNodeContent++;microtaskCallbacks.push(callback);return microtaskCurrHandle++},cancel(handle){const idx=handle-microtaskLastHandle;if(idx>=0){if(!microtaskCallbacks[idx]){throw new Error("invalid async handle: "+handle)}microtaskCallbacks[idx]=null}}};let dedupeId=0;const dedupingMixin=function(mixin){let mixinApplications=mixin.__mixinApplications;if(!mixinApplications){mixinApplications=new WeakMap;mixin.__mixinApplications=mixinApplications}let mixinDedupeId=dedupeId++;function dedupingMixin(base){let baseSet=base.__mixinSet;if(baseSet&&baseSet[mixinDedupeId]){return base}let map=mixinApplications;let extended=map.get(base);if(!extended){extended=mixin(base);map.set(base,extended)}let mixinSet=Object.create(extended.__mixinSet||baseSet||null);mixinSet[mixinDedupeId]=true;extended.__mixinSet=mixinSet;return extended}return dedupingMixin};class Debouncer{constructor(){this._asyncModule=null;this._callback=null;this._timer=null}setConfig(asyncModule,callback){this._asyncModule=asyncModule;this._callback=callback;this._timer=this._asyncModule.run(()=>{this._timer=null;debouncerQueue.delete(this);this._callback()})}cancel(){if(this.isActive()){this._cancelAsync();debouncerQueue.delete(this)}}_cancelAsync(){if(this.isActive()){this._asyncModule.cancel(this._timer);this._timer=null}}flush(){if(this.isActive()){this.cancel();this._callback()}}isActive(){return this._timer!=null}static debounce(debouncer,asyncModule,callback){if(debouncer instanceof Debouncer){debouncer._cancelAsync()}else{debouncer=new Debouncer}debouncer.setConfig(asyncModule,callback);return debouncer}}let debouncerQueue=new Set;const enqueueDebouncer=function(debouncer){debouncerQueue.add(debouncer)};const flushDebouncers=function(){const didFlush=Boolean(debouncerQueue.size);debouncerQueue.forEach(debouncer=>{try{debouncer.flush()}catch(e){setTimeout(()=>{throw e})}});return didFlush};let CSS_URL_RX=/(url\()([^)]*)(\))/g;let ABS_URL=/(^\/)|(^#)|(^[\w-\d]*:)/;let workingURL;let resolveDoc;function resolveUrl(url,baseURI){if(url&&ABS_URL.test(url)){return url}if(workingURL===undefined){workingURL=false;try{const u=new URL("b","http://a");u.pathname="c%20d";workingURL=u.href==="http://a/c%20d"}catch(e){}}if(!baseURI){baseURI=document.baseURI||window.location.href}if(workingURL){return new URL(url,baseURI).href}if(!resolveDoc){resolveDoc=document.implementation.createHTMLDocument("temp");resolveDoc.base=resolveDoc.createElement("base");resolveDoc.head.appendChild(resolveDoc.base);resolveDoc.anchor=resolveDoc.createElement("a");resolveDoc.body.appendChild(resolveDoc.anchor)}resolveDoc.base.href=baseURI;resolveDoc.anchor.href=url;return resolveDoc.anchor.href||url}function resolveCss(cssText,baseURI){return cssText.replace(CSS_URL_RX,function(m,pre,url,post){return pre+"'"+resolveUrl(url.replace(/["']/g,""),baseURI)+"'"+post})}function pathFromUrl(url){return url.substring(0,url.lastIndexOf("/")+1)}const useShadow=!window.ShadyDOM;const useNativeCSSProperties=Boolean(!window.ShadyCSS||window.ShadyCSS.nativeCss);const useNativeCustomElements=!window.customElements.polyfillWrapFlushCallback;let rootPath=pathFromUrl(document.baseURI||window.location.href);let sanitizeDOMValue=window.Polymer&&window.Polymer.sanitizeDOMValue||undefined;let passiveTouchGestures=false;let strictTemplatePolicy=false;let allowTemplateFromDomModule=false;let legacyOptimizations=false;let syncInitialRender=false;const wrap=window["ShadyDOM"]&&window["ShadyDOM"]["noPatch"]&&window["ShadyDOM"]["wrap"]?window["ShadyDOM"]["wrap"]:n=>n;let HAS_NATIVE_TA=typeof document.head.style.touchAction==="string";let GESTURE_KEY="__polymerGestures";let HANDLED_OBJ="__polymerGesturesHandled";let TOUCH_ACTION="__polymerGesturesTouchAction";let TAP_DISTANCE=25;let TRACK_DISTANCE=5;let TRACK_LENGTH=2;let MOUSE_TIMEOUT=2500;let MOUSE_EVENTS=["mousedown","mousemove","mouseup","click"];let MOUSE_WHICH_TO_BUTTONS=[0,1,4,2];let MOUSE_HAS_BUTTONS=function(){try{return new MouseEvent("test",{buttons:1}).buttons===1}catch(e){return false}}();function isMouseEvent(name){return MOUSE_EVENTS.indexOf(name)>-1}let SUPPORTS_PASSIVE=false;(function(){try{let opts=Object.defineProperty({},"passive",{get(){SUPPORTS_PASSIVE=true}});window.addEventListener("test",null,opts);window.removeEventListener("test",null,opts)}catch(e){}})();function PASSIVE_TOUCH(eventName){if(isMouseEvent(eventName)||eventName==="touchend"){return}if(HAS_NATIVE_TA&&SUPPORTS_PASSIVE&&passiveTouchGestures){return{passive:true}}else{return}}let IS_TOUCH_ONLY=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);const clickedLabels=[];const labellable={button:true,input:true,keygen:true,meter:true,output:true,textarea:true,progress:true,select:true};const canBeDisabled={button:true,command:true,fieldset:true,input:true,keygen:true,optgroup:true,option:true,select:true,textarea:true};function canBeLabelled(el){return labellable[el.localName]||false}function matchingLabels(el){let labels=Array.prototype.slice.call(el.labels||[]);if(!labels.length){labels=[];let root=el.getRootNode();if(el.id){let matching=root.querySelectorAll(`label[for = ${el.id}]`);for(let i=0;i<matching.length;i++){labels.push(matching[i])}}}return labels}let mouseCanceller=function(mouseEvent){let sc=mouseEvent.sourceCapabilities;if(sc&&!sc.firesTouchEvents){return}mouseEvent[HANDLED_OBJ]={skip:true};if(mouseEvent.type==="click"){let clickFromLabel=false;let path=getComposedPath(mouseEvent);for(let i=0;i<path.length;i++){if(path[i].nodeType===Node.ELEMENT_NODE){if(path[i].localName==="label"){clickedLabels.push(path[i])}else if(canBeLabelled(path[i])){let ownerLabels=matchingLabels(path[i]);for(let j=0;j<ownerLabels.length;j++){clickFromLabel=clickFromLabel||clickedLabels.indexOf(ownerLabels[j])>-1}}}if(path[i]===POINTERSTATE.mouse.target){return}}if(clickFromLabel){return}mouseEvent.preventDefault();mouseEvent.stopPropagation()}};function setupTeardownMouseCanceller(setup){let events=IS_TOUCH_ONLY?["click"]:MOUSE_EVENTS;for(let i=0,en;i<events.length;i++){en=events[i];if(setup){clickedLabels.length=0;document.addEventListener(en,mouseCanceller,true)}else{document.removeEventListener(en,mouseCanceller,true)}}}function ignoreMouse(e){if(!POINTERSTATE.mouse.mouseIgnoreJob){setupTeardownMouseCanceller(true)}let unset=function(){setupTeardownMouseCanceller();POINTERSTATE.mouse.target=null;POINTERSTATE.mouse.mouseIgnoreJob=null};POINTERSTATE.mouse.target=getComposedPath(e)[0];POINTERSTATE.mouse.mouseIgnoreJob=Debouncer.debounce(POINTERSTATE.mouse.mouseIgnoreJob,timeOut.after(MOUSE_TIMEOUT),unset)}function hasLeftMouseButton(ev){let type=ev.type;if(!isMouseEvent(type)){return false}if(type==="mousemove"){let buttons=ev.buttons===undefined?1:ev.buttons;if(ev instanceof window.MouseEvent&&!MOUSE_HAS_BUTTONS){buttons=MOUSE_WHICH_TO_BUTTONS[ev.which]||0}return Boolean(buttons&1)}else{let button=ev.button===undefined?0:ev.button;return button===0}}function isSyntheticClick(ev){if(ev.type==="click"){if(ev.detail===0){return true}let t=_findOriginalTarget(ev);if(!t.nodeType||t.nodeType!==Node.ELEMENT_NODE){return true}let bcr=t.getBoundingClientRect();let x=ev.pageX,y=ev.pageY;return!(x>=bcr.left&&x<=bcr.right&&(y>=bcr.top&&y<=bcr.bottom))}return false}let POINTERSTATE={mouse:{target:null,mouseIgnoreJob:null},touch:{x:0,y:0,id:-1,scrollDecided:false}};function firstTouchAction(ev){let ta="auto";let path=getComposedPath(ev);for(let i=0,n;i<path.length;i++){n=path[i];if(n[TOUCH_ACTION]){ta=n[TOUCH_ACTION];break}}return ta}function trackDocument(stateObj,movefn,upfn){stateObj.movefn=movefn;stateObj.upfn=upfn;document.addEventListener("mousemove",movefn);document.addEventListener("mouseup",upfn)}function untrackDocument(stateObj){document.removeEventListener("mousemove",stateObj.movefn);document.removeEventListener("mouseup",stateObj.upfn);stateObj.movefn=null;stateObj.upfn=null}document.addEventListener("touchend",ignoreMouse,SUPPORTS_PASSIVE?{passive:true}:false);const getComposedPath=window.ShadyDOM&&window.ShadyDOM.noPatch?window.ShadyDOM.composedPath:event=>event.composedPath&&event.composedPath()||[];const gestures={};const recognizers=[];function deepTargetFind(x,y){let node=document.elementFromPoint(x,y);let next=node;while(next&&next.shadowRoot&&!window.ShadyDOM){let oldNext=next;next=next.shadowRoot.elementFromPoint(x,y);if(oldNext===next){break}if(next){node=next}}return node}function _findOriginalTarget(ev){const path=getComposedPath(ev);return path.length>0?path[0]:ev.target}function _handleNative(ev){let handled;let type=ev.type;let node=ev.currentTarget;let gobj=node[GESTURE_KEY];if(!gobj){return}let gs=gobj[type];if(!gs){return}if(!ev[HANDLED_OBJ]){ev[HANDLED_OBJ]={};if(type.slice(0,5)==="touch"){ev=ev;let t=ev.changedTouches[0];if(type==="touchstart"){if(ev.touches.length===1){POINTERSTATE.touch.id=t.identifier}}if(POINTERSTATE.touch.id!==t.identifier){return}if(!HAS_NATIVE_TA){if(type==="touchstart"||type==="touchmove"){_handleTouchAction(ev)}}}}handled=ev[HANDLED_OBJ];if(handled.skip){return}for(let i=0,r;i<recognizers.length;i++){r=recognizers[i];if(gs[r.name]&&!handled[r.name]){if(r.flow&&r.flow.start.indexOf(ev.type)>-1&&r.reset){r.reset()}}}for(let i=0,r;i<recognizers.length;i++){r=recognizers[i];if(gs[r.name]&&!handled[r.name]){handled[r.name]=true;r[type](ev)}}}function _handleTouchAction(ev){let t=ev.changedTouches[0];let type=ev.type;if(type==="touchstart"){POINTERSTATE.touch.x=t.clientX;POINTERSTATE.touch.y=t.clientY;POINTERSTATE.touch.scrollDecided=false}else if(type==="touchmove"){if(POINTERSTATE.touch.scrollDecided){return}POINTERSTATE.touch.scrollDecided=true;let ta=firstTouchAction(ev);let shouldPrevent=false;let dx=Math.abs(POINTERSTATE.touch.x-t.clientX);let dy=Math.abs(POINTERSTATE.touch.y-t.clientY);if(!ev.cancelable);else if(ta==="none"){shouldPrevent=true}else if(ta==="pan-x"){shouldPrevent=dy>dx}else if(ta==="pan-y"){shouldPrevent=dx>dy}if(shouldPrevent){ev.preventDefault()}else{prevent("track")}}}function addListener(node,evType,handler){if(gestures[evType]){_add(node,evType,handler);return true}return false}function removeListener(node,evType,handler){if(gestures[evType]){_remove(node,evType,handler);return true}return false}function _add(node,evType,handler){let recognizer=gestures[evType];let deps=recognizer.deps;let name=recognizer.name;let gobj=node[GESTURE_KEY];if(!gobj){node[GESTURE_KEY]=gobj={}}for(let i=0,dep,gd;i<deps.length;i++){dep=deps[i];if(IS_TOUCH_ONLY&&isMouseEvent(dep)&&dep!=="click"){continue}gd=gobj[dep];if(!gd){gobj[dep]=gd={_count:0}}if(gd._count===0){node.addEventListener(dep,_handleNative,PASSIVE_TOUCH(dep))}gd[name]=(gd[name]||0)+1;gd._count=(gd._count||0)+1}node.addEventListener(evType,handler);if(recognizer.touchAction){setTouchAction(node,recognizer.touchAction)}}function _remove(node,evType,handler){let recognizer=gestures[evType];let deps=recognizer.deps;let name=recognizer.name;let gobj=node[GESTURE_KEY];if(gobj){for(let i=0,dep,gd;i<deps.length;i++){dep=deps[i];gd=gobj[dep];if(gd&&gd[name]){gd[name]=(gd[name]||1)-1;gd._count=(gd._count||1)-1;if(gd._count===0){node.removeEventListener(dep,_handleNative,PASSIVE_TOUCH(dep))}}}}node.removeEventListener(evType,handler)}function register(recog){recognizers.push(recog);for(let i=0;i<recog.emits.length;i++){gestures[recog.emits[i]]=recog}}function _findRecognizerByEvent(evName){for(let i=0,r;i<recognizers.length;i++){r=recognizers[i];for(let j=0,n;j<r.emits.length;j++){n=r.emits[j];if(n===evName){return r}}}return null}function setTouchAction(node,value){if(HAS_NATIVE_TA&&node instanceof HTMLElement){microTask.run(()=>{node.style.touchAction=value})}node[TOUCH_ACTION]=value}function _fire(target,type,detail){let ev=new Event(type,{bubbles:true,cancelable:true,composed:true});ev.detail=detail;wrap(target).dispatchEvent(ev);if(ev.defaultPrevented){let preventer=detail.preventer||detail.sourceEvent;if(preventer&&preventer.preventDefault){preventer.preventDefault()}}}function prevent(evName){let recognizer=_findRecognizerByEvent(evName);if(recognizer.info){recognizer.info.prevent=true}}function resetMouseCanceller(){if(POINTERSTATE.mouse.mouseIgnoreJob){POINTERSTATE.mouse.mouseIgnoreJob.flush()}}register({name:"downup",deps:["mousedown","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["down","up"],info:{movefn:null,upfn:null},reset:function(){untrackDocument(this.info)},mousedown:function(e){if(!hasLeftMouseButton(e)){return}let t=_findOriginalTarget(e);let self=this;let movefn=function movefn(e){if(!hasLeftMouseButton(e)){downupFire("up",t,e);untrackDocument(self.info)}};let upfn=function upfn(e){if(hasLeftMouseButton(e)){downupFire("up",t,e)}untrackDocument(self.info)};trackDocument(this.info,movefn,upfn);downupFire("down",t,e)},touchstart:function(e){downupFire("down",_findOriginalTarget(e),e.changedTouches[0],e)},touchend:function(e){downupFire("up",_findOriginalTarget(e),e.changedTouches[0],e)}});function downupFire(type,target,event,preventer){if(!target){return}_fire(target,type,{x:event.clientX,y:event.clientY,sourceEvent:event,preventer:preventer,prevent:function(e){return prevent(e)}})}register({name:"track",touchAction:"none",deps:["mousedown","touchstart","touchmove","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["track"],info:{x:0,y:0,state:"start",started:false,moves:[],addMove:function(move){if(this.moves.length>TRACK_LENGTH){this.moves.shift()}this.moves.push(move)},movefn:null,upfn:null,prevent:false},reset:function(){this.info.state="start";this.info.started=false;this.info.moves=[];this.info.x=0;this.info.y=0;this.info.prevent=false;untrackDocument(this.info)},mousedown:function(e){if(!hasLeftMouseButton(e)){return}let t=_findOriginalTarget(e);let self=this;let movefn=function movefn(e){let x=e.clientX,y=e.clientY;if(trackHasMovedEnough(self.info,x,y)){self.info.state=self.info.started?e.type==="mouseup"?"end":"track":"start";if(self.info.state==="start"){prevent("tap")}self.info.addMove({x:x,y:y});if(!hasLeftMouseButton(e)){self.info.state="end";untrackDocument(self.info)}if(t){trackFire(self.info,t,e)}self.info.started=true}};let upfn=function upfn(e){if(self.info.started){movefn(e)}untrackDocument(self.info)};trackDocument(this.info,movefn,upfn);this.info.x=e.clientX;this.info.y=e.clientY},touchstart:function(e){let ct=e.changedTouches[0];this.info.x=ct.clientX;this.info.y=ct.clientY},touchmove:function(e){let t=_findOriginalTarget(e);let ct=e.changedTouches[0];let x=ct.clientX,y=ct.clientY;if(trackHasMovedEnough(this.info,x,y)){if(this.info.state==="start"){prevent("tap")}this.info.addMove({x:x,y:y});trackFire(this.info,t,ct);this.info.state="track";this.info.started=true}},touchend:function(e){let t=_findOriginalTarget(e);let ct=e.changedTouches[0];if(this.info.started){this.info.state="end";this.info.addMove({x:ct.clientX,y:ct.clientY});trackFire(this.info,t,ct)}}});function trackHasMovedEnough(info,x,y){if(info.prevent){return false}if(info.started){return true}let dx=Math.abs(info.x-x);let dy=Math.abs(info.y-y);return dx>=TRACK_DISTANCE||dy>=TRACK_DISTANCE}function trackFire(info,target,touch){if(!target){return}let secondlast=info.moves[info.moves.length-2];let lastmove=info.moves[info.moves.length-1];let dx=lastmove.x-info.x;let dy=lastmove.y-info.y;let ddx,ddy=0;if(secondlast){ddx=lastmove.x-secondlast.x;ddy=lastmove.y-secondlast.y}_fire(target,"track",{state:info.state,x:touch.clientX,y:touch.clientY,dx:dx,dy:dy,ddx:ddx,ddy:ddy,sourceEvent:touch,hover:function(){return deepTargetFind(touch.clientX,touch.clientY)}})}register({name:"tap",deps:["mousedown","click","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["click","touchend"]},emits:["tap"],info:{x:NaN,y:NaN,prevent:false},reset:function(){this.info.x=NaN;this.info.y=NaN;this.info.prevent=false},mousedown:function(e){if(hasLeftMouseButton(e)){this.info.x=e.clientX;this.info.y=e.clientY}},click:function(e){if(hasLeftMouseButton(e)){trackForward(this.info,e)}},touchstart:function(e){const touch=e.changedTouches[0];this.info.x=touch.clientX;this.info.y=touch.clientY},touchend:function(e){trackForward(this.info,e.changedTouches[0],e)}});function trackForward(info,e,preventer){let dx=Math.abs(e.clientX-info.x);let dy=Math.abs(e.clientY-info.y);let t=_findOriginalTarget(preventer||e);if(!t||canBeDisabled[t.localName]&&t.hasAttribute("disabled")){return}if(isNaN(dx)||isNaN(dy)||dx<=TAP_DISTANCE&&dy<=TAP_DISTANCE||isSyntheticClick(e)){if(!info.prevent){_fire(t,"tap",{x:e.clientX,y:e.clientY,sourceEvent:e,preventer:preventer})}}}const findOriginalTarget=_findOriginalTarget;const add=addListener;const remove=removeListener;var gestures$1=Object.freeze({gestures:gestures,recognizers:recognizers,deepTargetFind:deepTargetFind,addListener:addListener,removeListener:removeListener,register:register,setTouchAction:setTouchAction,prevent:prevent,resetMouseCanceller:resetMouseCanceller,findOriginalTarget:findOriginalTarget,add:add,remove:remove});const nativeShadow=!(window["ShadyDOM"]&&window["ShadyDOM"]["inUse"]);let nativeCssVariables_;function calcCssVariables(settings){if(settings&&settings["shimcssproperties"]){nativeCssVariables_=false}else{nativeCssVariables_=nativeShadow||Boolean(!navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)&&window.CSS&&CSS.supports&&CSS.supports("box-shadow","0 0 0 var(--foo)"))}}let cssBuild;if(window.ShadyCSS&&window.ShadyCSS.cssBuild!==undefined){cssBuild=window.ShadyCSS.cssBuild}const disableRuntime=Boolean(window.ShadyCSS&&window.ShadyCSS.disableRuntime);if(window.ShadyCSS&&window.ShadyCSS.nativeCss!==undefined){nativeCssVariables_=window.ShadyCSS.nativeCss}else if(window.ShadyCSS){calcCssVariables(window.ShadyCSS);window.ShadyCSS=undefined}else{calcCssVariables(window["WebComponents"]&&window["WebComponents"]["flags"])}const nativeCssVariables=nativeCssVariables_;class StyleNode{constructor(){this["start"]=0;this["end"]=0;this["previous"]=null;this["parent"]=null;this["rules"]=null;this["parsedCssText"]="";this["cssText"]="";this["atRule"]=false;this["type"]=0;this["keyframesName"]="";this["selector"]="";this["parsedSelector"]=""}}function parse(text){text=clean(text);return parseCss(lex(text),text)}function clean(cssText){return cssText.replace(RX.comments,"").replace(RX.port,"")}function lex(text){let root=new StyleNode;root["start"]=0;root["end"]=text.length;let n=root;for(let i=0,l=text.length;i<l;i++){if(text[i]===OPEN_BRACE){if(!n["rules"]){n["rules"]=[]}let p=n;let previous=p["rules"][p["rules"].length-1]||null;n=new StyleNode;n["start"]=i+1;n["parent"]=p;n["previous"]=previous;p["rules"].push(n)}else if(text[i]===CLOSE_BRACE){n["end"]=i+1;n=n["parent"]||root}}return root}function parseCss(node,text){let t=text.substring(node["start"],node["end"]-1);node["parsedCssText"]=node["cssText"]=t.trim();if(node["parent"]){let ss=node["previous"]?node["previous"]["end"]:node["parent"]["start"];t=text.substring(ss,node["start"]-1);t=_expandUnicodeEscapes(t);t=t.replace(RX.multipleSpaces," ");t=t.substring(t.lastIndexOf(";")+1);let s=node["parsedSelector"]=node["selector"]=t.trim();node["atRule"]=s.indexOf(AT_START)===0;if(node["atRule"]){if(s.indexOf(MEDIA_START)===0){node["type"]=types.MEDIA_RULE}else if(s.match(RX.keyframesRule)){node["type"]=types.KEYFRAMES_RULE;node["keyframesName"]=node["selector"].split(RX.multipleSpaces).pop()}}else{if(s.indexOf(VAR_START)===0){node["type"]=types.MIXIN_RULE}else{node["type"]=types.STYLE_RULE}}}let r$=node["rules"];if(r$){for(let i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){parseCss(r,text)}}return node}function _expandUnicodeEscapes(s){return s.replace(/\\([0-9a-f]{1,6})\s/gi,function(){let code=arguments[1],repeat=6-code.length;while(repeat--){code="0"+code}return"\\"+code})}function stringify(node,preserveProperties,text=""){let cssText="";if(node["cssText"]||node["rules"]){let r$=node["rules"];if(r$&&!_hasMixinRules(r$)){for(let i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){cssText=stringify(r,preserveProperties,cssText)}}else{cssText=preserveProperties?node["cssText"]:removeCustomProps(node["cssText"]);cssText=cssText.trim();if(cssText){cssText="  "+cssText+"\n"}}}if(cssText){if(node["selector"]){text+=node["selector"]+" "+OPEN_BRACE+"\n"}text+=cssText;if(node["selector"]){text+=CLOSE_BRACE+"\n\n"}}return text}function _hasMixinRules(rules){let r=rules[0];return Boolean(r)&&Boolean(r["selector"])&&r["selector"].indexOf(VAR_START)===0}function removeCustomProps(cssText){cssText=removeCustomPropAssignment(cssText);return removeCustomPropApply(cssText)}function removeCustomPropAssignment(cssText){return cssText.replace(RX.customProp,"").replace(RX.mixinProp,"")}function removeCustomPropApply(cssText){return cssText.replace(RX.mixinApply,"").replace(RX.varApply,"")}const types={STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1e3};const OPEN_BRACE="{";const CLOSE_BRACE="}";const RX={comments:/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g};const VAR_START="--";const MEDIA_START="@media";const AT_START="@";const VAR_ASSIGN=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gi;const MIXIN_MATCH=/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi;const MEDIA_MATCH=/@media\s(.*)/;const styleTextSet=new Set;const scopingAttribute="shady-unscoped";function processUnscopedStyle(style){const text=style.textContent;if(!styleTextSet.has(text)){styleTextSet.add(text);const newStyle=style.cloneNode(true);document.head.appendChild(newStyle)}}function isUnscopedStyle(style){return style.hasAttribute(scopingAttribute)}function toCssText(rules,callback){if(!rules){return""}if(typeof rules==="string"){rules=parse(rules)}if(callback){forEachRule(rules,callback)}return stringify(rules,nativeCssVariables)}function rulesForStyle(style){if(!style["__cssRules"]&&style.textContent){style["__cssRules"]=parse(style.textContent)}return style["__cssRules"]||null}function forEachRule(node,styleRuleCallback,keyframesRuleCallback,onlyActiveRules){if(!node){return}let skipRules=false;let type=node["type"];if(onlyActiveRules){if(type===types.MEDIA_RULE){let matchMedia=node["selector"].match(MEDIA_MATCH);if(matchMedia){if(!window.matchMedia(matchMedia[1]).matches){skipRules=true}}}}if(type===types.STYLE_RULE){styleRuleCallback(node)}else if(keyframesRuleCallback&&type===types.KEYFRAMES_RULE){keyframesRuleCallback(node)}else if(type===types.MIXIN_RULE){skipRules=true}let r$=node["rules"];if(r$&&!skipRules){for(let i=0,l=r$.length,r;i<l&&(r=r$[i]);i++){forEachRule(r,styleRuleCallback,keyframesRuleCallback,onlyActiveRules)}}}function findMatchingParen(text,start){let level=0;for(let i=start,l=text.length;i<l;i++){if(text[i]==="("){level++}else if(text[i]===")"){if(--level===0){return i}}}return-1}function processVariableAndFallback(str,callback){let start=str.indexOf("var(");if(start===-1){return callback(str,"","","")}let end=findMatchingParen(str,start+3);let inner=str.substring(start+4,end);let prefix=str.substring(0,start);let suffix=processVariableAndFallback(str.substring(end+1),callback);let comma=inner.indexOf(",");if(comma===-1){return callback(prefix,inner.trim(),"",suffix)}let value=inner.substring(0,comma).trim();let fallback=inner.substring(comma+1).trim();return callback(prefix,value,fallback,suffix)}const wrap$1=window["ShadyDOM"]&&window["ShadyDOM"]["wrap"]||(node=>node);function getIsExtends(element){let localName=element["localName"];let is="",typeExtension="";if(localName){if(localName.indexOf("-")>-1){is=localName}else{typeExtension=localName;is=element.getAttribute&&element.getAttribute("is")||""}}else{is=element.is;typeExtension=element.extends}return{is:is,typeExtension:typeExtension}}function gatherStyleText(element){const styleTextParts=[];const styles=element.querySelectorAll("style");for(let i=0;i<styles.length;i++){const style=styles[i];if(isUnscopedStyle(style)){if(!nativeShadow){processUnscopedStyle(style);style.parentNode.removeChild(style)}}else{styleTextParts.push(style.textContent);style.parentNode.removeChild(style)}}return styleTextParts.join("").trim()}const CSS_BUILD_ATTR="css-build";function getCssBuild(element){if(cssBuild!==undefined){return cssBuild}if(element.__cssBuild===undefined){const attrValue=element.getAttribute(CSS_BUILD_ATTR);if(attrValue){element.__cssBuild=attrValue}else{const buildComment=getBuildComment(element);if(buildComment!==""){removeBuildComment(element)}element.__cssBuild=buildComment}}return element.__cssBuild||""}function elementHasBuiltCss(element){return getCssBuild(element)!==""}function getBuildComment(element){const buildComment=element.localName==="template"?element.content.firstChild:element.firstChild;if(buildComment instanceof Comment){const commentParts=buildComment.textContent.trim().split(":");if(commentParts[0]===CSS_BUILD_ATTR){return commentParts[1]}}return""}function removeBuildComment(element){const buildComment=element.localName==="template"?element.content.firstChild:element.firstChild;buildComment.parentNode.removeChild(buildComment)}function updateNativeProperties(element,properties){for(let p in properties){if(p===null){element.style.removeProperty(p)}else{element.style.setProperty(p,properties[p])}}}function getComputedStyleValue(element,property){const value=window.getComputedStyle(element).getPropertyValue(property);if(!value){return""}else{return value.trim()}}function detectMixin(cssText){const has=MIXIN_MATCH.test(cssText)||VAR_ASSIGN.test(cssText);MIXIN_MATCH.lastIndex=0;VAR_ASSIGN.lastIndex=0;return has}const APPLY_NAME_CLEAN=/;\s*/m;const INITIAL_INHERIT=/^\s*(initial)|(inherit)\s*$/;const IMPORTANT=/\s*!important/;const MIXIN_VAR_SEP="_-_";class MixinMap{constructor(){this._map={}}set(name,props){name=name.trim();this._map[name]={properties:props,dependants:{}}}get(name){name=name.trim();return this._map[name]||null}}let invalidCallback=null;class ApplyShim{constructor(){this._currentElement=null;this._measureElement=null;this._map=new MixinMap}detectMixin(cssText){return detectMixin(cssText)}gatherStyles(template){const styleText=gatherStyleText(template.content);if(styleText){const style=document.createElement("style");style.textContent=styleText;template.content.insertBefore(style,template.content.firstChild);return style}return null}transformTemplate(template,elementName){if(template._gatheredStyle===undefined){template._gatheredStyle=this.gatherStyles(template)}const style=template._gatheredStyle;return style?this.transformStyle(style,elementName):null}transformStyle(style,elementName=""){let ast=rulesForStyle(style);this.transformRules(ast,elementName);style.textContent=toCssText(ast);return ast}transformCustomStyle(style){let ast=rulesForStyle(style);forEachRule(ast,rule=>{if(rule["selector"]===":root"){rule["selector"]="html"}this.transformRule(rule)});style.textContent=toCssText(ast);return ast}transformRules(rules,elementName){this._currentElement=elementName;forEachRule(rules,r=>{this.transformRule(r)});this._currentElement=null}transformRule(rule){rule["cssText"]=this.transformCssText(rule["parsedCssText"],rule);if(rule["selector"]===":root"){rule["selector"]=":host > *"}}transformCssText(cssText,rule){cssText=cssText.replace(VAR_ASSIGN,(matchText,propertyName,valueProperty,valueMixin)=>this._produceCssProperties(matchText,propertyName,valueProperty,valueMixin,rule));return this._consumeCssProperties(cssText,rule)}_getInitialValueForProperty(property){if(!this._measureElement){this._measureElement=document.createElement("meta");this._measureElement.setAttribute("apply-shim-measure","");this._measureElement.style.all="initial";document.head.appendChild(this._measureElement)}return window.getComputedStyle(this._measureElement).getPropertyValue(property)}_fallbacksFromPreviousRules(startRule){let topRule=startRule;while(topRule["parent"]){topRule=topRule["parent"]}const fallbacks={};let seenStartRule=false;forEachRule(topRule,r=>{seenStartRule=seenStartRule||r===startRule;if(seenStartRule){return}if(r["selector"]===startRule["selector"]){Object.assign(fallbacks,this._cssTextToMap(r["parsedCssText"]))}});return fallbacks}_consumeCssProperties(text,rule){let m=null;while(m=MIXIN_MATCH.exec(text)){let matchText=m[0];let mixinName=m[1];let idx=m.index;let applyPos=idx+matchText.indexOf("@apply");let afterApplyPos=idx+matchText.length;let textBeforeApply=text.slice(0,applyPos);let textAfterApply=text.slice(afterApplyPos);let defaults=rule?this._fallbacksFromPreviousRules(rule):{};Object.assign(defaults,this._cssTextToMap(textBeforeApply));let replacement=this._atApplyToCssProperties(mixinName,defaults);text=`${textBeforeApply}${replacement}${textAfterApply}`;MIXIN_MATCH.lastIndex=idx+replacement.length}return text}_atApplyToCssProperties(mixinName,fallbacks){mixinName=mixinName.replace(APPLY_NAME_CLEAN,"");let vars=[];let mixinEntry=this._map.get(mixinName);if(!mixinEntry){this._map.set(mixinName,{});mixinEntry=this._map.get(mixinName)}if(mixinEntry){if(this._currentElement){mixinEntry.dependants[this._currentElement]=true}let p,parts,f;const properties=mixinEntry.properties;for(p in properties){f=fallbacks&&fallbacks[p];parts=[p,": var(",mixinName,MIXIN_VAR_SEP,p];if(f){parts.push(",",f.replace(IMPORTANT,""))}parts.push(")");if(IMPORTANT.test(properties[p])){parts.push(" !important")}vars.push(parts.join(""))}}return vars.join("; ")}_replaceInitialOrInherit(property,value){let match=INITIAL_INHERIT.exec(value);if(match){if(match[1]){value=this._getInitialValueForProperty(property)}else{value="apply-shim-inherit"}}return value}_cssTextToMap(text,replaceInitialOrInherit=false){let props=text.split(";");let property,value;let out={};for(let i=0,p,sp;i<props.length;i++){p=props[i];if(p){sp=p.split(":");if(sp.length>1){property=sp[0].trim();value=sp.slice(1).join(":");if(replaceInitialOrInherit){value=this._replaceInitialOrInherit(property,value)}out[property]=value}}}return out}_invalidateMixinEntry(mixinEntry){if(!invalidCallback){return}for(let elementName in mixinEntry.dependants){if(elementName!==this._currentElement){invalidCallback(elementName)}}}_produceCssProperties(matchText,propertyName,valueProperty,valueMixin,rule){if(valueProperty){processVariableAndFallback(valueProperty,(prefix,value)=>{if(value&&this._map.get(value)){valueMixin=`@apply ${value};`}})}if(!valueMixin){return matchText}let mixinAsProperties=this._consumeCssProperties(""+valueMixin,rule);let prefix=matchText.slice(0,matchText.indexOf("--"));let mixinValues=this._cssTextToMap(mixinAsProperties,true);let combinedProps=mixinValues;let mixinEntry=this._map.get(propertyName);let oldProps=mixinEntry&&mixinEntry.properties;if(oldProps){combinedProps=Object.assign(Object.create(oldProps),mixinValues)}else{this._map.set(propertyName,combinedProps)}let out=[];let p,v;let needToInvalidate=false;for(p in combinedProps){v=mixinValues[p];if(v===undefined){v="initial"}if(oldProps&&!(p in oldProps)){needToInvalidate=true}out.push(`${propertyName}${MIXIN_VAR_SEP}${p}: ${v}`)}if(needToInvalidate){this._invalidateMixinEntry(mixinEntry)}if(mixinEntry){mixinEntry.properties=combinedProps}if(valueProperty){prefix=`${matchText};${prefix}`}return`${prefix}${out.join("; ")};`}}ApplyShim.prototype["detectMixin"]=ApplyShim.prototype.detectMixin;ApplyShim.prototype["transformStyle"]=ApplyShim.prototype.transformStyle;ApplyShim.prototype["transformCustomStyle"]=ApplyShim.prototype.transformCustomStyle;ApplyShim.prototype["transformRules"]=ApplyShim.prototype.transformRules;ApplyShim.prototype["transformRule"]=ApplyShim.prototype.transformRule;ApplyShim.prototype["transformTemplate"]=ApplyShim.prototype.transformTemplate;ApplyShim.prototype["_separator"]=MIXIN_VAR_SEP;Object.defineProperty(ApplyShim.prototype,"invalidCallback",{get(){return invalidCallback},set(cb){invalidCallback=cb}});const templateMap={};const CURRENT_VERSION="_applyShimCurrentVersion";const NEXT_VERSION="_applyShimNextVersion";const VALIDATING_VERSION="_applyShimValidatingVersion";const promise=Promise.resolve();function invalidate(elementName){let template=templateMap[elementName];if(template){invalidateTemplate(template)}}function invalidateTemplate(template){template[CURRENT_VERSION]=template[CURRENT_VERSION]||0;template[VALIDATING_VERSION]=template[VALIDATING_VERSION]||0;template[NEXT_VERSION]=(template[NEXT_VERSION]||0)+1}function templateIsValid(template){return template[CURRENT_VERSION]===template[NEXT_VERSION]}function templateIsValidating(template){return!templateIsValid(template)&&template[VALIDATING_VERSION]===template[NEXT_VERSION]}function startValidatingTemplate(template){template[VALIDATING_VERSION]=template[NEXT_VERSION];if(!template._validating){template._validating=true;promise.then(function(){template[CURRENT_VERSION]=template[NEXT_VERSION];template._validating=false})}}let readyPromise=null;let whenReady=window["HTMLImports"]&&window["HTMLImports"]["whenReady"]||null;let resolveFn;function documentWait(callback){requestAnimationFrame(function(){if(whenReady){whenReady(callback)}else{if(!readyPromise){readyPromise=new Promise(resolve=>{resolveFn=resolve});if(document.readyState==="complete"){resolveFn()}else{document.addEventListener("readystatechange",()=>{if(document.readyState==="complete"){resolveFn()}})}}readyPromise.then(function(){callback&&callback()})}})}const SEEN_MARKER="__seenByShadyCSS";const CACHED_STYLE="__shadyCSSCachedStyle";let transformFn=null;let validateFn=null;class CustomStyleInterface{constructor(){this["customStyles"]=[];this["enqueued"]=false;documentWait(()=>{if(window["ShadyCSS"]["flushCustomStyles"]){window["ShadyCSS"]["flushCustomStyles"]()}})}enqueueDocumentValidation(){if(this["enqueued"]||!validateFn){return}this["enqueued"]=true;documentWait(validateFn)}addCustomStyle(style){if(!style[SEEN_MARKER]){style[SEEN_MARKER]=true;this["customStyles"].push(style);this.enqueueDocumentValidation()}}getStyleForCustomStyle(customStyle){if(customStyle[CACHED_STYLE]){return customStyle[CACHED_STYLE]}let style;if(customStyle["getStyle"]){style=customStyle["getStyle"]()}else{style=customStyle}return style}processStyles(){const cs=this["customStyles"];for(let i=0;i<cs.length;i++){const customStyle=cs[i];if(customStyle[CACHED_STYLE]){continue}const style=this.getStyleForCustomStyle(customStyle);if(style){const styleToTransform=style["__appliedElement"]||style;if(transformFn){transformFn(styleToTransform)}customStyle[CACHED_STYLE]=styleToTransform}}return cs}}CustomStyleInterface.prototype["addCustomStyle"]=CustomStyleInterface.prototype.addCustomStyle;CustomStyleInterface.prototype["getStyleForCustomStyle"]=CustomStyleInterface.prototype.getStyleForCustomStyle;CustomStyleInterface.prototype["processStyles"]=CustomStyleInterface.prototype.processStyles;Object.defineProperties(CustomStyleInterface.prototype,{transformCallback:{get(){return transformFn},set(fn){transformFn=fn}},validateCallback:{get(){return validateFn},set(fn){let needsEnqueue=false;if(!validateFn){needsEnqueue=true}validateFn=fn;if(needsEnqueue){this.enqueueDocumentValidation()}}}});const applyShim=new ApplyShim;class ApplyShimInterface{constructor(){this.customStyleInterface=null;applyShim["invalidCallback"]=invalidate}ensure(){if(this.customStyleInterface){return}if(window.ShadyCSS.CustomStyleInterface){this.customStyleInterface=window.ShadyCSS.CustomStyleInterface;this.customStyleInterface["transformCallback"]=(style=>{applyShim.transformCustomStyle(style)});this.customStyleInterface["validateCallback"]=(()=>{requestAnimationFrame(()=>{if(this.customStyleInterface["enqueued"]){this.flushCustomStyles()}})})}}prepareTemplate(template,elementName){this.ensure();if(elementHasBuiltCss(template)){return}templateMap[elementName]=template;let ast=applyShim.transformTemplate(template,elementName);template["_styleAst"]=ast}flushCustomStyles(){this.ensure();if(!this.customStyleInterface){return}let styles=this.customStyleInterface["processStyles"]();if(!this.customStyleInterface["enqueued"]){return}for(let i=0;i<styles.length;i++){let cs=styles[i];let style=this.customStyleInterface["getStyleForCustomStyle"](cs);if(style){applyShim.transformCustomStyle(style)}}this.customStyleInterface["enqueued"]=false}styleSubtree(element,properties){this.ensure();if(properties){updateNativeProperties(element,properties)}if(element.shadowRoot){this.styleElement(element);let shadowChildren=element.shadowRoot.children||element.shadowRoot.childNodes;for(let i=0;i<shadowChildren.length;i++){this.styleSubtree(shadowChildren[i])}}else{let children=element.children||element.childNodes;for(let i=0;i<children.length;i++){this.styleSubtree(children[i])}}}styleElement(element){this.ensure();let{is:is}=getIsExtends(element);let template=templateMap[is];if(template&&elementHasBuiltCss(template)){return}if(template&&!templateIsValid(template)){if(!templateIsValidating(template)){this.prepareTemplate(template,is);startValidatingTemplate(template)}let root=element.shadowRoot;if(root){let style=root.querySelector("style");if(style){style["__cssRules"]=template["_styleAst"];style.textContent=toCssText(template["_styleAst"])}}}}styleDocument(properties){this.ensure();this.styleSubtree(document.body,properties)}}if(!window.ShadyCSS||!window.ShadyCSS.ScopingShim){const applyShimInterface=new ApplyShimInterface;let CustomStyleInterface=window.ShadyCSS&&window.ShadyCSS.CustomStyleInterface;window.ShadyCSS={prepareTemplate(template,elementName,elementExtends){applyShimInterface.flushCustomStyles();applyShimInterface.prepareTemplate(template,elementName)},prepareTemplateStyles(template,elementName,elementExtends){window.ShadyCSS.prepareTemplate(template,elementName,elementExtends)},prepareTemplateDom(template,elementName){},styleSubtree(element,properties){applyShimInterface.flushCustomStyles();applyShimInterface.styleSubtree(element,properties)},styleElement(element){applyShimInterface.flushCustomStyles();applyShimInterface.styleElement(element)},styleDocument(properties){applyShimInterface.flushCustomStyles();applyShimInterface.styleDocument(properties)},getComputedStyleValue(element,property){return getComputedStyleValue(element,property)},flushCustomStyles(){applyShimInterface.flushCustomStyles()},nativeCss:nativeCssVariables,nativeShadow:nativeShadow,cssBuild:cssBuild,disableRuntime:disableRuntime};if(CustomStyleInterface){window.ShadyCSS.CustomStyleInterface=CustomStyleInterface}}window.ShadyCSS.ApplyShim=applyShim;let modules={};let lcModules={};function setModule(id,module){modules[id]=lcModules[id.toLowerCase()]=module}function findModule(id){return modules[id]||lcModules[id.toLowerCase()]}function styleOutsideTemplateCheck(inst){if(inst.querySelector("style")){console.warn("dom-module %s has style outside template",inst.id)}}class DomModule extends HTMLElement{static get observedAttributes(){return["id"]}static import(id,selector){if(id){let m=findModule(id);if(m&&selector){return m.querySelector(selector)}return m}return null}attributeChangedCallback(name,old,value,namespace){if(old!==value){this.register()}}get assetpath(){if(!this.__assetpath){const owner=window.HTMLImports&&HTMLImports.importForElement?HTMLImports.importForElement(this)||document:this.ownerDocument;const url=resolveUrl(this.getAttribute("assetpath")||"",owner.baseURI);this.__assetpath=pathFromUrl(url)}return this.__assetpath}register(id){id=id||this.id;if(id){if(strictTemplatePolicy&&findModule(id)!==undefined){setModule(id,null);throw new Error(`strictTemplatePolicy: dom-module ${id} re-registered`)}this.id=id;setModule(id,this);styleOutsideTemplateCheck(this)}}}DomModule.prototype["modules"]=modules;customElements.define("dom-module",DomModule);const MODULE_STYLE_LINK_SELECTOR="link[rel=import][type~=css]";const INCLUDE_ATTR="include";const SHADY_UNSCOPED_ATTR="shady-unscoped";function importModule(moduleId){return DomModule.import(moduleId)}function styleForImport(importDoc){let container=importDoc.body?importDoc.body:importDoc;const importCss=resolveCss(container.textContent,importDoc.baseURI);const style=document.createElement("style");style.textContent=importCss;return style}function stylesFromModules(moduleIds){const modules=moduleIds.trim().split(/\s+/);const styles=[];for(let i=0;i<modules.length;i++){styles.push(...stylesFromModule(modules[i]))}return styles}function stylesFromModule(moduleId){const m=importModule(moduleId);if(!m){console.warn("Could not find style data in module named",moduleId);return[]}if(m._styles===undefined){const styles=[];styles.push(..._stylesFromModuleImports(m));const template=m.querySelector("template");if(template){styles.push(...stylesFromTemplate(template,m.assetpath))}m._styles=styles}return m._styles}function stylesFromTemplate(template,baseURI){if(!template._styles){const styles=[];const e$=template.content.querySelectorAll("style");for(let i=0;i<e$.length;i++){let e=e$[i];let include=e.getAttribute(INCLUDE_ATTR);if(include){styles.push(...stylesFromModules(include).filter(function(item,index,self){return self.indexOf(item)===index}))}if(baseURI){e.textContent=resolveCss(e.textContent,baseURI)}styles.push(e)}template._styles=styles}return template._styles}function stylesFromModuleImports(moduleId){let m=importModule(moduleId);return m?_stylesFromModuleImports(m):[]}function _stylesFromModuleImports(module){const styles=[];const p$=module.querySelectorAll(MODULE_STYLE_LINK_SELECTOR);for(let i=0;i<p$.length;i++){let p=p$[i];if(p.import){const importDoc=p.import;const unscoped=p.hasAttribute(SHADY_UNSCOPED_ATTR);if(unscoped&&!importDoc._unscopedStyle){const style=styleForImport(importDoc);style.setAttribute(SHADY_UNSCOPED_ATTR,"");importDoc._unscopedStyle=style}else if(!importDoc._style){importDoc._style=styleForImport(importDoc)}styles.push(unscoped?importDoc._unscopedStyle:importDoc._style)}}return styles}function cssFromModules(moduleIds){let modules=moduleIds.trim().split(/\s+/);let cssText="";for(let i=0;i<modules.length;i++){cssText+=cssFromModule(modules[i])}return cssText}function cssFromModule(moduleId){let m=importModule(moduleId);if(m&&m._cssText===undefined){let cssText=_cssFromModuleImports(m);let t=m.querySelector("template");if(t){cssText+=cssFromTemplate(t,m.assetpath)}m._cssText=cssText||null}if(!m){console.warn("Could not find style data in module named",moduleId)}return m&&m._cssText||""}function cssFromTemplate(template,baseURI){let cssText="";const e$=stylesFromTemplate(template,baseURI);for(let i=0;i<e$.length;i++){let e=e$[i];if(e.parentNode){e.parentNode.removeChild(e)}cssText+=e.textContent}return cssText}function _cssFromModuleImports(module){let cssText="";let styles=_stylesFromModuleImports(module);for(let i=0;i<styles.length;i++){cssText+=styles[i].textContent}return cssText}function isPath(path){return path.indexOf(".")>=0}function root(path){let dotIndex=path.indexOf(".");if(dotIndex===-1){return path}return path.slice(0,dotIndex)}function isAncestor(base,path){return base.indexOf(path+".")===0}function isDescendant(base,path){return path.indexOf(base+".")===0}function translate(base,newBase,path){return newBase+path.slice(base.length)}function matches(base,path){return base===path||isAncestor(base,path)||isDescendant(base,path)}function normalize(path){if(Array.isArray(path)){let parts=[];for(let i=0;i<path.length;i++){let args=path[i].toString().split(".");for(let j=0;j<args.length;j++){parts.push(args[j])}}return parts.join(".")}else{return path}}function split(path){if(Array.isArray(path)){return normalize(path).split(".")}return path.toString().split(".")}function get(root,path,info){let prop=root;let parts=split(path);for(let i=0;i<parts.length;i++){if(!prop){return}let part=parts[i];prop=prop[part]}if(info){info.path=parts.join(".")}return prop}function set(root,path,value){let prop=root;let parts=split(path);let last=parts[parts.length-1];if(parts.length>1){for(let i=0;i<parts.length-1;i++){let part=parts[i];prop=prop[part];if(!prop){return}}prop[last]=value}else{prop[path]=value}return parts.join(".")}const caseMap={};const DASH_TO_CAMEL=/-[a-z]/g;const CAMEL_TO_DASH=/([A-Z])/g;function dashToCamelCase(dash){return caseMap[dash]||(caseMap[dash]=dash.indexOf("-")<0?dash:dash.replace(DASH_TO_CAMEL,m=>m[1].toUpperCase()))}function camelToDashCase(camel){return caseMap[camel]||(caseMap[camel]=camel.replace(CAMEL_TO_DASH,"-$1").toLowerCase())}const microtask=microTask;const PropertiesChanged=dedupingMixin(superClass=>{class PropertiesChanged extends superClass{static createProperties(props){const proto=this.prototype;for(let prop in props){if(!(prop in proto)){proto._createPropertyAccessor(prop)}}}static attributeNameForProperty(property){return property.toLowerCase()}static typeForProperty(name){}_createPropertyAccessor(property,readOnly){this._addPropertyToAttributeMap(property);if(!this.hasOwnProperty("__dataHasAccessor")){this.__dataHasAccessor=Object.assign({},this.__dataHasAccessor)}if(!this.__dataHasAccessor[property]){this.__dataHasAccessor[property]=true;this._definePropertyAccessor(property,readOnly)}}_addPropertyToAttributeMap(property){if(!this.hasOwnProperty("__dataAttributes")){this.__dataAttributes=Object.assign({},this.__dataAttributes)}if(!this.__dataAttributes[property]){const attr=this.constructor.attributeNameForProperty(property);this.__dataAttributes[attr]=property}}_definePropertyAccessor(property,readOnly){Object.defineProperty(this,property,{get(){return this._getProperty(property)},set:readOnly?function(){}:function(value){this._setProperty(property,value)}})}constructor(){super();this.__dataEnabled=false;this.__dataReady=false;this.__dataInvalid=false;this.__data={};this.__dataPending=null;this.__dataOld=null;this.__dataInstanceProps=null;this.__serializing=false;this._initializeProperties()}ready(){this.__dataReady=true;this._flushProperties()}_initializeProperties(){for(let p in this.__dataHasAccessor){if(this.hasOwnProperty(p)){this.__dataInstanceProps=this.__dataInstanceProps||{};this.__dataInstanceProps[p]=this[p];delete this[p]}}}_initializeInstanceProperties(props){Object.assign(this,props)}_setProperty(property,value){if(this._setPendingProperty(property,value)){this._invalidateProperties()}}_getProperty(property){return this.__data[property]}_setPendingProperty(property,value,ext){let old=this.__data[property];let changed=this._shouldPropertyChange(property,value,old);if(changed){if(!this.__dataPending){this.__dataPending={};this.__dataOld={}}if(this.__dataOld&&!(property in this.__dataOld)){this.__dataOld[property]=old}this.__data[property]=value;this.__dataPending[property]=value}return changed}_invalidateProperties(){if(!this.__dataInvalid&&this.__dataReady){this.__dataInvalid=true;microtask.run(()=>{if(this.__dataInvalid){this.__dataInvalid=false;this._flushProperties()}})}}_enableProperties(){if(!this.__dataEnabled){this.__dataEnabled=true;if(this.__dataInstanceProps){this._initializeInstanceProperties(this.__dataInstanceProps);this.__dataInstanceProps=null}this.ready()}}_flushProperties(){const props=this.__data;const changedProps=this.__dataPending;const old=this.__dataOld;if(this._shouldPropertiesChange(props,changedProps,old)){this.__dataPending=null;this.__dataOld=null;this._propertiesChanged(props,changedProps,old)}}_shouldPropertiesChange(currentProps,changedProps,oldProps){return Boolean(changedProps)}_propertiesChanged(currentProps,changedProps,oldProps){}_shouldPropertyChange(property,value,old){return old!==value&&(old===old||value===value)}attributeChangedCallback(name,old,value,namespace){if(old!==value){this._attributeToProperty(name,value)}if(super.attributeChangedCallback){super.attributeChangedCallback(name,old,value,namespace)}}_attributeToProperty(attribute,value,type){if(!this.__serializing){const map=this.__dataAttributes;const property=map&&map[attribute]||attribute;this[property]=this._deserializeValue(value,type||this.constructor.typeForProperty(property))}}_propertyToAttribute(property,attribute,value){this.__serializing=true;value=arguments.length<3?this[property]:value;this._valueToNodeAttribute(this,value,attribute||this.constructor.attributeNameForProperty(property));this.__serializing=false}_valueToNodeAttribute(node,value,attribute){const str=this._serializeValue(value);if(str===undefined){node.removeAttribute(attribute)}else{if(attribute==="class"||attribute==="name"||attribute==="slot"){node=wrap(node)}node.setAttribute(attribute,str)}}_serializeValue(value){switch(typeof value){case"boolean":return value?"":undefined;default:return value!=null?value.toString():undefined}}_deserializeValue(value,type){switch(type){case Boolean:return value!==null;case Number:return Number(value);default:return value}}}return PropertiesChanged});const nativeProperties={};let proto=HTMLElement.prototype;while(proto){let props=Object.getOwnPropertyNames(proto);for(let i=0;i<props.length;i++){nativeProperties[props[i]]=true}proto=Object.getPrototypeOf(proto)}function saveAccessorValue(model,property){if(!nativeProperties[property]){let value=model[property];if(value!==undefined){if(model.__data){model._setPendingProperty(property,value)}else{if(!model.__dataProto){model.__dataProto={}}else if(!model.hasOwnProperty(JSCompiler_renameProperty("__dataProto",model))){model.__dataProto=Object.create(model.__dataProto)}model.__dataProto[property]=value}}}}const PropertyAccessors=dedupingMixin(superClass=>{const base=PropertiesChanged(superClass);class PropertyAccessors extends base{static createPropertiesForAttributes(){let a$=this.observedAttributes;for(let i=0;i<a$.length;i++){this.prototype._createPropertyAccessor(dashToCamelCase(a$[i]))}}static attributeNameForProperty(property){return camelToDashCase(property)}_initializeProperties(){if(this.__dataProto){this._initializeProtoProperties(this.__dataProto);this.__dataProto=null}super._initializeProperties()}_initializeProtoProperties(props){for(let p in props){this._setProperty(p,props[p])}}_ensureAttribute(attribute,value){const el=this;if(!el.hasAttribute(attribute)){this._valueToNodeAttribute(el,value,attribute)}}_serializeValue(value){switch(typeof value){case"object":if(value instanceof Date){return value.toString()}else if(value){try{return JSON.stringify(value)}catch(x){return""}}default:return super._serializeValue(value)}}_deserializeValue(value,type){let outValue;switch(type){case Object:try{outValue=JSON.parse(value)}catch(x){outValue=value}break;case Array:try{outValue=JSON.parse(value)}catch(x){outValue=null;console.warn(`Polymer::Attributes: couldn't decode Array as JSON: ${value}`)}break;case Date:outValue=isNaN(value)?String(value):Number(value);outValue=new Date(outValue);break;default:outValue=super._deserializeValue(value,type);break}return outValue}_definePropertyAccessor(property,readOnly){saveAccessorValue(this,property);super._definePropertyAccessor(property,readOnly)}_hasAccessor(property){return this.__dataHasAccessor&&this.__dataHasAccessor[property]}_isPropertyPending(prop){return Boolean(this.__dataPending&&prop in this.__dataPending)}}return PropertyAccessors});const walker=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,false);const templateExtensions={"dom-if":true,"dom-repeat":true};function wrapTemplateExtension(node){let is=node.getAttribute("is");if(is&&templateExtensions[is]){let t=node;t.removeAttribute("is");node=t.ownerDocument.createElement(is);t.parentNode.replaceChild(node,t);node.appendChild(t);while(t.attributes.length){node.setAttribute(t.attributes[0].name,t.attributes[0].value);t.removeAttribute(t.attributes[0].name)}}return node}function findTemplateNode(root,nodeInfo){let parent=nodeInfo.parentInfo&&findTemplateNode(root,nodeInfo.parentInfo);if(parent){walker.currentNode=parent;for(let n=walker.firstChild(),i=0;n;n=walker.nextSibling()){if(nodeInfo.parentIndex===i++){return n}}}else{return root}}function applyIdToMap(inst,map,node,nodeInfo){if(nodeInfo.id){map[nodeInfo.id]=node}}function applyEventListener(inst,node,nodeInfo){if(nodeInfo.events&&nodeInfo.events.length){for(let j=0,e$=nodeInfo.events,e;j<e$.length&&(e=e$[j]);j++){inst._addMethodEventListenerToNode(node,e.name,e.value,inst)}}}function applyTemplateContent(inst,node,nodeInfo){if(nodeInfo.templateInfo){node._templateInfo=nodeInfo.templateInfo}}function createNodeEventHandler(context,eventName,methodName){context=context._methodHost||context;let handler=function(e){if(context[methodName]){context[methodName](e,e.detail)}else{console.warn("listener method `"+methodName+"` not defined")}};return handler}const TemplateStamp=dedupingMixin(superClass=>{class TemplateStamp extends superClass{static _parseTemplate(template,outerTemplateInfo){if(!template._templateInfo){let templateInfo=template._templateInfo={};templateInfo.nodeInfoList=[];templateInfo.stripWhiteSpace=true;this._parseTemplateContent(template,templateInfo,{parent:null})}return template._templateInfo}static _parseTemplateContent(template,templateInfo,nodeInfo){return this._parseTemplateNode(template.content,templateInfo,nodeInfo)}static _parseTemplateNode(node,templateInfo,nodeInfo){let noted;let element=node;if(element.localName=="template"&&!element.hasAttribute("preserve-content")){noted=this._parseTemplateNestedTemplate(element,templateInfo,nodeInfo)||noted}else if(element.localName==="slot"){templateInfo.hasInsertionPoint=true}walker.currentNode=element;if(walker.firstChild()){noted=this._parseTemplateChildNodes(element,templateInfo,nodeInfo)||noted}if(element.hasAttributes&&element.hasAttributes()){noted=this._parseTemplateNodeAttributes(element,templateInfo,nodeInfo)||noted}return noted}static _parseTemplateChildNodes(root,templateInfo,nodeInfo){if(root.localName==="script"||root.localName==="style"){return}walker.currentNode=root;for(let node=walker.firstChild(),parentIndex=0,next;node;node=next){if(node.localName=="template"){node=wrapTemplateExtension(node)}walker.currentNode=node;next=walker.nextSibling();if(node.nodeType===Node.TEXT_NODE){let n=next;while(n&&n.nodeType===Node.TEXT_NODE){node.textContent+=n.textContent;next=walker.nextSibling();root.removeChild(n);n=next}if(templateInfo.stripWhiteSpace&&!node.textContent.trim()){root.removeChild(node);continue}}let childInfo={parentIndex:parentIndex,parentInfo:nodeInfo};if(this._parseTemplateNode(node,templateInfo,childInfo)){childInfo.infoIndex=templateInfo.nodeInfoList.push(childInfo)-1}walker.currentNode=node;if(walker.parentNode()){parentIndex++}}}static _parseTemplateNestedTemplate(node,outerTemplateInfo,nodeInfo){let templateInfo=this._parseTemplate(node,outerTemplateInfo);let content=templateInfo.content=node.content.ownerDocument.createDocumentFragment();content.appendChild(node.content);nodeInfo.templateInfo=templateInfo;return true}static _parseTemplateNodeAttributes(node,templateInfo,nodeInfo){let noted=false;let attrs=Array.from(node.attributes);for(let i=attrs.length-1,a;a=attrs[i];i--){noted=this._parseTemplateNodeAttribute(node,templateInfo,nodeInfo,a.name,a.value)||noted}return noted}static _parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value){if(name.slice(0,3)==="on-"){node.removeAttribute(name);nodeInfo.events=nodeInfo.events||[];nodeInfo.events.push({name:name.slice(3),value:value});return true}else if(name==="id"){nodeInfo.id=value;return true}return false}static _contentForTemplate(template){let templateInfo=template._templateInfo;return templateInfo&&templateInfo.content||template.content}_stampTemplate(template){if(template&&!template.content&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate){HTMLTemplateElement.decorate(template)}let templateInfo=this.constructor._parseTemplate(template);let nodeInfo=templateInfo.nodeInfoList;let content=templateInfo.content||template.content;let dom=document.importNode(content,true);dom.__noInsertionPoint=!templateInfo.hasInsertionPoint;let nodes=dom.nodeList=new Array(nodeInfo.length);dom.$={};for(let i=0,l=nodeInfo.length,info;i<l&&(info=nodeInfo[i]);i++){let node=nodes[i]=findTemplateNode(dom,info);applyIdToMap(this,dom.$,node,info);applyTemplateContent(this,node,info);applyEventListener(this,node,info)}dom=dom;return dom}_addMethodEventListenerToNode(node,eventName,methodName,context){context=context||node;let handler=createNodeEventHandler(context,eventName,methodName);this._addEventListenerToNode(node,eventName,handler);return handler}_addEventListenerToNode(node,eventName,handler){node.addEventListener(eventName,handler)}_removeEventListenerFromNode(node,eventName,handler){node.removeEventListener(eventName,handler)}}return TemplateStamp});let dedupeId$1=0;const TYPES={COMPUTE:"__computeEffects",REFLECT:"__reflectEffects",NOTIFY:"__notifyEffects",PROPAGATE:"__propagateEffects",OBSERVE:"__observeEffects",READ_ONLY:"__readOnly"};const capitalAttributeRegex=/[A-Z]/;function ensureOwnEffectMap(model,type){let effects=model[type];if(!effects){effects=model[type]={}}else if(!model.hasOwnProperty(type)){effects=model[type]=Object.create(model[type]);for(let p in effects){let protoFx=effects[p];let instFx=effects[p]=Array(protoFx.length);for(let i=0;i<protoFx.length;i++){instFx[i]=protoFx[i]}}}return effects}function runEffects(inst,effects,props,oldProps,hasPaths,extraArgs){if(effects){let ran=false;let id=dedupeId$1++;for(let prop in props){if(runEffectsForProperty(inst,effects,id,prop,props,oldProps,hasPaths,extraArgs)){ran=true}}return ran}return false}function runEffectsForProperty(inst,effects,dedupeId,prop,props,oldProps,hasPaths,extraArgs){let ran=false;let rootProperty=hasPaths?root(prop):prop;let fxs=effects[rootProperty];if(fxs){for(let i=0,l=fxs.length,fx;i<l&&(fx=fxs[i]);i++){if((!fx.info||fx.info.lastRun!==dedupeId)&&(!hasPaths||pathMatchesTrigger(prop,fx.trigger))){if(fx.info){fx.info.lastRun=dedupeId}fx.fn(inst,prop,props,oldProps,fx.info,hasPaths,extraArgs);ran=true}}}return ran}function pathMatchesTrigger(path,trigger){if(trigger){let triggerPath=trigger.name;return triggerPath==path||!!(trigger.structured&&isAncestor(triggerPath,path))||!!(trigger.wildcard&&isDescendant(triggerPath,path))}else{return true}}function runObserverEffect(inst,property,props,oldProps,info){let fn=typeof info.method==="string"?inst[info.method]:info.method;let changedProp=info.property;if(fn){fn.call(inst,inst.__data[changedProp],oldProps[changedProp])}else if(!info.dynamicFn){console.warn("observer method `"+info.method+"` not defined")}}function runNotifyEffects(inst,notifyProps,props,oldProps,hasPaths){let fxs=inst[TYPES.NOTIFY];let notified;let id=dedupeId$1++;for(let prop in notifyProps){if(notifyProps[prop]){if(fxs&&runEffectsForProperty(inst,fxs,id,prop,props,oldProps,hasPaths)){notified=true}else if(hasPaths&&notifyPath(inst,prop,props)){notified=true}}}let host;if(notified&&(host=inst.__dataHost)&&host._invalidateProperties){host._invalidateProperties()}}function notifyPath(inst,path,props){let rootProperty=root(path);if(rootProperty!==path){let eventName=camelToDashCase(rootProperty)+"-changed";dispatchNotifyEvent(inst,eventName,props[path],path);return true}return false}function dispatchNotifyEvent(inst,eventName,value,path){let detail={value:value,queueProperty:true};if(path){detail.path=path}wrap(inst).dispatchEvent(new CustomEvent(eventName,{detail:detail}))}function runNotifyEffect(inst,property,props,oldProps,info,hasPaths){let rootProperty=hasPaths?root(property):property;let path=rootProperty!=property?property:null;let value=path?get(inst,path):inst.__data[property];if(path&&value===undefined){value=props[property]}dispatchNotifyEvent(inst,info.eventName,value,path)}function handleNotification(event,inst,fromProp,toPath,negate){let value;let detail=event.detail;let fromPath=detail&&detail.path;if(fromPath){toPath=translate(fromProp,toPath,fromPath);value=detail&&detail.value}else{value=event.currentTarget[fromProp]}value=negate?!value:value;if(!inst[TYPES.READ_ONLY]||!inst[TYPES.READ_ONLY][toPath]){if(inst._setPendingPropertyOrPath(toPath,value,true,Boolean(fromPath))&&(!detail||!detail.queueProperty)){inst._invalidateProperties()}}}function runReflectEffect(inst,property,props,oldProps,info){let value=inst.__data[property];if(sanitizeDOMValue){value=sanitizeDOMValue(value,info.attrName,"attribute",inst)}inst._propertyToAttribute(property,info.attrName,value)}function runComputedEffects(inst,changedProps,oldProps,hasPaths){let computeEffects=inst[TYPES.COMPUTE];if(computeEffects){let inputProps=changedProps;while(runEffects(inst,computeEffects,inputProps,oldProps,hasPaths)){Object.assign(oldProps,inst.__dataOld);Object.assign(changedProps,inst.__dataPending);inputProps=inst.__dataPending;inst.__dataPending=null}}}function runComputedEffect(inst,property,props,oldProps,info){let result=runMethodEffect(inst,property,props,oldProps,info);let computedProp=info.methodInfo;if(inst.__dataHasAccessor&&inst.__dataHasAccessor[computedProp]){inst._setPendingProperty(computedProp,result,true)}else{inst[computedProp]=result}}function computeLinkedPaths(inst,path,value){let links=inst.__dataLinkedPaths;if(links){let link;for(let a in links){let b=links[a];if(isDescendant(a,path)){link=translate(a,b,path);inst._setPendingPropertyOrPath(link,value,true,true)}else if(isDescendant(b,path)){link=translate(b,a,path);inst._setPendingPropertyOrPath(link,value,true,true)}}}}function addBinding(constructor,templateInfo,nodeInfo,kind,target,parts,literal){nodeInfo.bindings=nodeInfo.bindings||[];let binding={kind:kind,target:target,parts:parts,literal:literal,isCompound:parts.length!==1};nodeInfo.bindings.push(binding);if(shouldAddListener(binding)){let{event:event,negate:negate}=binding.parts[0];binding.listenerEvent=event||camelToDashCase(target)+"-changed";binding.listenerNegate=negate}let index=templateInfo.nodeInfoList.length;for(let i=0;i<binding.parts.length;i++){let part=binding.parts[i];part.compoundIndex=i;addEffectForBindingPart(constructor,templateInfo,binding,part,index)}}function addEffectForBindingPart(constructor,templateInfo,binding,part,index){if(!part.literal){if(binding.kind==="attribute"&&binding.target[0]==="-"){console.warn("Cannot set attribute "+binding.target+' because "-" is not a valid attribute starting character')}else{let dependencies=part.dependencies;let info={index:index,binding:binding,part:part,evaluator:constructor};for(let j=0;j<dependencies.length;j++){let trigger=dependencies[j];if(typeof trigger=="string"){trigger=parseArg(trigger);trigger.wildcard=true}constructor._addTemplatePropertyEffect(templateInfo,trigger.rootProperty,{fn:runBindingEffect,info:info,trigger:trigger})}}}}function runBindingEffect(inst,path,props,oldProps,info,hasPaths,nodeList){let node=nodeList[info.index];let binding=info.binding;let part=info.part;if(hasPaths&&part.source&&path.length>part.source.length&&binding.kind=="property"&&!binding.isCompound&&node.__isPropertyEffectsClient&&node.__dataHasAccessor&&node.__dataHasAccessor[binding.target]){let value=props[path];path=translate(part.source,binding.target,path);if(node._setPendingPropertyOrPath(path,value,false,true)){inst._enqueueClient(node)}}else{let value=info.evaluator._evaluateBinding(inst,part,path,props,oldProps,hasPaths);applyBindingValue(inst,node,binding,part,value)}}function applyBindingValue(inst,node,binding,part,value){value=computeBindingValue(node,value,binding,part);if(sanitizeDOMValue){value=sanitizeDOMValue(value,binding.target,binding.kind,node)}if(binding.kind=="attribute"){inst._valueToNodeAttribute(node,value,binding.target)}else{let prop=binding.target;if(node.__isPropertyEffectsClient&&node.__dataHasAccessor&&node.__dataHasAccessor[prop]){if(!node[TYPES.READ_ONLY]||!node[TYPES.READ_ONLY][prop]){if(node._setPendingProperty(prop,value)){inst._enqueueClient(node)}}}else{inst._setUnmanagedPropertyToNode(node,prop,value)}}}function computeBindingValue(node,value,binding,part){if(binding.isCompound){let storage=node.__dataCompoundStorage[binding.target];storage[part.compoundIndex]=value;value=storage.join("")}if(binding.kind!=="attribute"){if(binding.target==="textContent"||binding.target==="value"&&(node.localName==="input"||node.localName==="textarea")){value=value==undefined?"":value}}return value}function shouldAddListener(binding){return Boolean(binding.target)&&binding.kind!="attribute"&&binding.kind!="text"&&!binding.isCompound&&binding.parts[0].mode==="{"}function setupBindings(inst,templateInfo){let{nodeList:nodeList,nodeInfoList:nodeInfoList}=templateInfo;if(nodeInfoList.length){for(let i=0;i<nodeInfoList.length;i++){let info=nodeInfoList[i];let node=nodeList[i];let bindings=info.bindings;if(bindings){for(let i=0;i<bindings.length;i++){let binding=bindings[i];setupCompoundStorage(node,binding);addNotifyListener(node,inst,binding)}}node.__dataHost=inst}}}function setupCompoundStorage(node,binding){if(binding.isCompound){let storage=node.__dataCompoundStorage||(node.__dataCompoundStorage={});let parts=binding.parts;let literals=new Array(parts.length);for(let j=0;j<parts.length;j++){literals[j]=parts[j].literal}let target=binding.target;storage[target]=literals;if(binding.literal&&binding.kind=="property"){node[target]=binding.literal}}}function addNotifyListener(node,inst,binding){if(binding.listenerEvent){let part=binding.parts[0];node.addEventListener(binding.listenerEvent,function(e){handleNotification(e,inst,binding.target,part.source,part.negate)})}}function createMethodEffect(model,sig,type,effectFn,methodInfo,dynamicFn){dynamicFn=sig.static||dynamicFn&&(typeof dynamicFn!=="object"||dynamicFn[sig.methodName]);let info={methodName:sig.methodName,args:sig.args,methodInfo:methodInfo,dynamicFn:dynamicFn};for(let i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){if(!arg.literal){model._addPropertyEffect(arg.rootProperty,type,{fn:effectFn,info:info,trigger:arg})}}if(dynamicFn){model._addPropertyEffect(sig.methodName,type,{fn:effectFn,info:info})}}function runMethodEffect(inst,property,props,oldProps,info){let context=inst._methodHost||inst;let fn=context[info.methodName];if(fn){let args=inst._marshalArgs(info.args,property,props);return fn.apply(context,args)}else if(!info.dynamicFn){console.warn("method `"+info.methodName+"` not defined")}}const emptyArray=[];const IDENT="(?:"+"[a-zA-Z_$][\\w.:$\\-*]*"+")";const NUMBER="(?:"+"[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?"+")";const SQUOTE_STRING="(?:"+"'(?:[^'\\\\]|\\\\.)*'"+")";const DQUOTE_STRING="(?:"+'"(?:[^"\\\\]|\\\\.)*"'+")";const STRING="(?:"+SQUOTE_STRING+"|"+DQUOTE_STRING+")";const ARGUMENT="(?:("+IDENT+"|"+NUMBER+"|"+STRING+")\\s*"+")";const ARGUMENTS="(?:"+ARGUMENT+"(?:,\\s*"+ARGUMENT+")*"+")";const ARGUMENT_LIST="(?:"+"\\(\\s*"+"(?:"+ARGUMENTS+"?"+")"+"\\)\\s*"+")";const BINDING="("+IDENT+"\\s*"+ARGUMENT_LIST+"?"+")";const OPEN_BRACKET="(\\[\\[|{{)"+"\\s*";const CLOSE_BRACKET="(?:]]|}})";const NEGATE="(?:(!)\\s*)?";const EXPRESSION=OPEN_BRACKET+NEGATE+BINDING+CLOSE_BRACKET;const bindingRegex=new RegExp(EXPRESSION,"g");function literalFromParts(parts){let s="";for(let i=0;i<parts.length;i++){let literal=parts[i].literal;s+=literal||""}return s}function parseMethod(expression){let m=expression.match(/([^\s]+?)\(([\s\S]*)\)/);if(m){let methodName=m[1];let sig={methodName:methodName,static:true,args:emptyArray};if(m[2].trim()){let args=m[2].replace(/\\,/g,"&comma;").split(",");return parseArgs(args,sig)}else{return sig}}return null}function parseArgs(argList,sig){sig.args=argList.map(function(rawArg){let arg=parseArg(rawArg);if(!arg.literal){sig.static=false}return arg},this);return sig}function parseArg(rawArg){let arg=rawArg.trim().replace(/&comma;/g,",").replace(/\\(.)/g,"$1");let a={name:arg,value:"",literal:false};let fc=arg[0];if(fc==="-"){fc=arg[1]}if(fc>="0"&&fc<="9"){fc="#"}switch(fc){case"'":case'"':a.value=arg.slice(1,-1);a.literal=true;break;case"#":a.value=Number(arg);a.literal=true;break}if(!a.literal){a.rootProperty=root(arg);a.structured=isPath(arg);if(a.structured){a.wildcard=arg.slice(-2)==".*";if(a.wildcard){a.name=arg.slice(0,-2)}}}return a}function getArgValue(data,props,path){let value=get(data,path);if(value===undefined){value=props[path]}return value}function notifySplices(inst,array,path,splices){inst.notifyPath(path+".splices",{indexSplices:splices});inst.notifyPath(path+".length",array.length)}function notifySplice(inst,array,path,index,addedCount,removed){notifySplices(inst,array,path,[{index:index,addedCount:addedCount,removed:removed,object:array,type:"splice"}])}function upper(name){return name[0].toUpperCase()+name.substring(1)}const PropertyEffects=dedupingMixin(superClass=>{const propertyEffectsBase=TemplateStamp(PropertyAccessors(superClass));class PropertyEffects extends propertyEffectsBase{constructor(){super();this.__isPropertyEffectsClient=true;this.__dataCounter=0;this.__dataClientsReady;this.__dataPendingClients;this.__dataToNotify;this.__dataLinkedPaths;this.__dataHasPaths;this.__dataCompoundStorage;this.__dataHost;this.__dataTemp;this.__dataClientsInitialized;this.__data;this.__dataPending;this.__dataOld;this.__computeEffects;this.__reflectEffects;this.__notifyEffects;this.__propagateEffects;this.__observeEffects;this.__readOnly;this.__templateInfo}get PROPERTY_EFFECT_TYPES(){return TYPES}_initializeProperties(){super._initializeProperties();hostStack.registerHost(this);this.__dataClientsReady=false;this.__dataPendingClients=null;this.__dataToNotify=null;this.__dataLinkedPaths=null;this.__dataHasPaths=false;this.__dataCompoundStorage=this.__dataCompoundStorage||null;this.__dataHost=this.__dataHost||null;this.__dataTemp={};this.__dataClientsInitialized=false}_initializeProtoProperties(props){this.__data=Object.create(props);this.__dataPending=Object.create(props);this.__dataOld={}}_initializeInstanceProperties(props){let readOnly=this[TYPES.READ_ONLY];for(let prop in props){if(!readOnly||!readOnly[prop]){this.__dataPending=this.__dataPending||{};this.__dataOld=this.__dataOld||{};this.__data[prop]=this.__dataPending[prop]=props[prop]}}}_addPropertyEffect(property,type,effect){this._createPropertyAccessor(property,type==TYPES.READ_ONLY);let effects=ensureOwnEffectMap(this,type)[property];if(!effects){effects=this[type][property]=[]}effects.push(effect)}_removePropertyEffect(property,type,effect){let effects=ensureOwnEffectMap(this,type)[property];let idx=effects.indexOf(effect);if(idx>=0){effects.splice(idx,1)}}_hasPropertyEffect(property,type){let effects=this[type];return Boolean(effects&&effects[property])}_hasReadOnlyEffect(property){return this._hasPropertyEffect(property,TYPES.READ_ONLY)}_hasNotifyEffect(property){return this._hasPropertyEffect(property,TYPES.NOTIFY)}_hasReflectEffect(property){return this._hasPropertyEffect(property,TYPES.REFLECT)}_hasComputedEffect(property){return this._hasPropertyEffect(property,TYPES.COMPUTE)}_setPendingPropertyOrPath(path,value,shouldNotify,isPathNotification){if(isPathNotification||root(Array.isArray(path)?path[0]:path)!==path){if(!isPathNotification){let old=get(this,path);path=set(this,path,value);if(!path||!super._shouldPropertyChange(path,value,old)){return false}}this.__dataHasPaths=true;if(this._setPendingProperty(path,value,shouldNotify)){computeLinkedPaths(this,path,value);return true}}else{if(this.__dataHasAccessor&&this.__dataHasAccessor[path]){return this._setPendingProperty(path,value,shouldNotify)}else{this[path]=value}}return false}_setUnmanagedPropertyToNode(node,prop,value){if(value!==node[prop]||typeof value=="object"){node[prop]=value}}_setPendingProperty(property,value,shouldNotify){let propIsPath=this.__dataHasPaths&&isPath(property);let prevProps=propIsPath?this.__dataTemp:this.__data;if(this._shouldPropertyChange(property,value,prevProps[property])){if(!this.__dataPending){this.__dataPending={};this.__dataOld={}}if(!(property in this.__dataOld)){this.__dataOld[property]=this.__data[property]}if(propIsPath){this.__dataTemp[property]=value}else{this.__data[property]=value}this.__dataPending[property]=value;if(propIsPath||this[TYPES.NOTIFY]&&this[TYPES.NOTIFY][property]){this.__dataToNotify=this.__dataToNotify||{};this.__dataToNotify[property]=shouldNotify}return true}return false}_setProperty(property,value){if(this._setPendingProperty(property,value,true)){this._invalidateProperties()}}_invalidateProperties(){if(this.__dataReady){this._flushProperties()}}_enqueueClient(client){this.__dataPendingClients=this.__dataPendingClients||[];if(client!==this){this.__dataPendingClients.push(client)}}_flushProperties(){this.__dataCounter++;super._flushProperties();this.__dataCounter--}_flushClients(){if(!this.__dataClientsReady){this.__dataClientsReady=true;this._readyClients();this.__dataReady=true}else{this.__enableOrFlushClients()}}__enableOrFlushClients(){let clients=this.__dataPendingClients;if(clients){this.__dataPendingClients=null;for(let i=0;i<clients.length;i++){let client=clients[i];if(!client.__dataEnabled){client._enableProperties()}else if(client.__dataPending){client._flushProperties()}}}}_readyClients(){this.__enableOrFlushClients()}setProperties(props,setReadOnly){for(let path in props){if(setReadOnly||!this[TYPES.READ_ONLY]||!this[TYPES.READ_ONLY][path]){this._setPendingPropertyOrPath(path,props[path],true)}}this._invalidateProperties()}ready(){this._flushProperties();if(!this.__dataClientsReady){this._flushClients()}if(this.__dataPending){this._flushProperties()}}_propertiesChanged(currentProps,changedProps,oldProps){let hasPaths=this.__dataHasPaths;this.__dataHasPaths=false;runComputedEffects(this,changedProps,oldProps,hasPaths);let notifyProps=this.__dataToNotify;this.__dataToNotify=null;this._propagatePropertyChanges(changedProps,oldProps,hasPaths);this._flushClients();runEffects(this,this[TYPES.REFLECT],changedProps,oldProps,hasPaths);runEffects(this,this[TYPES.OBSERVE],changedProps,oldProps,hasPaths);if(notifyProps){runNotifyEffects(this,notifyProps,changedProps,oldProps,hasPaths)}if(this.__dataCounter==1){this.__dataTemp={}}}_propagatePropertyChanges(changedProps,oldProps,hasPaths){if(this[TYPES.PROPAGATE]){runEffects(this,this[TYPES.PROPAGATE],changedProps,oldProps,hasPaths)}let templateInfo=this.__templateInfo;while(templateInfo){runEffects(this,templateInfo.propertyEffects,changedProps,oldProps,hasPaths,templateInfo.nodeList);templateInfo=templateInfo.nextTemplateInfo}}linkPaths(to,from){to=normalize(to);from=normalize(from);this.__dataLinkedPaths=this.__dataLinkedPaths||{};this.__dataLinkedPaths[to]=from}unlinkPaths(path){path=normalize(path);if(this.__dataLinkedPaths){delete this.__dataLinkedPaths[path]}}notifySplices(path,splices){let info={path:""};let array=get(this,path,info);notifySplices(this,array,info.path,splices)}get(path,root){return get(root||this,path)}set(path,value,root){if(root){set(root,path,value)}else{if(!this[TYPES.READ_ONLY]||!this[TYPES.READ_ONLY][path]){if(this._setPendingPropertyOrPath(path,value,true)){this._invalidateProperties()}}}}push(path,...items){let info={path:""};let array=get(this,path,info);let len=array.length;let ret=array.push(...items);if(items.length){notifySplice(this,array,info.path,len,items.length,[])}return ret}pop(path){let info={path:""};let array=get(this,path,info);let hadLength=Boolean(array.length);let ret=array.pop();if(hadLength){notifySplice(this,array,info.path,array.length,0,[ret])}return ret}splice(path,start,deleteCount,...items){let info={path:""};let array=get(this,path,info);if(start<0){start=array.length-Math.floor(-start)}else if(start){start=Math.floor(start)}let ret;if(arguments.length===2){ret=array.splice(start)}else{ret=array.splice(start,deleteCount,...items)}if(items.length||ret.length){notifySplice(this,array,info.path,start,items.length,ret)}return ret}shift(path){let info={path:""};let array=get(this,path,info);let hadLength=Boolean(array.length);let ret=array.shift();if(hadLength){notifySplice(this,array,info.path,0,0,[ret])}return ret}unshift(path,...items){let info={path:""};let array=get(this,path,info);let ret=array.unshift(...items);if(items.length){notifySplice(this,array,info.path,0,items.length,[])}return ret}notifyPath(path,value){let propPath;if(arguments.length==1){let info={path:""};value=get(this,path,info);propPath=info.path}else if(Array.isArray(path)){propPath=normalize(path)}else{propPath=path}if(this._setPendingPropertyOrPath(propPath,value,true,true)){this._invalidateProperties()}}_createReadOnlyProperty(property,protectedSetter){this._addPropertyEffect(property,TYPES.READ_ONLY);if(protectedSetter){this["_set"+upper(property)]=function(value){this._setProperty(property,value)}}}_createPropertyObserver(property,method,dynamicFn){let info={property:property,method:method,dynamicFn:Boolean(dynamicFn)};this._addPropertyEffect(property,TYPES.OBSERVE,{fn:runObserverEffect,info:info,trigger:{name:property}});if(dynamicFn){this._addPropertyEffect(method,TYPES.OBSERVE,{fn:runObserverEffect,info:info,trigger:{name:method}})}}_createMethodObserver(expression,dynamicFn){let sig=parseMethod(expression);if(!sig){throw new Error("Malformed observer expression '"+expression+"'")}createMethodEffect(this,sig,TYPES.OBSERVE,runMethodEffect,null,dynamicFn)}_createNotifyingProperty(property){this._addPropertyEffect(property,TYPES.NOTIFY,{fn:runNotifyEffect,info:{eventName:camelToDashCase(property)+"-changed",property:property}})}_createReflectedProperty(property){let attr=this.constructor.attributeNameForProperty(property);if(attr[0]==="-"){console.warn("Property "+property+" cannot be reflected to attribute "+attr+' because "-" is not a valid starting attribute name. Use a lowercase first letter for the property instead.')}else{this._addPropertyEffect(property,TYPES.REFLECT,{fn:runReflectEffect,info:{attrName:attr}})}}_createComputedProperty(property,expression,dynamicFn){let sig=parseMethod(expression);if(!sig){throw new Error("Malformed computed expression '"+expression+"'")}createMethodEffect(this,sig,TYPES.COMPUTE,runComputedEffect,property,dynamicFn)}_marshalArgs(args,path,props){const data=this.__data;const values=[];for(let i=0,l=args.length;i<l;i++){let{name:name,structured:structured,wildcard:wildcard,value:value,literal:literal}=args[i];if(!literal){if(wildcard){const matches=isDescendant(name,path);const pathValue=getArgValue(data,props,matches?path:name);value={path:matches?path:name,value:pathValue,base:matches?get(data,name):pathValue}}else{value=structured?getArgValue(data,props,name):data[name]}}values[i]=value}return values}static addPropertyEffect(property,type,effect){this.prototype._addPropertyEffect(property,type,effect)}static createPropertyObserver(property,method,dynamicFn){this.prototype._createPropertyObserver(property,method,dynamicFn)}static createMethodObserver(expression,dynamicFn){this.prototype._createMethodObserver(expression,dynamicFn)}static createNotifyingProperty(property){this.prototype._createNotifyingProperty(property)}static createReadOnlyProperty(property,protectedSetter){this.prototype._createReadOnlyProperty(property,protectedSetter)}static createReflectedProperty(property){this.prototype._createReflectedProperty(property)}static createComputedProperty(property,expression,dynamicFn){this.prototype._createComputedProperty(property,expression,dynamicFn)}static bindTemplate(template){return this.prototype._bindTemplate(template)}_bindTemplate(template,instanceBinding){let templateInfo=this.constructor._parseTemplate(template);let wasPreBound=this.__templateInfo==templateInfo;if(!wasPreBound){for(let prop in templateInfo.propertyEffects){this._createPropertyAccessor(prop)}}if(instanceBinding){templateInfo=Object.create(templateInfo);templateInfo.wasPreBound=wasPreBound;if(!wasPreBound&&this.__templateInfo){let last=this.__templateInfoLast||this.__templateInfo;this.__templateInfoLast=last.nextTemplateInfo=templateInfo;templateInfo.previousTemplateInfo=last;return templateInfo}}return this.__templateInfo=templateInfo}static _addTemplatePropertyEffect(templateInfo,prop,effect){let hostProps=templateInfo.hostProps=templateInfo.hostProps||{};hostProps[prop]=true;let effects=templateInfo.propertyEffects=templateInfo.propertyEffects||{};let propEffects=effects[prop]=effects[prop]||[];propEffects.push(effect)}_stampTemplate(template){hostStack.beginHosting(this);let dom=super._stampTemplate(template);hostStack.endHosting(this);let templateInfo=this._bindTemplate(template,true);templateInfo.nodeList=dom.nodeList;if(!templateInfo.wasPreBound){let nodes=templateInfo.childNodes=[];for(let n=dom.firstChild;n;n=n.nextSibling){nodes.push(n)}}dom.templateInfo=templateInfo;setupBindings(this,templateInfo);if(this.__dataReady){runEffects(this,templateInfo.propertyEffects,this.__data,null,false,templateInfo.nodeList)}return dom}_removeBoundDom(dom){let templateInfo=dom.templateInfo;if(templateInfo.previousTemplateInfo){templateInfo.previousTemplateInfo.nextTemplateInfo=templateInfo.nextTemplateInfo}if(templateInfo.nextTemplateInfo){templateInfo.nextTemplateInfo.previousTemplateInfo=templateInfo.previousTemplateInfo}if(this.__templateInfoLast==templateInfo){this.__templateInfoLast=templateInfo.previousTemplateInfo}templateInfo.previousTemplateInfo=templateInfo.nextTemplateInfo=null;let nodes=templateInfo.childNodes;for(let i=0;i<nodes.length;i++){let node=nodes[i];node.parentNode.removeChild(node)}}static _parseTemplateNode(node,templateInfo,nodeInfo){let noted=super._parseTemplateNode(node,templateInfo,nodeInfo);if(node.nodeType===Node.TEXT_NODE){let parts=this._parseBindings(node.textContent,templateInfo);if(parts){node.textContent=literalFromParts(parts)||" ";addBinding(this,templateInfo,nodeInfo,"text","textContent",parts);noted=true}}return noted}static _parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value){let parts=this._parseBindings(value,templateInfo);if(parts){let origName=name;let kind="property";if(capitalAttributeRegex.test(name)){kind="attribute"}else if(name[name.length-1]=="$"){name=name.slice(0,-1);kind="attribute"}let literal=literalFromParts(parts);if(literal&&kind=="attribute"){if(name=="class"&&node.hasAttribute("class")){literal+=" "+node.getAttribute(name)}node.setAttribute(name,literal)}if(node.localName==="input"&&origName==="value"){node.setAttribute(origName,"")}node.removeAttribute(origName);if(kind==="property"){name=dashToCamelCase(name)}addBinding(this,templateInfo,nodeInfo,kind,name,parts,literal);return true}else{return super._parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value)}}static _parseTemplateNestedTemplate(node,templateInfo,nodeInfo){let noted=super._parseTemplateNestedTemplate(node,templateInfo,nodeInfo);let hostProps=nodeInfo.templateInfo.hostProps;let mode="{";for(let source in hostProps){let parts=[{mode:mode,source:source,dependencies:[source]}];addBinding(this,templateInfo,nodeInfo,"property","_host_"+source,parts)}return noted}static _parseBindings(text,templateInfo){let parts=[];let lastIndex=0;let m;while((m=bindingRegex.exec(text))!==null){if(m.index>lastIndex){parts.push({literal:text.slice(lastIndex,m.index)})}let mode=m[1][0];let negate=Boolean(m[2]);let source=m[3].trim();let customEvent=false,notifyEvent="",colon=-1;if(mode=="{"&&(colon=source.indexOf("::"))>0){notifyEvent=source.substring(colon+2);source=source.substring(0,colon);customEvent=true}let signature=parseMethod(source);let dependencies=[];if(signature){let{args:args,methodName:methodName}=signature;for(let i=0;i<args.length;i++){let arg=args[i];if(!arg.literal){dependencies.push(arg)}}let dynamicFns=templateInfo.dynamicFns;if(dynamicFns&&dynamicFns[methodName]||signature.static){dependencies.push(methodName);signature.dynamicFn=true}}else{dependencies.push(source)}parts.push({source:source,mode:mode,negate:negate,customEvent:customEvent,signature:signature,dependencies:dependencies,event:notifyEvent});lastIndex=bindingRegex.lastIndex}if(lastIndex&&lastIndex<text.length){let literal=text.substring(lastIndex);if(literal){parts.push({literal:literal})}}if(parts.length){return parts}else{return null}}static _evaluateBinding(inst,part,path,props,oldProps,hasPaths){let value;if(part.signature){value=runMethodEffect(inst,path,props,oldProps,part.signature)}else if(path!=part.source){value=get(inst,part.source)}else{if(hasPaths&&isPath(path)){value=get(inst,path)}else{value=inst.__data[path]}}if(part.negate){value=!value}return value}}return PropertyEffects});class HostStack{constructor(){this.stack=[]}registerHost(inst){if(this.stack.length){let host=this.stack[this.stack.length-1];host._enqueueClient(inst)}}beginHosting(inst){this.stack.push(inst)}endHosting(inst){let stackLen=this.stack.length;if(stackLen&&this.stack[stackLen-1]==inst){this.stack.pop()}}}const hostStack=new HostStack;function register$1(prototype){}function normalizeProperties(props){const output={};for(let p in props){const o=props[p];output[p]=typeof o==="function"?{type:o}:o}return output}const PropertiesMixin=dedupingMixin(superClass=>{const base=PropertiesChanged(superClass);function superPropertiesClass(constructor){const superCtor=Object.getPrototypeOf(constructor);return superCtor.prototype instanceof PropertiesMixin?superCtor:null}function ownProperties(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__ownProperties",constructor))){let props=null;if(constructor.hasOwnProperty(JSCompiler_renameProperty("properties",constructor))){const properties=constructor.properties;if(properties){props=normalizeProperties(properties)}}constructor.__ownProperties=props}return constructor.__ownProperties}class PropertiesMixin extends base{static get observedAttributes(){if(!this.hasOwnProperty("__observedAttributes")){register$1(this.prototype);const props=this._properties;this.__observedAttributes=props?Object.keys(props).map(p=>this.attributeNameForProperty(p)):[]}return this.__observedAttributes}static finalize(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__finalized",this))){const superCtor=superPropertiesClass(this);if(superCtor){superCtor.finalize()}this.__finalized=true;this._finalizeClass()}}static _finalizeClass(){const props=ownProperties(this);if(props){this.createProperties(props)}}static get _properties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__properties",this))){const superCtor=superPropertiesClass(this);this.__properties=Object.assign({},superCtor&&superCtor._properties,ownProperties(this))}return this.__properties}static typeForProperty(name){const info=this._properties[name];return info&&info.type}_initializeProperties(){this.constructor.finalize();super._initializeProperties()}connectedCallback(){if(super.connectedCallback){super.connectedCallback()}this._enableProperties()}disconnectedCallback(){if(super.disconnectedCallback){super.disconnectedCallback()}}}return PropertiesMixin});const version="3.2.0";const builtCSS=window.ShadyCSS&&window.ShadyCSS["cssBuild"];const ElementMixin=dedupingMixin(base=>{const polymerElementBase=PropertiesMixin(PropertyEffects(base));function propertyDefaults(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__propertyDefaults",constructor))){constructor.__propertyDefaults=null;let props=constructor._properties;for(let p in props){let info=props[p];if("value"in info){constructor.__propertyDefaults=constructor.__propertyDefaults||{};constructor.__propertyDefaults[p]=info}}}return constructor.__propertyDefaults}function ownObservers(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__ownObservers",constructor))){constructor.__ownObservers=constructor.hasOwnProperty(JSCompiler_renameProperty("observers",constructor))?constructor.observers:null}return constructor.__ownObservers}function createPropertyFromConfig(proto,name,info,allProps){if(info.computed){info.readOnly=true}if(info.computed){if(proto._hasReadOnlyEffect(name)){console.warn(`Cannot redefine computed property '${name}'.`)}else{proto._createComputedProperty(name,info.computed,allProps)}}if(info.readOnly&&!proto._hasReadOnlyEffect(name)){proto._createReadOnlyProperty(name,!info.computed)}else if(info.readOnly===false&&proto._hasReadOnlyEffect(name)){console.warn(`Cannot make readOnly property '${name}' non-readOnly.`)}if(info.reflectToAttribute&&!proto._hasReflectEffect(name)){proto._createReflectedProperty(name)}else if(info.reflectToAttribute===false&&proto._hasReflectEffect(name)){console.warn(`Cannot make reflected property '${name}' non-reflected.`)}if(info.notify&&!proto._hasNotifyEffect(name)){proto._createNotifyingProperty(name)}else if(info.notify===false&&proto._hasNotifyEffect(name)){console.warn(`Cannot make notify property '${name}' non-notify.`)}if(info.observer){proto._createPropertyObserver(name,info.observer,allProps[info.observer])}proto._addPropertyToAttributeMap(name)}function processElementStyles(klass,template,is,baseURI){if(!builtCSS){const templateStyles=template.content.querySelectorAll("style");const stylesWithImports=stylesFromTemplate(template);const linkedStyles=stylesFromModuleImports(is);const firstTemplateChild=template.content.firstElementChild;for(let idx=0;idx<linkedStyles.length;idx++){let s=linkedStyles[idx];s.textContent=klass._processStyleText(s.textContent,baseURI);template.content.insertBefore(s,firstTemplateChild)}let templateStyleIndex=0;for(let i=0;i<stylesWithImports.length;i++){let s=stylesWithImports[i];let templateStyle=templateStyles[templateStyleIndex];if(templateStyle!==s){s=s.cloneNode(true);templateStyle.parentNode.insertBefore(s,templateStyle)}else{templateStyleIndex++}s.textContent=klass._processStyleText(s.textContent,baseURI)}}if(window.ShadyCSS){window.ShadyCSS.prepareTemplate(template,is)}}function getTemplateFromDomModule(is){let template=null;if(is&&(!strictTemplatePolicy||allowTemplateFromDomModule)){template=DomModule.import(is,"template");if(strictTemplatePolicy&&!template){throw new Error(`strictTemplatePolicy: expecting dom-module or null template for ${is}`)}}return template}class PolymerElement extends polymerElementBase{static get polymerElementVersion(){return version}static _finalizeClass(){super._finalizeClass();const observers=ownObservers(this);if(observers){this.createObservers(observers,this._properties)}this._prepareTemplate()}static _prepareTemplate(){let template=this.template;if(template){if(typeof template==="string"){console.error("template getter must return HTMLTemplateElement");template=null}else if(!legacyOptimizations){template=template.cloneNode(true)}}this.prototype._template=template}static createProperties(props){for(let p in props){createPropertyFromConfig(this.prototype,p,props[p],props)}}static createObservers(observers,dynamicFns){const proto=this.prototype;for(let i=0;i<observers.length;i++){proto._createMethodObserver(observers[i],dynamicFns)}}static get template(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_template",this))){this._template=this.prototype.hasOwnProperty(JSCompiler_renameProperty("_template",this.prototype))?this.prototype._template:getTemplateFromDomModule(this.is)||Object.getPrototypeOf(this.prototype).constructor.template}return this._template}static set template(value){this._template=value}static get importPath(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_importPath",this))){const meta=this.importMeta;if(meta){this._importPath=pathFromUrl(meta.url)}else{const module=DomModule.import(this.is);this._importPath=module&&module.assetpath||Object.getPrototypeOf(this.prototype).constructor.importPath}}return this._importPath}constructor(){super();this._template;this._importPath;this.rootPath;this.importPath;this.root;this.$}_initializeProperties(){this.constructor.finalize();this.constructor._finalizeTemplate(this.localName);super._initializeProperties();this.rootPath=rootPath;this.importPath=this.constructor.importPath;let p$=propertyDefaults(this.constructor);if(!p$){return}for(let p in p$){let info=p$[p];if(!this.hasOwnProperty(p)){let value=typeof info.value=="function"?info.value.call(this):info.value;if(this._hasAccessor(p)){this._setPendingProperty(p,value,true)}else{this[p]=value}}}}static _processStyleText(cssText,baseURI){return resolveCss(cssText,baseURI)}static _finalizeTemplate(is){const template=this.prototype._template;if(template&&!template.__polymerFinalized){template.__polymerFinalized=true;const importPath=this.importPath;const baseURI=importPath?resolveUrl(importPath):"";processElementStyles(this,template,is,baseURI);this.prototype._bindTemplate(template)}}connectedCallback(){if(window.ShadyCSS&&this._template){window.ShadyCSS.styleElement(this)}super.connectedCallback()}ready(){if(this._template){this.root=this._stampTemplate(this._template);this.$=this.root.$}super.ready()}_readyClients(){if(this._template){this.root=this._attachDom(this.root)}super._readyClients()}_attachDom(dom){const n=wrap(this);if(n.attachShadow){if(dom){if(!n.shadowRoot){n.attachShadow({mode:"open"})}n.shadowRoot.appendChild(dom);if(syncInitialRender&&window.ShadyDOM){ShadyDOM.flushInitial(n.shadowRoot)}return n.shadowRoot}return null}else{throw new Error("ShadowDOM not available. "+"PolymerElement can create dom as children instead of in "+"ShadowDOM by setting `this.root = this;` before `ready`.")}}updateStyles(properties){if(window.ShadyCSS){window.ShadyCSS.styleSubtree(this,properties)}}resolveUrl(url,base){if(!base&&this.importPath){base=resolveUrl(this.importPath)}return resolveUrl(url,base)}static _parseTemplateContent(template,templateInfo,nodeInfo){templateInfo.dynamicFns=templateInfo.dynamicFns||this._properties;return super._parseTemplateContent(template,templateInfo,nodeInfo)}static _addTemplatePropertyEffect(templateInfo,prop,effect){if(legacyOptimizations&&!(prop in this._properties)){console.warn(`Property '${prop}' used in template but not declared in 'properties'; `+`attribute will not be observed.`)}return super._addTemplatePropertyEffect(templateInfo,prop,effect)}}return PolymerElement});const GestureEventListeners=dedupingMixin(superClass=>{class GestureEventListeners extends superClass{_addEventListenerToNode(node,eventName,handler){if(!addListener(node,eventName,handler)){super._addEventListenerToNode(node,eventName,handler)}}_removeEventListenerFromNode(node,eventName,handler){if(!removeListener(node,eventName,handler)){super._removeEventListenerFromNode(node,eventName,handler)}}}return GestureEventListeners});function resolve(){document.body.removeAttribute("unresolved")}if(document.readyState==="interactive"||document.readyState==="complete"){resolve()}else{window.addEventListener("DOMContentLoaded",resolve)}function newSplice(index,removed,addedCount){return{index:index,removed:removed,addedCount:addedCount}}const EDIT_LEAVE=0;const EDIT_UPDATE=1;const EDIT_ADD=2;const EDIT_DELETE=3;function calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd){let rowCount=oldEnd-oldStart+1;let columnCount=currentEnd-currentStart+1;let distances=new Array(rowCount);for(let i=0;i<rowCount;i++){distances[i]=new Array(columnCount);distances[i][0]=i}for(let j=0;j<columnCount;j++)distances[0][j]=j;for(let i=1;i<rowCount;i++){for(let j=1;j<columnCount;j++){if(equals(current[currentStart+j-1],old[oldStart+i-1]))distances[i][j]=distances[i-1][j-1];else{let north=distances[i-1][j]+1;let west=distances[i][j-1]+1;distances[i][j]=north<west?north:west}}}return distances}function spliceOperationsFromEditDistances(distances){let i=distances.length-1;let j=distances[0].length-1;let current=distances[i][j];let edits=[];while(i>0||j>0){if(i==0){edits.push(EDIT_ADD);j--;continue}if(j==0){edits.push(EDIT_DELETE);i--;continue}let northWest=distances[i-1][j-1];let west=distances[i-1][j];let north=distances[i][j-1];let min;if(west<north)min=west<northWest?west:northWest;else min=north<northWest?north:northWest;if(min==northWest){if(northWest==current){edits.push(EDIT_LEAVE)}else{edits.push(EDIT_UPDATE);current=northWest}i--;j--}else if(min==west){edits.push(EDIT_DELETE);i--;current=west}else{edits.push(EDIT_ADD);j--;current=north}}edits.reverse();return edits}function calcSplices(current,currentStart,currentEnd,old,oldStart,oldEnd){let prefixCount=0;let suffixCount=0;let splice;let minLength=Math.min(currentEnd-currentStart,oldEnd-oldStart);if(currentStart==0&&oldStart==0)prefixCount=sharedPrefix(current,old,minLength);if(currentEnd==current.length&&oldEnd==old.length)suffixCount=sharedSuffix(current,old,minLength-prefixCount);currentStart+=prefixCount;oldStart+=prefixCount;currentEnd-=suffixCount;oldEnd-=suffixCount;if(currentEnd-currentStart==0&&oldEnd-oldStart==0)return[];if(currentStart==currentEnd){splice=newSplice(currentStart,[],0);while(oldStart<oldEnd)splice.removed.push(old[oldStart++]);return[splice]}else if(oldStart==oldEnd)return[newSplice(currentStart,[],currentEnd-currentStart)];let ops=spliceOperationsFromEditDistances(calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd));splice=undefined;let splices=[];let index=currentStart;let oldIndex=oldStart;for(let i=0;i<ops.length;i++){switch(ops[i]){case EDIT_LEAVE:if(splice){splices.push(splice);splice=undefined}index++;oldIndex++;break;case EDIT_UPDATE:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;splice.removed.push(old[oldIndex]);oldIndex++;break;case EDIT_ADD:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;break;case EDIT_DELETE:if(!splice)splice=newSplice(index,[],0);splice.removed.push(old[oldIndex]);oldIndex++;break}}if(splice){splices.push(splice)}return splices}function sharedPrefix(current,old,searchLength){for(let i=0;i<searchLength;i++)if(!equals(current[i],old[i]))return i;return searchLength}function sharedSuffix(current,old,searchLength){let index1=current.length;let index2=old.length;let count=0;while(count<searchLength&&equals(current[--index1],old[--index2]))count++;return count}function calculateSplices(current,previous){return calcSplices(current,0,current.length,previous,0,previous.length)}function equals(currentValue,previousValue){return currentValue===previousValue}function isSlot(node){return node.localName==="slot"}let FlattenedNodesObserver=class{static getFlattenedNodes(node){const wrapped=wrap(node);if(isSlot(node)){node=node;return wrapped.assignedNodes({flatten:true})}else{return Array.from(wrapped.childNodes).map(node=>{if(isSlot(node)){node=node;return wrap(node).assignedNodes({flatten:true})}else{return[node]}}).reduce((a,b)=>a.concat(b),[])}}constructor(target,callback){this._shadyChildrenObserver=null;this._nativeChildrenObserver=null;this._connected=false;this._target=target;this.callback=callback;this._effectiveNodes=[];this._observer=null;this._scheduled=false;this._boundSchedule=(()=>{this._schedule()});this.connect();this._schedule()}connect(){if(isSlot(this._target)){this._listenSlots([this._target])}else if(wrap(this._target).children){this._listenSlots(wrap(this._target).children);if(window.ShadyDOM){this._shadyChildrenObserver=ShadyDOM.observeChildren(this._target,mutations=>{this._processMutations(mutations)})}else{this._nativeChildrenObserver=new MutationObserver(mutations=>{this._processMutations(mutations)});this._nativeChildrenObserver.observe(this._target,{childList:true})}}this._connected=true}disconnect(){if(isSlot(this._target)){this._unlistenSlots([this._target])}else if(wrap(this._target).children){this._unlistenSlots(wrap(this._target).children);if(window.ShadyDOM&&this._shadyChildrenObserver){ShadyDOM.unobserveChildren(this._shadyChildrenObserver);this._shadyChildrenObserver=null}else if(this._nativeChildrenObserver){this._nativeChildrenObserver.disconnect();this._nativeChildrenObserver=null}}this._connected=false}_schedule(){if(!this._scheduled){this._scheduled=true;microTask.run(()=>this.flush())}}_processMutations(mutations){this._processSlotMutations(mutations);this.flush()}_processSlotMutations(mutations){if(mutations){for(let i=0;i<mutations.length;i++){let mutation=mutations[i];if(mutation.addedNodes){this._listenSlots(mutation.addedNodes)}if(mutation.removedNodes){this._unlistenSlots(mutation.removedNodes)}}}}flush(){if(!this._connected){return false}if(window.ShadyDOM){ShadyDOM.flush()}if(this._nativeChildrenObserver){this._processSlotMutations(this._nativeChildrenObserver.takeRecords())}else if(this._shadyChildrenObserver){this._processSlotMutations(this._shadyChildrenObserver.takeRecords())}this._scheduled=false;let info={target:this._target,addedNodes:[],removedNodes:[]};let newNodes=this.constructor.getFlattenedNodes(this._target);let splices=calculateSplices(newNodes,this._effectiveNodes);for(let i=0,s;i<splices.length&&(s=splices[i]);i++){for(let j=0,n;j<s.removed.length&&(n=s.removed[j]);j++){info.removedNodes.push(n)}}for(let i=0,s;i<splices.length&&(s=splices[i]);i++){for(let j=s.index;j<s.index+s.addedCount;j++){info.addedNodes.push(newNodes[j])}}this._effectiveNodes=newNodes;let didFlush=false;if(info.addedNodes.length||info.removedNodes.length){didFlush=true;this.callback.call(this._target,info)}return didFlush}_listenSlots(nodeList){for(let i=0;i<nodeList.length;i++){let n=nodeList[i];if(isSlot(n)){n.addEventListener("slotchange",this._boundSchedule)}}}_unlistenSlots(nodeList){for(let i=0;i<nodeList.length;i++){let n=nodeList[i];if(isSlot(n)){n.removeEventListener("slotchange",this._boundSchedule)}}}};const flush=function(){let shadyDOM,debouncers;do{shadyDOM=window.ShadyDOM&&ShadyDOM.flush();if(window.ShadyCSS&&window.ShadyCSS.ScopingShim){window.ShadyCSS.ScopingShim.flush()}debouncers=flushDebouncers()}while(shadyDOM||debouncers)};const p=Element.prototype;const normalizedMatchesSelector=p.matches||p.matchesSelector||p.mozMatchesSelector||p.msMatchesSelector||p.oMatchesSelector||p.webkitMatchesSelector;const matchesSelector=function(node,selector){return normalizedMatchesSelector.call(node,selector)};class DomApiNative{constructor(node){this.node=node}observeNodes(callback){return new FlattenedNodesObserver(this.node,callback)}unobserveNodes(observerHandle){observerHandle.disconnect()}notifyObserver(){}deepContains(node){if(wrap(this.node).contains(node)){return true}let n=node;let doc=node.ownerDocument;while(n&&n!==doc&&n!==this.node){n=wrap(n).parentNode||wrap(n).host}return n===this.node}getOwnerRoot(){return wrap(this.node).getRootNode()}getDistributedNodes(){return this.node.localName==="slot"?wrap(this.node).assignedNodes({flatten:true}):[]}getDestinationInsertionPoints(){let ip$=[];let n=wrap(this.node).assignedSlot;while(n){ip$.push(n);n=wrap(n).assignedSlot}return ip$}importNode(node,deep){let doc=this.node instanceof Document?this.node:this.node.ownerDocument;return wrap(doc).importNode(node,deep)}getEffectiveChildNodes(){return FlattenedNodesObserver.getFlattenedNodes(this.node)}queryDistributedElements(selector){let c$=this.getEffectiveChildNodes();let list=[];for(let i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.nodeType===Node.ELEMENT_NODE&&matchesSelector(c,selector)){list.push(c)}}return list}get activeElement(){let node=this.node;return node._activeElement!==undefined?node._activeElement:node.activeElement}}function forwardMethods(proto,methods){for(let i=0;i<methods.length;i++){let method=methods[i];proto[method]=function(){return this.node[method].apply(this.node,arguments)}}}function forwardReadOnlyProperties(proto,properties){for(let i=0;i<properties.length;i++){let name=properties[i];Object.defineProperty(proto,name,{get:function(){const domApi=this;return domApi.node[name]},configurable:true})}}function forwardProperties(proto,properties){for(let i=0;i<properties.length;i++){let name=properties[i];Object.defineProperty(proto,name,{get:function(){return this.node[name]},set:function(value){this.node[name]=value},configurable:true})}}class EventApi{constructor(event){this.event=event}get rootTarget(){return this.path[0]}get localTarget(){return this.event.target}get path(){return this.event.composedPath()}}DomApiNative.prototype.cloneNode;DomApiNative.prototype.appendChild;DomApiNative.prototype.insertBefore;DomApiNative.prototype.removeChild;DomApiNative.prototype.replaceChild;DomApiNative.prototype.setAttribute;DomApiNative.prototype.removeAttribute;DomApiNative.prototype.querySelector;DomApiNative.prototype.querySelectorAll;DomApiNative.prototype.parentNode;DomApiNative.prototype.firstChild;DomApiNative.prototype.lastChild;DomApiNative.prototype.nextSibling;DomApiNative.prototype.previousSibling;DomApiNative.prototype.firstElementChild;DomApiNative.prototype.lastElementChild;DomApiNative.prototype.nextElementSibling;DomApiNative.prototype.previousElementSibling;DomApiNative.prototype.childNodes;DomApiNative.prototype.children;DomApiNative.prototype.classList;DomApiNative.prototype.textContent;DomApiNative.prototype.innerHTML;let DomApiImpl=DomApiNative;if(window["ShadyDOM"]&&window["ShadyDOM"]["inUse"]&&window["ShadyDOM"]["noPatch"]&&window["ShadyDOM"]["Wrapper"]){class Wrapper extends window["ShadyDOM"]["Wrapper"]{}Object.getOwnPropertyNames(DomApiNative.prototype).forEach(prop=>{if(prop!="activeElement"){Wrapper.prototype[prop]=DomApiNative.prototype[prop]}});forwardReadOnlyProperties(Wrapper.prototype,["classList"]);DomApiImpl=Wrapper;Object.defineProperties(EventApi.prototype,{localTarget:{get(){return this.event.currentTarget},configurable:true},path:{get(){return window["ShadyDOM"]["composedPath"](this.event)},configurable:true}})}else{forwardMethods(DomApiNative.prototype,["cloneNode","appendChild","insertBefore","removeChild","replaceChild","setAttribute","removeAttribute","querySelector","querySelectorAll"]);forwardReadOnlyProperties(DomApiNative.prototype,["parentNode","firstChild","lastChild","nextSibling","previousSibling","firstElementChild","lastElementChild","nextElementSibling","previousElementSibling","childNodes","children","classList"]);forwardProperties(DomApiNative.prototype,["textContent","innerHTML"])}const dom=function(obj){obj=obj||document;if(obj instanceof DomApiImpl){return obj}if(obj instanceof EventApi){return obj}let helper=obj["__domApi"];if(!helper){if(obj instanceof Event){helper=new EventApi(obj)}else{helper=new DomApiImpl(obj)}obj["__domApi"]=helper}return helper};let styleInterface=window.ShadyCSS;const LegacyElementMixin=dedupingMixin(base=>{const legacyElementBase=GestureEventListeners(ElementMixin(base));const DIRECTION_MAP={x:"pan-x",y:"pan-y",none:"none",all:"auto"};class LegacyElement extends legacyElementBase{constructor(){super();this.isAttached;this.__boundListeners;this._debouncers}static get importMeta(){return this.prototype.importMeta}created(){}connectedCallback(){super.connectedCallback();this.isAttached=true;this.attached()}attached(){}disconnectedCallback(){super.disconnectedCallback();this.isAttached=false;this.detached()}detached(){}attributeChangedCallback(name,old,value,namespace){if(old!==value){super.attributeChangedCallback(name,old,value,namespace);this.attributeChanged(name,old,value)}}attributeChanged(name,old,value){}_initializeProperties(){let proto=Object.getPrototypeOf(this);if(!proto.hasOwnProperty("__hasRegisterFinished")){this._registered();proto.__hasRegisterFinished=true}super._initializeProperties();this.root=this;this.created();this._applyListeners()}_registered(){}ready(){this._ensureAttributes();super.ready()}_ensureAttributes(){}_applyListeners(){}serialize(value){return this._serializeValue(value)}deserialize(value,type){return this._deserializeValue(value,type)}reflectPropertyToAttribute(property,attribute,value){this._propertyToAttribute(property,attribute,value)}serializeValueToAttribute(value,attribute,node){this._valueToNodeAttribute(node||this,value,attribute)}extend(prototype,api){if(!(prototype&&api)){return prototype||api}let n$=Object.getOwnPropertyNames(api);for(let i=0,n;i<n$.length&&(n=n$[i]);i++){let pd=Object.getOwnPropertyDescriptor(api,n);if(pd){Object.defineProperty(prototype,n,pd)}}return prototype}mixin(target,source){for(let i in source){target[i]=source[i]}return target}chainObject(object,prototype){if(object&&prototype&&object!==prototype){object.__proto__=prototype}return object}instanceTemplate(template){let content=this.constructor._contentForTemplate(template);let dom=document.importNode(content,true);return dom}fire(type,detail,options){options=options||{};detail=detail===null||detail===undefined?{}:detail;let event=new Event(type,{bubbles:options.bubbles===undefined?true:options.bubbles,cancelable:Boolean(options.cancelable),composed:options.composed===undefined?true:options.composed});event.detail=detail;let node=options.node||this;wrap(node).dispatchEvent(event);return event}listen(node,eventName,methodName){node=node||this;let hbl=this.__boundListeners||(this.__boundListeners=new WeakMap);let bl=hbl.get(node);if(!bl){bl={};hbl.set(node,bl)}let key=eventName+methodName;if(!bl[key]){bl[key]=this._addMethodEventListenerToNode(node,eventName,methodName,this)}}unlisten(node,eventName,methodName){node=node||this;let bl=this.__boundListeners&&this.__boundListeners.get(node);let key=eventName+methodName;let handler=bl&&bl[key];if(handler){this._removeEventListenerFromNode(node,eventName,handler);bl[key]=null}}setScrollDirection(direction,node){setTouchAction(node||this,DIRECTION_MAP[direction]||"auto")}$$(slctr){return this.root.querySelector(slctr)}get domHost(){let root=wrap(this).getRootNode();return root instanceof DocumentFragment?root.host:root}distributeContent(){const thisEl=this;const domApi=dom(thisEl);if(window.ShadyDOM&&domApi.shadowRoot){ShadyDOM.flush()}}getEffectiveChildNodes(){const thisEl=this;const domApi=dom(thisEl);return domApi.getEffectiveChildNodes()}queryDistributedElements(selector){const thisEl=this;const domApi=dom(thisEl);return domApi.queryDistributedElements(selector)}getEffectiveChildren(){let list=this.getEffectiveChildNodes();return list.filter(function(n){return n.nodeType===Node.ELEMENT_NODE})}getEffectiveTextContent(){let cn=this.getEffectiveChildNodes();let tc=[];for(let i=0,c;c=cn[i];i++){if(c.nodeType!==Node.COMMENT_NODE){tc.push(c.textContent)}}return tc.join("")}queryEffectiveChildren(selector){let e$=this.queryDistributedElements(selector);return e$&&e$[0]}queryAllEffectiveChildren(selector){return this.queryDistributedElements(selector)}getContentChildNodes(slctr){let content=this.root.querySelector(slctr||"slot");return content?dom(content).getDistributedNodes():[]}getContentChildren(slctr){let children=this.getContentChildNodes(slctr).filter(function(n){return n.nodeType===Node.ELEMENT_NODE});return children}isLightDescendant(node){const thisNode=this;return thisNode!==node&&wrap(thisNode).contains(node)&&wrap(thisNode).getRootNode()===wrap(node).getRootNode()}isLocalDescendant(node){return this.root===wrap(node).getRootNode()}scopeSubtree(container,shouldObserve){}getComputedStyleValue(property){return styleInterface.getComputedStyleValue(this,property)}debounce(jobName,callback,wait){this._debouncers=this._debouncers||{};return this._debouncers[jobName]=Debouncer.debounce(this._debouncers[jobName],wait>0?timeOut.after(wait):microTask,callback.bind(this))}isDebouncerActive(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];return!!(debouncer&&debouncer.isActive())}flushDebouncer(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];if(debouncer){debouncer.flush()}}cancelDebouncer(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];if(debouncer){debouncer.cancel()}}async(callback,waitTime){return waitTime>0?timeOut.run(callback.bind(this),waitTime):~microTask.run(callback.bind(this))}cancelAsync(handle){handle<0?microTask.cancel(~handle):timeOut.cancel(handle)}create(tag,props){let elt=document.createElement(tag);if(props){if(elt.setProperties){elt.setProperties(props)}else{for(let n in props){elt[n]=props[n]}}}return elt}elementMatches(selector,node){return matchesSelector(node||this,selector)}toggleAttribute(name,bool){let node=this;if(arguments.length===3){node=arguments[2]}if(arguments.length==1){bool=!node.hasAttribute(name)}if(bool){wrap(node).setAttribute(name,"");return true}else{wrap(node).removeAttribute(name);return false}}toggleClass(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.classList.contains(name)}if(bool){node.classList.add(name)}else{node.classList.remove(name)}}transform(transformText,node){node=node||this;node.style.webkitTransform=transformText;node.style.transform=transformText}translate3d(x,y,z,node){node=node||this;this.transform("translate3d("+x+","+y+","+z+")",node)}arrayDelete(arrayOrPath,item){let index;if(Array.isArray(arrayOrPath)){index=arrayOrPath.indexOf(item);if(index>=0){return arrayOrPath.splice(index,1)}}else{let arr=get(this,arrayOrPath);index=arr.indexOf(item);if(index>=0){return this.splice(arrayOrPath,index,1)}}return null}_logger(level,args){if(Array.isArray(args)&&args.length===1&&Array.isArray(args[0])){args=args[0]}switch(level){case"log":case"warn":case"error":console[level](...args)}}_log(...args){this._logger("log",args)}_warn(...args){this._logger("warn",args)}_error(...args){this._logger("error",args)}_logf(methodName,...args){return["[%s::%s]",this.is,methodName,...args]}}LegacyElement.prototype.is="";return LegacyElement});const lifecycleProps={attached:true,detached:true,ready:true,created:true,beforeRegister:true,registered:true,attributeChanged:true,listeners:true,hostAttributes:true};const excludeOnInfo={attached:true,detached:true,ready:true,created:true,beforeRegister:true,registered:true,attributeChanged:true,behaviors:true,_noAccessors:true};const excludeOnBehaviors=Object.assign({listeners:true,hostAttributes:true,properties:true,observers:true},excludeOnInfo);function copyProperties(source,target,excludeProps){const noAccessors=source._noAccessors;const propertyNames=Object.getOwnPropertyNames(source);for(let i=0;i<propertyNames.length;i++){let p=propertyNames[i];if(p in excludeProps){continue}if(noAccessors){target[p]=source[p]}else{let pd=Object.getOwnPropertyDescriptor(source,p);if(pd){pd.configurable=true;Object.defineProperty(target,p,pd)}}}}function applyBehaviors(proto,behaviors,lifecycle){for(let i=0;i<behaviors.length;i++){applyInfo(proto,behaviors[i],lifecycle,excludeOnBehaviors)}}function applyInfo(proto,info,lifecycle,excludeProps){copyProperties(info,proto,excludeProps);for(let p in lifecycleProps){if(info[p]){lifecycle[p]=lifecycle[p]||[];lifecycle[p].push(info[p])}}}function flattenBehaviors(behaviors,list,exclude){list=list||[];for(let i=behaviors.length-1;i>=0;i--){let b=behaviors[i];if(b){if(Array.isArray(b)){flattenBehaviors(b,list)}else{if(list.indexOf(b)<0&&(!exclude||exclude.indexOf(b)<0)){list.unshift(b)}}}else{console.warn("behavior is null, check for missing or 404 import")}}return list}function mergeProperties(target,source){for(const p in source){const targetInfo=target[p];const sourceInfo=source[p];if(!("value"in sourceInfo)&&targetInfo&&"value"in targetInfo){target[p]=Object.assign({value:targetInfo.value},sourceInfo)}else{target[p]=sourceInfo}}}function GenerateClassFromInfo(info,Base,behaviors){let behaviorList;const lifecycle={};class PolymerGenerated extends Base{static _finalizeClass(){if(!this.hasOwnProperty(JSCompiler_renameProperty("generatedFrom",this))){super._finalizeClass()}else{if(behaviorList){for(let i=0,b;i<behaviorList.length;i++){b=behaviorList[i];if(b.properties){this.createProperties(b.properties)}if(b.observers){this.createObservers(b.observers,b.properties)}}}if(info.properties){this.createProperties(info.properties)}if(info.observers){this.createObservers(info.observers,info.properties)}this._prepareTemplate()}}static get properties(){const properties={};if(behaviorList){for(let i=0;i<behaviorList.length;i++){mergeProperties(properties,behaviorList[i].properties)}}mergeProperties(properties,info.properties);return properties}static get observers(){let observers=[];if(behaviorList){for(let i=0,b;i<behaviorList.length;i++){b=behaviorList[i];if(b.observers){observers=observers.concat(b.observers)}}}if(info.observers){observers=observers.concat(info.observers)}return observers}created(){super.created();const list=lifecycle.created;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}_registered(){const generatedProto=PolymerGenerated.prototype;if(!generatedProto.hasOwnProperty("__hasRegisterFinished")){generatedProto.__hasRegisterFinished=true;super._registered();if(legacyOptimizations){copyPropertiesToProto(generatedProto)}const proto=Object.getPrototypeOf(this);let list=lifecycle.beforeRegister;if(list){for(let i=0;i<list.length;i++){list[i].call(proto)}}list=lifecycle.registered;if(list){for(let i=0;i<list.length;i++){list[i].call(proto)}}}}_applyListeners(){super._applyListeners();const list=lifecycle.listeners;if(list){for(let i=0;i<list.length;i++){const listeners=list[i];if(listeners){for(let l in listeners){this._addMethodEventListenerToNode(this,l,listeners[l])}}}}}_ensureAttributes(){const list=lifecycle.hostAttributes;if(list){for(let i=list.length-1;i>=0;i--){const hostAttributes=list[i];for(let a in hostAttributes){this._ensureAttribute(a,hostAttributes[a])}}}super._ensureAttributes()}ready(){super.ready();let list=lifecycle.ready;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}attached(){super.attached();let list=lifecycle.attached;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}detached(){super.detached();let list=lifecycle.detached;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}attributeChanged(name,old,value){super.attributeChanged();let list=lifecycle.attributeChanged;if(list){for(let i=0;i<list.length;i++){list[i].call(this,name,old,value)}}}}if(behaviors){if(!Array.isArray(behaviors)){behaviors=[behaviors]}let superBehaviors=Base.prototype.behaviors;behaviorList=flattenBehaviors(behaviors,null,superBehaviors);PolymerGenerated.prototype.behaviors=superBehaviors?superBehaviors.concat(behaviors):behaviorList}const copyPropertiesToProto=proto=>{if(behaviorList){applyBehaviors(proto,behaviorList,lifecycle)}applyInfo(proto,info,lifecycle,excludeOnInfo)};if(!legacyOptimizations){copyPropertiesToProto(PolymerGenerated.prototype)}PolymerGenerated.generatedFrom=info;return PolymerGenerated}const Class=function(info,mixin){if(!info){console.warn("Polymer.Class requires `info` argument")}let klass=mixin?mixin(LegacyElementMixin(HTMLElement)):LegacyElementMixin(HTMLElement);klass=GenerateClassFromInfo(info,klass,info.behaviors);klass.is=klass.prototype.is=info.is;return klass};const Polymer=function(info){let klass;if(typeof info==="function"){klass=info}else{klass=Polymer.Class(info)}customElements.define(klass.is,klass);return klass};Polymer.Class=Class;function mutablePropertyChange(inst,property,value,old,mutableData){let isObject;if(mutableData){isObject=typeof value==="object"&&value!==null;if(isObject){old=inst.__dataTemp[property]}}let shouldChange=old!==value&&(old===old||value===value);if(isObject&&shouldChange){inst.__dataTemp[property]=value}return shouldChange}const MutableData=dedupingMixin(superClass=>{class MutableData extends superClass{_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,true)}}return MutableData});const OptionalMutableData=dedupingMixin(superClass=>{class OptionalMutableData extends superClass{static get properties(){return{mutableData:Boolean}}_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,this.mutableData)}}return OptionalMutableData});MutableData._mutablePropertyChange=mutablePropertyChange;let newInstance=null;function HTMLTemplateElementExtension(){return newInstance}HTMLTemplateElementExtension.prototype=Object.create(HTMLTemplateElement.prototype,{constructor:{value:HTMLTemplateElementExtension,writable:true}});const DataTemplate=PropertyEffects(HTMLTemplateElementExtension);const MutableDataTemplate=MutableData(DataTemplate);function upgradeTemplate(template,constructor){newInstance=template;Object.setPrototypeOf(template,constructor.prototype);new constructor;newInstance=null}const templateInstanceBase=PropertyEffects(class{});class TemplateInstanceBase extends templateInstanceBase{constructor(props){super();this._configureProperties(props);this.root=this._stampTemplate(this.__dataHost);let children=this.children=[];for(let n=this.root.firstChild;n;n=n.nextSibling){children.push(n);n.__templatizeInstance=this}if(this.__templatizeOwner&&this.__templatizeOwner.__hideTemplateChildren__){this._showHideChildren(true)}let options=this.__templatizeOptions;if(props&&options.instanceProps||!options.instanceProps){this._enableProperties()}}_configureProperties(props){let options=this.__templatizeOptions;if(options.forwardHostProp){for(let hprop in this.__hostProps){this._setPendingProperty(hprop,this.__dataHost["_host_"+hprop])}}for(let iprop in props){this._setPendingProperty(iprop,props[iprop])}}forwardHostProp(prop,value){if(this._setPendingPropertyOrPath(prop,value,false,true)){this.__dataHost._enqueueClient(this)}}_addEventListenerToNode(node,eventName,handler){if(this._methodHost&&this.__templatizeOptions.parentModel){this._methodHost._addEventListenerToNode(node,eventName,e=>{e.model=this;handler(e)})}else{let templateHost=this.__dataHost.__dataHost;if(templateHost){templateHost._addEventListenerToNode(node,eventName,handler)}}}_showHideChildren(hide){let c=this.children;for(let i=0;i<c.length;i++){let n=c[i];if(Boolean(hide)!=Boolean(n.__hideTemplateChildren__)){if(n.nodeType===Node.TEXT_NODE){if(hide){n.__polymerTextContent__=n.textContent;n.textContent=""}else{n.textContent=n.__polymerTextContent__}}else if(n.localName==="slot"){if(hide){n.__polymerReplaced__=document.createComment("hidden-slot");wrap(wrap(n).parentNode).replaceChild(n.__polymerReplaced__,n)}else{const replace=n.__polymerReplaced__;if(replace){wrap(wrap(replace).parentNode).replaceChild(n,replace)}}}else if(n.style){if(hide){n.__polymerDisplay__=n.style.display;n.style.display="none"}else{n.style.display=n.__polymerDisplay__}}}n.__hideTemplateChildren__=hide;if(n._showHideChildren){n._showHideChildren(hide)}}}_setUnmanagedPropertyToNode(node,prop,value){if(node.__hideTemplateChildren__&&node.nodeType==Node.TEXT_NODE&&prop=="textContent"){node.__polymerTextContent__=value}else{super._setUnmanagedPropertyToNode(node,prop,value)}}get parentModel(){let model=this.__parentModel;if(!model){let options;model=this;do{model=model.__dataHost.__dataHost}while((options=model.__templatizeOptions)&&!options.parentModel);this.__parentModel=model}return model}dispatchEvent(event){return true}}TemplateInstanceBase.prototype.__dataHost;TemplateInstanceBase.prototype.__templatizeOptions;TemplateInstanceBase.prototype._methodHost;TemplateInstanceBase.prototype.__templatizeOwner;TemplateInstanceBase.prototype.__hostProps;const MutableTemplateInstanceBase=MutableData(TemplateInstanceBase);function findMethodHost(template){let templateHost=template.__dataHost;return templateHost&&templateHost._methodHost||templateHost}function createTemplatizerClass(template,templateInfo,options){let templatizerBase=options.mutableData?MutableTemplateInstanceBase:TemplateInstanceBase;if(templatize.mixin){templatizerBase=templatize.mixin(templatizerBase)}let klass=class extends templatizerBase{};klass.prototype.__templatizeOptions=options;klass.prototype._bindTemplate(template);addNotifyEffects(klass,template,templateInfo,options);return klass}function addPropagateEffects(template,templateInfo,options){let userForwardHostProp=options.forwardHostProp;if(userForwardHostProp){let klass=templateInfo.templatizeTemplateClass;if(!klass){let templatizedBase=options.mutableData?MutableDataTemplate:DataTemplate;klass=templateInfo.templatizeTemplateClass=class TemplatizedTemplate extends templatizedBase{};let hostProps=templateInfo.hostProps;for(let prop in hostProps){klass.prototype._addPropertyEffect("_host_"+prop,klass.prototype.PROPERTY_EFFECT_TYPES.PROPAGATE,{fn:createForwardHostPropEffect(prop,userForwardHostProp)});klass.prototype._createNotifyingProperty("_host_"+prop)}}upgradeTemplate(template,klass);if(template.__dataProto){Object.assign(template.__data,template.__dataProto)}template.__dataTemp={};template.__dataPending=null;template.__dataOld=null;template._enableProperties()}}function createForwardHostPropEffect(hostProp,userForwardHostProp){return function forwardHostProp(template,prop,props){userForwardHostProp.call(template.__templatizeOwner,prop.substring("_host_".length),props[prop])}}function addNotifyEffects(klass,template,templateInfo,options){let hostProps=templateInfo.hostProps||{};for(let iprop in options.instanceProps){delete hostProps[iprop];let userNotifyInstanceProp=options.notifyInstanceProp;if(userNotifyInstanceProp){klass.prototype._addPropertyEffect(iprop,klass.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:createNotifyInstancePropEffect(iprop,userNotifyInstanceProp)})}}if(options.forwardHostProp&&template.__dataHost){for(let hprop in hostProps){klass.prototype._addPropertyEffect(hprop,klass.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:createNotifyHostPropEffect()})}}}function createNotifyInstancePropEffect(instProp,userNotifyInstanceProp){return function notifyInstanceProp(inst,prop,props){userNotifyInstanceProp.call(inst.__templatizeOwner,inst,prop,props[prop])}}function createNotifyHostPropEffect(){return function notifyHostProp(inst,prop,props){inst.__dataHost._setPendingPropertyOrPath("_host_"+prop,props[prop],true,true)}}function templatize(template,owner,options){if(strictTemplatePolicy&&!findMethodHost(template)){throw new Error("strictTemplatePolicy: template owner not trusted")}options=options||{};if(template.__templatizeOwner){throw new Error("A <template> can only be templatized once")}template.__templatizeOwner=owner;const ctor=owner?owner.constructor:TemplateInstanceBase;let templateInfo=ctor._parseTemplate(template);let baseClass=templateInfo.templatizeInstanceClass;if(!baseClass){baseClass=createTemplatizerClass(template,templateInfo,options);templateInfo.templatizeInstanceClass=baseClass}addPropagateEffects(template,templateInfo,options);let klass=class TemplateInstance extends baseClass{};klass.prototype._methodHost=findMethodHost(template);klass.prototype.__dataHost=template;klass.prototype.__templatizeOwner=owner;klass.prototype.__hostProps=templateInfo.hostProps;klass=klass;return klass}function modelForElement(template,node){let model;while(node){if(model=node.__templatizeInstance){if(model.__dataHost!=template){node=model.__dataHost}else{return model}}else{node=wrap(node).parentNode}}return null}const Templatizer={templatize(template,mutableData){this._templatizerTemplate=template;this.ctor=templatize(template,this,{mutableData:Boolean(mutableData),parentModel:this._parentModel,instanceProps:this._instanceProps,forwardHostProp:this._forwardHostPropV2,notifyInstanceProp:this._notifyInstancePropV2})},stamp(model){return new this.ctor(model)},modelForElement(el){return modelForElement(this._templatizerTemplate,el)}};const domBindBase=GestureEventListeners(OptionalMutableData(PropertyEffects(HTMLElement)));class DomBind extends domBindBase{static get observedAttributes(){return["mutable-data"]}constructor(){super();if(strictTemplatePolicy){throw new Error(`strictTemplatePolicy: dom-bind not allowed`)}this.root=null;this.$=null;this.__children=null}attributeChangedCallback(){this.mutableData=true}connectedCallback(){this.style.display="none";this.render()}disconnectedCallback(){this.__removeChildren()}__insertChildren(){wrap(wrap(this).parentNode).insertBefore(this.root,this)}__removeChildren(){if(this.__children){for(let i=0;i<this.__children.length;i++){this.root.appendChild(this.__children[i])}}}render(){let template;if(!this.__children){template=template||this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{template=this.querySelector("template");if(template){observer.disconnect();this.render()}else{throw new Error("dom-bind requires a <template> child")}});observer.observe(this,{childList:true});return}this.root=this._stampTemplate(template);this.$=this.root.$;this.__children=[];for(let n=this.root.firstChild;n;n=n.nextSibling){this.__children[this.__children.length]=n}this._enableProperties()}this.__insertChildren();this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}))}}customElements.define("dom-bind",DomBind);class LiteralString{constructor(string){this.value=string.toString()}toString(){return this.value}}function literalValue(value){if(value instanceof LiteralString){return value.value}else{throw new Error(`non-literal value passed to Polymer's htmlLiteral function: ${value}`)}}function htmlValue(value){if(value instanceof HTMLTemplateElement){return value.innerHTML}else if(value instanceof LiteralString){return literalValue(value)}else{throw new Error(`non-template value passed to Polymer's html function: ${value}`)}}const html=function html(strings,...values){const template=document.createElement("template");template.innerHTML=values.reduce((acc,v,idx)=>acc+htmlValue(v)+strings[idx+1],strings[0]);return template};const PolymerElement=ElementMixin(HTMLElement);const domRepeatBase=OptionalMutableData(PolymerElement);class DomRepeat extends domRepeatBase{static get is(){return"dom-repeat"}static get template(){return null}static get properties(){return{items:{type:Array},as:{type:String,value:"item"},indexAs:{type:String,value:"index"},itemsIndexAs:{type:String,value:"itemsIndex"},sort:{type:Function,observer:"__sortChanged"},filter:{type:Function,observer:"__filterChanged"},observe:{type:String,observer:"__observeChanged"},delay:Number,renderedItemCount:{type:Number,notify:true,readOnly:true},initialCount:{type:Number,observer:"__initializeChunking"},targetFramerate:{type:Number,value:20},_targetFrameTime:{type:Number,computed:"__computeFrameTime(targetFramerate)"}}}static get observers(){return["__itemsChanged(items.*)"]}constructor(){super();this.__instances=[];this.__limit=Infinity;this.__pool=[];this.__renderDebouncer=null;this.__itemsIdxToInstIdx={};this.__chunkCount=null;this.__lastChunkTime=null;this.__sortFn=null;this.__filterFn=null;this.__observePaths=null;this.__ctor=null;this.__isDetached=true;this.template=null}disconnectedCallback(){super.disconnectedCallback();this.__isDetached=true;for(let i=0;i<this.__instances.length;i++){this.__detachInstance(i)}}connectedCallback(){super.connectedCallback();this.style.display="none";if(this.__isDetached){this.__isDetached=false;let wrappedParent=wrap(wrap(this).parentNode);for(let i=0;i<this.__instances.length;i++){this.__attachInstance(i,wrappedParent)}}}__ensureTemplatized(){if(!this.__ctor){let template=this.template=this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{if(this.querySelector("template")){observer.disconnect();this.__render()}else{throw new Error("dom-repeat requires a <template> child")}});observer.observe(this,{childList:true});return false}let instanceProps={};instanceProps[this.as]=true;instanceProps[this.indexAs]=true;instanceProps[this.itemsIndexAs]=true;this.__ctor=templatize(template,this,{mutableData:this.mutableData,parentModel:true,instanceProps:instanceProps,forwardHostProp:function(prop,value){let i$=this.__instances;for(let i=0,inst;i<i$.length&&(inst=i$[i]);i++){inst.forwardHostProp(prop,value)}},notifyInstanceProp:function(inst,prop,value){if(matches(this.as,prop)){let idx=inst[this.itemsIndexAs];if(prop==this.as){this.items[idx]=value}let path=translate(this.as,`${JSCompiler_renameProperty("items",this)}.${idx}`,prop);this.notifyPath(path,value)}}})}return true}__getMethodHost(){return this.__dataHost._methodHost||this.__dataHost}__functionFromPropertyValue(functionOrMethodName){if(typeof functionOrMethodName==="string"){let methodName=functionOrMethodName;let obj=this.__getMethodHost();return function(){return obj[methodName].apply(obj,arguments)}}return functionOrMethodName}__sortChanged(sort){this.__sortFn=this.__functionFromPropertyValue(sort);if(this.items){this.__debounceRender(this.__render)}}__filterChanged(filter){this.__filterFn=this.__functionFromPropertyValue(filter);if(this.items){this.__debounceRender(this.__render)}}__computeFrameTime(rate){return Math.ceil(1e3/rate)}__initializeChunking(){if(this.initialCount){this.__limit=this.initialCount;this.__chunkCount=this.initialCount;this.__lastChunkTime=performance.now()}}__tryRenderChunk(){if(this.items&&this.__limit<this.items.length){this.__debounceRender(this.__requestRenderChunk)}}__requestRenderChunk(){requestAnimationFrame(()=>this.__renderChunk())}__renderChunk(){let currChunkTime=performance.now();let ratio=this._targetFrameTime/(currChunkTime-this.__lastChunkTime);this.__chunkCount=Math.round(this.__chunkCount*ratio)||1;this.__limit+=this.__chunkCount;this.__lastChunkTime=currChunkTime;this.__debounceRender(this.__render)}__observeChanged(){this.__observePaths=this.observe&&this.observe.replace(".*",".").split(" ")}__itemsChanged(change){if(this.items&&!Array.isArray(this.items)){console.warn("dom-repeat expected array for `items`, found",this.items)}if(!this.__handleItemPath(change.path,change.value)){this.__initializeChunking();this.__debounceRender(this.__render)}}__handleObservedPaths(path){if(this.__sortFn||this.__filterFn){if(!path){this.__debounceRender(this.__render,this.delay)}else if(this.__observePaths){let paths=this.__observePaths;for(let i=0;i<paths.length;i++){if(path.indexOf(paths[i])===0){this.__debounceRender(this.__render,this.delay)}}}}}__debounceRender(fn,delay=0){this.__renderDebouncer=Debouncer.debounce(this.__renderDebouncer,delay>0?timeOut.after(delay):microTask,fn.bind(this));enqueueDebouncer(this.__renderDebouncer)}render(){this.__debounceRender(this.__render);flush()}__render(){if(!this.__ensureTemplatized()){return}this.__applyFullRefresh();this.__pool.length=0;this._setRenderedItemCount(this.__instances.length);this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}));this.__tryRenderChunk()}__applyFullRefresh(){let items=this.items||[];let isntIdxToItemsIdx=new Array(items.length);for(let i=0;i<items.length;i++){isntIdxToItemsIdx[i]=i}if(this.__filterFn){isntIdxToItemsIdx=isntIdxToItemsIdx.filter((i,idx,array)=>this.__filterFn(items[i],idx,array))}if(this.__sortFn){isntIdxToItemsIdx.sort((a,b)=>this.__sortFn(items[a],items[b]))}const itemsIdxToInstIdx=this.__itemsIdxToInstIdx={};let instIdx=0;const limit=Math.min(isntIdxToItemsIdx.length,this.__limit);for(;instIdx<limit;instIdx++){let inst=this.__instances[instIdx];let itemIdx=isntIdxToItemsIdx[instIdx];let item=items[itemIdx];itemsIdxToInstIdx[itemIdx]=instIdx;if(inst){inst._setPendingProperty(this.as,item);inst._setPendingProperty(this.indexAs,instIdx);inst._setPendingProperty(this.itemsIndexAs,itemIdx);inst._flushProperties()}else{this.__insertInstance(item,instIdx,itemIdx)}}for(let i=this.__instances.length-1;i>=instIdx;i--){this.__detachAndRemoveInstance(i)}}__detachInstance(idx){let inst=this.__instances[idx];const wrappedRoot=wrap(inst.root);for(let i=0;i<inst.children.length;i++){let el=inst.children[i];wrappedRoot.appendChild(el)}return inst}__attachInstance(idx,parent){let inst=this.__instances[idx];parent.insertBefore(inst.root,this)}__detachAndRemoveInstance(idx){let inst=this.__detachInstance(idx);if(inst){this.__pool.push(inst)}this.__instances.splice(idx,1)}__stampInstance(item,instIdx,itemIdx){let model={};model[this.as]=item;model[this.indexAs]=instIdx;model[this.itemsIndexAs]=itemIdx;return new this.__ctor(model)}__insertInstance(item,instIdx,itemIdx){let inst=this.__pool.pop();if(inst){inst._setPendingProperty(this.as,item);inst._setPendingProperty(this.indexAs,instIdx);inst._setPendingProperty(this.itemsIndexAs,itemIdx);inst._flushProperties()}else{inst=this.__stampInstance(item,instIdx,itemIdx)}let beforeRow=this.__instances[instIdx+1];let beforeNode=beforeRow?beforeRow.children[0]:this;wrap(wrap(this).parentNode).insertBefore(inst.root,beforeNode);this.__instances[instIdx]=inst;return inst}_showHideChildren(hidden){for(let i=0;i<this.__instances.length;i++){this.__instances[i]._showHideChildren(hidden)}}__handleItemPath(path,value){let itemsPath=path.slice(6);let dot=itemsPath.indexOf(".");let itemsIdx=dot<0?itemsPath:itemsPath.substring(0,dot);if(itemsIdx==parseInt(itemsIdx,10)){let itemSubPath=dot<0?"":itemsPath.substring(dot+1);this.__handleObservedPaths(itemSubPath);let instIdx=this.__itemsIdxToInstIdx[itemsIdx];let inst=this.__instances[instIdx];if(inst){let itemPath=this.as+(itemSubPath?"."+itemSubPath:"");inst._setPendingPropertyOrPath(itemPath,value,false,true);inst._flushProperties()}return true}}itemForElement(el){let instance=this.modelForElement(el);return instance&&instance[this.as]}indexForElement(el){let instance=this.modelForElement(el);return instance&&instance[this.indexAs]}modelForElement(el){return modelForElement(this.template,el)}}customElements.define(DomRepeat.is,DomRepeat);class DomIf extends PolymerElement{static get is(){return"dom-if"}static get template(){return null}static get properties(){return{if:{type:Boolean,observer:"__debounceRender"},restamp:{type:Boolean,observer:"__debounceRender"}}}constructor(){super();this.__renderDebouncer=null;this.__invalidProps=null;this.__instance=null;this._lastIf=false;this.__ctor=null;this.__hideTemplateChildren__=false}__debounceRender(){this.__renderDebouncer=Debouncer.debounce(this.__renderDebouncer,microTask,()=>this.__render());enqueueDebouncer(this.__renderDebouncer)}disconnectedCallback(){super.disconnectedCallback();const parent=wrap(this).parentNode;if(!parent||parent.nodeType==Node.DOCUMENT_FRAGMENT_NODE&&!wrap(parent).host){this.__teardownInstance()}}connectedCallback(){super.connectedCallback();this.style.display="none";if(this.if){this.__debounceRender()}}render(){flush()}__render(){if(this.if){if(!this.__ensureInstance()){return}this._showHideChildren()}else if(this.restamp){this.__teardownInstance()}if(!this.restamp&&this.__instance){this._showHideChildren()}if(this.if!=this._lastIf){this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}));this._lastIf=this.if}}__ensureInstance(){let parentNode=wrap(this).parentNode;if(parentNode){if(!this.__ctor){let template=wrap(this).querySelector("template");if(!template){let observer=new MutationObserver(()=>{if(wrap(this).querySelector("template")){observer.disconnect();this.__render()}else{throw new Error("dom-if requires a <template> child")}});observer.observe(this,{childList:true});return false}this.__ctor=templatize(template,this,{mutableData:true,forwardHostProp:function(prop,value){if(this.__instance){if(this.if){this.__instance.forwardHostProp(prop,value)}else{this.__invalidProps=this.__invalidProps||Object.create(null);this.__invalidProps[root(prop)]=true}}}})}if(!this.__instance){this.__instance=new this.__ctor;wrap(parentNode).insertBefore(this.__instance.root,this)}else{this.__syncHostProperties();let c$=this.__instance.children;if(c$&&c$.length){let lastChild=wrap(this).previousSibling;if(lastChild!==c$[c$.length-1]){for(let i=0,n;i<c$.length&&(n=c$[i]);i++){wrap(parentNode).insertBefore(n,this)}}}}}return true}__syncHostProperties(){let props=this.__invalidProps;if(props){for(let prop in props){this.__instance._setPendingProperty(prop,this.__dataHost[prop])}this.__invalidProps=null;this.__instance._flushProperties()}}__teardownInstance(){if(this.__instance){let c$=this.__instance.children;if(c$&&c$.length){let parent=wrap(c$[0]).parentNode;if(parent){parent=wrap(parent);for(let i=0,n;i<c$.length&&(n=c$[i]);i++){parent.removeChild(n)}}}this.__instance=null;this.__invalidProps=null}}_showHideChildren(){let hidden=this.__hideTemplateChildren__||!this.if;if(this.__instance){this.__instance._showHideChildren(hidden)}}}customElements.define(DomIf.is,DomIf);let ArraySelectorMixin=dedupingMixin(superClass=>{let elementBase=ElementMixin(superClass);class ArraySelectorMixin extends elementBase{static get properties(){return{items:{type:Array},multi:{type:Boolean,value:false},selected:{type:Object,notify:true},selectedItem:{type:Object,notify:true},toggle:{type:Boolean,value:false}}}static get observers(){return["__updateSelection(multi, items.*)"]}constructor(){super();this.__lastItems=null;this.__lastMulti=null;this.__selectedMap=null}__updateSelection(multi,itemsInfo){let path=itemsInfo.path;if(path==JSCompiler_renameProperty("items",this)){let newItems=itemsInfo.base||[];let lastItems=this.__lastItems;let lastMulti=this.__lastMulti;if(multi!==lastMulti){this.clearSelection()}if(lastItems){let splices=calculateSplices(newItems,lastItems);this.__applySplices(splices)}this.__lastItems=newItems;this.__lastMulti=multi}else if(itemsInfo.path==`${JSCompiler_renameProperty("items",this)}.splices`){this.__applySplices(itemsInfo.value.indexSplices)}else{let part=path.slice(`${JSCompiler_renameProperty("items",this)}.`.length);let idx=parseInt(part,10);if(part.indexOf(".")<0&&part==idx){this.__deselectChangedIdx(idx)}}}__applySplices(splices){let selected=this.__selectedMap;for(let i=0;i<splices.length;i++){let s=splices[i];selected.forEach((idx,item)=>{if(idx<s.index);else if(idx>=s.index+s.removed.length){selected.set(item,idx+s.addedCount-s.removed.length)}else{selected.set(item,-1)}});for(let j=0;j<s.addedCount;j++){let idx=s.index+j;if(selected.has(this.items[idx])){selected.set(this.items[idx],idx)}}}this.__updateLinks();let sidx=0;selected.forEach((idx,item)=>{if(idx<0){if(this.multi){this.splice(JSCompiler_renameProperty("selected",this),sidx,1)}else{this.selected=this.selectedItem=null}selected.delete(item)}else{sidx++}})}__updateLinks(){this.__dataLinkedPaths={};if(this.multi){let sidx=0;this.__selectedMap.forEach(idx=>{if(idx>=0){this.linkPaths(`${JSCompiler_renameProperty("items",this)}.${idx}`,`${JSCompiler_renameProperty("selected",this)}.${sidx++}`)}})}else{this.__selectedMap.forEach(idx=>{this.linkPaths(JSCompiler_renameProperty("selected",this),`${JSCompiler_renameProperty("items",this)}.${idx}`);this.linkPaths(JSCompiler_renameProperty("selectedItem",this),`${JSCompiler_renameProperty("items",this)}.${idx}`)})}}clearSelection(){this.__dataLinkedPaths={};this.__selectedMap=new Map;this.selected=this.multi?[]:null;this.selectedItem=null}isSelected(item){return this.__selectedMap.has(item)}isIndexSelected(idx){return this.isSelected(this.items[idx])}__deselectChangedIdx(idx){let sidx=this.__selectedIndexForItemIndex(idx);if(sidx>=0){let i=0;this.__selectedMap.forEach((idx,item)=>{if(sidx==i++){this.deselect(item)}})}}__selectedIndexForItemIndex(idx){let selected=this.__dataLinkedPaths[`${JSCompiler_renameProperty("items",this)}.${idx}`];if(selected){return parseInt(selected.slice(`${JSCompiler_renameProperty("selected",this)}.`.length),10)}}deselect(item){let idx=this.__selectedMap.get(item);if(idx>=0){this.__selectedMap.delete(item);let sidx;if(this.multi){sidx=this.__selectedIndexForItemIndex(idx)}this.__updateLinks();if(this.multi){this.splice(JSCompiler_renameProperty("selected",this),sidx,1)}else{this.selected=this.selectedItem=null}}}deselectIndex(idx){this.deselect(this.items[idx])}select(item){this.selectIndex(this.items.indexOf(item))}selectIndex(idx){let item=this.items[idx];if(!this.isSelected(item)){if(!this.multi){this.__selectedMap.clear()}this.__selectedMap.set(item,idx);this.__updateLinks();if(this.multi){this.push(JSCompiler_renameProperty("selected",this),item)}else{this.selected=this.selectedItem=item}}else if(this.toggle){this.deselectIndex(idx)}}}return ArraySelectorMixin});let baseArraySelector=ArraySelectorMixin(PolymerElement);class ArraySelector extends baseArraySelector{static get is(){return"array-selector"}static get template(){return null}}customElements.define(ArraySelector.is,ArraySelector);const customStyleInterface=new CustomStyleInterface;if(!window.ShadyCSS){window.ShadyCSS={prepareTemplate(template,elementName,elementExtends){},prepareTemplateDom(template,elementName){},prepareTemplateStyles(template,elementName,elementExtends){},styleSubtree(element,properties){customStyleInterface.processStyles();updateNativeProperties(element,properties)},styleElement(element){customStyleInterface.processStyles()},styleDocument(properties){customStyleInterface.processStyles();updateNativeProperties(document.body,properties)},getComputedStyleValue(element,property){return getComputedStyleValue(element,property)},flushCustomStyles(){},nativeCss:nativeCssVariables,nativeShadow:nativeShadow,cssBuild:cssBuild,disableRuntime:disableRuntime}}window.ShadyCSS.CustomStyleInterface=customStyleInterface;const attr="include";const CustomStyleInterface$1=window.ShadyCSS.CustomStyleInterface;class CustomStyle extends HTMLElement{constructor(){super();this._style=null;CustomStyleInterface$1.addCustomStyle(this)}getStyle(){if(this._style){return this._style}const style=this.querySelector("style");if(!style){return null}this._style=style;const include=style.getAttribute(attr);if(include){style.removeAttribute(attr);style.textContent=cssFromModules(include)+style.textContent}if(this.ownerDocument!==window.document){window.document.head.appendChild(this)}return this._style}}window.customElements.define("custom-style",CustomStyle);let mutablePropertyChange$1;(()=>{mutablePropertyChange$1=MutableData._mutablePropertyChange})();const OptionalMutableDataBehavior={properties:{mutableData:Boolean},_shouldPropertyChange(property,value,old){return mutablePropertyChange$1(this,property,value,old,this.mutableData)}};const Base=LegacyElementMixin(HTMLElement).prototype;export{Base,Debouncer,DomIf,OptionalMutableDataBehavior,Polymer,PolymerElement,TemplateInstanceBase,Templatizer,afterNextRender,animationFrame,beforeNextRender,calculateSplices,dashToCamelCase,dom,enqueueDebouncer,flush,gestures$1 as gestures,html,idlePeriod,matches,microTask,templatize,translate,useShadow};
##############################################
chromium-84.0.4147.105/third_party/polymer/v1_0/components-chromium/polymer2/polymer-extracted.js-10-*/
chromium-84.0.4147.105/third_party/polymer/v1_0/components-chromium/polymer2/polymer-extracted.js:11:"use strict";var l=!(window.ShadyDOM&&window.ShadyDOM.inUse),p;function r(a){p=a&&a.shimcssproperties?!1:l||!(navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)||!window.CSS||!CSS.supports||!CSS.supports("box-shadow","0 0 0 var(--foo)"))}var t;window.ShadyCSS&&void 0!==window.ShadyCSS.cssBuild&&(t=window.ShadyCSS.cssBuild);window.ShadyCSS&&void 0!==window.ShadyCSS.nativeCss?p=window.ShadyCSS.nativeCss:window.ShadyCSS?(r(window.ShadyCSS),window.ShadyCSS=void 0):r(window.WebComponents&&window.WebComponents.flags);var u=p,v=t;function w(){this.end=this.start=0;this.rules=this.parent=this.previous=null;this.cssText=this.parsedCssText="";this.atRule=!1;this.type=0;this.parsedSelector=this.selector=this.keyframesName=""}function x(a){a=a.replace(aa,"").replace(ba,"");var b=y,c=a,e=new w;e.start=0;e.end=c.length;for(var d=e,f=0,g=c.length;f<g;f++)if("{"===c[f]){d.rules||(d.rules=[]);var h=d,k=h.rules[h.rules.length-1]||null;d=new w;d.start=f+1;d.parent=h;d.previous=k;h.rules.push(d)}else"}"===c[f]&&(d.end=f+1,d=d.parent||e);return b(e,a)}function y(a,b){var c=b.substring(a.start,a.end-1);a.parsedCssText=a.cssText=c.trim();a.parent&&(c=b.substring(a.previous?a.previous.end:a.parent.start,a.start-1),c=ca(c),c=c.replace(z," "),c=c.substring(c.lastIndexOf(";")+1),c=a.parsedSelector=a.selector=c.trim(),a.atRule=0===c.indexOf("@"),a.atRule?0===c.indexOf("@media")?a.type=A:c.match(da)&&(a.type=B,a.keyframesName=a.selector.split(z).pop()):a.type=0===c.indexOf("--")?C:D);if(c=a.rules)for(var e=0,d=c.length,f=void 0;e<d&&(f=c[e]);e++)y(f,b);return a}function ca(a){return a.replace(/\\([0-9a-f]{1,6})\s/gi,function(a,c){a=c;for(c=6-a.length;c--;)a="0"+a;return"\\"+a})}function E(a,b,c){c=void 0===c?"":c;var e="";if(a.cssText||a.rules){var d=a.rules,f;if(f=d)f=d[0],f=!(f&&f.selector&&0===f.selector.indexOf("--"));if(f){f=0;for(var g=d.length,h=void 0;f<g&&(h=d[f]);f++)e=E(h,b,e)}else b?b=a.cssText:(b=a.cssText,b=b.replace(ea,"").replace(fa,""),b=b.replace(ha,"").replace(ia,"")),(e=b.trim())&&(e="  "+e+"\n")}e&&(a.selector&&(c+=a.selector+" {\n"),c+=e,a.selector&&(c+="}\n\n"));return c}var D=1,B=7,A=4,C=1e3,aa=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,ba=/@import[^;]*;/gim,ea=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,fa=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,ha=/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,ia=/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,da=/^@[^\s]*keyframes/,z=/\s+/g;var G=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gi,H=/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,ja=/@media\s(.*)/;var I=new Set;function J(a){if(!a)return"";"string"===typeof a&&(a=x(a));return E(a,u)}function K(a){!a.__cssRules&&a.textContent&&(a.__cssRules=x(a.textContent));return a.__cssRules||null}function L(a,b,c,e){if(a){var d=!1,f=a.type;if(e&&f===A){var g=a.selector.match(ja);g&&(window.matchMedia(g[1]).matches||(d=!0))}f===D?b(a):c&&f===B?c(a):f===C&&(d=!0);if((a=a.rules)&&!d)for(d=0,f=a.length,g=void 0;d<f&&(g=a[d]);d++)L(g,b,c,e)}}function M(a,b){var c=a.indexOf("var(");if(-1===c)return b(a,"","","");a:{var e=0;var d=c+3;for(var f=a.length;d<f;d++)if("("===a[d])e++;else if(")"===a[d]&&0===--e)break a;d=-1}e=a.substring(c+4,d);c=a.substring(0,c);a=M(a.substring(d+1),b);d=e.indexOf(",");return-1===d?b(c,e.trim(),"",a):b(c,e.substring(0,d).trim(),e.substring(d+1).trim(),a)}function N(a){if(void 0!==v)return v;if(void 0===a.__cssBuild){var b=a.getAttribute("css-build");if(b)a.__cssBuild=b;else{a:{b="template"===a.localName?a.content.firstChild:a.firstChild;if(b instanceof Comment&&(b=b.textContent.trim().split(":"),"css-build"===b[0])){b=b[1];break a}b=""}if(""!==b){var c="template"===a.localName?a.content.firstChild:a.firstChild;c.parentNode.removeChild(c)}a.__cssBuild=b}}return a.__cssBuild||""}var ka=/;\s*/m,la=/^\s*(initial)|(inherit)\s*$/,O=/\s*!important/;function P(){this.a={}}P.prototype.set=function(a,b){a=a.trim();this.a[a]={h:b,i:{}}};P.prototype.get=function(a){a=a.trim();return this.a[a]||null};var Q=null;function R(){this.b=this.c=null;this.a=new P}R.prototype.o=function(a){a=H.test(a)||G.test(a);H.lastIndex=0;G.lastIndex=0;return a};R.prototype.m=function(a,b){if(void 0===a._gatheredStyle){var c=[];for(var e=a.content.querySelectorAll("style"),d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("shady-unscoped")){if(!l){var g=f.textContent;I.has(g)||(I.add(g),g=f.cloneNode(!0),document.head.appendChild(g));f.parentNode.removeChild(f)}}else c.push(f.textContent),f.parentNode.removeChild(f)}(c=c.join("").trim())?(e=document.createElement("style"),e.textContent=c,a.content.insertBefore(e,a.content.firstChild),c=e):c=null;a._gatheredStyle=c}return(a=a._gatheredStyle)?this.j(a,b):null};R.prototype.j=function(a,b){b=void 0===b?"":b;var c=K(a);this.l(c,b);a.textContent=J(c);return c};R.prototype.f=function(a){var b=this,c=K(a);L(c,function(a){":root"===a.selector&&(a.selector="html");b.g(a)});a.textContent=J(c);return c};R.prototype.l=function(a,b){var c=this;this.c=b;L(a,function(a){c.g(a)});this.c=null};R.prototype.g=function(a){a.cssText=ma(this,a.parsedCssText,a);":root"===a.selector&&(a.selector=":host > *")};function ma(a,b,c){b=b.replace(G,function(b,d,f,g){return na(a,b,d,f,g,c)});return S(a,b,c)}function oa(a,b){for(var c=b;c.parent;)c=c.parent;var e={},d=!1;L(c,function(c){(d=d||c===b)||c.selector===b.selector&&Object.assign(e,T(a,c.parsedCssText))});return e}function S(a,b,c){for(var e;e=H.exec(b);){var d=e[0],f=e[1];e=e.index;var g=b.slice(0,e+d.indexOf("@apply"));b=b.slice(e+d.length);var h=c?oa(a,c):{};Object.assign(h,T(a,g));d=void 0;var k=a;f=f.replace(ka,"");var n=[];var m=k.a.get(f);m||(k.a.set(f,{}),m=k.a.get(f));if(m){k.c&&(m.i[k.c]=!0);var q=m.h;for(d in q)k=h&&h[d],m=[d,": var(",f,"_-_",d],k&&m.push(",",k.replace(O,"")),m.push(")"),O.test(q[d])&&m.push(" !important"),n.push(m.join(""))}d=n.join("; ");b=g+d+b;H.lastIndex=e+d.length}return b}function T(a,b,c){c=void 0===c?!1:c;b=b.split(";");for(var e,d,f={},g=0,h;g<b.length;g++)if(e=b[g])if(h=e.split(":"),1<h.length){e=h[0].trim();d=h.slice(1).join(":");if(c){var k=a;h=e;var n=la.exec(d);n&&(n[1]?(k.b||(k.b=document.createElement("meta"),k.b.setAttribute("apply-shim-measure",""),k.b.style.all="initial",document.head.appendChild(k.b)),h=window.getComputedStyle(k.b).getPropertyValue(h)):h="apply-shim-inherit",d=h)}f[e]=d}return f}function pa(a,b){if(Q)for(var c in b.i)c!==a.c&&Q(c)}function na(a,b,c,e,d,f){e&&M(e,function(b,c){c&&a.a.get(c)&&(d="@apply "+c+";")});if(!d)return b;var g=S(a,""+d,f);f=b.slice(0,b.indexOf("--"));var h=g=T(a,g,!0),k=a.a.get(c),n=k&&k.h;n?h=Object.assign(Object.create(n),g):a.a.set(c,h);var m=[],q,Z=!1;for(q in h){var F=g[q];void 0===F&&(F="initial");!n||q in n||(Z=!0);m.push(c+"_-_"+q+": "+F)}Z&&pa(a,k);k&&(k.h=h);e&&(f=b+";"+f);return f+m.join("; ")+";"}R.prototype.detectMixin=R.prototype.o;R.prototype.transformStyle=R.prototype.j;R.prototype.transformCustomStyle=R.prototype.f;R.prototype.transformRules=R.prototype.l;R.prototype.transformRule=R.prototype.g;R.prototype.transformTemplate=R.prototype.m;R.prototype._separator="_-_";Object.defineProperty(R.prototype,"invalidCallback",{get:function(){return Q},set:function(a){Q=a}});var U={};var qa=Promise.resolve();function ra(a){if(a=U[a])a._applyShimCurrentVersion=a._applyShimCurrentVersion||0,a._applyShimValidatingVersion=a._applyShimValidatingVersion||0,a._applyShimNextVersion=(a._applyShimNextVersion||0)+1}function sa(a){return a._applyShimCurrentVersion===a._applyShimNextVersion}function ta(a){a._applyShimValidatingVersion=a._applyShimNextVersion;a._validating||(a._validating=!0,qa.then(function(){a._applyShimCurrentVersion=a._applyShimNextVersion;a._validating=!1}))}var V=new R;function W(){this.a=null;V.invalidCallback=ra}function X(a){!a.a&&window.ShadyCSS.CustomStyleInterface&&(a.a=window.ShadyCSS.CustomStyleInterface,a.a.transformCallback=function(a){V.f(a)},a.a.validateCallback=function(){requestAnimationFrame(function(){a.a.enqueued&&a.flushCustomStyles()})})}W.prototype.prepareTemplate=function(a,b){X(this);""===N(a)&&(U[b]=a,b=V.m(a,b),a._styleAst=b)};W.prototype.flushCustomStyles=function(){X(this);if(this.a){var a=this.a.processStyles();if(this.a.enqueued){for(var b=0;b<a.length;b++){var c=this.a.getStyleForCustomStyle(a[b]);c&&V.f(c)}this.a.enqueued=!1}}};W.prototype.styleSubtree=function(a,b){X(this);if(b)for(var c in b)null===c?a.style.removeProperty(c):a.style.setProperty(c,b[c]);if(a.shadowRoot)for(this.styleElement(a),a=a.shadowRoot.children||a.shadowRoot.childNodes,b=0;b<a.length;b++)this.styleSubtree(a[b]);else for(a=a.children||a.childNodes,b=0;b<a.length;b++)this.styleSubtree(a[b])};W.prototype.styleElement=function(a){X(this);var b=a.localName,c;b?-1<b.indexOf("-")?c=b:c=a.getAttribute&&a.getAttribute("is")||"":c=a.is;b=U[c];if(!(b&&""!==N(b)||!b||sa(b))){if(sa(b)||b._applyShimValidatingVersion!==b._applyShimNextVersion)this.prepareTemplate(b,c),ta(b);if(a=a.shadowRoot)if(a=a.querySelector("style"))a.__cssRules=b._styleAst,a.textContent=J(b._styleAst)}};W.prototype.styleDocument=function(a){X(this);this.styleSubtree(document.body,a)};if(!window.ShadyCSS||!window.ShadyCSS.ScopingShim){var Y=new W,ua=window.ShadyCSS&&window.ShadyCSS.CustomStyleInterface;window.ShadyCSS={prepareTemplate:function(a,b){Y.flushCustomStyles();Y.prepareTemplate(a,b)},prepareTemplateStyles:function(a,b,c){window.ShadyCSS.prepareTemplate(a,b,c)},prepareTemplateDom:function(){},styleSubtree:function(a,b){Y.flushCustomStyles();Y.styleSubtree(a,b)},styleElement:function(a){Y.flushCustomStyles();Y.styleElement(a)},styleDocument:function(a){Y.flushCustomStyles();Y.styleDocument(a)},getComputedStyleValue:function(a,b){return(a=window.getComputedStyle(a).getPropertyValue(b))?a.trim():""},flushCustomStyles:function(){Y.flushCustomStyles()},nativeCss:u,nativeShadow:l,cssBuild:v};ua&&(window.ShadyCSS.CustomStyleInterface=ua)}window.ShadyCSS.ApplyShim=V}).call(this);(function(){"use strict";const userPolymer=window.Polymer;window.Polymer=function(info){return window.Polymer._polymerFn(info)};if(userPolymer){Object.assign(Polymer,userPolymer)}window.Polymer._polymerFn=function(info){throw new Error("Load polymer.html to use the Polymer() function.")};window.Polymer.version="2.7.0";window.JSCompiler_renameProperty=function(prop,obj){return prop}})();(function(){"use strict";let CSS_URL_RX=/(url\()([^)]*)(\))/g;let ABS_URL=/(^\/)|(^#)|(^[\w-\d]*:)/;let workingURL;let resolveDoc;function resolveUrl(url,baseURI){if(url&&ABS_URL.test(url)){return url}if(workingURL===undefined){workingURL=false;try{const u=new URL("b","http://a");u.pathname="c%20d";workingURL=u.href==="http://a/c%20d"}catch(e){}}if(!baseURI){baseURI=document.baseURI||window.location.href}if(workingURL){return new URL(url,baseURI).href}if(!resolveDoc){resolveDoc=document.implementation.createHTMLDocument("temp");resolveDoc.base=resolveDoc.createElement("base");resolveDoc.head.appendChild(resolveDoc.base);resolveDoc.anchor=resolveDoc.createElement("a");resolveDoc.body.appendChild(resolveDoc.anchor)}resolveDoc.base.href=baseURI;resolveDoc.anchor.href=url;return resolveDoc.anchor.href||url}function resolveCss(cssText,baseURI){return cssText.replace(CSS_URL_RX,function(m,pre,url,post){return pre+"'"+resolveUrl(url.replace(/["']/g,""),baseURI)+"'"+post})}function pathFromUrl(url){return url.substring(0,url.lastIndexOf("/")+1)}Polymer.ResolveUrl={resolveCss:resolveCss,resolveUrl:resolveUrl,pathFromUrl:pathFromUrl}})();(function(){"use strict";Polymer.Settings=Polymer.Settings||{};Polymer.Settings.useShadow=!window.ShadyDOM;Polymer.Settings.useNativeCSSProperties=Boolean(!window.ShadyCSS||window.ShadyCSS.nativeCss);Polymer.Settings.useNativeCustomElements=!window.customElements.polyfillWrapFlushCallback;Polymer.rootPath=Polymer.rootPath||Polymer.ResolveUrl.pathFromUrl(document.baseURI||window.location.href);Polymer.setRootPath=function(path){Polymer.rootPath=path};Polymer.sanitizeDOMValue=Polymer.sanitizeDOMValue||null;Polymer.setSanitizeDOMValue=function(newSanitizeDOMValue){Polymer.sanitizeDOMValue=newSanitizeDOMValue};Polymer.passiveTouchGestures=Polymer.passiveTouchGestures||false;Polymer.setPassiveTouchGestures=function(usePassive){Polymer.passiveTouchGestures=usePassive};Polymer.legacyOptimizations=Polymer.legacyOptimizations||window.PolymerSettings&&window.PolymerSettings.legacyOptimizations||false;Polymer.setLegacyOptimizations=function(useLegacyOptimizations){Polymer.legacyOptimizations=useLegacyOptimizations}})();(function(){"use strict";let dedupeId=0;function MixinFunction(){}MixinFunction.prototype.__mixinApplications;MixinFunction.prototype.__mixinSet;Polymer.dedupingMixin=function(mixin){let mixinApplications=mixin.__mixinApplications;if(!mixinApplications){mixinApplications=new WeakMap;mixin.__mixinApplications=mixinApplications}let mixinDedupeId=dedupeId++;function dedupingMixin(base){let baseSet=base.__mixinSet;if(baseSet&&baseSet[mixinDedupeId]){return base}let map=mixinApplications;let extended=map.get(base);if(!extended){extended=mixin(base);map.set(base,extended)}let mixinSet=Object.create(extended.__mixinSet||baseSet||null);mixinSet[mixinDedupeId]=true;extended.__mixinSet=mixinSet;return extended}return dedupingMixin}})();(function(){"use strict";const MODULE_STYLE_LINK_SELECTOR="link[rel=import][type~=css]";const INCLUDE_ATTR="include";const SHADY_UNSCOPED_ATTR="shady-unscoped";function importModule(moduleId){const PolymerDomModule=customElements.get("dom-module");if(!PolymerDomModule){return null}return PolymerDomModule.import(moduleId)}function styleForImport(importDoc){let container=importDoc.body?importDoc.body:importDoc;const importCss=Polymer.ResolveUrl.resolveCss(container.textContent,importDoc.baseURI);const style=document.createElement("style");style.textContent=importCss;return style}let templateWithAssetPath;const StyleGather={stylesFromModules(moduleIds){const modules=moduleIds.trim().split(/\s+/);const styles=[];for(let i=0;i<modules.length;i++){styles.push(...this.stylesFromModule(modules[i]))}return styles},stylesFromModule(moduleId){const m=importModule(moduleId);if(!m){console.warn("Could not find style data in module named",moduleId);return[]}if(m._styles===undefined){const styles=[];styles.push(...this._stylesFromModuleImports(m));const template=m.querySelector("template");if(template){styles.push(...this.stylesFromTemplate(template,m.assetpath))}m._styles=styles}return m._styles},stylesFromTemplate(template,baseURI){if(!template._styles){const styles=[];const e$=template.content.querySelectorAll("style");for(let i=0;i<e$.length;i++){let e=e$[i];let include=e.getAttribute(INCLUDE_ATTR);if(include){styles.push(...this.stylesFromModules(include).filter(function(item,index,self){return self.indexOf(item)===index}))}if(baseURI){e.textContent=Polymer.ResolveUrl.resolveCss(e.textContent,baseURI)}styles.push(e)}template._styles=styles}return template._styles},stylesFromModuleImports(moduleId){let m=importModule(moduleId);return m?this._stylesFromModuleImports(m):[]},_stylesFromModuleImports(module){const styles=[];const p$=module.querySelectorAll(MODULE_STYLE_LINK_SELECTOR);for(let i=0;i<p$.length;i++){let p=p$[i];if(p.import){const importDoc=p.import;const unscoped=p.hasAttribute(SHADY_UNSCOPED_ATTR);if(unscoped&&!importDoc._unscopedStyle){const style=styleForImport(importDoc);style.setAttribute(SHADY_UNSCOPED_ATTR,"");importDoc._unscopedStyle=style}else if(!importDoc._style){importDoc._style=styleForImport(importDoc)}styles.push(unscoped?importDoc._unscopedStyle:importDoc._style)}}return styles},cssFromModules(moduleIds){let modules=moduleIds.trim().split(/\s+/);let cssText="";for(let i=0;i<modules.length;i++){cssText+=this.cssFromModule(modules[i])}return cssText},cssFromModule(moduleId){let m=importModule(moduleId);if(m&&m._cssText===undefined){let cssText=this._cssFromModuleImports(m);let t=m.querySelector("template");if(t){cssText+=this.cssFromTemplate(t,m.assetpath)}m._cssText=cssText||null}if(!m){console.warn("Could not find style data in module named",moduleId)}return m&&m._cssText||""},cssFromTemplate(template,baseURI){let cssText="";const e$=this.stylesFromTemplate(template,baseURI);for(let i=0;i<e$.length;i++){let e=e$[i];if(e.parentNode){e.parentNode.removeChild(e)}cssText+=e.textContent}return cssText},cssFromModuleImports(moduleId){let m=importModule(moduleId);return m?this._cssFromModuleImports(m):""},_cssFromModuleImports(module){let cssText="";let styles=this._stylesFromModuleImports(module);for(let i=0;i<styles.length;i++){cssText+=styles[i].textContent}return cssText}};Polymer.StyleGather=StyleGather})();(function(){"use strict";let modules={};let lcModules={};function setModule(id,module){modules[id]=lcModules[id.toLowerCase()]=module}function findModule(id){return modules[id]||lcModules[id.toLowerCase()]}function styleOutsideTemplateCheck(inst){if(inst.querySelector("style")){console.warn("dom-module %s has style outside template",inst.id)}}class DomModule extends HTMLElement{static get observedAttributes(){return["id"]}static import(id,selector){if(id){let m=findModule(id);if(m&&selector){return m.querySelector(selector)}return m}return null}attributeChangedCallback(name,old,value,namespace){if(old!==value){this.register()}}get assetpath(){if(!this.__assetpath){const owner=window.HTMLImports&&HTMLImports.importForElement?HTMLImports.importForElement(this)||document:this.ownerDocument;const url=Polymer.ResolveUrl.resolveUrl(this.getAttribute("assetpath")||"",owner.baseURI);this.__assetpath=Polymer.ResolveUrl.pathFromUrl(url)}return this.__assetpath}register(id){id=id||this.id;if(id){if(Polymer.strictTemplatePolicy&&findModule(id)!==undefined){setModule(id,null);throw new Error(`strictTemplatePolicy: dom-module ${id} re-registered`)}this.id=id;setModule(id,this);styleOutsideTemplateCheck(this)}}}DomModule.prototype["modules"]=modules;customElements.define("dom-module",DomModule);Polymer.DomModule=DomModule})();(function(){"use strict";const Path={isPath:function(path){return path.indexOf(".")>=0},root:function(path){let dotIndex=path.indexOf(".");if(dotIndex===-1){return path}return path.slice(0,dotIndex)},isAncestor:function(base,path){return base.indexOf(path+".")===0},isDescendant:function(base,path){return path.indexOf(base+".")===0},translate:function(base,newBase,path){return newBase+path.slice(base.length)},matches:function(base,path){return base===path||this.isAncestor(base,path)||this.isDescendant(base,path)},normalize:function(path){if(Array.isArray(path)){let parts=[];for(let i=0;i<path.length;i++){let args=path[i].toString().split(".");for(let j=0;j<args.length;j++){parts.push(args[j])}}return parts.join(".")}else{return path}},split:function(path){if(Array.isArray(path)){return this.normalize(path).split(".")}return path.toString().split(".")},get:function(root,path,info){let prop=root;let parts=this.split(path);for(let i=0;i<parts.length;i++){if(!prop){return}let part=parts[i];prop=prop[part]}if(info){info.path=parts.join(".")}return prop},set:function(root,path,value){let prop=root;let parts=this.split(path);let last=parts[parts.length-1];if(parts.length>1){for(let i=0;i<parts.length-1;i++){let part=parts[i];prop=prop[part];if(!prop){return}}prop[last]=value}else{prop[path]=value}return parts.join(".")}};Path.isDeep=Path.isPath;Polymer.Path=Path})();(function(){"use strict";const caseMap={};const DASH_TO_CAMEL=/-[a-z]/g;const CAMEL_TO_DASH=/([A-Z])/g;const CaseMap={dashToCamelCase(dash){return caseMap[dash]||(caseMap[dash]=dash.indexOf("-")<0?dash:dash.replace(DASH_TO_CAMEL,m=>m[1].toUpperCase()))},camelToDashCase(camel){return caseMap[camel]||(caseMap[camel]=camel.replace(CAMEL_TO_DASH,"-$1").toLowerCase())}};Polymer.CaseMap=CaseMap})();(function(){"use strict";let microtaskCurrHandle=0;let microtaskLastHandle=0;let microtaskCallbacks=[];let microtaskNodeContent=0;let microtaskNode=document.createTextNode("");new window.MutationObserver(microtaskFlush).observe(microtaskNode,{characterData:true});function microtaskFlush(){const len=microtaskCallbacks.length;for(let i=0;i<len;i++){let cb=microtaskCallbacks[i];if(cb){try{cb()}catch(e){setTimeout(()=>{throw e})}}}microtaskCallbacks.splice(0,len);microtaskLastHandle+=len}Polymer.Async={timeOut:{after(delay){return{run(fn){return window.setTimeout(fn,delay)},cancel(handle){window.clearTimeout(handle)}}},run(fn,delay){return window.setTimeout(fn,delay)},cancel(handle){window.clearTimeout(handle)}},animationFrame:{run(fn){return window.requestAnimationFrame(fn)},cancel(handle){window.cancelAnimationFrame(handle)}},idlePeriod:{run(fn){return window.requestIdleCallback?window.requestIdleCallback(fn):window.setTimeout(fn,16)},cancel(handle){window.cancelIdleCallback?window.cancelIdleCallback(handle):window.clearTimeout(handle)}},microTask:{run(callback){microtaskNode.textContent=microtaskNodeContent++;microtaskCallbacks.push(callback);return microtaskCurrHandle++},cancel(handle){const idx=handle-microtaskLastHandle;if(idx>=0){if(!microtaskCallbacks[idx]){throw new Error("invalid async handle: "+handle)}microtaskCallbacks[idx]=null}}}}})();(function(){"use strict";const microtask=Polymer.Async.microTask;Polymer.PropertiesChanged=Polymer.dedupingMixin(superClass=>{class PropertiesChanged extends superClass{static createProperties(props){const proto=this.prototype;for(let prop in props){if(!(prop in proto)){proto._createPropertyAccessor(prop)}}}static attributeNameForProperty(property){return property.toLowerCase()}static typeForProperty(name){}_createPropertyAccessor(property,readOnly){this._addPropertyToAttributeMap(property);if(!this.hasOwnProperty("__dataHasAccessor")){this.__dataHasAccessor=Object.assign({},this.__dataHasAccessor)}if(!this.__dataHasAccessor[property]){this.__dataHasAccessor[property]=true;this._definePropertyAccessor(property,readOnly)}}_addPropertyToAttributeMap(property){if(!this.hasOwnProperty("__dataAttributes")){this.__dataAttributes=Object.assign({},this.__dataAttributes)}if(!this.__dataAttributes[property]){const attr=this.constructor.attributeNameForProperty(property);this.__dataAttributes[attr]=property}}_definePropertyAccessor(property,readOnly){Object.defineProperty(this,property,{get(){return this._getProperty(property)},set:readOnly?function(){}:function(value){this._setProperty(property,value)}})}constructor(){super();this.__dataEnabled=false;this.__dataReady=false;this.__dataInvalid=false;this.__data={};this.__dataPending=null;this.__dataOld=null;this.__dataInstanceProps=null;this.__serializing=false;this._initializeProperties()}ready(){this.__dataReady=true;this._flushProperties()}_initializeProperties(){for(let p in this.__dataHasAccessor){if(this.hasOwnProperty(p)){this.__dataInstanceProps=this.__dataInstanceProps||{};this.__dataInstanceProps[p]=this[p];delete this[p]}}}_initializeInstanceProperties(props){Object.assign(this,props)}_setProperty(property,value){if(this._setPendingProperty(property,value)){this._invalidateProperties()}}_getProperty(property){return this.__data[property]}_setPendingProperty(property,value,ext){let old=this.__data[property];let changed=this._shouldPropertyChange(property,value,old);if(changed){if(!this.__dataPending){this.__dataPending={};this.__dataOld={}}if(this.__dataOld&&!(property in this.__dataOld)){this.__dataOld[property]=old}this.__data[property]=value;this.__dataPending[property]=value}return changed}_invalidateProperties(){if(!this.__dataInvalid&&this.__dataReady){this.__dataInvalid=true;microtask.run(()=>{if(this.__dataInvalid){this.__dataInvalid=false;this._flushProperties()}})}}_enableProperties(){if(!this.__dataEnabled){this.__dataEnabled=true;if(this.__dataInstanceProps){this._initializeInstanceProperties(this.__dataInstanceProps);this.__dataInstanceProps=null}this.ready()}}_flushProperties(){const props=this.__data;const changedProps=this.__dataPending;const old=this.__dataOld;if(this._shouldPropertiesChange(props,changedProps,old)){this.__dataPending=null;this.__dataOld=null;this._propertiesChanged(props,changedProps,old)}}_shouldPropertiesChange(currentProps,changedProps,oldProps){return Boolean(changedProps)}_propertiesChanged(currentProps,changedProps,oldProps){}_shouldPropertyChange(property,value,old){return old!==value&&(old===old||value===value)}attributeChangedCallback(name,old,value,namespace){if(old!==value){this._attributeToProperty(name,value)}if(super.attributeChangedCallback){super.attributeChangedCallback(name,old,value,namespace)}}_attributeToProperty(attribute,value,type){if(!this.__serializing){const map=this.__dataAttributes;const property=map&&map[attribute]||attribute;this[property]=this._deserializeValue(value,type||this.constructor.typeForProperty(property))}}_propertyToAttribute(property,attribute,value){this.__serializing=true;value=arguments.length<3?this[property]:value;this._valueToNodeAttribute(this,value,attribute||this.constructor.attributeNameForProperty(property));this.__serializing=false}_valueToNodeAttribute(node,value,attribute){const str=this._serializeValue(value);if(str===undefined){node.removeAttribute(attribute)}else{node.setAttribute(attribute,str)}}_serializeValue(value){switch(typeof value){case"boolean":return value?"":undefined;default:return value!=null?value.toString():undefined}}_deserializeValue(value,type){switch(type){case Boolean:return value!==null;case Number:return Number(value);default:return value}}}return PropertiesChanged})})();(function(){"use strict";let caseMap=Polymer.CaseMap;const nativeProperties={};let proto=HTMLElement.prototype;while(proto){let props=Object.getOwnPropertyNames(proto);for(let i=0;i<props.length;i++){nativeProperties[props[i]]=true}proto=Object.getPrototypeOf(proto)}function saveAccessorValue(model,property){if(!nativeProperties[property]){let value=model[property];if(value!==undefined){if(model.__data){model._setPendingProperty(property,value)}else{if(!model.__dataProto){model.__dataProto={}}else if(!model.hasOwnProperty(JSCompiler_renameProperty("__dataProto",model))){model.__dataProto=Object.create(model.__dataProto)}model.__dataProto[property]=value}}}}Polymer.PropertyAccessors=Polymer.dedupingMixin(superClass=>{const base=Polymer.PropertiesChanged(superClass);class PropertyAccessors extends base{static createPropertiesForAttributes(){let a$=this.observedAttributes;for(let i=0;i<a$.length;i++){this.prototype._createPropertyAccessor(caseMap.dashToCamelCase(a$[i]))}}static attributeNameForProperty(property){return caseMap.camelToDashCase(property)}_initializeProperties(){if(this.__dataProto){this._initializeProtoProperties(this.__dataProto);this.__dataProto=null}super._initializeProperties()}_initializeProtoProperties(props){for(let p in props){this._setProperty(p,props[p])}}_ensureAttribute(attribute,value){const el=this;if(!el.hasAttribute(attribute)){this._valueToNodeAttribute(el,value,attribute)}}_serializeValue(value){switch(typeof value){case"object":if(value instanceof Date){return value.toString()}else if(value){try{return JSON.stringify(value)}catch(x){return""}}default:return super._serializeValue(value)}}_deserializeValue(value,type){let outValue;switch(type){case Object:try{outValue=JSON.parse(value)}catch(x){outValue=value}break;case Array:try{outValue=JSON.parse(value)}catch(x){outValue=null;console.warn(`Polymer::Attributes: couldn't decode Array as JSON: ${value}`)}break;case Date:outValue=isNaN(value)?String(value):Number(value);outValue=new Date(outValue);break;default:outValue=super._deserializeValue(value,type);break}return outValue}_definePropertyAccessor(property,readOnly){saveAccessorValue(this,property);super._definePropertyAccessor(property,readOnly)}_hasAccessor(property){return this.__dataHasAccessor&&this.__dataHasAccessor[property]}_isPropertyPending(prop){return Boolean(this.__dataPending&&prop in this.__dataPending)}}return PropertyAccessors})})();(function(){"use strict";const walker=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,false);const templateExtensions={"dom-if":true,"dom-repeat":true};function wrapTemplateExtension(node){let is=node.getAttribute("is");if(is&&templateExtensions[is]){let t=node;t.removeAttribute("is");node=t.ownerDocument.createElement(is);t.parentNode.replaceChild(node,t);node.appendChild(t);while(t.attributes.length){node.setAttribute(t.attributes[0].name,t.attributes[0].value);t.removeAttribute(t.attributes[0].name)}}return node}function findTemplateNode(root,nodeInfo){let parent=nodeInfo.parentInfo&&findTemplateNode(root,nodeInfo.parentInfo);if(parent){walker.currentNode=parent;for(let n=walker.firstChild(),i=0;n;n=walker.nextSibling()){if(nodeInfo.parentIndex===i++){return n}}}else{return root}}function applyIdToMap(inst,map,node,nodeInfo){if(nodeInfo.id){map[nodeInfo.id]=node}}function applyEventListener(inst,node,nodeInfo){if(nodeInfo.events&&nodeInfo.events.length){for(let j=0,e$=nodeInfo.events,e;j<e$.length&&(e=e$[j]);j++){inst._addMethodEventListenerToNode(node,e.name,e.value,inst)}}}function applyTemplateContent(inst,node,nodeInfo){if(nodeInfo.templateInfo){node._templateInfo=nodeInfo.templateInfo}}function createNodeEventHandler(context,eventName,methodName){context=context._methodHost||context;let handler=function(e){if(context[methodName]){context[methodName](e,e.detail)}else{console.warn("listener method `"+methodName+"` not defined")}};return handler}Polymer.TemplateStamp=Polymer.dedupingMixin(superClass=>{class TemplateStamp extends superClass{static _parseTemplate(template,outerTemplateInfo){if(!template._templateInfo){let templateInfo=template._templateInfo={};templateInfo.nodeInfoList=[];templateInfo.stripWhiteSpace=Polymer.legacyOptimizations||outerTemplateInfo&&outerTemplateInfo.stripWhiteSpace||template.hasAttribute("strip-whitespace");this._parseTemplateContent(template,templateInfo,{parent:null})}return template._templateInfo}static _parseTemplateContent(template,templateInfo,nodeInfo){return this._parseTemplateNode(template.content,templateInfo,nodeInfo)}static _parseTemplateNode(node,templateInfo,nodeInfo){let noted;let element=node;if(element.localName=="template"&&!element.hasAttribute("preserve-content")){noted=this._parseTemplateNestedTemplate(element,templateInfo,nodeInfo)||noted}else if(element.localName==="slot"){templateInfo.hasInsertionPoint=true}walker.currentNode=element;if(walker.firstChild()){noted=this._parseTemplateChildNodes(element,templateInfo,nodeInfo)||noted}if(element.hasAttributes&&element.hasAttributes()){noted=this._parseTemplateNodeAttributes(element,templateInfo,nodeInfo)||noted}return noted}static _parseTemplateChildNodes(root,templateInfo,nodeInfo){if(root.localName==="script"||root.localName==="style"){return}walker.currentNode=root;for(let node=walker.firstChild(),parentIndex=0,next;node;node=next){if(node.localName=="template"){node=wrapTemplateExtension(node)}walker.currentNode=node;next=walker.nextSibling();if(node.nodeType===Node.TEXT_NODE){let n=next;while(n&&n.nodeType===Node.TEXT_NODE){node.textContent+=n.textContent;next=walker.nextSibling();root.removeChild(n);n=next}if(templateInfo.stripWhiteSpace&&!node.textContent.trim()){root.removeChild(node);continue}}let childInfo={parentIndex:parentIndex,parentInfo:nodeInfo};if(this._parseTemplateNode(node,templateInfo,childInfo)){childInfo.infoIndex=templateInfo.nodeInfoList.push(childInfo)-1}walker.currentNode=node;if(walker.parentNode()){parentIndex++}}}static _parseTemplateNestedTemplate(node,outerTemplateInfo,nodeInfo){let templateInfo=this._parseTemplate(node,outerTemplateInfo);let content=templateInfo.content=node.content.ownerDocument.createDocumentFragment();content.appendChild(node.content);nodeInfo.templateInfo=templateInfo;return true}static _parseTemplateNodeAttributes(node,templateInfo,nodeInfo){let noted=false;let attrs=Array.from(node.attributes);for(let i=attrs.length-1,a;a=attrs[i];i--){noted=this._parseTemplateNodeAttribute(node,templateInfo,nodeInfo,a.name,a.value)||noted}return noted}static _parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value){if(name.slice(0,3)==="on-"){node.removeAttribute(name);nodeInfo.events=nodeInfo.events||[];nodeInfo.events.push({name:name.slice(3),value:value});return true}else if(name==="id"){nodeInfo.id=value;return true}return false}static _contentForTemplate(template){let templateInfo=template._templateInfo;return templateInfo&&templateInfo.content||template.content}_stampTemplate(template){if(template&&!template.content&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate){HTMLTemplateElement.decorate(template)}let templateInfo=this.constructor._parseTemplate(template);let nodeInfo=templateInfo.nodeInfoList;let content=templateInfo.content||template.content;let dom=document.importNode(content,true);dom.__noInsertionPoint=!templateInfo.hasInsertionPoint;let nodes=dom.nodeList=new Array(nodeInfo.length);dom.$={};for(let i=0,l=nodeInfo.length,info;i<l&&(info=nodeInfo[i]);i++){let node=nodes[i]=findTemplateNode(dom,info);applyIdToMap(this,dom.$,node,info);applyTemplateContent(this,node,info);applyEventListener(this,node,info)}dom=dom;return dom}_addMethodEventListenerToNode(node,eventName,methodName,context){context=context||node;let handler=createNodeEventHandler(context,eventName,methodName);this._addEventListenerToNode(node,eventName,handler);return handler}_addEventListenerToNode(node,eventName,handler){node.addEventListener(eventName,handler)}_removeEventListenerFromNode(node,eventName,handler){node.removeEventListener(eventName,handler)}}return TemplateStamp})})();(function(){"use strict";const CaseMap=Polymer.CaseMap;let dedupeId=0;const TYPES={COMPUTE:"__computeEffects",REFLECT:"__reflectEffects",NOTIFY:"__notifyEffects",PROPAGATE:"__propagateEffects",OBSERVE:"__observeEffects",READ_ONLY:"__readOnly"};const capitalAttributeRegex=/[A-Z]/;let DataTrigger;let DataEffect;let PropertyEffectsType;function ensureOwnEffectMap(model,type){let effects=model[type];if(!effects){effects=model[type]={}}else if(!model.hasOwnProperty(type)){effects=model[type]=Object.create(model[type]);for(let p in effects){let protoFx=effects[p];let instFx=effects[p]=Array(protoFx.length);for(let i=0;i<protoFx.length;i++){instFx[i]=protoFx[i]}}}return effects}function runEffects(inst,effects,props,oldProps,hasPaths,extraArgs){if(effects){let ran=false;let id=dedupeId++;for(let prop in props){if(runEffectsForProperty(inst,effects,id,prop,props,oldProps,hasPaths,extraArgs)){ran=true}}return ran}return false}function runEffectsForProperty(inst,effects,dedupeId,prop,props,oldProps,hasPaths,extraArgs){let ran=false;let rootProperty=hasPaths?Polymer.Path.root(prop):prop;let fxs=effects[rootProperty];if(fxs){for(let i=0,l=fxs.length,fx;i<l&&(fx=fxs[i]);i++){if((!fx.info||fx.info.lastRun!==dedupeId)&&(!hasPaths||pathMatchesTrigger(prop,fx.trigger))){if(fx.info){fx.info.lastRun=dedupeId}fx.fn(inst,prop,props,oldProps,fx.info,hasPaths,extraArgs);ran=true}}}return ran}function pathMatchesTrigger(path,trigger){if(trigger){let triggerPath=trigger.name;return triggerPath==path||trigger.structured&&Polymer.Path.isAncestor(triggerPath,path)||trigger.wildcard&&Polymer.Path.isDescendant(triggerPath,path)}else{return true}}function runObserverEffect(inst,property,props,oldProps,info){let fn=typeof info.method==="string"?inst[info.method]:info.method;let changedProp=info.property;if(fn){fn.call(inst,inst.__data[changedProp],oldProps[changedProp])}else if(!info.dynamicFn){console.warn("observer method `"+info.method+"` not defined")}}function runNotifyEffects(inst,notifyProps,props,oldProps,hasPaths){let fxs=inst[TYPES.NOTIFY];let notified;let id=dedupeId++;for(let prop in notifyProps){if(notifyProps[prop]){if(fxs&&runEffectsForProperty(inst,fxs,id,prop,props,oldProps,hasPaths)){notified=true}else if(hasPaths&&notifyPath(inst,prop,props)){notified=true}}}let host;if(notified&&(host=inst.__dataHost)&&host._invalidateProperties){host._invalidateProperties()}}function notifyPath(inst,path,props){let rootProperty=Polymer.Path.root(path);if(rootProperty!==path){let eventName=Polymer.CaseMap.camelToDashCase(rootProperty)+"-changed";dispatchNotifyEvent(inst,eventName,props[path],path);return true}return false}function dispatchNotifyEvent(inst,eventName,value,path){let detail={value:value,queueProperty:true};if(path){detail.path=path}inst.dispatchEvent(new CustomEvent(eventName,{detail:detail}))}function runNotifyEffect(inst,property,props,oldProps,info,hasPaths){let rootProperty=hasPaths?Polymer.Path.root(property):property;let path=rootProperty!=property?property:null;let value=path?Polymer.Path.get(inst,path):inst.__data[property];if(path&&value===undefined){value=props[property]}dispatchNotifyEvent(inst,info.eventName,value,path)}function handleNotification(event,inst,fromProp,toPath,negate){let value;let detail=event.detail;let fromPath=detail&&detail.path;if(fromPath){toPath=Polymer.Path.translate(fromProp,toPath,fromPath);value=detail&&detail.value}else{value=event.currentTarget[fromProp]}value=negate?!value:value;if(!inst[TYPES.READ_ONLY]||!inst[TYPES.READ_ONLY][toPath]){if(inst._setPendingPropertyOrPath(toPath,value,true,Boolean(fromPath))&&(!detail||!detail.queueProperty)){inst._invalidateProperties()}}}function runReflectEffect(inst,property,props,oldProps,info){let value=inst.__data[property];if(Polymer.sanitizeDOMValue){value=Polymer.sanitizeDOMValue(value,info.attrName,"attribute",inst)}inst._propertyToAttribute(property,info.attrName,value)}function runComputedEffects(inst,changedProps,oldProps,hasPaths){let computeEffects=inst[TYPES.COMPUTE];if(computeEffects){let inputProps=changedProps;while(runEffects(inst,computeEffects,inputProps,oldProps,hasPaths)){Object.assign(oldProps,inst.__dataOld);Object.assign(changedProps,inst.__dataPending);inputProps=inst.__dataPending;inst.__dataPending=null}}}function runComputedEffect(inst,property,props,oldProps,info){let result=runMethodEffect(inst,property,props,oldProps,info);let computedProp=info.methodInfo;if(inst.__dataHasAccessor&&inst.__dataHasAccessor[computedProp]){inst._setPendingProperty(computedProp,result,true)}else{inst[computedProp]=result}}function computeLinkedPaths(inst,path,value){let links=inst.__dataLinkedPaths;if(links){let link;for(let a in links){let b=links[a];if(Polymer.Path.isDescendant(a,path)){link=Polymer.Path.translate(a,b,path);inst._setPendingPropertyOrPath(link,value,true,true)}else if(Polymer.Path.isDescendant(b,path)){link=Polymer.Path.translate(b,a,path);inst._setPendingPropertyOrPath(link,value,true,true)}}}}function addBinding(constructor,templateInfo,nodeInfo,kind,target,parts,literal){nodeInfo.bindings=nodeInfo.bindings||[];let binding={kind:kind,target:target,parts:parts,literal:literal,isCompound:parts.length!==1};nodeInfo.bindings.push(binding);if(shouldAddListener(binding)){let{event:event,negate:negate}=binding.parts[0];binding.listenerEvent=event||CaseMap.camelToDashCase(target)+"-changed";binding.listenerNegate=negate}let index=templateInfo.nodeInfoList.length;for(let i=0;i<binding.parts.length;i++){let part=binding.parts[i];part.compoundIndex=i;addEffectForBindingPart(constructor,templateInfo,binding,part,index)}}function addEffectForBindingPart(constructor,templateInfo,binding,part,index){if(!part.literal){if(binding.kind==="attribute"&&binding.target[0]==="-"){console.warn("Cannot set attribute "+binding.target+' because "-" is not a valid attribute starting character')}else{let dependencies=part.dependencies;let info={index:index,binding:binding,part:part,evaluator:constructor};for(let j=0;j<dependencies.length;j++){let trigger=dependencies[j];if(typeof trigger=="string"){trigger=parseArg(trigger);trigger.wildcard=true}constructor._addTemplatePropertyEffect(templateInfo,trigger.rootProperty,{fn:runBindingEffect,info:info,trigger:trigger})}}}}function runBindingEffect(inst,path,props,oldProps,info,hasPaths,nodeList){let node=nodeList[info.index];let binding=info.binding;let part=info.part;if(hasPaths&&part.source&&path.length>part.source.length&&binding.kind=="property"&&!binding.isCompound&&node.__isPropertyEffectsClient&&node.__dataHasAccessor&&node.__dataHasAccessor[binding.target]){let value=props[path];path=Polymer.Path.translate(part.source,binding.target,path);if(node._setPendingPropertyOrPath(path,value,false,true)){inst._enqueueClient(node)}}else{let value=info.evaluator._evaluateBinding(inst,part,path,props,oldProps,hasPaths);applyBindingValue(inst,node,binding,part,value)}}function applyBindingValue(inst,node,binding,part,value){value=computeBindingValue(node,value,binding,part);if(Polymer.sanitizeDOMValue){value=Polymer.sanitizeDOMValue(value,binding.target,binding.kind,node)}if(binding.kind=="attribute"){inst._valueToNodeAttribute(node,value,binding.target)}else{let prop=binding.target;if(node.__isPropertyEffectsClient&&node.__dataHasAccessor&&node.__dataHasAccessor[prop]){if(!node[TYPES.READ_ONLY]||!node[TYPES.READ_ONLY][prop]){if(node._setPendingProperty(prop,value)){inst._enqueueClient(node)}}}else{inst._setUnmanagedPropertyToNode(node,prop,value)}}}function computeBindingValue(node,value,binding,part){if(binding.isCompound){let storage=node.__dataCompoundStorage[binding.target];storage[part.compoundIndex]=value;value=storage.join("")}if(binding.kind!=="attribute"){if(binding.target==="textContent"||binding.target==="value"&&(node.localName==="input"||node.localName==="textarea")){value=value==undefined?"":value}}return value}function shouldAddListener(binding){return Boolean(binding.target)&&binding.kind!="attribute"&&binding.kind!="text"&&!binding.isCompound&&binding.parts[0].mode==="{"}function setupBindings(inst,templateInfo){let{nodeList:nodeList,nodeInfoList:nodeInfoList}=templateInfo;if(nodeInfoList.length){for(let i=0;i<nodeInfoList.length;i++){let info=nodeInfoList[i];let node=nodeList[i];let bindings=info.bindings;if(bindings){for(let i=0;i<bindings.length;i++){let binding=bindings[i];setupCompoundStorage(node,binding);addNotifyListener(node,inst,binding)}}node.__dataHost=inst}}}function setupCompoundStorage(node,binding){if(binding.isCompound){let storage=node.__dataCompoundStorage||(node.__dataCompoundStorage={});let parts=binding.parts;let literals=new Array(parts.length);for(let j=0;j<parts.length;j++){literals[j]=parts[j].literal}let target=binding.target;storage[target]=literals;if(binding.literal&&binding.kind=="property"){node[target]=binding.literal}}}function addNotifyListener(node,inst,binding){if(binding.listenerEvent){let part=binding.parts[0];node.addEventListener(binding.listenerEvent,function(e){handleNotification(e,inst,binding.target,part.source,part.negate)})}}function createMethodEffect(model,sig,type,effectFn,methodInfo,dynamicFn){dynamicFn=sig.static||dynamicFn&&(typeof dynamicFn!=="object"||dynamicFn[sig.methodName]);let info={methodName:sig.methodName,args:sig.args,methodInfo:methodInfo,dynamicFn:dynamicFn};for(let i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){if(!arg.literal){model._addPropertyEffect(arg.rootProperty,type,{fn:effectFn,info:info,trigger:arg})}}if(dynamicFn){model._addPropertyEffect(sig.methodName,type,{fn:effectFn,info:info})}}function runMethodEffect(inst,property,props,oldProps,info){let context=inst._methodHost||inst;let fn=context[info.methodName];if(fn){let args=inst._marshalArgs(info.args,property,props);return fn.apply(context,args)}else if(!info.dynamicFn){console.warn("method `"+info.methodName+"` not defined")}}const emptyArray=[];const IDENT="(?:"+"[a-zA-Z_$][\\w.:$\\-*]*"+")";const NUMBER="(?:"+"[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?"+")";const SQUOTE_STRING="(?:"+"'(?:[^'\\\\]|\\\\.)*'"+")";const DQUOTE_STRING="(?:"+'"(?:[^"\\\\]|\\\\.)*"'+")";const STRING="(?:"+SQUOTE_STRING+"|"+DQUOTE_STRING+")";const ARGUMENT="(?:("+IDENT+"|"+NUMBER+"|"+STRING+")\\s*"+")";const ARGUMENTS="(?:"+ARGUMENT+"(?:,\\s*"+ARGUMENT+")*"+")";const ARGUMENT_LIST="(?:"+"\\(\\s*"+"(?:"+ARGUMENTS+"?"+")"+"\\)\\s*"+")";const BINDING="("+IDENT+"\\s*"+ARGUMENT_LIST+"?"+")";const OPEN_BRACKET="(\\[\\[|{{)"+"\\s*";const CLOSE_BRACKET="(?:]]|}})";const NEGATE="(?:(!)\\s*)?";const EXPRESSION=OPEN_BRACKET+NEGATE+BINDING+CLOSE_BRACKET;const bindingRegex=new RegExp(EXPRESSION,"g");function literalFromParts(parts){let s="";for(let i=0;i<parts.length;i++){let literal=parts[i].literal;s+=literal||""}return s}function parseMethod(expression){let m=expression.match(/([^\s]+?)\(([\s\S]*)\)/);if(m){let methodName=m[1];let sig={methodName:methodName,static:true,args:emptyArray};if(m[2].trim()){let args=m[2].replace(/\\,/g,"&comma;").split(",");return parseArgs(args,sig)}else{return sig}}return null}function parseArgs(argList,sig){sig.args=argList.map(function(rawArg){let arg=parseArg(rawArg);if(!arg.literal){sig.static=false}return arg},this);return sig}function parseArg(rawArg){let arg=rawArg.trim().replace(/&comma;/g,",").replace(/\\(.)/g,"$1");let a={name:arg,value:"",literal:false};let fc=arg[0];if(fc==="-"){fc=arg[1]}if(fc>="0"&&fc<="9"){fc="#"}switch(fc){case"'":case'"':a.value=arg.slice(1,-1);a.literal=true;break;case"#":a.value=Number(arg);a.literal=true;break}if(!a.literal){a.rootProperty=Polymer.Path.root(arg);a.structured=Polymer.Path.isPath(arg);if(a.structured){a.wildcard=arg.slice(-2)==".*";if(a.wildcard){a.name=arg.slice(0,-2)}}}return a}function notifySplices(inst,array,path,splices){let splicesPath=path+".splices";inst.notifyPath(splicesPath,{indexSplices:splices});inst.notifyPath(path+".length",array.length);inst.__data[splicesPath]={indexSplices:null}}function notifySplice(inst,array,path,index,addedCount,removed){notifySplices(inst,array,path,[{index:index,addedCount:addedCount,removed:removed,object:array,type:"splice"}])}function upper(name){return name[0].toUpperCase()+name.substring(1)}Polymer.PropertyEffects=Polymer.dedupingMixin(superClass=>{const propertyEffectsBase=Polymer.TemplateStamp(Polymer.PropertyAccessors(superClass));class PropertyEffects extends propertyEffectsBase{constructor(){super();this.__isPropertyEffectsClient=true;this.__dataCounter=0;this.__dataClientsReady;this.__dataPendingClients;this.__dataToNotify;this.__dataLinkedPaths;this.__dataHasPaths;this.__dataCompoundStorage;this.__dataHost;this.__dataTemp;this.__dataClientsInitialized;this.__data;this.__dataPending;this.__dataOld;this.__computeEffects;this.__reflectEffects;this.__notifyEffects;this.__propagateEffects;this.__observeEffects;this.__readOnly;this.__templateInfo}get PROPERTY_EFFECT_TYPES(){return TYPES}_initializeProperties(){super._initializeProperties();hostStack.registerHost(this);this.__dataClientsReady=false;this.__dataPendingClients=null;this.__dataToNotify=null;this.__dataLinkedPaths=null;this.__dataHasPaths=false;this.__dataCompoundStorage=this.__dataCompoundStorage||null;this.__dataHost=this.__dataHost||null;this.__dataTemp={};this.__dataClientsInitialized=false}_initializeProtoProperties(props){this.__data=Object.create(props);this.__dataPending=Object.create(props);this.__dataOld={}}_initializeInstanceProperties(props){let readOnly=this[TYPES.READ_ONLY];for(let prop in props){if(!readOnly||!readOnly[prop]){this.__dataPending=this.__dataPending||{};this.__dataOld=this.__dataOld||{};this.__data[prop]=this.__dataPending[prop]=props[prop]}}}_addPropertyEffect(property,type,effect){this._createPropertyAccessor(property,type==TYPES.READ_ONLY);let effects=ensureOwnEffectMap(this,type)[property];if(!effects){effects=this[type][property]=[]}effects.push(effect)}_removePropertyEffect(property,type,effect){let effects=ensureOwnEffectMap(this,type)[property];let idx=effects.indexOf(effect);if(idx>=0){effects.splice(idx,1)}}_hasPropertyEffect(property,type){let effects=this[type];return Boolean(effects&&effects[property])}_hasReadOnlyEffect(property){return this._hasPropertyEffect(property,TYPES.READ_ONLY)}_hasNotifyEffect(property){return this._hasPropertyEffect(property,TYPES.NOTIFY)}_hasReflectEffect(property){return this._hasPropertyEffect(property,TYPES.REFLECT)}_hasComputedEffect(property){return this._hasPropertyEffect(property,TYPES.COMPUTE)}_setPendingPropertyOrPath(path,value,shouldNotify,isPathNotification){if(isPathNotification||Polymer.Path.root(Array.isArray(path)?path[0]:path)!==path){if(!isPathNotification){let old=Polymer.Path.get(this,path);path=Polymer.Path.set(this,path,value);if(!path||!super._shouldPropertyChange(path,value,old)){return false}}this.__dataHasPaths=true;if(this._setPendingProperty(path,value,shouldNotify)){computeLinkedPaths(this,path,value);return true}}else{if(this.__dataHasAccessor&&this.__dataHasAccessor[path]){return this._setPendingProperty(path,value,shouldNotify)}else{this[path]=value}}return false}_setUnmanagedPropertyToNode(node,prop,value){if(value!==node[prop]||typeof value=="object"){node[prop]=value}}_setPendingProperty(property,value,shouldNotify){let isPath=this.__dataHasPaths&&Polymer.Path.isPath(property);let prevProps=isPath?this.__dataTemp:this.__data;if(this._shouldPropertyChange(property,value,prevProps[property])){if(!this.__dataPending){this.__dataPending={};this.__dataOld={}}if(!(property in this.__dataOld)){this.__dataOld[property]=this.__data[property]}if(isPath){this.__dataTemp[property]=value}else{this.__data[property]=value}this.__dataPending[property]=value;if(isPath||this[TYPES.NOTIFY]&&this[TYPES.NOTIFY][property]){this.__dataToNotify=this.__dataToNotify||{};this.__dataToNotify[property]=shouldNotify}return true}return false}_setProperty(property,value){if(this._setPendingProperty(property,value,true)){this._invalidateProperties()}}_invalidateProperties(){if(this.__dataReady){this._flushProperties()}}_enqueueClient(client){this.__dataPendingClients=this.__dataPendingClients||[];if(client!==this){this.__dataPendingClients.push(client)}}_flushProperties(){this.__dataCounter++;super._flushProperties();this.__dataCounter--}_flushClients(){if(!this.__dataClientsReady){this.__dataClientsReady=true;this._readyClients();this.__dataReady=true}else{this.__enableOrFlushClients()}}__enableOrFlushClients(){let clients=this.__dataPendingClients;if(clients){this.__dataPendingClients=null;for(let i=0;i<clients.length;i++){let client=clients[i];if(!client.__dataEnabled){client._enableProperties()}else if(client.__dataPending){client._flushProperties()}}}}_readyClients(){this.__enableOrFlushClients()}setProperties(props,setReadOnly){for(let path in props){if(setReadOnly||!this[TYPES.READ_ONLY]||!this[TYPES.READ_ONLY][path]){this._setPendingPropertyOrPath(path,props[path],true)}}this._invalidateProperties()}ready(){this._flushProperties();if(!this.__dataClientsReady){this._flushClients()}if(this.__dataPending){this._flushProperties()}}_propertiesChanged(currentProps,changedProps,oldProps){let hasPaths=this.__dataHasPaths;this.__dataHasPaths=false;runComputedEffects(this,changedProps,oldProps,hasPaths);let notifyProps=this.__dataToNotify;this.__dataToNotify=null;this._propagatePropertyChanges(changedProps,oldProps,hasPaths);this._flushClients();runEffects(this,this[TYPES.REFLECT],changedProps,oldProps,hasPaths);runEffects(this,this[TYPES.OBSERVE],changedProps,oldProps,hasPaths);if(notifyProps){runNotifyEffects(this,notifyProps,changedProps,oldProps,hasPaths)}if(this.__dataCounter==1){this.__dataTemp={}}}_propagatePropertyChanges(changedProps,oldProps,hasPaths){if(this[TYPES.PROPAGATE]){runEffects(this,this[TYPES.PROPAGATE],changedProps,oldProps,hasPaths)}let templateInfo=this.__templateInfo;while(templateInfo){runEffects(this,templateInfo.propertyEffects,changedProps,oldProps,hasPaths,templateInfo.nodeList);templateInfo=templateInfo.nextTemplateInfo}}linkPaths(to,from){to=Polymer.Path.normalize(to);from=Polymer.Path.normalize(from);this.__dataLinkedPaths=this.__dataLinkedPaths||{};this.__dataLinkedPaths[to]=from}unlinkPaths(path){path=Polymer.Path.normalize(path);if(this.__dataLinkedPaths){delete this.__dataLinkedPaths[path]}}notifySplices(path,splices){let info={path:""};let array=Polymer.Path.get(this,path,info);notifySplices(this,array,info.path,splices)}get(path,root){return Polymer.Path.get(root||this,path)}set(path,value,root){if(root){Polymer.Path.set(root,path,value)}else{if(!this[TYPES.READ_ONLY]||!this[TYPES.READ_ONLY][path]){if(this._setPendingPropertyOrPath(path,value,true)){this._invalidateProperties()}}}}push(path,...items){let info={path:""};let array=Polymer.Path.get(this,path,info);let len=array.length;let ret=array.push(...items);if(items.length){notifySplice(this,array,info.path,len,items.length,[])}return ret}pop(path){let info={path:""};let array=Polymer.Path.get(this,path,info);let hadLength=Boolean(array.length);let ret=array.pop();if(hadLength){notifySplice(this,array,info.path,array.length,0,[ret])}return ret}splice(path,start,deleteCount,...items){let info={path:""};let array=Polymer.Path.get(this,path,info);if(start<0){start=array.length-Math.floor(-start)}else if(start){start=Math.floor(start)}let ret;if(arguments.length===2){ret=array.splice(start)}else{ret=array.splice(start,deleteCount,...items)}if(items.length||ret.length){notifySplice(this,array,info.path,start,items.length,ret)}return ret}shift(path){let info={path:""};let array=Polymer.Path.get(this,path,info);let hadLength=Boolean(array.length);let ret=array.shift();if(hadLength){notifySplice(this,array,info.path,0,0,[ret])}return ret}unshift(path,...items){let info={path:""};let array=Polymer.Path.get(this,path,info);let ret=array.unshift(...items);if(items.length){notifySplice(this,array,info.path,0,items.length,[])}return ret}notifyPath(path,value){let propPath;if(arguments.length==1){let info={path:""};value=Polymer.Path.get(this,path,info);propPath=info.path}else if(Array.isArray(path)){propPath=Polymer.Path.normalize(path)}else{propPath=path}if(this._setPendingPropertyOrPath(propPath,value,true,true)){this._invalidateProperties()}}_createReadOnlyProperty(property,protectedSetter){this._addPropertyEffect(property,TYPES.READ_ONLY);if(protectedSetter){this["_set"+upper(property)]=function(value){this._setProperty(property,value)}}}_createPropertyObserver(property,method,dynamicFn){let info={property:property,method:method,dynamicFn:Boolean(dynamicFn)};this._addPropertyEffect(property,TYPES.OBSERVE,{fn:runObserverEffect,info:info,trigger:{name:property}});if(dynamicFn){this._addPropertyEffect(method,TYPES.OBSERVE,{fn:runObserverEffect,info:info,trigger:{name:method}})}}_createMethodObserver(expression,dynamicFn){let sig=parseMethod(expression);if(!sig){throw new Error("Malformed observer expression '"+expression+"'")}createMethodEffect(this,sig,TYPES.OBSERVE,runMethodEffect,null,dynamicFn)}_createNotifyingProperty(property){this._addPropertyEffect(property,TYPES.NOTIFY,{fn:runNotifyEffect,info:{eventName:CaseMap.camelToDashCase(property)+"-changed",property:property}})}_createReflectedProperty(property){let attr=this.constructor.attributeNameForProperty(property);if(attr[0]==="-"){console.warn("Property "+property+" cannot be reflected to attribute "+attr+' because "-" is not a valid starting attribute name. Use a lowercase first letter for the property instead.')}else{this._addPropertyEffect(property,TYPES.REFLECT,{fn:runReflectEffect,info:{attrName:attr}})}}_createComputedProperty(property,expression,dynamicFn){let sig=parseMethod(expression);if(!sig){throw new Error("Malformed computed expression '"+expression+"'")}createMethodEffect(this,sig,TYPES.COMPUTE,runComputedEffect,property,dynamicFn)}_marshalArgs(args,path,props){const data=this.__data;let values=[];for(let i=0,l=args.length;i<l;i++){let arg=args[i];let name=arg.name;let v;if(arg.literal){v=arg.value}else{if(arg.structured){v=Polymer.Path.get(data,name);if(v===undefined){v=props[name]}}else{v=data[name]}}if(arg.wildcard){let baseChanged=name.indexOf(path+".")===0;let matches=path.indexOf(name)===0&&!baseChanged;values[i]={path:matches?path:name,value:matches?props[path]:v,base:v}}else{values[i]=v}}return values}static addPropertyEffect(property,type,effect){this.prototype._addPropertyEffect(property,type,effect)}static createPropertyObserver(property,method,dynamicFn){this.prototype._createPropertyObserver(property,method,dynamicFn)}static createMethodObserver(expression,dynamicFn){this.prototype._createMethodObserver(expression,dynamicFn)}static createNotifyingProperty(property){this.prototype._createNotifyingProperty(property)}static createReadOnlyProperty(property,protectedSetter){this.prototype._createReadOnlyProperty(property,protectedSetter)}static createReflectedProperty(property){this.prototype._createReflectedProperty(property)}static createComputedProperty(property,expression,dynamicFn){this.prototype._createComputedProperty(property,expression,dynamicFn)}static bindTemplate(template){return this.prototype._bindTemplate(template)}_bindTemplate(template,instanceBinding){let templateInfo=this.constructor._parseTemplate(template);let wasPreBound=this.__templateInfo==templateInfo;if(!wasPreBound){for(let prop in templateInfo.propertyEffects){this._createPropertyAccessor(prop)}}if(instanceBinding){templateInfo=Object.create(templateInfo);templateInfo.wasPreBound=wasPreBound;if(!wasPreBound&&this.__templateInfo){let last=this.__templateInfoLast||this.__templateInfo;this.__templateInfoLast=last.nextTemplateInfo=templateInfo;templateInfo.previousTemplateInfo=last;return templateInfo}}return this.__templateInfo=templateInfo}static _addTemplatePropertyEffect(templateInfo,prop,effect){let hostProps=templateInfo.hostProps=templateInfo.hostProps||{};hostProps[prop]=true;let effects=templateInfo.propertyEffects=templateInfo.propertyEffects||{};let propEffects=effects[prop]=effects[prop]||[];propEffects.push(effect)}_stampTemplate(template){hostStack.beginHosting(this);let dom=super._stampTemplate(template);hostStack.endHosting(this);let templateInfo=this._bindTemplate(template,true);templateInfo.nodeList=dom.nodeList;if(!templateInfo.wasPreBound){let nodes=templateInfo.childNodes=[];for(let n=dom.firstChild;n;n=n.nextSibling){nodes.push(n)}}dom.templateInfo=templateInfo;setupBindings(this,templateInfo);if(this.__dataReady){runEffects(this,templateInfo.propertyEffects,this.__data,null,false,templateInfo.nodeList)}return dom}_removeBoundDom(dom){let templateInfo=dom.templateInfo;if(templateInfo.previousTemplateInfo){templateInfo.previousTemplateInfo.nextTemplateInfo=templateInfo.nextTemplateInfo}if(templateInfo.nextTemplateInfo){templateInfo.nextTemplateInfo.previousTemplateInfo=templateInfo.previousTemplateInfo}if(this.__templateInfoLast==templateInfo){this.__templateInfoLast=templateInfo.previousTemplateInfo}templateInfo.previousTemplateInfo=templateInfo.nextTemplateInfo=null;let nodes=templateInfo.childNodes;for(let i=0;i<nodes.length;i++){let node=nodes[i];node.parentNode.removeChild(node)}}static _parseTemplateNode(node,templateInfo,nodeInfo){let noted=super._parseTemplateNode(node,templateInfo,nodeInfo);if(node.nodeType===Node.TEXT_NODE){let parts=this._parseBindings(node.textContent,templateInfo);if(parts){node.textContent=literalFromParts(parts)||" ";addBinding(this,templateInfo,nodeInfo,"text","textContent",parts);noted=true}}return noted}static _parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value){let parts=this._parseBindings(value,templateInfo);if(parts){let origName=name;let kind="property";if(capitalAttributeRegex.test(name)){kind="attribute"}else if(name[name.length-1]=="$"){name=name.slice(0,-1);kind="attribute"}let literal=literalFromParts(parts);if(literal&&kind=="attribute"){if(name=="class"&&node.hasAttribute("class")){literal+=" "+node.getAttribute(name)}node.setAttribute(name,literal)}if(node.localName==="input"&&origName==="value"){node.setAttribute(origName,"")}node.removeAttribute(origName);if(kind==="property"){name=Polymer.CaseMap.dashToCamelCase(name)}addBinding(this,templateInfo,nodeInfo,kind,name,parts,literal);return true}else{return super._parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value)}}static _parseTemplateNestedTemplate(node,templateInfo,nodeInfo){let noted=super._parseTemplateNestedTemplate(node,templateInfo,nodeInfo);let hostProps=nodeInfo.templateInfo.hostProps;let mode="{";for(let source in hostProps){let parts=[{mode:mode,source:source,dependencies:[source]}];addBinding(this,templateInfo,nodeInfo,"property","_host_"+source,parts)}return noted}static _parseBindings(text,templateInfo){let parts=[];let lastIndex=0;let m;while((m=bindingRegex.exec(text))!==null){if(m.index>lastIndex){parts.push({literal:text.slice(lastIndex,m.index)})}let mode=m[1][0];let negate=Boolean(m[2]);let source=m[3].trim();let customEvent=false,notifyEvent="",colon=-1;if(mode=="{"&&(colon=source.indexOf("::"))>0){notifyEvent=source.substring(colon+2);source=source.substring(0,colon);customEvent=true}let signature=parseMethod(source);let dependencies=[];if(signature){let{args:args,methodName:methodName}=signature;for(let i=0;i<args.length;i++){let arg=args[i];if(!arg.literal){dependencies.push(arg)}}let dynamicFns=templateInfo.dynamicFns;if(dynamicFns&&dynamicFns[methodName]||signature.static){dependencies.push(methodName);signature.dynamicFn=true}}else{dependencies.push(source)}parts.push({source:source,mode:mode,negate:negate,customEvent:customEvent,signature:signature,dependencies:dependencies,event:notifyEvent});lastIndex=bindingRegex.lastIndex}if(lastIndex&&lastIndex<text.length){let literal=text.substring(lastIndex);if(literal){parts.push({literal:literal})}}if(parts.length){return parts}else{return null}}static _evaluateBinding(inst,part,path,props,oldProps,hasPaths){let value;if(part.signature){value=runMethodEffect(inst,path,props,oldProps,part.signature)}else if(path!=part.source){value=Polymer.Path.get(inst,part.source)}else{if(hasPaths&&Polymer.Path.isPath(path)){value=Polymer.Path.get(inst,path)}else{value=inst.__data[path]}}if(part.negate){value=!value}return value}}PropertyEffectsType=PropertyEffects;return PropertyEffects});let hostStack={stack:[],registerHost(inst){if(this.stack.length){let host=this.stack[this.stack.length-1];host._enqueueClient(inst)}},beginHosting(inst){this.stack.push(inst)},endHosting(inst){let stackLen=this.stack.length;if(stackLen&&this.stack[stackLen-1]==inst){this.stack.pop()}}}})();(function(){"use strict";Polymer.telemetry={instanceCount:0,registrations:[],_regLog:function(prototype){console.log("["+prototype.is+"]: registered")},register:function(prototype){this.registrations.push(prototype);Polymer.log&&this._regLog(prototype)},dumpRegistrations:function(){this.registrations.forEach(this._regLog)}}})();(function(){"use strict";function normalizeProperties(props){const output={};for(let p in props){const o=props[p];output[p]=typeof o==="function"?{type:o}:o}return output}Polymer.PropertiesMixin=Polymer.dedupingMixin(superClass=>{const base=Polymer.PropertiesChanged(superClass);function superPropertiesClass(constructor){const superCtor=Object.getPrototypeOf(constructor);return superCtor.prototype instanceof PropertiesMixin?superCtor:null}function ownProperties(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__ownProperties",constructor))){let props=null;if(constructor.hasOwnProperty(JSCompiler_renameProperty("properties",constructor))){const properties=constructor.properties;if(properties){props=normalizeProperties(properties)}}constructor.__ownProperties=props}return constructor.__ownProperties}class PropertiesMixin extends base{static get observedAttributes(){if(!this.hasOwnProperty("__observedAttributes")){Polymer.telemetry.register(this.prototype);const props=this._properties;this.__observedAttributes=props?Object.keys(props).map(p=>this.attributeNameForProperty(p)):[]}return this.__observedAttributes}static finalize(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__finalized",this))){const superCtor=superPropertiesClass(this);if(superCtor){superCtor.finalize()}this.__finalized=true;this._finalizeClass()}}static _finalizeClass(){const props=ownProperties(this);if(props){this.createProperties(props)}}static get _properties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__properties",this))){const superCtor=superPropertiesClass(this);this.__properties=Object.assign({},superCtor&&superCtor._properties,ownProperties(this))}return this.__properties}static typeForProperty(name){const info=this._properties[name];return info&&info.type}_initializeProperties(){Polymer.telemetry.instanceCount++;this.constructor.finalize();super._initializeProperties()}connectedCallback(){if(super.connectedCallback){super.connectedCallback()}this._enableProperties()}disconnectedCallback(){if(super.disconnectedCallback){super.disconnectedCallback()}}}return PropertiesMixin})})();(function(){"use strict";const builtCSS=window.ShadyCSS&&window.ShadyCSS["cssBuild"];Polymer.ElementMixin=Polymer.dedupingMixin(base=>{const polymerElementBase=Polymer.PropertiesMixin(Polymer.PropertyEffects(base));function propertyDefaults(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__propertyDefaults",constructor))){constructor.__propertyDefaults=null;let props=constructor._properties;for(let p in props){let info=props[p];if("value"in info){constructor.__propertyDefaults=constructor.__propertyDefaults||{};constructor.__propertyDefaults[p]=info}}}return constructor.__propertyDefaults}function ownObservers(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__ownObservers",constructor))){constructor.__ownObservers=constructor.hasOwnProperty(JSCompiler_renameProperty("observers",constructor))?constructor.observers:null}return constructor.__ownObservers}function createPropertyFromConfig(proto,name,info,allProps){if(info.computed){info.readOnly=true}if(info.computed&&!proto._hasReadOnlyEffect(name)){proto._createComputedProperty(name,info.computed,allProps)}if(info.readOnly&&!proto._hasReadOnlyEffect(name)){proto._createReadOnlyProperty(name,!info.computed)}if(info.reflectToAttribute&&!proto._hasReflectEffect(name)){proto._createReflectedProperty(name)}if(info.notify&&!proto._hasNotifyEffect(name)){proto._createNotifyingProperty(name)}if(info.observer){proto._createPropertyObserver(name,info.observer,allProps[info.observer])}proto._addPropertyToAttributeMap(name)}function processElementStyles(klass,template,is,baseURI){if(!builtCSS){const templateStyles=template.content.querySelectorAll("style");const stylesWithImports=Polymer.StyleGather.stylesFromTemplate(template);const linkedStyles=Polymer.StyleGather.stylesFromModuleImports(is);const firstTemplateChild=template.content.firstElementChild;for(let idx=0;idx<linkedStyles.length;idx++){let s=linkedStyles[idx];s.textContent=klass._processStyleText(s.textContent,baseURI);template.content.insertBefore(s,firstTemplateChild)}let templateStyleIndex=0;for(let i=0;i<stylesWithImports.length;i++){let s=stylesWithImports[i];let templateStyle=templateStyles[templateStyleIndex];if(templateStyle!==s){s=s.cloneNode(true);templateStyle.parentNode.insertBefore(s,templateStyle)}else{templateStyleIndex++}s.textContent=klass._processStyleText(s.textContent,baseURI)}}if(window.ShadyCSS){window.ShadyCSS.prepareTemplate(template,is)}}function getTemplateFromDomModule(is){let template=null;if(is&&Polymer.DomModule){template=Polymer.DomModule.import(is,"template");if(Polymer.strictTemplatePolicy&&!template){throw new Error(`strictTemplatePolicy: expecting dom-module or null template for ${is}`)}}return template}class PolymerElement extends polymerElementBase{static _finalizeClass(){super._finalizeClass();const observers=ownObservers(this);if(observers){this.createObservers(observers,this._properties)}this._prepareTemplate()}static _prepareTemplate(){let template=this.template;if(template){if(typeof template==="string"){let t=document.createElement("template");t.innerHTML=template;template=t}else if(!Polymer.legacyOptimizations){template=template.cloneNode(true)}}this.prototype._template=template}static createProperties(props){for(let p in props){createPropertyFromConfig(this.prototype,p,props[p],props)}}static createObservers(observers,dynamicFns){const proto=this.prototype;for(let i=0;i<observers.length;i++){proto._createMethodObserver(observers[i],dynamicFns)}}static get template(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_template",this))){this._template=this.prototype.hasOwnProperty(JSCompiler_renameProperty("_template",this.prototype))?this.prototype._template:getTemplateFromDomModule(this.is)||Object.getPrototypeOf(this.prototype).constructor.template}return this._template}static set template(value){this._template=value}static get importPath(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_importPath",this))){const meta=this.importMeta;if(meta){this._importPath=Polymer.ResolveUrl.pathFromUrl(meta.url)}else{const module=Polymer.DomModule&&Polymer.DomModule.import(this.is);this._importPath=module&&module.assetpath||Object.getPrototypeOf(this.prototype).constructor.importPath}}return this._importPath}constructor(){super();this._template;this._importPath;this.rootPath;this.importPath;this.root;this.$}_initializeProperties(){this.constructor.finalize();this.constructor._finalizeTemplate(this.localName);super._initializeProperties();this.rootPath=Polymer.rootPath;this.importPath=this.constructor.importPath;let p$=propertyDefaults(this.constructor);if(!p$){return}for(let p in p$){let info=p$[p];if(!this.hasOwnProperty(p)){let value=typeof info.value=="function"?info.value.call(this):info.value;if(this._hasAccessor(p)){this._setPendingProperty(p,value,true)}else{this[p]=value}}}}static _processStyleText(cssText,baseURI){return Polymer.ResolveUrl.resolveCss(cssText,baseURI)}static _finalizeTemplate(is){const template=this.prototype._template;if(template&&!template.__polymerFinalized){template.__polymerFinalized=true;const importPath=this.importPath;const baseURI=importPath?Polymer.ResolveUrl.resolveUrl(importPath):"";processElementStyles(this,template,is,baseURI);this.prototype._bindTemplate(template)}}connectedCallback(){if(window.ShadyCSS&&this._template){window.ShadyCSS.styleElement(this)}super.connectedCallback()}ready(){if(this._template){this.root=this._stampTemplate(this._template);this.$=this.root.$}super.ready()}_readyClients(){if(this._template){this.root=this._attachDom(this.root)}super._readyClients()}_attachDom(dom){if(this.attachShadow){if(dom){if(!this.shadowRoot){this.attachShadow({mode:"open"})}this.shadowRoot.appendChild(dom);return this.shadowRoot}return null}else{throw new Error("ShadowDOM not available. "+"Polymer.Element can create dom as children instead of in "+"ShadowDOM by setting `this.root = this;` before `ready`.")}}updateStyles(properties){if(window.ShadyCSS){window.ShadyCSS.styleSubtree(this,properties)}}resolveUrl(url,base){if(!base&&this.importPath){base=Polymer.ResolveUrl.resolveUrl(this.importPath)}return Polymer.ResolveUrl.resolveUrl(url,base)}static _parseTemplateContent(template,templateInfo,nodeInfo){templateInfo.dynamicFns=templateInfo.dynamicFns||this._properties;return super._parseTemplateContent(template,templateInfo,nodeInfo)}}return PolymerElement});Polymer.updateStyles=function(props){if(window.ShadyCSS){window.ShadyCSS.styleDocument(props)}}})();(function(){"use strict";class Debouncer{constructor(){this._asyncModule=null;this._callback=null;this._timer=null}setConfig(asyncModule,callback){this._asyncModule=asyncModule;this._callback=callback;this._timer=this._asyncModule.run(()=>{this._timer=null;this._callback()})}cancel(){if(this.isActive()){this._asyncModule.cancel(this._timer);this._timer=null}}flush(){if(this.isActive()){this.cancel();this._callback()}}isActive(){return this._timer!=null}static debounce(debouncer,asyncModule,callback){if(debouncer instanceof Debouncer){debouncer.cancel()}else{debouncer=new Debouncer}debouncer.setConfig(asyncModule,callback);return debouncer}}Polymer.Debouncer=Debouncer})();(function(){"use strict";let HAS_NATIVE_TA=typeof document.head.style.touchAction==="string";let GESTURE_KEY="__polymerGestures";let HANDLED_OBJ="__polymerGesturesHandled";let TOUCH_ACTION="__polymerGesturesTouchAction";let TAP_DISTANCE=25;let TRACK_DISTANCE=5;let TRACK_LENGTH=2;let MOUSE_TIMEOUT=2500;let MOUSE_EVENTS=["mousedown","mousemove","mouseup","click"];let MOUSE_WHICH_TO_BUTTONS=[0,1,4,2];let MOUSE_HAS_BUTTONS=function(){try{return new MouseEvent("test",{buttons:1}).buttons===1}catch(e){return false}}();function isMouseEvent(name){return MOUSE_EVENTS.indexOf(name)>-1}let SUPPORTS_PASSIVE=false;(function(){try{let opts=Object.defineProperty({},"passive",{get(){SUPPORTS_PASSIVE=true}});window.addEventListener("test",null,opts);window.removeEventListener("test",null,opts)}catch(e){}})();function PASSIVE_TOUCH(eventName){if(isMouseEvent(eventName)||eventName==="touchend"){return}if(HAS_NATIVE_TA&&SUPPORTS_PASSIVE&&Polymer.passiveTouchGestures){return{passive:true}}else{return}}let IS_TOUCH_ONLY=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);let GestureRecognizer=function(){};GestureRecognizer.prototype.reset;GestureRecognizer.prototype.mousedown;GestureRecognizer.prototype.mousemove;GestureRecognizer.prototype.mouseup;GestureRecognizer.prototype.touchstart;GestureRecognizer.prototype.touchmove;GestureRecognizer.prototype.touchend;GestureRecognizer.prototype.click;const clickedLabels=[];const labellable={button:true,input:true,keygen:true,meter:true,output:true,textarea:true,progress:true,select:true};const canBeDisabled={button:true,command:true,fieldset:true,input:true,keygen:true,optgroup:true,option:true,select:true,textarea:true};function canBeLabelled(el){return labellable[el.localName]||false}function matchingLabels(el){let labels=Array.from(el.labels||[]);if(!labels.length){labels=[];let root=el.getRootNode();if(el.id){let matching=root.querySelectorAll(`label[for = ${el.id}]`);for(let i=0;i<matching.length;i++){labels.push(matching[i])}}}return labels}let mouseCanceller=function(mouseEvent){let sc=mouseEvent.sourceCapabilities;if(sc&&!sc.firesTouchEvents){return}mouseEvent[HANDLED_OBJ]={skip:true};if(mouseEvent.type==="click"){let clickFromLabel=false;let path=mouseEvent.composedPath&&mouseEvent.composedPath();if(path){for(let i=0;i<path.length;i++){if(path[i].nodeType===Node.ELEMENT_NODE){if(path[i].localName==="label"){clickedLabels.push(path[i])}else if(canBeLabelled(path[i])){let ownerLabels=matchingLabels(path[i]);for(let j=0;j<ownerLabels.length;j++){clickFromLabel=clickFromLabel||clickedLabels.indexOf(ownerLabels[j])>-1}}}if(path[i]===POINTERSTATE.mouse.target){return}}}if(clickFromLabel){return}mouseEvent.preventDefault();mouseEvent.stopPropagation()}};function setupTeardownMouseCanceller(setup){let events=IS_TOUCH_ONLY?["click"]:MOUSE_EVENTS;for(let i=0,en;i<events.length;i++){en=events[i];if(setup){clickedLabels.length=0;document.addEventListener(en,mouseCanceller,true)}else{document.removeEventListener(en,mouseCanceller,true)}}}function ignoreMouse(e){if(!POINTERSTATE.mouse.mouseIgnoreJob){setupTeardownMouseCanceller(true)}let unset=function(){setupTeardownMouseCanceller();POINTERSTATE.mouse.target=null;POINTERSTATE.mouse.mouseIgnoreJob=null};POINTERSTATE.mouse.target=e.composedPath()[0];POINTERSTATE.mouse.mouseIgnoreJob=Polymer.Debouncer.debounce(POINTERSTATE.mouse.mouseIgnoreJob,Polymer.Async.timeOut.after(MOUSE_TIMEOUT),unset)}function hasLeftMouseButton(ev){let type=ev.type;if(!isMouseEvent(type)){return false}if(type==="mousemove"){let buttons=ev.buttons===undefined?1:ev.buttons;if(ev instanceof window.MouseEvent&&!MOUSE_HAS_BUTTONS){buttons=MOUSE_WHICH_TO_BUTTONS[ev.which]||0}return Boolean(buttons&1)}else{let button=ev.button===undefined?0:ev.button;return button===0}}function isSyntheticClick(ev){if(ev.type==="click"){if(ev.detail===0){return true}let t=Gestures._findOriginalTarget(ev);if(!t.nodeType||t.nodeType!==Node.ELEMENT_NODE){return true}let bcr=t.getBoundingClientRect();let x=ev.pageX,y=ev.pageY;return!(x>=bcr.left&&x<=bcr.right&&(y>=bcr.top&&y<=bcr.bottom))}return false}let POINTERSTATE={mouse:{target:null,mouseIgnoreJob:null},touch:{x:0,y:0,id:-1,scrollDecided:false}};function firstTouchAction(ev){let ta="auto";let path=ev.composedPath&&ev.composedPath();if(path){for(let i=0,n;i<path.length;i++){n=path[i];if(n[TOUCH_ACTION]){ta=n[TOUCH_ACTION];break}}}return ta}function trackDocument(stateObj,movefn,upfn){stateObj.movefn=movefn;stateObj.upfn=upfn;document.addEventListener("mousemove",movefn);document.addEventListener("mouseup",upfn)}function untrackDocument(stateObj){document.removeEventListener("mousemove",stateObj.movefn);document.removeEventListener("mouseup",stateObj.upfn);stateObj.movefn=null;stateObj.upfn=null}document.addEventListener("touchend",ignoreMouse,SUPPORTS_PASSIVE?{passive:true}:false);const Gestures={gestures:{},recognizers:[],deepTargetFind:function(x,y){let node=document.elementFromPoint(x,y);let next=node;while(next&&next.shadowRoot&&!window.ShadyDOM){let oldNext=next;next=next.shadowRoot.elementFromPoint(x,y);if(oldNext===next){break}if(next){node=next}}return node},_findOriginalTarget:function(ev){if(ev.composedPath){const targets=ev.composedPath();return targets.length>0?targets[0]:ev.target}return ev.target},_handleNative:function(ev){let handled;let type=ev.type;let node=ev.currentTarget;let gobj=node[GESTURE_KEY];if(!gobj){return}let gs=gobj[type];if(!gs){return}if(!ev[HANDLED_OBJ]){ev[HANDLED_OBJ]={};if(type.slice(0,5)==="touch"){ev=ev;let t=ev.changedTouches[0];if(type==="touchstart"){if(ev.touches.length===1){POINTERSTATE.touch.id=t.identifier}}if(POINTERSTATE.touch.id!==t.identifier){return}if(!HAS_NATIVE_TA){if(type==="touchstart"||type==="touchmove"){Gestures._handleTouchAction(ev)}}}}handled=ev[HANDLED_OBJ];if(handled.skip){return}for(let i=0,r;i<Gestures.recognizers.length;i++){r=Gestures.recognizers[i];if(gs[r.name]&&!handled[r.name]){if(r.flow&&r.flow.start.indexOf(ev.type)>-1&&r.reset){r.reset()}}}for(let i=0,r;i<Gestures.recognizers.length;i++){r=Gestures.recognizers[i];if(gs[r.name]&&!handled[r.name]){handled[r.name]=true;r[type](ev)}}},_handleTouchAction:function(ev){let t=ev.changedTouches[0];let type=ev.type;if(type==="touchstart"){POINTERSTATE.touch.x=t.clientX;POINTERSTATE.touch.y=t.clientY;POINTERSTATE.touch.scrollDecided=false}else if(type==="touchmove"){if(POINTERSTATE.touch.scrollDecided){return}POINTERSTATE.touch.scrollDecided=true;let ta=firstTouchAction(ev);let prevent=false;let dx=Math.abs(POINTERSTATE.touch.x-t.clientX);let dy=Math.abs(POINTERSTATE.touch.y-t.clientY);if(!ev.cancelable){}else if(ta==="none"){prevent=true}else if(ta==="pan-x"){prevent=dy>dx}else if(ta==="pan-y"){prevent=dx>dy}if(prevent){ev.preventDefault()}else{Gestures.prevent("track")}}},addListener:function(node,evType,handler){if(this.gestures[evType]){this._add(node,evType,handler);return true}return false},removeListener:function(node,evType,handler){if(this.gestures[evType]){this._remove(node,evType,handler);return true}return false},_add:function(node,evType,handler){let recognizer=this.gestures[evType];let deps=recognizer.deps;let name=recognizer.name;let gobj=node[GESTURE_KEY];if(!gobj){node[GESTURE_KEY]=gobj={}}for(let i=0,dep,gd;i<deps.length;i++){dep=deps[i];if(IS_TOUCH_ONLY&&isMouseEvent(dep)&&dep!=="click"){continue}gd=gobj[dep];if(!gd){gobj[dep]=gd={_count:0}}if(gd._count===0){node.addEventListener(dep,this._handleNative,PASSIVE_TOUCH(dep))}gd[name]=(gd[name]||0)+1;gd._count=(gd._count||0)+1}node.addEventListener(evType,handler);if(recognizer.touchAction){this.setTouchAction(node,recognizer.touchAction)}},_remove:function(node,evType,handler){let recognizer=this.gestures[evType];let deps=recognizer.deps;let name=recognizer.name;let gobj=node[GESTURE_KEY];if(gobj){for(let i=0,dep,gd;i<deps.length;i++){dep=deps[i];gd=gobj[dep];if(gd&&gd[name]){gd[name]=(gd[name]||1)-1;gd._count=(gd._count||1)-1;if(gd._count===0){node.removeEventListener(dep,this._handleNative,PASSIVE_TOUCH(dep))}}}}node.removeEventListener(evType,handler)},register:function(recog){this.recognizers.push(recog);for(let i=0;i<recog.emits.length;i++){this.gestures[recog.emits[i]]=recog}},_findRecognizerByEvent:function(evName){for(let i=0,r;i<this.recognizers.length;i++){r=this.recognizers[i];for(let j=0,n;j<r.emits.length;j++){n=r.emits[j];if(n===evName){return r}}}return null},setTouchAction:function(node,value){if(HAS_NATIVE_TA){Polymer.Async.microTask.run(()=>{node.style.touchAction=value})}node[TOUCH_ACTION]=value},_fire:function(target,type,detail){let ev=new Event(type,{bubbles:true,cancelable:true,composed:true});ev.detail=detail;target.dispatchEvent(ev);if(ev.defaultPrevented){let preventer=detail.preventer||detail.sourceEvent;if(preventer&&preventer.preventDefault){preventer.preventDefault()}}},prevent:function(evName){let recognizer=this._findRecognizerByEvent(evName);if(recognizer.info){recognizer.info.prevent=true}},resetMouseCanceller:function(){if(POINTERSTATE.mouse.mouseIgnoreJob){POINTERSTATE.mouse.mouseIgnoreJob.flush()}}};Gestures.register({name:"downup",deps:["mousedown","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["down","up"],info:{movefn:null,upfn:null},reset:function(){untrackDocument(this.info)},mousedown:function(e){if(!hasLeftMouseButton(e)){return}let t=Gestures._findOriginalTarget(e);let self=this;let movefn=function movefn(e){if(!hasLeftMouseButton(e)){self._fire("up",t,e);untrackDocument(self.info)}};let upfn=function upfn(e){if(hasLeftMouseButton(e)){self._fire("up",t,e)}untrackDocument(self.info)};trackDocument(this.info,movefn,upfn);this._fire("down",t,e)},touchstart:function(e){this._fire("down",Gestures._findOriginalTarget(e),e.changedTouches[0],e)},touchend:function(e){this._fire("up",Gestures._findOriginalTarget(e),e.changedTouches[0],e)},_fire:function(type,target,event,preventer){Gestures._fire(target,type,{x:event.clientX,y:event.clientY,sourceEvent:event,preventer:preventer,prevent:function(e){return Gestures.prevent(e)}})}});Gestures.register({name:"track",touchAction:"none",deps:["mousedown","touchstart","touchmove","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["track"],info:{x:0,y:0,state:"start",started:false,moves:[],addMove:function(move){if(this.moves.length>TRACK_LENGTH){this.moves.shift()}this.moves.push(move)},movefn:null,upfn:null,prevent:false},reset:function(){this.info.state="start";this.info.started=false;this.info.moves=[];this.info.x=0;this.info.y=0;this.info.prevent=false;untrackDocument(this.info)},hasMovedEnough:function(x,y){if(this.info.prevent){return false}if(this.info.started){return true}let dx=Math.abs(this.info.x-x);let dy=Math.abs(this.info.y-y);return dx>=TRACK_DISTANCE||dy>=TRACK_DISTANCE},mousedown:function(e){if(!hasLeftMouseButton(e)){return}let t=Gestures._findOriginalTarget(e);let self=this;let movefn=function movefn(e){let x=e.clientX,y=e.clientY;if(self.hasMovedEnough(x,y)){self.info.state=self.info.started?e.type==="mouseup"?"end":"track":"start";if(self.info.state==="start"){Gestures.prevent("tap")}self.info.addMove({x:x,y:y});if(!hasLeftMouseButton(e)){self.info.state="end";untrackDocument(self.info)}self._fire(t,e);self.info.started=true}};let upfn=function upfn(e){if(self.info.started){movefn(e)}untrackDocument(self.info)};trackDocument(this.info,movefn,upfn);this.info.x=e.clientX;this.info.y=e.clientY},touchstart:function(e){let ct=e.changedTouches[0];this.info.x=ct.clientX;this.info.y=ct.clientY},touchmove:function(e){let t=Gestures._findOriginalTarget(e);let ct=e.changedTouches[0];let x=ct.clientX,y=ct.clientY;if(this.hasMovedEnough(x,y)){if(this.info.state==="start"){Gestures.prevent("tap")}this.info.addMove({x:x,y:y});this._fire(t,ct);this.info.state="track";this.info.started=true}},touchend:function(e){let t=Gestures._findOriginalTarget(e);let ct=e.changedTouches[0];if(this.info.started){this.info.state="end";this.info.addMove({x:ct.clientX,y:ct.clientY});this._fire(t,ct,e)}},_fire:function(target,touch){let secondlast=this.info.moves[this.info.moves.length-2];let lastmove=this.info.moves[this.info.moves.length-1];let dx=lastmove.x-this.info.x;let dy=lastmove.y-this.info.y;let ddx,ddy=0;if(secondlast){ddx=lastmove.x-secondlast.x;ddy=lastmove.y-secondlast.y}Gestures._fire(target,"track",{state:this.info.state,x:touch.clientX,y:touch.clientY,dx:dx,dy:dy,ddx:ddx,ddy:ddy,sourceEvent:touch,hover:function(){return Gestures.deepTargetFind(touch.clientX,touch.clientY)}})}});Gestures.register({name:"tap",deps:["mousedown","click","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["click","touchend"]},emits:["tap"],info:{x:NaN,y:NaN,prevent:false},reset:function(){this.info.x=NaN;this.info.y=NaN;this.info.prevent=false},save:function(e){this.info.x=e.clientX;this.info.y=e.clientY},mousedown:function(e){if(hasLeftMouseButton(e)){this.save(e)}},click:function(e){if(hasLeftMouseButton(e)){this.forward(e)}},touchstart:function(e){this.save(e.changedTouches[0],e)},touchend:function(e){this.forward(e.changedTouches[0],e)},forward:function(e,preventer){let dx=Math.abs(e.clientX-this.info.x);let dy=Math.abs(e.clientY-this.info.y);let t=Gestures._findOriginalTarget(preventer||e);if(!t||canBeDisabled[t.localName]&&t.hasAttribute("disabled")){return}if(isNaN(dx)||isNaN(dy)||dx<=TAP_DISTANCE&&dy<=TAP_DISTANCE||isSyntheticClick(e)){if(!this.info.prevent){Gestures._fire(t,"tap",{x:e.clientX,y:e.clientY,sourceEvent:e,preventer:preventer})}}}});Gestures.findOriginalTarget=Gestures._findOriginalTarget;Gestures.add=Gestures.addListener;Gestures.remove=Gestures.removeListener;Polymer.Gestures=Gestures})();(function(){"use strict";const gestures=Polymer.Gestures;Polymer.GestureEventListeners=Polymer.dedupingMixin(superClass=>{class GestureEventListeners extends superClass{_addEventListenerToNode(node,eventName,handler){if(!gestures.addListener(node,eventName,handler)){super._addEventListenerToNode(node,eventName,handler)}}_removeEventListenerFromNode(node,eventName,handler){if(!gestures.removeListener(node,eventName,handler)){super._removeEventListenerFromNode(node,eventName,handler)}}}return GestureEventListeners})})();(function(){"use strict";function whenImportsReady(cb){if(window.HTMLImports){HTMLImports.whenReady(cb)}else{cb()}}Polymer.importHref=function(href,onload,onerror,optAsync){let link=document.head.querySelector('link[href="'+href+'"][import-href]');if(!link){link=document.createElement("link");link.rel="import";link.href=href;link.setAttribute("import-href","")}if(optAsync){link.setAttribute("async","")}let cleanup=function(){link.removeEventListener("load",loadListener);link.removeEventListener("error",errorListener)};let loadListener=function(event){cleanup();link.__dynamicImportLoaded=true;if(onload){whenImportsReady(()=>{onload(event)})}};let errorListener=function(event){cleanup();if(link.parentNode){link.parentNode.removeChild(link)}if(onerror){whenImportsReady(()=>{onerror(event)})}};link.addEventListener("load",loadListener);link.addEventListener("error",errorListener);if(link.parentNode==null){document.head.appendChild(link)}else if(link.__dynamicImportLoaded){link.dispatchEvent(new Event("load"))}return link}})();(function(){"use strict";let scheduled=false;let beforeRenderQueue=[];let afterRenderQueue=[];function schedule(){scheduled=true;requestAnimationFrame(function(){scheduled=false;flushQueue(beforeRenderQueue);setTimeout(function(){runQueue(afterRenderQueue)})})}function flushQueue(queue){while(queue.length){callMethod(queue.shift())}}function runQueue(queue){for(let i=0,l=queue.length;i<l;i++){callMethod(queue.shift())}}function callMethod(info){const context=info[0];const callback=info[1];const args=info[2];try{callback.apply(context,args)}catch(e){setTimeout(()=>{throw e})}}function flush(){while(beforeRenderQueue.length||afterRenderQueue.length){flushQueue(beforeRenderQueue);flushQueue(afterRenderQueue)}scheduled=false}Polymer.RenderStatus={beforeNextRender:function(context,callback,args){if(!scheduled){schedule()}beforeRenderQueue.push([context,callback,args])},afterNextRender:function(context,callback,args){if(!scheduled){schedule()}afterRenderQueue.push([context,callback,args])},flush:flush}})();(function(){"use strict";function resolve(){document.body.removeAttribute("unresolved")}if(window.WebComponents){window.addEventListener("WebComponentsReady",resolve)}else{if(document.readyState==="interactive"||document.readyState==="complete"){resolve()}else{window.addEventListener("DOMContentLoaded",resolve)}}})();(function(){"use strict";function newSplice(index,removed,addedCount){return{index:index,removed:removed,addedCount:addedCount}}const EDIT_LEAVE=0;const EDIT_UPDATE=1;const EDIT_ADD=2;const EDIT_DELETE=3;function calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd){let rowCount=oldEnd-oldStart+1;let columnCount=currentEnd-currentStart+1;let distances=new Array(rowCount);for(let i=0;i<rowCount;i++){distances[i]=new Array(columnCount);distances[i][0]=i}for(let j=0;j<columnCount;j++)distances[0][j]=j;for(let i=1;i<rowCount;i++){for(let j=1;j<columnCount;j++){if(equals(current[currentStart+j-1],old[oldStart+i-1]))distances[i][j]=distances[i-1][j-1];else{let north=distances[i-1][j]+1;let west=distances[i][j-1]+1;distances[i][j]=north<west?north:west}}}return distances}function spliceOperationsFromEditDistances(distances){let i=distances.length-1;let j=distances[0].length-1;let current=distances[i][j];let edits=[];while(i>0||j>0){if(i==0){edits.push(EDIT_ADD);j--;continue}if(j==0){edits.push(EDIT_DELETE);i--;continue}let northWest=distances[i-1][j-1];let west=distances[i-1][j];let north=distances[i][j-1];let min;if(west<north)min=west<northWest?west:northWest;else min=north<northWest?north:northWest;if(min==northWest){if(northWest==current){edits.push(EDIT_LEAVE)}else{edits.push(EDIT_UPDATE);current=northWest}i--;j--}else if(min==west){edits.push(EDIT_DELETE);i--;current=west}else{edits.push(EDIT_ADD);j--;current=north}}edits.reverse();return edits}function calcSplices(current,currentStart,currentEnd,old,oldStart,oldEnd){let prefixCount=0;let suffixCount=0;let splice;let minLength=Math.min(currentEnd-currentStart,oldEnd-oldStart);if(currentStart==0&&oldStart==0)prefixCount=sharedPrefix(current,old,minLength);if(currentEnd==current.length&&oldEnd==old.length)suffixCount=sharedSuffix(current,old,minLength-prefixCount);currentStart+=prefixCount;oldStart+=prefixCount;currentEnd-=suffixCount;oldEnd-=suffixCount;if(currentEnd-currentStart==0&&oldEnd-oldStart==0)return[];if(currentStart==currentEnd){splice=newSplice(currentStart,[],0);while(oldStart<oldEnd)splice.removed.push(old[oldStart++]);return[splice]}else if(oldStart==oldEnd)return[newSplice(currentStart,[],currentEnd-currentStart)];let ops=spliceOperationsFromEditDistances(calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd));splice=undefined;let splices=[];let index=currentStart;let oldIndex=oldStart;for(let i=0;i<ops.length;i++){switch(ops[i]){case EDIT_LEAVE:if(splice){splices.push(splice);splice=undefined}index++;oldIndex++;break;case EDIT_UPDATE:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;splice.removed.push(old[oldIndex]);oldIndex++;break;case EDIT_ADD:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;break;case EDIT_DELETE:if(!splice)splice=newSplice(index,[],0);splice.removed.push(old[oldIndex]);oldIndex++;break}}if(splice){splices.push(splice)}return splices}function sharedPrefix(current,old,searchLength){for(let i=0;i<searchLength;i++)if(!equals(current[i],old[i]))return i;return searchLength}function sharedSuffix(current,old,searchLength){let index1=current.length;let index2=old.length;let count=0;while(count<searchLength&&equals(current[--index1],old[--index2]))count++;return count}function calculateSplices(current,previous){return calcSplices(current,0,current.length,previous,0,previous.length)}function equals(currentValue,previousValue){return currentValue===previousValue}Polymer.ArraySplice={calculateSplices:calculateSplices}})();(function(){"use strict";function isSlot(node){return node.localName==="slot"}class FlattenedNodesObserver{static getFlattenedNodes(node){if(isSlot(node)){node=node;return node.assignedNodes({flatten:true})}else{return Array.from(node.childNodes).map(node=>{if(isSlot(node)){node=node;return node.assignedNodes({flatten:true})}else{return[node]}}).reduce((a,b)=>a.concat(b),[])}}constructor(target,callback){this._shadyChildrenObserver=null;this._nativeChildrenObserver=null;this._connected=false;this._target=target;this.callback=callback;this._effectiveNodes=[];this._observer=null;this._scheduled=false;this._boundSchedule=(()=>{this._schedule()});this.connect();this._schedule()}connect(){if(isSlot(this._target)){this._listenSlots([this._target])}else if(this._target.children){this._listenSlots(this._target.children);if(window.ShadyDOM){this._shadyChildrenObserver=ShadyDOM.observeChildren(this._target,mutations=>{this._processMutations(mutations)})}else{this._nativeChildrenObserver=new MutationObserver(mutations=>{this._processMutations(mutations)});this._nativeChildrenObserver.observe(this._target,{childList:true})}}this._connected=true}disconnect(){if(isSlot(this._target)){this._unlistenSlots([this._target])}else if(this._target.children){this._unlistenSlots(this._target.children);if(window.ShadyDOM&&this._shadyChildrenObserver){ShadyDOM.unobserveChildren(this._shadyChildrenObserver);this._shadyChildrenObserver=null}else if(this._nativeChildrenObserver){this._nativeChildrenObserver.disconnect();this._nativeChildrenObserver=null}}this._connected=false}_schedule(){if(!this._scheduled){this._scheduled=true;Polymer.Async.microTask.run(()=>this.flush())}}_processMutations(mutations){this._processSlotMutations(mutations);this.flush()}_processSlotMutations(mutations){if(mutations){for(let i=0;i<mutations.length;i++){let mutation=mutations[i];if(mutation.addedNodes){this._listenSlots(mutation.addedNodes)}if(mutation.removedNodes){this._unlistenSlots(mutation.removedNodes)}}}}flush(){if(!this._connected){return false}if(window.ShadyDOM){ShadyDOM.flush()}if(this._nativeChildrenObserver){this._processSlotMutations(this._nativeChildrenObserver.takeRecords())}else if(this._shadyChildrenObserver){this._processSlotMutations(this._shadyChildrenObserver.takeRecords())}this._scheduled=false;let info={target:this._target,addedNodes:[],removedNodes:[]};let newNodes=this.constructor.getFlattenedNodes(this._target);let splices=Polymer.ArraySplice.calculateSplices(newNodes,this._effectiveNodes);for(let i=0,s;i<splices.length&&(s=splices[i]);i++){for(let j=0,n;j<s.removed.length&&(n=s.removed[j]);j++){info.removedNodes.push(n)}}for(let i=0,s;i<splices.length&&(s=splices[i]);i++){for(let j=s.index;j<s.index+s.addedCount;j++){info.addedNodes.push(newNodes[j])}}this._effectiveNodes=newNodes;let didFlush=false;if(info.addedNodes.length||info.removedNodes.length){didFlush=true;this.callback.call(this._target,info)}return didFlush}_listenSlots(nodeList){for(let i=0;i<nodeList.length;i++){let n=nodeList[i];if(isSlot(n)){n.addEventListener("slotchange",this._boundSchedule)}}}_unlistenSlots(nodeList){for(let i=0;i<nodeList.length;i++){let n=nodeList[i];if(isSlot(n)){n.removeEventListener("slotchange",this._boundSchedule)}}}}Polymer.FlattenedNodesObserver=FlattenedNodesObserver})();(function(){"use strict";let debouncerQueue=[];Polymer.enqueueDebouncer=function(debouncer){debouncerQueue.push(debouncer)};function flushDebouncers(){const didFlush=Boolean(debouncerQueue.length);while(debouncerQueue.length){try{debouncerQueue.shift().flush()}catch(e){setTimeout(()=>{throw e})}}return didFlush}Polymer.flush=function(){let shadyDOM,debouncers;do{shadyDOM=window.ShadyDOM&&ShadyDOM.flush();if(window.ShadyCSS&&window.ShadyCSS.ScopingShim){window.ShadyCSS.ScopingShim.flush()}debouncers=flushDebouncers()}while(shadyDOM||debouncers)}})();(function(){"use strict";const p=Element.prototype;const normalizedMatchesSelector=p.matches||p.matchesSelector||p.mozMatchesSelector||p.msMatchesSelector||p.oMatchesSelector||p.webkitMatchesSelector;const matchesSelector=function(node,selector){return normalizedMatchesSelector.call(node,selector)};class DomApi{constructor(node){this.node=node}observeNodes(callback){return new Polymer.FlattenedNodesObserver(this.node,callback)}unobserveNodes(observerHandle){observerHandle.disconnect()}notifyObserver(){}deepContains(node){if(this.node.contains(node)){return true}let n=node;let doc=node.ownerDocument;while(n&&n!==doc&&n!==this.node){n=n.parentNode||n.host}return n===this.node}getOwnerRoot(){return this.node.getRootNode()}getDistributedNodes(){return this.node.localName==="slot"?this.node.assignedNodes({flatten:true}):[]}getDestinationInsertionPoints(){let ip$=[];let n=this.node.assignedSlot;while(n){ip$.push(n);n=n.assignedSlot}return ip$}importNode(node,deep){let doc=this.node instanceof Document?this.node:this.node.ownerDocument;return doc.importNode(node,deep)}getEffectiveChildNodes(){return Polymer.FlattenedNodesObserver.getFlattenedNodes(this.node)}queryDistributedElements(selector){let c$=this.getEffectiveChildNodes();let list=[];for(let i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.nodeType===Node.ELEMENT_NODE&&matchesSelector(c,selector)){list.push(c)}}return list}get activeElement(){let node=this.node;return node._activeElement!==undefined?node._activeElement:node.activeElement}}function forwardMethods(proto,methods){for(let i=0;i<methods.length;i++){let method=methods[i];proto[method]=function(){return this.node[method].apply(this.node,arguments)}}}function forwardReadOnlyProperties(proto,properties){for(let i=0;i<properties.length;i++){let name=properties[i];Object.defineProperty(proto,name,{get:function(){const domApi=this;return domApi.node[name]},configurable:true})}}function forwardProperties(proto,properties){for(let i=0;i<properties.length;i++){let name=properties[i];Object.defineProperty(proto,name,{get:function(){const domApi=this;return domApi.node[name]},set:function(value){this.node[name]=value},configurable:true})}}forwardMethods(DomApi.prototype,["cloneNode","appendChild","insertBefore","removeChild","replaceChild","setAttribute","removeAttribute","querySelector","querySelectorAll"]);forwardReadOnlyProperties(DomApi.prototype,["parentNode","firstChild","lastChild","nextSibling","previousSibling","firstElementChild","lastElementChild","nextElementSibling","previousElementSibling","childNodes","children","classList"]);forwardProperties(DomApi.prototype,["textContent","innerHTML"]);class EventApi{constructor(event){this.event=event}get rootTarget(){return this.event.composedPath()[0]}get localTarget(){return this.event.target}get path(){return this.event.composedPath()}}Polymer.DomApi=DomApi;Polymer.DomApi.prototype.cloneNode;Polymer.DomApi.prototype.appendChild;Polymer.DomApi.prototype.insertBefore;Polymer.DomApi.prototype.removeChild;Polymer.DomApi.prototype.replaceChild;Polymer.DomApi.prototype.setAttribute;Polymer.DomApi.prototype.removeAttribute;Polymer.DomApi.prototype.querySelector;Polymer.DomApi.prototype.querySelectorAll;Polymer.dom=function(obj){obj=obj||document;if(!obj.__domApi){let helper;if(obj instanceof Event){helper=new EventApi(obj)}else{helper=new DomApi(obj)}obj.__domApi=helper}return obj.__domApi};Polymer.dom.matchesSelector=matchesSelector;Polymer.dom.flush=Polymer.flush;Polymer.dom.addDebouncer=Polymer.enqueueDebouncer})();(function(){"use strict";let styleInterface=window.ShadyCSS;Polymer.LegacyElementMixin=Polymer.dedupingMixin(base=>{const legacyElementBase=Polymer.GestureEventListeners(Polymer.ElementMixin(base));const DIRECTION_MAP={x:"pan-x",y:"pan-y",none:"none",all:"auto"};class LegacyElement extends legacyElementBase{constructor(){super();this.isAttached;this.__boundListeners;this._debouncers}static get importMeta(){return this.prototype.importMeta}created(){}connectedCallback(){super.connectedCallback();this.isAttached=true;this.attached()}attached(){}disconnectedCallback(){super.disconnectedCallback();this.isAttached=false;this.detached()}detached(){}attributeChangedCallback(name,old,value,namespace){if(old!==value){super.attributeChangedCallback(name,old,value,namespace);this.attributeChanged(name,old,value)}}attributeChanged(name,old,value){}_initializeProperties(){let proto=Object.getPrototypeOf(this);if(!proto.hasOwnProperty("__hasRegisterFinished")){this._registered();proto.__hasRegisterFinished=true}super._initializeProperties();this.root=this;this.created();this._applyListeners()}_registered(){}ready(){this._ensureAttributes();super.ready()}_ensureAttributes(){}_applyListeners(){}serialize(value){return this._serializeValue(value)}deserialize(value,type){return this._deserializeValue(value,type)}reflectPropertyToAttribute(property,attribute,value){this._propertyToAttribute(property,attribute,value)}serializeValueToAttribute(value,attribute,node){this._valueToNodeAttribute(node||this,value,attribute)}extend(prototype,api){if(!(prototype&&api)){return prototype||api}let n$=Object.getOwnPropertyNames(api);for(let i=0,n;i<n$.length&&(n=n$[i]);i++){let pd=Object.getOwnPropertyDescriptor(api,n);if(pd){Object.defineProperty(prototype,n,pd)}}return prototype}mixin(target,source){for(let i in source){target[i]=source[i]}return target}chainObject(object,prototype){if(object&&prototype&&object!==prototype){object.__proto__=prototype}return object}instanceTemplate(template){let content=this.constructor._contentForTemplate(template);let dom=document.importNode(content,true);return dom}fire(type,detail,options){options=options||{};detail=detail===null||detail===undefined?{}:detail;let event=new Event(type,{bubbles:options.bubbles===undefined?true:options.bubbles,cancelable:Boolean(options.cancelable),composed:options.composed===undefined?true:options.composed});event.detail=detail;let node=options.node||this;node.dispatchEvent(event);return event}listen(node,eventName,methodName){node=node||this;let hbl=this.__boundListeners||(this.__boundListeners=new WeakMap);let bl=hbl.get(node);if(!bl){bl={};hbl.set(node,bl)}let key=eventName+methodName;if(!bl[key]){bl[key]=this._addMethodEventListenerToNode(node,eventName,methodName,this)}}unlisten(node,eventName,methodName){node=node||this;let bl=this.__boundListeners&&this.__boundListeners.get(node);let key=eventName+methodName;let handler=bl&&bl[key];if(handler){this._removeEventListenerFromNode(node,eventName,handler);bl[key]=null}}setScrollDirection(direction,node){Polymer.Gestures.setTouchAction(node||this,DIRECTION_MAP[direction]||"auto")}$$(slctr){return this.root.querySelector(slctr)}get domHost(){let root=this.getRootNode();return root instanceof DocumentFragment?root.host:root}distributeContent(){if(window.ShadyDOM&&this.shadowRoot){ShadyDOM.flush()}}getEffectiveChildNodes(){const thisEl=this;const domApi=Polymer.dom(thisEl);return domApi.getEffectiveChildNodes()}queryDistributedElements(selector){const thisEl=this;const domApi=Polymer.dom(thisEl);return domApi.queryDistributedElements(selector)}getEffectiveChildren(){let list=this.getEffectiveChildNodes();return list.filter(function(n){return n.nodeType===Node.ELEMENT_NODE})}getEffectiveTextContent(){let cn=this.getEffectiveChildNodes();let tc=[];for(let i=0,c;c=cn[i];i++){if(c.nodeType!==Node.COMMENT_NODE){tc.push(c.textContent)}}return tc.join("")}queryEffectiveChildren(selector){let e$=this.queryDistributedElements(selector);return e$&&e$[0]}queryAllEffectiveChildren(selector){return this.queryDistributedElements(selector)}getContentChildNodes(slctr){let content=this.root.querySelector(slctr||"slot");return content?Polymer.dom(content).getDistributedNodes():[]}getContentChildren(slctr){let children=this.getContentChildNodes(slctr).filter(function(n){return n.nodeType===Node.ELEMENT_NODE});return children}isLightDescendant(node){const thisNode=this;return thisNode!==node&&thisNode.contains(node)&&thisNode.getRootNode()===node.getRootNode()}isLocalDescendant(node){return this.root===node.getRootNode()}scopeSubtree(container,shouldObserve){}getComputedStyleValue(property){return styleInterface.getComputedStyleValue(this,property)}debounce(jobName,callback,wait){this._debouncers=this._debouncers||{};return this._debouncers[jobName]=Polymer.Debouncer.debounce(this._debouncers[jobName],wait>0?Polymer.Async.timeOut.after(wait):Polymer.Async.microTask,callback.bind(this))}isDebouncerActive(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];return!!(debouncer&&debouncer.isActive())}flushDebouncer(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];if(debouncer){debouncer.flush()}}cancelDebouncer(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];if(debouncer){debouncer.cancel()}}async(callback,waitTime){return waitTime>0?Polymer.Async.timeOut.run(callback.bind(this),waitTime):~Polymer.Async.microTask.run(callback.bind(this))}cancelAsync(handle){handle<0?Polymer.Async.microTask.cancel(~handle):Polymer.Async.timeOut.cancel(handle)}create(tag,props){let elt=document.createElement(tag);if(props){if(elt.setProperties){elt.setProperties(props)}else{for(let n in props){elt[n]=props[n]}}}return elt}importHref(href,onload,onerror,optAsync){let loadFn=onload?onload.bind(this):null;let errorFn=onerror?onerror.bind(this):null;return Polymer.importHref(href,loadFn,errorFn,optAsync)}elementMatches(selector,node){return Polymer.dom.matchesSelector(node||this,selector)}toggleAttribute(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.hasAttribute(name)}if(bool){node.setAttribute(name,"")}else{node.removeAttribute(name)}}toggleClass(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.classList.contains(name)}if(bool){node.classList.add(name)}else{node.classList.remove(name)}}transform(transformText,node){node=node||this;node.style.webkitTransform=transformText;node.style.transform=transformText}translate3d(x,y,z,node){node=node||this;this.transform("translate3d("+x+","+y+","+z+")",node)}arrayDelete(arrayOrPath,item){let index;if(Array.isArray(arrayOrPath)){index=arrayOrPath.indexOf(item);if(index>=0){return arrayOrPath.splice(index,1)}}else{let arr=Polymer.Path.get(this,arrayOrPath);index=arr.indexOf(item);if(index>=0){return this.splice(arrayOrPath,index,1)}}return null}_logger(level,args){if(Array.isArray(args)&&args.length===1&&Array.isArray(args[0])){args=args[0]}switch(level){case"log":case"warn":case"error":console[level](...args)}}_log(...args){this._logger("log",args)}_warn(...args){this._logger("warn",args)}_error(...args){this._logger("error",args)}_logf(methodName,...args){return["[%s::%s]",this.is,methodName,...args]}}LegacyElement.prototype.is="";return LegacyElement})})();(function(){"use strict";const lifecycleProps={attached:true,detached:true,ready:true,created:true,beforeRegister:true,registered:true,attributeChanged:true,listeners:true,hostAttributes:true};const excludeOnInfo={attached:true,detached:true,ready:true,created:true,beforeRegister:true,registered:true,attributeChanged:true,behaviors:true,_noAccessors:true};const excludeOnBehaviors=Object.assign({listeners:true,hostAttributes:true,properties:true,observers:true},excludeOnInfo);function copyProperties(source,target,excludeProps){const noAccessors=source._noAccessors;for(let p in source){if(!(p in excludeProps)){if(noAccessors){target[p]=source[p]}else{let pd=Object.getOwnPropertyDescriptor(source,p);if(pd){pd.configurable=true;Object.defineProperty(target,p,pd)}}}}}function mixinBehaviors(behaviors,klass){return GenerateClassFromInfo({},Polymer.LegacyElementMixin(klass),behaviors)}function applyBehaviors(proto,behaviors,lifecycle){for(let i=0;i<behaviors.length;i++){applyInfo(proto,behaviors[i],lifecycle,excludeOnBehaviors)}}function applyInfo(proto,info,lifecycle,excludeProps){copyProperties(info,proto,excludeProps);for(let p in lifecycleProps){if(info[p]){lifecycle[p]=lifecycle[p]||[];lifecycle[p].push(info[p])}}}function flattenBehaviors(behaviors,list,exclude){list=list||[];for(let i=behaviors.length-1;i>=0;i--){let b=behaviors[i];if(b){if(Array.isArray(b)){flattenBehaviors(b,list)}else{if(list.indexOf(b)<0&&(!exclude||exclude.indexOf(b)<0)){list.unshift(b)}}}else{console.warn("behavior is null, check for missing or 404 import")}}return list}function GenerateClassFromInfo(info,Base,behaviors){let behaviorList;const lifecycle={};class PolymerGenerated extends Base{static _finalizeClass(){if(!this.hasOwnProperty(window.JSCompiler_renameProperty("generatedFrom",this))){super._finalizeClass()}else{if(behaviorList){for(let i=0,b;i<behaviorList.length;i++){b=behaviorList[i];if(b.properties){this.createProperties(b.properties)}if(b.observers){this.createObservers(b.observers,b.properties)}}}if(info.properties){this.createProperties(info.properties)}if(info.observers){this.createObservers(info.observers,info.properties)}this._prepareTemplate()}}static get properties(){const properties={};if(behaviorList){for(let i=0;i<behaviorList.length;i++){Object.assign(properties,behaviorList[i].properties)}}Object.assign(properties,info.properties);return properties}static get observers(){let observers=[];if(behaviorList){for(let i=0,b;i<behaviorList.length;i++){b=behaviorList[i];if(b.observers){observers=observers.concat(b.observers)}}}if(info.observers){observers=observers.concat(info.observers)}return observers}created(){super.created();const list=lifecycle.created;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}_registered(){const generatedProto=PolymerGenerated.prototype;if(!generatedProto.hasOwnProperty("__hasRegisterFinished")){generatedProto.__hasRegisterFinished=true;super._registered();if(Polymer.legacyOptimizations){copyPropertiesToProto(generatedProto)}const proto=Object.getPrototypeOf(this);let list=lifecycle.beforeRegister;if(list){for(let i=0;i<list.length;i++){list[i].call(proto)}}list=lifecycle.registered;if(list){for(let i=0;i<list.length;i++){list[i].call(proto)}}}}_applyListeners(){super._applyListeners();const list=lifecycle.listeners;if(list){for(let i=0;i<list.length;i++){const listeners=list[i];if(listeners){for(let l in listeners){this._addMethodEventListenerToNode(this,l,listeners[l])}}}}}_ensureAttributes(){const list=lifecycle.hostAttributes;if(list){for(let i=list.length-1;i>=0;i--){const hostAttributes=list[i];for(let a in hostAttributes){this._ensureAttribute(a,hostAttributes[a])}}}super._ensureAttributes()}ready(){super.ready();let list=lifecycle.ready;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}attached(){super.attached();let list=lifecycle.attached;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}detached(){super.detached();let list=lifecycle.detached;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}attributeChanged(name,old,value){super.attributeChanged();let list=lifecycle.attributeChanged;if(list){for(let i=0;i<list.length;i++){list[i].call(this,name,old,value)}}}}if(behaviors){if(!Array.isArray(behaviors)){behaviors=[behaviors]}let superBehaviors=Base.prototype.behaviors;behaviorList=flattenBehaviors(behaviors,null,superBehaviors);PolymerGenerated.prototype.behaviors=superBehaviors?superBehaviors.concat(behaviors):behaviorList}const copyPropertiesToProto=proto=>{if(behaviorList){applyBehaviors(proto,behaviorList,lifecycle)}applyInfo(proto,info,lifecycle,excludeOnInfo)};if(!Polymer.legacyOptimizations){copyPropertiesToProto(PolymerGenerated.prototype)}PolymerGenerated.generatedFrom=info;return PolymerGenerated}Polymer.Class=function(info,mixin){if(!info){console.warn("Polymer.Class requires `info` argument")}let klass=mixin?mixin(Polymer.LegacyElementMixin(HTMLElement)):Polymer.LegacyElementMixin(HTMLElement);klass=GenerateClassFromInfo(info,klass,info.behaviors);if(info._enableDisableUpgrade){klass=Polymer.DisableUpgradeMixin(klass)}klass.is=klass.prototype.is=info.is;return klass};Polymer.mixinBehaviors=mixinBehaviors})();(function(){"use strict";window.Polymer._polymerFn=function(info){let klass;if(typeof info==="function"){klass=info}else{klass=Polymer.Class(info)}customElements.define(klass.is,klass);return klass}})();(function(){"use strict";function mutablePropertyChange(inst,property,value,old,mutableData){let isObject;if(mutableData){isObject=typeof value==="object"&&value!==null;if(isObject){old=inst.__dataTemp[property]}}let shouldChange=old!==value&&(old===old||value===value);if(isObject&&shouldChange){inst.__dataTemp[property]=value}return shouldChange}Polymer.MutableData=Polymer.dedupingMixin(superClass=>{class MutableData extends superClass{_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,true)}}return MutableData});Polymer.OptionalMutableData=Polymer.dedupingMixin(superClass=>{class OptionalMutableData extends superClass{static get properties(){return{mutableData:Boolean}}_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,this.mutableData)}}return OptionalMutableData});Polymer.MutableData._mutablePropertyChange=mutablePropertyChange})();(function(){"use strict";let newInstance=null;function HTMLTemplateElementExtension(){return newInstance}HTMLTemplateElementExtension.prototype=Object.create(HTMLTemplateElement.prototype,{constructor:{value:HTMLTemplateElementExtension,writable:true}});const DataTemplate=Polymer.PropertyEffects(HTMLTemplateElementExtension);const MutableDataTemplate=Polymer.MutableData(DataTemplate);function upgradeTemplate(template,constructor){newInstance=template;Object.setPrototypeOf(template,constructor.prototype);new constructor;newInstance=null}const base=Polymer.PropertyEffects(class{});class TemplateInstanceBase extends base{constructor(props){super();this._configureProperties(props);this.root=this._stampTemplate(this.__dataHost);let children=this.children=[];for(let n=this.root.firstChild;n;n=n.nextSibling){children.push(n);n.__templatizeInstance=this}if(this.__templatizeOwner&&this.__templatizeOwner.__hideTemplateChildren__){this._showHideChildren(true)}let options=this.__templatizeOptions;if(props&&options.instanceProps||!options.instanceProps){this._enableProperties()}}_configureProperties(props){let options=this.__templatizeOptions;if(options.forwardHostProp){for(let hprop in this.__hostProps){this._setPendingProperty(hprop,this.__dataHost["_host_"+hprop])}}for(let iprop in props){this._setPendingProperty(iprop,props[iprop])}}forwardHostProp(prop,value){if(this._setPendingPropertyOrPath(prop,value,false,true)){this.__dataHost._enqueueClient(this)}}_addEventListenerToNode(node,eventName,handler){if(this._methodHost&&this.__templatizeOptions.parentModel){this._methodHost._addEventListenerToNode(node,eventName,e=>{e.model=this;handler(e)})}else{let templateHost=this.__dataHost.__dataHost;if(templateHost){templateHost._addEventListenerToNode(node,eventName,handler)}}}_showHideChildren(hide){let c=this.children;for(let i=0;i<c.length;i++){let n=c[i];if(Boolean(hide)!=Boolean(n.__hideTemplateChildren__)){if(n.nodeType===Node.TEXT_NODE){if(hide){n.__polymerTextContent__=n.textContent;n.textContent=""}else{n.textContent=n.__polymerTextContent__}}else if(n.localName==="slot"){if(hide){n.__polymerReplaced__=document.createComment("hidden-slot");n.parentNode.replaceChild(n.__polymerReplaced__,n)}else{const replace=n.__polymerReplaced__;if(replace){replace.parentNode.replaceChild(n,replace)}}}else if(n.style){if(hide){n.__polymerDisplay__=n.style.display;n.style.display="none"}else{n.style.display=n.__polymerDisplay__}}}n.__hideTemplateChildren__=hide;if(n._showHideChildren){n._showHideChildren(hide)}}}_setUnmanagedPropertyToNode(node,prop,value){if(node.__hideTemplateChildren__&&node.nodeType==Node.TEXT_NODE&&prop=="textContent"){node.__polymerTextContent__=value}else{super._setUnmanagedPropertyToNode(node,prop,value)}}get parentModel(){let model=this.__parentModel;if(!model){let options;model=this;do{model=model.__dataHost.__dataHost}while((options=model.__templatizeOptions)&&!options.parentModel);this.__parentModel=model}return model}dispatchEvent(event){return true}}TemplateInstanceBase.prototype.__dataHost;TemplateInstanceBase.prototype.__templatizeOptions;TemplateInstanceBase.prototype._methodHost;TemplateInstanceBase.prototype.__templatizeOwner;TemplateInstanceBase.prototype.__hostProps;const MutableTemplateInstanceBase=Polymer.MutableData(TemplateInstanceBase);function findMethodHost(template){let templateHost=template.__dataHost;return templateHost&&templateHost._methodHost||templateHost}function createTemplatizerClass(template,templateInfo,options){let base=options.mutableData?MutableTemplateInstanceBase:TemplateInstanceBase;if(Polymer.Templatize.mixin){base=Polymer.Templatize.mixin(base)}let klass=class extends base{};klass.prototype.__templatizeOptions=options;klass.prototype._bindTemplate(template);addNotifyEffects(klass,template,templateInfo,options);return klass}function addPropagateEffects(template,templateInfo,options){let userForwardHostProp=options.forwardHostProp;if(userForwardHostProp){let klass=templateInfo.templatizeTemplateClass;if(!klass){let base=options.mutableData?MutableDataTemplate:DataTemplate;klass=templateInfo.templatizeTemplateClass=class TemplatizedTemplate extends base{};let hostProps=templateInfo.hostProps;for(let prop in hostProps){klass.prototype._addPropertyEffect("_host_"+prop,klass.prototype.PROPERTY_EFFECT_TYPES.PROPAGATE,{fn:createForwardHostPropEffect(prop,userForwardHostProp)});klass.prototype._createNotifyingProperty("_host_"+prop)}}upgradeTemplate(template,klass);if(template.__dataProto){Object.assign(template.__data,template.__dataProto)}template.__dataTemp={};template.__dataPending=null;template.__dataOld=null;template._enableProperties()}}function createForwardHostPropEffect(hostProp,userForwardHostProp){return function forwardHostProp(template,prop,props){userForwardHostProp.call(template.__templatizeOwner,prop.substring("_host_".length),props[prop])}}function addNotifyEffects(klass,template,templateInfo,options){let hostProps=templateInfo.hostProps||{};for(let iprop in options.instanceProps){delete hostProps[iprop];let userNotifyInstanceProp=options.notifyInstanceProp;if(userNotifyInstanceProp){klass.prototype._addPropertyEffect(iprop,klass.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:createNotifyInstancePropEffect(iprop,userNotifyInstanceProp)})}}if(options.forwardHostProp&&template.__dataHost){for(let hprop in hostProps){klass.prototype._addPropertyEffect(hprop,klass.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:createNotifyHostPropEffect()})}}}function createNotifyInstancePropEffect(instProp,userNotifyInstanceProp){return function notifyInstanceProp(inst,prop,props){userNotifyInstanceProp.call(inst.__templatizeOwner,inst,prop,props[prop])}}function createNotifyHostPropEffect(){return function notifyHostProp(inst,prop,props){inst.__dataHost._setPendingPropertyOrPath("_host_"+prop,props[prop],true,true)}}Polymer.Templatize={templatize(template,owner,options){if(Polymer.strictTemplatePolicy&&!findMethodHost(template)){throw new Error("strictTemplatePolicy: template owner not trusted")}options=options||{};if(template.__templatizeOwner){throw new Error("A <template> can only be templatized once")}template.__templatizeOwner=owner;const ctor=owner?owner.constructor:TemplateInstanceBase;let templateInfo=ctor._parseTemplate(template);let baseClass=templateInfo.templatizeInstanceClass;if(!baseClass){baseClass=createTemplatizerClass(template,templateInfo,options);templateInfo.templatizeInstanceClass=baseClass}addPropagateEffects(template,templateInfo,options);let klass=class TemplateInstance extends baseClass{};klass.prototype._methodHost=findMethodHost(template);klass.prototype.__dataHost=template;klass.prototype.__templatizeOwner=owner;klass.prototype.__hostProps=templateInfo.hostProps;klass=klass;return klass},modelForElement(template,node){let model;while(node){if(model=node.__templatizeInstance){if(model.__dataHost!=template){node=model.__dataHost}else{return model}}else{node=node.parentNode}}return null}};Polymer.TemplateInstanceBase=TemplateInstanceBase})();(function(){"use strict";let TemplateInstanceBase=Polymer.TemplateInstanceBase;let TemplatizerUser;Polymer.Templatizer={templatize(template,mutableData){this._templatizerTemplate=template;this.ctor=Polymer.Templatize.templatize(template,this,{mutableData:Boolean(mutableData),parentModel:this._parentModel,instanceProps:this._instanceProps,forwardHostProp:this._forwardHostPropV2,notifyInstanceProp:this._notifyInstancePropV2})},stamp(model){return new this.ctor(model)},modelForElement(el){return Polymer.Templatize.modelForElement(this._templatizerTemplate,el)}}})();(function(){"use strict";const domBindBase=Polymer.GestureEventListeners(Polymer.OptionalMutableData(Polymer.PropertyEffects(HTMLElement)));class DomBind extends domBindBase{static get observedAttributes(){return["mutable-data"]}constructor(){super();if(Polymer.strictTemplatePolicy){throw new Error(`strictTemplatePolicy: dom-bind not allowed`)}this.root=null;this.$=null;this.__children=null}attributeChangedCallback(){this.mutableData=true}connectedCallback(){this.style.display="none";this.render()}disconnectedCallback(){this.__removeChildren()}__insertChildren(){this.parentNode.insertBefore(this.root,this)}__removeChildren(){if(this.__children){for(let i=0;i<this.__children.length;i++){this.root.appendChild(this.__children[i])}}}render(){let template;if(!this.__children){template=template||this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{template=this.querySelector("template");if(template){observer.disconnect();this.render()}else{throw new Error("dom-bind requires a <template> child")}});observer.observe(this,{childList:true});return}this.root=this._stampTemplate(template);this.$=this.root.$;this.__children=[];for(let n=this.root.firstChild;n;n=n.nextSibling){this.__children[this.__children.length]=n}this._enableProperties()}this.__insertChildren();this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}))}}customElements.define("dom-bind",DomBind);Polymer.DomBind=DomBind})();(function(){"use strict";class LiteralString{constructor(string){this.value=string.toString()}toString(){return this.value}}function literalValue(value){if(value instanceof LiteralString){return value.value}else{throw new Error(`non-literal value passed to Polymer.htmlLiteral: ${value}`)}}function htmlValue(value){if(value instanceof HTMLTemplateElement){return value.innerHTML}else if(value instanceof LiteralString){return literalValue(value)}else{throw new Error(`non-template value passed to Polymer.html: ${value}`)}}Polymer.html=function html(strings,...values){const template=document.createElement("template");template.innerHTML=values.reduce((acc,v,idx)=>acc+htmlValue(v)+strings[idx+1],strings[0]);return template};Polymer.htmlLiteral=function(strings,...values){return new LiteralString(values.reduce((acc,v,idx)=>acc+literalValue(v)+strings[idx+1],strings[0]))}})();(function(){"use strict";Polymer.Element=Polymer.ElementMixin(HTMLElement);Polymer.html=Polymer.html})();(function(){"use strict";let TemplateInstanceBase=Polymer.TemplateInstanceBase;const domRepeatBase=Polymer.OptionalMutableData(Polymer.Element);class DomRepeat extends domRepeatBase{static get is(){return"dom-repeat"}static get template(){return null}static get properties(){return{items:{type:Array},as:{type:String,value:"item"},indexAs:{type:String,value:"index"},itemsIndexAs:{type:String,value:"itemsIndex"},sort:{type:Function,observer:"__sortChanged"},filter:{type:Function,observer:"__filterChanged"},observe:{type:String,observer:"__observeChanged"},delay:Number,renderedItemCount:{type:Number,notify:true,readOnly:true},initialCount:{type:Number,observer:"__initializeChunking"},targetFramerate:{type:Number,value:20},_targetFrameTime:{type:Number,computed:"__computeFrameTime(targetFramerate)"}}}static get observers(){return["__itemsChanged(items.*)"]}constructor(){super();this.__instances=[];this.__limit=Infinity;this.__pool=[];this.__renderDebouncer=null;this.__itemsIdxToInstIdx={};this.__chunkCount=null;this.__lastChunkTime=null;this.__sortFn=null;this.__filterFn=null;this.__observePaths=null;this.__ctor=null;this.__isDetached=true;this.template=null}disconnectedCallback(){super.disconnectedCallback();this.__isDetached=true;for(let i=0;i<this.__instances.length;i++){this.__detachInstance(i)}}connectedCallback(){super.connectedCallback();this.style.display="none";if(this.__isDetached){this.__isDetached=false;let parent=this.parentNode;for(let i=0;i<this.__instances.length;i++){this.__attachInstance(i,parent)}}}__ensureTemplatized(){if(!this.__ctor){let template=this.template=this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{if(this.querySelector("template")){observer.disconnect();this.__render()}else{throw new Error("dom-repeat requires a <template> child")}});observer.observe(this,{childList:true});return false}let instanceProps={};instanceProps[this.as]=true;instanceProps[this.indexAs]=true;instanceProps[this.itemsIndexAs]=true;this.__ctor=Polymer.Templatize.templatize(template,this,{mutableData:this.mutableData,parentModel:true,instanceProps:instanceProps,forwardHostProp:function(prop,value){let i$=this.__instances;for(let i=0,inst;i<i$.length&&(inst=i$[i]);i++){inst.forwardHostProp(prop,value)}},notifyInstanceProp:function(inst,prop,value){if(Polymer.Path.matches(this.as,prop)){let idx=inst[this.itemsIndexAs];if(prop==this.as){this.items[idx]=value}let path=Polymer.Path.translate(this.as,"items."+idx,prop);this.notifyPath(path,value)}}})}return true}__getMethodHost(){return this.__dataHost._methodHost||this.__dataHost}__functionFromPropertyValue(functionOrMethodName){if(typeof functionOrMethodName==="string"){let methodName=functionOrMethodName;let obj=this.__getMethodHost();return function(){return obj[methodName].apply(obj,arguments)}}return functionOrMethodName}__sortChanged(sort){this.__sortFn=this.__functionFromPropertyValue(sort);if(this.items){this.__debounceRender(this.__render)}}__filterChanged(filter){this.__filterFn=this.__functionFromPropertyValue(filter);if(this.items){this.__debounceRender(this.__render)}}__computeFrameTime(rate){return Math.ceil(1e3/rate)}__initializeChunking(){if(this.initialCount){this.__limit=this.initialCount;this.__chunkCount=this.initialCount;this.__lastChunkTime=performance.now()}}__tryRenderChunk(){if(this.items&&this.__limit<this.items.length){this.__debounceRender(this.__requestRenderChunk)}}__requestRenderChunk(){requestAnimationFrame(()=>this.__renderChunk())}__renderChunk(){let currChunkTime=performance.now();let ratio=this._targetFrameTime/(currChunkTime-this.__lastChunkTime);this.__chunkCount=Math.round(this.__chunkCount*ratio)||1;this.__limit+=this.__chunkCount;this.__lastChunkTime=currChunkTime;this.__debounceRender(this.__render)}__observeChanged(){this.__observePaths=this.observe&&this.observe.replace(".*",".").split(" ")}__itemsChanged(change){if(this.items&&!Array.isArray(this.items)){console.warn("dom-repeat expected array for `items`, found",this.items)}if(!this.__handleItemPath(change.path,change.value)){this.__initializeChunking();this.__debounceRender(this.__render)}}__handleObservedPaths(path){if(this.__sortFn||this.__filterFn){if(!path){this.__debounceRender(this.__render,this.delay)}else if(this.__observePaths){let paths=this.__observePaths;for(let i=0;i<paths.length;i++){if(path.indexOf(paths[i])===0){this.__debounceRender(this.__render,this.delay)}}}}}__debounceRender(fn,delay=0){this.__renderDebouncer=Polymer.Debouncer.debounce(this.__renderDebouncer,delay>0?Polymer.Async.timeOut.after(delay):Polymer.Async.microTask,fn.bind(this));Polymer.enqueueDebouncer(this.__renderDebouncer)}render(){this.__debounceRender(this.__render);Polymer.flush()}__render(){if(!this.__ensureTemplatized()){return}this.__applyFullRefresh();this.__pool.length=0;this._setRenderedItemCount(this.__instances.length);this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}));this.__tryRenderChunk()}__applyFullRefresh(){let items=this.items||[];let isntIdxToItemsIdx=new Array(items.length);for(let i=0;i<items.length;i++){isntIdxToItemsIdx[i]=i}if(this.__filterFn){isntIdxToItemsIdx=isntIdxToItemsIdx.filter((i,idx,array)=>this.__filterFn(items[i],idx,array))}if(this.__sortFn){isntIdxToItemsIdx.sort((a,b)=>this.__sortFn(items[a],items[b]))}const itemsIdxToInstIdx=this.__itemsIdxToInstIdx={};let instIdx=0;const limit=Math.min(isntIdxToItemsIdx.length,this.__limit);for(;instIdx<limit;instIdx++){let inst=this.__instances[instIdx];let itemIdx=isntIdxToItemsIdx[instIdx];let item=items[itemIdx];itemsIdxToInstIdx[itemIdx]=instIdx;if(inst){inst._setPendingProperty(this.as,item);inst._setPendingProperty(this.indexAs,instIdx);inst._setPendingProperty(this.itemsIndexAs,itemIdx);inst._flushProperties()}else{this.__insertInstance(item,instIdx,itemIdx)}}for(let i=this.__instances.length-1;i>=instIdx;i--){this.__detachAndRemoveInstance(i)}}__detachInstance(idx){let inst=this.__instances[idx];for(let i=0;i<inst.children.length;i++){let el=inst.children[i];inst.root.appendChild(el)}return inst}__attachInstance(idx,parent){let inst=this.__instances[idx];parent.insertBefore(inst.root,this)}__detachAndRemoveInstance(idx){let inst=this.__detachInstance(idx);if(inst){this.__pool.push(inst)}this.__instances.splice(idx,1)}__stampInstance(item,instIdx,itemIdx){let model={};model[this.as]=item;model[this.indexAs]=instIdx;model[this.itemsIndexAs]=itemIdx;return new this.__ctor(model)}__insertInstance(item,instIdx,itemIdx){let inst=this.__pool.pop();if(inst){inst._setPendingProperty(this.as,item);inst._setPendingProperty(this.indexAs,instIdx);inst._setPendingProperty(this.itemsIndexAs,itemIdx);inst._flushProperties()}else{inst=this.__stampInstance(item,instIdx,itemIdx)}let beforeRow=this.__instances[instIdx+1];let beforeNode=beforeRow?beforeRow.children[0]:this;this.parentNode.insertBefore(inst.root,beforeNode);this.__instances[instIdx]=inst;return inst}_showHideChildren(hidden){for(let i=0;i<this.__instances.length;i++){this.__instances[i]._showHideChildren(hidden)}}__handleItemPath(path,value){let itemsPath=path.slice(6);let dot=itemsPath.indexOf(".");let itemsIdx=dot<0?itemsPath:itemsPath.substring(0,dot);if(itemsIdx==parseInt(itemsIdx,10)){let itemSubPath=dot<0?"":itemsPath.substring(dot+1);this.__handleObservedPaths(itemSubPath);let instIdx=this.__itemsIdxToInstIdx[itemsIdx];let inst=this.__instances[instIdx];if(inst){let itemPath=this.as+(itemSubPath?"."+itemSubPath:"");inst._setPendingPropertyOrPath(itemPath,value,false,true);inst._flushProperties()}return true}}itemForElement(el){let instance=this.modelForElement(el);return instance&&instance[this.as]}indexForElement(el){let instance=this.modelForElement(el);return instance&&instance[this.indexAs]}modelForElement(el){return Polymer.Templatize.modelForElement(this.template,el)}}customElements.define(DomRepeat.is,DomRepeat);Polymer.DomRepeat=DomRepeat})();(function(){"use strict";class DomIf extends Polymer.Element{static get is(){return"dom-if"}static get template(){return null}static get properties(){return{if:{type:Boolean,observer:"__debounceRender"},restamp:{type:Boolean,observer:"__debounceRender"}}}constructor(){super();this.__renderDebouncer=null;this.__invalidProps=null;this.__instance=null;this._lastIf=false;this.__ctor=null}__debounceRender(){this.__renderDebouncer=Polymer.Debouncer.debounce(this.__renderDebouncer,Polymer.Async.microTask,()=>this.__render());Polymer.enqueueDebouncer(this.__renderDebouncer)}disconnectedCallback(){super.disconnectedCallback();if(!this.parentNode||this.parentNode.nodeType==Node.DOCUMENT_FRAGMENT_NODE&&!this.parentNode.host){this.__teardownInstance()}}connectedCallback(){super.connectedCallback();this.style.display="none";if(this.if){this.__debounceRender()}}render(){Polymer.flush()}__render(){if(this.if){if(!this.__ensureInstance()){return}this._showHideChildren()}else if(this.restamp){this.__teardownInstance()}if(!this.restamp&&this.__instance){this._showHideChildren()}if(this.if!=this._lastIf){this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}));this._lastIf=this.if}}__ensureInstance(){let parentNode=this.parentNode;if(parentNode){if(!this.__ctor){let template=this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{if(this.querySelector("template")){observer.disconnect();this.__render()}else{throw new Error("dom-if requires a <template> child")}});observer.observe(this,{childList:true});return false}this.__ctor=Polymer.Templatize.templatize(template,this,{mutableData:true,forwardHostProp:function(prop,value){if(this.__instance){if(this.if){this.__instance.forwardHostProp(prop,value)}else{this.__invalidProps=this.__invalidProps||Object.create(null);this.__invalidProps[Polymer.Path.root(prop)]=true}}}})}if(!this.__instance){this.__instance=new this.__ctor;parentNode.insertBefore(this.__instance.root,this)}else{this.__syncHostProperties();let c$=this.__instance.children;if(c$&&c$.length){let lastChild=this.previousSibling;if(lastChild!==c$[c$.length-1]){for(let i=0,n;i<c$.length&&(n=c$[i]);i++){parentNode.insertBefore(n,this)}}}}}return true}__syncHostProperties(){let props=this.__invalidProps;if(props){for(let prop in props){this.__instance._setPendingProperty(prop,this.__dataHost[prop])}this.__invalidProps=null;this.__instance._flushProperties()}}__teardownInstance(){if(this.__instance){let c$=this.__instance.children;if(c$&&c$.length){let parent=c$[0].parentNode;if(parent){for(let i=0,n;i<c$.length&&(n=c$[i]);i++){parent.removeChild(n)}}}this.__instance=null;this.__invalidProps=null}}_showHideChildren(){let hidden=this.__hideTemplateChildren__||!this.if;if(this.__instance){this.__instance._showHideChildren(hidden)}}}customElements.define(DomIf.is,DomIf);Polymer.DomIf=DomIf})();(function(){"use strict";let ArraySelectorMixin=Polymer.dedupingMixin(superClass=>{let elementBase=Polymer.ElementMixin(superClass);class ArraySelectorMixin extends elementBase{static get properties(){return{items:{type:Array},multi:{type:Boolean,value:false},selected:{type:Object,notify:true},selectedItem:{type:Object,notify:true},toggle:{type:Boolean,value:false}}}static get observers(){return["__updateSelection(multi, items.*)"]}constructor(){super();this.__lastItems=null;this.__lastMulti=null;this.__selectedMap=null}__updateSelection(multi,itemsInfo){let path=itemsInfo.path;if(path=="items"){let newItems=itemsInfo.base||[];let lastItems=this.__lastItems;let lastMulti=this.__lastMulti;if(multi!==lastMulti){this.clearSelection()}if(lastItems){let splices=Polymer.ArraySplice.calculateSplices(newItems,lastItems);this.__applySplices(splices)}this.__lastItems=newItems;this.__lastMulti=multi}else if(itemsInfo.path=="items.splices"){this.__applySplices(itemsInfo.value.indexSplices)}else{let part=path.slice("items.".length);let idx=parseInt(part,10);if(part.indexOf(".")<0&&part==idx){this.__deselectChangedIdx(idx)}}}__applySplices(splices){let selected=this.__selectedMap;for(let i=0;i<splices.length;i++){let s=splices[i];selected.forEach((idx,item)=>{if(idx<s.index){}else if(idx>=s.index+s.removed.length){selected.set(item,idx+s.addedCount-s.removed.length)}else{selected.set(item,-1)}});for(let j=0;j<s.addedCount;j++){let idx=s.index+j;if(selected.has(this.items[idx])){selected.set(this.items[idx],idx)}}}this.__updateLinks();let sidx=0;selected.forEach((idx,item)=>{if(idx<0){if(this.multi){this.splice("selected",sidx,1)}else{this.selected=this.selectedItem=null}selected.delete(item)}else{sidx++}})}__updateLinks(){this.__dataLinkedPaths={};if(this.multi){let sidx=0;this.__selectedMap.forEach(idx=>{if(idx>=0){this.linkPaths("items."+idx,"selected."+sidx++)}})}else{this.__selectedMap.forEach(idx=>{this.linkPaths("selected","items."+idx);this.linkPaths("selectedItem","items."+idx)})}}clearSelection(){this.__dataLinkedPaths={};this.__selectedMap=new Map;this.selected=this.multi?[]:null;this.selectedItem=null}isSelected(item){return this.__selectedMap.has(item)}isIndexSelected(idx){return this.isSelected(this.items[idx])}__deselectChangedIdx(idx){let sidx=this.__selectedIndexForItemIndex(idx);if(sidx>=0){let i=0;this.__selectedMap.forEach((idx,item)=>{if(sidx==i++){this.deselect(item)}})}}__selectedIndexForItemIndex(idx){let selected=this.__dataLinkedPaths["items."+idx];if(selected){return parseInt(selected.slice("selected.".length),10)}}deselect(item){let idx=this.__selectedMap.get(item);if(idx>=0){this.__selectedMap.delete(item);let sidx;if(this.multi){sidx=this.__selectedIndexForItemIndex(idx)}this.__updateLinks();if(this.multi){this.splice("selected",sidx,1)}else{this.selected=this.selectedItem=null}}}deselectIndex(idx){this.deselect(this.items[idx])}select(item){this.selectIndex(this.items.indexOf(item))}selectIndex(idx){let item=this.items[idx];if(!this.isSelected(item)){if(!this.multi){this.__selectedMap.clear()}this.__selectedMap.set(item,idx);this.__updateLinks();if(this.multi){this.push("selected",item)}else{this.selected=this.selectedItem=item}}else if(this.toggle){this.deselectIndex(idx)}}}return ArraySelectorMixin});Polymer.ArraySelectorMixin=ArraySelectorMixin;let baseArraySelector=ArraySelectorMixin(Polymer.Element);class ArraySelector extends baseArraySelector{static get is(){return"array-selector"}}customElements.define(ArraySelector.is,ArraySelector);Polymer.ArraySelector=ArraySelector})();(function(){
chromium-84.0.4147.105/third_party/polymer/v1_0/components-chromium/polymer2/polymer-extracted.js-12-/*
##############################################
chromium-84.0.4147.105/third_party/libphonenumber/dist/run-java-demo.md-65-
chromium-84.0.4147.105/third_party/libphonenumber/dist/run-java-demo.md:66:*   To see your current `JAVA_HOME`, run `echo $JAVA_HOME`.
chromium-84.0.4147.105/third_party/libphonenumber/dist/run-java-demo.md-67-*   To see the list of JDKs currently installed, use `update-java-alternatives
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/tools/cddl/README.md-209-
chromium-84.0.4147.105/third_party/openscreen/src/tools/cddl/README.md:210:CDDL allows identifiers to use characters from the set `[a-zA-Z0-9_-@$.]`, but
chromium-84.0.4147.105/third_party/openscreen/src/tools/cddl/README.md-211-these do not correspond to valid C++ identifiers or typenames.  As a result, we
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/tools/cddl/README.md-215-mapping to C++ typenames is done by converting to camel case on words delimited
chromium-84.0.4147.105/third_party/openscreen/src/tools/cddl/README.md:216:by '-'.  As a result, `[@$.]` are still disallowed in CDDL identifiers.
chromium-84.0.4147.105/third_party/openscreen/src/tools/cddl/README.md-217-Additionally, the names `dead_beef` and `dead-beef` would translate to the same
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-330-
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc:331:IPAddress GetIPAddressFromSockAddr(const sockaddr_in& sa) {
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-332-  static_assert(IPAddress::kV4Size == sizeof(sa.sin_addr.s_addr),
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-344-
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc:345:uint16_t GetPortFromFromSockAddr(const sockaddr_in& sa) {
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-346-  return ntohs(sa.sin_port);
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-348-
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc:349:IPAddress GetIPAddressFromSockAddr(const sockaddr_in6& sa) {
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-350-  return IPAddress(IPAddress::Version::kV6, sa.sin6_addr.s6_addr);
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-356-
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc:357:uint16_t GetPortFromFromSockAddr(const sockaddr_in6& sa) {
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-358-  return ntohs(sa.sin6_port);
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-394-
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc:395:  IPEndpoint source_endpoint = {.address = GetIPAddressFromSockAddr(sa),
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc:396:                                .port = GetPortFromFromSockAddr(sa)};
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-397-  packet->set_source(std::move(source_endpoint));
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-413-          .address = GetIPAddressFromPktInfo(*pktinfo),
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc:414:          .port = GetPortFromFromSockAddr(sa)};
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/udp_socket_posix.cc-415-      packet->set_destination(std::move(destination_endpoint));
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/network_interface_mac.cc-129-      auto* const addr_dl = reinterpret_cast<const sockaddr_dl*>(cur->ifa_addr);
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/network_interface_mac.cc:130:      const caddr_t lladdr = LLADDR(addr_dl);
chromium-84.0.4147.105/third_party/openscreen/src/platform/impl/network_interface_mac.cc-131-      static_assert(sizeof(lladdr) >= sizeof(interface->hardware_address),
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/platform/base/location.cc-34-#define RETURN_ADDRESS() \
chromium-84.0.4147.105/third_party/openscreen/src/platform/base/location.cc:35:  __builtin_extract_return_addr(__builtin_return_address(0))
chromium-84.0.4147.105/third_party/openscreen/src/platform/base/location.cc-36-#else
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/build/toolchain/linux/BUILD.gn-56-      depsformat = "gcc"
chromium-84.0.4147.105/third_party/openscreen/src/build/toolchain/linux/BUILD.gn:57:      description = "ASM {{output}}"
chromium-84.0.4147.105/third_party/openscreen/src/build/toolchain/linux/BUILD.gn-58-      outputs = [
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/build/toolchain/mac/BUILD.gn-35-    depsformat = "gcc"
chromium-84.0.4147.105/third_party/openscreen/src/build/toolchain/mac/BUILD.gn:36:    description = "ASM {{output}}"
chromium-84.0.4147.105/third_party/openscreen/src/build/toolchain/mac/BUILD.gn-37-    outputs = [
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/osp/go/quic.go-69-	tlsConfig := &tls.Config{Certificates: []tls.Certificate{cert}}
chromium-84.0.4147.105/third_party/openscreen/src/osp/go/quic.go:70:	listener, err := quic.ListenAddr(addr, tlsConfig, nil)
chromium-84.0.4147.105/third_party/openscreen/src/osp/go/quic.go-71-	if err != nil {
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/tinycbor/src/scripts/maketag.pl-56-# Also using system so that hte user can see the output.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/tinycbor/src/scripts/maketag.pl:57:system("git", "tag", "-a", "-F", $tagfile, split(' ', $ENV{GITTAGFLAGS}), "v$v");
chromium-84.0.4147.105/third_party/openscreen/src/third_party/tinycbor/src/scripts/maketag.pl-58-exit ($? >> 8) if $?;
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/tinycbor/src/scripts/update-docs.sh-49-    set +x
chromium-84.0.4147.105/third_party/openscreen/src/third_party/tinycbor/src/scripts/update-docs.sh:50:    url=`git config --get remote.origin.url | sed -e s,://github,://$GITHUB_AUTH@github,`
chromium-84.0.4147.105/third_party/openscreen/src/third_party/tinycbor/src/scripts/update-docs.sh-51-    git push "$url" @:gh-pages
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/linux-ppc64le/crypto/test/trampoline-ppc.S-1408-
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/linux-ppc64le/crypto/test/trampoline-ppc.S:1409:#endif  // !OPENSSL_NO_ASM && __powerpc64__
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/linux-ppc64le/crypto/test/trampoline-ppc.S-1410-.section	.note.GNU-stack,"",@progbits
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S-3668-.byte	0,12,0x14,0,0,0,0,0
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S:3669:#endif  // !OPENSSL_NO_ASM && __powerpc64__
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S-3670-.section	.note.GNU-stack,"",@progbits
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S-585-.align	2
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S:586:#endif  // !OPENSSL_NO_ASM && __powerpc64__
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S-587-.section	.note.GNU-stack,"",@progbits
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/openscreen/src/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/lss/tests/Makefile-108-	; do \
chromium-84.0.4147.105/third_party/lss/tests/Makefile:109:		cxx=`echo "$$cc" | sed 's:-gcc:-g++:'`; \
chromium-84.0.4147.105/third_party/lss/tests/Makefile-110-		$(MAKE) --no-print-directory CC="$$cc" CXX="$$cxx" cross_compile; \
chromium-84.0.4147.105/third_party/lss/tests/Makefile-111-		\
chromium-84.0.4147.105/third_party/lss/tests/Makefile:112:		sysroot=`$$cc --print-sysroot 2>/dev/null`; \
chromium-84.0.4147.105/third_party/lss/tests/Makefile:113:		gccdir=`$$cc -print-file-name=libgcc.a 2>/dev/null`; \
chromium-84.0.4147.105/third_party/lss/tests/Makefile:114:		gccdir=`dirname "$$gccdir"`; \
chromium-84.0.4147.105/third_party/lss/tests/Makefile-115-		: Skip building for clang for mips/o32 and s390/31-bit until it works.; \
##############################################
chromium-84.0.4147.105/third_party/lss/tests/Makefile-128-		esac; \
chromium-84.0.4147.105/third_party/lss/tests/Makefile:129:		cxx=`echo "$$cc" | sed 's:^clang:clang++:'`; \
chromium-84.0.4147.105/third_party/lss/tests/Makefile-130-		$(MAKE) --no-print-directory CC="$$cc" CXX="$$cxx" cross_compile; \
##############################################
chromium-84.0.4147.105/third_party/lss/linux_syscall_support.h-1913-      void (**entrypoint)(void);
chromium-84.0.4147.105/third_party/lss/linux_syscall_support.h:1914:      asm volatile(".bss\n"
chromium-84.0.4147.105/third_party/lss/linux_syscall_support.h-1915-                   ".align 8\n"
##############################################
chromium-84.0.4147.105/third_party/lss/linux_syscall_support.h-2182-      void (**entrypoint)(void);
chromium-84.0.4147.105/third_party/lss/linux_syscall_support.h:2183:      asm volatile(".bss\n"
chromium-84.0.4147.105/third_party/lss/linux_syscall_support.h-2184-                   ".align 8\n"
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/doc/developing.md-36-To develop Crashpad, the following tools are necessary, and must be present in
chromium-84.0.4147.105/third_party/crashpad/crashpad/doc/developing.md:37:the `$PATH` environment variable:
chromium-84.0.4147.105/third_party/crashpad/crashpad/doc/developing.md-38-
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/.gitattributes-15-*.S text eol=lf
chromium-84.0.4147.105/third_party/crashpad/crashpad/.gitattributes:16:*.asm text eol=lf
chromium-84.0.4147.105/third_party/crashpad/crashpad/.gitattributes-17-*.c text eol=lf
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/test/mac/dyld.cc-56-  Dl_info dli;
chromium-84.0.4147.105/third_party/crashpad/crashpad/test/mac/dyld.cc:57:  if (!dladdr(reinterpret_cast<void*>(_dyld_image_count), &dli)) {
chromium-84.0.4147.105/third_party/crashpad/crashpad/test/mac/dyld.cc-58-    LOG(WARNING) << "dladdr: failed";
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/test/mac/mach_multiprocess.cc-188-  auditinfo_addr_t audit_info;
chromium-84.0.4147.105/third_party/crashpad/crashpad/test/mac/mach_multiprocess.cc:189:  int rv = getaudit_addr(&audit_info, sizeof(audit_info));
chromium-84.0.4147.105/third_party/crashpad/crashpad/test/mac/mach_multiprocess.cc-190-  ASSERT_EQ(rv, 0) << ErrnoMessage("getaudit_addr");
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/linux/ptrace_broker_test.cc-120-                                   0));
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/linux/ptrace_broker_test.cc:121:    ASSERT_TRUE(mapping_.ResetAddrLen(mapping_.addr(), page_size * 2));
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/linux/ptrace_broker_test.cc-122-
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn-500-    # There's no ml.exe yet in cross builds, so provide broken-but-not-asm
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn:501:    # versions of the functions defined in .asm files.
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn-502-    #
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn-507-    #
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn:508:    # TODO(thakis): Use the .asm file in cross builds somehow,
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn-509-    # https://crbug.com/762167.
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn-517-        # Most Crashpad builds use Microsoft's armasm64.exe macro assembler for
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn:518:        # .asm source files. When building in Chromium, clang-cl is used as the
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn-519-        # assembler instead. Since the two assemblers recognize different
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn:520:        # assembly dialects, the same .asm file can't be used for each. As a
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/BUILD.gn-521-        # workaround, use a prebuilt .obj file when the Microsoft-dialect
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/ios/exception_processor.mm-136-    Dl_info dl_info;
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/ios/exception_processor.mm:137:    if (!dladdr(reinterpret_cast<const void*>(&ObjcExceptionPreprocessor),
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/ios/exception_processor.mm-138-                &dl_info)) {
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/ios/exception_processor.mm-201-      Dl_info dl_info;
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/ios/exception_processor.mm:202:      if (dladdr(reinterpret_cast<const void*>(frame_info.start_ip),
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/ios/exception_processor.mm-203-                 &dl_info)) {
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/ios/exception_processor.mm-248-    Dl_info dl_info;
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/ios/exception_processor.mm:249:    if (dladdr(reinterpret_cast<const void*>(frame_info.start_ip), &dl_info) !=
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/ios/exception_processor.mm-250-        0) {
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/misc/capture_context.h-69-//!     Linux               | ARM/ARM64    | `r0`/`x0`
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/misc/capture_context.h:70://!     Linux               | MIPS/MIPS64  | `$a0`
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/misc/capture_context.h-71-//!
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-89-  EXPECT_FALSE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:90:  EXPECT_EQ(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-91-  EXPECT_EQ(mapping.len(), 0u);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-98-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:99:  EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-100-  EXPECT_EQ(mapping.len(), kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-116-    EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:117:    EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-118-    EXPECT_EQ(mapping.len(), kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-131-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:132:  EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-133-  EXPECT_EQ(mapping.len(), kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-149-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:150:  EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-151-  EXPECT_EQ(mapping.len(), 3 * kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-163-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:164:  EXPECT_EQ(mapping.addr(), new_addr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-165-  EXPECT_EQ(mapping.len(), kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-184-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:185:  EXPECT_EQ(mapping.addr(), old_addr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-186-  EXPECT_EQ(mapping.len(), kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-196-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:197:  EXPECT_EQ(mapping.addr(), pages);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-198-  EXPECT_EQ(mapping.len(), 3 * kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-216-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:217:  EXPECT_EQ(mapping.addr(), old_addr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-218-  EXPECT_EQ(mapping.len(), kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-228-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:229:  EXPECT_EQ(mapping.addr(), pages);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-230-  EXPECT_EQ(mapping.len(), 2 * kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-247-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:248:  EXPECT_EQ(mapping.addr(), pages);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-249-  EXPECT_EQ(mapping.len(), 2 * kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-261-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:262:  EXPECT_EQ(mapping.addr(), new_addr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-263-  EXPECT_EQ(mapping.len(), kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-281-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:282:  EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-283-  EXPECT_EQ(mapping.len(), 2 * kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-290-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:291:  EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-292-  EXPECT_EQ(mapping.len(), kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-299-  EXPECT_FALSE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:300:  EXPECT_EQ(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-301-  EXPECT_EQ(mapping.len(), 0u);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-310-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:311:  EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-312-  EXPECT_EQ(mapping.len(), kHalfPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-317-  // Shrinking a one-page mapping to a half page is a no-op.
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:318:  void* orig_addr = mapping.addr();
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-319-  ASSERT_TRUE(mapping.ResetAddrLen(orig_addr, kHalfPageSize));
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-320-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:321:  EXPECT_EQ(mapping.addr(), orig_addr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-322-  EXPECT_EQ(mapping.len(), kHalfPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-329-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:330:  EXPECT_EQ(mapping.addr(), orig_addr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-331-  EXPECT_EQ(mapping.len(), 1u);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-336-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:337:  EXPECT_EQ(mapping.addr(), orig_addr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-338-  EXPECT_EQ(mapping.len(), kPageSize - 1);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-345-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:346:  EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-347-  EXPECT_EQ(mapping.len(), 2 * kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-354-
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:355:  orig_addr = mapping.addr();
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-356-  ASSERT_TRUE(mapping.ResetAddrLen(orig_addr, kHalfPageSize));
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-357-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:358:  EXPECT_EQ(mapping.addr(), orig_addr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-359-  EXPECT_EQ(mapping.len(), kHalfPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-366-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:367:  EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-368-  EXPECT_EQ(mapping.len(), 2 * kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-374-
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:375:  orig_addr = mapping.addr();
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-376-  ASSERT_TRUE(mapping.ResetAddrLen(orig_addr, kPageSize + kHalfPageSize));
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-377-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:378:  EXPECT_EQ(mapping.addr(), orig_addr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-379-  EXPECT_EQ(mapping.len(), kPageSize + kHalfPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-390-  EXPECT_TRUE(mapping.is_valid());
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc:391:  EXPECT_NE(mapping.addr(), MAP_FAILED);
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap_test.cc-392-  EXPECT_EQ(mapping.len(), kPageSize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap.h-83-  //! \brief Returns the base address of the memory-mapped region.
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap.h:84:  void* addr() const { return addr_; }
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/posix/scoped_mmap.h-85-
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/mach/exception_types.cc-58-  Dl_info dl_info;
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/mach/exception_types.cc:59:  if (!dladdr(reinterpret_cast<void*>(proc_pidinfo), &dl_info)) {
chromium-84.0.4147.105/third_party/crashpad/crashpad/util/mach/exception_types.cc-60-    return nullptr;
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_test.cc-248-  Dl_info info;
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_test.cc:249:  ASSERT_TRUE(dladdr(reinterpret_cast<void*>(getpid), &info)) << "dladdr:"
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_test.cc-250-                                                              << dlerror();
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_test.cc-260-  Dl_info info;
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_test.cc:261:  EXPECT_TRUE(dladdr(reinterpret_cast<void*>(getpid), &info))
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_test.cc-262-      << "dladdr:" << dlerror();
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_segment_reader.cc-214-  INITIALIZATION_STATE_DCHECK_VALID(initialized_slide_);
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_segment_reader.cc:215:  return vmaddr() + (SegmentSlides() ? slide_ : 0);
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_segment_reader.cc-216-}
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader.cc-589-    // slideOfMainExecutable().
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader.cc:590:    slide_ = address_ - segment->vmaddr();
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader.cc-591-  }
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_segment_reader.h-128-  //! \note For the segment’s preferred load address, not adjusted for slide,
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_segment_reader.h:129:  //!     use vmaddr().
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_segment_reader.h-130-  mach_vm_address_t Address() const;
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_segment_reader.h-147-  //! \sa MachOImageReader::GetSegmentByName()
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_segment_reader.h:148:  mach_vm_address_t vmaddr() const { return segment_command_.vmaddr; }
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_segment_reader.h-149-
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-124-      MachOImageSegmentReader::SegmentNameString(expect_segment->segname));
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc:125:  EXPECT_EQ(actual_segment->vmaddr(), expect_segment->vmaddr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-126-  EXPECT_EQ(actual_segment->vmsize(), expect_segment->vmsize);
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-129-  if (actual_segment->SegmentSlides()) {
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc:130:    EXPECT_EQ(actual_segment->vmaddr() + actual_image->Slide(),
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-131-              actual_segment->Address());
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-147-    // load_segment().
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc:148:    EXPECT_EQ(actual_segment->vmaddr(), actual_segment->Address());
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-149-    EXPECT_EQ(actual_segment->Size(),
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-365-  EXPECT_EQ(actual_image->Slide(),
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc:366:            expect_image_address - actual_text_segment->vmaddr());
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-367-
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-411-    // available as in this function, as opposed to a void* opaque handle. It is
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc:412:    // possible to get a void* handle by using dladdr() to find the file name
chromium-84.0.4147.105/third_party/crashpad/crashpad/snapshot/mac/mach_o_image_reader_test.cc-413-    // corresponding to the MachHeader*, and using dlopen() again on that name,
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-166-    virtual int write(const char* ptr) = 0;
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h:167:    virtual std::string get_remote_addr() = 0;
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-168-
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-180-    virtual int write(const char* ptr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h:181:    virtual std::string get_remote_addr();
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-182-
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-315-    virtual int write(const char* ptr);
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h:316:    virtual std::string get_remote_addr();
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-317-
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-610-
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h:611:inline std::string get_remote_addr(socket_t sock) {
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-612-    struct sockaddr_storage addr;
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-1410-
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h:1411:inline std::string SocketStream::get_remote_addr() {
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h:1412:    return detail::get_remote_addr(sock_);
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-1413-}
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-1779-
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h:1780:    req.set_header("REMOTE_ADDR", strm.get_remote_addr().c_str());
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-1781-
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-2244-
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h:2245:inline std::string SSLSocketStream::get_remote_addr() {
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h:2246:    return detail::get_remote_addr(sock_);
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/cpp-httplib/cpp-httplib/httplib.h-2247-}
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/glibc/elf/elf.h-1464-#define R_386_TLS_GD_CALL  26		/* Relocation for call to
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/glibc/elf/elf.h:1465:					   __tls_get_addr() */
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/glibc/elf/elf.h-1466-#define R_386_TLS_GD_POP   27		/* Tag for popl in GD TLS code */
##############################################
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/glibc/elf/elf.h-1470-#define R_386_TLS_LDM_CALL 30		/* Relocation for call to
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/glibc/elf/elf.h:1471:					   __tls_get_addr() in LDM code */
chromium-84.0.4147.105/third_party/crashpad/crashpad/third_party/glibc/elf/elf.h-1472-#define R_386_TLS_LDM_POP  31		/* Tag for popl in LDM TLS code */
##############################################
chromium-84.0.4147.105/third_party/ots/src/ots.h-245-  // appropriate tag when a subclass is constructed, or to zero for
chromium-84.0.4147.105/third_party/ots/src/ots.h:246:  // TablePassthru (indicating unparsed data).
chromium-84.0.4147.105/third_party/ots/src/ots.h-247-  uint32_t Type() { return m_type; }
##############################################
chromium-84.0.4147.105/third_party/ots/src/ots.h-266- public:
chromium-84.0.4147.105/third_party/ots/src/ots.h:267:  explicit TablePassthru(Font *font, uint32_t tag)
chromium-84.0.4147.105/third_party/ots/src/ots.h-268-      : Table(font, tag, 0),
##############################################
chromium-84.0.4147.105/third_party/ots/src/ots.cc-861-  if (action == TABLE_ACTION_PASSTHRU) {
chromium-84.0.4147.105/third_party/ots/src/ots.cc:862:    table = new TablePassthru(this, tag);
chromium-84.0.4147.105/third_party/ots/src/ots.cc-863-  } else {
##############################################
chromium-84.0.4147.105/third_party/spirv-headers/src/README.md-72-1. Add an `add_subdirectory` directive to include this source tree.
chromium-84.0.4147.105/third_party/spirv-headers/src/README.md:73:2. Use `${SPIRV-Headers_SOURCE_DIR}/include}` in a `target_include_directories`
chromium-84.0.4147.105/third_party/spirv-headers/src/README.md-74-   directive.
##############################################
chromium-84.0.4147.105/third_party/spirv-headers/src/cmake/Config.cmake.in-2-
chromium-84.0.4147.105/third_party/spirv-headers/src/cmake/Config.cmake.in:3:include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
chromium-84.0.4147.105/third_party/spirv-headers/src/cmake/Config.cmake.in-4-check_required_components("@PROJECT_NAME@")
##############################################
chromium-84.0.4147.105/third_party/minigbm/src/virgl_hw.h-259-#define VIRGL_CAP_3D_ASTC              (1 << 24)
chromium-84.0.4147.105/third_party/minigbm/src/virgl_hw.h:260:#define VIRGL_CAP_INDIRECT_INPUT_ADDR  (1 << 25)
chromium-84.0.4147.105/third_party/minigbm/src/virgl_hw.h-261-#define VIRGL_CAP_COPY_TRANSFER        (1 << 26)
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/Gruntfile.js-182-    for (const { name, desc } of helpMessageTasks) {
chromium-84.0.4147.105/third_party/webgpu-cts/src/Gruntfile.js:183:      console.error(`$ grunt ${name}`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/Gruntfile.js:184:      console.error(`  ${desc}`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/Gruntfile.js-185-    }
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/operation/buffers/mapping_test.ts-27-      if (actual[i] !== 0) {
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/operation/buffers/mapping_test.ts:28:        this.fail(`at [${i}], expected zero, got ${actual[i]}`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/operation/buffers/mapping_test.ts-29-        break;
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/validation/setVertexBuffer.spec.ts-43-      #version 450
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/validation/setVertexBuffer.spec.ts:44:      ${range(bufferCount, i => `\nlayout(location = ${i}) in vec3 a_position${i};`).join('')}
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/validation/setVertexBuffer.spec.ts-45-      void main() {
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/validation/error_scope.spec.ts-42-        const eventListener = ((event: GPUUncapturedErrorEvent) => {
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/validation/error_scope.spec.ts:43:          this.debug(`Got uncaptured error event with ${event.error}`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/validation/error_scope.spec.ts-44-          resolve(event);
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/validation/validation_test.ts-132-      } else if (gpuValidationError instanceof GPUValidationError) {
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/validation/validation_test.ts:133:        niceStack.message = `Captured validation error - ${gpuValidationError.message}`;
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/api/validation/validation_test.ts-134-        this.rec.debug(niceStack);
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/web-platform/copyImageBitmapToTexture.spec.ts-64-          failedPixels++;
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/web-platform/copyImageBitmapToTexture.spec.ts:65:          lines.push(`at [${indexExp}], expected ${exp[indexExp]}, got ${actual[indexActual]}`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/web-platform/copyImageBitmapToTexture.spec.ts-66-        }
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/gpu_test.ts-86-        assert(gpuValidationError instanceof GPUValidationError);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/gpu_test.ts:87:        this.fail(`Unexpected validation error occurred: ${gpuValidationError.message}`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/gpu_test.ts-88-      }
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/gpu_test.ts-163-        failedPixels++;
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/gpu_test.ts:164:        lines.push(`at [${i}], expected ${exp[i]}, got ${actual[i]}`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/webgpu/gpu_test.ts-165-      }
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/gen_listings.ts-29-
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/gen_listings.ts:30:    const outFile = path.normalize(`out/${suite}/listing.js`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/gen_listings.ts-31-    fs.writeFileSync(
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/crawl.ts-20-  if (!fs.existsSync(specDir)) {
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/crawl.ts:21:    console.error(`Could not find ${specDir}`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/crawl.ts-22-    process.exit(1);
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/crawl.ts-24-
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/crawl.ts:25:  const specFiles = await fg(`${specDir}/**/{README.txt,*${specSuffix}}`, { onlyFiles: true });
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/crawl.ts-26-  specFiles.sort();
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/crawl.ts-32-      const testPath = f.substring(0, f.length - specSuffix.length);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/crawl.ts:33:      const filename = `../../../${specDir}/${testPath}.spec.js`;
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/crawl.ts-34-      const mod = (await import(filename)) as TestSpec;
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/gen_wpt_cts_html.ts-107-    } else {
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/gen_wpt_cts_html.ts:108:      result += `<meta name=variant content='${line}'>\n`;
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/tools/gen_wpt_cts_html.ts-109-    }
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/runtime/standalone.ts-142-
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/runtime/standalone.ts:143:  const href = `?${worker ? 'worker&' : ''}${debug ? 'debug&' : ''}q=${nameEncoded}`;
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/runtime/standalone.ts-144-  $('<button>')
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/runtime/cmdline.ts-118-      const xs = x.toString().padStart(1 + Math.log10(total), ' ');
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/runtime/cmdline.ts:119:      return `${xs} / ${total} = ${pct(x).padStart(6, ' ')}%`;
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/runtime/cmdline.ts-120-    }
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/runtime/cmdline.ts-138-  for (const [id, r] of results) {
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/runtime/cmdline.ts:139:    console.log(`[${r.status}] ${makeQueryString(id, r)} (${r.timems}ms). Log:`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/runtime/cmdline.ts-140-    if (r.logs) {
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/fixture.ts-69-    if (actualName !== expectedName) {
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/fixture.ts:70:      niceStack.message = `THREW ${actualName}, instead of ${expectedName}` + niceStack.message;
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/fixture.ts-71-      this.rec.fail(niceStack);
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/loader.ts-34-  async listing(suite: string): Promise<TestSuiteListing> {
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/loader.ts:35:    return (await import(`../../${suite}/listing.js`)).listing;
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/loader.ts-36-  }
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_filter/filter_by_group.ts-29-          ? ({ description } as ReadmeFile)
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_filter/filter_by_group.ts:30:          : ((await loader.import(`${suite}/${path}.spec.js`)) as TestSpec);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_filter/filter_by_group.ts-31-        entries.push({ id: { suite, path }, spec });
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_filter/filter_one_file.ts-20-    const spec = (await loader.import(
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_filter/filter_one_file.ts:21:      `${this.specId.suite}/${this.specId.path}.spec.js`
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_filter/filter_one_file.ts-22-    )) as TestSpec;
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_group.ts-39-  private checkName(name: string): void {
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_group.ts:40:    assert(validNames.test(name), `Invalid test name ${name}; must match [${validNames}]+`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_group.ts-41-    assert(
##############################################
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_group.ts-44-      name === decodeURIComponent(name),
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_group.ts:45:      `Not decodeURIComponent-idempotent: ${name} !== ${decodeURIComponent(name)}`
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_group.ts-46-    );
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_group.ts:47:    assert(!this.seen.has(name), `Duplicate test name: ${name}`);
chromium-84.0.4147.105/third_party/webgpu-cts/src/src/common/framework/test_group.ts-48-
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-2127-
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:2128:    PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-2129-    {
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:2130:      return ::vkGetDeviceProcAddr( device, pName );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-2131-    }
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-2716-
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:2717:    PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-2718-    {
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:2719:      return ::vkGetInstanceProcAddr( instance, pName );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-2720-    }
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-19416-    template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:19417:    PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-19418-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-19419-    template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:19420:    PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-19421-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-21129-    template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:21130:    PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-21131-#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-21132-    template<typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:21133:    PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT;
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-21134-#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-78894-  template<typename Dispatch>
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:78895:  VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-78896-  {
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:78897:    return d.vkGetDeviceProcAddr( m_device, pName );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-78898-  }
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-78900-  template<typename Dispatch>
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:78901:  VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-78902-  {
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:78903:    return d.vkGetDeviceProcAddr( m_device, name.c_str() );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-78904-  }
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-81236-  template<typename Dispatch>
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:81237:  VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-81238-  {
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:81239:    return d.vkGetInstanceProcAddr( m_instance, pName );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-81240-  }
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-81242-  template<typename Dispatch>
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:81243:  VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-81244-  {
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:81245:    return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-81246-  }
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84335-      vkGetInstanceProcAddr = getInstanceProcAddr;
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84336:      vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84337:      vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84338:      vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84339:      vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84340-    }
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84362-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84363:      vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84364-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84365:      vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84366:      vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84367:      vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84368:      vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84369-#ifdef VK_USE_PLATFORM_IOS_MVK
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84370:      vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84371-#endif /*VK_USE_PLATFORM_IOS_MVK*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84372-#ifdef VK_USE_PLATFORM_FUCHSIA
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84373:      vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84374-#endif /*VK_USE_PLATFORM_FUCHSIA*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84375-#ifdef VK_USE_PLATFORM_MACOS_MVK
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84376:      vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84377-#endif /*VK_USE_PLATFORM_MACOS_MVK*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84378-#ifdef VK_USE_PLATFORM_METAL_EXT
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84379:      vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84380-#endif /*VK_USE_PLATFORM_METAL_EXT*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84381-#ifdef VK_USE_PLATFORM_GGP
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84382:      vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84383-#endif /*VK_USE_PLATFORM_GGP*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84384-#ifdef VK_USE_PLATFORM_VI_NN
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84385:      vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84386-#endif /*VK_USE_PLATFORM_VI_NN*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84387-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84388:      vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84389-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84390-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84391:      vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84392-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84393-#ifdef VK_USE_PLATFORM_XCB_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84394:      vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84395-#endif /*VK_USE_PLATFORM_XCB_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84396-#ifdef VK_USE_PLATFORM_XLIB_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84397:      vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84398-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84399:      vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84400:      vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84401:      vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84402:      vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84403:      vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84404:      vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84405:      vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84406:      vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84407:      vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84408-#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84409:      vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84410-#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84411:      vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84412:      vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84413:      vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84414:      vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84415:      vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84416:      vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84417:      vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84418:      vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84419:      vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84420:      vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84421:      vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84422:      vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84423:      vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84424:      vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84425:      vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84426:      vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84427:      vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84428:      vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84429:      vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84430:      vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84431:      vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84432:      vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84433:      vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84434:      vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84435:      vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84436:      vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84437:      vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84438:      vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84439:      vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84440:      vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84441:      vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84442:      vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84443:      vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84444:      vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84445:      vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84446:      vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84447:      vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84448:      vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84449:      vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84450:      vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84451:      vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84452:      vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84453:      vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84454:      vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84455:      vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84456:      vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84457:      vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84458:      vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84459:      vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84460:      vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84461:      vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84462:      vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84463:      vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84464-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84465:      vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84466-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84467:      vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84468:      vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84469:      vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84470-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84471:      vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84472-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84473-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84474:      vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84475-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84476-#ifdef VK_USE_PLATFORM_XCB_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84477:      vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84478-#endif /*VK_USE_PLATFORM_XCB_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84479-#ifdef VK_USE_PLATFORM_XLIB_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84480:      vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84481-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84482-#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84483:      vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84484-#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84485:      vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84486:      vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84487:      vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84488:      vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84489:      vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84490:      vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84491:      vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84492:      vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84493:      vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84494:      vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84495:      vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84496:      vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84497:      vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84498:      vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84499:      vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84500:      vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84501:      vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84502:      vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84503-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84504:      vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84505-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84506-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84507:      vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84508-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84509:      vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84510:      vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84511:      vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84512:      vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84513-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84514:      vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84515-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84516:      vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84517-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84518:      vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84519-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84520:      vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84521:      vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84522:      vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84523:      vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84524-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84525:      vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84526-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84527:      vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84528:      vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84529:      vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84530:      vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84531:      vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84532:      vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84533:      vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84534:      vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84535:      vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84536:      vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84537:      vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84538:      vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84539:      vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84540:      vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84541:      vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84542:      vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84543:      vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84544:      vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84545:      vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84546:      vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84547:      vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84548:      vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84549:      vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84550:      vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84551:      vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84552:      vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84553:      vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84554:      vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84555:      vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84556:      vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84557:      vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84558:      vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84559:      vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84560:      vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84561:      vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84562:      vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84563:      vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84564:      vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84565:      vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84566:      vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84567:      vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84568:      vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84569:      vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84570:      vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84571:      vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84572:      vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84573:      vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84574:      vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84575:      vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84576:      vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84577:      vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84578:      vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84579:      vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84580:      vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84581:      vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84582:      vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84583:      vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84584:      vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84585:      vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84586:      vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84587:      vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84588:      vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84589:      vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84590:      vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84591:      vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84592:      vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84593:      vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84594:      vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84595-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84596:      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84597-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84598-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84599:      vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84600-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84601:      vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84602:      vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84603:      vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84604:      vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84605:      vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84606:      vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84607:      vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84608:      vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84609:      vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84610-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84611:      vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84612-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84613:      vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84614:      vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84615:      vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84616:      vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84617:      vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84618:      vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84619:      vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84620:      vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84621:      vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84622:      vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84623:      vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84624:      vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84625:      vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84626:      vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84627:      vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84628-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84629:      vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84630-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84631:      vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84632-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84633:      vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84634-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84635-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84636:      vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84637-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84638-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84639:      vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84640-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84641-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84642:      vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84643-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84644:      vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84645:      vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84646:      vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84647:      vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84648:      vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84649-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84650:      vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84651-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84652:      vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84653:      vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84654:      vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84655:      vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84656:      vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84657:      vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84658:      vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84659:      vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84660:      vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84661:      vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84662:      vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84663:      vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84664:      vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84665:      vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84666:      vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84667-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84668:      vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84669-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84670:      vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84671:      vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84672:      vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84673:      vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84674:      vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84675:      vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84676:      vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84677:      vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84678:      vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84679:      vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84680:      vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84681:      vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84682:      vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84683:      vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84684-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84685:      vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84686-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84687:      vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84688:      vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84689:      vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84690:      vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84691:      vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84692-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84693:      vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84694-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84695:      vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84696:      vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84697:      vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84698:      vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84699:      vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84700:      vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84701:      vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84702:      vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84703:      vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84704:      vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84705:      vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84706:      vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84707:      vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84708:      vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84709:      vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84710:      vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84711:      vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84712:      vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84713:      vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84714:      vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84715:      vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84716:      vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84717:      vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84718:      vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84719:      vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84720:      vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84721:      vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84722:      vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84723:      vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84724:      vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84725-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84726:      vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84727-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84728:      vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84729-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84730:      vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84731-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84732:      vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84733-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84734:      vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84735-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84736:      vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84737:      vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84738:      vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84739:      vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84740:      vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84741:      vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84742:      vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84743:      vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84744:      vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84745-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84746:      vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84747-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84748-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84749:      vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84750-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84751:      vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84752:      vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84753-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84754:      vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84755-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84756:      vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84757:      vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84758:      vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84759-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84760:      vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84761-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84762:      vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84763:      vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84764:      vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84765:      vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84766:      vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84767:      vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84768:      vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84769:      vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84770:      vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84771:      vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84772-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84773:      vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84774-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84775:      vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84776:      vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84777:      vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84778:      vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84779:      vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84780:      vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84781:      vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84782:      vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84783:      vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84784:      vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84785:      vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84786-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84787:      vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84788-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84789:      vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84790:      vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84791:      vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84792-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84793:      vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84794-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84795-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84796:      vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84797-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84798-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84799:      vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84800-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84801:      vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84802:      vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84803:      vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84804:      vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84805:      vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84806:      vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84807:      vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84808:      vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84809-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84810:      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84811-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84812:      vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84813:      vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84814:      vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84815:      vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84816:      vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84817:      vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84818:      vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84819-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84820:      vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84821-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84822:      vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84823:      vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84824:      vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84825:      vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84826:      vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84827:      vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84828-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84829:      vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84830-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84831:      vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84832-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84833:      vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84834-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84835:      vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84836:      vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84837:      vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84838:      vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84839:      vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84840:      vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84841:      vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84842-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84843:      vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84844-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84845:      vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84846:      vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84847:      vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84848:      vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84849:      vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84850:      vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84851:      vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84852:      vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84853:      vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84854:      vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84855:      vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84856:      vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84857:      vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84858:      vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84859:      vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84860:      vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84861:      vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84862:      vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84863:      vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84864:      vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84865:      vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84866:      vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84867:      vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84868:      vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84869:      vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84870:      vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84871-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84872:      vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84873-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84874:      vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84875:      vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84876:      vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84877:      vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84878:      vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84879:      vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84880:      vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84881:      vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84882:      vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84883-    }
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84887-      VkDevice device = static_cast<VkDevice>(deviceCpp);
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84888:      vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84889:      vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84890:      vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84891:      vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84892:      vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84893:      vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84894:      vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84895:      vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84896:      vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84897:      vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84898:      vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84899:      vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84900:      vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84901:      vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84902:      vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84903:      vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84904:      vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84905-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84906:      vkCmdBuildAccelerationStructureIndirectKHR = PFN_vkCmdBuildAccelerationStructureIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureIndirectKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84907-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84908-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84909:      vkCmdBuildAccelerationStructureKHR = PFN_vkCmdBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84910-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84911:      vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84912:      vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84913:      vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84914:      vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84915-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84916:      vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84917-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84918:      vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84919-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84920:      vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84921-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84922:      vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84923:      vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84924:      vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84925:      vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84926-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84927:      vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84928-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84929:      vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84930:      vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84931:      vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84932:      vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84933:      vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84934:      vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84935:      vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84936:      vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84937:      vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84938:      vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84939:      vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84940:      vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84941:      vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84942:      vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84943:      vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84944:      vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84945:      vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84946:      vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84947:      vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84948:      vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84949:      vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84950:      vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84951:      vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84952:      vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84953:      vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84954:      vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84955:      vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84956:      vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84957:      vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84958:      vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84959:      vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84960:      vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84961:      vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84962:      vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84963:      vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84964:      vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84965:      vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84966:      vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84967:      vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84968:      vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84969:      vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84970:      vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84971:      vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84972:      vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84973:      vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84974:      vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84975:      vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84976:      vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84977:      vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84978:      vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84979:      vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84980:      vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84981:      vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84982:      vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84983:      vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84984:      vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84985:      vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84986:      vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84987:      vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84988:      vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84989:      vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84990:      vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84991:      vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84992:      vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84993:      vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84994:      vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84995:      vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84996:      vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84997-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:84998:      vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-84999-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85000-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85001:      vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85002-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85003:      vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85004:      vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85005:      vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85006:      vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85007:      vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85008:      vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85009:      vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85010:      vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85011:      vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85012-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85013:      vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85014-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85015:      vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85016:      vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85017:      vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85018:      vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85019:      vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85020:      vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85021:      vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85022:      vkBindAccelerationStructureMemoryKHR = PFN_vkBindAccelerationStructureMemoryKHR( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85023:      vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85024:      vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85025:      vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85026:      vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85027:      vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85028:      vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85029:      vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85030-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85031:      vkBuildAccelerationStructureKHR = PFN_vkBuildAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85032-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85033:      vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85034-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85035:      vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85036-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85037-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85038:      vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85039-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85040-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85041:      vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85042-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85043-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85044:      vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85045-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85046:      vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85047:      vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85048:      vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85049:      vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85050:      vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85051-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85052:      vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85053-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85054:      vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85055:      vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85056:      vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85057:      vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85058:      vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85059:      vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85060:      vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85061:      vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85062:      vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85063:      vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85064:      vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85065:      vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85066:      vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85067:      vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85068:      vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85069-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85070:      vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85071-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85072:      vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85073:      vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85074:      vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85075:      vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85076:      vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85077:      vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85078:      vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85079:      vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85080:      vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85081:      vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85082:      vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85083:      vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85084:      vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85085:      vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85086-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85087:      vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85088-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85089:      vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85090:      vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85091:      vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85092:      vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85093:      vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85094-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85095:      vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85096-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85097:      vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85098:      vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85099:      vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85100:      vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85101:      vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85102:      vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85103:      vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85104:      vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85105:      vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85106:      vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85107:      vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85108:      vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85109:      vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85110:      vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85111:      vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85112:      vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85113:      vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85114:      vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85115:      vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85116:      vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85117:      vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85118:      vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85119:      vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85120:      vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85121:      vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85122:      vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85123:      vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85124:      vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85125:      vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85126:      vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85127-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85128:      vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85129-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85130:      vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85131-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85132:      vkGetAccelerationStructureMemoryRequirementsKHR = PFN_vkGetAccelerationStructureMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85133-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85134:      vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85135-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85136:      vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85137-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85138:      vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85139:      vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85140:      vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85141:      vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85142:      vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85143:      vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85144:      vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85145:      vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85146:      vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85147-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85148:      vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85149-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85150-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85151:      vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85152-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85153:      vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85154:      vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85155-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85156:      vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85157-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85158:      vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85159:      vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85160:      vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85161-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85162:      vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85163-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85164:      vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85165:      vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85166:      vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85167:      vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85168:      vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85169:      vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85170:      vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85171:      vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85172:      vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85173:      vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85174-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85175:      vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85176-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85177:      vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85178:      vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85179:      vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85180:      vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85181:      vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85182:      vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85183:      vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85184:      vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85185:      vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85186:      vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85187:      vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85188-#ifdef VK_USE_PLATFORM_ANDROID_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85189:      vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85190-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85191:      vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85192:      vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85193:      vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85194-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85195:      vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85196-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85197-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85198:      vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85199-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85200-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85201:      vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85202-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85203:      vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85204:      vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85205:      vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85206:      vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85207:      vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85208:      vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85209:      vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85210:      vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85211-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85212:      vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85213-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85214:      vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85215:      vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85216:      vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85217:      vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85218:      vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85219:      vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85220:      vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85221-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85222:      vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85223-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85224:      vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85225:      vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85226:      vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85227:      vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85228:      vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85229:      vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85230-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85231:      vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85232-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85233:      vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85234-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85235:      vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85236-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85237:      vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85238:      vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85239:      vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85240:      vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85241:      vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85242:      vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85243:      vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85244-#ifdef VK_USE_PLATFORM_WIN32_KHR
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85245:      vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85246-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85247:      vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85248:      vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85249:      vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85250:      vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85251:      vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85252:      vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85253:      vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85254:      vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85255:      vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85256:      vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85257:      vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85258:      vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85259:      vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85260:      vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85261:      vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85262:      vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85263:      vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85264:      vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85265:      vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85266:      vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85267:      vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85268:      vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85269:      vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85270:      vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85271:      vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85272:      vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85273-#ifdef VK_ENABLE_BETA_EXTENSIONS
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85274:      vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85275-#endif /*VK_ENABLE_BETA_EXTENSIONS*/
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85276:      vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85277:      vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85278:      vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85279:      vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85280:      vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85281:      vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85282:      vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85283:      vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp:85284:      vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan.hpp-85285-    }
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan_core.h-3249-
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan_core.h:3250:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan_core.h-3251-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan_core.h-3253-
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan_core.h:3254:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/vulkan_headers/include/vulkan/vulkan_core.h-3255-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/BUILD.md-124-The CMake configuration files set the default install directory location to
chromium-84.0.4147.105/third_party/vulkan_headers/BUILD.md:125:`$CMAKE_BINARY_DIR\install`, which is a child of your build directory. In this
chromium-84.0.4147.105/third_party/vulkan_headers/BUILD.md-126-example, the install directory becomes the `Vulkan-Headers\build\install`
##############################################
chromium-84.0.4147.105/third_party/vulkan_headers/BUILD.md-230-The above `cmake` command sets the install directory to
chromium-84.0.4147.105/third_party/vulkan_headers/BUILD.md:231:`$CMAKE_BINARY_DIR/install`, which is a child of your `build` directory. In
chromium-84.0.4147.105/third_party/vulkan_headers/BUILD.md-232-this example, the install directory becomes the `Vulkan-Headers/build/install`
##############################################
chromium-84.0.4147.105/third_party/libavif/src/.travis.yml-15-  - ./configure && make -j2 && sudo make install
chromium-84.0.4147.105/third_party/libavif/src/.travis.yml:16:  - nasm --version
chromium-84.0.4147.105/third_party/libavif/src/.travis.yml-17-  - pip3 --disable-pip-version-check install setuptools
##############################################
chromium-84.0.4147.105/third_party/libavif/src/tests/docker/build.sh-32-./configure --prefix=/usr && make -j2 && make install
chromium-84.0.4147.105/third_party/libavif/src/tests/docker/build.sh:33:nasm --version
chromium-84.0.4147.105/third_party/libavif/src/tests/docker/build.sh-34-
##############################################
chromium-84.0.4147.105/third_party/libavif/src/appveyor.yml-17- - set PATH=%PATH%;%CD%\NASM;
chromium-84.0.4147.105/third_party/libavif/src/appveyor.yml:18: - nasm -v
chromium-84.0.4147.105/third_party/libavif/src/appveyor.yml-19- # Build libaom and dav1d
##############################################
chromium-84.0.4147.105/third_party/libgav1/src/src/yuv_buffer.cc-161-#endif
chromium-84.0.4147.105/third_party/libgav1/src/src/yuv_buffer.cc:162:    buffer_[kPlaneY] = AlignAddr(
chromium-84.0.4147.105/third_party/libgav1/src/src/yuv_buffer.cc-163-        y_buffer + (top_border * y_stride) + left_border_bytes, plane_align);
chromium-84.0.4147.105/third_party/libgav1/src/src/yuv_buffer.cc-164-    buffer_[kPlaneU] =
chromium-84.0.4147.105/third_party/libgav1/src/src/yuv_buffer.cc:165:        AlignAddr(u_buffer + (uv_top_border * uv_stride) + uv_left_border_bytes,
chromium-84.0.4147.105/third_party/libgav1/src/src/yuv_buffer.cc-166-                  plane_align);
chromium-84.0.4147.105/third_party/libgav1/src/src/yuv_buffer.cc-167-    buffer_[kPlaneV] =
chromium-84.0.4147.105/third_party/libgav1/src/src/yuv_buffer.cc:168:        AlignAddr(v_buffer + (uv_top_border * uv_stride) + uv_left_border_bytes,
chromium-84.0.4147.105/third_party/libgav1/src/src/yuv_buffer.cc-169-                  plane_align);
##############################################
chromium-84.0.4147.105/third_party/libgav1/src/src/frame_buffer.cc-138-  }
chromium-84.0.4147.105/third_party/libgav1/src/src/frame_buffer.cc:139:  frame_buffer->plane[0] = libgav1::AlignAddr(y_buffer + info->y_plane_offset,
chromium-84.0.4147.105/third_party/libgav1/src/src/frame_buffer.cc-140-                                              info->stride_alignment);
chromium-84.0.4147.105/third_party/libgav1/src/src/frame_buffer.cc:141:  frame_buffer->plane[1] = libgav1::AlignAddr(u_buffer + info->uv_plane_offset,
chromium-84.0.4147.105/third_party/libgav1/src/src/frame_buffer.cc-142-                                              info->stride_alignment);
chromium-84.0.4147.105/third_party/libgav1/src/src/frame_buffer.cc:143:  frame_buffer->plane[2] = libgav1::AlignAddr(v_buffer + info->uv_plane_offset,
chromium-84.0.4147.105/third_party/libgav1/src/src/frame_buffer.cc-144-                                              info->stride_alignment);
##############################################
chromium-84.0.4147.105/third_party/libgav1/src/src/utils/common.h-51-// Aligns |addr| to the desired |alignment|. |alignment| must be a power of 2.
chromium-84.0.4147.105/third_party/libgav1/src/src/utils/common.h:52:inline uint8_t* AlignAddr(uint8_t* const addr, const uintptr_t alignment) {
chromium-84.0.4147.105/third_party/libgav1/src/src/utils/common.h-53-  const auto value = reinterpret_cast<uintptr_t>(addr);
##############################################
chromium-84.0.4147.105/third_party/libgav1/src/src/dsp/libgav1_dsp.cmake-19-
chromium-84.0.4147.105/third_party/libgav1/src/src/dsp/libgav1_dsp.cmake:20:include("${libgav1_root}/cmake/libgav1_targets.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/src/dsp/libgav1_dsp.cmake-21-
##############################################
chromium-84.0.4147.105/third_party/libgav1/src/cmake/toolchains/android.cmake-52-
chromium-84.0.4147.105/third_party/libgav1/src/cmake/toolchains/android.cmake:53:include("${LIBGAV1_ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake")
##############################################
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt-40-
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:41:include("${libgav1_examples}/libgav1_examples.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:42:include("${libgav1_root}/cmake/libgav1_build_definitions.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:43:include("${libgav1_root}/cmake/libgav1_cpu_detection.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:44:include("${libgav1_root}/cmake/libgav1_flags.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:45:include("${libgav1_root}/cmake/libgav1_helpers.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:46:include("${libgav1_root}/cmake/libgav1_install.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:47:include("${libgav1_root}/cmake/libgav1_intrinsics.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:48:include("${libgav1_root}/cmake/libgav1_options.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:49:include("${libgav1_root}/cmake/libgav1_sanitizer.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:50:include("${libgav1_root}/cmake/libgav1_targets.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:51:include("${libgav1_root}/cmake/libgav1_variables.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:52:include("${libgav1_source}/dsp/libgav1_dsp.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:53:include("${libgav1_source}/libgav1_decoder.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt:54:include("${libgav1_source}/utils/libgav1_utils.cmake")
chromium-84.0.4147.105/third_party/libgav1/src/CMakeLists.txt-55-
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc-69-  int64_t tbr;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc:70:  asm volatile("mfspr %0, 268" : "=r"(tbr));
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc-71-  return tbr;
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc-73-  int32_t tbu, tbl, tmp;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc:74:  asm volatile(
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc-75-      "0:\n"
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc-111-  int64_t virtual_timer_value;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc:112:  asm volatile("mrs %0, cntvct_el0" : "=r"(virtual_timer_value));
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc-113-  return virtual_timer_value;
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc-117-  uint64_t aarch64_timer_frequency;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc:118:  asm volatile("mrs %0, cntfrq_el0" : "=r"(aarch64_timer_frequency));
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc-119-  return aarch64_timer_frequency;
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unique_small_name_test.cc-26-#ifdef __GNUC__
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unique_small_name_test.cc:27:  asm volatile("" : "+m"(const_cast<T&>(var)));
chromium-84.0.4147.105/third_party/abseil-cpp/absl/base/internal/unique_small_name_test.cc-28-#else
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/container/internal/raw_hash_set_test.cc-1773-  table.insert(0);
chromium-84.0.4147.105/third_party/abseil-cpp/absl/container/internal/raw_hash_set_test.cc:1774:  const uintptr_t old_ptr = addr(0);
chromium-84.0.4147.105/third_party/abseil-cpp/absl/container/internal/raw_hash_set_test.cc-1775-
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/container/internal/raw_hash_set_test.cc-1778-
chromium-84.0.4147.105/third_party/abseil-cpp/absl/container/internal/raw_hash_set_test.cc:1779:  EXPECT_NE(old_ptr, addr(0));
chromium-84.0.4147.105/third_party/abseil-cpp/absl/container/internal/raw_hash_set_test.cc-1780-}
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/types/optional_test.cc-947-  int value = v;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/types/optional_test.cc:948:  constexpr DeletedOpAddr() = default;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/types/optional_test.cc-949-  constexpr const DeletedOpAddr<v>* operator&() const = delete;  // NOLINT
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc-53-    (defined(__GNUC__) && __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 9)
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc:54:// ...or, on GCC, we can use an ASM directive to
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc-55-// instruct the assember to allow crypto instructions.
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc-194-
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc:195:// This asm directive will cause the file to be compiled with crypto extensions
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc-196-// whether or not the cpu-architecture supports it.
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-150-  // works for built-in types (typically FuncOutput).
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc:151:  asm volatile("" : "+r"(output) : : "memory");
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-152-#else
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-217-#if defined(ABSL_ARCH_PPC)
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc:218:  asm volatile("mfspr %0, %1" : "=r"(t) : "i"(268));
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-219-#elif defined(ABSL_ARCH_X86_64)
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-228-#else
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc:229:  asm volatile(
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-230-      "lfence\n\t"
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-260-#else
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc:261:  // Use inline asm because __rdtscp generates code to store TSC_AUX (ecx).
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc:262:  asm volatile(
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-263-      "rdtscp\n\t"
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-293-#else
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc:294:  asm volatile(
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-295-      "lfence\n\t"
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-319-#else
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc:320:  // Use inline asm because __rdtscp generates code to store TSC_AUX (ecx).
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc:321:  asm volatile(
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/nanobenchmark.cc-322-      "rdtscp\n\t"
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/randen_detect.cc-206-  //   uint64_t val;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/randen_detect.cc:207:  //   __asm __volatile("mrs %0, id_aa64isar0_el1" :"=&r" (val));
chromium-84.0.4147.105/third_party/abseil-cpp/absl/random/internal/randen_detect.cc-208-  //
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc-166-  // and Darwin 8.8.1 (Tiger) use as 1.38.  This means we have to use a
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc:167:  // different asm syntax.  I don't know quite the best way to discriminate
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc-168-  // systems using the old as from the new one; I've gone with __APPLE__.
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h-95-  const char*          GetDynstr(ElfW(Word) offset) const;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h:96:  const void*          GetSymAddr(const ElfW(Sym) *sym) const;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h-97-  const char*          GetVerstr(ElfW(Word) offset) const;
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc-118-
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc:119:const void *ElfMemImage::GetSymAddr(const ElfW(Sym) *sym) const {
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc-120-  if (sym->st_shndx == SHN_UNDEF || sym->st_shndx >= SHN_LORESERVE) {
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc-373-  info_.version = version_name;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc:374:  info_.address = image->GetSymAddr(symbol);
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc-375-  info_.symbol  = symbol;
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc-64-  symbol->MaxNameLen = MAX_SYM_NAME;
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc:65:  if (!SymFromAddr(process, reinterpret_cast<DWORD64>(pc), nullptr, symbol)) {
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc-66-    return false;
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc-173-      : filename(nullptr),
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc:174:        start_addr(nullptr),
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc:175:        end_addr(nullptr),
chromium-84.0.4147.105/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc-176-        offset(0),
##############################################
chromium-84.0.4147.105/third_party/abseil-cpp/CMake/abslConfig.cmake.in-7-
chromium-84.0.4147.105/third_party/abseil-cpp/CMake/abslConfig.cmake.in:8:include ("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
##############################################
chromium-84.0.4147.105/third_party/d3/src/d3.min.js-1-// https://d3js.org v5.7.0 Copyright 2018 Mike Bostock
chromium-84.0.4147.105/third_party/d3/src/d3.min.js:2:!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})}(this,function(t){"use strict";function n(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function e(t){var e;return 1===t.length&&(e=t,t=function(t,r){return n(e(t),r)}),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}}var r=e(n),i=r.right,o=r.left;function a(t,n){return[t,n]}function u(t){return null===t?NaN:+t}function f(t,n){var e,r,i=t.length,o=0,a=-1,f=0,c=0;if(null==n)for(;++a<i;)isNaN(e=u(t[a]))||(c+=(r=e-f)*(e-(f+=r/++o)));else for(;++a<i;)isNaN(e=u(n(t[a],a,t)))||(c+=(r=e-f)*(e-(f+=r/++o)));if(o>1)return c/(o-1)}function c(t,n){var e=f(t,n);return e?Math.sqrt(e):e}function s(t,n){var e,r,i,o=t.length,a=-1;if(null==n){for(;++a<o;)if(null!=(e=t[a])&&e>=e)for(r=i=e;++a<o;)null!=(e=t[a])&&(r>e&&(r=e),i<e&&(i=e))}else for(;++a<o;)if(null!=(e=n(t[a],a,t))&&e>=e)for(r=i=e;++a<o;)null!=(e=n(t[a],a,t))&&(r>e&&(r=e),i<e&&(i=e));return[r,i]}var l=Array.prototype,h=l.slice,d=l.map;function p(t){return function(){return t}}function v(t){return t}function g(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o}var y=Math.sqrt(50),_=Math.sqrt(10),b=Math.sqrt(2);function m(t,n,e){var r,i,o,a,u=-1;if(e=+e,(t=+t)===(n=+n)&&e>0)return[t];if((r=n<t)&&(i=t,t=n,n=i),0===(a=x(t,n,e))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),n=Math.floor(n/a),o=new Array(i=Math.ceil(n-t+1));++u<i;)o[u]=(t+u)*a;else for(t=Math.floor(t*a),n=Math.ceil(n*a),o=new Array(i=Math.ceil(t-n+1));++u<i;)o[u]=(t-u)/a;return r&&o.reverse(),o}function x(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=y?10:o>=_?5:o>=b?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=y?10:o>=_?5:o>=b?2:1)}function w(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=y?i*=10:o>=_?i*=5:o>=b&&(i*=2),n<t?-i:i}function M(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function A(t,n,e){if(null==e&&(e=u),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),a=+e(t[o],o,t);return a+(+e(t[o+1],o+1,t)-a)*(i-o)}}function T(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&e>r&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&e>r&&(r=e);return r}function N(t){for(var n,e,r,i=t.length,o=-1,a=0;++o<i;)a+=t[o].length;for(e=new Array(a);--i>=0;)for(n=(r=t[i]).length;--n>=0;)e[--a]=r[n];return e}function S(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&r>e&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&r>e&&(r=e);return r}function E(t){if(!(i=t.length))return[];for(var n=-1,e=S(t,k),r=new Array(e);++n<e;)for(var i,o=-1,a=r[n]=new Array(i);++o<i;)a[o]=t[o][n];return r}function k(t){return t.length}var C=Array.prototype.slice;function P(t){return t}var z=1,R=2,L=3,D=4,U=1e-6;function q(t){return"translate("+(t+.5)+",0)"}function O(t){return"translate(0,"+(t+.5)+")"}function Y(){return!this.__axis}function B(t,n){var e=[],r=null,i=null,o=6,a=6,u=3,f=t===z||t===D?-1:1,c=t===D||t===R?"x":"y",s=t===z||t===L?q:O;function l(l){var h=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,d=null==i?n.tickFormat?n.tickFormat.apply(n,e):P:i,p=Math.max(o,0)+u,v=n.range(),g=+v[0]+.5,y=+v[v.length-1]+.5,_=(n.bandwidth?function(t){var n=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(n=Math.round(n)),function(e){return+t(e)+n}}:function(t){return function(n){return+t(n)}})(n.copy()),b=l.selection?l.selection():l,m=b.selectAll(".domain").data([null]),x=b.selectAll(".tick").data(h,n).order(),w=x.exit(),M=x.enter().append("g").attr("class","tick"),A=x.select("line"),T=x.select("text");m=m.merge(m.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),x=x.merge(M),A=A.merge(M.append("line").attr("stroke","currentColor").attr(c+"2",f*o)),T=T.merge(M.append("text").attr("fill","currentColor").attr(c,f*p).attr("dy",t===z?"0em":t===L?"0.71em":"0.32em")),l!==b&&(m=m.transition(l),x=x.transition(l),A=A.transition(l),T=T.transition(l),w=w.transition(l).attr("opacity",U).attr("transform",function(t){return isFinite(t=_(t))?s(t):this.getAttribute("transform")}),M.attr("opacity",U).attr("transform",function(t){var n=this.parentNode.__axis;return s(n&&isFinite(n=n(t))?n:_(t))})),w.remove(),m.attr("d",t===D||t==R?a?"M"+f*a+","+g+"H0.5V"+y+"H"+f*a:"M0.5,"+g+"V"+y:a?"M"+g+","+f*a+"V0.5H"+y+"V"+f*a:"M"+g+",0.5H"+y),x.attr("opacity",1).attr("transform",function(t){return s(_(t))}),A.attr(c+"2",f*o),T.attr(c,f*p).text(d),b.filter(Y).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===R?"start":t===D?"end":"middle"),b.each(function(){this.__axis=_})}return l.scale=function(t){return arguments.length?(n=t,l):n},l.ticks=function(){return e=C.call(arguments),l},l.tickArguments=function(t){return arguments.length?(e=null==t?[]:C.call(t),l):e.slice()},l.tickValues=function(t){return arguments.length?(r=null==t?null:C.call(t),l):r&&r.slice()},l.tickFormat=function(t){return arguments.length?(i=t,l):i},l.tickSize=function(t){return arguments.length?(o=a=+t,l):o},l.tickSizeInner=function(t){return arguments.length?(o=+t,l):o},l.tickSizeOuter=function(t){return arguments.length?(a=+t,l):a},l.tickPadding=function(t){return arguments.length?(u=+t,l):u},l}var F={value:function(){}};function I(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new H(r)}function H(t){this._=t}function j(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function X(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=F,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}H.prototype=I.prototype={constructor:H,on:function(t,n){var e,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}})),a=-1,u=o.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a<u;)if(e=(t=o[a]).type)i[e]=X(i[e],t.name,n);else if(null==n)for(e in i)i[e]=X(i[e],t.name,null);return this}for(;++a<u;)if((e=(t=o[a]).type)&&(e=j(i[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new H(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var G="http://www.w3.org/1999/xhtml",V={svg:"http://www.w3.org/2000/svg",xhtml:G,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function $(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),V.hasOwnProperty(n)?{space:V[n],local:t}:t}function W(t){var n=$(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===G&&n.documentElement.namespaceURI===G?n.createElement(t):n.createElementNS(e,t)}})(n)}function Z(){}function Q(t){return null==t?Z:function(){return this.querySelector(t)}}function J(){return[]}function K(t){return null==t?J:function(){return this.querySelectorAll(t)}}var tt=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var nt=document.documentElement;if(!nt.matches){var et=nt.webkitMatchesSelector||nt.msMatchesSelector||nt.mozMatchesSelector||nt.oMatchesSelector;tt=function(t){return function(){return et.call(this,t)}}}}var rt=tt;function it(t){return new Array(t.length)}function ot(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}ot.prototype={constructor:ot,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var at="$";function ut(t,n,e,r,i,o){for(var a,u=0,f=n.length,c=o.length;u<c;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new ot(t,o[u]);for(;u<f;++u)(a=n[u])&&(i[u]=a)}function ft(t,n,e,r,i,o,a){var u,f,c,s={},l=n.length,h=o.length,d=new Array(l);for(u=0;u<l;++u)(f=n[u])&&(d[u]=c=at+a.call(f,f.__data__,u,n),c in s?i[u]=f:s[c]=f);for(u=0;u<h;++u)(f=s[c=at+a.call(t,o[u],u,o)])?(r[u]=f,f.__data__=o[u],s[c]=null):e[u]=new ot(t,o[u]);for(u=0;u<l;++u)(f=n[u])&&s[d[u]]===f&&(i[u]=f)}function ct(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function st(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function lt(t,n){return t.style.getPropertyValue(n)||st(t).getComputedStyle(t,null).getPropertyValue(n)}function ht(t){return t.trim().split(/^|\s+/)}function dt(t){return t.classList||new pt(t)}function pt(t){this._node=t,this._names=ht(t.getAttribute("class")||"")}function vt(t,n){for(var e=dt(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function gt(t,n){for(var e=dt(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function yt(){this.textContent=""}function _t(){this.innerHTML=""}function bt(){this.nextSibling&&this.parentNode.appendChild(this)}function mt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function xt(){return null}function wt(){var t=this.parentNode;t&&t.removeChild(this)}function Mt(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function At(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}pt.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Tt={};(t.event=null,"undefined"!=typeof document)&&("onmouseenter"in document.documentElement||(Tt={mouseenter:"mouseover",mouseleave:"mouseout"}));function Nt(t,n,e){return t=St(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function St(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function Et(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function kt(t,n,e){var r=Tt.hasOwnProperty(t.type)?Nt:St;return function(i,o,a){var u,f=this.__on,c=r(n,o,a);if(f)for(var s=0,l=f.length;s<l;++s)if((u=f[s]).type===t.type&&u.name===t.name)return this.removeEventListener(u.type,u.listener,u.capture),this.addEventListener(u.type,u.listener=c,u.capture=e),void(u.value=n);this.addEventListener(t.type,c,e),u={type:t.type,name:t.name,value:n,listener:c,capture:e},f?f.push(u):this.__on=[u]}}function Ct(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function Pt(t,n,e){var r=st(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}var zt=[null];function Rt(t,n){this._groups=t,this._parents=n}function Lt(){return new Rt([[document.documentElement]],zt)}function Dt(t){return"string"==typeof t?new Rt([[document.querySelector(t)]],[document.documentElement]):new Rt([[t]],zt)}Rt.prototype=Lt.prototype={constructor:Rt,select:function(t){"function"!=typeof t&&(t=Q(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,u=n[i],f=u.length,c=r[i]=new Array(f),s=0;s<f;++s)(o=u[s])&&(a=t.call(o,o.__data__,s,u))&&("__data__"in o&&(a.__data__=o.__data__),c[s]=a);return new Rt(r,this._parents)},selectAll:function(t){"function"!=typeof t&&(t=K(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,u=n[o],f=u.length,c=0;c<f;++c)(a=u[c])&&(r.push(t.call(a,a.__data__,c,u)),i.push(a));return new Rt(r,i)},filter:function(t){"function"!=typeof t&&(t=rt(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,f=r[i]=[],c=0;c<u;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&f.push(o);return new Rt(r,this._parents)},data:function(t,n){if(!t)return p=new Array(this.size()),s=-1,this.each(function(t){p[++s]=t}),p;var e,r=n?ft:ut,i=this._parents,o=this._groups;"function"!=typeof t&&(e=t,t=function(){return e});for(var a=o.length,u=new Array(a),f=new Array(a),c=new Array(a),s=0;s<a;++s){var l=i[s],h=o[s],d=h.length,p=t.call(l,l&&l.__data__,s,i),v=p.length,g=f[s]=new Array(v),y=u[s]=new Array(v);r(l,h,g,y,c[s]=new Array(d),p,n);for(var _,b,m=0,x=0;m<v;++m)if(_=g[m]){for(m>=x&&(x=m+1);!(b=y[x])&&++x<v;);_._next=b||null}}return(u=new Rt(u,i))._enter=f,u._exit=c,u},enter:function(){return new Rt(this._enter||this._groups.map(it),this._parents)},exit:function(){return new Rt(this._exit||this._groups.map(it),this._parents)},merge:function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var f,c=n[u],s=e[u],l=c.length,h=a[u]=new Array(l),d=0;d<l;++d)(f=c[d]||s[d])&&(h[d]=f);for(;u<r;++u)a[u]=n[u];return new Rt(a,this._parents)},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=ct);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,u=e[o],f=u.length,c=i[o]=new Array(f),s=0;s<f;++s)(a=u[s])&&(c[s]=a);c.sort(n)}return new Rt(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){var t=0;return this.each(function(){++t}),t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=$(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?e.local?function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}:function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}:e.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):lt(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=ht(t+"");if(arguments.length<2){for(var r=dt(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?vt:gt)(this,t)}}:n?function(t){return function(){vt(this,t)}}:function(t){return function(){gt(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?yt:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?_t:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(bt)},lower:function(){return this.each(mt)},append:function(t){var n="function"==typeof t?t:W(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:W(t),r=null==n?xt:"function"==typeof n?n:Q(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(wt)},clone:function(t){return this.select(t?At:Mt)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=function(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?kt:Et,null==e&&(e=!1),r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var f,c=0,s=u.length;c<s;++c)for(r=0,f=u[c];r<a;++r)if((i=o[r]).type===f.type&&i.name===f.name)return f.value},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return Pt(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return Pt(this,t,n)}})(t,n))}};var Ut=0;function qt(){return new Ot}function Ot(){this._="@"+(++Ut).toString(36)}function Yt(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e}function Bt(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]}function Ft(t){var n=Yt();return n.changedTouches&&(n=n.changedTouches[0]),Bt(t,n)}function It(t,n,e){arguments.length<3&&(e=n,n=Yt().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return Bt(t,r);return null}function Ht(){t.event.stopImmediatePropagation()}function jt(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function Xt(t){var n=t.document.documentElement,e=Dt(t).on("dragstart.drag",jt,!0);"onselectstart"in n?e.on("selectstart.drag",jt,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function Gt(t,n){var e=t.document.documentElement,r=Dt(t).on("dragstart.drag",null);n&&(r.on("click.drag",jt,!0),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function Vt(t){return function(){return t}}function $t(t,n,e,r,i,o,a,u,f,c){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=a,this.dx=u,this.dy=f,this._=c}function Wt(){return!t.event.button}function Zt(){return this.parentNode}function Qt(n){return null==n?{x:t.event.x,y:t.event.y}:n}function Jt(){return"ontouchstart"in this}function Kt(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function tn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function nn(){}Ot.prototype=qt.prototype={constructor:Ot,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}},$t.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var en="\\s*([+-]?\\d+)\\s*",rn="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",on="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",an=/^#([0-9a-f]{3})$/,un=/^#([0-9a-f]{6})$/,fn=new RegExp("^rgb\\("+[en,en,en]+"\\)$"),cn=new RegExp("^rgb\\("+[on,on,on]+"\\)$"),sn=new RegExp("^rgba\\("+[en,en,en,rn]+"\\)$"),ln=new RegExp("^rgba\\("+[on,on,on,rn]+"\\)$"),hn=new RegExp("^hsl\\("+[rn,on,on]+"\\)$"),dn=new RegExp("^hsla\\("+[rn,on,on,rn]+"\\)$"),pn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function vn(t){var n;return t=(t+"").trim().toLowerCase(),(n=an.exec(t))?new mn((n=parseInt(n[1],16))>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):(n=un.exec(t))?gn(parseInt(n[1],16)):(n=fn.exec(t))?new mn(n[1],n[2],n[3],1):(n=cn.exec(t))?new mn(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=sn.exec(t))?yn(n[1],n[2],n[3],n[4]):(n=ln.exec(t))?yn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=hn.exec(t))?wn(n[1],n[2]/100,n[3]/100,1):(n=dn.exec(t))?wn(n[1],n[2]/100,n[3]/100,n[4]):pn.hasOwnProperty(t)?gn(pn[t]):"transparent"===t?new mn(NaN,NaN,NaN,0):null}function gn(t){return new mn(t>>16&255,t>>8&255,255&t,1)}function yn(t,n,e,r){return r<=0&&(t=n=e=NaN),new mn(t,n,e,r)}function _n(t){return t instanceof nn||(t=vn(t)),t?new mn((t=t.rgb()).r,t.g,t.b,t.opacity):new mn}function bn(t,n,e,r){return 1===arguments.length?_n(t):new mn(t,n,e,null==r?1:r)}function mn(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function xn(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function wn(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new An(t,n,e,r)}function Mn(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof An)return new An(t.h,t.s,t.l,t.opacity);if(t instanceof nn||(t=vn(t)),!t)return new An;if(t instanceof An)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,f=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=f<.5?o+i:2-o-i,a*=60):u=f>0&&f<1?0:a,new An(a,u,f,t.opacity)}(t):new An(t,n,e,null==r?1:r)}function An(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Tn(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Kt(nn,vn,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),Kt(mn,bn,tn(nn,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new mn(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new mn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+xn(this.r)+xn(this.g)+xn(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),Kt(An,Mn,tn(nn,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new An(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new An(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new mn(Tn(t>=240?t-240:t+120,i,r),Tn(t,i,r),Tn(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Nn=Math.PI/180,Sn=180/Math.PI,En=.96422,kn=1,Cn=.82521,Pn=4/29,zn=6/29,Rn=3*zn*zn,Ln=zn*zn*zn;function Dn(t){if(t instanceof qn)return new qn(t.l,t.a,t.b,t.opacity);if(t instanceof jn){if(isNaN(t.h))return new qn(t.l,0,0,t.opacity);var n=t.h*Nn;return new qn(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof mn||(t=_n(t));var e,r,i=Fn(t.r),o=Fn(t.g),a=Fn(t.b),u=On((.2225045*i+.7168786*o+.0606169*a)/kn);return i===o&&o===a?e=r=u:(e=On((.4360747*i+.3850649*o+.1430804*a)/En),r=On((.0139322*i+.0971045*o+.7141733*a)/Cn)),new qn(116*u-16,500*(e-u),200*(u-r),t.opacity)}function Un(t,n,e,r){return 1===arguments.length?Dn(t):new qn(t,n,e,null==r?1:r)}function qn(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function On(t){return t>Ln?Math.pow(t,1/3):t/Rn+Pn}function Yn(t){return t>zn?t*t*t:Rn*(t-Pn)}function Bn(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Fn(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function In(t){if(t instanceof jn)return new jn(t.h,t.c,t.l,t.opacity);if(t instanceof qn||(t=Dn(t)),0===t.a&&0===t.b)return new jn(NaN,0,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*Sn;return new jn(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Hn(t,n,e,r){return 1===arguments.length?In(t):new jn(t,n,e,null==r?1:r)}function jn(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}Kt(qn,Un,tn(nn,{brighter:function(t){return new qn(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new qn(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return new mn(Bn(3.1338561*(n=En*Yn(n))-1.6168667*(t=kn*Yn(t))-.4906146*(e=Cn*Yn(e))),Bn(-.9787684*n+1.9161415*t+.033454*e),Bn(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),Kt(jn,Hn,tn(nn,{brighter:function(t){return new jn(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new jn(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Dn(this).rgb()}}));var Xn=-.14861,Gn=1.78277,Vn=-.29227,$n=-.90649,Wn=1.97294,Zn=Wn*$n,Qn=Wn*Gn,Jn=Gn*Vn-$n*Xn;function Kn(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof te)return new te(t.h,t.s,t.l,t.opacity);t instanceof mn||(t=_n(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Jn*r+Zn*n-Qn*e)/(Jn+Zn-Qn),o=r-i,a=(Wn*(e-i)-Vn*o)/$n,u=Math.sqrt(a*a+o*o)/(Wn*i*(1-i)),f=u?Math.atan2(a,o)*Sn-120:NaN;return new te(f<0?f+360:f,u,i,t.opacity)}(t):new te(t,n,e,null==r?1:r)}function te(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function ne(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}function ee(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return ne((e-r/n)*n,a,i,o,u)}}function re(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return ne((e-r/n)*n,i,o,a,u)}}function ie(t){return function(){return t}}function oe(t,n){return function(e){return t+e*n}}function ae(t,n){var e=n-t;return e?oe(t,e>180||e<-180?e-360*Math.round(e/360):e):ie(isNaN(t)?n:t)}function ue(t){return 1==(t=+t)?fe:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):ie(isNaN(n)?e:n)}}function fe(t,n){var e=n-t;return e?oe(t,e):ie(isNaN(t)?n:t)}Kt(te,Kn,tn(nn,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new te(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new te(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Nn,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new mn(255*(n+e*(Xn*r+Gn*i)),255*(n+e*(Vn*r+$n*i)),255*(n+e*(Wn*r)),this.opacity)}}));var ce=function t(n){var e=ue(n);function r(t,n){var r=e((t=bn(t)).r,(n=bn(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=fe(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function se(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;e<i;++e)r=bn(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}var le=se(ee),he=se(re);function de(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),a=new Array(r);for(e=0;e<i;++e)o[e]=me(t[e],n[e]);for(;e<r;++e)a[e]=n[e];return function(t){for(e=0;e<i;++e)a[e]=o[e](t);return a}}function pe(t,n){var e=new Date;return n-=t=+t,function(r){return e.setTime(t+n*r),e}}function ve(t,n){return n-=t=+t,function(e){return t+n*e}}function ge(t,n){var e,r={},i={};for(e in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)e in t?r[e]=me(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}}var ye=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,_e=new RegExp(ye.source,"g");function be(t,n){var e,r,i,o=ye.lastIndex=_e.lastIndex=0,a=-1,u=[],f=[];for(t+="",n+="";(e=ye.exec(t))&&(r=_e.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,f.push({i:a,x:ve(e,r)})),o=_e.lastIndex;return o<n.length&&(i=n.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?f[0]?function(t){return function(n){return t(n)+""}}(f[0].x):function(t){return function(){return t}}(n):(n=f.length,function(t){for(var e,r=0;r<n;++r)u[(e=f[r]).i]=e.x(t);return u.join("")})}function me(t,n){var e,r=typeof n;return null==n||"boolean"===r?ie(n):("number"===r?ve:"string"===r?(e=vn(n))?(n=e,ce):be:n instanceof vn?ce:n instanceof Date?pe:Array.isArray(n)?de:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?ge:ve)(t,n)}function xe(t,n){return n-=t=+t,function(e){return Math.round(t+n*e)}}var we,Me,Ae,Te,Ne=180/Math.PI,Se={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ee(t,n,e,r,i,o){var a,u,f;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(f=t*e+n*r)&&(e-=t*f,r-=n*f),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,f/=u),t*r<n*e&&(t=-t,n=-n,f=-f,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*Ne,skewX:Math.atan(f)*Ne,scaleX:a,scaleY:u}}function ke(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u=[],f=[];return o=t(o),a=t(a),function(t,r,i,o,a,u){if(t!==i||r!==o){var f=a.push("translate(",null,n,null,e);u.push({i:f-4,x:ve(t,i)},{i:f-2,x:ve(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,u,f),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:ve(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,f),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:ve(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,f),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:ve(t,e)},{i:u-2,x:ve(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,f),o=a=null,function(t){for(var n,e=-1,r=f.length;++e<r;)u[(n=f[e]).i]=n.x(t);return u.join("")}}}var Ce=ke(function(t){return"none"===t?Se:(we||(we=document.createElement("DIV"),Me=document.documentElement,Ae=document.defaultView),we.style.transform=t,t=Ae.getComputedStyle(Me.appendChild(we),null).getPropertyValue("transform"),Me.removeChild(we),Ee(+(t=t.slice(7,-1).split(","))[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},"px, ","px)","deg)"),Pe=ke(function(t){return null==t?Se:(Te||(Te=document.createElementNS("http://www.w3.org/2000/svg","g")),Te.setAttribute("transform",t),(t=Te.transform.baseVal.consolidate())?Ee((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Se)},", ",")",")"),ze=Math.SQRT2,Re=2,Le=4,De=1e-12;function Ue(t){return((t=Math.exp(t))+1/t)/2}function qe(t,n){var e,r,i=t[0],o=t[1],a=t[2],u=n[0],f=n[1],c=n[2],s=u-i,l=f-o,h=s*s+l*l;if(h<De)r=Math.log(c/a)/ze,e=function(t){return[i+t*s,o+t*l,a*Math.exp(ze*t*r)]};else{var d=Math.sqrt(h),p=(c*c-a*a+Le*h)/(2*a*Re*d),v=(c*c-a*a-Le*h)/(2*c*Re*d),g=Math.log(Math.sqrt(p*p+1)-p),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-g)/ze,e=function(t){var n,e=t*r,u=Ue(g),f=a/(Re*d)*(u*(n=ze*e+g,((n=Math.exp(2*n))-1)/(n+1))-function(t){return((t=Math.exp(t))-1/t)/2}(g));return[i+f*s,o+f*l,a*u/Ue(ze*e+g)]}}return e.duration=1e3*r,e}function Oe(t){return function(n,e){var r=t((n=Mn(n)).h,(e=Mn(e)).h),i=fe(n.s,e.s),o=fe(n.l,e.l),a=fe(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=a(t),n+""}}}var Ye=Oe(ae),Be=Oe(fe);function Fe(t){return function(n,e){var r=t((n=Hn(n)).h,(e=Hn(e)).h),i=fe(n.c,e.c),o=fe(n.l,e.l),a=fe(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=a(t),n+""}}}var Ie=Fe(ae),He=Fe(fe);function je(t){return function n(e){function r(n,r){var i=t((n=Kn(n)).h,(r=Kn(r)).h),o=fe(n.s,r.s),a=fe(n.l,r.l),u=fe(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=a(Math.pow(t,e)),n.opacity=u(t),n+""}}return e=+e,r.gamma=n,r}(1)}var Xe=je(ae),Ge=je(fe);var Ve,$e,We=0,Ze=0,Qe=0,Je=1e3,Ke=0,tr=0,nr=0,er="object"==typeof performance&&performance.now?performance:Date,rr="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ir(){return tr||(rr(or),tr=er.now()+nr)}function or(){tr=0}function ar(){this._call=this._time=this._next=null}function ur(t,n,e){var r=new ar;return r.restart(t,n,e),r}function fr(){ir(),++We;for(var t,n=Ve;n;)(t=tr-n._time)>=0&&n._call.call(null,t),n=n._next;--We}function cr(){tr=(Ke=er.now())+nr,We=Ze=0;try{fr()}finally{We=0,function(){var t,n,e=Ve,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Ve=n);$e=t,lr(r)}(),tr=0}}function sr(){var t=er.now(),n=t-Ke;n>Je&&(nr-=n,Ke=t)}function lr(t){We||(Ze&&(Ze=clearTimeout(Ze)),t-tr>24?(t<1/0&&(Ze=setTimeout(cr,t-er.now()-nr)),Qe&&(Qe=clearInterval(Qe))):(Qe||(Ke=er.now(),Qe=setInterval(sr,Je)),We=1,rr(cr)))}function hr(t,n,e){var r=new ar;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r}ar.prototype=ur.prototype={constructor:ar,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?ir():+e)+(null==n?0:+n),this._next||$e===this||($e?$e._next=this:Ve=this,$e=this),this._call=t,this._time=e,lr()},stop:function(){this._call&&(this._call=null,this._time=1/0,lr())}};var dr=I("start","end","interrupt"),pr=[],vr=0,gr=1,yr=2,_r=3,br=4,mr=5,xr=6;function wr(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(f){var c,s,l,h;if(e.state!==gr)return u();for(c in i)if((h=i[c]).name===e.name){if(h.state===_r)return hr(o);h.state===br?(h.state=xr,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[c]):+c<n&&(h.state=xr,h.timer.stop(),delete i[c])}if(hr(function(){e.state===_r&&(e.state=br,e.timer.restart(a,e.delay,e.time),a(f))}),e.state=yr,e.on.call("start",t,t.__data__,e.index,e.group),e.state===yr){for(e.state=_r,r=new Array(l=e.tween.length),c=0,s=-1;c<l;++c)(h=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(r[++s]=h);r.length=s+1}}function a(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(u),e.state=mr,1),o=-1,a=r.length;++o<a;)r[o].call(null,i);e.state===mr&&(e.on.call("end",t,t.__data__,e.index,e.group),u())}function u(){for(var r in e.state=xr,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=ur(function(t){e.state=gr,e.timer.restart(o,e.delay,e.time),e.delay<=t&&o(t-e.delay)},0,e.time)}(t,e,{name:n,index:r,group:i,on:dr,tween:pr,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:vr})}function Mr(t,n){var e=Tr(t,n);if(e.state>vr)throw new Error("too late; already scheduled");return e}function Ar(t,n){var e=Tr(t,n);if(e.state>yr)throw new Error("too late; already started");return e}function Tr(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Nr(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>yr&&e.state<mr,e.state=xr,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function Sr(t,n,e){var r=t._id;return t.each(function(){var t=Ar(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return Tr(t,r).value[n]}}function Er(t,n){var e;return("number"==typeof n?ve:n instanceof vn?ce:(e=vn(n))?(n=e,ce):be)(t,n)}var kr=Lt.prototype.constructor;var Cr=0;function Pr(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function zr(t){return Lt().transition(t)}function Rr(){return++Cr}var Lr=Lt.prototype;function Dr(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function Ur(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}Pr.prototype=zr.prototype={constructor:Pr,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=Q(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var u,f,c=r[a],s=c.length,l=o[a]=new Array(s),h=0;h<s;++h)(u=c[h])&&(f=t.call(u,u.__data__,h,c))&&("__data__"in u&&(f.__data__=u.__data__),l[h]=f,wr(l[h],n,e,h,l,Tr(u,e)));return new Pr(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=K(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var f,c=r[u],s=c.length,l=0;l<s;++l)if(f=c[l]){for(var h,d=t.call(f,f.__data__,l,c),p=Tr(f,e),v=0,g=d.length;v<g;++v)(h=d[v])&&wr(h,n,e,v,d,p);o.push(d),a.push(f)}return new Pr(o,a,n,e)},filter:function(t){"function"!=typeof t&&(t=rt(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,f=r[i]=[],c=0;c<u;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&f.push(o);return new Pr(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var f,c=n[u],s=e[u],l=c.length,h=a[u]=new Array(l),d=0;d<l;++d)(f=c[d]||s[d])&&(h[d]=f);for(;u<r;++u)a[u]=n[u];return new Pr(a,this._parents,this._name,this._id)},selection:function(){return new kr(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=Rr(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],f=u.length,c=0;c<f;++c)if(a=u[c]){var s=Tr(a,n);wr(a,t,e,c,u,{time:s.time+s.delay+s.duration,delay:0,duration:s.duration,ease:s.ease})}return new Pr(r,this._parents,t,e)},call:Lr.call,nodes:Lr.nodes,node:Lr.node,size:Lr.size,empty:Lr.empty,each:Lr.each,on:function(t,n){var e=this._id;return arguments.length<2?Tr(this.node(),e).on.on(t):this.each(function(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}(n)?Mr:Ar;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=$(t),r="transform"===e?Pe:Er;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttributeNS(t.space,t.local)}}:function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttribute(t))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttribute(t)}})(e,r,Sr(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}:function(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}})(e,r,n+""))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=$(t);return this.tween(e,(r.local?function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}:function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e})(r,n))},style:function(t,n,e){var r="transform"==(t+="")?Ce:Er;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=lt(this,t),a=(this.style.removeProperty(t),lt(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,function(t){return function(){this.style.removeProperty(t)}}(t)):this.styleTween(t,"function"==typeof n?function(t,n,e){var r,i,o;return function(){var a=lt(this,t),u=e(this);return null==u&&(this.style.removeProperty(t),u=lt(this,t)),a===u?null:a===r&&u===i?o:o=n(r=a,i=u)}}(t,r,Sr(this,"style."+t,n)):function(t,n,e){var r,i;return function(){var o=lt(this,t);return o===e?null:o===r?i:i=n(r=o,e)}}(t,r,n+""),e)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(Sr(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}));var t},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=Tr(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=Ar(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Ar(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},f=0,c=i.length;f<c;++f)if(i[f].name===n){i[f]=u;break}f===c&&i.push(u)}o.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){Mr(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){Mr(this,t).delay=n}})(n,t)):Tr(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){Ar(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){Ar(this,t).duration=n}})(n,t)):Tr(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw new Error;return function(){Ar(this,t).ease=n}}(n,t)):Tr(this.node(),n).ease}};var qr=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),Or=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Yr=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),Br=Math.PI,Fr=Br/2;function Ir(t){return(1-Math.cos(Br*t))/2}function Hr(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function jr(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var Xr=4/11,Gr=6/11,Vr=8/11,$r=.75,Wr=9/11,Zr=10/11,Qr=.9375,Jr=21/22,Kr=63/64,ti=1/Xr/Xr;function ni(t){return(t=+t)<Xr?ti*t*t:t<Vr?ti*(t-=Gr)*t+$r:t<Zr?ti*(t-=Wr)*t+Qr:ti*(t-=Jr)*t+Kr}var ei=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),ri=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),ii=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),oi=2*Math.PI,ai=function t(n,e){var r=Math.asin(1/(n=Math.max(1,n)))*(e/=oi);function i(t){return n*Math.pow(2,10*--t)*Math.sin((r-t)/e)}return i.amplitude=function(n){return t(n,e*oi)},i.period=function(e){return t(n,e)},i}(1,.3),ui=function t(n,e){var r=Math.asin(1/(n=Math.max(1,n)))*(e/=oi);function i(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+r)/e)}return i.amplitude=function(n){return t(n,e*oi)},i.period=function(e){return t(n,e)},i}(1,.3),fi=function t(n,e){var r=Math.asin(1/(n=Math.max(1,n)))*(e/=oi);function i(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((r-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((r+t)/e))/2}return i.amplitude=function(n){return t(n,e*oi)},i.period=function(e){return t(n,e)},i}(1,.3),ci={time:null,delay:0,duration:250,ease:Ur};function si(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return ci.time=ir(),ci;return e}Lt.prototype.interrupt=function(t){return this.each(function(){Nr(this,t)})},Lt.prototype.transition=function(t){var n,e;t instanceof Pr?(n=t._id,t=t._name):(n=Rr(),(e=ci).time=ir(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],f=u.length,c=0;c<f;++c)(a=u[c])&&wr(a,t,n,c,u,e||si(a,n));return new Pr(r,this._parents,t,n)};var li=[null];function hi(t){return function(){return t}}function di(t,n,e){this.target=t,this.type=n,this.selection=e}function pi(){t.event.stopImmediatePropagation()}function vi(){t.event.preventDefault(),t.event.stopImmediatePropagation()}var gi={name:"drag"},yi={name:"space"},_i={name:"handle"},bi={name:"center"},mi={name:"x",handles:["e","w"].map(Ei),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},xi={name:"y",handles:["n","s"].map(Ei),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},wi={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(Ei),input:function(t){return t},output:function(t){return t}},Mi={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ai={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},Ti={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Ni={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Si={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Ei(t){return{type:t}}function ki(){return!t.event.button}function Ci(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function Pi(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function zi(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Ri(n){var e,r=Ci,i=ki,o=I(u,"start","brush","end"),a=6;function u(t){var e=t.property("__brush",h).selectAll(".overlay").data([Ei("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Mi.overlay).merge(e).each(function(){var t=Pi(this).extent;Dt(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),t.selectAll(".selection").data([Ei("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Mi.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=t.selectAll(".handle").data(n.handles,function(t){return t.type});r.exit().remove(),r.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return Mi[t.type]}),t.each(f).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",l)}function f(){var t=Dt(this),n=Pi(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-a/2:n[0][0]-a/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-a/2:n[0][1]-a/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+a:a}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+a:a})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function c(t,n){return t.__brush.emitter||new s(t,n)}function s(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function l(){if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return vi()}else if(e)return;if(i.apply(this,arguments)){var r,o,a,u,s,l,h,d,p,v,g,y,_,b=this,m=t.event.target.__data__.type,x="selection"===(t.event.metaKey?m="overlay":m)?gi:t.event.altKey?bi:_i,w=n===xi?null:Ni[m],M=n===mi?null:Si[m],A=Pi(b),T=A.extent,N=A.selection,S=T[0][0],E=T[0][1],k=T[1][0],C=T[1][1],P=w&&M&&t.event.shiftKey,z=Ft(b),R=z,L=c(b,arguments).beforestart();"overlay"===m?A.selection=N=[[r=n===xi?S:z[0],a=n===mi?E:z[1]],[s=n===xi?k:r,h=n===mi?C:a]]:(r=N[0][0],a=N[0][1],s=N[1][0],h=N[1][1]),o=r,u=a,l=s,d=h;var D=Dt(b).attr("pointer-events","none"),U=D.selectAll(".overlay").attr("cursor",Mi[m]);if(t.event.touches)D.on("touchmove.brush",O,!0).on("touchend.brush touchcancel.brush",B,!0);else{var q=Dt(t.event.view).on("keydown.brush",function(){switch(t.event.keyCode){case 16:P=w&&M;break;case 18:x===_i&&(w&&(s=l-p*w,r=o+p*w),M&&(h=d-v*M,a=u+v*M),x=bi,Y());break;case 32:x!==_i&&x!==bi||(w<0?s=l-p:w>0&&(r=o-p),M<0?h=d-v:M>0&&(a=u-v),x=yi,U.attr("cursor",Mi.selection),Y());break;default:return}vi()},!0).on("keyup.brush",function(){switch(t.event.keyCode){case 16:P&&(y=_=P=!1,Y());break;case 18:x===bi&&(w<0?s=l:w>0&&(r=o),M<0?h=d:M>0&&(a=u),x=_i,Y());break;case 32:x===yi&&(t.event.altKey?(w&&(s=l-p*w,r=o+p*w),M&&(h=d-v*M,a=u+v*M),x=bi):(w<0?s=l:w>0&&(r=o),M<0?h=d:M>0&&(a=u),x=_i),U.attr("cursor",Mi[m]),Y());break;default:return}vi()},!0).on("mousemove.brush",O,!0).on("mouseup.brush",B,!0);Xt(t.event.view)}pi(),Nr(b),f.call(b),L.start()}function O(){var t=Ft(b);!P||y||_||(Math.abs(t[0]-R[0])>Math.abs(t[1]-R[1])?_=!0:y=!0),R=t,g=!0,vi(),Y()}function Y(){var t;switch(p=R[0]-z[0],v=R[1]-z[1],x){case yi:case gi:w&&(p=Math.max(S-r,Math.min(k-s,p)),o=r+p,l=s+p),M&&(v=Math.max(E-a,Math.min(C-h,v)),u=a+v,d=h+v);break;case _i:w<0?(p=Math.max(S-r,Math.min(k-r,p)),o=r+p,l=s):w>0&&(p=Math.max(S-s,Math.min(k-s,p)),o=r,l=s+p),M<0?(v=Math.max(E-a,Math.min(C-a,v)),u=a+v,d=h):M>0&&(v=Math.max(E-h,Math.min(C-h,v)),u=a,d=h+v);break;case bi:w&&(o=Math.max(S,Math.min(k,r-p*w)),l=Math.max(S,Math.min(k,s+p*w))),M&&(u=Math.max(E,Math.min(C,a-v*M)),d=Math.max(E,Math.min(C,h+v*M)))}l<o&&(w*=-1,t=r,r=s,s=t,t=o,o=l,l=t,m in Ai&&U.attr("cursor",Mi[m=Ai[m]])),d<u&&(M*=-1,t=a,a=h,h=t,t=u,u=d,d=t,m in Ti&&U.attr("cursor",Mi[m=Ti[m]])),A.selection&&(N=A.selection),y&&(o=N[0][0],l=N[1][0]),_&&(u=N[0][1],d=N[1][1]),N[0][0]===o&&N[0][1]===u&&N[1][0]===l&&N[1][1]===d||(A.selection=[[o,u],[l,d]],f.call(b),L.brush())}function B(){if(pi(),t.event.touches){if(t.event.touches.length)return;e&&clearTimeout(e),e=setTimeout(function(){e=null},500),D.on("touchmove.brush touchend.brush touchcancel.brush",null)}else Gt(t.event.view,g),q.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);D.attr("pointer-events","all"),U.attr("cursor",Mi.overlay),A.selection&&(N=A.selection),zi(N)&&(A.selection=null,f.call(b)),L.end()}}function h(){var t=this.__brush||{selection:null};return t.extent=r.apply(this,arguments),t.dim=n,t}return u.move=function(t,e){t.selection?t.on("start.brush",function(){c(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){c(this,arguments).end()}).tween("brush",function(){var t=this,r=t.__brush,i=c(t,arguments),o=r.selection,a=n.input("function"==typeof e?e.apply(this,arguments):e,r.extent),u=me(o,a);function s(n){r.selection=1===n&&zi(a)?null:u(n),f.call(t),i.brush()}return o&&a?s:s(1)}):t.each(function(){var t=arguments,r=this.__brush,i=n.input("function"==typeof e?e.apply(this,t):e,r.extent),o=c(this,t).beforestart();Nr(this),r.selection=null==i||zi(i)?null:i,f.call(this),o.start().brush().end()})},s.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){Ct(new di(u,t,n.output(this.state.selection)),o.apply,o,[t,this.that,this.args])}},u.extent=function(t){return arguments.length?(r="function"==typeof t?t:hi([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),u):r},u.filter=function(t){return arguments.length?(i="function"==typeof t?t:hi(!!t),u):i},u.handleSize=function(t){return arguments.length?(a=+t,u):a},u.on=function(){var t=o.on.apply(o,arguments);return t===o?u:t},u}var Li=Math.cos,Di=Math.sin,Ui=Math.PI,qi=Ui/2,Oi=2*Ui,Yi=Math.max;var Bi=Array.prototype.slice;function Fi(t){return function(){return t}}var Ii=Math.PI,Hi=2*Ii,ji=Hi-1e-6;function Xi(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Gi(){return new Xi}function Vi(t){return t.source}function $i(t){return t.target}function Wi(t){return t.radius}function Zi(t){return t.startAngle}function Qi(t){return t.endAngle}Xi.prototype=Gi.prototype={constructor:Xi,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,a=this._y1,u=e-t,f=r-n,c=o-t,s=a-n,l=c*c+s*s;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(l>1e-6)if(Math.abs(s*u-f*c)>1e-6&&i){var h=e-o,d=r-a,p=u*u+f*f,v=h*h+d*d,g=Math.sqrt(p),y=Math.sqrt(l),_=i*Math.tan((Ii-Math.acos((p+l-v)/(2*g*y)))/2),b=_/y,m=_/g;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*c)+","+(n+b*s)),this._+="A"+i+","+i+",0,0,"+ +(s*h>c*d)+","+(this._x1=t+m*u)+","+(this._y1=n+m*f)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n;var a=(e=+e)*Math.cos(r),u=e*Math.sin(r),f=t+a,c=n+u,s=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+f+","+c:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-c)>1e-6)&&(this._+="L"+f+","+c),e&&(l<0&&(l=l%Hi+Hi),l>ji?this._+="A"+e+","+e+",0,1,"+s+","+(t-a)+","+(n-u)+"A"+e+","+e+",0,1,"+s+","+(this._x1=f)+","+(this._y1=c):l>1e-6&&(this._+="A"+e+","+e+",0,"+ +(l>=Ii)+","+s+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};function Ji(){}function Ki(t,n){var e=new Ji;if(t instanceof Ji)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var a in t)e.set(a,t[a]);return e}function to(){return{}}function no(t,n,e){t[n]=e}function eo(){return Ki()}function ro(t,n,e){t.set(n,e)}function io(){}Ji.prototype=Ki.prototype={constructor:Ji,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,n){return this["$"+t]=n,this},remove:function(t){var n="$"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)"$"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)"$"===n[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var n in this)"$"===n[0]&&t(this[n],n.slice(1),this)}};var oo=Ki.prototype;function ao(t,n){var e=new io;if(t instanceof io)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}io.prototype=ao.prototype={constructor:io,has:oo.has,add:function(t){return this["$"+(t+="")]=t,this},remove:oo.remove,clear:oo.clear,values:oo.keys,size:oo.size,empty:oo.empty,each:oo.each};var uo=Array.prototype.slice;function fo(t,n){return t-n}function co(t){return function(){return t}}function so(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=lo(t,n[r]))return e;return 0}function lo(t,n){for(var e=n[0],r=n[1],i=-1,o=0,a=t.length,u=a-1;o<a;u=o++){var f=t[o],c=f[0],s=f[1],l=t[u],h=l[0],d=l[1];if(ho(f,l,n))return 0;s>r!=d>r&&e<(h-c)*(r-s)/(d-s)+c&&(i=-i)}return i}function ho(t,n,e){var r,i,o,a;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],o=e[r],a=n[r],i<=o&&o<=a||a<=o&&o<=i)}function po(){}var vo=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function go(){var t=1,n=1,e=M,r=u;function i(t){var n=e(t);if(Array.isArray(n))n=n.slice().sort(fo);else{var r=s(t),i=r[0],a=r[1];n=w(i,a,n),n=g(Math.floor(i/n)*n,Math.floor(a/n)*n,n)}return n.map(function(n){return o(t,n)})}function o(e,i){var o=[],u=[];return function(e,r,i){var o,u,f,c,s,l,h=new Array,d=new Array;o=u=-1,c=e[0]>=r,vo[c<<1].forEach(p);for(;++o<t-1;)f=c,c=e[o+1]>=r,vo[f|c<<1].forEach(p);vo[c<<0].forEach(p);for(;++u<n-1;){for(o=-1,c=e[u*t+t]>=r,s=e[u*t]>=r,vo[c<<1|s<<2].forEach(p);++o<t-1;)f=c,c=e[u*t+t+o+1]>=r,l=s,s=e[u*t+o+1]>=r,vo[f|c<<1|s<<2|l<<3].forEach(p);vo[c|s<<3].forEach(p)}o=-1,s=e[u*t]>=r,vo[s<<2].forEach(p);for(;++o<t-1;)l=s,s=e[u*t+o+1]>=r,vo[s<<2|l<<3].forEach(p);function p(t){var n,e,r=[t[0][0]+o,t[0][1]+u],f=[t[1][0]+o,t[1][1]+u],c=a(r),s=a(f);(n=d[c])?(e=h[s])?(delete d[n.end],delete h[e.start],n===e?(n.ring.push(f),i(n.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[n.end],n.ring.push(f),d[n.end=s]=n):(n=h[s])?(e=d[c])?(delete h[n.start],delete d[e.end],n===e?(n.ring.push(f),i(n.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[n.start],n.ring.unshift(r),h[n.start=c]=n):h[c]=d[s]={start:c,end:s,ring:[r,f]}}vo[s<<3].forEach(p)}(e,i,function(t){r(t,e,i),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n<e;)r+=t[n-1][1]*t[n][0]-t[n-1][0]*t[n][1];return r}(t)>0?o.push([t]):u.push(t)}),u.forEach(function(t){for(var n,e=0,r=o.length;e<r;++e)if(-1!==so((n=o[e])[0],t))return void n.push(t)}),{type:"MultiPolygon",value:i,coordinates:o}}function a(n){return 2*n[0]+n[1]*(t+1)*4}function u(e,r,i){e.forEach(function(e){var o,a=e[0],u=e[1],f=0|a,c=0|u,s=r[c*t+f];a>0&&a<t&&f===a&&(o=r[c*t+f-1],e[0]=a+(i-o)/(s-o)-.5),u>0&&u<n&&c===u&&(o=r[(c-1)*t+f],e[1]=u+(i-o)/(s-o)-.5)})}return i.contour=o,i.size=function(e){if(!arguments.length)return[t,n];var r=Math.ceil(e[0]),o=Math.ceil(e[1]);if(!(r>0&&o>0))throw new Error("invalid size");return t=r,n=o,i},i.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?co(uo.call(t)):co(t),i):e},i.smooth=function(t){return arguments.length?(r=t?u:po,i):r===u},i}function yo(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a<i;++a)for(var u=0,f=0;u<r+e;++u)u<r&&(f+=t.data[u+a*r]),u>=e&&(u>=o&&(f-=t.data[u-o+a*r]),n.data[u-e+a*r]=f/Math.min(u+1,r-1+o-u,o))}function _o(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a<r;++a)for(var u=0,f=0;u<i+e;++u)u<i&&(f+=t.data[a+u*r]),u>=e&&(u>=o&&(f-=t.data[a+(u-o)*r]),n.data[a+(u-e)*r]=f/Math.min(u+1,i-1+o-u,o))}function bo(t){return t[0]}function mo(t){return t[1]}function xo(){return 1}var wo={},Mo={},Ao=34,To=10,No=13;function So(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function Eo(t){var n=new RegExp('["'+t+"\n\r]"),e=t.charCodeAt(0);function r(t,n){var r,i=[],o=t.length,a=0,u=0,f=o<=0,c=!1;function s(){if(f)return Mo;if(c)return c=!1,wo;var n,r,i=a;if(t.charCodeAt(i)===Ao){for(;a++<o&&t.charCodeAt(a)!==Ao||t.charCodeAt(++a)===Ao;);return(n=a)>=o?f=!0:(r=t.charCodeAt(a++))===To?c=!0:r===No&&(c=!0,t.charCodeAt(a)===To&&++a),t.slice(i+1,n-1).replace(/""/g,'"')}for(;a<o;){if((r=t.charCodeAt(n=a++))===To)c=!0;else if(r===No)c=!0,t.charCodeAt(a)===To&&++a;else if(r!==e)continue;return t.slice(i,n)}return f=!0,t.slice(i,o)}for(t.charCodeAt(o-1)===To&&--o,t.charCodeAt(o-1)===No&&--o;(r=s())!==Mo;){for(var l=[];r!==wo&&r!==Mo;)l.push(r),r=s();n&&null==(l=n(l,u++))||i.push(l)}return i}function i(n){return n.map(o).join(t)}function o(t){return null==t?"":n.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function(t,n){var e,i,o=r(t,function(t,r){if(e)return e(t,r-1);i=t,e=n?function(t,n){var e=So(t);return function(r,i){return n(e(r),i,t)}}(t,n):So(t)});return o.columns=i||[],o},parseRows:r,format:function(n,e){return null==e&&(e=function(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}(n)),[e.map(o).join(t)].concat(n.map(function(n){return e.map(function(t){return o(n[t])}).join(t)})).join("\n")},formatRows:function(t){return t.map(i).join("\n")}}}var ko=Eo(","),Co=ko.parse,Po=ko.parseRows,zo=ko.format,Ro=ko.formatRows,Lo=Eo("\t"),Do=Lo.parse,Uo=Lo.parseRows,qo=Lo.format,Oo=Lo.formatRows;function Yo(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function Bo(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function Fo(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Io(t,n){return fetch(t,n).then(Fo)}function Ho(t){return function(n,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=void 0),Io(n,e).then(function(n){return t(n,r)})}}var jo=Ho(Co),Xo=Ho(Do);function Go(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.json()}function Vo(t){return function(n,e){return Io(n,e).then(function(n){return(new DOMParser).parseFromString(n,t)})}}var $o=Vo("application/xml"),Wo=Vo("text/html"),Zo=Vo("image/svg+xml");function Qo(t){return function(){return t}}function Jo(){return 1e-6*(Math.random()-.5)}function Ko(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,f,c,s,l,h,d=t._root,p={data:r},v=t._x0,g=t._y0,y=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((c=n>=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a,i=d,!(d=d[l=s<<1|c]))return i[l]=p,t;if(u=+t._x.call(null,d.data),f=+t._y.call(null,d.data),n===u&&e===f)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(c=n>=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a}while((l=s<<1|c)==(h=(f>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function ta(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function na(t){return t[0]}function ea(t){return t[1]}function ra(t,n,e){var r=new ia(null==n?na:n,null==e?ea:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function ia(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function oa(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var aa=ra.prototype=ia.prototype;function ua(t){return t.x+t.vx}function fa(t){return t.y+t.vy}function ca(t){return t.index}function sa(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function la(t){return t.x}function ha(t){return t.y}aa.copy=function(){var t,n,e=new ia(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=oa(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=oa(n));return e},aa.add=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Ko(this.cover(n,e),n,e,t)},aa.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),f=1/0,c=1/0,s=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(a[e]=r,u[e]=i,r<f&&(f=r),r>s&&(s=r),i<c&&(c=i),i>l&&(l=i));for(s<f&&(f=this._x0,s=this._x1),l<c&&(c=this._y0,l=this._y1),this.cover(f,c).cover(s,l),e=0;e<o;++e)Ko(this,a[e],u[e],t[e]);return this},aa.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var a,u,f=i-e,c=this._root;switch(u=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{(a=new Array(4))[u]=c,c=a}while(o=r+(f*=2),t>(i=e+f)||n>o);break;case 1:do{(a=new Array(4))[u]=c,c=a}while(o=r+(f*=2),(e=i-f)>t||n>o);break;case 2:do{(a=new Array(4))[u]=c,c=a}while(r=o-(f*=2),t>(i=e+f)||r>n);break;case 3:do{(a=new Array(4))[u]=c,c=a}while(r=o-(f*=2),(e=i-f)>t||r>n)}this._root&&this._root.length&&(this._root=c)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},aa.data=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},aa.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},aa.find=function(t,n,e){var r,i,o,a,u,f,c,s=this._x0,l=this._y0,h=this._x1,d=this._y1,p=[],v=this._root;for(v&&p.push(new ta(v,s,l,h,d)),null==e?e=1/0:(s=t-e,l=n-e,h=t+e,d=n+e,e*=e);f=p.pop();)if(!(!(v=f.node)||(i=f.x0)>h||(o=f.y0)>d||(a=f.x1)<s||(u=f.y1)<l))if(v.length){var g=(i+a)/2,y=(o+u)/2;p.push(new ta(v[3],g,y,a,u),new ta(v[2],i,y,g,u),new ta(v[1],g,o,a,y),new ta(v[0],i,o,g,y)),(c=(n>=y)<<1|t>=g)&&(f=p[p.length-1],p[p.length-1]=p[p.length-1-c],p[p.length-1-c]=f)}else{var _=t-+this._x.call(null,v.data),b=n-+this._y.call(null,v.data),m=_*_+b*b;if(m<e){var x=Math.sqrt(e=m);s=t-x,l=n-x,h=t+x,d=n+x,r=v.data}}return r},aa.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var n,e,r,i,o,a,u,f,c,s,l,h,d=this._root,p=this._x0,v=this._y0,g=this._x1,y=this._y1;if(!d)return this;if(d.length)for(;;){if((c=o>=(u=(p+g)/2))?p=u:g=u,(s=a>=(f=(v+y)/2))?v=f:y=f,n=d,!(d=d[l=s<<1|c]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},aa.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},aa.root=function(){return this._root},aa.size=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},aa.visit=function(t){var n,e,r,i,o,a,u=[],f=this._root;for(f&&u.push(new ta(f,this._x0,this._y0,this._x1,this._y1));n=u.pop();)if(!t(f=n.node,r=n.x0,i=n.y0,o=n.x1,a=n.y1)&&f.length){var c=(r+o)/2,s=(i+a)/2;(e=f[3])&&u.push(new ta(e,c,s,o,a)),(e=f[2])&&u.push(new ta(e,r,s,c,a)),(e=f[1])&&u.push(new ta(e,c,i,o,s)),(e=f[0])&&u.push(new ta(e,r,i,c,s))}return this},aa.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new ta(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,a=n.x0,u=n.y0,f=n.x1,c=n.y1,s=(a+f)/2,l=(u+c)/2;(o=i[0])&&e.push(new ta(o,a,u,s,l)),(o=i[1])&&e.push(new ta(o,s,u,f,l)),(o=i[2])&&e.push(new ta(o,a,l,s,c)),(o=i[3])&&e.push(new ta(o,s,l,f,c))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},aa.x=function(t){return arguments.length?(this._x=t,this):this._x},aa.y=function(t){return arguments.length?(this._y=t,this):this._y};var da=10,pa=Math.PI*(3-Math.sqrt(5));function va(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function ga(t){return(t=va(Math.abs(t)))?t[1]:NaN}var ya,_a=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ba(t){return new ma(t)}function ma(t){if(!(n=_a.exec(t)))throw new Error("invalid format: "+t);var n;this.fill=n[1]||" ",this.align=n[2]||">",this.sign=n[3]||"-",this.symbol=n[4]||"",this.zero=!!n[5],this.width=n[6]&&+n[6],this.comma=!!n[7],this.precision=n[8]&&+n[8].slice(1),this.trim=!!n[9],this.type=n[10]||""}function xa(t,n){var e=va(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}ba.prototype=ma.prototype,ma.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var wa={"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return xa(100*t,n)},r:xa,s:function(t,n){var e=va(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(ya=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+va(t,Math.max(0,n+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function Ma(t){return t}var Aa,Ta=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Na(t){var n,e,r=t.grouping&&t.thousands?(n=t.grouping,e=t.thousands,function(t,r){for(var i=t.length,o=[],a=0,u=n[0],f=0;i>0&&u>0&&(f+u+1>r&&(u=Math.max(1,r-f)),o.push(t.substring(i-=u,i+u)),!((f+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}):Ma,i=t.currency,o=t.decimal,a=t.numerals?function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}}(t.numerals):Ma,u=t.percent||"%";function f(t){var n=(t=ba(t)).fill,e=t.align,f=t.sign,c=t.symbol,s=t.zero,l=t.width,h=t.comma,d=t.precision,p=t.trim,v=t.type;"n"===v?(h=!0,v="g"):wa[v]||(null==d&&(d=12),p=!0,v="g"),(s||"0"===n&&"="===e)&&(s=!0,n="0",e="=");var g="$"===c?i[0]:"#"===c&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",y="$"===c?i[1]:/[%p]/.test(v)?u:"",_=wa[v],b=/[defgprs%]/.test(v);function m(t){var i,u,c,m=g,x=y;if("c"===v)x=_(t)+x,t="";else{var w=(t=+t)<0;if(t=_(Math.abs(t),d),p&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(i>0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),w&&0==+t&&(w=!1),m=(w?"("===f?f:"-":"-"===f||"("===f?"":f)+m,x=("s"===v?Ta[8+ya/3]:"")+x+(w&&"("===f?")":""),b)for(i=-1,u=t.length;++i<u;)if(48>(c=t.charCodeAt(i))||c>57){x=(46===c?o+t.slice(i+1):t.slice(i))+x,t=t.slice(0,i);break}}h&&!s&&(t=r(t,1/0));var M=m.length+t.length+x.length,A=M<l?new Array(l-M+1).join(n):"";switch(h&&s&&(t=r(A+t,A.length?l-x.length:1/0),A=""),e){case"<":t=m+t+x+A;break;case"=":t=m+A+t+x;break;case"^":t=A.slice(0,M=A.length>>1)+m+t+x+A.slice(M);break;default:t=A+m+t+x}return a(t)}return d=null==d?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d)),m.toString=function(){return t+""},m}return{format:f,formatPrefix:function(t,n){var e=f(((t=ba(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(ga(n)/3))),i=Math.pow(10,-r),o=Ta[8+r/3];return function(t){return e(i*t)+o}}}}function Sa(n){return Aa=Na(n),t.format=Aa.format,t.formatPrefix=Aa.formatPrefix,Aa}function Ea(t){return Math.max(0,-ga(Math.abs(t)))}function ka(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(ga(n)/3)))-ga(Math.abs(t)))}function Ca(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,ga(n)-ga(t))+1}function Pa(){return new za}function za(){this.reset()}Sa({decimal:".",thousands:",",grouping:[3],currency:["$",""]}),za.prototype={constructor:za,reset:function(){this.s=this.t=0},add:function(t){La(Ra,t,this.t),La(this,Ra.s,this.s),this.s?this.t+=Ra.t:this.s=Ra.t},valueOf:function(){return this.s}};var Ra=new za;function La(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}var Da=1e-6,Ua=1e-12,qa=Math.PI,Oa=qa/2,Ya=qa/4,Ba=2*qa,Fa=180/qa,Ia=qa/180,Ha=Math.abs,ja=Math.atan,Xa=Math.atan2,Ga=Math.cos,Va=Math.ceil,$a=Math.exp,Wa=Math.log,Za=Math.pow,Qa=Math.sin,Ja=Math.sign||function(t){return t>0?1:t<0?-1:0},Ka=Math.sqrt,tu=Math.tan;function nu(t){return t>1?0:t<-1?qa:Math.acos(t)}function eu(t){return t>1?Oa:t<-1?-Oa:Math.asin(t)}function ru(t){return(t=Qa(t/2))*t}function iu(){}function ou(t,n){t&&uu.hasOwnProperty(t.type)&&uu[t.type](t,n)}var au={Feature:function(t,n){ou(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)ou(e[r].geometry,n)}},uu={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){fu(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)fu(e[r],n,0)},Polygon:function(t,n){cu(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)cu(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)ou(e[r],n)}};function fu(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function cu(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)fu(t[e],n,1);n.polygonEnd()}function su(t,n){t&&au.hasOwnProperty(t.type)?au[t.type](t,n):ou(t,n)}var lu,hu,du,pu,vu,gu=Pa(),yu=Pa(),_u={point:iu,lineStart:iu,lineEnd:iu,polygonStart:function(){gu.reset(),_u.lineStart=bu,_u.lineEnd=mu},polygonEnd:function(){var t=+gu;yu.add(t<0?Ba+t:t),this.lineStart=this.lineEnd=this.point=iu},sphere:function(){yu.add(Ba)}};function bu(){_u.point=xu}function mu(){wu(lu,hu)}function xu(t,n){_u.point=wu,lu=t,hu=n,du=t*=Ia,pu=Ga(n=(n*=Ia)/2+Ya),vu=Qa(n)}function wu(t,n){var e=(t*=Ia)-du,r=e>=0?1:-1,i=r*e,o=Ga(n=(n*=Ia)/2+Ya),a=Qa(n),u=vu*a,f=pu*o+u*Ga(i),c=u*r*Qa(i);gu.add(Xa(c,f)),du=t,pu=o,vu=a}function Mu(t){return[Xa(t[1],t[0]),eu(t[2])]}function Au(t){var n=t[0],e=t[1],r=Ga(e);return[r*Ga(n),r*Qa(n),Qa(e)]}function Tu(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Nu(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Su(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Eu(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function ku(t){var n=Ka(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var Cu,Pu,zu,Ru,Lu,Du,Uu,qu,Ou,Yu,Bu,Fu,Iu,Hu,ju,Xu,Gu,Vu,$u,Wu,Zu,Qu,Ju,Ku,tf,nf,ef=Pa(),rf={point:of,lineStart:uf,lineEnd:ff,polygonStart:function(){rf.point=cf,rf.lineStart=sf,rf.lineEnd=lf,ef.reset(),_u.polygonStart()},polygonEnd:function(){_u.polygonEnd(),rf.point=of,rf.lineStart=uf,rf.lineEnd=ff,gu<0?(Cu=-(zu=180),Pu=-(Ru=90)):ef>Da?Ru=90:ef<-Da&&(Pu=-90),Yu[0]=Cu,Yu[1]=zu}};function of(t,n){Ou.push(Yu=[Cu=t,zu=t]),n<Pu&&(Pu=n),n>Ru&&(Ru=n)}function af(t,n){var e=Au([t*Ia,n*Ia]);if(qu){var r=Nu(qu,e),i=Nu([r[1],-r[0],0],r);ku(i),i=Mu(i);var o,a=t-Lu,u=a>0?1:-1,f=i[0]*Fa*u,c=Ha(a)>180;c^(u*Lu<f&&f<u*t)?(o=i[1]*Fa)>Ru&&(Ru=o):c^(u*Lu<(f=(f+360)%360-180)&&f<u*t)?(o=-i[1]*Fa)<Pu&&(Pu=o):(n<Pu&&(Pu=n),n>Ru&&(Ru=n)),c?t<Lu?hf(Cu,t)>hf(Cu,zu)&&(zu=t):hf(t,zu)>hf(Cu,zu)&&(Cu=t):zu>=Cu?(t<Cu&&(Cu=t),t>zu&&(zu=t)):t>Lu?hf(Cu,t)>hf(Cu,zu)&&(zu=t):hf(t,zu)>hf(Cu,zu)&&(Cu=t)}else Ou.push(Yu=[Cu=t,zu=t]);n<Pu&&(Pu=n),n>Ru&&(Ru=n),qu=e,Lu=t}function uf(){rf.point=af}function ff(){Yu[0]=Cu,Yu[1]=zu,rf.point=of,qu=null}function cf(t,n){if(qu){var e=t-Lu;ef.add(Ha(e)>180?e+(e>0?360:-360):e)}else Du=t,Uu=n;_u.point(t,n),af(t,n)}function sf(){_u.lineStart()}function lf(){cf(Du,Uu),_u.lineEnd(),Ha(ef)>Da&&(Cu=-(zu=180)),Yu[0]=Cu,Yu[1]=zu,qu=null}function hf(t,n){return(n-=t)<0?n+360:n}function df(t,n){return t[0]-n[0]}function pf(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var vf={sphere:iu,point:gf,lineStart:_f,lineEnd:xf,polygonStart:function(){vf.lineStart=wf,vf.lineEnd=Mf},polygonEnd:function(){vf.lineStart=_f,vf.lineEnd=xf}};function gf(t,n){t*=Ia;var e=Ga(n*=Ia);yf(e*Ga(t),e*Qa(t),Qa(n))}function yf(t,n,e){Iu+=(t-Iu)/++Bu,Hu+=(n-Hu)/Bu,ju+=(e-ju)/Bu}function _f(){vf.point=bf}function bf(t,n){t*=Ia;var e=Ga(n*=Ia);Ku=e*Ga(t),tf=e*Qa(t),nf=Qa(n),vf.point=mf,yf(Ku,tf,nf)}function mf(t,n){t*=Ia;var e=Ga(n*=Ia),r=e*Ga(t),i=e*Qa(t),o=Qa(n),a=Xa(Ka((a=tf*o-nf*i)*a+(a=nf*r-Ku*o)*a+(a=Ku*i-tf*r)*a),Ku*r+tf*i+nf*o);Fu+=a,Xu+=a*(Ku+(Ku=r)),Gu+=a*(tf+(tf=i)),Vu+=a*(nf+(nf=o)),yf(Ku,tf,nf)}function xf(){vf.point=gf}function wf(){vf.point=Af}function Mf(){Tf(Qu,Ju),vf.point=gf}function Af(t,n){Qu=t,Ju=n,t*=Ia,n*=Ia,vf.point=Tf;var e=Ga(n);Ku=e*Ga(t),tf=e*Qa(t),nf=Qa(n),yf(Ku,tf,nf)}function Tf(t,n){t*=Ia;var e=Ga(n*=Ia),r=e*Ga(t),i=e*Qa(t),o=Qa(n),a=tf*o-nf*i,u=nf*r-Ku*o,f=Ku*i-tf*r,c=Ka(a*a+u*u+f*f),s=eu(c),l=c&&-s/c;$u+=l*a,Wu+=l*u,Zu+=l*f,Fu+=s,Xu+=s*(Ku+(Ku=r)),Gu+=s*(tf+(tf=i)),Vu+=s*(nf+(nf=o)),yf(Ku,tf,nf)}function Nf(t){return function(){return t}}function Sf(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e}function Ef(t,n){return[t>qa?t-Ba:t<-qa?t+Ba:t,n]}function kf(t,n,e){return(t%=Ba)?n||e?Sf(Pf(t),zf(n,e)):Pf(t):n||e?zf(n,e):Ef}function Cf(t){return function(n,e){return[(n+=t)>qa?n-Ba:n<-qa?n+Ba:n,e]}}function Pf(t){var n=Cf(t);return n.invert=Cf(-t),n}function zf(t,n){var e=Ga(t),r=Qa(t),i=Ga(n),o=Qa(n);function a(t,n){var a=Ga(n),u=Ga(t)*a,f=Qa(t)*a,c=Qa(n),s=c*e+u*r;return[Xa(f*i-s*o,u*e-c*r),eu(s*i+f*o)]}return a.invert=function(t,n){var a=Ga(n),u=Ga(t)*a,f=Qa(t)*a,c=Qa(n),s=c*i-f*o;return[Xa(f*i+c*o,u*e+s*r),eu(s*e-u*r)]},a}function Rf(t){function n(n){return(n=t(n[0]*Ia,n[1]*Ia))[0]*=Fa,n[1]*=Fa,n}return t=kf(t[0]*Ia,t[1]*Ia,t.length>2?t[2]*Ia:0),n.invert=function(n){return(n=t.invert(n[0]*Ia,n[1]*Ia))[0]*=Fa,n[1]*=Fa,n},n}function Lf(t,n,e,r,i,o){if(e){var a=Ga(n),u=Qa(n),f=r*e;null==i?(i=n+r*Ba,o=n-f/2):(i=Df(a,i),o=Df(a,o),(r>0?i<o:i>o)&&(i+=r*Ba));for(var c,s=i;r>0?s>o:s<o;s-=f)c=Mu([a,-u*Ga(s),-u*Qa(s)]),t.point(c[0],c[1])}}function Df(t,n){(n=Au(n))[0]-=t,ku(n);var e=nu(-n[1]);return((-n[2]<0?-e:e)+Ba-Da)%Ba}function Uf(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:iu,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function qf(t,n){return Ha(t[0]-n[0])<Da&&Ha(t[1]-n[1])<Da}function Of(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Yf(t,n,e,r,i){var o,a,u=[],f=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],a=t[n];if(qf(r,a)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);i.lineEnd()}else u.push(e=new Of(r,t,null,!0)),f.push(e.o=new Of(r,null,e,!1)),u.push(e=new Of(a,t,null,!1)),f.push(e.o=new Of(a,null,e,!0))}}),u.length){for(f.sort(n),Bf(u),Bf(f),o=0,a=f.length;o<a;++o)f[o].e=e=!e;for(var c,s,l=u[0];;){for(var h=l,d=!0;h.v;)if((h=h.n)===l)return;c=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(d)for(o=0,a=c.length;o<a;++o)i.point((s=c[o])[0],s[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(d)for(c=h.p.z,o=c.length-1;o>=0;--o)i.point((s=c[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}c=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function Bf(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}Ef.invert=Ef;var Ff=Pa();function If(t,n){var e=n[0],r=n[1],i=Qa(r),o=[Qa(e),-Ga(e),0],a=0,u=0;Ff.reset(),1===i?r=Oa+Da:-1===i&&(r=-Oa-Da);for(var f=0,c=t.length;f<c;++f)if(l=(s=t[f]).length)for(var s,l,h=s[l-1],d=h[0],p=h[1]/2+Ya,v=Qa(p),g=Ga(p),y=0;y<l;++y,d=b,v=x,g=w,h=_){var _=s[y],b=_[0],m=_[1]/2+Ya,x=Qa(m),w=Ga(m),M=b-d,A=M>=0?1:-1,T=A*M,N=T>qa,S=v*x;if(Ff.add(Xa(S*A*Qa(T),g*w+S*Ga(T))),a+=N?M+A*Ba:M,N^d>=e^b>=e){var E=Nu(Au(h),Au(_));ku(E);var k=Nu(o,E);ku(k);var C=(N^M>=0?-1:1)*eu(k[2]);(r>C||r===C&&(E[0]||E[1]))&&(u+=N^M>=0?1:-1)}}return(a<-Da||a<Da&&Ff<-Da)^1&u}function Hf(t,n,e,r){return function(i){var o,a,u,f=n(i),c=Uf(),s=n(c),l=!1,h={point:d,lineStart:v,lineEnd:g,polygonStart:function(){h.point=y,h.lineStart=_,h.lineEnd=b,a=[],o=[]},polygonEnd:function(){h.point=d,h.lineStart=v,h.lineEnd=g,a=N(a);var t=If(o,r);a.length?(l||(i.polygonStart(),l=!0),Yf(a,Xf,t,e,i)):t&&(l||(i.polygonStart(),l=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),l&&(i.polygonEnd(),l=!1),a=o=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(n,e){t(n,e)&&i.point(n,e)}function p(t,n){f.point(t,n)}function v(){h.point=p,f.lineStart()}function g(){h.point=d,f.lineEnd()}function y(t,n){u.push([t,n]),s.point(t,n)}function _(){s.lineStart(),u=[]}function b(){y(u[0][0],u[0][1]),s.lineEnd();var t,n,e,r,f=s.clean(),h=c.result(),d=h.length;if(u.pop(),o.push(u),u=null,d)if(1&f){if((n=(e=h[0]).length-1)>0){for(l||(i.polygonStart(),l=!0),i.lineStart(),t=0;t<n;++t)i.point((r=e[t])[0],r[1]);i.lineEnd()}}else d>1&&2&f&&h.push(h.pop().concat(h.shift())),a.push(h.filter(jf))}return h}}function jf(t){return t.length>1}function Xf(t,n){return((t=t.x)[0]<0?t[1]-Oa-Da:Oa-t[1])-((n=n.x)[0]<0?n[1]-Oa-Da:Oa-n[1])}var Gf=Hf(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?qa:-qa,f=Ha(o-e);Ha(f-qa)<Da?(t.point(e,r=(r+a)/2>0?Oa:-Oa),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&f>=qa&&(Ha(e-i)<Da&&(e-=i*Da),Ha(o-u)<Da&&(o-=u*Da),r=function(t,n,e,r){var i,o,a=Qa(t-e);return Ha(a)>Da?ja((Qa(n)*(o=Ga(r))*Qa(e)-Qa(r)*(i=Ga(n))*Qa(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(null==t)i=e*Oa,r.point(-qa,i),r.point(0,i),r.point(qa,i),r.point(qa,0),r.point(qa,-i),r.point(0,-i),r.point(-qa,-i),r.point(-qa,0),r.point(-qa,i);else if(Ha(t[0]-n[0])>Da){var o=t[0]<n[0]?qa:-qa;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])},[-qa,-Oa]);function Vf(t){var n=Ga(t),e=6*Ia,r=n>0,i=Ha(n)>Da;function o(t,e){return Ga(t)*Ga(e)>n}function a(t,e,r){var i=[1,0,0],o=Nu(Au(t),Au(e)),a=Tu(o,o),u=o[0],f=a-u*u;if(!f)return!r&&t;var c=n*a/f,s=-n*u/f,l=Nu(i,o),h=Eu(i,c);Su(h,Eu(o,s));var d=l,p=Tu(h,d),v=Tu(d,d),g=p*p-v*(Tu(h,h)-1);if(!(g<0)){var y=Ka(g),_=Eu(d,(-p-y)/v);if(Su(_,h),_=Mu(_),!r)return _;var b,m=t[0],x=e[0],w=t[1],M=e[1];x<m&&(b=m,m=x,x=b);var A=x-m,T=Ha(A-qa)<Da;if(!T&&M<w&&(b=w,w=M,M=b),T||A<Da?T?w+M>0^_[1]<(Ha(_[0]-m)<Da?w:M):w<=_[1]&&_[1]<=M:A>qa^(m<=_[0]&&_[0]<=x)){var N=Eu(d,(-p+y)/v);return Su(N,h),[_,Mu(N)]}}}function u(n,e){var i=r?t:qa-t,o=0;return n<-i?o|=1:n>i&&(o|=2),e<-i?o|=4:e>i&&(o|=8),o}return Hf(o,function(t){var n,e,f,c,s;return{lineStart:function(){c=f=!1,s=1},point:function(l,h){var d,p=[l,h],v=o(l,h),g=r?v?0:u(l,h):v?u(l+(l<0?qa:-qa),h):0;if(!n&&(c=f=v)&&t.lineStart(),v!==f&&(!(d=a(n,p))||qf(n,d)||qf(p,d))&&(p[0]+=Da,p[1]+=Da,v=o(p[0],p[1])),v!==f)s=0,v?(t.lineStart(),d=a(p,n),t.point(d[0],d[1])):(d=a(n,p),t.point(d[0],d[1]),t.lineEnd()),n=d;else if(i&&n&&r^v){var y;g&e||!(y=a(p,n,!0))||(s=0,r?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||n&&qf(n,p)||t.point(p[0],p[1]),n=p,f=v,e=g},lineEnd:function(){f&&t.lineEnd(),n=null},clean:function(){return s|(c&&f)<<1}}},function(n,r,i,o){Lf(o,t,e,i,n,r)},r?[0,-t]:[-qa,t-qa])}var $f=1e9,Wf=-$f;function Zf(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,c){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||f(i,o)<0^u>0)do{c.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else c.point(o[0],o[1])}function a(r,i){return Ha(r[0]-t)<Da?i>0?0:3:Ha(r[0]-e)<Da?i>0?2:1:Ha(r[1]-n)<Da?i>0?1:0:i>0?3:2}function u(t,n){return f(t.x,n.x)}function f(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){var f,c,s,l,h,d,p,v,g,y,_,b=a,m=Uf(),x={point:w,lineStart:function(){x.point=M,c&&c.push(s=[]);y=!0,g=!1,p=v=NaN},lineEnd:function(){f&&(M(l,h),d&&g&&m.rejoin(),f.push(m.result()));x.point=w,g&&b.lineEnd()},polygonStart:function(){b=m,f=[],c=[],_=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=c.length;e<i;++e)for(var o,a,u=c[e],f=1,s=u.length,l=u[0],h=l[0],d=l[1];f<s;++f)o=h,a=d,l=u[f],h=l[0],d=l[1],a<=r?d>r&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=_&&n,i=(f=N(f)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&Yf(f,u,n,o,a),a.polygonEnd());b=a,f=c=s=null}};function w(t,n){i(t,n)&&b.point(t,n)}function M(o,a){var u=i(o,a);if(c&&s.push([o,a]),y)l=o,h=a,d=u,y=!1,u&&(b.lineStart(),b.point(o,a));else if(u&&g)b.point(o,a);else{var f=[p=Math.max(Wf,Math.min($f,p)),v=Math.max(Wf,Math.min($f,v))],m=[o=Math.max(Wf,Math.min($f,o)),a=Math.max(Wf,Math.min($f,a))];!function(t,n,e,r,i,o){var a,u=t[0],f=t[1],c=0,s=1,l=n[0]-u,h=n[1]-f;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a<c)return;a<s&&(s=a)}else if(l>0){if(a>s)return;a>c&&(c=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>c&&(c=a)}else if(l>0){if(a<c)return;a<s&&(s=a)}if(a=r-f,h||!(a>0)){if(a/=h,h<0){if(a<c)return;a<s&&(s=a)}else if(h>0){if(a>s)return;a>c&&(c=a)}if(a=o-f,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>c&&(c=a)}else if(h>0){if(a<c)return;a<s&&(s=a)}return c>0&&(t[0]=u+c*l,t[1]=f+c*h),s<1&&(n[0]=u+s*l,n[1]=f+s*h),!0}}}}}(f,m,t,n,e,r)?u&&(b.lineStart(),b.point(o,a),_=!1):(g||(b.lineStart(),b.point(f[0],f[1])),b.point(m[0],m[1]),u||b.lineEnd(),_=!1)}p=o,v=a,g=u}return x}}var Qf,Jf,Kf,tc=Pa(),nc={sphere:iu,point:iu,lineStart:function(){nc.point=rc,nc.lineEnd=ec},lineEnd:iu,polygonStart:iu,polygonEnd:iu};function ec(){nc.point=nc.lineEnd=iu}function rc(t,n){Qf=t*=Ia,Jf=Qa(n*=Ia),Kf=Ga(n),nc.point=ic}function ic(t,n){t*=Ia;var e=Qa(n*=Ia),r=Ga(n),i=Ha(t-Qf),o=Ga(i),a=r*Qa(i),u=Kf*e-Jf*r*o,f=Jf*e+Kf*r*o;tc.add(Xa(Ka(a*a+u*u),f)),Qf=t,Jf=e,Kf=r}function oc(t){return tc.reset(),su(t,nc),+tc}var ac=[null,null],uc={type:"LineString",coordinates:ac};function fc(t,n){return ac[0]=t,ac[1]=n,oc(uc)}var cc={Feature:function(t,n){return lc(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(lc(e[r].geometry,n))return!0;return!1}},sc={Sphere:function(){return!0},Point:function(t,n){return hc(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(hc(e[r],n))return!0;return!1},LineString:function(t,n){return dc(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(dc(e[r],n))return!0;return!1},Polygon:function(t,n){return pc(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(pc(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(lc(e[r],n))return!0;return!1}};function lc(t,n){return!(!t||!sc.hasOwnProperty(t.type))&&sc[t.type](t,n)}function hc(t,n){return 0===fc(t,n)}function dc(t,n){var e=fc(t[0],t[1]);return fc(t[0],n)+fc(n,t[1])<=e+Da}function pc(t,n){return!!If(t.map(vc),gc(n))}function vc(t){return(t=t.map(gc)).pop(),t}function gc(t){return[t[0]*Ia,t[1]*Ia]}function yc(t,n,e){var r=g(t,n-Da,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function _c(t,n,e){var r=g(t,n-Da,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function bc(){var t,n,e,r,i,o,a,u,f,c,s,l,h=10,d=h,p=90,v=360,y=2.5;function _(){return{type:"MultiLineString",coordinates:b()}}function b(){return g(Va(r/p)*p,e,p).map(s).concat(g(Va(u/v)*v,a,v).map(l)).concat(g(Va(n/h)*h,t,h).filter(function(t){return Ha(t%p)>Da}).map(f)).concat(g(Va(o/d)*d,i,d).filter(function(t){return Ha(t%v)>Da}).map(c))}return _.lines=function(){return b().map(function(t){return{type:"LineString",coordinates:t}})},_.outline=function(){return{type:"Polygon",coordinates:[s(r).concat(l(a).slice(1),s(e).reverse().slice(1),l(u).reverse().slice(1))]}},_.extent=function(t){return arguments.length?_.extentMajor(t).extentMinor(t):_.extentMinor()},_.extentMajor=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],u=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),u>a&&(t=u,u=a,a=t),_.precision(y)):[[r,u],[e,a]]},_.extentMinor=function(e){return arguments.length?(n=+e[0][0],t=+e[1][0],o=+e[0][1],i=+e[1][1],n>t&&(e=n,n=t,t=e),o>i&&(e=o,o=i,i=e),_.precision(y)):[[n,o],[t,i]]},_.step=function(t){return arguments.length?_.stepMajor(t).stepMinor(t):_.stepMinor()},_.stepMajor=function(t){return arguments.length?(p=+t[0],v=+t[1],_):[p,v]},_.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],_):[h,d]},_.precision=function(h){return arguments.length?(y=+h,f=yc(o,i,90),c=_c(n,t,y),s=yc(u,a,90),l=_c(r,e,y),_):y},_.extentMajor([[-180,-90+Da],[180,90-Da]]).extentMinor([[-180,-80-Da],[180,80+Da]])}function mc(t){return t}var xc,wc,Mc,Ac,Tc=Pa(),Nc=Pa(),Sc={point:iu,lineStart:iu,lineEnd:iu,polygonStart:function(){Sc.lineStart=Ec,Sc.lineEnd=Pc},polygonEnd:function(){Sc.lineStart=Sc.lineEnd=Sc.point=iu,Tc.add(Ha(Nc)),Nc.reset()},result:function(){var t=Tc/2;return Tc.reset(),t}};function Ec(){Sc.point=kc}function kc(t,n){Sc.point=Cc,xc=Mc=t,wc=Ac=n}function Cc(t,n){Nc.add(Ac*t-Mc*n),Mc=t,Ac=n}function Pc(){Cc(xc,wc)}var zc=1/0,Rc=zc,Lc=-zc,Dc=Lc,Uc={point:function(t,n){t<zc&&(zc=t);t>Lc&&(Lc=t);n<Rc&&(Rc=n);n>Dc&&(Dc=n)},lineStart:iu,lineEnd:iu,polygonStart:iu,polygonEnd:iu,result:function(){var t=[[zc,Rc],[Lc,Dc]];return Lc=Dc=-(Rc=zc=1/0),t}};var qc,Oc,Yc,Bc,Fc=0,Ic=0,Hc=0,jc=0,Xc=0,Gc=0,Vc=0,$c=0,Wc=0,Zc={point:Qc,lineStart:Jc,lineEnd:ns,polygonStart:function(){Zc.lineStart=es,Zc.lineEnd=rs},polygonEnd:function(){Zc.point=Qc,Zc.lineStart=Jc,Zc.lineEnd=ns},result:function(){var t=Wc?[Vc/Wc,$c/Wc]:Gc?[jc/Gc,Xc/Gc]:Hc?[Fc/Hc,Ic/Hc]:[NaN,NaN];return Fc=Ic=Hc=jc=Xc=Gc=Vc=$c=Wc=0,t}};function Qc(t,n){Fc+=t,Ic+=n,++Hc}function Jc(){Zc.point=Kc}function Kc(t,n){Zc.point=ts,Qc(Yc=t,Bc=n)}function ts(t,n){var e=t-Yc,r=n-Bc,i=Ka(e*e+r*r);jc+=i*(Yc+t)/2,Xc+=i*(Bc+n)/2,Gc+=i,Qc(Yc=t,Bc=n)}function ns(){Zc.point=Qc}function es(){Zc.point=is}function rs(){os(qc,Oc)}function is(t,n){Zc.point=os,Qc(qc=Yc=t,Oc=Bc=n)}function os(t,n){var e=t-Yc,r=n-Bc,i=Ka(e*e+r*r);jc+=i*(Yc+t)/2,Xc+=i*(Bc+n)/2,Gc+=i,Vc+=(i=Bc*t-Yc*n)*(Yc+t),$c+=i*(Bc+n),Wc+=3*i,Qc(Yc=t,Bc=n)}function as(t){this._context=t}as.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Ba)}},result:iu};var us,fs,cs,ss,ls,hs=Pa(),ds={point:iu,lineStart:function(){ds.point=ps},lineEnd:function(){us&&vs(fs,cs),ds.point=iu},polygonStart:function(){us=!0},polygonEnd:function(){us=null},result:function(){var t=+hs;return hs.reset(),t}};function ps(t,n){ds.point=vs,fs=ss=t,cs=ls=n}function vs(t,n){ss-=t,ls-=n,hs.add(Ka(ss*ss+ls*ls)),ss=t,ls=n}function gs(){this._string=[]}function ys(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function _s(t){return function(n){var e=new bs;for(var r in t)e[r]=t[r];return e.stream=n,e}}function bs(){}function ms(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),su(e,t.stream(Uc)),n(Uc.result()),null!=r&&t.clipExtent(r),t}function xs(t,n,e){return ms(t,function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])},e)}function ws(t,n,e){return xs(t,[[0,0],n],e)}function Ms(t,n,e){return ms(t,function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])},e)}function As(t,n,e){return ms(t,function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])},e)}gs.prototype={_radius:4.5,_circle:ys(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=ys(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},bs.prototype={constructor:bs,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Ts=16,Ns=Ga(30*Ia);function Ss(t,n){return+n?function(t,n){function e(r,i,o,a,u,f,c,s,l,h,d,p,v,g){var y=c-r,_=s-i,b=y*y+_*_;if(b>4*n&&v--){var m=a+h,x=u+d,w=f+p,M=Ka(m*m+x*x+w*w),A=eu(w/=M),T=Ha(Ha(w)-1)<Da||Ha(o-l)<Da?(o+l)/2:Xa(x,m),N=t(T,A),S=N[0],E=N[1],k=S-r,C=E-i,P=_*k-y*C;(P*P/b>n||Ha((y*k+_*C)/b-.5)>.3||a*h+u*d+f*p<Ns)&&(e(r,i,o,a,u,f,S,E,T,m/=M,x/=M,w,v,g),g.point(S,E),e(S,E,T,m,x,w,c,s,l,h,d,p,v,g))}}return function(n){var r,i,o,a,u,f,c,s,l,h,d,p,v={point:g,lineStart:y,lineEnd:b,polygonStart:function(){n.polygonStart(),v.lineStart=m},polygonEnd:function(){n.polygonEnd(),v.lineStart=y}};function g(e,r){e=t(e,r),n.point(e[0],e[1])}function y(){s=NaN,v.point=_,n.lineStart()}function _(r,i){var o=Au([r,i]),a=t(r,i);e(s,l,c,h,d,p,s=a[0],l=a[1],c=r,h=o[0],d=o[1],p=o[2],Ts,n),n.point(s,l)}function b(){v.point=g,n.lineEnd()}function m(){y(),v.point=x,v.lineEnd=w}function x(t,n){_(r=t,n),i=s,o=l,a=h,u=d,f=p,v.point=_}function w(){e(s,l,c,h,d,p,i,o,r,a,u,f,Ts,n),v.lineEnd=b,b()}return v}}(t,n):function(t){return _s({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}(t)}var Es=_s({point:function(t,n){this.stream.point(t*Ia,n*Ia)}});function ks(t,n,e,r){var i=Ga(r),o=Qa(r),a=i*t,u=o*t,f=i/t,c=o/t,s=(o*e-i*n)/t,l=(o*n+i*e)/t;function h(t,r){return[a*t-u*r+n,e-u*t-a*r]}return h.invert=function(t,n){return[f*t-c*n+s,l-c*t-f*n]},h}function Cs(t){return Ps(function(){return t})()}function Ps(t){var n,e,r,i,o,a,u,f,c,s,l=150,h=480,d=250,p=0,v=0,g=0,y=0,_=0,b=0,m=null,x=Gf,w=null,M=mc,A=.5;function T(t){return f(t[0]*Ia,t[1]*Ia)}function N(t){return(t=f.invert(t[0],t[1]))&&[t[0]*Fa,t[1]*Fa]}function S(){var t=ks(l,0,0,b).apply(null,n(p,v)),r=(b?ks:function(t,n,e){function r(r,i){return[n+t*r,e-t*i]}return r.invert=function(r,i){return[(r-n)/t,(e-i)/t]},r})(l,h-t[0],d-t[1],b);return e=kf(g,y,_),u=Sf(n,r),f=Sf(e,u),a=Ss(u,A),E()}function E(){return c=s=null,T}return T.stream=function(t){return c&&s===t?c:c=Es(function(t){return _s({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}(e)(x(a(M(s=t)))))},T.preclip=function(t){return arguments.length?(x=t,m=void 0,E()):x},T.postclip=function(t){return arguments.length?(M=t,w=r=i=o=null,E()):M},T.clipAngle=function(t){return arguments.length?(x=+t?Vf(m=t*Ia):(m=null,Gf),E()):m*Fa},T.clipExtent=function(t){return arguments.length?(M=null==t?(w=r=i=o=null,mc):Zf(w=+t[0][0],r=+t[0][1],i=+t[1][0],o=+t[1][1]),E()):null==w?null:[[w,r],[i,o]]},T.scale=function(t){return arguments.length?(l=+t,S()):l},T.translate=function(t){return arguments.length?(h=+t[0],d=+t[1],S()):[h,d]},T.center=function(t){return arguments.length?(p=t[0]%360*Ia,v=t[1]%360*Ia,S()):[p*Fa,v*Fa]},T.rotate=function(t){return arguments.length?(g=t[0]%360*Ia,y=t[1]%360*Ia,_=t.length>2?t[2]%360*Ia:0,S()):[g*Fa,y*Fa,_*Fa]},T.angle=function(t){return arguments.length?(b=t%360*Ia,S()):b*Fa},T.precision=function(t){return arguments.length?(a=Ss(u,A=t*t),E()):Ka(A)},T.fitExtent=function(t,n){return xs(T,t,n)},T.fitSize=function(t,n){return ws(T,t,n)},T.fitWidth=function(t,n){return Ms(T,t,n)},T.fitHeight=function(t,n){return As(T,t,n)},function(){return n=t.apply(this,arguments),T.invert=n.invert&&N,S()}}function zs(t){var n=0,e=qa/3,r=Ps(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Ia,e=t[1]*Ia):[n*Fa,e*Fa]},i}function Rs(t,n){var e=Qa(t),r=(e+Qa(n))/2;if(Ha(r)<Da)return function(t){var n=Ga(t);function e(t,e){return[t*n,Qa(e)/n]}return e.invert=function(t,e){return[t/n,eu(e*n)]},e}(t);var i=1+e*(2*r-e),o=Ka(i)/r;function a(t,n){var e=Ka(i-2*r*Qa(n))/r;return[e*Qa(t*=r),o-e*Ga(t)]}return a.invert=function(t,n){var e=o-n;return[Xa(t,Ha(e))/r*Ja(e),eu((i-(t*t+e*e)*r*r)/(2*r))]},a}function Ls(){return zs(Rs).scale(155.424).center([0,33.6442])}function Ds(){return Ls().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Us(t){return function(n,e){var r=Ga(n),i=Ga(e),o=t(r*i);return[o*i*Qa(n),o*Qa(e)]}}function qs(t){return function(n,e){var r=Ka(n*n+e*e),i=t(r),o=Qa(i),a=Ga(i);return[Xa(n*o,r*a),eu(r&&e*o/r)]}}var Os=Us(function(t){return Ka(2/(1+t))});Os.invert=qs(function(t){return 2*eu(t/2)});var Ys=Us(function(t){return(t=nu(t))&&t/Qa(t)});function Bs(t,n){return[t,Wa(tu((Oa+n)/2))]}function Fs(t){var n,e,r,i=Cs(t),o=i.center,a=i.scale,u=i.translate,f=i.clipExtent,c=null;function s(){var o=qa*a(),u=i(Rf(i.rotate()).invert([0,0]));return f(null==c?[[u[0]-o,u[1]-o],[u[0]+o,u[1]+o]]:t===Bs?[[Math.max(u[0]-o,c),n],[Math.min(u[0]+o,e),r]]:[[c,Math.max(u[1]-o,n)],[e,Math.min(u[1]+o,r)]])}return i.scale=function(t){return arguments.length?(a(t),s()):a()},i.translate=function(t){return arguments.length?(u(t),s()):u()},i.center=function(t){return arguments.length?(o(t),s()):o()},i.clipExtent=function(t){return arguments.length?(null==t?c=n=e=r=null:(c=+t[0][0],n=+t[0][1],e=+t[1][0],r=+t[1][1]),s()):null==c?null:[[c,n],[e,r]]},s()}function Is(t){return tu((Oa+t)/2)}function Hs(t,n){var e=Ga(t),r=t===n?Qa(t):Wa(e/Ga(n))/Wa(Is(n)/Is(t)),i=e*Za(Is(t),r)/r;if(!r)return Bs;function o(t,n){i>0?n<-Oa+Da&&(n=-Oa+Da):n>Oa-Da&&(n=Oa-Da);var e=i/Za(Is(n),r);return[e*Qa(r*t),i-e*Ga(r*t)]}return o.invert=function(t,n){var e=i-n,o=Ja(r)*Ka(t*t+e*e);return[Xa(t,Ha(e))/r*Ja(e),2*ja(Za(i/o,1/r))-Oa]},o}function js(t,n){return[t,n]}function Xs(t,n){var e=Ga(t),r=t===n?Qa(t):(e-Ga(n))/(n-t),i=e/r+t;if(Ha(r)<Da)return js;function o(t,n){var e=i-n,o=r*t;return[e*Qa(o),i-e*Ga(o)]}return o.invert=function(t,n){var e=i-n;return[Xa(t,Ha(e))/r*Ja(e),i-Ja(r)*Ka(t*t+e*e)]},o}Ys.invert=qs(function(t){return t}),Bs.invert=function(t,n){return[t,2*ja($a(n))-Oa]},js.invert=js;var Gs=1.340264,Vs=-.081106,$s=893e-6,Ws=.003796,Zs=Ka(3)/2;function Qs(t,n){var e=eu(Zs*Qa(n)),r=e*e,i=r*r*r;return[t*Ga(e)/(Zs*(Gs+3*Vs*r+i*(7*$s+9*Ws*r))),e*(Gs+Vs*r+i*($s+Ws*r))]}function Js(t,n){var e=Ga(n),r=Ga(t)*e;return[e*Qa(t)/r,Qa(n)/r]}function Ks(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?mc:_s({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function tl(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function nl(t,n){return[Ga(n)*Qa(t),Qa(n)]}function el(t,n){var e=Ga(n),r=1+Ga(t)*e;return[e*Qa(t)/r,Qa(n)/r]}function rl(t,n){return[Wa(tu((Oa+n)/2)),-t]}function il(t,n){return t.parent===n.parent?1:2}function ol(t,n){return t+n.x}function al(t,n){return Math.max(t,n.y)}function ul(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function fl(t,n){var e,r,i,o,a,u=new hl(t),f=+t.value&&(u.value=t.value),c=[u];for(null==n&&(n=cl);e=c.pop();)if(f&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)c.push(r=e.children[o]=new hl(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(ll)}function cl(t){return t.children}function sl(t){t.data=t.data.data}function ll(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function hl(t){this.data=t,this.depth=this.height=0,this.parent=null}Qs.invert=function(t,n){for(var e,r=n,i=r*r,o=i*i*i,a=0;a<12&&(o=(i=(r-=e=(r*(Gs+Vs*i+o*($s+Ws*i))-n)/(Gs+3*Vs*i+o*(7*$s+9*Ws*i)))*r)*i*i,!(Ha(e)<Ua));++a);return[Zs*t*(Gs+3*Vs*i+o*(7*$s+9*Ws*i))/Ga(r),eu(Qa(r)/Zs)]},Js.invert=qs(ja),tl.invert=function(t,n){var e,r=n,i=25;do{var o=r*r,a=o*o;r-=e=(r*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-n)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(Ha(e)>Da&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},nl.invert=qs(eu),el.invert=qs(function(t){return 2*ja(t)}),rl.invert=function(t,n){return[-n,2*ja($a(t))-Oa]},hl.prototype=fl.prototype={constructor:hl,count:function(){return this.eachAfter(ul)},each:function(t){var n,e,r,i,o=this,a=[o];do{for(n=a.reverse(),a=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)a.push(e[r])}while(a.length);return this},eachAfter:function(t){for(var n,e,r,i=this,o=[i],a=[];i=o.pop();)if(a.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=a.pop();)t(i);return this},eachBefore:function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},sort:function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each(function(n){t.push(n)}),t},leaves:function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function(){return fl(this).eachBefore(sl)}};var dl=Array.prototype.slice;function pl(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(dl.call(t))).length,o=[];r<i;)n=t[r],e&&yl(e,n)?++r:(e=bl(o=vl(o,n)),r=0);return e}function vl(t,n){var e,r;if(_l(n,t))return[n];for(e=0;e<t.length;++e)if(gl(n,t[e])&&_l(ml(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(gl(ml(t[e],t[r]),n)&&gl(ml(t[e],n),t[r])&&gl(ml(t[r],n),t[e])&&_l(xl(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}function gl(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function yl(t,n){var e=t.r-n.r+1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function _l(t,n){for(var e=0;e<n.length;++e)if(!yl(t,n[e]))return!1;return!0}function bl(t){switch(t.length){case 1:return{x:(n=t[0]).x,y:n.y,r:n.r};case 2:return ml(t[0],t[1]);case 3:return xl(t[0],t[1],t[2])}var n}function ml(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,a=n.y,u=n.r,f=o-e,c=a-r,s=u-i,l=Math.sqrt(f*f+c*c);return{x:(e+o+f/l*s)/2,y:(r+a+c/l*s)/2,r:(l+i+u)/2}}function xl(t,n,e){var r=t.x,i=t.y,o=t.r,a=n.x,u=n.y,f=n.r,c=e.x,s=e.y,l=e.r,h=r-a,d=r-c,p=i-u,v=i-s,g=f-o,y=l-o,_=r*r+i*i-o*o,b=_-a*a-u*u+f*f,m=_-c*c-s*s+l*l,x=d*p-h*v,w=(p*m-v*b)/(2*x)-r,M=(v*g-p*y)/x,A=(d*b-h*m)/(2*x)-i,T=(h*y-d*g)/x,N=M*M+T*T-1,S=2*(o+w*M+A*T),E=w*w+A*A-o*o,k=-(N?(S+Math.sqrt(S*S-4*N*E))/(2*N):E/S);return{x:r+w+M*k,y:i+A+T*k,r:k}}function wl(t,n,e){var r,i,o,a,u=t.x-n.x,f=t.y-n.y,c=u*u+f*f;c?(i=n.r+e.r,i*=i,a=t.r+e.r,i>(a*=a)?(r=(c+a-i)/(2*c),o=Math.sqrt(Math.max(0,a/c-r*r)),e.x=t.x-r*u-o*f,e.y=t.y-r*f+o*u):(r=(c+i-a)/(2*c),o=Math.sqrt(Math.max(0,i/c-r*r)),e.x=n.x+r*u-o*f,e.y=n.y+r*f+o*u)):(e.x=n.x+e.r,e.y=n.y)}function Ml(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Al(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function Tl(t){this._=t,this.next=null,this.previous=null}function Nl(t){if(!(i=t.length))return 0;var n,e,r,i,o,a,u,f,c,s,l;if((n=t[0]).x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;wl(e,n,r=t[2]),n=new Tl(n),e=new Tl(e),r=new Tl(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;u<i;++u){wl(n._,e._,r=t[u]),r=new Tl(r),f=e.next,c=n.previous,s=e._.r,l=n._.r;do{if(s<=l){if(Ml(f._,r._)){e=f,n.next=e,e.previous=n,--u;continue t}s+=f._.r,f=f.next}else{if(Ml(c._,r._)){(n=c).next=e,e.previous=n,--u;continue t}l+=c._.r,c=c.previous}}while(f!==c.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,o=Al(n);(r=r.next)!==e;)(a=Al(r))<o&&(n=r,o=a);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=pl(n),u=0;u<i;++u)(n=t[u]).x-=r.x,n.y-=r.y;return r.r}function Sl(t){if("function"!=typeof t)throw new Error;return t}function El(){return 0}function kl(t){return function(){return t}}function Cl(t){return Math.sqrt(t.value)}function Pl(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function zl(t,n){return function(e){if(r=e.children){var r,i,o,a=r.length,u=t(e)*n||0;if(u)for(i=0;i<a;++i)r[i].r+=u;if(o=Nl(r),u)for(i=0;i<a;++i)r[i].r-=u;e.r=o+u}}}function Rl(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function Ll(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Dl(t,n,e,r,i){for(var o,a=t.children,u=-1,f=a.length,c=t.value&&(r-n)/t.value;++u<f;)(o=a[u]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*c}var Ul="$",ql={depth:-1},Ol={};function Yl(t){return t.id}function Bl(t){return t.parentId}function Fl(t,n){return t.parent===n.parent?1:2}function Il(t){var n=t.children;return n?n[0]:t.t}function Hl(t){var n=t.children;return n?n[n.length-1]:t.t}function jl(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function Xl(t,n,e){return t.a.parent===n.parent?t.a:e}function Gl(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function Vl(t,n,e,r,i){for(var o,a=t.children,u=-1,f=a.length,c=t.value&&(i-e)/t.value;++u<f;)(o=a[u]).x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*c}Gl.prototype=Object.create(hl.prototype);var $l=(1+Math.sqrt(5))/2;function Wl(t,n,e,r,i,o){for(var a,u,f,c,s,l,h,d,p,v,g,y=[],_=n.children,b=0,m=0,x=_.length,w=n.value;b<x;){f=i-e,c=o-r;do{s=_[m++].value}while(!s&&m<x);for(l=h=s,g=s*s*(v=Math.max(c/f,f/c)/(w*t)),p=Math.max(h/g,g/l);m<x;++m){if(s+=u=_[m].value,u<l&&(l=u),u>h&&(h=u),g=s*s*v,(d=Math.max(h/g,g/l))>p){s-=u;break}p=d}y.push(a={value:s,dice:f<c,children:_.slice(b,m)}),a.dice?Dl(a,e,r,i,w?r+=c*s/w:o):Vl(a,e,r,w?e+=f*s/w:i,o),w-=s,b=m}return y}var Zl=function t(n){function e(t,e,r,i,o){Wl(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}($l);var Ql=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,f,c,s,l=-1,h=a.length,d=t.value;++l<h;){for(f=(u=a[l]).children,c=u.value=0,s=f.length;c<s;++c)u.value+=f[c].value;u.dice?Dl(u,e,r,i,r+=(o-r)*u.value/d):Vl(u,e,r,e+=(i-e)*u.value/d,o),d-=u.value}else t._squarify=a=Wl(n,t,e,r,i,o),a.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}($l);function Jl(t,n){return t[0]-n[0]||t[1]-n[1]}function Kl(t){for(var n,e,r,i=t.length,o=[0,1],a=2,u=2;u<i;++u){for(;a>1&&(n=t[o[a-2]],e=t[o[a-1]],r=t[u],(e[0]-n[0])*(r[1]-n[1])-(e[1]-n[1])*(r[0]-n[0])<=0);)--a;o[a++]=u}return o.slice(0,a)}function th(){return Math.random()}var nh=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(th),eh=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(th),rh=function t(n){function e(){var t=eh.source(n).apply(this,arguments);return function(){return Math.exp(t())}}return e.source=t,e}(th),ih=function t(n){function e(t){return function(){for(var e=0,r=0;r<t;++r)e+=n();return e}}return e.source=t,e}(th),oh=function t(n){function e(t){var e=ih.source(n)(t);return function(){return e()/t}}return e.source=t,e}(th),ah=function t(n){function e(t){return function(){return-Math.log(1-n())/t}}return e.source=t,e}(th),uh=Array.prototype,fh=uh.map,ch=uh.slice,sh={name:"implicit"};function lh(t){var n=Ki(),e=[],r=sh;function i(i){var o=i+"",a=n.get(o);if(!a){if(r!==sh)return r;n.set(o,a=e.push(i))}return t[(a-1)%t.length]}return t=null==t?[]:ch.call(t),i.domain=function(t){if(!arguments.length)return e.slice();e=[],n=Ki();for(var r,o,a=-1,u=t.length;++a<u;)n.has(o=(r=t[a])+"")||n.set(o,e.push(r));return i},i.range=function(n){return arguments.length?(t=ch.call(n),i):t.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return lh().domain(e).range(t).unknown(r)},i}function hh(){var t,n,e=lh().unknown(void 0),r=e.domain,i=e.range,o=[0,1],a=!1,u=0,f=0,c=.5;function s(){var e=r().length,s=o[1]<o[0],l=o[s-0],h=o[1-s];t=(h-l)/Math.max(1,e-u+2*f),a&&(t=Math.floor(t)),l+=(h-l-t*(e-u))*c,n=t*(1-u),a&&(l=Math.round(l),n=Math.round(n));var d=g(e).map(function(n){return l+t*n});return i(s?d.reverse():d)}return delete e.unknown,e.domain=function(t){return arguments.length?(r(t),s()):r()},e.range=function(t){return arguments.length?(o=[+t[0],+t[1]],s()):o.slice()},e.rangeRound=function(t){return o=[+t[0],+t[1]],a=!0,s()},e.bandwidth=function(){return n},e.step=function(){return t},e.round=function(t){return arguments.length?(a=!!t,s()):a},e.padding=function(t){return arguments.length?(u=f=Math.max(0,Math.min(1,t)),s()):u},e.paddingInner=function(t){return arguments.length?(u=Math.max(0,Math.min(1,t)),s()):u},e.paddingOuter=function(t){return arguments.length?(f=Math.max(0,Math.min(1,t)),s()):f},e.align=function(t){return arguments.length?(c=Math.max(0,Math.min(1,t)),s()):c},e.copy=function(){return hh().domain(r()).range(o).round(a).paddingInner(u).paddingOuter(f).align(c)},s()}function dh(t){return function(){return t}}function ph(t){return+t}var vh=[0,1];function gh(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:dh(n)}function yh(t,n,e,r){var i=t[0],o=t[1],a=n[0],u=n[1];return o<i?(i=e(o,i),a=r(u,a)):(i=e(i,o),a=r(a,u)),function(t){return a(i(t))}}function _h(t,n,e,r){var o=Math.min(t.length,n.length)-1,a=new Array(o),u=new Array(o),f=-1;for(t[o]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++f<o;)a[f]=e(t[f],t[f+1]),u[f]=r(n[f],n[f+1]);return function(n){var e=i(t,n,1,o)-1;return u[e](a[e](n))}}function bh(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function mh(t,n){var e,r,i,o=vh,a=vh,u=me,f=!1;function c(){return e=Math.min(o.length,a.length)>2?_h:yh,r=i=null,s}function s(n){return(r||(r=e(o,a,f?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}(t):t,u)))(+n)}return s.invert=function(t){return(i||(i=e(a,o,gh,f?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}(n):n)))(+t)},s.domain=function(t){return arguments.length?(o=fh.call(t,ph),c()):o.slice()},s.range=function(t){return arguments.length?(a=ch.call(t),c()):a.slice()},s.rangeRound=function(t){return a=ch.call(t),u=xe,c()},s.clamp=function(t){return arguments.length?(f=!!t,c()):f},s.interpolate=function(t){return arguments.length?(u=t,c()):u},c()}function xh(n){var e=n.domain;return n.ticks=function(t){var n=e();return m(n[0],n[n.length-1],null==t?10:t)},n.tickFormat=function(n,r){return function(n,e,r){var i,o=n[0],a=n[n.length-1],u=w(o,a,null==e?10:e);switch((r=ba(null==r?",f":r)).type){case"s":var f=Math.max(Math.abs(o),Math.abs(a));return null!=r.precision||isNaN(i=ka(u,f))||(r.precision=i),t.formatPrefix(r,f);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=Ca(u,Math.max(Math.abs(o),Math.abs(a))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=Ea(u))||(r.precision=i-2*("%"===r.type))}return t.format(r)}(e(),n,r)},n.nice=function(t){null==t&&(t=10);var r,i=e(),o=0,a=i.length-1,u=i[o],f=i[a];return f<u&&(r=u,u=f,f=r,r=o,o=a,a=r),(r=x(u,f,t))>0?r=x(u=Math.floor(u/r)*r,f=Math.ceil(f/r)*r,t):r<0&&(r=x(u=Math.ceil(u*r)/r,f=Math.floor(f*r)/r,t)),r>0?(i[o]=Math.floor(u/r)*r,i[a]=Math.ceil(f/r)*r,e(i)):r<0&&(i[o]=Math.ceil(u*r)/r,i[a]=Math.floor(f*r)/r,e(i)),n},n}function wh(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a<o&&(e=r,r=i,i=e,e=o,o=a,a=e),t[r]=n.floor(o),t[i]=n.ceil(a),t}function Mh(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:dh(n)}function Ah(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function Th(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Nh(t){return 10===t?Th:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function Sh(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Eh(t){return function(n){return-t(-n)}}function kh(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function Ch(){var t=1,n=mh(function(n,e){return(e=kh(e,t)-(n=kh(n,t)))?function(r){return(kh(r,t)-n)/e}:dh(e)},function(n,e){return e=kh(e,t)-(n=kh(n,t)),function(r){return kh(n+e*r,1/t)}}),e=n.domain;return n.exponent=function(n){return arguments.length?(t=+n,e(e())):t},n.copy=function(){return bh(n,Ch().exponent(t))},xh(n)}var Ph=new Date,zh=new Date;function Rh(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var a,u=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return u;do{u.push(a=new Date(+e)),n(e,o),t(e)}while(a<e&&e<r);return u},i.filter=function(e){return Rh(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return Ph.setTime(+n),zh.setTime(+r),t(Ph),t(zh),Math.floor(e(Ph,zh))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}var Lh=Rh(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});Lh.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Rh(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):Lh:null};var Dh=Lh.range,Uh=6e4,qh=6048e5,Oh=Rh(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),Yh=Oh.range,Bh=Rh(function(t){t.setTime(Math.floor(t/Uh)*Uh)},function(t,n){t.setTime(+t+n*Uh)},function(t,n){return(n-t)/Uh},function(t){return t.getMinutes()}),Fh=Bh.range,Ih=Rh(function(t){var n=t.getTimezoneOffset()*Uh%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),Hh=Ih.range,jh=Rh(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Uh)/864e5},function(t){return t.getDate()-1}),Xh=jh.range;function Gh(t){return Rh(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Uh)/qh})}var Vh=Gh(0),$h=Gh(1),Wh=Gh(2),Zh=Gh(3),Qh=Gh(4),Jh=Gh(5),Kh=Gh(6),td=Vh.range,nd=$h.range,ed=Wh.range,rd=Zh.range,id=Qh.range,od=Jh.range,ad=Kh.range,ud=Rh(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),fd=ud.range,cd=Rh(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});cd.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Rh(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var sd=cd.range,ld=Rh(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*Uh)},function(t,n){return(n-t)/Uh},function(t){return t.getUTCMinutes()}),hd=ld.range,dd=Rh(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),pd=dd.range,vd=Rh(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),gd=vd.range;function yd(t){return Rh(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/qh})}var _d=yd(0),bd=yd(1),md=yd(2),xd=yd(3),wd=yd(4),Md=yd(5),Ad=yd(6),Td=_d.range,Nd=bd.range,Sd=md.range,Ed=xd.range,kd=wd.range,Cd=Md.range,Pd=Ad.range,zd=Rh(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),Rd=zd.range,Ld=Rh(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Ld.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Rh(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Dd=Ld.range;function Ud(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function qd(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Od(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function Yd(t){var n=t.dateTime,e=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,u=t.months,f=t.shortMonths,c=Vd(i),s=$d(i),l=Vd(o),h=$d(o),d=Vd(a),p=$d(a),v=Vd(u),g=$d(u),y=Vd(f),_=$d(f),b={a:function(t){return a[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return f[t.getMonth()]},B:function(t){return u[t.getMonth()]},c:null,d:pp,e:pp,f:bp,H:vp,I:gp,j:yp,L:_p,m:mp,M:xp,p:function(t){return i[+(t.getHours()>=12)]},Q:Wp,s:Zp,S:wp,u:Mp,U:Ap,V:Tp,w:Np,W:Sp,x:null,X:null,y:Ep,Y:kp,Z:Cp,"%":$p},m={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return f[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:Pp,e:Pp,f:Up,H:zp,I:Rp,j:Lp,L:Dp,m:qp,M:Op,p:function(t){return i[+(t.getUTCHours()>=12)]},Q:Wp,s:Zp,S:Yp,u:Bp,U:Fp,V:Ip,w:Hp,W:jp,x:null,X:null,y:Xp,Y:Gp,Z:Vp,"%":$p},x={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=p[r[0].toLowerCase()],e+r[0].length):-1},A:function(t,n,e){var r=l.exec(n.slice(e));return r?(t.w=h[r[0].toLowerCase()],e+r[0].length):-1},b:function(t,n,e){var r=y.exec(n.slice(e));return r?(t.m=_[r[0].toLowerCase()],e+r[0].length):-1},B:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=g[r[0].toLowerCase()],e+r[0].length):-1},c:function(t,e,r){return A(t,n,e,r)},d:ip,e:ip,f:sp,H:ap,I:ap,j:op,L:cp,m:rp,M:up,p:function(t,n,e){var r=c.exec(n.slice(e));return r?(t.p=s[r[0].toLowerCase()],e+r[0].length):-1},Q:hp,s:dp,S:fp,u:Zd,U:Qd,V:Jd,w:Wd,W:Kd,x:function(t,n,r){return A(t,e,n,r)},X:function(t,n,e){return A(t,r,n,e)},y:np,Y:tp,Z:ep,"%":lp};function w(t,n){return function(e){var r,i,o,a=[],u=-1,f=0,c=t.length;for(e instanceof Date||(e=new Date(+e));++u<c;)37===t.charCodeAt(u)&&(a.push(t.slice(f,u)),null!=(i=Fd[r=t.charAt(++u)])?r=t.charAt(++u):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),a.push(r),f=u+1);return a.push(t.slice(f,u)),a.join("")}}function M(t,n){return function(e){var r,i,o=Od(1900);if(A(o,t,e+="",0)!=e.length)return null;if("Q"in o)return new Date(o.Q);if("p"in o&&(o.H=o.H%12+12*o.p),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(i=(r=qd(Od(o.y))).getUTCDay(),r=i>4||0===i?bd.ceil(r):bd(r),r=vd.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(i=(r=n(Od(o.y))).getDay(),r=i>4||0===i?$h.ceil(r):$h(r),r=jh.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),i="Z"in o?qd(Od(o.y)).getUTCDay():n(Od(o.y)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,qd(o)):n(o)}}function A(t,n,e,r){for(var i,o,a=0,u=n.length,f=e.length;a<u;){if(r>=f)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=x[i in Fd?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return b.x=w(e,b),b.X=w(r,b),b.c=w(n,b),m.x=w(e,m),m.X=w(r,m),m.c=w(n,m),{format:function(t){var n=w(t+="",b);return n.toString=function(){return t},n},parse:function(t){var n=M(t+="",Ud);return n.toString=function(){return t},n},utcFormat:function(t){var n=w(t+="",m);return n.toString=function(){return t},n},utcParse:function(t){var n=M(t,qd);return n.toString=function(){return t},n}}}var Bd,Fd={"-":"",_:" ",0:"0"},Id=/^\s*\d+/,Hd=/^%/,jd=/[\\^$*+?|[\]().{}]/g;function Xd(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function Gd(t){return t.replace(jd,"\\$&")}function Vd(t){return new RegExp("^(?:"+t.map(Gd).join("|")+")","i")}function $d(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function Wd(t,n,e){var r=Id.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function Zd(t,n,e){var r=Id.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function Qd(t,n,e){var r=Id.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function Jd(t,n,e){var r=Id.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function Kd(t,n,e){var r=Id.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function tp(t,n,e){var r=Id.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function np(t,n,e){var r=Id.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function ep(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function rp(t,n,e){var r=Id.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function ip(t,n,e){var r=Id.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function op(t,n,e){var r=Id.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function ap(t,n,e){var r=Id.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function up(t,n,e){var r=Id.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function fp(t,n,e){var r=Id.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function cp(t,n,e){var r=Id.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function sp(t,n,e){var r=Id.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function lp(t,n,e){var r=Hd.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function hp(t,n,e){var r=Id.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function dp(t,n,e){var r=Id.exec(n.slice(e));return r?(t.Q=1e3*+r[0],e+r[0].length):-1}function pp(t,n){return Xd(t.getDate(),n,2)}function vp(t,n){return Xd(t.getHours(),n,2)}function gp(t,n){return Xd(t.getHours()%12||12,n,2)}function yp(t,n){return Xd(1+jh.count(cd(t),t),n,3)}function _p(t,n){return Xd(t.getMilliseconds(),n,3)}function bp(t,n){return _p(t,n)+"000"}function mp(t,n){return Xd(t.getMonth()+1,n,2)}function xp(t,n){return Xd(t.getMinutes(),n,2)}function wp(t,n){return Xd(t.getSeconds(),n,2)}function Mp(t){var n=t.getDay();return 0===n?7:n}function Ap(t,n){return Xd(Vh.count(cd(t),t),n,2)}function Tp(t,n){var e=t.getDay();return t=e>=4||0===e?Qh(t):Qh.ceil(t),Xd(Qh.count(cd(t),t)+(4===cd(t).getDay()),n,2)}function Np(t){return t.getDay()}function Sp(t,n){return Xd($h.count(cd(t),t),n,2)}function Ep(t,n){return Xd(t.getFullYear()%100,n,2)}function kp(t,n){return Xd(t.getFullYear()%1e4,n,4)}function Cp(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+Xd(n/60|0,"0",2)+Xd(n%60,"0",2)}function Pp(t,n){return Xd(t.getUTCDate(),n,2)}function zp(t,n){return Xd(t.getUTCHours(),n,2)}function Rp(t,n){return Xd(t.getUTCHours()%12||12,n,2)}function Lp(t,n){return Xd(1+vd.count(Ld(t),t),n,3)}function Dp(t,n){return Xd(t.getUTCMilliseconds(),n,3)}function Up(t,n){return Dp(t,n)+"000"}function qp(t,n){return Xd(t.getUTCMonth()+1,n,2)}function Op(t,n){return Xd(t.getUTCMinutes(),n,2)}function Yp(t,n){return Xd(t.getUTCSeconds(),n,2)}function Bp(t){var n=t.getUTCDay();return 0===n?7:n}function Fp(t,n){return Xd(_d.count(Ld(t),t),n,2)}function Ip(t,n){var e=t.getUTCDay();return t=e>=4||0===e?wd(t):wd.ceil(t),Xd(wd.count(Ld(t),t)+(4===Ld(t).getUTCDay()),n,2)}function Hp(t){return t.getUTCDay()}function jp(t,n){return Xd(bd.count(Ld(t),t),n,2)}function Xp(t,n){return Xd(t.getUTCFullYear()%100,n,2)}function Gp(t,n){return Xd(t.getUTCFullYear()%1e4,n,4)}function Vp(){return"+0000"}function $p(){return"%"}function Wp(t){return+t}function Zp(t){return Math.floor(+t/1e3)}function Qp(n){return Bd=Yd(n),t.timeFormat=Bd.format,t.timeParse=Bd.parse,t.utcFormat=Bd.utcFormat,t.utcParse=Bd.utcParse,Bd}Qp({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Jp=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ");var Kp=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ"),tv=1e3,nv=60*tv,ev=60*nv,rv=24*ev,iv=7*rv,ov=30*rv,av=365*rv;function uv(t){return new Date(t)}function fv(t){return t instanceof Date?+t:+new Date(+t)}function cv(t,n,r,i,o,a,u,f,c){var s=mh(gh,ve),l=s.invert,h=s.domain,d=c(".%L"),p=c(":%S"),v=c("%I:%M"),g=c("%I %p"),y=c("%a %d"),_=c("%b %d"),b=c("%B"),m=c("%Y"),x=[[u,1,tv],[u,5,5*tv],[u,15,15*tv],[u,30,30*tv],[a,1,nv],[a,5,5*nv],[a,15,15*nv],[a,30,30*nv],[o,1,ev],[o,3,3*ev],[o,6,6*ev],[o,12,12*ev],[i,1,rv],[i,2,2*rv],[r,1,iv],[n,1,ov],[n,3,3*ov],[t,1,av]];function M(e){return(u(e)<e?d:a(e)<e?p:o(e)<e?v:i(e)<e?g:n(e)<e?r(e)<e?y:_:t(e)<e?b:m)(e)}function A(n,r,i,o){if(null==n&&(n=10),"number"==typeof n){var a=Math.abs(i-r)/n,u=e(function(t){return t[2]}).right(x,a);u===x.length?(o=w(r/av,i/av,n),n=t):u?(o=(u=x[a/x[u-1][2]<x[u][2]/a?u-1:u])[1],n=u[0]):(o=Math.max(w(r,i,n),1),n=f)}return null==o?n:n.every(o)}return s.invert=function(t){return new Date(l(t))},s.domain=function(t){return arguments.length?h(fh.call(t,fv)):h().map(uv)},s.ticks=function(t,n){var e,r=h(),i=r[0],o=r[r.length-1],a=o<i;return a&&(e=i,i=o,o=e),e=(e=A(t,i,o,n))?e.range(i,o+1):[],a?e.reverse():e},s.tickFormat=function(t,n){return null==n?M:c(n)},s.nice=function(t,n){var e=h();return(t=A(t,e[0],e[e.length-1],n))?h(wh(e,t)):s},s.copy=function(){return bh(s,cv(t,n,r,i,o,a,u,f,c))},s}function sv(t){for(var n=t.length/6|0,e=new Array(n),r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}var lv=sv("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),hv=sv("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),dv=sv("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),pv=sv("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),vv=sv("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),gv=sv("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),yv=sv("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),_v=sv("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),bv=sv("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f");function mv(t){return le(t[t.length-1])}var xv=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(sv),wv=mv(xv),Mv=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(sv),Av=mv(Mv),Tv=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(sv),Nv=mv(Tv),Sv=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(sv),Ev=mv(Sv),kv=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(sv),Cv=mv(kv),Pv=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(sv),zv=mv(Pv),Rv=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(sv),Lv=mv(Rv),Dv=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(sv),Uv=mv(Dv),qv=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(sv),Ov=mv(qv),Yv=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(sv),Bv=mv(Yv),Fv=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(sv),Iv=mv(Fv),Hv=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(sv),jv=mv(Hv),Xv=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(sv),Gv=mv(Xv),Vv=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(sv),$v=mv(Vv),Wv=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(sv),Zv=mv(Wv),Qv=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(sv),Jv=mv(Qv),Kv=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(sv),tg=mv(Kv),ng=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(sv),eg=mv(ng),rg=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(sv),ig=mv(rg),og=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(sv),ag=mv(og),ug=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(sv),fg=mv(ug),cg=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(sv),sg=mv(cg),lg=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(sv),hg=mv(lg),dg=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(sv),pg=mv(dg),vg=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(sv),gg=mv(vg),yg=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(sv),_g=mv(yg),bg=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(sv),mg=mv(bg),xg=Ge(Kn(300,.5,0),Kn(-240,.5,1)),wg=Ge(Kn(-100,.75,.35),Kn(80,1.5,.8)),Mg=Ge(Kn(260,.75,.35),Kn(80,1.5,.8)),Ag=Kn();var Tg=bn(),Ng=Math.PI/3,Sg=2*Math.PI/3;function Eg(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}var kg=Eg(sv("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),Cg=Eg(sv("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),Pg=Eg(sv("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),zg=Eg(sv("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function Rg(t){return function(){return t}}var Lg=Math.abs,Dg=Math.atan2,Ug=Math.cos,qg=Math.max,Og=Math.min,Yg=Math.sin,Bg=Math.sqrt,Fg=1e-12,Ig=Math.PI,Hg=Ig/2,jg=2*Ig;function Xg(t){return t>=1?Hg:t<=-1?-Hg:Math.asin(t)}function Gg(t){return t.innerRadius}function Vg(t){return t.outerRadius}function $g(t){return t.startAngle}function Wg(t){return t.endAngle}function Zg(t){return t&&t.padAngle}function Qg(t,n,e,r,i,o,a){var u=t-e,f=n-r,c=(a?o:-o)/Bg(u*u+f*f),s=c*f,l=-c*u,h=t+s,d=n+l,p=e+s,v=r+l,g=(h+p)/2,y=(d+v)/2,_=p-h,b=v-d,m=_*_+b*b,x=i-o,w=h*v-p*d,M=(b<0?-1:1)*Bg(qg(0,x*x*m-w*w)),A=(w*b-_*M)/m,T=(-w*_-b*M)/m,N=(w*b+_*M)/m,S=(-w*_+b*M)/m,E=A-g,k=T-y,C=N-g,P=S-y;return E*E+k*k>C*C+P*P&&(A=N,T=S),{cx:A,cy:T,x01:-s,y01:-l,x11:A*(i/x-1),y11:T*(i/x-1)}}function Jg(t){this._context=t}function Kg(t){return new Jg(t)}function ty(t){return t[0]}function ny(t){return t[1]}function ey(){var t=ty,n=ny,e=Rg(!0),r=null,i=Kg,o=null;function a(a){var u,f,c,s=a.length,l=!1;for(null==r&&(o=i(c=Gi())),u=0;u<=s;++u)!(u<s&&e(f=a[u],u,a))===l&&((l=!l)?o.lineStart():o.lineEnd()),l&&o.point(+t(f,u,a),+n(f,u,a));if(c)return o=null,c+""||null}return a.x=function(n){return arguments.length?(t="function"==typeof n?n:Rg(+n),a):t},a.y=function(t){return arguments.length?(n="function"==typeof t?t:Rg(+t),a):n},a.defined=function(t){return arguments.length?(e="function"==typeof t?t:Rg(!!t),a):e},a.curve=function(t){return arguments.length?(i=t,null!=r&&(o=i(r)),a):i},a.context=function(t){return arguments.length?(null==t?r=o=null:o=i(r=t),a):r},a}function ry(){var t=ty,n=null,e=Rg(0),r=ny,i=Rg(!0),o=null,a=Kg,u=null;function f(f){var c,s,l,h,d,p=f.length,v=!1,g=new Array(p),y=new Array(p);for(null==o&&(u=a(d=Gi())),c=0;c<=p;++c){if(!(c<p&&i(h=f[c],c,f))===v)if(v=!v)s=c,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),l=c-1;l>=s;--l)u.point(g[l],y[l]);u.lineEnd(),u.areaEnd()}v&&(g[c]=+t(h,c,f),y[c]=+e(h,c,f),u.point(n?+n(h,c,f):g[c],r?+r(h,c,f):y[c]))}if(d)return u=null,d+""||null}function c(){return ey().defined(i).curve(a).context(o)}return f.x=function(e){return arguments.length?(t="function"==typeof e?e:Rg(+e),n=null,f):t},f.x0=function(n){return arguments.length?(t="function"==typeof n?n:Rg(+n),f):t},f.x1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:Rg(+t),f):n},f.y=function(t){return arguments.length?(e="function"==typeof t?t:Rg(+t),r=null,f):e},f.y0=function(t){return arguments.length?(e="function"==typeof t?t:Rg(+t),f):e},f.y1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:Rg(+t),f):r},f.lineX0=f.lineY0=function(){return c().x(t).y(e)},f.lineY1=function(){return c().x(t).y(r)},f.lineX1=function(){return c().x(n).y(e)},f.defined=function(t){return arguments.length?(i="function"==typeof t?t:Rg(!!t),f):i},f.curve=function(t){return arguments.length?(a=t,null!=o&&(u=a(o)),f):a},f.context=function(t){return arguments.length?(null==t?o=u=null:u=a(o=t),f):o},f}function iy(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function oy(t){return t}Jg.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var ay=fy(Kg);function uy(t){this._curve=t}function fy(t){function n(n){return new uy(t(n))}return n._curve=t,n}function cy(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(fy(t)):n()._curve},t}function sy(){return cy(ey().curve(ay))}function ly(){var t=ry().curve(ay),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return cy(e())},delete t.lineX0,t.lineEndAngle=function(){return cy(r())},delete t.lineX1,t.lineInnerRadius=function(){return cy(i())},delete t.lineY0,t.lineOuterRadius=function(){return cy(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(fy(t)):n()._curve},t}function hy(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}uy.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var dy=Array.prototype.slice;function py(t){return t.source}function vy(t){return t.target}function gy(t){var n=py,e=vy,r=ty,i=ny,o=null;function a(){var a,u=dy.call(arguments),f=n.apply(this,u),c=e.apply(this,u);if(o||(o=a=Gi()),t(o,+r.apply(this,(u[0]=f,u)),+i.apply(this,u),+r.apply(this,(u[0]=c,u)),+i.apply(this,u)),a)return o=null,a+""||null}return a.source=function(t){return arguments.length?(n=t,a):n},a.target=function(t){return arguments.length?(e=t,a):e},a.x=function(t){return arguments.length?(r="function"==typeof t?t:Rg(+t),a):r},a.y=function(t){return arguments.length?(i="function"==typeof t?t:Rg(+t),a):i},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a}function yy(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function _y(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function by(t,n,e,r,i){var o=hy(n,e),a=hy(n,e=(e+i)/2),u=hy(r,e),f=hy(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],u[0],u[1],f[0],f[1])}var my={draw:function(t,n){var e=Math.sqrt(n/Ig);t.moveTo(e,0),t.arc(0,0,e,0,jg)}},xy={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},wy=Math.sqrt(1/3),My=2*wy,Ay={draw:function(t,n){var e=Math.sqrt(n/My),r=e*wy;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Ty=Math.sin(Ig/10)/Math.sin(7*Ig/10),Ny=Math.sin(jg/10)*Ty,Sy=-Math.cos(jg/10)*Ty,Ey={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Ny*e,i=Sy*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=jg*o/5,u=Math.cos(a),f=Math.sin(a);t.lineTo(f*e,-u*e),t.lineTo(u*r-f*i,f*r+u*i)}t.closePath()}},ky={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},Cy=Math.sqrt(3),Py={draw:function(t,n){var e=-Math.sqrt(n/(3*Cy));t.moveTo(0,2*e),t.lineTo(-Cy*e,-e),t.lineTo(Cy*e,-e),t.closePath()}},zy=Math.sqrt(3)/2,Ry=1/Math.sqrt(12),Ly=3*(Ry/2+1),Dy={draw:function(t,n){var e=Math.sqrt(n/Ly),r=e/2,i=e*Ry,o=r,a=e*Ry+e,u=-o,f=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,f),t.lineTo(-.5*r-zy*i,zy*r+-.5*i),t.lineTo(-.5*o-zy*a,zy*o+-.5*a),t.lineTo(-.5*u-zy*f,zy*u+-.5*f),t.lineTo(-.5*r+zy*i,-.5*i-zy*r),t.lineTo(-.5*o+zy*a,-.5*a-zy*o),t.lineTo(-.5*u+zy*f,-.5*f-zy*u),t.closePath()}},Uy=[my,xy,Ay,ky,Ey,Py,Dy];function qy(){}function Oy(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function Yy(t){this._context=t}function By(t){this._context=t}function Fy(t){this._context=t}function Iy(t,n){this._basis=new Yy(t),this._beta=n}Yy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Oy(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Oy(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},By.prototype={areaStart:qy,areaEnd:qy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Oy(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Fy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Oy(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Iy.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,f=-1;++f<=e;)r=f/e,this._basis.point(this._beta*t[f]+(1-this._beta)*(i+r*a),this._beta*n[f]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var Hy=function t(n){function e(t){return 1===n?new Yy(t):new Iy(t,n)}return e.beta=function(n){return t(+n)},e}(.85);function jy(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Xy(t,n){this._context=t,this._k=(1-n)/6}Xy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:jy(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:jy(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Gy=function t(n){function e(t){return new Xy(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Vy(t,n){this._context=t,this._k=(1-n)/6}Vy.prototype={areaStart:qy,areaEnd:qy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:jy(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var $y=function t(n){function e(t){return new Vy(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Wy(t,n){this._context=t,this._k=(1-n)/6}Wy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:jy(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Zy=function t(n){function e(t){return new Wy(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Qy(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>Fg){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,f=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/f,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/f}if(t._l23_a>Fg){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*c+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*c+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Jy(t,n){this._context=t,this._alpha=n}Jy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Qy(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Ky=function t(n){function e(t){return n?new Jy(t,n):new Xy(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function t_(t,n){this._context=t,this._alpha=n}t_.prototype={areaStart:qy,areaEnd:qy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Qy(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var n_=function t(n){function e(t){return n?new t_(t,n):new Vy(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function e_(t,n){this._context=t,this._alpha=n}e_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Qy(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var r_=function t(n){function e(t){return n?new e_(t,n):new Wy(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function i_(t){this._context=t}function o_(t){return t<0?-1:1}function a_(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(o_(o)+o_(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function u_(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function f_(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function c_(t){this._context=t}function s_(t){this._context=new l_(t)}function l_(t){this._context=t}function h_(t){this._context=t}function d_(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,a[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,a[n]-=e*a[n-1];for(i[r-1]=a[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function p_(t,n){this._context=t,this._t=n}function v_(t,n){if((i=t.length)>1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o<i;++o)for(r=a,a=t[n[o]],e=0;e<u;++e)a[e][1]+=a[e][0]=isNaN(r[e][1])?r[e][0]:r[e][1]}function g_(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e}function y_(t,n){return t[n]}function __(t){var n=t.map(b_);return g_(t).sort(function(t,e){return n[t]-n[e]})}function b_(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function m_(t){return function(){return t}}function x_(t){return t[0]}function w_(t){return t[1]}function M_(){this._=null}function A_(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function T_(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function N_(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function S_(t){for(;t.L;)t=t.L;return t}function E_(t,n,e,r){var i=[null,null],o=J_.push(i)-1;return i.left=t,i.right=n,e&&C_(i,t,n,e),r&&C_(i,n,t,r),Z_[t.index].halfedges.push(o),Z_[n.index].halfedges.push(o),i}function k_(t,n,e){var r=[n,e];return r.left=t,r}function C_(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function P_(t,n,e,r,i){var o,a=t[0],u=t[1],f=a[0],c=a[1],s=0,l=1,h=u[0]-f,d=u[1]-c;if(o=n-f,h||!(o>0)){if(o/=h,h<0){if(o<s)return;o<l&&(l=o)}else if(h>0){if(o>l)return;o>s&&(s=o)}if(o=r-f,h||!(o<0)){if(o/=h,h<0){if(o>l)return;o>s&&(s=o)}else if(h>0){if(o<s)return;o<l&&(l=o)}if(o=e-c,d||!(o>0)){if(o/=d,d<0){if(o<s)return;o<l&&(l=o)}else if(d>0){if(o>l)return;o>s&&(s=o)}if(o=i-c,d||!(o<0)){if(o/=d,d<0){if(o>l)return;o>s&&(s=o)}else if(d>0){if(o<s)return;o<l&&(l=o)}return!(s>0||l<1)||(s>0&&(t[0]=[f+s*h,c+s*d]),l<1&&(t[1]=[f+l*h,c+l*d]),!0)}}}}}function z_(t,n,e,r,i){var o=t[1];if(o)return!0;var a,u,f=t[0],c=t.left,s=t.right,l=c[0],h=c[1],d=s[0],p=s[1],v=(l+d)/2,g=(h+p)/2;if(p===h){if(v<n||v>=r)return;if(l>d){if(f){if(f[1]>=i)return}else f=[v,e];o=[v,i]}else{if(f){if(f[1]<e)return}else f=[v,i];o=[v,e]}}else if(u=g-(a=(l-d)/(p-h))*v,a<-1||a>1)if(l>d){if(f){if(f[1]>=i)return}else f=[(e-u)/a,e];o=[(i-u)/a,i]}else{if(f){if(f[1]<e)return}else f=[(i-u)/a,i];o=[(e-u)/a,e]}else if(h<p){if(f){if(f[0]>=r)return}else f=[n,a*n+u];o=[r,a*r+u]}else{if(f){if(f[0]<n)return}else f=[r,a*r+u];o=[n,a*n+u]}return t[0]=f,t[1]=o,!0}function R_(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function L_(t,n){return n[+(n.left!==t.site)]}function D_(t,n){return n[+(n.left===t.site)]}i_.prototype={areaStart:qy,areaEnd:qy,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},c_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:f_(this,this._t0,u_(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(n=+n,(t=+t)!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,f_(this,u_(this,e=a_(this,t,n)),e);break;default:f_(this,this._t0,e=a_(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(s_.prototype=Object.create(c_.prototype)).point=function(t,n){c_.prototype.point.call(this,n,t)},l_.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},h_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=d_(t),i=d_(n),o=0,a=1;a<e;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],n[a]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}},p_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}},M_.prototype={constructor:M_,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=S_(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)e===(r=e.U).L?(i=r.R)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(T_(this,e),e=(t=e).U),e.C=!1,r.C=!0,N_(this,r)):(i=r.L)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(N_(this,e),e=(t=e).U),e.C=!1,r.C=!0,T_(this,r)),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,a=t.R;if(e=o?a?S_(a):o:a,i?i.L===t?i.L=e:i.R=e:this._=e,o&&a?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==a?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=a,a.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((n=i.R).C&&(n.C=!1,i.C=!0,T_(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,N_(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,T_(this,i),t=this._;break}}else if((n=i.L).C&&(n.C=!1,i.C=!0,N_(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,T_(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,N_(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var U_,q_=[];function O_(){A_(this),this.x=this.y=this.arc=this.site=this.cy=null}function Y_(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var a=i[0],u=i[1],f=r[0]-a,c=r[1]-u,s=o[0]-a,l=o[1]-u,h=2*(f*l-c*s);if(!(h>=-tb)){var d=f*f+c*c,p=s*s+l*l,v=(l*d-c*p)/h,g=(f*p-s*d)/h,y=q_.pop()||new O_;y.arc=t,y.site=i,y.x=v+a,y.y=(y.cy=g+u)+Math.sqrt(v*v+g*g),t.circle=y;for(var _=null,b=Q_._;b;)if(y.y<b.y||y.y===b.y&&y.x<=b.x){if(!b.L){_=b.P;break}b=b.L}else{if(!b.R){_=b;break}b=b.R}Q_.insert(_,y),_||(U_=y)}}}}function B_(t){var n=t.circle;n&&(n.P||(U_=n.N),Q_.remove(n),q_.push(n),A_(n),t.circle=null)}var F_=[];function I_(){A_(this),this.edge=this.site=this.circle=null}function H_(t){var n=F_.pop()||new I_;return n.site=t,n}function j_(t){B_(t),W_.remove(t),F_.push(t),A_(t)}function X_(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,a=t.N,u=[t];j_(t);for(var f=o;f.circle&&Math.abs(e-f.circle.x)<K_&&Math.abs(r-f.circle.cy)<K_;)o=f.P,u.unshift(f),j_(f),f=o;u.unshift(f),B_(f);for(var c=a;c.circle&&Math.abs(e-c.circle.x)<K_&&Math.abs(r-c.circle.cy)<K_;)a=c.N,u.push(c),j_(c),c=a;u.push(c),B_(c);var s,l=u.length;for(s=1;s<l;++s)c=u[s],f=u[s-1],C_(c.edge,f.site,c.site,i);f=u[0],(c=u[l-1]).edge=E_(f.site,c.site,null,i),Y_(f),Y_(c)}function G_(t){for(var n,e,r,i,o=t[0],a=t[1],u=W_._;u;)if((r=V_(u,a)-o)>K_)u=u.L;else{if(!((i=o-$_(u,a))>K_)){r>-K_?(n=u.P,e=u):i>-K_?(n=u,e=u.N):n=e=u;break}if(!u.R){n=u;break}u=u.R}!function(t){Z_[t.index]={site:t,halfedges:[]}}(t);var f=H_(t);if(W_.insert(n,f),n||e){if(n===e)return B_(n),e=H_(n.site),W_.insert(f,e),f.edge=e.edge=E_(n.site,f.site),Y_(n),void Y_(e);if(e){B_(n),B_(e);var c=n.site,s=c[0],l=c[1],h=t[0]-s,d=t[1]-l,p=e.site,v=p[0]-s,g=p[1]-l,y=2*(h*g-d*v),_=h*h+d*d,b=v*v+g*g,m=[(g*_-d*b)/y+s,(h*b-v*_)/y+l];C_(e.edge,c,p,m),f.edge=E_(c,t,null,m),e.edge=E_(t,p,null,m),Y_(n),Y_(e)}else f.edge=E_(n.site,f.site)}}function V_(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var a=t.P;if(!a)return-1/0;var u=(e=a.site)[0],f=e[1],c=f-n;if(!c)return u;var s=u-r,l=1/o-1/c,h=s/c;return l?(-h+Math.sqrt(h*h-2*l*(s*s/(-2*c)-f+c/2+i-o/2)))/l+r:(r+u)/2}function $_(t,n){var e=t.N;if(e)return V_(e,n);var r=t.site;return r[1]===n?r[0]:1/0}var W_,Z_,Q_,J_,K_=1e-6,tb=1e-12;function nb(t,n){return n[1]-t[1]||n[0]-t[0]}function eb(t,n){var e,r,i,o=t.sort(nb).pop();for(J_=[],Z_=new Array(t.length),W_=new M_,Q_=new M_;;)if(i=U_,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(G_(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;X_(i.arc)}if(function(){for(var t,n,e,r,i=0,o=Z_.length;i<o;++i)if((t=Z_[i])&&(r=(n=t.halfedges).length)){var a=new Array(r),u=new Array(r);for(e=0;e<r;++e)a[e]=e,u[e]=R_(t,J_[n[e]]);for(a.sort(function(t,n){return u[n]-u[t]}),e=0;e<r;++e)u[e]=n[a[e]];for(e=0;e<r;++e)n[e]=u[e]}}(),n){var a=+n[0][0],u=+n[0][1],f=+n[1][0],c=+n[1][1];!function(t,n,e,r){for(var i,o=J_.length;o--;)z_(i=J_[o],t,n,e,r)&&P_(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>K_||Math.abs(i[0][1]-i[1][1])>K_)||delete J_[o]}(a,u,f,c),function(t,n,e,r){var i,o,a,u,f,c,s,l,h,d,p,v,g=Z_.length,y=!0;for(i=0;i<g;++i)if(o=Z_[i]){for(a=o.site,u=(f=o.halfedges).length;u--;)J_[f[u]]||f.splice(u,1);for(u=0,c=f.length;u<c;)p=(d=D_(o,J_[f[u]]))[0],v=d[1],l=(s=L_(o,J_[f[++u%c]]))[0],h=s[1],(Math.abs(p-l)>K_||Math.abs(v-h)>K_)&&(f.splice(u,0,J_.push(k_(a,d,Math.abs(p-t)<K_&&r-v>K_?[t,Math.abs(l-t)<K_?h:r]:Math.abs(v-r)<K_&&e-p>K_?[Math.abs(h-r)<K_?l:e,r]:Math.abs(p-e)<K_&&v-n>K_?[e,Math.abs(l-e)<K_?h:n]:Math.abs(v-n)<K_&&p-t>K_?[Math.abs(h-n)<K_?l:t,n]:null))-1),++c);c&&(y=!1)}if(y){var _,b,m,x=1/0;for(i=0,y=null;i<g;++i)(o=Z_[i])&&(m=(_=(a=o.site)[0]-t)*_+(b=a[1]-n)*b)<x&&(x=m,y=o);if(y){var w=[t,n],M=[t,r],A=[e,r],T=[e,n];y.halfedges.push(J_.push(k_(a=y.site,w,M))-1,J_.push(k_(a,M,A))-1,J_.push(k_(a,A,T))-1,J_.push(k_(a,T,w))-1)}}for(i=0;i<g;++i)(o=Z_[i])&&(o.halfedges.length||delete Z_[i])}(a,u,f,c)}this.edges=J_,this.cells=Z_,W_=Q_=J_=Z_=null}function rb(t){return function(){return t}}function ib(t,n,e){this.target=t,this.type=n,this.transform=e}function ob(t,n,e){this.k=t,this.x=n,this.y=e}eb.prototype={constructor:eb,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return L_(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,a,u,f,c,s=e.site,l=-1,h=n[i[o-1]],d=h.left===s?h.right:h.left;++l<o;)a=d,d=(h=n[i[l]]).left===s?h.right:h.left,a&&d&&r<a.index&&r<d.index&&(f=a,c=d,((u=s)[0]-c[0])*(f[1]-u[1])-(u[0]-f[0])*(c[1]-u[1])<0)&&t.push([s.data,a.data,d.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,a=o._found||0,u=o.cells.length;!(i=o.cells[a]);)if(++a>=u)return null;var f=t-i.site[0],c=n-i.site[1],s=f*f+c*c;do{i=o.cells[r=a],a=null,i.halfedges.forEach(function(e){var r=o.edges[e],u=r.left;if(u!==i.site&&u||(u=r.right)){var f=t-u[0],c=n-u[1],l=f*f+c*c;l<s&&(s=l,a=u.index)}})}while(null!==a);return o._found=r,null==e||s<=e*e?i.site:null}},ob.prototype={constructor:ob,scale:function(t){return 1===t?this:new ob(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new ob(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var ab=new ob(1,0,0);function ub(t){return t.__zoom||ab}function fb(){t.event.stopImmediatePropagation()}function cb(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function sb(){return!t.event.button}function lb(){var t,n,e=this;return e instanceof SVGElement?(t=(e=e.ownerSVGElement||e).width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function hb(){return this.__zoom||ab}function db(){return-t.event.deltaY*(t.event.deltaMode?120:1)/500}function pb(){return"ontouchstart"in this}function vb(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}ub.prototype=ob.prototype,t.version="5.7.0",t.bisect=i,t.bisectRight=i,t.bisectLeft=o,t.ascending=n,t.bisector=e,t.cross=function(t,n,e){var r,i,o,u,f=t.length,c=n.length,s=new Array(f*c);for(null==e&&(e=a),r=o=0;r<f;++r)for(u=t[r],i=0;i<c;++i,++o)s[o]=e(u,n[i]);return s},t.descending=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},t.deviation=c,t.extent=s,t.histogram=function(){var t=v,n=s,e=M;function r(r){var o,a,u=r.length,f=new Array(u);for(o=0;o<u;++o)f[o]=t(r[o],o,r);var c=n(f),s=c[0],l=c[1],h=e(f,s,l);Array.isArray(h)||(h=w(s,l,h),h=g(Math.ceil(s/h)*h,l,h));for(var d=h.length;h[0]<=s;)h.shift(),--d;for(;h[d-1]>l;)h.pop(),--d;var p,v=new Array(d+1);for(o=0;o<=d;++o)(p=v[o]=[]).x0=o>0?h[o-1]:s,p.x1=o<d?h[o]:l;for(o=0;o<u;++o)s<=(a=f[o])&&a<=l&&v[i(h,a,0,d)].push(r[o]);return v}return r.value=function(n){return arguments.length?(t="function"==typeof n?n:p(n),r):t},r.domain=function(t){return arguments.length?(n="function"==typeof t?t:p([t[0],t[1]]),r):n},r.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?p(h.call(t)):p(t),r):e},r},t.thresholdFreedmanDiaconis=function(t,e,r){return t=d.call(t,u).sort(n),Math.ceil((r-e)/(2*(A(t,.75)-A(t,.25))*Math.pow(t.length,-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*c(t)*Math.pow(t.length,-1/3)))},t.thresholdSturges=M,t.max=T,t.mean=function(t,n){var e,r=t.length,i=r,o=-1,a=0;if(null==n)for(;++o<r;)isNaN(e=u(t[o]))?--i:a+=e;else for(;++o<r;)isNaN(e=u(n(t[o],o,t)))?--i:a+=e;if(i)return a/i},t.median=function(t,e){var r,i=t.length,o=-1,a=[];if(null==e)for(;++o<i;)isNaN(r=u(t[o]))||a.push(r);else for(;++o<i;)isNaN(r=u(e(t[o],o,t)))||a.push(r);return A(a.sort(n),.5)},t.merge=N,t.min=S,t.pairs=function(t,n){null==n&&(n=a);for(var e=0,r=t.length-1,i=t[0],o=new Array(r<0?0:r);e<r;)o[e]=n(i,i=t[++e]);return o},t.permute=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},t.quantile=A,t.range=g,t.scan=function(t,e){if(r=t.length){var r,i,o=0,a=0,u=t[a];for(null==e&&(e=n);++o<r;)(e(i=t[o],u)<0||0!==e(u,u))&&(u=i,a=o);return 0===e(u,u)?a:void 0}},t.shuffle=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},t.sum=function(t,n){var e,r=t.length,i=-1,o=0;if(null==n)for(;++i<r;)(e=+t[i])&&(o+=e);else for(;++i<r;)(e=+n(t[i],i,t))&&(o+=e);return o},t.ticks=m,t.tickIncrement=x,t.tickStep=w,t.transpose=E,t.variance=f,t.zip=function(){return E(arguments)},t.axisTop=function(t){return B(z,t)},t.axisRight=function(t){return B(R,t)},t.axisBottom=function(t){return B(L,t)},t.axisLeft=function(t){return B(D,t)},t.brush=function(){return Ri(wi)},t.brushX=function(){return Ri(mi)},t.brushY=function(){return Ri(xi)},t.brushSelection=function(t){var n=t.__brush;return n?n.dim.output(n.selection):null},t.chord=function(){var t=0,n=null,e=null,r=null;function i(i){var o,a,u,f,c,s,l=i.length,h=[],d=g(l),p=[],v=[],y=v.groups=new Array(l),_=new Array(l*l);for(o=0,c=-1;++c<l;){for(a=0,s=-1;++s<l;)a+=i[c][s];h.push(a),p.push(g(l)),o+=a}for(n&&d.sort(function(t,e){return n(h[t],h[e])}),e&&p.forEach(function(t,n){t.sort(function(t,r){return e(i[n][t],i[n][r])})}),f=(o=Yi(0,Oi-t*l)/o)?t:Oi/l,a=0,c=-1;++c<l;){for(u=a,s=-1;++s<l;){var b=d[c],m=p[b][s],x=i[b][m],w=a,M=a+=x*o;_[m*l+b]={index:b,subindex:m,startAngle:w,endAngle:M,value:x}}y[b]={index:b,startAngle:u,endAngle:a,value:h[b]},a+=f}for(c=-1;++c<l;)for(s=c-1;++s<l;){var A=_[s*l+c],T=_[c*l+s];(A.value||T.value)&&v.push(A.value<T.value?{source:T,target:A}:{source:A,target:T})}return r?v.sort(r):v}return i.padAngle=function(n){return arguments.length?(t=Yi(0,n),i):t},i.sortGroups=function(t){return arguments.length?(n=t,i):n},i.sortSubgroups=function(t){return arguments.length?(e=t,i):e},i.sortChords=function(t){return arguments.length?(null==t?r=null:(n=t,r=function(t,e){return n(t.source.value+t.target.value,e.source.value+e.target.value)})._=t,i):r&&r._;var n},i},t.ribbon=function(){var t=Vi,n=$i,e=Wi,r=Zi,i=Qi,o=null;function a(){var a,u=Bi.call(arguments),f=t.apply(this,u),c=n.apply(this,u),s=+e.apply(this,(u[0]=f,u)),l=r.apply(this,u)-qi,h=i.apply(this,u)-qi,d=s*Li(l),p=s*Di(l),v=+e.apply(this,(u[0]=c,u)),g=r.apply(this,u)-qi,y=i.apply(this,u)-qi;if(o||(o=a=Gi()),o.moveTo(d,p),o.arc(0,0,s,l,h),l===g&&h===y||(o.quadraticCurveTo(0,0,v*Li(g),v*Di(g)),o.arc(0,0,v,g,y)),o.quadraticCurveTo(0,0,d,p),o.closePath(),a)return o=null,a+""||null}return a.radius=function(t){return arguments.length?(e="function"==typeof t?t:Fi(+t),a):e},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:Fi(+t),a):r},a.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:Fi(+t),a):i},a.source=function(n){return arguments.length?(t=n,a):t},a.target=function(t){return arguments.length?(n=t,a):n},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a},t.nest=function(){var t,n,e,r=[],i=[];function o(e,i,a,u){if(i>=r.length)return null!=t&&e.sort(t),null!=n?n(e):e;for(var f,c,s,l=-1,h=e.length,d=r[i++],p=Ki(),v=a();++l<h;)(s=p.get(f=d(c=e[l])+""))?s.push(c):p.set(f,[c]);return p.each(function(t,n){u(v,n,o(t,i,a,u))}),v}return e={object:function(t){return o(t,0,to,no)},map:function(t){return o(t,0,eo,ro)},entries:function(t){return function t(e,o){if(++o>r.length)return e;var a,u=i[o-1];return null!=n&&o>=r.length?a=e.entries():(a=[],e.each(function(n,e){a.push({key:e,values:t(n,o)})})),null!=u?a.sort(function(t,n){return u(t.key,n.key)}):a}(o(t,0,eo,ro),0)},key:function(t){return r.push(t),e},sortKeys:function(t){return i[r.length-1]=t,e},sortValues:function(n){return t=n,e},rollup:function(t){return n=t,e}}},t.set=ao,t.map=Ki,t.keys=function(t){var n=[];for(var e in t)n.push(e);return n},t.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},t.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},t.color=vn,t.rgb=bn,t.hsl=Mn,t.lab=Un,t.hcl=Hn,t.lch=function(t,n,e,r){return 1===arguments.length?In(t):new jn(e,n,t,null==r?1:r)},t.gray=function(t,n){return new qn(t,0,0,null==n?1:n)},t.cubehelix=Kn,t.contours=go,t.contourDensity=function(){var t=bo,n=mo,e=xo,r=960,i=500,o=20,a=2,u=3*o,f=r+2*u>>a,c=i+2*u>>a,s=co(20);function l(r){var i=new Float32Array(f*c),l=new Float32Array(f*c);r.forEach(function(r,o,s){var l=+t(r,o,s)+u>>a,h=+n(r,o,s)+u>>a,d=+e(r,o,s);l>=0&&l<f&&h>=0&&h<c&&(i[l+h*f]+=d)}),yo({width:f,height:c,data:i},{width:f,height:c,data:l},o>>a),_o({width:f,height:c,data:l},{width:f,height:c,data:i},o>>a),yo({width:f,height:c,data:i},{width:f,height:c,data:l},o>>a),_o({width:f,height:c,data:l},{width:f,height:c,data:i},o>>a),yo({width:f,height:c,data:i},{width:f,height:c,data:l},o>>a),_o({width:f,height:c,data:l},{width:f,height:c,data:i},o>>a);var d=s(i);if(!Array.isArray(d)){var p=T(i);d=w(0,p,d),(d=g(0,Math.floor(p/d)*d,d)).shift()}return go().thresholds(d).size([f,c])(i).map(h)}function h(t){return t.value*=Math.pow(2,-2*a),t.coordinates.forEach(d),t}function d(t){t.forEach(p)}function p(t){t.forEach(v)}function v(t){t[0]=t[0]*Math.pow(2,a)-u,t[1]=t[1]*Math.pow(2,a)-u}function y(){return f=r+2*(u=3*o)>>a,c=i+2*u>>a,l}return l.x=function(n){return arguments.length?(t="function"==typeof n?n:co(+n),l):t},l.y=function(t){return arguments.length?(n="function"==typeof t?t:co(+t),l):n},l.weight=function(t){return arguments.length?(e="function"==typeof t?t:co(+t),l):e},l.size=function(t){if(!arguments.length)return[r,i];var n=Math.ceil(t[0]),e=Math.ceil(t[1]);if(!(n>=0||n>=0))throw new Error("invalid size");return r=n,i=e,y()},l.cellSize=function(t){if(!arguments.length)return 1<<a;if(!((t=+t)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(t)/Math.LN2),y()},l.thresholds=function(t){return arguments.length?(s="function"==typeof t?t:Array.isArray(t)?co(uo.call(t)):co(t),l):s},l.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return o=Math.round((Math.sqrt(4*t*t+1)-1)/2),y()},l},t.dispatch=I,t.drag=function(){var n,e,r,i,o=Wt,a=Zt,u=Qt,f=Jt,c={},s=I("start","drag","end"),l=0,h=0;function d(t){t.on("mousedown.drag",p).filter(f).on("touchstart.drag",y).on("touchmove.drag",_).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(){if(!i&&o.apply(this,arguments)){var u=m("mouse",a.apply(this,arguments),Ft,this,arguments);u&&(Dt(t.event.view).on("mousemove.drag",v,!0).on("mouseup.drag",g,!0),Xt(t.event.view),Ht(),r=!1,n=t.event.clientX,e=t.event.clientY,u("start"))}}function v(){if(jt(),!r){var i=t.event.clientX-n,o=t.event.clientY-e;r=i*i+o*o>h}c.mouse("drag")}function g(){Dt(t.event.view).on("mousemove.drag mouseup.drag",null),Gt(t.event.view,r),jt(),c.mouse("end")}function y(){if(o.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=a.apply(this,arguments),u=r.length;for(n=0;n<u;++n)(e=m(r[n].identifier,i,It,this,arguments))&&(Ht(),e("start"))}}function _(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=c[r[n].identifier])&&(jt(),e("drag"))}function b(){var n,e,r=t.event.changedTouches,o=r.length;for(i&&clearTimeout(i),i=setTimeout(function(){i=null},500),n=0;n<o;++n)(e=c[r[n].identifier])&&(Ht(),e("end"))}function m(n,e,r,i,o){var a,f,h,p=r(e,n),v=s.copy();if(Ct(new $t(d,"beforestart",a,n,l,p[0],p[1],0,0,v),function(){return null!=(t.event.subject=a=u.apply(i,o))&&(f=a.x-p[0]||0,h=a.y-p[1]||0,!0)}))return function t(u){var s,g=p;switch(u){case"start":c[n]=t,s=l++;break;case"end":delete c[n],--l;case"drag":p=r(e,n),s=l}Ct(new $t(d,u,a,n,s,p[0]+f,p[1]+h,p[0]-g[0],p[1]-g[1],v),v.apply,v,[u,i,o])}}return d.filter=function(t){return arguments.length?(o="function"==typeof t?t:Vt(!!t),d):o},d.container=function(t){return arguments.length?(a="function"==typeof t?t:Vt(t),d):a},d.subject=function(t){return arguments.length?(u="function"==typeof t?t:Vt(t),d):u},d.touchable=function(t){return arguments.length?(f="function"==typeof t?t:Vt(!!t),d):f},d.on=function(){var t=s.on.apply(s,arguments);return t===s?d:t},d.clickDistance=function(t){return arguments.length?(h=(t=+t)*t,d):Math.sqrt(h)},d},t.dragDisable=Xt,t.dragEnable=Gt,t.dsvFormat=Eo,t.csvParse=Co,t.csvParseRows=Po,t.csvFormat=zo,t.csvFormatRows=Ro,t.tsvParse=Do,t.tsvParseRows=Uo,t.tsvFormat=qo,t.tsvFormatRows=Oo,t.easeLinear=function(t){return+t},t.easeQuad=Dr,t.easeQuadIn=function(t){return t*t},t.easeQuadOut=function(t){return t*(2-t)},t.easeQuadInOut=Dr,t.easeCubic=Ur,t.easeCubicIn=function(t){return t*t*t},t.easeCubicOut=function(t){return--t*t*t+1},t.easeCubicInOut=Ur,t.easePoly=Yr,t.easePolyIn=qr,t.easePolyOut=Or,t.easePolyInOut=Yr,t.easeSin=Ir,t.easeSinIn=function(t){return 1-Math.cos(t*Fr)},t.easeSinOut=function(t){return Math.sin(t*Fr)},t.easeSinInOut=Ir,t.easeExp=Hr,t.easeExpIn=function(t){return Math.pow(2,10*t-10)},t.easeExpOut=function(t){return 1-Math.pow(2,-10*t)},t.easeExpInOut=Hr,t.easeCircle=jr,t.easeCircleIn=function(t){return 1-Math.sqrt(1-t*t)},t.easeCircleOut=function(t){return Math.sqrt(1- --t*t)},t.easeCircleInOut=jr,t.easeBounce=ni,t.easeBounceIn=function(t){return 1-ni(1-t)},t.easeBounceOut=ni,t.easeBounceInOut=function(t){return((t*=2)<=1?1-ni(1-t):ni(t-1)+1)/2},t.easeBack=ii,t.easeBackIn=ei,t.easeBackOut=ri,t.easeBackInOut=ii,t.easeElastic=ui,t.easeElasticIn=ai,t.easeElasticOut=ui,t.easeElasticInOut=fi,t.blob=function(t,n){return fetch(t,n).then(Yo)},t.buffer=function(t,n){return fetch(t,n).then(Bo)},t.dsv=function(t,n,e,r){3===arguments.length&&"function"==typeof e&&(r=e,e=void 0);var i=Eo(t);return Io(n,e).then(function(t){return i.parse(t,r)})},t.csv=jo,t.tsv=Xo,t.image=function(t,n){return new Promise(function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t})},t.json=function(t,n){return fetch(t,n).then(Go)},t.text=Io,t.xml=$o,t.html=Wo,t.svg=Zo,t.forceCenter=function(t,n){var e;function r(){var r,i,o=e.length,a=0,u=0;for(r=0;r<o;++r)a+=(i=e[r]).x,u+=i.y;for(a=a/o-t,u=u/o-n,r=0;r<o;++r)(i=e[r]).x-=a,i.y-=u}return null==t&&(t=0),null==n&&(n=0),r.initialize=function(t){e=t},r.x=function(n){return arguments.length?(t=+n,r):t},r.y=function(t){return arguments.length?(n=+t,r):n},r},t.forceCollide=function(t){var n,e,r=1,i=1;function o(){for(var t,o,u,f,c,s,l,h=n.length,d=0;d<i;++d)for(o=ra(n,ua,fa).visitAfter(a),t=0;t<h;++t)u=n[t],s=e[u.index],l=s*s,f=u.x+u.vx,c=u.y+u.vy,o.visit(p);function p(t,n,e,i,o){var a=t.data,h=t.r,d=s+h;if(!a)return n>f+d||i<f-d||e>c+d||o<c-d;if(a.index>u.index){var p=f-a.x-a.vx,v=c-a.y-a.vy,g=p*p+v*v;g<d*d&&(0===p&&(g+=(p=Jo())*p),0===v&&(g+=(v=Jo())*v),g=(d-(g=Math.sqrt(g)))/g*r,u.vx+=(p*=g)*(d=(h*=h)/(l+h)),u.vy+=(v*=g)*d,a.vx-=p*(d=1-d),a.vy-=v*d)}}}function a(t){if(t.data)return t.r=e[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function u(){if(n){var r,i,o=n.length;for(e=new Array(o),r=0;r<o;++r)i=n[r],e[i.index]=+t(i,r,n)}}return"function"!=typeof t&&(t=Qo(null==t?1:+t)),o.initialize=function(t){n=t,u()},o.iterations=function(t){return arguments.length?(i=+t,o):i},o.strength=function(t){return arguments.length?(r=+t,o):r},o.radius=function(n){return arguments.length?(t="function"==typeof n?n:Qo(+n),u(),o):t},o},t.forceLink=function(t){var n,e,r,i,o,a=ca,u=function(t){return 1/Math.min(i[t.source.index],i[t.target.index])},f=Qo(30),c=1;function s(r){for(var i=0,a=t.length;i<c;++i)for(var u,f,s,l,h,d,p,v=0;v<a;++v)f=(u=t[v]).source,l=(s=u.target).x+s.vx-f.x-f.vx||Jo(),h=s.y+s.vy-f.y-f.vy||Jo(),l*=d=((d=Math.sqrt(l*l+h*h))-e[v])/d*r*n[v],h*=d,s.vx-=l*(p=o[v]),s.vy-=h*p,f.vx+=l*(p=1-p),f.vy+=h*p}function l(){if(r){var u,f,c=r.length,s=t.length,l=Ki(r,a);for(u=0,i=new Array(c);u<s;++u)(f=t[u]).index=u,"object"!=typeof f.source&&(f.source=sa(l,f.source)),"object"!=typeof f.target&&(f.target=sa(l,f.target)),i[f.source.index]=(i[f.source.index]||0)+1,i[f.target.index]=(i[f.target.index]||0)+1;for(u=0,o=new Array(s);u<s;++u)f=t[u],o[u]=i[f.source.index]/(i[f.source.index]+i[f.target.index]);n=new Array(s),h(),e=new Array(s),d()}}function h(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+u(t[e],e,t)}function d(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+f(t[n],n,t)}return null==t&&(t=[]),s.initialize=function(t){r=t,l()},s.links=function(n){return arguments.length?(t=n,l(),s):t},s.id=function(t){return arguments.length?(a=t,s):a},s.iterations=function(t){return arguments.length?(c=+t,s):c},s.strength=function(t){return arguments.length?(u="function"==typeof t?t:Qo(+t),h(),s):u},s.distance=function(t){return arguments.length?(f="function"==typeof t?t:Qo(+t),d(),s):f},s},t.forceManyBody=function(){var t,n,e,r,i=Qo(-30),o=1,a=1/0,u=.81;function f(r){var i,o=t.length,a=ra(t,la,ha).visitAfter(s);for(e=r,i=0;i<o;++i)n=t[i],a.visit(l)}function c(){if(t){var n,e,o=t.length;for(r=new Array(o),n=0;n<o;++n)e=t[n],r[e.index]=+i(e,n,t)}}function s(t){var n,e,i,o,a,u=0,f=0;if(t.length){for(i=o=a=0;a<4;++a)(n=t[a])&&(e=Math.abs(n.value))&&(u+=n.value,f+=e,i+=e*n.x,o+=e*n.y);t.x=i/f,t.y=o/f}else{(n=t).x=n.data.x,n.y=n.data.y;do{u+=r[n.data.index]}while(n=n.next)}t.value=u}function l(t,i,f,c){if(!t.value)return!0;var s=t.x-n.x,l=t.y-n.y,h=c-i,d=s*s+l*l;if(h*h/u<d)return d<a&&(0===s&&(d+=(s=Jo())*s),0===l&&(d+=(l=Jo())*l),d<o&&(d=Math.sqrt(o*d)),n.vx+=s*t.value*e/d,n.vy+=l*t.value*e/d),!0;if(!(t.length||d>=a)){(t.data!==n||t.next)&&(0===s&&(d+=(s=Jo())*s),0===l&&(d+=(l=Jo())*l),d<o&&(d=Math.sqrt(o*d)));do{t.data!==n&&(h=r[t.data.index]*e/d,n.vx+=s*h,n.vy+=l*h)}while(t=t.next)}}return f.initialize=function(n){t=n,c()},f.strength=function(t){return arguments.length?(i="function"==typeof t?t:Qo(+t),c(),f):i},f.distanceMin=function(t){return arguments.length?(o=t*t,f):Math.sqrt(o)},f.distanceMax=function(t){return arguments.length?(a=t*t,f):Math.sqrt(a)},f.theta=function(t){return arguments.length?(u=t*t,f):Math.sqrt(u)},f},t.forceRadial=function(t,n,e){var r,i,o,a=Qo(.1);function u(t){for(var a=0,u=r.length;a<u;++a){var f=r[a],c=f.x-n||1e-6,s=f.y-e||1e-6,l=Math.sqrt(c*c+s*s),h=(o[a]-l)*i[a]*t/l;f.vx+=c*h,f.vy+=s*h}}function f(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)o[n]=+t(r[n],n,r),i[n]=isNaN(o[n])?0:+a(r[n],n,r)}}return"function"!=typeof t&&(t=Qo(+t)),null==n&&(n=0),null==e&&(e=0),u.initialize=function(t){r=t,f()},u.strength=function(t){return arguments.length?(a="function"==typeof t?t:Qo(+t),f(),u):a},u.radius=function(n){return arguments.length?(t="function"==typeof n?n:Qo(+n),f(),u):t},u.x=function(t){return arguments.length?(n=+t,u):n},u.y=function(t){return arguments.length?(e=+t,u):e},u},t.forceSimulation=function(t){var n,e=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,u=Ki(),f=ur(s),c=I("tick","end");function s(){l(),c.call("tick",n),e<r&&(f.stop(),c.call("end",n))}function l(){var n,r,f=t.length;for(e+=(o-e)*i,u.each(function(t){t(e)}),n=0;n<f;++n)null==(r=t[n]).fx?r.x+=r.vx*=a:(r.x=r.fx,r.vx=0),null==r.fy?r.y+=r.vy*=a:(r.y=r.fy,r.vy=0)}function h(){for(var n,e=0,r=t.length;e<r;++e){if((n=t[e]).index=e,isNaN(n.x)||isNaN(n.y)){var i=da*Math.sqrt(e),o=e*pa;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function d(n){return n.initialize&&n.initialize(t),n}return null==t&&(t=[]),h(),n={tick:l,restart:function(){return f.restart(s),n},stop:function(){return f.stop(),n},nodes:function(e){return arguments.length?(t=e,h(),u.each(d),n):t},alpha:function(t){return arguments.length?(e=+t,n):e},alphaMin:function(t){return arguments.length?(r=+t,n):r},alphaDecay:function(t){return arguments.length?(i=+t,n):+i},alphaTarget:function(t){return arguments.length?(o=+t,n):o},velocityDecay:function(t){return arguments.length?(a=1-t,n):1-a},force:function(t,e){return arguments.length>1?(null==e?u.remove(t):u.set(t,d(e)),n):u.get(t)},find:function(n,e,r){var i,o,a,u,f,c=0,s=t.length;for(null==r?r=1/0:r*=r,c=0;c<s;++c)(a=(i=n-(u=t[c]).x)*i+(o=e-u.y)*o)<r&&(f=u,r=a);return f},on:function(t,e){return arguments.length>1?(c.on(t,e),n):c.on(t)}}},t.forceX=function(t){var n,e,r,i=Qo(.1);function o(t){for(var i,o=0,a=n.length;o<a;++o)(i=n[o]).vx+=(r[o]-i.x)*e[o]*t}function a(){if(n){var o,a=n.length;for(e=new Array(a),r=new Array(a),o=0;o<a;++o)e[o]=isNaN(r[o]=+t(n[o],o,n))?0:+i(n[o],o,n)}}return"function"!=typeof t&&(t=Qo(null==t?0:+t)),o.initialize=function(t){n=t,a()},o.strength=function(t){return arguments.length?(i="function"==typeof t?t:Qo(+t),a(),o):i},o.x=function(n){return arguments.length?(t="function"==typeof n?n:Qo(+n),a(),o):t},o},t.forceY=function(t){var n,e,r,i=Qo(.1);function o(t){for(var i,o=0,a=n.length;o<a;++o)(i=n[o]).vy+=(r[o]-i.y)*e[o]*t}function a(){if(n){var o,a=n.length;for(e=new Array(a),r=new Array(a),o=0;o<a;++o)e[o]=isNaN(r[o]=+t(n[o],o,n))?0:+i(n[o],o,n)}}return"function"!=typeof t&&(t=Qo(null==t?0:+t)),o.initialize=function(t){n=t,a()},o.strength=function(t){return arguments.length?(i="function"==typeof t?t:Qo(+t),a(),o):i},o.y=function(n){return arguments.length?(t="function"==typeof n?n:Qo(+n),a(),o):t},o},t.formatDefaultLocale=Sa,t.formatLocale=Na,t.formatSpecifier=ba,t.precisionFixed=Ea,t.precisionPrefix=ka,t.precisionRound=Ca,t.geoArea=function(t){return yu.reset(),su(t,_u),2*yu},t.geoBounds=function(t){var n,e,r,i,o,a,u;if(Ru=zu=-(Cu=Pu=1/0),Ou=[],su(t,rf),e=Ou.length){for(Ou.sort(df),n=1,o=[r=Ou[0]];n<e;++n)pf(r,(i=Ou[n])[0])||pf(r,i[1])?(hf(r[0],i[1])>hf(r[0],r[1])&&(r[1]=i[1]),hf(i[0],r[1])>hf(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=hf(r[1],i[0]))>a&&(a=u,Cu=i[0],zu=r[1])}return Ou=Yu=null,Cu===1/0||Pu===1/0?[[NaN,NaN],[NaN,NaN]]:[[Cu,Pu],[zu,Ru]]},t.geoCentroid=function(t){Bu=Fu=Iu=Hu=ju=Xu=Gu=Vu=$u=Wu=Zu=0,su(t,vf);var n=$u,e=Wu,r=Zu,i=n*n+e*e+r*r;return i<Ua&&(n=Xu,e=Gu,r=Vu,Fu<Da&&(n=Iu,e=Hu,r=ju),(i=n*n+e*e+r*r)<Ua)?[NaN,NaN]:[Xa(e,n)*Fa,eu(r/Ka(i))*Fa]},t.geoCircle=function(){var t,n,e=Nf([0,0]),r=Nf(90),i=Nf(6),o={point:function(e,r){t.push(e=n(e,r)),e[0]*=Fa,e[1]*=Fa}};function a(){var a=e.apply(this,arguments),u=r.apply(this,arguments)*Ia,f=i.apply(this,arguments)*Ia;return t=[],n=kf(-a[0]*Ia,-a[1]*Ia,0).invert,Lf(o,u,f,1),a={type:"Polygon",coordinates:[t]},t=n=null,a}return a.center=function(t){return arguments.length?(e="function"==typeof t?t:Nf([+t[0],+t[1]]),a):e},a.radius=function(t){return arguments.length?(r="function"==typeof t?t:Nf(+t),a):r},a.precision=function(t){return arguments.length?(i="function"==typeof t?t:Nf(+t),a):i},a},t.geoClipAntimeridian=Gf,t.geoClipCircle=Vf,t.geoClipExtent=function(){var t,n,e,r=0,i=0,o=960,a=500;return e={stream:function(e){return t&&n===e?t:t=Zf(r,i,o,a)(n=e)},extent:function(u){return arguments.length?(r=+u[0][0],i=+u[0][1],o=+u[1][0],a=+u[1][1],t=n=null,e):[[r,i],[o,a]]}}},t.geoClipRectangle=Zf,t.geoContains=function(t,n){return(t&&cc.hasOwnProperty(t.type)?cc[t.type]:lc)(t,n)},t.geoDistance=fc,t.geoGraticule=bc,t.geoGraticule10=function(){return bc()()},t.geoInterpolate=function(t,n){var e=t[0]*Ia,r=t[1]*Ia,i=n[0]*Ia,o=n[1]*Ia,a=Ga(r),u=Qa(r),f=Ga(o),c=Qa(o),s=a*Ga(e),l=a*Qa(e),h=f*Ga(i),d=f*Qa(i),p=2*eu(Ka(ru(o-r)+a*f*ru(i-e))),v=Qa(p),g=p?function(t){var n=Qa(t*=p)/v,e=Qa(p-t)/v,r=e*s+n*h,i=e*l+n*d,o=e*u+n*c;return[Xa(i,r)*Fa,Xa(o,Ka(r*r+i*i))*Fa]}:function(){return[e*Fa,r*Fa]};return g.distance=p,g},t.geoLength=oc,t.geoPath=function(t,n){var e,r,i=4.5;function o(t){return t&&("function"==typeof i&&r.pointRadius(+i.apply(this,arguments)),su(t,e(r))),r.result()}return o.area=function(t){return su(t,e(Sc)),Sc.result()},o.measure=function(t){return su(t,e(ds)),ds.result()},o.bounds=function(t){return su(t,e(Uc)),Uc.result()},o.centroid=function(t){return su(t,e(Zc)),Zc.result()},o.projection=function(n){return arguments.length?(e=null==n?(t=null,mc):(t=n).stream,o):t},o.context=function(t){return arguments.length?(r=null==t?(n=null,new gs):new as(n=t),"function"!=typeof i&&r.pointRadius(i),o):n},o.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(r.pointRadius(+t),+t),o):i},o.projection(t).context(n)},t.geoAlbers=Ds,t.geoAlbersUsa=function(){var t,n,e,r,i,o,a=Ds(),u=Ls().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=Ls().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(t,n){o=[t,n]}};function s(t){var n=t[0],a=t[1];return o=null,e.point(n,a),o||(r.point(n,a),o)||(i.point(n,a),o)}function l(){return t=n=null,s}return s.invert=function(t){var n=a.scale(),e=a.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?u:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:a).invert(t)},s.stream=function(e){return t&&n===e?t:(r=[a.stream(n=e),u.stream(e),f.stream(e)],i=r.length,t={point:function(t,n){for(var e=-1;++e<i;)r[e].point(t,n)},sphere:function(){for(var t=-1;++t<i;)r[t].sphere()},lineStart:function(){for(var t=-1;++t<i;)r[t].lineStart()},lineEnd:function(){for(var t=-1;++t<i;)r[t].lineEnd()},polygonStart:function(){for(var t=-1;++t<i;)r[t].polygonStart()},polygonEnd:function(){for(var t=-1;++t<i;)r[t].polygonEnd()}});var r,i},s.precision=function(t){return arguments.length?(a.precision(t),u.precision(t),f.precision(t),l()):a.precision()},s.scale=function(t){return arguments.length?(a.scale(t),u.scale(.35*t),f.scale(t),s.translate(a.translate())):a.scale()},s.translate=function(t){if(!arguments.length)return a.translate();var n=a.scale(),o=+t[0],s=+t[1];return e=a.translate(t).clipExtent([[o-.455*n,s-.238*n],[o+.455*n,s+.238*n]]).stream(c),r=u.translate([o-.307*n,s+.201*n]).clipExtent([[o-.425*n+Da,s+.12*n+Da],[o-.214*n-Da,s+.234*n-Da]]).stream(c),i=f.translate([o-.205*n,s+.212*n]).clipExtent([[o-.214*n+Da,s+.166*n+Da],[o-.115*n-Da,s+.234*n-Da]]).stream(c),l()},s.fitExtent=function(t,n){return xs(s,t,n)},s.fitSize=function(t,n){return ws(s,t,n)},s.fitWidth=function(t,n){return Ms(s,t,n)},s.fitHeight=function(t,n){return As(s,t,n)},s.scale(1070)},t.geoAzimuthalEqualArea=function(){return Cs(Os).scale(124.75).clipAngle(179.999)},t.geoAzimuthalEqualAreaRaw=Os,t.geoAzimuthalEquidistant=function(){return Cs(Ys).scale(79.4188).clipAngle(179.999)},t.geoAzimuthalEquidistantRaw=Ys,t.geoConicConformal=function(){return zs(Hs).scale(109.5).parallels([30,30])},t.geoConicConformalRaw=Hs,t.geoConicEqualArea=Ls,t.geoConicEqualAreaRaw=Rs,t.geoConicEquidistant=function(){return zs(Xs).scale(131.154).center([0,13.9389])},t.geoConicEquidistantRaw=Xs,t.geoEqualEarth=function(){return Cs(Qs).scale(177.158)},t.geoEqualEarthRaw=Qs,t.geoEquirectangular=function(){return Cs(js).scale(152.63)},t.geoEquirectangularRaw=js,t.geoGnomonic=function(){return Cs(Js).scale(144.049).clipAngle(60)},t.geoGnomonicRaw=Js,t.geoIdentity=function(){var t,n,e,r,i,o,a=1,u=0,f=0,c=1,s=1,l=mc,h=null,d=mc;function p(){return r=i=null,o}return o={stream:function(t){return r&&i===t?r:r=l(d(i=t))},postclip:function(r){return arguments.length?(d=r,h=t=n=e=null,p()):d},clipExtent:function(r){return arguments.length?(d=null==r?(h=t=n=e=null,mc):Zf(h=+r[0][0],t=+r[0][1],n=+r[1][0],e=+r[1][1]),p()):null==h?null:[[h,t],[n,e]]},scale:function(t){return arguments.length?(l=Ks((a=+t)*c,a*s,u,f),p()):a},translate:function(t){return arguments.length?(l=Ks(a*c,a*s,u=+t[0],f=+t[1]),p()):[u,f]},reflectX:function(t){return arguments.length?(l=Ks(a*(c=t?-1:1),a*s,u,f),p()):c<0},reflectY:function(t){return arguments.length?(l=Ks(a*c,a*(s=t?-1:1),u,f),p()):s<0},fitExtent:function(t,n){return xs(o,t,n)},fitSize:function(t,n){return ws(o,t,n)},fitWidth:function(t,n){return Ms(o,t,n)},fitHeight:function(t,n){return As(o,t,n)}}},t.geoProjection=Cs,t.geoProjectionMutator=Ps,t.geoMercator=function(){return Fs(Bs).scale(961/Ba)},t.geoMercatorRaw=Bs,t.geoNaturalEarth1=function(){return Cs(tl).scale(175.295)},t.geoNaturalEarth1Raw=tl,t.geoOrthographic=function(){return Cs(nl).scale(249.5).clipAngle(90+Da)},t.geoOrthographicRaw=nl,t.geoStereographic=function(){return Cs(el).scale(250).clipAngle(142)},t.geoStereographicRaw=el,t.geoTransverseMercator=function(){var t=Fs(rl),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):[(t=n())[1],-t[0]]},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):[(t=e())[0],t[1],t[2]-90]},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=rl,t.geoRotation=Rf,t.geoStream=su,t.geoTransform=function(t){return{stream:_s(t)}},t.cluster=function(){var t=il,n=1,e=1,r=!1;function i(i){var o,a=0;i.eachAfter(function(n){var e=n.children;e?(n.x=function(t){return t.reduce(ol,0)/t.length}(e),n.y=function(t){return 1+t.reduce(al,0)}(e)):(n.x=o?a+=t(n,o):0,n.y=0,o=n)});var u=function(t){for(var n;n=t.children;)t=n[0];return t}(i),f=function(t){for(var n;n=t.children;)t=n[n.length-1];return t}(i),c=u.x-t(u,f)/2,s=f.x+t(f,u)/2;return i.eachAfter(r?function(t){t.x=(t.x-i.x)*n,t.y=(i.y-t.y)*e}:function(t){t.x=(t.x-c)/(s-c)*n,t.y=(1-(i.y?t.y/i.y:1))*e})}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.hierarchy=fl,t.pack=function(){var t=null,n=1,e=1,r=El;function i(i){return i.x=n/2,i.y=e/2,t?i.eachBefore(Pl(t)).eachAfter(zl(r,.5)).eachBefore(Rl(1)):i.eachBefore(Pl(Cl)).eachAfter(zl(El,1)).eachAfter(zl(r,i.r/Math.min(n,e))).eachBefore(Rl(Math.min(n,e)/(2*i.r))),i}return i.radius=function(n){return arguments.length?(t=null==(e=n)?null:Sl(e),i):t;var e},i.size=function(t){return arguments.length?(n=+t[0],e=+t[1],i):[n,e]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:kl(+t),i):r},i},t.packSiblings=function(t){return Nl(t),t},t.packEnclose=pl,t.partition=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&Dl(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a<i&&(i=a=(i+a)/2),u<o&&(o=u=(o+u)/2),r.x0=i,r.y0=o,r.x1=a,r.y1=u}}(n,o)),r&&i.eachBefore(Ll),i}return i.round=function(t){return arguments.length?(r=!!t,i):r},i.size=function(e){return arguments.length?(t=+e[0],n=+e[1],i):[t,n]},i.padding=function(t){return arguments.length?(e=+t,i):e},i},t.stratify=function(){var t=Yl,n=Bl;function e(e){var r,i,o,a,u,f,c,s=e.length,l=new Array(s),h={};for(i=0;i<s;++i)r=e[i],u=l[i]=new hl(r),null!=(f=t(r,i,e))&&(f+="")&&(h[c=Ul+(u.id=f)]=c in h?Ol:u);for(i=0;i<s;++i)if(u=l[i],null!=(f=n(e[i],i,e))&&(f+="")){if(!(a=h[Ul+f]))throw new Error("missing: "+f);if(a===Ol)throw new Error("ambiguous: "+f);a.children?a.children.push(u):a.children=[u],u.parent=a}else{if(o)throw new Error("multiple roots");o=u}if(!o)throw new Error("no root");if(o.parent=ql,o.eachBefore(function(t){t.depth=t.parent.depth+1,--s}).eachBefore(ll),o.parent=null,s>0)throw new Error("cycle");return o}return e.id=function(n){return arguments.length?(t=Sl(n),e):t},e.parentId=function(t){return arguments.length?(n=Sl(t),e):n},e},t.tree=function(){var t=Fl,n=1,e=1,r=null;function i(i){var f=function(t){for(var n,e,r,i,o,a=new Gl(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new Gl(r[i],i)),e.parent=n;return(a.parent=new Gl(null,0)).children=[a],a}(i);if(f.eachAfter(o),f.parent.m=-f.z,f.eachBefore(a),r)i.eachBefore(u);else{var c=i,s=i,l=i;i.eachBefore(function(t){t.x<c.x&&(c=t),t.x>s.x&&(s=t),t.depth>l.depth&&(l=t)});var h=c===s?1:t(c,s)/2,d=h-c.x,p=n/(s.x+h+d),v=e/(l.depth||1);i.eachBefore(function(t){t.x=(t.x+d)*p,t.y=t.depth*v})}return i}function o(n){var e=n.children,r=n.parent.children,i=n.i?r[n.i-1]:null;if(e){!function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}(n);var o=(e[0].z+e[e.length-1].z)/2;i?(n.z=i.z+t(n._,i._),n.m=n.z-o):n.z=o}else i&&(n.z=i.z+t(n._,i._));n.parent.A=function(n,e,r){if(e){for(var i,o=n,a=n,u=e,f=o.parent.children[0],c=o.m,s=a.m,l=u.m,h=f.m;u=Hl(u),o=Il(o),u&&o;)f=Il(f),(a=Hl(a)).a=n,(i=u.z+l-o.z-c+t(u._,o._))>0&&(jl(Xl(u,n,r),n,i),c+=i,s+=i),l+=u.m,c+=o.m,h+=f.m,s+=a.m;u&&!Hl(a)&&(a.t=u,a.m+=l-s),o&&!Il(f)&&(f.t=o,f.m+=c-h,r=n)}return r}(n,i,n.parent.A||r[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function u(t){t.x*=n,t.y=t.depth*e}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.treemap=function(){var t=Zl,n=!1,e=1,r=1,i=[0],o=El,a=El,u=El,f=El,c=El;function s(t){return t.x0=t.y0=0,t.x1=e,t.y1=r,t.eachBefore(l),i=[0],n&&t.eachBefore(Ll),t}function l(n){var e=i[n.depth],r=n.x0+e,s=n.y0+e,l=n.x1-e,h=n.y1-e;l<r&&(r=l=(r+l)/2),h<s&&(s=h=(s+h)/2),n.x0=r,n.y0=s,n.x1=l,n.y1=h,n.children&&(e=i[n.depth+1]=o(n)/2,r+=c(n)-e,s+=a(n)-e,(l-=u(n)-e)<r&&(r=l=(r+l)/2),(h-=f(n)-e)<s&&(s=h=(s+h)/2),t(n,r,s,l,h))}return s.round=function(t){return arguments.length?(n=!!t,s):n},s.size=function(t){return arguments.length?(e=+t[0],r=+t[1],s):[e,r]},s.tile=function(n){return arguments.length?(t=Sl(n),s):t},s.padding=function(t){return arguments.length?s.paddingInner(t).paddingOuter(t):s.paddingInner()},s.paddingInner=function(t){return arguments.length?(o="function"==typeof t?t:kl(+t),s):o},s.paddingOuter=function(t){return arguments.length?s.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):s.paddingTop()},s.paddingTop=function(t){return arguments.length?(a="function"==typeof t?t:kl(+t),s):a},s.paddingRight=function(t){return arguments.length?(u="function"==typeof t?t:kl(+t),s):u},s.paddingBottom=function(t){return arguments.length?(f="function"==typeof t?t:kl(+t),s):f},s.paddingLeft=function(t){return arguments.length?(c="function"==typeof t?t:kl(+t),s):c},s},t.treemapBinary=function(t,n,e,r,i){var o,a,u=t.children,f=u.length,c=new Array(f+1);for(c[0]=a=o=0;o<f;++o)c[o+1]=a+=u[o].value;!function t(n,e,r,i,o,a,f){if(n>=e-1){var s=u[n];return s.x0=i,s.y0=o,s.x1=a,void(s.y1=f)}for(var l=c[n],h=r/2+l,d=n+1,p=e-1;d<p;){var v=d+p>>>1;c[v]<h?d=v+1:p=v}h-c[d-1]<c[d]-h&&n+1<d&&--d;var g=c[d]-l,y=r-g;if(a-i>f-o){var _=(i*y+a*g)/r;t(n,d,g,i,o,_,f),t(d,e,y,_,o,a,f)}else{var b=(o*y+f*g)/r;t(n,d,g,i,o,a,b),t(d,e,y,i,b,a,f)}}(0,f,t.value,n,e,r,i)},t.treemapDice=Dl,t.treemapSlice=Vl,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?Vl:Dl)(t,n,e,r,i)},t.treemapSquarify=Zl,t.treemapResquarify=Ql,t.interpolate=me,t.interpolateArray=de,t.interpolateBasis=ee,t.interpolateBasisClosed=re,t.interpolateDate=pe,t.interpolateDiscrete=function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},t.interpolateHue=function(t,n){var e=ae(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}},t.interpolateNumber=ve,t.interpolateObject=ge,t.interpolateRound=xe,t.interpolateString=be,t.interpolateTransformCss=Ce,t.interpolateTransformSvg=Pe,t.interpolateZoom=qe,t.interpolateRgb=ce,t.interpolateRgbBasis=le,t.interpolateRgbBasisClosed=he,t.interpolateHsl=Ye,t.interpolateHslLong=Be,t.interpolateLab=function(t,n){var e=fe((t=Un(t)).l,(n=Un(n)).l),r=fe(t.a,n.a),i=fe(t.b,n.b),o=fe(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateHcl=Ie,t.interpolateHclLong=He,t.interpolateCubehelix=Xe,t.interpolateCubehelixLong=Ge,t.piecewise=function(t,n){for(var e=0,r=n.length-1,i=n[0],o=new Array(r<0?0:r);e<r;)o[e]=t(i,i=n[++e]);return function(t){var n=Math.max(0,Math.min(r-1,Math.floor(t*=r)));return o[n](t-n)}},t.quantize=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},t.path=Gi,t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},t.polygonCentroid=function(t){for(var n,e,r=-1,i=t.length,o=0,a=0,u=t[i-1],f=0;++r<i;)n=u,u=t[r],f+=e=n[0]*u[1]-u[0]*n[1],o+=(n[0]+u[0])*e,a+=(n[1]+u[1])*e;return[o/(f*=3),a/f]},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(Jl),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=Kl(r),a=Kl(i),u=a[0]===o[0],f=a[a.length-1]===o[o.length-1],c=[];for(n=o.length-1;n>=0;--n)c.push(t[r[o[n]][2]]);for(n=+u;n<a.length-f;++n)c.push(t[r[a[n]][2]]);return c},t.polygonContains=function(t,n){for(var e,r,i=t.length,o=t[i-1],a=n[0],u=n[1],f=o[0],c=o[1],s=!1,l=0;l<i;++l)e=(o=t[l])[0],(r=o[1])>u!=c>u&&a<(f-e)*(u-r)/(c-r)+e&&(s=!s),f=e,c=r;return s},t.polygonLength=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],a=o[0],u=o[1],f=0;++r<i;)n=a,e=u,n-=a=(o=t[r])[0],e-=u=o[1],f+=Math.sqrt(n*n+e*e);return f},t.quadtree=ra,t.randomUniform=nh,t.randomNormal=eh,t.randomLogNormal=rh,t.randomBates=oh,t.randomIrwinHall=ih,t.randomExponential=ah,t.scaleBand=hh,t.scalePoint=function(){return function t(n){var e=n.copy;return n.padding=n.paddingOuter,delete n.paddingInner,delete n.paddingOuter,n.copy=function(){return t(e())},n}(hh().paddingInner(1))},t.scaleIdentity=function t(){var n=[0,1];function e(t){return+t}return e.invert=e,e.domain=e.range=function(t){return arguments.length?(n=fh.call(t,ph),e):n.slice()},e.copy=function(){return t().domain(n)},xh(e)},t.scaleLinear=function t(){var n=mh(gh,ve);return n.copy=function(){return bh(n,t())},xh(n)},t.scaleLog=function n(){var e=mh(Mh,Ah).domain([1,10]),r=e.domain,i=10,o=Sh(10),a=Nh(10);function u(){return o=Sh(i),a=Nh(i),r()[0]<0&&(o=Eh(o),a=Eh(a)),e}return e.base=function(t){return arguments.length?(i=+t,u()):i},e.domain=function(t){return arguments.length?(r(t),u()):r()},e.ticks=function(t){var n,e=r(),u=e[0],f=e[e.length-1];(n=f<u)&&(h=u,u=f,f=h);var c,s,l,h=o(u),d=o(f),p=null==t?10:+t,v=[];if(!(i%1)&&d-h<p){if(h=Math.round(h)-1,d=Math.round(d)+1,u>0){for(;h<d;++h)for(s=1,c=a(h);s<i;++s)if(!((l=c*s)<u)){if(l>f)break;v.push(l)}}else for(;h<d;++h)for(s=i-1,c=a(h);s>=1;--s)if(!((l=c*s)<u)){if(l>f)break;v.push(l)}}else v=m(h,d,Math.min(d-h,p)).map(a);return n?v.reverse():v},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var u=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/a(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=u?r(t):""}},e.nice=function(){return r(wh(r(),{floor:function(t){return a(Math.floor(o(t)))},ceil:function(t){return a(Math.ceil(o(t)))}}))},e.copy=function(){return bh(e,n().base(i))},e},t.scaleOrdinal=lh,t.scaleImplicit=sh,t.scalePow=Ch,t.scaleSqrt=function(){return Ch().exponent(.5)},t.scaleQuantile=function t(){var e=[],r=[],o=[];function a(){var t=0,n=Math.max(1,r.length);for(o=new Array(n-1);++t<n;)o[t-1]=A(e,t/n);return u}function u(t){if(!isNaN(t=+t))return r[i(o,t)]}return u.invertExtent=function(t){var n=r.indexOf(t);return n<0?[NaN,NaN]:[n>0?o[n-1]:e[0],n<o.length?o[n]:e[e.length-1]]},u.domain=function(t){if(!arguments.length)return e.slice();e=[];for(var r,i=0,o=t.length;i<o;++i)null==(r=t[i])||isNaN(r=+r)||e.push(r);return e.sort(n),a()},u.range=function(t){return arguments.length?(r=ch.call(t),a()):r.slice()},u.quantiles=function(){return o.slice()},u.copy=function(){return t().domain(e).range(r)},u},t.scaleQuantize=function t(){var n=0,e=1,r=1,o=[.5],a=[0,1];function u(t){if(t<=t)return a[i(o,t,0,r)]}function f(){var t=-1;for(o=new Array(r);++t<r;)o[t]=((t+1)*e-(t-r)*n)/(r+1);return u}return u.domain=function(t){return arguments.length?(n=+t[0],e=+t[1],f()):[n,e]},u.range=function(t){return arguments.length?(r=(a=ch.call(t)).length-1,f()):a.slice()},u.invertExtent=function(t){var i=a.indexOf(t);return i<0?[NaN,NaN]:i<1?[n,o[0]]:i>=r?[o[r-1],e]:[o[i-1],o[i]]},u.copy=function(){return t().domain([n,e]).range(a)},xh(u)},t.scaleThreshold=function t(){var n=[.5],e=[0,1],r=1;function o(t){if(t<=t)return e[i(n,t,0,r)]}return o.domain=function(t){return arguments.length?(n=ch.call(t),r=Math.min(n.length,e.length-1),o):n.slice()},o.range=function(t){return arguments.length?(e=ch.call(t),r=Math.min(n.length,e.length-1),o):e.slice()},o.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},o.copy=function(){return t().domain(n).range(e)},o},t.scaleTime=function(){return cv(cd,ud,Vh,jh,Ih,Bh,Oh,Lh,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},t.scaleUtc=function(){return cv(Ld,zd,_d,vd,dd,ld,Oh,Lh,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},t.scaleSequential=function t(n){var e=0,r=1,i=1,o=!1;function a(t){var r=(t-e)*i;return n(o?Math.max(0,Math.min(1,r)):r)}return a.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],i=e===r?0:1/(r-e),a):[e,r]},a.clamp=function(t){return arguments.length?(o=!!t,a):o},a.interpolator=function(t){return arguments.length?(n=t,a):n},a.copy=function(){return t(n).domain([e,r]).clamp(o)},xh(a)},t.scaleDiverging=function t(n){var e=0,r=.5,i=1,o=1,a=1,u=!1;function f(t){var e=.5+((t=+t)-r)*(t<r?o:a);return n(u?Math.max(0,Math.min(1,e)):e)}return f.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],i=+t[2],o=e===r?0:.5/(r-e),a=r===i?0:.5/(i-r),f):[e,r,i]},f.clamp=function(t){return arguments.length?(u=!!t,f):u},f.interpolator=function(t){return arguments.length?(n=t,f):n},f.copy=function(){return t(n).domain([e,r,i]).clamp(u)},xh(f)},t.schemeCategory10=lv,t.schemeAccent=hv,t.schemeDark2=dv,t.schemePaired=pv,t.schemePastel1=vv,t.schemePastel2=gv,t.schemeSet1=yv,t.schemeSet2=_v,t.schemeSet3=bv,t.interpolateBrBG=wv,t.schemeBrBG=xv,t.interpolatePRGn=Av,t.schemePRGn=Mv,t.interpolatePiYG=Nv,t.schemePiYG=Tv,t.interpolatePuOr=Ev,t.schemePuOr=Sv,t.interpolateRdBu=Cv,t.schemeRdBu=kv,t.interpolateRdGy=zv,t.schemeRdGy=Pv,t.interpolateRdYlBu=Lv,t.schemeRdYlBu=Rv,t.interpolateRdYlGn=Uv,t.schemeRdYlGn=Dv,t.interpolateSpectral=Ov,t.schemeSpectral=qv,t.interpolateBuGn=Bv,t.schemeBuGn=Yv,t.interpolateBuPu=Iv,t.schemeBuPu=Fv,t.interpolateGnBu=jv,t.schemeGnBu=Hv,t.interpolateOrRd=Gv,t.schemeOrRd=Xv,t.interpolatePuBuGn=$v,t.schemePuBuGn=Vv,t.interpolatePuBu=Zv,t.schemePuBu=Wv,t.interpolatePuRd=Jv,t.schemePuRd=Qv,t.interpolateRdPu=tg,t.schemeRdPu=Kv,t.interpolateYlGnBu=eg,t.schemeYlGnBu=ng,t.interpolateYlGn=ig,t.schemeYlGn=rg,t.interpolateYlOrBr=ag,t.schemeYlOrBr=og,t.interpolateYlOrRd=fg,t.schemeYlOrRd=ug,t.interpolateBlues=sg,t.schemeBlues=cg,t.interpolateGreens=hg,t.schemeGreens=lg,t.interpolateGreys=pg,t.schemeGreys=dg,t.interpolatePurples=gg,t.schemePurples=vg,t.interpolateReds=_g,t.schemeReds=yg,t.interpolateOranges=mg,t.schemeOranges=bg,t.interpolateCubehelixDefault=xg,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return Ag.h=360*t-100,Ag.s=1.5-1.5*n,Ag.l=.8-.9*n,Ag+""},t.interpolateWarm=wg,t.interpolateCool=Mg,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,Tg.r=255*(n=Math.sin(t))*n,Tg.g=255*(n=Math.sin(t+Ng))*n,Tg.b=255*(n=Math.sin(t+Sg))*n,Tg+""},t.interpolateViridis=kg,t.interpolateMagma=Cg,t.interpolateInferno=Pg,t.interpolatePlasma=zg,t.create=function(t){return Dt(W(t).call(document.documentElement))},t.creator=W,t.local=qt,t.matcher=rt,t.mouse=Ft,t.namespace=$,t.namespaces=V,t.clientPoint=Bt,t.select=Dt,t.selectAll=function(t){return"string"==typeof t?new Rt([document.querySelectorAll(t)],[document.documentElement]):new Rt([null==t?[]:t],zt)},t.selection=Lt,t.selector=Q,t.selectorAll=K,t.style=lt,t.touch=It,t.touches=function(t,n){null==n&&(n=Yt().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=Bt(t,n[e]);return i},t.window=st,t.customEvent=Ct,t.arc=function(){var t=Gg,n=Vg,e=Rg(0),r=null,i=$g,o=Wg,a=Zg,u=null;function f(){var f,c,s,l=+t.apply(this,arguments),h=+n.apply(this,arguments),d=i.apply(this,arguments)-Hg,p=o.apply(this,arguments)-Hg,v=Lg(p-d),g=p>d;if(u||(u=f=Gi()),h<l&&(c=h,h=l,l=c),h>Fg)if(v>jg-Fg)u.moveTo(h*Ug(d),h*Yg(d)),u.arc(0,0,h,d,p,!g),l>Fg&&(u.moveTo(l*Ug(p),l*Yg(p)),u.arc(0,0,l,p,d,g));else{var y,_,b=d,m=p,x=d,w=p,M=v,A=v,T=a.apply(this,arguments)/2,N=T>Fg&&(r?+r.apply(this,arguments):Bg(l*l+h*h)),S=Og(Lg(h-l)/2,+e.apply(this,arguments)),E=S,k=S;if(N>Fg){var C=Xg(N/l*Yg(T)),P=Xg(N/h*Yg(T));(M-=2*C)>Fg?(x+=C*=g?1:-1,w-=C):(M=0,x=w=(d+p)/2),(A-=2*P)>Fg?(b+=P*=g?1:-1,m-=P):(A=0,b=m=(d+p)/2)}var z=h*Ug(b),R=h*Yg(b),L=l*Ug(w),D=l*Yg(w);if(S>Fg){var U=h*Ug(m),q=h*Yg(m),O=l*Ug(x),Y=l*Yg(x);if(v<Ig){var B=M>Fg?function(t,n,e,r,i,o,a,u){var f=e-t,c=r-n,s=a-i,l=u-o,h=(s*(n-o)-l*(t-i))/(l*f-s*c);return[t+h*f,n+h*c]}(z,R,O,Y,U,q,L,D):[L,D],F=z-B[0],I=R-B[1],H=U-B[0],j=q-B[1],X=1/Yg(((s=(F*H+I*j)/(Bg(F*F+I*I)*Bg(H*H+j*j)))>1?0:s<-1?Ig:Math.acos(s))/2),G=Bg(B[0]*B[0]+B[1]*B[1]);E=Og(S,(l-G)/(X-1)),k=Og(S,(h-G)/(X+1))}}A>Fg?k>Fg?(y=Qg(O,Y,z,R,h,k,g),_=Qg(U,q,L,D,h,k,g),u.moveTo(y.cx+y.x01,y.cy+y.y01),k<S?u.arc(y.cx,y.cy,k,Dg(y.y01,y.x01),Dg(_.y01,_.x01),!g):(u.arc(y.cx,y.cy,k,Dg(y.y01,y.x01),Dg(y.y11,y.x11),!g),u.arc(0,0,h,Dg(y.cy+y.y11,y.cx+y.x11),Dg(_.cy+_.y11,_.cx+_.x11),!g),u.arc(_.cx,_.cy,k,Dg(_.y11,_.x11),Dg(_.y01,_.x01),!g))):(u.moveTo(z,R),u.arc(0,0,h,b,m,!g)):u.moveTo(z,R),l>Fg&&M>Fg?E>Fg?(y=Qg(L,D,U,q,l,-E,g),_=Qg(z,R,O,Y,l,-E,g),u.lineTo(y.cx+y.x01,y.cy+y.y01),E<S?u.arc(y.cx,y.cy,E,Dg(y.y01,y.x01),Dg(_.y01,_.x01),!g):(u.arc(y.cx,y.cy,E,Dg(y.y01,y.x01),Dg(y.y11,y.x11),!g),u.arc(0,0,l,Dg(y.cy+y.y11,y.cx+y.x11),Dg(_.cy+_.y11,_.cx+_.x11),g),u.arc(_.cx,_.cy,E,Dg(_.y11,_.x11),Dg(_.y01,_.x01),!g))):u.arc(0,0,l,w,x,g):u.lineTo(L,D)}else u.moveTo(0,0);if(u.closePath(),f)return u=null,f+""||null}return f.centroid=function(){var e=(+t.apply(this,arguments)+ +n.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +o.apply(this,arguments))/2-Ig/2;return[Ug(r)*e,Yg(r)*e]},f.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:Rg(+n),f):t},f.outerRadius=function(t){return arguments.length?(n="function"==typeof t?t:Rg(+t),f):n},f.cornerRadius=function(t){return arguments.length?(e="function"==typeof t?t:Rg(+t),f):e},f.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:Rg(+t),f):r},f.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:Rg(+t),f):i},f.endAngle=function(t){return arguments.length?(o="function"==typeof t?t:Rg(+t),f):o},f.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:Rg(+t),f):a},f.context=function(t){return arguments.length?(u=null==t?null:t,f):u},f},t.area=ry,t.line=ey,t.pie=function(){var t=oy,n=iy,e=null,r=Rg(0),i=Rg(jg),o=Rg(0);function a(a){var u,f,c,s,l,h=a.length,d=0,p=new Array(h),v=new Array(h),g=+r.apply(this,arguments),y=Math.min(jg,Math.max(-jg,i.apply(this,arguments)-g)),_=Math.min(Math.abs(y)/h,o.apply(this,arguments)),b=_*(y<0?-1:1);for(u=0;u<h;++u)(l=v[p[u]=u]=+t(a[u],u,a))>0&&(d+=l);for(null!=n?p.sort(function(t,e){return n(v[t],v[e])}):null!=e&&p.sort(function(t,n){return e(a[t],a[n])}),u=0,c=d?(y-h*b)/d:0;u<h;++u,g=s)f=p[u],s=g+((l=v[f])>0?l*c:0)+b,v[f]={data:a[f],index:u,value:l,startAngle:g,endAngle:s,padAngle:_};return v}return a.value=function(n){return arguments.length?(t="function"==typeof n?n:Rg(+n),a):t},a.sortValues=function(t){return arguments.length?(n=t,e=null,a):n},a.sort=function(t){return arguments.length?(e=t,n=null,a):e},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:Rg(+t),a):r},a.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:Rg(+t),a):i},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:Rg(+t),a):o},a},t.areaRadial=ly,t.radialArea=ly,t.lineRadial=sy,t.radialLine=sy,t.pointRadial=hy,t.linkHorizontal=function(){return gy(yy)},t.linkVertical=function(){return gy(_y)},t.linkRadial=function(){var t=gy(by);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.symbol=function(){var t=Rg(my),n=Rg(64),e=null;function r(){var r;if(e||(e=r=Gi()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),r)return e=null,r+""||null}return r.type=function(n){return arguments.length?(t="function"==typeof n?n:Rg(n),r):t},r.size=function(t){return arguments.length?(n="function"==typeof t?t:Rg(+t),r):n},r.context=function(t){return arguments.length?(e=null==t?null:t,r):e},r},t.symbols=Uy,t.symbolCircle=my,t.symbolCross=xy,t.symbolDiamond=Ay,t.symbolSquare=ky,t.symbolStar=Ey,t.symbolTriangle=Py,t.symbolWye=Dy,t.curveBasisClosed=function(t){return new By(t)},t.curveBasisOpen=function(t){return new Fy(t)},t.curveBasis=function(t){return new Yy(t)},t.curveBundle=Hy,t.curveCardinalClosed=$y,t.curveCardinalOpen=Zy,t.curveCardinal=Gy,t.curveCatmullRomClosed=n_,t.curveCatmullRomOpen=r_,t.curveCatmullRom=Ky,t.curveLinearClosed=function(t){return new i_(t)},t.curveLinear=Kg,t.curveMonotoneX=function(t){return new c_(t)},t.curveMonotoneY=function(t){return new s_(t)},t.curveNatural=function(t){return new h_(t)},t.curveStep=function(t){return new p_(t,.5)},t.curveStepAfter=function(t){return new p_(t,1)},t.curveStepBefore=function(t){return new p_(t,0)},t.stack=function(){var t=Rg([]),n=g_,e=v_,r=y_;function i(i){var o,a,u=t.apply(this,arguments),f=i.length,c=u.length,s=new Array(c);for(o=0;o<c;++o){for(var l,h=u[o],d=s[o]=new Array(f),p=0;p<f;++p)d[p]=l=[0,+r(i[p],h,p,i)],l.data=i[p];d.key=h}for(o=0,a=n(s);o<c;++o)s[a[o]].index=o;return e(s,a),s}return i.keys=function(n){return arguments.length?(t="function"==typeof n?n:Rg(dy.call(n)),i):t},i.value=function(t){return arguments.length?(r="function"==typeof t?t:Rg(+t),i):r},i.order=function(t){return arguments.length?(n=null==t?g_:"function"==typeof t?t:Rg(dy.call(t)),i):n},i.offset=function(t){return arguments.length?(e=null==t?v_:t,i):e},i},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o<a;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}v_(t,n)}},t.stackOffsetDiverging=function(t,n){if((u=t.length)>1)for(var e,r,i,o,a,u,f=0,c=t[n[0]].length;f<c;++f)for(o=a=0,e=0;e<u;++e)(i=(r=t[n[e]][f])[1]-r[0])>=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):r[0]=o},t.stackOffsetNone=v_,t.stackOffsetSilhouette=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var a=0,u=0;a<e;++a)u+=t[a][r][1]||0;i[r][1]+=i[r][0]=-u/2}v_(t,n)}},t.stackOffsetWiggle=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a<r;++a){for(var u=0,f=0,c=0;u<i;++u){for(var s=t[n[u]],l=s[a][1]||0,h=(l-(s[a-1][1]||0))/2,d=0;d<u;++d){var p=t[n[d]];h+=(p[a][1]||0)-(p[a-1][1]||0)}f+=l,c+=h*l}e[a-1][1]+=e[a-1][0]=o,f&&(o-=c/f)}e[a-1][1]+=e[a-1][0]=o,v_(t,n)}},t.stackOrderAscending=__,t.stackOrderDescending=function(t){return __(t).reverse()},t.stackOrderInsideOut=function(t){var n,e,r=t.length,i=t.map(b_),o=g_(t).sort(function(t,n){return i[n]-i[t]}),a=0,u=0,f=[],c=[];for(n=0;n<r;++n)e=o[n],a<u?(a+=i[e],f.push(e)):(u+=i[e],c.push(e));return c.reverse().concat(f)},t.stackOrderNone=g_,t.stackOrderReverse=function(t){return g_(t).reverse()},t.timeInterval=Rh,t.timeMillisecond=Lh,t.timeMilliseconds=Dh,t.utcMillisecond=Lh,t.utcMilliseconds=Dh,t.timeSecond=Oh,t.timeSeconds=Yh,t.utcSecond=Oh,t.utcSeconds=Yh,t.timeMinute=Bh,t.timeMinutes=Fh,t.timeHour=Ih,t.timeHours=Hh,t.timeDay=jh,t.timeDays=Xh,t.timeWeek=Vh,t.timeWeeks=td,t.timeSunday=Vh,t.timeSundays=td,t.timeMonday=$h,t.timeMondays=nd,t.timeTuesday=Wh,t.timeTuesdays=ed,t.timeWednesday=Zh,t.timeWednesdays=rd,t.timeThursday=Qh,t.timeThursdays=id,t.timeFriday=Jh,t.timeFridays=od,t.timeSaturday=Kh,t.timeSaturdays=ad,t.timeMonth=ud,t.timeMonths=fd,t.timeYear=cd,t.timeYears=sd,t.utcMinute=ld,t.utcMinutes=hd,t.utcHour=dd,t.utcHours=pd,t.utcDay=vd,t.utcDays=gd,t.utcWeek=_d,t.utcWeeks=Td,t.utcSunday=_d,t.utcSundays=Td,t.utcMonday=bd,t.utcMondays=Nd,t.utcTuesday=md,t.utcTuesdays=Sd,t.utcWednesday=xd,t.utcWednesdays=Ed,t.utcThursday=wd,t.utcThursdays=kd,t.utcFriday=Md,t.utcFridays=Cd,t.utcSaturday=Ad,t.utcSaturdays=Pd,t.utcMonth=zd,t.utcMonths=Rd,t.utcYear=Ld,t.utcYears=Dd,t.timeFormatDefaultLocale=Qp,t.timeFormatLocale=Yd,t.isoFormat=Jp,t.isoParse=Kp,t.now=ir,t.timer=ur,t.timerFlush=fr,t.timeout=hr,t.interval=function(t,n,e){var r=new ar,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?ir():+e,r.restart(function o(a){a+=i,r.restart(o,i+=n,e),t(a)},n,e),r)},t.transition=zr,t.active=function(t,n){var e,r,i=t.__transition;if(i)for(r in n=null==n?null:n+"",i)if((e=i[r]).state>gr&&e.name===n)return new Pr([[t]],li,n,+r);return null},t.interrupt=Nr,t.voronoi=function(){var t=x_,n=w_,e=null;function r(r){return new eb(r.map(function(e,i){var o=[Math.round(t(e,i,r)/K_)*K_,Math.round(n(e,i,r)/K_)*K_];return o.index=i,o.data=e,o}),e)}return r.polygons=function(t){return r(t).polygons()},r.links=function(t){return r(t).links()},r.triangles=function(t){return r(t).triangles()},r.x=function(n){return arguments.length?(t="function"==typeof n?n:m_(+n),r):t},r.y=function(t){return arguments.length?(n="function"==typeof t?t:m_(+t),r):n},r.extent=function(t){return arguments.length?(e=null==t?null:[[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]],r):e&&[[e[0][0],e[0][1]],[e[1][0],e[1][1]]]},r.size=function(t){return arguments.length?(e=null==t?null:[[0,0],[+t[0],+t[1]]],r):e&&[e[1][0]-e[0][0],e[1][1]-e[0][1]]},r},t.zoom=function(){var n,e,r=sb,i=lb,o=vb,a=db,u=pb,f=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],s=250,l=qe,h=[],d=I("start","zoom","end"),p=500,v=150,g=0;function y(t){t.property("__zoom",hb).on("wheel.zoom",A).on("mousedown.zoom",T).on("dblclick.zoom",N).filter(u).on("touchstart.zoom",S).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(t,n){return(n=Math.max(f[0],Math.min(f[1],n)))===t.k?t:new ob(n,t.x,t.y)}function b(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new ob(t.k,r,i)}function m(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function x(t,n,e){t.on("start.zoom",function(){w(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){w(this,arguments).end()}).tween("zoom",function(){var t=arguments,r=w(this,t),o=i.apply(this,t),a=e||m(o),u=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),f=this.__zoom,c="function"==typeof n?n.apply(this,t):n,s=l(f.invert(a).concat(u/f.k),c.invert(a).concat(u/c.k));return function(t){if(1===t)t=c;else{var n=s(t),e=u/n[2];t=new ob(e,a[0]-n[0]*e,a[1]-n[1]*e)}r.zoom(null,t)}})}function w(t,n){for(var e,r=0,i=h.length;r<i;++r)if((e=h[r]).that===t)return e;return new M(t,n)}function M(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=i.apply(t,n)}function A(){if(r.apply(this,arguments)){var t=w(this,arguments),n=this.__zoom,e=Math.max(f[0],Math.min(f[1],n.k*Math.pow(2,a.apply(this,arguments)))),i=Ft(this);if(t.wheel)t.mouse[0][0]===i[0]&&t.mouse[0][1]===i[1]||(t.mouse[1]=n.invert(t.mouse[0]=i)),clearTimeout(t.wheel);else{if(n.k===e)return;t.mouse=[i,n.invert(i)],Nr(this),t.start()}cb(),t.wheel=setTimeout(function(){t.wheel=null,t.end()},v),t.zoom("mouse",o(b(_(n,e),t.mouse[0],t.mouse[1]),t.extent,c))}}function T(){if(!e&&r.apply(this,arguments)){var n=w(this,arguments),i=Dt(t.event.view).on("mousemove.zoom",function(){if(cb(),!n.moved){var e=t.event.clientX-u,r=t.event.clientY-f;n.moved=e*e+r*r>g}n.zoom("mouse",o(b(n.that.__zoom,n.mouse[0]=Ft(n.that),n.mouse[1]),n.extent,c))},!0).on("mouseup.zoom",function(){i.on("mousemove.zoom mouseup.zoom",null),Gt(t.event.view,n.moved),cb(),n.end()},!0),a=Ft(this),u=t.event.clientX,f=t.event.clientY;Xt(t.event.view),fb(),n.mouse=[a,this.__zoom.invert(a)],Nr(this),n.start()}}function N(){if(r.apply(this,arguments)){var n=this.__zoom,e=Ft(this),a=n.invert(e),u=n.k*(t.event.shiftKey?.5:2),f=o(b(_(n,u),e,a),i.apply(this,arguments),c);cb(),s>0?Dt(this).transition().duration(s).call(x,f,e):Dt(this).call(y.transform,f)}}function S(){if(r.apply(this,arguments)){var e,i,o,a,u=w(this,arguments),f=t.event.changedTouches,c=f.length;for(fb(),i=0;i<c;++i)a=[a=It(this,f,(o=f[i]).identifier),this.__zoom.invert(a),o.identifier],u.touch0?u.touch1||(u.touch1=a):(u.touch0=a,e=!0);if(n&&(n=clearTimeout(n),!u.touch1))return u.end(),void((a=Dt(this).on("dblclick.zoom"))&&a.apply(this,arguments));e&&(n=setTimeout(function(){n=null},p),Nr(this),u.start())}}function E(){var e,r,i,a,u=w(this,arguments),f=t.event.changedTouches,s=f.length;for(cb(),n&&(n=clearTimeout(n)),e=0;e<s;++e)i=It(this,f,(r=f[e]).identifier),u.touch0&&u.touch0[2]===r.identifier?u.touch0[0]=i:u.touch1&&u.touch1[2]===r.identifier&&(u.touch1[0]=i);if(r=u.that.__zoom,u.touch1){var l=u.touch0[0],h=u.touch0[1],d=u.touch1[0],p=u.touch1[1],v=(v=d[0]-l[0])*v+(v=d[1]-l[1])*v,g=(g=p[0]-h[0])*g+(g=p[1]-h[1])*g;r=_(r,Math.sqrt(v/g)),i=[(l[0]+d[0])/2,(l[1]+d[1])/2],a=[(h[0]+p[0])/2,(h[1]+p[1])/2]}else{if(!u.touch0)return;i=u.touch0[0],a=u.touch0[1]}u.zoom("touch",o(b(r,i,a),u.extent,c))}function k(){var n,r,i=w(this,arguments),o=t.event.changedTouches,a=o.length;for(fb(),e&&clearTimeout(e),e=setTimeout(function(){e=null},p),n=0;n<a;++n)r=o[n],i.touch0&&i.touch0[2]===r.identifier?delete i.touch0:i.touch1&&i.touch1[2]===r.identifier&&delete i.touch1;i.touch1&&!i.touch0&&(i.touch0=i.touch1,delete i.touch1),i.touch0?i.touch0[1]=this.__zoom.invert(i.touch0[0]):i.end()}return y.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",hb),t!==e?x(t,n):e.interrupt().each(function(){w(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},y.scaleBy=function(t,n){y.scaleTo(t,function(){return this.__zoom.k*("function"==typeof n?n.apply(this,arguments):n)})},y.scaleTo=function(t,n){y.transform(t,function(){var t=i.apply(this,arguments),e=this.__zoom,r=m(t),a=e.invert(r),u="function"==typeof n?n.apply(this,arguments):n;return o(b(_(e,u),r,a),t,c)})},y.translateBy=function(t,n,e){y.transform(t,function(){return o(this.__zoom.translate("function"==typeof n?n.apply(this,arguments):n,"function"==typeof e?e.apply(this,arguments):e),i.apply(this,arguments),c)})},y.translateTo=function(t,n,e){y.transform(t,function(){var t=i.apply(this,arguments),r=this.__zoom,a=m(t);return o(ab.translate(a[0],a[1]).scale(r.k).translate("function"==typeof n?-n.apply(this,arguments):-n,"function"==typeof e?-e.apply(this,arguments):-e),t,c)})},M.prototype={start:function(){return 1==++this.active&&(this.index=h.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(h.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){Ct(new ib(y,t,this.that.__zoom),d.apply,d,[t,this.that,this.args])}},y.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:rb(+t),y):a},y.filter=function(t){return arguments.length?(r="function"==typeof t?t:rb(!!t),y):r},y.touchable=function(t){return arguments.length?(u="function"==typeof t?t:rb(!!t),y):u},y.extent=function(t){return arguments.length?(i="function"==typeof t?t:rb([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),y):i},y.scaleExtent=function(t){return arguments.length?(f[0]=+t[0],f[1]=+t[1],y):[f[0],f[1]]},y.translateExtent=function(t){return arguments.length?(c[0][0]=+t[0][0],c[1][0]=+t[1][0],c[0][1]=+t[0][1],c[1][1]=+t[1][1],y):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},y.constrain=function(t){return arguments.length?(o=t,y):o},y.duration=function(t){return arguments.length?(s=+t,y):s},y.interpolate=function(t){return arguments.length?(l=t,y):l},y.on=function(){var t=d.on.apply(d,arguments);return t===d?y:t},y.clickDistance=function(t){return arguments.length?(g=(t=+t)*t,y):Math.sqrt(g)},y},t.zoomTransform=ub,t.zoomIdentity=ab,Object.defineProperty(t,"__esModule",{value:!0})});
##############################################
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak-17-ECHO   = printf "$(1)\t%s\n" $(2)
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak:18:BRIEF  = CC CXX OBJCC HOSTCC HOSTLD AS X86ASM AR LD STRIP CP WINDRES NVCC
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak:19:SILENT = DEPCC DEPHOSTCC DEPAS DEPX86ASM RANLIB RM
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak-20-
##############################################
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak-30-
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak:31:# NASM requires -I path terminated with /
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak-32-IFLAGS     := -I. -I$(SRC_LINK)/
##############################################
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak-53-COMPILE_M = $(call COMPILE,OBJCC)
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak:54:COMPILE_X86ASM = $(call COMPILE,X86ASM)
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak-55-COMPILE_HOSTC = $(call COMPILE,HOSTCC)
##############################################
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak-164-
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak:165:CLEANSUFFIXES     = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb
chromium-84.0.4147.105/third_party/ffmpeg/ffbuild/common.mak-166-LIBSUFFIXES       = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a
##############################################
chromium-84.0.4147.105/third_party/ffmpeg/CREDITS.chromium-578-
chromium-84.0.4147.105/third_party/ffmpeg/CREDITS.chromium:579: Conversion from gcc syntax to x264asm syntax with modifications
chromium-84.0.4147.105/third_party/ffmpeg/CREDITS.chromium-580- by Christophe Gisquet <christophe.gisquet@gmail.com>
##############################################
chromium-84.0.4147.105/third_party/ffmpeg/CREDITS.chromium-588-
chromium-84.0.4147.105/third_party/ffmpeg/CREDITS.chromium:589: Originally from dct/x86_asm/fdct_sse2_skal.asm in Xvid.
chromium-84.0.4147.105/third_party/ffmpeg/CREDITS.chromium-590-
##############################################
chromium-84.0.4147.105/third_party/ffmpeg/Makefile-9-vpath %.S    $(SRC_PATH)
chromium-84.0.4147.105/third_party/ffmpeg/Makefile:10:vpath %.asm  $(SRC_PATH)
chromium-84.0.4147.105/third_party/ffmpeg/Makefile-11-vpath %.rc   $(SRC_PATH)
##############################################
chromium-84.0.4147.105/third_party/ffmpeg/Makefile-148-distclean:: clean
chromium-84.0.4147.105/third_party/ffmpeg/Makefile:149:	$(RM) .version avversion.h config.asm config.h mapfile  \
chromium-84.0.4147.105/third_party/ffmpeg/Makefile-150-		ffbuild/.config ffbuild/config.* libavutil/avconfig.h \
##############################################
chromium-84.0.4147.105/third_party/ffmpeg/Changelog-226-- roberts video filter
chromium-84.0.4147.105/third_party/ffmpeg/Changelog:227:- The x86 assembler default switched from yasm to nasm, pass
chromium-84.0.4147.105/third_party/ffmpeg/Changelog:228:  --x86asmexe=yasm to configure to restore the old behavior.
chromium-84.0.4147.105/third_party/ffmpeg/Changelog-229-- additional frame format support for Interplay MVE movies
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-172-# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:173:#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-174-# and then we would define $MISSING as
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-187-# Expand $ac_aux_dir to an absolute path.
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:188:am_aux_dir=`cd "$ac_aux_dir" && pwd`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-189-])
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-285-  if test "$am_compiler_list" = ""; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:286:     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-287-  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-436-    # Strip MF so we end up with the name of the file.
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:437:    mf=`echo "$mf" | sed -e 's/:.*$//'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-438-    # Check whether this is an Automake generated Makefile or not.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-445-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:446:      dirpart=`AS_DIRNAME("$mf")`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-447-    else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-451-    # from the Makefile without running 'make'.
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:452:    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-453-    test -z "$DEPDIR" && continue
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:454:    am__include=`sed -n 's/^am__include = //p' < "$mf"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-455-    test -z "$am__include" && continue
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:456:    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-457-    # Find all dependency output files, they are included files with
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-465-      test -f "$dirpart/$file" && continue
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:466:      fdir=`AS_DIRNAME(["$file"])`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-467-      AS_MKDIR_P([$dirpart/$fdir])
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-523-AC_REQUIRE([AC_PROG_INSTALL])dnl
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:524:if test "`cd $srcdir && pwd`" != "`pwd`"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-525-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-682-    * )
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:683:      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-684-  esac
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-685-done
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:686:echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-687-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-789-# Ignore all kinds of additional output from 'make'.
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:790:case `$am_make -s -f confmf 2> /dev/null` in #(
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-791-*the\ am__doit\ target*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-799-   echo '.include "confinc"' > confmf
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:800:   case `$am_make -s -f confmf 2> /dev/null` in #(
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-801-   *the\ am__doit\ target*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-1010-     echo "timestamp, slept: $am_has_slept" > conftest.file
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:1011:     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-1012-     if test "$[*]" = "X"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-1013-	# -L didn't work.
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4:1014:	set X `ls -t "$srcdir/configure" conftest.file`
chromium-84.0.4147.105/third_party/breakpad/breakpad/aclocal.m4-1015-     fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-120-done
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:121:cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-122-])
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-410-m4_define([_LT_CONFIG_STATUS_DECLARE],
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:411:[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-412-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-420-#
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:421:#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-422-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-522-]], lt_decl_quote_varnames); do
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:523:    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-524-    *[[\\\\\\\`\\"\\\$]]*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:525:      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-526-      ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-535-]], lt_decl_dquote_varnames); do
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:536:    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-537-    *[[\\\\\\\`\\"\\\$]]*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:538:      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-539-      ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-548-*'\\\[$]0 --fallback-echo"')dnl "
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:549:  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-550-  ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-684-
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:685:# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-686-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1031-    }'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1032:aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1033-# Check for a 64-bit object if we didn't find anything.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1034-if test -z "$aix_libpath"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1035:  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1036-fi],[])
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1063-  # Remove one level of quotation (which was required for Make).
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1064:  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1065-  ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1074-  :
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1075:elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1076-  # Yippee, $ECHO works!
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1100-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1101:      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1102-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1108-
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1109:  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1110:     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1111-     test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1123-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1124:         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1125:         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1126-         test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1135-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1136:         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1137-         test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1150-        ECHO='printf %s\n'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1151:        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1152:	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1153-	   test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1155-	  :
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1156:        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1157-	     test "X$echo_testing_string" = 'X\t' &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1158:	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1159-	     test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1164-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1165:        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1166-	     test "X$echo_testing_string" = 'X\t' &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1167:	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1168-	     test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1174-	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1175:	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1176-	    then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1182-	  if test "$prev" != 'sed 50q "[$]0"'; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1183:	    echo_test_string=`eval $prev`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1184-	    export echo_test_string
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1225-  if AC_TRY_EVAL(ac_compile); then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1226:    case `/usr/bin/file conftest.$ac_objext` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1227-      *ELF-32*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1241-    if test "$lt_cv_prog_gnu_ld" = yes; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1242:      case `/usr/bin/file conftest.$ac_objext` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1243-	*32-bit*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1253-    else
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1254:      case `/usr/bin/file conftest.$ac_objext` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1255-	*32-bit*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1545-    # And add a safety zone
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1546:    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1547:    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1548-    ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1573-    if test -n "$kargmax"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1574:      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1575-    else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1581-    if test -n "$lt_cv_sys_max_cmd_len"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1582:      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1583:      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1584-    else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1593-      # we can't tell.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1594:      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1595-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1597-      do
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1598:        i=`expr $i + 1`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1599-        teststring=$teststring$teststring
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1601-      # Only check the string length outside the loop.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1602:      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1603-      teststring=
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1606-      # linker.  It appears as though 1/2 is a usable value.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1607:      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1608-    fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1921-  if test "$hard_links" = no; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:1922:    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-1923-    need_locks=warn
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2047-  esac
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2048:  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2049-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2053-    # okay in the real world where ";" in dirpaths is itself problematic.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2054:    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2055-  else
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2056:    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2057-  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2060-  lt_tmp_lt_search_path_spec=
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2061:  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2062-  for lt_sys_path in $lt_search_path_spec; do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2089-}'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2090:  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2091-else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2177-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2178:    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2179-    ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2212-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2213:    postinstall_cmds='base_file=`basename \${file}`~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2214:      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2215:      dldir=$destdir/`dirname \$dlpath`~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2216-      test -d \$dldir || mkdir -p \$dldir~
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2221-      fi'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2222:    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2223-      dlpath=$dir/\$dldll~
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2229-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2230:      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2231-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2234-      # MinGW DLLs use traditional 'lib' prefix
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2235:      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2236:      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2237-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2243-        # which wouldn't understand a cygwinified path. Ahh.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2244:        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2245-      else
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2246:        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2247-      fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2250-      # pw32 DLLs use 'pw' prefix rather than 'lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2251:      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2252-      ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2256-  *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2257:    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2258-    ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2273-  shlibpath_var=DYLD_LIBRARY_PATH
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2274:  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2275-m4_if([$1], [],[
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2474-  if test -f /etc/ld.so.conf; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2475:    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2476-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2548-  shlibpath_var=LD_LIBRARY_PATH
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2549:  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2550-    case $host_os in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2763-	"file_magic "*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2764:	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2765-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2845-    # gcc leaves a trailing carriage return which upsets mingw
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2846:    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2847-  *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2848:    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2849-  esac
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2854-      # Canonicalize the pathname of ld
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2855:      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2856-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2857:	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2858-      done
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2885-      # Break only if it was the GNU/non-GNU ld that we prefer.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2886:      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2887-      *GNU* | *'with BFD'*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2925-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:2926:case `$LD -v 2>&1 </dev/null` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-2927-*GNU* | *'with BFD'*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3109-openbsd*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:3110:  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3111-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3200-	# Tru64's nm complains that /dev/null is an invalid object file
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:3201:	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3202-	*/dev/null* | *'Invalid file or object type'*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3206-	*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:3207:	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3208-	  */dev/null*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3371-# If we're using GNU nm, then use its standard symbol codes.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:3372:case `$NM -V 2>&1` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3373-*GNU* | *'with BFD'*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3389-mingw*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:3390:  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3391-  ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3440-    nlist=conftest.nm
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:3441:    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3442-      # Try sorting and uniquifying the output.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3747-	  *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:3748:	    case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-3749-	    *Sun\ C*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4031-      *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4032:	case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4033-	*Sun\ C*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4286-    supports_anon_versioning=no
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4287:    case `$LD -v 2>&1` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4288-      *GNU\ gold*) supports_anon_versioning=yes ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4352-	# is EXPORTS), use it as is; otherwise, prepend...
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4353:	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4354-	  cp $export_symbols $output_objdir/$soname.def;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4375-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4376:      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4377:      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4378-      ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4393-        pgcc*)				# Portland Group C compiler
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4394:	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4395-	  tmp_addflag=' $pic_flag'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4397-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4398:	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4399-	  tmp_addflag=' $pic_flag -Mnomain' ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4412-	esac
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4413:	case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4414-	*Sun\ C*)			# Sun C 5.9
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4415:	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4416-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4481-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4482:      case `$LD -v 2>&1` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4483-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4602-	# below for broken collect2 doesn't work under 4.3+
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4603:	  collect2name=`${CC} -print-prog-name=collect2`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4604-	  if test -f "$collect2name" &&
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4652-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4653:        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4654-      else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4707-      # FIXME: Setting linknames here is a bad hack.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4708:      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4709-      # The linker will automatically build a .lib file if we build a DLL.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4712-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4713:      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4714-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4842-      if test "$GCC" = yes; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4843:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4844-	# Try to use the -exported_symbol ld option, if it does not
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4849-        AC_LINK_IFELSE(int foo(void) {},
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4850:          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4851-        )
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4853-      else
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4854:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4855:	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4856-      fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4890-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4891:	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4892-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4923-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4924:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4925-      else
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4926-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4927:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4928-      fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4936-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4937:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4938-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4940-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4941:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4942:	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4943:	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4944-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4959-      else
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:4960:	case `$CC -V 2>&1` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-4961-	*"Compilers 5.0"*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5151-        _LT_TAGVAR(allow_undefined_flag, $1)=
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5152:        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5153-        then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5465-        # ancient GNU ld didn't support --whole-archive et. al.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5466:        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5467-	  $GREP 'no-whole-archive' > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5548-          # below for broken collect2 doesn't work under 4.3+
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5549:	  collect2name=`${CC} -print-prog-name=collect2`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5550-	  if test -f "$collect2name" &&
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5598-
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5599:          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5600-        else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5655-          # is EXPORTS), use it as is; otherwise, prepend...
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5656:          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5657-	    cp $export_symbols $output_objdir/$soname.def;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5731-            # dependencies.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5732:            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5733-            ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5796-	    # dependencies.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5797:	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5798-	    ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5832-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5833:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5834:	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5835-	;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5839-	    # SGI C++
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5840:	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5841-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5850-	      if test "$with_gnu_ld" = no; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5851:	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5852-	      else
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5853:	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5854-	      fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5871-	    # to its proper name (with version) after linking.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5872:	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5873:	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5874-	    # Commands to make compiler produce verbose output that lists
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5881-	    # dependencies.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5882:	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5883-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5896-	    # earlier do not add the objects themselves.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5897:	    case `$CC -V 2>&1` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5898-	      *"Version 7."*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5917-            # Portland Group C++ compiler
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5918:	    case `$CC -V` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5919-	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5922-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5923:		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5924-	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5926-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5927:		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5928-		$RANLIB $oldlib'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5931-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5932:		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5933-	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5935-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5936:		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5937-	      ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5945-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5946:	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5947-            ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5964-	    # dependencies.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5965:	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5966-	    ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5979-	  *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5980:	    case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5981-	    *Sun\ C*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5986-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:5987:	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-5988-	      _LT_TAGVAR(compiler_needs_object, $1)=yes
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6056-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6057:	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6058-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6075-	    # to its proper name (with version) after linking.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6076:	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6077-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6096-	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6097:	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6098-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6101-	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6102:	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6103:	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6104-	          echo "-hidden">> $lib.exp~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6105:	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6106-	          $RM $lib.exp'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6120-	    # dependencies.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6121:	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6122-	    ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6127-	        osf3*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6128:	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6129-		  ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6130-	        *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6131:	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6132-		  ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6426-
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6427:  for p in `eval "$output_verbose_link_cmd"`; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6428-    case $p in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6512-linux*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6513:  case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6514-  *Sun\ C*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6563-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:6564: _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-6565-fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7103-    test $lt_ac_count -gt 10 && break
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:7104:    lt_ac_count=`expr $lt_ac_count + 1`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7105-    if test $lt_ac_count -gt $lt_ac_max; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7278-  # Extract subdirectory from the argument.
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:7279:  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7280-  if test "X$func_dirname_result" = "X${1}"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7289-{
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:7290:  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7291-}
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7319-{
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:7320:  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:7321:  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7322-}
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7326-{
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:7327:  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7328-}
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7332-{
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:7333:  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7334-}
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7338-{
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:7339:  func_arith_result=`expr "$[@]"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7340-}
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7345-{
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4:7346:  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/libtool.m4-7347-}
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/ltsugar.m4-67-m4_define([lt_combine],
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/ltsugar.m4:68:[m4_if(m4_eval([$# > 3]), [1],
chromium-84.0.4147.105/third_party/breakpad/breakpad/m4/ltsugar.m4-69-       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib-65-	mingw)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib:66:	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib-67-	  ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib-68-	cygwin)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib:69:	  file=`cygpath -m "$file" || echo "$file"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib-70-	  ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib-71-	wine)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib:72:	  file=`winepath -w "$file" || echo "$file"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib-73-	  ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib-88-  archive=$3
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib:89:  at_file_contents=`cat "$1"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ar-lib-90-  eval set x "$at_file_contents"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-234-      fi
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh:235:      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-236-    *)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-281-      dstdir=$dst
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh:282:      dst=$dstdir/`basename "$src"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-283-      dstdir_status=0
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-284-    else
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh:285:      dstdir=`dirname "$dst"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-286-      test -d "$dstdir"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-337-                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh:338:                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-339-                   case $ls_ld_tmpdir in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-344-                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh:345:                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-346-                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-402-            case $prefix in
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh:403:              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-404-              *) qprefix=$prefix;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-451-    if $copy_on_change &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh:452:       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh:453:       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/install-sh-454-       set -f &&
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-67-	mingw/*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile:68:	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-69-	  ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-70-	cygwin/*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile:71:	  file=`cygpath -m "$file" || echo "$file"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-72-	  ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-73-	wine/*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile:74:	  file=`winepath -w "$file" || echo "$file"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-75-	  ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-309-# Name of file we expect compiler to create.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile:310:cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-311-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-315-# object file name, since that is what matters with a parallel build.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile:316:lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/compile-317-while true; do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-64-  case $1 in
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp:65:    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-66-      *) dir=;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-73-{
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp:74:  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-75-}
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-126-  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp:127:tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-128-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-405-        sleep 1
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp:406:        i=`expr $i - 1`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-407-      done
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-408-    fi
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp:409:    i=`expr $i - 1`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-410-  done
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-425-  # Do two passes, one to just change these to
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp:426:  # `$object: dependent.h' and one to simply `dependent.h:'.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-427-  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-659-  done
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp:660:  obj_suffix=`echo "$object" | sed 's/^.*\././'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/depcomp-661-  touch "$tmpdepfile"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-161-  # Extract subdirectory from the argument.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:162:  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-163-  if test "X$func_dirname_result" = "X${1}"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-167-  fi
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:168:  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-169-}
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-193-     progdir=$func_dirname_result
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:194:     progdir=`cd "$progdir" && pwd`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-195-     progpath="$progdir/$progname"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-221-# Since each input `\' is now two `\'s, look for any number of runs of
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:222:# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-223-bs='\\'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-328-        # ...otherwise throw away the child directory and loop
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:329:        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-330-      done
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:331:      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-332-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-363-      # If mktemp works, use that first and foremost
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:364:      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-365-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-394-      *[\\\`\"\$]*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:395:	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-396-      *)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-536-	s/\$with_gnu_ld/'"$with_gnu_ld"'/
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:537:	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:538:	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-539-	p
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-565-  :
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:566:elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-567-  # Yippee, $ECHO works!
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-685-	# quotes we have to do it in 2 steps:
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:686:	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-687-	eval "$extractedcf"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1021-      # but not from the CC environment variable when configure was run.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1022:      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1023-      # Blanks at the start of $base_compile will cause this to fail
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1028-	    # Evaluate the configuration.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1029:	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1030-	    CC_quoted=
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1036-	    case "$@ " in
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1037:	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1038-	      # The compiler in the base compile command matches
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1213-    *.[cCFSifmso] | \
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1214:    *.ada | *.adb | *.ads | *.asm | \
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1215-    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1290-    if test "$compiler_c_o" = no; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1291:      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1292-      lockfile="$output_obj.lock"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1309-*** ERROR, $lockfile exists and contains:
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1310:`cat $lockfile 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1311-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1358-      if test "$need_locks" = warn &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1359:	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1360-	$ECHO "\
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1361-*** ERROR, $lockfile contains:
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1362:`cat $lockfile 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1363-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1407-      if test "$need_locks" = warn &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1408:	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1409-	$ECHO "\
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1410-*** ERROR, $lockfile contains:
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1411:`cat $lockfile 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1412-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1665-	  test -n "$library_names" && \
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1666:	    func_warning "\`$file' was not linked with \`-export-dynamic'"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1667-	  continue
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1676-	  if test ! -f "$dir/$dlname"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1677:	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1678-	  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1694-      # Get the absolute pathname.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:1695:      absdir=`cd "$dir" && pwd`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-1696-      test -n "$absdir" && dir="$absdir"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2012-	  # Determine the prefix the user has applied to our future dir.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2013:	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2014-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2025-	    # Stick the inst_prefix_dir data into the link command.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2026:	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2027-	  else
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2028:	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2029-	  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2185-	    fi
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2186:	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2187-	    if test -n "$libdir" && test ! -f "$libfile"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2188:	      func_warning "\`$lib' has not been installed in \`$libdir'"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2189-	      finalize=no
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2204-	        # Replace the output file specification.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2205:	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2206-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2223-	    # Install the binary that we compiled earlier.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2224:	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2225-	  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2294-    my_pic_p="${3-no}"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2295:    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2296-    my_dlsyms=
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2334-	  # Add our own program objects to the symbol list.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2335:	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2336-	  for progfile in $progfiles; do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2517-	  if test -f "$output_objdir/$my_outputname.def"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2518:	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2519:	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2520-	  else
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2521:	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2522:	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2523-	  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2525-	*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2526:	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2527:	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2528-	  ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2540-      # Nullify the symbol file.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2541:      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2542:      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2543-    fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2555-  win32_libid_type="unknown"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2556:  win32_fileres=`file -L $1 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2557-  case $win32_fileres in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2652-	  darwin_curdir=`pwd`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2653:	  darwin_base_archive=`basename "$darwin_archive"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2654:	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2655-	  if test -n "$darwin_arches"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2656:	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2657-	    darwin_arch=
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2667-            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2668:	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2669-	    darwin_file=
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2671-	    for darwin_file in $darwin_filelist; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2672:	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2673-	      $LIPO -create -output "$darwin_file" $darwin_files
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2686-      esac
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2687:      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2688-    done
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2757-      shift
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2758:    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2759-      # Yippee, \$ECHO works!
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2769-  # Find the directory that this script lives in.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2770:  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2771-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2773-  # Follow symbolic links until we get to the real thisdir.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2774:  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2775-  while test -n \"\$file\"; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2776:    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2777-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2785-
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2786:    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2787:    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2788-  done
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2816-    case \"\$thisdir\" in
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2817:    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2818-    $objdir )   thisdir=. ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2822-  # Try to get the absolute directory name.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2823:  absdir=\`cd \"\$thisdir\" && pwd\`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2824-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2832-  if test ! -f \"\$progdir/\$program\" ||
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2833:     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2834-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2847-    if test -n \"\$relink_command\"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2848:      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2849-      else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2879-    # The second colon is a workaround for a bug in BeOS R4 sed
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2880:    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2881-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2994-          *cygwin* )
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:2995:            func_to_host_path_tmp1=`cygpath -w "$1"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-2996-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-3006-            # the odd construction:
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:3007:            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-3008-            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-3073-          *cygwin* )
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:3074:            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-3075-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-4240-	    moreargs=
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:4241:	    for fil in `cat "$save_arg"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-4242-	    do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-4490-	*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:4491:	  absdir=`cd "$dir" && pwd`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-4492-	  test -z "$absdir" && \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-4505-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:4506:	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-4507-	  case :$dllsearchpath: in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-4927-      # get the directories listed in $shlibpath_var
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:4928:      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-4929-    else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5050-	  for deplib in $dependency_libs; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5051:            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5052-	    case " $weak_libs " in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5228-		  set dummy $deplibs_check_method; shift
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5229:		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5230-		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5291-	else
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5292:	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5293-	fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5320-	if test -n "$inherited_linker_flags"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5321:	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5322-	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5328-	fi
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5329:	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5330-	if test "$linkmode,$pass" = "lib,link" ||
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5395-	*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5396:	  abs_ladir=`cd "$ladir" && pwd`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5397-	  if test -z "$abs_ladir"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5621-	    shift
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5622:	    libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5623-	    # use dlname if we got it. it's perfectly good, no?
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5904-		*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5905:		  absdir=`cd "$dir" && pwd`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5906-		  if test -z "$absdir"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5915-		  depdepl=
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5916:		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5917-		  if test -n "$deplibrary_names" ; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5922-		      depdepl="$absdir/$objdir/$depdepl"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5923:		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5924-                      if test -z "$darwin_install_name"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5925:                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5926-                      fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5937-		else
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5938:		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5939-		  test -z "$libdir" && \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5960-	else
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:5961:	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-5962-	fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6109-	test "$module" = no && \
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6110:	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6111-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6243-	if test "$age" -gt "$current"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6244:	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6245-	  func_fatal_error "\`$vinfo' is not valid version information"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6404-	removelist=
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6405:	tempremovelist=`$ECHO "$output_objdir/*"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6406-	for p in $tempremovelist; do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6430-	# Transform .lo files to .o files.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6431:	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6432-      fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6435-      #for path in $notinst_path; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6436:      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6437:      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6438:      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6439-      #done
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6555-		if test -n "$i" ; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6556:		  libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6557:		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6558-		  set dummy $deplib_matches; shift
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6559-		  deplib_match=$1
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6560:		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6561-		    newdeplibs="$newdeplibs $i"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6598-		  if test -n "$i" ; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6599:		    libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6600:		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6601-		    set dummy $deplib_matches; shift
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6602-		    deplib_match=$1
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6603:		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6604-		      newdeplibs="$newdeplibs $i"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6633-	  set dummy $deplibs_check_method; shift
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6634:	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6635-	  for a_deplib in $deplibs; do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6648-	      if test -n "$a_deplib" ; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6649:		libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6650-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6651:		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6652-		  for potent_lib in $potential_libs; do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6664-		      while test -h "$potlib" 2>/dev/null; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6665:			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6666-			case $potliblink in
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6667-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6668:			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6669-			esac
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6705-	  set dummy $deplibs_check_method; shift
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6706:	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6707-	  for a_deplib in $deplibs; do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6720-	      if test -n "$a_deplib" ; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6721:		libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6722-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6723:		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6724-		  for potent_lib in $potential_libs; do
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6764-	      # can't use Xsed below, because $i might contain '/'
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6765:	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6766-	    done
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6789-	  # On Rhapsody replace the C library with the System framework
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6790:	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6791-	  ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6841-	*-*-darwin*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6842:	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6843:	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6844:	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6845-	  ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6965-	# Use standard objects if they are pic
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6966:	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6967-	test "X$libobjs" = "X " && libobjs=
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6980-	    # exporting using user supplied symfile
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:6981:	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-6982-	      # and it's NOT already a .def file. Must figure out
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7132-	  save_output=$output
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7133:	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7134-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7436-	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7437:	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7438-	else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7447-      # Create the old-style object.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7448:      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7449-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7507-	# On Rhapsody replace the C library is the System framework
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7508:	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7509:	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7510-	;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7525-	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7526:	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7527:	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7528-	;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7603-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7604:	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7605-	  case :$dllsearchpath: in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7663-	# Transform all the library objects into standard objects.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7664:	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7665:	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7666-      fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7693-	# Replace the output file specification.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7694:	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7695-	link_command="$compile_command$compile_rpath"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7740-	# Replace the output file specification.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7741:	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7742-	# Delete the old output file.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7759-	  if test "$fast_install" = yes; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7760:	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7761-	  else
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7771-      # Replace the output file specification.
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7772:      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7773-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7795-	relink_command="(cd `pwd`; $relink_command)"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7796:	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7797-      fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7804-	esac
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7805:	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7806-      else
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:7807:	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-7808-      fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8038-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:8039:      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8040-      if test "$hardcode_automatic" = yes ; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8058-		name="$func_basename_result"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:8059:		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8060-		test -z "$libdir" && \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8074-		name="$func_basename_result"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:8075:		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8076-		test -z "$libdir" && \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8093-		name="$func_basename_result"
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:8094:		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8095-		test -z "$libdir" && \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8397-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh:8398:build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
chromium-84.0.4147.105/third_party/breakpad/breakpad/autotools/ltmain.sh-8399-# ### END LIBTOOL TAG CONFIG: disable-static
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-83-  { \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:84:    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-85-  }; \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-245-CONFIG_CLEAN_VPATH_FILES =
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:246:am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-247-am__vpath_adj = case $$p in \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:248:    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-249-    *) f=$$p;; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-250-  esac;
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:251:am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-252-am__install_max = 40
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-253-am__nobase_strip_setup = \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:254:  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-255-am__nobase_strip = \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-1876-case "$@" in						\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:1877:  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-1878-    *) am__odir=.;; 					\
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-1906-  bases='$(TEST_LOGS)'; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:1907:  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:1908:  bases=`echo $$bases`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-1909-RECHECK_LOGS = $(TEST_LOGS)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-1917-        */*) b='$*';; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:1918:          *) b=`echo '$@' | sed 's/\.log$$//'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-1919-       esac;; \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-3577-	@list='$(lib_LIBRARIES)'; test -n "$(libdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:3578:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-3579-	dir='$(DESTDIR)$(libdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5130-.S.o:
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5131:@am__fastdepCCAS_TRUE@	$(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5132-@am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5138-.S.obj:
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5139:@am__fastdepCCAS_TRUE@	$(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5140:@am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5141-@am__fastdepCCAS_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5143-@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5144:@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5145-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5146-src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.o: src/common/linux/breakpad_getcontext.S
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5147:@am__fastdepCCAS_TRUE@	$(AM_V_CPPAS)$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.Tpo -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.o `test -f 'src/common/linux/breakpad_getcontext.S' || echo '$(srcdir)/'`src/common/linux/breakpad_getcontext.S
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5148-@am__fastdepCCAS_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.Tpo src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5150-@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5151:@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS@am__nodep@)$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.o `test -f 'src/common/linux/breakpad_getcontext.S' || echo '$(srcdir)/'`src/common/linux/breakpad_getcontext.S
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5152-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5153-src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.obj: src/common/linux/breakpad_getcontext.S
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5154:@am__fastdepCCAS_TRUE@	$(AM_V_CPPAS)$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.Tpo -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.obj `if test -f 'src/common/linux/breakpad_getcontext.S'; then $(CYGPATH_W) 'src/common/linux/breakpad_getcontext.S'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/breakpad_getcontext.S'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5155-@am__fastdepCCAS_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.Tpo src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5157-@AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5158:@am__fastdepCCAS_FALSE@	$(AM_V_CPPAS@am__nodep@)$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.obj `if test -f 'src/common/linux/breakpad_getcontext.S'; then $(CYGPATH_W) 'src/common/linux/breakpad_getcontext.S'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/breakpad_getcontext.S'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5159-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5160-.c.o:
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5161:@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5162-@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5168-.c.obj:
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5169:@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5170:@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5171-@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5173-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5174:@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5175-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5176-.cc.o:
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5177:@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5178-@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5184-.cc.obj:
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5185:@am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5186:@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5187-@am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5189-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5190:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5191-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5192-src/testing/googletest/src/src_testing_libtesting_a-gtest-all.o: src/testing/googletest/src/gtest-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5193:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/src_testing_libtesting_a-gtest-all.o -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest-all.Tpo -c -o src/testing/googletest/src/src_testing_libtesting_a-gtest-all.o `test -f 'src/testing/googletest/src/gtest-all.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5194-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest-all.Tpo src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest-all.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5196-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5197:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/src_testing_libtesting_a-gtest-all.o `test -f 'src/testing/googletest/src/gtest-all.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5198-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5199-src/testing/googletest/src/src_testing_libtesting_a-gtest-all.obj: src/testing/googletest/src/gtest-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5200:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/src_testing_libtesting_a-gtest-all.obj -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest-all.Tpo -c -o src/testing/googletest/src/src_testing_libtesting_a-gtest-all.obj `if test -f 'src/testing/googletest/src/gtest-all.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest-all.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5201-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest-all.Tpo src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest-all.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5203-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5204:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/src_testing_libtesting_a-gtest-all.obj `if test -f 'src/testing/googletest/src/gtest-all.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest-all.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5205-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5206-src/testing/googletest/src/src_testing_libtesting_a-gtest_main.o: src/testing/googletest/src/gtest_main.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5207:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/src_testing_libtesting_a-gtest_main.o -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest_main.Tpo -c -o src/testing/googletest/src/src_testing_libtesting_a-gtest_main.o `test -f 'src/testing/googletest/src/gtest_main.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest_main.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5208-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest_main.Tpo src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest_main.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5210-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5211:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/src_testing_libtesting_a-gtest_main.o `test -f 'src/testing/googletest/src/gtest_main.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest_main.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5212-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5213-src/testing/googletest/src/src_testing_libtesting_a-gtest_main.obj: src/testing/googletest/src/gtest_main.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5214:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/src_testing_libtesting_a-gtest_main.obj -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest_main.Tpo -c -o src/testing/googletest/src/src_testing_libtesting_a-gtest_main.obj `if test -f 'src/testing/googletest/src/gtest_main.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest_main.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5215-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest_main.Tpo src/testing/googletest/src/$(DEPDIR)/src_testing_libtesting_a-gtest_main.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5217-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5218:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/src_testing_libtesting_a-gtest_main.obj `if test -f 'src/testing/googletest/src/gtest_main.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest_main.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5219-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5220-src/testing/googlemock/src/src_testing_libtesting_a-gmock-all.o: src/testing/googlemock/src/gmock-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5221:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googlemock/src/src_testing_libtesting_a-gmock-all.o -MD -MP -MF src/testing/googlemock/src/$(DEPDIR)/src_testing_libtesting_a-gmock-all.Tpo -c -o src/testing/googlemock/src/src_testing_libtesting_a-gmock-all.o `test -f 'src/testing/googlemock/src/gmock-all.cc' || echo '$(srcdir)/'`src/testing/googlemock/src/gmock-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5222-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googlemock/src/$(DEPDIR)/src_testing_libtesting_a-gmock-all.Tpo src/testing/googlemock/src/$(DEPDIR)/src_testing_libtesting_a-gmock-all.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5224-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5225:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googlemock/src/src_testing_libtesting_a-gmock-all.o `test -f 'src/testing/googlemock/src/gmock-all.cc' || echo '$(srcdir)/'`src/testing/googlemock/src/gmock-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5226-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5227-src/testing/googlemock/src/src_testing_libtesting_a-gmock-all.obj: src/testing/googlemock/src/gmock-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5228:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googlemock/src/src_testing_libtesting_a-gmock-all.obj -MD -MP -MF src/testing/googlemock/src/$(DEPDIR)/src_testing_libtesting_a-gmock-all.Tpo -c -o src/testing/googlemock/src/src_testing_libtesting_a-gmock-all.obj `if test -f 'src/testing/googlemock/src/gmock-all.cc'; then $(CYGPATH_W) 'src/testing/googlemock/src/gmock-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googlemock/src/gmock-all.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5229-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googlemock/src/$(DEPDIR)/src_testing_libtesting_a-gmock-all.Tpo src/testing/googlemock/src/$(DEPDIR)/src_testing_libtesting_a-gmock-all.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5231-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5232:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testing_libtesting_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googlemock/src/src_testing_libtesting_a-gmock-all.obj `if test -f 'src/testing/googlemock/src/gmock-all.cc'; then $(CYGPATH_W) 'src/testing/googlemock/src/gmock-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googlemock/src/gmock-all.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5233-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5234-src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest-all.o: src/testing/googletest/src/gtest-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5235:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest-all.o -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest-all.Tpo -c -o src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest-all.o `test -f 'src/testing/googletest/src/gtest-all.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5236-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest-all.Tpo src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest-all.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5238-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5239:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest-all.o `test -f 'src/testing/googletest/src/gtest-all.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5240-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5241-src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest-all.obj: src/testing/googletest/src/gtest-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5242:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest-all.obj -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest-all.Tpo -c -o src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest-all.obj `if test -f 'src/testing/googletest/src/gtest-all.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest-all.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5243-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest-all.Tpo src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest-all.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5245-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5246:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest-all.obj `if test -f 'src/testing/googletest/src/gtest-all.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest-all.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5247-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5248-src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest_main.o: src/testing/googletest/src/gtest_main.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5249:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest_main.o -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest_main.Tpo -c -o src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest_main.o `test -f 'src/testing/googletest/src/gtest_main.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest_main.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5250-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest_main.Tpo src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest_main.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5252-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5253:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest_main.o `test -f 'src/testing/googletest/src/gtest_main.cc' || echo '$(srcdir)/'`src/testing/googletest/src/gtest_main.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5254-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5255-src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest_main.obj: src/testing/googletest/src/gtest_main.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5256:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest_main.obj -MD -MP -MF src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest_main.Tpo -c -o src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest_main.obj `if test -f 'src/testing/googletest/src/gtest_main.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest_main.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5257-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest_main.Tpo src/testing/googletest/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gtest_main.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5259-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5260:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googletest/src/src_client_linux_linux_client_unittest_shlib-gtest_main.obj `if test -f 'src/testing/googletest/src/gtest_main.cc'; then $(CYGPATH_W) 'src/testing/googletest/src/gtest_main.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googletest/src/gtest_main.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5261-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5262-src/testing/googlemock/src/src_client_linux_linux_client_unittest_shlib-gmock-all.o: src/testing/googlemock/src/gmock-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5263:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googlemock/src/src_client_linux_linux_client_unittest_shlib-gmock-all.o -MD -MP -MF src/testing/googlemock/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gmock-all.Tpo -c -o src/testing/googlemock/src/src_client_linux_linux_client_unittest_shlib-gmock-all.o `test -f 'src/testing/googlemock/src/gmock-all.cc' || echo '$(srcdir)/'`src/testing/googlemock/src/gmock-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5264-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googlemock/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gmock-all.Tpo src/testing/googlemock/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gmock-all.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5266-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5267:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googlemock/src/src_client_linux_linux_client_unittest_shlib-gmock-all.o `test -f 'src/testing/googlemock/src/gmock-all.cc' || echo '$(srcdir)/'`src/testing/googlemock/src/gmock-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5268-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5269-src/testing/googlemock/src/src_client_linux_linux_client_unittest_shlib-gmock-all.obj: src/testing/googlemock/src/gmock-all.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5270:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/testing/googlemock/src/src_client_linux_linux_client_unittest_shlib-gmock-all.obj -MD -MP -MF src/testing/googlemock/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gmock-all.Tpo -c -o src/testing/googlemock/src/src_client_linux_linux_client_unittest_shlib-gmock-all.obj `if test -f 'src/testing/googlemock/src/gmock-all.cc'; then $(CYGPATH_W) 'src/testing/googlemock/src/gmock-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googlemock/src/gmock-all.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5271-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/testing/googlemock/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gmock-all.Tpo src/testing/googlemock/src/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-gmock-all.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5273-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5274:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/testing/googlemock/src/src_client_linux_linux_client_unittest_shlib-gmock-all.obj `if test -f 'src/testing/googlemock/src/gmock-all.cc'; then $(CYGPATH_W) 'src/testing/googlemock/src/gmock-all.cc'; else $(CYGPATH_W) '$(srcdir)/src/testing/googlemock/src/gmock-all.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5275-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5276-src/client/linux/handler/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.o: src/client/linux/handler/exception_handler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5277:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/handler/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.o -MD -MP -MF src/client/linux/handler/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.Tpo -c -o src/client/linux/handler/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.o `test -f 'src/client/linux/handler/exception_handler_unittest.cc' || echo '$(srcdir)/'`src/client/linux/handler/exception_handler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5278-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/handler/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.Tpo src/client/linux/handler/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5280-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5281:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/handler/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.o `test -f 'src/client/linux/handler/exception_handler_unittest.cc' || echo '$(srcdir)/'`src/client/linux/handler/exception_handler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5282-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5283-src/client/linux/handler/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.obj: src/client/linux/handler/exception_handler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5284:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/handler/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.obj -MD -MP -MF src/client/linux/handler/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.Tpo -c -o src/client/linux/handler/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.obj `if test -f 'src/client/linux/handler/exception_handler_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/handler/exception_handler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/handler/exception_handler_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5285-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/handler/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.Tpo src/client/linux/handler/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5287-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5288:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/handler/src_client_linux_linux_client_unittest_shlib-exception_handler_unittest.obj `if test -f 'src/client/linux/handler/exception_handler_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/handler/exception_handler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/handler/exception_handler_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5289-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5290-src/client/linux/microdump_writer/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.o: src/client/linux/microdump_writer/microdump_writer_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5291:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/microdump_writer/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.o -MD -MP -MF src/client/linux/microdump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.Tpo -c -o src/client/linux/microdump_writer/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.o `test -f 'src/client/linux/microdump_writer/microdump_writer_unittest.cc' || echo '$(srcdir)/'`src/client/linux/microdump_writer/microdump_writer_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5292-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/microdump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.Tpo src/client/linux/microdump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5294-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5295:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/microdump_writer/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.o `test -f 'src/client/linux/microdump_writer/microdump_writer_unittest.cc' || echo '$(srcdir)/'`src/client/linux/microdump_writer/microdump_writer_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5296-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5297-src/client/linux/microdump_writer/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.obj: src/client/linux/microdump_writer/microdump_writer_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5298:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/microdump_writer/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.obj -MD -MP -MF src/client/linux/microdump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.Tpo -c -o src/client/linux/microdump_writer/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.obj `if test -f 'src/client/linux/microdump_writer/microdump_writer_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/microdump_writer/microdump_writer_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/microdump_writer/microdump_writer_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5299-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/microdump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.Tpo src/client/linux/microdump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5301-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5302:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/microdump_writer/src_client_linux_linux_client_unittest_shlib-microdump_writer_unittest.obj `if test -f 'src/client/linux/microdump_writer/microdump_writer_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/microdump_writer/microdump_writer_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/microdump_writer/microdump_writer_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5303-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5304-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.o: src/client/linux/minidump_writer/directory_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5305:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.o `test -f 'src/client/linux/minidump_writer/directory_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/directory_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5306-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5308-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5309:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.o `test -f 'src/client/linux/minidump_writer/directory_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/directory_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5310-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5311-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.obj: src/client/linux/minidump_writer/directory_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5312:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/directory_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/directory_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/directory_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5313-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5315-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5316:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-directory_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/directory_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/directory_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/directory_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5317-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5318-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.o: src/client/linux/minidump_writer/cpu_set_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5319:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.o `test -f 'src/client/linux/minidump_writer/cpu_set_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/cpu_set_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5320-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5322-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5323:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.o `test -f 'src/client/linux/minidump_writer/cpu_set_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/cpu_set_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5324-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5325-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.obj: src/client/linux/minidump_writer/cpu_set_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5326:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.obj `if test -f 'src/client/linux/minidump_writer/cpu_set_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/cpu_set_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/cpu_set_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5327-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5329-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5330:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-cpu_set_unittest.obj `if test -f 'src/client/linux/minidump_writer/cpu_set_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/cpu_set_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/cpu_set_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5331-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5332-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.o: src/client/linux/minidump_writer/line_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5333:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.o `test -f 'src/client/linux/minidump_writer/line_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/line_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5334-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5336-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5337:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.o `test -f 'src/client/linux/minidump_writer/line_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/line_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5338-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5339-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.obj: src/client/linux/minidump_writer/line_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5340:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/line_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/line_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/line_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5341-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5343-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5344:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-line_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/line_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/line_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/line_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5345-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5346-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.o: src/client/linux/minidump_writer/linux_core_dumper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5347:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.o `test -f 'src/client/linux/minidump_writer/linux_core_dumper.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_core_dumper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5348-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5350-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5351:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.o `test -f 'src/client/linux/minidump_writer/linux_core_dumper.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_core_dumper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5352-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5353-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.obj: src/client/linux/minidump_writer/linux_core_dumper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5354:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.obj `if test -f 'src/client/linux/minidump_writer/linux_core_dumper.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_core_dumper.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_core_dumper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5355-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5357-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5358:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper.obj `if test -f 'src/client/linux/minidump_writer/linux_core_dumper.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_core_dumper.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_core_dumper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5359-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5360-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.o: src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5361:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.o `test -f 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5362-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5364-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5365:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.o `test -f 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5366-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5367-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.obj: src/client/linux/minidump_writer/linux_core_dumper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5368:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.obj `if test -f 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5369-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5371-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5372:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_core_dumper_unittest.obj `if test -f 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_core_dumper_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5373-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5374-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.o: src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5375:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.o `test -f 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5376-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5378-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5379:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.o `test -f 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5380-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5381-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.obj: src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5382:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.obj `if test -f 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5383-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5385-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5386:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-linux_ptrace_dumper_unittest.obj `if test -f 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5387-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5388-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.o: src/client/linux/minidump_writer/minidump_writer_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5389:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.o `test -f 'src/client/linux/minidump_writer/minidump_writer_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/minidump_writer_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5390-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5392-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5393:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.o `test -f 'src/client/linux/minidump_writer/minidump_writer_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/minidump_writer_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5394-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5395-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.obj: src/client/linux/minidump_writer/minidump_writer_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5396:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.obj `if test -f 'src/client/linux/minidump_writer/minidump_writer_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/minidump_writer_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/minidump_writer_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5397-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5399-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5400:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest.obj `if test -f 'src/client/linux/minidump_writer/minidump_writer_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/minidump_writer_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/minidump_writer_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5401-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5402-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.o: src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5403:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.o `test -f 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5404-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5406-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5407:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.o `test -f 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5408-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5409-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.obj: src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5410:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.obj `if test -f 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5411-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5413-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5414:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-minidump_writer_unittest_utils.obj `if test -f 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5415-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5416-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.o: src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5417:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.o `test -f 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5418-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5420-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5421:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.o `test -f 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5422-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5423-src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.obj: src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5424:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5425-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5427-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5428:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_client_unittest_shlib-proc_cpuinfo_reader_unittest.obj `if test -f 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5429-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5430-src/common/linux/src_client_linux_linux_client_unittest_shlib-elf_core_dump.o: src/common/linux/elf_core_dump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5431:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_client_linux_linux_client_unittest_shlib-elf_core_dump.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-elf_core_dump.Tpo -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-elf_core_dump.o `test -f 'src/common/linux/elf_core_dump.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5432-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-elf_core_dump.Tpo src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-elf_core_dump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5434-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5435:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-elf_core_dump.o `test -f 'src/common/linux/elf_core_dump.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5436-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5437-src/common/linux/src_client_linux_linux_client_unittest_shlib-elf_core_dump.obj: src/common/linux/elf_core_dump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5438:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_client_linux_linux_client_unittest_shlib-elf_core_dump.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-elf_core_dump.Tpo -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-elf_core_dump.obj `if test -f 'src/common/linux/elf_core_dump.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5439-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-elf_core_dump.Tpo src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-elf_core_dump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5441-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5442:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-elf_core_dump.obj `if test -f 'src/common/linux/elf_core_dump.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5443-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5444-src/common/linux/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.o: src/common/linux/linux_libc_support_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5445:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Tpo -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.o `test -f 'src/common/linux/linux_libc_support_unittest.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5446-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Tpo src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5448-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5449:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.o `test -f 'src/common/linux/linux_libc_support_unittest.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5450-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5451-src/common/linux/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.obj: src/common/linux/linux_libc_support_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5452:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Tpo -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.obj `if test -f 'src/common/linux/linux_libc_support_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5453-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Tpo src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5455-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5456:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-linux_libc_support_unittest.obj `if test -f 'src/common/linux/linux_libc_support_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5457-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5458-src/common/linux/tests/src_client_linux_linux_client_unittest_shlib-crash_generator.o: src/common/linux/tests/crash_generator.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5459:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tests/src_client_linux_linux_client_unittest_shlib-crash_generator.o -MD -MP -MF src/common/linux/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-crash_generator.Tpo -c -o src/common/linux/tests/src_client_linux_linux_client_unittest_shlib-crash_generator.o `test -f 'src/common/linux/tests/crash_generator.cc' || echo '$(srcdir)/'`src/common/linux/tests/crash_generator.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5460-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-crash_generator.Tpo src/common/linux/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-crash_generator.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5462-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5463:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tests/src_client_linux_linux_client_unittest_shlib-crash_generator.o `test -f 'src/common/linux/tests/crash_generator.cc' || echo '$(srcdir)/'`src/common/linux/tests/crash_generator.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5464-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5465-src/common/linux/tests/src_client_linux_linux_client_unittest_shlib-crash_generator.obj: src/common/linux/tests/crash_generator.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5466:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tests/src_client_linux_linux_client_unittest_shlib-crash_generator.obj -MD -MP -MF src/common/linux/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-crash_generator.Tpo -c -o src/common/linux/tests/src_client_linux_linux_client_unittest_shlib-crash_generator.obj `if test -f 'src/common/linux/tests/crash_generator.cc'; then $(CYGPATH_W) 'src/common/linux/tests/crash_generator.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/tests/crash_generator.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5467-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-crash_generator.Tpo src/common/linux/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-crash_generator.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5469-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5470:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tests/src_client_linux_linux_client_unittest_shlib-crash_generator.obj `if test -f 'src/common/linux/tests/crash_generator.cc'; then $(CYGPATH_W) 'src/common/linux/tests/crash_generator.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/tests/crash_generator.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5471-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5472-src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.o: src/common/memory_allocator_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5473:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Tpo -c -o src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.o `test -f 'src/common/memory_allocator_unittest.cc' || echo '$(srcdir)/'`src/common/memory_allocator_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5474-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Tpo src/common/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5476-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5477:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.o `test -f 'src/common/memory_allocator_unittest.cc' || echo '$(srcdir)/'`src/common/memory_allocator_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5478-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5479-src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.obj: src/common/memory_allocator_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5480:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Tpo -c -o src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.obj `if test -f 'src/common/memory_allocator_unittest.cc'; then $(CYGPATH_W) 'src/common/memory_allocator_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/memory_allocator_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5481-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Tpo src/common/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5483-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5484:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_client_linux_linux_client_unittest_shlib-memory_allocator_unittest.obj `if test -f 'src/common/memory_allocator_unittest.cc'; then $(CYGPATH_W) 'src/common/memory_allocator_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/memory_allocator_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5485-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5486-src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.o: src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5487:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.o -MD -MP -MF src/common/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-file_utils.Tpo -c -o src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5488-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-file_utils.Tpo src/common/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-file_utils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5490-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5491:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5492-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5493-src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.obj: src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5494:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.obj -MD -MP -MF src/common/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-file_utils.Tpo -c -o src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5495-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-file_utils.Tpo src/common/tests/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-file_utils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5497-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5498:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/src_client_linux_linux_client_unittest_shlib-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5499-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5500-src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.o: src/processor/basic_code_modules.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5501:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-basic_code_modules.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.o `test -f 'src/processor/basic_code_modules.cc' || echo '$(srcdir)/'`src/processor/basic_code_modules.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5502-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-basic_code_modules.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-basic_code_modules.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5504-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5505:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.o `test -f 'src/processor/basic_code_modules.cc' || echo '$(srcdir)/'`src/processor/basic_code_modules.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5506-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5507-src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.obj: src/processor/basic_code_modules.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5508:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.obj -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-basic_code_modules.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.obj `if test -f 'src/processor/basic_code_modules.cc'; then $(CYGPATH_W) 'src/processor/basic_code_modules.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_code_modules.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5509-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-basic_code_modules.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-basic_code_modules.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5511-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5512:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-basic_code_modules.obj `if test -f 'src/processor/basic_code_modules.cc'; then $(CYGPATH_W) 'src/processor/basic_code_modules.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_code_modules.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5513-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5514-src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o: src/processor/convert_old_arm64_context.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5515:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o `test -f 'src/processor/convert_old_arm64_context.cc' || echo '$(srcdir)/'`src/processor/convert_old_arm64_context.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5516-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5518-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5519:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.o `test -f 'src/processor/convert_old_arm64_context.cc' || echo '$(srcdir)/'`src/processor/convert_old_arm64_context.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5520-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5521-src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj: src/processor/convert_old_arm64_context.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5522:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj `if test -f 'src/processor/convert_old_arm64_context.cc'; then $(CYGPATH_W) 'src/processor/convert_old_arm64_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/convert_old_arm64_context.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5523-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5525-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5526:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-convert_old_arm64_context.obj `if test -f 'src/processor/convert_old_arm64_context.cc'; then $(CYGPATH_W) 'src/processor/convert_old_arm64_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/convert_old_arm64_context.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5527-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5528-src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o: src/processor/dump_context.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5529:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o `test -f 'src/processor/dump_context.cc' || echo '$(srcdir)/'`src/processor/dump_context.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5530-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5532-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5533:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.o `test -f 'src/processor/dump_context.cc' || echo '$(srcdir)/'`src/processor/dump_context.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5534-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5535-src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.obj: src/processor/dump_context.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5536:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.obj -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.obj `if test -f 'src/processor/dump_context.cc'; then $(CYGPATH_W) 'src/processor/dump_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/dump_context.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5537-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_context.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5539-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5540:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_context.obj `if test -f 'src/processor/dump_context.cc'; then $(CYGPATH_W) 'src/processor/dump_context.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/dump_context.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5541-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5542-src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.o: src/processor/dump_object.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5543:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_object.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.o `test -f 'src/processor/dump_object.cc' || echo '$(srcdir)/'`src/processor/dump_object.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5544-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_object.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_object.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5546-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5547:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.o `test -f 'src/processor/dump_object.cc' || echo '$(srcdir)/'`src/processor/dump_object.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5548-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5549-src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.obj: src/processor/dump_object.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5550:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.obj -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_object.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.obj `if test -f 'src/processor/dump_object.cc'; then $(CYGPATH_W) 'src/processor/dump_object.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/dump_object.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5551-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_object.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-dump_object.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5553-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5554:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-dump_object.obj `if test -f 'src/processor/dump_object.cc'; then $(CYGPATH_W) 'src/processor/dump_object.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/dump_object.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5555-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5556-src/processor/src_client_linux_linux_client_unittest_shlib-logging.o: src/processor/logging.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5557:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-logging.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-logging.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-logging.o `test -f 'src/processor/logging.cc' || echo '$(srcdir)/'`src/processor/logging.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5558-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-logging.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-logging.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5560-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5561:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-logging.o `test -f 'src/processor/logging.cc' || echo '$(srcdir)/'`src/processor/logging.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5562-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5563-src/processor/src_client_linux_linux_client_unittest_shlib-logging.obj: src/processor/logging.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5564:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-logging.obj -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-logging.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-logging.obj `if test -f 'src/processor/logging.cc'; then $(CYGPATH_W) 'src/processor/logging.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/logging.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5565-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-logging.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-logging.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5567-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5568:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-logging.obj `if test -f 'src/processor/logging.cc'; then $(CYGPATH_W) 'src/processor/logging.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/logging.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5569-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5570-src/processor/src_client_linux_linux_client_unittest_shlib-minidump.o: src/processor/minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5571:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-minidump.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-minidump.o `test -f 'src/processor/minidump.cc' || echo '$(srcdir)/'`src/processor/minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5572-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5574-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5575:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-minidump.o `test -f 'src/processor/minidump.cc' || echo '$(srcdir)/'`src/processor/minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5576-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5577-src/processor/src_client_linux_linux_client_unittest_shlib-minidump.obj: src/processor/minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5578:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-minidump.obj -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-minidump.obj `if test -f 'src/processor/minidump.cc'; then $(CYGPATH_W) 'src/processor/minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5579-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-minidump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5581-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5582:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-minidump.obj `if test -f 'src/processor/minidump.cc'; then $(CYGPATH_W) 'src/processor/minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5583-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5584-src/processor/src_client_linux_linux_client_unittest_shlib-pathname_stripper.o: src/processor/pathname_stripper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5585:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-pathname_stripper.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-pathname_stripper.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-pathname_stripper.o `test -f 'src/processor/pathname_stripper.cc' || echo '$(srcdir)/'`src/processor/pathname_stripper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5586-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-pathname_stripper.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-pathname_stripper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5588-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5589:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-pathname_stripper.o `test -f 'src/processor/pathname_stripper.cc' || echo '$(srcdir)/'`src/processor/pathname_stripper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5590-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5591-src/processor/src_client_linux_linux_client_unittest_shlib-pathname_stripper.obj: src/processor/pathname_stripper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5592:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-pathname_stripper.obj -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-pathname_stripper.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-pathname_stripper.obj `if test -f 'src/processor/pathname_stripper.cc'; then $(CYGPATH_W) 'src/processor/pathname_stripper.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/pathname_stripper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5593-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-pathname_stripper.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-pathname_stripper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5595-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5596:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-pathname_stripper.obj `if test -f 'src/processor/pathname_stripper.cc'; then $(CYGPATH_W) 'src/processor/pathname_stripper.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/pathname_stripper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5597-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5598-src/processor/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.o: src/processor/proc_maps_linux.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5599:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.o -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.o `test -f 'src/processor/proc_maps_linux.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5600-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5602-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5603:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.o `test -f 'src/processor/proc_maps_linux.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5604-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5605-src/processor/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.obj: src/processor/proc_maps_linux.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5606:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.obj -MD -MP -MF src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.Tpo -c -o src/processor/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.obj `if test -f 'src/processor/proc_maps_linux.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5607-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.Tpo src/processor/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5609-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5610:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_client_linux_linux_client_unittest_shlib-proc_maps_linux.obj `if test -f 'src/processor/proc_maps_linux.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5611-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5612-src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.o: src/common/linux/breakpad_getcontext_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5613:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Tpo -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.o `test -f 'src/common/linux/breakpad_getcontext_unittest.cc' || echo '$(srcdir)/'`src/common/linux/breakpad_getcontext_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5614-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Tpo src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5616-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5617:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.o `test -f 'src/common/linux/breakpad_getcontext_unittest.cc' || echo '$(srcdir)/'`src/common/linux/breakpad_getcontext_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5618-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5619-src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.obj: src/common/linux/breakpad_getcontext_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5620:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Tpo -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.obj `if test -f 'src/common/linux/breakpad_getcontext_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/breakpad_getcontext_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/breakpad_getcontext_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5621-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Tpo src/common/linux/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5623-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5624:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_client_linux_linux_client_unittest_shlib_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.obj `if test -f 'src/common/linux/breakpad_getcontext_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/breakpad_getcontext_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/breakpad_getcontext_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5625-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5626-src/client/linux/minidump_writer/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.o: src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5627:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_client_linux_linux_dumper_unittest_helper_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.o -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.o `test -f 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5628-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5630-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5631:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_client_linux_linux_dumper_unittest_helper_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.o `test -f 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc' || echo '$(srcdir)/'`src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5632-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5633-src/client/linux/minidump_writer/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.obj: src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5634:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_client_linux_linux_dumper_unittest_helper_CXXFLAGS) $(CXXFLAGS) -MT src/client/linux/minidump_writer/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.obj -MD -MP -MF src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.Tpo -c -o src/client/linux/minidump_writer/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.obj `if test -f 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5635-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.Tpo src/client/linux/minidump_writer/$(DEPDIR)/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5637-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5638:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_client_linux_linux_dumper_unittest_helper_CXXFLAGS) $(CXXFLAGS) -c -o src/client/linux/minidump_writer/src_client_linux_linux_dumper_unittest_helper-linux_dumper_unittest_helper.obj `if test -f 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; then $(CYGPATH_W) 'src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5639-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5640-src/common/src_common_dumper_unittest-byte_cursor_unittest.o: src/common/byte_cursor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5641:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-byte_cursor_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-byte_cursor_unittest.Tpo -c -o src/common/src_common_dumper_unittest-byte_cursor_unittest.o `test -f 'src/common/byte_cursor_unittest.cc' || echo '$(srcdir)/'`src/common/byte_cursor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5642-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-byte_cursor_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-byte_cursor_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5644-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5645:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-byte_cursor_unittest.o `test -f 'src/common/byte_cursor_unittest.cc' || echo '$(srcdir)/'`src/common/byte_cursor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5646-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5647-src/common/src_common_dumper_unittest-byte_cursor_unittest.obj: src/common/byte_cursor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5648:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-byte_cursor_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-byte_cursor_unittest.Tpo -c -o src/common/src_common_dumper_unittest-byte_cursor_unittest.obj `if test -f 'src/common/byte_cursor_unittest.cc'; then $(CYGPATH_W) 'src/common/byte_cursor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/byte_cursor_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5649-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-byte_cursor_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-byte_cursor_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5651-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5652:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-byte_cursor_unittest.obj `if test -f 'src/common/byte_cursor_unittest.cc'; then $(CYGPATH_W) 'src/common/byte_cursor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/byte_cursor_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5653-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5654-src/common/src_common_dumper_unittest-convert_UTF.o: src/common/convert_UTF.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5655:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-convert_UTF.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-convert_UTF.Tpo -c -o src/common/src_common_dumper_unittest-convert_UTF.o `test -f 'src/common/convert_UTF.cc' || echo '$(srcdir)/'`src/common/convert_UTF.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5656-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-convert_UTF.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-convert_UTF.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5658-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5659:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-convert_UTF.o `test -f 'src/common/convert_UTF.cc' || echo '$(srcdir)/'`src/common/convert_UTF.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5660-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5661-src/common/src_common_dumper_unittest-convert_UTF.obj: src/common/convert_UTF.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5662:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-convert_UTF.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-convert_UTF.Tpo -c -o src/common/src_common_dumper_unittest-convert_UTF.obj `if test -f 'src/common/convert_UTF.cc'; then $(CYGPATH_W) 'src/common/convert_UTF.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/convert_UTF.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5663-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-convert_UTF.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-convert_UTF.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5665-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5666:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-convert_UTF.obj `if test -f 'src/common/convert_UTF.cc'; then $(CYGPATH_W) 'src/common/convert_UTF.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/convert_UTF.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5667-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5668-src/common/src_common_dumper_unittest-dwarf_cfi_to_module.o: src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5669:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_cfi_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5670-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5672-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5673:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5674-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5675-src/common/src_common_dumper_unittest-dwarf_cfi_to_module.obj: src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5676:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_cfi_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5677-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5679-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5680:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5681-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5682-src/common/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.o: src/common/dwarf_cfi_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5683:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.o `test -f 'src/common/dwarf_cfi_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5684-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5686-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5687:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.o `test -f 'src/common/dwarf_cfi_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5688-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5689-src/common/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.obj: src/common/dwarf_cfi_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5690:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.obj `if test -f 'src/common/dwarf_cfi_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5691-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5693-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5694:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_cfi_to_module_unittest.obj `if test -f 'src/common/dwarf_cfi_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5695-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5696-src/common/src_common_dumper_unittest-dwarf_cu_to_module.o: src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5697:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_cu_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5698-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5700-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5701:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5702-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5703-src/common/src_common_dumper_unittest-dwarf_cu_to_module.obj: src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5704:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_cu_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5705-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5707-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5708:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5709-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5710-src/common/src_common_dumper_unittest-dwarf_cu_to_module_unittest.o: src/common/dwarf_cu_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5711:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_cu_to_module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_cu_to_module_unittest.o `test -f 'src/common/dwarf_cu_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5712-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5714-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5715:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_cu_to_module_unittest.o `test -f 'src/common/dwarf_cu_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5716-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5717-src/common/src_common_dumper_unittest-dwarf_cu_to_module_unittest.obj: src/common/dwarf_cu_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5718:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_cu_to_module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_cu_to_module_unittest.obj `if test -f 'src/common/dwarf_cu_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5719-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_cu_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5721-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5722:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_cu_to_module_unittest.obj `if test -f 'src/common/dwarf_cu_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5723-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5724-src/common/src_common_dumper_unittest-dwarf_line_to_module.o: src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5725:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_line_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5726-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5728-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5729:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5730-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5731-src/common/src_common_dumper_unittest-dwarf_line_to_module.obj: src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5732:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_line_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5733-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5735-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5736:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5737-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5738-src/common/src_common_dumper_unittest-dwarf_line_to_module_unittest.o: src/common/dwarf_line_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5739:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_line_to_module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_line_to_module_unittest.o `test -f 'src/common/dwarf_line_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5740-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5742-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5743:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_line_to_module_unittest.o `test -f 'src/common/dwarf_line_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5744-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5745-src/common/src_common_dumper_unittest-dwarf_line_to_module_unittest.obj: src/common/dwarf_line_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5746:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_line_to_module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_line_to_module_unittest.obj `if test -f 'src/common/dwarf_line_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5747-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_line_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5749-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5750:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_line_to_module_unittest.obj `if test -f 'src/common/dwarf_line_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5751-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5752-src/common/src_common_dumper_unittest-dwarf_range_list_handler.o: src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5753:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_range_list_handler.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_range_list_handler.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5754-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_range_list_handler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5756-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5757:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5758-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5759-src/common/src_common_dumper_unittest-dwarf_range_list_handler.obj: src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5760:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-dwarf_range_list_handler.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_range_list_handler.Tpo -c -o src/common/src_common_dumper_unittest-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5761-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-dwarf_range_list_handler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5763-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5764:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5765-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5766-src/common/src_common_dumper_unittest-language.o: src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5767:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-language.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-language.Tpo -c -o src/common/src_common_dumper_unittest-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5768-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-language.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-language.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5770-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5771:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5772-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5773-src/common/src_common_dumper_unittest-language.obj: src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5774:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-language.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-language.Tpo -c -o src/common/src_common_dumper_unittest-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5775-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-language.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-language.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5777-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5778:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5779-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5780-src/common/src_common_dumper_unittest-memory_range_unittest.o: src/common/memory_range_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5781:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-memory_range_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-memory_range_unittest.Tpo -c -o src/common/src_common_dumper_unittest-memory_range_unittest.o `test -f 'src/common/memory_range_unittest.cc' || echo '$(srcdir)/'`src/common/memory_range_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5782-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-memory_range_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-memory_range_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5784-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5785:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-memory_range_unittest.o `test -f 'src/common/memory_range_unittest.cc' || echo '$(srcdir)/'`src/common/memory_range_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5786-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5787-src/common/src_common_dumper_unittest-memory_range_unittest.obj: src/common/memory_range_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5788:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-memory_range_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-memory_range_unittest.Tpo -c -o src/common/src_common_dumper_unittest-memory_range_unittest.obj `if test -f 'src/common/memory_range_unittest.cc'; then $(CYGPATH_W) 'src/common/memory_range_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/memory_range_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5789-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-memory_range_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-memory_range_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5791-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5792:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-memory_range_unittest.obj `if test -f 'src/common/memory_range_unittest.cc'; then $(CYGPATH_W) 'src/common/memory_range_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/memory_range_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5793-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5794-src/common/src_common_dumper_unittest-module.o: src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5795:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-module.Tpo -c -o src/common/src_common_dumper_unittest-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5796-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5798-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5799:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5800-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5801-src/common/src_common_dumper_unittest-module.obj: src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5802:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-module.Tpo -c -o src/common/src_common_dumper_unittest-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5803-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5805-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5806:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5807-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5808-src/common/src_common_dumper_unittest-module_unittest.o: src/common/module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5809:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-module_unittest.o `test -f 'src/common/module_unittest.cc' || echo '$(srcdir)/'`src/common/module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5810-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5812-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5813:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-module_unittest.o `test -f 'src/common/module_unittest.cc' || echo '$(srcdir)/'`src/common/module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5814-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5815-src/common/src_common_dumper_unittest-module_unittest.obj: src/common/module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5816:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-module_unittest.obj `if test -f 'src/common/module_unittest.cc'; then $(CYGPATH_W) 'src/common/module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5817-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5819-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5820:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-module_unittest.obj `if test -f 'src/common/module_unittest.cc'; then $(CYGPATH_W) 'src/common/module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5821-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5822-src/common/src_common_dumper_unittest-path_helper.o: src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5823:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-path_helper.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-path_helper.Tpo -c -o src/common/src_common_dumper_unittest-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5824-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-path_helper.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-path_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5826-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5827:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5828-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5829-src/common/src_common_dumper_unittest-path_helper.obj: src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5830:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-path_helper.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-path_helper.Tpo -c -o src/common/src_common_dumper_unittest-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5831-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-path_helper.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-path_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5833-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5834:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5835-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5836-src/common/src_common_dumper_unittest-stabs_reader.o: src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5837:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-stabs_reader.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader.Tpo -c -o src/common/src_common_dumper_unittest-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5838-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5840-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5841:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5842-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5843-src/common/src_common_dumper_unittest-stabs_reader.obj: src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5844:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-stabs_reader.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader.Tpo -c -o src/common/src_common_dumper_unittest-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5845-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5847-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5848:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5849-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5850-src/common/src_common_dumper_unittest-stabs_reader_unittest.o: src/common/stabs_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5851:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-stabs_reader_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader_unittest.Tpo -c -o src/common/src_common_dumper_unittest-stabs_reader_unittest.o `test -f 'src/common/stabs_reader_unittest.cc' || echo '$(srcdir)/'`src/common/stabs_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5852-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5854-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5855:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-stabs_reader_unittest.o `test -f 'src/common/stabs_reader_unittest.cc' || echo '$(srcdir)/'`src/common/stabs_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5856-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5857-src/common/src_common_dumper_unittest-stabs_reader_unittest.obj: src/common/stabs_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5858:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-stabs_reader_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader_unittest.Tpo -c -o src/common/src_common_dumper_unittest-stabs_reader_unittest.obj `if test -f 'src/common/stabs_reader_unittest.cc'; then $(CYGPATH_W) 'src/common/stabs_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5859-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5861-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5862:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-stabs_reader_unittest.obj `if test -f 'src/common/stabs_reader_unittest.cc'; then $(CYGPATH_W) 'src/common/stabs_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5863-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5864-src/common/src_common_dumper_unittest-stabs_to_module.o: src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5865:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-stabs_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module.Tpo -c -o src/common/src_common_dumper_unittest-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5866-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5868-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5869:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5870-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5871-src/common/src_common_dumper_unittest-stabs_to_module.obj: src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5872:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-stabs_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module.Tpo -c -o src/common/src_common_dumper_unittest-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5873-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5875-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5876:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5877-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5878-src/common/src_common_dumper_unittest-stabs_to_module_unittest.o: src/common/stabs_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5879:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-stabs_to_module_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-stabs_to_module_unittest.o `test -f 'src/common/stabs_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/stabs_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5880-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5882-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5883:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-stabs_to_module_unittest.o `test -f 'src/common/stabs_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/stabs_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5884-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5885-src/common/src_common_dumper_unittest-stabs_to_module_unittest.obj: src/common/stabs_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5886:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-stabs_to_module_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module_unittest.Tpo -c -o src/common/src_common_dumper_unittest-stabs_to_module_unittest.obj `if test -f 'src/common/stabs_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5887-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5889-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5890:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-stabs_to_module_unittest.obj `if test -f 'src/common/stabs_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5891-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5892-src/common/src_common_dumper_unittest-string_conversion.o: src/common/string_conversion.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5893:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-string_conversion.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion.Tpo -c -o src/common/src_common_dumper_unittest-string_conversion.o `test -f 'src/common/string_conversion.cc' || echo '$(srcdir)/'`src/common/string_conversion.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5894-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5896-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5897:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-string_conversion.o `test -f 'src/common/string_conversion.cc' || echo '$(srcdir)/'`src/common/string_conversion.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5898-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5899-src/common/src_common_dumper_unittest-string_conversion.obj: src/common/string_conversion.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5900:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-string_conversion.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion.Tpo -c -o src/common/src_common_dumper_unittest-string_conversion.obj `if test -f 'src/common/string_conversion.cc'; then $(CYGPATH_W) 'src/common/string_conversion.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/string_conversion.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5901-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5903-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5904:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-string_conversion.obj `if test -f 'src/common/string_conversion.cc'; then $(CYGPATH_W) 'src/common/string_conversion.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/string_conversion.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5905-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5906-src/common/src_common_dumper_unittest-string_conversion_unittest.o: src/common/string_conversion_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5907:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-string_conversion_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion_unittest.Tpo -c -o src/common/src_common_dumper_unittest-string_conversion_unittest.o `test -f 'src/common/string_conversion_unittest.cc' || echo '$(srcdir)/'`src/common/string_conversion_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5908-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5910-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5911:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-string_conversion_unittest.o `test -f 'src/common/string_conversion_unittest.cc' || echo '$(srcdir)/'`src/common/string_conversion_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5912-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5913-src/common/src_common_dumper_unittest-string_conversion_unittest.obj: src/common/string_conversion_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5914:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-string_conversion_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion_unittest.Tpo -c -o src/common/src_common_dumper_unittest-string_conversion_unittest.obj `if test -f 'src/common/string_conversion_unittest.cc'; then $(CYGPATH_W) 'src/common/string_conversion_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/string_conversion_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5915-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion_unittest.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-string_conversion_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5917-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5918:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-string_conversion_unittest.obj `if test -f 'src/common/string_conversion_unittest.cc'; then $(CYGPATH_W) 'src/common/string_conversion_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/string_conversion_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5919-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5920-src/common/src_common_dumper_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5921:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Tpo -c -o src/common/src_common_dumper_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5922-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5924-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5925:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5926-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5927-src/common/src_common_dumper_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5928:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Tpo -c -o src/common/src_common_dumper_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5929-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5931-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5932:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5933-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5934-src/common/dwarf/src_common_dumper_unittest-bytereader.o: src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5935:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-bytereader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5936-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5938-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5939:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5940-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5941-src/common/dwarf/src_common_dumper_unittest-bytereader.obj: src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5942:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-bytereader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5943-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5945-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5946:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5947-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5948-src/common/dwarf/src_common_dumper_unittest-bytereader_unittest.o: src/common/dwarf/bytereader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5949:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-bytereader_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader_unittest.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-bytereader_unittest.o `test -f 'src/common/dwarf/bytereader_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5950-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader_unittest.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5952-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5953:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-bytereader_unittest.o `test -f 'src/common/dwarf/bytereader_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5954-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5955-src/common/dwarf/src_common_dumper_unittest-bytereader_unittest.obj: src/common/dwarf/bytereader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5956:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-bytereader_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader_unittest.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-bytereader_unittest.obj `if test -f 'src/common/dwarf/bytereader_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5957-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader_unittest.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5959-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5960:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-bytereader_unittest.obj `if test -f 'src/common/dwarf/bytereader_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5961-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5962-src/common/dwarf/src_common_dumper_unittest-cfi_assembler.o: src/common/dwarf/cfi_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5963:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-cfi_assembler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-cfi_assembler.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-cfi_assembler.o `test -f 'src/common/dwarf/cfi_assembler.cc' || echo '$(srcdir)/'`src/common/dwarf/cfi_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5964-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-cfi_assembler.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-cfi_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5966-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5967:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-cfi_assembler.o `test -f 'src/common/dwarf/cfi_assembler.cc' || echo '$(srcdir)/'`src/common/dwarf/cfi_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5968-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5969-src/common/dwarf/src_common_dumper_unittest-cfi_assembler.obj: src/common/dwarf/cfi_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5970:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-cfi_assembler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-cfi_assembler.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-cfi_assembler.obj `if test -f 'src/common/dwarf/cfi_assembler.cc'; then $(CYGPATH_W) 'src/common/dwarf/cfi_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/cfi_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5971-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-cfi_assembler.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-cfi_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5973-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5974:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-cfi_assembler.obj `if test -f 'src/common/dwarf/cfi_assembler.cc'; then $(CYGPATH_W) 'src/common/dwarf/cfi_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/cfi_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5975-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5976-src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler.o: src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5977:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5978-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5980-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5981:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5982-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5983-src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler.obj: src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5984:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5985-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5987-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5988:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5989-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5990-src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler_unittest.o: src/common/dwarf/dwarf2diehandler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5991:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler_unittest.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler_unittest.o `test -f 'src/common/dwarf/dwarf2diehandler_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5992-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler_unittest.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5994-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5995:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler_unittest.o `test -f 'src/common/dwarf/dwarf2diehandler_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5996-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5997-src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler_unittest.obj: src/common/dwarf/dwarf2diehandler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:5998:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler_unittest.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler_unittest.obj `if test -f 'src/common/dwarf/dwarf2diehandler_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-5999-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler_unittest.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2diehandler_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6001-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6002:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler_unittest.obj `if test -f 'src/common/dwarf/dwarf2diehandler_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6003-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6004-src/common/dwarf/src_common_dumper_unittest-dwarf2reader.o: src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6005:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6006-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6008-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6009:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6010-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6011-src/common/dwarf/src_common_dumper_unittest-dwarf2reader.obj: src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6012:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6013-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6015-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6016:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6017-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6018-src/common/dwarf/src_common_dumper_unittest-elf_reader.o: src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6019:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-elf_reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-elf_reader.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6020-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-elf_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6022-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6023:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6024-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6025-src/common/dwarf/src_common_dumper_unittest-elf_reader.obj: src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6026:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-elf_reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-elf_reader.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6027-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-elf_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6029-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6030:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6031-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6032-src/common/dwarf/src_common_dumper_unittest-dwarf2reader_cfi_unittest.o: src/common/dwarf/dwarf2reader_cfi_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6033:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2reader_cfi_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_cfi_unittest.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader_cfi_unittest.o `test -f 'src/common/dwarf/dwarf2reader_cfi_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_cfi_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6034-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_cfi_unittest.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_cfi_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6036-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6037:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader_cfi_unittest.o `test -f 'src/common/dwarf/dwarf2reader_cfi_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_cfi_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6038-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6039-src/common/dwarf/src_common_dumper_unittest-dwarf2reader_cfi_unittest.obj: src/common/dwarf/dwarf2reader_cfi_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6040:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2reader_cfi_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_cfi_unittest.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader_cfi_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_cfi_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_cfi_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_cfi_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6041-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_cfi_unittest.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_cfi_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6043-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6044:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader_cfi_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_cfi_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_cfi_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_cfi_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6045-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6046-src/common/dwarf/src_common_dumper_unittest-dwarf2reader_die_unittest.o: src/common/dwarf/dwarf2reader_die_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6047:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2reader_die_unittest.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_die_unittest.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader_die_unittest.o `test -f 'src/common/dwarf/dwarf2reader_die_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_die_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6048-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_die_unittest.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_die_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6050-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6051:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader_die_unittest.o `test -f 'src/common/dwarf/dwarf2reader_die_unittest.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader_die_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6052-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6053-src/common/dwarf/src_common_dumper_unittest-dwarf2reader_die_unittest.obj: src/common/dwarf/dwarf2reader_die_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6054:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_dumper_unittest-dwarf2reader_die_unittest.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_die_unittest.Tpo -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader_die_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_die_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_die_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_die_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6055-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_die_unittest.Tpo src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-dwarf2reader_die_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6057-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6058:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_dumper_unittest-dwarf2reader_die_unittest.obj `if test -f 'src/common/dwarf/dwarf2reader_die_unittest.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader_die_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader_die_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6059-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6060-src/common/linux/src_common_dumper_unittest-crc32.o: src/common/linux/crc32.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6061:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-crc32.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-crc32.Tpo -c -o src/common/linux/src_common_dumper_unittest-crc32.o `test -f 'src/common/linux/crc32.cc' || echo '$(srcdir)/'`src/common/linux/crc32.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6062-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-crc32.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-crc32.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6064-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6065:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-crc32.o `test -f 'src/common/linux/crc32.cc' || echo '$(srcdir)/'`src/common/linux/crc32.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6066-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6067-src/common/linux/src_common_dumper_unittest-crc32.obj: src/common/linux/crc32.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6068:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-crc32.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-crc32.Tpo -c -o src/common/linux/src_common_dumper_unittest-crc32.obj `if test -f 'src/common/linux/crc32.cc'; then $(CYGPATH_W) 'src/common/linux/crc32.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/crc32.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6069-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-crc32.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-crc32.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6071-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6072:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-crc32.obj `if test -f 'src/common/linux/crc32.cc'; then $(CYGPATH_W) 'src/common/linux/crc32.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/crc32.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6073-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6074-src/common/linux/src_common_dumper_unittest-dump_symbols.o: src/common/linux/dump_symbols.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6075:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-dump_symbols.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols.Tpo -c -o src/common/linux/src_common_dumper_unittest-dump_symbols.o `test -f 'src/common/linux/dump_symbols.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6076-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6078-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6079:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-dump_symbols.o `test -f 'src/common/linux/dump_symbols.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6080-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6081-src/common/linux/src_common_dumper_unittest-dump_symbols.obj: src/common/linux/dump_symbols.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6082:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-dump_symbols.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols.Tpo -c -o src/common/linux/src_common_dumper_unittest-dump_symbols.obj `if test -f 'src/common/linux/dump_symbols.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6083-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6085-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6086:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-dump_symbols.obj `if test -f 'src/common/linux/dump_symbols.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6087-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6088-src/common/linux/src_common_dumper_unittest-dump_symbols_unittest.o: src/common/linux/dump_symbols_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6089:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-dump_symbols_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-dump_symbols_unittest.o `test -f 'src/common/linux/dump_symbols_unittest.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6090-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6092-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6093:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-dump_symbols_unittest.o `test -f 'src/common/linux/dump_symbols_unittest.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6094-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6095-src/common/linux/src_common_dumper_unittest-dump_symbols_unittest.obj: src/common/linux/dump_symbols_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6096:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-dump_symbols_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-dump_symbols_unittest.obj `if test -f 'src/common/linux/dump_symbols_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6097-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-dump_symbols_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6099-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6100:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-dump_symbols_unittest.obj `if test -f 'src/common/linux/dump_symbols_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6101-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6102-src/common/linux/src_common_dumper_unittest-elf_core_dump.o: src/common/linux/elf_core_dump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6103:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elf_core_dump.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump.Tpo -c -o src/common/linux/src_common_dumper_unittest-elf_core_dump.o `test -f 'src/common/linux/elf_core_dump.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6104-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6106-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6107:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elf_core_dump.o `test -f 'src/common/linux/elf_core_dump.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6108-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6109-src/common/linux/src_common_dumper_unittest-elf_core_dump.obj: src/common/linux/elf_core_dump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6110:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elf_core_dump.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump.Tpo -c -o src/common/linux/src_common_dumper_unittest-elf_core_dump.obj `if test -f 'src/common/linux/elf_core_dump.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6111-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6113-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6114:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elf_core_dump.obj `if test -f 'src/common/linux/elf_core_dump.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6115-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6116-src/common/linux/src_common_dumper_unittest-elf_core_dump_unittest.o: src/common/linux/elf_core_dump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6117:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elf_core_dump_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-elf_core_dump_unittest.o `test -f 'src/common/linux/elf_core_dump_unittest.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6118-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6120-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6121:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elf_core_dump_unittest.o `test -f 'src/common/linux/elf_core_dump_unittest.cc' || echo '$(srcdir)/'`src/common/linux/elf_core_dump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6122-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6123-src/common/linux/src_common_dumper_unittest-elf_core_dump_unittest.obj: src/common/linux/elf_core_dump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6124:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elf_core_dump_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-elf_core_dump_unittest.obj `if test -f 'src/common/linux/elf_core_dump_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6125-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_core_dump_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6127-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6128:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elf_core_dump_unittest.obj `if test -f 'src/common/linux/elf_core_dump_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/elf_core_dump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_core_dump_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6129-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6130-src/common/linux/src_common_dumper_unittest-elf_symbols_to_module.o: src/common/linux/elf_symbols_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6131:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elf_symbols_to_module.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module.Tpo -c -o src/common/linux/src_common_dumper_unittest-elf_symbols_to_module.o `test -f 'src/common/linux/elf_symbols_to_module.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6132-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6134-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6135:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elf_symbols_to_module.o `test -f 'src/common/linux/elf_symbols_to_module.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6136-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6137-src/common/linux/src_common_dumper_unittest-elf_symbols_to_module.obj: src/common/linux/elf_symbols_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6138:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elf_symbols_to_module.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module.Tpo -c -o src/common/linux/src_common_dumper_unittest-elf_symbols_to_module.obj `if test -f 'src/common/linux/elf_symbols_to_module.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6139-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6141-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6142:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elf_symbols_to_module.obj `if test -f 'src/common/linux/elf_symbols_to_module.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6143-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6144-src/common/linux/src_common_dumper_unittest-elf_symbols_to_module_unittest.o: src/common/linux/elf_symbols_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6145:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elf_symbols_to_module_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-elf_symbols_to_module_unittest.o `test -f 'src/common/linux/elf_symbols_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6146-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6148-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6149:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elf_symbols_to_module_unittest.o `test -f 'src/common/linux/elf_symbols_to_module_unittest.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6150-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6151-src/common/linux/src_common_dumper_unittest-elf_symbols_to_module_unittest.obj: src/common/linux/elf_symbols_to_module_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6152:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elf_symbols_to_module_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-elf_symbols_to_module_unittest.obj `if test -f 'src/common/linux/elf_symbols_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6153-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elf_symbols_to_module_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6155-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6156:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elf_symbols_to_module_unittest.obj `if test -f 'src/common/linux/elf_symbols_to_module_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6157-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6158-src/common/linux/src_common_dumper_unittest-elfutils.o: src/common/linux/elfutils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6159:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elfutils.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elfutils.Tpo -c -o src/common/linux/src_common_dumper_unittest-elfutils.o `test -f 'src/common/linux/elfutils.cc' || echo '$(srcdir)/'`src/common/linux/elfutils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6160-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elfutils.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elfutils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6162-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6163:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elfutils.o `test -f 'src/common/linux/elfutils.cc' || echo '$(srcdir)/'`src/common/linux/elfutils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6164-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6165-src/common/linux/src_common_dumper_unittest-elfutils.obj: src/common/linux/elfutils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6166:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-elfutils.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elfutils.Tpo -c -o src/common/linux/src_common_dumper_unittest-elfutils.obj `if test -f 'src/common/linux/elfutils.cc'; then $(CYGPATH_W) 'src/common/linux/elfutils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elfutils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6167-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elfutils.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-elfutils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6169-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6170:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-elfutils.obj `if test -f 'src/common/linux/elfutils.cc'; then $(CYGPATH_W) 'src/common/linux/elfutils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elfutils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6171-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6172-src/common/linux/src_common_dumper_unittest-file_id.o: src/common/linux/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6173:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-file_id.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id.Tpo -c -o src/common/linux/src_common_dumper_unittest-file_id.o `test -f 'src/common/linux/file_id.cc' || echo '$(srcdir)/'`src/common/linux/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6174-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6176-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6177:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-file_id.o `test -f 'src/common/linux/file_id.cc' || echo '$(srcdir)/'`src/common/linux/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6178-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6179-src/common/linux/src_common_dumper_unittest-file_id.obj: src/common/linux/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6180:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-file_id.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id.Tpo -c -o src/common/linux/src_common_dumper_unittest-file_id.obj `if test -f 'src/common/linux/file_id.cc'; then $(CYGPATH_W) 'src/common/linux/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6181-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6183-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6184:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-file_id.obj `if test -f 'src/common/linux/file_id.cc'; then $(CYGPATH_W) 'src/common/linux/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6185-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6186-src/common/linux/src_common_dumper_unittest-file_id_unittest.o: src/common/linux/file_id_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6187:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-file_id_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-file_id_unittest.o `test -f 'src/common/linux/file_id_unittest.cc' || echo '$(srcdir)/'`src/common/linux/file_id_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6188-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6190-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6191:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-file_id_unittest.o `test -f 'src/common/linux/file_id_unittest.cc' || echo '$(srcdir)/'`src/common/linux/file_id_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6192-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6193-src/common/linux/src_common_dumper_unittest-file_id_unittest.obj: src/common/linux/file_id_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6194:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-file_id_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-file_id_unittest.obj `if test -f 'src/common/linux/file_id_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/file_id_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6195-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-file_id_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6197-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6198:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-file_id_unittest.obj `if test -f 'src/common/linux/file_id_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/file_id_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6199-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6200-src/common/linux/src_common_dumper_unittest-linux_libc_support.o: src/common/linux/linux_libc_support.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6201:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-linux_libc_support.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-linux_libc_support.Tpo -c -o src/common/linux/src_common_dumper_unittest-linux_libc_support.o `test -f 'src/common/linux/linux_libc_support.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6202-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-linux_libc_support.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-linux_libc_support.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6204-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6205:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-linux_libc_support.o `test -f 'src/common/linux/linux_libc_support.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6206-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6207-src/common/linux/src_common_dumper_unittest-linux_libc_support.obj: src/common/linux/linux_libc_support.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6208:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-linux_libc_support.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-linux_libc_support.Tpo -c -o src/common/linux/src_common_dumper_unittest-linux_libc_support.obj `if test -f 'src/common/linux/linux_libc_support.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6209-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-linux_libc_support.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-linux_libc_support.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6211-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6212:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-linux_libc_support.obj `if test -f 'src/common/linux/linux_libc_support.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6213-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6214-src/common/linux/src_common_dumper_unittest-memory_mapped_file.o: src/common/linux/memory_mapped_file.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6215:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-memory_mapped_file.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file.Tpo -c -o src/common/linux/src_common_dumper_unittest-memory_mapped_file.o `test -f 'src/common/linux/memory_mapped_file.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6216-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6218-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6219:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-memory_mapped_file.o `test -f 'src/common/linux/memory_mapped_file.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6220-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6221-src/common/linux/src_common_dumper_unittest-memory_mapped_file.obj: src/common/linux/memory_mapped_file.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6222:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-memory_mapped_file.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file.Tpo -c -o src/common/linux/src_common_dumper_unittest-memory_mapped_file.obj `if test -f 'src/common/linux/memory_mapped_file.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6223-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6225-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6226:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-memory_mapped_file.obj `if test -f 'src/common/linux/memory_mapped_file.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6227-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6228-src/common/linux/src_common_dumper_unittest-memory_mapped_file_unittest.o: src/common/linux/memory_mapped_file_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6229:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-memory_mapped_file_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-memory_mapped_file_unittest.o `test -f 'src/common/linux/memory_mapped_file_unittest.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6230-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6232-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6233:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-memory_mapped_file_unittest.o `test -f 'src/common/linux/memory_mapped_file_unittest.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6234-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6235-src/common/linux/src_common_dumper_unittest-memory_mapped_file_unittest.obj: src/common/linux/memory_mapped_file_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6236:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-memory_mapped_file_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-memory_mapped_file_unittest.obj `if test -f 'src/common/linux/memory_mapped_file_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6237-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-memory_mapped_file_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6239-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6240:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-memory_mapped_file_unittest.obj `if test -f 'src/common/linux/memory_mapped_file_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6241-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6242-src/common/linux/src_common_dumper_unittest-safe_readlink.o: src/common/linux/safe_readlink.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6243:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-safe_readlink.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink.Tpo -c -o src/common/linux/src_common_dumper_unittest-safe_readlink.o `test -f 'src/common/linux/safe_readlink.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6244-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6246-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6247:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-safe_readlink.o `test -f 'src/common/linux/safe_readlink.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6248-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6249-src/common/linux/src_common_dumper_unittest-safe_readlink.obj: src/common/linux/safe_readlink.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6250:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-safe_readlink.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink.Tpo -c -o src/common/linux/src_common_dumper_unittest-safe_readlink.obj `if test -f 'src/common/linux/safe_readlink.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6251-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6253-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6254:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-safe_readlink.obj `if test -f 'src/common/linux/safe_readlink.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6255-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6256-src/common/linux/src_common_dumper_unittest-safe_readlink_unittest.o: src/common/linux/safe_readlink_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6257:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-safe_readlink_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-safe_readlink_unittest.o `test -f 'src/common/linux/safe_readlink_unittest.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6258-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6260-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6261:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-safe_readlink_unittest.o `test -f 'src/common/linux/safe_readlink_unittest.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6262-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6263-src/common/linux/src_common_dumper_unittest-safe_readlink_unittest.obj: src/common/linux/safe_readlink_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6264:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-safe_readlink_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-safe_readlink_unittest.obj `if test -f 'src/common/linux/safe_readlink_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6265-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-safe_readlink_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6267-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6268:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-safe_readlink_unittest.obj `if test -f 'src/common/linux/safe_readlink_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6269-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6270-src/common/linux/src_common_dumper_unittest-synth_elf.o: src/common/linux/synth_elf.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6271:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-synth_elf.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf.Tpo -c -o src/common/linux/src_common_dumper_unittest-synth_elf.o `test -f 'src/common/linux/synth_elf.cc' || echo '$(srcdir)/'`src/common/linux/synth_elf.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6272-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6274-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6275:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-synth_elf.o `test -f 'src/common/linux/synth_elf.cc' || echo '$(srcdir)/'`src/common/linux/synth_elf.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6276-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6277-src/common/linux/src_common_dumper_unittest-synth_elf.obj: src/common/linux/synth_elf.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6278:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-synth_elf.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf.Tpo -c -o src/common/linux/src_common_dumper_unittest-synth_elf.obj `if test -f 'src/common/linux/synth_elf.cc'; then $(CYGPATH_W) 'src/common/linux/synth_elf.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/synth_elf.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6279-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6281-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6282:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-synth_elf.obj `if test -f 'src/common/linux/synth_elf.cc'; then $(CYGPATH_W) 'src/common/linux/synth_elf.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/synth_elf.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6283-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6284-src/common/linux/src_common_dumper_unittest-synth_elf_unittest.o: src/common/linux/synth_elf_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6285:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-synth_elf_unittest.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-synth_elf_unittest.o `test -f 'src/common/linux/synth_elf_unittest.cc' || echo '$(srcdir)/'`src/common/linux/synth_elf_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6286-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6288-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6289:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-synth_elf_unittest.o `test -f 'src/common/linux/synth_elf_unittest.cc' || echo '$(srcdir)/'`src/common/linux/synth_elf_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6290-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6291-src/common/linux/src_common_dumper_unittest-synth_elf_unittest.obj: src/common/linux/synth_elf_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6292:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_dumper_unittest-synth_elf_unittest.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf_unittest.Tpo -c -o src/common/linux/src_common_dumper_unittest-synth_elf_unittest.obj `if test -f 'src/common/linux/synth_elf_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/synth_elf_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/synth_elf_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6293-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf_unittest.Tpo src/common/linux/$(DEPDIR)/src_common_dumper_unittest-synth_elf_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6295-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6296:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_dumper_unittest-synth_elf_unittest.obj `if test -f 'src/common/linux/synth_elf_unittest.cc'; then $(CYGPATH_W) 'src/common/linux/synth_elf_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/synth_elf_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6297-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6298-src/common/linux/tests/src_common_dumper_unittest-crash_generator.o: src/common/linux/tests/crash_generator.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6299:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tests/src_common_dumper_unittest-crash_generator.o -MD -MP -MF src/common/linux/tests/$(DEPDIR)/src_common_dumper_unittest-crash_generator.Tpo -c -o src/common/linux/tests/src_common_dumper_unittest-crash_generator.o `test -f 'src/common/linux/tests/crash_generator.cc' || echo '$(srcdir)/'`src/common/linux/tests/crash_generator.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6300-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/tests/$(DEPDIR)/src_common_dumper_unittest-crash_generator.Tpo src/common/linux/tests/$(DEPDIR)/src_common_dumper_unittest-crash_generator.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6302-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6303:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tests/src_common_dumper_unittest-crash_generator.o `test -f 'src/common/linux/tests/crash_generator.cc' || echo '$(srcdir)/'`src/common/linux/tests/crash_generator.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6304-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6305-src/common/linux/tests/src_common_dumper_unittest-crash_generator.obj: src/common/linux/tests/crash_generator.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6306:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/tests/src_common_dumper_unittest-crash_generator.obj -MD -MP -MF src/common/linux/tests/$(DEPDIR)/src_common_dumper_unittest-crash_generator.Tpo -c -o src/common/linux/tests/src_common_dumper_unittest-crash_generator.obj `if test -f 'src/common/linux/tests/crash_generator.cc'; then $(CYGPATH_W) 'src/common/linux/tests/crash_generator.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/tests/crash_generator.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6307-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/tests/$(DEPDIR)/src_common_dumper_unittest-crash_generator.Tpo src/common/linux/tests/$(DEPDIR)/src_common_dumper_unittest-crash_generator.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6309-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6310:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/tests/src_common_dumper_unittest-crash_generator.obj `if test -f 'src/common/linux/tests/crash_generator.cc'; then $(CYGPATH_W) 'src/common/linux/tests/crash_generator.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/tests/crash_generator.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6311-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6312-src/common/tests/src_common_dumper_unittest-file_utils.o: src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6313:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/src_common_dumper_unittest-file_utils.o -MD -MP -MF src/common/tests/$(DEPDIR)/src_common_dumper_unittest-file_utils.Tpo -c -o src/common/tests/src_common_dumper_unittest-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6314-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/src_common_dumper_unittest-file_utils.Tpo src/common/tests/$(DEPDIR)/src_common_dumper_unittest-file_utils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6316-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6317:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/src_common_dumper_unittest-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6318-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6319-src/common/tests/src_common_dumper_unittest-file_utils.obj: src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6320:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/src_common_dumper_unittest-file_utils.obj -MD -MP -MF src/common/tests/$(DEPDIR)/src_common_dumper_unittest-file_utils.Tpo -c -o src/common/tests/src_common_dumper_unittest-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6321-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/src_common_dumper_unittest-file_utils.Tpo src/common/tests/$(DEPDIR)/src_common_dumper_unittest-file_utils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6323-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6324:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/src_common_dumper_unittest-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6325-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6326-src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.o: src/common/linux/google_crashdump_uploader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6327:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.Tpo -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.o `test -f 'src/common/linux/google_crashdump_uploader.cc' || echo '$(srcdir)/'`src/common/linux/google_crashdump_uploader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6328-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.Tpo src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6330-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6331:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.o `test -f 'src/common/linux/google_crashdump_uploader.cc' || echo '$(srcdir)/'`src/common/linux/google_crashdump_uploader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6332-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6333-src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.obj: src/common/linux/google_crashdump_uploader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6334:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.Tpo -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.obj `if test -f 'src/common/linux/google_crashdump_uploader.cc'; then $(CYGPATH_W) 'src/common/linux/google_crashdump_uploader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/google_crashdump_uploader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6335-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.Tpo src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6337-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6338:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader.obj `if test -f 'src/common/linux/google_crashdump_uploader.cc'; then $(CYGPATH_W) 'src/common/linux/google_crashdump_uploader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/google_crashdump_uploader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6339-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6340-src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.o: src/common/linux/google_crashdump_uploader_test.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6341:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.Tpo -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.o `test -f 'src/common/linux/google_crashdump_uploader_test.cc' || echo '$(srcdir)/'`src/common/linux/google_crashdump_uploader_test.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6342-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.Tpo src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6344-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6345:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.o `test -f 'src/common/linux/google_crashdump_uploader_test.cc' || echo '$(srcdir)/'`src/common/linux/google_crashdump_uploader_test.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6346-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6347-src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.obj: src/common/linux/google_crashdump_uploader_test.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6348:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.Tpo -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.obj `if test -f 'src/common/linux/google_crashdump_uploader_test.cc'; then $(CYGPATH_W) 'src/common/linux/google_crashdump_uploader_test.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/google_crashdump_uploader_test.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6349-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.Tpo src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6351-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6352:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-google_crashdump_uploader_test.obj `if test -f 'src/common/linux/google_crashdump_uploader_test.cc'; then $(CYGPATH_W) 'src/common/linux/google_crashdump_uploader_test.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/google_crashdump_uploader_test.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6353-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6354-src/common/linux/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.o: src/common/linux/libcurl_wrapper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6355:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.Tpo -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.o `test -f 'src/common/linux/libcurl_wrapper.cc' || echo '$(srcdir)/'`src/common/linux/libcurl_wrapper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6356-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.Tpo src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6358-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6359:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.o `test -f 'src/common/linux/libcurl_wrapper.cc' || echo '$(srcdir)/'`src/common/linux/libcurl_wrapper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6360-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6361-src/common/linux/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.obj: src/common/linux/libcurl_wrapper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6362:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.Tpo -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.obj `if test -f 'src/common/linux/libcurl_wrapper.cc'; then $(CYGPATH_W) 'src/common/linux/libcurl_wrapper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/libcurl_wrapper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6363-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.Tpo src/common/linux/$(DEPDIR)/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6365-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6366:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_linux_google_crashdump_uploader_test_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_common_linux_google_crashdump_uploader_test-libcurl_wrapper.obj `if test -f 'src/common/linux/libcurl_wrapper.cc'; then $(CYGPATH_W) 'src/common/linux/libcurl_wrapper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/libcurl_wrapper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6367-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6368-src/common/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.o: src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6369:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6370-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6372-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6373:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6374-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6375-src/common/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.obj: src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6376:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6377-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6379-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6380:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6381-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6382-src/common/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.o: src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6383:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6384-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6386-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6387:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6388-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6389-src/common/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.obj: src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6390:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6391-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6393-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6394:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6395-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6396-src/common/src_common_mac_macho_reader_unittest-dwarf_line_to_module.o: src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6397:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-dwarf_line_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_line_to_module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6398-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_line_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6400-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6401:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6402-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6403-src/common/src_common_mac_macho_reader_unittest-dwarf_line_to_module.obj: src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6404:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-dwarf_line_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_line_to_module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6405-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf_line_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6407-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6408:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6409-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6410-src/common/src_common_mac_macho_reader_unittest-language.o: src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6411:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-language.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-language.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6412-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-language.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-language.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6414-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6415:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6416-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6417-src/common/src_common_mac_macho_reader_unittest-language.obj: src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6418:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-language.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-language.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6419-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-language.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-language.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6421-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6422:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6423-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6424-src/common/src_common_mac_macho_reader_unittest-md5.o: src/common/md5.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6425:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-md5.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-md5.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-md5.o `test -f 'src/common/md5.cc' || echo '$(srcdir)/'`src/common/md5.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6426-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-md5.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-md5.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6428-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6429:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-md5.o `test -f 'src/common/md5.cc' || echo '$(srcdir)/'`src/common/md5.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6430-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6431-src/common/src_common_mac_macho_reader_unittest-md5.obj: src/common/md5.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6432:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-md5.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-md5.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-md5.obj `if test -f 'src/common/md5.cc'; then $(CYGPATH_W) 'src/common/md5.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/md5.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6433-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-md5.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-md5.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6435-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6436:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-md5.obj `if test -f 'src/common/md5.cc'; then $(CYGPATH_W) 'src/common/md5.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/md5.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6437-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6438-src/common/src_common_mac_macho_reader_unittest-module.o: src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6439:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6440-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6442-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6443:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6444-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6445-src/common/src_common_mac_macho_reader_unittest-module.obj: src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6446:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6447-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6449-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6450:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6451-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6452-src/common/src_common_mac_macho_reader_unittest-path_helper.o: src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6453:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-path_helper.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-path_helper.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6454-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-path_helper.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-path_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6456-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6457:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6458-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6459-src/common/src_common_mac_macho_reader_unittest-path_helper.obj: src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6460:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-path_helper.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-path_helper.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6461-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-path_helper.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-path_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6463-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6464:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6465-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6466-src/common/src_common_mac_macho_reader_unittest-stabs_reader.o: src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6467:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-stabs_reader.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_reader.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6468-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_reader.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6470-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6471:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6472-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6473-src/common/src_common_mac_macho_reader_unittest-stabs_reader.obj: src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6474:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-stabs_reader.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_reader.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6475-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_reader.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6477-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6478:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6479-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6480-src/common/src_common_mac_macho_reader_unittest-stabs_to_module.o: src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6481:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-stabs_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_to_module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6482-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_to_module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6484-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6485:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6486-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6487-src/common/src_common_mac_macho_reader_unittest-stabs_to_module.obj: src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6488:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-stabs_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_to_module.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6489-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_to_module.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-stabs_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6491-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6492:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6493-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6494-src/common/src_common_mac_macho_reader_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6495:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-test_assembler.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6496-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6498-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6499:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6500-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6501-src/common/src_common_mac_macho_reader_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6502:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_mac_macho_reader_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-test_assembler.Tpo -c -o src/common/src_common_mac_macho_reader_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6503-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_common_mac_macho_reader_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6505-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6506:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_mac_macho_reader_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6507-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6508-src/common/dwarf/src_common_mac_macho_reader_unittest-bytereader.o: src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6509:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-bytereader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-bytereader.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6510-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-bytereader.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-bytereader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6512-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6513:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6514-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6515-src/common/dwarf/src_common_mac_macho_reader_unittest-bytereader.obj: src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6516:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-bytereader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-bytereader.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6517-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-bytereader.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-bytereader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6519-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6520:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6521-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6522-src/common/dwarf/src_common_mac_macho_reader_unittest-cfi_assembler.o: src/common/dwarf/cfi_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6523:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-cfi_assembler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-cfi_assembler.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-cfi_assembler.o `test -f 'src/common/dwarf/cfi_assembler.cc' || echo '$(srcdir)/'`src/common/dwarf/cfi_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6524-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-cfi_assembler.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-cfi_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6526-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6527:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-cfi_assembler.o `test -f 'src/common/dwarf/cfi_assembler.cc' || echo '$(srcdir)/'`src/common/dwarf/cfi_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6528-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6529-src/common/dwarf/src_common_mac_macho_reader_unittest-cfi_assembler.obj: src/common/dwarf/cfi_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6530:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-cfi_assembler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-cfi_assembler.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-cfi_assembler.obj `if test -f 'src/common/dwarf/cfi_assembler.cc'; then $(CYGPATH_W) 'src/common/dwarf/cfi_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/cfi_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6531-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-cfi_assembler.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-cfi_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6533-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6534:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-cfi_assembler.obj `if test -f 'src/common/dwarf/cfi_assembler.cc'; then $(CYGPATH_W) 'src/common/dwarf/cfi_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/cfi_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6535-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6536-src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2diehandler.o: src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6537:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2diehandler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2diehandler.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6538-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2diehandler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6540-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6541:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6542-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6543-src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2diehandler.obj: src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6544:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2diehandler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2diehandler.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6545-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2diehandler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6547-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6548:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6549-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6550-src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2reader.o: src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6551:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2reader.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6552-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6554-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6555:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6556-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6557-src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2reader.obj: src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6558:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2reader.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6559-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-dwarf2reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6561-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6562:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6563-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6564-src/common/dwarf/src_common_mac_macho_reader_unittest-elf_reader.o: src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6565:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-elf_reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-elf_reader.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6566-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-elf_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6568-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6569:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6570-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6571-src/common/dwarf/src_common_mac_macho_reader_unittest-elf_reader.obj: src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6572:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_common_mac_macho_reader_unittest-elf_reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-elf_reader.Tpo -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6573-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/src_common_mac_macho_reader_unittest-elf_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6575-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6576:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_common_mac_macho_reader_unittest-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6577-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6578-src/common/mac/src_common_mac_macho_reader_unittest-arch_utilities.o: src/common/mac/arch_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6579:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-arch_utilities.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-arch_utilities.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-arch_utilities.o `test -f 'src/common/mac/arch_utilities.cc' || echo '$(srcdir)/'`src/common/mac/arch_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6580-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-arch_utilities.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-arch_utilities.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6582-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6583:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-arch_utilities.o `test -f 'src/common/mac/arch_utilities.cc' || echo '$(srcdir)/'`src/common/mac/arch_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6584-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6585-src/common/mac/src_common_mac_macho_reader_unittest-arch_utilities.obj: src/common/mac/arch_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6586:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-arch_utilities.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-arch_utilities.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-arch_utilities.obj `if test -f 'src/common/mac/arch_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/arch_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/arch_utilities.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6587-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-arch_utilities.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-arch_utilities.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6589-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6590:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-arch_utilities.obj `if test -f 'src/common/mac/arch_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/arch_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/arch_utilities.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6591-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6592-src/common/mac/src_common_mac_macho_reader_unittest-file_id.o: src/common/mac/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6593:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-file_id.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_id.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-file_id.o `test -f 'src/common/mac/file_id.cc' || echo '$(srcdir)/'`src/common/mac/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6594-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_id.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6596-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6597:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-file_id.o `test -f 'src/common/mac/file_id.cc' || echo '$(srcdir)/'`src/common/mac/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6598-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6599-src/common/mac/src_common_mac_macho_reader_unittest-file_id.obj: src/common/mac/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6600:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-file_id.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_id.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-file_id.obj `if test -f 'src/common/mac/file_id.cc'; then $(CYGPATH_W) 'src/common/mac/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/file_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6601-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_id.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6603-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6604:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-file_id.obj `if test -f 'src/common/mac/file_id.cc'; then $(CYGPATH_W) 'src/common/mac/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/file_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6605-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6606-src/common/mac/src_common_mac_macho_reader_unittest-macho_id.o: src/common/mac/macho_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6607:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_id.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_id.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_id.o `test -f 'src/common/mac/macho_id.cc' || echo '$(srcdir)/'`src/common/mac/macho_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6608-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_id.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6610-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6611:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_id.o `test -f 'src/common/mac/macho_id.cc' || echo '$(srcdir)/'`src/common/mac/macho_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6612-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6613-src/common/mac/src_common_mac_macho_reader_unittest-macho_id.obj: src/common/mac/macho_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6614:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_id.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_id.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_id.obj `if test -f 'src/common/mac/macho_id.cc'; then $(CYGPATH_W) 'src/common/mac/macho_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6615-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_id.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6617-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6618:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_id.obj `if test -f 'src/common/mac/macho_id.cc'; then $(CYGPATH_W) 'src/common/mac/macho_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6619-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6620-src/common/mac/src_common_mac_macho_reader_unittest-macho_reader.o: src/common/mac/macho_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6621:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_reader.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_reader.o `test -f 'src/common/mac/macho_reader.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6622-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6624-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6625:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_reader.o `test -f 'src/common/mac/macho_reader.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6626-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6627-src/common/mac/src_common_mac_macho_reader_unittest-macho_reader.obj: src/common/mac/macho_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6628:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_reader.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_reader.obj `if test -f 'src/common/mac/macho_reader.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6629-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6631-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6632:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_reader.obj `if test -f 'src/common/mac/macho_reader.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6633-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6634-src/common/mac/src_common_mac_macho_reader_unittest-macho_reader_unittest.o: src/common/mac/macho_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6635:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_reader_unittest.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader_unittest.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_reader_unittest.o `test -f 'src/common/mac/macho_reader_unittest.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6636-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader_unittest.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6638-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6639:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_reader_unittest.o `test -f 'src/common/mac/macho_reader_unittest.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6640-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6641-src/common/mac/src_common_mac_macho_reader_unittest-macho_reader_unittest.obj: src/common/mac/macho_reader_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6642:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_reader_unittest.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader_unittest.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_reader_unittest.obj `if test -f 'src/common/mac/macho_reader_unittest.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6643-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader_unittest.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_reader_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6645-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6646:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_reader_unittest.obj `if test -f 'src/common/mac/macho_reader_unittest.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6647-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6648-src/common/mac/src_common_mac_macho_reader_unittest-macho_utilities.o: src/common/mac/macho_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6649:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_utilities.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_utilities.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_utilities.o `test -f 'src/common/mac/macho_utilities.cc' || echo '$(srcdir)/'`src/common/mac/macho_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6650-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_utilities.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_utilities.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6652-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6653:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_utilities.o `test -f 'src/common/mac/macho_utilities.cc' || echo '$(srcdir)/'`src/common/mac/macho_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6654-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6655-src/common/mac/src_common_mac_macho_reader_unittest-macho_utilities.obj: src/common/mac/macho_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6656:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_utilities.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_utilities.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_utilities.obj `if test -f 'src/common/mac/macho_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/macho_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_utilities.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6657-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_utilities.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_utilities.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6659-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6660:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_utilities.obj `if test -f 'src/common/mac/macho_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/macho_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_utilities.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6661-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6662-src/common/mac/src_common_mac_macho_reader_unittest-macho_walker.o: src/common/mac/macho_walker.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6663:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_walker.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_walker.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_walker.o `test -f 'src/common/mac/macho_walker.cc' || echo '$(srcdir)/'`src/common/mac/macho_walker.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6664-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_walker.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_walker.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6666-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6667:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_walker.o `test -f 'src/common/mac/macho_walker.cc' || echo '$(srcdir)/'`src/common/mac/macho_walker.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6668-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6669-src/common/mac/src_common_mac_macho_reader_unittest-macho_walker.obj: src/common/mac/macho_walker.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6670:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_common_mac_macho_reader_unittest-macho_walker.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_walker.Tpo -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_walker.obj `if test -f 'src/common/mac/macho_walker.cc'; then $(CYGPATH_W) 'src/common/mac/macho_walker.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_walker.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6671-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_walker.Tpo src/common/mac/$(DEPDIR)/src_common_mac_macho_reader_unittest-macho_walker.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6673-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6674:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_common_mac_macho_reader_unittest-macho_walker.obj `if test -f 'src/common/mac/macho_walker.cc'; then $(CYGPATH_W) 'src/common/mac/macho_walker.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_walker.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6675-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6676-src/common/tests/src_common_mac_macho_reader_unittest-file_utils.o: src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6677:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/src_common_mac_macho_reader_unittest-file_utils.o -MD -MP -MF src/common/tests/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_utils.Tpo -c -o src/common/tests/src_common_mac_macho_reader_unittest-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6678-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_utils.Tpo src/common/tests/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_utils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6680-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6681:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/src_common_mac_macho_reader_unittest-file_utils.o `test -f 'src/common/tests/file_utils.cc' || echo '$(srcdir)/'`src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6682-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6683-src/common/tests/src_common_mac_macho_reader_unittest-file_utils.obj: src/common/tests/file_utils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6684:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/tests/src_common_mac_macho_reader_unittest-file_utils.obj -MD -MP -MF src/common/tests/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_utils.Tpo -c -o src/common/tests/src_common_mac_macho_reader_unittest-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6685-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/tests/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_utils.Tpo src/common/tests/$(DEPDIR)/src_common_mac_macho_reader_unittest-file_utils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6687-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6688:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_mac_macho_reader_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/tests/src_common_mac_macho_reader_unittest-file_utils.obj `if test -f 'src/common/tests/file_utils.cc'; then $(CYGPATH_W) 'src/common/tests/file_utils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/tests/file_utils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6689-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6690-src/common/src_common_test_assembler_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6691:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_test_assembler_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler.Tpo -c -o src/common/src_common_test_assembler_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6692-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6694-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6695:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_test_assembler_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6696-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6697-src/common/src_common_test_assembler_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6698:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_test_assembler_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler.Tpo -c -o src/common/src_common_test_assembler_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6699-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6701-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6702:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_test_assembler_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6703-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6704-src/common/src_common_test_assembler_unittest-test_assembler_unittest.o: src/common/test_assembler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6705:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_test_assembler_unittest-test_assembler_unittest.o -MD -MP -MF src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler_unittest.Tpo -c -o src/common/src_common_test_assembler_unittest-test_assembler_unittest.o `test -f 'src/common/test_assembler_unittest.cc' || echo '$(srcdir)/'`src/common/test_assembler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6706-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler_unittest.Tpo src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6708-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6709:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_test_assembler_unittest-test_assembler_unittest.o `test -f 'src/common/test_assembler_unittest.cc' || echo '$(srcdir)/'`src/common/test_assembler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6710-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6711-src/common/src_common_test_assembler_unittest-test_assembler_unittest.obj: src/common/test_assembler_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6712:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_test_assembler_unittest-test_assembler_unittest.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler_unittest.Tpo -c -o src/common/src_common_test_assembler_unittest-test_assembler_unittest.obj `if test -f 'src/common/test_assembler_unittest.cc'; then $(CYGPATH_W) 'src/common/test_assembler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6713-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler_unittest.Tpo src/common/$(DEPDIR)/src_common_test_assembler_unittest-test_assembler_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6715-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6716:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_test_assembler_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_test_assembler_unittest-test_assembler_unittest.obj `if test -f 'src/common/test_assembler_unittest.cc'; then $(CYGPATH_W) 'src/common/test_assembler_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6717-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6718-src/processor/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.o: src/processor/basic_source_line_resolver_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6719:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_basic_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Tpo -c -o src/processor/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.o `test -f 'src/processor/basic_source_line_resolver_unittest.cc' || echo '$(srcdir)/'`src/processor/basic_source_line_resolver_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6720-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Tpo src/processor/$(DEPDIR)/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6722-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6723:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_basic_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.o `test -f 'src/processor/basic_source_line_resolver_unittest.cc' || echo '$(srcdir)/'`src/processor/basic_source_line_resolver_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6724-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6725-src/processor/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.obj: src/processor/basic_source_line_resolver_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6726:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_basic_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Tpo -c -o src/processor/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.obj `if test -f 'src/processor/basic_source_line_resolver_unittest.cc'; then $(CYGPATH_W) 'src/processor/basic_source_line_resolver_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_source_line_resolver_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6727-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Tpo src/processor/$(DEPDIR)/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6729-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6730:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_basic_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.obj `if test -f 'src/processor/basic_source_line_resolver_unittest.cc'; then $(CYGPATH_W) 'src/processor/basic_source_line_resolver_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/basic_source_line_resolver_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6731-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6732-src/processor/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.o: src/processor/cfi_frame_info_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6733:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_cfi_frame_info_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.Tpo -c -o src/processor/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.o `test -f 'src/processor/cfi_frame_info_unittest.cc' || echo '$(srcdir)/'`src/processor/cfi_frame_info_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6734-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.Tpo src/processor/$(DEPDIR)/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6736-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6737:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_cfi_frame_info_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.o `test -f 'src/processor/cfi_frame_info_unittest.cc' || echo '$(srcdir)/'`src/processor/cfi_frame_info_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6738-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6739-src/processor/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.obj: src/processor/cfi_frame_info_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6740:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_cfi_frame_info_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.Tpo -c -o src/processor/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.obj `if test -f 'src/processor/cfi_frame_info_unittest.cc'; then $(CYGPATH_W) 'src/processor/cfi_frame_info_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/cfi_frame_info_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6741-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.Tpo src/processor/$(DEPDIR)/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6743-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6744:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_cfi_frame_info_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.obj `if test -f 'src/processor/cfi_frame_info_unittest.cc'; then $(CYGPATH_W) 'src/processor/cfi_frame_info_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/cfi_frame_info_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6745-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6746-src/processor/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.o: src/processor/disassembler_x86_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6747:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_disassembler_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.Tpo -c -o src/processor/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.o `test -f 'src/processor/disassembler_x86_unittest.cc' || echo '$(srcdir)/'`src/processor/disassembler_x86_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6748-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.Tpo src/processor/$(DEPDIR)/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6750-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6751:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_disassembler_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.o `test -f 'src/processor/disassembler_x86_unittest.cc' || echo '$(srcdir)/'`src/processor/disassembler_x86_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6752-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6753-src/processor/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.obj: src/processor/disassembler_x86_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6754:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_disassembler_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.Tpo -c -o src/processor/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.obj `if test -f 'src/processor/disassembler_x86_unittest.cc'; then $(CYGPATH_W) 'src/processor/disassembler_x86_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/disassembler_x86_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6755-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.Tpo src/processor/$(DEPDIR)/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6757-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6758:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_disassembler_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_disassembler_x86_unittest-disassembler_x86_unittest.obj `if test -f 'src/processor/disassembler_x86_unittest.cc'; then $(CYGPATH_W) 'src/processor/disassembler_x86_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/disassembler_x86_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6759-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6760-src/processor/src_processor_exploitability_unittest-exploitability_unittest.o: src/processor/exploitability_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6761:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_exploitability_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_exploitability_unittest-exploitability_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_exploitability_unittest-exploitability_unittest.Tpo -c -o src/processor/src_processor_exploitability_unittest-exploitability_unittest.o `test -f 'src/processor/exploitability_unittest.cc' || echo '$(srcdir)/'`src/processor/exploitability_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6762-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_exploitability_unittest-exploitability_unittest.Tpo src/processor/$(DEPDIR)/src_processor_exploitability_unittest-exploitability_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6764-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6765:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_exploitability_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_exploitability_unittest-exploitability_unittest.o `test -f 'src/processor/exploitability_unittest.cc' || echo '$(srcdir)/'`src/processor/exploitability_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6766-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6767-src/processor/src_processor_exploitability_unittest-exploitability_unittest.obj: src/processor/exploitability_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6768:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_exploitability_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_exploitability_unittest-exploitability_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_exploitability_unittest-exploitability_unittest.Tpo -c -o src/processor/src_processor_exploitability_unittest-exploitability_unittest.obj `if test -f 'src/processor/exploitability_unittest.cc'; then $(CYGPATH_W) 'src/processor/exploitability_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/exploitability_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6769-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_exploitability_unittest-exploitability_unittest.Tpo src/processor/$(DEPDIR)/src_processor_exploitability_unittest-exploitability_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6771-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6772:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_exploitability_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_exploitability_unittest-exploitability_unittest.obj `if test -f 'src/processor/exploitability_unittest.cc'; then $(CYGPATH_W) 'src/processor/exploitability_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/exploitability_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6773-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6774-src/processor/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.o: src/processor/fast_source_line_resolver_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6775:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_fast_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Tpo -c -o src/processor/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.o `test -f 'src/processor/fast_source_line_resolver_unittest.cc' || echo '$(srcdir)/'`src/processor/fast_source_line_resolver_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6776-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Tpo src/processor/$(DEPDIR)/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6778-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6779:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_fast_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.o `test -f 'src/processor/fast_source_line_resolver_unittest.cc' || echo '$(srcdir)/'`src/processor/fast_source_line_resolver_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6780-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6781-src/processor/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.obj: src/processor/fast_source_line_resolver_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6782:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_fast_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Tpo -c -o src/processor/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.obj `if test -f 'src/processor/fast_source_line_resolver_unittest.cc'; then $(CYGPATH_W) 'src/processor/fast_source_line_resolver_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/fast_source_line_resolver_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6783-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Tpo src/processor/$(DEPDIR)/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6785-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6786:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_fast_source_line_resolver_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.obj `if test -f 'src/processor/fast_source_line_resolver_unittest.cc'; then $(CYGPATH_W) 'src/processor/fast_source_line_resolver_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/fast_source_line_resolver_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6787-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6788-src/processor/src_processor_map_serializers_unittest-map_serializers_unittest.o: src/processor/map_serializers_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6789:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_map_serializers_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_map_serializers_unittest-map_serializers_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_map_serializers_unittest-map_serializers_unittest.Tpo -c -o src/processor/src_processor_map_serializers_unittest-map_serializers_unittest.o `test -f 'src/processor/map_serializers_unittest.cc' || echo '$(srcdir)/'`src/processor/map_serializers_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6790-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_map_serializers_unittest-map_serializers_unittest.Tpo src/processor/$(DEPDIR)/src_processor_map_serializers_unittest-map_serializers_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6792-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6793:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_map_serializers_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_map_serializers_unittest-map_serializers_unittest.o `test -f 'src/processor/map_serializers_unittest.cc' || echo '$(srcdir)/'`src/processor/map_serializers_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6794-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6795-src/processor/src_processor_map_serializers_unittest-map_serializers_unittest.obj: src/processor/map_serializers_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6796:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_map_serializers_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_map_serializers_unittest-map_serializers_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_map_serializers_unittest-map_serializers_unittest.Tpo -c -o src/processor/src_processor_map_serializers_unittest-map_serializers_unittest.obj `if test -f 'src/processor/map_serializers_unittest.cc'; then $(CYGPATH_W) 'src/processor/map_serializers_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/map_serializers_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6797-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_map_serializers_unittest-map_serializers_unittest.Tpo src/processor/$(DEPDIR)/src_processor_map_serializers_unittest-map_serializers_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6799-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6800:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_map_serializers_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_map_serializers_unittest-map_serializers_unittest.obj `if test -f 'src/processor/map_serializers_unittest.cc'; then $(CYGPATH_W) 'src/processor/map_serializers_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/map_serializers_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6801-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6802-src/processor/src_processor_microdump_processor_unittest-microdump_processor_unittest.o: src/processor/microdump_processor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6803:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_microdump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_microdump_processor_unittest-microdump_processor_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_microdump_processor_unittest-microdump_processor_unittest.Tpo -c -o src/processor/src_processor_microdump_processor_unittest-microdump_processor_unittest.o `test -f 'src/processor/microdump_processor_unittest.cc' || echo '$(srcdir)/'`src/processor/microdump_processor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6804-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_microdump_processor_unittest-microdump_processor_unittest.Tpo src/processor/$(DEPDIR)/src_processor_microdump_processor_unittest-microdump_processor_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6806-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6807:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_microdump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_microdump_processor_unittest-microdump_processor_unittest.o `test -f 'src/processor/microdump_processor_unittest.cc' || echo '$(srcdir)/'`src/processor/microdump_processor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6808-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6809-src/processor/src_processor_microdump_processor_unittest-microdump_processor_unittest.obj: src/processor/microdump_processor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6810:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_microdump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_microdump_processor_unittest-microdump_processor_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_microdump_processor_unittest-microdump_processor_unittest.Tpo -c -o src/processor/src_processor_microdump_processor_unittest-microdump_processor_unittest.obj `if test -f 'src/processor/microdump_processor_unittest.cc'; then $(CYGPATH_W) 'src/processor/microdump_processor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/microdump_processor_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6811-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_microdump_processor_unittest-microdump_processor_unittest.Tpo src/processor/$(DEPDIR)/src_processor_microdump_processor_unittest-microdump_processor_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6813-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6814:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_microdump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_microdump_processor_unittest-microdump_processor_unittest.obj `if test -f 'src/processor/microdump_processor_unittest.cc'; then $(CYGPATH_W) 'src/processor/microdump_processor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/microdump_processor_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6815-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6816-src/processor/src_processor_minidump_processor_unittest-minidump_processor_unittest.o: src/processor/minidump_processor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6817:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_minidump_processor_unittest-minidump_processor_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_minidump_processor_unittest-minidump_processor_unittest.Tpo -c -o src/processor/src_processor_minidump_processor_unittest-minidump_processor_unittest.o `test -f 'src/processor/minidump_processor_unittest.cc' || echo '$(srcdir)/'`src/processor/minidump_processor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6818-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_minidump_processor_unittest-minidump_processor_unittest.Tpo src/processor/$(DEPDIR)/src_processor_minidump_processor_unittest-minidump_processor_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6820-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6821:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_minidump_processor_unittest-minidump_processor_unittest.o `test -f 'src/processor/minidump_processor_unittest.cc' || echo '$(srcdir)/'`src/processor/minidump_processor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6822-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6823-src/processor/src_processor_minidump_processor_unittest-minidump_processor_unittest.obj: src/processor/minidump_processor_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6824:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_minidump_processor_unittest-minidump_processor_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_minidump_processor_unittest-minidump_processor_unittest.Tpo -c -o src/processor/src_processor_minidump_processor_unittest-minidump_processor_unittest.obj `if test -f 'src/processor/minidump_processor_unittest.cc'; then $(CYGPATH_W) 'src/processor/minidump_processor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump_processor_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6825-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_minidump_processor_unittest-minidump_processor_unittest.Tpo src/processor/$(DEPDIR)/src_processor_minidump_processor_unittest-minidump_processor_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6827-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6828:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_processor_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_minidump_processor_unittest-minidump_processor_unittest.obj `if test -f 'src/processor/minidump_processor_unittest.cc'; then $(CYGPATH_W) 'src/processor/minidump_processor_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump_processor_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6829-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6830-src/common/src_processor_minidump_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6831:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_minidump_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_processor_minidump_unittest-test_assembler.Tpo -c -o src/common/src_processor_minidump_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6832-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_minidump_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_minidump_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6834-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6835:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_minidump_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6836-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6837-src/common/src_processor_minidump_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6838:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_minidump_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_processor_minidump_unittest-test_assembler.Tpo -c -o src/common/src_processor_minidump_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6839-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_minidump_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_minidump_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6841-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6842:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_minidump_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6843-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6844-src/processor/src_processor_minidump_unittest-minidump_unittest.o: src/processor/minidump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6845:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_minidump_unittest-minidump_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_minidump_unittest-minidump_unittest.Tpo -c -o src/processor/src_processor_minidump_unittest-minidump_unittest.o `test -f 'src/processor/minidump_unittest.cc' || echo '$(srcdir)/'`src/processor/minidump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6846-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_minidump_unittest-minidump_unittest.Tpo src/processor/$(DEPDIR)/src_processor_minidump_unittest-minidump_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6848-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6849:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_minidump_unittest-minidump_unittest.o `test -f 'src/processor/minidump_unittest.cc' || echo '$(srcdir)/'`src/processor/minidump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6850-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6851-src/processor/src_processor_minidump_unittest-minidump_unittest.obj: src/processor/minidump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6852:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_minidump_unittest-minidump_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_minidump_unittest-minidump_unittest.Tpo -c -o src/processor/src_processor_minidump_unittest-minidump_unittest.obj `if test -f 'src/processor/minidump_unittest.cc'; then $(CYGPATH_W) 'src/processor/minidump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6853-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_minidump_unittest-minidump_unittest.Tpo src/processor/$(DEPDIR)/src_processor_minidump_unittest-minidump_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6855-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6856:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_minidump_unittest-minidump_unittest.obj `if test -f 'src/processor/minidump_unittest.cc'; then $(CYGPATH_W) 'src/processor/minidump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/minidump_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6857-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6858-src/processor/src_processor_minidump_unittest-synth_minidump.o: src/processor/synth_minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6859:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_minidump_unittest-synth_minidump.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_minidump_unittest-synth_minidump.Tpo -c -o src/processor/src_processor_minidump_unittest-synth_minidump.o `test -f 'src/processor/synth_minidump.cc' || echo '$(srcdir)/'`src/processor/synth_minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6860-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_minidump_unittest-synth_minidump.Tpo src/processor/$(DEPDIR)/src_processor_minidump_unittest-synth_minidump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6862-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6863:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_minidump_unittest-synth_minidump.o `test -f 'src/processor/synth_minidump.cc' || echo '$(srcdir)/'`src/processor/synth_minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6864-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6865-src/processor/src_processor_minidump_unittest-synth_minidump.obj: src/processor/synth_minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6866:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_minidump_unittest-synth_minidump.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_minidump_unittest-synth_minidump.Tpo -c -o src/processor/src_processor_minidump_unittest-synth_minidump.obj `if test -f 'src/processor/synth_minidump.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6867-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_minidump_unittest-synth_minidump.Tpo src/processor/$(DEPDIR)/src_processor_minidump_unittest-synth_minidump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6869-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6870:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_minidump_unittest-synth_minidump.obj `if test -f 'src/processor/synth_minidump.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6871-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6872-src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux.o: src/processor/proc_maps_linux.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6873:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux.Tpo -c -o src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux.o `test -f 'src/processor/proc_maps_linux.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6874-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux.Tpo src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6876-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6877:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux.o `test -f 'src/processor/proc_maps_linux.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6878-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6879-src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux.obj: src/processor/proc_maps_linux.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6880:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux.Tpo -c -o src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux.obj `if test -f 'src/processor/proc_maps_linux.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6881-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux.Tpo src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6883-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6884:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux.obj `if test -f 'src/processor/proc_maps_linux.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6885-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6886-src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.o: src/processor/proc_maps_linux_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6887:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.Tpo -c -o src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.o `test -f 'src/processor/proc_maps_linux_unittest.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6888-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.Tpo src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6890-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6891:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.o `test -f 'src/processor/proc_maps_linux_unittest.cc' || echo '$(srcdir)/'`src/processor/proc_maps_linux_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6892-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6893-src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.obj: src/processor/proc_maps_linux_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6894:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.Tpo -c -o src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.obj `if test -f 'src/processor/proc_maps_linux_unittest.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6895-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.Tpo src/processor/$(DEPDIR)/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6897-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6898:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_proc_maps_linux_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_proc_maps_linux_unittest-proc_maps_linux_unittest.obj `if test -f 'src/processor/proc_maps_linux_unittest.cc'; then $(CYGPATH_W) 'src/processor/proc_maps_linux_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/proc_maps_linux_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6899-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6900-src/processor/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.o: src/processor/range_map_truncate_lower_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6901:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_lower_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Tpo -c -o src/processor/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.o `test -f 'src/processor/range_map_truncate_lower_unittest.cc' || echo '$(srcdir)/'`src/processor/range_map_truncate_lower_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6902-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Tpo src/processor/$(DEPDIR)/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6904-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6905:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_lower_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.o `test -f 'src/processor/range_map_truncate_lower_unittest.cc' || echo '$(srcdir)/'`src/processor/range_map_truncate_lower_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6906-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6907-src/processor/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.obj: src/processor/range_map_truncate_lower_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6908:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_lower_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Tpo -c -o src/processor/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.obj `if test -f 'src/processor/range_map_truncate_lower_unittest.cc'; then $(CYGPATH_W) 'src/processor/range_map_truncate_lower_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/range_map_truncate_lower_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6909-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Tpo src/processor/$(DEPDIR)/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6911-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6912:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_lower_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_range_map_truncate_lower_unittest-range_map_truncate_lower_unittest.obj `if test -f 'src/processor/range_map_truncate_lower_unittest.cc'; then $(CYGPATH_W) 'src/processor/range_map_truncate_lower_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/range_map_truncate_lower_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6913-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6914-src/processor/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.o: src/processor/range_map_truncate_upper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6915:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_upper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Tpo -c -o src/processor/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.o `test -f 'src/processor/range_map_truncate_upper_unittest.cc' || echo '$(srcdir)/'`src/processor/range_map_truncate_upper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6916-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Tpo src/processor/$(DEPDIR)/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6918-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6919:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_upper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.o `test -f 'src/processor/range_map_truncate_upper_unittest.cc' || echo '$(srcdir)/'`src/processor/range_map_truncate_upper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6920-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6921-src/processor/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.obj: src/processor/range_map_truncate_upper_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6922:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_upper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Tpo -c -o src/processor/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.obj `if test -f 'src/processor/range_map_truncate_upper_unittest.cc'; then $(CYGPATH_W) 'src/processor/range_map_truncate_upper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/range_map_truncate_upper_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6923-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Tpo src/processor/$(DEPDIR)/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6925-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6926:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_range_map_truncate_upper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_range_map_truncate_upper_unittest-range_map_truncate_upper_unittest.obj `if test -f 'src/processor/range_map_truncate_upper_unittest.cc'; then $(CYGPATH_W) 'src/processor/range_map_truncate_upper_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/range_map_truncate_upper_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6927-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6928-src/common/src_processor_stackwalker_address_list_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6929:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_address_list_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_address_list_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6930-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6932-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6933:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_address_list_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6934-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6935-src/common/src_processor_stackwalker_address_list_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6936:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_address_list_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_address_list_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6937-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6939-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6940:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_address_list_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6941-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6942-src/processor/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.o: src/processor/stackwalker_address_list_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6943:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.Tpo -c -o src/processor/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.o `test -f 'src/processor/stackwalker_address_list_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_address_list_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6944-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6946-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6947:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.o `test -f 'src/processor/stackwalker_address_list_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_address_list_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6948-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6949-src/processor/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.obj: src/processor/stackwalker_address_list_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6950:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.Tpo -c -o src/processor/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.obj `if test -f 'src/processor/stackwalker_address_list_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_address_list_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_address_list_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6951-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6953-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6954:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_address_list_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_address_list_unittest-stackwalker_address_list_unittest.obj `if test -f 'src/processor/stackwalker_address_list_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_address_list_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_address_list_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6955-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6956-src/common/src_processor_stackwalker_amd64_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6957:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_amd64_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_amd64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6958-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6960-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6961:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_amd64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6962-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6963-src/common/src_processor_stackwalker_amd64_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6964:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_amd64_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_amd64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6965-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6967-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6968:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_amd64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6969-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6970-src/processor/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.o: src/processor/stackwalker_amd64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6971:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.Tpo -c -o src/processor/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.o `test -f 'src/processor/stackwalker_amd64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_amd64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6972-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6974-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6975:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.o `test -f 'src/processor/stackwalker_amd64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_amd64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6976-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6977-src/processor/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.obj: src/processor/stackwalker_amd64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6978:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.Tpo -c -o src/processor/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.obj `if test -f 'src/processor/stackwalker_amd64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_amd64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_amd64_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6979-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6981-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6982:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_amd64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_amd64_unittest-stackwalker_amd64_unittest.obj `if test -f 'src/processor/stackwalker_amd64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_amd64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_amd64_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6983-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6984-src/common/src_processor_stackwalker_arm64_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6985:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_arm64_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_arm64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6986-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6988-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6989:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_arm64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6990-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6991-src/common/src_processor_stackwalker_arm64_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6992:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_arm64_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_arm64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6993-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6995-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6996:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_arm64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6997-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-6998-src/processor/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.o: src/processor/stackwalker_arm64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:6999:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.Tpo -c -o src/processor/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.o `test -f 'src/processor/stackwalker_arm64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_arm64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7000-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7002-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7003:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.o `test -f 'src/processor/stackwalker_arm64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_arm64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7004-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7005-src/processor/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.obj: src/processor/stackwalker_arm64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7006:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.Tpo -c -o src/processor/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.obj `if test -f 'src/processor/stackwalker_arm64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_arm64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_arm64_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7007-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7009-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7010:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_arm64_unittest-stackwalker_arm64_unittest.obj `if test -f 'src/processor/stackwalker_arm64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_arm64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_arm64_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7011-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7012-src/common/src_processor_stackwalker_arm_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7013:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_arm_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_arm_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_arm_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7014-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_arm_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_arm_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7016-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7017:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_arm_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7018-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7019-src/common/src_processor_stackwalker_arm_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7020:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_arm_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_arm_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_arm_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7021-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_arm_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_arm_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7023-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7024:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_arm_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7025-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7026-src/processor/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.o: src/processor/stackwalker_arm_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7027:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.Tpo -c -o src/processor/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.o `test -f 'src/processor/stackwalker_arm_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_arm_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7028-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7030-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7031:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.o `test -f 'src/processor/stackwalker_arm_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_arm_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7032-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7033-src/processor/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.obj: src/processor/stackwalker_arm_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7034:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.Tpo -c -o src/processor/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.obj `if test -f 'src/processor/stackwalker_arm_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_arm_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_arm_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7035-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7037-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7038:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_arm_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_arm_unittest-stackwalker_arm_unittest.obj `if test -f 'src/processor/stackwalker_arm_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_arm_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_arm_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7039-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7040-src/common/src_processor_stackwalker_mips64_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7041:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_mips64_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_mips64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7042-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7044-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7045:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_mips64_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7046-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7047-src/common/src_processor_stackwalker_mips64_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7048:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_mips64_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_mips64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7049-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7051-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7052:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_mips64_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7053-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7054-src/processor/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.o: src/processor/stackwalker_mips64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7055:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.Tpo -c -o src/processor/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.o `test -f 'src/processor/stackwalker_mips64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_mips64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7056-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7058-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7059:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.o `test -f 'src/processor/stackwalker_mips64_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_mips64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7060-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7061-src/processor/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.obj: src/processor/stackwalker_mips64_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7062:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.Tpo -c -o src/processor/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.obj `if test -f 'src/processor/stackwalker_mips64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_mips64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_mips64_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7063-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7065-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7066:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips64_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_mips64_unittest-stackwalker_mips64_unittest.obj `if test -f 'src/processor/stackwalker_mips64_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_mips64_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_mips64_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7067-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7068-src/common/src_processor_stackwalker_mips_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7069:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_mips_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_mips_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_mips_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7070-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_mips_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_mips_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7072-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7073:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_mips_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7074-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7075-src/common/src_processor_stackwalker_mips_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7076:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_mips_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_mips_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_mips_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7077-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_mips_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_mips_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7079-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7080:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_mips_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7081-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7082-src/processor/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.o: src/processor/stackwalker_mips_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7083:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.Tpo -c -o src/processor/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.o `test -f 'src/processor/stackwalker_mips_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_mips_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7084-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7086-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7087:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.o `test -f 'src/processor/stackwalker_mips_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_mips_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7088-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7089-src/processor/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.obj: src/processor/stackwalker_mips_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7090:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.Tpo -c -o src/processor/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.obj `if test -f 'src/processor/stackwalker_mips_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_mips_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_mips_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7091-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7093-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7094:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_mips_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_mips_unittest-stackwalker_mips_unittest.obj `if test -f 'src/processor/stackwalker_mips_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_mips_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_mips_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7095-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7096-src/common/src_processor_stackwalker_x86_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7097:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_x86_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_x86_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_x86_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7098-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_x86_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_x86_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7100-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7101:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_x86_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7102-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7103-src/common/src_processor_stackwalker_x86_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7104:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_stackwalker_x86_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_processor_stackwalker_x86_unittest-test_assembler.Tpo -c -o src/common/src_processor_stackwalker_x86_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7105-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_stackwalker_x86_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_stackwalker_x86_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7107-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7108:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_stackwalker_x86_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7109-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7110-src/processor/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.o: src/processor/stackwalker_x86_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7111:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.Tpo -c -o src/processor/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.o `test -f 'src/processor/stackwalker_x86_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_x86_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7112-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7114-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7115:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.o `test -f 'src/processor/stackwalker_x86_unittest.cc' || echo '$(srcdir)/'`src/processor/stackwalker_x86_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7116-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7117-src/processor/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.obj: src/processor/stackwalker_x86_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7118:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.Tpo -c -o src/processor/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.obj `if test -f 'src/processor/stackwalker_x86_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_x86_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_x86_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7119-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.Tpo src/processor/$(DEPDIR)/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7121-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7122:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_stackwalker_x86_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_stackwalker_x86_unittest-stackwalker_x86_unittest.obj `if test -f 'src/processor/stackwalker_x86_unittest.cc'; then $(CYGPATH_W) 'src/processor/stackwalker_x86_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/stackwalker_x86_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7123-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7124-src/processor/src_processor_static_address_map_unittest-static_address_map_unittest.o: src/processor/static_address_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7125:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_address_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_static_address_map_unittest-static_address_map_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_static_address_map_unittest-static_address_map_unittest.Tpo -c -o src/processor/src_processor_static_address_map_unittest-static_address_map_unittest.o `test -f 'src/processor/static_address_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_address_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7126-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_static_address_map_unittest-static_address_map_unittest.Tpo src/processor/$(DEPDIR)/src_processor_static_address_map_unittest-static_address_map_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7128-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7129:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_address_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_static_address_map_unittest-static_address_map_unittest.o `test -f 'src/processor/static_address_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_address_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7130-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7131-src/processor/src_processor_static_address_map_unittest-static_address_map_unittest.obj: src/processor/static_address_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7132:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_address_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_static_address_map_unittest-static_address_map_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_static_address_map_unittest-static_address_map_unittest.Tpo -c -o src/processor/src_processor_static_address_map_unittest-static_address_map_unittest.obj `if test -f 'src/processor/static_address_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_address_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_address_map_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7133-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_static_address_map_unittest-static_address_map_unittest.Tpo src/processor/$(DEPDIR)/src_processor_static_address_map_unittest-static_address_map_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7135-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7136:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_address_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_static_address_map_unittest-static_address_map_unittest.obj `if test -f 'src/processor/static_address_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_address_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_address_map_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7137-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7138-src/processor/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.o: src/processor/static_contained_range_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7139:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_contained_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.Tpo -c -o src/processor/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.o `test -f 'src/processor/static_contained_range_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_contained_range_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7140-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.Tpo src/processor/$(DEPDIR)/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7142-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7143:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_contained_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.o `test -f 'src/processor/static_contained_range_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_contained_range_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7144-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7145-src/processor/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.obj: src/processor/static_contained_range_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7146:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_contained_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.Tpo -c -o src/processor/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.obj `if test -f 'src/processor/static_contained_range_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_contained_range_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_contained_range_map_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7147-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.Tpo src/processor/$(DEPDIR)/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7149-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7150:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_contained_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_static_contained_range_map_unittest-static_contained_range_map_unittest.obj `if test -f 'src/processor/static_contained_range_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_contained_range_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_contained_range_map_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7151-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7152-src/processor/src_processor_static_map_unittest-static_map_unittest.o: src/processor/static_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7153:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_static_map_unittest-static_map_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_static_map_unittest-static_map_unittest.Tpo -c -o src/processor/src_processor_static_map_unittest-static_map_unittest.o `test -f 'src/processor/static_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7154-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_static_map_unittest-static_map_unittest.Tpo src/processor/$(DEPDIR)/src_processor_static_map_unittest-static_map_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7156-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7157:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_static_map_unittest-static_map_unittest.o `test -f 'src/processor/static_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7158-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7159-src/processor/src_processor_static_map_unittest-static_map_unittest.obj: src/processor/static_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7160:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_static_map_unittest-static_map_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_static_map_unittest-static_map_unittest.Tpo -c -o src/processor/src_processor_static_map_unittest-static_map_unittest.obj `if test -f 'src/processor/static_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_map_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7161-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_static_map_unittest-static_map_unittest.Tpo src/processor/$(DEPDIR)/src_processor_static_map_unittest-static_map_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7163-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7164:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_static_map_unittest-static_map_unittest.obj `if test -f 'src/processor/static_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_map_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7165-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7166-src/processor/src_processor_static_range_map_unittest-static_range_map_unittest.o: src/processor/static_range_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7167:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_static_range_map_unittest-static_range_map_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_static_range_map_unittest-static_range_map_unittest.Tpo -c -o src/processor/src_processor_static_range_map_unittest-static_range_map_unittest.o `test -f 'src/processor/static_range_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_range_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7168-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_static_range_map_unittest-static_range_map_unittest.Tpo src/processor/$(DEPDIR)/src_processor_static_range_map_unittest-static_range_map_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7170-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7171:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_static_range_map_unittest-static_range_map_unittest.o `test -f 'src/processor/static_range_map_unittest.cc' || echo '$(srcdir)/'`src/processor/static_range_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7172-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7173-src/processor/src_processor_static_range_map_unittest-static_range_map_unittest.obj: src/processor/static_range_map_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7174:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_static_range_map_unittest-static_range_map_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_static_range_map_unittest-static_range_map_unittest.Tpo -c -o src/processor/src_processor_static_range_map_unittest-static_range_map_unittest.obj `if test -f 'src/processor/static_range_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_range_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_range_map_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7175-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_static_range_map_unittest-static_range_map_unittest.Tpo src/processor/$(DEPDIR)/src_processor_static_range_map_unittest-static_range_map_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7177-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7178:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_static_range_map_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_static_range_map_unittest-static_range_map_unittest.obj `if test -f 'src/processor/static_range_map_unittest.cc'; then $(CYGPATH_W) 'src/processor/static_range_map_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/static_range_map_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7179-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7180-src/common/src_processor_synth_minidump_unittest-test_assembler.o: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7181:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_synth_minidump_unittest-test_assembler.o -MD -MP -MF src/common/$(DEPDIR)/src_processor_synth_minidump_unittest-test_assembler.Tpo -c -o src/common/src_processor_synth_minidump_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7182-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_synth_minidump_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_synth_minidump_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7184-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7185:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_synth_minidump_unittest-test_assembler.o `test -f 'src/common/test_assembler.cc' || echo '$(srcdir)/'`src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7186-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7187-src/common/src_processor_synth_minidump_unittest-test_assembler.obj: src/common/test_assembler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7188:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_processor_synth_minidump_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_processor_synth_minidump_unittest-test_assembler.Tpo -c -o src/common/src_processor_synth_minidump_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7189-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_processor_synth_minidump_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_processor_synth_minidump_unittest-test_assembler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7191-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7192:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_processor_synth_minidump_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7193-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7194-src/processor/src_processor_synth_minidump_unittest-synth_minidump_unittest.o: src/processor/synth_minidump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7195:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_synth_minidump_unittest-synth_minidump_unittest.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump_unittest.Tpo -c -o src/processor/src_processor_synth_minidump_unittest-synth_minidump_unittest.o `test -f 'src/processor/synth_minidump_unittest.cc' || echo '$(srcdir)/'`src/processor/synth_minidump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7196-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump_unittest.Tpo src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7198-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7199:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_synth_minidump_unittest-synth_minidump_unittest.o `test -f 'src/processor/synth_minidump_unittest.cc' || echo '$(srcdir)/'`src/processor/synth_minidump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7200-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7201-src/processor/src_processor_synth_minidump_unittest-synth_minidump_unittest.obj: src/processor/synth_minidump_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7202:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_synth_minidump_unittest-synth_minidump_unittest.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump_unittest.Tpo -c -o src/processor/src_processor_synth_minidump_unittest-synth_minidump_unittest.obj `if test -f 'src/processor/synth_minidump_unittest.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7203-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump_unittest.Tpo src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7205-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7206:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_synth_minidump_unittest-synth_minidump_unittest.obj `if test -f 'src/processor/synth_minidump_unittest.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7207-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7208-src/processor/src_processor_synth_minidump_unittest-synth_minidump.o: src/processor/synth_minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7209:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_synth_minidump_unittest-synth_minidump.o -MD -MP -MF src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump.Tpo -c -o src/processor/src_processor_synth_minidump_unittest-synth_minidump.o `test -f 'src/processor/synth_minidump.cc' || echo '$(srcdir)/'`src/processor/synth_minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7210-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump.Tpo src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7212-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7213:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_synth_minidump_unittest-synth_minidump.o `test -f 'src/processor/synth_minidump.cc' || echo '$(srcdir)/'`src/processor/synth_minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7214-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7215-src/processor/src_processor_synth_minidump_unittest-synth_minidump.obj: src/processor/synth_minidump.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7216:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src_processor_synth_minidump_unittest-synth_minidump.obj -MD -MP -MF src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump.Tpo -c -o src/processor/src_processor_synth_minidump_unittest-synth_minidump.obj `if test -f 'src/processor/synth_minidump.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7217-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump.Tpo src/processor/$(DEPDIR)/src_processor_synth_minidump_unittest-synth_minidump.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7219-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7220:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_processor_synth_minidump_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src_processor_synth_minidump_unittest-synth_minidump.obj `if test -f 'src/processor/synth_minidump.cc'; then $(CYGPATH_W) 'src/processor/synth_minidump.cc'; else $(CYGPATH_W) '$(srcdir)/src/processor/synth_minidump.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7221-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7222-src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.o: src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7223:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7224-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7226-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7227:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7228-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7229-src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.obj: src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7230:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7231-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7233-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7234:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7235-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7236-src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.o: src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7237:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7238-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7240-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7241:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7242-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7243-src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.obj: src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7244:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7245-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7247-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7248:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7249-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7250-src/common/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.o: src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7251:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7252-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7254-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7255:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7256-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7257-src/common/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.obj: src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7258:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7259-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7261-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7262:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7263-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7264-src/common/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.o: src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7265:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7266-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7268-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7269:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7270-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7271-src/common/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.obj: src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7272:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7273-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7275-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7276:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7277-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7278-src/common/src_tools_linux_dump_syms_dump_syms-language.o: src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7279:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-language.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-language.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7280-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-language.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-language.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7282-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7283:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7284-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7285-src/common/src_tools_linux_dump_syms_dump_syms-language.obj: src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7286:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-language.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-language.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7287-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-language.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-language.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7289-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7290:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7291-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7292-src/common/src_tools_linux_dump_syms_dump_syms-module.o: src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7293:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7294-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7296-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7297:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7298-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7299-src/common/src_tools_linux_dump_syms_dump_syms-module.obj: src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7300:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7301-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7303-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7304:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7305-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7306-src/common/src_tools_linux_dump_syms_dump_syms-path_helper.o: src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7307:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-path_helper.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-path_helper.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7308-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-path_helper.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-path_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7310-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7311:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7312-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7313-src/common/src_tools_linux_dump_syms_dump_syms-path_helper.obj: src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7314:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-path_helper.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-path_helper.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7315-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-path_helper.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-path_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7317-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7318:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7319-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7320-src/common/src_tools_linux_dump_syms_dump_syms-stabs_reader.o: src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7321:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-stabs_reader.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_reader.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7322-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_reader.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7324-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7325:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7326-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7327-src/common/src_tools_linux_dump_syms_dump_syms-stabs_reader.obj: src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7328:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-stabs_reader.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_reader.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7329-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_reader.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7331-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7332:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7333-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7334-src/common/src_tools_linux_dump_syms_dump_syms-stabs_to_module.o: src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7335:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-stabs_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_to_module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7336-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_to_module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7338-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7339:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7340-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7341-src/common/src_tools_linux_dump_syms_dump_syms-stabs_to_module.obj: src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7342:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_linux_dump_syms_dump_syms-stabs_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_to_module.Tpo -c -o src/common/src_tools_linux_dump_syms_dump_syms-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7343-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_to_module.Tpo src/common/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-stabs_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7345-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7346:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_linux_dump_syms_dump_syms-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7347-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7348-src/common/dwarf/src_tools_linux_dump_syms_dump_syms-bytereader.o: src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7349:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_linux_dump_syms_dump_syms-bytereader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-bytereader.Tpo -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7350-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-bytereader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-bytereader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7352-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7353:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7354-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7355-src/common/dwarf/src_tools_linux_dump_syms_dump_syms-bytereader.obj: src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7356:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_linux_dump_syms_dump_syms-bytereader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-bytereader.Tpo -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7357-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-bytereader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-bytereader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7359-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7360:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7361-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7362-src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.o: src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7363:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.Tpo -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7364-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7366-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7367:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7368-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7369-src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.obj: src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7370:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.Tpo -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7371-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7373-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7374:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7375-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7376-src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2reader.o: src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7377:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2reader.Tpo -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7378-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7380-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7381:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7382-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7383-src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2reader.obj: src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7384:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2reader.Tpo -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7385-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dwarf2reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7387-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7388:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7389-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7390-src/common/dwarf/src_tools_linux_dump_syms_dump_syms-elf_reader.o: src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7391:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_linux_dump_syms_dump_syms-elf_reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_reader.Tpo -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7392-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7394-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7395:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7396-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7397-src/common/dwarf/src_tools_linux_dump_syms_dump_syms-elf_reader.obj: src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7398:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_linux_dump_syms_dump_syms-elf_reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_reader.Tpo -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7399-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7401-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7402:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_linux_dump_syms_dump_syms-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7403-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7404-src/common/linux/src_tools_linux_dump_syms_dump_syms-crc32.o: src/common/linux/crc32.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7405:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-crc32.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-crc32.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-crc32.o `test -f 'src/common/linux/crc32.cc' || echo '$(srcdir)/'`src/common/linux/crc32.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7406-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-crc32.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-crc32.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7408-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7409:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-crc32.o `test -f 'src/common/linux/crc32.cc' || echo '$(srcdir)/'`src/common/linux/crc32.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7410-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7411-src/common/linux/src_tools_linux_dump_syms_dump_syms-crc32.obj: src/common/linux/crc32.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7412:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-crc32.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-crc32.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-crc32.obj `if test -f 'src/common/linux/crc32.cc'; then $(CYGPATH_W) 'src/common/linux/crc32.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/crc32.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7413-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-crc32.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-crc32.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7415-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7416:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-crc32.obj `if test -f 'src/common/linux/crc32.cc'; then $(CYGPATH_W) 'src/common/linux/crc32.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/crc32.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7417-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7418-src/common/linux/src_tools_linux_dump_syms_dump_syms-dump_symbols.o: src/common/linux/dump_symbols.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7419:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-dump_symbols.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_symbols.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-dump_symbols.o `test -f 'src/common/linux/dump_symbols.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7420-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_symbols.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_symbols.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7422-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7423:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-dump_symbols.o `test -f 'src/common/linux/dump_symbols.cc' || echo '$(srcdir)/'`src/common/linux/dump_symbols.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7424-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7425-src/common/linux/src_tools_linux_dump_syms_dump_syms-dump_symbols.obj: src/common/linux/dump_symbols.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7426:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-dump_symbols.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_symbols.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-dump_symbols.obj `if test -f 'src/common/linux/dump_symbols.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7427-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_symbols.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_symbols.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7429-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7430:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-dump_symbols.obj `if test -f 'src/common/linux/dump_symbols.cc'; then $(CYGPATH_W) 'src/common/linux/dump_symbols.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/dump_symbols.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7431-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7432-src/common/linux/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.o: src/common/linux/elf_symbols_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7433:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.o `test -f 'src/common/linux/elf_symbols_to_module.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7434-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7436-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7437:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.o `test -f 'src/common/linux/elf_symbols_to_module.cc' || echo '$(srcdir)/'`src/common/linux/elf_symbols_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7438-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7439-src/common/linux/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.obj: src/common/linux/elf_symbols_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7440:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.obj `if test -f 'src/common/linux/elf_symbols_to_module.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7441-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7443-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7444:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-elf_symbols_to_module.obj `if test -f 'src/common/linux/elf_symbols_to_module.cc'; then $(CYGPATH_W) 'src/common/linux/elf_symbols_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elf_symbols_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7445-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7446-src/common/linux/src_tools_linux_dump_syms_dump_syms-elfutils.o: src/common/linux/elfutils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7447:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-elfutils.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elfutils.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-elfutils.o `test -f 'src/common/linux/elfutils.cc' || echo '$(srcdir)/'`src/common/linux/elfutils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7448-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elfutils.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elfutils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7450-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7451:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-elfutils.o `test -f 'src/common/linux/elfutils.cc' || echo '$(srcdir)/'`src/common/linux/elfutils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7452-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7453-src/common/linux/src_tools_linux_dump_syms_dump_syms-elfutils.obj: src/common/linux/elfutils.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7454:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-elfutils.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elfutils.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-elfutils.obj `if test -f 'src/common/linux/elfutils.cc'; then $(CYGPATH_W) 'src/common/linux/elfutils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elfutils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7455-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elfutils.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-elfutils.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7457-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7458:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-elfutils.obj `if test -f 'src/common/linux/elfutils.cc'; then $(CYGPATH_W) 'src/common/linux/elfutils.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/elfutils.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7459-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7460-src/common/linux/src_tools_linux_dump_syms_dump_syms-file_id.o: src/common/linux/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7461:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-file_id.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-file_id.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-file_id.o `test -f 'src/common/linux/file_id.cc' || echo '$(srcdir)/'`src/common/linux/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7462-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-file_id.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-file_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7464-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7465:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-file_id.o `test -f 'src/common/linux/file_id.cc' || echo '$(srcdir)/'`src/common/linux/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7466-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7467-src/common/linux/src_tools_linux_dump_syms_dump_syms-file_id.obj: src/common/linux/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7468:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-file_id.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-file_id.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-file_id.obj `if test -f 'src/common/linux/file_id.cc'; then $(CYGPATH_W) 'src/common/linux/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7469-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-file_id.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-file_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7471-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7472:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-file_id.obj `if test -f 'src/common/linux/file_id.cc'; then $(CYGPATH_W) 'src/common/linux/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/file_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7473-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7474-src/common/linux/src_tools_linux_dump_syms_dump_syms-linux_libc_support.o: src/common/linux/linux_libc_support.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7475:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-linux_libc_support.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-linux_libc_support.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-linux_libc_support.o `test -f 'src/common/linux/linux_libc_support.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7476-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-linux_libc_support.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-linux_libc_support.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7478-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7479:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-linux_libc_support.o `test -f 'src/common/linux/linux_libc_support.cc' || echo '$(srcdir)/'`src/common/linux/linux_libc_support.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7480-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7481-src/common/linux/src_tools_linux_dump_syms_dump_syms-linux_libc_support.obj: src/common/linux/linux_libc_support.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7482:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-linux_libc_support.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-linux_libc_support.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-linux_libc_support.obj `if test -f 'src/common/linux/linux_libc_support.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7483-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-linux_libc_support.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-linux_libc_support.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7485-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7486:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-linux_libc_support.obj `if test -f 'src/common/linux/linux_libc_support.cc'; then $(CYGPATH_W) 'src/common/linux/linux_libc_support.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/linux_libc_support.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7487-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7488-src/common/linux/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.o: src/common/linux/memory_mapped_file.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7489:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.o `test -f 'src/common/linux/memory_mapped_file.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7490-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7492-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7493:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.o `test -f 'src/common/linux/memory_mapped_file.cc' || echo '$(srcdir)/'`src/common/linux/memory_mapped_file.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7494-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7495-src/common/linux/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.obj: src/common/linux/memory_mapped_file.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7496:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.obj `if test -f 'src/common/linux/memory_mapped_file.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7497-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7499-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7500:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-memory_mapped_file.obj `if test -f 'src/common/linux/memory_mapped_file.cc'; then $(CYGPATH_W) 'src/common/linux/memory_mapped_file.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/memory_mapped_file.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7501-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7502-src/common/linux/src_tools_linux_dump_syms_dump_syms-safe_readlink.o: src/common/linux/safe_readlink.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7503:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-safe_readlink.o -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-safe_readlink.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-safe_readlink.o `test -f 'src/common/linux/safe_readlink.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7504-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-safe_readlink.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-safe_readlink.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7506-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7507:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-safe_readlink.o `test -f 'src/common/linux/safe_readlink.cc' || echo '$(srcdir)/'`src/common/linux/safe_readlink.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7508-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7509-src/common/linux/src_tools_linux_dump_syms_dump_syms-safe_readlink.obj: src/common/linux/safe_readlink.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7510:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/common/linux/src_tools_linux_dump_syms_dump_syms-safe_readlink.obj -MD -MP -MF src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-safe_readlink.Tpo -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-safe_readlink.obj `if test -f 'src/common/linux/safe_readlink.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7511-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-safe_readlink.Tpo src/common/linux/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-safe_readlink.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7513-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7514:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/common/linux/src_tools_linux_dump_syms_dump_syms-safe_readlink.obj `if test -f 'src/common/linux/safe_readlink.cc'; then $(CYGPATH_W) 'src/common/linux/safe_readlink.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/linux/safe_readlink.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7515-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7516-src/tools/linux/dump_syms/src_tools_linux_dump_syms_dump_syms-dump_syms.o: src/tools/linux/dump_syms/dump_syms.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7517:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/tools/linux/dump_syms/src_tools_linux_dump_syms_dump_syms-dump_syms.o -MD -MP -MF src/tools/linux/dump_syms/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_syms.Tpo -c -o src/tools/linux/dump_syms/src_tools_linux_dump_syms_dump_syms-dump_syms.o `test -f 'src/tools/linux/dump_syms/dump_syms.cc' || echo '$(srcdir)/'`src/tools/linux/dump_syms/dump_syms.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7518-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/linux/dump_syms/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_syms.Tpo src/tools/linux/dump_syms/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_syms.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7520-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7521:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/linux/dump_syms/src_tools_linux_dump_syms_dump_syms-dump_syms.o `test -f 'src/tools/linux/dump_syms/dump_syms.cc' || echo '$(srcdir)/'`src/tools/linux/dump_syms/dump_syms.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7522-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7523-src/tools/linux/dump_syms/src_tools_linux_dump_syms_dump_syms-dump_syms.obj: src/tools/linux/dump_syms/dump_syms.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7524:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -MT src/tools/linux/dump_syms/src_tools_linux_dump_syms_dump_syms-dump_syms.obj -MD -MP -MF src/tools/linux/dump_syms/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_syms.Tpo -c -o src/tools/linux/dump_syms/src_tools_linux_dump_syms_dump_syms-dump_syms.obj `if test -f 'src/tools/linux/dump_syms/dump_syms.cc'; then $(CYGPATH_W) 'src/tools/linux/dump_syms/dump_syms.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/linux/dump_syms/dump_syms.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7525-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/linux/dump_syms/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_syms.Tpo src/tools/linux/dump_syms/$(DEPDIR)/src_tools_linux_dump_syms_dump_syms-dump_syms.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7527-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7528:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_linux_dump_syms_dump_syms_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/linux/dump_syms/src_tools_linux_dump_syms_dump_syms-dump_syms.obj `if test -f 'src/tools/linux/dump_syms/dump_syms.cc'; then $(CYGPATH_W) 'src/tools/linux/dump_syms/dump_syms.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/linux/dump_syms/dump_syms.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7529-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7530-src/tools/linux/md2core/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.o: src/tools/linux/md2core/minidump_memory_range_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7531:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/tools/linux/md2core/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.o -MD -MP -MF src/tools/linux/md2core/$(DEPDIR)/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.Tpo -c -o src/tools/linux/md2core/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.o `test -f 'src/tools/linux/md2core/minidump_memory_range_unittest.cc' || echo '$(srcdir)/'`src/tools/linux/md2core/minidump_memory_range_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7532-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/linux/md2core/$(DEPDIR)/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.Tpo src/tools/linux/md2core/$(DEPDIR)/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7534-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7535:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/linux/md2core/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.o `test -f 'src/tools/linux/md2core/minidump_memory_range_unittest.cc' || echo '$(srcdir)/'`src/tools/linux/md2core/minidump_memory_range_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7536-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7537-src/tools/linux/md2core/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.obj: src/tools/linux/md2core/minidump_memory_range_unittest.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7538:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/tools/linux/md2core/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.obj -MD -MP -MF src/tools/linux/md2core/$(DEPDIR)/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.Tpo -c -o src/tools/linux/md2core/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.obj `if test -f 'src/tools/linux/md2core/minidump_memory_range_unittest.cc'; then $(CYGPATH_W) 'src/tools/linux/md2core/minidump_memory_range_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/linux/md2core/minidump_memory_range_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7539-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/linux/md2core/$(DEPDIR)/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.Tpo src/tools/linux/md2core/$(DEPDIR)/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7541-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7542:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_tools_linux_md2core_minidump_2_core_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/linux/md2core/src_tools_linux_md2core_minidump_2_core_unittest-minidump_memory_range_unittest.obj `if test -f 'src/tools/linux/md2core/minidump_memory_range_unittest.cc'; then $(CYGPATH_W) 'src/tools/linux/md2core/minidump_memory_range_unittest.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/linux/md2core/minidump_memory_range_unittest.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7543-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7544-src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.o: src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7545:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7546-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7548-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7549:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.o `test -f 'src/common/dwarf_cfi_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7550-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7551-src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.obj: src/common/dwarf_cfi_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7552:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7553-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7555-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7556:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cfi_to_module.obj `if test -f 'src/common/dwarf_cfi_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cfi_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cfi_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7557-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7558-src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.o: src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7559:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7560-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7562-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7563:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.o `test -f 'src/common/dwarf_cu_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7564-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7565-src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.obj: src/common/dwarf_cu_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7566:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7567-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7569-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7570:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_cu_to_module.obj `if test -f 'src/common/dwarf_cu_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_cu_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_cu_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7571-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7572-src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.o: src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7573:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7574-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7576-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7577:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.o `test -f 'src/common/dwarf_line_to_module.cc' || echo '$(srcdir)/'`src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7578-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7579-src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.obj: src/common/dwarf_line_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7580:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7581-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7583-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7584:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_line_to_module.obj `if test -f 'src/common/dwarf_line_to_module.cc'; then $(CYGPATH_W) 'src/common/dwarf_line_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_line_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7585-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7586-src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.o: src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7587:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7588-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7590-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7591:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.o `test -f 'src/common/dwarf_range_list_handler.cc' || echo '$(srcdir)/'`src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7592-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7593-src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.obj: src/common/dwarf_range_list_handler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7594:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7595-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7597-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7598:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-dwarf_range_list_handler.obj `if test -f 'src/common/dwarf_range_list_handler.cc'; then $(CYGPATH_W) 'src/common/dwarf_range_list_handler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf_range_list_handler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7599-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7600-src/common/src_tools_mac_dump_syms_dump_syms_mac-language.o: src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7601:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-language.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-language.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7602-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-language.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-language.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7604-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7605:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-language.o `test -f 'src/common/language.cc' || echo '$(srcdir)/'`src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7606-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7607-src/common/src_tools_mac_dump_syms_dump_syms_mac-language.obj: src/common/language.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7608:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-language.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-language.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7609-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-language.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-language.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7611-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7612:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-language.obj `if test -f 'src/common/language.cc'; then $(CYGPATH_W) 'src/common/language.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/language.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7613-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7614-src/common/src_tools_mac_dump_syms_dump_syms_mac-md5.o: src/common/md5.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7615:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-md5.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-md5.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-md5.o `test -f 'src/common/md5.cc' || echo '$(srcdir)/'`src/common/md5.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7616-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-md5.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-md5.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7618-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7619:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-md5.o `test -f 'src/common/md5.cc' || echo '$(srcdir)/'`src/common/md5.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7620-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7621-src/common/src_tools_mac_dump_syms_dump_syms_mac-md5.obj: src/common/md5.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7622:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-md5.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-md5.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-md5.obj `if test -f 'src/common/md5.cc'; then $(CYGPATH_W) 'src/common/md5.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/md5.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7623-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-md5.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-md5.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7625-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7626:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-md5.obj `if test -f 'src/common/md5.cc'; then $(CYGPATH_W) 'src/common/md5.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/md5.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7627-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7628-src/common/src_tools_mac_dump_syms_dump_syms_mac-module.o: src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7629:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7630-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7632-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7633:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-module.o `test -f 'src/common/module.cc' || echo '$(srcdir)/'`src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7634-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7635-src/common/src_tools_mac_dump_syms_dump_syms_mac-module.obj: src/common/module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7636:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7637-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7639-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7640:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-module.obj `if test -f 'src/common/module.cc'; then $(CYGPATH_W) 'src/common/module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7641-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7642-src/common/src_tools_mac_dump_syms_dump_syms_mac-path_helper.o: src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7643:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-path_helper.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-path_helper.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7644-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-path_helper.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-path_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7646-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7647:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-path_helper.o `test -f 'src/common/path_helper.cc' || echo '$(srcdir)/'`src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7648-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7649-src/common/src_tools_mac_dump_syms_dump_syms_mac-path_helper.obj: src/common/path_helper.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7650:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-path_helper.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-path_helper.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7651-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-path_helper.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-path_helper.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7653-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7654:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-path_helper.obj `if test -f 'src/common/path_helper.cc'; then $(CYGPATH_W) 'src/common/path_helper.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/path_helper.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7655-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7656-src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.o: src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7657:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7658-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7660-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7661:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.o `test -f 'src/common/stabs_reader.cc' || echo '$(srcdir)/'`src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7662-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7663-src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.obj: src/common/stabs_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7664:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7665-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7667-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7668:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_reader.obj `if test -f 'src/common/stabs_reader.cc'; then $(CYGPATH_W) 'src/common/stabs_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7669-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7670-src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.o: src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7671:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.o -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7672-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7674-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7675:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.o `test -f 'src/common/stabs_to_module.cc' || echo '$(srcdir)/'`src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7676-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7677-src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.obj: src/common/stabs_to_module.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7678:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.obj -MD -MP -MF src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Tpo -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7679-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Tpo src/common/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7681-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7682:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_tools_mac_dump_syms_dump_syms_mac-stabs_to_module.obj `if test -f 'src/common/stabs_to_module.cc'; then $(CYGPATH_W) 'src/common/stabs_to_module.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/stabs_to_module.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7683-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7684-src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-bytereader.o: src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7685:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-bytereader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-bytereader.Tpo -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7686-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-bytereader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-bytereader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7688-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7689:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-bytereader.o `test -f 'src/common/dwarf/bytereader.cc' || echo '$(srcdir)/'`src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7690-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7691-src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-bytereader.obj: src/common/dwarf/bytereader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7692:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-bytereader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-bytereader.Tpo -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7693-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-bytereader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-bytereader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7695-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7696:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-bytereader.obj `if test -f 'src/common/dwarf/bytereader.cc'; then $(CYGPATH_W) 'src/common/dwarf/bytereader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/bytereader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7697-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7698-src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.o: src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7699:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Tpo -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7700-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7702-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7703:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.o `test -f 'src/common/dwarf/dwarf2diehandler.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7704-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7705-src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.obj: src/common/dwarf/dwarf2diehandler.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7706:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Tpo -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7707-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Tpo src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7709-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7710:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2diehandler.obj `if test -f 'src/common/dwarf/dwarf2diehandler.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2diehandler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2diehandler.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7711-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7712-src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.o: src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7713:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Tpo -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7714-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7716-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7717:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.o `test -f 'src/common/dwarf/dwarf2reader.cc' || echo '$(srcdir)/'`src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7718-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7719-src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.obj: src/common/dwarf/dwarf2reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7720:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Tpo -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7721-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7723-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7724:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-dwarf2reader.obj `if test -f 'src/common/dwarf/dwarf2reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/dwarf2reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/dwarf2reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7725-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7726-src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.o: src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7727:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.o -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.Tpo -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7728-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7730-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7731:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.o `test -f 'src/common/dwarf/elf_reader.cc' || echo '$(srcdir)/'`src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7732-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7733-src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.obj: src/common/dwarf/elf_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7734:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.obj -MD -MP -MF src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.Tpo -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7735-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.Tpo src/common/dwarf/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7737-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7738:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/dwarf/src_tools_mac_dump_syms_dump_syms_mac-elf_reader.obj `if test -f 'src/common/dwarf/elf_reader.cc'; then $(CYGPATH_W) 'src/common/dwarf/elf_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/dwarf/elf_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7739-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7740-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.o: src/common/mac/arch_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7741:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.o `test -f 'src/common/mac/arch_utilities.cc' || echo '$(srcdir)/'`src/common/mac/arch_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7742-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7744-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7745:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.o `test -f 'src/common/mac/arch_utilities.cc' || echo '$(srcdir)/'`src/common/mac/arch_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7746-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7747-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.obj: src/common/mac/arch_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7748:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.obj `if test -f 'src/common/mac/arch_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/arch_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/arch_utilities.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7749-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7751-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7752:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-arch_utilities.obj `if test -f 'src/common/mac/arch_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/arch_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/arch_utilities.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7753-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7754-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.o: src/common/mac/dump_syms.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7755:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.o `test -f 'src/common/mac/dump_syms.cc' || echo '$(srcdir)/'`src/common/mac/dump_syms.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7756-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7758-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7759:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.o `test -f 'src/common/mac/dump_syms.cc' || echo '$(srcdir)/'`src/common/mac/dump_syms.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7760-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7761-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.obj: src/common/mac/dump_syms.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7762:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.obj `if test -f 'src/common/mac/dump_syms.cc'; then $(CYGPATH_W) 'src/common/mac/dump_syms.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/dump_syms.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7763-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7765-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7766:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-dump_syms.obj `if test -f 'src/common/mac/dump_syms.cc'; then $(CYGPATH_W) 'src/common/mac/dump_syms.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/dump_syms.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7767-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7768-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-file_id.o: src/common/mac/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7769:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-file_id.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-file_id.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-file_id.o `test -f 'src/common/mac/file_id.cc' || echo '$(srcdir)/'`src/common/mac/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7770-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-file_id.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-file_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7772-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7773:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-file_id.o `test -f 'src/common/mac/file_id.cc' || echo '$(srcdir)/'`src/common/mac/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7774-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7775-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-file_id.obj: src/common/mac/file_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7776:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-file_id.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-file_id.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-file_id.obj `if test -f 'src/common/mac/file_id.cc'; then $(CYGPATH_W) 'src/common/mac/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/file_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7777-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-file_id.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-file_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7779-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7780:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-file_id.obj `if test -f 'src/common/mac/file_id.cc'; then $(CYGPATH_W) 'src/common/mac/file_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/file_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7781-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7782-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_id.o: src/common/mac/macho_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7783:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_id.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_id.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_id.o `test -f 'src/common/mac/macho_id.cc' || echo '$(srcdir)/'`src/common/mac/macho_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7784-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_id.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7786-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7787:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_id.o `test -f 'src/common/mac/macho_id.cc' || echo '$(srcdir)/'`src/common/mac/macho_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7788-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7789-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_id.obj: src/common/mac/macho_id.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7790:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_id.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_id.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_id.obj `if test -f 'src/common/mac/macho_id.cc'; then $(CYGPATH_W) 'src/common/mac/macho_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7791-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_id.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_id.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7793-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7794:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_id.obj `if test -f 'src/common/mac/macho_id.cc'; then $(CYGPATH_W) 'src/common/mac/macho_id.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_id.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7795-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7796-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.o: src/common/mac/macho_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7797:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.o `test -f 'src/common/mac/macho_reader.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7798-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7800-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7801:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.o `test -f 'src/common/mac/macho_reader.cc' || echo '$(srcdir)/'`src/common/mac/macho_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7802-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7803-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.obj: src/common/mac/macho_reader.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7804:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.obj `if test -f 'src/common/mac/macho_reader.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7805-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7807-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7808:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_reader.obj `if test -f 'src/common/mac/macho_reader.cc'; then $(CYGPATH_W) 'src/common/mac/macho_reader.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_reader.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7809-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7810-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.o: src/common/mac/macho_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7811:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.o `test -f 'src/common/mac/macho_utilities.cc' || echo '$(srcdir)/'`src/common/mac/macho_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7812-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7814-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7815:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.o `test -f 'src/common/mac/macho_utilities.cc' || echo '$(srcdir)/'`src/common/mac/macho_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7816-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7817-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.obj: src/common/mac/macho_utilities.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7818:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.obj `if test -f 'src/common/mac/macho_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/macho_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_utilities.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7819-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7821-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7822:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_utilities.obj `if test -f 'src/common/mac/macho_utilities.cc'; then $(CYGPATH_W) 'src/common/mac/macho_utilities.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_utilities.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7823-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7824-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.o: src/common/mac/macho_walker.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7825:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.o -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.o `test -f 'src/common/mac/macho_walker.cc' || echo '$(srcdir)/'`src/common/mac/macho_walker.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7826-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7828-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7829:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.o `test -f 'src/common/mac/macho_walker.cc' || echo '$(srcdir)/'`src/common/mac/macho_walker.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7830-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7831-src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.obj: src/common/mac/macho_walker.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7832:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.obj -MD -MP -MF src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.Tpo -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.obj `if test -f 'src/common/mac/macho_walker.cc'; then $(CYGPATH_W) 'src/common/mac/macho_walker.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_walker.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7833-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.Tpo src/common/mac/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7835-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7836:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/common/mac/src_tools_mac_dump_syms_dump_syms_mac-macho_walker.obj `if test -f 'src/common/mac/macho_walker.cc'; then $(CYGPATH_W) 'src/common/mac/macho_walker.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/mac/macho_walker.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7837-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7838-src/tools/mac/dump_syms/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.o: src/tools/mac/dump_syms/dump_syms_tool.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7839:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/tools/mac/dump_syms/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.o -MD -MP -MF src/tools/mac/dump_syms/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.Tpo -c -o src/tools/mac/dump_syms/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.o `test -f 'src/tools/mac/dump_syms/dump_syms_tool.cc' || echo '$(srcdir)/'`src/tools/mac/dump_syms/dump_syms_tool.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7840-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/mac/dump_syms/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.Tpo src/tools/mac/dump_syms/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7842-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7843:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/mac/dump_syms/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.o `test -f 'src/tools/mac/dump_syms/dump_syms_tool.cc' || echo '$(srcdir)/'`src/tools/mac/dump_syms/dump_syms_tool.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7844-
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7845-src/tools/mac/dump_syms/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.obj: src/tools/mac/dump_syms/dump_syms_tool.cc
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7846:@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -MT src/tools/mac/dump_syms/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.obj -MD -MP -MF src/tools/mac/dump_syms/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.Tpo -c -o src/tools/mac/dump_syms/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.obj `if test -f 'src/tools/mac/dump_syms/dump_syms_tool.cc'; then $(CYGPATH_W) 'src/tools/mac/dump_syms/dump_syms_tool.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/mac/dump_syms/dump_syms_tool.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7847-@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/tools/mac/dump_syms/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.Tpo src/tools/mac/dump_syms/$(DEPDIR)/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.Po
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7849-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7850:@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tools_mac_dump_syms_dump_syms_mac_CXXFLAGS) $(CXXFLAGS) -c -o src/tools/mac/dump_syms/src_tools_mac_dump_syms_dump_syms_mac-dump_syms_tool.obj `if test -f 'src/tools/mac/dump_syms/dump_syms_tool.cc'; then $(CYGPATH_W) 'src/tools/mac/dump_syms/dump_syms_tool.cc'; else $(CYGPATH_W) '$(srcdir)/src/tools/mac/dump_syms/dump_syms_tool.cc'; fi`
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7851-install-dist_docDATA: $(dist_doc_DATA)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7869-	@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7870:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7871-	dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7890-	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7891:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7892-	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7911-	@list='$(includec_HEADERS)'; test -n "$(includecdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7912:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7913-	dir='$(DESTDIR)$(includecdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7932-	@list='$(includecl_HEADERS)'; test -n "$(includecldir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7933:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7934-	dir='$(DESTDIR)$(includecldir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7953-	@list='$(includeclc_HEADERS)'; test -n "$(includeclcdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7954:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7955-	dir='$(DESTDIR)$(includeclcdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7974-	@list='$(includecldwc_HEADERS)'; test -n "$(includecldwcdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7975:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7976-	dir='$(DESTDIR)$(includecldwcdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7995-	@list='$(includeclh_HEADERS)'; test -n "$(includeclhdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:7996:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-7997-	dir='$(DESTDIR)$(includeclhdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8016-	@list='$(includeclm_HEADERS)'; test -n "$(includeclmdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8017:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8018-	dir='$(DESTDIR)$(includeclmdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8037-	@list='$(includegbc_HEADERS)'; test -n "$(includegbcdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8038:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8039-	dir='$(DESTDIR)$(includegbcdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8058-	@list='$(includelss_HEADERS)'; test -n "$(includelssdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8059:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8060-	dir='$(DESTDIR)$(includelssdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8079-	@list='$(includep_HEADERS)'; test -n "$(includepdir)" || list=; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8080:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8081-	dir='$(DESTDIR)$(includepdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8112-GTAGS:
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8113:	here=`$(am__cd) $(top_builddir) && pwd` \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8114-	  && $(am__cd) $(top_srcdir) \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8162-	if test -n "$$redo_bases"; then \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8163:	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8164:	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8165-	  if $(am__make_dryrun); then :; else \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8187-	ws='[ 	]'; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8188:	results=`for b in $$bases; do echo $$b.trs; done`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8189-	test -n "$$results" || results=/dev/null; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8190:	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8191:	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8192:	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8193:	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8194:	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8195:	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8196:	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8197:	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8198-	  success=true; \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8266-	@set +e; $(am__set_TESTS_bases); \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8267:	log_list=`for i in $$bases; do echo $$i.log; done`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8268:	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8269:	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8270-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8276-	         | $(am__list_recheck_tests)` || exit 1; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8277:	log_list=`for i in $$bases; do echo $$i.log; done`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8278:	log_list=`echo $$log_list`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8279-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8587-	test -d "$(distdir)" || mkdir "$(distdir)"
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8588:	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8589:	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8590-	list='$(DISTFILES)'; \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8601-	  if test -d $$d/$$file; then \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8602:	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8603-	    if test -d "$(distdir)/$$file"; then \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8687-	test -d $(distdir)/_build || exit 0; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8688:	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8689-	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8731-	}; \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8732:	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8733-	   || { echo "ERROR: files left after uninstall:" ; \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8743-	fi
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in:8744:	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
chromium-84.0.4147.105/third_party/breakpad/breakpad/Makefile.in-8745-	  || { echo "ERROR: files left in build directory after distclean:" ; \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj-267-				08FB7795FE84155DC02AAC07 /* breakpad */,
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj:268:				4D2C726E126F9CE200B43EAF /* libdisasm */,
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj-269-				08FB779DFE84155DC02AAC07 /* External Frameworks and Libraries */,
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj-300-		};
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj:301:		4D2C726E126F9CE200B43EAF /* libdisasm */ = {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/mac/crash_report/crash_report.xcodeproj/project.pbxproj-302-			isa = PBXGroup;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc-57-  HttpHandle get() { return handle_; }
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc:58:  HttpHandle* get_handle_addr () { return &handle_; }
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc-59-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc-192-                         NULL,  // proxy bypass
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc:193:                         internet.get_handle_addr())) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc-194-    fprintf(stderr,
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc-203-                            port,
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc:204:                            connection.get_handle_addr())) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc-205-    fprintf(stderr,
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc-239-                                secure,
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc:240:                                request.get_handle_addr())) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/tools/windows/converter_exe/http_download.cc-241-    fprintf(stderr,
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/processor/stackwalker_selftest_sol.s-34- *
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/processor/stackwalker_selftest_sol.s:35: * How to compile: as -P -L -D_ASM -D_STDC -K PIC -o \
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/processor/stackwalker_selftest_sol.s-36- *                 src/processor/stackwalker_selftest_sol.o \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/processor/stackwalker_selftest.cc-182-// This function depends on frame pointers not being omitted.  It is possible
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/processor/stackwalker_selftest.cc:183:// to write a pure asm version of this routine that has no compiler-generated
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/processor/stackwalker_selftest.cc-184-// preamble and uses %esp instead of %ebp; that would function in the
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/processor/static_range_map_unittest.cc-372-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/processor/static_range_map_unittest.cc:373:  scoped_array<char> memaddr(serializer_.Serialize(*rmap, NULL));
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/processor/static_range_map_unittest.cc-374-  scoped_ptr<TestMap> static_range_map(new TestMap(memaddr.get()));
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc-333-  // safety in WebAssembly. This means some signals might be expected if they
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc:334:  // originate from Wasm code while accessing the guard region. We give V8 the
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc-335-  // chance to handle and recover from these signals first.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc-69-  while (true)
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc:70:    asm volatile ("" : : "r" (thread_id_ptr));
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc-71-  return NULL;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/windows/unittests/dump_analysis.cc-146-        if (structure != NULL)
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/windows/unittests/dump_analysis.cc:147:          *structure = RVA_TO_ADDR(dump_file_view_, descr.Memory.Rva);
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/windows/unittests/dump_analysis.cc-148-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/windows/unittests/dump_analysis.cc-172-        if (structure != NULL)
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/windows/unittests/dump_analysis.cc:173:          *structure = RVA_TO_ADDR(dump_file_view_, curr_rva);
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/client/windows/unittests/dump_analysis.cc-174-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/common/linux/dump_symbols.cc-604-  // loading address.
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/common/linux/dump_symbols.cc:605:  void set_loading_addr(Addr addr, const string &filename) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/common/linux/dump_symbols.cc-606-    if (!has_loading_addr_) {
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/common/linux/dump_symbols.cc-666-  module->SetLoadAddress(loading_addr);
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/common/linux/dump_symbols.cc:667:  info->set_loading_addr(loading_addr, obj_file);
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/common/linux/dump_symbols.cc-668-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i-381-				   void *data, void *arg ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i:382:		x86disasm *dis = (x86disasm *) arg;
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i-383-		if ( dis ) {
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i-397-	long x86_default_resolver( x86_op_t *op, x86_insn_t *insn, void *arg ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i:398:		x86disasm *dis = (x86disasm *) arg;
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i-399-		if ( dis ) {
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i-412-%inline %{
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i:413:	x86disasm * x86disasm_new ( enum x86_options options ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i:414:		x86disasm * dis = (x86disasm *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i:415:				calloc( sizeof( x86disasm ), 1 );
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i-416-		x86_init( options, x86_default_reporter, dis );
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i-419-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i:420:	void x86disasm_free( x86disasm * dis ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm.i-421-		x86_cleanup();
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-520-	unsigned char * x86_get_raw_imm( x86_insn_t *insn );
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:521:	void x86_set_insn_addr( x86_insn_t *insn, unsigned long addr );
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-522-	int x86_format_mnemonic(x86_insn_t *insn, char *buf, int len,
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-855-				   void *data, void *arg ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:856:		X86_Disasm *dis = (X86_Disasm *) arg;
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-857-		if ( dis ) {
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-871-	long x86_default_resolver( x86_op_t *op, x86_insn_t *insn, void *arg ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:872:		X86_Disasm *dis = (X86_Disasm *) arg;
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-873-		if ( dis ) {
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-882-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:883:%extend X86_Disasm { 
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-884-	
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-885-	X86_Disasm( ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:886:		X86_Disasm * dis = (X86_Disasm *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:887:				calloc( sizeof( X86_Disasm ), 1 );
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-888-		x86_init( opt_none, x86_default_reporter, dis );
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-892-	X86_Disasm( enum x86_options options ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:893:		X86_Disasm * dis = (X86_Disasm *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:894:				calloc( sizeof( X86_Disasm ), 1 );
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-895-		x86_init( options, x86_default_reporter, dis );
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-899-	X86_Disasm( enum x86_options options, DISASM_REPORTER reporter ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:900:		X86_Disasm * dis = (X86_Disasm *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:901:				calloc( sizeof( X86_Disasm ), 1 );
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-902-		x86_init( options, reporter, NULL );
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-907-		    void * arg ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:908:		X86_Disasm * dis = (X86_Disasm *)
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i:909:				calloc( sizeof( X86_Disasm ), 1 );
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/libdisasm_oop.i-910-		x86_init( options, reporter, arg );
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/ruby/Makefile-swig-32-RUBY_OBJ	=	$(BASE_NAME)_wrap.o
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/ruby/Makefile-swig:33:RUBY_INC	=	`ruby -e 'puts $$:.join("\n")' | tail -2 | head -1`
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/ruby/Makefile-swig-34-#RUBY_LIB	=	
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/README:1:			Libdisasm SWIG README
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/README-2-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/README-39-	>>> import array
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/README:40:	>>> disasm = x86disasm.X86_Disasm( )
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/README-41-	>>> tgt = open( "/tmp/a.out", "rb" )
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/README-115-		OR
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/README:116:	% x86disasm dis
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/README-117-	_486b0708_p_x86disasm
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/perl/Makefile-swig-29-PERL_OBJ	=	$(BASE_NAME)_wrap.o
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/perl/Makefile-swig:30:PERL_INC	=	`perl -e 'use Config; print $$Config{archlib};'`/CORE
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/perl/Makefile-swig:31:PERL_CC_FLAGS	=	`perl -e 'use Config; print $$Config{ccflags};'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/swig/perl/Makefile-swig-32-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/x86_disasm.c-51-	/* TODO: allow switching when more disassemblers are added */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/x86_disasm.c:52:        size = ia32_disasm_addr( bytes, len, insn);
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/x86_disasm.c-53-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/ia32_insn.h-35-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/ia32_insn.h:36:size_t ia32_disasm_addr( unsigned char * buf, size_t buf_len, 
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/ia32_insn.h-37-		x86_insn_t *insn);
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/ia32_insn.c-572- *    returns the size of the decoded instruction in bytes */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/ia32_insn.c:573:size_t ia32_disasm_addr( unsigned char * buf, size_t buf_len, 
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/ia32_insn.c-574-		x86_insn_t *insn ) {
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/TODO-38-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/TODO:39:these should cover all the wacky disasm exceptions 
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/TODO-40-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/x86_insn.c-154-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/x86_insn.c:155:void x86_set_insn_addr( x86_insn_t *insn, uint32_t addr ) {
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/x86_insn.c-156-        if ( insn ) insn->addr = addr;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/x86_operand_list.c-67-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/x86_operand_list.c:68:/* ================================================== LIBDISASM API */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/x86_operand_list.c-69-/* these could probably just be #defines, but that means exposing the
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-61- * 'code' is provided by libdisasm, it is one of the above
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h:62: * 'data' is provided by libdisasm and is context-specific, per the enums */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-63-typedef void (*DISASM_REPORTER)( enum x86_report_codes code, 
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-69-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h:70:/* ========================================= Libdisasm Management Routines */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-71-enum x86_options {		/* these can be ORed together */
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-483-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h:484:/* TODO: maybe provide insn_new/free(), and have disasm return new insn_t */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-485-/* x86_insn_t : an X86 instruction */
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-650-
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h:651:/* these allow libdisasm 2.0 accessor functions to still be used */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-652-#define x86_get_dest_operand( insn ) x86_operand_1st( insn )
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-693-/* set the address (usually RVA) of the insn */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h:694:void x86_set_insn_addr( x86_insn_t *insn, uint32_t addr );
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-695-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-699-/* set a pointer to the function owning the instruction. The 
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h:700: * type of 'func' is user-defined; libdisasm does not use the func field. */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-701-void x86_set_insn_function( x86_insn_t *insn, void * func );
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-703-/* set a pointer to the block of code owning the instruction. The 
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h:704: * type of 'block' is user-defined; libdisasm does not use the block field. */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-705-void x86_set_insn_block( x86_insn_t *insn, void * block );
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-707-/* instruction tagging: these routines allow the programmer to mark
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h:708: * instructions as "seen" in a DFS, for example. libdisasm does not use
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-709- * the tag field.*/ 
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-823-/* return the size in bytes of the intruction pointed to by 'buf';
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h:824: * this used x86_invariant_disasm since it faster than x86_disasm */
chromium-84.0.4147.105/third_party/breakpad/breakpad/src/third_party/libdisasm/libdis.h-825-size_t x86_size_disasm( unsigned char *buf, unsigned int buf_len );
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-45-if test -z "$BASH_VERSION$ZSH_VERSION" \
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:46:    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-47-  as_echo='print -r --'
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-48-  as_echo_n='print -rn --'
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:49:elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-50-  as_echo='printf %s\n'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-52-else
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:53:  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-54-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-62-	expr "X$arg" : "X\\(.*\\)$as_nl";
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:63:	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-64-      esac;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-199-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:200:  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-201-test \$(( 1 + 1 )) = 2 || exit 1"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-327-      case $as_dir in #(
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:328:      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-329-      *) as_qdir=$as_dir;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-400-  {
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:401:    as_val=`expr "$@" || test $? -eq 1`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-402-  }
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-407-# ----------------------------------------
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:408:# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-409-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-470-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:471:  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-472-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-865-  case $ac_option in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:866:  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-867-  *=)   ac_optarg= ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-909-  -disable-* | --disable-*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:910:    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-911-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-914-    ac_useropt_orig=$ac_useropt
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:915:    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-916-    case $ac_user_opts in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-935-  -enable-* | --enable-*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:936:    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-937-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-940-    ac_useropt_orig=$ac_useropt
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:941:    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-942-    case $ac_user_opts in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1139-  -with-* | --with-*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1140:    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1141-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1144-    ac_useropt_orig=$ac_useropt
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1145:    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1146-    case $ac_user_opts in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1155-  -without-* | --without-*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1156:    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1157-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1160-    ac_useropt_orig=$ac_useropt
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1161:    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1162-    case $ac_user_opts in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1193-  *=*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1194:    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1195-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1214-if test -n "$ac_prev"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1215:  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1216-  as_fn_error $? "missing argument to $ac_option"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1236-    */ )
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1237:      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1238-      eval $ac_var=\$ac_val;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1271-ac_ls_di=`ls -di .` &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1272:ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1273-  as_fn_error $? "working directory cannot be determined"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1327-case $srcdir in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1328:*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1329-esac
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1370-By default, \`make install' will install all the files in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1371:\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1372:an installation prefix other than \`$ac_default_prefix' using \`--prefix',
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1373-for instance \`--prefix=\$HOME'.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1494-*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1495:  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1496-  # A ".." for each directory in $ac_dir_suffix.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:1497:  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-1498-  case $ac_top_builddir_sub in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2020-    *\'*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2021:      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2022-    esac
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2103-      case $ac_val in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2104:      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2105-      esac
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2118-	case $ac_val in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2119:	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2120-	esac
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2238-    set,)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2239:      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2240:$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2241-      ac_cache_corrupted=: ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2249-	# differences in whitespace do not lead to failure.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2250:	ac_old_val_w=`echo x $ac_old_val`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2251:	ac_new_val_w=`echo x $ac_new_val`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2252-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2269-    case $ac_new_val in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2270:    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2271-    *) ac_arg=$ac_var=$ac_new_val ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2338-test "x$ac_build_alias" = x &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2339:  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2340-test "x$ac_build_alias" = x &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2341-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2342:ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2343-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2362-IFS=$ac_save_IFS
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2363:case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2364-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2373-else
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2374:  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2375-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2395-IFS=$ac_save_IFS
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2396:case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2397-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2518-     echo "timestamp, slept: $am_has_slept" > conftest.file
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2519:     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2520-     if test "$*" = "X"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2521-	# -L didn't work.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2522:	set X `ls -t "$srcdir/configure" conftest.file`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2523-     fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2569-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2570:program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2571-
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2572-# Expand $ac_aux_dir to an absolute path.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2573:am_aux_dir=`cd "$ac_aux_dir" && pwd`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2574-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2714-	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2715:	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2716-	     'mkdir (GNU coreutils) '* | \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2787-set x ${MAKE-make}
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2788:ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2789-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2797-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2798:case `${MAKE-make} -f conftest.make 2>/dev/null` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2799-  *@@@%%%=?*=@@@%%%*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2863-
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:2864:if test "`cd $srcdir && pwd`" != "`pwd`"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-2865-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3140-# Ignore all kinds of additional output from 'make'.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:3141:case `$am_make -s -f confmf 2> /dev/null` in #(
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3142-*the\ am__doit\ target*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3150-   echo '.include "confinc"' > confmf
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:3151:   case `$am_make -s -f confmf 2> /dev/null` in #(
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3152-   *the\ am__doit\ target*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3529-$as_echo_n "checking whether the C compiler works... " >&6; }
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:3530:ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3531-
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3573-	then :; else
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:3574:	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3575-	fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3633-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:3634:    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3635-	  break;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3742-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:3743:    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-3744-       break;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-4060-  if test "$am_compiler_list" = ""; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:4061:     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-4062-  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-4367-  if test "$am_compiler_list" = ""; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:4368:     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-4369-  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-5091-  if test "$am_compiler_list" = ""; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:5092:     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-5093-  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-5614-  if test "$am_compiler_list" = ""; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:5615:     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-5616-  fi
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-5846-  # Check for GNU $ac_path_GREP
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:5847:case `"$ac_path_GREP" --version 2>&1` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-5848-*GNU*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-5912-  # Check for GNU $ac_path_EGREP
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:5913:case `"$ac_path_EGREP" --version 2>&1` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-5914-*GNU*)
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6628-do :
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:6629:  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6630-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6633-  cat >>confdefs.h <<_ACEOF
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:6634:#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6635-_ACEOF
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6643-do :
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:6644:  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6645-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6647-  cat >>confdefs.h <<_ACEOF
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:6648:#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6649-_ACEOF
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6656-do :
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:6657:  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6658-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6660-  cat >>confdefs.h <<_ACEOF
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:6661:#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6662-_ACEOF
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6994-                for switch in -std=c++11 -std=c++0x +std=c++11 "-h std=c++11"; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:6995:      cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-6996-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7386-for flag in    -Wmissing-braces   -Wnon-virtual-dtor   -Woverloaded-virtual   -Wreorder   -Wsign-compare   -Wunused-local-typedefs   -Wunused-variable   -Wvla ; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:7387:  as_CACHEVAR=`$as_echo "ax_cv_check_cxxflags_${ax_compiler_flags_test}_$flag" | $as_tr_sh`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7388-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++ compiler accepts $flag" >&5
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7821-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:7822:  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7823-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7964-if test -z "$BASH_VERSION$ZSH_VERSION" \
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:7965:    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7966-  as_echo='print -r --'
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7967-  as_echo_n='print -rn --'
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:7968:elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7969-  as_echo='printf %s\n'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7971-else
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:7972:  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7973-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7981-	expr "X$arg" : "X\\(.*\\)$as_nl";
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:7982:	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-7983-      esac;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8058-# ----------------------------------------
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8059:# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8060-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8130-  {
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8131:    as_val=`expr "$@" || test $? -eq 1`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8132-  }
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8234-      case $as_dir in #(
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8235:      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8236-      *) as_qdir=$as_dir;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8369-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8370:ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8371-ac_cs_version="\\
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8394-  --*=?*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8395:    ac_option=`expr "X$1" : 'X\([^=]*\)='`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8396:    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8397-    ac_shift=:
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8399-  --*=)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8400:    ac_option=`expr "X$1" : 'X\([^=]*\)='`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8401-    ac_optarg=
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8423-    case $ac_optarg in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8424:    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8425-    '') as_fn_error $? "missing file argument" ;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8431-    case $ac_optarg in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8432:    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8433-    esac
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8561-fi
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8562:ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8563-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8578-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8579:ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8580-ac_delim='%!_!# '
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8584-
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8585:  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8586-  if test $ac_delim_n = $ac_delim_num; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8722-for ac_last_try in false false :; do
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8723:  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8724-  if test -z "$ac_tt"; then
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8854-      esac
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8855:      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8856-      as_fn_append ac_file_inputs " '$ac_f'"
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8913-*)
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8914:  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8915-  # A ".." for each directory in $ac_dir_suffix.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8916:  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8917-  case $ac_top_builddir_sub in
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8974-/@mandir@/p'
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8975:case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8976-*datarootdir*) ac_datarootdir_seen=yes;;
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8991-
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:8992:# Neutralize VPATH when `$srcdir' = `.'.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-8993-# Shell code in configure.ac might set extrasub.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9019-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:9020:  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9021-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9065-    * )
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:9066:      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9067-  esac
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9112-    # Strip MF so we end up with the name of the file.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:9113:    mf=`echo "$mf" | sed -e 's/:.*$//'`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9114-    # Check whether this is an Automake generated Makefile or not.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9149-    # from the Makefile without running 'make'.
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:9150:    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9151-    test -z "$DEPDIR" && continue
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:9152:    am__include=`sed -n 's/^am__include = //p' < "$mf"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9153-    test -z "$am__include" && continue
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure:9154:    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
chromium-84.0.4147.105/third_party/breakpad/breakpad/configure-9155-    # Find all dependency output files, they are included files with
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/docs/symbol_files.md-290-    program:
chromium-84.0.4147.105/third_party/breakpad/breakpad/docs/symbol_files.md:291:    *   `$ebp` and `$esp` should be the values of the `%ebp` and `%esp`
chromium-84.0.4147.105/third_party/breakpad/breakpad/docs/symbol_files.md-292-        registers in F.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/docs/symbol_files.md-300-
chromium-84.0.4147.105/third_party/breakpad/breakpad/docs/symbol_files.md:301:> If the program stores values for `$eip`, `$esp`, `$ebp`, `$ebx`, `$esi`, or
chromium-84.0.4147.105/third_party/breakpad/breakpad/docs/symbol_files.md:302:> `$edi`, then those are the values of the given registers in the caller. If the
chromium-84.0.4147.105/third_party/breakpad/breakpad/docs/symbol_files.md:303:> value of `$eip` is zero, that indicates that the end of the stack has been
chromium-84.0.4147.105/third_party/breakpad/breakpad/docs/symbol_files.md-304-> reached.
##############################################
chromium-84.0.4147.105/third_party/breakpad/breakpad/INSTALL-173-directory configuration variables that were expressed in terms of
chromium-84.0.4147.105/third_party/breakpad/breakpad/INSTALL:174:`${prefix}'.  Any directories that were specified during `configure',
chromium-84.0.4147.105/third_party/breakpad/breakpad/INSTALL-175-but not in terms of `${prefix}', must each be overridden at install
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_coverage.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_coverage.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_coverage.sh-25-source $SCRIPT_DIR/build.sh COVERAGE gcc
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_clang_debug.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_clang_debug.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_clang_debug.sh-25-source $SCRIPT_DIR/build.sh DEBUG clang
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_mingw_release.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_mingw_release.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_mingw_release.sh-25-source $SCRIPT_DIR/build.sh RELEASE_MINGW
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_release.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_release.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_release.sh-25-source $SCRIPT_DIR/build.sh RELEASE gcc
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_debug_exception.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_debug_exception.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_debug_exception.sh-25-source $SCRIPT_DIR/build.sh DEBUG_EXCEPTION gcc
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_debug.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_debug.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_gcc_debug.sh-25-source $SCRIPT_DIR/build.sh DEBUG gcc
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_clang_asan.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_clang_asan.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_clang_asan.sh-25-source $SCRIPT_DIR/build.sh ASAN clang
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_clang_release.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_clang_release.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/linux/build_clang_release.sh-25-source $SCRIPT_DIR/build.sh RELEASE clang
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/ndk-build/build_khronos.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/ndk-build/build_khronos.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/ndk-build/build_khronos.sh-25-source $SCRIPT_DIR/build.sh
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/android-release/build_arm.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/android-release/build_arm.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/android-release/build_arm.sh-25-source $SCRIPT_DIR/build.sh "armeabi-v7a with NEON"
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/android-release/build_x86.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/android-release/build_x86.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/android-release/build_x86.sh-25-source $SCRIPT_DIR/build.sh x86
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/macos/build_clang_debug.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/macos/build_clang_debug.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/macos/build_clang_debug.sh-25-source $SCRIPT_DIR/build.sh Debug
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/macos/build_clang_release.sh-23-
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/macos/build_clang_release.sh:24:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/shaderc/src/kokoro/macos/build_clang_release.sh-25-source $SCRIPT_DIR/build.sh RelWithDebInfo
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/README.md-88-
chromium-84.0.4147.105/third_party/shaderc/src/README.md:89:In the following sections, `$SOURCE_DIR` is the directory you intend to clone
chromium-84.0.4147.105/third_party/shaderc/src/README.md-90-Shaderc into.
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/README.md-129-3) Decide where to place the build output. In the following steps, we'll call it
chromium-84.0.4147.105/third_party/shaderc/src/README.md:130:   `$BUILD_DIR`. Any new directory should work. We recommend building outside
chromium-84.0.4147.105/third_party/shaderc/src/README.md-131-   the source tree, but it is also common to build in a (new) subdirectory of
chromium-84.0.4147.105/third_party/shaderc/src/README.md:132:   `$SOURCE_DIR`, such as `$SOURCE_DIR/build`.
chromium-84.0.4147.105/third_party/shaderc/src/README.md-133-
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/README.md-164-After a successful build, you should have a `glslc` executable somewhere under
chromium-84.0.4147.105/third_party/shaderc/src/README.md:165:the `$BUILD_DIR/glslc/` directory, as well as a `libshaderc` library somewhere
chromium-84.0.4147.105/third_party/shaderc/src/README.md:166:under the `$BUILD_DIR/libshaderc/` directory.
chromium-84.0.4147.105/third_party/shaderc/src/README.md-167-
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/README.md-213-To create a Docker image containing Shaderc command line tools, issue the
chromium-84.0.4147.105/third_party/shaderc/src/README.md:214:following command in `${SOURCE_DIR}`: `docker build -t <IMAGE-NAME> .`.
chromium-84.0.4147.105/third_party/shaderc/src/README.md-215-The created image will have all the command line tools installed at
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/README.md-260-
chromium-84.0.4147.105/third_party/shaderc/src/README.md:261:Then the coverage report can be found under the `$BUILD_DIR/coverage-report`
chromium-84.0.4147.105/third_party/shaderc/src/README.md-262-directory.
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/glslc/README.asciidoc-523-                               | b.vert.spv | b.vert.spv.d | b.vert.spv: b.vert
chromium-84.0.4147.105/third_party/shaderc/src/glslc/README.asciidoc:524:|glslc -S -MD main.vert |main.vert.spvasm  |main.vert.spvasm.d  |main.vert.spvasm: main.vert
chromium-84.0.4147.105/third_party/shaderc/src/glslc/README.asciidoc-525-|glslc -c -MD main.vert -MF dep_info  |main.vert.spv|dep_info|main.vert.spv: main.vert
##############################################
chromium-84.0.4147.105/third_party/shaderc/src/glslc/test/option_dash_M.py-89-        rule = {'target': <target name>,
chromium-84.0.4147.105/third_party/shaderc/src/glslc/test/option_dash_M.py:90:                'target_extension': <.spv, .spvasm or None>,
chromium-84.0.4147.105/third_party/shaderc/src/glslc/test/option_dash_M.py-91-                'dependency': <dependent file names>}
##############################################
chromium-84.0.4147.105/third_party/glslang/src/README.md-8-1. **SPIRV Folder, 1-May, 2020.** Glslang, when installed through CMake,
chromium-84.0.4147.105/third_party/glslang/src/README.md:9:will install a `SPIRV` folder into `${CMAKE_INSTALL_INCLUDEDIR}`.
chromium-84.0.4147.105/third_party/glslang/src/README.md-10-This `SPIRV` folder is being moved to `glslang/SPIRV`.
##############################################
chromium-84.0.4147.105/third_party/glslang/src/README.md-66-
chromium-84.0.4147.105/third_party/glslang/src/README.md:67:## Execution of Standalone Wrapper
chromium-84.0.4147.105/third_party/glslang/src/README.md-68-
##############################################
chromium-84.0.4147.105/third_party/glslang/src/README.md-139-
chromium-84.0.4147.105/third_party/glslang/src/README.md:140:Assume the source directory is `$SOURCE_DIR` and the build directory is
chromium-84.0.4147.105/third_party/glslang/src/README.md:141:`$BUILD_DIR`. First ensure the build directory exists, then navigate to it:
chromium-84.0.4147.105/third_party/glslang/src/README.md-142-
##############################################
chromium-84.0.4147.105/third_party/glslang/src/README.md-210-
chromium-84.0.4147.105/third_party/glslang/src/README.md:211:### Building to WASM for the Web and Node
chromium-84.0.4147.105/third_party/glslang/src/README.md:212:### Building a standalone JS/WASM library for the Web and Node
chromium-84.0.4147.105/third_party/glslang/src/README.md-213-
##############################################
chromium-84.0.4147.105/third_party/glslang/src/README.md-220-* Set `-DENABLE_HLSL=OFF` if HLSL is not needed.
chromium-84.0.4147.105/third_party/glslang/src/README.md:221:* For a standalone JS/WASM library, turn on `-DENABLE_GLSLANG_JS=ON`.
chromium-84.0.4147.105/third_party/glslang/src/README.md-222-* For building a minimum-size web subset of core glslang:
##############################################
chromium-84.0.4147.105/third_party/glslang/src/README.md-228-* To get a fully minimized build, make sure to use `brotli` to compress the .js
chromium-84.0.4147.105/third_party/glslang/src/README.md:229:  and .wasm files
chromium-84.0.4147.105/third_party/glslang/src/README.md-230-
##############################################
chromium-84.0.4147.105/third_party/glslang/src/README.md-259-The [`runtests` script](Test/runtests) requires compiled binaries to be
chromium-84.0.4147.105/third_party/glslang/src/README.md:260:installed into `$BUILD_DIR/install`. Please make sure you have supplied the
chromium-84.0.4147.105/third_party/glslang/src/README.md-261-correct configuration to CMake (using `-DCMAKE_INSTALL_PREFIX`) when building;
##############################################
chromium-84.0.4147.105/third_party/glslang/src/glslang/OSDependent/Web/glslang.js.cpp-267- * build target can generate an executable with a trivial use case instead of
chromium-84.0.4147.105/third_party/glslang/src/glslang/OSDependent/Web/glslang.js.cpp:268: * generating a WASM binary. This is done so that there is a target that can be
chromium-84.0.4147.105/third_party/glslang/src/glslang/OSDependent/Web/glslang.js.cpp:269: * built and output analyzed using desktop tools, since WASM binaries are
chromium-84.0.4147.105/third_party/glslang/src/glslang/OSDependent/Web/glslang.js.cpp-270- * specific to the Emscripten toolchain.
##############################################
chromium-84.0.4147.105/third_party/glslang/src/Test/runtests-18-        echo Running $t...
chromium-84.0.4147.105/third_party/glslang/src/Test/runtests:19:        b=`basename $t`
chromium-84.0.4147.105/third_party/glslang/src/Test/runtests-20-        $EXE -i -l $t > $TARGETDIR/$b.out
##############################################
chromium-84.0.4147.105/third_party/glslang/src/Test/validate-shaders.sh-30-    echo "   --no-color      disables output colorization"
chromium-84.0.4147.105/third_party/glslang/src/Test/validate-shaders.sh:31:    echo "   --dump-asm      dumps all successfully compiled shader assemblies"
chromium-84.0.4147.105/third_party/glslang/src/Test/validate-shaders.sh-32-    echo "   --dump-val      dumps all validation results"
##############################################
chromium-84.0.4147.105/third_party/glslang/src/Test/web.runtests-13-      echo Running $t...
chromium-84.0.4147.105/third_party/glslang/src/Test/web.runtests:14:      b=`basename $t`
chromium-84.0.4147.105/third_party/glslang/src/Test/web.runtests-15-      $EXE -V -o webtest.spv $t
##############################################
chromium-84.0.4147.105/third_party/glslang/src/Test/web.runtests-24-wc --bytes $EXE > $TARGETDIR/size
chromium-84.0.4147.105/third_party/glslang/src/Test/web.runtests:25:echo "base size was" `cat $BASEDIR/size`
chromium-84.0.4147.105/third_party/glslang/src/Test/web.runtests:26:echo "new  size  is" `cat $TARGETDIR/size`
chromium-84.0.4147.105/third_party/glslang/src/Test/web.runtests-27-
##############################################
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-67-
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:68:#define GET_INSTANCE_PROC_ADDR(inst, entrypoint)                               \
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-69-    {                                                                          \
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-70-        demo->fp##entrypoint =                                                 \
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:71:            (PFN_vk##entrypoint)vkGetInstanceProcAddr(inst, "vk" #entrypoint); \
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-72-        if (demo->fp##entrypoint == NULL) {                                    \
##############################################
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-77-
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:78:#define GET_DEVICE_PROC_ADDR(dev, entrypoint)                                  \
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-79-    {                                                                          \
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-80-        demo->fp##entrypoint =                                                 \
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:81:            (PFN_vk##entrypoint)vkGetDeviceProcAddr(dev, "vk" #entrypoint);    \
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-82-        if (demo->fp##entrypoint == NULL) {                                    \
##############################################
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-1907-        demo->CreateDebugReportCallback =
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:1908:            (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-1909-                demo->inst, "vkCreateDebugReportCallbackEXT");
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-1910-        demo->DestroyDebugReportCallback =
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:1911:            (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-1912-                demo->inst, "vkDestroyDebugReportCallbackEXT");
##############################################
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-1923-        demo->DebugReportMessage =
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:1924:            (PFN_vkDebugReportMessageEXT)vkGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-1925-                demo->inst, "vkDebugReportMessageEXT");
##############################################
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-1955-    // BEFORE and AFTER vkCreateDevice is a good test for the loader
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:1956:    GET_INSTANCE_PROC_ADDR(demo->inst, GetPhysicalDeviceSurfaceCapabilitiesKHR);
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:1957:    GET_INSTANCE_PROC_ADDR(demo->inst, GetPhysicalDeviceSurfaceFormatsKHR);
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:1958:    GET_INSTANCE_PROC_ADDR(demo->inst, GetPhysicalDeviceSurfacePresentModesKHR);
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:1959:    GET_INSTANCE_PROC_ADDR(demo->inst, GetPhysicalDeviceSurfaceSupportKHR);
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-1960-
##############################################
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-2012-
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:2013:    GET_DEVICE_PROC_ADDR(demo->device, CreateSwapchainKHR);
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:2014:    GET_DEVICE_PROC_ADDR(demo->device, DestroySwapchainKHR);
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:2015:    GET_DEVICE_PROC_ADDR(demo->device, GetSwapchainImagesKHR);
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:2016:    GET_DEVICE_PROC_ADDR(demo->device, AcquireNextImageKHR);
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c:2017:    GET_DEVICE_PROC_ADDR(demo->device, QueuePresentKHR);
chromium-84.0.4147.105/third_party/glfw/src/tests/vulkan.c-2018-}
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/wl_window.c-1603-        (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)
chromium-84.0.4147.105/third_party/glfw/src/src/wl_window.c:1604:        vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
chromium-84.0.4147.105/third_party/glfw/src/src/wl_window.c-1605-    if (!vkGetPhysicalDeviceWaylandPresentationSupportKHR)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/wl_window.c-1626-    vkCreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)
chromium-84.0.4147.105/third_party/glfw/src/src/wl_window.c:1627:        vkGetInstanceProcAddr(instance, "vkCreateWaylandSurfaceKHR");
chromium-84.0.4147.105/third_party/glfw/src/src/wl_window.c-1628-    if (!vkCreateWaylandSurfaceKHR)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/glfw3Config.cmake.in:1:include("${CMAKE_CURRENT_LIST_DIR}/glfw3Targets.cmake")
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/cocoa_window.m-1857-    vkCreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)
chromium-84.0.4147.105/third_party/glfw/src/src/cocoa_window.m:1858:        vkGetInstanceProcAddr(instance, "vkCreateMacOSSurfaceMVK");
chromium-84.0.4147.105/third_party/glfw/src/src/cocoa_window.m-1859-    if (!vkCreateMacOSSurfaceMVK)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/vulkan.c-80-    _glfw.vk.EnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties)
chromium-84.0.4147.105/third_party/glfw/src/src/vulkan.c:81:        vkGetInstanceProcAddr(NULL, "vkEnumerateInstanceExtensionProperties");
chromium-84.0.4147.105/third_party/glfw/src/src/vulkan.c-82-    if (!_glfw.vk.EnumerateInstanceExtensionProperties)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/vulkan.c-253-
chromium-84.0.4147.105/third_party/glfw/src/src/vulkan.c:254:    proc = (GLFWvkproc) vkGetInstanceProcAddr(instance, procname);
chromium-84.0.4147.105/third_party/glfw/src/src/vulkan.c-255-#if defined(_GLFW_VULKAN_STATIC)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c-2886-            (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c:2887:            vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c-2888-        if (!vkGetPhysicalDeviceXcbPresentationSupportKHR)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c-2912-            (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c:2913:            vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c-2914-        if (!vkGetPhysicalDeviceXlibPresentationSupportKHR)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c-2947-        vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c:2948:            vkGetInstanceProcAddr(instance, "vkCreateXcbSurfaceKHR");
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c-2949-        if (!vkCreateXcbSurfaceKHR)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c-2977-        vkCreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c:2978:            vkGetInstanceProcAddr(instance, "vkCreateXlibSurfaceKHR");
chromium-84.0.4147.105/third_party/glfw/src/src/x11_window.c-2979-        if (!vkCreateXlibSurfaceKHR)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/internal.h-172-#if defined(_GLFW_VULKAN_STATIC)
chromium-84.0.4147.105/third_party/glfw/src/src/internal.h:173:  PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance,const char*);
chromium-84.0.4147.105/third_party/glfw/src/src/internal.h-174-  VkResult vkEnumerateInstanceExtensionProperties(const char*,uint32_t*,VkExtensionProperties*);
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/win32_window.c-2137-        (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)
chromium-84.0.4147.105/third_party/glfw/src/src/win32_window.c:2138:        vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
chromium-84.0.4147.105/third_party/glfw/src/src/win32_window.c-2139-    if (!vkGetPhysicalDeviceWin32PresentationSupportKHR)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/src/win32_window.c-2158-    vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)
chromium-84.0.4147.105/third_party/glfw/src/src/win32_window.c:2159:        vkGetInstanceProcAddr(instance, "vkCreateWin32SurfaceKHR");
chromium-84.0.4147.105/third_party/glfw/src/src/win32_window.c-2160-    if (!vkCreateWin32SurfaceKHR)
##############################################
chromium-84.0.4147.105/third_party/glfw/src/docs/compile.dox-214-__LIB_SUFFIX__ affects where the GLFW shared /dynamic library is installed.  If
chromium-84.0.4147.105/third_party/glfw/src/docs/compile.dox:215:it is empty, it is installed to `${CMAKE_INSTALL_PREFIX}/lib`.  If it is set to
chromium-84.0.4147.105/third_party/glfw/src/docs/compile.dox:216:`64`, it is installed to `${CMAKE_INSTALL_PREFIX}/lib64`.
chromium-84.0.4147.105/third_party/glfw/src/docs/compile.dox-217-
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13053-NK_GLOBAL const char nk_proggy_clean_ttf_compressed_data_base85[11980+1] =
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13054:    "7])#######hV0qs'/###[),##/l:$#Q6>##5[n42>c-TH`->>#/e>11NNV=Bv(*:.F?uu#(gRU.o0XGH`$vhLG1hxt9?W`#,5LsCp#-i>.r$<$6pD>Lb';9Crc6tgXmKVeU2cD4Eo3R/"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13055:    "2*>]b(MC;$jPfY.;h^`IWM9<Lh2TlS+f-s$o6Q<BWH`YiU.xfLq$N;$0iR/GX:U(jcW2p/W*q?-qmnUCI;jHSAiFWM.R*kU@C=GH?a9wp8f$e.-4^Qg1)Q-GL(lf(r/7GrRgwV%MS=C#"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13056-    "`8ND>Qo#t'X#(v#Y9w0#1D$CIf;W'#pWUPXOuxXuU(H9M(1<q-UE31#^-V'8IRUo7Qf./L>=Ke$$'5F%)]0^#0X@U.a<r:QLtFsLcL6##lOj)#.Y5<-R&KgLwqJfLgN&;Q?gI^#DY2uL"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13057-    "i@^rMl9t=cWq6##weg>$FBjVQTSDgEKnIS7EM9>ZY9w0#L;>>#Mx&4Mvt//L[MkA#W@lK.N'[0#7RL_&#w+F%HtG9M#XL`N&.,GM4Pg;-<nLENhvx>-VsM.M0rJfLH2eTM`*oJMHRC`N"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13058:    "kfimM2J,W-jXS:)r0wK#@Fge$U>`w'N7G#$#fB#$E^$#:9:hk+eOe--6x)F7*E%?76%^GMHePW-Z5l'&GiF#$956:rS?dA#fiK:)Yr+`&#0j@'DbG&#^$PG.Ll+DNa<XCMKEV*N)LN/N"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13059:    "*b=%Q6pia-Xg8I$<MR&,VdJe$<(7G;Ckl'&hF;;$<_=X(b.RS%%)###MPBuuE1V:v&cX&#2m#(&cV]`k9OhLMbn%s$G2,B$BfD3X*sp5#l,$R#]x_X1xKX%b5U*[r5iMfUo9U`N99hG)"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13060-    "tm+/Us9pG)XPu`<0s-)WTt(gCRxIg(%6sfh=ktMKn3j)<6<b5Sk_/0(^]AaN#(p/L>&VZ>1i%h1S9u5o@YaaW$e+b<TWFn/Z:Oh(Cx2$lNEoN^e)#CFY@@I;BOQ*sRwZtZxRcU7uW6CX"
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13064-    "U]W]+fh18.vsai00);D3@4ku5P?DP8aJt+;qUM]=+b'8@;mViBKx0DE[-auGl8:PJ&Dj+M6OC]O^((##]`0i)drT;-7X`=-H3[igUnPG-NZlo.#k@h#=Ork$m>a>$-?Tm$UV(?#P6YY#"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13065:    "'/###xe7q.73rI3*pP/$1>s9)W,JrM7SN]'/4C#v$U`0#V.[0>xQsH$fEmPMgY2u7Kh(G%siIfLSoS+MK2eTM$=5,M8p`A.;_R%#u[K#$x4AG8.kK/HSB==-'Ie/QTtG?-.*^N-4B/ZM"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13066:    "_3YlQC7(p7q)&](`6_c)$/*JL(L-^(]$wIM`dPtOdGA,U3:w2M-0<q-]L_?^)1vw'.,MRsqVr.L;aN&#/EgJ)PBc[-f>+WomX2u7lqM2iEumMTcsF?-aT=Z-97UEnXglEn1K-bnEO`gu"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13067-    "Ft(c%=;Am_Qs@jLooI&NX;]0#j4#F14;gl8-GQpgwhrq8'=l_f-b49'UOqkLu7-##oDY2L(te+Mch&gLYtJ,MEtJfLh'x'M=$CS-ZZ%P]8bZ>#S?YY#%Q&q'3^Fw&?D)UDNrocM3A76/"
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13074-    "sj_$%[HK%'F####QRZJ::Y3EGl4'@%FkiAOg#p[##O`gukTfBHagL<LHw%q&OV0##F=6/:chIm0@eCP8X]:kFI%hl8hgO@RcBhS-@Qb$%+m=hPDLg*%K8ln(wcf3/'DW-$.lR?n[nCH-"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13075:    "eXOONTJlh:.RYF%3'p6sq:UIMA945&^HFS87@$EP2iG<-lCO$%c`uKGD3rC$x0BL8aFn--`ke%#HMP'vh1/R&O_J9'um,.<tx[@%wsJk&bUT2`0uMv7gg#qp/ij.L56'hl;.s5CUrxjO"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13076:    "M7-##.l+Au'A&O:-T72L]P`&=;ctp'XScX*rU.>-XTt,%OVU4)S1+R-#dg0/Nn?Ku1^0f$B*P:Rowwm-`0PKjYDDM'3]d39VZHEl4,.j']Pk-M.h^&:0FACm$maq-&sgw0t7/6(^xtk%"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13077:    "LuH88Fj-ekm>GA#_>568x6(OFRl-IZp`&b,_P'$M<Jnq79VsJW/mWS*PUiq76;]/NM_>hLbxfc$mj`,O;&%W2m`Zh:/)Uetw:aJ%]K9h:TcF]u_-Sj9,VK3M.*'&0D[Ca]J9gp8,kAW]"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13078-    "%(?A%R$f<->Zts'^kn=-^@c4%-pY6qI%J%1IGxfLU9CP8cbPlXv);C=b),<2mOvP8up,UVf3839acAWAW-W?#ao/^#%KYo8fRULNd2.>%m]UK:n%r$'sw]J;5pAoO_#2mO3n,'=H5(et"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13079:    "Hg*`+RLgv>=4U8guD$I%D:W>-r5V*%j*W:Kvej.Lp$<M-SGZ':+Q_k+uvOSLiEo(<aD/K<CCc`'Lx>'?;++O'>()jLR-^u68PHm8ZFWe+ej8h:9r6L*0//c&iH&R8pRbA#Kjm%upV1g:"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13080-    "a_#Ur7FuA#(tRh#.Y5K+@?3<-8m0$PEn;J:rh6?I6uG<-`wMU'ircp0LaE_OtlMb&1#6T.#FDKu#1Lw%u%+GM+X'e?YLfjM[VO0MbuFp7;>Q&#WIo)0@F%q7c#4XAXN-U&VB<HFF*qL("
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13081-    "$/V,;(kXZejWO`<[5?\?ewY(*9=%wDc;,u<'9t3W-(H1th3+G]ucQ]kLs7df($/*JL]@*t7Bu_G3_7mp7<iaQjO@.kLg;x3B0lqp7Hf,^Ze7-##@/c58Mo(3;knp0%)A7?-W+eI'o8)b<"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13082:    "nKnw'Ho8C=Y>pqB>0ie&jhZ[?iLR@@_AvA-iQC(=ksRZRVp7`.=+NpBC%rh&3]R:8XDmE5^V8O(x<<aG/1N$#FX$0V5Y6x'aErI3I$7x%E`v<-BY,)%-?Psf*l?%C3.mM(=/M0:JxG'?"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13083:    "7WhH%o'a<-80g0NBxoO(GH<dM]n.+%q@jH?f.UsJ2Ggs&4<-e47&Kl+f//9@`b+?.TeN_&B8Ss?v;^Trk;f#YvJkl&w$]>-+k?'(<S:68tq*WoDfZu';mM?8X[ma8W%*`-=;D.(nc7/;"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13084-    ")g:T1=^J$&BRV(-lTmNB6xqB[@0*o.erM*<SWF]u2=st-*(6v>^](H.aREZSi,#1:[IXaZFOm<-ui#qUq2$##Ri;u75OK#(RtaW-K-F`S+cF]uN`-KMQ%rP/Xri.LRcB##=YL3BgM/3M"
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13099-    "b0v=Pjer]$gG&JXDf->'StvU7505l9$AFvgYRI^&<^b68?j#q9QX4SM'RO#&sL1IM.rJfLUAj221]d##DW=m83u5;'bYx,*Sl0hL(W;;$doB&O/TQ:(Z^xBdLjL<Lni;''X.`$#8+1GD"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13100:    ":k$YUWsbn8ogh6rxZ2Z9]%nd+>V#*8U_72Lh+2Q8Cj0i:6hp&$C/:p(HK>T8Y[gHQ4`4)'$Ab(Nof%V'8hL&#<NEdtg(n'=S1A(Q1/I&4([%dM`,Iu'1:_hL>SfD07&6D<fp8dHM7/g+"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13101-    "tlPN9J*rKaPct&?'uBCem^jn%9_K)<,C5K3s=5g&GmJb*[SYq7K;TRLGCsM-$$;S%:Y@r7AK0pprpL<Lrh,q7e/%KWK:50I^+m'vi`3?%Zp+<-d+$L-Sv:@.o19n$s0&39;kn;S%BSq*"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13102-    "$3WoJSCLweV[aZ'MQIjO<7;X-X;&+dMLvu#^UsGEC9WEc[X(wI7#2.(F0jV*eZf<-Qv3J-c+J5AlrB#$p(H68LvEA'q3n0#m,[`*8Ft)FcYgEud]CWfm68,(aLA$@EFTgLXoBq/UPlp7"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13103:    ":d[/;r_ix=:TF`S5H-b<LI&HY(K=h#)]Lk$K14lVfm:x$H<3^Ql<M`$OhapBnkup'D#L$Pb_`N*g]2e;X/Dtg,bsj&K#2[-:iYr'_wgH)NUIR8a1n#S?Yej'h8^58UbZd+^FKD*T@;6A"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13104-    "7aQC[K8d-(v6GI$x:T<&'Gp5Uf>@M.*J:;$-rv29'M]8qMv-tLp,'886iaC=Hb*YJoKJ,(j%K=H`K.v9HggqBIiZu'QvBT.#=)0ukruV&.)3=(^1`o*Pj4<-<aN((^7('#Z0wK#5GX@7"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13105:    "u][`*S^43933A4rl][`*O4CgLEl]v$1Q3AeF37dbXk,.)vj#x'd`;qgbQR%FW,2(?LO=s%Sc68%NP'##Aotl8x=BE#j1UD([3$M(]UI2LX3RpKN@;/#f'f/&_mt&F)XdF<9t4)Qa.*kT"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13106-    "LwQ'(TTB9.xH'>#MJ+gLq9-##@HuZPN0]u:h7.T..G:;$/Usj(T7`Q8tT72LnYl<-qx8;-HV7Q-&Xdx%1a,hC=0u+HlsV>nuIQL-5<N?)NBS)QN*_I,?&)2'IM%L3I)X((e/dl2&8'<M"
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13113-    "CdQ*:Ir<($u&)#(&?L9Rg3H)4fiEp^iI9O8KnTj,]H?D*r7'M;PwZ9K0E^k&-cpI;.p/6_vwoFMV<->#%Xi.LxVnrU(4&8/P+:hLSKj$#U%]49t'I:rgMi'FL@a:0Y-uA[39',(vbma*"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13114:    "hU%<-SRF`Tt:542R_VV$p@[p8DV[A,?1839FWdF<TddF<9Ah-6&9tWoDlh]&1SpGMq>Ti1O*H&#(AL8[_P%.M>v^-))qOT*F5Cq0`Ye%+$B6i:7@0IX<N+T+0MlMBPQ*Vj>SsD<U4JHY"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13115-    "8kD2)2fU/M#$e.)T4,_=8hLim[&);?UkK'-x?'(:siIfL<$pFM`i<?%W(mGDHM%>iWP,##P`%/L<eXi:@Z9C.7o=@(pXdAO/NLQ8lPl+HPOQa8wD8=^GlPa8TKI1CjhsCTSLJM'/Wl>-"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13116:    "S(qw%sf/@%#B6;/U7K]uZbi^Oc^2n<bhPmUkMw>%t<)'mEVE''n`WnJra$^TKvX5B>;_aSEK',(hwa0:i4G?.Bci.(X[?b*($,=-n<.Q%`(X=?+@Am*Js0&=3bh8K]mL<LoNs'6,'85`"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13117-    "0?t/'_U59@]ddF<#LdF<eWdF<OuN/45rY<-L@&#+fm>69=Lb,OcZV/);TTm8VI;?%OtJ<(b4mq7M6:u?KRdF<gR@2L=FNU-<b[(9c/ML3m;Z[$oF3g)GAWqpARc=<ROu7cL5l;-[A]%/"
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13120-    "?6*C()dOp7:WL,b&3Rg/.cmM9&r^>$(>.Z-I&J(Q0Hd5Q%7Co-b`-c<N(6r@ip+AurK<m86QIth*#v;-OBqi+L7wDE-Ir8K['m+DDSLwK&/.?-V%U_%3:qKNu$_b*B-kp7NaD'QdWQPK"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13121:    "Yq[@>P)hI;*_F]u`Rb[.j8_Q/<&>uu+VsH$sM9TA%?)(vmJ80),P7E>)tjD%2L=-t#fK[%`v=Q8<FfNkgg^oIbah*#8/Qt$F&:K*-(N/'+1vMB,u()-a.VUU*#[e%gAAO(S>WlA2);Sa"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13122:    ">gXm8YB`1d@K#n]76-a$U,mF<fX]idqd)<3,]J7JmW4`6]uks=4-72L(jEk+:bJ0M^q-8Dm_Z?0olP1C9Sa&H[d&c$ooQUj]Exd*3ZM@-WGW2%s',B-_M%>%Ul:#/'xoFM9QX-$.QN'>"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13123:    "[%$Z$uF6pA6Ki2O5:8w*vP1<-1`[G,)-m#>0`P&#eb#.3i)rtB61(o'$?X3B</R90;eZ]%Ncq;-Tl]#F>2Qft^ae_5tKL9MUe9b*sLEQ95C&`=G?@Mj=wh*'3E>=-<)Gt*Iw)'QG:`@I"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13124-    "wOf7&]1i'S01B+Ev/Nac#9S;=;YQpg_6U`*kVY39xK,[/6Aj7:'1Bm-_1EYfa1+o&o4hp7KN_Q(OlIo@S%;jVdn0'1<Vc52=u`3^o-n1'g4v58Hj&6_t7$##?M)c<$bgQ_'SY((-xkA#"
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13127-    "i]lR8qQ2oA8wcRCZ^7w/Njh;?.stX?Q1>S1q4Bn$)K1<-rGdO'$Wr.Lc.CG)$/*JL4tNR/,SVO3,aUw'DJN:)Ss;wGn9A32ijw%FL+Z0Fn.U9;reSq)bmI32U==5ALuG&#Vf1398/pVo"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13128:    "1*c-(aY168o<`JsSbk-,1N;$>0:OUas(3:8Z972LSfF8eb=c-;>SPw7.6hn3m`9^Xkn(r.qS[0;T%&Qc=+STRxX'q1BNk3&*eu2;&8q$&x>Q#Q7^Tf+6<(d%ZVmj2bDi%.3L2n+4W'$P"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13129-    "iDDG)g,r%+?,$@?uou5tSe2aN_AQU*<h`e-GI7)?OK2A.d7_c)?wQ5AS@DL3r#7fSkgl6-++D:'A,uq7SvlB$pcpH'q3n0#_%dY#xCpr-l<F0NR@-##FEV6NTF6##$l84N1w?AO>'IAO"
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13132-    "w$)F./^n3+rlo+DB;5sIYGNk+i1t-69Jg--0pao7Sm#K)pdHW&;LuDNH@H>#/X-TI(;P>#,Gc>#0Su>#4`1?#8lC?#<xU?#@.i?#D:%@#HF7@#LRI@#P_[@#Tkn@#Xw*A#]-=A#a9OA#"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13133:    "d<F&#*;G##.GY##2Sl##6`($#:l:$#>xL$#B.`$#F:r$#JF.%#NR@%#R_R%#Vke%#Zww%#_-4&#3^Rh%Sflr-k'MS.o?.5/sWel/wpEM0%3'/1)K^f1-d>G21&v(35>V`39V7A4=onx4"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h:13134:    "A1OY5EI0;6Ibgr6M$HS7Q<)58C5w,;WoA*#[%T*#`1g*#d=#+#hI5+#lUG+#pbY+#tnl+#x$),#&1;,#*=M,#.I`,#2Ur,#6b.-#;w[H#iQtA#m^0B#qjBB#uvTB##-hB#'9$C#+E6C#"
chromium-84.0.4147.105/third_party/glfw/src/deps/nuklear.h-13135-    "/QHC#3^ZC#7jmC#;v)D#?,<D#C8ND#GDaD#KPsD#O]/E#g1A5#KA*1#gC17#MGd;#8(02#L-d3#rWM4#Hga1#,<w0#T.j<#O#'2#CYN1#qa^:#_4m3#o@/=#eG8=#t8J5#`+78#4uI-#"
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/vulkan/vulkan_core.h-2887-
chromium-84.0.4147.105/third_party/glfw/src/deps/vulkan/vulkan_core.h:2888:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/glfw/src/deps/vulkan/vulkan_core.h-2889-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/glfw/src/deps/vulkan/vulkan_core.h-2891-
chromium-84.0.4147.105/third_party/glfw/src/deps/vulkan/vulkan_core.h:2892:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/glfw/src/deps/vulkan/vulkan_core.h-2893-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-13-while [ -h "$PRG" ] ; do
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:14:    ls=`ls -ld "$PRG"`
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:15:    link=`expr "$ls" : '.*-> \(.*\)$'`
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-16-    if expr "$link" : '/.*' > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-18-    else
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:19:        PRG=`dirname "$PRG"`"/$link"
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-20-    fi
##############################################
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-22-SAVED="`pwd`"
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:23:cd "`dirname \"$PRG\"`/" >/dev/null
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-24-APP_HOME="`pwd -P`"
##############################################
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-27-APP_NAME="Gradle"
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:28:APP_BASE_NAME=`basename "$0"`
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-29-
##############################################
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-113-if $cygwin ; then
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:114:    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:115:    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:116:    JAVACMD=`cygpath --unix "$JAVACMD"`
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-117-
##############################################
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-132-    for arg in "$@" ; do
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:133:        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:134:        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-135-
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-136-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:137:            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-138-        else
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew:139:            eval `echo args$i`="\"$arg\""
chromium-84.0.4147.105/third_party/gradle_wrapper/gradlew-140-        fi
##############################################
chromium-84.0.4147.105/third_party/afl/src/experimental/clang_asm_normalize/as-55-
chromium-84.0.4147.105/third_party/afl/src/experimental/clang_asm_normalize/as:56:TMPFILE=`mktemp $TMPDIR/.afl-XXXXXXXXXX.s`
chromium-84.0.4147.105/third_party/afl/src/experimental/clang_asm_normalize/as-57-
##############################################
chromium-84.0.4147.105/third_party/afl/src/experimental/clang_asm_normalize/as-59-
chromium-84.0.4147.105/third_party/afl/src/experimental/clang_asm_normalize/as:60:clang -cc1as -filetype asm -output-asm-variant 0 "${__AFL_FNAME}" >"$TMPFILE"
chromium-84.0.4147.105/third_party/afl/src/experimental/clang_asm_normalize/as-61-
##############################################
chromium-84.0.4147.105/third_party/afl/src/experimental/crash_triage/triage_crashes.sh-71-
chromium-84.0.4147.105/third_party/afl/src/experimental/crash_triage/triage_crashes.sh:72:CCOUNT=$((`ls -- "$DIR/crashes" 2>/dev/null | wc -l`))
chromium-84.0.4147.105/third_party/afl/src/experimental/crash_triage/triage_crashes.sh-73-
##############################################
chromium-84.0.4147.105/third_party/afl/src/experimental/crash_triage/triage_crashes.sh-82-
chromium-84.0.4147.105/third_party/afl/src/experimental/crash_triage/triage_crashes.sh:83:  id=`basename -- "$crash" | cut -d, -f1 | cut -d: -f2`
chromium-84.0.4147.105/third_party/afl/src/experimental/crash_triage/triage_crashes.sh:84:  sig=`basename -- "$crash" | cut -d, -f2 | cut -d: -f2`
chromium-84.0.4147.105/third_party/afl/src/experimental/crash_triage/triage_crashes.sh-85-
##############################################
chromium-84.0.4147.105/third_party/afl/src/Makefile-140-publish: clean
chromium-84.0.4147.105/third_party/afl/src/Makefile:141:	test "`basename $$PWD`" = "afl" || exit 1
chromium-84.0.4147.105/third_party/afl/src/Makefile-142-	test -f ~/www/afl/releases/$(PROGNAME)-$(VERSION).tgz; if [ "$$?" = "0" ]; then echo; echo "Change program version in config.h, mmkay?"; echo; exit 1; fi
##############################################
chromium-84.0.4147.105/third_party/afl/src/afl-fuzz.c-7233-  
chromium-84.0.4147.105/third_party/afl/src/afl-fuzz.c:7234:  if (system("launchctl list 2>/dev/null | grep -q '\\.ReportCrash$'")) return;
chromium-84.0.4147.105/third_party/afl/src/afl-fuzz.c-7235-
##############################################
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh-60-
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh:61:  T=`which "$i" 2>/dev/null`
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh-62-
##############################################
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh-87-
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh:88:ARCHIVE="`basename -- "$QEMU_URL"`"
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh-89-
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh:90:CKSUM=`sha384sum -- "$ARCHIVE" 2>/dev/null | cut -d' ' -f1`
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh-91-
##############################################
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh-97-
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh:98:  CKSUM=`sha384sum -- "$ARCHIVE" 2>/dev/null | cut -d' ' -f1`
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/build_qemu_support.sh-99-
##############################################
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/patches/cpu-exec.diff-17-+
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/patches/cpu-exec.diff:18:     qemu_log_mask_and_addr(CPU_LOG_EXEC, itb->pc,
chromium-84.0.4147.105/third_party/afl/src/qemu_mode/patches/cpu-exec.diff-19-                            "Trace %p [%d: " TARGET_FMT_lx "] %s\n",
##############################################
chromium-84.0.4147.105/third_party/afl/src/afl-plot-64-
chromium-84.0.4147.105/third_party/afl/src/afl-plot:65:BANNER="`cat "$1/fuzzer_stats" | grep '^afl_banner ' | cut -d: -f2- | cut -b2-`"
chromium-84.0.4147.105/third_party/afl/src/afl-plot-66-
##############################################
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-187-
chromium-84.0.4147.105/third_party/afl/src/afl-cmin:188:  TNEW="`which "$TARGET_BIN" 2>/dev/null`"
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-189-
##############################################
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-243-
chromium-84.0.4147.105/third_party/afl/src/afl-cmin:244:IN_COUNT=$((`ls -- "$IN_DIR" 2>/dev/null | wc -l`))
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-245-
##############################################
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-251-
chromium-84.0.4147.105/third_party/afl/src/afl-cmin:252:FIRST_FILE=`ls "$IN_DIR" | head -1`
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-253-
##############################################
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-285-
chromium-84.0.4147.105/third_party/afl/src/afl-cmin:286:FIRST_COUNT=$((`grep -c . "$TRACE_DIR/.run_test"`))
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-287-
##############################################
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-356-
chromium-84.0.4147.105/third_party/afl/src/afl-cmin:357:TUPLE_COUNT=$((`grep -c . "$TRACE_DIR/.all_uniq"`))
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-358-
##############################################
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-449-
chromium-84.0.4147.105/third_party/afl/src/afl-cmin:450:OUT_COUNT=`ls -- "$OUT_DIR" | wc -l`
chromium-84.0.4147.105/third_party/afl/src/afl-cmin-451-
##############################################
chromium-84.0.4147.105/third_party/afl/src/llvm_mode/Makefile-38-
chromium-84.0.4147.105/third_party/afl/src/llvm_mode/Makefile:39:CLANG_CFL    = `$(LLVM_CONFIG) --cxxflags` -fno-rtti -fpic $(CXXFLAGS)
chromium-84.0.4147.105/third_party/afl/src/llvm_mode/Makefile:40:CLANG_LFL    = `$(LLVM_CONFIG) --ldflags` $(LDFLAGS)
chromium-84.0.4147.105/third_party/afl/src/llvm_mode/Makefile-41-
##############################################
chromium-84.0.4147.105/third_party/afl/patches/0001-fix-build-with-std-c11.patch-22- #define MEM_BARRIER() \
chromium-84.0.4147.105/third_party/afl/patches/0001-fix-build-with-std-c11.patch:23:-  asm volatile("" ::: "memory")
chromium-84.0.4147.105/third_party/afl/patches/0001-fix-build-with-std-c11.patch-24-+  __asm__ volatile("" ::: "memory")
##############################################
chromium-84.0.4147.105/third_party/wayland/src/autogen.sh-2-
chromium-84.0.4147.105/third_party/wayland/src/autogen.sh:3:test -n "$srcdir" || srcdir=`dirname "$0"`
chromium-84.0.4147.105/third_party/wayland/src/autogen.sh-4-test -n "$srcdir" || srcdir=.
##############################################
chromium-84.0.4147.105/third_party/wayland/src/configure.ac-128-AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc],
chromium-84.0.4147.105/third_party/wayland/src/configure.ac:129:			    AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`],
chromium-84.0.4147.105/third_party/wayland/src/configure.ac-130-				  [HAVE_MANPAGES_STYLESHEET=yes]))
##############################################
chromium-84.0.4147.105/third_party/wayland/src/configure.ac-148-	AC_MSG_CHECKING([for compatible doxygen version])
chromium-84.0.4147.105/third_party/wayland/src/configure.ac:149:	doxygen_version=`$DOXYGEN --version`
chromium-84.0.4147.105/third_party/wayland/src/configure.ac-150-	AS_VERSION_COMPARE([$doxygen_version], [1.6.0],
##############################################
chromium-84.0.4147.105/third_party/wayland/src/configure.ac-166-	AC_MSG_CHECKING([for compatible dot version])
chromium-84.0.4147.105/third_party/wayland/src/configure.ac:167:	dot_version=`$DOT -V 2>&1|$GREP -o ['[0-9]*\.[0-9]*\.[0-9]*']`
chromium-84.0.4147.105/third_party/wayland/src/configure.ac-168-	AS_VERSION_COMPARE([$dot_version], [2.26.0],
##############################################
chromium-84.0.4147.105/third_party/wayland/src/wayland-scanner.m4-5-
chromium-84.0.4147.105/third_party/wayland/src/wayland-scanner.m4:6:    wayland_scanner=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`
chromium-84.0.4147.105/third_party/wayland/src/wayland-scanner.m4-7-    AC_SUBST([wayland_scanner])
chromium-84.0.4147.105/third_party/wayland/src/wayland-scanner.m4-8-
chromium-84.0.4147.105/third_party/wayland/src/wayland-scanner.m4:9:    wayland_scanner_rules=`$PKG_CONFIG --variable=pkgdatadir wayland-scanner`/wayland-scanner.mk
chromium-84.0.4147.105/third_party/wayland/src/wayland-scanner.m4-10-    AC_SUBST_FILE([wayland_scanner_rules])
##############################################
chromium-84.0.4147.105/third_party/wayland/src/doc/publican/Makefile.am-146-	test -z "$(pubdir)/html/images" || $(mkdir_p) "$(DESTDIR)$(pubdir)/html/images"
chromium-84.0.4147.105/third_party/wayland/src/doc/publican/Makefile.am:147:	list=`find $(builddir)/Wayland/en-US -type f`; \
chromium-84.0.4147.105/third_party/wayland/src/doc/publican/Makefile.am-148-	for p in $$list; do \
##############################################
chromium-84.0.4147.105/third_party/crc32c/src/Crc32cConfig.cmake-4-
chromium-84.0.4147.105/third_party/crc32c/src/Crc32cConfig.cmake:5:include("${CMAKE_CURRENT_LIST_DIR}/Crc32cTargets.cmake")
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-133-done
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:134:cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-135-])
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-417-m4_define([_LT_CONFIG_STATUS_DECLARE],
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:418:[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-419-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-427-#
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:428:#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-429-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-529-]], lt_decl_quote_varnames); do
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:530:    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-531-    *[[\\\\\\\`\\"\\\$]]*)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:532:      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-533-      ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-542-]], lt_decl_dquote_varnames); do
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:543:    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-544-    *[[\\\\\\\`\\"\\\$]]*)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:545:      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-546-      ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-555-*'\\\[$]0 --fallback-echo"')dnl "
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:556:  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-557-  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-691-
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:692:# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-693-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1038-    }'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1039:aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1040-# Check for a 64-bit object if we didn't find anything.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1041-if test -z "$aix_libpath"; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1042:  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1043-fi],[])
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1070-  # Remove one level of quotation (which was required for Make).
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1071:  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1072-  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1081-  :
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1082:elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1083-  # Yippee, $ECHO works!
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1107-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1108:      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1109-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1115-
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1116:  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1117:     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1118-     test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1130-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1131:         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1132:         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1133-         test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1142-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1143:         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1144-         test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1157-        ECHO='printf %s\n'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1158:        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1159:	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1160-	   test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1162-	  :
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1163:        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1164-	     test "X$echo_testing_string" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1165:	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1166-	     test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1171-	  ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1172:        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1173-	     test "X$echo_testing_string" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1174:	     echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1175-	     test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1181-	  for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1182:	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1183-	    then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1189-	  if test "$prev" != 'sed 50q "[$]0"'; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1190:	    echo_test_string=`eval $prev`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1191-	    export echo_test_string
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1232-  if AC_TRY_EVAL(ac_compile); then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1233:    case `/usr/bin/file conftest.$ac_objext` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1234-      *ELF-32*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1248-    if test "$lt_cv_prog_gnu_ld" = yes; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1249:      case `/usr/bin/file conftest.$ac_objext` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1250-	*32-bit*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1260-    else
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1261:      case `/usr/bin/file conftest.$ac_objext` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1262-	*32-bit*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1552-    # And add a safety zone
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1553:    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1554:    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1555-    ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1580-    if test -n "$kargmax"; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1581:      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1582-    else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1588-    if test -n "$lt_cv_sys_max_cmd_len"; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1589:      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1590:      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1591-    else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1600-      # we can't tell.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1601:      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1602-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1604-      do
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1605:        i=`expr $i + 1`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1606-        teststring=$teststring$teststring
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1608-      # Only check the string length outside the loop.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1609:      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1610-      teststring=
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1613-      # linker.  It appears as though 1/2 is a usable value.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1614:      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1615-    fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1928-  if test "$hard_links" = no; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:1929:    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-1930-    need_locks=warn
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2054-  esac
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2055:  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2056-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2060-    # okay in the real world where ";" in dirpaths is itself problematic.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2061:    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2062-  else
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2063:    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2064-  fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2067-  lt_tmp_lt_search_path_spec=
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2068:  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2069-  for lt_sys_path in $lt_search_path_spec; do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2096-}'`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2097:  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2098-else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2184-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2185:    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2186-    ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2219-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2220:    postinstall_cmds='base_file=`basename \${file}`~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2221:      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2222:      dldir=$destdir/`dirname \$dlpath`~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2223-      test -d \$dldir || mkdir -p \$dldir~
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2228-      fi'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2229:    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2230-      dlpath=$dir/\$dldll~
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2236-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2237:      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2238-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2241-      # MinGW DLLs use traditional 'lib' prefix
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2242:      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2243:      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2244-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2250-        # which wouldn't understand a cygwinified path. Ahh.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2251:        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2252-      else
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2253:        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2254-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2257-      # pw32 DLLs use 'pw' prefix rather than 'lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2258:      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2259-      ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2263-  *)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2264:    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2265-    ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2280-  shlibpath_var=DYLD_LIBRARY_PATH
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2281:  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2282-m4_if([$1], [],[
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2494-  if test -f /etc/ld.so.conf; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2495:    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2496-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2556-  shlibpath_var=LD_LIBRARY_PATH
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2557:  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2558-    case $host_os in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2771-	"file_magic "*)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2772:	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2773-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2853-    # gcc leaves a trailing carriage return which upsets mingw
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2854:    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2855-  *)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2856:    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2857-  esac
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2862-      # Canonicalize the pathname of ld
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2863:      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2864-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2865:	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2866-      done
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2893-      # Break only if it was the GNU/non-GNU ld that we prefer.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2894:      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2895-      *GNU* | *'with BFD'*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2933-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:2934:case `$LD -v 2>&1 </dev/null` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-2935-*GNU* | *'with BFD'*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3117-openbsd*)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:3118:  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3119-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3208-	# Tru64's nm complains that /dev/null is an invalid object file
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:3209:	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3210-	*/dev/null* | *'Invalid file or object type'*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3214-	*)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:3215:	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3216-	  */dev/null*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3379-# If we're using GNU nm, then use its standard symbol codes.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:3380:case `$NM -V 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3381-*GNU* | *'with BFD'*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3397-mingw*)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:3398:  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3399-  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3448-    nlist=conftest.nm
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:3449:    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3450-      # Try sorting and uniquifying the output.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3755-	  *)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:3756:	    case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-3757-	    *Sun\ C*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4039-      *)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4040:	case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4041-	*Sun\ C*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4288-    supports_anon_versioning=no
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4289:    case `$LD -v 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4290-      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4353-	# is EXPORTS), use it as is; otherwise, prepend...
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4354:	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4355-	  cp $export_symbols $output_objdir/$soname.def;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4376-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4377:      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4378:      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4379-      ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4394-        pgcc*)				# Portland Group C compiler
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4395:	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4396-	  tmp_addflag=' $pic_flag'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4398-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4399:	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4400-	  tmp_addflag=' $pic_flag -Mnomain' ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4413-	esac
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4414:	case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4415-	*Sun\ C*)			# Sun C 5.9
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4416:	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4417-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4482-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4483:      case `$LD -v 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4484-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4603-	# below for broken collect2 doesn't work under 4.3+
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4604:	  collect2name=`${CC} -print-prog-name=collect2`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4605-	  if test -f "$collect2name" &&
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4652-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4653:        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4654-      else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4707-      # FIXME: Setting linknames here is a bad hack.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4708:      _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4709-      # The linker will automatically build a .lib file if we build a DLL.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4712-      _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4713:      _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4714-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4842-      if test "$GCC" = yes; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4843:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4844-	# Try to use the -exported_symbol ld option, if it does not
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4849-        AC_LINK_IFELSE(int foo(void) {},
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4850:          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4851-        )
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4853-      else
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4854:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4855:	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4856-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4890-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4891:	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4892-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4923-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4924:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4925-      else
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4926-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4927:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4928-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4936-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4937:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4938-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4940-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4941:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4942:	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4943:	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4944-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4959-      else
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:4960:	case `$CC -V 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-4961-	*"Compilers 5.0"*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5151-        _LT_TAGVAR(allow_undefined_flag, $1)=
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5152:        if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5153-        then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5461-        # ancient GNU ld didn't support --whole-archive et. al.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5462:        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5463-	  $GREP 'no-whole-archive' > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5544-          # below for broken collect2 doesn't work under 4.3+
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5545:	  collect2name=`${CC} -print-prog-name=collect2`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5546-	  if test -f "$collect2name" &&
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5594-
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5595:          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5596-        else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5651-          # is EXPORTS), use it as is; otherwise, prepend...
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5652:          _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5653-	    cp $export_symbols $output_objdir/$soname.def;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5727-            # dependencies.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5728:            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5729-            ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5792-	    # dependencies.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5793:	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5794-	    ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5828-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5829:	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5830:	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5831-	;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5835-	    # SGI C++
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5836:	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5837-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5846-	      if test "$with_gnu_ld" = no; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5847:	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5848-	      else
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5849:	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5850-	      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5867-	    # to its proper name (with version) after linking.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5868:	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5869:	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5870-	    # Commands to make compiler produce verbose output that lists
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5877-	    # dependencies.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5878:	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5879-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5892-	    # earlier do not add the objects themselves.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5893:	    case `$CC -V 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5894-	      *"Version 7."*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5913-            # Portland Group C++ compiler
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5914:	    case `$CC -V` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5915-	    *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5918-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5919:		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5920-	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5922-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5923:		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5924-		$RANLIB $oldlib'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5927-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5928:		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5929-	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5931-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5932:		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5933-	      ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5941-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5942:	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5943-            ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5960-	    # dependencies.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5961:	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5962-	    ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5975-	  *)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5976:	    case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5977-	    *Sun\ C*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5982-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:5983:	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-5984-	      _LT_TAGVAR(compiler_needs_object, $1)=yes
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6052-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6053:	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6054-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6071-	    # to its proper name (with version) after linking.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6072:	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6073-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6092-	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6093:	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6094-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6097-	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6098:	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6099:	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6100-	          echo "-hidden">> $lib.exp~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6101:	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6102-	          $RM $lib.exp'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6116-	    # dependencies.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6117:	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6118-	    ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6123-	        osf3*)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6124:	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6125-		  ;;
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6126-	        *)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6127:	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6128-		  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6422-
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6423:  for p in `eval "$output_verbose_link_cmd"`; do
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6424-    case $p in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6508-linux*)
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6509:  case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6510-  *Sun\ C*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6559-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:6560: _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-6561-fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7093-    test $lt_ac_count -gt 10 && break
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7094:    lt_ac_count=`expr $lt_ac_count + 1`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7095-    if test $lt_ac_count -gt $lt_ac_max; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7268-  # Extract subdirectory from the argument.
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7269:  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7270-  if test "X$func_dirname_result" = "X${1}"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7279-{
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7280:  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7281-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7309-{
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7310:  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7311:  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7312-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7316-{
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7317:  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7318-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7322-{
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7323:  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7324-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7328-{
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7329:  func_arith_result=`expr "$[@]"`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7330-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7335-{
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7336:  func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7337-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7798-m4_define([lt_combine],
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4:7799:[m4_if(m4_eval([$# > 3]), [1],
chromium-84.0.4147.105/third_party/sqlite/src/aclocal.m4-7800-       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/art/sqlite370.eps-5214-UnXQUSt2C?R@';*P`q5kO,]*VMMR%BKnFu.J:;ooH[0j[G'.kHEH#i5Chmd"BP(gd@q&kR?<pf?>$4p-
chromium-84.0.4147.105/third_party/sqlite/src/art/sqlite370.eps:5215:<E)mp;,C%`9hS)M84Q-<6pj:,5X.Fq4?GSa3&``Q1c$mA0J>%1/1`;$.4?Pj,pX][+sA'N*Zc=A)]BS3
chromium-84.0.4147.105/third_party/sqlite/src/art/sqlite370.eps:5216:(`*r''bh;p&eP]e%h9'Y$k*LO$4."E#R:P<"U,#3!s8T+!W`<&zzzzz!!!!!~>
chromium-84.0.4147.105/third_party/sqlite/src/art/sqlite370.eps-5217-<~!!*0)"U>;?$OmRW&JGio(E",2*?QCI,:"T`.4Qi"/hf"91c73O3]fGf5=%V'77Kd=8k_rS:f1+i<E<4)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/art/sqlite370.eps-5332-%%EOF
chromium-84.0.4147.105/third_party/sqlite/src/art/sqlite370.eps:5333:%AI9_PrintingDataEnduserdict /AI9_read_buffer 256 string putuserdict begin/ai9_skip_data{	mark	{		currentfile AI9_read_buffer { readline } stopped		{		}		{			not			{				exit			} if			(%AI9_PrivateDataEnd) eq			{				exit			} if		} ifelse	} loop	cleartomark} defenduserdict /ai9_skip_data get exec%AI9_PrivateDataBegin%!PS-Adobe-3.0 EPSF-3.0%%Creator: Adobe Illustrator(R) 11.0%%AI8_CreatorVersion: 13.0.2%%For: (Mary Diarte) ()%%Title: (logo_color_eps.eps)%%CreationDate: 5/25/10 11:06 AM%AI9_DataStream%Gb"-6Bp2f2Pp#o2n/pqR,4,%FCG'cqcS6#7\b,MND(@139M]b(.+f4cF,#U)U>4f'lQ=CZga0;4=HqR+.hQ;lS]&LdEc>u@I.>23%q]F^Dqtf,mGOPRXQT*6<^3Q#^]MCJ(9'2$brlaWb^%u/7-/D=Fni+nSD+m-X<]f0h<-*C3hW?NRp>"X*b9,WUHM?s1&+<l>qVd5.%q`!t.r:$QY@eYrRS($[^Y>4ON]RB>?-JqPuoA<r0J,\EGGH\`n_;>RsO7-Dhq=33@?bLaTo$t5LppPVL"+66G_;E"Vp$lPXedl-E%f\r+m++O(\r[knTjqhClIe3HoroSIcl4e19q3S5Cs4r6Tg&tH.m=5(!rb6'5bF@`Sf_44`DPgGmRtgB[JFB2ck)1d=>MFY\SU'T^%Df'`(IdsVVHhH4\+$P-unaZ;LGQ79$4Ehn(J,f5]L]?1"qeUklES7hPDM(`iorZ[%fMm-9i0iK;HMdZ1(E[#CP1hnO`g^!`%_m%t%[T9d%ee_Y:(Ya7?CN"gNe98q#]2C+Ae(=TLT3f;/pFgH6rSlr)G9>`Bn4-[EY?nsh7+cq_q"<tQYH<&=SVB6?6%AXhRo^^2q;(@t%D*/:nPofhqqeoiT@1YVLHLh3hI_oRks&@tO00XdXl=7`gpMYM6g%t9:a;]U"j4i`Mrqu$`+V)0C\)4rHp\X^b%=@urg3?h"[5U:F%>ALpeZ*uU"Q+,&*S(`=2$/\^"6K$I!"B]C\>(a9E-*SQ,CA@Y[&$N`prU*>H@fGL35.pm'j)Dni6N7XLPi5u7J(3:4nrFl"^#SNb%pW`]h]q&lKrUne7K&?Uua1)*Bm`"KMD:Z,7dnOO^\SF1smdT5rM_B"3\*iCn]_XiOGCTSt>AIsqn)=;2i;[!>s8?8shS[Z/*YSA]%hg/)USkec34d?Z08dYJh$#6:>[8K&VUs3)::9@?j[LYK+/(CR6C;FiX5LeEUU"4Z':[[uHc$g1G:+,i1F@lk25+UX/dtsZi*`IQf%5P.GA(7pcZ]f0<6s%j*C"TLh@(mBoC^4R$6s%iqi"TQBLAL?VD(_cfXJ&-s!IqX]$M->WG_>c3,p^'b6'>0N@PMQhX?sN1ce2a'"%-L1asV`CVWUfi<Lkt)dRoq)"TIA=8=cXi*3#(<-[N">oCQ=pG9eFXc`)#T%j0KrWJRMC,a`WuO]?SFNEJ,#X^%M8CWC;K]'Ip,:X%&t2mJ5J0j4!.$9m,ATdIUKN@U1iG-&1ihkEoUPbHn"l=]]r6[5TFQoU0G?n\:Xc9,>8SI[&%)\X@=0mZoITnNF^T=R$c-Z44#D$N%#/Y8o@DN\p2X!/0$K6U'$X$DsGNp3n3k^mB%=0WW,%IC^6S3RF[8,&sp[k/Ne'94TVDY9^Tb^Du+oL`>SXqQCaDUB,9BN565%1qY%IE+Qs]&Sn=oY/I'bC(D(7l$:tFIs$,X7TKM9C:/kekZ!kT0sDGJ"39PqG6s@5_&O#oJ'^k8<Eh74uq*Lr?m"cTta6_G8L8FG4\N/%8Y<UVqRcd'O87dS+@uN(TAu(5mQ]qll%eI_X<%47lUlZM?hC[ac\6e'Vo&i'o;_i.mW@15Bg3Wl48(l+b3=ug&)n;$`;fN2NNHf,%I*?\Kj^?"(Vtjd.=oN5k>GIh)oeX$8jn<Pd]W&h+4nKi(fm;NPgAXs]NT8`44aZFkq-jYuNEuSG@r&Q\ffgZ#GOhrbcJbs"s5IqP%C?p0B^BA<)L<Da9mWl+?NP3VSl>sVoj(j"uk-k#k^Oc::E",u7_Aq#<fDY?@NuQeqVf>0;c`kGD?SlQaT@EJo2e*A.h80H]D/*n@%FmGl>`pL4+mMXUl(_")pfQIMm0E6]L_f*%[gq2.h)-4*[YuMasF*HE#46cP\1B+);V11[hZN9ZV/%3p@?MRCk/<7>qq5iTNGL08*%e"qPu^\_Ad#'&/tRa<Jmob.\VRf%?skCBW1ja7,8CMhqEqEKAgJ>oe+Ai&j)[s2TTT?dIP4WjYATAQ#-376K@L"U9\hodX/]7tV&%3BD0I"&NKFHhA%b9d+p2gFCM2a$FJG>",TbT]bn#eka9BrF2Z^4Gu]lYIJNFs-.M3^D,:mD4K]4oF,NlqenG')BK2JF=5[83&i""%#9sZN#>hZST2(2p0HPJMnO>2S'C\Zn]P@6%G;A'X2eRWWSE"NM&pKk<UNfu2EK@R>p9A%1HXDGI&24i<U$VmY&DdFNT^Sl!eec89%)RIYI%CBRhKP+jR^Ouc0Ra^Ohla4F]mfD=h3"GQ,HFX:G8)FpP5Y^UaJPLGlDa*JGIs10oUDP]rGWrq7.'qi,1cIDN`1o!V?J$XP%$`'!U7)b`F>bR!d"ibu:^OrU<ckbG?b_%+*m&;p/NUV@P)t!A?ILid&*#Gb*c!7)k4.]<:5?I_%Xae3FXlft&?g,F"0nFNucNW;g%r_<;0@0U_(1,h;["8&GKGbX'9$kU/X^Rb6nZ_Gr+@9\<P6$=[D+IWn4K=_fc1%#Fem=`7CW=OS4=8Y^=9$$3P4O*LPot<Y>D85Q0%4`KET\Z#.*@mG3tp/iNOlTCA=^77[^N'6gdg7G\iG72$(&%Ejo0V#t7)7CYPJj%'fT?e5FZneI=corR)`-d].,mZuUC^N=XQ*G\P%[-`@D3DYJ2Q.E$Fe9D%eQ8;,\&^mb\F'<ij-H/iXs0s*VkCI"`DrPS>Oq&6ln]YieiE6679CjS(Esp`Y?6FWN/&.E2a8L&BoZKb]%kA;7+n^>(t%\<RQ]-G&M,l<\c-2)Vp,J:p6CFu5\4A.M@4.\0qWJ9S(nSuSh&R-;1@kr)k6\;3BDt6cV;s4DPBilII[=Nes9V$p0%o=X%RCGQ4UE74o/NUR?WAM6-2c=]2)[6I"(#7>Ksp>@c\hSENqQD*KI+0M+oprTj44&jKnI.r(05LEi6*.-@q*UeM._GbQ.a^!!W%KQST*J5;u$O47CPoBW@7JZ6kReeL[2hAqFGaUC7YMk"1eJs+\kraqUFm&*)@)K@MB41^C[kR:i2SHFD=ck`\hltSXMYFB*L47sLP%0&Y"<";WJXOc+;%#>d#2$q>Q&Vph5460O_WG'c8*KoQh,UOFEokLY$>YgQ!Q^1]_5r-%KU@Jkei&"nkHNEb:`0Tt#Y*V2cmB+r>4%E*roq0`KkLmb?^Si==ZY^k]qA+:cl7fA;]:Lt!:rde7Z,i"\gYg/St%lq!6On0s`73:X,Pifo64L=,'&;8kH%$M+\p]j>2j,._s5%%^jjaiqVqGY[GgrqtG$FhXlHQ2ST%Wrlt?/kWA_`^\R`V`ui&D,7XYNc#;IJg99Cbl,<K(^FA&fp#a<geN\G+s5WkRq!J[]bqF7t%^AkZD2da8nprAl92m;(dqnk(*(e0#3ck?lbr:Q[g&a]51lgK=KZ+]%E!41=%2o#=#s7P[=a7_1hqJTa@q"j$Oq]#D.-!5d`gt[>Q%nV9?cr;QZl2ql%B=5$@Q,8BGCFhH`bI,Nh!hpG-$ho$7qDq]X7pfI3U<r;e6g6[<6Xm]W0H1UmE%kkZsj6N%90A-&+haH?bi+8fF%00[&6cf:Ygo*Vl&o@nbAs5rtbD`]ieOKVu<q"X^IRo`tsq1k$7hVR/DiRK%,Is=%K)a]VSrq,L#qsT;8.ceR\Df>XPM\"]PC)WE&%&$Ol=gNEkjk<=mohgQ)r'fTM"n\t7+Ye)"WGf#nV?\-48?G(XTi<J8p,`nXQ^Q"i08J8kHdJ-E\N$IS6p<;0Y]6=?cr.be9^4"gN%lBaHEpucki?G(^ZmEKh`\uEG$>JQ`m`nfEuC];l^b,!b6Y*HV"p?BrHZ'A7Z>-Y3><dYCZ`)[Kg5$Fqfm.+F4qc43/*:kVO9UT(h%XghCo*+80,N$Yk5c]qC4fsPkPb.a-.3OWrXV`M4p>B-e?<^Md')X&<V%%]gbhl`6V<qc45b-@414mf+ICb)Y'hb%PcQ+sH.Nkuao%_;3Ce*N#*M.u./cXdjR4];ZP"MJL2?&mC-o^s'SRTu6A+Hl/tDqc42N#BP**j`G\JVIOOKEEIT=Tp=8&_?*X>@r>T0j85MR1tisR%3FZ^CVu^VIEDKD9.iq>s-+8D@"S7$i=C;n`+:%*=[R?E+/12k.LoLt:%Z>6O@#8!)d>r,NO16)uSCSq1bn5_$SYJ*(7tW^u'9pta%`F<gh4I:REE_0LkQboT$T/kjSEk0Z)f5__NEE7gTq9KMH-Xm7Q+;Rb/OqXSA[,Zb]NGRSqPq*)M6]X9q#n)3@F]^bmJ0eYr>]?`G%`-Y_!+?E]E.D+bpCMGE("]*giL#+$rO!Sb%=;$tE"ZMjM`o3M/4"c?,NmZ2o\F@p.=ec:]%#a#`IMV<Xi"ERG/t#Ak;Ru/$gi;"g%Buk'$LQ>UA5:.sEX[,H.mgo@1[3QCuQ`R#sWEOIKmY8%!EfabaJ&e7QHAU*Im&[^"nRF:./B[gQcB^#XU%AIYr@&h8^6hQ#IR8$d%EhBhrhk5I$0b8]jRKg[m/EZO^2aoOAcW`S3K1)U<5on6Z6s<lX52RMP4sCHE89P(Jg5MhMLW&gMZkI/N6Rpc&UHsK6OoFa1hOTbB%&PWX(_D2b**>0`m7jk/r%d?YTE`/!81brL$4rf[b=PVc?Md^gq`gVF''i+Kj4$c[0\?V#MHR)3<V3DqB,HTE:frC6EY)51gi2.--%;k9+=/rEf1c9<ObS-h#HSS;gIP<k5N+g2%(;GoEPZUi.[+`g&QOg%9m'NO]s&RNO,,=H@0YX$,,&c3f3%rshWo+8Z(g^\<b`96Iq%1-(oEJWkI"31J4D#Y.g+]Z`[O(hR3H)7ULA>_I#-SjiDhjAh"5=g0:VF(1@ikr_NXfTA0=Z=ZBlet`1+U*es(4]koU\MY>\>C:dq%"TrZ.c(XgsY4]*/*p;,OfLFlTW%9F8:9E!#2Xn=:$.ZEYaDGg(RjHtSbC[aINU20OHIq;f[V=$(_IK']h\O&rVq,.@JO<Y;]=(tP%/R30d(uaC/D,";?h5QD#f]II?h!D2;6##PE)I`h3_d,WrWQi8a+j_9-C"JHH2"XDUPW*.E%IIuL5b,&g>I])KboLj!V4hZ+oiN`Y%Ts60_147-N`-XoE>snF>U-rbN+<X&1g;]N6*bd-ECtiN^'$7:nT`WuED5`7pbI:1M/D&B2as1:hgOSKTdCKLE7W-ro5+ugp30UJ$%'<^s>chW!Y"Q0J6nd-0oLtK."0H(Em_1\o3&K-ltnhE5eD[LMJa[af.8O/^Gr/uc/TV3'=<e/YGjLns)<FjC*9hWPK!)iu\3+VV!%j[4,P!^Copjq&@u?l=N@"@a#+8f0't)ULA"e)4C(1t%5Nl;?B8?mcRg]/,G*'"\OIKUC]9<Y?g&3lj<.a([c^q9r0ohgFt=h1m=+%?M9\'E.8P!S*J_:+i6TRRkML$fL'jIR*0CEpjfQWNQRR\429iBca7mQJP@D*Oe"/h)?"Zj\8A^nD$sVT,&YkI7U"1d*7k*R)_3[:%J3R_a>Kqi/lq(u/I='cEp0ZQ2(3$S`J+Ro9:>TE`_dmgMCYQ$HkN0.CX/XG([1D1>Q$+>fW*u6X[8>sCT'WCrEjrFsgdCC/5/=9r%m7=%qek4cZ\Z3>[`$:=[?W3M!p=4Jjg.7D"4NJ/2nheY4I9#`)V2M9]b9jMO0Oh,V$P@i;:a$=8?&<\lK&$c)$+I-O^$WRVCn[&Y%n.$=dG4]-f"Au*0W]&Sq2MGNZ9Eiu2^YhL:C,*rdp!<,ZUdeL\5&,m3lT9UNpppOQNS+)hkNH4'p$L_5Gr.!eWp'N=RZ<%.D2Dq;%f"\TR4au8YeDR+F_&ONjfe87dK<X-:/A&6bnWn;tb!sL2P%H$66I`"O586$jX(@HgC-GZSda/F%O:Or(X>\n.$FM)P>EAs4a9<sP%KHkNT!BFVM>d6ZAfG\.YO[2/cPC1;_g*<YGL[=RAV&[u[UXYKhF[kL2[9=(9B8_/gaY4Z^^eP1d>uB:F;=toA/2]04`)[O]]jo'N%=_fh_er@:Rf"*Zh"dS;i>^+bf)!h.9=;+op=D@q#[5-7K:.Jlk-Y/s.Kbieg(h_UUOX'G?`%)Lfgc/hsbjcb-@UP%D(N'I2EkoKf%<oeIUe$[9QmZF3faMPMXpjlS]CRf*.51CaBq(&6*^X#lN)Z6(An,`A;F+4pSH:TdgbOMTQ\>M13@oNau06_'ODPP^d(m[UW,qhlZ%Q+:KfN5bS^j+a94O&>-jecV4_7I!%?m+[E6+*Uu.,Z2)d/n2X>H\Q4\7JH7R:kk#g+tp"@Ht)[R*?uahhm(.sc33>`6E:Z7#!$u^%8KVQ-oT$n(&Y_^E(?&DLk"0YZTCqg*i:&aU=tpi.5!5bdIprV?jLX-;/\B9%L<j2KU?"a7ZP&&1egc;:3_AWVenPdIkG3/B+(8Q2%&Shf<6"M>W1(+mN)%2jmac%39Q0D/:ktn3j=[@0s`MTr\STdM/PZ^dj0-bP$_DsBTa;j2*eXrW;XbJjO`-TeG4J+<S_W2#M-]FTM%FeTFIQ)IP<Y3SKB)UVD(WnL;1f1''u&YEZs;%ro+Y\4'FT#@65GLh$qiQQs.",1@Ib1bPn:M(MDQC0%O1[`'V=@17XE+9+u^'/d:%LUnhj`(HeY5Q`T-IdAENZgD"bo:NKS2>BaSp+btkJ,VeS[+?"5>r=69fTOJpd%7Bma(6u@O?Hhsqm1tnQTHG,B\@6g\gh8kOR"XF%r,`^QQ\>sfJcQtg^2]U$*C$=(i&$[nQ9i%4Ei3J=7LCkK#aa)d'k4C<C,AtOIV-#*9GXB-*"oU%Q'2=2mK`POf@uN;^SiARY33qZ%&DNZgDggk2o<#4k$"%Sd>'gq:f9<W&'?dRM24:!=oqIAD9GM]pf#O:jqmGLQ9(K]bO&JKYD%hZ1F05(`VHqnR*\EXHRgLE%F&",M%m.%TcB+/Askr?/maUk2j4CR*f`n*rWRNpMLTeI<f(@H@@_qj-WcfUbF(Lc]gcj`-pS^JuLU@#qY!F-Z]At36Ve8rt'-8(!(jnfdX%$/JL[&YNTI':c%2no"$]eEp=$+NC+5h0;2G+-"Qc)kH#^=hi)iAa,%,qP(2Q$@D8&?i^<RJY5;?T=d=6iLSKiY5>(aG-2LF\t-FZ%U%96cc)Ib6366q\S9Vnnml0c^l[Ea:fOid6D=h6]h8&6Q2KqPV0A]gAOR;:mbMJ?/<E6k*/`QW[pKBe;ge^I_72q*rn%OK_h#*?P%V6!:S@f!:pQ*XKY/scH<bl#e\*'U>A9fda[nur<opD7mFV2(;-6%e1=k)aoM7QKmeC,CeKoHGKUfHH56+a!e%!(:7N`./iWJ,mC9%VbQ(B]"q,/e0BtNdCLis=#VsU65s4Wk3cmGHtM$-hp.b<`:[ru?-gmnN*O[k]:Pk8CS-"JgF6gcA`'cq)S>=A\,O9mp&-M1KtDeX%fG>&Un_)g+"cN?QeTZLPcC#B-hQTU0W$B&:o8>tc<k!NtmB;.p^Gu&HM6"D%@h[A9_KMH7L"9m$XieHU)u\<X.;+mc>f*e62+Rf\%5,jnQi%3!^[[>)on[!"MU`cZ,*ft>okXT<A,Z0VtRuhdn6W"eK'BO1*2h4ab,1-CN+GBmn+ZT=L@_`9\oE*<WU)$-Ii6W326$,GL%`(2#<3#Hg4[7V8+i/l+LW#NILF&,cgqJFt+NmLojU@)T600E+p^8O13L]()0\>2;2&8)l<F2t_$2EttF%Q^`cTH),Z&$bb_`EW*Z%3Rk[bK<g+I"GeZuN2"8H&Ao`(q,qtpD!7m[e![M8[ht#`\uX"S-8KXJ[:?_TR-UgPh)*b5LdqcK+;Y+-b=VL@OBP1a+_aAU<=r*>%b<-(W_6C]Pg09$L=+9B^mq7[OaJB`>%tme_HHTr5fB8i`Vh&bh"<s:;,iUQp;4*b+(t!DPckqimT(T3&N(_q\7mLtc#EDSBZ=CDC%X/nc?9!k>ETHfS^P$rV\CFNNbB/c(#K^=IL:^k68<%k.\fhJNQX\2'gXP(-afec%A8iU2%$5=R`bU3+d"F#>MO*UM5g0iMn?#VV'%KbSdR>>WdZ8;8$+l#dFNI'7HeD#7[70D0j.=FY)a9shB.gF&c]FF\DFA8aaOIH/4^Z8%<'QXB7r\MXp=jNPC3Y3,82j]>_\][S)h%=tQ#JeP^+YAS!.o-`k0O.[:*+4m^R5Mi)<ZTfn*fL(VF9#!L-(RE$`P<H2Z/2+p$JV\_J3e@4oGEd(54f2]GsI)ZB4@q6J;]Iqeq%-=#g&YZ3m?+62=_*ACkXNK<Tqm(t_A0p2oSG@HMI--,3l[Zqqs2qY#iK1>GQ*jS5pKG*9(`<pm4F*&BX1uD"T<Dk=,DJ&J-h+"sO%i#3%1%oBWnC=]Os*OVrM_aY?@UIpgFcss;#A#F0]at7h8:[t`YTt8qJUqo!,W4;bkP"WdG[>&H*XgFrKh+E?kgKf3EPQ3(2XpplA%0EIClCn5Lr<(>&e#?DNL_WjJ/E(`T5VuVq3qWmGbo?.6.UNbPCW<`(qdDoPL548!LnI9,IiLaAH)Z88IfOQeEi@OMtnrO(-?5X^$%gfl'hXI'H0O%\S@`m!5uXR4?"D.akNpEJ;[-JA#@=o+Em4sjl\1c[+Om<=ID$H7-g8hWXs"I<?qETN&j7`X_6EO6F%pR+6A%K9<9%ek[rRIjkmVq,/pe7'p7.q9CRoN,!6hrjl)*bj"<#;+Bs$W-M9p'SS;6&Ihd5(ASXrU(&@7QjBgm4>Z1pld;Dl$;jdVVC0YIE9+7%%""Eb;?Ukc53<MQUj^'\jC.-YNGn`7Y;V-a/NtZ79%iRfXLN?gX'Eo\:TI=8G(;X5Z.ZJsU5su:t7+*VpJ`DCe-]YX0GUjEVZU'.)%E5hr@Uar*K"Vh[cA5-#'BaQ1^;6]6U"GK_eT_GWG*0)n&<@.:8_W1f`F9$_"/"SI-.Chg?HUPHU6V",/"R[_Qi@iR9;gcJ]I)Am1%_bV<1n<ZpJp=/#!K22q?UqnPp%Y!jDKg1!<O8f(E`]%#0KFp&".5c]O@1-#/c$2>=4M]qTWfL+KDWfhqo=R/C+CB>1&b/h'A6J5t%+s^Fs(Pr-:n8bjn\i?YocC]o1;</8lc;8^tg7N/h!J22*;D%9L^U]`WkF0Q'^ltm>_=DI:i#fu3Cce]DBXFtE:Mo"<M$N\IdE&Yb%WQ/;8WTSlMm$#RjK7>N`4t%]I^1&/@6s&VNMX8[`5tYcRjiH9))/Cs.W0=^5iES+,.d+t^k\X<V(UMO^DeQ%M;3K\6C+S[U]o1Ag%MfPC")c+)\S5//6Ye_\Ed$#C38Ib;jX+C7jqt]]b_']lh7)GNdfMAZlrX#a5G\Z`I_5@K%XhhaU?2Ito2?'r6A5>3Fcmr!TGZQU)%cWl*N^<5K#O+(%%k_JI-1lFGM(=:S5bKTBaSc-5ZmP\k)oZ4GOafe^HWs]-7I:05LKmS(9Wp]/$JLg%>gTJAqlRqWB\?c+>m51)I%Q*0t"eOQ@W[#H`fgsE=_RDUU7bUMFb=QnX6>RNrrS/0GA0grApCFF2!+lYh"=b,L`m(UU<I+AF??d0<0DS>fGI=1C5DW`d4:R;4^%#;u8oo)#'&l$lu^s,F,ZAk9sc.Bic:)>t)^>g2?Fb2g=.a'Y&*Et$keL]9,^s"])=B('*&mcVOeAsKiTT!c>rm%4L0EP2+IZ5YDD%lSn/N46Gg8?@fL",nK?t\sp[J@<@uA"Lf,ZoZ@Wbq<+aQa^#Tc7Hn,/8]qXYTa/J<q8"?k*'u6Tj9J1O8]X,is!OZ'NuNZsV;c.(%dL;<#OT+CKPeWgpeb.T(ab1^>d'_P?QD2PKhbu@qR9?=DgBr'3X0TrM5Pd;-XVar*;qIs=;uMrDX<(Cj'<0:QFl?,gH(0i>n"YO4%kfM[Ef@a6]Ya9\1:9T!67b1:.?KgBt/pD9)eDXXjq$s]!N7W&;FY:.]qsKb)XaTf!(\r'0B!(D`5$lWV)D:9QH;-n+Dt3@l%Nu1*%<QBY>6X^4>Vr$C.FqXWof6*0V\1!tE9I92FNfd(AP4(Tro@2\sK22sUX;ZJ\'2K'$2>G\ZI1?2CWe3sQTg1g8gmH(E2K+CV-?-`j%M8q''[Sned`e>\L^XJs\W]nWZWWo#G3HJ'jV/**?/u_l-YL+l#QPWV.DrR<nSS-7'S@?-i:G8JL?(AC^bKUpEgb2e$]7DuW(rU-7%'W8EfYOjq;rXd/-G?@BakDk0TPD4-^n;&pb_alMQQ(pAb3raaskVN(Q>j]`)fptJo_,\E9d%fZc)SG-\Ec8MT^@I@0WH9cf]L\oj%+hd'tEti]hX0X790,J\Pe[t.)\[LLlCnse$@a9JrJ5U_KiuangR+XWMX$VWH29rIlZF\,\?fj;^dLS#%0RC'43.'-%R6,i*0B+^!%YLbdYLX*Hs/8%nZCu:=13p*X$i&<dNcaoX=93\^h-!mKa2Z:J\:KA+S3IRC'h>n"elrRf?2a5OkSqg:fKbaIMFNU+M\`ZmLRS\:`%8>nXHV`[bOI-)%WUM5q4,fr`9B=X)dabqU#0"JpB<=%e>B@q9cr9-Oa8SR$q*:sa:i7Z$69ZS^/I,s)'hL9bm"r;4njNOom^QgS.%&"*H@(jHb3p3^7'hD#c6AhGt4l,hF/YO4H@g+"?B4<Jgo#*-702%_gE!PdY/i$V;"mI,WE!o59b2^J8a@@D+i\/>kt$f^%a@b_QX%bT^3o7&5d?ZbnkO&4oWQ((Lp"imJWJm5nS1,Hdua2%7!.)&I%C9-YeO[N(Y&D`r0*l`0/[Y3(W=>qb%-\h)71Z[-Lr#.l?t5&tB(%V/,EMa##CGVp*AQl?':9a@S!&VbYBf]_0j0&pF-(WMWM?:1':UG$6HH\^PAgAY$C?-0RLScObQUVaF4GIcAEte?aMDJ^of93SK5B%j5^p@B;6H7HAE&!?V[g(d9@%VGqFer5MG5/mnA89"eAd=mV9C&COTF=q&AKMh`%_SC,7eJ0?X,Ljs:DH\tdTQK=k7/oPmm^2LGCi%fu<WN&oH3".BCmQY2SDa]^:/!lPhsP2hC2S+[ifB9[8-)H!#^nh4B%fMm#<[q.jkemX"PoZn_hEctCkNR-o>$H*f>=R1/kq=rDD4%>l%j1$nfY).:Sk2ELDo.1Y\Y7inhqVFKq&aAgnD<7dTI&0\4EeWdHVc\Qk!7GgsoVW-"He-cVf3I?k[IM-e6S0B87spb#mlki'rA%a7o#LSU5V)KmE/F(\_n"k*+4-s3:,bh;1*]??<hrjLF?b<ZThoJ\a)LmV:g`PbT.aWKE;]=X[jRbeQ<"9[fM?)Hio!8J:`?i/Ps>%/Xj"6"#IlQ.:GJt@jMGDAr$ZL+Fg$DM]k6iiDD7a9[*$b>Yt7%a;nV)H,g0&*%Sr?cU?=ZB2aY52N45q8@,fLH(.b,RjDkc1CK;&%$TWK<QGIa>,`TbOJ#k:pl%8W7Co^(P.V-$=_.P*;#bRVi`g9O:EtYu.O`LRb?<OlOAk%>`/_K\If?9]NhjMI"0L%C[bjt\I=lR[M%X2FKa5O+P)iV]@=jX2*\V7"N(DZ$p?1s/XVJU55+rQGUcYLJ8+1M<$BbYla/.^9(%GM$*UEsmDFagEZ1rO';M0'De3bS"Gk_NG9D%ZPK7d3C1r=c=\XfS#BmC]/;>(:I`b[,O)(foM^a2pDEZX=m<AU/2#-@oZPYIQQk%lR*@nio3q%PZ9%'e5I\1UALRIWZ00c$=iC5=%\S+$A+*30.ic+cBLUO)bl0G[LCpnq:O,Y:2>oV17cSOd!<,3_:'\R/N#XaJ;RnANo.[Hdq/*^T5\P[)=deQB(*W@fO$;LVANAu!4%j3[GkO-"ijoEBsP`7TD$dH&+%$EJm.1$[Vq*.V8,9r$HBohA[dMg9BMJD=o^=bQ_'O<ok3[U\Dc`8?uOO7V>ac;[qqfih0ai]!M)%e0dHQM,/QZ;kNj7-U.40n3J;Fo@2^U>_>i'Osb%ePI9Jn>4Q2UH*Wb6K[u;6hl\?aXs`,092.SFG!5YE4o'7a^piVYioDQJj=0*L%.H9D;ioDQJj:`b5SkL>(-BY5(#+qeUjYqG,Dt'"Ki$lE,QVW*#q$m>rZ[;ZK-2`uk^MhXumgo+jGd6qpqPh-r52D";D7OVriQ?m^%)'g+ErQlp$8QZn?L(oQR**pUicu0mNcF1K!WgufO,EIe?I4:"*B"i+E>X:P+oD>L?oV"IWraLrVc1X<ca&O)(^"hNacgm$cAK6'B%f">nDlZPD;Z^c!I'9:`UF"Hp`ZcaSr##uP6bTL5#VSo+-pm7VLQ!eJui(5\="I#,I<5\T@GG",/9NT6XBq&nm`rWW82A;[j<-r$u%l=]PM\FosYIkDLt2g/hq:l$7J-7n*Rb?L<U>l+N/?JFg7m#&!'.f3q[GW#9IFWK't5cqYt7*NYPD4isMX:)S'("L(.k2Y[Dk%,PC%n*4kEYGYsF69lOmkm]*l#Y6C`6j3PsrLP#n7[K1`l!lINqMbb?T\p4b7l21t;+Z])*@AA6;*-c&#=f53f+F$H_O3p8W$r^.KemT)%W%T,JL83&@QXEd0W/<rAmrlt7W&l!,LSOifcledF&ogkqWZn^5Y"9UUM9!5,f,g'o.'RkCZR0A+C*-@Gbh#nNH";':V<;5sJU)Zt%^rQijO]ei,-T-f^<_jf#6\OkY='@GsZIY`Z?ECS4V=7s15rFVe]j>^+&'LE"NYkjR%*Qqr@U44U(GAj]f)DU`07%,5I5<FhW/oO9%+A-1\!)Y!`7]i=n%H)WSmW`#KcVD-Ub?ZX$>'jFSn^iqp.n@X#n&bYT]6CuplG9m`_P5kQ4Y.NNjY!.nA'srcZe3Epnn4f6qKL39%G.F56s5-l/i0G-'^iEA3.=d?X@LeKJ9riW0mqdV:rlHi:Rp1gRo@4QhJa@=1iT#CS<4LE8:4YM*^";5gI)<^Ld0sNf\&2H`L,%<7%@BME(R-X,nf9p'kolc]S1X)@rb&Kc9-fpeSa'Y^P?m%'q2MDTcip%oR'$Js8cH;[O4n1Ka`,9T=G.;#H=6?1W+SS<SR"klrX?<]S%n\_pj'P,rkCEl+*Hsk%/+X0h.b#EG3\bIliN\@r@Qqd'5"uc%C]P'Xb[%L[2TpSP1b/07GnlluK.AJc^#ku.$p&:<>APQ]8l%Tp-%Xd"f\?7)t^(cAUXpUlTeKo@VD>q]`/+f!4$*e@^D.<m6fA9NT6$]MueF5m((NlWg>d26q[GMc@Xaad58i@u>!1ultGj,j3@mF]OR%S`Ya:RKNCcgo9(YXjlfB]nq]G!C<:LD;A:d*XAoBVO3.l9-.p5pa!Ji7<??=_(Xqk1sGZ!j-RpMpmLHCBf;N35IG;3j?0A'`N20Z%Gj1oI,g06!Hot[sm4Nl@SBD]Zp^LTDo6u$:s5^GPMb\]DEeus-.,&O`l<H=:Q8@I#R'YT*dTWt0iCU-I3Jpi2`R:99Vn!L?@sV8%%7QKqTFZ,!'CkpZeHmc+YZq6TZ^[oM/q%NZ-#B?==3R?Sf@%&^L`VEo3ch)Ktn3=G!g$uZ/<l_8a3q<LJd;.\>l>j?dAdc+fLU^<L%NrC$Z\5ejR;!5tF3l%i6"jR8]S1gXe`Xl7V<L1`LfEH5C(MUXD[*,HI7a`ogU2/[l<]04g#f:=V@?l3D")@54A^rE4(6qir:,VB*%a?h@SgEZS.mTDF_\MU?T)H73S/:*2P\Mrd]?.F3\WOK-6pY\XAGn910[8W-YXI_SkW;hlX0:el4m[`?7d5?p+KKA'1R/o^!c7!I/%Q((D2^>d[5Kj5BPfUPG8Cn$263nNj]jro]/211F0#buGMT48qZkZl$gR.L17\Jp$&6.*jc!A.A4"@'gHfWb)7JiiJ>]Re?+m_BA)%"uc4f"$b!K\=H=Q`[S>JZ!3*6H>_cC/*E#S@)c0T&2Wnb&Z_80K-3lLLg>)+CcYP'"gro\Kp1k2@L3]0k7JS%Z#tr3;_6^5([IAA%Z&Q.CA^iur9k7`,(*fb[b.=]kNr_pE[>&joR;YRu:8MXr(<X;#&s'n%kM[cZ!"t7t0hc_:S;3^?DTkF%(=<klkH+MmR[IsRk`RrM%`120]c93dmI[4TcWm&#43J0"MgZO@_TQ)Zaq-Ir`oI8"UY'>%P8$W?,rEA!2QeC:"GkEk'9<pS3%.5aUTq3!C`&@/Q=!)A8$/siL%bad_OK(GY5*obK_j))*`_*3kV(quuOfMnP248pT!qO=dKGrYsMgt(D==$?%5np$,%O\#!'.F,m4diMGiX4aYbG.8%S_9Y9e.d+:"%EdmL$<7Lf1=\/;JD7;pXYs'-mGl6?$'A@<*DUt:;ct:nTMgD_:9s1#1Y'j\q1/1#Wii;Rlam@^dk,mf9S#3Ko]Q>p@p46f49CcLk%H-=K[[d)mLC""0S]=EK:C=El<E#J=eHdo`3A4V7lXiQ;")[]7eYb8d^!rGR5-_/8rG`mAi0<q:hEXK]EZC;A&WgOU.3O5,YIUL$7%DE.i2#ZE+SOjS)84@d!OM"h0C1`9nJ+V>M6nIfUGWZc9njAREi<#g7MOP^W=XlNbSr^.Q_QK2[FSjY[6-j-&aDpSrY_N-!"=L:>!%nLK31O5oGDU-T0--&-lA.CGL).qMcHWpI`7pm6&oND(3n%U6ng!0<0i#5J2D=j6&GmUt+DkQsPM&,L\#k2.UFE@B[qE4]%p19jZF%PbN[n/)i,.'Z4,OV'p\]+M4L'7l(\nJ&X_?Yj%bqArO4)h.GTWk?KsXTIT27ihJ\Q45O[uogqS%A=*d"XHF3*7-'.0&s4F`8jntu%1_F^?!ej%bE#oohe&)Is#*lM3MajOGO-:LBbE8#,VJ&BHH:a$X(Str6elB&W)s,N2mW(&YlRG'D!t/al0_3EM.SgL[XEk%%8Z4$^%,oN]']Q,Bm*p^s'<fIu.;9hX1S=q9F?3TSM=njbEo66bSPL5k&rL&M:Qn:o//4J6h.6F@TNN/@@<X/7eW6,l]R8]D6UF_D5Qj%K?%dk"RU'n+c00InV_AoXPo9l,Os2p.<GTS*64o\;riB&mW3[Y`IUA8:^GY-*$\Q!72!cW#?o%<bnfOHQ8ie"h)@ndY(5N>k/iKK,*O%Oq#fuJ@\0Y5E<g2O?eGl=$S-`8cXhNq>f#r3"6u<6kY:qM"i0_Em^']>&ogfTAU,3f922@Ec8DAg%e0#c9bQXcq7i2TWn-;Vjom?%k=9![d3HW)3o+N$-HXlhZShDL9k+aj&Ar003,ZgaF=B^Ye;StM4ADXc*]'</?&0=Bp#_n,XNYPABZDh`s.(_DkkR=qRq_H;+tM/c%-(ZdPd[(bCg+MOC(S=l[<Xj5Q\M_jH?[hj-Jl_?[qO;/:Va^``N<PR4-$p$>aVu=>PDs"P]_mYZaK:$WdZ'`6]rQF+@ega'1$Z.<%n&Hl[C>.0B2/o#k\'Tb6pgm*,H1i&$;_mQp_)h4m=H)4LLI?N+a/InqbbO;YCs?d``MbG!X,icYY/aV-qA@,rmgW6fKqEQZo9GO8%bTt``;6;AFZ?pX(D42GW;<264kajN?bRB;;Y39#A3R<7VA"n^nZ9_?7qPYh2%:d)>M^=:+n&B_X5S&h.c8epL0$sL0RM7((H<-3Y%Z8PM;>\Nk[26"9*6`F>6gQKheF5L&_g&oAma0i!E2QsH1>c@7mh%R8@:RpgD=XN4sm)QGCa2js[P^$`:_F\=XV=Bm``\G&6)(2\J%B[B!HI#-J$X'JP7M4`U_7@Q)J@@"kmXVeK/9+B.:koNI/_+R?DC(_%;Yd]ej/(p?:&sW)2nits2#HE$6MPI,G<u6?]ERC#@R)n'g%cf@r%00V3?gWBh4E5@o9AS41'VmECoJaH.uG-5\R>]Ut&2DT"<3YL^P)RSfiU#Y@60KL]5%;,i5>P8K7AoLn?4"\\4(+Lps.m,jV%c`qbUbO^7PGppi5iYTn05JOX<FqY7uB6KCE#U\2f:Nc2.R;T:?bbmFFc`);+7nNo2GO%jddrWDTCEZ2:>H4.<dJO558%F@XIf_go%;@8Xf,NL1,T?HbEm/tkLF'nuc2%"F3HK8Q$&obOm(/+e:FZMYS3I4bE.f]d#TA*dI<bL;jeZY$mql;pGjOiO,e,89gNChPPB<=[W%gia/H*DtB?BWLdG?76^@$IkX7Sn>Jc#BEh?*l.Y+4baeh)b635FW*9!k;_0Q`]i`L`i0d_TL=[bc94uVq@,RV3I4b:s"a8N`p#%P%^;f&c4icTO$K?GJN+'t4`/\4'`8e(I1P8Dj[Tj3Og.g?0Q>/?u-ieGmO(u/@H)sQ(!+%WPcDDV&_/#lO,M#DcM,4;B*`[)GTS5M7%>:L1s_lV1S1k2MmC'E_%qP;E2Do//P'@kg.D;:j_F6oP<#$kCeX@=/XJ/qX2VAl#X0O_VIfod?;>nM66A+&nR[5FtdQ5Rln'#EhT%<sd'pOKj2:9[+d>B73@s/:(rPs,G]ja16T8c,BZ%oACR)KGD-IB_Z"-<BjDKfF+rF6e'CoaFO/3hr'7Ni5!'(&NunBLk4qjr1`mY%`k(hNLS?pl6j84-XK\78Zl^R%0(,!l3TW;g('GanZ)9o4,Js*SKknO`"r3/1KL]/WfP/F2)*pB2Y-B.O/I7"-_"8n.([lQMhsN2-%)5sgU/8PK*$c0\8YV6?a'`VcDc$rjuT3%l]@YR,4RBjG,(@G&^XP_OI`CSSpZT%q+?-MJIlL23u1O7(fgj71(GG%>^R[^BkSa1Ra%$:W94Gg]pis.;+MS^f:k5r/sB`\PY*2r=@cBsmWF^YuI_\%(Vigb"!pGPmF-m$S2bQ.Rl=mOBAq:Wgh:6]FQmj<9:liOG#Md3C`4%+d"NdfemGP%#:2AZ4'0.7a8-S!,!a[%KE_^#=gaXc@-3%9NRL,Ik`HMH!E(ni;2]W4QbV##(N?O2fhD=ZUKiK,0!I%AM>Ec;ta1h%A#da-V;e("+dI/;Fqo1da07@@-L,E=Njr#R75EjGpl*,:bSYo.jM9%bdJRekcaVn]1[H@lkFKVk8Xu6fWc>\?`iMn7()GH))\g5^%P-t!=;M4M'LJh`\0$;Hj>e09'A`KB#oo5,?.;d@tnLr`=5%q6'`G>N-7"4$#b]qmXk9uC0E,k?1\U6!Y_opqIK@dYn:pca`5^2BY%XTb!RTp@.1g]aj\qfh!KOuAM+-;7n58J)75q1XoO=]RRb#&28N'uN5?Cc,<9;p5FO9j?A/(rfM`@krcn7GsKh`afj&)`-**+d.)_%\o-P#\paaPiEnJrR_-->GKcKJ[<!#jIK*;JUFSos?^D&lSmMODR14qWD^LjuB]U;7gnU+sfi0drfrPgW>fp&e`IY@XVdq&J^RF%O%H!RtjA^"^K"C5ot;cSm0r,[U-c;)W&Fq@-#fVgm<%,k:=#oP,5[rH=IZ%r/BR*/Vj7S>@sm`)4A$mV?Q^qf<9PRuD`@FnL+id+g7%j,1[ejBYFh_NghDGTo+sgI>0#J[+=;*g"r+G2iTdIO)bU>P()iG#ZCi^YtBgp>8k]*_@7Dje>tTBVC4,hbLq31]:dt4mnX(dC0rK%AN]`O]lVfidF`WC7"NOnR?i%P/MI.cH(!L;Gj_$S9,H-%Hd(94,'s*DVQaoIfO8=t'4%b7k=Y)gCl1R(V0;h!U$"$<e_JeMg/>_u%K<BT:_AKcq:H#)52N@+U5JU6kP`h-oU]I,cfi`I2R%)^2Im@2@;omUVLj,u.b.\=.gEGYS#O!e?QsB]de.sK-_pqQT93PQJYC>JN%oP?<S5J,TS0WR9k*r5Vr#+*p_c&0(0ou"u5)VhPnT[ejA@%HGHkZki:A[mmj2;P"g7Knr8IjN/#Z5)==MC'iO%Ysj!p*r7Uh9,Xn%NZOe5QZC$(4#r7+b-ATu74a@Dn`(R?'`0aLo)oF8YEViS%,[DT/`"(WF5`akq6M_#[9d&9kF.lcf$5sn-O>W8T_",9o-B-M1o00Y%bht?<q@<3S8%d$.VhfeOV)`N3&[CKiB#G_7f:O?6mVXcs<]]uFS5O\6'I5O>T92G40k6GBRu$=1kN'OPUC9NJ,>@9^LLa#IC!"rV%l#L^ea.4]&o2M]A=p/lqEBYqOL3V%a.a\idSi%%PI:Y+YMhrL5fsj._I=9u&B?KKN+SWhq`Zc4@+f=!6,$Np;hW\F1@m0A,%S(Wg%5&e7__21SX<l=_HqBle"Xie>3.C8d_3o0#i.OX1!/"u#M/F)jM'=@K-Eos*c_rtfABB<sR]ik8i4SAF(kPaNQ\\!K3n";bh:IsUX%R.tW]SfcnX#-K)fi65iJd3FK*6B.g)Hd2,1i\LmKc/R&8aM<Yen)[#2^5Wa5+Te>nN?R:@!ft=lG+bs'U>_J'BXi3M^AL:%9(jCP%*CM]1l$ek4Dj\ReP([*WPC,S?qrNu[K!#Y)`SHaud(L'UGFW7qqQ^^Qp4-d8-(@\t=tMTm=FeJ)CFK9jJ[6hEC+gY+*')JSf=-Nr%k)mTnCrYP$Y]QbUO#L0]#:"^P>QdV\6B>!5?PL$4?K\cCY,Rm<gcUsN/>)6D=M*<UGEk.dB*@($F'@3Z[k+.k_t#goI7eNTF4'i0%*1TaT(=9T,e;4XAa3/;R6KcqH[7taO))W4)Uk>rESt\,AZXH>:hl(jpQj;8OY:A[SO$>M3h;CZk?:<%bETFbKd>R0;V=NY7IWX[*%\_pC%5Ohr(&`C$8_QUiQ%ugN>5I>\Idso2L<Ld*LHKC&lrchH+dVmZVc9-*n+7ijDS%e,90K-UGh1BA/luH6RYqfs.AutIfenD`+%AtBOND$4&QTpB:momACGnfem[8@rLMBeu&mZ0T_!IYd,pNq+tZgWa3qX74JFc6W2[jC1;kF+9S^n+1d:We%]G4gGP\E/4"#`?B?d%.(;U"Q-['Q!)5i3SF6%[oOG$dR&LS>`?b%J3\jTrc)Z>02G?relX<;X,0;sf1nIjV77j@'8Jg"BM]!.M>'5o#K8Y+)2L3BQ\^R?9%GOne%L:'N\$CR+]FYY65HRD<hMN>YhNIm3oM=[K-583<@AbqZkDpA^]Qef[-#2,C&&t=6NcFTo-0f>GePrtd'22IpM>^Zk<20p$H%b56Ig@if($[ad/?CSj:7!U4pPo+tMfH2>ge,uHC2L+N6=D]D!*V/K=a1ZNLMNkT(Z^7P(?5KiqL>3>cGQ_3_UG.r6B5-rDVG<%J:%G4s6*.A+-p-f8)A\WDQl>aL$1qNQ?i;X=;#'%bs/:t.Tg,O*OJ_5m0@"]nO.;bA8\W7l5i6[R1oAA=O&lfoks/t=00B"FEDB3'QA%ihda^9T!07PZ`tXoto\`V8M:bB]])!YRsUr=a3jE67K6_,dZErISK@<m*(XX>Z'e^6>"D`,k:[<qC[O30CBFd0/WIHaBipO\G)2>%=Z$\9*e1;Sf,L;A9Ac8mjHp>HZ?[,BI8dD2K7<`kY=R/!hNoMPHK<AII^(ifSE.o\DK!)AHU#.$]+2;tB@Zn,<Y@"C&4eP@'pn[3%?+afmX3C.:/`TGK#jm"IM-Hr\]5j0(Y"$)S.TEm?;9bX3[Z1=A[p[ObWEpJ=Q\g=^9+s..%EuKg#+#=rn,Zpd^SFBrZkPc<9\O)_%]sUDqef$j7![aV_NNpbJLY]pQB^tSsdbQl?"h<RtU'B>.#k_\Fb]u0X?$Y@LPa:]ADm&?pjb']:^A6%NG@,cCrU/_3GMbQ12Oo9W%(Zm[6_`*:`\bkmV%tFNB`Q+%C5.p4%TUUD`=H$P_pFlPaIV`SIc=$I75IWlVC]!4C2:0+qKUZ?+r9OBQDSCh9^GF3)-rY$D9aJ2_%2DN2-]J\#_NStXtn,`H7!@E!k!;@8;@/BZ1p;5]*lBApWhd`3r$O8>t3S;t*.#m2!i-[Vs<,VbMD]=FOHYnK<k3HlUVEDNO,s:YE%D3N0NJY?Pjo\3@2=Rj]kQC;!H2JGTeMdKN_'3&e,9suY_0D>p,^hk9T]q!=WO(`IoFkuH7g:`n5$<FY"(EMG5I(AGiUpk)kRu`Hm%rcp5GXZK8mfDUo$c`6VG2ZM4[eO&ZJ+3Zs=HLm&%hYbQHDndH=2KYPLk'\Y9d$k6RZ#5</=/0YI'(en4-QukmY/0#,&/k%d%`tqJ%K**el[>*0C9>>7q$f6Go`(&cjKp!R,A"^<=Gq(FWBZ[YbRG-^Z&t)p/&&@HREle?dg=tmJ!)$h%;Za%6d)OYkL+M`fGT1LHVu]Q$%c*9"sE.$PtPR@OsqiG9de]dEONK(s_TSBA<Ug)FR!j!?qqR.;E2g8Z:0%6lL1iX$+gY2;H#b$,^E!1#[2);D0:IJT.W79l:HkiRk%W.B]@hHI#8qV;VnW8"O>B+K+uc4E`:S#fk.Z63"DG18e$[k;536CT2@DQ=.g?i^%-nE[f^R`S]*Y6ltQe,U+g!2k-IX2C8-gSQT2%DsM6ZGJ2[776oic^A1R:%j)=c?[dD$rnWJCJ%k`aJU[+t%H>[2?f(^YY<Oopr8#UNmd>6O?iKioGOIc1J@`M.q0uSms0qsEREU=W%Xmt2lPU6OHAMBlMBnTtG3'Zg'Jdmu!J/a<I'!UnK4?r3Dml]400mQ6deBV(p`\pc7,-[bF42M8C0\V)>XDIr.o`dqZD.s+WlSakX%+l]j5/Go^f6u??73!<uhTp@@'^_SQq"(8e7NFsAeLAr*X1(=90eJ,EBiho2&iDZESg;J[2W,@G5OfUG\ab9O#8";\KBsmI+Ot9<n%D+G@'!?I7`"p1'+^sZgCGb"omOq%4[%_;kdds;&dK>?_06V]pP/NZN/?o1e180;pXg-.)#G=cqd"YNU*`.A@Ff(O2)\.)N5(`hg.%NnUNQs6ODf')_Hhk@q6so!Ut18E-M/2)csb5X_G#!;$TK+Z%JG4Cf?:FLSE0&-?aeLUq>NCPiN'dK;a"lQcorp:`ER)^V!#`V.dq%*T9M%kG!.I2Kk8WE1?h8NO:"=1)4RLLb\K?VMJp?Q4bg4K;G4W-__"Y(G^-1X`]hQW&(uH('M(:Q'(LD%O?9H4V)e"r;`]agMR?"%9EK$o.1JZu*GAC7K>+E1$NT._am>j*V'7Snop$*h@A3t[cA@j2_plCJ=Bj8t<MSYE8iGf4pl\.oW,EA(Y%LtKC2&Z2?Q59k)/+Xn%14\``q8PGi!DJ,WMN&&J]0-6LGlWgmOI%tr!/Mq_/NUGndcL\ro/.mu=g$M89KVs&jkdoV)$.f"!fknu,OW8PZeR)"au0l?!tOO^%SApYY)<stgG!$h8P8qU00XoP^VhKP5kVT[\Y!Lg":#\SC%SK"mq/f?*]%PjD0=SF2Rfu$1][+&6I4b_>c<o7oh=hFgZCFuCCZL_E%On/,L<h''($l)VmI-6Iga0hl(mtNV<J@4h6&4h:J!J]/[A9d_TG^OrJr.jr5s%$F37kKU=&E'n_W<6J\;,8-k`<#[[KJhlt%Yj*B%c[a%O[_V'Q9602b2j&p2j\6Bnf^f]p1;LJjS)CQ*/au4g5<h4+^K,IMT7k=8)`#<<rs7-I9<8SGM/gA7:t'>MApET*"\&A&4+ggJ%Q?6b)6,*ksiM6FrULO"/aVCm;*mk=(ntO40m0!m/%cHMkE'':^Nk?XNOYbqPa@c>]eP[UZYeU8Z`oSVk0*XsAD$'g6-Q[5OF/oVu%WP,st;a6tt.<=77nSeZO)HcXVQNOQf,+VGrCP0c\`GGtq;BSiX9dI)6-S.L3oc?ob#`&)k/QWLf85p"Wi?IfdJYTPLQPm@m[Y\PF%`aFS=j%V!.`(56+A2.&LTNGrGE`BO+KV8Ab>6UFa`aS4:@F4(XmOYXLcPbMaS&a2r5[^Ap:N'al49JaA"s@R^W*KCMR4r"r#`'r2%!_u<*BS[jR%a;XF^t_j3r=/io6QcgP!ENF##:Mrl`"16ZP>l*:*.WGM)Y,Z1-Gcl4UH!)j`<^4OZ04##$1K:H:i*%eU0D@`PFEE,%Jr;VKagE22^iGCHj8`e0(H?mt%Fbpm(d\pEQ&bNg[0'/Y^Lig8^YruA4IRU3Zlt2<jHr@-Cf&.SBN5/Z+TT2t.Ke]%o8Hp&cfjtl%UeF0Z/'k+ccNB??a?\gk#mbQ62#sAD1lt"#6GQE3A_P#=/b0#q+c3(ipnS?UN0GWmU/t!I8^<o7(E>B]p&[lg0Nt(8glNn(Dc$\D%k6>BF]UPfG"_tZK9VNK*Zl]qedt1.;AHEWF%Int4?r@)^^gf_dq)O(U#i&c'8I^i5]G-d?83DA(-LYN440Qo+q:hiNk^*`UU_1s(%#t3dr5_jY8kQ"IA!]R.)h//m*i\&_P(>)*r)N^Ne8k'k?7a$LLoqALW6#R^C%#gDa\M4W6b7LC]+WD80?Ks-+V$NIK,VoqKSUmSO%K-$iD)lR'K:%?_acph6LC4VpM^^u3C<*3@N^4G[iH_1F-"La0YWs4_#10%;me\Kg+g,ar/?Ug<m'g*UJTA.Y\-9'.,2%X12A\n-Q%!FV"k>Po`UaEk<EJ36i[JG4BJ5[FEl2YfDW`%&!G/:1HrTL"ukl!sj[<F-0[C8FiTaIuh>?kFf7P)cRU(,]KtP=Q;mQthc*L;QP#%LfO)3`,_Tt\"0fklQ+A%;#du!Ms&Wgbh?JrN?Y.g1+clNO[7B7$)$Jb=gGn*m;@N_54)ME"E,Isdt"jp(T)VkD/N_GcmNQ.!a)dF%:.pI3!'8ddOQb`eIrJ]C"Ro"#m/d:oMQheCN?HDn"%krLWXu'S4"fdh&LM"2qW./L7<OkP:a[oC*YfNjGtcL4,==!mW8)FU=*Yle%8X[86^h%gnA!^JDM^`JXaIEEt_EI31I&aJ\JC"r@bso'FP:AH,1crIJJ`I0!2MPB@Mr8_8M@.!3l'SYSAnJ@&DH;e:b3"4tXe;bc%pVeRCgt<oK:q)i,p.2%rbTp%&9o/i-\sXGlW[dKb?eHPMkB)'G5.h0LJJj.+66^K=)IiW;!@OBS`0.*j,mQT`^aSiF_2W==3$i9*%Gic*uDnrC9%,)#`h+$UQ1SS(C)6/Ii,\S8N;*N>EHX#Q9FY^E8>]LfF7_g!SC*G<5;!f%agZA5tg.44>$.t;^)k?O-%.$<,F_r=!%6.n1T-FQrLXEK4#-3:EG#D$>i!3i3m"BeTn1H8p74$,nc[%6k],[bYuj8fa+Bf8^E/sZ\M*5WW$AI]+WV%d@8Cs`HM'flqp[qNS2%A5`Q,[NSeqkU&<h\n.soXdt&#TVeKmTLl^`B1`8$79CVlj/%;<.SkW"\HRpH_Tl^165Ce["/8e*0/fqgF3oT][Rd"U:/si5oLpT^%Jie7Cf6rj6<\h/sBGs2Tc3e!ZO^\Sj945B)#24gXEnJ;s'H#r=apeV8L`9ZD6F"DB,DhZiJ;<-q)=CY%<neTKY`WM]JJ[o%Srut?%JGE&Q$jE$PKJCj(&7fC,3Pgj$`l"cgTU-[^R)).`;K`>UVe?2"GA]Z>XE>G;29IKRlmtpo+iO:9.<>O@$(UJ<%YfM'WPUNE$M<!X%d.%ME<"I1So_UY$;&.(+ZI2&L,(ro>M#^3>I!45F'9TOph"c,,$.UM?ka\Xq:f_`Gb]$"<!5o$B``fqI;^-;gTTa5_Q#8p\Pf@J$%>E<T`#+--D5So-</g/))mqiZ:+]:N]&7tKbR2]s-O\JuR##8277<#I3I8#4n9HKk(Sk7#Z8d!$=6-d8h58UQEblNHaM!:sHb\f0D%"Is/G?qm'C#%]#>miqm':Hf4d2Z\90j%'DAZJ%Q?"uiLWWe']--ZCD%U&hU+j15YJT[F""L9um1be'J0"qFHuD,r@k0F&V80"lgn%<k^U,_0q&mE#1QUP-[OcZJu(OW.CTs&KpfnL2[s/cq'J0)DLB86c0g"&-j)YZ9kC>8\,%M),GK$OepMtZ(s=P7sa+([n.<'IEsd<%'hg/RKNNK5b)qk>h#m'AZLJ:6-o@U#Jha)-5mM?A,tG5Q`tBXL(hko0;8^BYQ#8_2&6(Y)@;@Z\D#$UG).so89?de[fLZ0/l*3kD%3qs>4d?qL54@Cc?;TbDnjA]u(8:;VUAN\3%F&Qe0#Um+jGa$\@D7-C+EoOP>S,c4Ar;ffBP%-YT1BL)KMHiDXShmlJTQ5?XnSrO)%$c^&?69qTo++.VX,_61%,A/$A)rsHp(eNA6%Y3.Tl><H-ZV*hV#9'\+hr#?^;.i0[&_HnG8`6VdX]ZR`b/5J=((ggI_h(;,CBMt0%kniPA\^_tT"Ir;r#K!)Klf-7nX%;\"f8W]ED?GT3!a=h=`#WOoGnQVnV$@(\,.3R$ck*L%XYCF.e\LPP.)K6b^qFST`AG]9RVcUY%CGI@d8oiWNR_3OM-k3!1V$EUi3Z8PUAOZbTF3r!Pj\qFX`H)4gi]H+AT[b0X33*%E,#(3#Q(>pi;q_[1BLFsf&Lbp=^nJ?`^g&3N%i#FTS\p*86S_,A<0?9@G4KR9pHP(r="?J2P:gt;lX6t$0.lO.dR=N!Yq'7ON!okP,"a"aJG!"kY#6XWBM,8b90#(!nNd)gB"4#*N%<)9)4ciZG7W[1.Em"'&qd%:h?'GA?p,-XbXB+sTh^ogQb/:]QrCfFCK$Fs,^<s/;l7iSXW"P'>&51/KKJBET]j_b3U(o/dRJgSim%LV,snFuH3QmSe#2ME86k,="NU%Zl3U"*U[P%#"nCScDd&jb-`o?4OfVMG@C,.geWR>GRG^8H\*HGs@C*jS>U,8BjRaORs7,Z]X/+%Kd"c7e%3,nhQjhMTZZC?SPa>jF1&>Cq>=Y.]@m84:gSl^S.j7m@d?%5U)a8;1Pkt!N]+9c'UVLSglB1Q%&f#RAJ/N%9nM.XC',c)%oWFGaf(Fh$-8sfqk)#ptaKXSPo9kf#Z5<+O]HYKhZXRH\i)mODJOcb,?H#MDP\[)$Kq.6!n]Wk+P_0!n,?8h\V%%#A&M2\#oM5`*%Fe+>s#\4N8QtL]WWe*S#[>Kh_"?^e,6suQr(C2BV@,asiZD7`0;e:G;.2sYR:;YH^&F>>-J;)KN3nqFU!72A-Nkg0;>6M5H$q5lo%'ZNHX>$5[1C8dOg)1k<b#%lBq`54<<gVN)$4i/sl6i\Qr@07F\&Ep3/13@R<<&Jp+f"EOCMX8sQ`nogDm&DrT>[`"uP>,Q[_G8F.%?!Qe[;Zif]bS*X0K2C/[#!,r>#"-QMXXi/AW2cGSQ/*;s0P7?j8!QPb<E5!@B^:Mef69Ajk^XOig(QGrJ>0\BV>1=g8Bl^/6%c_<%V:?j')o+nB$K5ed5:JItFB/Jtf^Y2g#%FU\/t]+$#Ut<7T]rrej"R`O(o@MQbbDsk@%Wto%:ma)2M)+T/UQ=X7ZJlXMe06=HWNnN%9FW8`:=PAe6X^(ScBn>_C7kkp<S4>plWD(0f79fY-K$T3<!8<jSU0'Ga$*!/1n(__[Lhu;Ca>d!1XQI9.T%_`js1458Yi/*4Y[Na%7"l`d$$HD0i0/,9PLJ\laiLOe0sh^`]c[S%UHFUoY^HZ&!4/Xa#pDkBUt%b!WfDYOeM6%Q5oX3,H^I5\M7jCF5dH9:L&nOW*hgmA%,4f+%EEqVY!!#QaMJ0r(J\H3q^j=:60i&:K[$$i:KbZ-*2G20"9/QD8\gk^%FMs8ad6kX0`@8mfMUdunan0fj>>'fOlFgId%Xn#e%L'@.]_2=E`\"WO'm5Z`?7sR3H4[UA*JPB[?m:EsnDrj[3%4YAAU8FS&]Z;O?l$`#M<Ma/6b^`/Mf8u*\d=C(H:]$iA*QT_c')@<o%PF(+E;O+Qj/I9M93%L+'8?&ut5s`]>d88.mfpZ5BKQE2A?n&k5AU-MpT)`6q$:$S)&8>Ra*LpKU%XfXrZdLF)SaP/WPDu/inO\&B%H88LY;$4]Mg>7A)<DH!/];s&HGu?sQcSoH)3ab>&kEuXVGZT6TkPO[ZBuiTiPVCogch.LfWqOe!"tq;HGZb_W&S,r4Bf]4:$H;4h%MRV"]f`E;\b!Ah31BdP?8Q`Alp9?krO<.EAC(qU)'SN^C,SMpiLOY1r%B1G+]IqPSeQ5IO>c[?7aV-Hb]\%3(JfFN9Y*58:m_-94%&O]q3dAT=&S7$F+.fnhC;#9UL)?qfWnYtTb2'_[j7$%YH^.XD?"Ld<[LmAYX#+65M4[G%t8CMY1k98u=S(6!925VP<g'LK.\jam_%e6>epL7nYOR7Z,7.ET+sKl:_6dF!JWOcPDkNWq;R#MR_Wc5*6*&1f,s-VU=&EaYQinL!X*oWerq)3b?NjN7]P_gjHE-JK'Da=u0U%_"2BETOq1(Lg_-&QV7I=iqP.@i:7kDQ:ZX-qNV7CNI23Ik_guQR^T`#kClUio.J.p190CI(q^h?,$@4,Wo=I3_),gq3\nuXUK*[L%M<8NfW'k&ZnCE,aN9DW.Yd;[:;@8U[[Wpq?;t%OFZbt0`1YX23Ur"^&G0d"n]%@>T"td<\jtfg0S&n$U22QXl[(9Bsjc5Tm%Hu>0%&#g?GK3++dNoCp5PX=u*P6QmZG0102DN_AdV(X&V?UQ7uY#lQD*7VD00Il<+:e"IHYaI$ak(VfQR!;;UJSYaI%QG'TTrp!cl6Q1:%;0FrP*WbRP;JT?t?is$#-Dp["rQVX\]#WLcV$e'e5k.n#*=P*,<kF[,GjSO.`<0=dWGW%N2$)47U1Y8?3P7tlq?Wl$lC^hqE^\Nq%4Z`13!PTJH(98G`^jfOu2fE9A0kQXB+XD=pp5@u6/F2oDlLQl4Y1c#VX&)uA#8"V#XVD+RpE,V8][ZU?%P`&e@@3-ZZ/nih<Xr;4%b!0MmL/9RlM&jgCYt.`Dp5Eh/UlY)1f[_O!bi>2j,]:/;/9-Rh-:87SOfP.o.WQrD-m062kD/mZBiO4_:2kHkWrptjmk/YYU!?QJ%jFeK%OA:mJ-9\.O*E,s(VpmmWVof,cg\A(U8fE`*Rj9VjZ:[t4@"f*K2:Hfr-e<)=phAA2igPHbV,!jU3L.8mot6gg"ADrF26$9X%^p]jtA=<"]446,?dO5?Z,-$FT!R-Z[U[d1N`fn1V/O.@cJ12nSBEM0JQ$6]f:TN7FHrZh_TGeZY5m1dH:24/b;5[(R5Km^AXAl@T%W=\^&W"XEO:g3'_&Y5eT.LjIsFQ'_9)$)OF79mU+JaUCjl9>7QEFJ'1aBP)n[`D.J?JSD9]N&oZ3X:@6$.M4EYGg%L66lqh<[;Gm%+$<(j.MoCK'\;@K$AE[[!NTB/'p0Y%<$kXAZNfg;1eL"9*-CnBc4]T$;l=Cr)ji4>!3X76HOr(,LauLEkUNj9.PYV0#Tejp$L3e8%<pfH-!3<,?J0[\gh3s6,#ktdW"Y#4HW>6J1[e:i$m`Hl%T!aPH>QP1E`QXC??@"es'mlhMn6Xp?CSrjo!n@"9//fQ?)T8S!a>)L#%3Ku"+JWJf_,ITpb*gCu&"J.1b51*]-0i\Z"P'BT@4Z!:FX$'W97PDBhp8;sCJ!W`e;@fclogc/'?f./OSKF!pX)8`W]X]+E80h#R%_W69GC?utc5R-"DIq0#;:/u/YU:GoV3K'B8Q2!hIXI_[UO]K*[Z5BM@Qt0I#B96`;j4#>23g7sP]#?3<e-t@8?)mBX&8SI5^53:5%*\8iTH\5)X";I%U]8okm7:Vmu[h?m<4jSMSe3kUl7B4Q,$inD6L$mHpJq[Id#5TU%jR%2JMA$/o9/8p9+g;+BU$m74.Yj\7-kpBH%]ZZObG,dp6N=qWn=gJF^`#8rJP)Lqo$/-drF>)"BqG'b$3VR)]Wf`2k"jpt>-:.*3Bn.Wi\oq`$QpuqOTWYS%!_9:^"6(EO7N`DM%W)X,UA<Kc^#>p*>:b%e('o0sVWZ(($+$bOEb7%'F/(WFHf4YdR?8-Q@bT1Z\X%#@_]*#8ZbQ[Qg86fZSc3>dOjJ`"g%$`fkfX[aY%L6T2o=cXH,P+nXeL.R\XkQ/UeaihW+U&cRSXAHD0dhGATiqh,I8mst:!k&j)4saFpopc^%S^mC,b!V+1b-VRNZ>\-KPDL",eZbq<%3ARW+ZJ9I%KC#XI!'LocN"S)5<+C[T2n3:1T/5-)1N2M7E<Ib78(*q@Yk(Oc%Uk_YTl`SKo4L<N+pln)*jCUF<^]g^\X\3jrg6^`%`.M'!2ai_\J5us]Rc]9c)<N)%AR1/k02,a[(otk4H8,ac(or<_M1Z=0+''>Z?.R<#870=;"d3I3qM1JASu\e>]2@<oCn]t\K<-R(%)4oYBWNPYOZ)tPlbV#MSTNU2O3)_)]-nM[D,E!ELe0+*YQ9hcM^na(_-GE2S4R<B=.><PU@PBbZ_<aPkW\6t2!`cq6o[l$_k>4!M%:1#?.+eTL=,WlO\1XAUk(kk^WfE/*C]sMR5kY!ps$ikR6JATka)4*BJJ]a=e5.R_s]Z-Y]Tq4\[N4p"]WYd>(-GYR1-92`i4Tc<j%@TA%&LDXWDCfTL<#<l\XeB)B,eDhg<$2#0=8BG]S@KOL"!7K_K*eO7(=\(oF\I5@k&1ar[W6+C98I",d,`@j'BcBF,X>Huh1U&;u%R7B*I5""XW7iL@Y^eR&7(("^mBjgI9K")"GL]PSj!*N!X@$ONEkGsehF<YZ4p6FEK^tldu#CL`IBGGfok^t#W$5-F(a_ppE_)QNX%0AGss=L_Y!$_Z<*4m4dOn<m[]/e]&n%%T<Q^.DcJ[i2'.]7H_C>o!PV8^^A.`e@ArXGrjf6S:/5GVob#S2H.lAW+D.@^1$jZ@[J(%UansnPUEXDfLZtm'B-k\'VcI+#Se'_1-%Ws"%?c7:pI=0>Bg"52_YES/tm@M@jG0;p>!!V!c='"7'AOa+DFYu;JP*>rEp6(5d*0#%G>;Gg]UE`Enct@'(5V.8*4eD-+T"F7L8bE7AFduicJZL#f81LJd"@_Y`IJld!tBXc,ZL8_?+PnAMo<D(RPs\<cR;Ai>Otet\%Bh2%dDItCncngHc@SJu_'!shL89\oRX>UdNGK)oZT+J5>9?A:1GIuC]2k\>\fZ5Ff-p3-(CdP*-99n'YY$6.F>$D`;>(E%rn-I!aqOsg%\uoc"8'sn5-+"Vfh/#)t,AIWc-9k990^s,@CCYt(Tkm/kPN;"eTqa>d+KGG[\CjNDaVm"o2"t+;7_"%d,]^,_\=28)%E(\FQ7Q.b%YTO6?DC6iQe.epI"Grj"0`^^=ankL7-(o<7!fee54Tm78OoiIV[&Z/?%NCcl7'Ii!T[>Tt6'#kOm:?nC-dbMLHN*%JXon(l6?po+%^#pdrn`n9+*$1%[DK5fB[l4@78P)Bc:EH.LOs',.F!FP#--7$"@JV[M<bQ$L)PJO=oXSTlJ4Rp9]*$m9T2EfckP[ri]KO1-BXRo,%1dke=i&ShD2/jkkJ4'M#6O<M:3&W_i;!(/3*dc1^:cTmger\%-iA%VQi=I-)"SZMcYa,LKUa1s6FB"71ar5ef'pDI-k+&DR;Aqp;%BQleKLFT5k+oq^)Zo8GF(QcZ]dp\m$2N(-_fK03@93X#;M4t'EdgR6o3S^E]9`S_#Y:ri'5Z(uOBb)D`,aOW0PS)4F*(XI2AH*4F%Rq*Nr7n7A@7f&U4Ps2GF5Z/!W3@,$D\076l(eb<iM-an93"--lj)C5NdP-R`:1=qg/?1nOgcD0s9!!oh4?R;PjLLOC,s#$<A;tnq%(79$3SBTZ;L87C7,PIX#8M$__Tl4K_qJVIU#kJb@6$_B6Kbh;];>hr#;PFAP5Y([g28(8ek`.Cu:0,=2Um[BNE@`5YN^6hB?r()"%i!Q3Md6L+W$92e=#^`MFr`>YS\SD2(iYXJNOVJeuNnC(l<rHn&Na)QXi_2>2Mh]i.FYoX9d6Q;53_<(P\K6;1c&!9g4_k>t<kqk^%1"lpmpd[;e0F'[i';#@kM8ar"mW3j91e\'f-JpR<X#k6[@Zni1>_b"bM1Cu`Q%@r-%Ues)c0RWL2B=MZM4`P6"+0DQ$YA=a,!BEg%VQ(FXkQ02(f1RGgE/kKNXi0362GAsqJW6&dXs,Jc;,(GVpN+Bjae4GW0<W)p!F+ejT#A[b"gOGPER/4d@O-l28Gq;,WIeua:_39e%$0%\`GeN`bFB@E8Er^8aN51WLr,km[1X4iG'>$c?(cjoDT[##a4HuRP!M5Z7TiO&).MXi<c[5>TP+?%JTP0^T`k>r&X;X\3%#9KB%p='GJ+aC`W#e(9h3_D"1jItF&DLnf"QW@#eF<<>2R?0gR=iX?@BJt]UH"*)FN'XLTcJ.Ua-[C>dW>\inN;6ZY=3V`dYmSe\>XWXg%)P?3INDS'<8#Gp:J#1gErM9E%<[k_,Z&46*+cnO0"g]]:qlWZWp^HH,!CD%cZO8GXX>5%E;q_%m#-8i96QVK=')W!ea33bY^nKiC%^-[R2kV*BB\==Ul\")f*Qj>e+>2>QXH(Mm<_6YDkg;c!WmH>O1>n0SJJ1*G'B)pCec=VSMZPhu28Sed#P"lb:Y;r)'<72["QJ#\h%#)<&]FsH1OeHf58jr!9t!3kTC;#$2neB^&rJ!#\^nT"3;#5+SHV<\]&-j4)/:+k*/)>^ET9(.TWq43(8\*[uo5!f2TScKEUAg;eY%G2W=_Z"O^IpOOlXSUAg.!P^?r)fV^f+U>[hGL>No:*F*4'6k;jP;WWg#i`Xo0`b3_?l]YpQ!J3b8qM4aYh3e7dF@Y]#4KtX4.1r-%>]u:HfIi>GHe\PWD;"oZ[FcJkQj`"%HHT^A(RWm;9u'.7>&pJo=?ukBrl.&506'((7kbub=g`,Y77"YrOOf@.1Xri\^=ECGln;Kt%5EREG-VXgVOU^@u$G`W3BLF8/DrncU?Q*;g7g*T9!D-Raer:P$-](e&#l9jR]Ur\#YmCUW7N8l"_"!ABrphKo&7t9rCn0Eo0$o.D%\:]ukiR-@nOp2hoiu&,2*\Z2/d\kHK+iSF^q96=E'_4\R>Rul/H(=heE`U4'E5R\k"50_f1G]ek>=q8\QY[^0(C^FMooisr7f[RC%+P<uWX<FI8I49n,k6*=Z#FnMSf/niP.!o.AOT6u51';\tb8\Em_/NZmbF..hOib5))F27GY5u5d5%>tbM=66cmf+.d0%+#DXKR`j%$I;#%s/.CXR5$$9W1g>6O;7in*)s0s_%:u0$&'V0i6E87ScoG>it2\bR+[hK,'_+;cUK['TG65gK0[Bq:'76>Xu*rV9ABeR4o.^]%PZ&B9X]Whh)WH#B*+`k1EA<?(<Ef'A>ZnXl!d_X`"jl4'ne?V<'o0@Ii<1$"\*T:H*WRA-;&\B)?3$LrGhEBQ-dFl1^a9Q]\>k`8%&9)cf./[L0UDRkDAJfAZ5h8G;c3a)?N75=Pa.b=`:.U%a^8\Yo$(lP.O\R1bmQ9B_b=^:)!?uh^'oWeg!i%bijoN\l+;!uhg%cI*%7DP(%'o_a4"RUGidKAlQXg2pkG`pFSS/&np;PNe+AC#DK7h*[iPn?m%39W0n:eHsZ9tfV0%WbY+$O,i&nKf=A]pQrG+_Uj&NPd^W%aF5BDLaP9saji-H?ZHD(D$oN)'otJ;T>6)V0J$!keo9%I5k6-I'OCW<![VEQ??,lH?Mbm:J<IW'_!.29GYY>hML'\Mf%<<.kT`5]%*pd*M`sN!._8M00#i%im<#.8Q0X(mk0Y=fipIgc0M:.[[]X"CcM)I3R+\:340uW*cfrHl"`$=oI]B+!LK?TYOQeXjH,5$piAEok+%Kqc@*#6cFZO9T0OHr%scA-B3BHo2peMTK0J)l:aY7u??ELFRhq<"6<cM;)8LK/.%-NC=p*Y+V_3!7[!n)e^U=?^AhldEu/:QpTbT%d>s%OU@E+0/98L%JFf&p^;34PJjVMe"J49/3JcB?QgT&=L*<5MOu0rj_W8Oc-qKA;\=[M6IpL>UMt]m//sHGISGA[=SgU+0os]ND%^kl\(F/SbLS@De>3Dn"@MB[;[c-ekp$GK@BO#A;<bQYjTY%6#Eb\3-+Z%AEEjqY@[-t_03%<]XteVTJb*aHN=71fOMn(ihP&YR+"%j#q;P6J&>2RrW'\R!(hr;B3am&8hh)<IDM$06\]NB-=r:\q-#cPXafB@U,*ZF60,>!m4YDaA=;*Bsk7"]%u<*PjoR`b^_L8FA&$S%f_%M-N:$\3PFH]"KI^;c4-0(=H$%2p?_dB\O]s480rTeVElAWgJeWAt8=634,TsYkjf5sOWbeN/"\0eKW-D4?`W60/jW+HRK,^$%%Q0%oG9,H]a-grA&KsS,'9M:=mQ"q*iqpW^Z*N:GM+YfgX4oqQSUO`KC-d8)`>oIBm0A!%BGn_Rcj@6)<2'.W2:#ff(g4M0IiP\<*%J?Q,%WKu//17?$Hg%LZ:-dSnGq9g-_KT:*J%6Df]D?,)fZiR!tPf&bTK+rur<8m0I07gS+%WDnuJ?l)/bG%]5K#a9p0XPfA6?&\n%6./20iqSHpg61#uAfX"fX:,Jfe:>3PWb@]N>h%lSd4gYK]FRq/1VD8$k?k!>=Tt*O&)K)T%JaP5FNB>UaXK%H>:,A/o>?=!0gB.s%<44YRDb:+kPGpm#,aOs!dfW8Fgq?=MPcJ)Cj%_m"m1=rfPApV<L*@6hB+N=Y#$HZO8bVJ3+ooSB!kKN&4`]+I06I$BA40g,,te@'%prQN'Z2ba&`9tYoJo-aI+c;JUd%Nf%2kFk87p^W[rHe;K$8g?,^7@V(.tn`G1j<8WVE3b*!psF=.Ha^i!ii3aLMdF9LLAJ*dDf_C%7i=UJb`u]L;WQf]eV(/uib19XGlZuEJ/%2mY5uRO^7@V!l]J>Nr]+kGhI)+jTc6*2hCol!.c03W1Fn(6D5qtT/'<0f_BEG5O!X9)%%1$LY#Nr2HXj/GF@fo*us"D0o"02[qRoRuKJe'bbN9<aorjOCs^F.JZW!X?&a^(EF?(qjY=Yh>qDM<EfU'C%*1("')oA7K0?,nF^%d&m0ca9hQ$$_q*Q\+H3m--G`UB<q`)"5a8)3CX?P?5Ap2bj'687V88.k(GiOk6r&rV(s8LX4t&r"%>.+#J*2)_i>b1C)HS+$I#Z0%.">FNPuMl^+HfS+;HdZ5lH?'7XNP3`"M18R]qS).TX&6qTQX2aHIaReM*2(Z2`.18E<c\s0T!)F;FOcE\_%uGTH)^7()Xmo<1R65%lae6to!lH,o8#(o*_1Ki;:DS?"/g>H**D8&g-]hk7NaJ<3<tl(=l_kq@'*ed*J$6u"DS$"XJ%6N#O5PMN9.c^rgfqZlSS^?9(F.^%^&u%u*+rZ<-D4GJNefY7e?*3\(6qceYg44Z0)[GNVZ[#f*J)BGoX[fd7fcA:Gn,o?.&p<udQgb9GGr^a]ccH1_Nc"C9Nqt!%da!0%S0[XB!0^qOFjRH;:n)UEq[Ra/Ql^N[9dens1]gZ'5DfAKW7ukLk7t)h[BVMA8&Q!YZ:R#?Ni3(0L\qA\W59(ag<T#-NkDUh'nDNJ%<e/VK:X60/H<WghiN&>'*32-cT[&9GT.9SYCY_[UPJkjlCC=cH(#V_sP_@SUea5K,Gi-ht(ko""3,&?rmcS@>#Hc7>(kAm8JC6&s%=j?8QA8A=d$guN@>_"#a<H@(:lNY^9(1P9O2$7hbJXhtlBXA*Z+qEH=PmqOMkVPfk%#F2dAHT#S?NM7'[A#CYZBke;1+HIi`)>O&%.OI=c1\;AJrN$E!^>Q:5n%3P(fO6RZ3R2@N5a9dZ+>?f93$js5<\,rNC.`";kNF5M7*3FP.$B_J"?t<=G<U%ML`Gie!+K\PBgBIj%o&A'?\gOZAP(ocOHkd%lAHHnJGo>m6<c<!(Q0Yh$cPbV=(N6qIdu2$LDnnr5lHE<6.c'WXge31GJ1o$HlAC'olm1DF/Q#h#%7gub%7!V0,?R//70WZ\"LA;N/$N$:DL%q+\o-/bKY%Tq1,W@WT0t@R-Lh-h`8UQ_3*,.(;a"HKS1TZ8K)uq\7`!C8)J;T(;BFU.RW?f>-%p$FmD]=hn_:0r3*M7Dd@db1JM*-PA-XD:7U%s,h3hZ4!cd<q8m"<9l`7W-Z]U,g$m3TRD<0H#E9Uh`[aW-HJieM'8@W)LNMP$@3W%&ZGfHU/NTmmfh85!mntK!;2l@'H"0f!q]tfC^6[\IbB87>:o&8@up=Qe7)12DD=s*C%gWUFh>0e#d9TID"42i7!7a>9nj+d"%lC0%<\%;=k2`UU&I(i0\WgZ2<fiJp_l4%Li/A=KE9W2r0sLk8O4g\O:R&T'"3"Rmg&5Q+RHXf];ELBK-b?0@)X-*'GsIN^B1s:dJj>1K%S]KhYk!6'bR8d6K9R*BJfLm?a,EN*j=LIH5$kI`Qdq.TA#uHAl+d6ElDTM,]^b@pn0\Q$,,`2RLD(B5I-MMT;be>5ADO&I/fk=#Y%P8>Sp_2F]1cqa%J\1&kj#@J[(E%s?Z3/TZ(&!U"Gk`aQlJBIU\1/RA@*+D"ZKnpAR+Qnh]J7GDMTN+*d\$DZh^R,3n3ic.j&KQf1%W<(A%<k##3.4>1I.MIiXCkZF?^p3'+daVrT1L8<UU&5;`Sn&+i^F59*"Ta<H/$h"Hd_N?<^lgtrnkA7p.uc3N]kDR1<&&b1FWmi^%lC#en3<00;(5*,*?q8e4q%Pg=7)K`.ah^4c-J"$7W7K3;644mXBYYd\NYI7`^#hcQ4WQl=CCLAQ]333,_8cST/eB!&1TTht8=fpX%n!,`V_(&W@;-W05ZVT2S>Ij4A-lMIB3lO\U7QW?UMs4XS7"JW<n-[GrM1+DSYt,)\Q4P=tQb1VOSsN-N,GW_=,6eQaY?AJGcNhL(%0aUb]f3^tD7#cst.mdVm8M*lXP5-q2h]@`1jp!NqQg=c;kMT*4mj&DQ18IGK3=T_Yc1D@1j2[(q:2uF&L[d.?Sj!Kl:Wl8+<H#1E%R]T-3(-W6Z).!@J!%iamFJXNu*YQ(A?4haS66qt,&ChPhCna2D4k;4M9m-_C<5QO01]VX_6`M8)\Ng+)k!7<:p/_db<5L%KRHRbM%`LMTQP5+*'rpWQ'-D:uce%s0d<&M`Y$D1K'0a:].[Xun(NIb)aDcpc_Y=^QI)""*jNcM[Cp&cG1\&9Xs]&[9+`#E]l!<GuBDcFM_%l%+A,qrV_!%$VokTt8kKh9p/^+@e]B7QKc8;!1N@A?/f)o^a6\mf/@D=3CSCA>,5,o=B>&B^Q2LB0Z_mdKV`LYK<46;l*EPJCU>(%%c#1_h-I%j>f!i9m+KgJU6I&Ffb,.7f\0tGagKf'!J$jKBi59E!D3mt[cX9d`rpXDJ12okk)!MP(@C/d0;_hAi/*\qI_f%1RKNm0%m#$SD[cc@<l<aua,sd&Y0mTF<E4pQ3;DMtU&)TjK"6Is6!PS3BJTEI4jtK5D+<?!j.IsB:>qmqWg-p&-5ZU=.OiBJnOE"T.>WHCZ%R-6(8TEq^[(HU(5L:GSN'h;Y-R_C]U]eP!je'3Hi0[;eF3QL.6q9^["!_uGVI@!mFUce_#Q:aAH'.&)H$(_BZ<rRUBhR,A(j&cuo%"oJo&`=_[\!j;F^kS!u[%e%Q,Y\Y>PG[l@,JY7Z2/m8g^bk(/Xb$0#]9JsC)P/%J_El`bDe_PAObcE1a>T4q=KGGbr(N=oc>1kBA%hV&6@UZRIOls6ks"kK=so3=B#65ZATSGRY4P'-[.\IRVrX;]h<EN\1B`?<mW<"6W8L?,R8*bQ7?EEUR9#"#6,n1%(/KW<EO=Z(c(%ntL`p9GroU`qZ0HN,I0+Mf+*!R[4t&,sf,F@WhSKGH7N*,*ZNp*0>#?bQoV9Gqi]d,[c:P^X+M[=cm)Q<,A1<$r%Q]fqt@//<gsl%l5c-Ag7_b,VUuJ]Vf3mSjORM,n23,>$b)-%ATTp0]e*Fp]\7Mb$C`"+60o-$;">>j'Ijn\Ht`TK%a\Wgq'Zs=ff<_a[(rnXI0Q\#%SSs23[81e^iije=TGSJam5':nYhq7=YAP$u&9B`p4cjePJo<0Vi9C^6r_J4<!_s+Y/h?a*ooPQ:(&I-L-8a^eWU`dN!u-3GO)ZpR%6O+?-N9Jp1IUJd[,BO'3W6J?%X;*sK/&P?B#O"M:^_%1$7>@[4U:./*N6;]qTX5j^/oaBjCcB%-Qt@<3TbBtn#c._oB1j1Tq.r[E%V6D*^XK@W;,qfuE0=n3+B:-npbUOCV$Xil&HDBgL/8N1@#cl:HOkN0BQ[<38,G-ASN;uG0TTA$o[%]NG#B9GgA3%!EfN;Wm.reoH%7/Z<G$d=]@V%pQga+kF=%Jg&R?OiGAKbjknhKUkO'U[^to7i2-,DR6F4d1mUigi1SB/R"iZ;;OVi[GnjJm[=?p9NO!kR(:j0KW<H%Ort(2hoZ3`1WF6e;SfH:/?;8G,mYES'H':>RLL.gGjCDL5Q\G$ZA_ODX6/HKYrE1&ZJgm:A1"Ge#BOZ+%^i5<6k.c88G*R!TfesS%gqq[K6[VQP"Q-(Eb@(dYF2UWq8d1NiVme5:c''2J!6tB!!#/kM^roHWY8D*WlEIkE6AGN!FE#cT%[s\Tb&N]oE8ZutTtEWe<26bY%AT7<A6+2!^6:@frA/**#[u?!aIL(7`XiMp\*M>qEkNioCP3g#$osOl.2q%63';X4P5qPZ#`bulNW0YU7#-lXb.%:4=N(m08aTV3o%Z5?1pnsGM#J8sn-EYgL9/^""NUp4>.p^U4/afU-t?u_i=a:qc$^*@f]LK&2PZG]ju-9ACH,&pl\afsD.^7X[&$_@Wo8B=OH&]tL6%1)lQkf6SsKmKBIh:kSY*!ti@epS)Uqb/>"B&B-U#!"3QY<`?RY/,_L?QB$X.26W'lE/fk6)CZG</.@c3[(a>4fFRLF_6/&#7RB4B%jEV?T%8MnL96??u>mNC[j"I[Ag@B?H0J:O1>2X'HSsr#_c@TeBKMX["+Y&>Ig7_YEiXgB*B:1lb.0.(2BnY<BSH?T49TP7s:q]jM%QfX];W0=5)3J0!oiBr7-M#oMSZ!;t42-FcA&_>\f3\&mi<YXdB9QF$6\9YP/6kk$VeB*4OZ18/d&(6/>(q=.NYDlM^fnliHT%gRD%6ERB@8/U.oasl?"Z=WOM1cWi3_NFS?QIU=r3]0AQK2_?`=S%j*8JDdlk>c=#_+((q"1jQ(csX4+hS(266n!q(b\JN@4&H7%o/d1c%VB\gb\j7n"5Z]0^JD83.9d*mQWbF/Cfd?h$)\)lO%5J6+7q-dH81sts/UB]]<_5Usn8%e.Of<O),I)K)+WVqcA#kn9JuOi"82$od%VRES/EQ_(W>%+QIYRqC`>l[94+KQoF_7J"FNHd!LC(4%j\/@TRJUtB=7L#4qZSmcbArbmk:/`F:+LOWq+C0f4To>Eo2e(mHn8`Eh%@;9NkA4T,O.HVX<dU3Mt.EXXk?k_HL#9tCTNQLdE=:U;kOO\0m"!VThOi&^m>(EJ$&8F9e2>DE1A<Dt;q#!Z63u6tNc.lF;ou!,\%$&u17@^;*9AM__j^frhTmmu(rPQil6H1Kb_E^&"'4`nMR+4(Y?1bQt]<UlfEKhR4M0,VV?5;Ej@B$qce(T:;`\X$"OglS2/Yt>-^%CG[[__4$F<WHr+o0gs/DksS&:2n5_'VEpmA`$1Fkb]C3ECLo:S65?NbDnK[85.]uh2e++HEutNQEs-W$FNn:k19!t*YVYgVY^[6c%NN[dSFr#d:]p=X3OW/5`YllRN;A*$F&5oKBE<("6U'TjCi9W18g$8PB6PcW:c50o3'G/];>de>CFu?j?)$pQ(]Fh%R0aq,6P5B6H%Up6"f:iY0*fdmH@L,3rtX&hD..H9#PR&h^PQ!(=8d&!VfKc%p(m>="6N20C1QKaB!_FSkl1(OV0jS/_r%rAo*'gs?$.-mcGb$'ah%S>VYnG5k[d"\(fuR!PW/ED=plk,!#d=Rk$Xadaq.3q<@@2=nu?1n)!RCkN]Zh["X?+-+9[]0GXfE1^_-Fs7/I$gVsKj@2eb2I",X%^E3c%c)bh2"6**d8kfNVa]cUklDbTA$Y&5K;+"f7JY7A3/D0/*,a0h9%oHK;A>E1e+Hs>r#i![d`-;A=C/e)rj^]VVaDr3h!-TGZ%2=TY:H;a;'28TWM\8oSH);)K'%<Q;0N0W^@,d(iAC;2%PPc^?/R!Jmg_)H"add6ZA06bkta8r!d4/R/uNl7MVM46\:O=o'K0s85Z%mLBL$\Ek?>\GAMTL`'b%"d#OU2HRPbi8CP4$Z/FT;?r[M3mggIHPRM#jAnIF!A4nVX'o[.WefAt[(0qB&98nkR\<CI@;KL>j/=#<%'8ul48uVDRLbehSnW^quT5+[QK:4Vd6E=;K!0,S>e>GUK2e>?^b>%o[+A>>W-HGBo9aj\3eB5WXidD:U_SN!.(/'g^HABoQ+Ot8'%ENi?SM&M]i<m"IfSa!rqTtFbUEG<Q*_AZ"m$6)pC'h\`BkSU1$M1_YR$3qC@88KTKCk,JVQ!1=#K!_S<AV:uc\65+NoAH^6dlp<_%=V8e&K!K:-Ca;Vh&df(Q.r6c-<pZ2o#4b;4#p%"CeW8&-`?EaFQ.gt][0D:j[DMUj2J$Ak4Qn(0K9L2X9HLYiD3X*5!bp'KL((+i%+0XZXUnQq!Vn)(6#n_9mG%1WpP#lA"Wh.]krfg$WYh$Ujc*Du:^W&)2-98P%H%GI@N62M!<?SDb?&0<\nq'?T$qCMc/onUJk+o('%i;i]rMraqSKlKX&/p2#rO<MuJ/Xn#>P_9s=:p:LJr:(>_1G11tK0q3,8/S'>JeSHp"FO_%YWRfQ+,LoZFsK!=9=i8V.iKnk7`Qb<%MSrdWA]5HB?l1#TP4,,mCD#Zc0kne=_Fc60$8FT@^-Gb!V0BM*Y;Tj0d1!3tjGs*cAc5.n64"_S]g*N&CusXNW#iVQ1''[(>4b2(%h:VqM[R'X!g<8iHUU!J7gi?gje3kLh@O3Y(+bk5,OH,!HQZXikGR+SWYUi`f7@(k`,7#dKJ.bA5bHdr[h2hpVo*D.hYJj?g+k$lF%K9?A0cn6=bZE3D/V@hB@5J@IEPo]8tV%6$^`"aBg0-a[HS#4q9EhNMDdH-,8%iL@*`@Hh@Uq'+=@u<(9@VNtG,2+"SW$C8/#nGsn%-j]/^[2:)Tq$T]8'k+f>isfBq<c7cXOHZsb,-"E+q@'W^2q[#M&CHabf#fJR?T`!T,bc20P6YJ>o'b)Nb!emEB9.fpfAu".j2K*G%-4WugHKgSM=Ct>A0aSl*g-OYYi'5#:D-EX3^`:6U0$?AC9gD`(e3rRJ05/:uW=9`e"q:N&3:]ZM@Tc!LK+Hs4L1"C8-DG4+JL0fp%Q3<MK-j9$"qQM<B'H^e?Z*]MRXqje`K[>M$$J1gu9j(Q$d5*(Y,b`bk'oH@UnODQE/m/Z)PM&)3,)ikB?kBBG=]U\a,:f+bcsbdT%Glbs7,MQD@i!:>1VnH@Pl<sr'nGo:':2$'<#GZ(63kl2/Ld50F6iM!nbQgF$%)NU4I1R>)a;ggIG&T6)e;2V^M'dtYim)J,jflB%%gH-0/KH?+P%^P&Y1'3m3nrhpLj^C/TLIdATG%5J0O+[U>66k'Gh22\)?R$U[%7nDo4p\2M8Z?%NZ@bTmFQjq/5SA@Y+I:M>NM:;6%3g""52CFnT/d)SMadRdcFdb[@=ksFc1<?,L;-Dkd0LW'>64U+1TtGo$#0(5:I?B1hMi,[qa@.L1&B]u0fqM>_A!M#$[mIadXY6V^%-`L\_*SCmIGmDmU;18j,@eiEX?mH<[b"p<):Ldh/36(5iY2[Yaefa%C\Uc)>,`FURIun9"WhGu7^%O%jY1!*):Qg#KP4V"#4qJGc%#Md=-#cHb`puc;JXG_GN\qQYsF$t#?LTsV3buQc!SB$&nI!'bI\E`M.;n!OcEk*?2ia+YX1)&%l'9P60(nHM.So3mj2bIa8U.AV;%NBUO(<;O,pYo3boNIRCQQ(!N0l:,0(UU@[q?/6@%M0Q:FBUJueDT8>D`2cVO[e6ERjs&q5\um!-2\iYX&`7e6,iEdo?kZu$NCB@n%>O99fG,$3.,:C*#QCIE3'="$*ELu!Bd$a+F;5@nb-FFZ)g5U6GN/F0aTTs3FDHuUm(uFPWkX>\O71j_gNdH?!U\JDG[M.i:((pN8%ft+\MT'jO":W-d>`,BiE]k=+WRgAS&XEcHM]c4fENHLkRMr+f6n&F'W`8u2Qpq+rQ'?gG^(4e*q^aqE1_dh'P46Z5ZFSHLrGSXmO%)&iL/0%7]@.n#.YU<>F!J=!"hYirAuFI=kp//hg.N<sK_/rrMhnRI.kUrOb/jW']O-Q0Ef\u[8X$n5I?PqMOJ/4W?+kL/=;RG`nc%o#XQZcciWCN#6Cmgc#m/3F,CN0)Nos;brb1Vp#)r_%kJ]($ZABc#OOV]LH02U^=K*0!eHBK5#q>WQXVW@=XeSMje%>l>f_Gnl7R&%<ZMsW$-'%QG-*q=fA2s&,CZgK'3LSYXNN<KjW^2S/SdAl\nl&Db\:@K[4WP*Qb0@io@DrSS)B<rigK*fd`o)LFdVT_nE4r)p:@>Q%>mA%rgL#^OYYQCoV&J]@'$g%a2I)#C<l@Q6`D*e[/hc5t%S,K)lnUp\+H^L9-9%;@-WhqsN0dgfbR#?80'?i5STBD)Zci3ujTh@;%'(,7MFr<n"fM&p$Vd5>45+QGDH*tiC3l1"5jaQU&`6L-\Nn@u+4LGim[M/SJ4eg^qV=#]+DO72DK$h'NrnHN@T&:<Si#f[sWHa$F%\BBCbi_#g#<UOf[GM/E4R%5U,TY#U!'AV#A*pPq!opFS3GiJsPl$'BUDL&R8%,2G3g`>PF0$!]3+*a,6]ZW&o_+<Eo0CSJ%G<+'_%r94kglSGX/I00.g<qn;"I$\VtMO2'#@=L5h4h*h>jnUWhrl(bE@GL<ko2"lNG<,[^ZNEm3&t$g&d*5??S'+(f*cs1`/BOd9AmSS8%dEk\O0Tl(&Ric)hQc/H*'Q_qYR`lT(*#WTSNBms;B&;aJka4p'd7O5_bmuRl9B7/987n$Q%,^O98"%VudcOj"An^FAF6R4al/mei%c6q)c4`bh5RK6FCc[N3_.Hf`t%IoN[Vji16S#`HVf4Q90cpY=8H__T!k:;]3FE8D'j[&aI<d']`WLI1-+qmm6CJun";a1jn04e*9%ZdbA(:7be(o)#<C+kbd6]4>oJ'<THL2SlcOAS(23\'=KV23`&#lF7nW>`Xn_9Nr=bA.oAq'5Vpb*.(sT^-6UFO6*Rg#h\5Km-r5=%&+hjG2Tb8G4EnY@[mkjg.1YuEWgk]@c6NEdQ`R+*l8)'5A-WHr%^"(^"d'3gQ`b"]g??FD=lhQ!np_%Fd_K??bY&#dm*IO_;E8l5%T6^W;'4b!hii*6AW\0iBQhm`&OYt+TeKs(@U$.r<oBK/%2'cTDKOPVU@m--`]D9YtW6aT3e[jgW;`&?4P\pU#>F-[SJl8a=5M%3]%><lq)$1PN*Gn[Q2>me<X\b[XdrC.KO?*_7'@R59*Q\9=;Yjg[BfnS:d97o2iRFnE=lk2&H8K58ENu]^k$/3HA`FP<oEf.B496/]q%_ji$uCqqu83mJ&sc7[@SQOn8)4ENtJg8-'cU+bn2ST[S%-O<[5A?0!>ed2]80&>h-1$gs/gq("lU$E<AD33K]&K_rh,*s8.:.33e%30eAT9/l^D(FdgmWgSaZR>BDXa7XO!JEES[R`M4@%+8t);N5MX7R0[996DJ[H6HBhd9=6)Y&4[#>.iM!'5[SuE?*\Vcc30HW3qNm%EAtaO/oGPN`i^8?2\EUPNUlCh"3s@Geel;B/E1L$@N4@[Mh[aXSErXHG2k;)@lO:)Sp*\X:.1.$Of$s%eCjWI-J#RD'g!!ngPrZ/%`oTt6n93i?qiS^9;8c2IEAoe$2NG<SH1$>TpOfDkiRXR0m"lSIM0SK,AGB=B\Q#48EP<$UraDR<)p,f3o0*a.57pQGNOka<d-jHq%pZ)893!(!^JM-Q0/5&9qd9rOnU!'F^ARCg6C?Vo`FSR"j\KVquM(SnLh..8FD+U&p@tH;-bH*G7_(idXdH1)cZ@I$76b;V.>oo/#%cB9fp8XB`pJi0CJYgV]D\XU()bOI@2*7JJeRGt!0iN='ggh\b*9X*\R1$s'CH"Ql!)Qo\b.o;9mW67(U`Ci&*@5RHoFd\BS=d2C7%90I$e5)I_mh,BXVC77Mib;[s_VOD)$C)F-4\ZmK+[/-:s'C8s[9O8spY:`&l"IE5WGHAta2To^`0V<JIdO+b=-Fh[=/8[2%D@QJI%QR?[&;f72:Y00d'7qt!0hfX27-91\0r-M_H^0+LO0`tgE.r^)AYercZALj9Y2On/@m.)IJE%?rn(qY`d?$=7@'4dFcEe7Z(b=1)q%Xdie/m'0uBGr+VD2Fi.bS'7E:/>%>[croe`0$ia;PI/M>3l,pl@7BSSVp9=bNd+^=%'Db%f.JlG'Sl#`h^mO_b-AP"@6;GPgZ?GG%@*tNVge@l4Di_oIbP9h'#O^%HG8Z1Jm)0Q"`Y4l_I=C60PO]^ZEl68Zj`6sOI3*ArGM&]=R&;<6Wk3Z0ZeX/t-+h'l4i+eeAa/XR%Gq\.U*dGPKK]4fCisee0LX1@"q7Ob2hW7\.k$IN([.ie>Hc5A9MYJfjr%.=7LcW;gAj=Cbhdspuo'&qhmrs'R4,j.Pm/Pm8!Ss7I%ZhXhq\I,oN%D!Dg]%I^BBbdKX0_A7#FE0E9jF<Q<("(8U0p.$]S#rESf4$'3`[G1`Roj/`0unSMNc)RkDJ"s?/0JfLOBugeDB=sY%cB<0fP<8B/FE=<QA652?`6uoad`q59P7+80)q.G61QdT-,&^1?_bE?7:+(,.35pn/XYq'CJ8&fJp.3:`^!EQl+qme:25m!OBHe6i%2fDPP_bi?/;E&Ah2nr6L(K382dmSqgM/6#EbYd19;cELjHF^)f=g$=HkirPqQ]WkGD4N0DEkH\,XD/FHCMR0loe(NRf56-Bmc1Wr%EQ]0MA!ZGdcug5l]%hIM4ErGj?C+r9P)6B[g=PH\lYt$aL`7DH%Un0S[@L.CXjQrLMIjLnrR3&!Rc>&";\+"BMXDfJC<2II1eA@F%8mV:i$)4;";Q#f\W^dd]5qCK^T^%\?9b:NO8[,dJ=VK:g*?))HY=iurJ_+ZC/0"B!Uf<[-Ckbi(6pK6G.[qP<lOff_R*t+geXDeJ%R+g+Nh1i.i0)Jk.,]8W:Xs'D&;:J=efkjXEF\2/d$2$dKHQAQh5,DVQri]*33(k_\+s?5M'i**op*gRA-;0jO<bt>EHZY5\e;bOf%a=^o^"M&'(LpBZV3QH$j&7P8L1FK^j2d&,PFI`f<4W><d/n*rP\`ej*ZqFO_6#YJR6LBl3Fu\SSguY0o1=^6Gg3k#?\h5AdMu3"l%i?9Q/B-X96\jNdI4`/gNKB_RU$N]'jT@"JJlDIf4R0kZA[U,MT6fFN>(jK]/9GftKO]Wfq>(:W\*6@U?9j8K30`e?[h/et,^J\3b%%Toli"imoJ><I1fVT:]+0q^Zq-YP!?.5:rR>CU`]$l?*uqkpEZ-"a#mGjk.MSo3YpRAGls$%<N-'5a*j!TDc3P/X!m@Nm.mXDAAP%jpI9f#cefFf8nZ5UL_kbX3E=Dnn9Ok5%?'T:fF'=\#H>h$`a=C]O*/s6)I3Rl"WRD*'c(&%B6;=DU]J<r<<Z(T?m)nX5C,[oq-H0%?Ot$*J%<;igWfQEmJ59C#6uNoA_m@EfjB2_^M$&cqY%Nc^,j"WYBfhsqWmE2T)IVTJ,\R`f5Jsmf,*VJ\*)@E-T<.9qSUpcYPrrq%EE3![:o\YZrr)`KZZj/krQf,+G^a^TZ<#uWa7G3J2eQ4]GI..`T<<'e^VTs+If0!Mrq;WRh="EpppRj'lA'A9%jr1^WQ<,:'!QRG%Jb%KT=HBSbq7l*.rpN@U\Q0+'rlb,,gE5VEcc*?!%6pGTs7#(9Hm>HBK=Bk9T3aasq"_sof6XkWkATM;!G*=b%G0M;hm:edU[.YU%DbAiGY,<WFd$2#L$2sJ\r:\roRmr,3kCPU.bKb;.roX+P(M?gIB<rUFccl'8]_N/n1#%;LZZkjk(9B>Ap[Ge;0fWfMnbpSAZWB(u%s6k@R[0<JR>4Di9PF6:7ebdP)T&-&d3*WW6g9M7GPcO+gDpN>tV[f5j7IRJ55L(pJ1hfp6akeaLFaZd1B/dH/J';a46]LQupMF1.%k>tS\YW\5Dd">,mDm/'US=]]Lk2b\IcVG?6A4\j(Tc'%/)sVnNo@_C1mIe_O$\jh*[MFn,07U]bGCI/7.=?sZTJA8!m6A6CHb9-#%D_UPfVS0gQV$<.<)ba&P@![0@;Y8:n^KdDGgRCl@@5?)S-$ILARbp!r(=V,Lg076tMeR)a4W01B_!J5K[&EEIC,NOL?o9NM__,%c%7qWph0#%;SjN[?NTCoL(GK^FUhp?])h:(cgMt^/>nIA\;o4n'4gG^e25+J619pTIpD<XPPWrI>7rnY3XPH1JC6/"fIFjZ`5g(c>,%Qej8Q+5]3#!I=Y;mCT^Z4(c[">1.=)W*!t%52u/3.h9UKiBC**hu.qGqUbI?rOkQsrrTPg5ieJB?X2Lda"KYP)f+gAp[M^D"-\X+%]\Ya-J22N@02?DFYHQg=Sm3iaTZni*]NOh;OE^/3hO^7/I=$:GBR!"C+5ot-nM%ZSpWqGmBD3:@iJCjgndi)Ws6Qhtn!@"&9C;Z[%Z`*3iHbT4RrJ4Xmhlb;/DSK=bd!lpggY''K!5IK6AVW+*qq9V+lO%"!Rd>0t]f5t?C\p<Pr,#Tdo=EjU$WcgogV&]XFt]:K:k+q>%^"_CfO&5KsEhg-P"K%JU3s'^Yc+'D4Ju[QqZ)VaBG&fc\YjB^SG&hYQqr?ekm=I4bgH3T%a0N@5[s%RJp..RFkHgX"cCjWL8.A_7%+Zua\s)Jk,j%4^%T480S?u$cVo2X[GpQF*S36Bae8WL!X090qqcMi1iVIP\)h_?,MP5rbh_tiNKS!,eomh^qYP^@Yui<^>c]=U;?%3PROVE0In42VXk-Dgq]UqVq@,H2V9#2#mM4oXNZ&'8U4'&=Kf\LA'BKVp:uQh1iY9G6Dja'&I&WUk:fmo&83ddtoGY1A/,"lWKk\%D>i$AhhJ8hHIN!*FN:,ck>@cH..2KtpQo+LgC"eMjb%"LLsW5SKqRd&6=YL0hh(5[l/pa)[3sf%q+J9Y+&B&Bc7Zgo]/VlXA1MR^%n_h[gqtu0(]plG*`1rk90@&JRHuX1QG'S7Rqra08GNc!84=RJ&^GOY^b@8;6hpqlsXlOu4NF2ABf@`(AD[R70.JN>l2"*]^rj1^-%Eje-ZDKQ@2IXf(IiG[aO[A;upFd7G@Ds_EAbb&gkenS1m,!ist=2VJJU:8>8/oT&h/f(-J/fnFX:G.)Vq)ENDNE4Qraj%+;70Oe4%oUg'@pQ5DcJNJdID4qp7p3M;LGl8IZTC;\:$TLt]ck^M5Df;d3(T_$roa!b!X8-&bjRi*Cjnh,WNgk4!AKO*(C]<s>=s`))$eBd8%@H6>XhR8n01i;EFp#aNpmJ2M`/ZL*=+X#t5lsr<RiUl3joZu+sYjG0,7oJMGY0J\e/<DN<_V\A)W84j-:7hLp@R1sAes89dHPj[B%#4Y-[rmksM:B1U(TFG,;ofU4k?OQ(ip-=Es&E:kbp?`#Mm.+".Y9[sF&E<<g!$N,b@;F3#4V2'5KQtRhGmZfm-0ot`%u_Cu_ik-g%S3?rr`.Bo6JImmno@pk!:S.Uu@R1sA<i^Oo+N.=<6L52BA'$!$]Ep^KW9kd[f+JeI^>D/)^OK#TKH9:M03<]pqY9J7VEOt.lPIWO%nG73P<HdQDGp5Yd$f$'_:1a!c-e$^d:j6hS@D>+qmKPO5Gl%qb^Hq8N#5.Pa#keVT0(2S35_1tK=h*@\p=iMqHePMr41m^>!VL0A%4mf_Vme5.:F1ctSqq#]LKmhPFr<c]=6K2p(L!7#P^I!Ce/*(X3s$"'igVq:Tf/jt)orqRP*]boZXo(<&NU$<5,riB2kUp^_2eSK/%PMsH,WeuR$%^#BT7]j$Ns0#Jbhlk5ljlb7W&$+NAAF;VpLL/>\/`sBa>(dH.]CVU'@N3rBhYdk1&@66LF_hU"gm7Q42eR'TYGO+D%[\qBrB.(/AQL"cLdB2T@fG;0^8YdF)IS#FLXbUXEC;nb-3I=DJqj-pGqiRui.pfY4[WQ(@Q%[tCIK'GuW_[g0No'ATQ?;Cr(DHDh%K!kO*@k?a=W>]!Q,L(SII[[kBBh,sUqf]?SS*GS+Qs(g'!9cqOqL[6ZKii)jDBF/l498?hPFM0u+"trX(MH=R]eaMLh!Xp+Q2@M\%72=J4=FQ8Lb8mHtgYZ-$D_1WAQ4H21iQflMYF!M\r@R.1Q?%IJfko1:QL\a1f'dN+pU?C!laPU*;Ehg+ZbN?lVIdHqQ[<YrhnFNR%JDl"DQh8^\D!e6oVn%-JroS(FZ+aL7j#eg)Ksq1I@`R)%`Ep5]0Xiq]fYU,*r*MEOUV[PuR#bkr(Y?FG[cl`KLECHXh[`J5]5t\`%lfIm/UqJkS;^U_[5MVd"?%$"=fs@l?0m!?3p"(;2Y:n1=^V2^ToC_e$ajm2nJ+%#raLuT&ZTC?&5LZ?$Hgbe)4.GrhVBs7HmQ$bY%R_O51q=!pupU=)3PM4P1"Wr+YL&"c>?'P@kk3-K95+7hu`AnhihnTHp=9+0oA4V-dLVsZsleQ`m]_hNkZtKS$:BF)#+H;nuGI`RF%q8=NAYtrRUZ_0J:lS&;:F4#U.1JYh$O.ZVNH1L[CMnST=Z$dGTW?C(%4#50:Z1hPjI2ANfqKq,=hKQ7!?0ltUHf)e#q(=;f0_'AF%5'l[Dq%@iFQ49`4oY!ALd+A.S@J6:gI7XA9fD$tQj=c<ZhU[ed`Q57Mh33"A*<1kWfImMFhq!&M"d<S'j7+eJDuY!$53[%CTegL,%MSD;efacKSgeTrdT4a4p-#N$H[\oF:bbJuM/+^-oZJE&&?9TV.PVS.Hn44XN&sP0/rcn"rqNlU7N6*u[n]C.C2R<p0hO9(DSul]K%(qaF$C26nhI+l%g;`eBFL\^[Sm*ot2^,rr\flD0-B%b22oh0YJE6K\U`%mC^N;ndQo%VO)J&N+L;G-_mN5M!nS_/K:f\8\rB*TGj%s1?rU\6p9Up]q,OU:N#)#Tc>Vcq_j;rKm+79CQIsm,?],(UW/AZUNND>40420mEcnbd)Rk^c'n0:W!hWp7?dddR&04'9MpZJ8JKD%$\i0[$.th:EUO4dNcE]u!kpo'p7?e1Y_-ghQ67aP<mZk06#U[::2`o\rc3G$!0^/Rc1Qe'qghslqDjZ_%pepTs2*?&H4/H2[C_&P%S>RD'roDngX.-Hqp\sOEFFhTG<rCo>E:^lfX7qs1/W9YH'"Wh+m";e/lMB8io@q_CIqS'oJ7AO<^KAp[;;kg7ZhN6(h/2VC\5Uo9%4N%-bon$]Fq@P3lgIrea[dCO_f9ZkG!LA%bNU8/lTe&2IpIlu^-Buj2Q9>o((\*mjj8I6smk;gUhEA@$cBCFC0r;>/Pl32_,OE+!%>qPGf]8@e9;"JPC&?.%-+^3<K?,.!\8*T?=GgIK#OmP<qrI2;J;j;IDIh(kuI4qrg<):f)4--)fHZJT<ak^/p:X!9O[!D%UVS16]%\!\;Pk'NS3D_p4eAt%?7p,:B[fh>0HFnAY7VYQ&8*Aa/H)mhPmp.!NfB\FD"H_]h^(ek6]GKm!RFl-6;aZfgDBh97e_/T7slg$Jo%gmfqJ*VWU`N`f(PKY7:u`2kVMP2=b92K'W',OW$X/oBp#hK/.&e])]Z=1J*jfU@6kMuaFu3*hc\FR,k(Z=[q?b^Xt:FEbkPq]F^&%S=KTNonl/h5G+I;hgYKa-#VF\[iZE_H)G,4[R=Ff_ff^Ir$l07XnDTD>U\@,EBM3Mq]-<o*Ui\3p0774DTbe_gW%1[oS?_dSepR8%gt&kq&%d)\roWUil.NPD-]9gA;<`j[nBRL<1h+MW=."5XJW6r6^_Shck5W:A)AR_j`r,DfOr2IP:.9SMQO_KOBtaEs3IJ6*?\H%S%>(27[@DY4;r"l=7m[cM->(3q<X='9lIJs52jt8mL2kSag?D!*I?9Cn7s8DQ^e_,A*Bm=*jYrqm6plmV$]u%'V=P>f`b8\_:C+N-`%Y^4'3j*U`?n*p9-3.)NQ:g^H$IsR%W^">of]mJ1ZhOhBdD0t/'6Ih\6SoENjr+W0%3s'^i-dNK:9NuZ:-n7"6CZ#(Hm,[=,p;b@_%-1pp.Zg@56o!Y-$pJXi]kLh(t8R$P+/a3+L4j"PAh#1*Y5KY&;.,,aql95U-G)X<T3)FdkpV0r:G%g*3%R\@%aE'F9'<so[oFkc6%ga=&0]rg.tXo-lR\ND=ERZ@L,l:q$pqq'Ee_0VsQJ%aa>A@@'agO^^rjW;(.Ik6Yp])u1,.;-o#),M.$2h/PW+`68^IhJd)dgB%-%'*i@&!r5/8JqrJPg0k2:^HTJ1`.N@4A06E<"VYU.Dip?d:g:O^J^53giu_'KiH5[\HMf(<Y8O_]lf&5H/_:ANaR3'^rQ0'*(%SQ;%B/d$>D]ZrQYUs@1Hh.,eESP<LSQX4L[]u7X/bEe;$9oU1cMOZk^[KOPn-!@O@9fe^;k6R2gs;f%SP/hDDG*K\"]7OK![:59EH?0n%md1'2o^/'qpP&0VXlJ>G]$j\qJ2ANY8-dps%t8TV"%5sK^UX&5>86g:=F4<0kJH>/M3$OEj2g\\s%09C0<a6^bTe8$+F3pPl`7dc%=!24o!Jul_IQ5)Ws7#A.5P$u+:Z$W6r;QQPfiRmll>Ib_:+jlMXT!ZhIeE[40>E"6<mSt(s8(j1qsltZqWkHgkO>[9jZi`Gq;qVl%d4[#ZqXa"Pq`eig#0QuEfg/Lg*U7%M.TmJrST/@dM.1UpF%!8r[,1T.2^m748nhYNg)gN7'8neUo$+M9mn7;Cp!5/PQoD&fDGK&Y%(KG%CmI.;hcBen&#*X'!_mAp"jF)<#rL'E]H?Cq>U:`Mq8o+3$3_[BBe\<`/BmZ5,1Fr:SHSDtIdL<TW-G.03P@#?$54aQPVc$gr%\a55EQd=0TauW&)Wk\0IFoK`L$bZ]Y;]2/`LT14-XlSZ`F3^fl&%Y-)9nWb<1t%dZmk$^?%^T1?)YpfMp<cajVpqDYk/F)(^7s#9%C30#?ZWmcEV:B!peua&i>dSd!:qFH.iSh&gV7Ytr+_LnP*tF8bANY)d@hEk`_,<.h\k*c/1I/_=dVm^j1AK/YO;<9V7Uj2dV,rUN%#s-6LC/a9@dB]4P;TO.Ic;Mfsob!.D4+JYrf)V806Q$-0N&SobYcMNAHtfNCN%((c1,X["(`G]:pd$!<;Xg?'=o&&LnM"XIB\CFj%2*I@lYn#?u;9nhb>FmDGAf;e-A,Zn#k'+#dQ[dQNn*p@R*D0JJ]&T.WNMW+m!Zpr!#7h&q?N%D?W2_0lbPg_#0/J[g!*p6nmp3(q%oUFtR(.Z6,%DHXshb:]jrp[)gqp4hO?@DMDe\D(s%_84dP7GpL"mu-M?Dh49'pUm7V_T)\><2etf@8pUcin4q%#?P-Iba_hk>\na%j(BQ24<m0`=iu'069O^)8<]'\YJ.e^%Ed[fhD[+'C;j);P\LZ5D0gK+60->#+dlNbZ`mCOY1A@W\l'>j!Ap.o;*!-Xo.0&Bjf#f6%OW%<]4tOH_IQWoZ->*tVE^k%?k7k*o%0PK,K%"Am0DVn)D-W(djN<raDia3kqRWd,T`ZKu@1c^DHa&G[GF$]d&;I%e:ZVa<LJDb<%^H!p,[TOZhqLU3J[e=l@SqXo.D/C%KqXZBD1ul`@@T-Nkk@WBaUJ&9D39;<&7JWX;c-aU?BqmMGT_>NM"NP(0q<'P:M-iDqF8c'j%lM0H"iqs&Pi2hrVhS8r-ooJG)@d_'I.kgbNhk'dAQ0qSI"j4Q<mb#5^c5ud_p4[s5?MPE2=H3<"U]2f>YPiNAp.b@rS8.09AU_?E%gM$r65t>""MdlY?Nm,)l]cQfgXS6M3lIhZYIlegRY2?oFb5,m9>[;5+MXofPZbVROWu')i'5]XpS=G5lY2)1[Hd,u"3L(=IqrX5-%YM[Gchc;DA1<J+Vp2Xh7=-V-?Gk:=PM#Pc#PO.<K[@2?jZ@2YiqHgm=oD<CaD*;^gT'J!MUZ3Arr$h+N;V&FQ`GUj8IBdY#nR\[A%fASED`BhIH2Fobeh[r34S^q4ET!sfeQ>>1?koB6!Kp?8Z4ad*B6gShFX0j*ZYp[t7I>FUH23A?dVA*_H#sOfCFA$S[JbTrNC:t"u%JJYg#7@YB:$n`k[AYG.6h/]l=MuhJ%r("coY+2;tZ[o>sE[Ej$6rW0qZ.MRc,brgcqm*\0%89p#b4%u;_J1n[A\0L^q7<ePQHF)n%$t6nN@D0:q(9<$m':L[^Hs@bHdTtEL4WZt(Xg`a:*pqDE;%DSO$Mp5NFi1Un%RT@U@rNu/:s9CbQi0@qVC30u.eUj?oMbMSkP@Uq%VsCB.@pZ1%p6G0q(U`sJ]1YA<gjNFYR@>PtnUL7>*n`4=m<=&-rU#Xn5G.n,SO3"OHLd?9HOYbJ_sF7%rTaDkk.f*N.MI:(LVKIP%>cbYcEF,`XgU!Ba?bN-[.a\1[TDoCX/?d@U]kdVM@=e",T3qP9EE<,5p$+%t^MSG,N3^1XUW!B-GC<F*/SXdN\c:'f8R3\U=*el^%>e`t]mn[$#n9B9QqSgSDam21)Gl?fhT@\r_s&4CFo&")Xn"G?n#H6_=XOGO6!+hEu7MZN\(b_=/:*i$ZCb[,3h4&,mE+t*=gfT?a%Gfcc+n&XKQQo+W^eoj;:5PtT6.@`_<S^Lh^4W(q2XAa5oq4_!R;LnphB-h'b:R5Qj9#2^URbW,+YUr@qKeqX0*6*$m\V2+OY?b"R%>WEp77dDo(B^(\1-Q4nDfR)iS.G@#a^%?BNbU4kKO6S9NRa1-->Llg_mL7"Q<(cZ14+2;`4:RJ2[Wt,U\FOk9_bCVQB-&UOZ?2qb%HL/LQ4I4*Ef'.:C'CVVbEpHa_3QFJ^(jX0mI?l^7j9uG?]&]_1*H^JmBmFY"_Iq7,kfguOY&$)6O8X?8$<_<T*h`*:oZ2k<'PSa"%5/^6g6/p:=nO<A%7AroG^1.VlJi?5Bh!1`"-bSd?oep.LG^d?".dWLs-'jFgLfJA@Gd]F^6pLD=NET+1O`dW2.W6"qA.(6"_'asZ%8tr]!pC+):f)9E%(H4N<&6lX+^B:2'CS!`ZD.LE?'cb/O:CDhih5:ECe6g6[/JN!o<5giHJ9IjtiTLHaL08_:_I9q4fE@m+)fE3K%=Bp*.XOFG\Ds5-j1"^UCi'_C9AoK\Hb^i]\"'U_%Xc/3_a?EH/F>54kPMl)dGd\(\]4PA-T"]A.2-rRKbYZ?(Kf2R#".=eGA*KB3%T'&!#al]6jV<Z#>Hk&6,ZEITJb3J3PfGrZ]\"538(ALcG7Q2,.HJY:gV2ju[T4a/3b(3VF]/%`84Vsf5qYn-&NG/@[e>YX:?E8oa%h9V^;8'UM3H+3H3GFWL++W*@ch3I)4U30rnhl,f+#[q_3=i='m7dn=.6N3\+o7Jt1^Ld>qF,%)#B$JBIG&cQ'.q6)(=S(@r"jWR'%D\.pkJoh)Onf;a`2*OJ@iiUY]+5)Op*hl`2G>8Ib0.:H:msQY^Ts9Hc"n"M)HCuZETi>uU60(1#V;_6kqcl,s)Bl`a4LiXrT<4"\%+!3B_`aIIiQkJeX74=6)f_kkQ^rE[FW^-7*.QLNFUK=Mt6q]BcP9?oPf*,G&.Y&C3H_k8R<S8Y_Y3'J;R)V*@[0r_l5p53PKI69u%MKTjq?GLIC:Y``m^-'\P3k[Qamc[*H0:dFW?G%36bP\79H!bkVrUp0&<2R^CCTS#dh6+/k9A\Qu=3TWJQP2*<fmCb0D(M1$hOf#"%Z:U%(HJZPF63(sCW.m>lpO]W[QjgSpR6BGD?5JpPXLT.3Zc`C)m$n!d-TqQU@.T8%DSTg]IhjUW0$Xsl0BGj3CqLh(Pj.B5CgJ_)%PQS2iloZ*egm;_?pQVYX_)af/(-o&TL7\<Jp-gh([4\@Tfe_]Um\?5XIFJu#eu1\<G=pfWOe39t=qdWt!<ghRdRmRj>P:HG(o(.-%D?o'bbR&.71ut\o/gCYE'J"'t':?&gQjm2^mSlZ3X=j:2MT+j1F!>)f`g&!<G3*B*_;OS++dk)I1cU9;orGn":j,n"?2qI[%jL4X%r].c!ie_GYR..@,p%7@qeu8'QA\hQHn+?9ic(N(Y)H8D[4npVOaglXmMih5`'`;LEFN27dZH6;TeL/V&GsKgn]e:-9Xo"JIKF5"X%^m:<#JBsMk0`^-)G<BT0OhH<.Pb1!n^8SZI<4HV9gp*f+b(XCX;\,.,"kp1`KCO6Pe"!]arIMteN(L;Mj:@a;GVhWm;jF)Z7s4u\%;s[EO@_jKkL(=^tY68R4FD3+Tb7]'T">L-nLd8"OB*Y?*(*K*l/lC<_=GICef8/daK<$;E!J&W.400V_lN#l^b0jfM^BNN1gUR,$%31^A&+$$fffr<eX,E"*H9!8="H2NC5JAhP;?uj3kU=EmsBiZ;EJZ-W?@;_Z,Z"YaLqEE!I/0@Y$6U&t/7cu&#"2XR@DF%d*_1]he%64h67F@*CoR"s6rfcm`&AV1=PhO0A(NCeXfd!X$#H9A?q/I&?aX7_<eD.kVlYV2*jV4fI7Q*7VY!=<NH2Y]VPg"A9;NDZsf47N:\%cc]Hgk"RG.":XOs1M]q1d\*3r)c&CO)"YY``(a+4:#^2,#++U)O9tA[J>"NRZJQtsf9T8oP'o*.#\;&BhH&_7Y)CaY7CDO.JQ&-B%!F5pQNkUf:Yhu0O*4-Z+i0-n"@iLq`DNBk=dIVC;]o(-Qcq!f[0)@p#*ZK,,TF9NWiqUk=:'^SsC)tbSo!)9D!NWP-eIICj.Q_$\%euCh%NF*!KghbF;cFpY-\nko)n0phrj.6K-V*-J$T4uWPrk"k"b&?D1%@k^U&Z7AQ%Jt(R_J4b/3WKDi#JALcVj$`)plML0[%0Fo%@";F8TshQ/eFHE<)83?"#"5/ER?-tEOB:_apGYQU_)-HWGUl_$DE<[QI^En<Y3.Ao*&fH*BVWHf%#@4]_pL_j"KY`=)R*I\^c]/I%2b3D*eX+K6qJq<:)?_$`/&#:2#=P6/;[^4J^cH$k%qW@s::-)@@SQGWU8\_,p+V,m/q$iVPu!X?EYscqp:%>N6`>'[FUhkZRUF$H%c@H1sUJ5Mj\?fm^!DUmL.<r"Gk$UFBWY6=+!2+ViEi?&_3`0s\K<kt96@`ITlEU`f$T),7UC^M5]H@7;'?/i!.OmTHPEqtN<OB"U%'u@\>;m$?Q#5d>96fcPo\J_LAU(<WJ.<I+>8C<"i,\b=t(>Oj*>>33<.J1`KJF:Kk)sjUF?bLc^m)rjW4Z@)&nGSZ$aH(Pjr+bD8%eAgA,>V:YMQ_1a#FQ*5EA\9S,_mp2fr*:BJh"KU8%*iFt#oH*!8=aC<pm\"=@fUO*B+F-;_]"qQ3qi2&fZq4q^O">iAF9GgJ]GmL%-4N]t(Wlc5:6KY7P*70OhIQ[%JKY'P,V]=07j1&7Teh5WE<uU04DG>L&%kibLGhOfIOALr8dbg/LC!@&?Y(@Z#La-5U]IiSrkea<%b6&bn@%AH]bW3<e#5FMdI:MP6:"C0R#s+K@[FI7HL_4bRKm=O"j%k]`LKc`$b2F!7i"lgS`QMo7Z6t9X"/<]dk^/;nb:^0Ycl%)m%2N7-2pu072@<Cc!8?gPGTp>B*!IQ@H,ck<so44+2U"\.2(`_-[,.87Da#(1-'FcX/-Z3T2G]"rN&U3MtiKGT9QXd(pluMGGs7FG+%V3.\$P8-t()Xmh<aA\o\E"=/f=Qq:56h]0RY:OV_U3ehjkflmc-6dT29!J\3"Z>CLo%<,@9Cnn,A+-YpjnKB\W3tX(/"OWrC%OH5%5qYcW=g99#'NA$LBJ$r7Z,cs39gDGBHa?:^1:mS/6VaEZ:&g+^D1,BB>;&RW+WJ;7Nsia9[ZLcdYD'2?ZFgD1E&5]_:GRa.(9b&c%[B):GSdlLbl>k[!AV2t12,>b/UD6S+XYRFC`9C5eYq-r*']Jr::W_00pW7?$a_/@kV4cNMQhigd#)T#R$fPQIS^TU#f%8%%aDO&n%<b&c[QGG_u0`t0r"us&,6H*:LM*Au-ju\mR.6oQ-e`f3+I%,Cq#Ft08LV],>D-[934Cq&ei4$!Ib0gSVY,rmDdIdPKP8+=?Dn<]%%en3qb+4d\C[!79NB."`KN)iOReKph]RBXfE[28=%nEI+><rr0W<DMuWaP3'DfNE^:S$$F1VNlm12F\WBHU)'j$KEm`mK72f%;*(C%Fbc7-7DU,)X0ZAk9gX$TX%<P$VkOoS[T:pbPc5Qr`(kID"m):kd(PRS>RgBN?ODnG\1mV9>M\Y_igV"^#eR9BN.)@ZFV,E*$B6#n%H1UjJ"^<gr'G]L[Brbg_;'F'LmKEo56KJ(lQ4:+e2atIr&88)!Xq*hN9eoS;=M.Ip%1>!ufl*[f43X-'86`P&AAeR3`)3mJD!Mue%VHian.[3d5\rT"J&eF9=]6tMGE6L6^<9#m,pk-)h4>\#\b"i@'D?8gCe(U9g7A3mGW'Mj"IKR"7]EJSd80Et`_nMB.H=HrF+Ls'h%8VFr'/('E`XT@(Ga2CMfN.S*A3V"_;5(PB;"TVAZ0rsCKTI;Q]$j&\HPZFXOrKujY(0(KhL7CrgUoUhgAu,ObKZ"[njc#?<'H>KK%o<,$Jgf?D!<?S+c2pgQq($O!e\W,BDC[\:054JWM2-,Cm*p=85.t.?d8/qHk7=%u1e%UW.aZb3^k7hSaaH(@(r+bu2#C<\f_Ysf(%EYg&2HKP12afngD5AK-ik`1^uU:b[lKDX;[h8]Q)4Q)G\.D[iDUF\/TQ'3odSmE,*CG,%]SAg?fT/POgm6/#_QjcGj3Sj#IN$6-?%KDGsrIqCsli3%d=]`5QjB$fgc/,@kF0P.Mc6890R3Q$nQT1*]('fB<H0)HgnPAMk?[/B8RkTfW,i;%n-14!i\k$=!Aq)Ru<;.TAI%\k,+iej^0D4$c,p.a@GmCrLKMqC_QCEL,6"K?l(.JL.$1?5`G:Q[*ZcZ8<8:$Ogg<%M5\:9=`JN&M1fUF0TP_%KURGXs'6-Ic=7r%#V;3Zpb)IeHL_h6=$DgX,0eb*[iR-%Bn0LA7ol4']UOI[/&kQG5qVs&A#^`'*3"<j4Ji,.aiH!$N@l500rDqde*LBI67a%t+,[A%%d?9pm,$Z\/bU-3H#?*?tMXCm,(/Vl[%i/Bl-MGMKM!=dFe*)]NK1h2V5rH-q)e3^'-'r=(5XOF'DpcUfD31^E8<*tPQk.AQN;R,U%$]jEXDQ4>mn694K6';2<3,^q\BRGD99*V6rV@)nqY7bPA"kt/XOE)-"98Zj`+?nL-r`)E'=_+,^R2&n!X>9_1UeSfc8'<"jE@*cf%"LRAb<-l?Eg0cM%$\ffei;=52:hCW)'B<X(f/(d>"te/&#`rY3'5=ME@\(2h<)Vg)6C,Te&(+$VKnb?=%p3D/7F7Wq`t@[.quD>K%YioU%?rP$?_`S%ai#8[X.Itk-+Mo`EhE2ZtAt]c,3L(a2U17mCO9YpO7QJ@BA((Ob5SPBugpko2KT8VjA;f*HbgqC-l^jO`%3a:\%kF`r4aU!XI7s7@gojSN&QLll0m5e1]5sD/O7<&S8!ZK+j#g3>h@*JscObGin>r;qeQ0\K%=53kRL/E)&R_fOgYc\n,H?!G>'mU6+%5CfIQ)o/tW$L]O6;Rfj[W]r$B9s1JD4b+fRT#/$'HYaBuFr;dIL,o*T*,hl97YXXk9^[e_nN5k&9A8qJ,)\-nk[)AIAV\7e&:Up%%DI+1YU=eJqk`mSdj&%eYcX0-<@M_2La^uB3*'7Ar^ti0]i:jl3q*>ak_2k,/WElS9^mHD7(l)B4Cme'^7rkMnA%TLTB?0G<RLXSJ%EF&HK\=X`9NqV8s^`9?db?.2a1OETl`6Bdbcqp-Fg8uR:CI^N#JC8P`%SC1p5ZU8>4l$dKedmUp<nYCpaZ4T);],+iWj_6F_5Km3%2)mb\Skf0/$FP>qH@&bSG>3jfV/q_V/7h3]ONT]r2B`:\6>R'4\[#YS,TBc%),VNa6XP."7WHOd9SRlS#"'5:&i2$MPXY"T*&0rH%]/bhjXS8MYLMj7Rcp#p]9Gb4_b#E36!;p-4&Sj[SQPM!7p]fD2!cN]F88*gc8mpAh7b39T)HYE0)\'h3A\#I3KEK5SodL7T4RrS`%XZCE5nrfHO)GMhD@CTLY.$i.FORCgZ5eWq\F."DB@RT_T.6(_11[?nHo+Sa%kCt:j!Fkm#i%&!(``qL,1JTbK?OuQ-Z&.Q?0)\Kf%6;T6B$LCN?@p,R(PUm:MK;kPafti4)fUi;=N(?-YnZo)Sp>rQ-@De4Uq80dh):\H2qCR&Y+6f<jec'+Hr*@BOcqNlg\gSKlrVaj`%qR["k'L2um,g99;+8p'PPO0&(=_8NmhE";cGF^JoI#4?fB%Mij<TiU;_:j;,UpK<'/7LWQ'[\Z?K[99Q,Go/4`[:57:^F];GbB\0%\nLbKilPY#0t._6je047(lYSM7>(m0Z;34g3?ga#hHWE[SF49UEKh+.=k8m1/3Nu/%iiP?9fs6*j\m[];LGjUS[pW^PnpSn4Lrb(%i/f%!<lDXfdm>!@*2A&(bP.A>b8pg<XO>Y49TLeH>TGVmg?AH>KKt"!Z*eer+$B>NU>H_lEp1%+;c!,=4?/6T6B?b['._\-?^:R%%/lhYQ8$"Ib9i!XR$r$AJ`rSE2A__:Y#80_/=C+.ub5d(2$$;8WgRgO#*X6a<?DHJ"4n1[?^l2Fu3X4==0bphF=C1(]C;\H3nV,$(%*2>G-85fY?V#eA,7mf$5^Ih)&\V'Vr#DC^Q0%.['E^Ko3J2*/<onAbYR^p6_2Asna)u!Z];6>$l7b4^MS^s:I_9$E,^J1jaVIQAJ%:i7(g#=ogi?t(lO1c=h$#QUpXH'ZAq1?Dkp*/]=7-$C?a9S'Cc<Me\_E7$6eLl:N+"u$6O-NdKX?6&c>aptQVkKkZGJB([U=uIYk%0;O@7ThiRZ)P`<!iEKRu">QJZY!#Rbj4:,3EQ>3U[Gm4eT%]&`DS<UrGMN%EgSH\#MLd<?-lrK\/!h]?0_j3"]fD!GAJS.]/;P/s%#=;/F;C2fB@W0O9H9n+-NE`iZgu,so&7)URb2um-?Es+-BYZ?=.s@JMfAJu5QK$!A/?iOs=#*?6%7@74/Gd@ara]AS.0&L=?QHnc%8*Zq!q==;_Pn)\Ce8S#<+S@9n.@<&fC^i*OjRdjSD.W50`X&.aKfK0l71Fhc,5m*@dG<1.Ts"0G:2MLnCg>jTbC@dPn(%4t*oGXO%rC[!l\8<bPZ:2cj`l3l"38BN4B5l<Oe_*?"N`\Q]'KQ(f)!"LcG.#`"e`@+;<heWP4HqfbU7=eY!\l"c,K+\l+@p(r$tSB@``WG[%)EFe>=NeG;m$cs\m.DBD3#W=tQu^)eKT4l7[HX:6l]1>_4l/037pbe_fDOB%_DSMWFh]!G8.IsZ0cHh@Qb#M0Yi5E!(Zfhu\\^#X%%N2@3_])J1FF+L3'nj\3<1U<4&Gk!t[Q)p^*J_XG-EG2aoIQU><A@W?+U#Msi(?0gJVQ1kl^'%tF;#^-81d0S>>C'10O=D&ReAX<%3&rg#/LU'(K0rtB0@@bf@]-!U0_6uAQ!k<c@Yb/u\P.NdZZ9pm8-<)A31bW6?F"<:5o[l9U5U5?M`(8`Lngq+/r@VP.*XXcn0];^%ahKqng:i/,A?VTZQTi1T3UbqES+,AA4X,?_ZT#[Bq]4H*AZ=Jl*``A%`H#UpLMR:G+4ZH,k)PMbkbe_?ITt*([g!lXj:^_WXYMcX%R/f)@0!?d#=;n=0"27KKEbtq@rAX\!:O7N-*Va&5QcAUF^e_2Kl7Z_DJbq>Q-CZH:%JXAA#u)rGZ2'cA!*Y:^cQ5eXA33N$<slu/%s'57\64Xn(.YB4o^[rQV5h`Eo=t"`n,cusCDVuTMO-LB/9cnc!d=N,8)GR3L-_f.&7.8,*DoZ\@qG'XmRu=r`Gk,k^fTcU]/F[k7%5Vm!dZEdjlClG09!mrlm]#Bb]#T\`/krf=!/rp,#1>-^/jt1nV=TLegOA.A)+usp]+"Z6bmLI<S5n(7rC)S9!'ZhX``&?EX+Pr94%oij>W(uu'n(0n:$*nSiPVW`IH@)NAGU8J2R&^8+XTh:ga/XQg0YD--2IObNqitR+aUPV<US1RtR)2Ok['9`L/^p#m-6fL;ID#1Fs%i\G)N&U4GW`g?@Qg)@lmD;=p<q2JgoU$o\n"+$+3n?l9)Y0Ba)*ftWF8cm<`j.ZV;+iC8\TpQP:$Lm^*H2]esqNbI03g1Yn_@NCR%do[74qo#Q_0S><1Y8db>3/3=eMF@!U+i%L;8q[E]SVBF5baIZWA]hl=FO`9h5[0t-q$Tb#A;<q@CJ8Tn'K2]/>0>\1k,Afq`6d0b%K:0Y=)2NEl_Do!^;3Jj0WA3'`JN3Q;>"EW)F9=;6L[c!#g;1"qR,V4sj.p`AKT`Rq!EX]%5A%1KE@?adRK37;0s1h6E[G\^T>Nnq%=G.1K0gV2FeI3E1k\_ee"mU-mIEEf>'r[e%8GU.q$PWa[*$Aq;6imAS(5![HK,oMu<t"LJB[ep_o)mHuN7O*r=SFPrkn'A8Kf*#r%7@5ZPOAel*]fGth#+05C;%:19rq<QpU)1R$+Um>SZGHXZWu;Cj7&MSl,tE?jcU3[E+3CU$Lm]9+MrOCcE'9O;@6Q(Ob,L19c^<<%%`?A9`1\lB*;+QGSG3;2QM6KY4Ka+\;+[ZFY:j/X:)L#N=Ht=B<MU_\X%"j2R$.p*iO2uY>8cXFJHba1Pp,<p"ZZ2&8,iE1c(dOYn%V`Y%u/ft,3n)YerQ?.'lYciOt!dm$/](G9M[P&f_H$X13^+-aFg/Y&\dG=qk0O3#Ym[6*@K772cY<bLAH/cW5?h@X63hB.RecF0h%qQBWFL)Te/E5TA-YLXBE\0iVL[Uo23!SZfI/ok(3$GD"p$0Ee.T_F8jMjPG^%Yp`nnCi#87f+`GZc8pO_ONMpfX5KY?MIQ=a=ItU%9&`t(T[b8TCDGHj:uZaI\)Wk<R:NR?Jr97kfE?K;KW(f5q8sFQqhgCAD:(c\Yr,i1]g4II.dB;h$_C?1fGa/i.EuN+Dm!>6B-Wf'%i6.PQpc?8O]&G?_KRdkrj>$A/oar0KXJ,K>60nmU$UPO&*/KoG\;_q&#AO&ib<'<?.qGYbDaAKF#t,r<1Gm\10j&`P"VS\7=[S=H%;X@sioc/N.-csNOpc8ImOi5rs#-3k5W4_&QnbQ?_6?^Jk4=2Bkr3KcAR`X^.2kN"jTGtPn=otkcFE^^ud,)!G^aV7aNf>;lTK!+0%A]&#&'am&@pL.bP1L$./NgqRV)T^<`Z^#2.N_N:fDQ(p5buo!:ZbV;Vj/j"ASe1P$;iK2f,ktnPp%&U+?gt/3GZbO>=%,JQO>LqF%Bn,Kuk#XY!%=E6Nn!sKWEeiQ,h$%hjFLE!,mB2Kgd,sckBK<?k=Tlk"m\c/s1=$6:!,VDLNonR%qH\?r_q*s\fEc42k3s(Dp.hE[%c"Mf_F!s:5/@pbt0L9mpR=a.DLPhjMd9VDnYMOMMdc#=dpIVGB';+9uNfLWJ>m,7,+Ir#ND_embK3&Q1eNSN^gO31F?3CZCL*M;s%eK2$D*0`BP%GJqBUB35*lp>(3<g=iS&Kh"k^g2c"Iakn?o_(uhSHJ'ri'dn:J,/G5pa@tRrG:JE?TPn$=^&(K3%P595OJNPD&ZmT%Cb&>ldBsG%h"OqN7D6_=c0/!U;aUsM#I/lIN?5b-$5oRZK%#*^H8'CZHK14PRH9T$$Lt2?Q1*eXd[i+9j9jh/Vq(sdXjP6*;M.G(%2pR.B?3AM\>^*BpX3b'.p;_*#@LE1fd*89De\LG4)-:(%!5\s1kn,/VDi>E\.eqYi\6r:"Ft=DQ\q/XZoeM.n]@*BAEQ=+G9F.20%m.1mO^\63\*UX-#5-L!RF`D]`XObE^kHlZXI(9ej@*&cgLa;#2nKrKH!)u))m;0TCeXGj&Ca@PkFV7.PT''K"PVr?UX#G/47^<ER%\=KCt.HUhPB5km$+l\HYQ>*]1ZUR3d*_:hI*8M=3^VGcR"4t-jaYF#QEK0^(SFsso>[c3Cj11nc>7^D25$Dk_T].E1\ab%d8Dpin%H,qr-^a[S1*>Kg4*7K4ccs,oPFA-oA!53n-cjAgYN[,(](6P<eL+HF9NrLM0^T7[AV9Xg(96dp3WrdX-(4]HO.jttl27#rZ7UGOq%2<pJgFkB);(trd#C_63W`;n8>HRGBTg'`/iJ$L_2*LUrD'tZOLPo4+>Bh4nD4LW"K`>;gG1u'#n$lG_'IYBTSTbSVg7RJ3>cl9'f%$$c?!2^Dt7h2Tf'l:E@-Vl&e$]Wq.eX6goKL8@Z/]3=hWn_)n`^>pk92Vl3q$jTpApIL@VKY:D;-@e%4amFdK\aDf\k4KN!c;RR-%@V3b,bKgF9bX\-g+<%/`kofjTm2;#99b=`M2i!kt`H!Iq@,ipeflW/uNZ5Ni%BqO^)N1D&kK2T%cGPV5C]<YT1.''A?eTIkVb55k%P,1u._,ou62aY>+TM=(edK%V5X`a!ADoFWti<A6'mg=EUs%r@5h"^-5U@tf4jG`+gotZMa4S&GXZ/c55%6))57N7IB!^u#VAQQfk%-g5m#PDf9;4Ye2a-a5P`Ec,1c*<)A03brn)UZc`M:)?)P%.V^9Pd!9"gZ_Y/f8r^W5Ze0dVMQ4#k*%(E3i/6&!<u\"8r[k%QB)/0%97kH04I3m8FX_FN;5H5^%WD[bSOa1iW`!"bVPY];,RKl.`GOQ4@0CYrZ<?_R+AT0O(V@cMqn:1J:H\;V6uB6708jQP./T?.gDAiE%5/#l$^AFUbQV[*3qn(8a)Mk0$$Z3$EY<[?MA]s^)'2\5VnP/';f`g'n*:B9F=B8K"n"0PNX4K#.hL,4jo)%_\rpQVg+3q&lo$seI%ZBWXPIc%.Ommm-4#*]aY\-;m!*\'b*!*_e^M_-;Gfg!je04Hs>D)jD6`ufs7nj:3BLjaj<Y4&m%a3Dq6M'PGsG0'FhGlj)'$=A<T%ekq7a>0"r[C^^pV?kOEF\LcRj=c7B#HM%lnZ=R=#\=uqfLslOB,,<\%NF]rBZ5BZDKT7em97;p>'ZCdY96J%FZ'[#*NT(&T2[2t%%DLbb\;-=<I`YUn=LV^Df+Q*AS!&CM3jreN!P\LHK*cIhrclIgO*O's#gEPR:YfXZi;GIX:)B;>1@AcWu)eDGD.=/4F_*J*:e:1n0%b7%EP4!l5lDSV`SHi`*M;HZHQS?].)i0Yq0U2g:E%62T,)BLl`,_NF(j?P\Y(B@^^AOk`hYMcW.ASL4Y5o:>=A;2io'Np_Y84<k<%%+#lo2Q."6XL&O[4i8[UEX6u]#_?D2i-2D<1Im5\X<C4UKgf(YmUg@DO'L7Epq"FP1mPU&`p'-mJU\T9#8!&6XB/7k*>1,l[_eG_%fa'0gZd(,?<-]mN'IAaeU0(NtQUNO:,(t5pad!u9"rP?^0*kKT39#\a1JugnBok$3TF=!7$`n`uTj],G&?%.W]:sU#(7)r*q,<EK%OuQX8Jcf%&5gqu#Zlna\l!h42.`pqXXf#Pulu0*:%*fXp#DA.e_d\[Q*kiGI&;j;HIS-fJeDHD?"UZP59+`O\kX7/BAjI7N5%cIR%j3S-QS/haN\8Z-0#G2G3EBSg0FlRQ$ZGt<l/5'%_Of=5o4n+i*UC&uI+Fk55M>/gb%*$s4PYCr3.D8;eA+mJ,=GerQ@kece?+FY5%^oT=]`I893h:t.Z^,gf"g;\KqS9ROocVI?o?iL$#p&rOH=qWB,6qu&>"0oga7aOiJa=LT36]O;3Tdk:3'=<"81i+u/Is.-\`ChQp%UFoLA`$.s0qn57QK!,I&.hMY3b@U'^+21]!ksnm[d`rPGou$b4FdI8l7Y"m6jqaE-F:-<VeKW6hRW,!5@L/tj1M1_e#=Y/kh627@%B%hpR6jFmqg#AtAe=[$\[,B<Q(-#G%[^"%b3ds=FfU8Ok1D.kPB?B!5Dl6UpA1oi075Y6hSO9hJ`^5#+EYMHZ,=CO9CKU@"$%i^9%"=e*q51WjC`H'Xbq,2DBe.&"$`mHolL(&P"/#\9q?r9IS-#R<7]r6OUHIdE$ZhM-l6f46fIj14.&7]DMCpDStSRC[N:WDS?:/^]i%jH.3`*6MT(<Ql>@Z<WS7.0+ip'-1Z9\6rrBU;Z^*o"kSdfAR,cB=O]=$ASaD6`f:Q3+`C4\K%\^e9oqEKlpW4jr.W2;4(iEKI<E3%.e'l3c36]Z#8hL,@CabjGA^ghH3`TE7:"g"ECkd3l@:*j"ZPX<<eAI^^tfj#LpSWV*2QeZ$8QR*d37Iamb1LK/L3NY-lFA/%eZWO%^nNQP;]]BX2*+d'k]b0iC9o*8qh`TqZ<<?lW53`75T()24X(lFW6,PF<]q$<B-OkbkjSs;?P]0(6/"aE<QrAeC9eh.0iRdVE+>]^%.Oon!P,EoK,>)HBdKJ7B!(rh3AXfR&e6!6d@?_"WM.Nn'kY+;U/j-gLhoM,Te+"P'`Jiu!aM@-NU`WbaI0`N]>D/(Y/2M"'i]@gp%orU#_#:k9=<>&\lOW1/@8&YYHQaL6=F([p/U]b+nXV_9:K@GG\#R,;MhQ=@&luR"koL3<j`JVI%'M_uU+6tA^VBuX!BJuY6,BDZE%N`I.\,*p:RbatEI`J2p@XN3hOJhEe'T!*jL[cB':ZK3nSK-Sjb$?JCo%^'Jh\6uRnWE@;pkEnJgpPk2dSr&YrV0$DG<n+s"2_/s;%1:DhMcP#7AjRtLam;SWXM>+NeL@]J;bnLe/76('UP6-bq(lFS&eW+Gb=@jUF-j@T*)^IA5!Wu-&/I,s&l57kd:k&Xs+Hu>`1F9k+%,n3d8i(D+Jed#sP@V'!]=67LA9Z\OqP1?Le-B0PlUe48O3)3EK'R?1p"@2`N&NZZI5d_XLat]AZackfnPUU,uQ/e"NQ(i/PagX"6%5+alm$7#]D,MZ'T91L,k&fH,%V3>kfP3K(4OqOn,W-KnXD4pO('gG$Z4p.@mBrAK\,sR,-qu`?]O;fr0kpH4,aUecAOjS]E5]84]%#4?BuhWS[/:QX>Xo6i$L<MM.bCld[:%)ij+/mGo@@*Ujf7D+Kt,>'sKBQtqB!C@E^YD-dK')3hDD1[I8@=K?9ak0.CM-l-#J</AS%7+a?T&o]Vd\&s7E(^Y@p^g*P!@b;>kQIAlL1%$I\9egJj?>&ehHeo;hD2G3A\[ln!,O.g*jJs$"Y3EY)T&tE\E61GoJ8E5hG?trr%$>G2*AAR"4Ba^#`0bQ$cEt3W$BhNag'&VXr+Q(<fn"B_2TSdFFiDI$1L.O47^>h?jpGgrHd09Xq?c5fV;G5UEjfOOP*DG'V)^'h1%iC9La(C"0@K)nEd1X/d6+8JN]1T'/##i-PpX%1B-N)fWqAWr<GS:"076=(k8hOWmr"pl@#G[WnURs8-<0l$27k#s3Rg+\h"7h.&%%C11qUi)]&F#JETX!"qiIM'iesYpkP'X2nXF\d4ogjhX7:/+OTu*2hc-(d->gZI96sFZ7mZne6W,O0mNE"si+AG1e,q.?YfsEuo_K%]b.YN0G&i<H7HoHdD1B3M>3T6%X-dk4g%@F:hlHhh@&<UJO1Eu(d^]*jLjX2O_chbGCue1X91?p"YKO<0t#&2Rg$`7pjm2-B<h7T%$ro%hJ7aMDHa15J1.0oN8GGDflVS1LPql\93fgA<h:CH9_#Vp1k0r^)bD/0d&,hsH`tc5gSY^"FHS(EbCeL]Mp9Dg-4+nA1@c&h>%OWc4gLP+e&nJW,Q[IOS;4;OPZ`#^OZ_&tNEk:f%/%X#A&/TjYl>q$gOP+#&oMEqV!W,O0$hXQ??f?t_Ng!73V(XPqO1UB!:0,gJH%!q>RI]&\)b-I@?NjJ\Rk-^a'aqub^H*:O(_Ag]ojD'4(Rb;IHV(n%=MJtiLu=<-qr3ep22b@FE],n$D.bBO6`Y2N$!BHVO/eBJn;%VJ)g9Rc^VL[a["Xlk`^Qc,SVn^D:q!q!#-:*?nCM^'_41Z;(^o]s?q:Q:rA33G^Z:(8,4."`W^gQ)SiQ"nKPW\oKc<MV#orI8O8Q%)A"\"%kQiZ'B1sHkeIO-V'O$c+gMF`f1LEo8.<!Oeb5BXQk:oFK1n78`#/gdo=Y!Sn.RqJ4@K[P&Pfk;SBe:]#Npf::,\J-SmU]3%,T$m0\PRi/YgeMhT[X]+a*T@r5.?Ekq_j5fmY+Ya2OcpV@24,Tjr1%CWsahPa#t7J4B^e,Kc,jK$Z`eoM,%9C4X:M&+?eY"bRq^H%KOfJH@e!XqXH:D`#C?rek_6sH%bPq=LSA\;ooAG@-^IBP/_/,(M\LRY1gS"]o<L\#K.#f4"8$7^Y7'KS<P3TIE*[]((V>:A!dHfu%$`#('b4L[4Z,eC'TO`kP-4F^T0sYg(ohpX#kYU5kR!9X*1C\G9U.ti@Uoe.3f!(2GiK)c9R9oG:b+Y>f`H3"%Nk^C7p5KPL^i:5m%W0#NkigD><-](J]ca\3HK;.&9W/AM_/O#ZuV!"m+.%R@P'8GpD@<5=o:P\EJE+"*%I2r'?#m)^T\0BZ>N?*"nj[^=B!O&",O+nI(%>iZht6M3h'0dAKePE$];A-/rJ[BQL)5f'J'L=R+Df.!ER5V#G,EgheR,&#%Up+<G.rP#i;dcS:PPa7j/kV*$nq7mYD2qFGcp96+%%'+!3IE0SJ'ZX299,$S-A"`UaufROS`AZi<b,oT)N@6(WBZ]T;8c:)mn#5%^f#?e#AR)VhsD%dl,k]mP`VZ@$![VSI!ZSD"W,e9^\%jUQuK`ZU+*n`o>*O&2IqSHe>RRJ%S;70>Q6I3g\YR]]91Bqq3C'p($pP9[-s!5WBF=J@`7OF:f%f_Jo>qb!Ff;*%%Jc+t'UI)U4-%K%J[X.>5XuCl1(sHZNjbf50GbP26762fRGF2^^lkH/R3b`mtUBm5lr$@UMYi6!B`$GPgHL:."cF[:]_*kWQrpr_rSD1c#jMBY]T\%qL['Icg7a&Q2U9_[((JYXOmd?M5';9)&n`)ES6O90L]b:$HOt'F2d<(Y:nk?M7$f3GZ`WMf08p_=(ji.9WOf9T1ap)$B^USc6Ec9%(Hd`\jrKQ^]^0db].\QWi2Ikl@A#YhfL%9<8JY\gSnH+'H`,_QHj5FN&F^3G-V4g+(nh&*/6WOJ^`G^P?S\*"acbDGC>^UF-/hG:%7o&#%V'ItsR%&VJ%/;R1D,d7a*dg7]N[dHF#[msE/04>ITqZY3i%&?fWCi,<+SoR<'0o,!NcTmCOr"PF7hY1i_O@<Ofs<UBln^]g%']=Y$E]T:BEQKp-JO^[lmpoq\/9*@'R'\FFJ-[M/A9$Ne,1loiioH)bD'sRZVY`$lE*dAtQ2&cr2K!"-#(ame[A6G\kRE58_GD9E%gdP+>+t2X?E2.(I;TjZSX;u[c%+Q7YVnfO>30.tL22+^HWteM^#)V[,HZK0U5nqBpqt6=G$a/^re$]?!Q'%ULXGd*f%(9/mh='(G%6*&2&9r`(P1/>W,e;@I<M<4Wbk8JSaQnf!l@:gk[de]DL7e7'6>s=AY*)j'i2MlraG$o9u=u83l>E`tIa]SmtAIMM1@k,f7#(YYV%iB#?9-f2pH^+ga;)r:fS`Z-aK!0#m(YDMHM%YH#8I11!8#V,uGX@+ujE&HQ0?TFc@[,1D50+ncAVsK&qQ-%WbS)*bVSXBbqU`H<L%68f<6"uJ(%5YX!oT`M>5Ksj5:pfLA<,Z?/\:tF45"Ac]%h(O35*<lh(R&rjm&%o)ir6<GE9Ai+F_Q&Z<s#Vh@c:\f1^-OQ?.@21,%H.[Z!55+f,C"fNh_4\0gJaj5^V3jeud>Au5'=?O'TV6o(+7okha+!jB`@L$%"V5GE61A<'-?"A"ZT#.e2E3!kdB)54ZI7%g:g(FT%`Af87jN8$OT0KP+@!lAA<EcD9[BP2`C_b`?#Br(_8XFDDS[,A_4[flMJi?S1SKrrT!6lp&6Q6"A?pmW*/\B*^at8:8[5LG8jHR7i%+C1]M]9oq5iD1`g"&qr"+9B1<12A)EAm7U/&7$r(2'dBR>!r@^!cj9HO=lV,IA(Gtn$o\gpT:_:ZP!B+(koiJ@n%qR11[b6=lr@5%[+pS$_$5]K^aPk:%+%;POY@92JLI&2(LI0!Oh[A<WgH*]OOe*@J!=a1Lc=re<<!5])="=!FD^P&E:J^PfE[/U+EmjDFg?Se``X/[%"Lf$1&"FMN>f$phSk^*W5>hkV2sGu/1._!B:_,srI)hdIp,1jC%@rD2P>DdDqI9$cNsppr2C1`1nIg[B#H+($,f[rT_5LW0R7"`7%_B:'u(82@%d0f[l(a`LUf^[m=rh_p*hg@ndN@%h5]SJsRj%DSu1!l#:$Ep,mjJ<gL8<2(.N8).^V:qUtLdEjo!Oq##!JV^=+MqPQ%QiTQtbkNHt9*O)V+mh!OS<4<0JX$YL@,UoKmDlFARM-Ys8IuDQ1g*MpQitjOf$q<uW/#KDTAGVK:'(=7-`2G;-B;6Eln0Bi+k[EY%#AaTGNA3fQHsf*/dQ5W-)A#A7<O6`,C5diHB)lt[;BQ!D_D"(d]gi>F95?-]<u=<T5gf1Fh$t87_K<[hn;6W"1%"\JHdXrG')m_N%R53Y"_J65M*[O?@fma..7V@t)HhJ-W5_?!NF:V^@r"fH+Ju0Si"P+A@fCN6?XJ;)A0Ua@-L4fg6`l6.`7qSt56ptS)0P?%WgqVHg%Z$5cugW?&MnZDj="B/a9!j8*sN4Z>/49S`q&BOF5`#hF*QjB3(#[bAu7b4t58OUo+63OM`OH6dT(G!XF@YI%N.>OTF]]e=g7H6:D%L0X3r-B/@O?%UW99P9<RL:9!SaDVjtJHiMCk,9]&UkH5q"T2.*E8mXSW#tO5$nT5F-I"DuWtse6EgO,J7Fr`P,]5#L;,'&B\SRFs%V`BhBib%]^!/-0HP]-*91P0rrW22gsWbJ2i!'Z#92?9QX7J)hVMm-!-c6IpZ'Ome&lpK%p+l)S>bT31hGprXYPN<@Jbk_F%(\T#j%6R.8;_TgI-KEH+?XSo7]^'-8]`B)p#F*rnS>cgm:fsNQG"aics/1aZO:cf9WBK=Eg17n)1L5'ZF_._lPnIGLq!n$Km'uY>EFF]H^%L/1ulrKOYe4$NQW9kc-UTVt(/!#i^u9U^e%3G,+>!NWG&[AmnU3\^ZOSnR\57N`_0.Ycdn-n>SK(s1l+_+)(MiU%*>09A:kd3UN)%2=6Hjd5TPXdc%H7MG=mOOWtnZCB.Fga,H\"5d3M+*%BC9oG>Le@TdWJ?'r/lJs,X&m$'RO_];QIn`)TS3KV0KU6b2,fGF3HHSVoM%E>q1T?)5P;Yd6/7SHQ0;!:If67BQC#!?+8lB@(1k@r\T+@e?6OG#iqoI;OGto=:J@:(Wf/o`>-&SkIX+3NPmlJch-h5iIFT=&sp]%7uh`nclj><.=F_kO+*+"Zp:,4+HE8L`/8:3EBX+hKu(EIfKTM>VjRStr+%f''1+NIM1RWFg,d%0XYg4X&N8K_mI=i]Wdlg.IAYqL%]4?=[Yl()TI,o^n-mWI4HEb0EZ6#^kKY;K%:GND+ZR`WaZ%m<Z^fUc[%q#bNX(0'W*F_`tm(N2!-0Y,6`UtW&(2$/FJL-0J35u=&%_k7_'X'e-lP2@b_6l78>G#n$o!SWqV"/hY*>S&7&<K`i&c<>m)96LHi^iXQ44lt65n)[/oS-*(hg5a+:4^\KaReMHpA+92RY=bRb%^fM.@.V'j<i1&R!&3_jfjiS8I?g&R4?Eo\7Z;i\K$BUT2$%]YB._]RE@k>QSC^2$n9=fsR1a8=Bc&[:mV)O,(nDqI+M'^qoJMBDH%K<hZ=H^MT\KEt'^SE2e1OC[NQT51A0-Bs!4A-oe*Tu+eAc2!jZGA!h_f/KbFSXf\dU-FVc(B+PX/Ek6]&2FH.KDWh2q?<B5aNk#e%;YQo:.VH7'eH51,U5?6MH8$duZH$GF<n'GU+='5&FT>+/?t%tg7ifIoAK@<A:6$h0E#2QM>iscf&CP]$q2R^F:ma$\+g@sI"GpS]%YsZCh!gc>kJqSfbEu=\U3R"/Gh][u@"#"t4Hc(a<%.9d/21m;8b^pQ:2mo@o([DgcW6CJ=+B4lDeH,V7TL]@t<WuLOJYs4-_c*up%#USkGMdr(`&/h4W)h\j//ZFG#8660E77J_P5&&F)k`uLh`BFORj"RJJKP8WO$a>V%^QC#I&d#[;&Xl)P<qm5HEtulh?t77:f;'8^%cu:'N5(Us4$G21Y-Pqh=@Gc]bMD7LNHaR(?mSs`o`l/NV>6@ukDN\DMEHG&l/V)B51(*A']("4*Guu@%=agZXYJE=f\gEsVV67Y<%K@kag$K@c^7k'@D&g4"/7j/`O-tMmAOMXSgiJJKt`fi<$)6G'$`Sc0U#1/QdU!r3q%g9o#&/0fFj)X'Eei)<s^e*_IdLFo]6llSh%e0Buu%6u?i!5@_%d%JT$06$7*E<_)V4]])';`L@lltS]F*LMX-ZqGKdOBOmM:f&_[3ILr3b<[8<#1P!(O<4!r9<]\$aA"iK4f=Rl%#]-@4ku)L/&>c0G^)j/1\FQa',s[*NcU:mNhhWb47^s1s>CedC7[Jl!UMNh^gKL9#.cOE91M&-@N?<er=&Z:^@K`$OL5Sc^h)ONf%<(FUt<,+rdV:eqH1F$fK#]C*QJk.ofL&c0$#"!<(Hc1\5&UFf8@3Nks&8JaM_0d#Tl\^5G+p<utE&caj<CM-"i6+UT%1THF=>odQ%\Rj=TdSKu_oc=N;'%1KS63%2?P#?pAi]q"9$d)'[6PZi9!Qii+$B+7J#b.V4rP7sa+n_-*+DK>WCF@"5b"As\aO-?Y?NX5McklcO%Vo;fs/"mu:lm"2^UU)D+OQ*ci^)1a=7lF20g*,N!bmG/>8Cpf^frc;$1&%2kMI>Kpoh6J<?3h:^0KSQ=^64)<Gj$NJ61DMu5T<b^%E(@/X(^u/77!V',*8'QHH@a%%4pQ%PbUa,g8W&:K6uXT,)5!/cGM*))9=-m%>NN"f39$$/7<9P9hS"k7LcEbY2O>UIBg3kj%\VI6%kDdgA,bZpnh:M-FN7g7'j<Iq2l7u.Ml6.q=1jFnR#97R,N[=crSPsH8DP0[4UQ\e$KE?p3K[_kY;``'Cd$2J;)N[B]g7Ir&__YK6%;d)ar1<c/E3u"Rk4(Y(.<]H;V+YI"2#)87UY9b>(G];"W8d,AI!sg/GW=A`5#W000R>jcP@H4-Hm373CK8;/aRN8Y2P,-b31%%N8%q5`4QQuS?R-t@]8hDrucK.hcP#)o7.25=j>J4g</]/7N,i:hd*").lp\86\YJKBU9$s^+=g=9@j<@fLbVcQ^%m@`2SpIu>+"rh,c%6pWP*Vm)8K-d57J:uFNfC)%tu<1i^h1(0"+jghNRnOU_7)n&0<3.T@KBJi>s%O7r!3to7:&J'@Fh(kB.`O\auIh8'BW;`H9OT/Aa%4IH[T'F%GL2!#sX\)Muj_FtZZVsIjOSKD`88:(=[E#QT2Xt!*[,6-'T"@=('r!+t5_P,V'3)NEjC5#!p%A9XA&/k6So`3ot,CdiQ%7-SD3KP.fN1%_p\JUu%g+mX41*_;5jd7C:rS<W+U3`FN<$&a5W?&8DRp]@S6N>\_-Mk6ukR0K!'W)Q4-AI0Z.D*t(@@-paW`XKY<%.?bqc!@l4rXpun"$D:(77K^F7p,8>V`hS_%=Ya\#_OE5q"D!rL<'b$0H#56I?^)(/M,f?iK?HnWZNIcN0A>C^9Yh'.?UQ<-p,"o(%4QHc6\.<!2=\hUig]q5f,RWic'dt"'=Q^5#$Y`4I(Q#5@6O-.I(c]n_lFMl;nYrLZ0V-qE]t3h9XrS3H9n!CNnH?seC2)BAiHETk%QqK5HL?p+SQX%.G(WiV+"3E0(8eF-u\K%>=jDe"G=UY:1&6_A:J<5NdJDA(f$IAeeAJY@PK4;+F4Z<HZ&,I&AA\j)DB*&JSf)gHZ%oCX1RDj$"mmqcu^`tqlmJ0AJC2Mn)O%H<Z_Pc5S<obAMFE)r^^*J?CUF>sh0((?*H:_p^]5pZWA""s\#7Jh]TTGW5I6=roG<<LO@%A+j;@]VpM"k%HL!ER<=2,$tJW9ndR_R$gEk<T&5$iR8Osl0tu'Z&j%RJPaael>"+4A:pd+(s,9<6D>'E#"[eZW6Z0g!@q--/cp](%Qn&Vh5rNrf#A97\4hu<f99A7OJG](K#:eO@n:63;M3KR,Fp6Zh?iU7FKBSNFXM5-C!!3LaBHFXK7'd'Q":,30L13mg0W^m!=:Gjs%a:$/+-Zi+`+^Nl2KYf(T=mVdc#3cmg)#Z_^WsL,L,2j_BL1G3NX0Lkp[LpL:b>Wl(F?I;RdgE<5A=`p5=2=7a**3j]%]'5SM:&cI%F64/JH:JH$m012&)"#/i6<sfY.m$h?n;0C@Ag9%\AQ)%3AeZ30bQ&HX'WqK2%bq%,V+`_P/S805KJDg!R&(\R=ZF2;.*V096@#Hr%,Ut:n4L#"RKJcNq"IHe&".`"SfF*=upse%&mm'!P`!C4Hq3KAY0UOfU%UBY@"dq13;B@2;a-.'Q/*&J0e?K:W4MY0aW">R3S-f=b%J_NE]3of4[Q%')A!dMo;Hqaj[BZ0oO,mtrB+aK_J5%e9k;au-uYj(+o6OH5mRfM7Q>rDnM(CVr^[hoEmnFcJdY:39V(eUq2XVgOF%!U1U2fp.GT,UH3d8:d`g(B0\gA/0WEM'5k9QPi>++B+7ZNAr)ZbnRNO_GY5@6B$Qr^h&@Ub(+ua>62WU)D3/6A>fWE@0'"&3HgEf%=hotDgeEpd9M*H5;'Q.-'jCo&WbC:t/I;XJ,r@FYQ1.Y6X>"o;i%bq!8-"%oUH8hXb.sEbb.)mW?VtX,(`_ZmV9ZFMLV'O*c4J56%D4U6f`u@L1pCa,]N$S$h$V>?\7W[p9QA")`<^J*BDGJW;&TZf`&\rH5?fYF5U'Zo%&n&sbZe0;_$,SuI*C8t7?3Uu4(MLStq+[dk%8U0o*m%c0gjkrRbOXMVPBP'3YGG@,Dig=]8fWYeHTY"EOdQj6=Mk,hKV^RX(7imj</gi9LRB\H%(a0:tUKFK.!qPN+d#5a)&FA@I%MQ]0N*%Q.j0^s+S&M"]J\B0Ucc\NCs$A]V]1HG!M3.s7Idt236:'`=>Yb*mG=94.L]-rVkc9s#35['0MiYY'2'CZdq<[o./o)-i?%lC+64W!C.OT9Q,mohgAJ)C?O<f*89/IQG-p7@hYl$7?&\L17t>_bA%uMs)YW(=#IGJUe4>',Xaq<<Q_A;Bm#Ec)7XtJ-n=t!5M:u%K-8,"T#`Q6cq#[!FiCi@3<UG1M<8$(UC4(jUsI[G+34RN-H8HeKa;@<!SgT"E%)s>!95hZk)%1)Llh/K?B[J9PRTO?#f[?1bApJ?%,KlhE/d)M2]QNiBY\'oWJqF+R`WVF.kkk9??HfX864%'5.1$MOED@_OSCALZ.#Rs/i+ZT&Kb]##$qE'<@5H;lVTPot/l:paJWd,V%9XmS&R;_WbrM5+0V\,+:H/Z>b`Kc6:15Q&9CX]'X!>c-C`fTb>+#k1P)0/8N$9eJ,&Dq,p&5V@`6_-M4)+jtfL=#Ob^_(u[(8Dbi%-9Aej;h,N,=Ni8>liX]Y6&%)E@:]<JlHI0fWcBa1a=KV'RG(IqaDrD8&o/;;SI4=n<0g*/@4uf6P/03jAr^]T_'p-E&K;&"E><&*%da8:G8I:)FVih''im.rNKiN.7P^S+n./;BK@']:;r;s'ce,iH@1K,u`d0KSkc>d"-m&1-dn<l?R0:G]4PiDa4&1<o#`eabL_B;?]%Z)a9\aAq@6j!<d+LDo^g7O@_XX*I;[M\KS;^u\]^q*m=0/s`(%3Y@Q;mNn5\RhS6HA=XlU,#Jc:PR7m)%Xq?:1jqP_8<6hAP);4U%5"&BW_FXa**,%J?#WBt*o+%N?;aM\*`lKtLS0D(4cLZQb1,T\BrYi:Y;PCf^7@o8I=[BQ;\kr!7V36p_G0b^Y,\6TTA9UUm,n#97%dIRamD0S=!JYXc?DD%nrj?/$f_;*qGK#]%P$W%2I=9dBhZp4`6eDjan[g^VQ=h.Oe?.RKe$+;kG2F4\co;=9d?*5'f^pRu/ophAn%'0PP"I1,X7$Wg#634gA](I*S^#H%tnes7_+;l*0@].&eu1m5Fh0OMbGP13GkX,0f;!c=X?QsLAVm>1*50BJo^no7nQW)_LWDgIRH%Me@/95<It/g[_B8>:7S8k?.[IA]VEAB]6`=%\?<+7R\gN+<)lRarVWn<i;W,!sOt"b!3rbjd[F4YiZN!Xe:6XPK+H7ki3p3d>WZR%bU2hEA]6;kYEFhF3b2)]7O%L*L>X3/Q1H16IFD+&kQR9T0X,'N!fmCN-n#tA\4k:'0o<4fEq6/-$!e^F*RYiU0;0o[PbpiscH$B@%%\--A7EJL/N]#fU!V<'u.L84X<-7LoNl3(p%gR8VGB9]iXOA"[bK/&1`/&!oHdRZQ^(tQ3ZFim,827HpSpl30$\j$o=eIbhbWop*%"H8pmi.H*:`Br&bL^Jq*^?d>2)M:J7"N$;GJ'+7KMM]Mk$%-\3G(VFR*5gb]0-biO&eN2X[WGJ\4+q<uc&U'biS*Cq^f'5NHSo=i%$dj#LZ")l*p+;Q?XE)45:3KEF==J*!!*15TT-JR*!Kjm*bfQ'D7$@ZY^J2oaW+qJBD(ERYTK>,-'`0Nq8qC+fa^#Qn2pJn\q[n=?%=Y/u(+N_$Y1D0?'5l)D'c6cNM5UEhtgVU7I#pf2*-4Q#1@V'.d(l1aR^C$'O@%=p#WoY@5Z:PBai]qY,AL!BCJ5?pV,&;SHr.8I9%rRb18G[i!;%VRl9'o.jX_D[BrV&C13G=g#+RD>`d&/G^nop*7rC^@mO%F>F/9LA4gD(d`]^u5<#Yn=;h(tFF(J>#8:pbD)8"Q(nY%?nqjUM3f(Y9%2eqXL8fV5/]O;,Z<4kJ\2.LE?L43ZpPc_M70:^Hr7+rTIspIQ^XZn?lfXW&m316$%2OtPJC<r<C9WJ=qDj_5pX:g%.,nTUoM15`TW;Wrm03i!^8?DgA)mT=p>3HUWFXa&I_Pm?+V#n+JNXNo8-XYg#Qg_[@7UGf1789W]mi/:rN.s-*\n;=l#-1Tp-%Rq%/%'0EY$oj!InR4$4$O:palCY5l$@=\4E'^AoJnq^k-D*CIo<kD;H%jR#,]0WJ^9!hQlW3-RO-0iK.>2L/7.A!%iE.3O!<+@PhHuW%'L.M38pW@O89(@pZiTW]cpF9gi4aX5[NadIaLOs*alr728>qT#GFp0s/b6Ru-<;7IM?BNTL9LmmAd>&>m69u>2q4A=E%n4"hSm'Z%+Y"+"Tif,N/n9Yg25UkB)aV[REl&JX?HWW9A=.t490R$^+Y1G^!+b^8+PC6!>i<u;%]F!dCI\Ba?si\@oEAt6Gn3cP.o)#c#)qn6%FnAK3oLMkG^ks8aCVZmi"@140//o]3O?EjQW0iK0KKb57'u=*%HZCN38T`4G"p5^!]F1)FY/-7Fkh%Hm/@/u082u0h&2DO"8Uh*O%k!lj@$Ytc2bBY8q!KEZd+!U2=M>Y8O8J%'4bYPWr/4\^h>u/C*dr_!kCCq7#/0V?$QRZDEC,CARiqjX9*CEOhgUAHS:(h*Q?]#U"%9\eah7?C2Q;H0=.<^[:;AB\A_$<<5LY0c35"(T+q"j.R1,DrG_j=iS139_/LD^.[m*:f7c#ElX>gs+uu#<neK&dB*g#7ODka&p!0%Cbd?$iE`2)*M%?9C\S#tN!RBlmu_K^O<^8:!VR1nU`V7qZ$Ta<!JbEG,)'Qofdl3O&<UrXi=+(N7Dlmd"U;1ZJNP#6-Kf$OSDW@b%aVG_^,rE1i.4%:R.Zd5m8$XF)!lmUi:WVWSLa^kG5eL)"@.s=]oE0#4=B1U$7Ii`C^1S=2.O-#?Gi:+0'1><Kje6N_20psqPUeju%*$0_l.H'2#!?,H2#\1p'ku`U$O"_q4!2I$TjBA-W`Bp(7'L@MN'=l0tlp9B9=?Y(>+M*Ou&jcYq`5a$Gb`W>&Ak4DLX+<YM%>ZnR%";"FR+pL_6BJLsPPB^J41(QXd"sROhjGb@p'[)8%#]jTg!1:WUM6.hcEWRLteBHhZL)a>);.a(paGkG#V_8k8eN<t3D*9LX?ijR8%&[?i._0%"n%8>1)J]HkSM+E?l9Ma.NTXd+=2mdf1+L9E=_ulXKGI*ZU8:E><S45:LV.X6LE3,V'PrQ_>Z8fa#<*lt'"<!!ZW"(1'%OXgPj[k0&VJZR8ZZ<+mrJK&Q"1UR7";fiAHV>qHKU"5jW&-<0-Q7Es-6raWcCSf$Qi)*?:,\#u@Cd/7XJD<mk:K>%3ohOl'$TPBF%i=J/"5G;-l)%HO8Q@`.n"H%dRAG]#[+d>m%!b!^8&PE?E/IOP`GccN68CFQ+W/t[q6F;E$30O2qAirRQX/$7j_kdbjU#*7=kT@uA%^ireG$$/-NO?H+@E)%"_OqaFECJ1on+M+/H\MtZT=DZU>0-a.R^t+)?!N@M83Zr8J:2#=I5<IqT+`dI5gJZl.Td,4G"to.LERZ3F%%1N0NJrZueB>]o=H1Yq#^b?^/Z6osmMpeLXT?7@GaA=E-GX3O&4UC5E+j%c0q@QCH5"V/e_;PYbMDh9Y)e=/<.$:7AMUZ^gVkH4c%#UnjD%dgg*W.<\lVq<5!2N#7W4(@U2eN)#jo;3+M9TSqN%J^d:aCC6#AcY=)K9[b9,FnN>6(fbRJT].*lq*6i2\f*f+E1F%Eh5:@%`9!Zj^rFk26hi9T(pL8aoFd<Y,.%q0P4M1[:11EE7q'jm#9SkD['h)LarDO?-BTlapc37<>S#uP)Fjjr'jS)pJLfmq@eiCFFKR9U%#=*sQc6NT'U\G#l&6!KmMZ>XMfo?oT7oiZZ09`_?!]dgLA-kZ(og6YIZQ[G@GnL6b;q4h(k6S(r3C'?\_8*aepp;bY[TfWMZ".MT%^h?%c37\eL'6"@:*`j]BL'2E5^4^b,-H:HWi,$3C'l7Z@dK/#d6M;K5d<0T8PYV<J94E;S#<!LcjbH$iY)^l5`RX0M&Nh8Lkb<UW%.F4>rL10)W3tKJ9(:>'W8_ZX$P@K0/*O`+<#B5iMRB/T->IuFd@_WsGL[iA(3j:\LD*#1kiTFSLP)sb[OW6&8#W5,GrJ<q.,*;$`%9Jf+KpF]Oo,;LCWmKsil+-9/fab_&eTO?E^mcp8J\MTu/$'2+c1c7;?A4NXJ+BC!+an:HX9HPEKBW3dq&<nZ.eTJJSAFpd;(SiX0%be'650_U,$]=X+.bAKlH$T<^N1cb&.E>jU=WRIFMQORI!"7W-2`Zlo$L`qa\6ZR?U\CF<r*`+>]&?Wb.E-V".(1r_?S"aAu*&WV9%gJDC59DO,7LS:d\ORLi]Q37^%6MNm)'S;6Rd1L8)nJ;j+37p<1Z>=BPUJ;4F5XpqSOsLbH&p#dc`+9bu-=VfZ,_cs2"!so9;Dqh;%!a3\:E\*j2&gU?rdV+":7KnR1[[c!C5uF#XW?%H<`a3.OHU('c/0tlQMoT?X7j?eT5UX:%3E?j,!WXhoV8V&/ZXbLN.%leBNd39K%PUo.:6!1h:W?#ql;pp[=^c?lS62OrF?O$]7KBE6;f8u_#+mGI)ktihY2`WSm<Q>aZ<C%/t#_A<B57`\@@77+c8@hq6e28fR0$ght%"E;gK32K9#l'Yf/Jo];(P]b-G;%!-9kZ+d^jDmO.$l-5(lO7-Th?ZdV!$;D^%u1]*EF8k&%#HBs*s3jFBR`n(5mY>OFTaMM8MFsE%9SQ4c@W]e-0FTBp6BF8oj9qI^7Li'b^>_C1a=4rQCEV>.#+Lbt9hm\LO\\"D>`\b>pcQF:I%Q6tnEsgVqSgF)@O`"tj@PdR,`Mtn%"=!BSGV%(]EDjAlaJ8D63u_-AT6M1uPOKI]=C-Q;.WnXcl2b"!0Ppm=9$!B[7*4^\,-EPodNe=9M$:jYPu[H.bg8%LW<2,.e:9=^%5VriG\IKqc.'as9H4hk>7%Z'!*eu"NFs*e7'oifK:_5>.N^W:KO@IXYA>6WgP,q=6_Fl+aLBh[.-s()OP)uES)I4$Zi06h,'4auZ%%\GI'Wb:=2fMj=<;^pc.m6q>BL(GoRB=<]>58B#P7hHJ<]?\b3(^A@*Jjr94gPUP-LKr*b4"qPr*AXa=C*#W:;sLGU*g8-T.73q_%bbm<b8N$qnAdOh^Jh^me=,_#[%!1GGIF*i@fDu?[<#rMYaXI<4G[\7FPYWO>Q^on,EW\qU`QEIjr;h&S"-88:!+dkcbX",9`-?\\%8ui:c4LpKUSH9u205ML,NAfjj8(cNnURkrHkfSVU26K;L5uDM@)I^P-d*)7Q0)iXurWA;/-7&CGR;?nQ8'"er3'1pW2`Po3Ld$B^%+qhOA#r@kajU<\,aWYKY/Op`eF[>f*n1kf^NUS]`'F0G5!_eB#_'pr)^h>Ha9U@kh"$s'lNIhh!I+THs`NJE\QkF'>a?i/>Yt-2p%%q5rDeScCA15"G-_LMgnecTG3pBcV/F[V:*92JhkC<_(5`X]s98@6=.>X9\QOM/`mX7i>6;;@NoN]%[^+ekio/d@6-GbIRp6>*":%j0D!+$W-LN)tIN.pGL$Vk-A#giK<-S-")]aTc!cF4+YoHKrP2bfPqI(?Yd`AZK=+b,QcsA&HN%e-">`?[J;),ThGHSXBV>(R1/8O%X"?;979WA`BGLZD/_Fp%@#5%+D+^c$(dSko*,2pVY4W07F7QdB\-4GF.9lBQZ>a7Y2kato#o3Z9J4`bu()D-Nca0#j=Pgd0_+HsL%3N*2lFEhfC]&F&4G[OJe#l?JGD>X(S&dB?V'0Khr$i)f!-mfaD;Zg/T/Ibg=f.%Xe_7$"foh94^%4L/)LcdC'ltCDhJOP$:!Z\QV%eoMGg!ccF,G+D>e5VrV6ctDQa,SCAjT^*C*Xp*($)OSK-"X&*oJS1&XQ9*r=^lSf:21>jSNSsA8/(nItL"dZDj1pn7a68bI_M3mo%D*&m8E3]h+)S44',f9VXCRW1l,0gN8<'rAp#k8[N9FR_@L(*H^ES<'VdL[BI,Vq^86U<if+n?J>_3(ZpN'OZtAl`<A^_D^0Ctls?%Jh/3H:jdh2CQgeMac=JFP%ah@LM]T568FgIGWD/^/.(+Icn,m*"'soT97mjS>fJB"-;2l0e$@V;BJXNf<HDXmA@/(DdHrTkN<TF1%<&dX:_^V77-O8"K#Fo08_(P-(JHhIGla$1!O!qOt>qu4Z>aC#eb/>PKOAmcN0's?pD&B'R1RY`hO<GI4$l'qr\e#ucS-o<kJ8cLt%\J-3I<s=@lKA4un\#HDq@)7Um[QN0*0LZ6MZcK05o&W;*oq&uc?Z%9K3IsQkAK2NUIu5G%CY>S04G]ZMlN:pMYV-?34rtqq9<pRo%C/SVc5DFXS8U\+aL]Sk3_*J<ZHJei>cC&-t2,FYu&!dRU1XTV>]0PD<"#dYB`b)/f+&L<aPhlQ=],Y6k&b6rbi7K[&CcT3EASkS7%=p%+'Pe@<nkA`=^(ht7'@T$3=WMtheMCO]+L.l\L`_B.Z4t^P?6o=-BGQ\k!7AKMm`AH(11km.GppsE5H![m3"n`7*6\uiaU`uF=%j.49:C[1DEOP#->UZeXAT>'8'!`)D,Wi-oL3d.F,^Bn2sFL:cX1LMep+>Ga:XiH!pnLF7*qpEXm$,F!&76n?G.`\K<J9\ILrc`=R%U01"_jg,J9PN1j7/?ls(o5][:I9bd4]Ki7VdN&=t0^JfF:">C\3uEkM;CInNK.&^O%;nYUj?Od1]d"`]WZ+gr38*G27)jt$0bQ%m%U5kIPQ9%9e>!h!E>Y(!X:?EL)i(UgE)(6L4ObEkf0%K8nWYV;sQ-a/cq1&l9"r8C*"E-8tV\7']3/iWp$c4ua)$iWfm3+T.cX>=Z%V=!rF>`Sp=-+"tO)Q889XtAC9_m4LiBL+%;E%jTg@9]ld%O'.8Y(8R^i,h*?88'l?2Nbo(Q2B-Q;"c[iQO-((JB%YH!pd]_e2F)P%>N2h4HRT"cF6Xq0IKpie(^`Sa:i-OO"Sb!HOlHP"SHq2g$8^VGPU`[@>)+X7Jb=h^j0>2:3/p7`/Wh/;N_I5:$\P3H*Ce<_6X;R0%nS9WpA'["R&];JJ\5nb$/A1X$7#oGn6MJ3Io3ii-<9fc_qG7E^##TVg^]l#5mq)qd(TrN*XHj>@(5/oR;E[cd^N^5`U//'=&K0rm%L`tG=o!6C-UCluMCehn.<NpbW*K#cq;\Vl]nBi.f@qMu*TgM+k7/V2Y]qK8Q6%%#-d$`g)VZ?cG]/H;^,T)tmiPY/&,+GZDCC]Nk%>mK;D"-^V2d:lP;oH]bA@Xur\Rro]LU]QU81AP+aKo:T,F2QZ<CbFE)Qm/)T*pHp+#r4k+H&T;Q$B/@(A%R:dWQG2c/s76L[^gs^%.<6c,c*7_6g.(R!-K6+T^_$8i>t]]<*6DuNMTG!r`t$TNj:`+jVG=Y#AX]-KJV>e7ka<:*NV<7"S-:TMQ]e[;T/H]&qH_l@OE)\9%h3d,.EYsiDBnKrCJRE"&Bg;\)a\i6SZU6`_5$a+X)?fJ=E7b]@S<IqJn0f&$LsdijHL>jm3CY3T<QUD/IN;flE"J]KE+k+V,+1PJ%lqD'75cnn+oB8S5X,sk3Ya?We%iFsQYaC#.6.c4+'.b:3Jf#fQ[Ku#IBFZ<r+\bXg?uN@tS1S-d%B-e6c,#b#eR29m)@">tS5tI6%#X&L71Bk;u_fk:>(qTp,L;sB2M$h@Bi(Mo,f<0bu>f(/>U*7O'[1TKBY8%P*k)+8rBr*Gi+[sXa#'F%Q(Q(WC9?N_;?N<cI@+2-2%k6g!DL+2gs_kBsllt[or.]eQO4O[il![-1)L_paTNnHW?0hbM4l[`=ar!eK'Cmg!_X[J>2"TT1r-s[+Cir*MJ>F]/@agG_Jr@CSo%!D@)'\Q!b`7V"6$&17-s67.h`b131=)5J<9jB7AUpK\7XNmcV^:J2nq;:Heac!cMR3@h(-FZ)5qde0F.TOh&MH]!R=!s"#W>a*&K%--k/Koh,%u0Ii6lB\P)$9B)rdE:m/bQF7:SVl?QQ63=t+.@qAX@M(qh'FQieQ_C0/1/EdV>&M.'Va_g)rY1N28Nn1/"%Q*j-r>h(%B0eGV@#kC*Vlc![f>*#Z=b1+STQ+:!OCT'(\A0m&LuoC#Cf8X.$."Q`2+J3AT\"oriXiNm'?T_LHk(96DZl="#X"\4L1Z=c*l9A1%-++d:72uWCVQa;t>bS7>OD?]d;6aUH-]ejH#Ct96]"D\&CRN/k)%,lKB^%4N'P\I/pk5oj9uWBnF;.6/J0Dc?Qp2g)#g($M5%>VW%$6sg'+U)=I(gNt<0cl#h6dgo)!"R`e3fXNM.,s]m[`sLEoDtVW]U53_ZXUmB*)*TrWdk^r$#OP-UNKj<JVU!mD][(<+QYU_=r5bD%1mO0!!$l#J7U<%@Ur%-b5`!i"a.NR<hM%'>A7:WPfH!Y*(;a;])(pqc8f@bD=+W..1,eAs!S)h!l@B`@(VjkGHCD9s]eDI##N(Tm%mL#-M&QjuQmW7&@9I$2A@#O`t2jUEl_ZVi*96:5/:IY_I+gLu0o.g\H91c]8<`?rK&1Y5:L?)uV)&>j("(Ua*Ru\+l#H]-^k8/)H%.Dg#H)Z%Y[0fKZkJLbP/#QfX"%Ln3c<@gFqN6c!EI3S6E"eRM?KG=e'a-],Tb8>RJOAp3=!WZ4c=r_cf/>#jb,P6Je$gVh"Y%[3)%#V9@+!N^Hlb,,tuc<q9qb=suAb%35*(?9?G=VfnKaNa9.B!M\^)+kqmGMmK.'O<YRJ:PGon(:NgJAOiC1e!t#1^flSj@??_`+,I\%EOnnjF#`A"KU*,"=[B\SMYf<r'2F5t&5X<Jf,9eUGR;p:o/pK[Vju2p;6$kH2-/sp;,.RB@$'Ie%n#7o>ThiY),Ek^SmYjB:sL9(%raGN)?nHu!A9aU]/oXc4L(bU23$9'e"Hn4#K7hAZ)5k8;V:_"l"H:/g^Y#U'(lWuU7oooq#r>O9%Y13=+T7Z.\WH=mW![TpiA#R\%0msm;]Qmc#:r0\P\<8=PH\&O\_b`-Gob^'#"B&PVAG+57GVbt13`I"[c3fjt1e!.?**l&NZ_:VN,!&jqntIPXhpKsY!8WQaBfK^k%(<c8'`tT_@"&gs3FVtA'',X=E&gD:e=EkB&6;mdn5VQt5.M.WeVa*aL$Tsr?$G#\s*+r\jX"?_:6nAZ:#I;RT"d)fl[,DW6@B_`U%QtW@-G(I_i.,%)O],l3e_aN!F8-4pI#*_e,;A?=/)\Y8PRks\ia'c%cpdJ$k"A?4gX#DGi&_#s/KGCd$`0EjnV8=Cn,a'%>!Sao!%LY,Y==$o%<$-(B#A&Y<^P:I@lTS+sX6kg)j^_<k'3GL@3%j-T7J#e2C"[iuB\SNgmSeK``S69$4$po/k-IEAik";K_(_r`L+?Y4W%,G$SES[bpF7oEf%&Qt5Lph@/^$Xl46BDFlU]?)?P&@#GO5k8b#NL1"7T3)CZ"/+X#\TQCIql!6mN#S*Pdfm^.^fBX'7W&;0.1nj^%(EEP7#qbBATj>!(i5)*DGZ0VB7cYfKP'W*&%``N>\gbH89>SMr)FD_up]=7VH_<W\%1PC`i"IpORPZPr\akicEEe:%KH_fK&]s\i%Q4fKA4Ib`<!0G?4$+S/L`A')e`Fdb#6qYA[6/j3C,uA"YNr\`6Wg9<6Ta&cNa?W95A$,g=@R-U.O/o\FSY<J+8-[FN\8d<U`>emW%$lu.lR]FP?i@n5o9GF9/^!*6U'L"Dh*t),!iWrQ"B]?'29,rV:o#dA&&2iO;@VW0h)ZmZS:i[$9]HN_t_`@?3&J>Kq`:PbO-2<c3%'EpcA*/PL7h_lX^p_mTJgt<ro6H0&h[0)Mq.n!I_%"VAg,FgO@joO+hcc?t>HRNh=K&GX(U_BA9g#6QeMB5o^9W;b8N_Z5:TKjn[%"`FSj53gab,0pfX@65)il<=t3D.(?<;\"m&+@!gg6;"9_3RRK/>7<g=;?3R_:g\%=-u_GF>Z;c^]l<2-bCCF]T8"d"Jg"cXKJ&!.%asSFP)?r)%`b.(mOlRFm?k78qeO4.M?mHS#S3Xi@r<1_9kn=O3!+`&q0`qhF3]dO?95MfT,89+^3BGI,Yp+ZSGVM@9kJ=PT86@6j%5@N<F7^?`JY9Fu2mkY:/-UJ84Skj\s+SgPV>&mV'S6SNjM`t.p*h:q)@CSAbG:SL<S%tM`.-T4oOEW`YL=kH5,SI!tlG/a<)ZX.h%J?b40L!1?p\0)DT.SV_1M]Hbj/i6?Y4L4?pBE[%PaNY/G;6:KF'311q84UgR`;>1\ODRQT5U-(`+cO>OODi(H,i3%sr,>aM9$JZ0%.fg^LZJSKTcBGajaRF2.'R$7h[HWe#@8Q(mmlJIW!\$FX@@?Ir5buLu7ir@A"n[\+!GHAe?%]a,/p*RX*nKm<(rI"Or.Jq`N6r&F%*lUs2[37+GC)f!i;Ge.UMh0.tg!sUG)Jlj_+;#cRR-<Q/"@F5chB4faWHO.HQ?=H^1^nP8k[%[LRAaP0Tmf&R'S.pT/!lRW-JTLN%i7K[`Z;?)F>EGj93Fi[BKW0J;R^"t@=JI\X*0qb"S)m9(1cn=h6&8_Hli^60Rsh5AWeJ8Z54`_,'R7La1b#d^9:AHq(S9lJ9#JA#%YjL\D@W7B<HjVF,`c$Cs'8pd1XA22R!u%H5@/OJKVL3"5Q#CdsEV*2b1CVjC"Yu?])aL7[8iPDP_))93X"J(DBY-/3+9m[5>D-o6%;"g7n-sRFn#7-U"3*=&V3Y7TglHMm)M?*#Z+I7!//XV(pC<:!:0_H@Z3%n+Zgm;+JaKDCW"QcOa[>(VhnkN<r;0Tlo!uEU&5_?EI%Q%8e@!0Jc;[p\;A0*Jdu2>Wtr)%bZ9,FU2WLo)%)hZJ+:Rh=!LL`7OLdH8eD6rpc`Z'8[S%CS\KpQW'fh]oXRRrZcZB]r>q.jB&H%PQ>gI>K6=B1#6:q38?8Q\[+tq^;UY68>4ZhL$[cC=g'S,gE,nK/G`P.90eC]RmKUsK]/U8#,AS%_[<orLlIGDO=!UE'H-M,6=$jB%OP#k)`)_XIF[;\/\0r0QS\+as-5KoQEiA)A^q^GUZ46p?B*gqpN5,E2&dgQ!]PX*?_^*cogU]ANL-D7aa$,d^@E^NQT$3HH,%aXS%0M&RR$igCs:Ui!5/^P8-;adu%$K)FKR[Q>2LrM/,oI^DX0_f-t_6\e=N_)-b:CjVr'=L34PmE:T\sc26^)HX%[iKm!kYn:l'8rS@%3B3P/(,;a1C^;NR'Lp.uYTZ>o'*+aN;;e>AW?+F*]i5]6a]SWGcjl1mVSaYJI+]KAl4b7J7T<q+,TtO=Yt>*;^VF)`e"2>B=7V,3%=CcqqEi&ts+d(/4_+q(ar;hS20\T2fMrbF]_,:Lh<27ZhN#F/fBY:>ZR<151,52>:6X\.K+''`bd0SA3C'&J+PpX1pTYs"9.&SM%%Vk+dG]_*[6>0JA!TJ$m3m%+P\G\lSqVB-c*OR_8->J;QEdP6HSUh>`J4h:VC,&r^NdpfGI,X8gSp]R4pGiSQ%Nu_mr;ioc0\r5&\%OA-aY$p[a7U-oDB'`dtk+(qP5K-aC"=%EW16.[LV&$04\8msHN@P^mN9O3\(_YXrqCXB[=*>#/i6GU6EUZpTDIH?]1"Obla,](VX%0he!(Mi3d.!kTt*5f@.@aa>EOr/dqf%c0W,1Ncpmci=fE[!XYr[0=/]k+TWjjFWS/,='3NbAE&Ij4iR!LB.Oh\f4(fJJb0M%G'PZ%&W%Y<g*]-dh[h&-E0.o,5Zq*\5T?,oc6Dob:X)5-%k#^A.YKiO,GX0=Y`k0-BVH)F?:H*icn!u9"n$p!,-X08F!L`BF?Mh`QoUJo%/4W4&Hoo[q+=7X09O`-!Vi<%NU$X:9`o^DdV4>a73WdI<:eS^$b6%<BMK:WleP<JST1<:oD%dUg;BSYn)k^:.jDDk;;%Oc0%?f"L%)S-1lj?-jr2^hC.CY]?7#c$GpY34hjH4FbC?_Ea2!cJJJCRe8Dl8I)C/d:3rVSc;"FBq3^3^WE@ZttY;?j<A^R\<Jc_7B[Xk;$ea%'%e88TT;>jB!E,/AK%)*B!S*TPR)]I(JTJPVYk`)2l*:p@R^sIc\(gRTG^-&Z6L1"/_U:d4[Z6'&Oh0lr%,"0TjuHbO6Oj!@MiT@%#%7=5j@'+R!aTFU+sK:j,>3qBjaYY;5l$cY*:&>a,"0XAR$:%I*?5,T.<#M#NbFMQ,tmJkUb3R/N:T?3*t!p\gQEj+5]7*F@N8!E%U&ct;'7aop_I=(ELe=#t\mBs-7Q.buYC%/HN+94ZJ!Wt-!Gr9h5X?M<RJa:V"rD6q@S'g>aO@),!M[Xp7&2H1l53joVLu)CBXPKd%#/Q[F821eI`Lb-`OCS?V9=QH_TE>6(:]!`1#U_Acik#oWZ:9[B-r)S]"nsA$b9iKs4d!00?IR=X'1@/o2$%_HV',X@7F1]oj?Gu$%F(3uIeUjW]"9J(pPCTe2KIq6G+cV$e^^UnF9/1=>Nnc(Q+Y=%iK.EIs4FMma_@,-C"#b?g(/KJ!FN(nC):]ecM&,8Z@PB_FS(e-9%:=76ASg[\G\@NYF*tdO&J/VdlO:&L$(o8JV3^TD!O"bhd!_-83$eT*MAH4g?AtqfUQ@])EOoV`M"g41`2]4DH%^6$S2`V9i3Sa=E%0ms904cHB$2M0a7U4h$b=L?MPiio$""1QC6Wf>m:OZ`d8,We*M#NNueW5-=Q*Bk9a6Ottr!0Vt-8\mRs;ImIBTB0"O0ufkrS>%I2%l6ZS4350d.97S:r6t8NdjG-F)aQ#c%faS(G"9U7'#mEnt=;'PF]aEi%J4*I]B2MlcO"FtY657Bf\)j]2X>(:iACZHSc-YXT>2.up%EM4Z"HR@jh;E4s5Ulp1g:ru9c5c.A(+CjA%-=W)fr*ZMd^_J8Gp0\U0E>s+RM-5%RY5EgE1M3H:49kl1M!;Mo&VZpsTXq_mVQMb3%d@piA[-Hj0e%j=KO73.RbafdUL/+.i&k+I+Z;":*Q%QhHj^g(+U5*dF@[RN*VM,qU>c/Q/><U\^/k-@D^anq(5[ZhZ/eQnN<GBNi%#[Ei(MeI`B!Rd2V='3&MiY=sg41]=3&:kuin)?`WaH%LS$-/cj0c>ONUMf8IA2rZK)$oF1<d(8p8hr0G2b%?<Ht2+:T+;#?2M>hc%K_u$38*,ie#.m5sbb4X>"15Jq4pk*lk,'Q/&hWa'-;seZ+F8JZ[@TZ=1YG*FeTl\$.KS8[4jFFEYR!TM/M0ViZlBC=FDMCL(C14F%B]p]gXPeuT_LZiDE.%`!^g"VUrl_.H4ne(BNo<Uc&53YXr\d)]C]%%nZcb)\QMh=*'(/]DWD,AM=gXN);,g4h7-TZs%PIX5+=GM\%o<Jk"J:(XeV,,`?`RqQU;kRU*&87*4-V2e+&h[^AZD]$+VUl0..POA7ZiaDE$5'0UMF1M)OPLj0Y`oYiA!d]1SBE:L(+31o)TBkm%H"o=D#>R6hs.6N=;k6@I)P>qg-qMGi0utF\b2G%H1,'aQD8OY)!N"hX)Ka%]P2]+Wo]hC`2CpP$>"Gl/JJ@=Dge^s:D$5h(q,O@A%?neXmjE+^h,@H-)"JQI==25Rt)oQ;i\dG@q;;$:8,;')7,/`EKi*i8eS1J83gPe7*'=):;&t`$eEt!4D+jIn1D[52E/OfuO">Yp4%M:q*N-#576&<]@>E65L5M[JL5/BJLeA8\\fHhn*U)cMkUA1Bhd\25e-0:9^XZ2b8D^pI3),8%^ncu01_'0<"l(MA*k*'05$S6J[C%_WAd6\-hD20f1"@C`'=N5Gg3t:[\dlaUpmHaB6ha+hJ@!91dN!$u?-$[CL;eij608^M@U!+.!T>.&,;Q4H@7eh%@*Jl^9F_2kPBm%B#Z*@[D<-*-Bg1U)p,VEanB,*CDudh=P\M)(7M;.WQmN_N)'RF@Z/6fBT0Q,*t.,O0eh0$"!)gq<-tGa5N(T8MTnUY$FjYQaMMao%MhpT5/?kh5KBY^^AW;CM>Y_+`0>T(VF^6K.'SKZY6DL]Bb9A/Wg)!))^Sg%PcrTLPd\a27M""7bFc$J^oWE^Qc7q_WrN5Qp<'M^?%Ls.Ehdp"HfR:,,_$2>Z8O!_l1n8,6L"%H^_B5:memqC7C]H5pfO]gOYoeU["D:?R*g<ECiVH(n5Y0*;=VV/-'W/DbRpHr;AKhTuS%2^&pR<ED5[0J;!VHn7#3A.8.WnmSZUfIO"hr2H:(J_::iI_XHNKh%,KV05fe2q.i9](P?Hg37kF)1@2q5-/&@Hi5RWmJ)$`5=G1:%Dmp[BQCG#IH)%fj;m4bu,J2_.Zd\@9UQ4h2j`o+gm%&"%W^ks9kNrKRSQ@%L0kG7'>H>.e\SenTa8CmYaf5<QrF=tZr<(E)7V6$+%a2A9\5C?O^m&5F0U.BcESBP=%rC8)2KkClUg`^2FFAR4OCfcl'!C1EGBjO3Vj^%qJJnR&nkJg[3-0blT"/n1Z37o%CAhkqq[c+Uk%\RLD:Y?S,LZW>=UG0AE^9hi-9c/SpTl+uH6T`<;Ec9R11-p.9T_'9FZC&K\qdA,]7i4XfUp2+jT$C66m<;q*_K;c<U<*"auXSE49%d=p!nqL9l=@t(.263IHlD2)S&[--N/UoR;9X)/$>p<dLI9ig'-0?RW2?$mq*WRV4s%]Y*n#(`3n[08g8ZU6_ol<8hLbJ$4PO4%Lr%cR`1hc,c)\=aVZ-hP46lT&A;.)rq0XnD?jh1I/buo.Mc$FmO@i@nIL66dbVW+3@+J#ZdbC5<)U[KEBcaRbpj<J/Pj.h^^no*7@">%6T"TC)+40("9KIl'bi'9N$2Kk*sP1ln/_!c:]1O.\hH7c^cHHfLAYh=M7ig"/sdC^+r\k;a)D)"\uYAVi&FR:"71"k@M")[=gp<R%=5%(QAq/^hmK?c'QSSpn5r_?@A(?KIA5>_\`eYdJKu]%3=on[XW=H^AlT/ph/``5&+&N^EqB\3gZ=IW0>Z!JP9UOIC;O[^?7)1*H%@VpP1d3Q(%c6\1hBM2"MdWq/j>3U'fU!)\(O8rZe6F=^>+GAgsi"@rALrh#(N$!\Dj"/+/;3#0P:eU%9DtukeGA;,l3#D$+(1rt6%1';8Y3)X-B0F4m,rdNU5CJK8Y2WMb&^'Y@:kD/:>!1Y-_4,D.Im>387T$S?>K[C\\fsZXBQ/keFfd+s9F<F_l@aC*k+>.^ap)"B>%`9e]'!Tm0VA9Npql(l!0dFNh!$*m"`=%"=d9$5Yg2-?R:aAIiSf)eNq6:2Q'4qN06N\sMJ@Sd"(1FNNiTR-mM*1ru>iSnmF8>2EU%a5MbpU?l7*Ohpd=>aX4T1fB@99;s9UVWl5"JP=`.5!sBId2&$DV,pP_jLBLCR1.6KD^X9@.%[(!2;mKLW=D2TE2%3f7$ff[Or.",%Fg;*#CW*(4D=h'&k*/u@`&/4iNW>Jdc&up`i3^*&M]g\=lm-gt>4LA\^'(S?\`pB+;]#os"$^6!L;5U5;Kn\AR3`g[D'eGI29$+P%bUPeYBM3NjfOlKkLo(/%98Bs>C('Q2;DCfk<YL[T&0j[Q(*c:A)\Eb<+@_C"9LOhVXr&n-&JJ^.Zp;P4p%\5U82S^k^iBTRQom97%!-^-t,'Lak*(Iu)R6e>/S7G7VN#h@1XPb:7CmiIHgZPt<U"j>2Q#t]iW`LtOmS3."F0&?UGn`NnNUujOB%?rT[AThN:l1R*>q4qo%MjnuR%uI#QFsn5bs)Sg&WM`\pQZjEBrnV`Le[=jJRo&b,.sRr[$s/?3N>ficL-r(Cc]mF7("5#lOF4sUm%jWY3oaq2lu3.:nu.8Y%Wl>T($'LXS/jFJ=]gt_$Onec7BGWfDl.+(49,Xf^(qg:V@K7Z,7-oNEmfeQY"(+a=Du,r%<%h!@IlGL"aY-H:idD;aI9OFq,3ltq%NhT8qV;F0u5:!#E7KF[%Z?JXO]43=1:;s<),gBh#ZHu!!V/e*VQ@Mfun19Hu'-fgT73pUpe`"Z]$)/<RN+aC<Ck2MWl6'I[PQ]BX%F]a,]`:Zkg%>]A.$ktkl<*YtmLLT"q5-lBcM;`J=ZKk&iL$)(r1KQ)dD*L,UZq9d^7.gUQ5&c>aSl:abAY[9%%5`rYM[e.d;'XK_%,\Rc&$I`Gt'G4hR)'d/!4X.q4-q9.21Id>*H]/l+HU\-YgIplZcj22[9^Om&k8=IXC'cV&:5TgXh"]BejN^E-1^"ae,")%`8Ji>\%>RsqXEEj(m]o_N@#*RFL@h:O^/b0F'/g8s\=Xb%d-Ur0@r1f<gip@<0@$t9e;)359K#*\W[3eD1%30So%%:;5#-20ij?WSZEO;8.%kfq&;-,<3I$?W:b1!Bn<A7NSdeC7!ie-aYV6NZ3d1@t,p7kSSWXG60kBj>!r"o^mb_<H-7Y^>-1#)TU?M$?617d=]H.nc!56FB?I%%eu)_\i(aaY3Q9@U(Jot)j-iB&=Ys>pBVoP0LXG(jU\,)d5Kuu]d)IF",(Q"4YnAQ)16qtVAYYgfWlZeiHE=<7hVUf+=JA#9$fF#%D$0)3SB(]IkQ"`T_j:r+d+.>!U,OETJYZ[DAD]_LZR!ejg.P"H8DlV0k7N?c9+:kF,Irh&N0q+",+<@;D_dKf:>ZY?I2=t`;9P%9%d26`=BfA#>/_-$DeKacFE7QOh=3AgXq3#$f9>6fE'_:sp;_6VQAl?dsrO5\5OYXVJV!J\bXZ;3D0RPQ^:K2,Q*;P3D=#b%+T=X,g%r\c/Z(VPEg\RN8-XS$Ab_cE'$Gn=!haNoY"]PQ,E^"DcpT]kn6\^k>eVLMgpbW5<6K.dZS0-'R]"2Z5$]JP;[[8ARdLVNJi"/U2W%%sm7/Tmee7rU!Xh?Z&kYB>no+I(!<CgFIJG9lf"Ig#ep7apeb5q#J2-LN^>0qX%>5EQb!oFPKa)@o'7MpRYVI*4;jq[7\3iboDru%f9q#seZ*cTe#J_%\XZ'Q1/X=RO<2Vj@.T-qEp3mk1==1s&U72c!TSiq8B@,3!C]Pa&A8JiN!2]&8,!h9OE%X-i,Ar;R#+fj%KiSJ%E&,A()j[/q6M4cNEQj"?>E'b!JB#CG&0^9DE-T0;@gTG:=;PZq,B5)ELhE'#5'1nFOsUgKZf.a:!LC5d4qCVZX,86[+QK8R@14Vl%Ik6a+!B31m5U:HBfF/tOE?uFQd9,uEeL.5:EN%qOAAoHd>o!de&@<>549iBsT$J]G/BmKl!-sW`>bW[0X(o.Ad;+Q.P9;bS7CW)A%2e]8mb!X:hTbn#KA!*jJQ*;QU)'[6@D:lbs`"[mF7@19p)_EQUr?fTJ8=+B$SQjN*@CoC,/p/'F$lgUrpcJOG!:Y7dAHE\k$,R&R%PTNW8,QVu:LquGX(k/n9`%+L"C^>M*C8I:;a93(O^4n^Z3(-:Z[sSD.`>AV"$=^.Q_fJ.T?NMr<"BQ6:>H#msZt6aNLjNcn5HKGK%Eb)PrO_?$7;LJZ]8g>#?+k-gp,"Ou[paYd7fUTV[AE"+2</B6/o]]lE#U!SY-P:2s0QY17JmnD4Un^eG+hjP!Rq*-<Z%b(7+=Pai%U%H&a-UMtZAbfc<J]VkaOuWMLl5P>kCR`]SKSD`V&fs/aPjS6D!'iSa#p"[nkF=:8A?%&;=J$@i!8qCqPEilj,"a8e+3SLT1]f4p%Ra$p^I$=.W!D1`uH-Zi)D6sTlR6SjOcl32Y%&L)_=pT-cki,RK$\@Mu=!9kQ)!E\?e;7-:OTE<s*Vc3qCkrZ4apLn8".N1n$3S<N%K<3NiW`Ut9+:ULFe6NL!+PS%`OG9i&U'k"Zc'j=@L/e?sabpfD.8-QX_Ue;!4(+2WZndgfH_J`%N"NVaH%KX<\0*r;?\Plt-l4`Z%'H#%V8h_:`!,t=g;7Ac?PQNfW(fqm3)?SY\$c?.q`rpdul^?hRiEA^q,h_oK)GQ0(@"rEZqq+ki.a<Aa=PO7Nq^@0EVRE#g)Ws:"%'o8`n@rUBl"O`G9T9*M)I9lB^K[;$/TXeN'R+O<YYQmLQ,]kW)crb]Z.*EA/'t>m3nJ3-.65Xiu;oOfh`F\4fc!XtW,iQ0C6'!(1%35K8S&FOGH5!u.Rem.QH])%\shLY:>Y"g[%J@neM0tRL-*risQ.XR%3+mK1A4ima54^nJW$,Y:;@,MCqSr"=r'I_-^D5^Mg3eF<`%Nc7LC%RUq[G*rC^VW:Z,d6\DtOKCqT[:"aNJjRD(QVl^XfCX/s(KGh&gD;M]lkSS9g*D^#T7CSg+l+H))r4:R+^Fi%#"tSbNYYu+%=KR.O!2D/[1I`/`,_1Pgpd6i[6(5]0=H)n&H]6:'V+\uXmVS-Z&uU[#>(jAAOC2hal=b):d3l<7BHI:V^*<s&0sX5%]4muR7Z%dp%!j51=i(%?q@mikJ90FBLF>QqB_nD=,T,>N!*dWdn:GWlUqifVKcjI>p$,3oY\:%ctRp:;l;hP_igt#TLZHoAE8]WbtJ;?c,Q'ioN%VS^MJU7j*j77?&oQ7lB+ng[QLIpsXCFSY<T_>b'j:WW)-AbP-8_^9C0JK!HNW"ufX*E1o<R/>l^^&j3@"YRW$:uNjZ!,tMPJaGqj%F<F881`U4_C+Q(.c:Vc'FNb@9@Aj3d@iD%:&cJF80f`cq-`R!1'I/hf#(WV?eqX6NK^3?koHCafL<ZFSmo4h!A633"9s3HRjCi]I%&\_F8=ULo\*9eKW$uQp,O,P?[o]N"[BBg[`$%4Ic'mPZ/`B^HHKTs2=7)ZtfKPuP/_MN5j87RY#P$\nJ"rnPI,"fDq";qF0-ehOr%$q$7p@R+?[aldZ!0Fi5Wk]$'m(t#06)sP0#X2Kp_U5=g5U;\I<%T3NWYoTMJM\foe)qU(tVP6fQ;+3B?q8@117YTV?A(fePLg1'^%Z&MAVq4.Idi,+,q:3;nDOX!]+/XHQ;&C?&o;iD4*A*,aKPn<52GTh^;HT#H'@@^1,4ou@QZ<4bsb5PjQ0e)MsP'ABt6jR_"MN5!n%m]qn>^6KQ><,VH*.:C54i1DWkNa+ng7&%r1hh*;U0`6GUMndY5?E@3.)_X;_68tB-F<+/u[NU06BQ$K35IbS:H3B%U4_Ru]r!,6J%lm6[>)3bqGf0UB].&&]4?F2!EMYd[Q/$kTYcOe/]U/!Deo(;Mli@d[/\ZfV%a:?5nbm!O'H6,]40nrG^k\El4Le,!RlL?RFX@NnF%FlJ5@OuH6!i(q>OGa+d>9aVFLbr(qT+DUPhBX.XRQ,.L8A[-''H&8_tD2*^#VHH'b2NeM:GU`"f+Gp073s\E<n<"P"0Ba\'ia])^%!MQ)3+16pHa%0<66F1e@5`)R:0qr*&?7*4tIBNO;hXZA/k@"#hA-PEH;LBtaJo@O-(4iJ3L^&G@LT/`*1:o0i&jK+m7i/9]jBS0T%Qo[ucXH\$!%Lc4/@l+26+BNAg2ds\soPQF+^i=0L5u&MuZ49Vqm,!LcFV?:0Jl9_TTfD^Iduh^JO"dih!&fmt^JXH%PZ5GN@O#m6%Pa3;qV;it5hrfl!,0,ZeZ<^c'!d4Vk'gac%/fu0Me<^a4ORi!_Wl1.BL^kZoVhhcuV4WOdgpU*T"%,/>,GNM.;lTpR-8HoFN+`OE%FHVG\,ae]4=>\l2JpfI-TU'S6C2Ae/lE<H=`jg?qO_J6EMZB1Gkb-$lmSVfc6L)kdGR\+d",R3u+d?hs$FcerC...Hek?W<0'aE#%##m<9f`B[U%GX?MO<-cgP8Y$cfX2_ELK[GG&>dhLi'Ab"59G8i^E/=PjkR`[%9B^uT%*)AC(j<JFe9duHn3op+AY&"TEgG;"o"8'%2lEcr.EIeIfO3m(g2CAq>`(9-W$2\Mf*kl\KHjRe3],npI5i0eV27\#'PO?8`.ZIUImE$P`(12bc;_j&Of4PlQ;W`n53DGW3Ul]q%iKJl="fee98BESC!&p;c&@<#h$oHi!%Q+PC3Y\5+Jnt#f^.pB*V',Uj_+T@B`R&`WW?a`B;GIBeiJ;MBO`g`VVB',N'?B9\0bVb\%h?u$6>XrlsW]C[-3<jmJ\C_B0*=30\(^V\Z+F!m$Wre>D0Em0h1UE"U-,]>/&WbJa!7XRG+FF[?'Pb5\#S[tfs,GK^&)3B8>!J9,%XRkg%BNMGOE&%Ape1O,lL?sT/;A=A7!BYt/2?HB91P0%d^m)[,"?/'P3._aq$9/)[E&5>A7/3&NcQ-UOH.?uGION4CndVCZVLX3*%IE(UJ`^@Yj9Xkehj+5ST53E#n!MaXDGl]OK&V94Ud/]5%cghBpTDMp]2A"">P7rq<]>8s5Jd=8d8c'RH)V@rZ*fQ\F`eP^A.E4,0%iL\NW1V:gb<sCtu@J+Ll2!f7QZq49W!]CJTc4'Y0,b*`''cdVR5p@8<G6-*XKQ'7C4,@'/iigjgK??THN+^jDhC2)7g^#D5eQ#2]%1-o-<19*OsSDif9ll28@7cBiajoE8]9'cWI0pa1)SBA]>*.oeAQVbhq3Ec!=RQhaMISfjY#.PcX0m+U=(p4`\Z%$"Q_1e[(;m8.g%"IX=EZlVTPJnGiDJml$H:MQV-=&&r&?YU_F82.st_aqV9b2l<)%NHoq:\B[%cb[]u)EP4B=(00r%:@_<4b2u+Y\cer`#)rZl:bD/%K"1lQ-s'f^W9,)6`Y%*^@5+>qQJL*Gbp>Vt4<bQ9q[P0mBIJc\gB&Lh"<a`^qWJD!Q<)aB1:_@CW3%Wpf.b$`#oHPGWu5C&?bh#o%`Ihnr[0Ro@RThu-?a-f,,6MM<fIk(Mf$I,NA@b7Um*IU,Z<h`2hbh`J49df7(8_kH&&2_*-+*ug_Hg*Wb&+CjTtX7C4&C?eFC^lf%qiL.nhJQ!B?5N*g-mcsp@_,[W)rP'KT?%@E%[ctj/ZLOQ,`OmSK.Nm.+D_@0;'84?5L]=KAdF%/cj0Xeajm]"C*4s)-C(ii%u,EE%aUlGMgRReJ5g<[["+1q)#!m<F$m3SsIAR<"6UT-8Q2%WK!lN/N9dYXM`AOP[`lH,W14^Pa8`g"<WZ#]M`U`SqmL>8%RB32VmXh-X%WP4on+3br`=>5ET7mZAGU'b<1mLrK\U0T)Z9I;&rE,%1n_lu/.MTSO6Oit:gN!`>Y%Zkn&9W7EEJKR*Dkt\rC2)m"Ze3^]Lf2*NU%gX5dp5Bp7-!Z:lWNPWlJ'uLbP<<-If/?TN;j;SH2&CD[H0WAH8Z*]c*XQ88`LY;dkgdCl;[]iqc_a1BF+CE05hR67COA7tDg,)p7%;1+FO`pY!)Y]"_D,t_E75c`N<]50c^_Mic^J+P>*OTAu*7Rc+UV(s:VGmCsUYUPMA^o`;sp]`CR;BnmKfhdlI%"I@ZZ7-%sTITF2%%0pK3P%$T57tFAqRkRat$okC72F9dR5CkoDQ`l/W5ZCDu_Ogng`e1J-X7(nJSf:FE<D#D^mr'NFSZ,Kh8ki++dSu;'VtHG6?(KKE%L@XqM.!N/1;iP>?qV9?n7b>LQYC>9[LAJI2O1Y3]<'R8F`kSZogs,,X]('Pb'mFg^IhF?mcG&Hhd3A#D\cB.aE_!"_NWdC^rqREO%9L#&la>fO`PdHlu(C_KjN_lG5LImaZCd#$A7BIq;Uh#:2=d>^<k"1i;fs;'S^pp!B3uOo(i=?Uf=<lst;)j?q=Z#suR[/?PJ?D=.%*MRDu&!Q9_f_Y&M>kGVBV/t$nr-_=*&5fq6O6E&<oeW?B/IbEdj)=-peA^=ndc<dpZCXN+r!cA[3qteJg>-V'[)JNS2FN1m+9%Q9%Vu-JZ>+D,?^TPW)+T@ZRGB^A8a"2iF3oFK\%QC'C#o=UYo]V&RWZGG+6^0`[`t3Ah?nqp#^(I,Tgu6J9;#:C4GsLnp+,6_CJe^&6%r6_W(7/`;k"r+ibUUnXp7Q#/'W>qcRaq&th3M[*?6p6bVrj%,(O=C>^UAXL>PXOeGLmf_Vr+/<:`*Dcfj\8FL*;QN%h\.%\22Yi-%UtgH`.?q-%-W;I*HOhNi,#(e+<o2p`-2^cMY![;*3T("n-LK\6qPGsZ!KC$DIR*'9na\bRGf)@6qI,3J.Em'&qih1:TRR;VrdY26%ioPC[FoR\p\bpVhp[r\aZ]a9t_)(t)5-mj]?-^q-eW9a064*]XX`c4iQLD<6[g*!r?24$XA\3)X[RX\a2k)*KL3^dgR!IA9?NU)c%TQ-b+HiO":XjS#e2*uN@/%<Zf[;KTk>6WBIZ+jki@RMe\XA#P,PhH(;<rYA9F?Ymg?,YL0A(qN.MHuGbjo2CLD/>8@>045*`K1?&%;%F)DV%5<:_'d_Rgi!2t>b^Q$<Ol=J7j"^6@2D;"*g\srDQT@)a1m%.)qus(U=<k#bDj_C-e=g^er];1<S(>0LoAtFm8%T,qe?>b%$^YNsW@aLi:NsH)7mW6]bf-J"re*.Zs#1A_&,sNqIb\W:d`\E1NN]eK+"sCl%=,)OO1a%=IBp!SOUmKNF6E"gWJ7a6YB;WXZQ]>J%5Pn>Aa7)t??^UNAN(oLPrWDW^;j6RKIsu@"n+$Si47?oh_FJR$b8DaS6u>opN3f%:Ipf.>1H8Z4-.%p\rp&!m(f?h#N#\*s%3LlW%P^0`j9(L?YYUnh#_>J),4Gr$r!>E?k3MET;Pj50GaPQG7O$;2bj.u-(@&7sN&)dJ\A?#m2<cKIF8S@%dI9?@F)>/^Wcjq*AiYN+'%V4SWm%Nnq3$&/KFBJ)s\FqOW+0`8_;7,T/VO!!3r+oS//n5944UXko;IaMp1dDA,4oSN^QdK<gU%oAGJE_]37heM`JEe-k6QKeo:%f?dhYLO(I<%>[Wqn!:N+iin2uq>`K8p7ZlE=0KPKdr&0(lMV<s=(a;3#N]iQptI,4@d7eDJ-&4OcVZc?!5C1PlQ%j8Zr3o(NTY>"%YWp\)\DD/>Y86iaf^BIMJ3h0)$FM)FraDqW<[)N`r>6FZ?riBKQabJQ336D9rY2t51UeR0`qL1G><Fam,E7CY5=:Qk\enTV5U(Y(%;.+9Tp(gbtI)iLk;F`j+b9[,LE`%gB2)CGaMnKZ++D!\>]=(i-e6:DZIZ&\L6.a*u_.cKMa'Wr[Tt_5cD,&9Fg@rX)paIqe>!jpn%H_!Y%48fK1gbdGs@ZWo=.<k)]V&oPfiBQ@q&jNL1E-l-T4$U-0o*tA8j1"us*O^pQ7r+_dPTH6\(Th<!_h]Is)*K'oEPqgm,BMUW%Fr\htBK(]9#iJ]I]UO\Yg"gYKrJQS?Xe-a^n.^YPhr(DpbUN(lk"9,2<!-#W)tbP*?l#sQ>`C`!^?G7QBq=a,I;/@9'CO[*".k#D%O"']]@ct=o$)Yc#Rh&`<1ER[>T68b5pb"N=*2L@K`S.?f\l[Ya<bq)(&To.UB64h70/X4+eF(VSX0"*YYh-6K)P(dTQ>=K$]?s%3%&c>^'mn[$a%ThLFI[uaJ-i;o8&\`^r<?,:]r<F//h\2meJ]4-^etk"g#CL]^G+Z#AA#eK`"jE)1VJR3J!PqE;kh)2R3g&GiAYQ/Y%s8,ES^T3*-H@bPTh#KEH!'<5AmAHu_ccCC0Wr5o)T.5)0VA]RI%5.N..!S\@r[q:/rIn:$WnNM9`B-2rs"g[g3E>IE!p8kOVABGc%0Ql5J<Vp-+[?'cg-lXm`hG6$,?\JMV2>jG.5LoB)^@U4]F^2FT%KB1)5598$I]D@f=N.9.reD59CT?;gjic&cHRF?nGpj_L>NGBT%aue+LRd0X^X^(\6lM"lj<P)Wpq_j[(6S6E8U=iKDI]D<*Pl,a*hbWqBWKqa`>2HIDaIOgUGImG'0=:@M%=c;O>#QOB&$,L!<5kJe%Qm5&D^qo$HJ:JK(%XU>j$`a)!Fo:,t[esERr4if-8e8Pe%%sOVmUd+?D,5<PWK.!71>o-l5Lo;%MVd/<HKI$bs*o.P/b@Rsq5K*5%C)*X1r#\r.SZ.3*PqPYMQbF!\C]Gp5#XT'XT>'L;^BDilo]<'@s/V'E^TEqH?qCt::b`#H4L"r`D<Rsf5?7<)8iAe3o;?@&<8"mq%:u=A,"A[MF?YSX#n/#:(WL?%\(%3gfkC5tIGGfcd<59L@aL;5o!M.='/AniE7)5<BqS0Ulq:dCqQKc7ep=0(`IV;MQebuJY5?7H-%>&HH&pSUX@O*Cia?cTQ9eb8HPiQZ(Gri`NmHW-jAO"1%`<8!n$QQsFAO<R'8[8<C#][.$?j>h2GE2r"!^1-3mWoSr$Ba66oUaY>;%Wo[$ar*P$b:UU,"Q9Wpjmnuk6INd>2<6`2$PrF2dQ(P)PUI$c6:Al9ao9BUN1[+XY_/B6(A\g54e&lK$]Oh,#.e$5LEL-KkEKEc&%7qsK%Pa,$\JGOKCL\5#YO)F&O%;;eHX0mB\(,@`^rhMTTmhuriUn/ZS!QJ%4L1OM$4>B!3["bTJeF0N1:5stBTWq>\@KcJ1*7$<$%bks2Tcj]Af,QI`I6?C8;=pKOXlel^-H`*1GWI8H5A\m<uq5`JB59WE./=DN6RZPL)gMRjY"E#geQ4\@+Zh5aE[kHj8FcD/[O0!&[%aMd@NU"sC+1XF7(Mgi9<q[""QImG(PMaiID\,ZB<b3Z<RAkauT0%h<0PF8N</t'E]Sp].uIV(c[RfC=BrSQ63[p75jYF/DM:Z.W8%^EMqP;sat]kM?gN#V5r4fF^K%RLS$V/h#k>1YCYa)#Br[#eh8We0:>1?U#:P#1f$0[/[(Kn),Tq/U,\dB,ss[cO,["o0G`16Msu\%VSc+7BgHGWF3/I:/jJEW$JX<d>?!gfiORWglMp:UDL]4.rkCeuWBCK9LYd[>[CZA7IK4kIM>hD/hbj:JO5TIro_co4\$"k-Y$17[%@EM8Hf1XVm",HPdq#./jJ,bYglG&L)GEkF_3NQLC_!:K6.dR'ZZL72AB"Z[.H/(!\H5GsdF+=ke?Uia)A'[oiHh:;0jiN-q?bNTg%-9M'(rE*nqR2MC9+Bg_K6G$1"ob&%FDS'9Df?T8]bAJp);mZG)pAF9M5=dpLWm,s9lE,\^^")<?;9N:Bge^^<j\!;D*VRoKFa93M%6cXt*lRa$5Ap.H@ibo'/n3$CGdkF\7*RqZc)NQEAj%9/=,P@e[s"--dB%'GIh/1]R4V2j"rB'/<6dJNe[0,RsIiWfX;U8*]I`uI5%WkEW*S(sPjjnr'&s1=iuUT8FCrPqlNqFQ^mY@Im2J$+9#Hi32e4C&fCDS)*pD4A*hi&CLHjIMEXI'O^/Q4)`Qh>KR&'UF+e*7F8>%.rc0e][7WV@HQI8Y[40RNPDOBlf,N^IAKreh<Xn3OMB>WrIbm8.G(g8:Kj8IDS!<`^YbXs^/rhT9r%_C`XIpnbt^V^_t:B%e8%+^%;*QnmPh,IlSa(Z?0XJ=Wn8,F2c#rpY\fO[QTU`]3[gp!LFhMpcbn<$D;nMlk$*[%ka$C]8A'aYjh"sJ3CJSXLn@]oP/`-25daX\;%$Kd3!@"3fl:78YFgrnaVQ^\lI0\jlfGj`nG1_CcbQE]MX@H$D7(03EU0dcJGi$n/8qMD\86XCQ!6O.m"&+[9Y"N4qbk%0>1&:]gF%gf7]$?Whg7%2X3nC^C4;Ti>F]^p;o,DdBms"#g\cl0*Kc]\S*Ur]_60jgkZ6.b2]?.s8!/WHP6Nm7@c:S]h+>Wqg\9Kg1jP8F+gE%Dq(9Qc)tXg^3@app%tH:H07-jp^NWr[gR]5(t>ME,8gA*4OM,kjef$LVdd2DSs_`GQG:saJ\P[7*r^W#\,-f>AA`k$c-6.>Cp_^<%=f'DelfU3Tdf39F28o(#e&<@"+)=leW]-s6>)V**plt[`s4./+WR7njO'96'DrkkT2&6uADu-Tk\<43bmu:uc<`s1W,O$NRqF,%p%7Fp/H-DgekVE2iC8B]!Pp:JW9Xf<;<3Pi2(c#H_K^Vl2CrVPTVmqDOsk"M.PB4@V(YF!QS[7N:UXfM:K*V>V8'-D@1qB,0>pq4aD%YMX6s\")fWgP7;m15LX'kG][al$!!Fc\3:\:Ge<niKX$grqM=gj8\lkoG[DFYKi&CG:@Jn?W>u]TDEu!`VodCF'a(4Z9n;oDu"IK%NV["3M\Un<:1-,lIE`l,.OI12qF03/^\oY2$Ii-[_/3P%<NBJ59u>+sbQ%@L`4.YhK?i5",nK@n0)GJ$3e_%uqItT.quh4.1;0IV%9t+$DK)sq+ptma,R2JA@NR(_AgqBf^Ps>>XKALckP,07Jk!,/GG7HO?9'pN&4R,b_^\FP[W/YYapss]U?X?Gss8(C8nF`[6W:q[N%:j(7eG4CRHQs6\<?E7r[$4#BF/ES4M2Xne;re]Yg,k)E,RYp&u[&)fbs76a?^NQ/cqm'Glp$1E]>.6okTDZuOGPZH<s-^qH(2Ngi%Ze>X1r4`R5C_O[Wcos\9(WK\ZjI<I*hYX!B9=Fj,Unh4ubC@bZOd%-jld>2N6PnP(18`pI+92!FR^IU46C\#335WEjNX&SX?;5J(%@ZBnddoeGlN7a?G\a@g>UEL\`P?PF#bMMD,C3k%GTp*$(BiQRj^6O$X_``>NE<b4:1bojV39RDI2q'AQqR(57)u9?UbDgPCP%HAH%8(op#7_MgFoP8sM;ch%rQ9>Xul&BUdC",548fJ25IqH:"9D+:R4OI"bBW_06Q>(iLFZ\M]lj]!1bfK]olFjWP[[&oY7mH0lX59VE%LYR'?frOeK15@h>I)%Lm2>,me,^GI;rjpX_>cUZG>^"j\*OZ=nM9bj6qAn*oI.rq5WA&su\Xg%[R?d6@hg.0/dnAu:Y3j6_QFm+e%G.CgWP6e=';gmiRUeNKKh?U/IQ32kq;/NF;\$n9oO`%cT1Yb#nh9ntJ`.;`[A$n$IS(2i"HsVj:Ij6uSAk'D!(&,B*A9Q.ubFA'6%/T];,aO3)R+d?Zd_/Xikb!]jNp8up(,Puqn<it79@k7@0G(,4[YbX34Nk1j>r+g!Y_U\`GST;-,g4@LhmlE<B]hZ23C8FDTMsX#,%n`\JhG\&-+W838IrS2QCGLLKrXZFN:_G$l_;'4/c2fBVrB`"5CQYuTm-09rX>2sn=Y@_RZ>q%^?<dOQ<0UY;;<UZu2[u9dBnXklY%P5oMqDM1?ch8seTAI;BVGeon<kWi=FJc>tCAqk/)^7@!lE63;4hm,%=(bUMKkZe$K4I373--,^abDu8rO%@#?)J<jo+-k\n$GZe*%gR0$Wgk[Dkj_lBsl#s,U\5<=mgV&6u05YpIBCb0,2))2aLj*%MH%9Of^jZGa=uG*H)2pLj_$3,)(M2`]@CYQ32o0"J!.XW@2D^B8%*p[C3CGEhl-@;$N(Ph5Db_JFXS/FDNj1gIs;8&t(=>.L>E";q/F*)JPd;Dq6WK$[IC,<Nje^BH+k8Kd(D`VVYE19=,ak*]<hs-u^%H$[V4;`24MhsMj\Z.g=W05>frDg<#b*m=>PVg)W$l\D&=L2W\gT(;m/;sr"2EQ^_pYf4?D+X8SK9_+:1hV"[UG5-eaEB3tk\Y%QM%:tgKF*H1P\<W@-u;G/rp;f>[jJ+QW+NO>_*71@uP5Cu*Jda*Z\lhU)-Y&48QYAeS?C^$!hNf.hk$hZXEZZ3uA5O+I`8niP,<qgjN%eLrj.IRNE=I<E[O_q$dB!4%QsEX/c7KVX"M.lNlfrqAa]d?nHr[b;9o.5Tk[:%/pWJW8F'c#GDpX&?X)=c9<o[sn(V<Y&8e2B9Gb%:!`Q^bB*tr&7*>EQoQM<e^I6LE>)[5LeX-%=NureihP[#\drhp!?klo<7f7<f$32PnE<6Eq.HV]m=Q7O:P75mnr6hT$GO0:8Dd2A%Ghh_Gr9Y%*9^GjJjPFXYQ0s!$leF=Cn_G.22NMaofYacZZ]74F/T*U/4o(6%Dmd9J7_c*J?'4a`Fknb#C.G:@VVXZ,\D=4/Eo!mB%=;`F*O3oiE$5Bp;q6Rk/pgID6NuJY7.;9"0*$q,9>7M8q27;;(jSlI=*Md2CeD>kY9FjGS-A]P6&8H@PLF,m32@kfpSHEUhH4gG:%m^%c1-uS%#cP8=,Gd=:DO3SM(Fo-::Z:0IQ/4[/*jj%H/HKcCZ5l9PMl)%N\B,JsI#b:F,#FY=2#>4ZA+F*S1`1.@NW7Pr=<N.M(%n?i:gQYt'm,&>o"VO_J.?*,tf'+^d8]rb(f:"0VH*K?2K^.rkY7Im:0@Tnu'm'kXNiJ,YQQJG(3n6KgW>7-!REONeP6/+WXM"u=#%Z`@'3JZ8Rq5$(\9X'`<XK9iW]6X7]R%YGVM,;tL+3leZZpWi+'B"9_3.CJCMReR(j<uTnk9"P7`:gdcN1K8%e)>ADD?&N4HG,n8.%0N3aTLtn54GbI*\jGlZ`Rrg0n,6i(kJ[_Wk2ThSeWsRO/)a-)i'"&M-=iML%Ce*Y8>/W-ieH5CeZ&[]ME2CJG3&FXu()V$B4DX"C%46efT>8Q[2RWW+c::E&Ko@A2tgD_r68OaV<K*`H3L+kpJ(e^6hFdsn*,F^X8h<SBfe.X[iURn,qCt'-*:9h*U27[DnQ`?$?pS'en%_^@M4/V-<DIe^0@gfm[h%f?fgB,`e*``rGq=mDke$/Y-g>$at@FAt?a3=0oQR!.P,);Sf3g?g34W]=n8Z'kAjHG.^EXu)K`&Q<Cm%+33W?L2BUN)a30FL*80(qR+\)mqU]<k/[oa`YA>iA?0q\jI?it'K<"'cG+"L?);Uc7n>T.?mJ^1\Q9GlC"07g9,ug))2(KC&fSeN%iDrS[C$>Kuim;P$^O(8'je1>s`=TpT8[h$F'^=r7G%3-CC=Hrs^5ps/fV[*^NLNMiVI+7T-f@P@hNN?F0l<#AhKD8.Kc:L@1,5lK%Opl3V]/c4]ZA1697c]jR_91%8EGTHT<pd14q*[]Xc5%RoNG6iq.qkt$crnf`or;9!F^lKPTrjItfH2I>-oRI^@?4l_NVXKs:c2p1%.V$C!CsX-ml.DYT1Qd]dH>`Z&-*DXEWf1EffVmS?M'$\1X4t.cin;_^S9qqk[$5i74'0RE\Z_C\LUj0=qZe5*1Z,92arg-NR(tmZ%"&Ni"O/oaa^fC*kK%V@r%5WVX]LcD>`^mN9Gi2JZR\YNB#&GSQ<WBh,@7LYtUG7'@iiU?pS'gG8!$kim?!NCM%FD2#?101!V)@E+%L1X`1>IqKdI*GdL*88OH@rEI>/Jnc##r9'd472WV-)`2XIeYB$>tJdn>"IN]NHc-0P0A@[(+nrB\n*&JhJY=k2lIe)]9t`9J\[To%'ME(PQn:_#l)T%/o=,&"g9#P[WnVFBMX<W3P[4'Y0%SaMP-mDE[6@4Jfj)#d8%X+r(s*u^?7A_f3H`61Qi"DVmkmsp/8H)\Q3Xn1%jmUSFdDVP:Dp,!K@q3d('S><7p@,O$K\hY.0eUZ5+ci*=GjWQU*BW3/9@G+,n^:X:YagPn;/F='FW2?^PC)6cd3c^l!kg8VZ@d=q%/gB-XWF=e*Wo6HGhFq3?!(j6;UPR3oja+D<bcuKP-lsEck+JBTE_e-ha+FEa_k)[p*H(>;/_nCOJ?diN3ptRg0Ha5U7i5@Vc/6Gs%V;j)F!&Ei!)5Yho==)/_`'O+;<NVPNOXmfoaoL&30H";i0]SRA%t5a*-M8Q';n%GJV`qhgLQ<amrSG91FO\!h;9Q+1/GKAR6%*&@%hGq6X5rgZ;]pM[#e^(_S*,#+bkbh>%eBuT?c8<]=fQRVa.sEDk!B+$JVK)j8h/3tT\/Fs.n"mLmq7BKKDI5f,WV8/,X_Y]Y=rMBP%aGs4?=1\(MX[enAS(qj8eS8XT,GdQ%Z`3$Z6hm*ANe\O3Rapss=',6Lp`U\5/:9i;0qOBb>P'XuO;-I*f&jSQH;J]M#@-o]Y?g.2%\aC<Z;&UP-0&n>B2Em8T`keq3">FX<$QWU11s]CfH=MP>;AVa>Vf1`M]5](VB[3@)WtP8)lErkK"Yf10pEQH\2oR$^)j'RS\"40:%[j4&:`d[1I!9`kg!IStZ*Z0)fNr%j<<JU;(-8Z-8fQ#6a]%1Acr%57(38W^AUK7+]V_d2>023<+m/(>!Y/lYY#/*U0]MS#m!,oP/%rYUU+aQ#tXf#rI)`r2Ue\6W+<Y@#dJ6#sufFs(IXQ7%0tDNGJ4eF2J\NgAVDKXQ[k`4XQ5l"blAq/He^1Cc>/[)b1W:cg^B@(9cs%S;*7Loh`i[jEVD2KiN&c"Xn'/O1!+bGlQ'qrC?;mf%rN;]NTcr\77bWcfR0t>Ks46bLX@td_3W1a+\hbWV=bdrI!(@Yd3eFCOONS%[^,ehn_Qb0VW*q#XhA,nFIWSjd49Yp?7m-,2c`-p4kWqAm.<2^0<F9'fo=P<HX1?me'DAbJ$lnnk1#Cuor%,@imQ98bCNa^<_q9C%r*jA``IGAI07N_aGMZmIF3XDr0=QAZ^KOb6*o*!;cGMU:09+"jAnHr;`m4D,c5ui@Kn&[YrJ00J@Hh=p9B5D?5&RH-QTf;goTkpR%`PpN"dbImr@V-B'X7TO8_W&PT2h&KGd<N9DOh^/tY5EKU@QH\;.TXdLY8_9'*l"Cte<#$2:R@^-lJEY2/T+Y!n)^mlQ\W,Hm"6(5%iGH,O1G]u!R9QV+<npbtKe)>&FY,Of5?c.C>l;7=;0`#M<2eV8=[1SbE4&lKPcs''l3j't]3"W:do\7"h>5%8/+l\"eU1m#g#Hmm%iPSB-pZU"+)#sNRlHYYX1[D07I,)fN.Z^&,:\RnVrT8m5Fl-Qo?.c]*A_UJ"?86S`Q/YR-6qs0N\E:Q2NTs-LYZt5pC[O?Vb:_B:%%KE(m?Z<S<]2@3eHgkWg0m%bW?+/X;&(^\GqpWF98bN%>FoL;DG.ZV"<?JU94a@$#o%n`R]kYAGXllnN]e"*HPNo;ZIXJA$>V<3C%.c"<Rf7g\YnA?X?"e3`[)X$k(*W5Ycp!OcYgY/.A(Y$+%\G;ORZVIW>[<:@F$g[,JMcTB$j\tU1c-s)NlBdj0E$b1-<IamkQf"MU%j`g=s5"5W.kFN_]URHflpKkRYL/Y4-dq=^8cMLM]*>cIA'JGbZI,-??+$[trkHA6p4YND/kDl_qrS56,b$OMgZIS7'r/[`de2,X!%Rr:MU]?sPF]/Hog5@$dM"c]AHF'5`rG4FR*Z\n@R\h25]X?Tg86Rr:&ccg9uR0tBfkNu#YUYEJ.mB#ZfH%mg`\Fm#&(@TB)6G=Ih%8l'$h_rL>@o0`ro?-UTr/j-h8.hs"8hUlgLe:2<QFm<Vq4)]&=*r#-dNd(=YK2\1Aak48L_S>Kp"5:$>@pbSf\b&#?*/:lLgnW/B%iQ=60[s;km4Xnsnh*n)^n8qY@KVh+4`pQmqCraKM[[-ksJs6%?WOVoG0@SUP"V$L+2IGP=5NVW3Ko;M;0OL>O98.-P'Ue-G2;$&1%]Vf\B^:jO6ds(WN`t+c=`\93L7T%nnDI(T>e>loX!Jdq>Mj66g_9o.7<Rec8p:!*Wcbj^1eTmROOk&i*qk?pUeNMiVg%Pa&r.FD"%d9!I$<ZX-K8NrZ"mBsFmFQ_J?]_(cIia]FnFa!N$<r]8TbT2,g.5'5EcBY>\MoX/Wh!n_JEoZ5*]3O%u?G2nt?!B!@5Nq@qCbE/'%>,=aGb$2:92rSB1qWfAO!?R=lR2GOjpQ'M5H[PZLGM)+AM77h3I]h>\A&ggHHErc^EI--'R>nIjq>G-ifRL88f_p,4-E`:TO,=aa%a.Eug^gX3a2Lk0&5==tr<_XS`pH8+!Y<Ml5S[`BC:Hq^CkZ3%On[S-hc/Pc_l<qAT\?Pt^ZglZ&dGdWr:p7X6_Pc4B-HF(A0:lfL%CRa`SrX.P'q4pI(O7tPEo8Oc#$.eBiF?]Z]=oF2`EH8e[+$AFB1s\D"cIn9H4l!F,++>],>D:lBppYCR`Qb;Mm<n#`\N!Z8VJ5?P%ZcQjY-.:_t4>=_U5)=]78%[>&q"6("X^=m)>+W=JX^t/>Rk5[bBC@mNct#l@A7uI+U4-)`)SM++Tsqi7P$Mnf_6</P<j;sijoC0i%@o2'WqT7,]i%sVM@8JX>a$<kJcD%dU([3B#+V/oKrlHr#4WYms';&E]?h#qD78ld;@;n&]Xio6rH4#[O54r.2@c%eMhYPm$STl;U%b:k`A=pTEY-7e@#56L't3?:ocX.hh`/,eV4BFH]'agG@q[cPL]#n7dP9n*nk2#<F0f[,U4_7"m6]DAS&XchPIoIV:8lR@62SfF/Y%VpRFjj8EDMRQ@E(Z[)tNVERr)a\&jsB?AO8U1a#Je4Y'mU2q.*0o8n9O*3*5L7-*l3@_(UKEmrkcmGT-.H*Bu\!'R0C^ahJ$Vn69%I@*O\p\HQJLnCQ*k)X@H>S*@/2>mRrj.R9VoDA<$2#[8DIIC_268@s_2W&jiY*D)]\9t!gaqpVuKonG\H-n*YR-+(cm+1OSR@4e5%cATdk2m6iF8n\+_-QB,+_7bQIPIJm".a(#7M%_VC+KZs/gSp_PM?/Pel3^jRWFfb@'UBP\n$*N(k226LVYntg];;$GrGW#7JE-qe%TRnjR)mjetIl"]]i=oW]qs),WP!?#/%U2H,F%?2rk2sPKnm(b;7VO*;m>+Y[3$0SVoRcK)a'WobL&:tm0J$Ke',.,t:lrPW?Q'S9%r7/sU_jpa8kHMJFII_Yc#<DPSa6hZ?2m8I9bThHtHbItaYB="?g\(.&gA\=PFbcg`]#/d;!Mg+N*M>4GJ,QYGU3Q4.GI1U>Gd#'J%c*%;6[r(I1qshhU86'>82QdHW3tsl<2!h]^rDN1/S$PH[Mmp?Fd@@mLo'I)hc,ofph`n3N@;smj5%68?W:;V-9'p0Wm!$l/]I2DS%Y[4udc9J'?]X$-R.m\%PET(Zk['3eBJ%EL4Q(4b*/on)&rDG(BKG>SeYJJ%rS::-/qZ.NEG%o:ok)9a[PZ%$bSb@>N!"PSZP\(NL%s%2H>2ULs)p7e3DW4Gh%I't(3[ncl0V2fItL:-.0V7V.uDuN*r8YJ;U.Bi^JWd+&[@8$.T;ULr:DUJhZ9bm)HO;QTI[7AiDcBVc5%o^U%UdUqh-ZS`[["((r6`J;Y*"2D.RPCI_ZTt]Wqq2uKjS($'GX-Z=(V;cl&IY]n/qiTiEhjbc*]._GkOcGs?3EYaQe[cHt529@F%=Pl/$PF_Ad8Zgq!Mu<8)JeIG]/tt/6!g]-Jq.o<\^$#]<#V];Zc%Z7ca@hofGEK:#Bm`;)IFiBa8a0gak]W7u/Nc*DJ!Cfiq\uRh%:@B_+n`jGdn,;%h<qVASQ`",)j7U(sf)Sn1l.h7uK.V:u5:A_hm&G8^M]BH/9NAdf;d"6_gtOsWR-,EhY9,F:N+A7/\A*?0F7:K"%r479U?Ehj38fos-24E]2c(3;fN1&A';/0Hsg+fIBGq>jPhV!R[f8a&La.H_VnoBeKk>(F.f$bQW#b9aE[?F8T#E@83d=#XZXIjrh%1>(Ui>(3R-h:Uu:n"*hDI&_<lpNCG398D'a`lcIXfD:@cp?n8N"Z?gic'RgFD:a]hDc\l.4s/CBYA0[n_gM0&E*L;ZbX(,KFlAdu%o$.,UFc.OKO-`Ujs2KMcVY[O+\a[PLLtu1\^4WQK4ac`VfN<Fj[D$tWr;:SFj_ZI''le'<h8AiP=hM#k(/MX,fQZ]Mk*F#WdaS(.%[=7RFMm^k0/rC>!K3dX@d&c5bj1Y?;li!$em]j@eSitjk1KklY(WXLQRG#j(p>/Nhh8m:eX;j(Z;rSEo-80#8'giH!qn;*X-b89n%%60)NG&ZqdEuWqOG`t3K>lM62rtJ_:'n>gCX\2@#U$Lq,ZJ%%F:R$D#iH=C$okHMc;JZ5H;_@S%]oB5A.^eIF=K@orE8J-117t0i%1/0@*P/iS)Ia+2@g>RGE-hD_0gPWShpF?[JAN&FZ)Ad/'>efm]=8#EK<]d!8phALnej["=K3.Ff,9('TQ"p!ilX5p#fqK(mHX&&M%]^+?mZ#&PA_1TP-(;JEZ<q]lXE5?!'AmcFKJ)Y2(m<`thML2nOj,L6pHfIDq:k-(.gK5oLQG$qfgTA?9_T=Sc*I<+JphTQFqr2e\%n0%24Z2+P1s67?_Fa4h-8om)?G/NJb8pqJ,GnHCm7XO*r^3H$W-sf+4kkH[!V1K>8l;+.W;!N\Y/o#7UFRRiD+3pIomU"X1?[gTu%9&;D1i:t^;UXIhJ7n;kA(-ZP`qU2R?%<?DO\,)TWq'U5>ZR^A1pA<Y8nY:Gfc15[TGIu%!.c(rQ`.[6u%jO!Ro*;*Ym\:C,2n%Tn%5#toNG.#SV7N5[s2NMp.G^()eTCYeMOa1GI'=\=jTIS3!>DpO*4B#G9n]A-'NOAH))g,4?>/m<\?.AGsO8D"akOec>k>+<%O!jd%%(@r0PbUn6n[p3jd<9hM94+?V1NAfRH4(.ARTBk2AP`"r_N4N+GK6o7Eo;;ilgl#+;)LL_t(GDi.C,9+Rq^g7<jqO0>^V5[%0/;GZ%k:8K7;RQ7N)",8ap6Xc-\C2jt5H2t`]:Z]NV-Kd<+3gLYrM!=7>^7hQ$d0WL04(_3PGi*,3m*aHc&9-\9()2_/EiQ``VGR]]r.^^%HJY.Y\AdiU@s3D&1_/ZugjD3e?Fj*`Z$jB[\7P42XY&BLS<c'lrg?s]ep6N:P=8ELYcm#Rcr)73riD.=ZQRi$rFBf;PY;&/s!5=Z%NS1-%N@//B1q2;bKi]@&4t%-Vp5VbO*ChiN2mpg<49*T_c6A04lJEcd$[m7[s6)`lVuH:8@kG;L5P-PSkg:._Ma+.0S+bbXHZ5Ns%k45]7kBc;5JWZ>aaYJ1#mr/H[_9JR3I*9oThO;2=*nl>DGc(luo8?lNCB$k1EuK7#ESHDk2g44sj842q!l.uB`U_F-LTT73O+H"<%f/KtSrS>ml[JCgQ;%u;<--43b`a3Y!s(X-oCY-8=G3R-HU8PpPB3(uE)\$mIY1CJ4$+o-.S_*BbNLM&^=f'ZfqiLqEYfGbTG,KX`%RX;:S`YTNelDkF+i.jeike(t&g7m]b^W\Y*#@Cr'd`1n(=#lPnrISs5A$;0reQ;VQ\YGYGf&28AG)P,"H;@gNq5,'=_^g/lRghk\%!;e9^LMFj&Wk/dr0=T":6.fMHCnA,.B5_L.r92DGc1:&bqt]BkUY#`%HRpLl4F?m)X`Q_g[nh,^4*Ld6$5^k(R9IPl:VJ<@Hi'Yp%aN-Q[F<A7L4hBn-o$0s9Bf\l8Np5WWUcB5>%_B%#aFF#+YYj2Y^?QMYk2o:o#2LW@;6Ec6U1gpeJ$aW"hRmp)V"$b0Fa'2Ub@5;^%5o'+L@d_d11Nc&cRV&'1n(dPpmIsh#WUmp_U'-_'n]K$Nk;T6`T<'C+0j?`gho3(QdonrTro'Br4Nn_qn($OhG-6)[W:Rgj^Z[m6%SMc_!'5sk">.dh8d<jlVHs/K2J'^N.?0qBQXTS^'S9#`9DMRAD(X'?sX4N-2!@?*0Qeu]Qk25#K^=`8V[9-Z1F?`q_PkdO*lAE=>%./*1>fipJoIl-E=n8,%fX67f%BDmnEd`1>$ERG`fiB\Us,Ds<g\sbR`=+P\Timu\mi:t4Pq/Pgsn^;hb:N8&4\:eMZ>FP=$0?GQD%`QTmE+:D9>f=mPk#905!^"uIFBc?WVY@`#]X;&h/`@(??MSEbAei)DkCi=([,W7Y\-iU%IG>gL<A=)_:/S#7B(=(RK49,*IoArm?%-AQK\=%_IsS1U%1\NP(b*ma#Q=4a`/TVQnH<"/3Yk-u<5D@ebf:1)i']CVk1`Q+u/`QK+-jPQ"?n1=1d^!7Y,G<^H??g"WQ.Po:g%rpe_1k2OFode>o*)&[(,ZII_-Trr!DrTfZ<iq_?_TfR&VcaQZq3hMO)lJj[0k4R`<Sa`Ufi7ZN\YP[V\1F;l[;_7daf/sO7XJ=@I%\N]AX2=L3(F]k9bf8HJ.F&(uEY7;A,481@dp_QceNp3*^]u]/t:n$55=&OJ4`bLR"*kf1%'ee8_(XR7\e:,ZD4s,;tpiu+:WUhS5%in\tnXZhC<4Pm0ph#A)T5IZ\@HZ<]+FLHG"P55sMcgbU/F_rN'q-:GB.Qn!>GE<ZIm\&TWjk='gb7NL7?i4"jI1Z-R7grd:VgPcd%I=FSCI\l,_^!brCg!]Jh<f<2oo]G+1EG+6])h2q(s)>;b^0$(;JiD7:VDdm-JqZDkH#5-Al2KmbXFA=KjGjWIRF4-s9#Fu\Q?2Fu%XV;5)HElXRWuJ)]?g%C=p9@cuGko`bqYj?%@p(ikr8OBLc<kuoI;hLeh(8O)jh6LOnk?MFH3N)VL^5D:H4j2Q#6c%L"]SGdlkQ=!%c.M'XCHll@&e[MD'$.]Z53&_o/AIO'<&8=`24r$/WB/JMOlH@GkuJA@52Lr^XF8,'r3>V)qsR1%7s\s2@BO1Ss!UP'55b-uOI,pZ%ra28NM>\(YcMM[01rKM]gYhMWoLbK2%FXVCUukd^7=\C0>gH*d)ms^9\Q02YHPjmi1YuT:n%n"\<7;5AQE'^DI_WTEds,5HVgo+6%48o-3_KV:1Y\*a$9FWDf;>4.GfcDc,XM'=3n[55ROSl[g7'!<Eq+,M"^;[HAOIRAk-DLNDN7=4gqCh^_L4+;AOn53_5r/4.5*G8Q%n[U[g(&e%(PbAOqp"f^)-kC<5Z&qeA3gfjD\aotrSIOfl`]K]`Rha6Hp>..=1RRU/1^em)37[sZIG]MIZHq^A9Er/QrB`<Lh)Zrs%mOFX1E0;_0::O@$@!XXqk"]?VXor?Ob5-_*23Ae9@4(._cr&A7dP#W2[H%e86K=Va[/5&?C1d$hEHYC85Hcsg]^aUmlWNWq]TSJL%9I'.UK25aK%i_oZr*[C.q<qYK07R'ab<YJNT+'jXp>>>FcPK8<;+[BJiF>)aR#a!A/p`NWb"CR1rduJ\,(6+U[<r[*a%k&Q63RLr%&T$HO%<PX]6?df!KRLrP-Pm/mG9K:k&qKBl?OQ=B[ON;/l<ccZKmrWhO$>7I[`[uiJ)\50:Y+[AO=/$Yh0TVRA+ihIs/n#R''iSO%AVqdGepd&'a%1l0fkoo;c$:A-a5b'/CYXd-cRCpKR3_*^G<^GF)o.[7GMG*?g_4FT]mX/RV)G8*3:>Q-H#6[$TR;at)I![I4RW,A%D_)+;on;XKN$3hr]<</s4;"'ieY$JK$>.#r#<getSV20@,I9[E/[OX8::RcSrF!(br?J1S[8J.Z\@oN4bm3@aG>p:I>`qBEJ?lE1%mGb%Ro?/1]R12b'?i+EX6$F3L>qd33ecNb':o2UMD,0$Kh[PcboR\c1/8?GK-hNU%#/(@t%"$-WD\(^HTY;P^Qg#5#GP-F?akpF`%TSL_&b&t4.r$H#>kbrl@2Q/9"L(u>>_Z1S*AC1>N;5@FYK3f8c!e8)Rghb>/@$E7+5uCi=XgNPnr6ffOK6!+Jro*UrL"W-78B6k+%FE=X$(_fH%G?$,g/-md0G3ZQs6]47b*NIa@?^n3?]/VeZIN@4pIAXVKQ(kSmb<\LJ\+HNmTL]!6nRQaLK7b4ZKDL0,JSW6<P=4,c%"K#YJ6*#iY>8adg$QB9blIE(BH-jFG=)hZFGA4('?f:HnF^\B`Xl[;hi[[h=9F!`<)h1s"Rf7WUAIO4..*Adg&ZVEB9[!aD`#^B]%KBUg,d/)55U#hp`&*:,KZ,gNm^!BQbTpB@UBJhKE^\(o$dm7oQo[#9?)+>G:VK>Z2[MlM>h2^-p`LnT@gW/Gt`cTSi8T,-8dV>m[%:RPqG@aG@?l<H4kk(?uF^4!H\7sis_@)]K]44AH!EmUGZrS<diTLJ.Fp31%2k[b\)f_@WdadK<>n/2lj"r5>\jonbM#OQD)98c,X%17gAl3?7ZnnR;&nkq[2pH(=gq_4\YrER<m^lQ'Q`055?5;#Ym03`djA'2!u%MhB#X/X*ZM!"O@]X<=N_s$K%"_OqOLA5aS)P!%r"%\.CNZf:OKuL?(W^e)VBM0tf'Lffq#0TAcH2AQ<tB`tHqY:Di_W0b-8D3/K&9->W.jQ%D5DP7?q$O^Zq,Rqd(SXb$?Uhn(8%-G-AO%V;:Oi[!%<bF\+ZU1VM\8r?-GT^0S%cj)J*.[;W&UB;SJN])Er>oO35anSK[CG:-Gm_mcYSgb'A;ra9msO5HG*[GJ*K..5IWmIBbV%mj$dM,d8'Arf2EC`+>jj>C8Z+MKJ,9@K,ZYY!7?f/CZ5bSK:g,cN4dNXbdQeTfUa&I=>f-F@CGc8>g&CMf1,L=38Btbjb#T^0KI@%OmpJ@#JX%dCFX(3^6d"_?PRa&](^oC`OA?G?goste4a(oTA=;NN'FT`hj1$53MGtNrp>!.pj!if,NN&BMHsK%InlRBqrU[]Zp&ul%aT5oAmEaZDp,*Bjhp-MKh78u$cc]+.p?q,!^&79HhlWmf9tp#'^f*;NN[BYGh[`m,`Td*X_#2qgWq.;.4P_po2V>+EgkPbD-fu*^%O,ooJCq:Alj7hg"DjftVAM*e3h_$@OETZLuipVQkg:+%YjCk?JJm)lA#9K(<Ucf3SVGEuEi_f6"2FbN^j&+/SloWq!KW@d`n).&?%;>n^VrcJpK8I=-V>L$G'XiOHjl*u+*)NU<NNZW@kc6#-3gA^=5B*81PZ*!5Nk-&k$VeHn\jp-6eG.q0V<O!6L>Xf[B'.W.Z@b\l"%klXFVE"q&:r0aU+j/T=J@<]*Z?TA&OSJHOVFRe;L\/-=9X'uP%i-;E+o9jpsCBk4sS%^!Y3ke5FYX(;'K%Nmt(&.,lAse)'fhVe(%&;e=]M7[\l`*G(mf-?[nFGPFb"*=1o>l5$S[,as,&4$..e([L<ks6lo<\p6%_W2gh],?%S>>>[%>%DpjTfJJ]7V]<M=dG8(R-gWN%9b,Wg(=V$7c^t!6BErOIDK=6[q8Ot?EDX%>ao0>/fN`%`G8"-9#_0l\B9Q/$GAPhFnL_/:7G854gHRas\R%-HY-%!s]Q(!tW++lP%C3=/a(($`MLQ0==cFOKHUIqr0h.hguKBAu9_Spq;ohIuI;63U(.@Q)#*<jJWfPYcnKtI?AMu6FN!40B!"2eWaa\EmfF-QRl^unF(%F?[J"#PXG"BgGeX.%1i+9>BNG%2lm9ALI:?s/I6@)9fQmU#-oun2M=jeKe=Pi77O"`S%`gZrm;#)ZQ'iDu:<o`)e[;P,sklRCf8Y%rD^-8ec!V/p2[lTo(h`J<76Ke:(:F2<J`pIB+g:)3!A%7EUGte*g+p(PZ6N8`'Ygo-'doie4Z`ETP02^9XEtFZr4ME`NhA"([?qi%#-g-%rdu0I,S)@JOCHlqk:=V`jBl.s6!h<X<$A4;K.DKJ?R<hl0r'OTOFM`,s+AU?s2^7SBp_qq++!)r0DkJt?M<<*O:U?C!#%De%:@YSfI0*EGK<eCd]+ZZ(]Pk8[k:9il/)<gGl7s0!bICU]/"J\*.J\$Z-9'83R8!(&Y#O$.#fG`abgj.W)aOqE:H+$Mkp!iqks`pR%WDWG%U4gQtAu^PY5*%'S+Mm$N;qh%he?di^dOc@/%Ac-/)e7hX>9f7TXPi5u.R3A+WUeMSc]!&=[4#6@U^N_baXb(U4oCGaq1<BW%cS.A)_lP2_aM*Ssod9*@2a;es;IP97<6@O]4Vj>`=<M-D?Cuib'Tg^72G.(]bu/+SRHjoUU/"1l/3I04%@#d@#L\m/&l5hF\8:?U%\^6QlK]]PTFCs3`[Ram%c'M$$-pg96YpMe9G\D$!RN-,Wm!eajZ:gIpXh6Xr[:964n55t$S;Hb&b+`OS5$q.C`auR9Nq2J`nhII"%WOY3JPEMj9)Z"6[RaTuK/PYM<@lc&;8qufUmT[7/fs&=ma6*]-N7AFjp+JI9Z?O`bRJ:1&&"Ie3528A':"`blpXk;1;A/=GWqS+?%S[f%Hf<N\O4&c1QO,F23qER8YO3uX'<EiXgA$nVe(7/%RP%:6P#EhsT7p,jQmkWRsme2hXfhhZuADlOkB'77XoZ3=Ygb;G;S67H\%V"-AZ^Yc+_--:,*G>>okOli2!cB3rq/0Vt>X*b8P%aUJ$;*7r2Z^jQU4?EL`:Y)_>6S>A*P)7oL`#njh*Va+F_rP34XJ]^o/o&+\%AtU]e_R3'5c>5OGNYCb[.P3)g>cCJ&]%dQ=Su4V0?Z>]1K'kS70KFD1F!eWt=ll;92Tma"C@F6n--Prb4V<T,]pJ[KY4BW'.Pk2H%/`e]7Wt+@5"=/.48@Y`B2^4p2Se52;jDWcdd);O3f\!NEC>s<MV@N"H>M1c<:b8p"-+E4G,@8E1a1N4j[R]T&5"'A1OP/4BNl1X'%ftNn,P2/."<*dEqQMm?/2U:+l903egqD!nGD.6_dBM2f8"p3A*%:TOMdOpb>FbbP):C\(hN\qV^Ysg!`(WT\kRX1g>gI;]s4VBo;%m5:"Z\/]?hH,?f"AP[P^S;ue'$`?+.nr&L`d!;V\0RBSZm),;tofPGVOZ00oGr*HrQ<UHDb&b[H"Xi8\hmF(Pb*BugT;V,,#9ejk%53gYUs!Tn[FgX?5e;:d0)&$W5drV$3dfLXL[+:ip._@at&%Tr9=RKmP8p$`\]VY9jfHn"_7<U[SpW5#Q]]H+;n&!c=E*m"!%W%I>%g+=V[<p8V@l'Wg+fH'3,B9D!G3?uWt_sX#WI9%`)cKpa!o-e<aP(h^`L3M3BDOJJb5A,`CegAKjQlI.;"eCA:G0)=4$=Wh-ND@CD%VJT][2b7g8Vq&rLUd)kW9G1$50tAUrj>A]13$ll7Pgg,Soq^qq-"`Tj+Vgj"_;`ZALGK;t:6V1nYGNR>Jg^"[Vg&r?1s*lT=Ia64%-TCo':H1@;>;DRXS@g&-eh%M.E5g3KFluE\P(df\dp!u/c?OY7+\oZpD+P2>ik&7*A]62p@%dDP[p2@Is)LNrHqM!*"\u'\nq7nY%#1q/g1gq,iQ@*ZC.4oeK(-X_'bVC,Smt5Bs\DA<+IIP:>:%SoWmIUNq_2#9LZ8l$+gur4LYt[22XG0oHg3+B\UBr\=KJ5P,ESrb8%8rm&FEN(J]"mspQ*.P0.O?*-TaqJX?Wgc#lA:7&Z]W8a<l7<7N0sVdfX[=Y0F_j'Zjj$12.CS:]>>`To-9#q,1!:KDXIB5@FZa!Q%.BS*Pg1o90[m`N,_8'4?If7m/?_d<bC4!%F'r4@s1Eb-a/eM:1p!$&kq2/:;)H9#NR;T>phq'OAetb35*DV?7'dp%F-0HguA'"d-%QH._"Z!?O6U=*YM\/+D<ef>f.g?YQh+^U;s`M#@Kc+^$DZ]qk(\X/)K-i!BBgaoU]D)=g4X@XtlPP<%K2`E,QUrObnc7eb@l5n3W%-!6U!CCr0]j@62XV:,bqE(TFc=J(.OZ1/ctba@htm@%I@j[sqe=$g`4dYEA78f+gQ/,6D5>#U*@ns7?Td7n)8L%XQfbNJb<H""/l%7+bWn7Yp0eYgFZ0?r!sa%h1(N%"(>L=Jg6BbJTtLJAi)&ki0`)bid^0Blg="+8u]-MKrIk3+.$.[oirj^i>qf=5(!H48Y9q<cu8_%]a7eK9'9'lePPt6d^0Eb%-q,'f7uKN3aa\g_VmDm]Eq]%=L<W(0\`p12ae+P2[9\NR>[T/a/+0`8Up@.0kWh3,!<1FiMWrK#gY6<%/ee+B0T#P4VXq*j<Uoj9>)(@d0[Sk?b\<,MrTS4MR.o8)Hfq*3LiKo+KQLk`T>m2:h4j=H'`ifTV/B9db<FnfNcAn!D2uk^"CZLi%?]F>GL9NlUWH?miM$uQCm:<.S_)eD%%A@YWg")'1a(r5D<BS%Oj1?n`]9gZVlYC(uB.$'$g7D@">8Oh/+Yr-P][D,:mHn27I^4S=%&"&r8):DN//8iCH?-NR/"B#Ohg7R^lQ6Aura_c*e6mk.=TDk@fn.P.dkAXS#)K3::h-ZFl]mic;mu"UIoYE@g/W:d4T8jld005F_%3,@XYK<on'AA?t4A,b:%r2Ttk!l#0*MQMZnMtE:.0$'TXnlbt/rDahR>p*!lI_+5^mP-.[?8Lp)(A%'"n[oG#>T@:..'p%CjTXQn%o%4pC.pe`NC[/eM3]dZ'[P`<-'s:UhVinUf[T3oK$(['_SAC5L.r`2nH[D^)o9Ic<!]u8)87sf_pVAODHt@jXm!-H0TH.#>gtarW%S1b^?mD[u4kllOWrStm``J\P<2s;60BgdH[hQ)ED>qPJn/Ub=<1]AD5H2+h?(Z)73kWN%+c@c2Sq=Ln#Ok[i6C?<*i@R9E+s1GYD%$0Rtfh<NqsAL5=(92s=?q1G"UkM;EpWeMKi9J#3MA5=^;45DdW78S:K#$LK9(\h_<io%YLa"@GrbJtAqc\i<O?QT+#O#NXnI0FaC%3[Jlk6!N3[2J-toW;2._T>+\6CPV@=\`;c*<TUZ[,@N=HGda\*e.+p'ku8jb7IT9j"=.H"!T=)NjD+G0.^t3^:.HE=4j_#.R+OS)%D[gi2!%&1hM,rVq>B_uKeX8S3G'C5H`^*,'AV\PD?0f;&]*^PH.[=*#>J18:E5X9JL:aWu=69#B'ntnm]s&_XZ3oZsX\a/cD*rXm%LCTI3BR7kD(rpZ.N5Y=")-%=Ya.>Znotb[GG<KArn]807<8Cg_(1]5M=mbFVQ-LkHeSCSoM^+eS%QuAdM\V-"/+g&tY4]$7dL88I%4LR`!fI_DO(Q0m(@_G,>40FCl#X.Oeg3+/%YT_k)nA@/+=pmK0'CU:(*hI0H"oPS>3LhOg*b,>!)DbHtXDcL#3lU:+qSGkl/&2qA%WrXT4%5YOn"adU.Z*WoHm*HX=\U*ngdG7T&e?QcQ*8E>[IkIP#Jqft&[b"3SG&8$lSD"9-GiK`1ge9Kd-Fb<;+B(f*42!qe4qi^s%D!e:387sH$?`m2]A0WYAI/48aMs2g)i9d5<ZA,VOq`;OdXTUB'p"5UEEXK/[hs&VdWXlFb-rD`M38TUX$22\.!NkY-&FJd(2H;pY%=ZUPG90e\^N1YY:Vu)'8'O\BB\FRobBAU.AKOKeAeN1$i<qb1OK4r03!p]#`F08\'q.$rqauQa3*W@G%@4RkXW`RG*E-ehU-DIoH%l,DG-gf6R>]ss$?2Sfe,LqKhQa*96#IPqrh,AXF(>.3PI:.uYJc/?HsB)-6tIPJ_UL%AfT8G1JHDU%>Qb\23/MJ:GLfTiUkkgZTG%q#:XufOC\s4No5U?I$5.RgN8<W;5f^I&8]F?Qlqni3K:t"qk5V($ka]5#7_0&PgIA1q*-dh3!\@Y@0Q/#Ht;?F-:,43HJA_n$B4H%3a6`jWB3<^6uL,f>,4A&M"$fuKK$][-Fp>skbf*jCpokU?DB^PN1@XBWW691I6O-'15!2brj+ITn<\243%5)W3/>I!B1`>i>;XO'%l?i6#1!LZU<P)7@<,ka>j@ifK'uLMuJDtYoXt/u-!i$Ob=BlY]YKJhJ*H=6Q3KA?H[76C\.rhu:nl377=-sUE;E]P.<U@]T"ZCq)%H.N^2e!d=p-+IngEE2RqR+)FFK+#lKi>"n&qrh:W\&=u+/h:6ERqgq1Y@1s!J?"58,+mmO,$_*qI@T=R$Wu`#T=bq1Xnrg["BWe=%Xp^fVF,WgqNAKE"fK[\1&tJKTGJ#Q5*2,B_eoKd2QZ=(3'Q\^D#Jn8\<l#2.#H!+l1%.kYU'N[&3Q/SR3/\MsW)gh3*=DYUesWqY%1n6'gM]U+KXn\2?Un2roctuOY41p7OYI==75_IZMj)YS;[_<p'95(QgW+53CaW;Ae0!8Fq)JiFdiB9#Bhl_^P1MF"d5@"cM95(Qs%m1%@d,&eqXqVFM\#@]s381;\4m_IV(=:^$72.i.KWsB]=?/>9:2AJU_S*ERG+\1t30u$\;NV-HM3puH95r>cL?cV/$'a!Ih/@D-I%be_tfCL?8`cfQL8+>(:,N.I[Y!T*`4/Hf4bCpAXGc]MF+DsnbmBO5V-rS?kWNYaX_Oe&p4BldTF-3J5="84CA3"[k1af?ru>1qtB%2X:ukF^:JQ.ik'dm*V4-2Y=KD>rF[iW20fTc>HYe"7f`4:/#U^liNu['hI!4G`W=eWAQUtRe4W[WOHshT95QfVtS(qSH.Z.SYdLN%g$@o,Dg3Si_Ca"d^"$1!3k-OWk7or>Lo#@R5qT">7pFV1l-C0Qn'RploSUc!g)5enYu]W&MJd3/YY*bp0YG\._9S/8S"bMZ0YneS%lP3C'B?5C'<3U^[rAplbF0Eo*<3TNebM($`92mTSJre/5N!H<>j5KUD5Z#:/QsfSM]\]?6bqQu7hY-7V'teJ^[U647_.K'BS%&@!%M$c/1S1j(`.bG.CljJ-!$9#d)X1Rg@.bLgQTBE.\1JI9n`AU-gRpgp9.CK^9fTK^8U4UWD_0QXC)cX&pA)tnRSt^h]0YtJrf;N'j%hr@lV-$b.N2QL%ef,o).MI?aG<0sQA'o5hM:r-b2@,jCOS"kQo34!RT$8u+fi=3==TRtEB_7!I;[8=\OAFl46_OI6NbpI(($+Up'%GY,&1%tC`4+]kCi>ua4oN=%QgS)n>cP-)ki3%!D&;c1$f@eVr0;p68nfKH[qGfmA\]8>q$;LBP!S(KnP8G:#TG8&_@MbS)`=R4e]%p/<`1rH6skCl^1)pnh(^fO?d"=M&bjgZP@(V`^H]S(R]CA[Q`eN%T:Gg=2\^4%:$u`tk.G6TMsa)g\mI0WaY]M_916/RIV"T=QM$%LY1TH-bDV[]8%de^Kk_7]%B0SGh(R1bg=>+SZTE6_`bT`4gs"kmb=Cmf>NQX6l3JU(7R`ac<l7j'O.[*M^rnSV42A%b`#\?-g5%6%f](HM'm9*p@4V-<RV6f0fOEs,`tc2<4gruZFH8%tO"Jpc0urKepXnK%qi`%nMqqm$*E70aH7cB(CpEo0GB`7[pXis(=DS/Pf_oV%%md>%M/p<:-2U@Jdm`-?VfG_Tn7(SpuMt&@?/\9St(G4\'`V@DT`9SJ>]JA+%#tA(FQ8Y:ZJPh`p`J@FKaO6G`PYF0kF,[C\SG8ru%j[G^7EijpP(hK2k:-?HC)t3+!;ZE4pPa?CLX5A$e*i&)e^-3LA/LQ$an*@<@o3>^pc)V,_`]@l=EMfZkO0HnJdb40XF),0Sf?RX3%_E+m;n9T_0etA3G<Y*nnSX6U"rrVM&L3`M7lYM%iYZFq><Ph3?7rN$B'C0Heqd*d'20$$QF7JBpB5M[f@K%"mH#3uYRc8(h@U<N7%c0joh*p]n%C$#5T2S_ACH:jc=SMd4L0DP"?cMIIk^V`*:=YXj"cH]4e2ShEn;/-%7lb)Kl;r1oQSKPI$a#\"*#eU,_Yg,0#`C$`5%<okpfrI9HBeco-Yec,d<XQ@C%GCO\8ZVb'.%G"ZL3r=O/%dU3i4[$Bg_\DEQ@e]m'elb(S,dl5'#j\Rq[JkAPkI%'1='4W#EMZ0-%B+=+l%4]U:l`A9G&2_El_E&Xmc1-k!cKh!Z\ApXGHY'k'_+Ul9L3.Tni`m#[XK>HGRc$3W=d(o<p[EK]Fk00,]QnSg.UU6@Ru>nm%FVaBf1<2GfHYKa9@^M>Xi^R$_blI(e.dJtCH1SYtS7%mF",p4_rsJ(.<Gh%Rf%FJ,Bg\un@X[g^_E&W3H2\9(H.-u7Qt)\h%Am1&%juq:@J]Ia-elafEE`M;;_)cB1br*^0^cF-@=T&W/Z^H73*p[WKDn3C9c*>RJjG<1&,HUK7]`1d3c<>_[3,rl@cAUQS^VW$Ir!BX\%5JoN8l/[>GFk-h3HdC5s=QcNeUjmu=[XJ%6B38fKMT=FHhAkitN%DWX3iA:35s[R/JnA+tpUFi2K\d'dljJ,lCR.Jq6K\,rhVaji%;9_aie2;6jp8DRT7c"R*Cl`<8:A+hBCl`>>Gse_b>dM'E.o`i.kRF]J*n@pu:>tkcc1\)JS$t)`_DU)m9.]slhVaji;9]<&Xc7,)%J'8`$#1m[PC0'6/]IC#:*nBTbH@p"A7l@&rnH.<Y?fOTCL%>;rCnK%8h^Q2uY1XlH]QAeoR^hK;C>d^Z2;:32)M3;l>k>g)QVbpW%lB<7KRdKElFZH:XE6\+3AjC==NGCGCg`4uQSrtJ2B!2aWp:+`34Z2cLf>9E"OKHYgf]$6PME*-("F?qC(/a7)_8FEua+?gH>m5-s%]7:'N<5JEr>m7D]]3nteXA_;8._?6tlVV4p_5#.*S<?C->m8P(]*Jbsq($^71I_03(Xnj^f=TFgFK0XWDgeuG(B+n.?!U#3Vj1Pj%N]:(:@(Je5@P!EuV:>g8R'V!1hF6M#7</ocZqa:Sa92>3:@LSjYH`!T7/mmj>UJL`;_"ni0^"nPl+:`/S"N'6-FX!#g$l+n?jN:4%EJD*SXZNl(SgJ<?_6h+nY&IO7D8^gB4-%Z-N]4fjm\Am-?(d:MpoOpe6h:0++Bg-G8p.@C3MT\3ZX'&oO;G(]fU.lAnaa5B.5&_&%$J>aBd>WUQF\3sd!k_55LfL#>fCLO"aL1CAb)MgPSa3Opb"4k`-qKi)N445:M+Co519j>PS*ir&)+:_qbC<QsiUgYn)4.]o7'UP7%;-])O>sqhfgc!I6UT>9,='u',_6r*gTV307pQ2KCa&O[-'u+-@DVhs>h$`Kik;S&rp>_h.aG@%,K/D=!/=9rR/FQ@=;(2s5Fj>n(%NSM$68)m=GlbC?j.6?2!I2<ATZU75eS0L+CLU0neBSE^3p't`5k\/F9Hu6/l\P!]aC^&MIU8(;WGO9T64,*JS`R]Noo<S"WUSBcX%-,9[FH52adrZ09ZaYlY/Y/Eg\'O,_d9H9It_3%m)@L*hDW#QGg6Po8pf.!i)Hi#gE!/biH#8+S3N&rPEYc)_#e6;mBGu=roB$^Su%]MVl/Ess>c"mmb"@"d[^q*n^&-Y6TRm>;c49:0"[dA=T(+^JAUAr00tR4Yr_:?p][`"bE]7:9?NkoBncDBc6AZCe4DEms-KiolAo%:1I#lj<bIZRY,`ZSiE`poUa!Y2]taq?dRjDU@fr'8mH5iqhC<o]O;#Jn<GsZlT.ieAn6$1-kOS0\0<<(/@ED/X[B-ebIW>,I!q#J%/RbUQ\jn*%HN'reVaf6gb[P^foD;o9ptN=,@quXTRhI;Sl#OGOhHS3CW3B@]FH>i5O^HtXnkrhe'9ON$B)@0jkAQX)GrnG=3iM)A%CDk%?'Q\E/_<2qW<ii&q%^2rGE`Y9Vn@EYMrk%IpA;f4)/TDf`UJjUld,2uifR^;b=@4V51<Gfmc1*m^@&T&mYe#%Th09=0]H(al%h9+2]#LH(FWVniPK&:bTq;&j(=[3?=UtHu+j^.('l:kMT+O,qLO][%G:B8HT\iD6L#`3,bk&^hY+oTY9KZr=diLi[s?cTIf8%r'`%esdHlW!LdLUZ,Pmqpo(NMdc*tk1Le+D[4MR$B]DflR]]"h35;aOHg`3Sb3SoKnm>$Mg4Tp$A9un..pHo_<oJt$j`NZbh$"\XrAXP%KA1,-Df.:-D"[Vf8mb*3>g8t-o_-#,$!sgl`sTjWDgM\@"TuF6c'")]nACm[9hrm^K2-;CTXW_\cdm<r1d/Fl#m&<9NRJq6[a2)E%WGm'.6Z^MASBOfD#XJ+E-7:(iW](j+7!<%#<^jUFZ(e,::7ISROSAT$#$=q1]rhZrU$cc9Ek8?on#geb`)M(gH4RuL=OGK8cPA%r%4?esWR$OYR9.<#`%I$A%MsLT8B_)-..hC4R1+Z1='4e#tLG=5-_^<H"kg/=E&.`M^TDW:=p3CKcU0YI4;b*eZ_JS?\n\5!gK]q\h%8DE4Ph<',Wc?f,i"s+'6lD?srl\bN!>hm49!SV-4f&Rh(mbgR<l>uItVfl+S45G3-<qsd_p#tI"n*QATmAkRj]k(h1[Ab+c;S3aR%C</nEb::IZY.c"cCr#m</6."gfo,0R_fF:'`n$AN@l)`SF>s)fW;IY&;u+JQW"&Wa:5Y2-3*_n9NIHdU`>;]!l?"e//O!6K5b6r_%h!`h-%/WkN"-rlKK^kCXI]T#K9#q5.Q0^;2lnG'Hb3Jklh>HRe6>%3Le!\eL$d,T:<b)OJT$?irbP.e%R$kU>hYT?dXh*.f+BBe;%q"e9B.ioG6RIU'>aeir:mBAhMS)F4<,ZXL*%I5l9PH:DF++>TDYeG)qeoF]7%oJ%=&PEk86CKBI3b><*SR#1E7/!4PhV\"*o=[_c%WZQt?Wr@+'V/AJD0@Xk&pRSmtdXTd6k\Q#hT(MSQkOPZ?Ff+[EolM,LV4RFaK@KM?A&K0'O"Xt9nKcQq`foBLl$/MahG43Jlt`,n%9#pbqi2TP6fD`ImiDiJUq9Nub5pd33L'C_1gUfpikBD;Mgh"!nMpQN..;h)iqQ]ugnLBd'*=W.IX<2Gc#JCd=X#Ka5%q89"4-;_n%4FZJ>_I<A:?)%b9M5Tn)m4;Xc2o+CX6nc4Wh&"T/"us8r5"V/kD.JH:Y4DO%pSH5d/mR@OgA=B1Z(rh.#o/"d]@?Ft\>BiD-tYoB%rPLf(>u2mtWn:u#WD[,K24fWKQUtk'322eUf5"eB<f`;Sci.'h`*GLCjMYL+D!ug#)\\_9G43nIJ,I\SOAX?UacFJU.oVM;L7.Ab%?3Pd7^06I\5lloc41Vip``)SXO?$@T<?64Fk!Dr9n*89-fu)F6_jsJ<:V=t0DE].n=!-GuI^5#CPJ3$#18KS2DO/$f%U/\DbH-fk%Pce6K?!QGs[aPK1UU0U/jQ3To"hq,Hbr#;'g[psbIG_IS11e;ZK>*bgo[-6g6]o""^<?=RWh%!?^a&d/?hWY<`Ih*P(@fF0`GUY7%b.[9$"`X4:rit0\fhNVi>-Ii!BQ-u\QVUD2SV6Vb>m4Fm:d)5b@Y$P[/dg@tA1RS/P^Ppj[NgYO(Jj/Bb<mn1GkM;6X&PrAHD=T>%%J!E@oDEOpp%\J8pWbq`aYQH7=h^:c:Z$g&*tQ,>j5OE+pO;"l*=a"F9d"$,"'6UV0<[heC#GW>_ob`d%pe!GMA[+O6H/lclZ8c7%LMrE3#'Mq43>:\3Qp5bhIUoX?i<g=DT76bSe@%HsP$IulkmW<%SI?!Le\@TE6=5Q<g%4C]\*Wj-.$i1[Df7$^nf,Y,ni&Y'a%jBR%:W;hmREiRemOt9SB+F"jAW#3PQ2*$#rQQ^^c$iYWa2R65h8Fd$[T1UPRa#:7qrK,eC#$-@q:!f.7_1X=SJ;Oq[pm`,%>SsGh#ghM%f)HJ+YFX_5@jc;8da*.*j&7pf/t+T&/h!Te)p/"\C"Ijr2S([B"B$"&q9$f$VsXHeP7aRbO5.e9';N"l*N"mN]h%9u=Im6PXZ[d3%[0N]Z&lsLf(W`4s#6"lC'2A2!Wuq=fH3Dt_JPi^[Ti)KR;PAY9_a09qOr(Z.7krQc#O+kX%9=DF/f+F-"L:$1d:^5if>^nmG4oiI%?^\bRq\<P7o?$fJ/Y1$dD.l\&\ZC9B4oXY8eCcb!FGl$peW7<a$<qn!kCqbYG;oDirar-rh.T6kdR<'!40]c]#="*lTh5RAEdf"L%e7T4#9JE)o6(\5Cj<QY%m7sPiLTR1Bj1J492CEJ`gHNX]8`WD`gAIS2g;W#<p?f#+WtFAO*/cugmHTZ6UAufEo<6&OMP0[NYODo2%YFec(B(d,loWE]/`=?,I"r>;:#_Cdm;nd;;Imu$::*7GAeSOVZ(oQ]1au/C^a=58=L'a]nAKif!/t14(rb]Eu2&Z%bcqeccq;Q;!%<IBfPo=49_V=2%D7r^0pNG$#Cf=uuh9P;eS$-f)/>aSei"2+)spf)kfM)<Kd;.:',j+iQJEA>pllXt"@bDR?egdi#@+PR>4kH-$5%BW?>s?N7ms'UmE#2p9cmkJt=t=g-2i5L=G1Wrs%m%oV(D41e'+T$4'QNAetncVBt?O5j2;f&In4?g5K)oEl;akC3+drjJ0(lG$A>%??P4%Ge#?[]punYKMJPO?]ARbd1>D(-:]nLrH'DfQ=j94&q[GpFng*ik/b90g"6d((/d*H7><jl9aK>P:Z%.gZUiIKJ]Z==c/De(%#q2jY*$o/0\$c*&iqBuf;Y<X4!a>S"bZm>4$JAO%0UbYrGOB#^]drO<?BtutY<PTr)[s9+iG%rT$#A5VkK6.Co_E.Hr5jl+_[hi9%n[3U@U;Mk+LkVapbNr#%fkt2'EHkOJBHN;Q1M2_#2Zf&M^L2J=7T&s?U]mbUpEQ_>&;>1);.(o6>$([fXO+^s#Y;b)\uXYZr98Xi%&+*L=9^q^CrcU$%!(Z\ZY7MErE>Z(V5n_Vg*>'FM03k24^'hbR=#oqA\_9Rr7:4mZh<.W8%+t/o1%X6"Z1j+"4C[q7RH^k=Ecf.n%@gA]3oT&PBS\03CprTM='E$k6+8m-aiYV)=_nPo@kH2%>mk6ALI6$aEemP[&K>(,0K927[`5#7Dqa!isjN"3Ra="7;ZKId-90Wtf%-\mS$[eIN.]CJ64F"'gYa:1T/n!NRQ=o'd75/LR^l^=\6/UdC%U#4ZE9T$Q^W6+XK^3BBpJVIfnRF&1`Z!]cUJ&$td<TSGPpeUU(%(A]HAqXpZ$I#j[4Bu<dP1Jh>9b^_Z6Gfa3ud#5XI$Mto`!M[fbg.t+NGjq0$O)I[smAa^'ro3NJ.\4-JMtE^Ln1N\8e8@GFZ(GbA%j%-"G3H/8]UYQ/d0!r3>B>h0ANur9heKL(m1)-*7/sn<"e%NuoM15ei-3VD,9ZN:XrWaS^nY7eRD9:I<p_/dJd@'4N02q5<YeMQ5%U6@f"bNgIoD##<&Z2<'Hs1Q/FcIKh8:+:\r`kY%2:WUW:.*>5h?hr&1R3AXX>CF8akg'!NQB);]K>VmIRLC$<H6uQ$]\V`UKiSJX%URBm!&%KME(@9oOHhO4tT#c8tltf$#HM*Co?=[\Ccsq8Q_)AZdJFibLDoM4Hpm<-cc[+8JE3uMP.e*aA00f4o4/2LVjTHo;NocY!%j6(f;2JJ:XG181DBVnYZrD;ijW!o1)<]lSm]TdNDE6uhDApYo(HI#GFb7G)X_#sOIp<nq9Z!PXE?><.tG/"PmR<_OLQ#gra;aOX:%W<+q`^g*M<Lgb`ocsE\mQiBD^;pR9=_'URk[nH9*)"d'ppb_BVMO?4jf_+QWBO5PVI0Jm<*384n.`BbY-IGAsbI_,p)n+70,;;uC%X3a<'1HXX5'r,+/;oRGaEVTG#"#SSu5Q-oLpB4IFMp,[`o\kV_Q?eE;,kg_U#JR_+d`ID#S^T12YrdY0*b6ui"t00U`d<!3Oj8c5%P9>SuD"@mHR/'@J&+_T7+Xb#3mE0>nS\30p(@M#$C-4\[1`,>'AfP`u0376"STa]VJ%]-H['.8[jC0Q7ZDZH%8Q1@Wb=Mh(8kS]b%QGu"8f&\m8BJNr7Hg9a-Y@(H]<d$'rPmL*#<a2W\8n7%b<dMfVl*AmkCW1PuC?8(b]CmaTF>?ugX*'[V$%ZWf?Kan?@S>`9PIc,P%SSI2f6-4::\^sep-hf5u[R!&Mp5&mKI'J+m!(u54*IX:cl?WC-C%42DjGIA;L_O=G^eae$J\>S<5M61Yr+naYRf<d3HAtN`+-f:<%qcMKJ/O$lajDPP6O&tf>`<AWCJ@3V914(\sNscWNfGq.(#9T;Iqa]cGdlDeq)Ejlk?N"8oB9I(-R.&(8U#2Vgnuo5umgu,9,U2?g%:X2c,BD[%,/D"E1(b\aSqW,*q_]R+`I^JDB;aP#\J*ic6^m2V62t*[D#%m0^LT-IImN6Zs(W/G8Yj6/n>NB>j>!e&Ha"b1:CQ1LZ%Pttb+5!39!Kkp1";`_1QdP7Lk$+"S'-:P4'm\^2n&!KUi:MQDZ<,Cd:b\5`[a].g7?.17_IS)"A/gf\+8m*nq`)iCF?CJ:`V[(s*%h&3'm'O.),\@6PXAMU6T*C$ZpOtZ$6;@]Uh2b_=0oSfF9FtBQPP:rS>n%WSaA5WSL;uqjM4lWB6jciTZGTh;);poE-FH\2"XU=2g%\\?5)/4KrXD-4oFWaUS62;9s0]9dF'Fd!WkpQH=*57$Z(rF;_5GPI9]o<I'01R$d_N;*(k`SA#7+IO`;M1i'X+l-<3.X-5B/`2+h%HrJL:HZ]%(9ekbQ=hZ^e$k.c?'uOH/R^sCQ_e2l66jF).9?/pA6+X^W].?-0%#8jl$gG*eanM,+A_q/oVl/>dZ,gPN#BtZ$HrqFH%*h2WtRt^N40>_:pKC>n'DZ53qX>E#PIq"0lZ7dRBH<.,7WhXR6[_$48SM:ihg2Y87HBu-6*ag&/S>jX_s6u[ha]*_,EkcD3<;VIL%bB&Z>?nID,lKVeg_c6G'?"9mG4f7SL,u\dg[S54,@k)`s\Z<!")(2VlHqp'O^f($b[pggLPeK17B.@NU2e+=SG<>?^cPpHic'XA_%f>:s3VE2it%F(8tNfJ.EJYa,Aq0pQ]f$m[mHA_(',u]f4/X_JGkNb9(VOD=f.QMnd]Y<.o_pH!L@O#*`l*gB)=D1_*c:<Y9FVCll%l<TeB<Re%0CMHj0IT]#@S7pHuUfSiD?lHdBfS[H_VAa"&M-bU()b%Q-<`O?n[9e!L<H!?r/@D\t>J7V)<n3pG;n`%78Na8p:L5iK%8CQD^d]&X8Q.PT:#ua95G;#$NVHSc7>gTO4M7Btn(Hh7Q]@*^;S@gIQIEh-O'KN;h5Z?A%.?kVh;tZcr@4Er%0Gt*]"mOMQr5V),%@4@!`#ZI!0j&'Th>%+GY%U&+sg&:#[pJ%%_p=GP.g@#\JVXh'Mb:`rj)<1Vg^"5ORZIB9(p&3(,6J6cg9P#/B=R.C^G<qJ5g6r@J%L8gaoa,71m1Z`.#K*nor$bL>ZWS0.Ds3H8dS+"(X5t1hPT4P0mab-F]P'=[b:#e0&AnacZaqrhhQ%>b_3-e5qlFlTRS*;A5/XnGZ%5EpYr=mN&,MJ)U)Y^323]oP*\.K`<]3-e5qHL9JQ.Dj2u7]L'Hb'5\)[IgGg7]L'H9$P2T)6*=`gjoQgaqn;1;K_;&@9,[+WgVal%[cP]>RCKOaa]q7prVrOn8D0eZ)E'b3a0W=&U">q=q:!fV>E"_ekB,\3260+3CI:DZHVtl!?Q4kbk!aEkI;Pq/UZt\Qg<eqBV=giU%m;#'\G1;00;#AsC4;7I`3n1l%'_]M0l;7B3:nkumW"-5=%E1HE(Y,5Q[@oR;(Y,5Q[@t=-2q=Vq[@n0#HVtl!?Q6!hlSkpU[BIqV%l7Frt%^dD3qG%cLeY2]ETkGsiW"-5=%957b`mpdV[@o?NgduW:W6F"%/=1uh%=[3>\>6+SI&_2q8lu9eO"t_%Hm_#?dH'p9/[B1'%Qs$,4G<ElJ>j"miNlL[YSUsmO=[RaOiiq<t)1Er7)Q@YX44OZmEF5Zl3EGUiXhsE0@f'4#Y<f2)%/(T-KaWN;q:?uOQq+FEi_VPA%pcG<SE]TY#.X)K0p_:9BO>a1?^t.i/YD5G_GOGirH*Em@`i=0GTeL3^OMJp(02aq>B(DWES#u25B,Cn1Um(ml2&989"hHdA5aQ[Y%;l$"J<"P1Lb0V$ic+dQR)VX/op%N.G;#a,R$Y"SQ^]^REYnU!P,Eln@&ZRL\N8BS+oe<mJ*%?#Ydadd5CSm5@HqPh?\)2b7o/e9a%cqdPA[nsooW[X88W&Fd.;60/[MthfI589`.gW,`>?MBlG?dP"(VZ+NP8ZkCkR%'jhnfh)-q/q6pIFb$)co6S.G=Tnc-\m&Kd"K8i%DDs8oEr=Z_gT,Vej;1Xo\(ao97OX,^\SCg!07/tZmrHXtbrsI0RRt_PMgd^2ERV&Oc]3_o`<_n!m/'5bTD^`25=\)&Q+ru5_8!i[%1'Nj29j[uM+*7mIKpd(,du?>K)B>f\>iqCdU-fd_D-"m)mTZ^$7c%^ZS5uN-`M`2"9X`n.03Z'Ns.k#d`R.m6,LK^#f<aq^pi?<&%p@5a0oc<l=18csWoD:9oNX(3Vi4l/b@=Ru,pml:K[gk1dh!(fZk6LtEb5d!Op,TRFSjZc:i7.F,2,G(9];/-kE0(M-)IQkiDH$l>%P%1`b.A+.g'H7=]P<_#*h"cP41R+>$iGaBMR"So*h^6K%WP9N4auo*'U8*XQF@DXo`:?b]?6%gA[tX@i*L4Ai[N!3Gb]."Ggei%T%)Cl'aEA<sNDs@/mZ^6)(Y@TK:?Q._%_\;lI,Ug$IY5HX$Ru1D..XO@Ofun)RieiV\aOOmBOpE@XLC@6tB)cbt#LgBa^;T[SZ3@+q%L:6][o]o63,#]8K0D6^kpnT>*>ef>\B7Y*gDs+%0Uj"=r;c&b$#>@eM^GFc^gN]sq,jWpKa'r+@NUAGVf8?qlNJD=+qm@s"I0:0G%HutWUk3t&r<1p*Pl0-l+MXZuIL=khP-srqnKan>2i<mW;8$,eqQ1P^n'0op`T:SsP/T_VuD8HD)9;Mf)ZO>W;^.]t%o2NFkl7ikX%R_'YlJWTS]+d(lBW,qAeefib<m(&kW5m>=Ok@'S*QE8F<#7E6nH39/%!33#3LG(if1>qG?RL.[/Kk1gC[@d)$#`Od9hl1dm2_<!)%=*MQ'=@Pk[:]RciNuE5B-'j@e!!dZ%NtZ_`9%41rZsW;ZWPc8eC4\B?h8N$XLN#"-W*eB)qq5%07orPlf>Ttci&#`9Xe!N?7bd1i%q<4&:IN]?8"_F&\q9uhOKL<^ts'ZrYFMO8Nh&Y]b*\_1C2Z=\7j'(.RE_G+_,dtjE&$g<RkAjO#MMY]dV7?d?@aXSGI,U2G_qSA&%"hklIKu-:6=)`i.>8i+:e.2g%hqp\@3/K7QgG7geC%6(FrHK#(Z+>BMrP)`S[.>,5-6J,XAa96@/9=r/C74D>\$>:o+99.Y`d[d"%WF-2Ee:d)e4T%`%bMUmJkagK]f>OO/IbnjlJNn!WcSt#,[*qBupaP\GC'TeFMSZG64Z%J+El?IP`;`46bu-5=IrS^Gm)7bM'RL+o%(.4n8f@^lGAE>@ld&JB_;>_WF9oXX%d;1qernP-oZqo#EUJ\P54QtW<p`Xk1H0fXRoaLE^+M:B*0+SA6/&s?79&Uom((9jlU6#B3%BfDdM^thr5oIrWVR)?7H^KE[ePciA1aN-=[FAOddfZq#CbFl<1=!ngkh.6DtZU[$Po)&-r(4*A(-Aj9miC%@EEeS:HWqXQ'd:WBc%2L3/Yn"s3[a#j*1pCCn](BZ1:[$uI?%Geh4pb;(6?uj+5:]N^-TaElZ=Je,25"0CRWkU@)O']N[>"+cZRgNs_QbB[EPW03M@5f46%R!VV.7L!(Q4GMGVjuAdPh!?(GP96K"gr*jNZJWJf,PUminZ*NX,p&1Y*PF"5r)<LW6?mNX,3kf-OgkQON%o@($02=5_u!?9o^E/:%[D;)^/gLL:F[rq4.&<FVZm+l7j)apP3VKKhU)_$2r>.TeNaM8DVg=m>VUfoF+]0YB#:H(dnGRB'9gd.>GknuW2j'G)dO?u:M0`LB%rCW,D5Mu:CaC>Y\krqJK?+>R@%4Y]W!,C7rSSiVd4o]4XE!*nf0Y/q2D?/!'WVH58$1S2iZgQA?]c3VNRBdZ[Go_A0Jn>%NfAW&7%C+TWt?ADlC(sj+MGo_?r$Z_R80X&AIO;F)\bj4aknbEUpR+L:5Q;]C@?s\UqMS/0A9HkZ%IX)#I+Ah<tYKI/ElPqGV=.=D6m;a1,%aY^&([n*MO=a^RHVoQ,m6BQ]`/'np@5BuT1;'`P*Gg.KpXbmV$-K!(C6X`^C^raQ^q9d0l),?(aajo]DZu^4P=D9YNX1Wpe0>,qh%TPD&*3(1k##aGQgDEF3<[`?KE\OMX$J/uNoPbXH=rX/:"oV:=E-\j+*;Of7MILI_1hf</-2hn_DYLJ'Wr`QMS3D*'?a/mlRfe+%m%X&d@RMtS[?h3XH_$`q:gI=rD1=X@ASms7KRT1^D2dCoUI-!SP"_'4i$^"BIEW8HK(L&K1+"#3Mj=,f'V:[IN.4am+f%t5;jm:RdC%I<P+ZKiA:!d:A+sRr6f/g\C/sJl#+r'Z_*K_l-q14\12dm[f#>No.rT]$@*qNJEStn6='<E^U5js)jH+NPjB3ppld&Vu=Ti+T&Zn%\X`(e)'QZmTH9A_m&jKS"7DiTPjiL4"6]b+?P@bTI,V)IaaN+\`aUPnQS.)iM6,gr<E$S;OX\+M4=Qf)0:RL"3%CHnW;U()+S:)!%;mO"Q5BW#>lq;NrJejOgf"FoaArr*3q.\WgS<>PhNSN2_BmpqpDGme[Y>p-'Q0YJEgM1N#L/HMUs0+D;jG.^KkBOVU6`TJ[)We=[%ee_R1)F\S6(7^dm>D#BD\$\Mt15K0^s(#2MjomBU]m].t(7aV4jsJI>IfM2N/B.$J?fuZ1k\\/(=gbXW=#sb>3\!j@+Iomjf!,%P%l`Jd<[_@(95r_RuH%k?aVhAEdqc6D`Cr93^$Y/;SG6dEAKlj4!;]/\0\!G9X+gu\hJ`rOX<G^i_[U:R.@#k\mb3/0+3S]uSAcEs?%h<t3HLKE'_(-CVn;lr+E5)$'=Ve_r-49:u3$`)A&W[*&`*lX(Aok!"rE9\1r^`DA*KKX$C0E)RAe3/[XdAio7n-4ElosLe<]pe9;%[P]hi<JY/)am5[gXb$"Q/K:CN=.nr^YCK0uU0,usE9_XsD5MV@?;V[0$[SSIm.HSDDZ$jo1u:E6hBWW\mlC_(f"GO+%CD[R`DFQ4%W,R])Z,ElF]C-*G;L7A4Y&M2bn\/dPPVZ^sfC])0Y^(_+a&FsC8d9"@]DT_n/i[>K2YT,.E"4e(b<jb%s)V`KCr,7L"r2?5^q\#s%NDg(hV4Ni'rHknD4*lPfp(D257GL/U$>dEo;jFoRoA%'VT(7YShs2%coA5;s&f84%a_NY3n&lUcr-o2mrq`p?UhU2o?T1m-g>!)-%^C+k<7q]\FVB0E!Ta)P4H'G?A/F)?caGI67aej]B9t]n:_id_!"e-&JDd'I2TO?4bgpgnD6,=o!.;`1ml(DDtD<6KuRgoc`nOfqn%9/[e)Cr5UY>-dCc?k[<G2_<X(:p>e%b7.*&*>E=QQXXc3ZK\#i'6NfB-(>AO2LWE$9/[e)Ck>F=Zt.WOmA)DFEQP)16#g6i/D5,A%YR.VMC!!6)Jk]Tkj-!+A"e35#8iF#tMql,n;1D07GOU_Y4R6#0KpYk/H9jVCQk@6tmkS>i\8>L+$V*Bg%_60ud:ihB6n?iMF;Cnu%&+c^tj4hQ1Oh)Y<"4j5S4'4[eVh:ma\%-Rms8<D]P-A$&h=TYsU<sViMpG1cIk]:KB/HOJK9,E#h78f".L3,;&+Qn-rpE:+rVdc`%4d#%KYq73)%j)\gKm?T,dq]JFKq&'W<,jQJSnTh[&FP4tB@*;YOmLEnDHlP/E\`eb+Z)k:(;-a(%mM^gbe:Z?ZSa2uk2%34BSK.(%&r)QCZmpJX"<TuRIrm"f/l4\;/CT!sl5T89H`_!e#&/NSPP\Hu2p=+I4*uZo@FUq,l>Q7-DIEdni;WAI2WZLl]CWMRk-W<\mp?F8%i(MB%_TfOCH1aU8)I=ArVlsdu\G;RdbO=8E4EfVtFu:V#]>8Sj[6q.6oF_-!Ja0]($dNrHUQdSn$blg39%q)#1Mf,*Xo;qiT?eUb%+.7msd":YqPuccbf6g=NZJXEO7HqG:Iuo=]UjoaI&bY&(@k7gk-'"G2'>EDm"*IYH&8f'$k[qiYddMsphgZ=8`dHmJIH>p-m-IO\%=67C28bKIkN@D-fZFl^.7?E`58bijI]2*/;WUTeZ#FkO@6"m5.VR$m6J:G]OhEHChh>\OTIIrj'577CFIhU6Gc%oR4cbfu/>H9no%R/D,cNbh_3Fa?*iN2QK4rq'^qgE$=g<YCm*kLH'Nr)Ri2rp:Bsp2DMjZ_<uKfC2cC&T1D:ej4I=r5N[?`TC4[^IH-2FA)&91#0q%%l`5MZq_@p1I1I*B%kE/#;-Oq5s42\rB(2Ec=;hoe3F#^W@^a-TR>])H7:D+N.":J/!q$$LUQh%];u[:KcJTe:d.Er7gt);PI>?O&%_%*Ys?stL8kI(L:%`X.SqB7GT-t5i$k9Tu/Pi.3HBP//_fP:9d/tNUXH:t'oP"<Ks9UnjKM(MS\ZQc$oq@B2``tLd+fFjl2Oo0`<%TF4VS90CI8$#H,+n66MAVkjO.Q,=Xl%Q6je@2:tX@u=[l[mUg?#E+2=3M$Ypn`!U,-U>9h6AJfNi*\q21W'8_i%rV'E/Ht%`YZ*0%Ql;GbC^Kk?6Z5QC1!T2l[lC0+d__:q`Y0%ZD[Cf]jXFVrVPn`+U3W729dMc4J4VI\L`@R46=?Gm6:iL)%nUbA@\=C-%1P+GcP"4$%>7qHp^cW:75nl!2B24'9j(A[c&3_n?L`bja7D?c#0#@nH,4VH2RMT*("iF.CnpnYNj>.%:`su6cLH.qG6(hq^JjeW[`&LQA$()qK%SYbHHK5H/DGQtTB*ee)lp^P-\GnFX<13&V6F`E8J.#8<"%$18cCBEc$O6(aG(RGukjEX\S-cL@fKDh8u_'Bm)-q3_IoZ-K*"!O<5%$+PV]@G01V$dZj^?l-4<Sq],<lI7Q=cX[8_ps$IJME=P"O9Yt*"gVBq8!]h.0IjPCAFQ,X'r5O*gRJ"P=b7poP?8A@8X1K-Q+4nT%$,RDs%pSZ.D$ei>MUU:Z=rVE?Z:^BER1No#f31/h#iJ:?9-EnY8i1K(:cfg+^j6D&k9sF?E%/"81-3[q(a<oWYURJ0T[.:Zr<2JP%,fOI9B1<!(^r,GMG_Tg<=7s>$TK?O&kQ?&7G(UEYXtTt9)4H>W__Vu>(<$:ib]CiW0F*/oKp:_%>m!V\$`h:&PU;W1_G?C?#:R%o%+WGAF!s4FEM^"2m8TBmO(mNQ=6A1A-\cNDC"st$Dp^M0q8.DL68lc-e"X["7csHjgTgbakd#nWZ:2mM]R;Y?B5n+s!LI@PW5XIm"%;FU_]7)]@oP\Alcm":G"XYs$rJV>H;K1g_OnXtCL?6fW21b>'84_"c.6&93E5L7DCM5GhDS-7h:a]ae'KfDGNe>`tf8"fBS:B)7E%$=j4rCfWgK"'S<]gat05F*cm;H-f+O%jKFerrb4komdJ[&"KCQi'SLN\gZim_nm0^Ugl]$"k(2[3eF%c1-&0LP,*Q0c9J@__A;5F%6PE>b'^RK4$j.E6L493j,b+j0?_UYg8392D$8W6A#Eof687*KlR#pK#0us`q!g%EO"sb3;.8XC*Da6cg!dNCucj\,6Lr6"Y:kT+#%#AXAj!p#@hK#],'JN5`dM"2E`"s_:'UU2/;-%RI:Z7&hY"<*ed.P#PX8s5%SU+1.*GG'LI%OD<+.WM\F$.LU:$6mb,3'..U(X/%/%!.fbs80D7OCP+AK'EM5N:_VfR8ed]q?tY$(Pq<_IDF$U>_<!7CYT/E6)($Sk#%I<p<jlc<&F^:Kq)MT*M1#ANJ>*@^UMg.<8<g&8%6^g8O0`ih8ggj0g:CN/u9;0(mL]uiWcr9]NW%&jJ*lo@eTZNe2@R=+i6nhGM&Ml=`Oge>!r;!NAfna,GcQknFFde\?p]e+<ZF;B`%<GZ+n:=cF%n:db=TKuu46>@DOUmN>EEW-n`?D'^];3l9(!^2@qnd81^?kaL,0b7lSr!&*+;8&\Pb.T?0M`quI]c1ErJ>rZq"tZ-6%Nqca6BMG3[=O8Y(Eg.^Zh%MJC/9k&`0_B".EEVX0^sAZ!5k=(I0IpN=ZK:]8,_4'8ha&>@&eA!<"LNd,+selaPU&nQg;&gWVZMXZ%/?BIra"_6Nd#1-s`.C>:.'c'jdp^oL%5NKL%V1-#TjnQH$]ebM?6AG=%V?6S,!Nq<TL+0e3=-ZfoI#0i;*CU@+O?`P![3BNK4i:N%Yl-[69/))5K2)_d:B@6pe-:i"P!`l97m050-?oZk9qgWf7*]LK.P-K&mMO>6C'."p7*EKH9d70s.,mK#4oli;2!;,NRRKRIr!PU,%Yq2"\(n(N/T3H7ECbJ9jX3#qL5sGSk$]"rFT]g2oL<+uXN(h*^=p,I'f7K%/JSl[UImFu\lBJXu1GF%2@Ud<%(1d__%Lg7Me!pE]%KhmQh2MsnU71#MfE57<V!S^6!>5bNIK\D*tP0aMg:10]>UaDHmO`6j>-"MmkSAKB4JGpRjRs9Gi["2o]:rs!a$a<6FYB:cl9aTko%ggHDh5TOpe*5kjOM0B>3cClmaW!E:,!gn*?bU(R^#SeTcN&ko$llJ?cKErPk:*DV1"r'.>ZQLE<Mi8Vs5Qc^FNH,3=OuRBA8LH9t%I-ij!fc[W"c;<:*&ra+jDro)[TVr/kM<Fi428R)(;k0]"aoMr,"5-@)`kY.P=:\OaQn9BPQ4eZj]`^gQ.4GOt^aWD_A0=)^HC=d;%2?<(X1*A7qDul%!,n'hX-4C<(,a7/*":hOPW*JBn1sGOqZpq.`7B&u_RNL<BkQ2f;8J!8B+,.U_1=uY2#:E#QH5^'LoTFG3&1C.b%DR3?7f@b9Tnh>Z`rrskqU3".\W.oI7WQ#U`9cP"<&W(Bq6]J[&:3ffHBV16QUM/^-*smp6I)8oDZIN]aMPac;Q0<N_=9-JQGQ;k#%3;;XMrBM#@>CU%*Z>6,X-+([DBP8#U21i"uU(_?@S,m_=n1,D>DF).2=SZr57USGh%6t/YQ^+h/d11C64>.?d)b<MT%"SQ%cTJDU%:k"._OMQHJ(aW8FVM%L1Hm4F"+:#7rB)#SH@))laO@8#0U=7X(5uMM%:)I4K@OjGS[@fq0.0HsY++bh=d;s_:oeG[qLr:$2BYuE&%T>VN#3M(?4K!f.)q2qKR\,_]oi(8OOB1W1O]-,`o;&iHN1m4"&7n-%*,`W()JlN^S85s'V6_M%Fa8kp#m8I"gOROI!39274J=sbJ%MG91e"<(EV?tmLS3&JNF/8c40F)_*eWb7nL*6D$U$91o]%$,pg"CfNP/MJm''DnssJh\@1!;`KFl36P]UrTt_"p*hFSY5^+9#S7e%epp%F(sNiM)g(\66WkURF-]qfj6GE,JMf]_#u3NYV?q?H8.u2K)"+0R=]Ln9io:^@$QHl/jH0sE]S[0:;hTE&1l4)pM$'Z;BF!TM%C`lmm)Mn2u5aeCHL\6i_L1d05GeZc^(<e1g2U5_*W-J7pQlJdMTCEM,6/mFiWSGIchZt42fTa2,Pk#fs$,i,E[%:E^li\R%#$Mp!%-*lh:%8);)9p2e-#5SK]KU%)DifW+8?>`<TS0EJ--dTSH"`U9Q)b[F+^1.hV?WN2fa_+;K,k/R3g^C,Ope3e[H"7M/neS``<.\c(%F@?mPBHT'ilX;MS;B'T47G1p5'@Gc=\VYP8^hXpX$Z)eqY(ORkhoe-5m"09[F!Y7$J2fSSUl!_4[>=qIPUC>\BL8r+clgE'(,Sjn%&?r+C^l8S#?P)^hKM4Zh[m9).:+Np#!q@\CM51:i#EAWaX=[QB"D3q':\(S8.i!=DScKacBK%4m0k/\_quepnIL3T="g3SIf$f)#%MOBg<:-aS*P+Wm$Hrg`^[$cI)LeaEt<O?UteKEaH]Pb]qSBB8n!^)MR[Z5+D4.%(X':)Y*j.,armEn65E2l2B^k#0MEcU2q1_H2Z%d3mlWhuf-E")0\N+ea2R]d.dX"9o_<)[np-fqAFl(tB/&/2i#c^_.#D915`/J=K^rU^F+6:6+.5*X)OD%FRX]J;:oJPpDgGINtMm%aI5mMT*77.Wi@Lq#53U>ONAbm$.BW"nK<!#/V9*,_b5%B!kNqb">XCBCMErH(l%$!rGQ(N);22:mOj-K8O==j:=\8iQn4PZXl^l_%ak4B_JhTtMOTnua40b$C4TmZ/7s,6@.+!j09rJN:&.9Zo>4AY>oTKq\*.fsni=0B'a=8oSc3SI?:T:rk;\D$-;KbtO&p)@n?=jtD%WCSG:EsNW(14Db-M<b;`\RC<o"oeQEQ@u6i!'WV#T+/lk"`5NX/F]q^1LqnoE!)4;7V(U[LtVjTJ:q?a4T>_l3I"sX*@qik!!A9j%JO%>?#`kXbKB["idgI.("po]\FL_P-9uh,sMBa@.0S9BD,T2)*]a:tW'f#8k8F.g6%LW>A3HUX0#H$$+dA>kG>S@=doA<qJ'9c6T%/LSN!0Jl95K;<7T"Srf6iGc$'p^j%0Yf%,^1#[Wl/5!C3K.rZZUP]9q(q8FABSI^d((t:6m$3Ns5bgZ_"5Eni>:)aY5/E<p/41%E%/B0CQ##:,M2'<ce=(k@Ur<?b[(]]jo$k^nt;mjurMDWueA[X9$/WsIKlBEW1LL`iYJKuh/D'TbZ@$@)c"4nCo(V?LWngOo+/4*Yc%r\;EX%*<&>HqETt:bpS2,*K85WfV1>M0[XUNdMunKCZ;T!j2b,PIVSGI6qDbLd]JV>R*V<,R1+i':c(q7<G>NP,K_\>\kN#A]"JG%T^`Eu'C9CjOi.$+*9*8-3KTqrOYA;S_!NI!`VkQPW=:UmaiR$F2n4VLL,]CCE_YI`M+k\fHDl7t7Y,*pBfrS]Gn7ms!YUQ?M$Ak-%R/,fVa`*:7oDb5"4@)P]:pdkQQu+#B^k=94n<p?oUE>;1j^Y_%T+K,l%!!bF(=C)e4bNT"Osbnp#Ip/l'BEM`P2V,&.E=o^R3I;^%jp,tG7Zp.e`c])"BME29,qLXKDjm2`J]"HOQrBFrY+oPC12dd[A]IFh4cg5;i+`@fL\_<5%e(-@!AOKsN!p-;OHc=B!fB=95RHB0%KGSrd+MtWn<_eS2.?4P6-0TKgU8Sc'Kbt>WqlUHdZTSlDnBLE?pLj!$oeu6PI,KFZ;M6$2a!>C-F=ID/U@-C#g<./*@X&4fs2Vs:%0U2f"/d?s&#+C$oAn$=qXWQXb(:8K`Ua/u9FIPM:i]Xi>a'sRgZ@2\5QqmjE\U)2qWtB>mBK<Pa7BqN2At>H*d]Der@0VH^YU!KX%6+;BY2Wf7@F[Ep;#ijl5UHMmD&aoNME?Uu_@5s4F9hA(7T^`39^W`g.T95h638R%QQ6jR"=pEsOU[Uk==fUJ=__<A6-`9PU@ru`h%cSLsB"boOh:Je>Q,iP^<lu&<j6H!@:fG4bdQO`Ka_mb$)^Mrsd/.THuPKY^6a,[)rcsOcI%\F;uPRr+L;,&Y,0b[j%U^rFle"BT[%b=ZtM.i[%4Jm/0bhic\PRY@U7&#8JEW<T-c0PVE!p+bd/512`+^hpmI&5)X%N+FT\_A>T$^o_OS[_Q!l@&QiaA"Ose?h6#l!Tcl7%LndL@JBB&Qa9o!o>6&]ja<ou#`[]Y`#ljC]Kt'MP-DMi,L;K-?76*/Z=]%3.NoGW+2<Y8dh8KLA4(NTI6kTM,<Q[$NbS(@,ORl59%&b+"3XsP:SYoEu5pfj2MZP4h2/4r!+*agF[T"pl##gkSKLI?HcH,V38%3W_^bQ:3Clk7AYEhG(knl_nr)C*B2@@/lC>S:5GUaCh[%AJr0M&0Fck=hn'J^8('_?QBZ97+;Dr@tS8[:0]ajp@$RfapSl!R'?eUJp^-bhD!K?JMk$C'TiA6h&ap@R((*a)SuhT.*uu=#X3i&%82qqM/2*W&$>`%p5RM!TE^H4fO^!XA`P;Ir)io7X,VM[Hcd>]gG^QclN_u/#p`q.;D?$eS<j$a!r4\6oZ<.N"ZZ6dcDEJn5I'^q&%r:87-DB7XO^I)g#muG.0>@5._s8:^L*DX*CQbL0B4hL$*nQbkg)Z#mra'Gd'l_"]$e]j#qJ/t!"b@9]-UU[RnI)lUPN^\3pC8aj,%?_&#tQ:0.04oaKR/]OR[:-uA"DYZ)jHTWrS!,;-)ceB3?+=F&/:UO'9g<>&I++_C7)*DldNPMj4TadW',Y;_##+2m%mU%3c]R)em%[%?FPR5\918,Lp<Zh<i<Es?T@bSS+R<VL@W(jA3Y#@lZGV#)6dXmRi]6[(R._)L:Z%49Q_Gd'&N+9!Xr^a&-jK>GE9dJ*YB\[:?g~>%AI9_PrivateDataEnd
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-15280-*/
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:15281:#define ADDR(X)  (~(X))
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-15282-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-15596-SQLITE_PRIVATE void sqlite3VdbeResolveLabel(Vdbe*, int);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:15597:SQLITE_PRIVATE int sqlite3VdbeCurrentAddr(Vdbe*);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-15598-#ifdef SQLITE_DEBUG
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-26644-**
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:26645:** This file contains inline asm code for retrieving "high-performance"
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-26646-** counters for x86 and x86_64 class CPUs.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-26671-  __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:26672:     __asm {
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-26673-        rdtsc
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-33608-**
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:33609:** This file contains inline asm code for retrieving "high-performance"
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-33610-** counters for x86 and x86_64 class CPUs.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-33635-  __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:33636:     __asm {
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-33637-        rdtsc
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-41464-**
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:41465:** This file contains inline asm code for retrieving "high-performance"
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-41466-** counters for x86 and x86_64 class CPUs.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-41491-  __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:41492:     __asm {
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-41493-        rdtsc
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-77912-  pCtx->argc = nArg;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:77913:  pCtx->iOp = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-77914-  addr = sqlite3VdbeAddOp4(v, eCallCtx ? OP_PureFunc : OP_Function,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-78100-  Parse *p = v->pParse;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:78101:  int j = ADDR(x);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-78102-  assert( v->magic==VDBE_MAGIC_INIT );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-78400-            assert( (sqlite3OpcodeProperty[pOp->opcode] & OPFLG_JUMP)!=0 );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:78401:            assert( ADDR(pOp->p2)<-pParse->nLabel );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:78402:            pOp->p2 = aLabel[ADDR(pOp->p2)];
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-78403-          }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-78424-*/
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:78425:SQLITE_PRIVATE int sqlite3VdbeCurrentAddr(Vdbe *p){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-78426-  assert( p->magic==VDBE_MAGIC_INIT );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-85648-**
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:85649:** This file contains inline asm code for retrieving "high-performance"
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-85650-** counters for x86 and x86_64 class CPUs.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-85675-  __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:85676:     __asm {
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-85677-        rdtsc
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-93423-      sqlite3VdbeChangeP5(v, 1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:93424:      assert( sqlite3VdbeCurrentAddr(v)==2 || db->mallocFailed );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-93425-      aOp = sqlite3VdbeAddOpList(v, ArraySize(openBlob), openBlob, iLn);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-102471-    sqlite3VdbeAddOp1(v, OP_Return, pExpr->y.sub.regReturn);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:102472:    sqlite3VdbeChangeP1(v, pExpr->y.sub.iAddr-1, sqlite3VdbeCurrentAddr(v)-1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-102473-    sqlite3ClearTempRegCache(pParse);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-102592-    sqlite3VdbeAddOp1(v, OP_Return, pExpr->y.sub.regReturn);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:102593:    sqlite3VdbeChangeP1(v, pExpr->y.sub.iAddr-1, sqlite3VdbeCurrentAddr(v)-1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-102594-    sqlite3ClearTempRegCache(pParse);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-105889-    sqlite3VdbeAddOp2(v, OP_AddImm, r1, -2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:105890:    sqlite3VdbeAddOp2(v, OP_IfPos, r1, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-105891-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-108366-    sqlite3VdbeAddOp2(v, OP_Integer, 0, regChng);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:108367:    addrNextRow = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-108368-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-108385-      sqlite3VdbeAddOp0(v, OP_Goto);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:108386:      addrNextRow = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-108387-      if( nColTest==1 && pIdx->nKeyCol==1 && IsUniqueIndex(pIdx) ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-108496-
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:108497:      addrNext = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-108498-      callStatGet(pParse, regStat, STAT_GET_ROWID, regSampleRowid);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-112465-      pParse->nTab = 2;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:112466:      addrTop = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-112467-      sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, addrTop);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-113391-    int j2 = sqlite3VdbeGoto(v, 1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:113392:    addr2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-113393-    sqlite3VdbeVerifyAbortable(v, OE_Abort);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-113406-    sqlite3MayAbort(pParse);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:113407:    addr2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-113408-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-116419-    /* Invoke BEFORE DELETE trigger programs. */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:116420:    addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-116421-    sqlite3CodeRowTrigger(pParse, pTrigger, 
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-116432-    */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:116433:    if( addrStart<sqlite3VdbeCurrentAddr(v) ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-116434-      sqlite3VdbeAddOp4Int(v, opSeek, iDataCur, iLabel, iPk, nPk);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-119080-      sqlite3VdbeGoto(v, iOk);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:119081:      sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-119082-      sqlite3VdbeJumpHere(v, iMustBeInt);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-119107-      if( pTab==pFKey->pFrom && nIncr==1 ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:119108:        int iJump = sqlite3VdbeCurrentAddr(v) + nCol + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-119109-        for(i=0; i<nCol; i++){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-119452-      sqlite3VdbeVerifyAbortable(v, OE_Abort);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:119453:      sqlite3VdbeAddOp2(v, OP_FkIfZero, 0, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-119454-      VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-119628-        Vdbe *v = sqlite3GetVdbe(pParse);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:119629:        int iJump = sqlite3VdbeCurrentAddr(v) + pFKey->nCol + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-119630-        for(i=0; i<pFKey->nCol; i++){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-120319-  int i;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:120320:  int iEnd = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-120321-#ifndef SQLITE_OMIT_VIRTUALTABLE
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-120632-    assert( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:120633:    sqlite3VdbeAddOp3(v, OP_Le, memId+2, sqlite3VdbeCurrentAddr(v)+7, memId);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-120634-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-120984-    regYield = ++pParse->nMem;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:120985:    addrTop = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-120986-    sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, addrTop);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-121159-    addrInsTop = sqlite3VdbeAddOp1(v, OP_Rewind, srcTab); VdbeCoverage(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:121160:    addrCont = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-121161-  }else if( pSelect ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-121350-        }else{
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:121351:          addr1 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-121352-          sqlite3VdbeAddOp2(v, OP_IsNull, regRowid, addr1+2); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-122231-          ** KEY values of this row before the update.  */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:122232:          int addrJump = sqlite3VdbeCurrentAddr(v)+pPk->nKeyCol;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-122233-          int op = OP_Ne;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-122283-        assert( onError==OE_Replace );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:122284:        nConflictCk = sqlite3VdbeCurrentAddr(v) - addrConflictCk;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-122285-        assert( nConflictCk>0 );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-122463-    if( pIdx->pPartIdxWhere ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:122464:      sqlite3VdbeAddOp2(v, OP_IsNull, aRegIdx[i], sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-122465-      VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-125695-  sqlite3VdbeAddOp2(v, OP_ResultRow, 3, 1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:125696:  addr = sqlite3VdbeAddOp3(v, OP_IfPos, 1, sqlite3VdbeCurrentAddr(v)+2, 1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-125697-  VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-126113-        VdbeOp *aOp;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:126114:        int iAddr = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-126115-        sqlite3VdbeVerifyNoMallocRequired(v, ArraySize(setMeta6));
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-126809-        }else if( pParent ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:126810:          int jmp = sqlite3VdbeCurrentAddr(v)+2;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-126811-          sqlite3VdbeAddOp3(v, OP_SeekRowid, i, jmp, regRow); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-127106-      }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:127107:      sqlite3VdbeChangeP3(v, 0, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-127108-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-127421-          sqlite3VdbeAddOp3(v, OP_IfSmaller, iTabCur, 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:127422:                         sqlite3VdbeCurrentAddr(v)+2+(opMask&1), szThreshold);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-127423-          VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129527-    pOp = 0; /* Ensure pOp not used after sqltie3VdbeAddOp3() */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:129528:    addrJmp = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129529-    sqlite3VdbeAddOp3(v, OP_Jump, addrJmp+1, 0, addrJmp+1); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129558-    int iCsr = pSort->iECursor;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:129559:    sqlite3VdbeAddOp2(v, OP_IfNotZero, iLimit, sqlite3VdbeCurrentAddr(v)+4);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129560-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129578-    sqlite3VdbeChangeP2(v, iSkip,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:129579:         pSort->labelOBLopt ? pSort->labelOBLopt : sqlite3VdbeCurrentAddr(v));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129580-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129891-
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:129892:        iJump = sqlite3VdbeCurrentAddr(v) + nResultCol;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129893-        for(i=0; i<nResultCol; i++){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129904-        }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:129905:        assert( sqlite3VdbeCurrentAddr(v)==iJump || pParse->db->mallocFailed );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129906-        sqlite3VdbeAddOp3(v, OP_Copy, regResult, regPrev, nResultCol-1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129969-        ** output table as well.  */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:129970:        int addr = sqlite3VdbeCurrentAddr(v) + 4;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-129971-        sqlite3VdbeAddOp4Int(v, OP_Found, iParm+1, addr, r1, 0);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-130365-        sqlite3VdbeAddOp3(v, OP_SeekRowid, iCsr, 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:130366:            sqlite3VdbeCurrentAddr(v)+1, regKey);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-130367-      }else{
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-130373-        }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:130374:        iJmp = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-130375-        sqlite3VdbeAddOp4Int(v, OP_SeekGE, iCsr, iJmp+2, regKey, nKey);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-131578-          sqlite3VdbeAddOp2(v, OP_Rewind, unionTab, iBreak); VdbeCoverage(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:131579:          iStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-131580-          selectInnerLoop(pParse, p, unionTab,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-131775-
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:131776:  addr = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-131777-  iContinue = sqlite3VdbeMakeLabel(pParse);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-132134-  */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:132135:  addrSelectA = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-132136-  addr1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrA, 0, addrSelectA);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-132146-  */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:132147:  addrSelectB = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-132148-  addr1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrB, 0, addrSelectB);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-132229-  VdbeNoopComment((v, "A-gt-B subroutine"));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:132230:  addrAgtB = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-132231-  if( op==TK_ALL || op==TK_UNION ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-134885-      */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:134886:      int addrTop = sqlite3VdbeCurrentAddr(v)+1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-134887-     
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-135379-      */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:135380:      addrTopOfLoop = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-135381-      if( groupBySort ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-135394-                          (char*)sqlite3KeyInfoRef(pKeyInfo), P4_KEYINFO);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:135395:      addr1 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-135396-      sqlite3VdbeAddOp3(v, OP_Jump, addr1+1, 0, addr1+1); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-135448-      */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:135449:      addrSetAbort = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-135450-      sqlite3VdbeAddOp2(v, OP_Integer, 1, iAbortFlag);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-135453-      sqlite3VdbeResolveLabel(v, addrOutputRow);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:135454:      addrOutputRow = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-135455-      sqlite3VdbeAddOp2(v, OP_IfPos, iUseFlag, addrOutputRow+2);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-140948-    sqlite3ExplainBreakpoint("",zMsg);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:140949:    ret = sqlite3VdbeAddOp4(v, OP_Explain, sqlite3VdbeCurrentAddr(v),
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-140950-                            pParse->addrExplain, 0, zMsg,P4_DYNAMIC);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142128-    pLevel->op = pWInfo->eOnePass ? OP_Noop : OP_VNext;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:142129:    pLevel->p2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142130-    iIn = pLevel->u.in.nIn;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142302-    }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:142303:    start = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142304-    pLevel->op = bRev ? OP_Prev : OP_Next;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142410-        VdbeComment((v, "LIKE loop counter"));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:142411:        pLevel->addrLikeRep = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142412-        /* iLikeRepCntr actually stores 2x the counter register number.  The
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142546-        assert( bStopAtNull==startEq );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:142547:        sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142548-        op = aStartOp[(nConstraint>1)*4 + 2 + bRev];
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142598-    /* Top of the loop body */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:142599:    pLevel->p2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142600-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142604-        /* Except, skip the end-of-range check while doing the NULL-scan */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:142605:        sqlite3VdbeAddOp2(v, OP_IfNot, regBignull, sqlite3VdbeCurrentAddr(v)+3);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142606-        VdbeComment((v, "If NULL-scan 2nd pass"));
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142621-      assert( nConstraint+bSeekPastNull>0 );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:142622:      sqlite3VdbeAddOp2(v, OP_If, regBignull, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-142623-      VdbeComment((v, "If NULL-scan 1st pass"));
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-143012-    }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:143013:    sqlite3VdbeChangeP1(v, iRetInit, sqlite3VdbeCurrentAddr(v));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-143014-    sqlite3VdbeGoto(v, pLevel->addrBrk);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-143044-#ifdef SQLITE_ENABLE_STMT_SCANSTATUS
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:143045:  pLevel->addrVisit = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-143046-#endif
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-143173-  if( pLevel->iLeftJoin ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:143174:    pLevel->addrFirst = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-143175-    sqlite3VdbeAddOp2(v, OP_Integer, 1, pLevel->iLeftJoin);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-143508-          sqlite3ExprCodeTarget(pParse, pRight, r1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:143509:          sqlite3VdbeChangeP3(v, sqlite3VdbeCurrentAddr(v)-1, 0);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-143510-          sqlite3ReleaseTempReg(pParse, r1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-145407-  VdbeOp *pOp = sqlite3VdbeGetOp(v, iStart);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:145408:  int iEnd = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-145409-  if( pParse->db->mallocFailed ) return;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150023-  }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:150024:  pWInfo->iTop = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150025-  if( db->mallocFailed ) goto whereBeginError;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150045-    );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:150046:    pLevel->addrBody = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150047-    notReady = sqlite3WhereCodeOneLoopStart(pParse,v,pWInfo,ii,pLevel,notReady);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150169-              sqlite3VdbeAddOp2(v, OP_IfNotOpen, pIn->iCur, 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:150170:                  sqlite3VdbeCurrentAddr(v) + 2 + 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150171-                     ((pLoop->wsFlags & WHERE_VIRTUALTABLE)==0)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150176-              sqlite3VdbeAddOp4Int(v, OP_IfNoHope, pLevel->iIdxCur,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:150177:                  sqlite3VdbeCurrentAddr(v)+2,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150178-                  pIn->iBase, pIn->nPrefix);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150296-    ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:150297:      last = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-150298-      k = pLevel->addrBody;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-151806-    sqlite3VdbeAddOp4(v, OP_String8, 0, regString, 0, "", P4_STATIC);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:151807:    sqlite3VdbeAddOp3(v, OP_Ge, regString, sqlite3VdbeCurrentAddr(v)+2, reg);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-151808-    sqlite3VdbeChangeP5(v, SQLITE_AFF_NUMERIC|SQLITE_JUMPIFNULL);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-151813-  }else{
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:151814:    sqlite3VdbeAddOp2(v, OP_MustBeInt, reg, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-151815-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-151820-  }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:151821:  sqlite3VdbeAddOp3(v, aOp[eCond], regZero, sqlite3VdbeCurrentAddr(v)+2, reg);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-151822-  VdbeCoverageNeverNullIf(v, eCond==0); /* NULL case captured by */
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152008-        sqlite3VdbeAddOp1(v, OP_Delete, pWin->csrApp);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152009:        sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152010-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152031-      if( pWin->bExprArgs ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152032:        int iStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152033-        VdbeOp *pOp, *pEnd;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152091-      sqlite3VdbeAddOp3(v, OP_Column, pWin->csrApp, 0, pWin->regResult);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152092:      sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152093-    }else if( pWin->regApp ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152157-  VdbeCoverage(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152158:  addrNext = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152159-  sqlite3VdbeAddOp2(v, OP_Rowid, csr, regRowid);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152181-      sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152182:      addr = sqlite3VdbeCurrentAddr(v)+1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152183-      sqlite3VdbeAddOp3(v, OP_Jump, addr, lblNext, addr);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152369-    sqlite3VdbeAddOp3(v, OP_Jump, 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152370:      sqlite3VdbeCurrentAddr(v)+1, addr, sqlite3VdbeCurrentAddr(v)+1
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152371-    );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152493-    }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152494:    sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+3);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152495-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152499-    if( op==OP_Gt || op==OP_Ge ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152500:      sqlite3VdbeChangeP2(v, -1, sqlite3VdbeCurrentAddr(v)+1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152501-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152552-    if( pMWin->eFrmType==TK_RANGE ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152553:      addrNextRange = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152554-      assert( op==WINDOW_AGGINVERSE || op==WINDOW_AGGSTEP );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152578-  }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152579:  addrContinue = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152580-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152635-  if( jumpOnEof ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152636:    sqlite3VdbeAddOp2(v, OP_Next, csr, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152637-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152639-  }else{
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:152640:    sqlite3VdbeAddOp2(v, OP_Next, csr, sqlite3VdbeCurrentAddr(v)+1+bPeer);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-152641-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153280-        int lbl = sqlite3VdbeMakeLabel(pParse);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:153281:        int addrNext = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153282-        windowCodeRangeTest(&s, OP_Ge, s.current.csr, regEnd, s.end.csr, lbl);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153304-        int lbl = 0;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:153305:        addr = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153306-        if( regEnd ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153351-    if( pMWin->eFrmType==TK_RANGE ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:153352:      addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153353-      addrBreak2 = windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153356-    if( pMWin->eEnd==TK_UNBOUNDED ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:153357:      addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153358-      addrBreak1 = windowCodeOp(&s, WINDOW_RETURN_ROW, regStart, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153361-      assert( pMWin->eEnd==TK_FOLLOWING );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:153362:      addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153363-      addrBreak1 = windowCodeOp(&s, WINDOW_RETURN_ROW, regEnd, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153367-    sqlite3VdbeJumpHere(v, addrBreak2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:153368:    addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153369-    addrBreak3 = windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153376-    windowCodeOp(&s, WINDOW_AGGSTEP, 0, 0);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:153377:    addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153378-    addrBreak = windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153390-    }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:153391:    sqlite3VdbeChangeP1(v, addrInteger, sqlite3VdbeCurrentAddr(v));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-153392-    sqlite3VdbeAddOp1(v, OP_Return, regFlushPart);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-196987-    int tnum = pIter->iPkTnum;    /* Root page of PK index */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c:196988:    sqlite3_stmt *pQuery = 0;     /* SELECT name ... WHERE rootpage = $tnum */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/sqlite3.c-196989-    const char *zIdx = 0;         /* Name of PK index */
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/shell/shell.c-355-    FILETIME ftCreation, ftExit;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/shell/shell.c:356:    getProcessTimesAddr(hProcess,&ftCreation,&ftExit,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/shell/shell.c-357-                        &ftKernelBegin,&ftUserBegin);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/shell/shell.c-375-    sqlite3_int64 ftWallEnd = timeOfDay();
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/shell/shell.c:376:    getProcessTimesAddr(hProcess,&ftCreation,&ftExit,&ftKernelEnd,&ftUserEnd);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/shell/shell.c-377-    printf("Run Time: real %.3f user %f sys %f\n",
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/shell/shell.c-14578-    shellPreparePrintf(pAr->db, &rc, &pTest,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/shell/shell.c:14579:        "SELECT name FROM %s WHERE name=$name", 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation_dev/shell/shell.c-14580-        pAr->zSrcTable
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-79-dnl Make sure the local VERSION file matches this configure script
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:80:sqlite_version_sanity_check=`cat $srcdir/VERSION | tr -d '\n'`
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-81-if test "$PACKAGE_VERSION" != "$sqlite_version_sanity_check" ; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-135-  TCLLIBDIR='$(libdir)'
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:136:  for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD}` ; do
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-137-    TCLLIBDIR=$i
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-151-
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:152:VERSION=[`cat $srcdir/VERSION | sed 's/^\([0-9]*\.*[0-9]*\).*/\1/'`]
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-153-AC_MSG_NOTICE(Version set to $VERSION)
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-154-AC_SUBST(VERSION)
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:155:RELEASE=`cat $srcdir/VERSION`
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-156-AC_MSG_NOTICE(Release set to $RELEASE)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-210-else
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:211:  ALLOWRELEASE="-release `cat $srcdir/VERSION`"
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-212-  AC_MSG_RESULT([yes])
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-303-      if test -f "${with_tclconfig}/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:304:        ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-305-      else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-312-      if test x"$cross_compiling" = xno; then
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:313:        for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD}`
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-314-        do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-326-      if test x"$cross_compiling" = xno; then
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:327:        for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD} | sed 's,/tcltk/tcl,/tcl,g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-328-        do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-367-        if test -f "$i/unix/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:368:          ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-369-          break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-376-      for i in \
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:377:            `ls -d ${libdir} 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-378-            `ls -d /usr/local/lib 2>/dev/null` \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-382-        if test -f "$i/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:383:           ac_cv_c_tclconfig=`(cd $i; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-384-           break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-392-         ${srcdir}/../tcl \
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:393:         `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:394:         `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:395:         `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-396-      do
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-397-        if test -f "$i/unix/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac:398:          ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/configure.ac-399-          break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-15267-*/
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:15268:#define ADDR(X)  (~(X))
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-15269-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-15583-SQLITE_PRIVATE void sqlite3VdbeResolveLabel(Vdbe*, int);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:15584:SQLITE_PRIVATE int sqlite3VdbeCurrentAddr(Vdbe*);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-15585-#ifdef SQLITE_DEBUG
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-26631-**
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:26632:** This file contains inline asm code for retrieving "high-performance"
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-26633-** counters for x86 and x86_64 class CPUs.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-26658-  __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:26659:     __asm {
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-26660-        rdtsc
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-33595-**
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:33596:** This file contains inline asm code for retrieving "high-performance"
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-33597-** counters for x86 and x86_64 class CPUs.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-33622-  __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:33623:     __asm {
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-33624-        rdtsc
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-41451-**
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:41452:** This file contains inline asm code for retrieving "high-performance"
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-41453-** counters for x86 and x86_64 class CPUs.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-41478-  __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:41479:     __asm {
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-41480-        rdtsc
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-77899-  pCtx->argc = nArg;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:77900:  pCtx->iOp = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-77901-  addr = sqlite3VdbeAddOp4(v, eCallCtx ? OP_PureFunc : OP_Function,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-78087-  Parse *p = v->pParse;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:78088:  int j = ADDR(x);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-78089-  assert( v->magic==VDBE_MAGIC_INIT );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-78387-            assert( (sqlite3OpcodeProperty[pOp->opcode] & OPFLG_JUMP)!=0 );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:78388:            assert( ADDR(pOp->p2)<-pParse->nLabel );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:78389:            pOp->p2 = aLabel[ADDR(pOp->p2)];
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-78390-          }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-78411-*/
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:78412:SQLITE_PRIVATE int sqlite3VdbeCurrentAddr(Vdbe *p){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-78413-  assert( p->magic==VDBE_MAGIC_INIT );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-85635-**
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:85636:** This file contains inline asm code for retrieving "high-performance"
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-85637-** counters for x86 and x86_64 class CPUs.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-85662-  __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:85663:     __asm {
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-85664-        rdtsc
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-93410-      sqlite3VdbeChangeP5(v, 1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:93411:      assert( sqlite3VdbeCurrentAddr(v)==2 || db->mallocFailed );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-93412-      aOp = sqlite3VdbeAddOpList(v, ArraySize(openBlob), openBlob, iLn);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-102458-    sqlite3VdbeAddOp1(v, OP_Return, pExpr->y.sub.regReturn);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:102459:    sqlite3VdbeChangeP1(v, pExpr->y.sub.iAddr-1, sqlite3VdbeCurrentAddr(v)-1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-102460-    sqlite3ClearTempRegCache(pParse);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-102579-    sqlite3VdbeAddOp1(v, OP_Return, pExpr->y.sub.regReturn);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:102580:    sqlite3VdbeChangeP1(v, pExpr->y.sub.iAddr-1, sqlite3VdbeCurrentAddr(v)-1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-102581-    sqlite3ClearTempRegCache(pParse);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-105876-    sqlite3VdbeAddOp2(v, OP_AddImm, r1, -2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:105877:    sqlite3VdbeAddOp2(v, OP_IfPos, r1, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-105878-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-108353-    sqlite3VdbeAddOp2(v, OP_Integer, 0, regChng);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:108354:    addrNextRow = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-108355-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-108372-      sqlite3VdbeAddOp0(v, OP_Goto);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:108373:      addrNextRow = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-108374-      if( nColTest==1 && pIdx->nKeyCol==1 && IsUniqueIndex(pIdx) ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-108483-
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:108484:      addrNext = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-108485-      callStatGet(pParse, regStat, STAT_GET_ROWID, regSampleRowid);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-112452-      pParse->nTab = 2;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:112453:      addrTop = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-112454-      sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, addrTop);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-113378-    int j2 = sqlite3VdbeGoto(v, 1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:113379:    addr2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-113380-    sqlite3VdbeVerifyAbortable(v, OE_Abort);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-113393-    sqlite3MayAbort(pParse);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:113394:    addr2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-113395-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-116406-    /* Invoke BEFORE DELETE trigger programs. */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:116407:    addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-116408-    sqlite3CodeRowTrigger(pParse, pTrigger, 
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-116419-    */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:116420:    if( addrStart<sqlite3VdbeCurrentAddr(v) ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-116421-      sqlite3VdbeAddOp4Int(v, opSeek, iDataCur, iLabel, iPk, nPk);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-119067-      sqlite3VdbeGoto(v, iOk);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:119068:      sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-119069-      sqlite3VdbeJumpHere(v, iMustBeInt);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-119094-      if( pTab==pFKey->pFrom && nIncr==1 ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:119095:        int iJump = sqlite3VdbeCurrentAddr(v) + nCol + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-119096-        for(i=0; i<nCol; i++){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-119439-      sqlite3VdbeVerifyAbortable(v, OE_Abort);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:119440:      sqlite3VdbeAddOp2(v, OP_FkIfZero, 0, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-119441-      VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-119615-        Vdbe *v = sqlite3GetVdbe(pParse);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:119616:        int iJump = sqlite3VdbeCurrentAddr(v) + pFKey->nCol + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-119617-        for(i=0; i<pFKey->nCol; i++){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-120306-  int i;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:120307:  int iEnd = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-120308-#ifndef SQLITE_OMIT_VIRTUALTABLE
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-120619-    assert( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:120620:    sqlite3VdbeAddOp3(v, OP_Le, memId+2, sqlite3VdbeCurrentAddr(v)+7, memId);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-120621-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-120971-    regYield = ++pParse->nMem;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:120972:    addrTop = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-120973-    sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, addrTop);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-121146-    addrInsTop = sqlite3VdbeAddOp1(v, OP_Rewind, srcTab); VdbeCoverage(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:121147:    addrCont = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-121148-  }else if( pSelect ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-121337-        }else{
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:121338:          addr1 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-121339-          sqlite3VdbeAddOp2(v, OP_IsNull, regRowid, addr1+2); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-122218-          ** KEY values of this row before the update.  */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:122219:          int addrJump = sqlite3VdbeCurrentAddr(v)+pPk->nKeyCol;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-122220-          int op = OP_Ne;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-122270-        assert( onError==OE_Replace );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:122271:        nConflictCk = sqlite3VdbeCurrentAddr(v) - addrConflictCk;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-122272-        assert( nConflictCk>0 );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-122450-    if( pIdx->pPartIdxWhere ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:122451:      sqlite3VdbeAddOp2(v, OP_IsNull, aRegIdx[i], sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-122452-      VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-125682-  sqlite3VdbeAddOp2(v, OP_ResultRow, 3, 1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:125683:  addr = sqlite3VdbeAddOp3(v, OP_IfPos, 1, sqlite3VdbeCurrentAddr(v)+2, 1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-125684-  VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-126100-        VdbeOp *aOp;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:126101:        int iAddr = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-126102-        sqlite3VdbeVerifyNoMallocRequired(v, ArraySize(setMeta6));
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-126796-        }else if( pParent ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:126797:          int jmp = sqlite3VdbeCurrentAddr(v)+2;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-126798-          sqlite3VdbeAddOp3(v, OP_SeekRowid, i, jmp, regRow); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-127093-      }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:127094:      sqlite3VdbeChangeP3(v, 0, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-127095-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-127408-          sqlite3VdbeAddOp3(v, OP_IfSmaller, iTabCur, 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:127409:                         sqlite3VdbeCurrentAddr(v)+2+(opMask&1), szThreshold);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-127410-          VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129514-    pOp = 0; /* Ensure pOp not used after sqltie3VdbeAddOp3() */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:129515:    addrJmp = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129516-    sqlite3VdbeAddOp3(v, OP_Jump, addrJmp+1, 0, addrJmp+1); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129545-    int iCsr = pSort->iECursor;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:129546:    sqlite3VdbeAddOp2(v, OP_IfNotZero, iLimit, sqlite3VdbeCurrentAddr(v)+4);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129547-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129565-    sqlite3VdbeChangeP2(v, iSkip,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:129566:         pSort->labelOBLopt ? pSort->labelOBLopt : sqlite3VdbeCurrentAddr(v));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129567-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129878-
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:129879:        iJump = sqlite3VdbeCurrentAddr(v) + nResultCol;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129880-        for(i=0; i<nResultCol; i++){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129891-        }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:129892:        assert( sqlite3VdbeCurrentAddr(v)==iJump || pParse->db->mallocFailed );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129893-        sqlite3VdbeAddOp3(v, OP_Copy, regResult, regPrev, nResultCol-1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129956-        ** output table as well.  */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:129957:        int addr = sqlite3VdbeCurrentAddr(v) + 4;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-129958-        sqlite3VdbeAddOp4Int(v, OP_Found, iParm+1, addr, r1, 0);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-130352-        sqlite3VdbeAddOp3(v, OP_SeekRowid, iCsr, 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:130353:            sqlite3VdbeCurrentAddr(v)+1, regKey);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-130354-      }else{
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-130360-        }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:130361:        iJmp = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-130362-        sqlite3VdbeAddOp4Int(v, OP_SeekGE, iCsr, iJmp+2, regKey, nKey);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-131565-          sqlite3VdbeAddOp2(v, OP_Rewind, unionTab, iBreak); VdbeCoverage(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:131566:          iStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-131567-          selectInnerLoop(pParse, p, unionTab,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-131762-
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:131763:  addr = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-131764-  iContinue = sqlite3VdbeMakeLabel(pParse);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-132121-  */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:132122:  addrSelectA = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-132123-  addr1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrA, 0, addrSelectA);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-132133-  */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:132134:  addrSelectB = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-132135-  addr1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrB, 0, addrSelectB);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-132216-  VdbeNoopComment((v, "A-gt-B subroutine"));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:132217:  addrAgtB = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-132218-  if( op==TK_ALL || op==TK_UNION ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-134872-      */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:134873:      int addrTop = sqlite3VdbeCurrentAddr(v)+1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-134874-     
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-135366-      */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:135367:      addrTopOfLoop = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-135368-      if( groupBySort ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-135381-                          (char*)sqlite3KeyInfoRef(pKeyInfo), P4_KEYINFO);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:135382:      addr1 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-135383-      sqlite3VdbeAddOp3(v, OP_Jump, addr1+1, 0, addr1+1); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-135435-      */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:135436:      addrSetAbort = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-135437-      sqlite3VdbeAddOp2(v, OP_Integer, 1, iAbortFlag);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-135440-      sqlite3VdbeResolveLabel(v, addrOutputRow);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:135441:      addrOutputRow = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-135442-      sqlite3VdbeAddOp2(v, OP_IfPos, iUseFlag, addrOutputRow+2);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-140935-    sqlite3ExplainBreakpoint("",zMsg);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:140936:    ret = sqlite3VdbeAddOp4(v, OP_Explain, sqlite3VdbeCurrentAddr(v),
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-140937-                            pParse->addrExplain, 0, zMsg,P4_DYNAMIC);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142115-    pLevel->op = pWInfo->eOnePass ? OP_Noop : OP_VNext;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:142116:    pLevel->p2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142117-    iIn = pLevel->u.in.nIn;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142289-    }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:142290:    start = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142291-    pLevel->op = bRev ? OP_Prev : OP_Next;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142397-        VdbeComment((v, "LIKE loop counter"));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:142398:        pLevel->addrLikeRep = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142399-        /* iLikeRepCntr actually stores 2x the counter register number.  The
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142533-        assert( bStopAtNull==startEq );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:142534:        sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142535-        op = aStartOp[(nConstraint>1)*4 + 2 + bRev];
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142585-    /* Top of the loop body */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:142586:    pLevel->p2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142587-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142591-        /* Except, skip the end-of-range check while doing the NULL-scan */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:142592:        sqlite3VdbeAddOp2(v, OP_IfNot, regBignull, sqlite3VdbeCurrentAddr(v)+3);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142593-        VdbeComment((v, "If NULL-scan 2nd pass"));
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142608-      assert( nConstraint+bSeekPastNull>0 );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:142609:      sqlite3VdbeAddOp2(v, OP_If, regBignull, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142610-      VdbeComment((v, "If NULL-scan 1st pass"));
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-142999-    }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:143000:    sqlite3VdbeChangeP1(v, iRetInit, sqlite3VdbeCurrentAddr(v));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-143001-    sqlite3VdbeGoto(v, pLevel->addrBrk);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-143031-#ifdef SQLITE_ENABLE_STMT_SCANSTATUS
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:143032:  pLevel->addrVisit = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-143033-#endif
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-143160-  if( pLevel->iLeftJoin ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:143161:    pLevel->addrFirst = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-143162-    sqlite3VdbeAddOp2(v, OP_Integer, 1, pLevel->iLeftJoin);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-143495-          sqlite3ExprCodeTarget(pParse, pRight, r1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:143496:          sqlite3VdbeChangeP3(v, sqlite3VdbeCurrentAddr(v)-1, 0);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-143497-          sqlite3ReleaseTempReg(pParse, r1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-145394-  VdbeOp *pOp = sqlite3VdbeGetOp(v, iStart);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:145395:  int iEnd = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-145396-  if( pParse->db->mallocFailed ) return;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150010-  }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:150011:  pWInfo->iTop = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150012-  if( db->mallocFailed ) goto whereBeginError;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150032-    );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:150033:    pLevel->addrBody = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150034-    notReady = sqlite3WhereCodeOneLoopStart(pParse,v,pWInfo,ii,pLevel,notReady);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150156-              sqlite3VdbeAddOp2(v, OP_IfNotOpen, pIn->iCur, 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:150157:                  sqlite3VdbeCurrentAddr(v) + 2 + 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150158-                     ((pLoop->wsFlags & WHERE_VIRTUALTABLE)==0)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150163-              sqlite3VdbeAddOp4Int(v, OP_IfNoHope, pLevel->iIdxCur,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:150164:                  sqlite3VdbeCurrentAddr(v)+2,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150165-                  pIn->iBase, pIn->nPrefix);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150283-    ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:150284:      last = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-150285-      k = pLevel->addrBody;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-151793-    sqlite3VdbeAddOp4(v, OP_String8, 0, regString, 0, "", P4_STATIC);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:151794:    sqlite3VdbeAddOp3(v, OP_Ge, regString, sqlite3VdbeCurrentAddr(v)+2, reg);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-151795-    sqlite3VdbeChangeP5(v, SQLITE_AFF_NUMERIC|SQLITE_JUMPIFNULL);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-151800-  }else{
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:151801:    sqlite3VdbeAddOp2(v, OP_MustBeInt, reg, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-151802-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-151807-  }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:151808:  sqlite3VdbeAddOp3(v, aOp[eCond], regZero, sqlite3VdbeCurrentAddr(v)+2, reg);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-151809-  VdbeCoverageNeverNullIf(v, eCond==0); /* NULL case captured by */
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-151995-        sqlite3VdbeAddOp1(v, OP_Delete, pWin->csrApp);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:151996:        sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-151997-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152018-      if( pWin->bExprArgs ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152019:        int iStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152020-        VdbeOp *pOp, *pEnd;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152078-      sqlite3VdbeAddOp3(v, OP_Column, pWin->csrApp, 0, pWin->regResult);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152079:      sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152080-    }else if( pWin->regApp ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152144-  VdbeCoverage(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152145:  addrNext = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152146-  sqlite3VdbeAddOp2(v, OP_Rowid, csr, regRowid);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152168-      sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152169:      addr = sqlite3VdbeCurrentAddr(v)+1;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152170-      sqlite3VdbeAddOp3(v, OP_Jump, addr, lblNext, addr);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152356-    sqlite3VdbeAddOp3(v, OP_Jump, 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152357:      sqlite3VdbeCurrentAddr(v)+1, addr, sqlite3VdbeCurrentAddr(v)+1
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152358-    );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152480-    }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152481:    sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+3);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152482-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152486-    if( op==OP_Gt || op==OP_Ge ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152487:      sqlite3VdbeChangeP2(v, -1, sqlite3VdbeCurrentAddr(v)+1);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152488-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152539-    if( pMWin->eFrmType==TK_RANGE ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152540:      addrNextRange = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152541-      assert( op==WINDOW_AGGINVERSE || op==WINDOW_AGGSTEP );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152565-  }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152566:  addrContinue = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152567-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152622-  if( jumpOnEof ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152623:    sqlite3VdbeAddOp2(v, OP_Next, csr, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152624-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152626-  }else{
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:152627:    sqlite3VdbeAddOp2(v, OP_Next, csr, sqlite3VdbeCurrentAddr(v)+1+bPeer);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-152628-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153267-        int lbl = sqlite3VdbeMakeLabel(pParse);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:153268:        int addrNext = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153269-        windowCodeRangeTest(&s, OP_Ge, s.current.csr, regEnd, s.end.csr, lbl);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153291-        int lbl = 0;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:153292:        addr = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153293-        if( regEnd ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153338-    if( pMWin->eFrmType==TK_RANGE ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:153339:      addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153340-      addrBreak2 = windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153343-    if( pMWin->eEnd==TK_UNBOUNDED ){
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:153344:      addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153345-      addrBreak1 = windowCodeOp(&s, WINDOW_RETURN_ROW, regStart, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153348-      assert( pMWin->eEnd==TK_FOLLOWING );
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:153349:      addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153350-      addrBreak1 = windowCodeOp(&s, WINDOW_RETURN_ROW, regEnd, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153354-    sqlite3VdbeJumpHere(v, addrBreak2);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:153355:    addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153356-    addrBreak3 = windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153363-    windowCodeOp(&s, WINDOW_AGGSTEP, 0, 0);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:153364:    addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153365-    addrBreak = windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153377-    }
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:153378:    sqlite3VdbeChangeP1(v, addrInteger, sqlite3VdbeCurrentAddr(v));
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-153379-    sqlite3VdbeAddOp1(v, OP_Return, regFlushPart);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-196488-    int tnum = pIter->iPkTnum;    /* Root page of PK index */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c:196489:    sqlite3_stmt *pQuery = 0;     /* SELECT name ... WHERE rootpage = $tnum */
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/sqlite3.c-196490-    const char *zIdx = 0;         /* Name of PK index */
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/shell/shell.c-355-    FILETIME ftCreation, ftExit;
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/shell/shell.c:356:    getProcessTimesAddr(hProcess,&ftCreation,&ftExit,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/shell/shell.c-357-                        &ftKernelBegin,&ftUserBegin);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/shell/shell.c-375-    sqlite3_int64 ftWallEnd = timeOfDay();
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/shell/shell.c:376:    getProcessTimesAddr(hProcess,&ftCreation,&ftExit,&ftKernelEnd,&ftUserEnd);
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/shell/shell.c-377-    printf("Run Time: real %.3f user %f sys %f\n",
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/shell/shell.c-14578-    shellPreparePrintf(pAr->db, &rc, &pTest,
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/shell/shell.c:14579:        "SELECT name FROM %s WHERE name=$name", 
chromium-84.0.4147.105/third_party/sqlite/src/amalgamation/shell/shell.c-14580-        pAr->zSrcTable
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-81-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data:82:    <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-83-  </ImportGroup>
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-85-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data:86:    <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-87-  </ImportGroup>
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-89-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data:90:    <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-91-  </ImportGroup>
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-93-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data:94:    <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-95-  </ImportGroup>
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-97-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data:98:    <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-99-  </ImportGroup>
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-101-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data:102:    <Import Project="$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props" Condition="exists('$([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformExtensionSDKLocation(`SQLite.UWP.2015, Version=%versionNumber%`, $(TargetPlatformIdentifier), $(TargetPlatformVersion),  $(SDKReferenceDirectoryRoot), $(SDKExtensionDirectoryRoot), $(SDKReferenceRegistryRoot)))\DesignTime\CommonConfiguration\Neutral\SQLite.UWP.2015.props')" />
chromium-84.0.4147.105/third_party/sqlite/src/vsixtest/vsixtest.vcxproj.data-103-  </ImportGroup>
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/configure.ac-75-TEA_ADD_HEADERS([])
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/configure.ac:76:TEA_ADD_INCLUDES([-I\"`\${CYGPATH} \${srcdir}/generic`\"])
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/configure.ac-77-TEA_ADD_LIBS([])
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-134-TCLLIBPATH	= $(top_builddir)
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:135:TCLSH_ENV	= TCL_LIBRARY=`@CYGPATH@ $(TCL_SRC_DIR)/library` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-136-		  @LD_LIBRARY_PATH_VAR@="$(EXTRA_PATH):$(@LD_LIBRARY_PATH_VAR@)" \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-138-		  TCLLIBPATH="$(TCLLIBPATH)"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:139:#		  TK_LIBRARY=`@CYGPATH@ $(TK_SRC_DIR)/library`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-140-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-235-	    echo "Installing $$i"; \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:236:	    rm -f $(DESTDIR)$(mandir)/mann/`basename $$i`; \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-237-	    $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/mann ; \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-278-# sample.$(OBJEXT): $(srcdir)/generic/sample.c
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:279:# 	$(COMPILE) -c `@CYGPATH@ $(srcdir)/generic/sample.c` -o $@
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-280-#
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-288-.c.@OBJEXT@:
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:289:	$(COMPILE) -c `@CYGPATH@ $<` -o $@
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-290-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-369-	    $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkglibdir)/$$p; \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:370:	    stub=`echo $$p|sed -e "s/.*\(stub\).*/\1/"`; \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-371-	    if test "x$$stub" = "xstub"; then \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-377-	    fi; \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:378:	    ext=`echo $$p|sed -e "s/.*\.//"`; \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-379-	    if test "x$$ext" = "xdll"; then \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:380:		lib=`basename $$p|sed -e 's/.[^.]*$$//'`.lib; \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-381-		if test -f $$lib; then \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-389-	  if test -f $(srcdir)/$$p; then \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:390:	    destp=`basename $$p`; \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-391-	    echo " Install $$destp $(DESTDIR)$(pkglibdir)/$$destp"; \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-428-	list='$(PKG_TCL_SOURCES)'; for p in $$list; do \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in:429:	  p=`basename $$p`; \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/Makefile.in-430-	  rm -f $(DESTDIR)$(pkglibdir)/$$p; \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-67-			    AC_MSG_WARN([--with-tcl argument should refer to directory containing tclConfig.sh, not to tclConfig.sh itself])
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:68:			    with_tclconfig="`echo "${with_tclconfig}" | sed 's!/tclConfig\.sh$!!'`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-69-			fi ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-71-		if test -f "${with_tclconfig}/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:72:		    ac_cv_c_tclconfig="`(cd "${with_tclconfig}"; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-73-		else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-94-			    -a -f "$i/win/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:95:			ac_cv_c_tclconfig="`(cd $i/win; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-96-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-98-		    if test -f "$i/unix/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:99:			ac_cv_c_tclconfig="`(cd $i/unix; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-100-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-112-		    if test -f "$i/Tcl.framework/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:113:			ac_cv_c_tclconfig="`(cd $i/Tcl.framework; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-114-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-125-		    if test -f "$i/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:126:			ac_cv_c_tclconfig="`(cd $i; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-127-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-133-	    if test x"${ac_cv_c_tclconfig}" = x ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:134:		for i in `ls -d ${libdir} 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:135:			`ls -d ${exec_prefix}/lib 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:136:			`ls -d ${prefix}/lib 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-137-			`ls -d /usr/local/lib 2>/dev/null` \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-144-		    if test -f "$i/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:145:			ac_cv_c_tclconfig="`(cd $i; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-146-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-154-			${srcdir}/../tcl \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:155:			`ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:156:			`ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:157:			`ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-158-		    if test "${TEA_PLATFORM}" = "windows" \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-159-			    -a -f "$i/win/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:160:			ac_cv_c_tclconfig="`(cd $i/win; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-161-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-163-		    if test -f "$i/unix/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:164:			ac_cv_c_tclconfig="`(cd $i/unix; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-165-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-222-			    AC_MSG_WARN([--with-tk argument should refer to directory containing tkConfig.sh, not to tkConfig.sh itself])
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:223:			    with_tkconfig="`echo "${with_tkconfig}" | sed 's!/tkConfig\.sh$!!'`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-224-			fi ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-226-		if test -f "${with_tkconfig}/tkConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:227:		    ac_cv_c_tkconfig="`(cd "${with_tkconfig}"; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-228-		else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-249-			    -a -f "$i/win/tkConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:250:			ac_cv_c_tkconfig="`(cd $i/win; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-251-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-253-		    if test -f "$i/unix/tkConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:254:			ac_cv_c_tkconfig="`(cd $i/unix; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-255-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-267-		    if test -f "$i/Tk.framework/tkConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:268:			ac_cv_c_tkconfig="`(cd $i/Tk.framework; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-269-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-275-	    if test x"${ac_cv_c_tkconfig}" = x ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:276:		for i in `ls -d ${libdir} 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:277:			`ls -d ${exec_prefix}/lib 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:278:			`ls -d ${prefix}/lib 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-279-			`ls -d /usr/local/lib 2>/dev/null` \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-284-		    if test -f "$i/tkConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:285:			ac_cv_c_tkconfig="`(cd $i; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-286-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-297-		    if test -f "$i/tkConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:298:			ac_cv_c_tkconfig="`(cd $i; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-299-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-307-			${srcdir}/../tk \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:308:			`ls -dr ${srcdir}/../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:309:			`ls -dr ${srcdir}/../tk[[8-9]].[[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:310:			`ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-311-		    if test "${TEA_PLATFORM}" = "windows" \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-312-			    -a -f "$i/win/tkConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:313:			ac_cv_c_tkconfig="`(cd $i/win; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-314-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-316-		    if test -f "$i/unix/tkConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:317:			ac_cv_c_tkconfig="`(cd $i/unix; pwd)`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-318-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-383-		if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:384:		    for i in "`cd "${TCL_BIN_DIR}"; pwd`" \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:385:			     "`cd "${TCL_BIN_DIR}"/../..; pwd`"; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:386:			if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:387:			    TCL_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TCL_LIB_FILE}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-388-			    break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-392-		if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:393:		    TCL_STUB_LIB_SPEC="-L`echo "${TCL_BIN_DIR}"  | sed -e 's/ /\\\\ /g'` ${TCL_STUB_LIB_FLAG}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-394-		    TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-496-		if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:497:		    for i in "`cd "${TK_BIN_DIR}"; pwd`" \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:498:			     "`cd "${TK_BIN_DIR}"/../..; pwd`"; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:499:			if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:500:			    TK_LIB_SPEC="-F`dirname "$i" | sed -e 's/ /\\\\ /g'` -framework ${TK_LIB_FILE}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-501-			    break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-505-		if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:506:		    TK_STUB_LIB_SPEC="-L` echo "${TK_BIN_DIR}"  | sed -e 's/ /\\\\ /g'` ${TK_STUB_LIB_FLAG}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-507-		    TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-585-        fi
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:586:        list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:587:              `ls -d ${TCL_BIN_DIR}/..     2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:588:              `ls -d ${TCL_PREFIX}/bin     2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-589-        for i in $list ; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-590-            if test -f "$i/${TCLSH_PROG}" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:591:                REAL_TCL_BIN_DIR="`cd "$i"; pwd`/"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-592-                break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-635-        fi
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:636:        list="`ls -d ${TK_BIN_DIR}/../bin 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:637:              `ls -d ${TK_BIN_DIR}/..     2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:638:              `ls -d ${TK_PREFIX}/bin     2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-639-        for i in $list ; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-640-            if test -f "$i/${WISH_PROG}" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:641:                REAL_TK_BIN_DIR="`cd "$i"; pwd`/"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-642-                break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1121-    # TEA specific: use PACKAGE_VERSION instead of VERSION
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1122:    TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1123:    ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1124-    TCL_LIB_VERSIONS_OK=ok
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1149-		fi
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1150:		MSSDK=`echo "$MSSDK" | sed -e  's!\\\!/!g'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1151-		PATH64=""
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1213-		fi
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1214:		WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1215:		SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1216-		if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1258-		    RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\""
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1259:		    arch=`echo ${ARCH} | awk '{print tolower([$]0)}'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1260-		    defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1271-		    CFLAGS_OPTIMIZE="-nologo -Ox"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1272:		    lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1273-		    lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1359-			# Make sure only first arg gets _r
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1360:		    	CC=`echo "$CC" | sed -e 's/^\([[^ ]]*\)/\1_r/'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1361-			;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1478-		AS_IF([test "$GCC" = yes], [
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1479:		    case `${CC} -dumpmachine` in
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1480-			hppa64*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1615-		#		Don't link with -lpthread
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1616:		LIBS=`echo $LIBS | sed s/-lpthread//`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1617-		CFLAGS="$CFLAGS -pthread"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1633-		# The -pthread needs to go in the CFLAGS, not LIBS
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1634:		LIBS=`echo $LIBS | sed s/-pthread//`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1635-		CFLAGS="$CFLAGS -pthread"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1651-		# The -pthread needs to go in the LDFLAGS, not LIBS
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1652:		LIBS=`echo $LIBS | sed s/-pthread//`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1653-		CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1657-		# Version numbers are dot-stripped by system policy.
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1658:		TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1659-		UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1722-	    # TEA specific: link shlib with current and compatibility version flags
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1723:	    vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([[0-9]]\{1,5\}\)\(\(\.[[0-9]]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1724-	    SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1726-	    # Don't use -prebind when building for Mac OS X 10.4 or later only:
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1727:	    AS_IF([test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1728:		"`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int([$]2)}'`" -lt 4], [
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1729-		LDFLAGS="$LDFLAGS -prebind"])
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1754-			for v in CFLAGS CPPFLAGS LDFLAGS; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1755:			    eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1756-			done
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1767-			for v in CFLAGS CPPFLAGS LDFLAGS; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1768:			    eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"'
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1769-			done
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1782-		    for v in CFLAGS CPPFLAGS LDFLAGS; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1783:			eval $v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"'
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1784-		    done])
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1809-		CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1810:		LIBS=`echo $LIBS | sed s/-lpthreads//`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1811-		AS_IF([test "$GCC" = yes], [
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1879-		    AS_IF([test "$GCC" = yes], [
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:1880:			AS_IF([test "`${CC} -dumpversion | awk -F. '{print [$]1}'`" -lt 3], [
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-1881-			    AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system])
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-2961-		# this assumes it is in a VPATH dir
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:2962:		i=`basename $i`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-2963-		# handle user calling this before or after TEA_SETUP_COMPILER
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-2964-		if test x"${OBJEXT}" != x ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:2965:		    j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-2966-		else
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:2967:		    j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-2968-		fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3005-	# this assumes it is in a VPATH dir
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3006:	i=`basename $i`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3007-	# handle user calling this before or after TEA_SETUP_COMPILER
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3008-	if test x"${OBJEXT}" != x ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3009:	    j="`echo $i | sed -e 's/\.[[^.]]*$//'`.${OBJEXT}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3010-	else
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3011:	    j="`echo $i | sed -e 's/\.[[^.]]*$//'`.\${OBJEXT}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3012-	fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3113-	    # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3114:	    i=`echo "$i" | sed -e 's/^\([[^-]].*\)\.lib[$]/-l\1/i'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3115-	fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3353-	    if test x"${TK_BIN_DIR}" != x ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3354:		SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3355-	    fi
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3356:	    SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\""
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3357-	    if test "$GCC" = "yes"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3445-    for i in \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3446:	    `ls -dr ${tea_extra_lib_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3447:	    `ls -dr ${tea_extra_lib_dir}/lib$1[[0-9]]* 2>/dev/null ` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3448:	    `ls -dr ${tea_lib_name_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3449:	    `ls -dr ${tea_lib_name_dir}/lib$1[[0-9]]* 2>/dev/null ` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3450:	    `ls -dr /usr/lib/$1[[0-9]]*.lib 2>/dev/null ` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3451:	    `ls -dr /usr/lib/lib$1[[0-9]]* 2>/dev/null ` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3452:	    `ls -dr /usr/lib64/$1[[0-9]]*.lib 2>/dev/null ` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3453:	    `ls -dr /usr/lib64/lib$1[[0-9]]* 2>/dev/null ` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3454:	    `ls -dr /usr/local/lib/$1[[0-9]]*.lib 2>/dev/null ` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3455:	    `ls -dr /usr/local/lib/lib$1[[0-9]]* 2>/dev/null ` ; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3456-	if test -f "$i" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3457:	    tea_lib_name_dir=`dirname $i`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3458:	    $1_LIB_NAME=`basename $i`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3459-	    $1_LIB_PATH_NAME=$i
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3464-    if test "${TEA_PLATFORM}" = "windows"; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3465:	$1_LIB_SPEC=\"`${CYGPATH} ${$1_LIB_PATH_NAME} 2>/dev/null`\"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3466-    else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3468-
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3469:	tea_lib_name_lib=`echo ${$1_LIB_NAME}|sed -e 's/^lib//' -e 's/\.[[^.]]*$//' -e 's/\.so.*//'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3470-	$1_LIB_SPEC="-L${tea_lib_name_dir} -l${tea_lib_name_lib}"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3502-
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3503:    TCL_SRC_DIR_NATIVE=`${CYGPATH} ${TCL_SRC_DIR}`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3504-    TCL_TOP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}\"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3535-		    else
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3536:			TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo "${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3537-		    fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3595-		    *TCL_FRAMEWORK*)
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3596:			list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3597-			;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3603-	    if test -f "${TCL_BIN_DIR}/Makefile" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3604:		list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3605-	    fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3611-	    list="$list \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3612:		`ls -d ${temp_includedir}        2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3613:		`ls -d ${TCL_PREFIX}/include     2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3614:		`ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3615-	    if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3617-		if test x"${TCL_INCLUDE_SPEC}" != x ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3618:		    d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3619:		    list="$list `ls -d ${d} 2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3620-		fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3640-
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3641:    INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tclh}`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3642-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3669-
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3670:    TK_SRC_DIR_NATIVE=`${CYGPATH} ${TK_SRC_DIR}`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3671-    TK_TOP_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}\"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3713-			else
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3714:			    TK_INCLUDES="${TK_INCLUDES} ${TK_INCLUDE_SPEC} `echo "${TK_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3715-			fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3774-		    *TK_FRAMEWORK*)
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3775:			list="`ls -d ${TK_BIN_DIR}/Headers 2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3776-			;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3782-	    if test -f "${TK_BIN_DIR}/Makefile" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3783:		list="$list `ls -d ${TK_SRC_DIR}/generic 2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3784-	    fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3791-	    list="$list \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3792:		`ls -d ${temp_includedir}        2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3793:		`ls -d ${TK_PREFIX}/include      2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3794:		`ls -d ${TK_BIN_DIR}/../include  2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3795:		`ls -d ${TCL_PREFIX}/include     2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3796:		`ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3797-	    if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3799-		if test x"${TK_INCLUDE_SPEC}" != x ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3800:		    d=`echo "${TK_INCLUDE_SPEC}" | sed -e 's/^-I//'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3801:		    list="$list `ls -d ${d} 2>/dev/null`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3802-		fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3822-
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3823:    INCLUDE_DIR_NATIVE=`${CYGPATH} ${ac_cv_c_tkh}`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3824-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3832-	if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3833:	    INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3834-	    TK_XINCLUDES=-I\"${INCLUDE_DIR_NATIVE}\"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3880-			    AC_MSG_WARN([--with-$1 argument should refer to directory containing $1Config.sh, not to $1Config.sh itself])
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3881:			    with_$1config=`echo ${with_$1config} | sed 's!/$1Config\.sh$!!'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3882-			fi;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3884-		if test -f "${with_$1config}/$1Config.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3885:		    ac_cv_c_$1config=`(cd ${with_$1config}; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3886-		else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3894-			../$1 \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3895:			`ls -dr ../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3896:			`ls -dr ../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3897:			`ls -dr ../$1*[[0-9]].[[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3898:			`ls -dr ../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3899-			../../$1 \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3900:			`ls -dr ../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3901:			`ls -dr ../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3902:			`ls -dr ../../$1*[[0-9]].[[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3903:			`ls -dr ../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3904-			../../../$1 \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3905:			`ls -dr ../../../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3906:			`ls -dr ../../../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3907:			`ls -dr ../../../$1*[[0-9]].[[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3908:			`ls -dr ../../../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3909-			${srcdir}/../$1 \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3910:			`ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]*.[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3911:			`ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]][[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3912:			`ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3913:			`ls -dr ${srcdir}/../$1*[[0-9]].[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3914-			; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3915-		    if test -f "$i/$1Config.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3916:			ac_cv_c_$1config=`(cd $i; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3917-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3919-		    if test -f "$i/unix/$1Config.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3920:			ac_cv_c_$1config=`(cd $i/unix; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3921-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3927-	    if test x"${ac_cv_c_$1config}" = x ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3928:		for i in `ls -d ${libdir} 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3929:			`ls -d ${exec_prefix}/lib 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3930:			`ls -d ${prefix}/lib 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3931-			`ls -d /usr/local/lib 2>/dev/null` \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3936-		    if test -f "$i/$1Config.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:3937:			ac_cv_c_$1config=`(cd $i; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-3938-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4040-	if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:4041:	    TEA_ADD_LIBS([\"`${CYGPATH} ${$1_LIB_PATH}`\"])
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4042-	    AC_MSG_RESULT([using $1_LIB_PATH ${$1_LIB_PATH}])
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4076-    else
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:4077:	eval $1_LIB_FLAG="-l$1`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:4078:	eval $1_STUB_LIB_FLAG="-l$1stub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}"
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4079-    fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4130-		if test -d "${with_celibconfig}/inc" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:4131:		    ac_cv_c_celibconfig=`(cd ${with_celibconfig}; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4132-		else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4146-			${srcdir}/../celib \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:4147:			`ls -dr ${srcdir}/../celib-*3.[[0-9]]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4148-			; do
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4149-		    if test -d "$i/inc" ; then
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:4150:			ac_cv_c_celibconfig=`(cd $i; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4151-			break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4160-	    CELIB_DIR=${ac_cv_c_celibconfig}
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4:4161:	    CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/tcl.m4-4162-	    AC_MSG_RESULT([found $CELIB_DIR])
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-225-      fi
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh:226:      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-227-    *)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-277-      dstdir=$dst
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh:278:      dst=$dstdir/`basename "$src"`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-279-      dstdir_status=0
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-359-		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh:360:		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-361-		   case $ls_ld_tmpdir in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-366-		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh:367:		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-368-		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-426-	    case $prefix in
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh:427:	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-428-	      *) qprefix=$prefix;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-475-    if $copy_on_change &&
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh:476:       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh:477:       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/tea/tclconfig/install-sh-478-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/INSTALL-173-directory configuration variables that were expressed in terms of
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/INSTALL:174:`${prefix}'.  Any directories that were specified during `configure',
chromium-84.0.4147.105/third_party/sqlite/src/autoconf/INSTALL-175-but not in terms of `${prefix}', must each be overridden at install
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c-3532-*/
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c:3533:static int SQLITE_TCLAPI test_intarray_addr(
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c-3534-  void * clientData,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c-3566-*/
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c:3567:static int SQLITE_TCLAPI test_int64array_addr(
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c-3568-  void * clientData,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c-3602-*/
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c:3603:static int SQLITE_TCLAPI test_doublearray_addr(
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c-3604-  void * clientData,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c-3636-*/
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c:3637:static int SQLITE_TCLAPI test_textarray_addr(
chromium-84.0.4147.105/third_party/sqlite/src/src/test1.c-3638-  void * clientData,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/expr.c-2989-    sqlite3VdbeAddOp1(v, OP_Return, pExpr->y.sub.regReturn);
chromium-84.0.4147.105/third_party/sqlite/src/src/expr.c:2990:    sqlite3VdbeChangeP1(v, pExpr->y.sub.iAddr-1, sqlite3VdbeCurrentAddr(v)-1);
chromium-84.0.4147.105/third_party/sqlite/src/src/expr.c-2991-    sqlite3ClearTempRegCache(pParse);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/expr.c-3110-    sqlite3VdbeAddOp1(v, OP_Return, pExpr->y.sub.regReturn);
chromium-84.0.4147.105/third_party/sqlite/src/src/expr.c:3111:    sqlite3VdbeChangeP1(v, pExpr->y.sub.iAddr-1, sqlite3VdbeCurrentAddr(v)-1);
chromium-84.0.4147.105/third_party/sqlite/src/src/expr.c-3112-    sqlite3ClearTempRegCache(pParse);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c-384-      sqlite3VdbeGoto(v, iOk);
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c:385:      sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c-386-      sqlite3VdbeJumpHere(v, iMustBeInt);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c-411-      if( pTab==pFKey->pFrom && nIncr==1 ){
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c:412:        int iJump = sqlite3VdbeCurrentAddr(v) + nCol + 1;
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c-413-        for(i=0; i<nCol; i++){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c-756-      sqlite3VdbeVerifyAbortable(v, OE_Abort);
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c:757:      sqlite3VdbeAddOp2(v, OP_FkIfZero, 0, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c-758-      VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c-932-        Vdbe *v = sqlite3GetVdbe(pParse);
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c:933:        int iJump = sqlite3VdbeCurrentAddr(v) + pFKey->nCol + 1;
chromium-84.0.4147.105/third_party/sqlite/src/src/fkey.c-934-        for(i=0; i<pFKey->nCol; i++){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/analyze.c-1138-    sqlite3VdbeAddOp2(v, OP_Integer, 0, regChng);
chromium-84.0.4147.105/third_party/sqlite/src/src/analyze.c:1139:    addrNextRow = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/analyze.c-1140-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/analyze.c-1157-      sqlite3VdbeAddOp0(v, OP_Goto);
chromium-84.0.4147.105/third_party/sqlite/src/src/analyze.c:1158:      addrNextRow = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/analyze.c-1159-      if( nColTest==1 && pIdx->nKeyCol==1 && IsUniqueIndex(pIdx) ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/analyze.c-1268-
chromium-84.0.4147.105/third_party/sqlite/src/src/analyze.c:1269:      addrNext = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/analyze.c-1270-      callStatGet(pParse, regStat, STAT_GET_ROWID, regSampleRowid);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/test_fs.c-40-**
chromium-84.0.4147.105/third_party/sqlite/src/src/test_fs.c:41:** When queried, a WHERE term of the form "dir = $dir" must be provided. The
chromium-84.0.4147.105/third_party/sqlite/src/src/test_fs.c-42-** virtual table then appears to have one row for each entry in file-system
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-172-  int i;
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c:173:  int iEnd = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-174-#ifndef SQLITE_OMIT_VIRTUALTABLE
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-485-    assert( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) );
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c:486:    sqlite3VdbeAddOp3(v, OP_Le, memId+2, sqlite3VdbeCurrentAddr(v)+7, memId);
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-487-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-837-    regYield = ++pParse->nMem;
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c:838:    addrTop = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-839-    sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, addrTop);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-1012-    addrInsTop = sqlite3VdbeAddOp1(v, OP_Rewind, srcTab); VdbeCoverage(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c:1013:    addrCont = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-1014-  }else if( pSelect ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-1203-        }else{
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c:1204:          addr1 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-1205-          sqlite3VdbeAddOp2(v, OP_IsNull, regRowid, addr1+2); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-2084-          ** KEY values of this row before the update.  */
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c:2085:          int addrJump = sqlite3VdbeCurrentAddr(v)+pPk->nKeyCol;
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-2086-          int op = OP_Ne;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-2136-        assert( onError==OE_Replace );
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c:2137:        nConflictCk = sqlite3VdbeCurrentAddr(v) - addrConflictCk;
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-2138-        assert( nConflictCk>0 );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-2316-    if( pIdx->pPartIdxWhere ){
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c:2317:      sqlite3VdbeAddOp2(v, OP_IsNull, aRegIdx[i], sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/src/insert.c-2318-      VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/alter.c-404-    sqlite3VdbeAddOp2(v, OP_AddImm, r1, -2);
chromium-84.0.4147.105/third_party/sqlite/src/src/alter.c:405:    sqlite3VdbeAddOp2(v, OP_IfPos, r1, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/src/alter.c-406-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-356-  sqlite3VdbeAddOp2(v, OP_ResultRow, 3, 1);
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c:357:  addr = sqlite3VdbeAddOp3(v, OP_IfPos, 1, sqlite3VdbeCurrentAddr(v)+2, 1);
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-358-  VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-774-        VdbeOp *aOp;
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c:775:        int iAddr = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-776-        sqlite3VdbeVerifyNoMallocRequired(v, ArraySize(setMeta6));
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-1470-        }else if( pParent ){
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c:1471:          int jmp = sqlite3VdbeCurrentAddr(v)+2;
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-1472-          sqlite3VdbeAddOp3(v, OP_SeekRowid, i, jmp, regRow); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-1767-      }
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c:1768:      sqlite3VdbeChangeP3(v, 0, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-1769-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-2082-          sqlite3VdbeAddOp3(v, OP_IfSmaller, iTabCur, 
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c:2083:                         sqlite3VdbeCurrentAddr(v)+2+(opMask&1), szThreshold);
chromium-84.0.4147.105/third_party/sqlite/src/src/pragma.c-2084-          VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c-377-  pCtx->argc = nArg;
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c:378:  pCtx->iOp = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c-379-  addr = sqlite3VdbeAddOp4(v, eCallCtx ? OP_PureFunc : OP_Function,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c-565-  Parse *p = v->pParse;
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c:566:  int j = ADDR(x);
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c-567-  assert( v->magic==VDBE_MAGIC_INIT );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c-865-            assert( (sqlite3OpcodeProperty[pOp->opcode] & OPFLG_JUMP)!=0 );
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c:866:            assert( ADDR(pOp->p2)<-pParse->nLabel );
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c:867:            pOp->p2 = aLabel[ADDR(pOp->p2)];
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c-868-          }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c-889-*/
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c:890:int sqlite3VdbeCurrentAddr(Vdbe *p){
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeaux.c-891-  assert( p->magic==VDBE_MAGIC_INIT );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1445-    sqlite3VdbeAddOp4(v, OP_String8, 0, regString, 0, "", P4_STATIC);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:1446:    sqlite3VdbeAddOp3(v, OP_Ge, regString, sqlite3VdbeCurrentAddr(v)+2, reg);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1447-    sqlite3VdbeChangeP5(v, SQLITE_AFF_NUMERIC|SQLITE_JUMPIFNULL);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1452-  }else{
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:1453:    sqlite3VdbeAddOp2(v, OP_MustBeInt, reg, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1454-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1459-  }
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:1460:  sqlite3VdbeAddOp3(v, aOp[eCond], regZero, sqlite3VdbeCurrentAddr(v)+2, reg);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1461-  VdbeCoverageNeverNullIf(v, eCond==0); /* NULL case captured by */
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1647-        sqlite3VdbeAddOp1(v, OP_Delete, pWin->csrApp);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:1648:        sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1649-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1670-      if( pWin->bExprArgs ){
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:1671:        int iStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1672-        VdbeOp *pOp, *pEnd;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1730-      sqlite3VdbeAddOp3(v, OP_Column, pWin->csrApp, 0, pWin->regResult);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:1731:      sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1732-    }else if( pWin->regApp ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1796-  VdbeCoverage(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:1797:  addrNext = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1798-  sqlite3VdbeAddOp2(v, OP_Rowid, csr, regRowid);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1820-      sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:1821:      addr = sqlite3VdbeCurrentAddr(v)+1;
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-1822-      sqlite3VdbeAddOp3(v, OP_Jump, addr, lblNext, addr);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2008-    sqlite3VdbeAddOp3(v, OP_Jump, 
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2009:      sqlite3VdbeCurrentAddr(v)+1, addr, sqlite3VdbeCurrentAddr(v)+1
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2010-    );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2132-    }
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2133:    sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+3);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2134-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2138-    if( op==OP_Gt || op==OP_Ge ){
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2139:      sqlite3VdbeChangeP2(v, -1, sqlite3VdbeCurrentAddr(v)+1);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2140-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2191-    if( pMWin->eFrmType==TK_RANGE ){
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2192:      addrNextRange = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2193-      assert( op==WINDOW_AGGINVERSE || op==WINDOW_AGGSTEP );
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2217-  }
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2218:  addrContinue = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2219-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2274-  if( jumpOnEof ){
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2275:    sqlite3VdbeAddOp2(v, OP_Next, csr, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2276-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2278-  }else{
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2279:    sqlite3VdbeAddOp2(v, OP_Next, csr, sqlite3VdbeCurrentAddr(v)+1+bPeer);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2280-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2919-        int lbl = sqlite3VdbeMakeLabel(pParse);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2920:        int addrNext = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2921-        windowCodeRangeTest(&s, OP_Ge, s.current.csr, regEnd, s.end.csr, lbl);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2943-        int lbl = 0;
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2944:        addr = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2945-        if( regEnd ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2990-    if( pMWin->eFrmType==TK_RANGE ){
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2991:      addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2992-      addrBreak2 = windowCodeOp(&s, WINDOW_AGGINVERSE, regStart, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2995-    if( pMWin->eEnd==TK_UNBOUNDED ){
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:2996:      addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-2997-      addrBreak1 = windowCodeOp(&s, WINDOW_RETURN_ROW, regStart, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-3000-      assert( pMWin->eEnd==TK_FOLLOWING );
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:3001:      addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-3002-      addrBreak1 = windowCodeOp(&s, WINDOW_RETURN_ROW, regEnd, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-3006-    sqlite3VdbeJumpHere(v, addrBreak2);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:3007:    addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-3008-    addrBreak3 = windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-3015-    windowCodeOp(&s, WINDOW_AGGSTEP, 0, 0);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:3016:    addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-3017-    addrBreak = windowCodeOp(&s, WINDOW_RETURN_ROW, 0, 1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-3029-    }
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c:3030:    sqlite3VdbeChangeP1(v, addrInteger, sqlite3VdbeCurrentAddr(v));
chromium-84.0.4147.105/third_party/sqlite/src/src/window.c-3031-    sqlite3VdbeAddOp1(v, OP_Return, regFlushPart);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/build.c-2419-      pParse->nTab = 2;
chromium-84.0.4147.105/third_party/sqlite/src/src/build.c:2420:      addrTop = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/src/build.c-2421-      sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, addrTop);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/build.c-3345-    int j2 = sqlite3VdbeGoto(v, 1);
chromium-84.0.4147.105/third_party/sqlite/src/src/build.c:3346:    addr2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/build.c-3347-    sqlite3VdbeVerifyAbortable(v, OE_Abort);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/build.c-3360-    sqlite3MayAbort(pParse);
chromium-84.0.4147.105/third_party/sqlite/src/src/build.c:3361:    addr2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/build.c-3362-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/shell.c.in-337-    FILETIME ftCreation, ftExit;
chromium-84.0.4147.105/third_party/sqlite/src/src/shell.c.in:338:    getProcessTimesAddr(hProcess,&ftCreation,&ftExit,
chromium-84.0.4147.105/third_party/sqlite/src/src/shell.c.in-339-                        &ftKernelBegin,&ftUserBegin);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/shell.c.in-357-    sqlite3_int64 ftWallEnd = timeOfDay();
chromium-84.0.4147.105/third_party/sqlite/src/src/shell.c.in:358:    getProcessTimesAddr(hProcess,&ftCreation,&ftExit,&ftKernelEnd,&ftUserEnd);
chromium-84.0.4147.105/third_party/sqlite/src/src/shell.c.in-359-    printf("Run Time: real %.3f user %f sys %f\n",
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/shell.c.in-5911-    shellPreparePrintf(pAr->db, &rc, &pTest,
chromium-84.0.4147.105/third_party/sqlite/src/src/shell.c.in:5912:        "SELECT name FROM %s WHERE name=$name", 
chromium-84.0.4147.105/third_party/sqlite/src/src/shell.c.in-5913-        pAr->zSrcTable
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-586-  VdbeOp *pOp = sqlite3VdbeGetOp(v, iStart);
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c:587:  int iEnd = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-588-  if( pParse->db->mallocFailed ) return;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5202-  }
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c:5203:  pWInfo->iTop = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5204-  if( db->mallocFailed ) goto whereBeginError;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5224-    );
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c:5225:    pLevel->addrBody = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5226-    notReady = sqlite3WhereCodeOneLoopStart(pParse,v,pWInfo,ii,pLevel,notReady);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5348-              sqlite3VdbeAddOp2(v, OP_IfNotOpen, pIn->iCur, 
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c:5349:                  sqlite3VdbeCurrentAddr(v) + 2 + 
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5350-                     ((pLoop->wsFlags & WHERE_VIRTUALTABLE)==0)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5355-              sqlite3VdbeAddOp4Int(v, OP_IfNoHope, pLevel->iIdxCur,
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c:5356:                  sqlite3VdbeCurrentAddr(v)+2,
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5357-                  pIn->iBase, pIn->nPrefix);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5475-    ){
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c:5476:      last = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/where.c-5477-      k = pLevel->addrBody;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeblob.c-279-      sqlite3VdbeChangeP5(v, 1);
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeblob.c:280:      assert( sqlite3VdbeCurrentAddr(v)==2 || db->mallocFailed );
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbeblob.c-281-      aOp = sqlite3VdbeAddOpList(v, ArraySize(openBlob), openBlob, iLn);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/hwtime.h-12-**
chromium-84.0.4147.105/third_party/sqlite/src/src/hwtime.h:13:** This file contains inline asm code for retrieving "high-performance"
chromium-84.0.4147.105/third_party/sqlite/src/src/hwtime.h-14-** counters for x86 and x86_64 class CPUs.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/hwtime.h-39-  __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){
chromium-84.0.4147.105/third_party/sqlite/src/src/hwtime.h:40:     __asm {
chromium-84.0.4147.105/third_party/sqlite/src/src/hwtime.h-41-        rdtsc
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbe.h-162-*/
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbe.h:163:#define ADDR(X)  (~(X))
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbe.h-164-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbe.h-253-void sqlite3VdbeResolveLabel(Vdbe*, int);
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbe.h:254:int sqlite3VdbeCurrentAddr(Vdbe*);
chromium-84.0.4147.105/third_party/sqlite/src/src/vdbe.h-255-#ifdef SQLITE_DEBUG
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-693-    pOp = 0; /* Ensure pOp not used after sqltie3VdbeAddOp3() */
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:694:    addrJmp = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-695-    sqlite3VdbeAddOp3(v, OP_Jump, addrJmp+1, 0, addrJmp+1); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-724-    int iCsr = pSort->iECursor;
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:725:    sqlite3VdbeAddOp2(v, OP_IfNotZero, iLimit, sqlite3VdbeCurrentAddr(v)+4);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-726-    VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-744-    sqlite3VdbeChangeP2(v, iSkip,
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:745:         pSort->labelOBLopt ? pSort->labelOBLopt : sqlite3VdbeCurrentAddr(v));
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-746-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1057-
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:1058:        iJump = sqlite3VdbeCurrentAddr(v) + nResultCol;
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1059-        for(i=0; i<nResultCol; i++){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1070-        }
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:1071:        assert( sqlite3VdbeCurrentAddr(v)==iJump || pParse->db->mallocFailed );
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1072-        sqlite3VdbeAddOp3(v, OP_Copy, regResult, regPrev, nResultCol-1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1135-        ** output table as well.  */
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:1136:        int addr = sqlite3VdbeCurrentAddr(v) + 4;
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1137-        sqlite3VdbeAddOp4Int(v, OP_Found, iParm+1, addr, r1, 0);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1531-        sqlite3VdbeAddOp3(v, OP_SeekRowid, iCsr, 
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:1532:            sqlite3VdbeCurrentAddr(v)+1, regKey);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1533-      }else{
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1539-        }
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:1540:        iJmp = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-1541-        sqlite3VdbeAddOp4Int(v, OP_SeekGE, iCsr, iJmp+2, regKey, nKey);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-2744-          sqlite3VdbeAddOp2(v, OP_Rewind, unionTab, iBreak); VdbeCoverage(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:2745:          iStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-2746-          selectInnerLoop(pParse, p, unionTab,
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-2941-
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:2942:  addr = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-2943-  iContinue = sqlite3VdbeMakeLabel(pParse);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-3300-  */
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:3301:  addrSelectA = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-3302-  addr1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrA, 0, addrSelectA);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-3312-  */
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:3313:  addrSelectB = sqlite3VdbeCurrentAddr(v) + 1;
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-3314-  addr1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrB, 0, addrSelectB);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-3395-  VdbeNoopComment((v, "A-gt-B subroutine"));
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:3396:  addrAgtB = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-3397-  if( op==TK_ALL || op==TK_UNION ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6051-      */
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:6052:      int addrTop = sqlite3VdbeCurrentAddr(v)+1;
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6053-     
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6545-      */
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:6546:      addrTopOfLoop = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6547-      if( groupBySort ){
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6560-                          (char*)sqlite3KeyInfoRef(pKeyInfo), P4_KEYINFO);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:6561:      addr1 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6562-      sqlite3VdbeAddOp3(v, OP_Jump, addr1+1, 0, addr1+1); VdbeCoverage(v);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6614-      */
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:6615:      addrSetAbort = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6616-      sqlite3VdbeAddOp2(v, OP_Integer, 1, iAbortFlag);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6619-      sqlite3VdbeResolveLabel(v, addrOutputRow);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c:6620:      addrOutputRow = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/select.c-6621-      sqlite3VdbeAddOp2(v, OP_IfPos, iUseFlag, addrOutputRow+2);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-216-    sqlite3ExplainBreakpoint("",zMsg);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:217:    ret = sqlite3VdbeAddOp4(v, OP_Explain, sqlite3VdbeCurrentAddr(v),
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-218-                            pParse->addrExplain, 0, zMsg,P4_DYNAMIC);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1396-    pLevel->op = pWInfo->eOnePass ? OP_Noop : OP_VNext;
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:1397:    pLevel->p2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1398-    iIn = pLevel->u.in.nIn;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1570-    }
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:1571:    start = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1572-    pLevel->op = bRev ? OP_Prev : OP_Next;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1678-        VdbeComment((v, "LIKE loop counter"));
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:1679:        pLevel->addrLikeRep = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1680-        /* iLikeRepCntr actually stores 2x the counter register number.  The
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1814-        assert( bStopAtNull==startEq );
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:1815:        sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1816-        op = aStartOp[(nConstraint>1)*4 + 2 + bRev];
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1866-    /* Top of the loop body */
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:1867:    pLevel->p2 = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1868-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1872-        /* Except, skip the end-of-range check while doing the NULL-scan */
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:1873:        sqlite3VdbeAddOp2(v, OP_IfNot, regBignull, sqlite3VdbeCurrentAddr(v)+3);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1874-        VdbeComment((v, "If NULL-scan 2nd pass"));
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1889-      assert( nConstraint+bSeekPastNull>0 );
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:1890:      sqlite3VdbeAddOp2(v, OP_If, regBignull, sqlite3VdbeCurrentAddr(v)+2);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-1891-      VdbeComment((v, "If NULL-scan 1st pass"));
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-2280-    }
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:2281:    sqlite3VdbeChangeP1(v, iRetInit, sqlite3VdbeCurrentAddr(v));
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-2282-    sqlite3VdbeGoto(v, pLevel->addrBrk);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-2312-#ifdef SQLITE_ENABLE_STMT_SCANSTATUS
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:2313:  pLevel->addrVisit = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-2314-#endif
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-2441-  if( pLevel->iLeftJoin ){
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c:2442:    pLevel->addrFirst = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/wherecode.c-2443-    sqlite3VdbeAddOp2(v, OP_Integer, 1, pLevel->iLeftJoin);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/whereexpr.c-302-          sqlite3ExprCodeTarget(pParse, pRight, r1);
chromium-84.0.4147.105/third_party/sqlite/src/src/whereexpr.c:303:          sqlite3VdbeChangeP3(v, sqlite3VdbeCurrentAddr(v)-1, 0);
chromium-84.0.4147.105/third_party/sqlite/src/src/whereexpr.c-304-          sqlite3ReleaseTempReg(pParse, r1);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/delete.c-743-    /* Invoke BEFORE DELETE trigger programs. */
chromium-84.0.4147.105/third_party/sqlite/src/src/delete.c:744:    addrStart = sqlite3VdbeCurrentAddr(v);
chromium-84.0.4147.105/third_party/sqlite/src/src/delete.c-745-    sqlite3CodeRowTrigger(pParse, pTrigger, 
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/src/delete.c-756-    */
chromium-84.0.4147.105/third_party/sqlite/src/src/delete.c:757:    if( addrStart<sqlite3VdbeCurrentAddr(v) ){
chromium-84.0.4147.105/third_party/sqlite/src/src/delete.c-758-      sqlite3VdbeAddOp4Int(v, opSeek, iDataCur, iLabel, iPk, nPk);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-85-
chromium-84.0.4147.105/third_party/sqlite/src/install-sh:86:	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-87-	    shift
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-89-
chromium-84.0.4147.105/third_party/sqlite/src/install-sh:90:	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-91-	    shift
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-151-	then
chromium-84.0.4147.105/third_party/sqlite/src/install-sh:152:		dst="$dst"/`basename $src`
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-153-	else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-158-## this sed command emulates the dirname command
chromium-84.0.4147.105/third_party/sqlite/src/install-sh:159:dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-160-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-172-IFS='%'
chromium-84.0.4147.105/third_party/sqlite/src/install-sh:173:set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-174-IFS="${oIFS}"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-206-	then
chromium-84.0.4147.105/third_party/sqlite/src/install-sh:207:		dstfile=`basename $dst`
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-208-	else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-216-	then
chromium-84.0.4147.105/third_party/sqlite/src/install-sh:217:		dstfile=`basename $dst`
chromium-84.0.4147.105/third_party/sqlite/src/install-sh-218-	else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-43-if test -z "$BASH_VERSION$ZSH_VERSION" \
chromium-84.0.4147.105/third_party/sqlite/src/configure:44:    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-45-  as_echo='print -r --'
chromium-84.0.4147.105/third_party/sqlite/src/configure-46-  as_echo_n='print -rn --'
chromium-84.0.4147.105/third_party/sqlite/src/configure:47:elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-48-  as_echo='printf %s\n'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-50-else
chromium-84.0.4147.105/third_party/sqlite/src/configure:51:  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-52-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-60-	expr "X$arg" : "X\\(.*\\)$as_nl";
chromium-84.0.4147.105/third_party/sqlite/src/configure:61:	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-62-      esac;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-197-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:198:  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
chromium-84.0.4147.105/third_party/sqlite/src/configure-199-test \$(( 1 + 1 )) = 2 || exit 1"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-324-      case $as_dir in #(
chromium-84.0.4147.105/third_party/sqlite/src/configure:325:      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
chromium-84.0.4147.105/third_party/sqlite/src/configure-326-      *) as_qdir=$as_dir;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-397-  {
chromium-84.0.4147.105/third_party/sqlite/src/configure:398:    as_val=`expr "$@" || test $? -eq 1`
chromium-84.0.4147.105/third_party/sqlite/src/configure-399-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-404-# ----------------------------------------
chromium-84.0.4147.105/third_party/sqlite/src/configure:405:# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
chromium-84.0.4147.105/third_party/sqlite/src/configure-406-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-467-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:468:  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
chromium-84.0.4147.105/third_party/sqlite/src/configure-469-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-563-  # Remove one level of quotation (which was required for Make).
chromium-84.0.4147.105/third_party/sqlite/src/configure:564:  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
chromium-84.0.4147.105/third_party/sqlite/src/configure-565-  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-574-  :
chromium-84.0.4147.105/third_party/sqlite/src/configure:575:elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-576-  # Yippee, $ECHO works!
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-600-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
chromium-84.0.4147.105/third_party/sqlite/src/configure:601:      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-602-	 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-608-
chromium-84.0.4147.105/third_party/sqlite/src/configure:609:  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:610:     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-611-     test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-623-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:624:         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:625:         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-626-         test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-635-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:636:         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-637-         test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-650-        ECHO='printf %s\n'
chromium-84.0.4147.105/third_party/sqlite/src/configure:651:        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:652:	   echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-653-	   test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-655-	  :
chromium-84.0.4147.105/third_party/sqlite/src/configure:656:        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-657-	     test "X$echo_testing_string" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:658:	     echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-659-	     test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-664-	  ECHO="$CONFIG_SHELL $0 --fallback-echo"
chromium-84.0.4147.105/third_party/sqlite/src/configure:665:        elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-666-	     test "X$echo_testing_string" = 'X\t' &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:667:	     echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-668-	     test "X$echo_testing_string" = "X$echo_test_string"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-674-	  for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
chromium-84.0.4147.105/third_party/sqlite/src/configure:675:	    if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
chromium-84.0.4147.105/third_party/sqlite/src/configure-676-	    then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-682-	  if test "$prev" != 'sed 50q "$0"'; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:683:	    echo_test_string=`eval $prev`
chromium-84.0.4147.105/third_party/sqlite/src/configure-684-	    export echo_test_string
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-991-  case $ac_option in
chromium-84.0.4147.105/third_party/sqlite/src/configure:992:  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-993-  *=)   ac_optarg= ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1035-  -disable-* | --disable-*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:1036:    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1037-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1040-    ac_useropt_orig=$ac_useropt
chromium-84.0.4147.105/third_party/sqlite/src/configure:1041:    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1042-    case $ac_user_opts in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1061-  -enable-* | --enable-*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:1062:    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1063-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1066-    ac_useropt_orig=$ac_useropt
chromium-84.0.4147.105/third_party/sqlite/src/configure:1067:    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1068-    case $ac_user_opts in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1265-  -with-* | --with-*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:1266:    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1267-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1270-    ac_useropt_orig=$ac_useropt
chromium-84.0.4147.105/third_party/sqlite/src/configure:1271:    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1272-    case $ac_user_opts in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1281-  -without-* | --without-*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:1282:    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1283-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1286-    ac_useropt_orig=$ac_useropt
chromium-84.0.4147.105/third_party/sqlite/src/configure:1287:    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1288-    case $ac_user_opts in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1319-  *=*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:1320:    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1321-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1340-if test -n "$ac_prev"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:1341:  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1342-  as_fn_error $? "missing argument to $ac_option"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1362-    */ )
chromium-84.0.4147.105/third_party/sqlite/src/configure:1363:      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1364-      eval $ac_var=\$ac_val;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1397-ac_ls_di=`ls -di .` &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:1398:ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
chromium-84.0.4147.105/third_party/sqlite/src/configure-1399-  as_fn_error $? "working directory cannot be determined"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1453-case $srcdir in
chromium-84.0.4147.105/third_party/sqlite/src/configure:1454:*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-1455-esac
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1496-By default, \`make install' will install all the files in
chromium-84.0.4147.105/third_party/sqlite/src/configure:1497:\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
chromium-84.0.4147.105/third_party/sqlite/src/configure:1498:an installation prefix other than \`$ac_default_prefix' using \`--prefix',
chromium-84.0.4147.105/third_party/sqlite/src/configure-1499-for instance \`--prefix=\$HOME'.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-1614-*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:1615:  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1616-  # A ".." for each directory in $ac_dir_suffix.
chromium-84.0.4147.105/third_party/sqlite/src/configure:1617:  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-1618-  case $ac_top_builddir_sub in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2152-    *\'*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:2153:      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-2154-    esac
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2235-      case $ac_val in
chromium-84.0.4147.105/third_party/sqlite/src/configure:2236:      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-2237-      esac
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2250-	case $ac_val in
chromium-84.0.4147.105/third_party/sqlite/src/configure:2251:	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-2252-	esac
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2370-    set,)
chromium-84.0.4147.105/third_party/sqlite/src/configure:2371:      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
chromium-84.0.4147.105/third_party/sqlite/src/configure:2372:$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
chromium-84.0.4147.105/third_party/sqlite/src/configure-2373-      ac_cache_corrupted=: ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2381-	# differences in whitespace do not lead to failure.
chromium-84.0.4147.105/third_party/sqlite/src/configure:2382:	ac_old_val_w=`echo x $ac_old_val`
chromium-84.0.4147.105/third_party/sqlite/src/configure:2383:	ac_new_val_w=`echo x $ac_new_val`
chromium-84.0.4147.105/third_party/sqlite/src/configure-2384-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2401-    case $ac_new_val in
chromium-84.0.4147.105/third_party/sqlite/src/configure:2402:    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-2403-    *) ac_arg=$ac_var=$ac_new_val ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2429-
chromium-84.0.4147.105/third_party/sqlite/src/configure:2430:sqlite_version_sanity_check=`cat $srcdir/VERSION | tr -d '\n'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-2431-if test "$PACKAGE_VERSION" != "$sqlite_version_sanity_check" ; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2505-test "x$ac_build_alias" = x &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:2506:  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-2507-test "x$ac_build_alias" = x &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-2508-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
chromium-84.0.4147.105/third_party/sqlite/src/configure:2509:ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
chromium-84.0.4147.105/third_party/sqlite/src/configure-2510-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2529-IFS=$ac_save_IFS
chromium-84.0.4147.105/third_party/sqlite/src/configure:2530:case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
chromium-84.0.4147.105/third_party/sqlite/src/configure-2531-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2540-else
chromium-84.0.4147.105/third_party/sqlite/src/configure:2541:  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
chromium-84.0.4147.105/third_party/sqlite/src/configure-2542-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2562-IFS=$ac_save_IFS
chromium-84.0.4147.105/third_party/sqlite/src/configure:2563:case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
chromium-84.0.4147.105/third_party/sqlite/src/configure-2564-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2911-$as_echo_n "checking whether the C compiler works... " >&6; }
chromium-84.0.4147.105/third_party/sqlite/src/configure:2912:ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-2913-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-2955-	then :; else
chromium-84.0.4147.105/third_party/sqlite/src/configure:2956:	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-2957-	fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3015-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
chromium-84.0.4147.105/third_party/sqlite/src/configure:3016:    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-3017-	  break;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3124-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
chromium-84.0.4147.105/third_party/sqlite/src/configure:3125:    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-3126-       break;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3379-  # Check for GNU $ac_path_SED
chromium-84.0.4147.105/third_party/sqlite/src/configure:3380:case `"$ac_path_SED" --version 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-3381-*GNU*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3455-  # Check for GNU $ac_path_GREP
chromium-84.0.4147.105/third_party/sqlite/src/configure:3456:case `"$ac_path_GREP" --version 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-3457-*GNU*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3521-  # Check for GNU $ac_path_EGREP
chromium-84.0.4147.105/third_party/sqlite/src/configure:3522:case `"$ac_path_EGREP" --version 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-3523-*GNU*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3588-  # Check for GNU $ac_path_FGREP
chromium-84.0.4147.105/third_party/sqlite/src/configure:3589:case `"$ac_path_FGREP" --version 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-3590-*GNU*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3668-    # gcc leaves a trailing carriage return which upsets mingw
chromium-84.0.4147.105/third_party/sqlite/src/configure:3669:    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-3670-  *)
chromium-84.0.4147.105/third_party/sqlite/src/configure:3671:    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-3672-  esac
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3677-      # Canonicalize the pathname of ld
chromium-84.0.4147.105/third_party/sqlite/src/configure:3678:      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-3679-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
chromium-84.0.4147.105/third_party/sqlite/src/configure:3680:	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-3681-      done
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3712-      # Break only if it was the GNU/non-GNU ld that we prefer.
chromium-84.0.4147.105/third_party/sqlite/src/configure:3713:      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-3714-      *GNU* | *'with BFD'*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3743-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
chromium-84.0.4147.105/third_party/sqlite/src/configure:3744:case `$LD -v 2>&1 </dev/null` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-3745-*GNU* | *'with BFD'*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3788-	# Tru64's nm complains that /dev/null is an invalid object file
chromium-84.0.4147.105/third_party/sqlite/src/configure:3789:	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-3790-	*/dev/null* | *'Invalid file or object type'*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-3794-	*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:3795:	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-3796-	  */dev/null*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4017-    # And add a safety zone
chromium-84.0.4147.105/third_party/sqlite/src/configure:4018:    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
chromium-84.0.4147.105/third_party/sqlite/src/configure:4019:    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
chromium-84.0.4147.105/third_party/sqlite/src/configure-4020-    ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4045-    if test -n "$kargmax"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:4046:      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-4047-    else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4053-    if test -n "$lt_cv_sys_max_cmd_len"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:4054:      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
chromium-84.0.4147.105/third_party/sqlite/src/configure:4055:      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
chromium-84.0.4147.105/third_party/sqlite/src/configure-4056-    else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4065-      # we can't tell.
chromium-84.0.4147.105/third_party/sqlite/src/configure:4066:      while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/configure-4067-	         = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4069-      do
chromium-84.0.4147.105/third_party/sqlite/src/configure:4070:        i=`expr $i + 1`
chromium-84.0.4147.105/third_party/sqlite/src/configure-4071-        teststring=$teststring$teststring
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4073-      # Only check the string length outside the loop.
chromium-84.0.4147.105/third_party/sqlite/src/configure:4074:      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
chromium-84.0.4147.105/third_party/sqlite/src/configure-4075-      teststring=
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4078-      # linker.  It appears as though 1/2 is a usable value.
chromium-84.0.4147.105/third_party/sqlite/src/configure:4079:      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
chromium-84.0.4147.105/third_party/sqlite/src/configure-4080-    fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4433-openbsd*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:4434:  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-4435-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4922-# If we're using GNU nm, then use its standard symbol codes.
chromium-84.0.4147.105/third_party/sqlite/src/configure:4923:case `$NM -V 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-4924-*GNU* | *'with BFD'*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-4940-mingw*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:4941:  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
chromium-84.0.4147.105/third_party/sqlite/src/configure-4942-  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-5137-  test $ac_status = 0; }; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:5138:    case `/usr/bin/file conftest.$ac_objext` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-5139-      *ELF-32*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-5157-    if test "$lt_cv_prog_gnu_ld" = yes; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:5158:      case `/usr/bin/file conftest.$ac_objext` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-5159-	*32-bit*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-5169-    else
chromium-84.0.4147.105/third_party/sqlite/src/configure:5170:      case `/usr/bin/file conftest.$ac_objext` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-5171-	*32-bit*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-6151-do :
chromium-84.0.4147.105/third_party/sqlite/src/configure:6152:  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
chromium-84.0.4147.105/third_party/sqlite/src/configure-6153-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-6156-  cat >>confdefs.h <<_ACEOF
chromium-84.0.4147.105/third_party/sqlite/src/configure:6157:#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
chromium-84.0.4147.105/third_party/sqlite/src/configure-6158-_ACEOF
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-6450-done
chromium-84.0.4147.105/third_party/sqlite/src/configure:6451:cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-6452-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-6479-	"file_magic "*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:6480:	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-6481-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-6545-	"file_magic "*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:6546:	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-6547-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-6884-      *)
chromium-84.0.4147.105/third_party/sqlite/src/configure:6885:	case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-6886-	*Sun\ C*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7220-  if test "$hard_links" = no; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:7221:    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
chromium-84.0.4147.105/third_party/sqlite/src/configure:7222:$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
chromium-84.0.4147.105/third_party/sqlite/src/configure-7223-    need_locks=warn
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7313-    supports_anon_versioning=no
chromium-84.0.4147.105/third_party/sqlite/src/configure:7314:    case `$LD -v 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-7315-      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7378-	# is EXPORTS), use it as is; otherwise, prepend...
chromium-84.0.4147.105/third_party/sqlite/src/configure:7379:	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-7380-	  cp $export_symbols $output_objdir/$soname.def;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7401-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
chromium-84.0.4147.105/third_party/sqlite/src/configure:7402:      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure:7403:      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure-7404-      ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7419-        pgcc*)				# Portland Group C compiler
chromium-84.0.4147.105/third_party/sqlite/src/configure:7420:	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/sqlite/src/configure-7421-	  tmp_addflag=' $pic_flag'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7423-	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
chromium-84.0.4147.105/third_party/sqlite/src/configure:7424:	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/sqlite/src/configure-7425-	  tmp_addflag=' $pic_flag -Mnomain' ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7438-	esac
chromium-84.0.4147.105/third_party/sqlite/src/configure:7439:	case `$CC -V 2>&1 | sed 5q` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-7440-	*Sun\ C*)			# Sun C 5.9
chromium-84.0.4147.105/third_party/sqlite/src/configure:7441:	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
chromium-84.0.4147.105/third_party/sqlite/src/configure-7442-	  compiler_needs_object=yes
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7507-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:7508:      case `$LD -v 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-7509-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7628-	# below for broken collect2 doesn't work under 4.3+
chromium-84.0.4147.105/third_party/sqlite/src/configure:7629:	  collect2name=`${CC} -print-prog-name=collect2`
chromium-84.0.4147.105/third_party/sqlite/src/configure-7630-	  if test -f "$collect2name" &&
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7695-    }'
chromium-84.0.4147.105/third_party/sqlite/src/configure:7696:aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-7697-# Check for a 64-bit object if we didn't find anything.
chromium-84.0.4147.105/third_party/sqlite/src/configure-7698-if test -z "$aix_libpath"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:7699:  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-7700-fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7706-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
chromium-84.0.4147.105/third_party/sqlite/src/configure:7707:        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
chromium-84.0.4147.105/third_party/sqlite/src/configure-7708-      else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7735-    }'
chromium-84.0.4147.105/third_party/sqlite/src/configure:7736:aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-7737-# Check for a 64-bit object if we didn't find anything.
chromium-84.0.4147.105/third_party/sqlite/src/configure-7738-if test -z "$aix_libpath"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:7739:  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-7740-fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7790-      # FIXME: Setting linknames here is a bad hack.
chromium-84.0.4147.105/third_party/sqlite/src/configure:7791:      archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
chromium-84.0.4147.105/third_party/sqlite/src/configure-7792-      # The linker will automatically build a .lib file if we build a DLL.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7795-      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
chromium-84.0.4147.105/third_party/sqlite/src/configure:7796:      fix_srcfile_path='`cygpath -w "$srcfile"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure-7797-      enable_shared_with_static_runtimes=yes
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7948-      if test "$GCC" = yes; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:7949:	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure-7950-	# Try to use the -exported_symbol ld option, if it does not
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7959-if ac_fn_c_try_link "$LINENO"; then :
chromium-84.0.4147.105/third_party/sqlite/src/configure:7960:  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure-7961-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-7966-      else
chromium-84.0.4147.105/third_party/sqlite/src/configure:7967:	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure:7968:	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure-7969-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8003-	hardcode_direct_absolute=yes
chromium-84.0.4147.105/third_party/sqlite/src/configure:8004:	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-8005-	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8036-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
chromium-84.0.4147.105/third_party/sqlite/src/configure:8037:	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure-8038-      else
chromium-84.0.4147.105/third_party/sqlite/src/configure-8039-	allow_undefined_flag=' -expect_unresolved \*'
chromium-84.0.4147.105/third_party/sqlite/src/configure:8040:	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure-8041-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8049-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
chromium-84.0.4147.105/third_party/sqlite/src/configure:8050:	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure-8051-	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8053-	allow_undefined_flag=' -expect_unresolved \*'
chromium-84.0.4147.105/third_party/sqlite/src/configure:8054:	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure:8055:	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
chromium-84.0.4147.105/third_party/sqlite/src/configure:8056:	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
chromium-84.0.4147.105/third_party/sqlite/src/configure-8057-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8072-      else
chromium-84.0.4147.105/third_party/sqlite/src/configure:8073:	case `$CC -V 2>&1` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-8074-	*"Compilers 5.0"*)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8466-  esac
chromium-84.0.4147.105/third_party/sqlite/src/configure:8467:  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-8468-  if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8472-    # okay in the real world where ";" in dirpaths is itself problematic.
chromium-84.0.4147.105/third_party/sqlite/src/configure:8473:    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-8474-  else
chromium-84.0.4147.105/third_party/sqlite/src/configure:8475:    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-8476-  fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8479-  lt_tmp_lt_search_path_spec=
chromium-84.0.4147.105/third_party/sqlite/src/configure:8480:  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/configure-8481-  for lt_sys_path in $lt_search_path_spec; do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8508-}'`
chromium-84.0.4147.105/third_party/sqlite/src/configure:8509:  sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
chromium-84.0.4147.105/third_party/sqlite/src/configure-8510-else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8596-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
chromium-84.0.4147.105/third_party/sqlite/src/configure:8597:    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
chromium-84.0.4147.105/third_party/sqlite/src/configure-8598-    ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8631-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
chromium-84.0.4147.105/third_party/sqlite/src/configure:8632:    postinstall_cmds='base_file=`basename \${file}`~
chromium-84.0.4147.105/third_party/sqlite/src/configure:8633:      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
chromium-84.0.4147.105/third_party/sqlite/src/configure:8634:      dldir=$destdir/`dirname \$dlpath`~
chromium-84.0.4147.105/third_party/sqlite/src/configure-8635-      test -d \$dldir || mkdir -p \$dldir~
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8640-      fi'
chromium-84.0.4147.105/third_party/sqlite/src/configure:8641:    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
chromium-84.0.4147.105/third_party/sqlite/src/configure-8642-      dlpath=$dir/\$dldll~
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8648-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure:8649:      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
chromium-84.0.4147.105/third_party/sqlite/src/configure-8650-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8653-      # MinGW DLLs use traditional 'lib' prefix
chromium-84.0.4147.105/third_party/sqlite/src/configure:8654:      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
chromium-84.0.4147.105/third_party/sqlite/src/configure:8655:      sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-8656-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8662-        # which wouldn't understand a cygwinified path. Ahh.
chromium-84.0.4147.105/third_party/sqlite/src/configure:8663:        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-8664-      else
chromium-84.0.4147.105/third_party/sqlite/src/configure:8665:        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-8666-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8669-      # pw32 DLLs use 'pw' prefix rather than 'lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure:8670:      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
chromium-84.0.4147.105/third_party/sqlite/src/configure-8671-      ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8675-  *)
chromium-84.0.4147.105/third_party/sqlite/src/configure:8676:    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
chromium-84.0.4147.105/third_party/sqlite/src/configure-8677-    ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8692-  shlibpath_var=DYLD_LIBRARY_PATH
chromium-84.0.4147.105/third_party/sqlite/src/configure:8693:  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
chromium-84.0.4147.105/third_party/sqlite/src/configure-8694-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8921-  if test -f /etc/ld.so.conf; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:8922:    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
chromium-84.0.4147.105/third_party/sqlite/src/configure-8923-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-8983-  shlibpath_var=LD_LIBRARY_PATH
chromium-84.0.4147.105/third_party/sqlite/src/configure:8984:  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-8985-    case $host_os in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10273-do :
chromium-84.0.4147.105/third_party/sqlite/src/configure:10274:  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10275-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10277-  cat >>confdefs.h <<_ACEOF
chromium-84.0.4147.105/third_party/sqlite/src/configure:10278:#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
chromium-84.0.4147.105/third_party/sqlite/src/configure-10279-_ACEOF
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10290-do :
chromium-84.0.4147.105/third_party/sqlite/src/configure:10291:  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10292-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10294-  cat >>confdefs.h <<_ACEOF
chromium-84.0.4147.105/third_party/sqlite/src/configure:10295:#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
chromium-84.0.4147.105/third_party/sqlite/src/configure-10296-_ACEOF
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10366-  TCLLIBDIR='$(libdir)'
chromium-84.0.4147.105/third_party/sqlite/src/configure:10367:  for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD}` ; do
chromium-84.0.4147.105/third_party/sqlite/src/configure-10368-    TCLLIBDIR=$i
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10382-
chromium-84.0.4147.105/third_party/sqlite/src/configure:10383:VERSION=`cat $srcdir/VERSION | sed 's/^\([0-9]*\.*[0-9]*\).*/\1/'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10384-{ $as_echo "$as_me:${as_lineno-$LINENO}: Version set to $VERSION" >&5
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10386-
chromium-84.0.4147.105/third_party/sqlite/src/configure:10387:RELEASE=`cat $srcdir/VERSION`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10388-{ $as_echo "$as_me:${as_lineno-$LINENO}: Release set to $RELEASE" >&5
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10608-else
chromium-84.0.4147.105/third_party/sqlite/src/configure:10609:  ALLOWRELEASE="-release `cat $srcdir/VERSION`"
chromium-84.0.4147.105/third_party/sqlite/src/configure-10610-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10735-      if test -f "${with_tclconfig}/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:10736:        ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10737-      else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10744-      if test x"$cross_compiling" = xno; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:10745:        for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD}`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10746-        do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10758-      if test x"$cross_compiling" = xno; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:10759:        for i in `echo 'puts stdout $auto_path' | ${TCLSH_CMD} | sed 's,/tcltk/tcl,/tcl,g'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10760-        do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10799-        if test -f "$i/unix/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:10800:          ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10801-          break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10808-      for i in \
chromium-84.0.4147.105/third_party/sqlite/src/configure:10809:            `ls -d ${libdir} 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/configure-10810-            `ls -d /usr/local/lib 2>/dev/null` \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10814-        if test -f "$i/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:10815:           ac_cv_c_tclconfig=`(cd $i; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10816-           break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-10824-         ${srcdir}/../tcl \
chromium-84.0.4147.105/third_party/sqlite/src/configure:10825:         `ls -dr ${srcdir}/../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/configure:10826:         `ls -dr ${srcdir}/../tcl[8-9].[0-9] 2>/dev/null` \
chromium-84.0.4147.105/third_party/sqlite/src/configure:10827:         `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10828-      do
chromium-84.0.4147.105/third_party/sqlite/src/configure-10829-        if test -f "$i/unix/tclConfig.sh" ; then
chromium-84.0.4147.105/third_party/sqlite/src/configure:10830:          ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
chromium-84.0.4147.105/third_party/sqlite/src/configure-10831-          break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-11137-					for subdir in include include/readline; do
chromium-84.0.4147.105/third_party/sqlite/src/configure:11138:						as_ac_File=`$as_echo "ac_cv_file_$dir/$subdir/readline.h" | $as_tr_sh`
chromium-84.0.4147.105/third_party/sqlite/src/configure-11139-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $dir/$subdir/readline.h" >&5
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-11837-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
chromium-84.0.4147.105/third_party/sqlite/src/configure:11838:  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-11839-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-11904-if test -z "$BASH_VERSION$ZSH_VERSION" \
chromium-84.0.4147.105/third_party/sqlite/src/configure:11905:    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-11906-  as_echo='print -r --'
chromium-84.0.4147.105/third_party/sqlite/src/configure-11907-  as_echo_n='print -rn --'
chromium-84.0.4147.105/third_party/sqlite/src/configure:11908:elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-11909-  as_echo='printf %s\n'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-11911-else
chromium-84.0.4147.105/third_party/sqlite/src/configure:11912:  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
chromium-84.0.4147.105/third_party/sqlite/src/configure-11913-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-11921-	expr "X$arg" : "X\\(.*\\)$as_nl";
chromium-84.0.4147.105/third_party/sqlite/src/configure:11922:	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-11923-      esac;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-11998-# ----------------------------------------
chromium-84.0.4147.105/third_party/sqlite/src/configure:11999:# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
chromium-84.0.4147.105/third_party/sqlite/src/configure-12000-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12070-  {
chromium-84.0.4147.105/third_party/sqlite/src/configure:12071:    as_val=`expr "$@" || test $? -eq 1`
chromium-84.0.4147.105/third_party/sqlite/src/configure-12072-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12174-      case $as_dir in #(
chromium-84.0.4147.105/third_party/sqlite/src/configure:12175:      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
chromium-84.0.4147.105/third_party/sqlite/src/configure-12176-      *) as_qdir=$as_dir;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12309-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
chromium-84.0.4147.105/third_party/sqlite/src/configure:12310:ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
chromium-84.0.4147.105/third_party/sqlite/src/configure-12311-ac_cs_version="\\
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12332-  --*=?*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:12333:    ac_option=`expr "X$1" : 'X\([^=]*\)='`
chromium-84.0.4147.105/third_party/sqlite/src/configure:12334:    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-12335-    ac_shift=:
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12337-  --*=)
chromium-84.0.4147.105/third_party/sqlite/src/configure:12338:    ac_option=`expr "X$1" : 'X\([^=]*\)='`
chromium-84.0.4147.105/third_party/sqlite/src/configure-12339-    ac_optarg=
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12361-    case $ac_optarg in
chromium-84.0.4147.105/third_party/sqlite/src/configure:12362:    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-12363-    '') as_fn_error $? "missing file argument" ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12369-    case $ac_optarg in
chromium-84.0.4147.105/third_party/sqlite/src/configure:12370:    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/sqlite/src/configure-12371-    esac
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12437-delay_variable_subst='$delay_variable_subst'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12438:macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12439:macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12440:enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12441:enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12442:pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12443:enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12444:host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12445:host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12446:host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12447:build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12448:build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12449:build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12450:SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12451:Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12452:GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12453:EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12454:FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12455:LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12456:NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12457:LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12458:max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12459:ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12460:exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12461:lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12462:lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12463:lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12464:reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12465:reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12466:OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12467:deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12468:file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12469:AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12470:AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12471:STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12472:RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12473:old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12474:old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12475:old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12476:CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12477:CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12478:compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12479:GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12480:lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12481:lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12482:lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12483:lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12484:objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12485:SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12486:ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12487:MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12488:lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12489:lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12490:lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12491:lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12492:lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12493:need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12494:DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12495:NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12496:LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12497:OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12498:OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12499:libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12500:shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12501:extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12502:archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12503:enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12504:export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12505:whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12506:compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12507:old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12508:old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12509:archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12510:archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12511:module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12512:module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12513:with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12514:allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12515:no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12516:hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12517:hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12518:hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12519:hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12520:hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12521:hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12522:hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12523:hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12524:inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12525:link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12526:fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12527:always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12528:export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12529:exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12530:include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12531:prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12532:file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12533:variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12534:need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12535:need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12536:version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12537:runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12538:shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12539:shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12540:libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12541:library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12542:soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12543:postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12544:postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12545:finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12546:finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12547:hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12548:sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12549:sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12550:hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12551:enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12552:enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12553:enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12554:old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure:12555:striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
chromium-84.0.4147.105/third_party/sqlite/src/configure-12556-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12619-striplib; do
chromium-84.0.4147.105/third_party/sqlite/src/configure:12620:    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-12621-    *[\\\\\\\`\\"\\\$]*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:12622:      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
chromium-84.0.4147.105/third_party/sqlite/src/configure-12623-      ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12648-sys_lib_dlsearch_path_spec; do
chromium-84.0.4147.105/third_party/sqlite/src/configure:12649:    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-12650-    *[\\\\\\\`\\"\\\$]*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:12651:      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
chromium-84.0.4147.105/third_party/sqlite/src/configure-12652-      ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12660-case \$lt_ECHO in
chromium-84.0.4147.105/third_party/sqlite/src/configure:12661:*'\\\$0 --fallback-echo"')  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
chromium-84.0.4147.105/third_party/sqlite/src/configure-12662-  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12752-fi
chromium-84.0.4147.105/third_party/sqlite/src/configure:12753:ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/configure-12754-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12769-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
chromium-84.0.4147.105/third_party/sqlite/src/configure:12770:ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-12771-ac_delim='%!_!# '
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12775-
chromium-84.0.4147.105/third_party/sqlite/src/configure:12776:  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
chromium-84.0.4147.105/third_party/sqlite/src/configure-12777-  if test $ac_delim_n = $ac_delim_num; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-12913-for ac_last_try in false false :; do
chromium-84.0.4147.105/third_party/sqlite/src/configure:12914:  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
chromium-84.0.4147.105/third_party/sqlite/src/configure-12915-  if test -z "$ac_tt"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13045-      esac
chromium-84.0.4147.105/third_party/sqlite/src/configure:13046:      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
chromium-84.0.4147.105/third_party/sqlite/src/configure-13047-      as_fn_append ac_file_inputs " '$ac_f'"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13104-*)
chromium-84.0.4147.105/third_party/sqlite/src/configure:13105:  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-13106-  # A ".." for each directory in $ac_dir_suffix.
chromium-84.0.4147.105/third_party/sqlite/src/configure:13107:  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-13108-  case $ac_top_builddir_sub in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13160-/@mandir@/p'
chromium-84.0.4147.105/third_party/sqlite/src/configure:13161:case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
chromium-84.0.4147.105/third_party/sqlite/src/configure-13162-*datarootdir*) ac_datarootdir_seen=yes;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13177-
chromium-84.0.4147.105/third_party/sqlite/src/configure:13178:# Neutralize VPATH when `$srcdir' = `.'.
chromium-84.0.4147.105/third_party/sqlite/src/configure-13179-# Shell code in configure.ac might set extrasub.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13204-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
chromium-84.0.4147.105/third_party/sqlite/src/configure:13205:  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
chromium-84.0.4147.105/third_party/sqlite/src/configure-13206-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13266-
chromium-84.0.4147.105/third_party/sqlite/src/configure:13267:# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
chromium-84.0.4147.105/third_party/sqlite/src/configure-13268-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13781-  # Extract subdirectory from the argument.
chromium-84.0.4147.105/third_party/sqlite/src/configure:13782:  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-13783-  if test "X$func_dirname_result" = "X${1}"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13792-{
chromium-84.0.4147.105/third_party/sqlite/src/configure:13793:  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-13794-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13819-{
chromium-84.0.4147.105/third_party/sqlite/src/configure:13820:  func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
chromium-84.0.4147.105/third_party/sqlite/src/configure:13821:  func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-13822-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13826-{
chromium-84.0.4147.105/third_party/sqlite/src/configure:13827:  func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-13828-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13832-{
chromium-84.0.4147.105/third_party/sqlite/src/configure:13833:  func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
chromium-84.0.4147.105/third_party/sqlite/src/configure-13834-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13838-{
chromium-84.0.4147.105/third_party/sqlite/src/configure:13839:  func_arith_result=`expr "$@"`
chromium-84.0.4147.105/third_party/sqlite/src/configure-13840-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/configure-13845-{
chromium-84.0.4147.105/third_party/sqlite/src/configure:13846:  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
chromium-84.0.4147.105/third_party/sqlite/src/configure-13847-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts3/tool/fts3cov.sh-4-
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts3/tool/fts3cov.sh:5:srcdir=`dirname $(dirname $(dirname $(dirname $0)))`
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts3/tool/fts3cov.sh-6-./testfixture $srcdir/test/fts3.test --output=fts3cov-out.txt
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts3/tool/fts3cov.sh-9-
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts3/tool/fts3cov.sh:10:for f in `ls $srcdir/ext/fts3/*.c` 
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts3/tool/fts3cov.sh-11-do
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts3/tool/fts3cov.sh:12:  f=`basename $f`
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts3/tool/fts3cov.sh-13-  echo -ne "$f: "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session5.test-229-  for {set i 1} {$i < 120} {incr i} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session5.test:230:    append sql2 "DELETE FROM x1 WHERE a = $i*4;"
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session5.test-231-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session5.test-269-    for {set i 1} {$i < 120} {incr i} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session5.test:270:      append sql2 "DELETE FROM x1 WHERE rowid = $i;"
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session5.test-271-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session5.test-292-    for {set i 1} {$i < 120} {incr i} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session5.test:293:      append sql2 "DELETE FROM x1 WHERE rowid = $i;"
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session5.test-294-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session9.test-86-    populate_db
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session9.test:87:    execsql { DELETE FROM p1 WHERE a=($delrow+0) }
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/session9.test-88-    if {$trans} { execsql BEGIN }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/sessionB.test-497-  append insert "INSERT INTO t1 VALUES($i, $i, $i);"
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/sessionB.test:498:  append delete "DELETE FROM t1 WHERE b=$i;"
chromium-84.0.4147.105/third_party/sqlite/src/ext/session/sessionB.test-499-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test-58-foreach {tno stmt} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test:59:  1 { DELETE FROM t1_data WHERE rowid=$rowid }
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test:60:  2 { UPDATE t1_data SET block=14 WHERE rowid=$rowid }
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test-61-} {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test-99-set lrowid [db one {SELECT max(rowid) FROM t1_data WHERE (rowid & $mask)=0}] 
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test:100:set nbyte [db one {SELECT length(block) FROM t1_data WHERE rowid=$lrowid}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test-101-set all [db eval {SELECT rowid FROM t1}]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test-105-    BEGIN;
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test:106:      UPDATE t1_data SET block = substr(block, 1, $i) WHERE rowid=$lrowid;
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test-107-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test-201-          UPDATE x4_data SET block = substr(block, 1, length(block)-$nCut) 
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test:202:          WHERE id = $rowid;
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt2.test-203-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5update.test-50-  set b [lindex $::docs $iB]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5update.test:51:  execsql { UPDATE t1 SET a=$a, b=$b WHERE rowid=$iRowid }
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5update.test-52-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5ab.test-212-  for {set i 1} {$i <= 63} {incr i} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5ab.test:213:    execsql { DELETE FROM s2 WHERE rowid = $i }
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5ab.test-214-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt.test-46-  execsql {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt.test:47:    DELETE FROM t1_data WHERE rowid = fts5_rowid('segment', $segid, 4);
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt.test-48-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-48-  }]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test:49:  set L [db one {SELECT length(block) FROM t1_data WHERE rowid = $rowid}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-50-  set {} {}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-57-      BEGIN;
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test:58:      UPDATE t1_data SET block = substr(block, 1, $i) WHERE id = $rowid;
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-59-      INSERT INTO t1(t1) VALUES('integrity-check');
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-100-      db eval BEGIN
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test:101:      db eval {DELETE FROM t1_data WHERE rowid = $::rowid}
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-102-      list [
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-242-        BEGIN;
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test:243:        UPDATE x1_data SET block=rewrite_pgidx(block, $val) WHERE id=$rowid;
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-244-        SELECT rowid FROM x1 WHERE x1 MATCH 'xa*';
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-374-    db eval BEGIN  
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test:375:    db eval {DELETE FROM t5_data WHERE rowid = $i}
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5corrupt3.test-376-    set r [catchsql { INSERT INTO t5(t5) VALUES('integrity-check')} ]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5delete.test-38-    } else {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5delete.test:39:      execsql { DELETE FROM t1 WHERE rowid = $i }
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5delete.test-40-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5aa.test-299-foreach rowid {5 9 8 1 2 4 10 7 3 5 6} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5aa.test:300:  do_execsql_test 10.2.$rowid.1 { DELETE FROM t1 WHERE rowid = $rowid }
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5aa.test-301-  do_execsql_test 10.2.$rowid.2 { INSERT INTO t1(t1) VALUES('integrity-check') }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-321-  if {[detail_is_none]} { set resc [row_to_col $resr] }
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:322:  do_execsql_test 7.$term.1 {SELECT * FROM txc WHERE term=$term} $resc
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:323:  do_execsql_test 7.$term.2 {SELECT * FROM txr WHERE term=$term} $resr
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-324-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-341-  do_execsql_test 7.2.$tn.1 {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:342:    SELECT * FROM txr WHERE term>=$a
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:343:  } [db eval {SELECT * FROM txr_c WHERE term>=$a}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-344-  do_execsql_test 7.2.$tn.2 {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:345:    SELECT * FROM txr WHERE term<=$b
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:346:  } [db eval {SELECT * FROM txr_c WHERE term <=$b}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-347-  do_execsql_test 7.2.$tn.3 {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:348:    SELECT * FROM txr WHERE term>=$a AND term<=$b
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:349:  } [db eval {SELECT * FROM txr_c WHERE term>=$a AND term <=$b}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-350-
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-351-  do_execsql_test 7.2.$tn.4 {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:352:    SELECT * FROM txc WHERE term>=$a
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:353:  } [db eval {SELECT * FROM txc_c WHERE term>=$a}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-354-  do_execsql_test 7.2.$tn.5 {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:355:    SELECT * FROM txc WHERE term<=$b
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:356:  } [db eval {SELECT * FROM txc_c WHERE term <=$b}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-357-  do_execsql_test 7.2.$tn.6 {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:358:    SELECT * FROM txc WHERE term>=$a AND term<=$b
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test:359:  } [db eval {SELECT * FROM txc_c WHERE term>=$a AND term <=$b}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5vocab.test-360-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5aj.test-51-for {set iTest 0} {$iTest < 50000} {incr iTest} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5aj.test:52:  if {$iTest > 1000} { execsql { DELETE FROM t1 WHERE rowid=($iTest-1000) } }
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5aj.test-53-  set new [doc]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5porter.test-1588-  cat             cat             cataian         cataian        
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5porter.test:1589:  catalogue       catalogu        cataplasm       cataplasm      
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5porter.test-1590-  cataracts       cataract        catarrhs        catarrh        
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5tok2.test-32-      set expect [execsql {
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5tok2.test:33:        SELECT input, token, start, end FROM t3 WHERE input=$input
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts5/test/fts5tok2.test-34-    }]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree2.test-122-      do_test rtree2-$module.$nDim.5.$ii.1 {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree2.test:123:        execsql "DELETE FROM t2 WHERE ii <= $::ii"
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree2.test:124:        execsql "DELETE FROM t1 WHERE ii <= $::ii"
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree2.test-125-  
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/viewrtree.tcl-17-button .b -text "Parent Node" -command {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/viewrtree.tcl:18:  set sql "SELECT parentnode FROM $::O(zTab)_parent WHERE nodeno = $::O(iNode)"
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/viewrtree.tcl-19-  set ::O(iNode) [db one $sql]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test-42-proc truncate_node {nodeno nTrunc} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test:43:  set blob [db one {SELECT data FROM t1_node WHERE nodeno=$nodeno}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test-44-  if {$nTrunc<0} {set nTrunc "end-$nTrunc"}
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test-45-  set blob [string range $blob 0 $nTrunc]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test:46:  db eval { UPDATE t1_node SET data = $blob WHERE nodeno=$nodeno }
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test-47-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test-62-proc set_entry_count {tbl nodeno {newvalue ""}} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test:63:  set blob [db one "SELECT data FROM ${tbl}_node WHERE nodeno=$nodeno"]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test-64-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test-72-  ]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test:73:  db eval "UPDATE ${tbl}_node SET data = \$blob WHERE nodeno=$nodeno"
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeA.test-74-  return [set_entry_count $tbl $nodeno]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeE.test-124-  set y1 [expr {$y0+$dy}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeE.test:125:  set ans [db eval {SELECT id FROM t2 WHERE x1>=$x0 AND x0<=$x1 AND y1>=$y0 AND y0<=$y1 ORDER BY id}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtreeE.test-126-  do_execsql_test rtreeE-2.2.$i {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl-38-  while {$ii != 1} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl:39:    set sql "SELECT parentnode FROM ${zTab}_parent WHERE nodeno = $ii"
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl-40-    set ii [db one $sql]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl-57-  set sql "
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl:58:    SELECT rtreenode($nDim, data) FROM ${zTab}_node WHERE nodeno = $iNode
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl-59-  "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl-138-  set mapping_table "${zTab}_parent" 
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl:139:  set mapping_sql "SELECT parentnode FROM $mapping_table WHERE rowid = \$rowid"
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl-140-  if {$iDepth==0} { 
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl-141-    set mapping_table "${zTab}_rowid"
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl:142:    set mapping_sql "SELECT nodeno FROM $mapping_table WHERE rowid = \$rowid"
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree_util.tcl-143-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree3.test-183-  for {set i 0} {$i < 50} {incr i} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree3.test:184:    execsql { DELETE FROM rt WHERE ii=$i }
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree3.test-185-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test-82-  foreach row $rowids {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test:83:    set stmt [sqlite3_prepare db "SELECT * FROM t1 WHERE id = $row" -1 tail]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test-84-    sqlite3_step $stmt
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test-107-  do_catchsql_test rtree8-2.1.3.$i { 
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test:108:    SELECT * FROM t1 WHERE id = $i 
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test-109-  } {1 {database disk image is malformed}}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test-177-  for {set i 0} {$i < 200} {incr i} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test:178:    execsql { DELETE FROM t2 WHERE id = $i }
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test-179-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test-199-    db eval {SELECT id FROM t1} x {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test:200:      db eval {DELETE FROM t1 WHERE id=$x(id)}
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree8.test-201-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-130-      set mx [expr {$mn+[randincr 500]}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test:131:      lappend where mn$j>=$mn mx$j<=$mx
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-132-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-143-      set mx [expr {$mn+[randincr 500]}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test:144:      lappend where mx$j>=$mn mn$j<=$mx
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-145-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-160-      set mx [expr {$mn+[randincr 500]}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test:161:      lappend where mn$j>=$mn mx$j<=$mx
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-162-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-172-    for {set j 0} {$j<$nDim} {incr j} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test:173:      lappend where mn$j>=-10000 mx$j<=10000
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-174-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-190-      set mx [expr {$mn+[randincr 500]}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test:191:      lappend where mn$j>=$mn mx$j<$mx
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-192-    }
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-193-    for {set j [expr {$nDim-1}]} {$j>=0} {incr j -1} {
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test:194:      lappend where mn$j>=-10000 mx$j<10000
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-195-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-206-      set mx [expr {$mn+[randincr 500]}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test:207:      lappend where mx$j>$mn mn$j<=$mx
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-208-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-225-      set mx2 [expr {$mx1+[randincr 100]}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test:226:      lappend where mn$j>=$mn1 mn$j>$mn2 mx$j<$mx1 mx$j<=$mx2
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-227-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-241-      set mx2 [expr {$mx1+[randincr 100]}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test:242:      lappend where mx$j>=$mn1 mx$j>$mn2 mn$j<$mx1 mn$j<=$mx2
chromium-84.0.4147.105/third_party/sqlite/src/ext/rtree/rtree4.test-243-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rbu/rbudiff.test-66-    set a [tmpdb eval "SELECT count(*) FROM [sqlesc $name]"]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rbu/rbudiff.test:67:    set b [tmpdb eval {SELECT cnt FROM rbu_count WHERE tbl = $name}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/rbu/rbudiff.test-68-    if {$a != $b} { 
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/rbu/sqlite3rbu.c-2029-    int tnum = pIter->iPkTnum;    /* Root page of PK index */
chromium-84.0.4147.105/third_party/sqlite/src/ext/rbu/sqlite3rbu.c:2030:    sqlite3_stmt *pQuery = 0;     /* SELECT name ... WHERE rootpage = $tnum */
chromium-84.0.4147.105/third_party/sqlite/src/ext/rbu/sqlite3rbu.c-2031-    const char *zIdx = 0;         /* Name of PK index */
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts1/ft_hash.c-98-static int ptrHash(const void *pKey, int nKey){
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts1/ft_hash.c:99:  uptr x = Addr(pKey);
chromium-84.0.4147.105/third_party/sqlite/src/ext/fts1/ft_hash.c-100-  return x ^ (x<<8) ^ (x>>8);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/repair/sqlite3_checker.tcl-50-  set max [db one {SELECT nEntry FROM sqlite_btreeinfo('main')
chromium-84.0.4147.105/third_party/sqlite/src/ext/repair/sqlite3_checker.tcl:51:                    WHERE name=$idxname}]
chromium-84.0.4147.105/third_party/sqlite/src/ext/repair/sqlite3_checker.tcl-52-  puts -nonewline "$idxname: $i of $max rows ($pct%)\r"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/repair/sqlite3_checker.tcl-57-               FROM incremental_index_check($idxname)
chromium-84.0.4147.105/third_party/sqlite/src/ext/repair/sqlite3_checker.tcl:58:              WHERE after_key=$key
chromium-84.0.4147.105/third_party/sqlite/src/ext/repair/sqlite3_checker.tcl-59-              LIMIT $batchsize}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/repair/sqlite3_checker.tcl-62-               FROM incremental_index_check($idxname)
chromium-84.0.4147.105/third_party/sqlite/src/ext/repair/sqlite3_checker.tcl:63:              WHERE after_key=$key
chromium-84.0.4147.105/third_party/sqlite/src/ext/repair/sqlite3_checker.tcl-64-              LIMIT $batchsize}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/misc/remember.c-20-**
chromium-84.0.4147.105/third_party/sqlite/src/ext/misc/remember.c:21:**    UPDATE counterTab SET cnt=remember(cnt,$PTR)+1 WHERE id=$ID
chromium-84.0.4147.105/third_party/sqlite/src/ext/misc/remember.c-22-**
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ext/misc/amatch.c-28-**
chromium-84.0.4147.105/third_party/sqlite/src/ext/misc/amatch.c:29:**     SELECT W FROM V WHERE L=$language
chromium-84.0.4147.105/third_party/sqlite/src/ext/misc/amatch.c-30-**
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/fragck.tcl-83-    SELECT rootpage, type FROM sqlite_master
chromium-84.0.4147.105/third_party/sqlite/src/tool/fragck.tcl:84:     WHERE name=$objname
chromium-84.0.4147.105/third_party/sqlite/src/tool/fragck.tcl-85-  } break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-155-  set upr [expr {($i+10)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl:156:  puts $fd "SELECT count(*), avg(b) FROM t2 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-157-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-183-  set upr [expr {($i+1)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl:184:  puts $fd "SELECT count(*), avg(b) FROM t2 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-185-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-195-  set upr [expr {($i+1)*10}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl:196:  puts $fd "UPDATE t1 SET b=b*2 WHERE a>=$lwr AND a<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-197-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-207-  set r [expr {int(rand()*500000)}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl:208:  puts $fd "UPDATE t2 SET b=$r WHERE a=$i;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-209-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-218-  set r [expr {int(rand()*500000)}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl:219:  puts $fd "UPDATE t2 SET c='[number_name $r]' WHERE a=$i;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/speedtest.tcl-220-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-18-      set n $o(name)
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl:19:      if {0==[db one { SELECT count(*) FROM sqlite_master WHERE name=$n }]} {
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-20-        return 1
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-269-        AS depth
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl:270:    FROM temp.dbstat WHERE name = $name
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-271-  } break
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-289-    SELECT pageno, pagetype FROM temp.dbstat
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl:290:     WHERE name=$name
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-291-     ORDER BY pageno
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-680-  set name [string toupper $tbl]
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl:681:  set n [mem eval {SELECT count(*) FROM space_used WHERE tblname=$tbl}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-682-  if {$n>1} {
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-683-    set idxlist [mem eval "SELECT name FROM space_used
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl:684:                            WHERE tblname='$qn' AND is_index
chromium-84.0.4147.105/third_party/sqlite/src/tool/spaceanal.tcl-685-                            ORDER BY 1"]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-94-  set upr [expr {($i+10)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl:95:  puts "SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-96-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-121-  set upr [expr {($i+10)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl:122:  puts "SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-123-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-128-  set id [expr {int(rand()*50000)+1}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl:129:  puts "SELECT c FROM t1 WHERE rowid=$id;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-130-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-135-  set id [expr {int(rand()*50000)+1}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl:136:  puts "SELECT c FROM t1 WHERE a=$id;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-137-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-144-  set c [lindex $t1c_list $i]
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl:145:  puts "SELECT c FROM t1 WHERE c='$c';"
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-146-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-157-  set upr [expr {($i+1)*2}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl:158:  puts "UPDATE t1 SET b=b*2 WHERE a>=$lwr AND a<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-159-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-166-  set r [expr {int(rand()*500000)}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl:167:  puts "UPDATE t1 SET b=$r WHERE a=$i;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-168-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-182-  set r [expr {int(rand()*500000)}]
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl:183:  puts "UPDATE t1 SET c='[number_name $r]' WHERE a=$i;"
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkspeedsql.tcl-184-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh-23-TMPSPACE=./mkpkg_tmp_dir
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh:24:VERSION=`cat $TOP/VERSION`
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh:25:HASH=`sed 's/^\(..........\).*/\1/' $TOP/manifest.uuid`
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh:26:DATETIME=`grep '^D' $TOP/manifest | sed -e 's/[^0-9]//g' -e 's/\(............\).*/\1/'`
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh-27-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh-35-  # into artifact filenames. And $VERSION2 to the "3.x.y[.z]" form.
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh:36:  xx=`echo $VERSION|sed 's/3\.\([0-9]*\)\..*/\1/'`
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh:37:  yy=`echo $VERSION|sed 's/3\.[^.]*\.\([0-9]*\).*/\1/'`
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh-38-  zz=0
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh-39-  set +e
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh:40:    zz=`echo $VERSION|sed 's/3\.[^.]*\.[^.]*\.\([0-9]*\).*/\1/'|grep -v '\.'`
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh-41-  set -e
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh:42:  TARBALLNAME=`printf "sqlite-autoconf-3%.2d%.2d%.2d" $xx $yy $zz`
chromium-84.0.4147.105/third_party/sqlite/src/tool/mkautoconfamal.sh-43-else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-74-    do_execsql_test 2.$tn1.$tn2.1 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:75:      SELECT x, y FROM t2 WHERE x = 1 AND y IN $inexpr ORDER BY x ASC, y ASC;
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-76-    " {1 2  1 4  1 5}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-78-    do_execsql_test 2.$tn1.$tn2.2 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:79:      SELECT x, y FROM t2 WHERE x = 2 AND y IN $inexpr ORDER BY x ASC, y DESC;
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-80-    " {2 5  2 4  2 2}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-82-    do_execsql_test 2.$tn1.$tn2.3 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:83:      SELECT x, y FROM t2 WHERE x = 3 AND y IN $inexpr ORDER BY x DESC, y ASC;
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-84-    " {3 2  3 4  3 5}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-86-    do_execsql_test 2.$tn1.$tn2.4 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:87:      SELECT x, y FROM t2 WHERE x = 4 AND y IN $inexpr ORDER BY x DESC, y DESC;
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-88-    " {4 5  4 4  4 2}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-90-    do_execsql_test 2.$tn1.$tn2.5 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:91:      SELECT a, x, y FROM t2, t3 WHERE a = 4 AND x = 1 AND y IN $inexpr 
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-92-      ORDER BY a, x ASC, y ASC;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-94-    do_execsql_test 2.$tn1.$tn2.6 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:95:      SELECT a, x, y FROM t2, t3 WHERE a = 2 AND x = 1 AND y IN $inexpr 
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-96-      ORDER BY x ASC, y ASC;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-99-    do_execsql_test 2.$tn1.$tn2.7 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:100:      SELECT a, x, y FROM t2, t3 WHERE a = 4 AND x = 1 AND y IN $inexpr 
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-101-      ORDER BY a, x ASC, y DESC;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-103-    do_execsql_test 2.$tn1.8 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:104:      SELECT a, x, y FROM t2, t3 WHERE a = 2 AND x = 1 AND y IN $inexpr 
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-105-      ORDER BY x ASC, y DESC;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-108-    do_execsql_test 2.$tn1.$tn2.9 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:109:      SELECT a, x, y FROM t2, t3 WHERE a = 4 AND x = 1 AND y IN $inexpr 
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-110-      ORDER BY a, x DESC, y ASC;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-112-    do_execsql_test 2.$tn1.10 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:113:      SELECT a, x, y FROM t2, t3 WHERE a = 2 AND x = 1 AND y IN $inexpr 
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-114-      ORDER BY x DESC, y ASC;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-117-    do_execsql_test 2.$tn1.$tn2.11 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:118:      SELECT a, x, y FROM t2, t3 WHERE a = 4 AND x = 1 AND y IN $inexpr 
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-119-      ORDER BY a, x DESC, y DESC;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-121-    do_execsql_test 2.$tn1.$tn2.12 "
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test:122:      SELECT a, x, y FROM t2, t3 WHERE a = 2 AND x = 1 AND y IN $inexpr 
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt-4dd95f6943.test-123-      ORDER BY x DESC, y DESC;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl-47-
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl:48:  set line [$db one {SELECT line FROM frame WHERE frame = $frame}]
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl-49-  if {$line ne ""} {
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl-50-    foreach {file line} [split $line :] {}
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl:51:    set content [$db one "SELECT content FROM file WHERE name = '$file'"]
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl-52-    $::O(text) delete 0.0 end
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl-159-      FROM malloc
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl:160:      WHERE (zTest = $zTest OR $zTest = 'TOTAL') AND llength(lstack)>$ii
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl-161-      GROUP BY stack
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl-165-      set frame [lindex $stack end]
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl:166:      set line [$db one {SELECT line FROM frame WHERE frame = $frame}]
chromium-84.0.4147.105/third_party/sqlite/src/test/malloctraceviewer.tcl-167-      set line [lindex [split $line /] end]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/triggerB.test-146-    execsql {
chromium-84.0.4147.105/third_party/sqlite/src/test/triggerB.test:147:      SELECT * FROM t3_changes WHERE colnum=$i
chromium-84.0.4147.105/third_party/sqlite/src/test/triggerB.test-148-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/e_fkey.test-388-  {INSERT INTO track VALUES($t, 'track $t', $a)}
chromium-84.0.4147.105/third_party/sqlite/src/test/e_fkey.test:389:  {DELETE FROM track WHERE trackid = $t}
chromium-84.0.4147.105/third_party/sqlite/src/test/e_fkey.test:390:  {UPDATE track SET trackartist = $a WHERE trackid = $t}
chromium-84.0.4147.105/third_party/sqlite/src/test/e_fkey.test-391-  {INSERT INTO artist VALUES($a, 'artist $a')}
chromium-84.0.4147.105/third_party/sqlite/src/test/e_fkey.test:392:  {DELETE FROM artist WHERE artistid = $a}
chromium-84.0.4147.105/third_party/sqlite/src/test/e_fkey.test:393:  {UPDATE artist SET artistid = $a2 WHERE artistid = $a}
chromium-84.0.4147.105/third_party/sqlite/src/test/e_fkey.test-394-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-164-  set res [list]
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test:165:  db eval {SELECT rowid, x, y FROM data WHERE l = $langid ORDER BY rowid ASC} {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-166-    if {[string match "*$pattern*" $x] || [string match "*$pattern*" $y]} {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-246-    set actual [
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test:247:      execsql {SELECT docid FROM t2 WHERE t2 MATCH $query AND l = $langid}
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-248-    ]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-384-  do_execsql_test 4.1.4.$i {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test:385:    SELECT count(*) FROM t4 WHERE t4 MATCH 'fox' AND lid=$i;
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-386-  } [expr 0==($i%2)]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-424-  do_execsql_test 5.2.$langid { 
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test:425:    SELECT docid FROM t5 WHERE t5 MATCH 'language' AND lid = $langid
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-426-  } $langid
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-445-do_test 5.3.3 {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test:446:  execsql { SELECT docid FROM t6 WHERE t6 MATCH 'belong' AND lid=$lid}
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-447-} {2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-451-do_execsql_test 5.3.6 { 
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test:452:  SELECT docid FROM t6 WHERE t6 MATCH 'belong' AND lid=$lid
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-453-} {2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-472-
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test:473:    SELECT docid FROM t6 WHERE t6 MATCH '"zero zero"' AND lid=$lid;
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-474-  } {1 2 5}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-483-    INSERT INTO t6(t6) VALUES('merge=100,3');
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test:484:    SELECT docid FROM t6 WHERE t6 MATCH '"zero zero"' AND lid=$lid;
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4langid.test-485-  } {1 2 5}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge.test-205-    foreach docid [execsql {SELECT docid FROM t1}] {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge.test:206:      execsql {INSERT INTO t1 SELECT * FROM t1 WHERE docid=$docid}
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge.test-207-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge.test-238-    }] {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge.test:239:      execsql {INSERT INTO t1 SELECT * FROM t1 WHERE docid=$docid}
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge.test-240-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3shared.test-108-} {}
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3shared.test:109:do_test 2.2.2 { catchsql "SELECT * FROM t1 WHERE rowid=1"          dbR } $LOCKED
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3shared.test-110-do_test 2.2.3 { catchsql "SELECT * FROM t1 WHERE t1 MATCH 'a'"     dbR } $LOCKED
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-133-for {set ii 1} {$ii < 10000} {incr ii} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test:134:  append sql "SELECT * FROM v[expr {($ii%3)+1}] WHERE rowid = [expr {$ii*3}];"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-135-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-144-for {set ii 1} {$ii < 10000} {incr ii} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test:145:  append sql "SELECT t FROM t[expr {($ii%3)+1}] WHERE rowid = [expr {$ii*3}];"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-146-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-153-  append sql "
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test:154:    SELECT (SELECT t FROM t1 WHERE rowid = [expr {$ii*3}]), 
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test:155:           (SELECT t FROM t2 WHERE rowid = [expr {$ii*3}]), 
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test:156:           (SELECT t FROM t3 WHERE rowid = [expr {$ii*3}])
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-157-  ;"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-186-  append sql "
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test:187:    UPDATE t4 SET i = $ii2, t = '[number_name $ii2]' WHERE rowid = $ii;
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-188-  "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-192-for {set ii 1} {$ii < 20000} {incr ii 2} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test:193:  append sql "DELETE FROM t4 WHERE rowid = $ii;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-194-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-218-  append sql "
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test:219:    UPDATE t4 SET i = $ii2, t = '[number_name $ii2]' WHERE rowid = $ii;
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-220-  "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-224-for {set ii 1} {$ii < 20000} {incr ii 2} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test:225:  append sql "DELETE FROM t4 WHERE rowid = $ii;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4.test-226-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/select2.test-36-    lappend r $f1:
chromium-84.0.4147.105/third_party/sqlite/src/test/select2.test:37:    set sql2 "SELECT f2 FROM tbl1 WHERE f1=$f1 ORDER BY f2"
chromium-84.0.4147.105/third_party/sqlite/src/test/select2.test-38-    db eval $sql2 d2 {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/select2.test-50-    lappend r $f1:
chromium-84.0.4147.105/third_party/sqlite/src/test/select2.test:51:    set sql2 "SELECT f2 FROM tbl1 WHERE f1=$f1 ORDER BY f2"
chromium-84.0.4147.105/third_party/sqlite/src/test/select2.test-52-    db eval $sql2 d2 {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/bestindex3.test-65-      if {$bOmit && $idxstr != ""} {
chromium-84.0.4147.105/third_party/sqlite/src/test/bestindex3.test:66:        set where " WHERE [string map [list ? '$param' EQ =] $idxstr]"
chromium-84.0.4147.105/third_party/sqlite/src/test/bestindex3.test-67-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/where2.test-754-      FROM t12 AS a JOIN t12 AS b ON a.y=b.x
chromium-84.0.4147.105/third_party/sqlite/src/test/where2.test:755:     WHERE (b.x=$abc OR b.y=$abc);
chromium-84.0.4147.105/third_party/sqlite/src/test/where2.test-756-} {/.*SEARCH TABLE t12 AS b .*SEARCH TABLE t12 AS b .*/}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/zipfile.test-637-  db eval { SELECT name, data FROM zz } {
chromium-84.0.4147.105/third_party/sqlite/src/test/zipfile.test:638:    if { $data=="2" } { db eval { DELETE FROM zz WHERE name=$name } }
chromium-84.0.4147.105/third_party/sqlite/src/test/zipfile.test-639-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/zipfile.test-643-  db eval { SELECT name, data FROM zz } {
chromium-84.0.4147.105/third_party/sqlite/src/test/zipfile.test:644:    db eval { DELETE FROM zz WHERE name=$name }
chromium-84.0.4147.105/third_party/sqlite/src/test/zipfile.test-645-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/func5.test-58-  SELECT x, y FROM t2
chromium-84.0.4147.105/third_party/sqlite/src/test/func5.test:59:   WHERE x+counter2('hello')=$cvalue+x
chromium-84.0.4147.105/third_party/sqlite/src/test/func5.test-60-   ORDER BY +x;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/pager1.test-71-  set cnt 0
chromium-84.0.4147.105/third_party/sqlite/src/test/pager1.test:72:  db eval "SELECT rowid, * FROM $table WHERE rowid = ($id-1)" {
chromium-84.0.4147.105/third_party/sqlite/src/test/pager1.test-73-    recursive_select $rowid $table $script
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/pager1.test-1720-  do_execsql_test pager1-13.1.2.$nUp.1 { 
chromium-84.0.4147.105/third_party/sqlite/src/test/pager1.test:1721:    UPDATE t1 SET b = a_string(399) WHERE a <= $nUp
chromium-84.0.4147.105/third_party/sqlite/src/test/pager1.test-1722-  } {}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/pager1.test-1746-  do_execsql_test pager1-13.2.2.$nUp.1 { 
chromium-84.0.4147.105/third_party/sqlite/src/test/pager1.test:1747:    UPDATE t1 SET b = a_string(399) WHERE a <= $nUp
chromium-84.0.4147.105/third_party/sqlite/src/test/pager1.test-1748-  } {}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-132-    set t [expr {$ii%3+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:133:    db eval "SELECT * FROM v$t WHERE rowid = \$v"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-134-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-146-    set t [expr {$ii%3+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:147:    db eval "SELECT t FROM t$t WHERE rowid = \$v"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-148-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-157-    db eval {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:158:      SELECT (SELECT t FROM t1 WHERE rowid = $v), 
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:159:             (SELECT t FROM t2 WHERE rowid = $v), 
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:160:             (SELECT t FROM t3 WHERE rowid = $v)
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-161-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-170-  for {set ii 1} {$ii < 10000} {incr ii} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:171:    db eval {UPDATE t1 SET i=i+1 WHERE rowid=$ii}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-172-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-188-  foreach t $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:189:    db eval {UPDATE t5 SET i=i+1 WHERE t=$t}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-190-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-230-    db eval {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:231:      UPDATE t4 SET i = $ii2, t = $name WHERE rowid = $ii;
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-232-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-238-  for {set ii 1} {$ii < 20000} {incr ii 2} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:239:    db eval {DELETE FROM t4 WHERE rowid = $ii}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-240-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-275-    db eval {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:276:      UPDATE t4 SET i = $ii2, t = $name WHERE rowid = $ii;
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-277-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-283-  for {set ii 1} {$ii < 20000} {incr ii 2} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test:284:    db eval {DELETE FROM t4 WHERE rowid = $ii}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.test-285-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth2.test-37-    DELETE FROM x1 
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth2.test:38:      WHERE docid IN (SELECT docid FROM t1 WHERE (rowid-1)%4==$val+0);
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth2.test-39-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth2.test-41-    INSERT INTO x1(docid, content) 
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth2.test:42:      SELECT docid, words FROM t1 WHERE (rowid%4)==$val+0;
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth2.test-43-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/with1.test-502-      set id [db one {
chromium-84.0.4147.105/third_party/sqlite/src/test/with1.test:503:        SELECT id FROM tree WHERE parentid IS $parentid AND payload=$seg
chromium-84.0.4147.105/third_party/sqlite/src/test/with1.test-504-      }]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts1a.test-177-  set rowid [db last_insert_rowid]
chromium-84.0.4147.105/third_party/sqlite/src/test/fts1a.test:178:  execsql {SELECT content FROM t1 WHERE rowid=$rowid}
chromium-84.0.4147.105/third_party/sqlite/src/test/fts1a.test-179-} {{}}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-112-    execsql {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test:113:      INSERT INTO x2(docid, content) SELECT $id, words FROM t1 WHERE docid=$id
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-114-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-117-    execsql {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test:118:      INSERT INTO x2(docid, content) SELECT NULL, words FROM t1 WHERE docid=$id
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-119-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-188-  foreach iDoc $args {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test:189:    execsql { DELETE FROM x3 WHERE docid = $iDoc }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-190-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-298-    execsql {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test:299:      INSERT INTO x2(docid, content) SELECT docid, words FROM t1 WHERE rowid=$r
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-300-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-302-  foreach d [db eval { SELECT docid FROM t1 LIMIT -1 OFFSET 20 }] {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test:303:    execsql { DELETE FROM x2 WHERE docid = $d }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-304-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-330-    execsql {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test:331:      DELETE FROM x2 WHERE docid=$id;
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test:332:      INSERT INTO x2(docid, content) SELECT $id, words FROM t1 WHERE docid=$id;
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4growth.test-333-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/autovacuum.test-97-      execsql "
chromium-84.0.4147.105/third_party/sqlite/src/test/autovacuum.test:98:        DELETE FROM av1 WHERE oid = [join $delete " OR oid = "]
chromium-84.0.4147.105/third_party/sqlite/src/test/autovacuum.test-99-      "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-164-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl:165:    puts "    SELECT t1.* FROM t1, t2 WHERE t1.rowid=$r AND t2.a=t1.a"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-166-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-169-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl:170:    puts "    SELECT t2.* FROM t1 JOIN t2 USING(a) WHERE x='$x'"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-171-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-174-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl:175:    puts "    SELECT t1.rowid, x FROM t1 JOIN t2 ON t2.r=t1.rowid WHERE t2.a=$a"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-176-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-215-    puts "    SELECT t1.a FROM t1 JOIN t2 ON t1.rowid $op t2.r"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl:216:    puts "     WHERE t2.a=$ax"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-217-    puts "     ORDER BY t1.rowid"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-228-    puts "    SELECT t1.a FROM t1 JOIN t2 ON t1.rowid $op t2.r"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl:229:    puts "     WHERE t2.a=$ax"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-230-    puts "     ORDER BY t1.rowid DESC"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-246-    puts "    SELECT t1.a FROM t1 JOIN t2 ON t1.rowid $op t2.r"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl:247:    puts "     WHERE t2.a=$ax"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-248-    puts "     ORDER BY x"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-266-    puts "    SELECT t1.a FROM t1 JOIN t2 ON t1.rowid $op CAST(t2.r AS real)"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl:267:    puts "     WHERE t2.a=$ax"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-268-    puts "     ORDER BY t1.rowid"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-279-    puts "    SELECT t1.a FROM t1 JOIN t2 ON t1.rowid $op CAST(t2.r AS real)"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl:280:    puts "     WHERE t2.a=$ax"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary3.tcl-281-    puts "     ORDER BY t1.rowid DESC"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/thread003.test-89-        set iQuery [expr {int(rand()*5000)}]
chromium-84.0.4147.105/third_party/sqlite/src/test/thread003.test:90:        execsql " SELECT * FROM t1 WHERE a = $iQuery "
chromium-84.0.4147.105/third_party/sqlite/src/test/thread003.test-91-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/thread003.test-126-        set iQuery [expr {int(rand()*5000)}]
chromium-84.0.4147.105/third_party/sqlite/src/test/thread003.test:127:        execsql "SELECT * FROM t1 WHERE a = $iQuery"
chromium-84.0.4147.105/third_party/sqlite/src/test/thread003.test-128-        execsql "UPDATE t1 SET b = randomblob(200) 
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/thread003.test-165-      set iQuery [expr {int(rand()*5000)}]
chromium-84.0.4147.105/third_party/sqlite/src/test/thread003.test:166:      execsql "SELECT * FROM t1 WHERE a = $iQuery"
chromium-84.0.4147.105/third_party/sqlite/src/test/thread003.test-167-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/waloverwrite.test-82-        foreach x [db eval {SELECT x FROM t1}] {
chromium-84.0.4147.105/third_party/sqlite/src/test/waloverwrite.test:83:          execsql { UPDATE t1 SET y = randomblob(799) WHERE x=$x }
chromium-84.0.4147.105/third_party/sqlite/src/test/waloverwrite.test-84-        }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/waloverwrite.test-118-        foreach x [db eval {SELECT x FROM t1}] {
chromium-84.0.4147.105/third_party/sqlite/src/test/waloverwrite.test:119:          execsql { UPDATE t1 SET y = randomblob(798) WHERE x=$x }
chromium-84.0.4147.105/third_party/sqlite/src/test/waloverwrite.test-120-        }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/waloverwrite.test-130-        foreach x [db eval {SELECT x FROM t1}] {
chromium-84.0.4147.105/third_party/sqlite/src/test/waloverwrite.test:131:          execsql { UPDATE t1 SET y = randomblob(797) WHERE x=$x }
chromium-84.0.4147.105/third_party/sqlite/src/test/waloverwrite.test-132-        }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/delete.test-128-  for {set i 1} {$i<=200} {incr i 4} {
chromium-84.0.4147.105/third_party/sqlite/src/test/delete.test:129:     execsql "DELETE FROM table1 WHERE f1==$i"
chromium-84.0.4147.105/third_party/sqlite/src/test/delete.test-130-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/delete.test-141-  for {set i 1} {$i<=70} {incr i 3} {
chromium-84.0.4147.105/third_party/sqlite/src/test/delete.test:142:     execsql "DELETE FROM table1 WHERE f1==$i"
chromium-84.0.4147.105/third_party/sqlite/src/test/delete.test-143-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/delete.test-147-  for {set i 1} {$i<40} {incr i} {
chromium-84.0.4147.105/third_party/sqlite/src/test/delete.test:148:     execsql "DELETE FROM table1 WHERE f1==$i"
chromium-84.0.4147.105/third_party/sqlite/src/test/delete.test-149-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts1porter.test-3163-    catalogue            catalogu
chromium-84.0.4147.105/third_party/sqlite/src/test/fts1porter.test:3164:    cataplasm            cataplasm
chromium-84.0.4147.105/third_party/sqlite/src/test/fts1porter.test-3165-    cataracts            cataract
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4check.test-133-      INSERT INTO t3(x, y, langid) 
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4check.test:134:      SELECT x, y, (docid%9)*4 FROM t1 WHERE docid=$docid;
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4check.test-135-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/btree02.test-53-      # puts "DELETE a=$a"
chromium-84.0.4147.105/third_party/sqlite/src/test/btree02.test:54:      db eval {DELETE FROM t1 WHERE a=$a}
chromium-84.0.4147.105/third_party/sqlite/src/test/btree02.test-55-      # showt1
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/e_blobopen.test-147-    do_execsql_test 3.$tn.3 {
chromium-84.0.4147.105/third_party/sqlite/src/test/e_blobopen.test:148:      SELECT c FROM x1 WHERE a=$iRow;
chromium-84.0.4147.105/third_party/sqlite/src/test/e_blobopen.test-149-    } [binary format ccc 0 1 $iRow]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/e_blobopen.test-156-    do_execsql_test 3.$tn.5 {
chromium-84.0.4147.105/third_party/sqlite/src/test/e_blobopen.test:157:      SELECT c FROM x1 WHERE a=$iRow;
chromium-84.0.4147.105/third_party/sqlite/src/test/e_blobopen.test-158-    } {xxx}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/sort4.test-120-  #
chromium-84.0.4147.105/third_party/sqlite/src/test/sort4.test:121:  set sql1 "SELECT a, [join $cols ,], b FROM t1 WHERE rowid<=$nRow ORDER BY a"
chromium-84.0.4147.105/third_party/sqlite/src/test/sort4.test:122:  set sql2 "SELECT a FROM t1 WHERE rowid<=$nRow ORDER BY a LIMIT $nRead"
chromium-84.0.4147.105/third_party/sqlite/src/test/sort4.test-123-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/pagerfault.test-1143-  if {$n==0} { return "" }
chromium-84.0.4147.105/third_party/sqlite/src/test/pagerfault.test:1144:  db eval { SELECT * FROM t1 WHERE oid = $n } { 
chromium-84.0.4147.105/third_party/sqlite/src/test/pagerfault.test-1145-    return [lockrows [expr {$n-1}]]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/malloc.test-625-  db eval {SELECT a FROM abc ORDER BY a} {
chromium-84.0.4147.105/third_party/sqlite/src/test/malloc.test:626:    db eval {UPDATE abc SET b = b - 1 WHERE a = $a}
chromium-84.0.4147.105/third_party/sqlite/src/test/malloc.test-627-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/malloc.test-919-do_faultsim_test 41.2 -faults oom* -body {
chromium-84.0.4147.105/third_party/sqlite/src/test/malloc.test:920:  execsql { SELECT * FROM t1 WHERE a = ('abcde' || $::big)}
chromium-84.0.4147.105/third_party/sqlite/src/test/malloc.test-921-} -test {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/alter2.test-69-    PRAGMA writable_schema = 1;
chromium-84.0.4147.105/third_party/sqlite/src/test/alter2.test:70:    UPDATE sqlite_master SET sql = '$s' WHERE name = '$t' AND type = 'table';
chromium-84.0.4147.105/third_party/sqlite/src/test/alter2.test-71-    PRAGMA writable_schema = 0;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test-79-    set b2 [set_byte $blob $i $c]
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test:80:    execsql { UPDATE t2_segments SET block = $b2 WHERE rowid = $rowid }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test-81-    do_test fts3corrupt2-1.$tn.$i {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test-85-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test:86:  execsql { UPDATE t2_segments SET block = $blob WHERE rowid = $rowid }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test-87-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test-95-      set b2 [set_byte $blob $i $c]
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test:96:      execsql { UPDATE t2_segdir SET root = $b2 WHERE rowid = $rowid }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test-97-      do_test fts3corrupt2-2.$c.$tn.$i {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test-101-    }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test:102:    execsql { UPDATE t2_segdir SET root = $blob WHERE rowid = $rowid }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3corrupt2.test-103-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowvalue2.test-118-        SELECT rowid FROM t3 WHERE (a, b, c) [set op] (
chromium-84.0.4147.105/third_party/sqlite/src/test/rowvalue2.test:119:          SELECT a, b, c FROM t3 WHERE w = $w
chromium-84.0.4147.105/third_party/sqlite/src/test/rowvalue2.test-120-        )
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/savepoint6.test-120-    # Update database [db]
chromium-84.0.4147.105/third_party/sqlite/src/test/savepoint6.test:121:    sql "DELETE FROM t1 WHERE x = $x"
chromium-84.0.4147.105/third_party/sqlite/src/test/savepoint6.test-122-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3conf.test-31-
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3conf.test:32:  set sql [db one {SELECT sql FROM sqlite_master WHERE name = $tbl}]
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3conf.test-33-  regexp -nocase {[^(]* using (.*)} $sql -> tail
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/e_blobwrite.test-49-  sqlite3_blob_close $B
chromium-84.0.4147.105/third_party/sqlite/src/test/e_blobwrite.test:50:  uplevel [list do_execsql_test $tn.3 "SELECT t FROM t1 WHERE a=$id" $final]
chromium-84.0.4147.105/third_party/sqlite/src/test/e_blobwrite.test-51-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt1667.test-56-    execsql {
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt1667.test:57:      DELETE FROM t1 WHERE a = $i;
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt1667.test-58-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-20-**    (1) INSERT OR IGNORE INTO wordcount VALUES($new,1)
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c:21:**    (2) UPDATE wordcount SET cnt=cnt+1 WHERE word=$new -- if (1) is a noop
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-22-**
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-24-**    (1) INSERT OR IGNORE INTO wordcount VALUES($new,0)
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c:25:**    (2) UPDATE wordcount SET cnt=cnt+1 WHERE word=$new
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-26-**
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-28-**    (1) REPLACE INTO wordcount
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c:29:**        VALUES($new,ifnull((SELECT cnt FROM wordcount WHERE word=$new),0)+1);
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-30-**
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-35-** Select mode means:
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c:36:**    (1) SELECT 1 FROM wordcount WHERE word=$new
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-37-**    (2) INSERT INTO wordcount VALUES($new,1) -- if (1) returns nothing
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c:38:**    (3) UPDATE wordcount SET cnt=cnt+1 WHERE word=$new  --if (1) return TRUE
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-39-**
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-40-** Delete mode means:
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c:41:**    (1) DELETE FROM wordcount WHERE word=$new
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-42-**
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-43-** Query mode means:
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c:44:**    (1) SELECT cnt FROM wordcount WHERE word=$new
chromium-84.0.4147.105/third_party/sqlite/src/test/wordcount.c-45-**
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/cost.test-246-
chromium-84.0.4147.105/third_party/sqlite/src/test/cost.test:247:  set sql1 "SELECT * FROM t1 WHERE likelihood(k=?, $p1) AND $w"
chromium-84.0.4147.105/third_party/sqlite/src/test/cost.test:248:  set sql2 "SELECT * FROM t1 WHERE likelihood(k=?, $p2) AND $w"
chromium-84.0.4147.105/third_party/sqlite/src/test/cost.test-249-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/in2.test-61-    execsql {
chromium-84.0.4147.105/third_party/sqlite/src/test/in2.test:62:      SELECT 1 IN (SELECT a FROM a WHERE (i < $::ii) OR (i >= $::N))
chromium-84.0.4147.105/third_party/sqlite/src/test/in2.test-63-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/prefixes.test-76-    WITH finder(str) AS (
chromium-84.0.4147.105/third_party/sqlite/src/test/prefixes.test:77:      SELECT (SELECT max(k) FROM t1 WHERE k<=$INPUT)
chromium-84.0.4147.105/third_party/sqlite/src/test/prefixes.test-78-        UNION ALL
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/prefixes.test-80-          SELECT max(k) FROM t1 
chromium-84.0.4147.105/third_party/sqlite/src/test/prefixes.test:81:          WHERE k<=substr($INPUT, 1, prefix_length(finder.str, $INPUT))
chromium-84.0.4147.105/third_party/sqlite/src/test/prefixes.test-82-        ) FROM finder WHERE length(finder.str)>0
chromium-84.0.4147.105/third_party/sqlite/src/test/prefixes.test-83-      )
chromium-84.0.4147.105/third_party/sqlite/src/test/prefixes.test:84:    SELECT str FROM finder WHERE length(str)==prefix_length(str, $INPUT) LIMIT 1
chromium-84.0.4147.105/third_party/sqlite/src/test/prefixes.test-85-  } $expected
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/index.test-355-  set sqlite_search_count 0
chromium-84.0.4147.105/third_party/sqlite/src/test/index.test:356:  concat [execsql {SELECT c FROM t3 WHERE b==10}] $sqlite_search_count
chromium-84.0.4147.105/third_party/sqlite/src/test/index.test-357-} {0.1 2}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-150-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl:151:    puts "    SELECT * FROM t1 WHERE r=$r"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-152-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-155-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl:156:    puts "    SELECT r, a FROM t1 WHERE x='$x'"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-157-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-160-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl:161:    puts "    SELECT r, x FROM t1 WHERE a=$a"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-162-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-306-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl:307:    puts "    SELECT * FROM t1 WHERE r=$r"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-308-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-311-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl:312:    puts "    SELECT r, a FROM t1 WHERE x='$x'"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-313-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-316-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl:317:    puts "    SELECT r, x FROM t1 WHERE a=$a"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary2.tcl-318-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4opt.test-120-  foreach {docid words} [db eval { SELECT * FROM t1 }] {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4opt.test:121:    if {[incr i] % 2} { execsql { DELETE FROM t2 WHERE docid = $docid } }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4opt.test-122-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3c.test-29-proc check_terms {test level index terms} {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3c.test:30:  set where "level = $level AND idx = $index"
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3c.test-31-  do_test $test.terms [list fts3_terms t1 $where] $terms
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3c.test-39-proc check_doclist {test level index term doclist} {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3c.test:40:  set where "level = $level AND idx = $index"
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3c.test-41-  do_test $test [list fts3_doclist t1 $term $where] $doclist
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/update2.test-198-  catch { array unset A }
chromium-84.0.4147.105/third_party/sqlite/src/test/update2.test:199:  db eval { EXPLAIN UPDATE x1 SET c=c+1 WHERE b='a' } { incr A($opcode) }
chromium-84.0.4147.105/third_party/sqlite/src/test/update2.test-200-  set A(NotExists)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/malloc3.test-148-# behaviour of the system when malloc() fails during preparation or
chromium-84.0.4147.105/third_party/sqlite/src/test/malloc3.test:149:# execution of said statement. The Nth time the statement is executed,
chromium-84.0.4147.105/third_party/sqlite/src/test/malloc3.test-150-# the Nth malloc is said to fail. The statement is executed until it
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-132-  foreach {lwr upr} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:133:    db eval  {SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-134-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-135-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:136:explain {SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-137-db eval BEGIN
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-180-  foreach {lwr upr} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:181:    db eval {SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-182-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-183-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:184:explain {SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-185-db eval BEGIN
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-197-  foreach id $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:198:    db eval {SELECT c FROM t1 WHERE rowid=$id}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-199-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-200-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:201:explain {SELECT c FROM t1 WHERE rowid=$id}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-202-db eval BEGIN
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-214-  foreach id $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:215:    db eval {SELECT c FROM t1 WHERE a=$id}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-216-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-217-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:218:explain {SELECT c FROM t1 WHERE a=$id}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-219-db eval BEGIN
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-227-  foreach c $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:228:    db eval {SELECT c FROM t1 WHERE c=$c}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-229-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-230-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:231:explain {SELECT c FROM t1 WHERE c=$c}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-232-db eval BEGIN
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-249-  foreach {lwr upr} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:250:    db eval {UPDATE t1 SET b=b*2 WHERE a>=$lwr AND a<$upr}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-251-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-252-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:253:explain {UPDATE t1 SET b=b*2 WHERE a>=$lwr AND a<$upr}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-254-db eval BEGIN
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-266-  foreach {i r} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:267:    db eval {UPDATE t1 SET b=$r WHERE a=$i}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-268-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-269-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:270:explain {UPDATE t1 SET b=$r WHERE a=$i}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-271-db eval BEGIN
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-291-  foreach {i x} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:292:    db eval {UPDATE t1 SET c=$x WHERE a=$i}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-293-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-294-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain:295:explain {UPDATE t1 SET c=$x WHERE a=$i}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.explain-296-db eval BEGIN
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/wal3.test-73-    set str [a_string 800]
chromium-84.0.4147.105/third_party/sqlite/src/test/wal3.test:74:    execsql { UPDATE t1 SET x = $str WHERE rowid = $i }
chromium-84.0.4147.105/third_party/sqlite/src/test/wal3.test-75-    lappend L [wal_frame_count test.db-wal 1024]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/wal3.test-91-  do_test wal3-1.$i.3 {
chromium-84.0.4147.105/third_party/sqlite/src/test/wal3.test:92:    execsql { SELECT x FROM t1 WHERE rowid = $i }
chromium-84.0.4147.105/third_party/sqlite/src/test/wal3.test-93-  } $str
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/wal3.test-108-  do_test wal3-1.$i.6 {
chromium-84.0.4147.105/third_party/sqlite/src/test/wal3.test:109:    execsql { SELECT x FROM t1 WHERE rowid = $i }
chromium-84.0.4147.105/third_party/sqlite/src/test/wal3.test-110-  } $str
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/analyze9.test-420-do_eqp_test 9.4.1 {
chromium-84.0.4147.105/third_party/sqlite/src/test/analyze9.test:421:  SELECT * FROM t1 WHERE a='x' AND b='y' AND c='z' AND d=$value_d AND e=5
chromium-84.0.4147.105/third_party/sqlite/src/test/analyze9.test-422-} {/t1 USING INDEX i2/}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/analyze9.test-424-do_eqp_test 9.4.2 {
chromium-84.0.4147.105/third_party/sqlite/src/test/analyze9.test:425:  SELECT * FROM t1 WHERE a='x' AND b='y' AND c='z' AND d=$value_d AND e=5
chromium-84.0.4147.105/third_party/sqlite/src/test/analyze9.test-426-} {/t1 USING INDEX i1/}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/analyze9.test-951-      SELECT count(*) FROM sqlite_stat4 
chromium-84.0.4147.105/third_party/sqlite/src/test/analyze9.test:952:      WHERE lrange(test_decode(sample), 0, 3)=$val
chromium-84.0.4147.105/third_party/sqlite/src/test/analyze9.test-953-    } {1}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/vtabH.test-253-    do_execsql_test 3.8 {
chromium-84.0.4147.105/third_party/sqlite/src/test/vtabH.test:254:      SELECT size FROM fstree WHERE path = $pwd || '/subdir/x1.txt'
chromium-84.0.4147.105/third_party/sqlite/src/test/vtabH.test-255-    } 143
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge3.test-69-      for {set i 0} {$i < 1500} {incr i} {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge3.test:70:        sql2 "INSERT INTO t2 SELECT content FROM t2 WHERE docid = $i"
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge3.test-71-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge3.test-85-      for {set i 0} {$i < 1500} {incr i} {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge3.test:86:        sql2 "INSERT INTO t2 SELECT content FROM t2 WHERE docid = $i"
chromium-84.0.4147.105/third_party/sqlite/src/test/fts4merge3.test-87-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test-88-do_test bigrow-1.8 {
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test:89:  execsql "SELECT b FROM t1 WHERE a=='$::big1'"
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test-90-} {abc}
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test-91-do_test bigrow-1.9 {
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test:92:  execsql "SELECT b FROM t1 WHERE a!='$::big1' ORDER BY a"
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test-93-} {2 B}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test-100-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test:101:  execsql "SELECT b FROM t1 WHERE a=='$::big1'"
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test-102-} {abc}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test-112-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test:113:  execsql "SELECT b FROM t1 WHERE a=='$::big1'"
chromium-84.0.4147.105/third_party/sqlite/src/test/bigrow.test-114-} {abc}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-187-  sqlite3_db_config db DEFENSIVE 0
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test:188:  execsql { UPDATE ft_content SET c1b = 'hello world' WHERE c1b = $numbers }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-189-  do_error_test $T.2.3 {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-442-  set r 1000000                   ;# A rowid that exists in table ft
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test:443:  do_select_test $T.10.0 { SELECT rowid FROM ft WHERE rowid = $r } $r
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-444-  do_select_test $T.10.1 {
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-447-  do_select_test $T.10.2 {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test:448:    SELECT length(offsets(ft)), typeof(offsets(ft)) FROM ft WHERE rowid = $r
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-449-  } {0 text}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-453-  do_select_test $T.10.4 {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test:454:    SELECT length(snippet(ft)), typeof(snippet(ft)) FROM ft WHERE rowid = $r;
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-455-  } {0 text}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-459-  do_select_test $T.10.6 {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test:460:    SELECT length(matchinfo(ft)), typeof(matchinfo(ft)) FROM ft WHERE rowid = $r
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3snippet.test-461-  } {0 blob}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-112-  set upr [expr {($i+10)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:113:  append sql "SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-114-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-136-  set upr [expr {($i+10)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:137:  append sql "SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-138-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-167-  set upr [expr {($i+10)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:168:  append sql "SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-169-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-176-  set id [expr {int(rand()*50000)+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:177:  append sql "SELECT c=='hi' FROM t1 WHERE rowid=$id;\n"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-178-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-185-  set id [expr {int(rand()*50000)+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:186:  append sql "SELECT c FROM t1 WHERE a=$id;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-187-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-193-db eval {SELECT c FROM t1 ORDER BY random() LIMIT 50000} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:194:  append sql "SELECT c FROM t1 WHERE c='$c';"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-195-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-208-  set upr [expr {($i+10)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:209:  append sql "SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-210-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-217-  set id [expr {int(rand()*50000)+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:218:  append sql "SELECT c=='hi' FROM t1 WHERE rowid=$id;\n"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-219-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-226-  set id [expr {int(rand()*50000)+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:227:  append sql "SELECT c FROM t1 WHERE a=$id;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-228-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-234-db eval {SELECT c FROM t1 ORDER BY random() LIMIT 50000} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:235:  append sql "SELECT c FROM t1 WHERE c='$c';"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-236-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-244-  set upr [expr {($i+1)*2}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:245:  append sql "UPDATE t1 SET b=b*2 WHERE a>=$lwr AND a<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-246-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-255-  set r [expr {int(rand()*500000)}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:256:  append sql "UPDATE t1 SET b=$r WHERE a=$i;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-257-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-273-  set r [expr {int(rand()*500000)}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test:274:  append sql "UPDATE t1 SET c='[number_name $r]' WHERE a=$i;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed2.test-275-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts2a.test-177-  set rowid [db last_insert_rowid]
chromium-84.0.4147.105/third_party/sqlite/src/test/fts2a.test:178:  execsql {SELECT content FROM t1 WHERE rowid=$rowid}
chromium-84.0.4147.105/third_party/sqlite/src/test/fts2a.test-179-} {{}}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/multiplex3.test-120-    execsql { 
chromium-84.0.4147.105/third_party/sqlite/src/test/multiplex3.test:121:      UPDATE t1 SET a=randomblob(12), b=randomblob(1400) WHERE rowid=5*$iTest
chromium-84.0.4147.105/third_party/sqlite/src/test/multiplex3.test-122-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-208-  do_catchsql_test 2.6.$tn "
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test:209:    CREATE VIRTUAL TABLE temp.a1 USING unionvtab(`$sql`)
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-210-  " {1 {rowid range mismatch error}}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-300-
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test:301:do_execsql_test 3.8.1 { SELECT count(*) FROM uu WHERE rowid >= $S } {300}
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-302-do_execsql_test 3.8.2 { SELECT count(*) FROM uu WHERE rowid >  $S } {300}
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test:303:do_execsql_test 3.8.3 { SELECT count(*) FROM uu WHERE rowid <= $S } {0}
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-304-do_execsql_test 3.8.4 { SELECT count(*) FROM uu WHERE rowid <  $S } {0}
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-305-
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test:306:do_execsql_test 3.9.1 { SELECT count(*) FROM uu WHERE rowid >= $L } {0}
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-307-do_execsql_test 3.9.2 { SELECT count(*) FROM uu WHERE rowid >  $L } {0}
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test:308:do_execsql_test 3.9.3 { SELECT count(*) FROM uu WHERE rowid <= $L } {300}
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-309-do_execsql_test 3.9.4 { SELECT count(*) FROM uu WHERE rowid <  $L } {300}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-353-} {
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test:354:  do_execsql_test 4.2.$v { SELECT * FROM sl WHERE rowid=$k } [list $k $v]
chromium-84.0.4147.105/third_party/sqlite/src/test/unionvtab.test-355-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3_common.tcl-312-  
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3_common.tcl:313:      if {$where != "1" || [llength $lCol]>0} {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3_common.tcl-314-        set ret($docid) $lCol
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3_common.tcl-387-                FROM ${tbl}_segments 
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3_common.tcl:388:                WHERE blockid>=$start_block AND blockid<=$leaves_end_block
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3_common.tcl-389-                ORDER BY blockid
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3_common.tcl-408-                FROM ${tbl}_segments 
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3_common.tcl:409:                WHERE blockid>=$start_block AND blockid<$leaves_end_block
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3_common.tcl-410-                ORDER BY blockid
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-47-do_execsql_test istrue-160 {
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test:48:  SELECT x FROM t1 WHERE y IS TRUE OR (8==$X)
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-49-} {1}
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-50-do_execsql_test istrue-170 {
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test:51:  SELECT x FROM t1 WHERE y IS FALSE OR (8==$X)
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-52-} {2}
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-53-do_execsql_test istrue-180 {
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test:54:  SELECT x FROM t1 WHERE y IS NULL OR (8==$X);
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-55-} {3}
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-56-do_execsql_test istrue-190 {
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test:57:  SELECT x FROM t1 WHERE y IS NOT TRUE OR (8==$X);
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-58-} {2 3}
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-59-do_execsql_test istrue-200 {
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test:60:  SELECT x FROM t1 WHERE y IS NOT FALSE OR (8==$X);
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-61-} {1 3}
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-62-do_execsql_test istrue-210 {
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test:63:  SELECT x FROM t1 WHERE y IS NOT NULL OR (8==$X);
chromium-84.0.4147.105/third_party/sqlite/src/test/istrue.test-64-} {1 2}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-42-  global x2rowid
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:43:  set sql "SELECT x FROM t1 WHERE rowid==$x2rowid(1)"
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-44-  execsql $sql
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-47-  global x2rowid
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:48:  set sql "SELECT x FROM t1 WHERE rowid==$x2rowid(3)"
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-49-  execsql $sql
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-52-  global x2rowid
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:53:  set sql "SELECT x FROM t1 WHERE oid==$x2rowid(1)"
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-54-  execsql $sql
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-57-  global x2rowid
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:58:  set sql "SELECT x FROM t1 WHERE OID==$x2rowid(3)"
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-59-  execsql $sql
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-62-  global x2rowid
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:63:  set sql "SELECT x FROM t1 WHERE _rowid_==$x2rowid(1)"
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-64-  execsql $sql
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-70-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:71:  execsql "SELECT x FROM t1 WHERE rowid=$norow"
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-72-} {}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-135-  global x2rowid
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:136:  set sql "UPDATE t1 SET x=2 WHERE OID==$x2rowid(3)"
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-137-  execsql $sql
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-141-  global x2rowid
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:142:  set sql "UPDATE t1 SET x=3 WHERE _rowid_==$x2rowid(3)"
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-143-  execsql $sql
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-285-    set oids [execsql {SELECT oid FROM t1 WHERE x>8}]
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:286:    set where "_rowid_ = [join $oids { OR _rowid_ = }]"
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-287-    execsql "DELETE FROM t1 WHERE $where"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-302-  for {set ::norow 1} {1} {incr ::norow} {
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:303:    if {[execsql "SELECT x FROM t1 WHERE rowid=$::norow"]==""}  break
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-304-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-305-  execsql [subst {
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test:306:    DELETE FROM t1 WHERE rowid=$::norow
chromium-84.0.4147.105/third_party/sqlite/src/test/rowid.test-307-  }]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-140-    set t [expr {$ii%3+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:141:    db eval "SELECT * FROM v$t WHERE rowid = \$v"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-142-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-143-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:144:explain {SELECT * FROm v1 WHERE rowid=$v}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-145-speed_trial_tcl speed4p-view1 10000 stmt $script
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-155-    set t [expr {$ii%3+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:156:    db eval "SELECT t FROM t$t WHERE rowid = \$v"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-157-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-158-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:159:explain {SELECT * FROM t1 WHERE rowid=$v}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-160-speed_trial_tcl speed4p-table1 10000 stmt $script
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-167-    db eval {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:168:      SELECT (SELECT t FROM t1 WHERE rowid = $v), 
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:169:             (SELECT t FROM t2 WHERE rowid = $v), 
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:170:             (SELECT t FROM t3 WHERE rowid = $v)
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-171-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-174-explain {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:175:      SELECT (SELECT t FROM t1 WHERE rowid = $v), 
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:176:             (SELECT t FROM t2 WHERE rowid = $v), 
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:177:             (SELECT t FROM t3 WHERE rowid = $v)
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-178-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-217-    db eval {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:218:      UPDATE t4 SET i = $ii2, t = $name WHERE rowid = $ii;
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-219-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-221-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:222:explain {UPDATE t4 SET i = $ii2, t = $name WHERE rowid = $ii}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-223-speed_trial_tcl speed4p-trigger2 10000 stmt $script
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-226-  for {set ii 1} {$ii < 20000} {incr ii 2} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:227:    db eval {DELETE FROM t4 WHERE rowid = $ii}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-228-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-229-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:230:explain {DELETE FROM t4 WHERE rowid = $ii}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-231-speed_trial_tcl speed4p-trigger3 10000 stmt $script
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-265-    db eval {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:266:      UPDATE t4 SET i = $ii2, t = $name WHERE rowid = $ii;
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-267-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-269-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:270:explain {UPDATE t4 SET i = $ii2, t = $name WHERE rowid = $ii}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-271-speed_trial_tcl speed4p-notrigger2 10000 stmt $script
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-274-  for {set ii 1} {$ii < 20000} {incr ii 2} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:275:    db eval {DELETE FROM t4 WHERE rowid = $ii}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-276-  }
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-277-}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain:278:explain {DELETE FROM t4 WHERE rowid = $ii}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed4p.explain-279-speed_trial_tcl speed4p-notrigger3 10000 stmt $script
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-600-  execsql "
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test:601:    SELECT sql FROM sqlite_master WHERE oid = $::oid;
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-602-  "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-612-  execsql "
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test:613:    SELECT sql FROM sqlite_master WHERE oid = $::oid
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-614-  "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-620-  execsql "
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test:621:    SELECT sql FROM sqlite_master WHERE oid = $::oid
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-622-  "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-629-  execsql "
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test:630:    SELECT sql FROM sqlite_master WHERE oid = $::oid
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-631-  "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-640-  execsql "
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test:641:    SELECT sql FROM sqlite_master WHERE oid = $::oid
chromium-84.0.4147.105/third_party/sqlite/src/test/alter.test-642-  "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-180-      db eval {SELECT rowid FROM t1} {} {
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test:181:        db eval "DELETE FROM t1 WHERE rowid=$rowid"
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-182-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-198-      if {$x & 1} {
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test:199:        db eval {DELETE FROM t1 WHERE rowid=$rowid}
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-200-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-213-      if {$x & 1} {
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test:214:        db eval {DELETE FROM t1 WHERE rowid=$rowid+1}
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-215-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-243-      if {$x & 1} {
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test:244:        db eval {UPDATE t1 SET x=x+100 WHERE rowid=$rowid}
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-245-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-280-      db eval {SELECT rowid FROM t1 ORDER BY rowid DESC} {} {
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test:281:        db eval "DELETE FROM t1 WHERE rowid=$rowid"
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-282-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-298-      if {$x & 1} {
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test:299:        db eval {DELETE FROM t1 WHERE rowid=$rowid}
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-300-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-313-      if {$x & 1} {
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test:314:        db eval {DELETE FROM t1 WHERE rowid=$rowid+1}
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-315-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-343-      if {$x & 1} {
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test:344:        db eval {UPDATE t1 SET x=x+100 WHERE rowid=$rowid}
chromium-84.0.4147.105/third_party/sqlite/src/test/misc2.test-345-      }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-45-      UPDATE t1 SET b=zeroblob(3000);
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test:46:      UPDATE t1 SET b=zeroblob(64000) WHERE a=$::i;
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-47-      PRAGMA integrity_check;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-58-      UPDATE t1 SET b=zeroblob(2000);
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test:59:      UPDATE t1 SET b=zeroblob(64000) WHERE a=$::i;
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-60-      PRAGMA integrity_check;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-73-      UPDATE t1 SET b=zeroblob(6499) WHERE (a%3)==2;
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test:74:      UPDATE t1 SET b=zeroblob(64000) WHERE a=$::i;
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-75-      PRAGMA integrity_check;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-86-      UPDATE t1 SET b=zeroblob(2331);
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test:87:      UPDATE t1 SET b=zeroblob(65496) WHERE a=$::i;
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-88-      PRAGMA integrity_check;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-99-      UPDATE t1 SET b=zeroblob(2332);
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test:100:      UPDATE t1 SET b=zeroblob(65496) WHERE a=$::i;
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-101-      PRAGMA integrity_check;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-112-      UPDATE t1 SET b=zeroblob(1);
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test:113:      UPDATE t1 SET b=zeroblob(65000) WHERE a=$::i;
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-114-      PRAGMA integrity_check;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-125-      UPDATE t1 SET b=zeroblob(4000);
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test:126:      UPDATE t1 SET b=zeroblob(65000) WHERE a=$::i;
chromium-84.0.4147.105/third_party/sqlite/src/test/btree01.test-127-      PRAGMA integrity_check;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/table.test-650-      INSERT INTO tablet8(a) VALUES($i);
chromium-84.0.4147.105/third_party/sqlite/src/test/table.test:651:      SELECT tm, dt, dttm FROM tablet8 WHERE a=$i;
chromium-84.0.4147.105/third_party/sqlite/src/test/table.test-652-    "
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3cov.test-95-  read_fts3varint [string range $root 1 end] left_child
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3cov.test:96:  execsql { DELETE FROM t1_segments WHERE blockid = $left_child }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3cov.test-97-} {}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/sidedelete.test-58-      DELETE FROM t1;
chromium-84.0.4147.105/third_party/sqlite/src/test/sidedelete.test:59:      INSERT INTO t1 SELECT a, a FROM sequence WHERE a<=$i;
chromium-84.0.4147.105/third_party/sqlite/src/test/sidedelete.test-60-      DELETE FROM chng;
chromium-84.0.4147.105/third_party/sqlite/src/test/sidedelete.test:61:      INSERT INTO chng SELECT a*2, a*2+1 FROM sequence WHERE a<=$i/2;
chromium-84.0.4147.105/third_party/sqlite/src/test/sidedelete.test-62-      UPDATE OR REPLACE t1 SET a=(SELECT b FROM chng WHERE a=t1.a);
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/sidedelete.test-83-      DELETE FROM t1;
chromium-84.0.4147.105/third_party/sqlite/src/test/sidedelete.test:84:      INSERT INTO t1 SELECT a FROM sequence WHERE a<=$i;
chromium-84.0.4147.105/third_party/sqlite/src/test/sidedelete.test-85-      UPDATE OR REPLACE t1 SET a=a+1;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/bestindex6.test-26-    xConnect {
chromium-84.0.4147.105/third_party/sqlite/src/test/bestindex6.test:27:      return [db one {SELECT sql FROM sqlite_master where name = $src}]
chromium-84.0.4147.105/third_party/sqlite/src/test/bestindex6.test-28-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/bestindex6.test-41-          set col [db one {
chromium-84.0.4147.105/third_party/sqlite/src/test/bestindex6.test:42:            SELECT name FROM pragma_table_info($src) WHERE cid=$C(column)
chromium-84.0.4147.105/third_party/sqlite/src/test/bestindex6.test-43-          }]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/enc.test-167-  execsql {
chromium-84.0.4147.105/third_party/sqlite/src/test/enc.test:168:    SELECT count(*) FROM ab WHERE a = $::cp200;
chromium-84.0.4147.105/third_party/sqlite/src/test/enc.test-169-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/bind.test-598-  do_test bind-11.1 {
chromium-84.0.4147.105/third_party/sqlite/src/test/bind.test:599:    catchsql {SELECT * FROM sqlite_master WHERE name=$abc(123 and sql NOT NULL;}
chromium-84.0.4147.105/third_party/sqlite/src/test/bind.test-600-  } {1 {unrecognized token: "$abc(123"}}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3d.test-28-proc check_terms {test level index terms} {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3d.test:29:  set where "level = $level AND idx = $index"
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3d.test-30-  do_test $test.terms [list fts3_terms t1 $where] $terms
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3d.test-38-proc check_doclist {test level index term doclist} {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3d.test:39:  set where "level = $level AND idx = $index"
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3d.test-40-  do_test $test.doclist [list fts3_doclist t1 $term $where] $doclist
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-37-set y [expr 45]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:38:do_sqluses_test 1.1 { SELECT * FROM t1 WHERE x=? AND y=$y } {t1 t1x}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-39-set y [expr 45.1]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:40:do_sqluses_test 1.2 { SELECT * FROM t1 WHERE x=? AND y=$y } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-41-set y [expr 44]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:42:do_sqluses_test 1.3 { SELECT * FROM t1 WHERE x=? AND y=$y } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-43-unset -nocomplain y
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:44:do_sqluses_test 1.4 { SELECT * FROM t1 WHERE x=? AND y=$y } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-45-set y [string range "45" 0 end]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:46:do_sqluses_test 1.5 { SELECT * FROM t1 WHERE x=? AND y=$y } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-47-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-50-}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:51:do_sqluses_test 2.1 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-52-set y [expr -20111000111]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:53:do_sqluses_test 2.2 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1 t1x2}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-54-set y [expr -20111000110]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:55:do_sqluses_test 2.3 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-56-set y [expr -20111000112]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:57:do_sqluses_test 2.4 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-58-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-62-set y [expr 9223372036854775807]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:63:do_sqluses_test 3.1 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1 t1x3}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-64-set y [expr 9223372036854775808]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:65:do_sqluses_test 3.2 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-66-set y [expr 9223372036854775806]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:67:do_sqluses_test 3.3 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-68-db cache flush
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-70-set y [expr 9223372036854775807]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:71:do_sqluses_test 3.4 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-72-set y [expr 9223372036854775808]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:73:do_sqluses_test 3.5 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-74-sqlite3_db_config db QPSG 0
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-81-set y [expr -9223372036854775808]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:82:do_sqluses_test 4.1 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1 t1x4}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-83-set y [expr -9223372036854775807]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:84:do_sqluses_test 4.2 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-85-set y [expr -9223372036854775809]
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test:86:do_sqluses_test 4.3 { SELECT * FROM t1 WHERE y=$y ORDER BY x } {t1}
chromium-84.0.4147.105/third_party/sqlite/src/test/index9.test-87-set y [expr -9223372036854775808]
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-129-  foreach {lwr upr} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test:130:    db eval  {SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-131-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-173-  foreach {lwr upr} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test:174:    db eval {SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-175-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-189-  foreach id $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test:190:    db eval {SELECT c FROM t1 WHERE rowid=$id}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-191-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-205-  foreach id $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test:206:    db eval {SELECT c FROM t1 WHERE a=$id}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-207-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-217-  foreach c $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test:218:    db eval {SELECT c FROM t1 WHERE c=$c}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-219-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-238-  foreach {lwr upr} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test:239:    db eval {UPDATE t1 SET b=b*2 WHERE a>=$lwr AND a<$upr}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-240-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-254-  foreach {i r} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test:255:    db eval {UPDATE t1 SET b=$r WHERE a=$i}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-256-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-277-  foreach {i x} $::list {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test:278:    db eval {UPDATE t1 SET c=$x WHERE a=$i}
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1p.test-279-  }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3rnd.test-133-proc delete_row {rowid} {
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3rnd.test:134:  execsql { DELETE FROM t1 WHERE rowid = $rowid }
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3rnd.test-135-  catch {unset ::t1($rowid)}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3rnd.test-141-  lset ::t1($rowid) $iCol $doc
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3rnd.test:142:  execsql "UPDATE t1 SET [lindex $cols $iCol] = \$doc WHERE rowid = \$rowid"
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3rnd.test-143-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary1.tcl-149-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary1.tcl:150:    puts "    SELECT * FROM t1 WHERE rowid=$r"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary1.tcl-151-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary1.tcl-154-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary1.tcl:155:    puts "    SELECT rowid, a FROM t1 WHERE x='$x'"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary1.tcl-156-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary1.tcl-159-    puts "  db eval \173"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary1.tcl:160:    puts "    SELECT rowid, x FROM t1 WHERE a=$a"
chromium-84.0.4147.105/third_party/sqlite/src/test/boundary1.tcl-161-    puts "  \175"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-116-  set upr [expr {($i+10)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test:117:  append sql "SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-118-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-151-  set upr [expr {($i+10)*100}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test:152:  append sql "SELECT count(*), avg(b) FROM t1 WHERE b>=$lwr AND b<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-153-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-162-  set id [expr {int(rand()*50000)+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test:163:  append sql "SELECT c FROM t1 WHERE rowid=$id;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-164-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-173-  set id [expr {int(rand()*50000)+1}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test:174:  append sql "SELECT c FROM t1 WHERE a=$id;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-175-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-183-db eval {SELECT c FROM t1 ORDER BY random() LIMIT 50000} {
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test:184:  append sql "SELECT c FROM t1 WHERE c='$c';"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-185-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-199-  set upr [expr {($i+1)*2}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test:200:  append sql "UPDATE t1 SET b=b*2 WHERE a>=$lwr AND a<$upr;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-201-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-210-  set r [expr {int(rand()*500000)}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test:211:  append sql "UPDATE t1 SET b=$r WHERE a=$i;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-212-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-228-  set r [expr {int(rand()*500000)}]
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test:229:  append sql "UPDATE t1 SET c='[number_name $r]' WHERE a=$i;"
chromium-84.0.4147.105/third_party/sqlite/src/test/speed1.test-230-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3aa.test-178-  set rowid [db last_insert_rowid]
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3aa.test:179:  execsql {SELECT content FROM t1 WHERE rowid=$rowid}
chromium-84.0.4147.105/third_party/sqlite/src/test/fts3aa.test-180-} {{}}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt2332.test-42-    execsql {
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt2332.test:43:      SELECT length(v) FROM blobs WHERE k = $::iKey;
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt2332.test-44-    }
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt2332.test-53-  do_test tkt2332.$Len.4 {
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt2332.test:54:    execsql { SELECT length(v) FROM blobs WHERE k = $::iKey; }
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt2332.test-55-  } $Len
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt2332.test-57-  do_test tkt2332.$Len.5 {
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt2332.test:58:    lindex [execsql {SELECT v FROM blobs WHERE k = $::iKey}] 0
chromium-84.0.4147.105/third_party/sqlite/src/test/tkt2332.test-59-  } $::blobstr
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-161-  # Extract subdirectory from the argument.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:162:  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-163-  if test "X$func_dirname_result" = "X${1}"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-167-  fi
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:168:  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-169-}
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-193-     progdir=$func_dirname_result
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:194:     progdir=`cd "$progdir" && pwd`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-195-     progpath="$progdir/$progname"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-221-# Since each input `\' is now two `\'s, look for any number of runs of
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:222:# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-223-bs='\\'
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-328-        # ...otherwise throw away the child directory and loop
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:329:        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-330-      done
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:331:      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-332-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-363-      # If mktemp works, use that first and foremost
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:364:      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-365-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-394-      *[\\\`\"\$]*)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:395:	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-396-      *)
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-536-	s/\$with_gnu_ld/'"$with_gnu_ld"'/
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:537:	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:538:	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-539-	p
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-565-  :
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:566:elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-567-  # Yippee, $ECHO works!
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-692-	# quotes we have to do it in 2 steps:
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:693:	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-694-	eval "$extractedcf"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1028-      # but not from the CC environment variable when configure was run.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1029:      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1030-      # Blanks at the start of $base_compile will cause this to fail
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1035-	    # Evaluate the configuration.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1036:	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1037-	    CC_quoted=
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1043-	    case "$@ " in
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1044:	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1045-	      # The compiler in the base compile command matches
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1220-    *.[cCFSifmso] | \
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1221:    *.ada | *.adb | *.ads | *.asm | \
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1222-    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1297-    if test "$compiler_c_o" = no; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1298:      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1299-      lockfile="$output_obj.lock"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1316-*** ERROR, $lockfile exists and contains:
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1317:`cat $lockfile 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1318-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1365-      if test "$need_locks" = warn &&
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1366:	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1367-	$ECHO "\
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1368-*** ERROR, $lockfile contains:
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1369:`cat $lockfile 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1370-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1414-      if test "$need_locks" = warn &&
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1415:	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1416-	$ECHO "\
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1417-*** ERROR, $lockfile contains:
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1418:`cat $lockfile 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1419-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1672-	  test -n "$library_names" && \
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1673:	    func_warning "\`$file' was not linked with \`-export-dynamic'"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1674-	  continue
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1683-	  if test ! -f "$dir/$dlname"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1684:	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1685-	  fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1701-      # Get the absolute pathname.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:1702:      absdir=`cd "$dir" && pwd`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-1703-      test -n "$absdir" && dir="$absdir"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2019-	  # Determine the prefix the user has applied to our future dir.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2020:	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2021-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2032-	    # Stick the inst_prefix_dir data into the link command.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2033:	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2034-	  else
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2035:	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2036-	  fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2192-	    fi
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2193:	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2194-	    if test -n "$libdir" && test ! -f "$libfile"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2195:	      func_warning "\`$lib' has not been installed in \`$libdir'"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2196-	      finalize=no
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2211-	        # Replace the output file specification.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2212:	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2213-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2230-	    # Install the binary that we compiled earlier.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2231:	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2232-	  fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2301-    my_pic_p="${3-no}"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2302:    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2303-    my_dlsyms=
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2341-	  # Add our own program objects to the symbol list.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2342:	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2343-	  for progfile in $progfiles; do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2524-	  if test -f "$output_objdir/$my_outputname.def"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2525:	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2526:	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2527-	  else
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2528:	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2529:	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2530-	  fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2532-	*)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2533:	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2534:	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2535-	  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2547-      # Nullify the symbol file.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2548:      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2549:      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2550-    fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2562-  win32_libid_type="unknown"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2563:  win32_fileres=`file -L $1 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2564-  case $win32_fileres in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2659-	  darwin_curdir=`pwd`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2660:	  darwin_base_archive=`basename "$darwin_archive"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2661:	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2662-	  if test -n "$darwin_arches"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2663:	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2664-	    darwin_arch=
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2674-            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2675:	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2676-	    darwin_file=
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2678-	    for darwin_file in $darwin_filelist; do
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2679:	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2680-	      $LIPO -create -output "$darwin_file" $darwin_files
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2693-      esac
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2694:      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2695-    done
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2764-      shift
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2765:    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2766-      # Yippee, \$ECHO works!
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2776-  # Find the directory that this script lives in.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2777:  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2778-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2780-  # Follow symbolic links until we get to the real thisdir.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2781:  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2782-  while test -n \"\$file\"; do
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2783:    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2784-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2792-
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2793:    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2794:    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2795-  done
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2823-    case \"\$thisdir\" in
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2824:    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2825-    $objdir )   thisdir=. ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2829-  # Try to get the absolute directory name.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2830:  absdir=\`cd \"\$thisdir\" && pwd\`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2831-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2839-  if test ! -f \"\$progdir/\$program\" ||
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2840:     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2841-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2854-    if test -n \"\$relink_command\"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2855:      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2856-      else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2886-    # The second colon is a workaround for a bug in BeOS R4 sed
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:2887:    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-2888-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-3001-          *cygwin* )
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:3002:            func_to_host_path_tmp1=`cygpath -w "$1"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-3003-            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-3013-            # the odd construction:
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:3014:            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-3015-            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-3080-          *cygwin* )
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:3081:            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-3082-            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-4247-	    moreargs=
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:4248:	    for fil in `cat "$save_arg"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-4249-	    do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-4497-	*)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:4498:	  absdir=`cd "$dir" && pwd`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-4499-	  test -z "$absdir" && \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-4512-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:4513:	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-4514-	  case :$dllsearchpath: in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-4934-      # get the directories listed in $shlibpath_var
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:4935:      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-4936-    else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5057-	  for deplib in $dependency_libs; do
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5058:            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5059-	    case " $weak_libs " in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5235-		  set dummy $deplibs_check_method; shift
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5236:		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5237-		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5298-	else
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5299:	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5300-	fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5327-	if test -n "$inherited_linker_flags"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5328:	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5329-	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5335-	fi
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5336:	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5337-	if test "$linkmode,$pass" = "lib,link" ||
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5402-	*)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5403:	  abs_ladir=`cd "$ladir" && pwd`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5404-	  if test -z "$abs_ladir"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5628-	    shift
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5629:	    libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5630-	    # use dlname if we got it. it's perfectly good, no?
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5911-		*)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5912:		  absdir=`cd "$dir" && pwd`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5913-		  if test -z "$absdir"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5922-		  depdepl=
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5923:		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5924-		  if test -n "$deplibrary_names" ; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5929-		      depdepl="$absdir/$objdir/$depdepl"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5930:		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5931-                      if test -z "$darwin_install_name"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5932:                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5933-                      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5944-		else
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5945:		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5946-		  test -z "$libdir" && \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5967-	else
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:5968:	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-5969-	fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6116-	test "$module" = no && \
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6117:	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6118-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6250-	if test "$age" -gt "$current"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6251:	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6252-	  func_fatal_error "\`$vinfo' is not valid version information"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6411-	removelist=
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6412:	tempremovelist=`$ECHO "$output_objdir/*"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6413-	for p in $tempremovelist; do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6437-	# Transform .lo files to .o files.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6438:	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6439-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6442-      #for path in $notinst_path; do
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6443:      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6444:      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6445:      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6446-      #done
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6562-		if test -n "$i" ; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6563:		  libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6564:		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6565-		  set dummy $deplib_matches; shift
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6566-		  deplib_match=$1
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6567:		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6568-		    newdeplibs="$newdeplibs $i"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6605-		  if test -n "$i" ; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6606:		    libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6607:		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6608-		    set dummy $deplib_matches; shift
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6609-		    deplib_match=$1
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6610:		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6611-		      newdeplibs="$newdeplibs $i"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6640-	  set dummy $deplibs_check_method; shift
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6641:	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6642-	  for a_deplib in $deplibs; do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6655-	      if test -n "$a_deplib" ; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6656:		libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6657-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6658:		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6659-		  for potent_lib in $potential_libs; do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6671-		      while test -h "$potlib" 2>/dev/null; do
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6672:			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6673-			case $potliblink in
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6674-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6675:			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6676-			esac
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6712-	  set dummy $deplibs_check_method; shift
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6713:	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6714-	  for a_deplib in $deplibs; do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6727-	      if test -n "$a_deplib" ; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6728:		libname=`eval "\\$ECHO \"$libname_spec\""`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6729-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6730:		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6731-		  for potent_lib in $potential_libs; do
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6771-	      # can't use Xsed below, because $i might contain '/'
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6772:	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6773-	    done
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6796-	  # On Rhapsody replace the C library with the System framework
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6797:	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6798-	  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6848-	*-*-darwin*)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6849:	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6850:	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6851:	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6852-	  ;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6972-	# Use standard objects if they are pic
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6973:	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6974-	test "X$libobjs" = "X " && libobjs=
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6987-	    # exporting using user supplied symfile
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:6988:	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-6989-	      # and it's NOT already a .def file. Must figure out
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7139-	  save_output=$output
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7140:	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7141-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7443-	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7444:	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7445-	else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7454-      # Create the old-style object.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7455:      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7456-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7514-	# On Rhapsody replace the C library is the System framework
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7515:	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7516:	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7517-	;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7532-	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7533:	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7534:	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7535-	;;
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7610-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7611:	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7612-	  case :$dllsearchpath: in
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7670-	# Transform all the library objects into standard objects.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7671:	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7672:	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7673-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7700-	# Replace the output file specification.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7701:	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7702-	link_command="$compile_command$compile_rpath"
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7747-	# Replace the output file specification.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7748:	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7749-	# Delete the old output file.
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7766-	  if test "$fast_install" = yes; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7767:	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7768-	  else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7778-      # Replace the output file specification.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7779:      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7780-
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7802-	relink_command="(cd `pwd`; $relink_command)"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7803:	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7804-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7811-	esac
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7812:	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7813-      else
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:7814:	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-7815-      fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8045-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8046:      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8047-      if test "$hardcode_automatic" = yes ; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8065-		name="$func_basename_result"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8066:		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8067-		test -z "$libdir" && \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8074-		if test "$installed" = yes && test "$D"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8075:		  eval mynewdependency_lib=`echo "$libdir/$name" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8076-		else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8080-		if test "$mynewdependency_lib"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8081:		  my_little_ninja_foo_1=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8082-		  if test -z "$my_little_ninja_foo_1"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8094-		  # We do not want portage's build root ($S) present.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8095:		  my_little_ninja_foo_2=`echo $deplib |$EGREP -e "$S"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8096-		  # We do not want portage's install root ($D) present.
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8097:		  my_little_ninja_foo_3=`echo $deplib |$EGREP -e "$D"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8098-		  if test -n "$my_little_ninja_foo_2" && test "$S"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8100-		  elif test -n "$my_little_ninja_foo_3" && test "$D"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8101:		    eval mynewdependency_lib=`echo "$deplib" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8102-		  else
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8109-		if test "$mynewdependency_lib"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8110:		  my_little_ninja_foo_4=`echo $newdependency_libs |$EGREP -e "$mynewdependency_lib"`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8111-		  if test -z "$my_little_ninja_foo_4"; then
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8125-		name="$func_basename_result"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8126:		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8127-		test -z "$libdir" && \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8144-		name="$func_basename_result"
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8145:		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8146-		test -z "$libdir" && \
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8180-	  if test "$installed" = yes && test "$D"; then
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8181:	    install_libdir=`echo "$install_libdir" |sed -e "s:$D:/:g" -e 's:/\+:/:g'`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8182-	  fi
##############################################
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8452-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh:8453:build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
chromium-84.0.4147.105/third_party/sqlite/src/ltmain.sh-8454-# ### END LIBTOOL TAG CONFIG: disable-static
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/macos-clang-release/build.sh-22-
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/macos-clang-release/build.sh:23:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/macos-clang-release/build.sh-24-source $SCRIPT_DIR/../scripts/macos/build.sh RelWithDebInfo
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-gcc-release/build.sh-22-
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-gcc-release/build.sh:23:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-gcc-release/build.sh-24-source $SCRIPT_DIR/../scripts/linux/build.sh RELEASE gcc
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-clang-asan/build.sh-22-
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-clang-asan/build.sh:23:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-clang-asan/build.sh-24-source $SCRIPT_DIR/../scripts/linux/build.sh ASAN clang
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/macos-clang-debug/build.sh-22-
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/macos-clang-debug/build.sh:23:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/macos-clang-debug/build.sh-24-source $SCRIPT_DIR/../scripts/macos/build.sh Debug
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-gcc-debug/build.sh-22-
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-gcc-debug/build.sh:23:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-gcc-debug/build.sh-24-source $SCRIPT_DIR/../scripts/linux/build.sh DEBUG gcc
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-clang-debug/build.sh-22-
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-clang-debug/build.sh:23:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-clang-debug/build.sh-24-source $SCRIPT_DIR/../scripts/linux/build.sh DEBUG clang
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-clang-release/build.sh-22-
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-clang-release/build.sh:23:SCRIPT_DIR=`dirname "$BASH_SOURCE"`
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/kokoro/linux-clang-release/build.sh-24-source $SCRIPT_DIR/../scripts/linux/build.sh RELEASE clang
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js-66-        assert.equal(t.type, TokenType.kFloatLiteral,
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js:67:          `expected ${val} to be a float got ${t.type}`);
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js-68-        assert.equal(t.data, results[idx],
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js:69:          `expected ${results[idx]} === ${t.data}`);
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js-70-
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js-83-        assert.notEqual(t.type, TokenType.kFloatLiteral,
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js:84:          `expect ${val} to not match type float`);
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js-85-      });
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js-98-        assert.equal(t.type, TokenType.kIntegerLiteral,
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js:99:          `expected ${val} to be an integer got ${t.type}`);
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js-100-        assert.equal(t.data, results[idx],
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js:101:          `expected ${results[idx]} === ${t.data}`);
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/lexer_test.js-102-
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/parser.js-229-      if (this.grammar_.ext[t.data] === undefined) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/parser.js:230:        this.error_ = t.line + `: unable to find extended instruction (${t.data})`;
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/tools/sva/src/parser.js-231-        return undefined;
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/source/CMakeLists.txt-398-  file(WRITE ${CMAKE_BINARY_DIR}/${SPIRV_TOOLS}Config.cmake
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/source/CMakeLists.txt:399:    "include(\${CMAKE_CURRENT_LIST_DIR}/${SPIRV_TOOLS}Target.cmake)\n"
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/source/CMakeLists.txt-400-    "set(${SPIRV_TOOLS}_LIBRARIES ${SPIRV_TOOLS})\n"
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/README.md-206-* Build target `spirv-tools-vimsyntax` generates file `spvasm.vim`.
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/README.md:207:  Copy that file into your `$HOME/.vim/syntax` directory to get SPIR-V assembly syntax
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/README.md-208-  highlighting in Vim.  This build target is not built by default.
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/protocol/tsprotocol.go-1686-		 *
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/protocol/tsprotocol.go:1687:		 * A snippet can define tab stops and placeholders with `$1`, `$2`
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/protocol/tsprotocol.go:1688:		 * and `${3:foo}`. `$0` defines the final tab stop, it defaults to
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/protocol/tsprotocol.go-1689-		 * the end of the snippet. Placeholders with equal identifiers are linked,
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/protocol/tsprotocol.go-4318-	 *
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/protocol/tsprotocol.go:4319:	 * A snippet can define tab stops and placeholders with `$1`, `$2`
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/protocol/tsprotocol.go:4320:	 * and `${3:foo}`. `$0` defines the final tab stop, it defaults to
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/src/lsp/protocol/tsprotocol.go-4321-	 * the end of the snippet. Placeholders with equal identifiers are linked,
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/extension.js-41-			configurationSection: 'spirv',
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/extension.js:42:			// Notify the server about file changes to .spvasm files contained in the workspace
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/utils/vscode/extension.js-43-			fileEvents: vscode.workspace.createFileSystemWatcher('**/*.spvasm')
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-29-TEST_F(CCPTest, PropagateThroughPhis) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:30:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-31-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-87-TEST_F(CCPTest, SimplifyConditionals) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:88:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-89-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-144-TEST_F(CCPTest, SimplifySwitches) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:145:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-146-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-193-TEST_F(CCPTest, SimplifySwitchesDefaultBranch) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:194:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-195-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-242-TEST_F(CCPTest, SimplifyIntVector) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:243:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-244-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-293-TEST_F(CCPTest, BadSimplifyFloatVector) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:294:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-295-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-346-TEST_F(CCPTest, NoLoadStorePropagation) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:347:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-348-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-388-TEST_F(CCPTest, HandleAbortInstructions) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:389:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-390-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-425-  // added to the edges to simulate.
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:426:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-427-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-475-  // as Varying.
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:476:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-477-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-529-  // it is not wrong.
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:530:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-531-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-558-TEST_F(CCPTest, SkipSpecConstantInstrucitons) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp:559:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/ccp_test.cpp-560-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/loop_optimizations/hoist_without_preheader.cpp-192-  tools_.Disassemble(binary, &optimized_asm);
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/loop_optimizations/hoist_without_preheader.cpp:193:  std::cout << optimized_asm << std::endl;
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/loop_optimizations/hoist_without_preheader.cpp-194-}
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/local_ssa_elim_test.cpp-1605-TEST_F(LocalSSAElimTest, CompositeExtractProblem) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/local_ssa_elim_test.cpp:1606:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/local_ssa_elim_test.cpp-1607-               OpCapability Tessellation
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/local_ssa_elim_test.cpp-1701-TEST_F(LocalSSAElimTest, DecoratedVariable) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/local_ssa_elim_test.cpp:1702:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/local_ssa_elim_test.cpp-1703-; CHECK: OpDecorate [[var:%\w+]] RelaxedPrecision
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/local_ssa_elim_test.cpp-1740-TEST_F(LocalSSAElimTest, MultipleEdges) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/local_ssa_elim_test.cpp:1741:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/local_ssa_elim_test.cpp-1742-  ; CHECK: OpSelectionMerge
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/propagator_test.cpp-70-TEST_F(PropagatorTest, LocalPropagate) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/propagator_test.cpp:71:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/propagator_test.cpp-72-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/propagator_test.cpp-127-TEST_F(PropagatorTest, PropagateThroughPhis) {
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/propagator_test.cpp:128:  const std::string spv_asm = R"(
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/test/opt/propagator_test.cpp-129-               OpCapability Shader
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/CHANGES-601-	  # Generate a SPIR-V 1.0 binary instead of SPIR-V 1.3
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/CHANGES:602:	  spirv-as --target-env spv1.0 a.spvasm -o a.spv
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/CHANGES:603:	  spirv-as --target-env vulkan1.0 a.spvasm -o a.spv
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/CHANGES-604-	  # Validate as Vulkan 1.0
##############################################
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/CMakeLists.txt-226-      "find_dependency(${SPIRV_TOOLS})\n"
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/CMakeLists.txt:227:      "include(\${CMAKE_CURRENT_LIST_DIR}/${TARGET}Targets.cmake)\n"
chromium-84.0.4147.105/third_party/SPIRV-Tools/src/CMakeLists.txt-228-      "set(${TARGET}_LIBRARIES ${TARGET})\n"
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/example.html-1189-      // an SkPicture - a format which can be useful for debugging.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/example.html:1190:      // The C++ version of Skia can open a SKP created by the WASM version,
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/example.html-1191-      // which can aid performance diagnosis.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/package.json-3-  "version": "0.14.0",
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/package.json:4:  "description": "A WASM version of Skia's Canvas API",
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/package.json-5-  "main": "bin/canvaskit.js",
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/README.md:1:A WASM version of Skia's Canvas API.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/README.md-2-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/README.md-37-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/README.md:38:WebPack's support for WASM is still somewhat experimental, but CanvasKit can be
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/README.md-39-used with a few configuration changes.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/README.md-48-Since WebPack does not expose the entire `/node_modules/` directory, but instead
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/README.md:49:packages only the needed pieces, we have to copy canvaskit.wasm into the build directory.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/README.md-50-One such solution is to use [CopyWebpackPlugin](https://github.com/webpack-contrib/copy-webpack-plugin).
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/node.example.js-92-  let b64encoded = Buffer.from(pngBytes).toString('base64');
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/node.example.js:93:  console.log(`<img src="data:image/png;base64,${b64encoded}" />`);
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/node.example.js-94-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/node.example.js:95:  // These delete calls free up memeory in the C++ WASM memory block.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/node.example.js-96-  dpe.delete();
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/extra.html-359-      let posA = paragraph.getGlyphPositionAtCoordinate(X, Y);
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/extra.html:360:      canvas.drawText(`At (${X.toFixed(2)}, ${Y.toFixed(2)}) glyph is ${posA.pos}`, 5, 450, fontPaint, font);
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit/extra.html-361-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-10-	cp ../../out/canvaskit_wasm/canvaskit.js   ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile:11:	cp ../../out/canvaskit_wasm/canvaskit.wasm ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-12-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-17-	cp ../../out/canvaskit_wasm/canvaskit.js   ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile:18:	cp ../../out/canvaskit_wasm/canvaskit.wasm ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-19-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-24-	cp ../../out/canvaskit_wasm/canvaskit.js   ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile:25:	cp ../../out/canvaskit_wasm/canvaskit.wasm ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-26-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-31-	cp ../../out/canvaskit_wasm_debug/canvaskit.js   ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile:32:	cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-33-	cp ../../out/canvaskit_wasm_debug/canvaskit.wasm.map ./canvaskit/bin
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-39-	cp ../../out/canvaskit_wasm_debug/canvaskit.js   ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile:40:	cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-41-	cp ../../out/canvaskit_wasm_debug/canvaskit.wasm.map ./canvaskit/bin
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-47-	cp ../../out/canvaskit_wasm_debug/canvaskit.js   ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile:48:	cp ../../out/canvaskit_wasm_debug/canvaskit.wasm ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-49-	cp ../../out/canvaskit_wasm_debug/canvaskit.wasm.map ./canvaskit/bin
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-54-	cp ../../out/canvaskit_wasm_profile/canvaskit.js       ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile:55:	cp ../../out/canvaskit_wasm_profile/canvaskit.wasm     ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-56-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-63-	cp ../../out/canvaskit_wasm/canvaskit.js       ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile:64:	cp ../../out/canvaskit_wasm/canvaskit.wasm     ./canvaskit/bin
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-65-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-68-	cp ../../out/canvaskit_wasm/canvaskit.js       ./canvaskit/bin/core
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile:69:	cp ../../out/canvaskit_wasm/canvaskit.wasm     ./canvaskit/bin/core
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/Makefile-70-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-31-            } catch (e) {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js:32:                console.log(`gm ${name} failed with error`, e);
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-33-                expect(e).toBeFalsy();
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-43-        }).catch((e) => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js:44:            console.log(`could not load assets for gm ${name}`, e);
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-45-            debugger;
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-86-const skip_gm = (name, callback, ...assetsToFetchOrPromisesToWaitOn) => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js:87:    console.log(`Skipping gm ${name}`);
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-88-    // do nothing, skip the test for now
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-99-const _commonMultipleCanvasGM = (it, pause, name, callback) => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js:100:    it(`draws gm ${name} on both CanvasKit and using Canvas2D`, (done) => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-101-        const skcanvas = CanvasKit.MakeCanvas(CANVAS_WIDTH, CANVAS_HEIGHT);
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-176-const skip_multipleCanvasGM = (name, callback) => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js:177:    console.log(`Skipping multiple canvas gm ${name}`);
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/util.js-178-}
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/font.spec.js-223-        const defaultFont = new CanvasKit.SkFont(null, 24);
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/font.spec.js:224:        canvas.drawText(`The following should be ${inputs.length + 1} lines of text:`, 5, 30, fontPaint, defaultFont);
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/tests/font.spec.js-225-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-202-  }
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js:203:  // In c++ terms, the WASM heap is a uint8_t*, a long buffer/array of single
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-204-  // byte elements. When we run _malloc, we always get an offset/pointer into
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-367-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js:368:// Takes a 2D array of commands and puts them into the WASM heap
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-369-// as a 1D array. This allows them to referenced from the C++ code.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-459- * Set the four floats at a given index - if build() has already
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js:460: * been called, the WASM memory will be written to directly.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-461- */
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-484-/**
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js:485: * Copies the float data to the WASM memory and returns a pointer
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-486- * to that allocated memory. Once build has been called, this
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-497-/**
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js:498: * Frees the wasm memory associated with this array. Of note,
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-499- * the points are not removed, so push/set/build can all
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-538- * Set the uint at a given index - if build() has already
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js:539: * been called, the WASM memory will be written to directly.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-540- */
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-557-/**
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js:558: * Copies the uint data to the WASM memory and returns a pointer
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-559- * to that allocated memory. Once build has been called, this
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-570-/**
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js:571: * Frees the wasm memory associated with this array. Of note,
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/helper.js-572- * the points are not removed, so push/set/build can all
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-39-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md:40:  1. Edit `$SKIA_ROOT/infra/wasm-common/docker/emsdk-base/Dockerfile` to install
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-41-     and activate the desired version of Emscripten.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md:42:  2. Edit `$SKIA_ROOT/infra/wasm-common/docker/Makefile` to have `EMSDK_VERSION` be
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-43-     set to that desired version. If there is a suffix that is not `_v1`, reset
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-46-     to force the bots to pick up the new image.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md:47:  3. In `$SKIA_ROOT/infra/wasm-common/docker/`, run `make publish_emsdk_base`
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md:48:  4. Edit `$SKIA_ROOT/infra/canvaskit/docker/canvaskit-emsdk/Dockerfile` to be based
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-49-     off the new version from step 2. CanvasKit has its own docker image because
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-50-     it needs a few extra dependencies to build with font support.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md:51:  5. Edit `$SKIA_ROOT/infra/canvaskit/docker/Makefile` to have the same version
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-52-     from step 2. It's easiest to keep the `emsdk-base` and `canvaskit-emsdk` versions
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-53-     be in lock-step.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md:54:  6. In `$SKIA_ROOT/infra/canvaskit/docker/`, make `publish_canvaskit_emsdk`.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md:55:  7. In `$SKIA_ROOT/infra/bots/recipe_modules/build/`, update `canvaskit.py`
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-56-     and `pathkit.py` to have `DOCKER_IMAAGE` point to the desired tagged Docker
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-57-     containers from steps 2 and 5 (which should be the same).
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md:58:  9. In `$SKIA_ROOT/infra/bots/`, run `make train` to re-train the recipes.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md:59:  10. Optional: Run something like `git grep 1\\.38\\.` in `$SKIA_ROOT` to see if
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/README.md-60-     there are any other references that need updating.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/paragraph.js-113-    function copyColors(textStyle) {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/paragraph.js:114:      // these two color fields were arrays, but will set to WASM pointers before we pass this
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/paragraph.js:115:      // object over the WASM interface.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/paragraph.js-116-      textStyle['colorPtr'] = copy1dArray(textStyle['color'], CanvasKit.HEAPF32);
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-29-    LOTTIE_ANIMATIONS.forEach((animStr) => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js:30:        let promises = [fetchAndText(`/assets/${animStr}.json`), LoadCanvasKit];
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-31-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js:32:        it(`animation loading for ${animStr}`, function(done) {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-33-            let jsonStr = '';
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-48-                jsonStr = responses[0];
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js:49:                benchmarkAndReport(`${animStr}_animation_load`, setup, test, teardown).then(() => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-50-                    done();
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-54-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js:55:        it(`animation frames in order for ${animStr}`, function(done) {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-56-            let jsonStr = '';
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-79-                jsonStr = responses[0];
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js:80:                benchmarkAndReport(`${animStr}_animation_in_order`, setup, test, teardown).then(() => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-81-                    done();
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-85-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js:86:        it(`animation frames in random order for ${animStr}`, function(done) {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-87-            let jsonStr = '';
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-105-                jsonStr = responses[0];
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js:106:                benchmarkAndReport(`${animStr}_animation_random_order`, setup, test, teardown).then(() => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-107-                    done();
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-114-        // unknown reasons.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js:115:        xit(`renders to an HTML canvas ${animStr}`, function(done) {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-116-            let jsonStr = '';
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-143-                jsonStr = responses[0];
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js:144:                benchmarkAndReport(`${animStr}_animation_render_flush`, setup, test, teardown).then(() => {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/perf/animation.bench.js-145-                    done();
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/karma.google3.conf.js-6-  // By default this contains any srcs in the build rule, but we need to add our
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/karma.google3.conf.js:7:  // generated js and wasm files, and they need to come first, hence unshift
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/karma.google3.conf.js-8-  config.files.unshift(
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/interface.js-4-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/interface.js:5:// CanvasKit.onRuntimeInitialized is called after the WASM library has loaded.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/interface.js-6-// Anything that modifies an exposed class (e.g. SkPath) should be set
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/interface.js-849-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/interface.js:850:    // Free the allocated pixels in the WASM memory
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/interface.js-851-    CanvasKit._free(pPtr);
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/CHANGELOG.md-170- - Experimental `CanvasKit.Malloc`, which can be used to create a
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/CHANGELOG.md:171:   TypedArray backed by the C++ WASM memory. This can save a copy in some cases
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/CHANGELOG.md-172-   (e.g. SkColorFilter.MakeMatrix). This is an advanced feature, so use it with care.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/compile.sh-8-
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/compile.sh:9:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/compile.sh-10-# This expects the environment variable EMSDK to be set
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/karma.bench.conf.js-93-  } else {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/karma.bench.conf.js:94:    console.log('wasm is under test');
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/karma.bench.conf.js-95-  }
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp-188-// All these Apply* methods are simple wrappers to avoid returning an object.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp:189:// The default WASM bindings produce code that will leak if a return value
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp-190-// isn't assigned to a JS variable and has delete() called on it.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp-626-void computeTonalColors(uintptr_t cPtrAmbi /* float * */, uintptr_t cPtrSpot /* float * */) {
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp:627:    // private methods accepting colors take pointers to floats already copied into wasm memory.
chromium-84.0.4147.105/third_party/skia/modules/canvaskit/canvaskit_bindings.cpp-628-    float* ambiFloats = reinterpret_cast<float*>(cPtrAmbi);
##############################################
chromium-84.0.4147.105/third_party/skia/modules/particles/src/SkParticleBinding.cpp-219-        int y = SkTPin(static_cast<int>(arguments[1] * fBitmap.height()), 0, fBitmap.height() - 1);
chromium-84.0.4147.105/third_party/skia/modules/particles/src/SkParticleBinding.cpp:220:        float* p = static_cast<float*>(fBitmap.getAddr(x, y));
chromium-84.0.4147.105/third_party/skia/modules/particles/src/SkParticleBinding.cpp-221-        memcpy(outReturn, p, 4 * sizeof(float));
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/chaining.js-2-(function(PathKit){
chromium-84.0.4147.105/third_party/skia/modules/pathkit/chaining.js:3:  // PathKit.onRuntimeInitialized is called after the WASM library has loaded.
chromium-84.0.4147.105/third_party/skia/modules/pathkit/chaining.js-4-  // when onRuntimeInitialized is called, PathKit.SkPath is defined with many
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-8-	cp ../../out/pathkit/pathkit.js   ./npm-wasm/bin
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile:9:	cp ../../out/pathkit/pathkit.wasm ./npm-wasm/bin
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-10-	./compile.sh asm.js
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-33-# Build the library and run the tests. If developing locally, test-continuous is better
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile:34:# suited for that, although if you make changes to the C++/WASM code, you will need
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-35-# to manually call make npm-test to re-build.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-51-# Build the library and run the tests using the docker image.  If developing locally,
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile:52:# test-docker-continuous is better, although if you make changes to the C++/WASM code,
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-53-# you will need to manually call make npm-test to re-build.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-61-	cp ../../out/dockerbuild/pathkit.js   ./npm-wasm/bin/test/pathkit.js
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile:62:	cp ../../out/dockerbuild/pathkit.wasm ./npm-wasm/bin/test/pathkit.wasm
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-63-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-90-	cp ../../out/pathkit/pathkit.js   ./npm-wasm/bin/test/pathkit.js
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile:91:	cp ../../out/pathkit/pathkit.wasm ./npm-wasm/bin/test/pathkit.wasm
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-92-	./compile.sh asm.js test
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-102-	cp ../../out/pathkit/pathkit.js     ./npm-wasm/bin/debug/pathkit.js
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile:103:	cp ../../out/pathkit/pathkit.wasm   ./npm-wasm/bin/debug/pathkit.wasm
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-104-	cp ../../out/pathkit/pathkit.wasm.map ./npm-wasm/bin/debug/pathkit.wasm.map
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-117-	mkdir -p node_modules
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile:118:	ln -s -T ../npm-wasm  node_modules/pathkit-wasm
chromium-84.0.4147.105/third_party/skia/modules/pathkit/Makefile-119-	ln -s -T ../npm-asmjs node_modules/pathkit-asmjs
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/testReporter.js-87-        })
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/testReporter.js:88:    }).then(() => console.log(`Successfully reported ${testname} to gold aggregator`));
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/testReporter.js-89-}
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-5-    let bounds = path.getBounds();
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:6:    return `${(bounds.fLeft-2)*.95} ${(bounds.fTop-2)*.95} ${(bounds.fRight+2)*1.05} ${(bounds.fBottom+2)*1.05}`;
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-7-}
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-51-    if (eCmds.length !== aCmds.length) {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:52:        //console.log(`Expected: ${JSON.stringify(eCmds)} and Actual: ${JSON.stringify(aCmds)}`);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:53:        return `Different amount of verbs.  Expected had ${eCmds.length}, Actual had ${aCmds.length}`;
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-54-    }
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-57-        if (eCmd.length !== aCmd.length) {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:58:            // Should never happen, means WASM code is returning bad ops.
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:59:            return `Command index ${idx} differs in num arguments. Expected had ${eCmd.length}, Actual had ${aCmd.length}`;
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-60-        }
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-62-        if (eVerb !== aVerb) {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:63:            return `Command index ${idx} differs. Expected had ${eVerb}, Actual had ${aVerb}`;
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-64-        }
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-66-            if (Math.abs(eCmd[arg] - aCmd[arg]) > TOLERANCE) {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:67:                return `Command index ${idx} has different argument for verb ${eVerb} at position ${arg}. Expected had ${eCmd[arg]}, Actual had ${aCmd[arg]}`
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-68-            }
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-98-        let e = FILLTYPE_MAP[str];
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:99:        expect(e).toBeTruthy(`Could not find FillType Enum for ${str}`);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-100-        return e;
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-104-        let e = PATHOP_MAP[str];
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:105:        expect(e).toBeTruthy(`Could not find PathOp Enum for ${str}`);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-106-        return e;
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-124-                        let path1 = PathKit.FromCmds(test.p1);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:125:                        expect(path1).not.toBeNull(`path1 error when loading cmds '${test.p1}'`);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-126-                        path1.setFillType(getFillType(test.fillType1));
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-128-                        let path2 = PathKit.FromCmds(test.p2);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:129:                        expect(path2).not.toBeNull(`path2 error when loading cmds '${test.p2}'`);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-130-                        path2.setFillType(getFillType(test.fillType2));
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-134-                        if (test.expectSuccess === 'no') {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:135:                            expect(combined).toBeNull(`Test ${testName} should have not created output, but did`);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-136-                        } else {
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-145-                                if (diff) {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:146:                                    expect(`[${testName}] ${diff}`).toBe('');
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-147-                                    addSVG('[PathOps] ' + testName, expected, combined, diff);
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-152-                                if (!diff) {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:153:                                    expect(`[${testName}] was expected to have paths that differed`).not.toBe('');
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-154-                                }
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-183-                        let path = PathKit.FromCmds(test.path);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:184:                        expect(path).not.toBeNull(`path1 error when loading cmds '${test.path}'`);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-185-                        path.setFillType(getFillType(test.fillType));
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-189-                        if (test.expectSuccess === 'no') {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:190:                            expect(simplified).toBeNull(`Test ${testName} should have not created output, but did`);
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-191-                        } else {
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-200-                                if (diff) {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:201:                                    expect(`[${testName}] ${diff}`).toBe('');
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-202-                                    addSVG('[Simplify] ' + testName, expected, simplified, diff);
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-207-                                if (!diff) {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js:208:                                    expect(`[${testName}] was expected to not match output`).not.toBe('');
chromium-84.0.4147.105/third_party/skia/modules/pathkit/tests/pathops.spec.js-209-                                }
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/helper.js-8-
chromium-84.0.4147.105/third_party/skia/modules/pathkit/helper.js:9:  // Takes a 2D array of commands and puts them into the WASM heap
chromium-84.0.4147.105/third_party/skia/modules/pathkit/helper.js-10-  // as a 1D array. This allows them to referenced from the C++ code.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/README.md:1:PathKit WASM API
chromium-84.0.4147.105/third_party/skia/modules/pathkit/README.md-2-================
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/README.md-13-
chromium-84.0.4147.105/third_party/skia/modules/pathkit/README.md:14:Run `./compile.sh` to compile a production, WASM build to `$SKIA_HOME/out/pathkit`.
chromium-84.0.4147.105/third_party/skia/modules/pathkit/README.md-15-Add "--help" for more options.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/perf/perfReporter.js-45-        const us = (end - start) * 1000 / times;
chromium-84.0.4147.105/third_party/skia/modules/pathkit/perf/perfReporter.js:46:        console.log(benchName, `${us} microseconds`)
chromium-84.0.4147.105/third_party/skia/modules/pathkit/perf/perfReporter.js-47-        return _report(us, benchName);
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/perf/perfReporter.js-65-        })
chromium-84.0.4147.105/third_party/skia/modules/pathkit/perf/perfReporter.js:66:    }).then(() => console.log(`Successfully reported ${benchName} to perf aggregator`));
chromium-84.0.4147.105/third_party/skia/modules/pathkit/perf/perfReporter.js-67-}
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-asmjs/example.html-248-
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-asmjs/example.html:249:        let ctx = document.getElementById(`canvas${i+5}`).getContext('2d');
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-asmjs/example.html-250-        setCanvasSize(ctx, 300, 300);
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-asmjs/README.md-11-
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-asmjs/README.md:12:PathKit comes in two parts, a JS loader and the actual WASM code. The JS loader creates
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-asmjs/README.md:13:a global `PathKitInit` that can be called to load the WASM code. The `locateFile` function
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-asmjs/README.md-14-is used to tell the JS loader where to find the .js.mem file. By default, it will
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/karma.conf.js-93-  } else {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/karma.conf.js:94:    console.log('wasm is under test');
chromium-84.0.4147.105/third_party/skia/modules/pathkit/karma.conf.js-95-  }
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/compile.sh-8-
chromium-84.0.4147.105/third_party/skia/modules/pathkit/compile.sh:9:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/modules/pathkit/compile.sh-10-HTML_SHELL=$BASE_DIR/shell.html
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/compile.sh-34-if [[ $@ == *help* ]]; then
chromium-84.0.4147.105/third_party/skia/modules/pathkit/compile.sh:35:  echo "By default, this script builds a production WASM build of PathKit."
chromium-84.0.4147.105/third_party/skia/modules/pathkit/compile.sh-36-  echo ""
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/compile.sh-41-  echo "  debug = Make a build suitable for debugging (defines SK_DEBUG)"
chromium-84.0.4147.105/third_party/skia/modules/pathkit/compile.sh:42:  echo "  asm.js = Build for asm.js instead of WASM (very experimental)"
chromium-84.0.4147.105/third_party/skia/modules/pathkit/compile.sh-43-  echo "  serve = starts a webserver allowing a user to navigate to"
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/pathkit_wasm_bindings.cpp-167-// All these Apply* methods are simple wrappers to avoid returning an object.
chromium-84.0.4147.105/third_party/skia/modules/pathkit/pathkit_wasm_bindings.cpp:168:// The default WASM bindings produce code that will leak if a return value
chromium-84.0.4147.105/third_party/skia/modules/pathkit/pathkit_wasm_bindings.cpp-169-// isn't assigned to a JS variable and has delete() called on it.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/karma.bench.conf.js-91-  } else {
chromium-84.0.4147.105/third_party/skia/modules/pathkit/karma.bench.conf.js:92:    console.log('wasm is under test');
chromium-84.0.4147.105/third_party/skia/modules/pathkit/karma.bench.conf.js-93-  }
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/example.html-113-
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/example.html:114:    // clean up WASM memory
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/example.html-115-    // See http://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/embind.html?highlight=memory#memory-management
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/example.html-248-
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/example.html:249:        let ctx = document.getElementById(`canvas${i+5}`).getContext('2d');
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/example.html-250-        setCanvasSize(ctx, 300, 300);
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/package.json-3-  "version": "0.6.0",
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/package.json:4:  "description": "A WASM version of Skia's PathOps toolkit",
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/package.json-5-  "main": "bin/pathkit.js",
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md:1:A WASM version of Skia's PathOps toolkit.
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md-2-
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md-11-
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md:12:PathKit comes in two parts, a JS loader and the actual WASM code. The JS loader creates
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md:13:a global `PathKitInit` that can be called to load the WASM code. The `locateFile` function
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md:14:is used to tell the JS loader where to find the .wasm file. By default, it will
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md-15-look for /pathkit.wasm, so if this is not the case, use `locateFile` to configure
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md-25-
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md:26:WebPack's support for WASM is still somewhat experimental, but PathKit can be
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md-27-used with a few configuration changes.
##############################################
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md-36-Since WebPack does not expose the entire `/node_modules/` directory, but instead
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md:37:packages only the needed pieces, we have to copy pathkit.wasm into the build directory.
chromium-84.0.4147.105/third_party/skia/modules/pathkit/npm-wasm/README.md-38-One such solution is to use [CopyWebpackPlugin](https://github.com/webpack-contrib/copy-webpack-plugin).
##############################################
chromium-84.0.4147.105/third_party/skia/modules/sksg/BUILD.gn-37-  source_set("samples") {
chromium-84.0.4147.105/third_party/skia/modules/sksg/BUILD.gn:38:    if (target_cpu != "wasm") {  # TODO: clean up wasm test
chromium-84.0.4147.105/third_party/skia/modules/sksg/BUILD.gn-39-      testonly = true
##############################################
chromium-84.0.4147.105/third_party/skia/specs/web-img-decode/README.md-15-We propose... See proposed/index.html for an API that makes this much cleaner.
chromium-84.0.4147.105/third_party/skia/specs/web-img-decode/README.md:16:It uses the CanvasKit WASM library under the hood to provide functionality, but
chromium-84.0.4147.105/third_party/skia/specs/web-img-decode/README.md-17-the intent is for Web Browsers to support this natively.
##############################################
chromium-84.0.4147.105/third_party/skia/docker/skia-wasm-release/Dockerfile:1:# Dockerfile for building the WASM libraries used by jsfiddle.skia.org and debugger.skia.org
chromium-84.0.4147.105/third_party/skia/docker/skia-wasm-release/Dockerfile-2-FROM gcr.io/skia-public/emsdk-base:prod as builder
##############################################
chromium-84.0.4147.105/third_party/skia/include/private/SkHalf.h-44-    float32x4_t fs;
chromium-84.0.4147.105/third_party/skia/include/private/SkHalf.h:45:    asm ("fcvtl %[fs].4s, %[hs].4h   \n"   // vcvt_f32_f16(...)
chromium-84.0.4147.105/third_party/skia/include/private/SkHalf.h-46-        : [fs] "=w" (fs)                   // =w: write-only NEON register
##############################################
chromium-84.0.4147.105/third_party/skia/include/private/SkHalf.h-66-    float32x4_t vec = fs.fVec;
chromium-84.0.4147.105/third_party/skia/include/private/SkHalf.h:67:    asm ("fcvtn %[vec].4h, %[vec].4s  \n"   // vcvt_f16_f32(vec)
chromium-84.0.4147.105/third_party/skia/include/private/SkHalf.h-68-        : [vec] "+w" (vec));                // +w: read-write NEON register
##############################################
chromium-84.0.4147.105/third_party/skia/include/codec/SkCodec.h-379-    Result getPixels(const SkPixmap& pm, const Options* opts = nullptr) {
chromium-84.0.4147.105/third_party/skia/include/codec/SkCodec.h:380:        return this->getPixels(pm.info(), pm.writable_addr(), pm.rowBytes(), opts);
chromium-84.0.4147.105/third_party/skia/include/codec/SkCodec.h-381-    }
##############################################
chromium-84.0.4147.105/third_party/skia/include/utils/mac/SkCGUtils.h-50-static inline bool SkCopyPixelsFromCGImage(const SkPixmap& dst, CGImageRef src) {
chromium-84.0.4147.105/third_party/skia/include/utils/mac/SkCGUtils.h:51:    return SkCopyPixelsFromCGImage(dst.info(), dst.rowBytes(), dst.writable_addr(), src);
chromium-84.0.4147.105/third_party/skia/include/utils/mac/SkCGUtils.h-52-}
##############################################
chromium-84.0.4147.105/third_party/skia/include/third_party/vulkan/vulkan/vulkan_core.h-2917-
chromium-84.0.4147.105/third_party/skia/include/third_party/vulkan/vulkan/vulkan_core.h:2918:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/skia/include/third_party/vulkan/vulkan/vulkan_core.h-2919-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/skia/include/third_party/vulkan/vulkan/vulkan_core.h-2921-
chromium-84.0.4147.105/third_party/skia/include/third_party/vulkan/vulkan/vulkan_core.h:2922:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/skia/include/third_party/vulkan/vulkan/vulkan_core.h-2923-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-260-    */
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h:261:    void* getPixels() const { return fPixmap.writable_addr(); }
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-262-
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-633-    /** Sets SkImageInfo to pixmap.info() following the rules in setInfo(), and creates
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h:634:        SkPixelRef containing pixmap.addr() and pixmap.rowBytes().
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-635-
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-638-
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h:639:        Otherwise, if pixmap.addr() equals nullptr: sets SkImageInfo, returns true.
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-640-
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-875-    */
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h:876:    void* getAddr(int x, int y) const;
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-877-
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-1204-inline uint32_t* SkBitmap::getAddr32(int x, int y) const {
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h:1205:    SkASSERT(fPixmap.addr());
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-1206-    return fPixmap.writable_addr32(x, y);
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-1209-inline uint16_t* SkBitmap::getAddr16(int x, int y) const {
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h:1210:    SkASSERT(fPixmap.addr());
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-1211-    return fPixmap.writable_addr16(x, y);
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-1214-inline uint8_t* SkBitmap::getAddr8(int x, int y) const {
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h:1215:    SkASSERT(fPixmap.addr());
chromium-84.0.4147.105/third_party/skia/include/core/SkBitmap.h-1216-    return fPixmap.writable_addr8(x, y);
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkImage.h-883-        Returns true if pixels are copied. Returns false if:
chromium-84.0.4147.105/third_party/skia/include/core/SkImage.h:884:        - dstInfo.addr() equals nullptr
chromium-84.0.4147.105/third_party/skia/include/core/SkImage.h-885-        - dstRowBytes is less than dstInfo.minRowBytes()
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkImage.h-945-        converting pixels to match dst.colorType() and dst.alphaType(). Returns true if
chromium-84.0.4147.105/third_party/skia/include/core/SkImage.h:946:        pixels are copied. Returns false if dst.addr() is nullptr, or dst.rowBytes() is
chromium-84.0.4147.105/third_party/skia/include/core/SkImage.h-947-        less than dst SkImageInfo::minRowBytes.
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-142-    */
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h:143:    const void* addr() const { return fPixels; }
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-144-
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-284-    */
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h:285:    const void* addr(int x, int y) const {
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-286-        return (const char*)fPixels + fInfo.computeOffset(x, y, fRowBytes);
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-453-    */
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h:454:    void* writable_addr() const { return const_cast<void*>(fPixels); }
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-455-
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-464-    */
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h:465:    void* writable_addr(int x, int y) const {
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h:466:        return const_cast<void*>(this->addr(x, y));
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-467-    }
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-618-    bool readPixels(const SkPixmap& dst, int srcX, int srcY) const {
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h:619:        return this->readPixels(dst.info(), dst.writable_addr(), dst.rowBytes(), srcX, srcY);
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-620-    }
##############################################
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-639-    bool readPixels(const SkPixmap& dst) const {
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h:640:        return this->readPixels(dst.info(), dst.writable_addr(), dst.rowBytes(), 0, 0);
chromium-84.0.4147.105/third_party/skia/include/core/SkPixmap.h-641-    }
##############################################
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js-129-
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js:130:const targetURL = `http://localhost:${options.port}/#${options.renderer}`;
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js-131-
##############################################
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js-145-  const page = await browser.newPage();
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js:146:  console.log(`- Loading our Lottie exercising page for ${options.input}.`);
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js-147-  try {
##############################################
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js-188-  if (options.post_to) {
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js:189:    console.log(`- Reporting ${options.input} to Gold server ${options.post_to}`);
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js-190-    let shortenedName = options.input;
##############################################
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js-215-} else {
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js:216:  console.log(`open ${targetURL} to see the animation.`)
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/lottiecap.js-217-}
##############################################
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/driver.html-105-          // don't need to wait for data_ready because it's instantly ready.
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/driver.html:106:          console.log(`t = ${t}, go to frame ${seekToFrame}`);
chromium-84.0.4147.105/third_party/skia/tools/lottiecap/driver.html-107-          anim.goToAndStop(seekToFrame, true);
##############################################
chromium-84.0.4147.105/third_party/skia/tools/fiddle/animate.sh-13-do
chromium-84.0.4147.105/third_party/skia/tools/fiddle/animate.sh:14:    ./out/Release/fiddle --duration $DURATION --frame `bc -l <<< "$i/$FRAMES"` | ./tools/fiddle/parse-fiddle-output
chromium-84.0.4147.105/third_party/skia/tools/fiddle/animate.sh-15-    cp /tmp/fiddle_Raster.png /tmp/animation/image-"$i".png
##############################################
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-124-SkBitmap
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt:125:void* getAddr(int x, int y) const;
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-126-
##############################################
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-2915-SkPixmap
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt:2916:const void* addr() const;
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-2917-
##############################################
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-2919-SkPixmap
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt:2920:const void* addr(int x, int y) const;
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-2921-
##############################################
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-3067-SkPixmap
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt:3068:void* writable_addr() const;
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-3069-
##############################################
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-3071-SkPixmap
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt:3072:void* writable_addr(int x, int y) const;
chromium-84.0.4147.105/third_party/skia/tools/fiddle/documumentation_examples_map.txt-3073-
##############################################
chromium-84.0.4147.105/third_party/skia/tools/fiddle/fiddle_main.cpp-162-
chromium-84.0.4147.105/third_party/skia/tools/fiddle/fiddle_main.cpp:163:        texels[0].fPixels = pixmap->addr();
chromium-84.0.4147.105/third_party/skia/tools/fiddle/fiddle_main.cpp-164-        texels[0].fRowBytes = pixmap->rowBytes();
##############################################
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js-118-const canvasKitJS = fs.readFileSync(options.canvaskit_js, 'utf8');
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js:119:const canvasKitWASM = fs.readFileSync(options.canvaskit_wasm, 'binary');
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js-120-
##############################################
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js-143-}
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js:144:const targetURL = `http://localhost:${options.port}/${hash}`;
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js-145-const viewPort = {width: 1000, height: 1000};
##############################################
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js-186-    if (err) {
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js:187:      console.log(`ERROR: ${err}`);
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js-188-      process.exit(1);
##############################################
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js-212-    if (err) {
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js:213:      console.log(`ERROR: ${err}`);
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/perf-canvaskit-with-puppeteer.js-214-      process.exit(1);
##############################################
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/Makefile-3-	node perf-canvaskit-with-puppeteer.js --canvaskit_js ../../out/canvaskit_wasm/canvaskit.js \
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/Makefile:4:	--canvaskit_wasm ../../out/canvaskit_wasm/canvaskit.wasm --use_gpu \
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/Makefile-5-	--input_lottie ../../modules/canvaskit/perf/assets/lego_loader.json \
##############################################
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-8-<head>
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html:9:  <title>Skottie-WASM Perf</title>
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-10-  <meta charset="utf-8" />
##############################################
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-149-      if (font.fName) {
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html:150:        promises.push(fetch(`${ASSETS_PATH}/${font.fName}.ttf`).then((resp) => {
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-151-            // fetch does not reject on 404
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-152-            if (!resp.ok) {
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html:153:              console.error(`Could not load ${font.fName}.ttf: status ${resp.status}`);
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-154-              return null;
##############################################
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-175-      if (should_load) {
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html:176:        promises.push(fetch(`${ASSETS_PATH}/${asset.p}`)
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-177-          .then((resp) => {
##############################################
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-179-            if (!resp.ok) {
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html:180:              console.error(`Could not load ${asset.p}: status ${resp.status}`);
chromium-84.0.4147.105/third_party/skia/tools/perf-canvaskit-puppeteer/skottie-frames.html-181-              return null;
##############################################
chromium-84.0.4147.105/third_party/skia/tools/skqp/make_skqp_model.cpp-59-bool encode_png(const char* path, const SkPixmap& pixmap) {
chromium-84.0.4147.105/third_party/skia/tools/skqp/make_skqp_model.cpp:60:    if (!pixmap.addr()) {
chromium-84.0.4147.105/third_party/skia/tools/skqp/make_skqp_model.cpp-61-        return false;
##############################################
chromium-84.0.4147.105/third_party/skia/tools/skqp/README_ALGORITHM.md-16-For each test, we have a `max_image` and a `min_image`.  These are PNG-encoded
chromium-84.0.4147.105/third_party/skia/tools/skqp/README_ALGORITHM.md:17:images stored in SkQP's APK's asset directory (in the paths `gmkb/${TEST}/min.png`
chromium-84.0.4147.105/third_party/skia/tools/skqp/README_ALGORITHM.md:18:and `gmkb/${TEST}/max.png`).
chromium-84.0.4147.105/third_party/skia/tools/skqp/README_ALGORITHM.md-19-
##############################################
chromium-84.0.4147.105/third_party/skia/tools/sk_app/unix/RasterWindowContext_unix.cpp-73-    image.format = ZPixmap;
chromium-84.0.4147.105/third_party/skia/tools/sk_app/unix/RasterWindowContext_unix.cpp:74:    image.data = (char*) pm.addr();
chromium-84.0.4147.105/third_party/skia/tools/sk_app/unix/RasterWindowContext_unix.cpp-75-    image.byte_order = LSBFirst;
##############################################
chromium-84.0.4147.105/third_party/skia/tools/sk_app/VulkanWindowContext.cpp-26-
chromium-84.0.4147.105/third_party/skia/tools/sk_app/VulkanWindowContext.cpp:27:#define GET_PROC(F) f ## F = (PFN_vk ## F) fGetInstanceProcAddr(fInstance, "vk" #F)
chromium-84.0.4147.105/third_party/skia/tools/sk_app/VulkanWindowContext.cpp:28:#define GET_DEV_PROC(F) f ## F = (PFN_vk ## F) fGetDeviceProcAddr(fDevice, "vk" #F)
chromium-84.0.4147.105/third_party/skia/tools/sk_app/VulkanWindowContext.cpp-29-
##############################################
chromium-84.0.4147.105/third_party/skia/tools/imgcvt.cpp-129-
chromium-84.0.4147.105/third_party/skia/tools/imgcvt.cpp:130:        if (!skcms_Transform(pixmap.addr(),          fmt,alpha, &src_profile,
chromium-84.0.4147.105/third_party/skia/tools/imgcvt.cpp:131:                             pixmap.writable_addr(), fmt,alpha, &dst_profile,
chromium-84.0.4147.105/third_party/skia/tools/imgcvt.cpp-132-                             pixmap.width() * pixmap.height())) {
##############################################
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.h-252-    void* next(SkIPoint* loc = nullptr) {
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.h:253:        if (!fPM.addr()) {
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.h-254-            return nullptr;
##############################################
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.h-266-        }
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.h:267:        return fPM.writable_addr(fLoc.fX, fLoc.fY);
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.h-268-    }
##############################################
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-1-/**
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js:2: * Command line application to run Skottie-WASM perf on a Lottie file in the
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-3- * browser and then exporting the result.
##############################################
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-53-  {
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js:54:    header: 'Skottie WASM Perf',
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js:55:    content: "Command line application to run Skottie-WASM perf."
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-56-  },
##############################################
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-97-let canvasKitJS = fs.readFileSync(options.canvaskit_js, 'utf8');
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js:98:let canvasKitWASM = fs.readFileSync(options.canvaskit_wasm, 'binary');
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-99-let driverHTML = fs.readFileSync('skottie-wasm-perf.html', 'utf8');
##############################################
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-121-}
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js:122:const targetURL = `http://localhost:${options.port}/${hash}`;
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-123-const viewPort = {width: 1000, height: 1000};
##############################################
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-170-    if (err) {
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js:171:      console.log(`ERROR: ${err}`)
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.js-172-      process.exit(1);
##############################################
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.html-3-<head>
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.html:4:    <title>Skottie-WASM Perf</title>
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.html-5-    <meta charset="utf-8" />
##############################################
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.html-106-      }
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.html:107:      console.log(`Used seek: ${seek}`);
chromium-84.0.4147.105/third_party/skia/tools/skottie-wasm-perf/skottie-wasm-perf.html-108-      seek += t_rate;
##############################################
chromium-84.0.4147.105/third_party/skia/tools/CrashHandler.cpp-105-                Dl_info info;
chromium-84.0.4147.105/third_party/skia/tools/CrashHandler.cpp:106:                if (dladdr(stack[i], &info) && info.dli_sname) {
chromium-84.0.4147.105/third_party/skia/tools/CrashHandler.cpp-107-                    char demangled[256];
##############################################
chromium-84.0.4147.105/third_party/skia/tools/debugger/DebugCanvas.h-42-     *
chromium-84.0.4147.105/third_party/skia/tools/debugger/DebugCanvas.h:43:     * Used only in wasm debugger animations.
chromium-84.0.4147.105/third_party/skia/tools/debugger/DebugCanvas.h-44-     */
##############################################
chromium-84.0.4147.105/third_party/skia/tools/UrlDataManager.h-49-
chromium-84.0.4147.105/third_party/skia/tools/UrlDataManager.h:50:    // Methods used to identify images differently in wasm debugger for mskp animations.
chromium-84.0.4147.105/third_party/skia/tools/UrlDataManager.h-51-    // serving is uncessary, as a collection of images with identifiers is already present, we
##############################################
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.cpp-436-    for (int y = 0; y < a.height(); ++y) {
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.cpp:437:        const char* aptr = (const char*)a.addr(0, y);
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.cpp:438:        const char* bptr = (const char*)b.addr(0, y);
chromium-84.0.4147.105/third_party/skia/tools/ToolUtils.cpp-439-        if (memcmp(aptr, bptr, a.width() * a.info().bytesPerPixel())) {
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile-4-	cp ../../out/skottiekit_debug/skottiekit.js       ./examples/bin
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile:5:	cp ../../out/skottiekit_debug/skottiekit.wasm     ./examples/bin
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile-6-	cp ../../out/skottiekit_debug/skottiekit.wasm.map ./examples/bin
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile-11-	cp ../../out/skottiekit_debug/skottiekit.js       ./examples/bin
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile:12:	cp ../../out/skottiekit_debug/skottiekit.wasm     ./examples/bin
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile-13-	cp ../../out/skottiekit_debug/skottiekit.wasm.map ./examples/bin
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile-18-	cp ../../out/skottiekit/skottiekit.js       ./examples/bin
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile:19:	cp ../../out/skottiekit/skottiekit.wasm     ./examples/bin
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile-20-
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile-24-	cp ../../out/skottiekit/skottiekit.js       ./examples/bin
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile:25:	cp ../../out/skottiekit/skottiekit.wasm     ./examples/bin
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/Makefile-26-
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/examples/ck.html-20-      const n = performance.now();
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/examples/ck.html:21:      console.log(`loaded Kit in ${(n - bootTime).toFixed(2)} ms`)
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/examples/ck.html-22-    });
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/examples/index.html-20-      const n = performance.now();
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/examples/index.html:21:      console.log(`loaded Kit in ${(n - bootTime).toFixed(2)} ms`)
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/examples/index.html-22-    });
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/helper.js-16-  }
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/helper.js:17:  // In c++ terms, the WASM heap is a uint8_t*, a long buffer/array of single
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/helper.js-18-  // byte elements. When we run _malloc, we always get an offset/pointer into
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/interface.js-4-
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/interface.js:5:// SkottieKit.onRuntimeInitialized is called after the WASM library has loaded.
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/interface.js-6-// Anything that modifies an exposed class (e.g. SkPath) should be set
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/compile.sh-8-
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/compile.sh:9:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/experimental/skottiekit/compile.sh-10-# This expects the environment variable EMSDK to be set
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp-247-
chromium-84.0.4147.105/third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp:248:    uint8_t*   dst[] = { (uint8_t*)bm.pixmap().writable_addr() };
chromium-84.0.4147.105/third_party/skia/experimental/ffmpeg/SkVideoDecoder.cpp-249-    int dst_stride[] = { SkToInt(bm.pixmap().rowBytes()) };
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/ffmpeg/SkVideoEncoder.cpp-272-
chromium-84.0.4147.105/third_party/skia/experimental/ffmpeg/SkVideoEncoder.cpp:273:    const uint8_t* src[] = { (const uint8_t*)pm.addr() };
chromium-84.0.4147.105/third_party/skia/experimental/ffmpeg/SkVideoEncoder.cpp-274-    const int strides[] = { SkToInt(pm.rowBytes()) };
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile-5-	cp ../../out/debugger_wasm/debugger.js   ./debugger/bin
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile:6:	cp ../../out/debugger_wasm/debugger.wasm ./debugger/bin
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile-7-
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile-12-	cp ../../out/debugger_wasm_debug/debugger.js   ./debugger/bin
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile:13:	cp ../../out/debugger_wasm_debug/debugger.wasm ./debugger/bin
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile-14-
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile-16-	# assume the developer also has a checkout of buildbot here and wants to test the newly
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile:17:	# built wasm debugger with the interface.
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile-18-	cp ./debugger/bin/debugger.js   ${SKIA_INFRA_ROOT}/debugger-assets/res/js
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile:19:	cp ./debugger/bin/debugger.wasm ${SKIA_INFRA_ROOT}/debugger-assets/res
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile-20-
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile:21:# A barebones local example of the wasm module included in a page.
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/Makefile-22-# for the real interface see
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/helper.js-10-    var size = fileContents.byteLength;
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/helper.js:11:    // Allocate memory in wasm to hold the skp file selected by the user.
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/helper.js-12-    var fileMemPtr = this._malloc(size);
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/README.md:1:WASM SKP Debugger
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/README.md-2-=================
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/README.md-3-
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/README.md:4:The wasm skp debugger is a wasm binary that uses DebugCanvas to show SKP and MSKP files. It is
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/README.md-5-embedded in the javascript code in debugger-assets from the infra buildbot repository.
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/compile.sh-9-
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/compile.sh:10:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/compile.sh-11-# This expects the environment variable EMSDK to be set
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/compile.sh-117-
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/compile.sh:118:echo "Generating final debugger wasm and javascript"
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/compile.sh-119-
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/debugger/index.html-29-      const size = fileContents.byteLength;
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/debugger/index.html:30:      // Allocate memory in wasm to hold the skp file selected by the user.
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/debugger/index.html-31-      const fileMemPtr = Debugger._malloc(size);
##############################################
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/debugger_bindings.cpp-61-
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/debugger_bindings.cpp:62:    /* loadSkp deserializes a skp file that has been copied into the shared WASM memory.
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/debugger_bindings.cpp-63-     * cptr - a pointer to the data to deserialize.
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/debugger_bindings.cpp-64-     * length - length of the data in bytes.
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/debugger_bindings.cpp:65:     * The caller must allocate the memory with M._malloc where M is the wasm module in javascript
chromium-84.0.4147.105/third_party/skia/experimental/wasm-skp-debugger/debugger_bindings.cpp-66-     * and copy the data into M.buffer at the pointer returned by malloc.
##############################################
chromium-84.0.4147.105/third_party/skia/tests/DefaultPathRendererTest.cpp-49-
chromium-84.0.4147.105/third_party/skia/tests/DefaultPathRendererTest.cpp:50:    rtc->readPixels(dstII, bm.getAddr(0, 0), bm.rowBytes(), {0, 0});
chromium-84.0.4147.105/third_party/skia/tests/DefaultPathRendererTest.cpp-51-
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecAnimTest.cpp-378-                    for (int y = 0; y < info.height(); y++) {
chromium-84.0.4147.105/third_party/skia/tests/CodecAnimTest.cpp:379:                        const void* cachedAddr = cachedFrame.getAddr(0, y);
chromium-84.0.4147.105/third_party/skia/tests/CodecAnimTest.cpp-380-                        SkASSERT(cachedAddr != nullptr);
chromium-84.0.4147.105/third_party/skia/tests/CodecAnimTest.cpp:381:                        const void* addr = frame.getAddr(0, y);
chromium-84.0.4147.105/third_party/skia/tests/CodecAnimTest.cpp-382-                        SkASSERT(addr != nullptr);
##############################################
chromium-84.0.4147.105/third_party/skia/tests/DrawOpAtlasTest.cpp-126-    code = atlas->addToAtlas(resourceProvider, target, kPlotSize, kPlotSize,
chromium-84.0.4147.105/third_party/skia/tests/DrawOpAtlasTest.cpp:127:                             data.getAddr(0, 0), atlasLocator);
chromium-84.0.4147.105/third_party/skia/tests/DrawOpAtlasTest.cpp-128-    return GrDrawOpAtlas::ErrorCode::kSucceeded == code;
##############################################
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp-272-                            readback.erase(kClearColor);
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp:273:                            if (texCtx->readPixels(readback.info(), readback.writable_addr(),
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp-274-                                                   readback.rowBytes(), {0, 0})) {
##############################################
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp-305-                        readback.erase(kClearColor);
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp:306:                        if (surfCtx->readPixels(readback.info(), readback.writable_addr(),
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp-307-                                                readback.rowBytes(), {0, 0})) {
##############################################
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp-373-            read.alloc(srcPixmap.info());
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp:374:            auto readResult = surfContext->readPixels(srcPixmap.info(), read.writable_addr(),
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp-375-                                                      0, { 0, 0 });
##############################################
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp-385-        fillPixels(&write, [&srcPixmap](int x, int y) { return ~*srcPixmap.addr32(); });
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp:386:        auto writeResult = surfContext->writePixels(srcPixmap.info(), write.addr(), 0, {0, 0});
chromium-84.0.4147.105/third_party/skia/tests/GrSurfaceTest.cpp-387-        REPORTER_ASSERT(reporter, writeResult == (ioType == kRW_GrIOType));
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CanvasStateTest.cpp-98-    REPORTER_ASSERT(reporter, pm[1].rowBytes() == (size_t)pm[1].width() * pm[1].info().bytesPerPixel());
chromium-84.0.4147.105/third_party/skia/tests/CanvasStateTest.cpp:99:    if (memcmp(pm[0].addr(0, 0), pm[1].addr(0, 0), pm[0].computeByteSize())) {
chromium-84.0.4147.105/third_party/skia/tests/CanvasStateTest.cpp-100-        REPORTER_ASSERT(reporter, false);
##############################################
chromium-84.0.4147.105/third_party/skia/tests/GrTestingBackendTextureUploadTest.cpp-81-    bool result = surfaceContext->readPixels({grCT, kPremul_SkAlphaType, nullptr, kWidth, kHeight},
chromium-84.0.4147.105/third_party/skia/tests/GrTestingBackendTextureUploadTest.cpp:82:                                             actualPixels.writable_addr(), actualPixels.rowBytes(),
chromium-84.0.4147.105/third_party/skia/tests/GrTestingBackendTextureUploadTest.cpp-83-                                             {0, 0}, context);
##############################################
chromium-84.0.4147.105/third_party/skia/tests/ReadPixelsTest.cpp-683-        static constexpr auto kInitialByte = static_cast<char>(0x1B);
chromium-84.0.4147.105/third_party/skia/tests/ReadPixelsTest.cpp:684:        std::fill_n(static_cast<char*>(dstPixels.writable_addr()),
chromium-84.0.4147.105/third_party/skia/tests/ReadPixelsTest.cpp-685-                    dstPixels.computeByteSize(),
##############################################
chromium-84.0.4147.105/third_party/skia/tests/ReadPixelsTest.cpp-956-        }
chromium-84.0.4147.105/third_party/skia/tests/ReadPixelsTest.cpp:957:        SkRectMemcpy(pixels.writable_addr(), pixels.rowBytes(), context.fResult->data(0),
chromium-84.0.4147.105/third_party/skia/tests/ReadPixelsTest.cpp-958-                     context.fResult->rowBytes(0), pixels.info().minRowBytes(), pixels.height());
##############################################
chromium-84.0.4147.105/third_party/skia/tests/BitmapTest.cpp-43-    REPORTER_ASSERT(reporter, pmap.info() == bm.info());
chromium-84.0.4147.105/third_party/skia/tests/BitmapTest.cpp:44:    REPORTER_ASSERT(reporter, pmap.addr() == bm.getPixels());
chromium-84.0.4147.105/third_party/skia/tests/BitmapTest.cpp-45-    REPORTER_ASSERT(reporter, pmap.rowBytes() == bm.rowBytes());
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-72-    for (int y = 0; y < bm.height(); ++y) {
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp:73:        md5.write(bm.getAddr(0, y), rowLen);
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-74-    }
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-160-            options.fSubset = &subset;
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp:161:            if (SkCodec::kSuccess != codec->startIncrementalDecode(info, bm.getAddr(0, y),
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-162-                        bm.rowBytes(), &options)) {
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-336-    // Need to call startScanlineDecode() first.
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp:337:    REPORTER_ASSERT(r, codec->getScanlines(bm.getAddr(0, 0), 1, 0) == 0);
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-338-    REPORTER_ASSERT(r, !codec->skipScanlines(1));
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-345-        for (int y = 0; y < info.height(); y++) {
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp:346:            const int lines = codec->getScanlines(bm.getAddr(0, y), 1, 0);
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-347-            if (!supportsIncomplete) {
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-356-        // Cannot continue to decode scanlines beyond the end
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp:357:        REPORTER_ASSERT(r, codec->getScanlines(bm.getAddr(0, 0), 1, 0)
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-358-                == 0);
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-362-        REPORTER_ASSERT(r, codec->startScanlineDecode(info) == SkCodec::kSuccess);
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp:363:        const int lines = codec->getScanlines(bm.getAddr(0, 0), 1, 0);
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-364-        if (!supportsIncomplete) {
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-368-                == expectedResult);
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp:369:        REPORTER_ASSERT(r, codec->getScanlines(bm.getAddr(0, 0), 1, 0)
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-370-                == 0);
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-385-            for (int y = 0; y < height; y++) {
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp:386:                const int lines = codec->getScanlines(bm.getAddr(0, y), 1, 0);
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-387-                if (!supportsIncomplete) {
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-756-    for (int j = 0; j < h; j++) {
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp:757:        png_bytep row = (png_bytep)(bm.getAddr(0, j));
chromium-84.0.4147.105/third_party/skia/tests/CodecTest.cpp-758-        png_write_rows(png, &row, 1);
##############################################
chromium-84.0.4147.105/third_party/skia/tests/DrawBitmapRectTest.cpp-220-    for (int y = 0; y < bm.height(); y++) {
chromium-84.0.4147.105/third_party/skia/tests/DrawBitmapRectTest.cpp:221:        const uint8_t* ptr = reinterpret_cast<const uint8_t*>(bm.getAddr(0, y));
chromium-84.0.4147.105/third_party/skia/tests/DrawBitmapRectTest.cpp-222-        for (size_t i = 0; i < count; i++) {
##############################################
chromium-84.0.4147.105/third_party/skia/tests/ClearTest.cpp-43-    readback.erase(~expectedValue);
chromium-84.0.4147.105/third_party/skia/tests/ClearTest.cpp:44:    if (!rtc->readPixels(readback.info(), readback.writable_addr(), readback.rowBytes(),
chromium-84.0.4147.105/third_party/skia/tests/ClearTest.cpp-45-                         {rect.fLeft, rect.fTop})) {
##############################################
chromium-84.0.4147.105/third_party/skia/tests/BackendAllocationTest.cpp-475-    for (int i = 0; i < numMipLevels; ++i) {
chromium-84.0.4147.105/third_party/skia/tests/BackendAllocationTest.cpp:476:        pixmaps[i].reset(pixmapMem[i].info(), pixmapMem[i].addr(), pixmapMem[i].rowBytes());
chromium-84.0.4147.105/third_party/skia/tests/BackendAllocationTest.cpp-477-    }
##############################################
chromium-84.0.4147.105/third_party/skia/tests/BackendAllocationTest.cpp-524-    for (int i = 0; i < numMipLevels; ++i) {
chromium-84.0.4147.105/third_party/skia/tests/BackendAllocationTest.cpp:525:        pixmaps[i].reset(pixmapMem[i].info(), pixmapMem[i].addr(), pixmapMem[i].rowBytes());
chromium-84.0.4147.105/third_party/skia/tests/BackendAllocationTest.cpp-526-    }
##############################################
chromium-84.0.4147.105/third_party/skia/tests/TestUtils.cpp-274-                   std::function<ComparePixmapsErrorReporter>& error) {
chromium-84.0.4147.105/third_party/skia/tests/TestUtils.cpp:275:    return ComparePixels(a.info(), static_cast<const char*>(a.addr()), a.rowBytes(),
chromium-84.0.4147.105/third_party/skia/tests/TestUtils.cpp:276:                         b.info(), static_cast<const char*>(b.addr()), b.rowBytes(),
chromium-84.0.4147.105/third_party/skia/tests/TestUtils.cpp-277-                         tolRGBA, error);
##############################################
chromium-84.0.4147.105/third_party/skia/tests/TestUtils.cpp-303-        SkAssertResult(GrConvertPixels(dstInfo, floatB.get(), floatRowBytes, pixmap.info(),
chromium-84.0.4147.105/third_party/skia/tests/TestUtils.cpp:304:                                       pixmap.addr(), pixmap.rowBytes()));
chromium-84.0.4147.105/third_party/skia/tests/TestUtils.cpp-305-    }
##############################################
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp-258-    SkPixmap pmap2;
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp:259:    const void* addr2 = surface->peekPixels(&pmap2) ? pmap2.addr() : nullptr;
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp-260-
##############################################
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp-265-
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp:266:        REPORTER_ASSERT(reporter, pmap.addr() == pmap2.addr());
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp-267-        REPORTER_ASSERT(reporter, pmap.info() == pmap2.info());
##############################################
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp-764-    readback.erase(~expectedValue);
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp:765:    surfaceContext->readPixels(readback.info(), readback.writable_addr(), readback.rowBytes(),
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp-766-                               {0, 0});
##############################################
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp-851-    readback.erase(~origColor);
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp:852:    SkAssertResult(surface->readPixels(readback.info(), readback.writable_addr(),
chromium-84.0.4147.105/third_party/skia/tests/SurfaceTest.cpp-853-                                       readback.rowBytes(), 0, 0));
##############################################
chromium-84.0.4147.105/third_party/skia/tests/CodecPartialTest.cpp-52-    for (int i = 0; i < info.height(); i++) {
chromium-84.0.4147.105/third_party/skia/tests/CodecPartialTest.cpp:53:        if (memcmp(bm1.getAddr(0, i), bm2.getAddr(0, i), rowBytes)) {
chromium-84.0.4147.105/third_party/skia/tests/CodecPartialTest.cpp-54-            ERRORF(r, "Bitmaps have different pixels, starting on line %i!", i);
##############################################
chromium-84.0.4147.105/third_party/skia/tests/MipMapTest.cpp-42-            if (mm->extractLevel(SkSize::Make(scale, scale), &level)) {
chromium-84.0.4147.105/third_party/skia/tests/MipMapTest.cpp:43:                REPORTER_ASSERT(reporter, level.fPixmap.addr());
chromium-84.0.4147.105/third_party/skia/tests/MipMapTest.cpp-44-                REPORTER_ASSERT(reporter, level.fPixmap.width() > 0);
##############################################
chromium-84.0.4147.105/third_party/skia/tests/MipMapTest.cpp-47-
chromium-84.0.4147.105/third_party/skia/tests/MipMapTest.cpp:48:                if (prevLevel.fPixmap.addr()) {
chromium-84.0.4147.105/third_party/skia/tests/MipMapTest.cpp-49-                    REPORTER_ASSERT(reporter, level.fPixmap.width() <= prevLevel.fPixmap.width());
##############################################
chromium-84.0.4147.105/third_party/skia/tests/MipMapTest.cpp-71-        // Make sure the mipmaps contain valid data and that the sizes are correct
chromium-84.0.4147.105/third_party/skia/tests/MipMapTest.cpp:72:        REPORTER_ASSERT(reporter, level.fPixmap.addr());
chromium-84.0.4147.105/third_party/skia/tests/MipMapTest.cpp-73-        SkISize size = SkMipMap::ComputeLevelSize(width, height, i);
##############################################
chromium-84.0.4147.105/third_party/skia/gn/gn_to_cmake.py-446-  flags.extend(target.properties.get('cflags', []))
chromium-84.0.4147.105/third_party/skia/gn/gn_to_cmake.py:447:  cflags_asm = target.properties.get('asmflags', [])
chromium-84.0.4147.105/third_party/skia/gn/gn_to_cmake.py-448-  cflags_c = target.properties.get('cflags_c', [])
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkReadPixelsRec.h-26-    SkReadPixelsRec(const SkPixmap& pm, int x, int y)
chromium-84.0.4147.105/third_party/skia/src/image/SkReadPixelsRec.h:27:        : fPixels(pm.writable_addr())
chromium-84.0.4147.105/third_party/skia/src/image/SkReadPixelsRec.h-28-        , fRowBytes(pm.rowBytes())
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Gpu.cpp-677-                                            std::move(cs));
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Gpu.cpp:678:    surfaceContext.writePixels(srcInfo, pixmap.addr(0, 0), pixmap.rowBytes(), {0, 0});
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Gpu.cpp-679-
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkImage.cpp-205-bool SkImage::readPixels(const SkPixmap& pmap, int srcX, int srcY, CachingHint chint) const {
chromium-84.0.4147.105/third_party/skia/src/image/SkImage.cpp:206:    return this->readPixels(pmap.info(), pmap.writable_addr(), pmap.rowBytes(), srcX, srcY, chint);
chromium-84.0.4147.105/third_party/skia/src/image/SkImage.cpp-207-}
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Lazy.cpp-160-
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Lazy.cpp:161:    if (!gen->getPixels(dstPM->info(), dstPM->writable_addr(), dstPM->rowBytes())) {
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Lazy.cpp-162-        return false;
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-243-    void* dst = bitmap.getPixels();
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp:244:    void* src = fBitmap.getAddr(subset.x(), subset.y());
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-245-    if (!dst || !src) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-260-    size_t size;
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp:261:    if (!SkImage_Raster::ValidArgs(pmap.info(), pmap.rowBytes(), &size) || !pmap.addr()) {
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-262-        return nullptr;
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-265-    // Here we actually make a copy of the caller's pixel data
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp:266:    sk_sp<SkData> data(SkData::MakeWithCopy(pmap.addr(), size));
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-267-    return sk_make_sp<SkImage_Raster>(pmap.info(), std::move(data), pmap.rowBytes(), id);
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-324-    size_t size;
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp:325:    if (!SkImage_Raster::ValidArgs(pmap.info(), pmap.rowBytes(), &size) || !pmap.addr()) {
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-326-        return nullptr;
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-328-
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp:329:    sk_sp<SkData> data(SkData::MakeWithProc(pmap.addr(), size, proc, ctx));
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_Raster.cpp-330-    return sk_make_sp<SkImage_Raster>(pmap.info(), std::move(data), pmap.rowBytes());
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_GpuBase.cpp-126-
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_GpuBase.cpp:127:    if (!sContext->readPixels(pmap.info(), pmap.writable_addr(), pmap.rowBytes(), {0, 0})) {
chromium-84.0.4147.105/third_party/skia/src/image/SkImage_GpuBase.cpp-128-        return false;
##############################################
chromium-84.0.4147.105/third_party/skia/src/image/SkSurface.cpp-403-void SkSurface::writePixels(const SkPixmap& pmap, int x, int y) {
chromium-84.0.4147.105/third_party/skia/src/image/SkSurface.cpp:404:    if (pmap.addr() == nullptr || pmap.width() <= 0 || pmap.height() <= 0) {
chromium-84.0.4147.105/third_party/skia/src/image/SkSurface.cpp-405-        return;
##############################################
chromium-84.0.4147.105/third_party/skia/src/images/SkImageEncoderPriv.h-18-
chromium-84.0.4147.105/third_party/skia/src/images/SkImageEncoderPriv.h:19:    if (!src.addr() || src.rowBytes() < src.info().minRowBytes()) {
chromium-84.0.4147.105/third_party/skia/src/images/SkImageEncoderPriv.h-20-        return false;
##############################################
chromium-84.0.4147.105/third_party/skia/src/images/SkPngEncoder.cpp-434-
chromium-84.0.4147.105/third_party/skia/src/images/SkPngEncoder.cpp:435:    const void* srcRow = fSrc.addr(0, fCurrRow);
chromium-84.0.4147.105/third_party/skia/src/images/SkPngEncoder.cpp-436-    for (int y = 0; y < numRows; y++) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/images/SkWebpEncoder.cpp-113-
chromium-84.0.4147.105/third_party/skia/src/images/SkWebpEncoder.cpp:114:    if (nullptr == pixmap.addr()) {
chromium-84.0.4147.105/third_party/skia/src/images/SkWebpEncoder.cpp-115-        return false;
##############################################
chromium-84.0.4147.105/third_party/skia/src/images/SkWebpEncoder.cpp-152-
chromium-84.0.4147.105/third_party/skia/src/images/SkWebpEncoder.cpp:153:    const uint8_t* src = (uint8_t*)pixmap.addr();
chromium-84.0.4147.105/third_party/skia/src/images/SkWebpEncoder.cpp-154-    const int rgbStride = pic.width * bpp;
##############################################
chromium-84.0.4147.105/third_party/skia/src/images/SkJpegEncoder.cpp-220-
chromium-84.0.4147.105/third_party/skia/src/images/SkJpegEncoder.cpp:221:    const void* srcRow = fSrc.addr(0, fCurrRow);
chromium-84.0.4147.105/third_party/skia/src/images/SkJpegEncoder.cpp-222-    for (int i = 0; i < numRows; i++) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp-195-    *dst = SkPixmap(dst->info().makeDimensions(sect.size()),
chromium-84.0.4147.105/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp:196:                    dst->addr(sect.fLeft, sect.fTop),
chromium-84.0.4147.105/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp-197-                    dst->rowBytes());
chromium-84.0.4147.105/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp-198-    *src = SkPixmap(src->info().makeDimensions(sect.size()),
chromium-84.0.4147.105/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp:199:                    src->addr(std::max(0, -srcDx), std::max(0, -srcDy)),
chromium-84.0.4147.105/third_party/skia/src/effects/imagefilters/SkArithmeticImageFilter.cpp-200-                    src->rowBytes());
##############################################
chromium-84.0.4147.105/third_party/skia/src/android/SkBitmapRegionCodec.cpp-103-    options.fZeroInitialized = zeroInit;
chromium-84.0.4147.105/third_party/skia/src/android/SkBitmapRegionCodec.cpp:104:    void* dst = bitmap->getAddr(scaledOutX, scaledOutY);
chromium-84.0.4147.105/third_party/skia/src/android/SkBitmapRegionCodec.cpp-105-
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/GrRenderTargetContext.cpp-1862-
chromium-84.0.4147.105/third_party/skia/src/gpu/GrRenderTargetContext.cpp:1863:        if (!this->readPixels(ii, pm.writable_addr(), pm.rowBytes(), {rect.fLeft, rect.fTop})) {
chromium-84.0.4147.105/third_party/skia/src/gpu/GrRenderTargetContext.cpp-1864-            callback(context, nullptr);
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/gl/GrGLGpu.cpp-3607-        for (int i = 0; i < numMipLevels; ++i) {
chromium-84.0.4147.105/third_party/skia/src/gpu/gl/GrGLGpu.cpp:3608:            texels[i] = {data->pixmap(i).addr(), data->pixmap(i).rowBytes()};
chromium-84.0.4147.105/third_party/skia/src/gpu/gl/GrGLGpu.cpp-3609-        }
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/gl/GrGLCaps.cpp-596-
chromium-84.0.4147.105/third_party/skia/src/gpu/gl/GrGLCaps.cpp:597:    // In a WASM build on Firefox, we see warnings like
chromium-84.0.4147.105/third_party/skia/src/gpu/gl/GrGLCaps.cpp-598-    // WebGL warning: texSubImage2D: This operation requires zeroing texture data. This is slow.
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/GrProxyProvider.cpp-366-                    mipmaps->getLevel(i - 1, &generatedMipLevel);
chromium-84.0.4147.105/third_party/skia/src/gpu/GrProxyProvider.cpp:367:                    texels[i].fPixels = generatedMipLevel.fPixmap.addr();
chromium-84.0.4147.105/third_party/skia/src/gpu/GrProxyProvider.cpp-368-                    texels[i].fRowBytes = generatedMipLevel.fPixmap.rowBytes();
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp-599-            }
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp:600:            sk_bzero(dst.writable_addr(), dst.computeByteSize());
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp-601-
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp-619-            SkGenerateDistanceFieldFromA8Image((unsigned char*)dfStorage.get(),
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp:620:                                               (const unsigned char*)dst.addr(),
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp-621-                                               dst.width(), dst.height(), dst.rowBytes());
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp-689-        }
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp:690:        sk_bzero(dst.writable_addr(), dst.computeByteSize());
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp-691-
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp-709-        // add to atlas
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp:710:        if (!this->addToAtlas(target, flushInfo, atlas, dst.width(), dst.height(), dst.addr(),
chromium-84.0.4147.105/third_party/skia/src/gpu/ops/GrSmallPathRenderer.cpp-711-                              &shapeData->fAtlasLocator)) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/dawn/GrDawnGpu.cpp-352-    if (data && data->type() == BackendTextureData::Type::kPixmaps) {
chromium-84.0.4147.105/third_party/skia/src/gpu/dawn/GrDawnGpu.cpp:353:        pixels = data->pixmap(0).addr();
chromium-84.0.4147.105/third_party/skia/src/gpu/dawn/GrDawnGpu.cpp-354-    } else {
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/GrDeferredProxyUploader.h-59-            // end up drawing with an uninitialized mask texture, but at least we won't crash.
chromium-84.0.4147.105/third_party/skia/src/gpu/GrDeferredProxyUploader.h:60:            if (this->fPixels.addr()) {
chromium-84.0.4147.105/third_party/skia/src/gpu/GrDeferredProxyUploader.h-61-                writePixelsFn(proxy, 0, 0, this->fPixels.width(), this->fPixels.height(),
chromium-84.0.4147.105/third_party/skia/src/gpu/GrDeferredProxyUploader.h:62:                              pixelColorType, this->fPixels.addr(), this->fPixels.rowBytes());
chromium-84.0.4147.105/third_party/skia/src/gpu/GrDeferredProxyUploader.h-63-            }
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/SkGpuDevice.cpp-183-
chromium-84.0.4147.105/third_party/skia/src/gpu/SkGpuDevice.cpp:184:    return fRenderTargetContext->readPixels(pm.info(), pm.writable_addr(), pm.rowBytes(), {x, y});
chromium-84.0.4147.105/third_party/skia/src/gpu/SkGpuDevice.cpp-185-}
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/SkGpuDevice.cpp-193-
chromium-84.0.4147.105/third_party/skia/src/gpu/SkGpuDevice.cpp:194:    return fRenderTargetContext->writePixels(pm.info(), pm.addr(), pm.rowBytes(), {x, y});
chromium-84.0.4147.105/third_party/skia/src/gpu/SkGpuDevice.cpp-195-}
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/mtl/GrMtlGpu.mm-767-        SkRectMemcpy(dst + individualMipOffsets[level], trimRB,
chromium-84.0.4147.105/third_party/skia/src/gpu/mtl/GrMtlGpu.mm:768:                     srcData[level].addr(), srcData[level].rowBytes(),
chromium-84.0.4147.105/third_party/skia/src/gpu/mtl/GrMtlGpu.mm-769-                     trimRB, srcData[level].height());
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/GrMemoryPool.h-27-#ifdef SK_FORCE_8_BYTE_ALIGNMENT
chromium-84.0.4147.105/third_party/skia/src/gpu/GrMemoryPool.h:28:    // This is an issue for WASM builds using emscripten, which had
chromium-84.0.4147.105/third_party/skia/src/gpu/GrMemoryPool.h-29-    // std::max_align_t = 16, but was returning pointers only aligned to 8
##############################################
chromium-84.0.4147.105/third_party/skia/src/gpu/vk/GrVkGpu.cpp-1546-        SkRectMemcpy(mapPtr + individualMipOffsets[level], trimRB,
chromium-84.0.4147.105/third_party/skia/src/gpu/vk/GrVkGpu.cpp:1547:                     srcData[level].addr(), srcData[level].rowBytes(),
chromium-84.0.4147.105/third_party/skia/src/gpu/vk/GrVkGpu.cpp-1548-                     trimRB, srcData[level].height());
##############################################
chromium-84.0.4147.105/third_party/skia/src/codec/SkAndroidCodec.cpp-394-    auto decode = [this, options, &result](const SkPixmap& pm) {
chromium-84.0.4147.105/third_party/skia/src/codec/SkAndroidCodec.cpp:395:        result = this->onGetAndroidPixels(pm.info(), pm.writable_addr(), pm.rowBytes(), *options);
chromium-84.0.4147.105/third_party/skia/src/codec/SkAndroidCodec.cpp-396-        return acceptable_result(result);
##############################################
chromium-84.0.4147.105/third_party/skia/src/codec/SkWebpCodec.cpp-487-
chromium-84.0.4147.105/third_party/skia/src/codec/SkWebpCodec.cpp:488:    config.output.u.RGBA.rgba = reinterpret_cast<uint8_t*>(webpDst.getAddr(dstX, dstY));
chromium-84.0.4147.105/third_party/skia/src/codec/SkWebpCodec.cpp-489-    config.output.u.RGBA.stride = static_cast<int>(webpDst.rowBytes());
##############################################
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h-239-
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h:240:        auto row0 = (const uint32_t*)((const uint8_t*)s.fPixmap.addr() + y0 * s.fPixmap.rowBytes()),
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h:241:             row1 = (const uint32_t*)((const uint8_t*)s.fPixmap.addr() + y1 * s.fPixmap.rowBytes());
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h-242-
##############################################
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h-322-
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h:323:        auto row0 = (const uint32_t*)( (const char*)s.fPixmap.addr() + y0 * s.fPixmap.rowBytes() ),
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h:324:             row1 = (const uint32_t*)( (const char*)s.fPixmap.addr() + y1 * s.fPixmap.rowBytes() );
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h-325-
##############################################
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h-484-
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h:485:        auto row0 = (const uint32_t*)( (const char*)s.fPixmap.addr() + y0 * s.fPixmap.rowBytes() ),
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h:486:             row1 = (const uint32_t*)( (const char*)s.fPixmap.addr() + y1 * s.fPixmap.rowBytes() );
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h-487-
##############################################
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h-510-
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h:511:        auto src = (const char*)s.fPixmap.addr();
chromium-84.0.4147.105/third_party/skia/src/opts/SkBitmapProcState_opts.h-512-        size_t rb = s.fPixmap.rowBytes();
##############################################
chromium-84.0.4147.105/third_party/skia/src/utils/SkAnimCodecPlayer.cpp-61-        if (requiredImage && requiredImage->peekPixels(&requiredPM)) {
chromium-84.0.4147.105/third_party/skia/src/utils/SkAnimCodecPlayer.cpp:62:            sk_careful_memcpy(data->writable_data(), requiredPM.addr(), size);
chromium-84.0.4147.105/third_party/skia/src/utils/SkAnimCodecPlayer.cpp-63-            opts.fPriorFrame = requiredFrame;
##############################################
chromium-84.0.4147.105/third_party/skia/src/utils/SkCanvasStateUtils.cpp-207-        layerState->raster.rowBytes = pmap.rowBytes();
chromium-84.0.4147.105/third_party/skia/src/utils/SkCanvasStateUtils.cpp:208:        layerState->raster.pixels = pmap.writable_addr();
chromium-84.0.4147.105/third_party/skia/src/utils/SkCanvasStateUtils.cpp-209-
##############################################
chromium-84.0.4147.105/third_party/skia/src/utils/mac/SkCreateCGImageRef.cpp-168-
chromium-84.0.4147.105/third_party/skia/src/utils/mac/SkCreateCGImageRef.cpp:169:    size_t rb = pmap.addr() ? pmap.rowBytes() : 0;
chromium-84.0.4147.105/third_party/skia/src/utils/mac/SkCreateCGImageRef.cpp-170-    SkUniqueCFRef<CGColorSpaceRef> cs(CGColorSpaceCreateDeviceRGB());
chromium-84.0.4147.105/third_party/skia/src/utils/mac/SkCreateCGImageRef.cpp:171:    CGContextRef cg = CGBitmapContextCreate(pmap.writable_addr(), pmap.width(), pmap.height(),
chromium-84.0.4147.105/third_party/skia/src/utils/mac/SkCreateCGImageRef.cpp-172-                                            bitsPerComponent, rb, cs.get(), cg_bitmap_info);
##############################################
chromium-84.0.4147.105/third_party/skia/src/shaders/SkImageShader.cpp-373-    auto gather = alloc->make<SkRasterPipeline_GatherCtx>();
chromium-84.0.4147.105/third_party/skia/src/shaders/SkImageShader.cpp:374:    gather->pixels = pm.addr();
chromium-84.0.4147.105/third_party/skia/src/shaders/SkImageShader.cpp-375-    gather->stride = pm.rowBytesAsPixels();
##############################################
chromium-84.0.4147.105/third_party/skia/src/shaders/SkImageShader.cpp-716-
chromium-84.0.4147.105/third_party/skia/src/shaders/SkImageShader.cpp:717:        // Load pixels from pm.addr()[(int)sx + (int)sy*stride].
chromium-84.0.4147.105/third_party/skia/src/shaders/SkImageShader.cpp:718:        skvm::Uniform img = uniforms->pushPtr(pm.addr());
chromium-84.0.4147.105/third_party/skia/src/shaders/SkImageShader.cpp-719-        skvm::I32 index = trunc(clamped_x) +
##############################################
chromium-84.0.4147.105/third_party/skia/src/shaders/SkBitmapProcShader.cpp-68-
chromium-84.0.4147.105/third_party/skia/src/shaders/SkBitmapProcShader.cpp:69:        SkASSERT(state.fPixmap.addr());
chromium-84.0.4147.105/third_party/skia/src/shaders/SkBitmapProcShader.cpp-70-
##############################################
chromium-84.0.4147.105/third_party/skia/src/lazy/SkDiscardableMemoryPool.cpp-165-std::unique_ptr<SkDiscardableMemory> DiscardableMemoryPool::make(size_t bytes) {
chromium-84.0.4147.105/third_party/skia/src/lazy/SkDiscardableMemoryPool.cpp:166:    SkAutoFree addr(sk_malloc_canfail(bytes));
chromium-84.0.4147.105/third_party/skia/src/lazy/SkDiscardableMemoryPool.cpp-167-    if (nullptr == addr) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkAAClip.cpp-2125-
chromium-84.0.4147.105/third_party/skia/src/core/SkAAClip.cpp:2126:    const void* src = mask->getAddr(clip.fLeft, clip.fTop);
chromium-84.0.4147.105/third_party/skia/src/core/SkAAClip.cpp-2127-    const size_t srcRB = mask->fRowBytes;
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitBWMaskTemplate.h-40-    const uint8_t* bits = srcMask.getAddr1(cx, cy);
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitBWMaskTemplate.h:41:    SK_BLITBWMASK_DEVTYPE* device = dst.SK_BLITBWMASK_GETADDR(cx, cy);
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitBWMaskTemplate.h-42-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkMipMap.cpp-634-        const SkPixmap& dstPM = levels[i].fPixmap;
chromium-84.0.4147.105/third_party/skia/src/core/SkMipMap.cpp:635:        const void* srcBasePtr = srcPM.addr();
chromium-84.0.4147.105/third_party/skia/src/core/SkMipMap.cpp:636:        void* dstBasePtr = dstPM.writable_addr();
chromium-84.0.4147.105/third_party/skia/src/core/SkMipMap.cpp-637-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-83-
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:84:// This is the same as SkPixmap::addr(x,y), but this version gets inlined, while the public
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-85-// method does not. Perhaps we could bloat it so it can be inlined, but that would grow code-size
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-86-// everywhere, instead of just here (on behalf of getAlphaf()).
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:87:static const void* fast_getaddr(const SkPixmap& pm, int x, int y) {
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-88-    x <<= SkColorTypeShiftPerPixel(pm.colorType());
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:89:    return static_cast<const char*>(pm.addr()) + y * pm.rowBytes() + x;
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-90-}
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-92-float SkPixmap::getAlphaf(int x, int y) const {
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:93:    SkASSERT(this->addr());
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-94-    SkASSERT((unsigned)x < (unsigned)this->width());
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-97-    float value = 0;
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:98:    const void* srcPtr = fast_getaddr(*this, x, y);
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-99-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-167-
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:168:    const void* srcPixels = this->addr(rec.fX, rec.fY);
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-169-    const SkImageInfo srcInfo = fInfo.makeDimensions(rec.fInfo.dimensions());
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-221-        dst.alphaType() == kUnpremul_SkAlphaType) {
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:222:        src.reset(src.info().makeAlphaType(kPremul_SkAlphaType), src.addr(), src.rowBytes());
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:223:        dst.reset(dst.info().makeAlphaType(kOpaque_SkAlphaType), dst.addr(), dst.rowBytes());
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-224-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-248-    sk_sp<SkSurface> surface = SkSurface::MakeRasterDirect(dst.info(),
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:249:                                                           dst.writable_addr(),
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-250-                                                           dst.rowBytes());
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-265-SkColor SkPixmap::getColor(int x, int y) const {
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:266:    SkASSERT(this->addr());
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-267-    SkASSERT((unsigned)x < (unsigned)this->width());
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-501-        case kRGBA_F16_SkColorType: {
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:502:            const SkHalf* row = (const SkHalf*)this->addr();
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-503-            for (int y = 0; y < height; ++y) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-513-        case kRGBA_F32_SkColorType: {
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:514:            const float* row = (const float*)this->addr();
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-515-            for (int y = 0; y < height; ++y) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-561-static bool draw_orientation(const SkPixmap& dst, const SkPixmap& src, SkEncodedOrigin origin) {
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:562:    auto surf = SkSurface::MakeRasterDirect(dst.info(), dst.writable_addr(), dst.rowBytes());
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-563-    if (!surf) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-598-    // check for aliasing to self
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp:599:    if (src.addr() == dst.addr()) {
chromium-84.0.4147.105/third_party/skia/src/core/SkPixmap.cpp-600-        return kTopLeft_SkEncodedOrigin == origin;
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkWritePixelsRec.h-26-    SkWritePixelsRec(const SkPixmap& pm, int x, int y)
chromium-84.0.4147.105/third_party/skia/src/core/SkWritePixelsRec.h:27:        : fPixels(pm.addr())
chromium-84.0.4147.105/third_party/skia/src/core/SkWritePixelsRec.h-28-        , fRowBytes(pm.rowBytes())
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkScalerContext.cpp-509-    }
chromium-84.0.4147.105/third_party/skia/src/core/SkScalerContext.cpp:510:    sk_bzero(dst.writable_addr(), dst.computeByteSize());
chromium-84.0.4147.105/third_party/skia/src/core/SkScalerContext.cpp-511-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkSpecialImage.cpp-449-
chromium-84.0.4147.105/third_party/skia/src/core/SkSpecialImage.cpp:450:        if (!sContext->readPixels(info, pmap.writable_addr(), pmap.rowBytes(),
chromium-84.0.4147.105/third_party/skia/src/core/SkSpecialImage.cpp-451-                                  {this->subset().left(), this->subset().top()})) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp-83-
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp:84:        char* dst = (char*)fDst.writable_addr(x, y);
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp:85:        const char* src = (const char*)fSource.addr(x - fLeft, y - fTop);
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp-86-        const size_t dstRB = fDst.rowBytes();
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp-149-
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp:150:        // We really want fSrcPtr.pixels = fSource.addr(-fLeft, -fTop) here, but that asserts.
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp:151:        // Instead we ask for addr(-fLeft+x, -fTop+y), then back up (x,y) manually.
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp-152-        // Representing bpp as a size_t keeps all this math in size_t instead of int,
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp-154-        size_t bpp = fSource.info().bytesPerPixel();
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp:155:        fSrcPtr.pixels = (char*)fSource.addr(-fLeft+x, -fTop+y) - bpp * x
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_Sprite.cpp-156-                                                                - bpp * y * fSrcPtr.stride;
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapProcState.cpp-88-
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapProcState.cpp:89:    auto row = (const SkPMColor*)( (const char*)s.fPixmap.addr() + y * s.fPixmap.rowBytes() );
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapProcState.cpp-90-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapProcState.cpp-127-
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapProcState.cpp:128:    auto src = (const char*)s.fPixmap.addr();
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapProcState.cpp-129-    size_t rb = s.fPixmap.rowBytes();
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapProcState.cpp-205-    SkASSERT(fFilterQuality <= kLow_SkFilterQuality);
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapProcState.cpp:206:    SkASSERT(fPixmap.addr());
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapProcState.cpp-207-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkMask.cpp-104-
chromium-84.0.4147.105/third_party/skia/src/core/SkMask.cpp:105:void* SkMask::getAddr(int x, int y) const {
chromium-84.0.4147.105/third_party/skia/src/core/SkMask.cpp-106-    SkASSERT(kBW_Format != fFormat);
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp-665-            this->updateUniforms(x+w, y);
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp:666:            fBlitH.eval(w, fUniforms.buf.data(), fDevice.addr(x,y));
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp-667-        }
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp-674-                this->updateUniforms(x+run, y);
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp:675:                fBlitAntiH.eval(run, fUniforms.buf.data(), fDevice.addr(x,y), cov);
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp-676-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp-718-                        w = clip.width();
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp:719:                    void* dptr =        fDevice.writable_addr(x,y);
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp:720:                    auto  mptr = (const uint8_t*)mask.getAddr(x,y);
chromium-84.0.4147.105/third_party/skia/src/core/SkVMBlitter.cpp-721-                    this->updateUniforms(x+w,y);
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkCanvas.cpp-656-    SkBaseDevice* device = this->getDevice();
chromium-84.0.4147.105/third_party/skia/src/core/SkCanvas.cpp:657:    return device && pm.addr() && device->readPixels(pm, x, y);
chromium-84.0.4147.105/third_party/skia/src/core/SkCanvas.cpp-658-}
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkCanvas.cpp-671-    if (bitmap.peekPixels(&pm)) {
chromium-84.0.4147.105/third_party/skia/src/core/SkCanvas.cpp:672:        return this->writePixels(pm.info(), pm.addr(), pm.rowBytes(), x, y);
chromium-84.0.4147.105/third_party/skia/src/core/SkCanvas.cpp-673-    }
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkCanvas.cpp-1388-    }
chromium-84.0.4147.105/third_party/skia/src/core/SkCanvas.cpp:1389:    return pmap.writable_addr();
chromium-84.0.4147.105/third_party/skia/src/core/SkCanvas.cpp-1390-}
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkMask.h-120-     */
chromium-84.0.4147.105/third_party/skia/src/core/SkMask.h:121:    void* getAddr(int x, int y) const;
chromium-84.0.4147.105/third_party/skia/src/core/SkMask.h-122-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapController.cpp-25-
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapController.cpp:26:    return state->pixmap().addr() ? state : nullptr;
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapController.cpp-27-}
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapController.cpp-102-
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapController.cpp:103:    // fResultBitmap.getPixels() may be null, but our caller knows to check fPixmap.addr()
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmapController.cpp-104-    // and will destroy us if it is nullptr.
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkRasterPipelineBlitter.cpp-263-            case 0: blitter->fMemset2D = [](SkPixmap* dst, int x,int y, int w,int h, uint64_t c) {
chromium-84.0.4147.105/third_party/skia/src/core/SkRasterPipelineBlitter.cpp:264:                void* p = dst->writable_addr(x,y);
chromium-84.0.4147.105/third_party/skia/src/core/SkRasterPipelineBlitter.cpp-265-                while (h --> 0) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkRasterPipelineBlitter.cpp-287-    blitter->fDstPtr = SkRasterPipeline_MemoryCtx{
chromium-84.0.4147.105/third_party/skia/src/core/SkRasterPipelineBlitter.cpp:288:        blitter->fDst.writable_addr(),
chromium-84.0.4147.105/third_party/skia/src/core/SkRasterPipelineBlitter.cpp-289-        blitter->fDst.rowBytesAsPixels(),
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-150-        auto newInfo = fPixmap.info().makeAlphaType(newAlphaType);
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp:151:        fPixmap.reset(std::move(newInfo), fPixmap.addr(), fPixmap.rowBytes());
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-152-    }
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-157-SkIPoint SkBitmap::pixelRefOrigin() const {
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp:158:    const char* addr = (const char*)fPixmap.addr();
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-159-    const char* pix = (const char*)(fPixelRef ? fPixelRef->pixels() : nullptr);
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-322-bool SkBitmap::installPixels(const SkPixmap& pixmap) {
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp:323:    return this->installPixels(pixmap.info(), pixmap.writable_addr(), pixmap.rowBytes(),
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-324-                               nullptr, nullptr);
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-395-
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp:396:void* SkBitmap::getAddr(int x, int y) const {
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-397-    SkASSERT((unsigned)x < (unsigned)this->width());
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-480-bool SkBitmap::readPixels(const SkPixmap& dst, int srcX, int srcY) const {
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp:481:    return this->readPixels(dst.info(), dst.writable_addr(), dst.rowBytes(), srcX, srcY);
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-482-}
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-488-
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp:489:    SkWritePixelsRec rec(src.info(), src.addr(), src.rowBytes(), dstX, dstY);
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-490-    if (!rec.trim(this->width(), this->height())) {
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-493-
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp:494:    void* dstPixels = this->getAddr(rec.fX, rec.fY);
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-495-    const SkImageInfo dstInfo = this->info().makeDimensions(rec.fInfo.dimensions());
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-515-    SkConvertPixels(SkImageInfo::MakeA8(pmap.width(), pmap.height()), alpha, alphaRowBytes,
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp:516:                    pmap.info(), pmap.addr(), pmap.rowBytes());
chromium-84.0.4147.105/third_party/skia/src/core/SkBitmap.cpp-517-    return true;
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_ARGB32.cpp-613-        SkOpts::blit_mask_d32_a8(device.writable_addr32(x,y), device.rowBytes(),
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_ARGB32.cpp:614:                                 (const SkAlpha*)mask.getAddr(x,y), mask.fRowBytes,
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_ARGB32.cpp-615-                                 color, clip.width(), clip.height());
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_ARGB32.cpp-620-        auto dstRow  = device.writable_addr32(x,y);
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_ARGB32.cpp:621:        auto maskRow = (const uint16_t*)mask.getAddr(x,y);
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_ARGB32.cpp-622-
##############################################
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_ARGB32.cpp-1316-    const size_t dstRB = fDevice.rowBytes();
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_ARGB32.cpp:1317:    const uint8_t* maskRow = (const uint8_t*)mask.getAddr(x, y);
chromium-84.0.4147.105/third_party/skia/src/core/SkBlitter_ARGB32.cpp-1318-    const size_t maskRB = mask.fRowBytes;
##############################################
chromium-84.0.4147.105/third_party/skia/dm/DMSrcSink.cpp-339-    for (int y = 0; y < bitmap.height(); y++) {
chromium-84.0.4147.105/third_party/skia/dm/DMSrcSink.cpp:340:        uint32_t* row = (uint32_t*) bitmap.getAddr(0, y);
chromium-84.0.4147.105/third_party/skia/dm/DMSrcSink.cpp-341-        SkOpts::RGBA_to_BGRA(row, row, bitmap.width());
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr.cpp-10-    SkPixmap pixmap(SkImageInfo::MakeN32(w, h, kPremul_SkAlphaType), storage, w * 4);
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr.cpp:11:    SkDebugf("pixmap.writable_addr() %c= (void *)storage\n",
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr.cpp:12:              pixmap.writable_addr()  == (void *)storage ? '=' : '!');
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr.cpp-13-    pixmap.erase(0x00000000);
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr.cpp:14:    *(SkPMColor*)pixmap.writable_addr() = 0xFFFFFFFF;
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr.cpp-15-    SkDebugf("pixmap.getColor(0, 1) %c= 0x00000000\n",
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr_2.cpp-11-    SkPixmap pixmap(SkImageInfo::MakeN32(w, h, kPremul_SkAlphaType), &storage.front(), w * 4);
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr_2.cpp:12:    SkDebugf("pixmap.addr(1, 2) %c= &storage[1 + 2 * w]\n",
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr_2.cpp:13:              pixmap.addr(1, 2)  == &storage[1 + 2 * w] ? '=' : '!');
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr_2.cpp-14-}
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_pixmap.cpp-15-    const SkPixmap& pixmap = bitmap.pixmap();
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_pixmap.cpp:16:    if (pixmap.addr()) {
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_pixmap.cpp-17-        SkPMColor pmWhite = *pixmap.addr32(0, 0);
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_getAddr.cpp-6-void draw(SkCanvas* canvas) {
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_getAddr.cpp:7:    char* row0 = (char* ) source.getAddr(0, 0);
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_getAddr.cpp:8:    char* row1 = (char* ) source.getAddr(0, 1);
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_getAddr.cpp-9-    SkDebugf("addr interval %c= rowBytes\n",
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/SkImage_to_PPM_ascii.cpp-20-sk_sp<SkData> Encode_PPM_A(const SkPixmap& src) {
chromium-84.0.4147.105/third_party/skia/docs/examples/SkImage_to_PPM_ascii.cpp:21:    if (src.width() <= 0 || src.height() <= 0 || !src.addr() ||
chromium-84.0.4147.105/third_party/skia/docs/examples/SkImage_to_PPM_ascii.cpp-22-        src.colorType() == kUnknown_SkColorType) {
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_pixelRef.cpp-10-    SkDebugf("src pixels %c= sub pixels\n", source.getPixels() == subset.getPixels() ? '=' : '!');
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_pixelRef.cpp:11:    SkDebugf("src addr %c= sub addr\n", source.getAddr(32, 64) == subset.getAddr(0, 0) ? '=' : '!');
chromium-84.0.4147.105/third_party/skia/docs/examples/Bitmap_pixelRef.cpp-12-}
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/ImageInfo_MakeS32.cpp-25-    noColorSpaceBitmap.setInfo(SkImageInfo::MakeN32(width, height, kPremul_SkAlphaType));
chromium-84.0.4147.105/third_party/skia/docs/examples/ImageInfo_MakeS32.cpp:26:    noColorSpaceBitmap.setPixels(bitmap.getAddr(0, 0));
chromium-84.0.4147.105/third_party/skia/docs/examples/ImageInfo_MakeS32.cpp-27-    canvas->drawBitmap(noColorSpaceBitmap, 0, 96);
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/SkImage_to_PPM_binary.cpp-20-sk_sp<SkData> Encode_PPM_B(const SkPixmap& src) {
chromium-84.0.4147.105/third_party/skia/docs/examples/SkImage_to_PPM_binary.cpp:21:    if (src.width() <= 0 || src.height() <= 0 || !src.addr() ||
chromium-84.0.4147.105/third_party/skia/docs/examples/SkImage_to_PPM_binary.cpp-22-        src.colorType() == kUnknown_SkColorType) {
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr.cpp-11-    image->readPixels(pixmap, 0, 0);
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr.cpp:12:    SkDebugf("pixels address: 0x%llx\n", pixmap.addr());
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr.cpp-13-    SkPixmap inset;
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr.cpp-14-    if (pixmap.extractSubset(&inset, {128, 128, 512, 512})) {
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr.cpp:15:         SkDebugf("inset address:  0x%llx\n", inset.addr());
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_addr.cpp-16-    }
##############################################
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr_2.cpp-10-    SkPixmap pixmap(SkImageInfo::MakeN32(w, h, kPremul_SkAlphaType), storage, w * 4);
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr_2.cpp:11:    SkDebugf("pixmap.writable_addr() %c= (void *)storage\n",
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr_2.cpp:12:              pixmap.writable_addr()  == (void *)storage ? '=' : '!');
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr_2.cpp-13-    pixmap.erase(0x00000000);
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr_2.cpp:14:    *(SkPMColor*)pixmap.writable_addr(1, 2) = 0xFFFFFFFF;
chromium-84.0.4147.105/third_party/skia/docs/examples/Pixmap_writable_addr_2.cpp-15-    SkDebugf("pixmap.getColor(0, 0) %c= 0x00000000\n",
##############################################
chromium-84.0.4147.105/third_party/skia/samplecode/SampleShadowUtils.cpp-236-        // Show where the light is in x,y as a circle (specified in device space).
chromium-84.0.4147.105/third_party/skia/samplecode/SampleShadowUtils.cpp:237:        SkMatrix invCanvasM = canvas->getTotalMatrix();
chromium-84.0.4147.105/third_party/skia/samplecode/SampleShadowUtils.cpp-238-        if (invCanvasM.invert(&invCanvasM)) {
##############################################
chromium-84.0.4147.105/third_party/skia/go.sum-361-github.com/gopherjs/gopherjs v0.0.0-20190915194858-d3ddacdb130f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
chromium-84.0.4147.105/third_party/skia/go.sum:362:github.com/gopherjs/gopherwasm v1.0.0/go.mod h1:SkZ8z7CWBz5VXbhJel8TxCmAcsQqzgWGR/8nMhyhZSI=
chromium-84.0.4147.105/third_party/skia/go.sum-363-github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
##############################################
chromium-84.0.4147.105/third_party/skia/gm/mac_aa_explorer.cpp-66-    }
chromium-84.0.4147.105/third_party/skia/gm/mac_aa_explorer.cpp:67:    auto ctx = CGBitmapContextCreate(pm.writable_addr(), pm.width(), pm.height(), 8, pm.rowBytes(),
chromium-84.0.4147.105/third_party/skia/gm/mac_aa_explorer.cpp-68-                                     cs, info);
##############################################
chromium-84.0.4147.105/third_party/skia/gm/p3.cpp-76-    SkColor4f pixel;
chromium-84.0.4147.105/third_party/skia/gm/p3.cpp:77:    memcpy(&pixel, bm.getAddr(0,0), sizeof(pixel));
chromium-84.0.4147.105/third_party/skia/gm/p3.cpp-78-
##############################################
chromium-84.0.4147.105/third_party/skia/gm/rasterhandleallocator.cpp-72-        rec->fReleaseCtx = surface.release();
chromium-84.0.4147.105/third_party/skia/gm/rasterhandleallocator.cpp:73:        rec->fPixels = pixmap.writable_addr();
chromium-84.0.4147.105/third_party/skia/gm/rasterhandleallocator.cpp-74-        rec->fRowBytes = pixmap.rowBytes();
##############################################
chromium-84.0.4147.105/third_party/skia/gm/unpremul.cpp-34-        SkColor pixel;
chromium-84.0.4147.105/third_party/skia/gm/unpremul.cpp:35:        memcpy(&pixel, bm.getAddr(0,0), sizeof(pixel));
chromium-84.0.4147.105/third_party/skia/gm/unpremul.cpp-36-
##############################################
chromium-84.0.4147.105/third_party/skia/gm/shadowutils.cpp-214-    // Show where the light is in x,y as a circle (specified in device space).
chromium-84.0.4147.105/third_party/skia/gm/shadowutils.cpp:215:    SkMatrix invCanvasM = canvas->getTotalMatrix();
chromium-84.0.4147.105/third_party/skia/gm/shadowutils.cpp-216-    if (invCanvasM.invert(&invCanvasM)) {
##############################################
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-64-
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp:65:    PIXEL_TYPE* scanline = (PIXEL_TYPE*)result->fBitmap.getAddr(0, 0);
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-66-    for (int x = 0; x < width; ++x) {
##############################################
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-68-    }
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp:69:    scanline = (PIXEL_TYPE*)result->fBitmap.getAddr(0, 1);
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-70-    scanline[0] = outerRingColor;
##############################################
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-76-    for (int y = 2; y < height / 2; ++y) {
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp:77:        scanline = (PIXEL_TYPE*)result->fBitmap.getAddr(0, y);
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-78-        scanline[0] = outerRingColor;
##############################################
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-90-    for (int y = height / 2; y < height - 2; ++y) {
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp:91:        scanline = (PIXEL_TYPE*)result->fBitmap.getAddr(0, y);
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-92-        scanline[0] = outerRingColor;
##############################################
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-103-
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp:104:    scanline = (PIXEL_TYPE*)result->fBitmap.getAddr(0, height - 2);
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-105-    scanline[0] = outerRingColor;
##############################################
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-110-
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp:111:    scanline = (PIXEL_TYPE*)result->fBitmap.getAddr(0, height - 1);
chromium-84.0.4147.105/third_party/skia/gm/bleed.cpp-112-    for (int x = 0; x < width; ++x) {
##############################################
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp-556-
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp:557:    SkColor4f* dst = (SkColor4f *) planes->fFull.getAddr(0, 0);
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp-558-    for (int y = 0; y < bm.height(); ++y) {
##############################################
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp-579-
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp:580:    dst = (SkColor4f *) planes->fQuarter.getAddr(0, 0);
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp-581-    for (int y = 0; y < bm.height()/2; ++y) {
##############################################
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp-658-        for (int x = 0; x < src.width(); ++x) {
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp:659:            const float* srcPixel = (const float*) src.getAddr(x, y);
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp:660:            uint16_t* dstPixel = (uint16_t*) result.getAddr(x, y);
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp-661-
##############################################
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp-1579-static void draw_into_alpha(const SkImage* img, sk_sp<SkColorFilter> cf, const SkPixmap& dst) {
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp:1580:    auto canvas = SkCanvas::MakeRasterDirect(dst.info(), dst.writable_addr(), dst.rowBytes());
chromium-84.0.4147.105/third_party/skia/gm/wacky_yuv_formats.cpp-1581-    canvas->scale(1.0f * dst.width() / img->width(), 1.0f * dst.height() / img->height());
##############################################
chromium-84.0.4147.105/third_party/skia/bench/CTConvertBench.cpp-35-    void onPreDraw(SkCanvas*) override {
chromium-84.0.4147.105/third_party/skia/bench/CTConvertBench.cpp:36:        if (fSrc.addr()) return;
chromium-84.0.4147.105/third_party/skia/bench/CTConvertBench.cpp-37-
##############################################
chromium-84.0.4147.105/third_party/skia/bench/CTConvertBench.cpp-44-            fSrcBM.installPixels(fSrc);
chromium-84.0.4147.105/third_party/skia/bench/CTConvertBench.cpp:45:            fDstSurf = SkSurface::MakeRasterDirect(fDst.info(), fDst.writable_addr(),
chromium-84.0.4147.105/third_party/skia/bench/CTConvertBench.cpp-46-                                                   fDst.info().minRowBytes());
##############################################
chromium-84.0.4147.105/third_party/skia/public.bzl-377-
chromium-84.0.4147.105/third_party/skia/public.bzl:378:GL_SRCS_WASM = struct(
chromium-84.0.4147.105/third_party/skia/public.bzl-379-    include = [
##############################################
chromium-84.0.4147.105/third_party/skia/public.bzl-384-)
chromium-84.0.4147.105/third_party/skia/public.bzl:385:PORTS_SRCS_WASM = struct(
chromium-84.0.4147.105/third_party/skia/public.bzl-386-    include = [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/wasm-common/README.md-1-This directory contains docker images that will be run on swarming to
chromium-84.0.4147.105/third_party/skia/infra/wasm-common/README.md:2:build/test/perf WASM code.
chromium-84.0.4147.105/third_party/skia/infra/wasm-common/README.md-3-
##############################################
chromium-84.0.4147.105/third_party/skia/infra/wasm-common/perf/wasm_perf_aggregator.go-45-	builder          = flag.String("builder", "", "Builder, like 'Test-Debian9-EMCC-GCE-CPU-AVX2-wasm-Debug-All-PathKit'")
chromium-84.0.4147.105/third_party/skia/infra/wasm-common/perf/wasm_perf_aggregator.go:46:	compiledLanguage = flag.String("compiled_language", "wasm", "wasm or asm.js")
chromium-84.0.4147.105/third_party/skia/infra/wasm-common/perf/wasm_perf_aggregator.go-47-	config           = flag.String("config", "Release", "Configuration (e.g. Debug/Release) key")
##############################################
chromium-84.0.4147.105/third_party/skia/infra/wasm-common/gold/wasm_gold_aggregator.go-42-	builder          = flag.String("builder", "", "Builder, like 'Test-Debian9-EMCC-GCE-CPU-AVX2-wasm-Debug-All-PathKit'")
chromium-84.0.4147.105/third_party/skia/infra/wasm-common/gold/wasm_gold_aggregator.go:43:	compiledLanguage = flag.String("compiled_language", "wasm", "wasm or asm.js")
chromium-84.0.4147.105/third_party/skia/infra/wasm-common/gold/wasm_gold_aggregator.go-44-	config           = flag.String("config", "Release", "Configuration (e.g. Debug/Release) key")
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-asmjs-Debug-PathKit.json-46-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-asmjs-Debug-PathKit.json:47:    "name": "copy wasm output",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-asmjs-Debug-PathKit.json-48-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-asmjs-Release-PathKit.json-45-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-asmjs-Release-PathKit.json:46:    "name": "copy wasm output",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-asmjs-Release-PathKit.json-47-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU.json-45-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU.json:46:    "name": "copy wasm output",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Release-CanvasKit_CPU.json-47-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Debug-PathKit.json-45-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Debug-PathKit.json:46:    "name": "copy wasm output",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Debug-PathKit.json-47-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Release-PathKit.json-44-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Release-PathKit.json:45:    "name": "copy wasm output",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Release-PathKit.json-46-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Debug-CanvasKit.json-45-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Debug-CanvasKit.json:46:    "name": "copy wasm output",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/examples/full.expected/Build-Debian10-EMCC-wasm-Debug-CanvasKit.json-47-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/pathkit.py-27-  # toolchain changes.
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/pathkit.py:28:  # Of note, the wasm build doesn't re-use any intermediate steps from the
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/pathkit.py-29-  # previous builds, so it's essentially a build from scratch every time.
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/pathkit.py-60-  api.python.inline(
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/pathkit.py:61:      name='copy wasm output',
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/pathkit.py-62-      program='''import errno
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/canvaskit.py-28-  # toolchain changes.
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/canvaskit.py:29:  # Of note, the wasm build doesn't re-use any intermediate steps from the
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/canvaskit.py-30-  # previous builds, so it's essentially a build from scratch every time.
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/canvaskit.py-62-  api.python.inline(
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/canvaskit.py:63:      name='copy wasm output',
chromium-84.0.4147.105/third_party/skia/infra/bots/recipe_modules/build/canvaskit.py-64-      program='''import errno
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_canvaskit.expected/pathkit_trybot.json-129-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_canvaskit.expected/pathkit_trybot.json:130:    "name": "Docker setup.cp [START_DIR]/build/canvaskit.wasm [START_DIR]/skia/modules/canvaskit/canvaskit/bin/canvaskit.wasm",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_canvaskit.expected/pathkit_trybot.json-131-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_canvaskit.expected/Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit.json-129-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_canvaskit.expected/Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit.json:130:    "name": "Docker setup.cp [START_DIR]/build/canvaskit.wasm [START_DIR]/skia/modules/canvaskit/canvaskit/bin/canvaskit.wasm",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_canvaskit.expected/Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-CanvasKit.json-131-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_canvaskit.expected/canvaskit_trybot.json-144-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_canvaskit.expected/canvaskit_trybot.json:145:    "name": "Docker setup.cp [START_DIR]/build/canvaskit.wasm [START_DIR]/skia/modules/canvaskit/canvaskit/bin/canvaskit.wasm",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_canvaskit.expected/canvaskit_trybot.json-146-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_canvaskit.expected/Test-Debian10-EMCC-GCE-GPU-WEBGL1-wasm-Debug-All-CanvasKit.json-144-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_canvaskit.expected/Test-Debian10-EMCC-GCE-GPU-WEBGL1-wasm-Debug-All-CanvasKit.json:145:    "name": "Docker setup.cp [START_DIR]/build/canvaskit.wasm [START_DIR]/skia/modules/canvaskit/canvaskit/bin/canvaskit.wasm",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_canvaskit.expected/Test-Debian10-EMCC-GCE-GPU-WEBGL1-wasm-Debug-All-CanvasKit.json-146-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.py-35-    files = api.file.glob_paths(
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.py:36:        'find WASM binaries',
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.py-37-        bin_dir,
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.py-266-
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.py:267:sample_wasm = """
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.py-268-#$%^&*
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_pathkit.expected/Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit.json-144-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_pathkit.expected/Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit.json:145:    "name": "Docker setup.cp [START_DIR]/build/pathkit.wasm [START_DIR]/skia/modules/pathkit/npm-wasm/bin/pathkit.wasm",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_pathkit.expected/Perf-Debian10-EMCC-GCE-CPU-AVX2-wasm-Release-All-PathKit.json-146-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_pathkit.expected/pathkit_trybot.json-144-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_pathkit.expected/pathkit_trybot.json:145:    "name": "Docker setup.cp [START_DIR]/build/pathkit.wasm [START_DIR]/skia/modules/pathkit/npm-wasm/bin/pathkit.wasm",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_pathkit.expected/pathkit_trybot.json-146-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_skottiewasm_lottieweb.py-4-
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_skottiewasm_lottieweb.py:5:# Recipe which runs Skottie-WASM and Lottie-Web perf.
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/perf_skottiewasm_lottieweb.py-6-
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.expected/normal_bot.json-148-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.expected/normal_bot.json:149:    "name": "find WASM binaries",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.expected/normal_bot.json-150-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.expected/trybot.json-193-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.expected/trybot.json:194:    "name": "find WASM binaries",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/compute_buildstats.expected/trybot.json-195-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_pathkit.expected/Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Debug-All-PathKit.json-129-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_pathkit.expected/Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Debug-All-PathKit.json:130:    "name": "Docker setup.cp [START_DIR]/build/pathkit.wasm [START_DIR]/skia/modules/pathkit/npm-wasm/bin/test/pathkit.wasm",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_pathkit.expected/Test-Debian10-EMCC-GCE-CPU-AVX2-wasm-Debug-All-PathKit.json-131-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_pathkit.expected/pathkit_trybot.json-129-    "infra_step": true,
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_pathkit.expected/pathkit_trybot.json:130:    "name": "Docker setup.cp [START_DIR]/build/pathkit.wasm [START_DIR]/skia/modules/pathkit/npm-wasm/bin/test/pathkit.wasm",
chromium-84.0.4147.105/third_party/skia/infra/bots/recipes/test_pathkit.expected/pathkit_trybot.json-131-    "~followup_annotations": [
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go-828-// generated task.
chromium-84.0.4147.105/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go:829:func (b *jobBuilder) createDockerImage(wasm bool) string {
chromium-84.0.4147.105/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go-830-	// First, derive the name of the task.
##############################################
chromium-84.0.4147.105/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go-832-	taskName := "Housekeeper-PerCommit-CreateDockerImage_Skia_Release"
chromium-84.0.4147.105/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go:833:	if wasm {
chromium-84.0.4147.105/third_party/skia/infra/bots/gen_tasks_logic/gen_tasks_logic.go-834-		imageName = "skia-wasm-release"
##############################################
chromium-84.0.4147.105/third_party/skia/infra/lottiecap/docker/lottiecap_gold.sh-17-#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/lottiecap/docker)
chromium-84.0.4147.105/third_party/skia/infra/lottiecap/docker/lottiecap_gold.sh:18:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/infra/lottiecap/docker/lottiecap_gold.sh-19-LOTTIECAP_DIR=$BASE_DIR/../../../tools/lottiecap
##############################################
chromium-84.0.4147.105/third_party/skia/infra/canvaskit/perf_canvaskit.sh-16-#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/pathkit)
chromium-84.0.4147.105/third_party/skia/infra/canvaskit/perf_canvaskit.sh:17:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/infra/canvaskit/perf_canvaskit.sh-18-CANVASKIT_DIR=$BASE_DIR/../../modules/canvaskit
##############################################
chromium-84.0.4147.105/third_party/skia/infra/canvaskit/test_canvaskit.sh-16-#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/canvaskit)
chromium-84.0.4147.105/third_party/skia/infra/canvaskit/test_canvaskit.sh:17:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/infra/canvaskit/test_canvaskit.sh-18-CANVASKIT_DIR=$BASE_DIR/../../modules/canvaskit
##############################################
chromium-84.0.4147.105/third_party/skia/infra/canvaskit/build_canvaskit.sh-21-#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/canvaskit)
chromium-84.0.4147.105/third_party/skia/infra/canvaskit/build_canvaskit.sh:22:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/infra/canvaskit/build_canvaskit.sh-23-CANVASKIT_DIR=$BASE_DIR/../../modules/canvaskit
##############################################
chromium-84.0.4147.105/third_party/skia/infra/pathkit/perf_pathkit.sh-16-#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/pathkit)
chromium-84.0.4147.105/third_party/skia/infra/pathkit/perf_pathkit.sh:17:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/infra/pathkit/perf_pathkit.sh-18-PATHKIT_DIR=$BASE_DIR/../../modules/pathkit
##############################################
chromium-84.0.4147.105/third_party/skia/infra/pathkit/test_pathkit.sh-16-#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/pathkit)
chromium-84.0.4147.105/third_party/skia/infra/pathkit/test_pathkit.sh:17:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/infra/pathkit/test_pathkit.sh-18-PATHKIT_DIR=$BASE_DIR/../../modules/pathkit
##############################################
chromium-84.0.4147.105/third_party/skia/infra/pathkit/build_pathkit.sh-21-#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/pathkit)
chromium-84.0.4147.105/third_party/skia/infra/pathkit/build_pathkit.sh:22:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/infra/pathkit/build_pathkit.sh-23-PATHKIT_DIR=$BASE_DIR/../../modules/pathkit
##############################################
chromium-84.0.4147.105/third_party/skia/infra/cmake/build_skia.sh-17-#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/cmake)
chromium-84.0.4147.105/third_party/skia/infra/cmake/build_skia.sh:18:BASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd`
chromium-84.0.4147.105/third_party/skia/infra/cmake/build_skia.sh:19:SKIA_DIR=`cd ${BASE_DIR}/../.. && pwd`
chromium-84.0.4147.105/third_party/skia/infra/cmake/build_skia.sh-20-
##############################################
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-no-type1/ftoption.h-40-   * - You can put a copy of this file in your build directory, more
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-no-type1/ftoption.h:41:   *   precisely in `$BUILD/freetype/config/ftoption.h`, where `$BUILD` is
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-no-type1/ftoption.h-42-   *   the name of a directory that is included _before_ the FreeType include
##############################################
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-no-type1/ftoption.h-48-   *
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-no-type1/ftoption.h:49:   * - Copy the file <ft2build.h> to `$BUILD/ft2build.h` and modify it
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-no-type1/ftoption.h-50-   *   slightly to pre-define the macro `FT_CONFIG_OPTIONS_H` used to locate
##############################################
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-no-type1/ftoption.h-57-   *
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-no-type1/ftoption.h:58:   *   will use `$BUILD/myftoptions.h` instead of this file for macro
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-no-type1/ftoption.h-59-   *   definitions.
##############################################
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-android/ftoption.h-40-   * - You can put a copy of this file in your build directory, more
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-android/ftoption.h:41:   *   precisely in `$BUILD/freetype/config/ftoption.h`, where `$BUILD` is
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-android/ftoption.h-42-   *   the name of a directory that is included _before_ the FreeType include
##############################################
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-android/ftoption.h-48-   *
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-android/ftoption.h:49:   * - Copy the file <ft2build.h> to `$BUILD/ft2build.h` and modify it
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-android/ftoption.h-50-   *   slightly to pre-define the macro `FT_CONFIG_OPTIONS_H` used to locate
##############################################
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-android/ftoption.h-57-   *
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-android/ftoption.h:58:   *   will use `$BUILD/myftoptions.h` instead of this file for macro
chromium-84.0.4147.105/third_party/skia/third_party/freetype2/include/freetype-android/ftoption.h-59-   *   definitions.
##############################################
chromium-84.0.4147.105/third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h-3876-
chromium-84.0.4147.105/third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h:3877:    vulkanFunctions.vkAllocateMemory = (PFN_vkAllocateMemory)vkGetDeviceProcAddr(m_hDevice, vkAllocateMemory);
chromium-84.0.4147.105/third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h-3878-*/
##############################################
chromium-84.0.4147.105/third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h-15790-        m_VulkanFunctions.memberName = \
chromium-84.0.4147.105/third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h:15791:            (functionPointerType)vkGetInstanceProcAddr(m_hInstance, functionNameString);
chromium-84.0.4147.105/third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h-15792-#define VMA_FETCH_DEVICE_FUNC(memberName, functionPointerType, functionNameString) \
##############################################
chromium-84.0.4147.105/third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h-15794-        m_VulkanFunctions.memberName = \
chromium-84.0.4147.105/third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h:15795:            (functionPointerType)vkGetDeviceProcAddr(m_hDevice, functionNameString);
chromium-84.0.4147.105/third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h-15796-
##############################################
chromium-84.0.4147.105/third_party/skia/site/user/modules/particles.md-83-(function() {
chromium-84.0.4147.105/third_party/skia/site/user/modules/particles.md:84:  // Tries to load the WASM version if supported, shows error otherwise
chromium-84.0.4147.105/third_party/skia/site/user/modules/particles.md-85-  let s = document.createElement('script');
##############################################
chromium-84.0.4147.105/third_party/skia/site/user/modules/particles.md-91-    console.log('WebAssembly is not supported (yet) on this browser.');
chromium-84.0.4147.105/third_party/skia/site/user/modules/particles.md:92:    document.getElementById('demo').innerHTML = "<div>WASM not supported by your browser. Try a recent version of Chrome, Firefox, Edge, or Safari.</div>";
chromium-84.0.4147.105/third_party/skia/site/user/modules/particles.md-93-    return;
##############################################
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md-38-(function() {
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md:39:  // Tries to load the WASM version if supported, then falls back to asmjs
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md-40-  let s = document.createElement('script');
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md-41-  if (window.WebAssembly && typeof window.WebAssembly.compile === 'function') {
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md:42:    console.log('WebAssembly is supported! Using the wasm version of PathKit');
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md-43-    window.__pathkit_locate_file = 'https://unpkg.com/pathkit-wasm@0.6.0/bin/';
##############################################
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md-135-
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md:136:        let ctx = document.getElementById(`canvas${i+1}`);
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md-137-        if (!ctx) {
##############################################
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md-247-**Important**: Any objects (`SkPath`, `SkOpBuilder`, etc) that are created must be cleaned up with `path.delete()` when they
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md:248:leave the scope to avoid leaking the memory in the WASM heap. This includes any of the constructors, `copy()`,
chromium-84.0.4147.105/third_party/skia/site/user/modules/pathkit.md-249-or any function prefixed with "make".
##############################################
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md-109-(function() {
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md:110:  // Tries to load the WASM version if supported, shows error otherwise
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md-111-  let s = document.createElement('script');
##############################################
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md-113-  // Hey, if you are looking at this code for an example of how to do it yourself, please use
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md:114:  // an actual CDN, such as https://unpkg.com/canvaskit-wasm - it will have better reliability
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md-115-  // and niceties like brotli compression.
##############################################
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md-120-    console.log('WebAssembly is not supported (yet) on this browser.');
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md:121:    document.getElementById('demo').innerHTML = "<div>WASM not supported by your browser. Try a recent version of Chrome, Firefox, Edge, or Safari.</div>";
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md-122-    return;
##############################################
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md-393-        const glyph = String.fromCodePoint(cp);
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md:394:        skcanvas.drawText(`At (${X.toFixed(2)}, ${Y.toFixed(2)}) glyph is '${glyph}'`, 5, 450, fontPaint, font);
chromium-84.0.4147.105/third_party/skia/site/user/modules/canvaskit.md-395-      }
##############################################
chromium-84.0.4147.105/third_party/skia/site/dev/tools/debugger.md-84-Images' names are formatted as `7 @24205864 (99, 99)` where `7` is the index of the image as it was
chromium-84.0.4147.105/third_party/skia/site/dev/tools/debugger.md:85:saved in the file, `@24205864` is it's address in wasm memory, for cross referencing with DrawImage*
chromium-84.0.4147.105/third_party/skia/site/dev/tools/debugger.md-86-commands in the command list which also show this address, and `(99, 99)` is the size of the image.
##############################################
chromium-84.0.4147.105/third_party/skia/site/dev/tools/debugger.md-131-operation id. When multiple commands share a GPU op id, this indicates that they were batched
chromium-84.0.4147.105/third_party/skia/site/dev/tools/debugger.md:132:together when sent to the GPU. In the WASM debugger, this goes though WebGL.
chromium-84.0.4147.105/third_party/skia/site/dev/tools/debugger.md-133-
##############################################
chromium-84.0.4147.105/third_party/skia/site/dev/tools/debugger.md-136-
chromium-84.0.4147.105/third_party/skia/site/dev/tools/debugger.md:137:GPU - Controls which backend Skia uses to draw to the screen. GPU in the online wasm debugger means
chromium-84.0.4147.105/third_party/skia/site/dev/tools/debugger.md-138-WebGL. CPU means skia draws into a surface in memory which is copied into an HTML canvas without
##############################################
chromium-84.0.4147.105/third_party/skia/site/dev/tools/markdown.md-23-you are running on a Google corporate workstation. Installation also means
chromium-84.0.4147.105/third_party/skia/site/dev/tools/markdown.md:24:that you have `$GOPATH/bin` [added to your PATH](https://golang.org/doc/code.html#GOPATH). Run:
chromium-84.0.4147.105/third_party/skia/site/dev/tools/markdown.md-25-
##############################################
chromium-84.0.4147.105/third_party/skia/site/dev/testing/skqp.md-36-
chromium-84.0.4147.105/third_party/skia/site/dev/testing/skqp.md:37:(Your value of `$OUTPUT_LOCATION` will differ from mine.
chromium-84.0.4147.105/third_party/skia/site/dev/testing/skqp.md-38-
##############################################
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/utils.cc-147-
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/utils.cc:148:// Printing the status update on stderr can be a perf bottleneck. On WASM print
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/utils.cc-149-// status updates more frequently because it can be slower to parse each chunk.
##############################################
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/BUILD.gn-28-# libprotobuf-lite. This configuration is only used by WASM. Unfortunately,
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/BUILD.gn:29:# however, the WASM linker is very permissive and failures show up only when
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/BUILD.gn-30-# loading the executable in the browser.
##############################################
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/BUILD.gn-88-# The core source files that are used both by the "full" version (the host
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/BUILD.gn:89:# executable) and by the "lite" version (the WASM module for the UI).
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/BUILD.gn-90-source_set("common") {
##############################################
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/BUILD.gn-122-
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/BUILD.gn:123:# Lite target for the WASM UI. Doesn't have any dependency on libprotobuf-full.
chromium-84.0.4147.105/third_party/perfetto/tools/trace_to_text/BUILD.gn-124-source_set("lite") {
##############################################
chromium-84.0.4147.105/third_party/perfetto/tools/screenrecordtest-12-fi
chromium-84.0.4147.105/third_party/perfetto/tools/screenrecordtest:13:timems=`expr $time \* 1000`
chromium-84.0.4147.105/third_party/perfetto/tools/screenrecordtest-14-adb shell screenrecord --time-limit $time "/sdcard/tracescr.mp4" & SCRN=$!
##############################################
chromium-84.0.4147.105/third_party/perfetto/tools/busy_threads/busy_threads.cc-76-      for (int i = 0; i < 10000; i++) {
chromium-84.0.4147.105/third_party/perfetto/tools/busy_threads/busy_threads.cc:77:        asm volatile("" ::: "memory");
chromium-84.0.4147.105/third_party/perfetto/tools/busy_threads/busy_threads.cc-78-      }
##############################################
chromium-84.0.4147.105/third_party/perfetto/protos/perfetto/trace_processor/trace_processor.proto-30-//    for the public C++ API definition.
chromium-84.0.4147.105/third_party/perfetto/protos/perfetto/trace_processor/trace_processor.proto:31:// 2. Using WASM within the HTML ui. In this case these messages are used to
chromium-84.0.4147.105/third_party/perfetto/protos/perfetto/trace_processor/trace_processor.proto:32://    {,un}marshall calls made through the JS<>WASM interop in
chromium-84.0.4147.105/third_party/perfetto/protos/perfetto/trace_processor/trace_processor.proto-33-//    src/trace_processor/rpc/wasm_bridge.cc .
##############################################
chromium-84.0.4147.105/third_party/perfetto/gn/wasm_vars.gni-15-wasm_toolchain = "//gn/standalone/toolchain:wasm"
chromium-84.0.4147.105/third_party/perfetto/gn/wasm_vars.gni:16:is_wasm = current_toolchain == wasm_toolchain
##############################################
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni-29-
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni:30:# Defines a WASM library target.
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni-31-# Args:
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni:32:#  generate_js: when true generates a .wasm file and a .js file that wraps it
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni-33-#      and provides the boilerplate to initialize the module.
##############################################
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni-75-
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni:76:      # This is to prevent that two different wasm modules end up generating
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni-77-      # JS that overrides the same global variable (var Module = ...)
##############################################
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni-115-    # .js file. This dummy target is here to tell GN "there is a target that
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni:116:    # outputs also the .wasm file", so we can depend on that in copy() targets.
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm.gni-117-    action("${_lib_name}.wasm") {
##############################################
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm_typescript_declaration.d.ts-19-// See https://kripken.github.io/emscripten-site/docs/api_reference/module.html
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm_typescript_declaration.d.ts:20:declare namespace Wasm {
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm_typescript_declaration.d.ts:21:  export interface InitWasm {
chromium-84.0.4147.105/third_party/perfetto/gn/standalone/wasm_typescript_declaration.d.ts-22-    (_: ModuleArgs): Module;
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-80-
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc:81:  const struct sockaddr* addr() const {
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-82-    return reinterpret_cast<const struct sockaddr*>(data.get());
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-110-
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc:111:SockaddrAny MakeSockAddr(SockFamily family, const std::string& socket_name) {
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-112-  switch (family) {
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-249-  PERFETTO_DCHECK(fd_);
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc:250:  SockaddrAny addr = MakeSockAddr(family_, socket_name);
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-251-  if (addr.size == 0)
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-253-
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc:254:  if (bind(*fd_, addr.addr(), addr.size)) {
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-255-    PERFETTO_DPLOG("bind(%s)", socket_name.c_str());
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-269-  PERFETTO_DCHECK(fd_);
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc:270:  SockaddrAny addr = MakeSockAddr(family_, socket_name);
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-271-  if (addr.size == 0)
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-273-
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc:274:  int res = PERFETTO_EINTR(connect(*fd_, addr.addr(), addr.size));
chromium-84.0.4147.105/third_party/perfetto/src/base/unix_socket.cc-275-  if (res && errno != EINPROGRESS)
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/base/debug_crash_stack_trace.cc-179-    Dl_info dl_info = {};
chromium-84.0.4147.105/third_party/perfetto/src/base/debug_crash_stack_trace.cc:180:    int res = dladdr(reinterpret_cast<void*>(frames[i]), &dl_info);
chromium-84.0.4147.105/third_party/perfetto/src/base/debug_crash_stack_trace.cc-181-    if (res && dl_info.dli_sname)
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.h-37-// There are two use cases of this:
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.h:38://   1. The JS<>WASM interop for the web-based UI.
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.h-39-//   2. The HTTP RPC mode of trace_processor_shell that allows the UI to talk
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.h:40://      to a native trace processor instead of the bundled WASM one.
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.h-41-// This class has (a subset of) the same methods of the public TraceProcessor
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.h-42-// interface, but the methods just take and return proto-encoded binary buffers.
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.h:43:// This class does NOT define how the transport works (e.g. HTTP vs WASM interop
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.h-44-// calls), it just deals with {,un}marshalling.
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/README.md-7-
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/README.md:8:The WASM (Web Asssembly) interop bridge. It's used to call the Trace Processor
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/README.md-9-from HTML/JS using WASM's `ccall`.
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/BUILD.gn-20-
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/BUILD.gn:21:# This source_set is used both by WASM (for the function-call-based query
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/BUILD.gn-22-# interface) and by the :httpd module for the HTTP interface.
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.cc-110-  // declared but not defined. Putting directly UNKONWN in the vector ctor
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.cc:111:  // causes a linker error in the WASM toolchain.
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/rpc/rpc.cc-112-  static constexpr auto kUnknown = ColumnDesc::UNKNOWN;
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/containers/bit_vector.h-415-      // versions of x64, we could also use pdep + ctz but unfortunately
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/containers/bit_vector.h:416:      // this would fail on WASM - this about 2.5-3x faster on x64).
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/containers/bit_vector.h-417-      //
##############################################
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/containers/bit_vector.h-531-  // TODO(lalitm): investigate whether we should tune this value for
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/containers/bit_vector.h:532:  // WASM and ARM.
chromium-84.0.4147.105/third_party/perfetto/src/trace_processor/containers/bit_vector.h-533-  class Block {
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/build-instructions.md-39-
chromium-84.0.4147.105/third_party/perfetto/docs/build-instructions.md:40:`$ tools/gn args out/android` to generate build files and enter in the editor:
chromium-84.0.4147.105/third_party/perfetto/docs/build-instructions.md-41-
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/build-instructions.md-61-**Android tree**:  
chromium-84.0.4147.105/third_party/perfetto/docs/build-instructions.md:62:`$ mmma external/perfetto`
chromium-84.0.4147.105/third_party/perfetto/docs/build-instructions.md-63-or
chromium-84.0.4147.105/third_party/perfetto/docs/build-instructions.md:64:`$ m perfetto traced traced_probes`
chromium-84.0.4147.105/third_party/perfetto/docs/build-instructions.md-65-
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/index.html-32-            if (href.startsWith('/') && !href.startsWith('/docs')) {
chromium-84.0.4147.105/third_party/perfetto/docs/index.html:33:              href = `https://android.googlesource.com/platform/external/perfetto/+/master${href}`;
chromium-84.0.4147.105/third_party/perfetto/docs/index.html-34-            } else if(href.startsWith('http') || href.startsWith('//')) {
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/index.html-36-            } else if(href.startsWith('#')) {
chromium-84.0.4147.105/third_party/perfetto/docs/index.html:37:              href = `${document.location.hash.split('?')[0]}?id=${href.substr(1)}`;
chromium-84.0.4147.105/third_party/perfetto/docs/index.html-38-            } else {
chromium-84.0.4147.105/third_party/perfetto/docs/index.html-39-              href = href.replace(/^[/]docs/, '');
chromium-84.0.4147.105/third_party/perfetto/docs/index.html:40:              href = `#/${href}`;
chromium-84.0.4147.105/third_party/perfetto/docs/index.html-41-            }
chromium-84.0.4147.105/third_party/perfetto/docs/index.html:42:            return `<a href="${href}" title="${title}">${text}</a>`;
chromium-84.0.4147.105/third_party/perfetto/docs/index.html-43-          }
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/README.md-33-The UI is built on top of C++ trace processor library which is cross-compiled
chromium-84.0.4147.105/third_party/perfetto/docs/README.md:34:to WASM to run locally in the browser.
chromium-84.0.4147.105/third_party/perfetto/docs/README.md-35-
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md-180-To use symbolization, your system must have llvm-symbolizer installed and
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md:181:accessible from `$PATH` as `llvm-symbolizer`. On Debian, you can install it
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md-182-using `sudo apt install llvm-9`.
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md-183-This will create `/usr/bin/llvm-symbolizer-9`. Symlink that to somewhere in
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md:184:your `$PATH` as `llvm-symbolizer`. For instance.
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md-185-
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md-186-For instance, `ln -s /usr/bin/llvm-symbolizer-9 ~/bin/llvm-symbolizer`, and
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md:187:add `~/bin` to your path (or run the commands below with `PATH=~/bin:$PATH`
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md-188-prefixed).
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md-308-### Start profiling
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md:309:To start profiling the process `${PID}`, run the following sequence of commands.
chromium-84.0.4147.105/third_party/perfetto/docs/heapprofd.md-310-Adjust the `INTERVAL` to trade-off runtime impact for higher accuracy of the
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/continuous-integration.md-103-- Update the DB to reflect completion of jobs, removing the entry from
chromium-84.0.4147.105/third_party/perfetto/docs/continuous-integration.md:104:  `/jobs_running` and updating the `/jobs/$jobId/status` fields.
chromium-84.0.4147.105/third_party/perfetto/docs/continuous-integration.md-105-
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/detached-mode.md-17-attached to the lifetime of the `perfetto` cmdline client that started it.
chromium-84.0.4147.105/third_party/perfetto/docs/detached-mode.md:18:This means that a `killall perfetto` or `kill $PID_OF_PERFETTO` is sufficient
chromium-84.0.4147.105/third_party/perfetto/docs/detached-mode.md-19-to guarantee that the tracing session is stopped.  
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/running.md-98-You might need to install `docsify` and `docsify-cli`
chromium-84.0.4147.105/third_party/perfetto/docs/running.md:99:(`$ npm i -g docsify docsify-cli`) before running the documentation server.
chromium-84.0.4147.105/third_party/perfetto/docs/running.md-100-
##############################################
chromium-84.0.4147.105/third_party/perfetto/docs/metrics.md-66-As a setup step, you'll want to create a folder to act as a scratch workspace;
chromium-84.0.4147.105/third_party/perfetto/docs/metrics.md:67:this folder will be referred to using the env variable `$WORKSPACE` in Step 4.
chromium-84.0.4147.105/third_party/perfetto/docs/metrics.md-68-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-66-        updateStatus('Converting trace');
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts:67:        const timestamps = `${ts1}${ts2 === undefined ? '' : `,${ts2}`}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-68-        mod.callMain([
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-70-          `--pid`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts:71:          `${pid}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-72-          `--timestamps`,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-79-        const heapDirContents =
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts:80:            mod.FS.lookupPath(`/tmp/${heapDirName}`).node.contents;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-81-        const heapDumpFiles = Object.keys(heapDirContents);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-84-          const fileContents =
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts:85:              mod.FS.lookupPath(`/tmp/${heapDirName}/${heapDump}`)
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-86-                  .node.contents;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-87-          fileNum++;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts:88:          const fileName = `/heap_dump.${fileNum}.${pid}.pb`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-89-          downloadFile(new Blob([fileContents]), fileName);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-109-    if (resp.status !== 200) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts:110:      throw new Error(`fetch() failed with HTTP error ${resp.status}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-111-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-117-  } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts:118:    throw new Error(`Conversion not supported for ${JSON.stringify(src)}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_converter.ts-119-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts-485-      for (const entry of (isRepeated ? value as Array<{}> : [value])) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts:486:        yield ' '.repeat(indent) + `${snakeCase(key)}${isNested ? '' : ':'} `;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts-487-        if (typeof entry === 'string') {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts-490-          } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts:491:            yield `"${entry.replace(new RegExp('"', 'g'), '\\"')}"`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts-492-          }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts-693-
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts:694:          if (!controller) throw Error(`Unknown target: ${target}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts-695-          resolve(controller);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts-721-    } catch (e) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts:722:      console.error(`error invoking ${method}: ${e.message}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/record_controller.ts-723-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-114-      // <= 9 devices support it.
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts:115:      console.error(`Method ${method} not supported by the target`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-116-      return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-235-    if (!method) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts:236:      console.error(`Unknown request id: ${requestId}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-237-      this.sendErrorMessage(`Wire protocol error.`);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-241-    if (decoder === undefined) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts:242:      console.error(`Unable to decode method: ${method}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-243-      return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-245-    const decodedResponse = decoder(responseProto);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts:246:    const response = {type: `${method}Response`, ...decodedResponse};
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-247-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-353-      default:
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts:354:        console.error(`not recognized frame message: ${frame.msg}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_socket_controller.ts-355-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-62-      default:
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts:63:        this.sendErrorMessage(`Method not recognized: ${method}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-64-        break;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-127-    if (awk.length < 1) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts:128:      throw Error(`Unabled to find perfetto pid in string "${pidStr}"`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-129-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-147-      const killOutput =
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts:148:          await this.adb.shellOutputAsString(`kill -SIGINT ${pid}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-149-
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-150-      if (killOutput.length !== 0) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts:151:        throw Error(`Unable to kill perfetto: ${killOutput}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-152-      }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-179-    // future session.
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts:180:    return `gzip -c ${this.traceDestFile} && rm -f ${this.traceDestFile}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-181-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-184-    const configBase64 = uint8ArrayToBase64(tracingConfig);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts:185:    const perfettoCmd = `perfetto -c - -o ${this.traceDestFile}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts:186:    return `echo '${configBase64}' | base64 -d | ${perfettoCmd}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_shell_controller.ts-187-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/globals.ts-96-    assertExists(this._frontend)
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/globals.ts:97:        .send<void>(`publish${what}`, [data], transferList);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/globals.ts-98-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_record_controller_jsdomtest.ts-109-  expect(generatedCmd)
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_record_controller_jsdomtest.ts:110:      .toBe(`echo '${btoa('A')}' | base64 -d | perfetto -c - -o DEST`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb_record_controller_jsdomtest.ts-111-});
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-87-// TraceController handles handshakes with the frontend for everything that
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:88:// concerns a single trace. It owns the WASM trace processor engine, handles
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-89-// tracks data and SQL queries. There is one TraceController instance for each
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-118-            .catch(err => {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:119:              this.updateStatus(`${err}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-120-              throw err;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-182-      default:
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:183:        throw new Error(`unknown state ${this.state}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-184-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-203-        globals.dispatch(
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:204:            Actions.setEngineFailed({mode: 'HTTP_RPC', failure: `${err}`}));
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-205-        throw err;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-208-    } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:209:      console.log('Opening trace using built-in WASM engine');
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-210-      engineMode = 'WASM';
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-232-    } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:233:      throw new Error(`Unknown source: ${JSON.stringify(engineCfg.source)}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-234-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-249-          const progress = Math.round(res.bytesRead / res.bytesTotal * 100);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:250:          status += `${progress}%`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-251-        } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:252:          status += `${Math.round(res.bytesRead / 1e6)} MB`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-253-        }
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:254:        status += ` - ${Math.ceil(res.bytesRead / elapsed / 1e6)} MB/s`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-255-        this.updateStatus(status);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-317-    //    kind: 'VsyncTrack',
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:318:    //    name: `${counterName}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-319-    //    config: {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-336-        kind: CPU_SLICE_TRACK_KIND,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:337:        name: `Cpu ${cpu}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-338-        trackGroup: SCROLLING_TRACK_GROUP,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-360-        from cpu_counter_track
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:361:        where name = 'cpufreq' and cpu = ${cpu}
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-362-        limit 1;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-374-          kind: CPU_FREQ_TRACK_KIND,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:375:          name: `Cpu ${cpu} Frequency`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-376-          trackGroup: SCROLLING_TRACK_GROUP,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-447-        from gpu_counter_track
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:448:        where name = 'gpufreq' and gpu_id = ${gpu}
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-449-        limit 1;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-454-          kind: GPU_FREQ_TRACK_KIND,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:455:          name: `Gpu ${gpu} Frequency`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-456-          trackGroup: SCROLLING_TRACK_GROUP,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-510-        kind: SLICE_TRACK_KIND,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:511:        name: `${name}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-512-        trackGroup: SCROLLING_TRACK_GROUP,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-675-          kind,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:676:          name: `${upid === null ? tid : pid} summary`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-677-          config: {pidForColor, upid, utid},
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-853-          'Loading overview ' +
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:854:          `${Math.round((step + 1) / numSteps * 1000) / 10}%`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-855-      const startSec = traceTime.start + step * stepSec;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-861-      const schedRows = await engine.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:862:          `select sum(dur)/${stepSec}/1e9, cpu from sched ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:863:          `where ts >= ${startNs} and ts < ${endNs} and utid != 0 ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-864-          'group by cpu order by cpu');
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-933-      from instants
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:934:      where name = '${event}'`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-935-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-1103-  if (hasUpid && hasPid && hasProcessName) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:1104:    return `${processName} ${pid}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-1105-  } else if (hasUpid && hasPid) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:1106:    return `Process ${pid}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-1107-  } else if (hasThreadName && hasTid) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:1108:    return `${threadName} ${tid}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-1109-  } else if (hasTid) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:1110:    return `Thread ${tid}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-1111-  } else if (hasUpid) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:1112:    return `upid: ${upid}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-1113-  } else if (hasUtid) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts:1114:    return `utid: ${utid}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_controller.ts-1115-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/query_controller.ts-38-        this.runQuery(config.query).then(result => {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/query_controller.ts:39:          console.log(`Query ${config.query} took ${result.durationMs} ms`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/query_controller.ts-40-          globals.publish('QueryResult', {id: this.args.queryId, data: result});
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/query_controller.ts-51-      default:
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/query_controller.ts:52:        throw new Error(`Unexpected state ${this.state}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/query_controller.ts-53-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/track_controller.ts-84-    const idSuffix = this.trackId.split('-').join('_');
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/track_controller.ts:85:    return `${prefix}_${idSuffix}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/track_controller.ts-86-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/logs_controller.ts-34-     select min(ts), max(ts), count(ts)
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/logs_controller.ts:35:     from android_logs where ts >= ${vizStartNs} and ts <= ${vizEndNs}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/logs_controller.ts-36-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/logs_controller.ts-67-  const vizEndNs = toNsCeil(span.end);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/logs_controller.ts:68:  const vizSqlBounds = `ts >= ${vizStartNs} and ts <= ${vizEndNs}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/logs_controller.ts-69-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_stream.ts-114-      if (response.status !== 200) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_stream.ts:115:        throw new Error(`HTTP ${response.status} - ${response.statusText}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/trace_stream.ts-116-      }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-58-        for (const name of this.cache.values()) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts:59:          await this.engine.query(`drop table ${name}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-60-        }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-62-      }
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts:63:      tableName = `${this.prefix}_${this.tableId++}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-64-      await this.engine.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts:65:          `create temp table if not exists ${tableName} as ${query}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-66-      this.cache.set(query, tableName);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-124-              const key =
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts:125:                  `${selectedHeapProfile.upid};${selectedHeapProfile.ts}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-126-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-207-    let currentData: CallsiteInfo[];
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts:208:    const key = `${baseKey}-${viewingOption}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-209-    if (this.flamegraphDatasets.has(key)) {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-312-    if (focusRegex !== '') {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts:313:      whereClause = `where focus_str = '${focusRegex}'`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-314-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-345-    const pidValue = await this.args.engine.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts:346:        `select pid from process where upid = ${upid}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/heap_profile_controller.ts-347-    const pid = pidValue.columns[0].longValues![0];
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-60-    let dataToUpload: File|ArrayBuffer|undefined = undefined;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:61:    let traceName = `trace ${engine.id}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-62-    if (engine.source.type === 'FILE') {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-67-    } else if (engine.source.type !== 'URL') {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:68:      throw new Error(`Cannot share trace ${JSON.stringify(engine.source)}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-69-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-72-    if (dataToUpload !== undefined) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:73:      PermalinkController.updateStatus(`Uploading ${traceName}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-74-      const url = await this.saveTrace(dataToUpload);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-92-    const url = 'https://www.googleapis.com/upload/storage/v1/b/' +
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:93:        `${BUCKET_NAME}/o?uploadType=media` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:94:        `&name=${hash}&predefinedAcl=publicRead`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-95-    const response = await fetch(url, {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-111-    const url = 'https://www.googleapis.com/upload/storage/v1/b/' +
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:112:        `${BUCKET_NAME}/o?uploadType=media` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:113:        `&name=${name}&predefinedAcl=publicRead`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-114-    const response = await fetch(url, {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-119-    await response.json();
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:120:    return `https://storage.googleapis.com/${BUCKET_NAME}/${name}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-121-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-123-  private static async loadState(id: string): Promise<State> {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:124:    const url = `https://storage.googleapis.com/${BUCKET_NAME}/${id}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-125-    const response = await fetch(url);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-129-    if (stateHash !== id) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts:130:      throw new Error(`State hash does not match ${id} vs. ${stateHash}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/permalink_controller.ts-131-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/search_controller.ts-157-              from search_summary_sched_span
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/search_controller.ts:158:              where utid in (${utids.join(',')}) and cpu <= ${maxCpu}
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/search_controller.ts-159-            union all
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-39-    if (selection.kind === 'THREAD_STATE') {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:40:      const sqlQuery = `SELECT id FROM sched WHERE utid = ${selection.utid}
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-41-                        and ts = ${toNs(selection.ts)}`;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-81-        FROM slice
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:82:        WHERE id = ${selectedId}
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-83-      `;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-89-        from annotation_slice
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:90:        where id = ${selectedId}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-91-      }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-130-      from describe_slice
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:131:      where slice_id = ${id}
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-132-    `;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-149-      FROM args
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:150:      WHERE arg_set_id = ${argId}
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-151-    `;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-162-    const sqlQuery = `SELECT ts, dur, priority, end_state, utid, cpu FROM sched
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:163:    WHERE id = ${id}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-164-    this.args.engine.query(sqlQuery).then(result => {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-189-    const counter = await this.args.engine.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:190:        `SELECT value, track_id FROM counter WHERE id = ${id}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-191-    const value = counter.columns[0].doubleValues![0];
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-195-    const previous = await this.args.engine.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:196:        `SELECT MAX(ts), value FROM counter WHERE ts < ${ts} and track_id = ${
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-197-            trackId}`);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-219-    // Find the ts of the first sched_wakeup before the current slice.
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:220:    const queryWakeupTs = `select ts from instants where name = '${event}'
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-221-    and ref = ${utid} and ts < ${ts} order by ts desc limit 1`;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-223-    // Find the previous sched slice for the current utid.
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:224:    const queryPrevSched = `select ts from sched where utid = ${utid}
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-225-    and ts < ${ts} order by ts desc limit 1`;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-236-    const queryWaker = `select utid, cpu from sched where utid =
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts:237:    (select utid from raw where name = '${event}' and ts = ${wakeupTs})
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/selection_controller.ts-238-    and ts < ${wakeupTs} and ts + dur >= ${wakeupTs};`;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/aggregation_controller.ts-95-    if (pref && pref.sorting) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/aggregation_controller.ts:96:      sorting = `${pref.sorting.column} ${pref.sorting.direction}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/aggregation_controller.ts-97-    }
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/aggregation_controller.ts:98:    const query = `select ${colIds} from ${this.kind} order by ${sorting}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/aggregation_controller.ts-99-    const result = await this.args.engine.query(query);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/cpu_aggregation_controller.ts-27-      engine: Engine, selectedArea: TimestampedAreaSelection) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/cpu_aggregation_controller.ts:28:    await engine.query(`drop view if exists ${this.kind};`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/cpu_aggregation_controller.ts-29-    const area = selectedArea.area;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/thread_aggregation_controller.ts-29-      engine: Engine, selectedArea: TimestampedAreaSelection) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/thread_aggregation_controller.ts:30:    await engine.query(`drop view if exists ${this.kind};`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/aggregation/thread_aggregation_controller.ts-31-    const area = selectedArea.area;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-184-
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts:185:    throw Error(`Cannot find ${direction} endpoint`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-186-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-197-          if (e.message !== DEVICE_NOT_SET_ERROR) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts:198:            console.error(`Exception in recv: ${e.name}. error: ${e.message}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-199-          }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-220-      if (!stream) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts:221:        console.warn(`Received message ${msg} for unknown stream ${msg.arg1}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-222-        return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-225-    } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts:226:      console.error(`Unexpected message `, msg, ` in state ${this.state}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-227-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-476-    console.error(
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts:477:        `Unexpected stream msg ${msg.toString()} in state ${this.state}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-478-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-527-  toString() {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts:528:    return `${this.cmd} [${this.arg0},${this.arg1}] ${this.dataStr}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/adb.ts-529-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/controller.ts-70-        if (nextChildren.has(childConfig.id)) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/controller.ts:71:          throw new Error(`Duplicate children controller ${childConfig.id}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/controller/controller.ts-72-        }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/vsync/controller.ts-32-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/vsync/controller.ts:33:          `create virtual table window_${this.trackState.id} using window;`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/vsync/controller.ts-34-      await this.query(
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/vsync/controller.ts-62-    if (this.setup) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/vsync/controller.ts:63:      this.query(`drop table window_${this.trackState.id}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/vsync/controller.ts:64:      this.query(`drop table span_${this.trackState.id}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/vsync/controller.ts-65-      this.setup = false;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-90-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts:91:    ctx.fillStyle = `hsl(${this.hue}, 50%, 60%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-92-    ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-131-      // chrome_slices/frontend.ts.
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts:132:      let title = `[utid:${utid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-133-      let subTitle = '';
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-138-          const procName = threadInfo.procName || '';
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts:139:          title = `${procName} [${threadInfo.pid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts:140:          subTitle = `${threadInfo.threadName} [${threadInfo.tid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-141-        } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts:142:          title = `${threadInfo.threadName} [${threadInfo.tid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-143-        }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-161-      }
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts:162:      ctx.fillStyle = `hsl(${color.h}, ${color.s}%, ${color.l}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-163-      ctx.fillRect(rectStart, MARGIN_TOP, rectWidth, RECT_HEIGHT);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-192-        // Draw a rectangle around the slice that is currently selected.
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts:193:        ctx.strokeStyle = `hsl(${color.h}, ${color.s}%, 30%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-194-        ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-243-    if (hoveredThread !== undefined && this.mouseXpos !== undefined) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts:244:      const tidText = `T: ${hoveredThread.threadName} [${hoveredThread.tid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-245-      if (hoveredThread.pid) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts:246:        const pidText = `P: ${hoveredThread.procName} [${hoveredThread.pid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/frontend.ts-247-        this.drawTrackHoverTooltip(ctx, this.mouseXpos, pidText, tidText);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts-41-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts:42:          `create virtual table ${this.tableName('window')} using window;`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts-43-      await this.query(`create virtual table ${this.tableName('span')}
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts-82-        from ${this.tableName('span')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts:83:        where cpu = ${this.config.cpu}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts-84-        and utid != 0
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts-112-    const query = `select ts,dur,utid,id from ${this.tableName('span')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts:113:        where cpu = ${this.config.cpu}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts-114-        and utid != 0
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts-147-    if (this.setup) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts:148:      this.query(`drop table ${this.tableName('window')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts:149:      this.query(`drop table ${this.tableName('span')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_slices/controller.ts-150-      this.setup = false;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-111-      yMin = data.minimumValue < 0 ? -yMax : 0;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts:112:      yLabel = `${yMax / Math.pow(10, unitGroup * 3)} ${kUnits[unitGroup]}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-113-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-125-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts:126:    ctx.fillStyle = `hsl(${hue}, 45%, 75%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts:127:    ctx.strokeStyle = `hsl(${hue}, 45%, 45%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-128-    ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-147-    // Draw the Y=0 dashed line.
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts:148:    ctx.strokeStyle = `hsl(${hue}, 10%, 71%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-149-    ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-161-      let text = (data.isQuantized) ? 'max value: ' : 'value: ';
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts:162:      text += `${this.hoveredValue.toLocaleString()}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-163-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts:164:      ctx.fillStyle = `hsl(${hue}, 45%, 75%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts:165:      ctx.strokeStyle = `hsl(${hue}, 45%, 45%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-166-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-197-    ctx.textBaseline = 'alphabetic';
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts:198:    ctx.fillText(`${yLabel}`, 5, 14);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/frontend.ts-199-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-49-          from experimental_counter_dur
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts:50:          where track_id = ${this.config.trackId};
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-51-        `);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-60-          from ${this.namespaceTable('counter')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts:61:          where track_id = ${this.config.trackId};
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-62-        `);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-70-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts:71:          `create virtual table ${this.tableName('window')} using window;`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-72-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-81-      from ${this.tableName('counter_view')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts:82:      where ts <= ${endNs} and ${startNs} <= ts + dur`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-83-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-114-        from ${this.tableName('counter_view')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts:115:        where ts <= ${startNs}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-116-        order by ts desc
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-123-        from ${this.tableName('counter_view')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts:124:        where ts <= ${endNs} and ${startNs} <= ts + dur
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/counter/controller.ts-125-        limit ${LIMIT}
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/heap_profile/controller.ts-42-    (select distinct(ts) as ts, 'native' as type from heap_profile_allocation
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/heap_profile/controller.ts:43:     where upid = ${this.config.upid}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/heap_profile/controller.ts-44-        union
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/heap_profile/controller.ts-46-        heap_graph_object
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/heap_profile/controller.ts:47:        where upid = ${this.config.upid}) order by ts`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/heap_profile/controller.ts-48-    const numRows = +result.numRecords;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-73-    // The values we have for gpufreq are in kHz so +1 to unitGroup.
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts:74:    const yLabel = `${num} ${kUnits[unitGroup + 1]}Hz`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-75-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-81-    }
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts:82:    ctx.fillStyle = `hsl(${hue}, ${saturation}%, 70%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts:83:    ctx.strokeStyle = `hsl(${hue}, ${saturation}%, 55%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-84-    ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-111-    if (this.hoveredValue !== undefined && this.hoveredTs !== undefined) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts:112:      let text = `Freq: ${this.hoveredValue.toLocaleString()}kHz`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-113-      if (data.isQuantized) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts:114:        text = `Weighted avg freq: ${this.hoveredValue.toLocaleString()}kHz`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-115-      }
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-116-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts:117:      ctx.fillStyle = `hsl(${hue}, 45%, 75%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts:118:      ctx.strokeStyle = `hsl(${hue}, 45%, 45%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-119-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-148-    ctx.textAlign = 'left';
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts:149:    ctx.fillText(`${yLabel}`, 5, 14);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/frontend.ts-150-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/controller.ts-41-        from counter
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/controller.ts:42:        where track_id = ${this.config.trackId}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/controller.ts-43-      this.maximumValueSeen = +result.columns[0].doubleValues![0];
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/controller.ts-45-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/controller.ts:46:        `create virtual table ${this.tableName('window')} using window;`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/controller.ts-47-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/controller.ts-53-          from counter
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/controller.ts:54:          where track_id = ${this.config.trackId};
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/gpu_freq/controller.ts-55-      `);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts-86-    const color = colorForTid(this.config.pidForColor);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts:87:    ctx.fillStyle = `hsl(${color.h}, ${color.s}%, ${color.l}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts-88-    ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts-143-      }
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts:144:      ctx.fillStyle = `hsl(${color.h}, ${color.s}%, ${color.l}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts-145-      const y = MARGIN_TOP + cpuTrackHeight * cpu + cpu;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts-150-    if (hoveredThread !== undefined && this.mouseXpos !== undefined) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts:151:      const tidText = `T: ${hoveredThread.threadName} [${hoveredThread.tid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts-152-      if (hoveredThread.pid) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts:153:        const pidText = `P: ${hoveredThread.procName} [${hoveredThread.pid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/frontend.ts-154-        this.drawTrackHoverTooltip(ctx, this.mouseXpos, pidText, tidText);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts-49-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts:50:          `create virtual table ${this.tableName('window')} using window;`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts-51-      await this.query(`create view ${this.tableName('process')} as
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts-53-          select utid, upid from thread
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts:54:            where utid != 0 and upid = ${this.config.upid}) using(utid);`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts-55-      await this.query(`create virtual table ${this.tableName('span')}
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts-156-    if (this.setup) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts:157:      this.query(`drop table ${this.tableName('window')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts:158:      this.query(`drop table ${this.tableName('span')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_scheduling/controller.ts-159-      this.setup = false;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/android_log/controller.ts-40-      from android_logs
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/android_log/controller.ts:41:      where ts >= ${startNs} and ts <= ${endNs}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/android_log/controller.ts-42-      group by ts_quant, prio
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts-45-  for (const [state, value] of sorted.entries()) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts:46:    result += `${state}: ${Math.round(value * 100)}%, `;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts-47-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts-105-        } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts:106:          let colorStr = `hsl(${color.h},${color.s}%,${color.l}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts-107-          if (color.a) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts:108:            colorStr = `hsla(${color.h},${color.s}%,${color.l}%, ${color.a})`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts-109-          }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts-144-        const color = colorForState(state);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts:145:        ctx.strokeStyle = `hsl(${color.h},${color.s}%,${color.l * 0.7}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts-146-        ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts-175-      for (const [color, value] of sorted.entries()) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts:176:        const colorString = `hsl(${color.h},${color.s}%,${color.l}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/frontend.ts-177-        colorStop = Math.max(0, Math.min(1, colorStop + value));
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-39-    await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts:40:        `drop view if exists ${this.tableName('grouped_thread_states')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-41-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-49-    from thread_state
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts:50:    where utid = ${this.config.utid})`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-51-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-55-      from ${this.tableName('grouped_thread_states')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts:56:      where ts <= ${endNs} and ts + dur >= ${startNs}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-57-    const totalSlices = (await this.engine.queryOneRow(totalSlicesQuery))[0];
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-70-    from ${this.tableName('grouped_thread_states')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts:71:    where ts <= ${endNs} and ts + dur >= ${startNs}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-72-    group by grouping, state
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-146-    if (this.setup) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts:147:      this.query(`drop view ${this.tableName('grouped_thread_states')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/thread_state/controller.ts-148-      this.setup = false;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-79-    // The values we have for cpufreq are in kHz so +1 to unitGroup.
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts:80:    const yLabel = `${num} ${kUnits[unitGroup + 1]}Hz`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-81-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-87-    }
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts:88:    ctx.fillStyle = `hsl(${hue}, ${saturation}%, 70%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts:89:    ctx.strokeStyle = `hsl(${hue}, ${saturation}%, 55%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-90-    ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-131-    if (this.hoveredValue !== undefined && this.hoveredTs !== undefined) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts:132:      let text = `${this.hoveredValue.toLocaleString()}kHz`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-133-      if (data.isQuantized) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts:134:        text = `${this.hoveredValue.toLocaleString()}kHz (weighted avg)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-135-      }
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-136-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts:137:      ctx.fillStyle = `hsl(${hue}, 45%, 75%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts:138:      ctx.strokeStyle = `hsl(${hue}, 45%, 45%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-139-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-162-        // Display the idle value +1 to be consistent with catapult.
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts:163:        text += ` (Idle: ${(this.hoveredIdle + 1).toLocaleString()})`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-164-      }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-175-    ctx.textAlign = 'left';
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts:176:    ctx.fillText(`${yLabel}`, 4, 14);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/frontend.ts-177-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts-42-        from counter
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts:43:        where track_id = ${this.config.freqTrackId}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts-44-      this.maximumValueSeen = +result.columns[0].doubleValues![0];
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts-46-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts:47:        `create virtual table ${this.tableName('window')} using window;`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts-48-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts-54-          from experimental_counter_dur c
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts:55:          where track_id = ${this.config.freqTrackId};
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts-56-      `);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts-73-          from experimental_counter_dur c
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts:74:          where track_id = ${this.config.idleTrackId};
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/cpu_freq/controller.ts-75-        `);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/frontend.ts-76-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/frontend.ts:77:    ctx.fillStyle = `hsl(${color.h}, ${color.s}%, ${color.l}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/frontend.ts-78-    ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-42-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts:43:          `create virtual table ${this.tableName('window')} using window;`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-44-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-47-        const threadQuery = await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts:48:            `select utid from thread where upid=${this.config.upid}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-49-        utids = threadQuery.columns[0].longValues! as number[];
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-52-      const trackQuery = await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts:53:          `select id from thread_track where utid in (${utids.join(',')})`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-54-      const tracks = trackQuery.columns[0].longValues! as number[];
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-57-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts:58:          `create view ${processSliceView} as ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-59-          // 0 as cpu is a dummy column to perform span join on.
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts:60:          `select ts, dur/${utids.length} as dur ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-61-          `from slice s ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-62-          `where depth = 0 and track_id in ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts:63:          `(${tracks.join(',')})`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-64-      await this.query(`create virtual table ${this.tableName('span')}
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-124-    if (this.setup) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts:125:      this.query(`drop table ${this.tableName('window')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts:126:      this.query(`drop table ${this.tableName('span')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/process_summary/controller.ts-127-      this.setup = false;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/frontend.ts-113-      const hovered = titleId === this.hoveredTitleId;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/frontend.ts:114:      const color = `hsl(${hue}, ${saturation}%, ${hovered ? 30 : 65}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/frontend.ts-115-      if (summarizedOffset !== -1) {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/frontend.ts-139-        drawRectOnSelected = () => {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/frontend.ts:140:          ctx.strokeStyle = `hsl(${hue}, ${saturation}%, 30%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/frontend.ts-141-          ctx.beginPath();
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/frontend.ts-168-      for (let i = 0; i < nameHues.length; i++) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/frontend.ts:169:        const colorString = `hsl(${nameHues[i]}, 50%, ${hovered ? 30 : 65}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/frontend.ts-170-        colorStop = Math.max(0, Math.min(1, colorStop + percents[i]));
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-36-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts:37:          `create virtual table ${this.tableName('window')} using window;`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-38-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-41-        from ${this.namespaceTable('slice')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts:42:        where track_id = ${this.config.trackId}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-43-        and dur < ${minNs}
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-59-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts:60:    await this.query(`drop view if exists ${this.tableName('small')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts:61:    await this.query(`drop view if exists ${this.tableName('big')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts:62:    await this.query(`drop view if exists ${this.tableName('summary')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-63-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-66-      from ${this.namespaceTable('slice')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts:67:      where track_id = ${this.config.trackId}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-68-      and dur < ${minNs}
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-74-      from ${this.namespaceTable('slice')}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts:75:      where track_id = ${this.config.trackId}
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-76-      and ts >= ${startNs} - dur
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-102-    const totalSummarizedQuery =
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts:103:        `select count(1) from ${this.tableName('summary')}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/chrome_slices/controller.ts-104-    const totalSummarized =
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-36-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:37:          `create virtual table ${this.tableName('window')} using window;`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-38-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-39-      await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:40:          `create view ${this.tableName('small')} as ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-41-          `select ts,dur,layout_depth,name,id from experimental_slice_layout ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:42:          `where filter_track_ids = "${this.config.trackIds.join(',')}" ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:43:          `and dur < ${minNs} ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-44-          `order by ts;`);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-59-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:60:    await this.query(`drop view if exists ${this.tableName('small')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:61:    await this.query(`drop view if exists ${this.tableName('big')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:62:    await this.query(`drop view if exists ${this.tableName('summary')}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-63-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-64-    await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:65:        `create view ${this.tableName('small')} as ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-66-        `select ts,dur,layout_depth,name,id from experimental_slice_layout ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:67:        `where filter_track_ids = "${this.config.trackIds.join(',')}" ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:68:        `and dur < ${minNs} ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-69-        `order by ts `);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-71-    await this.query(
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:72:        `create view ${this.tableName('big')} as ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-73-        `select ts,dur,layout_depth,name,id from experimental_slice_layout ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:74:        `where filter_track_ids = "${this.config.trackIds.join(',')}" ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:75:        `and ts >= ${startNs} - dur ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:76:        `and ts <= ${endNs} ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:77:        `and dur >= ${minNs} ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-78-        `order by ts `);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-91-
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:92:    const query = `select * from ${this.tableName('summary')} UNION ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts:93:        `select * from ${this.tableName('big')} order by ts limit ${LIMIT}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/tracks/async_slices/controller.ts-94-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/engine/wasm_bridge.ts-37-  id: number;
chromium-84.0.4147.105/third_party/perfetto/ui/src/engine/wasm_bridge.ts:38:  aborted: boolean;  // If true the WASM module crashed.
chromium-84.0.4147.105/third_party/perfetto/ui/src/engine/wasm_bridge.ts-39-  data: Uint8Array;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-51-const CACHE_NAME = 'dist-' + UI_DIST_MAP.hex_digest.substr(0, 16);
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts:52:const LOG_TAG = `ServiceWorker[${UI_DIST_MAP.hex_digest.substr(0, 16)}]: `;
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-53-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-68-  if (!shouldHandleHttpRequest(req)) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts:69:    throw new Error(LOG_TAG + `${req.url} shouldn't have been handled`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-70-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-85-    if (cachedRes) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts:86:      console.debug(LOG_TAG + `serving ${req.url} from cache`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-87-      return cachedRes;
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-88-    }
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts:89:    console.warn(LOG_TAG + `cache miss on ${req.url}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-90-  } catch (exc) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts:91:    console.error(LOG_TAG + `Cache request failed for ${req.url}`, exc);
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-92-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-95-  // safe behavior.
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts:96:  console.debug(LOG_TAG + `falling back on network fetch() for ${req.url}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-97-  return fetch(req);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-160-  if (!shouldHandleHttpRequest(event.request)) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts:161:    console.debug(LOG_TAG + `serving ${event.request.url} from network`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/service_worker/service_worker.ts-162-    return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/http_utils.ts-19-        () => reject(
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/http_utils.ts:20:            new Error(`fetch(${input}) timed out after ${timeoutMs} ms`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/http_utils.ts-21-        timeoutMs);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/logging.ts-47-  } else if (err instanceof PromiseRejectionEvent) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/logging.ts:48:    errLog = `${err.reason}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/logging.ts-49-    errorObj = err.reason;
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/logging.ts-50-  } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/logging.ts:51:    errLog = `${err}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/logging.ts-52-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/logging.ts-57-  }
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/logging.ts:58:  errLog += `\n\nUA: ${navigator.userAgent}\n`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/logging.ts-59-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/remote.ts-62-    const d = this.deferredRequests.get(response.id);
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/remote.ts:63:    if (!d) throw new Error(`No deferred response with ID ${response.id}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/remote.ts-64-    this.deferredRequests.delete(response.id);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/remote.ts-82-    if (method === undefined || id === undefined) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/remote.ts:83:      throw new Error(`Invalid call method: ${method} id: ${id}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/remote.ts-84-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/remote.ts-86-    if (!(handler[method] instanceof Function)) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/remote.ts:87:      throw new Error(`Method not known: ${method}(${args})`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/base/remote.ts-88-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/video_panel.ts-61-    function makeMsg(setting: boolean, msgType: string, e: string, d: string) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/video_panel.ts:62:      return m('h1', { class: `video-panel-${msgType}` }, setting ? e : d);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/video_panel.ts-63-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts-138-            'header.overview',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts:139:            `Query result - ${Math.round(resp.durationMs)} ms`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts-140-            m('span.code', resp.query),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts-169-        resp.error ?
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts:170:            m('.query-error', `SQL error: ${resp.error}`) :
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts-171-            m('table.query-table', m('thead', header), m('tbody', rows)));
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts-334-        trackGroupId: group.id,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts:335:        key: `trackgroup-${group.id}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts-336-        selectable: true,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts-340-        scrollingPanels.push(m(TrackPanel, {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts:341:          key: `track-${group.id}-${trackId}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/viewer_page.ts-342-          id: trackId,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts-123-        rows.push(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts:124:            m(`.row.${prioClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts-125-              {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts-126-                'class': isStale ? 'stale' : '',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts:127:                style: {top: `${(offset + i) * ROW_H}px`},
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts-128-                onmouseover: this.onRowOver.bind(this, ts / 1e9),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts-144-          },
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts:145:          `Logs rows [${offset}, ${offset + count}] / ${total}`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts:146:        m('.rows', {style: {height: `${total * ROW_H}px`}}, rows));
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/logs_panel.ts-147-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/chrome_slice_panel.ts-32-              m('table.half-width',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/chrome_slice_panel.ts:33:                m('tr', m('th', `Name`), m('td', `${sliceInfo.name}`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/chrome_slice_panel.ts-34-                m('tr',
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/chrome_slice_panel.ts-42-                  m('th', `Start time`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/chrome_slice_panel.ts:43:                  m('td', `${timeToCode(sliceInfo.ts)}`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/chrome_slice_panel.ts-44-                m('tr',
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/raf_scheduler.ts-197-          'Dom redraw: ' +
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/raf_scheduler.ts:198:              `Count: ${this.perfStats.domRedraw.count} | ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/raf_scheduler.ts-199-              runningStatStr(this.perfStats.domRedraw)), );
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-251-    const canvas = assertExists(ctx.canvas);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts:252:    canvas.style.height = `${this.canvasHeight}px`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-253-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-258-      if (scrollLimiter) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts:259:        scrollLimiter.style.height = `${this.canvasHeight}px`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-260-      }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-272-        Math.floor(this.scrollTop - this.getCanvasOverdrawHeightPerSide());
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts:273:    canvas.style.transform = `translateY(${canvasYStart}px)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-274-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-440-    ctx.fillStyle = 'hsla(122, 77%, 22%)';
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts:441:    const statStr = `Panel ${panelIndex + 1} | ` + runningStatStr(renderStats);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-442-    ctx.fillText(statStr, size.width - statW, size.height - 10);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-456-        'section',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts:457:        m('div', `Panel Container ${index + 1}`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-458-        m('div',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts:459:          `${this.perfStats.totalPanels} panels, ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts:460:              `${this.perfStats.panelsOnCanvas} on canvas.`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/panel_container.ts-461-        m('div', runningStatStr(this.perfStats.renderStats)), )];
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-376-          m('p',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts:377:            `This trace is ${size}mb, opening it in the legacy UI ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-378-                `may fail.`),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-467-  } else {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts:468:    throw new Error(`Download from ${JSON.stringify(src)} is not supported`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-469-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-524-    return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts:525:        `.dbg-info-square${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-526-        {title},
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-527-        m('div', label),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts:528:        m('div', `${failed ? 'FAIL' : globals.numQueuedQueries}`));
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-529-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-596-    return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts:597:        `.dbg-info-square${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-598-        {title, ondblclick: toggle},
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-660-              const fileSizeMB = Math.ceil(engines[0].source.file.size / 1e6);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts:661:              traceTitle += ` (${fileSizeMB} MB)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-662-              break;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-675-          if (traceTitle !== '') {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts:676:            const tabTitle = `${traceTitle} - Perfetto UI`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-677-            if (tabTitle !== lastTabTitle) {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-684-      vdomSections.push(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts:685:          m(`section${section.expanded ? '.expanded' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-686-            m('.section-header',
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-710-      vdomSections.push(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts:711:        m(`section${vidSection.expanded ? '.expanded' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/sidebar.ts-712-          m('.section-header',
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-52-                m('th', `Process`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts:53:                m('td', `${threadInfo.procName} [${threadInfo.pid}]`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-54-              m('tr',
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-56-                m('td',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts:57:                  `${threadInfo.threadName} [${threadInfo.tid}]`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-58-                  m('i.material-icons.grey',
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-62-                m('th', `Start time`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts:63:                m('td', `${timeToCode(sliceInfo.ts)}`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-64-              m('tr',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-65-                m('th', `Duration`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts:66:                m('td', `${timeToCode(sliceInfo.dur)}`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts:67:              m('tr', m('th', `Prio`), m('td', `${sliceInfo.priority}`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-68-              m('tr',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-69-                m('th', `End State`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts:70:                m('td', `${translateState(sliceInfo.endState)}`))
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-71-            ]),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-135-            details.wakerCpu} by`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts:136:        const processText = `P: ${threadInfo.procName} [${threadInfo.pid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts:137:        const threadText = `T: ${threadInfo.threadName} [${threadInfo.tid}]`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/slice_panel.ts-138-        ctx.fillText(displayText, startDraw.x + 20, startDraw.y + 20);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/router.ts-58-      console.info(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/router.ts:59:          `Route ${route} not known redirecting to ${this.defaultRoute}.`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/router.ts-60-      this.dispatch(Actions.navigate({route: this.defaultRoute}));
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/thread_state_panel.ts-50-                    'td',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/thread_state_panel.ts:51:                    `${timeToCode(attrs.dur)} `,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/thread_state_panel.ts-52-                    )),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/thread_state_panel.ts-57-                m('th', `Process`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/thread_state_panel.ts:58:                m('td', `${threadInfo.procName} [${threadInfo.pid}]`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/thread_state_panel.ts-59-            ])]));
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/thread_state_panel.ts-74-    return [
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/thread_state_panel.ts:75:      `${translateState(state)} on CPU ${cpu}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/thread_state_panel.ts-76-      m('i.material-icons.grey',
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-52-    return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts:53:        `.probe${enabled ? '.enabled' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-54-        attrs.img && m('img', {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts:55:          src: `assets/${attrs.img}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-56-          onclick: () => onToggle(!enabled),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-94-    try {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts:95:      const date = new Date(`1970-01-01T${hms}.000Z`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-96-      if (isNaN(date.getTime())) return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-141-          {oninput: m.withAttr('value', v => this.onSliderChange(attrs, v))}),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts:142:        m(`input.spinner[min=${min !== undefined ? min : 1}][for=${id}]`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-143-          spinnerCfg),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-194-    }
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts:195:    const label = `${attrs.title} ${numSelected ? `(${numSelected})` : ''}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-196-    return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts:197:        `select.dropdown${attrs.cssClass || ''}[multiple=multiple]`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-198-        {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-233-        m('header', attrs.title),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts:234:        m(`textarea.extra-input${attrs.cssClass || ''}`, {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_widgets.ts-235-          onchange: (e: Event) =>
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/scroll_helper.ts-59-    trackId: string|number, openGroup = false) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/scroll_helper.ts:60:  const trackIdString = `${trackId}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/scroll_helper.ts-61-  const track = document.querySelector('#track_' + trackIdString);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/scroll_helper.ts-76-  if (!trackGroupId || !trackGroup) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/scroll_helper.ts:77:    console.error(`Can't scroll, track (${trackIdString}) not found.`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/scroll_helper.ts-78-    return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/overview_timeline_panel.ts-94-          const lightness = Math.ceil((1 - loads[i].load * 0.7) * 100);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/overview_timeline_panel.ts:95:          ctx.fillStyle = `hsl(${hueForCpu(y)}, 50%, ${lightness}%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/overview_timeline_panel.ts-96-          ctx.fillRect(xStart, yOff, xEnd - xStart, Math.ceil(trackHeight));
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-119-                  m('div.time',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts:120:                    `Snapshot time: ${timeToCode(heapDumpInfo.ts)}`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-121-                  m('input[type=text][placeholder=Focus]', {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-139-            ]),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts:140:          m(`div[style=height:${height}px]`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-141-      );
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-194-    const viewingOptions = [
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts:195:      m(`button${this.getButtonsClass(SPACE_MEMORY_ALLOCATED_NOT_FREED_KEY)}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-196-        {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-201-        'space'),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts:202:      m(`button${this.getButtonsClass(OBJECTS_ALLOCATED_NOT_FREED_KEY)}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-203-        {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-212-      viewingOptions.push(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts:213:          m(`button${this.getButtonsClass(ALLOC_SPACE_MEMORY_ALLOCATED_KEY)}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-214-            {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-219-            'alloc space'),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts:220:          m(`button${this.getButtonsClass(OBJECTS_ALLOCATED_KEY)}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/heap_profile_panel.ts-221-            {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-128-    return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:129:        `label${cfg.mode === mode ? '.selected' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-130-        m(`input[type=radio][name=rec_mode]`, checkboxArgs),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:131:        m(`img[src=assets/${img}]`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-132-        m('span', title));
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-135-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:136:      `.record-section${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-137-      m('header', 'Recording mode'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-182-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:183:      `.record-section${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-184-      m(Probe,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-211-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:212:      `.record-section${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-213-      m(Probe, {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-223-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:224:      `.record-section${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-225-      m(Probe,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-306-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:307:      `.${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-308-      m(Textarea, {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-382-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:383:      `.${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-384-      m(Textarea, {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-424-    if (typeof MeminfoCounters[x] === 'number' &&
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:425:        !`${x}`.endsWith('_UNSPECIFIED')) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-426-      meminfoOpts.set(x, x.replace('MEMINFO_', '').toLowerCase());
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-431-    if (typeof VmstatCounters[x] === 'number' &&
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:432:        !`${x}`.endsWith('_UNSPECIFIED')) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-433-      vmstatOpts.set(x, x.replace('VMSTAT_', '').toLowerCase());
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-436-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:437:      `.record-section${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-438-      m(Probe,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-546-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:547:      `.record-section${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-548-      m(Probe,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-590-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:591:      `.record-section${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-592-      m(Probe, {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-677-    categoriesMap.set(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:678:        cat, `${cat.replace(disabledPrefix, '')} (high overhead)`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-679-  });
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-693-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:694:      `.record-section${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-695-      m(Probe,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-826-  return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:827:      `.record-section.instructions${cssClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-828-      m('header', 'Instructions'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-937-    // starts recording
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:938:    cmd += `(sleep 0.5 && adb shell screenrecord --time-limit ${time}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-939-    cmd += ' "/sdcard/tracescr.mp4") &\\\n';
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1010-  if (!lastRecordingError) return [];
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1011:  return m('label.error-label', `Error:  ${lastRecordingError}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1012-}
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1027-  } catch (e) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1028:    const err = `No device found: ${e.name}: ${e.message}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1029-    console.error(err, e);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1109-      m('a[href="#!/record?p=chrome"]',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1110:        m(`li${routePage === 'chrome' ? '.active' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1111-          m('i.material-icons', 'laptop_chromebook'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1124-        m('a[href="#!/record?p=buffers"]',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1125:          m(`li${routePage === 'buffers' ? '.active' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1126-            m('i.material-icons', 'tune'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1129-        m('a[href="#!/record?p=instructions"]',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1130:          m(`li${routePage === 'instructions' ? '.active' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1131-            m('i.material-icons.rec', 'fiber_manual_record'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1136-        m('a[href="#!/record?p=cpu"]',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1137:          m(`li${routePage === 'cpu' ? '.active' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1138-            m('i.material-icons', 'subtitles'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1141-        m('a[href="#!/record?p=gpu"]',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1142:          m(`li${routePage === 'gpu' ? '.active' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1143-            m('i.material-icons', 'aspect_ratio'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1146-        m('a[href="#!/record?p=power"]',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1147:          m(`li${routePage === 'power' ? '.active' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1148-            m('i.material-icons', 'battery_charging_full'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1151-        m('a[href="#!/record?p=memory"]',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1152:          m(`li${routePage === 'memory' ? '.active' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1153-            m('i.material-icons', 'memory'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1156-        m('a[href="#!/record?p=android"]',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1157:          m(`li${routePage === 'android' ? '.active' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1158-            m('i.material-icons', 'android'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1162-        m('a[href="#!/record?p=advanced"]',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts:1163:          m(`li${routePage === 'advanced' ? '.active' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/record_page.ts-1164-            m('i.material-icons', 'settings'),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/index.ts-225-  errorReportingChannel.port2.onmessage = (e) =>
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/index.ts:226:      maybeShowErrorDialog(`${e.data}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/index.ts-227-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/error_dialog.ts-39-    const queuedErr = queuedErrors.shift();
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/error_dialog.ts:40:    errLog += `\n\n---------------------------------------\n${queuedErr}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/error_dialog.ts-41-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/error_dialog.ts-44-  let link = 'https://goto.google.com/perfetto-ui-bug';
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/error_dialog.ts:45:  link += '?title=' + encodeURIComponent(`UI Error: ${errTitle}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/error_dialog.ts-46-  link += '&description=' + encodeURIComponent(errLog.substr(0, 32768));
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-71-    const dragClass = this.dragging ? `drag` : '';
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts:72:    const dropClass = this.dropping ? `drop-${this.dropping}` : '';
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-73-    return m(
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-75-        {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts:76:          class: `${highlightClass} ${dragClass} ${dropClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-77-          onmousedown: this.onmousedown.bind(this),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-123-    globals.rafScheduler.scheduleFullRedraw();
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts:124:    dataTransfer.setData('perfetto/track', `${this.attrs!.trackState.id}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-125-    dataTransfer.setDragImage(new Image(), 0, 0);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-213-          style: {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts:214:            height: `${Math.max(24, attrs.track.getHeight())}px`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-215-          },
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-242-        {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts:243:          class: `${attrs.showButton ? 'show' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_panel.ts-244-          onclick: attrs.action,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/time_selection_panel.ts-147-    const timeFromStart = timeToString(ts);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/time_selection_panel.ts:148:    const label = `${offsetTime} (${timeFromStart})`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/time_selection_panel.ts-149-    drawIBar(ctx, xPos, this.bounds(size), label);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/topbar.ts-101-          `.omnibox.message-mode`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/topbar.ts:102:          m(`input[placeholder=${globals.state.status.msg}][readonly]`, {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/topbar.ts-103-            value: '',
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/topbar.ts-109-    return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/topbar.ts:110:        `.omnibox${commandMode ? '.command-mode' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/topbar.ts-111-        m('input', {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/details_panel.ts-239-          style: {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/details_panel.ts:240:            height: `${this.detailsHeight}px`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/details_panel.ts-241-            display: this.showDetailsPanel ? null : 'none'
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/clipboard.ts-20-  } catch (err) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/clipboard.ts:21:    console.error(`Failed to copy "${text}" to clipboard: ${err}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/clipboard.ts-22-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/pages.ts-24-  if (!permalink.requestId || !permalink.hash) return null;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/pages.ts:25:  const url = `${self.location.origin}/#!/?s=${permalink.hash}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/pages.ts-26-  return m('.alert-permalink', [
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/pages.ts:27:    m('div', 'Permalink: ', m(`a[href=${url}]`, url)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/pages.ts-28-    m('button',
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/notes_panel.ts-256-          m('.notes-editor-panel-heading',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/notes_panel.ts:257:            `Annotation at ${timeToString(startTime)}`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/notes_panel.ts-258-          m('input[type=text]', {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/css_constants.ts-27-  const match = width.match(/^\W*(\d+)px$/);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/css_constants.ts:28:  if (!match) throw Error(`Could not parse shell width as number (${width})`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/css_constants.ts-29-  return Number(match[1]);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/css_constants.ts-38-  const match = width.match(/^\W*(\d+)px$/);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/css_constants.ts:39:  if (!match) throw Error(`Could not parse topbar height as number (${width})`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/css_constants.ts-40-  return Number(match[1]);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-98-    const hue = this.hash(name);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts:99:    return `hsl(${hue}, 50%, 65%)`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-100-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-146-    ctx.fillRect(x, currentY, width, nodeHeight);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts:147:    ctx.font = `${this.textSize}px Roboto Condensed`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-148-    const text = cropText(
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-209-      // Draw name.
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts:210:      ctx.font = `${this.textSize}px Roboto Condensed`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-211-      const text = cropText(name, charWidth, width - 2);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-231-      this.graphData.set(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts:232:          `${value.depth};${currentX}`, {callsite: value, width});
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-233-      const xStarts = this.xStartsPerDepth.get(value.depth);
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-313-    if (unit === '') return totalSize.toLocaleString();
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts:314:    if (totalSize === 0) return `0 ${unit}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-315-    const units = [
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-326-        result.toFixed(2);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts:327:    return `${resultString} ${units[unitsIndex][0]}${unit}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-328-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-365-      const startX = this.searchSmallest(this.xStartsPerDepth.get(depth)!, x);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts:366:      const result = this.graphData.get(`${depth};${startX}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/flamegraph.ts-367-      if (result !== undefined) {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts-78-      case 'STRING':
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts:79:        return `${data.strings[data.columns[columnIndex].data[rowIndex]]}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts-80-      case 'TIMESTAMP_NS':
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts:81:        return `${data.columns[columnIndex].data[rowIndex] / 1000000}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts-82-      case 'STATE':
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts-83-        return translateState(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts:84:            `${data.strings[data.columns[columnIndex].data[rowIndex]]}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts-85-      case 'NUMBER':
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts-86-      default:
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts:87:        return `${data.columns[columnIndex].data[rowIndex]}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/aggregation_panel.ts-88-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts-38-                     m('th', `Start time`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts:39:                     m('td', `${timeToCode(counterInfo.startTime)}`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts-40-                   m('tr',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts-41-                     m('th', `Value`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts:42:                     m('td', `${counterInfo.value.toLocaleString()}`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts-43-                   m('tr',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts-44-                     m('th', `Delta`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts:45:                     m('td', `${counterInfo.delta.toLocaleString()}`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts-46-                   m('tr',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts-47-                     m('th', `Duration`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts:48:                     m('td', `${timeToCode(fromNs(counterInfo.duration))}`)),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/counter_panel.ts-49-                 ])],
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/post_message_handler.ts-95-        m('div',
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/post_message_handler.ts:96:          m('div', `${messageEvent.origin} is trying to open a trace file.`),
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/post_message_handler.ts-97-          m('div', 'Do you trust the origin and want to proceed?')),
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_group_panel.ts-105-    return m(
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_group_panel.ts:106:        `.track-group-panel[collapsed=${collapsed}]`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_group_panel.ts-107-        {id: 'track_' + this.trackGroupId},
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_group_panel.ts-115-            },
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_group_panel.ts:116:            class: `${highlightClass}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/track_group_panel.ts-117-          },
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/perf.ts-88-export function runningStatStr(stat: RunningStatistics) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/perf.ts:89:  return `Last: ${stat.last.toFixed(2)}ms | ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/perf.ts:90:      `Avg: ${stat.mean.toFixed(2)}ms | ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/perf.ts:91:      `Avg${stat.maxBufferSize}: ${stat.bufferMean.toFixed(2)}ms`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/frontend/perf.ts-92-}
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/registry.ts-26-    if (this.registry.has(kind)) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/registry.ts:27:      throw new Error(`Registrant ${kind} already exists in the registry`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/registry.ts-28-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/registry.ts-38-    if (registrant === undefined) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/registry.ts:39:      throw new Error(`${kind} has not been registered.`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/registry.ts-40-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-84-    clearTraceState(state);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:85:    const id = `${state.nextId++}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-86-    state.engines[id] = {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-95-    clearTraceState(state);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:96:    const id = `${state.nextId++}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-97-    state.engines[id] = {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-106-    clearTraceState(state);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:107:    const id = `${state.nextId++}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-108-    state.engines[id] = {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-117-    clearTraceState(state);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:118:    const id = `${state.nextId++}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-119-    state.engines[id] = {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-145-    args.tracks.forEach(track => {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:146:      const id = track.id === undefined ? `${state.nextId++}` : track.id;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-147-      track.id = id;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-160-  }): void {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:161:    const id = args.id !== undefined ? args.id : `${state.nextId++}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-162-    state.tracks[id] = {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-311-  createPermalink(state: StateDraft, _: {}): void {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:312:    state.permalink = {requestId: `${state.nextId++}`, hash: undefined};
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-313-  },
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-323-    state.permalink = {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:324:      requestId: `${state.nextId++}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-325-      hash: args.hash,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-368-      args: {timestamp: number, color: string, isMovie: boolean}): void {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:369:    const id = `${state.nextId++}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-370-    state.notes[id] = {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-385-      void {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts:386:        const id = `${state.nextId++}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions.ts-387-        state.notes[id] = {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/engine.ts-92-      // Query failed, throw an error since it was not a user query
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/engine.ts:93:      console.error(`Query error "${sqlQuery}": ${result.error}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/engine.ts:94:      throw new Error(`Query error "${sqlQuery}": ${result.error}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/engine.ts-95-    } finally {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/time.ts-28-  }
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/time.ts:29:  return `${sign < 0 ? '-' : ''}${Math.round(n * 10) / 10} ${units[u]}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/time.ts-30-}
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-95-    if (colNamesToDedupe.has(colName)) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts:96:      res.push(`${colName}.${i + 1}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-97-    } else {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-149-    const i = allColumns.indexOf(key);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts:150:    assertTrue(i !== -1, `Expected column "${key}" (cols ${allColumns})`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-151-
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-157-      for (let j = 0; j < raw.numRecords; j++) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts:158:        assertFalse(column.isNulls![i], `Unexpected null in ${key} row ${j}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-159-      }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-163-      if (columnType === COLUMN_TYPE_STR) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts:164:        throw new Error(`Expected numbers in column ${key} found strings`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-165-      }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-168-          columnType === COLUMN_TYPE_DOUBLE) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts:169:        throw new Error(`Expected strings in column ${key} found numbers`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/protos.ts-170-      }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/http_rpc_engine.ts-99-    if (resp.status !== 200) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/http_rpc_engine.ts:100:      pendingReq.resp.reject(`HTTP ${resp.status} - ${resp.statusText}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/http_rpc_engine.ts-101-      return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/http_rpc_engine.ts-116-      if (resp.status !== 200) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/http_rpc_engine.ts:117:        httpRpcState.failure = `${resp.status} - ${resp.statusText}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/http_rpc_engine.ts-118-      } else {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/http_rpc_engine.ts-126-    } catch (err) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/http_rpc_engine.ts:127:      httpRpcState.failure = `${err}`;
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/http_rpc_engine.ts-128-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions_unittest.ts-118-    StateActions.moveTrack(draft, {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions_unittest.ts:119:      srcId: `${firstTrackId}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions_unittest.ts-120-      op: 'after',
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions_unittest.ts:121:      dstId: `${secondTrackId}`,
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/actions_unittest.ts-122-    });
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-27-
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts:28:// Take the warm engine and start creating a new WASM engine in the background
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-29-// for the next call.
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-34-  if (activeWorkers.has(id)) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts:35:    throw new Error(`Duplicate worker ID ${id}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-36-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-44-  if (!activeWorkers.has(id)) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts:45:    throw new Error(`Cannot find worker ID ${id}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-46-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-51-/**
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts:52: * It's quite slow to compile WASM and (in Chrome) this happens every time
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts:53: * a worker thread attempts to load a WASM module since there is no way to
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-54- * cache the compiled code currently. To mitigate this we can always keep a
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts:55: * WASM backend 'ready to go' just waiting to be provided with a trace file.
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-56- * warmupWasmEngineWorker (together with getWasmEngineWorker)
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-71-/**
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts:72: * This implementation of Engine uses a WASM backend hosted in a separate
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-73- * worker thread.
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-104-    // when using the HttpRpcEngine.
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts:105:    throw new Error('restoreInitialTables() not supported by the WASM engine');
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-106-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-139-    if (response.aborted) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts:140:      request.respHandler.reject('WASM module crashed');
chromium-84.0.4147.105/third_party/perfetto/ui/src/common/wasm_engine_proxy.ts-141-    } else {
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/query/index.ts-158-    // tslint:disable-next-line no-any
chromium-84.0.4147.105/third_party/perfetto/ui/src/query/index.ts:159:    const f = (this as any)[`${this.state}On${input.kind}`];
chromium-84.0.4147.105/third_party/perfetto/ui/src/query/index.ts-160-    if (f === undefined) {
chromium-84.0.4147.105/third_party/perfetto/ui/src/query/index.ts:161:      throw new Error(`No edge for input '${input.kind}' in '${this.state}'`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/query/index.ts-162-    }
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/query/index.ts-293-                m('.query-time',
chromium-84.0.4147.105/third_party/perfetto/ui/src/query/index.ts:294:                  isResult(q) ? `${q.executionTimeNs / 1000000}ms` : ''),
chromium-84.0.4147.105/third_party/perfetto/ui/src/query/index.ts-295-                isResult(q) ? m('.query-content', renderTable(q.result)) : null,
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/chrome_extension/chrome_tracing_controller.ts-215-            `Could not attach to DevTools browser target ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/chrome_extension/chrome_tracing_controller.ts:216:            `(req. Chrome >= M81): ${error}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/chrome_extension/chrome_tracing_controller.ts-217-        return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/src/chrome_extension/chrome_tracing_controller.ts-242-            `Could not attach to DevTools browser target ` +
chromium-84.0.4147.105/third_party/perfetto/ui/src/chrome_extension/chrome_tracing_controller.ts:243:            `(req. Chrome >= M81): ${error}`);
chromium-84.0.4147.105/third_party/perfetto/ui/src/chrome_extension/chrome_tracing_controller.ts-244-        return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/ui/BUILD.gn-68-
chromium-84.0.4147.105/third_party/perfetto/ui/BUILD.gn:69:# A minimal page to profile the WASM engine without the all UI.
chromium-84.0.4147.105/third_party/perfetto/ui/BUILD.gn-70-group("query") {
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-128-function renderHeader() {
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:129:  const active = id => m.route.get().startsWith(`/${id}`) ? '.active' : '';
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-130-  const logUrl = 'https://goto.google.com/perfetto-ci-logs-';
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-134-    m('nav',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:135:      m(`div${active('cls')}`, m('a[href=/#!/cls]', 'CLs')),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:136:      m(`div${active('jobs')}`, m('a[href=/#!/jobs]', 'Jobs')),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:137:      m(`div${active('stats')}`, m('a[href=/#!/stats/1d]', 'Stats')),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:138:      m(`div`, m(`a[href=${docsUrl}][target=_blank]`, 'Docs')),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-139-      m(`div.logs`, 'Logs',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:140:        m('div', m(`a[href=${logUrl}controller][target=_blank]`, 'Controller')),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:141:        m('div', m(`a[href=${logUrl}workers][target=_blank]`, 'Workers')),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:142:        m('div', m(`a[href=${logUrl}frontend][target=_blank]`, 'Frontend')),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-143-      ),
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-151-    const postsubmitHeader = m('tr',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:152:      m(`td.header[colspan=${allCols}]`, 'Post-submit')
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-153-    );
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-155-    const postsubmitLoadMore = m('tr',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:156:      m(`td[colspan=${allCols}]`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-157-        m('a[href=#]',
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-164-    const presubmitHeader = m('tr',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:165:      m(`td.header[colspan=${allCols}]`, 'Pre-submit')
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-166-    );
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-183-      footer = m('footer',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:184:        `Showing only CL ${vnode.attrs.cl} - `,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-185-        m(`a[href=#!/cls]`, 'Click here to see all CLs')
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-212-              m('tr#cls_header',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:213:                JOB_TYPES.map(job => m(`td#${job.id}`, job.label))
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-214-              ),
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-250-  // Create the row for the latest patchset (as fetched by Gerrit).
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:251:  rows.push(m(`tr.${cl.status}`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-252-    m('td',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:253:      m(`i.material-icons.expand${expanded ? '.expanded' : ''}`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-254-        { onclick: toggleExpand },
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-256-      ),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:257:      m(`a[href=${cfg.GERRIT_REVIEW_URL}/+/${cl.num}/${cl.psNum}]`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:258:        `${cl.subject}`, m('span.ps', `#${cl.psNum}`))
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-259-    ),
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-262-    m('td', getLastUpdate(cl.lastUpdate)),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:263:    JOB_TYPES.map(x => renderClJobCell(`cls/${cl.num}-${cl.psNum}`, x.id))
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-264-  ));
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-268-  for (let psNum = cl.psNum; expanded && psNum > 0; psNum--) {
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:269:    const src = `cls/${cl.num}-${psNum}`;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-270-    const jobs = state.dbJobSets[src];
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-273-      m('td',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:274:        m(`a[href=${cfg.GERRIT_REVIEW_URL}/+/${cl.num}/${psNum}]`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:275:          '  Patchset', m('span.ps', `#${psNum}`))
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-276-      ),
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-293-    m('td',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:294:      m(`a[href=${cfg.REPO_URL}/+/${branch.rev}]`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:295:        subject, m('span.ps', `#${branch.rev.substr(0, 8)}`)
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-296-      )
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-300-    m('td', getLastUpdate(new Date(branch.time_committed))),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:301:    JOB_TYPES.map(x => renderClJobCell(`branches/${key}`, x.id))
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-302-  ));
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-308-    const nextKey = allKeys[curIdx + 1];
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:309:    const range = `${state.dbBranches[nextKey].rev}..${branch.rev}`;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-310-    const logs = (state.gerritLogs[range] || []).slice(1);
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-316-          m('td',
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:317:            m(`a[href=${cfg.REPO_URL}/+/${log.commit}]`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-318-              log.message.split('\n')[0],
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:319:              m('span.ps', `#${log.commit.substr(0, 8)}`)
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-320-            )
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-324-          m('td', getLastUpdate(parseGerritTime(log.committer.time))),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:325:          m(`td[colspan=${JOB_TYPES.length}]`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-326-            'No post-submit was run for this revision'
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-347-  const eventHandlers = jobId ? { onmouseover: () => showLogTail(jobId) } : {};
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:348:  const logUrl = jobId ? `#!/logs/${jobId}` : '#';
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:349:  return m(`a.${jobStatus}[href=${logUrl}][title=${jobStatus}]`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-350-    eventHandlers,
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-446-        m('td', getLastUpdate(new Date(worker.last_update))),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:447:        m('td', m(`a[href=#!/jobs/${worker.job_id}]`, worker.job_id)),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-448-      );
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-474-          renderJobLink(jobId, job ? job.status : undefined),
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:475:          m(`span.status.${job.status}`, job.status)
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-476-        )
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-486-          const cl_and_ps = job.src.substr(4).replace('-', '/');
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:487:          const href = `${cfg.GERRIT_REVIEW_URL}/+/${cl_and_ps}`;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:488:          cell = m(`a[href=${href}][target=_blank]`, cl_and_ps);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-489-        } else if (job.src.startsWith('branches/')) {
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-492-        cols.push(m('td', cell));
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:493:        cols.push(m('td', `${job.type}`));
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:494:        cols.push(m('td', `${job.worker || ''}`));
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:495:        cols.push(m('td', `${job.time_queued}`));
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:496:        cols.push(m(`td[title=Start ${job.time_started}]`, `${tStr(tQ, tS)}`));
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:497:        cols.push(m(`td[title=End ${job.time_ended}]`, `${tStr(tS, tE)}`));
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-498-      } else {
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-500-      }
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:501:      return m(`tr${vnode.attrs.jobId === jobId ? '.selected' : ''}`, cols)
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-502-    };
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-540-      let url = 'https://public.google.stackdriver.com/public/chart';
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:541:      url += `/${id}?timeframe=${vnode.attrs.period}`;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-542-      url += '&drawMode=color&showLegend=false&theme=light';
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-565-  // encoded in ISO format.
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:566:  return new Date(`${str} UTC`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-567-}
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-599-    cls.push(cl);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:600:    fetchCIJobsForCLOrBranch(`cls/${cl.num}-${cl.psNum}`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-601-  }
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-606-async function fetchGerritCommit(sha1) {
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:607:  const response = await fetch(`/gerrit/commits/${sha1}`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-608-  console.assert(response.status === 200);
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-614-async function fetchGerritLog(first, second) {
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:615:  const range = `${first}..${second}`;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:616:  const response = await fetch(`/gerrit/log/${range}`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-617-  if (response.status !== 200) return;
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-625-  if (src in state.clRefs) return;  // Aslready have a listener for this key.
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:626:  const ref = firebase.database().ref(`/ci/${src}`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-627-  state.clRefs[src] = ref;
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-640-  let ref = firebase.database().ref('/ci/cls').orderByKey();
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:641:  ref = ref.startAt(`${cl}-0`).endAt(`${cl}-~`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-642-  ref.once('value', (e) => {
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-645-      const jobs = Object.keys(patchsets[clAndPs].jobs);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:646:      state.dbJobSets[`cls/${clAndPs}`] = jobs;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-647-      for (var jobId of jobs) {
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-656-  if (jobId in state.jobRefs) return;  // Already have a listener for this key.
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:657:  const ref = firebase.database().ref(`/ci/jobs/${jobId}`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-658-  state.jobRefs[jobId] = ref;
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-679-      state.dbBranches[key] = branchInfo;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:680:      fetchCIJobsForCLOrBranch(`branches/${key}`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-681-      if (i < keys.length - 1) {
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-703-  state.termLines = [
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:704:    `Fetching last ${TAIL} lines for ${jobId}.`,
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-705-    `Click on the CI icon to see the full log.`
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-708-  scheduleRedraw();
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:709:  const ref = firebase.database().ref(`/ci/logs/${jobId}`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-710-  const lines = (await ref.orderByKey().limitToLast(TAIL).once('value')).val();
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-717-  state.termClear = true;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:718:  state.termLines = [`Fetching full for ${jobId} ...`];
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-719-  state.termJobId = jobId;
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-726-  state.termJobId = jobId;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:727:  const ref = firebase.database().ref(`/ci/logs/${jobId}`).orderByKey();
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-728-  let lastKey = '';
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-730-  for (; ;) {
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:731:    const batchRef = ref.startAt(`${lastKey}!`).limitToFirst(BATCH);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-732-    const logs = (await batchRef.once('value')).val();
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-744-  state.termJobId = jobId;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:745:  let ref = firebase.database().ref(`/ci/logs/${jobId}`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:746:  ref = ref.orderByKey().startAt(`${lastLineKey}!`);
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-747-  state.realTimeLogRef = ref;
##############################################
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-770-    const isErr = lines[key].indexOf('FAILED:') >= 0;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:771:    let line = `[${timeString}] ${lines[key]}`;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js:772:    if (isErr) line = `\u001b[33m${line}\u001b[0m`;
chromium-84.0.4147.105/third_party/perfetto/infra/ci/frontend/static/script.js-773-    state.termLines.push(line);
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/main/source/os_specific_inline.h-23-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/main/source/os_specific_inline.h:24:  __asm {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/main/source/os_specific_inline.h-25-    fld x_dbl
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c-37-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c:38:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c-39-      ".set          push                                                \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c-144-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c:145:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c-146-    ".set          push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c-251-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c:252:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lattice_mips.c-253-    ".set          push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c-36-  // Load coefficients outside the loop and sign-extend gain and sign
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c:37:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c-38-    ".set     push                                        \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c-60-  for (i = 0; i < loopNumber; i++) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c:61:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_filter_mips.c-62-      ".set       push                                            \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-40-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c:41:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-42-      ".set      push                                                \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-63-    if (sign_3 != 0) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c:64:      __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-65-        ".set      push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-77-        // Shift right for overflow.
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c:78:        __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-79-          ".set      push                                             \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-95-      } else {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c:96:        __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-97-          ".set      push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-123-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c:124:      __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-125-        ".set      push                                                   \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-149-      if (sign_3 != 0) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c:150:        __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-151-          ".set      push                                     \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-165-          // Shift right for overflow.
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c:166:          __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-167-            ".set      push                                              \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-183-        } else {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c:184:          __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-185-            ".set      push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-205-    int tmp1;
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c:206:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model_mips.c-207-      ".set    push                                                     \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-37-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c:38:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-39-    ".set           push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-209-  k = FRAMESAMPLES / 4;
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c:210:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-211-    ".set           push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-300-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c:301:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-302-    ".set           push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-615-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c:616:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-617-    ".set           push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-840-  k = FRAMESAMPLES / 4;
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c:841:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-842-    ".set           push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-929-  k = FRAMESAMPLES / 2;
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c:930:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/transform_mips.c-931-    ".set           push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator_mips.c-36-    RTC_COMPILE_ASSERT(PITCH_CORR_LEN2 % 4 == 0);
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator_mips.c:37:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator_mips.c-38-      ".set       push                                          \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator_mips.c-107-    csum32 = 0;
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator_mips.c:108:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator_mips.c-109-      ".set       push                                             \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding_mips.c-42-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding_mips.c:43:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding_mips.c-44-      ".set     push                                                       \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding_mips.c-112-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding_mips.c:113:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding_mips.c-114-      ".set     push                                                       \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding_mips.c-187-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding_mips.c:188:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding_mips.c-189-    ".set       push                                                   \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks.c-112-      register int tmp_coeff1;
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks.c:113:      __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks.c-114-        "ldr %[tmp_coeff0], [%[coeff]]\n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c-32-  // Calculate r[0] and scaling needed.
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c:33:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c-34-    ".set          push                                            \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c-141-      loop_size = (count) >> 2;
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c:142:      __asm  __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c-143-        ".set        push                                          \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c-210-      loop_size = (count) >> 2;
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c:211:      __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c-212-        ".set        push                                          \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c-283-      loop_size = (count) >> 2;
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c:284:      __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filters_mips.c-285-        ".set        push                                          \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c-28-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c:29:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c-30-    ".set           push                                                  \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c-120-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c:121:  __asm  __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c-122-    "lh         %[c0],         0(%[coeff_ptr])            \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c-147-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c:148:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c-149-      ".set      push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c-217-  }
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c:218:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/filterbanks_mips.c-219-    ".set            push                                            \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-76-  // FFT of signal
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:77:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-78-      ".set        push                                                    \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-151-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:152:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-153-      ".set        push                                                     "
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-234-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:235:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-236-      ".set      push                                                        "
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-353-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:354:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-355-      ".set       push                                               \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-379-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:380:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-381-      ".set       push                                                       "
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-606-  for (i = 0; i < PART_LEN; i += 4) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:607:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-608-        ".set           push                                            \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-690-  for (i = 0; i < PART_LEN; i += 4) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:691:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-692-        "ulw            %[temp0],   0(%[temp8])               \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-735-  for (i = 0; i < PART_LEN; i += 4) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:736:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-737-        "ulw            %[temp1], 0(%[temp0])           \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-843-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:844:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-845-      "lw             %[freqt0],      0(%[freqp])             \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-874-  for (i = 4; i < PART_LEN; i += 4) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:875:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-876-        "ulw            %[freqt0],      0(%[freqp])                 \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-907-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:908:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-909-        "sh             %[tmp32no10],   -8(%[freqabsp])                 \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1174-    for (i = 0; i < (PART_LEN1 >> 3); i++) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1175:      __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1176-          "lh         %[temp1],       0(%[ptr1])                  \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1215-    for (i = 0; i < (PART_LEN1 & 7); i++) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1216:      __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1217-          "lh         %[temp1],       0(%[ptr1])                  \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1251-#if defined(MIPS_DSP_R1_LE)
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1252:        __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1253-            ".set       push                                        \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1290-#else
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1291:        __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1292-            ".set       push                                        \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1397-    // Shift to the noise domain.
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1398:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1399-        "lh     %[tmp32],       0(%[dfap])                              \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1421-      } else {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1422:        __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1423-            "subu   %[tmp32],       %[tnoise],      %[outLShift32]      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1436-          // Large enough for relative increase
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1437:          __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1438-              "mul    %[tnoise],  %[tnoise],  %[c2049]    \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1447-          if (aecm->noiseEstTooLowCtr[i] >= kNoiseEstIncCount) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1448:            __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1449-                "sra    %[tmp32],   %[tnoise],  9           \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1460-        // down first and then multiply
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1461:        __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1462-            "sra    %[tnoise],  %[tnoise],  11          \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1470-    // Shift to the noise domain.
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1471:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1472-        "lh     %[tmp32],       2(%[dfap])                              \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1494-      } else {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1495:        __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1496-            "subu   %[tmp32],       %[tnoise1],     %[outLShift32]      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1509-          // Large enough for relative increase
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1510:          __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1511-              "mul    %[tnoise1], %[tnoise1], %[c2049]   \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1520-          if (aecm->noiseEstTooLowCtr[i + 1] >= kNoiseEstIncCount) {
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1521:            __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1522-                "sra    %[tmp32],   %[tnoise1], 9           \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1533-        // down first and then multiply
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1534:        __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1535-            "sra    %[tnoise1], %[tnoise1], 11          \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1542-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1543:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1544-        "lh     %[tmp16],   0(%[lambdap])                           \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1568-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1569:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1570-        "mul    %[tmp32],   %[tmp32],       %[tmp16]                \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1578-
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1579:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1580-        "lh     %[tmp32],       0(%[randW16p])              \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1597-#else
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1598:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1599-        "sll    %[tmp16],       %[tmp16],                   1           \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1610-#endif
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc:1611:    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_mips.cc-1612-        "mul    %[tmp32],       %[tmp32],                   %[nrsh1]    \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_c.cc-346-#ifdef WEBRTC_ARCH_ARM_V7
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_c.cc:347:      __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/aecm/aecm_core_c.cc-348-          "smulbb %[tmp32no1], %[real], %[real]\n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md-16-   - install `virtualenv`
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md:17:   - `$ sudo apt-get install python-virtualenv`
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md-18-   - setup a new Python environment (e.g., `my_env`)
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md:19:   - `$ cd ~ && virtualenv my_env`
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md-20-   - activate the new Python environment
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md:21:   - `$ source ~/my_env/bin/activate`
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md-22-   - add dependcies via `pip`
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md:23:   - `(my_env)$ pip install enum34 numpy pydub scipy pandas pyquery jsmin \`
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md-24-                `csscompressor`
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md-42- - Deploy PolqaOem64 and set the `POLQA_PATH` environment variable
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md:43:   - e.g., `$ export POLQA_PATH=/var/opt/PolqaOem64`
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md-44- - Deploy the AIR Database and set the `AECHEN_IR_DATABASE_PATH` environment
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md-45- variable
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md:46:   - e.g., `$ export AECHEN_IR_DATABASE_PATH=/var/opt/AIR_1_4`
chromium-84.0.4147.105/third_party/webrtc/modules/audio_processing/test/py_quality_assessment/README.md-47- - Deploy probing signal tracks into
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h-79-#define PaUtil_WriteMemoryBarrier() __sync_synchronize()
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:80:/* as a fallback, GCC understands volatile asm and "memory" to mean it
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h-81- * should not reorder memory read/writes */
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h-84-#elif defined(__ppc__) || defined(__powerpc__) || defined(__PPC__)
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:85:#define PaUtil_FullMemoryBarrier() asm volatile("sync" ::: "memory")
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:86:#define PaUtil_ReadMemoryBarrier() asm volatile("sync" ::: "memory")
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:87:#define PaUtil_WriteMemoryBarrier() asm volatile("sync" ::: "memory")
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h-88-#elif defined(__i386__) || defined(__i486__) || defined(__i586__) || \
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h-89-    defined(__i686__) || defined(__x86_64__)
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:90:#define PaUtil_FullMemoryBarrier() asm volatile("mfence" ::: "memory")
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:91:#define PaUtil_ReadMemoryBarrier() asm volatile("lfence" ::: "memory")
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:92:#define PaUtil_WriteMemoryBarrier() asm volatile("sfence" ::: "memory")
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h-93-#else
##############################################
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h-116-#elif defined(_MSC_VER) || defined(__BORLANDC__)
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:117:#define PaUtil_FullMemoryBarrier() _asm { lock add    [esp], 0}
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:118:#define PaUtil_ReadMemoryBarrier() _asm { lock add    [esp], 0}
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h:119:#define PaUtil_WriteMemoryBarrier() _asm { lock add    [esp], 0}
chromium-84.0.4147.105/third_party/webrtc/modules/third_party/portaudio/pa_memorybarrier.h-120-#else
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/test/network_emulation/network_emulation_interfaces.cc-22-      data(data),
chromium-84.0.4147.105/third_party/webrtc/api/test/network_emulation/network_emulation_interfaces.cc:23:      headers_size(to.ipaddr().overhead() + application_overhead +
chromium-84.0.4147.105/third_party/webrtc/api/test/network_emulation/network_emulation_interfaces.cc-24-                   cricket::kUdpHeaderSize),
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.h-336-  StunAddressFamily family() const {
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.h:337:    switch (address_.ipaddr().family()) {
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.h-338-      case AF_INET:
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.h-346-  const rtc::SocketAddress& GetAddress() const { return address_; }
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.h:347:  const rtc::IPAddress& ipaddr() const { return address_.ipaddr(); }
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.h-348-  uint16_t port() const { return address_.port(); }
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-750-    }
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc:751:    rtc::IPAddress ipaddr(v4addr);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-752-    SetAddress(rtc::SocketAddress(ipaddr, port));
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-760-    }
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc:761:    rtc::IPAddress ipaddr(v6addr);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-762-    SetAddress(rtc::SocketAddress(ipaddr, port));
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-779-    case AF_INET: {
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc:780:      in_addr v4addr = address_.ipaddr().ipv4_address();
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-781-      buf->WriteBytes(reinterpret_cast<char*>(&v4addr), sizeof(v4addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-784-    case AF_INET6: {
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc:785:      in6_addr v6addr = address_.ipaddr().ipv6_address();
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-786-      buf->WriteBytes(reinterpret_cast<char*>(&v6addr), sizeof(v6addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-811-  if (owner_) {
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc:812:    rtc::IPAddress ip = ipaddr();
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun.cc-813-    switch (ip.family()) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-53-      in_addr v4_address = expected_address.ipv4_address();
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:54:      in_addr stun_address = addr->ipaddr().ipv4_address();
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-55-      ASSERT_EQ(0, memcmp(&v4_address, &stun_address, sizeof(stun_address)));
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-57-      in6_addr v6_address = expected_address.ipv6_address();
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:58:      in6_addr stun_address = addr->ipaddr().ipv6_address();
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-59-      ASSERT_EQ(0, memcmp(&v6_address, &stun_address, sizeof(stun_address)));
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-794-  StunXorAddressAttribute addr2(STUN_ATTR_XOR_MAPPED_ADDRESS, 20, NULL);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:795:  addr2.SetIP(addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-796-  addr2.SetPort(addr->port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-798-  // The internal IP address shouldn't change.
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:799:  ASSERT_EQ(addr2.ipaddr(), addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-800-
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-810-  addr2.Read(&read_buf);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:811:  ASSERT_NE(addr->ipaddr(), addr2.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:812:  addr2.SetIP(addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-813-  addr2.SetPort(addr->port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-815-  addr2.SetOwner(NULL);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:816:  ASSERT_EQ(addr2.ipaddr(), addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-817-  wrong_buf.Clear();
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-842-  StunXorAddressAttribute addr2(STUN_ATTR_XOR_MAPPED_ADDRESS, 20, NULL);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:843:  addr2.SetIP(addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-844-  addr2.SetPort(addr->port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-846-  // The internal IP address shouldn't change.
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:847:  ASSERT_EQ(addr2.ipaddr(), addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-848-
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-859-  EXPECT_TRUE(addr2.Read(&read_buf));
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:860:  ASSERT_EQ(addr->ipaddr(), addr2.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-861-
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-863-  addr2.SetOwner(NULL);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:864:  ASSERT_EQ(addr2.ipaddr(), addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-865-  wrong_buf.Clear();
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-872-  auto addr = StunAttribute::CreateAddress(STUN_ATTR_MAPPED_ADDRESS);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:873:  rtc::SocketAddress test_addr(test_ip, kTestMessagePort2);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-874-  addr->SetAddress(test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-885-  auto addr = StunAttribute::CreateAddress(STUN_ATTR_MAPPED_ADDRESS);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:886:  rtc::SocketAddress test_addr(test_ip, kTestMessagePort2);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-887-  addr->SetAddress(test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-899-  ASSERT_EQ(kTestMessagePort1, addr->port());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:900:  ASSERT_EQ(rtc::IPAddress(kIPv4TestAddress1), addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-901-
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-906-  ASSERT_EQ(kTestMessagePort2, addr2->port());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:907:  ASSERT_EQ(rtc::IPAddress(kIPv4TestAddress1), addr2->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-908-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-922-  auto addr = StunAttribute::CreateAddress(STUN_ATTR_MAPPED_ADDRESS);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:923:  rtc::SocketAddress test_addr(test_ip, kTestMessagePort2);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-924-  addr->SetAddress(test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-951-  auto addr = StunAttribute::CreateAddress(STUN_ATTR_MAPPED_ADDRESS);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:952:  rtc::SocketAddress test_addr(test_ip, kTestMessagePort4);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-953-  addr->SetAddress(test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-980-  auto addr = StunAttribute::CreateXorAddress(STUN_ATTR_XOR_MAPPED_ADDRESS);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:981:  rtc::SocketAddress test_addr(test_ip, kTestMessagePort1);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-982-  addr->SetAddress(test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1010-  auto addr = StunAttribute::CreateXorAddress(STUN_ATTR_XOR_MAPPED_ADDRESS);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:1011:  rtc::SocketAddress test_addr(test_ip, kTestMessagePort3);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1012-  addr->SetAddress(test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1542-  EXPECT_EQ(13, addr->port());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:1543:  EXPECT_EQ(legacy_ip, addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1544-
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1589-  EXPECT_EQ(13, addr->port());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:1590:  EXPECT_EQ(legacy_ip, addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1591-
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1600-  EXPECT_EQ(13, addr->port());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:1601:  EXPECT_EQ(legacy_ip, addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1602-
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1726-      auto addr = StunAttribute::CreateAddress(STUN_ATTR_MAPPED_ADDRESS);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:1727:      rtc::SocketAddress test_addr(test_ip, kTestMessagePort2);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1728-      addr->SetAddress(test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1740-      auto addr = StunAttribute::CreateAddress(STUN_ATTR_XOR_MAPPED_ADDRESS);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc:1741:      rtc::SocketAddress test_addr(test_ip, kTestMessagePort2);
chromium-84.0.4147.105/third_party/webrtc/api/transport/stun_unittest.cc-1742-      addr->SetAddress(test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/candidate.cc-104-
chromium-84.0.4147.105/third_party/webrtc/api/candidate.cc:105:  int addr_pref = IPAddressPrecedence(address_.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/api/candidate.cc-106-  int local_preference =
##############################################
chromium-84.0.4147.105/third_party/webrtc/api/candidate.cc-131-  if (use_hostname_address) {
chromium-84.0.4147.105/third_party/webrtc/api/candidate.cc:132:    rtc::SocketAddress hostname_only_addr(address().hostname(),
chromium-84.0.4147.105/third_party/webrtc/api/candidate.cc-133-                                          address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-431-  EXPECT_TRUE(GetResolution(&msg, &resolution));
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc:432:  rtc::IPAddress expected_addr(rtc::SocketAddress("192.168.0.1", 0).ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-433-  EXPECT_THAT(resolution, ElementsAre(Pair("webrtc.org.", expected_addr)));
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-457-  rtc::IPAddress expected_addr_ipv4(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc:458:      rtc::SocketAddress("192.168.0.1", 0).ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-459-  rtc::IPAddress expected_addr_ipv6(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc:460:      rtc::SocketAddress("fd12:3456:789a:1::1", 0).ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-461-  EXPECT_THAT(resolution,
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-473-  rtc::IPAddress expected_addr_ipv4(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc:474:      rtc::SocketAddress("192.168.0.1", 0).ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-475-  rtc::IPAddress expected_addr_ipv6(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc:476:      rtc::SocketAddress("fd12:3456:789a:1::1", 0).ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-477-  EXPECT_THAT(resolution,
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-536-  EXPECT_TRUE(answer.SetIPAddressInRecordData(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc:537:      rtc::SocketAddress("192.168.0.1", 0).ipaddr()));
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-538-  answer.SetTtlSeconds(120);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-554-  answer1.SetIPAddressInRecordData(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc:555:      rtc::SocketAddress("192.168.0.1", 0).ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-556-  answer1.SetTtlSeconds(60);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-563-  answer2.SetIPAddressInRecordData(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc:564:      rtc::SocketAddress("fd12:3456:789a:1::1", 0).ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/mdns_message_unittest.cc-565-  answer2.SetTtlSeconds(120);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-101-// The address of the public STUN server.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:102:static const SocketAddress kStunAddr("99.99.99.1", cricket::STUN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-103-// The addresses for the public turn server.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:104:static const SocketAddress kTurnUdpIntAddr("99.99.99.3",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-105-                                           cricket::STUN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:106:static const SocketAddress kTurnTcpIntAddr("99.99.99.4",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-107-                                           cricket::STUN_SERVER_PORT + 1);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:108:static const SocketAddress kTurnUdpExtAddr("99.99.99.5", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-109-static const cricket::RelayCredentials kRelayCredentials("test", "test");
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-1532-  EXPECT_EQ(PRFLX_PORT_TYPE, pair_ep1->remote_candidate().type());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:1533:  EXPECT_TRUE(pair_ep1->remote_candidate().address().ipaddr().IsNil());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-1534-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-1542-                  .remote_candidate.address()
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:1543:                  .ipaddr()
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-1544-                  .IsNil());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-1751-  fw()->SetUnbindableIps({rtc::GetAnyIP(AF_INET), rtc::GetAnyIP(AF_INET6),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:1752:                          kPublicAddrs[0].ipaddr()});
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-1753-  CreateChannels();
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-4800-  const auto local_address = rtc::SocketAddress(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:4801:      kPublicAddrs[0].ipaddr(), local_candidate.address().port());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-4802-  // Let ep2 signal its candidate to ep1. ep1 should form a candidate
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-4872-  const auto local_address = rtc::SocketAddress(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:4873:      kPublicAddrs[0].ipaddr(), local_candidate.address().port());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-4874-  bool mock_async_resolver_started = false;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-4941-  rtc::SocketAddress resolved_address_ep1(local_candidate_ep1.address());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:4942:  resolved_address_ep1.SetResolvedIP(kPublicAddrs[0].ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-4943-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-5000-      rtc::SocketAddress resolved_address_ep1(local_candidate_ep1.address());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:5001:      resolved_address_ep1.SetResolvedIP(kPublicAddrs[0].ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-5002-      EXPECT_CALL(mock_async_resolver, GetResolvedAddress(_, _))
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-5035-      // expectation.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:5036:      EXPECT_EQ(kPublicAddrs[0].ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:5037:                local_candidate.related_address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-5038-    } else {
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-5049-    } else if (remote_candidate.type() == RELAY_PORT_TYPE) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:5050:      EXPECT_EQ(kPublicAddrs[0].ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:5051:                remote_candidate.related_address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-5052-    } else {
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-5178-  rtc::SocketAddress resolved_address_ep1(local_candidate_ep1.address());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc:5179:  resolved_address_ep1.SetResolvedIP(kPublicAddrs[0].ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel_unittest.cc-5180-  EXPECT_CALL(mock_async_resolver, GetResolvedAddress(_, _))
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/async_stun_tcp_socket_unittest.cc-57-
chromium-84.0.4147.105/third_party/webrtc/p2p/base/async_stun_tcp_socket_unittest.cc:58:static const rtc::SocketAddress kClientAddr("11.11.11.11", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/async_stun_tcp_socket_unittest.cc:59:static const rtc::SocketAddress kServerAddr("22.22.22.22", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/async_stun_tcp_socket_unittest.cc-60-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel.cc-1257-                   << candidate.address().HostAsSensitiveURIString() << " to "
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel.cc:1258:                   << resolved_address.ipaddr().ToSensitiveString();
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel.cc-1259-  candidate.set_address(resolved_address);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel.cc-1756-    network_route_->packet_overhead =
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel.cc:1757:        selected_connection_->local_candidate().address().ipaddr().overhead() +
chromium-84.0.4147.105/third_party/webrtc/p2p/base/p2p_transport_channel.cc-1758-        GetProtocolOverhead(selected_connection_->local_candidate().protocol());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-28-
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc:29:static const SocketAddress kLocalAddr("127.0.0.1", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-30-static const SocketAddress kStunAddr1("127.0.0.1", 5000);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-32-static const SocketAddress kStunAddr3("127.0.0.1", 3000);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc:33:static const SocketAddress kBadAddr("0.0.0.1", 5000);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc:34:static const SocketAddress kStunHostnameAddr("localhost", 5000);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc:35:static const SocketAddress kBadHostnameAddr("not-a-real-hostname", 5000);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-36-// STUN timeout (with all retries) is cricket::STUN_TOTAL_TIMEOUT.
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-49-        thread_(ss_.get()),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc:50:        network_("unittest", "unittest", kLocalAddr.ipaddr(), 32),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-51-        socket_factory_(rtc::Thread::Current()),
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-59-        stun_keepalive_lifetime_(-1) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc:60:    network_.AddIP(kLocalAddr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-61-  }
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-101-      socket_.reset(socket_factory_.CreateUdpSocket(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc:102:          rtc::SocketAddress(kLocalAddr.ipaddr(), 0), 0, 0));
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-103-    }
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-335-  const SocketAddress kStunMappedAddr2("88.77.77.77", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc:336:  stun_server_1()->set_fake_stun_addr(kStunMappedAddr1);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc:337:  stun_server_2()->set_fake_stun_addr(kStunMappedAddr2);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port_unittest.cc-338-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/connection.cc-456-  std::string remote_ufrag;
chromium-84.0.4147.105/third_party/webrtc/p2p/base/connection.cc:457:  const rtc::SocketAddress& addr(remote_candidate_.address());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/connection.cc-458-  if (!port_->GetStunMessage(data, size, addr, &msg, &remote_ufrag)) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/basic_packet_socket_factory.cc-205-    for (int port = min_port; ret < 0 && port <= max_port; ++port) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/basic_packet_socket_factory.cc:206:      ret = socket->Bind(SocketAddress(local_address.ipaddr(), port));
chromium-84.0.4147.105/third_party/webrtc/p2p/base/basic_packet_socket_factory.cc-207-    }
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-467-                      [socket_address](const rtc::InterfaceAddress& addr) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc:468:                        return socket_address.ipaddr() == addr;
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-469-                      })) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-471-      RTC_LOG(LS_WARNING) << "Socket is bound to the address:"
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc:472:                          << socket_address.ipaddr().ToSensitiveString()
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-473-                          << ", rather than an address associated with network:"
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-478-          << "Socket is bound to the address:"
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc:479:          << socket_address.ipaddr().ToSensitiveString()
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-480-          << ", rather than an address associated with network:"
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-485-      RTC_LOG(LS_WARNING) << "Socket is bound to the address:"
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc:486:                          << socket_address.ipaddr().ToSensitiveString()
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-487-                          << ", rather than an address associated with network:"
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-1013-  // a permission for.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc:1014:  rtc::SocketAddress ext_addr(addr_attr->GetAddress());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc:1015:  if (!HasPermission(ext_addr.ipaddr())) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-1016-    RTC_LOG(LS_WARNING) << ToString()
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-1173-  return absl::c_any_of(entries_, [&ipaddr](const TurnEntry* e) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc:1174:    return e->address().ipaddr() == ipaddr;
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-1175-  });
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-1312-      << (use_hostname ? server_address_.address.hostname()
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc:1313:                       : server_address_.address.ipaddr().ToString())
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port.cc-1314-      << ":" << server_address_.address.port() << "?transport=" << transport;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/test_stun_server.h-28-  // Set a fake STUN address to return to the client.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/test_stun_server.h:29:  void set_fake_stun_addr(const rtc::SocketAddress& addr) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/test_stun_server.h-30-    fake_stun_addr_ = addr;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-368-        port_->Network()->GetIPs(), [this](const rtc::InterfaceAddress& addr) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc:369:          return socket_->GetLocalAddress().ipaddr() == addr;
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-370-        }));
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-452-                     [socket_address](const rtc::InterfaceAddress& addr) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc:453:                       return socket_address.ipaddr() == addr;
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-454-                     })) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-459-      RTC_LOG(LS_WARNING) << "Socket is bound to the address:"
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc:460:                          << socket_address.ipaddr().ToSensitiveString()
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-461-                          << ", rather than an address associated with network:"
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-466-          << "Socket is bound to the address:"
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc:467:          << socket_address.ipaddr().ToSensitiveString()
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-468-          << ", rather than an address associated with network:"
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-473-      RTC_LOG(LS_WARNING) << "Dropping connection as TCP socket bound to IP "
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc:474:                          << socket_address.ipaddr().ToSensitiveString()
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port.cc-475-                          << ", rather than an address associated with network:"
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/async_stun_tcp_socket.cc-94-void AsyncStunTCPSocket::ProcessInput(char* data, size_t* len) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/async_stun_tcp_socket.cc:95:  rtc::SocketAddress remote_addr(GetRemoteAddress());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/async_stun_tcp_socket.cc-96-  // STUN packet - First 4 bytes. Total header size is 20 bytes.
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/regathering_controller_unittest.cc-35-// The address of the public STUN server.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/regathering_controller_unittest.cc:36:const rtc::SocketAddress kStunAddr("99.99.99.1", cricket::STUN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/regathering_controller_unittest.cc-37-// The addresses for the public TURN server.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/regathering_controller_unittest.cc:38:const rtc::SocketAddress kTurnUdpIntAddr("99.99.99.3",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/regathering_controller_unittest.cc-39-                                         cricket::STUN_SERVER_PORT);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-36-static int kTimeout = 1000;
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:37:static const SocketAddress kLocalAddr("11.11.11.11", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:38:static const SocketAddress kLocalIPv6Addr("2401:fa00:4:1000:be30:5bff:fee5:c3",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-39-                                          0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:40:static const SocketAddress kAlternateLocalAddr("1.2.3.4", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:41:static const SocketAddress kRemoteAddr("22.22.22.22", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:42:static const SocketAddress kRemoteIPv6Addr("2401:fa00:4:1000:be30:5bff:fee5:c4",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-43-                                           0);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-68-  rtc::Network* MakeNetwork(const SocketAddress& addr) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:69:    networks_.emplace_back("unittest", "unittest", addr.ipaddr(), 32);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:70:    networks_.back().AddIP(addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-71-    return &networks_.back();
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-100-  // kLocalAddr, it will end up using localhost instead.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:101:  ss_->SetAlternativeLocalAddress(kLocalAddr.ipaddr(), local_address.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-102-  auto local_port = CreateTCPPort(kLocalAddr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-110-  // doing what it meant to.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:111:  ASSERT_EQ(local_address.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:112:            local_port->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-113-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-122-  // Sockets bound to kLocalAddr will actually end up with kAlternateLocalAddr.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:123:  ss_->SetAlternativeLocalAddress(kLocalAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:124:                                  kAlternateLocalAddr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-125-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-143-  // Sockets bound to kLocalAddr will actually end up with kAlternateLocalAddr.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:144:  ss_->SetAlternativeLocalAddress(kLocalAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:145:                                  kAlternateLocalAddr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-146-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-149-  rtc::Network* network = MakeNetwork(kLocalAddr);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:150:  network->AddIP(kAlternateLocalAddr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:151:  ASSERT_EQ(kLocalAddr.ipaddr(), network->GetBestIP());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-152-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-165-  // test isn't doing what it meant to.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:166:  ASSERT_EQ(kAlternateLocalAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:167:            local_port->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-168-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-172-TEST_F(TCPPortTest, TCPPortNotDiscardedIfBoundToTemporaryIP) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:173:  networks_.emplace_back("unittest", "unittest", kLocalIPv6Addr.ipaddr(), 32);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-174-  networks_.back().AddIP(rtc::InterfaceAddress(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc:175:      kLocalIPv6Addr.ipaddr(), rtc::IPV6_ADDRESS_FLAG_TEMPORARY));
chromium-84.0.4147.105/third_party/webrtc/p2p/base/tcp_port_unittest.cc-176-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-49-static const SocketAddress kLocalAddr2("22.22.22.22", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:50:static const SocketAddress kLocalIPv6Addr("2401:fa00:4:1000:be30:5bff:fee5:c3",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-51-                                          0);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-53-                                           0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:54:static const SocketAddress kTurnUdpIntAddr("99.99.99.3",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-55-                                           cricket::TURN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:56:static const SocketAddress kTurnTcpIntAddr("99.99.99.4",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-57-                                           cricket::TURN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:58:static const SocketAddress kTurnUdpExtAddr("99.99.99.5", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:59:static const SocketAddress kTurnAlternateIntAddr("99.99.99.6",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-60-                                                 cricket::TURN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:61:static const SocketAddress kTurnIntAddr("99.99.99.7",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-62-                                        cricket::TURN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:63:static const SocketAddress kTurnIPv6IntAddr(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-64-    "2400:4030:2:2c00:be30:abcd:efab:cdef",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-65-    cricket::TURN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:66:static const SocketAddress kTurnUdpIPv6IntAddr(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-67-    "2400:4030:1:2c00:be30:abcd:efab:cdef",
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-68-    cricket::TURN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:69:static const SocketAddress kTurnInvalidAddr("www.google.invalid", 3478);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-70-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-88-
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:89:static const cricket::ProtocolAddress kTurnUdpProtoAddr(kTurnUdpIntAddr,
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-90-                                                        cricket::PROTO_UDP);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:91:static const cricket::ProtocolAddress kTurnTcpProtoAddr(kTurnTcpIntAddr,
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-92-                                                        cricket::PROTO_TCP);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:93:static const cricket::ProtocolAddress kTurnTlsProtoAddr(kTurnTcpIntAddr,
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-94-                                                        cricket::PROTO_TLS);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:95:static const cricket::ProtocolAddress kTurnUdpIPv6ProtoAddr(kTurnUdpIPv6IntAddr,
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-96-                                                            cricket::PROTO_UDP);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-233-  rtc::Network* MakeNetwork(const SocketAddress& addr) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:234:    networks_.emplace_back("unittest", "unittest", addr.ipaddr(), 32);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:235:    networks_.back().AddIP(addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-236-    return &networks_.back();
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-303-      socket_.reset(socket_factory_.CreateUdpSocket(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:304:          rtc::SocketAddress(kLocalAddr1.ipaddr(), 0), 0, 0));
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-305-      ASSERT_TRUE(socket_ != NULL);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-452-    ASSERT_EQ(1U, turn_port_->Candidates().size());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:453:    EXPECT_EQ(kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:454:              turn_port_->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-455-    EXPECT_NE(0, turn_port_->Candidates()[0].address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-807-  ASSERT_EQ(1U, turn_port_->Candidates().size());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:808:  EXPECT_EQ(kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:809:            turn_port_->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-810-  EXPECT_NE(0, turn_port_->Candidates()[0].address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-843-  ASSERT_EQ(1U, turn_port_->Candidates().size());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:844:  EXPECT_EQ(kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:845:            turn_port_->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-846-  EXPECT_NE(0, turn_port_->Candidates()[0].address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-855-  ASSERT_EQ(1U, turn_port_->Candidates().size());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:856:  EXPECT_EQ(kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:857:            turn_port_->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-858-  EXPECT_NE(0, turn_port_->Candidates()[0].address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-879-  ASSERT_EQ(1U, turn_port_->Candidates().size());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:880:  EXPECT_EQ(kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:881:            turn_port_->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-882-  EXPECT_NE(0, turn_port_->Candidates()[0].address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-891-  // kLocalAddr, it will end up using localhost instead.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:892:  ss_->SetAlternativeLocalAddress(kLocalAddr1.ipaddr(), local_address.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-893-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-899-  ASSERT_EQ(1U, turn_port_->Candidates().size());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:900:  EXPECT_EQ(kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:901:            turn_port_->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-902-  EXPECT_NE(0, turn_port_->Candidates()[0].address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-905-  // doing what it meant to.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:906:  ASSERT_EQ(local_address.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:907:            turn_port_->Candidates()[0].related_address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-908-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-918-  // Sockets bound to kLocalAddr1 will actually end up with kLocalAddr2.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:919:  ss_->SetAlternativeLocalAddress(kLocalAddr1.ipaddr(), kLocalAddr2.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-920-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-945-  // Sockets bound to kLocalAddr1 will actually end up with kLocalAddr2.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:946:  ss_->SetAlternativeLocalAddress(kLocalAddr1.ipaddr(), kLocalAddr2.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-947-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-950-  rtc::Network* network = MakeNetwork(kLocalAddr1);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:951:  network->AddIP(kLocalAddr2.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:952:  ASSERT_EQ(kLocalAddr1.ipaddr(), network->GetBestIP());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-953-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-968-  // test isn't doing what it meant to.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:969:  ASSERT_EQ(kLocalAddr2.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:970:            turn_port_->Candidates()[0].related_address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-971-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-975-TEST_F(TurnPortTest, TCPPortNotDiscardedIfBoundToTemporaryIP) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:976:  networks_.emplace_back("unittest", "unittest", kLocalIPv6Addr.ipaddr(), 32);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-977-  networks_.back().AddIP(rtc::InterfaceAddress(
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:978:      kLocalIPv6Addr.ipaddr(), rtc::IPV6_ADDRESS_FLAG_TEMPORARY));
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-979-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1050-  EXPECT_TRUE_SIMULATED_WAIT(turn_ready_, kSimulatedRtt * 2, fake_clock_);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:1051:  rtc::SocketAddress first_addr(turn_port_->socket()->GetLocalAddress());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1052-  // Destroy the turnport while keeping the drop probability to 1 to
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1086-  EXPECT_TRUE_SIMULATED_WAIT(turn_ready_, kSimulatedRtt * 2, fake_clock_);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:1087:  rtc::SocketAddress first_addr(turn_port_->socket()->GetLocalAddress());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1088-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1114-      socket_.get(), test_packet.data(), test_packet.size(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:1115:      rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0), rtc::TimeMicros()));
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1116-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1124-  EXPECT_TRUE_SIMULATED_WAIT(turn_ready_, kSimulatedRtt * 2, fake_clock_);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:1125:  rtc::SocketAddress first_addr(turn_port_->socket()->GetLocalAddress());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1126-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1153-  EXPECT_TRUE_SIMULATED_WAIT(turn_ready_, kSimulatedRtt * 3, fake_clock_);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:1154:  rtc::SocketAddress first_addr(turn_port_->socket()->GetLocalAddress());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1155-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1492-  ASSERT_EQ(1U, turn_port_->Candidates().size());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:1493:  EXPECT_EQ(kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc:1494:            turn_port_->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_port_unittest.cc-1495-  EXPECT_NE(0, turn_port_->Candidates()[0].address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc-102-  rtc::StringBuilder sb;
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc:103:  sb << type << base_address.ipaddr().ToString() << protocol << relay_protocol;
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc-104-  return rtc::ToString(rtc::ComputeCrc32(sb.Release()));
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc-307-                                             const std::string& name) mutable {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc:308:    RTC_DCHECK(copy.address().ipaddr() == addr);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc-309-    rtc::SocketAddress hostname_address(name, copy.address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc-323-  set_mdns_name_registration_status(MdnsNameRegistrationStatus::kInProgress);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc:324:  network_->GetMdnsResponder()->CreateNameForAddress(copy.address().ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc-325-                                                     callback);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc-600-  if (ip.family() == AF_INET6 &&
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc:601:      (IPIsLinkLocal(ip) != IPIsLinkLocal(addr.ipaddr()))) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port.cc-602-    return false;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-740-  // If a permission exists, send the data on to the peer.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc:741:  if (HasPermission(peer_attr->GetAddress().ipaddr())) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-742-    SendExternal(data_attr->bytes(), data_attr->length(),
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-762-  if (server_->reject_private_addresses_ &&
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc:763:      rtc::IPIsPrivate(peer_attr->GetAddress().ipaddr())) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-764-    SendErrorResponse(msg, STUN_ERROR_FORBIDDEN, STUN_ERROR_REASON_FORBIDDEN);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-768-  // Add this permission.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc:769:  AddPermission(peer_attr->GetAddress().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-770-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-817-  // Channel binds also refresh permissions.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc:818:  AddPermission(peer_attr->GetAddress().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-819-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-859-  } else if (!server_->enable_permission_checks_ ||
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc:860:             HasPermission(addr.ipaddr())) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/turn_server.cc-861-    // No channel, but a permission exists. Send as a data indication.
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-91-const SocketAddress kNatAddr2("88.88.88.88", rtc::NAT_SERVER_UDP_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:92:const SocketAddress kStunAddr("99.99.99.1", STUN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:93:const SocketAddress kTurnUdpIntAddr("99.99.99.4", STUN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:94:const SocketAddress kTurnTcpIntAddr("99.99.99.4", 5010);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:95:const SocketAddress kTurnUdpExtAddr("99.99.99.5", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-96-const RelayCredentials kRelayCredentials("test", "test");
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-175-    // first port in the allowed range.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:176:    rtc::SocketAddress addr(Network()->GetBestIP(), min_port());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-177-    AddAddress(addr, addr, rtc::SocketAddress(), "udp", "", "", Type(),
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-495-  rtc::Network* MakeNetwork(const SocketAddress& addr) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:496:    networks_.emplace_back("unittest", "unittest", addr.ipaddr(), 32);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:497:    networks_.back().AddIP(addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-498-    return &networks_.back();
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2085-  auto buf = std::make_unique<ByteBufferWriter>();
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2086:  rtc::SocketAddress addr(kLocalAddr1);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2087-  std::string username;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2134-  auto buf = std::make_unique<ByteBufferWriter>();
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2135:  rtc::SocketAddress addr(kLocalAddr1);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2136-  std::string username;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2200-  auto buf = std::make_unique<ByteBufferWriter>();
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2201:  rtc::SocketAddress addr(kLocalAddr1);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2202-  std::string username;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2238-  auto buf = std::make_unique<ByteBufferWriter>();
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2239:  rtc::SocketAddress addr(kLocalAddr1);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2240-  std::string username;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2306-  auto buf = std::make_unique<ByteBufferWriter>();
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2307:  rtc::SocketAddress addr(kLocalAddr1);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2308-  std::string username;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2410-  std::unique_ptr<ByteBufferWriter> buf(new ByteBufferWriter());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2411:  rtc::SocketAddress addr(kLocalAddr1);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2412-  std::string username;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2588-  // Check STUN candidate address.
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2589:  EXPECT_EQ(stunport->Candidates()[0].address().ipaddr(), kNatAddr1.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2590-  // Check STUN candidate related address.
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2598-  ASSERT_EQ_WAIT(1U, turnport->Candidates().size(), kDefaultTimeout);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2599:  EXPECT_EQ(kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2600:            turnport->Candidates()[0].address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2601:  EXPECT_EQ(kNatAddr1.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc:2602:            turnport->Candidates()[0].related_address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/port_unittest.cc-2603-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_server_unittest.cc-29-namespace {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_server_unittest.cc:30:const rtc::SocketAddress server_addr("99.99.99.1", 3478);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_server_unittest.cc:31:const rtc::SocketAddress client_addr("1.2.3.4", 1234);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_server_unittest.cc-32-}  // namespace
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc-43-
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc:44:  const rtc::SocketAddress& server_addr() const { return server_addr_; }
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc-45-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc-58-    } else {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc:59:      rtc::SocketAddress addr(addr_attr->ipaddr(), addr_attr->port());
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc-60-      port_->OnStunBindingRequestSucceeded(this->Elapsed(), server_addr_, addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc-530-    rtc::StringBuilder url;
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc:531:    url << "stun:" << stun_server_addr.ipaddr().ToString() << ":"
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc-532-        << stun_server_addr.port();
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc-594-  CopyPortInformationToPacketInfo(&options.info_signaled_after_sent);
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc:595:  if (socket_->SendTo(data, size, sreq->server_addr(), options) < 0) {
chromium-84.0.4147.105/third_party/webrtc/p2p/base/stun_port.cc-596-    RTC_LOG_ERR_EX(LERROR, socket_->GetError()) << "sendto";
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator.cc-1516-    // not match the local IP address family.
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator.cc:1517:    int server_ip_family = relay_port->address.ipaddr().family();
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator.cc-1518-    int local_ip_family = network_->GetBestIP().family();
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator.cc-1522-             "Server address: "
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator.cc:1523:          << relay_port->address.ipaddr().ToSensitiveString()
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator.cc-1524-          << " Local address: " << network_->GetBestIP().ToSensitiveString();
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-59-
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:60:static const SocketAddress kAnyAddr("0.0.0.0", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:61:static const SocketAddress kClientAddr("11.11.11.11", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-62-static const SocketAddress kClientAddr2("22.22.22.22", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:63:static const SocketAddress kLoopbackAddr("127.0.0.1", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:64:static const SocketAddress kPrivateAddr("192.168.1.11", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-65-static const SocketAddress kPrivateAddr2("192.168.1.12", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:66:static const SocketAddress kClientIPv6Addr("2401:fa00:4:1000:be30:5bff:fee5:c3",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-67-                                           0);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-73-    0);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:74:static const SocketAddress kNatUdpAddr("77.77.77.77", rtc::NAT_SERVER_UDP_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:75:static const SocketAddress kNatTcpAddr("77.77.77.77", rtc::NAT_SERVER_TCP_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:76:static const SocketAddress kRemoteClientAddr("22.22.22.22", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:77:static const SocketAddress kStunAddr("99.99.99.1", cricket::STUN_SERVER_PORT);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:78:static const SocketAddress kTurnUdpIntAddr("99.99.99.4", 3478);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:79:static const SocketAddress kTurnUdpIntIPv6Addr(
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-80-    "2402:fb00:4:1000:be30:5bff:fee5:c3",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-81-    3479);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:82:static const SocketAddress kTurnTcpIntAddr("99.99.99.5", 3478);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:83:static const SocketAddress kTurnTcpIntIPv6Addr(
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-84-    "2402:fb00:4:2000:be30:5bff:fee5:c3",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-85-    3479);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:86:static const SocketAddress kTurnUdpExtAddr("99.99.99.6", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-87-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-188-    // srflx address.
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:189:    vss_->SetDefaultRoute(addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-190-  }
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-293-                           const SocketAddress& pattern) {
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:294:    return address.ipaddr() == pattern.ipaddr() &&
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-295-           ((pattern.port() == 0 &&
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:296:             (address.port() != 0 || IPIsAny(address.ipaddr()))) ||
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-297-            (pattern.port() != 0 && address.port() == pattern.port()));
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-308-          return port->Type() == type && port->GetProtocol() == protocol &&
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:309:                 port->Network()->GetBestIP() == client_addr.ipaddr();
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-310-        });
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-349-  // Version of HasCandidate that also takes a related address.
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:350:  static bool HasCandidateWithRelatedAddr(
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-351-      const std::vector<Candidate>& candidates,
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-470-          rtc::NAT_OPEN_CONE, vss_.get(), kNatUdpAddr, kNatTcpAddr, vss_.get(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:471:          rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-472-    } else {
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-523-      const rtc::IPAddress& relay_candidate_tcp_transport_addr) {
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:524:    network_manager_.set_default_local_addresses(kPrivateAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-525-                                                 rtc::IPAddress());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-539-      EXPECT_TRUE(HasCandidate(candidates_, "local", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:540:                               rtc::SocketAddress(kPrivateAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-541-      ++total_candidates;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-547-      }
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:548:      EXPECT_TRUE(HasCandidateWithRelatedAddr(
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-549-          candidates_, "stun", "udp",
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-553-    if (!relay_candidate_udp_transport_addr.IsNil()) {
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:554:      EXPECT_TRUE(HasCandidateWithRelatedAddr(
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-555-          candidates_, "relay", "udp",
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-560-    if (!relay_candidate_tcp_transport_addr.IsNil()) {
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:561:      EXPECT_TRUE(HasCandidateWithRelatedAddr(
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-562-          candidates_, "relay", "udp",
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-609-    EXPECT_TRUE(HasCandidate(ready_candidates, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:610:                             rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-611-  }
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-657-    EXPECT_TRUE(HasCandidate(ready_candidates, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:658:                             rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-659-  }
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-720-    EXPECT_TRUE(HasCandidate(ready_candidates, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:721:                             rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-722-  }
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1236-  EXPECT_TRUE(HasCandidate(candidates_, "stun", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1237:                           rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1238-  // Again, two TURN candidates, using UDP/TCP for the first hop to the TURN
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1241-            CountCandidates(candidates_, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1242:                            rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1243-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1274-  // TURN/UDP candidates.
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1275:  CheckDisableAdapterEnumeration(5U, kPrivateAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1276:                                 kNatUdpAddr.ipaddr(), kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1277-                                 rtc::IPAddress());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1288-  // private, STUN, TURN/UDP, and TURN/TCP candidates.
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1289:  CheckDisableAdapterEnumeration(4U, kPrivateAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1290:                                 kNatUdpAddr.ipaddr(), kTurnUdpExtAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1291:                                 kTurnUdpExtAddr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1292-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1299-  // Expect to see 2 ports: STUN and TCP ports, one default private candidate.
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1300:  CheckDisableAdapterEnumeration(2U, kPrivateAddr.ipaddr(), rtc::IPAddress(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1301-                                 rtc::IPAddress(), rtc::IPAddress());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1330-  // candidate.
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1331:  CheckDisableAdapterEnumeration(2U, rtc::IPAddress(), kClientAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1332-                                 rtc::IPAddress(), rtc::IPAddress());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1343-  // Expect to see 2 ports: STUN and TCP ports, and single STUN candidate.
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1344:  CheckDisableAdapterEnumeration(2U, rtc::IPAddress(), kNatUdpAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1345-                                 rtc::IPAddress(), rtc::IPAddress());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1511-  EXPECT_TRUE(HasCandidate(candidates_, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1512:                           rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1513-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1626-  EXPECT_TRUE(HasCandidate(candidates_, "stun", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1627:                           rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1628-  EXPECT_TRUE_SIMULATED_WAIT(candidate_allocation_done_,
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1655-  EXPECT_TRUE(HasCandidate(candidates_, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1656:                           rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1657-  EXPECT_TRUE(HasCandidate(candidates_, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1658:                           rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1659-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1813-  EXPECT_TRUE(HasCandidate(candidates_, "stun", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1814:                           rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1815-  EXPECT_TRUE(HasCandidate(candidates_, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1816:                           rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1817-  EXPECT_TRUE_SIMULATED_WAIT(candidate_allocation_done_,
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1852-  EXPECT_TRUE(FindCandidate(candidates_, "stun", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1853:                            rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1854-                            &stun_candidate));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1855:  EXPECT_TRUE(HasCandidateWithRelatedAddr(
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1856-      candidates_, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1857:      rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1858-      stun_candidate.address()));
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1888-  EXPECT_TRUE(HasCandidate(candidates_, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1889:                           rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0)));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1890-  EXPECT_EQ(1U, ports_[0]->Candidates().size());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1916-  EXPECT_TRUE(FindCandidate(candidates_, "stun", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1917:                            rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1918-                            &stun_candidate));
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1920-  EXPECT_TRUE(FindCandidate(candidates_, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1921:                            rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1922-                            &turn_candidate));
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1953-  EXPECT_TRUE(FindCandidate(candidates_, "stun", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1954:                            rtc::SocketAddress(kNatUdpAddr.ipaddr(), 0),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1955-                            &stun_candidate));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1956:  EXPECT_TRUE(HasCandidateWithRelatedAddr(
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1957-      candidates_, "relay", "udp",
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1958:      rtc::SocketAddress(kTurnUdpExtAddr.ipaddr(), 0),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1959-      stun_candidate.address()));
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1989-TEST_F(BasicPortAllocatorTest, TestNetworkPermissionBlocked) {
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:1990:  network_manager_.set_default_local_addresses(kPrivateAddr.ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-1991-                                               rtc::IPAddress());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-2413-      // ::0
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:2414:      EXPECT_TRUE(IPIsAny(raddr.ipaddr()));
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-2415-      EXPECT_EQ(raddr.port(), 0);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-2417-    } else if (candidate.type() == RELAY_PORT_TYPE) {
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc:2418:      EXPECT_EQ(kNatUdpAddr.ipaddr(), raddr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/client/basic_port_allocator_unittest.cc-2419-      EXPECT_EQ(kNatUdpAddr.family(), raddr.family());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-154-  auto addr = server_ips_[num_request_sent_];
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc:155:  request.server_addr = addr.ipaddr();
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-156-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-210-  RTC_DCHECK(socket_);
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc:211:  Request* request = GetRequestByAddress(addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-212-  if (!request) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-307-  for (auto it = servers_.begin(); it != servers_.end();) {
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc:308:    if (it->ipaddr().family() != AF_UNSPEC) {
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-309-      all_servers_addrs_.push_back(*it);
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-353-  if (resolver->GetError() == 0) {
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc:354:    rtc::SocketAddress addr(resolver->address().ipaddr(),
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-355-                            resolver->address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-522-      stats.srflx_addrs.insert(request->srflx_addr.ToString());
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc:523:      srflx_ips.insert(request->srflx_addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-524-    }
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-565-  for (const auto* net : networks_) {
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc:566:    if (srflx_addr.ipaddr() == net->GetBestIP()) {
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober.cc-567-      nat_type = stunprober::NATTYPE_NONE;
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc-31-
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc:32:const rtc::SocketAddress kLocalAddr("192.168.0.1", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc-33-const rtc::SocketAddress kStunAddr1("1.1.1.1", 3478);
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc-34-const rtc::SocketAddress kStunAddr2("1.1.1.2", 3478);
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc:35:const rtc::SocketAddress kFailedStunAddr("1.1.1.3", 3478);
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc:36:const rtc::SocketAddress kStunMappedAddr("77.77.77.77", 0);
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc-37-
##############################################
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc-49-                                                       kStunAddr2)) {
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc:50:    stun_server_1_->set_fake_stun_addr(kStunMappedAddr);
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc:51:    stun_server_2_->set_fake_stun_addr(kStunMappedAddr);
chromium-84.0.4147.105/third_party/webrtc/p2p/stunprober/stun_prober_unittest.cc-52-    rtc::InitializeSSL();
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/py_event_log_analyzer/rtp_analyzer.sh-8-#  be found in the AUTHORS file in the root of the source tree.
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/py_event_log_analyzer/rtp_analyzer.sh:9:BASE_DIR=`dirname $0`
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/py_event_log_analyzer/rtp_analyzer.sh-10-python "${BASE_DIR}/rtp_analyzer.py" $@ --working_dir $BASE_DIR
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/loopback_test/run-server.sh-12-# location as the script itself.
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/loopback_test/run-server.sh:13:cd "`dirname \"$0\"`"
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/loopback_test/run-server.sh-14-echo "Starting http server in port 8080."
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md-9-        - Download <https://nodejs.org/> and extract it
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md:10:        - `export PATH="$(pwd)/node-v6.10.3-linux-x64/bin:$PATH"`
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md-11-    - `cd apprtc`
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md-12-    - `npm install`
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md:13:    - `export PATH="$(pwd)/node_modules/.bin:$PATH"`
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md-14-    - `pip install --user --upgrade pip setuptools` - needed only on old systems
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md-16-- Vendor collider's dependencies:
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md:17:    - `ln -s "$(pwd)/src/collider" src/src`
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md:18:    - `GOPATH="$(pwd)/src" go get -d collidermain`
chromium-84.0.4147.105/third_party/webrtc/rtc_tools/testing/README.md-19-    - `rm src/src`
##############################################
chromium-84.0.4147.105/third_party/webrtc/docs/native-code/ios/index.md-70-To edit these at any time use `gn args <output folder>`. This will open up
chromium-84.0.4147.105/third_party/webrtc/docs/native-code/ios/index.md:71:a file in `$EDITOR` where you can edit the arguments. When you've made
chromium-84.0.4147.105/third_party/webrtc/docs/native-code/ios/index.md-72-changes and save the file, `gn` will regenerate your project files for you
##############################################
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.h-171-  void OnSendThresholdCallback();
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.h:172:  sockaddr_conn GetSctpSockAddr(int port);
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.h-173-
##############################################
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.cc-786-  // Note: conversion from int to uint16_t happens on assignment.
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.cc:787:  sockaddr_conn local_sconn = GetSctpSockAddr(local_port_);
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.cc-788-  if (usrsctp_bind(sock_, reinterpret_cast<sockaddr*>(&local_sconn),
##############################################
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.cc-796-  // Note: conversion from int to uint16_t happens on assignment.
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.cc:797:  sockaddr_conn remote_sconn = GetSctpSockAddr(remote_port_);
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.cc-798-  int connect_result = usrsctp_connect(
##############################################
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.cc-1108-
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.cc:1109:sockaddr_conn SctpTransport::GetSctpSockAddr(int port) {
chromium-84.0.4147.105/third_party/webrtc/media/sctp/sctp_transport.cc-1110-  sockaddr_conn sconn = {0};
##############################################
chromium-84.0.4147.105/third_party/webrtc/test/scenario/network_node.cc-114-  route.local = rtc::RouteEndpoint::CreateWithNetworkId(static_cast<uint16_t>(
chromium-84.0.4147.105/third_party/webrtc/test/scenario/network_node.cc:115:      receiver_address.ipaddr().v4AddressAsHostOrderInteger()));
chromium-84.0.4147.105/third_party/webrtc/test/scenario/network_node.cc-116-  route.remote = rtc::RouteEndpoint::CreateWithNetworkId(static_cast<uint16_t>(
chromium-84.0.4147.105/third_party/webrtc/test/scenario/network_node.cc:117:      receiver_address.ipaddr().v4AddressAsHostOrderInteger()));
chromium-84.0.4147.105/third_party/webrtc/test/scenario/network_node.cc-118-  route.packet_overhead = packet_overhead.bytes() +
chromium-84.0.4147.105/third_party/webrtc/test/scenario/network_node.cc:119:                          receiver_address.ipaddr().overhead() +
chromium-84.0.4147.105/third_party/webrtc/test/scenario/network_node.cc-120-                          cricket::kUdpHeaderSize;
##############################################
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc-97-  }
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc:98:  auto receiver_it = routing_.find(packet.to.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc-99-  if (receiver_it == routing_.end()) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc-209-                                      uint16_t application_overhead) {
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc:210:  RTC_CHECK(from.ipaddr() == peer_local_addr_);
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc-211-  EmulatedIpPacket packet(from, to, std::move(packet_data),
##############################################
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc-279-  RTC_DCHECK_RUN_ON(task_queue_);
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc:280:  RTC_CHECK(packet.to.ipaddr() == peer_local_addr_)
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc:281:      << "Routing error: wrong destination endpoint. Packet.to.ipaddr()=: "
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc:282:      << packet.to.ipaddr().ToString()
chromium-84.0.4147.105/third_party/webrtc/test/network/network_emulation.cc-283-      << "; Receiver peer_local_addr_=" << peer_local_addr_.ToString();
##############################################
chromium-84.0.4147.105/third_party/webrtc/test/network/fake_network_socket_server.cc-125-  local_addr_ = addr;
chromium-84.0.4147.105/third_party/webrtc/test/network/fake_network_socket_server.cc:126:  endpoint_ = socket_server_->GetEndpointNode(local_addr_.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/test/network/fake_network_socket_server.cc-127-  if (!endpoint_) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/tools_webrtc/ubsan/blacklist.txt-8-#############################################################################
chromium-84.0.4147.105/third_party/webrtc/tools_webrtc/ubsan/blacklist.txt:9:# YASM does some funny things that UBsan doesn't like.
chromium-84.0.4147.105/third_party/webrtc/tools_webrtc/ubsan/blacklist.txt-10-# https://crbug.com/489901
##############################################
chromium-84.0.4147.105/third_party/webrtc/tools_webrtc/mb/docs/user_guide.md-184-to a file called `runtime_deps` in the build directory, and pass that to
chromium-84.0.4147.105/third_party/webrtc/tools_webrtc/mb/docs/user_guide.md:185:`gn gen $BUILD ... --runtime-deps-list-file=$BUILD/runtime_deps`.
chromium-84.0.4147.105/third_party/webrtc/tools_webrtc/mb/docs/user_guide.md-186-
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection_integrationtest.cc-982-        RTC_DCHECK(local_candidate.type() == cricket::LOCAL_PORT_TYPE);
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection_integrationtest.cc:983:        rtc::SocketAddress resolved_addr(local_candidate.address());
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection_integrationtest.cc-984-        const auto resolved_ip = mdns_responder_->GetMappedAddressForName(
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection.cc-294-                           remote.address().IsUnresolvedIP();
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection.cc:295:    bool local_private = IPIsPrivate(local.address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection.cc:296:    bool remote_private = IPIsPrivate(remote.address().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection.cc-297-    if (local_hostname) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/rtc_stats_collector.cc-583-    }
chromium-84.0.4147.105/third_party/webrtc/pc/rtc_stats_collector.cc:584:    candidate_stats->ip = candidate.address().ipaddr().ToString();
chromium-84.0.4147.105/third_party/webrtc/pc/rtc_stats_collector.cc-585-    candidate_stats->port = static_cast<int32_t>(candidate.address().port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/ice_server_parsing_unittest.cc-173-  EXPECT_FALSE(address.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/pc/ice_server_parsing_unittest.cc:174:  EXPECT_EQ("1.2.3.4", address.ipaddr().ToString());
chromium-84.0.4147.105/third_party/webrtc/pc/ice_server_parsing_unittest.cc-175-
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc-72-        GetCandidatePreferenceFromType(jsep_candidate->candidate().type());
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc:73:    const int family = jsep_candidate->candidate().address().ipaddr().family();
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc-74-    // See if this candidate is more preferable then the current one if it's the
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc-86-    port = candidate_addr.port();
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc:87:    ip = candidate_addr.ipaddr().ToString();
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc-88-    hostname = candidate_addr.hostname();
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc-89-  }
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc:90:  rtc::SocketAddress connection_addr(ip, port);
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc:91:  if (rtc::IPIsUnspec(connection_addr.ipaddr()) && !hostname.empty()) {
chromium-84.0.4147.105/third_party/webrtc/pc/jsep_session_description.cc-92-    // When a hostname candidate becomes the (default) connection address,
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection_ice_unittest.cc-631-  for (const auto* candidate : candidates) {
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection_ice_unittest.cc:632:    const auto& candidate_ip = candidate->candidate().address().ipaddr();
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection_ice_unittest.cc:633:    if (candidate_ip == address.ipaddr()) {
chromium-84.0.4147.105/third_party/webrtc/pc/peer_connection_ice_unittest.cc-634-      return ::testing::AssertionSuccess();
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc-1023-    audio_desc_->AddStream(audio_stream);
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc:1024:    rtc::SocketAddress audio_addr("74.125.127.126", 2345);
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc-1025-    audio_desc_->set_connection_address(audio_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc-1039-    video_desc_->AddStream(video_stream);
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc:1040:    rtc::SocketAddress video_addr("74.125.224.39", 3457);
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc-1041-    video_desc_->set_connection_address(video_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc-2100-  void MakeDescriptionWithoutCandidates(JsepSessionDescription* jdesc) {
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc:2101:    rtc::SocketAddress audio_addr("0.0.0.0", 9);
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc:2102:    rtc::SocketAddress video_addr("0.0.0.0", 9);
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp_unittest.cc-2103-    audio_desc_->set_connection_address(audio_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-798-    const int preference = GetCandidatePreferenceFromType(candidate.type());
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc:799:    const int family = candidate.address().ipaddr().family();
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-800-    // See if this candidate is more preferable then the current one if it's the
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-815-    *port = candidate.address().PortAsString();
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc:816:    *ip = candidate.address().ipaddr().ToString();
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-817-  }
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-1453-    os << " " << kConnectionIpv4Addrtype << " "
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc:1454:       << media_desc->connection_address().ipaddr().ToString();
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-1455-  } else if (media_desc->connection_address().family() == AF_INET6) {
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-1456-    os << " " << kConnectionIpv6Addrtype << " "
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc:1457:       << media_desc->connection_address().ipaddr().ToString();
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-1458-  } else {
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-2003-       << candidate.priority() << " "
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc:2004:       << (candidate.address().ipaddr().IsNil()
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-2005-               ? candidate.address().hostname()
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc:2006:               : candidate.address().ipaddr().ToString())
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-2007-       << " " << candidate.address().PortAsString() << " "
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-2012-      os << kAttributeCandidateRaddr << " "
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc:2013:         << candidate.related_address().ipaddr().ToString() << " "
chromium-84.0.4147.105/third_party/webrtc/pc/webrtc_sdp.cc-2014-         << kAttributeCandidateRport << " "
##############################################
chromium-84.0.4147.105/third_party/webrtc/pc/stats_collector.cc-785-    report->AddString(StatsReport::kStatsValueNameCandidateIPAddress,
chromium-84.0.4147.105/third_party/webrtc/pc/stats_collector.cc:786:                      candidate.address().ipaddr().ToString());
chromium-84.0.4147.105/third_party/webrtc/pc/stats_collector.cc-787-    report->AddString(StatsReport::kStatsValueNameCandidatePortNumber,
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-27-  int32_t tmp = 0;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:28:  __asm __volatile("smulwb %0, %1, %2" : "=r"(tmp) : "r"(b), "r"(a));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-29-  return tmp;
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-33-  int32_t tmp = 0;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:34:  __asm __volatile("smulbb %0, %1, %2" : "=r"(tmp) : "r"(a), "r"(b));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-35-  return tmp;
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-40-  int32_t tmp = 0;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:41:  __asm __volatile("smlabb %0, %1, %2, %3"
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-42-                   : "=r"(tmp)
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-49-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:50:  __asm __volatile("qadd16 %0, %1, %2" : "=r"(s_sum) : "r"(a), "r"(b));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-51-
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-57-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:58:  __asm __volatile("qadd %0, %1, %2" : "=r"(l_sum) : "r"(l_var1), "r"(l_var2));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-59-
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-65-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:66:  __asm __volatile("qsub %0, %1, %2" : "=r"(l_sub) : "r"(l_var1), "r"(l_var2));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-67-
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-73-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:74:  __asm __volatile("qsub16 %0, %1, %2" : "=r"(s_sub) : "r"(var1), "r"(var2));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-75-
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-81-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:82:  __asm __volatile("clz %0, %1" : "=r"(tmp) : "r"(n));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-83-
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-95-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:96:  __asm __volatile("clz %0, %1" : "=r"(tmp) : "r"(a));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-97-
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-106-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:107:  __asm __volatile("clz %0, %1" : "=r"(tmp) : "r"(a));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-108-
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-121-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:122:  __asm __volatile("clz %0, %1" : "=r"(tmp) : "r"(a_32));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-123-
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-130-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h:131:  __asm __volatile("ssat %0, #16, %1" : "=r"(out) : "r"(value32));
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_armv7.h-132-
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-20-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:21:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-22-#if defined(MIPS32_R2_LE)
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-41-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:42:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-43-#if defined(MIPS32_R2_LE)
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-64-static __inline int16_t WebRtcSpl_SatW32ToW16(int32_t value32) {
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:65:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-66-      "shll_s.w   %[value32], %[value32], 16      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-76-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:77:  __asm __volatile("addq_s.ph      %[value32],     %[a],   %[b]    \n\t"
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-78-                   : [value32] "=r"(value32)
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-85-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:86:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-87-      "addq_s.w   %[l_sum],       %[l_var1],      %[l_var2]    \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-96-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:97:  __asm __volatile("subq_s.ph  %[value32], %[var1],    %[var2]     \n\t"
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-98-                   : [value32] "=r"(value32)
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-106-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:107:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-108-      "subq_s.w   %[l_diff],      %[l_var1],      %[l_var2]    \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-119-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:120:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-121-      "clz    %[bits],    %[n]                    \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-131-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:132:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-133-      ".set       push                                \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-153-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:154:  __asm __volatile("clz    %[zeros],   %[a]    \n\t"
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-155-                   : [zeros] "=r"(zeros)
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-164-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:165:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-166-      ".set       push                                \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-185-  int32_t res = 0, c1 = 0;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h:186:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/include/spl_inl_mips.h-187-#if defined(MIPS32_R2_LE)
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_bit_reverse_mips.c-73-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_bit_reverse_mips.c:74:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_bit_reverse_mips.c-75-      ".set         push                                             \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_bit_reverse_mips.c-125-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_bit_reverse_mips.c:126:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_bit_reverse_mips.c-127-      ".set push                                                     \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft_mips.c-44-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft_mips.c:45:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft_mips.c-46-    ".set push                                                         \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft_mips.c-165-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft_mips.c:166:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft_mips.c-167-    ".set push                                                         \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c-106-                int32_t wri = 0;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c:107:                __asm __volatile("pkhbt %0, %1, %2, lsl #16" : "=r"(wri) :
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c-108-                    "r"((int32_t)wr), "r"((int32_t)wi));
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c-116-                    register int32_t frfi_r;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c:117:                    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c-118-                        "pkhbt %[frfi_r], %[frfi_even], %[frfi_odd],"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c-248-                int32_t wri = 0;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c:249:                __asm __volatile("pkhbt %0, %1, %2, lsl #16" : "=r"(wri) :
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c-250-                    "r"((int32_t)wr), "r"((int32_t)wi));
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c-258-                    register int32_t frfi_r;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c:259:                    __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/complex_fft.c-260-                      "pkhbt %[frfi_r], %[frfi_even], %[frfi_odd], lsl #16\n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/cross_correlation_mips.c-27-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/cross_correlation_mips.c:28:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/cross_correlation_mips.c-29-    ".set        push                                           \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/filter_ar_fast_q12_mips.c-30-
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/filter_ar_fast_q12_mips.c:31:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/filter_ar_fast_q12_mips.c-32-    ".set       push                                             \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/downsample_fast_mips.c-43-#if defined(MIPS_DSP_R2_LE)
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/downsample_fast_mips.c:44:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/downsample_fast_mips.c-45-    ".set        push                                                \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/downsample_fast_mips.c-104-#else  // #if defined(MIPS_DSP_R2_LE)
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/downsample_fast_mips.c:105:  __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/downsample_fast_mips.c-106-    ".set        push                                                \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/vector_scaling_operations_mips.c-37-  for (i = 0; i < length; i++) {
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/vector_scaling_operations_mips.c:38:    __asm __volatile (
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/vector_scaling_operations_mips.c-39-      "lh         %[r0],          0(%[in1])                               \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/resample_by_2.c-33-  int32_t result;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/resample_by_2.c:34:  __asm __volatile ("smlawb %0, %1, %2, %3": "=r"(result): "r"(diff),
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/resample_by_2.c-35-                                   "r"(tbl_value), "r"(state));
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/resample_by_2.c-49-  int32_t result;
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/resample_by_2.c:50:  __asm __volatile ("smmla %0, %1, %2, %3": "=r"(result): "r"(diff << 1),
chromium-84.0.4147.105/third_party/webrtc/common_audio/signal_processing/resample_by_2.c-51-                                  "r"(tbl_value), "r"(state));
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor_mips.c-52-
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor_mips.c:53:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor_mips.c-54-    ".set   push                                       \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-279-
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc:280:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-281-      ".set       push                                                    \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-524-  int tmp_a, count;
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc:525:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-526-      ".set       push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-572-  f9 = rdft_w[2];
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc:573:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-574-      ".set       push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-633-
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc:634:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-635-      ".set       push                                                    \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-719-  f14 = rdft_wk3ri_second[3];
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc:720:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-721-      ".set       push                                                       "
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-882-
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc:883:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-884-      ".set       push                                      \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-938-
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc:939:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-940-      ".set       push                                        \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-998-
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc:999:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-1000-      ".set      push                                             \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-1127-
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc:1128:  __asm __volatile(
chromium-84.0.4147.105/third_party/webrtc/common_audio/third_party/ooura/fft_size_128/ooura_fft_mips.cc-1129-      ".set      push                                             \n\t"
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-239-  EXPECT_EQ(AsyncSocket::CS_CLOSED, client->GetState());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc:240:  EXPECT_TRUE(IsUnspecOrEmptyIP(client->GetLocalAddress().ipaddr()));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-241-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-302-  // Attempt connect to listening socket.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc:303:  SocketAddress dns_addr(server->GetLocalAddress());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-304-  dns_addr.SetIP(host);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-351-  // MacOS it takes about 75 seconds to get back an error!
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc:352:  SocketAddress bogus_addr(loopback, 65535);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-353-  EXPECT_EQ(0, client->Connect(bogus_addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-363-  EXPECT_TRUE(nullptr == server->Accept(&accept_addr));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc:364:  EXPECT_EQ(IPAddress(), accept_addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-365-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-384-  // MacOS it takes about 75 seconds to get back an error!
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc:385:  SocketAddress bogus_dns_addr("not-a-real-hostname", 65535);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-386-  EXPECT_EQ(0, client->Connect(bogus_dns_addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-940-    EXPECT_TRUE(client1->CheckNextPacket("foo", 3, &addr4));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc:941:    EXPECT_EQ(addr4.ipaddr(), addr2.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-942-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-958-      (loopback.family() == AF_INET6) ? "2001:db8::1" : "192.0.2.0";
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc:959:  SocketAddress test_addr(dest, 2345);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_unittest.cc-960-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/proxy_unittest.cc-23-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/proxy_unittest.cc:24:static const SocketAddress kSocksProxyIntAddr("1.2.3.4", 1080);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/proxy_unittest.cc:25:static const SocketAddress kSocksProxyExtAddr("1.2.3.5", 0);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/proxy_unittest.cc:26:static const SocketAddress kBogusProxyIntAddr("1.2.3.4", 999);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/proxy_unittest.cc-27-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server.cc-186-    NetworkBindingResult result =
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server.cc:187:        ss_->network_binder()->BindSocketToNetwork(s_, bind_addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server.cc-188-    if (result == NetworkBindingResult::SUCCESS) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server.cc-191-      // the bind() call; bind() just needs to assign a port.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server.cc:192:      copied_bind_addr.SetIP(GetAnyIP(copied_bind_addr.ipaddr().family()));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server.cc-193-    } else if (result == NetworkBindingResult::NOT_IMPLEMENTED) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-121-bool BrokenIPStringFails(const std::string& broken) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:122:  IPAddress addr(0);  // Intentionally make it v4.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-123-  if (IPFromString(kIPv4BrokenString1, &addr)) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-171-  v4addr.s_addr = INADDR_ANY;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:172:  IPAddress addr(v4addr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-173-  EXPECT_TRUE(IPIsAny(addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-220-  // Test v6 empty.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:221:  IPAddress addr(in6addr_any);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-222-  EXPECT_TRUE(IPIsAny(addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-256-  // Test V4 Any address.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:257:  IPAddress addr(0);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-258-  EXPECT_TRUE(IPIsAny(addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-293-  v4addr.s_addr = htonl(kIPv4PublicAddr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:294:  IPAddress addr(v4addr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-295-  IPAddress addr2(addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-336-  v4addr2.s_addr = htonl(kIPv4PublicAddr + 1);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:337:  IPAddress addr(v4addr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-338-  IPAddress addr2(v4addr2);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-691-TEST(IPAddressTest, TestAsIPv6Address) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:692:  IPAddress addr(kIPv4PublicAddr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-693-  IPAddress addr2(kIPv4MappedPublicAddr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-836-  // IPv4 address, should be none of these (not even v4compat/v4mapped).
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:837:  IPAddress v4_addr(kIPv4PublicAddr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-838-  EXPECT_FALSE(IPIs6Bone(v4_addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-845-  // Linklocal (fe80::/16) adddress; should be none of these.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:846:  IPAddress linklocal_addr(kIPv6LinkLocalAddr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-847-  EXPECT_FALSE(IPIs6Bone(linklocal_addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-854-  // 'Normal' IPv6 address, should also be none of these.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:855:  IPAddress normal_addr(kIPv6PublicAddr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-856-  EXPECT_FALSE(IPIs6Bone(normal_addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-863-  // IPv4 mapped address (::ffff:123.123.123.123)
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc:864:  IPAddress v4mapped_addr(kIPv4MappedPublicAddr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/ip_address_unittest.cc-865-  EXPECT_TRUE(IPIsV4Mapped(v4mapped_addr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.h-93-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.h:94:  const IPAddress& ipaddr() const;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.h-95-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.h-174-  // If IPv6, will zero out the sockaddr_in and sets family to AF_UNSPEC.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.h:175:  void ToSockAddr(sockaddr_in* saddr) const;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.h-176-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.h-177-  // Read this address from a sockaddr_in.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.h:178:  bool FromSockAddr(const sockaddr_in& saddr);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.h-179-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc-174-    EXPECT_EQ(post.port(), pre.port() + 1);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc:175:    IPAddress post_ip = post.ipaddr();
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc:176:    IPAddress pre_ip = pre.ipaddr();
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc-177-    EXPECT_EQ(pre_ip.family(), post_ip.family());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc-870-TEST_F(VirtualSocketServerTest, basic_v4) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc:871:  SocketAddress ipv4_test_addr(IPAddress(INADDR_ANY), 5000);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc-872-  BasicTest(ipv4_test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc-875-TEST_F(VirtualSocketServerTest, basic_v6) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc:876:  SocketAddress ipv6_test_addr(IPAddress(in6addr_any), 5000);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc-877-  BasicTest(ipv6_test_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc-880-TEST_F(VirtualSocketServerTest, TestDefaultRoute_v4) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc:881:  IPAddress ipv4_default_addr(0x01020304);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_unittest.cc-882-  TestDefaultRoute(ipv4_default_addr);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_socket_factory.cc-26-                         const SocketAddress& remote_addr) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_socket_factory.cc:27:  const IPAddress& ip = remote_addr.ipaddr();
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_socket_factory.cc-28-  int family = ip.family();
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-144-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc:145:  struct sockaddr_in6* CreateIpv6Addr(const std::string& ip_string,
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-146-                                      uint32_t scope_id) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-167-    if_addr->ifa_addr = reinterpret_cast<struct sockaddr*>(
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc:168:        CreateIpv6Addr(ipv6_address, scope_id));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-169-    if_addr->ifa_netmask =
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc:170:        reinterpret_cast<struct sockaddr*>(CreateIpv6Addr(ipv6_netmask, 0));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-171-    if_addr->ifa_next = list;
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-189-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc:190:  struct sockaddr_in* CreateIpv4Addr(const std::string& ip_string) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-191-    struct sockaddr_in* ipv4_addr =
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-209-    if_addr->ifa_addr =
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc:210:        reinterpret_cast<struct sockaddr*>(CreateIpv4Addr(ipv4_address));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-211-    if_addr->ifa_netmask =
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc:212:        reinterpret_cast<struct sockaddr*>(CreateIpv4Addr(ipv4_netmask));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network_unittest.cc-213-    if_addr->ifa_next = list;
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.h-115-  void SetDelayOnAddress(const rtc::SocketAddress& address, int delay_ms) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.h:116:    delay_by_ip_[address.ipaddr()] = delay_ms;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.h-117-  }
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.cc-130-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.cc:131:const IPAddress& SocketAddress::ipaddr() const {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.cc-132-  return ip_;
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.cc-251-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.cc:252:void SocketAddress::ToSockAddr(sockaddr_in* saddr) const {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.cc-253-  memset(saddr, 0, sizeof(*saddr));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.cc-266-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.cc:267:bool SocketAddress::FromSockAddr(const sockaddr_in& saddr) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address.cc-268-  if (saddr.sin_family != AF_INET)
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-91-struct MessageAddress : public MessageData {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:92:  explicit MessageAddress(const SocketAddress& a) : addr(a) {}
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-93-  SocketAddress addr;
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-344-    socket->set_was_any(was_any_);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:345:    SocketAddress remote_addr(listen_queue_->front());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-346-    int result = socket->InitiateConnect(remote_addr, false);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-442-    int result = 0;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:443:    if (addr.ipaddr().family() == AF_INET) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-444-      result = Bind(SocketAddress("0.0.0.0", 0));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:445:    } else if (addr.ipaddr().family() == AF_INET6) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-446-      result = Bind(SocketAddress("::", 0));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-480-  if (local_addr_.IsNil()) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:481:    local_addr_ = EmptySocketAddressWithFamily(addr.ipaddr().family());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-482-    int result = server_->Bind(this, &local_addr_);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-676-  // Address must be completely specified at this point
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:677:  RTC_DCHECK(!IPIsUnspec(addr.ipaddr()));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-678-  RTC_DCHECK(addr.port() != 0);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-680-  // Normalize the address (turns v6-mapped addresses into v4-addresses).
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:681:  SocketAddress normalized(addr.ipaddr().Normalized(), addr.port());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-682-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-690-  // Normalize the IP.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:691:  if (!IPIsUnspec(addr->ipaddr())) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:692:    addr->SetIP(addr->ipaddr().Normalized());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-693-  } else {
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-699-  // the IP here.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:700:  auto alternative = alternative_address_mapping_.find(addr->ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-701-  if (alternative != alternative_address_mapping_.end()) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-718-VirtualSocket* VirtualSocketServer::LookupBinding(const SocketAddress& addr) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:719:  SocketAddress normalized(addr.ipaddr().Normalized(), addr.port());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-720-  AddressMap::iterator it = bindings_->find(normalized);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-724-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:725:  IPAddress default_ip = GetDefaultRoute(addr.ipaddr().family());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:726:  if (!IPIsUnspec(default_ip) && addr.ipaddr() == default_ip) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-727-    // If we can't find a binding for the packet which is sent to the interface
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-730-    SocketAddress sock_addr =
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:731:        EmptySocketAddressWithFamily(addr.ipaddr().family());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-732-    sock_addr.SetPort(addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-740-                                VirtualSocket* socket) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:741:  SocketAddress normalized(addr.ipaddr().Normalized(), addr.port());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-742-  RTC_DCHECK((*bindings_)[normalized] == socket);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-751-  // multiple clients to connect to the same server address.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:752:  SocketAddress local_normalized(local.ipaddr().Normalized(), local.port());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:753:  SocketAddress remote_normalized(remote.ipaddr().Normalized(), remote.port());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-754-  SocketAddressPair address_pair(local_normalized, remote_normalized);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-761-    const SocketAddress& remote) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:762:  SocketAddress local_normalized(local.ipaddr().Normalized(), local.port());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:763:  SocketAddress remote_normalized(remote.ipaddr().Normalized(), remote.port());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-764-  SocketAddressPair address_pair(local_normalized, remote_normalized);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-770-                                           const SocketAddress& remote) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:771:  SocketAddress local_normalized(local.ipaddr().Normalized(), local.port());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:772:  SocketAddress remote_normalized(remote.ipaddr().Normalized(), remote.port());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-773-  SocketAddressPair address_pair(local_normalized, remote_normalized);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-961-  SocketAddress sender_addr = sender->local_addr_;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:962:  IPAddress default_ip = GetDefaultRoute(sender_addr.ipaddr().family());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-963-  if (sender_addr.IsAnyIP() && !IPIsUnspec(default_ip)) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-1069-  // Use the delay based on the address if it is set.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:1070:  auto iter = delay_by_ip_.find(socket->GetLocalAddress().ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-1071-  if (iter != delay_by_ip_.end()) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-1153-  }
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:1154:  IPAddress local_ip = local->GetLocalAddress().ipaddr();
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc:1155:  IPAddress remote_ip = remote->GetLocalAddress().ipaddr();
chromium-84.0.4147.105/third_party/webrtc/rtc_base/virtual_socket_server.cc-1156-  IPAddress local_normalized = local_ip.Normalized();
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/async_tcp_socket.cc-325-void AsyncTCPSocket::ProcessInput(char* data, size_t* len) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/async_tcp_socket.cc:326:  SocketAddress remote_addr(GetRemoteAddress());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/async_tcp_socket.cc-327-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h-52-    SocketAddress address(if_name, 0);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h:53:    address.SetResolvedIP(iface.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h-54-    ifaces_.push_back(std::make_pair(address, type));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h-104-      int prefix_length = 0;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h:105:      if (it->first.ipaddr().family() == AF_INET) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h-106-        prefix_length = kFakeIPv4NetworkPrefixLength;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h:107:      } else if (it->first.ipaddr().family() == AF_INET6) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h-108-        prefix_length = kFakeIPv6NetworkPrefixLength;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h-109-      }
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h:110:      IPAddress prefix = TruncateIP(it->first.ipaddr(), prefix_length);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h-111-      std::unique_ptr<Network> net(new Network(it->first.hostname(),
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h-114-      net->set_default_local_address_provider(this);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h:115:      net->AddIP(it->first.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/fake_network.h-116-      networks.push_back(net.release());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/firewall_socket_server.cc-31-  int Bind(const SocketAddress& addr) override {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/firewall_socket_server.cc:32:    if (!server_->IsBindableIp(addr.ipaddr())) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/firewall_socket_server.cc-33-      SetError(EINVAL);
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/firewall_socket_server.cc-182-      continue;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/firewall_socket_server.cc:183:    if ((r.src.ipaddr() != src.ipaddr()) && !r.src.IsNil())
chromium-84.0.4147.105/third_party/webrtc/rtc_base/firewall_socket_server.cc-184-      continue;
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/firewall_socket_server.cc-186-      continue;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/firewall_socket_server.cc:187:    if ((r.dst.ipaddr() != dst.ipaddr()) && !r.dst.IsNil())
chromium-84.0.4147.105/third_party/webrtc/rtc_base/firewall_socket_server.cc-188-      continue;
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/proxy_server.cc-27-    : ext_factory_(ext_factory),
chromium-84.0.4147.105/third_party/webrtc/rtc_base/proxy_server.cc:28:      ext_ip_(ext_ip.ipaddr(), 0),  // strip off port
chromium-84.0.4147.105/third_party/webrtc/rtc_base/proxy_server.cc-29-      server_socket_(
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/thread_unittest.cc-215-TEST(ThreadTest, DISABLED_Main) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/thread_unittest.cc:216:  const SocketAddress addr("127.0.0.1", 0);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/thread_unittest.cc-217-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network.cc-888-  }
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network.cc:889:  return socket->GetLocalAddress().ipaddr();
chromium-84.0.4147.105/third_party/webrtc/rtc_base/network.cc-890-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-38-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:39:  EXPECT_EQ(IPAddress(), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-40-  EXPECT_EQ(0, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-44-TEST(SocketAddressTest, TestIPPortCtor) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:45:  SocketAddress addr(IPAddress(0x01020304), 5678);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-46-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:47:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-48-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-53-TEST(SocketAddressTest, TestIPv4StringPortCtor) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:54:  SocketAddress addr("1.2.3.4", 5678);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-55-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:56:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-57-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-66-  EXPECT_FALSE(addr2.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:67:  EXPECT_EQ(tocheck, addr2.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-68-  EXPECT_EQ(1234, addr2.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-74-  // inet_addr doesn't handle this address properly.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:75:  SocketAddress addr("255.255.255.255", 5678);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-76-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:77:  EXPECT_EQ(IPAddress(0xFFFFFFFFU), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-78-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-83-TEST(SocketAddressTest, TestHostnamePortCtor) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:84:  SocketAddress addr("a.b.com", 5678);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-85-  EXPECT_TRUE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:86:  EXPECT_EQ(IPAddress(), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-87-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-93-  SocketAddress from("1.2.3.4", 5678);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:94:  SocketAddress addr(from);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-95-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:96:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-97-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-103-  SocketAddress from("1.2.3.4", 5678);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:104:  SocketAddress addr(IPAddress(0x88888888), 9999);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-105-  addr = from;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-106-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:107:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-108-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-113-TEST(SocketAddressTest, TestSetIPPort) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:114:  SocketAddress addr(IPAddress(0x88888888), 9999);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-115-  addr.SetIP(IPAddress(0x01020304));
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-117-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:118:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-119-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-124-TEST(SocketAddressTest, TestSetIPFromString) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:125:  SocketAddress addr(IPAddress(0x88888888), 9999);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-126-  addr.SetIP("1.2.3.4");
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-128-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:129:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-130-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-135-TEST(SocketAddressTest, TestSetIPFromHostname) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:136:  SocketAddress addr(IPAddress(0x88888888), 9999);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-137-  addr.SetIP("a.b.com");
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-139-  EXPECT_TRUE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:140:  EXPECT_EQ(IPAddress(), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-141-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-145-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:146:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-147-  EXPECT_EQ("a.b.com", addr.hostname());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-154-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:155:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-156-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-173-  EXPECT_TRUE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:174:  EXPECT_EQ(IPAddress(), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-175-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-182-  sockaddr_in addr_in;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:183:  from.ToSockAddr(&addr_in);
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:184:  EXPECT_TRUE(addr.FromSockAddr(addr_in));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-185-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:186:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-187-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-197-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:198:  EXPECT_EQ(IPAddress(0x01020304U), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-199-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-206-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:207:  EXPECT_EQ(IPAddress(kMappedV4Addr), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-208-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-218-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:219:  EXPECT_EQ(IPAddress(kTestV6Addr), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-220-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-228-  EXPECT_FALSE(addr.IsUnresolvedIP());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc:229:  EXPECT_EQ(IPAddress(kTestV6Addr), addr.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/socket_address_unittest.cc-230-  EXPECT_EQ(5678, addr.port());
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc-207-      pss->CreateAsyncSocket(src.family(), SOCK_DGRAM));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc:208:  if (client->Bind(SocketAddress(src.ipaddr(), 0)) != 0 ||
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc-209-      server->Bind(SocketAddress(dst, 0)) != 0) {
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc-259-
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc:260:  RTC_LOG(LS_INFO) << "selected ip " << ext_addr2.ipaddr().ToString();
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc-261-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc-305-  ext_addrs[1].SetIP(ext_vss->GetNextIP(int_addr.family()));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc:306:  ext_addrs[2].SetIP(ext_addrs[0].ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc:307:  ext_addrs[3].SetIP(ext_addrs[1].ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc-308-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc-387-  EXPECT_EQ(client_->GetRemoteAddress(), server_->GetLocalAddress());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc:388:  EXPECT_EQ(accepted_->GetRemoteAddress().ipaddr(), ext_addr_.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_unittest.cc-389-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server_unittest.cc-204-  EXPECT_EQ(AsyncSocket::CS_CLOSED, client1->GetState());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server_unittest.cc:205:  EXPECT_TRUE(IsUnspecOrEmptyIP(client1->GetLocalAddress().ipaddr()));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server_unittest.cc-206-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server_unittest.cc-210-  EXPECT_EQ(AsyncSocket::CS_CLOSED, client2->GetState());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server_unittest.cc:211:  EXPECT_TRUE(IsUnspecOrEmptyIP(client2->GetLocalAddress().ipaddr()));
chromium-84.0.4147.105/third_party/webrtc/rtc_base/physical_socket_server_unittest.cc-212-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/async_packet_socket.cc-35-  info->packet_size_bytes = packet_size_bytes;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/async_packet_socket.cc:36:  info->ip_overhead_bytes = socket_from.GetLocalAddress().ipaddr().overhead();
chromium-84.0.4147.105/third_party/webrtc/rtc_base/async_packet_socket.cc-37-}
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/system/asm_defines.h-15-// clang formatting breaks everything here, e.g. concatenating directives,
chromium-84.0.4147.105/third_party/webrtc/rtc_base/system/asm_defines.h:16:// due to absence of context via asm keyword.
chromium-84.0.4147.105/third_party/webrtc/rtc_base/system/asm_defines.h-17-
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/test_client.cc-164-                           int64_t packet_time_us)
chromium-84.0.4147.105/third_party/webrtc/rtc_base/test_client.cc:165:    : addr(a), buf(0), size(s), packet_time_us(packet_time_us) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/test_client.cc-166-  buf = new char[size];
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/test_client.cc-170-TestClient::Packet::Packet(const Packet& p)
chromium-84.0.4147.105/third_party/webrtc/rtc_base/test_client.cc:171:    : addr(p.addr), buf(0), size(p.size), packet_time_us(p.packet_time_us) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/test_client.cc-172-  buf = new char[size];
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc-49-  if (use_ip)
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc:50:    h ^= HashIP(a.ipaddr());
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc-51-  if (use_port)
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc-57-                         const SocketAddress& a2) const {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc:58:  if (use_ip && (a1.ipaddr() < a2.ipaddr()))
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc-59-    return true;
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc:60:  if (use_ip && (a2.ipaddr() < a1.ipaddr()))
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc-61-    return false;
##############################################
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc-132-                     const SocketAddress& external_ip)
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc:133:    : external_(external), external_ip_(external_ip.ipaddr(), 0) {
chromium-84.0.4147.105/third_party/webrtc/rtc_base/nat_server.cc-134-  nat_ = NAT::Create(type);
##############################################
chromium-84.0.4147.105/third_party/webrtc/system_wrappers/source/cpu_features.cc-71-WebRtc_CPUInfo WebRtc_GetCPUInfo = GetCPUInfo;
chromium-84.0.4147.105/third_party/webrtc/system_wrappers/source/cpu_features.cc:72:WebRtc_CPUInfo WebRtc_GetCPUInfoNoASM = GetCPUInfoNoASM;
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc-3440-  } else {
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc:3441:    printf(", where %s = %s\n", kTypeParamLabel, test_case.type_param());
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc-3442-  }
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc-3454-  } else {
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc:3455:    printf(", where %s = %s\n", kTypeParamLabel, test_suite.type_param());
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc-3456-  }
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc-5962-            // the output easy to parse by a program.
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc:5963:            PrintOnOneLine(test_suite->type_param(), kMaxParamLength);
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc-5964-          }
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc-5971-          // output easy to parse by a program.
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc:5972:          PrintOnOneLine(test_info->value_param(), kMaxParamLength);
chromium-84.0.4147.105/third_party/googletest/src/googletest/src/gtest.cc-5973-        }
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/docs/pkgconfig.md-146-which contains the correct sysroot now. For a more comprehensive guide to also
chromium-84.0.4147.105/third_party/googletest/src/googletest/docs/pkgconfig.md:147:including `${CHOST}` in build system calls, see the excellent tutorial by Diego
chromium-84.0.4147.105/third_party/googletest/src/googletest/docs/pkgconfig.md-148-Elio Pettenò: https://autotools.io/pkgconfig/cross-compiling.html
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/scripts/gtest-config.in-205-bindir="@bindir@"
chromium-84.0.4147.105/third_party/googletest/src/googletest/scripts/gtest-config.in:206:this_relative_bindir=`dirname $0`
chromium-84.0.4147.105/third_party/googletest/src/googletest/scripts/gtest-config.in:207:this_bindir=`cd ${this_relative_bindir}; pwd -P`
chromium-84.0.4147.105/third_party/googletest/src/googletest/scripts/gtest-config.in-208-if test "${this_bindir}" = "${this_bindir%${bindir}}"; then
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/scripts/gtest-config.in-210-  # assume that we are in a build tree.
chromium-84.0.4147.105/third_party/googletest/src/googletest/scripts/gtest-config.in:211:  build_dir=`dirname ${this_bindir}`
chromium-84.0.4147.105/third_party/googletest/src/googletest/scripts/gtest-config.in:212:  src_dir=`cd ${this_bindir}; cd @top_srcdir@; pwd -P`
chromium-84.0.4147.105/third_party/googletest/src/googletest/scripts/gtest-config.in-213-
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/test/googletest-param-test-test.cc-790-
chromium-84.0.4147.105/third_party/googletest/src/googletest/test/googletest-param-test-test.cc:791:  EXPECT_EQ(::testing::PrintToString(GetParam()), test_info->value_param());
chromium-84.0.4147.105/third_party/googletest/src/googletest/test/googletest-param-test-test.cc-792-}
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/test/googletest-param-test-test.cc-1011-
chromium-84.0.4147.105/third_party/googletest/src/googletest/test/googletest-param-test-test.cc:1012:  EXPECT_EQ(::testing::PrintToString(GetParam()), test_info->value_param());
chromium-84.0.4147.105/third_party/googletest/src/googletest/test/googletest-param-test-test.cc-1013-}
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googletest/cmake/Config.cmake.in-7-
chromium-84.0.4147.105/third_party/googletest/src/googletest/cmake/Config.cmake.in:8:include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
chromium-84.0.4147.105/third_party/googletest/src/googletest/cmake/Config.cmake.in-9-check_required_components("@project_name@")
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-44-The following Pump code (where meta keywords start with `$`, `[[` and `]]` are
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:45:meta brackets, and `$$` starts a meta comment that ends with the line):
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-46-
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-118-
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:119:| `$var id = exp`                  | Defines a named constant value. `$id` is |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-120-:                                  : valid util the end of the current meta   :
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-122-| :------------------------------- | :--------------------------------------- |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:123:| `$range id exp..exp`             | Sets the range of an iteration variable, |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-124-:                                  : which can be reused in multiple loops    :
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-125-:                                  : later.                                   :
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:126:| `$for id sep [[ code ]]`         | Iteration. The range of `id` must have   |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:127::                                  : been defined earlier. `$id` is valid in  :
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-128-:                                  : `code`.                                  :
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:129:| `$($)`                           | Generates a single `$` character.        |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:130:| `$id`                            | Value of the named constant or iteration |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-131-:                                  : variable.                                :
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:132:| `$(exp)`                         | Value of the expression.                 |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:133:| `$if exp [[ code ]] else_branch` | Conditional.                             |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-134-| `[[ code ]]`                     | Meta lexical block.                      |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-135-| `cpp_code`                       | Raw C++ code.                            |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:136:| `$$ comment`                     | Meta comment.                            |
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-137-
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-138-**Note:** To give the user some freedom in formatting the Pump source code, Pump
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:139:ignores a new-line character if it's right after `$for foo` or next to `[[` or
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-140-`]]`. Without this rule you'll often be forced to write very long lines to get
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-181-*   If a meta variable is followed by a letter or digit, you can separate them
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md:182:    using `[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper`
chromium-84.0.4147.105/third_party/googletest/src/googlemock/docs/pump_manual.md-183-    generate `Foo1Helper` when `j` is 1.
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googlemock/scripts/generator/cpp/keywords.py-38-
chromium-84.0.4147.105/third_party/googletest/src/googlemock/scripts/generator/cpp/keywords.py:39:OTHERS = set('true false asm class namespace using explicit this operator sizeof'.split())
chromium-84.0.4147.105/third_party/googletest/src/googlemock/scripts/generator/cpp/keywords.py-40-OTHER_TYPES = set('new delete typedef struct union enum typeid typename template'.split())
##############################################
chromium-84.0.4147.105/third_party/googletest/src/googlemock/CMakeLists.txt-20-# Defines pre_project_set_up_hermetic_build() and set_up_hermetic_build().
chromium-84.0.4147.105/third_party/googletest/src/googlemock/CMakeLists.txt:21:include("${gtest_dir}/cmake/hermetic_build.cmake" OPTIONAL)
chromium-84.0.4147.105/third_party/googletest/src/googlemock/CMakeLists.txt-22-
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/htypes.hxx-60-#define H_OPT (1 << 0)
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/htypes.hxx:61:#define H_OPT_ALIASM (1 << 1)
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/htypes.hxx-62-#define H_OPT_PHON (1 << 2)
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/atypes.hxx-69-#define aeALIASF (1 << 2)
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/atypes.hxx:70:#define aeALIASM (1 << 3)
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/atypes.hxx-71-#define aeLONGCOND (1 << 4)
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-162-    free(aliasm);
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:163:    aliasm = NULL;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-164-  }
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-285-  bool upcasehomonym = false;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:286:  int descl = desc ? (aliasm ? sizeof(char*) : desc->size() + 1) : 0;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-287-  // variable-length hash record with word and optional fields
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1323-bool HashMgr::parse_aliasm(const std::string& line, FileMgr* af) {
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1324:  if (numaliasm != 0) {
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1325-    HUNSPELL_WARNING(stderr, "error: line %d: multiple table definitions\n",
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1339-      case 1: {
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1340:        numaliasm = atoi(std::string(start_piece, iter).c_str());
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1341:        if (numaliasm < 1) {
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1342-          HUNSPELL_WARNING(stderr, "error: line %d: bad entry number\n",
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1345-        }
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1346:        aliasm = (char**)malloc(numaliasm * sizeof(char*));
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1347-        if (!aliasm) {
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1348:          numaliasm = 0;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1349-          return false;
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1360-  if (np != 2) {
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1361:    numaliasm = 0;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1362-    free(aliasm);
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1363:    aliasm = NULL;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1364-    HUNSPELL_WARNING(stderr, "error: line %d: missing data\n",
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1368-
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1369:  /* now parse the numaliasm lines to read in the remainder of the table */
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1370-  for (int j = 0; j < numaliasm; j++) {
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1384-                             af->getlinenum());
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1385:            numaliasm = 0;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1386-            free(aliasm);
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1387:            aliasm = NULL;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1388-            return false;
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1411-    if (!aliasm[j]) {
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1412:      numaliasm = 0;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1413-      free(aliasm);
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1414:      aliasm = NULL;
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1415-      HUNSPELL_WARNING(stderr, "error: line %d: table is corrupt\n",
##############################################
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1423-int HashMgr::is_aliasm() const {
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx:1424:  return (aliasm != NULL);
chromium-84.0.4147.105/third_party/hunspell/src/hunspell/hashmgr.cxx-1425-}
##############################################
chromium-84.0.4147.105/third_party/hunspell/update_google_patch.sh-20-tempfiles=( )
chromium-84.0.4147.105/third_party/hunspell/update_google_patch.sh:21:tmplate="/tmp/`basename $0`.XXXXXX"
chromium-84.0.4147.105/third_party/hunspell/update_google_patch.sh-22-
##############################################
chromium-84.0.4147.105/third_party/jsoncpp/source/.travis_scripts/meson_builder.sh-63-ninja --version
chromium-84.0.4147.105/third_party/jsoncpp/source/.travis_scripts/meson_builder.sh:64:_COMPILER_NAME=`basename ${CXX}`
chromium-84.0.4147.105/third_party/jsoncpp/source/.travis_scripts/meson_builder.sh-65-_BUILD_DIR_NAME="build-${BUILD_TYPE}_${LIB_TYPE}_${_COMPILER_NAME}"
##############################################
chromium-84.0.4147.105/third_party/jsoncpp/source/.travis_scripts/cmake_builder.sh-67-${CXX} --version
chromium-84.0.4147.105/third_party/jsoncpp/source/.travis_scripts/cmake_builder.sh:68:_COMPILER_NAME=`basename ${CXX}`
chromium-84.0.4147.105/third_party/jsoncpp/source/.travis_scripts/cmake_builder.sh-69-if [ "${BUILD_TYPE}" == "shared" ]; then
##############################################
chromium-84.0.4147.105/third_party/jsoncpp/source/test/data/test_string_02.expected:1:.="!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
##############################################
chromium-84.0.4147.105/third_party/jsoncpp/source/test/data/test_string_02.json:1:"!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
##############################################
chromium-84.0.4147.105/third_party/dawn/src/include/dawn_native/VulkanBackend.h-27-
chromium-84.0.4147.105/third_party/dawn/src/include/dawn_native/VulkanBackend.h:28:    DAWN_NATIVE_EXPORT PFN_vkVoidFunction GetInstanceProcAddr(WGPUDevice device, const char* pName);
chromium-84.0.4147.105/third_party/dawn/src/include/dawn_native/VulkanBackend.h-29-
##############################################
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp-23-    do {                                                                                   \
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp:24:        name = reinterpret_cast<decltype(name)>(GetInstanceProcAddr(nullptr, "vk" #name)); \
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp-25-        if (name == nullptr) {                                                             \
##############################################
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp-40-        EnumerateInstanceVersion = reinterpret_cast<decltype(EnumerateInstanceVersion)>(
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp:41:            GetInstanceProcAddr(nullptr, "vkEnumerateInstanceVersion"));
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp-42-
##############################################
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp-47-    do {                                                                                        \
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp:48:        name = reinterpret_cast<decltype(name)>(GetInstanceProcAddr(instance, "vk" #procName)); \
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp-49-        if (name == nullptr) {                                                                  \
##############################################
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp-152-    do {                                                                                \
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp:153:        name = reinterpret_cast<decltype(name)>(GetDeviceProcAddr(device, "vk" #name)); \
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanFunctions.cpp-154-        if (name == nullptr) {                                                          \
##############################################
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanBackend.cpp-35-
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanBackend.cpp:36:    DAWN_NATIVE_EXPORT PFN_vkVoidFunction GetInstanceProcAddr(WGPUDevice device,
chromium-84.0.4147.105/third_party/dawn/src/dawn_native/vulkan/VulkanBackend.cpp-37-                                                              const char* pName) {
##############################################
chromium-84.0.4147.105/third_party/dawn/src/utils/WGPUHelpers.cpp-103-            shaderc::CompileOptions options;
chromium-84.0.4147.105/third_party/dawn/src/utils/WGPUHelpers.cpp:104:            auto resultAsm = compiler->CompileGlslToSpvAssembly(source, strlen(source), kind,
chromium-84.0.4147.105/third_party/dawn/src/utils/WGPUHelpers.cpp-105-                                                                "myshader?", options);
chromium-84.0.4147.105/third_party/dawn/src/utils/WGPUHelpers.cpp:106:            size_t sizeAsm = (resultAsm.cend() - resultAsm.cbegin());
chromium-84.0.4147.105/third_party/dawn/src/utils/WGPUHelpers.cpp-107-
chromium-84.0.4147.105/third_party/dawn/src/utils/WGPUHelpers.cpp:108:            char* buffer = reinterpret_cast<char*>(malloc(sizeAsm + 1));
chromium-84.0.4147.105/third_party/dawn/src/utils/WGPUHelpers.cpp-109-            memcpy(buffer, resultAsm.cbegin(), sizeAsm);
##############################################
chromium-84.0.4147.105/third_party/dawn/third_party/khronos/vulkan/vulkan_core.h-3182-
chromium-84.0.4147.105/third_party/dawn/third_party/khronos/vulkan/vulkan_core.h:3183:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
chromium-84.0.4147.105/third_party/dawn/third_party/khronos/vulkan/vulkan_core.h-3184-    VkInstance                                  instance,
##############################################
chromium-84.0.4147.105/third_party/dawn/third_party/khronos/vulkan/vulkan_core.h-3186-
chromium-84.0.4147.105/third_party/dawn/third_party/khronos/vulkan/vulkan_core.h:3187:VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
chromium-84.0.4147.105/third_party/dawn/third_party/khronos/vulkan/vulkan_core.h-3188-    VkDevice                                    device,
##############################################
chromium-84.0.4147.105/third_party/minizip/src/lib/liblzma/lzma/fastpos.h-71-// version is slightly faster. This occurs at least on 32-bit SPARC (no
chromium-84.0.4147.105/third_party/minizip/src/lib/liblzma/lzma/fastpos.h:72:// ASM optimizations).
chromium-84.0.4147.105/third_party/minizip/src/lib/liblzma/lzma/fastpos.h-73-//
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-28-# Rings 1 and 4 are all thrown together.
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:29:echo RING1_DEPS:=`find $RING1 -name '*.c.*' | sed 's/\.c.*/-all.ps/' | sort | uniq`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:30:echo RING4_DEPS:=`find $RING4 -name '*.c.*' | sed 's/\.c.*/-all.ps/' | sort | uniq`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-31-
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-32-# Other rings are divided into dirs.
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:33:echo RING2_DEPS:=`for d in $RING2; do echo $d-ring2.ps; done`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:34:echo RING3_DEPS:=`for d in $RING3; do echo $d-ring3.ps; done`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-35-echo
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-48-echo "	@echo /angle 0 def > \$@"
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:49:echo "	@../rotary_arrange.sh $DIR_SPACING" `for f in $RING2; do echo $f-ring2.ps $f-ring2.angle; done` '>> $@'
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-50-echo "	@echo Done Ring 2"
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-55-echo "	@echo /angle 0 def > \$@"
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:56:echo "	@../rotary_arrange.sh $DIR_SPACING" `for f in $RING3; do echo $f-ring3.ps $f-ring3.angle; done` '>> $@'
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-57-echo "	@echo Done Ring 3"
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-72-echo "	@echo Rendering \$@"
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:73:echo "	@../draw_arrangement $FILE_SCRUNCH 0 \`cat \$<\` \`cat ring1.radius\` \`find \$* -name '*-all.ps'\` > \$@"
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-74-
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-76-echo "	@echo Rendering \$@"
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:77:echo "	@../draw_arrangement $FILE_SCRUNCH 0 \`cat \$<\` \`cat ring2.radius\` \`find \$* -name '*-all.ps'\` > \$@"
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-78-
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-80-echo "%.radius: %.ps"
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:81:echo '	@echo scale=2\; `tail -1 $< | sed "s/^.* //"` + '$RING_SPACING' | bc > $@'
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-82-echo
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-85-echo "%-ring2.angle: %-ring2.weight ring2.weight"
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:86:echo '	@echo "scale=2; ( 360 - ' `echo $RING2 | wc -w` ' * ' $DIR_SPACING ') * `cat $<` / `cat ring2.weight`" | bc > $@'
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-87-
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-88-echo "%-ring3.angle: %-ring3.weight ring3.weight"
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:89:echo '	@echo "scale=2; ( 360 - ' `echo $RING3 | wc -w` ' * ' $DIR_SPACING ') * `cat $<` / `cat ring3.weight`" | bc > $@'
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-90-
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-91-# How to make ring weights (sum directory totals).
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:92:echo "ring2.weight:" `for d in $RING2; do echo $d-ring2.weight; done`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-93-echo '	@cat $^ | ../tally > $@'
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:94:echo "ring3.weight:" `for d in $RING3; do echo $d-ring3.weight; done`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-95-echo '	@cat $^ | ../tally > $@'
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-97-# How to make a wieght.
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:98:echo "%-ring2.weight:" `find $RING2 -name '*.c.*' | sed 's/\.c.*/-all.ps/' | sort | uniq`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:99:echo '	@../total_area.pl `find $* -name \*-all.ps` > $@'
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:100:echo "%-ring3.weight:" `find $RING3 -name '*.c.*' | sed 's/\.c.*/-all.ps/' | sort | uniq`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:101:echo '	@../total_area.pl `find $* -name \*-all.ps` > $@'
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-102-echo
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-105-#echo %.ps::%
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:106:#echo '	@../function2ps `echo $< | sed '\''s/^.*\.\([^.]*\)\.\+.*$$/\1/'\''` > $@ $<'
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-107-## Need the space.
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-119-# Generating outline, requires all the angles.
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:120:echo outline.ps: ../make-outline.sh ring1.ps ring2.ps ring3.ps ring4.ps `for f in $RING2; do echo $f-ring2.angle; done` `for f in $RING3; do echo $f-ring3.angle; done`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-121-echo "	../make-outline.sh $INNER_RADIUS $DIR_SPACING $RING_SPACING \"$RING1\" > \$@"
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-125-for d in `find . -type d`; do
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:126:    for f in `cd $d; ls *+.ps 2>/dev/null | sed 's/\.c\..*$//' | uniq`; do
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh:127:	echo $d/$f-all.ps: `cd $d; ls $f.c.* | sed -e "s?^?$d/?"`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/gen_makefile.sh-128-    done
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/conglomerate_functions.pl-20-
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/conglomerate_functions.pl:21:#TMPFILE=`mktemp ${TMPDIR:-/tmp}/$$.XXXXXX`
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/conglomerate_functions.pl-22-
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/conglomerate_functions.pl-29-
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/conglomerate_functions.pl:30:my @Arranged = `../draw_arrangement $SCRUNCH 0 360 0 $ArgList`;
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/conglomerate_functions.pl-31-
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/conglomerate_functions.pl-109-	my ($XMin, $YMin, $XMax, $YMax) = ParseBound ($BBoxLine);
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/conglomerate_functions.pl:110:	my @output = `fgrep $CFile $CovFile`;
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/conglomerate_functions.pl-111-	chomp $output[0];
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/posterize.pl-289-
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/posterize.pl:290:$Bounds = `tail -1 $Image`;
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/posterize.pl-291-($Junk, $Junk, $minX, $minY, $maxX, $maxY) = split / /, $Bounds;
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl-451-	my $hitcount;			# Count for lines hit
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl:452:	my $count;			# Execution count of current line
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl-453-	my $negative;			# If set, warn about negative counts
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl-476-		# Check integrity of compressed file
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl:477:		system("gunzip -t $_[0] >/dev/null 2>/dev/null")
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl-478-			and die("ERROR: integrity check failed for ".
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl-538-				}
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl:539:				# Execution count found, add to structure
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl-540-				# Add summary counts
##############################################
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl-936-# is a reference to a hash containing the combined mapping in which
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl:937:# execution counts are added.
chromium-84.0.4147.105/third_party/lcov/contrib/galaxy/genflat.pl-938-#
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/geninfo-684-
chromium-84.0.4147.105/third_party/lcov/bin/geninfo:685:		@file_list = `find "$directory" $maxdepth $follow -name \\*$ext -type f 2>/dev/null`;
chromium-84.0.4147.105/third_party/lcov/bin/geninfo-686-		chomp(@file_list);
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/geninfo-3443-{
chromium-84.0.4147.105/third_party/lcov/bin/geninfo:3444:	my $help = `$gcov_tool --help`;
chromium-84.0.4147.105/third_party/lcov/bin/geninfo-3445-	my %capabilities;
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/mcov-146-  # run gcov utility with the supplied gcno file and object directory.
chromium-84.0.4147.105/third_party/lcov/bin/mcov:147:  $gcov_error = system($gcov_tool, $da_filename, "-o", $object_dir);
chromium-84.0.4147.105/third_party/lcov/bin/mcov-148-  
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl-80-	chmod(oct($date[2]), "$filename.new");
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl:81:	system("mv", "-f", "$filename.new", "$filename");
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl:82:	system("touch", "$filename", "-t", $date[1]);
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl-83-}
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl-101-	chmod(oct($date[2]), "$filename.new");
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl:102:	system("mv", "-f", "$filename.new", "$filename");
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl:103:	system("touch", "$filename", "-t", $date[1]);
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl-104-}
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl-122-	chmod(oct($date[2]), "$filename.new");
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl:123:	system("mv", "-f", "$filename.new", "$filename");
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl:124:	system("touch", "$filename", "-t", $date[1]);
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl-125-}
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl-143-	close(IN);
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl:144:	system("mv", "-f", "$filename.new", "$filename");
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl:145:	system("touch", "$filename", "-t", $date[1]);
chromium-84.0.4147.105/third_party/lcov/bin/updateversion.pl-146-}
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/lcov-596-		     ($no_recursion?"\n":" and subdirectories\n"));
chromium-84.0.4147.105/third_party/lcov/bin/lcov:597:		@file_list = `find "$current_dir" $maxdepth $follow -name \\*\\.da -o -name \\*\\.gcda -type f 2>/dev/null`;
chromium-84.0.4147.105/third_party/lcov/bin/lcov-598-		chomp(@file_list);
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/lcov-882-
chromium-84.0.4147.105/third_party/lcov/bin/lcov:883:	system(@param) and exit($? >> 8);
chromium-84.0.4147.105/third_party/lcov/bin/lcov-884-}
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/lcov-1034-	chdir($dir);
chromium-84.0.4147.105/third_party/lcov/bin/lcov:1035:	system("tar cfz $file .")
chromium-84.0.4147.105/third_party/lcov/bin/lcov-1036-		and die("ERROR: could not create package $file\n");
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/lcov-1606-	my $hitcount;			# Count for lines hit
chromium-84.0.4147.105/third_party/lcov/bin/lcov:1607:	my $count;			# Execution count of current line
chromium-84.0.4147.105/third_party/lcov/bin/lcov-1608-	my $negative;			# If set, warn about negative counts
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/lcov-1707-				}
chromium-84.0.4147.105/third_party/lcov/bin/lcov:1708:				# Execution count found, add to structure
chromium-84.0.4147.105/third_party/lcov/bin/lcov-1709-				# Add summary counts
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/lcov-1976-# is a reference to a hash containing the combined mapping in which
chromium-84.0.4147.105/third_party/lcov/bin/lcov:1977:# execution counts are added.
chromium-84.0.4147.105/third_party/lcov/bin/lcov-1978-#
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/genpng-166-{
chromium-84.0.4147.105/third_party/lcov/bin/genpng:167:	eval("use $_[0];");
chromium-84.0.4147.105/third_party/lcov/bin/genpng-168-	return $@;
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-1291-	my $hitcount;			# Count for lines hit
chromium-84.0.4147.105/third_party/lcov/bin/genhtml:1292:	my $count;			# Execution count of current line
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-1293-	my $negative;			# If set, warn about negative counts
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-1394-				}
chromium-84.0.4147.105/third_party/lcov/bin/genhtml:1395:				# Execution count found, add to structure
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-1396-				# Add summary counts
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-1659-# is a reference to a hash containing the combined mapping in which
chromium-84.0.4147.105/third_party/lcov/bin/genhtml:1660:# execution counts are added.
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-1661-#
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-2437-
chromium-84.0.4147.105/third_party/lcov/bin/genhtml:2438:	system("mkdir", "-p" ,$dir)
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-2439-		and die("ERROR: cannot create directory $dir!\n");
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-2646-		# Simply copy that file
chromium-84.0.4147.105/third_party/lcov/bin/genhtml:2647:		system("cp", $css_filename, "gcov.css")
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-2648-			and die("ERROR: cannot copy file $css_filename!\n");
##############################################
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-5198-		if ($demangle_cpp) {
chromium-84.0.4147.105/third_party/lcov/bin/genhtml:5199:			$name = `c++filt "$name"`;
chromium-84.0.4147.105/third_party/lcov/bin/genhtml-5200-			chomp($name);
##############################################
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl-2111-      optional string objectGroup
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl:2112:      # Execution context in which to resolve the node.
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl-2113-      optional Runtime.ExecutionContextId executionContextId
##############################################
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl-2333-# DOM debugging allows setting breakpoints on particular DOM operations and events. JavaScript
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl:2334:# execution will stop on these operations as if there was a regular breakpoint set.
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl-2335-domain DOMDebugger
##############################################
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl-3980-      number total
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl:3981:      # Execution stack at the point of allocation.
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl-3982-      array of string stack
##############################################
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl-5726-    returns
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl:5727:      # Execution context of the isolated world.
chromium-84.0.4147.105/third_party/blink/public/devtools_protocol/browser_protocol.pdl-5728-      Runtime.ExecutionContextId executionContextId
##############################################
chromium-84.0.4147.105/third_party/blink/public/mojom/web_feature/web_feature.mojom-272-
chromium-84.0.4147.105/third_party/blink/public/mojom/web_feature/web_feature.mojom:273:  kUseAsm = 473,
chromium-84.0.4147.105/third_party/blink/public/mojom/web_feature/web_feature.mojom-274-  kDOMWindowOpen = 475,
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc-434-  transaction_->SetActiveDuringSerialization(false);
chromium-84.0.4147.105/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc:435:  // TODO(crbug.com/719053): This wasm behavior differs from other browsers.
chromium-84.0.4147.105/third_party/blink/renderer/modules/indexeddb/idb_object_store.cc-436-  SerializedScriptValue::SerializeOptions::WasmSerializationPolicy wasm_policy =
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/modules/wake_lock/README.md-19-lock.addEventListener("release", (ev) => {
chromium-84.0.4147.105/third_party/blink/renderer/modules/wake_lock/README.md:20:  console.log(`${ev.target.type} wake lock released`);
chromium-84.0.4147.105/third_party/blink/renderer/modules/wake_lock/README.md-21-});
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc-907-    converted_image->peekPixels(&converted_pixmap);
chromium-84.0.4147.105/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc:908:    ASSERT_TRUE(converted_pixmap.addr());
chromium-84.0.4147.105/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc-909-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc-934-    ColorCorrectionTestUtils::CompareColorCorrectedPixels(
chromium-84.0.4147.105/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc:935:        converted_pixmap.addr(), manual_converted_bitmap.pixmap().addr(), 1,
chromium-84.0.4147.105/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc-936-        (color_type == kN32_SkColorType) ? kPixelFormat_8888
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc-194-                    sk_image->isOpaque(), false,
chromium-84.0.4147.105/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc:195:                    static_cast<const uint8_t*>(pixmap.addr(0, 0)),
chromium-84.0.4147.105/third_party/blink/renderer/modules/mediacapturefromelement/canvas_capture_handler.cc-196-                    gfx::Size(pixmap.width(), pixmap.height()),
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc-5796-  if (peek_succeed) {
chromium-84.0.4147.105/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc:5797:    pixel_data_ptr = static_cast<uint8_t*>(pixmap.writable_addr());
chromium-84.0.4147.105/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc-5798-  } else {
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/modules/mediarecorder/video_track_recorder.cc-362-#endif
chromium-84.0.4147.105/third_party/blink/renderer/modules/mediarecorder/video_track_recorder.cc:363:    if (libyuv::ConvertToI420(static_cast<uint8_t*>(pixmap.writable_addr()),
chromium-84.0.4147.105/third_party/blink/renderer/modules/mediarecorder/video_track_recorder.cc-364-                              pixmap.computeByteSize(),
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc-88-#endif
chromium-84.0.4147.105/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc:89:    libyuv::ConvertToI420(static_cast<const uint8_t*>(pixmap.addr(0, 0)),
chromium-84.0.4147.105/third_party/blink/renderer/modules/mediastream/webmediaplayer_ms_compositor.cc-90-                          pixmap.computeByteSize(),
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.cc-114-#endif
chromium-84.0.4147.105/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.cc:115:  uint8_t* destination_plane = static_cast<uint8_t*>(pixmap.writable_addr());
chromium-84.0.4147.105/third_party/blink/renderer/modules/imagecapture/image_capture_frame_grabber.cc-116-  int destination_stride = pixmap.width() * 4;
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/cpu/mips/common_macros_msa.h-70-    TYPE valm = val;                                        \
chromium-84.0.4147.105/third_party/blink/renderer/platform/cpu/mips/common_macros_msa.h:71:    asm volatile(" " #INSTR "  %[valm],  %[pdstm]  \n\t"    \
chromium-84.0.4147.105/third_party/blink/renderer/platform/cpu/mips/common_macros_msa.h-72-                 : [pdstm] "=m"(*pdstm)                     \
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc-618-  if (!decode_to_half_float_) {
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc:619:    ImageFrame::PixelData* const dst_row = buffer.GetAddr(frame_rect.X(), y);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc-620-    if (has_alpha) {
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc-1436-    for (int j = 0; j < size.Height(); ++j) {
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc:1437:      ASSERT_NE(SK_ColorTRANSPARENT, *frame->GetAddr(i, j));
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder_test.cc-1438-    }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc-1184-
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc:1185:    ImageFrame::PixelData* pixel = buffer.GetAddr(0, y);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc-1186-    for (int x = 0; x < width; ++pixel, ++x)
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc-1190-    if (xform) {
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc:1191:      ImageFrame::PixelData* row = buffer.GetAddr(0, y);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc-1192-      skcms_AlphaFormat alpha_format = skcms_AlphaFormat_Unpremul;
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc-1297-      unsigned char* row = reinterpret_cast_ptr<unsigned char*>(
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc:1298:          buffer.GetAddr(0, info->output_scanline));
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc-1299-      if (jpeg_read_scanlines(info, &row, 1) != 1)
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-90-    int canvasX = left + x;
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc:91:    blink::ImageFrame::PixelData* pixel = src.GetAddr(canvasX, canvasY);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-92-    if (SkGetPackedA32(*pixel) != 0xff) {
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc:93:      blink::ImageFrame::PixelData prevPixel = *dst.GetAddr(canvasX, canvasY);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-94-      blink::ImageFrame::BlendSrcOverDstPremultiplied(pixel, prevPixel);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-105-    int canvasX = left + x;
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc:106:    blink::ImageFrame::PixelData* pixel = src.GetAddr(canvasX, canvasY);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-107-    if (SkGetPackedA32(*pixel) != 0xff) {
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc:108:      blink::ImageFrame::PixelData prevPixel = *dst.GetAddr(canvasX, canvasY);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-109-      blink::ImageFrame::BlendSrcOverDstRaw(pixel, prevPixel);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-541-      const int canvas_y = top + y;
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc:542:      uint8_t* row = reinterpret_cast<uint8_t*>(buffer.GetAddr(left, canvas_y));
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-543-      bool color_conversion_successful = skcms_Transform(
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-774-  decoder_buffer_.u.RGBA.rgba = reinterpret_cast<uint8_t*>(
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc:775:      buffer.GetAddr(frame_rect.X(), frame_rect.Y()));
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc-776-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc-435-
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc:436:  uint32_t* rgba_8888 = buffer->GetAddr(0, 0);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc-437-  // TODO(wtc): Figure out a way to check frame_cs == ~BT.2020 too since
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc-1063-    return;
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc:1064:  ImageFrame::PixelData* const row = buffer_->GetAddr(0, coord_.Y());
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_reader.cc-1065-  const skcms_PixelFormat fmt = XformColorFormat();
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h-119-    const int row_bytes = (end_x - start_x) * sizeof(PixelData);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h:120:    const PixelData* const start_addr = GetAddr(start_x, start_y);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h-121-    for (int dest_y = start_y + 1; dest_y < end_y; ++dest_y)
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h:122:      memcpy(GetAddr(start_x, dest_y), start_addr, row_bytes);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h-123-  }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h-181-
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h:182:  inline PixelData* GetAddr(int x, int y) {
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h-183-    DCHECK(pixel_format_ == kN32);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h-201-    DCHECK(pixel_format_ == kN32);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h:202:    SetRGBA(GetAddr(x, y), r, g, b, a);
chromium-84.0.4147.105/third_party/blink/renderer/platform/image-decoders/image_frame.h-203-  }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc-411-      LOG(WARNING) << "Failed to convert remote address to IPEndPoint: address="
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc:412:                   << address.ipaddr().ToSensitiveString()
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc-413-                   << ", remote_address_="
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc:414:                   << remote_address_.ipaddr().ToSensitiveString();
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc-415-      NOTREACHED();
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc-554-        // Set only the IP address.
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc:555:        remote_address_.SetResolvedIP(jingle_socket_address.ipaddr());
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc-556-      }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc-705-    }
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc:706:    addresses_.push_back(socket_address.ipaddr());
chromium-84.0.4147.105/third_party/blink/renderer/platform/p2p/ipc_socket_factory.cc-707-  }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-78-    int result;
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h:79:    asm volatile("stmxcsr %0" : "=m"(result));
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-80-    return result;
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-84-    int temp = a;
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h:85:    asm volatile("ldmxcsr %0" : : "m"(temp));
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-86-  }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-114-#if defined(ARCH_CPU_ARM64)
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h:115:    asm volatile("mrs %x[result], FPCR" : [result] "=r"(result));
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-116-#else
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h:117:    asm volatile("vmrs %[result], FPSCR" : [result] "=r"(result));
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-118-#endif
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-123-#if defined(ARCH_CPU_ARM64)
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h:124:    asm volatile("msr FPCR, %x[src]" : : [src] "r"(a));
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-125-#else
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h:126:    asm volatile("vmsr FPSCR, %[src]" : : [src] "r"(a));
chromium-84.0.4147.105/third_party/blink/renderer/platform/audio/denormal_disabler.h-127-#endif
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/heap/asm/SaveRegisters_x86.asm-158-%elif ARM
chromium-84.0.4147.105/third_party/blink/renderer/platform/heap/asm/SaveRegisters_x86.asm:159:%error "NASM does not support arm. Use SaveRegisters_arm.S on arm."
chromium-84.0.4147.105/third_party/blink/renderer/platform/heap/asm/SaveRegisters_x86.asm-160-%else
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-60-  if (retained_image_->peekPixels(&pixmap))
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc:61:    MSAN_CHECK_MEM_IS_INITIALIZED(pixmap.addr(), pixmap.computeByteSize());
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-62-#endif
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-88-    }
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc:89:    MSAN_CHECK_MEM_IS_INITIALIZED(pixmap_.addr(), pixmap_.computeByteSize());
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-90-    retained_image_ = SkImage::MakeRasterData(info, std::move(data), rowBytes);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-93-      return;
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc:94:    MSAN_CHECK_MEM_IS_INITIALIZED(pixmap_.addr(), pixmap_.computeByteSize());
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-95-  }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-101-    : pixmap_(pixmap), size_(IntSize(pixmap.width(), pixmap.height())) {
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc:102:  is_valid_ = pixmap_.addr() && !size_.IsEmpty();
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-103-}
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-124-  DCHECK(is_valid_);
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc:125:  return static_cast<const unsigned char*>(pixmap_.addr());
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-126-}
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-175-        return "data:,";
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc:176:      MSAN_CHECK_MEM_IS_INITIALIZED(pixmap.addr(), pixmap.computeByteSize());
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/image_data_buffer.cc-177-    }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/skia/image_pixel_locker.cc-37-  image_->peekPixels(&pixmap);
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/skia/image_pixel_locker.cc:38:  pixels_ = pixmap.addr();
chromium-84.0.4147.105/third_party/blink/renderer/platform/graphics/skia/image_pixel_locker.cc-39-  if (pixels_ && InfoIsCompatible(pixmap.info(), alpha_type, color_type) &&
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/transforms/transformation_matrix.cc-232-  double* pr = &(result[0][0]);
chromium-84.0.4147.105/third_party/blink/renderer/platform/transforms/transformation_matrix.cc:233:  asm volatile(
chromium-84.0.4147.105/third_party/blink/renderer/platform/transforms/transformation_matrix.cc-234-      // mat: v16 - v23
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/transforms/transformation_matrix.cc-1287-  const double* right_matrix = &(mat.matrix_[0][0]);
chromium-84.0.4147.105/third_party/blink/renderer/platform/transforms/transformation_matrix.cc:1288:  asm volatile(
chromium-84.0.4147.105/third_party/blink/renderer/platform/transforms/transformation_matrix.cc-1289-      // Load this->matrix_ to v24 - v31.
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/geometry/layout_unit.h-65-inline int GetMaxSaturatedSetResultForTesting() {
chromium-84.0.4147.105/third_party/blink/renderer/platform/geometry/layout_unit.h:66:  // For ARM Asm version the set function maxes out to the biggest
chromium-84.0.4147.105/third_party/blink/renderer/platform/geometry/layout_unit.h-67-  // possible integer part with the fractional part zero'd out.
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/platform/geometry/layout_unit.h-77-  // For C version the set function maxes out to max int, this differs from
chromium-84.0.4147.105/third_party/blink/renderer/platform/geometry/layout_unit.h:78:  // the ARM asm version.
chromium-84.0.4147.105/third_party/blink/renderer/platform/geometry/layout_unit.h-79-  return std::numeric_limits<int>::max();
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py-105-
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py:106:    # Execution context
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py-107-    node = SymbolNode(
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py-315-
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py:316:    # execution_context
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py-317-    node = S("execution_context", ("ExecutionContext* ${execution_context} = "
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py-324-
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py:325:    # execution_context_of_document_tree
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py-326-    pattern = "ExecutionContext* ${execution_context_of_document_tree} = {_1};"
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py-3994-
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py:3995:    # execution_context
chromium-84.0.4147.105/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py-3996-    node = S("execution_context", ("ExecutionContext* ${execution_context} = "
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc-34-
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc:35:// Wasm only has a single metadata type, but we need to tag it.
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc-36-static const int kWasmModuleTag = 1;
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc-141-      streaming_->Abort(V8ThrowException::CreateTypeError(
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc:142:          script_state_->GetIsolate(), "Could not download wasm module"));
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc-143-    } else {
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc-226-
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc:227:  // Wasm modules should be fetched as raw resources.
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_wasm_response_extensions.cc-228-  DCHECK_EQ(ResourceType::kRaw, resource->GetType());
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc-466-      snippet[len] = 0;
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc:467:      // Wasm code generation is allowed if we have either the wasm-eval
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc-468-      // directive or the unsafe-eval directive. However, we only recognize
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.cc-751-    case Options::kTransfer: {
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.cc:752:      // We don't expect scenarios with numerous wasm modules being transferred
chromium-84.0.4147.105/third_party/blink/renderer/bindings/core/v8/serialization/v8_script_value_serializer.cc-753-      // around. Most likely, we'll have one module. The vector approach is
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_distances.html-50-    for (const side of sides) {
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_distances.html:51:      const border_width = style[`border-${side}-width`];
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_distances.html:52:      const border_style = style[`border-${side}-style`];
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_distances.html:53:      const border_color = style[`border-${side}-color`];
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_distances.html-54-      if (border_width != '0px' && border_style != 'none' &&
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_viewport_size.html-15-{
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_viewport_size.html:16:  const text = `${viewportSize.width}px \u00D7 ${viewportSize.height}px`;
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_viewport_size.html-17-  context.save();
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_viewport_size.html:18:  context.font = `14px ${window.getComputedStyle(document.body).fontFamily}`;
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_viewport_size.html-19-  const textWidth = context.measureText(text).width;
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_highlight.html-492-    // rgb(r g b [ / a])
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_highlight.html:493:    return `rgb(${(r * 255).toFixed()} ${(g * 255).toFixed()} ${(b * 255).toFixed()}${a === 1 ? '' : ' / ' + Math.round(a * 100) / 100})`;
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_highlight.html-494-  }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_highlight.html-498-    // hsl(hdeg s l [ / a])
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_highlight.html:499:    return `hsl(${Math.round(h * 360)}deg ${Math.round(s * 100)} ${Math.round(l * 100)}${a === 1 ? '' : ' / ' + Math.round(a * 100) / 100})`;
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_highlight.html-500-  }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_highlight.html-610-    if (fontFamily && fontSize !== "0px")
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_highlight.html:611:        addTextRow("Font", `${fontSize} ${fontFamily}`);
chromium-84.0.4147.105/third_party/blink/renderer/core/inspector/inspect_tool_highlight.html-612-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/dom/dom_implementation.cc-121-  // Per RFCs 3023 and 2045, an XML MIME type is of the form:
chromium-84.0.4147.105/third_party/blink/renderer/core/dom/dom_implementation.cc:122:  // ^[0-9a-zA-Z_\\-+~!$\\^{}|.%'`#&*]+/[0-9a-zA-Z_\\-+~!$\\^{}|.%'`#&*]+\+xml$
chromium-84.0.4147.105/third_party/blink/renderer/core/dom/dom_implementation.cc-123-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/README.md:1:# execution_context
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/README.md-2-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/README.md-7-
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/README.md:8:# ExecutionContext
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/README.md-9-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/OWNERS:1:# execution_context OWNERS
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/OWNERS-2-#
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/PausingAndFreezing.md-9-
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/PausingAndFreezing.md:10:# Execution Context States
chromium-84.0.4147.105/third_party/blink/renderer/core/execution_context/PausingAndFreezing.md-11-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/css/style-invalidation.md-143-Depending on the type of change,
chromium-84.0.4147.105/third_party/blink/renderer/core/css/style-invalidation.md:144:[`StyleEngine`](https://cs.chromium.org/?q=symbol:%5Eblink::StyleEngine$) gathers the relevant [`InvalidationSet`](https://cs.chromium.org/?q=symbol:%5Eblink::InvalidationSet$)s
chromium-84.0.4147.105/third_party/blink/renderer/core/css/style-invalidation.md-145-and calls [`PendingInvalidations::ScheduleInvalidationSetsForNode`](https://cs.chromium.org/?q=symbol:%5Eblink::PendingInvalidations::ScheduleInvalidationSetsForNode$)
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/css/style-invalidation.md-151-* call [`Node::SetNeedsStyleRecalc`](https://cs.chromium.org/?q=symbol:%5Eblink::Node::SetNeedsStyleRecalc$)
chromium-84.0.4147.105/third_party/blink/renderer/core/css/style-invalidation.md:152:  with either [`kLocalStyleChange`](https://cs.chromium.org/?q=symbol:%5Eblink::StyleChangeType::kLocalStyleChange$) or [`kSubtreeStyleChange`](https://cs.chromium.org/?q=symbol:%5Eblink::StyleChangeType::kSubtreeStyleChange$)
chromium-84.0.4147.105/third_party/blink/renderer/core/css/style-invalidation.md-153-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/css/style-calculation.md-74-[`FindBestRuleSetAndAdd`](https://cs.chromium.org/?q=symbol:%5Eblink::RuleSet::FindBestRuleSetAndAdd$). Within
chromium-84.0.4147.105/third_party/blink/renderer/core/css/style-calculation.md:75:each [`RuleSet`](https://cs.chromium.org/?q=symbol:%5Eblink::RuleSet$) are several maps of maps of `RuleData`
chromium-84.0.4147.105/third_party/blink/renderer/core/css/style-calculation.md-76-objects. `FindBestRuleSetAndAdd` looks at the right-most compound selector of each
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-356-      ColorCorrectionTestUtils::CompareColorCorrectedPixels(
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc:357:          converted_pixmap.addr(), source_pixmap.addr(), num_pixels,
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-358-          kPixelFormat_8888, kAlphaMultiplied, kUnpremulRoundTripTolerance);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-376-      ColorCorrectionTestUtils::CompareColorCorrectedPixels(
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc:377:          converted_pixmap.addr(), expected_bitmap.pixmap().addr(), num_pixels,
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-378-          color_space->gammaIsLinear() ? kPixelFormat_hhhh : kPixelFormat_8888,
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-425-      ColorCorrectionTestUtils::CompareColorCorrectedPixels(
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc:426:          converted_pixmap.addr(), source_pixmap.addr(), num_pixels,
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-427-          kPixelFormat_8888, kAlphaMultiplied, kUnpremulRoundTripTolerance);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-445-      ColorCorrectionTestUtils::CompareColorCorrectedPixels(
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc:446:          converted_pixmap.addr(), expected_bitmap.pixmap().addr(), num_pixels,
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-447-          color_space->gammaIsLinear() ? kPixelFormat_hhhh : kPixelFormat_8888,
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-489-      ColorCorrectionTestUtils::CompareColorCorrectedPixels(
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc:490:          converted_pixmap.addr(), source_pixmap.addr(), num_pixels,
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-491-          kPixelFormat_8888, kAlphaMultiplied, kUnpremulRoundTripTolerance);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-509-      ColorCorrectionTestUtils::CompareColorCorrectedPixels(
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc:510:          converted_pixmap.addr(), expected_bitmap.pixmap().addr(), num_pixels,
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-511-          color_space->gammaIsLinear() ? kPixelFormat_hhhh : kPixelFormat_8888,
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-531-  source_pixmap = source_bitmap.pixmap();
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc:532:  memcpy(source_pixmap.writable_addr(), image_data->BufferBase()->Data(), 4);
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-533-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-560-      ColorCorrectionTestUtils::CompareColorCorrectedPixels(
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc:561:          converted_pixmap.addr(), expected_bitmap.pixmap().addr(), num_pixels,
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-562-          kPixelFormat_8888, kAlphaMultiplied, kUnpremulRoundTripTolerance);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-574-      ColorCorrectionTestUtils::CompareColorCorrectedPixels(
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc:575:          converted_pixmap.addr(), expected_bitmap.pixmap().addr(), num_pixels,
chromium-84.0.4147.105/third_party/blink/renderer/core/imagebitmap/image_bitmap_test.cc-576-          color_space->gammaIsLinear() ? kPixelFormat_hhhh : kPixelFormat_8888,
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/animation/test_data/transform-animation-on-svg.html-35-        const offsetX = getLineOffsetX(i);
chromium-84.0.4147.105/third_party/blink/renderer/core/animation/test_data/transform-animation-on-svg.html:36:        transitionTo(i, `translateX(${offsetX}px)`, 150 + i * LATENCY_PER_DOT_MS);
chromium-84.0.4147.105/third_party/blink/renderer/core/animation/test_data/transform-animation-on-svg.html-37-    }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc-62-      "document.getElementById('sample').addEventListener('beforeinput', "
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc:63:      "  event => document.title = `beforeinput.data:${event.data};`);"
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc-64-      "document.getElementById('sample').addEventListener('input', "
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc:65:      "  event => document.title += `input.data:${event.data};`);"
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc-66-      "document.getElementById('sample').addEventListener('compositionend', "
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc:67:      "  event => document.title += `compositionend.data:${event.data};`);");
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc-68-  GetDocument().body()->AppendChild(script);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc-1192-      "  event => document.title = "
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc:1193:      "  `beforeinput.isComposing:${event.isComposing};`);"
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc-1194-      "document.getElementById('sample').addEventListener('input', "
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc-1195-      "  event => document.title += "
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc:1196:      "  `input.isComposing:${event.isComposing};`);");
chromium-84.0.4147.105/third_party/blink/renderer/core/editing/ime/input_method_controller_test.cc-1197-  GetDocument().body()->AppendChild(script);
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc-261-                         std::min(info.height(), max_dimension));
chromium-84.0.4147.105/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc:262:      src_data_.reset(info, src_data_.addr(), src_data_.rowBytes());
chromium-84.0.4147.105/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc-263-    }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-106-    if (hasSecond) {
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js:107:      value += `:${this.value(TimeColumnType.SECOND)}`;
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-108-    }
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-109-    if (hasMillisecond) {
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js:110:      value += `.${this.value(TimeColumnType.MILLISECOND)}`;
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-111-    }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-492-      timeCell.initialOffsetTop = TimeColumn.CELL_HEIGHT * i;
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js:493:      timeCell.style.top = `${TimeColumn.SCROLL_OFFSET}px`;
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-494-
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-579-  static setCellAbsolutePosition = (cell, absolutePosition) => {
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js:580:    cell.style.top = `${absolutePosition - cell.initialOffsetTop}px`;
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-581-  };
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-744-  static getNextUniqueId() {
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js:745:    return `timeCell${TimeCell.idCount++}`;
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/time_picker.js-746-  }
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/color_picker.js-1291-
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/color_picker.js:1292:      this.setAttribute('aria-valuetext', `X: ${positionX}, Y: ${positionY}`);
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/color_picker.js-1293-    } else {
##############################################
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/color_picker.js-2156-      announcementString =
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/color_picker.js:2157:          `${global.params.axHexadecimalEditLabel} ${newColor.hexValue}`;
chromium-84.0.4147.105/third_party/blink/renderer/core/html/forms/resources/color_picker.js-2158-    } else if (this.colorFormat_ === ColorFormat.RGB) {
##############################################
chromium-84.0.4147.105/third_party/dav1d/config/win/x86/config.h-29-
chromium-84.0.4147.105/third_party/dav1d/config/win/x86/config.h:30:#define HAVE_ASM 1
chromium-84.0.4147.105/third_party/dav1d/config/win/x86/config.h-31-
##############################################
chromium-84.0.4147.105/third_party/dav1d/config/win/x64/config.h-29-
chromium-84.0.4147.105/third_party/dav1d/config/win/x64/config.h:30:#define HAVE_ASM 1
chromium-84.0.4147.105/third_party/dav1d/config/win/x64/config.h-31-
##############################################
chromium-84.0.4147.105/third_party/dav1d/config/win/arm64/config.h-29-
chromium-84.0.4147.105/third_party/dav1d/config/win/arm64/config.h:30:#define HAVE_ASM 1
chromium-84.0.4147.105/third_party/dav1d/config/win/arm64/config.h-31-
##############################################
chromium-84.0.4147.105/third_party/dav1d/config/linux-noasm/x64/config.h-27-
chromium-84.0.4147.105/third_party/dav1d/config/linux-noasm/x64/config.h:28:#define HAVE_ASM 0
chromium-84.0.4147.105/third_party/dav1d/config/linux-noasm/x64/config.h-29-
##############################################
chromium-84.0.4147.105/third_party/dav1d/config/linux/arm/config.h-27-
chromium-84.0.4147.105/third_party/dav1d/config/linux/arm/config.h:28:#define HAVE_ASM 1
chromium-84.0.4147.105/third_party/dav1d/config/linux/arm/config.h-29-
##############################################
chromium-84.0.4147.105/third_party/dav1d/config/linux/x86/config.h-27-
chromium-84.0.4147.105/third_party/dav1d/config/linux/x86/config.h:28:#define HAVE_ASM 1
chromium-84.0.4147.105/third_party/dav1d/config/linux/x86/config.h-29-
##############################################
chromium-84.0.4147.105/third_party/dav1d/config/linux/x64/config.h-27-
chromium-84.0.4147.105/third_party/dav1d/config/linux/x64/config.h:28:#define HAVE_ASM 1
chromium-84.0.4147.105/third_party/dav1d/config/linux/x64/config.h-29-
##############################################
chromium-84.0.4147.105/third_party/dav1d/config/linux/arm64/config.h-27-
chromium-84.0.4147.105/third_party/dav1d/config/linux/arm64/config.h:28:#define HAVE_ASM 1
chromium-84.0.4147.105/third_party/dav1d/config/linux/arm64/config.h-29-
##############################################
chromium-84.0.4147.105/third_party/dav1d/generate_configs.py-105-
chromium-84.0.4147.105/third_party/dav1d/generate_configs.py:106:  # The .asm file will not be present for all configurations.
chromium-84.0.4147.105/third_party/dav1d/generate_configs.py-107-  asm_file = os.path.join(config_dir, 'config.asm')
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/meson.build-79-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/meson.build:80:    checkasm = executable('checkasm',
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/meson.build-81-        checkasm_sources,
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/arm/checkasm_32.S-52-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/arm/checkasm_32.S:53:@ max number of args used by any asm function.
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/arm/checkasm_32.S-54-#define MAX_ARGS 15
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/arm/checkasm_64.S-60-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/arm/checkasm_64.S:61:// max number of args used by any asm function.
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/arm/checkasm_64.S-62-#define MAX_ARGS 15
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/x86/checkasm.asm-60-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/x86/checkasm.asm:61:; max number of args used by any asm function.
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/x86/checkasm.asm-62-; (max_args % 4) must equal 3 for stack alignment
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/checkasm.c-527-            fprintf(stdout,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/checkasm.c:528:                    "checkasm [options] <random seed>\n"
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/checkasm.c-529-                    "    <random seed>       Numeric value to seed the rng\n"
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/itx.c-136-     * coefficient scantable index for the eob token) guarantees that only
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/itx.c:137:     * the topleft $sub out of $sz (where $sz >= $sub) coefficients in both
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/itx.c-138-     * dimensions are non-zero. This leads to braching to specific optimized
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/itx.c:139:     * simd versions (e.g. dc-only) so that we get full asm coverage in this
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/itx.c-140-     * test */
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/checkasm.h-255-#endif
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/checkasm.h:256:#else /* HAVE_ASM */
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/checkasm.h-257-#define declare_new(ret, ...)
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/checkasm.h-262-    checkasm_set_signal_handler_state(0)
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/checkasm.h:263:#endif /* HAVE_ASM */
chromium-84.0.4147.105/third_party/dav1d/libdav1d/tests/checkasm/checkasm.h-264-
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-45-# Configuration data for config.asm
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:46:cdata_asm = configuration_data()
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-47-
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-62-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:63:# ASM option
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-64-is_asm_enabled = (get_option('enable_asm') == true and
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-71-if is_asm_enabled and get_option('b_sanitize') == 'memory'
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:72:    error('asm causes false positive with memory sanitizer. Use \'-Denable_asm=false\'.')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-73-endif
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-333-    # preprocessor or the preprocessing stage of '.S' files. So we have to
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:334:    # compile code to check if we have to define PIC for the arm asm to
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-335-    # avoid absolute relocations when building for example checkasm.
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-365-#
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:366:# ASM specific stuff
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-367-#
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-369-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:370:    # NASM compiler support
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-371-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:372:    nasm = find_program('nasm')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-373-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:374:    # check NASM version
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-375-    if nasm.found()
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-378-        if nasm_r.returncode() != 0
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:379:            error('failed running nasm to obtain its version')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-380-        endif
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-384-            if out[2].version_compare('<2.13.02')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:385:                error('nasm 2.13.02 or later is required, found nasm @0@'.format(out[2]))
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-386-            elif out[2].version_compare('<2.14') and get_option('enable_avx512')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:387:                error('nasm 2.14 or later is required for AVX-512 asm.\n' +
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:388:                       'AVX-512 asm can be disabled with \'-Denable_avx512=false\'')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-389-            endif
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-392-        else
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build:393:            error('unexpected nasm version string: @0@'.format(nasm_r.stdout()))
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson.build-394-        endif
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-83-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build:84:# ASM specific sources
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-85-libdav1d_nasm_objs = []
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-169-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build:170:        # NASM source files
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build:171:        libdav1d_sources_asm = files(
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-172-            'x86/cpuid.asm',
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-176-        if dav1d_bitdepths.contains('8')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build:177:            libdav1d_sources_asm += files(
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-178-                'x86/cdef_avx512.asm',
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-196-        if dav1d_bitdepths.contains('16')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build:197:            libdav1d_sources_asm += files(
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-198-            )
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-200-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build:201:        # Compile the ASM sources with NASM
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/meson.build-202-        libdav1d_nasm_objs = nasm_gen.process(libdav1d_sources_asm)
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/x86/msac.h-41-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/x86/msac.h:42:/* Needed for checkasm */
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/x86/msac.h-43-unsigned dav1d_msac_decode_symbol_adapt16_avx2(MsacContext *s, uint16_t *cdf,
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/ext/x86/x86inc.asm-1-;*****************************************************************************
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/ext/x86/x86inc.asm:2:;* x86inc.asm: x264asm abstraction layer
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/ext/x86/x86inc.asm-3-;*****************************************************************************
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/ext/x86/x86inc.asm-23-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/ext/x86/x86inc.asm:24:; This is a header file for the x264ASM assembly language, which uses
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/ext/x86/x86inc.asm:25:; NASM/YASM syntax combined with a large number of macros to provide easy
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/ext/x86/x86inc.asm-26-; abstraction between different calling conventions (x86_32, win64, linux64).
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/film_grain_tmpl.c-433-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/film_grain_tmpl.c:434:#if HAVE_ASM && ARCH_X86
chromium-84.0.4147.105/third_party/dav1d/libdav1d/src/film_grain_tmpl.c-435-    bitfn(dav1d_film_grain_dsp_init_x86)(c);
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md-32-3. Port to most platforms,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md:33:4. Make it fast on desktop, by writing asm for AVX-2 chips.
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md:34:5. Make it fast on mobile, by writing asm for ARMv8 chips,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md:35:6. Make it fast on older desktop, by writing asm for SSSE3+ chips.
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md-36-
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md-37-### On-going
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md:38:7. Make it fast on older mobiles, by writing asm for ARMv7 chips,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md-39-8. Improve C code base with [various tweaks](https://code.videolan.org/videolan/dav1d/wikis/task-list),
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md-48-- C developers,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md:49:- asm developers,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/README.md-50-- platform-specific developers,
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson_options.txt-10-    value: true,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson_options.txt:11:    description: 'Build asm files, if available')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson_options.txt-12-
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson_options.txt-15-    value: true,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson_options.txt:16:    description: 'Build AVX-512 asm files, requires nasm 2.14')
chromium-84.0.4147.105/third_party/dav1d/libdav1d/meson_options.txt-17-
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/NEWS-40- - NEON optimizations for SGR on ARM32
chromium-84.0.4147.105/third_party/dav1d/libdav1d/NEWS:41: - Fix mismatch issue in x86 asm in inverse identity transforms
chromium-84.0.4147.105/third_party/dav1d/libdav1d/NEWS-42- - Fix build issue in ARM64 assembly if debug info was enabled
##############################################
chromium-84.0.4147.105/third_party/dav1d/libdav1d/CONTRIBUTING.md-15-- C language with C99 version, without the VLA or the Complex (*\_\_STDC_NO_COMPLEX__*) features, and without compiler extension,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/CONTRIBUTING.md:16:- x86 asm in .asm files, using the NASM syntax,
chromium-84.0.4147.105/third_party/dav1d/libdav1d/CONTRIBUTING.md-17-- arm/arm64 in .S files, using the GAS syntax limited to subset llvm 5.0's internal assembler supports,
##############################################
chromium-84.0.4147.105/third_party/dav1d/BUILD.gn-11-# MemorySanitizer can't handle assembly, https://crbug.com/928357.
chromium-84.0.4147.105/third_party/dav1d/BUILD.gn:12:enable_nasm = (current_cpu == "x86" || current_cpu == "x64") && !is_msan
chromium-84.0.4147.105/third_party/dav1d/BUILD.gn-13-
##############################################
chromium-84.0.4147.105/third_party/dav1d/BUILD.gn-226-    # x86/msac.h redefines macros in msac.h if x86/msac.h is included and
chromium-84.0.4147.105/third_party/dav1d/BUILD.gn:227:    # HAVE_ASM is 0, so we must exclude msac_init.c if !enable_nasm. Also, it
chromium-84.0.4147.105/third_party/dav1d/BUILD.gn-228-    # is only used for x64.
chromium-84.0.4147.105/third_party/dav1d/BUILD.gn:229:    if (enable_nasm && current_cpu == "x64") {
chromium-84.0.4147.105/third_party/dav1d/BUILD.gn-230-      sources += [ "libdav1d/src/x86/msac_init.c" ]
##############################################
chromium-84.0.4147.105/third_party/s2cellid/src/s2/util/bits/bits.h-115-#ifdef _M_IX86
chromium-84.0.4147.105/third_party/s2cellid/src/s2/util/bits/bits.h:116:  _asm {
chromium-84.0.4147.105/third_party/s2cellid/src/s2/util/bits/bits.h-117-    bsr ebx, n
##############################################
chromium-84.0.4147.105/third_party/s2cellid/src/s2/util/bits/bits.h-127-#ifdef _M_IX86
chromium-84.0.4147.105/third_party/s2cellid/src/s2/util/bits/bits.h:128:  _asm {
chromium-84.0.4147.105/third_party/s2cellid/src/s2/util/bits/bits.h-129-    xor ebx, ebx
##############################################
chromium-84.0.4147.105/third_party/libwebm/source/CMakeLists.txt-10-
chromium-84.0.4147.105/third_party/libwebm/source/CMakeLists.txt:11:include("${CMAKE_CURRENT_SOURCE_DIR}/build/cxx_flags.cmake")
chromium-84.0.4147.105/third_party/libwebm/source/CMakeLists.txt-12-
chromium-84.0.4147.105/third_party/libwebm/source/CMakeLists.txt-13-if (NOT BUILD_SHARED_LIBS)
chromium-84.0.4147.105/third_party/libwebm/source/CMakeLists.txt:14:  include("${CMAKE_CURRENT_SOURCE_DIR}/build/msvc_runtime.cmake")
chromium-84.0.4147.105/third_party/libwebm/source/CMakeLists.txt-15-endif ()
##############################################
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-29-while [ -h "$PRG" ] ; do
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:30:    ls=`ls -ld "$PRG"`
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:31:    link=`expr "$ls" : '.*-> \(.*\)$'`
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-32-    if expr "$link" : '/.*' > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-34-    else
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:35:        PRG=`dirname "$PRG"`"/$link"
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-36-    fi
##############################################
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-38-SAVED="`pwd`"
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:39:cd "`dirname \"$PRG\"`/.." >/dev/null
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-40-APP_HOME="`pwd -P`"
##############################################
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-44-APP_NAME="jetifier-standalone"
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:45:APP_BASE_NAME=`basename "$0"`
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-46-
##############################################
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-133-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:134:    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:135:    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:136:    JAVACMD=`cygpath --unix "$JAVACMD"`
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-137-
##############################################
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-152-    for arg in "$@" ; do
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:153:        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:154:        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-155-
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-156-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:157:            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-158-        else
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone:159:            eval `echo args$i`="\"$arg\""
chromium-84.0.4147.105/third_party/jetifier_standalone/bin/jetifier-standalone-160-        fi
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/module-tester.html-287-          default:
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/module-tester.html:288:            scene.addNode(new Gltf2Node({url: `../media/gltf/${sceneSelect.value}/${sceneSelect.value}.gltf`}));
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/module-tester.html-289-            break;
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/framebuffer-scaling.html-83-        let value = parseFloat(scaleSelect.value);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/framebuffer-scaling.html:84:        let label = `Framebuffer scale: ${scaleSelect.value}`;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/framebuffer-scaling.html-85-        switch (value) {
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-136-    }
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js:137:    if (typeof this[`on${type}`] === 'function') {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js:138:      this[`on${type}`](event);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-139-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-1096-    if (!XREyes.includes(eye)) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js:1097:      throw new Error(`XREye must be one of: ${XREyes}`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-1098-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-1683-    if (!XRReferenceSpaceTypes.includes(type)) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js:1684:      throw new Error(`XRReferenceSpaceType must be one of ${XRReferenceSpaceTypes}`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-1685-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-1917-    if (!XRReferenceSpaceTypes.includes(type)) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js:1918:      throw new TypeError(`XRReferenceSpaceType must be one of ${XRReferenceSpaceTypes}`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-1919-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-5773-      throw new TypeError(
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js:5774:          `The provided value '${mode}' is not a valid enum value of type XRSessionMode`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-5775-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-6094-    if (!partials.every(iface => !!global[iface])) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js:6095:      throw new Error(`Global must have the following attributes : ${partials}`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-6096-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-6098-      if (global[className] !== undefined) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js:6099:        console.warn(`${className} already defined on global.`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.module.js-6100-      } else {
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-142-    }
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js:143:    if (typeof this[`on${type}`] === 'function') {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js:144:      this[`on${type}`](event);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-145-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-1102-    if (!XREyes.includes(eye)) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js:1103:      throw new Error(`XREye must be one of: ${XREyes}`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-1104-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-1689-    if (!XRReferenceSpaceTypes.includes(type)) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js:1690:      throw new Error(`XRReferenceSpaceType must be one of ${XRReferenceSpaceTypes}`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-1691-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-1923-    if (!XRReferenceSpaceTypes.includes(type)) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js:1924:      throw new TypeError(`XRReferenceSpaceType must be one of ${XRReferenceSpaceTypes}`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-1925-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-5779-      throw new TypeError(
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js:5780:          `The provided value '${mode}' is not a valid enum value of type XRSessionMode`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-5781-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-6100-    if (!partials.every(iface => !!global[iface])) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js:6101:      throw new Error(`Global must have the following attributes : ${partials}`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-6102-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-6104-      if (global[className] !== undefined) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js:6105:        console.warn(`${className} already defined on global.`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.js-6106-      } else {
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/loaders/gltf2.js-414-        } else {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/loaders/gltf2.js:415:          img.src = `${this.baseUrl}${this.json.uri}`;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/loaders/gltf2.js-416-        }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/stats-viewer.js-208-      if (this._performanceMonitoring) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/stats-viewer.js:209:        console.log(`Average FPS: ${this._fpsAverage} Min FPS: ${this._fpsMin}`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/stats-viewer.js-210-      }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/stats-viewer.js-265-
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/stats-viewer.js:266:    this._sevenSegmentNode.text = `${this._fpsAverage} FP5`;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/nodes/stats-viewer.js-267-  }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/program.js-35-        this.defines[define] = defines[define];
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/program.js:36:        definesString += `#define ${define} ${defines[define]}\n`;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/program.js-37-      }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/texture.js-183-    this._type = type;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/texture.js:184:    this._key = `DATA_${nextDataTextureIndex}`;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/texture.js-185-    nextDataTextureIndex++;
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/texture.js-210-    this.mipmap = false;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/texture.js:211:    this._key = `COLOR_${colorData[0]}_${colorData[1]}_${colorData[2]}_${colorData[3]}`;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/texture.js-212-  }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-806-  _getProgramKey(name, defines) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js:807:    let key = `${name}:`;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-808-
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-809-    for (let define in defines) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js:810:      key += `${define}=${defines[define]},`;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-811-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-825-    if (vertexSource == null) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js:826:      throw new Error(`Material "${materialName}" does not have a vertex source`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-827-    }
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-828-    if (fragmentSource == null) {
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js:829:      throw new Error(`Material "${materialName}" does not have a fragment source`);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-830-    }
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-843-      let precisionMatch = fragmentSource.match(PRECISION_REGEX);
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js:844:      let fragPrecisionHeader = precisionMatch ? '' : `precision ${this._defaultFragPrecision} float;\n`;
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/core/renderer.js-845-
##############################################
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.min.js-94- */
chromium-84.0.4147.105/third_party/webxr_test_pages/webxr-samples/js/webxr-polyfill.min.js:95:!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.WebXRPolyfill=t()}(this,function(){"use strict";const e="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t=Symbol("@@webxr-polyfill/EventTarget");class i{constructor(){this[t]={listeners:new Map}}addEventListener(e,i){if("string"!=typeof e)throw new Error("`type` must be a string");if("function"!=typeof i)throw new Error("`listener` must be a function");const r=this[t].listeners.get(e)||[];r.push(i),this[t].listeners.set(e,r)}removeEventListener(e,i){if("string"!=typeof e)throw new Error("`type` must be a string");if("function"!=typeof i)throw new Error("`listener` must be a function");const r=this[t].listeners.get(e)||[];for(let e=r.length;e>=0;e--)r[e]===i&&r.pop()}dispatchEvent(e,i){const r=this[t].listeners.get(e)||[],n=[];for(let e=0;e<r.length;e++)n[e]=r[e];for(let e of n)e(i);"function"==typeof this[`on${e}`]&&this[`on${e}`](i)}}const r=Symbol("@@webxr-polyfill/XR"),n=["inline","immersive-vr","immersive-ar"],s="Polyfill Error: Must call navigator.xr.supportsSession() with any XRSessionMode\nor navigator.xr.requestSession('inline') prior to requesting an immersive\nsession. This is a limitation specific to the WebXR Polyfill and does not apply\nto native implementations of the API.";let a;if("performance"in e==!1){let e=Date.now();a=(()=>Date.now()-e)}else a=(()=>performance.now());var o=a;const l=Symbol("@@webxr-polyfill/XRPose");class A{constructor(e,t){this[l]={transform:e,emulatedPosition:t}}get transform(){return this[l].transform}get emulatedPosition(){return this[l].emulatedPosition}_setTransform(e){this[l].transform=e}}const h=1e-6;let c="undefined"!=typeof Float32Array?Float32Array:Array;Math.PI;function d(){let e=new c(16);return c!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function u(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function p(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function f(e,t){let i=t[0],r=t[1],n=t[2],s=t[3],a=t[4],o=t[5],l=t[6],A=t[7],h=t[8],c=t[9],d=t[10],u=t[11],p=t[12],f=t[13],m=t[14],g=t[15],w=i*o-r*a,v=i*l-n*a,y=i*A-s*a,b=r*l-n*o,E=r*A-s*o,M=n*A-s*l,_=h*f-c*p,x=h*m-d*p,F=h*g-u*p,S=c*m-d*f,R=c*g-u*f,T=d*g-u*m,B=w*T-v*R+y*S+b*F-E*x+M*_;return B?(B=1/B,e[0]=(o*T-l*R+A*S)*B,e[1]=(n*R-r*T-s*S)*B,e[2]=(f*M-m*E+g*b)*B,e[3]=(d*E-c*M-u*b)*B,e[4]=(l*F-a*T-A*x)*B,e[5]=(i*T-n*F+s*x)*B,e[6]=(m*y-p*M-g*v)*B,e[7]=(h*M-d*y+u*v)*B,e[8]=(a*R-o*F+A*_)*B,e[9]=(r*F-i*R-s*_)*B,e[10]=(p*E-f*y+g*w)*B,e[11]=(c*y-h*E-u*w)*B,e[12]=(o*x-a*S-l*_)*B,e[13]=(i*S-r*x+n*_)*B,e[14]=(f*v-p*b-m*w)*B,e[15]=(h*b-c*v+d*w)*B,e):null}function m(e,t,i){let r=t[0],n=t[1],s=t[2],a=t[3],o=t[4],l=t[5],A=t[6],h=t[7],c=t[8],d=t[9],u=t[10],p=t[11],f=t[12],m=t[13],g=t[14],w=t[15],v=i[0],y=i[1],b=i[2],E=i[3];return e[0]=v*r+y*o+b*c+E*f,e[1]=v*n+y*l+b*d+E*m,e[2]=v*s+y*A+b*u+E*g,e[3]=v*a+y*h+b*p+E*w,v=i[4],y=i[5],b=i[6],E=i[7],e[4]=v*r+y*o+b*c+E*f,e[5]=v*n+y*l+b*d+E*m,e[6]=v*s+y*A+b*u+E*g,e[7]=v*a+y*h+b*p+E*w,v=i[8],y=i[9],b=i[10],E=i[11],e[8]=v*r+y*o+b*c+E*f,e[9]=v*n+y*l+b*d+E*m,e[10]=v*s+y*A+b*u+E*g,e[11]=v*a+y*h+b*p+E*w,v=i[12],y=i[13],b=i[14],E=i[15],e[12]=v*r+y*o+b*c+E*f,e[13]=v*n+y*l+b*d+E*m,e[14]=v*s+y*A+b*u+E*g,e[15]=v*a+y*h+b*p+E*w,e}function g(e,t,i){let r=t[0],n=t[1],s=t[2],a=t[3],o=r+r,l=n+n,A=s+s,h=r*o,c=r*l,d=r*A,u=n*l,p=n*A,f=s*A,m=a*o,g=a*l,w=a*A;return e[0]=1-(u+f),e[1]=c+w,e[2]=d-g,e[3]=0,e[4]=c-w,e[5]=1-(h+f),e[6]=p+m,e[7]=0,e[8]=d+g,e[9]=p-m,e[10]=1-(h+u),e[11]=0,e[12]=i[0],e[13]=i[1],e[14]=i[2],e[15]=1,e}function w(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function v(e,t){let i=t[0]+t[5]+t[10],r=0;return i>0?(r=2*Math.sqrt(i+1),e[3]=.25*r,e[0]=(t[6]-t[9])/r,e[1]=(t[8]-t[2])/r,e[2]=(t[1]-t[4])/r):t[0]>t[5]&&t[0]>t[10]?(r=2*Math.sqrt(1+t[0]-t[5]-t[10]),e[3]=(t[6]-t[9])/r,e[0]=.25*r,e[1]=(t[1]+t[4])/r,e[2]=(t[8]+t[2])/r):t[5]>t[10]?(r=2*Math.sqrt(1+t[5]-t[0]-t[10]),e[3]=(t[8]-t[2])/r,e[0]=(t[1]+t[4])/r,e[1]=.25*r,e[2]=(t[6]+t[9])/r):(r=2*Math.sqrt(1+t[10]-t[0]-t[5]),e[3]=(t[1]-t[4])/r,e[0]=(t[8]+t[2])/r,e[1]=(t[6]+t[9])/r,e[2]=.25*r),e}function y(){let e=new c(3);return c!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function b(e){var t=new c(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function E(e,t,i){let r=new c(3);return r[0]=e,r[1]=t,r[2]=i,r}function M(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function _(e,t,i){return e[0]=t[0]+i[0],e[1]=t[1]+i[1],e[2]=t[2]+i[2],e}function x(e,t,i){return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function F(e,t){let i=t[0],r=t[1],n=t[2],s=i*i+r*r+n*n;return s>0&&(s=1/Math.sqrt(s),e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s),e}function S(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function R(e,t,i){let r=t[0],n=t[1],s=t[2],a=i[0],o=i[1],l=i[2];return e[0]=n*l-s*o,e[1]=s*a-r*l,e[2]=r*o-n*a,e}function T(e,t,i){let r=i[0],n=i[1],s=i[2],a=i[3],o=t[0],l=t[1],A=t[2],h=n*A-s*l,c=s*o-r*A,d=r*l-n*o,u=n*d-s*c,p=s*h-r*d,f=r*c-n*h,m=2*a;return h*=m,c*=m,d*=m,u*=2,p*=2,f*=2,e[0]=o+h+u,e[1]=l+c+p,e[2]=A+d+f,e}const B=function(e){let t=e[0],i=e[1],r=e[2];return Math.sqrt(t*t+i*i+r*r)};!function(){let e=y()}();!function(){let e=function(){let e=new c(4);return c!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}()}();function C(){let e=new c(4);return c!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function P(e,t,i){let r=t[0],n=t[1],s=t[2],a=t[3],o=i[0],l=i[1],A=i[2],h=i[3];return e[0]=r*h+a*o+n*A-s*l,e[1]=n*h+a*l+s*o-r*A,e[2]=s*h+a*A+r*l-n*o,e[3]=a*h-r*o-n*l-s*A,e}function D(e,t,i,r){let n,s,a,o,l,A=t[0],c=t[1],d=t[2],u=t[3],p=i[0],f=i[1],m=i[2],g=i[3];return(s=A*p+c*f+d*m+u*g)<0&&(s=-s,p=-p,f=-f,m=-m,g=-g),1-s>h?(n=Math.acos(s),a=Math.sin(n),o=Math.sin((1-r)*n)/a,l=Math.sin(r*n)/a):(o=1-r,l=r),e[0]=o*A+l*p,e[1]=o*c+l*f,e[2]=o*d+l*m,e[3]=o*u+l*g,e}function I(e,t){let i=t[0],r=t[1],n=t[2],s=t[3],a=i*i+r*r+n*n+s*s,o=a?1/a:0;return e[0]=-i*o,e[1]=-r*o,e[2]=-n*o,e[3]=s*o,e}const L=function(e){let t=new c(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},O=function(e,t,i,r){let n=new c(4);return n[0]=e,n[1]=t,n[2]=i,n[3]=r,n},Q=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},N=function(e,t){let i=t[0],r=t[1],n=t[2],s=t[3],a=i*i+r*r+n*n+s*s;return a>0&&(a=1/Math.sqrt(a),e[0]=i*a,e[1]=r*a,e[2]=n*a,e[3]=s*a),e},G=(function(){let e=y(),t=E(1,0,0),i=E(0,1,0)}(),function(){let e=C(),t=C()}(),function(){let e=function(){let e=new c(9);return c!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}()}(),Symbol("@@webxr-polyfill/XRRigidTransform"));class k{constructor(){if(this[G]={matrix:null,position:null,orientation:null,inverse:null},0===arguments.length)this[G].matrix=p(new Float32Array(16));else if(1===arguments.length)arguments[0]instanceof Float32Array?this[G].matrix=arguments[0]:(this[G].position=this._getPoint(arguments[0]),this[G].orientation=DOMPointReadOnly.fromPoint({x:0,y:0,z:0,w:1}));else{if(2!==arguments.length)throw new Error("Too many arguments!");this[G].position=this._getPoint(arguments[0]),this[G].orientation=this._getPoint(arguments[1])}if(this[G].matrix){let e=y();w(e,this[G].matrix),this[G].position=DOMPointReadOnly.fromPoint({x:e[0],y:e[1],z:e[2]});let t=C();v(t,this[G].matrix),this[G].orientation=DOMPointReadOnly.fromPoint({x:t[0],y:t[1],z:t[2],w:t[3]})}else this[G].matrix=p(new Float32Array(16)),g(this[G].matrix,O(this[G].orientation.x,this[G].orientation.y,this[G].orientation.z,this[G].orientation.w),E(this[G].position.x,this[G].position.y,this[G].position.z))}_getPoint(e){return e instanceof DOMPointReadOnly?e:DOMPointReadOnly.fromPoint(e)}get matrix(){return this[G].matrix}get position(){return this[G].position}get orientation(){return this[G].orientation}get inverse(){if(null===this[G].inverse){let e=p(new Float32Array(16));f(e,this[G].matrix),this[G].inverse=new k(e),this[G].inverse[G].inverse=this}return this[G].inverse}}const V=Symbol("@@webxr-polyfill/XRViewerPose");class z extends A{constructor(e){super(new k,!1),this[V]={device:e,leftViewMatrix:p(new Float32Array(16)),rightViewMatrix:p(new Float32Array(16)),poseModelMatrix:p(new Float32Array(16))}}get poseModelMatrix(){return this[V].poseModelMatrix}getViewMatrix(e){switch(e.eye){case"left":return this[V].leftViewMatrix;case"right":return this[V].rightViewMatrix}throw new Error("view is not a valid XREye")}get views(){return this[V].views}set views(e){this[V].views=e}updateFromReferenceSpace(e){const t=this[V].device.getBasePoseMatrix(),i=this[V].device.getBaseViewMatrix("left"),r=this[V].device.getBaseViewMatrix("right");t&&(e.transformBasePoseMatrix(this[V].poseModelMatrix,t),e._adjustForOriginOffset(this[V].poseModelMatrix),super._setTransform(new k(this[V].poseModelMatrix))),i&&r&&(e.transformBaseViewMatrix(this[V].leftViewMatrix,i,this[V].poseModelMatrix),e.transformBaseViewMatrix(this[V].rightViewMatrix,r,this[V].poseModelMatrix),m(this[V].leftViewMatrix,this[V].leftViewMatrix,e._originOffsetMatrix()),m(this[V].rightViewMatrix,this[V].rightViewMatrix,e._originOffsetMatrix()));for(let e of this[V].views)"left"==e.eye?e._updateViewMatrix(this[V].leftViewMatrix):"right"==e.eye&&e._updateViewMatrix(this[V].rightViewMatrix)}}const U=Symbol("@@webxr-polyfill/XRViewport");class H{constructor(e){this[U]={target:e}}get x(){return this[U].target.x}get y(){return this[U].target.y}get width(){return this[U].target.width}get height(){return this[U].target.height}}const X=["left","right"],W=Symbol("@@webxr-polyfill/XRView");class j{constructor(e,t,i){if(!X.includes(t))throw new Error(`XREye must be one of: ${X}`);const r=Object.create(null),n=new H(r);this[W]={device:e,eye:t,viewport:n,temp:r,sessionId:i,transform:null}}get eye(){return this[W].eye}get projectionMatrix(){return this[W].device.getProjectionMatrix(this.eye)}get transform(){return this[W].transform}_updateViewMatrix(e){let t=p(new Float32Array(16));f(t,e),this[W].transform=new k(t)}_getViewport(e){this[W].viewport;if(this[W].device.getViewport(this[W].sessionId,this.eye,e,this[W].temp))return this[W].viewport}}var Y=1e-6,Z="undefined"!=typeof Float32Array?Float32Array:Array;Math.PI;function q(){var e=new Z(3);return Z!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function J(e,t,i){var r=new Z(3);return r[0]=e,r[1]=t,r[2]=i,r}function K(e,t,i){var r=t[0],n=t[1],s=t[2],a=i[0],o=i[1],l=i[2];return e[0]=n*l-s*o,e[1]=s*a-r*l,e[2]=r*o-n*a,e}var $,ee=function(e){var t=e[0],i=e[1],r=e[2];return Math.sqrt(t*t+i*i+r*r)};$=q();!function(){var e,t=(e=new Z(4),Z!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e)}();function te(){var e=new Z(4);return Z!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function ie(e,t,i,r){var n=t[0],s=t[1],a=t[2],o=t[3],l=i[0],A=i[1],h=i[2],c=i[3],d=void 0,u=void 0,p=void 0,f=void 0,m=void 0;return(u=n*l+s*A+a*h+o*c)<0&&(u=-u,l=-l,A=-A,h=-h,c=-c),1-u>Y?(d=Math.acos(u),p=Math.sin(d),f=Math.sin((1-r)*d)/p,m=Math.sin(r*d)/p):(f=1-r,m=r),e[0]=f*n+m*l,e[1]=f*s+m*A,e[2]=f*a+m*h,e[3]=f*o+m*c,e}var re,ne,se,ae,oe,le,Ae,he=function(e,t){var i=t[0],r=t[1],n=t[2],s=t[3],a=i*i+r*r+n*n+s*s;return a>0&&(a=1/Math.sqrt(a),e[0]=i*a,e[1]=r*a,e[2]=n*a,e[3]=s*a),e};re=q(),ne=J(1,0,0),se=J(0,1,0),ae=te(),oe=te(),le=new Z(9),Z!=Float32Array&&(le[1]=0,le[2]=0,le[3]=0,le[5]=0,le[6]=0,le[7]=0),le[0]=1,le[4]=1,le[8]=1,Ae=le;!function(){var e,t=(e=new Z(2),Z!=Float32Array&&(e[0]=0,e[1]=0),e)}();const ce=Symbol("@@webxr-polyfill/XRFrame");class de{constructor(e,t,i){const r=new z(e),n=[new j(e,"left",i)];t.immersive&&n.push(new j(e,"right",i)),r.views=n,this[ce]={device:e,viewerPose:r,views:n,session:t}}get session(){return this[ce].session}get views(){return this[ce].views}getViewerPose(e){return this[ce].viewerPose.updateFromReferenceSpace(e),this[ce].viewerPose}getPose(e,t){if("viewer"===e._specialType){let e=this.getViewerPose(t);return new XRPose(new XRRigidTransform(e.poseModelMatrix),e.emulatedPosition)}return"target-ray"===e._specialType||"grip"===e._specialType?this[ce].device.getInputPose(e._inputSource,t,e._specialType):null}}const ue=Symbol("@@webxr-polyfill/XRStageBoundsPoint");class pe{constructor(e,t){this[ue]={x:e,z:t}}get x(){return this[ue].x}get z(){return this[ue].z}}const fe=Symbol("@@webxr-polyfill/XRStageBounds");class me{constructor(e){const t=[];for(let i=0;i<e.length;i+=2)t.push(new pe(e[i],e[i+1]));this[fe]={geometry:t}}get geometry(){return this[fe].geometry}}const ge=Symbol("@@webxr-polyfill/XRSpace");class we{constructor(e=null,t=null){this[ge]={specialType:e,inputSource:t}}get _specialType(){return this[ge].specialType}get _inputSource(){return this[ge].inputSource}}const ve=1.6,ye=Symbol("@@webxr-polyfill/XRReferenceSpace"),be=["viewer","local","local-floor","bounded-floor","unbounded"],Ee=Object.freeze({disableStageEmulation:!1,stageEmulationHeight:0});class Me extends we{constructor(e,t,i,r,n){if(i=Object.assign({},Ee,i),!be.includes(t))throw new Error(`XRReferenceSpaceType must be one of ${be}`);if(super("viewer"===t?"viewer":null),this._isFloor(t)&&i.disableStageEmulation&&!r)throw new Error("XRReferenceSpace cannot use 'bounded-floor' type, if disabling emulation and platform does not provide");const{disableStageEmulation:s,stageEmulationHeight:a}=i;let o=0;this._isFloor(t)&&!r&&(o=0!==a?a:ve),this._isFloor(t)&&!r&&((r=p(new Float32Array(16)))[13]=o),r||(r=p(new Float32Array(16))),this[ye]={disableStageEmulation:s,stageEmulationHeight:a,emulatedHeight:o,type:t,transform:r,device:e,bounds:n,options:i,originOffset:p(new Float32Array(16))},this.onboundschange=void 0}_isFloor(e){return"bounded-floor"===e||"local-floor"===e}get bounds(){return this[ye].bounds}get emulatedHeight(){return this[ye].emulatedHeight}get type(){return this[ye].type}transformBasePoseMatrix(e,t){if(this[ye].transform)m(e,this[ye].transform,t);else switch(this.type){case"local":return void(e!==t&&u(e,t))}}transformBaseViewMatrix(e,t){let i=this[ye].transform;return i?(f(e,i),m(e,t,e)):u(e,t),e}_inverseOriginOffsetMatrix(){let e=p(new Float32Array(16));return f(e,this[ye].originOffset),e}_originOffsetMatrix(){return this[ye].originOffset}_adjustForOriginOffset(e){m(e,this._inverseOriginOffsetMatrix(),e)}getOffsetReferenceSpace(e){let t=new Me(this[ye].device,this[ye].type,this[ye].options,this[ye].transform,this[ye].bounds);return m(t[ye].originOffset,this[ye].originOffset,e.matrix),t}}const _e=Symbol("@@webxr-polyfill/polyfilled-xr-compatible"),xe=Symbol("@@webxr-polyfill/xr-compatible"),Fe=Symbol("@@webxr-polyfill/XRWebGLLayer"),Se=Object.freeze({antialias:!0,depth:!1,stencil:!1,alpha:!0,multiview:!1,ignoreDepthValues:!1,framebufferScaleFactor:1});const Re=Symbol("@@webxr-polyfill/XRSession");class Te extends i{constructor(e,t,i){super();let r="inline"!=t;this[Re]={device:e,mode:t,immersive:r,outputContext:null,ended:!1,suspended:!1,suspendedCallback:null,id:i,activeRenderState:null,pendingRenderState:null};const n=new de(e,this,this[Re].id);this[Re].frame=n,this[Re].onPresentationEnd=(t=>{if(t!==this[Re].id){this[Re].suspended=!1,this.dispatchEvent("focus",{session:this});const e=this[Re].suspendedCallback;return this[Re].suspendedCallback=null,void(e&&this.requestAnimationFrame(e))}this[Re].ended=!0,e.removeEventListener("@webvr-polyfill/vr-present-end",this[Re].onPresentationEnd),e.removeEventListener("@webvr-polyfill/vr-present-start",this[Re].onPresentationStart),e.removeEventListener("@@webvr-polyfill/input-select-start",this[Re].onSelectStart),e.removeEventListener("@@webvr-polyfill/input-select-end",this[Re].onSelectEnd),this.dispatchEvent("end",{session:this})}),e.addEventListener("@@webxr-polyfill/vr-present-end",this[Re].onPresentationEnd),this[Re].onPresentationStart=(e=>{e!==this[Re].id&&(this[Re].suspended=!0,this.dispatchEvent("blur",{session:this}))}),e.addEventListener("@@webxr-polyfill/vr-present-start",this[Re].onPresentationStart),this[Re].onSelectStart=(e=>{e.sessionId===this[Re].id&&this.dispatchEvent("selectstart",{frame:this[Re].frame,inputSource:e.inputSource})}),e.addEventListener("@@webxr-polyfill/input-select-start",this[Re].onSelectStart),this[Re].onSelectEnd=(e=>{e.sessionId===this[Re].id&&(this.dispatchEvent("selectend",{frame:this[Re].frame,inputSource:e.inputSource}),this.dispatchEvent("select",{frame:this[Re].frame,inputSource:e.inputSource}))}),e.addEventListener("@@webxr-polyfill/input-select-end",this[Re].onSelectEnd),this.onblur=void 0,this.onfocus=void 0,this.onresetpose=void 0,this.onend=void 0,this.onselect=void 0,this.onselectstart=void 0,this.onselectend=void 0}get renderState(){return this[Re].activeRenderState}get immersive(){return this[Re].immersive}get outputContext(){return this[Re].outputContext}get depthNear(){return this[Re].device.depthNear}set depthNear(e){this[Re].device.depthNear=e}get depthFar(){return this[Re].device.depthFar}set depthFar(e){this[Re].device.depthFar=e}get environmentBlendMode(){return this[Re].device.environmentBlendMode||"opaque"}get baseLayer(){return this[Re].baseLayer}set baseLayer(e){this[Re].ended||(this[Re].baseLayer=e,this[Re].device.onBaseLayerSet(this[Re].id,e))}async requestReferenceSpace(e,t={}){if(this[Re].ended)return;if(t=Object.assign({},Ee,t),!be.includes(e))throw new TypeError(`XRReferenceSpaceType must be one of ${be}`);let i=null,r=null;try{i=await this[Re].device.requestFrameOfReferenceTransform(e,t)}catch(i){if("stage"!==e||t.disableStageEmulation)throw i}return"stage"===e&&i&&(r=this[Re].device.requestStageBounds())&&(r=new me(r)),new Me(this[Re].device,e,t,i,r)}requestAnimationFrame(e){if(!(this[Re].ended||this[Re].suspended&&this[Re].suspendedCallback))return this[Re].suspended&&!this[Re].suspendedCallback&&(this[Re].suspendedCallback=e),this[Re].device.requestAnimationFrame(()=>{null!==this[Re].pendingRenderState&&(this[Re].activeRenderState=this[Re].pendingRenderState,this[Re].pendingRenderState=null,this[Re].activeRenderState.baseLayer&&this[Re].device.onBaseLayerSet(this[Re].id,this[Re].activeRenderState.baseLayer),this[Re].activeRenderState.inlineVerticalFieldOfView&&this[Re].device.onInlineVerticalFieldOfViewSet(this[Re].id,this[Re].activeRenderState.inlineVerticalFieldOfView)),this[Re].device.onFrameStart(this[Re].id),e(o(),this[Re].frame),this[Re].device.onFrameEnd(this[Re].id)})}cancelAnimationFrame(e){this[Re].ended||this[Re].device.cancelAnimationFrame(e)}get inputSources(){return this[Re].device.getInputSources()}async end(){if(!this[Re].ended)return this.immersive||(this[Re].ended=!0,this[Re].device.removeEventListener("@@webvr-polyfill/vr-present-start",this[Re].onPresentationStart),this[Re].device.removeEventListener("@@webvr-polyfill/vr-present-end",this[Re].onPresentationEnd),this[Re].device.removeEventListener("@@webvr-polyfill/input-select-start",this[Re].onSelectStart),this[Re].device.removeEventListener("@@webvr-polyfill/input-select-end",this[Re].onSelectEnd),this.dispatchEvent("end",{session:this})),this[Re].device.endSession(this[Re].id)}updateRenderState(e){if(this[Re].ended){throw new Error("Can't call updateRenderState on an XRSession that has already ended.")}if(e.baseLayer&&e.baseLayer._session!==this){throw new Error("Called updateRenderState with a base layer that was created by a different session.")}if(null!==e.inlineVerticalFieldOfView&&void 0!==e.inlineVerticalFieldOfView){if(this[Re].immersive){throw new Error("inlineVerticalFieldOfView must not be set for an XRRenderState passed to updateRenderState for an immersive session.")}e.inlineVerticalFieldOfView=Math.min(3.13,Math.max(.01,e.inlineVerticalFieldOfView))}null===this[Re].pendingRenderState&&(this[Re].pendingRenderState=Object.assign({},this[Re].activeRenderState,e))}}const Be=Symbol("@@webxr-polyfill/XRInputSource");class Ce{constructor(e){this[Be]={impl:e,gripSpace:new we("grip",this),targetRaySpace:new we("target-ray",this)}}get handedness(){return this[Be].impl.handedness}get targetRayMode(){return this[Be].impl.targetRayMode}get gripSpace(){let e=this[Be].impl.targetRayMode;return"gaze"===e||"screen"===e?null:this[Be].gripSpace}get targetRaySpace(){return this[Be].targetRaySpace}get gamepad(){return this[Be].impl.gamepad}}const Pe=Symbol("@@webxr-polyfill/XRRenderState"),De=Object.freeze({depthNear:.1,depthFar:1e3,inlineVerticalFieldOfView:null,baseLayer:null});var Ie={XR:class extends i{constructor(e){super(),this[r]={device:null,devicePromise:e,immersiveSession:null,inlineSessions:new Set},e.then(e=>{this[r].device=e})}async supportsSession(e){return this[r].device||await this[r].devicePromise,"inline"==e||this[r].device.supportsSession(e)?Promise.resolve(null):Promise.reject(null)}async requestSession(e){if(!this[r].device){if("inline"!=e)throw new Error(s);await this[r].devicePromise}const t=await this[r].device.requestSession(e),i=new XRSession(this[r].device,e,t);"inline"==e?this[r].inlineSessions.add(i):this[r].immersiveSession=i;const n=()=>{"inline"==e?this[r].inlineSessions.delete(i):this[r].immersiveSession=null,i.removeEventListener("end",n)};return i.addEventListener("end",n),i}},XRSession:Te,XRFrame:de,XRView:j,XRViewport:H,XRViewerPose:z,XRWebGLLayer:class{constructor(e,t,i={}){const r=Object.assign({},Se,i);if(!(e instanceof Te))throw new Error("session must be a XRSession");if(e.ended)throw new Error("InvalidStateError");if(t[_e]&&!0!==t[xe])throw new Error("InvalidStateError");const n=t.getParameter(t.FRAMEBUFFER_BINDING);this[Fe]={context:t,config:r,framebuffer:n,session:e}}get context(){return this[Fe].context}get antialias(){return this[Fe].config.antialias}get ignoreDepthValues(){return!0}get framebuffer(){return this[Fe].framebuffer}get framebufferWidth(){return this[Fe].context.drawingBufferWidth}get framebufferHeight(){return this[Fe].context.drawingBufferHeight}get _session(){return this[Fe].session}getViewport(e){return e._getViewport(this)}},XRSpace:we,XRReferenceSpace:Me,XRStageBounds:me,XRStageBoundsPoint:pe,XRInputSource:Ce,XRRenderState:class{constructor(e={}){const t=Object.assign({},De,e);this[Pe]={config:t}}get depthNear(){return this[Pe].depthNear}get depthFar(){return this[Pe].depthFar}get inlineVerticalFieldOfView(){return this[Pe].inlineVerticalFieldOfView}get baseLayer(){return this[Pe].baseLayer}},XRRigidTransform:k,XRPose:A};const Le=e=>"function"!=typeof e.prototype.makeXRCompatible&&(e.prototype.makeXRCompatible=function(){return this[xe]=!0,Promise.resolve()},!0),Oe=e=>{const t=e.prototype.getContext;e.prototype.getContext=function(e,i){const r=t.call(this,e,i);return r[_e]=!0,i&&"xrCompatible"in i&&(r[xe]=i.xrCompatible),r}},Qe=e=>!(!e.ImageBitmapRenderingContext||!e.createImageBitmap),Ne=e=>{var t=!1;return Ge=e.navigator.userAgent||e.navigator.vendor||e.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(Ge)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(Ge.substr(0,4)))&&(t=!0),t};var Ge;const ke=e=>{e.style.display="block",e.style.position="absolute",e.style.width=e.style.height="1px",e.style.top=e.style.left="0px"};var Ve="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var ze,Ue,He=(function(e,t){e.exports=function(){var e,t,i,r=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}(),s=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var i=[],r=!0,n=!1,s=void 0;try{for(var a,o=e[Symbol.iterator]();!(r=(a=o.next()).done)&&(i.push(a.value),!t||i.length!==t);r=!0);}catch(e){n=!0,s=e}finally{try{!r&&o.return&&o.return()}finally{if(n)throw s}}return i}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=function(e,t,i){return e+(t-e)*i},o=function(){var e=/iPad|iPhone|iPod/.test(navigator.platform);return function(){return e}}(),l=function(){var e=-1!==navigator.userAgent.indexOf("Version")&&-1!==navigator.userAgent.indexOf("Android")&&-1!==navigator.userAgent.indexOf("Chrome");return function(){return e}}(),A=(/^((?!chrome|android).)*safari/i.test(navigator.userAgent),function(){var e=-1!==navigator.userAgent.indexOf("Firefox")&&-1!==navigator.userAgent.indexOf("Android");return function(){return e}}()),h=(t=navigator.userAgent.match(/.*Chrome\/([0-9]+)/),i=t?parseInt(t[1],10):null,function(){return i}),c=function(){var e=!1;if(65===h()){var t=navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/);if(t){var i=t[1].split("."),r=s(i,4),n=(r[0],r[1],r[2]),a=r[3];e=3325===parseInt(n,10)&&parseInt(a,10)<148}}return function(){return e}}(),d=function(){var e=-1!==navigator.userAgent.indexOf("R7 Build");return function(){return e}}(),u=function(){var e=90==window.orientation||-90==window.orientation;return d()?!e:e},p=function(){return Math.max(window.screen.width,window.screen.height)*window.devicePixelRatio},f=function(){return Math.min(window.screen.width,window.screen.height)*window.devicePixelRatio},m=function(){if(document.exitFullscreen)document.exitFullscreen();else if(document.webkitExitFullscreen)document.webkitExitFullscreen();else if(document.mozCancelFullScreen)document.mozCancelFullScreen();else{if(!document.msExitFullscreen)return!1;document.msExitFullscreen()}return!0},g=function(e,t,i,r){var n=e.createShader(e.VERTEX_SHADER);e.shaderSource(n,t),e.compileShader(n);var s=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(s,i),e.compileShader(s);var a=e.createProgram();for(var o in e.attachShader(a,n),e.attachShader(a,s),r)e.bindAttribLocation(a,r[o],o);return e.linkProgram(a),e.deleteShader(n),e.deleteShader(s),a},w=function(e,t){for(var i={},r=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),n="",s=0;s<r;s++){var a=e.getActiveUniform(t,s);n=a.name.replace("[0]",""),i[n]=e.getUniformLocation(t,n)}return i},v=function(){var e,t=!1;return e=navigator.userAgent||navigator.vendor||window.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4)))&&(t=!0),t},y=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},b=function(e){if(o()){var t=e.style.width,i=e.style.height;e.style.width=parseInt(t)+1+"px",e.style.height=parseInt(i)+"px",setTimeout(function(){e.style.width=t,e.style.height=i},100)}window.canvas=e},E=function(){var e=Math.PI/180,t=.25*Math.PI,i=new Float32Array([0,0,0,1]),r=new Float32Array([0,0,0]);function n(n,s,a,o,l,A){!function(i,r,n,s){var a=Math.tan(r?r.upDegrees*e:t),o=Math.tan(r?r.downDegrees*e:t),l=Math.tan(r?r.leftDegrees*e:t),A=Math.tan(r?r.rightDegrees*e:t),h=2/(l+A),c=2/(a+o);i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=c,i[6]=0,i[7]=0,i[8]=-(l-A)*h*.5,i[9]=(a-o)*c*.5,i[10]=s/(n-s),i[11]=-1,i[12]=0,i[13]=0,i[14]=s*n/(n-s),i[15]=0}(n,o||null,A.depthNear,A.depthFar);var h,c,d,u,p,f,m,g,w,v,y,b,E,M,_,x,F,S,R,T=a.orientation||i,B=a.position||r;h=s,d=B,u=(c=T)[0],p=c[1],f=c[2],m=c[3],y=u*(g=u+u),b=u*(w=p+p),E=u*(v=f+f),M=p*w,_=p*v,x=f*v,F=m*g,S=m*w,R=m*v,h[0]=1-(M+x),h[1]=b+R,h[2]=E-S,h[3]=0,h[4]=b-R,h[5]=1-(y+x),h[6]=_+F,h[7]=0,h[8]=E+S,h[9]=_-F,h[10]=1-(y+M),h[11]=0,h[12]=d[0],h[13]=d[1],h[14]=d[2],h[15]=1,l&&function(e,t,i){var r,n,s,a,o,l,A,h,c,d,u,p,f=i[0],m=i[1],g=i[2];t===e?(e[12]=t[0]*f+t[4]*m+t[8]*g+t[12],e[13]=t[1]*f+t[5]*m+t[9]*g+t[13],e[14]=t[2]*f+t[6]*m+t[10]*g+t[14],e[15]=t[3]*f+t[7]*m+t[11]*g+t[15]):(r=t[0],n=t[1],s=t[2],a=t[3],o=t[4],l=t[5],A=t[6],h=t[7],c=t[8],d=t[9],u=t[10],p=t[11],e[0]=r,e[1]=n,e[2]=s,e[3]=a,e[4]=o,e[5]=l,e[6]=A,e[7]=h,e[8]=c,e[9]=d,e[10]=u,e[11]=p,e[12]=r*f+o*m+c*g+t[12],e[13]=n*f+l*m+d*g+t[13],e[14]=s*f+A*m+u*g+t[14],e[15]=a*f+h*m+p*g+t[15])}(s,s,l),function(e,t){var i=t[0],r=t[1],n=t[2],s=t[3],a=t[4],o=t[5],l=t[6],A=t[7],h=t[8],c=t[9],d=t[10],u=t[11],p=t[12],f=t[13],m=t[14],g=t[15],w=i*o-r*a,v=i*l-n*a,y=i*A-s*a,b=r*l-n*o,E=r*A-s*o,M=n*A-s*l,_=h*f-c*p,x=h*m-d*p,F=h*g-u*p,S=c*m-d*f,R=c*g-u*f,T=d*g-u*m,B=w*T-v*R+y*S+b*F-E*x+M*_;if(!B)return null;B=1/B,e[0]=(o*T-l*R+A*S)*B,e[1]=(n*R-r*T-s*S)*B,e[2]=(f*M-m*E+g*b)*B,e[3]=(d*E-c*M-u*b)*B,e[4]=(l*F-a*T-A*x)*B,e[5]=(i*T-n*F+s*x)*B,e[6]=(m*y-p*M-g*v)*B,e[7]=(h*M-d*y+u*v)*B,e[8]=(a*R-o*F+A*_)*B,e[9]=(r*F-i*R-s*_)*B,e[10]=(p*E-f*y+g*w)*B,e[11]=(c*y-h*E-u*w)*B,e[12]=(o*x-a*S-l*_)*B,e[13]=(i*S-r*x+n*_)*B,e[14]=(f*v-p*b-m*w)*B,e[15]=(h*b-c*v+d*w)*B}(s,s)}return function(e,t,i){return!(!e||!t||(e.pose=t,e.timestamp=t.timestamp,n(e.leftProjectionMatrix,e.leftViewMatrix,t,i._getFieldOfView("left"),i._getEyeOffset("left"),i),n(e.rightProjectionMatrix,e.rightViewMatrix,t,i._getFieldOfView("right"),i._getEyeOffset("right"),i),0))}}(),M=function(e){var t,i=e.indexOf("://");t=-1!==i?i+3:0;var r=e.indexOf("/",t);return-1===r&&(r=e.length),e.substring(0,r)},_=(e={},function(t,i){void 0===e[t]&&(console.warn("webvr-polyfill: "+i),e[t]=!0)}),x=function(e,t){var i=t?"Please use "+t+" instead.":"";_(e,e+" has been deprecated. This may not work on native WebVR displays. "+i)},F=function(e,t,i){if(t){for(var r=[],n=null,s=0;s<t.length;++s){var a=t[s];switch(a){case e.TEXTURE_BINDING_2D:case e.TEXTURE_BINDING_CUBE_MAP:var o=t[++s];if(o<e.TEXTURE0||o>e.TEXTURE31){console.error("TEXTURE_BINDING_2D or TEXTURE_BINDING_CUBE_MAP must be followed by a valid texture unit"),r.push(null,null);break}n||(n=e.getParameter(e.ACTIVE_TEXTURE)),e.activeTexture(o),r.push(e.getParameter(a),null);break;case e.ACTIVE_TEXTURE:n=e.getParameter(e.ACTIVE_TEXTURE),r.push(null);break;default:r.push(e.getParameter(a))}}i(e);for(var s=0;s<t.length;++s){var a=t[s],l=r[s];switch(a){case e.ACTIVE_TEXTURE:break;case e.ARRAY_BUFFER_BINDING:e.bindBuffer(e.ARRAY_BUFFER,l);break;case e.COLOR_CLEAR_VALUE:e.clearColor(l[0],l[1],l[2],l[3]);break;case e.COLOR_WRITEMASK:e.colorMask(l[0],l[1],l[2],l[3]);break;case e.CURRENT_PROGRAM:e.useProgram(l);break;case e.ELEMENT_ARRAY_BUFFER_BINDING:e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,l);break;case e.FRAMEBUFFER_BINDING:e.bindFramebuffer(e.FRAMEBUFFER,l);break;case e.RENDERBUFFER_BINDING:e.bindRenderbuffer(e.RENDERBUFFER,l);break;case e.TEXTURE_BINDING_2D:var o=t[++s];if(o<e.TEXTURE0||o>e.TEXTURE31)break;e.activeTexture(o),e.bindTexture(e.TEXTURE_2D,l);break;case e.TEXTURE_BINDING_CUBE_MAP:var o=t[++s];if(o<e.TEXTURE0||o>e.TEXTURE31)break;e.activeTexture(o),e.bindTexture(e.TEXTURE_CUBE_MAP,l);break;case e.VIEWPORT:e.viewport(l[0],l[1],l[2],l[3]);break;case e.BLEND:case e.CULL_FACE:case e.DEPTH_TEST:case e.SCISSOR_TEST:case e.STENCIL_TEST:l?e.enable(a):e.disable(a);break;default:console.log("No GL restore behavior for 0x"+a.toString(16))}n&&e.activeTexture(n)}}else i(e)},S=["attribute vec2 position;","attribute vec3 texCoord;","varying vec2 vTexCoord;","uniform vec4 viewportOffsetScale[2];","void main() {","  vec4 viewport = viewportOffsetScale[int(texCoord.z)];","  vTexCoord = (texCoord.xy * viewport.zw) + viewport.xy;","  gl_Position = vec4( position, 1.0, 1.0 );","}"].join("\n"),R=["precision mediump float;","uniform sampler2D diffuse;","varying vec2 vTexCoord;","void main() {","  gl_FragColor = texture2D(diffuse, vTexCoord);","}"].join("\n");function T(e,t,i,r){this.gl=e,this.cardboardUI=t,this.bufferScale=i,this.dirtySubmitFrameBindings=r,this.ctxAttribs=e.getContextAttributes(),this.meshWidth=20,this.meshHeight=20,this.bufferWidth=e.drawingBufferWidth,this.bufferHeight=e.drawingBufferHeight,this.realBindFramebuffer=e.bindFramebuffer,this.realEnable=e.enable,this.realDisable=e.disable,this.realColorMask=e.colorMask,this.realClearColor=e.clearColor,this.realViewport=e.viewport,o()||(this.realCanvasWidth=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"width"),this.realCanvasHeight=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"height")),this.isPatched=!1,this.lastBoundFramebuffer=null,this.cullFace=!1,this.depthTest=!1,this.blend=!1,this.scissorTest=!1,this.stencilTest=!1,this.viewport=[0,0,0,0],this.colorMask=[!0,!0,!0,!0],this.clearColor=[0,0,0,0],this.attribs={position:0,texCoord:1},this.program=g(e,S,R,this.attribs),this.uniforms=w(e,this.program),this.viewportOffsetScale=new Float32Array(8),this.setTextureBounds(),this.vertexBuffer=e.createBuffer(),this.indexBuffer=e.createBuffer(),this.indexCount=0,this.renderTarget=e.createTexture(),this.framebuffer=e.createFramebuffer(),this.depthStencilBuffer=null,this.depthBuffer=null,this.stencilBuffer=null,this.ctxAttribs.depth&&this.ctxAttribs.stencil?this.depthStencilBuffer=e.createRenderbuffer():this.ctxAttribs.depth?this.depthBuffer=e.createRenderbuffer():this.ctxAttribs.stencil&&(this.stencilBuffer=e.createRenderbuffer()),this.patch(),this.onResize()}T.prototype.destroy=function(){var e=this.gl;this.unpatch(),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer),e.deleteBuffer(this.indexBuffer),e.deleteTexture(this.renderTarget),e.deleteFramebuffer(this.framebuffer),this.depthStencilBuffer&&e.deleteRenderbuffer(this.depthStencilBuffer),this.depthBuffer&&e.deleteRenderbuffer(this.depthBuffer),this.stencilBuffer&&e.deleteRenderbuffer(this.stencilBuffer),this.cardboardUI&&this.cardboardUI.destroy()},T.prototype.onResize=function(){var e=this.gl,t=this,i=[e.RENDERBUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0];F(e,i,function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.framebuffer),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.texImage2D(e.TEXTURE_2D,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,t.bufferWidth,t.bufferHeight,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.renderTarget,0),t.ctxAttribs.depth&&t.ctxAttribs.stencil?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t.depthStencilBuffer)):t.ctxAttribs.depth?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t.depthBuffer)):t.ctxAttribs.stencil&&(e.bindRenderbuffer(e.RENDERBUFFER,t.stencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.STENCIL_INDEX8,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.STENCIL_ATTACHMENT,e.RENDERBUFFER,t.stencilBuffer)),!e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer incomplete!"),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),t.realClearColor.apply(e,t.clearColor)}),this.cardboardUI&&this.cardboardUI.onResize()},T.prototype.patch=function(){if(!this.isPatched){var e=this,t=this.gl.canvas,i=this.gl;o()||(t.width=p()*this.bufferScale,t.height=f()*this.bufferScale,Object.defineProperty(t,"width",{configurable:!0,enumerable:!0,get:function(){return e.bufferWidth},set:function(i){e.bufferWidth=i,e.realCanvasWidth.set.call(t,i),e.onResize()}}),Object.defineProperty(t,"height",{configurable:!0,enumerable:!0,get:function(){return e.bufferHeight},set:function(i){e.bufferHeight=i,e.realCanvasHeight.set.call(t,i),e.onResize()}})),this.lastBoundFramebuffer=i.getParameter(i.FRAMEBUFFER_BINDING),null==this.lastBoundFramebuffer&&(this.lastBoundFramebuffer=this.framebuffer,this.gl.bindFramebuffer(i.FRAMEBUFFER,this.framebuffer)),this.gl.bindFramebuffer=function(t,r){e.lastBoundFramebuffer=r||e.framebuffer,e.realBindFramebuffer.call(i,t,e.lastBoundFramebuffer)},this.cullFace=i.getParameter(i.CULL_FACE),this.depthTest=i.getParameter(i.DEPTH_TEST),this.blend=i.getParameter(i.BLEND),this.scissorTest=i.getParameter(i.SCISSOR_TEST),this.stencilTest=i.getParameter(i.STENCIL_TEST),i.enable=function(t){switch(t){case i.CULL_FACE:e.cullFace=!0;break;case i.DEPTH_TEST:e.depthTest=!0;break;case i.BLEND:e.blend=!0;break;case i.SCISSOR_TEST:e.scissorTest=!0;break;case i.STENCIL_TEST:e.stencilTest=!0}e.realEnable.call(i,t)},i.disable=function(t){switch(t){case i.CULL_FACE:e.cullFace=!1;break;case i.DEPTH_TEST:e.depthTest=!1;break;case i.BLEND:e.blend=!1;break;case i.SCISSOR_TEST:e.scissorTest=!1;break;case i.STENCIL_TEST:e.stencilTest=!1}e.realDisable.call(i,t)},this.colorMask=i.getParameter(i.COLOR_WRITEMASK),i.colorMask=function(t,r,n,s){e.colorMask[0]=t,e.colorMask[1]=r,e.colorMask[2]=n,e.colorMask[3]=s,e.realColorMask.call(i,t,r,n,s)},this.clearColor=i.getParameter(i.COLOR_CLEAR_VALUE),i.clearColor=function(t,r,n,s){e.clearColor[0]=t,e.clearColor[1]=r,e.clearColor[2]=n,e.clearColor[3]=s,e.realClearColor.call(i,t,r,n,s)},this.viewport=i.getParameter(i.VIEWPORT),i.viewport=function(t,r,n,s){e.viewport[0]=t,e.viewport[1]=r,e.viewport[2]=n,e.viewport[3]=s,e.realViewport.call(i,t,r,n,s)},this.isPatched=!0,b(t)}},T.prototype.unpatch=function(){if(this.isPatched){var e=this.gl,t=this.gl.canvas;o()||(Object.defineProperty(t,"width",this.realCanvasWidth),Object.defineProperty(t,"height",this.realCanvasHeight)),t.width=this.bufferWidth,t.height=this.bufferHeight,e.bindFramebuffer=this.realBindFramebuffer,e.enable=this.realEnable,e.disable=this.realDisable,e.colorMask=this.realColorMask,e.clearColor=this.realClearColor,e.viewport=this.realViewport,this.lastBoundFramebuffer==this.framebuffer&&e.bindFramebuffer(e.FRAMEBUFFER,null),this.isPatched=!1,setTimeout(function(){b(t)},1)}},T.prototype.setTextureBounds=function(e,t){e||(e=[0,0,.5,1]),t||(t=[.5,0,.5,1]),this.viewportOffsetScale[0]=e[0],this.viewportOffsetScale[1]=e[1],this.viewportOffsetScale[2]=e[2],this.viewportOffsetScale[3]=e[3],this.viewportOffsetScale[4]=t[0],this.viewportOffsetScale[5]=t[1],this.viewportOffsetScale[6]=t[2],this.viewportOffsetScale[7]=t[3]},T.prototype.submitFrame=function(){var e=this.gl,t=this,i=[];if(this.dirtySubmitFrameBindings||i.push(e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING,e.ELEMENT_ARRAY_BUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0),F(e,i,function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null),t.cullFace&&t.realDisable.call(e,e.CULL_FACE),t.depthTest&&t.realDisable.call(e,e.DEPTH_TEST),t.blend&&t.realDisable.call(e,e.BLEND),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realDisable.call(e,e.STENCIL_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),(t.ctxAttribs.alpha||o())&&(t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)),e.useProgram(t.program),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indexBuffer),e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.enableVertexAttribArray(t.attribs.position),e.enableVertexAttribArray(t.attribs.texCoord),e.vertexAttribPointer(t.attribs.position,2,e.FLOAT,!1,20,0),e.vertexAttribPointer(t.attribs.texCoord,3,e.FLOAT,!1,20,8),e.activeTexture(e.TEXTURE0),e.uniform1i(t.uniforms.diffuse,0),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.uniform4fv(t.uniforms.viewportOffsetScale,t.viewportOffsetScale),e.drawElements(e.TRIANGLES,t.indexCount,e.UNSIGNED_SHORT,0),t.cardboardUI&&t.cardboardUI.renderNoState(),t.realBindFramebuffer.call(t.gl,e.FRAMEBUFFER,t.framebuffer),t.ctxAttribs.preserveDrawingBuffer||(t.realClearColor.call(e,0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)),t.dirtySubmitFrameBindings||t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.cullFace&&t.realEnable.call(e,e.CULL_FACE),t.depthTest&&t.realEnable.call(e,e.DEPTH_TEST),t.blend&&t.realEnable.call(e,e.BLEND),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realEnable.call(e,e.STENCIL_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),!t.ctxAttribs.alpha&&t.ctxAttribs.preserveDrawingBuffer||t.realClearColor.apply(e,t.clearColor)}),o()){var r=e.canvas;r.width==t.bufferWidth&&r.height==t.bufferHeight||(t.bufferWidth=r.width,t.bufferHeight=r.height,t.onResize())}},T.prototype.updateDeviceInfo=function(e){var t=this.gl,i=this,r=[t.ARRAY_BUFFER_BINDING,t.ELEMENT_ARRAY_BUFFER_BINDING];F(t,r,function(t){var r=i.computeMeshVertices_(i.meshWidth,i.meshHeight,e);if(t.bindBuffer(t.ARRAY_BUFFER,i.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,r,t.STATIC_DRAW),!i.indexCount){var n=i.computeMeshIndices_(i.meshWidth,i.meshHeight);t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,n,t.STATIC_DRAW),i.indexCount=n.length}})},T.prototype.computeMeshVertices_=function(e,t,i){for(var r=new Float32Array(2*e*t*5),n=i.getLeftEyeVisibleTanAngles(),s=i.getLeftEyeNoLensTanAngles(),o=i.getLeftEyeVisibleScreenRect(s),l=0,A=0;A<2;A++){for(var h=0;h<t;h++)for(var c=0;c<e;c++,l++){var d=c/(e-1),u=h/(t-1),p=d,f=u,m=a(n[0],n[2],d),g=a(n[3],n[1],u),w=Math.sqrt(m*m+g*g),v=i.distortion.distortInverse(w),y=m*v/w,b=g*v/w;d=(y-s[0])/(s[2]-s[0]),u=(b-s[3])/(s[1]-s[3]),d=2*(o.x+d*o.width-.5),u=2*(o.y+u*o.height-.5),r[5*l+0]=d,r[5*l+1]=u,r[5*l+2]=p,r[5*l+3]=f,r[5*l+4]=A}var E=n[2]-n[0];n[0]=-(E+n[0]),n[2]=E-n[2],E=s[2]-s[0],s[0]=-(E+s[0]),s[2]=E-s[2],o.x=1-(o.x+o.width)}return r},T.prototype.computeMeshIndices_=function(e,t){for(var i=new Uint16Array(2*(e-1)*(t-1)*6),r=e/2,n=t/2,s=0,a=0,o=0;o<2;o++)for(var l=0;l<t;l++)for(var A=0;A<e;A++,s++)0!=A&&0!=l&&(A<=r==l<=n?(i[a++]=s,i[a++]=s-e-1,i[a++]=s-e,i[a++]=s-e-1,i[a++]=s,i[a++]=s-1):(i[a++]=s-1,i[a++]=s-e,i[a++]=s,i[a++]=s-e,i[a++]=s-1,i[a++]=s-e-1));return i},T.prototype.getOwnPropertyDescriptor_=function(e,t){var i=Object.getOwnPropertyDescriptor(e,t);return void 0!==i.get&&void 0!==i.set||(i.configurable=!0,i.enumerable=!0,i.get=function(){return this.getAttribute(t)},i.set=function(e){this.setAttribute(t,e)}),i};var B=["attribute vec2 position;","uniform mat4 projectionMat;","void main() {","  gl_Position = projectionMat * vec4( position, -1.0, 1.0 );","}"].join("\n"),C=["precision mediump float;","uniform vec4 color;","void main() {","  gl_FragColor = color;","}"].join("\n"),P=Math.PI/180,D=.3125;function I(e){this.gl=e,this.attribs={position:0},this.program=g(e,B,C,this.attribs),this.uniforms=w(e,this.program),this.vertexBuffer=e.createBuffer(),this.gearOffset=0,this.gearVertexCount=0,this.arrowOffset=0,this.arrowVertexCount=0,this.projMat=new Float32Array(16),this.listener=null,this.onResize()}function L(e){this.coefficients=e}I.prototype.destroy=function(){var e=this.gl;this.listener&&e.canvas.removeEventListener("click",this.listener,!1),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer)},I.prototype.listen=function(e,t){var i=this.gl.canvas;this.listener=function(r){var n=i.clientWidth/2;r.clientX>n-42&&r.clientX<n+42&&r.clientY>i.clientHeight-42?e(r):r.clientX<42&&r.clientY<42&&t(r)},i.addEventListener("click",this.listener,!1)},I.prototype.onResize=function(){var e=this.gl,t=this,i=[e.ARRAY_BUFFER_BINDING];F(e,i,function(e){var i=[],r=e.drawingBufferWidth/2,n=Math.max(screen.width,screen.height)*window.devicePixelRatio,s=e.drawingBufferWidth/n,a=s*window.devicePixelRatio,o=4*a/2,l=42*a,A=28*a/2,h=14*a;function c(e,t){var n=(90-e)*P,s=Math.cos(n),a=Math.sin(n);i.push(D*s*A+r,D*a*A+A),i.push(t*s*A+r,t*a*A+A)}i.push(r-o,l),i.push(r-o,e.drawingBufferHeight),i.push(r+o,l),i.push(r+o,e.drawingBufferHeight),t.gearOffset=i.length/2;for(var d=0;d<=6;d++){var u=60*d;c(u,1),c(u+12,1),c(u+20,.75),c(u+40,.75),c(u+48,1)}function p(t,r){i.push(h+t,e.drawingBufferHeight-h-r)}t.gearVertexCount=i.length/2-t.gearOffset,t.arrowOffset=i.length/2;var f=o/Math.sin(45*P);p(0,A),p(A,0),p(A+f,f),p(f,A+f),p(f,A-f),p(0,A),p(A,2*A),p(A+f,2*A-f),p(f,A-f),p(0,A),p(f,A-o),p(28*a,A-o),p(f,A+o),p(28*a,A+o),t.arrowVertexCount=i.length/2-t.arrowOffset,e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.bufferData(e.ARRAY_BUFFER,new Float32Array(i),e.STATIC_DRAW)})},I.prototype.render=function(){var e=this.gl,t=this,i=[e.CULL_FACE,e.DEPTH_TEST,e.BLEND,e.SCISSOR_TEST,e.STENCIL_TEST,e.COLOR_WRITEMASK,e.VIEWPORT,e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING];F(e,i,function(e){e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.disable(e.SCISSOR_TEST),e.disable(e.STENCIL_TEST),e.colorMask(!0,!0,!0,!0),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.renderNoState()})},I.prototype.renderNoState=function(){var e,t,i,r,n,s,a,o,l,A,h=this.gl;h.useProgram(this.program),h.bindBuffer(h.ARRAY_BUFFER,this.vertexBuffer),h.enableVertexAttribArray(this.attribs.position),h.vertexAttribPointer(this.attribs.position,2,h.FLOAT,!1,8,0),h.uniform4f(this.uniforms.color,1,1,1,1),e=this.projMat,t=0,i=h.drawingBufferWidth,r=0,n=h.drawingBufferHeight,o=1/(t-i),l=1/(r-n),A=1/((s=.1)-(a=1024)),e[0]=-2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*A,e[11]=0,e[12]=(t+i)*o,e[13]=(n+r)*l,e[14]=(a+s)*A,e[15]=1,h.uniformMatrix4fv(this.uniforms.projectionMat,!1,this.projMat),h.drawArrays(h.TRIANGLE_STRIP,0,4),h.drawArrays(h.TRIANGLE_STRIP,this.gearOffset,this.gearVertexCount),h.drawArrays(h.TRIANGLE_STRIP,this.arrowOffset,this.arrowVertexCount)},L.prototype.distortInverse=function(e){for(var t=0,i=1,r=e-this.distort(t);Math.abs(i-t)>1e-4;){var n=e-this.distort(i),s=i-n*((i-t)/(n-r));t=i,i=s,r=n}return i},L.prototype.distort=function(e){for(var t=e*e,i=0,r=0;r<this.coefficients.length;r++)i=t*(i+this.coefficients[r]);return(i+1)*e};var O=Math.PI/180,Q=180/Math.PI,N=function(e,t,i){this.x=e||0,this.y=t||0,this.z=i||0};N.prototype={constructor:N,set:function(e,t,i){return this.x=e,this.y=t,this.z=i,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var e=this.length();if(0!==e){var t=1/e;this.multiplyScalar(t)}else this.x=0,this.y=0,this.z=0;return this},multiplyScalar:function(e){this.x*=e,this.y*=e,this.z*=e},applyQuaternion:function(e){var t=this.x,i=this.y,r=this.z,n=e.x,s=e.y,a=e.z,o=e.w,l=o*t+s*r-a*i,A=o*i+a*t-n*r,h=o*r+n*i-s*t,c=-n*t-s*i-a*r;return this.x=l*o+c*-n+A*-a-h*-s,this.y=A*o+c*-s+h*-n-l*-a,this.z=h*o+c*-a+l*-s-A*-n,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},crossVectors:function(e,t){var i=e.x,r=e.y,n=e.z,s=t.x,a=t.y,o=t.z;return this.x=r*o-n*a,this.y=n*s-i*o,this.z=i*a-r*s,this}};var G,k,V=function(e,t,i,r){this.x=e||0,this.y=t||0,this.z=i||0,this.w=void 0!==r?r:1};function z(e){this.width=e.width||p(),this.height=e.height||f(),this.widthMeters=e.widthMeters,this.heightMeters=e.heightMeters,this.bevelMeters=e.bevelMeters}V.prototype={constructor:V,set:function(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},setFromEulerXYZ:function(e,t,i){var r=Math.cos(e/2),n=Math.cos(t/2),s=Math.cos(i/2),a=Math.sin(e/2),o=Math.sin(t/2),l=Math.sin(i/2);return this.x=a*n*s+r*o*l,this.y=r*o*s-a*n*l,this.z=r*n*l+a*o*s,this.w=r*n*s-a*o*l,this},setFromEulerYXZ:function(e,t,i){var r=Math.cos(e/2),n=Math.cos(t/2),s=Math.cos(i/2),a=Math.sin(e/2),o=Math.sin(t/2),l=Math.sin(i/2);return this.x=a*n*s+r*o*l,this.y=r*o*s-a*n*l,this.z=r*n*l-a*o*s,this.w=r*n*s+a*o*l,this},setFromAxisAngle:function(e,t){var i=t/2,r=Math.sin(i);return this.x=e.x*r,this.y=e.y*r,this.z=e.z*r,this.w=Math.cos(i),this},multiply:function(e){return this.multiplyQuaternions(this,e)},multiplyQuaternions:function(e,t){var i=e.x,r=e.y,n=e.z,s=e.w,a=t.x,o=t.y,l=t.z,A=t.w;return this.x=i*A+s*a+r*l-n*o,this.y=r*A+s*o+n*a-i*l,this.z=n*A+s*l+i*o-r*a,this.w=s*A-i*a-r*o-n*l,this},inverse:function(){return this.x*=-1,this.y*=-1,this.z*=-1,this.normalize(),this},normalize:function(){var e=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);return 0===e?(this.x=0,this.y=0,this.z=0,this.w=1):(e=1/e,this.x=this.x*e,this.y=this.y*e,this.z=this.z*e,this.w=this.w*e),this},slerp:function(e,t){if(0===t)return this;if(1===t)return this.copy(e);var i=this.x,r=this.y,n=this.z,s=this.w,a=s*e.w+i*e.x+r*e.y+n*e.z;if(a<0?(this.w=-e.w,this.x=-e.x,this.y=-e.y,this.z=-e.z,a=-a):this.copy(e),a>=1)return this.w=s,this.x=i,this.y=r,this.z=n,this;var o=Math.acos(a),l=Math.sqrt(1-a*a);if(Math.abs(l)<.001)return this.w=.5*(s+this.w),this.x=.5*(i+this.x),this.y=.5*(r+this.y),this.z=.5*(n+this.z),this;var A=Math.sin((1-t)*o)/l,h=Math.sin(t*o)/l;return this.w=s*A+this.w*h,this.x=i*A+this.x*h,this.y=r*A+this.y*h,this.z=n*A+this.z*h,this},setFromUnitVectors:function(e,t){return void 0===G&&(G=new N),(k=e.dot(t)+1)<1e-6?(k=0,Math.abs(e.x)>Math.abs(e.z)?G.set(-e.y,e.x,0):G.set(0,-e.z,e.y)):G.crossVectors(e,t),this.x=G.x,this.y=G.y,this.z=G.z,this.w=k,this.normalize(),this}};var U=new z({widthMeters:.11,heightMeters:.062,bevelMeters:.004}),H=new z({widthMeters:.1038,heightMeters:.0584,bevelMeters:.004}),X={CardboardV1:new j({id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]}),CardboardV2:new j({id:"CardboardV2",label:"Cardboard I/O 2015",fov:60,interLensDistance:.064,baselineLensDistance:.035,screenLensDistance:.039,distortionCoefficients:[.34,.55],inverseCoefficients:[-.33836704,-.18162185,.862655,-1.2462051,1.0560602,-.58208317,.21609078,-.05444823,.009177956,-.0009904169,6183535e-11,-16981803e-13]})};function W(e,t){this.viewer=X.CardboardV2,this.updateDeviceParams(e),this.distortion=new L(this.viewer.distortionCoefficients);for(var i=0;i<t.length;i++){var r=t[i];X[r.id]=new j(r)}}function j(e){this.id=e.id,this.label=e.label,this.fov=e.fov,this.interLensDistance=e.interLensDistance,this.baselineLensDistance=e.baselineLensDistance,this.screenLensDistance=e.screenLensDistance,this.distortionCoefficients=e.distortionCoefficients,this.inverseCoefficients=e.inverseCoefficients}W.prototype.updateDeviceParams=function(e){this.device=this.determineDevice_(e)||this.device},W.prototype.getDevice=function(){return this.device},W.prototype.setViewer=function(e){this.viewer=e,this.distortion=new L(this.viewer.distortionCoefficients)},W.prototype.determineDevice_=function(e){if(!e)return o()?(console.warn("Using fallback iOS device measurements."),H):(console.warn("Using fallback Android device measurements."),U);var t=.0254/e.xdpi,i=.0254/e.ydpi,r=p(),n=f();return new z({widthMeters:t*r,heightMeters:i*n,bevelMeters:.001*e.bevelMm})},W.prototype.getDistortedFieldOfViewLeftEye=function(){var e=this.viewer,t=this.device,i=this.distortion,r=e.screenLensDistance,n=(t.widthMeters-e.interLensDistance)/2,s=e.interLensDistance/2,a=e.baselineLensDistance-t.bevelMeters,o=t.heightMeters-a,l=Q*Math.atan(i.distort(n/r)),A=Q*Math.atan(i.distort(s/r)),h=Q*Math.atan(i.distort(a/r)),c=Q*Math.atan(i.distort(o/r));return{leftDegrees:Math.min(l,e.fov),rightDegrees:Math.min(A,e.fov),downDegrees:Math.min(h,e.fov),upDegrees:Math.min(c,e.fov)}},W.prototype.getLeftEyeVisibleTanAngles=function(){var e=this.viewer,t=this.device,i=this.distortion,r=Math.tan(-O*e.fov),n=Math.tan(O*e.fov),s=Math.tan(O*e.fov),a=Math.tan(-O*e.fov),o=t.widthMeters/4,l=t.heightMeters/2,A=e.baselineLensDistance-t.bevelMeters-l,h=e.interLensDistance/2-o,c=-A,d=e.screenLensDistance,u=i.distort((h-o)/d),p=i.distort((c+l)/d),f=i.distort((h+o)/d),m=i.distort((c-l)/d),g=new Float32Array(4);return g[0]=Math.max(r,u),g[1]=Math.min(n,p),g[2]=Math.min(s,f),g[3]=Math.max(a,m),g},W.prototype.getLeftEyeNoLensTanAngles=function(){var e=this.viewer,t=this.device,i=this.distortion,r=new Float32Array(4),n=i.distortInverse(Math.tan(-O*e.fov)),s=i.distortInverse(Math.tan(O*e.fov)),a=i.distortInverse(Math.tan(O*e.fov)),o=i.distortInverse(Math.tan(-O*e.fov)),l=t.widthMeters/4,A=t.heightMeters/2,h=e.baselineLensDistance-t.bevelMeters-A,c=e.interLensDistance/2-l,d=-h,u=e.screenLensDistance,p=(c-l)/u,f=(d+A)/u,m=(c+l)/u,g=(d-A)/u;return r[0]=Math.max(n,p),r[1]=Math.min(s,f),r[2]=Math.min(a,m),r[3]=Math.max(o,g),r},W.prototype.getLeftEyeVisibleScreenRect=function(e){var t=this.viewer,i=this.device,r=t.screenLensDistance,n=(i.widthMeters-t.interLensDistance)/2,s=t.baselineLensDistance-i.bevelMeters,a=(e[0]*r+n)/i.widthMeters,o=(e[1]*r+s)/i.heightMeters,l=(e[2]*r+n)/i.widthMeters,A=(e[3]*r+s)/i.heightMeters;return{x:a,y:A,width:l-a,height:o-A}},W.prototype.getFieldOfViewLeftEye=function(e){return e?this.getUndistortedFieldOfViewLeftEye():this.getDistortedFieldOfViewLeftEye()},W.prototype.getFieldOfViewRightEye=function(e){var t=this.getFieldOfViewLeftEye(e);return{leftDegrees:t.rightDegrees,rightDegrees:t.leftDegrees,upDegrees:t.upDegrees,downDegrees:t.downDegrees}},W.prototype.getUndistortedFieldOfViewLeftEye=function(){var e=this.getUndistortedParams_();return{leftDegrees:Q*Math.atan(e.outerDist),rightDegrees:Q*Math.atan(e.innerDist),downDegrees:Q*Math.atan(e.bottomDist),upDegrees:Q*Math.atan(e.topDist)}},W.prototype.getUndistortedViewportLeftEye=function(){var e=this.getUndistortedParams_(),t=this.viewer,i=this.device,r=t.screenLensDistance,n=i.widthMeters/r,s=i.heightMeters/r,a=i.width/n,o=i.height/s,l=Math.round((e.eyePosX-e.outerDist)*a),A=Math.round((e.eyePosY-e.bottomDist)*o);return{x:l,y:A,width:Math.round((e.eyePosX+e.innerDist)*a)-l,height:Math.round((e.eyePosY+e.topDist)*o)-A}},W.prototype.getUndistortedParams_=function(){var e=this.viewer,t=this.device,i=this.distortion,r=e.screenLensDistance,n=e.interLensDistance/2/r,s=t.widthMeters/r,a=t.heightMeters/r,o=s/2-n,l=(e.baselineLensDistance-t.bevelMeters)/r,A=e.fov,h=i.distortInverse(Math.tan(O*A)),c=Math.min(o,h),d=Math.min(n,h),u=Math.min(l,h),p=Math.min(a-l,h);return{outerDist:c,innerDist:d,topDist:p,bottomDist:u,eyePosX:o,eyePosY:l}},W.Viewers=X;var Y={format:1,last_updated:"2018-12-10T17:01:42Z",devices:[{type:"android",rules:[{mdmh:"asus/*/Nexus 7/*"},{ua:"Nexus 7"}],dpi:[320.8,323],bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_Z00AD/*"},{ua:"ASUS_Z00AD"}],dpi:[403,404.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2 XL/*"},{ua:"Pixel 2 XL"}],dpi:537.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3 XL/*"},{ua:"Pixel 3 XL"}],dpi:[558.5,553.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel XL/*"},{ua:"Pixel XL"}],dpi:[537.9,533],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3/*"},{ua:"Pixel 3"}],dpi:442.4,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2/*"},{ua:"Pixel 2"}],dpi:441,bw:3,ac:500},{type:"android",rules:[{mdmh:"Google/*/Pixel/*"},{ua:"Pixel"}],dpi:[432.6,436.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC6435LVW/*"},{ua:"HTC6435LVW"}],dpi:[449.7,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC One XL/*"},{ua:"HTC One XL"}],dpi:[315.3,314.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"htc/*/Nexus 9/*"},{ua:"Nexus 9"}],dpi:289,bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One M9/*"},{ua:"HTC One M9"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One_M8/*"},{ua:"HTC One_M8"}],dpi:[449.7,447.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One/*"},{ua:"HTC One"}],dpi:472.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/Nexus 6P/*"},{ua:"Nexus 6P"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/BLN-L24/*"},{ua:"HONORBLN-L24"}],dpi:480,bw:4,ac:500},{type:"android",rules:[{mdmh:"Huawei/*/BKL-L09/*"},{ua:"BKL-L09"}],dpi:403,bw:3.47,ac:500},{type:"android",rules:[{mdmh:"LENOVO/*/Lenovo PB2-690Y/*"},{ua:"Lenovo PB2-690Y"}],dpi:[457.2,454.713],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5X/*"},{ua:"Nexus 5X"}],dpi:[422,419.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS345/*"},{ua:"LGMS345"}],dpi:[221.7,219.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D800/*"},{ua:"LG-D800"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D850/*"},{ua:"LG-D850"}],dpi:[537.9,541.9],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/VS985 4G/*"},{ua:"VS985 4G"}],dpi:[537.9,535.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5/*"},{ua:"Nexus 5 B"}],dpi:[442.4,444.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 4/*"},{ua:"Nexus 4"}],dpi:[319.8,318.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LG-P769/*"},{ua:"LG-P769"}],dpi:[240.6,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS323/*"},{ua:"LGMS323"}],dpi:[206.6,204.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGLS996/*"},{ua:"LGLS996"}],dpi:[403.4,401.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/4560MMX/*"},{ua:"4560MMX"}],dpi:[240,219.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/A250/*"},{ua:"Micromax A250"}],dpi:[480,446.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/Micromax AQ4501/*"},{ua:"Micromax AQ4501"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/G5/*"},{ua:"Moto G (5) Plus"}],dpi:[403.4,403],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/DROID RAZR/*"},{ua:"DROID RAZR"}],dpi:[368.1,256.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT830C/*"},{ua:"XT830C"}],dpi:[254,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1021/*"},{ua:"XT1021"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1023/*"},{ua:"XT1023"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1028/*"},{ua:"XT1028"}],dpi:[326.6,327.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1034/*"},{ua:"XT1034"}],dpi:[326.6,328.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1053/*"},{ua:"XT1053"}],dpi:[315.3,316.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1562/*"},{ua:"XT1562"}],dpi:[403.4,402.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/Nexus 6/*"},{ua:"Nexus 6 B"}],dpi:[494.3,489.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1063/*"},{ua:"XT1063"}],dpi:[295,296.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1064/*"},{ua:"XT1064"}],dpi:[295,295.6],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1092/*"},{ua:"XT1092"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1095/*"},{ua:"XT1095"}],dpi:[422,423.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/G4/*"},{ua:"Moto G (4)"}],dpi:401,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/A0001/*"},{ua:"A0001"}],dpi:[403.4,401],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1005/*"},{ua:"ONE E1005"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2005/*"},{ua:"ONE A2005"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A5000/*"},{ua:"ONEPLUS A5000 "}],dpi:[403.411,399.737],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A5010/*"},{ua:"ONEPLUS A5010"}],dpi:[403,400],bw:2,ac:1e3},{type:"android",rules:[{mdmh:"OPPO/*/X909/*"},{ua:"X909"}],dpi:[442.4,444.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9082/*"},{ua:"GT-I9082"}],dpi:[184.7,185.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G360P/*"},{ua:"SM-G360P"}],dpi:[196.7,205.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Nexus S/*"},{ua:"Nexus S"}],dpi:[234.5,229.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[304.8,303.9],bw:5,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-T230NU/*"},{ua:"SM-T230NU"}],dpi:216,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SGH-T399/*"},{ua:"SGH-T399"}],dpi:[217.7,231.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SGH-M919/*"},{ua:"SGH-M919"}],dpi:[440.8,437.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N9005/*"},{ua:"SM-N9005"}],dpi:[386.4,387],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SM-N900A/*"},{ua:"SAMSUNG-SM-N900A"}],dpi:[386.4,387.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9500/*"},{ua:"GT-I9500"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/GT-I9505/*"},{ua:"GT-I9505"}],dpi:439.4,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900F/*"},{ua:"SM-G900F"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900M/*"},{ua:"SM-G900M"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G800F/*"},{ua:"SM-G800F"}],dpi:326.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G906S/*"},{ua:"SM-G906S"}],dpi:[562.7,572.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[306.7,304.8],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-T535/*"},{ua:"SM-T535"}],dpi:[142.6,136.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-N920C/*"},{ua:"SM-N920C"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920P/*"},{ua:"SM-N920P"}],dpi:[386.3655,390.144],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920W8/*"},{ua:"SM-N920W8"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300I/*"},{ua:"GT-I9300I"}],dpi:[304.8,305.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9195/*"},{ua:"GT-I9195"}],dpi:[249.4,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SPH-L520/*"},{ua:"SPH-L520"}],dpi:[249.4,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SGH-I717/*"},{ua:"SAMSUNG-SGH-I717"}],dpi:285.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SPH-D710/*"},{ua:"SPH-D710"}],dpi:[217.7,204.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-N7100/*"},{ua:"GT-N7100"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SCH-I605/*"},{ua:"SCH-I605"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Galaxy Nexus/*"},{ua:"Galaxy Nexus"}],dpi:[315.3,314.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910H/*"},{ua:"SM-N910H"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910C/*"},{ua:"SM-N910C"}],dpi:[515.2,520.2],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G130M/*"},{ua:"SM-G130M"}],dpi:[165.9,164.8],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G928I/*"},{ua:"SM-G928I"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G920F/*"},{ua:"SM-G920F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G920P/*"},{ua:"SM-G920P"}],dpi:[522.5,577],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G925F/*"},{ua:"SM-G925F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G925V/*"},{ua:"SM-G925V"}],dpi:[522.5,576.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G930F/*"},{ua:"SM-G930F"}],dpi:576.6,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G935F/*"},{ua:"SM-G935F"}],dpi:533,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G950F/*"},{ua:"SM-G950F"}],dpi:[562.707,565.293],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955U/*"},{ua:"SM-G955U"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955F/*"},{ua:"SM-G955F"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"Sony/*/C6903/*"},{ua:"C6903"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"Sony/*/D6653/*"},{ua:"D6653"}],dpi:[428.6,427.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6653/*"},{ua:"E6653"}],dpi:[428.6,425.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6853/*"},{ua:"E6853"}],dpi:[403.4,401.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/SGP321/*"},{ua:"SGP321"}],dpi:[224.7,224.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"TCT/*/ALCATEL ONE TOUCH Fierce/*"},{ua:"ALCATEL ONE TOUCH Fierce"}],dpi:[240,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"THL/*/thl 5000/*"},{ua:"thl 5000"}],dpi:[480,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Fly/*/IQ4412/*"},{ua:"IQ4412"}],dpi:307.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"ZTE/*/ZTE Blade L2/*"},{ua:"ZTE Blade L2"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"BENEVE/*/VR518/*"},{ua:"VR518"}],dpi:480,bw:3,ac:500},{type:"ios",rules:[{res:[640,960]}],dpi:[325.1,328.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[640,1136]}],dpi:[317.1,320.2],bw:3,ac:1e3},{type:"ios",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",rules:[{res:[1242,2208]}],dpi:[453.6,458.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2001]}],dpi:[410.9,415.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2436]}],dpi:458,bw:4,ac:1e3}]};function Z(e,t){if(this.dpdb=Y,this.recalculateDeviceParams_(),e){this.onDeviceParamsUpdated=t;var i=new XMLHttpRequest,r=this;i.open("GET",e,!0),i.addEventListener("load",function(){r.loading=!1,i.status>=200&&i.status<=299?(r.dpdb=JSON.parse(i.response),r.recalculateDeviceParams_()):console.error("Error loading online DPDB!")}),i.send()}}function q(e){this.xdpi=e.xdpi,this.ydpi=e.ydpi,this.bevelMm=e.bevelMm}function J(e,t){this.set(e,t)}function K(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new J,this.currentGyroMeasurement=new J,this.previousGyroMeasurement=new J,o()?this.filterQ=new V(-1,0,0,1):this.filterQ=new V(1,0,0,1),this.previousFilterQ=new V,this.previousFilterQ.copy(this.filterQ),this.accelQ=new V,this.isOrientationInitialized=!1,this.estimatedGravity=new N,this.measuredGravity=new N,this.gyroIntegralQ=new V}function $(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new V,this.previousTimestampS=null,this.deltaQ=new V,this.outQ=new V}function ee(e,t,i,r){this.yawOnly=i,this.accelerometer=new N,this.gyroscope=new N,this.filter=new K(e,r),this.posePredictor=new $(t,r),this.isFirefoxAndroid=A(),this.isIOS=o();var n=h();this.isDeviceMotionInRadians=!this.isIOS&&n&&n<66,this.isWithoutDeviceMotion=c(),this.filterToWorldQ=new V,o()?this.filterToWorldQ.setFromAxisAngle(new N(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new N(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new V,this.worldToScreenQ=new V,this.originalPoseAdjustQ=new V,this.originalPoseAdjustQ.setFromAxisAngle(new N(0,0,1),-window.orientation*Math.PI/180),this.setScreenTransform_(),u()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new V,this.orientationOut_=new Float32Array(4),this.start()}Z.prototype.getDeviceParams=function(){return this.deviceParams},Z.prototype.recalculateDeviceParams_=function(){var e=this.calcDeviceParams_();e?(this.deviceParams=e,this.onDeviceParamsUpdated&&this.onDeviceParamsUpdated(this.deviceParams)):console.error("Failed to recalculate device parameters.")},Z.prototype.calcDeviceParams_=function(){var e=this.dpdb;if(!e)return console.error("DPDB not available."),null;if(1!=e.format)return console.error("DPDB has unexpected format version."),null;if(!e.devices||!e.devices.length)return console.error("DPDB does not have a devices section."),null;var t=navigator.userAgent||navigator.vendor||window.opera,i=p(),r=f();if(!e.devices)return console.error("DPDB has no devices section."),null;for(var n=0;n<e.devices.length;n++){var s=e.devices[n];if(s.rules)if("ios"==s.type||"android"==s.type){if(o()==("ios"==s.type)){for(var a=!1,l=0;l<s.rules.length;l++){var A=s.rules[l];if(this.ruleMatches_(A,t,i,r)){a=!0;break}}if(a){var h=s.dpi[0]||s.dpi,c=s.dpi[1]||s.dpi;return new q({xdpi:h,ydpi:c,bevelMm:s.bw})}}}else console.warn("Device["+n+"] has invalid type.");else console.warn("Device["+n+"] has no rules section.")}return console.warn("No DPDB device match."),null},Z.prototype.ruleMatches_=function(e,t,i,r){if(!e.ua&&!e.res)return!1;if(e.ua&&"SM"===e.ua.substring(0,2)&&(e.ua=e.ua.substring(0,7)),e.ua&&t.indexOf(e.ua)<0)return!1;if(e.res){if(!e.res[0]||!e.res[1])return!1;var n=e.res[0],s=e.res[1];if(Math.min(i,r)!=Math.min(n,s)||Math.max(i,r)!=Math.max(n,s))return!1}return!0},J.prototype.set=function(e,t){this.sample=e,this.timestampS=t},J.prototype.copy=function(e){this.set(e.sample,e.timestampS)},K.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},K.prototype.addGyroMeasurement=function(e,t){this.currentGyroMeasurement.set(e,t);var i,r=t-this.previousGyroMeasurement.timestampS;i=r,!(isNaN(i)||i<=.001||i>1)&&this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},K.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var i=new V;i.copy(this.filterQ),i.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(i),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var r,n=new V;n.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),n.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",Q*((r=n).w>1?(console.warn("getQuaternionAngle: w > 1"),0):2*Math.acos(r.w)),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var s=new V;s.copy(this.filterQ),s.multiply(n),this.filterQ.slerp(s,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},K.prototype.getOrientation=function(){return this.filterQ},K.prototype.accelToQuaternion_=function(e){var t=new N;t.copy(e),t.normalize();var i=new V;return i.setFromUnitVectors(new N(0,0,-1),t),i.inverse(),i},K.prototype.gyroToQuaternionDelta_=function(e,t){var i=new V,r=new N;return r.copy(e),r.normalize(),i.setFromAxisAngle(r,e.length()*t),i},$.prototype.getPrediction=function(e,t,i){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=i,e;var r=new N;r.copy(t),r.normalize();var n=t.length();if(n<20*O)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(Q*n).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var s=n*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(r,s),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=i,this.outQ},ee.prototype.getPosition=function(){return null},ee.prototype.getOrientation=function(){var e=void 0;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ){this.deviceOrientationFixQ=this.deviceOrientationFixQ||(r=(new V).setFromAxisAngle(new N(0,0,-1),0),n=new V,-90===window.orientation?n.setFromAxisAngle(new N(0,1,0),Math.PI/-2):n.setFromAxisAngle(new N(0,1,0),Math.PI/2),r.multiply(n)),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((i=new V).setFromAxisAngle(new N(1,0,0),-Math.PI/2),i),e=this._deviceOrientationQ;var t=new V;return t.copy(e),t.multiply(this.deviceOrientationFilterToWorldQ),t.multiply(this.resetQ),t.multiply(this.worldToScreenQ),t.multiplyQuaternions(this.deviceOrientationFixQ,t),this.yawOnly&&(t.x=0,t.z=0,t.normalize()),this.orientationOut_[0]=t.x,this.orientationOut_[1]=t.y,this.orientationOut_[2]=t.z,this.orientationOut_[3]=t.w,this.orientationOut_}var i,r,n,s=this.filter.getOrientation();e=this.posePredictor.getPrediction(s,this.gyroscope,this.previousTimestampS);var t=new V;return t.copy(this.filterToWorldQ),t.multiply(this.resetQ),t.multiply(e),t.multiply(this.worldToScreenQ),this.yawOnly&&(t.x=0,t.z=0,t.normalize()),this.orientationOut_[0]=t.x,this.orientationOut_[1]=t.y,this.orientationOut_[2]=t.z,this.orientationOut_[3]=t.w,this.orientationOut_},ee.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),u()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},ee.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new V;var t=e.alpha,i=e.beta,r=e.gamma;t=(t||0)*Math.PI/180,i=(i||0)*Math.PI/180,r=(r||0)*Math.PI/180,this._deviceOrientationQ.setFromEulerYXZ(i,t,-r)},ee.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},ee.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,i=e.rotationRate,r=e.timeStamp/1e3,n=r-this.previousTimestampS;return n<0?(_("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=r)):n<=.001||n>1?(_("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=r)):(this.accelerometer.set(-t.x,-t.y,-t.z),d()?this.gyroscope.set(-i.beta,i.alpha,i.gamma):this.gyroscope.set(i.alpha,i.beta,i.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addAccelMeasurement(this.accelerometer,r),this.filter.addGyroMeasurement(this.gyroscope,r),void(this.previousTimestampS=r))},ee.prototype.onOrientationChange_=function(e){this.setScreenTransform_()},ee.prototype.onMessage_=function(e){var t=e.data;if(t&&t.type){var i=t.type.toLowerCase();"devicemotion"===i&&this.updateDeviceMotion_(t.deviceMotionEvent)}},ee.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),window.orientation){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new N(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new N(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},ee.prototype.start=function(){var e,t,i;this.onDeviceMotionCallback_=this.onDeviceMotion_.bind(this),this.onOrientationChangeCallback_=this.onOrientationChange_.bind(this),this.onMessageCallback_=this.onMessage_.bind(this),this.onDeviceOrientationCallback_=this.onDeviceOrientation_.bind(this),o()&&(e=window.self!==window.top,t=M(document.referrer),i=M(window.location.href),e&&t!==i)&&window.addEventListener("message",this.onMessageCallback_),window.addEventListener("orientationchange",this.onOrientationChangeCallback_),this.isWithoutDeviceMotion?window.addEventListener("deviceorientation",this.onDeviceOrientationCallback_):window.addEventListener("devicemotion",this.onDeviceMotionCallback_)},ee.prototype.stop=function(){window.removeEventListener("devicemotion",this.onDeviceMotionCallback_),window.removeEventListener("deviceorientation",this.onDeviceOrientationCallback_),window.removeEventListener("orientationchange",this.onOrientationChangeCallback_),window.removeEventListener("message",this.onMessageCallback_)};var te=new N(1,0,0),ie=new N(0,0,1),re=new V;re.setFromAxisAngle(te,-Math.PI/2),re.multiply((new V).setFromAxisAngle(ie,Math.PI/2));var ne=function(){function e(t){r(this,e),this.config=t,this.sensor=null,this.fusionSensor=null,this._out=new Float32Array(4),this.api=null,this.errors=[],this._sensorQ=new V,this._outQ=new V,this._onSensorRead=this._onSensorRead.bind(this),this._onSensorError=this._onSensorError.bind(this),this.init()}return n(e,[{key:"init",value:function(){var e=null;try{(e=new RelativeOrientationSensor({frequency:60,referenceFrame:"screen"})).addEventListener("error",this._onSensorError)}catch(e){this.errors.push(e),"SecurityError"===e.name?(console.error("Cannot construct sensors due to the Feature Policy"),console.warn('Attempting to fall back using "devicemotion"; however this will fail in the future without correct permissions.'),this.useDeviceMotion()):"ReferenceError"===e.name?this.useDeviceMotion():console.error(e)}e&&(this.api="sensor",this.sensor=e,this.sensor.addEventListener("reading",this._onSensorRead),this.sensor.start())}},{key:"useDeviceMotion",value:function(){this.api="devicemotion",this.fusionSensor=new ee(this.config.K_FILTER,this.config.PREDICTION_TIME_S,this.config.YAW_ONLY,this.config.DEBUG),this.sensor&&(this.sensor.removeEventListener("reading",this._onSensorRead),this.sensor.removeEventListener("error",this._onSensorError),this.sensor=null)}},{key:"getOrientation",value:function(){if(this.fusionSensor)return this.fusionSensor.getOrientation();if(!this.sensor||!this.sensor.quaternion)return this._out[0]=this._out[1]=this._out[2]=0,this._out[3]=1,this._out;var e=this.sensor.quaternion;this._sensorQ.set(e[0],e[1],e[2],e[3]);var t=this._outQ;return t.copy(re),t.multiply(this._sensorQ),this.config.YAW_ONLY&&(t.x=t.z=0,t.normalize()),this._out[0]=t.x,this._out[1]=t.y,this._out[2]=t.z,this._out[3]=t.w,this._out}},{key:"_onSensorError",value:function(e){this.errors.push(e.error),"NotAllowedError"===e.error.name?console.error("Permission to access sensor was denied"):"NotReadableError"===e.error.name?console.error("Sensor could not be read"):console.error(e.error),this.useDeviceMotion()}},{key:"_onSensorRead",value:function(){}}]),e}();function se(){this.loadIcon_();var e=document.createElement("div"),t=e.style;t.position="fixed",t.top=0,t.right=0,t.bottom=0,t.left=0,t.backgroundColor="gray",t.fontFamily="sans-serif",t.zIndex=1e6;var i=document.createElement("img");i.src=this.icon;var t=i.style;t.marginLeft="25%",t.marginTop="25%",t.width="50%",e.appendChild(i);var r=document.createElement("div"),t=r.style;t.textAlign="center",t.fontSize="16px",t.lineHeight="24px",t.margin="24px 25%",t.width="50%",r.innerHTML="Place your phone into your Cardboard viewer.",e.appendChild(r);var n=document.createElement("div"),t=n.style;t.backgroundColor="#CFD8DC",t.position="fixed",t.bottom=0,t.width="100%",t.height="48px",t.padding="14px 24px",t.boxSizing="border-box",t.color="#656A6B",e.appendChild(n);var s=document.createElement("div");s.style.float="left",s.innerHTML="No Cardboard viewer?";var a=document.createElement("a");a.href="https://www.google.com/get/cardboard/get-cardboard/",a.innerHTML="get one",a.target="_blank";var t=a.style;t.float="right",t.fontWeight=600,t.textTransform="uppercase",t.borderLeft="1px solid gray",t.paddingLeft="24px",t.textDecoration="none",t.color="#656A6B",n.appendChild(s),n.appendChild(a),this.overlay=e,this.text=r,this.hide()}se.prototype.show=function(e){e||this.overlay.parentElement?e&&(this.overlay.parentElement&&this.overlay.parentElement!=e&&this.overlay.parentElement.removeChild(this.overlay),e.appendChild(this.overlay)):document.body.appendChild(this.overlay),this.overlay.style.display="block";var t=this.overlay.querySelector("img"),i=t.style;u()?(i.width="20%",i.marginLeft="40%",i.marginTop="3%"):(i.width="50%",i.marginLeft="25%",i.marginTop="25%")},se.prototype.hide=function(){this.overlay.style.display="none"},se.prototype.showTemporarily=function(e,t){this.show(t),this.timer=setTimeout(this.hide.bind(this),e)},se.prototype.disableShowTemporarily=function(){clearTimeout(this.timer)},se.prototype.update=function(){this.disableShowTemporarily(),!u()&&v()?this.show():this.hide()},se.prototype.loadIcon_=function(){this.icon="data:image/svg+xml,"+encodeURIComponent("<svg width='198' height='240' viewBox='0 0 198 240' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M149.625 109.527l6.737 3.891v.886c0 .177.013.36.038.549.01.081.02.162.027.242.14 1.415.974 2.998 2.105 3.999l5.72 5.062.081-.09s4.382-2.53 5.235-3.024l25.97 14.993v54.001c0 .771-.386 1.217-.948 1.217-.233 0-.495-.076-.772-.236l-23.967-13.838-.014.024-27.322 15.775-.85-1.323c-4.731-1.529-9.748-2.74-14.951-3.61a.27.27 0 0 0-.007.024l-5.067 16.961-7.891 4.556-.037-.063v27.59c0 .772-.386 1.217-.948 1.217-.232 0-.495-.076-.772-.236l-42.473-24.522c-.95-.549-1.72-1.877-1.72-2.967v-1.035l-.021.047a5.111 5.111 0 0 0-1.816-.399 5.682 5.682 0 0 0-.546.001 13.724 13.724 0 0 1-1.918-.041c-1.655-.153-3.2-.6-4.404-1.296l-46.576-26.89.005.012-10.278-18.75c-1.001-1.827-.241-4.216 1.698-5.336l56.011-32.345a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.659 3.227 1.853l.005-.003.227.413-.006.004a9.63 9.63 0 0 0 1.477 2.018l.277.27c1.914 1.85 4.468 2.801 7.113 2.801 1.949 0 3.948-.517 5.775-1.572.013 0 7.319-4.219 7.319-4.219a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.658 3.226 1.853l3.25 5.928.022-.018 6.785 3.917-.105-.182 46.881-26.965m0-1.635c-.282 0-.563.073-.815.218l-46.169 26.556-5.41-3.124-3.005-5.481c-.913-1.667-2.699-2.702-4.66-2.703-1.011 0-2.02.274-2.917.792a3825 3825 0 0 1-7.275 4.195l-.044.024a9.937 9.937 0 0 1-4.957 1.353c-2.292 0-4.414-.832-5.976-2.342l-.252-.245a7.992 7.992 0 0 1-1.139-1.534 1.379 1.379 0 0 0-.06-.122l-.227-.414a1.718 1.718 0 0 0-.095-.154c-.938-1.574-2.673-2.545-4.571-2.545-1.011 0-2.02.274-2.917.792L3.125 155.502c-2.699 1.559-3.738 4.94-2.314 7.538l10.278 18.75c.177.323.448.563.761.704l46.426 26.804c1.403.81 3.157 1.332 5.072 1.508a15.661 15.661 0 0 0 2.146.046 4.766 4.766 0 0 1 .396 0c.096.004.19.011.283.022.109 1.593 1.159 3.323 2.529 4.114l42.472 24.522c.524.302 1.058.455 1.59.455 1.497 0 2.583-1.2 2.583-2.852v-26.562l7.111-4.105a1.64 1.64 0 0 0 .749-.948l4.658-15.593c4.414.797 8.692 1.848 12.742 3.128l.533.829a1.634 1.634 0 0 0 2.193.531l26.532-15.317L193 192.433c.523.302 1.058.455 1.59.455 1.497 0 2.583-1.199 2.583-2.852v-54.001c0-.584-.312-1.124-.818-1.416l-25.97-14.993a1.633 1.633 0 0 0-1.636.001c-.606.351-2.993 1.73-4.325 2.498l-4.809-4.255c-.819-.725-1.461-1.933-1.561-2.936a7.776 7.776 0 0 0-.033-.294 2.487 2.487 0 0 1-.023-.336v-.886c0-.584-.312-1.123-.817-1.416l-6.739-3.891a1.633 1.633 0 0 0-.817-.219' fill='#455A64'/><path d='M96.027 132.636l46.576 26.891c1.204.695 1.979 1.587 2.242 2.541l-.01.007-81.374 46.982h-.001c-1.654-.152-3.199-.6-4.403-1.295l-46.576-26.891 83.546-48.235' fill='#FAFAFA'/><path d='M63.461 209.174c-.008 0-.015 0-.022-.002-1.693-.156-3.228-.609-4.441-1.309l-46.576-26.89a.118.118 0 0 1 0-.203l83.546-48.235a.117.117 0 0 1 .117 0l46.576 26.891c1.227.708 2.021 1.612 2.296 2.611a.116.116 0 0 1-.042.124l-.021.016-81.375 46.981a.11.11 0 0 1-.058.016zm-50.747-28.303l46.401 26.79c1.178.68 2.671 1.121 4.32 1.276l81.272-46.922c-.279-.907-1.025-1.73-2.163-2.387l-46.517-26.857-83.313 48.1z' fill='#607D8B'/><path d='M148.327 165.471a5.85 5.85 0 0 1-.546.001c-1.894-.083-3.302-1.038-3.145-2.132a2.693 2.693 0 0 0-.072-1.105l-81.103 46.822c.628.058 1.272.073 1.918.042.182-.009.364-.009.546-.001 1.894.083 3.302 1.038 3.145 2.132l79.257-45.759' fill='#FFF'/><path d='M69.07 211.347a.118.118 0 0 1-.115-.134c.045-.317-.057-.637-.297-.925-.505-.61-1.555-1.022-2.738-1.074a5.966 5.966 0 0 0-.535.001 14.03 14.03 0 0 1-1.935-.041.117.117 0 0 1-.103-.092.116.116 0 0 1 .055-.126l81.104-46.822a.117.117 0 0 1 .171.07c.104.381.129.768.074 1.153-.045.316.057.637.296.925.506.61 1.555 1.021 2.739 1.073.178.008.357.008.535-.001a.117.117 0 0 1 .064.218l-79.256 45.759a.114.114 0 0 1-.059.016zm-3.405-2.372c.089 0 .177.002.265.006 1.266.056 2.353.488 2.908 1.158.227.274.35.575.36.882l78.685-45.429c-.036 0-.072-.001-.107-.003-1.267-.056-2.354-.489-2.909-1.158-.282-.34-.402-.724-.347-1.107a2.604 2.604 0 0 0-.032-.91L63.846 208.97a13.91 13.91 0 0 0 1.528.012c.097-.005.194-.007.291-.007z' fill='#607D8B'/><path d='M2.208 162.134c-1.001-1.827-.241-4.217 1.698-5.337l56.011-32.344c1.939-1.12 4.324-.546 5.326 1.281l.232.41a9.344 9.344 0 0 0 1.47 2.021l.278.27c3.325 3.214 8.583 3.716 12.888 1.23l7.319-4.22c1.94-1.119 4.324-.546 5.325 1.282l3.25 5.928-83.519 48.229-10.278-18.75z' fill='#FAFAFA'/><path d='M12.486 181.001a.112.112 0 0 1-.031-.005.114.114 0 0 1-.071-.056L2.106 162.19c-1.031-1.88-.249-4.345 1.742-5.494l56.01-32.344a4.328 4.328 0 0 1 2.158-.588c1.415 0 2.65.702 3.311 1.882.01.008.018.017.024.028l.227.414a.122.122 0 0 1 .013.038 9.508 9.508 0 0 0 1.439 1.959l.275.266c1.846 1.786 4.344 2.769 7.031 2.769 1.977 0 3.954-.538 5.717-1.557a.148.148 0 0 1 .035-.013l7.284-4.206a4.321 4.321 0 0 1 2.157-.588c1.427 0 2.672.716 3.329 1.914l3.249 5.929a.116.116 0 0 1-.044.157l-83.518 48.229a.116.116 0 0 1-.059.016zm49.53-57.004c-.704 0-1.41.193-2.041.557l-56.01 32.345c-1.882 1.086-2.624 3.409-1.655 5.179l10.221 18.645 83.317-48.112-3.195-5.829c-.615-1.122-1.783-1.792-3.124-1.792a4.08 4.08 0 0 0-2.04.557l-7.317 4.225a.148.148 0 0 1-.035.013 11.7 11.7 0 0 1-5.801 1.569c-2.748 0-5.303-1.007-7.194-2.835l-.278-.27a9.716 9.716 0 0 1-1.497-2.046.096.096 0 0 1-.013-.037l-.191-.347a.11.11 0 0 1-.023-.029c-.615-1.123-1.783-1.793-3.124-1.793z' fill='#607D8B'/><path d='M42.434 155.808c-2.51-.001-4.697-1.258-5.852-3.365-1.811-3.304-.438-7.634 3.059-9.654l12.291-7.098a7.599 7.599 0 0 1 3.789-1.033c2.51 0 4.697 1.258 5.852 3.365 1.811 3.304.439 7.634-3.059 9.654l-12.291 7.098a7.606 7.606 0 0 1-3.789 1.033zm13.287-20.683a7.128 7.128 0 0 0-3.555.971l-12.291 7.098c-3.279 1.893-4.573 5.942-2.883 9.024 1.071 1.955 3.106 3.122 5.442 3.122a7.13 7.13 0 0 0 3.556-.97l12.291-7.098c3.279-1.893 4.572-5.942 2.883-9.024-1.072-1.955-3.106-3.123-5.443-3.123z' fill='#607D8B'/><path d='M149.588 109.407l6.737 3.89v.887c0 .176.013.36.037.549.011.081.02.161.028.242.14 1.415.973 2.998 2.105 3.999l7.396 6.545c.177.156.358.295.541.415 1.579 1.04 2.95.466 3.062-1.282.049-.784.057-1.595.023-2.429l-.003-.16v-1.151l25.987 15.003v54c0 1.09-.77 1.53-1.72.982l-42.473-24.523c-.95-.548-1.72-1.877-1.72-2.966v-34.033' fill='#FAFAFA'/><path d='M194.553 191.25c-.257 0-.54-.085-.831-.253l-42.472-24.521c-.981-.567-1.779-1.943-1.779-3.068v-34.033h.234v34.033c0 1.051.745 2.336 1.661 2.866l42.473 24.521c.424.245.816.288 1.103.122.285-.164.442-.52.442-1.002v-53.933l-25.753-14.868.003 1.106c.034.832.026 1.654-.024 2.439-.054.844-.396 1.464-.963 1.746-.619.309-1.45.173-2.28-.373a5.023 5.023 0 0 1-.553-.426l-7.397-6.544c-1.158-1.026-1.999-2.625-2.143-4.076a9.624 9.624 0 0 0-.027-.238 4.241 4.241 0 0 1-.038-.564v-.82l-6.68-3.856.117-.202 6.738 3.89.058.034v.954c0 .171.012.351.036.533.011.083.021.165.029.246.138 1.395.948 2.935 2.065 3.923l7.397 6.545c.173.153.35.289.527.406.758.499 1.504.63 2.047.359.49-.243.786-.795.834-1.551.05-.778.057-1.591.024-2.417l-.004-.163v-1.355l.175.1 25.987 15.004.059.033v54.068c0 .569-.198.996-.559 1.204a1.002 1.002 0 0 1-.506.131' fill='#607D8B'/><path d='M145.685 163.161l24.115 13.922-25.978 14.998-1.462-.307c-6.534-2.17-13.628-3.728-21.019-4.616-4.365-.524-8.663 1.096-9.598 3.62a2.746 2.746 0 0 0-.011 1.928c1.538 4.267 4.236 8.363 7.995 12.135l.532.845-25.977 14.997-24.115-13.922 75.518-43.6' fill='#FFF'/><path d='M94.282 220.818l-.059-.033-24.29-14.024.175-.101 75.577-43.634.058.033 24.29 14.024-26.191 15.122-.045-.01-1.461-.307c-6.549-2.174-13.613-3.725-21.009-4.614a13.744 13.744 0 0 0-1.638-.097c-3.758 0-7.054 1.531-7.837 3.642a2.62 2.62 0 0 0-.01 1.848c1.535 4.258 4.216 8.326 7.968 12.091l.016.021.526.835.006.01.064.102-.105.061-25.977 14.998-.058.033zm-23.881-14.057l23.881 13.788 24.802-14.32c.546-.315.846-.489 1.017-.575l-.466-.74c-3.771-3.787-6.467-7.881-8.013-12.168a2.851 2.851 0 0 1 .011-2.008c.815-2.199 4.203-3.795 8.056-3.795.557 0 1.117.033 1.666.099 7.412.891 14.491 2.445 21.041 4.621.836.175 1.215.254 1.39.304l25.78-14.884-23.881-13.788-75.284 43.466z' fill='#607D8B'/><path d='M167.23 125.979v50.871l-27.321 15.773-6.461-14.167c-.91-1.996-3.428-1.738-5.624.574a10.238 10.238 0 0 0-2.33 4.018l-6.46 21.628-27.322 15.774v-50.871l75.518-43.6' fill='#FFF'/><path d='M91.712 220.567a.127.127 0 0 1-.059-.016.118.118 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.519-43.6a.117.117 0 0 1 .175.101v50.871c0 .041-.023.08-.059.1l-27.321 15.775a.118.118 0 0 1-.094.01.12.12 0 0 1-.071-.063l-6.46-14.168c-.375-.822-1.062-1.275-1.934-1.275-1.089 0-2.364.686-3.5 1.881a10.206 10.206 0 0 0-2.302 3.972l-6.46 21.627a.118.118 0 0 1-.054.068L91.77 220.551a.12.12 0 0 1-.058.016zm.117-50.92v50.601l27.106-15.65 6.447-21.583a10.286 10.286 0 0 1 2.357-4.065c1.18-1.242 2.517-1.954 3.669-1.954.969 0 1.731.501 2.146 1.411l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M168.543 126.213v50.87l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.624.574a10.248 10.248 0 0 0-2.33 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6' fill='#FFF'/><path d='M93.025 220.8a.123.123 0 0 1-.059-.015.12.12 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.518-43.6a.112.112 0 0 1 .117 0c.036.02.059.059.059.1v50.871a.116.116 0 0 1-.059.101l-27.321 15.774a.111.111 0 0 1-.094.01.115.115 0 0 1-.071-.062l-6.46-14.168c-.375-.823-1.062-1.275-1.935-1.275-1.088 0-2.363.685-3.499 1.881a10.19 10.19 0 0 0-2.302 3.971l-6.461 21.628a.108.108 0 0 1-.053.067l-27.322 15.775a.12.12 0 0 1-.058.015zm.117-50.919v50.6l27.106-15.649 6.447-21.584a10.293 10.293 0 0 1 2.357-4.065c1.179-1.241 2.516-1.954 3.668-1.954.969 0 1.732.502 2.147 1.412l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M169.8 177.083l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.625.574a10.246 10.246 0 0 0-2.329 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6v50.87z' fill='#FAFAFA'/><path d='M94.282 220.917a.234.234 0 0 1-.234-.233v-50.871c0-.083.045-.161.117-.202l75.518-43.601a.234.234 0 1 1 .35.202v50.871a.233.233 0 0 1-.116.202l-27.322 15.775a.232.232 0 0 1-.329-.106l-6.461-14.168c-.36-.789-.992-1.206-1.828-1.206-1.056 0-2.301.672-3.415 1.844a10.099 10.099 0 0 0-2.275 3.924l-6.46 21.628a.235.235 0 0 1-.107.136l-27.322 15.774a.23.23 0 0 1-.116.031zm.233-50.969v50.331l26.891-15.525 6.434-21.539a10.41 10.41 0 0 1 2.384-4.112c1.201-1.265 2.569-1.991 3.753-1.991 1.018 0 1.818.526 2.253 1.48l6.354 13.934 26.982-15.578v-50.331l-75.051 43.331z' fill='#607D8B'/><path d='M109.894 199.943c-1.774 0-3.241-.725-4.244-2.12a.224.224 0 0 1 .023-.294.233.233 0 0 1 .301-.023c.78.547 1.705.827 2.75.827 1.323 0 2.754-.439 4.256-1.306 5.311-3.067 9.631-10.518 9.631-16.611 0-1.927-.442-3.56-1.278-4.724a.232.232 0 0 1 .323-.327c1.671 1.172 2.591 3.381 2.591 6.219 0 6.242-4.426 13.863-9.865 17.003-1.574.908-3.084 1.356-4.488 1.356zm-2.969-1.542c.813.651 1.82.877 2.968.877h.001c1.321 0 2.753-.327 4.254-1.194 5.311-3.067 9.632-10.463 9.632-16.556 0-1.979-.463-3.599-1.326-4.761.411 1.035.625 2.275.625 3.635 0 6.243-4.426 13.883-9.865 17.023-1.574.909-3.084 1.317-4.49 1.317-.641 0-1.243-.149-1.799-.341z' fill='#607D8B'/><path d='M113.097 197.23c5.384-3.108 9.748-10.636 9.748-16.814 0-2.051-.483-3.692-1.323-4.86-1.784-1.252-4.374-1.194-7.257.47-5.384 3.108-9.748 10.636-9.748 16.814 0 2.051.483 3.692 1.323 4.86 1.784 1.252 4.374 1.194 7.257-.47' fill='#FAFAFA'/><path d='M108.724 198.614c-1.142 0-2.158-.213-3.019-.817-.021-.014-.04.014-.055-.007-.894-1.244-1.367-2.948-1.367-4.973 0-6.242 4.426-13.864 9.865-17.005 1.574-.908 3.084-1.363 4.49-1.363 1.142 0 2.158.309 3.018.913a.23.23 0 0 1 .056.056c.894 1.244 1.367 2.972 1.367 4.997 0 6.243-4.426 13.783-9.865 16.923-1.574.909-3.084 1.276-4.49 1.276zm-2.718-1.109c.774.532 1.688.776 2.718.776 1.323 0 2.754-.413 4.256-1.28 5.311-3.066 9.631-10.505 9.631-16.598 0-1.909-.434-3.523-1.255-4.685-.774-.533-1.688-.799-2.718-.799-1.323 0-2.755.441-4.256 1.308-5.311 3.066-9.631 10.506-9.631 16.599 0 1.909.434 3.517 1.255 4.679z' fill='#607D8B'/><path d='M149.318 114.262l-9.984 8.878 15.893 11.031 5.589-6.112-11.498-13.797' fill='#FAFAFA'/><path d='M169.676 120.84l-9.748 5.627c-3.642 2.103-9.528 2.113-13.147.024-3.62-2.089-3.601-5.488.041-7.591l9.495-5.608-6.729-3.885-81.836 47.071 45.923 26.514 3.081-1.779c.631-.365.869-.898.618-1.39-2.357-4.632-2.593-9.546-.683-14.262 5.638-13.92 24.509-24.815 48.618-28.07 8.169-1.103 16.68-.967 24.704.394.852.145 1.776.008 2.407-.357l3.081-1.778-25.825-14.91' fill='#FAFAFA'/><path d='M113.675 183.459a.47.47 0 0 1-.233-.062l-45.924-26.515a.468.468 0 0 1 .001-.809l81.836-47.071a.467.467 0 0 1 .466 0l6.729 3.885a.467.467 0 0 1-.467.809l-6.496-3.75-80.9 46.533 44.988 25.973 2.848-1.644c.192-.111.62-.409.435-.773-2.416-4.748-2.658-9.814-.7-14.65 2.806-6.927 8.885-13.242 17.582-18.263 8.657-4.998 19.518-8.489 31.407-10.094 8.198-1.107 16.79-.97 24.844.397.739.125 1.561.007 2.095-.301l2.381-1.374-25.125-14.506a.467.467 0 0 1 .467-.809l25.825 14.91a.467.467 0 0 1 0 .809l-3.081 1.779c-.721.417-1.763.575-2.718.413-7.963-1.351-16.457-1.486-24.563-.392-11.77 1.589-22.512 5.039-31.065 9.977-8.514 4.916-14.456 11.073-17.183 17.805-1.854 4.578-1.623 9.376.666 13.875.37.725.055 1.513-.8 2.006l-3.081 1.78a.476.476 0 0 1-.234.062' fill='#455A64'/><path d='M153.316 128.279c-2.413 0-4.821-.528-6.652-1.586-1.818-1.049-2.82-2.461-2.82-3.975 0-1.527 1.016-2.955 2.861-4.02l9.493-5.607a.233.233 0 1 1 .238.402l-9.496 5.609c-1.696.979-2.628 2.263-2.628 3.616 0 1.34.918 2.608 2.585 3.571 3.549 2.049 9.343 2.038 12.914-.024l9.748-5.628a.234.234 0 0 1 .234.405l-9.748 5.628c-1.858 1.072-4.296 1.609-6.729 1.609' fill='#607D8B'/><path d='M113.675 182.992l-45.913-26.508M113.675 183.342a.346.346 0 0 1-.175-.047l-45.913-26.508a.35.35 0 1 1 .35-.607l45.913 26.508a.35.35 0 0 1-.175.654' fill='#455A64'/><path d='M67.762 156.484v54.001c0 1.09.77 2.418 1.72 2.967l42.473 24.521c.95.549 1.72.11 1.72-.98v-54.001' fill='#FAFAFA'/><path d='M112.727 238.561c-.297 0-.62-.095-.947-.285l-42.473-24.521c-1.063-.613-1.895-2.05-1.895-3.27v-54.001a.35.35 0 1 1 .701 0v54.001c0 .96.707 2.18 1.544 2.663l42.473 24.522c.344.198.661.243.87.122.206-.119.325-.411.325-.799v-54.001a.35.35 0 1 1 .7 0v54.001c0 .655-.239 1.154-.675 1.406a1.235 1.235 0 0 1-.623.162' fill='#455A64'/><path d='M112.86 147.512h-.001c-2.318 0-4.499-.522-6.142-1.471-1.705-.984-2.643-2.315-2.643-3.749 0-1.445.952-2.791 2.68-3.788l12.041-6.953c1.668-.962 3.874-1.493 6.212-1.493 2.318 0 4.499.523 6.143 1.472 1.704.984 2.643 2.315 2.643 3.748 0 1.446-.952 2.791-2.68 3.789l-12.042 6.952c-1.668.963-3.874 1.493-6.211 1.493zm12.147-16.753c-2.217 0-4.298.497-5.861 1.399l-12.042 6.952c-1.502.868-2.33 1.998-2.33 3.182 0 1.173.815 2.289 2.293 3.142 1.538.889 3.596 1.378 5.792 1.378h.001c2.216 0 4.298-.497 5.861-1.399l12.041-6.953c1.502-.867 2.33-1.997 2.33-3.182 0-1.172-.814-2.288-2.292-3.142-1.539-.888-3.596-1.377-5.793-1.377z' fill='#607D8B'/><path d='M165.63 123.219l-5.734 3.311c-3.167 1.828-8.286 1.837-11.433.02-3.147-1.817-3.131-4.772.036-6.601l5.734-3.31 11.397 6.58' fill='#FAFAFA'/><path d='M154.233 117.448l9.995 5.771-4.682 2.704c-1.434.827-3.352 1.283-5.399 1.283-2.029 0-3.923-.449-5.333-1.263-1.29-.744-2-1.694-2-2.674 0-.991.723-1.955 2.036-2.713l5.383-3.108m0-.809l-5.734 3.31c-3.167 1.829-3.183 4.784-.036 6.601 1.568.905 3.623 1.357 5.684 1.357 2.077 0 4.159-.46 5.749-1.377l5.734-3.311-11.397-6.58M145.445 179.667c-1.773 0-3.241-.85-4.243-2.245-.067-.092-.057-.275.023-.356.08-.081.207-.12.3-.055.781.548 1.706.812 2.751.811 1.322 0 2.754-.446 4.256-1.313 5.31-3.066 9.631-10.522 9.631-16.615 0-1.927-.442-3.562-1.279-4.726a.235.235 0 0 1 .024-.301.232.232 0 0 1 .3-.027c1.67 1.172 2.59 3.38 2.59 6.219 0 6.242-4.425 13.987-9.865 17.127-1.573.908-3.083 1.481-4.488 1.481zM142.476 178c.814.651 1.82 1.002 2.969 1.002 1.322 0 2.753-.452 4.255-1.32 5.31-3.065 9.631-10.523 9.631-16.617 0-1.98-.463-3.63-1.325-4.793.411 1.035.624 2.26.624 3.62 0 6.242-4.425 13.875-9.865 17.015-1.573.909-3.084 1.376-4.489 1.376a5.49 5.49 0 0 1-1.8-.283z' fill='#607D8B'/><path d='M148.648 176.704c5.384-3.108 9.748-10.636 9.748-16.813 0-2.052-.483-3.693-1.322-4.861-1.785-1.252-4.375-1.194-7.258.471-5.383 3.108-9.748 10.636-9.748 16.813 0 2.051.484 3.692 1.323 4.86 1.785 1.253 4.374 1.195 7.257-.47' fill='#FAFAFA'/><path d='M144.276 178.276c-1.143 0-2.158-.307-3.019-.911a.217.217 0 0 1-.055-.054c-.895-1.244-1.367-2.972-1.367-4.997 0-6.241 4.425-13.875 9.865-17.016 1.573-.908 3.084-1.369 4.489-1.369 1.143 0 2.158.307 3.019.91a.24.24 0 0 1 .055.055c.894 1.244 1.367 2.971 1.367 4.997 0 6.241-4.425 13.875-9.865 17.016-1.573.908-3.084 1.369-4.489 1.369zm-2.718-1.172c.773.533 1.687.901 2.718.901 1.322 0 2.754-.538 4.256-1.405 5.31-3.066 9.631-10.567 9.631-16.661 0-1.908-.434-3.554-1.256-4.716-.774-.532-1.688-.814-2.718-.814-1.322 0-2.754.433-4.256 1.3-5.31 3.066-9.631 10.564-9.631 16.657 0 1.91.434 3.576 1.256 4.738z' fill='#607D8B'/><path d='M150.72 172.361l-.363-.295a24.105 24.105 0 0 0 2.148-3.128 24.05 24.05 0 0 0 1.977-4.375l.443.149a24.54 24.54 0 0 1-2.015 4.46 24.61 24.61 0 0 1-2.19 3.189M115.917 191.514l-.363-.294a24.174 24.174 0 0 0 2.148-3.128 24.038 24.038 0 0 0 1.976-4.375l.443.148a24.48 24.48 0 0 1-2.015 4.461 24.662 24.662 0 0 1-2.189 3.188M114 237.476V182.584 237.476' fill='#607D8B'/><g><path d='M81.822 37.474c.017-.135-.075-.28-.267-.392-.327-.188-.826-.21-1.109-.045l-6.012 3.471c-.131.076-.194.178-.191.285.002.132.002.461.002.578v.043l-.007.128-6.591 3.779c-.001 0-2.077 1.046-2.787 5.192 0 0-.912 6.961-.898 19.745.015 12.57.606 17.07 1.167 21.351.22 1.684 3.001 2.125 3.001 2.125.331.04.698-.027 1.08-.248l75.273-43.551c1.808-1.069 2.667-3.719 3.056-6.284 1.213-7.99 1.675-32.978-.275-39.878-.196-.693-.51-1.083-.868-1.282l-2.086-.79c-.727.028-1.416.467-1.534.535L82.032 37.072l-.21.402' fill='#FFF'/><path d='M144.311 1.701l2.085.79c.358.199.672.589.868 1.282 1.949 6.9 1.487 31.887.275 39.878-.39 2.565-1.249 5.215-3.056 6.284L69.21 93.486a1.78 1.78 0 0 1-.896.258l-.183-.011c0 .001-2.782-.44-3.003-2.124-.56-4.282-1.151-8.781-1.165-21.351-.015-12.784.897-19.745.897-19.745.71-4.146 2.787-5.192 2.787-5.192l6.591-3.779.007-.128v-.043c0-.117 0-.446-.002-.578-.003-.107.059-.21.191-.285l6.012-3.472a.98.98 0 0 1 .481-.11c.218 0 .449.053.627.156.193.112.285.258.268.392l.211-.402 60.744-34.836c.117-.068.806-.507 1.534-.535m0-.997l-.039.001c-.618.023-1.283.244-1.974.656l-.021.012-60.519 34.706a2.358 2.358 0 0 0-.831-.15c-.365 0-.704.084-.98.244l-6.012 3.471c-.442.255-.699.69-.689 1.166l.001.15-6.08 3.487c-.373.199-2.542 1.531-3.29 5.898l-.006.039c-.009.07-.92 7.173-.906 19.875.014 12.62.603 17.116 1.172 21.465l.002.015c.308 2.355 3.475 2.923 3.836 2.98l.034.004c.101.013.204.019.305.019a2.77 2.77 0 0 0 1.396-.392l75.273-43.552c1.811-1.071 2.999-3.423 3.542-6.997 1.186-7.814 1.734-33.096-.301-40.299-.253-.893-.704-1.527-1.343-1.882l-.132-.062-2.085-.789a.973.973 0 0 0-.353-.065' fill='#455A64'/><path d='M128.267 11.565l1.495.434-56.339 32.326' fill='#FFF'/><path d='M74.202 90.545a.5.5 0 0 1-.25-.931l18.437-10.645a.499.499 0 1 1 .499.864L74.451 90.478l-.249.067M75.764 42.654l-.108-.062.046-.171 5.135-2.964.17.045-.045.171-5.135 2.964-.063.017M70.52 90.375V46.421l.063-.036L137.84 7.554v43.954l-.062.036L70.52 90.375zm.25-43.811v43.38l66.821-38.579V7.985L70.77 46.564z' fill='#607D8B'/><path d='M86.986 83.182c-.23.149-.612.384-.849.523l-11.505 6.701c-.237.139-.206.252.068.252h.565c.275 0 .693-.113.93-.252L87.7 83.705c.237-.139.428-.253.425-.256a11.29 11.29 0 0 1-.006-.503c0-.274-.188-.377-.418-.227l-.715.463' fill='#607D8B'/><path d='M75.266 90.782H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.236-.138.615-.371.844-.519l.715-.464a.488.488 0 0 1 .266-.089c.172 0 .345.13.345.421 0 .214.001.363.003.437l.006.004-.004.069c-.003.075-.003.075-.486.356l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.108.866-.234l11.505-6.702c.168-.098.294-.173.361-.214-.004-.084-.004-.218-.004-.437l-.095-.171-.131.049-.714.463c-.232.15-.616.386-.854.525l-11.505 6.702-.029.018z' fill='#607D8B'/><path d='M75.266 89.871H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.258-.151.694-.268.993-.268h.565c.2 0 .316.056.346.166.03.11-.043.217-.215.317l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.107.866-.234l11.505-6.702.03-.018-.035-.001h-.565c-.252 0-.649.108-.867.234l-11.505 6.702-.029.018zM74.37 90.801v-1.247 1.247' fill='#607D8B'/><path d='M68.13 93.901c-.751-.093-1.314-.737-1.439-1.376-.831-4.238-1.151-8.782-1.165-21.352-.015-12.784.897-19.745.897-19.745.711-4.146 2.787-5.192 2.787-5.192l74.859-43.219c.223-.129 2.487-1.584 3.195.923 1.95 6.9 1.488 31.887.275 39.878-.389 2.565-1.248 5.215-3.056 6.283L69.21 93.653c-.382.221-.749.288-1.08.248 0 0-2.781-.441-3.001-2.125-.561-4.281-1.152-8.781-1.167-21.351-.014-12.784.898-19.745.898-19.745.71-4.146 2.787-5.191 2.787-5.191l6.598-3.81.871-.119 6.599-3.83.046-.461L68.13 93.901' fill='#FAFAFA'/><path d='M68.317 94.161l-.215-.013h-.001l-.244-.047c-.719-.156-2.772-.736-2.976-2.292-.568-4.34-1.154-8.813-1.168-21.384-.014-12.654.891-19.707.9-19.777.725-4.231 2.832-5.338 2.922-5.382l6.628-3.827.87-.119 6.446-3.742.034-.334a.248.248 0 0 1 .273-.223.248.248 0 0 1 .223.272l-.059.589-6.752 3.919-.87.118-6.556 3.785c-.031.016-1.99 1.068-2.666 5.018-.007.06-.908 7.086-.894 19.702.014 12.539.597 16.996 1.161 21.305.091.691.689 1.154 1.309 1.452a1.95 1.95 0 0 1-.236-.609c-.781-3.984-1.155-8.202-1.17-21.399-.014-12.653.891-19.707.9-19.777.725-4.231 2.832-5.337 2.922-5.382-.004.001 74.444-42.98 74.846-43.212l.028-.017c.904-.538 1.72-.688 2.36-.433.555.221.949.733 1.172 1.52 2.014 7.128 1.46 32.219.281 39.983-.507 3.341-1.575 5.515-3.175 6.462L69.335 93.869a2.023 2.023 0 0 1-1.018.292zm-.147-.507c.293.036.604-.037.915-.217l75.273-43.551c1.823-1.078 2.602-3.915 2.934-6.106 1.174-7.731 1.731-32.695-.268-39.772-.178-.631-.473-1.032-.876-1.192-.484-.193-1.166-.052-1.921.397l-.034.021-74.858 43.218c-.031.017-1.989 1.069-2.666 5.019-.007.059-.908 7.085-.894 19.702.015 13.155.386 17.351 1.161 21.303.09.461.476.983 1.037 1.139.114.025.185.037.196.039h.001z' fill='#455A64'/><path d='M69.317 68.982c.489-.281.885-.056.885.505 0 .56-.396 1.243-.885 1.525-.488.282-.884.057-.884-.504 0-.56.396-1.243.884-1.526' fill='#FFF'/><path d='M68.92 71.133c-.289 0-.487-.228-.487-.625 0-.56.396-1.243.884-1.526a.812.812 0 0 1 .397-.121c.289 0 .488.229.488.626 0 .56-.396 1.243-.885 1.525a.812.812 0 0 1-.397.121m.794-2.459a.976.976 0 0 0-.49.147c-.548.317-.978 1.058-.978 1.687 0 .486.271.812.674.812a.985.985 0 0 0 .491-.146c.548-.317.978-1.057.978-1.687 0-.486-.272-.813-.675-.813' fill='#8097A2'/><path d='M68.92 70.947c-.271 0-.299-.307-.299-.439 0-.491.361-1.116.79-1.363a.632.632 0 0 1 .303-.096c.272 0 .301.306.301.438 0 .491-.363 1.116-.791 1.364a.629.629 0 0 1-.304.096m.794-2.086a.812.812 0 0 0-.397.121c-.488.283-.884.966-.884 1.526 0 .397.198.625.487.625a.812.812 0 0 0 .397-.121c.489-.282.885-.965.885-1.525 0-.397-.199-.626-.488-.626' fill='#8097A2'/><path d='M69.444 85.35c.264-.152.477-.031.477.272 0 .303-.213.67-.477.822-.263.153-.477.031-.477-.271 0-.302.214-.671.477-.823' fill='#FFF'/><path d='M69.23 86.51c-.156 0-.263-.123-.263-.337 0-.302.214-.671.477-.823a.431.431 0 0 1 .214-.066c.156 0 .263.124.263.338 0 .303-.213.67-.477.822a.431.431 0 0 1-.214.066m.428-1.412c-.1 0-.203.029-.307.09-.32.185-.57.618-.57.985 0 .309.185.524.449.524a.63.63 0 0 0 .308-.09c.32-.185.57-.618.57-.985 0-.309-.185-.524-.45-.524' fill='#8097A2'/><path d='M69.23 86.322l-.076-.149c0-.235.179-.544.384-.661l.12-.041.076.151c0 .234-.179.542-.383.66l-.121.04m.428-1.038a.431.431 0 0 0-.214.066c-.263.152-.477.521-.477.823 0 .214.107.337.263.337a.431.431 0 0 0 .214-.066c.264-.152.477-.519.477-.822 0-.214-.107-.338-.263-.338' fill='#8097A2'/><path d='M139.278 7.769v43.667L72.208 90.16V46.493l67.07-38.724' fill='#455A64'/><path d='M72.083 90.375V46.421l.063-.036 67.257-38.831v43.954l-.062.036-67.258 38.831zm.25-43.811v43.38l66.821-38.579V7.985L72.333 46.564z' fill='#607D8B'/></g><path d='M125.737 88.647l-7.639 3.334V84l-11.459 4.713v8.269L99 100.315l13.369 3.646 13.368-15.314' fill='#455A64'/></g></svg>")};var ae="CardboardV1",oe="WEBVR_CARDBOARD_VIEWER";function le(e){try{this.selectedKey=localStorage.getItem(oe)}catch(e){console.error("Failed to load viewer profile: %s",e)}this.selectedKey||(this.selectedKey=e||ae),this.dialog=this.createDialog_(W.Viewers),this.root=null,this.onChangeCallbacks_=[]}le.prototype.show=function(e){this.root=e,e.appendChild(this.dialog);var t=this.dialog.querySelector("#"+this.selectedKey);t.checked=!0,this.dialog.style.display="block"},le.prototype.hide=function(){this.root&&this.root.contains(this.dialog)&&this.root.removeChild(this.dialog),this.dialog.style.display="none"},le.prototype.getCurrentViewer=function(){return W.Viewers[this.selectedKey]},le.prototype.getSelectedKey_=function(){var e=this.dialog.querySelector("input[name=field]:checked");return e?e.id:null},le.prototype.onChange=function(e){this.onChangeCallbacks_.push(e)},le.prototype.fireOnChange_=function(e){for(var t=0;t<this.onChangeCallbacks_.length;t++)this.onChangeCallbacks_[t](e)},le.prototype.onSave_=function(){if(this.selectedKey=this.getSelectedKey_(),this.selectedKey&&W.Viewers[this.selectedKey]){this.fireOnChange_(W.Viewers[this.selectedKey]);try{localStorage.setItem(oe,this.selectedKey)}catch(e){console.error("Failed to save viewer profile: %s",e)}this.hide()}else console.error("ViewerSelector.onSave_: this should never happen!")},le.prototype.createDialog_=function(e){var t=document.createElement("div");t.classList.add("webvr-polyfill-viewer-selector"),t.style.display="none";var i=document.createElement("div"),r=i.style;r.position="fixed",r.left=0,r.top=0,r.width="100%",r.height="100%",r.background="rgba(0, 0, 0, 0.3)",i.addEventListener("click",this.hide.bind(this));var n=document.createElement("div"),r=n.style;for(var s in r.boxSizing="border-box",r.position="fixed",r.top="24px",r.left="50%",r.marginLeft="-140px",r.width="280px",r.padding="24px",r.overflow="hidden",r.background="#fafafa",r.fontFamily="'Roboto', sans-serif",r.boxShadow="0px 5px 20px #666",n.appendChild(this.createH1_("Select your viewer")),e)n.appendChild(this.createChoice_(s,e[s].label));return n.appendChild(this.createButton_("Save",this.onSave_.bind(this))),t.appendChild(i),t.appendChild(n),t},le.prototype.createH1_=function(e){var t=document.createElement("h1"),i=t.style;return i.color="black",i.fontSize="20px",i.fontWeight="bold",i.marginTop=0,i.marginBottom="24px",t.innerHTML=e,t},le.prototype.createChoice_=function(e,t){var i=document.createElement("div");i.style.marginTop="8px",i.style.color="black";var r=document.createElement("input");r.style.fontSize="30px",r.setAttribute("id",e),r.setAttribute("type","radio"),r.setAttribute("value",e),r.setAttribute("name","field");var n=document.createElement("label");return n.style.marginLeft="4px",n.setAttribute("for",e),n.innerHTML=t,i.appendChild(r),i.appendChild(n),i},le.prototype.createButton_=function(e,t){var i=document.createElement("button");i.innerHTML=e;var r=i.style;return r.float="right",r.textTransform="uppercase",r.color="#1094f7",r.fontSize="14px",r.letterSpacing=0,r.border=0,r.background="none",r.marginTop="16px",i.addEventListener("click",t),i},"undefined"!=typeof window?window:void 0!==Ve||"undefined"!=typeof self&&self;var Ae,he,ce=(function(e,t){var i;i=function(){return function(e){var t={};function i(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=e,i.c=t,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=0)}([function(e,t,i){var r=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}(),n=i(1),s="undefined"!=typeof navigator&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),s?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("playsinline",""),this.noSleepVideo.setAttribute("src",n),this.noSleepVideo.addEventListener("timeupdate",function(e){this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}.bind(this)))}return r(e,[{key:"enable",value:function(){s?(this.disable(),this.noSleepTimer=window.setInterval(function(){window.location.href="/",window.setTimeout(window.stop,0)},15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){s?this.noSleepTimer&&(window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),e}();e.exports=a},function(e,t,i){e.exports="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQAD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"}])},e.exports=i()}(he={exports:{}},he.exports),(Ae=he.exports)&&Ae.__esModule&&Object.prototype.hasOwnProperty.call(Ae,"default")?Ae.default:Ae),de=1e3,ue=[0,0,.5,1],pe=[.5,0,.5,1],fe=window.requestAnimationFrame,me=window.cancelAnimationFrame;function ge(e){Object.defineProperties(this,{hasPosition:{writable:!1,enumerable:!0,value:e.hasPosition},hasExternalDisplay:{writable:!1,enumerable:!0,value:e.hasExternalDisplay},canPresent:{writable:!1,enumerable:!0,value:e.canPresent},maxLayers:{writable:!1,enumerable:!0,value:e.maxLayers},hasOrientation:{enumerable:!0,get:function(){return x("VRDisplayCapabilities.prototype.hasOrientation","VRDisplay.prototype.getFrameData"),e.hasOrientation}}})}function we(e){var t=!("wakelock"in(e=e||{}))||e.wakelock;this.isPolyfilled=!0,this.displayId=de++,this.displayName="",this.depthNear=.01,this.depthFar=1e4,this.isPresenting=!1,Object.defineProperty(this,"isConnected",{get:function(){return x("VRDisplay.prototype.isConnected","VRDisplayCapabilities.prototype.hasExternalDisplay"),!1}}),this.capabilities=new ge({hasPosition:!1,hasOrientation:!1,hasExternalDisplay:!1,canPresent:!1,maxLayers:1}),this.stageParameters=null,this.waitingForPresent_=!1,this.layer_=null,this.originalParent_=null,this.fullscreenElement_=null,this.fullscreenWrapper_=null,this.fullscreenElementCachedStyle_=null,this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null,t&&v()&&(this.wakelock_=new ce)}we.prototype.getFrameData=function(e){return E(e,this._getPose(),this)},we.prototype.getPose=function(){return x("VRDisplay.prototype.getPose","VRDisplay.prototype.getFrameData"),this._getPose()},we.prototype.resetPose=function(){return x("VRDisplay.prototype.resetPose"),this._resetPose()},we.prototype.getImmediatePose=function(){return x("VRDisplay.prototype.getImmediatePose","VRDisplay.prototype.getFrameData"),this._getPose()},we.prototype.requestAnimationFrame=function(e){return fe(e)},we.prototype.cancelAnimationFrame=function(e){return me(e)},we.prototype.wrapForFullscreen=function(e){if(o())return e;if(!this.fullscreenWrapper_){this.fullscreenWrapper_=document.createElement("div");var t=["height: "+Math.min(screen.height,screen.width)+"px !important","top: 0 !important","left: 0 !important","right: 0 !important","border: 0","margin: 0","padding: 0","z-index: 999999 !important","position: fixed"];this.fullscreenWrapper_.setAttribute("style",t.join("; ")+";"),this.fullscreenWrapper_.classList.add("webvr-polyfill-fullscreen-wrapper")}if(this.fullscreenElement_==e)return this.fullscreenWrapper_;if(this.fullscreenElement_&&(this.originalParent_?this.originalParent_.appendChild(this.fullscreenElement_):this.fullscreenElement_.parentElement.removeChild(this.fullscreenElement_)),this.fullscreenElement_=e,this.originalParent_=e.parentElement,this.originalParent_||document.body.appendChild(e),!this.fullscreenWrapper_.parentElement){var i=this.fullscreenElement_.parentElement;i.insertBefore(this.fullscreenWrapper_,this.fullscreenElement_),i.removeChild(this.fullscreenElement_)}this.fullscreenWrapper_.insertBefore(this.fullscreenElement_,this.fullscreenWrapper_.firstChild),this.fullscreenElementCachedStyle_=this.fullscreenElement_.getAttribute("style");var r=this;return function(){if(r.fullscreenElement_){var e=["position: absolute","top: 0","left: 0","width: "+Math.max(screen.width,screen.height)+"px","height: "+Math.min(screen.height,screen.width)+"px","border: 0","margin: 0","padding: 0"];r.fullscreenElement_.setAttribute("style",e.join("; ")+";")}}(),this.fullscreenWrapper_},we.prototype.removeFullscreenWrapper=function(){if(this.fullscreenElement_){var e=this.fullscreenElement_;this.fullscreenElementCachedStyle_?e.setAttribute("style",this.fullscreenElementCachedStyle_):e.removeAttribute("style"),this.fullscreenElement_=null,this.fullscreenElementCachedStyle_=null;var t=this.fullscreenWrapper_.parentElement;return this.fullscreenWrapper_.removeChild(e),this.originalParent_===t?t.insertBefore(e,this.fullscreenWrapper_):this.originalParent_&&this.originalParent_.appendChild(e),t.removeChild(this.fullscreenWrapper_),e}},we.prototype.requestPresent=function(e){var t=this.isPresenting,i=this;return e instanceof Array||(x("VRDisplay.prototype.requestPresent with non-array argument","an array of VRLayers as the first argument"),e=[e]),new Promise(function(r,n){if(i.capabilities.canPresent)if(0==e.length||e.length>i.capabilities.maxLayers)n(new Error("Invalid number of layers."));else{var s=e[0];if(s.source){var a=s.leftBounds||ue,A=s.rightBounds||pe;if(t){var h=i.layer_;h.source!==s.source&&(h.source=s.source);for(var c=0;c<4;c++)h.leftBounds[c]=a[c],h.rightBounds[c]=A[c];return i.wrapForFullscreen(i.layer_.source),i.updatePresent_(),void r()}if(i.layer_={predistorted:s.predistorted,source:s.source,leftBounds:a.slice(0),rightBounds:A.slice(0)},i.waitingForPresent_=!1,i.layer_&&i.layer_.source){var d=i.wrapForFullscreen(i.layer_.source);i.addFullscreenListeners_(d,function(){var e=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement;i.isPresenting=d===e,i.isPresenting?(screen.orientation&&screen.orientation.lock&&screen.orientation.lock("landscape-primary").catch(function(e){console.error("screen.orientation.lock() failed due to",e.message)}),i.waitingForPresent_=!1,i.beginPresent_(),r()):(screen.orientation&&screen.orientation.unlock&&screen.orientation.unlock(),i.removeFullscreenWrapper(),i.disableWakeLock(),i.endPresent_(),i.removeFullscreenListeners_()),i.fireVRDisplayPresentChange_()},function(){i.waitingForPresent_&&(i.removeFullscreenWrapper(),i.removeFullscreenListeners_(),i.disableWakeLock(),i.waitingForPresent_=!1,i.isPresenting=!1,n(new Error("Unable to present.")))}),function(e){if(l())return!1;if(e.requestFullscreen)e.requestFullscreen();else if(e.webkitRequestFullscreen)e.webkitRequestFullscreen();else if(e.mozRequestFullScreen)e.mozRequestFullScreen();else{if(!e.msRequestFullscreen)return!1;e.msRequestFullscreen()}return!0}(d)?(i.enableWakeLock(),i.waitingForPresent_=!0):(o()||l())&&(i.enableWakeLock(),i.isPresenting=!0,i.beginPresent_(),i.fireVRDisplayPresentChange_(),r())}i.waitingForPresent_||o()||(m(),n(new Error("Unable to present.")))}else r()}else n(new Error("VRDisplay is not capable of presenting."))})},we.prototype.exitPresent=function(){var e=this.isPresenting,t=this;return this.isPresenting=!1,this.layer_=null,this.disableWakeLock(),new Promise(function(i,r){e?(!m()&&o()&&(t.endPresent_(),t.fireVRDisplayPresentChange_()),l()&&(t.removeFullscreenWrapper(),t.removeFullscreenListeners_(),t.endPresent_(),t.fireVRDisplayPresentChange_()),i()):r(new Error("Was not presenting to VRDisplay."))})},we.prototype.getLayers=function(){return this.layer_?[this.layer_]:[]},we.prototype.fireVRDisplayPresentChange_=function(){var e=new CustomEvent("vrdisplaypresentchange",{detail:{display:this}});window.dispatchEvent(e)},we.prototype.fireVRDisplayConnect_=function(){var e=new CustomEvent("vrdisplayconnect",{detail:{display:this}});window.dispatchEvent(e)},we.prototype.addFullscreenListeners_=function(e,t,i){this.removeFullscreenListeners_(),this.fullscreenEventTarget_=e,this.fullscreenChangeHandler_=t,this.fullscreenErrorHandler_=i,t&&(document.fullscreenEnabled?e.addEventListener("fullscreenchange",t,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenchange",t,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenchange",t,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenchange",t,!1)),i&&(document.fullscreenEnabled?e.addEventListener("fullscreenerror",i,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenerror",i,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenerror",i,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenerror",i,!1))},we.prototype.removeFullscreenListeners_=function(){if(this.fullscreenEventTarget_){var e=this.fullscreenEventTarget_;if(this.fullscreenChangeHandler_){var t=this.fullscreenChangeHandler_;e.removeEventListener("fullscreenchange",t,!1),e.removeEventListener("webkitfullscreenchange",t,!1),document.removeEventListener("mozfullscreenchange",t,!1),e.removeEventListener("msfullscreenchange",t,!1)}if(this.fullscreenErrorHandler_){var i=this.fullscreenErrorHandler_;e.removeEventListener("fullscreenerror",i,!1),e.removeEventListener("webkitfullscreenerror",i,!1),document.removeEventListener("mozfullscreenerror",i,!1),e.removeEventListener("msfullscreenerror",i,!1)}this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null}},we.prototype.enableWakeLock=function(){this.wakelock_&&this.wakelock_.enable()},we.prototype.disableWakeLock=function(){this.wakelock_&&this.wakelock_.disable()},we.prototype.beginPresent_=function(){},we.prototype.endPresent_=function(){},we.prototype.submitFrame=function(e){},we.prototype.getEyeParameters=function(e){return null};var ve={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1},ye={LEFT:"left",RIGHT:"right"};function be(e){var t=y({},ve);e=y(t,e||{}),we.call(this,{wakelock:e.MOBILE_WAKE_LOCK}),this.config=e,this.displayName="Cardboard VRDisplay",this.capabilities=new ge({hasPosition:!1,hasOrientation:!0,hasExternalDisplay:!1,canPresent:!0,maxLayers:1}),this.stageParameters=null,this.bufferScale_=this.config.BUFFER_SCALE,this.poseSensor_=new ne(this.config),this.distorter_=null,this.cardboardUI_=null,this.dpdb_=new Z(this.config.DPDB_URL,this.onDeviceParamsUpdated_.bind(this)),this.deviceInfo_=new W(this.dpdb_.getDeviceParams(),e.ADDITIONAL_VIEWERS),this.viewerSelector_=new le(e.DEFAULT_VIEWER),this.viewerSelector_.onChange(this.onViewerChanged_.bind(this)),this.deviceInfo_.setViewer(this.viewerSelector_.getCurrentViewer()),this.config.ROTATE_INSTRUCTIONS_DISABLED||(this.rotateInstructions_=new se),o()&&window.addEventListener("resize",this.onResize_.bind(this))}return be.prototype=Object.create(we.prototype),be.prototype._getPose=function(){return{position:null,orientation:this.poseSensor_.getOrientation(),linearVelocity:null,linearAcceleration:null,angularVelocity:null,angularAcceleration:null}},be.prototype._resetPose=function(){this.poseSensor_.resetPose&&this.poseSensor_.resetPose()},be.prototype._getFieldOfView=function(e){var t;if(e==ye.LEFT)t=this.deviceInfo_.getFieldOfViewLeftEye();else{if(e!=ye.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=this.deviceInfo_.getFieldOfViewRightEye()}return t},be.prototype._getEyeOffset=function(e){var t;if(e==ye.LEFT)t=[.5*-this.deviceInfo_.viewer.interLensDistance,0,0];else{if(e!=ye.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=[.5*this.deviceInfo_.viewer.interLensDistance,0,0]}return t},be.prototype.getEyeParameters=function(e){var t=this._getEyeOffset(e),i=this._getFieldOfView(e),r={offset:t,renderWidth:.5*this.deviceInfo_.device.width*this.bufferScale_,renderHeight:this.deviceInfo_.device.height*this.bufferScale_};return Object.defineProperty(r,"fieldOfView",{enumerable:!0,get:function(){return x("VRFieldOfView","VRFrameData's projection matrices"),i}}),r},be.prototype.onDeviceParamsUpdated_=function(e){this.config.DEBUG&&console.log("DPDB reported that device params were updated."),this.deviceInfo_.updateDeviceParams(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_)},be.prototype.updateBounds_=function(){this.layer_&&this.distorter_&&(this.layer_.leftBounds||this.layer_.rightBounds)&&this.distorter_.setTextureBounds(this.layer_.leftBounds,this.layer_.rightBounds)},be.prototype.beginPresent_=function(){var e=this.layer_.source.getContext("webgl");e||(e=this.layer_.source.getContext("experimental-webgl")),e||(e=this.layer_.source.getContext("webgl2")),e&&(this.layer_.predistorted?this.config.CARDBOARD_UI_DISABLED||(e.canvas.width=p()*this.bufferScale_,e.canvas.height=f()*this.bufferScale_,this.cardboardUI_=new I(e)):(this.config.CARDBOARD_UI_DISABLED||(this.cardboardUI_=new I(e)),this.distorter_=new T(e,this.cardboardUI_,this.config.BUFFER_SCALE,this.config.DIRTY_SUBMIT_FRAME_BINDINGS),this.distorter_.updateDeviceInfo(this.deviceInfo_)),this.cardboardUI_&&this.cardboardUI_.listen(function(e){this.viewerSelector_.show(this.layer_.source.parentElement),e.stopPropagation(),e.preventDefault()}.bind(this),function(e){this.exitPresent(),e.stopPropagation(),e.preventDefault()}.bind(this)),this.rotateInstructions_&&(u()&&v()?this.rotateInstructions_.showTemporarily(3e3,this.layer_.source.parentElement):this.rotateInstructions_.update()),this.orientationHandler=this.onOrientationChange_.bind(this),window.addEventListener("orientationchange",this.orientationHandler),this.vrdisplaypresentchangeHandler=this.updateBounds_.bind(this),window.addEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler),this.fireVRDisplayDeviceParamsChange_())},be.prototype.endPresent_=function(){this.distorter_&&(this.distorter_.destroy(),this.distorter_=null),this.cardboardUI_&&(this.cardboardUI_.destroy(),this.cardboardUI_=null),this.rotateInstructions_&&this.rotateInstructions_.hide(),this.viewerSelector_.hide(),window.removeEventListener("orientationchange",this.orientationHandler),window.removeEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler)},be.prototype.updatePresent_=function(){this.endPresent_(),this.beginPresent_()},be.prototype.submitFrame=function(e){if(this.distorter_)this.updateBounds_(),this.distorter_.submitFrame();else if(this.cardboardUI_&&this.layer_){var t=this.layer_.source.getContext("webgl").canvas;t.width==this.lastWidth&&t.height==this.lastHeight||this.cardboardUI_.onResize(),this.lastWidth=t.width,this.lastHeight=t.height,this.cardboardUI_.render()}},be.prototype.onOrientationChange_=function(e){this.viewerSelector_.hide(),this.rotateInstructions_&&this.rotateInstructions_.update(),this.onResize_()},be.prototype.onResize_=function(e){if(this.layer_){var t=this.layer_.source.getContext("webgl");t.canvas.setAttribute("style",["position: absolute","top: 0","left: 0","width: 100vw","height: 100vh","border: 0","margin: 0","padding: 0px","box-sizing: content-box"].join("; ")+";"),b(t.canvas)}},be.prototype.onViewerChanged_=function(e){this.deviceInfo_.setViewer(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_),this.fireVRDisplayDeviceParamsChange_()},be.prototype.fireVRDisplayDeviceParamsChange_=function(){var e=new CustomEvent("vrdisplaydeviceparamschange",{detail:{vrdisplay:this,deviceInfo:this.deviceInfo_}});window.dispatchEvent(e)},be.VRFrameData=function(){this.leftProjectionMatrix=new Float32Array(16),this.leftViewMatrix=new Float32Array(16),this.rightProjectionMatrix=new Float32Array(16),this.rightViewMatrix=new Float32Array(16),this.pose=null},be.VRDisplay=we,be}()}(ze={exports:{}},ze.exports),ze.exports),Xe=(Ue=He)&&Ue.__esModule&&Object.prototype.hasOwnProperty.call(Ue,"default")?Ue.default:Ue;class We extends i{constructor(e){super(),this.global=e,this.onWindowResize=this.onWindowResize.bind(this),this.global.window.addEventListener("resize",this.onWindowResize),this.environmentBlendMode="opaque"}get depthNear(){throw new Error("Not implemented")}set depthNear(e){throw new Error("Not implemented")}get depthFar(){throw new Error("Not implemented")}set depthFar(e){throw new Error("Not implemented")}onBaseLayerSet(e,t){throw new Error("Not implemented")}onInlineVerticalFieldOfViewSet(e,t){throw new Error("Not implemented")}supportsSession(e){throw new Error("Not implemented")}async requestSession(e){throw new Error("Not implemented")}requestAnimationFrame(e){throw new Error("Not implemented")}onFrameStart(e){throw new Error("Not implemented")}onFrameEnd(e){throw new Error("Not implemented")}requestStageBounds(){throw new Error("Not implemented")}async requestFrameOfReferenceTransform(e,t){}cancelAnimationFrame(e){throw new Error("Not implemented")}endSession(e){throw new Error("Not implemented")}getViewport(e,t,i,r){throw new Error("Not implemented")}getProjectionMatrix(e){throw new Error("Not implemented")}getBasePoseMatrix(){throw new Error("Not implemented")}getBaseViewMatrix(e){throw new Error("Not implemented")}getInputSources(){throw new Error("Not implemented")}getInputPose(e,t,i){throw new Error("Not implemented")}onWindowResize(){this.onWindowResize()}}let je={mapping:"xr-standard",id:"oculus-touch",buttons:{length:6,0:1,1:0,2:2,3:null,4:3,5:4},gripTransform:{position:[0,-.02,.04,1],orientation:[.11*Math.PI,0,0,1]}},Ye={mapping:"xr-standard",id:"windows-mixed-reality",buttons:{length:4,0:1,1:0,2:2,3:4},gripTransform:{position:[0,-.02,.04,1],orientation:[.11*Math.PI,0,0,1]}},Ze={"Oculus Touch (Right)":je,"Oculus Touch (Left)":je,"Oculus Go Controller":{mapping:"xr-standard",id:"oculus-go",buttons:{0:1,1:0},gripTransform:{orientation:[.11*Math.PI,0,0,1]}},"Windows Mixed Reality (Right)":Ye,"Windows Mixed Reality (Left)":Ye};const qe=E(.155,-.465,-.15),Je=E(-.155,-.465,-.15),Ke=E(0,0,-.25),$e=E(0,0,.05),et=E(-.08,.14,.08),tt=.4,it=.4,rt=.61,nt=.175,st=.12,at=.87,ot=180/Math.PI;class lt{constructor(){this.hand="right",this.headElbowOffset=qe,this.controllerQ=C(),this.lastControllerQ=C(),this.headQ=C(),this.headPos=y(),this.elbowPos=y(),this.wristPos=y(),this.time=null,this.lastTime=null,this.rootQ=C(),this.position=y()}setHandedness(e){this.hand!=e&&(this.hand=e,"left"==this.hand?this.headElbowOffset=Je:this.headElbowOffset=qe)}update(e,t){this.time=o(),e&&(Q(this.lastControllerQ,this.controllerQ),Q(this.controllerQ,e)),t&&(w(this.headPos,t),v(this.headQ,t));let i=this.getHeadYawOrientation_(),r=this.quatAngle_(this.lastControllerQ,this.controllerQ);r/((this.time-this.lastTime)/1e3)>rt?D(this.rootQ,this.rootQ,i,Math.min(r/nt,1)):Q(this.rootQ,i);let n=E(0,0,-1);T(n,n,this.controllerQ);let s=S(n,[0,1,0]),a=this.clamp_((s-st)/at,0,1),l=L(this.rootQ);I(l,l),P(l,l,this.controllerQ);let A=this.elbowPos;M(A,this.headPos),_(A,A,this.headElbowOffset);let h=b(et);x(h,h,a),_(A,A,h);let c=this.quatAngle_(l,C())*ot,d=(1-Math.pow(c/180,4))*(tt+(1-tt)*a*it),u=C();D(u,u,l,d);let p=I(C(),u),f=L(l);P(f,f,p);let m=this.wristPos;M(m,$e),T(m,m,u),_(m,m,Ke),T(m,m,f),_(m,m,A);let g=b(et);x(g,g,a),_(this.position,this.wristPos,g),T(this.position,this.position,this.rootQ),this.lastTime=this.time}getPosition(){return this.position}getHeadYawOrientation_(){let e=y();return function(e,t,i){function r(e,t,i){return e<t?t:e>i?i:e}var n=t[0]*t[0],s=t[1]*t[1],a=t[2]*t[2],o=t[3]*t[3];if("XYZ"===i)e[0]=Math.atan2(2*(t[0]*t[3]-t[1]*t[2]),o-n-s+a),e[1]=Math.asin(r(2*(t[0]*t[2]+t[1]*t[3]),-1,1)),e[2]=Math.atan2(2*(t[2]*t[3]-t[0]*t[1]),o+n-s-a);else if("YXZ"===i)e[0]=Math.asin(r(2*(t[0]*t[3]-t[1]*t[2]),-1,1)),e[1]=Math.atan2(2*(t[0]*t[2]+t[1]*t[3]),o-n-s+a),e[2]=Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),o-n+s-a);else if("ZXY"===i)e[0]=Math.asin(r(2*(t[0]*t[3]+t[1]*t[2]),-1,1)),e[1]=Math.atan2(2*(t[1]*t[3]-t[2]*t[0]),o-n-s+a),e[2]=Math.atan2(2*(t[2]*t[3]-t[0]*t[1]),o-n+s-a);else if("ZYX"===i)e[0]=Math.atan2(2*(t[0]*t[3]+t[2]*t[1]),o-n-s+a),e[1]=Math.asin(r(2*(t[1]*t[3]-t[0]*t[2]),-1,1)),e[2]=Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),o+n-s-a);else if("YZX"===i)e[0]=Math.atan2(2*(t[0]*t[3]-t[2]*t[1]),o-n+s-a),e[1]=Math.atan2(2*(t[1]*t[3]-t[0]*t[2]),o+n-s-a),e[2]=Math.asin(r(2*(t[0]*t[1]+t[2]*t[3]),-1,1));else{if("XZY"!==i)return void console.log("No order given for quaternion to euler conversion.");e[0]=Math.atan2(2*(t[0]*t[3]+t[1]*t[2]),o-n+s-a),e[1]=Math.atan2(2*(t[0]*t[2]+t[1]*t[3]),o+n-s-a),e[2]=Math.asin(r(2*(t[2]*t[3]-t[0]*t[1]),-1,1))}}(e,this.headQ,"YXZ"),function(e,t,i,r){let n=.5*Math.PI/180;t*=n,i*=n,r*=n;let s=Math.sin(t),a=Math.cos(t),o=Math.sin(i),l=Math.cos(i),A=Math.sin(r),h=Math.cos(r);return e[0]=s*l*h-a*o*A,e[1]=a*o*h+s*l*A,e[2]=a*l*A-s*o*h,e[3]=a*l*h+s*o*A,e}(C(),0,e[1]*ot,0)}clamp_(e,t,i){return Math.min(Math.max(e,t),i)}quatAngle_(e,t){let i=[0,0,-1],r=[0,0,-1];return T(i,i,e),T(r,r,t),function(e,t){let i=E(e[0],e[1],e[2]),r=E(t[0],t[1],t[2]);F(i,i),F(r,r);let n=S(i,r);return n>1?0:n<-1?Math.PI:Math.acos(n)}(i,r)}}const At=Symbol("@@webxr-polyfill/XRRemappedGamepad"),ht={pressed:!1,touched:!1,value:0};Object.freeze(ht);class ct{constructor(e,t){t||(t={});let i=new Array(t.axes?t.axes.length:e.axes.length),r=new Array(t.buttons?t.buttons.length:e.buttons.length),n=null;if(t.gripTransform){let e=t.gripTransform.orientation||[0,0,0,1];g(n=d(),N(e,e),t.gripTransform.position||[0,0,0])}let s=null;if(t.targetRayTransform){let e=t.targetRayTransform.orientation||[0,0,0,1];g(s=d(),N(e,e),t.targetRayTransform.position||[0,0,0])}this[At]={gamepad:e,map:t,id:t.id||e.id,mapping:t.mapping||e.mapping,axes:i,buttons:r,gripTransform:n,targetRayTransform:s},this._update()}_update(){let e=this[At].gamepad,t=this[At].map,i=this[At].axes;for(let r=0;r<i.length;++r)t.axes&&r in t.axes?null===t.axes[r]?i[r]=0:i[r]=e.axes[t.axes[r]]:i[r]=e.axes[r];let r=this[At].buttons;for(let i=0;i<r.length;++i)t.buttons&&i in t.buttons?null===t.buttons[i]?r[i]=ht:r[i]=e.buttons[t.buttons[i]]:r[i]=e.buttons[i]}get id(){return this[At].id}get index(){return 0}get connected(){return this[At].gamepad.connected}get timestamp(){return this[At].gamepad.timestamp}get mapping(){return this[At].mapping}get axes(){return this[At].axes}get buttons(){return this[At].buttons}}class dt{constructor(e,t=0){this.polyfill=e,this.nativeGamepad=null,this.gamepad=null,this.inputSource=new Ce(this),this.lastPosition=y(),this.emulatedPosition=!1,this.basePoseMatrix=d(),this.outputMatrix=d(),this.inputPoses=new WeakMap,this.primaryButtonIndex=t,this.primaryActionPressed=!1,this.handedness="",this.targetRayMode="gaze",this.armModel=null}updateFromGamepad(e){this.nativeGamepad!==e&&(this.nativeGamepad=e,this.gamepad=e?new ct(e,Ze[e.id]):null),this.handedness=e.hand,this.gamepad&&this.gamepad._update(),e.pose?(this.targetRayMode="tracked-pointer",this.emulatedPosition=!e.pose.hasPosition):""===e.hand&&(this.targetRayMode="gaze",this.emulatedPosition=!1)}updateBasePoseMatrix(){if(this.nativeGamepad&&this.nativeGamepad.pose){let e=this.nativeGamepad.pose,t=e.position,i=e.orientation;if(!t&&!i)return;t?(this.lastPosition[0]=t[0],this.lastPosition[1]=t[1],this.lastPosition[2]=t[2]):e.hasPosition?t=this.lastPosition:(this.armModel||(this.armModel=new lt),this.armModel.setHandedness(this.nativeGamepad.hand),this.armModel.update(i,this.polyfill.getBasePoseMatrix()),t=this.armModel.getPosition()),g(this.basePoseMatrix,i,t)}else u(this.basePoseMatrix,this.polyfill.getBasePoseMatrix());return this.basePoseMatrix}getXRPose(e,t){switch(this.updateBasePoseMatrix(),t){case"target-ray":e.transformBasePoseMatrix(this.outputMatrix,this.basePoseMatrix),this.gamepad&&this.gamepad[At].targetRayTransform&&m(this.outputMatrix,this.outputMatrix,this.gamepad[At].targetRayTransform);break;case"grip":if(!this.nativeGamepad||!this.nativeGamepad.pose)return null;e.transformBasePoseMatrix(this.outputMatrix,this.basePoseMatrix),this.gamepad&&this.gamepad[At].gripTransform&&m(this.outputMatrix,this.outputMatrix,this.gamepad[At].gripTransform);break;default:return null}return e._adjustForOriginOffset(this.outputMatrix),new XRPose(new XRRigidTransform(this.outputMatrix),this.emulatedPosition)}}const ut=!1,pt={highRefreshRate:!0},ft={oculus:1,openvr:1,"spatial controller (spatial interaction source)":1};let mt=0;class gt{constructor(e,t={}){if(this.mode=e,this.outputContext=null,this.immersive="immersive-vr"==e||"immersive-ar"==e,this.ended=null,this.baseLayer=null,this.inlineVerticalFieldOfView=.5*Math.PI,this.id=++mt,this.modifiedCanvasLayer=!1,this.outputContext&&!ut){const e=t.renderContextType||"2d";this.renderContext=this.outputContext.canvas.getContext(e)}}}class wt extends We{constructor(e,t){const{canPresent:i}=t.capabilities;super(e),this.display=t,this.frame=new e.VRFrameData,this.sessions=new Map,this.immersiveSession=null,this.canPresent=i,this.baseModelMatrix=d(),this.gamepadInputSources={},this.tempVec3=new Float32Array(3),this.onVRDisplayPresentChange=this.onVRDisplayPresentChange.bind(this),e.window.addEventListener("vrdisplaypresentchange",this.onVRDisplayPresentChange),this.CAN_USE_GAMEPAD=e.navigator&&"getGamepads"in e.navigator,this.HAS_BITMAP_SUPPORT=Qe(e)}get depthNear(){return this.display.depthNear}set depthNear(e){this.display.depthNear=e}get depthFar(){return this.display.depthFar}set depthFar(e){this.display.depthFar=e}onBaseLayerSet(e,t){const i=this.sessions.get(e),r=t.context.canvas;if(i.immersive){const e=this.display.getEyeParameters("left"),n=this.display.getEyeParameters("right");r.width=2*Math.max(e.renderWidth,n.renderWidth),r.height=Math.max(e.renderHeight,n.renderHeight),this.display.requestPresent([{source:r,attributes:pt}]).then(()=>{ut||this.global.document.body.contains(r)||(i.modifiedCanvasLayer=!0,this.global.document.body.appendChild(r),ke(r)),i.baseLayer=t})}else i.baseLayer=t}onInlineVerticalFieldOfViewSet(e,t){this.sessions.get(e).inlineVerticalFieldOfView=t}supportsSession(e){if(-1==n.indexOf(e))throw new TypeError(`The provided value '${e}' is not a valid enum value of type XRSessionMode`);return"immersive-ar"!=e&&("immersive-vr"!=e||!1!==this.canPresent)}async requestSession(e){if(!this.supportsSession(e))return Promise.reject();let t="immersive-vr"==e;if(t){const e=this.global.document.createElement("canvas");if(!ut){e.getContext("webgl")}await this.display.requestPresent([{source:e,attributes:pt}])}const i=new gt(e,{renderContextType:this.HAS_BITMAP_SUPPORT?"bitmaprenderer":"2d"});return this.sessions.set(i.id,i),t&&(this.immersiveSession=i,this.dispatchEvent("@@webxr-polyfill/vr-present-start",i.id)),Promise.resolve(i.id)}requestAnimationFrame(e){return this.display.requestAnimationFrame(e)}getPrimaryButtonIndex(e){let t=0,i=e.id.toLowerCase();for(let e in ft)if(i.includes(e)){t=ft[e];break}return Math.min(t,e.buttons.length-1)}onFrameStart(e){this.display.getFrameData(this.frame);const t=this.sessions.get(e);if(t.immersive&&this.CAN_USE_GAMEPAD){let e=this.gamepadInputSources;this.gamepadInputSources={};let i=this.global.navigator.getGamepads();for(let r=0;r<i.length;++r){let n=i[r];if(n&&n.displayId>0){let i=e[r];if(i||(i=new dt(this,this.getPrimaryButtonIndex(n))),i.updateFromGamepad(n),this.gamepadInputSources[r]=i,-1!=i.primaryButtonIndex){let e=n.buttons[i.primaryButtonIndex].pressed;e&&!i.primaryActionPressed?this.dispatchEvent("@@webxr-polyfill/input-select-start",{sessionId:t.id,inputSource:i.inputSource}):!e&&i.primaryActionPressed&&this.dispatchEvent("@@webxr-polyfill/input-select-end",{sessionId:t.id,inputSource:i.inputSource}),i.primaryActionPressed=e}}}}if(!ut&&!t.immersive&&t.baseLayer){const e=t.baseLayer.context.canvas;!function(e,t,i,r,n){let s,a=1/Math.tan(t/2);e[0]=a/i,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=n&&n!==1/0?(s=1/(r-n),e[10]=(n+r)*s,e[14]=2*n*r*s):(e[10]=-1,e[14]=-2*r)}(this.frame.leftProjectionMatrix,t.inlineVerticalFieldOfView,e.width/e.height,this.depthNear,this.depthFar)}}onFrameEnd(e){const t=this.sessions.get(e);if(!t.ended&&t.baseLayer){if(t.outputContext&&(!t.immersive||this.display.capabilities.hasExternalDisplay)){const e=t.immersive&&this.display.capabilities.hasExternalDisplay,i=t.baseLayer.context.canvas,r=e?i.width/2:i.width,n=i.height;if(!ut){const e=t.outputContext.canvas,s=e.width,a=e.height,o=t.renderContext;this.HAS_BITMAP_SUPPORT?i.transferToImageBitmap?o.transferFromImageBitmap(i.transferToImageBitmap()):this.global.createImageBitmap(i,0,0,r,n,{resizeWidth:s,resizeHeight:a}).then(e=>o.transferFromImageBitmap(e)):o.drawImage(i,0,0,r,n,0,0,s,a)}}t.immersive&&t.baseLayer&&this.display.submitFrame()}}cancelAnimationFrame(e){this.display.cancelAnimationFrame(e)}async endSession(e){const t=this.sessions.get(e);if(!t.ended)return t.immersive?this.display.exitPresent():void(t.ended=!0)}requestStageBounds(){if(this.display.stageParameters){const e=this.display.stageParameters.sizeX,t=this.display.stageParameters.sizeZ,i=[];return i.push(-e/2),i.push(-t/2),i.push(e/2),i.push(-t/2),i.push(e/2),i.push(t/2),i.push(-e/2),i.push(t/2),i}return null}async requestFrameOfReferenceTransform(e,t){if("stage"===e&&this.display.stageParameters&&this.display.stageParameters.sittingToStandingTransform)return this.display.stageParameters.sittingToStandingTransform}getProjectionMatrix(e){if("left"===e)return this.frame.leftProjectionMatrix;if("right"===e)return this.frame.rightProjectionMatrix;if("none"===e)return this.frame.leftProjectionMatrix;throw new Error("eye must be of type 'left' or 'right'")}getViewport(e,t,i,r){const n=this.sessions.get(e),{width:s,height:a}=i.context.canvas;if(!n.immersive)return r.x=r.y=0,r.width=s,r.height=a,!0;if("left"===t)r.x=0;else{if("right"!==t)return!1;r.x=s/2}return r.y=0,r.width=s/2,r.height=a,!0}getBasePoseMatrix(){let{position:e,orientation:t}=this.frame.pose;return e||t?(e||((e=this.tempVec3)[0]=e[1]=e[2]=0),g(this.baseModelMatrix,t,e),this.baseModelMatrix):this.baseModelMatrix}getBaseViewMatrix(e){if("left"===e)return this.frame.leftViewMatrix;if("right"===e)return this.frame.rightViewMatrix;throw new Error("eye must be of type 'left' or 'right'")}getInputSources(){let e=[];for(let t in this.gamepadInputSources)e.push(this.gamepadInputSources[t].inputSource);return e}getInputPose(e,t,i){if(!t)return null;for(let r in this.gamepadInputSources){let n=this.gamepadInputSources[r];if(n.inputSource===e)return n.getXRPose(t,i)}return null}onWindowResize(){}onVRDisplayPresentChange(e){this.display.isPresenting||this.sessions.forEach(e=>{if(e.immersive&&!e.ended){if(e.modifiedCanvasLayer){const t=e.baseLayer.context.canvas;document.body.removeChild(t),t.setAttribute("style","")}this.immersiveSession===e&&(this.immersiveSession=null),this.dispatchEvent("@@webxr-polyfill/vr-present-end",e.id)}})}}const vt=async function(e,t){if(t.webvr){let t=await async function(e){let t=null;if("getVRDisplays"in e.navigator)try{const i=await e.navigator.getVRDisplays();i&&i.length&&(t=new wt(e,i[0]))}catch(e){}return t}(e);if(t)return t}return e.VRFrameData||(e.VRFrameData=function(){this.rightViewMatrix=new Float32Array(16),this.leftViewMatrix=new Float32Array(16),this.rightProjectionMatrix=new Float32Array(16),this.leftProjectionMatrix=new Float32Array(16),this.pose=null}),new class extends wt{constructor(e,t){const i=new Xe(t||{});super(e,i),this.display=i,this.frame={rightViewMatrix:new Float32Array(16),leftViewMatrix:new Float32Array(16),rightProjectionMatrix:new Float32Array(16),leftProjectionMatrix:new Float32Array(16),pose:null,timestamp:null}}}(e,t.cardboardConfig)},yt={global:e,webvr:!0,cardboard:!0,cardboardConfig:null,allowCardboardOnDesktop:!1},bt=["navigator","HTMLCanvasElement","WebGLRenderingContext"];return class{constructor(e={}){this.config=Object.freeze(Object.assign({},yt,e)),this.global=this.config.global,this.nativeWebXR="xr"in this.global.navigator,this.injected=!1,this.nativeWebXR?this.config.cardboard&&Ne(this.global)&&this._patchNavigatorXR():this._injectPolyfill(this.global)}_injectPolyfill(e){if(!bt.every(t=>!!e[t]))throw new Error(`Global must have the following attributes : ${bt}`);for(const t of Object.keys(Ie))void 0!==e[t]?console.warn(`${t} already defined on global.`):e[t]=Ie[t];Le(e.WebGLRenderingContext)&&(Oe(e.HTMLCanvasElement),e.OffscreenCanvas&&Oe(e.OffscreenCanvas),e.WebGL2RenderingContext&&Le(e.WebGL2RenderingContext)),this.injected=!0,this._patchNavigatorXR()}_patchNavigatorXR(){let e=vt(this.global,this.config);this.xr=new XR(e),Object.defineProperty(this.global.navigator,"xr",{value:this.xr,configurable:!0})}}});
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wrapper.js-9-/**
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wrapper.js:10: * A utility class that acts as a memory pool and wraps the wasm module.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wrapper.js-11- */
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-50946-  { \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:50947:    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-50948-  }; \
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-51069-  esac
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:51070:am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-51071-am__vpath_adj = case $$p in \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:51072:    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-51073-    *) f=$$p;; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-51074-  esac;
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:51075:am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-51076-am__install_max = 40
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-51077-am__nobase_strip_setup = \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:51078:  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-51079-am__nobase_strip = \
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-52176-	@list='$(tables_DATA)'; test -n "$(tablesdir)" || list=; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:52177:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-52178-	dir='$(DESTDIR)$(tablesdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-52190-distdir-am: $(DISTFILES)
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:52191:	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:52192:	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-52193-	list='$(DISTFILES)'; \
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-52204-	  if test -d $$d/$$file; then \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:52205:	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-52206-	    if test -d "$(distdir)/$$file"; then \
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-251949-  { \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:251950:    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-251951-  }; \
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-252072-  esac
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:252073:am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-252074-am__vpath_adj = case $$p in \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:252075:    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-252076-    *) f=$$p;; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-252077-  esac;
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:252078:am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-252079-am__install_max = 40
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-252080-am__nobase_strip_setup = \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:252081:  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-252082-am__nobase_strip = \
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-253179-	@list='$(tables_DATA)'; test -n "$(tablesdir)" || list=; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:253180:	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-253181-	dir='$(DESTDIR)$(tablesdir)'; $(am__uninstall_files_from_dir)
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-253193-distdir-am: $(DISTFILES)
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:253194:	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:253195:	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-253196-	list='$(DISTFILES)'; \
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-253207-	  if test -d $$d/$$file; then \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:253208:	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-253209-	    if test -d "$(distdir)/$$file"; then \
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-364496-#gestion du tiret en début de mot
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:364497:noback correct `"-"$l "`"*
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-364498-noback correct $s["-"]$l "`-"
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-364605-#Crochets mathématiques en forward
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:364606:noback correct `["["]$dmp "`\xfffd"
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-364607-noback correct $s["["]$dmp "`\xfffd"
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-397757-midword asl 146-123
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data:397758:begmidword asm 146-134
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.data-397759-endword asmente 146-56-134
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-544-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:545:var asm2wasmImports = { // special asm2wasm imports
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-546-    "f64-rem": function(x, y) {
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-558-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:559:// Wraps a JS function as a wasm function with a given signature.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-560-function convertJsFunctionToWasm(func, sig) {
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-563-  // "WebAssembly.Function" constructor.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:564:  // Otherwise, construct a minimal wasm module importing the JS function and
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-565-  // re-exporting it.
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-630-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:631:   // We can compile this wasm module synchronously because it is very small.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-632-  // This accepts an import (at "e.f"), that it reroutes to an export (at "f")
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-642-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:643:// Add a wasm function to the table.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-644-function addFunctionWasm(func, sig) {
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-654-    }
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:655:    throw 'Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.';
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-656-  }
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-835-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:836:// Wasm globals
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-837-
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-839-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:840:// In fastcomp asm.js, we don't need a wasm Table at all.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:841:// In the wasm backend, we polyfill the WebAssembly object,
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-842-// so this creates a (non-native-wasm) table for us.
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1091-      } else {
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1092:        if ((u0 & 0xF8) != 0xF0) warnOnce('Invalid UTF-8 leading byte 0x' + u0.toString(16) + ' encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!');
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1093-        u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (u8Array[idx++] & 63);
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1167-      if (outIdx + 3 >= endIdx) break;
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1168:      if (u >= 0x200000) warnOnce('Invalid Unicode code point 0x' + u.toString(16) + ' encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF).');
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1169-      outU8Array[outIdx++] = 0xF0 | (u >> 18);
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1475-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1476:// In standalone mode, the wasm creates the memory, and the user can't provide it.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1477-// In non-standalone/normal mode, we create the memory here.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1478-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1479:// Create the main memory. (Note: this isn't used in STANDALONE_WASM mode since the wasm
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1480-// memory is created in the wasm, not in JS.)
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1797-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1798:  // Throw a wasm runtime error, because a JS error might be seen as a foreign
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1799-  // exception, which means we'd run destructors on it. We need the error to
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1844-    } else {
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1845:      throw "both async and sync fetching of the wasm failed";
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1846-    }
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1858-      if (!response['ok']) {
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1859:        throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1860-      }
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1873-
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1874:// Create the wasm instance.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1875:// Receives the wasm imports, returns the exports.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1876-function createWasm() {
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1888-  };
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1889:  // Load the wasm module and create an instance of using native support in the JS engine.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1890:  // handle a generated wasm instance, receiving its exports and
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1891-  // performing other necessary setup
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1935-            // in which case falling back to ArrayBuffer instantiation should work.
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1936:            err('wasm streaming compile failed: ' + reason);
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1937-            err('falling back to ArrayBuffer instantiation');
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1944-  }
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1945:  // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1946:  // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1947-  // to any other async startup actions they are performing.
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1952-    } catch(e) {
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:1953:      err('Module.instantiateWasm callback failed with error: ' + e);
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-1954-      return false;
##############################################
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-4930-// EMSCRIPTEN_START_ASM
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js:4931:var asm =Module["asm"]// EMSCRIPTEN_END_ASM
chromium-84.0.4147.105/third_party/liblouis/wasm/liblouis_wasm.js-4932-(asmGlobalArg, asmLibraryArg, buffer);
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/lou_compare.pl-13-	
chromium-84.0.4147.105/third_party/liblouis/src/tools/lou_compare.pl:14:	@output = `./tools/$exe < $file`;
chromium-84.0.4147.105/third_party/liblouis/src/tools/lou_compare.pl-15-	$last = $output[$#output];
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/lou_compare.pl-53-
chromium-84.0.4147.105/third_party/liblouis/src/tools/lou_compare.pl:54:`mv $tmp_pass pass.txt`;
chromium-84.0.4147.105/third_party/liblouis/src/tools/lou_compare.pl:55:`mv $tmp_fail fail.txt`;
chromium-84.0.4147.105/third_party/liblouis/src/tools/lou_compare.pl-56-
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4-89-  if test "$HAVE_LIBUNISTRING" = yes; then
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4:90:    LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4:91:    LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4:92:    LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4-93-  fi
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4-123-           [dnl This is the unoptimized variant:
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4:124:            requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"`
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4:125:            requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"`
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4:126:            requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"`
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/libunistring-base.m4-127-            test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/getopt.m4-218-       gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/getopt.m4:219:       case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/getopt.m4-220-         xx) gl_had_POSIXLY_CORRECT=exported ;;
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/stdint.m4-406-    fi
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/stdint.m4:407:    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/stdint.m4-408-    AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result])
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/stdint.m4-435-    eval result=\$gl_cv_type_${gltype}_signed
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/stdint.m4:436:    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/stdint.m4-437-    if test "$result" = yes; then
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/stdint.m4-489-       done])
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/stdint.m4:490:    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/stdint.m4-491-    eval result=\$gl_cv_type_${gltype}_suffix
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/gnulib-comp.m4-243-      sed_drop_objext='s/\.o$//;s/\.obj$//'
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/gnulib-comp.m4:244:      for i in `for i in $gl_tools_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/gnulib-comp.m4-245-        gl_tools_libobjs="$gl_tools_libobjs $i.$ac_objext"
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/gnulib-comp.m4-261-changequote(,)dnl
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/gnulib-comp.m4:262:  gl_toolstests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/gnulib-comp.m4-263-changequote([, ])dnl
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/gnulib-comp.m4-289-      sed_drop_objext='s/\.o$//;s/\.obj$//'
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/gnulib-comp.m4:290:      for i in `for i in $gl_toolstests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/gnulib-comp.m4-291-        gl_toolstests_libobjs="$gl_toolstests_libobjs $i.$ac_objext"
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/00gnulib.m4-37-  [AC][_DEFUN([$1],
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/00gnulib.m4:38:    [AC_REQUIRE([_gl_DEFUN_ONCE([$1])],
chromium-84.0.4147.105/third_party/liblouis/src/tools/gnulib/m4/00gnulib.m4-39-      [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/check_all_tables.pl-39-	alarm $timeout;
chromium-84.0.4147.105/third_party/liblouis/src/tests/check_all_tables.pl:40:	exec ("../tools/lou_checktable $table --quiet");
chromium-84.0.4147.105/third_party/liblouis/src/tests/check_all_tables.pl-41-	die "Exec of lou_checktable failed: $!";
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/ueb_test_data.pl-9-
chromium-84.0.4147.105/third_party/liblouis/src/tests/ueb_test_data.pl:10:	@output = `./check_ueb_test_data -t tables/en-ueb-g2.ctb < $file`;
chromium-84.0.4147.105/third_party/liblouis/src/tests/ueb_test_data.pl-11-	if($? != 0)
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/check_endless_loop.pl-29-alarm 5;
chromium-84.0.4147.105/third_party/liblouis/src/tests/check_endless_loop.pl:30:system("../tools/lou_checktable $table --quiet") == 0 
chromium-84.0.4147.105/third_party/liblouis/src/tests/check_endless_loop.pl-31-    or die "lou_checktable on $table failed\n";
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/tables/large.ctb-484-always aaasl 1
chromium-84.0.4147.105/third_party/liblouis/src/tests/tables/large.ctb:485:always aaasm 1
chromium-84.0.4147.105/third_party/liblouis/src/tests/tables/large.ctb-486-always aaasn 1
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/ueb_test_data/input-ueb-03-symbols.txt-86-My favourite pets are my dog^ my cat ^ my hamster. My job ^ to feed them.
chromium-84.0.4147.105/third_party/liblouis/src/tests/ueb_test_data/input-ueb-03-symbols.txt:87:`7,my fav|rite pets >e my dog`5 my cat `5 my ham/}4 ,my job `5 to fe$ !m4`'
chromium-84.0.4147.105/third_party/liblouis/src/tests/ueb_test_data/input-ueb-03-symbols.txt-88-
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-03-symbols.yaml-66-- - My favourite pets are my dog^ my cat ^ my hamster. My job ^ to feed them.
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-03-symbols.yaml:67:  - '`7,my fav|rite pets >e my dog`5 my cat `5 my ham/}4 ,my job `5 to fe$ !m4`'''
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-03-symbols.yaml-68-  - {typeform: {script: "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"}}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-2317-- - ' !brailled @brailled #brailled $brailled %brailled ^brailled &brailled *brailled )brailled _brailled =brailled +brailled ]brailled }brailled \\brailled |brailled .brailled ,brailled ;brailled :brailled ?brailled <brailled >braille /brailled'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:2318:  - ' 6brld `abrld _?brld $brld .0brld `5brld `&brld "9brld ">brld .-brld "7brld "6brld .>brld _>brld _*brld _|brld 4brld 1brld 2brld 3brld ;8brld `<brld `>brld .*brld `9brld _/brld'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-2319-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-2699-- - ' !conceived @conceived #conceived $conceived %conceived ^conceived &conceived *conceived )conceived _conceived =conceived +conceived ]conceived }conceived \\conceived |conceived .conceived ,conceived ;conceived :conceived ?conceived <conceived >conceived'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:2700:  - ' 63cvd `a3cvd _?3cvd $3cvd .03cvd `53cvd `&3cvd "93cvd ">3cvd .-3cvd "73cvd "63cvd .>3cvd _>3cvd _*3cvd _|3cvd 43cvd 13cvd 23cvd 33cvd ;83cvd `<3cvd `>3cvd'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-2701-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-3125-- - ' !deceived @deceived #deceived $deceived %deceived ^deceived &deceived *deceived )deceived _deceived =deceived +deceived ]deceived }deceived \\deceived |deceived .deceived ,deceived ;deceived :deceived ?deceived <deceived >deceived `deceived ~deceived /deceived'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:3126:  - ' 6dcvd `adcvd _?dcvd $dcvd .0dcvd `5dcvd `&dcvd "9dcvd ">dcvd .-dcvd "7dcvd "6dcvd .>dcvd _>dcvd _*dcvd _|dcvd 4dcvd 1dcvd 2dcvd 3dcvd ;8dcvd `<dcvd `>dcvd .*dcvd `9dcvd _/dcvd'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-3127-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-3377-- - ' !undeceived @undeceived #undeceived $undeceived %undeceived ^undeceived &undeceived *undeceived )undeceived _undeceived =undeceived +undeceived ]undeceived }undeceived \\undeceived |undeceived .undeceived ,undeceived ;undeceived :undeceived ?undeceived'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:3378:  - ' 6undcvd `aundcvd _?undcvd $undcvd .0undcvd `5undcvd `&undcvd "9undcvd ">undcvd .-undcvd "7undcvd "6undcvd .>undcvd _>undcvd _*undcvd _|undcvd 4undcvd 1undcvd 2undcvd 3undcvd ;8undcvd'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-3379-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-3551-- - ' !declared @declared #declared $declared %declared ^declared &declared *declared )declared _declared =declared +declared ]declared }declared \\declared |declared .declared ,declared ;declared :declared ?declared <declared >declared `declared ~declared /declared'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:3552:  - ' 6dcld `adcld _?dcld $dcld .0dcld `5dcld `&dcld "9dcld ">dcld .-dcld "7dcld "6dcld .>dcld _>dcld _*dcld _|dcld 4dcld 1dcld 2dcld 3dcld ;8dcld `<dcld `>dcld .*dcld `9dcld _/dcld'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-3553-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-3803-- - ' !undeclared @undeclared #undeclared $undeclared %undeclared ^undeclared &undeclared *undeclared )undeclared _undeclared =undeclared +undeclared ]undeclared }undeclared \\undeclared |undeclared .undeclared ,undeclared ;undeclared :undeclared ?undeclared'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:3804:  - ' 6undcld `aundcld _?undcld $undcld .0undcld `5undcld `&undcld "9undcld ">undcld .-undcld "7undcld "6undcld .>undcld _>undcld _*undcld _|undcld 4undcld 1undcld 2undcld 3undcld ;8undcld'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-3805-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-6720-- - ' !perceived @perceived #perceived $perceived %perceived ^perceived &perceived *perceived )perceived _perceived =perceived +perceived ]perceived }perceived \\perceived |perceived .perceived ,perceived ;perceived :perceived ?perceived <perceived >perceived'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:6721:  - ' 6p}cvd `ap}cvd _?p}cvd $p}cvd .0p}cvd `5p}cvd `&p}cvd "9p}cvd ">p}cvd .-p}cvd "7p}cvd "6p}cvd .>p}cvd _>p}cvd _*p}cvd _|p}cvd 4p}cvd 1p}cvd 2p}cvd 3p}cvd ;8p}cvd `<p}cvd `>p}cvd'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-6722-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-6983-- - ' (reperceived [reperceived {reperceived ''reperceived "reperceived -reperceived !reperceived @reperceived #reperceived $reperceived %reperceived ^reperceived &reperceived *reperceived )reperceived _reperceived =reperceived +reperceived ]reperceived }reperceived'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:6984:  - ' "<rep}cvd .<rep}cvd _<rep}cvd ''rep}cvd 8rep}cvd -rep}cvd 6rep}cvd `arep}cvd _?rep}cvd $rep}cvd .0rep}cvd `5rep}cvd `&rep}cvd "9rep}cvd ">rep}cvd .-rep}cvd "7rep}cvd "6rep}cvd .>rep}cvd _>rep}cvd'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-6985-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-7154-- - ' !unperceived @unperceived #unperceived $unperceived %unperceived ^unperceived &unperceived *unperceived )unperceived _unperceived =unperceived +unperceived ]unperceived }unperceived \\unperceived |unperceived .unperceived ,unperceived ;unperceived :unperceived'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:7155:  - ' 6unp}cvd `aunp}cvd _?unp}cvd $unp}cvd .0unp}cvd `5unp}cvd `&unp}cvd "9unp}cvd ">unp}cvd .-unp}cvd "7unp}cvd "6unp}cvd .>unp}cvd _>unp}cvd _*unp}cvd _|unp}cvd 4unp}cvd 1unp}cvd 2unp}cvd 3unp}cvd'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-7156-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-7862-- - ' !received @received #received $received %received ^received &received *received )received _received =received +received ]received }received \\received |received .received ,received ;received :received ?received <received >received `received ~received /received'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:7863:  - ' 6rcvd `arcvd _?rcvd $rcvd .0rcvd `5rcvd `&rcvd "9rcvd ">rcvd .-rcvd "7rcvd "6rcvd .>rcvd _>rcvd _*rcvd _|rcvd 4rcvd 1rcvd 2rcvd 3rcvd ;8rcvd `<rcvd `>rcvd .*rcvd `9rcvd _/rcvd'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-7864-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-8110-- - ' !rejoiced @rejoiced #rejoiced $rejoiced %rejoiced ^rejoiced &rejoiced *rejoiced )rejoiced _rejoiced =rejoiced +rejoiced ]rejoiced }rejoiced \\rejoiced |rejoiced .rejoiced ,rejoiced ;rejoiced :rejoiced ?rejoiced <rejoiced >rejoiced `rejoiced ~rejoiced /rejoiced'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:8111:  - ' 6rjcd `arjcd _?rjcd $rjcd .0rjcd `5rjcd `&rjcd "9rjcd ">rjcd .-rjcd "7rjcd "6rjcd .>rjcd _>rjcd _*rjcd _|rjcd 4rjcd 1rjcd 2rjcd 3rjcd ;8rjcd `<rjcd `>rjcd .*rjcd `9rjcd _/rjcd'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-8112-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-8460-- - ' !unrejoiced @unrejoiced #unrejoiced $unrejoiced %unrejoiced ^unrejoiced &unrejoiced *unrejoiced )unrejoiced _unrejoiced =unrejoiced +unrejoiced ]unrejoiced }unrejoiced \\unrejoiced |unrejoiced .unrejoiced ,unrejoiced ;unrejoiced :unrejoiced ?unrejoiced'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml:8461:  - ' 6unrjcd `aunrjcd _?unrjcd $unrjcd .0unrjcd `5unrjcd `&unrjcd "9unrjcd ">unrjcd .-unrjcd "7unrjcd "6unrjcd .>unrjcd _>unrjcd _*unrjcd _|unrjcd 4unrjcd 1unrjcd 2unrjcd 3unrjcd ;8unrjcd'
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/en-ueb-computer-code.yaml-8462-  - {xfail: contraction following special characters is ignored}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/no_harness.yaml-686-  -
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/no_harness.yaml:687:    - Would you like to come and play football with us? John asked, staring at me with a threatening look. "Oh yes, let's play football," I said, showing great enthusiasm (but in fact I was deadly frightened).
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/no_harness.yaml-688-    - ⠲⠠⠺⠕⠥⠇⠙ ⠆⠽⠕⠥⠰ ⠇⠊⠅⠑ ⠞⠕ ⠉⠕⠍⠑ ⠁⠝⠙ ⠏⠇⠁⠽ ⠋⠕⠕⠞⠃⠁⠇⠇ ⠺⠊⠞⠓ ⠥⠎⠢⠲ ⠠⠚⠕⠓⠝ ⠁⠎⠅⠑⠙⠂ ⠎⠞⠁⠗⠊⠝⠛ ⠁⠞ ⠍⠑ ⠺⠊⠞⠓ ⠁ ⠞⠓⠗⠑⠁⠞⠑⠝⠊⠝⠛ ⠇⠕⠕⠅⠄ ⠲⠆⠕⠓ ⠽⠑⠎⠂ ⠇⠑⠞⠐⠎ ⠏⠇⠁⠽ ⠋⠕⠕⠞⠃⠁⠇⠇⠰⠂⠲ ⠠⠊ ⠎⠁⠊⠙⠂ ⠎⠓⠕⠺⠊⠝⠛ ⠛⠗⠑⠁⠞ ⠑⠝⠞⠓⠥⠎⠊⠁⠎⠍ ⠦⠃⠥⠞ ⠊⠝ ⠋⠁⠉⠞ ⠠⠊ ⠺⠁⠎ ⠙⠑⠁⠙⠇⠽ ⠋⠗⠊⠛⠓⠞⠑⠝⠑⠙⠴⠄
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/no_harness.yaml-690-  -
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/no_harness.yaml:691:    - Would you like to come and play football with us? John asked, staring at me with a threatening look. "Oh yes, let's play football," I said, showing great enthusiasm (but in fact I was deadly frightened).
chromium-84.0.4147.105/third_party/liblouis/src/tests/braille-specs/no_harness.yaml-692-    - ⠐⠂⠦⠠⠺⠕⠥⠇⠙ ⠨⠽⠕⠥ ⠇⠊⠅⠑ ⠞⠕ ⠉⠕⠍⠑ ⠁⠝⠙ ⠏⠇⠁⠽ ⠋⠕⠕⠞⠃⠁⠇⠇ ⠺⠊⠞⠓ ⠥⠎⠦⠴ ⠠⠚⠕⠓⠝ ⠁⠎⠅⠑⠙⠂ ⠎⠞⠁⠗⠊⠝⠛ ⠁⠞ ⠍⠑ ⠺⠊⠞⠓ ⠁ ⠞⠓⠗⠑⠁⠞⠑⠝⠊⠝⠛ ⠇⠕⠕⠅⠲ ⠦⠨⠨⠠⠕⠓ ⠽⠑⠎⠂ ⠇⠑⠞⠄⠎ ⠏⠇⠁⠽ ⠋⠕⠕⠞⠃⠁⠇⠇⠂⠴⠨⠄ ⠠⠊ ⠎⠁⠊⠙⠂ ⠎⠓⠕⠺⠊⠝⠛ ⠛⠗⠑⠁⠞ ⠑⠝⠞⠓⠥⠎⠊⠁⠎⠍ ⠶⠃⠥⠞ ⠊⠝ ⠋⠁⠉⠞ ⠠⠊ ⠺⠁⠎ ⠙⠑⠁⠙⠇⠽ ⠋⠗⠊⠛⠓⠞⠑⠝⠑⠙⠶⠲⠐⠂
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tests/multiple_table_path.pl-58-foreach my $table (@tables) {
chromium-84.0.4147.105/third_party/liblouis/src/tests/multiple_table_path.pl:59:    system("../tools/lou_checktable $table --quiet") == 0 or die;
chromium-84.0.4147.105/third_party/liblouis/src/tests/multiple_table_path.pl-60-}
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/configure.ac-92-# needed to build the liblouis.def
chromium-84.0.4147.105/third_party/liblouis/src/configure.ac:93:DLL_VERSION=`expr ${LIBLOUIS_CURRENT} - ${LIBLOUIS_AGE}`
chromium-84.0.4147.105/third_party/liblouis/src/configure.ac-94-AC_SUBST(DLL_VERSION)
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/configure.ac-143-  AC_MSG_CHECKING([for makeinfo version >= $MAKEINFO_VERSION_REQ])
chromium-84.0.4147.105/third_party/liblouis/src/configure.ac:144:  MAKEINFO_VERSION=`makeinfo --version | sed -ne 's/^\(makeinfo\|texi2any\) .* \([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*.*$/\2/p'`
chromium-84.0.4147.105/third_party/liblouis/src/configure.ac-145-  if test x$MAKEINFO_VERSION = x -o 0$MAKEINFO_VERSION -lt $MAKEINFO_VERSION_REQ
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tables/pt-pt-g2.ctb-125-midword asl 146-123
chromium-84.0.4147.105/third_party/liblouis/src/tables/pt-pt-g2.ctb:126:begmidword asm 146-134
chromium-84.0.4147.105/third_party/liblouis/src/tables/pt-pt-g2.ctb-127-endword asmente 146-56-134
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tables/fr-bfu-g2.ctb-4324-#gestion du tiret en début de mot
chromium-84.0.4147.105/third_party/liblouis/src/tables/fr-bfu-g2.ctb:4325:noback correct `"-"$l "`"*
chromium-84.0.4147.105/third_party/liblouis/src/tables/fr-bfu-g2.ctb-4326-noback correct $s["-"]$l "`-"
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/tables/fr-bfu-g2.ctb-4433-#Crochets mathématiques en forward
chromium-84.0.4147.105/third_party/liblouis/src/tables/fr-bfu-g2.ctb:4434:noback correct `["["]$dmp "`\xfffd"
chromium-84.0.4147.105/third_party/liblouis/src/tables/fr-bfu-g2.ctb-4435-noback correct $s["["]$dmp "`\xfffd"
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/manywarnings.m4-310-  if test -n "$GCC"; then
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/manywarnings.m4:311:    case `($CC --version) 2>/dev/null` in
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/manywarnings.m4-312-      'gcc (GCC) '[[0-3]].* | \
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/stdint.m4-406-    fi
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/stdint.m4:407:    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/stdint.m4-408-    AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result])
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/stdint.m4-435-    eval result=\$gl_cv_type_${gltype}_signed
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/stdint.m4:436:    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/stdint.m4-437-    if test "$result" = yes; then
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/stdint.m4-489-       done])
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/stdint.m4:490:    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/stdint.m4-491-    eval result=\$gl_cv_type_${gltype}_suffix
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/gnulib-comp.m4-169-      sed_drop_objext='s/\.o$//;s/\.obj$//'
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/gnulib-comp.m4:170:      for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/gnulib-comp.m4-171-        gl_libobjs="$gl_libobjs $i.$ac_objext"
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/gnulib-comp.m4-187-changequote(,)dnl
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/gnulib-comp.m4:188:  gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/gnulib-comp.m4-189-changequote([, ])dnl
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/gnulib-comp.m4-215-      sed_drop_objext='s/\.o$//;s/\.obj$//'
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/gnulib-comp.m4:216:      for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/gnulib-comp.m4-217-        gltests_libobjs="$gltests_libobjs $i.$ac_objext"
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/manywarnings-c++.m4-223-  if test -n "$GXX"; then
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/manywarnings-c++.m4:224:    case `($CXX --version) 2>/dev/null` in
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/manywarnings-c++.m4-225-      'g++ (GCC) '[[0-3]].* | \
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/warnings.m4-33-case $gl_positive in
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/warnings.m4:34:  -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;;
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/warnings.m4-35-esac
##############################################
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/00gnulib.m4-37-  [AC][_DEFUN([$1],
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/00gnulib.m4:38:    [AC_REQUIRE([_gl_DEFUN_ONCE([$1])],
chromium-84.0.4147.105/third_party/liblouis/src/gnulib/m4/00gnulib.m4-39-      [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl
##############################################
chromium-84.0.4147.105/third_party/liblouis/README.chromium-17-
chromium-84.0.4147.105/third_party/liblouis/README.chromium:18:Local Modifications: * Add liblouis_wrapper.js, a js wrapper to wasm binary.  *
chromium-84.0.4147.105/third_party/liblouis/README.chromium-19-Add tables.json, a list of tables with metadata.  * Add cvox-common.cti with
##############################################
chromium-84.0.4147.105/third_party/libsrtp/test/rtpw.c-298-#else
chromium-84.0.4147.105/third_party/libsrtp/test/rtpw.c:299:    rcvr_addr.s_addr = inet_addr(address);
chromium-84.0.4147.105/third_party/libsrtp/test/rtpw.c-300-    if (0xffffffff == rcvr_addr.s_addr) {
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-25-$(SUBDIRS:%=%/__uninstall__): dummy
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in:26:	cd `dirname $@` && $(MAKE) uninstall
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-27-
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-28-$(SUBDIRS:%=%/__install__): dummy
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in:29:	cd `dirname $@` && $(MAKE) install
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-30-
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-31-$(SUBDIRS:%=%/__clean__): dummy
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in:32:	cd `dirname $@` && $(MAKE) clean
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-33-
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-34-$(SUBDIRS:%=%/__release__): dummy
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in:35:	cd `dirname $@` && $(MAKE) release
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-36-
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-37-$(SUBDIRS:%=%/__distclean__): dummy
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in:38:	cd `dirname $@` && $(MAKE) distclean
chromium-84.0.4147.105/third_party/xdg-utils/Makefile.in-39-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-85-
chromium-84.0.4147.105/third_party/xdg-utils/install-sh:86:	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-87-	    shift
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-89-
chromium-84.0.4147.105/third_party/xdg-utils/install-sh:90:	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-91-	    shift
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-151-	then
chromium-84.0.4147.105/third_party/xdg-utils/install-sh:152:		dst="$dst"/`basename $src`
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-153-	else
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-158-## this sed command emulates the dirname command
chromium-84.0.4147.105/third_party/xdg-utils/install-sh:159:dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-160-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-172-IFS='%'
chromium-84.0.4147.105/third_party/xdg-utils/install-sh:173:set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-174-IFS="${oIFS}"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-206-	then
chromium-84.0.4147.105/third_party/xdg-utils/install-sh:207:		dstfile=`basename $dst`
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-208-	else
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-216-	then
chromium-84.0.4147.105/third_party/xdg-utils/install-sh:217:		dstfile=`basename $dst`
chromium-84.0.4147.105/third_party/xdg-utils/install-sh-218-	else
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-45-do
chromium-84.0.4147.105/third_party/xdg-utils/configure:46:  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
chromium-84.0.4147.105/third_party/xdg-utils/configure-47-    eval $as_var=C; export $as_var
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-103-  as_lineno_2=$LINENO
chromium-84.0.4147.105/third_party/xdg-utils/configure:104:  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/configure-105-  test "x$as_lineno_1" != "x$as_lineno_2" &&
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-142-  as_lineno_2=$LINENO
chromium-84.0.4147.105/third_party/xdg-utils/configure:143:  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/configure-144-  test "x$as_lineno_1" != "x$as_lineno_2" &&
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-326-
chromium-84.0.4147.105/third_party/xdg-utils/configure:327:  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-328-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-359-  -disable-* | --disable-*)
chromium-84.0.4147.105/third_party/xdg-utils/configure:360:    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-361-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-364-   { (exit 1); exit 1; }; }
chromium-84.0.4147.105/third_party/xdg-utils/configure:365:    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-366-    eval "enable_$ac_feature=no" ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-368-  -enable-* | --enable-*)
chromium-84.0.4147.105/third_party/xdg-utils/configure:369:    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-370-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-373-   { (exit 1); exit 1; }; }
chromium-84.0.4147.105/third_party/xdg-utils/configure:374:    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-375-    case $ac_option in
chromium-84.0.4147.105/third_party/xdg-utils/configure:376:      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
chromium-84.0.4147.105/third_party/xdg-utils/configure-377-      *) ac_optarg=yes ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-550-  -with-* | --with-*)
chromium-84.0.4147.105/third_party/xdg-utils/configure:551:    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-552-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-555-   { (exit 1); exit 1; }; }
chromium-84.0.4147.105/third_party/xdg-utils/configure:556:    ac_package=`echo $ac_package| sed 's/-/_/g'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-557-    case $ac_option in
chromium-84.0.4147.105/third_party/xdg-utils/configure:558:      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
chromium-84.0.4147.105/third_party/xdg-utils/configure-559-      *) ac_optarg=yes ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-563-  -without-* | --without-*)
chromium-84.0.4147.105/third_party/xdg-utils/configure:564:    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-565-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-568-   { (exit 1); exit 1; }; }
chromium-84.0.4147.105/third_party/xdg-utils/configure:569:    ac_package=`echo $ac_package | sed 's/-/_/g'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-570-    eval "with_$ac_package=no" ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-595-  *=*)
chromium-84.0.4147.105/third_party/xdg-utils/configure:596:    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
chromium-84.0.4147.105/third_party/xdg-utils/configure-597-    # Reject names that are not valid shell variable names.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-600-   { (exit 1); exit 1; }; }
chromium-84.0.4147.105/third_party/xdg-utils/configure:601:    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
chromium-84.0.4147.105/third_party/xdg-utils/configure-602-    eval "$ac_envvar='$ac_optarg'"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-616-if test -n "$ac_prev"; then
chromium-84.0.4147.105/third_party/xdg-utils/configure:617:  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-618-  { echo "$as_me: error: missing argument to $ac_option" >&2
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-624-do
chromium-84.0.4147.105/third_party/xdg-utils/configure:625:  eval ac_val=$`echo $ac_var`
chromium-84.0.4147.105/third_party/xdg-utils/configure-626-  case $ac_val in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-636-do
chromium-84.0.4147.105/third_party/xdg-utils/configure:637:  eval ac_val=$`echo $ac_var`
chromium-84.0.4147.105/third_party/xdg-utils/configure-638-  case $ac_val in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-703-   { (exit 1); exit 1; }; }
chromium-84.0.4147.105/third_party/xdg-utils/configure:704:srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-705-ac_env_build_alias_set=${build_alias+set}
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-754-By default, \`make install' will install all the files in
chromium-84.0.4147.105/third_party/xdg-utils/configure:755:\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
chromium-84.0.4147.105/third_party/xdg-utils/configure:756:an installation prefix other than \`$ac_default_prefix' using \`--prefix',
chromium-84.0.4147.105/third_party/xdg-utils/configure-757-for instance \`--prefix=\$HOME'.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-797-if test "$ac_dir" != .; then
chromium-84.0.4147.105/third_party/xdg-utils/configure:798:  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-799-  # A "../" for each directory in $ac_dir_suffix.
chromium-84.0.4147.105/third_party/xdg-utils/configure:800:  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-801-else
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-810-    else
chromium-84.0.4147.105/third_party/xdg-utils/configure:811:       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-812-    fi ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-966-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
chromium-84.0.4147.105/third_party/xdg-utils/configure:967:      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/xdg-utils/configure-968-    esac
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1038-    do
chromium-84.0.4147.105/third_party/xdg-utils/configure:1039:      eval ac_val=$`echo $ac_var`
chromium-84.0.4147.105/third_party/xdg-utils/configure-1040-      echo "$ac_var='"'"'$ac_val'"'"'"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1052-      do
chromium-84.0.4147.105/third_party/xdg-utils/configure:1053:	eval ac_val=$`echo $ac_var`
chromium-84.0.4147.105/third_party/xdg-utils/configure-1054-	echo "$ac_var='"'"'$ac_val'"'"'"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1159-    set,)
chromium-84.0.4147.105/third_party/xdg-utils/configure:1160:      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
chromium-84.0.4147.105/third_party/xdg-utils/configure:1161:echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
chromium-84.0.4147.105/third_party/xdg-utils/configure-1162-      ac_cache_corrupted=: ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1182-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
chromium-84.0.4147.105/third_party/xdg-utils/configure:1183:      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
chromium-84.0.4147.105/third_party/xdg-utils/configure-1184-    *) ac_arg=$ac_var=$ac_new_val ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1234-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
chromium-84.0.4147.105/third_party/xdg-utils/configure:1235:set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-1236-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1243-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
chromium-84.0.4147.105/third_party/xdg-utils/configure:1244:eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
chromium-84.0.4147.105/third_party/xdg-utils/configure-1245-if test -n "$ac_maketemp"; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1251-fi
chromium-84.0.4147.105/third_party/xdg-utils/configure:1252:if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
chromium-84.0.4147.105/third_party/xdg-utils/configure-1253-  echo "$as_me:$LINENO: result: yes" >&5
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1511-ac_LF_and_DOT=`echo; echo .`
chromium-84.0.4147.105/third_party/xdg-utils/configure:1512:DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-1513-rm -f confdef2opt.sed
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1586-do
chromium-84.0.4147.105/third_party/xdg-utils/configure:1587:  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
chromium-84.0.4147.105/third_party/xdg-utils/configure-1588-    eval $as_var=C; export $as_var
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1644-  as_lineno_2=$LINENO
chromium-84.0.4147.105/third_party/xdg-utils/configure:1645:  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/configure-1646-  test "x$as_lineno_1" != "x$as_lineno_2" &&
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1684-  as_lineno_2=$LINENO
chromium-84.0.4147.105/third_party/xdg-utils/configure:1685:  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/configure-1686-  test "x$as_lineno_1" != "x$as_lineno_2" &&
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1858-configured by $0, generated by GNU Autoconf 2.59,
chromium-84.0.4147.105/third_party/xdg-utils/configure:1859:  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
chromium-84.0.4147.105/third_party/xdg-utils/configure-1860-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-1875-  --*=*)
chromium-84.0.4147.105/third_party/xdg-utils/configure:1876:    ac_option=`expr "x$1" : 'x\([^=]*\)='`
chromium-84.0.4147.105/third_party/xdg-utils/configure:1877:    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-1878-    ac_shift=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-2085-      fi
chromium-84.0.4147.105/third_party/xdg-utils/configure:2086:      ac_sed_frag=`expr $ac_sed_frag + 1`
chromium-84.0.4147.105/third_party/xdg-utils/configure-2087-      ac_beg=$ac_end
chromium-84.0.4147.105/third_party/xdg-utils/configure:2088:      ac_end=`expr $ac_end + $ac_max_sed_lines`
chromium-84.0.4147.105/third_party/xdg-utils/configure-2089-    fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-2102-	cat >$tmp/stdin
chromium-84.0.4147.105/third_party/xdg-utils/configure:2103:	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
chromium-84.0.4147.105/third_party/xdg-utils/configure:2104:	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
chromium-84.0.4147.105/third_party/xdg-utils/configure:2105:  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
chromium-84.0.4147.105/third_party/xdg-utils/configure:2106:	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
chromium-84.0.4147.105/third_party/xdg-utils/configure-2107-  * )   ac_file_in=$ac_file.in ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-2150-if test "$ac_dir" != .; then
chromium-84.0.4147.105/third_party/xdg-utils/configure:2151:  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-2152-  # A "../" for each directory in $ac_dir_suffix.
chromium-84.0.4147.105/third_party/xdg-utils/configure:2153:  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-2154-else
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/configure-2163-    else
chromium-84.0.4147.105/third_party/xdg-utils/configure:2164:       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
chromium-84.0.4147.105/third_party/xdg-utils/configure-2165-    fi ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-su-226-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-su:227:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-su-228-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-su-249-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-su:250:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-su-251-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-64-    [ ! -f "$apps/$1" ] && return
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:65:    MIMETYPES="`grep "^MimeType=" "$apps/$1" | cut -d= -f 2-`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-66-    case "$MIMETYPES" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-73-    # Add the mime-type to the list
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:74:    temp="`mktemp "$apps/$1.XXXXXX"`" || return
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-75-    grep -v "^MimeType=" "$apps/$1" >> "$temp"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-77-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:78:    oldlines="`wc -l < "$apps/$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:79:    newlines="`wc -l < "$temp"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-80-    # The new file should have at least as many lines as the old.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-126-    fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:127:    orig="`get_browser_mime $MIME`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-128-    # Fixing the local desktop file can actually change the default browser all
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-148-    configkey="$3"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:149:    application="`kreadconfig --file $configfile --group $configsection --key $configkey`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-150-    if [ x"$application" != x ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-155-        # fine though).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:156:        configfile_dir=`kde${KDE_SESSION_VERSION}-config --path config  | cut -d ':' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-157-        configfile_path="$configfile_dir/$configfile"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-188-      !*)
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:189:        desktop="`binary_to_desktop_file "${browser#!}"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-190-        basename "$desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-215-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:216:    check="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-217-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-229-    browser="`get_browser_mime`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:230:    binary="`desktop_file_to_binary "$browser"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-231-    if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-257-        # have to find the desktop file to which it corresponds.
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:258:        desktop="`binary_to_desktop_file "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-259-        basename "$desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-264-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:265:    check="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-266-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-276-    for protocol in http https; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:277:        binary="`gconftool-2 --get /desktop/gnome/url-handlers/$protocol/command | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-278-        if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-283-    browser="`get_browser_mime`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:284:    binary="`desktop_file_to_binary "$browser"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-285-    if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-294-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:295:    binary="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-296-    [ "$binary" ] || exit_failure_file_missing
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-325-    desktop="$1"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:326:    check="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-327-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-332-    for protocol in http https; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:333:        browser="`get_browser_mime "x-scheme-handler/$protocol"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-334-        if [ x"$browser" != x"$desktop" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-344-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:345:    binary="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-346-    [ "$binary" ] || exit_failure_file_missing
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-366-        grep -q "^WebBrowser=" "$file" || continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:367:        desktop="`grep "^WebBrowser=" "$file" | cut -d= -f 2-`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-368-        echo "$desktop.desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-413-            # Change %F, %f, %U, and %u to "%s".
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:414:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | sed -e 's/%[FfUu]/"%s"/g'`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:415:            echo "X-XFCE-Commands=`echo "$command" | first_word`" >> "$target/$1"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-416-            echo "X-XFCE-CommandsWithParameter=$command" >> "$target/$1"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-437-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:438:    temp="`mktemp "$helpers_rc.XXXXXX"`" || return
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-439-    grep -v "^WebBrowser=" "$helpers_rc" >> "$temp"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-441-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:442:    oldlines="`wc -l < "$helpers_rc"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:443:    newlines="`wc -l < "$temp"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-444-    # The new file should have at least as many lines as the old.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-489-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:490:    check="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-491-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-501-    fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:502:    handler="`get_browser_mime x-scheme-handler/$1`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:503:    binary="`desktop_file_to_binary "$handler"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-504-    if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-515-    if [ "$1" = "mailto" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:516:        binary="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-517-        kwriteconfig --file emaildefaults --group PROFILE_Default --key EmailClient "$binary"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-525-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:526:    binary="`gconftool-2 --get /desktop/gnome/url-handlers/$1/command | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-527-    if [ x"$binary" != x"" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-530-        # have to find the desktop file to which it corresponds.
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:531:        desktop="`binary_to_desktop_file "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-532-        basename "$desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-537-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:538:    check="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-539-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-542-    fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:543:    binary="`gconftool-2 --get /desktop/gnome/url-handlers/$1/command | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-544-    if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-553-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:554:    binary="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-555-    [ "$binary" ] || exit_failure_file_missing
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-572-    desktop="$2"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:573:    check="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-574-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-577-    fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:578:    browser="`get_browser_mime "x-scheme-handler/$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-579-    if [ x"$browser" != x"$desktop" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-588-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:589:    binary="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-590-    [ "$binary" ] || exit_failure_file_missing
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-687-    if [ x"$BROWSER" != x ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:688:        binary="`which "${BROWSER%%:*}"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-689-    else
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-695-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:696:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-697-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-700-    if [ x"$op" = x"get" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:701:        desktop="`binary_to_desktop_file "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-702-        basename "$desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-704-        # $op = "check"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in:705:        check="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings.in-706-        if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-236-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:237:    binary="`which "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:238:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:239:    base="`basename "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-240-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-250-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:251:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:252:            command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:253:            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-254-                # Fix any double slashes that got added path composition
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-267-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:268:    desktop="`basename "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-269-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-275-        # Remove any arguments (%F, %f, %U, %u, etc.).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:276:        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:277:        command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-278-        readlink -f "$command"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-388-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:389:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-390-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-411-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:412:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-413-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-532-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:533:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:534:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:535:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-536-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-615-fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:616:desktop_dir_kde=`kde${KDE_SESSION_VERSION}-config --userpath desktop 2> /dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-617-if gconftool-2 -g /apps/nautilus/preferences/desktop_is_home_dir 2> /dev/null | grep true > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-629-    # Is the KDE desktop dir != $HOME/Desktop ?
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:630:    if [ "x`readlink -f "$desktop_dir"`" != "x`readlink -f "$desktop_dir_kde"`" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-631-        # If so, don't create $HOME/Desktop if it doesn't exist
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-637-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon:638:basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon-639-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-294-        if [ x"$1" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:295:            cd `dirname "$1"` 2>/dev/null
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:296:            FILENAME=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-297-            if [ x"$FILENAME" != x"" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-351-        if [ x"$1" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:352:            cd `dirname "$1"` 2>/dev/null
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:353:            FILENAME=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-354-            if [ x"$FILENAME" != x"" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-360-            if [ x"$TITLE" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:361:                LIST=`$DIALOG --title "$TITLE" --multiple --file-selection "$FILENAME"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-362-            else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:363:                LIST=`$DIALOG --multiple --file-selection "$FILENAME"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-364-            fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-366-            if [ x"$TITLE" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:367:                LIST=`$DIALOG --title "$TITLE" --multiple --file-selection`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-368-            else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:369:                LIST=`$DIALOG --multiple --file-selection`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-370-            fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-408-        if [ x"$1" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:409:            cd `dirname "$1"` 2>/dev/null
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog:410:            FILENAME=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog-411-            if [ x"$FILENAME" != x"" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-25-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:26:    binary="`which "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:27:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:28:    base="`basename "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-29-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-39-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:40:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:41:            command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:42:            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-43-                # Fix any double slashes that got added path composition
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-56-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:57:    desktop="`basename "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-58-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-64-        # Remove any arguments (%F, %f, %U, %u, etc.).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:65:        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:66:        command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-67-        readlink -f "$command"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-177-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:178:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-179-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-200-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:201:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-202-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-321-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:322:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:323:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in:324:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-utils-common.in-325-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-432-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:433:    binary="`which "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:434:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:435:    base="`basename "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-436-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-446-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:447:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:448:            command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:449:            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-450-                # Fix any double slashes that got added path composition
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-463-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:464:    desktop="`basename "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-465-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-471-        # Remove any arguments (%F, %f, %U, %u, etc.).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:472:        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:473:        command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-474-        readlink -f "$command"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-584-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:585:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-586-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-607-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:608:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-609-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-728-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:729:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:730:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:731:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-732-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-741-    if [ "$mode" = "system" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:742:        for x in `echo $PATH | sed 's/:/ /g'` /opt/gnome/bin; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-743-           if [ -x $x/update-desktop-database ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-783-        local default_app
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:784:        for x in `echo "$xdg_default_dirs" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-785-            DEBUG 2 "Checking $x/applications/defaults.list"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:786:            default_app=`grep "$MIME=" $x/applications/defaults.list 2> /dev/null | cut -d '=' -f 2`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-787-            if [ -n "$default_app" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-821-    xdg_global_dir=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:822:    for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-823-        if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-869-        # Work around for Debian Gnome
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:870:        gnome_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/gnome-applications-merged^'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-871-        if [ ! -e "$gnome_xdg_dir" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-872-            DEBUG 1 "Debian Workaround: Link '$xdg_dir' to '$gnome_xdg_dir'"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:873:            mkdir -p `dirname "$gnome_xdg_dir"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-874-            eval 'ln -s "applications-merged" "$gnome_xdg_dir"'$xdg_redirect_output
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-878-        # Work around for Mandriva 2006
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:879:        mandrake_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/applications-mdk-merged^'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-880-        if [ ! -e "$mandrake_xdg_dir" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-881-            DEBUG 1 "Mandriva Workaround: Link '$xdg_dir' to '$mandrake_xdg_dir'"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:882:            mkdir -p `dirname "$mandrake_xdg_dir"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-883-            eval 'ln -s "applications-merged" "$mandrake_xdg_dir"'$xdg_redirect_output
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-887-        # Work around for Fedora Core 5 + patched KDE
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:888:        kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-applications-merged^'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-889-        if [ ! -e "$kde_xdg_dir" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-890-            DEBUG 1 "Fedora Workaround: Link '$xdg_dir' to '$kde_xdg_dir'"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:891:            mkdir -p `dirname "$kde_xdg_dir"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-892-            eval 'ln -s "applications-merged" "$kde_xdg_dir"'$xdg_redirect_output
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-896-        # Work around for Kubuntu 6.06
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:897:        kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-applications-merged^'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-898-        DEBUG 1 "Kubuntu Workaround: Link '$xdg_dir' to 'kde-applications-merged'"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-906-    test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:907:    tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-908-    orig_desktop_files=
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-921-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:922:    orig_desktop_files=`cat $tmpfile`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-923-    new_desktop_files=
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-925-        for desktop_file in $desktop_files; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:926:            basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-927-            if ! grep '^'$basefile'$' $tmpfile > /dev/null 2> /dev/null ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-931-        done
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:932:        new_desktop_files=`cat $tmpfile`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-933-    fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-954-        test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:955:        tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-956-        (
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-963-            for desktop_file in $directory_files; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:964:                basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:965:                basefilename=`echo "$basefile"|cut -d '.' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-966-                echo "<Menu>"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1000-        test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:1001:        tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1002-        for menu_file in $xdg_dir/*; do
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1152-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:1153:    basefilename=`basename "$desktop_file" | cut -d '.' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1154-    if [ -z "$menu_name" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1184-xdg_global_dir=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:1185:for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1186-    if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1215-for desktop_file in $directory_files; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:1216:    basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1217-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1251-xdg_global_dir=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:1252:for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1253-    if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1258-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:1259:kde_user_dir=`kde${KDE_SESSION_VERSION}-config --path apps 2> /dev/null | cut -d ':' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:1260:kde_global_dir=`kde${KDE_SESSION_VERSION}-config --path apps 2> /dev/null | cut -d ':' -f 2`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1261-[ -w $kde_global_dir ] || kde_global_dir=
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1294-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu:1295:    basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu-1296-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-56-        if [ x"$1" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:57:            cd `dirname "$1"` 2>/dev/null
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:58:            FILENAME=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-59-            if [ x"$FILENAME" != x"" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-113-        if [ x"$1" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:114:            cd `dirname "$1"` 2>/dev/null
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:115:            FILENAME=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-116-            if [ x"$FILENAME" != x"" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-122-            if [ x"$TITLE" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:123:                LIST=`$DIALOG --title "$TITLE" --multiple --file-selection "$FILENAME"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-124-            else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:125:                LIST=`$DIALOG --multiple --file-selection "$FILENAME"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-126-            fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-128-            if [ x"$TITLE" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:129:                LIST=`$DIALOG --title "$TITLE" --multiple --file-selection`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-130-            else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:131:                LIST=`$DIALOG --multiple --file-selection`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-132-            fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-170-        if [ x"$1" != x"" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:171:            cd `dirname "$1"` 2>/dev/null
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in:172:            FILENAME=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-file-dialog.in-173-            if [ x"$FILENAME" != x"" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-33-   MV="mv -T"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in:34:   screensaver_file="/tmp/xdg-screensaver-$USER-"`echo $DISPLAY | sed 's/:/-/g'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-35-else
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-38-   MV="mv"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in:39:   screensaver_file="$HOME/.xdg-screensaver-"`echo $(hostname)-$DISPLAY | sed 's/:/-/g'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-40-fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-112-          test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in:113:          tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-114-          $MV "$tmpfile" "$screensaver_file.dpms"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-125-  test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in:126:  tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-127-  grep -v "$window_id:$xprop_pid\$" "$screensaver_file" > "$tmpfile" 2> /dev/null
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-142-  # Find the PID of the trackingprocess
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in:143:  xprop_pid=`grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-144-  unlockfile # Free lockfile
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-177-  test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in:178:  tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-179-  # Filter stale entries from the xdg-screensaver status file
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-237-        if [ -f "$screensaver_file.cookie" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in:238:            value=`cat "$screensaver_file.cookie"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-239-            dbus-send --session \
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-272-        if [ -f "$screensaver_file.cookie" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in:273:            value=`cat "$screensaver_file.cookie"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-274-            dbus-send --session \
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-408-  test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in:409:  tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver.in-410-  # Filter stale entries from the xdg-screensaver status file
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/Makefile.in-75-	for x in $(MANPAGES) ; do \
chromium-84.0.4147.105/third_party/xdg-utils/scripts/Makefile.in:76:	    rm -f $(DESTDIR)$(mandir)/man1/`basename $$x` ; \
chromium-84.0.4147.105/third_party/xdg-utils/scripts/Makefile.in-77-	done
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon.in-105-fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon.in:106:desktop_dir_kde=`kde${KDE_SESSION_VERSION}-config --userpath desktop 2> /dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon.in-107-if gconftool-2 -g /apps/nautilus/preferences/desktop_is_home_dir 2> /dev/null | grep true > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon.in-119-    # Is the KDE desktop dir != $HOME/Desktop ?
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon.in:120:    if [ "x`readlink -f "$desktop_dir"`" != "x`readlink -f "$desktop_dir_kde"`" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon.in-121-        # If so, don't create $HOME/Desktop if it doesn't exist
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon.in-127-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon.in:128:basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-icon.in-129-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-224-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:225:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-226-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-247-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:248:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-249-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-316-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:317:    version=`kde${KDE_SESSION_VERSION}-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:318:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:319:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:320:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-321-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-330-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:331:    terminal_exec=`which $terminal 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-332-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-354-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:355:    term_exec=`gconftool-2 --get ${term_exec_key}`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:356:    term_exec_arg=`gconftool-2 --get ${term_exec_arg_key}`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-357-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:358:    terminal_exec=`which $term_exec 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-359-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-402-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal:403:    terminal_exec=`which $TERM >/dev/null 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal-404-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-103-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:104:    filetype=`xdg-mime query filetype "$1" | sed "s/;.*//"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:105:    default=`xdg-mime query default "$filetype"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-106-    if [ -n "$default" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-112-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:113:        for x in `echo "$xdg_user_dir:$xdg_system_dirs" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-114-            local file
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-117-              file="$x/applications/$default"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:118:            elif [ -r "$x/applications/`echo $default | sed -e 's|-|/|'`" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:119:              file="$x/applications/`echo $default | sed -e 's|-|/|'`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-120-            fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-122-            if [ -r "$file" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:123:                command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:124:                command_exec=`which $command 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:125:                arguments="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | last_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:126:                arguments_exec="`echo $arguments | sed -e 's*%[fFuU]*"'"$1"'"*g'`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-127-                if [ -x "$command_exec" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-179-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in:180:            browser_with_arg=`printf "$browser" "$1" 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open.in-181-            if [ $? -ne 0 ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-39-    GTK_UPDATE_ICON_CACHE="-"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in:40:    for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-41-        DEBUG 3 "Checking $x for gtk-update-icon-cache"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-225-[ -n "$xdg_system_dirs" ] || xdg_system_dirs="/usr/local/share/:/usr/share/"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in:226:for x in `echo "$xdg_system_dirs" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-227-   if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-308-  local path
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in:309:  path=`readlink -f "$1" 2> /dev/null` # Normalize path
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-310-  DEBUG 2 "need_kde_icon_path $path"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-316-  # if kde-config not found... return 0
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in:317:  kde_icon_dirs=`kde${KDE_SESSION_VERSION}-config --path icon 2> /dev/null |sed 's/:/ /g'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-318-  DEBUG 3 "kde_icon_dirs: $kde_icon_dirs"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-325-  for y in $kde_icon_dirs ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in:326:    x=`readlink -f "$y"` # Normalize path
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-327-    DEBUG 3 "Normalize $y --> $x"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-350-    if need_kde_icon_path "$xdg_user_prefix" ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in:351:        kde_user_icon_dir=`kde${KDE_SESSION_VERSION}-config --path icon | cut -d ':' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-352-        kde_user_dir="$kde_user_icon_dir/$theme"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-386-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in:387:[ -n "$icon_name" ] || icon_name=`basename "$icon_file" | sed 's/\.[a-z][a-z][a-z]$//'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-388-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-392-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in:393:icon_icon_file=`echo "$icon_file" | sed 's/\.[a-z][a-z][a-z]$/.icon/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource.in-394-icon_icon_name="$icon_name.icon"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-258-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:259:    binary="`which "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:260:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:261:    base="`basename "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-262-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-272-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:273:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:274:            command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:275:            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-276-                # Fix any double slashes that got added path composition
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-289-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:290:    desktop="`basename "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-291-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-297-        # Remove any arguments (%F, %f, %U, %u, etc.).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:298:        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:299:        command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-300-        readlink -f "$command"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-410-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:411:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-412-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-433-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:434:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-435-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-554-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:555:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:556:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:557:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-558-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-576-   fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:577:   for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-578-      if [ -x $x/update-mime-database ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-838-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:839:    for x in `echo "$xdg_user_dir" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-840-        mimeapps_list="$x/applications/mimeapps.list"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-866-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:867:    for x in `echo "$xdg_system_dirs" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-868-       DEBUG 2 "Checking $x/applications/defaults.list"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:869:       trader_result=`grep "$MIME=" $x/applications/defaults.list 2> /dev/null | cut -d '=' -f 2 | cut -d ';' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-870-       if [ -n "$trader_result" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-939-        check_input_file "$filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:940:        filename=`readlink -f -- "$filename"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-941-        ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1142-[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:1143:for x in `echo $xdg_system_dirs | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1144-    if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1156-kde_global_dir=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:1157:kde_global_dirs=`kde${KDE_SESSION_VERSION}-config --path mime 2> /dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1158-DEBUG 3 "kde_global_dirs: $kde_global_dirs"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1159-first=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:1160:for x in `echo $kde_global_dirs | sed 's/:/ /g'` ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1161-    if [ -z "$first" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1198-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:1199:basefile=`basename "$filename"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1200-#[ -z $vendor ] || basefile="$vendor-$basefile"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1264-                DEBUG 1 "Installing $kde_dir/$x.desktop (KDE 3.x support)"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime:1265:                mkdir -p `dirname $kde_dir/$x.desktop`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime-1266-                awk < "$filename" '
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-158-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:159:    binary="`which "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:160:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:161:    base="`basename "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-162-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-172-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:173:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:174:            command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:175:            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-176-                # Fix any double slashes that got added path composition
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-189-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:190:    desktop="`basename "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-191-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-197-        # Remove any arguments (%F, %f, %U, %u, etc.).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:198:        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:199:        command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-200-        readlink -f "$command"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-310-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:311:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-312-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-333-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:334:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-335-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-454-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:455:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:456:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:457:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-458-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-499-    [ ! -f "$apps/$1" ] && return
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:500:    MIMETYPES="`grep "^MimeType=" "$apps/$1" | cut -d= -f 2-`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-501-    case "$MIMETYPES" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-508-    # Add the mime-type to the list
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:509:    temp="`mktemp "$apps/$1.XXXXXX"`" || return
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-510-    grep -v "^MimeType=" "$apps/$1" >> "$temp"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-512-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:513:    oldlines="`wc -l < "$apps/$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:514:    newlines="`wc -l < "$temp"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-515-    # The new file should have at least as many lines as the old.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-561-    fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:562:    orig="`get_browser_mime $MIME`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-563-    # Fixing the local desktop file can actually change the default browser all
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-583-    configkey="$3"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:584:    application="`kreadconfig --file $configfile --group $configsection --key $configkey`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-585-    if [ x"$application" != x ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-590-        # fine though).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:591:        configfile_dir=`kde${KDE_SESSION_VERSION}-config --path config  | cut -d ':' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-592-        configfile_path="$configfile_dir/$configfile"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-623-      !*)
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:624:        desktop="`binary_to_desktop_file "${browser#!}"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-625-        basename "$desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-650-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:651:    check="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-652-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-664-    browser="`get_browser_mime`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:665:    binary="`desktop_file_to_binary "$browser"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-666-    if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-692-        # have to find the desktop file to which it corresponds.
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:693:        desktop="`binary_to_desktop_file "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-694-        basename "$desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-699-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:700:    check="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-701-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-711-    for protocol in http https; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:712:        binary="`gconftool-2 --get /desktop/gnome/url-handlers/$protocol/command | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-713-        if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-718-    browser="`get_browser_mime`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:719:    binary="`desktop_file_to_binary "$browser"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-720-    if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-729-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:730:    binary="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-731-    [ "$binary" ] || exit_failure_file_missing
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-760-    desktop="$1"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:761:    check="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-762-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-767-    for protocol in http https; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:768:        browser="`get_browser_mime "x-scheme-handler/$protocol"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-769-        if [ x"$browser" != x"$desktop" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-779-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:780:    binary="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-781-    [ "$binary" ] || exit_failure_file_missing
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-801-        grep -q "^WebBrowser=" "$file" || continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:802:        desktop="`grep "^WebBrowser=" "$file" | cut -d= -f 2-`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-803-        echo "$desktop.desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-848-            # Change %F, %f, %U, and %u to "%s".
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:849:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | sed -e 's/%[FfUu]/"%s"/g'`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:850:            echo "X-XFCE-Commands=`echo "$command" | first_word`" >> "$target/$1"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-851-            echo "X-XFCE-CommandsWithParameter=$command" >> "$target/$1"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-872-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:873:    temp="`mktemp "$helpers_rc.XXXXXX"`" || return
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-874-    grep -v "^WebBrowser=" "$helpers_rc" >> "$temp"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-876-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:877:    oldlines="`wc -l < "$helpers_rc"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:878:    newlines="`wc -l < "$temp"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-879-    # The new file should have at least as many lines as the old.
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-924-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:925:    check="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-926-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-936-    fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:937:    handler="`get_browser_mime x-scheme-handler/$1`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:938:    binary="`desktop_file_to_binary "$handler"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-939-    if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-950-    if [ "$1" = "mailto" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:951:        binary="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-952-        kwriteconfig --file emaildefaults --group PROFILE_Default --key EmailClient "$binary"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-960-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:961:    binary="`gconftool-2 --get /desktop/gnome/url-handlers/$1/command | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-962-    if [ x"$binary" != x"" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-965-        # have to find the desktop file to which it corresponds.
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:966:        desktop="`binary_to_desktop_file "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-967-        basename "$desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-972-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:973:    check="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-974-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-977-    fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:978:    binary="`gconftool-2 --get /desktop/gnome/url-handlers/$1/command | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-979-    if [ x"$binary" != x"$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-988-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:989:    binary="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-990-    [ "$binary" ] || exit_failure_file_missing
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1007-    desktop="$2"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:1008:    check="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1009-    if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1012-    fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:1013:    browser="`get_browser_mime "x-scheme-handler/$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1014-    if [ x"$browser" != x"$desktop" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1023-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:1024:    binary="`desktop_file_to_binary "$2"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1025-    [ "$binary" ] || exit_failure_file_missing
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1122-    if [ x"$BROWSER" != x ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:1123:        binary="`which "${BROWSER%%:*}"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1124-    else
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1130-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:1131:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1132-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1135-    if [ x"$op" = x"get" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:1136:        desktop="`binary_to_desktop_file "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1137-        basename "$desktop"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1139-        # $op = "check"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings:1140:        check="`desktop_file_to_binary "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-settings-1141-        if [ -z "$check" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-188-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:189:    binary="`which "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:190:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:191:    base="`basename "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-192-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-202-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:203:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:204:            command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:205:            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-206-                # Fix any double slashes that got added path composition
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-219-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:220:    desktop="`basename "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-221-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-227-        # Remove any arguments (%F, %f, %U, %u, etc.).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:228:        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:229:        command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-230-        readlink -f "$command"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-340-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:341:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-342-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-363-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:364:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-365-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-484-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:485:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:486:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:487:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-488-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-549-    kde_email_profile_name=`kreadconfig --file emaildefaults --group Defaults --key Profile`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:550:    client=`kreadconfig --file emaildefaults --group PROFILE_"$kde_email_profile_name" --key EmailClient | cut -d ' ' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-551-    echo $client | grep thunderbird > /dev/null 2>&1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-588-    desktop=`xdg-mime query default "x-scheme-handler/mailto"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:589:    client=`desktop_file_to_binary "$browser"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-590-    echo $client | grep thunderbird > /dev/null 2>&1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-652-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:653:            browser_with_arg=`printf "$browser" "$1" 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-654-            if [ $? -ne 0 ]; then browser_with_arg=$browser;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-759-        check_input_file "$1"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:760:        file=`readlink -f "$1"` # Normalize path
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-761-        if [ -z "$file" -o ! -f "$file" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-812-# Strip trailing ? and &
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email:813:mailto=`echo "${mailto}"| sed 's/[?&]$//'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email-814-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-45-   fi
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:46:   for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-47-      if [ -x $x/update-mime-database ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-307-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:308:    for x in `echo "$xdg_user_dir" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-309-        mimeapps_list="$x/applications/mimeapps.list"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-335-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:336:    for x in `echo "$xdg_system_dirs" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-337-       DEBUG 2 "Checking $x/applications/defaults.list"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:338:       trader_result=`grep "$MIME=" $x/applications/defaults.list 2> /dev/null | cut -d '=' -f 2 | cut -d ';' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-339-       if [ -n "$trader_result" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-408-        check_input_file "$filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:409:        filename=`readlink -f -- "$filename"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-410-        ;;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-611-[ -n "$xdg_system_dirs" ] || xdg_system_dirs=/usr/local/share/:/usr/share/
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:612:for x in `echo $xdg_system_dirs | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-613-    if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-625-kde_global_dir=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:626:kde_global_dirs=`kde${KDE_SESSION_VERSION}-config --path mime 2> /dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-627-DEBUG 3 "kde_global_dirs: $kde_global_dirs"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-628-first=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:629:for x in `echo $kde_global_dirs | sed 's/:/ /g'` ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-630-    if [ -z "$first" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-667-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:668:basefile=`basename "$filename"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-669-#[ -z $vendor ] || basefile="$vendor-$basefile"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-733-                DEBUG 1 "Installing $kde_dir/$x.desktop (KDE 3.x support)"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in:734:                mkdir -p `dirname $kde_dir/$x.desktop`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-mime.in-735-                awk < "$filename" '
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-34-    if [ "$mode" = "system" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:35:        for x in `echo $PATH | sed 's/:/ /g'` /opt/gnome/bin; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-36-           if [ -x $x/update-desktop-database ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-76-        local default_app
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:77:        for x in `echo "$xdg_default_dirs" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-78-            DEBUG 2 "Checking $x/applications/defaults.list"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:79:            default_app=`grep "$MIME=" $x/applications/defaults.list 2> /dev/null | cut -d '=' -f 2`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-80-            if [ -n "$default_app" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-114-    xdg_global_dir=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:115:    for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-116-        if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-162-        # Work around for Debian Gnome
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:163:        gnome_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/gnome-applications-merged^'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-164-        if [ ! -e "$gnome_xdg_dir" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-165-            DEBUG 1 "Debian Workaround: Link '$xdg_dir' to '$gnome_xdg_dir'"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:166:            mkdir -p `dirname "$gnome_xdg_dir"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-167-            eval 'ln -s "applications-merged" "$gnome_xdg_dir"'$xdg_redirect_output
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-171-        # Work around for Mandriva 2006
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:172:        mandrake_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/applications-mdk-merged^'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-173-        if [ ! -e "$mandrake_xdg_dir" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-174-            DEBUG 1 "Mandriva Workaround: Link '$xdg_dir' to '$mandrake_xdg_dir'"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:175:            mkdir -p `dirname "$mandrake_xdg_dir"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-176-            eval 'ln -s "applications-merged" "$mandrake_xdg_dir"'$xdg_redirect_output
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-180-        # Work around for Fedora Core 5 + patched KDE
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:181:        kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-applications-merged^'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-182-        if [ ! -e "$kde_xdg_dir" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-183-            DEBUG 1 "Fedora Workaround: Link '$xdg_dir' to '$kde_xdg_dir'"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:184:            mkdir -p `dirname "$kde_xdg_dir"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-185-            eval 'ln -s "applications-merged" "$kde_xdg_dir"'$xdg_redirect_output
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-189-        # Work around for Kubuntu 6.06
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:190:        kde_xdg_dir=`echo "$xdg_dir" | sed -e 's^/applications-merged^/kde-applications-merged^'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-191-        DEBUG 1 "Kubuntu Workaround: Link '$xdg_dir' to 'kde-applications-merged'"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-199-    test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:200:    tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-201-    orig_desktop_files=
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-214-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:215:    orig_desktop_files=`cat $tmpfile`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-216-    new_desktop_files=
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-218-        for desktop_file in $desktop_files; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:219:            basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-220-            if ! grep '^'$basefile'$' $tmpfile > /dev/null 2> /dev/null ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-224-        done
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:225:        new_desktop_files=`cat $tmpfile`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-226-    fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-247-        test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:248:        tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-249-        (
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-256-            for desktop_file in $directory_files; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:257:                basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:258:                basefilename=`echo "$basefile"|cut -d '.' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-259-                echo "<Menu>"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-293-        test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:294:        tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-295-        for menu_file in $xdg_dir/*; do
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-445-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:446:    basefilename=`basename "$desktop_file" | cut -d '.' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-447-    if [ -z "$menu_name" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-477-xdg_global_dir=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:478:for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-479-    if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-508-for desktop_file in $directory_files; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:509:    basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-510-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-544-xdg_global_dir=
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:545:for x in `echo $xdg_system_dirs | sed 's/:/ /g'` ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-546-    if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-551-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:552:kde_user_dir=`kde${KDE_SESSION_VERSION}-config --path apps 2> /dev/null | cut -d ':' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:553:kde_global_dir=`kde${KDE_SESSION_VERSION}-config --path apps 2> /dev/null | cut -d ':' -f 2`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-554-[ -w $kde_global_dir ] || kde_global_dir=
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-587-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in:588:    basefile=`basename "$desktop_file"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-desktop-menu.in-589-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-135-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:136:    binary="`which "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:137:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:138:    base="`basename "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-139-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-149-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:150:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:151:            command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:152:            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-153-                # Fix any double slashes that got added path composition
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-166-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:167:    desktop="`basename "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-168-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-174-        # Remove any arguments (%F, %f, %U, %u, etc.).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:175:        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:176:        command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-177-        readlink -f "$command"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-287-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:288:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-289-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-310-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:311:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-312-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-431-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:432:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:433:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:434:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-435-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-512-{
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:513:    filetype=`xdg-mime query filetype "$1" | sed "s/;.*//"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:514:    default=`xdg-mime query default "$filetype"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-515-    if [ -n "$default" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-521-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:522:        for x in `echo "$xdg_user_dir:$xdg_system_dirs" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-523-            local file
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-526-              file="$x/applications/$default"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:527:            elif [ -r "$x/applications/`echo $default | sed -e 's|-|/|'`" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:528:              file="$x/applications/`echo $default | sed -e 's|-|/|'`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-529-            fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-531-            if [ -r "$file" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:532:                command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:533:                command_exec=`which $command 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:534:                arguments="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | last_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:535:                arguments_exec="`echo $arguments | sed -e 's*%[fFuU]*"'"$1"'"*g'`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-536-                if [ -x "$command_exec" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-588-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open:589:            browser_with_arg=`printf "$browser" "$1" 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-open-590-            if [ $? -ne 0 ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-88-    kde_email_profile_name=`kreadconfig --file emaildefaults --group Defaults --key Profile`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in:89:    client=`kreadconfig --file emaildefaults --group PROFILE_"$kde_email_profile_name" --key EmailClient | cut -d ' ' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-90-    echo $client | grep thunderbird > /dev/null 2>&1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-127-    desktop=`xdg-mime query default "x-scheme-handler/mailto"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in:128:    client=`desktop_file_to_binary "$browser"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-129-    echo $client | grep thunderbird > /dev/null 2>&1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-191-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in:192:            browser_with_arg=`printf "$browser" "$1" 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-193-            if [ $? -ne 0 ]; then browser_with_arg=$browser;
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-298-        check_input_file "$1"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in:299:        file=`readlink -f "$1"` # Normalize path
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-300-        if [ -z "$file" -o ! -f "$file" ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-351-# Strip trailing ? and &
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in:352:mailto=`echo "${mailto}"| sed 's/[?&]$//'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-email.in-353-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-163-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:164:    binary="`which "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:165:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:166:    base="`basename "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-167-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-177-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:178:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:179:            command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:180:            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-181-                # Fix any double slashes that got added path composition
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-194-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:195:    desktop="`basename "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-196-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-202-        # Remove any arguments (%F, %f, %U, %u, etc.).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:203:        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:204:        command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-205-        readlink -f "$command"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-315-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:316:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-317-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-338-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:339:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-340-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-459-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:460:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:461:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:462:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-463-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-473-   MV="mv -T"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:474:   screensaver_file="/tmp/xdg-screensaver-$USER-"`echo $DISPLAY | sed 's/:/-/g'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-475-else
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-478-   MV="mv"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:479:   screensaver_file="$HOME/.xdg-screensaver-"`echo $(hostname)-$DISPLAY | sed 's/:/-/g'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-480-fi
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-552-          test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:553:          tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-554-          $MV "$tmpfile" "$screensaver_file.dpms"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-565-  test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:566:  tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-567-  grep -v "$window_id:$xprop_pid\$" "$screensaver_file" > "$tmpfile" 2> /dev/null
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-582-  # Find the PID of the trackingprocess
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:583:  xprop_pid=`grep "$window_id:" "$screensaver_file" 2> /dev/null | cut -d ':' -f 2`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-584-  unlockfile # Free lockfile
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-617-  test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:618:  tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-619-  # Filter stale entries from the xdg-screensaver status file
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-677-        if [ -f "$screensaver_file.cookie" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:678:            value=`cat "$screensaver_file.cookie"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-679-            dbus-send --session \
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-712-        if [ -f "$screensaver_file.cookie" ] ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:713:            value=`cat "$screensaver_file.cookie"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-714-            dbus-send --session \
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-848-  test "${TMPDIR+set}" = set || TMPDIR=/tmp
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver:849:  tmpfile=`mktemp $TMPDIR/tmp.XXXXXXXXXX`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-screensaver-850-  # Filter stale entries from the xdg-screensaver status file
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in-34-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in:35:    terminal_exec=`which $terminal 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in-36-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in-58-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in:59:    term_exec=`gconftool-2 --get ${term_exec_key}`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in:60:    term_exec_arg=`gconftool-2 --get ${term_exec_arg_key}`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in-61-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in:62:    terminal_exec=`which $term_exec 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in-63-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in-106-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in:107:    terminal_exec=`which $TERM >/dev/null 2>/dev/null`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-terminal.in-108-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-228-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:229:    binary="`which "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:230:    binary="`readlink -f "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:231:    base="`basename "$binary"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-232-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-242-            grep -Eq "^(NoDisplay|Hidden)=true" "$file" && continue
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:243:            command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:244:            command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:245:            if [ x"`readlink -f "$command"`" = x"$binary" ]; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-246-                # Fix any double slashes that got added path composition
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-259-    search="${XDG_DATA_HOME:-$HOME/.local/share}:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:260:    desktop="`basename "$1"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-261-    IFS=:
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-267-        # Remove any arguments (%F, %f, %U, %u, etc.).
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:268:        command="`grep -E "^Exec(\[[^]=]*])?=" "$file" | cut -d= -f 2- | first_word`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:269:        command="`which "$command"`"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-270-        readlink -f "$command"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-380-    [ -n "$file_label" ] || file_label="filename"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:381:    file=`basename "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-382-    case "$file" in
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-403-    else
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:404:        DIR=`dirname "$1"`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-405-        if [ ! -w "$DIR" -o ! -x "$DIR" ]; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-524-    version=`LC_ALL=C.UTF-8 kde-config --version 2>/dev/null | grep '^KDE'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:525:    major=`echo $version | sed 's/KDE.*: \([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:526:    minor=`echo $version | sed 's/KDE.*: [0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:527:    release=`echo $version | sed 's/KDE.*: [0-9]*\.[0-9]*\.\([0-9]\).*/\1/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-528-    test "$major" -gt 3 && return $1
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-541-    GTK_UPDATE_ICON_CACHE="-"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:542:    for x in `echo "$PATH:/opt/gnome/bin" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-543-        DEBUG 3 "Checking $x for gtk-update-icon-cache"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-727-[ -n "$xdg_system_dirs" ] || xdg_system_dirs="/usr/local/share/:/usr/share/"
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:728:for x in `echo "$xdg_system_dirs" | sed 's/:/ /g'`; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-729-   if [ -w $x/$xdg_dir_name ] ; then
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-810-  local path
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:811:  path=`readlink -f "$1" 2> /dev/null` # Normalize path
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-812-  DEBUG 2 "need_kde_icon_path $path"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-818-  # if kde-config not found... return 0
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:819:  kde_icon_dirs=`kde${KDE_SESSION_VERSION}-config --path icon 2> /dev/null |sed 's/:/ /g'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-820-  DEBUG 3 "kde_icon_dirs: $kde_icon_dirs"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-827-  for y in $kde_icon_dirs ; do
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:828:    x=`readlink -f "$y"` # Normalize path
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-829-    DEBUG 3 "Normalize $y --> $x"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-852-    if need_kde_icon_path "$xdg_user_prefix" ; then
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:853:        kde_user_icon_dir=`kde${KDE_SESSION_VERSION}-config --path icon | cut -d ':' -f 1`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-854-        kde_user_dir="$kde_user_icon_dir/$theme"
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-888-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:889:[ -n "$icon_name" ] || icon_name=`basename "$icon_file" | sed 's/\.[a-z][a-z][a-z]$//'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-890-
##############################################
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-894-
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource:895:icon_icon_file=`echo "$icon_file" | sed 's/\.[a-z][a-z][a-z]$/.icon/'`
chromium-84.0.4147.105/third_party/xdg-utils/scripts/xdg-icon-resource-896-icon_icon_name="$icon_name.icon"
##############################################
chromium-84.0.4147.105/third_party/wuffs/src/lang/builtin/builtin.go-32-	// Suspensions.
chromium-84.0.4147.105/third_party/wuffs/src/lang/builtin/builtin.go:33:	`"$short read"`,
chromium-84.0.4147.105/third_party/wuffs/src/lang/builtin/builtin.go:34:	`"$short write"`,
chromium-84.0.4147.105/third_party/wuffs/src/lang/builtin/builtin.go-35-
##############################################
chromium-84.0.4147.105/third_party/wuffs/src/lang/ast/ast.go-304-// A zero ID0 means an identifier or literal in ID2, like `foo`, `42` or a
chromium-84.0.4147.105/third_party/wuffs/src/lang/ast/ast.go:305:// status literal like `"#foo"` or `pkg."$bar"`. For status literals, ID1 is
chromium-84.0.4147.105/third_party/wuffs/src/lang/ast/ast.go-306-// the package.
##############################################
chromium-84.0.4147.105/third_party/wuffs/src/script/bench-history.sh-36-  $cc -O3 -o bench-history.out test/c/std/$package.c
chromium-84.0.4147.105/third_party/wuffs/src/script/bench-history.sh:37:  this_metric=`./bench-history.out -bench -focus=$focus -iterscale=$iterscale -reps=$reps | benchstat /dev/stdin | sed -ne '/^name.*speed$/,$ p' | grep $focus`
chromium-84.0.4147.105/third_party/wuffs/src/script/bench-history.sh-38-  echo $this_hash $this_metric
##############################################
chromium-84.0.4147.105/third_party/wuffs/src/doc/changelog.md-37-- Removed `&^`.
chromium-84.0.4147.105/third_party/wuffs/src/doc/changelog.md:38:- Renamed `$(etc)` to `[etc]`.
chromium-84.0.4147.105/third_party/wuffs/src/doc/changelog.md-39-- Renamed `[i..j]` to `[i ..= j]`, consistent with Rust syntax.
##############################################
chromium-84.0.4147.105/third_party/pywebsocket3/src/example/echo_client.py-503-
chromium-84.0.4147.105/third_party/pywebsocket3/src/example/echo_client.py:504:    def get_remote_addr(self):
chromium-84.0.4147.105/third_party/pywebsocket3/src/example/echo_client.py-505-        return self._socket.getpeername()
##############################################
chromium-84.0.4147.105/third_party/pywebsocket3/src/mod_pywebsocket/request_handler.py-58-
chromium-84.0.4147.105/third_party/pywebsocket3/src/mod_pywebsocket/request_handler.py:59:    def get_local_addr(self):
chromium-84.0.4147.105/third_party/pywebsocket3/src/mod_pywebsocket/request_handler.py-60-        """Getter to mimic mp_conn.local_addr."""
##############################################
chromium-84.0.4147.105/third_party/pywebsocket3/src/mod_pywebsocket/request_handler.py-66-
chromium-84.0.4147.105/third_party/pywebsocket3/src/mod_pywebsocket/request_handler.py:67:    def get_remote_addr(self):
chromium-84.0.4147.105/third_party/pywebsocket3/src/mod_pywebsocket/request_handler.py-68-        """Getter to mimic mp_conn.remote_addr.
##############################################
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc-700-
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc:701:; XXX: Original asm used Function here, which is wrong.
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc-702-; This patches the SPIR-V to be correct.
##############################################
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc-746-
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc:747:; XXX: Original asm used Function here, which is wrong.
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc-748-; This patches the SPIR-V to be correct.
##############################################
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc-661-
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc:662:; XXX: Original asm used Function here, which is wrong.
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc-663-; This patches the SPIR-V to be correct.
##############################################
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc-234-
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc:235:; XXX: Original asm used Function here, which is wrong.
chromium-84.0.4147.105/third_party/spirv-cross/spirv-cross/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc-236-; This patches the SPIR-V to be correct.
##############################################
chromium-84.0.4147.105/third_party/cld_3/src/CMakeLists.txt-18-# For that, let's use a custom my_protobuf_generate_cpp:
chromium-84.0.4147.105/third_party/cld_3/src/CMakeLists.txt:19:include(${CMAKE_CURRENT_SOURCE_DIR}/misc/myprotobuf.cmake)
chromium-84.0.4147.105/third_party/cld_3/src/CMakeLists.txt-20-my_protobuf_generate_cpp(cld_3/protos PROTO_SRCS PROTO_HDRS src/feature_extractor.proto src/sentence.proto src/task_spec.proto)
##############################################
chromium-84.0.4147.105/third_party/logilab/logilab/common/umessage.py-169-        for person in self.get_all(header, ()):
chromium-84.0.4147.105/third_party/logilab/logilab/common/umessage.py:170:            name, mail = parseaddr(person)
chromium-84.0.4147.105/third_party/logilab/logilab/common/umessage.py-171-            persons.append((name, mail))
##############################################
chromium-84.0.4147.105/third_party/protobuf/m4/stl_hash.m4-49-   done
chromium-84.0.4147.105/third_party/protobuf/m4/stl_hash.m4:50:   ac_cv_cxx_hash_set=`echo "$ac_cv_cxx_hash_map" | sed s/map/set/`;
chromium-84.0.4147.105/third_party/protobuf/m4/stl_hash.m4:51:   ac_cv_cxx_hash_set_class=`echo "$ac_cv_cxx_hash_map_class" | sed s/map/set/`;
chromium-84.0.4147.105/third_party/protobuf/m4/stl_hash.m4-52-   if test -n "$ac_cv_cxx_hash_map"; then
##############################################
chromium-84.0.4147.105/third_party/protobuf/m4/acx_check_suncc.m4-35-      AS_IF([test "x$ISAINFO" != "xno"],
chromium-84.0.4147.105/third_party/protobuf/m4/acx_check_suncc.m4:36:            [isainfo_b=`${ISAINFO} -b`],
chromium-84.0.4147.105/third_party/protobuf/m4/acx_check_suncc.m4-37-            [isainfo_b="x"])
##############################################
chromium-84.0.4147.105/third_party/protobuf/m4/acx_check_suncc.m4-40-
chromium-84.0.4147.105/third_party/protobuf/m4/acx_check_suncc.m4:41:        isainfo_k=`${ISAINFO} -k`
chromium-84.0.4147.105/third_party/protobuf/m4/acx_check_suncc.m4-42-
##############################################
chromium-84.0.4147.105/third_party/protobuf/m4/ax_pthread.m4-296-	     ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
chromium-84.0.4147.105/third_party/protobuf/m4/ax_pthread.m4:297:	     ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
chromium-84.0.4147.105/third_party/protobuf/m4/ax_pthread.m4-298-	     ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
##############################################
chromium-84.0.4147.105/third_party/protobuf/java/compatibility_tests/v2.5.0/test.sh-119-# Collect the list of tests we need to run.
chromium-84.0.4147.105/third_party/protobuf/java/compatibility_tests/v2.5.0/test.sh:120:TESTS=`find tests -name "*Test.java" | sed "s|/|.|g;s/.java$//g;s/tests.src.main.java.//g"`
chromium-84.0.4147.105/third_party/protobuf/java/compatibility_tests/v2.5.0/test.sh-121-
##############################################
chromium-84.0.4147.105/third_party/protobuf/php/tests/compatibility_test.sh-47-  cat $1 | \
chromium-84.0.4147.105/third_party/protobuf/php/tests/compatibility_test.sh:48:  awk -v file=`basename $1` -v dir=`basename $(dirname $1)` '
chromium-84.0.4147.105/third_party/protobuf/php/tests/compatibility_test.sh-49-    BEGIN {
##############################################
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc-1911-    }
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc:1912:    printer->Print("goog.require('$name$');\n", "name", *it);
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc-1913-  }
##############################################
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc-2570-      "$comment$"
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc:2571:      " * This is a type-conversion wrapper around `get$defname$()`\n"
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc-2572-      " * @return {$type$}\n"
##############################################
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc-3403-      " * A tuple of {field number, class constructor} for the extension\n"
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc:3404:      " * field named `$nameInComment$`.\n"
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc-3405-      " * @type {!jspb.ExtensionFieldInfo<$extensionType$>}\n"
##############################################
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc-3661-      printer->Print(
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc:3662:          "var $alias$ = require('$file$');\n"
chromium-84.0.4147.105/third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc-3663-          "goog.object.extend(proto, $alias$);\n",
##############################################
chromium-84.0.4147.105/third_party/protobuf/post_process_dist.sh-30-LANGUAGES="cpp csharp java js objectivec python ruby php all"
chromium-84.0.4147.105/third_party/protobuf/post_process_dist.sh:31:BASENAME=`basename $1 .tar.gz`
chromium-84.0.4147.105/third_party/protobuf/post_process_dist.sh-32-VERSION=${BASENAME:9}
##############################################
chromium-84.0.4147.105/third_party/protobuf/python/setup.py-217-
chromium-84.0.4147.105/third_party/protobuf/python/setup.py:218:    if "clang" in os.popen('$CC --version 2> /dev/null').read():
chromium-84.0.4147.105/third_party/protobuf/python/setup.py-219-      extra_compile_args.append('-Wno-shorten-64-to-32')
##############################################
chromium-84.0.4147.105/third_party/protobuf/python/release.sh-13-
chromium-84.0.4147.105/third_party/protobuf/python/release.sh:14:  virtualenv --no-site-packages -p `which $PYTHON` test-venv
chromium-84.0.4147.105/third_party/protobuf/python/release.sh-15-
##############################################
chromium-84.0.4147.105/third_party/protobuf/benchmarks/php/PhpBenchmark.php-12-            substr($path, -strlen(NAME)) != NAME) {
chromium-84.0.4147.105/third_party/protobuf/benchmarks/php/PhpBenchmark.php:13:                require_once(substr($path, strlen($prefix) + 1));
chromium-84.0.4147.105/third_party/protobuf/benchmarks/php/PhpBenchmark.php-14-            } elseif (is_dir($path)) {
##############################################
chromium-84.0.4147.105/third_party/protobuf/benchmarks/Makefile.am-355-generate_gogo_data: protoc_middleman protoc_middleman2 gogo-data-scrubber
chromium-84.0.4147.105/third_party/protobuf/benchmarks/Makefile.am:356:	mkdir -p `dirname $(gogo_data)`
chromium-84.0.4147.105/third_party/protobuf/benchmarks/Makefile.am-357-	./gogo-data-scrubber $(all_data) $(gogo_data)
##############################################
chromium-84.0.4147.105/third_party/protobuf/benchmarks/Makefile.am-498-generate_proto3_data: protoc_middleman protoc_middleman2 proto3-data-stripper
chromium-84.0.4147.105/third_party/protobuf/benchmarks/Makefile.am:499:	mkdir -p `dirname $(proto3_data)`
chromium-84.0.4147.105/third_party/protobuf/benchmarks/Makefile.am-500-	./proto3-data-stripper $(all_data) $(proto3_data)
##############################################
chromium-84.0.4147.105/third_party/protobuf/cmake/protobuf-config.cmake.in-1-# User options
chromium-84.0.4147.105/third_party/protobuf/cmake/protobuf-config.cmake.in:2:include("${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake")
chromium-84.0.4147.105/third_party/protobuf/cmake/protobuf-config.cmake.in-3-
##############################################
chromium-84.0.4147.105/third_party/protobuf/cmake/protobuf-config.cmake.in-7-# Imported targets
chromium-84.0.4147.105/third_party/protobuf/cmake/protobuf-config.cmake.in:8:include("${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake")
chromium-84.0.4147.105/third_party/protobuf/cmake/protobuf-config.cmake.in-9-
##############################################
chromium-84.0.4147.105/third_party/protobuf/cmake/protobuf-config.cmake.in-125-if(protobuf_MODULE_COMPATIBLE)
chromium-84.0.4147.105/third_party/protobuf/cmake/protobuf-config.cmake.in:126:  include("${CMAKE_CURRENT_LIST_DIR}/protobuf-module.cmake")
chromium-84.0.4147.105/third_party/protobuf/cmake/protobuf-config.cmake.in-127-endif()
##############################################
chromium-84.0.4147.105/third_party/boringssl/linux-ppc64le/crypto/test/trampoline-ppc.S-1408-
chromium-84.0.4147.105/third_party/boringssl/linux-ppc64le/crypto/test/trampoline-ppc.S:1409:#endif  // !OPENSSL_NO_ASM && __powerpc64__
chromium-84.0.4147.105/third_party/boringssl/linux-ppc64le/crypto/test/trampoline-ppc.S-1410-.section	.note.GNU-stack,"",@progbits
##############################################
chromium-84.0.4147.105/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S-3668-.byte	0,12,0x14,0,0,0,0,0
chromium-84.0.4147.105/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S:3669:#endif  // !OPENSSL_NO_ASM && __powerpc64__
chromium-84.0.4147.105/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S-3670-.section	.note.GNU-stack,"",@progbits
##############################################
chromium-84.0.4147.105/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S-585-.align	2
chromium-84.0.4147.105/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S:586:#endif  // !OPENSSL_NO_ASM && __powerpc64__
chromium-84.0.4147.105/third_party/boringssl/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S-587-.section	.note.GNU-stack,"",@progbits
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/include/openssl/crypto.h-53-
chromium-84.0.4147.105/third_party/boringssl/src/include/openssl/crypto.h:54:// CRYPTO_has_asm returns one unless BoringSSL was built with OPENSSL_NO_ASM,
chromium-84.0.4147.105/third_party/boringssl/src/include/openssl/crypto.h-55-// in which case it returns zero.
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/crypto.c-28-// x86, x86_64, the ARMs and ppc64le need to record the result of a
chromium-84.0.4147.105/third_party/boringssl/src/crypto/crypto.c:29:// cpuid/getauxval call for the asm to work correctly, unless compiled without
chromium-84.0.4147.105/third_party/boringssl/src/crypto/crypto.c:30:// asm code.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/crypto.c-31-#define NEED_CPUID
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/crypto.c-40-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/crypto.c:41:#endif  // !NO_ASM && !STATIC_ARMCAP &&
chromium-84.0.4147.105/third_party/boringssl/src/crypto/crypto.c-42-        // (X86 || X86_64 || ARM || AARCH64 || PPC64LE)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/curve25519/asm/x25519-asm-arm.S-2131-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/curve25519/asm/x25519-asm-arm.S:2132:#endif  /* !OPENSSL_NO_ASM && __arm__ && !__APPLE__ */
chromium-84.0.4147.105/third_party/boringssl/src/crypto/curve25519/asm/x25519-asm-arm.S-2133-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl-153-	# Normally instructions would be interleaved to favour in-order
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl:154:	# execution. Generally out-of-order cores manage it gracefully,
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl-155-	# but not this time for some reason. As in-order execution
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl-657-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl:658:	"&movdqa	(\"`16*($c0-8)`(%rsp)\",$xc)",	# reload pair of 'c's
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl:659:	 "&movdqa	(\"`16*($c1-8)`(%rsp)\",$xc_)",
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl:660:	"&movdqa	($xc,\"`16*($c2-8)`(%rsp)\")",
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl:661:	 "&movdqa	($xc_,\"`16*($c3-8)`(%rsp)\")",
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl-662-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl-1240-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl:1241:	"&vmovdqa	(\"`32*($c0-8)`(%rsp)\",$xc)",	# reload pair of 'c's
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl:1242:	 "&vmovdqa	(\"`32*($c1-8)`(%rsp)\",$xc_)",
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl:1243:	"&vmovdqa	($xc,\"`32*($c2-8)`(%rsp)\")",
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl:1244:	 "&vmovdqa	($xc_,\"`32*($c3-8)`(%rsp)\")",
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/asm/chacha-x86_64.pl-1245-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/chacha_test.cc-259-}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/chacha/chacha_test.cc:260:#endif  // CHACHA20_ASM && SUPPORTS_ABI_TEST
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/hrss/hrss_test.cc-464-}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/hrss/hrss_test.cc:465:#endif  // POLY_RQ_MUL_ASM && SUPPORTS_ABI_TEST
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cpu-intel.c-290-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cpu-intel.c:291:#endif  // !OPENSSL_NO_ASM && (OPENSSL_X86 || OPENSSL_X86_64)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-175-# qhasm: len = input_3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:176:# asm 1: mov >len=int32#4,<input_3=int32#4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:177:# asm 2: mov >len=r3,<input_3=r3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-178-mov r3,r3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-182-# qhasm: y0  = mem64[input_1]y0[1]; input_1 += 8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:183:# asm 1: vld1.8 {<y0=reg128#1%bot},[<input_1=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:184:# asm 2: vld1.8 {<y0=d0},[<input_1=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-185-vld1.8 {d0},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-187-# qhasm: y12 = mem128[input_1]; input_1 += 16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:188:# asm 1: vld1.8 {>y12=reg128#2%bot->y12=reg128#2%top},[<input_1=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:189:# asm 2: vld1.8 {>y12=d2->y12=d3},[<input_1=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-190-vld1.8 {d2-d3},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-192-# qhasm: y34 = mem128[input_1]; input_1 += 16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:193:# asm 1: vld1.8 {>y34=reg128#3%bot->y34=reg128#3%top},[<input_1=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:194:# asm 2: vld1.8 {>y34=d4->y34=d5},[<input_1=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-195-vld1.8 {d4-d5},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-197-# qhasm: input_1 += 8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:198:# asm 1: add >input_1=int32#2,<input_1=int32#2,#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:199:# asm 2: add >input_1=r1,<input_1=r1,#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-200-add r1,r1,#8
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-204-# qhasm: z0  = mem64[input_1]z0[1]; input_1 += 8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:205:# asm 1: vld1.8 {<z0=reg128#4%bot},[<input_1=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:206:# asm 2: vld1.8 {<z0=d6},[<input_1=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-207-vld1.8 {d6},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-209-# qhasm: z12 = mem128[input_1]; input_1 += 16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:210:# asm 1: vld1.8 {>z12=reg128#5%bot->z12=reg128#5%top},[<input_1=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:211:# asm 2: vld1.8 {>z12=d8->z12=d9},[<input_1=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-212-vld1.8 {d8-d9},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-214-# qhasm: z34 = mem128[input_1]; input_1 += 16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:215:# asm 1: vld1.8 {>z34=reg128#6%bot->z34=reg128#6%top},[<input_1=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:216:# asm 2: vld1.8 {>z34=d10->z34=d11},[<input_1=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-217-vld1.8 {d10-d11},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-219-# qhasm: 2x mask = 0xffffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:220:# asm 1: vmov.i64 >mask=reg128#7,#0xffffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:221:# asm 2: vmov.i64 >mask=q6,#0xffffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-222-vmov.i64 q6,#0xffffffff
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-224-# qhasm: 2x u4 = 0xff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:225:# asm 1: vmov.i64 >u4=reg128#8,#0xff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:226:# asm 2: vmov.i64 >u4=q7,#0xff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-227-vmov.i64 q7,#0xff
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-229-# qhasm: x01 aligned= mem128[input_0];input_0+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:230:# asm 1: vld1.8 {>x01=reg128#9%bot->x01=reg128#9%top},[<input_0=int32#1,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:231:# asm 2: vld1.8 {>x01=d16->x01=d17},[<input_0=r0,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-232-vld1.8 {d16-d17},[r0,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-234-# qhasm: x23 aligned= mem128[input_0];input_0+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:235:# asm 1: vld1.8 {>x23=reg128#10%bot->x23=reg128#10%top},[<input_0=int32#1,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:236:# asm 2: vld1.8 {>x23=d18->x23=d19},[<input_0=r0,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-237-vld1.8 {d18-d19},[r0,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-239-# qhasm: x4  aligned= mem64[input_0]x4[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:240:# asm 1: vld1.8 {<x4=reg128#11%bot},[<input_0=int32#1,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:241:# asm 2: vld1.8 {<x4=d20},[<input_0=r0,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-242-vld1.8 {d20},[r0,: 64]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-244-# qhasm: input_0 -= 32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:245:# asm 1: sub >input_0=int32#1,<input_0=int32#1,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:246:# asm 2: sub >input_0=r0,<input_0=r0,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-247-sub r0,r0,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-249-# qhasm: 2x mask unsigned>>=6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:250:# asm 1: vshr.u64 >mask=reg128#7,<mask=reg128#7,#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:251:# asm 2: vshr.u64 >mask=q6,<mask=q6,#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-252-vshr.u64 q6,q6,#6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-254-# qhasm: 2x u4 unsigned>>= 7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:255:# asm 1: vshr.u64 >u4=reg128#8,<u4=reg128#8,#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:256:# asm 2: vshr.u64 >u4=q7,<u4=q7,#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-257-vshr.u64 q7,q7,#7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-259-# qhasm: 4x 5y12 = y12 << 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:260:# asm 1: vshl.i32 >5y12=reg128#12,<y12=reg128#2,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:261:# asm 2: vshl.i32 >5y12=q11,<y12=q1,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-262-vshl.i32 q11,q1,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-264-# qhasm: 4x 5y34 = y34 << 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:265:# asm 1: vshl.i32 >5y34=reg128#13,<y34=reg128#3,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:266:# asm 2: vshl.i32 >5y34=q12,<y34=q2,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-267-vshl.i32 q12,q2,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-269-# qhasm: 4x 5y12 += y12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:270:# asm 1: vadd.i32 >5y12=reg128#12,<5y12=reg128#12,<y12=reg128#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:271:# asm 2: vadd.i32 >5y12=q11,<5y12=q11,<y12=q1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-272-vadd.i32 q11,q11,q1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-274-# qhasm: 4x 5y34 += y34
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:275:# asm 1: vadd.i32 >5y34=reg128#13,<5y34=reg128#13,<y34=reg128#3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:276:# asm 2: vadd.i32 >5y34=q12,<5y34=q12,<y34=q2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-277-vadd.i32 q12,q12,q2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-279-# qhasm: 2x u4 <<= 24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:280:# asm 1: vshl.i64 >u4=reg128#8,<u4=reg128#8,#24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:281:# asm 2: vshl.i64 >u4=q7,<u4=q7,#24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-282-vshl.i64 q7,q7,#24
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-284-# qhasm: 4x 5z12 = z12 << 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:285:# asm 1: vshl.i32 >5z12=reg128#14,<z12=reg128#5,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:286:# asm 2: vshl.i32 >5z12=q13,<z12=q4,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-287-vshl.i32 q13,q4,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-289-# qhasm: 4x 5z34 = z34 << 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:290:# asm 1: vshl.i32 >5z34=reg128#15,<z34=reg128#6,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:291:# asm 2: vshl.i32 >5z34=q14,<z34=q5,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-292-vshl.i32 q14,q5,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-294-# qhasm: 4x 5z12 += z12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:295:# asm 1: vadd.i32 >5z12=reg128#14,<5z12=reg128#14,<z12=reg128#5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:296:# asm 2: vadd.i32 >5z12=q13,<5z12=q13,<z12=q4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-297-vadd.i32 q13,q13,q4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-299-# qhasm: 4x 5z34 += z34
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:300:# asm 1: vadd.i32 >5z34=reg128#15,<5z34=reg128#15,<z34=reg128#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:301:# asm 2: vadd.i32 >5z34=q14,<5z34=q14,<z34=q5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-302-vadd.i32 q14,q14,q5
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-326-# qhasm: ptr = &two24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:327:# asm 1: lea >ptr=int32#2,<two24=stack128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:328:# asm 2: lea >ptr=r1,<two24=[sp,#0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-329-add r1,sp,#0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-331-# qhasm: mem128[ptr] aligned= u4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:332:# asm 1: vst1.8 {<u4=reg128#8%bot-<u4=reg128#8%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:333:# asm 2: vst1.8 {<u4=d14-<u4=d15},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-334-vst1.8 {d14-d15},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-336-# qhasm: r4 = u4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:337:# asm 1: vmov >r4=reg128#16,<u4=reg128#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:338:# asm 2: vmov >r4=q15,<u4=q7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-339-vmov q15,q7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-341-# qhasm: r0 = u4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:342:# asm 1: vmov >r0=reg128#8,<u4=reg128#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:343:# asm 2: vmov >r0=q7,<u4=q7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-344-vmov q7,q7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-346-# qhasm: ptr = &y0_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:347:# asm 1: lea >ptr=int32#2,<y0_stack=stack128#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:348:# asm 2: lea >ptr=r1,<y0_stack=[sp,#16]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-349-add r1,sp,#16
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-351-# qhasm: mem128[ptr] aligned= y0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:352:# asm 1: vst1.8 {<y0=reg128#1%bot-<y0=reg128#1%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:353:# asm 2: vst1.8 {<y0=d0-<y0=d1},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-354-vst1.8 {d0-d1},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-356-# qhasm: ptr = &y12_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:357:# asm 1: lea >ptr=int32#2,<y12_stack=stack128#3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:358:# asm 2: lea >ptr=r1,<y12_stack=[sp,#32]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-359-add r1,sp,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-361-# qhasm: mem128[ptr] aligned= y12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:362:# asm 1: vst1.8 {<y12=reg128#2%bot-<y12=reg128#2%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:363:# asm 2: vst1.8 {<y12=d2-<y12=d3},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-364-vst1.8 {d2-d3},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-366-# qhasm: ptr = &y34_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:367:# asm 1: lea >ptr=int32#2,<y34_stack=stack128#4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:368:# asm 2: lea >ptr=r1,<y34_stack=[sp,#48]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-369-add r1,sp,#48
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-371-# qhasm: mem128[ptr] aligned= y34
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:372:# asm 1: vst1.8 {<y34=reg128#3%bot-<y34=reg128#3%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:373:# asm 2: vst1.8 {<y34=d4-<y34=d5},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-374-vst1.8 {d4-d5},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-376-# qhasm: ptr = &z0_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:377:# asm 1: lea >ptr=int32#2,<z0_stack=stack128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:378:# asm 2: lea >ptr=r1,<z0_stack=[sp,#96]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-379-add r1,sp,#96
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-381-# qhasm: mem128[ptr] aligned= z0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:382:# asm 1: vst1.8 {<z0=reg128#4%bot-<z0=reg128#4%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:383:# asm 2: vst1.8 {<z0=d6-<z0=d7},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-384-vst1.8 {d6-d7},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-386-# qhasm: ptr = &z12_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:387:# asm 1: lea >ptr=int32#2,<z12_stack=stack128#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:388:# asm 2: lea >ptr=r1,<z12_stack=[sp,#112]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-389-add r1,sp,#112
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-391-# qhasm: mem128[ptr] aligned= z12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:392:# asm 1: vst1.8 {<z12=reg128#5%bot-<z12=reg128#5%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:393:# asm 2: vst1.8 {<z12=d8-<z12=d9},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-394-vst1.8 {d8-d9},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-396-# qhasm: ptr = &z34_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:397:# asm 1: lea >ptr=int32#2,<z34_stack=stack128#9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:398:# asm 2: lea >ptr=r1,<z34_stack=[sp,#128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-399-add r1,sp,#128
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-401-# qhasm: mem128[ptr] aligned= z34
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:402:# asm 1: vst1.8 {<z34=reg128#6%bot-<z34=reg128#6%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:403:# asm 2: vst1.8 {<z34=d10-<z34=d11},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-404-vst1.8 {d10-d11},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-406-# qhasm: ptr = &5y12_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:407:# asm 1: lea >ptr=int32#2,<5y12_stack=stack128#5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:408:# asm 2: lea >ptr=r1,<5y12_stack=[sp,#64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-409-add r1,sp,#64
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-411-# qhasm: mem128[ptr] aligned= 5y12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:412:# asm 1: vst1.8 {<5y12=reg128#12%bot-<5y12=reg128#12%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:413:# asm 2: vst1.8 {<5y12=d22-<5y12=d23},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-414-vst1.8 {d22-d23},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-416-# qhasm: ptr = &5y34_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:417:# asm 1: lea >ptr=int32#2,<5y34_stack=stack128#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:418:# asm 2: lea >ptr=r1,<5y34_stack=[sp,#80]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-419-add r1,sp,#80
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-421-# qhasm: mem128[ptr] aligned= 5y34
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:422:# asm 1: vst1.8 {<5y34=reg128#13%bot-<5y34=reg128#13%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:423:# asm 2: vst1.8 {<5y34=d24-<5y34=d25},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-424-vst1.8 {d24-d25},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-426-# qhasm: ptr = &5z12_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:427:# asm 1: lea >ptr=int32#2,<5z12_stack=stack128#10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:428:# asm 2: lea >ptr=r1,<5z12_stack=[sp,#144]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-429-add r1,sp,#144
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-431-# qhasm: mem128[ptr] aligned= 5z12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:432:# asm 1: vst1.8 {<5z12=reg128#14%bot-<5z12=reg128#14%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:433:# asm 2: vst1.8 {<5z12=d26-<5z12=d27},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-434-vst1.8 {d26-d27},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-436-# qhasm: ptr = &5z34_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:437:# asm 1: lea >ptr=int32#2,<5z34_stack=stack128#11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:438:# asm 2: lea >ptr=r1,<5z34_stack=[sp,#160]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-439-add r1,sp,#160
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-441-# qhasm: mem128[ptr] aligned= 5z34
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:442:# asm 1: vst1.8 {<5z34=reg128#15%bot-<5z34=reg128#15%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:443:# asm 2: vst1.8 {<5z34=d28-<5z34=d29},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-444-vst1.8 {d28-d29},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-446-# qhasm:                       unsigned>? len - 64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:447:# asm 1: cmp <len=int32#4,#64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:448:# asm 2: cmp <len=r3,#64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-449-cmp r3,#64
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-454-# qhasm: input_2 += 32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:455:# asm 1: add >input_2=int32#2,<input_2=int32#3,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:456:# asm 2: add >input_2=r1,<input_2=r2,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-457-add r1,r2,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-462-# qhasm:   c01 = mem128[input_2];input_2+=16 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:463:# asm 1: vld1.8 {>c01=reg128#1%bot->c01=reg128#1%top},[<input_2=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:464:# asm 2: vld1.8 {>c01=d0->c01=d1},[<input_2=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-465-vld1.8 {d0-d1},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-467-# qhasm:   c23 = mem128[input_2];input_2+=16 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:468:# asm 1: vld1.8 {>c23=reg128#2%bot->c23=reg128#2%top},[<input_2=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:469:# asm 2: vld1.8 {>c23=d2->c23=d3},[<input_2=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-470-vld1.8 {d2-d3},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-472-# qhasm: r4[0,1] += x01[0] unsigned*  z34[2];  r4[2,3] += x01[1] unsigned*  z34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:473:# asm 1: vmlal.u32 <r4=reg128#16,<x01=reg128#9%bot,<z34=reg128#6%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:474:# asm 2: vmlal.u32 <r4=q15,<x01=d16,<z34=d11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-475-vmlal.u32 q15,d16,d11
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-477-# qhasm:   ptr = &z12_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:478:# asm 1: lea >ptr=int32#3,<z12_stack=stack128#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:479:# asm 2: lea >ptr=r2,<z12_stack=[sp,#112]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-480-add r2,sp,#112
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-482-# qhasm:   z12 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:483:# asm 1: vld1.8 {>z12=reg128#3%bot->z12=reg128#3%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:484:# asm 2: vld1.8 {>z12=d4->z12=d5},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-485-vld1.8 {d4-d5},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-487-# qhasm: r4[0,1] += x01[2] unsigned* z34[0];  r4[2,3] += x01[3] unsigned* z34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:488:# asm 1: vmlal.u32 <r4=reg128#16,<x01=reg128#9%top,<z34=reg128#6%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:489:# asm 2: vmlal.u32 <r4=q15,<x01=d17,<z34=d10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-490-vmlal.u32 q15,d17,d10
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-492-# qhasm:   ptr = &z0_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:493:# asm 1: lea >ptr=int32#3,<z0_stack=stack128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:494:# asm 2: lea >ptr=r2,<z0_stack=[sp,#96]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-495-add r2,sp,#96
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-497-# qhasm:   z0 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:498:# asm 1: vld1.8 {>z0=reg128#4%bot->z0=reg128#4%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:499:# asm 2: vld1.8 {>z0=d6->z0=d7},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-500-vld1.8 {d6-d7},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-502-# qhasm: r4[0,1] += x23[0] unsigned* z12[2];  r4[2,3] += x23[1] unsigned* z12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:503:# asm 1: vmlal.u32 <r4=reg128#16,<x23=reg128#10%bot,<z12=reg128#3%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:504:# asm 2: vmlal.u32 <r4=q15,<x23=d18,<z12=d5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-505-vmlal.u32 q15,d18,d5
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-507-# qhasm:   c01 c23 = c01[0]c01[1]c01[2]c23[2]c23[0]c23[1]c01[3]c23[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:508:# asm 1: vtrn.32 <c01=reg128#1%top,<c23=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:509:# asm 2: vtrn.32 <c01=d1,<c23=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-510-vtrn.32 d1,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-512-# qhasm: r4[0,1] += x23[2] unsigned* z12[0];  r4[2,3] += x23[3] unsigned* z12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:513:# asm 1: vmlal.u32 <r4=reg128#16,<x23=reg128#10%top,<z12=reg128#3%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:514:# asm 2: vmlal.u32 <r4=q15,<x23=d19,<z12=d4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-515-vmlal.u32 q15,d19,d4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-517-# qhasm: r4[0,1] +=  x4[0] unsigned* z0[0];  r4[2,3] +=  x4[1] unsigned* z0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:518:# asm 1: vmlal.u32 <r4=reg128#16,<x4=reg128#11%bot,<z0=reg128#4%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:519:# asm 2: vmlal.u32 <r4=q15,<x4=d20,<z0=d6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-520-vmlal.u32 q15,d20,d6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-522-# qhasm: r3[0,1] = c23[2]<<18; r3[2,3] = c23[3]<<18 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:523:# asm 1: vshll.u32 >r3=reg128#5,<c23=reg128#2%top,#18
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:524:# asm 2: vshll.u32 >r3=q4,<c23=d3,#18
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-525-vshll.u32 q4,d3,#18
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-527-# qhasm:   c01 c23 = c01[0]c23[0]c01[2]c01[3]c01[1]c23[1]c23[2]c23[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:528:# asm 1: vtrn.32 <c01=reg128#1%bot,<c23=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:529:# asm 2: vtrn.32 <c01=d0,<c23=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-530-vtrn.32 d0,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-532-# qhasm: r3[0,1] += x01[0] unsigned* z34[0];   r3[2,3] += x01[1] unsigned* z34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:533:# asm 1: vmlal.u32 <r3=reg128#5,<x01=reg128#9%bot,<z34=reg128#6%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:534:# asm 2: vmlal.u32 <r3=q4,<x01=d16,<z34=d10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-535-vmlal.u32 q4,d16,d10
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-537-# qhasm: r3[0,1] += x01[2] unsigned* z12[2];   r3[2,3] += x01[3] unsigned* z12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:538:# asm 1: vmlal.u32 <r3=reg128#5,<x01=reg128#9%top,<z12=reg128#3%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:539:# asm 2: vmlal.u32 <r3=q4,<x01=d17,<z12=d5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-540-vmlal.u32 q4,d17,d5
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-542-# qhasm:   r0 = r0[1]c01[0]r0[2,3] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:543:# asm 1: vext.32 <r0=reg128#8%bot,<r0=reg128#8%bot,<c01=reg128#1%bot,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:544:# asm 2: vext.32 <r0=d14,<r0=d14,<c01=d0,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-545-vext.32 d14,d14,d0,#1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-547-# qhasm: r3[0,1] += x23[0] unsigned* z12[0];   r3[2,3] += x23[1] unsigned* z12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:548:# asm 1: vmlal.u32 <r3=reg128#5,<x23=reg128#10%bot,<z12=reg128#3%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:549:# asm 2: vmlal.u32 <r3=q4,<x23=d18,<z12=d4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-550-vmlal.u32 q4,d18,d4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-552-# qhasm: 								input_2 -= 64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:553:# asm 1: sub >input_2=int32#2,<input_2=int32#2,#64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:554:# asm 2: sub >input_2=r1,<input_2=r1,#64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-555-sub r1,r1,#64
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-557-# qhasm: r3[0,1] += x23[2] unsigned* z0[0];   r3[2,3] += x23[3] unsigned* z0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:558:# asm 1: vmlal.u32 <r3=reg128#5,<x23=reg128#10%top,<z0=reg128#4%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:559:# asm 2: vmlal.u32 <r3=q4,<x23=d19,<z0=d6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-560-vmlal.u32 q4,d19,d6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-562-# qhasm:   ptr = &5z34_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:563:# asm 1: lea >ptr=int32#3,<5z34_stack=stack128#11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:564:# asm 2: lea >ptr=r2,<5z34_stack=[sp,#160]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-565-add r2,sp,#160
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-567-# qhasm:   5z34 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:568:# asm 1: vld1.8 {>5z34=reg128#6%bot->5z34=reg128#6%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:569:# asm 2: vld1.8 {>5z34=d10->5z34=d11},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-570-vld1.8 {d10-d11},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-572-# qhasm: r3[0,1] +=  x4[0] unsigned*  5z34[2]; r3[2,3] +=  x4[1] unsigned*  5z34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:573:# asm 1: vmlal.u32 <r3=reg128#5,<x4=reg128#11%bot,<5z34=reg128#6%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:574:# asm 2: vmlal.u32 <r3=q4,<x4=d20,<5z34=d11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-575-vmlal.u32 q4,d20,d11
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-577-# qhasm:   r0 = r0[1]r0[0]r0[3]r0[2] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:578:# asm 1: vrev64.i32 >r0=reg128#8,<r0=reg128#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:579:# asm 2: vrev64.i32 >r0=q7,<r0=q7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-580-vrev64.i32 q7,q7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-582-# qhasm:   r2[0,1] = c01[2]<<12; r2[2,3] = c01[3]<<12 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:583:# asm 1: vshll.u32 >r2=reg128#14,<c01=reg128#1%top,#12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:584:# asm 2: vshll.u32 >r2=q13,<c01=d1,#12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-585-vshll.u32 q13,d1,#12
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-587-# qhasm:   		d01 = mem128[input_2];input_2+=16 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:588:# asm 1: vld1.8 {>d01=reg128#12%bot->d01=reg128#12%top},[<input_2=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:589:# asm 2: vld1.8 {>d01=d22->d01=d23},[<input_2=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-590-vld1.8 {d22-d23},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-592-# qhasm: r2[0,1] += x01[0] unsigned* z12[2];   r2[2,3] += x01[1] unsigned* z12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:593:# asm 1: vmlal.u32 <r2=reg128#14,<x01=reg128#9%bot,<z12=reg128#3%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:594:# asm 2: vmlal.u32 <r2=q13,<x01=d16,<z12=d5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-595-vmlal.u32 q13,d16,d5
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-597-# qhasm: r2[0,1] += x01[2] unsigned* z12[0];   r2[2,3] += x01[3] unsigned* z12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:598:# asm 1: vmlal.u32 <r2=reg128#14,<x01=reg128#9%top,<z12=reg128#3%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:599:# asm 2: vmlal.u32 <r2=q13,<x01=d17,<z12=d4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-600-vmlal.u32 q13,d17,d4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-602-# qhasm: r2[0,1] += x23[0] unsigned* z0[0];   r2[2,3] += x23[1] unsigned* z0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:603:# asm 1: vmlal.u32 <r2=reg128#14,<x23=reg128#10%bot,<z0=reg128#4%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:604:# asm 2: vmlal.u32 <r2=q13,<x23=d18,<z0=d6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-605-vmlal.u32 q13,d18,d6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-607-# qhasm: r2[0,1] += x23[2] unsigned*  5z34[2]; r2[2,3] += x23[3] unsigned*  5z34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:608:# asm 1: vmlal.u32 <r2=reg128#14,<x23=reg128#10%top,<5z34=reg128#6%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:609:# asm 2: vmlal.u32 <r2=q13,<x23=d19,<5z34=d11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-610-vmlal.u32 q13,d19,d11
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-612-# qhasm: r2[0,1] +=  x4[0] unsigned* 5z34[0]; r2[2,3] +=  x4[1] unsigned* 5z34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:613:# asm 1: vmlal.u32 <r2=reg128#14,<x4=reg128#11%bot,<5z34=reg128#6%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:614:# asm 2: vmlal.u32 <r2=q13,<x4=d20,<5z34=d10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-615-vmlal.u32 q13,d20,d10
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-617-# qhasm:   r0 = r0[0,1]c01[1]r0[2] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:618:# asm 1: vext.32 <r0=reg128#8%top,<c01=reg128#1%bot,<r0=reg128#8%top,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:619:# asm 2: vext.32 <r0=d15,<c01=d0,<r0=d15,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-620-vext.32 d15,d0,d15,#1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-622-# qhasm:   r1[0,1] = c23[0]<<6; r1[2,3] = c23[1]<<6 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:623:# asm 1: vshll.u32 >r1=reg128#15,<c23=reg128#2%bot,#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:624:# asm 2: vshll.u32 >r1=q14,<c23=d2,#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-625-vshll.u32 q14,d2,#6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-627-# qhasm: r1[0,1] += x01[0] unsigned* z12[0];   r1[2,3] += x01[1] unsigned* z12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:628:# asm 1: vmlal.u32 <r1=reg128#15,<x01=reg128#9%bot,<z12=reg128#3%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:629:# asm 2: vmlal.u32 <r1=q14,<x01=d16,<z12=d4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-630-vmlal.u32 q14,d16,d4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-632-# qhasm: r1[0,1] += x01[2] unsigned* z0[0];   r1[2,3] += x01[3] unsigned* z0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:633:# asm 1: vmlal.u32 <r1=reg128#15,<x01=reg128#9%top,<z0=reg128#4%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:634:# asm 2: vmlal.u32 <r1=q14,<x01=d17,<z0=d6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-635-vmlal.u32 q14,d17,d6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-637-# qhasm: r1[0,1] += x23[0] unsigned*  5z34[2]; r1[2,3] += x23[1] unsigned*  5z34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:638:# asm 1: vmlal.u32 <r1=reg128#15,<x23=reg128#10%bot,<5z34=reg128#6%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:639:# asm 2: vmlal.u32 <r1=q14,<x23=d18,<5z34=d11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-640-vmlal.u32 q14,d18,d11
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-642-# qhasm: r1[0,1] += x23[2] unsigned* 5z34[0]; r1[2,3] += x23[3] unsigned* 5z34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:643:# asm 1: vmlal.u32 <r1=reg128#15,<x23=reg128#10%top,<5z34=reg128#6%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:644:# asm 2: vmlal.u32 <r1=q14,<x23=d19,<5z34=d10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-645-vmlal.u32 q14,d19,d10
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-647-# qhasm: ptr = &5z12_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:648:# asm 1: lea >ptr=int32#3,<5z12_stack=stack128#10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:649:# asm 2: lea >ptr=r2,<5z12_stack=[sp,#144]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-650-add r2,sp,#144
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-652-# qhasm: 5z12 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:653:# asm 1: vld1.8 {>5z12=reg128#1%bot->5z12=reg128#1%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:654:# asm 2: vld1.8 {>5z12=d0->5z12=d1},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-655-vld1.8 {d0-d1},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-657-# qhasm: r1[0,1] +=  x4[0] unsigned* 5z12[2]; r1[2,3] +=  x4[1] unsigned* 5z12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:658:# asm 1: vmlal.u32 <r1=reg128#15,<x4=reg128#11%bot,<5z12=reg128#1%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:659:# asm 2: vmlal.u32 <r1=q14,<x4=d20,<5z12=d1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-660-vmlal.u32 q14,d20,d1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-662-# qhasm:   		d23 = mem128[input_2];input_2+=16 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:663:# asm 1: vld1.8 {>d23=reg128#2%bot->d23=reg128#2%top},[<input_2=int32#2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:664:# asm 2: vld1.8 {>d23=d2->d23=d3},[<input_2=r1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-665-vld1.8 {d2-d3},[r1]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-667-# qhasm:   		input_2 += 32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:668:# asm 1: add >input_2=int32#2,<input_2=int32#2,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:669:# asm 2: add >input_2=r1,<input_2=r1,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-670-add r1,r1,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-672-# qhasm: r0[0,1] +=  x4[0] unsigned* 5z12[0]; r0[2,3] +=  x4[1] unsigned* 5z12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:673:# asm 1: vmlal.u32 <r0=reg128#8,<x4=reg128#11%bot,<5z12=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:674:# asm 2: vmlal.u32 <r0=q7,<x4=d20,<5z12=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-675-vmlal.u32 q7,d20,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-677-# qhasm: r0[0,1] += x23[0] unsigned* 5z34[0]; r0[2,3] += x23[1] unsigned* 5z34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:678:# asm 1: vmlal.u32 <r0=reg128#8,<x23=reg128#10%bot,<5z34=reg128#6%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:679:# asm 2: vmlal.u32 <r0=q7,<x23=d18,<5z34=d10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-680-vmlal.u32 q7,d18,d10
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-682-# qhasm:   		d01 d23 = d01[0] d23[0] d01[1] d23[1] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:683:# asm 1: vswp <d23=reg128#2%bot,<d01=reg128#12%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:684:# asm 2: vswp <d23=d2,<d01=d23
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-685-vswp d2,d23
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-687-# qhasm: r0[0,1] += x23[2] unsigned* 5z12[2]; r0[2,3] += x23[3] unsigned* 5z12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:688:# asm 1: vmlal.u32 <r0=reg128#8,<x23=reg128#10%top,<5z12=reg128#1%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:689:# asm 2: vmlal.u32 <r0=q7,<x23=d19,<5z12=d1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-690-vmlal.u32 q7,d19,d1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-692-# qhasm: r0[0,1] += x01[0] unsigned* z0[0];   r0[2,3] += x01[1] unsigned* z0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:693:# asm 1: vmlal.u32 <r0=reg128#8,<x01=reg128#9%bot,<z0=reg128#4%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:694:# asm 2: vmlal.u32 <r0=q7,<x01=d16,<z0=d6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-695-vmlal.u32 q7,d16,d6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-699-# qhasm:   		2x v4 = d23 unsigned>> 40  
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:700:# asm 1: vshr.u64 >v4=reg128#4,<d23=reg128#2,#40
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:701:# asm 2: vshr.u64 >v4=q3,<d23=q1,#40
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-702-vshr.u64 q3,q1,#40
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-704-# qhasm:   		mid = d01[1]d23[0] mid[2,3] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:705:# asm 1: vext.32 <mid=reg128#1%bot,<d01=reg128#12%bot,<d23=reg128#2%bot,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:706:# asm 2: vext.32 <mid=d0,<d01=d22,<d23=d2,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-707-vext.32 d0,d22,d2,#1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-711-# qhasm:   		v23[2] = d23[0,1] unsigned>> 14; v23[3] = d23[2,3] unsigned>> 14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:712:# asm 1: vshrn.u64 <v23=reg128#10%top,<d23=reg128#2,#14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:713:# asm 2: vshrn.u64 <v23=d19,<d23=q1,#14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-714-vshrn.u64 d19,q1,#14
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-716-# qhasm:   		mid = mid[0,1] d01[3]d23[2] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:717:# asm 1: vext.32 <mid=reg128#1%top,<d01=reg128#12%top,<d23=reg128#2%top,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:718:# asm 2: vext.32 <mid=d1,<d01=d23,<d23=d3,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-719-vext.32 d1,d23,d3,#1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-723-# qhasm:   		v01[2] = d01[0,1] unsigned>> 26; v01[3] = d01[2,3] unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:724:# asm 1: vshrn.u64 <v01=reg128#11%top,<d01=reg128#12,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:725:# asm 2: vshrn.u64 <v01=d21,<d01=q11,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-726-vshrn.u64 d21,q11,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-728-# qhasm:   		v01 = d01[1]d01[0] v01[2,3] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:729:# asm 1: vext.32 <v01=reg128#11%bot,<d01=reg128#12%bot,<d01=reg128#12%bot,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:730:# asm 2: vext.32 <v01=d20,<d01=d22,<d01=d22,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-731-vext.32 d20,d22,d22,#1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-733-# qhasm: r0[0,1] += x01[2] unsigned*  5z34[2]; r0[2,3] += x01[3] unsigned*  5z34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:734:# asm 1: vmlal.u32 <r0=reg128#8,<x01=reg128#9%top,<5z34=reg128#6%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:735:# asm 2: vmlal.u32 <r0=q7,<x01=d17,<5z34=d11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-736-vmlal.u32 q7,d17,d11
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-738-# qhasm:   		v01 = v01[1]d01[2] v01[2,3] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:739:# asm 1: vext.32 <v01=reg128#11%bot,<v01=reg128#11%bot,<d01=reg128#12%top,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:740:# asm 2: vext.32 <v01=d20,<v01=d20,<d01=d23,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-741-vext.32 d20,d20,d23,#1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-743-# qhasm:   		v23[0] = mid[0,1] unsigned>> 20; v23[1] = mid[2,3] unsigned>> 20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:744:# asm 1: vshrn.u64 <v23=reg128#10%bot,<mid=reg128#1,#20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:745:# asm 2: vshrn.u64 <v23=d18,<mid=q0,#20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-746-vshrn.u64 d18,q0,#20
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-748-# qhasm:   		v4 = v4[0]v4[2]v4[1]v4[3]  
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:749:# asm 1: vtrn.32 <v4=reg128#4%bot,<v4=reg128#4%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:750:# asm 2: vtrn.32 <v4=d6,<v4=d7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-751-vtrn.32 d6,d7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-753-# qhasm:   		4x v01 &= 0x03ffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:754:# asm 1: vand.i32 <v01=reg128#11,#0x03ffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:755:# asm 2: vand.i32 <v01=q10,#0x03ffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-756-vand.i32 q10,#0x03ffffff
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-758-# qhasm: ptr = &y34_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:759:# asm 1: lea >ptr=int32#3,<y34_stack=stack128#4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:760:# asm 2: lea >ptr=r2,<y34_stack=[sp,#48]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-761-add r2,sp,#48
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-763-# qhasm: y34 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:764:# asm 1: vld1.8 {>y34=reg128#3%bot->y34=reg128#3%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:765:# asm 2: vld1.8 {>y34=d4->y34=d5},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-766-vld1.8 {d4-d5},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-768-# qhasm:   		4x v23 &= 0x03ffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:769:# asm 1: vand.i32 <v23=reg128#10,#0x03ffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:770:# asm 2: vand.i32 <v23=q9,#0x03ffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-771-vand.i32 q9,#0x03ffffff
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-773-# qhasm: ptr = &y12_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:774:# asm 1: lea >ptr=int32#3,<y12_stack=stack128#3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:775:# asm 2: lea >ptr=r2,<y12_stack=[sp,#32]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-776-add r2,sp,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-778-# qhasm: y12 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:779:# asm 1: vld1.8 {>y12=reg128#2%bot->y12=reg128#2%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:780:# asm 2: vld1.8 {>y12=d2->y12=d3},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-781-vld1.8 {d2-d3},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-783-# qhasm:   		4x v4 |= 0x01000000
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:784:# asm 1: vorr.i32 <v4=reg128#4,#0x01000000
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:785:# asm 2: vorr.i32 <v4=q3,#0x01000000
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-786-vorr.i32 q3,#0x01000000
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-788-# qhasm: ptr = &y0_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:789:# asm 1: lea >ptr=int32#3,<y0_stack=stack128#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:790:# asm 2: lea >ptr=r2,<y0_stack=[sp,#16]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-791-add r2,sp,#16
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-793-# qhasm: y0 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:794:# asm 1: vld1.8 {>y0=reg128#1%bot->y0=reg128#1%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:795:# asm 2: vld1.8 {>y0=d0->y0=d1},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-796-vld1.8 {d0-d1},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-798-# qhasm: r4[0,1] += v01[0] unsigned*  y34[2];  r4[2,3] += v01[1] unsigned*  y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:799:# asm 1: vmlal.u32 <r4=reg128#16,<v01=reg128#11%bot,<y34=reg128#3%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:800:# asm 2: vmlal.u32 <r4=q15,<v01=d20,<y34=d5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-801-vmlal.u32 q15,d20,d5
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-803-# qhasm: r4[0,1] += v01[2] unsigned* y34[0];  r4[2,3] += v01[3] unsigned* y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:804:# asm 1: vmlal.u32 <r4=reg128#16,<v01=reg128#11%top,<y34=reg128#3%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:805:# asm 2: vmlal.u32 <r4=q15,<v01=d21,<y34=d4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-806-vmlal.u32 q15,d21,d4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-808-# qhasm: r4[0,1] += v23[0] unsigned* y12[2];  r4[2,3] += v23[1] unsigned* y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:809:# asm 1: vmlal.u32 <r4=reg128#16,<v23=reg128#10%bot,<y12=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:810:# asm 2: vmlal.u32 <r4=q15,<v23=d18,<y12=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-811-vmlal.u32 q15,d18,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-813-# qhasm: r4[0,1] += v23[2] unsigned* y12[0];  r4[2,3] += v23[3] unsigned* y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:814:# asm 1: vmlal.u32 <r4=reg128#16,<v23=reg128#10%top,<y12=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:815:# asm 2: vmlal.u32 <r4=q15,<v23=d19,<y12=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-816-vmlal.u32 q15,d19,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-818-# qhasm: r4[0,1] +=  v4[0] unsigned* y0[0];  r4[2,3] +=  v4[1] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:819:# asm 1: vmlal.u32 <r4=reg128#16,<v4=reg128#4%bot,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:820:# asm 2: vmlal.u32 <r4=q15,<v4=d6,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-821-vmlal.u32 q15,d6,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-823-# qhasm: ptr = &5y34_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:824:# asm 1: lea >ptr=int32#3,<5y34_stack=stack128#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:825:# asm 2: lea >ptr=r2,<5y34_stack=[sp,#80]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-826-add r2,sp,#80
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-828-# qhasm: 5y34 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:829:# asm 1: vld1.8 {>5y34=reg128#13%bot->5y34=reg128#13%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:830:# asm 2: vld1.8 {>5y34=d24->5y34=d25},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-831-vld1.8 {d24-d25},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-833-# qhasm: r3[0,1] += v01[0] unsigned* y34[0];   r3[2,3] += v01[1] unsigned* y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:834:# asm 1: vmlal.u32 <r3=reg128#5,<v01=reg128#11%bot,<y34=reg128#3%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:835:# asm 2: vmlal.u32 <r3=q4,<v01=d20,<y34=d4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-836-vmlal.u32 q4,d20,d4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-838-# qhasm: r3[0,1] += v01[2] unsigned* y12[2];   r3[2,3] += v01[3] unsigned* y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:839:# asm 1: vmlal.u32 <r3=reg128#5,<v01=reg128#11%top,<y12=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:840:# asm 2: vmlal.u32 <r3=q4,<v01=d21,<y12=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-841-vmlal.u32 q4,d21,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-843-# qhasm: r3[0,1] += v23[0] unsigned* y12[0];   r3[2,3] += v23[1] unsigned* y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:844:# asm 1: vmlal.u32 <r3=reg128#5,<v23=reg128#10%bot,<y12=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:845:# asm 2: vmlal.u32 <r3=q4,<v23=d18,<y12=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-846-vmlal.u32 q4,d18,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-848-# qhasm: r3[0,1] += v23[2] unsigned* y0[0];   r3[2,3] += v23[3] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:849:# asm 1: vmlal.u32 <r3=reg128#5,<v23=reg128#10%top,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:850:# asm 2: vmlal.u32 <r3=q4,<v23=d19,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-851-vmlal.u32 q4,d19,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-853-# qhasm: r3[0,1] +=  v4[0] unsigned*  5y34[2]; r3[2,3] +=  v4[1] unsigned*  5y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:854:# asm 1: vmlal.u32 <r3=reg128#5,<v4=reg128#4%bot,<5y34=reg128#13%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:855:# asm 2: vmlal.u32 <r3=q4,<v4=d6,<5y34=d25
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-856-vmlal.u32 q4,d6,d25
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-858-# qhasm: ptr = &5y12_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:859:# asm 1: lea >ptr=int32#3,<5y12_stack=stack128#5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:860:# asm 2: lea >ptr=r2,<5y12_stack=[sp,#64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-861-add r2,sp,#64
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-863-# qhasm: 5y12 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:864:# asm 1: vld1.8 {>5y12=reg128#12%bot->5y12=reg128#12%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:865:# asm 2: vld1.8 {>5y12=d22->5y12=d23},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-866-vld1.8 {d22-d23},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-868-# qhasm: r0[0,1] +=  v4[0] unsigned* 5y12[0]; r0[2,3] +=  v4[1] unsigned* 5y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:869:# asm 1: vmlal.u32 <r0=reg128#8,<v4=reg128#4%bot,<5y12=reg128#12%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:870:# asm 2: vmlal.u32 <r0=q7,<v4=d6,<5y12=d22
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-871-vmlal.u32 q7,d6,d22
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-873-# qhasm: r0[0,1] += v23[0] unsigned* 5y34[0]; r0[2,3] += v23[1] unsigned* 5y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:874:# asm 1: vmlal.u32 <r0=reg128#8,<v23=reg128#10%bot,<5y34=reg128#13%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:875:# asm 2: vmlal.u32 <r0=q7,<v23=d18,<5y34=d24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-876-vmlal.u32 q7,d18,d24
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-878-# qhasm: r0[0,1] += v23[2] unsigned* 5y12[2]; r0[2,3] += v23[3] unsigned* 5y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:879:# asm 1: vmlal.u32 <r0=reg128#8,<v23=reg128#10%top,<5y12=reg128#12%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:880:# asm 2: vmlal.u32 <r0=q7,<v23=d19,<5y12=d23
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-881-vmlal.u32 q7,d19,d23
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-883-# qhasm: r0[0,1] += v01[0] unsigned* y0[0];   r0[2,3] += v01[1] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:884:# asm 1: vmlal.u32 <r0=reg128#8,<v01=reg128#11%bot,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:885:# asm 2: vmlal.u32 <r0=q7,<v01=d20,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-886-vmlal.u32 q7,d20,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-888-# qhasm: r0[0,1] += v01[2] unsigned*  5y34[2]; r0[2,3] += v01[3] unsigned*  5y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:889:# asm 1: vmlal.u32 <r0=reg128#8,<v01=reg128#11%top,<5y34=reg128#13%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:890:# asm 2: vmlal.u32 <r0=q7,<v01=d21,<5y34=d25
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-891-vmlal.u32 q7,d21,d25
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-893-# qhasm: r1[0,1] += v01[0] unsigned* y12[0];   r1[2,3] += v01[1] unsigned* y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:894:# asm 1: vmlal.u32 <r1=reg128#15,<v01=reg128#11%bot,<y12=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:895:# asm 2: vmlal.u32 <r1=q14,<v01=d20,<y12=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-896-vmlal.u32 q14,d20,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-898-# qhasm: r1[0,1] += v01[2] unsigned* y0[0];   r1[2,3] += v01[3] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:899:# asm 1: vmlal.u32 <r1=reg128#15,<v01=reg128#11%top,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:900:# asm 2: vmlal.u32 <r1=q14,<v01=d21,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-901-vmlal.u32 q14,d21,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-903-# qhasm: r1[0,1] += v23[0] unsigned*  5y34[2]; r1[2,3] += v23[1] unsigned*  5y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:904:# asm 1: vmlal.u32 <r1=reg128#15,<v23=reg128#10%bot,<5y34=reg128#13%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:905:# asm 2: vmlal.u32 <r1=q14,<v23=d18,<5y34=d25
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-906-vmlal.u32 q14,d18,d25
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-908-# qhasm: r1[0,1] += v23[2] unsigned* 5y34[0]; r1[2,3] += v23[3] unsigned* 5y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:909:# asm 1: vmlal.u32 <r1=reg128#15,<v23=reg128#10%top,<5y34=reg128#13%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:910:# asm 2: vmlal.u32 <r1=q14,<v23=d19,<5y34=d24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-911-vmlal.u32 q14,d19,d24
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-913-# qhasm: r1[0,1] +=  v4[0] unsigned* 5y12[2]; r1[2,3] +=  v4[1] unsigned* 5y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:914:# asm 1: vmlal.u32 <r1=reg128#15,<v4=reg128#4%bot,<5y12=reg128#12%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:915:# asm 2: vmlal.u32 <r1=q14,<v4=d6,<5y12=d23
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-916-vmlal.u32 q14,d6,d23
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-918-# qhasm: r2[0,1] += v01[0] unsigned* y12[2];   r2[2,3] += v01[1] unsigned* y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:919:# asm 1: vmlal.u32 <r2=reg128#14,<v01=reg128#11%bot,<y12=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:920:# asm 2: vmlal.u32 <r2=q13,<v01=d20,<y12=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-921-vmlal.u32 q13,d20,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-923-# qhasm: r2[0,1] += v01[2] unsigned* y12[0];   r2[2,3] += v01[3] unsigned* y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:924:# asm 1: vmlal.u32 <r2=reg128#14,<v01=reg128#11%top,<y12=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:925:# asm 2: vmlal.u32 <r2=q13,<v01=d21,<y12=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-926-vmlal.u32 q13,d21,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-928-# qhasm: r2[0,1] += v23[0] unsigned* y0[0];   r2[2,3] += v23[1] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:929:# asm 1: vmlal.u32 <r2=reg128#14,<v23=reg128#10%bot,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:930:# asm 2: vmlal.u32 <r2=q13,<v23=d18,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-931-vmlal.u32 q13,d18,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-933-# qhasm: r2[0,1] += v23[2] unsigned*  5y34[2]; r2[2,3] += v23[3] unsigned*  5y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:934:# asm 1: vmlal.u32 <r2=reg128#14,<v23=reg128#10%top,<5y34=reg128#13%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:935:# asm 2: vmlal.u32 <r2=q13,<v23=d19,<5y34=d25
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-936-vmlal.u32 q13,d19,d25
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-938-# qhasm: r2[0,1] +=  v4[0] unsigned* 5y34[0]; r2[2,3] +=  v4[1] unsigned* 5y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:939:# asm 1: vmlal.u32 <r2=reg128#14,<v4=reg128#4%bot,<5y34=reg128#13%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:940:# asm 2: vmlal.u32 <r2=q13,<v4=d6,<5y34=d24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-941-vmlal.u32 q13,d6,d24
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-943-# qhasm: 				ptr = &two24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:944:# asm 1: lea >ptr=int32#3,<two24=stack128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:945:# asm 2: lea >ptr=r2,<two24=[sp,#0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-946-add r2,sp,#0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-948-# qhasm: 2x t1 = r0 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:949:# asm 1: vshr.u64 >t1=reg128#4,<r0=reg128#8,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:950:# asm 2: vshr.u64 >t1=q3,<r0=q7,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-951-vshr.u64 q3,q7,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-953-# qhasm:   				len -= 64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:954:# asm 1: sub >len=int32#4,<len=int32#4,#64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:955:# asm 2: sub >len=r3,<len=r3,#64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-956-sub r3,r3,#64
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-958-# qhasm:    r0 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:959:# asm 1: vand >r0=reg128#6,<r0=reg128#8,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:960:# asm 2: vand >r0=q5,<r0=q7,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-961-vand q5,q7,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-963-# qhasm: 2x r1 += t1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:964:# asm 1: vadd.i64 >r1=reg128#4,<r1=reg128#15,<t1=reg128#4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:965:# asm 2: vadd.i64 >r1=q3,<r1=q14,<t1=q3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-966-vadd.i64 q3,q14,q3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-968-# qhasm: 		2x t4 = r3 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:969:# asm 1: vshr.u64 >t4=reg128#8,<r3=reg128#5,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:970:# asm 2: vshr.u64 >t4=q7,<r3=q4,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-971-vshr.u64 q7,q4,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-973-# qhasm: 		   r3 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:974:# asm 1: vand >r3=reg128#5,<r3=reg128#5,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:975:# asm 2: vand >r3=q4,<r3=q4,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-976-vand q4,q4,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-978-# qhasm: 		2x x4 = r4 + t4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:979:# asm 1: vadd.i64 >x4=reg128#8,<r4=reg128#16,<t4=reg128#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:980:# asm 2: vadd.i64 >x4=q7,<r4=q15,<t4=q7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-981-vadd.i64 q7,q15,q7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-983-# qhasm: 				r4 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:984:# asm 1: vld1.8 {>r4=reg128#16%bot->r4=reg128#16%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:985:# asm 2: vld1.8 {>r4=d30->r4=d31},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-986-vld1.8 {d30-d31},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-988-# qhasm: 2x t2 = r1 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:989:# asm 1: vshr.u64 >t2=reg128#9,<r1=reg128#4,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:990:# asm 2: vshr.u64 >t2=q8,<r1=q3,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-991-vshr.u64 q8,q3,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-993-# qhasm:    r1 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:994:# asm 1: vand >r1=reg128#4,<r1=reg128#4,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:995:# asm 2: vand >r1=q3,<r1=q3,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-996-vand q3,q3,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-998-# qhasm: 		2x t0 = x4 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:999:# asm 1: vshr.u64 >t0=reg128#10,<x4=reg128#8,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1000:# asm 2: vshr.u64 >t0=q9,<x4=q7,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1001-vshr.u64 q9,q7,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1003-# qhasm: 2x r2 += t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1004:# asm 1: vadd.i64 >r2=reg128#9,<r2=reg128#14,<t2=reg128#9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1005:# asm 2: vadd.i64 >r2=q8,<r2=q13,<t2=q8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1006-vadd.i64 q8,q13,q8
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1008-# qhasm: 		   x4 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1009:# asm 1: vand >x4=reg128#11,<x4=reg128#8,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1010:# asm 2: vand >x4=q10,<x4=q7,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1011-vand q10,q7,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1013-# qhasm: 		2x x01 = r0 + t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1014:# asm 1: vadd.i64 >x01=reg128#6,<r0=reg128#6,<t0=reg128#10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1015:# asm 2: vadd.i64 >x01=q5,<r0=q5,<t0=q9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1016-vadd.i64 q5,q5,q9
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1018-# qhasm: 				r0 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1019:# asm 1: vld1.8 {>r0=reg128#8%bot->r0=reg128#8%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1020:# asm 2: vld1.8 {>r0=d14->r0=d15},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1021-vld1.8 {d14-d15},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1023-# qhasm: 				ptr = &z34_stack
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1024:# asm 1: lea >ptr=int32#3,<z34_stack=stack128#9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1025:# asm 2: lea >ptr=r2,<z34_stack=[sp,#128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1026-add r2,sp,#128
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1028-# qhasm: 		2x t0 <<= 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1029:# asm 1: vshl.i64 >t0=reg128#10,<t0=reg128#10,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1030:# asm 2: vshl.i64 >t0=q9,<t0=q9,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1031-vshl.i64 q9,q9,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1033-# qhasm: 2x t3 = r2 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1034:# asm 1: vshr.u64 >t3=reg128#14,<r2=reg128#9,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1035:# asm 2: vshr.u64 >t3=q13,<r2=q8,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1036-vshr.u64 q13,q8,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1038-# qhasm: 		2x x01 += t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1039:# asm 1: vadd.i64 >x01=reg128#15,<x01=reg128#6,<t0=reg128#10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1040:# asm 2: vadd.i64 >x01=q14,<x01=q5,<t0=q9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1041-vadd.i64 q14,q5,q9
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1043-# qhasm: 				z34 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1044:# asm 1: vld1.8 {>z34=reg128#6%bot->z34=reg128#6%top},[<ptr=int32#3,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1045:# asm 2: vld1.8 {>z34=d10->z34=d11},[<ptr=r2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1046-vld1.8 {d10-d11},[r2,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1048-# qhasm:    x23 = r2 & mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1049:# asm 1: vand >x23=reg128#10,<r2=reg128#9,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1050:# asm 2: vand >x23=q9,<r2=q8,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1051-vand q9,q8,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1053-# qhasm: 2x r3 += t3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1054:# asm 1: vadd.i64 >r3=reg128#5,<r3=reg128#5,<t3=reg128#14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1055:# asm 2: vadd.i64 >r3=q4,<r3=q4,<t3=q13
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1056-vadd.i64 q4,q4,q13
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1058-# qhasm: 								input_2 += 32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1059:# asm 1: add >input_2=int32#2,<input_2=int32#2,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1060:# asm 2: add >input_2=r1,<input_2=r1,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1061-add r1,r1,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1063-# qhasm: 		2x t1 = x01 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1064:# asm 1: vshr.u64 >t1=reg128#14,<x01=reg128#15,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1065:# asm 2: vshr.u64 >t1=q13,<x01=q14,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1066-vshr.u64 q13,q14,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1068-# qhasm: 						x23 = x23[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1069:# asm 1: vtrn.32 <x23=reg128#10%bot,<x23=reg128#10%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1070:# asm 2: vtrn.32 <x23=d18,<x23=d19
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1071-vtrn.32 d18,d19
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1073-# qhasm: 		   x01 = x01 & mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1074:# asm 1: vand >x01=reg128#9,<x01=reg128#15,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1075:# asm 2: vand >x01=q8,<x01=q14,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1076-vand q8,q14,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1078-# qhasm: 		2x r1 += t1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1079:# asm 1: vadd.i64 >r1=reg128#4,<r1=reg128#4,<t1=reg128#14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1080:# asm 2: vadd.i64 >r1=q3,<r1=q3,<t1=q13
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1081-vadd.i64 q3,q3,q13
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1083-# qhasm: 2x t4 = r3 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1084:# asm 1: vshr.u64 >t4=reg128#14,<r3=reg128#5,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1085:# asm 2: vshr.u64 >t4=q13,<r3=q4,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1086-vshr.u64 q13,q4,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1088-# qhasm: 						x01 = x01[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1089:# asm 1: vtrn.32 <x01=reg128#9%bot,<x01=reg128#9%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1090:# asm 2: vtrn.32 <x01=d16,<x01=d17
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1091-vtrn.32 d16,d17
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1093-# qhasm:    r3 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1094:# asm 1: vand >r3=reg128#5,<r3=reg128#5,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1095:# asm 2: vand >r3=q4,<r3=q4,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1096-vand q4,q4,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1098-# qhasm: 						r1 = r1[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1099:# asm 1: vtrn.32 <r1=reg128#4%bot,<r1=reg128#4%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1100:# asm 2: vtrn.32 <r1=d6,<r1=d7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1101-vtrn.32 d6,d7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1103-# qhasm: 2x x4 += t4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1104:# asm 1: vadd.i64 >x4=reg128#11,<x4=reg128#11,<t4=reg128#14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1105:# asm 2: vadd.i64 >x4=q10,<x4=q10,<t4=q13
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1106-vadd.i64 q10,q10,q13
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1108-# qhasm: 						r3 = r3[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1109:# asm 1: vtrn.32 <r3=reg128#5%bot,<r3=reg128#5%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1110:# asm 2: vtrn.32 <r3=d8,<r3=d9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1111-vtrn.32 d8,d9
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1113-# qhasm: 						x01 = x01[0,1] r1[0,1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1114:# asm 1: vext.32 <x01=reg128#9%top,<r1=reg128#4%bot,<r1=reg128#4%bot,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1115:# asm 2: vext.32 <x01=d17,<r1=d6,<r1=d6,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1116-vext.32 d17,d6,d6,#0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1118-# qhasm: 						x23 = x23[0,1] r3[0,1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1119:# asm 1: vext.32 <x23=reg128#10%top,<r3=reg128#5%bot,<r3=reg128#5%bot,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1120:# asm 2: vext.32 <x23=d19,<r3=d8,<r3=d8,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1121-vext.32 d19,d8,d8,#0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1123-# qhasm: 						x4 = x4[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1124:# asm 1: vtrn.32 <x4=reg128#11%bot,<x4=reg128#11%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1125:# asm 2: vtrn.32 <x4=d20,<x4=d21
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1126-vtrn.32 d20,d21
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1128-# qhasm:                   unsigned>? len - 64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1129:# asm 1: cmp <len=int32#4,#64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1130:# asm 2: cmp <len=r3,#64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1131-cmp r3,#64
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1136-# qhasm: input_2 -= 32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1137:# asm 1: sub >input_2=int32#3,<input_2=int32#2,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1138:# asm 2: sub >input_2=r2,<input_2=r1,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1139-sub r2,r1,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1144-# qhasm:              unsigned>? len - 32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1145:# asm 1: cmp <len=int32#4,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1146:# asm 2: cmp <len=r3,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1147-cmp r3,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1157-# qhasm: ptr = &two24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1158:# asm 1: lea >ptr=int32#2,<two24=stack128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1159:# asm 2: lea >ptr=r1,<two24=[sp,#0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1160-add r1,sp,#0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1162-# qhasm: r4 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1163:# asm 1: vld1.8 {>r4=reg128#5%bot->r4=reg128#5%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1164:# asm 2: vld1.8 {>r4=d8->r4=d9},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1165-vld1.8 {d8-d9},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1167-# qhasm: u4 aligned= mem128[ptr]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1168:# asm 1: vld1.8 {>u4=reg128#6%bot->u4=reg128#6%top},[<ptr=int32#2,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1169:# asm 2: vld1.8 {>u4=d10->u4=d11},[<ptr=r1,: 128]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1170-vld1.8 {d10-d11},[r1,: 128]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1172-# qhasm:   c01 = mem128[input_2];input_2+=16 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1173:# asm 1: vld1.8 {>c01=reg128#8%bot->c01=reg128#8%top},[<input_2=int32#3]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1174:# asm 2: vld1.8 {>c01=d14->c01=d15},[<input_2=r2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1175-vld1.8 {d14-d15},[r2]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1177-# qhasm: r4[0,1] += x01[0] unsigned*  y34[2];  r4[2,3] += x01[1] unsigned*  y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1178:# asm 1: vmlal.u32 <r4=reg128#5,<x01=reg128#9%bot,<y34=reg128#3%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1179:# asm 2: vmlal.u32 <r4=q4,<x01=d16,<y34=d5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1180-vmlal.u32 q4,d16,d5
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1182-# qhasm:   c23 = mem128[input_2];input_2+=16 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1183:# asm 1: vld1.8 {>c23=reg128#14%bot->c23=reg128#14%top},[<input_2=int32#3]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1184:# asm 2: vld1.8 {>c23=d26->c23=d27},[<input_2=r2]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1185-vld1.8 {d26-d27},[r2]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1187-# qhasm: r4[0,1] += x01[2] unsigned* y34[0];  r4[2,3] += x01[3] unsigned* y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1188:# asm 1: vmlal.u32 <r4=reg128#5,<x01=reg128#9%top,<y34=reg128#3%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1189:# asm 2: vmlal.u32 <r4=q4,<x01=d17,<y34=d4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1190-vmlal.u32 q4,d17,d4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1192-# qhasm:   r0 = u4[1]c01[0]r0[2,3] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1193:# asm 1: vext.32 <r0=reg128#4%bot,<u4=reg128#6%bot,<c01=reg128#8%bot,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1194:# asm 2: vext.32 <r0=d6,<u4=d10,<c01=d14,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1195-vext.32 d6,d10,d14,#1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1197-# qhasm: r4[0,1] += x23[0] unsigned* y12[2];  r4[2,3] += x23[1] unsigned* y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1198:# asm 1: vmlal.u32 <r4=reg128#5,<x23=reg128#10%bot,<y12=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1199:# asm 2: vmlal.u32 <r4=q4,<x23=d18,<y12=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1200-vmlal.u32 q4,d18,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1202-# qhasm:   r0 = r0[0,1]u4[1]c23[0] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1203:# asm 1: vext.32 <r0=reg128#4%top,<u4=reg128#6%bot,<c23=reg128#14%bot,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1204:# asm 2: vext.32 <r0=d7,<u4=d10,<c23=d26,#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1205-vext.32 d7,d10,d26,#1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1207-# qhasm: r4[0,1] += x23[2] unsigned* y12[0];  r4[2,3] += x23[3] unsigned* y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1208:# asm 1: vmlal.u32 <r4=reg128#5,<x23=reg128#10%top,<y12=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1209:# asm 2: vmlal.u32 <r4=q4,<x23=d19,<y12=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1210-vmlal.u32 q4,d19,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1212-# qhasm:   r0 = r0[1]r0[0]r0[3]r0[2] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1213:# asm 1: vrev64.i32 >r0=reg128#4,<r0=reg128#4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1214:# asm 2: vrev64.i32 >r0=q3,<r0=q3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1215-vrev64.i32 q3,q3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1217-# qhasm: r4[0,1] +=  x4[0] unsigned* y0[0];  r4[2,3] +=  x4[1] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1218:# asm 1: vmlal.u32 <r4=reg128#5,<x4=reg128#11%bot,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1219:# asm 2: vmlal.u32 <r4=q4,<x4=d20,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1220-vmlal.u32 q4,d20,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1222-# qhasm: r0[0,1] +=  x4[0] unsigned* 5y12[0]; r0[2,3] +=  x4[1] unsigned* 5y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1223:# asm 1: vmlal.u32 <r0=reg128#4,<x4=reg128#11%bot,<5y12=reg128#12%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1224:# asm 2: vmlal.u32 <r0=q3,<x4=d20,<5y12=d22
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1225-vmlal.u32 q3,d20,d22
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1227-# qhasm: r0[0,1] += x23[0] unsigned* 5y34[0]; r0[2,3] += x23[1] unsigned* 5y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1228:# asm 1: vmlal.u32 <r0=reg128#4,<x23=reg128#10%bot,<5y34=reg128#13%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1229:# asm 2: vmlal.u32 <r0=q3,<x23=d18,<5y34=d24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1230-vmlal.u32 q3,d18,d24
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1232-# qhasm: r0[0,1] += x23[2] unsigned* 5y12[2]; r0[2,3] += x23[3] unsigned* 5y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1233:# asm 1: vmlal.u32 <r0=reg128#4,<x23=reg128#10%top,<5y12=reg128#12%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1234:# asm 2: vmlal.u32 <r0=q3,<x23=d19,<5y12=d23
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1235-vmlal.u32 q3,d19,d23
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1237-# qhasm:   c01 c23 = c01[0]c23[0]c01[2]c23[2]c01[1]c23[1]c01[3]c23[3] 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1238:# asm 1: vtrn.32 <c01=reg128#8,<c23=reg128#14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1239:# asm 2: vtrn.32 <c01=q7,<c23=q13
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1240-vtrn.32 q7,q13
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1242-# qhasm: r0[0,1] += x01[0] unsigned* y0[0];   r0[2,3] += x01[1] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1243:# asm 1: vmlal.u32 <r0=reg128#4,<x01=reg128#9%bot,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1244:# asm 2: vmlal.u32 <r0=q3,<x01=d16,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1245-vmlal.u32 q3,d16,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1247-# qhasm:   r3[0,1] = c23[2]<<18; r3[2,3] = c23[3]<<18 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1248:# asm 1: vshll.u32 >r3=reg128#6,<c23=reg128#14%top,#18
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1249:# asm 2: vshll.u32 >r3=q5,<c23=d27,#18
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1250-vshll.u32 q5,d27,#18
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1252-# qhasm: r0[0,1] += x01[2] unsigned*  5y34[2]; r0[2,3] += x01[3] unsigned*  5y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1253:# asm 1: vmlal.u32 <r0=reg128#4,<x01=reg128#9%top,<5y34=reg128#13%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1254:# asm 2: vmlal.u32 <r0=q3,<x01=d17,<5y34=d25
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1255-vmlal.u32 q3,d17,d25
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1257-# qhasm: r3[0,1] += x01[0] unsigned* y34[0];   r3[2,3] += x01[1] unsigned* y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1258:# asm 1: vmlal.u32 <r3=reg128#6,<x01=reg128#9%bot,<y34=reg128#3%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1259:# asm 2: vmlal.u32 <r3=q5,<x01=d16,<y34=d4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1260-vmlal.u32 q5,d16,d4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1262-# qhasm: r3[0,1] += x01[2] unsigned* y12[2];   r3[2,3] += x01[3] unsigned* y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1263:# asm 1: vmlal.u32 <r3=reg128#6,<x01=reg128#9%top,<y12=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1264:# asm 2: vmlal.u32 <r3=q5,<x01=d17,<y12=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1265-vmlal.u32 q5,d17,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1267-# qhasm: r3[0,1] += x23[0] unsigned* y12[0];   r3[2,3] += x23[1] unsigned* y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1268:# asm 1: vmlal.u32 <r3=reg128#6,<x23=reg128#10%bot,<y12=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1269:# asm 2: vmlal.u32 <r3=q5,<x23=d18,<y12=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1270-vmlal.u32 q5,d18,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1272-# qhasm: r3[0,1] += x23[2] unsigned* y0[0];   r3[2,3] += x23[3] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1273:# asm 1: vmlal.u32 <r3=reg128#6,<x23=reg128#10%top,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1274:# asm 2: vmlal.u32 <r3=q5,<x23=d19,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1275-vmlal.u32 q5,d19,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1277-# qhasm:   r1[0,1] = c23[0]<<6; r1[2,3] = c23[1]<<6 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1278:# asm 1: vshll.u32 >r1=reg128#14,<c23=reg128#14%bot,#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1279:# asm 2: vshll.u32 >r1=q13,<c23=d26,#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1280-vshll.u32 q13,d26,#6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1282-# qhasm: r3[0,1] +=  x4[0] unsigned*  5y34[2]; r3[2,3] +=  x4[1] unsigned*  5y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1283:# asm 1: vmlal.u32 <r3=reg128#6,<x4=reg128#11%bot,<5y34=reg128#13%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1284:# asm 2: vmlal.u32 <r3=q5,<x4=d20,<5y34=d25
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1285-vmlal.u32 q5,d20,d25
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1287-# qhasm: r1[0,1] += x01[0] unsigned* y12[0];   r1[2,3] += x01[1] unsigned* y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1288:# asm 1: vmlal.u32 <r1=reg128#14,<x01=reg128#9%bot,<y12=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1289:# asm 2: vmlal.u32 <r1=q13,<x01=d16,<y12=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1290-vmlal.u32 q13,d16,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1292-# qhasm: r1[0,1] += x01[2] unsigned* y0[0];   r1[2,3] += x01[3] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1293:# asm 1: vmlal.u32 <r1=reg128#14,<x01=reg128#9%top,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1294:# asm 2: vmlal.u32 <r1=q13,<x01=d17,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1295-vmlal.u32 q13,d17,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1297-# qhasm: r1[0,1] += x23[0] unsigned*  5y34[2]; r1[2,3] += x23[1] unsigned*  5y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1298:# asm 1: vmlal.u32 <r1=reg128#14,<x23=reg128#10%bot,<5y34=reg128#13%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1299:# asm 2: vmlal.u32 <r1=q13,<x23=d18,<5y34=d25
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1300-vmlal.u32 q13,d18,d25
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1302-# qhasm: r1[0,1] += x23[2] unsigned* 5y34[0]; r1[2,3] += x23[3] unsigned* 5y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1303:# asm 1: vmlal.u32 <r1=reg128#14,<x23=reg128#10%top,<5y34=reg128#13%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1304:# asm 2: vmlal.u32 <r1=q13,<x23=d19,<5y34=d24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1305-vmlal.u32 q13,d19,d24
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1307-# qhasm:   r2[0,1] = c01[2]<<12; r2[2,3] = c01[3]<<12 
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1308:# asm 1: vshll.u32 >r2=reg128#8,<c01=reg128#8%top,#12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1309:# asm 2: vshll.u32 >r2=q7,<c01=d15,#12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1310-vshll.u32 q7,d15,#12
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1312-# qhasm: r1[0,1] +=  x4[0] unsigned* 5y12[2]; r1[2,3] +=  x4[1] unsigned* 5y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1313:# asm 1: vmlal.u32 <r1=reg128#14,<x4=reg128#11%bot,<5y12=reg128#12%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1314:# asm 2: vmlal.u32 <r1=q13,<x4=d20,<5y12=d23
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1315-vmlal.u32 q13,d20,d23
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1317-# qhasm: r2[0,1] += x01[0] unsigned* y12[2];   r2[2,3] += x01[1] unsigned* y12[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1318:# asm 1: vmlal.u32 <r2=reg128#8,<x01=reg128#9%bot,<y12=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1319:# asm 2: vmlal.u32 <r2=q7,<x01=d16,<y12=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1320-vmlal.u32 q7,d16,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1322-# qhasm: r2[0,1] += x01[2] unsigned* y12[0];   r2[2,3] += x01[3] unsigned* y12[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1323:# asm 1: vmlal.u32 <r2=reg128#8,<x01=reg128#9%top,<y12=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1324:# asm 2: vmlal.u32 <r2=q7,<x01=d17,<y12=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1325-vmlal.u32 q7,d17,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1327-# qhasm: r2[0,1] += x23[0] unsigned* y0[0];   r2[2,3] += x23[1] unsigned* y0[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1328:# asm 1: vmlal.u32 <r2=reg128#8,<x23=reg128#10%bot,<y0=reg128#1%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1329:# asm 2: vmlal.u32 <r2=q7,<x23=d18,<y0=d0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1330-vmlal.u32 q7,d18,d0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1332-# qhasm: r2[0,1] += x23[2] unsigned*  5y34[2]; r2[2,3] += x23[3] unsigned*  5y34[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1333:# asm 1: vmlal.u32 <r2=reg128#8,<x23=reg128#10%top,<5y34=reg128#13%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1334:# asm 2: vmlal.u32 <r2=q7,<x23=d19,<5y34=d25
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1335-vmlal.u32 q7,d19,d25
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1337-# qhasm: r2[0,1] +=  x4[0] unsigned* 5y34[0]; r2[2,3] +=  x4[1] unsigned* 5y34[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1338:# asm 1: vmlal.u32 <r2=reg128#8,<x4=reg128#11%bot,<5y34=reg128#13%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1339:# asm 2: vmlal.u32 <r2=q7,<x4=d20,<5y34=d24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1340-vmlal.u32 q7,d20,d24
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1342-# qhasm: 2x t1 = r0 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1343:# asm 1: vshr.u64 >t1=reg128#9,<r0=reg128#4,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1344:# asm 2: vshr.u64 >t1=q8,<r0=q3,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1345-vshr.u64 q8,q3,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1347-# qhasm:    r0 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1348:# asm 1: vand >r0=reg128#4,<r0=reg128#4,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1349:# asm 2: vand >r0=q3,<r0=q3,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1350-vand q3,q3,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1352-# qhasm: 2x r1 += t1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1353:# asm 1: vadd.i64 >r1=reg128#9,<r1=reg128#14,<t1=reg128#9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1354:# asm 2: vadd.i64 >r1=q8,<r1=q13,<t1=q8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1355-vadd.i64 q8,q13,q8
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1357-# qhasm: 		2x t4 = r3 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1358:# asm 1: vshr.u64 >t4=reg128#10,<r3=reg128#6,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1359:# asm 2: vshr.u64 >t4=q9,<r3=q5,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1360-vshr.u64 q9,q5,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1362-# qhasm: 		   r3 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1363:# asm 1: vand >r3=reg128#6,<r3=reg128#6,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1364:# asm 2: vand >r3=q5,<r3=q5,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1365-vand q5,q5,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1367-# qhasm: 		2x r4 += t4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1368:# asm 1: vadd.i64 >r4=reg128#5,<r4=reg128#5,<t4=reg128#10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1369:# asm 2: vadd.i64 >r4=q4,<r4=q4,<t4=q9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1370-vadd.i64 q4,q4,q9
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1372-# qhasm: 2x t2 = r1 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1373:# asm 1: vshr.u64 >t2=reg128#10,<r1=reg128#9,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1374:# asm 2: vshr.u64 >t2=q9,<r1=q8,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1375-vshr.u64 q9,q8,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1377-# qhasm:    r1 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1378:# asm 1: vand >r1=reg128#11,<r1=reg128#9,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1379:# asm 2: vand >r1=q10,<r1=q8,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1380-vand q10,q8,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1382-# qhasm: 		2x t0 = r4 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1383:# asm 1: vshr.u64 >t0=reg128#9,<r4=reg128#5,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1384:# asm 2: vshr.u64 >t0=q8,<r4=q4,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1385-vshr.u64 q8,q4,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1387-# qhasm: 2x r2 += t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1388:# asm 1: vadd.i64 >r2=reg128#8,<r2=reg128#8,<t2=reg128#10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1389:# asm 2: vadd.i64 >r2=q7,<r2=q7,<t2=q9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1390-vadd.i64 q7,q7,q9
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1392-# qhasm: 		   r4 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1393:# asm 1: vand >r4=reg128#5,<r4=reg128#5,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1394:# asm 2: vand >r4=q4,<r4=q4,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1395-vand q4,q4,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1397-# qhasm: 		2x r0 += t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1398:# asm 1: vadd.i64 >r0=reg128#4,<r0=reg128#4,<t0=reg128#9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1399:# asm 2: vadd.i64 >r0=q3,<r0=q3,<t0=q8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1400-vadd.i64 q3,q3,q8
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1402-# qhasm: 		2x t0 <<= 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1403:# asm 1: vshl.i64 >t0=reg128#9,<t0=reg128#9,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1404:# asm 2: vshl.i64 >t0=q8,<t0=q8,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1405-vshl.i64 q8,q8,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1407-# qhasm: 2x t3 = r2 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1408:# asm 1: vshr.u64 >t3=reg128#14,<r2=reg128#8,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1409:# asm 2: vshr.u64 >t3=q13,<r2=q7,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1410-vshr.u64 q13,q7,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1412-# qhasm: 		2x r0 += t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1413:# asm 1: vadd.i64 >r0=reg128#4,<r0=reg128#4,<t0=reg128#9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1414:# asm 2: vadd.i64 >r0=q3,<r0=q3,<t0=q8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1415-vadd.i64 q3,q3,q8
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1417-# qhasm:    x23 = r2 & mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1418:# asm 1: vand >x23=reg128#10,<r2=reg128#8,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1419:# asm 2: vand >x23=q9,<r2=q7,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1420-vand q9,q7,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1422-# qhasm: 2x r3 += t3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1423:# asm 1: vadd.i64 >r3=reg128#6,<r3=reg128#6,<t3=reg128#14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1424:# asm 2: vadd.i64 >r3=q5,<r3=q5,<t3=q13
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1425-vadd.i64 q5,q5,q13
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1427-# qhasm: 		2x t1 = r0 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1428:# asm 1: vshr.u64 >t1=reg128#8,<r0=reg128#4,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1429:# asm 2: vshr.u64 >t1=q7,<r0=q3,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1430-vshr.u64 q7,q3,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1432-# qhasm: 		   x01 = r0 & mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1433:# asm 1: vand >x01=reg128#9,<r0=reg128#4,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1434:# asm 2: vand >x01=q8,<r0=q3,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1435-vand q8,q3,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1437-# qhasm: 		2x r1 += t1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1438:# asm 1: vadd.i64 >r1=reg128#4,<r1=reg128#11,<t1=reg128#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1439:# asm 2: vadd.i64 >r1=q3,<r1=q10,<t1=q7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1440-vadd.i64 q3,q10,q7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1442-# qhasm: 2x t4 = r3 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1443:# asm 1: vshr.u64 >t4=reg128#8,<r3=reg128#6,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1444:# asm 2: vshr.u64 >t4=q7,<r3=q5,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1445-vshr.u64 q7,q5,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1447-# qhasm:    r3 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1448:# asm 1: vand >r3=reg128#6,<r3=reg128#6,<mask=reg128#7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1449:# asm 2: vand >r3=q5,<r3=q5,<mask=q6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1450-vand q5,q5,q6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1452-# qhasm: 2x x4 = r4 + t4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1453:# asm 1: vadd.i64 >x4=reg128#11,<r4=reg128#5,<t4=reg128#8
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1454:# asm 2: vadd.i64 >x4=q10,<r4=q4,<t4=q7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1455-vadd.i64 q10,q4,q7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1457-# qhasm:   len -= 32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1458:# asm 1: sub >len=int32#4,<len=int32#4,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1459:# asm 2: sub >len=r3,<len=r3,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1460-sub r3,r3,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1462-# qhasm: x01 = x01[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1463:# asm 1: vtrn.32 <x01=reg128#9%bot,<x01=reg128#9%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1464:# asm 2: vtrn.32 <x01=d16,<x01=d17
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1465-vtrn.32 d16,d17
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1467-# qhasm: x23 = x23[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1468:# asm 1: vtrn.32 <x23=reg128#10%bot,<x23=reg128#10%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1469:# asm 2: vtrn.32 <x23=d18,<x23=d19
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1470-vtrn.32 d18,d19
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1472-# qhasm: r1 = r1[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1473:# asm 1: vtrn.32 <r1=reg128#4%bot,<r1=reg128#4%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1474:# asm 2: vtrn.32 <r1=d6,<r1=d7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1475-vtrn.32 d6,d7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1477-# qhasm: r3 = r3[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1478:# asm 1: vtrn.32 <r3=reg128#6%bot,<r3=reg128#6%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1479:# asm 2: vtrn.32 <r3=d10,<r3=d11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1480-vtrn.32 d10,d11
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1482-# qhasm: x4 = x4[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1483:# asm 1: vtrn.32 <x4=reg128#11%bot,<x4=reg128#11%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1484:# asm 2: vtrn.32 <x4=d20,<x4=d21
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1485-vtrn.32 d20,d21
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1487-# qhasm: x01 = x01[0,1] r1[0,1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1488:# asm 1: vext.32 <x01=reg128#9%top,<r1=reg128#4%bot,<r1=reg128#4%bot,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1489:# asm 2: vext.32 <x01=d17,<r1=d6,<r1=d6,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1490-vext.32 d17,d6,d6,#0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1492-# qhasm: x23 = x23[0,1] r3[0,1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1493:# asm 1: vext.32 <x23=reg128#10%top,<r3=reg128#6%bot,<r3=reg128#6%bot,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1494:# asm 2: vext.32 <x23=d19,<r3=d10,<r3=d10,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1495-vext.32 d19,d10,d10,#0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1497-# qhasm: unsigned>? len - 32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1498:# asm 1: cmp <len=int32#4,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1499:# asm 2: cmp <len=r3,#32
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1500-cmp r3,#32
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1508-# qhasm: mem128[input_0] = x01;input_0+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1509:# asm 1: vst1.8 {<x01=reg128#9%bot-<x01=reg128#9%top},[<input_0=int32#1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1510:# asm 2: vst1.8 {<x01=d16-<x01=d17},[<input_0=r0]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1511-vst1.8 {d16-d17},[r0]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1513-# qhasm: mem128[input_0] = x23;input_0+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1514:# asm 1: vst1.8 {<x23=reg128#10%bot-<x23=reg128#10%top},[<input_0=int32#1]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1515:# asm 2: vst1.8 {<x23=d18-<x23=d19},[<input_0=r0]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1516-vst1.8 {d18-d19},[r0]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1518-# qhasm: mem64[input_0] = x4[0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1519:# asm 1: vst1.8 <x4=reg128#11%bot,[<input_0=int32#1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1520:# asm 2: vst1.8 <x4=d20,[<input_0=r0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1521-vst1.8 d20,[r0]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1523-# qhasm: len = len
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1524:# asm 1: mov >len=int32#1,<len=int32#4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1525:# asm 2: mov >len=r0,<len=r3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1526-mov r0,r3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1631-# qhasm: 				2x mask = 0xffffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1632:# asm 1: vmov.i64 >mask=reg128#1,#0xffffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1633:# asm 2: vmov.i64 >mask=q0,#0xffffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1634-vmov.i64 q0,#0xffffffff
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1636-# qhasm:   y01 aligned= mem128[input_2];input_2+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1637:# asm 1: vld1.8 {>y01=reg128#2%bot->y01=reg128#2%top},[<input_2=int32#3,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1638:# asm 2: vld1.8 {>y01=d2->y01=d3},[<input_2=r2,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1639-vld1.8 {d2-d3},[r2,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1641-# qhasm: 4x _5y01 = y01 << 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1642:# asm 1: vshl.i32 >_5y01=reg128#3,<y01=reg128#2,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1643:# asm 2: vshl.i32 >_5y01=q2,<y01=q1,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1644-vshl.i32 q2,q1,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1646-# qhasm:   y23 aligned= mem128[input_2];input_2+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1647:# asm 1: vld1.8 {>y23=reg128#4%bot->y23=reg128#4%top},[<input_2=int32#3,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1648:# asm 2: vld1.8 {>y23=d6->y23=d7},[<input_2=r2,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1649-vld1.8 {d6-d7},[r2,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1651-# qhasm: 4x _5y23 = y23 << 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1652:# asm 1: vshl.i32 >_5y23=reg128#9,<y23=reg128#4,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1653:# asm 2: vshl.i32 >_5y23=q8,<y23=q3,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1654-vshl.i32 q8,q3,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1656-# qhasm:   y4  aligned= mem64[input_2]y4[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1657:# asm 1: vld1.8 {<y4=reg128#10%bot},[<input_2=int32#3,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1658:# asm 2: vld1.8 {<y4=d18},[<input_2=r2,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1659-vld1.8 {d18},[r2,: 64]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1661-# qhasm: 4x _5y4 = y4 << 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1662:# asm 1: vshl.i32 >_5y4=reg128#11,<y4=reg128#10,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1663:# asm 2: vshl.i32 >_5y4=q10,<y4=q9,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1664-vshl.i32 q10,q9,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1666-# qhasm:   x01 aligned= mem128[input_1];input_1+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1667:# asm 1: vld1.8 {>x01=reg128#12%bot->x01=reg128#12%top},[<input_1=int32#2,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1668:# asm 2: vld1.8 {>x01=d22->x01=d23},[<input_1=r1,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1669-vld1.8 {d22-d23},[r1,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1671-# qhasm: 4x _5y01 += y01
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1672:# asm 1: vadd.i32 >_5y01=reg128#3,<_5y01=reg128#3,<y01=reg128#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1673:# asm 2: vadd.i32 >_5y01=q2,<_5y01=q2,<y01=q1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1674-vadd.i32 q2,q2,q1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1676-# qhasm:   x23 aligned= mem128[input_1];input_1+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1677:# asm 1: vld1.8 {>x23=reg128#13%bot->x23=reg128#13%top},[<input_1=int32#2,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1678:# asm 2: vld1.8 {>x23=d24->x23=d25},[<input_1=r1,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1679-vld1.8 {d24-d25},[r1,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1681-# qhasm: 4x _5y23 += y23
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1682:# asm 1: vadd.i32 >_5y23=reg128#9,<_5y23=reg128#9,<y23=reg128#4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1683:# asm 2: vadd.i32 >_5y23=q8,<_5y23=q8,<y23=q3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1684-vadd.i32 q8,q8,q3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1686-# qhasm: 4x _5y4 += y4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1687:# asm 1: vadd.i32 >_5y4=reg128#11,<_5y4=reg128#11,<y4=reg128#10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1688:# asm 2: vadd.i32 >_5y4=q10,<_5y4=q10,<y4=q9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1689-vadd.i32 q10,q10,q9
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1691-# qhasm:   c01 aligned= mem128[input_3];input_3+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1692:# asm 1: vld1.8 {>c01=reg128#14%bot->c01=reg128#14%top},[<input_3=int32#4,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1693:# asm 2: vld1.8 {>c01=d26->c01=d27},[<input_3=r3,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1694-vld1.8 {d26-d27},[r3,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1696-# qhasm: 4x x01 += c01
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1697:# asm 1: vadd.i32 >x01=reg128#12,<x01=reg128#12,<c01=reg128#14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1698:# asm 2: vadd.i32 >x01=q11,<x01=q11,<c01=q13
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1699-vadd.i32 q11,q11,q13
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1701-# qhasm:   c23 aligned= mem128[input_3];input_3+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1702:# asm 1: vld1.8 {>c23=reg128#14%bot->c23=reg128#14%top},[<input_3=int32#4,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1703:# asm 2: vld1.8 {>c23=d26->c23=d27},[<input_3=r3,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1704-vld1.8 {d26-d27},[r3,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1706-# qhasm: 4x x23 += c23
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1707:# asm 1: vadd.i32 >x23=reg128#13,<x23=reg128#13,<c23=reg128#14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1708:# asm 2: vadd.i32 >x23=q12,<x23=q12,<c23=q13
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1709-vadd.i32 q12,q12,q13
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1711-# qhasm:   x4  aligned= mem64[input_1]x4[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1712:# asm 1: vld1.8 {<x4=reg128#14%bot},[<input_1=int32#2,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1713:# asm 2: vld1.8 {<x4=d26},[<input_1=r1,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1714-vld1.8 {d26},[r1,: 64]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1716-# qhasm: 				2x mask unsigned>>=6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1717:# asm 1: vshr.u64 >mask=reg128#1,<mask=reg128#1,#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1718:# asm 2: vshr.u64 >mask=q0,<mask=q0,#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1719-vshr.u64 q0,q0,#6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1721-# qhasm:   c4  aligned= mem64[input_3]c4[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1722:# asm 1: vld1.8 {<c4=reg128#15%bot},[<input_3=int32#4,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1723:# asm 2: vld1.8 {<c4=d28},[<input_3=r3,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1724-vld1.8 {d28},[r3,: 64]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1726-# qhasm: 4x x4 += c4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1727:# asm 1: vadd.i32 >x4=reg128#14,<x4=reg128#14,<c4=reg128#15
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1728:# asm 2: vadd.i32 >x4=q13,<x4=q13,<c4=q14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1729-vadd.i32 q13,q13,q14
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1731-# qhasm: r0[0,1]  = x01[0] unsigned* y01[0];   r0[2,3]  = x01[1] unsigned* y01[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1732:# asm 1: vmull.u32 >r0=reg128#15,<x01=reg128#12%bot,<y01=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1733:# asm 2: vmull.u32 >r0=q14,<x01=d22,<y01=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1734-vmull.u32 q14,d22,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1736-# qhasm: r0[0,1] += x01[2] unsigned*  _5y4[0]; r0[2,3] += x01[3] unsigned*  _5y4[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1737:# asm 1: vmlal.u32 <r0=reg128#15,<x01=reg128#12%top,<_5y4=reg128#11%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1738:# asm 2: vmlal.u32 <r0=q14,<x01=d23,<_5y4=d20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1739-vmlal.u32 q14,d23,d20
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1741-# qhasm: r0[0,1] += x23[0] unsigned* _5y23[2]; r0[2,3] += x23[1] unsigned* _5y23[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1742:# asm 1: vmlal.u32 <r0=reg128#15,<x23=reg128#13%bot,<_5y23=reg128#9%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1743:# asm 2: vmlal.u32 <r0=q14,<x23=d24,<_5y23=d17
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1744-vmlal.u32 q14,d24,d17
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1746-# qhasm: r0[0,1] += x23[2] unsigned* _5y23[0]; r0[2,3] += x23[3] unsigned* _5y23[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1747:# asm 1: vmlal.u32 <r0=reg128#15,<x23=reg128#13%top,<_5y23=reg128#9%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1748:# asm 2: vmlal.u32 <r0=q14,<x23=d25,<_5y23=d16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1749-vmlal.u32 q14,d25,d16
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1751-# qhasm: r0[0,1] +=  x4[0] unsigned* _5y01[2]; r0[2,3] +=  x4[1] unsigned* _5y01[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1752:# asm 1: vmlal.u32 <r0=reg128#15,<x4=reg128#14%bot,<_5y01=reg128#3%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1753:# asm 2: vmlal.u32 <r0=q14,<x4=d26,<_5y01=d5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1754-vmlal.u32 q14,d26,d5
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1756-# qhasm: r1[0,1]  = x01[0] unsigned* y01[2];   r1[2,3]  = x01[1] unsigned* y01[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1757:# asm 1: vmull.u32 >r1=reg128#3,<x01=reg128#12%bot,<y01=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1758:# asm 2: vmull.u32 >r1=q2,<x01=d22,<y01=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1759-vmull.u32 q2,d22,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1761-# qhasm: r1[0,1] += x01[2] unsigned* y01[0];   r1[2,3] += x01[3] unsigned* y01[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1762:# asm 1: vmlal.u32 <r1=reg128#3,<x01=reg128#12%top,<y01=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1763:# asm 2: vmlal.u32 <r1=q2,<x01=d23,<y01=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1764-vmlal.u32 q2,d23,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1766-# qhasm: r1[0,1] += x23[0] unsigned*  _5y4[0]; r1[2,3] += x23[1] unsigned*  _5y4[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1767:# asm 1: vmlal.u32 <r1=reg128#3,<x23=reg128#13%bot,<_5y4=reg128#11%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1768:# asm 2: vmlal.u32 <r1=q2,<x23=d24,<_5y4=d20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1769-vmlal.u32 q2,d24,d20
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1771-# qhasm: r1[0,1] += x23[2] unsigned* _5y23[2]; r1[2,3] += x23[3] unsigned* _5y23[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1772:# asm 1: vmlal.u32 <r1=reg128#3,<x23=reg128#13%top,<_5y23=reg128#9%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1773:# asm 2: vmlal.u32 <r1=q2,<x23=d25,<_5y23=d17
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1774-vmlal.u32 q2,d25,d17
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1776-# qhasm: r1[0,1] +=  x4[0] unsigned* _5y23[0]; r1[2,3] +=  x4[1] unsigned* _5y23[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1777:# asm 1: vmlal.u32 <r1=reg128#3,<x4=reg128#14%bot,<_5y23=reg128#9%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1778:# asm 2: vmlal.u32 <r1=q2,<x4=d26,<_5y23=d16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1779-vmlal.u32 q2,d26,d16
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1781-# qhasm: r2[0,1]  = x01[0] unsigned* y23[0];   r2[2,3]  = x01[1] unsigned* y23[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1782:# asm 1: vmull.u32 >r2=reg128#16,<x01=reg128#12%bot,<y23=reg128#4%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1783:# asm 2: vmull.u32 >r2=q15,<x01=d22,<y23=d6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1784-vmull.u32 q15,d22,d6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1786-# qhasm: r2[0,1] += x01[2] unsigned* y01[2];   r2[2,3] += x01[3] unsigned* y01[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1787:# asm 1: vmlal.u32 <r2=reg128#16,<x01=reg128#12%top,<y01=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1788:# asm 2: vmlal.u32 <r2=q15,<x01=d23,<y01=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1789-vmlal.u32 q15,d23,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1791-# qhasm: r2[0,1] += x23[0] unsigned* y01[0];   r2[2,3] += x23[1] unsigned* y01[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1792:# asm 1: vmlal.u32 <r2=reg128#16,<x23=reg128#13%bot,<y01=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1793:# asm 2: vmlal.u32 <r2=q15,<x23=d24,<y01=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1794-vmlal.u32 q15,d24,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1796-# qhasm: r2[0,1] += x23[2] unsigned*  _5y4[0]; r2[2,3] += x23[3] unsigned*  _5y4[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1797:# asm 1: vmlal.u32 <r2=reg128#16,<x23=reg128#13%top,<_5y4=reg128#11%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1798:# asm 2: vmlal.u32 <r2=q15,<x23=d25,<_5y4=d20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1799-vmlal.u32 q15,d25,d20
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1801-# qhasm: r2[0,1] +=  x4[0] unsigned* _5y23[2]; r2[2,3] +=  x4[1] unsigned* _5y23[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1802:# asm 1: vmlal.u32 <r2=reg128#16,<x4=reg128#14%bot,<_5y23=reg128#9%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1803:# asm 2: vmlal.u32 <r2=q15,<x4=d26,<_5y23=d17
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1804-vmlal.u32 q15,d26,d17
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1806-# qhasm: r3[0,1]  = x01[0] unsigned* y23[2];   r3[2,3]  = x01[1] unsigned* y23[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1807:# asm 1: vmull.u32 >r3=reg128#9,<x01=reg128#12%bot,<y23=reg128#4%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1808:# asm 2: vmull.u32 >r3=q8,<x01=d22,<y23=d7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1809-vmull.u32 q8,d22,d7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1811-# qhasm: r3[0,1] += x01[2] unsigned* y23[0];   r3[2,3] += x01[3] unsigned* y23[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1812:# asm 1: vmlal.u32 <r3=reg128#9,<x01=reg128#12%top,<y23=reg128#4%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1813:# asm 2: vmlal.u32 <r3=q8,<x01=d23,<y23=d6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1814-vmlal.u32 q8,d23,d6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1816-# qhasm: r3[0,1] += x23[0] unsigned* y01[2];   r3[2,3] += x23[1] unsigned* y01[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1817:# asm 1: vmlal.u32 <r3=reg128#9,<x23=reg128#13%bot,<y01=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1818:# asm 2: vmlal.u32 <r3=q8,<x23=d24,<y01=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1819-vmlal.u32 q8,d24,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1821-# qhasm: r3[0,1] += x23[2] unsigned* y01[0];   r3[2,3] += x23[3] unsigned* y01[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1822:# asm 1: vmlal.u32 <r3=reg128#9,<x23=reg128#13%top,<y01=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1823:# asm 2: vmlal.u32 <r3=q8,<x23=d25,<y01=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1824-vmlal.u32 q8,d25,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1826-# qhasm: r3[0,1] +=  x4[0] unsigned*  _5y4[0]; r3[2,3] +=  x4[1] unsigned*  _5y4[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1827:# asm 1: vmlal.u32 <r3=reg128#9,<x4=reg128#14%bot,<_5y4=reg128#11%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1828:# asm 2: vmlal.u32 <r3=q8,<x4=d26,<_5y4=d20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1829-vmlal.u32 q8,d26,d20
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1831-# qhasm: r4[0,1]  = x01[0] unsigned*  y4[0];  r4[2,3]  = x01[1] unsigned*  y4[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1832:# asm 1: vmull.u32 >r4=reg128#10,<x01=reg128#12%bot,<y4=reg128#10%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1833:# asm 2: vmull.u32 >r4=q9,<x01=d22,<y4=d18
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1834-vmull.u32 q9,d22,d18
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1836-# qhasm: r4[0,1] += x01[2] unsigned* y23[2];  r4[2,3] += x01[3] unsigned* y23[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1837:# asm 1: vmlal.u32 <r4=reg128#10,<x01=reg128#12%top,<y23=reg128#4%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1838:# asm 2: vmlal.u32 <r4=q9,<x01=d23,<y23=d7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1839-vmlal.u32 q9,d23,d7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1841-# qhasm: r4[0,1] += x23[0] unsigned* y23[0];  r4[2,3] += x23[1] unsigned* y23[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1842:# asm 1: vmlal.u32 <r4=reg128#10,<x23=reg128#13%bot,<y23=reg128#4%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1843:# asm 2: vmlal.u32 <r4=q9,<x23=d24,<y23=d6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1844-vmlal.u32 q9,d24,d6
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1846-# qhasm: r4[0,1] += x23[2] unsigned* y01[2];  r4[2,3] += x23[3] unsigned* y01[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1847:# asm 1: vmlal.u32 <r4=reg128#10,<x23=reg128#13%top,<y01=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1848:# asm 2: vmlal.u32 <r4=q9,<x23=d25,<y01=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1849-vmlal.u32 q9,d25,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1851-# qhasm: r4[0,1] +=  x4[0] unsigned* y01[0];  r4[2,3] +=  x4[1] unsigned* y01[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1852:# asm 1: vmlal.u32 <r4=reg128#10,<x4=reg128#14%bot,<y01=reg128#2%bot
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1853:# asm 2: vmlal.u32 <r4=q9,<x4=d26,<y01=d2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1854-vmlal.u32 q9,d26,d2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1856-# qhasm: 2x t1 = r0 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1857:# asm 1: vshr.u64 >t1=reg128#2,<r0=reg128#15,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1858:# asm 2: vshr.u64 >t1=q1,<r0=q14,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1859-vshr.u64 q1,q14,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1861-# qhasm:    r0 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1862:# asm 1: vand >r0=reg128#4,<r0=reg128#15,<mask=reg128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1863:# asm 2: vand >r0=q3,<r0=q14,<mask=q0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1864-vand q3,q14,q0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1866-# qhasm: 2x r1 += t1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1867:# asm 1: vadd.i64 >r1=reg128#2,<r1=reg128#3,<t1=reg128#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1868:# asm 2: vadd.i64 >r1=q1,<r1=q2,<t1=q1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1869-vadd.i64 q1,q2,q1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1871-# qhasm:                 2x t4 = r3 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1872:# asm 1: vshr.u64 >t4=reg128#3,<r3=reg128#9,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1873:# asm 2: vshr.u64 >t4=q2,<r3=q8,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1874-vshr.u64 q2,q8,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1876-# qhasm:                    r3 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1877:# asm 1: vand >r3=reg128#9,<r3=reg128#9,<mask=reg128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1878:# asm 2: vand >r3=q8,<r3=q8,<mask=q0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1879-vand q8,q8,q0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1881-# qhasm:                 2x r4 += t4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1882:# asm 1: vadd.i64 >r4=reg128#3,<r4=reg128#10,<t4=reg128#3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1883:# asm 2: vadd.i64 >r4=q2,<r4=q9,<t4=q2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1884-vadd.i64 q2,q9,q2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1886-# qhasm: 2x t2 = r1 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1887:# asm 1: vshr.u64 >t2=reg128#10,<r1=reg128#2,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1888:# asm 2: vshr.u64 >t2=q9,<r1=q1,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1889-vshr.u64 q9,q1,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1891-# qhasm:    r1 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1892:# asm 1: vand >r1=reg128#2,<r1=reg128#2,<mask=reg128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1893:# asm 2: vand >r1=q1,<r1=q1,<mask=q0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1894-vand q1,q1,q0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1896-# qhasm:                 2x t0 = r4 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1897:# asm 1: vshr.u64 >t0=reg128#11,<r4=reg128#3,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1898:# asm 2: vshr.u64 >t0=q10,<r4=q2,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1899-vshr.u64 q10,q2,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1901-# qhasm: 2x r2 += t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1902:# asm 1: vadd.i64 >r2=reg128#10,<r2=reg128#16,<t2=reg128#10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1903:# asm 2: vadd.i64 >r2=q9,<r2=q15,<t2=q9
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1904-vadd.i64 q9,q15,q9
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1906-# qhasm:                    r4 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1907:# asm 1: vand >r4=reg128#3,<r4=reg128#3,<mask=reg128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1908:# asm 2: vand >r4=q2,<r4=q2,<mask=q0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1909-vand q2,q2,q0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1911-# qhasm:                 2x r0 += t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1912:# asm 1: vadd.i64 >r0=reg128#4,<r0=reg128#4,<t0=reg128#11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1913:# asm 2: vadd.i64 >r0=q3,<r0=q3,<t0=q10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1914-vadd.i64 q3,q3,q10
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1916-# qhasm:                 2x t0 <<= 2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1917:# asm 1: vshl.i64 >t0=reg128#11,<t0=reg128#11,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1918:# asm 2: vshl.i64 >t0=q10,<t0=q10,#2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1919-vshl.i64 q10,q10,#2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1921-# qhasm: 2x t3 = r2 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1922:# asm 1: vshr.u64 >t3=reg128#12,<r2=reg128#10,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1923:# asm 2: vshr.u64 >t3=q11,<r2=q9,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1924-vshr.u64 q11,q9,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1926-# qhasm:                 2x r0 += t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1927:# asm 1: vadd.i64 >r0=reg128#4,<r0=reg128#4,<t0=reg128#11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1928:# asm 2: vadd.i64 >r0=q3,<r0=q3,<t0=q10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1929-vadd.i64 q3,q3,q10
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1931-# qhasm:    x23 = r2 & mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1932:# asm 1: vand >x23=reg128#10,<r2=reg128#10,<mask=reg128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1933:# asm 2: vand >x23=q9,<r2=q9,<mask=q0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1934-vand q9,q9,q0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1936-# qhasm: 2x r3 += t3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1937:# asm 1: vadd.i64 >r3=reg128#9,<r3=reg128#9,<t3=reg128#12
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1938:# asm 2: vadd.i64 >r3=q8,<r3=q8,<t3=q11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1939-vadd.i64 q8,q8,q11
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1941-# qhasm:                 2x t1 = r0 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1942:# asm 1: vshr.u64 >t1=reg128#11,<r0=reg128#4,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1943:# asm 2: vshr.u64 >t1=q10,<r0=q3,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1944-vshr.u64 q10,q3,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1946-# qhasm: 				x23 = x23[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1947:# asm 1: vtrn.32 <x23=reg128#10%bot,<x23=reg128#10%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1948:# asm 2: vtrn.32 <x23=d18,<x23=d19
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1949-vtrn.32 d18,d19
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1951-# qhasm:                    x01 = r0 & mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1952:# asm 1: vand >x01=reg128#4,<r0=reg128#4,<mask=reg128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1953:# asm 2: vand >x01=q3,<r0=q3,<mask=q0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1954-vand q3,q3,q0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1956-# qhasm:                 2x r1 += t1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1957:# asm 1: vadd.i64 >r1=reg128#2,<r1=reg128#2,<t1=reg128#11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1958:# asm 2: vadd.i64 >r1=q1,<r1=q1,<t1=q10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1959-vadd.i64 q1,q1,q10
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1961-# qhasm: 2x t4 = r3 unsigned>> 26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1962:# asm 1: vshr.u64 >t4=reg128#11,<r3=reg128#9,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1963:# asm 2: vshr.u64 >t4=q10,<r3=q8,#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1964-vshr.u64 q10,q8,#26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1966-# qhasm: 				x01 = x01[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1967:# asm 1: vtrn.32 <x01=reg128#4%bot,<x01=reg128#4%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1968:# asm 2: vtrn.32 <x01=d6,<x01=d7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1969-vtrn.32 d6,d7
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1971-# qhasm:    r3 &= mask
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1972:# asm 1: vand >r3=reg128#1,<r3=reg128#9,<mask=reg128#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1973:# asm 2: vand >r3=q0,<r3=q8,<mask=q0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1974-vand q0,q8,q0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1976-# qhasm: 				r1 = r1[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1977:# asm 1: vtrn.32 <r1=reg128#2%bot,<r1=reg128#2%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1978:# asm 2: vtrn.32 <r1=d2,<r1=d3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1979-vtrn.32 d2,d3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1981-# qhasm: 2x x4 = r4 + t4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1982:# asm 1: vadd.i64 >x4=reg128#3,<r4=reg128#3,<t4=reg128#11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1983:# asm 2: vadd.i64 >x4=q2,<r4=q2,<t4=q10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1984-vadd.i64 q2,q2,q10
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1986-# qhasm: 				r3 = r3[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1987:# asm 1: vtrn.32 <r3=reg128#1%bot,<r3=reg128#1%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1988:# asm 2: vtrn.32 <r3=d0,<r3=d1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1989-vtrn.32 d0,d1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1991-# qhasm: 				x01 = x01[0,1] r1[0,1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1992:# asm 1: vext.32 <x01=reg128#4%top,<r1=reg128#2%bot,<r1=reg128#2%bot,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1993:# asm 2: vext.32 <x01=d7,<r1=d2,<r1=d2,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1994-vext.32 d7,d2,d2,#0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1996-# qhasm: 				x23 = x23[0,1] r3[0,1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1997:# asm 1: vext.32 <x23=reg128#10%top,<r3=reg128#1%bot,<r3=reg128#1%bot,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:1998:# asm 2: vext.32 <x23=d19,<r3=d0,<r3=d0,#0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-1999-vext.32 d19,d0,d0,#0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2001-# qhasm: 				x4 = x4[0,2,1,3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:2002:# asm 1: vtrn.32 <x4=reg128#3%bot,<x4=reg128#3%top
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:2003:# asm 2: vtrn.32 <x4=d4,<x4=d5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2004-vtrn.32 d4,d5
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2006-# qhasm: mem128[input_0] aligned= x01;input_0+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:2007:# asm 1: vst1.8 {<x01=reg128#4%bot-<x01=reg128#4%top},[<input_0=int32#1,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:2008:# asm 2: vst1.8 {<x01=d6-<x01=d7},[<input_0=r0,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2009-vst1.8 {d6-d7},[r0,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2011-# qhasm: mem128[input_0] aligned= x23;input_0+=16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:2012:# asm 1: vst1.8 {<x23=reg128#10%bot-<x23=reg128#10%top},[<input_0=int32#1,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:2013:# asm 2: vst1.8 {<x23=d18-<x23=d19},[<input_0=r0,: 128]!
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2014-vst1.8 {d18-d19},[r0,: 128]!
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2016-# qhasm: mem64[input_0] aligned= x4[0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:2017:# asm 1: vst1.8 <x4=reg128#3%bot,[<input_0=int32#1,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:2018:# asm 2: vst1.8 <x4=d4,[<input_0=r0,: 64]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2019-vst1.8 d4,[r0,: 64]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2024-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S:2025:#endif  /* __arm__ && !OPENSSL_NO_ASM && !__APPLE__ */
chromium-84.0.4147.105/third_party/boringssl/src/crypto/poly1305/poly1305_arm_asm.S-2026-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/bio/socket_helper.c-40-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/bio/socket_helper.c:41:int bio_ip_and_port_to_socket_and_addr(int *out_sock,
chromium-84.0.4147.105/third_party/boringssl/src/crypto/bio/socket_helper.c-42-                                       struct sockaddr_storage *out_addr,
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/bio/connect.c-204-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/bio/connect.c:205:        if (!bio_ip_and_port_to_socket_and_addr(
chromium-84.0.4147.105/third_party/boringssl/src/crypto/bio/connect.c-206-                &bio->num, &c->them, &c->them_length, c->param_hostname,
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/bio/internal.h-83-// on |port_str|. It returns one on success or zero on error.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/bio/internal.h:84:int bio_ip_and_port_to_socket_and_addr(int *out_sock,
chromium-84.0.4147.105/third_party/boringssl/src/crypto/bio/internal.h-85-                                       struct sockaddr_storage *out_addr,
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/test/asm/trampoline-x86_64.pl-432-  # add support for emitting these in x86_64-xlate.pl, probably based on MASM
chromium-84.0.4147.105/third_party/boringssl/src/crypto/test/asm/trampoline-x86_64.pl:433:  # and Yasm's unwind directives, and unify with CFI. (Sadly, NASM does not
chromium-84.0.4147.105/third_party/boringssl/src/crypto/test/asm/trampoline-x86_64.pl-434-  # support these directives.) Then push that upstream to replace the
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/test/abi_test.cc-620-    symbol.info.MaxNameLen = sizeof(symbol.name_buf);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/test/abi_test.cc:621:    if (SymFromAddr(GetCurrentProcess(), ip, &displacement, &symbol.info)) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/test/abi_test.cc-622-      snprintf(buf, sizeof(buf), "unwinding at %s+%llu (0x%s): %s",
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl-301-	my $f = $3;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl:302:	my $opcode = eval("\$$mnemonic");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl-303-	$line =~ s/\b(c?[rf]|v|vs)([0-9]+)\b/$2/g if ($c ne "." and $flavour !~ /osx/);
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl-311-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl:312:print "#endif  // !OPENSSL_NO_ASM && __powerpc64__\n";
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl-313-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/arm-xlate.pl-199-	if ($mnemonic =~ m/([^\.]+)\.([^\.]+)/) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/arm-xlate.pl:200:	    $opcode = eval("\$$1_$2");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/arm-xlate.pl-201-	} else {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/arm-xlate.pl:202:	    $opcode = eval("\$$mnemonic");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/arm-xlate.pl-203-	}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86asm.pl-336-	coff	- GAS/COFF such as Win32 targets
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86asm.pl:337:	win32n	- Windows 95/Windows NT NASM format
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86asm.pl:338:	nw-nasm - NetWare NASM format
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86asm.pl-339-	macosx	- Mac OS X
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86nasm.pl-94-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86nasm.pl:95:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86nasm.pl-96-%endif
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86nasm.pl:97:; Yasm automatically includes @feat.00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86nasm.pl-98-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86masm.pl-88-IF \@Version LT 800
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86masm.pl:89:ECHO MASM version 8.00 or later is strongly recommended.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86masm.pl-90-ENDIF
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-9-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:10:# Ascetic x86_64 AT&T to MASM/NASM assembler translator by <appro>.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-11-#
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:12:# Why AT&T to MASM and not vice versa? Several reasons. Because AT&T
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-13-# format is way easier to parse. Because it's simpler to "gear" from
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-21-# This translator is not designed to convert *arbitrary* assembler
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:22:# code from AT&T format to MASM one. It's designed to convert just
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-23-# enough to provide for dual-ABI OpenSSL modules development...
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-87-				  # TODO(davidben): Before supporting the
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:88:				  # mingw64 perlasm flavour, do away with this
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-89-				  # environment variable check.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-90-                                  die "mingw64 not supported";
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:91:				  $prefix=`echo __USER_LABEL_PREFIX__ | $ENV{CC} -E -P -`;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-92-				  $prefix =~ s|\R$||; # Better chomp
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-207-	    $value =~ s/(?<![\w\$\.])(0x?[0-9a-f]+)/oct($1)/egi;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:208:	    if ($value =~ s/([0-9]+\s*[\*\/\%]\s*[0-9]+)/eval($1)/eg) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-209-		$self->{value} = $value;
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-269-	$self->{label} =~ s/(?<![\w\$\.])(0x?[0-9a-f]+)/oct($1)/egi;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:270:	$self->{label} =~ s/\b([0-9]+\s*[\*\/\%]\s*[0-9]+)\b/eval($1)/eg;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-271-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-410-	} elsif ($self->{value} ne "$current_function->{name}") {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:411:	    # Make all labels in masm global.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-412-	    $self->{value} .= ":" if ($masm);
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-415-	    my $func =	"$current_function->{name}" .
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:416:			($nasm ? ":" : "\tPROC $current_function->{scope}") .
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-417-			"\n";
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-434-	   "$current_function->{name}".
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:435:			($nasm ? ":" : "\tPROC $current_function->{scope}");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-436-	}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-459-	my $self = shift;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:460:	if ($nasm && $self->{opcode}->mnemonic()=~m/^j(?![re]cxz)/) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-461-	    "NEAR ".$self->{value};
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-597-	my $reg = $DW_reg_idx{$1};
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:598:	my $off = eval ("0 $2 $3");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-599-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-615-	    } elsif ($token =~ /(\w+):(\-?(?:0x)?[0-9a-f]+)(U?)/i) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:616:		my $i = 1*eval($2);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-617-		push @ret,$DW_OP_complex{$1}, ($3 ? uleb128($i) : sleb128($i));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:618:	    } elsif (my $i = 1*eval($token) or $token eq "0") {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-619-		if ($token =~ /^\+/) {
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-653-	    /def_cfa_offset/
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:654:			&& do {	$cfa_rsp = -1*eval($$line) if ($cfa_reg eq "%rsp");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-655-				last;
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-657-	    /adjust_cfa_offset/
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:658:			&& do {	$cfa_rsp -= 1*eval($$line) if ($cfa_reg eq "%rsp");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-659-				last;
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-662-				    $cfa_reg = $1;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:663:				    $cfa_rsp = -1*eval($2) if ($cfa_reg eq "%rsp");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-664-				}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-879-					}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:880:					$self->{value}.="$current_function->{name}\tENDP" if($masm && $current_function->{name});
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-881-					undef $current_function;
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-884-				  };
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:885:		/\.align/   && do { my $max = ($masm && $masm>=$masmref) ? 256 : 4096;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-886-				    $self->{value} = "ALIGN\t".($$line>$max?$max:$$line);
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-1139-  my $comment = "#";
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:1140:  $comment = ";" if ($masm || $nasm);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-1141-  print <<___;
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-1206-    } elsif (my $opcode=opcode->re(\$line)) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:1207:	my $asm = eval("\$".$opcode->mnemonic());
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-1208-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-1249-		@args = reverse(@args);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl:1250:		undef $sz if ($nasm && $opcode->mnemonic() eq "lea");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/perlasm/x86_64-xlate.pl-1251-		printf "\t%s\t%s",$insn,join(",",map($_->out($sz),@args));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghash-x86_64.pl-1334-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghash-x86_64.pl:1335:$code =~ s/\`([^\`]*)\`/eval($1)/gem;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghash-x86_64.pl-1336-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl-1139-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl:1140:$code =~ s/\`([^\`]*)\`/eval($1)/gem;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl-1141-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl-384-	$STU		$sp,-$FRAME($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl:385:	li		r10,`15+6*$SIZE_T`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl:386:	li		r11,`31+6*$SIZE_T`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl-387-	stvx		v20,r10,$sp
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl-410-	li		r0,-1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl:411:	stw		$vrsave,`$FRAME-4`($sp)	# save vrsave
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl-412-	mtspr		256,r0			# preserve all AltiVec registers
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl-617-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl:618:	li		r10,`15+6*$SIZE_T`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl:619:	li		r11,`31+6*$SIZE_T`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl-620-	mtspr		256,$vrsave
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/md5/md5_test.cc-33-}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/md5/md5_test.cc:34:#endif  // MD5_ASM && SUPPORTS_ABI_TEST
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2785-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:2786:	`&load_for_sqr("$S(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2787-	lea	$S(%rsp), $r_ptr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2816-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:2817:	`&load_for_sqr("$S(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2818-	movq	%xmm1, $r_ptr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2869-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:2870:	`&load_for_mul("$M(%rsp)", "$Zsqr(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2871-	lea	$M(%rsp), $r_ptr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2880-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:2881:	`&load_for_mul("$S(%rsp)", "$in_x(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2882-	lea	$S(%rsp), $r_ptr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2887-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:2888:	`&load_for_sqr("$M(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-2889-	movq	%xmm0, $r_ptr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3073-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3074:	`&load_for_mul("$Z2sqr(%rsp)", "$in2_z(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3075-	lea	$S1(%rsp), $r_ptr		# S1 = Z2^3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3077-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3078:	`&load_for_mul("$Z1sqr(%rsp)", "$in1_z(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3079-	lea	$S2(%rsp), $r_ptr		# S2 = Z1^3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3081-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3082:	`&load_for_mul("$S1(%rsp)", "$in1_y(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3083-	lea	$S1(%rsp), $r_ptr		# S1 = Y1*Z2^3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3085-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3086:	`&load_for_mul("$S2(%rsp)", "$in2_y(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3087-	lea	$S2(%rsp), $r_ptr		# S2 = Y2*Z1^3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3100-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3101:	`&load_for_mul("$Z2sqr(%rsp)", "$in1_x(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3102-	lea	$U1(%rsp), $r_ptr		# U1 = X1*Z2^2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3104-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3105:	`&load_for_mul("$Z1sqr(%rsp)", "$in2_x(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3106-	lea	$U2(%rsp), $r_ptr		# U2 = X2*Z1^2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3153-.Ladd_proceed$x:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3154:	`&load_for_sqr("$R(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3155-	lea	$Rsqr(%rsp), $r_ptr		# R^2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3157-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3158:	`&load_for_mul("$H(%rsp)", "$in1_z(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3159-	lea	$res_z(%rsp), $r_ptr		# Z3 = H*Z1*Z2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3161-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3162:	`&load_for_sqr("$H(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3163-	lea	$Hsqr(%rsp), $r_ptr		# H^2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3165-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3166:	`&load_for_mul("$res_z(%rsp)", "$in2_z(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3167-	lea	$res_z(%rsp), $r_ptr		# Z3 = H*Z1*Z2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3169-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3170:	`&load_for_mul("$Hsqr(%rsp)", "$H(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3171-	lea	$Hcub(%rsp), $r_ptr		# H^3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3173-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3174:	`&load_for_mul("$Hsqr(%rsp)", "$U1(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3175-	lea	$U2(%rsp), $r_ptr		# U1*H^2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3237-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3238:	`&load_for_mul("$S1(%rsp)", "$Hcub(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3239-	lea	$S2(%rsp), $r_ptr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3241-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3242:	`&load_for_mul("$R(%rsp)", "$res_y(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3243-	lea	$res_y(%rsp), $r_ptr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3471-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3472:	`&load_for_mul("$Z1sqr(%rsp)", "$in1_z(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3473-	lea	$S2(%rsp), $r_ptr		# S2 = Z1^3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3475-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3476:	`&load_for_mul("$H(%rsp)", "$in1_z(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3477-	lea	$res_z(%rsp), $r_ptr		# Z3 = H*Z1*Z2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3479-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3480:	`&load_for_mul("$S2(%rsp)", "$in2_y(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3481-	lea	$S2(%rsp), $r_ptr		# S2 = Y2*Z1^3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3487-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3488:	`&load_for_sqr("$H(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3489-	lea	$Hsqr(%rsp), $r_ptr		# H^2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3491-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3492:	`&load_for_sqr("$R(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3493-	lea	$Rsqr(%rsp), $r_ptr		# R^2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3495-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3496:	`&load_for_mul("$H(%rsp)", "$Hsqr(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3497-	lea	$Hcub(%rsp), $r_ptr		# H^3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3499-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3500:	`&load_for_mul("$Hsqr(%rsp)", "$in1_x(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3501-	lea	$U2(%rsp), $r_ptr		# U1*H^2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3563-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3564:	`&load_for_mul("$Hcub(%rsp)", "$in1_y(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3565-	lea	$S2(%rsp), $r_ptr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3567-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl:3568:	`&load_for_mul("$H(%rsp)", "$R(%rsp)", "$src0")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl-3569-	lea	$H(%rsp), $r_ptr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-33-#
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:34:#		gcc 3.4		32-bit asm	cycles/byte
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-35-# Opteron	+45%		+20%		6.8
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-143-$code.=<<___ if ($i==0);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:144:	mov	`4*$i`($inp),$xi[0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-145-	bswap	$xi[0]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-147-$code.=<<___ if ($i<15);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:148:	mov	`4*$j`($inp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-149-	mov	$d,$t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:150:	mov	$xi[0],`4*$i`(%rsp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-151-	mov	$a,$t2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-162-$code.=<<___ if ($i>=15);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:163:	xor	`4*($j%16)`(%rsp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-164-	mov	$d,$t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:165:	mov	$xi[0],`4*($i%16)`(%rsp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-166-	mov	$a,$t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:167:	xor	`4*(($j+2)%16)`(%rsp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-168-	xor	$c,$t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-169-	rol	\$5,$t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:170:	xor	`4*(($j+8)%16)`(%rsp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-171-	and	$b,$t0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-186-$code.=<<___ if ($i<79);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:187:	xor	`4*($j%16)`(%rsp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-188-	mov	$b,$t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:189:	`"mov	$xi[0],".4*($i%16)."(%rsp)"	if ($i<72)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-190-	mov	$a,$t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:191:	xor	`4*(($j+2)%16)`(%rsp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-192-	xor	$d,$t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-193-	rol	\$5,$t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:194:	xor	`4*(($j+8)%16)`(%rsp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-195-	lea	$K($xi[0],$e),$e
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-219-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:220:	xor	`4*($j%16)`(%rsp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-221-	mov	$d,$t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:222:	mov	$xi[0],`4*($i%16)`(%rsp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-223-	mov	$d,$t1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:224:	xor	`4*(($j+2)%16)`(%rsp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-225-	and	$c,$t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-226-	mov	$a,$t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:227:	xor	`4*(($j+8)%16)`(%rsp),$xi[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-228-	lea	0x8f1bbcdc($xi[0],$e),$e
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-400-	movdqa		$ABCD,$E_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:401:	sha1rnds4	\$`int($i/5)`,$E,$ABCD	# 0-3...
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-402-	sha1nexte	@MSG[1],$E_
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-407-	movdqa		$ABCD,$E
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:408:	sha1rnds4	\$`int(($i+1)/5)`,$E_,$ABCD
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-409-	sha1nexte	@MSG[2],$E
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-507-.cfi_push	%r14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:508:	lea	`-64-($win64?6*16:0)`(%rsp),%rsp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-509-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-601-	 eval(shift(@insns));		# rol
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:602:	  &movdqa	(eval(16*(($Xi-1)&3))."(%rsp)",@Tx[1]);	# X[]+K xfer to IALU
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-603-	 eval(shift(@insns));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-636-	 eval(shift(@insns));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:637:	  &movdqa	(@Tx[2],eval(2*16*(($Xi)/5)-64)."($K_XX_XX)");	# K_XX_XX
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-638-	 eval(shift(@insns));		# rol
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-656-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:657:	 eval(shift(@insns))		if ($Xi==8);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-658-	&pxor	(@X[0],@X[-4&7]);	# "X[0]"="X[-32]"^"X[-16]"
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:659:	 eval(shift(@insns))		if ($Xi==8);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-660-	 eval(shift(@insns));		# body_20_39
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-673-	} else {			# ... or load next one
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:674:	  &movdqa	(@Tx[2],eval(2*16*($Xi/5)-64)."($K_XX_XX)");
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-675-	}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-689-	 eval(shift(@insns));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:690:	  &movdqa	(eval(16*(($Xi-1)&3))."(%rsp)",@Tx[1]);	# X[]+K xfer to IALU
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-691-	 eval(shift(@insns));		# ror
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-736-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:737:	  &movdqa	(eval(16*(($Xi-1)&3))."(%rsp)",@Tx[1]);	# X[]+K xfer IALU
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-738-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-776-	 eval(shift(@insns));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:777:	&movdqa	(eval(16*$Xi)."(%rsp)",@X[($Xi-4)&7]);	# X[]+K xfer to IALU
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-778-	 eval(shift(@insns));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-805-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:806:	'&add	($e,eval(4*($j&15))."(%rsp)")',	# X[]+K xfer
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-807-	'&xor	($b,$c)',	# $c^$d for next round
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-822-	'($a,$b,$c,$d,$e)=@V;'.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:823:	'&add	($e,eval(4*($j&15))."(%rsp)")',	# X[]+K xfer
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-824-	'&xor	(@T[0],$d)	if($j==19);'.
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-841-	'($a,$b,$c,$d,$e)=@V;'.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:842:	'&add	($e,eval(4*($j&15))."(%rsp)")',	# X[]+K xfer
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-843-	'&and	(@T[0],$c)	if ($j>=40)',	# (b^c)&(c^d)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-981-.cfi_push	%r14
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:982:	lea	`-64-($win64?6*16:0)`(%rsp),%rsp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-983-	vzeroupper
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1064-	 eval(shift(@insns));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1065:	  &vmovdqa	(eval(16*(($Xi-1)&3))."(%rsp)",@Tx[1]);	# X[]+K xfer to IALU
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1066-	 eval(shift(@insns));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1098-	 eval(shift(@insns));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1099:	  &vmovdqa	($Kx,eval(2*16*(($Xi)/5)-64)."($K_XX_XX)")	if ($Xi%5==0);	# K_XX_XX
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1100-	 eval(shift(@insns));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1125-	  &vpaddd	(@Tx[1],$Kx,@X[-1&7]);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1126:	  &vmovdqa	($Kx,eval(2*16*($Xi/5)-64)."($K_XX_XX)")	if ($Xi%5==0);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1127-	 eval(shift(@insns));		# ror
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1136-	&vpsrld	(@Tx[0],@X[0],30);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1137:	  &vmovdqa	(eval(16*(($Xi-1)&3))."(%rsp)",@Tx[1]);	# X[]+K xfer to IALU
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1138-	 eval(shift(@insns));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1180-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1181:	  &vmovdqa	(eval(16*(($Xi-1)&3))."(%rsp)",@Tx[1]);	# X[]+K xfer IALU
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1182-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1215-	 eval(shift(@insns));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1216:	&vmovdqa(eval(16*$Xi)."(%rsp)",@X[$Xi&7]);	# X[]+K xfer to IALU
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1217-	 eval(shift(@insns));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1426-	&vpsrld	(@Tx[0],@X[0],31);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1427:	&vmovdqu($Kx,eval(2*16*(($Xi)/5)-64)."($K_XX_XX)")	if ($Xi%5==0);	# K_XX_XX
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1428-	&vpslldq(@Tx[2],@X[0],12);		# "X[0]"<<96, extract one dword
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1546-	&vpsrld	(@Tx[0],@X[0],31);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1547:	&vmovdqu($Kx,eval(2*16*(($Xi)/5)-64)."($K_XX_XX)")	if ($Xi%5==0);	# K_XX_XX
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1548-	 eval(shift(@insns));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1575-	 eval(shift(@insns));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1576:	&vmovdqu(eval(32*($Xi))."(%rsp)",@Tx[1]);	# X[]+K xfer to IALU
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1577-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1595-	&vpxor	(@X[0],@X[0],@X[-7&7]);		# "X[0]"^="X[-28]"
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl:1596:	&vmovdqu($Kx,eval(2*16*($Xi/5)-64)."($K_XX_XX)")	if ($Xi%5==0);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl-1597-	 eval(shift(@insns));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-369-	beq	.L00_15
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:370:	ldr	$t0,[sp,#`$Xoff+8*(16-1)`+0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:371:	ldr	$t1,[sp,#`$Xoff+8*(16-1)`+4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-372-	bic	$Ktbl,$Ktbl,#1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-377-	mov	$Tlo,$t0,lsr#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:378:	ldr	$t2,[sp,#`$Xoff+8*(16-14)`+0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-379-	mov	$Thi,$t1,lsr#1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:380:	ldr	$t3,[sp,#`$Xoff+8*(16-14)`+4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-381-	eor	$Tlo,$Tlo,$t1,lsl#31
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-403-	eor	$t1,$t1,$t3,lsr#6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:404:	ldr	$t2,[sp,#`$Xoff+8*(16-9)`+0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-405-	eor	$t0,$t0,$t3,lsl#26
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-406-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:407:	ldr	$t3,[sp,#`$Xoff+8*(16-9)`+4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-408-	adds	$Tlo,$Tlo,$t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:409:	ldr	$t0,[sp,#`$Xoff+8*16`+0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-410-	adc	$Thi,$Thi,$t1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-411-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:412:	ldr	$t1,[sp,#`$Xoff+8*16`+4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-413-	adds	$Tlo,$Tlo,$t2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-422-#endif
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:423:	ldreq	$t0,[sp,#`$Xoff+8*(16-1)`+0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl:424:	ldreq	$t1,[sp,#`$Xoff+8*(16-1)`+4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl-425-	beq	.L16_79
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-102-$code.=<<___	if ($i>=14);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl:103:	ldr	@X[($i-11)&15],[sp,#`$SZ*(($i-11)%4)`]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-104-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-108-$code.=<<___	if ($i>=11);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl:109:	str	@X[($i-8)&15],[sp,#`$SZ*(($i-8)%4)`]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-110-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-120-	add	$h,$h,$t2			// h+=K[i]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl:121:	eor	$T0,$e,$e,ror#`$Sigma1[2]-$Sigma1[1]`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-122-	and	$t1,$f,$e
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-129-	add	$h,$h,$t1			// h+=Ch(e,f,g)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl:130:	eor	$t1,$a,$a,ror#`$Sigma0[2]-$Sigma0[1]`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-131-	add	$h,$h,$t0			// h+=Sigma1(e)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-212-	ldp	$E,$F,[$ctx,#4*$SZ]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl:213:	add	$num,$inp,$num,lsl#`log(16*$SZ)/log(2)`	// end of input
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-214-	ldp	$G,$H,[$ctx,#6*$SZ]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-232-	ldr	$inp,[x29,#112]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl:233:	sub	$Ktbl,$Ktbl,#`$SZ*($rounds+1)`		// rewind
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-234-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-453-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl:454:	s/\`([^\`]*)\`/eval($1)/geo;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl-455-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-586.pl-1078-	    eval(shift(@insns));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-586.pl:1079:	    eval($insn = shift(@insns));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-586.pl:1080:	    eval(shift(@insns)) if ($insn =~ /rorx/ && @insns[0] =~ /rorx/);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-586.pl-1081-	}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-93-# endif
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:94:	eor	$t0,$e,$e,ror#`$Sigma1[1]-$Sigma1[0]`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-95-	add	$a,$a,$t2			@ h+=Maj(a,b,c) from the past
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:96:	eor	$t0,$t0,$e,ror#`$Sigma1[2]-$Sigma1[0]`	@ Sigma1(e)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-97-# ifndef __ARMEB__
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-110-# endif
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:111:	eor	$t0,$e,$e,ror#`$Sigma1[1]-$Sigma1[0]`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-112-	orr	$t1,$t1,$t2,lsl#24
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:113:	eor	$t0,$t0,$e,ror#`$Sigma1[2]-$Sigma1[0]`	@ Sigma1(e)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-114-#endif
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-118-	add	$h,$h,$t1			@ h+=X[i]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:119:	str	$t1,[sp,#`$i%16`*4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-120-	eor	$t1,$f,$g
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-124-	eor	$t1,$t1,$g			@ Ch(e,f,g)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:125:	eor	$t0,$a,$a,ror#`$Sigma0[1]-$Sigma0[0]`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-126-	add	$h,$h,$t1			@ h+=Ch(e,f,g)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-138-#else
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:139:	ldr	$t1,[sp,#`($i+2)%16`*4]		@ from future BODY_16_xx
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-140-	eor	$t2,$a,$b			@ a^b, b^c in next round
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:141:	ldr	$t4,[sp,#`($i+15)%16`*4]	@ from future BODY_16_xx
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-142-#endif
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:143:	eor	$t0,$t0,$a,ror#`$Sigma0[2]-$Sigma0[0]`	@ Sigma0(a)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-144-	and	$t3,$t3,$t2			@ (b^c)&=(a^b)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-156-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:157:	@ ldr	$t1,[sp,#`($i+1)%16`*4]		@ $i
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:158:	@ ldr	$t4,[sp,#`($i+14)%16`*4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-159-	mov	$t0,$t1,ror#$sigma0[0]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-164-	eor	$t0,$t0,$t1,lsr#$sigma0[2]	@ sigma0(X[i+1])
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:165:	ldr	$t1,[sp,#`($i+0)%16`*4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-166-	eor	$t2,$t2,$t4,lsr#$sigma1[2]	@ sigma1(X[i+14])
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:167:	ldr	$t4,[sp,#`($i+9)%16`*4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-168-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-169-	add	$t2,$t2,$t0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:170:	eor	$t0,$e,$e,ror#`$Sigma1[1]-$Sigma1[0]`	@ from BODY_00_15
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-171-	add	$t1,$t1,$t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl:172:	eor	$t0,$t0,$e,ror#`$Sigma1[2]-$Sigma1[0]`	@ Sigma1(e)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl-173-	add	$t1,$t1,$t4			@ X[i]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-174-$_end="16*$SZ+2*8(%rsp)";
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:175:$_rsp="`16*$SZ+3*8`(%rsp)";
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-176-$framesz="16*$SZ+4*8";
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-184-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:185:	ror	\$`$Sigma1[2]-$Sigma1[1]`,$a0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-186-	mov	$f,$a2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-188-	xor	$e,$a0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:189:	ror	\$`$Sigma0[2]-$Sigma0[1]`,$a1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-190-	xor	$g,$a2			# f^g
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-191-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:192:	mov	$T1,`$SZ*($i&0xf)`(%rsp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-193-	xor	$a,$a1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-195-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:196:	ror	\$`$Sigma1[1]-$Sigma1[0]`,$a0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-197-	add	$h,$T1			# T1+=h
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-199-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:200:	ror	\$`$Sigma0[1]-$Sigma0[0]`,$a1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-201-	xor	$e,$a0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-231-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:232:	mov	`$SZ*(($i+1)&0xf)`(%rsp),$a0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:233:	mov	`$SZ*(($i+14)&0xf)`(%rsp),$a2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-234-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-235-	mov	$a0,$T1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:236:	ror	\$`$sigma0[1]-$sigma0[0]`,$a0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-237-	add	$a1,$a			# modulo-scheduled h+=Sigma0(a)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-238-	mov	$a2,$a1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:239:	ror	\$`$sigma1[1]-$sigma1[0]`,$a2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-240-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-249-	xor	$a1,$a2			# sigma1(X[(i+14)&0xf])
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:250:	add	`$SZ*(($i+9)&0xf)`(%rsp),$T1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-251-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:252:	add	`$SZ*($i&0xf)`(%rsp),$T1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-253-	mov	$e,$a0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-357-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:358:	cmpb	\$0,`$SZ-1`($Tbl)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-359-	jnz	.Lrounds_16_xx
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-790-	shl	\$4,%rdx		# num*16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:791:	sub	\$`$framesz+$win64*16*4`,%rsp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-792-	lea	($inp,%rdx,$SZ),%rdx	# inp+num*16*$SZ
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-819-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:820:	#movdqa	$TABLE+`$SZ*2*$rounds`+32(%rip),$t4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:821:	#movdqa	$TABLE+`$SZ*2*$rounds`+64(%rip),$t5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-822-	jmp	.Lloop_ssse3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-824-.Lloop_ssse3:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:825:	movdqa	$TABLE+`$SZ*2*$rounds`(%rip),$t3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-826-	movdqu	0x00($inp),@X[0]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-854-.Lssse3_00_47:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:855:	sub	\$`-16*2*$SZ`,$Tbl	# size optimization
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-856-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1153-	shl	\$4,%rdx		# num*16
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1154:	sub	\$`$framesz+$win64*16*($SZ==4?4:6)`,%rsp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1155-	lea	($inp,%rdx,$SZ),%rdx	# inp+num*16*$SZ
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1190-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1191:	vmovdqa	$TABLE+`$SZ*2*$rounds`+32(%rip),$t4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1192:	vmovdqa	$TABLE+`$SZ*2*$rounds`+64(%rip),$t5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1193-	jmp	.Lloop_avx
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1195-.Lloop_avx:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1196:	vmovdqa	$TABLE+`$SZ*2*$rounds`(%rip),$t3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1197-	vmovdqu	0x00($inp),@X[0]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1221-.Lavx_00_47:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1222:	sub	\$`-16*2*$SZ`,$Tbl	# size optimization
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1223-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1293-.Lloop_avx:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1294:	vmovdqa	$TABLE+`$SZ*2*$rounds`(%rip),$t3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1295-	vmovdqu	0x00($inp),@X[0]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1335-.Lavx_00_47:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1336:	add	\$`16*2*$SZ`,$Tbl
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1337-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1521-.cfi_push	%r15
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1522:	sub	\$`2*$SZ*$rounds+4*8+$win64*16*($SZ==4?4:6)`,%rsp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1523-	shl	\$4,%rdx		# num*16
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1525-	lea	($inp,%rdx,$SZ),%rdx	# inp+num*16*$SZ
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1526:	add	\$`2*$SZ*($rounds-8)`,%rsp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1527-	mov	$ctx,$_ctx		# save ctx, 1st arg
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1564-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1565:	vmovdqa	$TABLE+`$SZ*2*$rounds`+32(%rip),$t4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1566:	vmovdqa	$TABLE+`$SZ*2*$rounds`+64(%rip),$t5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1567-	jmp	.Loop_avx2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1569-.Loop_avx2:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1570:	vmovdqa	$TABLE+`$SZ*2*$rounds`(%rip),$t3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1571-	vmovdqu	-16*$SZ+0($inp),%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1654-	#mov	$inp,$_inp	# offload $inp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1655:	vmovdqa	`$SZ*2*$rounds-0x80`($Tbl),$t2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1656-	vinserti128	\$1,(%r12),@X[0],@X[0]
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1735-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1736:	mov	`2*$SZ*$rounds`(%rsp),$ctx	# $_ctx
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1737-	add	$a1,$A
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1738:	#mov	`2*$SZ*$rounds+8`(%rsp),$inp	# $_inp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1739:	lea	`2*$SZ*($rounds-8)`(%rsp),$Tbl
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1740-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1758-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1759:	cmp	`$PUSH8+2*8`($Tbl),$inp	# $_end
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1760-	je	.Ldone_avx2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1778-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1779:	mov	`2*$SZ*$rounds`(%rsp),$ctx	# $_ctx
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1780-	add	$a1,$A
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1781:	#mov	`2*$SZ*$rounds+8`(%rsp),$inp	# $_inp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1782:	lea	`2*$SZ*($rounds-8)`(%rsp),%rsp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1783-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1789-	add	$SZ*5($ctx),$F
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1790:	lea	`2*16*$SZ`($inp),$inp	# inp+=2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1791-	add	$SZ*6($ctx),$G
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1895-	and	\$-256*$SZ,%rax
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1896:	add	\$`2*$SZ*($rounds-8)`,%rax
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1897-.Lnot_in_avx2:
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1921-	lea	512($context),%rdi	# &context.Xmm6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl:1922:	mov	\$`$SZ==4?8:12`,%ecx
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl-1923-	.long	0xa548f3fc		# cld; rep movsq
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-armv8.pl-60-$code.=<<___ if ($i<14 && !($i&1));
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-armv8.pl:61:	ldr	@Xx[$i+2],[$inp,#`($i+2)*4-64`]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-armv8.pl-62-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-armv8.pl-348-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-armv8.pl:349:	s/\`([^\`]*)\`/eval($1)/geo;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha1-armv8.pl-350-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-586.pl-24-#
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-586.pl:25:#		gcc	icc	x86 asm	SIMD(*)	x86_64(**)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/asm/sha512-586.pl-26-# Pentium	100	97	61	-	-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc-33-}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc:34:#endif  // SHA1_ASM && SUPPORTS_ABI_TEST
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc-35-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc-46-}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc:47:#endif  // SHA256_ASM && SUPPORTS_ABI_TEST
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc-48-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc-59-}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/sha/sha_test.cc:60:#endif  // SHA512_ASM && SUPPORTS_ABI_TEST
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-363-	veor	@t[1], @t[1], @x[1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:364:	vtbl.8	`&Dlo(@x[0])`, {@t[0]}, `&Dlo($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:365:	vtbl.8	`&Dhi(@x[0])`, {@t[0]}, `&Dhi($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-366-	vldmia	$key!, {@t[0]}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-367-	veor	@t[2], @t[2], @x[2]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:368:	vtbl.8	`&Dlo(@x[1])`, {@t[1]}, `&Dlo($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:369:	vtbl.8	`&Dhi(@x[1])`, {@t[1]}, `&Dhi($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-370-	vldmia	$key!, {@t[1]}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-371-	veor	@t[3], @t[3], @x[3]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:372:	vtbl.8	`&Dlo(@x[2])`, {@t[2]}, `&Dlo($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:373:	vtbl.8	`&Dhi(@x[2])`, {@t[2]}, `&Dhi($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-374-	vldmia	$key!, {@t[2]}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:375:	vtbl.8	`&Dlo(@x[3])`, {@t[3]}, `&Dlo($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:376:	vtbl.8	`&Dhi(@x[3])`, {@t[3]}, `&Dhi($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-377-	vldmia	$key!, {@t[3]}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-379-	veor	@t[1], @t[1], @x[5]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:380:	vtbl.8	`&Dlo(@x[4])`, {@t[0]}, `&Dlo($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:381:	vtbl.8	`&Dhi(@x[4])`, {@t[0]}, `&Dhi($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-382-	veor	@t[2], @t[2], @x[6]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:383:	vtbl.8	`&Dlo(@x[5])`, {@t[1]}, `&Dlo($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:384:	vtbl.8	`&Dhi(@x[5])`, {@t[1]}, `&Dhi($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-385-	veor	@t[3], @t[3], @x[7]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:386:	vtbl.8	`&Dlo(@x[6])`, {@t[2]}, `&Dlo($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:387:	vtbl.8	`&Dhi(@x[6])`, {@t[2]}, `&Dhi($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:388:	vtbl.8	`&Dlo(@x[7])`, {@t[3]}, `&Dlo($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:389:	vtbl.8	`&Dhi(@x[7])`, {@t[3]}, `&Dhi($mask)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-390-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-1739-	subs		$len, #0x10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:1740:	bmi		.Lxts_enc_`$i-9`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-1741-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-2154-	subs		$len, #0x10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:2155:	bmi		.Lxts_dec_`$i-9`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-2156-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-2423-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl:2424:$code =~ s/\`([^\`]*)\`/eval($1)/gem;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl-2425-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl-1445-	aesenc		$rndkeyx,$inout3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl:1446:	 mov		%r9d,`0x10*($i-1)`+12(%rsp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl-1447-	 lea		$i($ctr),%r9
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl-1451-	aesenc		$rndkeyx,$inout7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl:1452:	$movkey		`0x20+0x10*$i`-0x80($key),$rndkeyx
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl-1453-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl-3907-	aesdec		$rndkeyx,$inout7
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl:3908:	$movkey		`0x30+0x10*$i`-0x70($key),$rndkeyx
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl-3909-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl-5097-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl:5098:$code =~ s/\`([^\`]*)\`/eval($1)/gem;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl-5099-$code =~ s/\b(aes.*%xmm[0-9]+).*$/aesni($1)/gem;
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-376-	mflr		r10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:377:	$PUSH		r10,`$FRAME+$LRSAVE`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-378-	bl		Lset_encrypt_key
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-682-_aesp8_cbc_decrypt8x:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:683:	$STU		$sp,-`($FRAME+21*16+6*$SIZE_T)`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:684:	li		r10,`$FRAME+8*16+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:685:	li		r11,`$FRAME+8*16+31`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-686-	stvx		v20,r10,$sp		# ABI says so
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-708-	li		r0,-1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:709:	stw		$vrsave,`$FRAME+21*16-4`($sp)	# save vrsave
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-710-	li		$x10,0x10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:711:	$PUSH		r26,`$FRAME+21*16+0*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-712-	li		$x20,0x20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:713:	$PUSH		r27,`$FRAME+21*16+1*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-714-	li		$x30,0x30
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:715:	$PUSH		r28,`$FRAME+21*16+2*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-716-	li		$x40,0x40
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:717:	$PUSH		r29,`$FRAME+21*16+3*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-718-	li		$x50,0x50
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:719:	$PUSH		r30,`$FRAME+21*16+4*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-720-	li		$x60,0x60
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:721:	$PUSH		r31,`$FRAME+21*16+5*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-722-	li		$x70,0x70
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-732-	?vperm		$rndkey0,$rndkey0,v30,$keyperm
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:733:	addi		$key_,$sp,`$FRAME+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-734-	mtctr		$rounds
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-753-	stvx		v25,$x10,$key_		# off-load round[4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:754:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-755-	?vperm		v26,v26,v27,$keyperm
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-870-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:871:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-872-	vncipher	$out0,$out0,v28
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1201-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1202:	li		r10,`$FRAME+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1203:	li		r11,`$FRAME+31`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1204-	stvx		$inpperm,r10,$sp	# wipe copies of round keys
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1243-	lvx		v31,r11,$sp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1244:	$POP		r26,`$FRAME+21*16+0*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1245:	$POP		r27,`$FRAME+21*16+1*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1246:	$POP		r28,`$FRAME+21*16+2*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1247:	$POP		r29,`$FRAME+21*16+3*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1248:	$POP		r30,`$FRAME+21*16+4*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1249:	$POP		r31,`$FRAME+21*16+5*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1250:	addi		$sp,$sp,`$FRAME+21*16+6*$SIZE_T`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1251-	blr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1389-_aesp8_ctr32_encrypt8x:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1390:	$STU		$sp,-`($FRAME+21*16+6*$SIZE_T)`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1391:	li		r10,`$FRAME+8*16+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1392:	li		r11,`$FRAME+8*16+31`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1393-	stvx		v20,r10,$sp		# ABI says so
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1415-	li		r0,-1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1416:	stw		$vrsave,`$FRAME+21*16-4`($sp)	# save vrsave
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1417-	li		$x10,0x10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1418:	$PUSH		r26,`$FRAME+21*16+0*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1419-	li		$x20,0x20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1420:	$PUSH		r27,`$FRAME+21*16+1*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1421-	li		$x30,0x30
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1422:	$PUSH		r28,`$FRAME+21*16+2*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1423-	li		$x40,0x40
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1424:	$PUSH		r29,`$FRAME+21*16+3*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1425-	li		$x50,0x50
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1426:	$PUSH		r30,`$FRAME+21*16+4*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1427-	li		$x60,0x60
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1428:	$PUSH		r31,`$FRAME+21*16+5*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1429-	li		$x70,0x70
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1438-	?vperm		$rndkey0,$rndkey0,v30,$keyperm
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1439:	addi		$key_,$sp,`$FRAME+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1440-	mtctr		$rounds
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1459-	stvx		v25,$x10,$key_		# off-load round[4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1460:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1461-	?vperm		v26,v26,v27,$keyperm
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1546-	and		r0,r0,r11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1547:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1548-	vcipher		$out0,$out0,v26
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1854-Lctr32_enc8x_done:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1855:	li		r10,`$FRAME+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1856:	li		r11,`$FRAME+31`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1857-	stvx		$inpperm,r10,$sp	# wipe copies of round keys
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1896-	lvx		v31,r11,$sp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1897:	$POP		r26,`$FRAME+21*16+0*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1898:	$POP		r27,`$FRAME+21*16+1*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1899:	$POP		r28,`$FRAME+21*16+2*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1900:	$POP		r29,`$FRAME+21*16+3*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1901:	$POP		r30,`$FRAME+21*16+4*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1902:	$POP		r31,`$FRAME+21*16+5*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:1903:	addi		$sp,$sp,`$FRAME+21*16+6*$SIZE_T`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-1904-	blr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2414-_aesp8_xts_encrypt6x:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2415:	$STU		$sp,-`($FRAME+21*16+6*$SIZE_T)`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2416-	mflr		r11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2417:	li		r7,`$FRAME+8*16+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2418:	li		r3,`$FRAME+8*16+31`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2419:	$PUSH		r11,`$FRAME+21*16+6*$SIZE_T+$LRSAVE`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2420-	stvx		v20,r7,$sp		# ABI says so
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2442-	li		r0,-1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2443:	stw		$vrsave,`$FRAME+21*16-4`($sp)	# save vrsave
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2444-	li		$x10,0x10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2445:	$PUSH		r26,`$FRAME+21*16+0*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2446-	li		$x20,0x20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2447:	$PUSH		r27,`$FRAME+21*16+1*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2448-	li		$x30,0x30
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2449:	$PUSH		r28,`$FRAME+21*16+2*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2450-	li		$x40,0x40
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2451:	$PUSH		r29,`$FRAME+21*16+3*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2452-	li		$x50,0x50
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2453:	$PUSH		r30,`$FRAME+21*16+4*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2454-	li		$x60,0x60
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2455:	$PUSH		r31,`$FRAME+21*16+5*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2456-	li		$x70,0x70
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2465-	?vperm		$rndkey0,$rndkey0,v30,$keyperm
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2466:	addi		$key_,$sp,`$FRAME+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2467-	mtctr		$rounds
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2486-	stvx		v25,$x10,$key_		# off-load round[4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2487:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2488-	?vperm		v26,v26,v27,$keyperm
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2643-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2644:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2645-	 vxor		$tweak,$tweak,$tmp
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2862-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2863:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2864-	vcipher		$out0,$out0,v28
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2926-	mtlr		r11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2927:	li		r10,`$FRAME+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2928:	li		r11,`$FRAME+31`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2929-	stvx		$seven,r10,$sp		# wipe copies of round keys
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2968-	lvx		v31,r11,$sp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2969:	$POP		r26,`$FRAME+21*16+0*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2970:	$POP		r27,`$FRAME+21*16+1*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2971:	$POP		r28,`$FRAME+21*16+2*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2972:	$POP		r29,`$FRAME+21*16+3*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2973:	$POP		r30,`$FRAME+21*16+4*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2974:	$POP		r31,`$FRAME+21*16+5*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:2975:	addi		$sp,$sp,`$FRAME+21*16+6*$SIZE_T`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-2976-	blr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3030-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3031:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3032-	vcipher		$out0,$out0,v28
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3066-_aesp8_xts_decrypt6x:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3067:	$STU		$sp,-`($FRAME+21*16+6*$SIZE_T)`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3068-	mflr		r11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3069:	li		r7,`$FRAME+8*16+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3070:	li		r3,`$FRAME+8*16+31`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3071:	$PUSH		r11,`$FRAME+21*16+6*$SIZE_T+$LRSAVE`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3072-	stvx		v20,r7,$sp		# ABI says so
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3094-	li		r0,-1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3095:	stw		$vrsave,`$FRAME+21*16-4`($sp)	# save vrsave
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3096-	li		$x10,0x10
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3097:	$PUSH		r26,`$FRAME+21*16+0*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3098-	li		$x20,0x20
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3099:	$PUSH		r27,`$FRAME+21*16+1*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3100-	li		$x30,0x30
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3101:	$PUSH		r28,`$FRAME+21*16+2*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3102-	li		$x40,0x40
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3103:	$PUSH		r29,`$FRAME+21*16+3*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3104-	li		$x50,0x50
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3105:	$PUSH		r30,`$FRAME+21*16+4*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3106-	li		$x60,0x60
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3107:	$PUSH		r31,`$FRAME+21*16+5*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3108-	li		$x70,0x70
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3117-	?vperm		$rndkey0,$rndkey0,v30,$keyperm
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3118:	addi		$key_,$sp,`$FRAME+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3119-	mtctr		$rounds
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3138-	stvx		v25,$x10,$key_		# off-load round[4]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3139:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3140-	?vperm		v26,v26,v27,$keyperm
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3295-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3296:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3297-	 vxor		$tweak,$tweak,$tmp
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3516-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3517:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3518-	vncipher	$out0,$out0,v28
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3568-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3569:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3570-	vncipher	$out0,$out0,v28
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3614-	mtlr		r11
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3615:	li		r10,`$FRAME+15`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3616:	li		r11,`$FRAME+31`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3617-	stvx		$seven,r10,$sp		# wipe copies of round keys
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3656-	lvx		v31,r11,$sp
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3657:	$POP		r26,`$FRAME+21*16+0*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3658:	$POP		r27,`$FRAME+21*16+1*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3659:	$POP		r28,`$FRAME+21*16+2*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3660:	$POP		r29,`$FRAME+21*16+3*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3661:	$POP		r30,`$FRAME+21*16+4*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3662:	$POP		r31,`$FRAME+21*16+5*$SIZE_T`($sp)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3663:	addi		$sp,$sp,`$FRAME+21*16+6*$SIZE_T`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3664-	blr
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3718-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3719:	addi		$key_,$sp,`$FRAME+15`	# rewind $key_
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3720-	vncipher	$out0,$out0,v28
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3756-foreach(split("\n",$code)) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl:3757:        s/\`([^\`]*)\`/eval($1)/geo;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl-3758-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl-24-# instruction latencies and issue rates. On Cortex-A53, an in-order
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl:25:# execution core, this costs up to 10-15%, which is partially
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl-26-# compensated by implementing dedicated code path for 128-bit
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl-266-	mov	x0,$ptr			// return value
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl:267:	`"ldr	x29,[sp],#16"		if ($flavour =~ /64/)`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl-268-	ret
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl-928-    foreach(split("\n",$code)) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl:929:	s/\`([^\`]*)\`/eval($1)/geo;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl-930-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl-997-    foreach(split("\n",$code)) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl:998:	s/\`([^\`]*)\`/eval($1)/geo;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl-999-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl-1544-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl:1545:$code =~ s/\`([^\`]*)\`/eval($1)/gem;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl-1546-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c-48- *    For the reference. IA-32 assembler implementation performs
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c:49: *    very much like 64-bit code compiled with no-asm on the same
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c-50- *    machine.
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c-540-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c:541:#endif  // !NO_ASM && X86_64 && (__GNUC__ || __clang__)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1483-    while (29*$j<64*($i+1)) {	# load data till boundary
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1484:	$code.="	mov	`8*$j-128`($inp), @T[0]\n";
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1485-	$j++; $k++; push(@T,shift(@T));
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1488-    while ($k>1) {		# shift loaded data but last value
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1489:	$code.="	shl	\$`29*($j-$k)`,@T[-$k]\n";
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1490-	$k--;
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1493-	mov	@T[-1], @T[0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1494:	shl	\$`29*($j-1)`, @T[-1]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1495:	shr	\$`-29*($j-1)`, @T[0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1496-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1522-for ($j=0,$i=0; $i<16; $i++) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1523:    $code.="	mov	`8*($i+1)`($inp),@T[1]\n"	if ($i<15);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1524-    $code.="	xor	@T[1],@T[1]\n"			if ($i==15);
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1528-	mov	@T[0],@T[-$k]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1529:	shr	\$`29*$j`,@T[-$k]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1530-	and	%rax,@T[-$k]				# &0x1fffffff
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1531:	mov	@T[-$k],`8*$j-128`($out)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1532-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1535-    $code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1536:	shrd	\$`29*$j`,@T[1],@T[0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1537-	and	%rax,@T[0]
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1538:	mov	@T[0],`8*$j-128`($out)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1539-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1543-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1544:	mov	@T[0],`8*$j-128`($out)			# zero
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1545:	mov	@T[0],`8*($j+1)-128`($out)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1546:	mov	@T[0],`8*($j+2)-128`($out)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1547:	mov	@T[0],`8*($j+3)-128`($out)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1548-	ret
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1900-foreach (split("\n",$code)) {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl:1901:	s/\`([^\`]*)\`/eval($1)/ge;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl-1902-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-96-.Lmul_enter:
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:97:	movd	`($win64?56:8)`(%rsp),%xmm5	# load 7th argument
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-98-	push	%rbx
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-172-	pcmpeqd	%xmm5,%xmm1		# compare to 3,2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:173:	movdqa	%xmm0,`16*($k+0)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-174-	movdqa	%xmm4,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-177-	pcmpeqd	%xmm5,%xmm2		# compare to 5,4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:178:	movdqa	%xmm1,`16*($k+1)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-179-	movdqa	%xmm4,%xmm1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-182-	pcmpeqd	%xmm5,%xmm3		# compare to 7,6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:183:	movdqa	%xmm2,`16*($k+2)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-184-	movdqa	%xmm4,%xmm2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-187-	pcmpeqd	%xmm5,%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:188:	movdqa	%xmm3,`16*($k+3)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-189-	movdqa	%xmm4,%xmm3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-194-	pcmpeqd	%xmm5,%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:195:	movdqa	%xmm0,`16*($k+0)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-196-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-199-	pcmpeqd	%xmm5,%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:200:	movdqa	%xmm1,`16*($k+1)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-201-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-202-	pcmpeqd	%xmm5,%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:203:	movdqa	%xmm2,`16*($k+2)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:204:	pand	`16*($k+0)-128`($bp),%xmm0	# while it's still in register
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-205-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:206:	pand	`16*($k+1)-128`($bp),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:207:	pand	`16*($k+2)-128`($bp),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:208:	movdqa	%xmm3,`16*($k+3)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:209:	pand	`16*($k+3)-128`($bp),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-210-	por	%xmm2,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-214-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:215:	movdqa	`16*($k+0)-128`($bp),%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:216:	movdqa	`16*($k+1)-128`($bp),%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:217:	movdqa	`16*($k+2)-128`($bp),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:218:	pand	`16*($k+0)+112`(%r10),%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:219:	movdqa	`16*($k+3)-128`($bp),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:220:	pand	`16*($k+1)+112`(%r10),%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-221-	por	%xmm4,%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:222:	pand	`16*($k+2)+112`(%r10),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-223-	por	%xmm5,%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:224:	pand	`16*($k+3)+112`(%r10),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-225-	por	%xmm2,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-307-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:308:	movdqa	`16*($k+0)-128`($bp),%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:309:	movdqa	`16*($k+1)-128`($bp),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:310:	movdqa	`16*($k+2)-128`($bp),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:311:	movdqa	`16*($k+3)-128`($bp),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:312:	pand	`16*($k+0)-128`(%rdx),%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:313:	pand	`16*($k+1)-128`(%rdx),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-314-	por	%xmm0,%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:315:	pand	`16*($k+2)-128`(%rdx),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-316-	por	%xmm1,%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:317:	pand	`16*($k+3)-128`(%rdx),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-318-	por	%xmm2,%xmm4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-570-	shl	\$5,$num		# $num was in bytes
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:571:	movd	`($win64?56:8)`(%rax),%xmm5	# load 7th argument, index
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-572-	lea	.Linc(%rip),%rax
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-603-	pcmpeqd	%xmm5,%xmm1		# compare to 3,2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:604:	movdqa	%xmm0,`16*($i+0)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-605-	movdqa	%xmm4,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-608-	pcmpeqd	%xmm5,%xmm2		# compare to 5,4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:609:	movdqa	%xmm1,`16*($i+1)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-610-	movdqa	%xmm4,%xmm1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-613-	pcmpeqd	%xmm5,%xmm3		# compare to 7,6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:614:	movdqa	%xmm2,`16*($i+2)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-615-	movdqa	%xmm4,%xmm2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-618-	pcmpeqd	%xmm5,%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:619:	movdqa	%xmm3,`16*($i+3)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-620-	movdqa	%xmm4,%xmm3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-625-	pcmpeqd	%xmm5,%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:626:	movdqa	%xmm0,`16*($i+0)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-627-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-630-	pcmpeqd	%xmm5,%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:631:	movdqa	%xmm1,`16*($i+1)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-632-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-633-	pcmpeqd	%xmm5,%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:634:	movdqa	%xmm2,`16*($i+2)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:635:	pand	`16*($i+0)-128`($bp),%xmm0	# while it's still in register
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-636-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:637:	pand	`16*($i+1)-128`($bp),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:638:	pand	`16*($i+2)-128`($bp),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:639:	movdqa	%xmm3,`16*($i+3)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:640:	pand	`16*($i+3)-128`($bp),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-641-	por	%xmm2,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-645-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:646:	movdqa	`16*($i+0)-128`($bp),%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:647:	movdqa	`16*($i+1)-128`($bp),%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:648:	movdqa	`16*($i+2)-128`($bp),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:649:	pand	`16*($i+0)+112`(%r10),%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:650:	movdqa	`16*($i+3)-128`($bp),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:651:	pand	`16*($i+1)+112`(%r10),%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-652-	por	%xmm4,%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:653:	pand	`16*($i+2)+112`(%r10),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-654-	por	%xmm5,%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:655:	pand	`16*($i+3)+112`(%r10),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-656-	por	%xmm2,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-822-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:823:	movdqa	`16*($i+0)-128`($bp),%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:824:	movdqa	`16*($i+1)-128`($bp),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:825:	movdqa	`16*($i+2)-128`($bp),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:826:	movdqa	`16*($i+3)-128`($bp),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:827:	pand	`16*($i+0)-128`(%rdx),%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:828:	pand	`16*($i+1)-128`(%rdx),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-829-	por	%xmm0,%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:830:	pand	`16*($i+2)-128`(%rdx),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-831-	por	%xmm1,%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:832:	pand	`16*($i+3)-128`(%rdx),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-833-	por	%xmm2,%xmm4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2097-.cfi_startproc
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2098:	testl	\$7,`($win64?"48(%rsp)":"%r9d")`
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2099-	jz	bn_from_mont8x
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2406-	shr	\$5+5,$num
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2407:	movd	`($win64?56:8)`(%rax),%xmm5	# load 7th argument
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2408-	sub	\$1,$num
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2442-	pcmpeqd	%xmm5,%xmm1		# compare to 3,2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2443:	movdqa	%xmm0,`16*($i+0)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2444-	movdqa	%xmm4,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2447-	pcmpeqd	%xmm5,%xmm2		# compare to 5,4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2448:	movdqa	%xmm1,`16*($i+1)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2449-	movdqa	%xmm4,%xmm1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2452-	pcmpeqd	%xmm5,%xmm3		# compare to 7,6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2453:	movdqa	%xmm2,`16*($i+2)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2454-	movdqa	%xmm4,%xmm2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2457-	pcmpeqd	%xmm5,%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2458:	movdqa	%xmm3,`16*($i+3)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2459-	movdqa	%xmm4,%xmm3
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2465-	pcmpeqd	%xmm5,%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2466:	movdqa	%xmm0,`16*($i+0)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2467-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2469-	pcmpeqd	%xmm5,%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2470:	movdqa	%xmm1,`16*($i+1)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2471-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2472-	pcmpeqd	%xmm5,%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2473:	movdqa	%xmm2,`16*($i+2)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2474-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2475:	pand	`16*($i+0)-128`($bptr),%xmm0	# while it's still in register
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2476:	pand	`16*($i+1)-128`($bptr),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2477:	pand	`16*($i+2)-128`($bptr),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2478:	movdqa	%xmm3,`16*($i+3)+112`(%r10)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2479:	pand	`16*($i+3)-128`($bptr),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2480-	por	%xmm2,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2484-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2485:	movdqa	`16*($i+0)-128`($bptr),%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2486:	movdqa	`16*($i+1)-128`($bptr),%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2487:	movdqa	`16*($i+2)-128`($bptr),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2488:	pand	`16*($i+0)+112`(%r10),%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2489:	movdqa	`16*($i+3)-128`($bptr),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2490:	pand	`16*($i+1)+112`(%r10),%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2491-	por	%xmm4,%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2492:	pand	`16*($i+2)+112`(%r10),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2493-	por	%xmm5,%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2494:	pand	`16*($i+3)+112`(%r10),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2495-	por	%xmm2,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2604-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2605:	movdqa	`16*($i+0)-128`($bptr),%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2606:	movdqa	`16*($i+1)-128`($bptr),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2607:	movdqa	`16*($i+2)-128`($bptr),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2608:	pand	`16*($i+0)+256`(%r10),%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2609:	movdqa	`16*($i+3)-128`($bptr),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2610:	pand	`16*($i+1)+256`(%r10),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2611-	por	%xmm0,%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2612:	pand	`16*($i+2)+256`(%r10),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2613-	por	%xmm1,%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:2614:	pand	`16*($i+3)+256`(%r10),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-2615-	por	%xmm2,%xmm4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3669-$code.=<<___	if ($i);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3670:	movdqa	%xmm3,`16*($i-1)-128`(%rax)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3671-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3676-	pcmpeqd	%xmm5,%xmm1		# compare to 3,2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3677:	movdqa	%xmm0,`16*($i+0)-128`(%rax)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3678-	movdqa	%xmm4,%xmm0
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3681-	pcmpeqd	%xmm5,%xmm2		# compare to 5,4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3682:	movdqa	%xmm1,`16*($i+1)-128`(%rax)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3683-	movdqa	%xmm4,%xmm1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3686-	pcmpeqd	%xmm5,%xmm3		# compare to 7,6
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3687:	movdqa	%xmm2,`16*($i+2)-128`(%rax)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3688-	movdqa	%xmm4,%xmm2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3691-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3692:	movdqa	%xmm3,`16*($i-1)-128`(%rax)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3693-	jmp	.Lgather
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3701-$code.=<<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3702:	movdqa	`16*($i+0)-128`(%r11),%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3703:	movdqa	`16*($i+1)-128`(%r11),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3704:	movdqa	`16*($i+2)-128`(%r11),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3705:	pand	`16*($i+0)-128`(%rax),%xmm0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3706:	movdqa	`16*($i+3)-128`(%r11),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3707:	pand	`16*($i+1)-128`(%rax),%xmm1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3708-	por	%xmm0,%xmm4
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3709:	pand	`16*($i+2)-128`(%rax),%xmm2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3710-	por	%xmm1,%xmm5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3711:	pand	`16*($i+3)-128`(%rax),%xmm3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3712-	por	%xmm2,%xmm4
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3929-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl:3930:$code =~ s/\`([^\`]*)\`/eval($1)/gem;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl-3931-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h-395-                       const BN_ULONG *n0, int num);
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h:396:#endif  // !OPENSSL_NO_ASM && OPENSSL_X86_64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/internal.h-397-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h-97-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h:98:#endif  // !OPENSSL_NO_ASM && OPENSSL_X86_64
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/bn/rsaz_exp.h-99-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt-132-  if(OPENSSL_NO_ASM)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt:133:    # If OPENSSL_NO_ASM was defined then ASM will not have been enabled, but in
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt-134-    # FIPS mode we have to have it because the module build requires going via
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt-146-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt:147:  add_dependencies(bcm_c_generated_asm global_target)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt-148-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt:149:  set_target_properties(bcm_c_generated_asm PROPERTIES COMPILE_OPTIONS "-S")
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt:150:  set_target_properties(bcm_c_generated_asm PROPERTIES POSITION_INDEPENDENT_CODE ON)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt-151-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt-155-    COMMAND ./delocate -a $<TARGET_FILE:bcm_c_generated_asm> -o bcm-delocated.S ${BCM_ASM_SOURCES}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt:156:    DEPENDS bcm_c_generated_asm delocate ${BCM_ASM_SOURCES}
chromium-84.0.4147.105/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt-157-    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/CMakeLists.txt-57-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/CMakeLists.txt:58:    # On Windows, we use the NASM output, specifically built with Yasm.
chromium-84.0.4147.105/third_party/boringssl/src/crypto/CMakeLists.txt-59-    set(ASM_EXT asm)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/CMakeLists.txt-63-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/CMakeLists.txt:64:function(perlasm dest src)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/CMakeLists.txt-65-  get_filename_component(dir ${dest} DIRECTORY)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-220-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:221:    vpclmulqdq \$0x01, ${\eval(16*$i)}($Htbl), $DATA, $TMP3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-222-    vpxor $TMP3, $TMP2, $TMP2
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:223:    vpclmulqdq \$0x00, ${\eval(16*$i)}($Htbl), $DATA, $TMP3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-224-    vpxor $TMP3, $TMP0, $TMP0
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:225:    vpclmulqdq \$0x11, ${\eval(16*$i)}($Htbl), $DATA, $TMP3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-226-    vpxor $TMP3, $TMP1, $TMP1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:227:    vpclmulqdq \$0x10, ${\eval(16*$i)}($Htbl), $DATA, $TMP3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-228-    vpxor $TMP3, $TMP2, $TMP2
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-591-    vaesenc %xmm1, $BLOCK1, $BLOCK1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:592:    vmovdqa %xmm1, ${\eval(16*$i)}($j)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-593-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-602-    vaesenclast %xmm1, $BLOCK1, $BLOCK1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:603:    vmovdqa %xmm1, ${\eval(16*$i)}($j)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-604-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-661-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:662:    vmovdqa ${\eval($i*16)}(%rdx), $j
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-663-    vaesenc $j, $BLOCK1, $BLOCK1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-672-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:673:    vmovdqa ${\eval($i*16)}(%rdx), $j
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-674-    vaesenclast $j, $BLOCK1, $BLOCK1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-756-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:757:    vmovdqu ${\eval($i*16)}($KS), $TMP
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-758-    vaesenc $TMP, $STATE1, $STATE1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-767-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:768:    vmovdqu ${\eval($i*16)}($KS), $TMP
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-769-    vaesenclast $TMP, $STATE1, $STATE1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-943-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:944:    vmovdqu ${\eval($i*16)}($KS), $SCHED
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-945-    vaesenc $SCHED, $STATE1, $STATE1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-958-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:959:    vmovdqu ${\eval($i*16)}($KS), $SCHED
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-960-    vaesenclast $SCHED, $STATE1, $STATE1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1183-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1184:    vmovdqu ${\eval($i*16)}($KS), $TMP3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1185-    vaesenc $TMP3, $CTR1, $CTR1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1196-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1197:    vmovdqu ${\eval($i*16)}($KS), $TMP3
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1198-    vaesenclast $TMP3, $CTR1, $CTR1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1209-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1210:    vmovdqu ${\eval($i*16-32)}($secureBuffer), $TMP5
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1211:    vmovdqu ${\eval($i*16-32)}($Htbl), $HTABLE_ROUNDS
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1212-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1629-    vaesenc %xmm1, $BLOCK1, $BLOCK1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1630:    vmovdqu %xmm1, ${\eval(16*$i)}($KS)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1631-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1641-    vaesenc %xmm3, $BLOCK1, $BLOCK1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1642:    vmovdqu %xmm3, ${\eval(16*$j)}($KS)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1643-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1658-    vaesenclast %xmm1, $BLOCK1, $BLOCK1
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1659:    vmovdqu %xmm1, ${\eval(16*$i)}($KS)
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1660-___
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1763-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1764:    vmovdqu ${\eval($i*16)}($KS), $TMP
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1765-    vaesenc $TMP, $STATE1, $STATE1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1774-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1775:    vmovdqu ${\eval($i*16)}($KS), $TMP
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1776-    vaesenclast $TMP, $STATE1, $STATE1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1953-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1954:    vmovdqu ${\eval($i*16)}($KS), $SCHED
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1955-    vaesenc $SCHED, $STATE1, $STATE1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1968-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:1969:    vmovdqu ${\eval($i*16)}($KS), $SCHED
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-1970-    vaesenclast $SCHED, $STATE1, $STATE1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-2170-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:2171:    vmovdqa ${\eval($i*16)}(%rdx), $j
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-2172-    vaesenc $j, $BLOCK1, $BLOCK1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-2183-    return <<___;
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl:2184:    vmovdqa ${\eval($i*16)}(%rdx), $j
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl-2185-    vaesenclast $j, $BLOCK1, $BLOCK1
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c-526-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c:527:static const EVP_AEAD aead_aes_128_gcm_siv_asm = {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c-528-    16,                              // key length
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c-543-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c:544:static const EVP_AEAD aead_aes_256_gcm_siv_asm = {
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c-545-    32,                              // key length
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c-560-
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c:561:#endif  // X86_64 && !NO_ASM && !WINDOWS
chromium-84.0.4147.105/third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c-562-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go-134-// LocalAddr returns the local network address.
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go:135:func (c *Conn) LocalAddr() net.Addr {
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go:136:	return c.conn.LocalAddr()
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go-137-}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go-139-// RemoteAddr returns the remote network address.
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go:140:func (c *Conn) RemoteAddr() net.Addr {
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go:141:	return c.conn.RemoteAddr()
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go-142-}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go-1627-
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go:1628:	cacheKey := clientSessionCacheKey(c.conn.RemoteAddr(), c.config)
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/conn.go-1629-	_, ok := c.config.ClientSessionCache.Get(cacheKey)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/handshake_client.go-289-		// available.
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/handshake_client.go:290:		cacheKey = clientSessionCacheKey(c.conn.RemoteAddr(), c.config)
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/handshake_client.go-291-		// TODO(nharper): Support storing more than one session
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/runner.go-1238-
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/runner.go:1239:	flags := []string{"-port", strconv.Itoa(listener.Addr().(*net.TCPAddr).Port)}
chromium-84.0.4147.105/third_party/boringssl/src/ssl/test/runner/runner.go-1240-	if test.testType == serverTest {
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/make_prefix_headers.go-133-// symbols. The linker expects symbols to be prefixed with an underscore.
chromium-84.0.4147.105/third_party/boringssl/src/util/make_prefix_headers.go:134:// Perlasm thus generates symbol with this underscore applied. Our macros must,
chromium-84.0.4147.105/third_party/boringssl/src/util/make_prefix_headers.go-135-// in turn, incorporate it.
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/make_prefix_headers.go-159-
chromium-84.0.4147.105/third_party/boringssl/src/util/make_prefix_headers.go:160:	// NASM uses a different syntax from the C preprocessor.
chromium-84.0.4147.105/third_party/boringssl/src/util/make_prefix_headers.go-161-	if _, err := f.WriteString(`; Copyright (c) 2018, Google Inc.
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/BUILD.toplevel-95-
chromium-84.0.4147.105/third_party/boringssl/src/util/BUILD.toplevel:96:crypto_sources_asm = select({
chromium-84.0.4147.105/third_party/boringssl/src/util/BUILD.toplevel-97-    ":linux_ppc64le": crypto_sources_linux_ppc64le,
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/32-bit-toolchain.cmake-6-set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -m32 -msse2" CACHE STRING "c flags")
chromium-84.0.4147.105/third_party/boringssl/src/util/32-bit-toolchain.cmake:7:set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -m32 -msse2" CACHE STRING "asm flags")
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-26-# OS_ARCH_COMBOS maps from OS and platform to the OpenSSL assembly "style" for
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:27:# that platform and the extension used by asm files.
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-28-OS_ARCH_COMBOS = [
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-42-# NON_PERL_FILES enumerates assembly files that are not processed by the
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:43:# perlasm system.
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-44-NON_PERL_FILES = {
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-96-      non_bcm_c_files = [file for file in files['crypto'] if file not in bcm_c_files]
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:97:      non_bcm_asm = self.FilterBcmAsm(asm_outputs, False)
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:98:      bcm_asm = self.FilterBcmAsm(asm_outputs, True)
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-99-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-474-# builds.
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:475:if(NOT OPENSSL_NO_ASM AND CMAKE_OSX_ARCHITECTURES)
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-476-  list(LENGTH CMAKE_OSX_ARCHITECTURES NUM_ARCHES)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-723-      if not line.endswith(')'):
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:724:        raise ValueError('Bad perlasm line in %s' % cmakefile)
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-725-      # Remove "perlasm(" from start and ")" from end
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-727-      if len(params) < 2:
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:728:        raise ValueError('Bad perlasm line in %s' % cmakefile)
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-729-      perlasms.append({
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-750-def PerlAsm(output_filename, input_filename, perlasm_style, extra_args):
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:751:  """Runs the a perlasm script and puts the output into output_filename."""
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-752-  base_dir = os.path.dirname(output_filename)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-759-def ArchForAsmFilename(filename):
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:760:  """Returns the architectures that a given asm file should be compiled for
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-761-  based on substrings in the filename."""
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-775-  else:
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:776:    raise ValueError('Unknown arch for asm filename: ' + filename)
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-777-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-779-def WriteAsmFiles(perlasms):
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:780:  """Generates asm files from perlasm directives for each supported OS x
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-781-  platform combination."""
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-788-
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py:789:    for perlasm in perlasms:
chromium-84.0.4147.105/third_party/boringssl/src/util/generate_build_files.py-790-      filename = os.path.basename(perlasm['input'])
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/diff_asm.go-57-	flag.Usage = func() {
chromium-84.0.4147.105/third_party/boringssl/src/util/diff_asm.go:58:		fmt.Fprintf(os.Stderr, "Usage: diff_asm [flag...] [filter...]\n")
chromium-84.0.4147.105/third_party/boringssl/src/util/diff_asm.go-59-		fmt.Fprintf(os.Stderr, "Filter arguments limit to assembly files which match arguments.\n")
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/delocate/delocate.peg-20-
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/delocate/delocate.peg:21:type Asm Peg {}
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/delocate/delocate.peg-22-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/delocate/delocate.peg.go-213-
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/delocate/delocate.peg.go:214:type Asm struct {
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/delocate/delocate.peg.go-215-	Buffer string
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/delocate/delocate.go-1547-
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/delocate/delocate.go:1548:		asm := Asm{Buffer: contents, Pretty: true}
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/delocate/delocate.go-1549-		asm.Init()
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/acvp/ACVP.md-24-
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/acvp/ACVP.md:25:NIST's ACVP server provides special access tokens for each test session and test sessions can _only_ be accessed via those tokens. The reasoning behind this is unclear but this client can, optionally, keep records of these access tokens in the directory named by `SessionTokensCache`. If that directory name begins with `~/` then that prefix will be replaced with the value of `$HOME`.
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/acvp/ACVP.md-26-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/acvp/ACVP.md-129-
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/acvp/ACVP.md:130:More complex interaction remains to be fleshed out. However, it is generally possible to create new objects by evaluating, for example, `vendors.new()`. That will invoke `$EDITOR` to edit the JSON to be submitted. (For now, however, no helpful templates are provided.)
chromium-84.0.4147.105/third_party/boringssl/src/util/fipstools/acvp/ACVP.md-131-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/CMakeLists.txt-81-  add_definitions(-DBORINGSSL_PREFIX=${BORINGSSL_PREFIX})
chromium-84.0.4147.105/third_party/boringssl/src/CMakeLists.txt:82:  # CMake automatically connects include_directories to the NASM command-line,
chromium-84.0.4147.105/third_party/boringssl/src/CMakeLists.txt-83-  # but not add_definitions.
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/CMakeLists.txt-342-  # assembly output in the same static library breaks the linker.
chromium-84.0.4147.105/third_party/boringssl/src/CMakeLists.txt:343:  set(OPENSSL_NO_ASM "1")
chromium-84.0.4147.105/third_party/boringssl/src/CMakeLists.txt-344-endif()
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/CMakeLists.txt-452-# builds.
chromium-84.0.4147.105/third_party/boringssl/src/CMakeLists.txt:453:if(NOT OPENSSL_NO_ASM AND CMAKE_OSX_ARCHITECTURES)
chromium-84.0.4147.105/third_party/boringssl/src/CMakeLists.txt-454-  list(LENGTH CMAKE_OSX_ARCHITECTURES NUM_ARCHES)
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/m4/gtest.m4-58-   AS_IF([test "x${HAVE_GTEST}" = "xyes"],
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/m4/gtest.m4:59:     [GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/m4/gtest.m4:60:      GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/m4/gtest.m4:61:      GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/m4/gtest.m4:62:      GTEST_LIBS=`${GTEST_CONFIG} --libs`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/m4/gtest.m4:63:      GTEST_VERSION=`${GTEST_CONFIG} --version`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/m4/gtest.m4-64-      AC_DEFINE([HAVE_GTEST],[1],[Defined when Google Test is available.])],
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/src/gtest.cc-3181-  } else {
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/src/gtest.cc:3182:    printf(", where %s = %s\n", kTypeParamLabel, test_suite.type_param());
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/src/gtest.cc-3183-  }
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/src/gtest.cc-5520-            // the output easy to parse by a program.
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/src/gtest.cc:5521:            PrintOnOneLine(test_suite->type_param(), kMaxParamLength);
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/src/gtest.cc-5522-          }
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/src/gtest.cc-5529-          // output easy to parse by a program.
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/src/gtest.cc:5530:          PrintOnOneLine(test_info->value_param(), kMaxParamLength);
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/src/gtest.cc-5531-        }
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/README.md-10-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/README.md:11:Suppose you put Google Test in directory `${GTEST_DIR}`. To build it, create a
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/README.md-12-library build target (or a project as called by Visual Studio and Xcode) to
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/README.md-16-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/README.md:17:with `${GTEST_DIR}/include` in the system header search path and `${GTEST_DIR}`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/README.md-18-in the normal header search path. Assuming a Linux-like system and gcc,
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/README.md-26-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/README.md:27:Next, you should compile your test source file with `${GTEST_DIR}/include` in
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/README.md-28-the system header search path, and link it with gtest and any other necessary
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-48-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:49:The following Pump code (where meta keywords start with `$`, `[[` and `]]` are meta brackets, and `$$` starts a meta comment that ends with the line):
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-50-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-121-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:122:| `$var id = exp` | Defines a named constant value. `$id` is valid util the end of the current meta lexical block. |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-123-|:----------------|:-----------------------------------------------------------------------------------------------|
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:124:| `$range id exp..exp` | Sets the range of an iteration variable, which can be reused in multiple loops later.          |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:125:| `$for id sep [[ code ]]` | Iteration. The range of `id` must have been defined earlier. `$id` is valid in `code`.         |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:126:| `$($)`          | Generates a single `$` character.                                                              |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:127:| `$id`           | Value of the named constant or iteration variable.                                             |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:128:| `$(exp)`        | Value of the expression.                                                                       |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:129:| `$if exp [[ code ]] else_branch` | Conditional.                                                                                   |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-130-| `[[ code ]]`    | Meta lexical block.                                                                            |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-131-| `cpp_code`      | Raw C++ code.                                                                                  |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:132:| `$$ comment`    | Meta comment.                                                                                  |
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-133-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-134-**Note:** To give the user some freedom in formatting the Pump source
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:135:code, Pump ignores a new-line character if it's right after `$for foo`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-136-or next to `[[` or `]]`. Without this rule you'll often be forced to write
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-175-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md:176:  * If a meta variable is followed by a letter or digit, you can separate them using `[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper` generate `Foo1Helper` when `j` is 1.
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/docs/PumpManual.md-177-  * To avoid extra-long Pump source lines, you can break a line anywhere you want by inserting `[[]]` followed by a new line. Since any new-line character next to `[[` or `]]` is ignored, the generated code won't contain this new line.
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/scripts/gtest-config.in-205-bindir="@bindir@"
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/scripts/gtest-config.in:206:this_relative_bindir=`dirname $0`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/scripts/gtest-config.in:207:this_bindir=`cd ${this_relative_bindir}; pwd -P`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/scripts/gtest-config.in-208-if test "${this_bindir}" = "${this_bindir%${bindir}}"; then
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/scripts/gtest-config.in-210-  # assume that we are in a build tree.
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/scripts/gtest-config.in:211:  build_dir=`dirname ${this_bindir}`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/scripts/gtest-config.in:212:  src_dir=`cd ${this_bindir}; cd @top_srcdir@; pwd -P`
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/scripts/gtest-config.in-213-
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/test/googletest-param-test-test.cc-788-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/test/googletest-param-test-test.cc:789:  EXPECT_EQ(::testing::PrintToString(GetParam()), test_info->value_param());
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/test/googletest-param-test-test.cc-790-}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/test/googletest-param-test-test.cc-979-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/test/googletest-param-test-test.cc:980:  EXPECT_EQ(::testing::PrintToString(GetParam()), test_info->value_param());
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/test/googletest-param-test-test.cc-981-}
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/cmake/Config.cmake.in-7-
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/cmake/Config.cmake.in:8:include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")
chromium-84.0.4147.105/third_party/boringssl/src/third_party/googletest/cmake/Config.cmake.in-9-check_required_components("@project_name@")
##############################################
chromium-84.0.4147.105/third_party/boringssl/src/BUILDING.md-160-  * Versions of CMake since 3.0.2 have a bug in its Ninja generator that causes
chromium-84.0.4147.105/third_party/boringssl/src/BUILDING.md:161:    yasm to output warnings
chromium-84.0.4147.105/third_party/boringssl/src/BUILDING.md-162-
##############################################
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn-50-# Windows' assembly is built with NASM. The other platforms use the platform
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn:51:# assembler. Exclude Windows ARM64 because NASM targets x86 and x64 only.
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn-52-if (is_win && !is_msan && current_cpu != "arm64") {
##############################################
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn-115-
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn:116:  # Mark boringssl_asm as a public dependency so the OPENSSL_NO_ASM
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn-117-  # config is forwarded to callers. In particular, boringssl_crypto_tests
##############################################
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn-216-
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn:217:    # Mark boringssl_asm as a public dependency so the OPENSSL_NO_ASM
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn-218-    # config is forwarded to callers. In particular, boringssl_crypto_tests
##############################################
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn-280-
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn:281:    # Mark boringssl_asm as a public dependency so the OPENSSL_NO_ASM
chromium-84.0.4147.105/third_party/boringssl/BUILD.gn-282-    # config is forwarded to callers. In particular, boringssl_crypto_tests
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/chacha/chacha-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/test/trampoline-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha512-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/aesni-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha1-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/vpaes-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-ssse3-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/co-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/x86-mont.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/md5-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/sha256-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/bn-586.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm-11-%if __YASM_VERSION_ID__ < 01010000h
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm:12:%error yasm version 1.1.0 or later needed.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm-13-%endif
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm:14:; Yasm automatically includes .00 and complains about redefining it.
chromium-84.0.4147.105/third_party/boringssl/win-x86/crypto/fipsmodule/ghash-x86.asm-15-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/SampleBinary.php-28-    if (file_exists($file)) {
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/SampleBinary.php:29:      require($file);
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/SampleBinary.php-30-      break;
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/SampleBinary.php-66-
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/SampleBinary.php:67:  $builder->finish($orc); // You may also call `\MyGame\Sample\Monster::FinishMonsterBuffer($builder, $orc);`.
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/SampleBinary.php-68-
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/kotlin_sample.sh-44-
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/kotlin_sample.sh:45:all_kt_files=`find $sampledir -name "*.kt" -print`
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/kotlin_sample.sh-46-# Run test
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-13-while [ -h "$PRG" ] ; do
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:14:    ls=`ls -ld "$PRG"`
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:15:    link=`expr "$ls" : '.*-> \(.*\)$'`
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-16-    if expr "$link" : '/.*' > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-18-    else
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:19:        PRG=`dirname "$PRG"`"/$link"
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-20-    fi
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-22-SAVED="`pwd`"
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:23:cd "`dirname \"$PRG\"`/" >/dev/null
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-24-APP_HOME="`pwd -P`"
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-27-APP_NAME="Gradle"
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:28:APP_BASE_NAME=`basename "$0"`
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-29-
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-113-if $cygwin ; then
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:114:    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:115:    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:116:    JAVACMD=`cygpath --unix "$JAVACMD"`
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-117-
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-132-    for arg in "$@" ; do
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:133:        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:134:        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-135-
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-136-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:137:            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-138-        else
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew:139:            eval `echo args$i`="\"$arg\""
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android/gradlew-140-        fi
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android_sample.sh-20-
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android_sample.sh:21:sampledir=$(readlink -fn `dirname $0`)
chromium-84.0.4147.105/third_party/flatbuffers/src/samples/android_sample.sh-22-currentdir=$(readlink -fn `pwd`)
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-564-     * @param $off The offset to add to the buffer.
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php:565:     * @throws \Exception Throws an exception if `$off` is greater than the underlying ByteBuffer's
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-566-     * offest.
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-708-    /**
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php:709:     * Encode the string `$s` in the buffer using UTF-8.
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-710-     * @param string $s The string to encode.
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-711-     * @return int The offset in the buffer where the encoded string starts.
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php:712:     * @throws InvalidArgumentException Thrown if the input string `$s` is not
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-713-     *     UTF-8.
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-897-    /**
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php:898:     * Finalize a buffer, pointing to the given `$root_table`.
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-899-     * @param $root_table An offest to be added to the buffer.
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-900-     * @param $file_identifier A FlatBuffer file identifier to be added to the
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php:901:     *     buffer before `$root_table`. This defaults to `null`.
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php:902:     * @throws InvalidArgumentException Thrown if an invalid `$identifier` is
chromium-84.0.4147.105/third_party/flatbuffers/src/php/FlatbufferBuilder.php-903-     *     given, where its length is not equal to
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-13-while [ -h "$PRG" ] ; do
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:14:    ls=`ls -ld "$PRG"`
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:15:    link=`expr "$ls" : '.*-> \(.*\)$'`
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-16-    if expr "$link" : '/.*' > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-18-    else
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:19:        PRG=`dirname "$PRG"`"/$link"
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-20-    fi
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-22-SAVED="`pwd`"
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:23:cd "`dirname \"$PRG\"`/" >/dev/null
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-24-APP_HOME="`pwd -P`"
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-27-APP_NAME="Gradle"
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:28:APP_BASE_NAME=`basename "$0"`
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-29-
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-113-if $cygwin ; then
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:114:    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:115:    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:116:    JAVACMD=`cygpath --unix "$JAVACMD"`
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-117-
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-132-    for arg in "$@" ; do
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:133:        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:134:        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-135-
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-136-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:137:            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-138-        else
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew:139:            eval `echo args$i`="\"$arg\""
chromium-84.0.4147.105/third_party/flatbuffers/src/android/gradlew-140-        fi
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Tutorial.md-462-      if (file_exists($file)) {
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Tutorial.md:463:        require($file);
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Tutorial.md-464-        break;
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Tutorial.md-2112-      if (file_exists($file)) {
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Tutorial.md:2113:        require($file);
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Tutorial.md-2114-        break;
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/PHPUsage.md-63-      if (file_exists($file)) {
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/PHPUsage.md:64:        require($file);
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/PHPUsage.md-65-        break;
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt-5-// Note: You may need to ensure that copies of the files exist in the
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt:6:// `src/` subfolder at the path set by the `$GOROOT` environment variable.
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt:7:// You can either move the files to `$GOROOT/src/flatbuffers` manually, if
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt:8:// `$GOROOT` is already set, otherwise you will need to manually set the
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt:9:// `$GOROOT` variable to a path and create `src/flatbuffers` subfolders at that
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt:10:// path. Then copy these files into `$GOROOT/src/flatbuffers`. (Some versions of
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt-11-// `godoc` include a `-path` flag. This could be used instead, if available).
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt-12-//
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt:13:// Once the files exist at the `$GOROOT/src/flatbuffers` location, you can
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi_generated.txt-14-// regenerate this doc using the following command:
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Building.md-67-
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Building.md:68:Suppose you put FlatBuffers source code in directory `${FLATBUFFERS_SRC_DIR}`.
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Building.md-69-To build it as part of your project, add following code to your `CMakeLists.txt` file:
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Building.md-88-```
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Building.md:89:to `CMakeLists.txt` file before `add_subdirectory(${FLATBUFFERS_SRC_DIR})` line.
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/Building.md-90-
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md-11-     You may need to ensure that copies of the files exist in the `src/`
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md:12:     subfolder at the path set by the `$GOROOT` environment variable. You can
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md:13:     either move the files to `$GOROOT/src/flatbuffers` manually, if `$GOROOT`
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md:14:     is already set, otherwise you will need to manually set the `$GOROOT`
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md-15-     variable to a path and create `src/flatbuffers` subfolders at that path.
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md:16:     Then copy the flatbuffers files into `$GOROOT/src/flatbuffers`. (Some
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md-17-     versions of `godoc` include a `-path` flag. This could be used instead, if
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md-19-
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md:20:     Once the files exist at the `$GOROOT/src/flatbuffers` location, you can
chromium-84.0.4147.105/third_party/flatbuffers/src/docs/source/GoApi.md-21-     regenerate this doc using the following command:
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/CMake/FindFlatBuffers.cmake-60-
chromium-84.0.4147.105/third_party/flatbuffers/src/CMake/FindFlatBuffers.cmake:61:include("${FLATBUFFERS_CMAKE_DIR}/BuildFlatBuffers.cmake")
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/CMake/FlatbuffersConfig.cmake:1:include("${CMAKE_CURRENT_LIST_DIR}/FlatbuffersTargets.cmake" OPTIONAL)
chromium-84.0.4147.105/third_party/flatbuffers/src/CMake/FlatbuffersConfig.cmake:2:include("${CMAKE_CURRENT_LIST_DIR}/FlatcTargets.cmake" OPTIONAL)
chromium-84.0.4147.105/third_party/flatbuffers/src/CMake/FlatbuffersConfig.cmake:3:include("${CMAKE_CURRENT_LIST_DIR}/FlatbuffersSharedTargets.cmake" OPTIONAL)
chromium-84.0.4147.105/third_party/flatbuffers/src/CMake/FlatbuffersConfig.cmake-4-
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/conan/test_package/CMakeLists.txt-3-
chromium-84.0.4147.105/third_party/flatbuffers/src/conan/test_package/CMakeLists.txt:4:include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
chromium-84.0.4147.105/third_party/flatbuffers/src/conan/test_package/CMakeLists.txt-5-conan_basic_setup()
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/conan/CMakeLists.txt-4-
chromium-84.0.4147.105/third_party/flatbuffers/src/conan/CMakeLists.txt:5:include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
chromium-84.0.4147.105/third_party/flatbuffers/src/conan/CMakeLists.txt-6-conan_basic_setup()
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/conan/CMakeLists.txt-11-
chromium-84.0.4147.105/third_party/flatbuffers/src/conan/CMakeLists.txt:12:include(${CMAKE_SOURCE_DIR}/CMakeListsOriginal.txt)
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/CMakeLists.txt-323-function(compile_flatbuffers_schema_to_cpp_opt SRC_FBS OPT)
chromium-84.0.4147.105/third_party/flatbuffers/src/CMakeLists.txt:324:  message(STATUS "Add the code-generation command for the `${SRC_FBS}` schema.")
chromium-84.0.4147.105/third_party/flatbuffers/src/CMakeLists.txt-325-  get_filename_component(SRC_FBS_DIR ${SRC_FBS} PATH)
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/grpc/README.md-21-4. `mkdir build ; cd build`
chromium-84.0.4147.105/third_party/flatbuffers/src/grpc/README.md:22:5. `cmake -DFLATBUFFERS_BUILD_GRPCTEST=ON -DGRPC_INSTALL_PATH=${GRPC_INSTALL_PATH} -DPROTOBUF_DOWNLOAD_PATH=${PROTOBUF_DOWNLOAD_PATH} ..`
chromium-84.0.4147.105/third_party/flatbuffers/src/grpc/README.md-23-6. `make`
##############################################
chromium-84.0.4147.105/third_party/flatbuffers/src/grpc/README.md-28-
chromium-84.0.4147.105/third_party/flatbuffers/src/grpc/README.md:29:1. `ln -s ${GRPC_INSTALL_PATH}/lib/libgrpc++_unsecure.so.6 ${GRPC_INSTALL_PATH}/lib/libgrpc++_unsecure.so.1`
chromium-84.0.4147.105/third_party/flatbuffers/src/grpc/README.md:30:2. `export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${GRPC_INSTALL_PATH}/lib`
chromium-84.0.4147.105/third_party/flatbuffers/src/grpc/README.md-31-3. `make test ARGS=-V` 
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1283-		SCTP_INP_WUNLOCK(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1284:		stcb = sctp_findassociation_ep_addr(&inp, addr, NULL, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1285-		if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1322-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__Windows__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1323:sctp6_getaddr(struct socket *so, struct sockaddr **addr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1324-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1326-#elif defined(__Panda__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1327:sctp6_getaddr(struct socket *so, struct sockaddr *addr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1328-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1330-#else
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1331:sctp6_getaddr(struct socket *so, struct mbuf *nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1332-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1465-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__Windows__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1466:sctp6_peeraddr(struct socket *so, struct sockaddr **addr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1467-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1469-#elif defined(__Panda__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1470:sctp6_peeraddr(struct socket *so, struct sockaddr *addr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1471-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1473-#else
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1474:sctp6_peeraddr(struct socket *so, struct mbuf *nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1475-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1565-static int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1566:sctp6_in6getaddr(struct socket *so, struct sockaddr **nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1567-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1569-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1570:sctp6_in6getaddr(struct socket *so, struct sockaddr *nam, uint32_t *namelen)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1571-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1574-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1575:sctp6_in6getaddr(struct socket *so, struct mbuf *nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1576-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1581-static int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1582:sctp6_in6getaddr(struct socket *so, struct mbuf *nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1583-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1596-	/* allow v6 addresses precedence */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1597:	error = sctp6_getaddr(so, nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1598-#ifdef INET
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1606-		/* try v4 next if v6 failed */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1607:		error = sctp_ingetaddr(so, nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1608-		if (error) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1635-static int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1636:sctp6_getpeeraddr(struct socket *so, struct sockaddr **nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1637-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1639-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1640:sctp6_getpeeraddr(struct socket *so, struct sockaddr *nam, uint32_t *namelen)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1641-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1644-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1645:sctp6_getpeeraddr(struct socket *so, struct mbuf *nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1646-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1652-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1653:sctp6_getpeeraddr(struct socket *so, struct mbuf *nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1654-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1668-	/* allow v6 addresses precedence */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1669:	error = sctp6_peeraddr(so, nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1670-#ifdef INET
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1678-		/* try v4 next if v6 failed */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1679:		error = sctp_peeraddr(so, nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1680-		if (error) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1876-	case PRU_PEERADDR:
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1877:		error = sctp6_getpeeraddr(so, nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1878-		break;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1879-	case PRU_SOCKADDR:
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:1880:		error = sctp6_in6getaddr(so, nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c-1881-		break;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3018-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:3019:			/* We increment here since sctp_findassociation_ep_addr() wil
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3020-			 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3024-			SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:3025:			stcb = sctp_findassociation_ep_addr(&inp, addr, &net, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3026-			if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3235-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:3236:			/* We increment here since sctp_findassociation_ep_addr() wil
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3237-			 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3241-			SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:3242:			stcb = sctp_findassociation_ep_addr(&inp, addr, &net, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3243-			if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3954-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:3955:			/* We increment here since sctp_findassociation_ep_addr() wil
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3956-			 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3960-			SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:3961:			stcb = sctp_findassociation_ep_addr(&inp, addr, &net, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-3962-			if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-4078-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:4079:			/* We increment here since sctp_findassociation_ep_addr() wil
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-4080-			 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-4084-			SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:4085:			stcb = sctp_findassociation_ep_addr(&inp, addr, &net, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-4086-			if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-5777-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:5778:			/* We increment here since sctp_findassociation_ep_addr() wil
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-5779-			 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-5782-			SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:5783:			stcb = sctp_findassociation_ep_addr(&inp, sa, NULL, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-5784-			if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6139-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:6140:			/* We increment here since sctp_findassociation_ep_addr() wil
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6141-			 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6145-			SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:6146:			stcb = sctp_findassociation_ep_addr(&inp, addr,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6147-			                                    &net, NULL, NULL);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6680-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:6681:			/* We increment here since sctp_findassociation_ep_addr() wil
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6682-			 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6686-			SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:6687:			stcb = sctp_findassociation_ep_addr(&inp, addr,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6688-			                                    &net, NULL, NULL);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6697-					/* Ok we need to set it */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:6698:					if (sctp_set_primary_addr(stcb, (struct sockaddr *)NULL, net) == 0) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6699-						if ((stcb->asoc.alternate) &&
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6701-						    (net->dest_state & SCTP_ADDR_REACHABLE)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:6702:							sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6703-							stcb->asoc.alternate = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6803-#endif
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:6804:			ifa = sctp_find_ifa_by_addr(addr, stcb->asoc.vrf_id, SCTP_ADDR_NOT_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-6805-			if (ifa == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-7289-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:7290:			/* We increment here since sctp_findassociation_ep_addr() wil
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-7291-			 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-7295-			SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:7296:			stcb = sctp_findassociation_ep_addr(&inp, addr,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-7297-			                                    &net, NULL, NULL);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-7471-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:7472:			/* We increment here since sctp_findassociation_ep_addr() wil
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-7473-			 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-7477-			SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:7478:			stcb = sctp_findassociation_ep_addr(&inp, addr, &net, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-7479-			if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8066-	} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8067:		/* We increment here since sctp_findassociation_ep_addr() will
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8068-		 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8071-		SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8072:		stcb = sctp_findassociation_ep_addr(&inp, addr, NULL, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8073-		if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8231-	} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8232:		/* We increment here since sctp_findassociation_ep_addr() will
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8233-		 * do a decrement if it finds the stcb as long as the locked
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8236-		SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8237:		stcb = sctp_findassociation_ep_addr(&inp, addr, NULL, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8238-		if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8709-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__Windows__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8710:sctp_ingetaddr(struct socket *so, struct sockaddr **addr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8711-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8713-#elif defined(__Panda__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8714:sctp_ingetaddr(struct socket *so, struct sockaddr *addr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8715-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8717-#else
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8718:sctp_ingetaddr(struct socket *so, struct mbuf *nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8719-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8832-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__Windows__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8833:sctp_peeraddr(struct socket *so, struct sockaddr **addr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8834-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8836-#elif defined(__Panda__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8837:sctp_peeraddr(struct socket *so, struct sockaddr *addr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8838-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8840-#else
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:8841:sctp_peeraddr(struct socket *so, struct mbuf *nam)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-8842-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-9097-	case PRU_PEERADDR:
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:9098:		error = sctp_peeraddr(so, nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-9099-		break;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-9100-	case PRU_SOCKADDR:
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:9101:		error = sctp_ingetaddr(so, nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c-9102-		break;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h-80-struct sctp_ifa *
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h:81:sctp_find_ifa_by_addr(struct sockaddr *addr, uint32_t vrf_id, int holds_lock);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h-82-
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h-272-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h:273:int sctp_cmpaddr(struct sockaddr *, struct sockaddr *);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h-274-
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-390-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:391:	sctp_ifap = sctp_find_ifa_by_addr(addr, vrf->vrf_id, SCTP_ADDR_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-392-	if (sctp_ifap == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-434-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:435:	sctp_ifap = sctp_find_ifa_by_addr(addr, vrf->vrf_id, SCTP_ADDR_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-436-	if (sctp_ifap == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-570-	SCTPDBG(SCTP_DEBUG_PCB4, "vrf_id 0x%x: adding address: ", vrf_id);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:571:	SCTPDBG_ADDR(SCTP_DEBUG_PCB4, addr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-572-#endif
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-620-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:621:	sctp_ifap = sctp_find_ifa_by_addr(addr, vrf->vrf_id, SCTP_ADDR_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-622-	if (sctp_ifap) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-831-	SCTPDBG(SCTP_DEBUG_PCB4, "vrf_id 0x%x: deleting address:", vrf_id);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:832:	SCTPDBG_ADDR(SCTP_DEBUG_PCB4, addr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-833-#endif
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:834:	sctp_ifap = sctp_find_ifa_by_addr(addr, vrf->vrf_id, SCTP_ADDR_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-835-	if (sctp_ifap) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-881-			ifn_index);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:882:		SCTPDBG_ADDR(SCTP_DEBUG_PCB1, addr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-883-	}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-924-static int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:925:sctp_does_stcb_own_this_addr(struct sctp_tcb *stcb, struct sockaddr *to)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-926-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1202-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:1203:	ephead = &SCTP_BASE_INFO(sctp_tcpephash)[SCTP_PCBHASH_ALLADDR((lport | rport), SCTP_BASE_INFO(hashtcpmark))];
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1204-	/*
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1351-		SCTP_TCB_LOCK(stcb);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:1352:		if (!sctp_does_stcb_own_this_addr(stcb, to)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1353-			SCTP_TCB_UNLOCK(stcb);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1367-		}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:1368:		if (!sctp_does_stcb_own_this_addr(stcb, to)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1369-			SCTP_TCB_UNLOCK(stcb);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1464-struct sctp_tcb *
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:1465:sctp_findassociation_ep_addr(struct sctp_inpcb **inp_p, struct sockaddr *remote,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1466-    struct sctp_nets **netp, struct sockaddr *local, struct sctp_tcb *locked_tcb)
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1572-			}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:1573:			if (local && !sctp_does_stcb_own_this_addr(stcb, local)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1574-				SCTP_TCB_UNLOCK(stcb);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1686-		}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:1687:		head = &inp->sctp_tcbhash[SCTP_PCBHASH_ALLADDR(rport,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1688-		                                               inp->sctp_hashmark)];
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1698-			}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:1699:			if (local && !sctp_does_stcb_own_this_addr(stcb, local)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-1700-				SCTP_TCB_UNLOCK(stcb);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2143-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2144:	head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2145-	    SCTP_BASE_INFO(hashmark))];
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2210-	SCTP_INP_INFO_WLOCK();
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2211:	head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(inp->sctp_lport,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2212-	                                    SCTP_BASE_INFO(hashmark))];
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2228-		LIST_REMOVE(tinp, sctp_hash);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2229:		head = &SCTP_BASE_INFO(sctp_tcpephash)[SCTP_PCBHASH_ALLADDR(tinp->sctp_lport, SCTP_BASE_INFO(hashtcpmark))];
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2230-		tinp->sctp_flags |= SCTP_PCB_FLAGS_IN_TCPPOOL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2237-	inp->sctp_flags &= ~SCTP_PCB_FLAGS_IN_TCPPOOL;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2238:	head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(inp->sctp_lport, SCTP_BASE_INFO(hashmark))];
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2239-	LIST_INSERT_HEAD(head, inp, sctp_hash);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2299-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2300:	head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2301-	    SCTP_BASE_INFO(hashmark))];
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2374-	if (inp_p != NULL) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2375:		stcb = sctp_findassociation_ep_addr(inp_p, from, netp, to,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2376-		                                    NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2377-	} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2378:		stcb = sctp_findassociation_ep_addr(&inp, from, netp, to,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2379-		                                    NULL);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2390-static struct sctp_tcb *
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2391:sctp_findassociation_special_addr(struct mbuf *m, int offset,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2392-    struct sctphdr *sh, struct sctp_inpcb **inp_p, struct sctp_nets **netp,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2450-			/* look it up */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2451:			stcb = sctp_findassociation_ep_addr(inp_p,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2452-			    (struct sockaddr *)&sin4, netp, dst, NULL);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2471-			/* look it up */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2472:			stcb = sctp_findassociation_ep_addr(inp_p,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2473-			    (struct sockaddr *)&sin6, netp, dst, NULL);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2544-			/* RRS:Need toaddr check here */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2545:			if (sctp_does_stcb_own_this_addr(stcb, to) == 0) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2546-			        /* Endpoint does not own this address */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2598-struct sctp_tcb *
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2599:sctp_findassociation_addr(struct mbuf *m, int offset,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2600-    struct sockaddr *src, struct sockaddr *dst,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2642-			}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2643:			stcb = sctp_findassociation_special_addr(m,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2644-			    offset, sh, &inp, netp, dst);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2755-	} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:2756:		stcb = sctp_findassociation_ep_addr(inp_p,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-2757-		    &remote_store.sa, netp,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3124-	/* Now insert the new_inp into the TCP connected hash */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:3125:	head = &SCTP_BASE_INFO(sctp_tcpephash)[SCTP_PCBHASH_ALLADDR((lport | rport), SCTP_BASE_INFO(hashtcpmark))];
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3126-
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3207-static int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:3208:sctp_insert_laddr(struct sctpladdr *list, struct sctp_ifa *ifa, uint32_t act)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3209-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3233-static void
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:3234:sctp_remove_laddr(struct sctp_laddr *laddr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3235-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3291-		SCTPDBG(SCTP_DEBUG_PCB1, "Addr: ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:3292:		SCTPDBG_ADDR(SCTP_DEBUG_PCB1, addr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3293-	}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3401-#ifndef SCOPEDROUTING
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:3402:			/* this must be cleared for ifa_ifwithaddr() */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3403-			sin6->sin6_scope_id = 0;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3743-			 */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:3744:			ifa = sctp_find_ifa_by_addr(&store.sa,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3745-						    vrf_id, SCTP_ADDR_NOT_LOCKED);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3773-		/* add this address to the endpoint list */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:3774:		error = sctp_insert_laddr(&inp->sctp_addr_list, ifa, 0);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3775-		if (error != 0) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3784-		/* Put it into tcp 1-2-1 hash */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:3785:		head = &SCTP_BASE_INFO(sctp_tcpephash)[SCTP_PCBHASH_ALLADDR(lport, SCTP_BASE_INFO(hashtcpmark))];
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3786-		inp->sctp_flags |= SCTP_PCB_FLAGS_IN_TCPPOOL;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3787-	} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:3788:		head = &SCTP_BASE_INFO(sctp_ephash)[SCTP_PCBHASH_ALLADDR(lport, SCTP_BASE_INFO(hashmark))];
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-3789-	}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4210-		TAILQ_REMOVE(&inp->read_queue, sq, next);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:4211:		sctp_free_remote_addr(sq->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4212-		if (so)
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4298-	LIST_FOREACH_SAFE(laddr, &inp->sctp_addr_list, sctp_nxt_addr, nladdr) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:4299:		sctp_remove_laddr(laddr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4300-	}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4341-	TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:4342:		if (sctp_cmpaddr(addr, (struct sockaddr *)&net->ro._l_addr))
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4343-			return (net);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4355-	struct sctp_ifa *sctp_ifa;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:4356:	sctp_ifa = sctp_find_ifa_by_addr(addr, vrf_id, SCTP_ADDR_NOT_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4357-	if (sctp_ifa) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4370-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:4371:sctp_add_remote_addr(struct sctp_tcb *stcb, struct sockaddr *newaddr,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4372-    struct sctp_nets **netp, uint16_t port, int set_scope, int from)
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4383-		from);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:4384:	SCTPDBG_ADDR(SCTP_DEBUG_PCB1, newaddr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4385-
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4859-		/* first one on the list is NOT the primary
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:4860:		 * sctp_cmpaddr() is much more efficient if
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4861-		 * the primary is the first on the list, make it
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4934-	 * Assumption made here: Caller has done a
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:4935:	 * sctp_findassociation_ep_addr(ep, addr's); to make sure the
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4936-	 * address does not exist already.
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4976-	if (firstaddr) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:4977:		SCTPDBG_ADDR(SCTP_DEBUG_PCB3, firstaddr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-4978-		switch (firstaddr->sa_family) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5139-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5140:	if ((err = sctp_add_remote_addr(stcb, firstaddr, NULL, port, SCTP_DO_SETSCOPE, SCTP_ALLOC_ASOC))) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5141-		/* failure.. memory error? */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5176-	if (inp->sctp_tcbhash != NULL) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5177:		head = &inp->sctp_tcbhash[SCTP_PCBHASH_ALLADDR(stcb->rport,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5178-		    inp->sctp_hashmark)];
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5238-	if (net == stcb->asoc.alternate) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5239:		sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5240-		stcb->asoc.alternate = NULL;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5241-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5242:	sctp_free_remote_addr(net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5243-}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5249-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5250:sctp_del_remote_addr(struct sctp_tcb *stcb, struct sockaddr *remaddr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5251-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5268-		}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5269:		if (sctp_cmpaddr((struct sockaddr *)&net->ro._l_addr,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5270-		    remaddr)) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5418-		if (control->on_read_q == 0) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5419:			sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5420-			if (control->data) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5433-				sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5434:			sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5435-			SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5493-	if (stcb->asoc.alternate) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5494:		sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5495-		stcb->asoc.alternate = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5778-			if (sp->net) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5779:				sctp_free_remote_addr(sp->net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5780-				sp->net = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5796-		}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5797:		sctp_free_remote_addr(sq->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5798-		sq->whoFrom = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5841-		if (chk->whoTo) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5842:			sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5843-			chk->whoTo = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5873-			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5874:		sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5875-		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5894-			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5895:		sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5896-		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5908-			sctp_auth_key_release(stcb, chk->auth_keyid, SCTP_SO_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5909:		sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5910-		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_chunk), chk);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5943-		TAILQ_REMOVE(&asoc->nets, net, sctp_next);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5944:		sctp_free_remote_addr(net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5945-	}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5947-		/*sa_ignore FREED_MEMORY*/
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:5948:		sctp_remove_laddr(laddr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-5949-	}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-6203-		/* Not in the ep list */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:6204:		error = sctp_insert_laddr(&inp->sctp_addr_list, ifa, action);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-6205-		if (error != 0)
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-6334-		/* remove it from the ep list */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:6335:		sctp_remove_laddr(laddr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-6336-		inp->laddr_count--;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-6375-	/* add to the list */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:6376:	(void)sctp_insert_laddr(list, ifa, 0);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-6377-	return;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-6412-		if (laddr->ifa == ifa) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:6413:			sctp_remove_laddr(laddr);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-6414-			return;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7183-	atomic_add_int(&stcb->asoc.refcnt, 1);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7184:	stcb_tmp = sctp_findassociation_ep_addr(&inp, sa, &net_tmp, dst, stcb);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7185-	atomic_add_int(&stcb->asoc.refcnt, -1);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7193-			if (stcb->asoc.scope.ipv4_addr_legal) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7194:				if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_2)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7195-					return (-1);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7202-			if (stcb->asoc.scope.ipv6_addr_legal) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7203:				if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_3)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7204-					return (-2);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7211-			if (stcb->asoc.scope.conn_addr_legal) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7212:				if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_3)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7213-					return (-2);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7275-				atomic_add_int(&stcb->asoc.refcnt, 1);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7276:				stcb_tmp = sctp_findassociation_ep_addr(&inp, sa, &net,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7277-									dst, stcb);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7296-					}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7297:					if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_4)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7298-						return (-8);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7368-				atomic_add_int(&stcb->asoc.refcnt, 1);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7369:				stcb_tmp = sctp_findassociation_ep_addr(&inp, sa, &net,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7370-									dst, stcb);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7386-					 */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7387:					if (sctp_add_remote_addr(stcb, sa, NULL, port, SCTP_DONOT_SETSCOPE, SCTP_LOAD_ADDR_5)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7388-						return (-17);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7507-			if (lsa) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7508:				(void)sctp_set_primary_addr(stcb, sa, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7509-			}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7684-			TAILQ_REMOVE(&stcb->asoc.nets, net, sctp_next);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7685:			sctp_free_remote_addr(net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7686-			if (net == stcb->asoc.primary_destination) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7778-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7779:sctp_set_primary_addr(struct sctp_tcb *stcb, struct sockaddr *sa,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7780-		      struct sctp_nets *net)
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7797-		if (!(net->dest_state & SCTP_ADDR_PF) && (stcb->asoc.alternate)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7798:			sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7799-			stcb->asoc.alternate = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7803-			/* first one on the list is NOT the primary
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7804:			 * sctp_cmpaddr() is much more efficient if
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7805-			 * the primary is the first on the list, make it
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7946-				}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:7947:				sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-7948-				/* Now its reasm? */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-8006-				}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:8007:				sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c-8008-				/* Now its reasm? */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-489-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:490:	sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-491-	if (control->data) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-648-			} else if (SCTP_MID_EQ(asoc->idata_supported, nxt_todel, control->mid)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:649:				*need_reasm = 1;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-650-			}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-1176-		 * the pd_api flag was taken off when the
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:1177:		 * chunk was merged on in sctp_queue_data_for_reasm below.
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-1178-		 */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-2272-	SCTPDBG(SCTP_DEBUG_XXX,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:2273:		"Queue data to stream for reasm control: %p MID: %u\n",
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-2274-		control, mid);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-2278-		 * the assoc is now gone and chk was put onto the
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:2279:		 * reasm queue, which has all been freed.
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-2280-		 */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-3740-				/* yes, there is an alternate. */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:3741:				sctp_free_remote_addr(tp1->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-3742-				/*sa_ignore FREED_MEMORY*/
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-4221-						/* release the alternate, primary is good */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:4222:						sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-4223-						stcb->asoc.alternate = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-5000-						/* release the alternate, primary is good */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:5001:						sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-5002-						stcb->asoc.alternate = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-5466-	/*
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:5467:	 * For now large messages held on the stream reasm that are
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-5468-	 * complete will be tossed too. We could in theory do more
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-5547-	if (control->on_read_q == 0) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:5548:		sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c-5549-		if (control->data) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-60-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:61:#define SCTP_PCBHASH_ALLADDR(port, mask) (port & mask)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-62-#define SCTP_PCBHASH_ASOC(tag, mask) (tag & mask)
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-116-	uint32_t localifa_flags;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:117:	uint32_t vrf_id;	/* vrf_id of this addr (for deleting) */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-118-	uint8_t src_is_loop;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-767-struct sctp_tcb *
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:768:sctp_findassociation_addr(struct mbuf *, int,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-769-    struct sockaddr *, struct sockaddr *,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-787-struct sctp_tcb *
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:788:sctp_findassociation_ep_addr(struct sctp_inpcb **,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-789-    struct sockaddr *, struct sctp_nets **, struct sockaddr *,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-842-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:843:int sctp_add_remote_addr(struct sctp_tcb *, struct sockaddr *, struct sctp_nets **, uint16_t, int, int);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-844-
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-846-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:847:int sctp_del_remote_addr(struct sctp_tcb *, struct sockaddr *);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-848-
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-864-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:865:sctp_set_primary_addr(struct sctp_tcb *, struct sockaddr *,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h-866-    struct sctp_nets *);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-692-			if (alt != net) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:693:				sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-694-				chk->no_fr_allowed = 1;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-748-		    (chk->rec.chunk_id.id == SCTP_ECN_ECHO)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:749:			sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-750-			chk->whoTo = alt;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-959-			if (stcb->asoc.alternate) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:960:				sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-961-			}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1091-	if (alt != cookie->whoTo) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:1092:		sctp_free_remote_addr(cookie->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1093-		cookie->whoTo = alt;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1136-	alt = sctp_find_alternate_net(stcb, strrst->whoTo, 0);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:1137:	sctp_free_remote_addr(strrst->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1138-	strrst->whoTo = alt;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1144-		    (chk->rec.chunk_id.id == SCTP_ECN_ECHO)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:1145:			sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1146-			if (chk->sent != SCTP_DATAGRAM_RESEND) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1217-		if (asconf->whoTo != alt) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:1218:			sctp_free_remote_addr(asconf->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1219-			asconf->whoTo = alt;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1226-			    (chk->rec.chunk_id.id == SCTP_ECN_ECHO)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:1227:				sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1228-				chk->whoTo = alt;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1238-			if (chk->whoTo != alt) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:1239:				sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1240-				chk->whoTo = alt;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1277-	SCTPDBG(SCTP_DEBUG_ASCONF1, "delete_prim_timer: finished to keep deleted primary ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:1278:	SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, &stcb->asoc.deleted_primary->ro._l_addr.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:1279:	sctp_free_remote_addr(stcb->asoc.deleted_primary);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c-1280-	stcb->asoc.deleted_primary = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-289-				if (sp->net) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:290:					sctp_free_remote_addr(sp->net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-291-					sp->net = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-385-					if (sp->net) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:386:						sctp_free_remote_addr(sp->net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-387-						sp->net = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-706-				/* first one on the list is NOT the primary
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:707:				 * sctp_cmpaddr() is much more efficient if
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-708-				 * the primary is the first on the list, make it
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-754-			/* release the alternate, primary is good */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:755:			sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-756-			stcb->asoc.alternate = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-2836-		/* Yep, lets check */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:2837:		*stcb = sctp_findassociation_ep_addr(inp_p, to, netp, dst, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-2838-		if (*stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-2915-		/* TSNH! Huh, why do I need to add this address here? */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:2916:		if (sctp_add_remote_addr(*stcb, to, NULL, port,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-2917-		                         SCTP_DONOT_SETSCOPE, SCTP_IN_COOKIE_PROC)) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-2924-			netl->dest_state &= ~SCTP_ADDR_UNCONFIRMED;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:2925:			(void)sctp_set_primary_addr((*stcb), (struct sockaddr *)NULL,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-2926-			    netl);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-5759-			        calc_check, check, (void *)m, length, iphlen);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:5760:			stcb = sctp_findassociation_addr(m, offset, src, dst,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-5761-			                                 sh, ch, &inp, &net, vrf_id);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-5801-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:5802:	stcb = sctp_findassociation_addr(m, offset, src, dst,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c-5803-	                                 sh, ch, &inp, &net, vrf_id);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os_userspace.h-623-}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os_userspace.h:624:#define SCTPDBG_ADDR(level, addr)				\
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os_userspace.h-625-{								\
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os_userspace.h-633-#define SCTPDBG(level, ...)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os_userspace.h:634:#define SCTPDBG_ADDR(level, addr)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os_userspace.h-635-#endif
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-2326-	SCTPDBG(SCTP_DEBUG_OUTPUT2, "Is destination preferred:");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:2327:	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, &ifa->address.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-2328-	/* Ok the address may be ok */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-2424-	/* Ok the address may be ok */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:2425:	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT3, &ifa->address.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-2426-	SCTPDBG(SCTP_DEBUG_OUTPUT3, "dst_is_loop:%d dest_is_priv:%d\n",
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3182-			SCTPDBG(SCTP_DEBUG_OUTPUT2, "Source:");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:3183:			SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, &sifa->address.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3184-			SCTPDBG(SCTP_DEBUG_OUTPUT2, "Dest:");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:3185:			SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, &net->ro._l_addr.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3186-		}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3535-	SCTPDBG(SCTP_DEBUG_OUTPUT2, "Select source addr for:");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:3536:	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, (struct sockaddr *)&ro->ro_dst);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3537-	SCTP_IPI_ADDR_RLOCK();
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3787-				}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:3788:				if (sctp_add_remote_addr(stcb, (struct sockaddr *)&sin, NULL, stcb->asoc.port,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3789-				                         SCTP_DONOT_SETSCOPE, SCTP_ADDR_IS_CONFIRMED)) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3821-					}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:3822:					if (sctp_add_remote_addr(stcb, (struct sockaddr *)&sin, NULL, stcb->asoc.port,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3823-					                         SCTP_DONOT_SETSCOPE, SCTP_ADDR_IS_CONFIRMED)) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3828-#endif
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:3829:					if (sctp_add_remote_addr(stcb, (struct sockaddr *)&sin6, NULL, stcb->asoc.port,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3830-					                         SCTP_DONOT_SETSCOPE, SCTP_ADDR_IS_CONFIRMED)) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3932-			if (addr) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:3933:				stcb = sctp_findassociation_ep_addr(inp_p, addr, net_p, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-3934-				if (stcb != NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-4054-		SCTPDBG(SCTP_DEBUG_OUTPUT1, "Destination was ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:4055:		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT1, &net->ro._l_addr.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-4056-		if (net->dest_state & SCTP_ADDR_CONFIRMED) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-4074-					if (stcb->asoc.alternate) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:4075:						sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-4076-					}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-4850-		SCTPDBG(SCTP_DEBUG_OUTPUT3, "src: ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:4851:		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT3, (struct sockaddr *)lsa6);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-4852-		SCTPDBG(SCTP_DEBUG_OUTPUT3, "dst: ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:4853:		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT3, (struct sockaddr *)sin6);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-4854-		if (net) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-5096-		net->dest_state &= ~SCTP_ADDR_UNCONFIRMED;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:5097:		(void)sctp_set_primary_addr(stcb, NULL, net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-5098-	} else {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-7775-			if (sp->net) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:7776:				sctp_free_remote_addr(sp->net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-7777-				sp->net = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-8203-		if (sp->net) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:8204:			sctp_free_remote_addr(sp->net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-8205-			sp->net = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-8330-			if (sp->net == net) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:8331:				sctp_free_remote_addr(sp->net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-8332-				sp->net = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-8337-		if (chk->whoTo == net) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:8338:			sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-8339-			chk->whoTo = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-9774-			if (chk->whoTo) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:9775:				sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-9776-				chk->whoTo = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-10885-			if (chk->whoTo) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:10886:				sctp_free_remote_addr(chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-10887-				chk->whoTo = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-11138-			if (a_chk->whoTo) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:11139:				sctp_free_remote_addr(a_chk->whoTo);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-11140-				a_chk->whoTo = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-13758-		SCTP_INP_WUNLOCK(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:13759:		stcb = sctp_findassociation_ep_addr(&t_inp, addr, &net, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-13760-		if (stcb == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-13789-		/* With the lock applied look again */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:13790:		stcb = sctp_findassociation_ep_addr(&t_inp, addr, &net, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-13791-#if defined(INET) || defined(INET6)
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-14999-		SCTPDBG(SCTP_DEBUG_OUTPUT2, "No prefix entry for ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:15000:		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, (struct sockaddr *)src6);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15001-		return (0);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15004-	SCTPDBG(SCTP_DEBUG_OUTPUT2, "v6src_match_nexthop(), Prefix entry is ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:15005:	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, (struct sockaddr *)src6);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15006-
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15016-		SCTPDBG(SCTP_DEBUG_OUTPUT2, "prefix router is ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:15017:		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, (struct sockaddr *)&gw6);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15018-		SCTPDBG(SCTP_DEBUG_OUTPUT2, "installed router is ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:15019:		SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, ro->ro_rt->rt_gateway);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:15020:		if (sctp_cmpaddr((struct sockaddr *)&gw6, ro->ro_rt->rt_gateway)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15021-#if defined(__FreeBSD__)
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15052-	SCTPDBG(SCTP_DEBUG_OUTPUT1, "match_nexthop4: src address is ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:15053:	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, &sifa->address.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15054-	SCTPDBG(SCTP_DEBUG_OUTPUT1, "network address is %x\n", srcnetaddr.s_addr);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15058-	SCTPDBG(SCTP_DEBUG_OUTPUT1, "match_nexthop4: nexthop is ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:15059:	SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, ro->ro_rt->rt_gateway);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c-15060-	SCTPDBG(SCTP_DEBUG_OUTPUT1, "network address is %x\n", gwnetaddr.s_addr);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-152-		if ((_chk)->whoTo) { \
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:153:			sctp_free_remote_addr((_chk)->whoTo); \
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-154-			(_chk)->whoTo = NULL; \
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-190-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:191:#define sctp_free_remote_addr(__net) { \
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-192-	if ((__net)) {  \
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-238-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:239:#define sctp_free_remote_addr(__net) { \
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-240-	if ((__net)) { \
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-482-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__Windows__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:483:int sctp_ingetaddr(struct socket *, struct sockaddr **);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-484-#elif defined(__Panda__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:485:int sctp_ingetaddr(struct socket *, struct sockaddr *);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-486-#else
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:487:int sctp_ingetaddr(struct socket *, struct mbuf *);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-488-#endif
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-489-#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__Windows__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:490:int sctp_peeraddr(struct socket *, struct sockaddr **);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-491-#elif defined(__Panda__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:492:int sctp_peeraddr(struct socket *, struct sockaddr *);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-493-#else
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:494:int sctp_peeraddr(struct socket *, struct mbuf *);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h-495-#endif
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-4123-			if (sp->net) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:4124:				sctp_free_remote_addr(sp->net);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-4125-				sp->net = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-4567-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:4568:sctp_cmpaddr(struct sockaddr *sa1, struct sockaddr *sa2)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-4569-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-4911-			control->on_read_q = 0;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:4912:			sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-4913-			control->whoFrom = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-4965-		if (!control->on_strm_q) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:4966:			sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-4967-			if (control->data) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5017-		if (!control->on_strm_q) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:5018:			sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5019-			sctp_free_a_readq(stcb, control);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5378- * and doesn't handle multiple addresses with different zone/scope id's note:
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:5379: * ifa_ifwithaddr() compares the entire sockaddr struct
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5380- */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5493-struct sctp_ifa *
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:5494:sctp_find_ifa_by_addr(struct sockaddr *addr, uint32_t vrf_id, int holds_lock)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5495-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5939-			/* Add back any hiddend data */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:5940:			sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5941-			sctp_free_a_readq(stcb, control);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5975-#endif
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:5976:		sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-5977-		sctp_free_a_readq(stcb, control);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-6415-				no_rcv_needed = control->do_not_ref_stcb;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:6416:				sctp_free_remote_addr(control->whoFrom);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-6417-				control->data = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-6780-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:6781:	ifa = sctp_find_ifa_by_addr(sa, vrf_id, 0);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-6782-	if (ifa == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-6894-#if (defined(__FreeBSD__) && __FreeBSD_version > 500000) || defined(__Windows__)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:6895:			*psa = sodupsockaddr(from, M_NOWAIT);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-6896-#else
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:6897:			*psa = dup_sockaddr(from, mp0 == 0);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-6898-#endif
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-7085-			}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:7086:			if (sctp_add_remote_addr(stcb, sa, NULL, stcb->asoc.port,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-7087-			                         SCTP_DONOT_SETSCOPE,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-7110-			}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:7111:			if (sctp_add_remote_addr(stcb, sa, NULL, stcb->asoc.port,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-7112-			                         SCTP_DONOT_SETSCOPE,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-7126-			incr = sizeof(struct sockaddr_conn);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:7127:			if (sctp_add_remote_addr(stcb, sa, NULL, stcb->asoc.port,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-7128-			                         SCTP_DONOT_SETSCOPE,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-7208-		SCTP_INP_INCR_REF(inp);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:7209:		stcb = sctp_findassociation_ep_addr(&inp, sa, NULL, NULL, NULL);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c-7210-		if (stcb != NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-216-		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_add_ip: adding ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:217:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-218-		break;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-241-		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_add_ip: adding ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:242:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-243-		break;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-256-		        "process_asconf_add_ip: using source addr ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:257:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, src);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-258-	}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-264-		    aparam_length);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:265:	} else if (sctp_add_remote_addr(stcb, sa, &net, stcb->asoc.port,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-266-	                                SCTP_DONOT_SETSCOPE,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-309-				"asconf_del_remote_addrs_except: deleting ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:310:			SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-311-				     (struct sockaddr *)&net->ro._l_addr);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-377-			"process_asconf_delete_ip: deleting ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:378:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-379-		break;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-400-			"process_asconf_delete_ip: deleting ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:401:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-402-		break;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-411-	/* make sure the source address is not being deleted */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:412:	if (sctp_cmpaddr(sa, src)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-413-		/* trying to delete the source address! */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-440-	/* delete the address */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:441:	result = sctp_del_remote_addr(stcb, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-442-	/*
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-516-		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_set_primary: ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:517:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-518-		break;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-537-		SCTPDBG(SCTP_DEBUG_ASCONF1, "process_asconf_set_primary: ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:538:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-539-		break;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-552-			"process_asconf_set_primary: using source addr ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:553:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, src);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-554-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-555-	/* set the primary address */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:556:	if (sctp_set_primary_addr(stcb, sa, NULL) == 0) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-557-		SCTPDBG(SCTP_DEBUG_ASCONF1,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-563-		    (stcb->asoc.alternate)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:564:			sctp_free_remote_addr(stcb->asoc.alternate);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-565-			stcb->asoc.alternate = NULL;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-851-		SCTPDBG(SCTP_DEBUG_ASCONF1, "Looking for IP source: ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:852:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, src);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-853-		/* look up the from address */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1026-		SCTPDBG(SCTP_DEBUG_ASCONF1, "assoc_immediate_retrans: Deleted primary is ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:1027:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, &stcb->asoc.deleted_primary->ro._l_addr.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1028-		SCTPDBG(SCTP_DEBUG_ASCONF1, "Current Primary is ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:1029:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, &stcb->asoc.primary_destination->ro._l_addr.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1030-		sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb,
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1341-			SCTP_PRINTF("asconf_queue_mgmt: inserted asconf ADD_IP_ADDRESS: ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:1342:			SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1343-		} else if (type == SCTP_DEL_IP_ADDRESS) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1344-			SCTP_PRINTF("asconf_queue_mgmt: appended asconf DEL_IP_ADDRESS: ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:1345:			SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1346-		} else {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1347-			SCTP_PRINTF("asconf_queue_mgmt: appended asconf SET_PRIM_ADDR: ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:1348:			SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, &ifa->address.sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1349-		}
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1494-	/* find any existing ifa-- NOTE ifa CAN be allowed to be NULL */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:1495:	ifa = sctp_find_ifa_by_addr(sa, stcb->asoc.vrf_id, SCTP_ADDR_NOT_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-1496-
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2333-	vrf_id = stcb->asoc.vrf_id;
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:2334:	ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2335-	if (ifa == NULL) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2345-			(void *)stcb);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:2346:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2347-		if ((SCTP_GET_STATE(stcb) == SCTP_STATE_OPEN) ||
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2359-			(void *)stcb);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:2360:		SCTPDBG_ADDR(SCTP_DEBUG_ASCONF1, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2361-		return (-1);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2458-static struct sockaddr *
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:2459:sctp_find_valid_localaddr(struct sctp_tcb *stcb, int addr_locked)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2460-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2714-		if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_BOUNDALL)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:2715:			found_addr = sctp_find_valid_localaddr(stcb,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2716-							       addr_locked);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2865-		/* see if this address really (still) exists */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:2866:		sctp_ifa = sctp_find_ifa_by_addr(&store.sa, stcb->asoc.vrf_id,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2867-						 SCTP_ADDR_NOT_LOCKED);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2951-	SCTPDBG(SCTP_DEBUG_ASCONF2, "find_initack_addr: starting search for ");
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:2952:	SCTPDBG_ADDR(SCTP_DEBUG_ASCONF2, sa);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-2953-	/* convert to upper bound */
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-3062-		/* do i have it implicitly? */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:3063:		if (sctp_cmpaddr(&laddr->ifa->address.sa, init_addr)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-3064-			continue;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-3115-			/* do i have it implicitly? */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:3116:			if (sctp_cmpaddr(&sctp_ifa->address.sa, init_addr)) {
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-3117-				continue;
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-3222-		/* For an add the address MUST be on the system */
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:3223:		ifa = sctp_find_ifa_by_addr(sa, vrf_id, SCTP_ADDR_NOT_LOCKED);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c-3224-	} else if (type == SCTP_DEL_IP_ADDRESS) {
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h-584-int	sockargs(struct mbuf **mp, caddr_t buf, int buflen, int type);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h:585:int	getsockaddr(struct sockaddr **namp, caddr_t uaddr, size_t len);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h-586-void	sbappend(struct sockbuf *sb, struct mbuf *m);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h-589-void	sbappendstream_locked(struct sockbuf *sb, struct mbuf *m);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h:590:int	sbappendaddr(struct sockbuf *sb, const struct sockaddr *asa,
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h-591-	    struct mbuf *m0, struct mbuf *control);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h-637-int	sodisconnect(struct socket *so);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h:638:struct	sockaddr *sodupsockaddr(const struct sockaddr *sa, int mflags);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h-639-void	sofree(struct socket *so);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h-233-	atomic_lock();
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h:234:	__asm __volatile(
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h-235-	"	" MPLOCKED "		"
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h-254-	atomic_lock();
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h:255:	__asm __volatile(
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h-256-	"	pushfl ;		"
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h-283-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h:284:	__asm __volatile(
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h-285-	"	" MPLOCKED "		"
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_inpcb.h-361-void	in_pcbsetsolabel(struct socket *so);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_inpcb.h:362:int	in_getpeeraddr(struct socket *so, struct sockaddr **nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_inpcb.h:363:int	in_getsockaddr(struct socket *so, struct sockaddr **nam);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_inpcb.h-364-void	in_pcbsosetlabel(struct socket *so);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c-697-int
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c:698:getsockaddr(struct sockaddr **namp, caddr_t uaddr, size_t len)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c-699-{
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c-1656-	}
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c:1657:	if ((errno = getsockaddr(&sa, (caddr_t)name, namelen)) != 0)
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c-1658-		return (-1);
##############################################
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c-2152-
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c:2153:	errno = getsockaddr(&sa, (caddr_t)name, namelen);
chromium-84.0.4147.105/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c-2154-	if (errno)
##############################################
chromium-84.0.4147.105/third_party/lottie/lottie_worker.min.js:1:var lottiejs=function(window){"use strict";var svgNS="http://www.w3.org/2000/svg",locationHref="",initialDefaultFrame=-999999,subframeEnabled=!0,expressionsPlugin,isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),cachedColors={},bm_rounder=Math.round,bm_rnd,bm_pow=Math.pow,bm_sqrt=Math.sqrt,bm_abs=Math.abs,bm_floor=Math.floor,bm_max=Math.max,bm_min=Math.min,blitter=10,BMMath={};function ProjectInterface(){return{}}!function(){var t,e=["abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","cbrt","expm1","clz32","cos","cosh","exp","floor","fround","hypot","imul","log","log1p","log2","log10","max","min","pow","random","round","sign","sin","sinh","sqrt","tan","tanh","trunc","E","LN10","LN2","LOG10E","LOG2E","PI","SQRT1_2","SQRT2"],r=e.length;for(t=0;t<r;t+=1)BMMath[e[t]]=Math[e[t]]}(),BMMath.random=Math.random,BMMath.abs=function(t){if("object"==typeof t&&t.length){var e,r=createSizedArray(t.length),i=t.length;for(e=0;e<i;e+=1)r[e]=Math.abs(t[e]);return r}return Math.abs(t)};var defaultCurveSegments=150,degToRads=Math.PI/180,roundCorner=.5519;function roundValues(t){bm_rnd=t?Math.round:function(t){return t}}function styleDiv(t){t.style.position="absolute",t.style.top=0,t.style.left=0,t.style.display="block",t.style.transformOrigin=t.style.webkitTransformOrigin="0 0",t.style.backfaceVisibility=t.style.webkitBackfaceVisibility="visible",t.style.transformStyle=t.style.webkitTransformStyle=t.style.mozTransformStyle="preserve-3d"}function BMEnterFrameEvent(t,e,r,i){this.type=t,this.currentTime=e,this.totalTime=r,this.direction=i<0?-1:1}function BMCompleteEvent(t,e){this.type=t,this.direction=e<0?-1:1}function BMCompleteLoopEvent(t,e,r,i){this.type=t,this.currentLoop=r,this.totalLoops=e,this.direction=i<0?-1:1}function BMSegmentStartEvent(t,e,r){this.type=t,this.firstFrame=e,this.totalFrames=r}function BMDestroyEvent(t,e){this.type=t,this.target=e}roundValues(!1);var createElementID=(B=0,function(){return"__lottie_element_"+ ++B}),B;function HSVtoRGB(t,e,r){var i,s,a,n,o,h,p,l;switch(h=r*(1-e),p=r*(1-(o=6*t-(n=Math.floor(6*t)))*e),l=r*(1-(1-o)*e),n%6){case 0:i=r,s=l,a=h;break;case 1:i=p,s=r,a=h;break;case 2:i=h,s=r,a=l;break;case 3:i=h,s=p,a=r;break;case 4:i=l,s=h,a=r;break;case 5:i=r,s=h,a=p}return[i,s,a]}function RGBtoHSV(t,e,r){var i,s=Math.max(t,e,r),a=Math.min(t,e,r),n=s-a,o=0===s?0:n/s,h=s/255;switch(s){case a:i=0;break;case t:i=e-r+n*(e<r?6:0),i/=6*n;break;case e:i=r-t+2*n,i/=6*n;break;case r:i=t-e+4*n,i/=6*n}return[i,o,h]}function addSaturationToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[1]+=e,1<r[1]?r[1]=1:r[1]<=0&&(r[1]=0),HSVtoRGB(r[0],r[1],r[2])}function addBrightnessToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[2]+=e,1<r[2]?r[2]=1:r[2]<0&&(r[2]=0),HSVtoRGB(r[0],r[1],r[2])}function addHueToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[0]+=e/360,1<r[0]?r[0]-=1:r[0]<0&&(r[0]+=1),HSVtoRGB(r[0],r[1],r[2])}var rgbToHex=function(){var t,e,i=[];for(t=0;t<256;t+=1)e=t.toString(16),i[t]=1==e.length?"0"+e:e;return function(t,e,r){return t<0&&(t=0),e<0&&(e=0),r<0&&(r=0),"#"+i[t]+i[e]+i[r]}}();function BaseEvent(){}BaseEvent.prototype={triggerEvent:function(t,e){if(this._cbs[t])for(var r=this._cbs[t].length,i=0;i<r;i++)this._cbs[t][i](e)},addEventListener:function(t,e){return this._cbs[t]||(this._cbs[t]=[]),this._cbs[t].push(e),function(){this.removeEventListener(t,e)}.bind(this)},removeEventListener:function(t,e){if(e){if(this._cbs[t]){for(var r=0,i=this._cbs[t].length;r<i;)this._cbs[t][r]===e&&(this._cbs[t].splice(r,1),r-=1,i-=1),r+=1;this._cbs[t].length||(this._cbs[t]=null)}}else this._cbs[t]=null}};var createTypedArray="function"==typeof Uint8ClampedArray&&"function"==typeof Float32Array?function(t,e){return"float32"===t?new Float32Array(e):"int16"===t?new Int16Array(e):"uint8c"===t?new Uint8ClampedArray(e):void 0}:function(t,e){var r,i=0,s=[];switch(t){case"int16":case"uint8c":r=1;break;default:r=1.1}for(i=0;i<e;i+=1)s.push(r);return s};function createSizedArray(t){return Array.apply(null,{length:t})}function createTag(t){return document.createElement(t)}function DynamicPropertyContainer(){}DynamicPropertyContainer.prototype={addDynamicProperty:function(t){-1===this.dynamicProperties.indexOf(t)&&(this.dynamicProperties.push(t),this.container.addDynamicProperty(this),this._isAnimated=!0)},iterateDynamicProperties:function(){this._mdf=!1;var t,e=this.dynamicProperties.length;for(t=0;t<e;t+=1)this.dynamicProperties[t].getValue(),this.dynamicProperties[t]._mdf&&(this._mdf=!0)},initDynamicPropertyContainer:function(t){this.container=t,this.dynamicProperties=[],this._mdf=!1,this._isAnimated=!1}};var getBlendMode=(Ja={0:"source-over",1:"multiply",2:"screen",3:"overlay",4:"darken",5:"lighten",6:"color-dodge",7:"color-burn",8:"hard-light",9:"soft-light",10:"difference",11:"exclusion",12:"hue",13:"saturation",14:"color",15:"luminosity"},function(t){return Ja[t]||""}),Ja,Matrix=(La=Math.cos,Ma=Math.sin,Na=Math.tan,Oa=Math.round,function(){this.reset=Pa,this.rotate=Qa,this.rotateX=Ra,this.rotateY=Sa,this.rotateZ=Ta,this.skew=Va,this.skewFromAxis=Wa,this.shear=Ua,this.scale=Xa,this.setTransform=Ya,this.translate=Za,this.transform=$a,this.applyToPoint=db,this.applyToX=eb,this.applyToY=fb,this.applyToZ=gb,this.applyToPointArray=kb,this.applyToTriplePoints=jb,this.applyToPointStringified=lb,this.toCSS=mb,this.to2dCSS=pb,this.clone=bb,this.cloneFromProps=cb,this.equals=ab,this.inversePoints=ib,this.inversePoint=hb,this._t=this.transform,this.isIdentity=_a,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}),La,Ma,Na,Oa;function Pa(){return this.props[0]=1,this.props[1]=0,this.props[2]=0,this.props[3]=0,this.props[4]=0,this.props[5]=1,this.props[6]=0,this.props[7]=0,this.props[8]=0,this.props[9]=0,this.props[10]=1,this.props[11]=0,this.props[12]=0,this.props[13]=0,this.props[14]=0,this.props[15]=1,this}function Qa(t){if(0===t)return this;var e=La(t),r=Ma(t);return this._t(e,-r,0,0,r,e,0,0,0,0,1,0,0,0,0,1)}function Ra(t){if(0===t)return this;var e=La(t),r=Ma(t);return this._t(1,0,0,0,0,e,-r,0,0,r,e,0,0,0,0,1)}function Sa(t){if(0===t)return this;var e=La(t),r=Ma(t);return this._t(e,0,r,0,0,1,0,0,-r,0,e,0,0,0,0,1)}function Ta(t){if(0===t)return this;var e=La(t),r=Ma(t);return this._t(e,-r,0,0,r,e,0,0,0,0,1,0,0,0,0,1)}function Ua(t,e){return this._t(1,e,t,1,0,0)}function Va(t,e){return this.shear(Na(t),Na(e))}function Wa(t,e){var r=La(e),i=Ma(e);return this._t(r,i,0,0,-i,r,0,0,0,0,1,0,0,0,0,1)._t(1,0,0,0,Na(t),1,0,0,0,0,1,0,0,0,0,1)._t(r,-i,0,0,i,r,0,0,0,0,1,0,0,0,0,1)}function Xa(t,e,r){return r||0===r||(r=1),1===t&&1===e&&1===r?this:this._t(t,0,0,0,0,e,0,0,0,0,r,0,0,0,0,1)}function Ya(t,e,r,i,s,a,n,o,h,p,l,m,f,c,d,u){return this.props[0]=t,this.props[1]=e,this.props[2]=r,this.props[3]=i,this.props[4]=s,this.props[5]=a,this.props[6]=n,this.props[7]=o,this.props[8]=h,this.props[9]=p,this.props[10]=l,this.props[11]=m,this.props[12]=f,this.props[13]=c,this.props[14]=d,this.props[15]=u,this}function Za(t,e,r){return r=r||0,0!==t||0!==e||0!==r?this._t(1,0,0,0,0,1,0,0,0,0,1,0,t,e,r,1):this}function $a(t,e,r,i,s,a,n,o,h,p,l,m,f,c,d,u){var y=this.props;if(1===t&&0===e&&0===r&&0===i&&0===s&&1===a&&0===n&&0===o&&0===h&&0===p&&1===l&&0===m)return y[12]=y[12]*t+y[15]*f,y[13]=y[13]*a+y[15]*c,y[14]=y[14]*l+y[15]*d,y[15]=y[15]*u,this._identityCalculated=!1,this;var g=y[0],v=y[1],P=y[2],b=y[3],x=y[4],_=y[5],S=y[6],T=y[7],A=y[8],E=y[9],C=y[10],k=y[11],D=y[12],I=y[13],M=y[14],w=y[15];return y[0]=g*t+v*s+P*h+b*f,y[1]=g*e+v*a+P*p+b*c,y[2]=g*r+v*n+P*l+b*d,y[3]=g*i+v*o+P*m+b*u,y[4]=x*t+_*s+S*h+T*f,y[5]=x*e+_*a+S*p+T*c,y[6]=x*r+_*n+S*l+T*d,y[7]=x*i+_*o+S*m+T*u,y[8]=A*t+E*s+C*h+k*f,y[9]=A*e+E*a+C*p+k*c,y[10]=A*r+E*n+C*l+k*d,y[11]=A*i+E*o+C*m+k*u,y[12]=D*t+I*s+M*h+w*f,y[13]=D*e+I*a+M*p+w*c,y[14]=D*r+I*n+M*l+w*d,y[15]=D*i+I*o+M*m+w*u,this._identityCalculated=!1,this}function _a(){return this._identityCalculated||(this._identity=!(1!==this.props[0]||0!==this.props[1]||0!==this.props[2]||0!==this.props[3]||0!==this.props[4]||1!==this.props[5]||0!==this.props[6]||0!==this.props[7]||0!==this.props[8]||0!==this.props[9]||1!==this.props[10]||0!==this.props[11]||0!==this.props[12]||0!==this.props[13]||0!==this.props[14]||1!==this.props[15]),this._identityCalculated=!0),this._identity}function ab(t){for(var e=0;e<16;){if(t.props[e]!==this.props[e])return!1;e+=1}return!0}function bb(t){var e;for(e=0;e<16;e+=1)t.props[e]=this.props[e]}function cb(t){var e;for(e=0;e<16;e+=1)this.props[e]=t[e]}function db(t,e,r){return{x:t*this.props[0]+e*this.props[4]+r*this.props[8]+this.props[12],y:t*this.props[1]+e*this.props[5]+r*this.props[9]+this.props[13],z:t*this.props[2]+e*this.props[6]+r*this.props[10]+this.props[14]}}function eb(t,e,r){return t*this.props[0]+e*this.props[4]+r*this.props[8]+this.props[12]}function fb(t,e,r){return t*this.props[1]+e*this.props[5]+r*this.props[9]+this.props[13]}function gb(t,e,r){return t*this.props[2]+e*this.props[6]+r*this.props[10]+this.props[14]}function hb(t){var e=this.props[0]*this.props[5]-this.props[1]*this.props[4],r=this.props[5]/e,i=-this.props[1]/e,s=-this.props[4]/e,a=this.props[0]/e,n=(this.props[4]*this.props[13]-this.props[5]*this.props[12])/e,o=-(this.props[0]*this.props[13]-this.props[1]*this.props[12])/e;return[t[0]*r+t[1]*s+n,t[0]*i+t[1]*a+o,0]}function ib(t){var e,r=t.length,i=[];for(e=0;e<r;e+=1)i[e]=hb(t[e]);return i}function jb(t,e,r){var i=createTypedArray("float32",6);if(this.isIdentity())i[0]=t[0],i[1]=t[1],i[2]=e[0],i[3]=e[1],i[4]=r[0],i[5]=r[1];else{var s=this.props[0],a=this.props[1],n=this.props[4],o=this.props[5],h=this.props[12],p=this.props[13];i[0]=t[0]*s+t[1]*n+h,i[1]=t[0]*a+t[1]*o+p,i[2]=e[0]*s+e[1]*n+h,i[3]=e[0]*a+e[1]*o+p,i[4]=r[0]*s+r[1]*n+h,i[5]=r[0]*a+r[1]*o+p}return i}function kb(t,e,r){return this.isIdentity()?[t,e,r]:[t*this.props[0]+e*this.props[4]+r*this.props[8]+this.props[12],t*this.props[1]+e*this.props[5]+r*this.props[9]+this.props[13],t*this.props[2]+e*this.props[6]+r*this.props[10]+this.props[14]]}function lb(t,e){if(this.isIdentity())return t+","+e;var r=this.props;return Math.round(100*(t*r[0]+e*r[4]+r[12]))/100+","+Math.round(100*(t*r[1]+e*r[5]+r[13]))/100}function mb(){for(var t=0,e=this.props,r="matrix3d(";t<16;)r+=Oa(1e4*e[t])/1e4,r+=15===t?")":",",t+=1;return r}function nb(t){return t<1e-6&&0<t||-1e-6<t&&t<0?Oa(1e4*t)/1e4:t}function pb(){var t=this.props;return"matrix("+nb(t[0])+","+nb(t[1])+","+nb(t[4])+","+nb(t[5])+","+nb(t[12])+","+nb(t[13])+")"}!function(o,h){var p,l=this,m=256,f=6,c="random",d=h.pow(m,f),u=h.pow(2,52),y=2*u,g=m-1;function v(t){var e,r=t.length,n=this,i=0,s=n.i=n.j=0,a=n.S=[];for(r||(t=[r++]);i<m;)a[i]=i++;for(i=0;i<m;i++)a[i]=a[s=g&s+t[i%r]+(e=a[i])],a[s]=e;n.g=function(t){for(var e,r=0,i=n.i,s=n.j,a=n.S;t--;)e=a[i=g&i+1],r=r*m+a[g&(a[i]=a[s=g&s+e])+(a[s]=e)];return n.i=i,n.j=s,r}}function P(t,e){return e.i=t.i,e.j=t.j,e.S=t.S.slice(),e}function b(t,e){for(var r,i=t+"",s=0;s<i.length;)e[g&s]=g&(r^=19*e[g&s])+i.charCodeAt(s++);return x(e)}function x(t){return String.fromCharCode.apply(0,t)}h["seed"+c]=function(t,e,r){function i(){for(var t=n.g(f),e=d,r=0;t<u;)t=(t+r)*m,e*=m,r=n.g(1);for(;y<=t;)t/=2,e/=2,r>>>=1;return(t+r)/e}var s=[],a=b(function t(e,r){var i,s=[],a=typeof e;if(r&&"object"==a)for(i in e)try{s.push(t(e[i],r-1))}catch(t){}return s.length?s:"string"==a?e:e+"\0"}((e=!0===e?{entropy:!0}:e||{}).entropy?[t,x(o)]:null===t?function(){try{if(p)return x(p.randomBytes(m));var t=new Uint8Array(m);return(l.crypto||l.msCrypto).getRandomValues(t),x(t)}catch(t){var e=l.navigator,r=e&&e.plugins;return[+new Date,l,r,l.screen,x(o)]}}():t,3),s),n=new v(s);return i.int32=function(){return 0|n.g(4)},i.quick=function(){return n.g(4)/4294967296},i.double=i,b(x(n.S),o),(e.pass||r||function(t,e,r,i){return i&&(i.S&&P(i,n),t.state=function(){return P(n,{})}),r?(h[c]=t,e):t})(i,a,"global"in e?e.global:this==h,e.state)},b(h.random(),o)}([],BMMath);var BezierFactory=(_e={getBezierEasing:function(t,e,r,i,s){var a=s||("bez_"+t+"_"+e+"_"+r+"_"+i).replace(/\./g,"p");if(af[a])return af[a];var n=new rf([t,e,r,i]);return af[a]=n}},af={},gf=11,hf=1/(gf-1),jf="function"==typeof Float32Array,rf.prototype={get:function(t){var e=this._p[0],r=this._p[1],i=this._p[2],s=this._p[3];return this._precomputed||this._precompute(),e===r&&i===s?t:0===t?0:1===t?1:nf(this._getTForX(t),r,s)},_precompute:function(){var t=this._p[0],e=this._p[1],r=this._p[2],i=this._p[3];this._precomputed=!0,t===e&&r===i||this._calcSampleValues()},_calcSampleValues:function(){for(var t=this._p[0],e=this._p[2],r=0;r<gf;++r)this._mSampleValues[r]=nf(r*hf,t,e)},_getTForX:function(t){for(var e=this._p[0],r=this._p[2],i=this._mSampleValues,s=0,a=1,n=gf-1;a!==n&&i[a]<=t;++a)s+=hf;var o=s+(t-i[--a])/(i[a+1]-i[a])*hf,h=of(o,e,r);return.001<=h?function(t,e,r,i){for(var s=0;s<4;++s){var a=of(e,r,i);if(0===a)return e;e-=(nf(e,r,i)-t)/a}return e}(t,o,e,r):0===h?o:function(t,e,r,i,s){for(var a,n,o=0;0<(a=nf(n=e+(r-e)/2,i,s)-t)?r=n:e=n,1e-7<Math.abs(a)&&++o<10;);return n}(t,s,s+hf,e,r)}},_e),_e,af,gf,hf,jf;function kf(t,e){return 1-3*e+3*t}function lf(t,e){return 3*e-6*t}function mf(t){return 3*t}function nf(t,e,r){return((kf(e,r)*t+lf(e,r))*t+mf(e))*t}function of(t,e,r){return 3*kf(e,r)*t*t+2*lf(e,r)*t+mf(e)}function rf(t){this._p=t,this._mSampleValues=jf?new Float32Array(gf):new Array(gf),this._precomputed=!1,this.get=this.get.bind(this)}function extendPrototype(t,e){var r,i,s=t.length;for(r=0;r<s;r+=1)for(var a in i=t[r].prototype)i.hasOwnProperty(a)&&(e.prototype[a]=i[a])}function getDescriptor(t,e){return Object.getOwnPropertyDescriptor(t,e)}function createProxyFunction(t){function e(){}return e.prototype=t,e}function bezFunction(){Math;function y(t,e,r,i,s,a){var n=t*i+e*s+r*a-s*i-a*t-r*e;return-.001<n&&n<.001}var l=function(t,e,r,i){var s,a,n,o,h,p,l=defaultCurveSegments,m=0,f=[],c=[],d=bezier_length_pool.newElement();for(n=r.length,s=0;s<l;s+=1){for(h=s/(l-1),a=p=0;a<n;a+=1)o=bm_pow(1-h,3)*t[a]+3*bm_pow(1-h,2)*h*r[a]+3*(1-h)*bm_pow(h,2)*i[a]+bm_pow(h,3)*e[a],f[a]=o,null!==c[a]&&(p+=bm_pow(f[a]-c[a],2)),c[a]=f[a];p&&(m+=p=bm_sqrt(p)),d.percents[s]=h,d.lengths[s]=m}return d.addedLength=m,d};function g(t){this.segmentLength=0,this.points=new Array(t)}function v(t,e){this.partialLength=t,this.point=e}var P,t=(P={},function(t,e,r,i){var s=(t[0]+"_"+t[1]+"_"+e[0]+"_"+e[1]+"_"+r[0]+"_"+r[1]+"_"+i[0]+"_"+i[1]).replace(/\./g,"p");if(!P[s]){var a,n,o,h,p,l,m,f=defaultCurveSegments,c=0,d=null;2===t.length&&(t[0]!=e[0]||t[1]!=e[1])&&y(t[0],t[1],e[0],e[1],t[0]+r[0],t[1]+r[1])&&y(t[0],t[1],e[0],e[1],e[0]+i[0],e[1]+i[1])&&(f=2);var u=new g(f);for(o=r.length,a=0;a<f;a+=1){for(m=createSizedArray(o),p=a/(f-1),n=l=0;n<o;n+=1)h=bm_pow(1-p,3)*t[n]+3*bm_pow(1-p,2)*p*(t[n]+r[n])+3*(1-p)*bm_pow(p,2)*(e[n]+i[n])+bm_pow(p,3)*e[n],m[n]=h,null!==d&&(l+=bm_pow(m[n]-d[n],2));c+=l=bm_sqrt(l),u.points[a]=new v(l,m),d=m}u.segmentLength=c,P[s]=u}return P[s]});function D(t,e){var r=e.percents,i=e.lengths,s=r.length,a=bm_floor((s-1)*t),n=t*e.addedLength,o=0;if(a===s-1||0===a||n===i[a])return r[a];for(var h=i[a]>n?-1:1,p=!0;p;)if(i[a]<=n&&i[a+1]>n?(o=(n-i[a])/(i[a+1]-i[a]),p=!1):a+=h,a<0||s-1<=a){if(a===s-1)return r[a];p=!1}return r[a]+(r[a+1]-r[a])*o}var I=createTypedArray("float32",8);return{getSegmentsLength:function(t){var e,r=segments_length_pool.newElement(),i=t.c,s=t.v,a=t.o,n=t.i,o=t._length,h=r.lengths,p=0;for(e=0;e<o-1;e+=1)h[e]=l(s[e],s[e+1],a[e],n[e+1]),p+=h[e].addedLength;return i&&o&&(h[e]=l(s[e],s[0],a[e],n[0]),p+=h[e].addedLength),r.totalLength=p,r},getNewSegment:function(t,e,r,i,s,a,n){var o,h=D(s=s<0?0:1<s?1:s,n),p=D(a=1<a?1:a,n),l=t.length,m=1-h,f=1-p,c=m*m*m,d=h*m*m*3,u=h*h*m*3,y=h*h*h,g=m*m*f,v=h*m*f+m*h*f+m*m*p,P=h*h*f+m*h*p+h*m*p,b=h*h*p,x=m*f*f,_=h*f*f+m*p*f+m*f*p,S=h*p*f+m*p*p+h*f*p,T=h*p*p,A=f*f*f,E=p*f*f+f*p*f+f*f*p,C=p*p*f+f*p*p+p*f*p,k=p*p*p;for(o=0;o<l;o+=1)I[4*o]=Math.round(1e3*(c*t[o]+d*r[o]+u*i[o]+y*e[o]))/1e3,I[4*o+1]=Math.round(1e3*(g*t[o]+v*r[o]+P*i[o]+b*e[o]))/1e3,I[4*o+2]=Math.round(1e3*(x*t[o]+_*r[o]+S*i[o]+T*e[o]))/1e3,I[4*o+3]=Math.round(1e3*(A*t[o]+E*r[o]+C*i[o]+k*e[o]))/1e3;return I},getPointInSegment:function(t,e,r,i,s,a){var n=D(s,a),o=1-n;return[Math.round(1e3*(o*o*o*t[0]+(n*o*o+o*n*o+o*o*n)*r[0]+(n*n*o+o*n*n+n*o*n)*i[0]+n*n*n*e[0]))/1e3,Math.round(1e3*(o*o*o*t[1]+(n*o*o+o*n*o+o*o*n)*r[1]+(n*n*o+o*n*n+n*o*n)*i[1]+n*n*n*e[1]))/1e3]},buildBezierData:t,pointOnLine2D:y,pointOnLine3D:function(t,e,r,i,s,a,n,o,h){if(0===r&&0===a&&0===h)return y(t,e,i,s,n,o);var p,l=Math.sqrt(Math.pow(i-t,2)+Math.pow(s-e,2)+Math.pow(a-r,2)),m=Math.sqrt(Math.pow(n-t,2)+Math.pow(o-e,2)+Math.pow(h-r,2)),f=Math.sqrt(Math.pow(n-i,2)+Math.pow(o-s,2)+Math.pow(h-a,2));return-1e-4<(p=m<l?f<l?l-m-f:f-m-l:m<f?f-m-l:m-l-f)&&p<1e-4}}}!function(){for(var a=0,t=["ms","moz","webkit","o"],e=0;e<t.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[t[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[e]+"CancelAnimationFrame"]||window[t[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,e){var r=(new Date).getTime(),i=Math.max(0,16-(r-a)),s=setTimeout(function(){t(r+i)},i);return a=r+i,s}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}();var bez=bezFunction();function dataFunctionManager(){function m(t,e,r){var i,s,a,n,o,h,p=t.length;for(s=0;s<p;s+=1)if("ks"in(i=t[s])&&!i.completed){if(i.completed=!0,i.tt&&(t[s-1].td=i.tt),[],-1,i.hasMask){var l=i.masksProperties;for(n=l.length,a=0;a<n;a+=1)if(l[a].pt.k.i)d(l[a].pt.k);else for(h=l[a].pt.k.length,o=0;o<h;o+=1)l[a].pt.k[o].s&&d(l[a].pt.k[o].s[0]),l[a].pt.k[o].e&&d(l[a].pt.k[o].e[0])}0===i.ty?(i.layers=f(i.refId,e),m(i.layers,e,r)):4===i.ty?c(i.shapes):5==i.ty&&b(i,r)}}function f(t,e){for(var r=0,i=e.length;r<i;){if(e[r].id===t)return e[r].layers.__used?JSON.parse(JSON.stringify(e[r].layers)):(e[r].layers.__used=!0,e[r].layers);r+=1}}function c(t){var e,r,i;for(e=t.length-1;0<=e;e-=1)if("sh"==t[e].ty){if(t[e].ks.k.i)d(t[e].ks.k);else for(i=t[e].ks.k.length,r=0;r<i;r+=1)t[e].ks.k[r].s&&d(t[e].ks.k[r].s[0]),t[e].ks.k[r].e&&d(t[e].ks.k[r].e[0]);!0}else"gr"==t[e].ty&&c(t[e].it)}function d(t){var e,r=t.i.length;for(e=0;e<r;e+=1)t.i[e][0]+=t.v[e][0],t.i[e][1]+=t.v[e][1],t.o[e][0]+=t.v[e][0],t.o[e][1]+=t.v[e][1]}function o(t,e){var r=e?e.split("."):[100,100,100];return t[0]>r[0]||!(r[0]>t[0])&&(t[1]>r[1]||!(r[1]>t[1])&&(t[2]>r[2]||!(r[2]>t[2])&&void 0))}var i,r=(i=[4,4,14],function(t){if(o(i,t.v)&&(s(t.layers),t.assets)){var e,r=t.assets.length;for(e=0;e<r;e+=1)t.assets[e].layers&&s(t.assets[e].layers)}});function s(t){var e,r,i,s=t.length;for(e=0;e<s;e+=1)5===t[e].ty&&(r=t[e],void 0,i=r.t.d,r.t.d={k:[{s:i,t:0}]})}var h,a,n=(h=[4,7,99],function(t){if(t.chars&&!o(h,t.v)){var e,r,i,s,a,n=t.chars.length;for(e=0;e<n;e+=1)if(t.chars[e].data&&t.chars[e].data.shapes)for(i=(a=t.chars[e].data.shapes[0].it).length,r=0;r<i;r+=1)(s=a[r].ks.k).__converted||(d(a[r].ks.k),s.__converted=!0)}}),p=(a=[4,1,9],function(t){if(o(a,t.v)&&(u(t.layers),t.assets)){var e,r=t.assets.length;for(e=0;e<r;e+=1)t.assets[e].layers&&u(t.assets[e].layers)}});function l(t){var e,r,i,s=t.length;for(e=0;e<s;e+=1)if("gr"===t[e].ty)l(t[e].it);else if("fl"===t[e].ty||"st"===t[e].ty)if(t[e].c.k&&t[e].c.k[0].i)for(i=t[e].c.k.length,r=0;r<i;r+=1)t[e].c.k[r].s&&(t[e].c.k[r].s[0]/=255,t[e].c.k[r].s[1]/=255,t[e].c.k[r].s[2]/=255,t[e].c.k[r].s[3]/=255),t[e].c.k[r].e&&(t[e].c.k[r].e[0]/=255,t[e].c.k[r].e[1]/=255,t[e].c.k[r].e[2]/=255,t[e].c.k[r].e[3]/=255);else t[e].c.k[0]/=255,t[e].c.k[1]/=255,t[e].c.k[2]/=255,t[e].c.k[3]/=255}function u(t){var e,r=t.length;for(e=0;e<r;e+=1)4===t[e].ty&&l(t[e].shapes)}var y,g=(y=[4,4,18],function(t){if(o(y,t.v)&&(P(t.layers),t.assets)){var e,r=t.assets.length;for(e=0;e<r;e+=1)t.assets[e].layers&&P(t.assets[e].layers)}});function v(t){var e,r,i;for(e=t.length-1;0<=e;e-=1)if("sh"==t[e].ty){if(t[e].ks.k.i)t[e].ks.k.c=t[e].closed;else for(i=t[e].ks.k.length,r=0;r<i;r+=1)t[e].ks.k[r].s&&(t[e].ks.k[r].s[0].c=t[e].closed),t[e].ks.k[r].e&&(t[e].ks.k[r].e[0].c=t[e].closed);!0}else"gr"==t[e].ty&&v(t[e].it)}function P(t){var e,r,i,s,a,n,o=t.length;for(r=0;r<o;r+=1){if((e=t[r]).hasMask){var h=e.masksProperties;for(s=h.length,i=0;i<s;i+=1)if(h[i].pt.k.i)h[i].pt.k.c=h[i].cl;else for(n=h[i].pt.k.length,a=0;a<n;a+=1)h[i].pt.k[a].s&&(h[i].pt.k[a].s[0].c=h[i].cl),h[i].pt.k[a].e&&(h[i].pt.k[a].e[0].c=h[i].cl)}4===e.ty&&v(e.shapes)}}function b(t,e){0!==t.t.a.length||"m"in t.t.p||(t.singleShape=!0)}var t={completeData:function(t,e){t.__complete||(p(t),r(t),n(t),g(t),m(t.layers,t.assets,e),t.__complete=!0)}};return t.checkColors=p,t.checkChars=n,t.checkShapes=g,t.completeLayers=m,t}var dataManager=dataFunctionManager();dataManager.completeData=function(t,e){t.__complete||(this.checkColors(t),this.checkChars(t),this.checkShapes(t),this.completeLayers(t.layers,t.assets,e),t.__complete=!0)};var FontManager=function(){var a={w:0,size:0,shapes:[]},t=[];function u(t,e){var r=createTag("span");r.style.fontFamily=e;var i=createTag("span");i.innerHTML="giItT1WQy@!-/#",r.style.position="absolute",r.style.left="-10000px",r.style.top="-10000px",r.style.fontSize="300px",r.style.fontVariant="normal",r.style.fontStyle="normal",r.style.fontWeight="normal",r.style.letterSpacing="0",r.appendChild(i),document.body.appendChild(r);var s=i.offsetWidth;return i.style.fontFamily=t+", "+e,{node:i,w:s,parent:r}}t=t.concat([2304,2305,2306,2307,2362,2363,2364,2364,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2387,2388,2389,2390,2391,2402,2403]);function e(){this.fonts=[],this.chars=null,this.typekitLoaded=0,this.isLoaded=!1,this.initTime=Date.now()}return e.getCombinedCharacterCodes=function(){return t},e.prototype.addChars=function(t){if(t){this.chars||(this.chars=[]);var e,r,i,s=t.length,a=this.chars.length;for(e=0;e<s;e+=1){for(r=0,i=!1;r<a;)this.chars[r].style===t[e].style&&this.chars[r].fFamily===t[e].fFamily&&this.chars[r].ch===t[e].ch&&(i=!0),r+=1;i||(this.chars.push(t[e]),a+=1)}}},e.prototype.addFonts=function(t,e){if(t){if(this.chars)return this.isLoaded=!0,void(this.fonts=t.list);var r,i,s,a,n=t.list,o=n.length,h=o;for(r=0;r<o;r+=1){var p,l,m=!0;if(n[r].loaded=!1,n[r].monoCase=u(n[r].fFamily,"monospace"),n[r].sansCase=u(n[r].fFamily,"sans-serif"),n[r].fPath){if("p"===n[r].fOrigin||3===n[r].origin){if(0<(p=document.querySelectorAll('style[f-forigin="p"][f-family="'+n[r].fFamily+'"], style[f-origin="3"][f-family="'+n[r].fFamily+'"]')).length&&(m=!1),m){var f=createTag("style");f.setAttribute("f-forigin",n[r].fOrigin),f.setAttribute("f-origin",n[r].origin),f.setAttribute("f-family",n[r].fFamily),f.type="text/css",f.innerHTML="@font-face {font-family: "+n[r].fFamily+"; font-style: normal; src: url('"+n[r].fPath+"');}",e.appendChild(f)}}else if("g"===n[r].fOrigin||1===n[r].origin){for(p=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),l=0;l<p.length;l++)-1!==p[l].href.indexOf(n[r].fPath)&&(m=!1);if(m){var c=createTag("link");c.setAttribute("f-forigin",n[r].fOrigin),c.setAttribute("f-origin",n[r].origin),c.type="text/css",c.rel="stylesheet",c.href=n[r].fPath,document.body.appendChild(c)}}else if("t"===n[r].fOrigin||2===n[r].origin){for(p=document.querySelectorAll('script[f-forigin="t"], script[f-origin="2"]'),l=0;l<p.length;l++)n[r].fPath===p[l].src&&(m=!1);if(m){var d=createTag("link");d.setAttribute("f-forigin",n[r].fOrigin),d.setAttribute("f-origin",n[r].origin),d.setAttribute("rel","stylesheet"),d.setAttribute("href",n[r].fPath),e.appendChild(d)}}}else n[r].loaded=!0,h-=1;n[r].helper=(i=e,s=n[r],a=void 0,(a=createNS("text")).style.fontSize="100px",a.setAttribute("font-family",s.fFamily),a.setAttribute("font-style",s.fStyle),a.setAttribute("font-weight",s.fWeight),a.textContent="1",s.fClass?(a.style.fontFamily="inherit",a.setAttribute("class",s.fClass)):a.style.fontFamily=s.fFamily,i.appendChild(a),createTag("canvas").getContext("2d").font=s.fWeight+" "+s.fStyle+" 100px "+s.fFamily,a),n[r].cache={},this.fonts.push(n[r])}0===h?this.isLoaded=!0:setTimeout(this.checkLoadedFonts.bind(this),100)}else this.isLoaded=!0},e.prototype.getCharData=function(t,e,r){for(var i=0,s=this.chars.length;i<s;){if(this.chars[i].ch===t&&this.chars[i].style===e&&this.chars[i].fFamily===r)return this.chars[i];i+=1}return console&&console.warn&&console.warn("Missing character from exported characters list: ",t,e,r),a},e.prototype.getFontByName=function(t){for(var e=0,r=this.fonts.length;e<r;){if(this.fonts[e].fName===t)return this.fonts[e];e+=1}return this.fonts[0]},e.prototype.measureText=function(t,e,r){var i=this.getFontByName(e),s=t.charCodeAt(0);if(!i.cache[s+1]){var a=i.helper;if(" "===t){a.textContent="|"+t+"|";var n=a.getComputedTextLength();a.textContent="||";var o=a.getComputedTextLength();i.cache[s+1]=(n-o)/100}else a.textContent=t,i.cache[s+1]=a.getComputedTextLength()/100}return i.cache[s+1]*r},e.prototype.checkLoadedFonts=function(){var t,e,r,i=this.fonts.length,s=i;for(t=0;t<i;t+=1)this.fonts[t].loaded?s-=1:"n"===this.fonts[t].fOrigin||0===this.fonts[t].origin?this.fonts[t].loaded=!0:(e=this.fonts[t].monoCase.node,r=this.fonts[t].monoCase.w,e.offsetWidth!==r?(s-=1,this.fonts[t].loaded=!0):(e=this.fonts[t].sansCase.node,r=this.fonts[t].sansCase.w,e.offsetWidth!==r&&(s-=1,this.fonts[t].loaded=!0)),this.fonts[t].loaded&&(this.fonts[t].sansCase.parent.parentNode.removeChild(this.fonts[t].sansCase.parent),this.fonts[t].monoCase.parent.parentNode.removeChild(this.fonts[t].monoCase.parent)));0!==s&&Date.now()-this.initTime<5e3?setTimeout(this.checkLoadedFonts.bind(this),20):setTimeout(function(){this.isLoaded=!0}.bind(this),0)},e.prototype.loaded=function(){return this.isLoaded},e}();FontManager=function(){this.fonts=[],this.chars=null,this.typekitLoaded=0,this.isLoaded=!1,this.initTime=Date.now()};var PropertyFactory=(km=initialDefaultFrame,lm=Math.abs,{getProp:function(t,e,r,i,s){var a;if(e.k.length)if("number"==typeof e.k[0])a=new vm(t,e,i,s);else switch(r){case 0:a=new wm(t,e,i,s);break;case 1:a=new xm(t,e,i,s)}else a=new um(t,e,i,s);return a.effectsSequence.length&&s.addDynamicProperty(a),a}}),km,lm;function mm(t,e){var r,i=this.offsetTime;"multidimensional"===this.propType&&(r=createTypedArray("float32",this.pv.length));for(var s,a,n,o,h,p,l,m,f=e.lastIndex,c=f,d=this.keyframes.length-1,u=!0;u;){if(s=this.keyframes[c],a=this.keyframes[c+1],c===d-1&&t>=a.t-i){s.h&&(s=a),f=0;break}if(a.t-i>t){f=c;break}c<d-1?c+=1:(f=0,u=!1)}var y,g=a.t-i,v=s.t-i;if(s.to){s.bezierData||(s.bezierData=bez.buildBezierData(s.s,a.s||s.e,s.to,s.ti));var P=s.bezierData;if(g<=t||t<v){var b=g<=t?P.points.length-1:0;for(o=P.points[b].point.length,n=0;n<o;n+=1)r[n]=P.points[b].point[n]}else{s.__fnct?m=s.__fnct:(m=BezierFactory.getBezierEasing(s.o.x,s.o.y,s.i.x,s.i.y,s.n).get,s.__fnct=m),h=m((t-v)/(g-v));var x,_=P.segmentLength*h,S=e.lastFrame<t&&e._lastKeyframeIndex===c?e._lastAddedLength:0;for(l=e.lastFrame<t&&e._lastKeyframeIndex===c?e._lastPoint:0,u=!0,p=P.points.length;u;){if(S+=P.points[l].partialLength,0==_||0===h||l===P.points.length-1){for(o=P.points[l].point.length,n=0;n<o;n+=1)r[n]=P.points[l].point[n];break}if(S<=_&&_<S+P.points[l+1].partialLength){for(x=(_-S)/P.points[l+1].partialLength,o=P.points[l].point.length,n=0;n<o;n+=1)r[n]=P.points[l].point[n]+(P.points[l+1].point[n]-P.points[l].point[n])*x;break}l<p-1?l+=1:u=!1}e._lastPoint=l,e._lastAddedLength=S-P.points[l].partialLength,e._lastKeyframeIndex=c}}else{var T,A,E,C,k;if(d=s.s.length,y=a.s||s.e,this.sh&&1!==s.h)if(g<=t)r[0]=y[0],r[1]=y[1],r[2]=y[2];else if(t<=v)r[0]=s.s[0],r[1]=s.s[1],r[2]=s.s[2];else{!function(t,e){var r=e[0],i=e[1],s=e[2],a=e[3],n=Math.atan2(2*i*a-2*r*s,1-2*i*i-2*s*s),o=Math.asin(2*r*i+2*s*a),h=Math.atan2(2*r*a-2*i*s,1-2*r*r-2*s*s);t[0]=n/degToRads,t[1]=o/degToRads,t[2]=h/degToRads}(r,function(t,e,r){var i,s,a,n,o,h=[],p=t[0],l=t[1],m=t[2],f=t[3],c=e[0],d=e[1],u=e[2],y=e[3];(s=p*c+l*d+m*u+f*y)<0&&(s=-s,c=-c,d=-d,u=-u,y=-y);o=1e-6<1-s?(i=Math.acos(s),a=Math.sin(i),n=Math.sin((1-r)*i)/a,Math.sin(r*i)/a):(n=1-r,r);return h[0]=n*p+o*c,h[1]=n*l+o*d,h[2]=n*m+o*u,h[3]=n*f+o*y,h}(pm(s.s),pm(y),(t-v)/(g-v)))}else for(c=0;c<d;c+=1)1!==s.h&&(h=g<=t?1:t<v?0:(s.o.x.constructor===Array?(s.__fnct||(s.__fnct=[]),s.__fnct[c]?m=s.__fnct[c]:(T=void 0===s.o.x[c]?s.o.x[0]:s.o.x[c],A=void 0===s.o.y[c]?s.o.y[0]:s.o.y[c],E=void 0===s.i.x[c]?s.i.x[0]:s.i.x[c],C=void 0===s.i.y[c]?s.i.y[0]:s.i.y[c],m=BezierFactory.getBezierEasing(T,A,E,C).get,s.__fnct[c]=m)):s.__fnct?m=s.__fnct:(T=s.o.x,A=s.o.y,E=s.i.x,C=s.i.y,m=BezierFactory.getBezierEasing(T,A,E,C).get,s.__fnct=m),m((t-v)/(g-v)))),y=a.s||s.e,k=1===s.h?s.s[c]:s.s[c]+(y[c]-s.s[c])*h,1===d?r=k:r[c]=k}return e.lastIndex=f,r}function pm(t){var e=t[0]*degToRads,r=t[1]*degToRads,i=t[2]*degToRads,s=Math.cos(e/2),a=Math.cos(r/2),n=Math.cos(i/2),o=Math.sin(e/2),h=Math.sin(r/2),p=Math.sin(i/2);return[o*h*n+s*a*p,o*a*n+s*h*p,s*h*n-o*a*p,s*a*n-o*h*p]}function qm(){var t=this.comp.renderedFrame-this.offsetTime,e=this.keyframes[0].t-this.offsetTime,r=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(t===this._caching.lastFrame||this._caching.lastFrame!==km&&(this._caching.lastFrame>=r&&r<=t||this._caching.lastFrame<e&&t<e))){this._caching.lastFrame>=t&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var i=this.interpolateValue(t,this._caching);this.pv=i}return this._caching.lastFrame=t,this.pv}function rm(t){var e;if("unidimensional"===this.propType)e=t*this.mult,1e-5<lm(this.v-e)&&(this.v=e,this._mdf=!0);else for(var r=0,i=this.v.length;r<i;)e=t[r]*this.mult,1e-5<lm(this.v[r]-e)&&(this.v[r]=e,this._mdf=!0),r+=1}function sm(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{this.lock=!0,this._mdf=this._isFirstFrame;var t,e=this.effectsSequence.length,r=this.kf?this.pv:this.data.k;for(t=0;t<e;t+=1)r=this.effectsSequence[t](r);this.setVValue(r),this._isFirstFrame=!1,this.lock=!1,this.frameId=this.elem.globalData.frameId}}function tm(t){this.effectsSequence.push(t),this.container.addDynamicProperty(this)}function um(t,e,r,i){this.propType="unidimensional",this.mult=r||1,this.data=e,this.v=r?e.k*r:e.k,this.pv=e.k,this._mdf=!1,this.elem=t,this.container=i,this.comp=t.comp,this.k=!1,this.kf=!1,this.vel=0,this.effectsSequence=[],this._isFirstFrame=!0,this.getValue=sm,this.setVValue=rm,this.addEffect=tm}function vm(t,e,r,i){this.propType="multidimensional",this.mult=r||1,this.data=e,this._mdf=!1,this.elem=t,this.container=i,this.comp=t.comp,this.k=!1,this.kf=!1,this.frameId=-1;var s,a=e.k.length;this.v=createTypedArray("float32",a),this.pv=createTypedArray("float32",a);createTypedArray("float32",a);for(this.vel=createTypedArray("float32",a),s=0;s<a;s+=1)this.v[s]=e.k[s]*this.mult,this.pv[s]=e.k[s];this._isFirstFrame=!0,this.effectsSequence=[],this.getValue=sm,this.setVValue=rm,this.addEffect=tm}function wm(t,e,r,i){this.propType="unidimensional",this.keyframes=e.k,this.offsetTime=t.data.st,this.frameId=-1,this._caching={lastFrame:km,lastIndex:0,value:0,_lastKeyframeIndex:-1},this.k=!0,this.kf=!0,this.data=e,this.mult=r||1,this.elem=t,this.container=i,this.comp=t.comp,this.v=km,this.pv=km,this._isFirstFrame=!0,this.getValue=sm,this.setVValue=rm,this.interpolateValue=mm,this.effectsSequence=[qm.bind(this)],this.addEffect=tm}function xm(t,e,r,i){this.propType="multidimensional";var s,a,n,o,h,p=e.k.length;for(s=0;s<p-1;s+=1)e.k[s].to&&e.k[s].s&&e.k[s].e&&(a=e.k[s].s,n=e.k[s].e,o=e.k[s].to,h=e.k[s].ti,(2===a.length&&(a[0]!==n[0]||a[1]!==n[1])&&bez.pointOnLine2D(a[0],a[1],n[0],n[1],a[0]+o[0],a[1]+o[1])&&bez.pointOnLine2D(a[0],a[1],n[0],n[1],n[0]+h[0],n[1]+h[1])||3===a.length&&(a[0]!==n[0]||a[1]!==n[1]||a[2]!==n[2])&&bez.pointOnLine3D(a[0],a[1],a[2],n[0],n[1],n[2],a[0]+o[0],a[1]+o[1],a[2]+o[2])&&bez.pointOnLine3D(a[0],a[1],a[2],n[0],n[1],n[2],n[0]+h[0],n[1]+h[1],n[2]+h[2]))&&(e.k[s].to=null,e.k[s].ti=null),a[0]===n[0]&&a[1]===n[1]&&0===o[0]&&0===o[1]&&0===h[0]&&0===h[1]&&(2===a.length||a[2]===n[2]&&0===o[2]&&0===h[2])&&(e.k[s].to=null,e.k[s].ti=null));this.effectsSequence=[qm.bind(this)],this.keyframes=e.k,this.offsetTime=t.data.st,this.k=!0,this.kf=!0,this._isFirstFrame=!0,this.mult=r||1,this.elem=t,this.container=i,this.comp=t.comp,this.getValue=sm,this.setVValue=rm,this.interpolateValue=mm,this.frameId=-1;var l=e.k[0].s.length;for(this.v=createTypedArray("float32",l),this.pv=createTypedArray("float32",l),s=0;s<l;s+=1)this.v[s]=km,this.pv[s]=km;this._caching={lastFrame:km,lastIndex:0,value:createTypedArray("float32",l)},this.addEffect=tm}var TransformPropertyFactory=(Qo.prototype={applyToMatrix:function(t){var e=this._mdf;this.iterateDynamicProperties(),this._mdf=this._mdf||e,this.a&&t.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.s&&t.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&t.skewFromAxis(-this.sk.v,this.sa.v),this.r?t.rotate(-this.r.v):t.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.data.p.s?this.data.p.z?t.translate(this.px.v,this.py.v,-this.pz.v):t.translate(this.px.v,this.py.v,0):t.translate(this.p.v[0],this.p.v[1],-this.p.v[2])},getValue:function(t){if(this.elem.globalData.frameId!==this.frameId){if(this._isDirty&&(this.precalculateMatrix(),this._isDirty=!1),this.iterateDynamicProperties(),this._mdf||t){if(this.v.cloneFromProps(this.pre.props),this.appliedTransformations<1&&this.v.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations<2&&this.v.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&this.appliedTransformations<3&&this.v.skewFromAxis(-this.sk.v,this.sa.v),this.r&&this.appliedTransformations<4?this.v.rotate(-this.r.v):!this.r&&this.appliedTransformations<4&&this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.autoOriented){var e,r,i=this.elem.globalData.frameRate;if(this.p&&this.p.keyframes&&this.p.getValueAtTime)r=this.p._caching.lastFrame+this.p.offsetTime<=this.p.keyframes[0].t?(e=this.p.getValueAtTime((this.p.keyframes[0].t+.01)/i,0),this.p.getValueAtTime(this.p.keyframes[0].t/i,0)):this.p._caching.lastFrame+this.p.offsetTime>=this.p.keyframes[this.p.keyframes.length-1].t?(e=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/i,0),this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.01)/i,0)):(e=this.p.pv,this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/i,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){e=[],r=[];var s=this.px,a=this.py;s._caching.lastFrame+s.offsetTime<=s.keyframes[0].t?(e[0]=s.getValueAtTime((s.keyframes[0].t+.01)/i,0),e[1]=a.getValueAtTime((a.keyframes[0].t+.01)/i,0),r[0]=s.getValueAtTime(s.keyframes[0].t/i,0),r[1]=a.getValueAtTime(a.keyframes[0].t/i,0)):s._caching.lastFrame+s.offsetTime>=s.keyframes[s.keyframes.length-1].t?(e[0]=s.getValueAtTime(s.keyframes[s.keyframes.length-1].t/i,0),e[1]=a.getValueAtTime(a.keyframes[a.keyframes.length-1].t/i,0),r[0]=s.getValueAtTime((s.keyframes[s.keyframes.length-1].t-.01)/i,0),r[1]=a.getValueAtTime((a.keyframes[a.keyframes.length-1].t-.01)/i,0)):(e=[s.pv,a.pv],r[0]=s.getValueAtTime((s._caching.lastFrame+s.offsetTime-.01)/i,s.offsetTime),r[1]=a.getValueAtTime((a._caching.lastFrame+a.offsetTime-.01)/i,a.offsetTime))}this.v.rotate(-Math.atan2(e[1]-r[1],e[0]-r[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}if(this.r){if(this.r.effectsSequence.length)return;this.pre.rotate(-this.r.v),this.appliedTransformations=4}else this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],Qo),Qo.prototype.addDynamicProperty=function(t){this._addDynamicProperty(t),this.elem.addDynamicProperty(t),this._isDirty=!0},Qo.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(t,e,r){return new Qo(t,e,r)}});function Qo(t,e,r){if(this.elem=t,this.frameId=-1,this.propType="transform",this.data=e,this.v=new Matrix,this.pre=new Matrix,this.appliedTransformations=0,this.initDynamicPropertyContainer(r||t),e.p&&e.p.s?(this.px=PropertyFactory.getProp(t,e.p.x,0,0,this),this.py=PropertyFactory.getProp(t,e.p.y,0,0,this),e.p.z&&(this.pz=PropertyFactory.getProp(t,e.p.z,0,0,this))):this.p=PropertyFactory.getProp(t,e.p||{k:[0,0,0]},1,0,this),e.rx){if(this.rx=PropertyFactory.getProp(t,e.rx,0,degToRads,this),this.ry=PropertyFactory.getProp(t,e.ry,0,degToRads,this),this.rz=PropertyFactory.getProp(t,e.rz,0,degToRads,this),e.or.k[0].ti){var i,s=e.or.k.length;for(i=0;i<s;i+=1)e.or.k[i].to=e.or.k[i].ti=null}this.or=PropertyFactory.getProp(t,e.or,1,degToRads,this),this.or.sh=!0}else this.r=PropertyFactory.getProp(t,e.r||{k:0},0,degToRads,this);e.sk&&(this.sk=PropertyFactory.getProp(t,e.sk,0,degToRads,this),this.sa=PropertyFactory.getProp(t,e.sa,0,degToRads,this)),this.a=PropertyFactory.getProp(t,e.a||{k:[0,0,0]},1,0,this),this.s=PropertyFactory.getProp(t,e.s||{k:[100,100,100]},1,.01,this),e.o?this.o=PropertyFactory.getProp(t,e.o,0,.01,t):this.o={_mdf:!1,v:1},this._isDirty=!0,this.dynamicProperties.length||this.getValue(!0)}function ShapePath(){this.c=!1,this._length=0,this._maxLength=8,this.v=createSizedArray(this._maxLength),this.o=createSizedArray(this._maxLength),this.i=createSizedArray(this._maxLength)}ShapePath.prototype.setPathData=function(t,e){this.c=t,this.setLength(e);for(var r=0;r<e;)this.v[r]=point_pool.newElement(),this.o[r]=point_pool.newElement(),this.i[r]=point_pool.newElement(),r+=1},ShapePath.prototype.setLength=function(t){for(;this._maxLength<t;)this.doubleArrayLength();this._length=t},ShapePath.prototype.doubleArrayLength=function(){this.v=this.v.concat(createSizedArray(this._maxLength)),this.i=this.i.concat(createSizedArray(this._maxLength)),this.o=this.o.concat(createSizedArray(this._maxLength)),this._maxLength*=2},ShapePath.prototype.setXYAt=function(t,e,r,i,s){var a;switch(this._length=Math.max(this._length,i+1),this._length>=this._maxLength&&this.doubleArrayLength(),r){case"v":a=this.v;break;case"i":a=this.i;break;case"o":a=this.o}a[i]&&(!a[i]||s)||(a[i]=point_pool.newElement()),a[i][0]=t,a[i][1]=e},ShapePath.prototype.setTripleAt=function(t,e,r,i,s,a,n,o){this.setXYAt(t,e,"v",n,o),this.setXYAt(r,i,"o",n,o),this.setXYAt(s,a,"i",n,o)},ShapePath.prototype.reverse=function(){var t=new ShapePath;t.setPathData(this.c,this._length);var e=this.v,r=this.o,i=this.i,s=0;this.c&&(t.setTripleAt(e[0][0],e[0][1],i[0][0],i[0][1],r[0][0],r[0][1],0,!1),s=1);var a,n=this._length-1,o=this._length;for(a=s;a<o;a+=1)t.setTripleAt(e[n][0],e[n][1],i[n][0],i[n][1],r[n][0],r[n][1],a,!1),n-=1;return t};var ShapePropertyFactory=function(){var s=-999999;function t(t,e,r){var i,s,a,n,o,h,p,l,m,f=r.lastIndex,c=this.keyframes;if(t<c[0].t-this.offsetTime)i=c[0].s[0],a=!0,f=0;else if(t>=c[c.length-1].t-this.offsetTime)i=c[c.length-1].s?c[c.length-1].s[0]:c[c.length-2].e[0],a=!0;else{for(var d,u,y=f,g=c.length-1,v=!0;v&&(d=c[y],!((u=c[y+1]).t-this.offsetTime>t));)y<g-1?y+=1:v=!1;if(f=y,!(a=1===d.h)){if(t>=u.t-this.offsetTime)l=1;else if(t<d.t-this.offsetTime)l=0;else{var P;d.__fnct?P=d.__fnct:(P=BezierFactory.getBezierEasing(d.o.x,d.o.y,d.i.x,d.i.y).get,d.__fnct=P),l=P((t-(d.t-this.offsetTime))/(u.t-this.offsetTime-(d.t-this.offsetTime)))}s=u.s?u.s[0]:d.e[0]}i=d.s[0]}for(h=e._length,p=i.i[0].length,r.lastIndex=f,n=0;n<h;n+=1)for(o=0;o<p;o+=1)m=a?i.i[n][o]:i.i[n][o]+(s.i[n][o]-i.i[n][o])*l,e.i[n][o]=m,m=a?i.o[n][o]:i.o[n][o]+(s.o[n][o]-i.o[n][o])*l,e.o[n][o]=m,m=a?i.v[n][o]:i.v[n][o]+(s.v[n][o]-i.v[n][o])*l,e.v[n][o]=m}function a(){this.paths=this.localShapeCollection}function e(t){!function(t,e){if(t._length!==e._length||t.c!==e.c)return!1;var r,i=t._length;for(r=0;r<i;r+=1)if(t.v[r][0]!==e.v[r][0]||t.v[r][1]!==e.v[r][1]||t.o[r][0]!==e.o[r][0]||t.o[r][1]!==e.o[r][1]||t.i[r][0]!==e.i[r][0]||t.i[r][1]!==e.i[r][1])return!1;return!0}(this.v,t)&&(this.v=shape_pool.clone(t),this.localShapeCollection.releaseShapes(),this.localShapeCollection.addShape(this.v),this._mdf=!0,this.paths=this.localShapeCollection)}function r(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{this.lock=!0,this._mdf=!1;var t,e=this.kf?this.pv:this.data.ks?this.data.ks.k:this.data.pt.k,r=this.effectsSequence.length;for(t=0;t<r;t+=1)e=this.effectsSequence[t](e);this.setVValue(e),this.lock=!1,this.frameId=this.elem.globalData.frameId}}function n(t,e,r){this.propType="shape",this.comp=t.comp,this.container=t,this.elem=t,this.data=e,this.k=!1,this.kf=!1,this._mdf=!1;var i=3===r?e.pt.k:e.ks.k;this.v=shape_pool.clone(i),this.pv=shape_pool.clone(this.v),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.reset=a,this.effectsSequence=[]}function i(t){this.effectsSequence.push(t),this.container.addDynamicProperty(this)}function o(t,e,r){this.propType="shape",this.comp=t.comp,this.elem=t,this.container=t,this.offsetTime=t.data.st,this.keyframes=3===r?e.pt.k:e.ks.k,this.k=!0,this.kf=!0;var i=this.keyframes[0].s[0].i.length;this.keyframes[0].s[0].i[0].length;this.v=shape_pool.newElement(),this.v.setPathData(this.keyframes[0].s[0].c,i),this.pv=shape_pool.clone(this.v),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.lastFrame=s,this.reset=a,this._caching={lastFrame:s,lastIndex:0},this.effectsSequence=[function(){var t=this.comp.renderedFrame-this.offsetTime,e=this.keyframes[0].t-this.offsetTime,r=this.keyframes[this.keyframes.length-1].t-this.offsetTime,i=this._caching.lastFrame;return i!==s&&(i<e&&t<e||r<i&&r<t)||(this._caching.lastIndex=i<t?this._caching.lastIndex:0,this.interpolateShape(t,this.pv,this._caching)),this._caching.lastFrame=t,this.pv}.bind(this)]}n.prototype.interpolateShape=t,n.prototype.getValue=r,n.prototype.setVValue=e,n.prototype.addEffect=i,o.prototype.getValue=r,o.prototype.interpolateShape=t,o.prototype.setVValue=e,o.prototype.addEffect=i;var h,p=(h=roundCorner,l.prototype={reset:a,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertEllToPath())},convertEllToPath:function(){var t=this.p.v[0],e=this.p.v[1],r=this.s.v[0]/2,i=this.s.v[1]/2,s=3!==this.d,a=this.v;a.v[0][0]=t,a.v[0][1]=e-i,a.v[1][0]=s?t+r:t-r,a.v[1][1]=e,a.v[2][0]=t,a.v[2][1]=e+i,a.v[3][0]=s?t-r:t+r,a.v[3][1]=e,a.i[0][0]=s?t-r*h:t+r*h,a.i[0][1]=e-i,a.i[1][0]=s?t+r:t-r,a.i[1][1]=e-i*h,a.i[2][0]=s?t+r*h:t-r*h,a.i[2][1]=e+i,a.i[3][0]=s?t-r:t+r,a.i[3][1]=e+i*h,a.o[0][0]=s?t+r*h:t-r*h,a.o[0][1]=e-i,a.o[1][0]=s?t+r:t-r,a.o[1][1]=e+i*h,a.o[2][0]=s?t-r*h:t+r*h,a.o[2][1]=e+i,a.o[3][0]=s?t-r:t+r,a.o[3][1]=e-i*h}},extendPrototype([DynamicPropertyContainer],l),l);function l(t,e){this.v=shape_pool.newElement(),this.v.setPathData(!0,4),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.paths=this.localShapeCollection,this.localShapeCollection.addShape(this.v),this.d=e.d,this.elem=t,this.comp=t.comp,this.frameId=-1,this.initDynamicPropertyContainer(t),this.p=PropertyFactory.getProp(t,e.p,1,0,this),this.s=PropertyFactory.getProp(t,e.s,1,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertEllToPath())}var m=(f.prototype={reset:a,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertToPath())},convertStarToPath:function(){var t,e,r,i,s=2*Math.floor(this.pt.v),a=2*Math.PI/s,n=!0,o=this.or.v,h=this.ir.v,p=this.os.v,l=this.is.v,m=2*Math.PI*o/(2*s),f=2*Math.PI*h/(2*s),c=-Math.PI/2;c+=this.r.v;var d=3===this.data.d?-1:1;for(t=this.v._length=0;t<s;t+=1){r=n?p:l,i=n?m:f;var u=(e=n?o:h)*Math.cos(c),y=e*Math.sin(c),g=0===u&&0===y?0:y/Math.sqrt(u*u+y*y),v=0===u&&0===y?0:-u/Math.sqrt(u*u+y*y);u+=+this.p.v[0],y+=+this.p.v[1],this.v.setTripleAt(u,y,u-g*i*r*d,y-v*i*r*d,u+g*i*r*d,y+v*i*r*d,t,!0),n=!n,c+=a*d}},convertPolygonToPath:function(){var t,e=Math.floor(this.pt.v),r=2*Math.PI/e,i=this.or.v,s=this.os.v,a=2*Math.PI*i/(4*e),n=-Math.PI/2,o=3===this.data.d?-1:1;for(n+=this.r.v,t=this.v._length=0;t<e;t+=1){var h=i*Math.cos(n),p=i*Math.sin(n),l=0===h&&0===p?0:p/Math.sqrt(h*h+p*p),m=0===h&&0===p?0:-h/Math.sqrt(h*h+p*p);h+=+this.p.v[0],p+=+this.p.v[1],this.v.setTripleAt(h,p,h-l*a*s*o,p-m*a*s*o,h+l*a*s*o,p+m*a*s*o,t,!0),n+=r*o}this.paths.length=0,this.paths[0]=this.v}},extendPrototype([DynamicPropertyContainer],f),f);function f(t,e){this.v=shape_pool.newElement(),this.v.setPathData(!0,0),this.elem=t,this.comp=t.comp,this.data=e,this.frameId=-1,this.d=e.d,this.initDynamicPropertyContainer(t),1===e.sy?(this.ir=PropertyFactory.getProp(t,e.ir,0,0,this),this.is=PropertyFactory.getProp(t,e.is,0,.01,this),this.convertToPath=this.convertStarToPath):this.convertToPath=this.convertPolygonToPath,this.pt=PropertyFactory.getProp(t,e.pt,0,0,this),this.p=PropertyFactory.getProp(t,e.p,1,0,this),this.r=PropertyFactory.getProp(t,e.r,0,degToRads,this),this.or=PropertyFactory.getProp(t,e.or,0,0,this),this.os=PropertyFactory.getProp(t,e.os,0,.01,this),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertToPath())}var c=(d.prototype={convertRectToPath:function(){var t=this.p.v[0],e=this.p.v[1],r=this.s.v[0]/2,i=this.s.v[1]/2,s=bm_min(r,i,this.r.v),a=s*(1-roundCorner);this.v._length=0,2===this.d||1===this.d?(this.v.setTripleAt(t+r,e-i+s,t+r,e-i+s,t+r,e-i+a,0,!0),this.v.setTripleAt(t+r,e+i-s,t+r,e+i-a,t+r,e+i-s,1,!0),0!==s?(this.v.setTripleAt(t+r-s,e+i,t+r-s,e+i,t+r-a,e+i,2,!0),this.v.setTripleAt(t-r+s,e+i,t-r+a,e+i,t-r+s,e+i,3,!0),this.v.setTripleAt(t-r,e+i-s,t-r,e+i-s,t-r,e+i-a,4,!0),this.v.setTripleAt(t-r,e-i+s,t-r,e-i+a,t-r,e-i+s,5,!0),this.v.setTripleAt(t-r+s,e-i,t-r+s,e-i,t-r+a,e-i,6,!0),this.v.setTripleAt(t+r-s,e-i,t+r-a,e-i,t+r-s,e-i,7,!0)):(this.v.setTripleAt(t-r,e+i,t-r+a,e+i,t-r,e+i,2),this.v.setTripleAt(t-r,e-i,t-r,e-i+a,t-r,e-i,3))):(this.v.setTripleAt(t+r,e-i+s,t+r,e-i+a,t+r,e-i+s,0,!0),0!==s?(this.v.setTripleAt(t+r-s,e-i,t+r-s,e-i,t+r-a,e-i,1,!0),this.v.setTripleAt(t-r+s,e-i,t-r+a,e-i,t-r+s,e-i,2,!0),this.v.setTripleAt(t-r,e-i+s,t-r,e-i+s,t-r,e-i+a,3,!0),this.v.setTripleAt(t-r,e+i-s,t-r,e+i-a,t-r,e+i-s,4,!0),this.v.setTripleAt(t-r+s,e+i,t-r+s,e+i,t-r+a,e+i,5,!0),this.v.setTripleAt(t+r-s,e+i,t+r-a,e+i,t+r-s,e+i,6,!0),this.v.setTripleAt(t+r,e+i-s,t+r,e+i-s,t+r,e+i-a,7,!0)):(this.v.setTripleAt(t-r,e-i,t-r+a,e-i,t-r,e-i,1,!0),this.v.setTripleAt(t-r,e+i,t-r,e+i-a,t-r,e+i,2,!0),this.v.setTripleAt(t+r,e+i,t+r-a,e+i,t+r,e+i,3,!0)))},getValue:function(t){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertRectToPath())},reset:a},extendPrototype([DynamicPropertyContainer],d),d);function d(t,e){this.v=shape_pool.newElement(),this.v.c=!0,this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.elem=t,this.comp=t.comp,this.frameId=-1,this.d=e.d,this.initDynamicPropertyContainer(t),this.p=PropertyFactory.getProp(t,e.p,1,0,this),this.s=PropertyFactory.getProp(t,e.s,1,0,this),this.r=PropertyFactory.getProp(t,e.r,0,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertRectToPath())}var u={getShapeProp:function(t,e,r){var i;return 3===r||4===r?i=(3===r?e.pt:e.ks).k.length?new o(t,e,r):new n(t,e,r):5===r?i=new c(t,e):6===r?i=new p(t,e):7===r&&(i=new m(t,e)),i.k&&t.addDynamicProperty(i),i},getConstructorFunction:function(){return n},getKeyframedConstructorFunction:function(){return o}};return u}(),ShapeModifiers=(Tr={},Ur={},Tr.registerModifier=function(t,e){Ur[t]||(Ur[t]=e)},Tr.getModifier=function(t,e,r){return new Ur[t](e,r)},Tr),Tr,Ur;function ShapeModifier(){}function TrimModifier(){}function RoundCornersModifier(){}function RepeaterModifier(){}function ShapeCollection(){this._length=0,this._maxLength=4,this.shapes=createSizedArray(this._maxLength)}function DashProperty(t,e,r,i){this.elem=t,this.frameId=-1,this.dataProps=createSizedArray(e.length),this.renderer=r,this.k=!1,this.dashStr="",this.dashArray=createTypedArray("float32",e.length?e.length-1:0),this.dashoffset=createTypedArray("float32",1),this.initDynamicPropertyContainer(i);var s,a,n=e.length||0;for(s=0;s<n;s+=1)a=PropertyFactory.getProp(t,e[s].v,0,0,this),this.k=a.k||this.k,this.dataProps[s]={n:e[s].n,p:a};this.k||this.getValue(!0),this._isAnimated=this.k}function GradientProperty(t,e,r){this.data=e,this.c=createTypedArray("uint8c",4*e.p);var i=e.k.k[0].s?e.k.k[0].s.length-4*e.p:e.k.k.length-4*e.p;this.o=createTypedArray("float32",i),this._cmdf=!1,this._omdf=!1,this._collapsable=this.checkCollapsable(),this._hasOpacity=i,this.initDynamicPropertyContainer(r),this.prop=PropertyFactory.getProp(t,e.k,1,null,this),this.k=this.prop.k,this.getValue(!0)}ShapeModifier.prototype.initModifierProperties=function(){},ShapeModifier.prototype.addShapeToModifier=function(){},ShapeModifier.prototype.addShape=function(t){if(!this.closed){var e={shape:t.sh,data:t,localShapeCollection:shapeCollection_pool.newShapeCollection()};this.shapes.push(e),this.addShapeToModifier(e),this._isAnimated&&t.setAsAnimated()}},ShapeModifier.prototype.init=function(t,e){this.shapes=[],this.elem=t,this.initDynamicPropertyContainer(t),this.initModifierProperties(t,e),this.frameId=initialDefaultFrame,this.closed=!1,this.k=!1,this.dynamicProperties.length?this.k=!0:this.getValue(!0)},ShapeModifier.prototype.processKeys=function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties())},extendPrototype([DynamicPropertyContainer],ShapeModifier),extendPrototype([ShapeModifier],TrimModifier),TrimModifier.prototype.initModifierProperties=function(t,e){this.s=PropertyFactory.getProp(t,e.s,0,.01,this),this.e=PropertyFactory.getProp(t,e.e,0,.01,this),this.o=PropertyFactory.getProp(t,e.o,0,0,this),this.sValue=0,this.eValue=0,this.getValue=this.processKeys,this.m=e.m,this._isAnimated=!!this.s.effectsSequence.length||!!this.e.effectsSequence.length||!!this.o.effectsSequence.length},TrimModifier.prototype.addShapeToModifier=function(t){t.pathsData=[]},TrimModifier.prototype.calculateShapeEdges=function(t,e,r,i,s){var a=[];e<=1?a.push({s:t,e:e}):1<=t?a.push({s:t-1,e:e-1}):(a.push({s:t,e:1}),a.push({s:0,e:e-1}));var n,o,h=[],p=a.length;for(n=0;n<p;n+=1){var l,m;if((o=a[n]).e*s<i||o.s*s>i+r);else l=o.s*s<=i?0:(o.s*s-i)/r,m=o.e*s>=i+r?1:(o.e*s-i)/r,h.push([l,m])}return h.length||h.push([0,0]),h},TrimModifier.prototype.releasePathsData=function(t){var e,r=t.length;for(e=0;e<r;e+=1)segments_length_pool.release(t[e]);return t.length=0,t},TrimModifier.prototype.processShapes=function(t){var e,r,i;if(this._mdf||t){var s=this.o.v%360/360;if(s<0&&(s+=1),e=(1<this.s.v?1:this.s.v<0?0:this.s.v)+s,(r=(1<this.e.v?1:this.e.v<0?0:this.e.v)+s)<e){var a=e;e=r,r=a}e=1e-4*Math.round(1e4*e),r=1e-4*Math.round(1e4*r),this.sValue=e,this.eValue=r}else e=this.sValue,r=this.eValue;var n,o,h,p,l,m,f=this.shapes.length,c=0;if(r===e)for(n=0;n<f;n+=1)this.shapes[n].localShapeCollection.releaseShapes(),this.shapes[n].shape._mdf=!0,this.shapes[n].shape.paths=this.shapes[n].localShapeCollection;else if(1===r&&0===e||0===r&&1===e){if(this._mdf)for(n=0;n<f;n+=1)this.shapes[n].pathsData.length=0,this.shapes[n].shape._mdf=!0}else{var d,u,y=[];for(n=0;n<f;n+=1)if((d=this.shapes[n]).shape._mdf||this._mdf||t||2===this.m){if(h=(i=d.shape.paths)._length,m=0,!d.shape._mdf&&d.pathsData.length)m=d.totalShapeLength;else{for(p=this.releasePathsData(d.pathsData),o=0;o<h;o+=1)l=bez.getSegmentsLength(i.shapes[o]),p.push(l),m+=l.totalLength;d.totalShapeLength=m,d.pathsData=p}c+=m,d.shape._mdf=!0}else d.shape.paths=d.localShapeCollection;var g,v=e,P=r,b=0;for(n=f-1;0<=n;n-=1)if((d=this.shapes[n]).shape._mdf){for((u=d.localShapeCollection).releaseShapes(),2===this.m&&1<f?(g=this.calculateShapeEdges(e,r,d.totalShapeLength,b,c),b+=d.totalShapeLength):g=[[v,P]],h=g.length,o=0;o<h;o+=1){v=g[o][0],P=g[o][1],y.length=0,P<=1?y.push({s:d.totalShapeLength*v,e:d.totalShapeLength*P}):1<=v?y.push({s:d.totalShapeLength*(v-1),e:d.totalShapeLength*(P-1)}):(y.push({s:d.totalShapeLength*v,e:d.totalShapeLength}),y.push({s:0,e:d.totalShapeLength*(P-1)}));var x=this.addShapes(d,y[0]);if(y[0].s!==y[0].e){if(1<y.length)if(d.shape.paths.shapes[d.shape.paths._length-1].c){var _=x.pop();this.addPaths(x,u),x=this.addShapes(d,y[1],_)}else this.addPaths(x,u),x=this.addShapes(d,y[1]);this.addPaths(x,u)}}d.shape.paths=u}}},TrimModifier.prototype.addPaths=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)e.addShape(t[r])},TrimModifier.prototype.addSegment=function(t,e,r,i,s,a,n){s.setXYAt(e[0],e[1],"o",a),s.setXYAt(r[0],r[1],"i",a+1),n&&s.setXYAt(t[0],t[1],"v",a),s.setXYAt(i[0],i[1],"v",a+1)},TrimModifier.prototype.addSegmentFromArray=function(t,e,r,i){e.setXYAt(t[1],t[5],"o",r),e.setXYAt(t[2],t[6],"i",r+1),i&&e.setXYAt(t[0],t[4],"v",r),e.setXYAt(t[3],t[7],"v",r+1)},TrimModifier.prototype.addShapes=function(t,e,r){var i,s,a,n,o,h,p,l,m=t.pathsData,f=t.shape.paths.shapes,c=t.shape.paths._length,d=0,u=[],y=!0;for(l=r?(o=r._length,r._length):(r=shape_pool.newElement(),o=0),u.push(r),i=0;i<c;i+=1){for(h=m[i].lengths,r.c=f[i].c,a=f[i].c?h.length:h.length+1,s=1;s<a;s+=1)if(d+(n=h[s-1]).addedLength<e.s)d+=n.addedLength,r.c=!1;else{if(d>e.e){r.c=!1;break}e.s<=d&&e.e>=d+n.addedLength?(this.addSegment(f[i].v[s-1],f[i].o[s-1],f[i].i[s],f[i].v[s],r,o,y),y=!1):(p=bez.getNewSegment(f[i].v[s-1],f[i].v[s],f[i].o[s-1],f[i].i[s],(e.s-d)/n.addedLength,(e.e-d)/n.addedLength,h[s-1]),this.addSegmentFromArray(p,r,o,y),y=!1,r.c=!1),d+=n.addedLength,o+=1}if(f[i].c&&h.length){if(n=h[s-1],d<=e.e){var g=h[s-1].addedLength;e.s<=d&&e.e>=d+g?(this.addSegment(f[i].v[s-1],f[i].o[s-1],f[i].i[0],f[i].v[0],r,o,y),y=!1):(p=bez.getNewSegment(f[i].v[s-1],f[i].v[0],f[i].o[s-1],f[i].i[0],(e.s-d)/g,(e.e-d)/g,h[s-1]),this.addSegmentFromArray(p,r,o,y),y=!1,r.c=!1)}else r.c=!1;d+=n.addedLength,o+=1}if(r._length&&(r.setXYAt(r.v[l][0],r.v[l][1],"i",l),r.setXYAt(r.v[r._length-1][0],r.v[r._length-1][1],"o",r._length-1)),d>e.e)break;i<c-1&&(r=shape_pool.newElement(),y=!0,u.push(r),o=0)}return u},ShapeModifiers.registerModifier("tm",TrimModifier),extendPrototype([ShapeModifier],RoundCornersModifier),RoundCornersModifier.prototype.initModifierProperties=function(t,e){this.getValue=this.processKeys,this.rd=PropertyFactory.getProp(t,e.r,0,null,this),this._isAnimated=!!this.rd.effectsSequence.length},RoundCornersModifier.prototype.processPath=function(t,e){var r=shape_pool.newElement();r.c=t.c;var i,s,a,n,o,h,p,l,m,f,c,d,u,y=t._length,g=0;for(i=0;i<y;i+=1)s=t.v[i],n=t.o[i],a=t.i[i],s[0]===n[0]&&s[1]===n[1]&&s[0]===a[0]&&s[1]===a[1]?0!==i&&i!==y-1||t.c?(o=0===i?t.v[y-1]:t.v[i-1],p=(h=Math.sqrt(Math.pow(s[0]-o[0],2)+Math.pow(s[1]-o[1],2)))?Math.min(h/2,e)/h:0,l=d=s[0]+(o[0]-s[0])*p,m=u=s[1]-(s[1]-o[1])*p,f=l-(l-s[0])*roundCorner,c=m-(m-s[1])*roundCorner,r.setTripleAt(l,m,f,c,d,u,g),g+=1,o=i===y-1?t.v[0]:t.v[i+1],p=(h=Math.sqrt(Math.pow(s[0]-o[0],2)+Math.pow(s[1]-o[1],2)))?Math.min(h/2,e)/h:0,l=f=s[0]+(o[0]-s[0])*p,m=c=s[1]+(o[1]-s[1])*p,d=l-(l-s[0])*roundCorner,u=m-(m-s[1])*roundCorner,r.setTripleAt(l,m,f,c,d,u,g)):r.setTripleAt(s[0],s[1],n[0],n[1],a[0],a[1],g):r.setTripleAt(t.v[i][0],t.v[i][1],t.o[i][0],t.o[i][1],t.i[i][0],t.i[i][1],g),g+=1;return r},RoundCornersModifier.prototype.processShapes=function(t){var e,r,i,s,a,n,o=this.shapes.length,h=this.rd.v;if(0!==h)for(r=0;r<o;r+=1){if((a=this.shapes[r]).shape.paths,n=a.localShapeCollection,a.shape._mdf||this._mdf||t)for(n.releaseShapes(),a.shape._mdf=!0,e=a.shape.paths.shapes,s=a.shape.paths._length,i=0;i<s;i+=1)n.addShape(this.processPath(e[i],h));a.shape.paths=a.localShapeCollection}this.dynamicProperties.length||(this._mdf=!1)},ShapeModifiers.registerModifier("rd",RoundCornersModifier),extendPrototype([ShapeModifier],RepeaterModifier),RepeaterModifier.prototype.initModifierProperties=function(t,e){this.getValue=this.processKeys,this.c=PropertyFactory.getProp(t,e.c,0,null,this),this.o=PropertyFactory.getProp(t,e.o,0,null,this),this.tr=TransformPropertyFactory.getTransformProperty(t,e.tr,this),this.so=PropertyFactory.getProp(t,e.tr.so,0,.01,this),this.eo=PropertyFactory.getProp(t,e.tr.eo,0,.01,this),this.data=e,this.dynamicProperties.length||this.getValue(!0),this._isAnimated=!!this.dynamicProperties.length,this.pMatrix=new Matrix,this.rMatrix=new Matrix,this.sMatrix=new Matrix,this.tMatrix=new Matrix,this.matrix=new Matrix},RepeaterModifier.prototype.applyTransforms=function(t,e,r,i,s,a){var n=a?-1:1,o=i.s.v[0]+(1-i.s.v[0])*(1-s),h=i.s.v[1]+(1-i.s.v[1])*(1-s);t.translate(i.p.v[0]*n*s,i.p.v[1]*n*s,i.p.v[2]),e.translate(-i.a.v[0],-i.a.v[1],i.a.v[2]),e.rotate(-i.r.v*n*s),e.translate(i.a.v[0],i.a.v[1],i.a.v[2]),r.translate(-i.a.v[0],-i.a.v[1],i.a.v[2]),r.scale(a?1/o:o,a?1/h:h),r.translate(i.a.v[0],i.a.v[1],i.a.v[2])},RepeaterModifier.prototype.init=function(t,e,r,i){this.elem=t,this.arr=e,this.pos=r,this.elemsData=i,this._currentCopies=0,this._elements=[],this._groups=[],this.frameId=-1,this.initDynamicPropertyContainer(t),this.initModifierProperties(t,e[r]);for(;0<r;)r-=1,this._elements.unshift(e[r]),1;this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(t){var e,r=t.length;for(e=0;e<r;e+=1)t[e]._processed=!1,"gr"===t[e].ty&&this.resetElements(t[e].it)},RepeaterModifier.prototype.cloneElements=function(t){t.length;var e=JSON.parse(JSON.stringify(t));return this.resetElements(e),e},RepeaterModifier.prototype.changeGroupRender=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)t[r]._render=e,"gr"===t[r].ty&&this.changeGroupRender(t[r].it,e)},RepeaterModifier.prototype.processShapes=function(t){var e,r,i,s,a;if(this._mdf||t){var n,o=Math.ceil(this.c.v);if(this._groups.length<o){for(;this._groups.length<o;){var h={it:this.cloneElements(this._elements),ty:"gr"};h.it.push({a:{a:0,ix:1,k:[0,0]},nm:"Transform",o:{a:0,ix:7,k:100},p:{a:0,ix:2,k:[0,0]},r:{a:1,ix:6,k:[{s:0,e:0,t:0},{s:0,e:0,t:1}]},s:{a:0,ix:3,k:[100,100]},sa:{a:0,ix:5,k:0},sk:{a:0,ix:4,k:0},ty:"tr"}),this.arr.splice(0,0,h),this._groups.splice(0,0,h),this._currentCopies+=1}this.elem.reloadShapes()}for(i=a=0;i<=this._groups.length-1;i+=1)n=a<o,this._groups[i]._render=n,this.changeGroupRender(this._groups[i].it,n),a+=1;this._currentCopies=o;var p=this.o.v,l=p%1,m=0<p?Math.floor(p):Math.ceil(p),f=(this.tr.v.props,this.pMatrix.props),c=this.rMatrix.props,d=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var u,y,g=0;if(0<p){for(;g<m;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),g+=1;l&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,l,!1),g+=l)}else if(p<0){for(;m<g;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),g-=1;l&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-l,!0),g-=l)}for(i=1===this.data.m?0:this._currentCopies-1,s=1===this.data.m?1:-1,a=this._currentCopies;a;){if(y=(r=(e=this.elemsData[i].it)[e.length-1].transform.mProps.v.props).length,e[e.length-1].transform.mProps._mdf=!0,e[e.length-1].transform.op._mdf=!0,e[e.length-1].transform.op.v=this.so.v+(this.eo.v-this.so.v)*(i/(this._currentCopies-1)),0!==g){for((0!==i&&1===s||i!==this._currentCopies-1&&-1===s)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15]),this.matrix.transform(d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15]),this.matrix.transform(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15]),u=0;u<y;u+=1)r[u]=this.matrix.props[u];this.matrix.reset()}else for(this.matrix.reset(),u=0;u<y;u+=1)r[u]=this.matrix.props[u];g+=1,a-=1,i+=s}}else for(a=this._currentCopies,i=0,s=1;a;)r=(e=this.elemsData[i].it)[e.length-1].transform.mProps.v.props,e[e.length-1].transform.mProps._mdf=!1,e[e.length-1].transform.op._mdf=!1,a-=1,i+=s},RepeaterModifier.prototype.addShape=function(){},ShapeModifiers.registerModifier("rp",RepeaterModifier),ShapeCollection.prototype.addShape=function(t){this._length===this._maxLength&&(this.shapes=this.shapes.concat(createSizedArray(this._maxLength)),this._maxLength*=2),this.shapes[this._length]=t,this._length+=1},ShapeCollection.prototype.releaseShapes=function(){var t;for(t=0;t<this._length;t+=1)shape_pool.release(this.shapes[t]);this._length=0},DashProperty.prototype.getValue=function(t){if((this.elem.globalData.frameId!==this.frameId||t)&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf=this._mdf||t,this._mdf)){var e=0,r=this.dataProps.length;for("svg"===this.renderer&&(this.dashStr=""),e=0;e<r;e+=1)"o"!=this.dataProps[e].n?"svg"===this.renderer?this.dashStr+=" "+this.dataProps[e].p.v:this.dashArray[e]=this.dataProps[e].p.v:this.dashoffset[0]=this.dataProps[e].p.v}},extendPrototype([DynamicPropertyContainer],DashProperty),GradientProperty.prototype.comparePoints=function(t,e){for(var r=0,i=this.o.length/2;r<i;){if(.01<Math.abs(t[4*r]-t[4*e+2*r]))return!1;r+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var t=0,e=this.data.k.k.length;t<e;){if(!this.comparePoints(this.data.k.k[t].s,this.data.p))return!1;t+=1}else if(!this.comparePoints(this.data.k.k,this.data.p))return!1;return!0},GradientProperty.prototype.getValue=function(t){if(this.prop.getValue(),this._mdf=!1,this._cmdf=!1,this._omdf=!1,this.prop._mdf||t){var e,r,i,s=4*this.data.p;for(e=0;e<s;e+=1)r=e%4==0?100:255,i=Math.round(this.prop.v[e]*r),this.c[e]!==i&&(this.c[e]=i,this._cmdf=!t);if(this.o.length)for(s=this.prop.v.length,e=4*this.data.p;e<s;e+=1)r=e%2==0?100:1,i=e%2==0?Math.round(100*this.prop.v[e]):this.prop.v[e],this.o[e-4*this.data.p]!==i&&(this.o[e-4*this.data.p]=i,this._omdf=!t);this._mdf=!t}},extendPrototype([DynamicPropertyContainer],GradientProperty);var buildShapeString=function(t,e,r,i){if(0===e)return"";var s,a=t.o,n=t.i,o=t.v,h=" M"+i.applyToPointStringified(o[0][0],o[0][1]);for(s=1;s<e;s+=1)h+=" C"+i.applyToPointStringified(a[s-1][0],a[s-1][1])+" "+i.applyToPointStringified(n[s][0],n[s][1])+" "+i.applyToPointStringified(o[s][0],o[s][1]);return r&&e&&(h+=" C"+i.applyToPointStringified(a[s-1][0],a[s-1][1])+" "+i.applyToPointStringified(n[0][0],n[0][1])+" "+i.applyToPointStringified(o[0][0],o[0][1]),h+="z"),h},ImagePreloader=function(){},featureSupport=(Iv={maskType:!0},(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(Iv.maskType=!1),Iv),Iv,filtersFactory=(Jv={},Jv.createFilter=function(t){var e=createNS("filter");return e.setAttribute("id",t),e.setAttribute("filterUnits","objectBoundingBox"),e.setAttribute("x","0%"),e.setAttribute("y","0%"),e.setAttribute("width","100%"),e.setAttribute("height","100%"),e},Jv.createAlphaToLuminanceFilter=function(){var t=createNS("feColorMatrix");return t.setAttribute("type","matrix"),t.setAttribute("color-interpolation-filters","sRGB"),t.setAttribute("values","0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1"),t},Jv),Jv,assetLoader={load:function(t,e,r){var i,s=new XMLHttpRequest;s.open("GET",t,!0);try{s.responseType="json"}catch(t){}s.send(),s.onreadystatechange=function(){if(4==s.readyState)if(200==s.status)i=Pv(s),e(i);else try{i=Pv(s),e(i)}catch(t){r&&r(t)}}}};function Pv(t){return t.response&&"object"==typeof t.response?t.response:t.response&&"string"==typeof t.response?JSON.parse(t.response):t.responseText?JSON.parse(t.responseText):void 0}var assetLoader=null;function TextAnimatorProperty(t,e,r){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=t,this._renderType=e,this._elem=r,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(r)}function TextAnimatorDataProperty(t,e,r){var i={propType:!1},s=PropertyFactory.getProp,a=e.a;this.a={r:a.r?s(t,a.r,0,degToRads,r):i,rx:a.rx?s(t,a.rx,0,degToRads,r):i,ry:a.ry?s(t,a.ry,0,degToRads,r):i,sk:a.sk?s(t,a.sk,0,degToRads,r):i,sa:a.sa?s(t,a.sa,0,degToRads,r):i,s:a.s?s(t,a.s,1,.01,r):i,a:a.a?s(t,a.a,1,0,r):i,o:a.o?s(t,a.o,0,.01,r):i,p:a.p?s(t,a.p,1,0,r):i,sw:a.sw?s(t,a.sw,0,0,r):i,sc:a.sc?s(t,a.sc,1,0,r):i,fc:a.fc?s(t,a.fc,1,0,r):i,fh:a.fh?s(t,a.fh,0,0,r):i,fs:a.fs?s(t,a.fs,0,.01,r):i,fb:a.fb?s(t,a.fb,0,.01,r):i,t:a.t?s(t,a.t,0,0,r):i},this.s=TextSelectorProp.getTextSelectorProp(t,e.s,r),this.s.t=e.s.t}function LetterProps(t,e,r,i,s,a){this.o=t,this.sw=e,this.sc=r,this.fc=i,this.m=s,this.p=a,this._mdf={o:!0,sw:!!e,sc:!!r,fc:!!i,m:!0,p:!0}}function TextProperty(t,e){this._frameId=initialDefaultFrame,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,this.data=e,this.elem=t,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}TextAnimatorProperty.prototype.searchProperties=function(){var t,e,r=this._textData.a.length,i=PropertyFactory.getProp;for(t=0;t<r;t+=1)e=this._textData.a[t],this._animatorsData[t]=new TextAnimatorDataProperty(this._elem,e,this);this._textData.p&&"m"in this._textData.p?(this._pathData={f:i(this._elem,this._textData.p.f,0,0,this),l:i(this._elem,this._textData.p.l,0,0,this),r:this._textData.p.r,m:this._elem.maskManager.getMaskProperty(this._textData.p.m)},this._hasMaskedPath=!0):this._hasMaskedPath=!1,this._moreOptions.alignment=i(this._elem,this._textData.m.a,1,0,this)},TextAnimatorProperty.prototype.getMeasures=function(t,e){if(this.lettersChangedFlag=e,this._mdf||this._isFirstFrame||e||this._hasMaskedPath&&this._pathData.m._mdf){this._isFirstFrame=!1;var r,i,s,a,n,o,h,p,l,m,f,c,d,u,y,g,v,P,b,x=this._moreOptions.alignment.v,_=this._animatorsData,S=this._textData,T=this.mHelper,A=this._renderType,E=this.renderedLetters.length,C=(this.data,t.l);if(this._hasMaskedPath){if(b=this._pathData.m,!this._pathData.n||this._pathData._mdf){var k,D=b.v;for(this._pathData.r&&(D=D.reverse()),n={tLength:0,segments:[]},a=D._length-1,s=g=0;s<a;s+=1)k=bez.buildBezierData(D.v[s],D.v[s+1],[D.o[s][0]-D.v[s][0],D.o[s][1]-D.v[s][1]],[D.i[s+1][0]-D.v[s+1][0],D.i[s+1][1]-D.v[s+1][1]]),n.tLength+=k.segmentLength,n.segments.push(k),g+=k.segmentLength;s=a,b.v.c&&(k=bez.buildBezierData(D.v[s],D.v[0],[D.o[s][0]-D.v[s][0],D.o[s][1]-D.v[s][1]],[D.i[0][0]-D.v[0][0],D.i[0][1]-D.v[0][1]]),n.tLength+=k.segmentLength,n.segments.push(k),g+=k.segmentLength),this._pathData.pi=n}if(n=this._pathData.pi,o=this._pathData.f.v,m=1,l=!(p=f=0),u=n.segments,o<0&&b.v.c)for(n.tLength<Math.abs(o)&&(o=-Math.abs(o)%n.tLength),m=(d=u[f=u.length-1].points).length-1;o<0;)o+=d[m].partialLength,(m-=1)<0&&(m=(d=u[f-=1].points).length-1);c=(d=u[f].points)[m-1],y=(h=d[m]).partialLength}a=C.length,i=r=0;var I,M,w,F,V=1.2*t.finalSize*.714,R=!0;w=_.length;var L,z,O,B,N,G,j,J,K,q,H,W,Y,X=-1,Q=o,$=f,U=m,Z=-1,tt="",et=this.defaultPropsArray;if(2===t.j||1===t.j){var rt=0,it=0,st=2===t.j?-.5:-1,at=0,nt=!0;for(s=0;s<a;s+=1)if(C[s].n){for(rt&&(rt+=it);at<s;)C[at].animatorJustifyOffset=rt,at+=1;nt=!(rt=0)}else{for(M=0;M<w;M+=1)(I=_[M].a).t.propType&&(nt&&2===t.j&&(it+=I.t.v*st),(L=_[M].s.getMult(C[s].anIndexes[M],S.a[M].s.totalChars)).length?rt+=I.t.v*L[0]*st:rt+=I.t.v*L*st);nt=!1}for(rt&&(rt+=it);at<s;)C[at].animatorJustifyOffset=rt,at+=1}for(s=0;s<a;s+=1){if(T.reset(),N=1,C[s].n)r=0,i+=t.yOffset,i+=R?1:0,o=Q,R=!1,0,this._hasMaskedPath&&(m=U,c=(d=u[f=$].points)[m-1],y=(h=d[m]).partialLength,p=0),Y=q=W=tt="",et=this.defaultPropsArray;else{if(this._hasMaskedPath){if(Z!==C[s].line){switch(t.j){case 1:o+=g-t.lineWidths[C[s].line];break;case 2:o+=(g-t.lineWidths[C[s].line])/2}Z=C[s].line}X!==C[s].ind&&(C[X]&&(o+=C[X].extra),o+=C[s].an/2,X=C[s].ind),o+=x[0]*C[s].an/200;var ot=0;for(M=0;M<w;M+=1)(I=_[M].a).p.propType&&((L=_[M].s.getMult(C[s].anIndexes[M],S.a[M].s.totalChars)).length?ot+=I.p.v[0]*L[0]:ot+=I.p.v[0]*L),I.a.propType&&((L=_[M].s.getMult(C[s].anIndexes[M],S.a[M].s.totalChars)).length?ot+=I.a.v[0]*L[0]:ot+=I.a.v[0]*L);for(l=!0;l;)o+ot<=p+y||!d?(v=(o+ot-p)/h.partialLength,O=c.point[0]+(h.point[0]-c.point[0])*v,B=c.point[1]+(h.point[1]-c.point[1])*v,T.translate(-x[0]*C[s].an/200,-x[1]*V/100),l=!1):d&&(p+=h.partialLength,(m+=1)>=d.length&&(m=0,d=u[f+=1]?u[f].points:b.v.c?u[f=m=0].points:(p-=h.partialLength,null)),d&&(c=h,y=(h=d[m]).partialLength));z=C[s].an/2-C[s].add,T.translate(-z,0,0)}else z=C[s].an/2-C[s].add,T.translate(-z,0,0),T.translate(-x[0]*C[s].an/200,-x[1]*V/100,0);for(C[s].l/2,M=0;M<w;M+=1)(I=_[M].a).t.propType&&(L=_[M].s.getMult(C[s].anIndexes[M],S.a[M].s.totalChars),0===r&&0===t.j||(this._hasMaskedPath?L.length?o+=I.t.v*L[0]:o+=I.t.v*L:L.length?r+=I.t.v*L[0]:r+=I.t.v*L));for(C[s].l/2,t.strokeWidthAnim&&(j=t.sw||0),t.strokeColorAnim&&(G=t.sc?[t.sc[0],t.sc[1],t.sc[2]]:[0,0,0]),t.fillColorAnim&&t.fc&&(J=[t.fc[0],t.fc[1],t.fc[2]]),M=0;M<w;M+=1)(I=_[M].a).a.propType&&((L=_[M].s.getMult(C[s].anIndexes[M],S.a[M].s.totalChars)).length?T.translate(-I.a.v[0]*L[0],-I.a.v[1]*L[1],I.a.v[2]*L[2]):T.translate(-I.a.v[0]*L,-I.a.v[1]*L,I.a.v[2]*L));for(M=0;M<w;M+=1)(I=_[M].a).s.propType&&((L=_[M].s.getMult(C[s].anIndexes[M],S.a[M].s.totalChars)).length?T.scale(1+(I.s.v[0]-1)*L[0],1+(I.s.v[1]-1)*L[1],1):T.scale(1+(I.s.v[0]-1)*L,1+(I.s.v[1]-1)*L,1));for(M=0;M<w;M+=1){if(I=_[M].a,L=_[M].s.getMult(C[s].anIndexes[M],S.a[M].s.totalChars),I.sk.propType&&(L.length?T.skewFromAxis(-I.sk.v*L[0],I.sa.v*L[1]):T.skewFromAxis(-I.sk.v*L,I.sa.v*L)),I.r.propType&&(L.length?T.rotateZ(-I.r.v*L[2]):T.rotateZ(-I.r.v*L)),I.ry.propType&&(L.length?T.rotateY(I.ry.v*L[1]):T.rotateY(I.ry.v*L)),I.rx.propType&&(L.length?T.rotateX(I.rx.v*L[0]):T.rotateX(I.rx.v*L)),I.o.propType&&(L.length?N+=(I.o.v*L[0]-N)*L[0]:N+=(I.o.v*L-N)*L),t.strokeWidthAnim&&I.sw.propType&&(L.length?j+=I.sw.v*L[0]:j+=I.sw.v*L),t.strokeColorAnim&&I.sc.propType)for(K=0;K<3;K+=1)L.length?G[K]=G[K]+(I.sc.v[K]-G[K])*L[0]:G[K]=G[K]+(I.sc.v[K]-G[K])*L;if(t.fillColorAnim&&t.fc){if(I.fc.propType)for(K=0;K<3;K+=1)L.length?J[K]=J[K]+(I.fc.v[K]-J[K])*L[0]:J[K]=J[K]+(I.fc.v[K]-J[K])*L;I.fh.propType&&(J=L.length?addHueToRGB(J,I.fh.v*L[0]):addHueToRGB(J,I.fh.v*L)),I.fs.propType&&(J=L.length?addSaturationToRGB(J,I.fs.v*L[0]):addSaturationToRGB(J,I.fs.v*L)),I.fb.propType&&(J=L.length?addBrightnessToRGB(J,I.fb.v*L[0]):addBrightnessToRGB(J,I.fb.v*L))}}for(M=0;M<w;M+=1)(I=_[M].a).p.propType&&(L=_[M].s.getMult(C[s].anIndexes[M],S.a[M].s.totalChars),this._hasMaskedPath?L.length?T.translate(0,I.p.v[1]*L[0],-I.p.v[2]*L[1]):T.translate(0,I.p.v[1]*L,-I.p.v[2]*L):L.length?T.translate(I.p.v[0]*L[0],I.p.v[1]*L[1],-I.p.v[2]*L[2]):T.translate(I.p.v[0]*L,I.p.v[1]*L,-I.p.v[2]*L));if(t.strokeWidthAnim&&(q=j<0?0:j),t.strokeColorAnim&&(H="rgb("+Math.round(255*G[0])+","+Math.round(255*G[1])+","+Math.round(255*G[2])+")"),t.fillColorAnim&&t.fc&&(W="rgb("+Math.round(255*J[0])+","+Math.round(255*J[1])+","+Math.round(255*J[2])+")"),this._hasMaskedPath){if(T.translate(0,-t.ls),T.translate(0,x[1]*V/100+i,0),S.p.p){P=(h.point[1]-c.point[1])/(h.point[0]-c.point[0]);var ht=180*Math.atan(P)/Math.PI;h.point[0]<c.point[0]&&(ht+=180),T.rotate(-ht*Math.PI/180)}T.translate(O,B,0),o-=x[0]*C[s].an/200,C[s+1]&&X!==C[s+1].ind&&(o+=C[s].an/2,o+=t.tr/1e3*t.finalSize)}else{switch(T.translate(r,i,0),t.ps&&T.translate(t.ps[0],t.ps[1]+t.ascent,0),t.j){case 1:T.translate(C[s].animatorJustifyOffset+t.justifyOffset+(t.boxWidth-t.lineWidths[C[s].line]),0,0);break;case 2:T.translate(C[s].animatorJustifyOffset+t.justifyOffset+(t.boxWidth-t.lineWidths[C[s].line])/2,0,0)}T.translate(0,-t.ls),T.translate(z,0,0),T.translate(x[0]*C[s].an/200,x[1]*V/100,0),r+=C[s].l+t.tr/1e3*t.finalSize}"html"===A?tt=T.toCSS():"svg"===A?tt=T.to2dCSS():et=[T.props[0],T.props[1],T.props[2],T.props[3],T.props[4],T.props[5],T.props[6],T.props[7],T.props[8],T.props[9],T.props[10],T.props[11],T.props[12],T.props[13],T.props[14],T.props[15]],Y=N}E<=s?(F=new LetterProps(Y,q,H,W,tt,et),this.renderedLetters.push(F),E+=1,this.lettersChangedFlag=!0):(F=this.renderedLetters[s],this.lettersChangedFlag=F.update(Y,q,H,W,tt,et)||this.lettersChangedFlag)}}},TextAnimatorProperty.prototype.getValue=function(){this._elem.globalData.frameId!==this._frameId&&(this._frameId=this._elem.globalData.frameId,this.iterateDynamicProperties())},TextAnimatorProperty.prototype.mHelper=new Matrix,TextAnimatorProperty.prototype.defaultPropsArray=[],extendPrototype([DynamicPropertyContainer],TextAnimatorProperty),LetterProps.prototype.update=function(t,e,r,i,s,a){this._mdf.o=!1,this._mdf.sw=!1,this._mdf.sc=!1,this._mdf.fc=!1,this._mdf.m=!1;var n=this._mdf.p=!1;return this.o!==t&&(this.o=t,n=this._mdf.o=!0),this.sw!==e&&(this.sw=e,n=this._mdf.sw=!0),this.sc!==r&&(this.sc=r,n=this._mdf.sc=!0),this.fc!==i&&(this.fc=i,n=this._mdf.fc=!0),this.m!==s&&(this.m=s,n=this._mdf.m=!0),!a.length||this.p[0]===a[0]&&this.p[1]===a[1]&&this.p[4]===a[4]&&this.p[5]===a[5]&&this.p[12]===a[12]&&this.p[13]===a[13]||(this.p=a,n=this._mdf.p=!0),n},TextProperty.prototype.defaultBoxWidth=[0,0],TextProperty.prototype.copyData=function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},TextProperty.prototype.setCurrentData=function(t){t.__complete||this.completeTextData(t),this.currentData=t,this.currentData.boxWidth=this.currentData.boxWidth||this.defaultBoxWidth,this._mdf=!0},TextProperty.prototype.searchProperty=function(){return this.searchKeyframes()},TextProperty.prototype.searchKeyframes=function(){return this.kf=1<this.data.d.k.length,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(t){this.effectsSequence.push(t),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(t){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||t){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var e=this.currentData,r=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{this.lock=!0,this._mdf=!1;var i,s=this.effectsSequence.length,a=t||this.data.d.k[this.keysIndex].s;for(i=0;i<s;i+=1)a=r!==this.keysIndex?this.effectsSequence[i](a,a.t):this.effectsSequence[i](this.currentData,a.t);e!==a&&this.setCurrentData(a),this.pv=this.v=this.currentData,this.lock=!1,this.frameId=this.elem.globalData.frameId}}},TextProperty.prototype.getKeyframeValue=function(){for(var t=this.data.d.k,e=this.elem.comp.renderedFrame,r=0,i=t.length;r<=i-1&&(t[r].s,!(r===i-1||t[r+1].t>e));)r+=1;return this.keysIndex!==r&&(this.keysIndex=r),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(t){for(var e=FontManager.getCombinedCharacterCodes(),r=[],i=0,s=t.length;i<s;)-1!==e.indexOf(t.charCodeAt(i))?r[r.length-1]+=t.charAt(i):r.push(t.charAt(i)),i+=1;return r},TextProperty.prototype.completeTextData=function(t){t.__complete=!0;var e,r,i,s,a,n,o,h=this.elem.globalData.fontManager,p=this.data,l=[],m=0,f=p.m.g,c=0,d=0,u=0,y=[],g=0,v=0,P=h.getFontByName(t.f),b=0,x=P.fStyle?P.fStyle.split(" "):[],_="normal",S="normal";for(r=x.length,e=0;e<r;e+=1)switch(x[e].toLowerCase()){case"italic":S="italic";break;case"bold":_="700";break;case"black":_="900";break;case"medium":_="500";break;case"regular":case"normal":_="400";break;case"light":case"thin":_="200"}t.fWeight=P.fWeight||_,t.fStyle=S,r=t.t.length,t.finalSize=t.s,t.finalText=this.buildFinalText(t.t),t.finalLineHeight=t.lh;var T,A=t.tr/1e3*t.finalSize;if(t.sz)for(var E,C,k=!0,D=t.sz[0],I=t.sz[1];k;){g=E=0,r=(C=this.buildFinalText(t.t)).length,A=t.tr/1e3*t.finalSize;var M=-1;for(e=0;e<r;e+=1)T=C[e].charCodeAt(0),i=!1," "===C[e]?M=e:13!==T&&3!==T||(i=!(g=0),E+=t.finalLineHeight||1.2*t.finalSize),D<g+(b=h.chars?(o=h.getCharData(C[e],P.fStyle,P.fFamily),i?0:o.w*t.finalSize/100):h.measureText(C[e],t.f,t.finalSize))&&" "!==C[e]?(-1===M?r+=1:e=M,E+=t.finalLineHeight||1.2*t.finalSize,C.splice(e,M===e?1:0,"\r"),M=-1,g=0):(g+=b,g+=A);E+=P.ascent*t.finalSize/100,this.canResize&&t.finalSize>this.minimumFontSize&&I<E?(t.finalSize-=1,t.finalLineHeight=t.finalSize*t.lh/t.s):(t.finalText=C,r=t.finalText.length,k=!1)}g=-A;var w,F=b=0;for(e=0;e<r;e+=1)if(i=!1,T=(w=t.finalText[e]).charCodeAt(0)," "===w?s="\xa0":13===T||3===T?(F=0,y.push(g),v=v<g?g:v,g=-2*A,i=!(s=""),u+=1):s=t.finalText[e],b=h.chars?(o=h.getCharData(w,P.fStyle,h.getFontByName(t.f).fFamily),i?0:o.w*t.finalSize/100):h.measureText(s,t.f,t.finalSize)," "===w?F+=b+A:(g+=b+A+F,F=0),l.push({l:b,an:b,add:c,n:i,anIndexes:[],val:s,line:u,animatorJustifyOffset:0}),2==f){if(c+=b,""===s||"\xa0"===s||e===r-1){for(""!==s&&"\xa0"!==s||(c-=b);d<=e;)l[d].an=c,l[d].ind=m,l[d].extra=b,d+=1;m+=1,c=0}}else if(3==f){if(c+=b,""===s||e===r-1){for(""===s&&(c-=b);d<=e;)l[d].an=c,l[d].ind=m,l[d].extra=b,d+=1;c=0,m+=1}}else l[m].ind=m,l[m].extra=0,m+=1;if(t.l=l,v=v<g?g:v,y.push(g),t.sz)t.boxWidth=t.sz[0],t.justifyOffset=0;else switch(t.boxWidth=v,t.j){case 1:t.justifyOffset=-t.boxWidth;break;case 2:t.justifyOffset=-t.boxWidth/2;break;default:t.justifyOffset=0}t.lineWidths=y;var V,R,L=p.a;n=L.length;var z,O,B=[];for(a=0;a<n;a+=1){for((V=L[a]).a.sc&&(t.strokeColorAnim=!0),V.a.sw&&(t.strokeWidthAnim=!0),(V.a.fc||V.a.fh||V.a.fs||V.a.fb)&&(t.fillColorAnim=!0),O=0,z=V.s.b,e=0;e<r;e+=1)(R=l[e]).anIndexes[a]=O,(1==z&&""!==R.val||2==z&&""!==R.val&&"\xa0"!==R.val||3==z&&(R.n||"\xa0"==R.val||e==r-1)||4==z&&(R.n||e==r-1))&&(1===V.s.rn&&B.push(O),O+=1);p.a[a].s.totalChars=O;var N,G=-1;if(1===V.s.rn)for(e=0;e<r;e+=1)G!=(R=l[e]).anIndexes[a]&&(G=R.anIndexes[a],N=B.splice(Math.floor(Math.random()*B.length),1)[0]),R.anIndexes[a]=N}t.yOffset=t.finalLineHeight||1.2*t.finalSize,t.ls=t.ls||0,t.ascent=P.ascent*t.finalSize/100},TextProperty.prototype.updateDocumentData=function(t,e){e=void 0===e?this.keysIndex:e;var r=this.copyData({},this.data.d.k[e].s);r=this.copyData(r,t),this.data.d.k[e].s=r,this.recalculate(e),this.elem.addDynamicProperty(this)},TextProperty.prototype.recalculate=function(t){var e=this.data.d.k[t].s;e.__complete=!1,this.keysIndex=0,this._isFirstFrame=!0,this.getValue(e)},TextProperty.prototype.canResizeFont=function(t){this.canResize=t,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)},TextProperty.prototype.setMinimumFontSize=function(t){this.minimumFontSize=Math.floor(t)||1,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)};var TextSelectorProp=(cz=Math.max,dz=Math.min,ez=Math.floor,fz.prototype={getMult:function(t){this._currentTextLength!==this.elem.textProperty.currentData.l.length&&this.getValue();var e=BezierFactory.getBezierEasing(this.ne.v/100,0,1-this.xe.v/100,1).get,r=0,i=this.finalS,s=this.finalE,a=this.data.sh;if(2==a)r=e(r=s===i?s<=t?1:0:cz(0,dz(.5/(s-i)+(t-i)/(s-i),1)));else if(3==a)r=e(r=s===i?s<=t?0:1:1-cz(0,dz(.5/(s-i)+(t-i)/(s-i),1)));else if(4==a)s===i?r=0:(r=cz(0,dz(.5/(s-i)+(t-i)/(s-i),1)))<.5?r*=2:r=1-2*(r-.5),r=e(r);else if(5==a){if(s===i)r=0;else{var n=s-i,o=-n/2+(t=dz(cz(0,t+.5-i),s-i)),h=n/2;r=Math.sqrt(1-o*o/(h*h))}r=e(r)}else r=6==a?e(r=s===i?0:(t=dz(cz(0,t+.5-i),s-i),(1+Math.cos(Math.PI+2*Math.PI*t/(s-i)))/2)):(t>=ez(i)&&(r=t-i<0?1-(i-t):cz(0,dz(s-t,1))),e(r));return r*this.a.v},getValue:function(t){this.iterateDynamicProperties(),this._mdf=t||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,t&&2===this.data.r&&(this.e.v=this._currentTextLength);var e=2===this.data.r?1:100/this.data.totalChars,r=this.o.v/e,i=this.s.v/e+r,s=this.e.v/e+r;if(s<i){var a=i;i=s,s=a}this.finalS=i,this.finalE=s}},extendPrototype([DynamicPropertyContainer],fz),{getTextSelectorProp:function(t,e,r){return new fz(t,e,r)}}),cz,dz,ez;function fz(t,e){this._currentTextLength=-1,this.k=!1,this.data=e,this.elem=t,this.comp=t.comp,this.finalS=0,this.finalE=0,this.initDynamicPropertyContainer(t),this.s=PropertyFactory.getProp(t,e.s||{k:0},0,0,this),this.e="e"in e?PropertyFactory.getProp(t,e.e,0,0,this):{v:100},this.o=PropertyFactory.getProp(t,e.o||{k:0},0,0,this),this.xe=PropertyFactory.getProp(t,e.xe||{k:0},0,0,this),this.ne=PropertyFactory.getProp(t,e.ne||{k:0},0,0,this),this.a=PropertyFactory.getProp(t,e.a,0,.01,this),this.dynamicProperties.length||this.getValue()}var pool_factory=function(t,e,r,i){var s=0,a=t,n=createSizedArray(a);function o(){return s?n[s-=1]:e()}return{newElement:o,release:function(t){s===a&&(n=pooling.double(n),a*=2),r&&r(t),n[s]=t,s+=1}}},pooling={double:function(t){return t.concat(createSizedArray(t.length))}},point_pool=pool_factory(8,function(){return createTypedArray("float32",2)}),shape_pool=(Vz=pool_factory(4,function(){return new ShapePath},function(t){var e,r=t._length;for(e=0;e<r;e+=1)point_pool.release(t.v[e]),point_pool.release(t.i[e]),point_pool.release(t.o[e]),t.v[e]=null,t.i[e]=null,t.o[e]=null;t._length=0,t.c=!1}),Vz.clone=function(t){var e,r=Vz.newElement(),i=void 0===t._length?t.v.length:t._length;for(r.setLength(i),r.c=t.c,e=0;e<i;e+=1)r.setTripleAt(t.v[e][0],t.v[e][1],t.o[e][0],t.o[e][1],t.i[e][0],t.i[e][1],e);return r},Vz),Vz,shapeCollection_pool=(cA={newShapeCollection:function(){var t;t=dA?fA[dA-=1]:new ShapeCollection;return t},release:function(t){var e,r=t._length;for(e=0;e<r;e+=1)shape_pool.release(t.shapes[e]);t._length=0,dA===eA&&(fA=pooling.double(fA),eA*=2);fA[dA]=t,dA+=1}},dA=0,eA=4,fA=createSizedArray(eA),cA),cA,dA,eA,fA,segments_length_pool=pool_factory(8,function(){return{lengths:[],totalLength:0}},function(t){var e,r=t.lengths.length;for(e=0;e<r;e+=1)bezier_length_pool.release(t.lengths[e]);t.lengths.length=0}),bezier_length_pool=pool_factory(8,function(){return{addedLength:0,percents:createTypedArray("float32",defaultCurveSegments),lengths:createTypedArray("float32",defaultCurveSegments)}});function BaseRenderer(){}function SVGRenderer(t,e){this.animationItem=t,this.layers=null,this.renderedFrame=-1,this.svgElement=createNS("svg");var r="";if(e&&e.title){var i=createNS("title"),s=createElementID();i.setAttribute("id",s),i.textContent=e.title,this.svgElement.appendChild(i),r+=s}if(e&&e.description){var a=createNS("desc"),n=createElementID();a.setAttribute("id",n),a.textContent=e.description,this.svgElement.appendChild(a),r+=" "+n}r&&this.svgElement.setAttribute("aria-labelledby",r);var o=createNS("defs");this.svgElement.appendChild(o);var h=createNS("g");this.svgElement.appendChild(h),this.layerElement=h,this.renderConfig={preserveAspectRatio:e&&e.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",progressiveLoad:e&&e.progressiveLoad||!1,hideOnTransparent:!e||!1!==e.hideOnTransparent,viewBoxOnly:e&&e.viewBoxOnly||!1,viewBoxSize:e&&e.viewBoxSize||!1,className:e&&e.className||""},this.globalData={_mdf:!1,frameNum:-1,defs:o,renderConfig:this.renderConfig},this.elements=[],this.pendingElements=[],this.destroyed=!1,this.rendererType="svg"}function CanvasRenderer(t,e){this.animationItem=t,this.renderConfig={clearCanvas:!e||void 0===e.clearCanvas||e.clearCanvas,context:e&&e.context||null,progressiveLoad:e&&e.progressiveLoad||!1,preserveAspectRatio:e&&e.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",className:e&&e.className||""},this.renderConfig.dpr=e&&e.dpr||1,this.animationItem.wrapper&&(this.renderConfig.dpr=e&&e.dpr||window.devicePixelRatio||1),this.renderedFrame=-1,this.globalData={frameNum:-1,_mdf:!1,renderConfig:this.renderConfig,currentGlobalAlpha:-1},this.contextData=new CVContextData,this.elements=[],this.pendingElements=[],this.transformMat=new Matrix,this.completeLayers=!1,this.rendererType="canvas"}function MaskElement(t,e,r){this.data=t,this.element=e,this.globalData=r,this.storedData=[],this.masksProperties=this.data.masksProperties||[],this.maskElement=null;var i,s=this.globalData.defs,a=this.masksProperties?this.masksProperties.length:0;this.viewData=createSizedArray(a),this.solidPath="";var n,o,h,p,l,m,f,c=this.masksProperties,d=0,u=[],y=createElementID(),g="clipPath",v="clip-path";for(i=0;i<a;i++)if(("a"!==c[i].mode&&"n"!==c[i].mode||c[i].inv||100!==c[i].o.k)&&(v=g="mask"),"s"!=c[i].mode&&"i"!=c[i].mode||0!==d?p=null:((p=createNS("rect")).setAttribute("fill","#ffffff"),p.setAttribute("width",this.element.comp.data.w||0),p.setAttribute("height",this.element.comp.data.h||0),u.push(p)),n=createNS("path"),"n"!=c[i].mode){var P;if(d+=1,n.setAttribute("fill","s"===c[i].mode?"#000000":"#ffffff"),n.setAttribute("clip-rule","nonzero"),0!==c[i].x.k?(v=g="mask",f=PropertyFactory.getProp(this.element,c[i].x,0,null,this.element),P=createElementID(),(l=createNS("filter")).setAttribute("id",P),(m=createNS("feMorphology")).setAttribute("operator","erode"),m.setAttribute("in","SourceGraphic"),m.setAttribute("radius","0"),l.appendChild(m),s.appendChild(l),n.setAttribute("stroke","s"===c[i].mode?"#000000":"#ffffff")):f=m=null,this.storedData[i]={elem:n,x:f,expan:m,lastPath:"",lastOperator:"",filterId:P,lastRadius:0},"i"==c[i].mode){h=u.length;var b=createNS("g");for(o=0;o<h;o+=1)b.appendChild(u[o]);var x=createNS("mask");x.setAttribute("mask-type","alpha"),x.setAttribute("id",y+"_"+d),x.appendChild(n),s.appendChild(x),b.setAttribute("mask","url("+locationHref+"#"+y+"_"+d+")"),u.length=0,u.push(b)}else u.push(n);c[i].inv&&!this.solidPath&&(this.solidPath=this.createLayerSolidPath()),this.viewData[i]={elem:n,lastPath:"",op:PropertyFactory.getProp(this.element,c[i].o,0,.01,this.element),prop:ShapePropertyFactory.getShapeProp(this.element,c[i],3),invRect:p},this.viewData[i].prop.k||this.drawPath(c[i],this.viewData[i].prop.v,this.viewData[i])}else this.viewData[i]={op:PropertyFactory.getProp(this.element,c[i].o,0,.01,this.element),prop:ShapePropertyFactory.getShapeProp(this.element,c[i],3),elem:n,lastPath:""},s.appendChild(n);for(this.maskElement=createNS(g),a=u.length,i=0;i<a;i+=1)this.maskElement.appendChild(u[i]);0<d&&(this.maskElement.setAttribute("id",y),this.element.maskedElement.setAttribute(v,"url("+locationHref+"#"+y+")"),s.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}function HierarchyElement(){}function FrameElement(){}function TransformElement(){}function RenderableElement(){}function RenderableDOMElement(){}function ProcessedElement(t,e){this.elem=t,this.pos=e}function SVGShapeData(t,e,r){this.caches=[],this.styles=[],this.transformers=t,this.lStr="",this.sh=r,this.lvl=e,this._isAnimated=!!r.k;for(var i=0,s=t.length;i<s;){if(t[i].mProps.dynamicProperties.length){this._isAnimated=!0;break}i+=1}}function ShapeGroupData(){this.it=[],this.prevViewData=[],this.gr=createNS("g")}function ShapeTransformManager(){this.sequences={},this.sequenceList=[],this.transform_key_count=0}function CVShapeData(t,e,r,i){this.styledShapes=[],this.tr=[0,0,0,0,0,0];var s=4;"rc"==e.ty?s=5:"el"==e.ty?s=6:"sr"==e.ty&&(s=7),this.sh=ShapePropertyFactory.getShapeProp(t,e,s,t);var a,n,o=r.length;for(a=0;a<o;a+=1)r[a].closed||(n={transforms:i.addTransformSequence(r[a].transforms),trNodes:[]},this.styledShapes.push(n),r[a].elements.push(n))}function BaseElement(){}function NullElement(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initFrame(),this.initTransform(t,e,r),this.initHierarchy()}function SVGBaseElement(){}function IShapeElement(){}function ITextElement(){}function ICompElement(){}function IImageElement(t,e,r){this.assetData=e.getAssetData(t.refId),this.initElement(t,e,r),this.sourceRect={top:0,left:0,width:this.assetData.w,height:this.assetData.h}}function ISolidElement(t,e,r){this.initElement(t,e,r)}function SVGShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(t,e,r),this.prevViewData=[]}function CVContextData(){this.saved=[],this.cArrPos=0,this.cTr=new Matrix,this.cO=1;var t;for(this.savedOp=createTypedArray("float32",15),t=0;t<15;t+=1)this.saved[t]=createTypedArray("float32",16);this._length=15}function CVBaseElement(){}function CVCompElement(t,e,r){this.completeLayers=!1,this.layers=t.layers,this.pendingElements=[],this.elements=createSizedArray(this.layers.length),this.initElement(t,e,r),this.tm=t.tm?PropertyFactory.getProp(this,t.tm,0,e.frameRate,this):{_placeholder:!0}}function CVMaskElement(t,e){this.data=t,this.element=e,this.masksProperties=this.data.masksProperties||[],this.viewData=createSizedArray(this.masksProperties.length);var r,i=this.masksProperties.length,s=!1;for(r=0;r<i;r++)"n"!==this.masksProperties[r].mode&&(s=!0),this.viewData[r]=ShapePropertyFactory.getShapeProp(this.element,this.masksProperties[r],3);(this.hasMasks=s)&&this.element.addRenderableComponent(this)}function CVShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.itemsData=[],this.prevViewData=[],this.shapeModifiers=[],this.processedElements=[],this.transformsManager=new ShapeTransformManager,this.initElement(t,e,r)}function CVSolidElement(t,e,r){this.initElement(t,e,r)}function CVEffects(){}BaseRenderer.prototype.checkLayers=function(t){var e,r,i=this.layers.length;for(this.completeLayers=!0,e=i-1;0<=e;e--)this.elements[e]||(r=this.layers[e]).ip-r.st<=t-this.layers[e].st&&r.op-r.st>t-this.layers[e].st&&this.buildItem(e),this.completeLayers=!!this.elements[e]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(t){switch(t.ty){case 2:return this.createImage(t);case 0:return this.createComp(t);case 1:return this.createSolid(t);case 3:return this.createNull(t);case 4:return this.createShape(t);case 5:return this.createText(t);case 13:return this.createCamera(t)}return this.createNull(t)},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.buildAllItems=function(){var t,e=this.layers.length;for(t=0;t<e;t+=1)this.buildItem(t);this.checkPendingElements()},BaseRenderer.prototype.includeLayers=function(t){this.completeLayers=!1;var e,r,i=t.length,s=this.layers.length;for(e=0;e<i;e+=1)for(r=0;r<s;){if(this.layers[r].id==t[e].id){this.layers[r]=t[e];break}r+=1}},BaseRenderer.prototype.setProjectInterface=function(t){this.globalData.projectInterface=t},BaseRenderer.prototype.initItems=function(){this.globalData.progressiveLoad||this.buildAllItems()},BaseRenderer.prototype.buildElementParenting=function(t,e,r){for(var i=this.elements,s=this.layers,a=0,n=s.length;a<n;)s[a].ind==e&&(i[a]&&!0!==i[a]?(r.push(i[a]),i[a].setAsParent(),void 0!==s[a].parent?this.buildElementParenting(t,s[a].parent,r):t.setHierarchy(r)):(this.buildItem(a),this.addPendingElement(t))),a+=1},BaseRenderer.prototype.addPendingElement=function(t){this.pendingElements.push(t)},BaseRenderer.prototype.searchExtraCompositions=function(t){var e,r=t.length;for(e=0;e<r;e+=1)if(t[e].xt){var i=this.createComp(t[e]);i.initExpressions(),this.globalData.projectInterface.registerComposition(i)}},BaseRenderer.prototype.setupGlobalData=function(t,e){this.globalData.fontManager=new FontManager,this.globalData.fontManager.addChars(t.chars),this.globalData.fontManager.addFonts(t.fonts,e),this.globalData.getAssetData=this.animationItem.getAssetData.bind(this.animationItem),this.globalData.getAssetsPath=this.animationItem.getAssetsPath.bind(this.animationItem),this.globalData.imageLoader=this.animationItem.imagePreloader,this.globalData.frameId=0,this.globalData.frameRate=t.fr,this.globalData.nm=t.nm,this.globalData.compSize={w:t.w,h:t.h}},extendPrototype([BaseRenderer],SVGRenderer),SVGRenderer.prototype.createNull=function(t){return new NullElement(t,this.globalData,this)},SVGRenderer.prototype.createShape=function(t){return new SVGShapeElement(t,this.globalData,this)},SVGRenderer.prototype.createText=function(t){return new SVGTextElement(t,this.globalData,this)},SVGRenderer.prototype.createImage=function(t){return new IImageElement(t,this.globalData,this)},SVGRenderer.prototype.createComp=function(t){return new SVGCompElement(t,this.globalData,this)},SVGRenderer.prototype.createSolid=function(t){return new ISolidElement(t,this.globalData,this)},SVGRenderer.prototype.configAnimation=function(t){this.svgElement.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.renderConfig.viewBoxSize?this.svgElement.setAttribute("viewBox",this.renderConfig.viewBoxSize):this.svgElement.setAttribute("viewBox","0 0 "+t.w+" "+t.h),this.renderConfig.viewBoxOnly||(this.svgElement.setAttribute("width",t.w),this.svgElement.setAttribute("height",t.h),this.svgElement.style.width="100%",this.svgElement.style.height="100%",this.svgElement.style.transform="translate3d(0,0,0)"),this.renderConfig.className&&this.svgElement.setAttribute("class",this.renderConfig.className),this.svgElement.setAttribute("preserveAspectRatio",this.renderConfig.preserveAspectRatio),this.animationItem.wrapper.appendChild(this.svgElement);var e=this.globalData.defs;this.setupGlobalData(t,e),this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.data=t;var r=createNS("clipPath"),i=createNS("rect");i.setAttribute("width",t.w),i.setAttribute("height",t.h),i.setAttribute("x",0),i.setAttribute("y",0);var s=createElementID();r.setAttribute("id",s),r.appendChild(i),this.layerElement.setAttribute("clip-path","url("+locationHref+"#"+s+")"),e.appendChild(r),this.layers=t.layers,this.elements=createSizedArray(t.layers.length)},SVGRenderer.prototype.destroy=function(){this.animationItem.wrapper.innerHTML="",this.layerElement=null,this.globalData.defs=null;var t,e=this.layers?this.layers.length:0;for(t=0;t<e;t++)this.elements[t]&&this.elements[t].destroy();this.elements.length=0,this.destroyed=!0,this.animationItem=null},SVGRenderer.prototype.updateContainerSize=function(){},SVGRenderer.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!=this.layers[t].ty){e[t]=!0;var r=this.createItem(this.layers[t]);e[t]=r,expressionsPlugin&&(0===this.layers[t].ty&&this.globalData.projectInterface.registerComposition(r),r.initExpressions()),this.appendElementInPos(r,t),this.layers[t].tt&&(this.elements[t-1]&&!0!==this.elements[t-1]?r.setMatte(e[t-1].layerId):(this.buildItem(t-1),this.addPendingElement(r)))}},SVGRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var t=this.pendingElements.pop();if(t.checkParenting(),t.data.tt)for(var e=0,r=this.elements.length;e<r;){if(this.elements[e]===t){t.setMatte(this.elements[e-1].layerId);break}e+=1}}},SVGRenderer.prototype.renderFrame=function(t){if(this.renderedFrame!==t&&!this.destroyed){null===t?t=this.renderedFrame:this.renderedFrame=t,this.globalData.frameNum=t,this.globalData.frameId+=1,this.globalData.projectInterface.currentFrame=t,this.globalData._mdf=!1;var e,r=this.layers.length;for(this.completeLayers||this.checkLayers(t),e=r-1;0<=e;e--)(this.completeLayers||this.elements[e])&&this.elements[e].prepareFrame(t-this.layers[e].st);if(this.globalData._mdf)for(e=0;e<r;e+=1)(this.completeLayers||this.elements[e])&&this.elements[e].renderFrame()}},SVGRenderer.prototype.appendElementInPos=function(t,e){var r=t.getBaseElement();if(r){for(var i,s=0;s<e;)this.elements[s]&&!0!==this.elements[s]&&this.elements[s].getBaseElement()&&(i=this.elements[s].getBaseElement()),s+=1;i?this.layerElement.insertBefore(r,i):this.layerElement.appendChild(r)}},SVGRenderer.prototype.hide=function(){this.layerElement.style.display="none"},SVGRenderer.prototype.show=function(){this.layerElement.style.display="block"},extendPrototype([BaseRenderer],CanvasRenderer),CanvasRenderer.prototype.createShape=function(t){return new CVShapeElement(t,this.globalData,this)},CanvasRenderer.prototype.createText=function(t){return new CVTextElement(t,this.globalData,this)},CanvasRenderer.prototype.createImage=function(t){return new CVImageElement(t,this.globalData,this)},CanvasRenderer.prototype.createComp=function(t){return new CVCompElement(t,this.globalData,this)},CanvasRenderer.prototype.createSolid=function(t){return new CVSolidElement(t,this.globalData,this)},CanvasRenderer.prototype.createNull=SVGRenderer.prototype.createNull,CanvasRenderer.prototype.ctxTransform=function(t){if(1!==t[0]||0!==t[1]||0!==t[4]||1!==t[5]||0!==t[12]||0!==t[13])if(this.renderConfig.clearCanvas){this.transformMat.cloneFromProps(t);var e=this.contextData.cTr.props;this.transformMat.transform(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]),this.contextData.cTr.cloneFromProps(this.transformMat.props);var r=this.contextData.cTr.props;this.canvasContext.setTransform(r[0],r[1],r[4],r[5],r[12],r[13])}else this.canvasContext.transform(t[0],t[1],t[4],t[5],t[12],t[13])},CanvasRenderer.prototype.ctxOpacity=function(t){if(!this.renderConfig.clearCanvas)return this.canvasContext.globalAlpha*=t<0?0:t,void(this.globalData.currentGlobalAlpha=this.contextData.cO);this.contextData.cO*=t<0?0:t,this.globalData.currentGlobalAlpha!==this.contextData.cO&&(this.canvasContext.globalAlpha=this.contextData.cO,this.globalData.currentGlobalAlpha=this.contextData.cO)},CanvasRenderer.prototype.reset=function(){this.renderConfig.clearCanvas?this.contextData.reset():this.canvasContext.restore()},CanvasRenderer.prototype.save=function(t){if(this.renderConfig.clearCanvas){t&&this.canvasContext.save();var e=this.contextData.cTr.props;this.contextData._length<=this.contextData.cArrPos&&this.contextData.duplicate();var r,i=this.contextData.saved[this.contextData.cArrPos];for(r=0;r<16;r+=1)i[r]=e[r];this.contextData.savedOp[this.contextData.cArrPos]=this.contextData.cO,this.contextData.cArrPos+=1}else this.canvasContext.save()},CanvasRenderer.prototype.restore=function(t){if(this.renderConfig.clearCanvas){t&&(this.canvasContext.restore(),this.globalData.blendMode="source-over"),this.contextData.cArrPos-=1;var e,r=this.contextData.saved[this.contextData.cArrPos],i=this.contextData.cTr.props;for(e=0;e<16;e+=1)i[e]=r[e];this.canvasContext.setTransform(r[0],r[1],r[4],r[5],r[12],r[13]),r=this.contextData.savedOp[this.contextData.cArrPos],this.contextData.cO=r,this.globalData.currentGlobalAlpha!==r&&(this.canvasContext.globalAlpha=r,this.globalData.currentGlobalAlpha=r)}else this.canvasContext.restore()},CanvasRenderer.prototype.configAnimation=function(t){this.animationItem.wrapper?(this.animationItem.container=createTag("canvas"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container),this.canvasContext=this.animationItem.container.getContext("2d"),this.renderConfig.className&&this.animationItem.container.setAttribute("class",this.renderConfig.className)):this.canvasContext=this.renderConfig.context,this.data=t,this.layers=t.layers,this.transformCanvas={w:t.w,h:t.h,sx:0,sy:0,tx:0,ty:0},this.setupGlobalData(t,document.body),this.globalData.canvasContext=this.canvasContext,(this.globalData.renderer=this).globalData.isDashed=!1,this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.globalData.transformCanvas=this.transformCanvas,this.elements=createSizedArray(t.layers.length),this.updateContainerSize()},CanvasRenderer.prototype.updateContainerSize=function(){var t,e,r,i;if(this.reset(),this.animationItem.wrapper&&this.animationItem.container?(t=this.animationItem.wrapper.offsetWidth,e=this.animationItem.wrapper.offsetHeight,this.animationItem.container.setAttribute("width",t*this.renderConfig.dpr),this.animationItem.container.setAttribute("height",e*this.renderConfig.dpr)):(t=this.canvasContext.canvas.width*this.renderConfig.dpr,e=this.canvasContext.canvas.height*this.renderConfig.dpr),-1!==this.renderConfig.preserveAspectRatio.indexOf("meet")||-1!==this.renderConfig.preserveAspectRatio.indexOf("slice")){var s=this.renderConfig.preserveAspectRatio.split(" "),a=s[1]||"meet",n=s[0]||"xMidYMid",o=n.substr(0,4),h=n.substr(4);(r=t/e)<(i=this.transformCanvas.w/this.transformCanvas.h)&&"meet"===a||i<r&&"slice"===a?(this.transformCanvas.sx=t/(this.transformCanvas.w/this.renderConfig.dpr),this.transformCanvas.sy=t/(this.transformCanvas.w/this.renderConfig.dpr)):(this.transformCanvas.sx=e/(this.transformCanvas.h/this.renderConfig.dpr),this.transformCanvas.sy=e/(this.transformCanvas.h/this.renderConfig.dpr)),this.transformCanvas.tx="xMid"===o&&(i<r&&"meet"===a||r<i&&"slice"===a)?(t-this.transformCanvas.w*(e/this.transformCanvas.h))/2*this.renderConfig.dpr:"xMax"===o&&(i<r&&"meet"===a||r<i&&"slice"===a)?(t-this.transformCanvas.w*(e/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty="YMid"===h&&(r<i&&"meet"===a||i<r&&"slice"===a)?(e-this.transformCanvas.h*(t/this.transformCanvas.w))/2*this.renderConfig.dpr:"YMax"===h&&(r<i&&"meet"===a||i<r&&"slice"===a)?(e-this.transformCanvas.h*(t/this.transformCanvas.w))*this.renderConfig.dpr:0}else"none"==this.renderConfig.preserveAspectRatio?(this.transformCanvas.sx=t/(this.transformCanvas.w/this.renderConfig.dpr),this.transformCanvas.sy=e/(this.transformCanvas.h/this.renderConfig.dpr)):(this.transformCanvas.sx=this.renderConfig.dpr,this.transformCanvas.sy=this.renderConfig.dpr),this.transformCanvas.tx=0,this.transformCanvas.ty=0;this.transformCanvas.props=[this.transformCanvas.sx,0,0,0,0,this.transformCanvas.sy,0,0,0,0,1,0,this.transformCanvas.tx,this.transformCanvas.ty,0,1],this.ctxTransform(this.transformCanvas.props),this.canvasContext.beginPath(),this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h),this.canvasContext.closePath(),this.canvasContext.clip(),this.renderFrame(this.renderedFrame,!0)},CanvasRenderer.prototype.destroy=function(){var t;for(this.renderConfig.clearCanvas&&(this.animationItem.wrapper.innerHTML=""),t=(this.layers?this.layers.length:0)-1;0<=t;t-=1)this.elements[t]&&this.elements[t].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRenderer.prototype.renderFrame=function(t,e){if((this.renderedFrame!==t||!0!==this.renderConfig.clearCanvas||e)&&!this.destroyed&&-1!==t){this.renderedFrame=t,this.globalData.frameNum=t-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||e,this.globalData.projectInterface.currentFrame=t;var r,i=this.layers.length;for(this.completeLayers||this.checkLayers(t),r=0;r<i;r++)(this.completeLayers||this.elements[r])&&this.elements[r].prepareFrame(t-this.layers[r].st);if(this.globalData._mdf){for(!0===this.renderConfig.clearCanvas?this.canvasContext.clearRect(0,0,this.transformCanvas.w,this.transformCanvas.h):this.save(),r=i-1;0<=r;r-=1)(this.completeLayers||this.elements[r])&&this.elements[r].renderFrame();!0!==this.renderConfig.clearCanvas&&this.restore()}}},CanvasRenderer.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!=this.layers[t].ty){var r=this.createItem(this.layers[t],this,this.globalData);(e[t]=r).initExpressions()}},CanvasRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},CanvasRenderer.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRenderer.prototype.show=function(){this.animationItem.container.style.display="block"},CanvasRenderer.prototype.configAnimation=function(t){this.animationItem.wrapper?(this.animationItem.container=createTag("canvas"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container),this.canvasContext=this.animationItem.container.getContext("2d"),this.renderConfig.className&&this.animationItem.container.setAttribute("class",this.renderConfig.className)):this.canvasContext=this.renderConfig.context,this.data=t,this.layers=t.layers,this.transformCanvas={w:t.w,h:t.h,sx:0,sy:0,tx:0,ty:0},this.globalData.frameId=0,this.globalData.frameRate=t.fr,this.globalData.nm=t.nm,this.globalData.compSize={w:t.w,h:t.h},this.globalData.canvasContext=this.canvasContext,(this.globalData.renderer=this).globalData.isDashed=!1,this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.globalData.transformCanvas=this.transformCanvas,this.elements=createSizedArray(t.layers.length),this.updateContainerSize()},MaskElement.prototype.getMaskProperty=function(t){return this.viewData[t].prop},MaskElement.prototype.renderFrame=function(t){var e,r=this.element.finalTransform.mat,i=this.masksProperties.length;for(e=0;e<i;e++)if((this.viewData[e].prop._mdf||t)&&this.drawPath(this.masksProperties[e],this.viewData[e].prop.v,this.viewData[e]),(this.viewData[e].op._mdf||t)&&this.viewData[e].elem.setAttribute("fill-opacity",this.viewData[e].op.v),"n"!==this.masksProperties[e].mode&&(this.viewData[e].invRect&&(this.element.finalTransform.mProp._mdf||t)&&(this.viewData[e].invRect.setAttribute("x",-r.props[12]),this.viewData[e].invRect.setAttribute("y",-r.props[13])),this.storedData[e].x&&(this.storedData[e].x._mdf||t))){var s=this.storedData[e].expan;this.storedData[e].x.v<0?("erode"!==this.storedData[e].lastOperator&&(this.storedData[e].lastOperator="erode",this.storedData[e].elem.setAttribute("filter","url("+locationHref+"#"+this.storedData[e].filterId+")")),s.setAttribute("radius",-this.storedData[e].x.v)):("dilate"!==this.storedData[e].lastOperator&&(this.storedData[e].lastOperator="dilate",this.storedData[e].elem.setAttribute("filter",null)),this.storedData[e].elem.setAttribute("stroke-width",2*this.storedData[e].x.v))}},MaskElement.prototype.getMaskelement=function(){return this.maskElement},MaskElement.prototype.createLayerSolidPath=function(){var t="M0,0 ";return t+=" h"+this.globalData.compSize.w,t+=" v"+this.globalData.compSize.h,t+=" h-"+this.globalData.compSize.w,t+=" v-"+this.globalData.compSize.h+" "},MaskElement.prototype.drawPath=function(t,e,r){var i,s,a=" M"+e.v[0][0]+","+e.v[0][1];for(s=e._length,i=1;i<s;i+=1)a+=" C"+e.o[i-1][0]+","+e.o[i-1][1]+" "+e.i[i][0]+","+e.i[i][1]+" "+e.v[i][0]+","+e.v[i][1];if(e.c&&1<s&&(a+=" C"+e.o[i-1][0]+","+e.o[i-1][1]+" "+e.i[0][0]+","+e.i[0][1]+" "+e.v[0][0]+","+e.v[0][1]),r.lastPath!==a){var n="";r.elem&&(e.c&&(n=t.inv?this.solidPath+a:a),r.elem.setAttribute("d",n)),r.lastPath=a}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null},HierarchyElement.prototype={initHierarchy:function(){this.hierarchy=[],this._isParent=!1,this.checkParenting()},setHierarchy:function(t){this.hierarchy=t},setAsParent:function(){this._isParent=!0},checkParenting:function(){void 0!==this.data.parent&&this.comp.buildElementParenting(this,this.data.parent,[])}},FrameElement.prototype={initFrame:function(){this._isFirstFrame=!1,this.dynamicProperties=[],this._mdf=!1},prepareProperties:function(t,e){var r,i=this.dynamicProperties.length;for(r=0;r<i;r+=1)(e||this._isParent&&"transform"===this.dynamicProperties[r].propType)&&(this.dynamicProperties[r].getValue(),this.dynamicProperties[r]._mdf&&(this.globalData._mdf=!0,this._mdf=!0))},addDynamicProperty:function(t){-1===this.dynamicProperties.indexOf(t)&&this.dynamicProperties.push(t)}},TransformElement.prototype={initTransform:function(){this.finalTransform={mProp:this.data.ks?TransformPropertyFactory.getTransformProperty(this,this.data.ks,this):{o:0},_matMdf:!1,_opMdf:!1,mat:new Matrix},this.data.ao&&(this.finalTransform.mProp.autoOriented=!0),this.data.ty},renderTransform:function(){if(this.finalTransform._opMdf=this.finalTransform.mProp.o._mdf||this._isFirstFrame,this.finalTransform._matMdf=this.finalTransform.mProp._mdf||this._isFirstFrame,this.hierarchy){var t,e=this.finalTransform.mat,r=0,i=this.hierarchy.length;if(!this.finalTransform._matMdf)for(;r<i;){if(this.hierarchy[r].finalTransform.mProp._mdf){this.finalTransform._matMdf=!0;break}r+=1}if(this.finalTransform._matMdf)for(t=this.finalTransform.mProp.v.props,e.cloneFromProps(t),r=0;r<i;r+=1)t=this.hierarchy[r].finalTransform.mProp.v.props,e.transform(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])}},globalToLocal:function(t){var e=[];e.push(this.finalTransform);for(var r=!0,i=this.comp;r;)i.finalTransform?(i.data.hasMask&&e.splice(0,0,i.finalTransform),i=i.comp):r=!1;var s,a,n=e.length;for(s=0;s<n;s+=1)a=e[s].mat.applyToPointArray(0,0,0),t=[t[0]-a[0],t[1]-a[1],0];return t},mHelper:new Matrix},RenderableElement.prototype={initRenderable:function(){this.isInRange=!1,this.hidden=!1,this.isTransparent=!1,this.renderableComponents=[]},addRenderableComponent:function(t){-1===this.renderableComponents.indexOf(t)&&this.renderableComponents.push(t)},removeRenderableComponent:function(t){-1!==this.renderableComponents.indexOf(t)&&this.renderableComponents.splice(this.renderableComponents.indexOf(t),1)},prepareRenderableFrame:function(t){this.checkLayerLimits(t)},checkTransparency:function(){this.finalTransform.mProp.o.v<=0?!this.isTransparent&&this.globalData.renderConfig.hideOnTransparent&&(this.isTransparent=!0,this.hide()):this.isTransparent&&(this.isTransparent=!1,this.show())},checkLayerLimits:function(t){this.data.ip-this.data.st<=t&&this.data.op-this.data.st>t?!0!==this.isInRange&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):!1!==this.isInRange&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var t,e=this.renderableComponents.length;for(t=0;t<e;t+=1)this.renderableComponents[t].renderFrame(this._isFirstFrame)},sourceRectAtTime:function(){return{top:0,left:0,width:100,height:100}},getLayerSize:function(){return 5===this.data.ty?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}}},extendPrototype([RenderableElement,createProxyFunction({initElement:function(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initTransform(t,e,r),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide()},hide:function(){this.hidden||this.isInRange&&!this.isTransparent||((this.baseElement||this.layerElement).style.display="none",this.hidden=!0)},show:function(){this.isInRange&&!this.isTransparent&&(this.data.hd||((this.baseElement||this.layerElement).style.display="block"),this.hidden=!1,this._isFirstFrame=!0)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},renderInnerContent:function(){},prepareFrame:function(t){this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),this.checkTransparency()},destroy:function(){this.innerElem=null,this.destroyBaseElement()}})],RenderableDOMElement),SVGShapeData.prototype.setAsAnimated=function(){this._isAnimated=!0},ShapeTransformManager.prototype={addTransformSequence:function(t){var e,r=t.length,i="_";for(e=0;e<r;e+=1)i+=t[e].transform.key+"_";var s=this.sequences[i];return s||(s={transforms:[].concat(t),finalTransform:new Matrix,_mdf:!1},this.sequences[i]=s,this.sequenceList.push(s)),s},processSequence:function(t,e){for(var r,i=0,s=t.transforms.length,a=e;i<s&&!e;){if(t.transforms[i].transform.mProps._mdf){a=!0;break}i+=1}if(a)for(t.finalTransform.reset(),i=s-1;0<=i;i-=1)r=t.transforms[i].transform.mProps.v.props,t.finalTransform.transform(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15]);t._mdf=a},processSequences:function(t){var e,r=this.sequenceList.length;for(e=0;e<r;e+=1)this.processSequence(this.sequenceList[e],t)},getNewKey:function(){return"_"+this.transform_key_count++}},CVShapeData.prototype.setAsAnimated=SVGShapeData.prototype.setAsAnimated,BaseElement.prototype={checkMasks:function(){if(!this.data.hasMask)return!1;for(var t=0,e=this.data.masksProperties.length;t<e;){if("n"!==this.data.masksProperties[t].mode&&!1!==this.data.masksProperties[t].cl)return!0;t+=1}return!1},initExpressions:function(){this.layerInterface=LayerExpressionInterface(this),this.data.hasMask&&this.maskManager&&this.layerInterface.registerMaskInterface(this.maskManager);var t=EffectsExpressionInterface.createEffectsInterface(this,this.layerInterface);this.layerInterface.registerEffectsInterface(t),0===this.data.ty||this.data.xt?this.compInterface=CompExpressionInterface(this):4===this.data.ty?(this.layerInterface.shapeInterface=ShapeExpressionInterface(this.shapesData,this.itemsData,this.layerInterface),this.layerInterface.content=this.layerInterface.shapeInterface):5===this.data.ty&&(this.layerInterface.textInterface=TextExpressionInterface(this),this.layerInterface.text=this.layerInterface.textInterface)},setBlendMode:function(){var t=getBlendMode(this.data.bm);(this.baseElement||this.layerElement).style["mix-blend-mode"]=t},initBaseData:function(t,e,r){this.globalData=e,this.comp=r,this.data=t,this.layerId=createElementID(),this.data.sr||(this.data.sr=1),this.effectsManager=new EffectsManager(this.data,this,this.dynamicProperties)},getType:function(){return this.type},sourceRectAtTime:function(){}},NullElement.prototype.prepareFrame=function(t){this.prepareProperties(t,!0)},NullElement.prototype.renderFrame=function(){},NullElement.prototype.getBaseElement=function(){return null},NullElement.prototype.destroy=function(){},NullElement.prototype.sourceRectAtTime=function(){},NullElement.prototype.hide=function(){},extendPrototype([BaseElement,TransformElement,HierarchyElement,FrameElement],NullElement),SVGBaseElement.prototype={initRendererElement:function(){this.layerElement=createNS("g")},createContainerElements:function(){this.matteElement=createNS("g"),this.transformedElement=this.layerElement,this.maskedElement=this.layerElement,this._sizeChanged=!1;var t,e,r,i=null;if(this.data.td){if(3==this.data.td||1==this.data.td){var s=createNS("mask");s.setAttribute("id",this.layerId),s.setAttribute("mask-type",3==this.data.td?"luminance":"alpha"),s.appendChild(this.layerElement),i=s,this.globalData.defs.appendChild(s),featureSupport.maskType||1!=this.data.td||(s.setAttribute("mask-type","luminance"),t=createElementID(),e=filtersFactory.createFilter(t),this.globalData.defs.appendChild(e),e.appendChild(filtersFactory.createAlphaToLuminanceFilter()),(r=createNS("g")).appendChild(this.layerElement),i=r,s.appendChild(r),r.setAttribute("filter","url("+locationHref+"#"+t+")"))}else if(2==this.data.td){var a=createNS("mask");a.setAttribute("id",this.layerId),a.setAttribute("mask-type","alpha");var n=createNS("g");a.appendChild(n),t=createElementID(),e=filtersFactory.createFilter(t);var o=createNS("feComponentTransfer");o.setAttribute("in","SourceGraphic"),e.appendChild(o);var h=createNS("feFuncA");h.setAttribute("type","table"),h.setAttribute("tableValues","1.0 0.0"),o.appendChild(h),this.globalData.defs.appendChild(e);var p=createNS("rect");p.setAttribute("width",this.comp.data.w),p.setAttribute("height",this.comp.data.h),p.setAttribute("x","0"),p.setAttribute("y","0"),p.setAttribute("fill","#ffffff"),p.setAttribute("opacity","0"),n.setAttribute("filter","url("+locationHref+"#"+t+")"),n.appendChild(p),n.appendChild(this.layerElement),i=n,featureSupport.maskType||(a.setAttribute("mask-type","luminance"),e.appendChild(filtersFactory.createAlphaToLuminanceFilter()),r=createNS("g"),n.appendChild(p),r.appendChild(this.layerElement),i=r,n.appendChild(r)),this.globalData.defs.appendChild(a)}}else this.data.tt?(this.matteElement.appendChild(this.layerElement),i=this.matteElement,this.baseElement=this.matteElement):this.baseElement=this.layerElement;if(this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),0===this.data.ty&&!this.data.hd){var l=createNS("clipPath"),m=createNS("path");m.setAttribute("d","M0,0 L"+this.data.w+",0 L"+this.data.w+","+this.data.h+" L0,"+this.data.h+"z");var f=createElementID();if(l.setAttribute("id",f),l.appendChild(m),this.globalData.defs.appendChild(l),this.checkMasks()){var c=createNS("g");c.setAttribute("clip-path","url("+locationHref+"#"+f+")"),c.appendChild(this.layerElement),this.transformedElement=c,i?i.appendChild(this.transformedElement):this.baseElement=this.transformedElement}else this.layerElement.setAttribute("clip-path","url("+locationHref+"#"+f+")")}0!==this.data.bm&&this.setBlendMode()},renderElement:function(){this.finalTransform._matMdf&&this.transformedElement.setAttribute("transform",this.finalTransform.mat.to2dCSS()),this.finalTransform._opMdf&&this.transformedElement.setAttribute("opacity",this.finalTransform.mProp.o.v)},destroyBaseElement:function(){this.layerElement=null,this.matteElement=null,this.maskManager.destroy()},getBaseElement:function(){return this.data.hd?null:this.baseElement},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData),this.renderableEffectsManager=new SVGEffects(this)},setMatte:function(t){this.matteElement&&this.matteElement.setAttribute("mask","url("+locationHref+"#"+t+")")}},IShapeElement.prototype={addShapeToModifiers:function(t){var e,r=this.shapeModifiers.length;for(e=0;e<r;e+=1)this.shapeModifiers[e].addShape(t)},isShapeInAnimatedModifiers:function(t){for(var e=this.shapeModifiers.length;0<e;)if(this.shapeModifiers[0].isAnimatedWithShape(t))return!0;return!1},renderModifiers:function(){if(this.shapeModifiers.length){var t,e=this.shapes.length;for(t=0;t<e;t+=1)this.shapes[t].sh.reset();for(t=(e=this.shapeModifiers.length)-1;0<=t;t-=1)this.shapeModifiers[t].processShapes(this._isFirstFrame)}},lcEnum:{1:"butt",2:"round",3:"square"},ljEnum:{1:"miter",2:"round",3:"bevel"},searchProcessedElement:function(t){for(var e=this.processedElements,r=0,i=e.length;r<i;){if(e[r].elem===t)return e[r].pos;r+=1}return 0},addProcessedElement:function(t,e){for(var r=this.processedElements,i=r.length;i;)if(r[i-=1].elem===t)return void(r[i].pos=e);r.push(new ProcessedElement(t,e))},prepareFrame:function(t){this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange)}},ITextElement.prototype.initElement=function(t,e,r){this.lettersChangedFlag=!0,this.initFrame(),this.initBaseData(t,e,r),this.textProperty=new TextProperty(this,t.t,this.dynamicProperties),this.textAnimator=new TextAnimatorProperty(t.t,this.renderType,this),this.initTransform(t,e,r),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide(),this.textAnimator.searchProperties(this.dynamicProperties)},ITextElement.prototype.prepareFrame=function(t){this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),(this.textProperty._mdf||this.textProperty._isFirstFrame)&&(this.buildNewText(),this.textProperty._isFirstFrame=!1,this.textProperty._mdf=!1)},ITextElement.prototype.createPathShape=function(t,e){var r,i,s=e.length,a="";for(r=0;r<s;r+=1)i=e[r].ks.k,a+=buildShapeString(i,i.i.length,!0,t);return a},ITextElement.prototype.updateDocumentData=function(t,e){this.textProperty.updateDocumentData(t,e)},ITextElement.prototype.canResizeFont=function(t){this.textProperty.canResizeFont(t)},ITextElement.prototype.setMinimumFontSize=function(t){this.textProperty.setMinimumFontSize(t)},ITextElement.prototype.applyTextPropertiesToMatrix=function(t,e,r,i,s){switch(t.ps&&e.translate(t.ps[0],t.ps[1]+t.ascent,0),e.translate(0,-t.ls,0),t.j){case 1:e.translate(t.justifyOffset+(t.boxWidth-t.lineWidths[r]),0,0);break;case 2:e.translate(t.justifyOffset+(t.boxWidth-t.lineWidths[r])/2,0,0)}e.translate(i,s,0)},ITextElement.prototype.buildColor=function(t){return"rgb("+Math.round(255*t[0])+","+Math.round(255*t[1])+","+Math.round(255*t[2])+")"},ITextElement.prototype.emptyProp=new LetterProps,ITextElement.prototype.destroy=function(){},extendPrototype([BaseElement,TransformElement,HierarchyElement,FrameElement,RenderableDOMElement],ICompElement),ICompElement.prototype.initElement=function(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initTransform(t,e,r),this.initRenderable(),this.initHierarchy(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),!this.data.xt&&e.progressiveLoad||this.buildAllItems(),this.hide()},ICompElement.prototype.prepareFrame=function(t){if(this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),this.isInRange||this.data.xt){if(this.tm._placeholder)this.renderedFrame=t/this.data.sr;else{var e=this.tm.v;e===this.data.op&&(e=this.data.op-1),this.renderedFrame=e}var r,i=this.elements.length;for(this.completeLayers||this.checkLayers(this.renderedFrame),r=i-1;0<=r;r-=1)(this.completeLayers||this.elements[r])&&(this.elements[r].prepareFrame(this.renderedFrame-this.layers[r].st),this.elements[r]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var t,e=this.layers.length;for(t=0;t<e;t+=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},ICompElement.prototype.setElements=function(t){this.elements=t},ICompElement.prototype.getElements=function(){return this.elements},ICompElement.prototype.destroyElements=function(){var t,e=this.layers.length;for(t=0;t<e;t+=1)this.elements[t]&&this.elements[t].destroy()},ICompElement.prototype.destroy=function(){this.destroyElements(),this.destroyBaseElement()},extendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],IImageElement),IImageElement.prototype.createContent=function(){var t=this.globalData.getAssetsPath(this.assetData);this.innerElem=createNS("image"),this.innerElem.setAttribute("width",this.assetData.w+"px"),this.innerElem.setAttribute("height",this.assetData.h+"px"),this.innerElem.setAttribute("preserveAspectRatio",this.assetData.pr||this.globalData.renderConfig.imagePreserveAspectRatio),this.innerElem.setAttributeNS("http://www.w3.org/1999/xlink","href",t),this.layerElement.appendChild(this.innerElem)},IImageElement.prototype.sourceRectAtTime=function(){return this.sourceRect},extendPrototype([IImageElement],ISolidElement),ISolidElement.prototype.createContent=function(){var t=createNS("rect");t.setAttribute("width",this.data.sw),t.setAttribute("height",this.data.sh),t.setAttribute("fill",this.data.sc),this.layerElement.appendChild(t)},extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var t,e,r,i,s=this.shapes.length,a=this.stylesList.length,n=[],o=!1;for(r=0;r<a;r+=1){for(i=this.stylesList[r],o=!1,t=n.length=0;t<s;t+=1)-1!==(e=this.shapes[t]).styles.indexOf(i)&&(n.push(e),o=e._isAnimated||o);1<n.length&&o&&this.setShapesAsAnimated(n)}},SVGShapeElement.prototype.setShapesAsAnimated=function(t){var e,r=t.length;for(e=0;e<r;e+=1)t[e].setAsAnimated()},SVGShapeElement.prototype.createStyleElement=function(t,e){var r,i=new SVGStyleData(t,e),s=i.pElem;if("st"===t.ty)r=new SVGStrokeStyleData(this,t,i);else if("fl"===t.ty)r=new SVGFillStyleData(this,t,i);else if("gf"===t.ty||"gs"===t.ty){r=new("gf"===t.ty?SVGGradientFillStyleData:SVGGradientStrokeStyleData)(this,t,i),this.globalData.defs.appendChild(r.gf),r.maskId&&(this.globalData.defs.appendChild(r.ms),this.globalData.defs.appendChild(r.of),s.setAttribute("mask","url("+locationHref+"#"+r.maskId+")"))}return"st"!==t.ty&&"gs"!==t.ty||(s.setAttribute("stroke-linecap",this.lcEnum[t.lc]||"round"),s.setAttribute("stroke-linejoin",this.ljEnum[t.lj]||"round"),s.setAttribute("fill-opacity","0"),1===t.lj&&s.setAttribute("stroke-miterlimit",t.ml)),2===t.r&&s.setAttribute("fill-rule","evenodd"),t.ln&&s.setAttribute("id",t.ln),t.cl&&s.setAttribute("class",t.cl),t.bm&&(s.style["mix-blend-mode"]=getBlendMode(t.bm)),this.stylesList.push(i),this.addToAnimatedContents(t,r),r},SVGShapeElement.prototype.createGroupElement=function(t){var e=new ShapeGroupData;return t.ln&&e.gr.setAttribute("id",t.ln),t.cl&&e.gr.setAttribute("class",t.cl),t.bm&&(e.gr.style["mix-blend-mode"]=getBlendMode(t.bm)),e},SVGShapeElement.prototype.createTransformElement=function(t,e){var r=TransformPropertyFactory.getTransformProperty(this,t,this),i=new SVGTransformData(r,r.o,e);return this.addToAnimatedContents(t,i),i},SVGShapeElement.prototype.createShapeElement=function(t,e,r){var i=4;"rc"===t.ty?i=5:"el"===t.ty?i=6:"sr"===t.ty&&(i=7);var s=new SVGShapeData(e,r,ShapePropertyFactory.getShapeProp(this,t,i,this));return this.shapes.push(s),this.addShapeToModifiers(s),this.addToAnimatedContents(t,s),s},SVGShapeElement.prototype.addToAnimatedContents=function(t,e){for(var r=0,i=this.animatedContents.length;r<i;){if(this.animatedContents[r].element===e)return;r+=1}this.animatedContents.push({fn:SVGElementsRenderer.createRenderFunction(t),element:e,data:t})},SVGShapeElement.prototype.setElementStyles=function(t){var e,r=t.styles,i=this.stylesList.length;for(e=0;e<i;e+=1)this.stylesList[e].closed||r.push(this.stylesList[e])},SVGShapeElement.prototype.reloadShapes=function(){this._isFirstFrame=!0;var t,e=this.itemsData.length;for(t=0;t<e;t+=1)this.prevViewData[t]=this.itemsData[t];for(this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes(),e=this.dynamicProperties.length,t=0;t<e;t+=1)this.dynamicProperties[t].getValue();this.renderModifiers()},SVGShapeElement.prototype.searchShapes=function(t,e,r,i,s,a,n){var o,h,p,l,m,f,c=[].concat(a),d=t.length-1,u=[],y=[];for(o=d;0<=o;o-=1){if((f=this.searchProcessedElement(t[o]))?e[o]=r[f-1]:t[o]._render=n,"fl"==t[o].ty||"st"==t[o].ty||"gf"==t[o].ty||"gs"==t[o].ty)f?e[o].style.closed=!1:e[o]=this.createStyleElement(t[o],s),t[o]._render&&i.appendChild(e[o].style.pElem),u.push(e[o].style);else if("gr"==t[o].ty){if(f)for(p=e[o].it.length,h=0;h<p;h+=1)e[o].prevViewData[h]=e[o].it[h];else e[o]=this.createGroupElement(t[o]);this.searchShapes(t[o].it,e[o].it,e[o].prevViewData,e[o].gr,s+1,c,n),t[o]._render&&i.appendChild(e[o].gr)}else"tr"==t[o].ty?(f||(e[o]=this.createTransformElement(t[o],i)),l=e[o].transform,c.push(l)):"sh"==t[o].ty||"rc"==t[o].ty||"el"==t[o].ty||"sr"==t[o].ty?(f||(e[o]=this.createShapeElement(t[o],c,s)),this.setElementStyles(e[o])):"tm"==t[o].ty||"rd"==t[o].ty||"ms"==t[o].ty?(f?(m=e[o]).closed=!1:((m=ShapeModifiers.getModifier(t[o].ty)).init(this,t[o]),e[o]=m,this.shapeModifiers.push(m)),y.push(m)):"rp"==t[o].ty&&(f?(m=e[o]).closed=!0:(m=ShapeModifiers.getModifier(t[o].ty),(e[o]=m).init(this,t,o,e),this.shapeModifiers.push(m),n=!1),y.push(m));this.addProcessedElement(t[o],o+1)}for(d=u.length,o=0;o<d;o+=1)u[o].closed=!0;for(d=y.length,o=0;o<d;o+=1)y[o].closed=!0},SVGShapeElement.prototype.renderInnerContent=function(){this.renderModifiers();var t,e=this.stylesList.length;for(t=0;t<e;t+=1)this.stylesList[t].reset();for(this.renderShape(),t=0;t<e;t+=1)(this.stylesList[t]._mdf||this._isFirstFrame)&&(this.stylesList[t].msElem&&(this.stylesList[t].msElem.setAttribute("d",this.stylesList[t].d),this.stylesList[t].d="M0 0"+this.stylesList[t].d),this.stylesList[t].pElem.setAttribute("d",this.stylesList[t].d||"M0 0"))},SVGShapeElement.prototype.renderShape=function(){var t,e,r=this.animatedContents.length;for(t=0;t<r;t+=1)e=this.animatedContents[t],(this._isFirstFrame||e.element._isAnimated)&&!0!==e.data&&e.fn(e.data,e.element,this._isFirstFrame)},SVGShapeElement.prototype.destroy=function(){this.destroyBaseElement(),this.shapesData=null,this.itemsData=null},CVContextData.prototype.duplicate=function(){var t=2*this._length,e=this.savedOp;this.savedOp=createTypedArray("float32",t),this.savedOp.set(e);var r=0;for(r=this._length;r<t;r+=1)this.saved[r]=createTypedArray("float32",16);this._length=t},CVContextData.prototype.reset=function(){this.cArrPos=0,this.cTr.reset(),this.cO=1},CVBaseElement.prototype={createElements:function(){},initRendererElement:function(){},createContainerElements:function(){this.canvasContext=this.globalData.canvasContext,this.renderableEffectsManager=new CVEffects(this)},createContent:function(){},setBlendMode:function(){var t=this.globalData;if(t.blendMode!==this.data.bm){t.blendMode=this.data.bm;var e=getBlendMode(this.data.bm);t.canvasContext.globalCompositeOperation=e}},createRenderableComponents:function(){this.maskManager=new CVMaskElement(this.data,this)},hideElement:function(){this.hidden||this.isInRange&&!this.isTransparent||(this.hidden=!0)},showElement:function(){this.isInRange&&!this.isTransparent&&(this.hidden=!1,this._isFirstFrame=!0,this.maskManager._isFirstFrame=!0)},renderFrame:function(){this.hidden||this.data.hd||(this.renderTransform(),this.renderRenderable(),this.setBlendMode(),this.globalData.renderer.save(),this.globalData.renderer.ctxTransform(this.finalTransform.mat.props),this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v),this.renderInnerContent(),this.globalData.renderer.restore(),this.maskManager.hasMasks&&this.globalData.renderer.restore(!0),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.canvasContext=null,this.data=null,this.globalData=null,this.maskManager.destroy()},mHelper:new Matrix},CVBaseElement.prototype.hide=CVBaseElement.prototype.hideElement,CVBaseElement.prototype.show=CVBaseElement.prototype.showElement,extendPrototype([CanvasRenderer,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var t;for(t=this.layers.length-1;0<=t;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},CVCompElement.prototype.destroy=function(){var t;for(t=this.layers.length-1;0<=t;t-=1)this.elements[t]&&this.elements[t].destroy();this.layers=null,this.elements=null},CVMaskElement.prototype.renderFrame=function(){if(this.hasMasks){var t,e,r,i,s=this.element.finalTransform.mat,a=this.element.canvasContext,n=this.masksProperties.length;for(a.beginPath(),t=0;t<n;t++)if("n"!==this.masksProperties[t].mode){this.masksProperties[t].inv&&(a.moveTo(0,0),a.lineTo(this.element.globalData.compSize.w,0),a.lineTo(this.element.globalData.compSize.w,this.element.globalData.compSize.h),a.lineTo(0,this.element.globalData.compSize.h),a.lineTo(0,0)),i=this.viewData[t].v,e=s.applyToPointArray(i.v[0][0],i.v[0][1],0),a.moveTo(e[0],e[1]);var o,h=i._length;for(o=1;o<h;o++)r=s.applyToTriplePoints(i.o[o-1],i.i[o],i.v[o]),a.bezierCurveTo(r[0],r[1],r[2],r[3],r[4],r[5]);r=s.applyToTriplePoints(i.o[o-1],i.i[0],i.v[0]),a.bezierCurveTo(r[0],r[1],r[2],r[3],r[4],r[5])}this.element.globalData.renderer.save(!0),a.clip()}},CVMaskElement.prototype.getMaskProperty=MaskElement.prototype.getMaskProperty,CVMaskElement.prototype.destroy=function(){this.element=null},extendPrototype([BaseElement,TransformElement,CVBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableElement],CVShapeElement),CVShapeElement.prototype.initElement=RenderableDOMElement.prototype.initElement,CVShapeElement.prototype.transformHelper={opacity:1,_opMdf:!1},CVShapeElement.prototype.dashResetter=[],CVShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[])},CVShapeElement.prototype.createStyleElement=function(t,e){var r={data:t,type:t.ty,preTransforms:this.transformsManager.addTransformSequence(e),transforms:[],elements:[],closed:!0===t.hd},i={};if("fl"==t.ty||"st"==t.ty?(i.c=PropertyFactory.getProp(this,t.c,1,255,this),i.c.k||(r.co="rgb("+bm_floor(i.c.v[0])+","+bm_floor(i.c.v[1])+","+bm_floor(i.c.v[2])+")")):"gf"!==t.ty&&"gs"!==t.ty||(i.s=PropertyFactory.getProp(this,t.s,1,null,this),i.e=PropertyFactory.getProp(this,t.e,1,null,this),i.h=PropertyFactory.getProp(this,t.h||{k:0},0,.01,this),i.a=PropertyFactory.getProp(this,t.a||{k:0},0,degToRads,this),i.g=new GradientProperty(this,t.g,this)),i.o=PropertyFactory.getProp(this,t.o,0,.01,this),"st"==t.ty||"gs"==t.ty){if(r.lc=this.lcEnum[t.lc]||"round",r.lj=this.ljEnum[t.lj]||"round",1==t.lj&&(r.ml=t.ml),i.w=PropertyFactory.getProp(this,t.w,0,null,this),i.w.k||(r.wi=i.w.v),t.d){var s=new DashProperty(this,t.d,"canvas",this);i.d=s,i.d.k||(r.da=i.d.dashArray,r.do=i.d.dashoffset[0])}}else r.r=2===t.r?"evenodd":"nonzero";return this.stylesList.push(r),i.style=r,i},CVShapeElement.prototype.createGroupElement=function(t){return{it:[],prevViewData:[]}},CVShapeElement.prototype.createTransformElement=function(t){return{transform:{opacity:1,_opMdf:!1,key:this.transformsManager.getNewKey(),op:PropertyFactory.getProp(this,t.o,0,.01,this),mProps:TransformPropertyFactory.getTransformProperty(this,t,this)}}},CVShapeElement.prototype.createShapeElement=function(t){var e=new CVShapeData(this,t,this.stylesList,this.transformsManager);return this.shapes.push(e),this.addShapeToModifiers(e),e},CVShapeElement.prototype.reloadShapes=function(){this._isFirstFrame=!0;var t,e=this.itemsData.length;for(t=0;t<e;t+=1)this.prevViewData[t]=this.itemsData[t];for(this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[]),e=this.dynamicProperties.length,t=0;t<e;t+=1)this.dynamicProperties[t].getValue();this.renderModifiers(),this.transformsManager.processSequences(this._isFirstFrame)},CVShapeElement.prototype.addTransformToStyleList=function(t){var e,r=this.stylesList.length;for(e=0;e<r;e+=1)this.stylesList[e].closed||this.stylesList[e].transforms.push(t)},CVShapeElement.prototype.removeTransformFromStyleList=function(){var t,e=this.stylesList.length;for(t=0;t<e;t+=1)this.stylesList[t].closed||this.stylesList[t].transforms.pop()},CVShapeElement.prototype.closeStyles=function(t){var e,r=t.length;for(e=0;e<r;e+=1)t[e].closed=!0},CVShapeElement.prototype.searchShapes=function(t,e,r,i,s){var a,n,o,h,p,l,m=t.length-1,f=[],c=[],d=[].concat(s);for(a=m;0<=a;a-=1){if((h=this.searchProcessedElement(t[a]))?e[a]=r[h-1]:t[a]._shouldRender=i,"fl"==t[a].ty||"st"==t[a].ty||"gf"==t[a].ty||"gs"==t[a].ty)h?e[a].style.closed=!1:e[a]=this.createStyleElement(t[a],d),f.push(e[a].style);else if("gr"==t[a].ty){if(h)for(o=e[a].it.length,n=0;n<o;n+=1)e[a].prevViewData[n]=e[a].it[n];else e[a]=this.createGroupElement(t[a]);this.searchShapes(t[a].it,e[a].it,e[a].prevViewData,i,d)}else"tr"==t[a].ty?(h||(l=this.createTransformElement(t[a]),e[a]=l),d.push(e[a]),this.addTransformToStyleList(e[a])):"sh"==t[a].ty||"rc"==t[a].ty||"el"==t[a].ty||"sr"==t[a].ty?h||(e[a]=this.createShapeElement(t[a])):"tm"==t[a].ty||"rd"==t[a].ty?(h?(p=e[a]).closed=!1:((p=ShapeModifiers.getModifier(t[a].ty)).init(this,t[a]),e[a]=p,this.shapeModifiers.push(p)),c.push(p)):"rp"==t[a].ty&&(h?(p=e[a]).closed=!0:(p=ShapeModifiers.getModifier(t[a].ty),(e[a]=p).init(this,t,a,e),this.shapeModifiers.push(p),i=!1),c.push(p));this.addProcessedElement(t[a],a+1)}for(this.removeTransformFromStyleList(),this.closeStyles(f),m=c.length,a=0;a<m;a+=1)c[a].closed=!0},CVShapeElement.prototype.renderInnerContent=function(){this.transformHelper.opacity=1,this.transformHelper._opMdf=!1,this.renderModifiers(),this.transformsManager.processSequences(this._isFirstFrame),this.renderShape(this.transformHelper,this.shapesData,this.itemsData,!0)},CVShapeElement.prototype.renderShapeTransform=function(t,e){(t._opMdf||e.op._mdf||this._isFirstFrame)&&(e.opacity=t.opacity,e.opacity*=e.op.v,e._opMdf=!0)},CVShapeElement.prototype.drawLayer=function(){var t,e,r,i,s,a,n,o,h,p=this.stylesList.length,l=this.globalData.renderer,m=this.globalData.canvasContext;for(t=0;t<p;t+=1)if(("st"!==(o=(h=this.stylesList[t]).type)&&"gs"!==o||0!==h.wi)&&h.data._shouldRender&&0!==h.coOp&&0!==this.globalData.currentGlobalAlpha){for(l.save(),a=h.elements,"st"===o||"gs"===o?(m.strokeStyle="st"===o?h.co:h.grd,m.lineWidth=h.wi,m.lineCap=h.lc,m.lineJoin=h.lj,m.miterLimit=h.ml||0):m.fillStyle="fl"===o?h.co:h.grd,l.ctxOpacity(h.coOp),"st"!==o&&"gs"!==o&&m.beginPath(),l.ctxTransform(h.preTransforms.finalTransform.props),r=a.length,e=0;e<r;e+=1){for("st"!==o&&"gs"!==o||(m.beginPath(),h.da&&(m.setLineDash(h.da),m.lineDashOffset=h.do)),s=(n=a[e].trNodes).length,i=0;i<s;i+=1)"m"==n[i].t?m.moveTo(n[i].p[0],n[i].p[1]):"c"==n[i].t?m.bezierCurveTo(n[i].pts[0],n[i].pts[1],n[i].pts[2],n[i].pts[3],n[i].pts[4],n[i].pts[5]):m.closePath();"st"!==o&&"gs"!==o||(m.stroke(),h.da&&m.setLineDash(this.dashResetter))}"st"!==o&&"gs"!==o&&m.fill(h.r),l.restore()}},CVShapeElement.prototype.renderShape=function(t,e,r,i){var s,a;for(a=t,s=e.length-1;0<=s;s-=1)"tr"==e[s].ty?(a=r[s].transform,this.renderShapeTransform(t,a)):"sh"==e[s].ty||"el"==e[s].ty||"rc"==e[s].ty||"sr"==e[s].ty?this.renderPath(e[s],r[s]):"fl"==e[s].ty?this.renderFill(e[s],r[s],a):"st"==e[s].ty?this.renderStroke(e[s],r[s],a):"gf"==e[s].ty||"gs"==e[s].ty?this.renderGradientFill(e[s],r[s],a):"gr"==e[s].ty?this.renderShape(a,e[s].it,r[s].it):e[s].ty;i&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(t,e){if(this._isFirstFrame||e._mdf||t.transforms._mdf){var r,i,s,a=t.trNodes,n=e.paths,o=n._length;a.length=0;var h=t.transforms.finalTransform;for(s=0;s<o;s+=1){var p=n.shapes[s];if(p&&p.v){for(i=p._length,r=1;r<i;r+=1)1===r&&a.push({t:"m",p:h.applyToPointArray(p.v[0][0],p.v[0][1],0)}),a.push({t:"c",pts:h.applyToTriplePoints(p.o[r-1],p.i[r],p.v[r])});1===i&&a.push({t:"m",p:h.applyToPointArray(p.v[0][0],p.v[0][1],0)}),p.c&&i&&(a.push({t:"c",pts:h.applyToTriplePoints(p.o[r-1],p.i[0],p.v[0])}),a.push({t:"z"}))}}t.trNodes=a}},CVShapeElement.prototype.renderPath=function(t,e){if(!0!==t.hd&&t._shouldRender){var r,i=e.styledShapes.length;for(r=0;r<i;r+=1)this.renderStyledShape(e.styledShapes[r],e.sh)}},CVShapeElement.prototype.renderFill=function(t,e,r){var i=e.style;(e.c._mdf||this._isFirstFrame)&&(i.co="rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r._opMdf||this._isFirstFrame)&&(i.coOp=e.o.v*r.opacity)},CVShapeElement.prototype.renderGradientFill=function(t,e,r){var i=e.style;if(!i.grd||e.g._mdf||e.s._mdf||e.e._mdf||1!==t.t&&(e.h._mdf||e.a._mdf)){var s=this.globalData.canvasContext,a=e.s.v,n=e.e.v;if(1===t.t)f=s.createLinearGradient(a[0],a[1],n[0],n[1]);else var o=Math.sqrt(Math.pow(a[0]-n[0],2)+Math.pow(a[1]-n[1],2)),h=Math.atan2(n[1]-a[1],n[0]-a[0]),p=o*(1<=e.h.v?.99:e.h.v<=-1?-.99:e.h.v),l=Math.cos(h+e.a.v)*p+a[0],m=Math.sin(h+e.a.v)*p+a[1],f=s.createRadialGradient(l,m,0,a[0],a[1],o);var c,d=t.g.p,u=e.g.c,y=1;for(c=0;c<d;c+=1)e.g._hasOpacity&&e.g._collapsable&&(y=e.g.o[2*c+1]),f.addColorStop(u[4*c]/100,"rgba("+u[4*c+1]+","+u[4*c+2]+","+u[4*c+3]+","+y+")");i.grd=f}i.coOp=e.o.v*r.opacity},CVShapeElement.prototype.renderStroke=function(t,e,r){var i=e.style,s=e.d;s&&(s._mdf||this._isFirstFrame)&&(i.da=s.dashArray,i.do=s.dashoffset[0]),(e.c._mdf||this._isFirstFrame)&&(i.co="rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r._opMdf||this._isFirstFrame)&&(i.coOp=e.o.v*r.opacity),(e.w._mdf||this._isFirstFrame)&&(i.wi=e.w.v)},CVShapeElement.prototype.destroy=function(){this.shapesData=null,this.globalData=null,this.canvasContext=null,this.stylesList.length=0,this.itemsData.length=0},extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement],CVSolidElement),CVSolidElement.prototype.initElement=SVGShapeElement.prototype.initElement,CVSolidElement.prototype.prepareFrame=IImageElement.prototype.prepareFrame,CVSolidElement.prototype.renderInnerContent=function(){var t=this.canvasContext;t.fillStyle=this.data.sc,t.fillRect(0,0,this.data.sw,this.data.sh)},CVEffects.prototype.renderFrame=function(){};var animationManager=(tJ={},uJ=[],vJ=0,wJ=0,xJ=0,yJ=!0,zJ=!1,tJ.registerAnimation=BJ,tJ.loadAnimation=function(t){var e=new AnimationItem;return FJ(e,null),e.setParams(t),e},tJ.setSpeed=function(t,e){var r;for(r=0;r<wJ;r+=1)uJ[r].animation.setSpeed(t,e)},tJ.setDirection=function(t,e){var r;for(r=0;r<wJ;r+=1)uJ[r].animation.setDirection(t,e)},tJ.play=function(t){var e;for(e=0;e<wJ;e+=1)uJ[e].animation.play(t)},tJ.pause=function(t){var e;for(e=0;e<wJ;e+=1)uJ[e].animation.pause(t)},tJ.stop=function(t){var e;for(e=0;e<wJ;e+=1)uJ[e].animation.stop(t)},tJ.togglePause=function(t){var e;for(e=0;e<wJ;e+=1)uJ[e].animation.togglePause(t)},tJ.searchAnimations=function(t,e,r){var i,s=[].concat([].slice.call(document.getElementsByClassName("lottie")),[].slice.call(document.getElementsByClassName("bodymovin"))),a=s.length;for(i=0;i<a;i+=1)r&&s[i].setAttribute("data-bm-type",r),BJ(s[i],t);if(e&&0===a){r||(r="svg");var n=document.getElementsByTagName("body")[0];n.innerHTML="";var o=createTag("div");o.style.width="100%",o.style.height="100%",o.setAttribute("data-bm-type",r),n.appendChild(o),BJ(o,t)}},tJ.resize=function(){var t;for(t=0;t<wJ;t+=1)uJ[t].animation.resize()},tJ.goToAndStop=function(t,e,r){var i;for(i=0;i<wJ;i+=1)uJ[i].animation.goToAndStop(t,e,r)},tJ.destroy=function(t){var e;for(e=wJ-1;0<=e;e-=1)uJ[e].animation.destroy(t)},tJ.freeze=function(){zJ=!0},tJ.unfreeze=function(){zJ=!1,TJ()},tJ.getRegisteredAnimations=function(){var t,e=uJ.length,r=[];for(t=0;t<e;t+=1)r.push(uJ[t].animation);return r},tJ),tJ,uJ,vJ,wJ,xJ,yJ,zJ,PK,QK,RK,SK,TK,UK,VK;function AJ(t){for(var e=0,r=t.target;e<wJ;)uJ[e].animation===r&&(uJ.splice(e,1),e-=1,wJ-=1,r.isPaused||EJ()),e+=1}function BJ(t,e){if(!t)return null;for(var r=0;r<wJ;){if(uJ[r].elem==t&&null!==uJ[r].elem)return uJ[r].animation;r+=1}var i=new AnimationItem;return FJ(i,t),i.setData(t,e),i}function DJ(){xJ+=1,TJ()}function EJ(){xJ-=1}function FJ(t,e){t.addEventListener("destroy",AJ),t.addEventListener("_active",DJ),t.addEventListener("_idle",EJ),uJ.push({elem:e,animation:t}),wJ+=1}function KJ(t){var e,r=t-vJ;for(e=0;e<wJ;e+=1)uJ[e].animation.advanceTime(r);vJ=t,xJ&&!zJ?window.requestAnimationFrame(KJ):yJ=!0}function LJ(t){vJ=t,window.requestAnimationFrame(KJ)}function TJ(){!zJ&&xJ&&yJ&&(window.requestAnimationFrame(LJ),yJ=!1)}function WK(t){for(var e=0,r=t.target;e<SK;)QK[e].animation===r&&(QK.splice(e,1),e-=1,SK-=1,r.isPaused||$K()),e+=1}function ZK(){TK+=1,nL()}function $K(){TK-=1}function _K(t,e){t.addEventListener("destroy",WK),t.addEventListener("_active",ZK),t.addEventListener("_idle",$K),QK.push({elem:e,animation:t}),SK+=1}function eL(t){var e,r=t-RK;for(e=0;e<SK;e+=1)QK[e].animation.advanceTime(r);RK=t,TK&&!VK?requestAnimationFrame(eL):UK=!0}function fL(t){RK=t,requestAnimationFrame(eL)}function nL(){!VK&&TK&&UK&&(requestAnimationFrame(fL),UK=!1)}PK={},QK=[],RK=0,SK=0,TK=0,UK=!0,VK=!1,PK.registerAnimation=function(t,e){if(!t)return null;for(var r=0;r<SK;){if(QK[r].elem==t&&null!==QK[r].elem)return QK[r].animation;r+=1}var i=new AnimationItem;return _K(i,t),i.setData(t,e),i},PK.loadAnimation=function(t){var e=new AnimationItem;return _K(e,null),e.setParams(t),e},PK.setSpeed=function(t,e){var r;for(r=0;r<SK;r+=1)QK[r].animation.setSpeed(t,e)},PK.setDirection=function(t,e){var r;for(r=0;r<SK;r+=1)QK[r].animation.setDirection(t,e)},PK.play=function(t){var e;for(e=0;e<SK;e+=1)QK[e].animation.play(t)},PK.pause=function(t){var e;for(e=0;e<SK;e+=1)QK[e].animation.pause(t)},PK.stop=function(t){var e;for(e=0;e<SK;e+=1)QK[e].animation.stop(t)},PK.togglePause=function(t){var e;for(e=0;e<SK;e+=1)QK[e].animation.togglePause(t)},PK.searchAnimations=function(t,e,r){throw new Error("Cannot access DOM from worker thread")},PK.resize=function(){var t;for(t=0;t<SK;t+=1)QK[t].animation.resize()},PK.goToAndStop=function(t,e,r){var i;for(i=0;i<SK;i+=1)QK[i].animation.goToAndStop(t,e,r)},PK.destroy=function(t){var e;for(e=SK-1;0<=e;e-=1)QK[e].animation.destroy(t)},PK.freeze=function(){VK=!0},PK.unfreeze=function(){VK=!1,nL()},PK.getRegisteredAnimations=function(){var t,e=QK.length,r=[];for(t=0;t<e;t+=1)r.push(QK[t].animation);return r},animationManager=PK;var AnimationItem=function(){this._cbs=[],this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.playCount=0,this.animationData={},this.assets=[],this.isPaused=!0,this.autoplay=!1,this.loop=!0,this.renderer=null,this.animationID=createElementID(),this.assetsPath="",this.timeCompleted=0,this.segmentPos=0,this.subframeEnabled=subframeEnabled,this.segments=[],this._idle=!0,this._completedLoop=!1,this.projectInterface=ProjectInterface(),this.imagePreloader=new ImagePreloader};extendPrototype([BaseEvent],AnimationItem),AnimationItem.prototype.setParams=function(t){t.context&&(this.context=t.context),(t.wrapper||t.container)&&(this.wrapper=t.wrapper||t.container);var e=t.animType?t.animType:t.renderer?t.renderer:"svg";switch(e){case"canvas":this.renderer=new CanvasRenderer(this,t.rendererSettings);break;case"svg":this.renderer=new SVGRenderer(this,t.rendererSettings);break;default:this.renderer=new HybridRenderer(this,t.rendererSettings)}this.renderer.setProjectInterface(this.projectInterface),this.animType=e,""===t.loop||null===t.loop||(!1===t.loop?this.loop=!1:!0===t.loop?this.loop=!0:this.loop=parseInt(t.loop)),this.autoplay=!("autoplay"in t)||t.autoplay,this.name=t.name?t.name:"",this.autoloadSegments=!t.hasOwnProperty("autoloadSegments")||t.autoloadSegments,this.assetsPath=t.assetsPath,t.animationData?this.configAnimation(t.animationData):t.path&&("json"!=t.path.substr(-4)&&("/"!=t.path.substr(-1,1)&&(t.path+="/"),t.path+="data.json"),-1!=t.path.lastIndexOf("\\")?this.path=t.path.substr(0,t.path.lastIndexOf("\\")+1):this.path=t.path.substr(0,t.path.lastIndexOf("/")+1),this.fileName=t.path.substr(t.path.lastIndexOf("/")+1),this.fileName=this.fileName.substr(0,this.fileName.lastIndexOf(".json")),assetLoader.load(t.path,this.configAnimation.bind(this),function(){this.trigger("data_failed")}.bind(this)))},AnimationItem.prototype.setData=function(t,e){var r={wrapper:t,animationData:e?"object"==typeof e?e:JSON.parse(e):null},i=t.attributes;r.path=i.getNamedItem("data-animation-path")?i.getNamedItem("data-animation-path").value:i.getNamedItem("data-bm-path")?i.getNamedItem("data-bm-path").value:i.getNamedItem("bm-path")?i.getNamedItem("bm-path").value:"",r.animType=i.getNamedItem("data-anim-type")?i.getNamedItem("data-anim-type").value:i.getNamedItem("data-bm-type")?i.getNamedItem("data-bm-type").value:i.getNamedItem("bm-type")?i.getNamedItem("bm-type").value:i.getNamedItem("data-bm-renderer")?i.getNamedItem("data-bm-renderer").value:i.getNamedItem("bm-renderer")?i.getNamedItem("bm-renderer").value:"canvas";var s=i.getNamedItem("data-anim-loop")?i.getNamedItem("data-anim-loop").value:i.getNamedItem("data-bm-loop")?i.getNamedItem("data-bm-loop").value:i.getNamedItem("bm-loop")?i.getNamedItem("bm-loop").value:"";""===s||(r.loop="false"!==s&&("true"===s||parseInt(s)));var a=i.getNamedItem("data-anim-autoplay")?i.getNamedItem("data-anim-autoplay").value:i.getNamedItem("data-bm-autoplay")?i.getNamedItem("data-bm-autoplay").value:!i.getNamedItem("bm-autoplay")||i.getNamedItem("bm-autoplay").value;r.autoplay="false"!==a,r.name=i.getNamedItem("data-name")?i.getNamedItem("data-name").value:i.getNamedItem("data-bm-name")?i.getNamedItem("data-bm-name").value:i.getNamedItem("bm-name")?i.getNamedItem("bm-name").value:"","false"===(i.getNamedItem("data-anim-prerender")?i.getNamedItem("data-anim-prerender").value:i.getNamedItem("data-bm-prerender")?i.getNamedItem("data-bm-prerender").value:i.getNamedItem("bm-prerender")?i.getNamedItem("bm-prerender").value:"")&&(r.prerender=!1),this.setParams(r)},AnimationItem.prototype.includeLayers=function(t){t.op>this.animationData.op&&(this.animationData.op=t.op,this.totalFrames=Math.floor(t.op-this.animationData.ip));var e,r,i=this.animationData.layers,s=i.length,a=t.layers,n=a.length;for(r=0;r<n;r+=1)for(e=0;e<s;){if(i[e].id==a[r].id){i[e]=a[r];break}e+=1}if((t.chars||t.fonts)&&(this.renderer.globalData.fontManager.addChars(t.chars),this.renderer.globalData.fontManager.addFonts(t.fonts,this.renderer.globalData.defs)),t.assets)for(s=t.assets.length,e=0;e<s;e+=1)this.animationData.assets.push(t.assets[e]);this.animationData.__complete=!1,dataManager.completeData(this.animationData,this.renderer.globalData.fontManager),this.renderer.includeLayers(t.layers),expressionsPlugin&&expressionsPlugin.initExpressions(this),this.loadNextSegment()},AnimationItem.prototype.loadNextSegment=function(){var t=this.animationData.segments;if(!t||0===t.length||!this.autoloadSegments)return this.trigger("data_ready"),void(this.timeCompleted=this.totalFrames);var e=t.shift();this.timeCompleted=e.time*this.frameRate;var r=this.path+this.fileName+"_"+this.segmentPos+".json";this.segmentPos+=1,assetLoader.load(r,this.includeLayers.bind(this),function(){this.trigger("data_failed")}.bind(this))},AnimationItem.prototype.loadSegments=function(){this.animationData.segments||(this.timeCompleted=this.totalFrames),this.loadNextSegment()},AnimationItem.prototype.imagesLoaded=function(){this.trigger("loaded_images"),this.checkLoaded()},AnimationItem.prototype.preloadImages=function(){this.imagePreloader.setAssetsPath(this.assetsPath),this.imagePreloader.setPath(this.path),this.imagePreloader.loadAssets(this.animationData.assets,this.imagesLoaded.bind(this))},AnimationItem.prototype.configAnimation=function(t){this.renderer&&(this.animationData=t,this.totalFrames=Math.floor(this.animationData.op-this.animationData.ip),this.renderer.configAnimation(t),t.assets||(t.assets=[]),this.renderer.searchExtraCompositions(t.assets),this.assets=this.animationData.assets,this.frameRate=this.animationData.fr,this.firstFrame=Math.round(this.animationData.ip),this.frameMult=this.animationData.fr/1e3,this.trigger("config_ready"),this.preloadImages(),this.loadSegments(),this.updaFrameModifier(),this.waitForFontsLoaded())},AnimationItem.prototype.waitForFontsLoaded=function(){this.renderer&&(this.renderer.globalData.fontManager.loaded()?this.checkLoaded():setTimeout(this.waitForFontsLoaded.bind(this),20))},AnimationItem.prototype.checkLoaded=function(){this.isLoaded||!this.renderer.globalData.fontManager.loaded()||!this.imagePreloader.loaded()&&"canvas"===this.renderer.rendererType||(this.isLoaded=!0,dataManager.completeData(this.animationData,this.renderer.globalData.fontManager),expressionsPlugin&&expressionsPlugin.initExpressions(this),this.renderer.initItems(),setTimeout(function(){this.trigger("DOMLoaded")}.bind(this),0),this.gotoFrame(),this.autoplay&&this.play())},AnimationItem.prototype.resize=function(){this.renderer.updateContainerSize()},AnimationItem.prototype.setSubframe=function(t){this.subframeEnabled=!!t},AnimationItem.prototype.gotoFrame=function(){this.currentFrame=this.subframeEnabled?this.currentRawFrame:~~this.currentRawFrame,this.timeCompleted!==this.totalFrames&&this.currentFrame>this.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame()},AnimationItem.prototype.renderFrame=function(){!1!==this.isLoaded&&this.renderer.renderFrame(this.currentFrame+this.firstFrame)},AnimationItem.prototype.play=function(t){t&&this.name!=t||!0===this.isPaused&&(this.isPaused=!1,this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(t){t&&this.name!=t||!1===this.isPaused&&(this.isPaused=!0,this._idle=!0,this.trigger("_idle"))},AnimationItem.prototype.togglePause=function(t){t&&this.name!=t||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(t){t&&this.name!=t||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.goToAndStop=function(t,e,r){r&&this.name!=r||(e?this.setCurrentRawFrameValue(t):this.setCurrentRawFrameValue(t*this.frameModifier),this.pause())},AnimationItem.prototype.goToAndPlay=function(t,e,r){this.goToAndStop(t,e,r),this.play()},AnimationItem.prototype.advanceTime=function(t){if(!0!==this.isPaused&&!1!==this.isLoaded){var e=this.currentRawFrame+t*this.frameModifier,r=!1;e>=this.totalFrames-1&&0<this.frameModifier?this.loop&&this.playCount!==this.loop?e>=this.totalFrames?(this.playCount+=1,this.checkSegments(e%this.totalFrames)||(this.setCurrentRawFrameValue(e%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(e):this.checkSegments(e>this.totalFrames?e%this.totalFrames:0)||(r=!0,e=this.totalFrames-1):e<0?this.checkSegments(e%this.totalFrames)||(!this.loop||this.playCount--<=0&&!0!==this.loop?(r=!0,e=0):(this.setCurrentRawFrameValue(this.totalFrames+e%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0)):this.setCurrentRawFrameValue(e),r&&(this.setCurrentRawFrameValue(e),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(t,e){this.playCount=0,t[1]<t[0]?(0<this.frameModifier&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.timeCompleted=this.totalFrames=t[0]-t[1],this.firstFrame=t[1],this.setCurrentRawFrameValue(this.totalFrames-.001-e)):t[1]>t[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.timeCompleted=this.totalFrames=t[1]-t[0],this.firstFrame=t[0],this.setCurrentRawFrameValue(.001+e)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(t,e){var r=-1;this.isPaused&&(this.currentRawFrame+this.firstFrame<t?r=t:this.currentRawFrame+this.firstFrame>e&&(r=e-t)),this.firstFrame=t,this.timeCompleted=this.totalFrames=e-t,-1!==r&&this.goToAndStop(r,!0)},AnimationItem.prototype.playSegments=function(t,e){if(e&&(this.segments.length=0),"object"==typeof t[0]){var r,i=t.length;for(r=0;r<i;r+=1)this.segments.push(t[r])}else this.segments.push(t);this.segments.length&&e&&this.adjustSegment(this.segments.shift(),0),this.isPaused&&this.play()},AnimationItem.prototype.resetSegments=function(t){this.segments.length=0,this.segments.push([this.animationData.ip,this.animationData.op]),t&&this.checkSegments(0)},AnimationItem.prototype.checkSegments=function(t){return!!this.segments.length&&(this.adjustSegment(this.segments.shift(),t),!0)},AnimationItem.prototype.destroy=function(t){t&&this.name!=t||!this.renderer||(this.renderer.destroy(),this.imagePreloader.destroy(),this.trigger("destroy"),this._cbs=null,this.onEnterFrame=this.onLoopComplete=this.onComplete=this.onSegmentStart=this.onDestroy=null,this.renderer=null)},AnimationItem.prototype.setCurrentRawFrameValue=function(t){this.currentRawFrame=t,this.gotoFrame()},AnimationItem.prototype.setSpeed=function(t){this.playSpeed=t,this.updaFrameModifier()},AnimationItem.prototype.setDirection=function(t){this.playDirection=t<0?-1:1,this.updaFrameModifier()},AnimationItem.prototype.updaFrameModifier=function(){this.frameModifier=this.frameMult*this.playSpeed*this.playDirection},AnimationItem.prototype.getPath=function(){return this.path},AnimationItem.prototype.getAssetsPath=function(t){var e="";if(t.e)e=t.p;else if(this.assetsPath){var r=t.p;-1!==r.indexOf("images/")&&(r=r.split("/")[1]),e=this.assetsPath+r}else e=this.path,e+=t.u?t.u:"",e+=t.p;return e},AnimationItem.prototype.getAssetData=function(t){for(var e=0,r=this.assets.length;e<r;){if(t==this.assets[e].id)return this.assets[e];e+=1}},AnimationItem.prototype.hide=function(){this.renderer.hide()},AnimationItem.prototype.show=function(){this.renderer.show()},AnimationItem.prototype.getDuration=function(t){return t?this.totalFrames:this.totalFrames/this.frameRate},AnimationItem.prototype.trigger=function(t){if(this._cbs&&this._cbs[t])switch(t){case"enterFrame":this.triggerEvent(t,new BMEnterFrameEvent(t,this.currentFrame,this.totalFrames,this.frameModifier));break;case"loopComplete":this.triggerEvent(t,new BMCompleteLoopEvent(t,this.loop,this.playCount,this.frameMult));break;case"complete":this.triggerEvent(t,new BMCompleteEvent(t,this.frameMult));break;case"segmentStart":this.triggerEvent(t,new BMSegmentStartEvent(t,this.firstFrame,this.totalFrames));break;case"destroy":this.triggerEvent(t,new BMDestroyEvent(t,this));break;default:this.triggerEvent(t)}"enterFrame"===t&&this.onEnterFrame&&this.onEnterFrame.call(this,new BMEnterFrameEvent(t,this.currentFrame,this.totalFrames,this.frameMult)),"loopComplete"===t&&this.onLoopComplete&&this.onLoopComplete.call(this,new BMCompleteLoopEvent(t,this.loop,this.playCount,this.frameMult)),"complete"===t&&this.onComplete&&this.onComplete.call(this,new BMCompleteEvent(t,this.frameMult)),"segmentStart"===t&&this.onSegmentStart&&this.onSegmentStart.call(this,new BMSegmentStartEvent(t,this.firstFrame,this.totalFrames)),"destroy"===t&&this.onDestroy&&this.onDestroy.call(this,new BMDestroyEvent(t,this))},AnimationItem.prototype.setParams=function(t){t.context&&(this.context=t.context);var e=t.animType?t.animType:t.renderer?t.renderer:"svg";switch(e){case"canvas":this.renderer=new CanvasRenderer(this,t.rendererSettings);break;default:throw new Error("Only canvas renderer is supported when using worker.")}if(this.renderer.setProjectInterface(this.projectInterface),this.animType=e,""===t.loop||null===t.loop||(!1===t.loop?this.loop=!1:!0===t.loop?this.loop=!0:this.loop=parseInt(t.loop)),this.autoplay=!("autoplay"in t)||t.autoplay,this.name=t.name?t.name:"",this.autoloadSegments=!t.hasOwnProperty("autoloadSegments")||t.autoloadSegments,this.assetsPath=null,t.animationData)this.configAnimation(t.animationData);else if(t.path)throw new Error("Canvas worker renderer cannot load animation from url")},AnimationItem.prototype.setData=function(t,e){throw new Error("Cannot set data on wrapper for canvas worker renderer")},AnimationItem.prototype.includeLayers=function(t){t.op>this.animationData.op&&(this.animationData.op=t.op,this.totalFrames=Math.floor(t.op-this.animationData.ip));var e,r,i=this.animationData.layers,s=i.length,a=t.layers,n=a.length;for(r=0;r<n;r+=1)for(e=0;e<s;){if(i[e].id==a[r].id){i[e]=a[r];break}e+=1}this.animationData.__complete=!1,dataManager.completeData(this.animationData,this.renderer.globalData.fontManager),this.renderer.includeLayers(t.layers),expressionsPlugin&&expressionsPlugin.initExpressions(this),this.loadNextSegment()},AnimationItem.prototype.loadNextSegment=function(){var t=this.animationData.segments;if(t&&0!==t.length&&this.autoloadSegments)throw new Error("Cannot load multiple segments in worker.");this.timeCompleted=this.totalFrames},AnimationItem.prototype.loadSegments=function(){this.animationData.segments||(this.timeCompleted=this.totalFrames),this.loadNextSegment()},AnimationItem.prototype.imagesLoaded=null,AnimationItem.prototype.preloadImages=null,AnimationItem.prototype.configAnimation=function(t){this.renderer&&(this.animationData=t,this.totalFrames=Math.floor(this.animationData.op-this.animationData.ip),this.renderer.configAnimation(t),t.assets||(t.assets=[]),this.renderer.searchExtraCompositions(t.assets),this.assets=this.animationData.assets,this.frameRate=this.animationData.fr,this.firstFrame=Math.round(this.animationData.ip),this.frameMult=this.animationData.fr/1e3,this.loadSegments(),this.updaFrameModifier(),this.checkLoaded())},AnimationItem.prototype.waitForFontsLoaded=null,AnimationItem.prototype.checkLoaded=function(){this.isLoaded||(this.isLoaded=!0,dataManager.completeData(this.animationData,null),expressionsPlugin&&expressionsPlugin.initExpressions(this),this.renderer.initItems(),this.gotoFrame())},AnimationItem.prototype.destroy=function(t){t&&this.name!=t||!this.renderer||(this.renderer.destroy(),this._cbs=null,this.onEnterFrame=this.onLoopComplete=this.onComplete=this.onSegmentStart=this.onDestroy=null,this.renderer=null)},AnimationItem.prototype.getPath=null;var Expressions=(xN={},xN.initExpressions=function(t){var e=0,r=[];t.renderer.compInterface=CompExpressionInterface(t.renderer),t.renderer.globalData.projectInterface.registerComposition(t.renderer),t.renderer.globalData.pushExpression=function(){e+=1},t.renderer.globalData.popExpression=function(){0==(e-=1)&&function(){var t,e=r.length;for(t=0;t<e;t+=1)r[t].release();r.length=0}()},t.renderer.globalData.registerExpressionProperty=function(t){-1===r.indexOf(t)&&r.push(t)}},xN),xN;expressionsPlugin=Expressions;var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null;function $bm_isInstanceOfArray(t){return t.constructor===Array||t.constructor===Float32Array}function isNumerable(t,e){return"number"===t||"boolean"===t||"string"===t||e instanceof Number}function $bm_neg(t){var e=typeof t;if("number"==e||"boolean"==e||t instanceof Number)return-t;if($bm_isInstanceOfArray(t)){var r,i=t.length,s=[];for(r=0;r<i;r+=1)s[r]=-t[r];return s}return t.propType?t.v:void 0}var easeInBez=BezierFactory.getBezierEasing(.333,0,.833,.833,"easeIn").get,easeOutBez=BezierFactory.getBezierEasing(.167,.167,.667,1,"easeOut").get,easeInOutBez=BezierFactory.getBezierEasing(.33,0,.667,1,"easeInOut").get;function sum(t,e){var r=typeof t,i=typeof e;if("string"==r||"string"==i)return t+e;if(isNumerable(r,t)&&isNumerable(i,e))return t+e;if($bm_isInstanceOfArray(t)&&isNumerable(i,e))return(t=t.slice(0))[0]=t[0]+e,t;if(isNumerable(r,t)&&$bm_isInstanceOfArray(e))return(e=e.slice(0))[0]=t+e[0],e;if($bm_isInstanceOfArray(t)&&$bm_isInstanceOfArray(e)){for(var s=0,a=t.length,n=e.length,o=[];s<a||s<n;)("number"==typeof t[s]||t[s]instanceof Number)&&("number"==typeof e[s]||e[s]instanceof Number)?o[s]=t[s]+e[s]:o[s]=void 0===e[s]?t[s]:t[s]||e[s],s+=1;return o}return 0}var add=sum;function sub(t,e){var r=typeof t,i=typeof e;if(isNumerable(r,t)&&isNumerable(i,e))return"string"==r&&(t=parseInt(t)),"string"==i&&(e=parseInt(e)),t-e;if($bm_isInstanceOfArray(t)&&isNumerable(i,e))return(t=t.slice(0))[0]=t[0]-e,t;if(isNumerable(r,t)&&$bm_isInstanceOfArray(e))return(e=e.slice(0))[0]=t-e[0],e;if($bm_isInstanceOfArray(t)&&$bm_isInstanceOfArray(e)){for(var s=0,a=t.length,n=e.length,o=[];s<a||s<n;)("number"==typeof t[s]||t[s]instanceof Number)&&("number"==typeof e[s]||e[s]instanceof Number)?o[s]=t[s]-e[s]:o[s]=void 0===e[s]?t[s]:t[s]||e[s],s+=1;return o}return 0}function mul(t,e){var r,i,s,a=typeof t,n=typeof e;if(isNumerable(a,t)&&isNumerable(n,e))return t*e;if($bm_isInstanceOfArray(t)&&isNumerable(n,e)){for(s=t.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t[i]*e;return r}if(isNumerable(a,t)&&$bm_isInstanceOfArray(e)){for(s=e.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t*e[i];return r}return 0}function div(t,e){var r,i,s,a=typeof t,n=typeof e;if(isNumerable(a,t)&&isNumerable(n,e))return t/e;if($bm_isInstanceOfArray(t)&&isNumerable(n,e)){for(s=t.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t[i]/e;return r}if(isNumerable(a,t)&&$bm_isInstanceOfArray(e)){for(s=e.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t/e[i];return r}return 0}function mod(t,e){return"string"==typeof t&&(t=parseInt(t)),"string"==typeof e&&(e=parseInt(e)),t%e}var $bm_sum=sum,$bm_sub=sub,$bm_mul=mul,$bm_div=div,$bm_mod=mod;function clamp(t,e,r){if(r<e){var i=r;r=e,e=i}return Math.min(Math.max(t,e),r)}function radiansToDegrees(t){return t/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(t){return t*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(t,e){if("number"==typeof t||t instanceof Number)return e=e||0,Math.abs(t-e);e||(e=helperLengthArray);var r,i=Math.min(t.length,e.length),s=0;for(r=0;r<i;r+=1)s+=Math.pow(e[r]-t[r],2);return Math.sqrt(s)}function normalize(t){return div(t,length(t))}function rgbToHsl(t){var e,r,i=t[0],s=t[1],a=t[2],n=Math.max(i,s,a),o=Math.min(i,s,a),h=(n+o)/2;if(n==o)e=r=0;else{var p=n-o;switch(r=.5<h?p/(2-n-o):p/(n+o),n){case i:e=(s-a)/p+(s<a?6:0);break;case s:e=(a-i)/p+2;break;case a:e=(i-s)/p+4}e/=6}return[e,r,h,t[3]]}function hue2rgb(t,e,r){return r<0&&(r+=1),1<r&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function hslToRgb(t){var e,r,i,s=t[0],a=t[1],n=t[2];if(0===a)e=r=i=n;else{var o=n<.5?n*(1+a):n+a-n*a,h=2*n-o;e=hue2rgb(h,o,s+1/3),r=hue2rgb(h,o,s),i=hue2rgb(h,o,s-1/3)}return[e,r,i,t[3]]}function linear(t,e,r,i,s){if(void 0!==i&&void 0!==s||(i=e,s=r,e=0,r=1),r<e){var a=r;r=e,e=a}if(t<=e)return i;if(r<=t)return s;var n=r===e?0:(t-e)/(r-e);if(!i.length)return i+(s-i)*n;var o,h=i.length,p=createTypedArray("float32",h);for(o=0;o<h;o+=1)p[o]=i[o]+(s[o]-i[o])*n;return p}function random(t,e){if(void 0===e&&(void 0===t?(t=0,e=1):(e=t,t=void 0)),e.length){var r,i=e.length;t||(t=createTypedArray("float32",i));var s=createTypedArray("float32",i),a=BMMath.random();for(r=0;r<i;r+=1)s[r]=t[r]+a*(e[r]-t[r]);return s}return void 0===t&&(t=0),t+BMMath.random()*(e-t)}function createPath(t,e,r,i){var s,a=t.length,n=shape_pool.newElement();n.setPathData(!!i,a);var o,h,p=[0,0];for(s=0;s<a;s+=1)o=e&&e[s]?e[s]:p,h=r&&r[s]?r[s]:p,n.setTripleAt(t[s][0],t[s][1],h[0]+t[s][0],h[1]+t[s][1],o[0]+t[s][0],o[1]+t[s][1],s,!0);return n}function initiateExpression(elem,data,property){var val=data.x,needsVelocity=/velocity(?![\w\d])/.test(val),_needsRandom=-1!==val.indexOf("random"),elemType=elem.data.ty,transform,$bm_transform,content,effect,thisProperty=property;thisProperty.valueAtTime=thisProperty.getValueAtTime,Object.defineProperty(thisProperty,"value",{get:function(){return thisProperty.v}}),elem.comp.frameDuration=1/elem.comp.globalData.frameRate,elem.comp.displayStartTime=0;var inPoint=elem.data.ip/elem.comp.globalData.frameRate,outPoint=elem.data.op/elem.comp.globalData.frameRate,width=elem.data.sw?elem.data.sw:0,height=elem.data.sh?elem.data.sh:0,name=elem.data.nm,loopIn,loop_in,loopOut,loop_out,smooth,toWorld,fromWorld,fromComp,toComp,fromCompToSurface,position,rotation,anchorPoint,scale,thisLayer,thisComp,mask,valueAtTime,velocityAtTime,__expression_functions=[],scoped_bm_rt;if(data.xf){var i,len=data.xf.length;for(i=0;i<len;i+=1)__expression_functions[i]=eval("(function(){ return "+data.xf[i]+"}())")}var expression_function=eval("[function _expression_function(){"+val+";scoped_bm_rt=$bm_rt}]")[0],numKeys=property.kf?data.k.length:0,active=!this.data||!0!==this.data.hd,wiggle=function(t,e){var r,i,s=this.pv.length?this.pv.length:1,a=createTypedArray("float32",s);var n=Math.floor(5*time);for(i=r=0;r<n;){for(i=0;i<s;i+=1)a[i]+=-e+2*e*BMMath.random();r+=1}var o=5*time,h=o-Math.floor(o),p=createTypedArray("float32",s);if(1<s){for(i=0;i<s;i+=1)p[i]=this.pv[i]+a[i]+(-e+2*e*BMMath.random())*h;return p}return this.pv+a[0]+(-e+2*e*BMMath.random())*h}.bind(this);function loopInDuration(t,e){return loopIn(t,e,!0)}function loopOutDuration(t,e){return loopOut(t,e,!0)}thisProperty.loopIn&&(loopIn=thisProperty.loopIn.bind(thisProperty),loop_in=loopIn),thisProperty.loopOut&&(loopOut=thisProperty.loopOut.bind(thisProperty),loop_out=loopOut),thisProperty.smooth&&(smooth=thisProperty.smooth.bind(thisProperty)),this.getValueAtTime&&(valueAtTime=this.getValueAtTime.bind(this)),this.getVelocityAtTime&&(velocityAtTime=this.getVelocityAtTime.bind(this));var comp=elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface),time,velocity,value,text,textIndex,textTotal,selectorValue;function lookAt(t,e){var r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],i=Math.atan2(r[0],Math.sqrt(r[1]*r[1]+r[2]*r[2]))/degToRads;return[-Math.atan2(r[1],r[2])/degToRads,i,0]}function easeOut(t,e,r,i,s){return applyEase(easeOutBez,t,e,r,i,s)}function easeIn(t,e,r,i,s){return applyEase(easeInBez,t,e,r,i,s)}function ease(t,e,r,i,s){return applyEase(easeInOutBez,t,e,r,i,s)}function applyEase(t,e,r,i,s,a){void 0===s?(s=r,a=i):e=(e-r)/(i-r);var n=t(e=1<e?1:e<0?0:e);if($bm_isInstanceOfArray(s)){var o,h=s.length,p=createTypedArray("float32",h);for(o=0;o<h;o+=1)p[o]=(a[o]-s[o])*n+s[o];return p}return(a-s)*n+s}function nearestKey(t){var e,r,i,s=data.k.length;if(data.k.length&&"number"!=typeof data.k[0])if(r=-1,(t*=elem.comp.globalData.frameRate)<data.k[0].t)r=1,i=data.k[0].t;else{for(e=0;e<s-1;e+=1){if(t===data.k[e].t){r=e+1,i=data.k[e].t;break}if(t>data.k[e].t&&t<data.k[e+1].t){i=t-data.k[e].t>data.k[e+1].t-t?(r=e+2,data.k[e+1].t):(r=e+1,data.k[e].t);break}}-1===r&&(r=e+1,i=data.k[e].t)}else i=r=0;var a={};return a.index=r,a.time=i/elem.comp.globalData.frameRate,a}function key(t){var e,r,i,s;if(!data.k.length||"number"==typeof data.k[0])throw new Error("The property has no keyframe at index "+t);for(t-=1,e={time:data.k[t].t/elem.comp.globalData.frameRate,value:[]},i=(s=t!==data.k.length-1||data.k[t].h?data.k[t].s:data.k[t].s||0===data.k[t].s?data.k[t-1].s:data.k[t].e).length,r=0;r<i;r+=1)e[r]=s[r],e.value[r]=s[r];return e}function framesToTime(t,e){return e||(e=elem.comp.globalData.frameRate),t/e}function timeToFrames(t,e){return t||0===t||(t=time),e||(e=elem.comp.globalData.frameRate),t*e}function seedRandom(t){BMMath.seedrandom(randSeed+t)}function sourceRectAtTime(){return elem.sourceRectAtTime()}function substring(t,e){return"string"==typeof value?void 0===e?value.substring(t):value.substring(t,e):""}function substr(t,e){return"string"==typeof value?void 0===e?value.substr(t):value.substr(t,e):""}var index=elem.data.ind,hasParent=!(!elem.hierarchy||!elem.hierarchy.length),parent,randSeed=Math.floor(1e6*Math.random()),globalData=elem.globalData;function executeExpression(t){return value=t,_needsRandom&&seedRandom(randSeed),this.frameExpressionId===elem.globalData.frameId&&"textSelector"!==this.propType?value:("textSelector"===this.propType&&(textIndex=this.textIndex,textTotal=this.textTotal,selectorValue=this.selectorValue),thisLayer||(text=elem.layerInterface.text,thisLayer=elem.layerInterface,thisComp=elem.comp.compInterface,toWorld=thisLayer.toWorld.bind(thisLayer),fromWorld=thisLayer.fromWorld.bind(thisLayer),fromComp=thisLayer.fromComp.bind(thisLayer),toComp=thisLayer.toComp.bind(thisLayer),mask=thisLayer.mask?thisLayer.mask.bind(thisLayer):null,fromCompToSurface=fromComp),transform||(transform=elem.layerInterface("ADBE Transform Group"),($bm_transform=transform)&&(anchorPoint=transform.anchorPoint)),4!==elemType||content||(content=thisLayer("ADBE Root Vectors Group")),effect||(effect=thisLayer(4)),(hasParent=!(!elem.hierarchy||!elem.hierarchy.length))&&!parent&&(parent=elem.hierarchy[0].layerInterface),time=this.comp.renderedFrame/this.comp.globalData.frameRate,needsVelocity&&(velocity=velocityAtTime(time)),expression_function(),this.frameExpressionId=elem.globalData.frameId,"shape"===scoped_bm_rt.propType&&(scoped_bm_rt=scoped_bm_rt.v),scoped_bm_rt)}return executeExpression}return ob.initiateExpression=initiateExpression,ob}(),expressionHelpers={searchExpressions:function(t,e,r){e.x&&(r.k=!0,r.x=!0,r.initiateExpression=ExpressionManager.initiateExpression,r.effectsSequence.push(r.initiateExpression(t,e,r).bind(r)))},getSpeedAtTime:function(t){var e=this.getValueAtTime(t),r=this.getValueAtTime(t+-.01),i=0;if(e.length){var s;for(s=0;s<e.length;s+=1)i+=Math.pow(r[s]-e[s],2);i=100*Math.sqrt(i)}else i=0;return i},getVelocityAtTime:function(t){if(void 0!==this.vel)return this.vel;var e,r,i=this.getValueAtTime(t),s=this.getValueAtTime(t+-.001);if(i.length)for(e=createTypedArray("float32",i.length),r=0;r<i.length;r+=1)e[r]=(s[r]-i[r])/-.001;else e=(s-i)/-.001;return e},getValueAtTime:function(t){return t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastFrame&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastFrame<t?this._cachingAtTime.lastIndex:0,this._cachingAtTime.value=this.interpolateValue(t,this._cachingAtTime),this._cachingAtTime.lastFrame=t),this._cachingAtTime.value},getStaticValueAtTime:function(){return this.pv},setGroupProperty:function(t){this.propertyGroup=t}};!function(){function o(t,e,r){if(!this.k||!this.keyframes)return this.pv;t=t?t.toLowerCase():"";var i,s,a,n,o,h=this.comp.renderedFrame,p=this.keyframes,l=p[p.length-1].t;if(h<=l)return this.pv;if(r?s=l-(i=e?Math.abs(l-elem.comp.globalData.frameRate*e):Math.max(0,l-this.elem.data.ip)):((!e||e>p.length-1)&&(e=p.length-1),i=l-(s=p[p.length-1-e].t)),"pingpong"===t){if(Math.floor((h-s)/i)%2!=0)return this.getValueAtTime((i-(h-s)%i+s)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var m=this.getValueAtTime(s/this.comp.globalData.frameRate,0),f=this.getValueAtTime(l/this.comp.globalData.frameRate,0),c=this.getValueAtTime(((h-s)%i+s)/this.comp.globalData.frameRate,0),d=Math.floor((h-s)/i);if(this.pv.length){for(n=(o=new Array(m.length)).length,a=0;a<n;a+=1)o[a]=(f[a]-m[a])*d+c[a];return o}return(f-m)*d+c}if("continue"===t){var u=this.getValueAtTime(l/this.comp.globalData.frameRate,0),y=this.getValueAtTime((l-.001)/this.comp.globalData.frameRate,0);if(this.pv.length){for(n=(o=new Array(u.length)).length,a=0;a<n;a+=1)o[a]=u[a]+(u[a]-y[a])*((h-l)/this.comp.globalData.frameRate)/5e-4;return o}return u+(h-l)/.001*(u-y)}}return this.getValueAtTime(((h-s)%i+s)/this.comp.globalData.frameRate,0)}function h(t,e,r){if(!this.k)return this.pv;t=t?t.toLowerCase():"";var i,s,a,n,o,h=this.comp.renderedFrame,p=this.keyframes,l=p[0].t;if(l<=h)return this.pv;if(r?s=l+(i=e?Math.abs(elem.comp.globalData.frameRate*e):Math.max(0,this.elem.data.op-l)):((!e||e>p.length-1)&&(e=p.length-1),i=(s=p[e].t)-l),"pingpong"===t){if(Math.floor((l-h)/i)%2==0)return this.getValueAtTime(((l-h)%i+l)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var m=this.getValueAtTime(l/this.comp.globalData.frameRate,0),f=this.getValueAtTime(s/this.comp.globalData.frameRate,0),c=this.getValueAtTime((i-(l-h)%i+l)/this.comp.globalData.frameRate,0),d=Math.floor((l-h)/i)+1;if(this.pv.length){for(n=(o=new Array(m.length)).length,a=0;a<n;a+=1)o[a]=c[a]-(f[a]-m[a])*d;return o}return c-(f-m)*d}if("continue"===t){var u=this.getValueAtTime(l/this.comp.globalData.frameRate,0),y=this.getValueAtTime((l+.001)/this.comp.globalData.frameRate,0);if(this.pv.length){for(n=(o=new Array(u.length)).length,a=0;a<n;a+=1)o[a]=u[a]+(u[a]-y[a])*(l-h)/.001;return o}return u+(u-y)*(l-h)/.001}}return this.getValueAtTime((i-(l-h)%i+l)/this.comp.globalData.frameRate,0)}function p(t,e){if(!this.k)return this.pv;if(t=.5*(t||.4),(e=Math.floor(e||5))<=1)return this.pv;var r,i,s=this.comp.renderedFrame/this.comp.globalData.frameRate,a=s-t,n=1<e?(s+t-a)/(e-1):1,o=0,h=0;for(r=this.pv.length?createTypedArray("float32",this.pv.length):0;o<e;){if(i=this.getValueAtTime(a+o*n),this.pv.length)for(h=0;h<this.pv.length;h+=1)r[h]+=i[h];else r+=i;o+=1}if(this.pv.length)for(h=0;h<this.pv.length;h+=1)r[h]/=e;else r/=e;return r}var s=TransformPropertyFactory.getTransformProperty;TransformPropertyFactory.getTransformProperty=function(t,e,r){var i=s(t,e,r);return i.dynamicProperties.length?i.getValueAtTime=function(t){console.warn("Transform at time not supported")}.bind(i):i.getValueAtTime=function(t){}.bind(i),i.setGroupProperty=expressionHelpers.setGroupProperty,i};var l=PropertyFactory.getProp;PropertyFactory.getProp=function(t,e,r,i,s){var a=l(t,e,r,i,s);a.kf?a.getValueAtTime=expressionHelpers.getValueAtTime.bind(a):a.getValueAtTime=expressionHelpers.getStaticValueAtTime.bind(a),a.setGroupProperty=expressionHelpers.setGroupProperty,a.loopOut=o,a.loopIn=h,a.smooth=p,a.getVelocityAtTime=expressionHelpers.getVelocityAtTime.bind(a),a.getSpeedAtTime=expressionHelpers.getSpeedAtTime.bind(a),a.numKeys=1===e.a?e.k.length:0,a.propertyIndex=e.ix;var n=0;return 0!==r&&(n=createTypedArray("float32",1===e.a?e.k[0].s.length:e.k.length)),a._cachingAtTime={lastFrame:initialDefaultFrame,lastIndex:0,value:n},expressionHelpers.searchExpressions(t,e,a),a.k&&s.addDynamicProperty(a),a};var t=ShapePropertyFactory.getConstructorFunction(),e=ShapePropertyFactory.getKeyframedConstructorFunction();function r(){}r.prototype={vertices:function(t,e){this.k&&this.getValue();var r=this.v;void 0!==e&&(r=this.getValueAtTime(e,0));var i,s=r._length,a=r[t],n=r.v,o=createSizedArray(s);for(i=0;i<s;i+=1)o[i]="i"===t||"o"===t?[a[i][0]-n[i][0],a[i][1]-n[i][1]]:[a[i][0],a[i][1]];return o},points:function(t){return this.vertices("v",t)},inTangents:function(t){return this.vertices("i",t)},outTangents:function(t){return this.vertices("o",t)},isClosed:function(){return this.v.c},pointOnPath:function(t,e){var r=this.v;void 0!==e&&(r=this.getValueAtTime(e,0)),this._segmentsLength||(this._segmentsLength=bez.getSegmentsLength(r));for(var i,s=this._segmentsLength,a=s.lengths,n=s.totalLength*t,o=0,h=a.length,p=0;o<h;){if(p+a[o].addedLength>n){var l=o,m=r.c&&o===h-1?0:o+1,f=(n-p)/a[o].addedLength;i=bez.getPointInSegment(r.v[l],r.v[m],r.o[l],r.i[m],f,a[o]);break}p+=a[o].addedLength,o+=1}return i||(i=r.c?[r.v[0][0],r.v[0][1]]:[r.v[r._length-1][0],r.v[r._length-1][1]]),i},vectorOnPath:function(t,e,r){t=1==t?this.v.c?0:.999:t;var i=this.pointOnPath(t,e),s=this.pointOnPath(t+.001,e),a=s[0]-i[0],n=s[1]-i[1],o=Math.sqrt(Math.pow(a,2)+Math.pow(n,2));return"tangent"===r?[a/o,n/o]:[-n/o,a/o]},tangentOnPath:function(t,e){return this.vectorOnPath(t,e,"tangent")},normalOnPath:function(t,e){return this.vectorOnPath(t,e,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([r],t),extendPrototype([r],e),e.prototype.getValueAtTime=function(t){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shape_pool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime<t?this._caching.lastIndex:0,this._cachingAtTime.lastTime=t,this.interpolateShape(t,this._cachingAtTime.shapeValue,this._cachingAtTime)),this._cachingAtTime.shapeValue},e.prototype.initiateExpression=ExpressionManager.initiateExpression;var n=ShapePropertyFactory.getShapeProp;ShapePropertyFactory.getShapeProp=function(t,e,r,i,s){var a=n(t,e,r,i,s);return a.propertyIndex=e.ix,a.lock=!1,3===r?expressionHelpers.searchExpressions(t,e.pt,a):4===r&&expressionHelpers.searchExpressions(t,e.ks,a),a.k&&t.addDynamicProperty(a),a}}(),TextProperty.prototype.getExpressionValue=function(t,e){var r=this.calculateExpression(e);if(t.t===r)return t;var i={};return this.copyData(i,t),i.t=r.toString(),i.__complete=!1,i},TextProperty.prototype.searchProperty=function(){var t=this.searchKeyframes(),e=this.searchExpressions();return this.kf=t||e,this.kf},TextProperty.prototype.searchExpressions=function(){if(this.data.d.x)return this.calculateExpression=ExpressionManager.initiateExpression.bind(this)(this.elem,this.data.d,this),this.addEffect(this.getExpressionValue.bind(this)),!0};var ShapeExpressionInterface=function(t,e,r){var i;function s(t){if("number"==typeof t)return i[t-1];for(var e=0,r=i.length;e<r;){if(i[e]._name===t)return i[e];e+=1}}return s.propertyGroup=r,i=DT(t,e,s),s.numProperties=i.length,s};function DT(t,e,r){var i,s=[],a=t?t.length:0;for(i=0;i<a;i+=1)"gr"==t[i].ty?s.push(FT(t[i],e[i],r)):"fl"==t[i].ty?s.push(GT(t[i],e[i],r)):"st"==t[i].ty?s.push(HT(t[i],e[i],r)):"tm"==t[i].ty?s.push(IT(t[i],e[i],r)):"tr"==t[i].ty||("el"==t[i].ty?s.push(KT(t[i],e[i],r)):"sr"==t[i].ty?s.push(LT(t[i],e[i],r)):"sh"==t[i].ty?s.push(PT(t[i],e[i],r)):"rc"==t[i].ty?s.push(MT(t[i],e[i],r)):"rd"==t[i].ty?s.push(NT(t[i],e[i],r)):"rp"==t[i].ty&&s.push(OT(t[i],e[i],r)));return s}function FT(t,e,r){var i=function(t){switch(t){case"ADBE Vectors Group":case"Contents":case 2:return i.content;default:return i.transform}};i.propertyGroup=function(t){return 1===t?i:r(t-1)};var s=function(t,e,r){function i(t){for(var e=0,r=s.length;e<r;){if(s[e]._name===t||s[e].mn===t||s[e].propertyIndex===t||s[e].ix===t||s[e].ind===t)return s[e];e+=1}if("number"==typeof t)return s[t-1]}var s;return i.propertyGroup=function(t){return 1===t?i:r(t-1)},s=DT(t.it,e.it,i.propertyGroup),i.numProperties=s.length,i.propertyIndex=t.cix,i._name=t.nm,i}(t,e,i.propertyGroup),a=function(e,t,r){function i(t){return 1==t?s:r(--t)}t.transform.mProps.o.setGroupProperty(i),t.transform.mProps.p.setGroupProperty(i),t.transform.mProps.a.setGroupProperty(i),t.transform.mProps.s.setGroupProperty(i),t.transform.mProps.r.setGroupProperty(i),t.transform.mProps.sk&&(t.transform.mProps.sk.setGroupProperty(i),t.transform.mProps.sa.setGroupProperty(i));function s(t){return e.a.ix===t||"Anchor Point"===t?s.anchorPoint:e.o.ix===t||"Opacity"===t?s.opacity:e.p.ix===t||"Position"===t?s.position:e.r.ix===t||"Rotation"===t||"ADBE Vector Rotation"===t?s.rotation:e.s.ix===t||"Scale"===t?s.scale:e.sk&&e.sk.ix===t||"Skew"===t?s.skew:e.sa&&e.sa.ix===t||"Skew Axis"===t?s.skewAxis:void 0}return t.transform.op.setGroupProperty(i),Object.defineProperties(s,{opacity:{get:ExpressionPropertyInterface(t.transform.mProps.o)},position:{get:ExpressionPropertyInterface(t.transform.mProps.p)},anchorPoint:{get:ExpressionPropertyInterface(t.transform.mProps.a)},scale:{get:ExpressionPropertyInterface(t.transform.mProps.s)},rotation:{get:ExpressionPropertyInterface(t.transform.mProps.r)},skew:{get:ExpressionPropertyInterface(t.transform.mProps.sk)},skewAxis:{get:ExpressionPropertyInterface(t.transform.mProps.sa)},_name:{value:e.nm}}),s.ty="tr",s.mn=e.mn,s.propertyGroup=r,s}(t.it[t.it.length-1],e.it[e.it.length-1],i.propertyGroup);return i.content=s,i.transform=a,Object.defineProperty(i,"_name",{get:function(){return t.nm}}),i.numProperties=t.np,i.propertyIndex=t.ix,i.nm=t.nm,i.mn=t.mn,i}function GT(t,e,r){function i(t){return"Color"===t||"color"===t?i.color:"Opacity"===t||"opacity"===t?i.opacity:void 0}return Object.defineProperties(i,{color:{get:ExpressionPropertyInterface(e.c)},opacity:{get:ExpressionPropertyInterface(e.o)},_name:{value:t.nm},mn:{value:t.mn}}),e.c.setGroupProperty(r),e.o.setGroupProperty(r),i}function HT(t,e,r){function i(t){return 1===t?ob:r(t-1)}function s(t){return 1===t?h:i(t-1)}var a,n,o=t.d?t.d.length:0,h={};for(a=0;a<o;a+=1)n=a,Object.defineProperty(h,t.d[n].nm,{get:ExpressionPropertyInterface(e.d.dataProps[n].p)}),e.d.dataProps[a].p.setGroupProperty(s);function p(t){return"Color"===t||"color"===t?p.color:"Opacity"===t||"opacity"===t?p.opacity:"Stroke Width"===t||"stroke width"===t?p.strokeWidth:void 0}return Object.defineProperties(p,{color:{get:ExpressionPropertyInterface(e.c)},opacity:{get:ExpressionPropertyInterface(e.o)},strokeWidth:{get:ExpressionPropertyInterface(e.w)},dash:{get:function(){return h}},_name:{value:t.nm},mn:{value:t.mn}}),e.c.setGroupProperty(i),e.o.setGroupProperty(i),e.w.setGroupProperty(i),p}function IT(e,t,r){function i(t){return 1==t?s:r(--t)}function s(t){return t===e.e.ix||"End"===t||"end"===t?s.end:t===e.s.ix?s.start:t===e.o.ix?s.offset:void 0}return s.propertyIndex=e.ix,t.s.setGroupProperty(i),t.e.setGroupProperty(i),t.o.setGroupProperty(i),s.propertyIndex=e.ix,s.propertyGroup=r,Object.defineProperties(s,{start:{get:ExpressionPropertyInterface(t.s)},end:{get:ExpressionPropertyInterface(t.e)},offset:{get:ExpressionPropertyInterface(t.o)},_name:{value:e.nm}}),s.mn=e.mn,s}function KT(e,t,r){function i(t){return 1==t?a:r(--t)}a.propertyIndex=e.ix;var s="tm"===t.sh.ty?t.sh.prop:t.sh;function a(t){return e.p.ix===t?a.position:e.s.ix===t?a.size:void 0}return s.s.setGroupProperty(i),s.p.setGroupProperty(i),Object.defineProperties(a,{size:{get:ExpressionPropertyInterface(s.s)},position:{get:ExpressionPropertyInterface(s.p)},_name:{value:e.nm}}),a.mn=e.mn,a}function LT(e,t,r){function i(t){return 1==t?a:r(--t)}var s="tm"===t.sh.ty?t.sh.prop:t.sh;function a(t){return e.p.ix===t?a.position:e.r.ix===t?a.rotation:e.pt.ix===t?a.points:e.or.ix===t||"ADBE Vector Star Outer Radius"===t?a.outerRadius:e.os.ix===t?a.outerRoundness:!e.ir||e.ir.ix!==t&&"ADBE Vector Star Inner Radius"!==t?e.is&&e.is.ix===t?a.innerRoundness:void 0:a.innerRadius}return a.propertyIndex=e.ix,s.or.setGroupProperty(i),s.os.setGroupProperty(i),s.pt.setGroupProperty(i),s.p.setGroupProperty(i),s.r.setGroupProperty(i),e.ir&&(s.ir.setGroupProperty(i),s.is.setGroupProperty(i)),Object.defineProperties(a,{position:{get:ExpressionPropertyInterface(s.p)},rotation:{get:ExpressionPropertyInterface(s.r)},points:{get:ExpressionPropertyInterface(s.pt)},outerRadius:{get:ExpressionPropertyInterface(s.or)},outerRoundness:{get:ExpressionPropertyInterface(s.os)},innerRadius:{get:ExpressionPropertyInterface(s.ir)},innerRoundness:{get:ExpressionPropertyInterface(s.is)},_name:{value:e.nm}}),a.mn=e.mn,a}function MT(e,t,r){function i(t){return 1==t?a:r(--t)}var s="tm"===t.sh.ty?t.sh.prop:t.sh;function a(t){return e.p.ix===t?a.position:e.r.ix===t?a.roundness:e.s.ix===t||"Size"===t||"ADBE Vector Rect Size"===t?a.size:void 0}return a.propertyIndex=e.ix,s.p.setGroupProperty(i),s.s.setGroupProperty(i),s.r.setGroupProperty(i),Object.defineProperties(a,{position:{get:ExpressionPropertyInterface(s.p)},roundness:{get:ExpressionPropertyInterface(s.r)},size:{get:ExpressionPropertyInterface(s.s)},_name:{value:e.nm}}),a.mn=e.mn,a}function NT(e,t,r){var i=t;function s(t){if(e.r.ix===t||"Round Corners 1"===t)return s.radius}return s.propertyIndex=e.ix,i.rd.setGroupProperty(function(t){return 1==t?s:r(--t)}),Object.defineProperties(s,{radius:{get:ExpressionPropertyInterface(i.rd)},_name:{value:e.nm}}),s.mn=e.mn,s}function OT(e,t,r){function i(t){return 1==t?a:r(--t)}var s=t;function a(t){return e.c.ix===t||"Copies"===t?a.copies:e.o.ix===t||"Offset"===t?a.offset:void 0}return a.propertyIndex=e.ix,s.c.setGroupProperty(i),s.o.setGroupProperty(i),Object.defineProperties(a,{copies:{get:ExpressionPropertyInterface(s.c)},offset:{get:ExpressionPropertyInterface(s.o)},_name:{value:e.nm}}),a.mn=e.mn,a}function PT(t,e,r){var i=e.sh;function s(t){if("Shape"===t||"shape"===t||"Path"===t||"path"===t||"ADBE Vector Shape"===t||2===t)return s.path}return i.setGroupProperty(function(t){return 1==t?s:r(--t)}),Object.defineProperties(s,{path:{get:function(){return i.k&&i.getValue(),i}},shape:{get:function(){return i.k&&i.getValue(),i}},_name:{value:t.nm},ix:{value:t.ix},mn:{value:t.mn}}),s}var TextExpressionInterface=function(e){var r;function t(){}return Object.defineProperty(t,"sourceText",{get:function(){e.textProperty.getValue();var t=e.textProperty.currentData.t;return void 0!==t&&(e.textProperty.currentData.t=void 0,(r=new String(t)).value=t||new String(t)),r}}),t},LayerExpressionInterface=function(e){var r;function i(t){switch(t){case"ADBE Root Vectors Group":case"Contents":case 2:return i.shapeInterface;case 1:case 6:case"Transform":case"transform":case"ADBE Transform Group":return r;case 4:case"ADBE Effect Parade":case"effects":case"Effects":return i.effect}}i.toWorld=_V,i.fromWorld=aW,i.toComp=_V,i.fromComp=bW,i.sampleImage=cW,i.sourceRectAtTime=e.sourceRectAtTime.bind(e);var t=getDescriptor(r=TransformExpressionInterface((i._elem=e).finalTransform.mProp),"anchorPoint");return Object.defineProperties(i,{hasParent:{get:function(){return e.hierarchy.length}},parent:{get:function(){return e.hierarchy[0].layerInterface}},rotation:getDescriptor(r,"rotation"),scale:getDescriptor(r,"scale"),position:getDescriptor(r,"position"),opacity:getDescriptor(r,"opacity"),anchorPoint:t,anchor_point:t,transform:{get:function(){return r}},active:{get:function(){return e.isInRange}}}),i.startTime=e.data.st,i.index=e.data.ind,i.source=e.data.refId,i.height=0===e.data.ty?e.data.h:100,i.width=0===e.data.ty?e.data.w:100,i.inPoint=e.data.ip/e.comp.globalData.frameRate,i.outPoint=e.data.op/e.comp.globalData.frameRate,i._name=e.data.nm,i.registerMaskInterface=function(t){i.mask=new MaskManagerInterface(t,e)},i.registerEffectsInterface=function(t){i.effect=t},i};function _V(t,e){var r=new Matrix;if(r.reset(),this._elem.finalTransform.mProp.applyToMatrix(r),this._elem.hierarchy&&this._elem.hierarchy.length){var i,s=this._elem.hierarchy.length;for(i=0;i<s;i+=1)this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(r);return r.applyToPointArray(t[0],t[1],t[2]||0)}return r.applyToPointArray(t[0],t[1],t[2]||0)}function aW(t,e){var r=new Matrix;if(r.reset(),this._elem.finalTransform.mProp.applyToMatrix(r),this._elem.hierarchy&&this._elem.hierarchy.length){var i,s=this._elem.hierarchy.length;for(i=0;i<s;i+=1)this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(r);return r.inversePoint(t)}return r.inversePoint(t)}function bW(t){var e=new Matrix;if(e.reset(),this._elem.finalTransform.mProp.applyToMatrix(e),this._elem.hierarchy&&this._elem.hierarchy.length){var r,i=this._elem.hierarchy.length;for(r=0;r<i;r+=1)this._elem.hierarchy[r].finalTransform.mProp.applyToMatrix(e);return e.inversePoint(t)}return e.inversePoint(t)}function cW(){return[1,1,1,1]}var CompExpressionInterface=function(i){function t(t){for(var e=0,r=i.layers.length;e<r;){if(i.layers[e].nm===t||i.layers[e].ind===t)return i.elements[e].layerInterface;e+=1}return null}return Object.defineProperty(t,"_name",{value:i.data.nm}),(t.layer=t).pixelAspect=1,t.height=i.data.h||i.globalData.compSize.h,t.width=i.data.w||i.globalData.compSize.w,t.pixelAspect=1,t.frameDuration=1/i.globalData.frameRate,t.displayStartTime=0,t.numLayers=i.layers.length,t},TransformExpressionInterface=function(t){function e(t){switch(t){case"scale":case"Scale":case"ADBE Scale":case 6:return e.scale;case"rotation":case"Rotation":case"ADBE Rotation":case"ADBE Rotate Z":case 10:return e.rotation;case"ADBE Rotate X":return e.xRotation;case"ADBE Rotate Y":return e.yRotation;case"position":case"Position":case"ADBE Position":case 2:return e.position;case"ADBE Position_0":return e.xPosition;case"ADBE Position_1":return e.yPosition;case"ADBE Position_2":return e.zPosition;case"anchorPoint":case"AnchorPoint":case"Anchor Point":case"ADBE AnchorPoint":case 1:return e.anchorPoint;case"opacity":case"Opacity":case 11:return e.opacity}}if(Object.defineProperty(e,"rotation",{get:ExpressionPropertyInterface(t.r||t.rz)}),Object.defineProperty(e,"zRotation",{get:ExpressionPropertyInterface(t.rz||t.r)}),Object.defineProperty(e,"xRotation",{get:ExpressionPropertyInterface(t.rx)}),Object.defineProperty(e,"yRotation",{get:ExpressionPropertyInterface(t.ry)}),Object.defineProperty(e,"scale",{get:ExpressionPropertyInterface(t.s)}),t.p)var r=ExpressionPropertyInterface(t.p);return Object.defineProperty(e,"position",{get:function(){return t.p?r():[t.px.v,t.py.v,t.pz?t.pz.v:0]}}),Object.defineProperty(e,"xPosition",{get:ExpressionPropertyInterface(t.px)}),Object.defineProperty(e,"yPosition",{get:ExpressionPropertyInterface(t.py)}),Object.defineProperty(e,"zPosition",{get:ExpressionPropertyInterface(t.pz)}),Object.defineProperty(e,"anchorPoint",{get:ExpressionPropertyInterface(t.a)}),Object.defineProperty(e,"opacity",{get:ExpressionPropertyInterface(t.o)}),Object.defineProperty(e,"skew",{get:ExpressionPropertyInterface(t.sk)}),Object.defineProperty(e,"skewAxis",{get:ExpressionPropertyInterface(t.sa)}),Object.defineProperty(e,"orientation",{get:ExpressionPropertyInterface(t.or)}),e},ProjectInterface=function(){function t(t){for(var e=0,r=this.compositions.length;e<r;){if(this.compositions[e].data&&this.compositions[e].data.nm===t)return this.compositions[e].prepareFrame&&this.compositions[e].data.xt&&this.compositions[e].prepareFrame(this.currentFrame),this.compositions[e].compInterface;e+=1}}return t.compositions=[],t.currentFrame=0,t.registerComposition=LW,t};function LW(t){this.compositions.push(t)}var EffectsExpressionInterface={createEffectsInterface:function(s,t){if(s.effectsManager){var e,a=[],r=s.data.ef,i=s.effectsManager.effectElements.length;for(e=0;e<i;e+=1)a.push(TW(r[e],s.effectsManager.effectElements[e],t,s));return function(t){for(var e=s.data.ef||[],r=0,i=e.length;r<i;){if(t===e[r].nm||t===e[r].mn||t===e[r].ix)return a[r];r+=1}}}}};function TW(s,t,e,r){var i,a=[],n=s.ef.length;for(i=0;i<n;i+=1)5===s.ef[i].ty?a.push(TW(s.ef[i],t.effectElements[i],t.effectElements[i].propertyGroup,r)):a.push(UW(t.effectElements[i],s.ef[i].ty,r,o));function o(t){return 1===t?h:e(t-1)}var h=function(t){for(var e=s.ef,r=0,i=e.length;r<i;){if(t===e[r].nm||t===e[r].mn||t===e[r].ix)return 5===e[r].ty?a[r]:a[r]();r+=1}return a[0]()};return h.propertyGroup=o,"ADBE Color Control"===s.mn&&Object.defineProperty(h,"color",{get:function(){return a[0]()}}),Object.defineProperty(h,"numProperties",{get:function(){return s.np}}),h.active=h.enabled=0!==s.en,h}function UW(t,e,r,i){var s=ExpressionPropertyInterface(t.p);return t.p.setGroupProperty&&t.p.setGroupProperty(i),function(){return 10===e?r.comp.compInterface(t.p.v):s()}}var MaskManagerInterface=function(){function a(t,e){this._mask=t,this._data=e}Object.defineProperty(a.prototype,"maskPath",{get:function(){return this._mask.prop.k&&this._mask.prop.getValue(),this._mask.prop}});return function(e,t){var r,i=createSizedArray(e.viewData.length),s=e.viewData.length;for(r=0;r<s;r+=1)i[r]=new a(e.viewData[r],e.masksProperties[r]);return function(t){for(r=0;r<s;){if(e.masksProperties[r].nm===t)return i[r];r+=1}}}}(),ExpressionPropertyInterface=(KX={pv:0,v:0,mult:1},LX={pv:[0,0,0],v:[0,0,0],mult:1},function(t){return t?"unidimensional"===t.propType?function(t){t&&"pv"in t||(t=KX);var e=1/t.mult,r=t.pv*e,i=new Number(r);return i.value=r,MX(i,t,"unidimensional"),function(){return t.k&&t.getValue(),r=t.v*e,i.value!==r&&((i=new Number(r)).value=r,MX(i,t,"unidimensional")),i}}(t):function(e){e&&"pv"in e||(e=LX);var r=1/e.mult,i=e.pv.length,s=createTypedArray("float32",i),a=createTypedArray("float32",i);return s.value=a,MX(s,e,"multidimensional"),function(){e.k&&e.getValue();for(var t=0;t<i;t+=1)s[t]=a[t]=e.v[t]*r;return s}}(t):PX}),KX,LX,fY,gY;function MX(i,s,a){Object.defineProperty(i,"velocity",{get:function(){return s.getVelocityAtTime(s.comp.currentFrame)}}),i.numKeys=s.keyframes?s.keyframes.length:0,i.key=function(t){if(i.numKeys){var e="";e="s"in s.keyframes[t-1]?s.keyframes[t-1].s:"e"in s.keyframes[t-2]?s.keyframes[t-2].e:s.keyframes[t-2].s;var r="unidimensional"===a?new Number(e):Object.assign({},e);return r.time=s.keyframes[t-1].t/s.elem.comp.globalData.frameRate,r}return 0},i.valueAtTime=s.getValueAtTime,i.speedAtTime=s.getSpeedAtTime,i.velocityAtTime=s.getVelocityAtTime,i.propertyGroup=s.propertyGroup}function PX(){return KX}function hY(t,e){return this.textIndex=t+1,this.textTotal=e,this.v=this.getValue()*this.mult,this.v}function SliderEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function AngleEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function ColorEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,1,0,r)}function PointEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,1,0,r)}function LayerIndexEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function MaskIndexEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function CheckboxEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function NoValueEffect(){this.p={}}function EffectsManager(t,e){var r=t.ef||[];this.effectElements=[];var i,s,a=r.length;for(i=0;i<a;i++)s=new GroupEffect(r[i],e),this.effectElements.push(s)}function GroupEffect(t,e){this.init(t,e)}fY=function(t,e){this.pv=1,this.comp=t.comp,this.elem=t,this.mult=.01,this.propType="textSelector",this.textTotal=e.totalChars,this.selectorValue=100,this.lastValue=[1,1,1],this.k=!0,this.x=!0,this.getValue=ExpressionManager.initiateExpression.bind(this)(t,e,this),this.getMult=hY,this.getVelocityAtTime=expressionHelpers.getVelocityAtTime,this.kf?this.getValueAtTime=expressionHelpers.getValueAtTime.bind(this):this.getValueAtTime=expressionHelpers.getStaticValueAtTime.bind(this),this.setGroupProperty=expressionHelpers.setGroupProperty},gY=TextSelectorProp.getTextSelectorProp,TextSelectorProp.getTextSelectorProp=function(t,e,r){return 1===e.t?new fY(t,e,r):gY(t,e,r)},extendPrototype([DynamicPropertyContainer],GroupEffect),GroupEffect.prototype.getValue=GroupEffect.prototype.iterateDynamicProperties,GroupEffect.prototype.init=function(t,e){this.data=t,this.effectElements=[],this.initDynamicPropertyContainer(e);var r,i,s=this.data.ef.length,a=this.data.ef;for(r=0;r<s;r+=1){switch(i=null,a[r].ty){case 0:i=new SliderEffect(a[r],e,this);break;case 1:i=new AngleEffect(a[r],e,this);break;case 2:i=new ColorEffect(a[r],e,this);break;case 3:i=new PointEffect(a[r],e,this);break;case 4:case 7:i=new CheckboxEffect(a[r],e,this);break;case 10:i=new LayerIndexEffect(a[r],e,this);break;case 11:i=new MaskIndexEffect(a[r],e,this);break;case 5:i=new EffectsManager(a[r],e,this);break;default:i=new NoValueEffect(a[r],e,this)}i&&this.effectElements.push(i)}};var lottiejs={},_isFrozen=!1;function loadAnimation(t){return animationManager.loadAnimation(t)}function setQuality(t){if("string"==typeof t)switch(t){case"high":defaultCurveSegments=200;break;case"medium":defaultCurveSegments=50;break;case"low":defaultCurveSegments=10}else!isNaN(t)&&1<t&&(defaultCurveSegments=t);roundValues(!(50<=defaultCurveSegments))}lottiejs.play=animationManager.play,lottiejs.pause=animationManager.pause,lottiejs.togglePause=animationManager.togglePause,lottiejs.setSpeed=animationManager.setSpeed,lottiejs.setDirection=animationManager.setDirection,lottiejs.stop=animationManager.stop,lottiejs.registerAnimation=animationManager.registerAnimation,lottiejs.loadAnimation=loadAnimation,lottiejs.resize=animationManager.resize,lottiejs.goToAndStop=animationManager.goToAndStop,lottiejs.destroy=animationManager.destroy,lottiejs.setQuality=setQuality,lottiejs.freeze=animationManager.freeze,lottiejs.unfreeze=animationManager.unfreeze,lottiejs.getRegisteredAnimations=animationManager.getRegisteredAnimations,lottiejs.version="5.5.2";var renderer="";return lottiejs}({}),currentAnimation=null,events={INITIALIZED:"initialized",RESIZED:"resized",PLAYING:"playing",PAUSED:"paused"};getCurrentCanvasSize=function(){var t=currentAnimation.renderer.canvasContext.canvas;return{height:t.height,width:t.width}},sendResizeEvent=function(){currentAnimation.renderer.canvasContext.canvas;postMessage({name:events.RESIZED,size:getCurrentCanvasSize()})},sendPlayEvent=function(){postMessage({name:events.PLAYING})},sendPauseEvent=function(){postMessage({name:events.PAUSED})},sendInitializedEvent=function(){currentAnimation.renderer.canvasContext.canvas;postMessage({name:events.INITIALIZED,success:currentAnimation.isLoaded})},initAnimation=function(t,e,r){if(!currentAnimation&&t&&e){var i=r.getContext("2d");currentAnimation=lottiejs.loadAnimation({renderer:"canvas",loop:e.loop,autoplay:e.autoplay,animationData:t,rendererSettings:{context:i,scaleMode:"noScale",clearCanvas:!0}}),sendInitializedEvent(),e.autoplay&&currentAnimation.play(),currentAnimation.isLoaded&&!currentAnimation.isPaused&&sendPlayEvent()}},updateCanvasSize=function(t,e){e&&t&&(0<e.height&&0<e.width&&(t.height=e.height,t.width=e.width),currentAnimation&&(currentAnimation.resize(),sendResizeEvent()))},updateAnimationState=function(t){t&&(t.play&&currentAnimation.isPaused?(currentAnimation.play(),sendPlayEvent()):t.play||currentAnimation.isPaused||(currentAnimation.pause(),sendPauseEvent()))},onmessage=function(t){if(t&&t.data){var e=null;if(currentAnimation)e=currentAnimation.renderer.canvasContext.canvas;else{if(!t.data.canvas)return;e=t.data.canvas}updateCanvasSize(e,t.data.drawSize),initAnimation(t.data.animationData,t.data.params,e),updateAnimationState(t.data.control)}};
##############################################
chromium-84.0.4147.105/third_party/lottie/lottie_worker.js-10049-        var scoped_bm_rt;
chromium-84.0.4147.105/third_party/lottie/lottie_worker.js:10050:        var expression_function = eval('[function _expression_function(){' + val+';scoped_bm_rt=$bm_rt}' + ']')[0];
chromium-84.0.4147.105/third_party/lottie/lottie_worker.js-10051-        var numKeys = property.kf ? data.k.length : 0;
##############################################
chromium-84.0.4147.105/third_party/wayland-protocols/src/autogen.sh-2-
chromium-84.0.4147.105/third_party/wayland-protocols/src/autogen.sh:3:test -n "$srcdir" || srcdir=`dirname "$0"`
chromium-84.0.4147.105/third_party/wayland-protocols/src/autogen.sh-4-test -n "$srcdir" || srcdir=.
##############################################
chromium-84.0.4147.105/third_party/wayland-protocols/src/configure.ac-22-                PKG_CHECK_MODULES(WAYLAND_SCANNER, [wayland-scanner])
chromium-84.0.4147.105/third_party/wayland-protocols/src/configure.ac:23:                wayland_scanner=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`
chromium-84.0.4147.105/third_party/wayland-protocols/src/configure.ac-24-        else
##############################################
chromium-84.0.4147.105/third_party/grpc/src/include/grpcpp/security/server_credentials_impl.h-50-
chromium-84.0.4147.105/third_party/grpc/src/include/grpcpp/security/server_credentials_impl.h:51:  /// Tries to bind \a server to the given \a addr (eg, localhost:1234,
chromium-84.0.4147.105/third_party/grpc/src/include/grpcpp/security/server_credentials_impl.h-52-  /// 192.168.1.1:31416, [::1]:27182, etc.)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/include/grpcpp/server_builder_impl.h-109-
chromium-84.0.4147.105/third_party/grpc/src/include/grpcpp/server_builder_impl.h:110:  /// Enlists an endpoint \a addr (port with an optional IP address) to
chromium-84.0.4147.105/third_party/grpc/src/include/grpcpp/server_builder_impl.h-111-  /// bind the \a grpc::Server object to be created to.
##############################################
chromium-84.0.4147.105/third_party/grpc/src/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh-31-  do
chromium-84.0.4147.105/third_party/grpc/src/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh:32:    files="$files `find ${CLANG_FORMAT_ROOT}/$dir -name $glob -and -not -name '*.generated.*' -and -not -name '*.upb.h' -and -not -name '*.upb.c' -and -not -name '*.pb.h' -and -not -name '*.pb.c' -and -not -name '*.pb.cc' -and -not -name '*.pbobjc.h' -and -not -name '*.pbobjc.m' -and -not -name '*.pbrpc.h' -and -not -name '*.pbrpc.m' -and -not -name end2end_tests.cc -and -not -name end2end_nosec_tests.cc -and -not -name public_headers_must_be_c89.c -and -not -name grpc_shadow_boringssl.h`"
chromium-84.0.4147.105/third_party/grpc/src/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh-33-  done
##############################################
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/pull_requests_interval.sh-73-    curl -s "https://api.github.com/repos/grpc/grpc/pulls/$id$addendum" > $out
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/pull_requests_interval.sh:74:    echo -n " "`grep '"title"' $out`
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/pull_requests_interval.sh:75:    echo -n " "`grep '"login"' $out | head -1`
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/pull_requests_interval.sh-76-    echo -n "  \"pr\": $id }"
##############################################
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/README.rst-89-
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/README.rst:90:  :code:`pip install --ignore-installed $OFFENDING_DEPENDENCY`
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/README.rst-91-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/README.rst-141-
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/README.rst:142:Given protobuf include directories :code:`$INCLUDE`, an output directory
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/README.rst:143::code:`$OUTPUT`, and proto files :code:`$PROTO_FILES`, invoke as:
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/README.rst-144-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/grpc_version.py-14-
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/grpc_version.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/python/grpcio_tools/grpc_version.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/check_protobuf_pod_version.sh-17-
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/check_protobuf_pod_version.sh:18:cd `dirname $0`/../..
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/check_protobuf_pod_version.sh-19-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/guard_headers.sh-18-
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/guard_headers.sh:19:cd `dirname $0`/../..
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/guard_headers.sh-20-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/guard_headers.sh-27-    find . -name "*.h" | while read f ; do
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/guard_headers.sh:28:      guard=${prefix}_`echo ${f#*/} | tr '[:lower:]/.-' '[:upper:]___'`
chromium-84.0.4147.105/third_party/grpc/src/tools/distrib/guard_headers.sh-29-      if [ "$comment_language" = "c++" ] ; then
##############################################
chromium-84.0.4147.105/third_party/grpc/src/tools/buildgen/generate_projects.sh-23-
chromium-84.0.4147.105/third_party/grpc/src/tools/buildgen/generate_projects.sh:24:cd `dirname $0`/../..
chromium-84.0.4147.105/third_party/grpc/src/tools/buildgen/generate_projects.sh-25-mako_renderer=tools/buildgen/mako_renderer.py
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-555-OPENSSL_ALPN_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/openssl-alpn.c $(addprefix -l, $(OPENSSL_LIBS)) $(LDFLAGS)
chromium-84.0.4147.105/third_party/grpc/src/Makefile:556:BORINGSSL_COMPILE_CHECK_CMD = $(CC) $(CPPFLAGS) -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare -Wno-implicit-fallthrough $(NO_W_EXTRA_SEMI) -o $(TMPOUT) test/build/boringssl.c $(LDFLAGS)
chromium-84.0.4147.105/third_party/grpc/src/Makefile-557-ZLIB_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/zlib.c -lz $(LDFLAGS)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2641-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2642:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2643-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2646-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2647:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2648-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2657-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2658:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2659-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2662-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2663:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2664-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2673-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2674:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2675-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2678-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2679:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2680-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2689-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2690:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2691-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2694-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2695:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2696-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2705-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2706:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2707-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2710-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2711:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2712-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2721-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2722:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2723-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2726-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2727:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2728-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2737-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2738:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2739-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2742-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2743:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2744-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2754-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2755:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2756-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2759-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2760:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2761-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=generate_mock_code=true:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2770-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2771:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2772-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2775-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2776:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2777-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2786-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2787:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2788-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2791-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2792:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2793-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2803-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2804:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2805-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2808-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2809:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2810-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=generate_mock_code=true:$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2819-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2820:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2821-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2824-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2825:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2826-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2835-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2836:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2837-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2840-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2841:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2842-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2851-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2852:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2853-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2856-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2857:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2858-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2867-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2868:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2869-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2872-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2873:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2874-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2883-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2884:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2885-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2888-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2889:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2890-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2899-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2900:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2901-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2904-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2905:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2906-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2915-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2916:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2917-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2920-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2921:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2922-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2931-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2932:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2933-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2936-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2937:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2938-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2947-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2948:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2949-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2952-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2953:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2954-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2963-	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2964:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2965-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2968-	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2969:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2970-	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2978-	$(E) "[DTRACE]  Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2979:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2980-	$(Q) $(DTRACE) -C -h -s $< -o $@
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2987-	$(E) "[C]       Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2988:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2989-	$(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2992-	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2993:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2994-	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2997-	$(E) "[HOSTCXX] Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:2998:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-2999-	$(Q) $(HOST_CXX) $(HOST_CXXFLAGS) $(HOST_CPPFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3002-	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3003:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3004-	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(COREFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3007-	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3008:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3009-	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(COREFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3012-	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3013:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3014-	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3017-	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3018:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3019-	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3275-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3276:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3277-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libaddress_sorting.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3287-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3288:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3289-	$(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/address_sorting$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libaddress_sorting$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/address_sorting$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBADDRESS_SORTING_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBS)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3292-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3293:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3294-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3328-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3329:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3330-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libalts_test_util.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3376-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3377:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3378-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libcxxabi.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3471-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3472:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3473-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgpr.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3483-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3484:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3485-	$(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgpr$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/gpr$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGPR_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBS)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3488-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3489:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3490-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3897-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3898:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3899-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3909-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3910:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3911-	$(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBS)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3914-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:3915:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-3916-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4279-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:4280:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4281-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_cronet.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4291-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:4292:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4293-	$(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_cronet$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_cronet$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_cronet$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_CRONET_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBS)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4296-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:4297:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4298-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4619-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:4620:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4621-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4927-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:4928:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-4929-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5248-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5249:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5250-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5260-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5261:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5262-	$(Q) $(LD) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_unsecure$(SHARED_VERSION_CORE)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_unsecure$(SHARED_VERSION_CORE).$(SHARED_EXT_CORE) $(LIBGRPC_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBS)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5265-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5266:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5267-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5300-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5301:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5302-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libreconnect_server.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5339-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5340:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5341-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5388-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5389:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5390-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libbm_callback_test_service_impl.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5438-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5439:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5440-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libdns_test_util.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5795-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5796:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5797-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5807-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5808:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5809-	$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++$(SHARED_VERSION_CPP).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++$(SHARED_VERSION_CPP)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(LIBGRPC++_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) -lgrpc$(SHARED_VERSION_CORE)-dll -lgpr$(SHARED_VERSION_CORE)-dll
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5812-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5813:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5814-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5862-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:5863:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-5864-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6431-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6432:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6433-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_cronet.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6443-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6444:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6445-	$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++_cronet$(SHARED_VERSION_CPP).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++_cronet$(SHARED_VERSION_CPP)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++_cronet$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(LIBGRPC++_CRONET_OBJS) $(OPENSSL_MERGE_LIBS) $(LDLIBS_SECURE) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) -lgpr$(SHARED_VERSION_CORE)-dll -lgrpc_cronet$(SHARED_VERSION_CORE)-dll -lgrpc$(SHARED_VERSION_CORE)-dll
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6448-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6449:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6450-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6503-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6504:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6505-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_error_details.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6515-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6516:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6517-	$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++_error_details$(SHARED_VERSION_CPP).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++_error_details$(SHARED_VERSION_CPP)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++_error_details$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(LIBGRPC++_ERROR_DETAILS_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) -lgrpc++$(SHARED_VERSION_CPP)-dll
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6520-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6521:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6522-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6573-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6574:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6575-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6630-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6631:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6632-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6642-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6643:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6644-	$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++_reflection$(SHARED_VERSION_CPP).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++_reflection$(SHARED_VERSION_CPP)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++_reflection$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(LIBGRPC++_REFLECTION_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) -lgrpc++$(SHARED_VERSION_CPP)-dll -lgrpc$(SHARED_VERSION_CORE)-dll
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6647-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6648:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6649-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6698-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6699:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6700-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6870-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:6871:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-6872-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7047-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7048:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7049-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7389-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7390:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7391-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7401-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7402:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7403-	$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc++_unsecure$(SHARED_VERSION_CPP).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc++_unsecure$(SHARED_VERSION_CPP)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc++_unsecure$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(LIBGRPC++_UNSECURE_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) -lgpr$(SHARED_VERSION_CORE)-dll -lgrpc_unsecure$(SHARED_VERSION_CORE)-dll
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7406-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7407:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7408-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7452-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7453:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7454-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7508-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7509:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7510-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7561-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7562:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7563-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7612-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7613:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7614-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpcpp_channelz.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7624-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7625:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7626-	$(Q) $(LDXX) $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpcpp_channelz$(SHARED_VERSION_CPP).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpcpp_channelz$(SHARED_VERSION_CPP)-dll.a -o $(LIBDIR)/$(CONFIG)/grpcpp_channelz$(SHARED_VERSION_CPP).$(SHARED_EXT_CPP) $(LIBGRPCPP_CHANNELZ_OBJS) $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) -lgrpc++$(SHARED_VERSION_CPP)-dll -lgrpc$(SHARED_VERSION_CORE)-dll
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7629-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7630:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7631-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7683-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7684:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7685-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libhttp2_client_main.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7734-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7735:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7736-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7788-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7789:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7790-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_client_main.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7839-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7840:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7841-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7891-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7892:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7893-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7941-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:7942:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-7943-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libinterop_server_main.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8009-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8010:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8011-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libqps.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8064-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8065:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8066-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8076-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8077:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8078-	$(Q) $(LD) $(LDFLAGS) $(if $(subst Linux,,$(SYSTEM)),,-Wl$(comma)-wrap$(comma)memcpy) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=$(LIBDIR)/$(CONFIG)/grpc_csharp_ext$(SHARED_VERSION_CSHARP).def -Wl,--out-implib=$(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext$(SHARED_VERSION_CSHARP)-dll.a -o $(LIBDIR)/$(CONFIG)/grpc_csharp_ext$(SHARED_VERSION_CSHARP).$(SHARED_EXT_CSHARP) $(LIBGRPC_CSHARP_EXT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(ZLIB_MERGE_LIBS) $(CARES_MERGE_LIBS) $(ADDRESS_SORTING_MERGE_LIBS) $(LDLIBS)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8081-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8082:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8083-ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8363-
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8364:$(LIBBORINGSSL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8365-$(LIBBORINGSSL_OBJS): CXXFLAGS += -fno-rtti -fno-exceptions
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8369-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8370:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8371-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8393-
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8394:$(LIBBORINGSSL_TEST_UTIL_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8395-$(LIBBORINGSSL_TEST_UTIL_OBJS): CXXFLAGS += -fno-rtti -fno-exceptions
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8408-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8409:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8410-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8460-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8461:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8462-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libbenchmark.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8497-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8498:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8499-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libupb.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8537-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8538:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8539-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libz.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8613-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8614:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8615-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libares.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8656-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8657:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8658-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_client_test.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8697-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8698:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8699-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8815-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8816:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8817-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_tests.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8922-	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8923:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8924-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8957-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8958:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8959-	$(Q) $(LD) $(LDFLAGS) $(ALGORITHM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/algorithm_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8989-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:8990:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-8991-	$(Q) $(LD) $(LDFLAGS) $(ALLOC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alloc_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9021-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9022:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9023-	$(Q) $(LD) $(LDFLAGS) $(ALPN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alpn_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9053-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9054:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9055-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_CREDENTIALS_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/alts_credentials_fuzzer
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9085-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9086:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9087-	$(Q) $(LDXX) $(LDFLAGS) $(API_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/api_fuzzer
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9117-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9118:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9119-	$(Q) $(LD) $(LDFLAGS) $(ARENA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/arena_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9149-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9150:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9151-	$(Q) $(LD) $(LDFLAGS) $(AVL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/avl_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9181-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9182:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9183-	$(Q) $(LD) $(LDFLAGS) $(BAD_SERVER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bad_server_response_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9213-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9214:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9215-	$(Q) $(LD) $(LDFLAGS) $(BIN_DECODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_decoder_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9245-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9246:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9247-	$(Q) $(LD) $(LDFLAGS) $(BIN_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bin_encoder_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9277-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9278:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9279-	$(Q) $(LD) $(LDFLAGS) $(BUFFER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/buffer_list_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9309-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9310:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9311-	$(Q) $(LD) $(LDFLAGS) $(CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/channel_create_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9341-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9342:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9343-	$(Q) $(LD) $(LDFLAGS) $(CHECK_EPOLLEXCLUSIVE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/check_epollexclusive
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9373-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9374:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9375-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_HPACK_ENCODER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9405-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9406:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9407-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_stream_map_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9437-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9438:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9439-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_VARINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/chttp2_varint_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9469-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9470:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9471-	$(Q) $(LDXX) $(LDFLAGS) $(CLIENT_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/client_fuzzer
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9501-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9502:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9503-	$(Q) $(LD) $(LDFLAGS) $(CLOSE_FD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/close_fd_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9533-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9534:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9535-	$(Q) $(LD) $(LDFLAGS) $(CMDLINE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/cmdline_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9565-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9566:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9567-	$(Q) $(LD) $(LDFLAGS) $(COMBINER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/combiner_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9597-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9598:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9599-	$(Q) $(LD) $(LDFLAGS) $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/compression_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9629-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9630:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9631-	$(Q) $(LD) $(LDFLAGS) $(CONCURRENT_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/concurrent_connectivity_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9661-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9662:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9663-	$(Q) $(LD) $(LDFLAGS) $(CONNECTION_REFUSED_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/connection_refused_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9693-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9694:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9695-	$(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_connectivity_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9725-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9726:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9727-	$(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_COOLDOWN_USING_ARES_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_cooldown_using_ares_resolver_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9757-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9758:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9759-	$(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_COOLDOWN_USING_NATIVE_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_cooldown_using_native_resolver_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9789-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9790:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9791-	$(Q) $(LD) $(LDFLAGS) $(DNS_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dns_resolver_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9821-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9822:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9823-	$(Q) $(LD) $(LDFLAGS) $(DUALSTACK_SOCKET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/dualstack_socket_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9853-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9854:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9855-	$(Q) $(LD) $(LDFLAGS) $(ENDPOINT_PAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/endpoint_pair_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9885-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9886:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9887-	$(Q) $(LD) $(LDFLAGS) $(ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/error_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9917-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9918:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9919-	$(Q) $(LD) $(LDFLAGS) $(EV_EPOLLEX_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ev_epollex_linux_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9949-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9950:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9951-	$(Q) $(LD) $(LDFLAGS) $(FAKE_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fake_resolver_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9982-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:9983:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-9984-	$(Q) $(LD) $(LDFLAGS) $(FAKE_TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fake_transport_security_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10016-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10017:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10018-	$(Q) $(LD) $(LDFLAGS) $(FD_CONSERVATION_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_conservation_posix_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10048-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10049:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10050-	$(Q) $(LD) $(LDFLAGS) $(FD_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fd_posix_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10080-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10081:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10082-	$(Q) $(LD) $(LDFLAGS) $(FLING_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_client
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10112-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10113:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10114-	$(Q) $(LD) $(LDFLAGS) $(FLING_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_server
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10144-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10145:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10146-	$(Q) $(LD) $(LDFLAGS) $(FLING_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_stream_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10176-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10177:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10178-	$(Q) $(LD) $(LDFLAGS) $(FLING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fling_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10208-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10209:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10210-	$(Q) $(LD) $(LDFLAGS) $(FORK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/fork_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10240-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10241:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10242-	$(Q) $(LD) $(LDFLAGS) $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/goaway_server_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10272-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10273:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10274-	$(Q) $(LD) $(LDFLAGS) $(GPR_CPU_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_cpu_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10304-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10305:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10306-	$(Q) $(LD) $(LDFLAGS) $(GPR_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_env_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10336-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10337:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10338-	$(Q) $(LD) $(LDFLAGS) $(GPR_HOST_PORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_host_port_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10368-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10369:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10370-	$(Q) $(LD) $(LDFLAGS) $(GPR_LOG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_log_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10400-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10401:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10402-	$(Q) $(LD) $(LDFLAGS) $(GPR_MANUAL_CONSTRUCTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_manual_constructor_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10432-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10433:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10434-	$(Q) $(LD) $(LDFLAGS) $(GPR_MPSCQ_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_mpscq_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10464-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10465:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10466-	$(Q) $(LD) $(LDFLAGS) $(GPR_SPINLOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_spinlock_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10496-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10497:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10498-	$(Q) $(LD) $(LDFLAGS) $(GPR_STRING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_string_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10528-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10529:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10530-	$(Q) $(LD) $(LDFLAGS) $(GPR_SYNC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_sync_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10560-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10561:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10562-	$(Q) $(LD) $(LDFLAGS) $(GPR_THD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_thd_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10592-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10593:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10594-	$(Q) $(LD) $(LDFLAGS) $(GPR_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_time_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10624-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10625:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10626-	$(Q) $(LD) $(LDFLAGS) $(GPR_TLS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_tls_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10656-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10657:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10658-	$(Q) $(LD) $(LDFLAGS) $(GPR_USEFUL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gpr_useful_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10688-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10689:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10690-	$(Q) $(LD) $(LDFLAGS) $(GRPC_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_auth_context_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10720-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10721:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10722-	$(Q) $(LD) $(LDFLAGS) $(GRPC_B64_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_b64_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10752-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10753:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10754-	$(Q) $(LD) $(LDFLAGS) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10784-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10785:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10786-	$(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_args_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10816-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10817:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10818-	$(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_BUILDER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_stack_builder_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10848-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10849:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10850-	$(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_stack_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10880-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10881:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10882-	$(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_completion_queue_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10912-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10913:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10914-	$(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_THREADING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_completion_queue_threading_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10945-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10946:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10947-	$(Q) $(LD) $(LDFLAGS) $(GRPC_CREATE_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_create_jwt
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10979-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:10980:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-10981-	$(Q) $(LD) $(LDFLAGS) $(GRPC_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_credentials_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11011-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11012:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11013-	$(Q) $(LD) $(LDFLAGS) $(GRPC_IPV6_LOOPBACK_AVAILABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_ipv6_loopback_available_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11043-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11044:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11045-	$(Q) $(LD) $(LDFLAGS) $(GRPC_JSON_TOKEN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_json_token_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11075-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11076:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11077-	$(Q) $(LD) $(LDFLAGS) $(GRPC_JWT_VERIFIER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11108-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11109:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11110-	$(Q) $(LD) $(LDFLAGS) $(GRPC_PRINT_GOOGLE_DEFAULT_CREDS_TOKEN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11142-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11143:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11144-	$(Q) $(LD) $(LDFLAGS) $(GRPC_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_security_connector_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11174-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11175:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11176-	$(Q) $(LD) $(LDFLAGS) $(GRPC_SSL_CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_ssl_credentials_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11207-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11208:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11209-	$(Q) $(LD) $(LDFLAGS) $(GRPC_VERIFY_JWT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_verify_jwt
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11241-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11242:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11243-	$(Q) $(LD) $(LDFLAGS) $(HANDSHAKE_CLIENT_SSL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/handshake_client_ssl
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11274-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11275:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11276-	$(Q) $(LD) $(LDFLAGS) $(HANDSHAKE_SERVER_SSL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/handshake_server_ssl
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11309-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11310:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11311-	$(Q) $(LD) $(LDFLAGS) $(HANDSHAKE_SERVER_WITH_READAHEAD_HANDSHAKER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/handshake_server_with_readahead_handshaker
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11343-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11344:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11345-	$(Q) $(LD) $(LDFLAGS) $(HANDSHAKE_VERIFY_PEER_OPTIONS_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/handshake_verify_peer_options
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11375-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11376:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11377-	$(Q) $(LD) $(LDFLAGS) $(HISTOGRAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/histogram_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11407-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11408:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11409-	$(Q) $(LDXX) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11439-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11440:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11441-	$(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11471-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11472:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11473-	$(Q) $(LD) $(LDFLAGS) $(HPACK_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_table_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11503-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11504:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11505-	$(Q) $(LD) $(LDFLAGS) $(HTTP_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_parser_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11535-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11536:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11537-	$(Q) $(LDXX) $(LDFLAGS) $(HTTP_REQUEST_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_request_fuzzer_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11567-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11568:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11569-	$(Q) $(LDXX) $(LDFLAGS) $(HTTP_RESPONSE_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_response_fuzzer_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11599-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11600:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11601-	$(Q) $(LD) $(LDFLAGS) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_format_request_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11631-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11632:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11633-	$(Q) $(LD) $(LDFLAGS) $(HTTPCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpcli_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11663-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11664:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11665-	$(Q) $(LD) $(LDFLAGS) $(HTTPSCLI_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/httpscli_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11695-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11696:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11697-	$(Q) $(LD) $(LDFLAGS) $(INIT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/init_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11727-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11728:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11729-	$(Q) $(LD) $(LDFLAGS) $(INPROC_CALLBACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/inproc_callback_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11759-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11760:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11761-	$(Q) $(LD) $(LDFLAGS) $(INVALID_CALL_ARGUMENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/invalid_call_argument_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11791-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11792:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11793-	$(Q) $(LDXX) $(LDFLAGS) $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/json_fuzzer_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11823-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11824:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11825-	$(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11855-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11856:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11857-	$(Q) $(LD) $(LDFLAGS) $(JSON_REWRITE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_rewrite_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11887-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11888:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11889-	$(Q) $(LD) $(LDFLAGS) $(JSON_STREAM_ERROR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_stream_error_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11919-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11920:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11921-	$(Q) $(LD) $(LDFLAGS) $(JSON_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11951-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11952:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11953-	$(Q) $(LD) $(LDFLAGS) $(LAME_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/lame_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11983-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:11984:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-11985-	$(Q) $(LD) $(LDFLAGS) $(LOAD_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/load_file_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12015-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12016:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12017-	$(Q) $(LD) $(LDFLAGS) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/low_level_ping_pong_benchmark
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12047-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12048:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12049-	$(Q) $(LD) $(LDFLAGS) $(MEMORY_USAGE_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/memory_usage_client
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12079-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12080:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12081-	$(Q) $(LD) $(LDFLAGS) $(MEMORY_USAGE_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/memory_usage_server
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12111-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12112:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12113-	$(Q) $(LD) $(LDFLAGS) $(MEMORY_USAGE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/memory_usage_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12143-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12144:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12145-	$(Q) $(LD) $(LDFLAGS) $(MESSAGE_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/message_compress_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12175-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12176:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12177-	$(Q) $(LD) $(LDFLAGS) $(MINIMAL_STACK_IS_MINIMAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/minimal_stack_is_minimal_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12207-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12208:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12209-	$(Q) $(LD) $(LDFLAGS) $(MPMCQUEUE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/mpmcqueue_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12239-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12240:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12241-	$(Q) $(LD) $(LDFLAGS) $(MULTIPLE_SERVER_QUEUES_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/multiple_server_queues_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12271-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12272:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12273-	$(Q) $(LD) $(LDFLAGS) $(MURMUR_HASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/murmur_hash_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12303-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12304:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12305-	$(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_RESPONSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12335-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12336:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12337-	$(Q) $(LDXX) $(LDFLAGS) $(NANOPB_FUZZER_SERVERLIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12367-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12368:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12369-	$(Q) $(LD) $(LDFLAGS) $(NO_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/no_server_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12399-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12400:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12401-	$(Q) $(LD) $(LDFLAGS) $(NUM_EXTERNAL_CONNECTIVITY_WATCHERS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/num_external_connectivity_watchers_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12431-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12432:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12433-	$(Q) $(LD) $(LDFLAGS) $(PARSE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/parse_address_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12463-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12464:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12465-	$(Q) $(LD) $(LDFLAGS) $(PARSE_ADDRESS_WITH_NAMED_SCOPE_ID_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/parse_address_with_named_scope_id_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12495-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12496:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12497-	$(Q) $(LDXX) $(LDFLAGS) $(PERCENT_DECODE_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/percent_decode_fuzzer
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12527-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12528:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12529-	$(Q) $(LDXX) $(LDFLAGS) $(PERCENT_ENCODE_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/percent_encode_fuzzer
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12559-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12560:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12561-	$(Q) $(LD) $(LDFLAGS) $(PERCENT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/percent_encoding_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12591-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12592:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12593-	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_posix_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12623-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12624:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12625-	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12655-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12656:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12657-	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_posix_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12687-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12688:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12689-	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12719-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12720:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12721-	$(Q) $(LD) $(LDFLAGS) $(RESOURCE_QUOTA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resource_quota_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12751-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12752:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12753-	$(Q) $(LD) $(LDFLAGS) $(SECURE_CHANNEL_CREATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_channel_create_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12783-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12784:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12785-	$(Q) $(LD) $(LDFLAGS) $(SECURE_ENDPOINT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/secure_endpoint_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12815-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12816:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12817-	$(Q) $(LD) $(LDFLAGS) $(SEQUENTIAL_CONNECTIVITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sequential_connectivity_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12847-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12848:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12849-	$(Q) $(LD) $(LDFLAGS) $(SERVER_CHTTP2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_chttp2_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12879-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12880:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12881-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/server_fuzzer
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12911-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12912:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12913-	$(Q) $(LD) $(LDFLAGS) $(SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12943-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12944:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12945-	$(Q) $(LD) $(LDFLAGS) $(SLICE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/slice_buffer_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12975-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:12976:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-12977-	$(Q) $(LD) $(LDFLAGS) $(SLICE_STRING_HELPERS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/slice_string_helpers_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13007-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13008:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13009-	$(Q) $(LD) $(LDFLAGS) $(SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/slice_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13039-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13040:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13041-	$(Q) $(LD) $(LDFLAGS) $(SOCKADDR_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_resolver_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13071-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13072:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13073-	$(Q) $(LD) $(LDFLAGS) $(SOCKADDR_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/sockaddr_utils_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13103-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13104:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13105-	$(Q) $(LD) $(LDFLAGS) $(SOCKET_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/socket_utils_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13135-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13136:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13137-	$(Q) $(LDXX) $(LDFLAGS) $(SSL_SERVER_FUZZER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/ssl_server_fuzzer
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13168-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13169:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13170-	$(Q) $(LD) $(LDFLAGS) $(SSL_TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ssl_transport_security_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13202-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13203:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13204-	$(Q) $(LD) $(LDFLAGS) $(STATUS_CONVERSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/status_conversion_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13234-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13235:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13236-	$(Q) $(LD) $(LDFLAGS) $(STREAM_COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/stream_compression_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13266-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13267:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13268-	$(Q) $(LD) $(LDFLAGS) $(STREAM_OWNED_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/stream_owned_slice_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13298-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13299:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13300-	$(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_client_posix_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13330-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13331:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13332-	$(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_UV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_client_uv_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13362-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13363:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13364-	$(Q) $(LD) $(LDFLAGS) $(TCP_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_posix_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13394-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13395:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13396-	$(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_server_posix_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13426-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13427:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13428-	$(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_UV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/tcp_server_uv_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13458-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13459:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13460-	$(Q) $(LD) $(LDFLAGS) $(TIME_AVERAGED_STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/time_averaged_stats_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13490-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13491:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13492-	$(Q) $(LD) $(LDFLAGS) $(TIMEOUT_ENCODING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timeout_encoding_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13522-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13523:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13524-	$(Q) $(LD) $(LDFLAGS) $(TIMER_HEAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_heap_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13554-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13555:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13556-	$(Q) $(LD) $(LDFLAGS) $(TIMER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/timer_list_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13586-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13587:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13588-	$(Q) $(LD) $(LDFLAGS) $(TRANSPORT_CONNECTIVITY_STATE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_connectivity_state_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13618-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13619:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13620-	$(Q) $(LD) $(LDFLAGS) $(TRANSPORT_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_metadata_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13650-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13651:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13652-	$(Q) $(LD) $(LDFLAGS) $(TRANSPORT_SECURITY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/transport_security_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13682-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13683:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13684-	$(Q) $(LD) $(LDFLAGS) $(UDP_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/udp_server_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13714-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13715:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13716-	$(Q) $(LDXX) $(LDFLAGS) $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13746-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13747:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13748-	$(Q) $(LD) $(LDFLAGS) $(URI_PARSER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_parser_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13787-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13788:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13789-	$(Q) $(LDXX) $(LDFLAGS) $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alarm_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13830-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13831:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13832-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_COUNTER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_counter_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13873-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13874:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13875-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_CRYPT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_crypt_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13916-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13917:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13918-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_CRYPTER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_crypter_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13959-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:13960:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-13961-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_FRAME_HANDLER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_frame_handler_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14003-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14004:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14005-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_FRAME_PROTECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_frame_protector_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14048-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14049:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14050-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_GRPC_RECORD_PROTOCOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_grpc_record_protocol_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14091-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14092:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14093-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_HANDSHAKER_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_handshaker_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14134-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14135:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14136-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_HANDSHAKER_SERVICE_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_handshaker_service_api_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14177-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14178:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14179-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_IOVEC_RECORD_PROTOCOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_iovec_record_protocol_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14220-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14221:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14222-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_SECURITY_CONNECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_security_connector_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14263-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14264:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14265-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_TSI_HANDSHAKER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_tsi_handshaker_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14306-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14307:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14308-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_TSI_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_tsi_utils_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14349-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14350:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14351-	$(Q) $(LDXX) $(LDFLAGS) $(ALTS_ZERO_COPY_GRPC_PROTECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/alts_zero_copy_grpc_protector_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14392-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14393:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14394-	$(Q) $(LDXX) $(LDFLAGS) $(ASYNC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/async_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14435-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14436:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14437-	$(Q) $(LDXX) $(LDFLAGS) $(AUTH_PROPERTY_ITERATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/auth_property_iterator_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14478-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14479:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14480-	$(Q) $(LDXX) $(LDFLAGS) $(BACKOFF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/backoff_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14521-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14522:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14523-	$(Q) $(LDXX) $(LDFLAGS) $(BDP_ESTIMATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bdp_estimator_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14564-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14565:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14566-	$(Q) $(LDXX) $(LDFLAGS) $(BM_ALARM_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_alarm
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14608-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14609:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14610-	$(Q) $(LDXX) $(LDFLAGS) $(BM_ARENA_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_arena
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14652-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14653:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14654-	$(Q) $(LDXX) $(LDFLAGS) $(BM_BYTE_BUFFER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_byte_buffer
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14696-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14697:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14698-	$(Q) $(LDXX) $(LDFLAGS) $(BM_CALL_CREATE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_call_create
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14740-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14741:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14742-	$(Q) $(LDXX) $(LDFLAGS) $(BM_CALLBACK_STREAMING_PING_PONG_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libbm_callback_test_service_impl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_callback_streaming_ping_pong
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14784-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14785:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14786-	$(Q) $(LDXX) $(LDFLAGS) $(BM_CALLBACK_UNARY_PING_PONG_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libbm_callback_test_service_impl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_callback_unary_ping_pong
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14828-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14829:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14830-	$(Q) $(LDXX) $(LDFLAGS) $(BM_CHANNEL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_channel
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14872-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14873:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14874-	$(Q) $(LDXX) $(LDFLAGS) $(BM_CHTTP2_HPACK_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_chttp2_hpack
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14916-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14917:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14918-	$(Q) $(LDXX) $(LDFLAGS) $(BM_CHTTP2_TRANSPORT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_chttp2_transport
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14960-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:14961:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-14962-	$(Q) $(LDXX) $(LDFLAGS) $(BM_CLOSURE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_closure
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15004-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15005:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15006-	$(Q) $(LDXX) $(LDFLAGS) $(BM_CQ_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_cq
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15048-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15049:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15050-	$(Q) $(LDXX) $(LDFLAGS) $(BM_CQ_MULTIPLE_THREADS_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_cq_multiple_threads
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15092-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15093:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15094-	$(Q) $(LDXX) $(LDFLAGS) $(BM_ERROR_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_error
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15136-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15137:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15138-	$(Q) $(LDXX) $(LDFLAGS) $(BM_FULLSTACK_STREAMING_PING_PONG_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_fullstack_streaming_ping_pong
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15180-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15181:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15182-	$(Q) $(LDXX) $(LDFLAGS) $(BM_FULLSTACK_STREAMING_PUMP_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_fullstack_streaming_pump
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15224-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15225:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15226-	$(Q) $(LDXX) $(LDFLAGS) $(BM_FULLSTACK_TRICKLE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_fullstack_trickle
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15268-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15269:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15270-	$(Q) $(LDXX) $(LDFLAGS) $(BM_FULLSTACK_UNARY_PING_PONG_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_fullstack_unary_ping_pong
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15312-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15313:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15314-	$(Q) $(LDXX) $(LDFLAGS) $(BM_METADATA_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_metadata
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15356-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15357:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15358-	$(Q) $(LDXX) $(LDFLAGS) $(BM_POLLSET_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_pollset
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15400-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15401:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15402-	$(Q) $(LDXX) $(LDFLAGS) $(BM_TIMER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_benchmark.a $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bm_timer
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15444-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15445:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15446-	$(Q) $(LDXX) $(LDFLAGS) $(BYTE_STREAM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/byte_stream_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15487-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15488:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15489-	$(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channel_arguments_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15530-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15531:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15532-	$(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_FILTER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channel_filter_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15574-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15575:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15576-	$(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_TRACE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channel_trace_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15620-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15621:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15622-	$(Q) $(LDXX) $(LDFLAGS) $(CHANNELZ_REGISTRY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channelz_registry_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15664-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15665:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15666-	$(Q) $(LDXX) $(LDFLAGS) $(CHANNELZ_SERVICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpcpp_channelz.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channelz_service_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15711-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15712:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15713-	$(Q) $(LDXX) $(LDFLAGS) $(CHANNELZ_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/channelz_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15757-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15758:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15759-	$(Q) $(LDXX) $(LDFLAGS) $(CHECK_GCP_ENVIRONMENT_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/check_gcp_environment_linux_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15800-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15801:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15802-	$(Q) $(LDXX) $(LDFLAGS) $(CHECK_GCP_ENVIRONMENT_WINDOWS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/check_gcp_environment_windows_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15843-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15844:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15845-	$(Q) $(LDXX) $(LDFLAGS) $(CHTTP2_SETTINGS_TIMEOUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/chttp2_settings_timeout_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15886-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15887:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15888-	$(Q) $(LDXX) $(LDFLAGS) $(CLI_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cli_call_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15930-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15931:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15932-	$(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CALLBACK_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_callback_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15976-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:15977:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-15978-	$(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CHANNEL_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_channel_stress_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16022-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16023:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16024-	$(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16065-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16066:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16067-	$(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CRASH_TEST_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_crash_test_server
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16109-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16110:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16111-	$(Q) $(LDXX) $(LDFLAGS) $(CLIENT_INTERCEPTORS_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_interceptors_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16154-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16155:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16156-	$(Q) $(LDXX) $(LDFLAGS) $(CLIENT_LB_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_lb_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16204-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16205:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16206-	$(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_FULL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_full
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16270-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16271:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16272-	$(Q) $(LDXX) $(LDFLAGS) $(CODEGEN_TEST_MINIMAL_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/codegen_test_minimal
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16331-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16332:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16333-	$(Q) $(LDXX) $(LDFLAGS) $(CONTEXT_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/context_list_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16374-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16375:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16376-	$(Q) $(LDXX) $(LDFLAGS) $(CREDENTIALS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/credentials_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16417-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16418:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16419-	$(Q) $(LDXX) $(LDFLAGS) $(CXX_BYTE_BUFFER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16460-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16461:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16462-	$(Q) $(LDXX) $(LDFLAGS) $(CXX_SLICE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_slice_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16503-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16504:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16505-	$(Q) $(LDXX) $(LDFLAGS) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_string_ref_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16546-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16547:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16548-	$(Q) $(LDXX) $(LDFLAGS) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_time_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16590-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16591:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16592-	$(Q) $(LDXX) $(LDFLAGS) $(END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16636-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16637:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16638-	$(Q) $(LDXX) $(LDFLAGS) $(ERROR_DETAILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_error_details.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/error_details_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16682-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16683:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16684-	$(Q) $(LDXX) $(LDFLAGS) $(EXCEPTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/exception_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16725-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16726:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16727-	$(Q) $(LDXX) $(LDFLAGS) $(FILTER_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/filter_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16768-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16769:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16770-	$(Q) $(LDXX) $(LDFLAGS) $(GENERIC_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/generic_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16811-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16812:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16813-	$(Q) $(LDXX) $(LDFLAGS) $(GLOBAL_CONFIG_ENV_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/global_config_env_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16854-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16855:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16856-	$(Q) $(LDXX) $(LDFLAGS) $(GLOBAL_CONFIG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/global_config_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16898-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16899:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16900-	$(Q) $(LDXX) $(LDFLAGS) $(GOLDEN_FILE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/golden_file_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16944-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16945:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16946-	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_ALTS_CREDENTIALS_OPTIONS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_alts_credentials_options_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16987-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:16988:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-16989-	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17030-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17031:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17032-	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_CORE_MAP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_core_map_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17065-	$(E) "[HOSTLD]  Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17066:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17067-	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CPP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_cpp_plugin
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17096-	$(E) "[HOSTLD]  Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17097:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17098-	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_CSHARP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_csharp_plugin
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17135-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17136:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17137-	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_FETCH_OAUTH2_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_fetch_oauth2
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17178-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17179:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17180-	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_LINUX_SYSTEM_ROOTS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_linux_system_roots_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17213-	$(E) "[HOSTLD]  Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17214:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17215-	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_NODE_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_node_plugin
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17244-	$(E) "[HOSTLD]  Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17245:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17246-	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_OBJECTIVE_C_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_objective_c_plugin
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17275-	$(E) "[HOSTLD]  Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17276:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17277-	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_PHP_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_php_plugin
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17306-	$(E) "[HOSTLD]  Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17307:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17308-	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_PYTHON_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_python_plugin
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17337-	$(E) "[HOSTLD]  Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17338:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17339-	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(GRPC_RUBY_PLUGIN_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_plugin_support.a $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o $(BINDIR)/$(CONFIG)/grpc_ruby_plugin
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17378-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17379:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17380-	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_TOOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_tool_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17427-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17428:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17429-	$(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_api_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17474-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17475:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17476-	$(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17523-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17524:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17525-	$(Q) $(LDXX) $(LDFLAGS) $(GRPCLB_FALLBACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpclb_fallback_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17573-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17574:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17575-	$(Q) $(LDXX) $(LDFLAGS) $(H2_SSL_CERT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/h2_ssl_cert_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17616-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17617:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17618-	$(Q) $(LDXX) $(LDFLAGS) $(H2_SSL_SESSION_REUSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/h2_ssl_session_reuse_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17659-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17660:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17661-	$(Q) $(LDXX) $(LDFLAGS) $(HEALTH_SERVICE_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/health_service_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17698-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17699:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17700-	$(Q) $(LDXX) $(LDFLAGS)  $(LIBDIR)/$(CONFIG)/libhttp2_client_main.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/http2_client
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17733-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17734:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17735-	$(Q) $(LDXX) $(LDFLAGS) $(HYBRID_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/hybrid_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17776-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17777:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17778-	$(Q) $(LDXX) $(LDFLAGS) $(INLINED_VECTOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/inlined_vector_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17819-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17820:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17821-	$(Q) $(LDXX) $(LDFLAGS) $(INPROC_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/inproc_sync_unary_ping_pong_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17858-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17859:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17860-	$(Q) $(LDXX) $(LDFLAGS)  $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_client
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17889-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17890:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17891-	$(Q) $(LDXX) $(LDFLAGS)  $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_server
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17924-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17925:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17926-	$(Q) $(LDXX) $(LDFLAGS) $(INTEROP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/interop_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17967-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:17968:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-17969-	$(Q) $(LDXX) $(LDFLAGS) $(JSON_RUN_LOCALHOST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/json_run_localhost
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18010-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18011:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18012-	$(Q) $(LDXX) $(LDFLAGS) $(MEMORY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/memory_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18053-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18054:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18055-	$(Q) $(LDXX) $(LDFLAGS) $(MESSAGE_ALLOCATOR_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/message_allocator_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18097-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18098:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18099-	$(Q) $(LDXX) $(LDFLAGS) $(METRICS_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/metrics_client
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18143-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18144:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18145-	$(Q) $(LDXX) $(LDFLAGS) $(MOCK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/mock_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18186-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18187:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18188-	$(Q) $(LDXX) $(LDFLAGS) $(NONBLOCKING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/nonblocking_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18229-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18230:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18231-	$(Q) $(LDXX) $(LDFLAGS) $(NOOP-BENCHMARK_OBJS) $(LIBDIR)/$(CONFIG)/libbenchmark.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/noop-benchmark
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18273-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18274:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18275-	$(Q) $(LDXX) $(LDFLAGS) $(OPTIONAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/optional_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18316-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18317:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18318-	$(Q) $(LDXX) $(LDFLAGS) $(ORPHANABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/orphanable_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18359-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18360:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18361-	$(Q) $(LDXX) $(LDFLAGS) $(PORT_SHARING_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/port_sharing_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18402-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18403:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18404-	$(Q) $(LDXX) $(LDFLAGS) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_server_reflection_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18445-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18446:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18447-	$(Q) $(LDXX) $(LDFLAGS) $(PROTO_UTILS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_utils_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18488-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18489:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18490-	$(Q) $(LDXX) $(LDFLAGS) $(QPS_INTERARRIVAL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_interarrival_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18531-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18532:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18533-	$(Q) $(LDXX) $(LDFLAGS) $(QPS_JSON_DRIVER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_json_driver
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18574-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18575:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18576-	$(Q) $(LDXX) $(LDFLAGS) $(QPS_OPENLOOP_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_openloop_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18617-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18618:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18619-	$(Q) $(LDXX) $(LDFLAGS) $(QPS_WORKER_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/qps_worker
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18660-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18661:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18662-	$(Q) $(LDXX) $(LDFLAGS) $(RAW_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/raw_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18706-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18707:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18708-	$(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_client
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18759-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18760:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18761-	$(Q) $(LDXX) $(LDFLAGS) $(RECONNECT_INTEROP_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/reconnect_interop_server
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18809-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18810:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18811-	$(Q) $(LDXX) $(LDFLAGS) $(REF_COUNTED_PTR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/ref_counted_ptr_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18852-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18853:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18854-	$(Q) $(LDXX) $(LDFLAGS) $(REF_COUNTED_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/ref_counted_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18895-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18896:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18897-	$(Q) $(LDXX) $(LDFLAGS) $(RETRY_THROTTLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/retry_throttle_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18938-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18939:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18940-	$(Q) $(LDXX) $(LDFLAGS) $(SECURE_AUTH_CONTEXT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_auth_context_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18981-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:18982:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-18983-	$(Q) $(LDXX) $(LDFLAGS) $(SECURE_SYNC_UNARY_PING_PONG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/secure_sync_unary_ping_pong_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19024-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19025:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19026-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_PLUGIN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_plugin_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19069-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19070:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19071-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19119-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19120:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19121-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_BUILDER_WITH_SOCKET_MUTATOR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_builder_with_socket_mutator_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19167-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19168:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19169-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_CONTEXT_TEST_SPOUSE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_context_test_spouse_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19210-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19211:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19212-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19253-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19254:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19255-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_CRASH_TEST_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_crash_test_client
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19296-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19297:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19298-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_EARLY_RETURN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_early_return_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19340-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19341:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19342-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_INTERCEPTORS_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_interceptors_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19387-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19388:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19389-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_REQUEST_CALL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_request_call_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19435-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19436:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19437-	$(Q) $(LDXX) $(LDFLAGS) $(SERVICE_CONFIG_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/service_config_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19478-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19479:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19480-	$(Q) $(LDXX) $(LDFLAGS) $(SERVICE_CONFIG_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/service_config_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19521-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19522:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19523-	$(Q) $(LDXX) $(LDFLAGS) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/shutdown_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19564-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19565:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19566-	$(Q) $(LDXX) $(LDFLAGS) $(SLICE_HASH_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/slice_hash_table_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19607-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19608:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19609-	$(Q) $(LDXX) $(LDFLAGS) $(SLICE_WEAK_HASH_TABLE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/slice_weak_hash_table_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19650-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19651:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19652-	$(Q) $(LDXX) $(LDFLAGS) $(STATS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/stats_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19693-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19694:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19695-	$(Q) $(LDXX) $(LDFLAGS) $(STATUS_METADATA_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/status_metadata_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19736-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19737:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19738-	$(Q) $(LDXX) $(LDFLAGS) $(STATUS_UTIL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/status_util_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19779-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19780:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19781-	$(Q) $(LDXX) $(LDFLAGS) $(STREAMING_THROUGHPUT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/streaming_throughput_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19829-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19830:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19831-	$(Q) $(LDXX) $(LDFLAGS) $(STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/stress_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19890-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19891:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19892-	$(Q) $(LDXX) $(LDFLAGS) $(STRING_VIEW_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/string_view_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19933-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19934:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19935-	$(Q) $(LDXX) $(LDFLAGS) $(THREAD_MANAGER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/thread_manager_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19976-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:19977:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-19978-	$(Q) $(LDXX) $(LDFLAGS) $(THREAD_STRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/thread_stress_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20019-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20020:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20021-	$(Q) $(LDXX) $(LDFLAGS) $(TIME_CHANGE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/time_change_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20062-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20063:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20064-	$(Q) $(LDXX) $(LDFLAGS) $(TRANSPORT_PID_CONTROLLER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/transport_pid_controller_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20105-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20106:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20107-	$(Q) $(LDXX) $(LDFLAGS) $(TRANSPORT_SECURITY_COMMON_API_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/transport_security_common_api_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20148-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20149:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20150-	$(Q) $(LDXX) $(LDFLAGS) $(WRITES_PER_RPC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/writes_per_rpc_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20192-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20193:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20194-	$(Q) $(LDXX) $(LDFLAGS) $(XDS_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/xds_end2end_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20229-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20230:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20231-	$(Q) $(LD) $(LDFLAGS) $(PUBLIC_HEADERS_MUST_BE_C89_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/public_headers_must_be_c89
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20237-	$(E) "[C]       Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20238:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20239-	$(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20265-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20266:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20267-	$(Q) $(LD) $(LDFLAGS) $(GEN_HPACK_TABLES_OBJS) $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_hpack_tables
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20297-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20298:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20299-	$(Q) $(LD) $(LDFLAGS) $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20329-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20330:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20331-	$(Q) $(LD) $(LDFLAGS) $(GEN_PERCENT_ENCODING_TABLES_OBJS) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_percent_encoding_tables
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20357-$(BORINGSSL_SSL_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20358:$(BORINGSSL_SSL_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20359-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20370-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20371:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20372-	$(Q) $(LDXX) $(LDFLAGS) $(BORINGSSL_SSL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_ssl_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20375-
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20376:$(BORINGSSL_SSL_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20377-$(BORINGSSL_SSL_TEST_OBJS): CXXFLAGS += -fno-rtti -fno-exceptions
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20449-$(BORINGSSL_CRYPTO_TEST_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20450:$(BORINGSSL_CRYPTO_TEST_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20451-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20462-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20463:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20464-	$(Q) $(LDXX) $(LDFLAGS) $(BORINGSSL_CRYPTO_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/boringssl_crypto_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20467-
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20468:$(BORINGSSL_CRYPTO_TEST_OBJS): CPPFLAGS += -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20469-$(BORINGSSL_CRYPTO_TEST_OBJS): CXXFLAGS += -fno-rtti -fno-exceptions
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20592-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20593:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20594-	$(Q) $(LDXX) $(LDFLAGS) $(BAD_STREAMING_ID_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/bad_streaming_id_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20623-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20624:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20625-	$(Q) $(LDXX) $(LDFLAGS) $(BADREQ_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/badreq_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20654-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20655:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20656-	$(Q) $(LDXX) $(LDFLAGS) $(CONNECTION_PREFIX_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20685-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20686:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20687-	$(Q) $(LDXX) $(LDFLAGS) $(DUPLICATE_HEADER_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/duplicate_header_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20716-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20717:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20718-	$(Q) $(LDXX) $(LDFLAGS) $(HEAD_OF_LINE_BLOCKING_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/head_of_line_blocking_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20747-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20748:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20749-	$(Q) $(LDXX) $(LDFLAGS) $(HEADERS_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/headers_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20778-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20779:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20780-	$(Q) $(LDXX) $(LDFLAGS) $(INITIAL_SETTINGS_FRAME_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20809-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20810:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20811-	$(Q) $(LDXX) $(LDFLAGS) $(LARGE_METADATA_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/large_metadata_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20840-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20841:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20842-	$(Q) $(LDXX) $(LDFLAGS) $(OUT_OF_BOUNDS_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/out_of_bounds_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20871-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20872:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20873-	$(Q) $(LDXX) $(LDFLAGS) $(SERVER_REGISTERED_METHOD_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/server_registered_method_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20902-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20903:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20904-	$(Q) $(LDXX) $(LDFLAGS) $(SIMPLE_REQUEST_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/simple_request_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20933-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20934:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20935-	$(Q) $(LDXX) $(LDFLAGS) $(UNKNOWN_FRAME_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/unknown_frame_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20964-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20965:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20966-	$(Q) $(LDXX) $(LDFLAGS) $(WINDOW_OVERFLOW_BAD_CLIENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/window_overflow_bad_client_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20994-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:20995:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-20996-	$(Q) $(LD) $(LDFLAGS) $(BAD_SSL_CERT_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bad_ssl_cert_server
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21026-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21027:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21028-	$(Q) $(LD) $(LDFLAGS) $(BAD_SSL_CERT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/bad_ssl_cert_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21058-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21059:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21060-	$(Q) $(LD) $(LDFLAGS) $(H2_CENSUS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_census_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21090-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21091:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21092-	$(Q) $(LD) $(LDFLAGS) $(H2_COMPRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_compress_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21122-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21123:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21124-	$(Q) $(LD) $(LDFLAGS) $(H2_FAKESEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_fakesec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21154-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21155:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21156-	$(Q) $(LD) $(LDFLAGS) $(H2_FD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_fd_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21186-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21187:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21188-	$(Q) $(LD) $(LDFLAGS) $(H2_FULL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_full_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21218-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21219:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21220-	$(Q) $(LD) $(LDFLAGS) $(H2_FULL+PIPE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_full+pipe_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21250-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21251:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21252-	$(Q) $(LD) $(LDFLAGS) $(H2_FULL+TRACE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_full+trace_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21282-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21283:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21284-	$(Q) $(LD) $(LDFLAGS) $(H2_FULL+WORKAROUNDS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_full+workarounds_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21314-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21315:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21316-	$(Q) $(LD) $(LDFLAGS) $(H2_HTTP_PROXY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_http_proxy_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21346-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21347:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21348-	$(Q) $(LD) $(LDFLAGS) $(H2_LOCAL_IPV4_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_local_ipv4_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21378-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21379:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21380-	$(Q) $(LD) $(LDFLAGS) $(H2_LOCAL_IPV6_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_local_ipv6_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21410-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21411:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21412-	$(Q) $(LD) $(LDFLAGS) $(H2_LOCAL_UDS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_local_uds_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21442-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21443:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21444-	$(Q) $(LD) $(LDFLAGS) $(H2_OAUTH2_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_oauth2_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21474-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21475:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21476-	$(Q) $(LD) $(LDFLAGS) $(H2_PROXY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_proxy_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21506-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21507:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21508-	$(Q) $(LD) $(LDFLAGS) $(H2_SOCKPAIR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_sockpair_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21538-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21539:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21540-	$(Q) $(LD) $(LDFLAGS) $(H2_SOCKPAIR+TRACE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_sockpair+trace_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21570-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21571:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21572-	$(Q) $(LD) $(LDFLAGS) $(H2_SOCKPAIR_1BYTE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21602-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21603:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21604-	$(Q) $(LD) $(LDFLAGS) $(H2_SPIFFE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_spiffe_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21634-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21635:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21636-	$(Q) $(LD) $(LDFLAGS) $(H2_SSL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_ssl_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21666-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21667:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21668-	$(Q) $(LD) $(LDFLAGS) $(H2_SSL_CRED_RELOAD_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_ssl_cred_reload_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21698-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21699:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21700-	$(Q) $(LD) $(LDFLAGS) $(H2_SSL_PROXY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_ssl_proxy_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21730-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21731:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21732-	$(Q) $(LD) $(LDFLAGS) $(H2_UDS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_uds_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21762-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21763:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21764-	$(Q) $(LD) $(LDFLAGS) $(INPROC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/inproc_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21786-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21787:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21788-	$(Q) $(LD) $(LDFLAGS) $(H2_CENSUS_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_census_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21806-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21807:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21808-	$(Q) $(LD) $(LDFLAGS) $(H2_COMPRESS_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_compress_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21826-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21827:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21828-	$(Q) $(LD) $(LDFLAGS) $(H2_FD_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_fd_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21846-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21847:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21848-	$(Q) $(LD) $(LDFLAGS) $(H2_FULL_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_full_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21866-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21867:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21868-	$(Q) $(LD) $(LDFLAGS) $(H2_FULL+PIPE_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_full+pipe_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21886-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21887:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21888-	$(Q) $(LD) $(LDFLAGS) $(H2_FULL+TRACE_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_full+trace_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21906-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21907:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21908-	$(Q) $(LD) $(LDFLAGS) $(H2_FULL+WORKAROUNDS_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_full+workarounds_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21926-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21927:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21928-	$(Q) $(LD) $(LDFLAGS) $(H2_HTTP_PROXY_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_http_proxy_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21946-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21947:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21948-	$(Q) $(LD) $(LDFLAGS) $(H2_PROXY_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_proxy_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21966-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21967:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21968-	$(Q) $(LD) $(LDFLAGS) $(H2_SOCKPAIR_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_sockpair_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21986-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:21987:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-21988-	$(Q) $(LD) $(LDFLAGS) $(H2_SOCKPAIR+TRACE_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_sockpair+trace_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22006-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22007:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22008-	$(Q) $(LD) $(LDFLAGS) $(H2_SOCKPAIR_1BYTE_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22026-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22027:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22028-	$(Q) $(LD) $(LDFLAGS) $(H2_UDS_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_uds_nosec_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22063-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22064:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22065-	$(Q) $(LDXX) $(LDFLAGS) $(RESOLVER_COMPONENT_TEST_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libdns_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/resolver_component_test_unsecure
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22106-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22107:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22108-	$(Q) $(LDXX) $(LDFLAGS) $(RESOLVER_COMPONENT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libdns_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/resolver_component_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22149-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22150:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22151-	$(Q) $(LDXX) $(LDFLAGS) $(RESOLVER_COMPONENT_TESTS_RUNNER_INVOKER_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/resolver_component_tests_runner_invoker_unsecure
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22192-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22193:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22194-	$(Q) $(LDXX) $(LDFLAGS) $(RESOLVER_COMPONENT_TESTS_RUNNER_INVOKER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/resolver_component_tests_runner_invoker
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22235-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22236:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22237-	$(Q) $(LDXX) $(LDFLAGS) $(ADDRESS_SORTING_TEST_UNSECURE_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc++_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/address_sorting_test_unsecure
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22278-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22279:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22280-	$(Q) $(LDXX) $(LDFLAGS) $(ADDRESS_SORTING_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/address_sorting_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22321-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22322:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22323-	$(Q) $(LDXX) $(LDFLAGS) $(CANCEL_ARES_QUERY_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libdns_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cancel_ares_query_test
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22356-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22357:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22358-	$(Q) $(LD) $(LDFLAGS) $(ALTS_CREDENTIALS_FUZZER_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alts_credentials_fuzzer_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22391-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22392:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22393-	$(Q) $(LD) $(LDFLAGS) $(API_FUZZER_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/api_fuzzer_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22426-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22427:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22428-	$(Q) $(LD) $(LDFLAGS) $(CLIENT_FUZZER_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/client_fuzzer_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22461-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22462:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22463-	$(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22496-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22497:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22498-	$(Q) $(LD) $(LDFLAGS) $(HTTP_REQUEST_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_request_fuzzer_test_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22531-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22532:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22533-	$(Q) $(LD) $(LDFLAGS) $(HTTP_RESPONSE_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_response_fuzzer_test_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22566-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22567:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22568-	$(Q) $(LD) $(LDFLAGS) $(JSON_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22601-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22602:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22603-	$(Q) $(LD) $(LDFLAGS) $(NANOPB_FUZZER_RESPONSE_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_response_test_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22636-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22637:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22638-	$(Q) $(LD) $(LDFLAGS) $(NANOPB_FUZZER_SERVERLIST_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/nanopb_fuzzer_serverlist_test_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22671-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22672:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22673-	$(Q) $(LD) $(LDFLAGS) $(PERCENT_DECODE_FUZZER_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/percent_decode_fuzzer_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22706-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22707:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22708-	$(Q) $(LD) $(LDFLAGS) $(PERCENT_ENCODE_FUZZER_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/percent_encode_fuzzer_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22741-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22742:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22743-	$(Q) $(LD) $(LDFLAGS) $(SERVER_FUZZER_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/server_fuzzer_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22776-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22777:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22778-	$(Q) $(LD) $(LDFLAGS) $(SSL_SERVER_FUZZER_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ssl_server_fuzzer_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22811-	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/Makefile:22812:	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/Makefile-22813-	$(Q) $(LD) $(LDFLAGS) $(URI_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-12-APP_NAME="Gradle"
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:13:APP_BASE_NAME=`basename "$0"`
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-14-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-49-while [ -h "$PRG" ] ; do
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:50:    ls=`ls -ld "$PRG"`
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:51:    link=`expr "$ls" : '.*-> \(.*\)$'`
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-52-    if expr "$link" : '/.*' > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-54-    else
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:55:        PRG=`dirname "$PRG"`"/$link"
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-56-    fi
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-58-SAVED="`pwd`"
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:59:cd "`dirname \"$PRG\"`/" >/dev/null
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-60-APP_HOME="`pwd -P`"
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-109-if $cygwin ; then
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:110:    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:111:    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:112:    JAVACMD=`cygpath --unix "$JAVACMD"`
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-113-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-128-    for arg in "$@" ; do
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:129:        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:130:        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-131-
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-132-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:133:            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-134-        else
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew:135:            eval `echo args$i`="\"$arg\""
chromium-84.0.4147.105/third_party/grpc/src/examples/android/helloworld/gradlew-136-        fi
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/ruby/README.md-23-  ```
chromium-84.0.4147.105/third_party/grpc/src/examples/ruby/README.md:24:- *N.B* Make sure your run `source $HOME/.rvm/scripts/rvm` as instructed to complete the set-up of RVM.
chromium-84.0.4147.105/third_party/grpc/src/examples/ruby/README.md-25-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/compression/Makefile-32-GRPC_CPP_PLUGIN = grpc_cpp_plugin
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/compression/Makefile:33:GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)`
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/compression/Makefile-34-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/route_guide/Makefile-34-GRPC_CPP_PLUGIN = grpc_cpp_plugin
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/route_guide/Makefile:35:GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)`
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/route_guide/Makefile-36-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/load_balancing/Makefile-32-GRPC_CPP_PLUGIN = grpc_cpp_plugin
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/load_balancing/Makefile:33:GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)`
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/load_balancing/Makefile-34-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/helloworld/Makefile-34-GRPC_CPP_PLUGIN = grpc_cpp_plugin
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/helloworld/Makefile:35:GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)`
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/helloworld/Makefile-36-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/metadata/Makefile-31-GRPC_CPP_PLUGIN = grpc_cpp_plugin
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/metadata/Makefile:32:GRPC_CPP_PLUGIN_PATH ?= `which $(GRPC_CPP_PLUGIN)`
chromium-84.0.4147.105/third_party/grpc/src/examples/cpp/metadata/Makefile-33- PROTOS_PATH = ../../protos
##############################################
chromium-84.0.4147.105/third_party/grpc/src/config.m4-682-    , $ext_shared, , -fvisibility=hidden \
chromium-84.0.4147.105/third_party/grpc/src/config.m4:683:    -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN \
chromium-84.0.4147.105/third_party/grpc/src/config.m4-684-    -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 \
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/objective-c/tests/build_one_example.sh-27-
chromium-84.0.4147.105/third_party/grpc/src/src/objective-c/tests/build_one_example.sh:28:cd `dirname $0`/../../..
chromium-84.0.4147.105/third_party/grpc/src/src/objective-c/tests/build_one_example.sh-29-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/objective-c/README.md-190-
chromium-84.0.4147.105/third_party/grpc/src/src/objective-c/README.md:191:Create a symbolic link to the compiled plugin binary somewhere in your `$PATH`:
chromium-84.0.4147.105/third_party/grpc/src/src/objective-c/README.md-192-```sh
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/objective-c/BoringSSL-GRPC.podspec-2028-    '#define OPENSSL_cpuid_setup GRPC_SHADOW_OPENSSL_cpuid_setup',
chromium-84.0.4147.105/third_party/grpc/src/src/objective-c/BoringSSL-GRPC.podspec:2029:    '#define CRYPTO_has_asm GRPC_SHADOW_CRYPTO_has_asm',
chromium-84.0.4147.105/third_party/grpc/src/src/objective-c/BoringSSL-GRPC.podspec-2030-    '#define CRYPTO_is_confidential_build GRPC_SHADOW_CRYPTO_is_confidential_build',
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/compiler/node_generator.cc-214-        GetRelativePath(file->name(), GetJSMessageFilename(file->name()));
chromium-84.0.4147.105/third_party/grpc/src/src/compiler/node_generator.cc:215:    out->Print("var $module_alias$ = require('$file_path$');\n", "module_alias",
chromium-84.0.4147.105/third_party/grpc/src/src/compiler/node_generator.cc-216-               ModuleAlias(file->name()), "file_path", file_path);
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/compiler/node_generator.cc-221-        file->name(), GetJSMessageFilename(file->dependency(i)->name()));
chromium-84.0.4147.105/third_party/grpc/src/src/compiler/node_generator.cc:222:    out->Print("var $module_alias$ = require('$file_path$');\n", "module_alias",
chromium-84.0.4147.105/third_party/grpc/src/src/compiler/node_generator.cc-223-               ModuleAlias(file->dependency(i)->name()), "file_path",
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/php/tests/qps/generated_code/Grpc/Testing/ServerStats.php-136-     */
chromium-84.0.4147.105/third_party/grpc/src/src/php/tests/qps/generated_code/Grpc/Testing/ServerStats.php:137:    public function setTimeSystem($var)
chromium-84.0.4147.105/third_party/grpc/src/src/php/tests/qps/generated_code/Grpc/Testing/ServerStats.php-138-    {
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/php/tests/qps/generated_code/Grpc/Testing/ClientStats.php-147-     */
chromium-84.0.4147.105/third_party/grpc/src/src/php/tests/qps/generated_code/Grpc/Testing/ClientStats.php:148:    public function setTimeSystem($var)
chromium-84.0.4147.105/third_party/grpc/src/src/php/tests/qps/generated_code/Grpc/Testing/ClientStats.php-149-    {
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/php/lib/Grpc/BaseStub.php-150-        $now = Timeval::now();
chromium-84.0.4147.105/third_party/grpc/src/src/php/lib/Grpc/BaseStub.php:151:        $delta = new Timeval($timeout);
chromium-84.0.4147.105/third_party/grpc/src/src/php/lib/Grpc/BaseStub.php-152-        $deadline = $now->add($delta);
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/php/lib/Grpc/AbstractCall.php-54-            $now = Timeval::now();
chromium-84.0.4147.105/third_party/grpc/src/src/php/lib/Grpc/AbstractCall.php:55:            $delta = new Timeval($timeout);
chromium-84.0.4147.105/third_party/grpc/src/src/php/lib/Grpc/AbstractCall.php-56-            $deadline = $now->add($delta);
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4-37-  dnl # --with-grpc -> add include path
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4:38:  PHP_ADD_INCLUDE($GRPC_DIR/include)
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4-39-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4-96-  dnl Check if ccache is being used
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4:97:  case `$php_shtool path $CC` in
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4-98-    *ccache*[)] gcc_ccache=yes;;
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4-115-      php_cv_lcov_version=invalid
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4:116:      lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` #'
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4-117-      for lcov_check_version in $lcov_version_list; do
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4-143-  changequote({,})
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4:144:  CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'`
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4:145:  CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'`
chromium-84.0.4147.105/third_party/grpc/src/src/php/ext/grpc/config.m4-146-  changequote([,])
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-12-APP_NAME="Gradle"
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:13:APP_BASE_NAME=`basename "$0"`
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-14-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-49-while [ -h "$PRG" ] ; do
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:50:    ls=`ls -ld "$PRG"`
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:51:    link=`expr "$ls" : '.*-> \(.*\)$'`
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-52-    if expr "$link" : '/.*' > /dev/null; then
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-54-    else
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:55:        PRG=`dirname "$PRG"`"/$link"
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-56-    fi
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-58-SAVED="`pwd`"
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:59:cd "`dirname \"$PRG\"`/" >/dev/null
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-60-APP_HOME="`pwd -P`"
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-109-if $cygwin ; then
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:110:    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:111:    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:112:    JAVACMD=`cygpath --unix "$JAVACMD"`
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-113-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-128-    for arg in "$@" ; do
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:129:        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:130:        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-131-
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-132-        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:133:            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-134-        else
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew:135:            eval `echo args$i`="\"$arg\""
chromium-84.0.4147.105/third_party/grpc/src/src/android/test/interop/gradlew-136-        fi
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/ruby/README.md-39-```
chromium-84.0.4147.105/third_party/grpc/src/src/ruby/README.md:40:- Make sure your run `source $HOME/.rvm/scripts/rvm` as instructed to complete the set up of RVM
chromium-84.0.4147.105/third_party/grpc/src/src/ruby/README.md-41-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_reflection/grpc_version.py-14-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_reflection/grpc_version.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_reflection/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_reflection/grpc_version.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_tests/grpc_version.py-14-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_tests/grpc_version.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_tests/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_tests/grpc_version.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/README.rst-85-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/README.rst:86:  :code:`pip install --ignore-installed $OFFENDING_DEPENDENCY`
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/README.rst-87-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc_version.py-14-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc_version.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc_version.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc_core_dependencies.py-14-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc_core_dependencies.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_core_dependencies.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc_core_dependencies.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_grpcio_metadata.py-14-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_grpcio_metadata.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc/_grpcio_metadata.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_grpcio_metadata.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pxd.pxi-118-                              int normalize);
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pxd.pxi:119:  void grpc_string_to_sockaddr(grpc_resolved_address *out, char* addr, int port);
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pxd.pxi-120-  int grpc_sockaddr_set_port(const grpc_resolved_address *resolved_addr,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-58-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:59:cdef grpc_resolved_addresses* tuples_to_resolvaddr(tups):
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-60-  cdef grpc_resolved_addresses* addresses
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-67-    hostname = str_to_bytes(tup[0])
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:68:    grpc_string_to_sockaddr(&addresses.addrs[i], hostname, tup[1])
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-69-    i += 1
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-221-  hostname = str_to_bytes(peer[0])
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:222:  grpc_string_to_sockaddr(&c_addr, hostname, peer[1])
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-223-  string.memcpy(<void*>addr, <void*>c_addr.addr, c_addr.len)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-236-  hostname = str_to_bytes(peer[0])
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:237:  grpc_string_to_sockaddr(&c_addr, hostname, peer[1])
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-238-  string.memcpy(<void*>addr, <void*>c_addr.addr, c_addr.len)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-314-    grpc_custom_resolve_callback(<grpc_custom_resolver*>resolve_wrapper.c_resolver,
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:315:                                 tuples_to_resolvaddr(res), grpc_error_none())
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-316-  except IOError as io_error:
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-335-      result = gevent_socket.getaddrinfo(host, port)
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi:336:      res[0] = tuples_to_resolvaddr(result)
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio/grpc/_cython/_cygrpc/grpc_gevent.pyx.pxi-337-      return grpc_error_none()
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_health_checking/grpc_version.py-14-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_health_checking/grpc_version.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_health_checking/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_health_checking/grpc_version.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_status/grpc_version.py-14-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_status/grpc_version.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_status/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_status/grpc_version.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_channelz/grpc_version.py-14-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_channelz/grpc_version.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_channelz/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_channelz/grpc_version.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_testing/grpc_version.py-14-
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_testing/grpc_version.py:15:# AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_testing/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/src/python/grpcio_testing/grpc_version.py-16-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/csharp/BUILD-INTEGRATION.md-292-
chromium-84.0.4147.105/third_party/grpc/src/src/csharp/BUILD-INTEGRATION.md:293:Use MSBuild property expansion syntax `$(VariableName)` in your protoc command
chromium-84.0.4147.105/third_party/grpc/src/src/csharp/BUILD-INTEGRATION.md-294-line to substitute these variables, for instance,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/tsi/grpc_shadow_boringssl.h-501-#define OPENSSL_cpuid_setup GRPC_SHADOW_OPENSSL_cpuid_setup
chromium-84.0.4147.105/third_party/grpc/src/src/core/tsi/grpc_shadow_boringssl.h:502:#define CRYPTO_has_asm GRPC_SHADOW_CRYPTO_has_asm
chromium-84.0.4147.105/third_party/grpc/src/src/core/tsi/grpc_shadow_boringssl.h-503-#define CRYPTO_is_confidential_build GRPC_SHADOW_CRYPTO_is_confidential_build
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_posix.cc-304-  /* Try listening on IPv6 first. */
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_posix.cc:305:  if ((v6_err = grpc_tcp_server_add_addr(s, &wild6, port_index, fd_index,
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_posix.cc-306-                                         &dsmode, &sp)) == GRPC_ERROR_NONE) {
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_posix.cc-314-  grpc_sockaddr_set_port(&wild4, requested_port);
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_posix.cc:315:  if ((v4_err = grpc_tcp_server_add_addr(s, &wild4, port_index, fd_index,
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_posix.cc-316-                                         &dsmode, &sp2)) == GRPC_ERROR_NONE) {
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_posix.cc-441-  }
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_posix.cc:442:  if ((err = grpc_tcp_server_add_addr(s, addr, port_index, 0, &dsmode, &sp)) ==
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_posix.cc-443-      GRPC_ERROR_NONE) {
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/sockaddr_utils.cc-202-
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/sockaddr_utils.cc:203:void grpc_string_to_sockaddr(grpc_resolved_address* out, char* addr, int port) {
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/sockaddr_utils.cc-204-  grpc_sockaddr_in6* addr6 = (grpc_sockaddr_in6*)out->addr;
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_client_posix.cc-78-    if (err != GRPC_ERROR_NONE) goto error;
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_client_posix.cc:79:    err = grpc_set_socket_reuse_addr(fd, 1);
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_client_posix.cc-80-    if (err != GRPC_ERROR_NONE) goto error;
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix.h-101-   socket, and return the \a listener. */
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix.h:102:grpc_error* grpc_tcp_server_add_addr(grpc_tcp_server* s,
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix.h-103-                                     const grpc_resolved_address* addr,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/sockaddr_utils.h-73-
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/sockaddr_utils.h:74:void grpc_string_to_sockaddr(grpc_resolved_address* out, char* addr, int port);
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/sockaddr_utils.h-75-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/socket_utils_posix.h-44-/* set a socket to reuse old addresses */
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/socket_utils_posix.h:45:grpc_error* grpc_set_socket_reuse_addr(int fd, int reuse);
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/socket_utils_posix.h-46-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc-126-   return the *listener. */
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc:127:grpc_error* grpc_tcp_server_add_addr(grpc_tcp_server* s,
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc-128-                                     const grpc_resolved_address* addr,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc-166-    if (err != GRPC_ERROR_NONE) goto error;
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc:167:    err = grpc_set_socket_reuse_addr(fd, 1);
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_common.cc-168-    if (err != GRPC_ERROR_NONE) goto error;
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc-40-/* Return the listener in s with address addr or NULL. */
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc:41:static grpc_tcp_listener* find_listener_with_addr(grpc_tcp_server* s,
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc-42-                                                  grpc_resolved_address* addr) {
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc-141-       so look for duplicates. */
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc:142:    if (find_listener_with_addr(s, &addr) != nullptr) {
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc-143-      gpr_log(GPR_DEBUG, "Skipping duplicate addr %s on interface %s", addr_str,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc-147-    }
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc:148:    if ((err = grpc_tcp_server_add_addr(s, &addr, port_index, fd_index, &dsmode,
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc-149-                                        &new_sp)) != GRPC_ERROR_NONE) {
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/socket_utils_common_posix.cc-147-/* set a socket to reuse old addresses */
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/socket_utils_common_posix.cc:148:grpc_error* grpc_set_socket_reuse_addr(int fd, int reuse) {
chromium-84.0.4147.105/third_party/grpc/src/src/core/lib/iomgr/socket_utils_common_posix.cc-149-  int val = (reuse != 0);
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/ext/filters/client_channel/subchannel.cc-885-
chromium-84.0.4147.105/third_party/grpc/src/src/core/ext/filters/client_channel/subchannel.cc:886:void UriToSockaddr(const char* uri_str, grpc_resolved_address* addr) {
chromium-84.0.4147.105/third_party/grpc/src/src/core/ext/filters/client_channel/subchannel.cc-887-  grpc_uri* uri = grpc_uri_parse(uri_str, 0 /* suppress_errors */);
##############################################
chromium-84.0.4147.105/third_party/grpc/src/src/core/ext/filters/client_channel/subchannel.cc-899-  if (*addr_uri_str != '\0') {
chromium-84.0.4147.105/third_party/grpc/src/src/core/ext/filters/client_channel/subchannel.cc:900:    UriToSockaddr(addr_uri_str, addr);
chromium-84.0.4147.105/third_party/grpc/src/src/core/ext/filters/client_channel/subchannel.cc-901-  }
##############################################
chromium-84.0.4147.105/third_party/grpc/src/gRPC-Core.podspec-71-  # Cocoapods effectively clones the repo under `<Podfile dir>/Pods/gRPC-Core/`, and sets a build
chromium-84.0.4147.105/third_party/grpc/src/gRPC-Core.podspec:72:  # variable called `$(PODS_ROOT)` to `<Podfile dir>/Pods/`, so we use that.
chromium-84.0.4147.105/third_party/grpc/src/gRPC-Core.podspec-73-  #
##############################################
chromium-84.0.4147.105/third_party/grpc/src/gRPC-Core.podspec-77-  #
chromium-84.0.4147.105/third_party/grpc/src/gRPC-Core.podspec:78:  # The `src_root` value of `$(PODS_ROOT)/gRPC-Core` assumes Cocoapods is installing this pod from
chromium-84.0.4147.105/third_party/grpc/src/gRPC-Core.podspec-79-  # its remote repo. For local development of this library, enabled by using `:path` in the Podfile,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/config.w32-674-  EXTENSION("grpc", grpc_source, null,
chromium-84.0.4147.105/third_party/grpc/src/config.w32:675:    "/DOPENSSL_NO_ASM /D_GNU_SOURCE /DWIN32_LEAN_AND_MEAN "+
chromium-84.0.4147.105/third_party/grpc/src/config.w32-676-    "/D_HAS_EXCEPTIONS=0 /DNOMINMAX /DGRPC_ARES=0 /D_WIN32_WINNT=0x600 "+
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/tools/distrib/python/grpcio_tools/grpc_version.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/gRPC-Core.podspec.template-124-    # Cocoapods effectively clones the repo under `<Podfile dir>/Pods/gRPC-Core/`, and sets a build
chromium-84.0.4147.105/third_party/grpc/src/templates/gRPC-Core.podspec.template:125:    # variable called `$(PODS_ROOT)` to `<Podfile dir>/Pods/`, so we use that.
chromium-84.0.4147.105/third_party/grpc/src/templates/gRPC-Core.podspec.template-126-    #
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/gRPC-Core.podspec.template-130-    #
chromium-84.0.4147.105/third_party/grpc/src/templates/gRPC-Core.podspec.template:131:    # The `src_root` value of `$(PODS_ROOT)/gRPC-Core` assumes Cocoapods is installing this pod from
chromium-84.0.4147.105/third_party/grpc/src/templates/gRPC-Core.podspec.template-132-    # its remote repo. For local development of this library, enabled by using `:path` in the Podfile,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_reflection/grpc_version.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_reflection/grpc_version.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_reflection/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_reflection/grpc_version.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_tests/grpc_version.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_tests/grpc_version.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_tests/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_tests/grpc_version.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio/grpc_core_dependencies.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio/grpc_core_dependencies.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_core_dependencies.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio/grpc_core_dependencies.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio/grpc_version.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio/grpc_version.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio/grpc_version.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio/grpc/_grpcio_metadata.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio/grpc/_grpcio_metadata.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio/grpc/_grpcio_metadata.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio/grpc/_grpcio_metadata.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_health_checking/grpc_version.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_health_checking/grpc_version.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_health_checking/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_health_checking/grpc_version.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_status/grpc_version.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_status/grpc_version.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_status/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_status/grpc_version.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_channelz/grpc_version.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_channelz/grpc_version.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_channelz/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_channelz/grpc_version.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_testing/grpc_version.py.template-16-
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_testing/grpc_version.py.template:17:  # AUTO-GENERATED FROM `$REPO_ROOT/templates/src/python/grpcio_testing/grpc_version.py.template`!!!
chromium-84.0.4147.105/third_party/grpc/src/templates/src/python/grpcio_testing/grpc_version.py.template-18-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/config.m4.template-46-      , $ext_shared, , -fvisibility=hidden ${"\\"}
chromium-84.0.4147.105/third_party/grpc/src/templates/config.m4.template:47:      -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN ${"\\"}
chromium-84.0.4147.105/third_party/grpc/src/templates/config.m4.template-48-      -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 ${"\\"}
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1273-  	$(E) "[PROTOC]  Generating protobuf CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1274:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1275-  	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --cpp_out=$(GENDIR) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1278-  	$(E) "[GRPC]    Generating gRPC's protobuf service CC file from $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1279:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1280-  	$(Q) $(PROTOC) -Ithird_party/protobuf/src -I. --grpc_out=${pluginflags}$(GENDIR) --plugin=protoc-gen-grpc=$(PROTOC_PLUGINS_DIR)/grpc_cpp_plugin$(EXECUTABLE_SUFFIX) $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1289-  	$(E) "[DTRACE]  Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1290:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1291-  	$(Q) $(DTRACE) -C -h -s $< -o $@
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1298-  	$(E) "[C]       Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1299:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1300-  	$(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1303-  	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1304:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1305-  	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1308-  	$(E) "[HOSTCXX] Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1309:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1310-  	$(Q) $(HOST_CXX) $(HOST_CXXFLAGS) $(HOST_CPPFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1313-  	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1314:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1315-  	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(COREFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1318-  	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1319:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1320-  	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(COREFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1323-  	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1324:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1325-  	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1328-  	$(E) "[CXX]     Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1329:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1330-  	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1568-  	$(E) "[AR]      Creating $@"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1569:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1570-  	$(Q) rm -f $(LIBDIR)/$(CONFIG)/lib${lib.name}.a
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1653-  	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1654:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1655-  	$(Q) ${ld} ${ldflags} -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=${out_mingbase}.def -Wl,--out-implib=${out_libbase}-dll.a -o ${out_mingbase}.$(SHARED_EXT_${lang_to_var[lib.language]}) ${common}${mingw_libs}
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1658-  	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1659:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1660-  ifeq ($(SYSTEM),Darwin)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1725-  $(${tgt.name.upper()}_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS)
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1726:  $(${tgt.name.upper()}_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1727-  % else:
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1766-  	$(E) "[HOSTLD]  Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1767:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1768-  	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) \
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1773-  	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1774:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1775-  	$(Q) $(LDXX) $(LDFLAGS) \
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1782-  	$(E) "[LD]      Linking $@"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1783:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1784-  	$(Q) $(LD) $(LDFLAGS) \
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1841-  	$(E) "[C]       Compiling $<"
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template:1842:  	$(Q) mkdir -p `dirname $@`
chromium-84.0.4147.105/third_party/grpc/src/templates/Makefile.template-1843-  	$(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
##############################################
chromium-84.0.4147.105/third_party/grpc/src/templates/config.w32.template-23-    EXTENSION("grpc", grpc_source, null,
chromium-84.0.4147.105/third_party/grpc/src/templates/config.w32.template:24:      "/DOPENSSL_NO_ASM /D_GNU_SOURCE /DWIN32_LEAN_AND_MEAN "+
chromium-84.0.4147.105/third_party/grpc/src/templates/config.w32.template-25-      "/D_HAS_EXCEPTIONS=0 /DNOMINMAX /DGRPC_ARES=0 /D_WIN32_WINNT=0x600 "+
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/cpp/naming/address_sorting_test.cc-100-
chromium-84.0.4147.105/third_party/grpc/src/test/cpp/naming/address_sorting_test.cc:101:  bool GetSourceAddr(const address_sorting_address* dest_addr,
chromium-84.0.4147.105/third_party/grpc/src/test/cpp/naming/address_sorting_test.cc-102-                     address_sorting_address* source_addr) {
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/cpp/naming/address_sorting_test.cc-138-
chromium-84.0.4147.105/third_party/grpc/src/test/cpp/naming/address_sorting_test.cc:139:static bool mock_source_addr_factory_wrapper_get_source_addr(
chromium-84.0.4147.105/third_party/grpc/src/test/cpp/naming/address_sorting_test.cc-140-    address_sorting_source_addr_factory* factory,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/cpp/naming/address_sorting_test.cc-144-      reinterpret_cast<MockSourceAddrFactory*>(factory);
chromium-84.0.4147.105/third_party/grpc/src/test/cpp/naming/address_sorting_test.cc:145:  return mock->GetSourceAddr(dest_addr, source_addr);
chromium-84.0.4147.105/third_party/grpc/src/test/cpp/naming/address_sorting_test.cc-146-}
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/surface/server_test.cc-106-
chromium-84.0.4147.105/third_party/grpc/src/test/core/surface/server_test.cc:107:void test_bind_server_to_addr(const char* host, bool secure) {
chromium-84.0.4147.105/third_party/grpc/src/test/core/surface/server_test.cc-108-  int port = grpc_pick_unused_port_or_die();
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/surface/server_test.cc-144-  for (size_t i = 0; i < n; i++) {
chromium-84.0.4147.105/third_party/grpc/src/test/core/surface/server_test.cc:145:    test_bind_server_to_addr(addrs[i], false);
chromium-84.0.4147.105/third_party/grpc/src/test/core/surface/server_test.cc:146:    test_bind_server_to_addr(addrs[i], true);
chromium-84.0.4147.105/third_party/grpc/src/test/core/surface/server_test.cc-147-  }
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/server_common.h-23-
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/server_common.h:24:const char* bad_ssl_addr(int argc, char** argv);
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/server_common.h-25-void bad_ssl_run(grpc_server* server);
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/servers/cert.cc-33-int main(int argc, char** argv) {
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/servers/cert.cc:34:  const char* addr = bad_ssl_addr(argc, argv);
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/servers/cert.cc-35-  grpc_ssl_pem_key_cert_pair pem_key_cert_pair;
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/servers/alpn.cc-53-int main(int argc, char** argv) {
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/servers/alpn.cc:54:  const char* addr = bad_ssl_addr(argc, argv);
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/servers/alpn.cc-55-  grpc_ssl_pem_key_cert_pair pem_key_cert_pair = {test_server1_key,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/server_common.cc-34-
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/server_common.cc:35:const char* bad_ssl_addr(int argc, char** argv) {
chromium-84.0.4147.105/third_party/grpc/src/test/core/bad_ssl/server_common.cc-36-  gpr_cmdline* cl;
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/resolve_address_test.cc-311-
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/resolve_address_test.cc:312:static bool mock_ipv6_disabled_source_addr_factory_get_source_addr(
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/resolve_address_test.cc-313-    address_sorting_source_addr_factory* factory,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/tcp_server_uv_test.cc-243-  GPR_ASSERT(svr_port > 0);
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/tcp_server_uv_test.cc:244:  GPR_ASSERT((uv_ip6_addr("::", svr_port, (struct sockaddr_in6*)addr)) == 0);
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/tcp_server_uv_test.cc-245-  /* Cannot use wildcard (port==0), because add_port() will try to reuse the
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/tcp_server_uv_test.cc-254-
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/tcp_server_uv_test.cc:255:  GPR_ASSERT(uv_ip6_addr("::", svr_port, (struct sockaddr_in6*)addr1) == 0);
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/tcp_server_uv_test.cc-256-
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/socket_utils_test.cc-97-  GPR_ASSERT(GRPC_LOG_IF_ERROR("set_socket_reuse_addr",
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/socket_utils_test.cc:98:                               grpc_set_socket_reuse_addr(sock, 1)));
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/socket_utils_test.cc-99-  GPR_ASSERT(GRPC_LOG_IF_ERROR("set_socket_reuse_addr",
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/socket_utils_test.cc:100:                               grpc_set_socket_reuse_addr(sock, 0)));
chromium-84.0.4147.105/third_party/grpc/src/test/core/iomgr/socket_utils_test.cc-101-  GPR_ASSERT(GRPC_LOG_IF_ERROR("set_socket_low_latency",
##############################################
chromium-84.0.4147.105/third_party/grpc/src/test/core/network_benchmarks/low_level_ping_pong.cc-345-  if (!GRPC_LOG_IF_ERROR("Failed to set listening socket reuse addr",
chromium-84.0.4147.105/third_party/grpc/src/test/core/network_benchmarks/low_level_ping_pong.cc:346:                         grpc_set_socket_reuse_addr(fd, 1))) {
chromium-84.0.4147.105/third_party/grpc/src/test/core/network_benchmarks/low_level_ping_pong.cc-347-    goto error;
##############################################
chromium-84.0.4147.105/third_party/grpc/src/cmake/ssl.cmake-25-      # See https://github.com/grpc/grpc/issues/16376
chromium-84.0.4147.105/third_party/grpc/src/cmake/ssl.cmake:26:      set(OPENSSL_NO_ASM ON)
chromium-84.0.4147.105/third_party/grpc/src/cmake/ssl.cmake-27-    endif()
##############################################
chromium-84.0.4147.105/third_party/grpc/src/cmake/gRPCConfig.cmake.in-7-# Targets
chromium-84.0.4147.105/third_party/grpc/src/cmake/gRPCConfig.cmake.in:8:include(${CMAKE_CURRENT_LIST_DIR}/gRPCTargets.cmake)
##############################################
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c-57-
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c:58:static bool address_sorting_get_source_addr(const address_sorting_address* dest,
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c-59-                                            address_sorting_address* source) {
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c:60:  return g_current_source_addr_factory->vtable->get_source_addr(
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c-61-      g_current_source_addr_factory, dest, source);
##############################################
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c-65-    const address_sorting_address* dest, address_sorting_address* source) {
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c:66:  return address_sorting_get_source_addr(dest, source);
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c-67-}
##############################################
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c-353-    sortables[i].original_index = i;
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c:354:    sortables[i].source_addr_exists = address_sorting_get_source_addr(
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting.c-355-        &sortables[i].dest_addr, &sortables[i].source_addr);
##############################################
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting_posix.c-52-
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting_posix.c:53:static bool posix_source_addr_factory_get_source_addr(
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting_posix.c-54-    address_sorting_source_addr_factory* factory,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting_windows.c-51-
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting_windows.c:52:static bool windows_source_addr_factory_get_source_addr(
chromium-84.0.4147.105/third_party/grpc/src/third_party/address_sorting/address_sorting_windows.c-53-    address_sorting_source_addr_factory* factory,
##############################################
chromium-84.0.4147.105/third_party/grpc/src/third_party/rake-compiler-dock/Dockerfile-6-RUN find / -name libwinpthread-1.dll | xargs rm
chromium-84.0.4147.105/third_party/grpc/src/third_party/rake-compiler-dock/Dockerfile:7:RUN find / -name *msvcrt-ruby*.dll.a | while read f ; do n=`echo $f | sed s/.dll//` ; mv $f $n ; done
chromium-84.0.4147.105/third_party/grpc/src/third_party/rake-compiler-dock/Dockerfile-8-RUN apt-get install -y g++-multilib
##############################################
chromium-84.0.4147.105/third_party/qcms/src/transform.c-998-       uint32_t a_, b_, c_, d_;
chromium-84.0.4147.105/third_party/qcms/src/transform.c:999:       __asm {
chromium-84.0.4147.105/third_party/qcms/src/transform.c-1000-              xchg   ebx, esi
##############################################
chromium-84.0.4147.105/third_party/axe-core/axe.min.js-11- */
chromium-84.0.4147.105/third_party/axe-core/axe.min.js:12:!function e(window){var a=window,document=window.document;function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e){this.name="SupportError",this.cause=e.cause,this.message="`".concat(e.cause,"` - feature unsupported in your environment."),e.ruleId&&(this.ruleId=e.ruleId,this.message+=" Skipping ".concat(this.ruleId," rule.")),this.stack=(new Error).stack}(axe=axe||{}).version="3.3.2","function"==typeof define&&define.amd&&define("axe-core",[],function(){"use strict";return axe}),"object"===("undefined"==typeof module?"undefined":S(module))&&module.exports&&"function"==typeof e.toString&&(axe.source="("+e.toString()+')(typeof window === "object" ? window : this);',module.exports=axe),"function"==typeof window.getComputedStyle&&(window.axe=axe),(l.prototype=Object.create(Error.prototype)).constructor=l,function o(i,u,s){function l(t,e){if(!u[t]){if(!i[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(c)return c(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var a=u[t]={exports:{}};i[t][0].call(a.exports,function(e){return l(i[t][1][e]||e)},a,a.exports,o,i,u,s)}return u[t].exports}for(var c="function"==typeof require&&require,e=0;e<s.length;e++)l(s[e]);return l}({1:[function(e,t,n){"Promise"in window||e("es6-promise").polyfill(),e("weakmap-polyfill"),axe.imports={axios:e("axios"),CssSelectorParser:e("css-selector-parser").CssSelectorParser,doT:e("@deque/dot"),emojiRegexText:e("emoji-regex")}},{"@deque/dot":2,axios:3,"css-selector-parser":29,"emoji-regex":31,"es6-promise":32,"weakmap-polyfill":34}],2:[function(e,t,n){!function(){"use strict";var s={name:"doT",version:"1.1.1",templateSettings:{evaluate:/\{\{([\s\S]+?(\}?)+)\}\}/g,interpolate:/\{\{=([\s\S]+?)\}\}/g,encode:/\{\{!([\s\S]+?)\}\}/g,use:/\{\{#([\s\S]+?)\}\}/g,useParams:/(^|[^\w$])def(?:\.|\[[\'\"])([\w$\.]+)(?:[\'\"]\])?\s*\:\s*([\w$\.]+|\"[^\"]+\"|\'[^\']+\'|\{[^\}]+\})/g,define:/\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,defineParams:/^\s*([\w$]+):([\s\S]+)/,conditional:/\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,iterate:/\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,varname:"it",strip:!0,append:!0,selfcontained:!1,doNotSkipEncoded:!1},template:void 0,compile:void 0,log:!0};"object"!=typeof globalThis&&(Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__),s.encodeHTMLSource=function(e){var t={"&":"&#38;","<":"&#60;",">":"&#62;",'"':"&#34;","'":"&#39;","/":"&#47;"},n=e?/[&<>"'\/]/g:/&(?!#?\w+;)|<|>|"|'|\//g;return function(e){return e?e.toString().replace(n,function(e){return t[e]||e}):""}},void 0!==t&&t.exports?t.exports=s:"function"==typeof define&&define.amd?define(function(){return s}):globalThis.doT=s;var l={append:{start:"'+(",end:")+'",startencode:"'+encodeHTML("},split:{start:"';out+=(",end:");out+='",startencode:"';out+=encodeHTML("}},c=/$^/;function d(e){return e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ")}s.template=function(e,t,n){var r,a,o=(t=t||s.templateSettings).append?l.append:l.split,i=0,u=t.use||t.define?function r(a,e,o){return("string"==typeof e?e:e.toString()).replace(a.define||c,function(e,r,t,n){return 0===r.indexOf("def.")&&(r=r.substring(4)),r in o||(":"===t?(a.defineParams&&n.replace(a.defineParams,function(e,t,n){o[r]={arg:t,text:n}}),r in o||(o[r]=n)):new Function("def","def['"+r+"']="+n)(o)),""}).replace(a.use||c,function(e,t){a.useParams&&(t=t.replace(a.useParams,function(e,t,n,r){if(o[n]&&o[n].arg&&r){var a=(n+":"+r).replace(/'|\\/g,"_");return o.__exp=o.__exp||{},o.__exp[a]=o[n].text.replace(new RegExp("(^|[^\\w$])"+o[n].arg+"([^\\w$])","g"),"$1"+r+"$2"),t+"def.__exp['"+a+"']"}}));var n=new Function("def","return "+t)(o);return n?r(a,n,o):n})}(t,e,n||{}):e;u=("var out='"+(t.strip?u.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""):u).replace(/'|\\/g,"\\$&").replace(t.interpolate||c,function(e,t){return o.start+d(t)+o.end}).replace(t.encode||c,function(e,t){return r=!0,o.startencode+d(t)+o.end}).replace(t.conditional||c,function(e,t,n){return t?n?"';}else if("+d(n)+"){out+='":"';}else{out+='":n?"';if("+d(n)+"){out+='":"';}out+='"}).replace(t.iterate||c,function(e,t,n,r){return t?(i+=1,a=r||"i"+i,t=d(t),"';var arr"+i+"="+t+";if(arr"+i+"){var "+n+","+a+"=-1,l"+i+"=arr"+i+".length-1;while("+a+"<l"+i+"){"+n+"=arr"+i+"["+a+"+=1];out+='"):"';} } out+='"}).replace(t.evaluate||c,function(e,t){return"';"+d(t)+"out+='"})+"';return out;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)out\+='';/g,"$1").replace(/\+''/g,""),r&&(t.selfcontained||!globalThis||globalThis._encodeHTML||(globalThis._encodeHTML=s.encodeHTMLSource(t.doNotSkipEncoded)),u="var encodeHTML = typeof _encodeHTML !== 'undefined' ? _encodeHTML : ("+s.encodeHTMLSource.toString()+"("+(t.doNotSkipEncoded||"")+"));"+u);try{return new Function(t.varname,u)}catch(e){throw"undefined"!=typeof console&&console.log("Could not create a template function: "+u),e}},s.compile=function(e,t){return s.template(e,null,t)}}()},{}],3:[function(e,t,n){t.exports=e("./lib/axios")},{"./lib/axios":5}],4:[function(c,e,t){"use strict";var utils=c("./../utils"),d=c("./../core/settle"),m=c("./../helpers/buildURL"),p=c("./../helpers/parseHeaders"),f=c("./../helpers/isURLSameOrigin"),h=c("../core/createError");e.exports=function(l){return new Promise(function(n,r){var a=l.data,o=l.headers;utils.isFormData(a)&&delete o["Content-Type"];var i=new XMLHttpRequest;if(l.auth){var e=l.auth.username||"",t=l.auth.password||"";o.Authorization="Basic "+btoa(e+":"+t)}if(i.open(l.method.toUpperCase(),m(l.url,l.params,l.paramsSerializer),!0),i.timeout=l.timeout,i.onreadystatechange=function(){if(i&&4===i.readyState&&(0!==i.status||i.responseURL&&0===i.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in i?p(i.getAllResponseHeaders()):null,t={data:l.responseType&&"text"!==l.responseType?i.response:i.responseText,status:i.status,statusText:i.statusText,headers:e,config:l,request:i};d(n,r,t),i=null}},i.onabort=function(){i&&(r(h("Request aborted",l,"ECONNABORTED",i)),i=null)},i.onerror=function(){r(h("Network Error",l,null,i)),i=null},i.ontimeout=function(){r(h("timeout of "+l.timeout+"ms exceeded",l,"ECONNABORTED",i)),i=null},utils.isStandardBrowserEnv()){var u=c("./../helpers/cookies"),s=(l.withCredentials||f(l.url))&&l.xsrfCookieName?u.read(l.xsrfCookieName):void 0;s&&(o[l.xsrfHeaderName]=s)}if("setRequestHeader"in i&&utils.forEach(o,function(e,t){void 0===a&&"content-type"===t.toLowerCase()?delete o[t]:i.setRequestHeader(t,e)}),l.withCredentials&&(i.withCredentials=!0),l.responseType)try{i.responseType=l.responseType}catch(e){if("json"!==l.responseType)throw e}"function"==typeof l.onDownloadProgress&&i.addEventListener("progress",l.onDownloadProgress),"function"==typeof l.onUploadProgress&&i.upload&&i.upload.addEventListener("progress",l.onUploadProgress),l.cancelToken&&l.cancelToken.promise.then(function(e){i&&(i.abort(),r(e),i=null)}),void 0===a&&(a=null),i.send(a)})}},{"../core/createError":11,"./../core/settle":15,"./../helpers/buildURL":19,"./../helpers/cookies":21,"./../helpers/isURLSameOrigin":23,"./../helpers/parseHeaders":25,"./../utils":27}],5:[function(e,t,n){"use strict";var utils=e("./utils"),r=e("./helpers/bind"),a=e("./core/Axios"),o=e("./core/mergeConfig");function i(e){var t=new a(e),n=r(a.prototype.request,t);return utils.extend(n,a.prototype,t),utils.extend(n,t),n}var u=i(e("./defaults"));u.Axios=a,u.create=function(e){return i(o(u.defaults,e))},u.Cancel=e("./cancel/Cancel"),u.CancelToken=e("./cancel/CancelToken"),u.isCancel=e("./cancel/isCancel"),u.all=function(e){return Promise.all(e)},u.spread=e("./helpers/spread"),t.exports=u,t.exports.default=u},{"./cancel/Cancel":6,"./cancel/CancelToken":7,"./cancel/isCancel":8,"./core/Axios":9,"./core/mergeConfig":14,"./defaults":17,"./helpers/bind":18,"./helpers/spread":26,"./utils":27}],6:[function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,t.exports=r},{}],7:[function(e,t,n){"use strict";var r=e("./Cancel");function a(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new r(e),t(n.reason))})}a.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},a.source=function(){var t;return{token:new a(function(e){t=e}),cancel:t}},t.exports=a},{"./Cancel":6}],8:[function(e,t,n){"use strict";t.exports=function(e){return!(!e||!e.__CANCEL__)}},{}],9:[function(e,t,n){"use strict";var utils=e("./../utils"),r=e("../helpers/buildURL"),a=e("./InterceptorManager"),o=e("./dispatchRequest"),i=e("./mergeConfig");function u(e){this.defaults=e,this.interceptors={request:new a,response:new a}}u.prototype.request=function(e,t){"string"==typeof e?(e=t||{}).url=arguments[0]:e=e||{},(e=i(this.defaults,e)).method=e.method?e.method.toLowerCase():"get";var n=[o,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)r=r.then(n.shift(),n.shift());return r},u.prototype.getUri=function(e){return e=i(this.defaults,e),r(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},utils.forEach(["delete","get","head","options"],function(n){u.prototype[n]=function(e,t){return this.request(utils.merge(t||{},{method:n,url:e}))}}),utils.forEach(["post","put","patch"],function(r){u.prototype[r]=function(e,t,n){return this.request(utils.merge(n||{},{method:r,url:e,data:t}))}}),t.exports=u},{"../helpers/buildURL":19,"./../utils":27,"./InterceptorManager":10,"./dispatchRequest":12,"./mergeConfig":14}],10:[function(e,t,n){"use strict";var utils=e("./../utils");function r(){this.handlers=[]}r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(t){utils.forEach(this.handlers,function(e){null!==e&&t(e)})},t.exports=r},{"./../utils":27}],11:[function(e,t,n){"use strict";var i=e("./enhanceError");t.exports=function(e,t,n,r,a){var o=new Error(e);return i(o,t,n,r,a)}},{"./enhanceError":13}],12:[function(e,t,n){"use strict";var utils=e("./../utils"),r=e("./transformData"),a=e("../cancel/isCancel"),o=e("../defaults"),i=e("./../helpers/isAbsoluteURL"),u=e("./../helpers/combineURLs");function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}t.exports=function(t){return s(t),t.baseURL&&!i(t.url)&&(t.url=u(t.baseURL,t.url)),t.headers=t.headers||{},t.data=r(t.data,t.headers,t.transformRequest),t.headers=utils.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),utils.forEach(["delete","get","head","post","put","patch","common"],function(e){delete t.headers[e]}),(t.adapter||o.adapter)(t).then(function(e){return s(t),e.data=r(e.data,e.headers,t.transformResponse),e},function(e){return a(e)||(s(t),e&&e.response&&(e.response.data=r(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)})}},{"../cancel/isCancel":8,"../defaults":17,"./../helpers/combineURLs":20,"./../helpers/isAbsoluteURL":22,"./../utils":27,"./transformData":16}],13:[function(e,t,n){"use strict";t.exports=function(e,t,n,r,a){return e.config=t,n&&(e.code=n),e.request=r,e.response=a,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},{}],14:[function(e,t,n){"use strict";var utils=e("../utils");t.exports=function(t,n){n=n||{};var r={};return utils.forEach(["url","method","params","data"],function(e){void 0!==n[e]&&(r[e]=n[e])}),utils.forEach(["headers","auth","proxy"],function(e){utils.isObject(n[e])?r[e]=utils.deepMerge(t[e],n[e]):void 0!==n[e]?r[e]=n[e]:utils.isObject(t[e])?r[e]=utils.deepMerge(t[e]):void 0!==t[e]&&(r[e]=t[e])}),utils.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(e){void 0!==n[e]?r[e]=n[e]:void 0!==t[e]&&(r[e]=t[e])}),r}},{"../utils":27}],15:[function(e,t,n){"use strict";var a=e("./createError");t.exports=function(e,t,n){var r=n.config.validateStatus;!r||r(n.status)?e(n):t(a("Request failed with status code "+n.status,n.config,null,n.request,n))}},{"./createError":11}],16:[function(e,t,n){"use strict";var utils=e("./../utils");t.exports=function(t,n,e){return utils.forEach(e,function(e){t=e(t,n)}),t}},{"./../utils":27}],17:[function(i,u,e){(function(e){"use strict";var utils=i("./utils"),n=i("./helpers/normalizeHeaderName"),t={"Content-Type":"application/x-www-form-urlencoded"};function r(e,t){!utils.isUndefined(e)&&utils.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var a,o={adapter:(void 0!==e&&"[object process]"===Object.prototype.toString.call(e)?a=i("./adapters/http"):"undefined"!=typeof XMLHttpRequest&&(a=i("./adapters/xhr")),a),transformRequest:[function(e,t){return n(t,"Accept"),n(t,"Content-Type"),utils.isFormData(e)||utils.isArrayBuffer(e)||utils.isBuffer(e)||utils.isStream(e)||utils.isFile(e)||utils.isBlob(e)?e:utils.isArrayBufferView(e)?e.buffer:utils.isURLSearchParams(e)?(r(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):utils.isObject(e)?(r(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return 200<=e&&e<300}};o.headers={common:{Accept:"application/json, text/plain, */*"}},utils.forEach(["delete","get","head"],function(e){o.headers[e]={}}),utils.forEach(["post","put","patch"],function(e){o.headers[e]=utils.merge(t)}),u.exports=o}).call(this,i("_process"))},{"./adapters/http":4,"./adapters/xhr":4,"./helpers/normalizeHeaderName":24,"./utils":27,_process:33}],18:[function(e,t,n){"use strict";t.exports=function(n,r){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];return n.apply(r,e)}}},{}],19:[function(e,t,n){"use strict";var utils=e("./../utils");function i(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(e,t,n){if(!t)return e;var r;if(n)r=n(t);else if(utils.isURLSearchParams(t))r=t.toString();else{var a=[];utils.forEach(t,function(e,t){null!=e&&(utils.isArray(e)?t+="[]":e=[e],utils.forEach(e,function(e){utils.isDate(e)?e=e.toISOString():utils.isObject(e)&&(e=JSON.stringify(e)),a.push(i(t)+"="+i(e))}))}),r=a.join("&")}if(r){var o=e.indexOf("#");-1!==o&&(e=e.slice(0,o)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}},{"./../utils":27}],20:[function(e,t,n){"use strict";t.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},{}],21:[function(e,t,n){"use strict";var utils=e("./../utils");t.exports=utils.isStandardBrowserEnv()?{write:function(e,t,n,r,a,o){var i=[];i.push(e+"="+encodeURIComponent(t)),utils.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),utils.isString(r)&&i.push("path="+r),utils.isString(a)&&i.push("domain="+a),!0===o&&i.push("secure"),document.cookie=i.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},{"./../utils":27}],22:[function(e,t,n){"use strict";t.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},{}],23:[function(e,t,n){"use strict";var r,a,o,utils=e("./../utils");function i(e){var t=e;return a&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}t.exports=utils.isStandardBrowserEnv()?(a=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a"),r=i(window.location.href),function(e){var t=utils.isString(e)?i(e):e;return t.protocol===r.protocol&&t.host===r.host}):function(){return!0}},{"./../utils":27}],24:[function(e,t,n){"use strict";var utils=e("../utils");t.exports=function(n,r){utils.forEach(n,function(e,t){t!==r&&t.toUpperCase()===r.toUpperCase()&&(n[r]=e,delete n[t])})}},{"../utils":27}],25:[function(e,t,n){"use strict";var utils=e("./../utils"),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(e){var t,n,r,a={};return e&&utils.forEach(e.split("\n"),function(e){if(r=e.indexOf(":"),t=utils.trim(e.substr(0,r)).toLowerCase(),n=utils.trim(e.substr(r+1)),t){if(a[t]&&0<=o.indexOf(t))return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}}),a}},{"./../utils":27}],26:[function(e,t,n){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},{}],27:[function(e,t,n){"use strict";var a=e("./helpers/bind"),r=e("is-buffer"),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function u(e){return null!==e&&"object"==typeof e}function s(e){return"[object Function]"===o.call(e)}function l(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.call(null,e[a],a,e)}t.exports={isArray:i,isArrayBuffer:function(e){return"[object ArrayBuffer]"===o.call(e)},isBuffer:r,isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:u,isUndefined:function(e){return void 0===e},isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:s,isStream:function(e){return u(e)&&s(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&(void 0!==window&&void 0!==document)},forEach:l,merge:function n(){var r={};function e(e,t){"object"==typeof r[t]&&"object"==typeof e?r[t]=n(r[t],e):r[t]=e}for(var t=0,a=arguments.length;t<a;t++)l(arguments[t],e);return r},deepMerge:function n(){var r={};function e(e,t){"object"==typeof r[t]&&"object"==typeof e?r[t]=n(r[t],e):r[t]="object"==typeof e?n({},e):e}for(var t=0,a=arguments.length;t<a;t++)l(arguments[t],e);return r},extend:function(n,e,r){return l(e,function(e,t){n[t]=r&&"function"==typeof e?a(e,r):e}),n},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},{"./helpers/bind":18,"is-buffer":28}],28:[function(e,t,n){t.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},{}],29:[function(e,t,n){t.exports={CssSelectorParser:e("./lib/css-selector-parser.js").CssSelectorParser}},{"./lib/css-selector-parser.js":30}],30:[function(e,t,n){function r(){this.pseudos={},this.attrEqualityMods={},this.ruleNestingOperators={},this.substitutesEnabled=!1}function o(e){return"a"<=e&&e<="f"||"A"<=e&&e<="F"||"0"<=e&&e<="9"}r.prototype.registerSelectorPseudos=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],this.pseudos[e]="selector";return this},r.prototype.unregisterSelectorPseudos=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],delete this.pseudos[e];return this},r.prototype.registerNumericPseudos=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],this.pseudos[e]="numeric";return this},r.prototype.unregisterNumericPseudos=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],delete this.pseudos[e];return this},r.prototype.registerNestingOperators=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],this.ruleNestingOperators[e]=!0;return this},r.prototype.unregisterNestingOperators=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],delete this.ruleNestingOperators[e];return this},r.prototype.registerAttrEqualityMods=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],this.attrEqualityMods[e]=!0;return this},r.prototype.unregisterAttrEqualityMods=function(e){for(var t=0,n=arguments.length;t<n;t++)e=arguments[t],delete this.attrEqualityMods[e];return this},r.prototype.enableSubstitutes=function(){return this.substitutesEnabled=!0,this},r.prototype.disableSubstitutes=function(){return this.substitutesEnabled=!1,this};var u={"!":!0,'"':!0,"#":!0,$:!0,"%":!0,"&":!0,"'":!0,"(":!0,")":!0,"*":!0,"+":!0,",":!0,".":!0,"/":!0,";":!0,"<":!0,"=":!0,">":!0,"?":!0,"@":!0,"[":!0,"\\":!0,"]":!0,"^":!0,"`":!0,"{":!0,"|":!0,"}":!0,"~":!0},i={"\n":"\\n","\r":"\\r","\t":"\\t","\f":"\\f","\v":"\\v"},y={n:"\n",r:"\r",t:"\t",f:"\f","\\":"\\","'":"'"},v={n:"\n",r:"\r",t:"\t",f:"\f","\\":"\\",'"':'"'};function a(s,l,c,d,a,m){var p,f,h,b,g;return b=s.length,p=null,h=function(e,t){var n,r,a;for(a="",l++,p=s.charAt(l);l<b;){if(p===e)return l++,a;if("\\"===p)if(l++,(p=s.charAt(l))===e)a+=e;else if(n=t[p])a+=n;else{if(o(p)){for(r=p,l++,p=s.charAt(l);o(p);)r+=p,l++,p=s.charAt(l);" "===p&&(l++,p=s.charAt(l)),a+=String.fromCharCode(parseInt(r,16));continue}a+=p}else a+=p;l++,p=s.charAt(l)}return a},f=function(){var e,t="";for(p=s.charAt(l);l<b;){if("a"<=(e=p)&&e<="z"||"A"<=e&&e<="Z"||"0"<=e&&e<="9"||"-"===e||"_"===e)t+=p;else{if("\\"!==p)return t;if(b<=++l)throw Error("Expected symbol but end of file reached.");if(p=s.charAt(l),u[p])t+=p;else{if(o(p)){var n=p;for(l++,p=s.charAt(l);o(p);)n+=p,l++,p=s.charAt(l);" "===p&&(l++,p=s.charAt(l)),t+=String.fromCharCode(parseInt(n,16));continue}t+=p}}l++,p=s.charAt(l)}return t},g=function(){p=s.charAt(l);for(var e=!1;" "===p||"\t"===p||"\n"===p||"\r"===p||"\f"===p;)e=!0,l++,p=s.charAt(l);return e},this.parse=function(){var e=this.parseSelector();if(l<b)throw Error('Rule expected but "'+s.charAt(l)+'" found.');return e},this.parseSelector=function(){var e,t=e=this.parseSingleSelector();for(p=s.charAt(l);","===p;){if(l++,g(),"selectors"!==e.type&&(e={type:"selectors",selectors:[t]}),!(t=this.parseSingleSelector()))throw Error('Rule expected after ",".');e.selectors.push(t)}return e},this.parseSingleSelector=function(){g();var e={type:"ruleSet"},t=this.parseRule();if(!t)return null;for(var n=e;t&&(t.type="rule",n.rule=t,n=t,g(),p=s.charAt(l),!(b<=l||","===p||")"===p));)if(a[p]){var r=p;if(l++,g(),!(t=this.parseRule()))throw Error('Rule expected after "'+r+'".');t.nestingOperator=r}else(t=this.parseRule())&&(t.nestingOperator=null);return e},this.parseRule=function(){for(var e,t=null;l<b;)if("*"===(p=s.charAt(l)))l++,(t=t||{}).tagName="*";else if("a"<=(e=p)&&e<="z"||"A"<=e&&e<="Z"||"-"===e||"_"===e||"\\"===p)(t=t||{}).tagName=f();else if("."===p)l++,((t=t||{}).classNames=t.classNames||[]).push(f());else if("#"===p)l++,(t=t||{}).id=f();else if("["===p){l++,g();var n={name:f()};if(g(),"]"===p)l++;else{var r="";if(d[p]&&(r=p,l++,p=s.charAt(l)),b<=l)throw Error('Expected "=" but end of file reached.');if("="!==p)throw Error('Expected "=" but "'+p+'" found.');n.operator=r+"=",l++,g();var a="";if(n.valueType="string",'"'===p)a=h('"',v);else if("'"===p)a=h("'",y);else if(m&&"$"===p)l++,a=f(),n.valueType="substitute";else{for(;l<b&&"]"!==p;)a+=p,l++,p=s.charAt(l);a=a.trim()}if(g(),b<=l)throw Error('Expected "]" but end of file reached.');if("]"!==p)throw Error('Expected "]" but "'+p+'" found.');l++,n.value=a}((t=t||{}).attrs=t.attrs||[]).push(n)}else{if(":"!==p)break;l++;var o=f(),i={name:o};if("("===p){l++;var u="";if(g(),"selector"===c[o])i.valueType="selector",u=this.parseSelector();else{if(i.valueType=c[o]||"string",'"'===p)u=h('"',v);else if("'"===p)u=h("'",y);else if(m&&"$"===p)l++,u=f(),i.valueType="substitute";else{for(;l<b&&")"!==p;)u+=p,l++,p=s.charAt(l);u=u.trim()}g()}if(b<=l)throw Error('Expected ")" but end of file reached.');if(")"!==p)throw Error('Expected ")" but "'+p+'" found.');l++,i.value=u}((t=t||{}).pseudos=t.pseudos||[]).push(i)}return t},this}r.prototype.parse=function(e){return new a(e,0,this.pseudos,this.attrEqualityMods,this.ruleNestingOperators,this.substitutesEnabled).parse()},r.prototype.escapeIdentifier=function(e){for(var t="",n=0,r=e.length;n<r;){var a=e.charAt(n);if(u[a])t+="\\"+a;else if("_"===a||"-"===a||"A"<=a&&a<="Z"||"a"<=a&&a<="z"||0!==n&&"0"<=a&&a<="9")t+=a;else{var o=a.charCodeAt(0);if(55296==(63488&o)){var i=e.charCodeAt(n++);if(55296!=(64512&o)||56320!=(64512&i))throw Error("UCS-2(decode): illegal sequence");o=((1023&o)<<10)+(1023&i)+65536}t+="\\"+o.toString(16)+" "}n++}return t},r.prototype.escapeStr=function(e){for(var t,n,r="",a=0,o=e.length;a<o;)'"'===(t=e.charAt(a))?t='\\"':"\\"===t?t="\\\\":(n=i[t])&&(t=n),r+=t,a++;return'"'+r+'"'},r.prototype.render=function(e){return this._renderEntity(e).trim()},r.prototype._renderEntity=function(e){var t,n,r;switch(r="",e.type){case"ruleSet":for(t=e.rule,n=[];t;)t.nestingOperator&&n.push(t.nestingOperator),n.push(this._renderEntity(t)),t=t.rule;r=n.join(" ");break;case"selectors":r=e.selectors.map(this._renderEntity,this).join(", ");break;case"rule":e.tagName&&(r="*"===e.tagName?"*":this.escapeIdentifier(e.tagName)),e.id&&(r+="#"+this.escapeIdentifier(e.id)),e.classNames&&(r+=e.classNames.map(function(e){return"."+this.escapeIdentifier(e)},this).join("")),e.attrs&&(r+=e.attrs.map(function(e){return e.operator?"substitute"===e.valueType?"["+this.escapeIdentifier(e.name)+e.operator+"$"+e.value+"]":"["+this.escapeIdentifier(e.name)+e.operator+this.escapeStr(e.value)+"]":"["+this.escapeIdentifier(e.name)+"]"},this).join("")),e.pseudos&&(r+=e.pseudos.map(function(e){return e.valueType?"selector"===e.valueType?":"+this.escapeIdentifier(e.name)+"("+this._renderEntity(e.value)+")":"substitute"===e.valueType?":"+this.escapeIdentifier(e.name)+"($"+e.value+")":"numeric"===e.valueType?":"+this.escapeIdentifier(e.name)+"("+e.value+")":":"+this.escapeIdentifier(e.name)+"("+this.escapeIdentifier(e.value)+")":":"+this.escapeIdentifier(e.name)},this).join(""));break;default:throw Error('Unknown entity type: "'+e.type(NaN))}return r},n.CssSelectorParser=r},{}],31:[function(e,t,n){"use strict";t.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}},{}],32:[function(V,n,r){(function(P,U){var e,t;e=this,t=function(){"use strict";function s(e){return"function"==typeof e}var n=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},r=0,t=void 0,a=void 0,i=function(e,t){m[r]=e,m[r+1]=t,2===(r+=2)&&(a?a(p):y())};var e=void 0!==window?window:void 0,o=e||{},u=o.MutationObserver||o.WebKitMutationObserver,l="undefined"==typeof self&&void 0!==P&&"[object process]"==={}.toString.call(P),c="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function d(){var e=setTimeout;return function(){return e(p,1)}}var m=new Array(1e3);function p(){for(var e=0;e<r;e+=2){(0,m[e])(m[e+1]),m[e]=void 0,m[e+1]=void 0}r=0}var f,h,b,g,y=void 0;function v(e,t){var n=this,r=new this.constructor(k);void 0===r[w]&&O(r);var a=n._state;if(a){var o=arguments[a-1];i(function(){return S(a,r,o,n._result)})}else N(n,r,e,t);return r}function D(e){if(e&&"object"==typeof e&&e.constructor===this)return e;var t=new this(k);return F(t,e),t}y=l?function(){return P.nextTick(p)}:u?(h=0,b=new u(p),g=document.createTextNode(""),b.observe(g,{characterData:!0}),function(){g.data=h=++h%2}):c?((f=new MessageChannel).port1.onmessage=p,function(){return f.port2.postMessage(0)}):void 0===e&&"function"==typeof V?function(){try{var e=Function("return this")().require("vertx");return void 0!==(t=e.runOnLoop||e.runOnContext)?function(){t(p)}:d()}catch(e){return d()}}():d();var w=Math.random().toString(36).substring(2);function k(){}var x=void 0,E=1,C=2;function A(e,t,n){t.constructor===e.constructor&&n===v&&t.constructor.resolve===D?function(t,e){e._state===E?z(t,e._result):e._state===C?q(t,e._result):N(e,void 0,function(e){return F(t,e)},function(e){return q(t,e)})}(e,t):void 0===n?z(e,t):s(n)?function(e,r,a){i(function(t){var n=!1,e=function(e,t,n,r){try{e.call(t,n,r)}catch(e){return e}}(a,r,function(e){n||(n=!0,r!==e?F(t,e):z(t,e))},function(e){n||(n=!0,q(t,e))},t._label);!n&&e&&(n=!0,q(t,e))},e)}(e,t,n):z(e,t)}function F(t,e){if(t===e)q(t,new TypeError("You cannot resolve a promise with itself"));else if(function(e){var t=typeof e;return null!==e&&("object"==t||"function"==t)}(e)){var n=void 0;try{n=e.then}catch(e){return void q(t,e)}A(t,e,n)}else z(t,e)}function j(e){e._onerror&&e._onerror(e._result),T(e)}function z(e,t){e._state===x&&(e._result=t,e._state=E,0!==e._subscribers.length&&i(T,e))}function q(e,t){e._state===x&&(e._state=C,e._result=t,i(j,e))}function N(e,t,n,r){var a=e._subscribers,o=a.length;e._onerror=null,a[o]=t,a[o+E]=n,a[o+C]=r,0===o&&e._state&&i(T,e)}function T(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r=void 0,a=void 0,o=e._result,i=0;i<t.length;i+=3)r=t[i],a=t[i+n],r?S(n,r,a,o):a(o);e._subscribers.length=0}}function S(e,t,n,r){var a=s(n),o=void 0,i=void 0,u=!0;if(a){try{o=n(r)}catch(e){u=!1,i=e}if(t===o)return void q(t,new TypeError("A promises callback cannot return that same promise."))}else o=r;t._state!==x||(a&&u?F(t,o):!1===u?q(t,i):e===E?z(t,o):e===C&&q(t,o))}var R=0;function O(e){e[w]=R++,e._state=void 0,e._result=void 0,e._subscribers=[]}var _=(B.prototype._enumerate=function(e){for(var t=0;this._state===x&&t<e.length;t++)this._eachEntry(e[t],t)},B.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===D){var a=void 0,o=void 0,i=!1;try{a=t.then}catch(e){i=!0,o=e}if(a===v&&t._state!==x)this._settledAt(t._state,e,t._result);else if("function"!=typeof a)this._remaining--,this._result[e]=t;else if(n===L){var u=new n(k);i?q(u,o):A(u,t,a),this._willSettleAt(u,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},B.prototype._settledAt=function(e,t,n){var r=this.promise;r._state===x&&(this._remaining--,e===C?q(r,n):this._result[t]=n),0===this._remaining&&z(r,this._result)},B.prototype._willSettleAt=function(e,t){var n=this;N(e,void 0,function(e){return n._settledAt(E,t,e)},function(e){return n._settledAt(C,t,e)})},B);function B(e,t){this._instanceConstructor=e,this.promise=new e(k),this.promise[w]||O(this.promise),n(t)?(this.length=t.length,this._remaining=t.length,this._result=new Array(this.length),0===this.length?z(this.promise,this._result):(this.length=this.length||0,this._enumerate(t),0===this._remaining&&z(this.promise,this._result))):q(this.promise,new Error("Array Methods must be provided an Array"))}var L=(I.prototype.catch=function(e){return this.then(null,e)},I.prototype.finally=function(t){var n=this.constructor;return s(t)?this.then(function(e){return n.resolve(t()).then(function(){return e})},function(e){return n.resolve(t()).then(function(){throw e})}):this.then(t,t)},I);function I(e){this[w]=R++,this._result=this._state=void 0,this._subscribers=[],k!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof I?function(t,e){try{e(function(e){F(t,e)},function(e){q(t,e)})}catch(e){q(t,e)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return L.prototype.then=v,L.all=function(e){return new _(this,e).promise},L.race=function(a){var o=this;return n(a)?new o(function(e,t){for(var n=a.length,r=0;r<n;r++)o.resolve(a[r]).then(e,t)}):new o(function(e,t){return t(new TypeError("You must pass an array to race."))})},L.resolve=D,L.reject=function(e){var t=new this(k);return q(t,e),t},L._setScheduler=function(e){a=e},L._setAsap=function(e){i=e},L._asap=i,L.polyfill=function(){var e=void 0;if(void 0!==U)e=U;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var t=e.Promise;if(t){var n=null;try{n=Object.prototype.toString.call(t.resolve())}catch(e){}if("[object Promise]"===n&&!t.cast)return}e.Promise=L},L.Promise=L},"object"==typeof r&&void 0!==n?n.exports=t():"function"==typeof define&&define.amd?define(t):e.ES6Promise=t()}).call(this,V("_process"),void 0!==a?a:"undefined"!=typeof self?self:void 0!==window?window:{})},{_process:33}],33:[function(e,t,n){var r,a,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function u(){throw new Error("clearTimeout has not been defined")}function s(t){if(r===setTimeout)return setTimeout(t,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{a="function"==typeof clearTimeout?clearTimeout:u}catch(e){a=u}}();var l,c=[],d=!1,m=-1;function p(){d&&l&&(d=!1,l.length?c=l.concat(c):m=-1,c.length&&f())}function f(){if(!d){var e=s(p);d=!0;for(var t=c.length;t;){for(l=c,c=[];++m<t;)l&&l[m].run();m=-1,t=c.length}l=null,d=!1,function(t){if(a===clearTimeout)return clearTimeout(t);if((a===u||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(t);try{a(t)}catch(e){try{return a.call(null,t)}catch(e){return a.call(this,t)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function b(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(1<arguments.length)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new h(e,t)),1!==c.length||d||s(f)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=b,o.addListener=b,o.once=b,o.off=b,o.removeListener=b,o.removeAllListeners=b,o.emit=b,o.prependListener=b,o.prependOnceListener=b,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},{}],34:[function(e,t,n){(function(e){!function(e){"use strict";if(!e.WeakMap){var n=Object.prototype.hasOwnProperty,r=function(e,t,n){Object.defineProperty?Object.defineProperty(e,t,{configurable:!0,writable:!0,value:n}):e[t]=n};e.WeakMap=(r(t.prototype,"delete",function(e){if(a(this,"delete"),!i(e))return!1;var t=e[this._id];return!(!t||t[0]!==e||(delete e[this._id],0))}),r(t.prototype,"get",function(e){if(a(this,"get"),i(e)){var t=e[this._id];return t&&t[0]===e?t[1]:void 0}}),r(t.prototype,"has",function(e){if(a(this,"has"),!i(e))return!1;var t=e[this._id];return!(!t||t[0]!==e)}),r(t.prototype,"set",function(e,t){if(a(this,"set"),!i(e))throw new TypeError("Invalid value used as weak map key");var n=e[this._id];return n&&n[0]===e?n[1]=t:r(e,this._id,[e,t]),this}),r(t,"_polyfill",!0),t)}function t(){if(void 0===this)throw new TypeError("Constructor WeakMap requires 'new'");if(r(this,"_id",function(e){return e+"_"+o()+"."+o()}("_WeakMap")),0<arguments.length)throw new TypeError("WeakMap iterable is not supported")}function a(e,t){if(!i(e)||!n.call(e,"_id"))throw new TypeError(t+" method called on incompatible receiver "+typeof e)}function o(){return Math.random().toString().substring(2)}function i(e){return Object(e)===e}}("undefined"!=typeof self?self:void 0!==window?window:void 0!==e?e:this)}).call(this,void 0!==a?a:"undefined"!=typeof self?self:void 0!==window?window:{})},{}]},{},[1]);var utils=axe.utils={},u={};function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function t(e,t,n){"use strict";var r,a;for(r=0,a=e.length;r<a;r++)t[n](e[r])}function n(e){this.brand="axe",this.application="axeAPI",this.tagExclude=["experimental"],this.defaultConfig=e,this._init(),this._defaultLocale=null}n.prototype._setDefaultLocale=function(){if(!this._defaultLocale){for(var e={checks:{},rules:{}},t=Object.keys(this.data.checks),n=0;n<t.length;n++){var r=t[n],a=this.data.checks[r].messages,o=a.pass,i=a.fail,u=a.incomplete;e.checks[r]={pass:o,fail:i,incomplete:u}}for(var s=Object.keys(this.data.rules),l=0;l<s.length;l++){var c=s[l],d=this.data.rules[c],m=d.description,p=d.help;e.rules[c]={description:m,help:p}}this._defaultLocale=e}},n.prototype._resetLocale=function(){var e=this._defaultLocale;e&&this.applyLocale(e)};function c(a,e,o){return o.performanceTimer&&axe.utils.performanceTimer.mark("mark_rule_start_"+a.id),function(n,r){a.run(e,o,function(e){n(e)},function(e){if(o.debug)r(e);else{var t=Object.assign(new f(a),{result:axe.constants.CANTTELL,description:"An error occured while running this rule",message:e.message,stack:e.stack,error:e,errorNode:e.errorNode});n(t)}})}}function o(e,t,n){var r=e.brand,a=e.application;return axe.constants.helpUrlBase+r+"/"+(n||axe.version.substring(0,axe.version.lastIndexOf(".")))+"/"+t+"?application="+a}function d(e){"use strict";this.id=e.id,this.data=null,this.relatedNodes=[],this.result=null}function r(e){"use strict";return"string"==typeof e?new Function("return "+e+";")():e}function i(e){e&&(this.id=e.id,this.configure(e))}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t,n){"use strict";var r,a;e.frames=e.frames||[];var o=document.querySelectorAll(n.shift());e:for(var i=0,u=o.length;i<u;i++){a=o[i];for(var s=0,l=e.frames.length;s<l;s++)if(e.frames[s].node===a){e.frames[s][t].push(n);break e}r={node:a,include:[],exclude:[]},n&&r[t].push(n),e.frames.push(r)}}function m(e,t){"use strict";for(var n,r,a=[],o=0,i=e[t].length;o<i;o++){if("string"==typeof(n=e[t][o])){r=Array.from(document.querySelectorAll(n)),a=a.concat(r.map(function(e){return axe.utils.getNodeFromTree(e)}));break}!n||!n.length||n instanceof Node?n instanceof Node&&(n.documentElement instanceof Node?a.push(e.flatTree[0]):a.push(axe.utils.getNodeFromTree(n))):1<n.length?s(e,t,n):(r=Array.from(document.querySelectorAll(n[0])),a=a.concat(r.map(function(e){return axe.utils.getNodeFromTree(e)})))}return a.filter(function(e){return e})}function p(e){"use strict";var t=this;this.frames=[],this.initiator=!e||"boolean"!=typeof e.initiator||e.initiator,this.page=!1,e=function(e){"use strict";if(e&&"object"===S(e)||e instanceof NodeList){if(e instanceof Node)return{include:[e],exclude:[]};if(e.hasOwnProperty("include")||e.hasOwnProperty("exclude"))return{include:e.include&&+e.include.length?e.include:[document],exclude:e.exclude||[]};if(e.length===+e.length)return{include:e,exclude:[]}}return"string"==typeof e?{include:[e],exclude:[]}:{include:[document],exclude:[]}}(e),this.flatTree=axe.utils.getFlattenedTree(function(e){var t=e.include,n=e.exclude;return(Array.from(t).concat(Array.from(n)).reduce(function(e,t){return e||(t instanceof Element?t.ownerDocument:t instanceof Document?t:void 0)},null)||document).documentElement}(e)),this.exclude=e.exclude,this.include=e.include,this.include=m(this,"include"),this.exclude=m(this,"exclude"),axe.utils.select("frame, iframe",this).forEach(function(e){Be(e,t)&&function(e,t){"use strict";axe.utils.isHidden(t)||axe.utils.findBy(e,"node",t)||e.push({node:t,include:[],exclude:[]})}(t.frames,e.actualNode)}),1===this.include.length&&this.include[0].actualNode===document.documentElement&&(this.page=!0);var n=function(e){"use strict";if(0===e.include.length){if(0===e.frames.length){var t=axe.utils.respondable.isInFrame()?"frame":"page";return new Error("No elements found for include in "+t+" Context")}e.frames.forEach(function(e,t){if(0===e.include.length)return new Error("No elements found for include in Context of frame "+t)})}}(this);if(n instanceof Error)throw n;Array.isArray(this.include)||(this.include=Array.from(this.include)),this.include.sort(axe.utils.nodeSorter)}function f(e){"use strict";this.id=e.id,this.result=axe.constants.NA,this.pageLevel=e.pageLevel,this.impact=null,this.nodes=[]}function h(e,t){"use strict";this._audit=t,this.id=e.id,this.selector=e.selector||"*",this.excludeHidden="boolean"!=typeof e.excludeHidden||e.excludeHidden,this.enabled="boolean"!=typeof e.enabled||e.enabled,this.pageLevel="boolean"==typeof e.pageLevel&&e.pageLevel,this.any=e.any||[],this.all=e.all||[],this.none=e.none||[],this.tags=e.tags||[],this.preload=!!e.preload,e.matches&&(this.matches=r(e.matches))}function b(e){if(e.length){var n=!1,r={};return e.forEach(function(e){var t=e.results.filter(function(e){return e});(r[e.type]=t).length&&(n=!0)}),n?r:null}}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function D(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function k(e,t,n){return t&&w(e.prototype,t),n&&w(e,n),e}n.prototype._applyCheckLocale=function(e){for(var t,n,r,a,o=Object.keys(e),i=0;i<o.length;i++){var u=o[i];if(!this.data.checks[u])throw new Error('Locale provided for unknown check: "'.concat(u,'"'));this.data.checks[u]=(t=this.data.checks[u],n=e[u],a=r=void 0,r=n.pass,a=n.fail,"string"==typeof r&&(r=axe.imports.doT.compile(r)),"string"==typeof a&&(a=axe.imports.doT.compile(a)),R({},t,{messages:{pass:r||t.messages.pass,fail:a||t.messages.fail,incomplete:"object"===S(t.messages.incomplete)?R({},t.messages.incomplete,{},n.incomplete):n.incomplete}}))}},n.prototype._applyRuleLocale=function(e){for(var t,n,r,a,o=Object.keys(e),i=0;i<o.length;i++){var u=o[i];if(!this.data.rules[u])throw new Error('Locale provided for unknown rule: "'.concat(u,'"'));this.data.rules[u]=(t=this.data.rules[u],n=e[u],a=r=void 0,r=n.help,a=n.description,"string"==typeof r&&(r=axe.imports.doT.compile(r)),"string"==typeof a&&(a=axe.imports.doT.compile(a)),R({},t,{help:r||t.help,description:a||t.description}))}},n.prototype.applyLocale=function(e){this._setDefaultLocale(),e.checks&&this._applyCheckLocale(e.checks),e.rules&&this._applyRuleLocale(e.rules)},n.prototype._init=function(){var e=function(e){"use strict";var t;return e?(t=axe.utils.clone(e)).commons=e.commons:t={},t.reporter=t.reporter||null,t.rules=t.rules||[],t.checks=t.checks||[],t.data=R({checks:{},rules:{}},t.data),t}(this.defaultConfig);axe.commons=e.commons,this.reporter=e.reporter,this.commands={},this.rules=[],this.checks={},t(e.rules,this,"addRule"),t(e.checks,this,"addCheck"),this.data={},this.data.checks=e.data&&e.data.checks||{},this.data.rules=e.data&&e.data.rules||{},this.data.failureSummaries=e.data&&e.data.failureSummaries||{},this.data.incompleteFallbackMessage=e.data&&e.data.incompleteFallbackMessage||"",this._constructHelpUrls()},n.prototype.registerCommand=function(e){"use strict";this.commands[e.id]=e.callback},n.prototype.addRule=function(e){"use strict";e.metadata&&(this.data.rules[e.id]=e.metadata);var t=this.getRule(e.id);t?t.configure(e):this.rules.push(new h(e,this))},n.prototype.addCheck=function(e){"use strict";var t=e.metadata;"object"===S(t)&&(this.data.checks[e.id]=t,"object"===S(t.messages)&&Object.keys(t.messages).filter(function(e){return t.messages.hasOwnProperty(e)&&"string"==typeof t.messages[e]}).forEach(function(e){0===t.messages[e].indexOf("function")&&(t.messages[e]=new Function("return "+t.messages[e]+";")())})),this.checks[e.id]?this.checks[e.id].configure(e):this.checks[e.id]=new i(e)},n.prototype.run=function(o,i,u,s){"use strict";this.normalizeOptions(i),axe._selectCache=[];var e=function(e,n,r){return e.reduce(function(e,t){return axe.utils.ruleShouldRun(t,n,r)&&(t.preload?e.later.push(t):e.now.push(t)),e},{now:[],later:[]})}(this.rules,o,i),t=e.now,l=e.later,n=axe.utils.queue();t.forEach(function(e){n.defer(c(e,o,i))});var r=axe.utils.queue();l.length&&r.defer(function(t){axe.utils.preload(i).then(function(e){return t(e)}).catch(function(e){console.warn("Couldn't load preload assets: ",e),t(void 0)})});var a=axe.utils.queue();a.defer(n),a.defer(r),a.then(function(e){var t=e.pop();if(t&&t.length){var n=t[0];n&&(o=R({},o,{},n))}var r=e[0];if(!l.length)return axe._selectCache=void 0,void u(r.filter(function(e){return!!e}));var a=axe.utils.queue();l.forEach(function(e){var t=c(e,o,i);a.defer(t)}),a.then(function(e){axe._selectCache=void 0,u(r.concat(e).filter(function(e){return!!e}))}).catch(s)}).catch(s)},n.prototype.after=function(e,n){"use strict";var r=this.rules;return e.map(function(e){var t=axe.utils.findBy(r,"id",e.id);if(!t)throw new Error("Result for unknown rule. You may be running mismatch axe-core versions");return t.after(e,n)})},n.prototype.getRule=function(t){return this.rules.find(function(e){return e.id===t})},n.prototype.normalizeOptions=function(e){"use strict";var t=this;if("object"===S(e.runOnly)){Array.isArray(e.runOnly)&&(e.runOnly={type:"tag",values:e.runOnly});var n=e.runOnly;if(n.value&&!n.values&&(n.values=n.value,delete n.value),!Array.isArray(n.values)||0===n.values.length)throw new Error("runOnly.values must be a non-empty array");if(["rule","rules"].includes(n.type))n.type="rule",n.values.forEach(function(e){if(!t.getRule(e))throw new Error("unknown rule `"+e+"` in options.runOnly")});else{if(!["tag","tags",void 0].includes(n.type))throw new Error("Unknown runOnly type '".concat(n.type,"'"));n.type="tag";var r=t.rules.reduce(function(e,t){return e.length?e.filter(function(e){return!t.tags.includes(e)}):e},n.values);0!==r.length&&axe.log("Could not find tags `"+r.join("`, `")+"`")}}return"object"===S(e.rules)&&Object.keys(e.rules).forEach(function(e){if(!t.getRule(e))throw new Error("unknown rule `"+e+"` in options.rules")}),e},n.prototype.setBranding=function(e){"use strict";var t={brand:this.brand,application:this.application};e&&e.hasOwnProperty("brand")&&e.brand&&"string"==typeof e.brand&&(this.brand=e.brand),e&&e.hasOwnProperty("application")&&e.application&&"string"==typeof e.application&&(this.application=e.application),this._constructHelpUrls(t)},n.prototype._constructHelpUrls=function(){var n=this,r=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,a=(axe.version.match(/^[1-9][0-9]*\.[0-9]+/)||["x.y"])[0];this.rules.forEach(function(e){n.data.rules[e.id]||(n.data.rules[e.id]={});var t=n.data.rules[e.id];("string"!=typeof t.helpUrl||r&&t.helpUrl===o(r,e.id,a))&&(t.helpUrl=o(n,e.id,a))})},n.prototype.resetRulesAndChecks=function(){"use strict";this._init(),this._resetLocale()},function(){"use strict";var n={},e={set:function(e,t){n[e]=t},get:function(e){return n[e]},clear:function(){n={}}};axe._cache=e}(),i.prototype.enabled=!0,i.prototype.run=function(t,e,n,r,a){"use strict";var o=(e=e||{}).hasOwnProperty("enabled")?e.enabled:this.enabled,i=e.options||this.options;if(o){var u,s=new d(this),l=axe.utils.checkHelper(s,e,r,a);try{u=this.evaluate.call(l,t.actualNode,i,t,n)}catch(e){return t&&t.actualNode&&(e.errorNode=new X(t.actualNode).toJSON()),void a(e)}l.isAsync||(s.result=u,r(s))}else r(null)},i.prototype.runSync=function(t,e,n){var r=(e=e||{}).enabled;if(!(void 0===r?this.enabled:r))return null;var a,o=e.options||this.options,i=new d(this),u=axe.utils.checkHelper(i,e);u.async=function(){throw new Error("Cannot run async check while in a synchronous run")};try{a=this.evaluate.call(u,t.actualNode,o,t,n)}catch(e){throw t&&t.actualNode&&(e.errorNode=new X(t.actualNode).toJSON()),e}return i.result=a,i},i.prototype.configure=function(t){var n=this;["options","enabled"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(e){return n[e]=t[e]}),["evaluate","after"].filter(function(e){return t.hasOwnProperty(e)}).forEach(function(e){return n[e]=r(t[e])})},h.prototype.matches=function(){"use strict";return!0},h.prototype.gather=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n="mark_gather_start_"+this.id,r="mark_gather_end_"+this.id,a="mark_isHidden_start_"+this.id,o="mark_isHidden_end_"+this.id;t.performanceTimer&&axe.utils.performanceTimer.mark(n);var i=axe.utils.select(this.selector,e);return this.excludeHidden&&(t.performanceTimer&&axe.utils.performanceTimer.mark(a),i=i.filter(function(e){return!axe.utils.isHidden(e.actualNode)}),t.performanceTimer&&(axe.utils.performanceTimer.mark(o),axe.utils.performanceTimer.measure("rule_"+this.id+"#gather_axe.utils.isHidden",a,o))),t.performanceTimer&&(axe.utils.performanceTimer.mark(r),axe.utils.performanceTimer.measure("rule_"+this.id+"#gather",n,r)),i},h.prototype.runChecks=function(t,a,o,i,n,e){"use strict";var u=this,s=axe.utils.queue();this[t].forEach(function(e){var n=u._audit.checks[e.id||e],r=axe.utils.getCheckOption(n,u.id,o);s.defer(function(e,t){n.run(a,r,i,e,t)})}),s.then(function(e){e=e.filter(function(e){return e}),n({type:t,results:e})}).catch(e)},h.prototype.runChecksSync=function(e,r,a,o){"use strict";var i=this,u=[];return this[e].forEach(function(e){var t=i._audit.checks[e.id||e],n=axe.utils.getCheckOption(t,i.id,a);u.push(t.runSync(r,n,o))}),{type:e,results:u=u.filter(function(e){return e})}},h.prototype.run=function(a){var o=this,i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=2<arguments.length?arguments[2]:void 0,t=3<arguments.length?arguments[3]:void 0;i.performanceTimer&&this._trackPerformance();var n,u=axe.utils.queue(),s=new f(this);try{n=this.gatherAndMatchNodes(a,i)}catch(e){return void t(new l({cause:e,ruleId:this.id}))}i.performanceTimer&&this._logGatherPerformance(n),n.forEach(function(r){u.defer(function(n,t){var e=axe.utils.queue();["any","all","none"].forEach(function(n){e.defer(function(e,t){o.runChecks(n,r,i,a,e,t)})}),e.then(function(e){var t=b(e);t&&(t.node=new axe.utils.DqElement(r.actualNode,i),s.nodes.push(t)),n()}).catch(function(e){return t(e)})})}),u.defer(function(e){return setTimeout(e,0)}),i.performanceTimer&&this._logRulePerformance(),u.then(function(){return e(s)}).catch(function(e){return t(e)})},h.prototype.runSync=function(r){var a=this,o=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};o.performanceTimer&&this._trackPerformance();var e,i=new f(this);try{e=this.gatherAndMatchNodes(r,o)}catch(e){throw new l({cause:e,ruleId:this.id})}return o.performanceTimer&&this._logGatherPerformance(e),e.forEach(function(t){var n=[];["any","all","none"].forEach(function(e){n.push(a.runChecksSync(e,t,o,r))});var e=b(n);e&&(e.node=t.actualNode?new axe.utils.DqElement(t.actualNode,o):null,i.nodes.push(e))}),o.performanceTimer&&this._logRulePerformance(),i},h.prototype._trackPerformance=function(){this._markStart="mark_rule_start_"+this.id,this._markEnd="mark_rule_end_"+this.id,this._markChecksStart="mark_runchecks_start_"+this.id,this._markChecksEnd="mark_runchecks_end_"+this.id},h.prototype._logGatherPerformance=function(e){axe.log("gather (",e.length,"):",axe.utils.performanceTimer.timeElapsed()+"ms"),axe.utils.performanceTimer.mark(this._markChecksStart)},h.prototype._logRulePerformance=function(){axe.utils.performanceTimer.mark(this._markChecksEnd),axe.utils.performanceTimer.mark(this._markEnd),axe.utils.performanceTimer.measure("runchecks_"+this.id,this._markChecksStart,this._markChecksEnd),axe.utils.performanceTimer.measure("rule_"+this.id,this._markStart,this._markEnd)},h.prototype.gatherAndMatchNodes=function(t,e){var n=this,r="mark_matches_start_"+this.id,a="mark_matches_end_"+this.id,o=this.gather(t,e);return e.performanceTimer&&axe.utils.performanceTimer.mark(r),o=o.filter(function(e){return n.matches(e.actualNode,e,t)}),e.performanceTimer&&(axe.utils.performanceTimer.mark(a),axe.utils.performanceTimer.measure("rule_"+this.id+"#matches",r,a)),o},h.prototype.after=function(a,o){"use strict";var e=function(n){"use strict";return axe.utils.getAllChecks(n).map(function(e){var t=n._audit.checks[e.id||e];return t&&"function"==typeof t.after?t:null}).filter(Boolean)}(this),i=this.id;return e.forEach(function(e){var t=function(e,t){"use strict";var n=[];return e.forEach(function(e){axe.utils.getAllChecks(e).forEach(function(e){e.id===t&&n.push(e)})}),n}(a.nodes,e.id),n=axe.utils.getCheckOption(e,i,o),r=e.after(t,n);t.forEach(function(e){-1===r.indexOf(e)&&(e.filtered=!0)})}),a.nodes=function(e){"use strict";var r=["any","all","none"],t=e.nodes.filter(function(t){var n=0;return r.forEach(function(e){t[e]=function(e){"use strict";return e.filter(function(e){return!0!==e.filtered})}(t[e]),n+=t[e].length}),0<n});return e.pageLevel&&t.length&&(t=[t.reduce(function(t,n){if(t)return r.forEach(function(e){t[e].push.apply(t[e],n[e])}),t})]),t}(a),a},h.prototype.configure=function(e){"use strict";e.hasOwnProperty("selector")&&(this.selector=e.selector),e.hasOwnProperty("excludeHidden")&&(this.excludeHidden="boolean"!=typeof e.excludeHidden||e.excludeHidden),e.hasOwnProperty("enabled")&&(this.enabled="boolean"!=typeof e.enabled||e.enabled),e.hasOwnProperty("pageLevel")&&(this.pageLevel="boolean"==typeof e.pageLevel&&e.pageLevel),e.hasOwnProperty("any")&&(this.any=e.any),e.hasOwnProperty("all")&&(this.all=e.all),e.hasOwnProperty("none")&&(this.none=e.none),e.hasOwnProperty("tags")&&(this.tags=e.tags),e.hasOwnProperty("matches")&&("string"==typeof e.matches?this.matches=new Function("return "+e.matches+";")():this.matches=e.matches)};var x=/[\t\r\n\f]/g,E=(k(C,[{key:"hasClass",value:function(){throw new Error('VirtualNode class must have a "hasClass" function')}},{key:"attr",value:function(){throw new Error('VirtualNode class must have a "attr" function')}},{key:"hasAttr",value:function(){throw new Error('VirtualNode class must have a "hasAttr" function')}},{key:"props",get:function(){throw new Error('VirtualNode class must have a "props" object consisting of "nodeType" and "nodeName" properties')}}]),C);function C(){D(this,C),this.children=[],this.parent=null}var A=(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(F,E),k(F,[{key:"hasClass",value:function(e){var t=this.attr("class");if(!t)return!1;var n=" "+e+" ";return 0<=(" "+t+" ").replace(x," ").indexOf(n)}},{key:"attr",value:function(e){return"function"!=typeof this.actualNode.getAttribute?null:this.actualNode.getAttribute(e)}},{key:"hasAttr",value:function(e){return"function"==typeof this.actualNode.hasAttribute&&this.actualNode.hasAttribute(e)}},{key:"props",get:function(){var e=this.actualNode,t=e.nodeType,n=e.nodeName,r=e.id,a=e.type;return{nodeType:t,nodeName:n.toLowerCase(),id:r,type:a}}},{key:"isFocusable",get:function(){return this._cache.hasOwnProperty("isFocusable")||(this._cache.isFocusable=axe.commons.dom.isFocusable(this.actualNode)),this._cache.isFocusable}},{key:"tabbableElements",get:function(){return this._cache.hasOwnProperty("tabbableElements")||(this._cache.tabbableElements=axe.commons.dom.getTabbableElements(this)),this._cache.tabbableElements}}]),F);function F(e,t,n){var r;return D(this,F),(r=function(e,t){return!t||"object"!==S(t)&&"function"!=typeof t?y(e):t}(this,g(F).call(this))).shadowId=n,r.children=[],r.actualNode=e,r.parent=t,r._isHidden=null,r._cache={},axe._cache.get("nodeMap")&&axe._cache.get("nodeMap").set(e,y(r)),r}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(t,n){"use strict";if(t=t||function(){},n=n||axe.log,!axe._audit)throw new Error("No audit configured");var r=axe.utils.queue(),a=[];Object.keys(axe.plugins).forEach(function(e){r.defer(function(t){function n(e){a.push(e),t()}try{axe.plugins[e].cleanup(t,n)}catch(e){n(e)}})});var e=axe.utils.getFlattenedTree(document.body);axe.utils.querySelectorAll(e,"iframe, frame").forEach(function(n){r.defer(function(e,t){return axe.utils.sendCommandToFrame(n.actualNode,{command:"cleanup-plugin"},e,t)})}),r.then(function(e){0===a.length?t(e):n(a)}).catch(n)}function z(e,t,n){"use strict";function r(e){e instanceof Error==!1&&(e=new Error(e)),n(e)}var a=n,o=e&&e.context||{};o.hasOwnProperty("include")&&!o.include.length&&(o.include=[document]);var i=e&&e.options||{};switch(e.command){case"rules":return _(o,i,function(e,t){a(e),t()},r);case"cleanup-plugin":return j(a,r);default:if(axe._audit&&axe._audit.commands&&axe._audit.commands[e.command])return axe._audit.commands[e.command](e,n)}}function q(e){"use strict";this._run=e.run,this._collect=e.collect,this._registry={},e.commands.forEach(function(e){axe._audit.registerCommand(e)})}axe.AbstractVirtualNode=E,function(axe){var o={helpUrlBase:"https://dequeuniversity.com/rules/",results:[],resultGroups:[],resultGroupMap:{},impact:Object.freeze(["minor","moderate","serious","critical"]),preload:Object.freeze({assets:["cssom"],timeout:1e4})};[{name:"NA",value:"inapplicable",priority:0,group:"inapplicable"},{name:"PASS",value:"passed",priority:1,group:"passes"},{name:"CANTTELL",value:"cantTell",priority:2,group:"incomplete"},{name:"FAIL",value:"failed",priority:3,group:"violations"}].forEach(function(e){var t=e.name,n=e.value,r=e.priority,a=e.group;o[t]=n,o[t+"_PRIO"]=r,o[t+"_GROUP"]=a,o.results[r]=n,o.resultGroups[r]=a,o.resultGroupMap[n]=a}),Object.freeze(o.results),Object.freeze(o.resultGroups),Object.freeze(o.resultGroupMap),Object.freeze(o),Object.defineProperty(axe,"constants",{value:o,enumerable:!0,configurable:!1,writable:!1})}(axe),axe.log=function(){"use strict";"object"===("undefined"==typeof console?"undefined":S(console))&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},axe.cleanup=j,axe.configure=function(e){"use strict";var t;if(!(t=axe._audit))throw new Error("No audit configured");e.reporter&&("function"==typeof e.reporter||T[e.reporter])&&(t.reporter=e.reporter),e.checks&&e.checks.forEach(function(e){t.addCheck(e)});var n=[];e.rules&&e.rules.forEach(function(e){n.push(e.id),t.addRule(e)}),e.disableOtherRules&&t.rules.forEach(function(e){!1===n.includes(e.id)&&(e.enabled=!1)}),void 0!==e.branding?t.setBranding(e.branding):t._constructHelpUrls(),e.tagExclude&&(t.tagExclude=e.tagExclude),e.locale&&t.applyLocale(e.locale)},axe.getRules=function(e){"use strict";var t=(e=e||[]).length?axe._audit.rules.filter(function(t){return!!e.filter(function(e){return-1!==t.tags.indexOf(e)}).length}):axe._audit.rules,n=axe._audit.data.rules||{};return t.map(function(e){var t=n[e.id]||{};return{ruleId:e.id,description:t.description,help:t.help,helpUrl:t.helpUrl,tags:e.tags}})},axe._load=function(e){"use strict";axe.utils.respondable.subscribe("axe.ping",function(e,t,n){n({axe:!0})}),axe.utils.respondable.subscribe("axe.start",z),axe._audit=new n(e)},(axe=axe||{}).plugins={},q.prototype.run=function(){"use strict";return this._run.apply(this,arguments)},q.prototype.collect=function(){"use strict";return this._collect.apply(this,arguments)},q.prototype.cleanup=function(e){"use strict";var n=axe.utils.queue(),r=this;Object.keys(this._registry).forEach(function(t){n.defer(function(e){r._registry[t].cleanup(e)})}),n.then(function(){e()})},q.prototype.add=function(e){"use strict";this._registry[e.id]=e},axe.registerPlugin=function(e){"use strict";axe.plugins[e.id]=new q(e)};var N,T={};function O(){axe._cache.clear(),axe._tree=void 0,axe._selectorData=void 0}function _(n,r,a,o){"use strict";try{n=new p(n),axe._tree=n.flatTree,axe._selectorData=axe.utils.getSelectorData(n.flatTree)}catch(e){return O(),o(e)}var i,e=axe.utils.queue(),u=axe._audit;r.performanceTimer&&axe.utils.performanceTimer.auditStart(),n.frames.length&&!1!==r.iframes&&e.defer(function(e,t){axe.utils.collectResultsFromFrames(n,r,"rules",null,e,t)}),e.defer(function(e,t){r.restoreScroll&&(i=axe.utils.getScrollState()),u.run(n,r,e,t)}),e.then(function(e){try{i&&axe.utils.setScrollState(i),r.performanceTimer&&axe.utils.performanceTimer.auditEnd();var t=axe.utils.mergeResults(e.map(function(e){return{results:e}}));n.initiator&&((t=u.after(t,r)).forEach(axe.utils.publishMetaData),t=t.map(axe.utils.finalizeRuleResult));try{a(t,O)}catch(e){O(),axe.log(e)}}catch(e){O(),o(e)}}).catch(function(e){O(),o(e)})}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}axe.getReporter=function(e){"use strict";return"string"==typeof e&&T[e]?T[e]:"function"==typeof e?e:N},axe.addReporter=function(e,t,n){"use strict";T[e]=t,n&&(N=t)},axe.reset=function(){"use strict";var e=axe._audit;if(!e)throw new Error("No audit configured");e.resetRulesAndChecks()},axe._runRules=_,axe.runVirtualRule=function(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};n.reporter=n.reporter||axe._audit.reporter||"v1",axe._selectorData={};var r=axe._audit.rules.find(function(e){return e.id===t});if(!r)throw new Error("unknown rule `"+t+"`");var a={include:[e]},o=(r=Object.create(r,{excludeHidden:{value:!1}})).runSync(a,n);axe.utils.publishMetaData(o),axe.utils.finalizeRuleResult(o);var i=axe.utils.aggregateResult([o]);return i.violations.forEach(function(e){return e.nodes.forEach(function(e){e.failureSummary=u.failureSummary(e)})}),R({},u.getEnvironmentData(),{},i,{toolOptions:n})};function B(){}function L(e,t,n){"use strict";var r=new TypeError("axe.run arguments are invalid");if(!function(e){"use strict";switch(!0){case"string"==typeof e:case Array.isArray(e):case Node&&e instanceof Node:case NodeList&&e instanceof NodeList:return!0;case"object"!==S(e):return!1;case void 0!==e.include:case void 0!==e.exclude:case"number"==typeof e.length:return!0;default:return!1}}(e)){if(void 0!==n)throw r;n=t,t=e,e=document}if("object"!==S(t)){if(void 0!==n)throw r;n=t,t={}}if("function"!=typeof n&&void 0!==n)throw r;return{context:e,options:t,callback:n||B}}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}axe.run=function(e,a,o){"use strict";if(!axe._audit)throw new Error("No audit configured");var t,n=L(e,a,o);e=n.context,a=n.options,o=n.callback,a.reporter=a.reporter||axe._audit.reporter||"v1",a.performanceTimer&&axe.utils.performanceTimer.start();var i=B,u=B;return"function"==typeof Promise&&o===B&&(t=new Promise(function(e,t){i=t,u=e})),axe._runRules(e,a,function(e,t){function n(e){t();try{o(null,e)}catch(e){axe.log(e)}u(e)}a.performanceTimer&&axe.utils.performanceTimer.end();try{var r=axe.getReporter(a.reporter)(e,a,n);void 0!==r&&n(r)}catch(e){t(),o(e),i(e)}},function(e){o(e),i(e)}),t},u.failureSummary=function(e){"use strict";var n={};return n.none=e.none.concat(e.all),n.any=e.any,Object.keys(n).map(function(e){if(n[e].length){var t=axe._audit.data.failureSummaries[e];return t&&"function"==typeof t.failureMessage?t.failureMessage(n[e].map(function(e){return e.message||""})):void 0}}).filter(function(e){return void 0!==e}).join("\n\n")},u.getEnvironmentData=function(e){var t=0<arguments.length&&void 0!==e?e:window,n=t.screen,r=void 0===n?{}:n,a=t.navigator,o=void 0===a?{}:a,i=t.location,u=void 0===i?{}:i,s=t.innerHeight,l=t.innerWidth,c=r.msOrientation||r.orientation||r.mozOrientation||{};return{testEngine:{name:"axe-core",version:axe.version},testRunner:{name:axe._audit.brand},testEnvironment:{userAgent:o.userAgent,windowWidth:l,windowHeight:s,orientationAngle:c.angle,orientationType:c.type},timestamp:(new Date).toISOString(),url:u.href}},u.incompleteFallbackMessage=function(){"use strict";return axe._audit.data.incompleteFallbackMessage()};var I=axe.constants.resultGroups;function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}u.processAggregate=function(e,n){var t=axe.utils.aggregateResult(e);return I.forEach(function(e){n.resultTypes&&!n.resultTypes.includes(e)&&(t[e]||[]).forEach(function(e){Array.isArray(e.nodes)&&0<e.nodes.length&&(e.nodes=[e.nodes[0]])}),t[e]=(t[e]||[]).map(function(t){return t=Object.assign({},t),Array.isArray(t.nodes)&&0<t.nodes.length&&(t.nodes=t.nodes.map(function(e){return"object"===S(e.node)&&(e.html=e.node.source,n.elementRef&&!e.node.fromFrame&&(e.element=e.node.element),!1===n.selectors&&!e.node.fromFrame||(e.target=e.node.selector),n.xpath&&(e.xpath=e.node.xpath)),delete e.result,delete e.node,function(t,n){"use strict";["any","all","none"].forEach(function(e){Array.isArray(t[e])&&t[e].filter(function(e){return Array.isArray(e.relatedNodes)}).forEach(function(e){e.relatedNodes=e.relatedNodes.map(function(e){var t={html:e.source};return n.elementRef&&!e.fromFrame&&(t.element=e.element),!1===n.selectors&&!e.fromFrame||(t.target=e.selector),n.xpath&&(t.xpath=e.xpath),t})})})}(e,n),e})),I.forEach(function(e){return delete t[e]}),delete t.pageLevel,delete t.result,t})}),t},axe.addReporter("na",function(e,t,n){"use strict";console.warn('"na" reporter will be deprecated in axe v4.0. Use the "v2" reporter instead.'),"function"==typeof t&&(n=t,t={});var r=u.processAggregate(e,t);n(R({},u.getEnvironmentData(),{toolOptions:t,violations:r.violations,passes:r.passes,incomplete:r.incomplete,inapplicable:r.inapplicable}))}),axe.addReporter("no-passes",function(e,t,n){"use strict";"function"==typeof t&&(n=t,t={}),t.resultTypes=["violations"];var r=u.processAggregate(e,t);n(R({},u.getEnvironmentData(),{toolOptions:t,violations:r.violations}))}),axe.addReporter("rawEnv",function(e,t,n){"function"==typeof t&&(n=t,t={}),axe.getReporter("raw")(e,t,function(e){var t=u.getEnvironmentData();n({raw:e,env:t})})}),axe.addReporter("raw",function(e,t,n){"use strict";if("function"==typeof t&&(n=t,t={}),!e||!Array.isArray(e))return n(e);n(e.map(function(e){for(var t=R({},e),n=0,r=["passes","violations","incomplete","inapplicable"];n<r.length;n++){var a=r[n];t[a]&&Array.isArray(t[a])&&(t[a]=t[a].map(function(e){return R({},e,{node:e.node.toJSON()})}))}return t}))}),axe.addReporter("v1",function(e,t,n){"use strict";"function"==typeof t&&(n=t,t={});var r=u.processAggregate(e,t);r.violations.forEach(function(e){return e.nodes.forEach(function(e){e.failureSummary=u.failureSummary(e)})}),n(R({},u.getEnvironmentData(),{toolOptions:t,violations:r.violations,passes:r.passes,incomplete:r.incomplete,inapplicable:r.inapplicable}))}),axe.addReporter("v2",function(e,t,n){"use strict";"function"==typeof t&&(n=t,t={});var r=u.processAggregate(e,t);n(R({},u.getEnvironmentData(),{toolOptions:t,violations:r.violations,passes:r.passes,incomplete:r.incomplete,inapplicable:r.inapplicable}))},!0),axe.utils.aggregate=function(t,e,n){e=e.slice(),n&&e.push(n);var r=e.map(function(e){return t.indexOf(e)}).sort();return t[r.pop()]};var P=axe.constants,U=P.CANTTELL_PRIO,V=P.FAIL_PRIO,M=[];M[axe.constants.PASS_PRIO]=!0,M[axe.constants.CANTTELL_PRIO]=null,M[axe.constants.FAIL_PRIO]=!1;var axe,H=["any","all","none"];function G(n,r){return H.reduce(function(e,t){return e[t]=(n[t]||[]).map(function(e){return r(e,t)}),e},{})}function W(e,t,n){var r=Object.assign({},t);r.nodes=(r[n]||[]).concat(),axe.constants.resultGroups.forEach(function(e){delete r[e]}),e[n].push(r)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $(e,t){"use strict";var n;return axe._tree&&(n=axe.utils.getSelector(t)),new Error(e+": "+(n||t))}function X(e,t,n){this._fromFrame=!!n,this.spec=n||{},t&&t.absolutePaths&&(this._options={toRoot:!0}),this.source=void 0!==this.spec.source?this.spec.source:function(e){var t=e.outerHTML;return t||"function"!=typeof XMLSerializer||(t=(new XMLSerializer).serializeToString(e)),function(e,t){if(t=t||300,e.length>t){var n=e.indexOf(">");e=e.substring(0,n+1)}return e}(t||"")}(e),this._element=e}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,a=!1,o=void 0;try{for(var i,u=e[Symbol.iterator]();!(r=(i=u.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==u.return||u.return()}finally{if(a)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function J(e,t){return[e.substring(0,t),e.substring(t)]}function K(e){return e.replace(/\s+$/,"")}axe.utils.aggregateChecks=function(e){var n=Object.assign({},e);G(n,function(e,t){var n=void 0===e.result?-1:M.indexOf(e.result);e.priority=-1!==n?n:axe.constants.CANTTELL_PRIO,"none"===t&&(e.priority===axe.constants.PASS_PRIO?e.priority=axe.constants.FAIL_PRIO:e.priority===axe.constants.FAIL_PRIO&&(e.priority=axe.constants.PASS_PRIO))});var r={all:n.all.reduce(function(e,t){return Math.max(e,t.priority)},0),none:n.none.reduce(function(e,t){return Math.max(e,t.priority)},0),any:n.any.reduce(function(e,t){return Math.min(e,t.priority)},4)%4};n.priority=Math.max(r.all,r.none,r.any);var a=[];return H.forEach(function(t){n[t]=n[t].filter(function(e){return e.priority===n.priority&&e.priority===r[t]}),n[t].forEach(function(e){return a.push(e.impact)})}),[U,V].includes(n.priority)?n.impact=axe.utils.aggregate(axe.constants.impact,a):n.impact=null,G(n,function(e){delete e.result,delete e.priority}),n.result=axe.constants.results[n.priority],delete n.priority,n},axe.utils.aggregateNodeResults=function(e){var n={};if((e=e.map(function(e){if(e.any&&e.all&&e.none)return axe.utils.aggregateChecks(e);if(Array.isArray(e.node))return axe.utils.finalizeRuleResult(e);throw new TypeError("Invalid Result type")}))&&e.length){var t=e.map(function(e){return e.result});n.result=axe.utils.aggregate(axe.constants.results,t,n.result)}else n.result="inapplicable";axe.constants.resultGroups.forEach(function(e){return n[e]=[]}),e.forEach(function(e){var t=axe.constants.resultGroupMap[e.result];n[t].push(e)});var r=axe.constants.FAIL_GROUP;if(0===n[r].length&&(r=axe.constants.CANTTELL_GROUP),0<n[r].length){var a=n[r].map(function(e){return e.impact});n.impact=axe.utils.aggregate(axe.constants.impact,a)||null}else n.impact=null;return n},axe.utils.aggregateResult=function(e){var n={};return axe.constants.resultGroups.forEach(function(e){return n[e]=[]}),e.forEach(function(t){t.error?W(n,t,axe.constants.CANTTELL_GROUP):t.result===axe.constants.NA?W(n,t,axe.constants.NA_GROUP):axe.constants.resultGroups.forEach(function(e){Array.isArray(t[e])&&0<t[e].length&&W(n,t,e)})}),n},axe.utils.areStylesSet=function e(t,n,r){"use strict";var a=window.getComputedStyle(t,null),o=!1;return!!a&&(n.forEach(function(e){a.getPropertyValue(e.property)===e.value&&(o=!0)}),!!o||!(t.nodeName.toUpperCase()===r.toUpperCase()||!t.parentNode)&&e(t.parentNode,n,r))},axe.utils.checkHelper=function(t,n,r,a){"use strict";return{isAsync:!1,async:function(){return this.isAsync=!0,function(e){e instanceof Error==!1?(t.result=e,r(t)):a(e)}},data:function(e){t.data=e},relatedNodes:function(e){e=e instanceof Node?[e]:axe.utils.toArray(e),t.relatedNodes=e.map(function(e){return new axe.utils.DqElement(e,n)})}}},axe.utils.clone=function(e){"use strict";var t,n,r=e;if(null!==e&&"object"===S(e))if(Array.isArray(e))for(r=[],t=0,n=e.length;t<n;t++)r[t]=axe.utils.clone(e[t]);else for(t in r={},e)r[t]=axe.utils.clone(e[t]);return r},axe.utils.sendCommandToFrame=function(t,n,r,a){"use strict";var o=t.contentWindow;if(!o)return axe.log("Frame does not have a content window",t),void r(null);var i=setTimeout(function(){i=setTimeout(function(){n.debug?a($("No response from frame",t)):r(null)},0)},500);axe.utils.respondable(o,"axe.ping",null,void 0,function(){clearTimeout(i);var e=n.options&&n.options.frameWaitTime||6e4;i=setTimeout(function(){a($("Axe in frame timed out",t))},e),axe.utils.respondable(o,"axe.start",n,void 0,function(e){clearTimeout(i),e instanceof Error==!1?r(e):a(e)})})},axe.utils.collectResultsFromFrames=function(e,t,n,o,r,a){"use strict";var i=axe.utils.queue();e.frames.forEach(function(r){var a={options:t,command:n,parameter:o,context:{initiator:!1,page:e.page,include:r.include||[],exclude:r.exclude||[]}};i.defer(function(t,e){var n=r.node;axe.utils.sendCommandToFrame(n,a,function(e){if(e)return t({results:e,frameElement:n,frame:axe.utils.getSelector(n)});t(null)},e)})}),i.then(function(e){r(axe.utils.mergeResults(e,t))}).catch(a)},axe.utils.contains=function(e,t){"use strict";if(e.shadowId||t.shadowId)return function t(e,n){return e.shadowId===n.shadowId||!!e.children.find(function(e){return t(e,n)})}(e,t);if(e.actualNode)return"function"==typeof e.actualNode.contains?e.actualNode.contains(t.actualNode):!!(16&e.actualNode.compareDocumentPosition(t.actualNode));do{if(t===e)return!0}while(t=t&&t.parent);return!1},function(axe){var e=new axe.imports.CssSelectorParser;e.registerSelectorPseudos("not"),e.registerNestingOperators(">"),e.registerAttrEqualityMods("^","$","*"),axe.utils.cssParser=e}(axe),X.prototype={get selector(){return this.spec.selector||[axe.utils.getSelector(this.element,this._options)]},get xpath(){return this.spec.xpath||[axe.utils.getXpath(this.element)]},get element(){return this._element},get fromFrame(){return this._fromFrame},toJSON:function(){"use strict";return{selector:this.selector,source:this.source,xpath:this.xpath}}},X.fromFrame=function(e,t,n){return e.selector.unshift(n.selector),e.xpath.unshift(n.xpath),new axe.utils.DqElement(n.element,t,e)},axe.utils.DqElement=X,axe.utils.matchesSelector=function(){"use strict";var n;return function(e,t){return n&&e[n]||(n=function(e){var t,n,r=["matches","matchesSelector","mozMatchesSelector","webkitMatchesSelector","msMatchesSelector"],a=r.length;for(t=0;t<a;t++)if(e[n=r[t]])return n}(e)),!!e[n]&&e[n](t)}}(),axe.utils.escapeSelector=function(e){"use strict";for(var t,n=String(e),r=n.length,a=-1,o="",i=n.charCodeAt(0);++a<r;)0!=(t=n.charCodeAt(a))?o+=1<=t&&t<=31||127==t||0==a&&48<=t&&t<=57||1==a&&48<=t&&t<=57&&45==i?"\\"+t.toString(16)+" ":(0!=a||1!=r||45!=t)&&(128<=t||45==t||95==t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122)?n.charAt(a):"\\"+n.charAt(a):o+="�";return o},axe.utils.extendMetaData=function(t,n){Object.assign(t,n),Object.keys(n).filter(function(e){return"function"==typeof n[e]}).forEach(function(e){t[e]=null;try{t[e]=n[e](t)}catch(e){}})},axe.utils.finalizeRuleResult=function(e){return Object.assign(e,axe.utils.aggregateNodeResults(e.nodes)),delete e.nodes,e},axe.utils.findBy=function(e,t,n){if(Array.isArray(e))return e.find(function(e){return"object"===S(e)&&e[t]===n})},(axe=axe||{utils:{}}).utils.getFlattenedTree=function(e,t){return axe._cache.set("nodeMap",new WeakMap),function a(e,o,n){var r,t,i;function u(e,t,n){var r=a(t,o,n);return r&&(e=e.concat(r)),e}if(e.documentElement&&(e=e.documentElement),i=e.nodeName.toLowerCase(),axe.utils.isShadowRoot(e))return r=new A(e,n,o),o="a"+Math.random().toString().substring(2),t=Array.from(e.shadowRoot.childNodes),r.children=t.reduce(function(e,t){return u(e,t,r)},[]),[r];if("content"===i&&"function"==typeof e.getDistributedNodes)return(t=Array.from(e.getDistributedNodes())).reduce(function(e,t){return u(e,t,n)},[]);if("slot"!==i||"function"!=typeof e.assignedNodes)return 1===e.nodeType?(r=new A(e,n,o),t=Array.from(e.childNodes),r.children=t.reduce(function(e,t){return u(e,t,r)},[]),[r]):3===e.nodeType?[new A(e,n)]:void 0;(t=Array.from(e.assignedNodes())).length||(t=function(e){var t=[];for(e=e.firstChild;e;)t.push(e),e=e.nextSibling;return t}(e));window.getComputedStyle(e);return t.reduce(function(e,t){return u(e,t,n)},[])}(e,t)},axe.utils.getNodeFromTree=function(e,t){var n=t||e;return axe._cache.get("nodeMap")?axe._cache.get("nodeMap").get(n):null},axe.utils.getAllChecks=function(e){"use strict";return[].concat(e.any||[]).concat(e.all||[]).concat(e.none||[])},axe.utils.getBaseLang=function(e){return e?e.trim().split("-")[0].toLowerCase():""},axe.utils.getCheckOption=function(e,t,n){var r=((n.rules&&n.rules[t]||{}).checks||{})[e.id],a=(n.checks||{})[e.id],o=e.enabled,i=e.options;return a&&(a.hasOwnProperty("enabled")&&(o=a.enabled),a.hasOwnProperty("options")&&(i=a.options)),r&&(r.hasOwnProperty("enabled")&&(o=r.enabled),r.hasOwnProperty("options")&&(i=r.options)),{enabled:o,options:i,absolutePaths:n.absolutePaths}},axe.utils.getFriendlyUriEnd=function(e,t){var n=0<arguments.length&&void 0!==e?e:"",r=1<arguments.length&&void 0!==t?t:{};if(!(n.length<=1||"data:"===n.substr(0,5)||"javascript:"===n.substr(0,11)||n.includes("?"))){var a=r.currentDomain,o=r.maxLength,i=void 0===o?25:o,u=function(e){var t=e,n="",r="",a="",o="",i="";if(e.includes("#")){var u=Y(J(e,e.indexOf("#")),2);e=u[0],i=u[1]}if(e.includes("?")){var s=Y(J(e,e.indexOf("?")),2);e=s[0],o=s[1]}if(e.includes("://")){var l=Y(e.split("://"),2);n=l[0];var c=Y(J(e=l[1],e.indexOf("/")),2);r=c[0],e=c[1]}else if("//"===e.substr(0,2)){var d=Y(J(e=e.substr(2),e.indexOf("/")),2);r=d[0],e=d[1]}if("www."===r.substr(0,4)&&(r=r.substr(4)),r&&r.includes(":")){var m=Y(J(r,r.indexOf(":")),2);r=m[0],a=m[1]}return{original:t,protocol:n,domain:r,port:a,path:e,query:o,hash:i}}(n),s=u.path,l=u.domain,c=u.hash,d=s.substr(s.substr(0,s.length-2).lastIndexOf("/")+1);if(c)return d&&(d+c).length<=i?K(d+c):d.length<2&&2<c.length&&c.length<=i?K(c):void 0;if(l&&l.length<i&&s.length<=1)return K(l+s);if(s==="/"+d&&l&&a&&l!==a&&(l+s).length<=i)return K(l+s);var m=d.lastIndexOf(".");return(-1===m||1<m)&&(-1!==m||2<d.length)&&d.length<=i&&!d.match(/index(\.[a-zA-Z]{2-4})?/)&&!function(e){var t=0<arguments.length&&void 0!==e?e:"";return 0!==t.length&&(t.match(/[0-9]/g)||"").length>=t.length/2}(d)?K(d):void 0}},axe.utils.getNodeAttributes=function(e){return e.attributes instanceof window.NamedNodeMap?e.attributes:e.cloneNode(!1).attributes},axe.utils.getRootNode=function(e){var t=e.getRootNode&&e.getRootNode()||document;return t===e&&(t=document),t},axe.utils.getScroll=function(e,t){var n=1<arguments.length&&void 0!==t?t:0,r=e.scrollWidth>e.clientWidth+n,a=e.scrollHeight>e.clientHeight+n;if(r||a){var o=window.getComputedStyle(e),i=o.getPropertyValue("overflow-x"),u=o.getPropertyValue("overflow-y");return r&&("visible"!==i&&"hidden"!==i)||a&&("visible"!==u&&"hidden"!==u)?{elm:e,top:e.scrollTop,left:e.scrollLeft}:void 0}};var Z,Q,ee=axe.utils.escapeSelector,te=["class","style","id","selected","checked","disabled","tabindex","aria-checked","aria-selected","aria-invalid","aria-activedescendant","aria-busy","aria-disabled","aria-expanded","aria-grabbed","aria-pressed","aria-valuenow"],ne=31;function re(e,t){var n,r=t.name;if(-1!==r.indexOf("href")||-1!==r.indexOf("src")){var a=axe.utils.getFriendlyUriEnd(e.getAttribute(r));if(a){var o=encodeURI(a);if(!o)return;n=ee(t.name)+'$="'+ee(o)+'"'}else n=ee(t.name)+'="'+ee(e.getAttribute(r))+'"'}else n=ee(r)+'="'+ee(t.value)+'"';return n}function ae(e,t){return e.count<t.count?-1:e.count===t.count?0:1}function oe(e){return!te.includes(e.name)&&-1===e.name.indexOf(":")&&(!e.value||e.value.length<ne)}function ie(t,n){var e=t.parentNode&&Array.from(t.parentNode.children||"")||[];return e.find(function(e){return e!==t&&axe.utils.matchesSelector(e,n)})?":nth-child("+(1+e.indexOf(t))+")":""}function ue(e){if(e.getAttribute("id")){var t=e.getRootNode&&e.getRootNode()||document,n="#"+ee(e.getAttribute("id")||"");return n.match(/player_uid_/)||1!==t.querySelectorAll(n).length?void 0:n}}function se(e){return void 0===Z&&(Z=axe.utils.isXHTML(document)),ee(Z?e.localName:e.nodeName.toLowerCase())}function le(e,t){var n,r="",a=function(n,e){var r=[],a=e.classes,o=e.tags;return n.classList&&Array.from(n.classList).forEach(function(e){var t=ee(e);a[t]<o[n.nodeName]&&r.push({name:t,count:a[t],species:"class"})}),r.sort(ae)}(e,t),o=function(n,e){var r=[],a=e.attributes,o=e.tags;return n.hasAttributes()&&Array.from(axe.utils.getNodeAttributes(n)).filter(oe).forEach(function(e){var t=re(n,e);t&&a[t]<o[n.nodeName]&&r.push({name:t,count:a[t],species:"attribute"})}),r.sort(ae)}(e,t);return a.length&&1===a[0].count?n=[a[0]]:o.length&&1===o[0].count?(n=[o[0]],r=se(e)):((n=a.concat(o)).sort(ae),(n=n.slice(0,3)).some(function(e){return"class"===e.species})?n.sort(function(e,t){return e.species!==t.species&&"class"===e.species?-1:e.species===t.species?0:1}):r=se(e)),r+n.reduce(function(e,t){switch(t.species){case"class":return e+"."+t.name;case"attribute":return e+"["+t.name+"]"}return e},"")}function ce(e,t,n){if(!axe._selectorData)throw new Error("Expect axe._selectorData to be set up");var r,a,o=t.toRoot,i=void 0!==o&&o;do{var u=ue(e);u||(u=le(e,axe._selectorData),u+=ie(e,u)),r=r?u+" > "+r:u,a=a?a.filter(function(e){return axe.utils.matchesSelector(e,r)}):Array.from(n.querySelectorAll(r)),e=e.parentElement}while((1<a.length||i)&&e&&11!==e.nodeType);return 1===a.length?r:-1!==r.indexOf(" > ")?":root"+r.substring(r.indexOf(" > ")):":root"}axe.utils.getSelectorData=function(e){function t(){var e=a.pop(),n=e.actualNode;if(n.querySelectorAll){var t=n.nodeName;r.tags[t]?r.tags[t]++:r.tags[t]=1,n.classList&&Array.from(n.classList).forEach(function(e){var t=ee(e);r.classes[t]?r.classes[t]++:r.classes[t]=1}),n.hasAttributes()&&Array.from(axe.utils.getNodeAttributes(n)).filter(oe).forEach(function(e){var t=re(n,e);t&&(r.attributes[t]?r.attributes[t]++:r.attributes[t]=1)})}for(e.children.length&&(o.push(a),a=e.children.slice());!a.length&&o.length;)a=o.pop()}for(var r={classes:{},tags:{},attributes:{}},a=(e=Array.isArray(e)?e:[e]).slice(),o=[];a.length;)t();return r},axe.utils.getSelector=function(e,t){var n=1<arguments.length&&void 0!==t?t:{};if(!e)return"";var r=e.getRootNode&&e.getRootNode()||document;if(11!==r.nodeType)return ce(e,n,r);for(var a=[];11===r.nodeType;)a.push({elm:e,doc:r}),r=(e=r.host).getRootNode();return a.push({elm:e,doc:r}),a.reverse().map(function(e){return ce(e.elm,n,e.doc)})},axe.utils.getStyleSheetFactory=function(d){if(!d)throw new Error("axe.utils.getStyleSheetFactory should be invoked with an argument");return function(e){var t=e.data,n=e.isCrossOrigin,r=void 0!==n&&n,a=e.shadowId,o=e.root,i=e.priority,u=e.isLink,s=void 0!==u&&u,l=d.createElement("style");if(s){var c=d.createTextNode('@import "'.concat(t.href,'"'));l.appendChild(c)}else l.appendChild(d.createTextNode(t));return d.head.appendChild(l),{sheet:l.sheet,isCrossOrigin:r,shadowId:a,root:o,priority:i}}},axe.utils.getXpath=function(e){return function(e){return e.reduce(function(e,t){return t.id?"/".concat(t.str,"[@id='").concat(t.id,"']"):e+"/".concat(t.str)+(0<t.count?"[".concat(t.count,"]"):"")},"")}(function e(t,n){var r,a;if(!t)return[];if(!n&&9===t.nodeType)return n=[{str:"html"}];if(n=n||[],t.parentNode&&t.parentNode!==t&&(n=e(t.parentNode,n)),t.previousSibling){for(a=1,r=t.previousSibling;1===r.nodeType&&r.nodeName===t.nodeName&&a++,r=r.previousSibling;);1===a&&(a=null)}else if(t.nextSibling)for(r=t.nextSibling;r=1===r.nodeType&&r.nodeName===t.nodeName?(a=1,null):(a=null,r.previousSibling););if(1===t.nodeType){var o={};o.str=t.nodeName.toLowerCase();var i=t.getAttribute&&axe.utils.escapeSelector(t.getAttribute("id"));i&&1===t.ownerDocument.querySelectorAll("#"+i).length&&(o.id=t.getAttribute("id")),1<a&&(o.count=a),n.push(o)}return n}(e))},axe.utils.injectStyle=function(e){"use strict";if(Q&&Q.parentNode)return void 0===Q.styleSheet?Q.appendChild(document.createTextNode(e)):Q.styleSheet.cssText+=e,Q;if(e){var t=document.head||document.getElementsByTagName("head")[0];return(Q=document.createElement("style")).type="text/css",void 0===Q.styleSheet?Q.appendChild(document.createTextNode(e)):Q.styleSheet.cssText=e,t.appendChild(Q),Q}},axe.utils.isHidden=function(e,t){"use strict";var n=axe.utils.getNodeFromTree(e);if(9===e.nodeType)return!1;if(11===e.nodeType&&(e=e.host),n&&null!==n._isHidden)return n._isHidden;var r=window.getComputedStyle(e,null);if(!r||!e.parentNode||"none"===r.getPropertyValue("display")||!t&&"hidden"===r.getPropertyValue("visibility")||"true"===e.getAttribute("aria-hidden"))return!0;var a=e.assignedSlot?e.assignedSlot:e.parentNode,o=axe.utils.isHidden(a,!0);return n&&(n._isHidden=o),o};var de=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];axe.utils.isHtmlElement=function(e){var t=e.nodeName.toLowerCase();return de.includes(t)&&"http://www.w3.org/2000/svg"!==e.namespaceURI};var me,pe,fe=["article","aside","blockquote","body","div","footer","h1","h2","h3","h4","h5","h6","header","main","nav","p","section","span"];function he(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function be(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function ge(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function ye(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function ve(e){return"function"==typeof e||"[object Function]"===me.call(e)}function De(e){var t=function(e){var t=Number(e);return isNaN(t)?0:0!==t&&isFinite(t)?(0<t?1:-1)*Math.floor(Math.abs(t)):t}(e);return Math.min(Math.max(t,0),pe)}function we(e){var t=e.nodeName.toUpperCase(),n=e.getAttribute("href"),r=e.getAttribute("rel"),a="LINK"===t&&n&&r&&e.rel.toUpperCase().includes("STYLESHEET");return"STYLE"===t||a&&ke(e.media)}function ke(e){return!e||!e.toUpperCase().includes("PRINT")}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function xe(a,o){"use strict";return function(e){var t=a[e.id]||{},n=t.messages||{},r=Object.assign({},t);delete r.messages,void 0===e.result?"object"===S(n.incomplete)?r.message=function(){return function(t,n){function r(e){return e.incomplete&&e.incomplete.default?e.incomplete.default:u.incompleteFallbackMessage()}if(!t||!t.missingData)return r(n);try{var e=n.incomplete[t.missingData[0].reason];if(!e)throw new Error;return e}catch(e){return"string"==typeof t.missingData?n.incomplete[t.missingData]:r(n)}}(e.data,n)}:r.message=n.incomplete:r.message=e.result===o?n.pass:n.fail,axe.utils.extendMetaData(e,r)}}axe.utils.isShadowRoot=function(e){var t=e.nodeName.toLowerCase();return!(!e.shadowRoot||!/^[a-z][a-z0-9_.-]*-[a-z0-9_.-]*$/.test(t)&&!fe.includes(t))},axe.utils.isXHTML=function(e){"use strict";return!!e.createElement&&"A"===e.createElement("A").localName},axe.utils.mergeResults=function(e,r){"use strict";var a=[];return e.forEach(function(n){var e=function(e){"use strict";return e&&e.results?Array.isArray(e.results)?e.results.length?e.results:null:[e.results]:null}(n);e&&e.length&&e.forEach(function(e){e.nodes&&n.frame&&function(e,n,t,r){"use strict";var a={element:t,selector:r,xpath:axe.utils.getXpath(t)};e.forEach(function(e){e.node=axe.utils.DqElement.fromFrame(e.node,n,a);var t=axe.utils.getAllChecks(e);t.length&&t.forEach(function(e){e.relatedNodes=e.relatedNodes.map(function(e){return axe.utils.DqElement.fromFrame(e,n,a)})})})}(e.nodes,r,n.frameElement,n.frame);var t=axe.utils.findBy(a,"id",e.id);t?e.nodes.length&&function(e,t){"use strict";for(var n,r,a=t[0].node,o=0,i=e.length;o<i;o++)if(r=e[o].node,0<(n=axe.utils.nodeSorter({actualNode:r.element},{actualNode:a.element}))||0===n&&a.selector.length<r.selector.length)return e.splice.apply(e,[o,0].concat(t));e.push.apply(e,t)}(t.nodes,e.nodes):a.push(e)})}),a},axe.utils.nodeSorter=function(e,t){return(e=e.actualNode||e)===(t=t.actualNode||t)?0:4&e.compareDocumentPosition(t)?-1:1},axe.utils.parseCrossOriginStylesheet=function(e,r,a,o,i){var t={method:"get",url:e};return o.push(e),axe.imports.axios(t).then(function(e){var t=e.data,n=r.convertDataToStylesheet({data:t,isCrossOrigin:i,priority:a,root:r.rootNode,shadowId:r.shadowId});return axe.utils.parseStylesheet(n.sheet,r,a,o,n.isCrossOrigin)})},axe.utils.parseSameOriginStylesheet=function(e,a,o,i,t){var n=4<arguments.length&&void 0!==t&&t,r=Array.from(e.cssRules);if(!r)return Promise.resolve();var u=r.filter(function(e){return 3===e.type});if(!u.length)return Promise.resolve({isCrossOrigin:n,priority:o,root:a.rootNode,shadowId:a.shadowId,sheet:e});var s=u.filter(function(e){return e.href}).map(function(e){return e.href}).filter(function(e){return!i.includes(e)}).map(function(e,t){var n=[].concat(he(o),[t]),r=/^https?:\/\/|^\/\//i.test(e);return axe.utils.parseCrossOriginStylesheet(e,a,n,i,r)}),l=r.filter(function(e){return 3!==e.type});return l.length&&s.push(Promise.resolve(a.convertDataToStylesheet({data:l.map(function(e){return e.cssText}).join(),isCrossOrigin:n,priority:o,root:a.rootNode,shadowId:a.shadowId}))),Promise.all(s)},axe.utils.parseStylesheet=function(e,t,n,r,a){var o=4<arguments.length&&void 0!==a&&a;return function(e){try{return!(!e.cssRules&&e.href)}catch(e){return!1}}(e)?axe.utils.parseSameOriginStylesheet(e,t,n,r,o):axe.utils.parseCrossOriginStylesheet(e.href,t,n,r,!0)},utils.performanceTimer=function(){"use strict";function e(){if(window.performance&&window.performance)return window.performance.now()}var t=null,n=e();return{start:function(){this.mark("mark_axe_start")},end:function(){this.mark("mark_axe_end"),this.measure("axe","mark_axe_start","mark_axe_end"),this.logMeasures("axe")},auditStart:function(){this.mark("mark_audit_start")},auditEnd:function(){this.mark("mark_audit_end"),this.measure("audit_start_to_end","mark_audit_start","mark_audit_end"),this.logMeasures()},mark:function(e){window.performance&&void 0!==window.performance.mark&&window.performance.mark(e)},measure:function(e,t,n){window.performance&&void 0!==window.performance.measure&&window.performance.measure(e,t,n)},logMeasures:function(e){function t(e){axe.log("Measure "+e.name+" took "+e.duration+"ms")}if(window.performance&&void 0!==window.performance.getEntriesByType)for(var n=window.performance.getEntriesByName("mark_axe_start")[0],r=window.performance.getEntriesByType("measure").filter(function(e){return e.startTime>=n.startTime}),a=0;a<r.length;++a){var o=r[a];if(o.name===e)return void t(o);t(o)}},timeElapsed:function(){return e()-n},reset:function(){t=t||e(),n=e()}}}(),"function"!=typeof Object.assign&&(Object.assign=function(e){"use strict";if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n<arguments.length;n++){var r=arguments[n];if(null!=r)for(var a in r)r.hasOwnProperty(a)&&(t[a]=r[a])}return t}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(e){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var t,n=Object(this),r=n.length>>>0,a=arguments[1],o=0;o<r;o++)if(t=n[o],e.call(a,t,o,n))return t}}),axe.utils.pollyfillElementsFromPoint=function(){if(document.elementsFromPoint)return document.elementsFromPoint;if(document.msElementsFromPoint)return document.msElementsFromPoint;var e,t=((e=document.createElement("x")).style.cssText="pointer-events:auto","auto"===e.style.pointerEvents),u=t?"pointer-events":"visibility",s=t?"none":"hidden",l=document.createElement("style");return l.innerHTML=t?"* { pointer-events: all }":"* { visibility: visible }",function(e,t){var n,r,a,o=[],i=[];for(document.head.appendChild(l);(n=document.elementFromPoint(e,t))&&-1===o.indexOf(n);)o.push(n),i.push({value:n.style.getPropertyValue(u),priority:n.style.getPropertyPriority(u)}),n.style.setProperty(u,s,"important");for(o.indexOf(document.documentElement)<o.length-1&&(o.splice(o.indexOf(document.documentElement),1),o.push(document.documentElement)),r=i.length;a=i[--r];)o[r].style.setProperty(u,a.value?a.value:"",a.priority);return document.head.removeChild(l),o}},"function"==typeof window.addEventListener&&(document.elementsFromPoint=axe.utils.pollyfillElementsFromPoint()),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(e,t){"use strict";var n=Object(this),r=parseInt(n.length,10)||0;if(0===r)return!1;var a,o,i=parseInt(t,10)||0;for(0<=i?a=i:(a=r+i)<0&&(a=0);a<r;){if(e===(o=n[a])||e!=e&&o!=o)return!0;a++}return!1}}),Array.prototype.some||Object.defineProperty(Array.prototype,"some",{value:function(e,t){"use strict";if(null==this)throw new TypeError("Array.prototype.some called on null or undefined");if("function"!=typeof e)throw new TypeError;for(var n=Object(this),r=n.length>>>0,a=2<=arguments.length?t:void 0,o=0;o<r;o++)if(o in n&&e.call(a,n[o],o,n))return!0;return!1}}),Array.from||Object.defineProperty(Array,"from",{value:(me=Object.prototype.toString,pe=Math.pow(2,53)-1,function(e,t,n){var r=Object(e);if(null==e)throw new TypeError("Array.from requires an array-like object - not null or undefined");var a,o=1<arguments.length?t:void 0;if(void 0!==o){if(!ve(o))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(a=n)}for(var i,u=De(r.length),s=ve(this)?Object(new this(u)):new Array(u),l=0;l<u;)i=r[l],s[l]=o?void 0===a?o(i,l):o.call(a,i,l):i,l+=1;return s.length=u,s})}),String.prototype.includes||(String.prototype.includes=function(e,t){return"number"!=typeof t&&(t=0),!(t+e.length>this.length)&&-1!==this.indexOf(e,t)}),axe.utils.preloadCssom=function(e){var t=e.treeRoot,n=function(e){var t=[],n=axe.utils.querySelectorAllFilter(e,"*",function(e){return!t.includes(e.shadowId)&&(t.push(e.shadowId),!0)}).map(function(e){return{shadowId:e.shadowId,rootNode:axe.utils.getRootNode(e.actualNode)}});return axe.utils.uniqueArray(n,[])}(void 0===t?axe._tree[0]:t);if(!n.length)return Promise.resolve();var r=document.implementation.createHTMLDocument("Dynamic document for loading cssom");return function(e,l){var c=[];return e.forEach(function(e,t){var n=e.rootNode,r=e.shadowId,a=function(e,t,n){var r;r=11===e.nodeType&&t?function(o,i){return Array.from(o.children).filter(we).reduce(function(e,t){var n=t.nodeName.toUpperCase(),r="STYLE"===n?t.textContent:t,a=i({data:r,isLink:"LINK"===n,root:o});return e.push(a.sheet),e},[])}(e,n):function(e){return Array.from(e.styleSheets).filter(function(e){return ke(e.media.mediaText)})}(e);return function(e){var t=[];return e.filter(function(e){return!e.href||!t.includes(e.href)&&(t.push(e.href),!0)})}(r)}(n,r,l);if(!a)return Promise.all(c);var o=t+1,i={rootNode:n,shadowId:r,convertDataToStylesheet:l,rootIndex:o},u=[],s=Promise.all(a.map(function(e,t){var n=[o,t];return axe.utils.parseStylesheet(e,i,n,u)}));c.push(s)}),Promise.all(c)}(n,axe.utils.getStyleSheetFactory(r)).then(function(e){return function n(e){return e.reduce(function(e,t){return Array.isArray(t)?e.concat(n(t)):e.concat(t)},[])}(e)})},axe.utils.shouldPreload=function(e){return!e||void 0===e.preload||null===e.preload||("boolean"==typeof e.preload?e.preload:function(e){return"object"===S(e)&&Array.isArray(e.assets)}(e.preload))},axe.utils.getPreloadConfig=function(e){var t=axe.constants.preload,n=t.assets,r=t.timeout,a={assets:n,timeout:r};if(!e.preload)return a;if("boolean"==typeof e.preload)return a;if(!e.preload.assets.every(function(e){return n.includes(e.toLowerCase())}))throw new Error("Requested assets, not supported. "+"Supported assets are: ".concat(n.join(", "),"."));return a.assets=axe.utils.uniqueArray(e.preload.assets.map(function(e){return e.toLowerCase()}),[]),e.preload.timeout&&"number"==typeof e.preload.timeout&&!Number.isNaN(e.preload.timeout)&&(a.timeout=e.preload.timeout),a},axe.utils.preload=function(o){var i={cssom:axe.utils.preloadCssom};return axe.utils.shouldPreload(o)?new Promise(function(n,e){var t=axe.utils.getPreloadConfig(o),r=t.assets,a=t.timeout;setTimeout(function(){return e("Preload assets timed out.")},a),Promise.all(r.map(function(t){return i[t](o).then(function(e){return function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},t,e)})})).then(function(e){var t=e.reduce(function(e,t){return R({},e,{},t)},{});n(t)})}):Promise.resolve()},axe.utils.publishMetaData=function(e){"use strict";var t=axe._audit.data.checks||{},n=axe._audit.data.rules||{},r=axe.utils.findBy(axe._audit.rules,"id",e.id)||{};e.tags=axe.utils.clone(r.tags||[]);var a=xe(t,!0),o=xe(t,!1);e.nodes.forEach(function(e){e.any.forEach(a),e.all.forEach(a),e.none.forEach(o)}),axe.utils.extendMetaData(e,axe.utils.clone(n[e.id]||{}))};var Ee=function(){},Ce=function(){};var Ae,Fe,je=(Ae=/(?=[\-\[\]{}()*+?.\\\^$|,#\s])/g,function(e){return e.replace(Ae,"\\")}),ze=/\\/g;function qe(e){if(e)return e.map(function(e){var t,n,r=e.name.replace(ze,""),a=(e.value||"").replace(ze,"");switch(e.operator){case"^=":n=new RegExp("^"+je(a));break;case"$=":n=new RegExp(je(a)+"$");break;case"~=":n=new RegExp("(^|\\s)"+je(a)+"(\\s|$)");break;case"|=":n=new RegExp("^"+je(a)+"(-|$)");break;case"=":t=function(e){return a===e};break;case"*=":t=function(e){return e&&e.includes(a)};break;case"!=":t=function(e){return a!==e};break;default:t=function(e){return!!e}}return""===a&&/^[*$^]=$/.test(e.operator)&&(t=function(){return!1}),{key:r,value:a,test:t=t||function(e){return e&&n.test(e)}}})}function Ne(e){if(e)return e.map(function(e){return{value:e=e.replace(ze,""),regexp:new RegExp("(^|\\s)"+je(e)+"(\\s|$)")}})}function Te(e){if(e)return e.map(function(e){var t;return"not"===e.name&&(t=(t=e.value).selectors?t.selectors:[t],t=Ee(t)),{name:e.name,expressions:t,value:e.value}})}function Se(e,t,n,r){var a={vNodes:e.slice(),anyLevel:t,thisLevel:n,parentShadowId:r};return a.vNodes.reverse(),a}function Re(e,t){return function(e,t){return 1===e.props.nodeType&&("*"===t.tag||e.props.nodeName===t.tag)}(e,t[0])&&function(t,e){return!e.classes||e.classes.every(function(e){return t.hasClass(e.value)})}(e,t[0])&&function(r,e){return!e.attributes||e.attributes.reduce(function(e,t){var n=r.attr(t.key);return e&&null!==n&&(!t.value||t.test(n))},!0)}(e,t[0])&&function(e,t){return!t.id||e.props.id===t.id}(e,t[0])&&function(n,e){return!(e.pseudos&&!e.pseudos.reduce(function(e,t){if("not"===t.name)return e&&!Ce([n],t.expressions,!1).length;throw new Error("the pseudo selector "+t.name+" has not yet been implemented")},!0))}(e,t[0])}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Oe(t,e){"use strict";var n,r,a=axe._audit&&axe._audit.tagExclude?axe._audit.tagExclude:[];return r=e.hasOwnProperty("include")||e.hasOwnProperty("exclude")?(n=e.include||[],n=Array.isArray(n)?n:[n],r=e.exclude||[],(r=Array.isArray(r)?r:[r]).concat(a.filter(function(e){return-1===n.indexOf(e)}))):(n=Array.isArray(e)?e:[e],a.filter(function(e){return-1===n.indexOf(e)})),!!(n.some(function(e){return-1!==t.tags.indexOf(e)})||0===n.length&&!1!==t.enabled)&&r.every(function(e){return-1===t.tags.indexOf(e)})}function _e(e){"use strict";return e.sort(function(e,t){return axe.utils.contains(e,t)?1:-1})[0]}function Be(t,e){"use strict";var n=e.include&&_e(e.include.filter(function(e){return axe.utils.contains(e,t)})),r=e.exclude&&_e(e.exclude.filter(function(e){return axe.utils.contains(e,t)}));return!!(!r&&n||r&&axe.utils.contains(r,n))}function Le(e,t){"use strict";var n;if(0===e.length)return t;e.length<t.length&&(n=e,e=t,t=n);for(var r=0,a=t.length;r<a;r++)e.includes(t[r])||e.push(t[r]);return e}Ee=function(e){return e.map(function(e){for(var t=[],n=e.rule;n;)t.push({tag:n.tagName?n.tagName.toLowerCase():"*",combinator:n.nestingOperator?n.nestingOperator:" ",id:n.id,attributes:qe(n.attrs),classes:Ne(n.classNames),pseudos:Te(n.pseudos)}),n=n.rule;return t})},Ce=function(e,t,n,r){for(var a=[],o=Se(Array.isArray(e)?e:[e],t,[],e[0].shadowId),i=[];o.vNodes.length;){for(var u=o.vNodes.pop(),s=[],l=[],c=o.anyLevel.slice().concat(o.thisLevel),d=!1,m=0;m<c.length;m++){var p=c[m];if(Re(u,p)&&(!p[0].id||u.shadowId===o.parentShadowId))if(1===p.length)d||r&&!r(u)||(i.push(u),d=!0);else{var f=p.slice(1);if(!1===[" ",">"].includes(f[0].combinator))throw new Error("axe.utils.querySelectorAll does not support the combinator: "+p[1].combinator);">"===f[0].combinator?s.push(f):l.push(f)}!o.anyLevel.includes(p)||p[0].id&&u.shadowId!==o.parentShadowId||l.push(p)}for(u.children&&u.children.length&&n&&(a.push(o),o=Se(u.children,l,s,u.shadowId));!o.vNodes.length&&a.length;)o=a.pop()}return i},axe.utils.querySelectorAll=function(e,t){return axe.utils.querySelectorAllFilter(e,t)},axe.utils.querySelectorAllFilter=function(e,t,n){e=Array.isArray(e)?e:[e];var r=axe.utils.cssParser.parse(t);return r=r.selectors?r.selectors:[r],r=Ee(r),Ce(e,r,!0,n)},function(){"use strict";function m(){}function p(e){if("function"!=typeof e)throw new TypeError("Queue methods require functions as arguments")}axe.utils.queue=function(){function t(e){r=e,setTimeout(function(){null!=r&&axe.log("Uncaught error (of queue)",r)},1)}var r,a=[],o=0,i=0,n=m,u=!1,s=t;function l(t){return function(e){a[t]=e,(i-=1)||n===m||(u=!0,n(a))}}function c(e){return n=m,s(e),a}var d={defer:function(e){if("object"===S(e)&&e.then&&e.catch){var n=e;e=function(e,t){n.then(e).catch(t)}}if(p(e),void 0===r){if(u)throw new Error("Queue already completed");return a.push(e),++i,function(){for(var e=a.length;o<e;o++){var t=a[o];try{t.call(null,l(o),c)}catch(e){c(e)}}}(),d}},then:function(e){if(p(e),n!==m)throw new Error("queue `then` already set");return r||(n=e,i||(u=!0,n(a))),d},catch:function(e){if(p(e),s!==t)throw new Error("queue `catch` already set");return r?(e(r),r=null):s=e,d},abort:c};return d}}(),function(e){"use strict";var s={},i={},a=Object.freeze(["EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]);function l(){var e="axeAPI",t="";return void 0!==axe&&axe._audit&&axe._audit.application&&(e=axe._audit.application),void 0!==axe&&(t=axe.version),e+"."+t}function u(e,t,n,r,a,o){var i;n instanceof Error&&(i={name:n.name,message:n.message,stack:n.stack},n=void 0);var u={uuid:r,topic:t,message:n,error:i,_respondable:!0,_source:l(),_keepalive:a};"function"==typeof o&&(s[r]=o),e.postMessage(JSON.stringify(u),"*")}function t(e,t,n,r,a){u(e,t,n,Fe.v1(),r,a)}function c(r,a,o){return function(e,t,n){u(r,a,e,o,t,n)}}function o(e){var t;if("string"==typeof e){try{t=JSON.parse(e)}catch(e){}if(function(e){if("object"!==S(e)||"string"!=typeof e.uuid||!0!==e._respondable)return!1;var t=l();return e._source===t||"axeAPI.x.y.z"===e._source||"axeAPI.x.y.z"===t}(t))return"object"===S(t.error)?t.error=function(e){var t=e.message||"Unknown error occurred",n=a.includes(e.name)?e.name:"Error",r=window[n]||Error;return e.stack&&(t+="\n"+e.stack.replace(e.message,"")),new r(t)}(t.error):t.error=void 0,t}}t.subscribe=function(e,t){i[e]=t},t.isInFrame=function(e){return!!(e=e||window).frameElement},"function"==typeof window.addEventListener&&window.addEventListener("message",function(t){var n=o(t.data);if(n){var r=n.uuid,e=n._keepalive,a=s[r];if(a)a(n.error||n.message,e,c(t.source,n.topic,r)),e||delete s[r];if(!n.error)try{!function(e,t,n){var r=t.topic,a=i[r];if(a){var o=c(e,null,t.uuid);a(t.message,n,o)}}(t.source,n,e)}catch(e){u(t.source,n.topic,e,r,!1)}}},!1),e.respondable=t}(utils),axe.utils.ruleShouldRun=function(e,t,n){"use strict";var r=n.runOnly||{},a=(n.rules||{})[e.id];return!(e.pageLevel&&!t.page)&&("rule"===r.type?-1!==r.values.indexOf(e.id):a&&"boolean"==typeof a.enabled?a.enabled:"tag"===r.type&&r.values?Oe(e,r.values):Oe(e,[]))},axe.utils.getScrollState=function(e){var t=0<arguments.length&&void 0!==e?e:window,n=t.document.documentElement;return[void 0!==t.pageXOffset?{elm:t,top:t.pageYOffset,left:t.pageXOffset}:{elm:n,top:n.scrollTop,left:n.scrollLeft}].concat(function r(e){return Array.from(e.children).reduce(function(e,t){var n=axe.utils.getScroll(t);return n&&e.push(n),e.concat(r(t))},[])}(document.body))},axe.utils.setScrollState=function(e){e.forEach(function(e){return function(e,t,n){if(e===window)return e.scroll(n,t);e.scrollTop=t,e.scrollLeft=n}(e.elm,e.top,e.left)})},axe.utils.select=function(e,t){"use strict";var n,r=[];if(axe._selectCache)for(var a=0,o=axe._selectCache.length;a<o;a++){var i=axe._selectCache[a];if(i.selector===e)return i.result}for(var u,s=(u=t,function(e){return Be(e,u)}),l=function(e){return e.reduce(function(e,t){return e.length&&axe.utils.contains(e[e.length-1],t)||e.push(t),e},[])}(t.include),c=0;c<l.length;c++)n=l[c],r=Le(r,axe.utils.querySelectorAllFilter(n,e,s));return axe._selectCache&&axe._selectCache.push({selector:e,result:r}),r},axe.utils.toArray=function(e){"use strict";return Array.prototype.slice.call(e)},axe.utils.uniqueArray=function(e,t){return e.concat(t).filter(function(e,t,n){return n.indexOf(e)===t})},axe.utils.tokenList=function(e){"use strict";return e.trim().replace(/\s{2,}/g," ").split(" ")},function(e){var i,t=e.crypto||e.msCrypto;if(!i&&t&&t.getRandomValues){var n=new Uint8Array(16);i=function(){return t.getRandomValues(n),n}}if(!i){var r=new Array(16);i=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),r[t]=e>>>((3&t)<<3)&255;return r}}for(var u="function"==typeof e.Buffer?e.Buffer:Array,a=[],o={},s=0;s<256;s++)a[s]=(s+256).toString(16).substr(1),o[a[s]]=s;function p(e,t){var n=t||0,r=a;return r[e[n++]]+r[e[n++]]+r[e[n++]]+r[e[n++]]+"-"+r[e[n++]]+r[e[n++]]+"-"+r[e[n++]]+r[e[n++]]+"-"+r[e[n++]]+r[e[n++]]+"-"+r[e[n++]]+r[e[n++]]+r[e[n++]]+r[e[n++]]+r[e[n++]]+r[e[n++]]}var l=i(),f=[1|l[0],l[1],l[2],l[3],l[4],l[5]],h=16383&(l[6]<<8|l[7]),b=0,g=0;function c(e,t,n){var r=t&&n||0;"string"==typeof e&&(t="binary"==e?new u(16):null,e=null);var a=(e=e||{}).random||(e.rng||i)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var o=0;o<16;o++)t[r+o]=a[o];return t||p(a)}(Fe=c).v1=function(e,t,n){var r=t&&n||0,a=t||[],o=null!=(e=e||{}).clockseq?e.clockseq:h,i=null!=e.msecs?e.msecs:(new Date).getTime(),u=null!=e.nsecs?e.nsecs:g+1,s=i-b+(u-g)/1e4;if(s<0&&null==e.clockseq&&(o=o+1&16383),(s<0||b<i)&&null==e.nsecs&&(u=0),1e4<=u)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");b=i,h=o;var l=(1e4*(268435455&(i+=122192928e5))+(g=u))%4294967296;a[r++]=l>>>24&255,a[r++]=l>>>16&255,a[r++]=l>>>8&255,a[r++]=255&l;var c=i/4294967296*1e4&268435455;a[r++]=c>>>8&255,a[r++]=255&c,a[r++]=c>>>24&15|16,a[r++]=c>>>16&255,a[r++]=o>>>8|128,a[r++]=255&o;for(var d=e.node||f,m=0;m<6;m++)a[r+m]=d[m];return t||p(a)},Fe.v4=c,Fe.parse=function(e,t,n){var r=t&&n||0,a=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){a<16&&(t[r+a++]=o[e])});a<16;)t[r+a++]=0;return t},Fe.unparse=p,Fe.BufferClass=u}(window),axe.utils.validInputTypes=function(){"use strict";return["hidden","text","search","tel","url","email","password","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]};var Ie=["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","in","io","is","it","iu","iw","ja","ji","jv","jw","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mo","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","sh","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu","aaa","aab","aac","aad","aae","aaf","aag","aah","aai","aak","aal","aam","aan","aao","aap","aaq","aas","aat","aau","aav","aaw","aax","aaz","aba","abb","abc","abd","abe","abf","abg","abh","abi","abj","abl","abm","abn","abo","abp","abq","abr","abs","abt","abu","abv","abw","abx","aby","abz","aca","acb","acd","ace","acf","ach","aci","ack","acl","acm","acn","acp","acq","acr","acs","act","acu","acv","acw","acx","acy","acz","ada","adb","add","ade","adf","adg","adh","adi","adj","adl","adn","ado","adp","adq","adr","ads","adt","adu","adw","adx","ady","adz","aea","aeb","aec","aed","aee","aek","ael","aem","aen","aeq","aer","aes","aeu","aew","aey","aez","afa","afb","afd","afe","afg","afh","afi","afk","afn","afo","afp","afs","aft","afu","afz","aga","agb","agc","agd","age","agf","agg","agh","agi","agj","agk","agl","agm","agn","ago","agp","agq","agr","ags","agt","agu","agv","agw","agx","agy","agz","aha","ahb","ahg","ahh","ahi","ahk","ahl","ahm","ahn","aho","ahp","ahr","ahs","aht","aia","aib","aic","aid","aie","aif","aig","aih","aii","aij","aik","ail","aim","ain","aio","aip","aiq","air","ais","ait","aiw","aix","aiy","aja","ajg","aji","ajn","ajp","ajt","aju","ajw","ajz","akb","akc","akd","ake","akf","akg","akh","aki","akj","akk","akl","akm","ako","akp","akq","akr","aks","akt","aku","akv","akw","akx","aky","akz","ala","alc","ald","ale","alf","alg","alh","ali","alj","alk","all","alm","aln","alo","alp","alq","alr","als","alt","alu","alv","alw","alx","aly","alz","ama","amb","amc","ame","amf","amg","ami","amj","amk","aml","amm","amn","amo","amp","amq","amr","ams","amt","amu","amv","amw","amx","amy","amz","ana","anb","anc","and","ane","anf","ang","anh","ani","anj","ank","anl","anm","ann","ano","anp","anq","anr","ans","ant","anu","anv","anw","anx","any","anz","aoa","aob","aoc","aod","aoe","aof","aog","aoh","aoi","aoj","aok","aol","aom","aon","aor","aos","aot","aou","aox","aoz","apa","apb","apc","apd","ape","apf","apg","aph","api","apj","apk","apl","apm","apn","apo","app","apq","apr","aps","apt","apu","apv","apw","apx","apy","apz","aqa","aqc","aqd","aqg","aql","aqm","aqn","aqp","aqr","aqt","aqz","arb","arc","ard","are","arh","ari","arj","ark","arl","arn","aro","arp","arq","arr","ars","art","aru","arv","arw","arx","ary","arz","asa","asb","asc","asd","ase","asf","asg","ash","asi","asj","ask","asl","asn","aso","asp","asq","asr","ass","ast","asu","asv","asw","asx","asy","asz","ata","atb","atc","atd","ate","atg","ath","ati","atj","atk","atl","atm","atn","ato","atp","atq","atr","ats","att","atu","atv","atw","atx","aty","atz","aua","aub","auc","aud","aue","auf","aug","auh","aui","auj","auk","aul","aum","aun","auo","aup","auq","aur","aus","aut","auu","auw","aux","auy","auz","avb","avd","avi","avk","avl","avm","avn","avo","avs","avt","avu","avv","awa","awb","awc","awd","awe","awg","awh","awi","awk","awm","awn","awo","awr","aws","awt","awu","awv","aww","awx","awy","axb","axe","axg","axk","axl","axm","axx","aya","ayb","ayc","ayd","aye","ayg","ayh","ayi","ayk","ayl","ayn","ayo","ayp","ayq","ayr","ays","ayt","ayu","ayx","ayy","ayz","aza","azb","azc","azd","azg","azj","azm","azn","azo","azt","azz","baa","bab","bac","bad","bae","baf","bag","bah","bai","baj","bal","ban","bao","bap","bar","bas","bat","bau","bav","baw","bax","bay","baz","bba","bbb","bbc","bbd","bbe","bbf","bbg","bbh","bbi","bbj","bbk","bbl","bbm","bbn","bbo","bbp","bbq","bbr","bbs","bbt","bbu","bbv","bbw","bbx","bby","bbz","bca","bcb","bcc","bcd","bce","bcf","bcg","bch","bci","bcj","bck","bcl","bcm","bcn","bco","bcp","bcq","bcr","bcs","bct","bcu","bcv","bcw","bcy","bcz","bda","bdb","bdc","bdd","bde","bdf","bdg","bdh","bdi","bdj","bdk","bdl","bdm","bdn","bdo","bdp","bdq","bdr","bds","bdt","bdu","bdv","bdw","bdx","bdy","bdz","bea","beb","bec","bed","bee","bef","beg","beh","bei","bej","bek","bem","beo","bep","beq","ber","bes","bet","beu","bev","bew","bex","bey","bez","bfa","bfb","bfc","bfd","bfe","bff","bfg","bfh","bfi","bfj","bfk","bfl","bfm","bfn","bfo","bfp","bfq","bfr","bfs","bft","bfu","bfw","bfx","bfy","bfz","bga","bgb","bgc","bgd","bge","bgf","bgg","bgi","bgj","bgk","bgl","bgm","bgn","bgo","bgp","bgq","bgr","bgs","bgt","bgu","bgv","bgw","bgx","bgy","bgz","bha","bhb","bhc","bhd","bhe","bhf","bhg","bhh","bhi","bhj","bhk","bhl","bhm","bhn","bho","bhp","bhq","bhr","bhs","bht","bhu","bhv","bhw","bhx","bhy","bhz","bia","bib","bic","bid","bie","bif","big","bij","bik","bil","bim","bin","bio","bip","biq","bir","bit","biu","biv","biw","bix","biy","biz","bja","bjb","bjc","bjd","bje","bjf","bjg","bjh","bji","bjj","bjk","bjl","bjm","bjn","bjo","bjp","bjq","bjr","bjs","bjt","bju","bjv","bjw","bjx","bjy","bjz","bka","bkb","bkc","bkd","bkf","bkg","bkh","bki","bkj","bkk","bkl","bkm","bkn","bko","bkp","bkq","bkr","bks","bkt","bku","bkv","bkw","bkx","bky","bkz","bla","blb","blc","bld","ble","blf","blg","blh","bli","blj","blk","bll","blm","bln","blo","blp","blq","blr","bls","blt","blv","blw","blx","bly","blz","bma","bmb","bmc","bmd","bme","bmf","bmg","bmh","bmi","bmj","bmk","bml","bmm","bmn","bmo","bmp","bmq","bmr","bms","bmt","bmu","bmv","bmw","bmx","bmy","bmz","bna","bnb","bnc","bnd","bne","bnf","bng","bni","bnj","bnk","bnl","bnm","bnn","bno","bnp","bnq","bnr","bns","bnt","bnu","bnv","bnw","bnx","bny","bnz","boa","bob","boe","bof","bog","boh","boi","boj","bok","bol","bom","bon","boo","bop","boq","bor","bot","bou","bov","bow","box","boy","boz","bpa","bpb","bpd","bpg","bph","bpi","bpj","bpk","bpl","bpm","bpn","bpo","bpp","bpq","bpr","bps","bpt","bpu","bpv","bpw","bpx","bpy","bpz","bqa","bqb","bqc","bqd","bqf","bqg","bqh","bqi","bqj","bqk","bql","bqm","bqn","bqo","bqp","bqq","bqr","bqs","bqt","bqu","bqv","bqw","bqx","bqy","bqz","bra","brb","brc","brd","brf","brg","brh","bri","brj","brk","brl","brm","brn","bro","brp","brq","brr","brs","brt","bru","brv","brw","brx","bry","brz","bsa","bsb","bsc","bse","bsf","bsg","bsh","bsi","bsj","bsk","bsl","bsm","bsn","bso","bsp","bsq","bsr","bss","bst","bsu","bsv","bsw","bsx","bsy","bta","btb","btc","btd","bte","btf","btg","bth","bti","btj","btk","btl","btm","btn","bto","btp","btq","btr","bts","btt","btu","btv","btw","btx","bty","btz","bua","bub","buc","bud","bue","buf","bug","buh","bui","buj","buk","bum","bun","buo","bup","buq","bus","but","buu","buv","buw","bux","buy","buz","bva","bvb","bvc","bvd","bve","bvf","bvg","bvh","bvi","bvj","bvk","bvl","bvm","bvn","bvo","bvp","bvq","bvr","bvt","bvu","bvv","bvw","bvx","bvy","bvz","bwa","bwb","bwc","bwd","bwe","bwf","bwg","bwh","bwi","bwj","bwk","bwl","bwm","bwn","bwo","bwp","bwq","bwr","bws","bwt","bwu","bww","bwx","bwy","bwz","bxa","bxb","bxc","bxd","bxe","bxf","bxg","bxh","bxi","bxj","bxk","bxl","bxm","bxn","bxo","bxp","bxq","bxr","bxs","bxu","bxv","bxw","bxx","bxz","bya","byb","byc","byd","bye","byf","byg","byh","byi","byj","byk","byl","bym","byn","byo","byp","byq","byr","bys","byt","byv","byw","byx","byy","byz","bza","bzb","bzc","bzd","bze","bzf","bzg","bzh","bzi","bzj","bzk","bzl","bzm","bzn","bzo","bzp","bzq","bzr","bzs","bzt","bzu","bzv","bzw","bzx","bzy","bzz","caa","cab","cac","cad","cae","caf","cag","cah","cai","caj","cak","cal","cam","can","cao","cap","caq","car","cas","cau","cav","caw","cax","cay","caz","cba","cbb","cbc","cbd","cbe","cbg","cbh","cbi","cbj","cbk","cbl","cbn","cbo","cbq","cbr","cbs","cbt","cbu","cbv","cbw","cby","cca","ccc","ccd","cce","ccg","cch","ccj","ccl","ccm","ccn","cco","ccp","ccq","ccr","ccs","cda","cdc","cdd","cde","cdf","cdg","cdh","cdi","cdj","cdm","cdn","cdo","cdr","cds","cdy","cdz","cea","ceb","ceg","cek","cel","cen","cet","cfa","cfd","cfg","cfm","cga","cgc","cgg","cgk","chb","chc","chd","chf","chg","chh","chj","chk","chl","chm","chn","cho","chp","chq","chr","cht","chw","chx","chy","chz","cia","cib","cic","cid","cie","cih","cik","cim","cin","cip","cir","ciw","ciy","cja","cje","cjh","cji","cjk","cjm","cjn","cjo","cjp","cjr","cjs","cjv","cjy","cka","ckb","ckh","ckl","ckn","cko","ckq","ckr","cks","ckt","cku","ckv","ckx","cky","ckz","cla","clc","cld","cle","clh","cli","clj","clk","cll","clm","clo","clt","clu","clw","cly","cma","cmc","cme","cmg","cmi","cmk","cml","cmm","cmn","cmo","cmr","cms","cmt","cna","cnb","cnc","cng","cnh","cni","cnk","cnl","cno","cnr","cns","cnt","cnu","cnw","cnx","coa","cob","coc","cod","coe","cof","cog","coh","coj","cok","col","com","con","coo","cop","coq","cot","cou","cov","cow","cox","coy","coz","cpa","cpb","cpc","cpe","cpf","cpg","cpi","cpn","cpo","cpp","cps","cpu","cpx","cpy","cqd","cqu","cra","crb","crc","crd","crf","crg","crh","cri","crj","crk","crl","crm","crn","cro","crp","crq","crr","crs","crt","crv","crw","crx","cry","crz","csa","csb","csc","csd","cse","csf","csg","csh","csi","csj","csk","csl","csm","csn","cso","csq","csr","css","cst","csu","csv","csw","csy","csz","cta","ctc","ctd","cte","ctg","cth","ctl","ctm","ctn","cto","ctp","cts","ctt","ctu","ctz","cua","cub","cuc","cug","cuh","cui","cuj","cuk","cul","cum","cuo","cup","cuq","cur","cus","cut","cuu","cuv","cuw","cux","cuy","cvg","cvn","cwa","cwb","cwd","cwe","cwg","cwt","cya","cyb","cyo","czh","czk","czn","czo","czt","daa","dac","dad","dae","daf","dag","dah","dai","daj","dak","dal","dam","dao","dap","daq","dar","das","dau","dav","daw","dax","day","daz","dba","dbb","dbd","dbe","dbf","dbg","dbi","dbj","dbl","dbm","dbn","dbo","dbp","dbq","dbr","dbt","dbu","dbv","dbw","dby","dcc","dcr","dda","ddd","dde","ddg","ddi","ddj","ddn","ddo","ddr","dds","ddw","dec","ded","dee","def","deg","deh","dei","dek","del","dem","den","dep","deq","der","des","dev","dez","dga","dgb","dgc","dgd","dge","dgg","dgh","dgi","dgk","dgl","dgn","dgo","dgr","dgs","dgt","dgu","dgw","dgx","dgz","dha","dhd","dhg","dhi","dhl","dhm","dhn","dho","dhr","dhs","dhu","dhv","dhw","dhx","dia","dib","dic","did","dif","dig","dih","dii","dij","dik","dil","dim","din","dio","dip","diq","dir","dis","dit","diu","diw","dix","diy","diz","dja","djb","djc","djd","dje","djf","dji","djj","djk","djl","djm","djn","djo","djr","dju","djw","dka","dkk","dkl","dkr","dks","dkx","dlg","dlk","dlm","dln","dma","dmb","dmc","dmd","dme","dmg","dmk","dml","dmm","dmn","dmo","dmr","dms","dmu","dmv","dmw","dmx","dmy","dna","dnd","dne","dng","dni","dnj","dnk","dnn","dnr","dnt","dnu","dnv","dnw","dny","doa","dob","doc","doe","dof","doh","doi","dok","dol","don","doo","dop","doq","dor","dos","dot","dov","dow","dox","doy","doz","dpp","dra","drb","drc","drd","dre","drg","drh","dri","drl","drn","dro","drq","drr","drs","drt","dru","drw","dry","dsb","dse","dsh","dsi","dsl","dsn","dso","dsq","dta","dtb","dtd","dth","dti","dtk","dtm","dtn","dto","dtp","dtr","dts","dtt","dtu","dty","dua","dub","duc","dud","due","duf","dug","duh","dui","duj","duk","dul","dum","dun","duo","dup","duq","dur","dus","duu","duv","duw","dux","duy","duz","dva","dwa","dwl","dwr","dws","dwu","dww","dwy","dya","dyb","dyd","dyg","dyi","dym","dyn","dyo","dyu","dyy","dza","dzd","dze","dzg","dzl","dzn","eaa","ebg","ebk","ebo","ebr","ebu","ecr","ecs","ecy","eee","efa","efe","efi","ega","egl","ego","egx","egy","ehu","eip","eit","eiv","eja","eka","ekc","eke","ekg","eki","ekk","ekl","ekm","eko","ekp","ekr","eky","ele","elh","eli","elk","elm","elo","elp","elu","elx","ema","emb","eme","emg","emi","emk","emm","emn","emo","emp","ems","emu","emw","emx","emy","ena","enb","enc","end","enf","enh","enl","enm","enn","eno","enq","enr","enu","env","enw","enx","eot","epi","era","erg","erh","eri","erk","ero","err","ers","ert","erw","ese","esg","esh","esi","esk","esl","esm","esn","eso","esq","ess","esu","esx","esy","etb","etc","eth","etn","eto","etr","ets","ett","etu","etx","etz","euq","eve","evh","evn","ewo","ext","eya","eyo","eza","eze","faa","fab","fad","faf","fag","fah","fai","faj","fak","fal","fam","fan","fap","far","fat","fau","fax","fay","faz","fbl","fcs","fer","ffi","ffm","fgr","fia","fie","fil","fip","fir","fit","fiu","fiw","fkk","fkv","fla","flh","fli","fll","fln","flr","fly","fmp","fmu","fnb","fng","fni","fod","foi","fom","fon","for","fos","fox","fpe","fqs","frc","frd","frk","frm","fro","frp","frq","frr","frs","frt","fse","fsl","fss","fub","fuc","fud","fue","fuf","fuh","fui","fuj","fum","fun","fuq","fur","fut","fuu","fuv","fuy","fvr","fwa","fwe","gaa","gab","gac","gad","gae","gaf","gag","gah","gai","gaj","gak","gal","gam","gan","gao","gap","gaq","gar","gas","gat","gau","gav","gaw","gax","gay","gaz","gba","gbb","gbc","gbd","gbe","gbf","gbg","gbh","gbi","gbj","gbk","gbl","gbm","gbn","gbo","gbp","gbq","gbr","gbs","gbu","gbv","gbw","gbx","gby","gbz","gcc","gcd","gce","gcf","gcl","gcn","gcr","gct","gda","gdb","gdc","gdd","gde","gdf","gdg","gdh","gdi","gdj","gdk","gdl","gdm","gdn","gdo","gdq","gdr","gds","gdt","gdu","gdx","gea","geb","gec","ged","geg","geh","gei","gej","gek","gel","gem","geq","ges","gev","gew","gex","gey","gez","gfk","gft","gfx","gga","ggb","ggd","gge","ggg","ggk","ggl","ggn","ggo","ggr","ggt","ggu","ggw","gha","ghc","ghe","ghh","ghk","ghl","ghn","gho","ghr","ghs","ght","gia","gib","gic","gid","gie","gig","gih","gil","gim","gin","gio","gip","giq","gir","gis","git","giu","giw","gix","giy","giz","gji","gjk","gjm","gjn","gjr","gju","gka","gkd","gke","gkn","gko","gkp","gku","glc","gld","glh","gli","glj","glk","gll","glo","glr","glu","glw","gly","gma","gmb","gmd","gme","gmg","gmh","gml","gmm","gmn","gmq","gmu","gmv","gmw","gmx","gmy","gmz","gna","gnb","gnc","gnd","gne","gng","gnh","gni","gnj","gnk","gnl","gnm","gnn","gno","gnq","gnr","gnt","gnu","gnw","gnz","goa","gob","goc","god","goe","gof","gog","goh","goi","goj","gok","gol","gom","gon","goo","gop","goq","gor","gos","got","gou","gow","gox","goy","goz","gpa","gpe","gpn","gqa","gqi","gqn","gqr","gqu","gra","grb","grc","grd","grg","grh","gri","grj","grk","grm","gro","grq","grr","grs","grt","gru","grv","grw","grx","gry","grz","gse","gsg","gsl","gsm","gsn","gso","gsp","gss","gsw","gta","gti","gtu","gua","gub","guc","gud","gue","guf","gug","guh","gui","guk","gul","gum","gun","guo","gup","guq","gur","gus","gut","guu","guv","guw","gux","guz","gva","gvc","gve","gvf","gvj","gvl","gvm","gvn","gvo","gvp","gvr","gvs","gvy","gwa","gwb","gwc","gwd","gwe","gwf","gwg","gwi","gwj","gwm","gwn","gwr","gwt","gwu","gww","gwx","gxx","gya","gyb","gyd","gye","gyf","gyg","gyi","gyl","gym","gyn","gyo","gyr","gyy","gza","gzi","gzn","haa","hab","hac","had","hae","haf","hag","hah","hai","haj","hak","hal","ham","han","hao","hap","haq","har","has","hav","haw","hax","hay","haz","hba","hbb","hbn","hbo","hbu","hca","hch","hdn","hds","hdy","hea","hed","heg","heh","hei","hem","hgm","hgw","hhi","hhr","hhy","hia","hib","hid","hif","hig","hih","hii","hij","hik","hil","him","hio","hir","hit","hiw","hix","hji","hka","hke","hkk","hkn","hks","hla","hlb","hld","hle","hlt","hlu","hma","hmb","hmc","hmd","hme","hmf","hmg","hmh","hmi","hmj","hmk","hml","hmm","hmn","hmp","hmq","hmr","hms","hmt","hmu","hmv","hmw","hmx","hmy","hmz","hna","hnd","hne","hnh","hni","hnj","hnn","hno","hns","hnu","hoa","hob","hoc","hod","hoe","hoh","hoi","hoj","hok","hol","hom","hoo","hop","hor","hos","hot","hov","how","hoy","hoz","hpo","hps","hra","hrc","hre","hrk","hrm","hro","hrp","hrr","hrt","hru","hrw","hrx","hrz","hsb","hsh","hsl","hsn","hss","hti","hto","hts","htu","htx","hub","huc","hud","hue","huf","hug","huh","hui","huj","huk","hul","hum","huo","hup","huq","hur","hus","hut","huu","huv","huw","hux","huy","huz","hvc","hve","hvk","hvn","hvv","hwa","hwc","hwo","hya","hyw","hyx","iai","ian","iap","iar","iba","ibb","ibd","ibe","ibg","ibh","ibi","ibl","ibm","ibn","ibr","ibu","iby","ica","ich","icl","icr","ida","idb","idc","idd","ide","idi","idr","ids","idt","idu","ifa","ifb","ife","iff","ifk","ifm","ifu","ify","igb","ige","igg","igl","igm","ign","igo","igs","igw","ihb","ihi","ihp","ihw","iin","iir","ijc","ije","ijj","ijn","ijo","ijs","ike","iki","ikk","ikl","iko","ikp","ikr","iks","ikt","ikv","ikw","ikx","ikz","ila","ilb","ilg","ili","ilk","ill","ilm","ilo","ilp","ils","ilu","ilv","ilw","ima","ime","imi","iml","imn","imo","imr","ims","imy","inb","inc","ine","ing","inh","inj","inl","inm","inn","ino","inp","ins","int","inz","ior","iou","iow","ipi","ipo","iqu","iqw","ira","ire","irh","iri","irk","irn","iro","irr","iru","irx","iry","isa","isc","isd","ise","isg","ish","isi","isk","ism","isn","iso","isr","ist","isu","itb","itc","itd","ite","iti","itk","itl","itm","ito","itr","its","itt","itv","itw","itx","ity","itz","ium","ivb","ivv","iwk","iwm","iwo","iws","ixc","ixl","iya","iyo","iyx","izh","izi","izr","izz","jaa","jab","jac","jad","jae","jaf","jah","jaj","jak","jal","jam","jan","jao","jaq","jar","jas","jat","jau","jax","jay","jaz","jbe","jbi","jbj","jbk","jbn","jbo","jbr","jbt","jbu","jbw","jcs","jct","jda","jdg","jdt","jeb","jee","jeg","jeh","jei","jek","jel","jen","jer","jet","jeu","jgb","jge","jgk","jgo","jhi","jhs","jia","jib","jic","jid","jie","jig","jih","jii","jil","jim","jio","jiq","jit","jiu","jiv","jiy","jje","jjr","jka","jkm","jko","jkp","jkr","jku","jle","jls","jma","jmb","jmc","jmd","jmi","jml","jmn","jmr","jms","jmw","jmx","jna","jnd","jng","jni","jnj","jnl","jns","job","jod","jog","jor","jos","jow","jpa","jpr","jpx","jqr","jra","jrb","jrr","jrt","jru","jsl","jua","jub","juc","jud","juh","jui","juk","jul","jum","jun","juo","jup","jur","jus","jut","juu","juw","juy","jvd","jvn","jwi","jya","jye","jyy","kaa","kab","kac","kad","kae","kaf","kag","kah","kai","kaj","kak","kam","kao","kap","kaq","kar","kav","kaw","kax","kay","kba","kbb","kbc","kbd","kbe","kbf","kbg","kbh","kbi","kbj","kbk","kbl","kbm","kbn","kbo","kbp","kbq","kbr","kbs","kbt","kbu","kbv","kbw","kbx","kby","kbz","kca","kcb","kcc","kcd","kce","kcf","kcg","kch","kci","kcj","kck","kcl","kcm","kcn","kco","kcp","kcq","kcr","kcs","kct","kcu","kcv","kcw","kcx","kcy","kcz","kda","kdc","kdd","kde","kdf","kdg","kdh","kdi","kdj","kdk","kdl","kdm","kdn","kdo","kdp","kdq","kdr","kdt","kdu","kdv","kdw","kdx","kdy","kdz","kea","keb","kec","ked","kee","kef","keg","keh","kei","kej","kek","kel","kem","ken","keo","kep","keq","ker","kes","ket","keu","kev","kew","kex","key","kez","kfa","kfb","kfc","kfd","kfe","kff","kfg","kfh","kfi","kfj","kfk","kfl","kfm","kfn","kfo","kfp","kfq","kfr","kfs","kft","kfu","kfv","kfw","kfx","kfy","kfz","kga","kgb","kgc","kgd","kge","kgf","kgg","kgh","kgi","kgj","kgk","kgl","kgm","kgn","kgo","kgp","kgq","kgr","kgs","kgt","kgu","kgv","kgw","kgx","kgy","kha","khb","khc","khd","khe","khf","khg","khh","khi","khj","khk","khl","khn","kho","khp","khq","khr","khs","kht","khu","khv","khw","khx","khy","khz","kia","kib","kic","kid","kie","kif","kig","kih","kii","kij","kil","kim","kio","kip","kiq","kis","kit","kiu","kiv","kiw","kix","kiy","kiz","kja","kjb","kjc","kjd","kje","kjf","kjg","kjh","kji","kjj","kjk","kjl","kjm","kjn","kjo","kjp","kjq","kjr","kjs","kjt","kju","kjv","kjx","kjy","kjz","kka","kkb","kkc","kkd","kke","kkf","kkg","kkh","kki","kkj","kkk","kkl","kkm","kkn","kko","kkp","kkq","kkr","kks","kkt","kku","kkv","kkw","kkx","kky","kkz","kla","klb","klc","kld","kle","klf","klg","klh","kli","klj","klk","kll","klm","kln","klo","klp","klq","klr","kls","klt","klu","klv","klw","klx","kly","klz","kma","kmb","kmc","kmd","kme","kmf","kmg","kmh","kmi","kmj","kmk","kml","kmm","kmn","kmo","kmp","kmq","kmr","kms","kmt","kmu","kmv","kmw","kmx","kmy","kmz","kna","knb","knc","knd","kne","knf","kng","kni","knj","knk","knl","knm","knn","kno","knp","knq","knr","kns","knt","knu","knv","knw","knx","kny","knz","koa","koc","kod","koe","kof","kog","koh","koi","koj","kok","kol","koo","kop","koq","kos","kot","kou","kov","kow","kox","koy","koz","kpa","kpb","kpc","kpd","kpe","kpf","kpg","kph","kpi","kpj","kpk","kpl","kpm","kpn","kpo","kpp","kpq","kpr","kps","kpt","kpu","kpv","kpw","kpx","kpy","kpz","kqa","kqb","kqc","kqd","kqe","kqf","kqg","kqh","kqi","kqj","kqk","kql","kqm","kqn","kqo","kqp","kqq","kqr","kqs","kqt","kqu","kqv","kqw","kqx","kqy","kqz","kra","krb","krc","krd","kre","krf","krh","kri","krj","krk","krl","krm","krn","kro","krp","krr","krs","krt","kru","krv","krw","krx","kry","krz","ksa","ksb","ksc","ksd","kse","ksf","ksg","ksh","ksi","ksj","ksk","ksl","ksm","ksn","kso","ksp","ksq","ksr","kss","kst","ksu","ksv","ksw","ksx","ksy","ksz","kta","ktb","ktc","ktd","kte","ktf","ktg","kth","kti","ktj","ktk","ktl","ktm","ktn","kto","ktp","ktq","ktr","kts","ktt","ktu","ktv","ktw","ktx","kty","ktz","kub","kuc","kud","kue","kuf","kug","kuh","kui","kuj","kuk","kul","kum","kun","kuo","kup","kuq","kus","kut","kuu","kuv","kuw","kux","kuy","kuz","kva","kvb","kvc","kvd","kve","kvf","kvg","kvh","kvi","kvj","kvk","kvl","kvm","kvn","kvo","kvp","kvq","kvr","kvs","kvt","kvu","kvv","kvw","kvx","kvy","kvz","kwa","kwb","kwc","kwd","kwe","kwf","kwg","kwh","kwi","kwj","kwk","kwl","kwm","kwn","kwo","kwp","kwq","kwr","kws","kwt","kwu","kwv","kww","kwx","kwy","kwz","kxa","kxb","kxc","kxd","kxe","kxf","kxh","kxi","kxj","kxk","kxl","kxm","kxn","kxo","kxp","kxq","kxr","kxs","kxt","kxu","kxv","kxw","kxx","kxy","kxz","kya","kyb","kyc","kyd","kye","kyf","kyg","kyh","kyi","kyj","kyk","kyl","kym","kyn","kyo","kyp","kyq","kyr","kys","kyt","kyu","kyv","kyw","kyx","kyy","kyz","kza","kzb","kzc","kzd","kze","kzf","kzg","kzh","kzi","kzj","kzk","kzl","kzm","kzn","kzo","kzp","kzq","kzr","kzs","kzt","kzu","kzv","kzw","kzx","kzy","kzz","laa","lab","lac","lad","lae","laf","lag","lah","lai","laj","lak","lal","lam","lan","lap","laq","lar","las","lau","law","lax","lay","laz","lba","lbb","lbc","lbe","lbf","lbg","lbi","lbj","lbk","lbl","lbm","lbn","lbo","lbq","lbr","lbs","lbt","lbu","lbv","lbw","lbx","lby","lbz","lcc","lcd","lce","lcf","lch","lcl","lcm","lcp","lcq","lcs","lda","ldb","ldd","ldg","ldh","ldi","ldj","ldk","ldl","ldm","ldn","ldo","ldp","ldq","lea","leb","lec","led","lee","lef","leg","leh","lei","lej","lek","lel","lem","len","leo","lep","leq","ler","les","let","leu","lev","lew","lex","ley","lez","lfa","lfn","lga","lgb","lgg","lgh","lgi","lgk","lgl","lgm","lgn","lgq","lgr","lgt","lgu","lgz","lha","lhh","lhi","lhl","lhm","lhn","lhp","lhs","lht","lhu","lia","lib","lic","lid","lie","lif","lig","lih","lii","lij","lik","lil","lio","lip","liq","lir","lis","liu","liv","liw","lix","liy","liz","lja","lje","lji","ljl","ljp","ljw","ljx","lka","lkb","lkc","lkd","lke","lkh","lki","lkj","lkl","lkm","lkn","lko","lkr","lks","lkt","lku","lky","lla","llb","llc","lld","lle","llf","llg","llh","lli","llj","llk","lll","llm","lln","llo","llp","llq","lls","llu","llx","lma","lmb","lmc","lmd","lme","lmf","lmg","lmh","lmi","lmj","lmk","lml","lmm","lmn","lmo","lmp","lmq","lmr","lmu","lmv","lmw","lmx","lmy","lmz","lna","lnb","lnd","lng","lnh","lni","lnj","lnl","lnm","lnn","lno","lns","lnu","lnw","lnz","loa","lob","loc","loe","lof","log","loh","loi","loj","lok","lol","lom","lon","loo","lop","loq","lor","los","lot","lou","lov","low","lox","loy","loz","lpa","lpe","lpn","lpo","lpx","lra","lrc","lre","lrg","lri","lrk","lrl","lrm","lrn","lro","lrr","lrt","lrv","lrz","lsa","lsd","lse","lsg","lsh","lsi","lsl","lsm","lso","lsp","lsr","lss","lst","lsy","ltc","ltg","lth","lti","ltn","lto","lts","ltu","lua","luc","lud","lue","luf","lui","luj","luk","lul","lum","lun","luo","lup","luq","lur","lus","lut","luu","luv","luw","luy","luz","lva","lvk","lvs","lvu","lwa","lwe","lwg","lwh","lwl","lwm","lwo","lws","lwt","lwu","lww","lya","lyg","lyn","lzh","lzl","lzn","lzz","maa","mab","mad","mae","maf","mag","mai","maj","mak","mam","man","map","maq","mas","mat","mau","mav","maw","max","maz","mba","mbb","mbc","mbd","mbe","mbf","mbh","mbi","mbj","mbk","mbl","mbm","mbn","mbo","mbp","mbq","mbr","mbs","mbt","mbu","mbv","mbw","mbx","mby","mbz","mca","mcb","mcc","mcd","mce","mcf","mcg","mch","mci","mcj","mck","mcl","mcm","mcn","mco","mcp","mcq","mcr","mcs","mct","mcu","mcv","mcw","mcx","mcy","mcz","mda","mdb","mdc","mdd","mde","mdf","mdg","mdh","mdi","mdj","mdk","mdl","mdm","mdn","mdp","mdq","mdr","mds","mdt","mdu","mdv","mdw","mdx","mdy","mdz","mea","meb","mec","med","mee","mef","meg","meh","mei","mej","mek","mel","mem","men","meo","mep","meq","mer","mes","met","meu","mev","mew","mey","mez","mfa","mfb","mfc","mfd","mfe","mff","mfg","mfh","mfi","mfj","mfk","mfl","mfm","mfn","mfo","mfp","mfq","mfr","mfs","mft","mfu","mfv","mfw","mfx","mfy","mfz","mga","mgb","mgc","mgd","mge","mgf","mgg","mgh","mgi","mgj","mgk","mgl","mgm","mgn","mgo","mgp","mgq","mgr","mgs","mgt","mgu","mgv","mgw","mgx","mgy","mgz","mha","mhb","mhc","mhd","mhe","mhf","mhg","mhh","mhi","mhj","mhk","mhl","mhm","mhn","mho","mhp","mhq","mhr","mhs","mht","mhu","mhw","mhx","mhy","mhz","mia","mib","mic","mid","mie","mif","mig","mih","mii","mij","mik","mil","mim","min","mio","mip","miq","mir","mis","mit","miu","miw","mix","miy","miz","mja","mjb","mjc","mjd","mje","mjg","mjh","mji","mjj","mjk","mjl","mjm","mjn","mjo","mjp","mjq","mjr","mjs","mjt","mju","mjv","mjw","mjx","mjy","mjz","mka","mkb","mkc","mke","mkf","mkg","mkh","mki","mkj","mkk","mkl","mkm","mkn","mko","mkp","mkq","mkr","mks","mkt","mku","mkv","mkw","mkx","mky","mkz","mla","mlb","mlc","mld","mle","mlf","mlh","mli","mlj","mlk","mll","mlm","mln","mlo","mlp","mlq","mlr","mls","mlu","mlv","mlw","mlx","mlz","mma","mmb","mmc","mmd","mme","mmf","mmg","mmh","mmi","mmj","mmk","mml","mmm","mmn","mmo","mmp","mmq","mmr","mmt","mmu","mmv","mmw","mmx","mmy","mmz","mna","mnb","mnc","mnd","mne","mnf","mng","mnh","mni","mnj","mnk","mnl","mnm","mnn","mno","mnp","mnq","mnr","mns","mnt","mnu","mnv","mnw","mnx","mny","mnz","moa","moc","mod","moe","mof","mog","moh","moi","moj","mok","mom","moo","mop","moq","mor","mos","mot","mou","mov","mow","mox","moy","moz","mpa","mpb","mpc","mpd","mpe","mpg","mph","mpi","mpj","mpk","mpl","mpm","mpn","mpo","mpp","mpq","mpr","mps","mpt","mpu","mpv","mpw","mpx","mpy","mpz","mqa","mqb","mqc","mqe","mqf","mqg","mqh","mqi","mqj","mqk","mql","mqm","mqn","mqo","mqp","mqq","mqr","mqs","mqt","mqu","mqv","mqw","mqx","mqy","mqz","mra","mrb","mrc","mrd","mre","mrf","mrg","mrh","mrj","mrk","mrl","mrm","mrn","mro","mrp","mrq","mrr","mrs","mrt","mru","mrv","mrw","mrx","mry","mrz","msb","msc","msd","mse","msf","msg","msh","msi","msj","msk","msl","msm","msn","mso","msp","msq","msr","mss","mst","msu","msv","msw","msx","msy","msz","mta","mtb","mtc","mtd","mte","mtf","mtg","mth","mti","mtj","mtk","mtl","mtm","mtn","mto","mtp","mtq","mtr","mts","mtt","mtu","mtv","mtw","mtx","mty","mua","mub","muc","mud","mue","mug","muh","mui","muj","muk","mul","mum","mun","muo","mup","muq","mur","mus","mut","muu","muv","mux","muy","muz","mva","mvb","mvd","mve","mvf","mvg","mvh","mvi","mvk","mvl","mvm","mvn","mvo","mvp","mvq","mvr","mvs","mvt","mvu","mvv","mvw","mvx","mvy","mvz","mwa","mwb","mwc","mwd","mwe","mwf","mwg","mwh","mwi","mwj","mwk","mwl","mwm","mwn","mwo","mwp","mwq","mwr","mws","mwt","mwu","mwv","mww","mwx","mwy","mwz","mxa","mxb","mxc","mxd","mxe","mxf","mxg","mxh","mxi","mxj","mxk","mxl","mxm","mxn","mxo","mxp","mxq","mxr","mxs","mxt","mxu","mxv","mxw","mxx","mxy","mxz","myb","myc","myd","mye","myf","myg","myh","myi","myj","myk","myl","mym","myn","myo","myp","myq","myr","mys","myt","myu","myv","myw","myx","myy","myz","mza","mzb","mzc","mzd","mze","mzg","mzh","mzi","mzj","mzk","mzl","mzm","mzn","mzo","mzp","mzq","mzr","mzs","mzt","mzu","mzv","mzw","mzx","mzy","mzz","naa","nab","nac","nad","nae","naf","nag","nah","nai","naj","nak","nal","nam","nan","nao","nap","naq","nar","nas","nat","naw","nax","nay","naz","nba","nbb","nbc","nbd","nbe","nbf","nbg","nbh","nbi","nbj","nbk","nbm","nbn","nbo","nbp","nbq","nbr","nbs","nbt","nbu","nbv","nbw","nbx","nby","nca","ncb","ncc","ncd","nce","ncf","ncg","nch","nci","ncj","nck","ncl","ncm","ncn","nco","ncp","ncq","ncr","ncs","nct","ncu","ncx","ncz","nda","ndb","ndc","ndd","ndf","ndg","ndh","ndi","ndj","ndk","ndl","ndm","ndn","ndp","ndq","ndr","nds","ndt","ndu","ndv","ndw","ndx","ndy","ndz","nea","neb","nec","ned","nee","nef","neg","neh","nei","nej","nek","nem","nen","neo","neq","ner","nes","net","neu","nev","new","nex","ney","nez","nfa","nfd","nfl","nfr","nfu","nga","ngb","ngc","ngd","nge","ngf","ngg","ngh","ngi","ngj","ngk","ngl","ngm","ngn","ngo","ngp","ngq","ngr","ngs","ngt","ngu","ngv","ngw","ngx","ngy","ngz","nha","nhb","nhc","nhd","nhe","nhf","nhg","nhh","nhi","nhk","nhm","nhn","nho","nhp","nhq","nhr","nht","nhu","nhv","nhw","nhx","nhy","nhz","nia","nib","nic","nid","nie","nif","nig","nih","nii","nij","nik","nil","nim","nin","nio","niq","nir","nis","nit","niu","niv","niw","nix","niy","niz","nja","njb","njd","njh","nji","njj","njl","njm","njn","njo","njr","njs","njt","nju","njx","njy","njz","nka","nkb","nkc","nkd","nke","nkf","nkg","nkh","nki","nkj","nkk","nkm","nkn","nko","nkp","nkq","nkr","nks","nkt","nku","nkv","nkw","nkx","nkz","nla","nlc","nle","nlg","nli","nlj","nlk","nll","nlm","nln","nlo","nlq","nlr","nlu","nlv","nlw","nlx","nly","nlz","nma","nmb","nmc","nmd","nme","nmf","nmg","nmh","nmi","nmj","nmk","nml","nmm","nmn","nmo","nmp","nmq","nmr","nms","nmt","nmu","nmv","nmw","nmx","nmy","nmz","nna","nnb","nnc","nnd","nne","nnf","nng","nnh","nni","nnj","nnk","nnl","nnm","nnn","nnp","nnq","nnr","nns","nnt","nnu","nnv","nnw","nnx","nny","nnz","noa","noc","nod","noe","nof","nog","noh","noi","noj","nok","nol","nom","non","noo","nop","noq","nos","not","nou","nov","now","noy","noz","npa","npb","npg","nph","npi","npl","npn","npo","nps","npu","npx","npy","nqg","nqk","nql","nqm","nqn","nqo","nqq","nqy","nra","nrb","nrc","nre","nrf","nrg","nri","nrk","nrl","nrm","nrn","nrp","nrr","nrt","nru","nrx","nrz","nsa","nsc","nsd","nse","nsf","nsg","nsh","nsi","nsk","nsl","nsm","nsn","nso","nsp","nsq","nsr","nss","nst","nsu","nsv","nsw","nsx","nsy","nsz","ntd","nte","ntg","nti","ntj","ntk","ntm","nto","ntp","ntr","nts","ntu","ntw","ntx","nty","ntz","nua","nub","nuc","nud","nue","nuf","nug","nuh","nui","nuj","nuk","nul","num","nun","nuo","nup","nuq","nur","nus","nut","nuu","nuv","nuw","nux","nuy","nuz","nvh","nvm","nvo","nwa","nwb","nwc","nwe","nwg","nwi","nwm","nwo","nwr","nwx","nwy","nxa","nxd","nxe","nxg","nxi","nxk","nxl","nxm","nxn","nxo","nxq","nxr","nxu","nxx","nyb","nyc","nyd","nye","nyf","nyg","nyh","nyi","nyj","nyk","nyl","nym","nyn","nyo","nyp","nyq","nyr","nys","nyt","nyu","nyv","nyw","nyx","nyy","nza","nzb","nzd","nzi","nzk","nzm","nzs","nzu","nzy","nzz","oaa","oac","oar","oav","obi","obk","obl","obm","obo","obr","obt","obu","oca","och","oco","ocu","oda","odk","odt","odu","ofo","ofs","ofu","ogb","ogc","oge","ogg","ogo","ogu","oht","ohu","oia","oin","ojb","ojc","ojg","ojp","ojs","ojv","ojw","oka","okb","okd","oke","okg","okh","oki","okj","okk","okl","okm","okn","oko","okr","oks","oku","okv","okx","ola","old","ole","olk","olm","olo","olr","olt","olu","oma","omb","omc","ome","omg","omi","omk","oml","omn","omo","omp","omq","omr","omt","omu","omv","omw","omx","ona","onb","one","ong","oni","onj","onk","onn","ono","onp","onr","ons","ont","onu","onw","onx","ood","oog","oon","oor","oos","opa","opk","opm","opo","opt","opy","ora","orc","ore","org","orh","orn","oro","orr","ors","ort","oru","orv","orw","orx","ory","orz","osa","osc","osi","oso","osp","ost","osu","osx","ota","otb","otd","ote","oti","otk","otl","otm","otn","oto","otq","otr","ots","ott","otu","otw","otx","oty","otz","oua","oub","oue","oui","oum","oun","ovd","owi","owl","oyb","oyd","oym","oyy","ozm","paa","pab","pac","pad","pae","paf","pag","pah","pai","pak","pal","pam","pao","pap","paq","par","pas","pat","pau","pav","paw","pax","pay","paz","pbb","pbc","pbe","pbf","pbg","pbh","pbi","pbl","pbm","pbn","pbo","pbp","pbr","pbs","pbt","pbu","pbv","pby","pbz","pca","pcb","pcc","pcd","pce","pcf","pcg","pch","pci","pcj","pck","pcl","pcm","pcn","pcp","pcr","pcw","pda","pdc","pdi","pdn","pdo","pdt","pdu","pea","peb","ped","pee","pef","peg","peh","pei","pej","pek","pel","pem","peo","pep","peq","pes","pev","pex","pey","pez","pfa","pfe","pfl","pga","pgd","pgg","pgi","pgk","pgl","pgn","pgs","pgu","pgy","pgz","pha","phd","phg","phh","phi","phk","phl","phm","phn","pho","phq","phr","pht","phu","phv","phw","pia","pib","pic","pid","pie","pif","pig","pih","pii","pij","pil","pim","pin","pio","pip","pir","pis","pit","piu","piv","piw","pix","piy","piz","pjt","pka","pkb","pkc","pkg","pkh","pkn","pko","pkp","pkr","pks","pkt","pku","pla","plb","plc","pld","ple","plf","plg","plh","plj","plk","pll","pln","plo","plp","plq","plr","pls","plt","plu","plv","plw","ply","plz","pma","pmb","pmc","pmd","pme","pmf","pmh","pmi","pmj","pmk","pml","pmm","pmn","pmo","pmq","pmr","pms","pmt","pmu","pmw","pmx","pmy","pmz","pna","pnb","pnc","pne","png","pnh","pni","pnj","pnk","pnl","pnm","pnn","pno","pnp","pnq","pnr","pns","pnt","pnu","pnv","pnw","pnx","pny","pnz","poc","pod","poe","pof","pog","poh","poi","pok","pom","pon","poo","pop","poq","pos","pot","pov","pow","pox","poy","poz","ppa","ppe","ppi","ppk","ppl","ppm","ppn","ppo","ppp","ppq","ppr","pps","ppt","ppu","pqa","pqe","pqm","pqw","pra","prb","prc","prd","pre","prf","prg","prh","pri","prk","prl","prm","prn","pro","prp","prq","prr","prs","prt","pru","prw","prx","pry","prz","psa","psc","psd","pse","psg","psh","psi","psl","psm","psn","pso","psp","psq","psr","pss","pst","psu","psw","psy","pta","pth","pti","ptn","pto","ptp","ptq","ptr","ptt","ptu","ptv","ptw","pty","pua","pub","puc","pud","pue","puf","pug","pui","puj","puk","pum","puo","pup","puq","pur","put","puu","puw","pux","puy","puz","pwa","pwb","pwg","pwi","pwm","pwn","pwo","pwr","pww","pxm","pye","pym","pyn","pys","pyu","pyx","pyy","pzn","qaa..qtz","qua","qub","quc","qud","quf","qug","quh","qui","quk","qul","qum","qun","qup","quq","qur","qus","quv","quw","qux","quy","quz","qva","qvc","qve","qvh","qvi","qvj","qvl","qvm","qvn","qvo","qvp","qvs","qvw","qvy","qvz","qwa","qwc","qwe","qwh","qwm","qws","qwt","qxa","qxc","qxh","qxl","qxn","qxo","qxp","qxq","qxr","qxs","qxt","qxu","qxw","qya","qyp","raa","rab","rac","rad","raf","rag","rah","rai","raj","rak","ral","ram","ran","rao","rap","raq","rar","ras","rat","rau","rav","raw","rax","ray","raz","rbb","rbk","rbl","rbp","rcf","rdb","rea","reb","ree","reg","rei","rej","rel","rem","ren","rer","res","ret","rey","rga","rge","rgk","rgn","rgr","rgs","rgu","rhg","rhp","ria","rie","rif","ril","rim","rin","rir","rit","riu","rjg","rji","rjs","rka","rkb","rkh","rki","rkm","rkt","rkw","rma","rmb","rmc","rmd","rme","rmf","rmg","rmh","rmi","rmk","rml","rmm","rmn","rmo","rmp","rmq","rmr","rms","rmt","rmu","rmv","rmw","rmx","rmy","rmz","rna","rnd","rng","rnl","rnn","rnp","rnr","rnw","roa","rob","roc","rod","roe","rof","rog","rol","rom","roo","rop","ror","rou","row","rpn","rpt","rri","rro","rrt","rsb","rsi","rsl","rsm","rtc","rth","rtm","rts","rtw","rub","ruc","rue","ruf","rug","ruh","rui","ruk","ruo","rup","ruq","rut","ruu","ruy","ruz","rwa","rwk","rwm","rwo","rwr","rxd","rxw","ryn","rys","ryu","rzh","saa","sab","sac","sad","sae","saf","sah","sai","saj","sak","sal","sam","sao","sap","saq","sar","sas","sat","sau","sav","saw","sax","say","saz","sba","sbb","sbc","sbd","sbe","sbf","sbg","sbh","sbi","sbj","sbk","sbl","sbm","sbn","sbo","sbp","sbq","sbr","sbs","sbt","sbu","sbv","sbw","sbx","sby","sbz","sca","scb","sce","scf","scg","sch","sci","sck","scl","scn","sco","scp","scq","scs","sct","scu","scv","scw","scx","sda","sdb","sdc","sde","sdf","sdg","sdh","sdj","sdk","sdl","sdm","sdn","sdo","sdp","sdr","sds","sdt","sdu","sdv","sdx","sdz","sea","seb","sec","sed","see","sef","seg","seh","sei","sej","sek","sel","sem","sen","seo","sep","seq","ser","ses","set","seu","sev","sew","sey","sez","sfb","sfe","sfm","sfs","sfw","sga","sgb","sgc","sgd","sge","sgg","sgh","sgi","sgj","sgk","sgl","sgm","sgn","sgo","sgp","sgr","sgs","sgt","sgu","sgw","sgx","sgy","sgz","sha","shb","shc","shd","she","shg","shh","shi","shj","shk","shl","shm","shn","sho","shp","shq","shr","shs","sht","shu","shv","shw","shx","shy","shz","sia","sib","sid","sie","sif","sig","sih","sii","sij","sik","sil","sim","sio","sip","siq","sir","sis","sit","siu","siv","siw","six","siy","siz","sja","sjb","sjd","sje","sjg","sjk","sjl","sjm","sjn","sjo","sjp","sjr","sjs","sjt","sju","sjw","ska","skb","skc","skd","ske","skf","skg","skh","ski","skj","skk","skm","skn","sko","skp","skq","skr","sks","skt","sku","skv","skw","skx","sky","skz","sla","slc","sld","sle","slf","slg","slh","sli","slj","sll","slm","sln","slp","slq","slr","sls","slt","slu","slw","slx","sly","slz","sma","smb","smc","smd","smf","smg","smh","smi","smj","smk","sml","smm","smn","smp","smq","smr","sms","smt","smu","smv","smw","smx","smy","smz","snb","snc","sne","snf","sng","snh","sni","snj","snk","snl","snm","snn","sno","snp","snq","snr","sns","snu","snv","snw","snx","sny","snz","soa","sob","soc","sod","soe","sog","soh","soi","soj","sok","sol","son","soo","sop","soq","sor","sos","sou","sov","sow","sox","soy","soz","spb","spc","spd","spe","spg","spi","spk","spl","spm","spn","spo","spp","spq","spr","sps","spt","spu","spv","spx","spy","sqa","sqh","sqj","sqk","sqm","sqn","sqo","sqq","sqr","sqs","sqt","squ","sra","srb","src","sre","srf","srg","srh","sri","srk","srl","srm","srn","sro","srq","srr","srs","srt","sru","srv","srw","srx","sry","srz","ssa","ssb","ssc","ssd","sse","ssf","ssg","ssh","ssi","ssj","ssk","ssl","ssm","ssn","sso","ssp","ssq","ssr","sss","sst","ssu","ssv","ssx","ssy","ssz","sta","stb","std","ste","stf","stg","sth","sti","stj","stk","stl","stm","stn","sto","stp","stq","str","sts","stt","stu","stv","stw","sty","sua","sub","suc","sue","sug","sui","suj","suk","sul","sum","suq","sur","sus","sut","suv","suw","sux","suy","suz","sva","svb","svc","sve","svk","svm","svr","svs","svx","swb","swc","swf","swg","swh","swi","swj","swk","swl","swm","swn","swo","swp","swq","swr","sws","swt","swu","swv","sww","swx","swy","sxb","sxc","sxe","sxg","sxk","sxl","sxm","sxn","sxo","sxr","sxs","sxu","sxw","sya","syb","syc","syd","syi","syk","syl","sym","syn","syo","syr","sys","syw","syx","syy","sza","szb","szc","szd","sze","szg","szl","szn","szp","szs","szv","szw","taa","tab","tac","tad","tae","taf","tag","tai","taj","tak","tal","tan","tao","tap","taq","tar","tas","tau","tav","taw","tax","tay","taz","tba","tbb","tbc","tbd","tbe","tbf","tbg","tbh","tbi","tbj","tbk","tbl","tbm","tbn","tbo","tbp","tbq","tbr","tbs","tbt","tbu","tbv","tbw","tbx","tby","tbz","tca","tcb","tcc","tcd","tce","tcf","tcg","tch","tci","tck","tcl","tcm","tcn","tco","tcp","tcq","tcs","tct","tcu","tcw","tcx","tcy","tcz","tda","tdb","tdc","tdd","tde","tdf","tdg","tdh","tdi","tdj","tdk","tdl","tdm","tdn","tdo","tdq","tdr","tds","tdt","tdu","tdv","tdx","tdy","tea","teb","tec","ted","tee","tef","teg","teh","tei","tek","tem","ten","teo","tep","teq","ter","tes","tet","teu","tev","tew","tex","tey","tez","tfi","tfn","tfo","tfr","tft","tga","tgb","tgc","tgd","tge","tgf","tgg","tgh","tgi","tgj","tgn","tgo","tgp","tgq","tgr","tgs","tgt","tgu","tgv","tgw","tgx","tgy","tgz","thc","thd","the","thf","thh","thi","thk","thl","thm","thn","thp","thq","thr","ths","tht","thu","thv","thw","thx","thy","thz","tia","tic","tid","tie","tif","tig","tih","tii","tij","tik","til","tim","tin","tio","tip","tiq","tis","tit","tiu","tiv","tiw","tix","tiy","tiz","tja","tjg","tji","tjl","tjm","tjn","tjo","tjs","tju","tjw","tka","tkb","tkd","tke","tkf","tkg","tkk","tkl","tkm","tkn","tkp","tkq","tkr","tks","tkt","tku","tkv","tkw","tkx","tkz","tla","tlb","tlc","tld","tlf","tlg","tlh","tli","tlj","tlk","tll","tlm","tln","tlo","tlp","tlq","tlr","tls","tlt","tlu","tlv","tlw","tlx","tly","tma","tmb","tmc","tmd","tme","tmf","tmg","tmh","tmi","tmj","tmk","tml","tmm","tmn","tmo","tmp","tmq","tmr","tms","tmt","tmu","tmv","tmw","tmy","tmz","tna","tnb","tnc","tnd","tne","tnf","tng","tnh","tni","tnk","tnl","tnm","tnn","tno","tnp","tnq","tnr","tns","tnt","tnu","tnv","tnw","tnx","tny","tnz","tob","toc","tod","toe","tof","tog","toh","toi","toj","tol","tom","too","top","toq","tor","tos","tou","tov","tow","tox","toy","toz","tpa","tpc","tpe","tpf","tpg","tpi","tpj","tpk","tpl","tpm","tpn","tpo","tpp","tpq","tpr","tpt","tpu","tpv","tpw","tpx","tpy","tpz","tqb","tql","tqm","tqn","tqo","tqp","tqq","tqr","tqt","tqu","tqw","tra","trb","trc","trd","tre","trf","trg","trh","tri","trj","trk","trl","trm","trn","tro","trp","trq","trr","trs","trt","tru","trv","trw","trx","try","trz","tsa","tsb","tsc","tsd","tse","tsf","tsg","tsh","tsi","tsj","tsk","tsl","tsm","tsp","tsq","tsr","tss","tst","tsu","tsv","tsw","tsx","tsy","tsz","tta","ttb","ttc","ttd","tte","ttf","ttg","tth","tti","ttj","ttk","ttl","ttm","ttn","tto","ttp","ttq","ttr","tts","ttt","ttu","ttv","ttw","tty","ttz","tua","tub","tuc","tud","tue","tuf","tug","tuh","tui","tuj","tul","tum","tun","tuo","tup","tuq","tus","tut","tuu","tuv","tuw","tux","tuy","tuz","tva","tvd","tve","tvk","tvl","tvm","tvn","tvo","tvs","tvt","tvu","tvw","tvy","twa","twb","twc","twd","twe","twf","twg","twh","twl","twm","twn","two","twp","twq","twr","twt","twu","tww","twx","twy","txa","txb","txc","txe","txg","txh","txi","txj","txm","txn","txo","txq","txr","txs","txt","txu","txx","txy","tya","tye","tyh","tyi","tyj","tyl","tyn","typ","tyr","tys","tyt","tyu","tyv","tyx","tyz","tza","tzh","tzj","tzl","tzm","tzn","tzo","tzx","uam","uan","uar","uba","ubi","ubl","ubr","ubu","uby","uda","ude","udg","udi","udj","udl","udm","udu","ues","ufi","uga","ugb","uge","ugn","ugo","ugy","uha","uhn","uis","uiv","uji","uka","ukg","ukh","ukk","ukl","ukp","ukq","uks","uku","ukw","uky","ula","ulb","ulc","ule","ulf","uli","ulk","ull","ulm","uln","ulu","ulw","uma","umb","umc","umd","umg","umi","umm","umn","umo","ump","umr","ums","umu","una","und","une","ung","unk","unm","unn","unp","unr","unu","unx","unz","uok","upi","upv","ura","urb","urc","ure","urf","urg","urh","uri","urj","urk","url","urm","urn","uro","urp","urr","urt","uru","urv","urw","urx","ury","urz","usa","ush","usi","usk","usp","usu","uta","ute","utp","utr","utu","uum","uun","uur","uuu","uve","uvh","uvl","uwa","uya","uzn","uzs","vaa","vae","vaf","vag","vah","vai","vaj","val","vam","van","vao","vap","var","vas","vau","vav","vay","vbb","vbk","vec","ved","vel","vem","veo","vep","ver","vgr","vgt","vic","vid","vif","vig","vil","vin","vis","vit","viv","vka","vki","vkj","vkk","vkl","vkm","vko","vkp","vkt","vku","vlp","vls","vma","vmb","vmc","vmd","vme","vmf","vmg","vmh","vmi","vmj","vmk","vml","vmm","vmp","vmq","vmr","vms","vmu","vmv","vmw","vmx","vmy","vmz","vnk","vnm","vnp","vor","vot","vra","vro","vrs","vrt","vsi","vsl","vsv","vto","vum","vun","vut","vwa","waa","wab","wac","wad","wae","waf","wag","wah","wai","waj","wak","wal","wam","wan","wao","wap","waq","war","was","wat","wau","wav","waw","wax","way","waz","wba","wbb","wbe","wbf","wbh","wbi","wbj","wbk","wbl","wbm","wbp","wbq","wbr","wbs","wbt","wbv","wbw","wca","wci","wdd","wdg","wdj","wdk","wdu","wdy","wea","wec","wed","weg","weh","wei","wem","wen","weo","wep","wer","wes","wet","weu","wew","wfg","wga","wgb","wgg","wgi","wgo","wgu","wgw","wgy","wha","whg","whk","whu","wib","wic","wie","wif","wig","wih","wii","wij","wik","wil","wim","win","wir","wit","wiu","wiv","wiw","wiy","wja","wji","wka","wkb","wkd","wkl","wku","wkw","wky","wla","wlc","wle","wlg","wli","wlk","wll","wlm","wlo","wlr","wls","wlu","wlv","wlw","wlx","wly","wma","wmb","wmc","wmd","wme","wmh","wmi","wmm","wmn","wmo","wms","wmt","wmw","wmx","wnb","wnc","wnd","wne","wng","wni","wnk","wnm","wnn","wno","wnp","wnu","wnw","wny","woa","wob","woc","wod","woe","wof","wog","woi","wok","wom","won","woo","wor","wos","wow","woy","wpc","wra","wrb","wrd","wrg","wrh","wri","wrk","wrl","wrm","wrn","wro","wrp","wrr","wrs","wru","wrv","wrw","wrx","wry","wrz","wsa","wsg","wsi","wsk","wsr","wss","wsu","wsv","wtf","wth","wti","wtk","wtm","wtw","wua","wub","wud","wuh","wul","wum","wun","wur","wut","wuu","wuv","wux","wuy","wwa","wwb","wwo","wwr","www","wxa","wxw","wya","wyb","wyi","wym","wyr","wyy","xaa","xab","xac","xad","xae","xag","xai","xaj","xak","xal","xam","xan","xao","xap","xaq","xar","xas","xat","xau","xav","xaw","xay","xba","xbb","xbc","xbd","xbe","xbg","xbi","xbj","xbm","xbn","xbo","xbp","xbr","xbw","xbx","xby","xcb","xcc","xce","xcg","xch","xcl","xcm","xcn","xco","xcr","xct","xcu","xcv","xcw","xcy","xda","xdc","xdk","xdm","xdo","xdy","xeb","xed","xeg","xel","xem","xep","xer","xes","xet","xeu","xfa","xga","xgb","xgd","xgf","xgg","xgi","xgl","xgm","xgn","xgr","xgu","xgw","xha","xhc","xhd","xhe","xhr","xht","xhu","xhv","xia","xib","xii","xil","xin","xip","xir","xis","xiv","xiy","xjb","xjt","xka","xkb","xkc","xkd","xke","xkf","xkg","xkh","xki","xkj","xkk","xkl","xkn","xko","xkp","xkq","xkr","xks","xkt","xku","xkv","xkw","xkx","xky","xkz","xla","xlb","xlc","xld","xle","xlg","xli","xln","xlo","xlp","xls","xlu","xly","xma","xmb","xmc","xmd","xme","xmf","xmg","xmh","xmj","xmk","xml","xmm","xmn","xmo","xmp","xmq","xmr","xms","xmt","xmu","xmv","xmw","xmx","xmy","xmz","xna","xnb","xnd","xng","xnh","xni","xnk","xnn","xno","xnr","xns","xnt","xnu","xny","xnz","xoc","xod","xog","xoi","xok","xom","xon","xoo","xop","xor","xow","xpa","xpc","xpe","xpg","xpi","xpj","xpk","xpm","xpn","xpo","xpp","xpq","xpr","xps","xpt","xpu","xpy","xqa","xqt","xra","xrb","xrd","xre","xrg","xri","xrm","xrn","xrq","xrr","xrt","xru","xrw","xsa","xsb","xsc","xsd","xse","xsh","xsi","xsj","xsl","xsm","xsn","xso","xsp","xsq","xsr","xss","xsu","xsv","xsy","xta","xtb","xtc","xtd","xte","xtg","xth","xti","xtj","xtl","xtm","xtn","xto","xtp","xtq","xtr","xts","xtt","xtu","xtv","xtw","xty","xtz","xua","xub","xud","xug","xuj","xul","xum","xun","xuo","xup","xur","xut","xuu","xve","xvi","xvn","xvo","xvs","xwa","xwc","xwd","xwe","xwg","xwj","xwk","xwl","xwo","xwr","xwt","xww","xxb","xxk","xxm","xxr","xxt","xya","xyb","xyj","xyk","xyl","xyt","xyy","xzh","xzm","xzp","yaa","yab","yac","yad","yae","yaf","yag","yah","yai","yaj","yak","yal","yam","yan","yao","yap","yaq","yar","yas","yat","yau","yav","yaw","yax","yay","yaz","yba","ybb","ybd","ybe","ybh","ybi","ybj","ybk","ybl","ybm","ybn","ybo","ybx","yby","ych","ycl","ycn","ycp","yda","ydd","yde","ydg","ydk","yds","yea","yec","yee","yei","yej","yel","yen","yer","yes","yet","yeu","yev","yey","yga","ygi","ygl","ygm","ygp","ygr","ygs","ygu","ygw","yha","yhd","yhl","yhs","yia","yif","yig","yih","yii","yij","yik","yil","yim","yin","yip","yiq","yir","yis","yit","yiu","yiv","yix","yiy","yiz","yka","ykg","yki","ykk","ykl","ykm","ykn","yko","ykr","ykt","yku","yky","yla","ylb","yle","ylg","yli","yll","ylm","yln","ylo","ylr","ylu","yly","yma","ymb","ymc","ymd","yme","ymg","ymh","ymi","ymk","yml","ymm","ymn","ymo","ymp","ymq","ymr","yms","ymt","ymx","ymz","yna","ynd","yne","yng","ynh","ynk","ynl","ynn","yno","ynq","yns","ynu","yob","yog","yoi","yok","yol","yom","yon","yos","yot","yox","yoy","ypa","ypb","ypg","yph","ypk","ypm","ypn","ypo","ypp","ypz","yra","yrb","yre","yri","yrk","yrl","yrm","yrn","yro","yrs","yrw","yry","ysc","ysd","ysg","ysl","ysn","yso","ysp","ysr","yss","ysy","yta","ytl","ytp","ytw","yty","yua","yub","yuc","yud","yue","yuf","yug","yui","yuj","yuk","yul","yum","yun","yup","yuq","yur","yut","yuu","yuw","yux","yuy","yuz","yva","yvt","ywa","ywg","ywl","ywn","ywq","ywr","ywt","ywu","yww","yxa","yxg","yxl","yxm","yxu","yxy","yyr","yyu","yyz","yzg","yzk","zaa","zab","zac","zad","zae","zaf","zag","zah","zai","zaj","zak","zal","zam","zao","zap","zaq","zar","zas","zat","zau","zav","zaw","zax","zay","zaz","zbc","zbe","zbl","zbt","zbw","zca","zch","zdj","zea","zeg","zeh","zen","zga","zgb","zgh","zgm","zgn","zgr","zhb","zhd","zhi","zhn","zhw","zhx","zia","zib","zik","zil","zim","zin","zir","ziw","ziz","zka","zkb","zkd","zkg","zkh","zkk","zkn","zko","zkp","zkr","zkt","zku","zkv","zkz","zle","zlj","zlm","zln","zlq","zls","zlw","zma","zmb","zmc","zmd","zme","zmf","zmg","zmh","zmi","zmj","zmk","zml","zmm","zmn","zmo","zmp","zmq","zmr","zms","zmt","zmu","zmv","zmw","zmx","zmy","zmz","zna","znd","zne","zng","znk","zns","zoc","zoh","zom","zoo","zoq","zor","zos","zpa","zpb","zpc","zpd","zpe","zpf","zpg","zph","zpi","zpj","zpk","zpl","zpm","zpn","zpo","zpp","zpq","zpr","zps","zpt","zpu","zpv","zpw","zpx","zpy","zpz","zqe","zra","zrg","zrn","zro","zrp","zrs","zsa","zsk","zsl","zsm","zsr","zsu","zte","ztg","ztl","ztm","ztn","ztp","ztq","zts","ztt","ztu","ztx","zty","zua","zuh","zum","zun","zuy","zwa","zxx","zyb","zyg","zyj","zyn","zyp","zza","zzj"];function he(e){return ye(e)||ge(e)||be()}function be(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function ge(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function ye(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function R(){return(R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}axe.utils.validLangs=function(){"use strict";return Ie},axe._load({data:{rules:{accesskeys:{description:"Ensures every accesskey attribute value is unique",help:"accesskey attribute value must be unique"},"area-alt":{description:"Ensures <area> elements of image maps have alternate text",help:"Active <area> elements must have alternate text"},"aria-allowed-attr":{description:"Ensures ARIA attributes are allowed for an element's role",help:"Elements must only use allowed ARIA attributes"},"aria-allowed-role":{description:"Ensures role attribute has an appropriate value for the element",help:"ARIA role must be appropriate for the element"},"aria-dpub-role-fallback":{description:"Ensures unsupported DPUB roles are only used on elements with implicit fallback roles",help:"Unsupported DPUB ARIA roles should be used on elements with implicit fallback roles"},"aria-hidden-body":{description:"Ensures aria-hidden='true' is not present on the document body.",help:"aria-hidden='true' must not be present on the document body"},"aria-hidden-focus":{description:"Ensures aria-hidden elements do not contain focusable elements",help:"ARIA hidden element must not contain focusable elements"},"aria-input-field-name":{description:"Ensures every ARIA input field has an accessible name",help:"ARIA input fields have an accessible name"},"aria-required-attr":{description:"Ensures elements with ARIA roles have all required ARIA attributes",help:"Required ARIA attributes must be provided"},"aria-required-children":{description:"Ensures elements with an ARIA role that require child roles contain them",help:"Certain ARIA roles must contain particular children"},"aria-required-parent":{description:"Ensures elements with an ARIA role that require parent roles are contained by them",help:"Certain ARIA roles must be contained by particular parents"},"aria-roles":{description:"Ensures all elements with a role attribute use a valid value",help:"ARIA roles used must conform to valid values"},"aria-toggle-field-name":{description:"Ensures every ARIA toggle field has an accessible name",help:"ARIA toggle fields have an accessible name"},"aria-valid-attr-value":{description:"Ensures all ARIA attributes have valid values",help:"ARIA attributes must conform to valid values"},"aria-valid-attr":{description:"Ensures attributes that begin with aria- are valid ARIA attributes",help:"ARIA attributes must conform to valid names"},"audio-caption":{description:"Ensures <audio> elements have captions",help:"<audio> elements must have a captions track"},"autocomplete-valid":{description:"Ensure the autocomplete attribute is correct and suitable for the form field",help:"autocomplete attribute must be used correctly"},"avoid-inline-spacing":{description:"Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",help:"Inline text spacing must be adjustable with custom stylesheets"},blink:{description:"Ensures <blink> elements are not used",help:"<blink> elements are deprecated and must not be used"},"button-name":{description:"Ensures buttons have discernible text",help:"Buttons must have discernible text"},bypass:{description:"Ensures each page has at least one mechanism for a user to bypass navigation and jump straight to the content",help:"Page must have means to bypass repeated blocks"},checkboxgroup:{description:'Ensures related <input type="checkbox"> elements have a group and that the group designation is consistent',help:"Checkbox inputs with the same name attribute value must be part of a group"},"color-contrast":{description:"Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds",help:"Elements must have sufficient color contrast"},"css-orientation-lock":{description:"Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations",help:"CSS Media queries are not used to lock display orientation"},"definition-list":{description:"Ensures <dl> elements are structured correctly",help:"<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script> or <template> elements"},dlitem:{description:"Ensures <dt> and <dd> elements are contained by a <dl>",help:"<dt> and <dd> elements must be contained by a <dl>"},"document-title":{description:"Ensures each HTML document contains a non-empty <title> element",help:"Documents must have <title> element to aid in navigation"},"duplicate-id-active":{description:"Ensures every id attribute value of active elements is unique",help:"IDs of active elements must be unique"},"duplicate-id-aria":{description:"Ensures every id attribute value used in ARIA and in labels is unique",help:"IDs used in ARIA and labels must be unique"},"duplicate-id":{description:"Ensures every id attribute value is unique",help:"id attribute value must be unique"},"empty-heading":{description:"Ensures headings have discernible text",help:"Headings must not be empty"},"focus-order-semantics":{description:"Ensures elements in the focus order have an appropriate role",help:"Elements in the focus order need a role appropriate for interactive content"},"form-field-multiple-labels":{description:"Ensures form field does not have multiple label elements",help:"Form field must not have multiple label elements"},"frame-tested":{description:"Ensures <iframe> and <frame> elements contain the axe-core script",help:"Frames must be tested with axe-core"},"frame-title-unique":{description:"Ensures <iframe> and <frame> elements contain a unique title attribute",help:"Frames must have a unique title attribute"},"frame-title":{description:"Ensures <iframe> and <frame> elements contain a non-empty title attribute",help:"Frames must have title attribute"},"heading-order":{description:"Ensures the order of headings is semantically correct",help:"Heading levels should only increase by one"},"hidden-content":{description:"Informs users about hidden content.",help:"Hidden content on the page cannot be analyzed"},"html-has-lang":{description:"Ensures every HTML document has a lang attribute",help:"<html> element must have a lang attribute"},"html-lang-valid":{description:"Ensures the lang attribute of the <html> element has a valid value",help:"<html> element must have a valid value for the lang attribute"},"html-xml-lang-mismatch":{description:"Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",help:"HTML elements with lang and xml:lang must have the same base language"},"image-alt":{description:"Ensures <img> elements have alternate text or a role of none or presentation",help:"Images must have alternate text"},"image-redundant-alt":{description:"Ensure image alternative is not repeated as text",help:"Alternative text of images should not be repeated as text"},"input-button-name":{description:"Ensures input buttons have discernible text",help:"Input buttons must have discernible text"},"input-image-alt":{description:'Ensures <input type="image"> elements have alternate text',help:"Image buttons must have alternate text"},"label-content-name-mismatch":{description:"Ensures that elements labelled through their content must have their visible text as part of their accessible name",help:"Elements must have their visible text as part of their accessible name"},"label-title-only":{description:"Ensures that every form element is not solely labeled using the title or aria-describedby attributes",help:"Form elements should have a visible label"},label:{description:"Ensures every form element has a label",help:"Form elements must have labels"},"landmark-banner-is-top-level":{description:"Ensures the banner landmark is at top level",help:"Banner landmark must not be contained in another landmark"},"landmark-complementary-is-top-level":{description:"Ensures the complementary landmark or aside is at top level",help:"Aside must not be contained in another landmark"},"landmark-contentinfo-is-top-level":{description:"Ensures the contentinfo landmark is at top level",help:"Contentinfo landmark must not be contained in another landmark"},"landmark-main-is-top-level":{description:"Ensures the main landmark is at top level",help:"Main landmark must not be contained in another landmark"},"landmark-no-duplicate-banner":{description:"Ensures the document has at most one banner landmark",help:"Document must not have more than one banner landmark"},"landmark-no-duplicate-contentinfo":{description:"Ensures the document has at most one contentinfo landmark",help:"Document must not have more than one contentinfo landmark"},"landmark-one-main":{description:"Ensures the document has only one main landmark and each iframe in the page has at most one main landmark",help:"Document must have one main landmark"},"landmark-unique":{help:"Ensures landmarks are unique",description:"Landmarks must have a unique role or role/label/title (i.e. accessible name) combination"},"layout-table":{description:"Ensures presentational <table> elements do not use <th>, <caption> elements or the summary attribute",help:"Layout tables must not use data table elements"},"link-in-text-block":{description:"Links can be distinguished without relying on color",help:"Links must be distinguished from surrounding text in a way that does not rely on color"},"link-name":{description:"Ensures links have discernible text",help:"Links must have discernible text"},list:{description:"Ensures that lists are structured correctly",help:"<ul> and <ol> must only directly contain <li>, <script> or <template> elements"},listitem:{description:"Ensures <li> elements are used semantically",help:"<li> elements must be contained in a <ul> or <ol>"},marquee:{description:"Ensures <marquee> elements are not used",help:"<marquee> elements are deprecated and must not be used"},"meta-refresh":{description:'Ensures <meta http-equiv="refresh"> is not used',help:"Timed refresh must not exist"},"meta-viewport-large":{description:'Ensures <meta name="viewport"> can scale a significant amount',help:"Users should be able to zoom and scale the text up to 500%"},"meta-viewport":{description:'Ensures <meta name="viewport"> does not disable text scaling and zooming',help:"Zooming and scaling must not be disabled"},"object-alt":{description:"Ensures <object> elements have alternate text",help:"<object> elements must have alternate text"},"p-as-heading":{description:"Ensure p elements are not used to style headings",help:"Bold, italic text and font-size are not used to style p elements as a heading"},"page-has-heading-one":{description:"Ensure that the page, or at least one of its frames contains a level-one heading",help:"Page must contain a level-one heading"},radiogroup:{description:'Ensures related <input type="radio"> elements have a group and that the group designation is consistent',help:"Radio inputs with the same name attribute value must be part of a group"},region:{description:"Ensures all page content is contained by landmarks",help:"All page content must be contained by landmarks"},"role-img-alt":{description:"Ensures [role='img'] elements have alternate text",help:"[role='img'] elements have an alternative text"},"scope-attr-valid":{description:"Ensures the scope attribute is used correctly on tables",help:"scope attribute should be used correctly"},"scrollable-region-focusable":{description:"Elements that have scrollable content should be accessible by keyboard",help:"Ensure that scrollable region has keyboard access"},"server-side-image-map":{description:"Ensures that server-side image maps are not used",help:"Server-side image maps must not be used"},"skip-link":{description:"Ensure all skip links have a focusable target",help:"The skip-link target should exist and be focusable"},tabindex:{description:"Ensures tabindex attribute values are not greater than 0",help:"Elements should not have tabindex greater than zero"},"table-duplicate-name":{description:"Ensure that tables do not have the same summary and caption",help:"The <caption> element should not contain the same text as the summary attribute"},"table-fake-caption":{description:"Ensure that tables with a caption use the <caption> element.",help:"Data or header cells should not be used to give caption to a data table."},"td-has-header":{description:"Ensure that each non-empty data cell in a large table has one or more table headers",help:"All non-empty td element in table larger than 3 by 3 must have an associated table header"},"td-headers-attr":{description:"Ensure that each cell in a table using the headers refers to another cell in that table",help:"All cells in a table element that use the headers attribute must only refer to other cells of that same table"},"th-has-data-cells":{description:"Ensure that each table header in a data table refers to data cells",help:"All th elements and elements with role=columnheader/rowheader must have data cells they describe"},"valid-lang":{description:"Ensures lang attributes have valid values",help:"lang attribute must have a valid value"},"video-caption":{description:"Ensures <video> elements have captions",help:"<video> elements must have captions"},"video-description":{description:"Ensures <video> elements have audio descriptions",help:"<video> elements must have an audio description track"}},checks:{accesskeys:{impact:"serious",messages:{pass:function(e){return"Accesskey attribute value is unique"},fail:function(e){return"Document has multiple elements with the same accesskey"}}},"non-empty-alt":{impact:"critical",messages:{pass:function(e){return"Element has a non-empty alt attribute"},fail:function(e){return"Element has no alt attribute or the alt attribute is empty"}}},"non-empty-title":{impact:"serious",messages:{pass:function(e){return"Element has a title attribute"},fail:function(e){return"Element has no title attribute or the title attribute is empty"}}},"aria-label":{impact:"serious",messages:{pass:function(e){return"aria-label attribute exists and is not empty"},fail:function(e){return"aria-label attribute does not exist or is empty"}}},"aria-labelledby":{impact:"serious",messages:{pass:function(e){return"aria-labelledby attribute exists and references elements that are visible to screen readers"},fail:function(e){return"aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"}}},"aria-allowed-attr":{impact:"critical",messages:{pass:function(e){return"ARIA attributes are used correctly for the defined role"},fail:function(e){var t="ARIA attribute"+(e.data&&1<e.data.length?"s are":" is")+" not allowed:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-unsupported-attr":{impact:"critical",messages:{pass:function(e){return"ARIA attribute is supported"},fail:function(e){var t="ARIA attribute is not widely supported in screen readers and assistive technologies: ",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-allowed-role":{impact:"minor",messages:{pass:function(e){return"ARIA role is allowed for given element"},fail:function(e){return"ARIA role"+(e.data&&1<e.data.length?"s":"")+" "+e.data.join(", ")+" "+(e.data&&1<e.data.length?"are":" is")+" not allowed for given element"},incomplete:function(e){return"ARIA role"+(e.data&&1<e.data.length?"s":"")+" "+e.data.join(", ")+" must be removed when the element is made visible, as "+(e.data&&1<e.data.length?"they are":"it is")+" not allowed for the element"}}},"implicit-role-fallback":{impact:"moderate",messages:{pass:function(e){return"Element’s implicit ARIA role is an appropriate fallback"},fail:function(e){return"Element’s implicit ARIA role is not a good fallback for the (unsupported) role"}}},"aria-hidden-body":{impact:"critical",messages:{pass:function(e){return"No aria-hidden attribute is present on document body"},fail:function(e){return"aria-hidden=true should not be present on the document body"}}},"focusable-disabled":{impact:"serious",messages:{pass:function(e){return"No focusable elements contained within element"},fail:function(e){return"Focusable content should be disabled or be removed from the DOM"}}},"focusable-not-tabbable":{impact:"serious",messages:{pass:function(e){return"No focusable elements contained within element"},fail:function(e){return"Focusable content should have tabindex='-1' or be removed from the DOM"}}},"no-implicit-explicit-label":{impact:"moderate",messages:{pass:function(e){return"There is no mismatch between a <label> and accessible name"},incomplete:function(e){return"Check that the <label> does not need be part of the ARIA "+e.data+" field's name"}}},"aria-required-attr":{impact:"critical",messages:{pass:function(e){return"All required ARIA attributes are present"},fail:function(e){var t="Required ARIA attribute"+(e.data&&1<e.data.length?"s":"")+" not present:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-required-children":{impact:"critical",messages:{pass:function(e){return"Required ARIA children are present"},fail:function(e){var t="Required ARIA "+(e.data&&1<e.data.length?"children":"child")+" role not present:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t},incomplete:function(e){var t="Expecting ARIA "+(e.data&&1<e.data.length?"children":"child")+" role to be added:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-required-parent":{impact:"critical",messages:{pass:function(e){return"Required ARIA parent role present"},fail:function(e){var t="Required ARIA parent"+(e.data&&1<e.data.length?"s":"")+" role not present:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},invalidrole:{impact:"critical",messages:{pass:function(e){return"ARIA role is valid"},fail:function(e){return"Role must be one of the valid ARIA roles"}}},abstractrole:{impact:"serious",messages:{pass:function(e){return"Abstract roles are not used"},fail:function(e){return"Abstract roles cannot be directly used"}}},unsupportedrole:{impact:"critical",messages:{pass:function(e){return"ARIA role is supported"},fail:function(e){var t="The role used is not widely supported in screen readers and assistive technologies: ",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"has-visible-text":{impact:"minor",messages:{pass:function(e){return"Element has text that is visible to screen readers"},fail:function(e){return"Element does not have text that is visible to screen readers"}}},"aria-valid-attr-value":{impact:"critical",messages:{pass:function(e){return"ARIA attribute values are valid"},fail:function(e){var t="Invalid ARIA attribute value"+(e.data&&1<e.data.length?"s":"")+":",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t},incomplete:function(e){var t="ARIA attribute"+(e.data&&1<e.data.length?"s":"")+" element ID does not exist on the page:",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},"aria-errormessage":{impact:"critical",messages:{pass:function(e){return"Uses a supported aria-errormessage technique"},fail:function(e){var t="aria-errormessage value"+(e.data&&1<e.data.length?"s":"")+" ",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" `"+n[r+=1];return t+="` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)"}}},"aria-valid-attr":{impact:"critical",messages:{pass:function(e){return"ARIA attribute name"+(e.data&&1<e.data.length?"s":"")+" are valid"},fail:function(e){var t="Invalid ARIA attribute name"+(e.data&&1<e.data.length?"s":"")+":",n=e.data;if(n)for(var r=-1,a=n.length-1;r<a;)t+=" "+n[r+=1];return t}}},caption:{impact:"critical",messages:{pass:function(e){return"The multimedia element has a captions track"},incomplete:function(e){return"Check that captions is available for the element"}}},"autocomplete-valid":{impact:"serious",messages:{pass:function(e){return"the autocomplete attribute is correctly formatted"},fail:function(e){return"the autocomplete attribute is incorrectly formatted"}}},"autocomplete-appropriate":{impact:"serious",messages:{pass:function(e){return"the autocomplete value is on an appropriate element"},fail:function(e){return"the autocomplete value is inappropriate for this type of input"}}},"avoid-inline-spacing":{impact:"serious",messages:{pass:function(e){return"No inline styles with '!important' that affect text spacing has been specified"},fail:function(e){return"Remove '!important' from inline style"+(e.data&&1<e.data.length?"s":"")+" "+e.data.join(", ")+", as overriding this is not supported by most browsers"}}},"is-on-screen":{impact:"serious",messages:{pass:function(e){return"Element is not visible"},fail:function(e){return"Element is visible"}}},"button-has-visible-text":{impact:"critical",messages:{pass:function(e){return"Element has inner text that is visible to screen readers"},fail:function(e){return"Element does not have inner text that is visible to screen readers"}}},"role-presentation":{impact:"minor",messages:{pass:function(e){return'Element\'s default semantics were overriden with role="presentation"'},fail:function(e){return'Element\'s default semantics were not overridden with role="presentation"'}}},"role-none":{impact:"minor",messages:{pass:function(e){return'Element\'s default semantics were overriden with role="none"'},fail:function(e){return'Element\'s default semantics were not overridden with role="none"'}}},"internal-link-present":{impact:"serious",messages:{pass:function(e){return"Valid skip link found"},fail:function(e){return"No valid skip link found"}}},"header-present":{impact:"serious",messages:{pass:function(e){return"Page has a header"},fail:function(e){return"Page does not have a header"}}},landmark:{impact:"serious",messages:{pass:function(e){return"Page has a landmark region"},fail:function(e){return"Page does not have a landmark region"}}},"group-labelledby":{impact:"critical",messages:{pass:function(e){return'Elements with the name "'+e.data.name+'" have both a shared label, and a unique label, referenced through aria-labelledby'},fail:function(e){var t="",n=e.data&&e.data.failureCode;return t+='Elements with the name "'+e.data.name+'" do not all have ',t+="no-shared-label"===n?"a shared label":"no-unique-label"===n?"a unique label":"both a shared label, and a unique label",t+=", referenced through aria-labelledby"}}},fieldset:{impact:"critical",messages:{pass:function(e){return"Element is contained in a fieldset"},fail:function(e){var t="",n=e.data&&e.data.failureCode;return t+="no-legend"===n?"Fieldset does not have a legend as its first child":"empty-legend"===n?"Legend does not have text that is visible to screen readers":"mixed-inputs"===n?"Fieldset contains unrelated inputs":"no-group-label"===n?"ARIA group does not have aria-label or aria-labelledby":"group-mixed-inputs"===n?"ARIA group contains unrelated inputs":"Element does not have a containing fieldset or ARIA group"}}},"color-contrast":{impact:"serious",messages:{pass:function(e){return"Element has sufficient color contrast of "+e.data.contrastRatio},fail:function(e){return"Element has insufficient color contrast of "+e.data.contrastRatio+" (foreground color: "+e.data.fgColor+", background color: "+e.data.bgColor+", font size: "+e.data.fontSize+", font weight: "+e.data.fontWeight+"). Expected contrast ratio of "+e.data.expectedContrastRatio},incomplete:{bgImage:"Element's background color could not be determined due to a background image",bgGradient:"Element's background color could not be determined due to a background gradient",imgNode:"Element's background color could not be determined because element contains an image node",bgOverlap:"Element's background color could not be determined because it is overlapped by another element",fgAlpha:"Element's foreground color could not be determined because of alpha transparency",elmPartiallyObscured:"Element's background color could not be determined because it's partially obscured by another element",elmPartiallyObscuring:"Element's background color could not be determined because it partially overlaps other elements",outsideViewport:"Element's background color could not be determined because it's outside the viewport",equalRatio:"Element has a 1:1 contrast ratio with the background",shortTextContent:"Element content is too short to determine if it is actual text content",default:"Unable to determine contrast ratio"}}},"css-orientation-lock":{impact:"serious",messages:{pass:function(e){return"Display is operable, and orientation lock does not exist"},fail:function(e){return"CSS Orientation lock is applied, and makes display inoperable"},incomplete:function(e){return"CSS Orientation lock cannot be determined"}}},"structured-dlitems":{impact:"serious",messages:{pass:function(e){return"When not empty, element has both <dt> and <dd> elements"},fail:function(e){return"When not empty, element does not have at least one <dt> element followed by at least one <dd> element"}}},"only-dlitems":{impact:"serious",messages:{pass:function(e){return"List element only has direct children that are allowed inside <dt> or <dd> elements"},fail:function(e){return"List element has direct children that are not allowed inside <dt> or <dd> elements"}}},dlitem:{impact:"serious",messages:{pass:function(e){return"Description list item has a <dl> parent element"},fail:function(e){return"Description list item does not have a <dl> parent element"}}},"doc-has-title":{impact:"serious",messages:{pass:function(e){return"Document has a non-empty <title> element"},fail:function(e){return"Document does not have a non-empty <title> element"}}},"duplicate-id-active":{impact:"serious",messages:{pass:function(e){return"Document has no active elements that share the same id attribute"},fail:function(e){return"Document has active elements with the same id attribute: "+e.data}}},"duplicate-id-aria":{impact:"critical",messages:{pass:function(e){return"Document has no elements referenced with ARIA or labels that share the same id attribute"},fail:function(e){return"Document has multiple elements referenced with ARIA with the same id attribute: "+e.data}}},"duplicate-id":{impact:"minor",messages:{pass:function(e){return"Document has no static elements that share the same id attribute"},fail:function(e){return"Document has multiple static elements with the same id attribute"}}},"has-widget-role":{impact:"minor",messages:{pass:function(e){return"Element has a widget role."},fail:function(e){return"Element does not have a widget role."}}},"valid-scrollable-semantics":{impact:"minor",messages:{pass:function(e){return"Element has valid semantics for an element in the focus order."},fail:function(e){return"Element has invalid semantics for an element in the focus order."}}},"multiple-label":{impact:"moderate",messages:{pass:function(e){return"Form field does not have multiple label elements"},fail:function(e){return"Multiple label elements is not widely supported in assistive technologies"}}},"frame-tested":{impact:"critical",messages:{pass:function(e){return"The iframe was tested with axe-core"},fail:function(e){return"The iframe could not be tested with axe-core"},incomplete:function(e){return"The iframe still has to be tested with axe-core"}}},"unique-frame-title":{impact:"serious",messages:{pass:function(e){return"Element's title attribute is unique"},fail:function(e){return"Element's title attribute is not unique"}}},"heading-order":{impact:"moderate",messages:{pass:function(e){return"Heading order valid"},fail:function(e){return"Heading order invalid"}}},"hidden-content":{impact:"minor",messages:{pass:function(e){return"All content on the page has been analyzed."},fail:function(e){return"There were problems analyzing the content on this page."},incomplete:function(e){return"There is hidden content on the page that was not analyzed. You will need to trigger the display of this content in order to analyze it."}}},"has-lang":{impact:"serious",messages:{pass:function(e){return"The <html> element has a lang attribute"},fail:function(e){return"The <html> element does not have a lang attribute"}}},"valid-lang":{impact:"serious",messages:{pass:function(e){return"Value of lang attribute is included in the list of valid languages"},fail:function(e){return"Value of lang attribute not included in the list of valid languages"}}},"xml-lang-mismatch":{impact:"moderate",messages:{pass:function(e){return"Lang and xml:lang attributes have the same base language"},fail:function(e){return"Lang and xml:lang attributes do not have the same base language"}}},"has-alt":{impact:"critical",messages:{pass:function(e){return"Element has an alt attribute"},fail:function(e){return"Element does not have an alt attribute"}}},"alt-space-value":{impact:"critical",messages:{pass:function(e){return"Element has a valid alt attribute value"},fail:function(e){return"Element has an alt attribute containing only a space character, which is not ignored by all screen readers"}}},"duplicate-img-label":{impact:"minor",messages:{pass:function(e){return"Element does not duplicate existing text in <img> alt text"},fail:function(e){return"Element contains <img> element with alt text that duplicates existing text"}}},"non-empty-if-present":{impact:"critical",messages:{pass:function(e){var t="Element ";return e.data?t+="has a non-empty value attribute":t+="does not have a value attribute",t},fail:function(e){return"Element has a value attribute and the value attribute is empty"}}},"non-empty-value":{impact:"critical",messages:{pass:function(e){return"Element has a non-empty value attribute"},fail:function(e){return"Element has no value attribute or the value attribute is empty"}}},"label-content-name-mismatch":{impact:"serious",messages:{pass:function(e){return"Element contains visible text as part of it's accessible name"},fail:function(e){return"Text inside the element is not included in the accessible name"}}},"title-only":{impact:"serious",messages:{pass:function(e){return"Form element does not solely use title attribute for its label"},fail:function(e){return"Only title used to generate label for form element"}}},"implicit-label":{impact:"critical",messages:{pass:function(e){return"Form element has an implicit (wrapped) <label>"},fail:function(e){return"Form element does not have an implicit (wrapped) <label>"}}},"explicit-label":{impact:"critical",messages:{pass:function(e){return"Form element has an explicit <label>"},fail:function(e){return"Form element does not have an explicit <label>"}}},"help-same-as-label":{impact:"minor",messages:{pass:function(e){return"Help text (title or aria-describedby) does not duplicate label text"},fail:function(e){return"Help text (title or aria-describedby) text is the same as the label text"}}},"hidden-explicit-label":{impact:"critical",messages:{pass:function(e){return"Form element has a visible explicit <label>"},fail:function(e){return"Form element has explicit <label> that is hidden"}}},"landmark-is-top-level":{impact:"moderate",messages:{pass:function(e){return"The "+e.data.role+" landmark is at the top level."},fail:function(e){return"The "+e.data.role+" landmark is contained in another landmark."}}},"page-no-duplicate-banner":{impact:"moderate",messages:{pass:function(e){return"Document does not have more than one banner landmark"},fail:function(e){return"Document has more than one banner landmark"}}},"page-no-duplicate-contentinfo":{impact:"moderate",messages:{pass:function(e){return"Document does not have more than one contentinfo landmark"},fail:function(e){return"Document has more than one contentinfo landmark"}}},"page-has-main":{impact:"moderate",messages:{pass:function(e){return"Document has at least one main landmark"},fail:function(e){return"Document does not have a main landmark"}}},"page-no-duplicate-main":{impact:"moderate",messages:{pass:function(e){return"Document does not have more than one main landmark"},fail:function(e){return"Document has more than one main landmark"}}},"landmark-is-unique":{impact:"moderate",messages:{pass:function(e){return"Landmarks must have a unique role or role/label/title (i.e. accessible name) combination"},fail:function(e){return"The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable"}}},"has-th":{impact:"serious",messages:{pass:function(e){return"Layout table does not use <th> elements"},fail:function(e){return"Layout table uses <th> elements"}}},"has-caption":{impact:"serious",messages:{pass:function(e){return"Layout table does not use <caption> element"},fail:function(e){return"Layout table uses <caption> element"}}},"has-summary":{impact:"serious",messages:{pass:function(e){return"Layout table does not use summary attribute"},fail:function(e){return"Layout table uses summary attribute"}}},"link-in-text-block":{impact:"serious",messages:{pass:function(e){return"Links can be distinguished from surrounding text in some way other than by color"},fail:function(e){return"Links need to be distinguished from surrounding text in some way other than by color"},incomplete:{bgContrast:"Element's contrast ratio could not be determined. Check for a distinct hover/focus style",bgImage:"Element's contrast ratio could not be determined due to a background image",bgGradient:"Element's contrast ratio could not be determined due to a background gradient",imgNode:"Element's contrast ratio could not be determined because element contains an image node",bgOverlap:"Element's contrast ratio could not be determined because of element overlap",default:"Unable to determine contrast ratio"}}},"focusable-no-name":{impact:"serious",messages:{pass:function(e){return"Element is not in tab order or has accessible text"},fail:function(e){return"Element is in tab order and does not have accessible text"}}},"only-listitems":{impact:"serious",messages:{pass:function(e){return"List element only has direct children that are allowed inside <li> elements"},fail:function(e){return"List element has direct children that are not allowed inside <li> elements"}}},listitem:{impact:"serious",messages:{pass:function(e){return'List item has a <ul>, <ol> or role="list" parent element'},fail:function(e){return'List item does not have a <ul>, <ol> or role="list" parent element'}}},"meta-refresh":{impact:"critical",messages:{pass:function(e){return"<meta> tag does not immediately refresh the page"},fail:function(e){return"<meta> tag forces timed refresh of page"}}},"meta-viewport-large":{impact:"minor",messages:{pass:function(e){return"<meta> tag does not prevent significant zooming on mobile devices"},fail:function(e){return"<meta> tag limits zooming on mobile devices"}}},"meta-viewport":{impact:"critical",messages:{pass:function(e){return"<meta> tag does not disable zooming on mobile devices"},fail:function(e){return e.data+" on <meta> tag disables zooming on mobile devices"}}},"p-as-heading":{impact:"serious",messages:{pass:function(e){return"<p> elements are not styled as headings"},fail:function(e){return"Heading elements should be used instead of styled p elements"}}},"page-has-heading-one":{impact:"moderate",messages:{pass:function(e){return"Page has at least one level-one heading"},fail:function(e){return"Page must have a level-one heading"}}},region:{impact:"moderate",messages:{pass:function(e){return"All page content is contained by landmarks"},fail:function(e){return"Some page content is not contained by landmarks"}}},"html5-scope":{impact:"moderate",messages:{pass:function(e){return"Scope attribute is only used on table header elements (<th>)"},fail:function(e){return"In HTML 5, scope attributes may only be used on table header elements (<th>)"}}},"scope-value":{impact:"critical",messages:{pass:function(e){return"Scope attribute is used correctly"},fail:function(e){return"The value of the scope attribute may only be 'row' or 'col'"}}},"focusable-content":{impact:"moderate",messages:{pass:function(e){return"Element contains focusable elements"},fail:function(e){return"Element should have focusable content"}}},"focusable-element":{impact:"moderate",messages:{pass:function(e){return"Element is focusable"},fail:function(e){return"Element should be focusable"}}},exists:{impact:"minor",messages:{pass:function(e){return"Element does not exist"},fail:function(e){return"Element exists"}}},"skip-link":{impact:"moderate",messages:{pass:function(e){return"Skip link target exists"},incomplete:function(e){return"Skip link target should become visible on activation"},fail:function(e){return"No skip link target"}}},tabindex:{impact:"serious",messages:{pass:function(e){return"Element does not have a tabindex greater than 0"},fail:function(e){return"Element has a tabindex greater than 0"}}},"same-caption-summary":{impact:"minor",messages:{pass:function(e){return"Content of summary attribute and <caption> are not duplicated"},fail:function(e){return"Content of summary attribute and <caption> element are identical"}}},"caption-faked":{impact:"serious",messages:{pass:function(e){return"The first row of a table is not used as a caption"},fail:function(e){return"The first row of the table should be a caption instead of a table cell"}}},"td-has-header":{impact:"critical",messages:{pass:function(e){return"All non-empty data cells have table headers"},fail:function(e){return"Some non-empty data cells do not have table headers"}}},"td-headers-attr":{impact:"serious",messages:{pass:function(e){return"The headers attribute is exclusively used to refer to other cells in the table"},fail:function(e){return"The headers attribute is not exclusively used to refer to other cells in the table"}}},"th-has-data-cells":{impact:"serious",messages:{pass:function(e){return"All table header cells refer to data cells"},fail:function(e){return"Not all table header cells refer to data cells"},incomplete:function(e){return"Table data cells are missing or empty"}}},description:{impact:"critical",messages:{pass:function(e){return"The multimedia element has an audio description track"},incomplete:function(e){return"Check that audio description is available for the element"}}}},failureSummaries:{any:{failureMessage:function(e){var t="Fix any of the following:",n=e;if(n)for(var r=-1,a=n.length-1;r<a;)t+="\n  "+n[r+=1].split("\n").join("\n  ");return t}},none:{failureMessage:function(e){var t="Fix all of the following:",n=e;if(n)for(var r=-1,a=n.length-1;r<a;)t+="\n  "+n[r+=1].split("\n").join("\n  ");return t}}},incompleteFallbackMessage:function(e){return"axe couldn't tell the reason. Time to break out the element inspector!"}},rules:[{id:"accesskeys",selector:"[accesskey]",excludeHidden:!1,tags:["best-practice","cat.keyboard"],all:[],any:[],none:["accesskeys"]},{id:"area-alt",selector:"map area[href]",excludeHidden:!1,tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["non-empty-alt","non-empty-title","aria-label","aria-labelledby"],none:[]},{id:"aria-allowed-attr",matches:function(e,t,n){var r=/^aria-/;if(e.hasAttributes())for(var a=axe.utils.getNodeAttributes(e),o=0,i=a.length;o<i;o++)if(r.test(a[o].name))return!0;return!1},tags:["cat.aria","wcag2a","wcag412"],all:[],any:["aria-allowed-attr"],none:["aria-unsupported-attr"]},{id:"aria-allowed-role",excludeHidden:!1,selector:"[role]",matches:function(e,t,n){return null!==axe.commons.aria.getRole(e,{noImplicit:!0,dpub:!0,fallback:!0})},tags:["cat.aria","best-practice"],all:[],any:[{options:{allowImplicit:!0,ignoredTags:[]},id:"aria-allowed-role"}],none:[]},{id:"aria-dpub-role-fallback",selector:"[role]",matches:function(e,t,n){var r=e.getAttribute("role");return["doc-backlink","doc-biblioentry","doc-biblioref","doc-cover","doc-endnote","doc-glossref","doc-noteref"].includes(r)},tags:["cat.aria","wcag2a","wcag131"],all:["implicit-role-fallback"],any:[],none:[]},{id:"aria-hidden-body",selector:"body",excludeHidden:!1,tags:["cat.aria","wcag2a","wcag412"],all:[],any:["aria-hidden-body"],none:[]},{id:"aria-hidden-focus",selector:'[aria-hidden="true"]',matches:function(e,t,n){var r=axe.commons.dom.getComposedParent;return function e(t){return!t||"true"!==t.getAttribute("aria-hidden")&&e(r(t))}(r(e))},excludeHidden:!1,tags:["cat.name-role-value","wcag2a","wcag412","wcag131"],all:["focusable-disabled","focusable-not-tabbable"],any:[],none:[]},{id:"aria-input-field-name",selector:'[role="combobox"], [role="listbox"], [role="searchbox"], [role="slider"], [role="spinbutton"], [role="textbox"]',matches:function(e,t,n){var r=axe.commons.aria,a=e.nodeName.toUpperCase(),o=r.getRole(e,{noImplicit:!0});return("AREA"!==a||!e.getAttribute("href"))&&(!["INPUT","SELECT","TEXTAREA"].includes(a)&&("IMG"!==a&&("img"!==o||"SVG"===a)&&("BUTTON"!==a&&"button"!==o&&("combobox"!==o||!axe.utils.querySelectorAll(t,'input:not([type="hidden"])').length))))},tags:["wcag2a","wcag412"],all:[],any:["aria-label","aria-labelledby","non-empty-title"],none:["no-implicit-explicit-label"]},{id:"aria-required-attr",selector:"[role]",tags:["cat.aria","wcag2a","wcag412"],all:[],any:["aria-required-attr"],none:[]},{id:"aria-required-children",selector:"[role]",tags:["cat.aria","wcag2a","wcag131"],all:[],any:[{options:{reviewEmpty:["doc-bibliography","doc-endnotes","grid","list","listbox","table","tablist","tree","treegrid","rowgroup"]},id:"aria-required-children"}],none:[]},{id:"aria-required-parent",selector:"[role]",tags:["cat.aria","wcag2a","wcag131"],all:[],any:["aria-required-parent"],none:[]},{id:"aria-roles",selector:"[role]",tags:["cat.aria","wcag2a","wcag412"],all:[],any:[],none:["invalidrole","abstractrole","unsupportedrole"]},{id:"aria-toggle-field-name",selector:'[role="checkbox"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="radio"], [role="switch"]',matches:function(e,t,n){var r=axe.commons.aria,a=e.nodeName.toUpperCase(),o=r.getRole(e,{noImplicit:!0});return("AREA"!==a||!e.getAttribute("href"))&&(!["INPUT","SELECT","TEXTAREA"].includes(a)&&("IMG"!==a&&("img"!==o||"SVG"===a)&&("BUTTON"!==a&&"button"!==o&&("combobox"!==o||!axe.utils.querySelectorAll(t,'input:not([type="hidden"])').length))))},tags:["wcag2a","wcag412"],all:[],any:["aria-label","aria-labelledby","non-empty-title","has-visible-text"],none:["no-implicit-explicit-label"]},{id:"aria-valid-attr-value",matches:function(e,t,n){var r=/^aria-/;if(e.hasAttributes())for(var a=axe.utils.getNodeAttributes(e),o=0,i=a.length;o<i;o++)if(r.test(a[o].name))return!0;return!1},tags:["cat.aria","wcag2a","wcag412"],all:[{options:[],id:"aria-valid-attr-value"},"aria-errormessage"],any:[],none:[]},{id:"aria-valid-attr",matches:function(e,t,n){var r=/^aria-/;if(e.hasAttributes())for(var a=axe.utils.getNodeAttributes(e),o=0,i=a.length;o<i;o++)if(r.test(a[o].name))return!0;return!1},tags:["cat.aria","wcag2a","wcag412"],all:[],any:[{options:[],id:"aria-valid-attr"}],none:[]},{id:"audio-caption",selector:"audio",enabled:!1,excludeHidden:!1,tags:["cat.time-and-media","wcag2a","wcag121","section508","section508.22.a"],all:[],any:[],none:["caption"]},{id:"autocomplete-valid",matches:function(e,t,n){var r=axe.commons,a=r.text,o=r.aria,i=r.dom,u=t.attr("autocomplete");if(!u||""===a.sanitize(u))return!1;var s=t.props.nodeName;if(!1===["textarea","input","select"].includes(s))return!1;if("input"===s&&["submit","reset","button","hidden"].includes(t.props.type))return!1;var l=t.attr("aria-disabled")||"false";if(t.hasAttr("disabled")||"true"===l.toLowerCase())return!1;var c=t.attr("role"),d=t.attr("tabindex");if("-1"===d&&c){var m=o.lookupTable.role[c];if(void 0===m||"widget"!==m.type)return!1}return!("-1"===d&&t.actualNode&&!i.isVisible(t.actualNode,!1)&&!i.isVisible(t.actualNode,!0))},tags:["cat.forms","wcag21aa","wcag135"],all:["autocomplete-valid","autocomplete-appropriate"],any:[],none:[]},{id:"avoid-inline-spacing",selector:"[style]",tags:["wcag21aa","wcag1412"],all:["avoid-inline-spacing"],any:[],none:[]},{id:"blink",selector:"blink",excludeHidden:!1,tags:["cat.time-and-media","wcag2a","wcag222","section508","section508.22.j"],all:[],any:[],none:["is-on-screen"]},{id:"button-name",selector:'button, [role="button"]',tags:["cat.name-role-value","wcag2a","wcag412","section508","section508.22.a"],all:[],any:["button-has-visible-text","aria-label","aria-labelledby","role-presentation","role-none","non-empty-title"],none:[]},{id:"bypass",selector:"html",pageLevel:!0,matches:function(e,t,n){return!!e.querySelector("a[href]")},tags:["cat.keyboard","wcag2a","wcag241","section508","section508.22.o"],all:[],any:["internal-link-present","header-present","landmark"],none:[]},{id:"checkboxgroup",selector:"input[type=checkbox][name]",tags:["cat.forms","best-practice"],all:[],any:["group-labelledby","fieldset"],none:[]},{id:"color-contrast",matches:function(e,t,n){var r=e.nodeName.toUpperCase(),a=e.type;if("true"===e.getAttribute("aria-disabled")||axe.commons.dom.findUpVirtual(t,'[aria-disabled="true"]'))return!1;if("INPUT"===r)return-1===["hidden","range","color","checkbox","radio","image"].indexOf(a)&&!e.disabled;if("SELECT"===r)return!!e.options.length&&!e.disabled;if("TEXTAREA"===r)return!e.disabled;if("OPTION"===r)return!1;if("BUTTON"===r&&e.disabled||axe.commons.dom.findUpVirtual(t,"button[disabled]"))return!1;if("FIELDSET"===r&&e.disabled||axe.commons.dom.findUpVirtual(t,"fieldset[disabled]"))return!1;var o=axe.commons.dom.findUpVirtual(t,"label");if("LABEL"===r||o){var i=e,u=t;o&&(i=o,u=axe.utils.getNodeFromTree(o));var s=axe.commons.dom.getRootNode(i);if((l=i.htmlFor&&s.getElementById(i.htmlFor))&&l.disabled)return!1;if((l=axe.utils.querySelectorAll(u,'input:not([type="hidden"]):not([type="image"]):not([type="button"]):not([type="submit"]):not([type="reset"]), select, textarea')).length&&l[0].actualNode.disabled)return!1}if(e.getAttribute("id")){var l,c=axe.utils.escapeSelector(e.getAttribute("id"));if((l=axe.commons.dom.getRootNode(e).querySelector("[aria-labelledby~="+c+"]"))&&l.disabled)return!1}if(""===axe.commons.text.visibleVirtual(t,!1,!0))return!1;var d,m,p=document.createRange(),f=t.children,h=f.length;for(m=0;m<h;m++)3===(d=f[m]).actualNode.nodeType&&""!==axe.commons.text.sanitize(d.actualNode.nodeValue)&&p.selectNodeContents(d.actualNode);var b=p.getClientRects();for(h=b.length,m=0;m<h;m++)if(axe.commons.dom.visuallyOverlaps(b[m],e))return!0;return!1},excludeHidden:!1,options:{noScroll:!1},tags:["cat.color","wcag2aa","wcag143"],all:[],any:["color-contrast"],none:[]},{id:"css-orientation-lock",selector:"html",tags:["cat.structure","wcag134","wcag21aa","experimental"],all:["css-orientation-lock"],any:[],none:[],preload:!0},{id:"definition-list",selector:"dl",matches:function(e,t,n){return!e.getAttribute("role")},tags:["cat.structure","wcag2a","wcag131"],all:[],any:[],none:["structured-dlitems","only-dlitems"]},{id:"dlitem",selector:"dd, dt",matches:function(e,t,n){return!e.getAttribute("role")},tags:["cat.structure","wcag2a","wcag131"],all:[],any:["dlitem"],none:[]},{id:"document-title",selector:"html",matches:function(e,t,n){return e.ownerDocument.defaultView.self===e.ownerDocument.defaultView.top},tags:["cat.text-alternatives","wcag2a","wcag242"],all:[],any:["doc-has-title"],none:[]},{id:"duplicate-id-active",selector:"[id]",matches:function(e,t,n){var r=axe.commons,a=r.dom,o=r.aria,i=e.getAttribute("id").trim(),u='*[id="'.concat(axe.utils.escapeSelector(i),'"]');return Array.from(a.getRootNode(e).querySelectorAll(u)).some(a.isFocusable)&&!o.isAccessibleRef(e)},excludeHidden:!1,tags:["cat.parsing","wcag2a","wcag411"],all:[],any:["duplicate-id-active"],none:[]},{id:"duplicate-id-aria",selector:"[id]",matches:function(e,t,n){return axe.commons.aria.isAccessibleRef(e)},excludeHidden:!1,tags:["cat.parsing","wcag2a","wcag411"],all:[],any:["duplicate-id-aria"],none:[]},{id:"duplicate-id",selector:"[id]",matches:function(e,t,n){var r=axe.commons,a=r.dom,o=r.aria,i=e.getAttribute("id").trim(),u='*[id="'.concat(axe.utils.escapeSelector(i),'"]');return Array.from(a.getRootNode(e).querySelectorAll(u)).every(function(e){return!a.isFocusable(e)})&&!o.isAccessibleRef(e)},excludeHidden:!1,tags:["cat.parsing","wcag2a","wcag411"],all:[],any:["duplicate-id"],none:[]},{id:"empty-heading",selector:'h1, h2, h3, h4, h5, h6, [role="heading"]',matches:function(e,t,n){var r;return e.hasAttribute("role")&&(r=e.getAttribute("role").split(/\s+/i).filter(axe.commons.aria.isValidRole)),r&&0<r.length?r.includes("heading"):"heading"===axe.commons.aria.implicitRole(e)},tags:["cat.name-role-value","best-practice"],all:[],any:["has-visible-text"],none:[]},{id:"focus-order-semantics",selector:"div, h1, h2, h3, h4, h5, h6, [role=heading], p, span",matches:function(e,t,n){return axe.commons.dom.insertedIntoFocusOrder(e)},tags:["cat.keyboard","best-practice","experimental"],all:[],any:[{options:[],id:"has-widget-role"},{options:[],id:"valid-scrollable-semantics"}],none:[]},{id:"form-field-multiple-labels",selector:"input, select, textarea",matches:function(e,t,n){if("input"!==e.nodeName.toLowerCase()||!1===e.hasAttribute("type"))return!0;var r=e.getAttribute("type").toLowerCase();return!1===["hidden","image","button","submit","reset"].includes(r)},tags:["cat.forms","wcag2a","wcag332"],all:[],any:[],none:["multiple-label"]},{id:"frame-tested",selector:"frame, iframe",tags:["cat.structure","review-item","best-practice"],all:[{options:{isViolation:!1},id:"frame-tested"}],any:[],none:[]},{id:"frame-title-unique",selector:"frame[title], iframe[title]",matches:function(e,t,n){var r=e.getAttribute("title");return!(!r||!axe.commons.text.sanitize(r).trim())},tags:["cat.text-alternatives","best-practice"],all:[],any:[],none:["unique-frame-title"]},{id:"frame-title",selector:"frame, iframe",tags:["cat.text-alternatives","wcag2a","wcag241","wcag412","section508","section508.22.i"],all:[],any:["aria-label","aria-labelledby","non-empty-title","role-presentation","role-none"],none:[]},{id:"heading-order",selector:"h1, h2, h3, h4, h5, h6, [role=heading]",matches:function(e,t,n){var r;return e.hasAttribute("role")&&(r=e.getAttribute("role").split(/\s+/i).filter(axe.commons.aria.isValidRole)),r&&0<r.length?r.includes("heading"):"heading"===axe.commons.aria.implicitRole(e)},tags:["cat.semantics","best-practice"],all:[],any:["heading-order"],none:[]},{id:"hidden-content",selector:"*",excludeHidden:!1,tags:["cat.structure","experimental","review-item","best-practice"],all:[],any:["hidden-content"],none:[]},{id:"html-has-lang",selector:"html",matches:function(e,t,n){return e.ownerDocument.defaultView.self===e.ownerDocument.defaultView.top},tags:["cat.language","wcag2a","wcag311"],all:[],any:["has-lang"],none:[]},{id:"html-lang-valid",selector:"html[lang], html[xml\\:lang]",tags:["cat.language","wcag2a","wcag311"],all:[],any:[],none:["valid-lang"]},{id:"html-xml-lang-mismatch",selector:"html[lang][xml\\:lang]",matches:function(e,t,n){var r=axe.utils.getBaseLang,a=r(e.getAttribute("lang")),o=r(e.getAttribute("xml:lang"));return axe.utils.validLangs().includes(a)&&axe.utils.validLangs().includes(o)},tags:["cat.language","wcag2a","wcag311"],all:["xml-lang-mismatch"],any:[],none:[]},{id:"image-alt",selector:"img",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["has-alt","aria-label","aria-labelledby","non-empty-title","role-presentation","role-none"],none:["alt-space-value"]},{id:"image-redundant-alt",selector:"img",tags:["cat.text-alternatives","best-practice"],all:[],any:[],none:["duplicate-img-label"]},{id:"input-button-name",selector:'input[type="button"], input[type="submit"], input[type="reset"]',tags:["cat.name-role-value","wcag2a","wcag412","section508","section508.22.a"],all:[],any:["non-empty-if-present","non-empty-value","aria-label","aria-labelledby","role-presentation","role-none","non-empty-title"],none:[]},{id:"input-image-alt",selector:'input[type="image"]',tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["non-empty-alt","aria-label","aria-labelledby","non-empty-title"],none:[]},{id:"label-content-name-mismatch",matches:function(e,t,n){var r=axe.commons,a=r.aria,o=r.text,i=a.getRole(e);return!!i&&(!!a.lookupTable.rolesOfType.widget.includes(i)&&(!!a.getRolesWithNameFromContents().includes(i)&&(!(!o.sanitize(a.arialabelText(e))&&!o.sanitize(a.arialabelledbyText(e)))&&!!o.sanitize(o.visibleVirtual(t)))))},tags:["wcag21a","wcag253","experimental"],all:[],any:["label-content-name-mismatch"],none:[]},{id:"label-title-only",selector:"input, select, textarea",matches:function(e,t,n){if("input"!==e.nodeName.toLowerCase()||!1===e.hasAttribute("type"))return!0;var r=e.getAttribute("type").toLowerCase();return!1===["hidden","image","button","submit","reset"].includes(r)},tags:["cat.forms","best-practice"],all:[],any:[],none:["title-only"]},{id:"label",selector:"input, select, textarea",matches:function(e,t,n){if("input"!==e.nodeName.toLowerCase()||!1===e.hasAttribute("type"))return!0;var r=e.getAttribute("type").toLowerCase();return!1===["hidden","image","button","submit","reset"].includes(r)},tags:["cat.forms","wcag2a","wcag332","wcag131","section508","section508.22.n"],all:[],any:["aria-label","aria-labelledby","implicit-label","explicit-label","non-empty-title"],none:["help-same-as-label","hidden-explicit-label"]},{id:"landmark-banner-is-top-level",selector:"header:not([role]), [role=banner]",matches:function(e,t,n){return e.hasAttribute("role")||!axe.commons.dom.findUpVirtual(t,"article, aside, main, nav, section")},tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-complementary-is-top-level",selector:"aside:not([role]), [role=complementary]",tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-contentinfo-is-top-level",selector:"footer:not([role]), [role=contentinfo]",matches:function(e,t,n){return e.hasAttribute("role")||!axe.commons.dom.findUpVirtual(t,"article, aside, main, nav, section")},tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-main-is-top-level",selector:"main:not([role]), [role=main]",tags:["cat.semantics","best-practice"],all:[],any:["landmark-is-top-level"],none:[]},{id:"landmark-no-duplicate-banner",selector:"html",tags:["cat.semantics","best-practice"],all:[],any:[{options:{selector:"header:not([role]), [role=banner]",nativeScopeFilter:"article, aside, main, nav, section"},id:"page-no-duplicate-banner"}],none:[]},{id:"landmark-no-duplicate-contentinfo",selector:"html",tags:["cat.semantics","best-practice"],all:[],any:[{options:{selector:"footer:not([role]), [role=contentinfo]",nativeScopeFilter:"article, aside, main, nav, section"},id:"page-no-duplicate-contentinfo"}],none:[]},{id:"landmark-one-main",selector:"html",tags:["cat.semantics","best-practice"],all:[{options:{selector:"main:not([role]), [role='main']"},id:"page-has-main"},{options:{selector:"main:not([role]), [role='main']"},id:"page-no-duplicate-main"}],any:[],none:[]},{id:"landmark-unique",selector:"[role=banner], [role=complementary], [role=contentinfo], [role=main], [role=navigation], [role=region], [role=search], [role=form], form, footer, header, aside, main, nav, section",tags:["cat.semantics","best-practice"],matches:function(e,t,n){var o=["article","aside","main","nav","section"].join(",");return function(e){var t=e.actualNode,n=axe.commons.aria.getRolesByType("landmark"),r=axe.commons.aria.getRole(t);if(!r)return!1;var a=t.nodeName.toUpperCase();return"HEADER"===a||"FOOTER"===a?function(e){return!axe.commons.dom.findUpVirtual(e,o)}(e):"SECTION"!==a&&"FORM"!==a?0<=n.indexOf(r)||"region"===r:!!axe.commons.text.accessibleTextVirtual(e)}(t)&&axe.commons.dom.isVisible(e,!0)},all:[],any:["landmark-is-unique"],none:[]},{id:"layout-table",selector:"table",matches:function(e,t,n){var r=(e.getAttribute("role")||"").toLowerCase();return!(("presentation"===r||"none"===r)&&!axe.commons.dom.isFocusable(e)||axe.commons.table.isDataTable(e))},tags:["cat.semantics","wcag2a","wcag131"],all:[],any:[],none:["has-th","has-caption","has-summary"]},{id:"link-in-text-block",selector:"a[href], [role=link]",matches:function(e,t,n){var r=axe.commons.text.sanitize(e.textContent),a=e.getAttribute("role");return(!a||"link"===a)&&(!!r&&(!!axe.commons.dom.isVisible(e,!1)&&axe.commons.dom.isInTextBlock(e)))},excludeHidden:!1,tags:["cat.color","experimental","wcag2a","wcag141"],all:["link-in-text-block"],any:[],none:[]},{id:"link-name",selector:"a[href], [role=link][href]",matches:function(e,t,n){return"button"!==e.getAttribute("role")},tags:["cat.name-role-value","wcag2a","wcag412","wcag244","section508","section508.22.a"],all:[],any:["has-visible-text","aria-label","aria-labelledby","role-presentation","role-none"],none:["focusable-no-name"]},{id:"list",selector:"ul, ol",matches:function(e,t,n){return!e.getAttribute("role")},tags:["cat.structure","wcag2a","wcag131"],all:[],any:[],none:["only-listitems"]},{id:"listitem",selector:"li",matches:function(e,t,n){return!e.getAttribute("role")},tags:["cat.structure","wcag2a","wcag131"],all:[],any:["listitem"],none:[]},{id:"marquee",selector:"marquee",excludeHidden:!1,tags:["cat.parsing","wcag2a","wcag222"],all:[],any:[],none:["is-on-screen"]},{id:"meta-refresh",selector:'meta[http-equiv="refresh"]',excludeHidden:!1,tags:["cat.time","wcag2a","wcag2aaa","wcag221","wcag224","wcag325"],all:[],any:["meta-refresh"],none:[]},{id:"meta-viewport-large",selector:'meta[name="viewport"]',excludeHidden:!1,tags:["cat.sensory-and-visual-cues","best-practice"],all:[],any:[{options:{scaleMinimum:5,lowerBound:2},id:"meta-viewport-large"}],none:[]},{id:"meta-viewport",selector:'meta[name="viewport"]',excludeHidden:!1,tags:["cat.sensory-and-visual-cues","wcag2aa","wcag144"],all:[],any:[{options:{scaleMinimum:2},id:"meta-viewport"}],none:[]},{id:"object-alt",selector:"object",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["has-visible-text","aria-label","aria-labelledby","non-empty-title","role-presentation","role-none"],none:[]},{id:"p-as-heading",selector:"p",matches:function(e,t,n){var r=Array.from(e.parentNode.childNodes),a=e.textContent.trim();return!(0===a.length||2<=(a.match(/[.!?:;](?![.!?:;])/g)||[]).length)&&0!==r.slice(r.indexOf(e)+1).filter(function(e){return"P"===e.nodeName.toUpperCase()&&""!==e.textContent.trim()}).length},tags:["cat.semantics","wcag2a","wcag131","experimental"],all:[{options:{margins:[{weight:150,italic:!0},{weight:150,size:1.15},{italic:!0,size:1.15},{size:1.4}]},id:"p-as-heading"}],any:[],none:[]},{id:"page-has-heading-one",selector:"html",tags:["cat.semantics","best-practice"],all:[{options:{selector:'h1:not([role]), [role="heading"][aria-level="1"]'},id:"page-has-heading-one"}],any:[],none:[]},{id:"radiogroup",selector:"input[type=radio][name]",tags:["cat.forms","best-practice"],all:[],any:["group-labelledby","fieldset"],none:[]},{id:"region",selector:"html",pageLevel:!0,tags:["cat.keyboard","best-practice"],all:[],any:["region"],none:[]},{id:"role-img-alt",selector:"[role='img']:not(svg):not(img):not(area):not(input):not(object)",tags:["cat.text-alternatives","wcag2a","wcag111","section508","section508.22.a"],all:[],any:["aria-label","aria-labelledby","non-empty-title"],none:[]},{id:"scope-attr-valid",selector:"td[scope], th[scope]",tags:["cat.tables","best-practice"],all:["html5-scope","scope-value"],any:[],none:[]},{id:"scrollable-region-focusable",matches:function(e,t,n){var r=axe.utils.querySelectorAll,a=axe.commons.dom.hasContentVirtual;return!1!=!!axe.utils.getScroll(e,13)&&!!r(t,"*").some(function(e){return a(e,!0,!0)})},tags:["wcag2a","wcag211"],all:[],any:["focusable-content","focusable-element"],none:[]},{id:"server-side-image-map",selector:"img[ismap]",tags:["cat.text-alternatives","wcag2a","wcag211","section508","section508.22.f"],all:[],any:[],none:["exists"]},{id:"skip-link",selector:'a[href^="#"], a[href^="/#"]',matches:function(e,t,n){return axe.commons.dom.isSkipLink(e)},tags:["cat.keyboard","best-practice"],all:[],any:["skip-link"],none:[]},{id:"tabindex",selector:"[tabindex]",tags:["cat.keyboard","best-practice"],all:[],any:["tabindex"],none:[]},{id:"table-duplicate-name",selector:"table",tags:["cat.tables","best-practice"],all:[],any:[],none:["same-caption-summary"]},{id:"table-fake-caption",selector:"table",matches:function(e,t,n){return axe.commons.table.isDataTable(e)},tags:["cat.tables","experimental","wcag2a","wcag131","section508","section508.22.g"],all:["caption-faked"],any:[],none:[]},{id:"td-has-header",selector:"table",matches:function(e,t,n){if(axe.commons.table.isDataTable(e)){var r=axe.commons.table.toArray(e);return 3<=r.length&&3<=r[0].length&&3<=r[1].length&&3<=r[2].length}return!1},tags:["cat.tables","experimental","wcag2a","wcag131","section508","section508.22.g"],all:["td-has-header"],any:[],none:[]},{id:"td-headers-attr",selector:"table",tags:["cat.tables","wcag2a","wcag131","section508","section508.22.g"],all:["td-headers-attr"],any:[],none:[]},{id:"th-has-data-cells",selector:"table",matches:function(e,t,n){return axe.commons.table.isDataTable(e)},tags:["cat.tables","wcag2a","wcag131","section508","section508.22.g"],all:["th-has-data-cells"],any:[],none:[]},{id:"valid-lang",selector:"[lang], [xml\\:lang]",matches:function(e,t,n){return"html"!==e.nodeName.toLowerCase()},tags:["cat.language","wcag2aa","wcag312"],all:[],any:[],none:["valid-lang"]},{id:"video-caption",selector:"video",excludeHidden:!1,tags:["cat.text-alternatives","wcag2a","wcag122","section508","section508.22.a"],all:[],any:[],none:["caption"]},{id:"video-description",selector:"video",excludeHidden:!1,tags:["cat.text-alternatives","wcag2aa","wcag125","section508","section508.22.b"],all:[],any:[],none:["description"]}],checks:[{id:"abstractrole",evaluate:function(e,t,n,r){return"abstract"===axe.commons.aria.getRoleType(e.getAttribute("role"))}},{id:"aria-allowed-attr",evaluate:function(e,t,n,r){t=t||{};var a,o,i,u=[],s=e.getAttribute("role"),l=axe.utils.getNodeAttributes(e);if(s=s||axe.commons.aria.implicitRole(e),i=axe.commons.aria.allowedAttr(s),Array.isArray(t[s])&&(i=axe.utils.uniqueArray(t[s].concat(i))),s&&i)for(var c=0,d=l.length;c<d;c++)o=(a=l[c]).name,axe.commons.aria.validateAttr(o)&&!i.includes(o)&&u.push(o+'="'+a.nodeValue+'"');return!u.length||(this.data(u),!1)}},{id:"aria-allowed-role",evaluate:function(e,t,n,r){var a=axe.commons.dom,o=t||{},i=o.allowImplicit,u=void 0===i||i,s=o.ignoredTags,l=void 0===s?[]:s,c=e.nodeName.toUpperCase();if(l.map(function(e){return e.toUpperCase()}).includes(c))return!0;var d=axe.commons.aria.getElementUnallowedRoles(e,u);if(d.length){if(this.data(d),!a.isVisible(e,!0))return;return!1}return!0},options:{allowImplicit:!0,ignoredTags:[]}},{id:"aria-hidden-body",evaluate:function(e,t,n,r){return"true"!==e.getAttribute("aria-hidden")}},{id:"aria-errormessage",evaluate:function(n,e,t,r){var a=axe.commons,o=a.aria,i=a.dom;e=Array.isArray(e)?e:[];var u=n.getAttribute("aria-errormessage"),s=n.hasAttribute("aria-errormessage"),l=i.getRootNode(n);return!(-1===e.indexOf(u)&&s&&!function(e){if(""===e.trim())return o.lookupTable.attributes["aria-errormessage"].allowEmpty;var t=e&&l.getElementById(e);return t?"alert"===t.getAttribute("role")||"assertive"===t.getAttribute("aria-live")||-1<axe.utils.tokenList(n.getAttribute("aria-describedby")||"").indexOf(e):void 0}(u))||(this.data(axe.utils.tokenList(u)),!1)}},{id:"has-widget-role",evaluate:function(e,t,n,r){var a=e.getAttribute("role");if(null===a)return!1;var o=axe.commons.aria.getRoleType(a);return"widget"===o||"composite"===o},options:[]},{id:"implicit-role-fallback",evaluate:function(e,t,n,r){var a=e.getAttribute("role");if(null===a||!axe.commons.aria.isValidRole(a))return!0;var o=axe.commons.aria.getRoleType(a);return axe.commons.aria.implicitRole(e)===o}},{id:"invalidrole",evaluate:function(e,t,n,r){return!axe.commons.aria.isValidRole(e.getAttribute("role"),{allowAbstract:!0})}},{id:"no-implicit-explicit-label",evaluate:function(e,t,n,r){var a=axe.commons,o=a.aria,i=a.text,u=o.getRole(e,{noImplicit:!0});this.data(u);var s=i.sanitize(i.labelText(n)).toLowerCase(),l=i.sanitize(i.accessibleText(e)).toLowerCase();return!(!l&&!s)&&(!((l||!s)&&l.includes(s))&&void 0)}},{id:"aria-required-attr",evaluate:function(e,t,n,r){t=t||{};var a=[],o=axe.commons.forms,i=o.isNativeTextbox,u=o.isNativeSelect,s=o.isAriaTextbox,l=o.isAriaListbox,c=o.isAriaCombobox,d=o.isAriaRange,m={"aria-valuenow":function(){return!(i(e)||u(e)||s(e)||l(e)||c(e)||d(e)&&e.hasAttribute("aria-valuenow"))}};if(e.hasAttributes()){var p=e.getAttribute("role"),f=axe.commons.aria.requiredAttr(p);if(Array.isArray(t[p])&&(f=axe.utils.uniqueArray(t[p],f)),p&&f)for(var h=0,b=f.length;h<b;h++){var g=f[h];e.getAttribute(g)||m[g]&&!m[g]()||a.push(g)}}return!a.length||(this.data(a),!1)}},{id:"aria-required-children",evaluate:function(e,t,m,n){var r=axe.commons.aria.requiredOwned,i=axe.commons.aria.implicitNodes,u=axe.utils.matchesSelector,p=axe.commons.dom.idrefs,a=t&&Array.isArray(t.reviewEmpty)?t.reviewEmpty:[];function f(e,t,n,r){if(null===e)return!1;var a=i(n),o=['[role="'+n+'"]'];return a&&(o=o.concat(a)),o=o.join(","),r&&u(e,o)||!!axe.utils.querySelectorAll(t,o)[0]}function h(e,t){var n,r;for(n=0,r=e.length;n<r;n++)if(null!==e[n]){var a=axe.utils.getNodeFromTree(e[n]);if(f(e[n],a,t,!0))return!0}return!1}var o=e.getAttribute("role"),s=r(o);if(!s)return!0;var l=!1,c=s.one;if(!c){l=!0;c=s.all}var d=function(e,t,n,r){var a,o=t.length,i=[],u=p(e,"aria-owns");for(a=0;a<o;a++){var s=t[a];if(f(e,m,s)||h(u,s)){if(!n)return null}else n&&i.push(s)}if("combobox"===r){var l=i.indexOf("textbox");0<=l&&"INPUT"===e.nodeName.toUpperCase()&&["text","search","email","url","tel"].includes(e.type)&&i.splice(l,1);var c=i.indexOf("listbox"),d=e.getAttribute("aria-expanded");0<=c&&(!d||"false"===d)&&i.splice(c,1)}return i.length?i:!n&&t.length?t:null}(e,c,l,o);return!d||(this.data(d),!(!a.includes(o)||0!==e.children.length||0!==p(e,"aria-owns").length)&&void 0)},options:{reviewEmpty:["doc-bibliography","doc-endnotes","grid","list","listbox","table","tablist","tree","treegrid","rowgroup"]}},{id:"aria-required-parent",evaluate:function(e,t,n,r){function u(e){return(axe.commons.aria.implicitNodes(e)||[]).concat('[role="'+e+'"]').join(",")}function a(e,t,n){var r,a,o=e.actualNode.getAttribute("role"),i=[];if(!(t=t||axe.commons.aria.requiredContext(o)))return null;for(r=0,a=t.length;r<a;r++){if(n&&axe.utils.matchesSelector(e.actualNode,u(t[r])))return null;if(axe.commons.dom.findUpVirtual(e,u(t[r])))return null;i.push(t[r])}return i}var o=a(n);if(!o)return!0;var i=function(e){for(var t=[],n=null;e;){if(e.getAttribute("id")){var r=axe.utils.escapeSelector(e.getAttribute("id"));(n=axe.commons.dom.getRootNode(e).querySelector("[aria-owns~=".concat(r,"]")))&&t.push(n)}e=e.parentElement}return t.length?t:null}(e);if(i)for(var s=0,l=i.length;s<l;s++)if(!(o=a(axe.utils.getNodeFromTree(i[s]),o,!0)))return!0;return this.data(o),!1}},{id:"aria-unsupported-attr",evaluate:function(o,e,t,n){var i=o.nodeName.toUpperCase(),u=axe.commons.aria.lookupTable,s=axe.commons.aria.getRole(o),r=Array.from(axe.utils.getNodeAttributes(o)).filter(function(e){var t=e.name,n=u.attributes[t];if(!axe.commons.aria.validateAttr(t))return!1;var r=n.unsupported;if("object"!==S(r))return!!r;var a=axe.commons.matches(o,r.exceptions);return Object.keys(u.evaluateRoleForElement).includes(i)?!u.evaluateRoleForElement[i]({node:o,role:s,out:a}):!a}).map(function(e){return e.name.toString()});return!!r.length&&(this.data(r),!0)}},{id:"unsupportedrole",evaluate:function(e,t,n,r){return axe.commons.aria.isUnsupportedRole(axe.commons.aria.getRole(e))}},{id:"aria-valid-attr-value",evaluate:function(e,t,n,r){t=Array.isArray(t)?t:[];for(var a=[],o=[],i=/^aria-/,u=axe.utils.getNodeAttributes(e),s=["aria-errormessage"],l={"aria-controls":function(){return"false"!==e.getAttribute("aria-expanded")&&"false"!==e.getAttribute("aria-selected")},"aria-owns":function(){return"false"!==e.getAttribute("aria-expanded")},"aria-describedby":function(){axe.commons.aria.validateAttrValue(e,"aria-describedby")||a.push('aria-describedby="'.concat(e.getAttribute("aria-describedby"),'"'))}},c=0,d=u.length;c<d;c++){var m=u[c],p=m.name;s.includes(p)||-1!==t.indexOf(p)||!i.test(p)||l[p]&&!l[p]()||axe.commons.aria.validateAttrValue(e,p)||o.push("".concat(p,'="').concat(m.nodeValue,'"'))}if(!a.length)return!o.length||(this.data(o),!1);this.data(a)},options:[]},{id:"aria-valid-attr",evaluate:function(e,t,n,r){t=Array.isArray(t)?t:[];for(var a,o=[],i=/^aria-/,u=axe.utils.getNodeAttributes(e),s=0,l=u.length;s<l;s++)a=u[s].name,-1===t.indexOf(a)&&i.test(a)&&!axe.commons.aria.validateAttr(a)&&o.push(a);return!o.length||(this.data(o),!1)},options:[]},{id:"valid-scrollable-semantics",evaluate:function(e,t,n,r){var a,o,i,u={ARTICLE:!0,ASIDE:!0,NAV:!0,SECTION:!0},s={application:!0,banner:!1,complementary:!0,contentinfo:!0,form:!0,main:!0,navigation:!0,region:!0,search:!1};return(o=(i=e).getAttribute("role"))&&s[o.toLowerCase()]||!1||(a=i.nodeName.toUpperCase(),u[a]||!1)},options:[]},{id:"color-contrast",evaluate:function(e,t,n,r){var a=axe.commons,o=a.dom,i=a.color,u=a.text;if(!o.isVisible(e,!1))return!0;var s,l=!!(t||{}).noScroll,c=[],d=i.getBackgroundColor(e,c,l),m=i.getForegroundColor(e,l),p=window.getComputedStyle(e),f=parseFloat(p.getPropertyValue("font-size")),h=p.getPropertyValue("font-weight"),b=-1!==["bold","bolder","600","700","800","900"].indexOf(h),g=i.hasValidContrastRatio(d,m,f,b),y=Math.floor(100*g.contrastRatio)/100;null===d&&(s=i.incompleteData.get("bgColor"));var v=1==y,D=1===u.visibleVirtual(n,!1,!0).length;v?s=i.incompleteData.set("bgColor","equalRatio"):D&&(s="shortTextContent");var w={fgColor:m?m.toHexString():void 0,bgColor:d?d.toHexString():void 0,contrastRatio:g?y:void 0,fontSize:"".concat((72*f/96).toFixed(1),"pt (").concat(f,"px)"),fontWeight:b?"bold":"normal",missingData:s,expectedContrastRatio:g.expectedContrastRatio+":1"};return this.data(w),null===m||null===d||v||D&&!g.isValid?(s=null,i.incompleteData.clear(),void this.relatedNodes(c)):(g.isValid||this.relatedNodes(c),g.isValid)}},{id:"link-in-text-block",evaluate:function(e,t,n,r){var a=axe.commons,o=a.color,i=a.dom;function u(e,t){var n=e.getRelativeLuminance(),r=t.getRelativeLuminance();return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}var s=["block","list-item","table","flex","grid","inline-block"];function l(e){var t=window.getComputedStyle(e).getPropertyValue("display");return-1!==s.indexOf(t)||"table-"===t.substr(0,6)}if(l(e))return!1;for(var c,d,m=i.getComposedParent(e);1===m.nodeType&&!l(m);)m=i.getComposedParent(m);if(this.relatedNodes([m]),o.elementIsDistinct(e,m))return!0;if(c=o.getForegroundColor(e),d=o.getForegroundColor(m),c&&d){var p,f=u(c,d);return 1===f||(3<=f?(axe.commons.color.incompleteData.set("fgColor","bgContrast"),this.data({missingData:axe.commons.color.incompleteData.get("fgColor")}),void axe.commons.color.incompleteData.clear()):(c=o.getBackgroundColor(e),d=o.getBackgroundColor(m),(!c||!d||3<=u(c,d))&&(p=c&&d?"bgContrast":axe.commons.color.incompleteData.get("bgColor"),axe.commons.color.incompleteData.set("fgColor",p),this.data({missingData:axe.commons.color.incompleteData.get("fgColor")}),void axe.commons.color.incompleteData.clear())))}}},{id:"autocomplete-appropriate",evaluate:function(e,t,n,r){if("input"!==n.props.nodeName)return!0;var a=["text","search","number"],o=["text","search","url"],i={bday:["text","search","date"],email:["text","search","email"],"cc-exp":["text","search","month"],"street-address":["text"],tel:["text","search","tel"],"cc-exp-month":a,"cc-exp-year":a,"transaction-amount":a,"bday-day":a,"bday-month":a,"bday-year":a,"new-password":["text","search","password"],"current-password":["text","search","password"],url:o,photo:o,impp:o};"object"===S(t)&&Object.keys(t).forEach(function(e){i[e]||(i[e]=[]),i[e]=i[e].concat(t[e])});var u=n.attr("autocomplete").split(/\s+/g).map(function(e){return e.toLowerCase()}),s=u[u.length-1];if(axe.commons.text.autocomplete.stateTerms.includes(s))return!0;var l=i[s],c=n.hasAttr("type")?axe.commons.text.sanitize(n.attr("type")).toLowerCase():"text";return c=axe.utils.validInputTypes().includes(c)?c:"text",void 0===l?"text"===c:l.includes(c)}},{id:"autocomplete-valid",evaluate:function(e,t,n,r){var a=n.attr("autocomplete")||"";return axe.commons.text.isValidAutocomplete(a,t)}},{id:"fieldset",evaluate:function(e,t,n,r){var o,i=this;function u(e,t){return axe.utils.toArray(e.querySelectorAll('select,textarea,button,input:not([name="'+t+'"]):not([type="hidden"])'))}var a={name:e.getAttribute("name"),type:e.getAttribute("type")},s=function(e){var t=axe.utils.escapeSelector(e.actualNode.name),n=axe.commons.dom.getRootNode(e.actualNode).querySelectorAll('input[type="'+axe.utils.escapeSelector(e.actualNode.type)+'"][name="'+t+'"]');if(n.length<2)return!0;var r=axe.commons.dom.findUpVirtual(e,"fieldset"),a=axe.commons.dom.findUpVirtual(e,'[role="group"]'+("radio"===e.actualNode.type?',[role="radiogroup"]':""));return a||r?r?function(e,t){var n=e.firstElementChild;if(!n||"LEGEND"!==n.nodeName.toUpperCase())return i.relatedNodes([e]),!(o="no-legend");if(!axe.commons.text.accessibleText(n))return i.relatedNodes([n]),!(o="empty-legend");var r=u(e,t);return!r.length||(i.relatedNodes(r),!(o="mixed-inputs"))}(r,t):function(e,t){var n=axe.commons.dom.idrefs(e,"aria-labelledby").some(function(e){return e&&axe.commons.text.accessibleText(e)}),r=e.getAttribute("aria-label");if(!(n||r&&axe.commons.text.sanitize(r)))return i.relatedNodes(e),!(o="no-group-label");var a=u(e,t);return!a.length||(i.relatedNodes(a),!(o="group-mixed-inputs"))}(a,t):(o="no-group",i.relatedNodes(function(e,t){return axe.utils.toArray(e).filter(function(e){return e!==t})}(n,e.actualNode)),!1)}(n);return s||(a.failureCode=o),this.data(a),s},after:function(e,t){var r={};return e.filter(function(e){if(e.result)return!0;var t=e.data;if(t){if(r[t.type]=r[t.type]||{},!r[t.type][t.name])return r[t.type][t.name]=[t],!0;var n=r[t.type][t.name].some(function(e){return e.failureCode===t.failureCode});return n||r[t.type][t.name].push(t),!n}return!1})}},{id:"group-labelledby",evaluate:function(n,e,t,r){var a=axe.commons,o=a.dom,i=a.text,u=axe.utils.escapeSelector(n.type),s=axe.utils.escapeSelector(n.name),l=o.getRootNode(n),c={name:n.name,type:n.type},d=Array.from(l.querySelectorAll('input[type="'.concat(u,'"][name="').concat(s,'"]')));if(d.length<=1)return this.data(c),!0;var m=o.idrefs(n,"aria-labelledby").filter(function(e){return!!e}),p=m.slice();d.forEach(function(e){if(e!==n){var t=o.idrefs(e,"aria-labelledby").filter(function(e){return e});m=m.filter(function(e){return t.includes(e)}),p=p.filter(function(e){return!t.includes(e)})}});var f={inLabelledByContext:!0};return p=p.filter(function(e){return i.accessibleText(e,f)}),m=m.filter(function(e){return i.accessibleText(e,f)}),0<p.length&&0<m.length?(this.data(c),!0):(0<p.length&&0===m.length?c.failureCode="no-shared-label":0===p.length&&0<m.length&&(c.failureCode="no-unique-label"),this.data(c),!1)},after:function(e,t){var n={};return e.filter(function(e){var t=e.data;return!(!t||(n[t.type]=n[t.type]||{},n[t.type][t.name]))&&(n[t.type][t.name]=!0)})}},{id:"accesskeys",evaluate:function(e,t,n,r){return axe.commons.dom.isVisible(e,!1)&&(this.data(e.getAttribute("accesskey")),this.relatedNodes([e])),!0},after:function(e,t){var n={};return e.filter(function(e){if(!e.data)return!1;var t=e.data.toUpperCase();return n[t]?(n[t].relatedNodes.push(e.relatedNodes[0]),!1):((n[t]=e).relatedNodes=[],!0)}).map(function(e){return e.result=!!e.relatedNodes.length,e})}},{id:"focusable-content",evaluate:function(e,t,n,r){var a=n.tabbableElements;return!!a&&0<a.filter(function(e){return e!==n}).length}},{id:"focusable-disabled",evaluate:function(e,t,n,r){var a=["BUTTON","FIELDSET","INPUT","SELECT","TEXTAREA"],o=n.tabbableElements;if(!o||!o.length)return!0;var i=o.reduce(function(e,t){var n=t.actualNode,r=n.nodeName.toUpperCase();return a.includes(r)&&e.push(n),e},[]);return this.relatedNodes(i),0===i.length}},{id:"focusable-element",evaluate:function(e,t,n,r){var a=n.isFocusable,o=parseInt(n.actualNode.getAttribute("tabindex"),10);return(o=isNaN(o)?null:o)?a&&0<=o:a}},{id:"focusable-no-name",evaluate:function(e,t,n,r){var a=e.getAttribute("tabindex");return!!(axe.commons.dom.isFocusable(e)&&-1<a)&&!axe.commons.text.accessibleTextVirtual(n)}},{id:"focusable-not-tabbable",evaluate:function(e,t,n,r){var a=["BUTTON","FIELDSET","INPUT","SELECT","TEXTAREA"],o=n.tabbableElements;if(!o||!o.length)return!0;var i=o.reduce(function(e,t){var n=t.actualNode,r=n.nodeName.toUpperCase();return a.includes(r)||e.push(n),e},[]);return this.relatedNodes(i),0===i.length}},{id:"landmark-is-top-level",evaluate:function(e,t,n,r){var a=axe.commons.aria.getRolesByType("landmark"),o=axe.commons.dom.getComposedParent(e);for(this.data({role:e.getAttribute("role")||axe.commons.aria.implicitRole(e)});o;){var i=o.getAttribute("role");if(i||"FORM"===o.nodeName.toUpperCase()||(i=axe.commons.aria.implicitRole(o)),i&&a.includes(i))return!1;o=axe.commons.dom.getComposedParent(o)}return!0}},{id:"page-has-heading-one",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return this.relatedNodes(a.map(function(e){return e.actualNode})),0<a.length},after:function(e,t){return e.some(function(e){return!0===e.result})&&e.forEach(function(e){e.result=!0}),e},options:{selector:'h1:not([role]), [role="heading"][aria-level="1"]'}},{id:"page-has-main",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return this.relatedNodes(a.map(function(e){return e.actualNode})),0<a.length},after:function(e,t){return e.some(function(e){return!0===e.result})&&e.forEach(function(e){e.result=!0}),e},options:{selector:"main:not([role]), [role='main']"}},{id:"page-no-duplicate-banner",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return"string"==typeof t.nativeScopeFilter&&(a=a.filter(function(e){return e.actualNode.hasAttribute("role")||!axe.commons.dom.findUpVirtual(e,t.nativeScopeFilter)})),this.relatedNodes(a.map(function(e){return e.actualNode})),a.length<=1},options:{selector:"header:not([role]), [role=banner]",nativeScopeFilter:"article, aside, main, nav, section"}},{id:"page-no-duplicate-contentinfo",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return"string"==typeof t.nativeScopeFilter&&(a=a.filter(function(e){return e.actualNode.hasAttribute("role")||!axe.commons.dom.findUpVirtual(e,t.nativeScopeFilter)})),this.relatedNodes(a.map(function(e){return e.actualNode})),a.length<=1},options:{selector:"footer:not([role]), [role=contentinfo]",nativeScopeFilter:"article, aside, main, nav, section"}},{id:"page-no-duplicate-main",evaluate:function(e,t,n,r){if(!t||!t.selector||"string"!=typeof t.selector)throw new TypeError("visible-in-page requires options.selector to be a string");var a=axe.utils.querySelectorAll(n,t.selector);return"string"==typeof t.nativeScopeFilter&&(a=a.filter(function(e){return e.actualNode.hasAttribute("role")||!axe.commons.dom.findUpVirtual(e,t.nativeScopeFilter)})),this.relatedNodes(a.map(function(e){return e.actualNode})),a.length<=1},options:{selector:"main:not([role]), [role='main']"}},{id:"tabindex",evaluate:function(e,t,n,r){return e.tabIndex<=0}},{id:"alt-space-value",evaluate:function(e,t,n,r){var a=/^\s+$/.test(e.getAttribute("alt"));return e.hasAttribute("alt")&&a}},{id:"duplicate-img-label",evaluate:function(e,t,n,r){var a=axe.commons,o=a.aria,i=a.text,u=a.dom;if(["none","presentation"].includes(o.getRole(e)))return!1;var s=u.findUpVirtual(n,'button, [role="button"], a[href], p, li, td, th');if(!s)return!1;var l=axe.utils.getNodeFromTree(s),c=i.visibleVirtual(l,!0).toLowerCase();return""!==c&&c===i.accessibleTextVirtual(n).toLowerCase()}},{id:"explicit-label",evaluate:function(e,t,n,r){if(e.getAttribute("id")){var a=axe.commons.dom.getRootNode(e),o=axe.utils.escapeSelector(e.getAttribute("id")),i=a.querySelector('label[for="'.concat(o,'"]'));if(i)return!axe.commons.dom.isVisible(i)||!!axe.commons.text.accessibleText(i)}return!1}},{id:"help-same-as-label",evaluate:function(e,t,n,r){var a=axe.commons.text.labelVirtual(n),o=e.getAttribute("title");if(!a)return!1;o||(o="",e.getAttribute("aria-describedby")&&(o=axe.commons.dom.idrefs(e,"aria-describedby").map(function(e){return e?axe.commons.text.accessibleText(e):""}).join("")));return axe.commons.text.sanitize(o)===axe.commons.text.sanitize(a)},enabled:!1},{id:"hidden-explicit-label",evaluate:function(e,t,n,r){if(e.getAttribute("id")){var a=axe.commons.dom.getRootNode(e),o=axe.utils.escapeSelector(e.getAttribute("id")),i=a.querySelector('label[for="'.concat(o,'"]'));if(i&&!axe.commons.dom.isVisible(i,!0))return""===axe.commons.text.accessibleTextVirtual(n).trim()}return!1}},{id:"implicit-label",evaluate:function(e,t,n,r){var a=axe.commons,o=a.dom,i=a.text,u=o.findUpVirtual(n,"label");return!!u&&!!i.accessibleText(u,{inControlContext:!0})}},{id:"label-content-name-mismatch",evaluate:function(e,t,n,r){var a=axe.commons.text,o=a.accessibleText(e).toLowerCase();if(!(a.isHumanInterpretable(o)<1)){var i=a.sanitize(a.visibleVirtual(n)).toLowerCase();return a.isHumanInterpretable(i)<1?!!u(i,o)||void 0:u(i,o)}function u(e,t){var n=s(t),r=s(e);return!(!n||!r)&&n.includes(r)}function s(e){var t=a.removeUnicode(e,{emoji:!0,nonBmp:!0,punctuations:!0});return a.sanitize(t)}}},{id:"multiple-label",evaluate:function(e,t,n,r){var a=axe.utils.escapeSelector(e.getAttribute("id")),o=e.parentNode,i=axe.commons.dom.getRootNode(e);i=i.documentElement||i;var u=Array.from(i.querySelectorAll('label[for="'.concat(a,'"]')));for(u.length&&(u=u.filter(function(e){return axe.commons.dom.isVisible(e)}));o;)"LABEL"===o.nodeName.toUpperCase()&&-1===u.indexOf(o)&&u.push(o),o=o.parentNode;if(this.relatedNodes(u),1<u.length){var s=u.filter(function(e){return axe.commons.dom.isVisible(e,!0)});return 1<s.length||!axe.commons.dom.idrefs(e,"aria-labelledby").includes(s[0])}return!1}},{id:"title-only",evaluate:function(e,t,n,r){return!(axe.commons.text.labelVirtual(n)||!e.getAttribute("title")&&!e.getAttribute("aria-describedby"))}},{id:"landmark-is-unique",evaluate:function(e,t,n,r){var a=axe.commons.aria.getRole(e),o=axe.commons.text.accessibleTextVirtual(n);return o=o?o.toLowerCase():null,this.data({role:a,accessibleText:o}),this.relatedNodes([e]),!0},after:function(e,t){var n=[];return e.filter(function(t){var e=n.find(function(e){return t.data.role===e.data.role&&t.data.accessibleText===e.data.accessibleText});return e?(e.result=!1,e.relatedNodes.push(t.relatedNodes[0]),!1):(n.push(t),t.relatedNodes=[],!0)})}},{id:"has-lang",evaluate:function(e,t,n,r){return!!(e.getAttribute("lang")||e.getAttribute("xml:lang")||"").trim()}},{id:"valid-lang",evaluate:function(a,e,t,n){var o,r;return o=(e||axe.utils.validLangs()).map(axe.utils.getBaseLang),!!(r=["lang","xml:lang"].reduce(function(e,t){var n=a.getAttribute(t);if("string"!=typeof n)return e;var r=axe.utils.getBaseLang(n);return""!==r&&-1===o.indexOf(r)&&e.push(t+'="'+a.getAttribute(t)+'"'),e},[])).length&&(this.data(r),!0)}},{id:"xml-lang-mismatch",evaluate:function(e,t,n,r){var a=axe.utils.getBaseLang;return a(e.getAttribute("lang"))===a(e.getAttribute("xml:lang"))}},{id:"dlitem",evaluate:function(e,t,n,r){var a=axe.commons.dom.getComposedParent(e),o=a.nodeName.toUpperCase(),i=axe.commons.aria.getRole(a,{noImplicit:!0});return"DIV"===o&&["presentation","none",null].includes(i)&&(o=(a=axe.commons.dom.getComposedParent(a)).nodeName.toUpperCase(),i=axe.commons.aria.getRole(a,{noImplicit:!0})),"DL"===o&&(!i||"list"===i)}},{id:"listitem",evaluate:function(e,t,n,r){var a=axe.commons.dom.getComposedParent(e);if(a){var o=a.nodeName.toUpperCase(),i=(a.getAttribute("role")||"").toLowerCase();return"list"===i||(!i||!axe.commons.aria.isValidRole(i))&&["UL","OL"].includes(o)}}},{id:"only-dlitems",evaluate:function(e,t,n,r){var a=axe.commons,o=a.dom,i=a.aria,u=["definition","term","list"],s=n.children.reduce(function(e,t){var n=t.actualNode;return"DIV"===n.nodeName.toUpperCase()&&null===i.getRole(n)?e.concat(t.children):e.concat(t)},[]).reduce(function(e,t){var n=t.actualNode,r=n.nodeName.toUpperCase();if(1===n.nodeType&&o.isVisible(n,!0,!1)){var a=i.getRole(n,{noImplicit:!0});("DT"!==r&&"DD"!==r||a)&&(u.includes(a)||e.badNodes.push(n))}else 3===n.nodeType&&""!==n.nodeValue.trim()&&(e.hasNonEmptyTextNode=!0);return e},{badNodes:[],hasNonEmptyTextNode:!1});return s.badNodes.length&&this.relatedNodes(s.badNodes),!!s.badNodes.length||s.hasNonEmptyTextNode}},{id:"only-listitems",evaluate:function(e,t,n,r){var o=axe.commons.dom,a=n.children.reduce(function(e,t){var n=t.actualNode,r=n.nodeName.toUpperCase();if(1===n.nodeType&&o.isVisible(n,!0,!1)){var a=function(e,t){return"listitem"===e||"LI"===t&&!e}((n.getAttribute("role")||"").toLowerCase(),r);e.hasListItem=function(e,t,n){return e||"LI"===t&&n||n}(e.hasListItem,r,a),a&&(e.isEmpty=!1),"LI"!==r||a||e.liItemsWithRole++,"LI"===r||a||e.badNodes.push(n)}return 3===n.nodeType&&""!==n.nodeValue.trim()&&(e.hasNonEmptyTextNode=!0),e},{badNodes:[],isEmpty:!0,hasNonEmptyTextNode:!1,hasListItem:!1,liItemsWithRole:0}),i=n.children.filter(function(e){return"LI"===e.actualNode.nodeName.toUpperCase()}),u=0<a.liItemsWithRole&&i.length===a.liItemsWithRole;return a.badNodes.length&&this.relatedNodes(a.badNodes),!(a.hasListItem||a.isEmpty&&!u)||!!a.badNodes.length||a.hasNonEmptyTextNode}},{id:"structured-dlitems",evaluate:function(e,t,n,r){var a=n.children;if(!a||!a.length)return!1;for(var o,i=!1,u=!1,s=0;s<a.length;s++){if("DT"===(o=a[s].actualNode.nodeName.toUpperCase())&&(i=!0),i&&"DD"===o)return!1;"DD"===o&&(u=!0)}return i||u}},{id:"caption",evaluate:function(e,t,n,r){return!axe.utils.querySelectorAll(n,"track").some(function(e){return"captions"===(e.actualNode.getAttribute("kind")||"").toLowerCase()})&&void 0}},{id:"description",evaluate:function(e,t,n,r){return!axe.utils.querySelectorAll(n,"track").some(function(e){return"descriptions"===(e.actualNode.getAttribute("kind")||"").toLowerCase()})&&void 0}},{id:"frame-tested",evaluate:function(e,t,n,r){var a=this.async(),o=Object.assign({isViolation:!1,timeout:500},t),i=o.isViolation,u=o.timeout,s=setTimeout(function(){s=setTimeout(function(){s=null,a(!i&&void 0)},0)},u);axe.utils.respondable(e.contentWindow,"axe.ping",null,void 0,function(){null!==s&&(clearTimeout(s),a(!0))})},options:{isViolation:!1}},{id:"css-orientation-lock",evaluate:function(e,t,n,r){var a=(r||{}).cssom,o=void 0===a?void 0:a;if(o&&o.length){var i=o.reduce(function(e,t){var n=t.sheet,r=t.root,a=t.shadowId,o=a||"topDocument";if(e[o]||(e[o]={root:r,rules:[]}),!n||!n.cssRules)return e;var i=Array.from(n.cssRules);return e[o].rules=e[o].rules.concat(i),e},{}),s=!1,l=[];return Object.keys(i).forEach(function(e){var t=i[e],u=t.root,n=t.rules.filter(function(e){return 4===e.type});if(n&&n.length){var r=n.filter(function(e){var t=e.cssText;return/orientation:\s*landscape/i.test(t)||/orientation:\s*portrait/i.test(t)});r&&r.length&&r.forEach(function(e){e.cssRules.length&&Array.from(e.cssRules).forEach(function(e){if(e.selectorText&&!(e.style.length<=0)){var t=e.style.transform||e.style.webkitTransform||e.style.msTransform||!1;if(t){var n=t.match(/rotate\(([^)]+)deg\)/),r=parseInt(n&&n[1]||0),a=r%90==0&&r%180!=0;if(a&&"HTML"!==e.selectorText.toUpperCase()){var o=e.selectorText,i=Array.from(u.querySelectorAll(o));i&&i.length&&(l=l.concat(i))}s=a}}})})}}),s?(l.length&&this.relatedNodes(l),!1):!0}}},{id:"meta-viewport-large",evaluate:function(e,t,n,r){t=t||{};for(var a,o=(e.getAttribute("content")||"").split(/[;,]/),i={},u=t.scaleMinimum||2,s=t.lowerBound||!1,l=0,c=o.length;l<c;l++){var d=(a=o[l].split("=")).shift().toLowerCase();d&&a.length&&(i[d.trim()]=a.shift().trim().toLowerCase())}return!!(s&&i["maximum-scale"]&&parseFloat(i["maximum-scale"])<s)||(s||"no"!==i["user-scalable"]?!(i["maximum-scale"]&&parseFloat(i["maximum-scale"])<u)||(this.data("maximum-scale"),!1):(this.data("user-scalable=no"),!1))},options:{scaleMinimum:5,lowerBound:2}},{id:"meta-viewport",evaluate:function(e,t,n,r){t=t||{};for(var a,o=(e.getAttribute("content")||"").split(/[;,]/),i={},u=t.scaleMinimum||2,s=t.lowerBound||!1,l=0,c=o.length;l<c;l++){var d=(a=o[l].split("=")).shift().toLowerCase();d&&a.length&&(i[d.trim()]=a.shift().trim().toLowerCase())}return!!(s&&i["maximum-scale"]&&parseFloat(i["maximum-scale"])<s)||(s||"no"!==i["user-scalable"]?!(i["maximum-scale"]&&parseFloat(i["maximum-scale"])<u)||(this.data("maximum-scale"),!1):(this.data("user-scalable=no"),!1))},options:{scaleMinimum:2}},{id:"header-present",evaluate:function(e,t,n,r){return!!axe.utils.querySelectorAll(n,'h1, h2, h3, h4, h5, h6, [role="heading"]')[0]}},{id:"heading-order",evaluate:function(e,t,n,r){var a=e.getAttribute("aria-level");if(null!==a)return this.data(parseInt(a,10)),!0;var o=e.nodeName.toUpperCase().match(/H(\d)/);return o&&this.data(parseInt(o[1],10)),!0},after:function(e,t){if(e.length<2)return e;for(var n=e[0].data,r=1;r<e.length;r++)e[r].result&&e[r].data>n+1&&(e[r].result=!1),n=e[r].data;return e}},{id:"internal-link-present",evaluate:function(e,t,n,r){return axe.utils.querySelectorAll(n,"a[href]").some(function(e){return/^#[^/!]/.test(e.actualNode.getAttribute("href"))})}},{id:"landmark",evaluate:function(e,t,n,r){return 0<axe.utils.querySelectorAll(n,'main, [role="main"]').length}},{id:"meta-refresh",evaluate:function(e,t,n,r){var a=e.getAttribute("content")||"",o=a.split(/[;,]/);return""===a||"0"===o[0]}},{id:"p-as-heading",evaluate:function(e,t,n,r){var a=Array.from(e.parentNode.children),o=a.indexOf(e),i=(t=t||{}).margins||[],u=a.slice(o+1).find(function(e){return"P"===e.nodeName.toUpperCase()}),s=a.slice(0,o).reverse().find(function(e){return"P"===e.nodeName.toUpperCase()});function l(e){var t=window.getComputedStyle(function(e){for(var t=e,n=e.textContent.trim(),r=n;r===n&&void 0!==t;){var a=-1;if(0===(e=t).children.length)return e;for(;a++,""===(r=e.children[a].textContent.trim())&&a+1<e.children.length;);t=e.children[a]}return e}(e));return{fontWeight:function(e){switch(e){case"lighter":return 100;case"normal":return 400;case"bold":return 700;case"bolder":return 900}return e=parseInt(e),isNaN(e)?400:e}(t.getPropertyValue("font-weight")),fontSize:parseInt(t.getPropertyValue("font-size")),isItalic:"italic"===t.getPropertyValue("font-style")}}function c(n,r,e){return e.reduce(function(e,t){return e||(!t.size||n.fontSize/t.size>r.fontSize)&&(!t.weight||n.fontWeight-t.weight>r.fontWeight)&&(!t.italic||n.isItalic&&!r.isItalic)},!1)}var d=l(e),m=u?l(u):null,p=s?l(s):null;if(!m||!c(d,m,i))return!0;var f=axe.commons.dom.findUpVirtual(n,"blockquote");return!!(f&&"BLOCKQUOTE"===f.nodeName.toUpperCase()||p&&!c(d,p,i))&&void 0},options:{margins:[{weight:150,italic:!0},{weight:150,size:1.15},{italic:!0,size:1.15},{size:1.4}]}},{id:"region",evaluate:function(e,t,n,r){var a=axe.commons,o=a.dom,i=a.aria,u=i.getRolesByType("landmark"),s=u.reduce(function(e,t){return e.concat(i.implicitNodes(t))},[]).filter(function(e){return null!==e});var l=function e(t){var n=t.actualNode;return function(a){var o=a.actualNode,e=axe.commons.aria.getRole(o,{noImplicit:!0}),t=(o.getAttribute("aria-live")||"").toLowerCase().trim();return e?"dialog"===e||u.includes(e):!!["assertive","polite"].includes(t)||s.some(function(e){var t=axe.utils.matchesSelector(o,e);if("FORM"!==o.nodeName.toUpperCase())return t;var n=o.getAttribute("title"),r=n&&""!==n.trim()?axe.commons.text.sanitize(n):null;return t&&(!!i.labelVirtual(a)||!!r)})}(t)||o.isSkipLink(t.actualNode)&&o.getElementByReference(t.actualNode,"href")||!o.isVisible(n,!0)?[]:o.hasContent(n,!0)?[n]:t.children.filter(function(e){return 1===e.actualNode.nodeType}).map(e).reduce(function(e,t){return e.concat(t)},[])}(n);return this.relatedNodes(l),0===l.length},after:function(e,t){return[e[0]]}},{id:"skip-link",evaluate:function(e,t,n,r){var a=axe.commons.dom.getElementByReference(e,"href");return!!a&&(axe.commons.dom.isVisible(a,!0)||void 0)}},{id:"unique-frame-title",evaluate:function(e,t,n,r){var a=axe.commons.text.sanitize(e.title).trim().toLowerCase();return this.data(a),!0},after:function(e,t){var n={};return e.forEach(function(e){n[e.data]=void 0!==n[e.data]?++n[e.data]:0}),e.forEach(function(e){e.result=!!n[e.data]}),e}},{id:"duplicate-id-active",evaluate:function(t,e,n,r){var a=t.getAttribute("id").trim();if(!a)return!0;var o=axe.commons.dom.getRootNode(t),i=Array.from(o.querySelectorAll('[id="'.concat(axe.utils.escapeSelector(a),'"]'))).filter(function(e){return e!==t});return i.length&&this.relatedNodes(i),this.data(a),0===i.length},after:function(e,t){var n=[];return e.filter(function(e){return-1===n.indexOf(e.data)&&(n.push(e.data),!0)})}},{id:"duplicate-id-aria",evaluate:function(t,e,n,r){var a=t.getAttribute("id").trim();if(!a)return!0;var o=axe.commons.dom.getRootNode(t),i=Array.from(o.querySelectorAll('[id="'.concat(axe.utils.escapeSelector(a),'"]'))).filter(function(e){return e!==t});return i.length&&this.relatedNodes(i),this.data(a),0===i.length},after:function(e,t){var n=[];return e.filter(function(e){return-1===n.indexOf(e.data)&&(n.push(e.data),!0)})}},{id:"duplicate-id",evaluate:function(t,e,n,r){var a=t.getAttribute("id").trim();if(!a)return!0;var o=axe.commons.dom.getRootNode(t),i=Array.from(o.querySelectorAll('[id="'.concat(axe.utils.escapeSelector(a),'"]'))).filter(function(e){return e!==t});return i.length&&this.relatedNodes(i),this.data(a),0===i.length},after:function(e,t){var n=[];return e.filter(function(e){return-1===n.indexOf(e.data)&&(n.push(e.data),!0)})}},{id:"aria-label",evaluate:function(e,t,n,r){var a=axe.commons,o=a.text,i=a.aria;return!!o.sanitize(i.arialabelText(e))}},{id:"aria-labelledby",evaluate:function(e,t,n,r){var a=axe.commons,o=a.text,i=a.aria;return!!o.sanitize(i.arialabelledbyText(e))}},{id:"avoid-inline-spacing",evaluate:function(t,e,n,r){var a=["line-height","letter-spacing","word-spacing"].filter(function(e){if("important"===t.style.getPropertyPriority(e))return e});return!(0<a.length)||(this.data(a),!1)}},{id:"button-has-visible-text",evaluate:function(e,t,n,r){var a,o=e.nodeName.toUpperCase(),i=e.getAttribute("role");return("BUTTON"===o||"button"===i&&"INPUT"!==o)&&(a=axe.commons.text.accessibleTextVirtual(n),this.data(a),!!a)}},{id:"doc-has-title",evaluate:function(e,t,n,r){var a=document.title;return!(!a||!axe.commons.text.sanitize(a).trim())}},{id:"exists",evaluate:function(e,t,n,r){return!0}},{id:"has-alt",evaluate:function(e,t,n,r){var a=e.nodeName.toLowerCase();return e.hasAttribute("alt")&&("img"===a||"input"===a||"area"===a)}},{id:"has-visible-text",evaluate:function(e,t,n,r){return 0<axe.commons.text.accessibleTextVirtual(n).length}},{id:"is-on-screen",evaluate:function(e,t,n,r){return axe.commons.dom.isVisible(e,!1)&&!axe.commons.dom.isOffscreen(e)}},{id:"non-empty-alt",evaluate:function(e,t,n,r){var a=e.getAttribute("alt");return!(!a||!axe.commons.text.sanitize(a).trim())}},{id:"non-empty-if-present",evaluate:function(e,t,n,r){var a=e.nodeName.toUpperCase(),o=(e.getAttribute("type")||"").toLowerCase(),i=e.getAttribute("value");return this.data(i),!("INPUT"!==a||!["submit","reset"].includes(o))&&null===i}},{id:"non-empty-title",evaluate:function(e,t,n,r){var a=axe.commons.text;return!!a.sanitize(a.titleText(e))}},{id:"non-empty-value",evaluate:function(e,t,n,r){var a=e.getAttribute("value");return!(!a||!axe.commons.text.sanitize(a).trim())}},{id:"role-none",evaluate:function(e,t,n,r){return"none"===e.getAttribute("role")}},{id:"role-presentation",evaluate:function(e,t,n,r){return"presentation"===e.getAttribute("role")}},{id:"caption-faked",evaluate:function(e,t,n,r){var a=axe.commons.table.toGrid(e),o=a[0];return a.length<=1||o.length<=1||e.rows.length<=1||o.reduce(function(e,t,n){return e||t!==o[n+1]&&void 0!==o[n+1]},!1)}},{id:"has-caption",evaluate:function(e,t,n,r){return!!e.caption}},{id:"has-summary",evaluate:function(e,t,n,r){return!!e.summary}},{id:"has-th",evaluate:function(e,t,n,r){for(var a,o,i=[],u=0,s=e.rows.length;u<s;u++)for(var l=0,c=(a=e.rows[u]).cells.length;l<c;l++)"TH"!==(o=a.cells[l]).nodeName.toUpperCase()&&-1===["rowheader","columnheader"].indexOf(o.getAttribute("role"))||i.push(o);return!!i.length&&(this.relatedNodes(i),!0)}},{id:"html5-scope",evaluate:function(e,t,n,r){return!axe.commons.dom.isHTML5(document)||"TH"===e.nodeName.toUpperCase()}},{id:"same-caption-summary",evaluate:function(e,t,n,r){return!(!e.summary||!e.caption)&&e.summary.toLowerCase()===axe.commons.text.accessibleText(e.caption).toLowerCase()}},{id:"scope-value",evaluate:function(e,t,n,r){var a=e.getAttribute("scope").toLowerCase();return-1!==["row","col","rowgroup","colgroup"].indexOf(a)}},{id:"td-has-header",evaluate:function(e,t,n,r){var a=axe.commons.table,o=[];return a.getAllCells(e).forEach(function(e){axe.commons.dom.hasContent(e)&&a.isDataCell(e)&&!axe.commons.aria.label(e)&&(a.getHeaders(e).some(function(e){return null!==e&&!!axe.commons.dom.hasContent(e)})||o.push(e))}),!o.length||(this.relatedNodes(o),!1)}},{id:"td-headers-attr",evaluate:function(e,t,n,r){for(var a=[],o=0,i=e.rows.length;o<i;o++)for(var u=e.rows[o],s=0,l=u.cells.length;s<l;s++)a.push(u.cells[s]);var c=a.reduce(function(e,t){return t.getAttribute("id")&&e.push(t.getAttribute("id")),e},[]),d=a.reduce(function(e,t){var n,r,a=(t.getAttribute("headers")||"").split(/\s/).reduce(function(e,t){return(t=t.trim())&&e.push(t),e},[]);return 0!==a.length&&(t.getAttribute("id")&&(n=-1!==a.indexOf(t.getAttribute("id").trim())),r=a.reduce(function(e,t){return e||-1===c.indexOf(t)},!1),(n||r)&&e.push(t)),e},[]);return!(0<d.length)||(this.relatedNodes(d),!1)}},{id:"th-has-data-cells",evaluate:function(e,t,n,r){var a=axe.commons.table,o=a.getAllCells(e),i=this,u=[];o.forEach(function(e){var t=e.getAttribute("headers");t&&(u=u.concat(t.split(/\s+/)));var n=e.getAttribute("aria-labelledby");n&&(u=u.concat(n.split(/\s+/)))});var s=o.filter(function(e){return""!==axe.commons.text.sanitize(e.textContent)&&("TH"===e.nodeName.toUpperCase()||-1!==["rowheader","columnheader"].indexOf(e.getAttribute("role")))}),l=a.toGrid(e),c=!0;return s.forEach(function(e){if(!e.getAttribute("id")||!u.includes(e.getAttribute("id"))){var t=a.getCellPosition(e,l),n=!1;a.isColumnHeader(e)&&(n=a.traverse("down",t,l).find(function(e){return!a.isColumnHeader(e)})),!n&&a.isRowHeader(e)&&(n=a.traverse("right",t,l).find(function(e){return!a.isRowHeader(e)})),n||i.relatedNodes(e),c=c&&n}}),!!c||void 0}},{id:"hidden-content",evaluate:function(e,t,n,r){if(!["SCRIPT","HEAD","TITLE","NOSCRIPT","STYLE","TEMPLATE"].includes(e.nodeName.toUpperCase())&&axe.commons.dom.hasContentVirtual(n)){var a=window.getComputedStyle(e);if("none"===a.getPropertyValue("display"))return;if("hidden"===a.getPropertyValue("visibility")){var o=axe.commons.dom.getComposedParent(e),i=o&&window.getComputedStyle(o);if(!i||"hidden"!==i.getPropertyValue("visibility"))return}}return!0}}],commons:function(){function e(e){return null===e}function t(e){return null!==e}var commons={},l=commons.aria={},n=l.lookupTable={};n.attributes={"aria-activedescendant":{type:"idref",allowEmpty:!0,unsupported:!1},"aria-atomic":{type:"boolean",values:["true","false"],unsupported:!1},"aria-autocomplete":{type:"nmtoken",values:["inline","list","both","none"],unsupported:!1},"aria-busy":{type:"boolean",values:["true","false"],unsupported:!1},"aria-checked":{type:"nmtoken",values:["true","false","mixed","undefined"],unsupported:!1},"aria-colcount":{type:"int",unsupported:!1},"aria-colindex":{type:"int",unsupported:!1},"aria-colspan":{type:"int",unsupported:!1},"aria-controls":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-current":{type:"nmtoken",allowEmpty:!0,values:["page","step","location","date","time","true","false"],unsupported:!1},"aria-describedby":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-describedat":{unsupported:!0,unstandardized:!0},"aria-details":{unsupported:!0},"aria-disabled":{type:"boolean",values:["true","false"],unsupported:!1},"aria-dropeffect":{type:"nmtokens",values:["copy","move","reference","execute","popup","none"],unsupported:!1},"aria-errormessage":{type:"idref",allowEmpty:!0,unsupported:!1},"aria-expanded":{type:"nmtoken",values:["true","false","undefined"],unsupported:!1},"aria-flowto":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-grabbed":{type:"nmtoken",values:["true","false","undefined"],unsupported:!1},"aria-haspopup":{type:"nmtoken",allowEmpty:!0,values:["true","false","menu","listbox","tree","grid","dialog"],unsupported:!1},"aria-hidden":{type:"boolean",values:["true","false"],unsupported:!1},"aria-invalid":{type:"nmtoken",allowEmpty:!0,values:["true","false","spelling","grammar"],unsupported:!1},"aria-keyshortcuts":{type:"string",allowEmpty:!0,unsupported:!1},"aria-label":{type:"string",allowEmpty:!0,unsupported:!1},"aria-labelledby":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-level":{type:"int",unsupported:!1},"aria-live":{type:"nmtoken",values:["off","polite","assertive"],unsupported:!1},"aria-modal":{type:"boolean",values:["true","false"],unsupported:!1},"aria-multiline":{type:"boolean",values:["true","false"],unsupported:!1},"aria-multiselectable":{type:"boolean",values:["true","false"],unsupported:!1},"aria-orientation":{type:"nmtoken",values:["horizontal","vertical"],unsupported:!1},"aria-owns":{type:"idrefs",allowEmpty:!0,unsupported:!1},"aria-placeholder":{type:"string",allowEmpty:!0,unsupported:!1},"aria-posinset":{type:"int",unsupported:!1},"aria-pressed":{type:"nmtoken",values:["true","false","mixed","undefined"],unsupported:!1},"aria-readonly":{type:"boolean",values:["true","false"],unsupported:!1},"aria-relevant":{type:"nmtokens",values:["additions","removals","text","all"],unsupported:!1},"aria-required":{type:"boolean",values:["true","false"],unsupported:!1},"aria-roledescription":{type:"string",allowEmpty:!0,unsupported:{exceptions:["button",{nodeName:"input",properties:{type:["button","checkbox","image","radio","reset","submit"]}},"img","select","summary"]}},"aria-rowcount":{type:"int",unsupported:!1},"aria-rowindex":{type:"int",unsupported:!1},"aria-rowspan":{type:"int",unsupported:!1},"aria-selected":{type:"nmtoken",values:["true","false","undefined"],unsupported:!1},"aria-setsize":{type:"int",unsupported:!1},"aria-sort":{type:"nmtoken",values:["ascending","descending","other","none"],unsupported:!1},"aria-valuemax":{type:"decimal",unsupported:!1},"aria-valuemin":{type:"decimal",unsupported:!1},"aria-valuenow":{type:"decimal",unsupported:!1},"aria-valuetext":{type:"string",unsupported:!1}},n.globalAttributes=["aria-atomic","aria-busy","aria-controls","aria-current","aria-describedby","aria-disabled","aria-dropeffect","aria-flowto","aria-grabbed","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-live","aria-owns","aria-relevant","aria-roledescription"],n.role={alert:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},alertdialog:{type:"widget",attributes:{allowed:["aria-expanded","aria-modal","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["dialog","section"]},application:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["article","audio","embed","iframe","object","section","svg","video"]},article:{type:"structure",attributes:{allowed:["aria-expanded","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["article"],unsupported:!1},banner:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["header"],unsupported:!1,allowedElements:["section"]},button:{type:"widget",attributes:{allowed:["aria-expanded","aria-pressed","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["button",'input[type="button"]','input[type="image"]','input[type="reset"]','input[type="submit"]',"summary"],unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},cell:{type:"structure",attributes:{allowed:["aria-colindex","aria-colspan","aria-rowindex","aria-rowspan","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["row"],implicit:["td","th"],unsupported:!1},checkbox:{type:"widget",attributes:{allowed:["aria-checked","aria-required","aria-readonly","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:['input[type="checkbox"]'],unsupported:!1,allowedElements:["button"]},columnheader:{type:"structure",attributes:{allowed:["aria-colindex","aria-colspan","aria-expanded","aria-rowindex","aria-rowspan","aria-required","aria-readonly","aria-selected","aria-sort","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["row"],implicit:["th"],unsupported:!1},combobox:{type:"composite",attributes:{allowed:["aria-autocomplete","aria-required","aria-activedescendant","aria-orientation","aria-errormessage"],required:["aria-expanded"]},owned:{all:["listbox","textbox"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:[{nodeName:"input",properties:{type:"text"}}]},command:{nameFrom:["author"],type:"abstract",unsupported:!1},complementary:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["aside"],unsupported:!1,allowedElements:["section"]},composite:{nameFrom:["author"],type:"abstract",unsupported:!1},contentinfo:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["footer"],unsupported:!1,allowedElements:["section"]},definition:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["dd","dfn"],unsupported:!1},dialog:{type:"widget",attributes:{allowed:["aria-expanded","aria-modal","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["dialog"],unsupported:!1,allowedElements:["section"]},directory:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1,allowedElements:["ol","ul"]},document:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["body"],unsupported:!1,allowedElements:["article","embed","iframe","object","section","svg"]},"doc-abstract":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-acknowledgments":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-afterword":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-appendix":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-backlink":{type:"link",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},"doc-biblioentry":{type:"listitem",attributes:{allowed:["aria-expanded","aria-level","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author"],context:["doc-bibliography"],unsupported:!1,allowedElements:["li"]},"doc-bibliography":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:{one:["doc-biblioentry"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-biblioref":{type:"link",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},"doc-chapter":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-colophon":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-conclusion":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-cover":{type:"img",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1},"doc-credit":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-credits":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-dedication":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-endnote":{type:"listitem",attributes:{allowed:["aria-expanded","aria-level","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,namefrom:["author"],context:["doc-endnotes"],unsupported:!1,allowedElements:["li"]},"doc-endnotes":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:{one:["doc-endnote"]},namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-epigraph":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1},"doc-epilogue":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-errata":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-example":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["aside","section"]},"doc-footnote":{type:"section",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["aside","footer","header"]},"doc-foreword":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-glossary":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:["term","definition"],namefrom:["author"],context:null,unsupported:!1,allowedElements:["dl"]},"doc-glossref":{type:"link",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author","contents"],context:null,unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},"doc-index":{type:"navigation",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["nav","section"]},"doc-introduction":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-noteref":{type:"link",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author","contents"],context:null,unsupported:!1,allowedElements:[{nodeName:"a",attributes:{href:t}}]},"doc-notice":{type:"note",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-pagebreak":{type:"separator",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["hr"]},"doc-pagelist":{type:"navigation",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["nav","section"]},"doc-part":{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-preface":{type:"landmark",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-prologue":{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-pullquote":{type:"none",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["aside","section"]},"doc-qna":{type:"section",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},"doc-subtitle":{type:"sectionhead",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:{nodeName:["h1","h2","h3","h4","h5","h6"]}},"doc-tip":{type:"note",attributes:{allowed:["aria-expanded"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["aside"]},"doc-toc":{type:"navigation",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,namefrom:["author"],context:null,unsupported:!1,allowedElements:["nav","section"]},feed:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:{one:["article"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["article","aside","section"]},figure:{type:"structure",unsupported:!1},form:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["form"],unsupported:!1},grid:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-colcount","aria-level","aria-multiselectable","aria-readonly","aria-rowcount","aria-errormessage"]},owned:{one:["rowgroup","row"]},nameFrom:["author"],context:null,implicit:["table"],unsupported:!1},gridcell:{type:"widget",attributes:{allowed:["aria-colindex","aria-colspan","aria-expanded","aria-rowindex","aria-rowspan","aria-selected","aria-readonly","aria-required","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["row"],implicit:["td","th"],unsupported:!1},group:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["details","optgroup"],unsupported:!1,allowedElements:["dl","figcaption","fieldset","figure","footer","header","ol","ul"]},heading:{type:"structure",attributes:{required:["aria-level"],allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["h1","h2","h3","h4","h5","h6"],unsupported:!1},img:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["img"],unsupported:!1,allowedElements:["embed","iframe","object","svg"]},input:{nameFrom:["author"],type:"abstract",unsupported:!1},landmark:{nameFrom:["author"],type:"abstract",unsupported:!1},link:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["a[href]"],unsupported:!1,allowedElements:["button",{nodeName:"input",properties:{type:["image","button"]}}]},list:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:{all:["listitem"]},nameFrom:["author"],context:null,implicit:["ol","ul","dl"],unsupported:!1},listbox:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-multiselectable","aria-required","aria-expanded","aria-orientation","aria-errormessage"]},owned:{all:["option"]},nameFrom:["author"],context:null,implicit:["select"],unsupported:!1,allowedElements:["ol","ul"]},listitem:{type:"structure",attributes:{allowed:["aria-level","aria-posinset","aria-setsize","aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["list"],implicit:["li","dt"],unsupported:!1},log:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},main:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["main"],unsupported:!1,allowedElements:["article","section"]},marquee:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},math:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["math"],unsupported:!1},menu:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-orientation","aria-errormessage"]},owned:{one:["menuitem","menuitemradio","menuitemcheckbox"]},nameFrom:["author"],context:null,implicit:['menu[type="context"]'],unsupported:!1,allowedElements:["ol","ul"]},menubar:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-orientation","aria-errormessage"]},owned:{one:["menuitem","menuitemradio","menuitemcheckbox"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["ol","ul"]},menuitem:{type:"widget",attributes:{allowed:["aria-posinset","aria-setsize","aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["menu","menubar"],implicit:['menuitem[type="command"]'],unsupported:!1,allowedElements:["button","li",{nodeName:"iput",properties:{type:["image","button"]}},{nodeName:"a",attributes:{href:t}}]},menuitemcheckbox:{type:"widget",attributes:{allowed:["aria-checked","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["menu","menubar"],implicit:['menuitem[type="checkbox"]'],unsupported:!1,allowedElements:[{nodeName:["button","li"]},{nodeName:"input",properties:{type:["checkbox","image","button"]}},{nodeName:"a",attributes:{href:t}}]},menuitemradio:{type:"widget",attributes:{allowed:["aria-checked","aria-selected","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["menu","menubar"],implicit:['menuitem[type="radio"]'],unsupported:!1,allowedElements:[{nodeName:["button","li"]},{nodeName:"input",properties:{type:["image","button","radio"]}},{nodeName:"a",attributes:{href:t}}]},navigation:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["nav"],unsupported:!1,allowedElements:["section"]},none:{type:"structure",attributes:null,owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:[{nodeName:["article","aside","dl","embed","figcaption","fieldset","figure","footer","form","h1","h2","h3","h4","h5","h6","header","iframe","li","ol","section","ul"]},{nodeName:"img",attributes:{alt:t}}]},note:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["aside"]},option:{type:"widget",attributes:{allowed:["aria-selected","aria-posinset","aria-setsize","aria-checked","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["listbox"],implicit:["option"],unsupported:!1,allowedElements:[{nodeName:["button","li"]},{nodeName:"input",properties:{type:["checkbox","button"]}},{nodeName:"a",attributes:{href:t}}]},presentation:{type:"structure",attributes:null,owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:[{nodeName:["article","aside","dl","embed","figcaption","fieldset","figure","footer","form","h1","h2","h3","h4","h5","h6","header","iframe","li","ol","section","ul"]},{nodeName:"img",attributes:{alt:t}}]},progressbar:{type:"widget",attributes:{allowed:["aria-valuetext","aria-valuenow","aria-valuemax","aria-valuemin","aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["progress"],unsupported:!1},radio:{type:"widget",attributes:{allowed:["aria-selected","aria-posinset","aria-setsize","aria-required","aria-errormessage","aria-checked"]},owned:null,nameFrom:["author","contents"],context:null,implicit:['input[type="radio"]'],unsupported:!1,allowedElements:[{nodeName:["button","li"]},{nodeName:"input",properties:{type:["image","button"]}}]},radiogroup:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-required","aria-expanded","aria-readonly","aria-errormessage"]},owned:{all:["radio"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:{nodeName:["ol","ul"]}},range:{nameFrom:["author"],type:"abstract",unsupported:!1},region:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["section[aria-label]","section[aria-labelledby]","section[title]"],unsupported:!1,allowedElements:{nodeName:["article","aside"]}},roletype:{type:"abstract",unsupported:!1},row:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-colindex","aria-expanded","aria-level","aria-selected","aria-rowindex","aria-errormessage"]},owned:{one:["cell","columnheader","rowheader","gridcell"]},nameFrom:["author","contents"],context:["rowgroup","grid","treegrid","table"],implicit:["tr"],unsupported:!1},rowgroup:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-errormessage"]},owned:{all:["row"]},nameFrom:["author","contents"],context:["grid","table","treegrid"],implicit:["tbody","thead","tfoot"],unsupported:!1},rowheader:{type:"structure",attributes:{allowed:["aria-colindex","aria-colspan","aria-expanded","aria-rowindex","aria-rowspan","aria-required","aria-readonly","aria-selected","aria-sort","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["row"],implicit:["th"],unsupported:!1},scrollbar:{type:"widget",attributes:{required:["aria-controls","aria-valuenow"],allowed:["aria-valuetext","aria-orientation","aria-errormessage","aria-valuemax","aria-valuemin"]},owned:null,nameFrom:["author"],context:null,unsupported:!1},search:{type:"landmark",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:{nodeName:["aside","form","section"]}},searchbox:{type:"widget",attributes:{allowed:["aria-activedescendant","aria-autocomplete","aria-multiline","aria-readonly","aria-required","aria-placeholder","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:['input[type="search"]'],unsupported:!1,allowedElements:{nodeName:"input",properties:{type:"text"}}},section:{nameFrom:["author","contents"],type:"abstract",unsupported:!1},sectionhead:{nameFrom:["author","contents"],type:"abstract",unsupported:!1},select:{nameFrom:["author"],type:"abstract",unsupported:!1},separator:{type:"structure",attributes:{allowed:["aria-expanded","aria-orientation","aria-valuenow","aria-valuemax","aria-valuemin","aria-valuetext","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["hr"],unsupported:!1,allowedElements:["li"]},slider:{type:"widget",attributes:{allowed:["aria-valuetext","aria-orientation","aria-readonly","aria-errormessage","aria-valuemax","aria-valuemin"],required:["aria-valuenow"]},owned:null,nameFrom:["author"],context:null,implicit:['input[type="range"]'],unsupported:!1},spinbutton:{type:"widget",attributes:{allowed:["aria-valuetext","aria-required","aria-readonly","aria-errormessage","aria-valuemax","aria-valuemin"],required:["aria-valuenow"]},owned:null,nameFrom:["author"],context:null,implicit:['input[type="number"]'],unsupported:!1,allowedElements:{nodeName:"input",properties:{type:"text"}}},status:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:["output"],unsupported:!1,allowedElements:["section"]},structure:{type:"abstract",unsupported:!1},switch:{type:"widget",attributes:{allowed:["aria-errormessage"],required:["aria-checked"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1,allowedElements:["button",{nodeName:"input",properties:{type:["checkbox","image","button"]}},{nodeName:"a",attributes:{href:t}}]},tab:{type:"widget",attributes:{allowed:["aria-selected","aria-expanded","aria-setsize","aria-posinset","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["tablist"],unsupported:!1,allowedElements:[{nodeName:["button","h1","h2","h3","h4","h5","h6","li"]},{nodeName:"input",properties:{type:"button"}},{nodeName:"a",attributes:{href:t}}]},table:{type:"structure",attributes:{allowed:["aria-colcount","aria-rowcount","aria-errormessage"]},owned:{one:["rowgroup","row"]},nameFrom:["author"],context:null,implicit:["table"],unsupported:!1},tablist:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-level","aria-multiselectable","aria-orientation","aria-errormessage"]},owned:{all:["tab"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["ol","ul"]},tabpanel:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1,allowedElements:["section"]},term:{type:"structure",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,implicit:["dt"],unsupported:!1},textbox:{type:"widget",attributes:{allowed:["aria-activedescendant","aria-autocomplete","aria-multiline","aria-readonly","aria-required","aria-placeholder","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:['input[type="text"]','input[type="email"]','input[type="password"]','input[type="tel"]','input[type="url"]',"input:not([type])","textarea"],unsupported:!1},timer:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,unsupported:!1},toolbar:{type:"structure",attributes:{allowed:["aria-activedescendant","aria-expanded","aria-orientation","aria-errormessage"]},owned:null,nameFrom:["author"],context:null,implicit:['menu[type="toolbar"]'],unsupported:!1,allowedElements:["ol","ul"]},tooltip:{type:"widget",attributes:{allowed:["aria-expanded","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:null,unsupported:!1},tree:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-multiselectable","aria-required","aria-expanded","aria-orientation","aria-errormessage"]},owned:{all:["treeitem"]},nameFrom:["author"],context:null,unsupported:!1,allowedElements:["ol","ul"]},treegrid:{type:"composite",attributes:{allowed:["aria-activedescendant","aria-colcount","aria-expanded","aria-level","aria-multiselectable","aria-readonly","aria-required","aria-rowcount","aria-orientation","aria-errormessage"]},owned:{one:["rowgroup","row"]},nameFrom:["author"],context:null,unsupported:!1},treeitem:{type:"widget",attributes:{allowed:["aria-checked","aria-selected","aria-expanded","aria-level","aria-posinset","aria-setsize","aria-errormessage"]},owned:null,nameFrom:["author","contents"],context:["group","tree"],unsupported:!1,allowedElements:["li",{nodeName:"a",attributes:{href:t}}]},widget:{type:"abstract",unsupported:!1},window:{nameFrom:["author"],type:"abstract",unsupported:!1}},n.elementsAllowedNoRole=[{nodeName:["base","body","caption","col","colgroup","datalist","dd","details","dt","head","html","keygen","label","legend","main","map","math","meta","meter","noscript","optgroup","param","picture","progress","script","source","style","template","textarea","title","track"]},{nodeName:"area",attributes:{href:t}},{nodeName:"input",properties:{type:["color","data","datatime","file","hidden","month","number","password","range","reset","submit","time","week"]}},{nodeName:"input",attributes:{list:e},properties:{type:["email","search","tel","url"]}},{nodeName:"link",attributes:{href:t}},{nodeName:"menu",attributes:{type:"context"}},{nodeName:"menuitem",attributes:{type:["command","checkbox","radio"]}},{nodeName:"select",condition:function(e){return 1<Number(e.getAttribute("size"))},properties:{multiple:!0}},{nodeName:["clippath","cursor","defs","desc","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","fedropshadow","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","filter","hatch","hatchpath","lineargradient","marker","mask","meshgradient","meshpatch","meshrow","metadata","mpath","pattern","radialgradient","solidcolor","stop","switch","view"]}],n.elementsAllowedAnyRole=[{nodeName:"a",attributes:{href:e}},{nodeName:["abbr","address","canvas","div","p","pre","blockquote","ins","del","output","span","table","tbody","thead","tfoot","td","em","strong","small","s","cite","q","dfn","abbr","time","code","var","samp","kbd","sub","sup","i","b","u","mark","ruby","rt","rp","bdi","bdo","br","wbr","th","tr"]}],n.evaluateRoleForElement={A:function(e){var t=e.node,n=e.out;return"http://www.w3.org/2000/svg"===t.namespaceURI||(!t.href.length||n)},AREA:function(e){return!e.node.href},BUTTON:function(e){var t=e.node,n=e.role,r=e.out;return"menu"===t.getAttribute("type")?"menuitem"===n:r},IMG:function(e){var t=e.node,n=e.out;return t.alt?!n:n},INPUT:function(e){var t=e.node,n=e.role,r=e.out;switch(t.type){case"button":case"image":return r;case"checkbox":return!("button"!==n||!t.hasAttribute("aria-pressed"))||r;case"radio":return"menuitemradio"===n;case"text":return"combobox"===n||"searchbox"===n||"spinbutton"===n;default:return!1}},LI:function(e){var t=e.node,n=e.out;return!axe.utils.matchesSelector(t,"ol li, ul li")||n},MENU:function(e){return"context"!==e.node.getAttribute("type")},OPTION:function(e){var t=e.node;return!axe.utils.matchesSelector(t,"select > option, datalist > option, optgroup > option")},SELECT:function(e){var t=e.node,n=e.role;return!t.multiple&&t.size<=1&&"menu"===n},SVG:function(e){var t=e.node,n=e.out;return!(!t.parentNode||"http://www.w3.org/2000/svg"!==t.parentNode.namespaceURI)||n}},n.rolesOfType={widget:["button","checkbox","dialog","gridcell","heading","link","log","marquee","menuitem","menuitemcheckbox","menuitemradio","option","progressbar","radio","scrollbar","slider","spinbutton","status","switch","tab","tabpanel","textbox","timer","tooltip","tree","treeitem"]};var s={};commons.color=s;var h=commons.dom={},r={};function i(e,t){return i.fromDefinition(e,t)}commons.forms=r,commons.matches=i;var o=commons.table={},g=commons.text={EdgeFormDefaults:{}};commons.utils=axe.utils;l.arialabelText=function(e){return 1!==(e=e.actualNode||e).nodeType?"":e.getAttribute("aria-label")||""},l.arialabelledbyText=function(r,e){var a=1<arguments.length&&void 0!==e?e:{};return 1!==(r=r.actualNode||r).nodeType||a.inLabelledByContext||a.inControlContext?"":h.idrefs(r,"aria-labelledby").filter(function(e){return e}).reduce(function(e,t){var n=g.accessibleText(t,R({inLabelledByContext:!0,startNode:a.startNode||r},a));return e?"".concat(e," ").concat(n):n},"")},l.requiredAttr=function(e){var t=l.lookupTable.role[e];return t&&t.attributes&&t.attributes.required||[]},l.allowedAttr=function(e){var t=l.lookupTable.role[e],n=t&&t.attributes&&t.attributes.allowed||[],r=t&&t.attributes&&t.attributes.required||[];return n.concat(l.lookupTable.globalAttributes).concat(r)},l.validateAttr=function(e){return!!l.lookupTable.attributes[e]},l.getElementUnallowedRoles=function(t,e){var n=!(1<arguments.length&&void 0!==e)||e,r=t.nodeName.toUpperCase();if(!axe.utils.isHtmlElement(t))return[];var a=function(e){var t=[];if(!e)return t;if(e.hasAttribute("role")){var n=axe.utils.tokenList(e.getAttribute("role").toLowerCase());t=t.concat(n)}if(e.hasAttributeNS("http://www.idpf.org/2007/ops","type")){var r=axe.utils.tokenList(e.getAttributeNS("http://www.idpf.org/2007/ops","type").toLowerCase()).map(function(e){return"doc-".concat(e)});t=t.concat(r)}return t=t.filter(function(e){return axe.commons.aria.isValidRole(e)})}(t),o=axe.commons.aria.implicitRole(t);return a.filter(function(e){return(!n||e!==o)&&(!(n||"row"===e&&"TR"===r&&axe.utils.matchesSelector(t,'table[role="grid"] > tr'))||!l.isAriaRoleAllowedOnElement(t,e))})},l.getOwnedVirtual=function(e){var t=e.actualNode,n=e.children;if(!t||!n)throw new Error("getOwnedVirtual requires a virtual node");return h.idrefs(t,"aria-owns").reduce(function(e,t){if(t){var n=axe.utils.getNodeFromTree(t);e.push(n)}return e},n)},l.getRole=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=n.noImplicit,a=n.fallback,o=n.abstracts,i=n.dpub;if(1!==(e=e.actualNode||e).nodeType)return null;var u=(e.getAttribute("role")||"").trim().toLowerCase(),s=(a?axe.utils.tokenList(u):[u]).filter(function(e){return!(!i&&"doc-"===e.substr(0,4))&&l.isValidRole(e,{allowAbstract:o})})[0];return s||r?s||null:l.implicitRole(e)};var a,u=/^idrefs?$/;function c(e){return e.getPropertyValue("font-family").split(/[,;]/g).map(function(e){return e.trim().toLowerCase()})}function d(e,t){var n=t.nodeName.toUpperCase(),r={TD:["TR","THEAD","TBODY","TFOOT"],TH:["TR","THEAD","TBODY","TFOOT"],INPUT:["LABEL"]},a=e.map(function(e){return e.nodeName.toUpperCase()}),o=e;for(var i in r)if(a.includes(i))for(var u=0;u<r[i].length;u++){var s=axe.commons.dom.findUp(t,r[i][u]);if(s&&-1===e.indexOf(s))axe.commons.dom.visuallyOverlaps(t.getBoundingClientRect(),s)&&o.splice(a.indexOf(i)+1,0,s);n===r[i][u]&&-1===a.indexOf(n)&&o.splice(a.indexOf(i)+1,0,t)}return o}function m(e,t){var n=e.getClientRects()[0],r=h.shadowElementsFromPoint(n.left,n.top);if(r)for(var a=0;a<r.length;a++)if(r[a]!==e&&r[a]===t)return!0;return!1}l.isAccessibleRef=function(e){e=e.actualNode||e;var t=h.getRootNode(e);t=t.documentElement||t;var n=e.id;axe._cache.get("idRefs")||(axe._cache.set("idRefs",{}),function e(n,t){n.hasAttribute&&("LABEL"===n.nodeName.toUpperCase()&&n.hasAttribute("for")&&(axe._cache.get("idRefs")[n.getAttribute("for")]=!0),t.filter(function(e){return n.hasAttribute(e)}).forEach(function(e){var t=n.getAttribute(e);axe.utils.tokenList(t).forEach(function(e){axe._cache.get("idRefs")[e]=!0})}));for(var r=0;r<n.children.length;r++)e(n.children[r],t)}(t,Object.keys(l.lookupTable.attributes).filter(function(e){var t=l.lookupTable.attributes[e].type;return u.test(t)})));return!0===axe._cache.get("idRefs")[n]},l.isAriaRoleAllowedOnElement=function(e,t){var n=e.nodeName.toUpperCase(),r=axe.commons.aria.lookupTable;if(i(e,r.elementsAllowedNoRole))return!1;if(i(e,r.elementsAllowedAnyRole))return!0;var a=r.role[t];if(!a||!a.allowedElements)return!1;var o=i(e,a.allowedElements);return Object.keys(r.evaluateRoleForElement).includes(n)?r.evaluateRoleForElement[n]({node:e,role:t,out:o}):o},l.isUnsupportedRole=function(e){var t=l.lookupTable.role[e];return!!t&&t.unsupported},l.labelVirtual=function(e){var t,n=e.actualNode;return n.getAttribute("aria-labelledby")&&(t=h.idrefs(n,"aria-labelledby").map(function(e){var t=axe.utils.getNodeFromTree(e);return t?g.visibleVirtual(t,!0):""}).join(" ").trim())?t:(t=(t=n.getAttribute("aria-label"))&&g.sanitize(t).trim())?t:null},l.label=function(e){return e=axe.utils.getNodeFromTree(e),l.labelVirtual(e)},l.namedFromContents=function(e,t){var n=(1<arguments.length&&void 0!==t?t:{}).strict;if(1!==(e=e.actualNode||e).nodeType)return!1;var r=l.getRole(e),a=l.lookupTable.role[r];return!!(a&&a.nameFrom.includes("contents")||"TABLE"===e.nodeName.toUpperCase())||!n&&(!a||["presentation","none"].includes(r))},l.isValidRole=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=t.allowAbstract,r=t.flagUnsupported,a=void 0!==r&&r,o=l.lookupTable.role[e],i=!!o&&o.unsupported;return!(!o||a&&i)&&(!!n||"abstract"!==o.type)},l.getRolesWithNameFromContents=function(){return Object.keys(l.lookupTable.role).filter(function(e){return l.lookupTable.role[e].nameFrom&&-1!==l.lookupTable.role[e].nameFrom.indexOf("contents")})},l.getRolesByType=function(t){return Object.keys(l.lookupTable.role).filter(function(e){return l.lookupTable.role[e].type===t})},l.getRoleType=function(e){var t=l.lookupTable.role[e];return t&&t.type||null},l.requiredOwned=function(e){"use strict";var t=null,n=l.lookupTable.role[e];return n&&(t=axe.utils.clone(n.owned)),t},l.requiredContext=function(e){"use strict";var t=null,n=l.lookupTable.role[e];return n&&(t=axe.utils.clone(n.context)),t},l.implicitNodes=function(e){"use strict";var t=null,n=l.lookupTable.role[e];return n&&n.implicit&&(t=axe.utils.clone(n.implicit)),t},l.implicitRole=function(n){"use strict";var e=Object.keys(l.lookupTable.role).map(function(e){var t=l.lookupTable.role[e];return{name:e,implicit:t&&t.implicit}}).reduce(function(e,t){return t.implicit&&t.implicit.some(function(e){return axe.utils.matchesSelector(n,e)})&&e.push(t.name),e},[]);if(!e.length)return null;for(var r,t=axe.utils.getNodeAttributes(n),a=[],o=0,i=t.length;o<i;o++){var u=t[o];u.name.match(/^aria-/)&&a.push(u.name)}return(r=a,e.map(function(e){return{score:function(e){return l.allowedAttr(e).reduce(function(e,t){return e+(-1<r.indexOf(t)?1:0)},0)}(e),name:e}}).sort(function(e,t){return t.score-e.score}).map(function(e){return e.name})).shift()},l.validateAttrValue=function(e,t){"use strict";var n,r,a=e.getAttribute(t),o=l.lookupTable.attributes[t],i=h.getRootNode(e);if(!o)return!0;if(o.allowEmpty&&(!a||""===a.trim()))return!0;switch(o.type){case"boolean":case"nmtoken":return"string"==typeof a&&o.values.includes(a.toLowerCase());case"nmtokens":return(r=axe.utils.tokenList(a)).reduce(function(e,t){return e&&o.values.includes(t)},0!==r.length);case"idref":return!(!a||!i.getElementById(a));case"idrefs":return(r=axe.utils.tokenList(a)).some(function(e){return i.getElementById(e)});case"string":return""!==a.trim();case"decimal":return!(!(n=a.match(/^[-+]?([0-9]*)\.?([0-9]*)$/))||!n[1]&&!n[2]);case"int":return/^[-+]?[0-9]+$/.test(a)}},s.centerPointOfRect=function(e){if(!(e.left>window.innerWidth)&&!(e.top>window.innerHeight))return{x:Math.min(Math.ceil(e.left+e.width/2),window.innerWidth-1),y:Math.min(Math.ceil(e.top+e.height/2),window.innerHeight-1)}},s.Color=function(e,t,n,r){this.red=e,this.green=t,this.blue=n,this.alpha=r,this.toHexString=function(){var e=Math.round(this.red).toString(16),t=Math.round(this.green).toString(16),n=Math.round(this.blue).toString(16);return"#"+(15.5<this.red?e:"0"+e)+(15.5<this.green?t:"0"+t)+(15.5<this.blue?n:"0"+n)};var a=/^rgb\((\d+), (\d+), (\d+)\)$/,o=/^rgba\((\d+), (\d+), (\d+), (\d*(\.\d+)?)\)/;this.parseRgbString=function(e){if("transparent"===e)return this.red=0,this.green=0,this.blue=0,void(this.alpha=0);var t=e.match(a);return t?(this.red=parseInt(t[1],10),this.green=parseInt(t[2],10),this.blue=parseInt(t[3],10),void(this.alpha=1)):(t=e.match(o))?(this.red=parseInt(t[1],10),this.green=parseInt(t[2],10),this.blue=parseInt(t[3],10),void(this.alpha=Math.round(100*parseFloat(t[4]))/100)):void 0},this.getRelativeLuminance=function(){var e=this.red/255,t=this.green/255,n=this.blue/255;return.2126*(e<=.03928?e/12.92:Math.pow((.055+e)/1.055,2.4))+.7152*(t<=.03928?t/12.92:Math.pow((.055+t)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((.055+n)/1.055,2.4))}},s.flattenColors=function(e,t){var n=e.alpha,r=(1-n)*t.red+n*e.red,a=(1-n)*t.green+n*e.green,o=(1-n)*t.blue+n*e.blue,i=e.alpha+t.alpha*(1-e.alpha);return new s.Color(r,a,o,i)},s.getContrast=function(e,t){if(!t||!e)return null;t.alpha<1&&(t=s.flattenColors(t,e));var n=e.getRelativeLuminance(),r=t.getRelativeLuminance();return(Math.max(r,n)+.05)/(Math.min(r,n)+.05)},s.hasValidContrastRatio=function(e,t,n,r){var a=s.getContrast(e,t),o=r&&Math.ceil(72*n)/96<14||!r&&Math.ceil(72*n)/96<18?4.5:3;return{isValid:o<a,contrastRatio:a,expectedContrastRatio:o}},s.elementHasImage=function(e,t){var n=e.nodeName.toUpperCase();if(["IMG","CANVAS","OBJECT","IFRAME","VIDEO","SVG"].includes(n))return axe.commons.color.incompleteData.set("bgColor","imgNode"),!0;var r=(t=t||window.getComputedStyle(e)).getPropertyValue("background-image"),a="none"!==r;if(a){var o=/gradient/.test(r);axe.commons.color.incompleteData.set("bgColor",o?"bgGradient":"bgImage")}return a},s.elementIsDistinct=function(e,t){var r=window.getComputedStyle(e);if("none"!==r.getPropertyValue("background-image"))return!0;if(["border-bottom","border-top","outline"].reduce(function(e,t){var n=new s.Color;return n.parseRgbString(r.getPropertyValue(t+"-color")),e||"none"!==r.getPropertyValue(t+"-style")&&0<parseFloat(r.getPropertyValue(t+"-width"))&&0!==n.alpha},!1))return!0;var n=window.getComputedStyle(t);if(c(r)[0]!==c(n)[0])return!0;var a=["text-decoration-line","text-decoration-style","font-weight","font-style","font-size"].reduce(function(e,t){return e||r.getPropertyValue(t)!==n.getPropertyValue(t)},!1),o=r.getPropertyValue("text-decoration");return o.split(" ").length<3&&(a=a||o!==n.getPropertyValue("text-decoration")),a},s.getBackgroundColor=function(r,e,t){var a=1<arguments.length&&void 0!==e?e:[];if(!0!==(2<arguments.length&&void 0!==t&&t)){var n=r.getBoundingClientRect().height-2>=2*window.innerHeight;r.scrollIntoView(n)}var o=[],i=s.getBackgroundStack(r);return(i||[]).some(function(e){var t=window.getComputedStyle(e),n=s.getOwnBackgroundColor(t);return function(e,t,n){var r=e!==t&&!h.visuallyContains(e,t)&&0!==n.alpha;r&&axe.commons.color.incompleteData.set("bgColor","elmPartiallyObscured");return r}(r,e,n)||s.elementHasImage(e,t)?(o=null,a.push(e),!0):0!==n.alpha&&(a.push(e),o.push(n),1===n.alpha)}),null===o||null===i?null:(o.push(new s.Color(255,255,255,1)),o.reduce(s.flattenColors))},s.getBackgroundStack=function(e){var t=s.filteredRectStack(e);if(null===t)return null;t=d(t,e);var n=(t=function(e){var t=e.indexOf(document.body),n=e;(1<t||-1===t)&&!s.elementHasImage(document.documentElement)&&0===s.getOwnBackgroundColor(window.getComputedStyle(document.documentElement)).alpha&&(1<t&&n.splice(t,1),n.splice(e.indexOf(document.documentElement),1),n.push(document.body));return n}(t=h.reduceToElementsBelowFloating(t,e))).indexOf(e);return function(e,t,n){if(0<e)for(var r=e-1;0<=r;r--){var a=t[r];if(m(n,a))return!0;t.splice(r,1)}return!1}(n,t,e)?(axe.commons.color.incompleteData.set("bgColor","bgOverlap"),null):-1!==n?t:null},s.filteredRectStack=function(a){var o=s.getRectStack(a);if(o&&1===o.length)return o[0];if(o&&1<o.length){var i,u=o.shift();return d(u,a),o.forEach(function(e,t){if(0!==t){var n=o[t-1],r=o[t];i=n.every(function(e,t){return e===r[t]})||u.includes(a)}}),i?o[0]:(axe.commons.color.incompleteData.set("bgColor","elmPartiallyObscuring"),null)}return axe.commons.color.incompleteData.set("bgColor","outsideViewport"),null},s.getRectStack=function(e){var t=axe.commons.color.centerPointOfRect(e.getBoundingClientRect());if(!t)return null;var n=h.shadowElementsFromPoint(t.x,t.y),r=Array.from(e.getClientRects());if(!r||r.length<=1)return[n];var a=r.filter(function(e){return e.width&&0<e.width}).map(function(e){var t=axe.commons.color.centerPointOfRect(e);if(t)return h.shadowElementsFromPoint(t.x,t.y)});return a.some(function(e){return void 0===e})?null:(a.splice(0,0,n),a)},h.isOpaque=function(e){var t=window.getComputedStyle(e);return s.elementHasImage(e,t)||1===s.getOwnBackgroundColor(t).alpha},s.getForegroundColor=function(e,t){var n=window.getComputedStyle(e),r=new s.Color;r.parseRgbString(n.getPropertyValue("color"));var a=n.getPropertyValue("opacity");if(r.alpha=r.alpha*a,1===r.alpha)return r;var o=s.getBackgroundColor(e,[],t);if(null!==o)return s.flattenColors(r,o);var i=axe.commons.color.incompleteData.get("bgColor");return axe.commons.color.incompleteData.set("fgColor",i),null},s.getOwnBackgroundColor=function(e){var t=new s.Color;if(t.parseRgbString(e.getPropertyValue("background-color")),0!==t.alpha){var n=e.getPropertyValue("opacity");t.alpha=t.alpha*n}return t},s.incompleteData=(a={},{set:function(e,t){if("string"!=typeof e)throw new Error("Incomplete data: key must be a string");return t&&(a[e]=t),a[e]},get:function(e){return a[e]},clear:function(){a={}}}),h.reduceToElementsBelowFloating=function(e,t){var n,r,a,o=["fixed","sticky"],i=[],u=!1;for(n=0;n<e.length;++n)(r=e[n])===t&&(u=!0),a=window.getComputedStyle(r),u||-1===o.indexOf(a.position)?i.push(r):i=[];return i},h.findElmsInContext=function(e){var t,n=e.context,r=e.value,a=e.attr,o=e.elm,i=void 0===o?"":o,u=axe.utils.escapeSelector(r);return t=9===n.nodeType||11===n.nodeType?n:h.getRootNode(n),Array.from(t.querySelectorAll(i+"["+a+"="+u+"]"))},h.findUp=function(e,t){return h.findUpVirtual(axe.utils.getNodeFromTree(e),t)},h.findUpVirtual=function(e,t){var n;if(n=e.actualNode,!e.shadowId&&"function"==typeof e.actualNode.closest){var r=e.actualNode.closest(t);return r||null}for(;(n=n.assignedSlot?n.assignedSlot:n.parentNode)&&11===n.nodeType&&(n=n.host),n&&!axe.utils.matchesSelector(n,t)&&n!==document.documentElement;);return n&&axe.utils.matchesSelector(n,t)?n:null},h.getComposedParent=function e(t){if(t.assignedSlot)return e(t.assignedSlot);if(t.parentNode){var n=t.parentNode;if(1===n.nodeType)return n;if(n.host)return n.host}return null},h.getElementByReference=function(e,t){var n=e.getAttribute(t);if(!n)return null;"#"===n.charAt(0)?n=decodeURIComponent(n.substring(1)):"/#"===n.substr(0,2)&&(n=decodeURIComponent(n.substring(2)));var r=document.getElementById(n);return r||((r=document.getElementsByName(n)).length?r[0]:null)},h.getElementCoordinates=function(e){"use strict";var t=h.getScrollOffset(document),n=t.left,r=t.top,a=e.getBoundingClientRect();return{top:a.top+r,right:a.right+n,bottom:a.bottom+r,left:a.left+n,width:a.right-a.left,height:a.bottom-a.top}},h.getRootNode=axe.utils.getRootNode,h.getScrollOffset=function(e){"use strict";if(!e.nodeType&&e.document&&(e=e.document),9!==e.nodeType)return{left:e.scrollLeft,top:e.scrollTop};var t=e.documentElement,n=e.body;return{left:t&&t.scrollLeft||n&&n.scrollLeft||0,top:t&&t.scrollTop||n&&n.scrollTop||0}},h.getTabbableElements=function(e){return axe.utils.querySelectorAll(e,"*").filter(function(e){var t=e.isFocusable,n=e.actualNode.getAttribute("tabindex");return(n=n&&!isNaN(parseInt(n,10))?parseInt(n):null)?t&&0<=n:t})},h.getViewportSize=function(e){"use strict";var t,n=e.document,r=n.documentElement;return e.innerWidth?{width:e.innerWidth,height:e.innerHeight}:r?{width:r.clientWidth,height:r.clientHeight}:{width:(t=n.body).clientWidth,height:t.clientHeight}};var p=["HEAD","TITLE","TEMPLATE","SCRIPT","STYLE","IFRAME","OBJECT","VIDEO","AUDIO","NOSCRIPT"];function f(e){return e.disabled||h.isHiddenWithCSS(e)&&"AREA"!==e.nodeName.toUpperCase()}h.hasContentVirtual=function(e,t,n){return function(e){if(!p.includes(e.actualNode.nodeName.toUpperCase()))return e.children.some(function(e){var t=e.actualNode;return 3===t.nodeType&&t.nodeValue.trim()})}(e)||h.isVisualContent(e.actualNode)||!!n||!!l.labelVirtual(e)||!t&&e.children.some(function(e){return 1===e.actualNode.nodeType&&h.hasContentVirtual(e)})},h.hasContent=function(e,t,n){return e=axe.utils.getNodeFromTree(e),h.hasContentVirtual(e,t,n)},h.idrefs=function(e,t){"use strict";var n,r,a=h.getRootNode(e),o=[],i=e.getAttribute(t);if(i)for(n=0,r=(i=axe.utils.tokenList(i)).length;n<r;n++)o.push(a.getElementById(i[n]));return o},h.isFocusable=function(e){"use strict";if(f(e))return!1;if(h.isNativelyFocusable(e))return!0;var t=e.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))},h.isNativelyFocusable=function(e){"use strict";if(!e||f(e))return!1;switch(e.nodeName.toUpperCase()){case"A":case"AREA":if(e.href)return!0;break;case"INPUT":return"hidden"!==e.type;case"TEXTAREA":case"SELECT":case"DETAILS":case"BUTTON":return!0}return!1},h.insertedIntoFocusOrder=function(e){return-1<e.tabIndex&&h.isFocusable(e)&&!h.isNativelyFocusable(e)},h.isHiddenWithCSS=function(e,t){if(9===e.nodeType)return!1;if(11===e.nodeType&&(e=e.host),["STYLE","SCRIPT"].includes(e.nodeName.toUpperCase()))return!1;var n=window.getComputedStyle(e,null);if(!n)throw new Error("Style does not exist for the given element.");if("none"===n.getPropertyValue("display"))return!0;var r=["hidden","collapse"],a=n.getPropertyValue("visibility");if(r.includes(a)&&!t)return!0;if(r.includes(a)&&t&&r.includes(t))return!0;var o=h.getComposedParent(e);return!(!o||r.includes(a))&&h.isHiddenWithCSS(o,a)},h.isHTML5=function(e){var t=e.doctype;return null!==t&&("html"===t.name&&!t.publicId&&!t.systemId)};var b=["block","list-item","table","flex","grid","inline-block"];function y(e){var t=window.getComputedStyle(e).getPropertyValue("display");return b.includes(t)||"table-"===t.substr(0,6)}h.isInTextBlock=function(n){if(y(n))return!1;var e=function(e){for(var t=h.getComposedParent(e);t&&!y(t);)t=h.getComposedParent(t);return axe.utils.getNodeFromTree(t)}(n),r="",a="",o=0;return function t(e,n){!1!==n(e.actualNode)&&e.children.forEach(function(e){return t(e,n)})}(e,function(e){if(2===o)return!1;if(3===e.nodeType&&(r+=e.nodeValue),1===e.nodeType){var t=(e.nodeName||"").toUpperCase();if(["BR","HR"].includes(t))0===o?a=r="":o=2;else{if("none"===e.style.display||"hidden"===e.style.overflow||!["",null,"none"].includes(e.style.float)||!["",null,"relative"].includes(e.style.position))return!1;if("A"===t&&e.href||"link"===(e.getAttribute("role")||"").toLowerCase())return e===n&&(o=1),a+=e.textContent,!1}}}),r=axe.commons.text.sanitize(r),a=axe.commons.text.sanitize(a),r.length>a.length},h.isNode=function(e){"use strict";return e instanceof Node},h.isOffscreen=function(e){var t,n=document.documentElement,r=window.getComputedStyle(e),a=window.getComputedStyle(document.body||n).getPropertyValue("direction"),o=h.getElementCoordinates(e);if(o.bottom<0&&(function(e,t){for(e=h.getComposedParent(e);e&&"html"!==e.nodeName.toLowerCase();){if(e.scrollTop&&0<=(t+=e.scrollTop))return!1;e=h.getComposedParent(e)}return!0}(e,o.bottom)||"absolute"===r.position))return!0;if(0===o.left&&0===o.right)return!1;if("ltr"===a){if(o.right<=0)return!0}else if(t=Math.max(n.scrollWidth,h.getViewportSize(window).width),o.left>=t)return!0;return!1};var v=/^\/?#[^/!]/;h.isSkipLink=function(e){return!!v.test(e.getAttribute("href"))&&(void 0!==axe._cache.get("firstPageLink")?t=axe._cache.get("firstPageLink"):(t=axe.utils.querySelectorAll(axe._tree,'a:not([href^="#"]):not([href^="/#"]):not([href^="javascript"])')[0],axe._cache.set("firstPageLink",t||null)),!t||e.compareDocumentPosition(t.actualNode)===e.DOCUMENT_POSITION_FOLLOWING);var t},h.isVisible=function(e,t,n){"use strict";var r=axe.utils.getNodeFromTree(e),a="_isVisible"+(t?"ScreenReader":"");if(9===e.nodeType)return!0;if(11===e.nodeType&&(e=e.host),r&&void 0!==r[a])return r[a];var o=window.getComputedStyle(e,null);if(null===o)return!1;var i=e.nodeName.toUpperCase();if("none"===o.getPropertyValue("display")||["STYLE","SCRIPT","NOSCRIPT","TEMPLATE"].includes(i)||!t&&function(e){"use strict";var t=e.match(/rect\s*\(([0-9]+)px,?\s*([0-9]+)px,?\s*([0-9]+)px,?\s*([0-9]+)px\s*\)/);return!(!t||5!==t.length)&&(t[3]-t[1]<=0&&t[2]-t[4]<=0)}(o.getPropertyValue("clip"))||!n&&("hidden"===o.getPropertyValue("visibility")||!t&&h.isOffscreen(e))||t&&"true"===e.getAttribute("aria-hidden"))return!1;var u=e.assignedSlot?e.assignedSlot:e.parentNode,s=!1;return u&&(s=h.isVisible(u,t,!0)),r&&(r[a]=s),s};var D=["checkbox","img","radio","range","slider","spinbutton","textbox"];h.isVisualContent=function(e){var t=e.getAttribute("role");if(t)return-1!==D.indexOf(t);switch(e.nodeName.toUpperCase()){case"IMG":case"IFRAME":case"OBJECT":case"VIDEO":case"AUDIO":case"CANVAS":case"SVG":case"MATH":case"BUTTON":case"SELECT":case"TEXTAREA":case"KEYGEN":case"PROGRESS":case"METER":return!0;case"INPUT":return"hidden"!==e.type;default:return!1}},h.shadowElementsFromPoint=function(r,a){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:document,o=3<arguments.length&&void 0!==arguments[3]?arguments[3]:0;if(999<o)throw new Error("Infinite loop detected");return Array.from(t.elementsFromPoint(r,a)).filter(function(e){return h.getRootNode(e)===t}).reduce(function(e,t){if(axe.utils.isShadowRoot(t)){var n=h.shadowElementsFromPoint(r,a,t.shadowRoot,o+1);(e=e.concat(n)).length&&axe.commons.dom.visuallyContains(e[0],t)&&e.push(t)}else e.push(t);return e},[])},h.visuallyContains=function(e,t){var n=e.getBoundingClientRect(),r=n.top+.01,a=n.bottom-.01,o=n.left+.01,i=n.right-.01,u=t.getBoundingClientRect(),s=u.top,l=u.left,c=s-t.scrollTop,d=s-t.scrollTop+t.scrollHeight,m=l-t.scrollLeft,p=l-t.scrollLeft+t.scrollWidth,f=window.getComputedStyle(t);return"inline"===f.getPropertyValue("display")||!(o<m&&o<u.left||r<c&&r<u.top||p<i&&i>u.right||d<a&&a>u.bottom)&&(!(i>u.right||a>u.bottom)||("scroll"===f.overflow||"auto"===f.overflow||"hidden"===f.overflow||t instanceof HTMLBodyElement||t instanceof HTMLHtmlElement))},h.visuallyOverlaps=function(e,t){var n=t.getBoundingClientRect(),r=n.top,a=n.left,o=r-t.scrollTop,i=r-t.scrollTop+t.scrollHeight,u=a-t.scrollLeft,s=a-t.scrollLeft+t.scrollWidth;if(e.left>s&&e.left>n.right||e.top>i&&e.top>n.bottom||e.right<u&&e.right<n.left||e.bottom<o&&e.bottom<n.top)return!1;var l=window.getComputedStyle(t);return!(e.left>n.right||e.top>n.bottom)||("scroll"===l.overflow||"auto"===l.overflow||t instanceof HTMLBodyElement||t instanceof HTMLHtmlElement)},r.isAriaCombobox=function(e){return"combobox"===axe.commons.aria.getRole(e,{noImplicit:!0})},r.isAriaListbox=function(e){return"listbox"===axe.commons.aria.getRole(e,{noImplicit:!0})};var w=["progressbar","scrollbar","slider","spinbutton"];r.isAriaRange=function(e){var t=axe.commons.aria.getRole(e,{noImplicit:!0});return w.includes(t)},r.isAriaTextbox=function(e){return"textbox"===axe.commons.aria.getRole(e,{noImplicit:!0})},r.isNativeSelect=function(e){return"SELECT"===e.nodeName.toUpperCase()};var k=["button","checkbox","color","file","hidden","image","password","radio","reset","submit"];r.isNativeTextbox=function(e){var t=e.nodeName.toUpperCase();return"TEXTAREA"===t||"INPUT"===t&&!k.includes(e.type)},i.attributes=function(t,e){return t=t.actualNode||t,i.fromFunction(function(e){return t.getAttribute(e)},e)},i.condition=function(e,t){return!!t(e)};var x,E=["nodeName","attributes","properties","condition"];function C(e){var t=e.actualNode;return 3!==t.nodeType?"":t.textContent}i.fromDefinition=function(r,a){return r=r.actualNode||r,Array.isArray(a)?a.some(function(e){return i(r,e)}):"string"==typeof a?axe.utils.matchesSelector(r,a):Object.keys(a).every(function(e){if(!E.includes(e))throw new Error('Unknown matcher type "'.concat(e,'"'));var t=i[e],n=a[e];return t(r,n)})},i.fromFunction=function(t,n){if("object"!==S(n)||Array.isArray(n)||n instanceof RegExp)throw new Error("Expect matcher to be an object");return Object.keys(n).every(function(e){return i.fromPrimative(t(e),n[e])})},i.fromPrimative=function(e,t){var n=S(t);return Array.isArray(t)&&void 0!==e?t.includes(e):"function"===n?!!t(e):t instanceof RegExp?t.test(e):t===e},i.nodeName=function(e,t,n){var r=(2<arguments.length&&void 0!==n?n:{}).isXHTML;if(e=e.actualNode||e,void 0===r){if("string"==typeof t)return axe.utils.matchesSelector(e,t);void 0===x&&(x=axe.utils.isXHTML(e.ownerDocument)),r=x}var a=r?e.nodeName:e.nodeName.toLowerCase();return i.fromPrimative(a,t)},i.properties=function(t,e){return t=t.actualNode||t,i.fromFunction(function(e){return t[e]},e)},o.getAllCells=function(e){var t,n,r,a,o=[];for(t=0,r=e.rows.length;t<r;t++)for(n=0,a=e.rows[t].cells.length;n<a;n++)o.push(e.rows[t].cells[n]);return o},o.getCellPosition=function(e,t){var n,r;for(t=t||o.toGrid(h.findUp(e,"table")),n=0;n<t.length;n++)if(t[n]&&-1!==(r=t[n].indexOf(e)))return{x:r,y:n}},o.getHeaders=function(e){if(e.hasAttribute("headers"))return commons.dom.idrefs(e,"headers");var t=commons.table.toGrid(commons.dom.findUp(e,"table")),n=commons.table.getCellPosition(e,t),r=o.traverse("left",n,t).filter(function(e){return o.isRowHeader(e)}),a=o.traverse("up",n,t).filter(function(e){return o.isColumnHeader(e)});return[].concat(r,a).reverse()},o.getScope=function(e){var t=e.getAttribute("scope"),n=e.getAttribute("role");if(e instanceof Element==!1||-1===["TD","TH"].indexOf(e.nodeName.toUpperCase()))throw new TypeError("Expected TD or TH element");if("columnheader"===n)return"col";if("rowheader"===n)return"row";if("col"===t||"row"===t)return t;if("TH"!==e.nodeName.toUpperCase())return!1;var r=o.toGrid(h.findUp(e,"table")),a=o.getCellPosition(e);return r[a.y].reduce(function(e,t){return e&&"TH"===t.nodeName.toUpperCase()},!0)?"col":r.map(function(e){return e[a.x]}).reduce(function(e,t){return e&&t&&"TH"===t.nodeName.toUpperCase()},!0)?"row":"auto"},o.isColumnHeader=function(e){return-1!==["col","auto"].indexOf(o.getScope(e))},o.isDataCell=function(e){if(!e.children.length&&!e.textContent.trim())return!1;var t=e.getAttribute("role");return axe.commons.aria.isValidRole(t)?["cell","gridcell"].includes(t):"TD"===e.nodeName.toUpperCase()},o.isDataTable=function(e){var t=(e.getAttribute("role")||"").toLowerCase();if(("presentation"===t||"none"===t)&&!h.isFocusable(e))return!1;if("true"===e.getAttribute("contenteditable")||h.findUp(e,'[contenteditable="true"]'))return!0;if("grid"===t||"treegrid"===t||"table"===t)return!0;if("landmark"===commons.aria.getRoleType(t))return!0;if("0"===e.getAttribute("datatable"))return!1;if(e.getAttribute("summary"))return!0;if(e.tHead||e.tFoot||e.caption)return!0;for(var n=0,r=e.children.length;n<r;n++)if("COLGROUP"===e.children[n].nodeName.toUpperCase())return!0;for(var a,o,i=0,u=e.rows.length,s=!1,l=0;l<u;l++)for(var c=0,d=(a=e.rows[l]).cells.length;c<d;c++){if("TH"===(o=a.cells[c]).nodeName.toUpperCase())return!0;if(s||o.offsetWidth===o.clientWidth&&o.offsetHeight===o.clientHeight||(s=!0),o.getAttribute("scope")||o.getAttribute("headers")||o.getAttribute("abbr"))return!0;if(["columnheader","rowheader"].includes((o.getAttribute("role")||"").toLowerCase()))return!0;if(1===o.children.length&&"ABBR"===o.children[0].nodeName.toUpperCase())return!0;i++}if(e.getElementsByTagName("table").length)return!1;if(u<2)return!1;var m,p,f=e.rows[Math.ceil(u/2)];if(1===f.cells.length&&1===f.cells[0].colSpan)return!1;if(5<=f.cells.length)return!0;if(s)return!0;for(l=0;l<u;l++){if(a=e.rows[l],m&&m!==window.getComputedStyle(a).getPropertyValue("background-color"))return!0;if(m=window.getComputedStyle(a).getPropertyValue("background-color"),p&&p!==window.getComputedStyle(a).getPropertyValue("background-image"))return!0;p=window.getComputedStyle(a).getPropertyValue("background-image")}return 20<=u||!(h.getElementCoordinates(e).width>.95*h.getViewportSize(window).width)&&(!(i<10)&&!e.querySelector("object, embed, iframe, applet"))},o.isHeader=function(e){if(o.isColumnHeader(e)||o.isRowHeader(e))return!0;if(e.getAttribute("id")){var t=axe.utils.escapeSelector(e.getAttribute("id"));return!!document.querySelector('[headers~="'.concat(t,'"]'))}return!1},o.isRowHeader=function(e){return["row","auto"].includes(o.getScope(e))},o.toGrid=function(e){for(var t=[],n=e.rows,r=0,a=n.length;r<a;r++){var o=n[r].cells;t[r]=t[r]||[];for(var i=0,u=0,s=o.length;u<s;u++)for(var l=0;l<o[u].colSpan;l++){for(var c=0;c<o[u].rowSpan;c++){for(t[r+c]=t[r+c]||[];t[r+c][i];)i++;t[r+c][i]=o[u]}i++}}return t},o.toArray=o.toGrid,o.traverse=function(e,t,n,r){if(Array.isArray(t)&&(r=n,n=t,t={x:0,y:0}),"string"==typeof e)switch(e){case"left":e={x:-1,y:0};break;case"up":e={x:0,y:-1};break;case"right":e={x:1,y:0};break;case"down":e={x:0,y:1}}return function e(t,n,r,a){var o,i=r[n.y]?r[n.y][n.x]:void 0;return i?"function"==typeof a&&!0===(o=a(i,n,r))?[i]:((o=e(t,{x:n.x+t.x,y:n.y+t.y},r,a)).unshift(i),o):[]}(e,{x:t.x+e.x,y:t.y+e.y},n,r)},g.accessibleText=function(e,t){var n=axe.utils.getNodeFromTree(e);return g.accessibleTextVirtual(n,t)},g.accessibleTextVirtual=function(n,e){var r=1<arguments.length&&void 0!==e?e:{},t=n.actualNode;if(r=function(e,t){var n=e.actualNode;t.startNode||(t=R({startNode:e},t));1===n.nodeType&&t.inLabelledByContext&&void 0===t.includeHidden&&(t=R({includeHidden:!h.isVisible(n,!0)},t));return t}(n,r),function(e,t){var n=e.actualNode;if(1!==n.nodeType||t.includeHidden)return!1;return!h.isVisible(n,!0)}(n,r))return"";var a=[l.arialabelledbyText,l.arialabelText,g.nativeTextAlternative,g.formControlValue,g.subtreeText,C,g.titleText].reduce(function(e,t){return r.startNode===n&&(e=g.sanitize(e)),""!==e?e:t(n,r)},"");return r.debug&&axe.log(a||"{empty-value}",t,r),a},g.accessibleTextVirtual.alreadyProcessed=function(e,t){return t.processed=t.processed||[],!!t.processed.includes(e)||(t.processed.push(e),!1)};var A=["textbox","progressbar","scrollbar","slider","spinbutton","combobox","listbox"];g.formControlValueMethods={nativeTextboxValue:function(e){if(e=e.actualNode||e,axe.commons.forms.isNativeTextbox(e))return e.value||"";return""},nativeSelectValue:function(e){return e=e.actualNode||e,axe.commons.forms.isNativeSelect(e)&&Array.from(e.options).filter(function(e){return e.selected}).map(function(e){return e.text}).join(" ")||""},ariaTextboxValue:function(e){var t=e.actualNode;if(!axe.commons.forms.isAriaTextbox(t))return"";return h.isHiddenWithCSS(t)?t.textContent:g.visibleVirtual(e,!0)},ariaListboxValue:function(e,t){var n=e.actualNode;if(!axe.commons.forms.isAriaListbox(n))return"";var r=l.getOwnedVirtual(e).filter(function(e){return"option"===l.getRole(e)&&"true"===e.actualNode.getAttribute("aria-selected")});return 0!==r.length?axe.commons.text.accessibleTextVirtual(r[0],t):""},ariaComboboxValue:function(e,t){var n,r=e.actualNode;return axe.commons.forms.isAriaCombobox(r)&&(n=l.getOwnedVirtual(e).filter(function(e){return"listbox"===l.getRole(e)})[0])?g.formControlValueMethods.ariaListboxValue(n,t):""},ariaRangeValue:function(e){if(e=e.actualNode||e,!axe.commons.forms.isAriaRange(e)||!e.hasAttribute("aria-valuenow"))return"";var t=+e.getAttribute("aria-valuenow");return isNaN(t)?"0":String(t)}},g.formControlValue=function(n,e){var r=1<arguments.length&&void 0!==e?e:{},t=n.actualNode,a=g.unsupported.accessibleNameFromFieldValue||[],o=l.getRole(t);if(r.startNode===n||!A.includes(o)||a.includes(o))return"";var i=Object.keys(g.formControlValueMethods).map(function(e){return g.formControlValueMethods[e]}).reduce(function(e,t){return e||t(n,r)},"");return r.debug&&axe.log(i||"{empty-value}",t,r),i},g.isHumanInterpretable=function(e){if(!e.length)return 0;if(["x","i"].includes(e))return 0;var t=g.removeUnicode(e,{emoji:!0,nonBmp:!0,punctuations:!0});return g.sanitize(t)?1:0};g.autocomplete={stateTerms:["on","off"],standaloneTerms:["name","honorific-prefix","given-name","additional-name","family-name","honorific-suffix","nickname","username","new-password","current-password","organization-title","organization","street-address","address-line1","address-line2","address-line3","address-level4","address-level3","address-level2","address-level1","country","country-name","postal-code","cc-name","cc-given-name","cc-additional-name","cc-family-name","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc","cc-type","transaction-currency","transaction-amount","language","bday","bday-day","bday-month","bday-year","sex","url","photo"],qualifiers:["home","work","mobile","fax","pager"],qualifiedTerms:["tel","tel-country-code","tel-national","tel-area-code","tel-local","tel-local-prefix","tel-local-suffix","tel-extension","email","impp"],locations:["billing","shipping"]},g.isValidAutocomplete=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=n.looseTyped,a=void 0!==r&&r,o=n.stateTerms,i=void 0===o?[]:o,u=n.locations,s=void 0===u?[]:u,l=n.qualifiers,c=void 0===l?[]:l,d=n.standaloneTerms,m=void 0===d?[]:d,p=n.qualifiedTerms,f=void 0===p?[]:p;if(e=e.toLowerCase().trim(),(i=i.concat(g.autocomplete.stateTerms)).includes(e)||""===e)return!0;c=c.concat(g.autocomplete.qualifiers),s=s.concat(g.autocomplete.locations),m=m.concat(g.autocomplete.standaloneTerms),f=f.concat(g.autocomplete.qualifiedTerms);var h=e.split(/\s+/g);if(!a&&(8<h[0].length&&"section-"===h[0].substr(0,8)&&h.shift(),s.includes(h[0])&&h.shift(),c.includes(h[0])&&(h.shift(),m=[]),1!==h.length))return!1;var b=h[h.length-1];return m.includes(b)||f.includes(b)},g.labelText=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=g.accessibleTextVirtual.alreadyProcessed;if(n.inControlContext||n.inLabelledByContext||r(e,n))return"";n.startNode||(n.startNode=e);var a,o=R({inControlContext:!0},n),i=function(e){var t=e.actualNode;return t.id?h.findElmsInContext({elm:"label",attr:"for",value:t.id,context:t}):[]}(e),u=h.findUpVirtual(e,"label");return u?(a=[].concat(he(i),[u])).sort(axe.utils.nodeSorter):a=i,a.map(function(e){return g.accessibleText(e,o)}).filter(function(e){return""!==e}).join(" ")},g.labelVirtual=function(e){var t,n;if(n=l.labelVirtual(e))return n;if(e.actualNode.id){var r=axe.utils.escapeSelector(e.actualNode.getAttribute("id"));if(n=(t=axe.commons.dom.getRootNode(e.actualNode).querySelector('label[for="'+r+'"]'))&&g.visible(t,!0))return n}return(n=(t=h.findUpVirtual(e,"label"))&&g.visible(t,!0))||null},g.label=function(e){return e=axe.utils.getNodeFromTree(e),g.labelVirtual(e)},g.nativeElementType=[{matches:[{nodeName:"textarea"},{nodeName:"input",properties:{type:["text","password","search","tel","email","url"]}}],namingMethods:"labelText"},{matches:{nodeName:"input",properties:{type:["button","submit","reset"]}},namingMethods:["valueText","titleText","buttonDefaultText"]},{matches:{nodeName:"input",properties:{type:"image"}},namingMethods:["altText","valueText","labelText","titleText","buttonDefaultText"]},{matches:"button",namingMethods:"subtreeText"},{matches:"fieldset",namingMethods:"fieldsetLegendText"},{matches:"OUTPUT",namingMethods:"subtreeText"},{matches:[{nodeName:"select"},{nodeName:"input",properties:{type:/^(?!text|password|search|tel|email|url|button|submit|reset)/}}],namingMethods:"labelText"},{matches:"summary",namingMethods:"subtreeText"},{matches:"figure",namingMethods:["figureText","titleText"]},{matches:"img",namingMethods:"altText"},{matches:"table",namingMethods:["tableCaptionText","tableSummaryText"]},{matches:["hr","br"],namingMethods:["titleText","singleSpace"]}],g.nativeTextAlternative=function(n,e){var r=1<arguments.length&&void 0!==e?e:{},t=n.actualNode;if(1!==t.nodeType||["presentation","none"].includes(l.getRole(t)))return"";var a=function(n){var e=g.nativeElementType,t=g.nativeTextMethods,r=e.find(function(e){var t=e.matches;return axe.commons.matches(n,t)});return(r?[].concat(r.namingMethods):[]).map(function(e){return t[e]})}(n).reduce(function(e,t){return e||t(n,r)},"");return r.debug&&axe.log(a||"{empty-value}",t,r),a};var F={submit:"Submit",image:"Submit",reset:"Reset",button:""};function j(e,t){return t.actualNode.getAttribute(e)||""}function z(e,t,n){var r=t.actualNode,a=[e=e.toLowerCase(),r.nodeName.toLowerCase()].join(","),o=r.querySelector(a);return o&&o.nodeName.toLowerCase()===e?g.accessibleText(o,n):""}g.nativeTextMethods={valueText:function(e){return e.actualNode.value||""},buttonDefaultText:function(e){var t=e.actualNode;return F[t.type]||""},tableCaptionText:z.bind(null,"caption"),figureText:z.bind(null,"figcaption"),fieldsetLegendText:z.bind(null,"legend"),altText:j.bind(null,"alt"),tableSummaryText:j.bind(null,"summary"),titleText:function(e,t){return g.titleText(e,t)},subtreeText:function(e,t){return g.subtreeText(e,t)},labelText:function(e,t){return g.labelText(e,t)},singleSpace:function(){return" "}},g.sanitize=function(e){"use strict";return e.replace(/\r\n/g,"\n").replace(/\u00A0/g," ").replace(/[\s]{2,}/g," ").trim()},g.subtreeText=function(e,t){var n=1<arguments.length&&void 0!==t?t:{},r=g.accessibleTextVirtual.alreadyProcessed;n.startNode=n.startNode||e;var a=n.strict;return r(e,n)||!l.namedFromContents(e,{strict:a})?"":l.getOwnedVirtual(e).reduce(function(e,t){return function(e,t,n){var r=t.actualNode.nodeName.toUpperCase(),a=g.accessibleTextVirtual(t,n);if(!a)return e;q.includes(r)||(" "!==a[0]&&(a+=" "),e&&" "!==e[e.length-1]&&(a=" "+a));return e+a}(e,t,n)},"")};var q=["A","EM","STRONG","SMALL","MARK","ABBR","DFN","I","B","S","U","CODE","VAR","SAMP","KBD","SUP","SUB","Q","CITE","SPAN","BDO","BDI","WBR","INS","DEL","MAP","AREA","NOSCRIPT","RUBY","BUTTON","LABEL","OUTPUT","DATALIST","KEYGEN","PROGRESS","COMMAND","CANVAS","TIME","METER","#TEXT"];var N=["button","iframe","a[href]",{nodeName:"input",properties:{type:"button"}}];function T(){return new RegExp("[ᴀ-ᵿᶀ-ᶿ᷀-᷿₠-⃏⃐-⃿℀-⅏⅐-↏←-⇿∀-⋿⌀-⏿␀-␿⑀-⑟①-⓿─-╿▀-▟■-◿☀-⛿✀-➿]")}return g.titleText=function(e){return 1===(e=e.actualNode||e).nodeType&&e.hasAttribute("title")?!axe.commons.matches(e,N)&&["none","presentation"].includes(l.getRole(e))?"":e.getAttribute("title"):""},g.hasUnicode=function(e,t){var n=t.emoji,r=t.nonBmp,a=t.punctuations;return n?axe.imports.emojiRegexText().test(e):r?T().test(e):!!a&&/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]/g.test(e)},g.removeUnicode=function(e,t){var n=t.emoji,r=t.nonBmp,a=t.punctuations;return n&&(e=e.replace(axe.imports.emojiRegexText(),"")),r&&(e=e.replace(T(),"")),a&&(e=e.replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]/g,"")),e},g.unsupported={accessibleNameFromFieldValue:["combobox","listbox","progressbar"]},g.visibleVirtual=function(n,r,a){var e=n.children.map(function(e){if(3===e.actualNode.nodeType){var t=e.actualNode.nodeValue;if(t&&h.isVisible(n.actualNode,r))return t}else if(!a)return g.visibleVirtual(e,r)}).join("");return g.sanitize(e)},g.visible=function(e,t,n){return e=axe.utils.getNodeFromTree(e),g.visibleVirtual(e,t,n)},commons}()})}("object"==typeof window?window:this);
##############################################
chromium-84.0.4147.105/third_party/mako/doc/_static/jquery.js-1-/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
chromium-84.0.4147.105/third_party/mako/doc/_static/jquery.js:2:!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
chromium-84.0.4147.105/third_party/mako/doc/_static/jquery.js:3:a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
chromium-84.0.4147.105/third_party/mako/doc/_static/jquery.js:4:null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
##############################################
chromium-84.0.4147.105/third_party/mako/doc/build/runtime.rst-33-You usually don't need to care about this, as all text within a template, as
chromium-84.0.4147.105/third_party/mako/doc/build/runtime.rst:34:well as all expressions provided by ``${}``, automatically send
chromium-84.0.4147.105/third_party/mako/doc/build/runtime.rst-35-everything to this method. The cases you might want to be aware
##############################################
chromium-84.0.4147.105/third_party/mako/doc/build/defs.rst-218-To achieve this, the target def is invoked using the form
chromium-84.0.4147.105/third_party/mako/doc/build/defs.rst:219:``<%namespacename:defname>`` instead of the normal ``${}``
chromium-84.0.4147.105/third_party/mako/doc/build/defs.rst-220-syntax. This syntax, introduced in Mako 0.2.3, is functionally
##############################################
chromium-84.0.4147.105/third_party/mako/doc/build/filtering.rst-12-As described in the chapter :ref:`syntax_toplevel`, the "``|``" operator can be
chromium-84.0.4147.105/third_party/mako/doc/build/filtering.rst:13:applied to a "``${}``" expression to apply escape filters to the
chromium-84.0.4147.105/third_party/mako/doc/build/filtering.rst-14-output:
##############################################
chromium-84.0.4147.105/third_party/mako/doc/build/filtering.rst-215-call a def using the normal expression syntax, i.e.
chromium-84.0.4147.105/third_party/mako/doc/build/filtering.rst:216:``${somedef()}``, it may appear that the return value of the
chromium-84.0.4147.105/third_party/mako/doc/build/filtering.rst-217-function is the content it produced, which is then delivered to
##############################################
chromium-84.0.4147.105/third_party/mako/doc/build/filtering.rst-219-except that normally, this is not the case; the return value of
chromium-84.0.4147.105/third_party/mako/doc/build/filtering.rst:220:``${somedef()}`` is simply the empty string ``''``. By the time
chromium-84.0.4147.105/third_party/mako/doc/build/filtering.rst-221-you receive this empty string, the output of ``somedef()`` has
##############################################
chromium-84.0.4147.105/third_party/mako/doc/build/syntax.rst-20-The simplest expression is just a variable substitution. The
chromium-84.0.4147.105/third_party/mako/doc/build/syntax.rst:21:syntax for this is the ``${}`` construct, which is inspired by
chromium-84.0.4147.105/third_party/mako/doc/build/syntax.rst-22-Perl, Genshi, JSP EL, and others:
##############################################
chromium-84.0.4147.105/third_party/mako/doc/build/syntax.rst-34-
chromium-84.0.4147.105/third_party/mako/doc/build/syntax.rst:35:The contents within the ``${}`` tag are evaluated by Python
chromium-84.0.4147.105/third_party/mako/doc/build/syntax.rst-36-directly, so full expressions are OK:
##############################################
chromium-84.0.4147.105/third_party/mako/doc/build/syntax.rst-238-attributes support **evaluation**, meaning you can embed an
chromium-84.0.4147.105/third_party/mako/doc/build/syntax.rst:239:expression (using ``${}``) inside the attribute text:
chromium-84.0.4147.105/third_party/mako/doc/build/syntax.rst-240-
##############################################
chromium-84.0.4147.105/third_party/mako/doc/build/inheritance.rst-166-
chromium-84.0.4147.105/third_party/mako/doc/build/inheritance.rst:167:Note when we overrode ``header``, we added an extra call ``${parent.header()}`` in order to invoke
chromium-84.0.4147.105/third_party/mako/doc/build/inheritance.rst-168-the parent's ``header`` block in addition to our own.  That's described in more detail below,
##############################################
chromium-84.0.4147.105/third_party/mako/test/test_template.py-548-    @requires_python_2
chromium-84.0.4147.105/third_party/mako/test/test_template.py:549:    def test_bytestring_passthru(self):
chromium-84.0.4147.105/third_party/mako/test/test_template.py-550-        self._do_file_test(
##############################################
chromium-84.0.4147.105/jingle/glue/network_service_async_socket_unittest.cc-619-TEST_F(NetworkServiceAsyncSocketTest, ZeroPortConnect) {
chromium-84.0.4147.105/jingle/glue/network_service_async_socket_unittest.cc:620:  const net::HostPortPair zero_port_addr({addr_.host(), 0});
chromium-84.0.4147.105/jingle/glue/network_service_async_socket_unittest.cc-621-  EXPECT_FALSE(ns_async_socket_->Connect(zero_port_addr));
##############################################
chromium-84.0.4147.105/jingle/glue/utils.cc-25-  socklen_t len = sizeof(addr);
chromium-84.0.4147.105/jingle/glue/utils.cc:26:  return ip_endpoint.ToSockAddr(reinterpret_cast<sockaddr*>(&addr), &len) &&
chromium-84.0.4147.105/jingle/glue/utils.cc-27-      rtc::SocketAddressFromSockAddrStorage(addr, address);
##############################################
chromium-84.0.4147.105/jingle/glue/utils.cc-34-  return (size > 0) &&
chromium-84.0.4147.105/jingle/glue/utils.cc:35:      ip_endpoint->FromSockAddr(reinterpret_cast<sockaddr*>(&addr), size);
chromium-84.0.4147.105/jingle/glue/utils.cc-36-}
##############################################
chromium-84.0.4147.105/jingle/glue/utils.cc-62-  base::DictionaryValue value;
chromium-84.0.4147.105/jingle/glue/utils.cc:63:  value.SetString("ip", candidate.address().ipaddr().ToString());
chromium-84.0.4147.105/jingle/glue/utils.cc-64-  value.SetInteger("port", candidate.address().port());
##############################################
chromium-84.0.4147.105/fuchsia/README.md-206-        address and the path to the `ssh_config` used by the device
chromium-84.0.4147.105/fuchsia/README.md:207:        (located at `$FUCHSIA_OUT_DIR/ssh-keys/ssh_config`):
chromium-84.0.4147.105/fuchsia/README.md-208-
##############################################
chromium-84.0.4147.105/fuchsia/cipd/README.md-32-
chromium-84.0.4147.105/fuchsia/cipd/README.md:33:`$ cipd describe chromium/fuchsia/$PACKAGE_NAME-$TARGET_ARCH -version latest`
##############################################
chromium-84.0.4147.105/.pc/fixes/inspector.patch/v8/src/inspector/v8-debugger-agent-impl.cc-649-  // TODO(duongn): we can do better here if from breakpoint id we can tell it is
chromium-84.0.4147.105/.pc/fixes/inspector.patch/v8/src/inspector/v8-debugger-agent-impl.cc:650:  // not Wasm breakpoint.
chromium-84.0.4147.105/.pc/fixes/inspector.patch/v8/src/inspector/v8-debugger-agent-impl.cc-651-  std::vector<V8DebuggerScript*> scripts;
##############################################
chromium-84.0.4147.105/.pc/fixes/inspector.patch/v8/src/inspector/v8-debugger-agent-impl.cc-1583-
chromium-84.0.4147.105/.pc/fixes/inspector.patch/v8/src/inspector/v8-debugger-agent-impl.cc:1584:  // TODO(herhut, dgozman): Report correct length for Wasm if needed for
chromium-84.0.4147.105/.pc/fixes/inspector.patch/v8/src/inspector/v8-debugger-agent-impl.cc-1585-  // coverage. Or do not send the length at all and change coverage instead.
##############################################
chromium-84.0.4147.105/.pc/fixes/nullptr-dereference.patch/base/location.cc-54-#define RETURN_ADDRESS() \
chromium-84.0.4147.105/.pc/fixes/nullptr-dereference.patch/base/location.cc:55:  __builtin_extract_return_addr(__builtin_return_address(0))
chromium-84.0.4147.105/.pc/fixes/nullptr-dereference.patch/base/location.cc-56-#else
##############################################
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-73484-    Logged whenever the CoreAudio dispatch override hotfix needs to look up the
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml:73485:    calling function using dladdr(). Once ResumeIO and PauseIO have been
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-73486-    identified, no more lookups should be performed during the session.
##############################################
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-158128-    The behaviour of site isolated web assembly code cache recorded for each
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml:158129:    cache transaction during WASM compilation. It records if the request was
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-158130-    serviced and if serviced how it was serviced for ex: hit, miss, update.
##############################################
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-178603-    Throughput of compilation of lazily compiled WebAssembly functions in KB/s
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml:178604:    (size of function in wasm format divided by time to compile it). This is
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-178605-    recorded per function for functions that are lazily compiled.
##############################################
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-178738-  <summary>
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml:178739:    Number of WebAssembly native modules live in a Wasm engine (typically per
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-178740-    process). Recorded whenever a new native module is created.
##############################################
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-207219-  <suffix name="wasm"
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml:207220:      label="This histogram contains results for wasm modules."/>
chromium-84.0.4147.105/.pc/disable/owners.patch/tools/metrics/histograms/histograms.xml-207221-  <affected-histogram name="V8.WasmCompileFunctionMicroSeconds"/>
##############################################
chromium-84.0.4147.105/.pc/disable/catapult.patch/tools/binary_size/BUILD.gn-29-
chromium-84.0.4147.105/.pc/disable/catapult.patch/tools/binary_size/BUILD.gn:30:# is_wasm is defined in BUILDCONFIG.gn only when wasmbuild.patch is applied.
chromium-84.0.4147.105/.pc/disable/catapult.patch/tools/binary_size/BUILD.gn-31-if (defined(is_wasm)) {